From e57428affbeb3621f2c3f5d361e68a7823667729 Mon Sep 17 00:00:00 2001 From: "Terry A. Davis" Date: Mon, 26 Nov 2012 09:52:21 +0100 Subject: [PATCH] SparrowOSTS_121127.ISO --- 0000Boot/0000OSMain.BIN.C | Bin 0 -> 217760 bytes 0000Boot/Boot.BIC | Bin 150336 -> 0 bytes 0000Boot/{CDBoot.BIZ => BootCD.BIN} | Bin 2037 -> 2044 bytes 0000Boot/BootLoader.BIC | Bin 639 -> 0 bytes 0000Boot/BootMHD2.BIN.C | Bin 0 -> 578 bytes 0000Boot/OldMBR.BIN.C | Bin 0 -> 512 bytes LT/Accts/Adam3.APZ | 181 - LT/Accts/Fault.CPZ | 51 - LT/Accts/Favor.MUZ | 16 - LT/Accts/Install/Adam3.APZ | 181 - LT/Accts/Install/DoIt.CPZ | Bin 3810 -> 0 bytes LT/Accts/Install/User.CPZ | Bin 136 -> 0 bytes LT/Accts/PicWords3.APZ | 9 - LT/Accts/Servant.CPZ | 11 - LT/Accts/Songs/Adam3.APZ | 176 - LT/Accts/Songs/DoIt.CPZ | 4 - LT/Accts/Songs/User.CPZ | 5 - LT/Accts/System.CPZ | Bin 220 -> 0 bytes LT/Accts/Tour/DoIt.CPZ | 1 - LT/Accts/Tour/Tour.AUZ | 37 - LT/Accts/Tour/Tour1.AUZ | 105 - LT/Accts/Tour/Tour2.AUZ | 76 - LT/Accts/Tour/Tour3.AUZ | 110 - LT/Accts/Tour/Tour4.AUZ | 58 - LT/Accts/Tour/Tour5.AUZ | 19 - LT/Accts/Tour/User.CPZ | Bin 136 -> 0 bytes LT/Accts/User.CPZ | 37 - LT/Accts/User.MUZ | Bin 5355 -> 0 bytes LT/Accts/User/DoIt.CPZ | 2 - LT/Adam/Adam2.APZ | 55 - LT/Adam/AdamExt.HPZ | 46 - LT/Adam/AutoFile.APZ | Bin 2019 -> 0 bytes LT/Adam/Comm.APZ | Bin 6484 -> 0 bytes LT/Adam/Dbg.APZ | 1410 - LT/Adam/Disk10.APZ | Bin 6187 -> 0 bytes LT/Adam/DiskCDDVD.APZ | 543 - LT/Adam/DisplayKeys.APZ | Bin 1 -> 0 bytes LT/Adam/FileManager.APZ | 684 - LT/Adam/Gr/Gr.APZ | 13 - LT/Adam/Gr/GrBitMap.APZ | 1465 - LT/Adam/Gr/GrChar.APZ | Bin 1697 -> 0 bytes LT/Adam/Gr/GrElem.APZ | 1664 - LT/Adam/Gr/GrMath.APZ | 569 - LT/Adam/Gr/GrPlot.APZ | 728 - LT/Adam/Gr/GrScreen.APZ | Bin 6621 -> 0 bytes LT/Adam/GrAsm/Gr1.ASZ | 593 - LT/Adam/GrAsm/GrAsm.BIZ | Bin 5721 -> 0 bytes LT/Adam/GrAsm/GrAsm.HPZ | 19 - LT/Adam/GrAsm/GrAsm.MPZ | Bin 1373 -> 0 bytes LT/Adam/GrAsm/GrAsm.SPZ | Bin 155 -> 0 bytes LT/Adam/HashUtils.APZ | 397 - LT/Adam/IncCompress.APZ | 311 - LT/Adam/InputPointer.APZ | 21 - LT/Adam/JoyStick.APZ | Bin 3481 -> 0 bytes LT/Adam/KbdMouse.APZ | 738 - LT/Adam/LPT.APZ | Bin 2106 -> 0 bytes LT/Adam/LogIn.APZ | Bin 2101 -> 0 bytes LT/Adam/Ltf/Ltf.APZ | Bin 1383 -> 0 bytes LT/Adam/Ltf/LtfCtrlL.APZ | 930 - LT/Adam/Ltf/LtfEdit.APZ | 1389 - LT/Adam/Ltf/LtfFile.APZ | 313 - LT/Adam/Ltf/LtfMacro.APZ | 126 - LT/Adam/Ltf/LtfMain.APZ | 677 - LT/Adam/Ltf/LtfNew.APZ | 505 - LT/Adam/Ltf/LtfPlain.APZ | 688 - LT/Adam/Ltf/LtfPopUp.APZ | 621 - LT/Adam/Ltf/LtfRecalc.APZ | 1657 - LT/Adam/Math.APZ | 66 - LT/Adam/Message.APZ | 142 - LT/Adam/Music.APZ | 140 - LT/Adam/ODE.APZ | 194 - LT/Adam/PicWords2.APZ | Bin 464 -> 0 bytes LT/Adam/Remote.APZ | 798 - LT/Adam/Utils.APZ | 445 - LT/Adam/WallPaper.APZ | Bin 2951 -> 0 bytes LT/Adam/Window.APZ | 1080 - LT/Adam/WordStat/WSDict.APZ | 450 - LT/Adam/WordStat/WSMain.APZ | 767 - LT/Adam/WordStat/WordStat.APZ | 100 - LT/Adam/WordStat/WsWords.DTZ | Bin 1242430 -> 0 bytes LT/Apps/MusicOrgan/Examples/action.CPZ | Bin 603 -> 0 bytes LT/Apps/MusicOrgan/Examples/alike.CPZ | Bin 615 -> 0 bytes LT/Apps/MusicOrgan/Examples/almighty.CPZ | Bin 563 -> 0 bytes LT/Apps/MusicOrgan/Examples/appreciate.CPZ | Bin 696 -> 0 bytes LT/Apps/MusicOrgan/Examples/approve.CPZ | Bin 379 -> 0 bytes LT/Apps/MusicOrgan/Examples/architects.CPZ | 23 - LT/Apps/MusicOrgan/Examples/bedewed.CPZ | Bin 2046 -> 0 bytes LT/Apps/MusicOrgan/Examples/blinded.CPZ | 36 - LT/Apps/MusicOrgan/Examples/ceaseth.CPZ | Bin 301 -> 0 bytes LT/Apps/MusicOrgan/Examples/childish.CPZ | Bin 367 -> 0 bytes LT/Apps/MusicOrgan/Examples/comprise.CPZ | Bin 617 -> 0 bytes LT/Apps/MusicOrgan/Examples/depending.CPZ | 36 - LT/Apps/MusicOrgan/Examples/discerning.CPZ | 20 - LT/Apps/MusicOrgan/Examples/eternity.CPZ | Bin 364 -> 0 bytes LT/Apps/MusicOrgan/Examples/everlastingly.CPZ | Bin 371 -> 0 bytes LT/Apps/MusicOrgan/Examples/exalt.CPZ | Bin 702 -> 0 bytes LT/Apps/MusicOrgan/Examples/fairness.CPZ | 41 - LT/Apps/MusicOrgan/Examples/first.CPZ | Bin 2151 -> 0 bytes LT/Apps/MusicOrgan/Examples/fishermen.CPZ | 38 - LT/Apps/MusicOrgan/Examples/forgive.CPZ | 20 - LT/Apps/MusicOrgan/Examples/forstress.CPZ | 20 - LT/Apps/MusicOrgan/Examples/fun.CPZ | Bin 561 -> 0 bytes LT/Apps/MusicOrgan/Examples/gladdened.CPZ | Bin 362 -> 0 bytes LT/Apps/MusicOrgan/Examples/good.CPZ | 27 - LT/Apps/MusicOrgan/Examples/heldest.CPZ | 27 - LT/Apps/MusicOrgan/Examples/heretofore.CPZ | Bin 511 -> 0 bytes LT/Apps/MusicOrgan/Examples/hope.CPZ | Bin 649 -> 0 bytes LT/Apps/MusicOrgan/Examples/including.CPZ | Bin 1572 -> 0 bytes LT/Apps/MusicOrgan/Examples/income.CPZ | Bin 472 -> 0 bytes LT/Apps/MusicOrgan/Examples/job.CPZ | 27 - LT/Apps/MusicOrgan/Examples/kept.CPZ | 37 - LT/Apps/MusicOrgan/Examples/king.CPZ | Bin 683 -> 0 bytes LT/Apps/MusicOrgan/Examples/knewest.CPZ | 20 - LT/Apps/MusicOrgan/Examples/leaving.CPZ | 38 - LT/Apps/MusicOrgan/Examples/limit.CPZ | 37 - LT/Apps/MusicOrgan/Examples/littleton.CPZ | 24 - LT/Apps/MusicOrgan/Examples/meekness.CPZ | 28 - LT/Apps/MusicOrgan/Examples/mentioned.CPZ | Bin 367 -> 0 bytes LT/Apps/MusicOrgan/Examples/mildly.CPZ | 36 - LT/Apps/MusicOrgan/Examples/minds.CPZ | Bin 671 -> 0 bytes LT/Apps/MusicOrgan/Examples/multiple.CPZ | 36 - LT/Apps/MusicOrgan/Examples/my.CPZ | Bin 2104 -> 0 bytes LT/Apps/MusicOrgan/Examples/nay.CPZ | Bin 699 -> 0 bytes LT/Apps/MusicOrgan/Examples/partake.CPZ | Bin 2600 -> 0 bytes LT/Apps/MusicOrgan/Examples/permitted.CPZ | Bin 471 -> 0 bytes LT/Apps/MusicOrgan/Examples/preparing.CPZ | Bin 575 -> 0 bytes LT/Apps/MusicOrgan/Examples/pretend.CPZ | Bin 381 -> 0 bytes LT/Apps/MusicOrgan/Examples/prosper.CPZ | Bin 3516 -> 0 bytes LT/Apps/MusicOrgan/Examples/providence.CPZ | Bin 689 -> 0 bytes LT/Apps/MusicOrgan/Examples/proximate.CPZ | Bin 678 -> 0 bytes LT/Apps/MusicOrgan/Examples/quotation.CPZ | Bin 644 -> 0 bytes LT/Apps/MusicOrgan/Examples/regarded.CPZ | 27 - LT/Apps/MusicOrgan/Examples/represented.CPZ | Bin 340 -> 0 bytes LT/Apps/MusicOrgan/Examples/riddle.CPZ | 29 - LT/Apps/MusicOrgan/Examples/risen.CPZ | Bin 332 -> 0 bytes LT/Apps/MusicOrgan/Examples/rmunday.CPZ | Bin 381 -> 0 bytes LT/Apps/MusicOrgan/Examples/scarcely.CPZ | Bin 321 -> 0 bytes LT/Apps/MusicOrgan/Examples/seasons.CPZ | Bin 323 -> 0 bytes LT/Apps/MusicOrgan/Examples/servant.CPZ | 36 - LT/Apps/MusicOrgan/Examples/shield.CPZ | Bin 1319 -> 0 bytes LT/Apps/MusicOrgan/Examples/sings.CPZ | 21 - LT/Apps/MusicOrgan/Examples/small.CPZ | Bin 743 -> 0 bytes LT/Apps/MusicOrgan/Examples/soothed.CPZ | 25 - LT/Apps/MusicOrgan/Examples/stiff.CPZ | Bin 711 -> 0 bytes LT/Apps/MusicOrgan/Examples/stores.CPZ | 23 - LT/Apps/MusicOrgan/Examples/struggles.CPZ | 27 - LT/Apps/MusicOrgan/Examples/sweeter.CPZ | Bin 319 -> 0 bytes LT/Apps/MusicOrgan/Examples/thereby.CPZ | Bin 742 -> 0 bytes LT/Apps/MusicOrgan/Examples/tolerated.CPZ | Bin 485 -> 0 bytes LT/Apps/MusicOrgan/Examples/treating.CPZ | Bin 479 -> 0 bytes LT/Apps/MusicOrgan/Examples/unlearned.CPZ | Bin 698 -> 0 bytes LT/Apps/MusicOrgan/Examples/valued.CPZ | Bin 491 -> 0 bytes LT/Apps/MusicOrgan/Examples/vengeance.CPZ | Bin 456 -> 0 bytes LT/Apps/MusicOrgan/Examples/warmth.CPZ | Bin 375 -> 0 bytes LT/Apps/MusicOrgan/Examples/wisdom.CPZ | Bin 1921 -> 0 bytes LT/Apps/MusicOrgan/Examples/zip.CPZ | Bin 3838 -> 0 bytes LT/Apps/MusicOrgan/Install.CPZ | Bin 48 -> 0 bytes LT/Apps/MusicOrgan/JukeBox.CPZ | Bin 2304 -> 0 bytes LT/Apps/MusicOrgan/Load.CPZ | Bin 169 -> 0 bytes LT/Apps/MusicOrgan/MakeSong.CPZ | 73 - LT/Apps/MusicOrgan/Organ.CPZ | 992 - LT/Apps/MusicOrgan/Run.CPZ | Bin 53 -> 0 bytes LT/Apps/Rocks/Load.CPZ | Bin 79 -> 0 bytes LT/Apps/Rocks/Rocks.CPZ | 736 - LT/Apps/Rocks/Run.CPZ | Bin 42 -> 0 bytes LT/Apps/TimeClock/Install.CPZ | Bin 228 -> 0 bytes LT/Apps/TimeClock/Load.CPZ | Bin 44 -> 0 bytes LT/Apps/TimeClock/TimeClk.CPZ | 164 - LT/Apps/Vocabulary/Load.CPZ | Bin 88 -> 0 bytes LT/Apps/Vocabulary/Run.CPZ | 2 - LT/Apps/Vocabulary/VocabQuiz.CPZ | Bin 1255 -> 0 bytes LT/Apps/WarGame/Load.CPZ | Bin 83 -> 0 bytes LT/Apps/WarGame/Run.CPZ | Bin 43 -> 0 bytes LT/Apps/WarGame/WarGame.CPZ | 385 - LT/Apps/WarGame/WarGame.MUZ | 14 - LT/Compiler/AsmMain.CPZ | 1655 - LT/Compiler/CmpAsm.ASZ | 281 - LT/Compiler/CmpDefs.HPZ | 254 - LT/Compiler/CmpDefs2.HPZ | 21 - LT/Compiler/CmpGlbls.CPZ | 13 - LT/Compiler/CmpInit.CPZ | 603 - LT/Compiler/CmpMain.CPZ | 422 - LT/Compiler/Code.CPZ | 2452 - LT/Compiler/CodeGen.CPZ | 431 - LT/Compiler/Compiler.BIZ | Bin 218949 -> 0 bytes LT/Compiler/Compiler.HPZ | 53 - LT/Compiler/Compiler.MPZ | 552 - LT/Compiler/Compiler.SPZ | Bin 331 -> 0 bytes LT/Compiler/ExpParser.CPZ | 837 - LT/Compiler/Lex.CPZ | 1222 - LT/Compiler/OpCodes.TXZ | 1085 - LT/Compiler/OptPass1.CPZ | 1540 - LT/Compiler/OptPass2.CPZ | 447 - LT/Compiler/OptPass3.CPZ | 574 - LT/Compiler/OptPass4.CPZ | 182 - LT/Compiler/OptPass5.CPZ | 267 - LT/Compiler/OptPass6.CPZ | 1195 - LT/Compiler/Renum.AUZ | 27 - LT/Compiler/SPrintF2.CPZ | 1009 - LT/Compiler/StmtParser.CPZ | 1453 - LT/Demo/ASCIIOrgan.CPZ | 16 - LT/Demo/AutoFile/Demo1.AUZ | 15 - LT/Demo/AutoFile/Demo2.AUZ | 9 - LT/Demo/AutoFile/Demo3.AUZ | Bin 769 -> 0 bytes LT/Demo/AutoFile/Demo3.TXZ | 260 - LT/Demo/AutoFile/Demo4.CPZ | Bin 320 -> 0 bytes LT/Demo/ByteAccess.CPZ | 26 - LT/Demo/CircleTrace.CPZ | Bin 2563 -> 0 bytes LT/Demo/CommTerminal.CPZ | 19 - LT/Demo/DataBase.CPZ | 68 - LT/Demo/DateTime.CPZ | 34 - LT/Demo/Dawg.CPZ | Bin 2347 -> 0 bytes LT/Demo/Digits.CPZ | Bin 2512 -> 0 bytes LT/Demo/Doodle.CPZ | Bin 1342 -> 0 bytes LT/Demo/Doodle2.CPZ | Bin 1356 -> 0 bytes LT/Demo/Exceptions.CPZ | Bin 1028 -> 0 bytes LT/Demo/FPrintF.CPZ | Bin 659 -> 0 bytes LT/Demo/GameStarters/Adventure.CPZ | Bin 1781 -> 0 bytes LT/Demo/GameStarters/BlackDiamond.CPZ | Bin 4485 -> 0 bytes LT/Demo/GameStarters/BushLeague.CPZ | Bin 3519 -> 0 bytes LT/Demo/GameStarters/FlightSim.CPZ | 348 - LT/Demo/GameStarters/Goons.CPZ | Bin 6364 -> 0 bytes LT/Demo/GameStarters/SpaceShip.CPZ | Bin 4701 -> 0 bytes LT/Demo/GameStarters/Swing.CPZ | Bin 8229 -> 0 bytes LT/Demo/GetInput.CPZ | 56 - LT/Demo/Graphics/BSpline.CPZ | Bin 762 -> 0 bytes LT/Demo/Graphics/Blot.CPZ | Bin 702 -> 0 bytes LT/Demo/Graphics/Box.CPZ | Bin 1394 -> 0 bytes LT/Demo/Graphics/CPUPlot.CPZ | Bin 2525 -> 0 bytes LT/Demo/Graphics/CharGraphics.CPZ | 38 - LT/Demo/Graphics/DotNet.CPZ | Bin 305 -> 0 bytes LT/Demo/Graphics/MyWallPaper.APZ | Bin 1470 -> 0 bytes LT/Demo/Graphics/Pick.CPZ | Bin 3255 -> 0 bytes LT/Demo/Graphics/Sprite1.CPZ | Bin 1945 -> 0 bytes LT/Demo/Graphics/Sprite2.CPZ | Bin 1211 -> 0 bytes LT/Demo/Graphics/Sprite3.CPZ | Bin 811 -> 0 bytes LT/Demo/Graphics/Sprite4.CPZ | Bin 3557 -> 0 bytes LT/Demo/Ltf.CPZ | 98 - LT/Demo/Ltf2.CPZ | Bin 5022 -> 0 bytes LT/Demo/MsgLoop.CPZ | 15 - LT/Demo/MultiCore.CPZ | 94 - LT/Demo/MultiCore1.CPZ | Bin 448 -> 0 bytes LT/Demo/MultiCore2.CPZ | Bin 3077 -> 0 bytes LT/Demo/Music.CPZ | 35 - LT/Demo/NeatTrick.CPZ | Bin 415 -> 0 bytes LT/Demo/OrderedIO.CPZ | 18 - LT/Demo/Spy.CPZ | 23 - LT/Demo/TAD/Adam3.APZ | 82 - LT/Demo/TAD/DoIt.CPZ | Bin 39 -> 0 bytes LT/Demo/TAD/Fault.CPZ | Bin 1196 -> 0 bytes LT/Demo/TAD/Favor.MUZ | 170 - LT/Demo/TAD/PlugIns.APZ | 254 - LT/Demo/TAD/TADAdam.APZ | 202 - LT/Demo/TAD/User.CPZ | Bin 2231 -> 0 bytes LT/Demo/TAD/User.MUZ | Bin 7081 -> 0 bytes LT/Demo/TextDemo.CPZ | 16 - LT/Demo/TimeIns.CPZ | 51 - LT/Demo/TreeDemo.CPZ | 33 - LT/Demo/TreeDemoJoin.CPZ | 25 - LT/Demo/WinMgr2.APZ | Bin 4534 -> 0 bytes LT/Doc/AutoFile.TXZ | Bin 1280 -> 0 bytes LT/Doc/Bit.TXZ | 7 - LT/Doc/Boot.TXZ | Bin 3171 -> 0 bytes LT/Doc/Char.TXZ | Bin 691 -> 0 bytes LT/Doc/Comm.TXZ | Bin 568 -> 0 bytes LT/Doc/Confuse.TXZ | Bin 2156 -> 0 bytes LT/Doc/Customize.TXZ | 5 - LT/Doc/Differences.TXZ | 92 - LT/Doc/Dollar.TXZ | 159 - LT/Doc/Edit.MUZ | 75 - LT/Doc/FileManager.MUZ | Bin 3218 -> 0 bytes LT/Doc/GrElem.TXZ | 2 - LT/Doc/Graphics.TXZ | 28 - LT/Doc/GuideLines.TXZ | 66 - LT/Doc/Hardware.TXZ | 21 - LT/Doc/Hash.TXZ | Bin 552 -> 0 bytes LT/Doc/Help.TXZ | Bin 5896 -> 0 bytes LT/Doc/HelpIndex.TXZ | 39 - LT/Doc/InputPointer.TXZ | 4 - LT/Doc/Install.TXZ | Bin 2844 -> 0 bytes LT/Doc/LTZ.TXZ | Bin 2657 -> 0 bytes LT/Doc/Lectures/LoseThos.TXZ | 94 - LT/Doc/Lectures/Proverbs.TXZ | 25 - LT/Doc/Lectures/ScaledInt.CPZ | 62 - LT/Doc/Logo.TXZ | Bin 1769 -> 0 bytes LT/Doc/Ltf.TXZ | Bin 273 -> 0 bytes LT/Doc/Mem.TXZ | Bin 2179 -> 0 bytes LT/Doc/MemInfo.TXZ | 82 - LT/Doc/MultiCore.TXZ | Bin 1291 -> 0 bytes LT/Doc/MultiTasking.TXZ | Bin 2444 -> 0 bytes LT/Doc/Mysteries.TXZ | Bin 4071 -> 0 bytes LT/Doc/News.TXZ | 189 - LT/Doc/OSGlossary.GLZ | 160 - LT/Doc/PicWords.TXZ | Bin 372 -> 0 bytes LT/Doc/Promises.TXZ | Bin 1838 -> 0 bytes LT/Doc/Queue.TXZ | 2 - LT/Doc/Quirks.TXZ | Bin 1743 -> 0 bytes LT/Doc/StartSong.CPZ | 45 - LT/Doc/StartUp.TXZ | Bin 1407 -> 0 bytes LT/Doc/SysText.TXZ | Bin 250 -> 0 bytes LT/Doc/TimeCycles.TXZ | Bin 277 -> 0 bytes LT/Doc/TimeJiffy.TXZ | 9 - LT/Doc/TimeLTDate.TXZ | Bin 354 -> 0 bytes LT/Doc/Tips.TXZ | 119 - LT/Doc/WordStat.TXZ | Bin 498 -> 0 bytes LT/OSMain/AdamK.APZ | 9 - LT/OSMain/AdamK.HPZ | 2459 - LT/OSMain/AdamK2.HPZ | 290 - LT/OSMain/AdamK3.HPZ | 472 - LT/OSMain/CRT.CPZ | 246 - LT/OSMain/CharUtils.ASZ | 620 - LT/OSMain/Cmd.CPZ | 662 - LT/OSMain/Compress.CPZ | 213 - LT/OSMain/Date.CPZ | 217 - LT/OSMain/Debug.CPZ | 232 - LT/OSMain/Disk/Disk3.CPZ | 554 - LT/OSMain/Disk/Disk4.CPZ | 400 - LT/OSMain/Disk/Disk5.CPZ | 338 - LT/OSMain/Disk/DiskATA.CPZ | 599 - LT/OSMain/Disk/DiskAddDev.CPZ | 500 - LT/OSMain/Disk/DiskCache.CPZ | Bin 5100 -> 0 bytes LT/OSMain/Disk/DiskDir.CPZ | Bin 4044 -> 0 bytes LT/OSMain/Disk/DiskFDC.CPZ | 282 - LT/OSMain/Disk/DiskLTFile.CPZ | Bin 6609 -> 0 bytes LT/OSMain/Disk/FileSysISO.CPZ | Bin 6724 -> 0 bytes LT/OSMain/Disk/FileSysLT.CPZ | 653 - LT/OSMain/Except.CPZ | Bin 3065 -> 0 bytes LT/OSMain/FIFO.CPZ | 169 - LT/OSMain/IRQHandlers.ASZ | 838 - LT/OSMain/KbdInput.CPZ | 175 - LT/OSMain/Memory.CPZ | 1129 - LT/OSMain/Misc.CPZ | 318 - LT/OSMain/MultiProc.CPZ | 283 - LT/OSMain/OS.MPZ | 2518 - LT/OSMain/OS.SPZ | Bin 440 -> 0 bytes LT/OSMain/OSDefs.ASZ | 350 - LT/OSMain/OSEnd.CPZ | 391 - LT/OSMain/OSExts.CPZ | 51 - LT/OSMain/OSGlbls.CPZ | 54 - LT/OSMain/OSStartUp.ASZ | 457 - LT/OSMain/QSort.CPZ | 25 - LT/OSMain/SPrintF1.CPZ | Bin 6733 -> 0 bytes LT/OSMain/Scheduler.ASZ | 330 - LT/OSMain/Static.HPZ | Bin 258 -> 0 bytes LT/OSMain/Strings.CPZ | 746 - LT/OSMain/SysText.CPZ | 97 - LT/OSMain/SysUtils.ASZ | 884 - LT/Utils/Boot/BootCD.BIZ | Bin 1095 -> 0 bytes LT/Utils/Boot/BootCD.SPZ | Bin 2621 -> 0 bytes LT/Utils/Boot/BootFD.BIZ | Bin 319 -> 0 bytes LT/Utils/Boot/BootFD.SPZ | Bin 992 -> 0 bytes LT/Utils/Boot/BootHD.BIZ | Bin 571 -> 0 bytes LT/Utils/Boot/BootHD.SPZ | Bin 1855 -> 0 bytes LT/Utils/Boot/BootMHD.BIZ | Bin 595 -> 0 bytes LT/Utils/Boot/BootMHD.SPZ | Bin 1894 -> 0 bytes LT/Utils/Boot/BootMHD2.BIZ | Bin 855 -> 0 bytes LT/Utils/Boot/BootMHD2.SPZ | Bin 1837 -> 0 bytes LT/Utils/Boot/InsBoot.APZ | 473 - LT/Utils/Diff.APZ | 241 - LT/Utils/Disk20.APZ | 469 - LT/Utils/Dollar.APZ | 49 - LT/Utils/Grep.APZ | Bin 5065 -> 0 bytes LT/Utils/HeapLog.APZ | 129 - LT/Utils/IDE.APZ | 364 - LT/Utils/LinkChk.APZ | 72 - LT/Utils/ListFile.APZ | Bin 1701 -> 0 bytes LT/Utils/Merge.APZ | 289 - LT/Utils/S2T.APZ | 69 - Windows/LTZ/COMPRESS.CPP => Linux/TSZ.CPP | Bin 4551 -> 6928 bytes SparrowOS/Accts/Adam3.CPP | 9 + SparrowOS/Accts/Adam3aLocalize.CPP | 21 + SparrowOS/Accts/Adam3bPkgs.CPP | 24 + SparrowOS/Accts/Adam3cSnd.CPP | 11 + SparrowOS/Accts/Adam3dKeyPlugIns.CPP | 179 + SparrowOS/Accts/Adam3eWrappers.CPP | 27 + SparrowOS/Accts/Adam3fSys.CPP | 42 + SparrowOS/Accts/DoItOnce.CPP | 16 + SparrowOS/Accts/Install/Adam3fSys.CPP | 40 + SparrowOS/Accts/Install/DoItOnce.CPP | 264 + SparrowOS/Accts/PersonalMenu.TXT | Bin 0 -> 51803 bytes SparrowOS/Accts/PersonalNotes.TXT | 1 + SparrowOS/Accts/SafeMode/Adam3.CPP | 9 + SparrowOS/Accts/SafeMode/Adam3cSnd.CPP | 1 + SparrowOS/Accts/SafeMode/Adam3fSys.CPP | 38 + SparrowOS/Accts/SafeMode/DoItOnce.CPP | 9 + SparrowOS/Accts/TS/Adam3bPkgs.CPP | 9 + SparrowOS/Accts/TS/Adam3dKeyPlugIns.CPP | 266 + SparrowOS/Accts/TS/Adam3eWrappers.CPP | 9 + SparrowOS/Accts/TS/Adam3fSys.CPP | 49 + SparrowOS/Accts/TS/DoItOnce.CPP | 12 + SparrowOS/Accts/TS/PersonalMenu.TXT | Bin 0 -> 51890 bytes SparrowOS/Accts/TS/TAD/Adam3aLocalize.CPP | 20 + .../Accts/TS/TAD/Archive/FileSysISO3.CPP | 488 + SparrowOS/Accts/TS/TAD/Archive/Logo.TXT | Bin 0 -> 33188 bytes SparrowOS/Accts/TS/TAD/Archive/USB.CPP | 217 + SparrowOS/Accts/TS/TAD/Archive/USB1a.CPP | 114 + SparrowOS/Accts/TS/TAD/MusicOrgan/abiding.CPP | 75 + SparrowOS/Accts/TS/TAD/MusicOrgan/abyss.CPP | 44 + .../Accts/TS/TAD/MusicOrgan/almighty.CPP | 22 + .../Accts/TS/TAD/MusicOrgan/appreciate.CPP | 22 + SparrowOS/Accts/TS/TAD/MusicOrgan/awake.CPP | 77 + .../TS/TAD/MusicOrgan/battlehymnsolo.CPP | Bin 0 -> 12886 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/bedewed.CPP | Bin 0 -> 2044 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/blinded.CPP | 51 + SparrowOS/Accts/TS/TAD/MusicOrgan/born.CPP | 54 + .../Accts/TS/TAD/MusicOrgan/childish.CPP | 22 + .../Accts/TS/TAD/MusicOrgan/compassions.CPP | 24 + .../Accts/TS/TAD/MusicOrgan/completed.CPP | Bin 0 -> 924 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/cosam.CPP | 30 + .../Accts/TS/TAD/MusicOrgan/depending.CPP | 32 + .../Accts/TS/TAD/MusicOrgan/despairing.CPP | 24 + .../Accts/TS/TAD/MusicOrgan/determination.CPP | 20 + .../Accts/TS/TAD/MusicOrgan/dialogue.CPP | Bin 0 -> 3382 bytes .../Accts/TS/TAD/MusicOrgan/disputing.CPP | 26 + SparrowOS/Accts/TS/TAD/MusicOrgan/doing.CPP | Bin 0 -> 2589 bytes .../Accts/TS/TAD/MusicOrgan/downfall.CPP | 38 +- SparrowOS/Accts/TS/TAD/MusicOrgan/dream.CPP | 24 + SparrowOS/Accts/TS/TAD/MusicOrgan/efforts.CPP | 20 + SparrowOS/Accts/TS/TAD/MusicOrgan/elijah.CPP | Bin 0 -> 17661 bytes .../Accts/TS/TAD/MusicOrgan/environeth.CPP | 22 + .../Accts/TS/TAD/MusicOrgan/epicurus.CPP | 42 + SparrowOS/Accts/TS/TAD/MusicOrgan/exalt.CPP | 39 + SparrowOS/Accts/TS/TAD/MusicOrgan/exiled.CPP | 62 + .../Accts/TS/TAD/MusicOrgan/expedition.CPP | Bin 0 -> 1558 bytes .../Accts/TS/TAD/MusicOrgan/fairness.CPP | 37 + SparrowOS/Accts/TS/TAD/MusicOrgan/feigned.CPP | 20 + SparrowOS/Accts/TS/TAD/MusicOrgan/finger.CPP | Bin 0 -> 3968 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/first.CPP | Bin 0 -> 1885 bytes .../Accts/TS/TAD/MusicOrgan/fishermen.CPP | Bin 0 -> 2038 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/fixing.CPP | 20 + SparrowOS/Accts/TS/TAD/MusicOrgan/flung.CPP | 20 + SparrowOS/Accts/TS/TAD/MusicOrgan/fog.CPP | Bin 0 -> 1572 bytes .../Accts/TS/TAD/MusicOrgan/forasmuch.CPP | Bin 0 -> 2276 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/freaks.CPP | 24 + SparrowOS/Accts/TS/TAD/MusicOrgan/free.CPP | 34 + .../Accts/TS/TAD/MusicOrgan/furnishing.CPP | Bin 0 -> 5274 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/good.CPP | Bin 0 -> 1149 bytes .../Accts/TS/TAD/MusicOrgan/gutenberg.CPP | Bin 0 -> 2093 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/happy.CPP | Bin 0 -> 1676 bytes .../Accts/TS/TAD/MusicOrgan/honestly.CPP | 20 + SparrowOS/Accts/TS/TAD/MusicOrgan/hope.CPP | Bin 0 -> 1668 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/image.CPP | 35 + .../Accts/TS/TAD/MusicOrgan/inwardly.CPP | 20 + SparrowOS/Accts/TS/TAD/MusicOrgan/keeping.CPP | 22 + SparrowOS/Accts/TS/TAD/MusicOrgan/kept.CPP | 33 + SparrowOS/Accts/TS/TAD/MusicOrgan/limit.CPP | Bin 0 -> 1464 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/mary.CPP | 59 + .../Accts/TS/TAD/MusicOrgan/mightest.CPP | 52 + SparrowOS/Accts/TS/TAD/MusicOrgan/mildly.CPP | Bin 0 -> 1905 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/nay.CPP | 23 + SparrowOS/Accts/TS/TAD/MusicOrgan/night.CPP | Bin 0 -> 3355 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/o.CPP | 20 + SparrowOS/Accts/TS/TAD/MusicOrgan/partake.CPP | Bin 0 -> 2194 bytes .../Accts/TS/TAD/MusicOrgan/permitted.CPP | 20 + .../Accts/TS/TAD/MusicOrgan/personal.CPP | 22 + .../Accts/TS/TAD/MusicOrgan/population.CPP | 20 + .../Accts/TS/TAD/MusicOrgan/proponent.CPP | 38 +- SparrowOS/Accts/TS/TAD/MusicOrgan/prosper.CPP | Bin 0 -> 5575 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/psalm.CPP | 21 + SparrowOS/Accts/TS/TAD/MusicOrgan/purpose.CPP | Bin 0 -> 4622 bytes .../Accts/TS/TAD/MusicOrgan/reasoning.CPP | 22 + .../Accts/TS/TAD/MusicOrgan/reliance.CPP | 39 + SparrowOS/Accts/TS/TAD/MusicOrgan/reposes.CPP | 24 + .../Accts/TS/TAD/MusicOrgan/restless.CPP | 19 + SparrowOS/Accts/TS/TAD/MusicOrgan/rifled.CPP | 21 + SparrowOS/Accts/TS/TAD/MusicOrgan/risen.CPP | 89 + .../Accts/TS/TAD/MusicOrgan/satisfaction.CPP | Bin 0 -> 2664 bytes .../Accts/TS/TAD/MusicOrgan/scriptures.CPP | Bin 0 -> 1075 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/service.CPP | 35 + SparrowOS/Accts/TS/TAD/MusicOrgan/shield.CPP | Bin 0 -> 2852 bytes .../Accts/TS/TAD/MusicOrgan/signifies.CPP | 20 + SparrowOS/Accts/TS/TAD/MusicOrgan/silver.CPP | 25 + SparrowOS/Accts/TS/TAD/MusicOrgan/small.CPP | Bin 0 -> 10740 bytes .../Accts/TS/TAD/MusicOrgan/struggles.CPP | Bin 0 -> 3081 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/sustain.CPP | Bin 0 -> 2832 bytes .../Accts/TS/TAD/MusicOrgan/teachings.CPP | 35 + .../Accts/TS/TAD/MusicOrgan/thereupon.CPP | 76 + SparrowOS/Accts/TS/TAD/MusicOrgan/thither.CPP | 24 + SparrowOS/Accts/TS/TAD/MusicOrgan/twins.CPP | 25 + SparrowOS/Accts/TS/TAD/MusicOrgan/valued.CPP | Bin 0 -> 1509 bytes .../Accts/TS/TAD/MusicOrgan/vengeance.CPP | Bin 0 -> 6567 bytes SparrowOS/Accts/TS/TAD/MusicOrgan/verses.CPP | 49 + SparrowOS/Accts/TS/TAD/MusicOrgan/villa.CPP | 22 + SparrowOS/Accts/TS/TAD/MusicOrgan/wisdom.CPP | Bin 0 -> 1671 bytes .../Accts/TS/TAD/MusicOrgan/witherto.CPP | 35 + SparrowOS/Accts/TS/TAD/MusicOrgan/worship.CPP | 20 + SparrowOS/Accts/TS/TAD/MusicOrgan/you.CPP | 26 + SparrowOS/Accts/TS/TAD/MusicOrgan/zip.CPP | Bin 0 -> 2508 bytes SparrowOS/Accts/TS/TAD/PersonalNotes.TXT | 186 + SparrowOS/Accts/TS/TAD/Registry.CPP | 8 + SparrowOS/Accts/TS/TAD/Test.CPP | 53 + SparrowOS/Accts/TS/TSAdam.CPP | 413 + SparrowOS/Accts/TS/TSDistribute.CPP | 543 + 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 0 -> 153718 bytes SparrowOS/Accts/TS/Wb2/ScreenShots.TXT | 14 + SparrowOS/Accts/TS/Wb2/SparrowOS.BMP | Bin 0 -> 153718 bytes SparrowOS/Accts/TS/Wb2/Tanks.BMP | Bin 0 -> 153718 bytes SparrowOS/Accts/TS/Wb2/index.TXT | 71 + SparrowOS/Adam/Adam2.CPP | 72 + SparrowOS/Adam/AdamExt.HPP | 105 + SparrowOS/Adam/AutoFile2a.CPP | 138 + SparrowOS/Adam/BinRep.CPP | 85 + SparrowOS/Adam/Boot/BootCD.CPP | 157 + SparrowOS/Adam/Boot/BootHD.CPP | 92 + SparrowOS/Adam/Boot/BootMHD.CPP | 105 + SparrowOS/Adam/Boot/BootMHD2.CPP | 119 + SparrowOS/Adam/Boot/InsBoot.CPP | 381 + SparrowOS/Adam/Ctrls/Ctrls.CPP | 8 + SparrowOS/Adam/Ctrls/Ctrls2a.CPP | 393 + SparrowOS/Adam/Ctrls/CtrlsButton.CPP | 94 + SparrowOS/Adam/Ctrls/CtrlsSlider.CPP | 217 + SparrowOS/Adam/Dbg2a.CPP | 398 + SparrowOS/Adam/DevInfo.CPP | 325 + SparrowOS/Adam/Diff.CPP | 269 + SparrowOS/Adam/Doc/Doc.CPP | 89 + .../Adam/Doc/DocBible.CPP | 346 +- SparrowOS/Adam/Doc/DocCodeTools.CPP | 433 + SparrowOS/Adam/Doc/DocCtrlL.CPP | 1185 + SparrowOS/Adam/Doc/DocEd.CPP | 2486 + SparrowOS/Adam/Doc/DocFile.CPP | 455 + SparrowOS/Adam/Doc/DocHighlight.CPP | 385 + SparrowOS/Adam/Doc/DocIDE.CPP | 520 + SparrowOS/Adam/Doc/DocMacro.CPP | 219 + SparrowOS/Adam/Doc/DocMain.CPP | 644 + SparrowOS/Adam/Doc/DocNew.CPP | 897 + SparrowOS/Adam/Doc/DocPlain.CPP | 1276 + SparrowOS/Adam/Doc/DocPopUp.CPP | 880 + SparrowOS/Adam/Doc/DocRecalc.CPP | 1840 + SparrowOS/Adam/Doc/DocTree.CPP | 175 + SparrowOS/Adam/DocDefines.CPP | 55 + SparrowOS/Adam/Dsk/ChkDsk.CPP | 232 + SparrowOS/Adam/Dsk/Dsk2.CPP | 5 + SparrowOS/Adam/Dsk/Dsk2a.CPP | 426 + SparrowOS/Adam/Dsk/Dsk2b.CPP | 549 + SparrowOS/Adam/Dsk/DskCDDVD.CPP | 598 + SparrowOS/Adam/Dsk/FileMgr.CPP | 765 + SparrowOS/Adam/FileBMP.CPP | 213 + SparrowOS/Adam/Gr/CSpriteBitMap.CPP | 603 + SparrowOS/Adam/Gr/CSpriteEd.CPP | 1221 + SparrowOS/Adam/Gr/CSpriteMesh.CPP | 1383 + SparrowOS/Adam/Gr/CSpriteNew.CPP | 235 + SparrowOS/Adam/Gr/CSpriteVect.CPP | 1281 + SparrowOS/Adam/Gr/Gr.CPP | 127 + SparrowOS/Adam/Gr/GrAsm.CPP | 765 + SparrowOS/Adam/Gr/GrBitMap.CPP | 1681 + SparrowOS/Adam/Gr/GrCfg.CPP | 10 + SparrowOS/Adam/Gr/GrChar.CPP | 106 + SparrowOS/Adam/Gr/GrComposites.CPP | 180 + SparrowOS/Adam/Gr/GrDC.CPP | 304 + SparrowOS/Adam/Gr/GrPrimatives.CPP | 1497 + SparrowOS/Adam/Gr/GrScreen.CPP | 785 + SparrowOS/Adam/Gr/GrSpritePlot.CPP | 523 + SparrowOS/Adam/Gr/GrVectMap.CPP | 486 + SparrowOS/Adam/Gr/MathGr.CPP | 1062 + SparrowOS/Adam/Grep.CPP | 258 + SparrowOS/Adam/Hash2a.CPP | 544 + SparrowOS/Adam/HeapLog.CPP | 159 + SparrowOS/Adam/LineCnt.CPP | 113 + SparrowOS/Adam/LinkChk.CPP | 78 + SparrowOS/Adam/LogIn.CPP | 168 + SparrowOS/Adam/Math2a.CPP | 138 + SparrowOS/Adam/MathODE.CPP | 637 + SparrowOS/Adam/MemRep.CPP | 238 + SparrowOS/Adam/Menu.CPP | 241 + SparrowOS/Adam/Merge.CPP | 88 + SparrowOS/Adam/Profiler.CPP | 200 + SparrowOS/Adam/S2T.CPP | 69 + SparrowOS/Adam/Snd/HDAudio.CPP | 610 + SparrowOS/Adam/Snd/HDCfg.CPP | 638 + SparrowOS/Adam/Snd/MathAudio.CPP | 239 + SparrowOS/Adam/Snd/Music.CPP | 260 + SparrowOS/Adam/Snd/Snd.CPP | 64 + SparrowOS/Adam/Snd/SndEffects.CPP | 68 + SparrowOS/Adam/Snd/SndFile.CPP | 316 + SparrowOS/Adam/Start.CPP | 29 + SparrowOS/Adam/TaskSettings.CPP | 121 + SparrowOS/Adam/ToHtml.CPP | 348 + SparrowOS/Adam/ToTXT.CPP | 146 + SparrowOS/Adam/Training.CPP | 242 + SparrowOS/Adam/Utils2a.CPP | 443 + SparrowOS/Adam/WallPaper.CPP | Bin 0 -> 6787 bytes SparrowOS/Adam/Window.CPP | 1553 + .../Adam/WordStat/WSDefs.DAT | Bin 26448621 -> 26207764 bytes SparrowOS/Adam/WordStat/WSDict.CPP | 306 + SparrowOS/Adam/WordStat/WSDictGen.CPP | 219 + SparrowOS/Adam/WordStat/WSMain.CPP | 722 + SparrowOS/Adam/WordStat/WSWords.DAT | Bin 0 -> 1242430 bytes SparrowOS/Adam/WordStat/WordStat.CPP | 93 + SparrowOS/Apps/AfterEgypt/AENotes.TXT | 7 + SparrowOS/Apps/AfterEgypt/AENotesPart2.TXT | 51 + SparrowOS/Apps/AfterEgypt/AESplash.TXT | Bin 0 -> 302128 bytes SparrowOS/Apps/AfterEgypt/AfterEgypt.CPP | Bin 0 -> 5803 bytes SparrowOS/Apps/AfterEgypt/Battle.CPP | Bin 0 -> 3329 bytes SparrowOS/Apps/AfterEgypt/Comics.CPP | 27 + SparrowOS/Apps/AfterEgypt/Comics/Moses01.TXT | Bin 0 -> 521 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses02.TXT | Bin 0 -> 3390 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses04.TXT | Bin 0 -> 454 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses05.TXT | Bin 0 -> 660 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses06.TXT | Bin 0 -> 651 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses07.TXT | Bin 0 -> 768 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses08.TXT | Bin 0 -> 503 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses10.TXT | Bin 0 -> 438 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses12.TXT | Bin 0 -> 388 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses13.TXT | Bin 0 -> 377 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses14.TXT | Bin 0 -> 627 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses15.TXT | Bin 0 -> 662 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses16.TXT | Bin 0 -> 1238 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses17.TXT | Bin 0 -> 530 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses18.TXT | Bin 0 -> 573 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses19.TXT | Bin 0 -> 507 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses20.TXT | Bin 0 -> 1040 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses21.TXT | Bin 0 -> 373 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses22.TXT | Bin 0 -> 1024 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses23.TXT | Bin 0 -> 473 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses24.TXT | Bin 0 -> 527 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses25.TXT | Bin 0 -> 569 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses26.TXT | Bin 0 -> 452 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses27.TXT | Bin 0 -> 603 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses28.TXT | Bin 0 -> 1138 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses29.TXT | Bin 0 -> 542 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses30.TXT | Bin 0 -> 596 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses31.TXT | Bin 0 -> 434 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses32.TXT | Bin 0 -> 419 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses34.TXT | Bin 0 -> 475 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses35.TXT | Bin 0 -> 433 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses36.TXT | Bin 0 -> 408 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses37.TXT | Bin 0 -> 473 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses38.TXT | Bin 0 -> 435 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses39.TXT | Bin 0 -> 950 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses40.TXT | Bin 0 -> 396 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses42.TXT | Bin 0 -> 417 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses43.TXT | Bin 0 -> 435 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses44.TXT | Bin 0 -> 435 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses45.TXT | Bin 0 -> 422 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses46.TXT | Bin 0 -> 1231 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses47.TXT | Bin 0 -> 384 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses48.TXT | Bin 0 -> 387 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses49.TXT | Bin 0 -> 731 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses50.TXT | Bin 0 -> 398 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses52.TXT | Bin 0 -> 459 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses53.TXT | Bin 0 -> 441 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses54.TXT | Bin 0 -> 743 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses55.TXT | Bin 0 -> 390 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses56.TXT | Bin 0 -> 800 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses57.TXT | Bin 0 -> 1234 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses58.TXT | Bin 0 -> 810 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses59.TXT | Bin 0 -> 484 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses60.TXT | Bin 0 -> 494 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses61.TXT | Bin 0 -> 412 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses62.TXT | Bin 0 -> 531 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses63.TXT | Bin 0 -> 700 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses64.TXT | Bin 0 -> 846 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses66.TXT | Bin 0 -> 388 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses69.TXT | Bin 0 -> 434 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses71.TXT | Bin 0 -> 682 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses72.TXT | Bin 0 -> 394 bytes SparrowOS/Apps/AfterEgypt/Comics/Moses73.TXT | Bin 0 -> 455 bytes SparrowOS/Apps/AfterEgypt/Horeb.CPP | Bin 0 -> 13077 bytes SparrowOS/Apps/AfterEgypt/Load.CPP | 16 + SparrowOS/Apps/AfterEgypt/Map.CPP | Bin 0 -> 1790 bytes SparrowOS/Apps/AfterEgypt/Quail.CPP | Bin 0 -> 2815 bytes SparrowOS/Apps/AfterEgypt/Run.CPP | 3 + SparrowOS/Apps/AfterEgypt/WaterRock.CPP | Bin 0 -> 3504 bytes SparrowOS/Apps/GrModels/BallGen.CPP | 132 + SparrowOS/Apps/GrModels/Load.CPP | 3 + SparrowOS/Apps/GrModels/ManGen.CPP | 295 + SparrowOS/Apps/GrModels/Models.CPP | 25 + SparrowOS/Apps/GrModels/Run.CPP | 2 + SparrowOS/Apps/HolySpirit/HSNotes.TXT | 41 + SparrowOS/Apps/HolySpirit/HolySpirit.CPP | 74 + SparrowOS/Apps/KeepAway/KeepAway.CPP | 1196 + SparrowOS/Apps/KeepAway/Load.CPP | 1 + SparrowOS/Apps/KeepAway/Run.CPP | 2 + SparrowOS/Apps/Logic/Load.CPP | 1 + SparrowOS/Apps/Logic/Logic.CPP | 613 + SparrowOS/Apps/Logic/Run.CPP | 2 + .../Apps/MusicOrgan/Examples/abiding.CPP | 75 + SparrowOS/Apps/MusicOrgan/Examples/abyss.CPP | 44 + .../Apps/MusicOrgan/Examples/almighty.CPP | 22 + .../Apps/MusicOrgan/Examples/appreciate.CPP | 22 + SparrowOS/Apps/MusicOrgan/Examples/awake.CPP | 77 + .../MusicOrgan/Examples/battlehymnsolo.CPP | Bin 0 -> 12886 bytes .../Apps/MusicOrgan/Examples/bedewed.CPP | Bin 0 -> 2044 bytes .../Apps/MusicOrgan/Examples/blinded.CPP | 51 + SparrowOS/Apps/MusicOrgan/Examples/born.CPP | 54 + .../Apps/MusicOrgan/Examples/childish.CPP | 22 + .../Apps/MusicOrgan/Examples/compassions.CPP | 24 + .../Apps/MusicOrgan/Examples/completed.CPP | Bin 0 -> 924 bytes SparrowOS/Apps/MusicOrgan/Examples/cosam.CPP | 30 + .../Apps/MusicOrgan/Examples/depending.CPP | 32 + .../Apps/MusicOrgan/Examples/despairing.CPP | 24 + .../MusicOrgan/Examples/determination.CPP | 20 + .../Apps/MusicOrgan/Examples/dialogue.CPP | Bin 0 -> 3382 bytes .../Apps/MusicOrgan/Examples/disputing.CPP | 26 + SparrowOS/Apps/MusicOrgan/Examples/doing.CPP | Bin 0 -> 2589 bytes .../Apps/MusicOrgan/Examples/downfall.CPP | 16 + SparrowOS/Apps/MusicOrgan/Examples/dream.CPP | 24 + .../Apps/MusicOrgan/Examples/efforts.CPP | 20 + SparrowOS/Apps/MusicOrgan/Examples/elijah.CPP | Bin 0 -> 17661 bytes .../Apps/MusicOrgan/Examples/environeth.CPP | 22 + .../Apps/MusicOrgan/Examples/epicurus.CPP | 42 + SparrowOS/Apps/MusicOrgan/Examples/exalt.CPP | 39 + SparrowOS/Apps/MusicOrgan/Examples/exiled.CPP | 62 + .../Apps/MusicOrgan/Examples/expedition.CPP | Bin 0 -> 1558 bytes .../Apps/MusicOrgan/Examples/fairness.CPP | 37 + .../Apps/MusicOrgan/Examples/feigned.CPP | 20 + SparrowOS/Apps/MusicOrgan/Examples/finger.CPP | Bin 0 -> 3968 bytes SparrowOS/Apps/MusicOrgan/Examples/first.CPP | Bin 0 -> 1885 bytes .../Apps/MusicOrgan/Examples/fishermen.CPP | Bin 0 -> 2038 bytes SparrowOS/Apps/MusicOrgan/Examples/fixing.CPP | 20 + SparrowOS/Apps/MusicOrgan/Examples/flung.CPP | 20 + SparrowOS/Apps/MusicOrgan/Examples/fog.CPP | Bin 0 -> 1572 bytes .../Apps/MusicOrgan/Examples/forasmuch.CPP | Bin 0 -> 2276 bytes SparrowOS/Apps/MusicOrgan/Examples/freaks.CPP | 24 + SparrowOS/Apps/MusicOrgan/Examples/free.CPP | 34 + .../Apps/MusicOrgan/Examples/furnishing.CPP | Bin 0 -> 5274 bytes SparrowOS/Apps/MusicOrgan/Examples/good.CPP | Bin 0 -> 1149 bytes .../Apps/MusicOrgan/Examples/gutenberg.CPP | Bin 0 -> 2093 bytes SparrowOS/Apps/MusicOrgan/Examples/happy.CPP | Bin 0 -> 1676 bytes .../Apps/MusicOrgan/Examples/honestly.CPP | 20 + SparrowOS/Apps/MusicOrgan/Examples/hope.CPP | Bin 0 -> 1668 bytes SparrowOS/Apps/MusicOrgan/Examples/image.CPP | 35 + .../Apps/MusicOrgan/Examples/inwardly.CPP | 20 + .../Apps/MusicOrgan/Examples/keeping.CPP | 22 + SparrowOS/Apps/MusicOrgan/Examples/kept.CPP | 33 + SparrowOS/Apps/MusicOrgan/Examples/limit.CPP | Bin 0 -> 1464 bytes SparrowOS/Apps/MusicOrgan/Examples/mary.CPP | 59 + .../Apps/MusicOrgan/Examples/mightest.CPP | 52 + SparrowOS/Apps/MusicOrgan/Examples/mildly.CPP | Bin 0 -> 1905 bytes SparrowOS/Apps/MusicOrgan/Examples/nay.CPP | 23 + SparrowOS/Apps/MusicOrgan/Examples/night.CPP | Bin 0 -> 3355 bytes SparrowOS/Apps/MusicOrgan/Examples/o.CPP | 20 + .../Apps/MusicOrgan/Examples/partake.CPP | Bin 0 -> 2194 bytes .../Apps/MusicOrgan/Examples/permitted.CPP | 20 + .../Apps/MusicOrgan/Examples/personal.CPP | 22 + .../Apps/MusicOrgan/Examples/population.CPP | 20 + .../Apps/MusicOrgan/Examples/proponent.CPP | 16 + .../Apps/MusicOrgan/Examples/prosper.CPP | Bin 0 -> 5575 bytes SparrowOS/Apps/MusicOrgan/Examples/psalm.CPP | 21 + .../Apps/MusicOrgan/Examples/purpose.CPP | Bin 0 -> 4622 bytes .../Apps/MusicOrgan/Examples/reasoning.CPP | 22 + .../Apps/MusicOrgan/Examples/reliance.CPP | 39 + .../Apps/MusicOrgan/Examples/reposes.CPP | 24 + .../Apps/MusicOrgan/Examples/restless.CPP | 19 + SparrowOS/Apps/MusicOrgan/Examples/rifled.CPP | 21 + SparrowOS/Apps/MusicOrgan/Examples/risen.CPP | 89 + .../Apps/MusicOrgan/Examples/satisfaction.CPP | Bin 0 -> 2664 bytes .../Apps/MusicOrgan/Examples/scriptures.CPP | Bin 0 -> 1075 bytes .../Apps/MusicOrgan/Examples/service.CPP | 35 + SparrowOS/Apps/MusicOrgan/Examples/shield.CPP | Bin 0 -> 2852 bytes .../Apps/MusicOrgan/Examples/signifies.CPP | 20 + SparrowOS/Apps/MusicOrgan/Examples/silver.CPP | 25 + SparrowOS/Apps/MusicOrgan/Examples/small.CPP | Bin 0 -> 10740 bytes .../Apps/MusicOrgan/Examples/struggles.CPP | Bin 0 -> 3081 bytes .../Apps/MusicOrgan/Examples/sustain.CPP | Bin 0 -> 2832 bytes .../Apps/MusicOrgan/Examples/teachings.CPP | 35 + .../Apps/MusicOrgan/Examples/thereupon.CPP | 76 + .../Apps/MusicOrgan/Examples/thither.CPP | 24 + SparrowOS/Apps/MusicOrgan/Examples/twins.CPP | 25 + SparrowOS/Apps/MusicOrgan/Examples/valued.CPP | Bin 0 -> 1509 bytes .../Apps/MusicOrgan/Examples/vengeance.CPP | Bin 0 -> 6567 bytes SparrowOS/Apps/MusicOrgan/Examples/verses.CPP | 49 + SparrowOS/Apps/MusicOrgan/Examples/villa.CPP | 22 + SparrowOS/Apps/MusicOrgan/Examples/wisdom.CPP | Bin 0 -> 1671 bytes .../Apps/MusicOrgan/Examples/witherto.CPP | 35 + .../Apps/MusicOrgan/Examples/worship.CPP | 20 + SparrowOS/Apps/MusicOrgan/Examples/you.CPP | 26 + SparrowOS/Apps/MusicOrgan/Examples/zip.CPP | Bin 0 -> 2508 bytes SparrowOS/Apps/MusicOrgan/Help.TXT | 26 + SparrowOS/Apps/MusicOrgan/Install.CPP | 1 + SparrowOS/Apps/MusicOrgan/JukeBox.CPP | 148 + SparrowOS/Apps/MusicOrgan/Load.CPP | 7 + SparrowOS/Apps/MusicOrgan/MakeSong.CPP | 155 + SparrowOS/Apps/MusicOrgan/Organ.CPP | 2033 + SparrowOS/Apps/MusicOrgan/OrganCtrls.CPP | 87 + SparrowOS/Apps/MusicOrgan/Run.CPP | 3 + SparrowOS/Apps/Pilgrims/Load.CPP | 7 + SparrowOS/Apps/Pilgrims/NewEngland.GRA | Bin 0 -> 14375 bytes SparrowOS/Apps/Pilgrims/Pilgrims.CPP | 773 + SparrowOS/Apps/Pilgrims/Run.CPP | 2 + SparrowOS/Apps/Span/Install.CPP | 1 + SparrowOS/Apps/Span/Load.CPP | 10 + SparrowOS/Apps/Span/Run.CPP | 3 + SparrowOS/Apps/Span/Span.HPP | 54 + SparrowOS/Apps/Span/SpanBridge1.CPP | 90 + SparrowOS/Apps/Span/SpanDerive.CPP | 47 + SparrowOS/Apps/Span/SpanMain.CPP | 504 + SparrowOS/Apps/Span/SpanNew.CPP | 127 + SparrowOS/Apps/Tanks/AIs/Human.CPP | 156 + SparrowOS/Apps/Tanks/AIs/SimpleAI.CPP | 76 + SparrowOS/Apps/Tanks/Install.CPP | 2 + SparrowOS/Apps/Tanks/Load.CPP | 1 + SparrowOS/Apps/Tanks/Run.CPP | 2 + SparrowOS/Apps/Tanks/Tanks.CPP | 1727 + SparrowOS/Apps/TimeClock/Install.CPP | 5 + SparrowOS/Apps/TimeClock/Load.CPP | 1 + SparrowOS/Apps/TimeClock/TimeClk.CPP | 156 + SparrowOS/Apps/Timeout/Load.CPP | 5 + SparrowOS/Apps/Timeout/Run.CPP | 2 + SparrowOS/Apps/Timeout/Timeout.CPP | 800 + SparrowOS/Apps/Vocabulary/Load.CPP | 5 + SparrowOS/Apps/Vocabulary/Run.CPP | 2 + SparrowOS/Apps/Vocabulary/VocabQuiz.CPP | 57 + SparrowOS/Apps/X-Caliber/Load.CPP | 8 + SparrowOS/Apps/X-Caliber/Run.CPP | 2 + SparrowOS/Apps/X-Caliber/X-Caliber.CPP | 1155 + SparrowOS/Apps/X-Caliber/XCCtrls.CPP | 140 + SparrowOS/Compiler/Assembler.CPP | 1487 + SparrowOS/Compiler/BackEnd.CPP | 5120 + SparrowOS/Compiler/CmpAsm.CPP | 693 + SparrowOS/Compiler/CmpDefs.HPP | 399 + SparrowOS/Compiler/CmpExts.CPP | 54 + SparrowOS/Compiler/CmpGlbls.CPP | 20 + SparrowOS/Compiler/CmpInit.CPP | 740 + SparrowOS/Compiler/CmpMain.CPP | 688 + SparrowOS/Compiler/CmpQueVect.CPP | 67 + SparrowOS/Compiler/CodeGen.CPP | 509 + SparrowOS/Compiler/Compiler.BIN | Bin 0 -> 266262 bytes SparrowOS/Compiler/Compiler.HPP | 84 + SparrowOS/Compiler/Compiler.MAP | 762 + SparrowOS/Compiler/Compiler.PRJ | 25 + SparrowOS/Compiler/Directives.CPP | 79 + SparrowOS/Compiler/ExpParser.CPP | 1297 + SparrowOS/Compiler/Hash1b.CPP | 158 + SparrowOS/Compiler/Lex.CPP | 1699 + SparrowOS/Compiler/OpCodes.TXT | 1330 + SparrowOS/Compiler/OptPass012.CPP | 2209 + SparrowOS/Compiler/OptPass3.CPP | 650 + SparrowOS/Compiler/OptPass4.CPP | 851 + SparrowOS/Compiler/OptPass5.CPP | 171 + SparrowOS/Compiler/OptPass6.CPP | 266 + SparrowOS/Compiler/OptPass789A.CPP | 1335 + SparrowOS/Compiler/StmtParser.CPP | 2056 + SparrowOS/Compiler/Unassembler.CPP | 879 + SparrowOS/Demo/AcctExample/Adam3bPkgs.CPP | 9 + .../Demo/AcctExample/Adam3dKeyPlugIns.CPP | 266 + SparrowOS/Demo/AcctExample/Adam3eWrappers.CPP | 9 + SparrowOS/Demo/AcctExample/Adam3fSys.CPP | 49 + SparrowOS/Demo/AcctExample/DoItOnce.CPP | 12 + SparrowOS/Demo/AcctExample/PersonalMenu.TXT | Bin 0 -> 51890 bytes .../Demo/AcctExample/TAD/Adam3aLocalize.CPP | 20 + .../AcctExample/TAD/Archive/FileSysISO3.CPP | 488 + .../Demo/AcctExample/TAD/Archive/Logo.TXT | Bin 0 -> 33188 bytes .../Demo/AcctExample/TAD/Archive/USB.CPP | 217 + .../Demo/AcctExample/TAD/Archive/USB1a.CPP | 114 + .../Demo/AcctExample/TAD/PersonalNotes.TXT | 186 + SparrowOS/Demo/AcctExample/TAD/Registry.CPP | 8 + SparrowOS/Demo/AcctExample/TSAdam.CPP | 413 + SparrowOS/Demo/AcctExample/TSDistribute.CPP | 543 + SparrowOS/Demo/AcctExample/TSIDComputer.CPP | 7 + SparrowOS/Demo/AcctExample/TSIDDft.CPP | 7 + SparrowOS/Demo/Asm/AsmAndC.CPP | 83 + SparrowOS/Demo/Asm/AsmAndC2.CPP | 98 + SparrowOS/Demo/Asm/AsmHelloWorld.CPP | 52 + SparrowOS/Demo/Asm/BuzzFizz.CPP | 48 + SparrowOS/Demo/Asm/DivByHand.CPP | 23 + SparrowOS/Demo/Asm/MulByHand.CPP | 70 + SparrowOS/Demo/Asm/PutDec.CPP | 43 + SparrowOS/Demo/AutoFile/AFDir.AUT | 15 + SparrowOS/Demo/AutoFile/AFEd.AUT | 28 + SparrowOS/Demo/AutoFile/AFEd.TXT | 230 + SparrowOS/Demo/AutoFile/AFPopUp.CPP | 12 + SparrowOS/Demo/AutoFile/AFPopUpWait.AUT | 26 + SparrowOS/Demo/AutoFile/AFProfile.AUT | 11 + SparrowOS/Demo/AutoFile/AFSetIP.CPP | 13 + SparrowOS/Demo/ClassMeta.CPP | 81 + SparrowOS/Demo/CompileDemo.CPP | 37 + SparrowOS/Demo/DateTime.CPP | 42 + SparrowOS/Demo/DbgDemo.CPP | 29 + SparrowOS/Demo/Define.CPP | 40 + SparrowOS/Demo/Digits.CPP | 77 + SparrowOS/Demo/Doc/CallBack.CPP | 93 + SparrowOS/Demo/Doc/CallBackAux2.CPP | 35 + SparrowOS/Demo/Doc/CursorMove.CPP | 38 + SparrowOS/Demo/Doc/Data.CPP | 64 + SparrowOS/Demo/Doc/DefineStr.CPP | 24 + .../Demo/Doc/DemoDoc.TXT | Bin 6712 -> 4786 bytes SparrowOS/Demo/Doc/FileRead.CPP | 68 + SparrowOS/Demo/Doc/Form.CPP | 44 + SparrowOS/Demo/Doc/MenuButton.CPP | 76 + SparrowOS/Demo/Doc/MenuSprite.CPP | Bin 0 -> 1126 bytes SparrowOS/Demo/Doc/TextDemo.CPP | 24 + SparrowOS/Demo/Doc/TreeDemo.CPP | 31 + SparrowOS/Demo/Doc/UnusedDefine.CPP | 84 + SparrowOS/Demo/Dsk/DataBase.CPP | 68 + SparrowOS/Demo/Dsk/FPrintF.CPP | 27 + SparrowOS/Demo/Dsk/OrderedIO.CPP | 17 + SparrowOS/Demo/Dsk/Raw.CPP | 41 + SparrowOS/Demo/Dsk/UnusedSpaceRep.CPP | 16 + SparrowOS/Demo/Exceptions.CPP | 71 + SparrowOS/Demo/ExtendedChars.CPP | 36 + SparrowOS/Demo/GameStarters/BigGuns.CPP | Bin 0 -> 6533 bytes SparrowOS/Demo/GameStarters/BirdLand.CPP | Bin 0 -> 6065 bytes SparrowOS/Demo/GameStarters/BlackDiamond.CPP | Bin 0 -> 10316 bytes SparrowOS/Demo/GameStarters/Bomber.CPP | Bin 0 -> 12956 bytes SparrowOS/Demo/GameStarters/Chess.CPP | 1047 + SparrowOS/Demo/GameStarters/ChessNet.CPP | Bin 0 -> 6084 bytes SparrowOS/Demo/GameStarters/CircleTrace.CPP | 124 + SparrowOS/Demo/GameStarters/Coach.CPP | Bin 0 -> 4884 bytes SparrowOS/Demo/GameStarters/Collision.CPP | Bin 0 -> 4171 bytes SparrowOS/Demo/GameStarters/DunGen.CPP | 509 + SparrowOS/Demo/GameStarters/EagleDive.CPP | 990 + SparrowOS/Demo/GameStarters/FPS.CPP | 659 + SparrowOS/Demo/GameStarters/Halogen.CPP | 163 + SparrowOS/Demo/GameStarters/MassSpring.CPP | 189 + .../Demo/GameStarters/MissileDefense.CPP | Bin 0 -> 11156 bytes SparrowOS/Demo/GameStarters/Navy.CPP | 770 + SparrowOS/Demo/GameStarters/RainDrops.CPP | 192 + SparrowOS/Demo/GameStarters/RawHide.CPP | 522 + SparrowOS/Demo/GameStarters/Rocket.CPP | Bin 0 -> 4722 bytes SparrowOS/Demo/GameStarters/RocketScience.CPP | Bin 0 -> 12983 bytes SparrowOS/Demo/GameStarters/Rocks.CPP | 708 + SparrowOS/Demo/GameStarters/SpaceShip.CPP | Bin 0 -> 13923 bytes SparrowOS/Demo/GameStarters/Squirt.CPP | 408 + .../Demo/GameStarters/Stadium/Stadium.CPP | Bin 0 -> 3791 bytes .../Demo/GameStarters/Stadium/Stadium.GRA | Bin 0 -> 4624 bytes .../Demo/GameStarters/Stadium/Stadium.TXT | Bin 0 -> 302128 bytes .../Demo/GameStarters/Stadium/StadiumGen.CPP | 30 + SparrowOS/Demo/GameStarters/TheDead.CPP | Bin 0 -> 7105 bytes SparrowOS/Demo/GameStarters/TicTacToe.CPP | 124 + SparrowOS/Demo/GameStarters/Varoom.CPP | Bin 0 -> 7651 bytes SparrowOS/Demo/GameStarters/WarGame.CPP | Bin 0 -> 8326 bytes SparrowOS/Demo/GameStarters/Wenceslas.CPP | 540 + SparrowOS/Demo/GameStarters/Whap.CPP | 173 + SparrowOS/Demo/GameStarters/Zing.CPP | Bin 0 -> 4882 bytes SparrowOS/Demo/GameStarters/ZoneOut.CPP | Bin 0 -> 9300 bytes SparrowOS/Demo/GlblVars.CPP | 94 + SparrowOS/Demo/Graphics/3DPoly.CPP | 117 + SparrowOS/Demo/Graphics/BSpline.CPP | 32 + SparrowOS/Demo/Graphics/Bling.CPP | 242 + SparrowOS/Demo/Graphics/Blink.CPP | 34 + SparrowOS/Demo/Graphics/Blot.CPP | 41 + SparrowOS/Demo/Graphics/Bounce.CPP | 57 + SparrowOS/Demo/Graphics/Box.CPP | 53 + SparrowOS/Demo/Graphics/CPUPlot.CPP | 64 + SparrowOS/Demo/Graphics/Camp.CPP | Bin 0 -> 22952 bytes SparrowOS/Demo/Graphics/CaptureScreen.CPP | 27 + SparrowOS/Demo/Graphics/Cartesian.CPP | 48 + SparrowOS/Demo/Graphics/CharGraphics.CPP | 35 + SparrowOS/Demo/Graphics/Circuit.CPP | 1191 + SparrowOS/Demo/Graphics/CommonAncestor.CPP | 119 + SparrowOS/Demo/Graphics/Dither.CPP | 16 + SparrowOS/Demo/Graphics/Doodle.CPP | 48 + SparrowOS/Demo/Graphics/DotNet.CPP | 14 + SparrowOS/Demo/Graphics/EdCSprite.CPP | Bin 0 -> 6792 bytes SparrowOS/Demo/Graphics/Extents.CPP | Bin 0 -> 1182 bytes SparrowOS/Demo/Graphics/Flowers.CPP | Bin 0 -> 4609 bytes SparrowOS/Demo/Graphics/FontEd.CPP | 142 + SparrowOS/Demo/Graphics/Golf.CPP | Bin 0 -> 1065 bytes SparrowOS/Demo/Graphics/Hanoi.CPP | 141 + SparrowOS/Demo/Graphics/Life.CPP | 97 + SparrowOS/Demo/Graphics/Lines.CPP | 26 + SparrowOS/Demo/Graphics/Logo.CPP | Bin 0 -> 33142 bytes SparrowOS/Demo/Graphics/LowPassFilter.CPP | 82 + SparrowOS/Demo/Graphics/MathAudioDemo.CPP | 100 + SparrowOS/Demo/Graphics/Mountain.CPP | Bin 0 -> 2860 bytes SparrowOS/Demo/Graphics/MyWallPaper.CPP | Bin 0 -> 6387 bytes SparrowOS/Demo/Graphics/NeatTrick.CPP | 21 + SparrowOS/Demo/Graphics/Palette.CPP | 27 + SparrowOS/Demo/Graphics/Pic2ASCII.CPP | 101 + SparrowOS/Demo/Graphics/Pick.CPP | Bin 0 -> 2685 bytes SparrowOS/Demo/Graphics/Pick3D.CPP | Bin 0 -> 6591 bytes SparrowOS/Demo/Graphics/PixelCollision.CPP | Bin 0 -> 3388 bytes SparrowOS/Demo/Graphics/PoleZeros.CPP | 171 + SparrowOS/Demo/Graphics/PredatorPrey.CPP | 82 + SparrowOS/Demo/Graphics/RotateTank.CPP | Bin 0 -> 2907 bytes SparrowOS/Demo/Graphics/ScrollBars.CPP | Bin 0 -> 4524 bytes SparrowOS/Demo/Graphics/Shading.CPP | 180 + SparrowOS/Demo/Graphics/Shadow.CPP | Bin 0 -> 2246 bytes SparrowOS/Demo/Graphics/SliderCtrl.CPP | 111 + SparrowOS/Demo/Graphics/Speedline.CPP | 49 + SparrowOS/Demo/Graphics/SpritePlot.CPP | Bin 0 -> 33670 bytes SparrowOS/Demo/Graphics/SpritePlot3D.CPP | Bin 0 -> 1210 bytes SparrowOS/Demo/Graphics/SpritePut.CPP | Bin 0 -> 24857 bytes SparrowOS/Demo/Graphics/SpritePutExt.CPP | 28 + SparrowOS/Demo/Graphics/SpriteText.CPP | Bin 0 -> 867 bytes SparrowOS/Demo/Graphics/Symmetry.CPP | 61 + SparrowOS/Demo/Graphics/Transform.CPP | Bin 0 -> 8994 bytes SparrowOS/Demo/Graphics/WallPaperCtrl.CPP | 103 + SparrowOS/Demo/Graphics/WinZBuf.CPP | 22 + SparrowOS/Demo/KeyBitMap.CPP | Bin 0 -> 927 bytes SparrowOS/Demo/Lectures/AndNotMod.CPP | 53 + SparrowOS/Demo/Lectures/FixedPoint.CPP | 103 + .../Demo/Lectures/FixedPointAdvanced.CPP | 164 + SparrowOS/Demo/Lectures/GraphicsCPULoad.CPP | 76 + SparrowOS/Demo/Lectures/InterruptDemo.CPP | 90 + SparrowOS/Demo/Lectures/MiniCompiler.CPP | 238 + SparrowOS/Demo/Lectures/MiniGrLib.CPP | 135 + SparrowOS/Demo/Lectures/Optimization.CPP | 115 + SparrowOS/Demo/Lectures/PCIInterrupts.CPP | 73 + SparrowOS/Demo/Lectures/PageTableEntries1.CPP | 48 + SparrowOS/Demo/Lectures/PageTableEntries2.CPP | 46 + SparrowOS/Demo/Lectures/Ring3.CPP | 83 + SparrowOS/Demo/Lectures/ScreenMemory.CPP | 55 + SparrowOS/Demo/Lectures/Spinning.CPP | 109 + SparrowOS/Demo/Lectures/Uncached.CPP | 53 + SparrowOS/Demo/MagicPairs.CPP | 372 + SparrowOS/Demo/Maze.CPP | 107 + SparrowOS/Demo/MsgLoop.CPP | 20 + SparrowOS/Demo/MultiCore/Clouds.CPP | 194 + SparrowOS/Demo/MultiCore/Interrupts.CPP | 24 + SparrowOS/Demo/MultiCore/Layers3DJob.CPP | Bin 0 -> 2391 bytes SparrowOS/Demo/MultiCore/LayersSpawn.CPP | 83 + SparrowOS/Demo/MultiCore/LoadTest.CPP | 57 + SparrowOS/Demo/MultiCore/Lock.CPP | 64 + SparrowOS/Demo/MultiCore/MPAdd.CPP | 85 + SparrowOS/Demo/MultiCore/MPPrintF.CPP | 18 + SparrowOS/Demo/MultiCore/Noise.CPP | 63 + SparrowOS/Demo/MultiCore/Palindrome.CPP | 99 + SparrowOS/Demo/MultiCore/Primes.CPP | 76 + SparrowOS/Demo/MultiCore/RadixSort.CPP | 165 + SparrowOS/Demo/MultiCore/Sort.CPP | 113 + SparrowOS/Demo/OldSchool/Demo1/MD1.CPP | 8 + SparrowOS/Demo/OldSchool/Demo1/MD2.CPP | 8 + SparrowOS/Demo/OldSchool/Demo1/MDMain.CPP | 28 + SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.HPP | 1 + SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.PRJ | 13 + SparrowOS/Demo/OldSchool/Demo1/ReadMe.TXT | 11 + SparrowOS/Demo/OldSchool/Demo2/MakeFile.CPP | 24 + SparrowOS/Demo/OldSchool/Demo2/OD1.PRJ | 12 + SparrowOS/Demo/OldSchool/Demo2/OD2.PRJ | 31 + SparrowOS/Demo/OldSchool/Demo2/ODMain.PRJ | 37 + SparrowOS/Demo/OldSchool/Demo2/ObjDemo.HPP | 11 + SparrowOS/Demo/OldSchool/Demo2/ReadMe.TXT | 27 + SparrowOS/Demo/OldSchool/ReadMe.TXT | 11 + SparrowOS/Demo/ParenWarn.CPP | 19 + SparrowOS/Demo/PhoneNumWords.CPP | 64 + SparrowOS/Demo/PrintF.CPP | 33 + SparrowOS/Demo/Progress.CPP | 36 + SparrowOS/Demo/Prompt.CPP | 25 + SparrowOS/Demo/PullDownMenu.CPP | 89 + SparrowOS/Demo/RegistryDemo.CPP | 26 + SparrowOS/Demo/ScreenCodes.CPP | 25 + SparrowOS/Demo/Shared/TreeDemoJoin.CPP | 25 + SparrowOS/Demo/Snd/ASCIIOrgan.CPP | Bin 0 -> 4180 bytes SparrowOS/Demo/Snd/BeatFreq.CPP | 68 + SparrowOS/Demo/Snd/Echo.CPP | 96 + SparrowOS/Demo/Snd/MorseCode.CPP | 181 + SparrowOS/Demo/Snd/OhGreat.CPP | 41 + SparrowOS/Demo/Snd/PolyPhonic.CPP | 98 + SparrowOS/Demo/Snd/Record.CPP | 120 + SparrowOS/Demo/Snd/SndScope.CPP | 46 + SparrowOS/Demo/Snd/Synth.CPP | 280 + SparrowOS/Demo/Snd/WaterFowl.CPP | Bin 0 -> 3879 bytes SparrowOS/Demo/Spy.CPP | 65 + SparrowOS/Demo/StkGrow.CPP | 54 + SparrowOS/Demo/SubIntAccess.CPP | 32 + SparrowOS/Demo/SuggestSpelling.CPP | 91 + SparrowOS/Demo/TimeIns.CPP | 44 + SparrowOS/Demo/WebLogExample/WebLogRep.CPP | 443 + SparrowOS/Demo/WebLogExample/WebLogRep.TXT | 194 + .../Demo/WebLogExample/WebLogScramble.CPP | 63 + .../Demo/WebLogExample/access_090509.LOG | 756 + .../Demo/WebLogExample/access_090510.LOG | 788 + SparrowOS/Demo/WinMgr2.CPP | 161 + SparrowOS/Demo/WordSearch.CPP | 155 + SparrowOS/Doc/Acknowledgements.TXT | 55 + SparrowOS/Doc/AutoFile.TXT | 8 + SparrowOS/Doc/Bit.TXT | 16 + SparrowOS/Doc/Boot.TXT | Bin 0 -> 4450 bytes SparrowOS/Doc/ChangeLog.TXT | 81 + SparrowOS/Doc/Char.TXT | 16 + SparrowOS/Doc/CmdLine.TXT | 32 + SparrowOS/Doc/Confuse.TXT | 49 + SparrowOS/Doc/Constitution.TXT | 34 + LT/Doc/CtrlL.MUZ => SparrowOS/Doc/CtrlL.TXT | 79 +- SparrowOS/Doc/Ctrls.TXT | 3 + SparrowOS/Doc/Customize.TXT | 9 + SparrowOS/Doc/CutCorners.TXT | 11 + SparrowOS/Doc/D3.TXT | 4 + SparrowOS/Doc/Dbg.TXT | 46 + SparrowOS/Doc/Define.TXT | 6 + SparrowOS/Doc/DemoIndex.TXT | 198 + SparrowOS/Doc/Differences.TXT | 226 + SparrowOS/Doc/Directives.TXT | 59 + SparrowOS/Doc/Doc.TXT | 8 + SparrowOS/Doc/Dollar.TXT | 170 + SparrowOS/Doc/EdPullDown.TXT | 78 + SparrowOS/Doc/Features.TXT | 43 + SparrowOS/Doc/FileMgr.TXT | 110 + SparrowOS/Doc/FileMgrPullDown.TXT | 26 + SparrowOS/Doc/Glossary.TXT | 231 + SparrowOS/Doc/GrSprite.TXT | 8 + SparrowOS/Doc/Graphics.TXT | Bin 0 -> 7219 bytes SparrowOS/Doc/Grub.TXT | 24 + SparrowOS/Doc/GuideLines.TXT | 71 + SparrowOS/Doc/Hash.TXT | 4 + SparrowOS/Doc/HelpIndex.TXT | 183 + SparrowOS/Doc/HelpSystem.TXT | 6 + SparrowOS/Doc/ImportExports.TXT | 109 + SparrowOS/Doc/InputPointer.TXT | 7 + SparrowOS/Doc/Install.TXT | 48 + SparrowOS/Doc/KeyBoard.TXT | 69 + SparrowOS/Doc/Lex.TXT | 4 + SparrowOS/Doc/Mem.TXT | Bin 0 -> 6558 bytes SparrowOS/Doc/Menus.TXT | 27 + SparrowOS/Doc/MultiCore.TXT | 14 + SparrowOS/Doc/MultiTasking.TXT | 22 + SparrowOS/Doc/Mysteries.TXT | 67 + SparrowOS/Doc/NamedFrame.TXT | 2 + SparrowOS/Doc/NewFileSystem.TXT | 7 + SparrowOS/Doc/ODE.TXT | 7 + SparrowOS/Doc/Options.TXT | 21 + SparrowOS/Doc/Profiler.TXT | 10 + SparrowOS/Doc/Que.TXT | 6 + SparrowOS/Doc/Quirks.TXT | 48 + SparrowOS/Doc/Requirements.TXT | 32 + SparrowOS/Doc/Snd.TXT | 6 + SparrowOS/Doc/Splash.TXT | 31 + SparrowOS/Doc/Start.TXT | 31 + SparrowOS/Doc/Strategy.TXT | 48 + SparrowOS/Doc/SysPgmGuide.TXT | 31 + SparrowOS/Doc/TSZ.TXT | 38 + SparrowOS/Doc/TimeCycles.TXT | 3 + SparrowOS/Doc/TimeDate.TXT | 5 + SparrowOS/Doc/TimeHPET.TXT | 1 + SparrowOS/Doc/TimeJiffy.TXT | 9 + SparrowOS/Doc/Tips.TXT | 143 + SparrowOS/Doc/Transform.TXT | 14 + SparrowOS/Doc/TrivialSolutions.TXT | 20 + SparrowOS/Doc/Upgrade.TXT | 8 + SparrowOS/Doc/Welcome.TXT | 67 + SparrowOS/Doc/WordStat.TXT | 8 + LT/Text/Bible.TXZ => SparrowOS/Misc/Bible.TXT | 200234 +++++++-------- SparrowOS/Misc/Dollar.CPP | 31 + SparrowOS/Misc/OSTestSuite.CPP | 2418 + SparrowOS/Misc/PCIDevices.TXT | 8739 + SparrowOS/Misc/Tour/Tour.AUT | 39 + SparrowOS/Misc/Tour/Tour1.AUT | 108 + SparrowOS/Misc/Tour/Tour2.AUT | 124 + SparrowOS/Misc/Tour/Tour3.AUT | 112 + SparrowOS/Misc/Tour/Tour4.AUT | 37 + SparrowOS/Misc/Tour/Tour5.AUT | 58 + SparrowOS/Misc/Tour/Tour6.AUT | 76 + SparrowOS/Misc/Tour/Tour7.AUT | 39 + SparrowOS/Misc/Tour/Tour8.AUT | 54 + SparrowOS/Misc/Tour/Tour9.AUT | 28 + SparrowOS/Misc/Tour/TourA.AUT | 10 + SparrowOS/OSMain/Adam1.CPP | 12 + SparrowOS/OSMain/Adam1a.HPP | 3607 + SparrowOS/OSMain/Adam1b.HPP | 301 + SparrowOS/OSMain/Adam1c.HPP | 808 + SparrowOS/OSMain/BIOS32.CPP | 400 + SparrowOS/OSMain/BootDefs.HPP | 30 + SparrowOS/OSMain/Compress.CPP | 324 + SparrowOS/OSMain/Date.CPP | 197 + SparrowOS/OSMain/Dbg1a.CPP | 558 + SparrowOS/OSMain/Define1a.CPP | 129 + SparrowOS/OSMain/Display.CPP | 279 + SparrowOS/OSMain/Dsk/ATADef.HPP | 31 + SparrowOS/OSMain/Dsk/Dsk1a.CPP | 652 + SparrowOS/OSMain/Dsk/Dsk1b.CPP | 468 + SparrowOS/OSMain/Dsk/Dsk1c.CPP | 386 + SparrowOS/OSMain/Dsk/DskATA.CPP | 655 + SparrowOS/OSMain/Dsk/DskAddDev.CPP | 361 + SparrowOS/OSMain/Dsk/DskCFile.CPP | 281 + SparrowOS/OSMain/Dsk/DskCache.CPP | 177 + SparrowOS/OSMain/Dsk/DskDir.CPP | 268 + SparrowOS/OSMain/Dsk/DskStr.CPP | 379 + SparrowOS/OSMain/Dsk/FileSysFAT.CPP | 1001 + SparrowOS/OSMain/Dsk/FileSysISO1.CPP | 312 + SparrowOS/OSMain/Dsk/FileSysNative.CPP | 715 + SparrowOS/OSMain/EdLite.CPP | 286 + SparrowOS/OSMain/Except.CPP | 230 + SparrowOS/OSMain/FIFO.CPP | 169 + .../OSMain/Font8x8.CPP | 519 +- SparrowOS/OSMain/Hash1a.CPP | 802 + SparrowOS/OSMain/Interrupts.CPP | 241 + SparrowOS/OSMain/KbdMouse/InputPointer.CPP | 128 + SparrowOS/OSMain/KbdMouse/Keyboard.CPP | 546 + SparrowOS/OSMain/KbdMouse/Message.CPP | 233 + SparrowOS/OSMain/KbdMouse/Mouse.CPP | 352 + SparrowOS/OSMain/Math1a.CPP | 621 + SparrowOS/OSMain/Math1b.CPP | 226 + SparrowOS/OSMain/Memory.CPP | 1424 + SparrowOS/OSMain/Misc1a.CPP | 384 + SparrowOS/OSMain/MultiProc.CPP | 521 + SparrowOS/OSMain/OSCfg.CPP | 233 + SparrowOS/OSMain/OSEnd.CPP | 257 + SparrowOS/OSMain/OSExts.CPP | 104 + SparrowOS/OSMain/OSGlbls.CPP | 132 + SparrowOS/OSMain/OSMain.MAP | 3443 + SparrowOS/OSMain/OSMain.PRJ | 69 + SparrowOS/OSMain/OSStart.CPP | 535 + SparrowOS/OSMain/PSect.CPP | 256 + SparrowOS/OSMain/QSort.CPP | 247 + SparrowOS/OSMain/Scheduler.CPP | 414 + SparrowOS/OSMain/Static.HPP | 14 + SparrowOS/OSMain/StaticAdam.HPP | 2 + SparrowOS/OSMain/Str1a.CPP | 2665 + SparrowOS/OSMain/Task1a.CPP | 586 + SparrowOS/OSMain/TaskCmd.CPP | 422 + SparrowOS/OSMain/Utils1a.CPP | 330 + SparrowOS/ReadMe.TXT | 20 + Windows/BIN/LTZ.exe | Bin 114719 -> 0 bytes Windows/BIN/MFC42D.DLL | Bin 929844 -> 0 bytes Windows/BIN/MFCO42D.DLL | Bin 798773 -> 0 bytes Windows/BIN/MSVCP60D.DLL | Bin 516173 -> 0 bytes Windows/BIN/MSVCRTD.DLL | Bin 434252 -> 0 bytes Windows/LTZ/LTZ.APS | Bin 16844 -> 0 bytes Windows/LTZ/LTZ.clw | 14 - Windows/LTZ/LTZ.cpp | 335 - Windows/LTZ/LTZ.dsp | 129 - Windows/LTZ/LTZ.dsw | 29 - Windows/LTZ/LTZ.h | 101 - Windows/LTZ/LTZ.ncb | Bin 82944 -> 0 bytes Windows/LTZ/LTZ.opt | Bin 48640 -> 0 bytes Windows/LTZ/LTZ.plg | 35 - Windows/LTZ/LTZ.rc | 70 - Windows/LTZ/Resource.h | 16 - Windows/LTZ/StdAfx.cpp | 8 - Windows/LTZ/StdAfx.h | 30 - Windows/ReadMe.TXT | 5 + Windows/TSZSetUp.ZIP | Bin 0 -> 7223759 bytes 1218 files changed, 247142 insertions(+), 165507 deletions(-) create mode 100644 0000Boot/0000OSMain.BIN.C delete mode 100644 0000Boot/Boot.BIC rename 0000Boot/{CDBoot.BIZ => BootCD.BIN} (64%) delete mode 100644 0000Boot/BootLoader.BIC create mode 100644 0000Boot/BootMHD2.BIN.C create mode 100644 0000Boot/OldMBR.BIN.C delete mode 100644 LT/Accts/Adam3.APZ delete mode 100644 LT/Accts/Fault.CPZ delete mode 100644 LT/Accts/Favor.MUZ delete mode 100644 LT/Accts/Install/Adam3.APZ delete mode 100644 LT/Accts/Install/DoIt.CPZ delete mode 100644 LT/Accts/Install/User.CPZ delete mode 100644 LT/Accts/PicWords3.APZ delete mode 100644 LT/Accts/Servant.CPZ delete mode 100644 LT/Accts/Songs/Adam3.APZ delete mode 100644 LT/Accts/Songs/DoIt.CPZ delete mode 100644 LT/Accts/Songs/User.CPZ delete mode 100644 LT/Accts/System.CPZ delete mode 100644 LT/Accts/Tour/DoIt.CPZ delete mode 100644 LT/Accts/Tour/Tour.AUZ delete mode 100644 LT/Accts/Tour/Tour1.AUZ delete mode 100644 LT/Accts/Tour/Tour2.AUZ delete mode 100644 LT/Accts/Tour/Tour3.AUZ delete mode 100644 LT/Accts/Tour/Tour4.AUZ delete mode 100644 LT/Accts/Tour/Tour5.AUZ delete mode 100644 LT/Accts/Tour/User.CPZ delete mode 100644 LT/Accts/User.CPZ delete mode 100644 LT/Accts/User.MUZ delete mode 100644 LT/Accts/User/DoIt.CPZ delete mode 100644 LT/Adam/Adam2.APZ delete mode 100644 LT/Adam/AdamExt.HPZ delete mode 100644 LT/Adam/AutoFile.APZ delete mode 100644 LT/Adam/Comm.APZ delete mode 100644 LT/Adam/Dbg.APZ delete mode 100644 LT/Adam/Disk10.APZ delete mode 100644 LT/Adam/DiskCDDVD.APZ delete mode 100644 LT/Adam/DisplayKeys.APZ delete mode 100644 LT/Adam/FileManager.APZ delete mode 100644 LT/Adam/Gr/Gr.APZ delete mode 100644 LT/Adam/Gr/GrBitMap.APZ delete mode 100644 LT/Adam/Gr/GrChar.APZ delete mode 100644 LT/Adam/Gr/GrElem.APZ delete mode 100644 LT/Adam/Gr/GrMath.APZ delete mode 100644 LT/Adam/Gr/GrPlot.APZ delete mode 100644 LT/Adam/Gr/GrScreen.APZ delete mode 100644 LT/Adam/GrAsm/Gr1.ASZ delete mode 100644 LT/Adam/GrAsm/GrAsm.BIZ delete mode 100644 LT/Adam/GrAsm/GrAsm.HPZ delete mode 100644 LT/Adam/GrAsm/GrAsm.MPZ delete mode 100644 LT/Adam/GrAsm/GrAsm.SPZ delete mode 100644 LT/Adam/HashUtils.APZ delete mode 100644 LT/Adam/IncCompress.APZ delete mode 100644 LT/Adam/InputPointer.APZ delete mode 100644 LT/Adam/JoyStick.APZ delete mode 100644 LT/Adam/KbdMouse.APZ delete mode 100644 LT/Adam/LPT.APZ delete mode 100644 LT/Adam/LogIn.APZ delete mode 100644 LT/Adam/Ltf/Ltf.APZ delete mode 100644 LT/Adam/Ltf/LtfCtrlL.APZ delete mode 100644 LT/Adam/Ltf/LtfEdit.APZ delete mode 100644 LT/Adam/Ltf/LtfFile.APZ delete mode 100644 LT/Adam/Ltf/LtfMacro.APZ delete mode 100644 LT/Adam/Ltf/LtfMain.APZ delete mode 100644 LT/Adam/Ltf/LtfNew.APZ delete mode 100644 LT/Adam/Ltf/LtfPlain.APZ delete mode 100644 LT/Adam/Ltf/LtfPopUp.APZ delete mode 100644 LT/Adam/Ltf/LtfRecalc.APZ delete mode 100644 LT/Adam/Math.APZ delete mode 100644 LT/Adam/Message.APZ delete mode 100644 LT/Adam/Music.APZ delete mode 100644 LT/Adam/ODE.APZ delete mode 100644 LT/Adam/PicWords2.APZ delete mode 100644 LT/Adam/Remote.APZ delete mode 100644 LT/Adam/Utils.APZ delete mode 100644 LT/Adam/WallPaper.APZ delete mode 100644 LT/Adam/Window.APZ delete mode 100644 LT/Adam/WordStat/WSDict.APZ delete mode 100644 LT/Adam/WordStat/WSMain.APZ delete mode 100644 LT/Adam/WordStat/WordStat.APZ delete mode 100644 LT/Adam/WordStat/WsWords.DTZ delete mode 100644 LT/Apps/MusicOrgan/Examples/action.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/alike.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/almighty.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/appreciate.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/approve.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/architects.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/bedewed.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/blinded.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/ceaseth.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/childish.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/comprise.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/depending.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/discerning.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/eternity.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/everlastingly.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/exalt.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/fairness.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/first.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/fishermen.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/forgive.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/forstress.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/fun.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/gladdened.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/good.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/heldest.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/heretofore.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/hope.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/including.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/income.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/job.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/kept.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/king.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/knewest.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/leaving.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/limit.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/littleton.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/meekness.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/mentioned.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/mildly.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/minds.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/multiple.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/my.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/nay.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/partake.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/permitted.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/preparing.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/pretend.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/prosper.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/providence.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/proximate.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/quotation.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/regarded.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/represented.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/riddle.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/risen.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/rmunday.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/scarcely.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/seasons.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/servant.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/shield.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/sings.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/small.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/soothed.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/stiff.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/stores.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/struggles.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/sweeter.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/thereby.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/tolerated.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/treating.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/unlearned.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/valued.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/vengeance.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/warmth.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/wisdom.CPZ delete mode 100644 LT/Apps/MusicOrgan/Examples/zip.CPZ delete mode 100644 LT/Apps/MusicOrgan/Install.CPZ delete mode 100644 LT/Apps/MusicOrgan/JukeBox.CPZ delete mode 100644 LT/Apps/MusicOrgan/Load.CPZ delete mode 100644 LT/Apps/MusicOrgan/MakeSong.CPZ delete mode 100644 LT/Apps/MusicOrgan/Organ.CPZ delete mode 100644 LT/Apps/MusicOrgan/Run.CPZ delete mode 100644 LT/Apps/Rocks/Load.CPZ delete mode 100644 LT/Apps/Rocks/Rocks.CPZ delete mode 100644 LT/Apps/Rocks/Run.CPZ delete mode 100644 LT/Apps/TimeClock/Install.CPZ delete mode 100644 LT/Apps/TimeClock/Load.CPZ delete mode 100644 LT/Apps/TimeClock/TimeClk.CPZ delete mode 100644 LT/Apps/Vocabulary/Load.CPZ delete mode 100644 LT/Apps/Vocabulary/Run.CPZ delete mode 100644 LT/Apps/Vocabulary/VocabQuiz.CPZ delete mode 100644 LT/Apps/WarGame/Load.CPZ delete mode 100644 LT/Apps/WarGame/Run.CPZ delete mode 100644 LT/Apps/WarGame/WarGame.CPZ delete mode 100644 LT/Apps/WarGame/WarGame.MUZ delete mode 100644 LT/Compiler/AsmMain.CPZ delete mode 100644 LT/Compiler/CmpAsm.ASZ delete mode 100644 LT/Compiler/CmpDefs.HPZ delete mode 100644 LT/Compiler/CmpDefs2.HPZ delete mode 100644 LT/Compiler/CmpGlbls.CPZ delete mode 100644 LT/Compiler/CmpInit.CPZ delete mode 100644 LT/Compiler/CmpMain.CPZ delete mode 100644 LT/Compiler/Code.CPZ delete mode 100644 LT/Compiler/CodeGen.CPZ delete mode 100644 LT/Compiler/Compiler.BIZ delete mode 100644 LT/Compiler/Compiler.HPZ delete mode 100644 LT/Compiler/Compiler.MPZ delete mode 100644 LT/Compiler/Compiler.SPZ delete mode 100644 LT/Compiler/ExpParser.CPZ delete mode 100644 LT/Compiler/Lex.CPZ delete mode 100644 LT/Compiler/OpCodes.TXZ delete mode 100644 LT/Compiler/OptPass1.CPZ delete mode 100644 LT/Compiler/OptPass2.CPZ delete mode 100644 LT/Compiler/OptPass3.CPZ delete mode 100644 LT/Compiler/OptPass4.CPZ delete mode 100644 LT/Compiler/OptPass5.CPZ delete mode 100644 LT/Compiler/OptPass6.CPZ delete mode 100644 LT/Compiler/Renum.AUZ delete mode 100644 LT/Compiler/SPrintF2.CPZ delete mode 100644 LT/Compiler/StmtParser.CPZ delete mode 100644 LT/Demo/ASCIIOrgan.CPZ delete mode 100644 LT/Demo/AutoFile/Demo1.AUZ delete mode 100644 LT/Demo/AutoFile/Demo2.AUZ delete mode 100644 LT/Demo/AutoFile/Demo3.AUZ delete mode 100644 LT/Demo/AutoFile/Demo3.TXZ delete mode 100644 LT/Demo/AutoFile/Demo4.CPZ delete mode 100644 LT/Demo/ByteAccess.CPZ delete mode 100644 LT/Demo/CircleTrace.CPZ delete mode 100644 LT/Demo/CommTerminal.CPZ delete mode 100644 LT/Demo/DataBase.CPZ delete mode 100644 LT/Demo/DateTime.CPZ delete mode 100644 LT/Demo/Dawg.CPZ delete mode 100644 LT/Demo/Digits.CPZ delete mode 100644 LT/Demo/Doodle.CPZ delete mode 100644 LT/Demo/Doodle2.CPZ delete mode 100644 LT/Demo/Exceptions.CPZ delete mode 100644 LT/Demo/FPrintF.CPZ delete mode 100644 LT/Demo/GameStarters/Adventure.CPZ delete mode 100644 LT/Demo/GameStarters/BlackDiamond.CPZ delete mode 100644 LT/Demo/GameStarters/BushLeague.CPZ delete mode 100644 LT/Demo/GameStarters/FlightSim.CPZ delete mode 100644 LT/Demo/GameStarters/Goons.CPZ delete mode 100644 LT/Demo/GameStarters/SpaceShip.CPZ delete mode 100644 LT/Demo/GameStarters/Swing.CPZ delete mode 100644 LT/Demo/GetInput.CPZ delete mode 100644 LT/Demo/Graphics/BSpline.CPZ delete mode 100644 LT/Demo/Graphics/Blot.CPZ delete mode 100644 LT/Demo/Graphics/Box.CPZ delete mode 100644 LT/Demo/Graphics/CPUPlot.CPZ delete mode 100644 LT/Demo/Graphics/CharGraphics.CPZ delete mode 100644 LT/Demo/Graphics/DotNet.CPZ delete mode 100644 LT/Demo/Graphics/MyWallPaper.APZ delete mode 100644 LT/Demo/Graphics/Pick.CPZ delete mode 100644 LT/Demo/Graphics/Sprite1.CPZ delete mode 100644 LT/Demo/Graphics/Sprite2.CPZ delete mode 100644 LT/Demo/Graphics/Sprite3.CPZ delete mode 100644 LT/Demo/Graphics/Sprite4.CPZ delete mode 100644 LT/Demo/Ltf.CPZ delete mode 100644 LT/Demo/Ltf2.CPZ delete mode 100644 LT/Demo/MsgLoop.CPZ delete mode 100644 LT/Demo/MultiCore.CPZ delete mode 100644 LT/Demo/MultiCore1.CPZ delete mode 100644 LT/Demo/MultiCore2.CPZ delete mode 100644 LT/Demo/Music.CPZ delete mode 100644 LT/Demo/NeatTrick.CPZ delete mode 100644 LT/Demo/OrderedIO.CPZ delete mode 100644 LT/Demo/Spy.CPZ delete mode 100644 LT/Demo/TAD/Adam3.APZ delete mode 100644 LT/Demo/TAD/DoIt.CPZ delete mode 100644 LT/Demo/TAD/Fault.CPZ delete mode 100644 LT/Demo/TAD/Favor.MUZ delete mode 100644 LT/Demo/TAD/PlugIns.APZ delete mode 100644 LT/Demo/TAD/TADAdam.APZ delete mode 100644 LT/Demo/TAD/User.CPZ delete mode 100644 LT/Demo/TAD/User.MUZ delete mode 100644 LT/Demo/TextDemo.CPZ delete mode 100644 LT/Demo/TimeIns.CPZ delete mode 100644 LT/Demo/TreeDemo.CPZ delete mode 100644 LT/Demo/TreeDemoJoin.CPZ delete mode 100644 LT/Demo/WinMgr2.APZ delete mode 100644 LT/Doc/AutoFile.TXZ delete mode 100644 LT/Doc/Bit.TXZ delete mode 100644 LT/Doc/Boot.TXZ delete mode 100644 LT/Doc/Char.TXZ delete mode 100644 LT/Doc/Comm.TXZ delete mode 100644 LT/Doc/Confuse.TXZ delete mode 100644 LT/Doc/Customize.TXZ delete mode 100644 LT/Doc/Differences.TXZ delete mode 100644 LT/Doc/Dollar.TXZ delete mode 100644 LT/Doc/Edit.MUZ delete mode 100644 LT/Doc/FileManager.MUZ delete mode 100644 LT/Doc/GrElem.TXZ delete mode 100644 LT/Doc/Graphics.TXZ delete mode 100644 LT/Doc/GuideLines.TXZ delete mode 100644 LT/Doc/Hardware.TXZ delete mode 100644 LT/Doc/Hash.TXZ delete mode 100644 LT/Doc/Help.TXZ delete mode 100644 LT/Doc/HelpIndex.TXZ delete mode 100644 LT/Doc/InputPointer.TXZ delete mode 100644 LT/Doc/Install.TXZ delete mode 100644 LT/Doc/LTZ.TXZ delete mode 100644 LT/Doc/Lectures/LoseThos.TXZ delete mode 100644 LT/Doc/Lectures/Proverbs.TXZ delete mode 100644 LT/Doc/Lectures/ScaledInt.CPZ delete mode 100644 LT/Doc/Logo.TXZ delete mode 100644 LT/Doc/Ltf.TXZ delete mode 100644 LT/Doc/Mem.TXZ delete mode 100644 LT/Doc/MemInfo.TXZ delete mode 100644 LT/Doc/MultiCore.TXZ delete mode 100644 LT/Doc/MultiTasking.TXZ delete mode 100644 LT/Doc/Mysteries.TXZ delete mode 100644 LT/Doc/News.TXZ delete mode 100644 LT/Doc/OSGlossary.GLZ delete mode 100644 LT/Doc/PicWords.TXZ delete mode 100644 LT/Doc/Promises.TXZ delete mode 100644 LT/Doc/Queue.TXZ delete mode 100644 LT/Doc/Quirks.TXZ delete mode 100644 LT/Doc/StartSong.CPZ delete mode 100644 LT/Doc/StartUp.TXZ delete mode 100644 LT/Doc/SysText.TXZ delete mode 100644 LT/Doc/TimeCycles.TXZ delete mode 100644 LT/Doc/TimeJiffy.TXZ delete mode 100644 LT/Doc/TimeLTDate.TXZ delete mode 100644 LT/Doc/Tips.TXZ delete mode 100644 LT/Doc/WordStat.TXZ delete mode 100644 LT/OSMain/AdamK.APZ delete mode 100644 LT/OSMain/AdamK.HPZ delete mode 100644 LT/OSMain/AdamK2.HPZ delete mode 100644 LT/OSMain/AdamK3.HPZ delete mode 100644 LT/OSMain/CRT.CPZ delete mode 100644 LT/OSMain/CharUtils.ASZ delete mode 100644 LT/OSMain/Cmd.CPZ delete mode 100644 LT/OSMain/Compress.CPZ delete mode 100644 LT/OSMain/Date.CPZ delete mode 100644 LT/OSMain/Debug.CPZ delete mode 100644 LT/OSMain/Disk/Disk3.CPZ delete mode 100644 LT/OSMain/Disk/Disk4.CPZ delete mode 100644 LT/OSMain/Disk/Disk5.CPZ delete mode 100644 LT/OSMain/Disk/DiskATA.CPZ delete mode 100644 LT/OSMain/Disk/DiskAddDev.CPZ delete mode 100644 LT/OSMain/Disk/DiskCache.CPZ delete mode 100644 LT/OSMain/Disk/DiskDir.CPZ delete mode 100644 LT/OSMain/Disk/DiskFDC.CPZ delete mode 100644 LT/OSMain/Disk/DiskLTFile.CPZ delete mode 100644 LT/OSMain/Disk/FileSysISO.CPZ delete mode 100644 LT/OSMain/Disk/FileSysLT.CPZ delete mode 100644 LT/OSMain/Except.CPZ delete mode 100644 LT/OSMain/FIFO.CPZ delete mode 100644 LT/OSMain/IRQHandlers.ASZ delete mode 100644 LT/OSMain/KbdInput.CPZ delete mode 100644 LT/OSMain/Memory.CPZ delete mode 100644 LT/OSMain/Misc.CPZ delete mode 100644 LT/OSMain/MultiProc.CPZ delete mode 100644 LT/OSMain/OS.MPZ delete mode 100644 LT/OSMain/OS.SPZ delete mode 100644 LT/OSMain/OSDefs.ASZ delete mode 100644 LT/OSMain/OSEnd.CPZ delete mode 100644 LT/OSMain/OSExts.CPZ delete mode 100644 LT/OSMain/OSGlbls.CPZ delete mode 100644 LT/OSMain/OSStartUp.ASZ delete mode 100644 LT/OSMain/QSort.CPZ delete mode 100644 LT/OSMain/SPrintF1.CPZ delete mode 100644 LT/OSMain/Scheduler.ASZ delete mode 100644 LT/OSMain/Static.HPZ delete mode 100644 LT/OSMain/Strings.CPZ delete mode 100644 LT/OSMain/SysText.CPZ delete mode 100644 LT/OSMain/SysUtils.ASZ delete mode 100644 LT/Utils/Boot/BootCD.BIZ delete mode 100644 LT/Utils/Boot/BootCD.SPZ delete mode 100644 LT/Utils/Boot/BootFD.BIZ delete mode 100644 LT/Utils/Boot/BootFD.SPZ delete mode 100644 LT/Utils/Boot/BootHD.BIZ delete mode 100644 LT/Utils/Boot/BootHD.SPZ delete mode 100644 LT/Utils/Boot/BootMHD.BIZ delete mode 100644 LT/Utils/Boot/BootMHD.SPZ delete mode 100644 LT/Utils/Boot/BootMHD2.BIZ delete mode 100644 LT/Utils/Boot/BootMHD2.SPZ delete mode 100644 LT/Utils/Boot/InsBoot.APZ delete mode 100644 LT/Utils/Diff.APZ delete mode 100644 LT/Utils/Disk20.APZ delete mode 100644 LT/Utils/Dollar.APZ delete mode 100644 LT/Utils/Grep.APZ delete mode 100644 LT/Utils/HeapLog.APZ delete mode 100644 LT/Utils/IDE.APZ delete mode 100644 LT/Utils/LinkChk.APZ delete mode 100644 LT/Utils/ListFile.APZ delete mode 100644 LT/Utils/Merge.APZ delete mode 100644 LT/Utils/S2T.APZ rename Windows/LTZ/COMPRESS.CPP => Linux/TSZ.CPP (53%) create mode 100644 SparrowOS/Accts/Adam3.CPP create mode 100644 SparrowOS/Accts/Adam3aLocalize.CPP create mode 100644 SparrowOS/Accts/Adam3bPkgs.CPP create mode 100644 SparrowOS/Accts/Adam3cSnd.CPP create mode 100644 SparrowOS/Accts/Adam3dKeyPlugIns.CPP create mode 100644 SparrowOS/Accts/Adam3eWrappers.CPP create mode 100644 SparrowOS/Accts/Adam3fSys.CPP create mode 100644 SparrowOS/Accts/DoItOnce.CPP create mode 100644 SparrowOS/Accts/Install/Adam3fSys.CPP create mode 100644 SparrowOS/Accts/Install/DoItOnce.CPP create mode 100644 SparrowOS/Accts/PersonalMenu.TXT create mode 100644 SparrowOS/Accts/PersonalNotes.TXT create mode 100644 SparrowOS/Accts/SafeMode/Adam3.CPP create mode 100644 SparrowOS/Accts/SafeMode/Adam3cSnd.CPP create mode 100644 SparrowOS/Accts/SafeMode/Adam3fSys.CPP create mode 100644 SparrowOS/Accts/SafeMode/DoItOnce.CPP create mode 100644 SparrowOS/Accts/TS/Adam3bPkgs.CPP create mode 100644 SparrowOS/Accts/TS/Adam3dKeyPlugIns.CPP create mode 100644 SparrowOS/Accts/TS/Adam3eWrappers.CPP create mode 100644 SparrowOS/Accts/TS/Adam3fSys.CPP create mode 100644 SparrowOS/Accts/TS/DoItOnce.CPP create mode 100644 SparrowOS/Accts/TS/PersonalMenu.TXT create mode 100644 SparrowOS/Accts/TS/TAD/Adam3aLocalize.CPP create mode 100644 SparrowOS/Accts/TS/TAD/Archive/FileSysISO3.CPP create mode 100644 SparrowOS/Accts/TS/TAD/Archive/Logo.TXT create mode 100644 SparrowOS/Accts/TS/TAD/Archive/USB.CPP create mode 100644 SparrowOS/Accts/TS/TAD/Archive/USB1a.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/abiding.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/abyss.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/almighty.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/appreciate.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/awake.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/battlehymnsolo.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/bedewed.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/blinded.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/born.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/childish.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/compassions.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/completed.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/cosam.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/depending.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/despairing.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/determination.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/dialogue.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/disputing.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/doing.CPP rename LT/Apps/MusicOrgan/Examples/downfall.CPZ => SparrowOS/Accts/TS/TAD/MusicOrgan/downfall.CPP (66%) create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/dream.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/efforts.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/elijah.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/environeth.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/epicurus.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/exalt.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/exiled.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/expedition.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/fairness.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/feigned.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/finger.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/first.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/fishermen.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/fixing.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/flung.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/fog.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/forasmuch.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/freaks.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/free.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/furnishing.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/good.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/gutenberg.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/happy.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/honestly.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/hope.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/image.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/inwardly.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/keeping.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/kept.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/limit.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/mary.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/mightest.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/mildly.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/nay.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/night.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/o.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/partake.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/permitted.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/personal.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/population.CPP rename LT/Apps/MusicOrgan/Examples/proponent.CPZ => SparrowOS/Accts/TS/TAD/MusicOrgan/proponent.CPP (67%) create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/prosper.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/psalm.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/purpose.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/reasoning.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/reliance.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/reposes.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/restless.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/rifled.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/risen.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/satisfaction.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/scriptures.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/service.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/shield.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/signifies.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/silver.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/small.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/struggles.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/sustain.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/teachings.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/thereupon.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/thither.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/twins.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/valued.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/vengeance.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/verses.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/villa.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/wisdom.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/witherto.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/worship.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/you.CPP create mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/zip.CPP create mode 100644 SparrowOS/Accts/TS/TAD/PersonalNotes.TXT create mode 100644 SparrowOS/Accts/TS/TAD/Registry.CPP create mode 100644 SparrowOS/Accts/TS/TAD/Test.CPP create mode 100644 SparrowOS/Accts/TS/TSAdam.CPP create mode 100644 SparrowOS/Accts/TS/TSDistribute.CPP create mode 100644 SparrowOS/Accts/TS/TSIDComputer.CPP create mode 100644 SparrowOS/Accts/TS/TSIDDft.CPP create mode 100644 SparrowOS/Accts/TS/Wb2/Hymns.TXT create mode 100644 SparrowOS/Accts/TS/Wb2/LineCnt.TXT create mode 100644 SparrowOS/Accts/TS/Wb2/Menu.BMP create mode 100644 SparrowOS/Accts/TS/Wb2/ScreenShots.TXT create mode 100644 SparrowOS/Accts/TS/Wb2/SparrowOS.BMP create mode 100644 SparrowOS/Accts/TS/Wb2/Tanks.BMP create mode 100644 SparrowOS/Accts/TS/Wb2/index.TXT create mode 100644 SparrowOS/Adam/Adam2.CPP create mode 100644 SparrowOS/Adam/AdamExt.HPP create mode 100644 SparrowOS/Adam/AutoFile2a.CPP create mode 100644 SparrowOS/Adam/BinRep.CPP create mode 100644 SparrowOS/Adam/Boot/BootCD.CPP create mode 100644 SparrowOS/Adam/Boot/BootHD.CPP create mode 100644 SparrowOS/Adam/Boot/BootMHD.CPP create mode 100644 SparrowOS/Adam/Boot/BootMHD2.CPP create mode 100644 SparrowOS/Adam/Boot/InsBoot.CPP create mode 100644 SparrowOS/Adam/Ctrls/Ctrls.CPP create mode 100644 SparrowOS/Adam/Ctrls/Ctrls2a.CPP create mode 100644 SparrowOS/Adam/Ctrls/CtrlsButton.CPP create mode 100644 SparrowOS/Adam/Ctrls/CtrlsSlider.CPP create mode 100644 SparrowOS/Adam/Dbg2a.CPP create mode 100644 SparrowOS/Adam/DevInfo.CPP create mode 100644 SparrowOS/Adam/Diff.CPP create mode 100644 SparrowOS/Adam/Doc/Doc.CPP rename LT/Adam/Ltf/LtfBible.APZ => SparrowOS/Adam/Doc/DocBible.CPP (64%) create mode 100644 SparrowOS/Adam/Doc/DocCodeTools.CPP create mode 100644 SparrowOS/Adam/Doc/DocCtrlL.CPP create mode 100644 SparrowOS/Adam/Doc/DocEd.CPP create mode 100644 SparrowOS/Adam/Doc/DocFile.CPP create mode 100644 SparrowOS/Adam/Doc/DocHighlight.CPP create mode 100644 SparrowOS/Adam/Doc/DocIDE.CPP create mode 100644 SparrowOS/Adam/Doc/DocMacro.CPP create mode 100644 SparrowOS/Adam/Doc/DocMain.CPP create mode 100644 SparrowOS/Adam/Doc/DocNew.CPP create mode 100644 SparrowOS/Adam/Doc/DocPlain.CPP create mode 100644 SparrowOS/Adam/Doc/DocPopUp.CPP create mode 100644 SparrowOS/Adam/Doc/DocRecalc.CPP create mode 100644 SparrowOS/Adam/Doc/DocTree.CPP create mode 100644 SparrowOS/Adam/DocDefines.CPP create mode 100644 SparrowOS/Adam/Dsk/ChkDsk.CPP create mode 100644 SparrowOS/Adam/Dsk/Dsk2.CPP create mode 100644 SparrowOS/Adam/Dsk/Dsk2a.CPP create mode 100644 SparrowOS/Adam/Dsk/Dsk2b.CPP create mode 100644 SparrowOS/Adam/Dsk/DskCDDVD.CPP create mode 100644 SparrowOS/Adam/Dsk/FileMgr.CPP create mode 100644 SparrowOS/Adam/FileBMP.CPP create mode 100644 SparrowOS/Adam/Gr/CSpriteBitMap.CPP create mode 100644 SparrowOS/Adam/Gr/CSpriteEd.CPP create mode 100644 SparrowOS/Adam/Gr/CSpriteMesh.CPP create mode 100644 SparrowOS/Adam/Gr/CSpriteNew.CPP create mode 100644 SparrowOS/Adam/Gr/CSpriteVect.CPP create mode 100644 SparrowOS/Adam/Gr/Gr.CPP create mode 100644 SparrowOS/Adam/Gr/GrAsm.CPP create mode 100644 SparrowOS/Adam/Gr/GrBitMap.CPP create mode 100644 SparrowOS/Adam/Gr/GrCfg.CPP create mode 100644 SparrowOS/Adam/Gr/GrChar.CPP create mode 100644 SparrowOS/Adam/Gr/GrComposites.CPP create mode 100644 SparrowOS/Adam/Gr/GrDC.CPP create mode 100644 SparrowOS/Adam/Gr/GrPrimatives.CPP create mode 100644 SparrowOS/Adam/Gr/GrScreen.CPP create mode 100644 SparrowOS/Adam/Gr/GrSpritePlot.CPP create mode 100644 SparrowOS/Adam/Gr/GrVectMap.CPP create mode 100644 SparrowOS/Adam/Gr/MathGr.CPP create mode 100644 SparrowOS/Adam/Grep.CPP create mode 100644 SparrowOS/Adam/Hash2a.CPP create mode 100644 SparrowOS/Adam/HeapLog.CPP create mode 100644 SparrowOS/Adam/LineCnt.CPP create mode 100644 SparrowOS/Adam/LinkChk.CPP create mode 100644 SparrowOS/Adam/LogIn.CPP create mode 100644 SparrowOS/Adam/Math2a.CPP create mode 100644 SparrowOS/Adam/MathODE.CPP create mode 100644 SparrowOS/Adam/MemRep.CPP create mode 100644 SparrowOS/Adam/Menu.CPP create mode 100644 SparrowOS/Adam/Merge.CPP create mode 100644 SparrowOS/Adam/Profiler.CPP create mode 100644 SparrowOS/Adam/S2T.CPP create mode 100644 SparrowOS/Adam/Snd/HDAudio.CPP create mode 100644 SparrowOS/Adam/Snd/HDCfg.CPP create mode 100644 SparrowOS/Adam/Snd/MathAudio.CPP create mode 100644 SparrowOS/Adam/Snd/Music.CPP create mode 100644 SparrowOS/Adam/Snd/Snd.CPP create mode 100644 SparrowOS/Adam/Snd/SndEffects.CPP create mode 100644 SparrowOS/Adam/Snd/SndFile.CPP create mode 100644 SparrowOS/Adam/Start.CPP create mode 100644 SparrowOS/Adam/TaskSettings.CPP create mode 100644 SparrowOS/Adam/ToHtml.CPP create mode 100644 SparrowOS/Adam/ToTXT.CPP create mode 100644 SparrowOS/Adam/Training.CPP create mode 100644 SparrowOS/Adam/Utils2a.CPP create mode 100644 SparrowOS/Adam/WallPaper.CPP create mode 100644 SparrowOS/Adam/Window.CPP rename LT/Adam/WordStat/WsDefs.DAT => SparrowOS/Adam/WordStat/WSDefs.DAT (72%) create mode 100644 SparrowOS/Adam/WordStat/WSDict.CPP create mode 100644 SparrowOS/Adam/WordStat/WSDictGen.CPP create mode 100644 SparrowOS/Adam/WordStat/WSMain.CPP create mode 100644 SparrowOS/Adam/WordStat/WSWords.DAT create mode 100644 SparrowOS/Adam/WordStat/WordStat.CPP create mode 100644 SparrowOS/Apps/AfterEgypt/AENotes.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/AENotesPart2.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/AESplash.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/AfterEgypt.CPP create mode 100644 SparrowOS/Apps/AfterEgypt/Battle.CPP create mode 100644 SparrowOS/Apps/AfterEgypt/Comics.CPP create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses01.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses02.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses04.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses05.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses06.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses07.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses08.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses10.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses12.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses13.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses14.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses15.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses16.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses17.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses18.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses19.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses20.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses21.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses22.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses23.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses24.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses25.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses26.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses27.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses28.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses29.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses30.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses31.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses32.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses34.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses35.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses36.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses37.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses38.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses39.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses40.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses42.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses43.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses44.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses45.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses46.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses47.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses48.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses49.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses50.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses52.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses53.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses54.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses55.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses56.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses57.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses58.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses59.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses60.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses61.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses62.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses63.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses64.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses66.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses69.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses71.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses72.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Comics/Moses73.TXT create mode 100644 SparrowOS/Apps/AfterEgypt/Horeb.CPP create mode 100644 SparrowOS/Apps/AfterEgypt/Load.CPP create mode 100644 SparrowOS/Apps/AfterEgypt/Map.CPP create mode 100644 SparrowOS/Apps/AfterEgypt/Quail.CPP create mode 100644 SparrowOS/Apps/AfterEgypt/Run.CPP create mode 100644 SparrowOS/Apps/AfterEgypt/WaterRock.CPP create mode 100644 SparrowOS/Apps/GrModels/BallGen.CPP create mode 100644 SparrowOS/Apps/GrModels/Load.CPP create mode 100644 SparrowOS/Apps/GrModels/ManGen.CPP create mode 100644 SparrowOS/Apps/GrModels/Models.CPP create mode 100644 SparrowOS/Apps/GrModels/Run.CPP create mode 100644 SparrowOS/Apps/HolySpirit/HSNotes.TXT create mode 100644 SparrowOS/Apps/HolySpirit/HolySpirit.CPP create mode 100644 SparrowOS/Apps/KeepAway/KeepAway.CPP create mode 100644 SparrowOS/Apps/KeepAway/Load.CPP create mode 100644 SparrowOS/Apps/KeepAway/Run.CPP create mode 100644 SparrowOS/Apps/Logic/Load.CPP create mode 100644 SparrowOS/Apps/Logic/Logic.CPP create mode 100644 SparrowOS/Apps/Logic/Run.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/abiding.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/abyss.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/almighty.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/appreciate.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/awake.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/battlehymnsolo.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/bedewed.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/blinded.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/born.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/childish.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/compassions.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/completed.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/cosam.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/depending.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/despairing.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/determination.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/dialogue.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/disputing.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/doing.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/downfall.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/dream.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/efforts.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/elijah.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/environeth.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/epicurus.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/exalt.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/exiled.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/expedition.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/fairness.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/feigned.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/finger.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/first.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/fishermen.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/fixing.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/flung.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/fog.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/forasmuch.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/freaks.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/free.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/furnishing.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/good.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/gutenberg.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/happy.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/honestly.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/hope.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/image.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/inwardly.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/keeping.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/kept.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/limit.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/mary.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/mightest.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/mildly.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/nay.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/night.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/o.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/partake.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/permitted.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/personal.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/population.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/proponent.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/prosper.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/psalm.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/purpose.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/reasoning.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/reliance.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/reposes.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/restless.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/rifled.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/risen.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/satisfaction.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/scriptures.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/service.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/shield.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/signifies.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/silver.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/small.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/struggles.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/sustain.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/teachings.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/thereupon.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/thither.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/twins.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/valued.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/vengeance.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/verses.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/villa.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/wisdom.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/witherto.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/worship.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/you.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Examples/zip.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Help.TXT create mode 100644 SparrowOS/Apps/MusicOrgan/Install.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/JukeBox.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Load.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/MakeSong.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Organ.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/OrganCtrls.CPP create mode 100644 SparrowOS/Apps/MusicOrgan/Run.CPP create mode 100644 SparrowOS/Apps/Pilgrims/Load.CPP create mode 100644 SparrowOS/Apps/Pilgrims/NewEngland.GRA create mode 100644 SparrowOS/Apps/Pilgrims/Pilgrims.CPP create mode 100644 SparrowOS/Apps/Pilgrims/Run.CPP create mode 100644 SparrowOS/Apps/Span/Install.CPP create mode 100644 SparrowOS/Apps/Span/Load.CPP create mode 100644 SparrowOS/Apps/Span/Run.CPP create mode 100644 SparrowOS/Apps/Span/Span.HPP create mode 100644 SparrowOS/Apps/Span/SpanBridge1.CPP create mode 100644 SparrowOS/Apps/Span/SpanDerive.CPP create mode 100644 SparrowOS/Apps/Span/SpanMain.CPP create mode 100644 SparrowOS/Apps/Span/SpanNew.CPP create mode 100644 SparrowOS/Apps/Tanks/AIs/Human.CPP create mode 100644 SparrowOS/Apps/Tanks/AIs/SimpleAI.CPP create mode 100644 SparrowOS/Apps/Tanks/Install.CPP create mode 100644 SparrowOS/Apps/Tanks/Load.CPP create mode 100644 SparrowOS/Apps/Tanks/Run.CPP create mode 100644 SparrowOS/Apps/Tanks/Tanks.CPP create mode 100644 SparrowOS/Apps/TimeClock/Install.CPP create mode 100644 SparrowOS/Apps/TimeClock/Load.CPP create mode 100644 SparrowOS/Apps/TimeClock/TimeClk.CPP create mode 100644 SparrowOS/Apps/Timeout/Load.CPP create mode 100644 SparrowOS/Apps/Timeout/Run.CPP create mode 100644 SparrowOS/Apps/Timeout/Timeout.CPP create mode 100644 SparrowOS/Apps/Vocabulary/Load.CPP create mode 100644 SparrowOS/Apps/Vocabulary/Run.CPP create mode 100644 SparrowOS/Apps/Vocabulary/VocabQuiz.CPP create mode 100644 SparrowOS/Apps/X-Caliber/Load.CPP create mode 100644 SparrowOS/Apps/X-Caliber/Run.CPP create mode 100644 SparrowOS/Apps/X-Caliber/X-Caliber.CPP create mode 100644 SparrowOS/Apps/X-Caliber/XCCtrls.CPP create mode 100644 SparrowOS/Compiler/Assembler.CPP create mode 100644 SparrowOS/Compiler/BackEnd.CPP create mode 100644 SparrowOS/Compiler/CmpAsm.CPP create mode 100644 SparrowOS/Compiler/CmpDefs.HPP create mode 100644 SparrowOS/Compiler/CmpExts.CPP create mode 100644 SparrowOS/Compiler/CmpGlbls.CPP create mode 100644 SparrowOS/Compiler/CmpInit.CPP create mode 100644 SparrowOS/Compiler/CmpMain.CPP create mode 100644 SparrowOS/Compiler/CmpQueVect.CPP create mode 100644 SparrowOS/Compiler/CodeGen.CPP create mode 100644 SparrowOS/Compiler/Compiler.BIN create mode 100644 SparrowOS/Compiler/Compiler.HPP create mode 100644 SparrowOS/Compiler/Compiler.MAP create mode 100644 SparrowOS/Compiler/Compiler.PRJ create mode 100644 SparrowOS/Compiler/Directives.CPP create mode 100644 SparrowOS/Compiler/ExpParser.CPP create mode 100644 SparrowOS/Compiler/Hash1b.CPP create mode 100644 SparrowOS/Compiler/Lex.CPP create mode 100644 SparrowOS/Compiler/OpCodes.TXT create mode 100644 SparrowOS/Compiler/OptPass012.CPP create mode 100644 SparrowOS/Compiler/OptPass3.CPP create mode 100644 SparrowOS/Compiler/OptPass4.CPP create mode 100644 SparrowOS/Compiler/OptPass5.CPP create mode 100644 SparrowOS/Compiler/OptPass6.CPP create mode 100644 SparrowOS/Compiler/OptPass789A.CPP create mode 100644 SparrowOS/Compiler/StmtParser.CPP create mode 100644 SparrowOS/Compiler/Unassembler.CPP create mode 100644 SparrowOS/Demo/AcctExample/Adam3bPkgs.CPP create mode 100644 SparrowOS/Demo/AcctExample/Adam3dKeyPlugIns.CPP create mode 100644 SparrowOS/Demo/AcctExample/Adam3eWrappers.CPP create mode 100644 SparrowOS/Demo/AcctExample/Adam3fSys.CPP create mode 100644 SparrowOS/Demo/AcctExample/DoItOnce.CPP create mode 100644 SparrowOS/Demo/AcctExample/PersonalMenu.TXT create mode 100644 SparrowOS/Demo/AcctExample/TAD/Adam3aLocalize.CPP create mode 100644 SparrowOS/Demo/AcctExample/TAD/Archive/FileSysISO3.CPP create mode 100644 SparrowOS/Demo/AcctExample/TAD/Archive/Logo.TXT create mode 100644 SparrowOS/Demo/AcctExample/TAD/Archive/USB.CPP create mode 100644 SparrowOS/Demo/AcctExample/TAD/Archive/USB1a.CPP create mode 100644 SparrowOS/Demo/AcctExample/TAD/PersonalNotes.TXT create mode 100644 SparrowOS/Demo/AcctExample/TAD/Registry.CPP create mode 100644 SparrowOS/Demo/AcctExample/TSAdam.CPP create mode 100644 SparrowOS/Demo/AcctExample/TSDistribute.CPP create mode 100644 SparrowOS/Demo/AcctExample/TSIDComputer.CPP create mode 100644 SparrowOS/Demo/AcctExample/TSIDDft.CPP create mode 100644 SparrowOS/Demo/Asm/AsmAndC.CPP create mode 100644 SparrowOS/Demo/Asm/AsmAndC2.CPP create mode 100644 SparrowOS/Demo/Asm/AsmHelloWorld.CPP create mode 100644 SparrowOS/Demo/Asm/BuzzFizz.CPP create mode 100644 SparrowOS/Demo/Asm/DivByHand.CPP create mode 100644 SparrowOS/Demo/Asm/MulByHand.CPP create mode 100644 SparrowOS/Demo/Asm/PutDec.CPP create mode 100644 SparrowOS/Demo/AutoFile/AFDir.AUT create mode 100644 SparrowOS/Demo/AutoFile/AFEd.AUT create mode 100644 SparrowOS/Demo/AutoFile/AFEd.TXT create mode 100644 SparrowOS/Demo/AutoFile/AFPopUp.CPP create mode 100644 SparrowOS/Demo/AutoFile/AFPopUpWait.AUT create mode 100644 SparrowOS/Demo/AutoFile/AFProfile.AUT create mode 100644 SparrowOS/Demo/AutoFile/AFSetIP.CPP create mode 100644 SparrowOS/Demo/ClassMeta.CPP create mode 100644 SparrowOS/Demo/CompileDemo.CPP create mode 100644 SparrowOS/Demo/DateTime.CPP create mode 100644 SparrowOS/Demo/DbgDemo.CPP create mode 100644 SparrowOS/Demo/Define.CPP create mode 100644 SparrowOS/Demo/Digits.CPP create mode 100644 SparrowOS/Demo/Doc/CallBack.CPP create mode 100644 SparrowOS/Demo/Doc/CallBackAux2.CPP create mode 100644 SparrowOS/Demo/Doc/CursorMove.CPP create mode 100644 SparrowOS/Demo/Doc/Data.CPP create mode 100644 SparrowOS/Demo/Doc/DefineStr.CPP rename LT/Demo/DemoDoc.TXZ => SparrowOS/Demo/Doc/DemoDoc.TXT (63%) create mode 100644 SparrowOS/Demo/Doc/FileRead.CPP create mode 100644 SparrowOS/Demo/Doc/Form.CPP create mode 100644 SparrowOS/Demo/Doc/MenuButton.CPP create mode 100644 SparrowOS/Demo/Doc/MenuSprite.CPP create mode 100644 SparrowOS/Demo/Doc/TextDemo.CPP create mode 100644 SparrowOS/Demo/Doc/TreeDemo.CPP create mode 100644 SparrowOS/Demo/Doc/UnusedDefine.CPP create mode 100644 SparrowOS/Demo/Dsk/DataBase.CPP create mode 100644 SparrowOS/Demo/Dsk/FPrintF.CPP create mode 100644 SparrowOS/Demo/Dsk/OrderedIO.CPP create mode 100644 SparrowOS/Demo/Dsk/Raw.CPP create mode 100644 SparrowOS/Demo/Dsk/UnusedSpaceRep.CPP create mode 100644 SparrowOS/Demo/Exceptions.CPP create mode 100644 SparrowOS/Demo/ExtendedChars.CPP create mode 100644 SparrowOS/Demo/GameStarters/BigGuns.CPP create mode 100644 SparrowOS/Demo/GameStarters/BirdLand.CPP create mode 100644 SparrowOS/Demo/GameStarters/BlackDiamond.CPP create mode 100644 SparrowOS/Demo/GameStarters/Bomber.CPP create mode 100644 SparrowOS/Demo/GameStarters/Chess.CPP create mode 100644 SparrowOS/Demo/GameStarters/ChessNet.CPP create mode 100644 SparrowOS/Demo/GameStarters/CircleTrace.CPP create mode 100644 SparrowOS/Demo/GameStarters/Coach.CPP create mode 100644 SparrowOS/Demo/GameStarters/Collision.CPP create mode 100644 SparrowOS/Demo/GameStarters/DunGen.CPP create mode 100644 SparrowOS/Demo/GameStarters/EagleDive.CPP create mode 100644 SparrowOS/Demo/GameStarters/FPS.CPP create mode 100644 SparrowOS/Demo/GameStarters/Halogen.CPP create mode 100644 SparrowOS/Demo/GameStarters/MassSpring.CPP create mode 100644 SparrowOS/Demo/GameStarters/MissileDefense.CPP create mode 100644 SparrowOS/Demo/GameStarters/Navy.CPP create mode 100644 SparrowOS/Demo/GameStarters/RainDrops.CPP create mode 100644 SparrowOS/Demo/GameStarters/RawHide.CPP create mode 100644 SparrowOS/Demo/GameStarters/Rocket.CPP create mode 100644 SparrowOS/Demo/GameStarters/RocketScience.CPP create mode 100644 SparrowOS/Demo/GameStarters/Rocks.CPP create mode 100644 SparrowOS/Demo/GameStarters/SpaceShip.CPP create mode 100644 SparrowOS/Demo/GameStarters/Squirt.CPP create mode 100644 SparrowOS/Demo/GameStarters/Stadium/Stadium.CPP create mode 100644 SparrowOS/Demo/GameStarters/Stadium/Stadium.GRA create mode 100644 SparrowOS/Demo/GameStarters/Stadium/Stadium.TXT create mode 100644 SparrowOS/Demo/GameStarters/Stadium/StadiumGen.CPP create mode 100644 SparrowOS/Demo/GameStarters/TheDead.CPP create mode 100644 SparrowOS/Demo/GameStarters/TicTacToe.CPP create mode 100644 SparrowOS/Demo/GameStarters/Varoom.CPP create mode 100644 SparrowOS/Demo/GameStarters/WarGame.CPP create mode 100644 SparrowOS/Demo/GameStarters/Wenceslas.CPP create mode 100644 SparrowOS/Demo/GameStarters/Whap.CPP create mode 100644 SparrowOS/Demo/GameStarters/Zing.CPP create mode 100644 SparrowOS/Demo/GameStarters/ZoneOut.CPP create mode 100644 SparrowOS/Demo/GlblVars.CPP create mode 100644 SparrowOS/Demo/Graphics/3DPoly.CPP create mode 100644 SparrowOS/Demo/Graphics/BSpline.CPP create mode 100644 SparrowOS/Demo/Graphics/Bling.CPP create mode 100644 SparrowOS/Demo/Graphics/Blink.CPP create mode 100644 SparrowOS/Demo/Graphics/Blot.CPP create mode 100644 SparrowOS/Demo/Graphics/Bounce.CPP create mode 100644 SparrowOS/Demo/Graphics/Box.CPP create mode 100644 SparrowOS/Demo/Graphics/CPUPlot.CPP create mode 100644 SparrowOS/Demo/Graphics/Camp.CPP create mode 100644 SparrowOS/Demo/Graphics/CaptureScreen.CPP create mode 100644 SparrowOS/Demo/Graphics/Cartesian.CPP create mode 100644 SparrowOS/Demo/Graphics/CharGraphics.CPP create mode 100644 SparrowOS/Demo/Graphics/Circuit.CPP create mode 100644 SparrowOS/Demo/Graphics/CommonAncestor.CPP create mode 100644 SparrowOS/Demo/Graphics/Dither.CPP create mode 100644 SparrowOS/Demo/Graphics/Doodle.CPP create mode 100644 SparrowOS/Demo/Graphics/DotNet.CPP create mode 100644 SparrowOS/Demo/Graphics/EdCSprite.CPP create mode 100644 SparrowOS/Demo/Graphics/Extents.CPP create mode 100644 SparrowOS/Demo/Graphics/Flowers.CPP create mode 100644 SparrowOS/Demo/Graphics/FontEd.CPP create mode 100644 SparrowOS/Demo/Graphics/Golf.CPP create mode 100644 SparrowOS/Demo/Graphics/Hanoi.CPP create mode 100644 SparrowOS/Demo/Graphics/Life.CPP create mode 100644 SparrowOS/Demo/Graphics/Lines.CPP create mode 100644 SparrowOS/Demo/Graphics/Logo.CPP create mode 100644 SparrowOS/Demo/Graphics/LowPassFilter.CPP create mode 100644 SparrowOS/Demo/Graphics/MathAudioDemo.CPP create mode 100644 SparrowOS/Demo/Graphics/Mountain.CPP create mode 100644 SparrowOS/Demo/Graphics/MyWallPaper.CPP create mode 100644 SparrowOS/Demo/Graphics/NeatTrick.CPP create mode 100644 SparrowOS/Demo/Graphics/Palette.CPP create mode 100644 SparrowOS/Demo/Graphics/Pic2ASCII.CPP create mode 100644 SparrowOS/Demo/Graphics/Pick.CPP create mode 100644 SparrowOS/Demo/Graphics/Pick3D.CPP create mode 100644 SparrowOS/Demo/Graphics/PixelCollision.CPP create mode 100644 SparrowOS/Demo/Graphics/PoleZeros.CPP create mode 100644 SparrowOS/Demo/Graphics/PredatorPrey.CPP create mode 100644 SparrowOS/Demo/Graphics/RotateTank.CPP create mode 100644 SparrowOS/Demo/Graphics/ScrollBars.CPP create mode 100644 SparrowOS/Demo/Graphics/Shading.CPP create mode 100644 SparrowOS/Demo/Graphics/Shadow.CPP create mode 100644 SparrowOS/Demo/Graphics/SliderCtrl.CPP create mode 100644 SparrowOS/Demo/Graphics/Speedline.CPP create mode 100644 SparrowOS/Demo/Graphics/SpritePlot.CPP create mode 100644 SparrowOS/Demo/Graphics/SpritePlot3D.CPP create mode 100644 SparrowOS/Demo/Graphics/SpritePut.CPP create mode 100644 SparrowOS/Demo/Graphics/SpritePutExt.CPP create mode 100644 SparrowOS/Demo/Graphics/SpriteText.CPP create mode 100644 SparrowOS/Demo/Graphics/Symmetry.CPP create mode 100644 SparrowOS/Demo/Graphics/Transform.CPP create mode 100644 SparrowOS/Demo/Graphics/WallPaperCtrl.CPP create mode 100644 SparrowOS/Demo/Graphics/WinZBuf.CPP create mode 100644 SparrowOS/Demo/KeyBitMap.CPP create mode 100644 SparrowOS/Demo/Lectures/AndNotMod.CPP create mode 100644 SparrowOS/Demo/Lectures/FixedPoint.CPP create mode 100644 SparrowOS/Demo/Lectures/FixedPointAdvanced.CPP create mode 100644 SparrowOS/Demo/Lectures/GraphicsCPULoad.CPP create mode 100644 SparrowOS/Demo/Lectures/InterruptDemo.CPP create mode 100644 SparrowOS/Demo/Lectures/MiniCompiler.CPP create mode 100644 SparrowOS/Demo/Lectures/MiniGrLib.CPP create mode 100644 SparrowOS/Demo/Lectures/Optimization.CPP create mode 100644 SparrowOS/Demo/Lectures/PCIInterrupts.CPP create mode 100644 SparrowOS/Demo/Lectures/PageTableEntries1.CPP create mode 100644 SparrowOS/Demo/Lectures/PageTableEntries2.CPP create mode 100644 SparrowOS/Demo/Lectures/Ring3.CPP create mode 100644 SparrowOS/Demo/Lectures/ScreenMemory.CPP create mode 100644 SparrowOS/Demo/Lectures/Spinning.CPP create mode 100644 SparrowOS/Demo/Lectures/Uncached.CPP create mode 100644 SparrowOS/Demo/MagicPairs.CPP create mode 100644 SparrowOS/Demo/Maze.CPP create mode 100644 SparrowOS/Demo/MsgLoop.CPP create mode 100644 SparrowOS/Demo/MultiCore/Clouds.CPP create mode 100644 SparrowOS/Demo/MultiCore/Interrupts.CPP create mode 100644 SparrowOS/Demo/MultiCore/Layers3DJob.CPP create mode 100644 SparrowOS/Demo/MultiCore/LayersSpawn.CPP create mode 100644 SparrowOS/Demo/MultiCore/LoadTest.CPP create mode 100644 SparrowOS/Demo/MultiCore/Lock.CPP create mode 100644 SparrowOS/Demo/MultiCore/MPAdd.CPP create mode 100644 SparrowOS/Demo/MultiCore/MPPrintF.CPP create mode 100644 SparrowOS/Demo/MultiCore/Noise.CPP create mode 100644 SparrowOS/Demo/MultiCore/Palindrome.CPP create mode 100644 SparrowOS/Demo/MultiCore/Primes.CPP create mode 100644 SparrowOS/Demo/MultiCore/RadixSort.CPP create mode 100644 SparrowOS/Demo/MultiCore/Sort.CPP create mode 100644 SparrowOS/Demo/OldSchool/Demo1/MD1.CPP create mode 100644 SparrowOS/Demo/OldSchool/Demo1/MD2.CPP create mode 100644 SparrowOS/Demo/OldSchool/Demo1/MDMain.CPP create mode 100644 SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.HPP create mode 100644 SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.PRJ create mode 100644 SparrowOS/Demo/OldSchool/Demo1/ReadMe.TXT create mode 100644 SparrowOS/Demo/OldSchool/Demo2/MakeFile.CPP create mode 100644 SparrowOS/Demo/OldSchool/Demo2/OD1.PRJ create mode 100644 SparrowOS/Demo/OldSchool/Demo2/OD2.PRJ create mode 100644 SparrowOS/Demo/OldSchool/Demo2/ODMain.PRJ create mode 100644 SparrowOS/Demo/OldSchool/Demo2/ObjDemo.HPP create mode 100644 SparrowOS/Demo/OldSchool/Demo2/ReadMe.TXT create mode 100644 SparrowOS/Demo/OldSchool/ReadMe.TXT create mode 100644 SparrowOS/Demo/ParenWarn.CPP create mode 100644 SparrowOS/Demo/PhoneNumWords.CPP create mode 100644 SparrowOS/Demo/PrintF.CPP create mode 100644 SparrowOS/Demo/Progress.CPP create mode 100644 SparrowOS/Demo/Prompt.CPP create mode 100644 SparrowOS/Demo/PullDownMenu.CPP create mode 100644 SparrowOS/Demo/RegistryDemo.CPP create mode 100644 SparrowOS/Demo/ScreenCodes.CPP create mode 100644 SparrowOS/Demo/Shared/TreeDemoJoin.CPP create mode 100644 SparrowOS/Demo/Snd/ASCIIOrgan.CPP create mode 100644 SparrowOS/Demo/Snd/BeatFreq.CPP create mode 100644 SparrowOS/Demo/Snd/Echo.CPP create mode 100644 SparrowOS/Demo/Snd/MorseCode.CPP create mode 100644 SparrowOS/Demo/Snd/OhGreat.CPP create mode 100644 SparrowOS/Demo/Snd/PolyPhonic.CPP create mode 100644 SparrowOS/Demo/Snd/Record.CPP create mode 100644 SparrowOS/Demo/Snd/SndScope.CPP create mode 100644 SparrowOS/Demo/Snd/Synth.CPP create mode 100644 SparrowOS/Demo/Snd/WaterFowl.CPP create mode 100644 SparrowOS/Demo/Spy.CPP create mode 100644 SparrowOS/Demo/StkGrow.CPP create mode 100644 SparrowOS/Demo/SubIntAccess.CPP create mode 100644 SparrowOS/Demo/SuggestSpelling.CPP create mode 100644 SparrowOS/Demo/TimeIns.CPP create mode 100644 SparrowOS/Demo/WebLogExample/WebLogRep.CPP create mode 100644 SparrowOS/Demo/WebLogExample/WebLogRep.TXT create mode 100644 SparrowOS/Demo/WebLogExample/WebLogScramble.CPP create mode 100644 SparrowOS/Demo/WebLogExample/access_090509.LOG create mode 100644 SparrowOS/Demo/WebLogExample/access_090510.LOG create mode 100644 SparrowOS/Demo/WinMgr2.CPP create mode 100644 SparrowOS/Demo/WordSearch.CPP create mode 100644 SparrowOS/Doc/Acknowledgements.TXT create mode 100644 SparrowOS/Doc/AutoFile.TXT create mode 100644 SparrowOS/Doc/Bit.TXT create mode 100644 SparrowOS/Doc/Boot.TXT create mode 100644 SparrowOS/Doc/ChangeLog.TXT create mode 100644 SparrowOS/Doc/Char.TXT create mode 100644 SparrowOS/Doc/CmdLine.TXT create mode 100644 SparrowOS/Doc/Confuse.TXT create mode 100644 SparrowOS/Doc/Constitution.TXT rename LT/Doc/CtrlL.MUZ => SparrowOS/Doc/CtrlL.TXT (56%) create mode 100644 SparrowOS/Doc/Ctrls.TXT create mode 100644 SparrowOS/Doc/Customize.TXT create mode 100644 SparrowOS/Doc/CutCorners.TXT create mode 100644 SparrowOS/Doc/D3.TXT create mode 100644 SparrowOS/Doc/Dbg.TXT create mode 100644 SparrowOS/Doc/Define.TXT create mode 100644 SparrowOS/Doc/DemoIndex.TXT create mode 100644 SparrowOS/Doc/Differences.TXT create mode 100644 SparrowOS/Doc/Directives.TXT create mode 100644 SparrowOS/Doc/Doc.TXT create mode 100644 SparrowOS/Doc/Dollar.TXT create mode 100644 SparrowOS/Doc/EdPullDown.TXT create mode 100644 SparrowOS/Doc/Features.TXT create mode 100644 SparrowOS/Doc/FileMgr.TXT create mode 100644 SparrowOS/Doc/FileMgrPullDown.TXT create mode 100644 SparrowOS/Doc/Glossary.TXT create mode 100644 SparrowOS/Doc/GrSprite.TXT create mode 100644 SparrowOS/Doc/Graphics.TXT create mode 100644 SparrowOS/Doc/Grub.TXT create mode 100644 SparrowOS/Doc/GuideLines.TXT create mode 100644 SparrowOS/Doc/Hash.TXT create mode 100644 SparrowOS/Doc/HelpIndex.TXT create mode 100644 SparrowOS/Doc/HelpSystem.TXT create mode 100644 SparrowOS/Doc/ImportExports.TXT create mode 100644 SparrowOS/Doc/InputPointer.TXT create mode 100644 SparrowOS/Doc/Install.TXT create mode 100644 SparrowOS/Doc/KeyBoard.TXT create mode 100644 SparrowOS/Doc/Lex.TXT create mode 100644 SparrowOS/Doc/Mem.TXT create mode 100644 SparrowOS/Doc/Menus.TXT create mode 100644 SparrowOS/Doc/MultiCore.TXT create mode 100644 SparrowOS/Doc/MultiTasking.TXT create mode 100644 SparrowOS/Doc/Mysteries.TXT create mode 100644 SparrowOS/Doc/NamedFrame.TXT create mode 100644 SparrowOS/Doc/NewFileSystem.TXT create mode 100644 SparrowOS/Doc/ODE.TXT create mode 100644 SparrowOS/Doc/Options.TXT create mode 100644 SparrowOS/Doc/Profiler.TXT create mode 100644 SparrowOS/Doc/Que.TXT create mode 100644 SparrowOS/Doc/Quirks.TXT create mode 100644 SparrowOS/Doc/Requirements.TXT create mode 100644 SparrowOS/Doc/Snd.TXT create mode 100644 SparrowOS/Doc/Splash.TXT create mode 100644 SparrowOS/Doc/Start.TXT create mode 100644 SparrowOS/Doc/Strategy.TXT create mode 100644 SparrowOS/Doc/SysPgmGuide.TXT create mode 100644 SparrowOS/Doc/TSZ.TXT create mode 100644 SparrowOS/Doc/TimeCycles.TXT create mode 100644 SparrowOS/Doc/TimeDate.TXT create mode 100644 SparrowOS/Doc/TimeHPET.TXT create mode 100644 SparrowOS/Doc/TimeJiffy.TXT create mode 100644 SparrowOS/Doc/Tips.TXT create mode 100644 SparrowOS/Doc/Transform.TXT create mode 100644 SparrowOS/Doc/TrivialSolutions.TXT create mode 100644 SparrowOS/Doc/Upgrade.TXT create mode 100644 SparrowOS/Doc/Welcome.TXT create mode 100644 SparrowOS/Doc/WordStat.TXT rename LT/Text/Bible.TXZ => SparrowOS/Misc/Bible.TXT (97%) create mode 100644 SparrowOS/Misc/Dollar.CPP create mode 100644 SparrowOS/Misc/OSTestSuite.CPP create mode 100644 SparrowOS/Misc/PCIDevices.TXT create mode 100644 SparrowOS/Misc/Tour/Tour.AUT create mode 100644 SparrowOS/Misc/Tour/Tour1.AUT create mode 100644 SparrowOS/Misc/Tour/Tour2.AUT create mode 100644 SparrowOS/Misc/Tour/Tour3.AUT create mode 100644 SparrowOS/Misc/Tour/Tour4.AUT create mode 100644 SparrowOS/Misc/Tour/Tour5.AUT create mode 100644 SparrowOS/Misc/Tour/Tour6.AUT create mode 100644 SparrowOS/Misc/Tour/Tour7.AUT create mode 100644 SparrowOS/Misc/Tour/Tour8.AUT create mode 100644 SparrowOS/Misc/Tour/Tour9.AUT create mode 100644 SparrowOS/Misc/Tour/TourA.AUT create mode 100644 SparrowOS/OSMain/Adam1.CPP create mode 100644 SparrowOS/OSMain/Adam1a.HPP create mode 100644 SparrowOS/OSMain/Adam1b.HPP create mode 100644 SparrowOS/OSMain/Adam1c.HPP create mode 100644 SparrowOS/OSMain/BIOS32.CPP create mode 100644 SparrowOS/OSMain/BootDefs.HPP create mode 100644 SparrowOS/OSMain/Compress.CPP create mode 100644 SparrowOS/OSMain/Date.CPP create mode 100644 SparrowOS/OSMain/Dbg1a.CPP create mode 100644 SparrowOS/OSMain/Define1a.CPP create mode 100644 SparrowOS/OSMain/Display.CPP create mode 100644 SparrowOS/OSMain/Dsk/ATADef.HPP create mode 100644 SparrowOS/OSMain/Dsk/Dsk1a.CPP create mode 100644 SparrowOS/OSMain/Dsk/Dsk1b.CPP create mode 100644 SparrowOS/OSMain/Dsk/Dsk1c.CPP create mode 100644 SparrowOS/OSMain/Dsk/DskATA.CPP create mode 100644 SparrowOS/OSMain/Dsk/DskAddDev.CPP create mode 100644 SparrowOS/OSMain/Dsk/DskCFile.CPP create mode 100644 SparrowOS/OSMain/Dsk/DskCache.CPP create mode 100644 SparrowOS/OSMain/Dsk/DskDir.CPP create mode 100644 SparrowOS/OSMain/Dsk/DskStr.CPP create mode 100644 SparrowOS/OSMain/Dsk/FileSysFAT.CPP create mode 100644 SparrowOS/OSMain/Dsk/FileSysISO1.CPP create mode 100644 SparrowOS/OSMain/Dsk/FileSysNative.CPP create mode 100644 SparrowOS/OSMain/EdLite.CPP create mode 100644 SparrowOS/OSMain/Except.CPP create mode 100644 SparrowOS/OSMain/FIFO.CPP rename LT/OSMain/Font8x8.CPZ => SparrowOS/OSMain/Font8x8.CPP (55%) create mode 100644 SparrowOS/OSMain/Hash1a.CPP create mode 100644 SparrowOS/OSMain/Interrupts.CPP create mode 100644 SparrowOS/OSMain/KbdMouse/InputPointer.CPP create mode 100644 SparrowOS/OSMain/KbdMouse/Keyboard.CPP create mode 100644 SparrowOS/OSMain/KbdMouse/Message.CPP create mode 100644 SparrowOS/OSMain/KbdMouse/Mouse.CPP create mode 100644 SparrowOS/OSMain/Math1a.CPP create mode 100644 SparrowOS/OSMain/Math1b.CPP create mode 100644 SparrowOS/OSMain/Memory.CPP create mode 100644 SparrowOS/OSMain/Misc1a.CPP create mode 100644 SparrowOS/OSMain/MultiProc.CPP create mode 100644 SparrowOS/OSMain/OSCfg.CPP create mode 100644 SparrowOS/OSMain/OSEnd.CPP create mode 100644 SparrowOS/OSMain/OSExts.CPP create mode 100644 SparrowOS/OSMain/OSGlbls.CPP create mode 100644 SparrowOS/OSMain/OSMain.MAP create mode 100644 SparrowOS/OSMain/OSMain.PRJ create mode 100644 SparrowOS/OSMain/OSStart.CPP create mode 100644 SparrowOS/OSMain/PSect.CPP create mode 100644 SparrowOS/OSMain/QSort.CPP create mode 100644 SparrowOS/OSMain/Scheduler.CPP create mode 100644 SparrowOS/OSMain/Static.HPP create mode 100644 SparrowOS/OSMain/StaticAdam.HPP create mode 100644 SparrowOS/OSMain/Str1a.CPP create mode 100644 SparrowOS/OSMain/Task1a.CPP create mode 100644 SparrowOS/OSMain/TaskCmd.CPP create mode 100644 SparrowOS/OSMain/Utils1a.CPP create mode 100644 SparrowOS/ReadMe.TXT delete mode 100644 Windows/BIN/LTZ.exe delete mode 100644 Windows/BIN/MFC42D.DLL delete mode 100644 Windows/BIN/MFCO42D.DLL delete mode 100644 Windows/BIN/MSVCP60D.DLL delete mode 100644 Windows/BIN/MSVCRTD.DLL delete mode 100644 Windows/LTZ/LTZ.APS delete mode 100644 Windows/LTZ/LTZ.clw delete mode 100644 Windows/LTZ/LTZ.cpp delete mode 100644 Windows/LTZ/LTZ.dsp delete mode 100644 Windows/LTZ/LTZ.dsw delete mode 100644 Windows/LTZ/LTZ.h delete mode 100644 Windows/LTZ/LTZ.ncb delete mode 100644 Windows/LTZ/LTZ.opt delete mode 100644 Windows/LTZ/LTZ.plg delete mode 100644 Windows/LTZ/LTZ.rc delete mode 100644 Windows/LTZ/Resource.h delete mode 100644 Windows/LTZ/StdAfx.cpp delete mode 100644 Windows/LTZ/StdAfx.h create mode 100644 Windows/ReadMe.TXT create mode 100644 Windows/TSZSetUp.ZIP diff --git a/0000Boot/0000OSMain.BIN.C b/0000Boot/0000OSMain.BIN.C new file mode 100644 index 0000000000000000000000000000000000000000..f283ba3ed71d18d71a4dab0934870a7e5c420cd7 GIT binary patch literal 217760 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 M-$69^Ha9o{0GyCo0RR91 literal 0 HcmV?d00001 diff --git a/0000Boot/Boot.BIC b/0000Boot/Boot.BIC deleted file mode 100644 index e86e292761f0c7ac3bb0e0ad4dbb44c9686524e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150336 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�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ΝD1@gi(`;t#K5Cj z?Ki{(NO=xg{|OFz$ay`W5b^d9t$Cra1{|y4nkp;VGwg*vC)oR-F&U5JZ6Hg) zD@Kol?!N)$Nd{1FO2DUc9XQSY?*mbk0)f`fWQT`Rys0?>Z*W$5s=N2gnbN4HxAma!)2nUbJ_$;G3YPXN0zP>4Z}<5?gJ z@m88Dg8=BhZyV6X$5~7-ECKUNwmVgeR{9i8N(d%dB5%}UoHzWo;!(S|gtm5SW zMYIsOsp=W(5%!|(57;LXAlGq%4svfv1bL_X*h|p4gD=4Y^ca4-3F$_I{bmYs6G%76 zZw$ow?X`vnB#FP!ha?eD15E|S40|C7Wf~vAQu4skKl1n(f6GOXtHWN*hj@p>qnk~I zgTG}mNEGCJ29N(`3NI!?!T?;|aQ`n!1F2Fd<$R&|^WT4uPPYOOp9wrG3yDTVIRLId zenFOJD7*$0a#&T|fU58ae_{Ft9Iza(g*>t}pvltm1~@t-V7@n84(5Z#dK6x$z&K$q zBwDyzO=IqR0x2&`k<+6hy|eP7ExZ=wSm2D06P4l`v|;uk96NW zO8Wrh51(#u8$rXPJFWsWwGCZ4?qK}C+rp>2ECSSf23?8$12pUonjO&w_1t!ViXu?a zEd0`RZ~XQwid@;{8AnT5Bo86ME_ouG&oD6s&woI*W8BjG<@ z_`)t)19|rdWbp`O)zOa^l~rI*Y4|cfeF?rFzWcmq_YrWA_;mm9vEBy?l_EZ$ZgBDK zqYdVR8dl;U8^WPBaJPU>Q22C#8c_hj@a9r}_V(sMS6Xx@WEXgz*6% z>zBpM9{)jyHG6cQ_XJCLcAxd-K2X98Qq$@B0KDh!-~&$ZdCs8Q2RS{M!3CWUcwvl$ zXZJB)wm8CU$WgfpW{&wy}*XY+r?G6hgf_qzWFExhmyd+`%`C@rW*$Ljh2{OhTx4ua&2Yv4j0 zbV5*wN7#$6knuSMuu5?92UpM@)<2>7;s&zJd0+0^STY8vrvq6Q)&@$k9^Ii5p53R> z`#c`ad@NY9g@<NOQc#$@=>TVKaKu>Ge&BBc zEx!c~DTjiuw}tNW2CZ5D0CFN|DM&XFt^_Ma$^;(TwI6(#b3cGwIUU25_0Uswp%KU5 zS_tYIf*PUV)y)u>Iw4&8G7uyW>WYDnI?aN`Mml7aOu++u%_%35j>RYpnBRj^IA}qx zrCUNVH;mKimH=Z~x@91XXZUo2vl_Mx4%yZYtuOia$=>Mr_unJ%NYE z|Dkm|X!h$k!~g&P>mdR@@R`S6UU^W$3w&V>oyrAIK!PT0j3C($Gy)4>zltrbLCPUh8pjH%r3uuQns8!eN`T}$~I_P+6kMI`?kTZ`IAR|to z^-k+x$GL!3LvepAiSy{??FYLPG#&;$OBmb;0BwQh6xA}+wIAFmi72AVNf58hmauw8`>E*SBi2eKsX}^G$ zWPpc|;G+W0`304kdFcua3MKj2hNWN!Z2S3##G~!Ai~war#5`arXo(VdgnBddmQ#;T z*BhYx682&tLga$+H{<`F`(f+vz*Vlm3ywyx13~jW;9|E6)N%k#ns@u&@UT8nA_7$h zzMltlcWov}0eDXY0|&zk!C6r4;2p}~;Xnb%0sXza;42;j!4AuU455NX3|`BCBazn} zWDZ2u2O$eS!5O@jI_$+&NCy_ufdY*KpmYa7rFOUL1yH}HMA|dNqnGzNXb2?GGwj75 zh(=H&_O&Ef>O4&9Awmi~Yyw_j*2}vQEDuT_|3RBaK_|v7hY4Y%5bywH>FKj0N$wWTMh|RALAcbG=#rMh4h;ge6^p#Eb8`M0Xng&(|5(oRLCAtw-C_y zizMiBhY(Ne^YH!MH=uh-TsrGRJev6xJi6lwJUZhGAcq3RCwO$nWq5SPXL#^$kF)Ry z_6&Ow#}6)z1=2d*Ej+?s%!hQeI6T5$Oo1`M!>>PH>;a9}!gGeRM=vk}qyo~vPIv$g9Z*^WC#abq>2816lr4Wt zEl2<~gSL$itP(sa4m!{SdV|k($kDYNFF|)+d-U?QfYgIZCQ!zKo~6zNE}Imf3z9&F zMM8J3f?LYqITGX^JScBuF?fc&sDy?jXxbZfxVfC;#oubMgFq`=UU*;~I)oe|=-FEi zUNo8o8WQsi@eKD2dtvw*tk=M&`$gJuHv<6y(0U~B$>-B+psBYrF96ht^65-Vc<~5y zC?)8$;^t!x5cS90jP#DV8S5Q$Ghu+7EfN>taojBe90$kUK>Jb|UaW>`1BEvusAUui zYB-g1ytoLdok2yiXZQ=}=@2_1Wu7UNcii<3XkUy+_>0qb!L9{w5WRzzra%i#kXFZm z_O^phx$sTQPE~-Pv2MkHG=2;2SEI~lf=3HH!e0d416u?t=Rkcj7aTL1ilDX*sEJsH zGW%7=@j?)CCoE__Qw-{8=nx=ifeK_85L$1;=T$-DTOQq@sfSbnpYB`<&=iDc$cr{6 zuv@?*T-^UlcwS8X@b5pUgUIwc5wu_iv`Qfjk^zH3S7J3E;dt%g+4v9COD?td40%xs znX2Ld4;^}jyvT*@X9bPqdxpGFhZ!I6LZuLFlYnQ)3rCn9WZMWG5F2Y+yarv5>jG{O7*7{Etp9tHK3|DW*eJ`3&+L&ZSX zAc0l{@V9^t0QG4652`xKxE=R^Xy4=~ubF+ipM%z#7Wh~{C}RiT44qcsv7^8nltUO8 zKx1Q|k^;12c$XqWkpQT`uJ8zcQ4g7q=kV-43+sV{#{SQGb{~h>9{}z?D?l#(P{3^> z4`_$HA7`Hx38Z&cmC|DMceJUV#;>i+$IsSaufgA|rR z#*(0;<@2G@1S()b5zr6iqh&|X@iU&m{tVz17SQy8(*J}sLOr@S9N=JJ@HPJC)19Ya zd^^RXTbh4YHV5;I<)9HHP(@Ov@nSJ_#1h;{0ACx_%PS5FwLp*mWg0K8KrS=`mEEvb z$sbU%gvf3~$bv`xK(qIrjekM$gAz}^-A_Hb-3&aM50pR`E`VZ;4<-hVIR$WI(L>oy z0Nnm(^XT^Dfc3jTWpg)ZdC>t6OE-Zs_7|x||Ng&z;~4_l9pDlE;u$0u@x+uk)UGNI z{_PST!7plH)2X1_X#O+!YQOPi{_@fs6ffZ~?n4qj`eFB=E&;e|bqw}~jUR%ixM1x} zP`qVXyikWm8>qc~+!ee~0+u~RA$1Zcd+zY)cHQ9tI;O1K0z5XseE^(a)IpU)XDnzP z)ml)89+FXg*dXNxIHQ8n#%AcXd!Q^0&bZ)huAru!;tQ}+P_~`m(d{|`RGtZgoEG-N zZX%=-c@`Tm4!Th%p2eg2H#oDictA4y#=~I4KnrT+ zJc3^+A-uN2quX_bNAm#*Xk>#XQY1XAPn3f0hP(%9)I#=aF@kGt0r1EsxCDuT8tT#P z&jG%>GyH{SGT4crQ!w121qkTa2vFF8&Jpynd{E2{4NC!^P6eONG7XQ;I#9I-nx5le zcrl?5>`(#lz&q$R4N#F-4HtCd@aas0<`3fo{JV-dm_3>=Fm$@k0aZbewJV^?6||uj z+FsxB;4`S&1YM={V$(^m>7XNp7I<{KF7RkP0LpgYYnR+4Ji7e^JgiTYv%lDs4@$DQ z%MwuO6kp{L{Nf>Oo-X`_nHSjWpn>hneh?tfA9yTS}oX+vxV@CmK;V%ONgHQJXkZ&bC4nAN5?V0F4@xgF6lU4I3n@GUKk^Io?$Ok5j^lblqi%BItXeGr0DeEK3T#JEi+sIF%OVDLA_*I}9N*X|G=YWMnX4NZS#>(08NnK;MJD7kwAHZ40az7`n|r{AcG^IH3Cf z|Nr^?N(VB(fkvvBO%tpb7<$1oc-;>&K$gt~lP`F~z<2K4&-(Y@BhI5cPQruxcFA{- z?!zxWgM^MBV9;b>NITA;&wAW}X@?ew?ZC#saNGg3#g@T?pHbrFq3nPEVWp!4qSXT0 zodTX)+{eKD;2+3JkNpBr)*O!rpY8|0j1P3PfvX{=*Izulk9iz?AkoPV>b^A|VDMmI z=w$N@nTs-A3c7j4P|2EsVZsEMjRK%^(>+5$wt2v9!fO6eQ1ifp2Wl*6MFMCwF?jM7 zRKY>(RZu$?Zq9Kw1{WR%_^M+~YiK{|#W_&D0d9H1+yU12fdS%EhaC){8a4TV@yTvJ z5AK7VY##eAK;?`Nq=NQe4E+_j~xt55K|zVB^6MvPT9f0h)1#k zwf97zf;6;K)JvAKID#9efIINole`iWJZkC#ZwQ&-vmS=!m6m))OV5 z`(+tCtXcP!{QF56 zZlCFv@IX4arkk}4B!$pt$lzgZnpE=dKYvRFxDO9rECY9$Aq#jJJLrtn3!p7;Odi%3 zi#a_0t6cr@myzMMHK;`cD$_x;c&AgrzLt2c3KBsr<0H}qd@Zt)jJ~99oabWK& zG8Kz>{5QQ)49+Pm(1ks(!#uiKPk_V_t_AyYcjmwUuR*?C4Uq(&ZPa}M>{%&~PA1Tj z`A*PTJ1}wy3feZ}z;Ebr@R5QC^C8bph8NQ5|NeWx z)}J)K*#U}jq@@s!`xzLR8GMsLC-Xzff25`XxCbN4X$?w2zZuKqLH(B7pyss)dL8kS z9n{*{0V<$DxeC;>-Lc^(DBu_vKywA!Cw#hZdccKzx-U5F09ovje898&5=aI51ltbK zrC=blJPtk(@a%MF@oaQw`7aMTZ;7?o>L2L(5eAQL-V&>S|2>X_X8##H_7y;W|J z>Hgq&yloB#1A|klyE5pG#1~r7{ezyJZQvcW$HAuufuh2r7tHhscwq~vS~=`5Gv=k)x4%L! z9drp%z>C`rU>VQ^g<(D@CR~4jPoxg;_;0F^|L^|`C+KPpkN>6uAO%?*FZRQPI$3Qj zKzevhK@>Fk{5O4(2PzIUUdTaPMIN23cR@nktk=Ml?0FCcI)#Y!D2N3vtz>tBn4JklD|^8n67c9`?KcNG z&a?wW?Wh24*@CnJL0cob!6p6zP=f@TOJ|+Li=&`DTAgkRFa9L|10A&R0(`{EE=A5_))$hXv1Q1b3JZ_e!=Q+Pm8-{D zZ|{o8e0n1|5Im67an>h!P_G?leF$TM=1)NL;4e->Gn_{!>jhA< z*uhu`^FFAO*Fg0;OcLw>7zbnvTpPpz$WoxTuY<>q8=!M7!5;G15ddeu;DpTINPv2i z3<(}PX3U0I?-Ag!BLU8S@dz@GEa7pSbxk(JJI7hqLqpW#IO_!j^9EGj<2dV61oJyW z!50McBZB!3!SpnN*x+%T)eXUPMlc;<%wAqMke51n&x6|Ky}Vu!o>1<;{~o&;beOV2 z47eFQI%Ro50-%84c;TT4?$&|oTF~|){gBk$0=^++)GGlO=IF#iBu z(O8}c8e+-vc%ccKE$sdPZ7o6l4DD5e*6$;H?iuz%5f(^Td~TWn@%c-C&^F=bKLW+9 z;1f*C_(A53L}9^sz7eoP*LFJvG~iNMo3VK4sGLS5SJ3i1Se7Z$VY4A5X7_$p6G zf_mWrOHi|!K_eCaJerTO_!>WP?N$fhq|}XVYc@DFeE?te-L4Euw4h-pj~CZro`hU_ z=L5OZ&9nIc2V|T6|I!OD?m${D0-oR<`VbW!%?AXIgI0$!z^;mGJ|F@*+8un^*$FHQ zt2;pp_`y5bJ(~|mKuqs;Z2+yY^$2+3Q4R4u#ExFx9#GX4h%j3MbkP0oM2I5L<`Xoj z0;m+ogQWrpNduowh1VhoZyA7>J{|Fdwcud|!T+tGCgBT3NY72+WzWC=|2>=k3h+0d z0R>jK?*-_Id?n(L^HeXq$c63ThnzBcWdUhXGVJs0w+;ZpP)2;AwA*kGeUwr2Q9uqj>p?%(``{B!0h#c4qB$EY791$ji zj#@*Q4B~k-9|!@N><-Zl6GArmwH`zZC^Dd?8~Ai9fKHYJ7XzUF0kV3}=D*D4VjiG% z5B%F0L5n22eQ$IyzGV6fjtSOsaSzaKlKk7DatG2n8DBpA1D0ej=LMa}!|us^#Ick8 zwYX>VU(Rwtk8a-$9^Fvo8$3E0Uv7gaSKx151Mb~{j<*Hfwhjtpa0&O}C20K5r!#ed z$8lHCOdRM8)&(Bjz8xOcCyKQ|C)6|_V*%R*zSi~!C^>bXH@*!%B)3x%d{F&=hSw)w zdjI+V--Cp#4BEm4HJUQh6B{tGU| zk9a`6SPe=qpn=QM6E8X{!OFlzCt4>0+>44m?Bp56pvU0mX$88BAk;6&HQ3)L%+)16 z$koj?$kor;6;j?CA8^=U^32&`M+hk4Cm(p`01{z(2AbcsVz6dlutum8dfVQN2WPrL%FHXWk7ejJPUI?Z;jJe}fF(_mi7(6;z?}7TJpw>I6>hZ{60M!y%j4!zU!I}xIGN6i} zn^hD!#y$>BA6In)PaW;kAV7=vY@UZ z*tOma3@=g<5{KkKsU9>q>(ko++Q0&-4l^Er>Y5CYi$Dhim_XVG3g9{sI#|~YRt}1- zW)1fgQFBQ-|K;967=4C1&>Zv7Lc2}S^vg^6dwRN-C@@eP%tK6G6vnv z`Oab2Q3RL&9cavmi@_uL0Jy(5je)@ftwV?yPvGzfbJ$k|Y7`}Z`{mIs>!Ja&<2PfO z;0r_0WNuc45H`^Yz9MceWJD7@nPq$cc`St03}nZ5&^S*gs}ac2y}Tzu?FTe- zUfd}G+X1@d$pc;P#1*g{_+$=*9Oyn-a2D+4T@N<##RB+Z8PL=!cbAE0? zW=?969_V--pAdZ*p8?Kr$zdWHZKgM|PS z1E^N9;AdipXJujtW@TcqU}a*^VP#^FWMyLDW@Tdd$HK($k%fuj3JVj%3>GGaE*2(+ zS{5dT0v0BQXci_0R~9CQZ_G>#SDBd@ZZR=2JYisBxb&ZqVcCC1hROdK8QT6cGJFJ$ zhW=w@08M$Y|7B!|`NhZ(@QaZ_{1+p`@1KkePk%BpT=~Jsu;K?J!=&$w4B_7y89sbr zWN`b;$nfP8Bg5q5j0{ZE7#Vo_7#U)^7#R$@7#SqG7#SG47#Uu4GBUjFU}QMj!N?#{ z&d4B8&d9(~&d9(}&dBhijFI6(86(4sGDe06WsD4MWsD4^WsD5IWsD3qWsD3rOBoqX zlrl1ylrSN?{coECU@F13v;YKVY!-ZHzh7+-j3Qg&BSVoJBZIdaBZHVL zBZGkxBLk}wBf~s1Muu)vMur4aMuycUj10aej0{P}j12Kcj12s`j0}1jj100Gj11fo zj10=+j0~Lr7#MDUW?+!~z`*eEJp%*RTLuQ9M+^)?_ZS#%++|=`a+87K-wg%^p=%5b zPp&dB9K6cFF!?G2gYp#yhJTkC7z{5mF!Y{dU~oRkz~Fa`fkE^b1H-z53=AvwFfjbs z&A>2uHv@y?ZUzRmtqcsORx>cnUCqFtyPAQ)emMifrDY5Z8<#OKNGxMu$Xvp}AiRWu zVc%i~hS0?f4EGi>Ft{&bU}&Guz_5QF14H6G28LU685la}GB6m-WMI&k$-r=U1_Q&q z=?o0)jSLKP8W1n54{8_~F4ZtFyvbl-SdziO zFh7HVK_!EM;ZiySLqIwMLtq>OgI**9gJ>iJ18*b)18XD$!`}!7hOZF}3~wVC7@kHj zFx-t`V7MB=z;HH#f#GNb1H;}328OK>3=C@{7#NmDFfa&(GB9w4GBDf;Vqmxt#K3SR zh=Jik5Cg-RAO?mLK@1E>f*2SM1Tiq|31VQ_5yZf-C5VAxLl6VQnji*-6+sLPOM(~} z76dUc%n4#(m=VOlFeQkAVL}iCLr)L`Lq`w;LrV|?LqiY)Lro9^Lq!k+LrD+=LqQM& zLrxF_Lq-q-LrM?>LqZS(Lrf3@Lqre*Lr4$+ugG3MmgGdkqgFp}i15XeG14j@8 z14|GC149r4!=FF~h97|p3||5n7(N6tFuVz5V0aP8!0;rHf#E?Q1H+v_28J7f3=CHS z85k}EGBBJ8WMDWE$iQ$Ukb&VqAOpjmKn8{#feZ{=0vQ-K1TrwJ31nbc5y-%>B#?n& zK_COeoInPK8G#H8Qvw+nCIm7txCAmVSO+pNJPu%BI2XXca43L*VOszL!>RxVhIs)D z41EC%3{3$H47mXe46*?X3>*Or46pqe7_Ry=Fr4&fU|8eNz_8SxfuY5pfuY==fuYEs zfg#tQfg#18fx+CLfx*z9fkDlmfkDonfq~1Pfq}uFf#I7U1H&6X28Ks|3=B8?7#Pm^ zF)*ytVqloB#lSE{i-DnDi-Dm+i-Dm)i-93Qi-93Ti-EyIi-EyLi-AExi-F;qCIbTx zs1dqg6$3+XWwC2=Mm_^Wz!L_B(7cq?w9LHJl;FzZkkpD21_lpfMg}(*=kUbL63?PS z28PUZ28LiyzxV*hpb$d_hFm1B5d%Xd64#i4VNx*zLvDU)acX>OSxJ0JW^O72!vi}; z2G62G12>Pvyp){OA_j&CBZ!C@T*ToJBSUymW=X0~2)LeLD0s!d5L{9eT9TQ=z!34C zfgw0Gu_!qsxTJ`I0kqB{I5Ids#ML(-J^+-iQVSUv(o&M+Q!WK3mba4X8s^$hm+O9Y384;iy0VR{9`khk}Mnh-*ZM zlVh+e1H%b1Mo>a7NzG+oh*-eD;Nw_aoSB~Ilv%>Sz_EaV0g3BzgOMR9H8BO0ydiP( zAqX4?;gC33@sxqV7ZkG4Wa64v0*dSdXBfaOBA@)^#2kpD9|$voTQsgkMGOoL(-|2+ zq2L+p4>5Je6L2JftYKgmAO z1H&#j$B2R95S(Mo!0goFu13d_?MRWr@7?k z_y-|{>W7^S3?&&w`Q`C>`SCfR2o%VI80_I1f#Cv&lZ*_`DGUq>|3TRX-1cQ) zSX9iwke!qQDH+o;)AAV@IyQm|hSXG_5a*oI;u1)4^%0U%on1V06Vp=}7z{o$FgRzV zCTIH~2h)vP44^!iSdto&51wdx5X8XX85C$>z`(FVj*-D7mw^GazztNWh59)=I(xXf z#QO%sJNtz&FgQel)f$^HFcd(UrVI=dCNh8$38W}uU^uXvfx)vlxU$$K3DhDv&%og7 z=Mo>{80^i!AhCs!0bKYXyWC(e1A}8q3MiX|h2Z=ZpPZ9fkd&WTloFp)lE%OgkPS&2;3DzHF>sm;N-Zo+EiMU4EiTO|VPMGe zXJ7#3rg%?3&yaZkUXBHS z!N4$skBPy($SJeLH?hDkwVZ)rLN6mjaDGvVPl!uq5vc4aW?-0rY_0_Z185o>R%915 zFbF(iWN-^kErF&L1_p^v1_npBqSRCd28Wl7(7qb99)R@J7zE&T3#7J6NC%~^oYchP zR8Ty@^Bu_ef1tz)jyLd1s048Q2Nb2I<`#fX08{}NA&y1K&czH2YQ+o;d8N7WNjcdm zpnf6)C<7H_GB89;0LL<@@BkN6&LKfQ3=A7|U`0(?VoqjCVo53kLoBquE=nya%1kY0 zU}yr>BAL0V@x>*Hxdrjr9#!#aMW9-}pobCMrA#bJ1qT-c!;4;sEsj1u{?73p&XAT3 zD6RVk#~T|3hd2g-lKFK82A{;@5^%lZo1a&b!N9O#E+}h)b4G< zdD5X1R;zlZq~?`mCMV`FFzf&|Z^9h|;$6c)2X#z=kY zfg!4xfg!o1C?`HKrzAcnwWK7qD84Aav?MbR6axuX3=Fvi@yP|H@x>)YrO7453=9iE zi40OsB8AC?35=jdl}l!kPi9^=14C^g14B+pN^*Q&YDGzWPEjcXgVHu|9ECV~yTbGP zgQbiNZuv#Ii6x+WOiy@#tKfj5{G?O{hKk(`44}m9o>CH$m;?=s194zOf?NaQJ^g~6 z7#JpGGB70O6l5fVYM0!^0tV1t3Q$cNpOl|p5}%YxaNsZ&PXgOh8xfeb9+W&aR#iux^aks0h|{=*#ufbFfbTE;?y%32KlsfQN0{Oq9WzfD8-!^eTU1yu zFa*p8<+Bv;)JkwO$YMV@O2MV8b3iDlbsFj%0_j(QQz}x$4{20O++$>L^DjsRwQ1uR z7(D%g14CWogIvQH7#tWF!HGS%vN*T|)Y{j$&%og8o>~&j!0;g%Y>{J-bG(adh-;9q zryrhzLo{$p-f{GBzjNx2!-#a6=}T@8as{9O4<~ z7~&cq8VpL3`4eD;s)utFBnN}y8Pe5)b+II%VdCTB9L~V7;|929b}lUn$;<^6`iUi} z!Qc`Jl0iWF-CaUL9Gw^#HXMPZcu3Q*7&NE^3WdtNWCjL~I7S9&FALNVOe;!FjW0+{ zPmKpKxHv#p;l00 zxpPrTKxv70Y9#}MS1|)aQEFLgQE@6LZGha71nMe3I1BFLz!Q7`#OJON0SpYFHHRRl zfP3Z60ig!)+^r$R$PfT>hg&$f2M$WOPDQDS*$fOGw;32bgZ&Y;Xa=+z0`-Q!7BVm- zL&lj?;&Y(YR01OdwBPpO6{u-YP#K(=mkx4V#3e=s&tex)I9a@7Wbn-fGYfu$nl_+* zj$?qQGXukm)eH=|H{*j# zK)FsM5L~qz8i4BokQZDd;zRu7ojm;;F2OxzSwaOl9)3<@!^oo$Nii7AP>@g<Tq= z8N$GD;~c1Mke6AU;h&Zk0@C9F_d;+u1H)ZVKN~WFAD>yAAD;&vgs@lxYTtu{K_LWG ziY8~nn}ZAt8`7b}8Ug;Epe}=I5d%XC)C_R_!@v*#>JsFE+xrX*Kk^tD+&ukUz=IX> zPNB};t|1Hz7vvZj0zu7O1_q5d1_sxNkRV6rkoZs&(9lY}o2RRf3j@P~N6@}EsI-Gt zpBeCWE3}IVDkTdtjTjgLQoxx9RI0nXhQx0{ z^n<7Y)qlYtd%;6GFCcj^z&{+6UoV(}>j3ZwK~Z9IHUopgR9LPJO3lqL0}T;{LJNOi z#{j3&GzNwUcwNN6a3F+{Av7;1A0-R}ni(LyByimll2Mdjnx5gCnhP0nSdm;)+K85k~rdJ@ob5j27T9>0P%nk67<+bA9sE)wCO zZbgYt2-w2{1`G_~;lT})LCx9B63<|Nq$KkrfPn!t-^0++1saaZ0ksTMQ$Uf*zyQiI zkSYw4X&fFgFhE;QAO+A^Kk=M_A-EthIkh+>KO`}!n1SKNKCleT#^rJTxb?R%I1>P+=BSD%$!t6PU?sQ z#iVaws4D}*3rKDa@&_H($^hER;0tQHdWOV9!#Ck6BZC{X^pY@OV8~6)1$A>$<8#36 z^>h7*5g0FjPe16GOi^m8hci6sNUUUF@GmIw&tqW7_zP|7g4&f3-+@*m2WRFMyQfR_qqi`2aY5jGBUV1=j4N$%MK>s)DLQWGcerv!T`xbp2eVK3u@9bFci!L zl`uIu;hA}mp{;^h3=H5J1}?&}lz|~QClxf1XmAcRR0|&HLv0%6gHtGCOi}}q2}6QH z{hS#XE>uHX8osW+3=C%r85oN4QsRSMU0oO$K&cXvejo`m!U)`t#PH9!aXKtq3tpsMylCIbU3cG0TL z&Kw4Y5dZklfB;a-Mx&gO!2{I%4{>B*kT?iVyybZe3=bf~=fU8iOoPP?;Gsv5@tL{c zq3>SEsG>(|Vu5o>Q4RxxWGXmhK%-Xfuo&7f3({eLw&WQY99khABuFvN0Bw2%8TnjkFGg_d*1rMeN z*$fQMK|XGfi48Yr&^QdoByi0H8{+)X0UrZqVEC{GT9O8U=9d(pvkjnuEN~CU$k)|9 z-p4Z-G_JIT0W=;C&J{)s3=h&lwMhkRT+XjFmw`bI)La60(@XN>3lO8*84np40zj3M zBe;z%VF2p8 zm6)8IUz!IR#ChQY?uLR|zzhr$3JeV3o=|#93AEN(&<`HY0VNVptL>4~}k!OW@=HY4W;&4nYekE(Q%@@#jO^ zp{@}ju0ehb44~l#kiVS+LSa2fP)Y3^5D&?EkO6H_TO$WF$pfCRjL%O?D+Z0>?brYs zEd-T)0#^~^d@yr9%z~8T&Y(_R1hn6l1*Ff?Q{FhF`UpneT_CgsBd28J-`=q6pAhk3@0Ed$&G@~{B|gE?d%5F6N0c#EqFFC z0#eAiIfEt*GL|ziIDwl(2S77Tpn+=8kO<1e+6&OoQfg9ZdOE0C;E)UUe{e{UpQp2L z00YB<8Ssw05d*`FR8pBGY`4KEEP zpmVmKdBuUCiJ1%hkWo9Y{7lfX_zaL*+8J7mgC^V<7@#Wz+QIgM3PA>j1p*LlkZEdg zDFPo)VPF95E%prnRgrG_MWBIG1_pzF3=EDX`JN06KURWftRU5X0W_q*V`PP}wsvk} zd=jW*1un~B0R}37Arrt3_rb9n%)p?a&&Uwu=nE~EZa@YgK%=A#3=U9}gF#K_2X`14 zf|C>Tz-8@+i=eVL4?MP3%)kgbkO9;PbaZh6jR!)e6jM@@We+LEGG* z2nKbPL8~EFFfjN-+j1Q%!9Mo~O{9RPu0Ul2te+Olz|aBhpMuK*jdV!698~&3=2buw z6`(Q z)NvDF+1o8AKd~e;4>aZjYo+ImO*YPB0L^m*Gcf$9g*GtI zGS&=~fe%+d@IZvbR|W>>(jxHS(_iEfthCa+WY9b}s8{a^wk*IC$vV(rJ}3}Ci)M-# z7+%4tua8+*3=Oa#{0t zAPRp5hKjY2t~I22%fN6Y3)Eo0JQ~5OTfho1H*;gu%%ET#l?{P3t9@bU@Is?g65iCQVT%S(H>_Z1wLq;1X5uh zfX|k|r&~dT$e?jwP|1*ynphB@lbH)D|MfuYY$}T(eb>^0cxZc{fx*BMJfH)u9}60w zB^Qcc7R&+-(v*Z}<~e0M=jVW22kP^{hoeA>p}m8Mw+sxv@P&9A(A#0qGVd)c8J2_A z@D(#KXo8CH#N?v<_|lTh97yZLKngl68C+5no>`Iss!AXWo8X=U_3RlKED()BaPTH) zfZD}=A@RZCjsc*)_+D`EgJ%)JHOhvypv8iT$=TqwY#JWmL;)*W85j=SW?%@(4=pGF zwX`^dm>7amK~ta%3>Ki)nO|x-I8uK={O0K55)Udkz|Bmk_cB0(TA+LmiYf+%3~#Un zh|-&Zp`jM+B+xJ}ti)kp$Y6%dl?GQ9yXPe3fF{)8$r?7Y-0+-%!9O{QeFnQ?G7#J6{ z+$W2HAtkf8ASbaBG_r>_y2Sv`lFp7H3=9Ws!N~~P9stdBItM_8Dx7^?;(a{*Tp1WZ zW5S@Ig7k18!|{-y2(B!4N(7BsfCgX~7y=MxgW9$M&>_sUGzNxN*aUn|VsQy%@xVq+ z1_sd3ZhW{SXolm01GxVRN-ci*C7{W21_lF!fdP>W3>h~V7@U$*jGRF2SqsS2FQ|Lt z8WG|LYPhfX3?0`D$%mKo3=AvY!74A%pboh1vH%aM`T2T+8W|1KK)MpkAyENZ;Nlzr zAEW^fB7p;hfx!xz7ol@i;BF)X!weL6fD>{l*t5wg&@vHpjske}!wt5C1Ke^1_0d7W z3a+-?T|%H$*MUCpibv3rLr`D6n1SKL9YzK>N6>6NNPvN1#RAa4dQpiVXr9W#8Jb8T zBat^i3x7eQ)+G!K7N5YA@28N^1l~|<(pmjg-#mPmfsd5!rH08wc9fG8Zm-6xO-kp{qT2*5gC3=BJVfeU3&ClR~=gMp#pD0FBEJhkTm zS^o>}p%u&pH|M}X%wWL4P?B0v0x54YK0s#PofC^vzzabc7-oRhW#s3VfJUPj7-T^s zI?xF)cqPujumCa{53OJWvP;7Ai&7XE3Lut3<~k?9hSWpyVRbg>7!Xj2mkTZ*p@Vgx zE(u5wR4{>h87Zkn&{Wb8&d3lRm0ASSU(CR;7F5(G$0wH-73UYlC*^>b;4~a(WbjQa z0JkO>7!pz#5$zdpk?0Wy8eUCJ%!AEeP4I)I4)9$04QTVm72do7kM|~}cor4Hg(m!D zfKR7@Vhu9mu;31KOb67a0trJ_bAaY&!d#t0{DXoS7*0H7U~nu-jm$3%E-gxBVEFJ9 z92KBZaqyf{0c;8mJn*sr5`IuwaNL1H2b3zoBgr1FjxMf2&{1yCihNMGfmSw`!RBfh zE;BHIMn}NYwvg3X8Ph$qaCY_d@$>`jDMx8$GB8}oXJiP6j&Bz;FmQmD*ZD&S=RrGn zAkXelck`+6~w6jgBJ`8pt-h?e8|ij1A|W>1A~X7PY8JB?SJs9 N3-HR^j4nn7PXNSzE)@U( diff --git a/0000Boot/CDBoot.BIZ b/0000Boot/BootCD.BIN similarity index 64% rename from 0000Boot/CDBoot.BIZ rename to 0000Boot/BootCD.BIN index 176e3c3dc4908dd0f270ca6ed92a471c8215569f..d2211b5cd96a1a4ee775104826112f705eb4d826 100644 GIT binary patch literal 2044 zcmeyfBcVR6@4&CLz6*O8xPHH2V2EyhEp+fTOIptf=EG@yH+C{`7=JVV|9J^m;f+@t z7!v9k7z7v?8IXZbequ^yUb;eXL1Ix+ez|`z1DvH$lv-GtS(I9=kf>m0qMMXiqL7?e zkeHN{s!&jrpPX7;oL{8J#mgYZz`&3VH**W$X7=0hwgW_i1o(G7k}cxc7s>Eq@Bi2T z_PH~>*!q9R0rs@M18K%5)4O^57#J8p+8r3uj4!2q|CqLT0z+E*@hMPOEbL-P?-uQ0 zU|Il-(b6~M8!#;C{El%lOVCS3_j%Z*=>pKt?@&7<6)Bi&O>D{u^ zKq?o43}gfum~IIcDcPX+LhgS=D{tjATKj4A*C literal 2037 zcmezMXGg;Pw7vsreHZpHaJ^t)h;Du@c497c}ZH&g|xmK zuU0T7%Ec&m~Q2K?3@$ick|6k1czhS|P zRsVM|NWa+r-}u0bP5*Z=Fuqs=VlD>}i$KKO|1b9bKb#i$BJckOju$omU#$OMBKsoi z|BJZ)8-BdV`Tt`6{}SE}KVKyMe=+rc3G<7k|I;E5zv%j3qLsGu!DJSO7iRxAFuZX2 z4|1RQ3#I=n8cM&ca42~Javb9ut^=j_K(3Mc|AO!T1_qEI%exI6{|~*}u;2y%{~Zh~ zUda64!NBlB?Eelih8F@L7jggJ;mr{6g5`gj@qrir{zar6e882~eFI`0$QtPvyZ^1= zDER_14P*lsh{5uP>p;na!!L~gmk7Lw{SOjif1|=t`uj!0|HC^Nc7P%&UF|pv0|ca{ zs~rcif)xxD_7yOuA9G}2V0iFi&;QaWgp?sd>cflq|4VIQQUL;n0{cEdb$xiz^uJUA zA!UG&dhjCke<}0Jvj0069Mbv@82^9G{^ILj6^@dhX~ri(PJGh^4k(s4T_-NSEP2%U zlcBzdc_%}CAV`wob8h$XgD+URFQoMxU_O-AccA$>e`K2W&GMaTI~}}z7+(DQ+kGtU o-~)m5E>)2GH!!Dl-+0Bqz~BJ#+9)0kfzc2c4S~@RpmGQR00xU)6951J diff --git a/0000Boot/BootLoader.BIC b/0000Boot/BootLoader.BIC deleted file mode 100644 index 82eeb50fc34a8da214975ae3eec3138cc97281cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 639 zcmYdGPdU!Yz`(%Zq+q15W5N8iz6)u62lg${Pb-YHwn#K5qVfyMZn@&C_D z(s~Z0_1$>2gmJf;?$6g{9*-TJp)q(r~Ld91)u!Hl++@Sq=BA-e@+TS zG$=JWzbJ*5%TQ0jr6{v3Rl$Xq%LvAH<>fMlvAsb$gHv--lS?x5^Q=H#8?5-Bz`q9| zx1A_?%#!u)A|dm8~#31-0=U|!r$;H1F6|p&G4f1-;0KS zY0VGV)6%0v=$sm z3>!G!!DX4#yI30-85rI*ANs$6@m=#Frt~h>Mu-4odKYUGg4xW-z>vi}!ywDC`tqc(&k~!lPdi&lW~JQ~do3!|u_~a+1q!xiB4D=NIb5bCpL8;04MJZgo zhI$GvMVV!(3Lad%MliM~NOf>(PHJ*VW`3R($Sp$#f0Ji~xK$$vjP!^xA318Nbdlvf=3_7 zfPFR$FHZe`aq+*6LD6R$i{kfb%@5eq(z|7j+A%UPq@{PW9CZRQxNn!Trg0xAIS-2C zHjqeqCu3uqw=nLjV@&S?NBX_0Bh2l!X= MFJzaW`wC<$05|M$KmY&$ literal 0 HcmV?d00001 diff --git a/0000Boot/OldMBR.BIN.C b/0000Boot/OldMBR.BIN.C new file mode 100644 index 0000000000000000000000000000000000000000..1075add49cc983afb062dbe8df1733853598e5ff GIT binary patch literal 512 zcmaEzJfZ$qTHl2|3@pFr$g%M+;9rpzm=>HClop!ScVGv@jVbXBQ&^FziGBf|roE-VfmF8@1Sn2xguFr;a;dZ-*NATP`r{n_T;{i6M=D+p&(6 z{|;%LE-d`pE*^Zu)bXO@i$kXi2miK12VO9xb+V)_OsGlYJW%SFwlJn9&G1s%cax5b zAgYAL+J&Rm{NKTjqXq{KzF^`w*l{7Mp7etx08Xf@3!H$ z{R|C#$Nqd?DxdgYEvjZ;U+rt=eRFGHm@w>HRQp1Y;jF~#f9^q{P6`a}srk7K9*IRM z3ND$&*$hFci75;Uu0=)pMZ8=LyBQg_@SPP{W5ZDT<#6rxtvw734GM}3-2eXnXW(F9 gU|3Pl$nfv~f7XBh|Nq-w&&agmN+>h}a8jYG0FvFzP5=M^ literal 0 HcmV?d00001 diff --git a/LT/Accts/Adam3.APZ b/LT/Accts/Adam3.APZ deleted file mode 100644 index 98c87ce..0000000 --- a/LT/Accts/Adam3.APZ +++ /dev/null @@ -1,181 +0,0 @@ -//Change anything you want in this -//account file or others. - -//Set Time Zone -local_time_offset=0*60*60*LTDATE_FREQ; - -//$AN,"","mouse_move_scale"$adjust these to set mouse move scale -mxx_scale=0.5; -myy_scale=0.5; -mzz_scale=1.0; //wheel - -//don't change these -mxx_prescale=mxx/mxx_scale; -myy_prescale=myy/myy_scale; -mzz_prescale=mzz/mzz_scale; - -class RenameSymbolStruct -{ - I1 find[256] fmtstr "$$DA -P ,255 \"Find :%s\"$$\r\n"; - I1 replace[256] fmtstr "$$DA -P ,255 \"Replace:%s\"$$\r\n"; -}; - -void RenameCurSymbol() -{ - I1 *buf; - RenameSymbolStruct r; - BoolU4 old_preempt=Preempt(OFF); - StrCpy(r.find,ws_cur_word); - StrCpy(r.replace,ws_cur_word); - Preempt(old_preempt); - if (PopUpDoForm(&r,"RenameSymbolStruct")) { - buf=MSPrintF("R(\"%s\",\"%s\",\"+r+l+a\");",r.find,r.replace); - PopUp(buf,Fs); - Free(buf); - } -} - -void RenameFile() -{ - I1 *buf; - RenameSymbolStruct r; - BoolU4 old_preempt=Preempt(OFF); - StrCpy(r.find,ws_cur_word); - StrCpy(r.replace,ws_cur_word); - Preempt(old_preempt); - if (PopUpDoForm(&r,"RenameSymbolStruct")) { - buf=MSPrintF("R(\"%s\",\"%s\",\"+r+l+a\");",r.find,r.replace); - PopUp(buf,Fs); - Free(buf); - } - Move(r.find,r.replace); -} - -void FillinTime() -{ - LTDate ltdt; - ltdt=GetCurTimeLTDate; - PrintF("$$IV 1$$----%D %T----$$IV 0$$\r",ltdt,ltdt); -} - - -BoolU8 MyPutKey(I8 ch,U8 sc) -{ //ch=ASCII; sc=scancode - -//You can customize keys. This routine -//is called before the main editor -//key handler $LK,"LtfPutKeyExt","MN:LtfPutKeyExt"$(). -//You can intercept any key. - -//Return TRUE if you completely -//handled the key. - - nounusedwarn ch; - U8 sc2=sc.u1[0]; - - if (sc2>=SC_F1 && sc2<=SC_F10 && - (sc & SCF_ALT) && - !(sc & SCF_CTRL)) { - if (sc2==SC_F1) { - if ((sc & SCF_SHIFT)) - PutS("$$FG LTPURPLE$$"); - else - PutS("$$FG PURPLE$$"); - } else if (sc2==SC_F2) { - if ((sc & SCF_SHIFT)) - PutS("$$FG LTRED$$"); - else - PutS("$$FG,RED$$"); - } else if (sc2==SC_F3) { - if ((sc & SCF_SHIFT)) - PutS("$$FG LTGREEN$$"); - else - PutS("$$FG,GREEN$$"); - } else if (sc2==SC_F4) { - if ((sc & SCF_SHIFT)) - PutS("$$FG LTBLUE$$"); - else - PutS("$$FG$$"); - } else if (sc2==SC_F6) { - if (!(sc & SCF_SHIFT)) - PopUp("WsInit(\"/LT\");"); - } else if (sc2==SC_F7) { - if ((sc & SCF_SHIFT)) - LtfSafeInsert(Fs->cur_ltf, - "$$HS+C$$$$FG$$$$HE$$"); - else - FillinTime(); - } else if (sc2==SC_F8) { - if ((sc & SCF_SHIFT)) - RenameFile(); - else - RenameCurSymbol(); - } else if (sc2==SC_F9) - PopUp("PunchIn;"); - else if (sc2==SC_F10) - PopUp("PunchOut;"); - return TRUE; - } - return FALSE; -} - -BoolU8 MyPutS(I1 *st) -{ - nounusedwarn st; - return FALSE; -} - -AddKeyDev(&MyPutKey,&MyPutS,0x20000000); - -MPStart; -Cd("/LT/Adam");; -#include "PicWords2" -#include "HOME/PicWords3" -Cd("/LT/Utils/Boot");; -#include "InsBoot" -Cd("/LT/Utils");; -#include "Disk20" -#include "Diff" -#include "Grep" -#include "Merge" -#include "S2T" -#include "IDE" -#include "LinkChk" -#include "HeapLog" -#include "ListFile" -LoadMapFile("::/LT/OSMain/OS.MPZ"); //Enable Man() -LoadMapFile("::/LT/Compiler/Compiler.MPZ"); //Enable Man() -LoadMapFile("::/LT/Adam/GrAsm/GrAsm.MPZ"); //Enable Man() - - -void StartUpTsks() -{ - I1 buf[80]; - TssStruct *tss,*tss1; - - InitLocalTask; //needed for disk access - Preempt(ON); //off by default - Silent(ON); //no output to screen - - try { - tss1=SpawnUser; - tss=SpawnUser; - WinToTop(tss1); - WinTileVert; - - PopUp("#include \"::/LT/Doc/StartSong.CPZ\";"); - - SPrintF(buf,"Boot Time:%h17Ts\r\n",BootTime); - AdamLog(buf); - XTalk(tss1,"#include \"DoIt\";\r"); - - WsInit("/LT"); - WordStat; - } catch - CatchAll; -} - -//This must be spawned because start-up files -// may invoke the Adam() cmd. -Spawn(&StartUpTsks,"Spawn Users"); -PrintF("\r\nOS Compile Time:%D %T\r\n",sys_compile_time,sys_compile_time); diff --git a/LT/Accts/Fault.CPZ b/LT/Accts/Fault.CPZ deleted file mode 100644 index d021567..0000000 --- a/LT/Accts/Fault.CPZ +++ /dev/null @@ -1,51 +0,0 @@ -/* When a fault occurs, a child process is -spawned running this file and the parent -gets suspended. You can modify what gets -displayed during faults to assist debugging. - -If you modify this file, you should place it -into your HOME directory. This version is the -default for accounts without a version in HOME. -*/ - -TssStruct *tss=Fs->parent_tss; -void **rsp_ptr=&tss->rsp,*rsp=tss->rsp, - *rbp_ptr=&tss->rbp,*rbp=tss->rbp, - *rip_ptr=&tss->rip,*rip=tss->rip; - -switch (tss->fault_num) -{ - case 0: //if divide except - //push rip as param to ThrowDivide - rsp-=8; - *rsp_ptr=rsp; - rsp[1]=rip; - *rip_ptr=&ThrowDivide; - Btr(&tss->task_flags,TSSf_SUSPENDED); - Exit; - case 0x10: - rsp-=8; - *rsp_ptr=rsp; - rsp[1]=rip; - *rip_ptr=&ThrowFloating; - Btr(&tss->task_flags,TSSf_SUSPENDED); - Exit; -} - -/* -Raw(ON); -coutln "Faulting TSS:",tss," IRQ#",tss->fault_num; -PrintF("Fault Location:%P\r\n",*rip); -Raw(OFF); -*/ - -UseConsoleLtf(NULL); -Bts(&Fs->crt_flags,CRTf_SHOW); - -coutln "Faulting TSS:",tss," IRQ#",tss->fault_num; -CallerRep(rbp,tss); -StackRep(rsp); -coutln "$$LK,\"See HOME/Fault.CPZ\",\"FI:HOME/Fault.CPZ\"$$"; -Dasm(rip-0x20,0x20); - - diff --git a/LT/Accts/Favor.MUZ b/LT/Accts/Favor.MUZ deleted file mode 100644 index 4ed6e52..0000000 --- a/LT/Accts/Favor.MUZ +++ /dev/null @@ -1,16 +0,0 @@ -$WW,1$This is a handy file which can be accessed with CTRL-SHIFT-F, known as a favorites file. I use it for links and "TODO" type stuff in my account. - -If you modify this file, you should place it -into your HOME directory. This version is the -default for accounts without a version in HOME. - -$LK+S,"Goto OS Systext","FA:::/LT/OSMain/SysText.CPZ,OS_SYSTEXT"$ -$LK,"Goto Compiler Systext","FA:::/LT/Compiler/CmpInit.CPZ,COMPILE_SYSTEXT"$ - -$LK,"::/LT/Doc/Help.TXZ","FI:::/LT/Doc/Help.TXZ"$ -$LK,"::/LT/Doc/GuideLines.TXZ","FI:::/LT/Doc/GuideLines.TXZ"$ -$LK,"::/LT/Doc/OSGlossary.GLZ","FI:::/LT/Doc/OSGlossary.GLZ"$ -$LK,"::/LT/Doc/Tips.TXZ","FI:::/LT/Doc/Tips.TXZ"$ -$LK,"::/LT/Doc/Dollar.TXZ","FI:::/LT/Doc/Dollar.TXZ"$ - -$FG,5$ \ No newline at end of file diff --git a/LT/Accts/Install/Adam3.APZ b/LT/Accts/Install/Adam3.APZ deleted file mode 100644 index f90645e..0000000 --- a/LT/Accts/Install/Adam3.APZ +++ /dev/null @@ -1,181 +0,0 @@ -//Change anything you want in this -//account file or others. - -//Set Time Zone -local_time_offset=0*60*60*LTDATE_FREQ; - -//$AN,"","mouse_move_scale"$adjust these to set mouse move scale -mxx_scale=0.5; -myy_scale=0.5; -mzz_scale=1.0; //wheel - -//don't change these -mxx_prescale=mxx/mxx_scale; -myy_prescale=myy/myy_scale; -mzz_prescale=mzz/mzz_scale; - -class RenameSymbolStruct -{ - I1 find[256] fmtstr "$$DA -P ,255 \"Find :%s\"$$\r\n"; - I1 replace[256] fmtstr "$$DA -P ,255 \"Replace:%s\"$$\r\n"; -}; - -void RenameCurSymbol() -{ - I1 *buf; - RenameSymbolStruct r; - BoolU4 old_preempt=Preempt(OFF); - StrCpy(r.find,ws_cur_word); - StrCpy(r.replace,ws_cur_word); - Preempt(old_preempt); - if (PopUpDoForm(&r,"RenameSymbolStruct")) { - buf=MSPrintF("R(\"%s\",\"%s\",\"+r+l+a\");",r.find,r.replace); - PopUp(buf,Fs); - Free(buf); - } -} - -void RenameFile() -{ - I1 *buf; - RenameSymbolStruct r; - BoolU4 old_preempt=Preempt(OFF); - StrCpy(r.find,ws_cur_word); - StrCpy(r.replace,ws_cur_word); - Preempt(old_preempt); - if (PopUpDoForm(&r,"RenameSymbolStruct")) { - buf=MSPrintF("R(\"%s\",\"%s\",\"+r+l+a\");",r.find,r.replace); - PopUp(buf,Fs); - Free(buf); - } - Move(r.find,r.replace); -} - -void FillinTime() -{ - LTDate ltdt; - ltdt=GetCurTimeLTDate; - PrintF("$$IV 1$$----%D %T----$$IV 0$$\r",ltdt,ltdt); -} - - - -BoolU8 MyPutKey(I8 ch,U8 sc) -{ //ch=ASCII; sc=scancode - -//You can customize keys. This routine -//is called before the main editor -//key handler $LK,"LtfPutKeyExt","MN:LtfPutKeyExt"$(). -//You can intercept any key. - -//Return TRUE if you completely -//handled the key. - - nounusedwarn ch; - U8 sc2=sc.u1[0]; - - if (sc2>=SC_F1 && sc2<=SC_F10 && - (sc & SCF_ALT) && - !(sc & SCF_CTRL)) { - if (sc2==SC_F1) { - if ((sc & SCF_SHIFT)) - PutS("$$FG LTPURPLE$$"); - else - PutS("$$FG PURPLE$$"); - } else if (sc2==SC_F2) { - if ((sc & SCF_SHIFT)) - PutS("$$FG LTRED$$"); - else - PutS("$$FG,RED$$"); - } else if (sc2==SC_F3) { - if ((sc & SCF_SHIFT)) - PutS("$$FG LTGREEN$$"); - else - PutS("$$FG,GREEN$$"); - } else if (sc2==SC_F4) { - if ((sc & SCF_SHIFT)) - PutS("$$FG LTBLUE$$"); - else - PutS("$$FG$$"); - } else if (sc2==SC_F6) { - if (!(sc & SCF_SHIFT)) - PopUp("WsInit(\"/LT\");"); - } else if (sc2==SC_F7) { - if ((sc & SCF_SHIFT)) - LtfSafeInsert(Fs->cur_ltf, - "$$HS+C$$$$FG$$$$HE$$"); - else - FillinTime(); - } else if (sc2==SC_F8) { - if ((sc & SCF_SHIFT)) - RenameFile(); - else - RenameCurSymbol(); - } else if (sc2==SC_F9) - PopUp("PunchIn;"); - else if (sc2==SC_F10) - PopUp("PunchOut;"); - return TRUE; - } - return FALSE; -} - -BoolU8 MyPutS(I1 *st) -{ - nounusedwarn st; - return FALSE; -} - -AddKeyDev(&MyPutKey,&MyPutS,0x20000000); - -Cd("/LT/Adam");; -#include "PicWords2" -#include "HOME/PicWords3" -Cd("/LT/Utils/Boot");; -#include "InsBoot" -Cd("/LT/Utils");; -#include "Disk20" -#include "Diff" -#include "Grep" -#include "Merge" -#include "S2T" -#include "IDE" -#include "LinkChk" -#include "HeapLog" -#include "ListFile" -LoadMapFile("::/LT/OSMain/OS.MPZ"); //Enable Man() -LoadMapFile("::/LT/Compiler/Compiler.MPZ"); //Enable Man() -LoadMapFile("::/LT/Adam/GrAsm/GrAsm.MPZ"); //Enable Man() - - -void StartUpTsks() -{ - I1 buf[80]; - TssStruct *tss,*tss1; - - InitLocalTask; //needed for disk access - Preempt(ON); //off by default - Silent(ON); //no output to screen - - try { - tss1=SpawnUser; - tss=SpawnUser; - WinToTop(tss1); - WinTileVert; - - PopUp("#include \"::/LT/Doc/StartSong.CPZ\";"); - - SPrintF(buf,"Boot Time:%h17Ts\r\n",BootTime); - AdamLog(buf); - XTalk(tss1,"#include \"DoIt\";\r"); - - WsInit(""); -// WordStat; - } catch - CatchAll; -} - -//This must be spawned because start-up files -// may invoke the Adam() cmd. -Spawn(&StartUpTsks,"Spawn Users"); -PrintF("\r\nOS Compile Time:%D %T\r\n",sys_compile_time,sys_compile_time); diff --git a/LT/Accts/Install/DoIt.CPZ b/LT/Accts/Install/DoIt.CPZ deleted file mode 100644 index 85d31f3893894d357711de3d9071d33427f79073..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3810 zcmXTR&rDJ9P0UUWN=?o$OD(E&$t=#+@HA9NDatHM)#T->=H=4YcPuV0%}p&NJ zP?C|VkO9&IHeI10v8W`oBr`ux0i+Y8z&|I&*C|LLKTjdEM30w?mrFsx(@-I)G%eb~ zAXXnkXD<`tJD=Hxi#=a*=Jjnz>PQP;EvX$=l2%FHWq(}3yI zQBqB|()S5*cG2?;_E*vYD+ehBDR#>*%1tcMPEmUkeLUGJ|(b{fTGmmVn^@PN-!_HC=+CZ zCnzE`)I-$au>vs~5?1h#tp!CBIFUi)DLk_(u_#3YlCl&OLW+xnONvU9OBA$9ii>UC zigoSsQY%X0ONxuZws~48Wa^aWWtKpAh6-9qiN&b~I$+9BM=P_aP)94bSVt?R7@?%N z#85}8xWovYMidmvGct2h6*NkUi*@Zvi&Kl@^Gb6SZH*Mv)D%jJixq9%iZwxDrvT#F zf>oh7AtEF(CmW<&N69rMvqU2X67Bjf`N{fFPw9n3M8zm+TE`TDV-sXrT7Hp&My9QS zb*7D>fpw;~wx)t}kxv@bNw824$;d2LCcps{|Vf%J2%ssmUezMS3wsF?k>ia}_9K zCnx41xea6BbOYi*6lxno6@k+e zNW3UBJ);C}JD7*ABqucup#sE#DhSWa3&{`3FVJu+hGa4Y1*Amjn34j{bj7gbr=Wl$ z?+i|pXoALYL66M562}lns8ygq&dF0y0!6fEUUE)pN~(goL4`Ufohf9bR%E86CTHd* z<|yQq<|d^U6(hxuf&w^e+6Ls71eX+PD0v_Xda#5-L4Hw*l>*#ikf0$h)rRP*Gm8op z6tJlVNkANfWOi;bCql7rVsS}ok%oaLC|L&QB$lOW7-}LZ1{E*1jwSh?8oAiQSG72% zNJ$6eS_3ShkB~LQDVteTh)ph8Nk`p4T^nRQigb8pNk({LW(lOsftD$t_zQs5mqDoo z(D+IzE>S=V7f`ghq!yQC<|Tsilmc9bf=_BmNoo<)*O06NEssDZ7nc~?`ogLpXf3Iv zlaiX2SejE356;stCl;3&VNnVye?clBCPV98B^4DncbynFH+F=2~kMNECLsvl?o+Asi`QL1?DD~ z)ST3kR0SoS;u0erB?T9_4oCq9@-jR?c)2)TQggs zGxp$Z2$VR0v`~;Vx`7%zNPJ9#z>OK=4S~25sT_mWrJy#ChPrC9I=DJTF%L;`lA%F` z5y(J!VhyN@P(aGs(0EgT6tfDT_*2NqPfSTIg642oLWU<})NBcD zh=LM2)F_BaAcMe}9G1?(ZAp+akPG0tKpbS}fI2e@u-=RUs5?X08A#~?>IAUmpi~Iy zO@KlIRNlaxf>OaErNt5xaJ)bQ3PlkjMWP5J>R}XNEb)g!9$xEUkw>a`P-U^yJSYml zp1_ehQ52%3PpBMfI)WL7lu{KiyPU|O3ogT;u?=cuftpXCrW?F1Rgw>>|GYDEazObB R6fI!&(Aa}?GQe$Z1^|~$IF$eZ diff --git a/LT/Accts/Install/User.CPZ b/LT/Accts/Install/User.CPZ deleted file mode 100644 index f14a113bca8b69bb2f2a2474633d24591160e46e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmWG7PIb=DE6&eJ^(jfyPzo(hEzJ@fZMC)hMz6 diff --git a/LT/Accts/PicWords3.APZ b/LT/Accts/PicWords3.APZ deleted file mode 100644 index 649cfc5..0000000 --- a/LT/Accts/PicWords3.APZ +++ /dev/null @@ -1,9 +0,0 @@ -// Create Pictures Here - -void LoadUserPicWords() -{ -//Call $LK,"AddPicWord","MN:AddPicWord"$() -} - - -LoadUserPicWords; diff --git a/LT/Accts/Servant.CPZ b/LT/Accts/Servant.CPZ deleted file mode 100644 index 25e03c8..0000000 --- a/LT/Accts/Servant.CPZ +++ /dev/null @@ -1,11 +0,0 @@ -/* -This is the startup file for servant tasks. - -If you modify this file, you should place it -into your HOME directory. This version is the -default for accounts without a version in HOME. -*/ - -UseConsoleLtf(NULL); -Bts(&Fs->crt_flags,CRTf_SHOW); -//Turn on preemption \ No newline at end of file diff --git a/LT/Accts/Songs/Adam3.APZ b/LT/Accts/Songs/Adam3.APZ deleted file mode 100644 index 3ed008b..0000000 --- a/LT/Accts/Songs/Adam3.APZ +++ /dev/null @@ -1,176 +0,0 @@ -//Change anything you want in this -//account file or others. - -//Set Time Zone -local_time_offset=0*60*60*LTDATE_FREQ; - -//$AN,"","mouse_move_scale"$adjust these to set mouse move scale -mxx_scale=0.5; -myy_scale=0.5; -mzz_scale=1.0; //wheel - -//don't change these -mxx_prescale=mxx/mxx_scale; -myy_prescale=myy/myy_scale; -mzz_prescale=mzz/mzz_scale; - - -class RenameSymbolStruct -{ - I1 find[256] fmtstr "$$DA -P ,255 \"Find :%s\"$$\r\n"; - I1 replace[256] fmtstr "$$DA -P ,255 \"Replace:%s\"$$\r\n"; -}; - -void RenameCurSymbol() -{ - I1 *buf; - RenameSymbolStruct r; - BoolU4 old_preempt=Preempt(OFF); - StrCpy(r.find,ws_cur_word); - StrCpy(r.replace,ws_cur_word); - Preempt(old_preempt); - if (PopUpDoForm(&r,"RenameSymbolStruct")) { - buf=MSPrintF("R(\"%s\",\"%s\",\"+r+l+a\");",r.find,r.replace); - PopUp(buf,Fs); - Free(buf); - } -} - -void RenameFile() -{ - I1 *buf; - RenameSymbolStruct r; - BoolU4 old_preempt=Preempt(OFF); - StrCpy(r.find,ws_cur_word); - StrCpy(r.replace,ws_cur_word); - Preempt(old_preempt); - if (PopUpDoForm(&r,"RenameSymbolStruct")) { - buf=MSPrintF("R(\"%s\",\"%s\",\"+r+l+a\");",r.find,r.replace); - PopUp(buf,Fs); - Free(buf); - } - Move(r.find,r.replace); -} - -void FillinTime() -{ - LTDate ltdt; - ltdt=GetCurTimeLTDate; - PrintF("$$IV 1$$----%D %T----$$IV 0$$\r",ltdt,ltdt); -} - - - -BoolU8 MyPutKey(I8 ch,U8 sc) -{ //ch=ASCII; sc=scancode - -//You can customize keys. This routine -//is called before the main editor -//key handler $LK,"LtfPutKeyExt","MN:LtfPutKeyExt"$(). -//You can intercept any key. - -//Return TRUE if you completely -//handled the key. - - nounusedwarn ch; - U8 sc2=sc.u1[0]; - - if (sc2>=SC_F1 && sc2<=SC_F10 && - (sc & SCF_ALT) && - !(sc & SCF_CTRL)) { - if (sc2==SC_F1) { - if ((sc & SCF_SHIFT)) - PutS("$$FG LTPURPLE$$"); - else - PutS("$$FG PURPLE$$"); - } else if (sc2==SC_F2) { - if ((sc & SCF_SHIFT)) - PutS("$$FG LTRED$$"); - else - PutS("$$FG,RED$$"); - } else if (sc2==SC_F3) { - if ((sc & SCF_SHIFT)) - PutS("$$FG LTGREEN$$"); - else - PutS("$$FG,GREEN$$"); - } else if (sc2==SC_F4) { - if ((sc & SCF_SHIFT)) - PutS("$$FG LTBLUE$$"); - else - PutS("$$FG$$"); - } else if (sc2==SC_F6) { - if (!(sc & SCF_SHIFT)) - PopUp("WsInit(\"/LT\");"); - } else if (sc2==SC_F7) { - if ((sc & SCF_SHIFT)) - LtfSafeInsert(Fs->cur_ltf, - "$$HS+C$$$$FG$$$$HE$$"); - else - FillinTime(); - } else if (sc2==SC_F8) { - if ((sc & SCF_SHIFT)) - RenameFile(); - else - RenameCurSymbol(); - } else if (sc2==SC_F9) - PopUp("PunchIn;"); - else if (sc2==SC_F10) - PopUp("PunchOut;"); - return TRUE; - } - return FALSE; -} - -BoolU8 MyPutS(I1 *st) -{ - nounusedwarn st; - return FALSE; -} - -AddKeyDev(&MyPutKey,&MyPutS,0x20000000); - -Cd("/LT/Adam");; -#include "PicWords2" -#include "HOME/PicWords3" -Cd("/LT/Utils/Boot");; -#include "InsBoot" -Cd("/LT/Utils");; -#include "Disk20" -#include "Diff" -#include "Grep" -#include "Merge" -#include "S2T" -#include "IDE" -#include "LinkChk" -#include "HeapLog" -#include "ListFile" -LoadMapFile("::/LT/OSMain/OS.MPZ"); //Enable Man() -LoadMapFile("::/LT/Compiler/Compiler.MPZ"); //Enable Man() -LoadMapFile("::/LT/Adam/GrAsm/GrAsm.MPZ"); //Enable Man() - - -void StartUpTsks() -{ - I1 buf[80]; - TssStruct *tss; - - InitLocalTask; //needed for disk access - Preempt(ON); //off by default - Silent(ON); //no output to screen - - try { - tss=SpawnUser; - WinToTop(tss); - WinTileVert; - - XTalk(tss,"#include \"DoIt\";\r"); - - WsInit(""); - } catch - CatchAll; -} - -//This must be spawned because start-up files -// may invoke the Adam() cmd. -Spawn(&StartUpTsks,"Spawn Users"); -PrintF("\r\nOS Compile Time:%D %T\r\n",sys_compile_time,sys_compile_time); diff --git a/LT/Accts/Songs/DoIt.CPZ b/LT/Accts/Songs/DoIt.CPZ deleted file mode 100644 index 5e83c80..0000000 --- a/LT/Accts/Songs/DoIt.CPZ +++ /dev/null @@ -1,4 +0,0 @@ -Cd("::/LT/Apps/MusicOrgan");; -#include "Load";; -JukeBox("Examples"); - diff --git a/LT/Accts/Songs/User.CPZ b/LT/Accts/Songs/User.CPZ deleted file mode 100644 index 12601d4..0000000 --- a/LT/Accts/Songs/User.CPZ +++ /dev/null @@ -1,5 +0,0 @@ -UseConsoleLtf("User.MUZ"); -PutSysText("ST_USER_STARTUP"); -Type("::/LT/Doc/Help.TXZ"); -Bts(&Fs->crt_flags,CRTf_SHOW); -Preempt(ON); diff --git a/LT/Accts/System.CPZ b/LT/Accts/System.CPZ deleted file mode 100644 index faa52ecf85d4388142918d4872640be236400c9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220 zcmdPb;^hj-$ShXKELJGVNL45cpt5hff=>;j)0gD!A`KSUs|G& pr~p@<2R2WSmrF~Zmn*b5)j2<}I6o)VrzB0oFVx3J)0&ry0RY^$NY4NO diff --git a/LT/Accts/Tour/DoIt.CPZ b/LT/Accts/Tour/DoIt.CPZ deleted file mode 100644 index 02bbd14..0000000 --- a/LT/Accts/Tour/DoIt.CPZ +++ /dev/null @@ -1 +0,0 @@ -AutoFile("Tour"); diff --git a/LT/Accts/Tour/Tour.AUZ b/LT/Accts/Tour/Tour.AUZ deleted file mode 100644 index 78c2eec..0000000 --- a/LT/Accts/Tour/Tour.AUZ +++ /dev/null @@ -1,37 +0,0 @@ -public I8 PopUpTourPart() -{ - I8 i; - Ltf *l=LtfNew; - LtfPutSExt(l,"$$FG PURPLE$$LoseThos Tours$$FG$$\r\n\r\n"); - LtfPutSExt(l,"$$CM +LX, 4,4$$$$BT, \"Part 1: The basics\",1$$"); - LtfPutSExt(l,"$$CM +LX, 4,4$$$$BT, \"Part 2: Editing and running programs\",2$$"); - LtfPutSExt(l,"$$CM +LX, 4,4$$$$BT, \"Part 3: Adding macros to your start menu\",3$$"); - LtfPutSExt(l,"$$CM +LX, 4,4$$$$BT, \"Part 4: WordStat\",4$$"); - LtfPutSExt(l,"$$CM +LX, 4,4$$$$BT, \"Part 5: Wow!!\",5$$"); - LtfPutSExt(l,"$$CM +LX, 4,4$$$$BT, \"Done\",-1$$"); - i=PopUpMenu(l); - LtfDel(l); - return i; -} - -I8 i; -do { - switch (i=PopUpTourPart) - { - case 1: - ExecuteFile("::/LT/Accts/Tour/Tour1.AUZ"); - break; - case 2: - ExecuteFile("::/LT/Accts/Tour/Tour2.AUZ"); - break; - case 3: - ExecuteFile("::/LT/Accts/Tour/Tour3.AUZ"); - break; - case 4: - ExecuteFile("::/LT/Accts/Tour/Tour4.AUZ"); - break; - case 5: - ExecuteFile("::/LT/Accts/Tour/Tour5.AUZ"); - break; - } -} while (i>=1); diff --git a/LT/Accts/Tour/Tour1.AUZ b/LT/Accts/Tour/Tour1.AUZ deleted file mode 100644 index 14dfba2..0000000 --- a/LT/Accts/Tour/Tour1.AUZ +++ /dev/null @@ -1,105 +0,0 @@ -//This puts the cursor at the bottom -Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL); -PutS("\r"); - -PopUpOk( -"After clicking 'OKAY', you will be at the\r\n" -"command line.\r\n" -"\r\n" -"The syntax is like $$FG,GREEN$$C/C++$$FG$$ except you\r\n" -"don't need $$FG,GREEN$$()$$FG$$ if there are no parameters.\r\n" -"\r\n" -"Type \"$$FG,GREEN$$Dir;$$FG$$\" and press $$FG,GREEN$$ENTER$$FG$$.\r\n\r\n" -"You must remember the semicolon.\r\n" -); - -AFPmtStr("Dir;\r"); -Sleep(1000); //allow user time to see dir -PutChar(CH_CR); - -PopUpOk( -"After clicking 'OKAY', you will be at the\r\n" -"command line.\r\n\r\n" -"Press the $$FG,GREEN$$WINDOW$$FG$$s key.\r\n\r\n" -"This will access your macro/menu/help area.\r\n" -"You can customize it. It's like your\r\n" -"START menu.\r\n"); - -AFGetKey(SC_GUI); -Sleep(1000); -PopUpOk( -"You can get to the menu/macro/help area\r\n" -"by clicking on the word \"MENU\" in the\r\n" -"title bar.\r\n"); - -PopUpOk( -"$$UL,1$$$$FG,LTBLUE$$Blue Underlined Text are Macros$$FG$$$$UL,0$$\r\n" -"\t$$FG,GREEN$$SPACE BAR$$FG$$\t=Left Mouse\t-->Execute Macro\r\n" -"\r\n\r\n" -"$$UL,1$$$$FG,LTRED$$Red Underlined Text are Links$$FG$$$$UL,0$$\r\n" -"\t$$FG,GREEN$$SPACE BAR$$FG$$\t=Left Mouse\t-->Edit/View Link Doc\r\n" -"\t$$FG,GREEN$$ENTER$$FG$$\t\t=Right Mouse\t-->Link Menu\r\n" -"\r\n\r\n" -"Exiting Documents/Forms\r\n" -"\t$$FG,GREEN$$ESC$$FG$$\t=Left Double Mouse\t-->Save and Exit\r\n" -"\t$$FG,GREEN$$CTRL-Q$$FG$$\t=Right Double Mouse\t-->Abort/Cancel/Quit or Back\r\n" -); - -PopUpOk( -"$$FG,GREEN$$CTRL-ALT-ESC$$FG$$\tSpawn new user shell window\r\n" -"$$FG,GREEN$$CTRL-ALT-X$$FG$$\tKill window\r\n" -"$$FG,GREEN$$CTRL-ALT-C$$FG$$\tBreak(interrupt) program\r\n" -); - -PopUpOk( -"After clicking 'OKAY', you will be back at\r\n" -"the menu/macro/help area.\r\n\r\n" -"Press $$FG,GREEN$$CURSOR-DOWN$$FG$$ nine times.\r\n"); - -//This puts the cursor at the top -Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL); - -I8 i; -for (i=0;i<9;i++) - AFGetKey(SC_CURSOR_DOWN); - -PopUpOk( -"After clicking 'OKAY', the cursor will be\r\n" -"on top of a macro we wish to run.\r\n" -"\r\n" -"After clicking OKAY, press $$FG,GREEN$$SPACE$$FG$$.\r\n"); -AFPmtStr(" "); -Sleep(1000); - -PopUpOk( -"The macro changed directories and did\r\n" -"a $$FG,GREEN$$Dir;$$FG$$ command.\r\n\r\n" -"The $$FG,RED$$RED$$FG$$ filenames listed are file\r\n" -"links. Left-clicking will edit/view them.\r\n" -"Right-clicking or pressing $$FG,GREEN$$ENTER$$FG$$\r\n" -"when the cursor is on top will bring-up a\r\n" -"menu of options.\r\n\r\n" -"The $$FG LTBLUE$$BLUE$$FG$$ underline entries \"$$FG LTBLUE$$.$$FG$$\" and \"$$FG LTBLUE$$..$$FG$$\"\r\n" -"are macros and will change directories.\r\n"); - -PopUpOk( -"As you can see, the command line is not\r\n" -"different from the help/menu/macro area.\r\n" -"Both use the same commands and have the same\r\n" -"'Widgets' available.\r\n\r\n" -"Both utilize the same underlying document format.\r\n" -"It is similar to $$FG,GREEN$$html$$FG$$ because it has ASCII\r\n" -"behind it. LoseThos documents can include graphics.\r\n\r\n" -"Press \"$$FG,GREEN$$CTRL-T$$FG$$\" after clicking 'OKAY' to toggle\r\n" -"to plain text mode.\r\n"); -AFGetChar(20); -Sleep(1000); - -PopUpOk( -"The widgets are bracketed with dollar sign\r\n" -"characters. \"LK\" stands \"link\" and \"MA\"\r\n" -"stands for \"macro\".\r\n\r\n" -"Now, press \"$$FG,GREEN$$CTRL-T$$FG$$\" to toggle back to\r\n" -"regular mode.\r"); -AFGetChar(20); -Sleep(1000); diff --git a/LT/Accts/Tour/Tour2.AUZ b/LT/Accts/Tour/Tour2.AUZ deleted file mode 100644 index 6ba6918..0000000 --- a/LT/Accts/Tour/Tour2.AUZ +++ /dev/null @@ -1,76 +0,0 @@ -//This puts the cursor at the bottom -Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL); -PutS("\r"); - -PopUpOk( -"Now, we're going to demonstrate how to work\r\n" -"with programs. We'll change to the \LT\Demo\r\n" -"directory. The change directory command\r\n" -"will be typed for you and you just need\r\n" -"to press $$FG,GREEN$$ENTER$$FG$$.\r\n\r\n" -"Note, that directories are specified with\r\n" -"a forward slash, not a backslash.\r\n" -"Drives can be specified in a $$FG,GREEN$$Cd()$$FG$$ command\r\n" -"and the boot drive is specified with \"$$FG,GREEN$$::$$FG$$\"."); - -PutS("Cd(\"::/LT/Demo\");Dir;"); -AFPmtStr("\r"); - - -PopUpOk( -"Now, we're going to edit a file. Normally,\r\n" -"you'll probably left-click on a directory\r\n" -"listing to edit a file, but we're going to\r\n" -"type it on the command line.\r\n\r\n" -"Press $$FG,GREEN$$ENTER$$FG$$ to complete the command.\r\n"); - -PutS("Edit(\"ASCIIOrgan.CPZ\");"); -AFPmtStr("\r"); - -Sleep(1000); -PopUpOk( -"This program gets keys and plays frequencies.\r\n" -"It quits when you press $$FG,GREEN$$ESC$$FG$$.\r\n\r\n" -"There is no \"$$FG,GREEN$$main()$$FG$$\" function in LoseThos\r\n" -"programs. Any program statements outside\r\n" -"functions get executed when you $$FG,GREEN$$#include$$FG$$\r\n" -"them at the command line.\r\n\r\n" -"The \"$$FG,GREEN$$ASCIIOrgan;$$FG$$\" statement at the bottom\r\n" -"will run the program when we $$FG,GREEN$$#include$$FG$$ it.\r\n"); - -PopUpOk( -"The editor and most things exit when you press\r\n" -"$$FG,GREEN$$ESC$$FG$$. $$FG,GREEN$$CTRL-Q$$FG$$ will abort (cancel) most things.\r\n\r\n" -"The $$FG,GREEN$$ESC$$FG$$ key can be simulated with a left\r\n" -"double-click, while the $$FG,GREEN$$CTRL-Q$$FG$$ key can be\r\n" -"simulated with a right double-click. When\r\n" -"you browse documentation, you'll left-click\r\n" -"on links and right double-click to go back,\r\n" -"unless you want to save changes to documents\r\n" -"using left double-click.\r\n\r\n" -"Press $$FG,GREEN$$CTRL-Q$$FG$$ to quit out of the editor.\r\n" -); - -AFGetChar(CH_CTRLQ); - -PopUpOk( -"Now, we'll run the ASCIIOrgan.CPZ program.\r\n" -"Press $$FG,GREEN$$ENTER$$FG$$ at the command line to\r\n" -"$$FG,GREEN$$#include$$FG$$ it. Then press keys to\r\n" -"cause sounds and press $$FG,GREEN$$ESC$$FG$$ when\r\n" -"you are done.\r\n"); - -PutS("#include \"ASCIIOrgan.CPZ\";"); -AFPmtStr("\r"); -AFUntilChar(CH_ESC); - -PopUpOk( -"The program is still in memory and we\r\n" -"can start it again by typing \"$$FG,GREEN$$ASCIIOrgan;$$FG$$\".\r\n\r\n" -"Press $$FG,GREEN$$ENTER$$FG$$ at the command line to\r\n" -"run it again.\r\n"); - -PutS("ASCIIOrgan;"); -AFPmtStr("\r"); -AFUntilChar(27); - diff --git a/LT/Accts/Tour/Tour3.AUZ b/LT/Accts/Tour/Tour3.AUZ deleted file mode 100644 index 571acc1..0000000 --- a/LT/Accts/Tour/Tour3.AUZ +++ /dev/null @@ -1,110 +0,0 @@ -//This puts the cursor at the bottom -Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL); -PutS("\rCd(\"::/LT/Demo\");Dir;\r"); - -PopUpOk( -"Now, we're going to add the ASCIIOrgan.CPZ\r\n" -"program to your start menu.\r\n\r\n" -"Press the $$FG,GREEN$$WINDOW$$FG$$s key\r\n" -"to get to your menu/macro/help area.\r\n"); -AFGetKey(SC_GUI); -Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL); -Sleep(1000); - -PopUpOk( -"Press $$FG,GREEN$$CTRL-L$$FG$$ to invoke the\r\n" -"text-widget resource editor.\r\n" -"\r\n" -"($$FG,GREEN$$CTRL-R$$FG$$ invokes the\r\n" -"graphic resource editor.)\r\n" -); -AFGetChar(12); - -Sleep(100); -PopUpOk( -"Press $$FG,GREEN$$CURSOR-DOWN$$FG$$ until you reach\r\n" -"\"Macro\".\r\n"); -I8 i; -for (i=0;i<8;i++) - AFGetKey(SC_CURSOR_DOWN); - -PopUpOk( -"Press $$FG,GREEN$$SPACE$$FG$$.\r\n"); -AFPmtStr(" "); -Sleep(1000); - - -PopUpOk( -"Now, we'll fill-in the visible text\r\n" -"of the macro.\r\n"); -AFDelayedPutS("Click Here"); - -Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN); -PopUpOk("Now, we'll fill-in the macro text.\r\n"); -AFDelayedPutS("Cd(\\\"::/LT/Demo\\\");;#include \\\"ASCIIOrgan.CPZ\\\";\\r"); - -PopUpOk("Press $$FG,GREEN$$ESC$$FG$$ to exit the form.\r\n"); -AFGetChar(CH_ESC); -Sleep(1000); - -PopUpOk( -"Press $$FG,GREEN$$CTRL-SHIFT-ENTER$$FG$$ to insert a line feed.\r\n" -"($$FG,GREEN$$CTRL-ENTER$$FG$$ does a page break and $$FG,GREEN$$ENTER$$FG$$\r\n" -"would execute the macro.)\r\n"); -AFGetKey(SC_CR|SCF_CTRL|SCF_SHIFT); -Sleep(1000); - -Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL); -PopUpOk( -"Press $$FG,GREEN$$SPACE$$FG$$ to test it.\r\n"); -AFPmtStr(" "); -AFUntilChar(CH_ESC); - -PopUpOk( -"Now, we'll do a fancier macro that pops-up\r\n" -"a new window which dies when finished,\r\n" -"returning memory to the system.\r\n"); -Msg(MSG_KEY_DOWN,0,SC_GUI); -Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL); -Msg(MSG_KEY_DOWN,12,0); //CTRL-L -for (i=0;i<8;i++) - Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN); -AFDelayedPutS(" Click here for Pop-up version"); -Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN); -AFDelayedPutS("Cd(\\\"::/LT/Demo\\\");;#include \\\"ASCIIOrgan.CPZ\\\";\\r"); -Msg(MSG_KEY_DOWN,0,SC_CURSOR_LEFT|SCF_CTRL); - -PopUpOk( -"Press $$FG,GREEN$$CURSOR-DOWN$$FG$$ until you reach\r\n" -"the \"Pop-Up\" check-box.\r\n"); -for (i=0;i<2;i++) - AFGetKey(SC_CURSOR_DOWN); -PopUpOk( -"Press $$FG,GREEN$$SPACE$$FG$$ to\r\n" -"check the box.\r\n"); -AFPmtStr(" "); -Sleep(500); - -PopUpOk("Press $$FG,GREEN$$ESC$$FG$$ to exit the form.\r\n"); -AFGetChar(CH_ESC); -Sleep(500); - -PopUpOk("Press $$FG,GREEN$$CTRL-SHIFT-ENTER$$FG$$ to insert a line feed.\r\n"); -AFGetKey(SC_CR|SCF_CTRL|SCF_SHIFT"); -Sleep(500); - -Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL); -PopUpOk( -"Press $$FG,GREEN$$SPACE$$FG$$ to test it.\r\n"); -AFPmtStr(" "); -Sleep(5000); - -PopUpOk( -"Press $$FG,GREEN$$CTRL-S$$FG$$ to save your\r\n" -"macro/menu/help area file, if you wish.\r\n"); -if (Fs->parent_tss->popup_tss) { - PutChar(CH_CTRLQ); - Sleep(100); -} -PutChar(CH_CTRLQ); //exit menu - diff --git a/LT/Accts/Tour/Tour4.AUZ b/LT/Accts/Tour/Tour4.AUZ deleted file mode 100644 index f5cc513..0000000 --- a/LT/Accts/Tour/Tour4.AUZ +++ /dev/null @@ -1,58 +0,0 @@ -PopUp("WsInit(\"::/LT\");"); -WordStat; - -//This puts the cursor at the bottom -Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL); -PutS("\rCd(\"::/LT/Demo\");\r"); - -PopUpOk( -"WordStat is an autocomplete feature\r\n" -"which will also jump to source code.\r\n" -"The function keys work with code, while\r\n" -"the number keys work with the dictionary.\r\n\r\n" -"We will now place some text on the command\r\n" -"line and jump to source code.\r\n"); -PutS("InstallB"); -Sleep(1000); - -PopUpOk( -"After clicking $$FG,GREEN$$OKAY$$FG$$, look at\r\n" -"the $$FG,GREEN$$InstallBoot$$FG$$ entry in the WordStat\r\n" -"window. Notice it has a '$$FG,GREEN$$*$$FG$$' by it.\r\n" -"This means a source code link is available.\r\n"); -Sleep(2000); - -PopUpOk( -"Press $$FG,GREEN$$CTRL-SHIFT-F1$$FG$$ to jump to source code.\r\n"); -AFGetKey(SC_F1|SCF_CTRL|SCF_SHIFT); -Sleep(500); - -PopUpOk( -"Press $$FG,GREEN$$CTRL-Q$$FG$$ to quit the source code.\r\n"); -AFUntilChar(CH_CTRLQ); -Sleep(100); -sys_cur_focus_task=Fs; - -PopUpOk( -"Press $$FG,GREEN$$CTRL-F1$$FG$$ to autocomplete.\r\n"); -AFGetKey(SC_F1|SCF_CTRL); -Sleep(500); - -Msg(MSG_KEY_DOWN,CH_CR,SCF_CTRL|SCF_SHIFT); -PutS("\r"); - -PopUpOk( -"Tip: You can restart the WordStat window if you\r\n" -"have closed it by pressing $$FG,GREEN$$CTRL-F1$$FG$$.\r\n"); - -PopUpOk( -"You can also use the $$FG,GREEN$$Man()$$FG$$ function\r\n" -"to jump to source code.\r\n"); -AFDelayedPutS("Man(\"InstallBoot\");"); -Sleep(1000); -PutS("\r"); - -Sleep(2000); -PopUpOk( -"Press $$FG,GREEN$$CTRL-Q$$FG$$ to quit the source code.\r\n"); -AFUntilChar(CH_CTRLQ); diff --git a/LT/Accts/Tour/Tour5.AUZ b/LT/Accts/Tour/Tour5.AUZ deleted file mode 100644 index 9b699f3..0000000 --- a/LT/Accts/Tour/Tour5.AUZ +++ /dev/null @@ -1,19 +0,0 @@ -PopUpOk( -"All text widgets work everywhere.\r\n" -"The $$FG,GREEN$$Type()$$FG$$ command is like\r\n" -"the DOS command of the same name\r\n" -"or the UNIX, $$FG,GREEN$$cat$$FG$$ command.\r\n" -"We will now send your menu document\r\n" -"to the command line. They use the same\r\n" -"document format and it is active!!.\r\n"); - -PopUpOk("Press $$FG,GREEN$$ENTER$$FG$$."); - -//This puts the cursor at the bottom -Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL); -PutS("\r"); - -PutS("Type(\"HOME/User.MUZ\");"); -AFPmtStr("\r"); - - diff --git a/LT/Accts/Tour/User.CPZ b/LT/Accts/Tour/User.CPZ deleted file mode 100644 index f14a113bca8b69bb2f2a2474633d24591160e46e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmWG7PIb=DE6&eJ^(jfyPzo(hEzJ@fZMC)hMz6 diff --git a/LT/Accts/User.CPZ b/LT/Accts/User.CPZ deleted file mode 100644 index c9d04ff..0000000 --- a/LT/Accts/User.CPZ +++ /dev/null @@ -1,37 +0,0 @@ -#help_index "Utils" -/* -This is the startup file for new local users. - -If you modify this file, you should place it -into your HOME directory. This version is the -default for accounts without a version in HOME. -*/ - -UseConsoleLtf("User.MUZ"); - -U8 F(I1 *pattern,I1 *flags=NULL) -{ - return Grep(pattern,"/LT/"TEXT_FILE_MASK,flags); -} - -U8 R(I1 *pattern,I1 *replace_text=NULL,I1 *flags="+l-i") -{ - return Grep(pattern,"/LT/"TEXT_FILE_MASK,flags,replace_text); -} - -U8 FD(I1 *pattern,I1 *flags=NULL) -{ - return Grep(pattern,TEXT_FILE_MASK,flags); -} - -U8 RD(I1 *pattern,I1 *replace_text=NULL,I1 *flags="+l-i") -{ - return Grep(pattern,TEXT_FILE_MASK,flags,replace_text); -} - -PutSysText("ST_USER_STARTUP"); -Type("::/LT/Doc/Help.TXZ"); -Fs->scroll_speed=10; -Bts(&Fs->crt_flags,CRTf_SHOW); -Preempt(ON); -#help_index "" diff --git a/LT/Accts/User.MUZ b/LT/Accts/User.MUZ deleted file mode 100644 index 91a590b01872b238c760c5d940ae55a45de6e77b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5355 zcmY!h57#kN@k~>w%r8~Q%}>cpt5hh-$ShV!%gjmD0gD!AmG z6cUq@^GoweiWSN;OEU6HOB50n;HvY$#_1{Wa`AGh_&Vw+Ij3mED1oeqQPQ+_$t<#t zDN<5Fmb0?b_X*MW5B5#W%)_t7F(omVfQo{GV*DyxQgie1s|YR0%t14RmrKRRTSv(= zucRnHr8K!DGe1vBN6F383gUK`{A7Kf)Z~)VqSRu2pZwy~kc|9dy^x3~B^3n)s9ulM zoB{>Uyp+@mbe$j>umnU0IB2vTb(BI9vr`p9@=J@9pn(Xn%rQB+q*xy$4)TVzV`)jg zTV_tGMvM|n3=+V+Tq+?!y3RUEjs*odnaPPDM;C)b-qS_LNCgx>5Udj5sqN#d9T2Lc z6rNb*o|v18W??}=u|8A=Y^8E$UUE)pN~%JPQc!7LjFPpIj+u&rf&!93LHWtq#aN61 zi{moH9LbOfuzSMtlM|D$7y}kB%}Fe(#A;Sdk&=#~F_LK@zXg|P=A|p?C?UBX5}=?I zp%3zQa7kiONorBCK3Hjt5-6qW7@8pk6-I#h7o{hHk^(r9LyU6-1($DWab_}D5~~BP zm2?aZK<+~cG_TU^RHuAU`oM4_nxXnW`H3ld&H+&|O4d+a8Zk;(?bmm$NX#wBNd>29 zB^^UUuy>$I1LSK3n76T|4Ty(9By#Kq7bGU924`dz5E+~>89km^G zA<5A>AT%H+zXa8hpu!7cXi;K8MrLxcK2#Yren7zr&C^h0Tr$%$ONtdVd{cAtiz*dB zk)Vm1$U)|zCme__a1cU@Pq?#O{B=WIeS8!&92L@v5|c|(b98euvr`pHGBWehi7`2` zJRNQ>#MiuBDsJvNMk>xBK|Z=6DsJv7oGQWoI!ex^#U=TJq)u!>Y8cVqWrBX?sr5H55obS!i&bS!i%bjB^C zqyj2j5$+5EyVEfxMZp~!72pa=0qlt&RJA^Ewc(j5>8T~f3dN<#848KT3MECUsl_P% zck~I-bq#g~>j*ALEYDNOOD$I@Elw>`D9%XD$x$fJ%uC5H$Iuf2*5RFrTLr{Sr=rxv zY>mvklGLK2(t;9Ag@U5|^rFOEUM>bE1_lN;1_(%GU|?WmU|`^2U;vAQidf-&DiJ;A`h z0AqqQf>eX7X9rmi@;uZOkR2}&rofmWVW@v$Oi)mO*w7#VF+ctP{~u%t0|Nt$39{=6 z#49i+$cIo>Feb?TAOoOb018Tw>ZcHmumAu5k1PaoHw&7(L5>4?`8z}lj0rO3FGL8& z1la>s1!IB?2gMcC`al2w{|DLm6`~R3(H}@cAnW;{N`L+T{~u&9R4GW;H>lE|5Z&O2 z=YmH36=+IhU|=}?|NsA+|NsBzXJBBs1yKrPf@qM_7#J8}%u~<^W?*1|F+m1^G=c(x z8DjqB|NsAkgs%Mm{~ww%ZbOAYG*k!_HXv0X8Y%=z4Im*94HW|U3?u}ip+cNcr-FO~ z6$1N?8)7?y5ECLV}jBK$ab*XK#qjQ11R@_>;TcAw8X%`aPR;B|Dc!z34v&+!5}6m zCZYKOl%_#m02vHQRtyXbFeb|C_+H)fvN&UEJz6CCQuq+U|=}<|Nnmw6O=ljsz9CuMG>eR1_d4i0|Tfy2Kf=> zXpsLI7#Pk$TP>hW1+tlefdOU)$X%e~1)9G=Oi*+~Rl%4bvp{A-D;$t4C?|kuXhedT zphy5208Kt1CMeHCvoA~q$f+QeP#ZzQAXOlTK+6yi6PC%K6*No;q#8*G6y2ay%D}(? zV}im9stP0oDq&z4T3~>F*6l;lBXfux`sK|-Kh z0!k3j3win_top=2; -adam_tss->win_bottom=10; -sys_update_screen_tss=Spawn(&WinManagerTsk,"Window Manager"); -CollectAccntList; -Bts(&Fs->crt_flags,CRTf_SHOW); - -if (!(Fs->account=FindSysAccnt(sys_startup_account))) - Fs->account=PopUpGetSysAccnt; -sys_update_screen_tss->account=Fs->account; -LoadAccntRegistry; - -Cd("::/LT/Adam");; -#include "WallPaper" - -Cd("HOME");; -#include "Adam3" diff --git a/LT/Adam/AdamExt.HPZ b/LT/Adam/AdamExt.HPZ deleted file mode 100644 index ca6ecab..0000000 --- a/LT/Adam/AdamExt.HPZ +++ /dev/null @@ -1,46 +0,0 @@ -extern void UseConsoleLtf(I1 *menu_file); -extern BoolU8 WinToTop(TssStruct *tss=NULL); -extern U8 GetMsg(I8 *param1,I8 *param2,U8 mask=-2,TssStruct *tss=NULL); -extern U8 ScanMsg(I8 *param1,I8 *param2,U8 mask=-2,TssStruct *tss=NULL); -extern void PlotInputPointer(GrBitMap *base); -extern void GrPlot0(GrBitMap *base,I8 x,I8 y); -extern void DrawTaskBorder(TssStruct *tss); -extern void UpdateOdes(TssStruct *tss); - -extern void IDEClearAllBpts(Ltf *l); -extern void IDEToggleBpt(Ltf *l); - -extern U8 ltf_display_types[1],ltf_nondisplay_invisible_types[1], - ltf_form_types[1],ltf_data_types[1]; -extern I8 PopUp(I1 *msg,TssStruct *parent=NULL,TssStruct **pu_tss=NULL); -extern LtfEntry *LtfPutSExt(Ltf *l,I1 *st); -extern I8 PopUpMenu(Ltf *l,I1 *help=NULL); -extern Ltf *LtfNew(); -extern void LtfDel(Ltf *l); -extern LtfEntry *LtfPrintF(Ltf *l,I1 *src,...); -extern I1 *EditPicture(); -extern BoolU8 View(); -extern void IDEGo(); -extern void IDEStep(Ltf *l); -extern void IDESetLineNum(Ltf *l); -extern void IDE(I1 *filename); -extern void LtfD(U1 *buf,U8 cnt=0x80); -extern void LtfUpdateWinJoin(Ltf *l,BoolU4 to_screen,BoolU4 has_cursor, - BoolU4 recalc,BoolU4 find_cur_entry,BoolU4 preempt, - LtfEntry *pg_found=NULL,I8 num_del_entries=0); -extern void LtfRecalc(Ltf *l); -extern BoolU8 DoForm(U1 *D,I1 *class_name, - I1 *help=NULL,BoolU4 help_is_file=FALSE, - I1 *header=NULL,I1 *footer=NULL); - -extern void WsFillin(I8 n); -extern void WsMan(I8 n,TssStruct *parent=NULL); -extern void WsdFillin(I8 n); -extern void WsdDef(I8 n,TssStruct *parent=NULL); -extern BoolU8 WordStat(BoolU8 val=ON); -extern void WsdPopUpDef(I1 *st,I8 num=-1,TssStruct *parent=NULL); -extern void FileManager(I1 *mask="/*",I1 *flags=NULL); -extern void LtfHelpIndex(Ltf *l,I1 *index); -extern void AccntOneTimePopUp(I8 flag_num,I1 *msg); - -#define CTRL_L_HELP "::/LT/Doc/CtrlL.MUZ" diff --git a/LT/Adam/AutoFile.APZ b/LT/Adam/AutoFile.APZ deleted file mode 100644 index cacd4efeec6b54efea6917aa6f8ff28b700c172a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2019 zcmY$+NX;pT&&*3ntx!;MEG@}*%gjl&4k=2^%*)J6SK{U3S zH8ox?P84xRA8ew|AwfQxFl!*DC1=>$!YtO|}TW61W=O9g9E=~o7;DDmcyb?E!q|!7UrGTQ;;$nr8j8p}66%{vk z9rqwtS3eaMSHBR~AdrBHin>B}YNZm`7O=6%Mg|8sI=d2YDp)yIQ;Bw%YBI8Z9Z+~! z^Kx+p0GK*ZXphXq%o9~84wf_>>T80sGz2%psyd|@8Yjel95@gkXfuyo|;*d!pp^} z2v6g-$Y~tz4K=v4H6ckKO#{duAmd@)2CD}NVpk5yE2yS}LO=l?3ovh}K?6_G7H%|D z1gw;^xWqO%IWf;UKP5FJ-#fL^FEKY&1Ev%dBAmoz6V+mr)L2{s*6CK1nyLY16Hb^4 z&;(VSjK|I3`137J*YFK?kN0+sjCb)5_tOCvRUj*|ByIOpNC5#Z(F}=BBT&bL1ckbS z1B&?6LWS~8(Kb255Ns_dejJ0HJv|YT1Cjz|by~&?xZvdF;!G+^P0R*|IimPbP#`J% zL-R^9b3io%6*Dz~42;`-pgI8>vxJfvmZSvs3b?kxlbERCw&V;*3a|zj)+jZ)5-%46 E0H>iNAOHXW diff --git a/LT/Adam/Comm.APZ b/LT/Adam/Comm.APZ deleted file mode 100644 index 07f669f6f88fc40a169c2056da2994167fbb587f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6484 zcmY$+NX;pT&&*3ntx!;M&d<$N;^l&frDf)%Dkxc5>HCD}yW}V9gCzArBBGRdxp=vh zQ&Q71^HLRDBb)=`Lp*(5{X;`I4Jr%`4AA6)T!UR9GKR?doITb-_WLrf6cm!9kp6C|>vX^-YWS^mF$2_4IQG2ZO5%vU{DeDKJ8I zC{`85$j*kS@DB}f_eZh>$qx_(ArWBvIgx#WB;&^k@(wRosD(muer|4jQetsxv}vqu zwSkU7g|VB3jzNVHm^5|;vt2D}t$DdZ4c#)+@)fkeT7oL#(=yZYi^1CbLVbL6un-u! zLWtG{by-?YVmibQ105&?8R`?_oROCUbxLwZUJgVJ7AJt61=7OHRZyCglbNhgmYD1aHdb|sYsshSE!sU@XFd2mG_H4rIVTOa3;cu+)WDu8WL09#}W4pESm(Gax- z`9&qMVEqaT{-q@W8X!4saPstY4bm~tgvvSRWI|aW$AC?N#|x54aLW`FTvBr&(Wrr2 zHPlE2NZP<=pe-n%p~`AOp`@SycK|$!iE;o|)lie64#1`aivz&^0ohrM9EivYgQ2mf z0gq5fID&oP=vI`PssYju608MfY~=I;DkK9+OPn(ji!?$l6hINA6KbfCgp_39rlKYj zXktQ&V~}P@?84#?6nIItw%}6I%}o;$qE02n8fsu)ffHXeSep(g@ubB=^Eb$;3JR$? z#i`)%hZ*5VtOJpgKo`TyyR03^jSVID^X*3q14uQY%W}2?Q2^3JTyzgd{_!5}e_NR&Z+KcP}Xh zk>EZo;RlT{1qDbDdFB{Nf z20EEVg*u>e3TsMt%FoXUHBrb&EK7~g&r1bIAXE&LZ;BGjZG#faHT3thhMNS+$6$ks zh)&ROgQ|JCII$%s)Bx2<&Hx1fCnV!Q5+6L@qbh~wdsIP4z6a$`P<_S;3Pw+0?j3y zuoP+=5)|qRaxy4xol0=W0IVnml~4)_$r-Rx9HbW>r34M|(?r$phoW5(5;H-mx%p+O z*a~GGwd4$_32+a%Ir;>{eE<^$=MiXh!_yhK$^l0n32_4rWw;mNruo6_fFvqKe16A> zI)q-*bsK?0fRhCKpnd=)5RgB3xi~rTg#b9J!6g(pupns)oXg{}2)4yN6{Qsia}=m6lmV{x;LR0i_#@{!)Y1=@>p-D| z);Iyh9|^Gnj!Td+up%2C>8Lhp+F+>_VTG^}v=spgOUx1&oNg7MeG`S`3~OGlT6mub zS`~wI1}7)xAy@UFX0BFp21+;?LIVoqOGwcakeZqeDVR_l3<@GcL^BJb7=MUDBU3>^ zD>=h9Il~Z|-avMd8ls#K`zQ%aNUFjaobUjJRu_oO0*XyYM^FJ)5`$ACG-rT4mK;|O)bDp3L9nG($9i9BB(8z=|PaNr|N?wjcsY44O)8)j&auNLolLpfL|u z0p%m9fW;wP2}}U21{8MSfP&|7h-*NOi-m?5(E|){!{F5#LBp`B1iK9EDsWOj>HLFw zG0+&n=44yH)N)7(p#dJ^G|)**Nz9EeDJ}-rg}J50B??KY3I+M)sYMF;X$nT5&Ii~k zY%U?oG_)?9k28352UK<_=<5fkmMEm<7b$qU27zowQwyrJp(8j}a>7ARaQ8VeCkNJb#$u8|g`=i5r-HtI zerbu3LSkNuLQzRE7F$8lWC&3S?UutDS0KgcjYgzA03GT0i zbs)ltkglB{sN92=kyao-1>+cJgVq%w{gB27y!ioc=7EYW$e1j2fDLQ;56*rdBcR1A zI5^;=xgZIUbHFuDYDG!3YeY!AXHcMlajdNxa%0q*mkU|i1S$<{W`ajQAk!t#DHJ7M GE(QQvjDf5G diff --git a/LT/Adam/Dbg.APZ b/LT/Adam/Dbg.APZ deleted file mode 100644 index 645fba4..0000000 --- a/LT/Adam/Dbg.APZ +++ /dev/null @@ -1,1410 +0,0 @@ -#help_index "Debugging" - -InstructionEntry **disasm_table=NULL; -I8 disasm_table_entries=0; -U8 ins64_mask=0x0880088880; - -I8 CompareInstructionEntries(InstructionEntry **tempi1,InstructionEntry **tempi2) -{ - I8 i1,i2,j=0,result=0; - while (TRUE) { - if (j<(*tempi1)->opcode_cnt && j<(*tempi2)->opcode_cnt) { - i1=(*tempi1)->opcode[j]; - i2=(*tempi2)->opcode[j]; - result=i1-i2; - if (result) return result; - j++; - } else { - i1=(*tempi1)->opcode_cnt; - i2=(*tempi2)->opcode_cnt; - result=i1-i2; - if (result) return result; - - i1=(*tempi1)->slash_value; - i2=(*tempi2)->slash_value; - result=i1-i2; - if (result) return result; - - i1=(*tempi1)->flags & IEF_OP_SIZE32; - i2=(*tempi2)->flags & IEF_OP_SIZE32; - result=i1-i2; - if (result) return result; - - i1=Bt(&ins64_mask,(*tempi1)->arg1) || - Bt(&ins64_mask,(*tempi1)->arg2); - i2=Bt(&ins64_mask,(*tempi2)->arg1) || - Bt(&ins64_mask,(*tempi2)->arg2); - result=i1-i2; - if (result) return result; - - return result; - } - } -} - -void LoadDisasmTable() -{ - SysHashTable *h=asm_hash; - OpcodeHashEntry *temph; - InstructionEntry *tempi; - U8 cnt=0; - I8 i,j,k; - - for (i=0;i<=h->mask;i++) { - temph=h->body[i]; - while (temph) { - if (temph->type==HTT_OPCODE) - cnt+=temph->instruction_entry_cnt; - temph=temph->next; - } - } - disasm_table_entries=cnt; - - j=0; - disasm_table=MAlloc(cnt*sizeof(void *)); - for (i=0;i<=h->mask;i++) { - temph=h->body[i]; - while (temph) { - if (temph->type==HTT_OPCODE) { - tempi=&temph->ins; - for (k=0;kinstruction_entry_cnt;k++) { - disasm_table[j++]=tempi; - tempi+=sizeof(InstructionEntry); - } - } - temph=temph->next; - } - } - - QSort(disasm_table,cnt,sizeof(void *),&CompareInstructionEntries); -} - -if (!disasm_table) { - LoadDisasmTable; - LoadList("ST_INT_NAMES", -" \0 \0NMI\0 \0 \0 \0 \0 \0" -" \0 \0 \0 \0 \0 \0 \0 \0" - -" \0 \0 \0 \0 \0 \0 \0 \0" -" \0 \0 \0 \0 \0 \0 \0 \0" - -" \0 \0 \0 \0 \0 \0 \0 \0" -" \0 \0 \0 \0 \0 \0 \0 \0" - -" \0 \0 \0 \0cout\0coutln\0 \0 \0" -" \0 \0 \0 \0 \0 \0 \0 \0" - -"f_unary_minus\0f_inc\0f_dec\0f_power\0f_mul\0f_div\0f_mod\0f_add\0" -"f_sub\0f_less\0f_greater\0f_less_equal\0f_greater_equal\0f_to_int_RAX\0f_to_double_RAX\0f_to_int_RDX\0" -"f_to_double_RDX\0\0"); -} - - - - - - -BoolU8 PutSourceLine(void *add,U8 cnt,I1 *buf=NULL) -{ - ClassStruct *tempc; - I8 i,minl,maxl,offset; - DbgInfo *dbg; - void **body; - I1 *src; - if (tempc=FindPSect(add,&offset)) { - if (dbg=tempc->debug) { - body=dbg->body; - minl=dbg->min_line; - maxl=dbg->max_line; - for (i=minl;i<=maxl;i++) { - if (*body>=add) { - if (*bodysource_link); - RemoveFirstSeg(src,":"); - RemoveLastSeg(src,","); - if (buf) - SPrintF(buf,"$$LK-A,\"FL:%s,%d\"$$",src,i); - else - PrintF("$$LK-A,\"FL:%s,%d\"$$",src,i); - Free(src); - return TRUE; - } else - return FALSE; - } - body+=sizeof(void *); - } - } - } - return FALSE; -} - -public void DasmIns(I1 *buf,I8 *add,I8 seg_size=64,I8 *branch=NULL) -//Disassembles one instruction -{ - U1 *ip=*add,*bb; - U2 *ww; - U4 *dd; - U8 *dddd; - I8 disp,imm; - I8 opsize,opadd; - BoolU4 cont; - I8 i,j,k,n,m,o1,o2,a1,a2,aa1,aa2,arg1_size=0,arg2_size=0,a1_size,a2_size, - ModrM=-1,SIB=-1,scale,r1,r2, - Mod=-1,RM1=-1,RM2=-1,REX=-1,REX_r=0,REX_x=0,REX_b=0; - InstructionEntry *tempi; - OpcodeHashEntry *tempo,dummy; - I1 *a1_st,*a2_st,*bin_data_area,*bin_data_area2, - buf2[256],buf3[256],seg_overrides[40],arg1_st[256],arg2_st[256]; - - if (branch) *branch=-1; - if (seg_size==16) { - opsize=16; - opadd=16; - } else if (seg_size==32) { - opsize=32; - opadd=32; - } else { - opsize=32; - opadd=64; - } - *arg1_st=0; - *arg2_st=0; - a1_st=arg1_st; - a2_st=arg2_st; - - *buf=0; - if (PutSourceLine(ip,1,buf)) - StrCat(buf,"\r\n"); - SPrintF(buf+StrLen(buf),"%16tP ",ip); - bin_data_area=buf+StrLen(buf); - for (i=0;i<6;i++) { - SPrintF(buf2,"%02X",ip[i]); - StrCat(buf,buf2); - } - StrCat(buf," "); - - SPrintF(buf3,"%16tP ",ip+6); - bin_data_area2=buf3+StrLen(buf3); - for (i=6;i<12;i++) { - SPrintF(buf2,"%02X",ip[i]); - StrCat(buf3,buf2); - } - - *seg_overrides=0; - cont=TRUE; - do { - switch (*ip++) { - case 0x2E: StrCat(seg_overrides,"CS:"); break; - case 0x36: StrCat(seg_overrides,"SS:"); break; - case 0x3E: StrCat(seg_overrides,"DS:"); break; - case 0x26: StrCat(seg_overrides,"ES:"); break; - case 0x64: StrCat(seg_overrides,"FS:"); break; - case 0x65: StrCat(seg_overrides,"GS:"); break; - case 0x66: - if (opsize==16) - opsize=32; - else - opsize=16; - break; - case 0x67: - if (opadd==16) - opadd=32; - else - opadd=16; - break; - - case 0x40: - REX=0x40; - break; - case 0x41: - REX=0x41; - REX_b=8; - break; - case 0x42: - REX=0x42; - REX_x=8; - break; - case 0x43: - REX=0x43; - REX_b=8; - REX_x=8; - break; - - case 0x44: - REX=0x44; - REX_r=8; - break; - case 0x45: - REX=0x45; - REX_b=8; - REX_r=8; - break; - case 0x46: - REX=0x46; - REX_x=8; - REX_r=8; - break; - case 0x47: - REX=0x47; - REX_b=8; - REX_x=8; - REX_r=8; - break; - - case 0x48: - REX=0x48; - opsize=64; - break; - case 0x49: - REX=0x49; - REX_b=8; - opsize=64; - break; - case 0x4A: - REX=0x4A; - REX_x=8; - opsize=64; - break; - case 0x4B: - REX=0x4B; - REX_b=8; - REX_x=8; - opsize=64; - break; - - case 0x4C: - REX=0x4C; - REX_r=8; - opsize=64; - break; - case 0x4D: - REX=0x4D; - REX_b=8; - REX_r=8; - opsize=64; - break; - case 0x4E: - REX=0x4E; - REX_x=8; - REX_r=8; - opsize=64; - break; - case 0x4F: - REX=0x4F; - REX_b=8; - REX_x=8; - REX_r=8; - opsize=64; - break; - - default: - cont=FALSE; - } - } while (cont); - ip--; - - i=0; - j=disasm_table_entries-1; - do { - k=(i+j)>>1; //binary search - tempi=disasm_table[k]; - m=0; - n=0; - while (TRUE) { - if (nopcode_cnt) { - o1=ip[n]; - if (n==tempi->opcode_cnt-1 && - tempi->flags & IEF_PLUS_OPCODE) - o1&=-8; - o2=tempi->opcode[n]; - m=o1-o2; - n++; - if (m) - break; - } else { - if (tempi->slash_value<8) { - o1=(ip[n] >> 3) & 7; - o2=tempi->slash_value; - m=o1-o2; - if (!m) { - if (opsize==16) { - if (tempi->flags & IEF_OP_SIZE32) - m=-1; - } else { - if (tempi->flags & IEF_OP_SIZE16) - m=1; - } - if (!m) { - if (opsize==64||tempi->flags&IEF_NO_REX) { - if (!Bt(&ins64_mask,tempi->arg1) && - !Bt(&ins64_mask,tempi->arg2)) - m=1; - } else { - if (Bt(&ins64_mask,tempi->arg1) || - Bt(&ins64_mask,tempi->arg2)) - m=-1; - } - } - } - break; - } else { - m=0; - if (opsize==16) { - if (tempi->flags & IEF_OP_SIZE32) - m=-1; - } else { - if (tempi->flags & IEF_OP_SIZE16) - m=1; - } - if (!m) { - a1=tempi->arg1; - a2=tempi->arg2; - if (opsize==64) { - if (!Bt(&ins64_mask,a1) && - !Bt(&ins64_mask,a2) && - !(a2==ARGT_NO && - (a1>=ARGT_UIMM8 && a1<=ARGT_UIMM64 || - a1>=ARGT_IMM8 && a1<=ARGT_IMM64 ) )) - m=1; - } else { - if (Bt(&ins64_mask,a1) || - Bt(&ins64_mask,a2)) - m=-1; - } - } - break; - } - } - } - - if (m>0) { - if (k==i) { - k=j; - break; - } else - i=k; - } else if (m<0) { - if (k-i<=1) { - k=i; - break; - } else - j=k; - } else - break; - } while (TRUE); - - tempi=disasm_table[k]; - ip+=tempi->opcode_cnt; - tempo=tempi-(tempi->ins_entry_num*sizeof(InstructionEntry))+&dummy-&dummy.ins; - StrCat(buf,tempo->str); - - a1=tempi->arg1; - a2=tempi->arg2; - aa1=a1; - aa2=a2; - - StrCpy(buf2,SysTextSub(a1,"ST_ARGUMENT_TYPES")); - if (StrStr(buf2,"8")) { - arg1_size=1; - StrCat(arg1_st,"U1 "); - } else if (StrStr(buf2,"16")) { - arg1_size=2; - StrCat(arg1_st,"U2 "); - } else if (StrStr(buf2,"32")) { - arg1_size=4; - StrCat(arg1_st,"U4 "); - } else if (StrStr(buf2,"64")) { - arg1_size=8; - StrCat(arg1_st,"U8 "); - } - - StrCpy(buf2,SysTextSub(a2,"ST_ARGUMENT_TYPES")); - if (StrStr(buf2,"8")) { - arg2_size=1; - StrCat(arg2_st,"U1 "); - } else if (StrStr(buf2,"16")) { - arg2_size=2; - StrCat(arg2_st,"U2 "); - } else if (StrStr(buf2,"32")) { - arg2_size=4; - StrCat(arg2_st,"U4 "); - } else if (StrStr(buf2,"64")) { - arg2_size=8; - StrCat(arg2_st,"U8 "); - } - - a1_size=arg1_size; - a2_size=arg2_size; - if (tempi->flags & IEF_PLUS_OPCODE && (tempi->slash_value==SV_REGISTER || - tempi->opcode_modifier>=OM_RB && tempi->opcode_modifier<=OM_RD)) { - ip--; - RM1=*(ip++) - tempi->opcode[tempi->opcode_cnt-1]+REX_b; - *buf2=0; - if (a1>=ARGT_R8 && a1<=ARGT_R64) { - if (a1_size==1) - SPrintF(buf2,"%Z",RM1,"ST_U1_REGS"); - else if (a1_size==2) - SPrintF(buf2,"%Z",RM1,"ST_U2_REGS"); - else if (a1_size==4) - SPrintF(buf2,"%Z",RM1,"ST_U4_REGS"); - else if (a1_size==8) - SPrintF(buf2,"%Z",RM1,"ST_U8_REGS"); - StrCat(a1_st,buf2); - } else { - if (a2_size==1) - SPrintF(buf2,"%Z",RM1,"ST_U1_REGS"); - else if (a2_size==2) - SPrintF(buf2,"%Z",RM1,"ST_U2_REGS"); - else if (a2_size==4) - SPrintF(buf2,"%Z",RM1,"ST_U4_REGS"); - else if (a2_size==8) - SPrintF(buf2,"%Z",RM1,"ST_U8_REGS"); - StrCat(a2_st,buf2); - } - } - if ((a1>=ARGT_RM8 && a1<=ARGT_RM64) || - (a2>=ARGT_RM8 && a2<=ARGT_RM64)) { - if (a2>=ARGT_RM8 && a2<=ARGT_RM64) { - a1_st=arg2_st; - a2_st=arg1_st; - a1_size=arg2_size; - a2_size=arg1_size; - aa1=a2; - aa2=a1; - } - StrCat(a1_st,seg_overrides); - ModrM=*(ip++); - Mod=(ModrM>>6) & 3; - RM1=ModrM & 7+REX_b; - RM2=(ModrM>>3) & 7+REX_r; - if (Mod<3 && RM1&7==4) { - SIB=*(ip++); - } - if (Mod==1) { - bb=ip; - disp=*bb; - SPrintF(buf2,"%02X",disp); - StrCat(a1_st,buf2); - ip++; - } - if (Mod==2) { - dd=ip; - disp=*dd; - SPrintF(buf2,"%08X",disp); - StrCat(a1_st,buf2); - ip+=4; - } - if (tempi->slash_value<8) - RM2=-1; - else { - *buf2=0; - if (aa2==ARGT_SREG) - SPrintF(buf2,"%Z",RM2,"ST_SEG_REGS"); - else if (!(aa2>=ARGT_IMM8 && aa2<=ARGT_IMM64) && - !(aa2>=ARGT_UIMM8 && aa2<=ARGT_UIMM64)) { - if (a2_size==1) - SPrintF(buf2,"%Z",RM2,"ST_U1_REGS"); - else if (a2_size==2) - SPrintF(buf2,"%Z",RM2,"ST_U2_REGS"); - else if (a2_size==4) - SPrintF(buf2,"%Z",RM2,"ST_U4_REGS"); - else if (a2_size==8) - SPrintF(buf2,"%Z",RM2,"ST_U8_REGS"); - } - StrCat(a2_st,buf2); - } - if (RM1&7==5 && Mod==0) { - dd=ip; - disp=*dd; - ip+=4; - if (disp>MAX_I4) - disp|=0xFFFFFFFF00000000; - if (seg_size==64) { - disp+=ip; - if (aa2==ARGT_IMM8 || aa2==ARGT_UIMM8) - disp++; - else if (aa2==ARGT_IMM16 || aa2==ARGT_UIMM16) - disp+=2; - else if (aa2==ARGT_IMM32 || aa2==ARGT_UIMM32) - disp+=4; - else if (aa2==ARGT_IMM64 || aa2==ARGT_UIMM64) - disp+=8; - } - SPrintF(buf2,"[%X] ",disp); - StrCat(a1_st,buf2); - RM1=-1; - } else { - if (Mod<3) { - if (RM1&7==4) { - RM1=-1; - r1=SIB & 7+REX_b; - r2=(SIB >> 3) & 7+REX_x; - scale=(SIB >> 6) &3; - if (scale==3) - scale=8; - else if (scale==2) - scale=4; - else if (scale==1) - scale=2; - else - scale=1; - if (r1&7==5 && Mod==0) { - dd=ip; - disp=*dd; - SPrintF(buf2,"%08X",disp); - StrCat(a1_st,buf2); - ip+=4; - if (seg_size!=64) - SPrintF(buf2,"[%Z*%d]",r2,"ST_U4_REGS",scale); - else - SPrintF(buf2,"[%Z*%d]",r2,"ST_U8_REGS",scale); - StrCat(a1_st,buf2); - } else { - if (seg_size!=64) - SPrintF(buf2,"[%Z+%Z*%d]",r1,"ST_U4_REGS", - r2,"ST_U4_REGS",scale); - else - SPrintF(buf2,"[%Z+%Z*%d]",r1,"ST_U8_REGS", - r2,"ST_U8_REGS",scale); - StrCat(a1_st,buf2); - } - } else { - *buf2=0; - if (opadd==16) - SPrintF(buf2,"[%Z]",RM1,"ST_U2_REGS"); - else if (opadd==32) - SPrintF(buf2,"[%Z]",RM1,"ST_U4_REGS"); - else - SPrintF(buf2,"[%Z]",RM1,"ST_U8_REGS"); - StrCat(a1_st,buf2); - } - } else { - *buf2=0; - if (a1_size==1) - SPrintF(buf2,"%Z",RM1,"ST_U1_REGS"); - else if (a1_size==2) - SPrintF(buf2,"%Z",RM1,"ST_U2_REGS"); - else if (a1_size==4) - SPrintF(buf2,"%Z",RM1,"ST_U4_REGS"); - else if (a1_size==8) - SPrintF(buf2,"%Z",RM1,"ST_U8_REGS"); - StrCat(a1_st,buf2); - } - } - } - if (a1>=ARGT_MOFFS8 && a1<=ARGT_MOFFS64) { - StrCat(arg1_st,seg_overrides); - if (arg1_size==1) { - bb=ip; - disp=*bb; - ip++; - SPrintF(buf2,"[%X]",disp); - StrCat(arg1_st,buf2); - } else if (opadd==16) { - ww=ip; - disp=*ww; - ip+=2; - SPrintF(buf2,"[%X]",disp); - StrCat(arg1_st,buf2); - } else { - dd=ip; - disp=*dd; - ip+=4; - SPrintF(buf2,"[%X]",disp); - StrCat(arg1_st,buf2); - } - } - - if (a2>=ARGT_MOFFS8 && a2<=ARGT_MOFFS64) { - StrCat(arg2_st,seg_overrides); - if (arg2_size==1) { - bb=ip; - disp=*bb; - ip++; - SPrintF(buf2,"[%X]",disp); - StrCat(arg2_st,buf2); - } else if (opadd==16) { - ww=ip; - disp=*ww; - ip+=2; - SPrintF(buf2,"[%X]",disp); - StrCat(arg2_st,buf2); - } else { - dd=ip; - disp=*dd; - ip+=4; - SPrintF(buf2,"[%X]",disp); - StrCat(arg2_st,buf2); - } - } - - switch (a1) { - case ARGT_IMM8: - case ARGT_UIMM8: - bb=ip; - imm=*bb; - SPrintF(buf2,"%02X",imm); - StrCat(arg1_st,buf2); - if (tempi->opcode[0]==0xCD) { - StrCat(arg1_st," "); - StrCat(arg1_st,SysTextSub(imm,"ST_INT_NAMES")); - } - ip++; - break; - case ARGT_IMM16: - case ARGT_UIMM16: - ww=ip; - imm=*ww; - SPrintF(buf2,"%04X",imm); - StrCat(arg1_st,buf2); - ip+=2; - break; - case ARGT_IMM32: - case ARGT_UIMM32: - dd=ip; - imm=*dd; - SPrintF(buf2,"%08X",imm); - StrCat(arg1_st,buf2); - ip+=4; - break; - case ARGT_IMM64: - case ARGT_UIMM64: - dddd=ip; - imm=*dddd; - SPrintF(buf2,"%016X",imm); - StrCat(arg1_st,buf2); - ip+=8; - break; - case ARGT_REL8: - bb=ip; - disp=*bb; - if (disp>MAX_I1) - disp|=0xFFFFFFFFFFFFFF00; - ip++; - disp+=ip; - SPrintF(buf2,"%P ",disp); - if (branch) *branch=disp; - StrCat(arg1_st,buf2); - break; - case ARGT_REL16: - ww=ip; - disp=*ww; - if (disp>MAX_I2) - disp|=0xFFFFFFFFFFFF0000; - ip+=2; - disp+=ip; - SPrintF(buf2,"%P ",disp); - if (branch) *branch=disp; - StrCat(arg1_st,buf2); - break; - case ARGT_REL32: - dd=ip; - disp=*dd; - if (disp>MAX_I4) - disp|=0xFFFFFFFF00000000; - ip+=4; - disp+=ip; - SPrintF(buf2,"%P ",disp); - if (branch) *branch=disp; - StrCat(arg1_st,buf2); - break; - case ARGT_CL: - StrCat(arg1_st,"CL"); - break; - case ARGT_AL: - StrCat(arg1_st,"AL"); - break; - case ARGT_AX: - StrCat(arg1_st,"AX"); - break; - case ARGT_EAX: - StrCat(arg1_st,"EAX"); - break; - case ARGT_DX: - StrCat(arg1_st,"DX"); - break; - case ARGT_SS: - StrCat(arg1_st,"SS"); - break; - case ARGT_DS: - StrCat(arg1_st,"DS"); - break; - case ARGT_ES: - StrCat(arg1_st,"ES"); - break; - case ARGT_FS: - StrCat(arg1_st,"FS"); - break; - case ARGT_GS: - StrCat(arg1_st,"GS"); - break; - case ARGT_CS: - StrCat(arg1_st,"CS"); - break; - } - - switch (a2) { - case ARGT_IMM8: - case ARGT_UIMM8: - bb=ip; - imm=*bb; - SPrintF(buf2,"%02X",imm); - StrCat(arg2_st,buf2); - ip++; - break; - case ARGT_IMM16: - case ARGT_UIMM16: - ww=ip; - imm=*ww; - SPrintF(buf2,"%04X",imm); - StrCat(arg2_st,buf2); - ip+=2; - break; - case ARGT_IMM32: - case ARGT_UIMM32: - dd=ip; - imm=*dd; - SPrintF(buf2,"%08X",imm); - StrCat(arg2_st,buf2); - ip+=4; - break; - case ARGT_IMM64: - case ARGT_UIMM64: - dddd=ip; - imm=*dddd; - SPrintF(buf2,"%016X",imm); - StrCat(arg2_st,buf2); - ip+=8; - break; - case ARGT_CL: - StrCat(arg2_st,"CL"); - break; - case ARGT_AL: - StrCat(arg2_st,"AL"); - break; - case ARGT_AX: - StrCat(arg2_st,"AX"); - break; - case ARGT_EAX: - StrCat(arg2_st,"EAX"); - break; - case ARGT_DX: - StrCat(arg2_st,"DX"); - break; - case ARGT_SS: - StrCat(arg2_st,"SS"); - break; - case ARGT_DS: - StrCat(arg2_st,"DS"); - break; - case ARGT_ES: - StrCat(arg2_st,"ES"); - break; - case ARGT_FS: - StrCat(arg2_st,"FS"); - break; - case ARGT_GS: - StrCat(arg2_st,"GS"); - break; - case ARGT_CS: - StrCat(arg2_st,"CS"); - break; - } - - if (*arg1_st) { - StrCat(buf,"\t"); - StrCat(buf,arg1_st); - } - if (*arg2_st) { - StrCat(buf,","); - StrCat(buf,arg2_st); - } - for (i=ip-*add;i<6;i++) { - bin_data_area[i<<1]=CH_SPACE; - bin_data_area[i<<1+1]=CH_SPACE; - } - for (i=ip-*add;i<12;i++) { - bin_data_area2[(i-6)<<1]=CH_SPACE; - bin_data_area2[(i-6)<<1+1]=CH_SPACE; - } - StrCat(buf,"\r\n"); - if (ip-*add>6) { - StrCat(buf,buf3); - StrCat(buf,"\r\n"); - } - *add=ip; -} - - -public U1 *Dasm(U1 *ip,U8 cnt=20,I8 seg_size=64) -//Disassembles a number of instructions. -{ - I8 i; - I1 buf[1024]; - for (i=0;i=0 && i=filter_cnt) { - PrintF("$$FG,GREEN$$%3d.%02d%% %08X:",routine_total*100/total_time, - routine_total*10000/total_time%100,routine_total); - PrintF("%s\r\n$$FG$$",last_buf); - } - StrCpy(last_buf,buf2); - routine_total=0; - } - hits=pf_array[i]; - routine_total+=hits; - if (hits>=filter_cnt) { - PrintF("%3d.%02d%% %08X:",hits*100/total_time, - hits*10000/total_time%100,hits); - if (!PutSourceLine(ip,ip-last_ip+1)) - PrintF("%s\r\n",buf); - else - CrLf; - last_ip=ip; - } - } - if (*last_buf && routine_total>=filter_cnt) { - PrintF("$$FG,GREEN$$%3d.%02d%% %08X:",routine_total*100/total_time, - routine_total*10000/total_time%100,routine_total); - PrintF("%s\r\n$$FG$$",last_buf); - } - break; - case PFM_ALL: - QSort(pf_array,pf_ptr,sizeof(U8),&PFACompare); - *last_buf=0; - for (i=0;i=pf_ptr) break; - } - SPrintF(buf,"%P",ip); - StrCpy(buf3,buf); - RemoveFirstSeg(buf3,",",buf2); - if (StrCmp(buf2,last_buf)) { - if (*last_buf && routine_total>=filter_cnt) { - PrintF("$$FG,GREEN$$%3d.%02d%% %08X:",routine_total*100/total_time, - routine_total*10000/total_time%100,routine_total); - PrintF("%s\r\n$$FG$$",last_buf); - } - StrCpy(last_buf,buf2); - routine_total=0; - } - routine_total+=hits; - if (hits>=filter_cnt) { - PrintF("%3d.%02d%% %08X:",hits*100/total_time, - hits*10000/total_time%100,hits); - if (!PutSourceLine(ip,ip-last_ip+1)) - PrintF("%s\r\n",buf); - else - CrLf; - last_ip=ip; - } - } - if (*last_buf && routine_total>=filter_cnt) { - PrintF("$$FG,GREEN$$%3d.%02d%% %08X:",routine_total*100/total_time, - routine_total*10000/total_time%100,routine_total); - PrintF("%s\r\n$$FG$$",last_buf); - } - break; - } - prof_mode=mode; -} - -#help_index "Debugging" - -void ClassRep2(Ltf *l,I1 *class_name,U1 *d,I8 depth,U8 max_depth,U8 types=HTT_CLASS,I8 offset=0) -{ - U8 i,j; - MemberListStruct *ml; - I1 ch,*s,*s2; - U4 *ptr; - U8 *ptr2; - ClassStruct *cl2,*cl=FindLocalHash(class_name,types); - if (depth>=max_depth) return; - if (!cl) { - LtfPutSExt(l,"Class Not Found.\r\n"); - return; - } - if (!CheckPtr(d) || !CheckPtr(d+cl->size)) { - LtfPrintF(l,"Bad Ptr:%016X\r\n",d); - return; - } - LtfPrintF(l,"Class:\"%s\"\r\n",class_name); - ml=cl->member_list; - while (ml) { - cl2=ml->member_class; - ptr=d+ml->offset; - LtfPrintF(l,"%08X ",ptr+offset); //TODO - j=cl2->ptr_cnt; - while (cl2->return_class) - cl2=cl2->return_class; - cl2-=cl2->ptr_cnt*sizeof(ClassStruct); - if (cl2->type & HTT_INTERNAL_TYPE) { - LtfPrintF(l,"$$FG,GREEN$$%-20ts:$$FG$$",ml->str); - if (!j && ml->cnt==0) { - switch (cl2->sub_type) { - case IT_I1: - LtfPrintF(l,"%02X '%c'",ptr->u1[0],ptr->u1[0]); - break; - case IT_U1: - LtfPrintF(l,"%02X",ptr->u1[0]); - break; - case IT_I2: - LtfPrintF(l,"%04X",ptr->u2[0]); - break; - case IT_U2: - LtfPrintF(l,"%04X",ptr->u2[0]); - break; - case IT_I4: - LtfPrintF(l,"%08X",*ptr); - break; - case IT_U4: - LtfPrintF(l,"%08X",*ptr); - break; - case IT_DOUBLE: - ptr2=ptr; - LtfPrintF(l,"%16g",*ptr2); - break; - default: - ptr2=ptr; - LtfPrintF(l,"%016X",*ptr2); - break; - } - } else if ((j==1 || ml->cnt) && - cl2->sub_type==IT_I1) { - if (j==1) { - if (CheckPtr(*ptr)) { - s2=MStrUtil(*ptr,SU_SAFE_DOLLAR); - LtfPrintF(l,"\"%40ts\"",s2); - Free(s2); - } - } else { - if (ml->cnt<40) - s=ptr+ml->cnt; - else - s=ptr+40; - ch=*s; - *s=0; - s2=MStrUtil(ptr,SU_SAFE_DOLLAR); - LtfPrintF(l,"\"%s\"",s2); - Free(s2); - *s=ch; - } - } else if (ml->cnt>0 && ml->cnt<=32 && !j) { - for (i=0;icnt;i++) { - switch (cl2->sub_type) { - case IT_I1: - LtfPrintF(l,"%02X '%c' ",ptr->u1[0],ptr->u1[0]); - ptr+=1; - break; - case IT_U1: - LtfPrintF(l,"%02X ",ptr->u1[0]); - ptr+=1; - break; - case IT_I2: - LtfPrintF(l,"%04X ",ptr->u2[0]); - ptr+=2; - break; - case IT_U2: - LtfPrintF(l,"%04X ",ptr->u2[0]); - ptr+=2; - break; - case IT_I4: - LtfPrintF(l,"%08X ",*ptr); - ptr+=4; - break; - case IT_U4: - LtfPrintF(l,"%08X ",*ptr); - ptr+=4; - break; - case IT_DOUBLE: - ptr2=ptr; - LtfPrintF(l,"%16g ",*ptr2); - ptr+=8; - break; - default: - ptr2=ptr; - LtfPrintF(l,"%016X ",*ptr2); - ptr+=8; - break; - } - } - } else - LtfPrintF(l,"%016X",*ptr); - LtfPutSExt(l,"\r\n"); - } else { - if (depth<2) { - if (j==1 && !CheckPtr(*ptr)) - LtfPrintF(l,"%-20ts:%016X\r\n",ml->str,*ptr); - else { - LtfPrintF(l,"$$TR,\"%s\"$$\r\n",ml->str); - LtfPutSExt(l,"$$ID,2$$"); - if (!j) - ClassRep2(l,cl2->str,ptr,depth+1,max_depth); - else if (j==1) - ClassRep2(l,cl2->str,*ptr,depth+1,max_depth); - LtfPutSExt(l,"$$ID,-2$$"); - } - } else - LtfPrintF(l,"%-20ts\r\n",ml->str); - } - ml=ml->next; - } -} - -public void ClassRep(I1 *class_name,U1 *d,I8 max_depth=2,BoolU4 fun=FALSE,I8 offset=0) -//Displays members of a record -//by using the compiler's info. -{ - Ltf *l; - BoolU4 old_preempt; - if (IsRaw) { - l=LtfNew; - } else { - LtfMax; - old_preempt=Preempt(OFF); - l=Fs->cur_ltf; - } - if (fun) - ClassRep2(l,class_name,d,0,max_depth,HTT_FUNCTION,offset); - else - ClassRep2(l,class_name,d,0,max_depth,HTT_CLASS,offset); - LtfPutSExt(l,"\r\n"); - LtfRecalc(l); - if (IsRaw) { - LtfDump(l,150000); - LtfDel(l); - } else - Preempt(old_preempt); -} - -void RawClassRep(I1 *st,U1 *rbp=NULL,I8 max_depth,BoolU8 is_function,I8 offset=0) -{ - BoolU4 old_raw=Raw(ON); - dc_col=0; - ClassRep(st,rbp,max_depth,is_function,offset); - old_raw=Raw(old_raw); -} - -void UpdateRegVarImg(ClassStruct *cl,U1 *d,TssStruct *tss) -{ - MemberListStruct *ml; - ClassStruct *cl2; - ml=cl->member_list; - while (ml) { - if (ml->register>=CREG_RAX) { - cl2=ml->member_class; - while (cl2->return_class) - cl2=cl2->return_class; - MemCpy(d+ml->offset,&tss->rax+ml->register*8,cl2->size); - } - ml=ml->next; - } -} - -public void FunRep(I1 *st,U1 *rbp=NULL,I8 max_depth=2,TssStruct *tss=NULL) -//Shows names and values of a function's -//local variables using info the compiler -//has. -{ - I8 size; - void *img; - ClassStruct *tempc=FindLocalHash(st,HTT_FUNCTION); - MemberListStruct *tempm; - if (tempc) { - if (rbp) { - if (tss) { - size=tempc->parameter_cnt*8-tempc->size+16; - img=MAlloc(size); - MemCpy(img,rbp+tempc->size,size); - UpdateRegVarImg(tempc,img-tempc->size,tss); - ClassRep(st,img-tempc->size,max_depth,TRUE,rbp-img+tempc->size); - Free(img); - } else - ClassRep(st,rbp,max_depth,TRUE); - } else { - tempm=tempc->member_list; - while (tempm) { - if (tempm->register==-1) - PrintF("%08tX %s\r\n",tempm->offset,tempm->str); - else - PrintF("%08Z %s\r\n",tempm->register,"ST_U8_REGS",tempm->str); - tempm=tempm->next; - } - PrintF("%08tX Stack Size\r\n",tempc->size); - } - } -} - -public void DasmFun(I1 *st) -{ - ClassStruct *tempc=FindLocalHash(st,HTT_FUNCTION); - DbgInfo *tempd; - if (tempc) { - FunRep(st); - if (tempd=tempc->debug) { - Dasm2(tempc->executable_address, - tempd->body[tempd->max_line-tempd->min_line+1]- - tempc->executable_address); - } else - Dasm(tempc->executable_address); - } -} - -#help_index "Debugging/Breakpoints" -SysBpt *FindBpt(TssStruct *tss,U1 *a,U8 flags=ALL_MASK,BoolU4 remove=FALSE) -{//Removes - SysBpt *result=NULL; - U8 old_flags=GetFlags; - SysBpt *tempb,*tempb1,*tempb2; - Cli; - tempb1=&tss->bpt_list; - tempb=tss->bpt_list; - while (tempb) { - tempb2=tempb->next; - if (tempb->address==a && tempb->flags & flags) { - result=tempb; - if (remove) - tempb1->next=tempb2; - else - tempb1=&tempb->next; - } else - tempb1=&tempb->next; - tempb=tempb2; - } - SetFlags(old_flags); - return result; -} - -public BoolU4 SBpt(TssStruct *tss,U1 *a,U8 flags=SBPTF_BPT) //set Bpt -//Sets a breakpoint -//Honestly, I never use this. I put -//output statements to debug, partly -//because breakpoints don't work well. -//You can configure your $FG,2$Fault.CPZ$FG$ file -//in your $FG,2$HOME$FG$ directory to assist debuggting. -{ - U8 old_flags=GetFlags; - BoolU4 result=TRUE; - SysBpt *tempb; - Cli; - if (!(tempb=FindBpt(tss,a,flags,FALSE))) { - tempb=MAlloc(sizeof(SysBpt),tss); - tempb->address=a; - tempb->b=*a; - tempb->flags=flags; - result=FALSE; - tempb->next=tss->bpt_list; - tss->bpt_list=tempb; - if (tss==Fs) - *a=0xCC; - } - SetFlags(old_flags); - return result; -} - -public BoolU4 RBpt(TssStruct *tss,U1 *a,U8 flags=ALL_MASK) -//Resets (removes) one breakpoint -{ - U8 old_flags=GetFlags; - BoolU4 result=FALSE; - SysBpt *tempb; - Cli; - if (tempb=FindBpt(tss,a,flags,TRUE)) { - result=TRUE; - Free(tempb,tss); - } - SetFlags(old_flags); - return result; -} - -BoolU8 DBpt(TssStruct *tss,U1 *a,U8 flags=ALL_MASK) //disable one Bpt -{ //used for continuing after a bpt - U8 old_flags=GetFlags; - BoolU4 result=FALSE; - SysBpt *tempb; - Cli; - if (tempb=FindBpt(tss,a,flags,FALSE)) { - Bts(&tempb->flags,SBPTf_DISABLE); - result=TRUE; - } - SetFlags(old_flags); - return result; -} - -public void CBpt(TssStruct *tss,U8 flags=ALL_MASK) //clear Bpts -//Clear break-point -{ - U1 *a; - U8 old_flags=GetFlags; - SysBpt *tempb,*tempb1,*tempb2; - Cli; - tempb=tss->bpt_list; - tempb1=&tss->bpt_list; - while (tempb) { - tempb2=tempb->next; - if (tempb->flags & flags) { - a=tempb->address; - if (tss==Fs) - *a=tempb->b; - Free(tempb,tss); - tempb1->next=tempb2; - } else - tempb1=&tempb->next; - tempb=tempb2; - } - SetFlags(old_flags); -} - -public void Go() -//Continue after breakpoint -{ - TssStruct *tss=Fs->parent_tss; - void *rip=&tss->rip; - if (!Btr(&tss->task_flags,TSSf_DISABLE_BPTS)) { - *rip-=1; - if (!DBpt(tss,*rip)) - *rip+=1; - } - Btr(&tss->rflags,8); - Btr(&tss->task_flags,TSSf_SUSPENDED); - Exit; -} - -public void Step() -//Execute single assembly instruction -//and stop. -{ - TssStruct *tss=Fs->parent_tss; - void *rip=&tss->rip; - if (!Bts(&tss->task_flags,TSSf_DISABLE_BPTS)) { - *rip-=1; - if (!DBpt(tss,*rip)) - *rip+=1; - } - Bts(&tss->rflags,8); - Btr(&tss->task_flags,TSSf_SUSPENDED); - Exit; -} - -#help_index "" - \ No newline at end of file diff --git a/LT/Adam/Disk10.APZ b/LT/Adam/Disk10.APZ deleted file mode 100644 index a458cb21dcc4b00dab964ee08268924bd2e90be4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6187 zcmY$+NX;pT&&*3ntx!;M%gjmD4=Bn{FG|c+2+A)l$;?YFR^sL2P$kjm>(Mr_uv{2B>)a2!==H*gQK$ZimHnau_muF<= zq$+5DMKl$_DisvKJVRSBrE8a$T2TU4tDumX234wSmsnC#q~;S6?-&vi6z}301lO#9 z!S&PN<23bACak zhNq!|R+^y>m@=|e(o=$k4^&Z6YH?{!iET(ws4F-vK*Gy0IXShsSV1cd9D5b8)sF`}TRfLxG(jpT$_pa=@N z;LN=AoK%RnbnVhgb8_PI5_3~^z{cy^f!HA5aVjV%C_n=d<~`0@UM@}?r47V+$R!5I z0B}wNF~GV&0SJi!jkH9V&!I}7AqlY&9Al8O3niS9+@EHslV$`m16(ShCJ^8JvQ*Rr z0!tjA&;l8v0nrW)9H{d&(hNbyfp}22fZ_+@5|AUHg0QdvTN`Sj5KvkIGBBhl6}8L& z2d7S`g+g&ra(qf=QG8Bn9*CP#Tmt8U5-*ewb6}_iEYKlECP+y!BnM%n2#`~YOJF%X zxTMG@H4h_RHMOBOfE=I=4l$5E-_%^^f=Z3z5*?^Cj0P!#g+p*j5kwKP8L)%`PdVC1 zK7{E6g)=w=u%<~wedL=B$|}XsVhH3gNCMEdMGjY}NuY`k$u49U!`LwUk<$(&?Smo- zSJE#o0jGGV)v&t54HTsar-2;-N#8iC5{Q0S0S8Tzp%&os3YAi7h{!awg{JP}5_l#B zIUv)}*49{4A=6M-*BaC~0VNNWM@|C@wKVb(MlbrV+w+c>aMT zs!St@{YGH>LAJxoOpNpk33Q#}5+pNlmx>As(BubK4J{|ZT3j-Vd@_qmAekNJ7pMkk z0D+Z5(i5~qfhA0E!`CI>B{c_}D3RL>;8-*SrAAOfKuR&-D8f()N-?N4l_9)D1si1q z$uEXT83qz?U|B-~g###ZU=NX(prEfGP+F9pTC7lMqEQ$b(fC#1BvL?J&f73?Qy_c+v0 zK`Xhm2-MI4HGG3hiZnn~7)UcDsC_~L5{pVQOEUBG6toI#U5YZxQbY3LVj5cL%3&E) zAteuda*`QX_}5wa7etH zr;jVR`yQ;Mlai_jGFB7fR|T{_cu;C?ep#wpW>IlTaB8{+G@NvltdwBt6%-(9d=k-= z=p!isdjb~9pt2FbDsU16S9TcX45ar5b~iNLVJLwV+Q=7fc*%M8*peUC_us! zRBV9a0<007Rbd+84RjRku=WFZsEg?8PG8@#q@+jzlus0Fi!<`edAaoULDniLX@@8& z*n*lEnJKAxB_Q!MP{vSD(k@c6ElN!;Eh0ln%0C39{ zR>y=|D5OEhH;|HYnhtUxgL7bLh^J4yn~$S=u#%<@*c?b21P2c|8NrH)VhynEX`1lh z0Vldp3k5efutJQ)gxoL!jmkiJXc)>sX$}-CbW3%-T%5^yCEB)7cf;ZzqY4D2PH>zd zN;qiI2GashGLS$6DF&Gg>k&Z{9?3}v)F?(DY=btSz`>207QnFvi+z24P<(;wmSRxa zLQPfR5!O)X5TgzmDFkF3#INKfD^Tdb!X4yLPzHo2EQrC-+7&Vm22Ns7uY>bKaB2yp z@=L8K0c9~zP^5rrLt6u#P(uZ9#)lVf@cL0fs{mXYfJUpqVW6OZr4j|31960cLV>Pb zNoqw&Jjg^_5CJxzRv|gDBsl|=Ton}DigoS4-1yXrAT;Q#;t diff --git a/LT/Adam/DiskCDDVD.APZ b/LT/Adam/DiskCDDVD.APZ deleted file mode 100644 index 6a634e5..0000000 --- a/LT/Adam/DiskCDDVD.APZ +++ /dev/null @@ -1,543 +0,0 @@ -#help_index "File/CD DVD" - -void FillBigEndianU2(U2 *dst,U2 w) -{ - U2 *src=&w; - dst->u1[0]=src->u1[1]; - dst->u1[1]=src->u1[0]; -} - -void FillBigEndianU4(U4 *dst,U8 d) -{ - U8 *src=&d; - dst->u1[0]=src->u1[3]; - dst->u1[1]=src->u1[2]; - dst->u1[2]=src->u1[1]; - dst->u1[3]=src->u1[0]; -} - -void FillU2Palindrome(U2Palindrome *dst,U2 w) -{ - FillBigEndianU2(&dst->big,w); - dst->little=w; -} - -void FillU4Palindrome(U4Palindrome *dst,U8 d) -{ - FillBigEndianU4(&dst->big,d); - dst->little=d; -} - - -class CCdUserData -{ - U8 location,path_entry_num, - short_dir_blks,long_dir_blks; -}; - -U8 DoCreateCDFile(LTFile *out_file,LTDirEntry *tempm, - ISODirEntry *tempi,ISODirEntry *tempi2, - U8 *cur_blk, - LTDirEntry *parent,BoolU4 write) -{ - CCdUserData *tempc; - LTDirEntry *tempm1,*tempm2; - LTFile *in_file; - U1 *buf=MAlloc(CD_BLK_SIZE),*ptr1,*ptr2; - ISODirEntry *dir_blk_buf=MAllocZ(CD_BLK_SIZE*128), - *de=dir_blk_buf,*de1; - ISODirEntry *dir_blk_buf2=MAllocZ(CD_BLK_SIZE*128), - *de2=dir_blk_buf2,*de12; - U8 i,n; - - tempc=parent->user_data; - - de->length=sizeof(ISODirEntry)-1; - de->ext_attr_length=0; - FillU2Palindrome(&de->volume_sequence_num,1); - LTDateToISO(&de->date,tempm->datetime); - de->flags=ISO_ATTR_DIR; - de->name_len=1; - de->name=0; - de->length+=de->name_len; - de+=de->length; - - de->length=sizeof(ISODirEntry)-1; - de->ext_attr_length=0; - FillU4Palindrome(&de->location,tempc->location); - FillU4Palindrome(&de->size,tempc->short_dir_blks*CD_BLK_SIZE); - FillU2Palindrome(&de->volume_sequence_num,1); - LTDateToISO(&de->date,parent->datetime); - de->flags=ISO_ATTR_DIR; - de->name_len=1; - de->name=1; - de->length+=de->name_len; - de+=de->length; - - de2->length=sizeof(ISODirEntry)-1; - de2->ext_attr_length=0; - FillU2Palindrome(&de2->volume_sequence_num,1); - LTDateToISO(&de2->date,tempm->datetime); - de2->flags=ISO_ATTR_DIR; - de2->name_len=1; - de2->name=0; - de2->length=de2->length+de2->name_len; - de2+=de2->length; - - de2->length=sizeof(ISODirEntry)-1; - de2->ext_attr_length=0; - FillU4Palindrome(&de2->location,tempc->location+tempc->short_dir_blks); - FillU4Palindrome(&de2->size,tempc->long_dir_blks*CD_BLK_SIZE); - FillU2Palindrome(&de2->volume_sequence_num,1); - LTDateToISO(&de2->date,parent->datetime); - de2->flags=ISO_ATTR_DIR; - de2->name_len=1; - de2->name=1; - de2->length+=de2->name_len; - de2+=de2->length; - - tempm1=tempm->sub; - while (tempm1) { - tempm2=tempm1->next; - if (!write) tempm1->user_data=MAllocZ(sizeof(CCdUserData)); - de1=de; - de12=de2; - if (tempm1->attr & LT_ATTR_DIR) { - n=DoCreateCDFile(out_file,tempm1,de,de2,cur_blk,tempm,write); - de+=sizeof(ISODirEntry)-1+n; - de2+=sizeof(ISODirEntry)-1+n<<1; - } else { - tempc=tempm1->user_data; - de->length=sizeof(ISODirEntry)-1; - de->ext_attr_length=0; - FillU4Palindrome(&de->location,*cur_blk); - tempc->location=*cur_blk; - if (write) - coutln *cur_blk,":",tempm1->full_name; - FillU4Palindrome(&de->size,tempm1->size); - FillU2Palindrome(&de->volume_sequence_num,1); - LTDateToISO(&de->date,tempm1->datetime); - de->flags=0; - de->name_len=StrLen(tempm1->name); - StrCpy(&de->name,tempm1->name); - de->length=de->length+de->name_len; - de+=de->length; - - de2->length=sizeof(ISODirEntry)-1; - de2->ext_attr_length=0; - FillU4Palindrome(&de2->location,*cur_blk); - FillU4Palindrome(&de2->size,tempm1->size); - FillU2Palindrome(&de2->volume_sequence_num,1); - LTDateToISO(&de2->date,tempm1->datetime); - de2->flags=0; - de2->name_len=StrLen(tempm1->name)<<1; - ptr1=&de2->name; - ptr2=&tempm1->name; - for (i=0;iname_len;i=i+2) { - ptr1++; - *ptr1++=*ptr2++; - } - de2->length+=de2->name_len; - de2+=de2->length; - - in_file=FOpen(tempm1->full_name,"r"); - for (i=0;i<(FSize(in_file)+CD_BLK_SIZE-1)/CD_BLK_SIZE;i++) { - n=4; - if ((i+1)<<2>(FSize(in_file)+BLK_SIZE-1)>>BLK_SIZE_BITS) { - n=((FSize(in_file)+BLK_SIZE-1)>>BLK_SIZE_BITS)%4; - MemSet(buf,0,CD_BLK_SIZE); - } - if (write) { - FRBlks(in_file,buf,i<<2,n); - FWBlks(out_file,buf,(*cur_blk)<<2,n); - } - *cur_blk+=1; - } - FClose(in_file); - } - if ((de1-dir_blk_buf)/CD_BLK_SIZE!= - (de -dir_blk_buf)/CD_BLK_SIZE) { - i=de1->length; - MemCpy(buf,de1,i); - MemSet(de1,0,i); - de=dir_blk_buf+((de-dir_blk_buf)/CD_BLK_SIZE)*CD_BLK_SIZE; - MemCpy(de,buf,i); - de+=i; - } - if ((de12-dir_blk_buf2)/CD_BLK_SIZE!= - (de2 -dir_blk_buf2)/CD_BLK_SIZE) { - i=de12->length; - MemCpy(buf,de12,i); - MemSet(de12,0,i); - de2=dir_blk_buf2+((de2-dir_blk_buf2)/CD_BLK_SIZE)*CD_BLK_SIZE; - MemCpy(de2,buf,i); - de2+=i; - } - tempm1=tempm2; - } - - tempc=tempm->user_data; - - tempi->length=sizeof(ISODirEntry)-1; - tempi->ext_attr_length=0; - tempi->flags=ISO_ATTR_DIR; - if (!tempm->name[0]) { - tempi->name_len=1; - tempi->name=1; - } else { - tempi->name_len=StrLen(tempm->name); - StrCpy(&tempi->name,tempm->name); - } - tempi->length+=tempi->name_len; - - n=de+1-dir_blk_buf; - n=(n+CD_BLK_SIZE-1)/CD_BLK_SIZE; - FillU4Palindrome(&tempi->size,n*CD_BLK_SIZE); - FillU4Palindrome(&tempi->location,*cur_blk); - tempc->short_dir_blks=n; - tempc->location=*cur_blk; - FillU4Palindrome(&dir_blk_buf->size,n*CD_BLK_SIZE); - FillU4Palindrome(&dir_blk_buf->location,*cur_blk); - FillU2Palindrome(&tempi->volume_sequence_num,1); - LTDateToISO(&tempi->date,tempm->datetime); - if (write) - coutln *cur_blk,":",tempm->full_name; - if (write) - FWBlks(out_file,dir_blk_buf,(*cur_blk)<<2,n<<2); - *cur_blk+=n; - - tempi2->length=sizeof(ISODirEntry)-1; - tempi2->ext_attr_length=0; - tempi2->flags=ISO_ATTR_DIR; - if (!tempm->name[0]) { - tempi2->name_len=1; - tempi->name=1; - } else { - tempi2->name_len=StrLen(tempm->name)<<1; - ptr1=&tempi2->name; - ptr2=&tempm->name; - for (i=0;iname_len;i=i+2) { - ptr1++; - *ptr1++=*ptr2++; - } - } - tempi2->length+=tempi2->name_len; - n=de2+1-dir_blk_buf2; - n=(n+CD_BLK_SIZE-1)/CD_BLK_SIZE; - FillU4Palindrome(&tempi2->size,n*CD_BLK_SIZE); - FillU4Palindrome(&tempi2->location,*cur_blk); - tempc->long_dir_blks=n; - FillU4Palindrome(&dir_blk_buf2->size,n*CD_BLK_SIZE); - FillU4Palindrome(&dir_blk_buf2->location,*cur_blk); - FillU2Palindrome(&tempi2->volume_sequence_num,1); - LTDateToISO(&tempi2->date,tempm->datetime); - if (write) - coutln *cur_blk,":",tempm->full_name; - if (write) - FWBlks(out_file,dir_blk_buf2,(*cur_blk)<<2,n<<2); - *cur_blk+=n; - - Free(dir_blk_buf); - Free(dir_blk_buf2); - Free(buf); - return tempi->name_len; -} - -U8 CDTableLength(LTDirEntry *tempm,U8 *size1,U8 *size2,U8 cur_depth) -//returns depth -{ - LTDirEntry *tempm1=tempm->sub; - U8 max_depth=cur_depth,i; - while (tempm1) { - if (tempm1->attr & LT_ATTR_DIR) { - *size1+=sizeof(ISOPathTableEntry)-2+((StrLen(tempm1->name)+1) & -0x2); - *size2+=sizeof(ISOPathTableEntry)-2+StrLen(tempm1->name)<<1; - i=CDTableLength(tempm1,size1,size2,cur_depth+1); - if (i>max_depth) max_depth=i; - } - tempm1=tempm1->next; - } - return max_depth; -} - -void CDFillPathTable(LTDirEntry *tempm, - ISOPathTableEntry *itabbuf,ISOPathTableEntry *itabbuf2, - U8 parent_entry_num,BoolU4 big_endian,U8 *first_free,I8 cur_level,I8 output_level) -{ - I1 *ptr1,*ptr2; - U8 i; - ISOPathTableEntry *tabbuf=*itabbuf; - ISOPathTableEntry *tabbuf2=*itabbuf2; - LTDirEntry *tempm1=tempm->sub,*tempm2; - CCdUserData *tempc; - - if (cur_level==output_level) { - while (tempm1) { - if (tempm1->attr & LT_ATTR_DIR) { - tempc=tempm1->user_data; - tempc->path_entry_num=*first_free; - tabbuf->name_len=StrLen(tempm1->name); - if (big_endian) { - FillBigEndianU4(&tabbuf->blk,tempc->location); - FillBigEndianU2(&tabbuf->parent_entry_num,parent_entry_num); - } else { - tabbuf->blk=tempc->location; - tabbuf->parent_entry_num=parent_entry_num; - } - StrCpy(&tabbuf->name,tempm1->name); - - tabbuf+=sizeof(ISOPathTableEntry)-2+ - ((StrLen(tempm1->name)+1) & -0x2); - - tabbuf2->name_len=StrLen(tempm1->name)<<1; - if (big_endian) { - FillBigEndianU4(&tabbuf2->blk,tempc->location+tempc->short_dir_blks); - FillBigEndianU2(&tabbuf2->parent_entry_num,parent_entry_num); - } else { - tabbuf2->blk=tempc->location+tempc->short_dir_blks; - tabbuf2->parent_entry_num=parent_entry_num; - } - ptr1=&tabbuf2->name; - ptr2=&tempm1->name; - for (i=0;iname_len;i=i+2) { - ptr1++; - *ptr1++=*ptr2++; - } - tabbuf2+=sizeof(ISOPathTableEntry)-2+ - StrLen(tempm1->name)<<1; - *first_free+=1; - } - tempm1=tempm1->next; - } - *itabbuf=tabbuf; - *itabbuf2=tabbuf2; - } - tempm1=tempm->sub; - while (tempm1) { - tempm2=tempm1->next; - if (tempm1->attr & LT_ATTR_DIR) { - tempc=tempm1->user_data; - CDFillPathTable(tempm1,itabbuf,itabbuf2,tempc->path_entry_num, - big_endian,first_free,cur_level+1,output_level); - } - tempm1=tempm2; - } -} - -class ElTorito -{ - U2 w[16]; - U1 bootable; //88=bootable 00=not bootable - U1 media_type; //0=no emulation 4=hard disk - U2 load_seg; //0000->07C0 - U1 sys_type; - U1 zero; - U2 sector_cnt; - U4 load_rba; //start address of virtual disk - U1 zero2[20]; -}; - -public U8 CreateCDFile(I1 *filename,I1 src_drive, - I1 *bootfile=NULL) -{ - ISOPrimaryDescriptor *iso =MAllocZ(CD_BLK_SIZE), - *iso1=MAllocZ(CD_BLK_SIZE), - *iso2=MAllocZ(CD_BLK_SIZE), - *iso3=MAllocZ(CD_BLK_SIZE); - LTDirEntry *rootdir=MAllocZ(sizeof(LTDirEntry)); - U8 cur_blk=0,bsize,tabsize,tabsize2,first_free,max_depth; - U4 *d; - I1 mask[8]; - I1 *filename2; - ElTorito *et=MAllocZ(CD_BLK_SIZE); - U1 *buf=MAllocZ(CD_BLK_SIZE), - *bootfile_buf=NULL; - ISOPathTableEntry *tabbuf=NULL,*tabbuf2=NULL, - *itabbuf,*itabbuf2; - BoolU4 okay=TRUE; - U8 i,j; - LTFile *out_file=NULL; - ISODirEntry *tempi; - CCdUserData *tempc; - - if (!filename) - filename=default_iso_name; - filename2=DefaultExtension(filename,"ISO"); - - SPrintF(mask,"%c:/*",src_drive); - if (bootfile) - bootfile_buf=ReadFile(bootfile,&bsize); - rootdir->attr=LT_ATTR_DIR; - rootdir->sub=FindFiles(mask,1<datetime=GetCurTimeLTDate; - rootdir->user_data=MAllocZ(sizeof(CCdUserData)); - tempc=rootdir->user_data; - tempc->path_entry_num=1; - - if (okay) { - cur_blk=CD_FILE_OFFSET>>2; - if (bootfile_buf) - cur_blk+=2; - DoCreateCDFile(out_file,rootdir, - &iso->root_directory_record, - &iso2->root_directory_record, - &cur_blk,rootdir,FALSE); - tabsize=sizeof(ISOPathTableEntry); - tabsize2=sizeof(ISOPathTableEntry); - max_depth=CDTableLength(rootdir,&tabsize,&tabsize2,1); - FillU4Palindrome(&iso->path_table_size,tabsize); - FillU4Palindrome(&iso2->path_table_size,tabsize2); - tabsize=(tabsize+CD_BLK_SIZE-1)/CD_BLK_SIZE; - cur_blk+=tabsize<<1; - tabsize2=(tabsize2+CD_BLK_SIZE-1)/CD_BLK_SIZE; - cur_blk+=tabsize2<<1; - } - if (okay) { - if (FileAttr(filename2) & LT_ATTR_CONTIGUOUS) - out_file=FOpen(filename2,"wc",cur_blk<<2); - else - out_file=FOpen(filename2,"w",cur_blk<<2); - if (!out_file) - okay=FALSE; - } - if (okay) { - cur_blk=0; - while (cur_blk>2) { - FWBlks(out_file,buf,cur_blk<<2,4); - cur_blk++; - } - iso->type=ISOT_PRIMARY_VOLUME_DESC; - StrCpy(iso->id,"CD001"); - iso->version=1; - FillU2Palindrome(&iso->volume_set_size,1); - FillU2Palindrome(&iso->volume_sequence_number,1); - FillU2Palindrome(&iso->logical_block_size,CD_BLK_SIZE); - iso->file_structure_version=1; - - iso2->type=ISOT_SUPPLEMENTARY_DESC; - StrCpy(iso2->id,"CD001"); - iso2->version=1; - FillU2Palindrome(&iso2->volume_set_size,1); - FillU2Palindrome(&iso2->volume_sequence_number,1); - FillU2Palindrome(&iso2->logical_block_size,CD_BLK_SIZE); - iso2->file_structure_version=1; - - iso1->type=ISOT_BOOT_RECORD; - StrCpy(iso1->id,"CD001"); - iso1->version=1; - StrCpy(iso1+7,"EL TORITO SPECIFICATION"); - - cur_blk=CD_FILE_OFFSET>>2; - - if (bootfile_buf) { - d=iso1+0x47; - *d=cur_blk; - et->w[0]=1; - StrCpy(&et->w[2],"LoseThos"); - et->w[15]=0xAA55; - j=0; - for (i=0;i<16;i++) //Checksum - j+=et->w[i]; - et->w[14]=-j; - if (bootfile_buf) - et->bootable=0x88; - et->media_type=0; //0=no emu 2=1.44meg 4=hard drive - et->sector_cnt=4; - et->load_rba=cur_blk+1; - coutln cur_blk,": Pre Boot Blk"; - FWBlks(out_file,et,cur_blk<<2,4); - cur_blk++; - - coutln cur_blk,": Boot Blk"; - FWBlks(out_file,bootfile_buf,cur_blk<<2,4); - cur_blk++; - } - - DoCreateCDFile(out_file,rootdir, - &iso->root_directory_record, - &iso2->root_directory_record, - &cur_blk,rootdir,TRUE); - - tabbuf=MAllocZ(tabsize*CD_BLK_SIZE); - iso->type_l_path_table=cur_blk; - tabbuf->name_len=2; //Fill-in adam entry - tempi=&iso->root_directory_record; - tabbuf->blk=tempi->location.little; - tabbuf->parent_entry_num=1; - tabbuf2=MAllocZ(tabsize2*CD_BLK_SIZE); - iso2->type_l_path_table=cur_blk+tabsize; - tabbuf2->name_len=2; //Fill-in adam entry - tempi=&iso2->root_directory_record; - tabbuf2->blk=tempi->location.little; - tabbuf2->parent_entry_num=1; - itabbuf=tabbuf+sizeof(ISOPathTableEntry); - itabbuf2=tabbuf2+sizeof(ISOPathTableEntry); - first_free=2; - for (i=1;i<=max_depth;i++) - CDFillPathTable(rootdir,&itabbuf,&itabbuf2, - 1,FALSE,&first_free,1,i); - coutln cur_blk,": Path Table 0"; - FWBlks(out_file,tabbuf,cur_blk<<2,tabsize<<2); - cur_blk+=tabsize; - coutln cur_blk,": Path Table 1"; - FWBlks(out_file,tabbuf2,cur_blk<<2,tabsize2<<2); - cur_blk+=tabsize2; - - - MemSet(tabbuf,0,tabsize*CD_BLK_SIZE); - FillBigEndianU4(&iso->type_m_path_table,cur_blk); - tabbuf->name_len=2; //Fill-in adam entry - tempi=&iso->root_directory_record; - tabbuf->blk=tempi->location.big; - FillBigEndianU2(&tabbuf->parent_entry_num,1); - MemSet(tabbuf2,0,tabsize2*CD_BLK_SIZE); - FillBigEndianU4(&iso2->type_m_path_table,cur_blk+tabsize); - tabbuf2->name_len=2; //Fill-in adam entry - tempi=&iso2->root_directory_record; - tabbuf2->blk=tempi->location.big; - FillBigEndianU2(&tabbuf2->parent_entry_num,1); - itabbuf=tabbuf+sizeof(ISOPathTableEntry); - itabbuf2=tabbuf2+sizeof(ISOPathTableEntry); - first_free=2; - for (i=1;i<=max_depth;i++) - CDFillPathTable(rootdir,&itabbuf,&itabbuf2, - 1,TRUE,&first_free,1,i); - coutln cur_blk,": Path Table 2"; - FWBlks(out_file,tabbuf,cur_blk<<2,tabsize<<2); - cur_blk+=tabsize; - coutln cur_blk,": Path Table 3"; - FWBlks(out_file,tabbuf2,cur_blk<<2,tabsize2<<2); - cur_blk+=tabsize2; - - DelLTDirList(rootdir); //TODO: Free user_data - FillU4Palindrome(&iso->volume_space_size,cur_blk); - FillU4Palindrome(&iso2->volume_space_size,cur_blk); - FWBlks(out_file,iso,16<<2,4); - - iso3->type=ISOT_TERMINATOR; - StrCpy(iso3->id,"CD001"); - iso3->version=1; - if (bootfile_buf) { - FWBlks(out_file,iso1,17<<2,4); - FWBlks(out_file,iso2,18<<2,4); - FWBlks(out_file,iso3,19<<2,4); - } else { - FWBlks(out_file,iso2,17<<2,4); - FWBlks(out_file,iso3,18<<2,4); - } - } else - cur_blk=0; - - FClose(out_file); - Free(tabbuf); - Free(tabbuf2); - Free(et); - Free(bootfile_buf); - Free(iso); - Free(iso1); - Free(iso2); - Free(iso3); - Free(filename2); - return cur_blk; -} -#help_index "" diff --git a/LT/Adam/DisplayKeys.APZ b/LT/Adam/DisplayKeys.APZ deleted file mode 100644 index f76dd238ade08917e6712764a16a22005a50573d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1 IcmZPo000310RR91 diff --git a/LT/Adam/FileManager.APZ b/LT/Adam/FileManager.APZ deleted file mode 100644 index c3161a3..0000000 --- a/LT/Adam/FileManager.APZ +++ /dev/null @@ -1,684 +0,0 @@ -#help_index "File/Cmd Line (Typically)" - -#define FILEMANAGER_MENU_NAME "::/LT/Doc/FileManager.MUZ" - -class FMUncollapsedList -{ - FMUncollapsedList *next; - I1 *name; -}; - -void AddTempDriveWizard() -{ - TssStruct *tss; - I1 *a_drive=NULL,*a_size=NULL,*a_type=NULL,*a_name=NULL,*a_default=NULL; - I8 size,drive,type,drive2; - LTPartition *p; - PartitionRep; - BoolU4 okay=FALSE,sure=FALSE,in_use,valid_drive2; - cout "$$WW,1$$"; - - a_type =PmtStr("\r\n(R)am or (F)ile : "); - type =ToUpper(*a_type); - if (type=='R' || type=='F') { - a_drive =PmtStr("\r\nNew Drive Letter: "); - drive=ToUpper(*a_drive); - if (drive>'A' && drive<='Z') { - p=&local_partitions[drive-'A']; - try { - CheckLTPartition(p); - in_use=TRUE; - } catch { - Fs->catch_except=TRUE; - in_use=FALSE; - } - if (in_use) - coutln "$$FG,RED$$Drive letter in use.$$FG$$"; - else { - a_size =PmtStr("\r\nSize in Meg : "); - size=AtoI(a_size)*0x100000>>BLK_SIZE_BITS; - if (size<0x800) - coutln "$$FG,RED$$Invalid size.$$FG$$"; - else { - if (type=='F') { - coutln "$$FG,RED$$Specify entire path, including drive, but leave-off " - "the filename extension.$$FG$$"; - a_default=MSPrintF("%c:/Temp/Drive%c",default_drive,drive); - a_name=PmtStr("\r\nFile Name (%s): ",a_default); - if (*a_name==':') - *a_name=default_drive; - if (StrLen(a_name)<4 || a_name[1]!=':' || - Occurrences(a_name,'.')) - coutln "$$FG,RED$$Invalid file name.$$FG$$"; - else { - drive2=ToUpper(*a_name); - p=&local_partitions[drive2-'A']; - valid_drive2=FALSE; - if (p->type==PT_LT) { - try { - CheckLTPartition(p); - valid_drive2=TRUE; - } catch - Fs->catch_except=TRUE; - } - if (!valid_drive2) - coutln "$$FG,RED$$Invalid drive in file name.$$FG$$"; - else - okay=TRUE; - } - } else { - if (size<7*UnusedSysMem/8) - coutln "$$FG,RED$$Size is too big.$$FG$$"; - else - okay=TRUE; - } - } - } - } else - coutln "$$FG,RED$$Invalid drive letter.$$FG$$"; - } - - CrLf; - if (okay) - sure=AreYouSure; - if (okay && sure) { - tss=SpawnUser; - tss->win_top=Fs->win_top; - tss->win_bottom=(Fs->win_top+Fs->win_bottom)>>2-1; - Fs-> win_top=tss->win_bottom+3; - tss->win_right=Fs->win_right; - tss->win_left=Fs->win_left; - WinToTop(Fs); - XTalk(tss,"AddDrives;\r"); - XTalk(tss,"%c",drive); - if (type=='R') { - XTalk(tss,"1"); - XTalk(tss,"%d\r",size); - } else { - XTalk(tss,"5"); - XTalk(tss,"%s\r",a_name); - XTalk(tss,"Y"); - XTalk(tss,"%d\r",size); - } - XTalkWithWait(tss,"\r"); - Fs->win_top=tss->win_top; - Kill(tss); - PartitionRep; - } else - coutln "$$FG,RED$$Canceled$$FG$$"; - CrLf; - PressAKey; - Free(a_drive); - Free(a_type); - Free(a_size); - Free(a_name); - Free(a_default); -} - -void FMAddTempDrive() -{ - PopUp("AddTempDriveWizard;\r",Fs); -} - -FMUncollapsedList *FMCollectUncollapsedList(Ltf *l) -{ - LtfEntry *ll=l->dummy.next; - FMUncollapsedList *result=NULL,*tempc; - LTDirEntry *tempm; - while (ll!=l) { - if (ll->btype==LTFT_TREE) { - if (!(ll->flags<FLF_COLLAPSED)) { - if (tempm=ll->user_data) { - tempc=MAlloc(sizeof(FMUncollapsedList)); - tempc->next=result; - result=tempc; - tempc->name=NewStr(tempm->full_name); - } - } - } - ll=ll->next; - } - return result; -} - -void FMMarkUncollapsed(Ltf *l,FMUncollapsedList *tempc,I1 *cur_entry,I1 *next_entry) -{ - LtfEntry *ll=l->dummy.next; - FMUncollapsedList *tempc1; - LTDirEntry *tempm; - while (ll!=l) { - if (ll->btype==LTFT_TREE) { - tempm=ll->user_data; - tempc1=tempc; - while (tempc1) { - if (!StrCmp(tempc1->name,tempm->full_name)) { - ll->flags&=~LTFLF_COLLAPSED; - break; - } - tempc1=tempc1->next; - } - if (cur_entry) { - if (!StrNCmp(cur_entry,tempm->full_name,StrLen(tempm->full_name))) { - l->cur_entry=ll; - if (StrLen(tempm->full_name)==StrLen(cur_entry)) - cur_entry=NULL; - } else if (next_entry) { - if (!StrNCmp(next_entry,tempm->full_name,StrLen(tempm->full_name))) { - l->cur_entry=ll; - if (StrLen(tempm->full_name)==StrLen(next_entry)) - cur_entry=NULL; - } - } - } - } else if (ll->btype==LTFT_MENU_VALUE) { - tempm=ll->left_exp; - if (cur_entry) { - if (!StrNCmp(cur_entry,tempm->full_name,StrLen(tempm->full_name))) { - l->cur_entry=ll; - if (StrLen(tempm->full_name)==StrLen(cur_entry)) - cur_entry=NULL; - } else if (next_entry) { - if (!StrNCmp(next_entry,tempm->full_name,StrLen(tempm->full_name))) { - l->cur_entry=ll; - if (StrLen(tempm->full_name)==StrLen(next_entry)) - cur_entry=NULL; - } - } - } - } - ll=ll->next; - } -} - -void FMDelUncollapsedList(FMUncollapsedList *tempc) -{ - FMUncollapsedList *tempc1; - while (tempc) { - tempc1=tempc->next; - Free(tempc->name); - Free(tempc); - tempc=tempc1; - } -} - -LTDirEntry *FMRebuildLtfDrive(I1 drive,Ltf *l,LTDirEntry **root,BoolU4 init) -{ - U8 f=0; - LtfEntry *ll; - LTDirEntry *tempm,*tempm1; - I1 *st; - - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),"+r"); - tempm=MAllocZ(sizeof(LTDirEntry)); - tempm->full_name=MSPrintF("%c:/",drive); - StrCpy(tempm->name,""); - st=MSPrintF("%c:/*",drive); - if (init) { - tempm1=FindFiles(st,f); - tempm->sub=tempm1; - } else - tempm1=NULL; - Free(st); - ll=LtfPrintF(l,"$$TR,\"%s\"$$",tempm->full_name); - ll->user_data=tempm; - tempm->next=*root; - *root=tempm; - LtfPutSExt(l,"\r\n$$ID,+2$$"); - LtfBottom(l); - if (init) { - LTDirEntryToFileLtf(l,tempm1); - while (tempm1) { - tempm1->parent=tempm; - tempm1=tempm1->next; - } - } - LtfPutSExt(l,"$$ID,-2$$"); - return tempm; -} - - -void FMRebuildLtf(Ltf **l_,LTDirEntry **root) -{ - LTPartition *p; - I8 i; - Ltf *l=*l_,*m,*b=sys_clipboard_ltf; - FMUncollapsedList *tempc=NULL; - I1 *cur_entry=NULL,*next_entry=NULL; - LtfEntry *cl; - LTDirEntry *tempm,*tempm1,*cur_tree_entry; - if (l) { - - cur_tree_entry=NULL; - cl=l->cur_entry; - if (cl->btype==LTFT_TREE) - cur_tree_entry=cl->user_data; - else if (cl->btype==LTFT_MENU_VALUE) - cur_tree_entry=cl->left_exp; - if (cur_tree_entry) - cur_entry=NewStr(cur_tree_entry->full_name); - - tempm=NULL; - if (cl!=l) - cl=cl->next; - while (cl!=l) { - if (cl->btype==LTFT_TREE) - tempm=cl->user_data; - else if (cl->btype==LTFT_MENU_VALUE) - tempm=cl->left_exp; - else - tempm=NULL; - if (tempm) { - tempm1=tempm->parent; - while (tempm1) { - if (tempm1==cur_tree_entry) { - tempm=NULL; - break; - } else - tempm1=tempm1->parent; - } - if (tempm) - break; - } - cl=cl->next; - } - if (tempm) - next_entry=NewStr(tempm->full_name); - - tempc=FMCollectUncollapsedList(l); - Fs->cur_ltf=NULL; - LtfDel(l); - } - if (*root) { - DelLTDirList(*root); - *root=NULL; - } - l=LtfNew; - l->flags|=LTFF_FORM; - m=LtfRead(FILEMANAGER_MENU_NAME); - m->text_attribute=(WHITE<<4)+LTBLUE; - l->menu_ltf=m; - for (i=0;i<32;i++) { - p=&local_partitions[i]; - if (p->type==PT_LT) - FMRebuildLtfDrive(p->drive,l,root,TRUE); - else if (p->type==PT_ISO9660) { - if (p->bdev->flags<BDF_INITIALIZED) - tempm=FMRebuildLtfDrive(p->drive,l,root,TRUE); - else { - tempm=FMRebuildLtfDrive(p->drive,l,root,FALSE); - tempm->flags|=LTDEF_NOT_INITIALIZED; - } - tempm->flags|=LTDEF_REMOVABLE; - } - } - LtfHome(l); - FMMarkUncollapsed(l,tempc,cur_entry,next_entry); - l->recalc_start=l; - LtfCenter(l); - LtfReset(b,TRUE); - FMDelUncollapsedList(tempc); - Free(cur_entry); - Free(next_entry); - *l_=l; - Fs->cur_ltf=l; -} - -void FMRename(Ltf *l) -{ - EditFileNameStruct fn; - LtfEntry *ll=l->cur_entry; - LTDirEntry *tempm=NULL,*parent; - if (ll->btype==LTFT_MENU_VALUE) { - tempm=ll->left_exp; - if (parent=tempm->parent) { - Cd(parent->full_name); - StrCpy(fn.name,tempm->name); - if (DoForm(fn.name,"EditFileNameStruct")) { - Silent(ON); - Move(tempm->name,fn.name); - Silent(OFF); - } - } - } else if (ll->btype==LTFT_TREE) { - tempm=ll->user_data; - if (parent=tempm->parent) { - Cd(parent->full_name); - StrCpy(fn.name,tempm->name); - if (DoForm(fn.name,"EditFileNameStruct")) { - if (StrCmp(tempm->name,fn.name)) { - Silent(ON); - CopyTree(tempm->name,fn.name); - DelTree(tempm->name); - Silent(OFF); - } - } - } - } -} - -void FMDelete(Ltf *l) -{ - LtfEntry *cl=l->cur_entry; - LTDirEntry *tempm; - if (cl->btype==LTFT_MENU_VALUE) { - tempm=cl->left_exp; - Silent(ON); - Del(tempm->full_name); - Silent(OFF); - } else if (cl->btype==LTFT_TREE) { - tempm=cl->user_data; - Silent(ON); - DelTree(tempm->full_name); - Silent(OFF); - } -} - -void FMMount(Ltf *l) -{ - LtfEntry *cl=l->cur_entry; - LTDirEntry *tempm; - if (cl->btype==LTFT_TREE) - tempm=cl->user_data; - else if (cl->btype==LTFT_MENU_VALUE) - tempm=cl->left_exp; - else - tempm=NULL; - if (tempm) { - while (tempm->parent) - tempm=tempm->parent; - Silent(ON); - ChangeDisk(*tempm->full_name); - Silent(OFF); - } -} - -void FMFormatDrive(Ltf *l) -{ - LtfEntry *cl=l->cur_entry; - LTDirEntry *tempm; - I1 *st=NULL; - if (cl->btype==LTFT_TREE) - tempm=cl->user_data; - else if (cl->btype==LTFT_MENU_VALUE) - tempm=cl->left_exp; - else - tempm=NULL; - if (tempm) { - while (tempm->parent) - tempm=tempm->parent; - st=MSPrintF("Format Drive '%c'?\r\nAre You Sure?\r\n",*tempm->full_name); - if (PopUpNoYes(st)) { - Silent(ON); - Format(*tempm->full_name,TRUE,FALSE); - Silent(OFF); - } - } - Free(st); -} - -void FMMakeISO(Ltf *l) -{ - LtfEntry *cl=l->cur_entry; - LTDirEntry *tempm; - if (cl->btype==LTFT_TREE) - tempm=cl->user_data; - else if (cl->btype==LTFT_MENU_VALUE) - tempm=cl->left_exp; - else - tempm=NULL; - if (tempm) { - while (tempm->parent) - tempm=tempm->parent; - Silent(ON); - CreateCDFile(NULL,*tempm->full_name); - Silent(OFF); - } -} - -void FMBurnISO(Ltf *l) -{ - LtfEntry *cl=l->cur_entry; - LTDirEntry *tempm; - if (cl->btype==LTFT_TREE) - tempm=cl->user_data; - else if (cl->btype==LTFT_MENU_VALUE) - tempm=cl->left_exp; - else - tempm=NULL; - if (tempm) { - while (tempm->parent) - tempm=tempm->parent; - Silent(ON); - WriteCDImage(*tempm->full_name,NULL); - Silent(OFF); - } -} - -void FMCopy(Ltf *l) -{ - Ltf *b=sys_clipboard_ltf; - I1 *st; - LtfEntry *cl=l->cur_entry,*ll=b->dummy.next; - LTDirEntry *tempm,*tempm1,*tempm2; - if (cl->btype==LTFT_TREE) { - tempm1=cl->user_data; - while (ll!=b) { - if (ll->btype==LTFT_MENU_VALUE) { - tempm=ll->left_exp; - tempm->flags|=LTDEF_PROCESSED; - tempm2=tempm->parent; - if (!tempm2 || !(tempm2->flags<DEF_PROCESSED)) { - Silent(ON); - Copy(tempm->full_name,tempm1->full_name); - Silent(OFF); - } - } else if (ll->btype==LTFT_TREE) { - tempm=ll->user_data; - tempm->flags|=LTDEF_PROCESSED; - tempm2=tempm->parent; - if (!tempm2 || !(tempm2->flags<DEF_PROCESSED)) { - Silent(ON); - if (*tempm1->name) - st=MSPrintF("%s/%s",tempm1->full_name,tempm->name); - else - st=MSPrintF("%s%s",tempm1->full_name,tempm->name); - CopyTree(tempm->full_name,st); - Free(st); - Silent(OFF); - } - } - ll=ll->next; - } - } -} - - -I8 PopUpCancelPasteDel(I1 *header=NULL,I1 *footer=NULL) -{ - I8 i; - Ltf *l=LtfNew; - if (header) LtfPutSExt(l,header); - LtfPutSExt(l,"$$CM+LX,2,4 $$$$BT, \"RENAME \",7$$"); - LtfPutSExt(l,"$$CM+LX,28,0$$$$BT, \"DELETE \",2$$"); - LtfPutSExt(l,"$$CM+LX,2,4 $$$$BT, \"PASTE CLIPBOARD FILES\",1$$"); - LtfPutSExt(l,"$$CM+LX,2,4 $$$$BT, \"CHANGE DISK(MOUNT IT)\",3$$"); - LtfPutSExt(l,"$$CM+LX,2,4 $$$$BT, \"ADD TEMP DRIVE \",4$$"); - LtfPutSExt(l,"$$CM+LX,28,0$$$$BT, \"FORMAT \",6$$"); - LtfPutSExt(l,"$$CM+LX,2,4 $$$$BT, \"MAKE ISO FILE \",8$$"); - LtfPutSExt(l,"$$CM+LX,28,0$$$$BT, \"BURN ISO FILE \",9$$"); - LtfPutSExt(l,"$$CM+LX,2,4 $$$$BT, \"HELP \",5$$"); - LtfPutSExt(l,"$$CM+LX,28,0$$$$BT, \"CANCEL \",0$$"); - if (footer) LtfPutSExt(l,footer); - i=PopUpMenu(l); - LtfDel(l); - return i; -} - -void FMRightClick() -{ - I8 i=PopUpCancelPasteDel; - if (i>0) { - switch (i) { - case 1: - Msg(MSG_KEY_DOWN,0,SC_INSERT+SCF_SHIFT); - break; - case 2: - Msg(MSG_KEY_DOWN,0x19,0); - break; - case 3: - Msg(MSG_KEY_DOWN,'m',0); - break; - case 4: - Msg(MSG_KEY_DOWN,'t',0); - break; - case 5: - Msg(MSG_KEY_DOWN,0,SC_GUI); - break; - case 6: - Msg(MSG_KEY_DOWN,'f',0); - break; - case 7: - Msg(MSG_KEY_DOWN,CH_CR,0); - break; - case 8: - Msg(MSG_KEY_DOWN,'M',0); - break; - case 9: - Msg(MSG_KEY_DOWN,'B',0); - break; - } - } -} - -public void FileManager() -{ - LTDirEntry *root=NULL,*tempm,*tempm1,*tempm2; - U8 sc,ch,p1,p2,cmd; - Ltf *l=NULL,*old_ltf=Fs->cur_ltf; - void *old_update=Fs->update_win; - BoolU4 old_preempt=Preempt(OFF); - I1 *st,*old_cur_dir=NewStr(Fs->cur_dir); - LTPartition *old_p=Fs->cur_partition; - LtfEntry *cl=NULL,*ll; - BoolU4 okay; - - FMRebuildLtf(&l,&root); - Fs->update_win=&LtfUpdateBothLtf; - do { - Preempt(OFF); - if (cmd=ScanMsg(&p1,&p2, - 1<cur_entry; - break; - case MSG_IP_L_UP: - if (cl) { - if (cl->btype==LTFT_MENU_VALUE) { - tempm=cl->left_exp; - if (SetCursorPosition(Fs,p1/FONT_WIDTH+Fs->win_left,p2/FONT_HEIGHT+Fs->win_top,TRUE)) { - ll=l->cur_entry; - if (ll->btype==LTFT_TREE) { - tempm1=ll->user_data; - Silent(ON); - Move(tempm->full_name,tempm1->full_name); - Silent(OFF); - PutKey(CH_SPACE,0); //toggle collapse again - FMRebuildLtf(&l,&root); - } - } - } else if (cl->btype==LTFT_TREE) { - tempm=cl->user_data; - if (SetCursorPosition(Fs,p1/FONT_WIDTH+Fs->win_left,p2/FONT_HEIGHT+Fs->win_top,TRUE)) { - ll=l->cur_entry; - if (ll->btype==LTFT_TREE) { - tempm1=ll->user_data; - okay=TRUE; - tempm2=tempm1; - while (tempm2) { - if (tempm2!=tempm) - tempm2=tempm2->parent; - else { - okay=FALSE; - break; - } - } - if (okay) { - if (*tempm1->name) - st=MSPrintF("%s/%s",tempm1->full_name,tempm->name); - else - st=MSPrintF("%s%s",tempm1->full_name,tempm->name); - if (StrCmp(tempm->full_name,st)) { - Silent(ON); - CopyTree(tempm->full_name,st); - DelTree(tempm->full_name); - Silent(OFF); - PutKey(CH_SPACE,0); //toggle collapse again - FMRebuildLtf(&l,&root); - } - Free(st); - } - } - } - } - cl=NULL; - } - break; - case MSG_KEY_DOWN: - ch=p1; sc=p2; - if (ch==CH_CR) { - FMRename(l); - FMRebuildLtf(&l,&root); - } else if (ch==0x19 || //ctrl-y - (sc.u1[0]==SC_DELETE && !(sc&(SCF_SHIFT|SCF_CTRL)))) { - FMDelete(l); - FMRebuildLtf(&l,&root); - } else if (ch=='m') { - FMMount(l); - FMRebuildLtf(&l,&root); - } else if (ch=='M') { - FMMakeISO(l); - FMRebuildLtf(&l,&root); - } else if (ch=='B') { - FMBurnISO(l); - FMRebuildLtf(&l,&root); - } else if (ch=='t') { - FMAddTempDrive; - FMRebuildLtf(&l,&root); - } else if (ch=='f') { - FMFormatDrive(l); - FMRebuildLtf(&l,&root); - } else if (sc.u1[0]==SC_INSERT && sc&SCF_SHIFT && !(sc&SCF_CTRL)) { - FMCopy(l); - FMRebuildLtf(&l,&root); - } else if (ch!=0x14 && ch!=CH_ESC && ch!=CH_CTRLQ) {//ctrl T not allowed - if (ch!=CH_SPACE || l->cur_entry->btype!=LTFT_MENU_VALUE) { - Preempt(old_preempt); - PutKey(ch,sc); - Preempt(OFF); - LtfRecalc(Fs->cur_ltf); - } - } - break; - } - } else { - Fs->task_flags|=1<task_flags&=~(1<cur_ltf=old_ltf; - Fs->update_win=old_update; - Preempt(old_preempt); - LtfDel(l); - DelLTDirList(root); - Drive(old_p->drive); - Cd(old_cur_dir); - Free(old_cur_dir); -} -#help_index "" diff --git a/LT/Adam/Gr/Gr.APZ b/LT/Adam/Gr/Gr.APZ deleted file mode 100644 index ac9a166..0000000 --- a/LT/Adam/Gr/Gr.APZ +++ /dev/null @@ -1,13 +0,0 @@ -#help_index "Graphics" - -extern GrBitMap *GrAlias(GrBitMap *base,TssStruct *tss); -extern void GrDel(GrBitMap *base); - -#include "GrMath" -#include "GrScreen" -#include "GrBitMap" -#include "GrPlot" -#include "GrChar" -#include "GrElem" - -#help_index "" diff --git a/LT/Adam/Gr/GrBitMap.APZ b/LT/Adam/Gr/GrBitMap.APZ deleted file mode 100644 index 92c241c..0000000 --- a/LT/Adam/Gr/GrBitMap.APZ +++ /dev/null @@ -1,1465 +0,0 @@ -#help_index "Graphics/Bitmaps" -public void GrReset(GrBitMap *base) -{ - base->color=BLACK; - base->color2=BLACK; - base->bkcolor=BLACK; - base->pen_width=1; -} - -public GrBitMap *GrAlias(GrBitMap *base,TssStruct *tss) -{ - GrBitMap *result=MAlloc(sizeof(GrBitMap),tss); - if (base->bitmap_signature!=BMS_SIGNATURE) - Debugger; - MemCpy(result,base,sizeof(GrBitMap)); - result->win_tss=tss; - result->mem_tss=tss; - result->r=MAlloc(16<<3,tss); - GrSetIdent(result->r); - GrReset(result); - result->flags|=BMF_ALIAS; - return result; -} - - -public void GrDel(GrBitMap *base) -{ - if (base->bitmap_signature!=BMS_SIGNATURE) - Debugger; - base->bitmap_signature=0; - Free(base->r,base->mem_tss); - if (!(base->flags & BMF_ALIAS)) - Free(base->body,base->mem_tss); - Free(base,base->mem_tss); -} - -#help_index "Graphics" - -public void GrPlot0(GrBitMap *base,I8 x,I8 y) -{ //No clipping or transformation or pen width - U8 d,c,c2; - U1 *dst,bit,not_bit; - U8 color=base->color,bkcolor=base->bkcolor; - double dist; - - if (base->flags & BMF_LOCATE_NEAREST) { - dist=DistI8(x,y,base->cur_x,base->cur_y); - if (dist<=base->nearest_dist) { - base->nearest_sub_grelem=base->cur_sub_grelem; - base->nearest_dist=dist; - } - } - if (base->flags & BMF_DONT_DRAW) - return; - switch (base->type) { - case BMT_COLOR4: - d=base->plane_size; - dst=base->body+(base->left_margin+x+ - (y+base->top_margin)*base->internal_width)>>3; - bit=1<<(x&7); - not_bit=~bit; - c=color.u1[0]; - switch (color.u1[3]) { - case ROPB_EQU: - case ROPB_TRANSPARENT: - if (c & 1) - *dst|=bit; - else - *dst&=not_bit; - dst+=d; - if (c & 2) - *dst|=bit; - else - *dst&=not_bit; - dst+=d; - if (c & 4) - *dst|=bit; - else - *dst&=not_bit; - dst+=d; - if (c & 8) - *dst|=bit; - else - *dst&=not_bit; - break; - case ROPB_COLLISION: - c2=0; - if (*dst&bit) - c2+=1; - dst+=d; - if (*dst&bit) - c2+=2; - dst+=d; - if (*dst&bit) - c2+=4; - dst+=d; - if (*dst&bit) - c2+=8; - if (c2!=bkcolor.u1[0]) - base->collision_cnt++; - break; - case ROPB_XOR: - if (c & 1) *dst^=bit; - dst+=d; - if (c & 2) *dst^=bit; - dst+=d; - if (c & 4) *dst^=bit; - dst+=d; - if (c & 8) *dst^=bit; - break; - case ROPB_OR: - if (c & 1) *dst|=bit; - dst+=d; - if (c & 2) *dst|=bit; - dst+=d; - if (c & 4) *dst|=bit; - dst+=d; - if (c & 8) *dst|=bit; - break; - case ROPB_NAND: - if (c & 1) *dst&=not_bit; - dst+=d; - if (c & 2) *dst&=not_bit; - dst+=d; - if (c & 4) *dst&=not_bit; - dst+=d; - if (c & 8) *dst&=not_bit; - break; - } - break; - case BMT_MONO: - d=base->internal_width*(y+base->top_margin)+ - x+base->left_margin; - c=color&0xFFFFFF; - switch (color.u1[3]) { - case ROPB_EQU: - case ROPB_TRANSPARENT: - AssignBit(base->body,d,c); - break; - case ROPB_COLLISION: - if (c) { - if (bkcolor&0xFFFFFF) - base->collision_cnt+=Bt(base->body,d); - else - base->collision_cnt+=!Bt(base->body,d); - } else { - if (bkcolor&0xFFFFFF) - base->collision_cnt+=!Bt(base->body,d); - else - base->collision_cnt+=Bt(base->body,d); - } - break; - case ROPB_XOR: - if (c) - Btc(base->body,d); - break; - case ROPB_OR: - if (c) - Bts(base->body,d); - break; - case ROPB_NAND: - if (c) - Btr(base->body,d); - break; - } - break; - } -} - -public I8 GrPeek0(GrBitMap *base,I8 x,I8 y) -{ //No clipping or transformation - U8 d,c; - U1 *dst,bit; - - switch (base->type) { - case BMT_COLOR4: - d=base->plane_size; - dst=base->body+(base->left_margin+x+ - (y+base->top_margin)*base->internal_width)>>3; - bit=1<<(x&7); - - c=0; - if (*dst & bit) - c|=1; - dst+=d; - if (*dst & bit) - c|=2; - dst+=d; - if (*dst & bit) - c|=4; - dst+=d; - if (*dst & bit) - c|=8; - - return c; - case BMT_MONO: - d=base->internal_width*(y+base->top_margin)+ - x+base->left_margin; - return Bt(base->body,d); - } -} - -#help_index "Graphics;Graphics/Bitmaps" - -public BoolU4 GrBlot(GrBitMap *base,I8 x,I8 y,GrBitMap *img) -{ //Clipping but not transformation - I8 reg i,i1,i2,i3,j,k,k1,kk,kk1,w1,h1,w2,h2,plane,plane1,reg bit_mask,reg bit_shift,p,dist; - U1 reg *ptr; - U2 reg *ptr1; - I8 color,color2,reg color_byte,c,plane_size,plane_size1,plane_limit,plane_limit1; - BoolU4 draw=TRUE,color_bit; - - w1= (x<0)?-x:0; - h1= (y<0)?-y:0; - w2=img->width; - h2=img->height; - - if (base->flags & BMF_SCREEN_BITMAP) { - x+=base->win_tss->win_pixel_left; - y+=base->win_tss->win_pixel_top; - } - if (base->flags & BMF_LOCATE_NEAREST) { //TODO:Untested - dist=DistI8(x+img->width>>1,y+img->height>>1,base->cur_x,base->cur_y); - if (dist<=base->nearest_dist) { - base->nearest_sub_grelem=base->cur_sub_grelem; - base->nearest_dist=dist; - } - } - if (base->flags & BMF_SCREEN_BITMAP) { - if (x+w1<0) w1=-x; - if (x+w2>base->win_tss->win_pixel_right) - w2=base->win_tss->win_pixel_right-x; - - if (y+h1<0) h1=-y; - if (y+h2>base->win_tss->win_pixel_bottom) - h2=base->win_tss->win_pixel_bottom-y; - - if (IsPixelCovered(base->win_tss,x+w1,y+h1)) - draw=FALSE; - else if (IsPixelCovered(base->win_tss,x+w2,y+h2)) - draw=FALSE; - x+=base->left_margin; - y+=base->top_margin; - } - if (x+w2>base->width) - w2=base->width-x; - if (y+h2>base->height) - h2=base->height-y; - if (draw && w1width && h2<=img->height) { - if (base->flags & BMF_DONT_DRAW) - return TRUE; - color=base->color; - p=0; - plane_size=img->plane_size<<3; - plane_size1=base->plane_size<<3; - switch (base->type) { - case BMT_COLOR4: - plane_limit=plane_size*4; - plane_limit1=plane_size1*4; - break; - case BMT_MONO: - plane_limit=plane_size; - plane_limit1=plane_size1; - break; - } - i1=(-w1)&7; - if (i1>w2) i1=w2; - i2=(w2-w1-i1)>>3; - i3=w2-w1-i2<<3-i1; - bit_shift=x&7; - bit_mask=-1-255<bkcolor&0xFFFFFF; - color2=img->bkcolor &0xFFFFFF; - switch (img->type) { - case BMT_COLOR4: - k=h1*img->internal_width; - k1=(h1+y)*base->internal_width+x; - for (j=h1;jbody,k1+i+plane1)) - c+=p; - if (c!=color) { - c=0; - for (plane=0,p=1;planebody,k+i+plane)) - c+=p; - if (c!=color2) - base->collision_cnt++; - } - } - k+=img->internal_width; - k1+=base->internal_width; - } - break; - case BMT_MONO: - k=h1*img->internal_width; - k1=(h1+y)*base->internal_width+x; - for (j=h1;jbody,k1+i+plane1)) - c+=p; - if (c!=color) { - if (Bt(img->body,k+i)!=color2) - base->collision_cnt++; - } - } - k+=img->internal_width; - k1+=base->internal_width; - } - break; - } - } else if (color.u1[3]==ROPB_TRANSPARENT && img->type==BMT_COLOR4) { - color2=img->bkcolor &0xFFFFFF; - k=h1*img->internal_width; - for (j=h1;jbody,k+i+plane)) - c+=p; - if (c!=color2) { - base->color=c; - GrPlot0(base,x+i-base->left_margin,y+j-base->top_margin); - } - } - k+=img->internal_width; - } - base->color=color; - } else - for (plane=0,plane1=0;planeinternal_width+w1; - kk1=(h1+y)*base->internal_width+x+w1; - for (j=h1;jtype) { - case BMT_COLOR4: - k=kk+plane; - k1=kk1+plane1; - ptr=img->body; - ptr1=base->body; - switch (color.u1[3]) { - case ROPB_EQU: - for (i=0;i>3; - ptr1+=k1>>3; - switch (color.u1[3]) { - case ROPB_EQU: - for (i=0;ibody; - ptr1=base->body; - k+=i2<<3; - k1+=i2<<3; - switch (color.u1[3]) { - case ROPB_EQU: - for (i=0;ibody; - ptr1=base->body; - switch (color.u1[3]) { - case ROPB_EQU: - for (i=0;i>3; - ptr1+=k1>>3; - switch (color.u1[3]) { - case ROPB_EQU: - for (i=0;ibody; - ptr1=base->body; - k+=i2<<3; - k1+=i2<<3; - switch (color.u1[3]) { - case ROPB_EQU: - for (i=0;iinternal_width; - kk1+=base->internal_width; - } - } - return TRUE; - } - return FALSE; -} - -#help_index "Graphics" - -public BoolU4 GrText(GrBitMap *base,I8 x,I8 y,U1 *s) -{ //Clipping but not transformation - I8 len=StrLen(s),ch,reg i,i1,i2,i3,j,k1,kk1,w1,h1,w2,h2,plane1,reg bit_mask,reg bit_shift,p,dist,l,l1; - U1 reg *ptr,*font_ptr,*s1; - U2 reg *ptr1,*ptr2; - I8 color,reg color_byte,c,plane_size1,plane_limit1; - BoolU4 draw=TRUE,color_bit; - - w1= (x<0)?-x:0; - h1= (y<0)?-y:0; - w2=len*FONT_WIDTH; - h2=FONT_HEIGHT; - - if (base->flags & BMF_SCREEN_BITMAP) { - x+=base->win_tss->win_pixel_left; - y+=base->win_tss->win_pixel_top; - } - if (base->flags & BMF_LOCATE_NEAREST) { //TODO:Untested - dist=DistI8(x+w2>>1,y+h2>>1,base->cur_x,base->cur_y); - if (dist<=base->nearest_dist) { - base->nearest_sub_grelem=base->cur_sub_grelem; - base->nearest_dist=dist; - } - } - if (base->flags & BMF_SCREEN_BITMAP) { - if (x+w1<0) w1=-x; - if (x+w2>base->win_tss->win_pixel_right) - w2=base->win_tss->win_pixel_right-x; - - if (y+h1<0) h1=-y; - if (y+h2>base->win_tss->win_pixel_bottom) - h2=base->win_tss->win_pixel_bottom-y; - - if (IsPixelCovered(base->win_tss,x+w1,y+h1)) - draw=FALSE; - else if (IsPixelCovered(base->win_tss,x+w2,y+h2)) - draw=FALSE; - x+=base->left_margin; - y+=base->top_margin; - } - if (x+w2>base->width) - w2=base->width-x; - if (y+h2>base->height) - h2=base->height-y; - if (draw && w1flags & BMF_DONT_DRAW) - return TRUE; - color=base->color; - p=0; - plane_size1=base->plane_size<<3; - switch (base->type) { - case BMT_COLOR4: - plane_limit1=plane_size1*4; - break; - case BMT_MONO: - plane_limit1=plane_size1; - break; - } - i1=(-w1)&7; - if (i1>w2) i1=w2; - i2=(w2-w1-i1)>>3; - i3=w2-w1-i2<<3-i1; - bit_shift=x&7; - bit_mask=-1-255<bkcolor&0xFFFFFF; - ch=*s++; - font_ptr=&grfont[(FONT_WIDTH*(FONT_HEIGHT*ch+h1))>>3]; - for (i=w1;iinternal_width+x; - ptr=font_ptr; - for (j=h1;jbody,k1+i+plane1)) - c+=p; - if (c!=color) { - if (Bt(ptr,l)) - base->collision_cnt++; - } - k1+=base->internal_width; - ptr++; - } - if (++l==FONT_WIDTH) { - ch=*s++; - font_ptr=&grfont[(FONT_WIDTH*(FONT_HEIGHT*ch+h1))>>3]; - l=0; - } - } - } else { - for (plane1=0;plane1body+plane1>>3; - kk1=(h1+y)*base->internal_width+x+w1; - ch=*s1++; - font_ptr=&grfont[(FONT_WIDTH*(FONT_HEIGHT*ch+h1))>>3]; - for (i=0;iinternal_width; - } - break; - case ROPB_XOR: - if (color_bit) - for (j=h1;jinternal_width; - } - break; - case ROPB_OR: - if (color_bit) - for (j=h1;jinternal_width; - } - break; - case ROPB_NAND: - if (color_bit) - for (j=h1;jinternal_width; - } - break; - } - if (++l1==FONT_WIDTH) { - ch=*s1++; - font_ptr=&grfont[(FONT_WIDTH*(FONT_HEIGHT*ch+h1))>>3]; - l1=0; - } - } - kk1+=i1; - ptr2+=kk1>>3; - for (i=0;iinternal_width>>3; - } - break; - case ROPB_XOR: - if (color_bit) - for (j=h1;jinternal_width>>3; - } - break; - case ROPB_OR: - if (color_bit) - for (j=h1;jinternal_width>>3; - } - break; - case ROPB_NAND: - if (color_bit) - for (j=h1;jinternal_width>>3; - } - break; - } - ptr2++; - ch=*s1++; - font_ptr=&grfont[(FONT_WIDTH*(FONT_HEIGHT*ch+h1))>>3]; - } - kk1+=i2<<3; - ptr1=base->body+plane1>>3; - for (i=0;iinternal_width; - } - break; - case ROPB_XOR: - if (color_bit) - for (j=h1;jinternal_width; - } - break; - case ROPB_OR: - if (color_bit) - for (j=h1;jinternal_width; - } - break; - case ROPB_NAND: - if (color_bit) - for (j=h1;jinternal_width; - } - break; - } - if (++l1==FONT_WIDTH) { - ch=*s1++; - font_ptr=&grfont[(FONT_WIDTH*(FONT_HEIGHT*ch+h1))>>3]; - l1=0; - } - } - } - } - return TRUE; - } - return FALSE; -} - - -public BoolU4 GrBox(GrBitMap *base,I8 x,I8 y,I8 w,I8 h) -{ //Clipping but not transformation - I8 i,i1,i2,i3,j,k1,kk1,w1,h1,w2,h2,plane1,bit_mask,bit_shift,p,dist; - U2 *ptr1; - I8 color,color_byte,c,plane_size1,plane_limit1; - BoolU4 draw=TRUE,color_bit; - - w1= (x<0)?-x:0; - h1= (y<0)?-y:0; - w2=w; - h2=h; - - if (base->flags & BMF_SCREEN_BITMAP) { - x+=base->win_tss->win_pixel_left; - y+=base->win_tss->win_pixel_top; - } - if (base->flags & BMF_LOCATE_NEAREST) { //TODO:Untested - if (base->cur_x>=x && base->cur_y>=y && - base->cur_x<=x+w && base->cur_y<=y+h) { - base->nearest_sub_grelem=base->cur_sub_grelem; - base->nearest_dist=0; - } else { - dist=DistI8(x+w>>1,y+h>>1,base->cur_x,base->cur_y); - if (dist<=base->nearest_dist) { - base->nearest_sub_grelem=base->cur_sub_grelem; - base->nearest_dist=dist; - } - } - } - - if (base->flags & BMF_SCREEN_BITMAP) { - if (x+w1<0) w1=-x; - if (x+w2>base->win_tss->win_pixel_right) - w2=base->win_tss->win_pixel_right-x; - - if (y+h1<0) h1=-y; - if (y+h2>base->win_tss->win_pixel_bottom) - h2=base->win_tss->win_pixel_bottom-y; - - if (IsPixelCovered(base->win_tss,x+w1,y+h1)) - draw=FALSE; - else if (IsPixelCovered(base->win_tss,x+w2,y+h2)) - draw=FALSE; - x+=base->left_margin; - y+=base->top_margin; - } - if (x+w2>base->width) - w2=base->width-x; - if (y+h2>base->height) - h2=base->height-y; - if (draw && w1flags & BMF_DONT_DRAW) - return TRUE; - color=base->color; - p=0; - plane_size1=base->plane_size<<3; - switch (base->type) { - case BMT_COLOR4: - plane_limit1=plane_size1*4; - break; - case BMT_MONO: - plane_limit1=plane_size1; - break; - } - i1=(-w1)&7; - if (i1>w2) i1=w2; - i2=(w2-w1-i1)>>3; - i3=w2-w1-i2<<3-i1; - bit_shift=x&7; - bit_mask=-1-255<bkcolor&0xFFFFFF; - k1=(h1+y)*base->internal_width+x; - for (j=h1;jbody,k1+i+plane1)) - c+=p; - if (c!=color) - base->collision_cnt++; - } - k1+=base->internal_width; - } - } else - for (plane1=0;plane1internal_width+x+w1+plane1; - for (j=h1;jbody,k1++,color_byte); - break; - case ROPB_XOR: - for (i=0;ibody,k1++); - break; - case ROPB_OR: - for (i=0;ibody,k1++); - break; - case ROPB_NAND: - for (i=0;ibody,k1++); - break; - } - ptr1=k1>>3+base->body; - switch (color.u1[3]) { - case ROPB_EQU: - case ROPB_TRANSPARENT: - for (i=0;ibody,k1++,color_byte); - break; - case ROPB_XOR: - for (i=0;ibody,k1++); - break; - case ROPB_OR: - for (i=0;ibody,k1++); - break; - case ROPB_NAND: - for (i=0;ibody,k1++); - break; - } - kk1+=base->internal_width; - } - } - return TRUE; - } - return FALSE; -} - - -I8 GrRayLenMinus(GrBitMap *base,I8 x,I8 y) -{ - I8 cnt=0,c,x3=x,y3=y,d; - U1 *dst,bit,*dst2; - BoolU4 peek=TRUE, - not_color=(base->flags&BMF_FILL_NOT_COLOR)?TRUE:FALSE; - - if (base->flags & BMF_SCREEN_BITMAP) { - if (x3<0) peek=FALSE; - x3+=base->win_tss->win_pixel_left; - if (x3>base->win_tss->win_pixel_right) peek=FALSE; - - if (y3<0) peek=FALSE; - y3+=base->win_tss->win_pixel_top; - if (y3>base->win_tss->win_pixel_bottom) peek=FALSE; - if (x3>=base->width) peek=FALSE; - if (y3>=base->height) peek=FALSE; - if (IsPixelCovered(base->win_tss,x3,y3)) peek=FALSE; - } else { - if (x3<0) peek=FALSE; - if (x3>=base->width) peek=FALSE; - if (y3<0) peek=FALSE; - if (y3>=base->height) peek=FALSE; - } - if (!peek) - return 0; - - switch (base->type) { - case BMT_COLOR4: - dst2=base->body+(base->left_margin+ - (y3+base->top_margin)*base->internal_width)>>3; - d=base->plane_size; - while (TRUE) { - x3=x; - if (base->flags & BMF_SCREEN_BITMAP) { - if (x3<0) break; - x3+=base->win_tss->win_pixel_left; - if (x3>base->win_tss->win_pixel_right) break; - if (x3>=base->width) break; - if (IsPixelCovered(base->win_tss,x3,y3)) break; - } else { - if (x3<0) break; - if (x3>=base->width) break; - } - - dst=dst2+x3>>3; - bit=1<<(x3&7); - c=0; - if (*dst & bit) - c|=1; - dst+=d; - if (*dst & bit) - c|=2; - dst+=d; - if (*dst & bit) - c|=4; - dst+=d; - if (*dst & bit) - c|=8; - - if (not_color) { - if (c!=base->color2) { - cnt++; - x--; - } else - break; - } else { - if (c==base->color2) { - cnt++; - x--; - } else - break; - } - } - return cnt; - case BMT_MONO: - d=base->internal_width*(y3+base->top_margin)+ - base->left_margin; - while (TRUE) { - x3=x; - if (base->flags & BMF_SCREEN_BITMAP) { - if (x3<0) break; - x3+=base->win_tss->win_pixel_left; - if (x3>base->win_tss->win_pixel_right) break; - if (x3>=base->width) break; - if (IsPixelCovered(base->win_tss,x3,y3)) break; - } else { - if (x3<0) break; - if (x3>=base->width) break; - } - if (not_color) { - if (Bt(base->body,d+x3)!=base->color2) { - cnt++; - x--; - } else - break; - } else { - if (Bt(base->body,d+x3)==base->color2) { - cnt++; - x--; - } else - break; - } - } - return cnt; - } -} - -I8 GrRayLen(GrBitMap *base,I8 *x1,I8 y) -{ - I8 cnt=0,d,c,c2,x=*x1,x2=x,x3=x,y3=y; - BoolU4 peek=TRUE, - not_color=(base->flags&BMF_FILL_NOT_COLOR)?TRUE:FALSE; - U1 *dst,bit,not_bit,*dst2; - U8 color=base->color,bkcolor=base->bkcolor; - double dist; - - if (base->flags & BMF_SCREEN_BITMAP) { - if (x3<0) peek=FALSE; - x3+=base->win_tss->win_pixel_left; - if (x3>base->win_tss->win_pixel_right) peek=FALSE; - - if (y3<0) peek=FALSE; - y3+=base->win_tss->win_pixel_top; - if (y3>base->win_tss->win_pixel_bottom) peek=FALSE; - if (x3>=base->width) peek=FALSE; - if (y3>=base->height) peek=FALSE; - if (IsPixelCovered(base->win_tss,x3,y3)) peek=FALSE; - } else { - if (x3<0) peek=FALSE; - if (x3>=base->width) peek=FALSE; - if (y3<0) peek=FALSE; - if (y3>=base->height) peek=FALSE; - } - if (!peek) - return 0; - - switch (base->type) { - case BMT_COLOR4: - dst2=base->body+(base->left_margin+ - (y3+base->top_margin)*base->internal_width)>>3; - d=base->plane_size; - while (TRUE) { - x3=x; - if (base->flags & BMF_SCREEN_BITMAP) { - if (x3<0) break; - x3+=base->win_tss->win_pixel_left; - if (x3>base->win_tss->win_pixel_right) break; - if (x3>=base->width) break; - if (IsPixelCovered(base->win_tss,x3,y3)) break; - } else { - if (x3<0) break; - if (x3>=base->width) break; - } - - dst=dst2+x3>>3; - bit=1<<(x3&7); - not_bit=~bit; - - c=0; - if (*dst & bit) - c|=1; - dst+=d; - if (*dst & bit) - c|=2; - dst+=d; - if (*dst & bit) - c|=4; - dst+=d; - if (*dst & bit) - c|=8; - - if (not_color && c!=base->color2 || - !not_color && c==base->color2) { - if (base->flags & BMF_LOCATE_NEAREST) { - dist=DistI8(x3,y3,base->cur_x,base->cur_y); - if (dist<=base->nearest_dist) { - base->nearest_sub_grelem=base->cur_sub_grelem; - base->nearest_dist=dist; - } - } - dst=dst2+x3>>3; - - c=color.u1[0]; - switch (color.u1[3]) { - case ROPB_EQU: - case ROPB_TRANSPARENT: - if (c & 1) - *dst|=bit; - else - *dst&=not_bit; - dst+=d; - if (c & 2) - *dst|=bit; - else - *dst&=not_bit; - dst+=d; - if (c & 4) - *dst|=bit; - else - *dst&=not_bit; - dst+=d; - if (c & 8) - *dst|=bit; - else - *dst&=not_bit; - break; - case ROPB_COLLISION: - c2=0; - if (*dst&bit) - c2+=1; - dst+=d; - if (*dst&bit) - c2+=2; - dst+=d; - if (*dst&bit) - c2+=4; - dst+=d; - if (*dst&bit) - c2+=8; - if (c2!=bkcolor.u1[0]) - base->collision_cnt++; - break; - case ROPB_XOR: - if (c & 1) *dst^=bit; - dst+=d; - if (c & 2) *dst^=bit; - dst+=d; - if (c & 4) *dst^=bit; - dst+=d; - if (c & 8) *dst^=bit; - break; - case ROPB_OR: - if (c & 1) *dst|=bit; - dst+=d; - if (c & 2) *dst|=bit; - dst+=d; - if (c & 4) *dst|=bit; - dst+=d; - if (c & 8) *dst|=bit; - break; - case ROPB_NAND: - if (c & 1) *dst&=not_bit; - dst+=d; - if (c & 2) *dst&=not_bit; - dst+=d; - if (c & 4) *dst&=not_bit; - dst+=d; - if (c & 8) *dst&=not_bit; - break; - } - cnt++; - x++; - } else - break; - } - *x1=x-1; - x=x2-1; - while (TRUE) { - x3=x; - if (base->flags & BMF_SCREEN_BITMAP) { - if (x3<0) break; - x3+=base->win_tss->win_pixel_left; - if (x3>base->win_tss->win_pixel_right) break; - if (x3>=base->width) break; - if (IsPixelCovered(base->win_tss,x3,y3)) break; - } else { - if (x3<0) break; - if (x3>=base->width) break; - } - - dst=dst2+x3>>3; - bit=1<<(x3&7); - not_bit=~bit; - - c=0; - if (*dst & bit) - c|=1; - dst+=d; - if (*dst & bit) - c|=2; - dst+=d; - if (*dst & bit) - c|=4; - dst+=d; - if (*dst & bit) - c|=8; - - if (not_color && c!=base->color2 || - !not_color && c==base->color2) { - if (base->flags & BMF_LOCATE_NEAREST) { - dist=DistI8(x3,y3,base->cur_x,base->cur_y); - if (dist<=base->nearest_dist) { - base->nearest_sub_grelem=base->cur_sub_grelem; - base->nearest_dist=dist; - } - } - dst=dst2+x3>>3; - - c=color.u1[0]; - switch (color.u1[3]) { - case ROPB_EQU: - case ROPB_TRANSPARENT: - if (c & 1) - *dst|=bit; - else - *dst&=not_bit; - dst+=d; - if (c & 2) - *dst|=bit; - else - *dst&=not_bit; - dst+=d; - if (c & 4) - *dst|=bit; - else - *dst&=not_bit; - dst+=d; - if (c & 8) - *dst|=bit; - else - *dst&=not_bit; - break; - case ROPB_COLLISION: - c2=0; - if (*dst&bit) - c2+=1; - dst+=d; - if (*dst&bit) - c2+=2; - dst+=d; - if (*dst&bit) - c2+=4; - dst+=d; - if (*dst&bit) - c2+=8; - if (c2!=bkcolor.u1[0]) - base->collision_cnt++; - break; - case ROPB_XOR: - if (c & 1) *dst^=bit; - dst+=d; - if (c & 2) *dst^=bit; - dst+=d; - if (c & 4) *dst^=bit; - dst+=d; - if (c & 8) *dst^=bit; - break; - case ROPB_OR: - if (c & 1) *dst|=bit; - dst+=d; - if (c & 2) *dst|=bit; - dst+=d; - if (c & 4) *dst|=bit; - dst+=d; - if (c & 8) *dst|=bit; - break; - case ROPB_NAND: - if (c & 1) *dst&=not_bit; - dst+=d; - if (c & 2) *dst&=not_bit; - dst+=d; - if (c & 4) *dst&=not_bit; - dst+=d; - if (c & 8) *dst&=not_bit; - break; - } - cnt++; - x--; - } else - break; - } - return cnt; - case BMT_MONO: - d=base->internal_width*(y3+base->top_margin)+ - base->left_margin; - while (TRUE) { - x3=x; - if (base->flags & BMF_SCREEN_BITMAP) { - if (x3<0) break; - x3+=base->win_tss->win_pixel_left; - if (x3>base->win_tss->win_pixel_right) break; - if (x3>=base->width) break; - if (IsPixelCovered(base->win_tss,x3,y3)) break; - } else { - if (x3<0) break; - if (x3>=base->width) break; - } - - c=Bt(base->body,d+x3); - if (not_color && c!=base->color2 || - !not_color && c==base->color2) { - if (base->flags & BMF_LOCATE_NEAREST) { - dist=DistI8(x3,y3,base->cur_x,base->cur_y); - if (dist<=base->nearest_dist) { - base->nearest_sub_grelem=base->cur_sub_grelem; - base->nearest_dist=dist; - } - } - c=color&0xFFFFFF; - switch (color.u1[3]) { - case ROPB_EQU: - case ROPB_TRANSPARENT: - AssignBit(base->body,d+x3,c); - break; - case ROPB_COLLISION: - if (c) { - if (bkcolor&0xFFFFFF) - base->collision_cnt+=Bt(base->body,d+x3); - else - base->collision_cnt+=!Bt(base->body,d+x3); - } else { - if (bkcolor&0xFFFFFF) - base->collision_cnt+=!Bt(base->body,d+x3); - else - base->collision_cnt+=Bt(base->body,d+x3); - } - break; - case ROPB_XOR: - if (c) - Btc(base->body,d+x3); - break; - case ROPB_OR: - if (c) - Bts(base->body,d+x3); - break; - case ROPB_NAND: - if (c) - Btr(base->body,d+x3); - break; - } - cnt++; - x++; - } else - break; - } - *x1=x-1; - x=x2-1; - while (TRUE) { - x3=x; - if (base->flags & BMF_SCREEN_BITMAP) { - if (x3<0) break; - x3+=base->win_tss->win_pixel_left; - if (x3>base->win_tss->win_pixel_right) break; - if (x3>=base->width) break; - if (IsPixelCovered(base->win_tss,x3,y3)) break; - } else { - if (x3<0) break; - if (x3>=base->width) break; - } - - c=Bt(base->body,d+x3); - if (not_color && c!=base->color2 || - !not_color && c==base->color2) { - if (base->flags & BMF_LOCATE_NEAREST) { - dist=DistI8(x3,y3,base->cur_x,base->cur_y); - if (dist<=base->nearest_dist) { - base->nearest_sub_grelem=base->cur_sub_grelem; - base->nearest_dist=dist; - } - } - c=color&0xFFFFFF; - switch (color.u1[3]) { - case ROPB_EQU: - case ROPB_TRANSPARENT: - AssignBit(base->body,d+x3,c); - break; - case ROPB_COLLISION: - if (c) { - if (bkcolor&0xFFFFFF) - base->collision_cnt+=Bt(base->body,d+x3); - else - base->collision_cnt+=!Bt(base->body,d+x3); - } else { - if (bkcolor&0xFFFFFF) - base->collision_cnt+=!Bt(base->body,d+x3); - else - base->collision_cnt+=Bt(base->body,d+x3); - } - break; - case ROPB_XOR: - if (c) - Btc(base->body,d+x3); - break; - case ROPB_OR: - if (c) - Bts(base->body,d+x3); - break; - case ROPB_NAND: - if (c) - Btr(base->body,d+x3); - break; - } - cnt++; - x--; - } else - break; - } - return cnt; - } -} - \ No newline at end of file diff --git a/LT/Adam/Gr/GrChar.APZ b/LT/Adam/Gr/GrChar.APZ deleted file mode 100644 index c71faa4c3388586a60a6d622a27d2433694137b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1697 zcmY$+NX;pT&&*3ntx!;MFG?)P$V@KQcg{#GQsU(*C{4=AOjan%&rDGW$jL7WPA*DK z%?mCm((p7?&??pmwNOYbDJjzNv{0x35tW*}T-Cf>3JRfy3dtGPAQnj8#>UnH%qh>v z%t=+yNY1d;D%RH4Q~;}0Kr$L+uSRl)Hb|FFg-)d=Set@Eg|;@BRm;m&%gcr7u<%T< zt3ry4gG-7^lS>q|N{WkhsP4${%sj9QL57pzN~ipyl++?n@X^|#5Sz$#t4mR0Im84F zG>1Cn=jVi)C=}=CWTt>3JO@O8zPVC_0Nx`sL>x`wcH0!pN)3QeF2i?j(SG=nMx znV6)F$3zRLLXe3_3e)n76f`nzbF4FMY>TWjk&-tgfulOh0BT4kvg`3HM6#6-bEyPH1=|1w|d6I6+Z| zCrVJ%!F&dCFj6Q%g9m4fpqPOtLU5=type,queue); - switch (tempg->type) { - case GRET_POLYLINE: - i+=tempg->num<<1*sizeof(I4); - break; - case GRET_TEXT: - i+=StrLen(tempg->st)+1; - break; - case GRET_SPEEDLINE: - i+=tempg->num*(2*sizeof(I4)+sizeof(double)); - break; - case GRET_BITMAP4: - case GRET_BITMAP4_TRANSPARENT: - i+=((tempg->width+7)&~7)*tempg->height*4/8; - break; - case GRET_POLYPOINT: -//Backward compatibility kludge: num should num-1 - i+=sizeof(I4)<<1+(tempg->num*3+7)>>3; - break; - case GRET_BSPLINE2: - case GRET_BSPLINE3: - case GRET_BSPLINE2_CLOSED: - case GRET_BSPLINE3_CLOSED: - i+=tempg->num*sizeof(P3I4); - break; - } - return i; -} - -//If you do not enter a color or width into -//a GrElem, you can pass a color and width -//when you plot it. "colorbase" is the color of -//the background you are drawing on. -public void GrElemsPlot(GrBitMap *base,I8 x,I8 y,I8 z,void *elems) -{ - GrElem *tempg=elems-offset(GrElem.start); - I8 i,j,k; - I8 x1,y1,x2,y2; - I4 *ptr; - I8 cur_sub_GrElem_num=0; - U8 colorbase=base->bkcolor; - GrBitMap *img; - P3I4 *p; - nounusedwarn z; - if (colorbase.u1[3]==ROPB_COLLISION) - base->color=colorbase; - while (tempg->type) { - base->cur_sub_grelem=cur_sub_GrElem_num++; - switch (tempg->type) { - case GRET_COLOR4: - base->color=colorbase^tempg->color4; - break; - case GRET_WIDTH: - base->pen_width=tempg->width; - GrScalePenWidth(base); - break; - case GRET_POINT: - GrPlot3(base,tempg->x1+x,tempg->y1+y,0); - break; - case GRET_TEXT: - GrText3(base,tempg->x1+x,tempg->y1+y,0,tempg->st); - break; - case GRET_FLOOD_FILL: - GrFloodFill3(base,tempg->x1+x,tempg->y1+y,0,FALSE); - break; - case GRET_FLOOD_FILL_NOT: - GrFloodFill3(base,tempg->x1+x,tempg->y1+y,0,TRUE); - break; - case GRET_SHIFT: - x+=tempg->x1; - y+=tempg->y1; - break; - case GRET_LINE: - GrLine3(base,tempg->x1+x,tempg->y1+y,0,tempg->x2+x,tempg->y2+y,0); - break; - case GRET_BITMAP4: - case GRET_BITMAP4_TRANSPARENT: - img=MAllocZ(sizeof(GrBitMap)); - img->type=BMT_COLOR4; - img->width=tempg->width; - img->internal_width=(tempg->width+7)&~7; - img->height=tempg->height; - img->left_margin=0; - img->right_margin=tempg->width; - img->top_margin=0; - img->bottom_margin=tempg->height; - img->plane_size=(img->internal_width*img->height)>>3; - img->body=tempg+sizeof(GrElem); - img->bitmap_signature=BMS_SIGNATURE; - img->bkcolor=tempg->bkcolor; - i=base->color; - if (tempg->type==GRET_BITMAP4) - base->color=ROP_EQU+i&0xFFFFFF; - else - base->color=ROP_TRANSPARENT+i&0xFFFFFF; - GrBlot3(base,tempg->x2+x,tempg->y2+y,0,img); - base->color=i; - Free(img); - break; - case GRET_BOX: - GrBox3(base,tempg->x1+x,tempg->y1+y,0,tempg->x2-tempg->x1,tempg->y2-tempg->y1); - break; - case GRET_CIRCLE: - GrCircle3(base,tempg->x1+x,tempg->y1+y,0,tempg->x2); - break; - case GRET_ELLIPSE: - GrEllipse3(base,tempg->x2+x,tempg->y2+y,0,tempg->width,tempg->height,tempg->rot_angle); - break; - case GRET_POLYLINE: - ptr=&tempg->y1; - x1=ptr[0]; - y1=ptr[1]; - for (i=1;inum;i++) { - x2=ptr[i<<1]; - y2=ptr[i<<1+1]; - GrLine3(base,x1+x,y1+y,0,x2+x,y2+y,0); - x1=x2;y1=y2; - } - break; - case GRET_SPEEDLINE: - ptr=&tempg->y1; - x1=ptr[0]; - y1=ptr[1]; - for (i=1;inum;i++) { - x2=ptr[i<<2]; - y2=ptr[i<<2+1]; -//TODO GrSpeedLine2(base,x1+x,y1+y,0,x2+x,y2+y,0,ptr[i<<2+2]><(double)); - GrSpeedLine(base,x1+x,y1+y,x2+x,y2+y,ptr[i<<2+2]><(double)); - x1=x2;y1=y2; - } - break; - case GRET_POLYPOINT: - ptr=&tempg->y1; - x1=ptr[0]; - y1=ptr[1]; - ptr+=sizeof(I4)<<1; - k=(tempg->num-1)*3; - GrPlot3(base,x1+x,y1+y,0); - for (i=0;iy1; - for (i=0;inum;i++) { - p[i].x+=x; - p[i].y+=y; - } - Gr2BSpline3(base,p,tempg->num,FALSE); - for (i=0;inum;i++) { - p[i].x-=x; - p[i].y-=y; - } - break; - case GRET_BSPLINE3: - p=&tempg->y1; - for (i=0;inum;i++) { - p[i].x+=x; - p[i].y+=y; - } - Gr3BSpline3(base,p,tempg->num,FALSE); - for (i=0;inum;i++) { - p[i].x-=x; - p[i].y-=y; - } - break; - case GRET_BSPLINE2_CLOSED: - p=&tempg->y1; - for (i=0;inum;i++) { - p[i].x+=x; - p[i].y+=y; - } - Gr2BSpline3(base,p,tempg->num,TRUE); - for (i=0;inum;i++) { - p[i].x-=x; - p[i].y-=y; - } - break; - case GRET_BSPLINE3_CLOSED: - p=&tempg->y1; - for (i=0;inum;i++) { - p[i].x+=x; - p[i].y+=y; - } - Gr3BSpline3(base,p,tempg->num,TRUE); - for (i=0;inum;i++) { - p[i].x-=x; - p[i].y-=y; - } - break; - } - tempg+=GrElemSize(tempg,FALSE); - } -} - -public void GrSetOrigin(GrElem *root,I8 dx,I8 dy,I8 dz) -{ - U8 i; - I4 *ptr; - P3I4 *p; - GrElem *tempg=root->next; - nounusedwarn dz; - while (tempg!=root) { - switch (tempg->type) { - case GRET_POINT: - case GRET_FLOOD_FILL: - case GRET_FLOOD_FILL_NOT: - tempg->x1+=dx; - tempg->y1+=dy; - break; - case GRET_LINE: - tempg->x1+=dx; - tempg->y1+=dy; - tempg->x2+=dx; - tempg->y2+=dy; - break; - case GRET_BITMAP4: - case GRET_BITMAP4_TRANSPARENT: - case GRET_ELLIPSE: - tempg->x2+=dx; - tempg->y2+=dy; - break; - case GRET_BOX: - tempg->x1+=dx; - tempg->y1+=dy; - tempg->x2+=dx; - tempg->y2+=dy; - break; - case GRET_TEXT: - case GRET_CIRCLE: - tempg->x1+=dx; - tempg->y1+=dy; - break; - case GRET_POLYLINE: - ptr=&tempg->y1; - ptr[0]+=dx; - ptr[1]+=dy; - for (i=1;inum;i++) { - ptr[i<<1]+=dx; - ptr[i<<1+1]+=dy; - } - break; - case GRET_SPEEDLINE: - ptr=&tempg->y1; - ptr[0]+=dx; - ptr[1]+=dy; - for (i=1;inum;i++) { - ptr[i<<2]+=dx; - ptr[i<<2+1]+=dy; - } - break; - case GRET_POLYPOINT: - ptr=&tempg->y1; - ptr[0]+=dx; - ptr[1]+=dy; - break; - case GRET_BSPLINE2: - case GRET_BSPLINE3: - case GRET_BSPLINE2_CLOSED: - case GRET_BSPLINE3_CLOSED: - p=&tempg->y1; - for (i=0;inum;i++) { - p[i].x+=dx; - p[i].y+=dy; - } - break; - } - tempg=tempg->next; - } -} - - -I1 GrElOffset[9]={0,1,2,3,0,4,5,6,7}; - -void GrPolyPointPlot(GrElem *root,I8 x,I8 y,I8 z) -{ - nounusedwarn z; - GrElem *tempg=MAllocZ(GrElemBaseSize(GRET_POINT)); - tempg->type=GRET_POINT; - tempg->x1=x; - tempg->y1=y; - InsQue(tempg,root->last); -} - - -GrElem *GrTransformCircle(I8 *r,GrElem *tempg) -{ - I8 x,y,z,radius=tempg->x2<<24; - double m1,a1,m2; - GrElem *tempg1=MAllocZ(GrElemBaseSize(GRET_ELLIPSE)); - tempg1->type=GRET_ELLIPSE; - - x=tempg->x1; y=tempg->y1; z=0; - GrRotate(r,&x,&y,&z); - tempg1->x2=x; - tempg1->y2=y; - - x=radius; y=0; z=0; - GrRotate(r,&x,&y,&z); - R2P(&m1,&a1,x,y); - - x=0; y=radius; z=0; - GrRotate(r,&x,&y,&z); - m2=Sqrt(x*x+y*y); - - tempg1->width=m1/0x1000000; - tempg1->height=m2/0x1000000; - tempg1->rot_angle=-a1; - - return tempg1; -} - - -GrElem *GrTransformEllipse(I8 *r,GrElem *tempg) -{ - I8 x,y,z,x_radius=tempg->width<<24,y_radius=tempg->height<<24; - double m1,a1,m2,a2,s,c; - GrElem *tempg1=MAllocZ(GrElemBaseSize(GRET_ELLIPSE)); - tempg1->type=GRET_ELLIPSE; - - x=tempg->x2; y=tempg->y2; z=0; - GrRotate(r,&x,&y,&z); - tempg1->x2=x; - tempg1->y2=y; - - c=Cos(tempg->rot_angle); - s=Sin(tempg->rot_angle); - - x=x_radius*c; - y=x_radius*s; - z=0; - GrRotate(r,&x,&y,&z); - R2P(&m1,&a1,x,y); - - x=-y_radius*s; - y=y_radius*c; - z=0; - GrRotate(r,&x,&y,&z); - R2P(&m2,&a2,x,y); - m2=m2*Abs(Sin(a2-a1)); - - tempg1->width=m1/0x1000000; - tempg1->height=m2/0x1000000; - tempg1->rot_angle=-a1; - - return tempg1; -} - - -public void GrElemTransform(I8 *r,GrElem *root) -{ - I8 x,y,z,x1,y1,z1,x2,y2,z2,x3,y3,z3; - I8 i,j,k,num; - I4 *ptr; - P3I4 *p; - GrElem *tempg=root->next,root2,*tempg1,*tempg2,*tempg3; - while (tempg!=root) { - switch (tempg->type) { - case GRET_POINT: - case GRET_FLOOD_FILL: - case GRET_FLOOD_FILL_NOT: - x=tempg->x1; y=tempg->y1; z=0; - GrRotate(r,&x,&y,&z); - tempg->x1=x; - tempg->y1=y; - break; - case GRET_LINE: - x=tempg->x1; y=tempg->y1; z=0; - GrRotate(r,&x,&y,&z); - tempg->x1=x; - tempg->y1=y; - x=tempg->x2; y=tempg->y2; z=0; - GrRotate(r,&x,&y,&z); - tempg->x2=x; - tempg->y2=y; - break; - case GRET_BITMAP4: - case GRET_BITMAP4_TRANSPARENT: - x=tempg->x2; y=tempg->y2; z=0; - GrRotate(r,&x,&y,&z); - tempg->x2=x; - tempg->y2=y; - break; - case GRET_BOX: - x=tempg->x1; y=tempg->y1; z=0; - GrRotate(r,&x,&y,&z); - tempg->x1=x; - tempg->y1=y; - x=tempg->x2; y=tempg->y2; z=0; - GrRotate(r,&x,&y,&z); - tempg->x2=x; - tempg->y2=y; - break; - case GRET_TEXT: - x=tempg->x1; y=tempg->y1; z=0; - GrRotate(r,&x,&y,&z); - tempg->x1=x; - tempg->y1=y; - break; - case GRET_CIRCLE: - tempg1=GrTransformCircle(r,tempg); - InsQue(tempg1,tempg); - RemQue(tempg); - Free(tempg); - tempg=tempg1; - break; - case GRET_ELLIPSE: - tempg1=GrTransformEllipse(r,tempg); - InsQue(tempg1,tempg); - RemQue(tempg); - Free(tempg); - tempg=tempg1; - break; - case GRET_POLYLINE: - ptr=&tempg->y1; - x=ptr[0]; y=ptr[1]; z=0; - GrRotate(r,&x,&y,&z); - ptr[0]=x; - ptr[1]=y; - for (i=1;inum;i++) { - x=ptr[i<<1]; y=ptr[i<<1+1]; z=0; - GrRotate(r,&x,&y,&z); - ptr[i<<1]=x; - ptr[i<<1+1]=y; - } - break; - case GRET_SPEEDLINE: - ptr=&tempg->y1; - x=ptr[0]; y=ptr[1]; z=0; - GrRotate(r,&x,&y,&z); - ptr[0]=x; - ptr[1]=y; - for (i=1;inum;i++) { - x=ptr[i<<2]; y=ptr[i<<2+1]; z=0; - GrRotate(r,&x,&y,&z); - ptr[i<<2]=x; - ptr[i<<2+1]=y; - } - break; - case GRET_POLYPOINT: - root2.next=&root2; - root2.last=&root2; - ptr=&tempg->y1; - x=ptr[0]; y=ptr[1]; z=0; - x1=x; y1=y; z1=z; //unrotated cur coordinates - GrRotate(r,&x,&y,&z); - ptr+=sizeof(I4)<<1; - k=(tempg->num-1)*3; - x2=x; y2=y; z2=z; //rotated start coordinates - x3=x; y3=y; z3=z; //lag 1 rotated coordinates - for (i=0;inext; - if (tempg1->x1==x3 && tempg1->y1==y3) { - RemQue(tempg1); - Free(tempg1); - } else { - num++; - x3=tempg1->x1; - y3=tempg1->y1; - } - tempg1=tempg2; - } - - tempg3=MAllocZ(GrElemBaseSize(GRET_POLYPOINT)+ - sizeof(I4)*2+(num*3+7)>>3); - ptr=&tempg3->y1; - ptr[0]=x2; - ptr[1]=y2; - ptr+=sizeof(I4)<<1; - x3=0;y3=0; z3=0; - i=0; - tempg1=root2.next; - while (tempg1!=&root2) { - tempg2=tempg1->next; - OrU4BitField(ptr,i, - GrElOffset[SignI8(tempg1->x1-x3)+1+ - 3*(SignI8(tempg1->y1-y3)+1)]); - i+=3; - x3=tempg1->x1;y3=tempg1->y1; - RemQue(tempg1); - Free(tempg1); - tempg1=tempg2; - } - tempg3->type=GRET_POLYPOINT; - tempg3->num=num+1; - InsQue(tempg3,tempg); - RemQue(tempg); - Free(tempg); - tempg=tempg3; - break; - case GRET_BSPLINE2: - case GRET_BSPLINE3: - case GRET_BSPLINE2_CLOSED: - case GRET_BSPLINE3_CLOSED: - p=&tempg->y1; - for (i=0;inum;i++) { - x=ptr[i]; y=ptr[i]; z=0; - GrRotate(r,&x,&y,&z); - p[i].x=x; - p[i].y=y; - } - break; - } - tempg=tempg->next; - } -} - -class EGETStruct -{ - double x_scale fmtstr "$$DA-T,32,\"X Scale :%12.6f\"$$\r\n"; - double y_scale fmtstr "$$DA-T,32,\"Y Scale :%12.6f\"$$\r\n"; - double z_scale fmtstr "$$DA-T,32,\"Z Scale :%12.6f\"$$\r\n"; - double theta1 fmtstr "\r\nAngles are in degrees\r\n$$DA-T,32,\"Theta1 :%12.6f\"$$\r\n"; - double phi fmtstr "$$DA-T,32,\"Phi :%12.6f\"$$\r\n"; - double theta2 fmtstr "$$DA-T,32,\"Theta2 :%12.6f\"$$\r\n"; - double x_offset fmtstr "\r\n$$DA-T,32,\"X Offset:%12.6f\"$$\r\n"; - double y_offset fmtstr "$$DA-T,32,\"Y Offset:%12.6f\"$$\r\n"; - double z_offset fmtstr "$$DA-T,32,\"Z Offset:%12.6f\"$$\r\n"; -}; - -void EditGrElemTransform(GrElem *root) -{ - EGETStruct *eg=MAlloc(sizeof(EGETStruct)); - I8 *r=MAllocZ(sizeof(I8)*16),*r1,*r2; - eg->x_scale=1.0; - eg->y_scale=1.0; - eg->z_scale=1.0; - eg->theta1=0.0; - eg->phi=0.0; - eg->theta2=0.0; - eg->x_offset=0.0; - eg->y_offset=0.0; - eg->z_offset=0.0; - if (DoForm(eg,"EGETStruct")) { - r[0]=eg->x_scale*gr_scale; - r[5]=eg->y_scale*gr_scale; - r[10]=eg->z_scale*gr_scale; - r[15]=gr_scale; - - r1=GrTheta(-eg->theta1*pi/180.0); - r2=GrMulMat(r,r1); - Free(r); - Free(r1); - r=r2; - - r1=GrPhi(eg->phi*pi/180.0); - r2=GrMulMat(r,r1); - Free(r); - Free(r1); - r=r2; - - r1=GrTheta(-eg->theta2*pi/180.0); - r2=GrMulMat(r,r1); - Free(r); - Free(r1); - r=r2; - - r[3]=eg->x_offset*gr_scale; - r[7]=eg->y_offset*gr_scale; - r[11]=eg->z_offset*gr_scale; - - GrElemTransform(r,root); - } - Free(r); -} - - -void GrElemsDel(GrElem *root) -{ - GrElem *tempg,*tempg1; - tempg=root->next; - while (tempg!=root) { - tempg1=tempg->next; - Free(tempg); - tempg=tempg1; - } -} - -GrElem *GrElemsFromQueue(GrElem *root,U4 *size=NULL) -{ - U8 s,my_size=GrElemBaseSize(GRET_END,FALSE); - GrElem *tempg,*result; - U4 *dst; - - tempg=root->next; - while (tempg!=root) { - my_size+=GrElemSize(tempg,FALSE); - tempg=tempg->next; - } - result=MAlloc(my_size); - dst=result; - tempg=root->next; - while (tempg!=root) { - s=GrElemSize(tempg,FALSE); - MemCpy(dst,&tempg->type,s); - dst+=s; - tempg=tempg->next; - } - *dst=GRET_END; - if (size) *size=my_size; - return result; -} - -GrElem *GrElemsToQueue(GrElem *elems) -{ - U8 s; - GrElem *result=MAllocZ(sizeof(GrElem)), - *tempg=elems-offset(GrElem.start), - *tempg1; - result->next=result; - result->last=result; - while (tempg->type) { - tempg1=MAlloc(GrElemSize(tempg,TRUE)); - s=GrElemSize(tempg,FALSE); - MemCpy(&tempg1->type,&tempg->type,s); - InsQue(tempg1,result->last); - tempg+=s; - } - return result; -} - -public I8 PopUpPickGrElem(GrElem *root,I8 old_num=0) -{ - Ltf *l=LtfNew; - GrElem *tempg; - I8 cur_num=0; - - tempg=root->next; - while (tempg!=root) { - if (cur_num==old_num) - LtfPrintF(l,"$$FM,LTRED$$"); - else - LtfPrintF(l,"$$FM,LTBLUE$$"); - LtfPrintF(l,"$$MU,\"%Z\",%d$$\r\n", - tempg->type,"ST_GRELEM_TYPES",cur_num++); - tempg=tempg->next; - } - if (cur_num==old_num) - LtfPrintF(l,"$$FM,LTRED$$"); - else - LtfPrintF(l,"$$FM,LTBLUE$$"); - LtfPrintF(l,"$$MU,\"END\",%d$$\r\n",cur_num); - cur_num=PopUpMenu(l); - LtfDel(l); - return cur_num; -} - -public BoolU8 GrElemTextEdit(GrElem *root) -{ - Ltf *l=LtfNew; - GrElem *tempg; - LtfEntry *ll; - BoolU8 result; - tempg=root->next; - while (tempg!=root) { - LtfPrintF(l,"%Z\r\n", - tempg->type,"ST_GRELEM_TYPES"); - ll=LtfPrintF(l," $$HX,%d,16$$\r\n",GrElemSize(tempg,FALSE)); - ll->data=&tempg->start; - tempg=tempg->next; - } - result=ServantUser("DoMenu(0x%X,0x%X,0x%X);",l,NULL,0); - LtfDel(l); - return result; -} - - -#define GED_PICK_TEXT 1 -#define GED_PICK_GRAPHICALLY 2 -#define GED_SET_ORIGIN 3 -#define GED_TRANSFORM 4 -#define GED_SHIFT_ORIGIN 5 -#define GED_INSERT 6 -#define GED_DELETE 7 -#define GED_EDIT 8 -#define GED_END 9 -#define GED_CANCEL -1 - -I8 PopUpGrElemsEditChoice() -{ - I8 i; - Ltf *l=LtfNew; - LtfPutSExt(l,"$$MU,\"Pick from text\",GED_PICK_TEXT$$\r\n"); - LtfPutSExt(l,"$$MU,\"Pick graphically\",GED_PICK_GRAPHICALLY$$\r\n"); - LtfPutSExt(l,"$$MU,\"Set Origin\",GED_SET_ORIGIN$$\r\n"); - LtfPutSExt(l,"$$MU,\"Transform\",GED_TRANSFORM$$\r\n"); - LtfPutSExt(l,"$$MU,\"Insert Shift Origin\",GED_SHIFT_ORIGIN$$\r\n"); - LtfPutSExt(l,"$$MU,\"Insert\",GED_INSERT$$\r\n"); - LtfPutSExt(l,"$$MU,\"Delete\",GED_DELETE$$\r\n"); - LtfPutSExt(l,"$$MU,\"Edit\",GED_EDIT$$\r\n"); - LtfPutSExt(l,"$$MU,\"End\",GED_END$$\r\n"); - LtfPutSExt(l,"$$MU,\"Cancel\",GED_CANCEL$$\r\n"); - i=PopUpMenu(l); - LtfDel(l); - return i; -} - -GrElem *GrNumToQueue(GrElem *root,I8 num,I8 *x=NULL,I8 *y=NULL) -{ - I8 xx=0,yy=0; - GrElem *result=root->next; - while (result!=root && num--) { - if (result->type==GRET_SHIFT) { - xx+=result->x1; - yy+=result->y1; - } - result=result->next; - } - if (x) *x=xx; - if (y) *y=yy; - return result; -} - -void GrEditUpdate(LtfBinEntry *tempb,GrElem *root) -{ - BoolU4 old_preempt=Preempt(OFF); - Free(tempb->data); - tempb->data=GrElemsFromQueue(root,&tempb->size); - Preempt(old_preempt); -} - -void GrSetSettings(GrBitMap *base,GrElem *root,I8 cur_num,U8 *color,U8 *bkcolor,I8 *width) -{ - GrElem *tempg; - *bkcolor=(Fs->text_attribute>>4)&15; - *color=ROP_EQU|BLACK^*bkcolor; - *width=1; - GrReset(base); - - tempg=root->next; - while (cur_num>0 && tempg!=root) { - switch (tempg->type) { - case GRET_COLOR4: - *color=tempg->color4^*bkcolor; - base->color=*color; - break; - case GRET_WIDTH: - *width=tempg->width; - base->pen_width=*width; - break; - } - cur_num--; - tempg=tempg->next; - } -} - -class GrSnapStruct -{ - I8 x,y,z,xo,yo,zo; -}; - -void GrSetSnap(GrSnapStruct *g) -{ - ipx_snap=g->x; - ipy_snap=g->y; - ipz_snap=g->z; - ipx_snap_offset=g->xo; - ipy_snap_offset=g->yo; - ipz_snap_offset=g->zo; -} - -BoolU8 GrElemsInsert(LtfBinEntry *tempb,I8 *cur_num,GrElem *root,I8 x,I8 y,BoolU4 new_picture) -{ - I8 i,cmd,x1,y1,x2,y2,x3,y3,p1,p2, - bkcolor,color,num,old_width; - I4 *ptr; - BoolU4 old_ip_double=Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); - I8 eletype=GRET_MENU; - GrElem root2,*tempg,*tempg1,*tempg2,*insert_point; - BoolU4 old_inhibit=ip_inhibit_win_operations; - GrBitMap *base=GrAlias(Gs->grbase,Fs); - I8 width; - GrSnapStruct old_snap,new_snap; - GrBitMap *img; - P3I4 *p; - I1 *st; - double m1,a1; - insert_point=GrNumToQueue(root,*cur_num,&x1,&y1); - x+=x1; y+=y1; - - old_snap.x=ipx_snap; - old_snap.y=ipy_snap; - old_snap.z=ipz_snap; - old_snap.xo=ipx_snap_offset; - old_snap.yo=ipy_snap_offset; - old_snap.zo=ipz_snap_offset; - MemCpy(&new_snap,&old_snap,sizeof(GrSnapStruct)); - - ip_inhibit_win_operations=TRUE; - while (TRUE) { - GrSetSettings(base,root,*cur_num,&color,&bkcolor,&width); - GrClear; - if (eletype==GRET_MENU) { - ip_inhibit_win_operations=FALSE; - GrSetSnap(&old_snap); - i=PopUpGrElemType(new_picture); - if (i>GRET_MENU) - eletype=i; - switch (eletype) { - case GRET_FLOOD_FILL: - case GRET_FLOOD_FILL_NOT: -AccntOneTimePopUp(ARf_FLOODFILL_MSG, -ST_WARNING "This is affected by what's underneath\r\n" -"when it is drawn. You will probably want to\r\n" -"convert it to a bitmap.\r\n\r\n" -"A tip on artistry you might consider\r\n" -"is using lines to fill regions because\r\n" -"brush strokes look cool.\r\n"); - break; - } - - GrSetSnap(&new_snap); - ip_inhibit_win_operations=TRUE; - } - switch (eletype) { - case GRET_COLOR4: - ip_inhibit_win_operations=FALSE; - GrSetSnap(&old_snap); - i=PopUpColor; - if (i>=0) { - color=ROP_EQU|i; - tempg=MAlloc(GrElemBaseSize(GRET_COLOR4)); - tempg->type=GRET_COLOR4; - tempg->color4=color; - InsQue(tempg,insert_point->last); - GrEditUpdate(tempb,root); - *cur_num+=1; - } - GrSetSnap(&new_snap); - ip_inhibit_win_operations=TRUE; - eletype=GRET_MENU; - break; - case GRET_WIDTH: - ip_inhibit_win_operations=FALSE; - GrSetSnap(&old_snap); - i=PopUpI8_16; - if (i>=1) { - width=i; - tempg=MAlloc(GrElemBaseSize(GRET_WIDTH)); - tempg->type=GRET_WIDTH; - tempg->width=width; - InsQue(tempg,insert_point->last); - GrEditUpdate(tempb,root); - *cur_num+=1; - } - GrSetSnap(&new_snap); - ip_inhibit_win_operations=TRUE; - eletype=GRET_MENU; - break; - case GRET_SNAP: - ip_inhibit_win_operations=FALSE; - GrSetSnap(&old_snap); - i=PopUpI8_16; - if (i>=1) { - new_snap.x=i; - new_snap.y=i; - new_snap.z=i; - new_snap.xo=Fs->win_pixel_left%i; - new_snap.yo=Fs->win_pixel_top%i; - new_snap.zo=0; - } - GrSetSnap(&new_snap); - ip_inhibit_win_operations=TRUE; - eletype=GRET_MENU; - break; - case GRET_TEXT: - ip_inhibit_win_operations=FALSE; - GrSetSnap(&old_snap); - st=PopUp("ANewStr(PmtStr(\"Text:\"));",Fs); - GrSetSnap(&new_snap); - ip_inhibit_win_operations=TRUE; - if (st) { - x1=0; y1=0; - do { - base->color=color&0xFFFFFF|ROP_OR; - GrText3(base,x1,y1,0,st); - cmd=GetMsg(&p1,&p2, - (1<color=color&0xFFFFFF|ROP_NAND; - GrText3(base,x1,y1,0,st); - x1=p1; y1=p2; - } while (cmd!=MSG_IP_L_UP); - tempg=MAllocZ(GrElemBaseSize(GRET_TEXT)+StrLen(st)+1); - tempg->type=GRET_TEXT; - tempg->x1=x1-x; - tempg->y1=y1-y; - StrCpy(tempg->st,st); - InsQue(tempg,insert_point->last); - GrEditUpdate(tempb,root); - *cur_num+=1; - AFree(st); - } - eletype=GRET_MENU; - break; - } - if (eletype!=GRET_MENU) { - cmd=0;p1=0;p2=0; - if (eletype!=GRET_END && eletype!=-1) { - cmd=GetMsg(&p1,&p2, - (1<crt_flags,CRTf_NO_DOUBLE_CLICK,old_ip_double); - ip_inhibit_win_operations=old_inhibit; - GrDel(base); - GrSetSnap(&old_snap); - return eletype==GRET_END || p1==CH_ESC; - } - } else { - switch (eletype) { - case GRET_LINE: - x1=p1; y1=p2; - x2=p1; y2=p2; - do { - base->color=color&0xFFFFFF|ROP_OR; - GrLine3(base,x1,y1,0,x2,y2,0); - cmd=GetMsg(&p1,&p2, - (1<color=color&0xFFFFFF|ROP_NAND; - GrLine3(base,x1,y1,0,x2,y2,0); - x2=p1; y2=p2; - } while (cmd!=MSG_IP_L_UP); - base->color=color&0xFFFFFF|ROP_EQU; - GrLine3(base,x1,y1,0,x2,y2,0); - tempg=MAlloc(GrElemBaseSize(GRET_LINE)); - tempg->type=GRET_LINE; - tempg->x1=x1-x; - tempg->y1=y1-y; - tempg->x2=x2-x; - tempg->y2=y2-y; - InsQue(tempg,insert_point->last); - GrEditUpdate(tempb,root); - *cur_num+=1; - break; - case GRET_BOX: - x1=p1; y1=p2; - x2=p1; y2=p2; - do { - base->color=color&0xFFFFFF|ROP_OR; - GrBox3(base,x1,y1,0,x2-x1,y2-y1); - cmd=GetMsg(&p1,&p2, - (1<color=color&0xFFFFFF|ROP_NAND; - GrBox3(base,x1,y1,0,x2-x1,y2-y1); - x2=p1; y2=p2; - if (x2color=color&0xFFFFFF|ROP_EQU; - GrBox3(base,x1,y1,0,x2-x1,y2-y1); - tempg=MAlloc(GrElemBaseSize(GRET_BOX)); - tempg->type=GRET_BOX; - tempg->x1=x1-x; - tempg->y1=y1-y; - tempg->x2=x2-x; - tempg->y2=y2-y; - InsQue(tempg,insert_point->last); - GrEditUpdate(tempb,root); - *cur_num+=1; - break; - case GRET_BITMAP4: - case GRET_BITMAP4_TRANSPARENT: - x1=p1; y1=p2; - x2=p1; y2=p2; - old_width=base->pen_width; - base->pen_width=1; - do { - base->color=color&0xFFFFFF|ROP_OR; - GrLine3(base,x1,y1,0,x2,y1,0); - GrLine3(base,x1,y1,0,x1,y2,0); - GrLine3(base,x2,y2,0,x2,y1,0); - GrLine3(base,x2,y2,0,x1,y2,0); - cmd=GetMsg(&p1,&p2, - (1<color=color&0xFFFFFF|ROP_NAND; - GrLine3(base,x1,y1,0,x2,y1,0); - GrLine3(base,x1,y1,0,x1,y2,0); - GrLine3(base,x2,y2,0,x2,y1,0); - GrLine3(base,x2,y2,0,x1,y2,0); - x2=p1; y2=p2; - if (x2color=color&0xFFFFFF|ROP_EQU; - GrLine3(base,x1,y1,0,x2,y1,0); - GrLine3(base,x1,y1,0,x1,y2,0); - GrLine3(base,x2,y2,0,x2,y1,0); - GrLine3(base,x2,y2,0,x1,y2,0); - x2++; y2++; - tempg=MAllocZ(GrElemBaseSize(GRET_BITMAP4)+ - ((x2-x1+7)&~7)*(y2-y1)/2); - tempg->type=eletype; - tempg->width=x2-x1; - tempg->height=y2-y1; - tempg->x2=x1-x; - tempg->y2=y1-y; - tempg->bkcolor=bkcolor; - img=GrBitMapNew(BMT_COLOR4,tempg->width,tempg->height,Fs); - img->color=bkcolor; - GrBox(img,0,0,tempg->width,tempg->height); - GrSetSettings(img,root,0,&color,&bkcolor,&width); - GrElemsPlot(img,-(x1-x),-(y1-y),0,tempb->data); - MemCpy(tempg+sizeof(GrElem),img->body,((x2-x1+7)&~7)*(y2-y1)/2); - GrDel(img); - GrElemsDel(root); - root->next=root; - root->last=root; - InsQue(tempg,insert_point->last); - GrEditUpdate(tempb,root); - *cur_num=1; - base->pen_width=old_width; - eletype=GRET_MENU; - break; - case GRET_CIRCLE: - x1=p1; y1=p2; - x2=p1; y2=p2; - do { - base->color=color&0xFFFFFF|ROP_OR; - GrCircle3(base,x1,y1,0,Sqrt(SqrI8(x1-x2)+SqrI8(y1-y2))); - cmd=GetMsg(&p1,&p2, - (1<color=color&0xFFFFFF|ROP_NAND; - GrCircle3(base,x1,y1,0,Sqrt(SqrI8(x1-x2)+SqrI8(y1-y2))); - x2=p1; y2=p2; - } while (cmd!=MSG_IP_L_UP); - base->color=color&0xFFFFFF|ROP_EQU; - GrCircle3(base,x1,y1,0,Sqrt(SqrI8(x1-x2)+SqrI8(y1-y2))); - tempg=MAlloc(GrElemBaseSize(GRET_CIRCLE)); - tempg->type=GRET_CIRCLE; - tempg->x1=x1-x; - tempg->y1=y1-y; - tempg->x2=Sqrt(SqrI8(x1-x2)+SqrI8(y1-y2)); - InsQue(tempg,insert_point->last); - GrEditUpdate(tempb,root); - *cur_num+=1; - break; - case GRET_ELLIPSE: - x1=p1; y1=p2; - x2=p1; y2=p2; - do { - base->color=color&0xFFFFFF|ROP_OR; - GrEllipse3(base,(x1+x2)>>1,(y1+y2)>>1,0, - AbsI8(x1-x2)>>1,AbsI8(y1-y2)>>1); - cmd=GetMsg(&p1,&p2, - (1<color=color&0xFFFFFF|ROP_NAND; - GrEllipse3(base,(x1+x2)>>1,(y1+y2)>>1,0, - AbsI8(x1-x2)>>1,AbsI8(y1-y2)>>1); - x2=p1; y2=p2; - } while (cmd!=MSG_IP_L_UP); - tempg=MAlloc(GrElemBaseSize(GRET_ELLIPSE)); - tempg->type=GRET_ELLIPSE; - tempg->x2=(x1+x2)>>1-x; - tempg->y2=(y1+y2)>>1-y; - tempg->width =AbsI8(x1-x2)>>1; - tempg->height=AbsI8(y1-y2)>>1; - - do { - R2P(&m1,&a1,x2-(tempg->x2+x),y2-(tempg->y2+y)); - tempg->rot_angle=-a1; - base->color=color&0xFFFFFF|ROP_OR; - GrEllipse3(base,tempg->x2+x,tempg->y2+y,0, - tempg->width,tempg->height,tempg->rot_angle); - cmd=GetMsg(&p1,&p2, - (1<color=color&0xFFFFFF|ROP_NAND; - GrEllipse3(base,tempg->x2+x,tempg->y2+y,0, - tempg->width,tempg->height,tempg->rot_angle); - x2=p1; y2=p2; - } while (cmd!=MSG_IP_L_UP); - - R2P(&m1,&a1,x2-(tempg->x2+x),y2-(tempg->y2+y)); - tempg->rot_angle=-a1; - - base->color=color&0xFFFFFF|ROP_EQU; - GrEllipse3(base,tempg->x2+x,tempg->y2+y,0, - tempg->width,tempg->height,tempg->rot_angle); - InsQue(tempg,insert_point->last); - GrEditUpdate(tempb,root); - *cur_num+=1; - break; - case GRET_POINT: - x1=p1; y1=p2; - tempg=MAlloc(GrElemBaseSize(GRET_POINT)); - tempg->type=GRET_POINT; - tempg->x1=x1-x; - tempg->y1=y1-y; - InsQue(tempg,insert_point->last); - GrEditUpdate(tempb,root); - *cur_num+=1; - break; - case GRET_FLOOD_FILL: - case GRET_FLOOD_FILL_NOT: - x1=p1; y1=p2; - tempg=MAlloc(GrElemBaseSize(GRET_FLOOD_FILL)); - tempg->type=eletype; - tempg->x1=x1-x; - tempg->y1=y1-y; - InsQue(tempg,insert_point->last); - GrEditUpdate(tempb,root); - *cur_num+=1; - break; - case GRET_POLYLINE: - root2.next=&root2; - root2.last=&root2; - num=0; - x3=p1-x; y3=p2-y; - x1=p1; y1=p2; - x2=p1; y2=p2; - do { - do { - base->color=color&0xFFFFFF|ROP_OR; - GrLine3(base,x1,y1,0,x2,y2,0); - cmd=GetMsg(&p1,&p2, - (1<color=color&0xFFFFFF|ROP_NAND; - GrLine3(base,x1,y1,0,x2,y2,0); - x2=p1; y2=p2; - } while (cmd!=MSG_IP_L_UP && cmd!=MSG_IP_R_UP); - base->color=color&0xFFFFFF|ROP_EQU; - if (cmd==MSG_IP_L_UP) { - GrLine3(base,x1,y1,0,x2,y2,0); - tempg=MAlloc(GrElemBaseSize(GRET_POINT)); - tempg->type=GRET_POINT; - tempg->x1=x2-x; - tempg->y1=y2-y; - InsQue(tempg,root2.last); - x1=x2;y1=y2; - num++; - } - } while (cmd!=MSG_IP_R_UP); - if (num) { - tempg2=MAllocZ(GrElemBaseSize(GRET_POLYLINE)+ - (num+1)<<1*sizeof(I4)); - ptr=&tempg2->y1; - tempg=root2.next; - ptr[0]=x3; - ptr[1]=y3; - ptr+=sizeof(I4)<<1; - for (i=0;inext; - ptr[i<<1]=tempg->x1; - ptr[i<<1+1]=tempg->y1; - Free(tempg); - tempg=tempg1; - } - tempg2->type=GRET_POLYLINE; - tempg2->num=num+1; - InsQue(tempg2,insert_point->last); - GrEditUpdate(tempb,root); - *cur_num+=1; - } - break; - case GRET_SPEEDLINE: - root2.next=&root2; - root2.last=&root2; - x3=p1-x; y3=p2-y; - x1=p1; y1=p2; - x2=p1; y2=p2; - base->color=color&0xFFFFFF|ROP_EQU; - do { - cmd=GetMsg(&p1,&p2, - (1<linespeed=ip_speed; -//TODO: GrSpeedLine2(base,x1,y1,0,x2,y2,0,tempg->linespeed); - GrSpeedLine(base,x1,y1,x2,y2,tempg->linespeed); - tempg->type=GRET_SPEEDLINE_POINT; - tempg->x1=x2-x; - tempg->y1=y2-y; - InsQue(tempg,root2.last); - x1=x2;y1=y2; - } while (cmd!=MSG_IP_L_UP); - - num=0; - tempg=root2.next; - x1=x3;y1=y3; - while (tempg!=&root2) { - tempg1=tempg->next; - if (tempg->x1==x1 && tempg->y1==y1) { - RemQue(tempg); - Free(tempg); - } else { - num++; - x1=tempg->x1; - y1=tempg->y1; - } - tempg=tempg1; - } - - tempg2=MAllocZ(GrElemBaseSize(GRET_SPEEDLINE)+ - (num+1)*(sizeof(I4)*2+sizeof(double))); - ptr=&tempg2->y1; - tempg=root2.next; - ptr[0]=x3; - ptr[1]=y3; - ptr+=sizeof(I4)*2+sizeof(double); - x1=x3;y1=y3; - for (i=0;inext; - ptr[i<<2]=tempg->x1; - ptr[i<<2+1]=tempg->y1; - ptr[i<<2+2]><(double)=tempg->linespeed; - Free(tempg); - tempg=tempg1; - } - tempg2->type=GRET_SPEEDLINE; - tempg2->num=num+1; - InsQue(tempg2,insert_point->last); - GrEditUpdate(tempb,root); - *cur_num+=1; - break; - case GRET_POLYPOINT: - root2.next=&root2; - root2.last=&root2; - x3=p1-x; y3=p2-y; - x1=p1; y1=p2; - x2=p1; y2=p2; - base->color=color&0xFFFFFF|ROP_EQU; - do { - cmd=GetMsg(&p1,&p2, - (1<next; - if (tempg->x1==x1 && tempg->y1==y1) { - RemQue(tempg); - Free(tempg); - } else { - num++; - x1=tempg->x1; - y1=tempg->y1; - } - tempg=tempg1; - } - - tempg2=MAllocZ(GrElemBaseSize(GRET_POLYPOINT)+ - sizeof(I4)*2+(num*3+7)>>3); - ptr=&tempg2->y1; - ptr[0]=x3; - ptr[1]=y3; - ptr+=sizeof(I4)<<1; - x1=x3;y1=y3; - i=0; - tempg=root2.next; - while (tempg!=&root2) { - tempg1=tempg->next; - OrU4BitField(ptr,i, - GrElOffset[SignI8(tempg->x1-x1)+1+ - 3*(SignI8(tempg->y1-y1)+1)]); - i+=3; - x1=tempg->x1;y1=tempg->y1; - RemQue(tempg); - Free(tempg); - tempg=tempg1; - } - tempg2->type=GRET_POLYPOINT; - tempg2->num=num+1; - InsQue(tempg2,insert_point->last); - GrEditUpdate(tempb,root); - *cur_num+=1; - break; - case GRET_BSPLINE2: - case GRET_BSPLINE3: - case GRET_BSPLINE2_CLOSED: - case GRET_BSPLINE3_CLOSED: - root2.next=&root2; - root2.last=&root2; - num=0; - x3=p1-x; y3=p2-y; - x1=p1; y1=p2; - x2=p1; y2=p2; - do { - do { - base->color=color&0xFFFFFF|ROP_OR; - GrLine3(base,x1,y1,0,x2,y2,0); - cmd=GetMsg(&p1,&p2, - (1<color=color&0xFFFFFF|ROP_NAND; - GrLine3(base,x1,y1,0,x2,y2,0); - x2=p1; y2=p2; - } while (cmd!=MSG_IP_L_UP && cmd!=MSG_IP_R_UP); - base->color=color&0xFFFFFF|ROP_EQU; - if (cmd==MSG_IP_L_UP) { - GrLine3(base,x1,y1,0,x2,y2,0); - tempg=MAlloc(GrElemBaseSize(GRET_POINT)); - tempg->type=GRET_POINT; - tempg->x1=x2-x; - tempg->y1=y2-y; - InsQue(tempg,root2.last); - x1=x2;y1=y2; - num++; - } - } while (cmd!=MSG_IP_R_UP); - if (num) { - tempg2=MAllocZ(GrElemBaseSize(GRET_POLYLINE)+ - (num+1)*sizeof(P3I4)); - p=&tempg2->y1; - tempg=root2.next; - p[0].x=x3; - p[0].y=y3; - for (i=1;i<=num;i++) { - tempg1=tempg->next; - p[i].x=tempg->x1; - p[i].y=tempg->y1; - Free(tempg); - tempg=tempg1; - } - tempg2->type=eletype; - tempg2->num=num+1; - InsQue(tempg2,insert_point->last); - GrEditUpdate(tempb,root); - *cur_num+=1; - } - break; - } - } - } - } -} - - -void EditInsertGraphic(Ltf *l,I8 x,I8 y) -{ - BoolU4 old_preempt=Preempt(OFF); - I1 *st; - LtfEntry *ll; - LtfBinEntry *tempb; - I8 cur_num=0; - GrElem *root; - if (Fs!=l->mem_tss) - Debugger; - tempb=MAllocZ(sizeof(LtfBinEntry),l->mem_tss); - tempb->type=LTFBT_GRELEM; - tempb->size=GrElemBaseSize(GRET_END,FALSE); - tempb->data=MAllocZ(tempb->size,l->mem_tss); - if (st=EditPicture) { - ll=LtfPutSExt(l,st); - Free(st); - ll->bin_num=l->cur_bin_num; - tempb->num=l->cur_bin_num++; - ll->bin_data=tempb; - InsQue(tempb,l->bin_root.last); - Preempt(old_preempt); - root=GrElemsToQueue(tempb->data); - x+=StrLen(ll->display)*FONT_WIDTH; - if (!GrElemsInsert(tempb,&cur_num,root,x,y,TRUE)) { - Preempt(OFF); - RemQue(ll); - Free(ll,l->mem_tss); - Free(ll->display,l->mem_tss); - RemQue(tempb); - Free(tempb->data,l->mem_tss); - Free(tempb,l->mem_tss); - Preempt(old_preempt); - } - GrElemsDel(root); - } else { - Free(tempb->data,l->mem_tss); - Free(tempb,l->mem_tss); - } -} - - -public LtfEntry *LtfPutGrElem(Ltf *l,U1 *elems,U8 size,U1 *txt=NULL) -{ - I1 *st; - BoolU4 old_preempt=Preempt(OFF); - LtfEntry *ll; - LtfBinEntry *tempb; - tempb=MAllocZ(sizeof(LtfBinEntry),l->mem_tss); - tempb->type=LTFBT_GRELEM; - tempb->size=size; - tempb->data=MAlloc(size,l->mem_tss); - MemCpy(tempb->data,elems,size); - tempb->num=l->cur_bin_num; - InsQue(tempb,l->bin_root.last); - if (txt) - st=MSPrintF(txt,l->cur_bin_num++); - else - st=MSPrintF("$$PI,\"\",%d$$",l->cur_bin_num++); - ll=LtfPutSExt(l,st); - Free(st); - ll->bin_data=tempb; - Preempt(old_preempt); - return ll; -} - -#help_index "Graphics/GrElem;Ltf/Output" -public LtfEntry *PutGrElem(U1 *elems,U8 size,U1 *txt=NULL) -{ //If you set $FG,4$txt$FG$, -//then include dollarsigns ("$FG,4$$$PI ...$$$FG$") - Ltf *l; - if (l=Fs->cur_ltf) - return LtfPutGrElem(l,elems,size,txt); - return NULL; -} - -#help_index "Graphics/GrElem" -void EditExistingGraphic(Ltf *l,I8 x,I8 y) -{ - BoolU4 *old_preempt=Preempt(OFF); - LtfEntry *ll=l->cur_entry; - LtfBinEntry *tempb=ll->bin_data; - I8 i,cur_num=0,cmd,p1,p2,old_size=tempb->size,xx,yy; - GrElem *cur_elem,*old_GrElem=tempb->data, -// *root=GrElemsToQueue(old_GrElem),*tempg,*insert_point; - *root,*tempg,*insert_point; - BoolU4 old_inhibit=ip_inhibit_win_operations; - BoolU4 old_ip_double=Bt(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); - root=GrElemsToQueue(old_GrElem); - - cur_elem=root->next; - while (cur_elem->type!=GRET_END) { - cur_num++; - cur_elem=cur_elem->next; - } - - tempb->data=MAllocIdentical(old_GrElem); - Preempt(old_preempt); - do { - i=PopUpGrElemsEditChoice; - switch (i) { - case GED_PICK_TEXT: - cur_num=PopUpPickGrElem(root,cur_num); - break; - case GED_PICK_GRAPHICALLY: - ip_inhibit_win_operations=TRUE; - Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); - l->cur_GrElem=tempb->data; - l->cur_sub_grelem=0; - GetMsg(&p1,&p2,1<cur_sub_grelem; - l->cur_GrElem=NULL; - AssignBit(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK,old_ip_double); - ip_inhibit_win_operations=old_inhibit; - break; - case GED_SET_ORIGIN: - ip_inhibit_win_operations=TRUE; - Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); - GetMsg(&p1,&p2,1<crt_flags,CRTf_NO_DOUBLE_CLICK,old_ip_double); - ip_inhibit_win_operations=old_inhibit; - break; - case GED_TRANSFORM: - EditGrElemTransform(root); - GrEditUpdate(tempb,root); - break; - case GED_SHIFT_ORIGIN: - ip_inhibit_win_operations=TRUE; - Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); - insert_point=GrNumToQueue(root,cur_num); - tempg=MAlloc(GrElemBaseSize(GRET_SHIFT)); - tempg->type=GRET_SHIFT; - tempg->x1=0; - tempg->y1=0; - InsQue(tempg,insert_point->last); - GetMsg(&p1,&p2,1<x1=p1-xx; - tempg->y1=p2-yy; - GrEditUpdate(tempb,root); - } while (cmd!=MSG_IP_L_UP); - AssignBit(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK,old_ip_double); - ip_inhibit_win_operations=old_inhibit; - break; - case GED_INSERT: - GrElemsInsert(tempb,&cur_num,root,x,y,FALSE); - break; - case GED_DELETE: - cur_elem=GrNumToQueue(root,cur_num); - if (cur_elem!=root) { - RemQue(cur_elem); - Free(cur_elem); - GrEditUpdate(tempb,root); - } - break; - case GED_EDIT: - if (GrElemTextEdit(root)) - GrEditUpdate(tempb,root); - break; - } - } while (i!=GED_CANCEL && i!=GED_END); - Preempt(OFF); - if (i==GED_END) - Free(old_GrElem); - else { - Free(tempb->data); - tempb->data=old_GrElem; - tempb->size=old_size; - } - Preempt(old_preempt); - GrElemsDel(root); -} - -#help_index "Graphics" - \ No newline at end of file diff --git a/LT/Adam/Gr/GrMath.APZ b/LT/Adam/Gr/GrMath.APZ deleted file mode 100644 index 24f5e3e..0000000 --- a/LT/Adam/Gr/GrMath.APZ +++ /dev/null @@ -1,569 +0,0 @@ -#help_index "Graphics/Math" - -I8 GrXOffsets[8]={-1,0,1,-1,1,-1,0,1}, - GrYOffsets[8]={-1,-1,-1,0,0,1,1,1}; - -public void Line(void *aux_data, - I8 x1,I8 y1,I8 z1, - I8 x2,I8 y2,I8 z2, - void plot_cb(void *aux,I8 x,I8 y,I8 z), - I8 step=1,I8 start=0) -{ - I8 i,j,d,dx=x2-x1,dy=y2-y1,dz=z2-z1; - I8 adx=AbsI8(dx),ady=AbsI8(dy),adz=AbsI8(dz); - - if (adx>=ady) { - if (adx>=adz) { - if (d=adx) { - if (dx>=0) - dx=0x100000000; - else - dx=-0x100000000; - dy=dy<<32/d; - dz=dz<<32/d; - } - } else { - if (d=adz) { - dx=dx<<32/d; - dy=dy<<32/d; - if (dz>=0) - dz=0x100000000; - else - dz=-0x100000000; - } - } - } else { - if (ady>=adz) { - if (d=ady) { - dx=dx<<32/d; - if (dy>=0) - dy=0x100000000; - else - dy=-0x100000000; - dz=dz<<32/d; - } - } else { - if (d=adz) { - dx=dx<<32/d; - dy=dy<<32/d; - if (dz>=0) - dz=0x100000000; - else - dz=-0x100000000; - } - } - } - x1<<=32; y1<<=32; z1<<=32; - for (j=0;j=ady1) - d1=(adx1>=adz1) ? adx1:adz1; - else - d1=(ady1>=adz1) ? ady1:adz1; - d1<<=1; - if (d1) { - dx1=dx1<<32/d1; - dy1=dy1<<32/d1; - dz1=dz1<<32/d1; - } - - if (adx2>=ady2) - d2=(adx2>=adz2) ? adx2:adz2; - else - d2=(ady2>=adz2) ? ady2:adz2; - d2<<=1; - if (d2) { - dx2=dx2<<32/d2; - dy2=dy2<<32/d2; - dz2=dz2<<32/d2; - } - - x1<<=32; y1<<=32; z1<<=32; - for (j=0;j<=d1;j++) { - x2=x1; y2=y1; z2=z1; - for (i=0;i<=d2;i++) { - plot_cb(aux_data,x2.i4[1],y2.i4[1],z2.i4[1]); - x2+=dx2; y2+=dy2; z2+=dz2; - } - x1+=dx1; y1+=dy1; z1+=dz1; - } -} - -#help_index "Graphics/Math/3D Transformation" -I8 gr_scale; -gr_scale.u4[0]=0; -gr_scale.u4[1]=1; - -void *gr_screen_capture=NULL; -public void GrRotate(I8 *r,I8 *x,I8 *y,I8 *z) -{ - I8 x1,y1,z1,xx=*x,yy=*y,zz=*z; - x1=(r[0]*xx+r[1]*yy+r[2]*zz+r[3])>>32; - y1=(r[4]*xx+r[5]*yy+r[6]*zz+r[7])>>32; - z1=(r[8]*xx+r[9]*yy+r[10]*zz+r[11])>>32; - *x=x1;*y=y1;*z=z1; -} - -public void GrTransform(GrBitMap *base,I8 *x,I8 *y,I8 *z) -{ - GrRotate(base->r,x,y,z); - *x+=base->x; - *y+=base->y; - *z+=base->z; -} - - -public I8 *GrTheta(double theta,TssStruct *tss=NULL) -{ - double my_cos,my_sin; - I8 *r=MAllocZ(sizeof(I8)*16,tss); - - my_cos=Cos(theta)*gr_scale; - my_sin=Sin(theta)*gr_scale; - r[0]=my_cos; - r[5]=my_cos; - r[4]=my_sin; - r[1]=-my_sin; - r[10]=gr_scale; - return r; -} - -public I8 *GrPhi(double phi,TssStruct *tss=NULL) -{ - double my_cos,my_sin; - I8 *r=MAllocZ(sizeof(I8)*16,tss); - - my_cos=Cos(phi)*gr_scale; - my_sin=Sin(phi)*gr_scale; - r[5]=my_cos; - r[10]=my_cos; - r[9]=my_sin; - r[6]=-my_sin; - r[0]=gr_scale; - return r; -} - -public I8 *GrScaleMat(I8 *m1,double s,TssStruct *tss=NULL) -{ - I8 i,*r=MAllocZ(sizeof(I8)*16,tss); - for (i=0;i<16;i++) - r[i]=m1[i]*s; - return r; -} - -public I8 *GrMulMat(I8 *m1,I8 *m2,TssStruct *tss=NULL) -{ - I8 *r=MAllocZ(sizeof(I8)*16,tss); - I8 i,j,k; - double d; - for (i=0;i<4;i++) { - for (j=0;j<4;j++) { - for (k=0;k<4;k++) { - d=m1[k+4*j]; - d*=m2[i+4*k]; - d/=gr_scale; - r[i+4*j]+=d; - } - } - } - return r; -} - -public I8 GrDetMat(I8 *m1) -{ - I8 i; - double m[16],d; - for (i=0;i<16;i++) - m[i]=m1[i]/(1.0*0x100000000); - d=m[0]*(m[5]*m[10]-m[6]*m[9])- - m[1]*(m[4]*m[10]-m[6]*m[8])+ - m[2]*(m[4]*m[9]-m[5]*m[8]); - return d*0x100000000; -} - -public void GrScalePenWidth(GrBitMap *base) -{ - I8 d; - if (base->flags&BMF_TRANSFORMATION) { - if (base->pen_width) { - d=base->pen_width*GrDetMat(base->r)+0x80000000; - base->pen_width=d.u4[1]; - if (base->pen_width<1) - base->pen_width=1; - } - } -} - -public void GrSetIdent(I8 *r) -{ - MemSet(r,0,16<<3); - r[0].u4[1]=1; - r[5].u4[1]=1; - r[10].u4[1]=1; - r[15].u4[1]=1; -} - -public void GrSetTranslation(I8 *r,I8 x,I8 y,I8 z) -{ - r[3]=x<<32; - r[7]=y<<32; - r[11]=z<<32; -} - -#help_index "Graphics/Math" -public void Circle(void *aux_data, - I8 cx,I8 cy,I8 cz, - I8 radius, - void plot_cb(void *aux,I8 x,I8 y,I8 z), - I8 step=1, - double start_rad=0, - double len_rad=pi2) -{ - I8 i,j,len=len_rad*radius; - I8 x,y,x1,y1,s1,s2,c; - double t; - if (radius<0) return; - if (!radius) { - plot_cb(aux_data,cx,cy,cz); - return; - } - t=1.0/radius; - s1=(1<<24)*Sin(t); - s2=-s1; - c=(1<<24)*Cos(t); - if (start_rad) { - x=radius*Cos(start_rad); - y=-radius*Sin(start_rad); - } else { - x=radius; - y=0; - } - x<<=8; - y<<=8; - for (i=0;i<=len;i+=step) { - plot_cb(aux_data,cx+x>>8,cy+y>>8,cz); - for (j=0;j>24; - y1=(s2*x+c*y)>>24; - x=x1; y=y1; - } - } -} - -public void Ellipse(void *aux_data, - I8 cx,I8 cy,I8 cz, - I8 x_radius,I8 y_radius, - void plot_cb(void *aux,I8 x,I8 y,I8 z), - double rot_angle=0, - I8 step=1, - double start_rad=0, - double len_rad=pi2) -{ - I8 i,j,len; - I8 x,y,x1,y1,x2,y2, s1,s2,c, s12,s22,c2; - double t; - if (x_radius<0 || y_radius<0 || step<1) - return; - if (!x_radius && !y_radius) { - plot_cb(aux_data,cx,cy,cz); - return; - } - if (x_radius>=y_radius) { - t=1.0/x_radius; - len=len_rad*x_radius; - } else { - t=1.0/y_radius; - len=len_rad*y_radius; - } - - s1=(1<<24)*Sin(t); - s2=-s1; - c=(1<<24)*Cos(t); - - s12=(1<<24)*Sin(rot_angle); - s22=-s12; - c2=(1<<24)*Cos(rot_angle); - - if (start_rad) { - x=x_radius*Cos(start_rad); - y=-x_radius*Sin(start_rad); - } else { - x=x_radius; - y=0; - } - x<<=8; - y<<=8; - x2=x; - y2=y; - - y1=y2*y_radius/x_radius; - x=(c2*x2+s12*y1)>>24; - y=(s22*x2+c2*y1)>>24; - - for (i=0;i<=len;i+=step) { - plot_cb(aux_data,cx+x>>8,cy+y>>8,cz); - for (j=0;j>24; - y1=(s2*x2+c*y2)>>24; - x2=x1; - y2=y1; - y1=y1*y_radius/x_radius; - x=(c2*x1+s12*y1)>>24; - y=(s22*x1+c2*y1)>>24; - } - } -} - -public I8 DistP3I4(P3I4 *p1,P3I4 *p2) -{ - return Sqrt(SqrI8(p1->x-p2->x)+SqrI8(p1->y-p2->y)+SqrI8(p1->z-p2->z)); -} - -public void Bezier2(void *aux_data,P3I4 *ctrl,void plot_cb(void *aux,I8 x,I8 y,I8 z)) -{//2nd order - I8 x,y,z,xx,yy,zz,dx,dy,dz,d_max; - double x0=ctrl[0].x,y0=ctrl[0].y,z0=ctrl[0].z; - double x1=ctrl[1].x-x0,y1=ctrl[1].y-y0,z1=ctrl[1].z-z0; - double x2=ctrl[2].x-x0,y2=ctrl[2].y-y0,z2=ctrl[2].z-z0; - double t,d=DistP3I4(&ctrl[0],&ctrl[1])+ - DistP3I4(&ctrl[1],&ctrl[2])+ - DistP3I4(&ctrl[2],&ctrl[0]), - s=0.5/d,t1,t2; - xx=x0; yy=y0; zz=z0; - for (t=0.0;t<=1.0;t+=s) { - t1=t*(1.0-t); - t2=t*t; - x=x0+x1*t1+x2*t2; - y=y0+y1*t1+y2*t2; - z=z0+z1*t1+z2*t2; - dx=AbsI8(x-xx); - dy=AbsI8(y-yy); - dz=AbsI8(z-zz); - if (dx>dy) - d_max=dx; - else - d_max=dy; - if (dz>d_max) - d_max=dz; - if (!d_max) - s*=1.1; - else { - s*=0.9; - plot_cb(aux_data,x,y,z); - xx=x;yy=y;zz=z; - } - } -} - -public void Bezier3(void *aux_data,P3I4 *ctrl,void plot_cb(void *aux,I8 x,I8 y,I8 z)) -{ //3rd order - I8 x,y,z,xx,yy,zz,dx,dy,dz,d_max; - double x0=ctrl[0].x,y0=ctrl[0].y,z0=ctrl[0].z; - double x1=ctrl[1].x-x0,y1=ctrl[1].y-y0,z1=ctrl[1].z-z0; - double x2=ctrl[2].x-x0,y2=ctrl[2].y-y0,z2=ctrl[2].z-z0; - double x3=ctrl[3].x-x0,y3=ctrl[3].y-y0,z3=ctrl[3].z-z0; - double t,d=DistP3I4(&ctrl[0],&ctrl[1])+ - DistP3I4(&ctrl[1],&ctrl[2])+ - DistP3I4(&ctrl[2],&ctrl[3])+ - DistP3I4(&ctrl[3],&ctrl[0]), - s=0.5/d,nt,t1,t2,t3; - xx=x0; yy=y0; zz=z0; - for (t=0.0;t<=1.0;t+=s) { - nt=1.0-t; - t1=t*nt*nt; - t2=t*t*nt; - t3=t*t*t; - x=x0+x1*t1+x2*t2+x3*t3; - y=y0+y1*t1+y2*t2+y3*t3; - z=z0+z1*t1+z2*t2+z3*t3; - dx=AbsI8(x-xx); - dy=AbsI8(y-yy); - dz=AbsI8(z-zz); - if (dx>dy) - d_max=dx; - else - d_max=dy; - if (dz>d_max) - d_max=dz; - if (!d_max) - s*=1.1; - else { - s*=0.9; - plot_cb(aux_data,x,y,z); - xx=x;yy=y;zz=z; - } - } -} - -public void BSpline2(void *aux_data,P3I4 *ctrl,I8 cnt,void plot_cb(void *aux,I8 x,I8 y,I8 z),BoolU4 closed=FALSE) -{ //2nd order - I8 i,j; - P3I4 *c; - if (cnt<3) return; - if (closed) { - cnt++; - c=MAlloc(sizeof(P3I4)*(cnt*2-1)); - j=1; - for (i=0;ibrush) { - GrBlot(base,x,y,base->brush); - return; - } - if (base->flags & BMF_SCREEN_BITMAP) { - if (x<0) draw=FALSE; - x+=base->win_tss->win_pixel_left; - if (x>base->win_tss->win_pixel_right) draw=FALSE; - - if (y<0) draw=FALSE; - y+=base->win_tss->win_pixel_top; - if (y>base->win_tss->win_pixel_bottom) draw=FALSE; - if (x>=base->width) draw=FALSE; - if (y>=base->height) draw=FALSE; - if (IsPixelCovered(base->win_tss,x,y)) draw=FALSE; - } else { - if (x<0) draw=FALSE; - if (x>=base->width) draw=FALSE; - if (y<0) draw=FALSE; - if (y>=base->height) draw=FALSE; - } - if (draw) - GrPlot0(base,x,y); -} - -public I8 GrPeek(GrBitMap *base,I8 x,I8 y) -{ //Clipping but No transformation - BoolU4 peek=TRUE; - if (base->flags & BMF_SCREEN_BITMAP) { - if (x<0) peek=FALSE; - x+=base->win_tss->win_pixel_left; - if (x>base->win_tss->win_pixel_right) peek=FALSE; - - if (y<0) peek=FALSE; - y+=base->win_tss->win_pixel_top; - if (y>base->win_tss->win_pixel_bottom) peek=FALSE; - if (x>=base->width) peek=FALSE; - if (y>=base->height) peek=FALSE; - if (IsPixelCovered(base->win_tss,x,y)) peek=FALSE; - } else { - if (x<0) peek=FALSE; - if (x>=base->width) peek=FALSE; - if (y<0) peek=FALSE; - if (y>=base->height) peek=FALSE; - } - if (peek) - return GrPeek0(base,x,y); - else - return -1; -} - -#define CC_LEFT 1 -#define CC_RIGHT 2 -#define CC_TOP 4 -#define CC_BOTTOM 8 - -U8 ClipCode(I8 x,I8 y,I8 right,I8 bottom) -{ - U8 result; - if (y>bottom) - result=CC_BOTTOM; - else if (y<0) - result=CC_TOP; - else - result=0; - if (x>right) - result|=CC_RIGHT; - else if (x<0) - result|=CC_LEFT; - return result; -} - -public BoolU8 ClipLine(GrBitMap *base,I8 *x1,I8 *y1,I8 *x2,I8 *y2) -{ - I8 x,y,right,bottom; - U8 cc,cc1,cc2; - if (base->flags & BMF_SCREEN_BITMAP) { - right=base->win_tss->win_pixel_right-base->win_tss->win_pixel_left-1; - if (base->width-1width-1; - bottom=base->win_tss->win_pixel_bottom-base->win_tss->win_pixel_top-1; - if (base->height-1height-1; - } else { - right=base->width-1; - bottom=base->height-1; - } - cc1=ClipCode(*x1,*y1,right,bottom); - cc2=ClipCode(*x2,*y2,right,bottom); - do { - if (!(cc1|cc2)) - return TRUE; - if (cc1&cc2) - return FALSE; - - if (cc1) - cc=cc1; - else - cc=cc2; - - if (cc&CC_BOTTOM) { - x=*x1+(*x2-*x1)*(bottom-*y1)/(*y2-*y1); - y=bottom; - } else if (cc&CC_TOP) { - x=*x1+(*x2-*x1)*(-*y1)/(*y2-*y1); - y=0; - } else if (cc&CC_RIGHT) { - y=*y1+(*y2-*y1)*(right-*x1)/(*x2-*x1); - x=right; - } else { - y=*y1+(*y2-*y1)*(-*x1)/(*x2-*x1); - x=0; - } - - if (cc==cc1) { - *x1=x; - *y1=y; - cc1=ClipCode(*x1,*y1,right,bottom); - } else { - *x2=x; - *y2=y; - cc2=ClipCode(*x2,*y2,right,bottom); - } - } while (TRUE); -} - -I8 GrFloodFillRay(GrBitMap *base,I8 x,I8 y) -{ - I8 cnt,j,x1,ray_len,ray_len2; - - cnt=ray_len=GrRayLen(base,&x,y); - - y--; - j=ray_len; - x1=x; - while (j>0) { - if (ray_len2=GrRayLenMinus(base,x1,y)) - cnt+=GrFloodFillRay(base,x1,y); - j-=ray_len2+1; - x1-=ray_len2+1; - } - - y+=2; - j=ray_len; - x1=x; - while (j>0) { - if (ray_len2=GrRayLenMinus(base,x1,y)) - cnt+=GrFloodFillRay(base,x1,y); - j-=ray_len2+1; - x1-=ray_len2+1; - } - return cnt; -} - - -public I8 GrFloodFill(GrBitMap *base,I8 x,I8 y,BoolU4 not_color=TRUE) -{ - I8 cnt=0,j,c,old_color2=base->color2,old_flags=base->flags; - GrBitMap *old_brush; - if (base->flags & BMF_DONT_DRAW) //TODO - return 0; - old_brush=base->brush; - base->brush=NULL; - j=GrPeek(base,x,y); - if (j>=0) { - switch (base->type) { - case BMT_COLOR4: - if (not_color) { - base->color2=base->color&0xFFFFFF; - base->flags|=BMF_FILL_NOT_COLOR; - } else { - base->color2=j; - if (base->color2==base->color&0xFFFFFF) - break; - base->flags&=~BMF_FILL_NOT_COLOR; - } - if (not_color && j!=base->color2 || - !not_color) - cnt=GrFloodFillRay(base,x,y); - break; - case BMT_MONO: - c=(base->color&0xFFFFFF)?1:0; - if (not_color) { - base->color2=c; - base->flags|=BMF_FILL_NOT_COLOR; - } else { - base->color2=(j)?1:0; - if (base->color2==c) - break; - base->flags&=~BMF_FILL_NOT_COLOR; - } - if (not_color && j!=c || - !not_color) - cnt=GrFloodFillRay(base,x,y); - break; - } - } - base->brush=old_brush; - base->flags=old_flags; - base->color2=old_color2; - return cnt; -} - -public void GrPlot2(GrBitMap *base,I8 x,I8 y,I8 z) -{ //Clipping and transformation but no pen_width - if (base->flags & BMF_TRANSFORMATION) { - GrRotate(base->r,&x,&y,&z); - x+=base->x; - y+=base->y; - z+=base->z; - } - GrPlot(base,x,y); -} - -public void GrPlot3(GrBitMap *base,I8 x,I8 y,I8 z) -{ //clipping and transformation and pen width - - I8 i,j,w,old_color,dist; - if (base->flags & BMF_TRANSFORMATION) { - GrRotate(base->r,&x,&y,&z); - x+=base->x; - y+=base->y; - z+=base->z; - } - w=base->pen_width>>1; - if (w<=0) - GrPlot(base,x,y); - else if (base->pen_widthcolor; - if (base->color.u1[3]==ROPB_EQU) - base->color.u1[3]=ROPB_TRANSPARENT; - if (GrBlot(base,x-w,y-w,gr_pen_brushes[base->pen_width])) { - if (base->flags & BMF_SCREEN_BITMAP) { - x+=base->win_tss->win_pixel_left; - y+=base->win_tss->win_pixel_top; - } - if (base->flags & BMF_LOCATE_NEAREST) { - dist=DistI8(x,y,base->cur_x,base->cur_y); - if (distnearest_dist) { - base->nearest_sub_grelem=base->cur_sub_grelem; - base->nearest_dist=dist; - } - } - } - base->color=old_color; - } else if (base->pen_width & 1) { - for (i=-w;i<=w;i++) - for (j=-w;j<=w;j++) - GrPlot(base,x+i,y+j); - } else { - for (i=-w;ibrush - BoolU4 draw=TRUE; - - if (x<0) draw=FALSE; - x+=base->win_tss->win_pixel_left; - if (x>base->win_tss->win_pixel_right) draw=FALSE; - - if (y<0) draw=FALSE; - y+=base->win_tss->win_pixel_top; - if (y>base->win_tss->win_pixel_bottom) draw=FALSE; - - if (x>=base->width) draw=FALSE; - if (y>=base->height) draw=FALSE; - - if (draw) { - if (base->brush) - GrBlot(base,x,y,base->brush); - else - GrPlot0(base,x,y); - } -} - -void GrLinePlot(GrBitMap *base,I8 x,I8 y,I8 z) -{ - nounusedwarn z; - GrPlot(base,x,y); -} - -public void GrLine(GrBitMap *base,I8 x1,I8 y1,I8 x2,I8 y2,I8 step=1,I8 start=0) -{ - if (ClipLine(base,&x1,&y1,&x2,&y2)) - Line(base,x1,y1,0,x2,y2,0,&GrLinePlot,step,start); -} - -public void GrCircle(GrBitMap *base,I8 cx,I8 cy,I8 radius, - I8 step=1,double start_rad=0,double len_rad=pi2) -{ - Circle(base,cx,cy,0,radius,&GrLinePlot,step,start_rad,len_rad); -} - -public void GrEllipse(GrBitMap *base, - I8 cx,I8 cy, - I8 x_radius,I8 y_radius, - double rot_angle=0, - I8 step=1, - double start_rad=0, - double len_rad=pi2) -{ - Ellipse(base,cx,cy,0,x_radius,y_radius,&GrLinePlot,rot_angle,step,start_rad,len_rad); -} - -public void Gr2Bezier(GrBitMap *base,P3I4 *ctrl) -{ - Bezier2(base,ctrl,&GrLinePlot); -} - -public void Gr3Bezier(GrBitMap *base,P3I4 *ctrl) -{ - Bezier3(base,ctrl,&GrLinePlot); -} - -public void Gr2BSpline(GrBitMap *base,P3I4 *ctrl,I8 cnt,BoolU4 closed=FALSE) -{ - BSpline2(base,ctrl,cnt,&GrLinePlot,closed); -} - -public void Gr3BSpline(GrBitMap *base,P3I4 *ctrl,I8 cnt,BoolU4 closed=FALSE) -{ - BSpline3(base,ctrl,cnt,&GrLinePlot,closed); -} - -public void GrLine2(GrBitMap *base,I8 x1,I8 y1,I8 z1,I8 x2,I8 y2,I8 z2,I8 step=1,I8 start=0) -{ //transformation but not pen width - if (base->flags & BMF_TRANSFORMATION) { - GrRotate(base->r,&x1,&y1,&z1); - x1+=base->x; - y1+=base->y; - z1+=base->z; - GrRotate(base->r,&x2,&y2,&z2); - x2+=base->x; - y2+=base->y; - z2+=base->z; - } - if (ClipLine(base,&x1,&y1,&x2,&y2)) - Line(base,x1,y1,0,x2,y2,0,&GrLinePlot,step,start); -} - -void GrLine3Plot(GrBitMap *base,I8 x,I8 y,I8 z) -{ - GrPlot3(base,x,y,z); -} - -public void GrLine3(GrBitMap *base,I8 x1,I8 y1,I8 z1,I8 x2,I8 y2,I8 z2,I8 step=1,I8 start=0) -{ //transformation with pen width - U8 old_flags=base->flags; - - if (base->flags & BMF_TRANSFORMATION) { - GrRotate(base->r,&x1,&y1,&z1); - x1+=base->x; - y1+=base->y; - z1+=base->z; - GrRotate(base->r,&x2,&y2,&z2); - x2+=base->x; - y2+=base->y; - z2+=base->z; - } - if (ClipLine(base,&x1,&y1,&x2,&y2)) { - base->flags&=~BMF_TRANSFORMATION; - Line(base,x1,y1,0,x2,y2,0,&GrLine3Plot,step,start); - base->flags=old_flags; - } -} - -public void GrText3(GrBitMap *base,I8 x1,I8 y1,I8 z1,I1 *s) -{ //transformation - if (base->flags & BMF_TRANSFORMATION) { - GrRotate(base->r,&x1,&y1,&z1); - x1+=base->x; - y1+=base->y; - z1+=base->z; - } - GrText(base,x1,y1,s); -} - -public void GrCircle3(GrBitMap *base,I8 cx,I8 cy,I8 cz,I8 radius, - I8 step=1,double start_rad=0,double len_rad=pi2) -{ //transformation with pen width - I8 x,y,z; - double m1,a1,m2; - if (base->flags & BMF_TRANSFORMATION) { - base->flags&=~BMF_TRANSFORMATION; - GrRotate(base->r,&cx,&cy,&cz); - cx+=base->x; - cy+=base->y; - cz+=base->z; - - radius<<=24; - - x=radius; y=0; z=0; - GrRotate(base->r,&x,&y,&z); - R2P(&m1,&a1,x,y); - - x=0; y=radius; z=0; - GrRotate(base->r,&x,&y,&z); - m2=Sqrt(x*x+y*y); - - Ellipse(base,cx,cy,cz, - m1/0x1000000,m2/0x1000000, - &GrLine3Plot,-a1,step,start_rad,len_rad); - base->flags|=BMF_TRANSFORMATION; - } else - Circle(base,cx,cy,cz,radius,&GrLine3Plot,step,start_rad,len_rad); -} - - -public void GrEllipse3(GrBitMap *base, - I8 cx,I8 cy,I8 cz, - I8 x_radius,I8 y_radius, - double rot_angle=0, - I8 step=1, - double start_rad=0, - double len_rad=pi2) -{ - I8 x,y,z; - double m1,a1,m2,a2,s,c; - if (base->flags & BMF_TRANSFORMATION) { - base->flags&=~BMF_TRANSFORMATION; - GrRotate(base->r,&cx,&cy,&cz); - cx+=base->x; - cy+=base->y; - cz+=base->z; - - c=Cos(rot_angle); - s=Sin(rot_angle); - - x_radius<<=24; - y_radius<<=24; - - x=x_radius*c; - y=x_radius*s; - z=0; - GrRotate(base->r,&x,&y,&z); - R2P(&m1,&a1,x,y); - - x=-y_radius*s; - y=y_radius*c; - z=0; - GrRotate(base->r,&x,&y,&z); - R2P(&m2,&a2,x,y); - m2=m2*Abs(Sin(a2-a1)); - - Ellipse(base,cx,cy,cz, - m1/0x1000000,m2/0x1000000,&GrLine3Plot,-a1,step,start_rad,len_rad); - base->flags|=BMF_TRANSFORMATION; - } else - Ellipse(base,cx,cy,cz,x_radius,y_radius,&GrLine3Plot,rot_angle,step,start_rad,len_rad); -} - - -public I8 GrFloodFill3(GrBitMap *base,I8 x1,I8 y1,I8 z1,BoolU4 not_color=TRUE) -{ //transformation - I8 cnt,old_flags=base->flags; - - if (base->flags & BMF_TRANSFORMATION) { - GrRotate(base->r,&x1,&y1,&z1); - x1+=base->x; - y1+=base->y; - z1+=base->z; - } - base->flags&=~BMF_TRANSFORMATION; - cnt=GrFloodFill(base,x1,y1,not_color); - base->flags=old_flags; - return cnt; -} - -public void GrBox3(GrBitMap *base,I8 x,I8 y,I8 z,I8 w,I8 h) -{ //Clipping and transformation - I8 x2,y2,z2,x3,y3,z3; - GrBitMap *old_brush=base->brush; - - if (base->flags & BMF_TRANSFORMATION) { - base->brush=NULL; - x2=x+w; y2=y; z2=z; - x3=x; y3=y+h; z3=z; - GrRotate(base->r,&x,&y,&z); - x+=base->x; - y+=base->y; - z+=base->z; - GrRotate(base->r,&x2,&y2,&z2); - x2+=base->x; - y2+=base->y; - z2+=base->z; - GrRotate(base->r,&x3,&y3,&z3); - x3+=base->x; - y3+=base->y; - z3+=base->z; - Box(base,x,y,z,x2,y2,z2,x3,y3,z3,&GrLinePlot); - base->brush=old_brush; - } else - GrBox(base,x,y,w,h); -} - -public BoolU8 GrBlot3(GrBitMap *base,I8 x1,I8 y1,I8 z1,GrBitMap *img) -{ //Clipping and transformation - I8 reg i,j,w=img->width,h=img->height,old_color=base->color,reg color, - d1,dx1,dy1,dz1, - reg d2,dx2,dy2,dz2, - adx1,ady1,adz1, - adx2,ady2,adz2, - x2,y2,z2,x3,y3,z3, - dw,reg dh,x,y; - GrBitMap *old_brush=base->brush; - - if (base->flags & BMF_TRANSFORMATION) { - x2=x1+w; y2=y1; z2=z1; - x3=x1; y3=y1+h; z3=z1; - GrRotate(base->r,&x1,&y1,&z1); - x1+=base->x; - y1+=base->y; - z1+=base->z; - GrRotate(base->r,&x2,&y2,&z2); - x2+=base->x; - y2+=base->y; - z2+=base->z; - GrRotate(base->r,&x3,&y3,&z3); - x3+=base->x; - y3+=base->y; - z3+=base->z; - - dx1=x2-x1; dy1=y2-y1; dz1=z2-z1; - dx2=x3-x1; dy2=y3-y1; dz2=z3-z1; - adx1=AbsI8(dx1); ady1=AbsI8(dy1); adz1=AbsI8(dz1); - adx2=AbsI8(dx2); ady2=AbsI8(dy2); adz2=AbsI8(dz2); - - if (adx1>=ady1) - d1=(adx1>=adz1) ? adx1:adz1; - else - d1=(ady1>=adz1) ? ady1:adz1; - d1<<=1; - if (d1) { - dx1=dx1<<32/d1; - dy1=dy1<<32/d1; - dz1=dz1<<32/d1; - } else - return FALSE; - - if (adx2>=ady2) - d2=(adx2>=adz2) ? adx2:adz2; - else - d2=(ady2>=adz2) ? ady2:adz2; - d2<<=1; - if (d2) { - dx2=dx2<<32/d2; - dy2=dy2<<32/d2; - dz2=dz2<<32/d2; - } else - return FALSE; - - base->brush=NULL; - - x=0;y=0; - dw=w<<32/d1; - dh=h<<32/d2; - - x1<<=32; y1<<=32; z1<<=32; - for (j=0;j<=d1;j++) { - x2=x1; y2=y1; z2=z1; - y=0; - for (i=0;i<=d2;i++) { - color=GrPeek(img,x.i4[1],y.i4[1]); - if (color>=0 && - (old_color.u1[3]!=ROPB_TRANSPARENT || - color&0xFFFFFF!=img->bkcolor&0xFFFFFF)) { - base->color=old_color&0xFF000000+color; - GrPlot(base,x2.i4[1],y2.i4[1]); - } - x2+=dx2; y2+=dy2; z2+=dz2; - y+=dh; - } - x1+=dx1; y1+=dy1; z1+=dz1; - x+=dw; - } - base->color=old_color; - base->brush=old_brush; - return TRUE; //TODO: check off screen - } else - return GrBlot(base,x1,y1,img); -} - -public void Gr2Bezier3(GrBitMap *base,P3I4 *ctrl) -{ - I8 i,x,y,z; - P3I4 *ctrl2; - if (base->flags & BMF_TRANSFORMATION) { - ctrl2=MAlloc(sizeof(P3I4)*3); - for (i=0;i<3;i++) { - x=ctrl[i].x; - y=ctrl[i].y; - z=ctrl[i].z; - GrRotate(base->r,&x,&y,&z); - ctrl2[i].x=x+base->x; - ctrl2[i].y=y+base->y; - ctrl2[i].z=z+base->z; - } - base->flags&=~BMF_TRANSFORMATION; - Bezier2(base,ctrl2,&GrLine3Plot); - base->flags|=BMF_TRANSFORMATION; - Free(ctrl2); - } else - Bezier2(base,ctrl,&GrLine3Plot); -} - -public void Gr3Bezier3(GrBitMap *base,P3I4 *ctrl) -{ - I8 i,x,y,z; - P3I4 *ctrl2; - if (base->flags & BMF_TRANSFORMATION) { - ctrl2=MAlloc(sizeof(P3I4)*4); - for (i=0;i<4;i++) { - x=ctrl[i].x; - y=ctrl[i].y; - z=ctrl[i].z; - GrRotate(base->r,&x,&y,&z); - ctrl2[i].x=x+base->x; - ctrl2[i].y=y+base->y; - ctrl2[i].z=z+base->z; - } - base->flags&=~BMF_TRANSFORMATION; - Bezier3(base,ctrl2,&GrLine3Plot); - base->flags|=BMF_TRANSFORMATION; - Free(ctrl2); - } else - Bezier3(base,ctrl,&GrLine3Plot); -} - -public void Gr2BSpline3(GrBitMap *base,P3I4 *ctrl,I8 cnt,BoolU4 closed=FALSE) -{ - I8 i,x,y,z; - P3I4 *ctrl2; - if (base->flags & BMF_TRANSFORMATION) { - ctrl2=MAlloc(sizeof(P3I4)*cnt); - for (i=0;ir,&x,&y,&z); - ctrl2[i].x=x+base->x; - ctrl2[i].y=y+base->y; - ctrl2[i].z=z+base->z; - } - base->flags&=~BMF_TRANSFORMATION; - BSpline2(base,ctrl2,cnt,&GrLine3Plot,closed); - base->flags|=BMF_TRANSFORMATION; - Free(ctrl2); - } else - BSpline2(base,ctrl,cnt,&GrLine3Plot,closed); -} - -public void Gr3BSpline3(GrBitMap *base,P3I4 *ctrl,I8 cnt,BoolU4 closed=FALSE) -{ - I8 i,x,y,z; - P3I4 *ctrl2; - if (base->flags & BMF_TRANSFORMATION) { - ctrl2=MAlloc(sizeof(P3I4)*cnt); - for (i=0;ir,&x,&y,&z); - ctrl2[i].x=x+base->x; - ctrl2[i].y=y+base->y; - ctrl2[i].z=z+base->z; - } - base->flags&=~BMF_TRANSFORMATION; - BSpline3(base,ctrl2,cnt,&GrLine3Plot,closed); - base->flags|=BMF_TRANSFORMATION; - Free(ctrl2); - } else - BSpline3(base,ctrl,cnt,&GrLine3Plot,closed); -} - - -void GrLinePlot4(GrBitMap *base,I8 x,I8 y,I8 z) -{ - nounusedwarn z; - GrPlot4(base,x,y); -} - -public void GrLine4(GrBitMap *base,I8 x1,I8 y1,I8 x2,I8 y2,I8 step=1,I8 start=0) -{ //Line with base->brush - if (ClipLine(base,&x1,&y1,&x2,&y2)) - Line(base,x1,y1,0,x2,y2,0,&GrLinePlot4,step,start); -} - -public void GrSpeedLine(GrBitMap *base,I8 x1,I8 y1,I8 x2,I8 y2,double speed) -{ - U8 old_flags=base->flags; - I8 old_pen_width=base->pen_width; - if (ClipLine(base,&x1,&y1,&x2,&y2)) { - base->pen_width=base->speedline_scale*speed; - base->flags&=~BMF_TRANSFORMATION; - GrLine3(base,x1,y1,0,x2,y2,0); - base->flags=old_flags; - base->pen_width=old_pen_width; - } -} - -public void GrSpeedLine2(GrBitMap *base,I8 x1,I8 y1,I8 z1,I8 x2,I8 y2,I8 z2,double speed) -{ //transformation but not pen width - U8 old_flags=base->flags; - - if (base->flags & BMF_TRANSFORMATION) { - GrRotate(base->r,&x1,&y1,&z1); - x1+=base->x; - y1+=base->y; - z1+=base->z; - GrRotate(base->r,&x2,&y2,&z2); - x2+=base->x; - y2+=base->y; - z2+=base->z; - } - base->flags&=~BMF_TRANSFORMATION; - GrSpeedLine(base,x1,y1,x2,y2,speed); - base->flags=old_flags; -} - diff --git a/LT/Adam/Gr/GrScreen.APZ b/LT/Adam/Gr/GrScreen.APZ deleted file mode 100644 index 1aa599066d1e5af8054ea32bc5133c9e13651e1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6621 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",0,'*',0,CH_SHIFT_SPACE,0,0,0,0,0,0; - DU1 0,0,0,0,0,0,0,0,0,0,'-',0,0,0,'+',0; -CTRL_KEY_SCAN_DECODE_TABLE:: - DU1 0,CH_ESC,"1234567890-=",8,9; - DU1 17,23,5,18,20,25,21,9,15,16,"[]",CH_CR,0,1,19; - DU1 4,6,7,8,CH_LINE_FEED,11,12,";'\`",0,"\\",26,24,3,22; - DU1 2,14,13,",./",0,'*',0,CH_SPACE,0,0,0,0,0,0; - DU1 0,0,0,0,0,0,0,0,0,0,'-',0,0,0,'+',0; - - ALIGN 8,OC_NOP -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_PLOT_SCREEN_I1:: - PUSH RBP - MOV RBP,RSP - MOV RBX,U8 SF_PARAM2[RBP] - MOV RAX,U8 SF_PARAM3[RBP] - OR RBX,RBX - JS @@100 - OR RAX,RAX - JS @@100 - CMP RBX,TEXT_COLS - JGE @@100 - CMP RAX,TEXT_ROWS - JGE @@100 - IMUL2 RAX,TEXT_COLS - ADD RBX,RAX - SHL RBX,2 - ADD RBX,U8 [SYS_TEXTBASE] - MOV RAX,U8 SF_PARAM1[RBP] - MOV U4 [RBX],EAX - - POP RBP - MOV RAX,1 - RET -@@100: POP RBP - XOR EAX,EAX - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_PLOT_WIN_I1:: - PUSH RBP - MOV RBP,RSP - MOV RBX,U8 SF_PARAM3[RBP] - MOV RAX,U8 SF_PARAM4[RBP] - MOV RCX,U8 SF_PARAM1[RBP] - - OR RBX,RBX - JS @@100 - ADD RBX,U8 TSS_WIN_LEFT[RCX] - CMP RBX,U8 TSS_WIN_RIGHT[RCX] - JG @@100 - OR RBX,RBX - JS @@100 - CMP RBX,TEXT_COLS - JGE @@100 - - OR RAX,RAX - JS @@100 - ADD RAX,U8 TSS_WIN_TOP[RCX] - CMP RAX,U8 TSS_WIN_BOTTOM[RCX] - JG @@100 - OR RAX,RAX - JS @@100 - CMP RAX,TEXT_ROWS - JGE @@100 - - IMUL2 RAX,TEXT_COLS - ADD RBX,RAX - SHL RBX,2 - ADD RBX,U8 [SYS_TEXTBASE] - MOV RAX,U8 SF_PARAM2[RBP] - MOV U4 [RBX],EAX - - POP RBP - MOV RAX,1 - RET -@@100: POP RBP - XOR EAX,EAX - RET - -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -/* -BoolU4 PlotWinStr2(TssStruct *tss,I1 *s,I8 len, - U8 attr,I8 x,I8 y) -*/ - ALIGN 8,OC_NOP -CP_PLOT_WIN_STR2:: - PUSH RBP - MOV RBP,RSP - MOV R10,U8 [SYS_TEXTBASE] - PUSH RSI - PUSH RDI - MOV RBX,U8 SF_PARAM1[RBP] - MOV RSI,U8 SF_PARAM2[RBP] - MOV RDI,U8 SF_PARAM5[RBP] - MOV RCX,U8 SF_PARAM3[RBP] - - OR RDI,RDI - JNS @@10 - ADD RCX,RDI - SUB RSI,RDI - XOR EDI,EDI -@@10: ADD RDI,U8 TSS_WIN_LEFT[RBX] - MOV RDX,RCX - ADD RDX,RDI - DEC RDX - CMP RDX,U8 TSS_WIN_RIGHT[RBX] - JLE @@11 - MOV RAX,RDX - SUB RAX,U8 TSS_WIN_RIGHT[RBX] - SUB RDX,RAX - SUB RCX,RAX -@@11: OR RDI,RDI - JNS @@12 - ADD RCX,RDI - SUB RSI,RDI - XOR EDI,EDI -@@12: INC RDX - SUB RDX,TEXT_COLS - JLE @@13 - SUB RCX,RDX -@@13: CMP RCX,1 - JL @@100 - - MOV RAX,U8 SF_PARAM6[RBP] - OR RAX,RAX - JS @@100 - ADD RAX,U8 TSS_WIN_TOP[RBX] - CMP RAX,U8 TSS_WIN_BOTTOM[RBX] - JG @@100 - OR RAX,RAX - JS @@100 - CMP RAX,TEXT_ROWS - JGE @@100 - - IMUL2 RAX,TEXT_COLS - ADD RDI,RAX - SHL RDI,2 - ADD RDI,R10 - MOV RAX,U8 SF_PARAM4[RBP] -@@20: LODSB - STOSD - LOOP @@20 - - POP RDI - POP RSI - POP RBP - MOV RAX,TRUE - RET - -@@100: POP RDI - POP RSI - POP RBP - XOR EAX,EAX - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -/* -BoolU4 PlotAttr(TssStruct *tss,I8 len, - U8 attr,I8 x,I8 y) -*/ - ALIGN 8,OC_NOP -CP_PLOT_ATTR:: - PUSH RBP - MOV RBP,RSP - MOV R10,U8 [SYS_TEXTBASE] - PUSH RSI - PUSH RDI - MOV RBX,U8 SF_PARAM1[RBP] - MOV RDI,U8 SF_PARAM4[RBP] - MOV RCX,U8 SF_PARAM2[RBP] - - OR RDI,RDI - JNS @@10 - ADD RCX,RDI - XOR EDI,EDI -@@10: ADD RDI,U8 TSS_WIN_LEFT[RBX] - MOV RDX,RCX - ADD RDX,RDI - DEC RDX - CMP RDX,U8 TSS_WIN_RIGHT[RBX] - JLE @@11 - MOV RAX,RDX - SUB RAX,U8 TSS_WIN_RIGHT[RBX] - SUB RDX,RAX - SUB RCX,RAX -@@11: OR RDI,RDI - JNS @@12 - ADD RCX,RDI - XOR EDI,EDI -@@12: INC RDX - SUB RDX,TEXT_COLS - JLE @@13 - SUB RCX,RDX -@@13: CMP RCX,1 - JL @@100 - - MOV RAX,U8 SF_PARAM5[RBP] - OR RAX,RAX - JS @@100 - ADD RAX,U8 TSS_WIN_TOP[RBX] - CMP RAX,U8 TSS_WIN_BOTTOM[RBX] - JG @@100 - OR RAX,RAX - JS @@100 - CMP RAX,TEXT_ROWS - JGE @@100 - - IMUL2 RAX,TEXT_COLS - ADD RDI,RAX - SHL RDI,2 - ADD RDI,R10 - MOV RBX,U8 SF_PARAM3[RBP] - MOV RSI,RDI -@@20: LODSD - OR AL,AL - JNZ @@21 - MOV RAX,RBX - STOSD - LOOP @@20 - -@@21: POP RDI - POP RSI - POP RBP - MOV RAX,TRUE - RET - -@@100: POP RDI - POP RSI - POP RBP - XOR EAX,EAX - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_PLOT_BORDER_I1:: - PUSH RBP - MOV RBP,RSP - MOV R10,U8 [SYS_TEXTBASE] - MOV RBX,U8 SF_PARAM3[RBP] - MOV RAX,U8 SF_PARAM4[RBP] - MOV RCX,U8 SF_PARAM1[RBP] - - MOV RDX,-1 - CMP RBX,RDX - JL @@100 - ADD RBX,U8 TSS_WIN_LEFT[RCX] - MOV RDX,U8 TSS_WIN_RIGHT[RCX] - INC RDX - CMP RBX,RDX - JG @@100 - OR RBX,RBX - JS @@100 - CMP RBX,TEXT_COLS - JGE @@100 - - MOV RDX,-1 - CMP RAX,RDX - JL @@100 - ADD RAX,U8 TSS_WIN_TOP[RCX] - MOV RDX,U8 TSS_WIN_BOTTOM[RCX] - INC RDX - CMP RAX,RDX - JG @@100 - OR RAX,RAX - JS @@100 - CMP RAX,TEXT_ROWS - JGE @@100 - - IMUL2 RAX,TEXT_COLS - ADD RBX,RAX - SHL RBX,2 - ADD RBX,R10 - MOV RAX,U8 SF_PARAM2[RBP] - MOV U4 [RBX],EAX - - POP RBP - MOV RAX,TRUE - RET -@@100: POP RBP - XOR EAX,EAX - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -/* - GrXorLineU8(&dst3,&src,&src2,d5b,vga_image,reverse_table); - for (col=0;colnext_tss; - while (tss!=sys_update_screen_tss) { - if (Bt(&tss->crt_flags,CRTf_SHOW)) { //no short circuit logic - if (x>=tss->win_border_pixel_left) { - if (x<=tss->win_border_pixel_right) { - if (y>=tss->win_border_pixel_top) { - if (y<=tss->win_border_pixel_bottom) { - return TRUE; - }}}}} - tss=tss->next_tss; - } - return FALSE; -} -*********/ -CP_IS_PIXEL_COVERED:: - PUSH RBP - MOV RBP,RSP - MOV RAX,U8 SF_PARAM1[RBP] - MOV RBX,U8 SF_PARAM2[RBP] - MOV RCX,U8 SF_PARAM3[RBP] - MOV RDX,U8 [sys_update_screen_tss] - BT U4 TSS_CRT_FLAGS[RAX],CRTf_ON_TOP - JC @@100 - PUSHFD - CLI - MOV RAX,U8 TSS_NEXT_TSS[RAX] - JMP @@30 - -@@1: BT U4 TSS_CRT_FLAGS[RAX],CRTf_SHOW - JNC @@20 - CMP RBX,U8 TSS_WIN_BORDER_PIXEL_LEFT[RAX] - JL @@20 - CMP RCX,U8 TSS_WIN_BORDER_PIXEL_TOP[RAX] - JL @@20 - CMP RBX,U8 TSS_WIN_BORDER_PIXEL_RIGHT[RAX] - JG @@20 - CMP RCX,U8 TSS_WIN_BORDER_PIXEL_BOTTOM[RAX] - JG @@20 - POPFD - MOV RAX,TRUE - POP RBP - RET - -@@20: MOV RAX,U8 TSS_NEXT_TSS[RAX] -@@30: CMP RAX,RDX - JNE @@1 - POPFD - -@@100: XOR EAX,EAX - POP RBP - RET diff --git a/LT/Adam/GrAsm/GrAsm.BIZ b/LT/Adam/GrAsm/GrAsm.BIZ deleted file mode 100644 index 8ea6891d7c68d97f02956fcd94939b1e98697718..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5721 zcmaFK%fL`0!oUzC#=yXzl>eJy6pV(zXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1J zh5$JsAZ=)5Y+`C=ZeeMlYsx zyN8#zkCjp#LrqkKbC{E#uZ^8OKJ!rBCnzo?A}PwrF932Lqc95_I|mmx57>E963k*u ze7ty_=Mn1B{l=p^R>Gs(Rl$S%c7?GA_kjvMkLKS2wHhAHKWu81JhBf2crf4aIQW>! zgITuw!~g#t-L3+i%pS2G#}6=Jgl7^>h(cfEpRZYK!WLq z$HC`Jp3J{M-e0r&(I1a^k2s`&0`owD1#`Czio0t;K_&rmh6nR`;@k^Si0)P&k8W23 zkmH=;ZnXq)O~7u|Lw9Sef=BoFwOj{E**v-ruYUBEkgHqXff4~o7c`QOANv3Q|9=nb zTQv#bxb6-#@c4ho!}?Zz04T=2!7=XY0aJFU#u6Oy-GL5ZWrylDL9SB)yG{<`I&gyX zWWMFm?TS6>Crp?C4n;_`yGnR;3xE@Gw}D4@tc6FnuLd{}x-CG-)u)@mqnpXYn9akI zy+qHWll{8K!4n)r5T2b39?i!&Jev=2cr+j5@Mu27@n|d9#7+jV`JEv16+Ai(Ko0fj z6o7=?VI-%4Q=w$)h_K*1kkF_4(FDSr_qJ+U*Yv6J5kw^0{0shtyP`rc6j!p}xr{M7t?s5E(00RSq zM>ja7NO*Kx7$5Lx4HYP1_V|CI1LP7S2oL634Ulb(zZe)97)tj-f*E94EHse2T?HT| zn6H9Ix9E%4|NryvN)X^G@|g3>quU|jwH1iVSgh}1J>via14E6PhjqsV5JT3(dd3L` z28MbO59^K_AO`nbXqn~_dl;nG!}?I^!MVlrh71e=d?14ygMH(JLmY!b7#Km8fRwuVIJyTj zFf8C>U>uVD zTO3Cmmt^RUwJQgH1$)fuXpvIKH$XC9xzmzBsukH8n53 Pq_~*jKeq%UgR(dP>#(HQ diff --git a/LT/Adam/GrAsm/GrAsm.HPZ b/LT/Adam/GrAsm/GrAsm.HPZ deleted file mode 100644 index d690968..0000000 --- a/LT/Adam/GrAsm/GrAsm.HPZ +++ /dev/null @@ -1,19 +0,0 @@ -#help_index "Graphics" -public LTextern CP_IS_PIXEL_COVERED BoolU4 IsPixelCovered(TssStruct *tss,I8 x,I8 y); - -LTextern GR_XOR_LINE_U8 void GrXorLineU8(U8 **dst3,U8 **src,U8 **src2,U8 d5b, - void **vga,U1 *reverse_bit_tab); -LTextern GR_XOR_BITMAP_U8 void GrXorBitMapU8(U8 *b1,U8 *b2,U8 cnt); -LTextern GR_PLOT_CHAR void GrPlotChar(U1 *font_ptr,U1 attr,U1 **dst2,U8 d1,U8 d2); -LTextern GR_PLOT_BACKGROUND void GrPlotBackground(U1 attr,U1 **dst,U8 d1,U8 d2); -//The callback is void Plot(aux_data,x,y,z) - -#help_index "Graphics/Char" -public LTextern CP_PLOT_SCREEN_I1 BoolU4 PlotScreenChar(U8 w,I8 x,I8 y); -public LTextern CP_PLOT_WIN_I1 BoolU4 PlotWinChar(TssStruct *tss,U8 w,I8 x,I8 y); -public LTextern CP_PLOT_WIN_STR2 BoolU4 PlotWinStr2( - TssStruct *tss,I1 *s,I8 len,U8 attr,I8 x,I8 y); -public LTextern CP_PLOT_ATTR BoolU4 PlotWinAttr( - TssStruct *tss,I8 len,U8 attr,I8 x,I8 y); -public LTextern CP_PLOT_BORDER_I1 BoolU4 PlotBorderChar(TssStruct *tss,U8 w,I8 x,I8 y); -#help_index "" diff --git a/LT/Adam/GrAsm/GrAsm.MPZ b/LT/Adam/GrAsm/GrAsm.MPZ deleted file mode 100644 index cb9402f1a78fc99fd3745209c3a4114f4fcbc7e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1373 zcmY%K@zzmt4v6;*jt}sRaP^6I_78Ina&=Kq(ou5rv9hw#_X*K=Oi9eucQ0}*29bt( zj=@nnrl#gfDh37y28JdE1_~gCLU3hqaAmH7YehkRQHcUC7tH7YAODbe$B>X91qdKu zvZ1*J)MNuE3nEN*@(*%x4T|?PR3PMLBU1yY$%f{{xH;H4$ko-4D3i?~1{=7U5Myw- zC&W|*f=)Iyff;N`tiiz{K}LiPHZ(ATm~3c(KmJ03eB!-bBjbae9sS~6T%G-0T;oF= zoqSvgg|;CqOkCaYIo&q!OY-RyXB1V=@c*8j!WU`N^pDV;%f~nfr0B$ng#OLQ9 hIXwm=x diff --git a/LT/Adam/GrAsm/GrAsm.SPZ b/LT/Adam/GrAsm/GrAsm.SPZ deleted file mode 100644 index 0218addf59cfe98871d0aedf3449011659eb7f84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155 zcmbQu00DC#6aymz1A}sAUUE)pN~(gAzE6n0f3R<2qkeEnVo7GQo<~5G5-*o>YDIgs ze?f_Vo`!!wNLsw7yPtoMYrKD$Yml3df4HV~?fk^zT!rfSoT0(4W+wAJeFL_Ha0W*P z$A`E^gg7~#v7YZ9^uRYhIK(k1#L8-ZLsLszhkKFXJgz6t;$8hZcKlZHVPpURrg$*B diff --git a/LT/Adam/HashUtils.APZ b/LT/Adam/HashUtils.APZ deleted file mode 100644 index 7db67f9..0000000 --- a/LT/Adam/HashUtils.APZ +++ /dev/null @@ -1,397 +0,0 @@ -#help_index "Hash/Reports" - -class HashRepStruct -{ - SysHashEntry *h; - I1 *index; -}; - - -I8 CompareHashEntries(HashRepStruct *h1,HashRepStruct *h2) -{ - return StrCmp(h1->h->str,h2->h->str); -} - -I8 CompareHashEntries2(HashRepStruct *h1,HashRepStruct *h2) -{ - ClassStruct *tempc1=h1->h,*tempc2=h2->h; - I8 i1=0,i2=0; - if (tempc1->type & HTT_FUNCTION) - i1=tempc1->executable_address; - if (tempc2->type & HTT_FUNCTION) - i2=tempc2->executable_address; - return i1-i2; -} - -I8 HelpIndexCnt(I1 *ptr,I1 *index) -{ - I1 cnt=0,ch; - I8 index_len=StrLen(index); - while (*ptr) { - if (!StrNCmp(ptr,index,index_len)) - cnt++; - while (ch=*ptr++) - if (ch==';') - break; - if (!ch) - ptr--; - } - return cnt; -} - -I1 *HelpIndexStr(I1 **ptr_,I1 *index) -{ - I1 *ptr=*ptr_,*ptr2,ch,*result; - I8 index_len=StrLen(index); - while (*ptr) { - ptr2=ptr; - while (ch=*ptr++) - if (ch==';') - break; - if (!ch) - ptr--; - *ptr_=ptr; - if (!StrNCmp(ptr2,index,index_len)) { - if (ch==';') - ptr--; - *ptr=0; - result=NewStr(ptr2); - *ptr=ch; - return result; - } - } - return NULL; -} - -I8 CompareHashEntries3(HashRepStruct *h1,HashRepStruct *h2) -{ - I8 i,i1=0,i2=0; - i=StrCmp(h1->index,h2->index); - if (i) - return i; - else { - if (h1->h->type&HTT_HELP_FILE) - i1=1; - if (h2->h->type&HTT_HELP_FILE) - i2=1; - i=i2-i1; - if (i) - return i; - else - return StrCmp(h1->h->str,h2->h->str); - } -} - -//Possible choices for first parameter, "h" include -// "adam_tss->hash_table" -// "Fs->hash_table" -public void HashRep(SysHashTable *h=NULL, - U8 mask=HTT_ALL,I1 *outname=NULL,I1 *flags=NULL,I1 mapfile_drive=0,I1 *index=NULL, - Ltf *l_=NULL) -{ - SysHashTable *tempht; - SysHashEntry *ptr,*temph; - HashRepStruct *list; - U8 cnt,i,j,k,size,f=0; - I1 buf[512],*buf4,*last_index=NewStr(""),*cur_index; - Ltf *l,*l1; - BoolU4 recurse,publics,map; - LtfBinEntry *tempb; - DbgInfo *dbg; - BoolU4 old_preempt=Preempt(OFF); - - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),"+r+p"); - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),flags); - recurse=Bt(&f,FUf_RECURSE); - publics=Bt(&f,FUf_PUBLIC); - map =Bt(&f,FUf_MAP); - - if (!h) h=Fs->hash_table; - - if (outname) { - l=LtfNew; - l->flags|=LTFF_NO_CURSOR; - StrCpy(l->filename.name,outname); - } else - l=NULL; - if (l_) - l=l_; - - cnt=0; - tempht=h; - while (tempht) { - for (i=0;i<=tempht->mask;i++) { - temph=tempht->body[i]; - while (temph) { - if (!(temph->type & (HTT_IMPORT | HTT_PRIVATE)) && - temph->type & mask && - (temph->type & HTT_PUBLIC || !publics)) - if (!index) - cnt++; - else - if (cur_index=temph->index) - cnt+=HelpIndexCnt(cur_index,index); - temph=temph->next; - } - } - if (recurse) - tempht=tempht->next; - else - break; - } - if (!cnt) goto end_hash; - - list=MAllocZ(cnt*sizeof(HashRepStruct)); - j=0; - tempht=h; - while (tempht) { - for (i=0;i<=tempht->mask;i++) { - temph=tempht->body[i]; - while (temph) { - if (!(temph->type & (HTT_IMPORT | HTT_PRIVATE)) && - temph->type & mask && - (temph->type & HTT_PUBLIC || !publics)) - if (!index) - list[j++].h=temph; - else - if (cur_index=temph->index) - if (k=HelpIndexCnt(cur_index,index)) { - while (k--) { - list[j].index=HelpIndexStr(&cur_index,index); - list[j++].h=temph; - } - } - temph=temph->next; - } - } - if (recurse) - tempht=tempht->next; - else - break; - } - Preempt(old_preempt); - - if (map) - QSort(list,cnt,sizeof(HashRepStruct),&CompareHashEntries2); - else if (index) - QSort(list,cnt,sizeof(HashRepStruct),&CompareHashEntries3); - else - QSort(list,cnt,sizeof(HashRepStruct),&CompareHashEntries); - - for (i=0;itype & HTT_HELP_FILE) { - if (l) { - l1=LtfRead(ptr->str); - EditInsertLtf(l,l1); - LtfDel(l1); - } else - Type(ptr->str); - } else { - if (ptr->source_link) { - buf4=NewStr(ptr->source_link); - if (mapfile_drive && StrLen(buf4)>3) - buf4[3]=mapfile_drive; - if (l && ptr->type & HTT_FUNCTION) { - dbg=ptr><(ClassStruct *)->debug; - if (dbg) { - size=offset(DbgInfo.body)+ - sizeof(void *)* - (dbg->max_line-dbg->min_line+2); - if (size>MSize(dbg)) { - coutln "Corrupt Map Entry"; - dbg=NULL; - } else { - if (dbg->min_line<=dbg->max_line) { - tempb=MAllocZ(sizeof(LtfBinEntry)); - tempb->type=LTFBT_GENERIC_DATA; - tempb->size=size; - tempb->data=MAlloc(size); - MemCpy(tempb->data,dbg,size); - tempb->num=l->cur_bin_num; - tempb->use_cnt=1; - InsQue(tempb,l->bin_root.last); - } else - dbg=NULL; - } - } - } - if (dbg) - SPrintF(buf,"$$LK+BI,\"%-18s \",\"%s\",%d$$", - ptr->str,buf4,l->cur_bin_num++); - else - SPrintF(buf,"$$LK,\"%-18s \",\"%s\"$$", - ptr->str,buf4); - Free(buf4); - } else - SPrintF(buf,"%-18ts ",ptr->str); - - if (l) - LtfPutSExt(l,buf); - else - PutS(buf); - - if (!index) { - if (ptr->type & HTT_FUNCTION) - SPrintF(buf,"%08X",ptr><(ClassStruct *)->executable_address); - else if (ptr->type & HTT_STR_CONST) - SPrintF(buf,"%-8tQ",ptr><(StrConstStruct *)->data); - else if (ptr->type & HTT_GLBL_VAR) - SPrintF(buf,"%08X",ptr><(GlblVarStruct *)->data_address); - else if (ptr->type & HTT_SYSTEXT) - SPrintF(buf,"%-8tQ %04tX",ptr->user_data0,ptr->user_data1); - else - SPrintF(buf,"%08X",ptr->user_data0); - SPrintF(buf+StrLen(buf)," %04X ",ptr->use_cnt); - } else - *buf=0; - - k=ptr->type; - if (publics) - k&=~HTT_PUBLIC; - - for (j=0;j<32;j++) - if (Bt(&k,j)) - SPrintF(buf+StrLen(buf),"%Z ",j,"ST_HTT_TYPES"); - StrCat(buf,"\r\n"); - if (l) - LtfPutSExt(l,buf); - else - PutS(buf); - } - Free(list[i].index); - } - Free(list); - -end_hash: - if (l) { - if (!l_) { - LtfWrite(l); - LtfDel(l); - } else { - if (l->dummy.next==l) - LtfPutSExt(l,"No Match"); - } - } - Free(last_index); -} - -public void HFunsRep(I1 *flags="",I1 *index=NULL) -{ - HashRep(Fs->hash_table,HTT_FUNCTION,NULL,flags,0,index); -} - -public void HMapRep(I1 *flags="-p+m",I1 *index=NULL) -{ - HashRep(Fs->hash_table,HTT_FUNCTION,NULL,flags,0,index); -} - -public void HVarsRep(I1 *flags="",I1 *index=NULL) -{ - HashRep(Fs->hash_table,HTT_GLBL_VAR,NULL,flags,0,index); -} - -public void HClassesRep(I1 *flags="-p",I1 *index=NULL) -{ - HashRep(Fs->hash_table,HTT_CLASS,NULL,flags,0,index); -} - -public void HDefinesRep(I1 *flags="-p",I1 *index=NULL) -{ - HashRep(Fs->hash_table,HTT_STR_CONST,NULL,flags,0,index); -} - -public void HSymsRep(I1 *flags="-p",I1 *index=NULL) -{ - HashRep(Fs->hash_table,HTT_SYS_SYMBOL,NULL,flags,0,index); -} - -public void HSysTextsRep(I1 *flags="-p",I1 *index=NULL) -{ - HashRep(Fs->hash_table,HTT_SYSTEXT,NULL,flags,0,index); -} - -public void HAllRep(I1 *index=NULL) -{ - HashRep(Fs->hash_table,HTT_ALL,NULL,"-p",0,index); -} - -public void LtfHelpIndex(Ltf *l,I1 *index) -{ - HashRep(Fs->hash_table,HTT_ALL,NULL,NULL,0,index,l); -} - -public void PopUpHelpIndex(I1 *index,TssStruct *parent=NULL) -{ - I1 *buf; - buf=MSPrintF("LtfHelpIndex(Fs->cur_ltf,\"%s\");View;",index); - PopUp(buf,parent); - Free(buf); -} - -#help_index "Hash" -public void LoadMapFile(I1 *filename) -{ - I1 *st,*name=DefaultExtension(filename,"MPZ"); - I1 *absname=AbsoluteFileName(name); - Ltf *l=LtfRead(name); - LtfEntry *cl; - SysHashEntry *temph; - U8 i,j,base=0; - DbgInfo *dbg; - - RemoveLastSeg(absname,"."); - if (absname[1]==':' && StrLen(absname)>2) { - temph=FindLocalHash(absname+2,HTT_MODULE); - if (temph) - base=temph->user_data0; - } - - if (!l) return; - cl=l->dummy.next; - while (cl!=l) { - if (cl->btype==LTFT_LINK) { - st=MStrUtil(cl->display,SU_REMOVE_TRAILING); - if (temph=FindLocalHash(st,HTT_ALL)) { - Free(temph->source_link); - temph->source_link=cl->aux_str; - cl->aux_str=NULL; - dbg=temph->debug; - if (!dbg && cl->bin_data) { - dbg=cl->bin_data->data; - if (dbg) { - if (cl->bin_data->size>MSize(dbg)) - coutln "Corrupt Map Entry"; - else { - cl->bin_data->data=NULL; - temph->debug=dbg; - for (i=dbg->min_line;i<=dbg->max_line+1;i++) { - j=i-dbg->min_line; - if (dbg->body[j]) - dbg->body[j]=dbg->body[j]+base; - } - } - } - } - } - Free(st); - } - cl=cl->next; - } - LtfDel(l); - Free(name); - Free(absname); -} -#help_index "" diff --git a/LT/Adam/IncCompress.APZ b/LT/Adam/IncCompress.APZ deleted file mode 100644 index 108a751..0000000 --- a/LT/Adam/IncCompress.APZ +++ /dev/null @@ -1,311 +0,0 @@ -#help_index "Compression" - -#define ICT_U2 1 -#define ICT_U4 2 -#define ICT_U8 3 - -class IncCompressStructU2 -{ - U2 match_start; - U2 match_size; - U2 diff_size; - U0 diff_data; -}; - -class IncCompressStructU4 -{ - U4 match_start; - U2 match_size; - U2 diff_size; - U0 diff_data; -}; - -class IncCompressStructU8 -{ - U8 match_start; - U2 match_size; - U2 diff_size; - U0 diff_data; -}; - -class IntermediateIncCompressStruct -{ - IntermediateIncCompressStruct *next,*last; - U8 match_start_ref,match_start,match_size; -}; - -void IncCompressRange(U1 *ref,U8 ref_size,U1 *b,U8 range_start,U8 range_end, - IntermediateIncCompressStruct *root,U8 type_size) -{ - I8 i,j,k,n,best_k=0,best_j,best_i; - IntermediateIncCompressStruct *tempc; - -//$BK,1$TODO: improve this algorithm$BK,0$ - - for (i=range_start;ibest_k) { - best_k=k; - best_j=j; - best_i=i; - } - } - } - if (best_k>type_size) { - if (range_start+type_sizematch_start_ref=best_j; - tempc->match_start=best_i; - tempc->match_size=best_k; - InsQue(tempc,root->last); - if (best_i+best_k+type_sizematch_size-sizeof(IncCompressStructU2); - tempc=tempc->next; - } - } - } else if (ref_size<=0xFFFFFFFF && size<=0xFFFFFFFF) { - ic_type=ICT_U4; - i=sizeof(U1)+size+2*sizeof(U4); - IncCompressRange(ref,ref_size,b,0,size,&root,sizeof(IncCompressStructU4)); - if (root.next==&root) - i+=sizeof(IncCompressStructU4); - else { - tempc=root.next; - while (tempc!=&root) { - i-=tempc->match_size-sizeof(IncCompressStructU4); - tempc=tempc->next; - } - } - } else { - ic_type=ICT_U8; - i=sizeof(U1)+size+2*sizeof(U8); - IncCompressRange(ref,ref_size,b,0,size,&root,sizeof(IncCompressStructU8)); - if (root.next==&root) - i+=sizeof(IncCompressStructU8); - else { - tempc=root.next; - while (tempc!=&root) { - i-=tempc->match_size-sizeof(IncCompressStructU8); - tempc=tempc->next; - } - } - } - result=MAlloc(i); - u1=result; - *u1=ic_type; - switch (ic_type) { - case ICT_U2: - u2=result+sizeof(U1); - *u2=i; - u2+=sizeof(U2); - *u2=size; - tempi2=u2+sizeof(U2); - - tempc=root.next; - while (tempc!=&root) { - tempc1=tempc->next; - if (l || tempc->match_start-(j+l)) { - tempi2->match_start=m; - tempi2->match_size=l; - tempi2->diff_size=tempc->match_start-(j+l); - if (tempi2->diff_size) - MemCpy(&tempi2->diff_data,b+j+l,tempi2->diff_size); - tempi2+=sizeof(IncCompressStructU2)+tempi2->diff_size; - } - m=tempc->match_start_ref; - j=tempc->match_start; - l=tempc->match_size; - Free(tempc); - tempc=tempc1; - } - tempi2->match_start=m; - tempi2->match_size=l; - tempi2->diff_size=size-(j+l); - if (tempi2->diff_size) - MemCpy(&tempi2->diff_data,b+j+l,tempi2->diff_size); - break; - case ICT_U4: - u4=result+sizeof(U1); - *u4=i; - u4+=sizeof(U4); - *u4=size; - tempi4=u4+sizeof(U4); - -//$BK,1$TODO: deal with >65536 matches and differences$BK,0$ - tempc=root.next; - while (tempc!=&root) { - tempc1=tempc->next; - if (l || tempc->match_start-(j+l)) { - tempi4->match_start=m; - tempi4->match_size=l; - tempi4->diff_size=tempc->match_start-(j+l); - if (tempi4->diff_size) - MemCpy(&tempi4->diff_data,b+j+l,tempi4->diff_size); - tempi4+=sizeof(IncCompressStructU4)+tempi4->diff_size; - } - m=tempc->match_start_ref; - j=tempc->match_start; - l=tempc->match_size; - Free(tempc); - tempc=tempc1; - } - tempi4->match_start=m; - tempi4->match_size=l; - tempi4->diff_size=size-(j+l); - if (tempi4->diff_size) - MemCpy(&tempi4->diff_data,b+j+l,tempi4->diff_size); - break; - case ICT_U8: - u8=result+sizeof(U1); - *u8=i; - u8+=sizeof(U8); - *u8=size; - tempi8=u8+sizeof(U8); - -//$BK,1$TODO: deal with >65536 matches and differences$BK,0$ - tempc=root.next; - while (tempc!=&root) { - tempc1=tempc->next; - if (l || tempc->match_start-(j+l)) { - tempi8->match_start=m; - tempi8->match_size=l; - tempi8->diff_size=tempc->match_start-(j+l); - if (tempi8->diff_size) - MemCpy(&tempi8->diff_data,b+j+l,tempi8->diff_size); - tempi8+=sizeof(IncCompressStructU8)+tempi8->diff_size; - } - m=tempc->match_start_ref; - j=tempc->match_start; - l=tempc->match_size; - Free(tempc); - tempc=tempc1; - } - tempi8->match_start=m; - tempi8->match_size=l; - tempi8->diff_size=size-(j+l); - if (tempi8->diff_size) - MemCpy(&tempi8->diff_data,b+j+l,tempi8->diff_size); - break; - } - return result; -} - -public U1 *IncExpand(U1 *ref,IncCompressStructU2 *b,U8 *size=NULL) -{ - U1 *result,*dst,*u1=b,*b_end; - U2 *u2; - U4 *u4; - U8 *u8=b,s,ic_type; - IncCompressStructU2 *tempi2; - IncCompressStructU4 *tempi4; - IncCompressStructU8 *tempi8; - - ic_type=*u1; - - switch (ic_type) { - case ICT_U2: - u2=b+sizeof(U1); - b_end=b+*u2; - u2+=sizeof(U2); - s=*u2; - break; - case ICT_U4: - u4=b+sizeof(U1); - b_end=b+*u4; - u4+=sizeof(U4); - s=*u4; - break; - case ICT_U8: - u8=b+sizeof(U1); - b_end=b+*u8; - u8+=sizeof(U8); - s=*u8; - break; - } - result=MAlloc(s); - if (size) *size=s; - dst=result; - - switch (ic_type) { - case ICT_U2: - tempi2=b+sizeof(U1)+2*sizeof(U2); - while (tempi2match_size) { - MemCpy(dst,ref+tempi2->match_start,tempi2->match_size); - dst+=tempi2->match_size; - } - if (tempi2->diff_size) { - MemCpy(dst,&tempi2->diff_data,tempi2->diff_size); - dst+=tempi2->diff_size; - } - tempi2+=sizeof(IncCompressStructU2)+tempi2->diff_size; - } - break; - case ICT_U4: - tempi4=b+sizeof(U1)+2*sizeof(U4); - while (tempi4match_size) { - MemCpy(dst,ref+tempi4->match_start,tempi4->match_size); - dst+=tempi4->match_size; - } - if (tempi4->diff_size) { - MemCpy(dst,&tempi4->diff_data,tempi4->diff_size); - dst+=tempi4->diff_size; - } - tempi4+=sizeof(IncCompressStructU4)+tempi4->diff_size; - } - break; - case ICT_U8: - tempi8=b+sizeof(U1)+2*sizeof(U8); - while (tempi8match_size) { - MemCpy(dst,ref+tempi8->match_start,tempi8->match_size); - dst+=tempi8->match_size; - } - if (tempi8->diff_size) { - MemCpy(dst,&tempi8->diff_data,tempi8->diff_size); - dst+=tempi8->diff_size; - } - tempi8+=sizeof(IncCompressStructU8)+tempi8->diff_size; - } - break; - } - return result; -} -#help_index "" diff --git a/LT/Adam/InputPointer.APZ b/LT/Adam/InputPointer.APZ deleted file mode 100644 index f81d010..0000000 --- a/LT/Adam/InputPointer.APZ +++ /dev/null @@ -1,21 +0,0 @@ -#help_index "Input Pointer" -#help_file "::/LT/Doc/InputPointer.TXZ" - -#define IP_NULL 0 -#define IP_JOYSTICK0 1 -#define IP_JOYSTICK1 2 -#define IP_MOUSE 3 - -public I8 ipx=0,ipy=0,ipz=0,ip_throttle=0; -public I8 ipx_snap=1,ipy_snap=1,ipz_snap=1; -public I8 ipx_snap_offset=0,ipy_snap_offset=0,ipz_snap_offset=0; -public double ip_speed=0; -public I8 ip_pointer_type=IP_NULL; -public I8 iptx=ipx/FONT_WIDTH,ipty=ipy/FONT_HEIGHT; -public BoolU4 ip_on=TRUE, //Show or hide cursor - ip_lb_last=FALSE,ip_rb_last=FALSE, - ip_lb=FALSE,ip_cb=FALSE,ip_rb=FALSE; //Left/center/right buttons -public BoolU4 ip_has_wheel=FALSE; -public LTDate last_ip_move_time=BootTime; - -#help_index "" diff --git a/LT/Adam/JoyStick.APZ b/LT/Adam/JoyStick.APZ deleted file mode 100644 index 7271e61251e0406b9b187ec3fe03b293979eedcc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3481 zcmY$+NX;pT&&*3ntx!<%%qu7@Q3%M-%qvMPQsU*}iGV`FUqSWG&Xp>lLUM{E>r~Le!P!o{0B&d@3 z z6tb+L?A*lSYz12dLsOVQadKi#s*$ac30MFcUimpG@dZVxsksFuwgC`Y!{5zK(;8%# zfjfr)pwzek7a0O5(mqlmB+8Th3@-Hn3(11j*j)DP5D_oac+706Ps9 zwn*U(2`IDx0Q)>EzcMKr>{Ugu{|zb(p}`840ecB1V}vXNb~;SP1X%{`M3{^PSOyeg z;PA??M9L4E@R-T3%&V}?%C9U=EYZ>cXGeor-K_jdaMm-3)zk+Gg7PLrI5#sd+8|cj z5aKOJS~YL!54_#B>`d|3O@Y;kHVM+bWUWR;h{Nw&V)1 zn&h$yeMqK*`ZFuP669@j11$(k-_QV(gTOvYhM1gOR*6Mdr7cWXC6X>^^d(m)*eDoi zg0e_*1vFDaA^>Dhg&n9A0+&lLC9rZz*AVJ5m_d~YgAhRgmjoLGDb64!A(d}%qq6cV zOTg(SxkBH~-!BAGB0}u}NrEFTxe_7?F%2wR%ga>@Ds|vxBDkpY%CB^WmgAZEd8mb5 zg-#_{r>BKNQfXSWv5k!ps73%6g`kXj+boPeClY5aR|A6=i|Dc+156=)+utm6w)g(l*nw(!+l9Q*Pq@v>NqoU%InpliW0C63`ZiB4B#>#GZvHuK@|a5Jvb4A$^)$8 znRy_efs2t$NF;&FMX0mD<(fgP0+OR3*$>T4sA1xpUzVznn3JQBn3P{yqL7)FoKu>T znU{_T8Bj2h8W=Edf)jCBv_Y($ouRb?IMtR#8-jTdw}J9Sg^jVMLWQj{Gz36Gl^~%? zxR861Pi9`Ku?8qb=v3$$>s0C*>lo-%XdCNPY8&f-i(*j0hpG-F3sDEsfvgVdEF-W( zV9qiI^9IscI8zI}AOa;6J7{w*GZtKcU`;J38f-usz-b4f0n9{8cHo4hpn#TCz@qL& z&N-=xMc~*$%l08bp`gqN3NwBE;KVX;4TRGdpz1%TOLfc4N!37ZW$PrB zrs))CR;A{rX?R*_YJo~UNST9Pd_jspuyyW5E~z=-BnVOpE@r_EKnn$*{KOPkQxaQ2 z8)~5dvP>rvY>uaef>uFEk&aeUX_{?NYGMke^VC4fLAEG>$`{P`HZgSi%rR z0vb198E7Q}(gL!yprlCKSPSG(NQgsS0JaFJ;baTQ V&Mt@oO2gh7TpyzJ!<2Zr7yv1><$M4D diff --git a/LT/Adam/KbdMouse.APZ b/LT/Adam/KbdMouse.APZ deleted file mode 100644 index 9ea84f6..0000000 --- a/LT/Adam/KbdMouse.APZ +++ /dev/null @@ -1,738 +0,0 @@ -time_stamp_freq=SYS_TIMER_FREQ*( - GetTimeStamp-time_stamp_start)/ - (ReadSysTimer-sys_timer_start); -time_stamp_kHz_freq=time_stamp_freq/1000; - - -#help_index "Char/Input" - -U8Fifo *scan_code_fifo=NewU8Fifo(128); - -U8 last_down_scan_code=0; - -void KbdCmdSend(U8 port, U1 val,BoolU4 *btimeout=NULL) -{ - LTDate timeout=BootTime+LTDATE_FREQ/10; - do { - if (!(InP(KEYB_CTRL)&2)) { - timeout=0; - break; - } - } while (BootTime=0x50) - return 0; - else - return table[sc]; -} - -U1 scan_code_map[0x100]={ - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,SC_SHIFT,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,SC_CR,SC_CTRL,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0x35,0,0,SC_ALT,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,SC_HOME,SC_CURSOR_UP,SC_PAGE_UP,0,SC_CURSOR_LEFT,0,SC_CURSOR_RIGHT,0,SC_END, - SC_CURSOR_DOWN,SC_PAGE_DOWN,SC_INSERT,SC_DELETE,0,0,0,0,0,0,0,0,SC_GUI,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -}; - - -U1 num_lock_map[0x100]={ - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,8,9,10,0,5,6,7,0,2, - 3,4,11,0x34,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,SC_CR,SC_CTRL,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0x35,0,0,SC_ALT,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,SC_HOME,SC_CURSOR_UP,SC_PAGE_UP,0,SC_CURSOR_LEFT,0,SC_CURSOR_RIGHT,0,SC_END, - SC_CURSOR_DOWN,SC_PAGE_DOWN,SC_INSERT,SC_DELETE,0,0,0,0,0,0,0,0,SC_GUI,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -}; - - - -public void SetTypeMatic(U1 delay) -{ - KbdCmdSend(KEYB_CTRL,0xA7); //Disable Mouse - KbdCmdSend(KEYB_CTRL,0xAE); //Enable Keyboard - KbdCmdSend(KEYB_PORT,0xF3); - KbdCmdSend(KEYB_PORT,delay); //Typematic rate - KbdCmdSend(KEYB_CTRL,0xA8); //Enable Mouse -} - -#help_index "Char/Conversion" - -public I1 *ASCIIToKeyName(I8 ch,BoolU4 include_ctrl=TRUE) -{ - I8 i; - I1 buf[64]; - *buf=0; - if (ch) { - if (ch<26) { - if (ch==CH_CR) - StrCat(buf,"ENTER"); - else if (ch==CH_ESC) - StrCat(buf,"ESC"); - else if (ch==CH_BACKSPACE) - StrCat(buf,"BACKSPACE"); - else if (ch==CH_TAB) - StrCat(buf,"TAB"); - else if (ch==CH_CURSOR) - StrCat(buf,"CURSOR"); - else { - if (include_ctrl) - StrCat(buf,"CTRL "); - buf[i=StrLen(buf)]=ch-1+'A'; - buf[i+1]=0; - } - } else if (Bt(printable_chars_bitmap,ch)) { - if (ch==CH_SPACE) - StrCat(buf,"SPACE"); - else if (ch==CH_SHIFT_SPACE) - StrCat(buf,"SHIFT_SPACE"); - else { - buf[i=StrLen(buf)]=ch; - buf[i+1]=0; - } - } - } - return NewStr(buf); -} - -public I1 *ScanCodeToKeyName(I8 sc) -{ - I8 ch=ScanCodeToASCII(sc); - I1 buf[64],*st; - *buf=0; - if (sc&SCF_CTRL) - StrCat(buf,"CTRL "); - if (sc&SCF_ALT) - StrCat(buf,"ALT "); - if (sc&SCF_SHIFT) - StrCat(buf,"SHIFT "); - if (ch) { - st=ASCIIToKeyName(ch,FALSE); - StrCpy(buf+StrLen(buf),st); - Free(st); - } else { - switch (sc.u1[0]) { - case SC_BACKSPACE:StrCat(buf,"BACK"); break; - case SC_CAPS: StrCat(buf,"CAPS"); break; - case SC_NUM: StrCat(buf,"NUM"); break; - case SC_SCROLL: StrCat(buf,"SCROLL"); break; - case SC_CURSOR_UP:StrCat(buf,"UP"); break; - case SC_CURSOR_DOWN:StrCat(buf,"DOWN"); break; - case SC_CURSOR_LEFT:StrCat(buf,"LEFT"); break; - case SC_CURSOR_RIGHT:StrCat(buf,"RIGHT"); break; - case SC_PAGE_UP:StrCat(buf,"PAGE_UP"); break; - case SC_PAGE_DOWN:StrCat(buf,"PAGE_DOWN"); break; - case SC_HOME: StrCat(buf,"HOME"); break; - case SC_END: StrCat(buf,"END"); break; - case SC_INSERT: StrCat(buf,"INSERT"); break; - case SC_DELETE: StrCat(buf,"DELETE"); break; - case SC_F1: StrCat(buf,"F1"); break; - case SC_F2: StrCat(buf,"F2"); break; - case SC_F3: StrCat(buf,"F3"); break; - case SC_F4: StrCat(buf,"F4"); break; - case SC_F5: StrCat(buf,"F5"); break; - case SC_F6: StrCat(buf,"F6"); break; - case SC_F7: StrCat(buf,"F7"); break; - case SC_F8: StrCat(buf,"F8"); break; - case SC_F9: StrCat(buf,"F9"); break; - case SC_F10: StrCat(buf,"F10"); break; - case SC_F11: StrCat(buf,"F11"); break; - case SC_F12: StrCat(buf,"F12"); break; - case SC_GUI: StrCat(buf,"WINDOWS"); break; - case SC_PRTSCRN1: StrCat(buf,"PRTSCRN1"); break; - case SC_PRTSCRN2: StrCat(buf,"PRTSCRN2"); break; - } - } - return NewStr(buf); -} - - -#help_index "Training" - -I8 display_keys_row=TEXT_ROWS/2; -public BoolU4 kbd_display_special_keys=FALSE; - -void DisplayKeysPopUp() -{ - I8 i; - I1 *st; - InitLocalTask; - Fs->win_left=TEXT_COLS/2-8; - Fs->win_top=display_keys_row; - Fs->win_right=TEXT_COLS/2+8; - Fs->win_bottom=Fs->win_top; - Fs->text_attribute=(YELLOW<<4)+BLACK; - Fs->border_attribute=(YELLOW<<4)+BLACK; - Btr(&Fs->crt_flags,CRTf_HAS_CLOSE_WIN); - UseConsoleLtf(NULL); - Fs->cur_ltf->flags&=~LTFF_ATTR_BY_PARTITION; - Fs->aux_ltf->flags&=~LTFF_ATTR_BY_PARTITION; - Fs->cur_ltf->start_text_attribute=(YELLOW<<4)+BLACK; - Fs->aux_ltf->start_text_attribute=(YELLOW<<4)+BLACK; - st=ScanCodeToKeyName(last_down_scan_code); - PrintF("%s",st); - Free(st); - LtfRecalc(Fs->cur_ltf); - Bts(&Fs->crt_flags,CRTf_SHOW); - - display_keys_row+=4; - for (i=0;i<1000;i++) { - WinToTop(Fs); - Sleep(1); - } - display_keys_row-=4; -} - -void DisplaySpecialKeys(I8 sc) -{ - I8 ch; - if (!(sc&SCF_KEY_UP) && - sc&SCF_NEW_KEY ) { - ch=ScanCodeToASCII(sc); - if (!ch || (ch='a' && ch<='z') { - if (ctrl_alt_letter_routines[ch-'a']) { - CallInd(ctrl_alt_letter_routines[ch-'a']); - goto mostly_done; - } - } - } - } - } - -new_key_done: - sc|=SCF_NEW_KEY; -mostly_done: - sys_cur_scan_code=sc|sc2| - (sc|sc_raw)<<32; - - if (kbd_display_special_keys) - DisplaySpecialKeys(sys_cur_scan_code); - if (Btr(&sys_cur_scan_code,SCf_NEW_KEY)) { - Btr(&sys_cur_scan_code,32+SCf_NEW_KEY); - U8FifoInsert(scan_code_fifo,sys_cur_scan_code); - if (!(sys_cur_scan_code&SCF_KEY_UP)) - last_down_scan_code=sys_cur_scan_code; - } -} - - -#help_index "Input Pointer" -public double mxx_scale=0.5, - myy_scale=0.5, - mzz_scale=1.0; - -public I8 mxx_prescale=GR_WIDTH/mxx_scale/2.0, - myy_prescale=GR_HEIGHT/myy_scale/2.0, - mzz_prescale=0/mzz_scale; - -public I8 mxx=GR_WIDTH>>1, - myy=GR_HEIGHT>>1, - mzz=0; - -BoolU4 mouse_buttons[5]; - -BoolU4 mouse_installed=FALSE; -U8 mouse_install_attempts=0; -BoolU4 mouse_has_wheel=FALSE; -BoolU4 mouse_has_ext_buttons=FALSE; -BoolU4 mouse_evt=FALSE; -BoolU4 mouse_irqs_working=FALSE; - -U8 mouse_pkt_size=3; - -BoolU8 MouseGetDeviceType() -{ - BoolU4 my_btimeout; - U1 b; - KbdMouseCmdAck(0xF2,&my_btimeout); - if (my_btimeout) - return FALSE; - b=KbdCmdRead; - if (b==3) - mouse_has_wheel=TRUE; - else if (b==4) - mouse_has_ext_buttons=TRUE; - - return TRUE; -} - -BoolU8 MouseReset() -{ - I8 i; - BoolU4 my_btimeout,result=FALSE; - - mouse_has_wheel=FALSE; - mouse_has_ext_buttons=FALSE; - - KbdCmdFlush; - KbdCmdSend(KEYB_CTRL,0xAD,&my_btimeout); //Disable Kbd - if (my_btimeout) goto done; - KbdCmdSend(KEYB_CTRL,0xA8,&my_btimeout); //Enable Mouse - if (my_btimeout) goto done; - - KbdMouseCmdAck(0xFF,&my_btimeout); //Reset - if (my_btimeout) goto done; - - for (i=0;i<250;i++) { - KbdCmdRead(&my_btimeout); - if (!my_btimeout) - break; - } - KbdCmdRead(&my_btimeout); - - KbdMouseCmdAck(0xF3,&my_btimeout); - if (my_btimeout) goto done; - KbdMouseCmdAck(200,&my_btimeout); - if (my_btimeout) goto done; - KbdMouseCmdAck(0xF3,&my_btimeout); // enable Mouse - if (my_btimeout) goto done; - KbdMouseCmdAck(100,&my_btimeout); // Set Rate - if (my_btimeout) goto done; - KbdMouseCmdAck(0xF3,&my_btimeout); - if (my_btimeout) goto done; - KbdMouseCmdAck(80,&my_btimeout); //Resolution - if (my_btimeout) goto done; - if (!MouseGetDeviceType) goto done; // enable Mouse - - KbdMouseCmdAck(0xF3,&my_btimeout); - if (my_btimeout) goto done; - KbdMouseCmdAck(10,&my_btimeout); - if (my_btimeout) goto done; - if (!MouseGetDeviceType) goto done; // enable Mouse - - KbdMouseCmdAck(0xE8,&my_btimeout); //Resolution - if (my_btimeout) goto done; - KbdMouseCmdAck(0x03,&my_btimeout); - if (my_btimeout) goto done; - KbdMouseCmdAck(0xE6,&my_btimeout); - if (my_btimeout) goto done; - - KbdMouseCmdAck(0xF3,&my_btimeout); // Set Rate - if (my_btimeout) goto done; - KbdMouseCmdAck(100,&my_btimeout); - if (my_btimeout) goto done; - - KbdMouseCmdAck(0xF4,&my_btimeout); // enable Mouse - if (my_btimeout) goto done; - result=TRUE; -done: - KbdCmdSend(KEYB_CTRL,0xAE); //Enable Keyboard - if (mouse_has_wheel || mouse_has_ext_buttons) - mouse_pkt_size=4; - else - mouse_pkt_size=3; - if (!result) - KbdCmdSend(KEYB_CTRL,0xA7); //Disable Mouse - return result; -} - - -void MouseHandler() -{ - I8 i,dx,dy,dz,old_x=mxx,old_y=myy,old_z=mzz; - U1 mouse_buf[4]; - BoolU4 old_buttons[5]; - - for (i=0;i<5;i++) - old_buttons[i]=mouse_buttons[i]; - - for (i=0;i<4;i++) - if (!U1FifoRemove(kbdmouse_fifo,&mouse_buf[i])) - mouse_buf[i]=0; - - mouse_buttons[0] = mouse_buf[0] & 1; - mouse_buttons[1] = (mouse_buf[0] & 2) >> 1; - mouse_buttons[2] = (mouse_buf[0] & 4) >> 2; - mouse_buttons[3] = (mouse_buf[3] & 0x10) >> 4; - mouse_buttons[4] = (mouse_buf[3] & 0x20) >> 5; - if (mouse_buf[0] & 0x10) - dx=mouse_buf[1]-256; - else - dx=mouse_buf[1]; - if (mouse_buf[0] & 0x20) - dy=256-mouse_buf[2]; - else - dy=-mouse_buf[2]; - if (mouse_buf[3] & 0x08) - dz=(mouse_buf[3]&7)-8; - else - dz=mouse_buf[3]&7; - - mxx_prescale+=dx; - myy_prescale+=dy; - mzz_prescale+=dz; - - mxx=mxx_prescale*mxx_scale; - myy=myy_prescale*myy_scale; - mzz=mzz_prescale*mzz_scale; - - if (mxx < 0) { - mxx=0; - mxx_prescale=0; - } - if (mxx>=GR_WIDTH) { - mxx=GR_WIDTH-1; - mxx_prescale=mxx/mxx_scale; - } - if (myy < 0) { - myy=0; - myy_prescale=0; - } - if (myy>=GR_HEIGHT) { - myy=GR_HEIGHT-1; - myy_prescale=myy/myy_scale; - } - if (mxx!=old_x||myy!=old_y||mzz!=old_z) - mouse_evt=TRUE; - else - for (i=0;i<5;i++) - if (mouse_buttons[i]!=old_buttons[i]) { - mouse_evt=TRUE; - break; - } -} - -U8 kbdmouse_timeout=0; - -void ResetKbdMouse(I8 Hz=50) -{ - Btr(&sys_semas[SYS_SEMA_KEY_PRESSED],0); - KbdCmdFlush(Hz); - U1FifoFlush(kbdmouse_fifo); - U8FifoFlush(scan_code_fifo); - kbdmouse_timeout=0; - OutP(0x21,InP(0x21)&~2); -} - -BoolU8 InstallMouseDriver() -{ - I8 i; - Preempt(ON); - mouse_installed=FALSE; - for(i=0;i<5;i++) - mouse_buttons[i]=0; - if (MouseReset) - mouse_installed=TRUE; - ResetKbdMouse; - mouse_install_attempts++; - mouse_evt=mouse_installed; - return mouse_installed; -} - -void HandleKbdMouse() -{ - U1 i; - if (U1FifoCnt(kbdmouse_fifo)) { - if (kbdmouse_timeout && - GetTimeStamp>kbdmouse_timeout) { - ResetKbdMouse; - return; - } - if (Btr(&sys_semas[SYS_SEMA_KEY_PRESSED],0)) { - while (U1FifoCnt(kbdmouse_fifo)) { - if (U1FifoCnt(kbdmouse_fifo)==1) { - U1FifoPeek(kbdmouse_fifo,&i); - if (i==0xE0) { - if (!kbdmouse_timeout) - kbdmouse_timeout=GetTimeStamp+time_stamp_freq/50; - Bts(&sys_semas[SYS_SEMA_KEY_PRESSED],0); - return; - } - } - kbdmouse_timeout=0; - KbdHandler; - OutP(0x21,InP(0x21)&~2); - } - } else { - if (!mouse_installed) - U1FifoFlush(kbdmouse_fifo); - else { - if (U1FifoCnt(kbdmouse_fifo)>=mouse_pkt_size) { - kbdmouse_timeout=0; - mouse_evt_time=GetTimeStamp; - while (U1FifoCnt(kbdmouse_fifo)>=mouse_pkt_size) - MouseHandler; - } else - if (!kbdmouse_timeout) - kbdmouse_timeout=GetTimeStamp+time_stamp_freq/50; - } - } - } else - kbdmouse_timeout=0; -} - -#define KBDMOUSE_POLL_RATE 500 -U8 last_kbdmouse_poll_time=GetTimeStamp; - -extern void PollKbdMouse(); - -TssStruct *poll_kbdmouse_tss=NULL; - -void PollKbdMouseTsk() -{ //Poll for a minute - I8 i; - for (i=0;itime_stamp_freq/KBDMOUSE_POLL_RATE*4) { - last_kbdmouse_poll_time=poll_time; - ResetKbdMouse(0); - if (!poll_kbdmouse_tss) - poll_kbdmouse_tss=Spawn(&PollKbdMouseTsk,"Poll KbdMouse"); - } else { - last_kbdmouse_poll_time=poll_time; - while (InP(KEYB_CTRL)&1) { - U1FifoInsert(kbdmouse_fifo,InP(KEYB_PORT)); - HandleKbdMouse; - } - } -} - - -#help_index "" - - -InitKbd; -Spawn(&InstallMouseDriver); diff --git a/LT/Adam/LPT.APZ b/LT/Adam/LPT.APZ deleted file mode 100644 index 4bd4bb192405cd98ce8d2ba2ca9481804b37835c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2106 zcmY$+NX;pT&&*3ntx!;M&d<$N;^pGyO06hKEy`0U%g;nafB{eNGFIB-OASB+?&ohM6pu)hCmkU|g-%o*))1bo8 z1ywjWB*@>%l~V(x)89`aPQg$URe`^on*zuwVN07f1^!0;F67y0Li&7MP^HWkmAplijZ0@K7at_EN zpa6htg-Q7PfrM*84#KcLEe&pea87D!frg=h0XP^jO>uLB8v~9NP>lIx=B2u&rl!CR z0SUsQ(b*&3IS8aj0VQ^wJ>q>l{aoYSTwPs2vREAkGb7YcK`S`}7U!WB3MHAjsrjWP z@mZN^X_=|T)}VmMOjFQE&akxwSr{4=>>s45P?TCyT9gM4as_lfwq6ju+FqV+ZjteB zL9T&X#s;AHQBWw)$jnJq(D2Lyg}t%4rKXxeg`0(A4*%=1gFC;__*9zhm5ko1fZsF36Y3Iz-)NURN%<3av`1gjk=Sc5%0-9qAn100=Q zL7|YGVPk7hVeY1>0M3dE@Kmm?4feQ#0!S|`LEG6{7(fFEk`iF42CTMLAvLEs6|4ak zhe1%)FayAOM*%}!h@%sR18g;5nzSu671R{!%)yqB`AgHGq1!=!_!bftGFmx zM^8@=mMlR+Nu_DF!2w_;Uiq1M8h)WZJ~|+EiACwjI*CQ;Wtuu#1tmqcNu_CECqYvh zNDS&-B{Tac+q zC6xuKU=Kl(fm4Y_PDxsPN@j6EPGV&|NVZs~L=zedkR%F;Nev~{VkI4r8BoPAyWvT; z#Mag)#4RKqlola&LiIzdGG`C46x4PMZO%aoH8lz_LxTO?LO?|(ELTB{Ldh+d-iF5` z+}EI3%F(rhM-VtL&_dG9Kgbte0z>TaPXi@P+zHGrGba_C`tuTVQ(kC Zxhd&@m4Q7DmO%svKD$vG3QD|O3;;UfN;&`l diff --git a/LT/Adam/LogIn.APZ b/LT/Adam/LogIn.APZ deleted file mode 100644 index 96695a96e530865be1db576f4c8e7553f4f6a054..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2101 zcmY$+NX;pT&&*3ntx!-3Ni5D*;^pGyD$CDIQE<-B$w^HvaZFCmEAh!JF455B<*Mf8 zQcwuBP)M^ium&-GLR>P7T=PnbDiyR!QgaJ(4Z*^}mBnCf!6ikd$t4h}M6gV8WpR9B za&mrYUP-ZDUTQ^&ts1frrkb3@Vr**MQ%l_3auU;vHPq5{f-8$dQY%U{l!8Oz-8_9< z<3mF{ed67G9NmMJG+6`4lb;-=QJh(onxCeD>QhaKeg%c#k|O7VO0Wru zx^{Vqxv4rJ?YV{!4osP6UU6V)DnywMayaOLybV(Y(P;~zbnQT)2KG!XCv4n1-jJf)>bqu*ii;U`8Ft@I+e_SHhiw6k>^r zs8I?JzsxiR4MkAE4zbGguC={iZlosVd0vqg0Sipm=NB2EcwO^=@ zk2NnB*wg492*@u8EpSgQfr-PDu}?{wf>w^LPf40zYB|^{m=biqgWTp*k`_=}66{)0 zqLHJc6r2jm8VZh(l&lw16qDy%T2!20q>z$do~MwQm!eQmlv-S@5FFs>>rdC1CG^(^E=5BgkS5rHoC*rQskxxS3FJr}P=J6Xt$DdP6%^cx zQd2dOO2OqICpbNT9ERpmTaZq004gYe)zm_>9<<^JPAp5s9$&-+I8tycsHs5`BbGo$ zbCa%JesO$RYEf}!ex5CY33X+7QD#Xhp`o%=9LsxDrhC==s4x) z=Y*OlmpOYGtnVvz3SzwDSz^>BpG*r+6c_S||Hx2) zxa8$h2@lsXRMFQ`arDzsQqlpZ0u^2^pZwy~kc|9d1)q{M^5C#zX)WNLVg-pI3+*16y#ln%wmPaycC7p z(&7?@f};H7)MAi;0w_=96=#;E;?$U$n4FWhCaMpxgbyC4)Nst+|*)Fl;tZF=0) { - el->num=1; - switch (type) { - case LK_FILE: - if (DoForm(el,"EditFileLinkStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - result=TRUE; - if (!el->display[0]) - *display=NewStr(el->file); - else - *display=NewStr(el->display); - *link=MSPrintF("FI:%s",el->file); - } - break; - case LK_PLAIN: - if (DoForm(el,"EditFileLinkStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - result=TRUE; - if (!el->display[0]) - *display=NewStr(el->file); - else - *display=NewStr(el->display); - *link=MSPrintF("PI:%s",el->file); - } - break; - case LK_FILE_ANCHOR: - if (DoForm(el,"EditFileAnchorLinkStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - result=TRUE; - if (!el->display[0]) - *display=NewStr(el->aux); - else - *display=NewStr(el->display); - *link=MSPrintF("FA:%s,%s",el->file,el->aux); - } - break; - case LK_FILE_FIND: - if (DoForm(el,"EditFileFindLinkStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - result=TRUE; - if (el->num==1) { - if (!el->display[0]) - *display=NewStr(el->aux); - else - *display=NewStr(el->display); - *link=MSPrintF("FF:%s,%s",el->file,el->aux); - } else { - if (!el->display[0]) - *display=NewStr(el->aux); - else - *display=NewStr(el->display); - *link=MSPrintF("FF:%s,%s:%d",el->file,el->aux,el->num); - } - } - break; - case LK_PLAIN_FIND: - if (DoForm(el,"EditFileFindLinkStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - result=TRUE; - if (el->num==1) { - if (!el->display[0]) - *display=NewStr(el->aux); - else - *display=NewStr(el->display); - *link=MSPrintF("PF:%s,%s",el->file,el->aux); - } else { - if (!el->display[0]) - *display=NewStr(el->aux); - else - *display=NewStr(el->display); - *link=MSPrintF("PF:%s,%s:%d",el->file,el->aux,el->num); - } - } - break; - case LK_FILE_LINE: - if (DoForm(el,"EditFileLineLinkStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - result=TRUE; - if (!el->display[0]) - *display=NewStr(el->file); - else - *display=NewStr(el->display); - *link=MSPrintF("FL:%s,%d",el->file,el->num); - } - break; - case LK_PLAIN_LINE: - if (DoForm(el,"EditFileLineLinkStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - result=TRUE; - if (!el->display[0]) - *display=NewStr(el->file); - else - *display=NewStr(el->display); - *link=MSPrintF("PL:%s,%d",el->file,el->num); - } - break; - case LK_MAN_PAGE: - if (DoForm(el,"EditManPageLinkStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - result=TRUE; - if (!el->display[0]) - *display=NewStr(el->aux); - else - *display=NewStr(el->display); - *link=MSPrintF("MN:%s",el->aux); - } - break; - case LK_PLACE_ANCHOR: - if (DoForm(el,"EditPlaceAnchorStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - result=TRUE; - if (!el->display[0]) { - if (el->hide) - *display=NewStr(""); - else - *display=NewStr(el->aux); - } else - *display=NewStr(el->display); - *link=NewStr(el->aux); - } - break; - case LK_BIBLE_FIND: //TODO - i=PopUpPickSysTextSub("ST_BIBLE_BOOKS"); - if (i>=0) { - if (DoForm(el,"EditBibleLinkStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - result=TRUE; - if (!el->display[0]) - *display=MSPrintF("%Z,%s",i,"ST_BIBLE_BOOKS",el->aux); - else - *display=NewStr(el->display); - *link=MSPrintF("BF:%Z,%s",i,"ST_BIBLE_BOOKS",el->aux); - } - } - break; - case LK_DEF: - el->num=-1; - if (DoForm(el,"EditDefLinkStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - result=TRUE; - if (!el->display[0]) - *display=NewStr(el->aux); - else - *display=NewStr(el->display); - if (el->num<0) - *link=MSPrintF("DF:%s",el->aux); - else - *link=MSPrintF("DF:%s,%d",el->aux,el->num); - - } - break; - case LK_HELP_INDEX: - if (DoForm(el,"EditManPageLinkStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - result=TRUE; - if (!el->display[0]) - *display=NewStr(el->aux); - else - *display=NewStr(el->display); - *link=MSPrintF("HI:%s",el->aux); - } - break; - } - } - if (el->quote) *quote=TRUE; - Free(el); - return result; -} - -void EditInsertLink() -{ - I1 *display=NULL,*link=NULL,*st=NULL; - BoolU4 quote=FALSE; - I8 type=PopUpLinkType(TRUE); - if (type>=0) { - if (PmtLink(type,&display,&link,"e)) { - if (type==LK_PLACE_ANCHOR) - st=MSPrintF("$$AN,\"%s\",\"%s\"$$",display,link); - else - st=MSPrintF("$$LK,\"%s\",\"%s\"$$",display,link); - } - } - if (st) { - if (quote) - PrintF("%Q",st); - else - PutS(st); - } - Free(display); - Free(link); - Free(st); -} - -I8 PopUpColorType() -{ - I8 i; - Ltf *l=LtfNew; - LtfPutSExt(l,"$$MU,\"Foreground\" LTFT_FOREGROUND_COLOR$$\r\n"); - LtfPutSExt(l,"$$MU,\"Background\" LTFT_BACKGROUND_COLOR$$\r\n"); - LtfPutSExt(l,"$$MU,\"Default Foreground\" LTFT_DEFAULT_FOREGROUND_COLOR$$\r\n"); - LtfPutSExt(l,"$$MU,\"Default Background\" LTFT_DEFAULT_BACKGROUND_COLOR$$\r\n"); - LtfPutSExt(l,"$$MU,\"Link Foreground\" LTFT_LINK_FOREGROUND$$\r\n"); - LtfPutSExt(l,"$$MU,\"Link Background\" LTFT_LINK_BACKGROUND$$\r\n"); - LtfPutSExt(l,"$$MU,\"Macro Foreground\" LTFT_MACRO_FOREGROUND$$\r\n"); - LtfPutSExt(l,"$$MU,\"Macro Background\" LTFT_MACRO_BACKGROUND$$\r\n"); - LtfPutSExt(l,"$$MU,\"Anchor Foreground\" LTFT_ANCHOR_FOREGROUND$$\r\n"); - LtfPutSExt(l,"$$MU,\"Anchor Background\" LTFT_ANCHOR_BACKGROUND$$\r\n"); - LtfPutSExt(l,"$$MU,\"Hidden Foreground\" LTFT_HIDDEN_FOREGROUND$$\r\n"); - LtfPutSExt(l,"$$MU,\"Hidden Background\" LTFT_HIDDEN_BACKGROUND$$\r\n"); - LtfPutSExt(l,"$$MU,\"Tree Foreground\" LTFT_TREE_FOREGROUND$$\r\n"); - LtfPutSExt(l,"$$MU,\"Tree Background\" LTFT_TREE_BACKGROUND$$\r\n"); - LtfPutSExt(l,"$$MU,\"User Foreground\" LTFT_USER_FOREGROUND$$\r\n"); - LtfPutSExt(l,"$$MU,\"User Background\" LTFT_USER_BACKGROUND$$\r\n"); - LtfPutSExt(l,"$$MU,\"CANCEL\" -1$$"); - i=PopUpMenu(l); - LtfDel(l); - return i; -} - - -I8 PopUpPageSettingType() -{ - I8 i; - Ltf *l=LtfNew; - LtfPutSExt(l,"$$MU,\"Page Length\",LTFT_PAGE_LENGTH$$\r\n"); - LtfPutSExt(l,"$$MU,\"Page Header\",LTFT_HEADER$$\r\n"); - LtfPutSExt(l,"$$MU,\"Page Footer\",LTFT_FOOTER$$\r\n"); - LtfPutSExt(l,"$$MU,\"Left Margin\",LTFT_LEFT_MARGIN$$\r\n"); - LtfPutSExt(l,"$$MU,\"Right Margin\",LTFT_RIGHT_MARGIN$$\r\n"); - i=PopUpMenu(l); - LtfDel(l); - return i; -} - -void EditInsertColor() -{ - I8 type=PopUpColorType,col=LTF_DEFAULT; - if (type>=0) { - col=PopUpColor; - if (col==LTF_DEFAULT) - PrintF("$$%Z$$",type,"ST_LTF_CMDS"); - else if (col>=0) - PrintF("$$%Z,%d$$",type,"ST_LTF_CMDS",col); - } -} - -class EditPageSettingStruct -{ - I1 value[132] fmtstr "$$DA -P 131 \"Setting Value:%s\"$$\r\n"; -}; - -class EditPageSettingStruct2 -{ - I1 value[132] fmtstr "$$DA -P 131 \"Setting Value:%s\"$$\r\n"; - BoolU4 winrel fmtstr "$$CB \"Win Relative\"$$\r\n"; -}; - - -void EditInsertPageSetting() -{ - I8 type=PopUpPageSettingType; - EditPageSettingStruct *el=MAllocZ(sizeof(EditPageSettingStruct)); - EditPageSettingStruct2 *el2=MAllocZ(sizeof(EditPageSettingStruct2)); - if (type>=0) { - if (type==LTFT_RIGHT_MARGIN) { - if (DoForm(el2,"EditPageSettingStruct2")) { - if (el2->winrel) { - if (*el2->value) - PrintF("$$%Z+WR,%s$$",type,"ST_LTF_CMDS",el2->value); - else - PrintF("$$%Z+WR$$",type,"ST_LTF_CMDS"); - } else { - if (*el2->value) - PrintF("$$%Z,%s$$",type,"ST_LTF_CMDS",el2->value); - else - PrintF("$$%Z$$",type,"ST_LTF_CMDS"); - } - } - } else { - if (DoForm(el,"EditPageSettingStruct")) { - if (*el->value) - PrintF("$$%Z,%s$$",type,"ST_LTF_CMDS",el->value); - else - PrintF("$$%Z$$",type,"ST_LTF_CMDS"); - } - } - } - Free(el2); - Free(el); -} - -I8 PopUpDollarType() -{ - I8 i; - Ltf *l=LtfNew; - LtfPutSExt(l,"$$MU,\"Link\" LTFT_LINK$$\r\n"); - LtfPutSExt(l,"$$MU,\"Text\" LTFT_TEXT$$\r\n"); - LtfPutSExt(l,"$$MU,\"Tree Branch\" LTFT_TREE$$\r\n"); - LtfPutSExt(l,"$$MU,\"Color\" LTFT_FOREGROUND_COLOR$$\r\n"); - LtfPutSExt(l,"$$MU,\"Page Settings\" LTFT_PAGE_LENGTH$$\r\n"); - LtfPutSExt(l,"$$MU,\"Cursor Movement\" LTFT_CURSOR_MOVEMENT$$\r\n"); - LtfPutSExt(l,"$$MU,\"Button\" LTFT_BUTTON$$\r\n"); - LtfPutSExt(l,"$$MU,\"Check Box\" LTFT_CHECK_BOX$$\r\n"); - LtfPutSExt(l,"$$MU,\"Macro\" LTFT_MACRO$$\r\n"); - LtfPutSExt(l,"$$MU,\"Menu Value\" LTFT_MENU_VALUE$$\r\n"); - LtfPutSExt(l,"$$MU,\"Button\" LTFT_BUTTON$$\r\n"); - LtfPutSExt(l,"$$MU,\"Data\" LTFT_DATA$$\r\n"); - LtfPutSExt(l,"$$MU,\"Hex Edit\" LTFT_HEX_EDIT$$\r\n"); - LtfPutSExt(l,"$$MU,\"Hidden Widget\" LTFT_HIDE_START$$\r\n"); - LtfPutSExt(l,"$$MU,\"Song\" LTFT_SONG$$\r\n"); - LtfPutSExt(l,"$$MU,\"CANCEL\" -1$$"); - i=PopUpMenu(l); - LtfDel(l); - return i; -} - -class EditDollarTextStruct -{ - I1 display[132] fmtstr "$$DA-P,131,\"Displayed Text:%s\"$$\r\n"; - BoolU4 left_x fmtstr "$$CB,\"Left X\"$$\r\n"; - BoolU4 center_x fmtstr "$$CB,\"Center X\"$$\r\n"; - BoolU4 right_x fmtstr "$$CB,\"Right X\"$$\r\n"; - BoolU4 margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\r\n"; - BoolU4 blink fmtstr "$$CB,\"Blink\"$$\r\n"; - BoolU4 invert fmtstr "$$CB,\"Invert\"$$\r\n"; - BoolU4 underline fmtstr "$$CB,\"Underline\"$$\r\n"; - BoolU4 tree fmtstr "$$CB,\"Tree\"$$\r\n"; - BoolU4 collapsed fmtstr "$$CB,\"Collapsed\"$$\r\n"; - BoolU4 alias fmtstr "$$CB,\"Alias\"$$\r\n"; - I1 scroll_x [132] fmtstr "$$DA-P,131,\"Scroll X Length Expression:%s\"$$\r\n"; - I1 shift_x [132] fmtstr "$$DA-P,131,\"X Offset Expression :%s\"$$\r\n"; - I1 shift_y [132] fmtstr "$$DA-P,131,\"Y Offset Expression :%s\"$$\r\n"; -}; - -void EditInsertDollarText() -{ - I1 *st,buf[132]; - EditDollarTextStruct *dt=MAllocZ(sizeof(EditDollarTextStruct)); - if (DoForm(dt,"EditDollarTextStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - *buf=0; - if (dt->left_x ) StrCat(buf,"+LX"); - if (dt->center_x) StrCat(buf,"+CX"); - if (dt->right_x ) StrCat(buf,"+RX"); - if (dt->margin_rel) StrCat(buf,"+MRX"); - if (dt->blink) StrCat(buf,"+BK"); - if (dt->invert) StrCat(buf,"+IV"); - if (dt->underline) StrCat(buf,"+UL"); - if (dt->tree) StrCat(buf,"+TR"); - if (dt->collapsed) StrCat(buf,"+C"); - if (dt->alias) StrCat(buf,"+AL"); - if (*dt->scroll_x) StrCat(buf,"+SCX"); - if (*dt->shift_x) StrCat(buf,"+SX"); - if (*dt->shift_y) StrCat(buf,"+SY"); - st=MSPrintF("%q",dt->display); - PrintF("$$TX%s,\"%Q\"",buf,st); - Free(st); - if (*dt->shift_x) - PrintF(",%s",dt->shift_x); - if (*dt->shift_y) - PrintF(",%s",dt->shift_y); - if (*dt->scroll_x) - PrintF(",%s",dt->scroll_x); - PrintF("$$"); - } - Free(dt); -} - -class EditSongStruct -{ - I1 display[132] fmtstr "$$DA-P,131,\"Displayed Text:%s\"$$\r\n"; - I1 song[512] fmtstr "$$DA-P,511,\"Song :%s\"$$\r\n"; -}; - -void EditInsertSong() -{ - EditSongStruct *dt=MAllocZ(sizeof(EditSongStruct)); - if (DoForm(dt,"EditSongStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) - PrintF("$$SO,\"%s\",\"%s\"$$",dt->display,dt->song); - Free(dt); -} - -class EditMacroMenuStruct -{ - I1 display[132] fmtstr "$$DA-P,131,\"Displayed Text :%s\"$$\r\n"; - I1 left_macro[512] fmtstr "$$DA-P,511,\"Left Click Macro :%s\"$$\r\n"; - I1 left_exp[132] fmtstr "$$DA-P,131,\"Left Click Expression :%s\"$$\r\n"; - BoolU4 popup fmtstr "$$CB,\"PopUp\"$$\r\n"; - BoolU4 left_is_auto fmtstr "$$CB,\"Left is AutoStr\"$$\r\n"; - BoolU4 left_x fmtstr "$$CB,\"Left X \"$$\r\n"; - BoolU4 center_x fmtstr "$$CB,\"Center X \"$$\r\n"; - BoolU4 right_x fmtstr "$$CB,\"Right X \"$$\r\n"; - BoolU4 margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\r\n"; - BoolU4 blink fmtstr "$$CB,\"Blink\"$$\r\n"; - BoolU4 invert fmtstr "$$CB,\"Invert\"$$\r\n"; - BoolU4 underline fmtstr "$$CB,\"Underline\"$$\r\n"; - BoolU4 escape fmtstr "$$CB,\"Escape\"$$\r\n"; - I1 scroll_x[132] fmtstr "$$DA-P,131,\"Scroll X Length Expression:%s\"$$\r\n"; - I1 shift_x[132] fmtstr "$$DA-P,131,\"X Offset Expression :%s\"$$\r\n"; - I1 shift_y[132] fmtstr "$$DA-P,131,\"Y Offset Expression :%s\"$$\r\n"; -}; - -void EditInsertMacroMenu(BoolU4 is_macro) -{ - I1 *st,buf[132]; - EditMacroMenuStruct *dt=MAllocZ(sizeof(EditMacroMenuStruct)); - dt->underline=TRUE; - dt->escape=TRUE; - if (DoForm(dt,"EditMacroMenuStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - *buf=0; - if (is_macro && *dt->display) StrCat(buf,"+A "); - if (dt->popup) StrCat(buf,"+PU-X"); - if (dt->left_x ) StrCat(buf,"+LX"); - if (dt->center_x) StrCat(buf,"+CX"); - if (dt->right_x ) StrCat(buf,"+RX"); - if (dt->margin_rel) StrCat(buf,"+MRX"); - if (dt->blink) StrCat(buf,"+BK"); - if (dt->invert) StrCat(buf,"+IV"); - if (!dt->underline) StrCat(buf,"-UL"); - if (!dt->escape) StrCat(buf,"-X"); - if (*dt->scroll_x) StrCat(buf,"+SCX"); - if (*dt->shift_x) StrCat(buf,"+SX"); - if (*dt->shift_y) StrCat(buf,"+SY"); - if (is_macro) { - if (*dt->left_exp) StrCat(buf,"+LE"); - if (!*dt->left_macro) StrCat(buf,"-LM"); - } else { - if (!*dt->left_exp) StrCat(buf,"-LE"); - if (*dt->left_macro) StrCat(buf,"+LM"); - } - if (dt->left_is_auto) StrCat(buf,"+LA"); - if (*dt->display || is_macro) { - if (is_macro) { - if (*dt->display) { - st=MSPrintF("%q",dt->display); - PrintF("$$MA %s,\"%Q\"",buf,st); - Free(st); - } else - PrintF("$$MA %s,",buf); - } else { - st=MSPrintF("%q",dt->display); - PrintF("$$MU %s,\"%Q\"",buf,st); - Free(st); - } - if (*dt->left_exp) - PrintF(",%s",dt->left_exp); - if (*dt->left_macro) { - st=MSPrintF("%q",dt->left_macro); - PrintF(",\"%Q\"",st); - Free(st); - } - if (*dt->shift_x) - PrintF(",%s",dt->shift_x); - if (*dt->shift_y) - PrintF(",%s",dt->shift_y); - if (*dt->scroll_x) - PrintF(",%s",dt->scroll_x); - PutS("$$"); - } - } - Free(dt); -} - -class EditButtonStruct -{ - I1 display[132] fmtstr "$$DA-P,131,\"Displayed Text:%s\"$$\r\n"; - BoolU4 popup fmtstr "$$CB,\"PopUp\"$$\r\n"; - BoolU4 left_x fmtstr "$$CB,\"Left X \"$$\r\n"; - BoolU4 center_x fmtstr "$$CB,\"Center X \"$$\r\n"; - BoolU4 right_x fmtstr "$$CB,\"Right X \"$$\r\n"; - BoolU4 margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\r\n"; - BoolU4 escape fmtstr "$$CB,\"Escape\"$$\r\n"; - I1 left_macro [132] fmtstr "$$DA-P,131,\"Left Click Macro:%s\"$$\r\n"; - BoolU4 left_is_auto fmtstr "$$CB,\"Left is AutoStr\"$$\r\n"; - I1 left_exp [132] fmtstr "$$DA-P,131,\"Left Click Expression:%s\"$$\r\n"; - BoolU4 quote fmtstr "$$CB,\"Quote\"$$\r\n"; -}; - -void EditInsertButton() -{ - I1 *st,buf[132]; - EditButtonStruct *dt=MAllocZ(sizeof(EditButtonStruct)); - dt->escape=TRUE; - if (DoForm(dt,"EditButtonStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - *buf=0; - if (dt->popup) StrCat(buf,"+PU-X"); - if (dt->left_x ) StrCat(buf,"+LX"); - if (dt->center_x) StrCat(buf,"+CX"); - if (dt->right_x ) StrCat(buf,"+RX"); - if (dt->margin_rel) StrCat(buf,"+MRX"); - if (!dt->escape) StrCat(buf,"-X"); - if (!*dt->left_exp) StrCat(buf,"-LE"); - if (*dt->left_macro) StrCat(buf,"+LM"); - if (dt->left_is_auto) StrCat(buf,"+LA"); - if (dt->display[0]) { - if (dt->quote) { - st=MSPrintF("%q",dt->display); - PrintF("$$$$BT%s,\\\"%Q\\\"",buf,st); - Free(st); - if (*dt->left_exp) - PrintF(",%s",dt->left_exp); - if (*dt->left_macro) { - st=MSPrintF("%q",dt->left_macro); - PrintF(",\\\"%Q\\\"",st); - Free(st); - } - PutS("$$$$"); - } else { - st=MSPrintF("%q",dt->display); - PrintF("$$BT%s,\"%Q\"",buf,st); - Free(st); - if (*dt->left_exp) - PrintF(",%s",dt->left_exp); - if (*dt->left_macro) { - st=MSPrintF("%q",dt->left_macro); - PrintF(",\"%Q\"",st); - Free(st); - } - PutS("$$"); - } - } - } - Free(dt); -} - - -class EditCursorMovementStruct -{ - I1 left_exp[132] fmtstr "$$DA-P,131,\"X Expression:%s\"$$\r\n"; - I1 right_exp[132] fmtstr "$$DA-P,131,\"Y Expression:%s\"$$\r\n"; - BoolU4 left_x fmtstr "$$CB,\"Left X \"$$\r\n"; - BoolU4 center_x fmtstr "$$CB,\"Center X \"$$\r\n"; - BoolU4 right_x fmtstr "$$CB,\"Right X \"$$\r\n"; - BoolU4 margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\r\n"; - BoolU4 top_y fmtstr "$$CB,\"Top Y \"$$\r\n"; - BoolU4 center_y fmtstr "$$CB,\"Center Y \"$$\r\n"; - BoolU4 bottom_y fmtstr "$$CB,\"Bottom Y \"$$\r\n"; - BoolU4 page_rel fmtstr "$$CB,\"Page Rel Y\"$$\r\n"; - BoolU4 quote fmtstr "$$CB,\"Quote\"$$\r\n"; -}; - -void EditInsertCursorMovement() -{ - I1 buf[132]; - EditCursorMovementStruct *dt=MAllocZ(sizeof(EditCursorMovementStruct)); - if (DoForm(dt,"EditCursorMovementStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - *buf=0; - if (dt->left_x ) StrCat(buf,"+LX"); - if (dt->center_x) StrCat(buf,"+CX"); - if (dt->right_x ) StrCat(buf,"+RX"); - if (dt->margin_rel) StrCat(buf,"+MRX"); - if (dt->top_y ) StrCat(buf,"+TY"); - if (dt->center_y) StrCat(buf,"+CY"); - if (dt->bottom_y) StrCat(buf,"+BY"); - if (dt->page_rel) StrCat(buf,"+PRY"); - if (!*dt->left_exp) StrCat(buf,"-LE"); - if (!*dt->right_exp) StrCat(buf,"-RE"); - if (dt->quote) - PutS("$$"); - PrintF("$$CM%s",buf); - if (*dt->left_exp) - PrintF(",%s",dt->left_exp); - if (*dt->right_exp) - PrintF(",%s",dt->right_exp); - PutS("$$"); - if (dt->quote) - PutS("$$"); - } - Free(dt); -} - -class EditDataStruct -{ - I1 format_str [132] fmtstr "$$DA-P,131,\"Format Str:%s\"$$\r\n"; - U8 len fmtstr "$$DA,256,\"Length:%d\"$$\r\n"; - BoolU4 term fmtstr "$$CB,\"Terminator\"$$\r\n"; - BoolU4 str fmtstr "$$CB,\"Str\"$$\r\n"; - BoolU4 refresh fmtstr "$$CB,\"Refresh Data\"$$\r\n"; -}; - -void EditInsertData() -{ - I1 *st,buf[132]; - EditDataStruct *dt=MAllocZ(sizeof(EditDataStruct)); - dt->term=TRUE; - dt->len=256; - if (DoForm(dt,"EditDataStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - *buf=0; - if (dt->str) StrCat(buf,"-P"); - if (!dt->term) StrCat(buf,"-T"); - if (dt->refresh) StrCat(buf,"+RD"); - st=MSPrintF("%q",dt->format_str); - PrintF("$$$$DA%s,%d,\\\"%Q\\\"$$$$", - buf,dt->len,st); - Free(st); - } - Free(dt); -} - -class EditCheckBoxStruct -{ - I1 label [132] fmtstr "$$DA-P,131,\"Displayed Text:%s\"$$\r\n"; - BoolU4 refresh fmtstr "$$CB,\"Refresh Data\"$$\r\n"; -}; - -void EditInsertCheckBox() -{ - I1 *st,buf[132]; - EditCheckBoxStruct *dt=MAllocZ(sizeof(EditCheckBoxStruct)); - if (DoForm(dt,"EditCheckBoxStruct",CTRL_L_HELP,TRUE)) { - *buf=0; - if (dt->refresh) StrCat(buf,"+RD"); - st=MSPrintF("%q",dt->label); - PrintF("$$$$CB %s,\\\"%Q\\\"$$$$", - buf,st); - Free(st); - } - Free(dt); -} - -class EditHexEditStruct -{ - U8 cnt fmtstr "$$DA,256,\"Count:%d\"$$\r\n"; - U8 cols fmtstr "$$DA,256,\"Columns:%d\"$$\r\n"; - BoolU4 zero fmtstr "$$CB,\"Zero Based\"$$\r\n"; - BoolU4 refresh fmtstr "$$CB,\"Refresh Data\"$$\r\n"; -}; - -void EditInsertHexEdit() -{ - I1 buf[132]; - EditHexEditStruct *dt=MAllocZ(sizeof(EditHexEditStruct)); - dt->cnt=128; - dt->cols=4; - dt->zero=TRUE; - if (DoForm(dt,"EditHexEditStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - *buf=0; - if (!dt->zero) StrCat(buf,"-Z"); - if (dt->refresh) StrCat(buf,"+RD"); - PrintF("$$$$HX %s,%d,%d$$$$", - buf,dt->cnt,dt->cols); - } - Free(dt); -} - -class EditTreeStruct -{ - I1 label[132] fmtstr "$$DA-P,131,\"Displayed Text:%s\"$$\r\n"; - I8 indent fmtstr "$$DA,131,\"Indention:%d\"$$\r\n"; - BoolU4 collapsed fmtstr "$$CB,\"Collapsed\"$$\r\n"; -}; - -void EditInsertTree() -{ - I1 *st,*st2,buf[132]; - EditTreeStruct *dt=MAllocZ(sizeof(EditTreeStruct)); - dt->collapsed=TRUE; - dt->indent=2; - if (DoForm(dt,"EditTreeStruct",CTRL_L_HELP,TRUE,ctrl_L_header)) { - *buf=0; - if (!dt->collapsed) StrCat(buf,"-C"); - st=MSPrintF("%q",dt->label); - st2=MSPrintF("$$TR %s,\"%Q\"$$\r\n$$ID,%d$$*\r\n$$ID,%d$$", - buf,st,dt->indent,-dt->indent); - LtfSafeInsert(Fs->cur_ltf,st2); - Free(st); - Free(st2); - } - Free(dt); -} - -void EditInsertHidden() -{ - LtfSafeInsert(Fs->cur_ltf,"$$HS$$*$$HE$$"); -} - -void EditInsertDollarCmd() -{ - I8 type=PopUpDollarType; - switch (type) { - case LTFT_FOREGROUND_COLOR: - EditInsertColor; - break; - case LTFT_PAGE_LENGTH: - EditInsertPageSetting; - break; - case LTFT_LINK: - EditInsertLink; - break; - case LTFT_TEXT: - EditInsertDollarText; - break; - case LTFT_TREE: - EditInsertTree; - break; - case LTFT_MACRO: - EditInsertMacroMenu(TRUE); - break; - case LTFT_MENU_VALUE: - EditInsertMacroMenu(FALSE); - break; - case LTFT_CURSOR_MOVEMENT: - EditInsertCursorMovement; - break; - case LTFT_BUTTON: - EditInsertButton; - break; - case LTFT_DATA: - EditInsertData; - break; - case LTFT_CHECK_BOX: - EditInsertCheckBox; - break; - case LTFT_HEX_EDIT: - EditInsertHexEdit; - break; - case LTFT_HIDE_START: - EditInsertHidden; - break; - case LTFT_SONG: - EditInsertSong; - break; - } -} -I8 PopUpPictureType() -{ - I8 i; - Ltf *l=LtfNew; - LtfPutSExt(l,"$$MU,\"Just Picture\",1$$\r\n"); - LtfPutSExt(l,"$$MU,\"Macro\",2$$\r\n"); - LtfPutSExt(l,"$$MU,\"Menu Item\",3$$\r\n"); - LtfPutSExt(l,"$$MU,\"Link\",4$$\r\n"); - LtfPutSExt(l,"$$MU,\"CANCEL\",-1$$"); - i=PopUpMenu(l); - LtfDel(l); - return i; -} - -class EditJustPictureStruct -{ - I1 display[132] fmtstr "$$DA-P,131,\"Displayed Text :%s\"$$\r\n"; -}; - -class EditMacroPictureStruct -{ - I1 display[132] fmtstr "$$DA-P,131,\"Displayed Text :%s\"$$\r\n"; - I1 exp[512] fmtstr "$$DA-P,511,\"Macro :%s\"$$\r\n"; - BoolU4 escape fmtstr "$$CB,\"Escape\"$$\r\n"; - BoolU4 popup fmtstr "$$CB,\"PopUp\"$$\r\n"; - BoolU4 is_auto fmtstr "$$CB,\"AutoStr\"$$\r\n"; -}; - -class EditMenuPictureStruct -{ - I1 display[132] fmtstr "$$DA-P,131,\"Displayed Text :%s\"$$\r\n"; - I1 exp[512] fmtstr "$$DA-P,511,\"Expression :%s\"$$\r\n"; - BoolU4 escape fmtstr "$$CB,\"Escape\"$$\r\n"; -}; - -I1 *EditPictureLink() -{ - I1 *result=NULL,*display=NULL,*link=NULL; - BoolU4 quote=FALSE; - I8 type=PopUpLinkType(FALSE); - if (type>=0) { - if (PmtLink(type,&display,&link,"e)) - result=MSPrintF("\"%s\",\"%s\"",display,link); - } - Free(display); - Free(link); - return result; -} - -I1 *EditPicture() -{ - I8 type=PopUpPictureType; - I1 *st,*st1=NULL,*st2=NULL,buf[132]; - EditMacroPictureStruct *dt=MAllocZ(sizeof(EditMacroPictureStruct)); - *buf=0; - switch (type) { - case 1: - if (DoForm(dt,"EditJustPictureStruct",CTRL_L_HELP,TRUE)) - st1=MSPrintF("\"%Q\"",dt->display); - break; - case 2: - dt->escape=TRUE; - if (DoForm(dt,"EditMacroPictureStruct",CTRL_L_HELP,TRUE)) { - StrCat(buf,"+LM+UL"); - if (dt->is_auto) StrCat(buf,"+LA"); - if (dt->popup) StrCat(buf,"+PU"); - if (dt->escape) StrCat(buf,"+X"); - st=MSPrintF("%q",dt->exp); - st1=MSPrintF("\"%Q\",\"%Q\"",dt->display,st); - Free(st); - } - break; - case 3: - dt->escape=TRUE; - if (DoForm(dt,"EditMenuPictureStruct",CTRL_L_HELP,TRUE)) { - StrCat(buf,"+LE"); - if (dt->escape) StrCat(buf,"+X"); - st1=MSPrintF("\"%Q\",\"%Q\"",dt->display,dt->exp); - } - break; - case 4: - StrCat(buf,"+L+A"); - st1=EditPictureLink; - break; - } - if (st1) { - st2=MSPrintF("$$PI%s,%s$$",buf,st1); - Free(st1); - } - Free(dt); - return st2; -} diff --git a/LT/Adam/Ltf/LtfEdit.APZ b/LT/Adam/Ltf/LtfEdit.APZ deleted file mode 100644 index 89eb254..0000000 --- a/LT/Adam/Ltf/LtfEdit.APZ +++ /dev/null @@ -1,1389 +0,0 @@ -#define EDIT_MENU_NAME "::/LT/Doc/Edit.MUZ" - -public LtfEntry *LtfFindAnchor(Ltf *l,I1 *pattern) -{ - LtfEntry *ll=l->dummy.next; - while (ll!=l) { - if (ll->btype==LTFT_ANCHOR) { - if (!StrCmp(pattern,ll->aux_str)) { - l->cur_entry=ll; - l->cur_data_col=ll->min_col; - return ll; - } - } - ll=ll->next; - } - return NULL; -} - -void EditCursorLeft(Ltf *l,U8 sc) -{ - I1 *dst; - BoolU4 old_preempt=Preempt(OFF); - LtfEntry *cl=l->cur_entry,*original_cl=cl,*nl; - I8 cc=l->cur_data_col,y=cl->y; - if (sc & SCF_CTRL) { - while (cl->last!=l && (cl->last->y==y || - cl->last->flags & LTFLF_SKIP)) - cl=cl->last; //TODO: select? recurse? - cc=cl->min_col; - } else { - if (cc>cl->min_col) { - if (cl->btype==LTFT_TEXT && ccmax_col) { - nl=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - nl->type=cl->type; - nl->flags=cl->flags; - dst=cl->display+cc; - nl->display=NewStr(dst,l->mem_tss); - nl->max_col=StrLen(dst); - nl->x=cl->x; - nl->y=cl->y; - nl->indent=cl->indent; - nl->page_line_num=cl->page_line_num; - nl->left_margin=cl->left_margin; - nl->right_margin=cl->right_margin; - *dst=0; - cl->max_col=cc; - InsQue(nl,cl); - } - cc--; - if (cl->btype==LTFT_TEXT && cc>cl->min_col) { - nl=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - nl->type=cl->type; - nl->flags=cl->flags; - dst=cl->display+cc; - nl->display=NewStr(dst,l->mem_tss); - nl->max_col=StrLen(dst); - nl->x=cl->x; - nl->y=cl->y; - nl->indent=cl->indent; - nl->page_line_num=cl->page_line_num; - nl->left_margin=cl->left_margin; - nl->right_margin=cl->right_margin; - *dst=0; - cl->max_col=cc; - InsQue(nl,cl); - cl=nl; - cc=cl->min_col; - } - if ((sc & SCF_SHIFT)) - cl->type|=LTFLT_SELECTED; - else - cl->type&=~LTFLT_SELECTED; - } else { - cc=cl->min_col; - while (cl->last!=l && - (cl->last->btype==LTFT_SOFT_CR || cl->last->btype==LTFT_INDENT || - cl->last->flags & LTFLF_SKIP)) { - cl=cl->last; - if ((sc & SCF_SHIFT)) - cl->type|=LTFLT_SELECTED; - else - cl->type&=~LTFLT_SELECTED; - } - if (cl->last!=l) { - cl=cl->last; - if (cl->max_col>cl->min_col) { - cc=cl->max_col-1; - if (cl->btype==LTFT_TEXT && cc>cl->min_col) { - nl=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - nl->type=cl->type; - nl->flags=cl->flags; - dst=cl->display+cc; - nl->display=NewStr(dst,l->mem_tss); - nl->max_col=StrLen(dst); - nl->x=cl->x; - nl->y=cl->y; - nl->indent=cl->indent; - nl->page_line_num=cl->page_line_num; - nl->left_margin=cl->left_margin; - nl->right_margin=cl->right_margin; - *dst=0; - cl->max_col=cc; - InsQue(nl,cl); - cl=nl; - cc=cl->min_col; - } - } else - cc=cl->max_col; - if ((sc & SCF_SHIFT)) - cl->type|=LTFLT_SELECTED; - else - cl->type&=~LTFLT_SELECTED; - } - } - } - l->cur_data_col=cc; - l->cur_entry=cl; - if (cl!=original_cl) - LtfFormBackward(l); - l->recalc_start=l->cur_entry->last; - Preempt(old_preempt); -} - -void EditCursorRight(Ltf *l,U8 sc) -{ - BoolU4 old_preempt=Preempt(OFF); - I1 *dst; - LtfEntry *cl=l->cur_entry,*original_cl=cl,*nl; - I8 cc=l->cur_data_col,y=cl->y,old_flags,old_color; - l->recalc_start=cl->last; - if (sc & SCF_CTRL) { - while (cl!=l && ((cl->next->y==y && - cl->next->btype!=LTFT_SOFT_CR) || - cl->flags & LTFLF_SKIP)) - cl=cl->next; - if (cl->max_col>cl->min_col) - cc=cl->max_col-1; - else - cc=cl->min_col; - } else { - if (ccmax_col) { - if (cl->btype==LTFT_TEXT && cc>cl->min_col) { - nl=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - nl->type=cl->type; - nl->flags=cl->flags; - nl->x=cl->x; - nl->y=cl->y; - nl->indent=cl->indent; - nl->page_line_num=cl->page_line_num; - nl->left_margin=cl->left_margin; - nl->right_margin=cl->right_margin; - dst=cl->display+cc; - nl->display=NewStr(dst,l->mem_tss); - nl->max_col=StrLen(dst); - *dst=0; - cl->max_col=cc; - InsQue(nl,cl); - cl=nl; - cc=cl->min_col; - } - cc++; - old_flags=cl->flags; - old_color=cl->type; - if ((sc & SCF_SHIFT)) - cl->type|=LTFLT_SELECTED; - else - cl->type&=~LTFLT_SELECTED; - if (cl->btype==LTFT_TEXT && ccmax_col) { - nl=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - nl->type=LTFT_TEXT | old_color & -0x100; - nl->flags=old_flags; - dst=cl->display+cc; - nl->display=NewStr(dst,l->mem_tss); - nl->max_col=StrLen(dst); - cl->max_col=cc; - *dst=0; - nl->x=cl->x; - nl->y=cl->y; - nl->indent=cl->indent; - nl->page_line_num=cl->page_line_num; - nl->left_margin=cl->left_margin; - nl->right_margin=cl->right_margin; - InsQue(nl,cl); - cl=nl; - cc=cl->min_col; - } else if (cc>=cl->max_col) { - cl=cl->next; - cc=cl->min_col; - } - } else { - if (cl!=l) { - if (cc<=cl->min_col) { - if ((sc & SCF_SHIFT)) - cl->type|=LTFLT_SELECTED; - else - cl->type&=~LTFLT_SELECTED; - } - cl=cl->next; - while (cl!=l && cl->flags & LTFLF_SKIP) { - if ((sc & SCF_SHIFT)) - cl->type|=LTFLT_SELECTED; - else - cl->type&=~LTFLT_SELECTED; - cl=cl->next; - } - cc=cl->min_col; - if (cl->btype==LTFT_SOFT_CR) { - if ((sc & SCF_SHIFT)) - cl->type|=LTFLT_SELECTED; - else - cl->type&=~LTFLT_SELECTED; - cl=cl->next; - cc=cl->min_col; - } - } - } - } - l->cur_data_col=cc; - l->cur_entry=cl; - if (cl!=original_cl) - LtfFormForward(l); - Preempt(old_preempt); -} - -void EditLineUp(Ltf *l,U8 sc) -{ - BoolU4 old_preempt=Preempt(OFF); - I1 *dst; - I8 y,x; - LtfEntry *cl=l->cur_entry,*nl; - - if (cl->btype==LTFT_HEX_EDIT) { - l->cur_data_col=l->cur_data_col-cl->hex_edit_width*3; - if (l->cur_data_col>=0) - return; - else - l->cur_data_col=0; - } - x=l->x; y=l->y; - if (cl->btype==LTFT_TEXT) { - if (l->cur_data_col>cl->min_col && l->cur_data_colmax_col-1) { - nl=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - nl->type=cl->type; - nl->flags=cl->flags; - dst=cl->display+l->cur_data_col; - nl->display=NewStr(dst,l->mem_tss); - nl->max_col=StrLen(dst); - nl->y=cl->y; - nl->x=cl->x+l->cur_data_col; - nl->indent=cl->indent; - nl->page_line_num=cl->page_line_num; - nl->left_margin=cl->left_margin; - nl->right_margin=cl->right_margin; - *dst=0; - cl->max_col=l->cur_data_col; - InsQue(nl,cl); - } else - if (l->cur_data_col==cl->min_col && cl->last!=l) - cl=cl->last; - } else - if (cl->last!=l) - cl=cl->last; - if ((sc & SCF_SHIFT)) - cl->type|=LTFLT_SELECTED; - else - cl->type&=~LTFLT_SELECTED; - l->cur_entry=cl; - LtfFormBackward(l); - cl=l->cur_entry; - while (cl->last!=l && (cl->y>=y || cl->flags & LTFLF_SKIP)) { - cl=cl->last; - if ((sc & SCF_SHIFT)) - cl->type|=LTFLT_SELECTED; - else - cl->type&=~LTFLT_SELECTED; - } - y=cl->y; - l->y=y; - while (cl!=l && (cl->y>=y && cl->x>=x || cl->flags & LTFLF_SKIP)) { - if ((sc & SCF_SHIFT)) - cl->type|=LTFLT_SELECTED; - else - cl->type&=~LTFLT_SELECTED; - cl=cl->last; - } - - if (cl==l || cl->ynext; - else { - if (cl->btype!=LTFT_TEXT) { - if (sc & SCF_SHIFT) - cl->type|=LTFLT_SELECTED; - else - cl->type&=~LTFLT_SELECTED; - } else { - if (cl->next->x==x) { - cl=cl->next; - if (l->flags & LTFF_FORM) { - while (!Bt(ltf_form_types,cl->btype) && cl->next->x==x) - cl=cl->next; - } - } - } - } - if (Bt(ltf_display_types,cl->btype)) { - l->cur_data_col=(x-cl->x); - if (cl->btype==LTFT_TEXT) { - if (l->cur_data_col>cl->max_col) - l->cur_data_col=cl->max_col; - } else { - if (l->cur_data_col>=cl->max_col) - l->cur_data_col=cl->max_col-1; - } - if (l->cur_data_colmin_col) - l->cur_data_col=cl->min_col; - } else - l->cur_data_col=cl->min_col; - if (cl->btype==LTFT_TEXT && cl->xcur_data_colmax_col-1) { - nl=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - nl->type=cl->type; - nl->flags=cl->flags; - if ((sc & SCF_SHIFT)) - nl->type=cl->type | LTFLT_SELECTED; - else - nl->type=cl->type & ~LTFLT_SELECTED; - dst=cl->display+l->cur_data_col; - nl->display=NewStr(dst,l->mem_tss); - nl->max_col=StrLen(dst); - nl->indent=cl->indent; - nl->page_line_num=cl->page_line_num; - nl->left_margin=cl->left_margin; - nl->right_margin=cl->right_margin; - nl->y=cl->y; - nl->x=cl->x+l->cur_data_col; - *dst=0; - cl->max_col=l->cur_data_col; - InsQue(nl,cl); - cl=nl; - l->cur_data_col=cl->min_col; - } - } - l->cur_entry=cl; - l->x=cl->x+l->cur_data_col; - LtfFormForward(l); - l->recalc_start=l->cur_entry->last; - Preempt(old_preempt); -} - -void EditLineDown(Ltf *l,U8 sc) -{ - BoolU4 old_preempt=Preempt(OFF); - I1 *dst; - I8 y,x,old_flags=0,old_color; - LtfEntry *cl=l->cur_entry,*nl,*cl2; - if (cl->btype==LTFT_HEX_EDIT) { - l->cur_data_col=l->cur_data_col+cl->hex_edit_width*3; - if (l->cur_data_col/3>=cl->len) { - if (cl->next!=l) - l->cur_entry=cl->next; - l->cur_data_col=l->cur_entry->min_col; - } - return; - } - l->recalc_start=cl->last; - x=l->x; y=l->y; - if (cl->btype==LTFT_TEXT) { - if (l->cur_data_col>cl->min_col && l->cur_data_colmax_col-1) { - nl=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - nl->type=cl->type; - nl->flags=cl->flags; - if ((sc & SCF_SHIFT)) - nl->type=cl->type | LTFLT_SELECTED; - else - nl->type=cl->type & ~LTFLT_SELECTED; - dst=cl->display+l->cur_data_col; - nl->display=NewStr(dst,l->mem_tss); - nl->max_col=StrLen(dst); - nl->indent=cl->indent; - nl->page_line_num=cl->page_line_num; - nl->left_margin=cl->left_margin; - nl->right_margin=cl->right_margin; - nl->y=cl->y; - nl->x=cl->x+l->cur_data_col; - *dst=0; - cl->max_col=l->cur_data_col; - InsQue(nl,cl); - cl=nl; - l->cur_data_col=cl->min_col; - } - } - cl2=cl; - while (cl!=l && (cl->y<=y || cl->flags & LTFLF_SKIP)) - cl=cl->next; - y=cl->y; - l->y=y; - while (cl!=l && (cl->y<=y && cl->x<=x || cl->flags & LTFLF_SKIP)) { - old_flags=cl->flags; - old_color=cl->type; - cl=cl->next; - } - if (cl->last!=l && (cl->x>x || cl->y>y)) { - cl=cl->last; - l->cur_entry=cl; - if (cl->btype!=LTFT_CR && - cl->btype!=LTFT_SOFT_CR) - LtfFormBackward(l); - cl=l->cur_entry; - } - while (cl2!=l && (cl2!=cl || cl->btype==LTFT_TEXT)) { - if (cl2->yxflags & LTFLF_SKIP || - cl2->x==x && !cl2->max_col && - Bt(ltf_nondisplay_invisible_types,cl2->btype)) { - if (sc & SCF_SHIFT) - cl2->type|=LTFLT_SELECTED; - else - cl2->type&=~LTFLT_SELECTED; - } - if (cl2==cl) break; - cl2=cl2->next; - } - if (Bt(ltf_display_types,cl->btype)) { - l->cur_data_col=(x-cl->x); - if (cl->btype==LTFT_TEXT) { - if (l->cur_data_col>cl->max_col) - l->cur_data_col=cl->max_col; - } else { - if (l->cur_data_col>=cl->max_col) - l->cur_data_col=cl->max_col-1; - } - if (l->cur_data_colmin_col) - l->cur_data_col=cl->min_col; - } else - l->cur_data_col=cl->min_col; - if (cl->btype==LTFT_TEXT) { - if (l->cur_data_col>cl->min_col && l->cur_data_colmax_col-1) { - nl=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - nl->type=LTFT_TEXT | old_color & -0x100; - nl->flags=old_flags; - dst=cl->display+l->cur_data_col; - nl->display=NewStr(dst,l->mem_tss); - nl->max_col=StrLen(dst); - *dst=0; - cl->max_col=l->cur_data_col; - nl->y=cl->y; - nl->indent=cl->indent; - nl->page_line_num=cl->page_line_num; - nl->left_margin=cl->left_margin; - nl->right_margin=cl->right_margin; - nl->x=cl->x+l->cur_data_col; - InsQue(nl,cl); - cl=nl; - l->cur_data_col=cl->min_col; - } - } - l->cur_entry=cl; - l->x=cl->x+l->cur_data_col; - LtfFormForward(l); - Preempt(old_preempt); -} - -void EditDelChar(Ltf *l) -{ - BoolU4 old_preempt=Preempt(OFF); - LtfEntry *cl=l->cur_entry; - - if (cl==l) { - Preempt(old_preempt); - return; - } else - l->recalc_start=cl->last; - if (cl->max_col!=0 && (cl->btype==LTFT_TEXT || cl->btype==LTFT_DATA)) { - if (cl->btype==LTFT_DATA) { - if (cl->flags & LTFLF_HAS_TERMINATOR && l->cur_data_col==cl->max_col-1) { - Preempt(old_preempt); - return; - } - } - if (l->cur_data_colmax_col) - StrCpy(cl->display+l->cur_data_col,cl->display+l->cur_data_col+1); - if (l->cur_data_col>=cl->max_col-1) { - l->cur_entry=cl->next; - l->cur_data_col=l->cur_entry->min_col; - } - LtfRemoveSoftCRs(l,l->cur_entry); - Preempt(old_preempt); - return; - } - l->cur_entry=cl->next; - l->cur_data_col=l->cur_entry->min_col; - LtfDelEntry(l,cl); - LtfRemoveSoftCRs(l,l->cur_entry); - Preempt(old_preempt); -} - -void CheckDollarBufSize(Ltf *l) -{ - U1 *b; - if (l->dollar_buf_ptr>=l->dollar_buf_size-2) { - l->dollar_buf_size<<=1; - b=MAlloc(l->dollar_buf_size,l->mem_tss); - MemCpy(b,l->dollar_buf,l->dollar_buf_ptr); - Free(l->dollar_buf,l->mem_tss); - l->dollar_buf=b; - } -} - - -void EditInsertChar(I8 ch,U8 sc,Ltf *l,BoolU4 old_preempt) -{ - BoolU4 old_preempt2=Preempt(OFF); - I1 *b,*src,*dst; - LtfEntry *cl=l->cur_entry,*nl; - I8 i,j,m,x=cl->x,y=cl->y; - - l->recalc_start=cl->last; - while (l->recalc_start!=l && l->recalc_start->flags<FLF_SKIP) - l->recalc_start=l->recalc_start->last; - - if (l->flags & LTFF_IN_DOLLAR) { - if (!Bt(printable_chars_bitmap,ch)) - goto done; - CheckDollarBufSize(l); - l->dollar_buf[l->dollar_buf_ptr++]=ch; - if (ch!='$$') { - goto done; - } else { - l->dollar_buf[l->dollar_buf_ptr]=0; - LtfPutSExt(l,l->dollar_buf); - l->flags&=~LTFF_IN_DOLLAR; - l->dollar_buf_ptr=0; - goto done; - } - } else { - if (ch=='$$') { - if (!(l->flags & (LTFF_PLAIN_TEXT | LTFF_PLAIN_TEXT_WITH_TABS))) { - l->flags|=LTFF_IN_DOLLAR; - l->dollar_buf_ptr=0; - l->dollar_buf[l->dollar_buf_ptr++]=ch; - goto done; - } - } - } - - if (ch==CH_SPACE || ch==CH_CR) { - if (!(sc & SCF_CTRL) && !(sc & SCF_SHIFT)) { - if (cl->btype>=LTFT_BUTTON && cl->btype<=LTFT_MENU_VALUE || - cl->btype==LTFT_HIDE_START || - cl->flags & (LTFLF_LINK | LTFLF_TREE | - LTFLF_LEFT_MACRO|LTFLF_LEFT_EXP|LTFLF_LEFT_CB|LTFLF_LEFT_AUTO | - LTFLF_RIGHT_MACRO|LTFLF_RIGHT_EXP|LTFLF_RIGHT_CB|LTFLF_RIGHT_AUTO)) { - l->cmd_I1=ch; - LtfRunEntry(l,cl,FALSE,old_preempt); - goto done; - } - } - } - if (cl->btype==LTFT_HEX_EDIT) { - if (cl->flags & LTFLF_DATA_IS_PTR) - b=cl->data; - else - b=&cl->data; - i=l->cur_data_col; - j=i%(cl->hex_edit_width*3); - m=i/(cl->hex_edit_width*3)*cl->hex_edit_width; - if (j>=cl->hex_edit_width<<1) - b[j-cl->hex_edit_width<<1+m]=ch; - else { - ch=ToUpper(ch)-'0'; - if (ch>9) ch=ch+'0'-'A'+10; - if (ch>15) goto done; - m=j>>1+m; - if (j & 1) - b[m]=b[m] & 0xF0| ch; - else - b[m]=b[m] & 0xF | ch<<4; - } - l->cur_data_col++; - goto done; - } - if (cl->btype==LTFT_DATA && cl->flags & LTFLF_REFRESH_DATA) - goto done; - if (l->flags & LTFF_OVERSTRIKE) { - if (ch==13) { - while (l->cur_entry->next!=l && l->cur_entry->y==y) - l->cur_entry=l->cur_entry->next; - l->cur_data_col=l->cur_entry->min_col; - } else { - if (Bt(displayable_chars_bitmap,ch)) { -overstrike_char: - if (cl->btype==LTFT_TEXT) { - if (l->cur_data_colmax_col) { - if (cl->display[l->cur_data_col]) { - cl->display[l->cur_data_col++]=ch; - goto done; - } - } else { - cl=cl->next; - l->cur_entry=cl; - l->cur_data_col=cl->min_col; - goto overstrike_char; - } - - } else if (cl->btype==LTFT_DATA) { - if (cl->flags & LTFLF_HAS_TERMINATOR) { - if (cl->display[l->cur_data_col] && - l->cur_data_colmin_col+cl->len) { - cl->display[l->cur_data_col++]=ch; - if ( !(cl->display[l->cur_data_col])) { - cl->display[l->cur_data_col]='_'; - cl->display[l->cur_data_col+1]=0; - } - } - } else { - if (cl->display[l->cur_data_col]) - cl->display[l->cur_data_col++]=ch; - } - goto done; - } - b=MAlloc(2,l->mem_tss); - b[0]=ch; - b[1]=0; - nl=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - nl->type=LTFT_TEXT | l->text_attribute << 8; - nl->display=b; - nl->max_col=1; - nl->x=cl->x; - nl->y=cl->y; - nl->indent=cl->indent; - nl->page_line_num=cl->page_line_num; - nl->left_margin=cl->left_margin; - nl->right_margin=cl->right_margin; - InsQue(nl,cl->last); - } - } - goto done; - } - if (ch==CH_CR || ch==CH_TAB) { - nl=MAllocZ(sizeof(LtfEntryBase),l->mem_tss); - if (ch==CH_CR) { - if (sc & SCF_CTRL && !(sc & SCF_SHIFT)) - nl->type=LTFT_PAGE_BREAK | l->text_attribute << 8; - else - nl->type=LTFT_CR | l->text_attribute << 8; - } else - nl->type=LTFT_TAB | l->text_attribute << 8; - LtfInsert(l,nl); - } else { - if (ch>=CH_SHIFT_SPACE && ch<=0x7E) { - if (cl->btype==LTFT_DATA) { - i=cl->len+cl->min_col; - if (cl->flags & LTFLF_HAS_TERMINATOR) - i++; - if (i>cl->max_col) { - b=cl->display; - cl->max_col++; - for (i=cl->max_col;i>l->cur_data_col;i--) - b[i]=b[i-1]; - b[l->cur_data_col++]=ch; - } - } else if (cl->btype==LTFT_TEXT) { - b=MAlloc(cl->max_col+2,l->mem_tss); - dst=b; - src=cl->display; - i=l->cur_data_col; - while (i-->0) - *dst++=*src++; - *dst++=ch; - while (*dst++=*src++); - Free(cl->display,l->mem_tss); - cl->display=b; - cl->max_col++; - l->cur_data_col++; - } else { - b=MAlloc(2,l->mem_tss); - b[0]=ch; - b[1]=0; - nl=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - nl->type=LTFT_TEXT | l->text_attribute << 8; - nl->display=b; - nl->max_col=1; - nl->x=cl->x+1; - nl->y=cl->y; - nl->indent=cl->indent; - nl->page_line_num=cl->page_line_num; - nl->left_margin=cl->left_margin; - nl->right_margin=cl->right_margin; - InsQue(nl,cl->last); - } - } - } -done: - LtfRemoveSoftCRs(l,l->cur_entry); - Preempt(old_preempt2); -} - -void EditDelLine(Ltf *l) -{ - LtfEntry *cl=l->cur_entry,*cl2; - I8 y; - y=l->y; - while (cl!=l && cl->y==y) - cl=cl->next; - l->cur_entry=cl; - l->cur_data_col=cl->min_col; - cl=cl->last; - while (cl!=l && cl->y==y) { - cl2=cl->last; - LtfDelEntry(l,cl); - cl=cl2; - } - if (cl==l) - l->recalc_start=cl; - else - l->recalc_start=cl->last; -} - -public void EditFindNext(Ltf *l) -{ - I1 *ptr; - LtfEntry *ll,*cl=l->cur_entry; - U8 ss_flags; - if (l->find_replace->match_case) - ss_flags=0; - else - ss_flags=SS_IGNORE_CASE; - if (l->find_replace->whole_labels) - ss_flags|=SS_WHOLE_LABELS; - - ll=(l->find_replace->scan_forward)?cl->next:cl->last; - while (ll!=cl) { - if (ll!=l) { - if (Bt(ltf_display_types,ll->btype)) { - if ((ll->type & LTFLT_SELECTED) || !l->find_replace->scan_selected_text) { - if (ptr=SearchStr(ll->display,l->find_replace->find_text,ss_flags)) { - l->cur_entry=ll; - l->cur_data_col=ptr-ll->display; - if (l->cur_data_colmin_col) - l->cur_data_col=ll->min_col; - if (l->cur_data_col>ll->max_col) - l->cur_data_col=ll->max_col; - LtfCenter(l); - return; - } - } - } - } - ll=(l->find_replace->scan_forward) ?ll->next:ll->last; - } -} - - -void EditReplace(Ltf *l) -{ - BoolU4 first=TRUE,old_preempt; - I8 cmd=0,i,j,plen,rlen,dlen; - I1 *src,*dst,*dst2; - LtfEntry *cl=l->cur_entry,*ll; - U8 ss_flags; - if (DoForm(l->find_replace,"EditFindTextStruct")) { - if (l->find_replace->match_case) - ss_flags=0; - else - ss_flags=SS_IGNORE_CASE; - if (l->find_replace->whole_labels) - ss_flags|=SS_WHOLE_LABELS; - if (!(l->find_replace->replace)) { - EditFindNext(l); - return; - } - plen=StrLen(l->find_replace->find_text); - if (!plen) return; - rlen=StrLen(l->find_replace->replace_text); - ll=cl; - while ((ll!=cl || first) && cmd!=3) { - first=FALSE; - if (ll->btype==LTFT_TEXT && - ((ll->type & LTFLT_SELECTED) || !l->find_replace->scan_selected_text)) { - src=ll->display; - while (src && cmd!=3) { - src=SearchStr(src,l->find_replace->find_text,ss_flags); - if (src) { - l->cur_data_col=src-ll->display; - l->cur_entry=ll; - l->recalc_start=l; - if (cmd!=2) - LtfCenter(l); - ll=l->cur_entry; - src=l->cur_data_col+ll->display; - if (cmd!=2) { - cmd=PopUpReplaceSkipAllCancel(""); - if (cmd==2) - old_preempt=Preempt(OFF); - } - if (cmd==0 || cmd==2) { - dlen=StrLen(ll->display); - dst=MAlloc(dlen+1+rlen-plen,l->mem_tss); - dst2=dst; - j=src-ll->display; - for (i=0;idisplay[i]; - for (i=0;ifind_replace->replace_text[i]; - src=dst; - for (i=j+plen;i<=dlen;i++) - *dst++=ll->display[i]; - Free(ll->display,l->mem_tss); - ll->display=dst2; - l->cur_data_col=src-ll->display; - l->cur_entry=ll; - if (cmd!=2) { - l->recalc_start=l; - LtfRemoveSoftCRs(l,l->cur_entry); - LtfRecalc(l); - } - ll=l->cur_entry; - src=l->cur_data_col+ll->display; - } else - src++; - } - } - } - if (l->find_replace->scan_forward) { - ll=ll->next; - if (ll==l) { - if (cl==l) break; - ll=ll->next; - } - } else { - ll=ll->last; - if (ll==l) { - if (cl==l) break; - ll=ll->last; - } - } - } - } - if (cmd==2) { - l->recalc_start=l; - LtfRemoveSoftCRs(l,NULL); - LtfRecalc(l); - Preempt(old_preempt); - } -} - -public void LtfGotoLineNum(Ltf *l,I8 linenum) //one based -{ - l->x=0; - l->y=linenum-1; - LtfUpdateWinJoin(l,FALSE,FALSE,FALSE,TRUE,OFF); - LtfCenter(l); -} - -class EditGoToLineStruct -{ - I8 line fmtstr "$$DA,256,\"Go to Line:%d\"$$"; -}; - -public void EditGoToLine(Ltf *l) -{ - EditGoToLineStruct gtl; - gtl.line=1; - if (DoForm(>l,"EditGoToLineStruct")) - LtfGotoLineNum(l,gtl.line); -} - -void LtfToggleFlags(Ltf *l,I8 tog_flags) -{ - U8 size; - I1 *st=LtfSave(l,&size); - BoolU4 old_preempt=Preempt(OFF); - U8 flags=l->flags ^ tog_flags; - Ltf *menu=l->menu_ltf; - LtfUndo *u_next,*u_last; - - u_next=l->undo_root.next; - u_last=l->undo_root.last; - l->undo_root.next=&l->undo_root; - l->undo_root.last=&l->undo_root; - - LtfReset(l,TRUE); - l->menu_ltf=menu; - l->undo_root.next=u_next; - l->undo_root.last=u_last; - LtfSetUndoCnt(l); - l->flags=flags & ~(LTFF_WORD_WRAP|LTFF_INVERTED|LTFF_UNDERLINED|LTFF_BLINK); - LtfLoad(l,st,size); - LtfCenter(l); - Preempt(old_preempt); - Free(st); -} - -I1 *FavoritesFileName() -{ - return MSPrintF("::/LT/Accts/%s/Favor.MUZ", - Fs->account->name); -} - -public void DoFavorites() -{ - I1 *name=FavoritesFileName; - Edit(name); - Free(name); -} - -#help_index "Ltf/Output" -public void LtfPutKeyExt(Ltf *l,I8 ch,U8 sc,BoolU4 old_preempt2) -{ - I8 i,x,y; - U8 sc2; - LtfEntry *cl; - I1 *st; - BoolU4 old_preempt=Preempt(OFF); - - if (!Bt(ltf_clean_scancodes,sc.u1[0])) - l->flags|=LTFF_UNDO_DIRTY; - LtfCaptureUndo(l); - if (Bt(printable_chars_bitmap,ch) && - !(sc&(SCF_CTRL|SCF_ALT))) - EditInsertChar(ch,sc,l,old_preempt2); - else { - cl=l->cur_entry; - x=l->x; y=l->y; - sc2=sc.u1[0]; - if (ch>0 && ch<32) { - switch (ch) { - case CH_CTRLA: - LtfWrite(l,TRUE); - break; - case CH_CTRLB: - if (Bt(&l->win_tss->crt_flags,CRTf_NO_BORDER)) - WinBorder(ON,l->win_tss); - else - WinBorder(OFF,l->win_tss); - break; - case CH_CTRLD: - FileManager; - break; - case CH_CTRLF: - if (sc & SCF_SHIFT) - DoFavorites; - else - EditReplace(l); - break; - case CH_CTRLG: - EditGoToLine(l); - break; - case CH_BACKSPACE: //ctrl H - if (sc&SCF_ALT && !(sc&SCF_CTRL)) - LtfRestoreUndo(l); - else { - LtfCaptureUndo(l); - if (l->cur_data_col<=l->cur_entry->min_col) { - l->cur_entry=l->cur_entry->last; - if (l->cur_entry!=l && l->cur_entry->btype==LTFT_SOFT_CR) - l->cur_entry=l->cur_entry->last; - if (l->cur_entry==l || - (l->cur_entry->btype==LTFT_USER_FOREGROUND || - l->cur_entry->btype==LTFT_USER_BACKGROUND)) { - l->cur_entry=l->cur_entry->next; - l->cur_data_col=l->cur_entry->min_col; - } else { - l->cur_data_col=l->cur_entry->max_col; - if (l->cur_data_col>l->cur_entry->min_col) - l->cur_data_col--; - EditDelChar(l); - } - } else { - l->cur_data_col--; - EditDelChar(l); - } - } - break; - case CH_CTRLK: - if (sc & SCF_SHIFT) - LtfPutSExt(l,"$$BK,0$$"); - else - LtfPutSExt(l,"$$BK,1$$"); - break; - case CH_CTRLL: - EditInsertDollarCmd; - break; - case CH_CR: //ctrl M - EditInsertChar(ch,sc,l,old_preempt2); - break; - case CH_CTRLN: - if (sc & SCF_SHIFT) - LtfPutSExt(l,"$$ID,-2$$"); - else - LtfPutSExt(l,"$$ID,2$$"); - break; - case CH_CTRLO: - LtfToggleFlags(l,LTFF_NO_PICWORDS); - break; - case CH_CTRLP: - if (l->flags & (LTFF_SUPERSCRIPT_MODE | LTFF_SUBSCRIPT_MODE)) { - LtfPutSExt(l,"$$SY,0$$"); - l->flags&=~(LTFF_SUPERSCRIPT_MODE | LTFF_SUBSCRIPT_MODE); - } else if (sc & SCF_SHIFT) { - LtfPutSExt(l,"$$SY,3$$"); - l->flags|=LTFF_SUBSCRIPT_MODE; - } else { - LtfPutSExt(l,"$$SY,-3$$"); - l->flags|=LTFF_SUPERSCRIPT_MODE; - } - break; - case CH_CTRLR: - if (!(l->flags&(LTFF_PLAIN_TEXT|LTFF_PLAIN_TEXT_WITH_TABS))) { - if (cl->btype==LTFT_PICTURE|| - cl->btype==LTFT_PICWORD|| - cl->btype==LTFT_TOP_LEFT_TOOLBAR|| - cl->btype==LTFT_TOP_RIGHT_TOOLBAR) - EditExistingGraphic(l, - ((cl->x-l->line_start_col)+cl->max_col)*FONT_WIDTH, - (cl->y-l->cur_top_line_num)*FONT_HEIGHT); - else - EditInsertGraphic(l, - (cl->x+l->cur_data_col-l->line_start_col)*FONT_WIDTH, - (cl->y-l->cur_top_line_num)*FONT_HEIGHT); - } - break; - case CH_CTRLS: - LtfWrite(l); - break; - case CH_CTRLT: - LtfToggleFlags(l,LTFF_PLAIN_TEXT); - break; - case CH_CTRLU: - if (sc & SCF_SHIFT) - LtfPutSExt(l,"$$UL,0$$"); - else - LtfPutSExt(l,"$$UL,1$$"); - break; - case CH_CTRLW: - if (sc & SCF_SHIFT) - LtfPutSExt(l,"$$WW,0$$"); - else - LtfPutSExt(l,"$$WW,1$$"); - break; - case CH_CTRLY: - EditDelLine(l); - break; - case CH_CTRLZ: - if (sc & SCF_SHIFT) - LtfPutSExt(l,"$$IV,0$$"); - else - LtfPutSExt(l,"$$IV,1$$"); - break; - } - } else if (sc2>=SC_F1 && sc2<=SC_F10) { - if (!(sc & SCF_ALT)) { - if (sc & SCF_CTRL) { - if (WordStat) { - if (sc & SCF_SHIFT) - WsMan(sc2-SC_F1+1,Fs); - else - WsFillin(sc2-SC_F1+1); - } - } else { - switch (sc2) { - case SC_F2: - if (sc & SCF_SHIFT) - EditInsertCapturedMacro; - else - EditMacroUtil; - break; - case SC_F3: - l->find_replace->scan_forward=!(sc & SCF_SHIFT); - EditFindNext(l); - break; - case SC_F4: - if (sc & SCF_SHIFT) - st=PopUpPickDir; - else - st=PopUpPickFile; - if (st) { - LtfPrintF(l,"%s",st); - Free(st); - } - break; - case SC_F5: - if (IsDbgTsk) { - if (sc & SCF_SHIFT) - IDEStep(l); - else - IDEGo; - } - break; - case SC_F8: - if (IsDbgTsk) { - if (sc & SCF_SHIFT) - IDESetLineNum(l); - } - break; - case SC_F9: - if (IsDbgTsk) { - if (sc & SCF_SHIFT) - IDEClearAllBpts(l); - else - IDEToggleBpt(l); - } - break; - } - } - } - } else if (ch>='0' && ch<='9') { - if (!(sc & SCF_ALT)) { - if (sc & SCF_CTRL) { - if (WordStat) { - if (sc & SCF_SHIFT) - WsdDef(ch-'0',Fs); - else - WsdFillin(ch-'0'); - } - } - } - } else if (sc2==SC_GUI) { - if (l->menu_ltf) - DoMenu(l->menu_ltf); - } else if (sc2==SC_CURSOR_DOWN||sc2==SC_END) { - if (sc2==SC_END || sc & SCF_CTRL) { - while (l->cur_entry!=l) { - if ((sc & SCF_SHIFT)) - l->cur_entry->type|=LTFLT_SELECTED; - else - l->cur_entry->type&=~LTFLT_SELECTED; - l->cur_entry=l->cur_entry->next; - } - l->cur_data_col=l->cur_entry->min_col; - l->recalc_start=l; - } else - EditLineDown(l,sc); - } else if (sc2==SC_CURSOR_UP||sc2==SC_HOME) { - if (sc2==SC_HOME || sc & SCF_CTRL) { - while (l->cur_entry!=l) { - if ((sc & SCF_SHIFT)) - l->cur_entry->type|=LTFLT_SELECTED; - else - l->cur_entry->type&=~LTFLT_SELECTED; - l->cur_entry=l->cur_entry->last; - } - l->cur_entry=l->dummy.next; - l->cur_data_col=l->cur_entry->min_col; - l->recalc_start=l; - } else - EditLineUp(l,sc); - } else if (sc2==SC_PAGE_DOWN) { - for (i=l->win_tss->win_top;iwin_tss->win_bottom;i++) - EditLineDown(l,sc); - } else if (sc2==SC_PAGE_UP) { - for (i=l->win_tss->win_top;iwin_tss->win_bottom;i++) - EditLineUp(l,sc); - } else if (sc2==SC_CURSOR_LEFT) - EditCursorLeft(l,sc); - else if (sc2==SC_CURSOR_RIGHT) - EditCursorRight(l,sc); - else if (sc2==SC_DELETE) { - if ((sc & SCF_SHIFT)) - EditCutToClipboard(l); - else - EditDelChar(l); - } else if (sc2==SC_INSERT) { - if (sc & SCF_SHIFT) - EditInsertLtf(l,sys_clipboard_ltf); - else if (sc & SCF_CTRL) - EditCopyToClipboard(l); - else - l->flags^=LTFF_OVERSTRIKE; - } else if (sc2==SC_PRTSCRN2) - Lpt1PrintLtf(l); - } - if (!l->recalc_start) - l->recalc_start=l->cur_entry->last; - Preempt(old_preempt); - if (l==Fs->cur_ltf && old_preempt2 && - !(l->flags<FF_DONT_SWAP_OUT)) { - i=GetTimeStamp; - if (i>l->swap_out_time) { - l->swap_out_time=i+time_stamp_kHz_freq; - SwapInNext; - } - } -} - -public BoolU4 LtfPutKey(I8 ch,U8 scancode) -{ - Ltf *l; - BoolU4 old_preempt=Preempt(OFF); - if (l=Fs->aux_ltf) { - if (!l->best_d) { - LtfPutKeyExt(l,ch,scancode,old_preempt); - goto next; - } - } - if (l=Fs->cur_ltf) - LtfPutKeyExt(l,ch,scancode,old_preempt); -next: - Preempt(old_preempt); - return FALSE; -} - -public void LtfPutSPartial(Ltf *l,I1 *st,BoolU4 old_preempt2) -{ - U1 ch; - I1 *b,*src,*dst,*ptr=st,*ptr2; - BoolU4 old_preempt=Preempt(OFF); - LtfEntry *cl,*nl; - I8 i,j; - if (!st) { - Preempt(old_preempt); - return; - } - while (ch=*ptr) { - if (!Bt(displayable_chars_bitmap,ch) || ch=='$$' || - l->flags & (LTFF_OVERSTRIKE | LTFF_IN_DOLLAR)) { - LtfPutKeyExt(l,ch,0,old_preempt2); - ptr++; - } else { - ptr2=ptr++; - while (TRUE) { - ch=*ptr++; - if (!Bt(displayable_chars_bitmap,ch) || ch=='$$') - break; - } - ptr--; - *ptr=0; - cl=l->cur_entry; - l->recalc_start=cl->last; - if (cl->btype==LTFT_TEXT) { - j=StrLen(ptr2); - b=MAlloc(cl->max_col+j+1,l->mem_tss); - dst=b; - src=cl->display; - i=l->cur_data_col; - l->cur_data_col=i+j; - cl->max_col+=j; - while (i-->0) - *dst++=*src++; - while (j-->0) - *dst++=*ptr2++; - while (*dst++=*src++); - Free(cl->display,l->mem_tss); - cl->display=b; - } else { - nl=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - nl->type=LTFT_TEXT | l->text_attribute << 8; - nl->display=NewStr(ptr2,l->mem_tss); - nl->x=cl->x; - nl->y=cl->y; - nl->max_col=StrLen(ptr2); - nl->indent=cl->indent; - nl->page_line_num=cl->page_line_num; - nl->left_margin=cl->left_margin; - nl->right_margin=cl->right_margin; - InsQue(nl,cl->last); - l->cur_entry=nl; - l->cur_data_col=StrLen(ptr2); - } - *ptr=ch; - LtfRemoveSoftCRs(l,l->cur_entry); - } - } - Preempt(old_preempt); - if (l==Fs->cur_ltf && old_preempt2 && - !(l->flags<FF_DONT_SWAP_OUT)) { - i=GetTimeStamp; - if (i>l->swap_out_time) { - l->swap_out_time=i+time_stamp_kHz_freq; - SwapInNext; - } - } -} - -#help_index "Ltf" -public BoolU4 LtfEditFile(I8 type,I1 *filename, - I1 *pattern=NULL,I8 num=1) -{ - I1 *ptr; - I8 i,j,flags=0; - LtfEntry *ll; - Ltf *l,*m; - BoolU4 old_silent=Bt(&Fs->crt_flags,CRTf_SILENT), - old_preempt,result=FALSE; - - try { - switch (type) { - case LK_PLAIN: - type=LK_FILE; - flags=LTFF_PLAIN_TEXT; - break; - case LK_PLAIN_FIND: - type=LK_FILE_FIND; - flags=LTFF_PLAIN_TEXT; - break; - case LK_PLAIN_LINE: - type=LK_FILE_LINE; - flags=LTFF_PLAIN_TEXT; - break; - case LK_BIBLE_FIND: - flags=LTFF_PLAIN_TEXT; - break; - } - - flags|=LTFF_ALLOW_UNDO; - - if (!*filename) - l=Fs->cur_ltf; - else { - Silent(ON); - result=FindFile(filename,NULL,FALSE,TRUE); - l=LtfRead(filename,flags); - Silent(old_silent); - l->flags|=LTFF_ATTR_BY_FILENAME; - m=LtfRead(EDIT_MENU_NAME); - m->text_attribute=(WHITE<<4)+LTBLUE; - l->menu_ltf=m; - } - - switch (type) { - case LK_FILE_LINE: - l->y=num-1; - l->x=0; - LtfUpdateWinJoin(l,FALSE,FALSE,FALSE,TRUE,OFF); - break; - case LK_FILE_ANCHOR: - if (!(ll=LtfFindAnchor(l,pattern))) - result=FALSE; - break; - case LK_FILE_FIND: - result=FALSE; - i=num; - ll=l->dummy.next; - while (ll!=l) { - if (Bt(ltf_display_types,ll->btype)) { - if (ptr=StrIStr(ll->display,pattern)) { - j=ptr-ll->display; - i--; - if (i==0) { - l->cur_entry=ll; - if (jmin_col) j=ll->min_col; - if (j>ll->max_col) j=ll->max_col; - l->cur_data_col=j; - result=TRUE; - break; - } - } - } - ll=ll->next; - } - break; - case LK_BIBLE_FIND: - l->y=num-1; - l->x=0; - LtfUpdateWinJoin(l,FALSE,FALSE,FALSE,TRUE,OFF); - if (pattern && *pattern) { - result=FALSE; - ll=l->cur_entry; - while (ll!=l) { - if (Bt(ltf_display_types,ll->btype)) { - if (ptr=StrIStr(ll->display,pattern)) { - j=ptr-ll->display; - l->cur_entry=ll; - if (jmin_col) j=ll->min_col; - if (j>ll->max_col) j=ll->max_col; - l->cur_data_col=j; - result=TRUE; - break; - } - } - ll=ll->next; - } - } - break; - } - LtfCenter(l); - if (DoLtf(l,FALSE)) { - old_preempt=Preempt(OFF); - ll=l->cur_entry; - if (ll!=l) - LtfRunEntry(l,ll,TRUE,old_preempt); - Preempt(old_preempt); - LtfWrite(l); - } - if (Fs->cur_ltf!=l) - LtfDel(l); - } catch - Silent(old_silent); - return result; -} diff --git a/LT/Adam/Ltf/LtfFile.APZ b/LT/Adam/Ltf/LtfFile.APZ deleted file mode 100644 index e959fbc..0000000 --- a/LT/Adam/Ltf/LtfFile.APZ +++ /dev/null @@ -1,313 +0,0 @@ -public void LtfLoad(Ltf *l,I1 *src2,U8 size) -{ - I8 i; - I1 *src; - LtfBinEntry *tempb; - if (src2) { - LtfPutSExt(l,src2); - src=src2+StrLen(src2)+1; - i=size-(offset(LtfBinEntry.data)-offset(LtfBinEntry.start)); - while (src<=src2+i) { - tempb=MAllocZ(sizeof(LtfBinEntry),l->mem_tss); - MemCpy(&tempb->start,src,offset(LtfBinEntry.data)-offset(LtfBinEntry.start)); - src+=offset(LtfBinEntry.data)-offset(LtfBinEntry.start); - tempb->data=MAlloc(tempb->size,l->mem_tss); - if (tempb->size) { - MemCpy(tempb->data,src,tempb->size); - src+=tempb->size; - } - InsQue(tempb,l->bin_root.last); - if (tempb->num>=l->cur_bin_num) - l->cur_bin_num=tempb->num+1; - } - } - if (!(l->flags & (LTFF_PLAIN_TEXT|LTFF_PLAIN_TEXT_WITH_TABS))) - LtfValidateBins(l); - l->recalc_start=l; - LtfRecalc(l); -} - -public Ltf *LtfRead(I1 *name,U8 flags=0) -{ - Ltf *l=LtfNew; - I1 *src,*name2; - U8 size=0; - l->flags|=flags; - name2=AbsoluteFileName(name); - StrCpy(l->filename.name,name2); - src=ReadFile(name2,&size,&l->file_attr); - Free(name2); - - if (src) { - LtfLoad(l,src,size); - Free(src); - } - return l; -} - -public void *LtfSave(Ltf *l,U8 *size=NULL) -{ - LtfEntry *cl; - LtfBinEntry *b; - I1 *st; - U8 cnt=2; //cursor + terminator - I1 *result,*dst,*src,ch; - I8 i; - if (!(l->flags & (LTFF_PLAIN_TEXT|LTFF_PLAIN_TEXT_WITH_TABS))) - LtfValidateBins(l); - l->recalc_start=l; - LtfRecalc(l); - for (cl=l->dummy.next;cl!=l;cl=cl->next) { - if (!Bt(ltf_data_types,cl->btype)) { - if (cl->btype==LTFT_TEXT && - !(cl->flags & ~(LTFLF_WORD_WRAP |LTFLF_UNDERLINED | - LTFLF_INVERTED | LTFLF_BLINK | LTFLF_SKIP))) { - cnt+=StrLen(cl->display); - if (!(l->flags & (LTFF_PLAIN_TEXT | LTFF_PLAIN_TEXT_WITH_TABS))) - cnt+=Occurrences(cl->display,'$$'); - } else if (cl->btype==LTFT_TAB || - cl->btype==LTFT_PAGE_BREAK) - cnt++; - else if (cl->btype==LTFT_CR) - cnt+=2; - else if (cl->btype==LTFT_PICWORD) - cnt+=StrLen(cl->aux_str); - else if (cl->btype!=LTFT_SOFT_CR && - cl->btype!=LTFT_CURSOR && - cl->btype!=LTFT_BPT) { - st=LtfToPlainText(l,cl); - cnt+=StrLen(st)+2; - Free(st,l->mem_tss); - } - } - } - for (b=l->bin_root.next;b!=&l->bin_root;b=b->next) { - if (b->use_cnt>b->temp_use_cnt) - cnt+=offset(LtfBinEntry.data)- - offset(LtfBinEntry.start)+b->size; - } - result=MAlloc(cnt); - dst=result; - for (cl=l->dummy.next;cl!=l;cl=cl->next) { - if (!Bt(ltf_data_types,cl->btype)) { - if (cl->btype==LTFT_TEXT && - !(cl->flags & ~(LTFLF_WORD_WRAP |LTFLF_UNDERLINED | - LTFLF_INVERTED | LTFLF_BLINK | LTFLF_SKIP))) { - src=cl->display; - i=0; - while (ch=*src++) { - if (cl==l->cur_entry && i++==l->cur_data_col) - *dst++=CH_CURSOR; - *dst++=ch; - if (ch=='$$') { - if (!(l->flags & (LTFF_PLAIN_TEXT | LTFF_PLAIN_TEXT_WITH_TABS))) - *dst++=ch; - } - } - if (cl==l->cur_entry && i++==l->cur_data_col) - *dst++=CH_CURSOR; - } else { - if (cl==l->cur_entry) - *dst++=CH_CURSOR; - if (cl->btype==LTFT_TAB) - *dst++=CH_TAB; - else if (cl->btype==LTFT_PAGE_BREAK) - *dst++=CH_FORM_FEED; - else if (cl->btype==LTFT_CR) { - *dst++=CH_CR; - *dst++=CH_LINE_FEED; - } else if (cl->btype==LTFT_PICWORD) { - StrCpy(dst,cl->aux_str); - dst+=StrLen(cl->aux_str); - } else if (cl->btype!=LTFT_SOFT_CR && - cl->btype!=LTFT_CURSOR && - cl->btype!=LTFT_BPT) { - *dst++='$$'; - st=LtfToPlainText(l,cl); - StrCpy(dst,st); - dst+=StrLen(st); - *dst++='$$'; - Free(st,l->mem_tss); - } - } - } - } - *dst++=0; - b=l->bin_root.next; - if (b!=&l->bin_root) { - while (b!=&l->bin_root) { - if (b->use_cnt>b->temp_use_cnt) { - MemCpy(dst,&b->type,offset(LtfBinEntry.data)-offset(LtfBinEntry.start)); - dst+=offset(LtfBinEntry.data)-offset(LtfBinEntry.start); - MemCpy(dst,b->data,b->size); - dst+=b->size; - } - b=b->next; - } - } else - cnt--; - if (size) *size=cnt; - return result; -} - -public void LtfWrite(Ltf *l,BoolU4 prompt=FALSE) -{ - U8 size; - I1 *buf=LtfSave(l,&size); - if (prompt) { - if (DoForm(&l->filename,"EditFileNameStruct")) - WriteFile(l->filename.name,buf,size,0,l->file_attr); - } else - WriteFile(l->filename.name,buf,size,0,l->file_attr); - Free(buf); -} - -public void DelClipboard() -{ - LtfReset(sys_clipboard_ltf,TRUE); -} - -public void EditCopyToClipboard(Ltf *l) -{ - Ltf *b=sys_clipboard_ltf; - LtfEntry *cl=l->dummy.next,*nl; - DelClipboard; - while (cl!=l) { - if (cl->type & LTFLT_SELECTED) { - cl->type&=~LTFLT_SELECTED; - if (!Bt(ltf_data_types,cl->btype)) { - nl=LtfCopyEntry(b,cl); - InsQue(nl,b->dummy.last); - } - } - cl=cl->next; - } -} - -public void EditCutToClipboard(Ltf *l) -{ - Ltf *b=sys_clipboard_ltf; - LtfEntry *cl=l->dummy.next,*cl1,*nl,*cl2=NULL; - DelClipboard; - while (cl!=l) { - cl1=cl->next; - if (cl->type & LTFLT_SELECTED) { - cl->type&=~LTFLT_SELECTED; - if (!Bt(ltf_data_types,cl->btype)) { - nl=LtfCopyEntry(b,cl); - InsQue(nl,b->dummy.last); - } - if (cl==l->cur_entry || cl==cl2) - cl2=cl->next; - LtfDelEntry(l,cl); - } - cl=cl1; - } - if (cl2) { - l->cur_entry=cl2; - l->cur_data_col=cl2->min_col; - } - l->recalc_start=l; - LtfRemoveSoftCRs(l,NULL); -} - -public void EditInsertLtf(Ltf *l,Ltf *b) -{ //TODO: $LK,"LtfReset","MN:LtfReset"$ - I1 *dst; - BoolU4 old_preempt=Preempt(OFF); - LtfEntry *nl,*cl=b->dummy.next; - LtfRemoveSoftCRs(l,NULL); - if (l->cur_entry->btype==LTFT_TEXT && - l->cur_data_col>l->cur_entry->min_col) { - if (l->cur_data_colcur_entry->max_col) { - nl=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - nl->type=LTFT_TEXT | l->cur_entry->type & 0xFFFFFF00; - nl->flags=l->cur_entry->flags; - nl->x=l->cur_entry->x; - nl->y=l->cur_entry->y; - nl->indent=l->cur_entry->indent; - nl->page_line_num=l->cur_entry->page_line_num; - nl->left_margin=l->cur_entry->left_margin; - nl->right_margin=l->cur_entry->right_margin; - dst=l->cur_entry->display+l->cur_data_col; - nl->display=NewStr(dst,l->mem_tss); - nl->max_col=StrLen(dst); - *dst=0; - l->cur_entry->max_col=l->cur_data_col; - InsQue(nl,l->cur_entry); - l->cur_entry=nl; - l->cur_data_col=nl->min_col; - } else - if (l->cur_entry!=l) - l->cur_entry=l->cur_entry->next; - } - while (cl!=b) { - if (cl->btype!=LTFT_SOFT_CR) { - nl=LtfCopyEntry(l,cl); - InsQue(nl,l->cur_entry->last); - } - cl=cl->next; - } - l->recalc_start=l; - Preempt(old_preempt); -} - - -BoolU4 LtfCaptureUndo(Ltf *l) -{ - BoolU4 result=FALSE,old_preempt=Preempt(OFF); - U8 i=GetTimeStamp; - LtfUndo *u; - if (l->flags<FF_UNDO_DIRTY && - i>l->undo_root.last->timestamp+15*time_stamp_freq && - l->flags<FF_ALLOW_UNDO) { - u=MAllocZ(sizeof(LtfUndo),l->mem_tss); - u->timestamp=i; - u->body=LtfSave(l,&u->size); - InsQue(u,l->undo_root.last); - l->flags&=~LTFF_UNDO_DIRTY; - l->undo_cnt++; - u->ltf_flags=l->flags; - } - Preempt(old_preempt); - return result; -} - -void LtfRestoreUndo(Ltf *l) -{ - BoolU4 old_preempt=Preempt(OFF); - LtfUndo *u=l->undo_root.last,*u_next,*u_last; - Ltf *m; - if (u!=&l->undo_root) { - RemQue(u); - u_next=l->undo_root.next; - u_last=l->undo_root.last; - l->undo_root.next=&l->undo_root; - l->undo_root.last=&l->undo_root; - m=l->menu_ltf; - LtfReset(l,TRUE); - l->flags=u->ltf_flags; - LtfLoad(l,u->body,u->size); - LtfDelUndo(l,u); - l->undo_root.next=u_next; - l->undo_root.last=u_last; - l->menu_ltf=m; - } - LtfSetUndoCnt(l); - l->flags&=~LTFF_UNDO_DIRTY; - Preempt(old_preempt); -} - - -#help_index "File/Cmd Line (Typically);Ltf/Cmd Line (Typically)" - -public void Type(I1 *name) -//Output a file to the command line. -//Even graphics and macros will be sent. -{ - Ltf *l=LtfRead(name); - EditInsertLtf(Fs->cur_ltf,l); - LtfDel(l); -} -#help_index "Ltf" - \ No newline at end of file diff --git a/LT/Adam/Ltf/LtfMacro.APZ b/LT/Adam/Ltf/LtfMacro.APZ deleted file mode 100644 index ac1bffb..0000000 --- a/LT/Adam/Ltf/LtfMacro.APZ +++ /dev/null @@ -1,126 +0,0 @@ -I1 captured_macro_name[128]; -*captured_macro_name=0; - -I8 PopUpExitRecordPlayStopInsert() -{ - I8 result=0; - I1 buf[80]; - TssCmdStruct *tempc; - Ltf *l=LtfNew; - LtfEntry *ll; - ll=LtfPutSExt(l,"$$DA-P,127,\"Name:%s\"$$"); - ll->data=captured_macro_name; - LtfFormatData(ll); - LtfPutSExt(l,"$$CM+LX+TY,2,4$$$$BT, \"RECORD\",1$$"); - LtfPutSExt(l,"$$CM+LX+TY,18,4$$$$BT, \"PLAY\",2$$"); - LtfPutSExt(l,"$$CM+LX+TY,2,7$$$$BT, \"STOP\",3$$"); - LtfPutSExt(l,"$$CM+LX+TY,18,7$$$$BT, \"EXIT\",0$$"); - LtfPutSExt(l,"$$CM+LX+TY,2,10$$$$BT, \"INSERT\",4$$"); - l->flags|=LTFF_MIN_SIZE | LTFF_FORM; - SPrintF(buf,"DoMenu(0x%X);",l); - macro_util_tss=Spawn(&ServantUserCmdLine,"MACRO POPUP",Fs); - Fs->popup_tss=macro_util_tss; - tempc=QueueTaskRequest(macro_util_tss,Fs,buf, - 1<popup_tss=NULL; - Kill(macro_util_tss); - macro_util_tss=NULL; - LtfGetData(ll); - LtfDel(l); - return result; -} - -void DelSysMacro() -{ - TssCmdStruct *tempc,*tempc1; - tempc=sys_macro_queue.next; - while (tempc!=&sys_macro_queue) { - tempc1=tempc->next; - RemQue(tempc); - AFree(tempc); - tempc=tempc1; - } -} - -I1 *SysMacro2Str() -{ - TssCmdStruct *tempc; - I8 cnt=0; - I1 *ptr,*m; - LBtr(&sys_semas[SYS_SEMA_RECORD_MACRO],0); - tempc=sys_macro_queue.next; - while (tempc!=&sys_macro_queue) { - if (tempc->cmd_code==TSSCT_MSG) - cnt++; - tempc=tempc->next; - } - m=MAlloc(cnt*54+1); - ptr=m; - - tempc=sys_macro_queue.next; - while (tempc!=&sys_macro_queue) { - if (tempc->cmd_code==TSSCT_MSG) { - SPrintF(ptr,"Msg(0x%08X,0x%016X,0x%016X);", - tempc->msg_code,tempc->p1,tempc->p2); - ptr+=54; - } - tempc=tempc->next; - } - return m; -} - -void PlaySysMacro() -{ - I1 *m=SysMacro2Str; - while (sys_cur_focus_task==Fs) - SwapInNext; - XTalkStrWithWait(sys_cur_focus_task,m); - Free(m); -} - -void MacroTask() -{ - I8 i; - StrCpy(captured_macro_name,"Click Here"); - do { - i=PopUpExitRecordPlayStopInsert; - RefocusWin; - switch (i) { - case 1: - LBtr(&sys_semas[SYS_SEMA_RECORD_MACRO],0); - DelSysMacro; - LBts(&sys_semas[SYS_SEMA_RECORD_MACRO],0); - break; - case 2: - LBtr(&sys_semas[SYS_SEMA_RECORD_MACRO],0); - PlaySysMacro; - break; - case 3: - LBtr(&sys_semas[SYS_SEMA_RECORD_MACRO],0); - break; - case 4: - LBtr(&sys_semas[SYS_SEMA_RECORD_MACRO],0); - if (sys_cur_focus_task) - QueueMsg(sys_cur_focus_task,0, - MSG_KEY_DOWN,0,SC_F2|SCF_SHIFT,0); - break; - } - } while (i>0); -} - -void EditMacroUtil() -{ - if (!macro_util_tss) - Spawn(&MacroTask,"MACRO TASK"); -} - -void EditInsertCapturedMacro() -{ - BoolU4 old_preempt=Preempt(OFF); - I1 *st=SysMacro2Str; - PrintF("$$MA+A+LM+LA,\"%s\",\"%s\"$$", - captured_macro_name,st); - Free(st); - Preempt(old_preempt); -} diff --git a/LT/Adam/Ltf/LtfMain.APZ b/LT/Adam/Ltf/LtfMain.APZ deleted file mode 100644 index d4570c9..0000000 --- a/LT/Adam/Ltf/LtfMain.APZ +++ /dev/null @@ -1,677 +0,0 @@ -#help_index "Ltf/Cmd Line (Typically)" -public BoolU4 Edit(I1 *filename) -{ - I1 *buf=NewStr(filename), - *buf2=NewStr(filename); - U8 num=1; - I1 *temp_filename=NewStr(filename), - *tfn_ptr=temp_filename; - SysHashEntry *temph; - I8 i; - BoolU4 cont,result=FALSE; - Ltf *l; - - i=LK_FILE; - StrCpy(temp_filename,filename); - if (StrLen(filename)>3 && filename[2]==':') { - buf[2]=0; - i=MatchSysTextEntry(buf,"ST_LINK_TYPES",MLE_IGNORE_CASE); - tfn_ptr=temp_filename+3; - switch (i) { - case LK_MAN_PAGE: - temph=FindLocalHash(tfn_ptr, - HTT_GLBL_VAR|HTT_CLASS|HTT_FUNCTION| - HTT_STR_CONST|HTT_SYS_SYMBOL); - if (temph) - result=Edit(temph->source_link); - Free(temp_filename); - Free(buf); - Free(buf2); - return result; - case LK_DEF: - if (Occurrences(tfn_ptr,',')) { - RemoveLastSeg(tfn_ptr,",",buf); - i=AtoI(buf); - } else - i=-1; - WsdPopUpDef(tfn_ptr,i); - Free(temp_filename); - Free(buf); - Free(buf2); - return TRUE; - case LK_HELP_INDEX: - l=LtfNew; - LtfHelpIndex(l,tfn_ptr); - Free(temp_filename); - Free(buf); - Free(buf2); - DoLtf(l,TRUE); - LtfDel(l); - return TRUE; - case LK_BIBLE_FIND: - if (Occurrences(tfn_ptr,',')) { - RemoveLastSeg(tfn_ptr,",",buf); - } else - *buf=0; - num=AtoI(SysTextSub( - MatchSysTextEntry(tfn_ptr,"ST_BIBLE_BOOKS",MLE_IGNORE_CASE), - "ST_BIBLE_BOOK_LINES")); - tfn_ptr=SysText("ST_BIBLE_FILE"); - break; - case LK_FILE_LINE: - case LK_PLAIN_LINE: - if (Occurrences(tfn_ptr,',')) { - RemoveLastSeg(tfn_ptr,",",buf); - num=AtoI(buf); - } - break; - case LK_FILE_ANCHOR: - *buf=0; - if (Occurrences(tfn_ptr,',')) - RemoveLastSeg(tfn_ptr,",",buf); - break; - case LK_FILE_FIND: - case LK_PLAIN_FIND: - *buf=0; - *buf2=0; - if (Occurrences(tfn_ptr,',')) - RemoveLastSeg(tfn_ptr,",",buf); - if (Occurrences(buf,':')) { - RemoveLastSeg(buf,":",buf2); - num=AtoI(buf2); - } - break; - } - } - tfn_ptr=NewStr(tfn_ptr); - - cont=TRUE; - if (!IsTextFile(tfn_ptr)) { - if (!PopUpNoYes(ST_WARNING "Not Text File\r\n" - "Proceed anyway?\r\n\r\n")) - cont=FALSE; - } - if (cont) - result=LtfEditFile(i,tfn_ptr,buf,num); - - ClearWinText(Fs); - Free(tfn_ptr); - Free(temp_filename); - Free(buf); - Free(buf2); - return result; -} - -public void Plain(I1 *filename) -//Open a document in plain text mode, -//so that dollar signs are not special. -{ - I1 *buf=MSPrintF("PI:%s",filename); - Edit(buf); - Free(buf); -} - -#help_index "Ltf" -public Ltf *InitSysAuxLtf(BoolU4 has_menu) -{ - BoolU4 old_preempt=Preempt(OFF); - LtfEntry *ll; - Ltf *aux; - - aux=LtfNew; - - LtfPutSExt(aux,"$$CM+H+BY+RX,-7,1$$"); - ll=LtfPutSExt(aux,"$$TX+H+BD+DC,\" \"$$"); - ll->display_cb=&EditPreemptCB; - LtfPutSExt(aux,"$$CM+H+BY+RX,-6,1$$"); - ll=LtfPutSExt(aux,"$$TX+H+BD+DC,\" \"$$"); - ll->user_data=Fs->cur_ltf; - ll->display_cb=&EditOverStrikeCB; - LtfPutSExt(aux,"$$CM+H+BY+RX,-5,1$$"); //gets merged without this - ll=LtfPutSExt(aux,"$$TX+H+BD+DC,\" \"$$"); - ll->user_data=Fs->cur_ltf; - ll->display_cb=&EditDollarCB; - LtfPutSExt(aux,"$$CM+H+BY+RX,-4,1$$"); //gets merged without this - ll=LtfPutSExt(aux,"$$TX+H+BD+DC,\" \"$$"); - ll->display_cb=&EditQuotesCB; - LtfPutSExt(aux,"$$CM+H+BY+RX,-3,1$$"); //gets merged without this - ll=LtfPutSExt(aux,"$$TX+H+BD+DC,\" \"$$"); - ll->display_cb=&EditBracesCB; - LtfPutSExt(aux,"$$CM+H+BY+RX,-2,1$$"); //gets merged without this - ll=LtfPutSExt(aux,"$$TX+H+BD+DC,\" \"$$"); - ll->display_cb=&EditSemicolonCB; - if (Fs->cur_ltf) { - LtfPutSExt(aux,"$$CM+H+BY+RX,-11,1$$"); - ll=LtfPutSExt(aux,"$$TX+H+BD+DC,\" \"$$"); - ll->user_data=Fs->cur_ltf; - ll->display_cb=&EditDollarTypeCB; - } - - if (Fs->user_num) - LtfPrintF(aux,"$$CM+H+TY+LX,5,-1$$$$TX+H+BD,\"#%d\"$$",Fs->user_num); - LtfPutSExt(aux,"$$CM+H+TY,0,-1$$"); - ll=LtfPutSExt(aux,"$$DA+H-T-P+BD+RD+CX+SCX+IV,140,\"%s...\",16$$"); - ll->data=&Fs->task_descriptor; - LtfFormatData(ll); - LtfPrintF(aux,"$$CM+H,1,0$$$$TX+H+BD+IV,\"%X\"$$",Fs); - aux->text_attribute=Fs->border_attribute; - if (Bt(&Fs->crt_flags,CRTf_HAS_CLOSE_WIN)) - LtfPutSExt(aux,"$$TX+H+RX+BD,\"[X]\"$$"); - if (has_menu) { - LtfPutSExt(aux,"$$TX+H+LX+BD,\"MENU\"$$"); - Bts(&Fs->crt_flags,CRTf_HAS_MENU); - } - Preempt(old_preempt); - return aux; -} - -public void UseConsoleLtf(I1 *menu_file) -{ - BoolU4 old_preempt=Preempt(OFF); - Ltf *l=LtfNew,*m; - - Fs->cur_ltf=l; - l->RightClickLink=&ConsoleRightClickLink; - l->max_entries=4096; - l->flags|=LTFF_ATTR_BY_PARTITION; - - if (menu_file) { - m=LtfRead(menu_file); - m->flags|=LTFF_ATTR_BY_PARTITION|LTFF_ALLOW_UNDO; - l->menu_ltf=m; - Fs->aux_ltf=InitSysAuxLtf(TRUE); - } else - Fs->aux_ltf=InitSysAuxLtf(FALSE); - - Fs->update_win=&LtfUpdateBothLtf; - Fs->scroll_speed=7; - Preempt(old_preempt); - Raw(OFF); -} - -#help_index "Ltf/Input" -public I1 *LtfGetLine(Ltf *l,LtfEntry *cl,I8 *cur_col=NULL) -{ - LtfEntry *cl2=cl; - BoolU4 old_preempt=Preempt(OFF); - I1 *result,*dst,*src,*start; - U8 i=0; - if (*cur_col) - *cur_col=-1; - while (cl2!=l && cl2->btype!=LTFT_CR) { - if (Bt(ltf_display_types,cl2->btype)) { - if (cl2->btype==LTFT_PICWORD) - src=cl2->aux_str; - else - src=cl2->display; - i+=StrLen(src); - } else if (cl2->btype==LTFT_TAB) - i++; - cl2=cl2->next; - } - result=MAlloc(i+1); - dst=result; - while (cl!=l && cl->btype!=LTFT_CR) { - start=dst; - if (Bt(ltf_display_types,cl->btype)) { - if (cl->btype==LTFT_PICWORD) - src=cl->aux_str; - else - src=cl->display; - while (*src) - *dst++=*src++; - } else if (cl->btype==LTFT_TAB) - *dst++=CH_TAB; - if (cl==l->cur_entry && cur_col) - *cur_col=start-result+l->cur_data_col; - cl=cl->next; - } - *dst++=0; - if (cl==l->cur_entry && cur_col && !l->cur_data_col) - *cur_col=dst-1-result; - Preempt(old_preempt); - return result; -} - -#help_index "Ltf/Output" -public void LtfDump(Ltf *l,U8 uS_delay=0) -{ - I1 *st; - LtfEntry *cl; - cl=l->dummy.next; - while (cl!=l) { - st=LtfGetLine(l,cl); - PutS(st); - Free(st); - do cl=cl->next; - while (cl!=l && cl->btype!=LTFT_CR); - if (cl->btype==LTFT_CR) { - cl=cl->next; - CrLf; - BusyWait(uS_delay); - } - } -} - -public BoolU4 View() -{ - I8 ch=0; - U8 sc=0; - BoolU4 old_preempt=Preempt(OFF); - while (ch!=CH_ESC && ch!=CH_CTRLQ) { - Preempt(OFF); - if (ScanKey(&ch,&sc)) { - Preempt(old_preempt); - PutKey(ch,sc); - LtfRecalc(Fs->cur_ltf); - } else { - Fs->task_flags|=1<rmt_chnl && - !(Fs->parent_tss && Fs->parent_tss->popup_tss==Fs)) { - Fs->task_flags|=1<task_flags&=~(1<btype!=LTFT_ERROR && cl->btype!=LTFT_CR) { - if (Bt(ltf_display_types,cl->btype)) { - if (cl->btype==LTFT_PICWORD) - ptr=cl->aux_str; - else - ptr=cl->display; - do { - ptr2=ptr; - while (ch=*ptr) - if (ch=='$$') - break; - else - ptr++; - *ptr=0; - PutS(ptr2); - *ptr=ch; - if (ch=='$$') { - PutS("$$$$"); - ptr++; - } - } while (ch); - } else if (cl->btype==LTFT_TAB) - PutChar(CH_TAB); - cl=cl->next; - } - CrLf; - return (cl->btype==LTFT_ERROR) ? cl:cl->next; -} - -#help_index "Ltf/Input" -public I1 *LtfMGetS() -{ - Ltf *l=Fs->cur_ltf; - LtfEntry *cl; - BoolU4 old_preempt; - I1 *result; - U8 sc; - I8 ch; - old_preempt=Preempt(OFF); - PutS("$$FU$$$$BU$$"); - do { - Preempt(OFF); - if (ScanKey(&ch,&sc)) { - if (ch==CH_ESC) { - if (l=Fs->aux_ltf) { - if (!l->best_d && l->cur_entry!=l) { - cl=LtfCopyEntry(l,l->cur_entry); - if (Fs->cur_ltf) - LtfBottom(Fs->cur_ltf); - LtfRunEntry(l,cl,TRUE,old_preempt); - LtfDelEntry(l,cl); - goto next; - } - } - if (l=Fs->cur_ltf) { - if (l->cur_entry!=l) { - cl=LtfCopyEntry(l,l->cur_entry); - LtfBottom(l); - LtfRunEntry(l,cl,TRUE,old_preempt); - LtfDelEntry(l,cl); - } - } -next: - } if (ch==CH_CTRLQ) - Exit; - else { - Preempt(old_preempt); - PutKey(ch,sc); - LtfRecalc(Fs->cur_ltf); - } - } else { - Fs->task_flags|=1<rmt_chnl && - !(Fs->parent_tss && Fs->parent_tss->popup_tss==Fs)) { - Fs->task_flags|=1<task_flags&=~(1< is a blank line without entry - } while (ch!=CH_CR || sc & SCF_CTRL && (sc & SCF_SHIFT)); - - Preempt(OFF); - l=Fs->cur_ltf; - cl=l->cur_entry; - do cl=cl->last; - while (cl!=l && cl->btype!=LTFT_CR && - cl->btype!=LTFT_USER_FOREGROUND && cl->btype!=LTFT_USER_BACKGROUND); - - - do cl=cl->last; - while (cl!=l && cl->btype!=LTFT_CR && - cl->btype!=LTFT_USER_FOREGROUND && cl->btype!=LTFT_USER_BACKGROUND); - - cl=cl->next; - result=LtfGetLine(l,cl,NULL); - PutS("$$FU$$$$FG$$$$BG$$"); - Preempt(old_preempt); - return result; -} - -#help_index "Char/Input" - -public I8 PmtI8(I1 *msg,I8 default,I8 lo=MIN_I8,I8 hi=MAX_I8) -{ - I8 result; - I1 *st; - while (TRUE) { - PrintF(msg,default); - st=MGetS; - if (!*st) { - Free(st); - return default; - } - result=AtoI(st); - Free(st); - if (result>=lo && result<=hi) - return result; - } -} - -public double PmtDouble(I1 *msg,double default,double lo=MIN_double,double hi=MAX_double) -{ - double result; - I1 *st; - while (TRUE) { - PrintF(msg,default); - st=MGetS; - if (!*st) { - Free(st); - return default; - } - result=A2Double(st); - Free(st); - if (result>=lo && result<=hi) - return result; - } -} - -public I1 *PmtStr(I1 *msg,I1 *default=NULL) -{ - I1 *st; - if (default) - PrintF(msg,default); - else - PrintF(msg); - st=MGetS; - if (!*st) { - Free(st); - if (default) - return NewStr(default); - else - return NewStr(""); - } - return st; -} - -public LTDate PmtLTDate(I1 *msg,LTDate default,LTDate lo=MIN_I8,LTDate hi=MAX_I8) -{ - LTDate result; - I1 *st; - while (TRUE) { - PrintF(msg,default,default); - st=MGetS; - if (!*st) { - Free(st); - return default; - } - result=A2LTDate(st); - Free(st); - if (result>=lo && result<=hi) - return result; - } -} - -#help_index "Ltf" - -I8 PopUpCancelIncludeDelAuto(I1 *header=NULL,I1 *footer=NULL) -{ - I8 i; - Ltf *l=LtfNew; - if (header) LtfPutSExt(l,header); - LtfPutSExt(l,"$$CM+LX,2,4 $$$$BT, \"INCLUDE (.CPZ)\",1$$"); - LtfPutSExt(l,"$$CM+LX,26,0$$$$BT, \"DEBUG \",9$$"); - LtfPutSExt(l,"$$CM+LX,2,3 $$$$BT, \"COMPILE (.SPZ)\",5$$"); - LtfPutSExt(l,"$$CM+LX,26,0$$$$BT, \"LOAD (.BIZ)\",6$$"); - LtfPutSExt(l,"$$CM+LX,2,3 $$$$BT, \"ADAM_INCLUDE (.APZ)\",4$$"); - LtfPutSExt(l,"$$CM+LX,26,0$$$$BT, \"AUTOFILE (.AUZ)\",3$$"); - LtfPutSExt(l,"$$CM+LX,2,3 $$$$BT, \"COPY \",7$$"); - LtfPutSExt(l,"$$CM+LX,26,0$$$$BT, \"MOVE \",8$$"); - LtfPutSExt(l,"$$CM+LX,2,3 $$$$BT, \"DELETE \",2$$"); - LtfPutSExt(l,"$$CM+LX,26,0$$$$BT, \"CANCEL \",0$$"); - if (footer) LtfPutSExt(l,footer); - i=PopUpMenu(l); - LtfDel(l); - return i; -} - -void EditLeftClickLink(Ltf *l,LtfEntry *cl,U2 old_preempt2) -{ - BoolU4 old_preempt=IsPreempt; - I1 *st; - nounusedwarn l; - if (cl->flags & LTFLF_AUX_STR) - st=NewStr(cl->aux_str); - else - st=NewStr(cl->display); - Preempt(old_preempt2); - Edit(st); - Preempt(old_preempt); - Free(st); -} - -void ConsoleRightClickLink(Ltf *l,LtfEntry *cl,BoolU4 old_preempt2) -{ - BoolU4 send_cr=FALSE,old_preempt=IsPreempt; - I1 *st2,*st; - I8 i; - EditFileNameStruct fn; - if (cl->flags & LTFLF_AUX_STR) - st2=NewStr(cl->aux_str); - else - st2=NewStr(cl->display); - st=(st2[2]==':') ? st2+3:st2; - i=PopUpCancelIncludeDelAuto(st); - Preempt(old_preempt2); - if (i>0) { - LtfBottom(l); - switch (i) { - case 1: - if (Occurrences(st,'.') && !WildCardMatch("*.CP?",st)) { - if (!PopUpNoYes(ST_WARNING "Not .CP? File\r\n" - "Proceed anyway?\r\n\r\n")) { - send_cr=TRUE; - break; - } - } - cout "#include \"",st,"\";\r\n$$FU$$$$FG$$$$BG$$"; - ExecuteFile(st); - break; - case 2: - Del(st); - break; - case 3: - if (Occurrences(st,'.') && !WildCardMatch("*.AU?",st)) { - if (!PopUpNoYes(ST_WARNING "Not .AU? File\r\n" - "Proceed anyway?\r\n\r\n")) { - send_cr=TRUE; - break; - } - } - cout "AutoFile(\"",st,"\");\r\n$$FU$$$$FG$$$$BG$$"; - AutoStr("%F\r",st); - break; - case 4: - if (Occurrences(st,'.') && !WildCardMatch("*.AP?",st)) { - if (!PopUpNoYes(ST_WARNING "Not .CP? File\r\n" - "Proceed anyway?\r\n\r\n")) { - send_cr=TRUE; - break; - } - } - cout "Adam(\"#include \\\"",st,"\\\"\" );\r\n$$FU$$$$FG$$$$BG$$"; - Adam(";#include \"%s\"",st); - break; - case 5: - if (Occurrences(st,'.') && !WildCardMatch("*.SP?",st)) { - if (!PopUpNoYes(ST_WARNING "Not .SP? File\r\n" - "Proceed anyway?\r\n\r\n")) { - send_cr=TRUE; - break; - } - } - cout "CompileFile(\"",st,"\");\r\n$$FU$$$$FG$$$$BG$$"; - CompileFile(st); - break; - case 6: - if (Occurrences(st,'.') && !WildCardMatch("*.BI?",st)) { - if (!PopUpNoYes(ST_WARNING "Not .BI? File\r\n" - "Proceed anyway?\r\n\r\n")) { - send_cr=TRUE; - break; - } - } - cout "Load(\"",st,"\");\r\n$$FU$$$$FG$$$$BG$$"; - Load(st); - break; - case 7: - StrCpy(fn.name,st); - if (DoForm(fn.name,"EditFileNameStruct")) - Copy(st,fn.name); - break; - case 8: - StrCpy(fn.name,st); - if (DoForm(fn.name,"EditFileNameStruct")) - Move(st,fn.name); - break; - case 9: - if (Occurrences(st,'.') && !WildCardMatch("*.CP?",st)) { - if (!PopUpNoYes(ST_WARNING "Not .CP? File\r\n" - "Proceed anyway?\r\n\r\n")) { - send_cr=TRUE; - break; - } - } - cout "IDE(\"",st,"\");\r\n$$FU$$$$FG$$$$BG$$"; - IDE(st); - break; - } - } else - send_cr=TRUE; - LtfBottom(l); - cout "$$FU$$$$FG$$$$BG$$"; - if (send_cr) - PutChar(CH_CR); - Preempt(old_preempt); - Free(st2); -} - -#help_index "Ltf/Cmd Line (Typically)" - -public void Man(I1 *st) -//Enter the name of a symbol and this -//will jump to the source code. -{ - I1 *name=MAlloc(3+StrLen(st)+1); - StrCpy(name,"MN:"); - StrCat(name,st); - Edit(name); - Free(name); -} - -#help_index "Debugging;Ltf/Cmd Line (Typically);Ltf/Output" - -public void LtfDm(U1 *buf,U8 cnt=0x80) -//Dumps a chunk of memory, showing -//addresses. It is live and can be -//edited. -{ - LtfEntry *ll; - BoolU4 old_preempt=Preempt(OFF); - Ltf *l=Fs->cur_ltf; - ll=LtfPrintF(l,"$$HX-Z,%d,16$$",cnt); - ll->data=buf; - l->cur_entry=ll->next; - LtfRecalc(l); - Preempt(old_preempt); -} - -public void LtfD(U1 *buf,U8 cnt=0x80) -//Dumps a chunk of memory, showing -//offsets. It is live and can be -//edited. -{ - LtfEntry *ll; - BoolU4 old_preempt=Preempt(OFF); - Ltf *l=Fs->cur_ltf; - ll=LtfPrintF(l,"$$HX,%d,16$$",cnt); - ll->data=buf; - l->cur_entry=ll->next; - LtfRecalc(l); - Preempt(old_preempt); -} - -#help_index "Ltf/Output" -BoolU8 LtfPutS(I1 *st) -{ - Ltf *l; - BoolU4 old_preempt=Preempt(OFF); - l=Fs->cur_ltf; - if (l) - LtfPutSPartial(l,st,old_preempt); - Preempt(old_preempt); - return FALSE; -} - -AddKeyDev(&LtfPutKey,&LtfPutS,0x80000000); -ext[EXT_LTF_READ]=&LtfRead; -ext[EXT_LTF_WRITE]=&LtfWrite; -ext[EXT_LTF_NEW]=&LtfNew; -ext[EXT_LTF_RESET]=&LtfReset; -ext[EXT_LTF_DEL]=&LtfDel; -ext[EXT_MGETS]=&LtfMGetS; - -#help_index "Ltf" diff --git a/LT/Adam/Ltf/LtfNew.APZ b/LT/Adam/Ltf/LtfNew.APZ deleted file mode 100644 index 990f3ce..0000000 --- a/LT/Adam/Ltf/LtfNew.APZ +++ /dev/null @@ -1,505 +0,0 @@ -U8 ltf_display_types[1],ltf_nondisplay_invisible_types[1], - ltf_form_types[1],ltf_data_types[1]; -U8 ltf_clean_scancodes[4]={0,0,0,0}; - -ltf_display_types[0]= - 1<bin_root.next; - while (b!=&l->bin_root) { - if (b->num==num) - return b; - b=b->next; - } - return NULL; -} - -void LtfValidateBins(Ltf *l) -{ - LtfBinEntry *b=l->bin_root.next,*b1; - LtfEntry *cl=l->dummy.next,*cl2; - while (b!=&l->bin_root) { - b->use_cnt=0; - b->temp_use_cnt=0; - b=b->next; - } - while (cl!=l) { - cl2=cl->next; - if (cl->flags & LTFLF_HAS_BIN) { - if (cl->bin_data=LtfFindBin(l,cl->bin_num)) { - cl->bin_data->use_cnt++; - if (cl->btype==LTFT_PICWORD) - cl->bin_data->temp_use_cnt++; - } else { - DbgStr("Bin Not Found",3000); - RemQue(cl); //don't attempt to delete - } - } - cl=cl2; - } - b=l->bin_root.next; - l->cur_bin_num=1; - while (b!=&l->bin_root) { - b1=b->next; - if (!b->use_cnt) { - RemQue(b); - Free(b->data,l->mem_tss); - Free(b,l->mem_tss); - } else { - if (b->num>=l->cur_bin_num) - l->cur_bin_num=b->num+1; - } - b=b1; - } -} - - -void LtfDelBin(Ltf *l,LtfBinEntry *b) -{ - b->use_cnt--; - if (!b->use_cnt) { - RemQue(b); - Free(b->data,l->mem_tss); - Free(b,l->mem_tss); - } -} - -void LtfDelEntry(Ltf *l,LtfEntry *cl) -{ - if (l==cl) - DbgStr("Ltf Del Header",10000); - else { - if (l->cur_entry==cl) - l->cur_entry=cl->next; - if (l->top_entry==cl) - l->top_entry=cl->next; - RemQue(cl); - if (Bt(ltf_display_types,cl->btype)) - Free(cl->display,l->mem_tss); - if (cl->flags & LTFLF_LEFT_MACRO) - Free(cl->left_macro,l->mem_tss); - if (cl->flags & LTFLF_RIGHT_MACRO) - Free(cl->right_macro,l->mem_tss); - if (cl->flags & LTFLF_AUX_STR) - Free(cl->aux_str,l->mem_tss); - if (cl->flags & LTFLF_HAS_BIN) - LtfDelBin(l,cl->bin_data); - Free(cl,l->mem_tss); - } -} - -void LtfDelUndo(Ltf *l,LtfUndo *u) -{ - Free(u->body,l->mem_tss); - Free(u,l->mem_tss); -} - -void LtfSetUndoCnt(Ltf *l) -{ - BoolU4 old_preempt=Preempt(OFF); - LtfUndo *u=l->undo_root.next; - l->undo_cnt=0; - while (u!=&l->undo_root) { - l->undo_cnt++; - u=u->next; - } - Preempt(old_preempt); -} - -BoolU8 LtfCheckBin(Ltf *l,LtfBinEntry *b) -{ - if (MTss(b->data)!=l->mem_tss) - return FALSE; - if (MTss(b)!=l->mem_tss) - return FALSE; - return TRUE; -} - -BoolU8 LtfCheckEntry(Ltf *l,LtfEntry *cl) -{ - if (l==cl) - DbgStr("Ltf Del Header",10000); - else { - if (Bt(ltf_display_types,cl->btype)) - if (MTss(cl->display)!=l->mem_tss) - return FALSE; - if (cl->flags & LTFLF_LEFT_MACRO) - if (MTss(cl->left_macro)!=l->mem_tss) - return FALSE; - if (cl->flags & LTFLF_RIGHT_MACRO) - if (MTss(cl->right_macro)!=l->mem_tss) - return FALSE; - if (cl->flags & LTFLF_AUX_STR) - if (MTss(cl->aux_str)!=l->mem_tss) - return FALSE; - if (cl->flags & LTFLF_HAS_BIN) - if (!LtfCheckBin(l,cl->bin_data)) - return FALSE; - if (MTss(cl)!=l->mem_tss) - return FALSE; - } - return TRUE; -} - - -LtfEntry *LtfCopyEntry(Ltf *l,LtfEntry *cl) -{ - LtfEntry *nl; - LtfBinEntry *tempb; - TssStruct *tss=l->mem_tss; - nl=MAllocIdentical(cl,tss); - nl->next=nl; - nl->last=nl; - if (Bt(ltf_display_types,cl->btype)) - nl->display=MAllocIdentical(cl->display,tss); - if (cl->flags & LTFLF_AUX_STR) - nl->aux_str=MAllocIdentical(cl->aux_str,tss); - if (cl->flags & LTFLF_LEFT_MACRO) - nl->left_macro=MAllocIdentical(cl->left_macro,tss); - if (cl->flags & LTFLF_RIGHT_MACRO) - nl->right_macro=MAllocIdentical(cl->right_macro,tss); - if (cl->flags & LTFLF_HAS_BIN) { - tempb=MAllocIdentical(cl->bin_data,tss); - tempb->data=MAllocIdentical(cl->bin_data->data,tss); - nl->bin_num=l->cur_bin_num; - tempb->num=l->cur_bin_num++; - nl->bin_data=tempb; - InsQue(tempb,l->bin_root.last); - } - return nl; -} - -void LtfFormForward(Ltf *l) -{ - LtfEntry *cl=l->cur_entry,*cl1=cl->last,*cl2=cl; - if (l->flags & LTFF_FORM) { - while (cl!=cl1 && !Bt(ltf_form_types,cl->btype)) - cl=cl->next; - } - while (cl->btype==LTFT_INDENT) - cl=cl->next; - if (cl!=cl2) { - l->cur_data_col=cl->min_col; - l->cur_entry=cl; - } -} - -void LtfFormBackward(Ltf *l) -{ - LtfEntry *cl=l->cur_entry,*cl1=cl->next,*cl2=cl; - if (l->flags & LTFF_FORM) { - while (cl!=cl1 && !Bt(ltf_form_types,cl->btype)) - cl=cl->last; - } - while (cl->btype==LTFT_INDENT) - cl=cl->next; - if (cl!=cl2) { - l->cur_data_col=cl->min_col; - l->cur_entry=cl; - } -} - -public void LtfHome(Ltf *l=NULL) -{ - if (!l) { - l=Fs->cur_ltf; - if (!l) return; - } - l->cur_entry=l->dummy.next; - l->cur_data_col=l->cur_entry->min_col; - l->x=0; - l->y=0; - l->line_start_col=0; - l->cur_top_line_num=0; - LtfFormForward(l); -} - -public BoolU4 LtfCheck(Ltf *l=NULL) -{ - LtfEntry *cl,*cl1; - if (!l) { - l=Fs->cur_ltf; - if (!l) return FALSE; - } - cl=l->dummy.next; - while (cl!=l) { - cl1=cl->next; - if (!LtfCheckEntry(l,cl)) - return FALSE; - cl=cl1; - } - return TRUE; -} - -public void LtfReset(Ltf *l,BoolU4 is_old) -{ - LtfEntry *cl,*cl1; - LtfUndo *u,*u1; - if (!l) { - l=Fs->cur_ltf; - if (!l) return; - } - if (is_old) { - cl=l->dummy.next; - while (cl!=l) { - cl1=cl->next; - LtfDelEntry(l,cl); - cl=cl1; - } - u=l->undo_root.next; - while (u!=&l->undo_root) { - u1=u->next; - LtfDelUndo(l,u); - u=u1; - } - } -//Check $LK,"EditInsertLtf","MN:EditInsertLtf"$ - l->start_text_attribute=(WHITE<<4)+BLUE; - l->text_attribute=l->start_text_attribute; - l->link_attribute=(WHITE<<4)+RED; - l->macro_attribute=(WHITE<<4)+LTBLUE; - l->anchor_attribute=(WHITE<<4)+BLACK; - l->hidden_attribute=(WHITE<<4)+BLACK; - l->tree_attribute=(WHITE<<4)+PURPLE; - l->user_attribute=(WHITE<<4)+GREEN; - l->flags=0; - l->dummy.next=l; - l->dummy.last=l; - l->bin_root.next=&l->bin_root; - l->bin_root.last=&l->bin_root; - l->undo_root.next=&l->undo_root; - l->undo_root.last=&l->undo_root; - l->undo_root.timestamp=0; - l->undo_cnt=0; - l->cur_bin_num=1; - l->recalc_start=l; - l->menu_ltf=NULL; - l->dollar_buf_ptr=0; - l->cmd_I1=CH_SPACE; - l->indent=0; - l->page_line_num=0; - l->page_length=66; - l->left_margin=LTF_DEFAULT; - l->right_margin=LTF_DEFAULT; - l->header=LTF_DEFAULT; - l->footer=LTF_DEFAULT; - l->best_d=MAX_I8; - - cl=&l->dummy; - cl->type=LTFT_ERROR; - cl->flags=0; - cl->x=0; - cl->y=0; - cl->min_col=0; - cl->max_col=0; - cl->indent=l->indent; - cl->page_line_num=l->page_line_num; - cl->left_margin=l->left_margin; - cl->right_margin=l->right_margin; - - LtfHome(l); -} - - -public void LtfDel(Ltf *l) -{ - Ltf *m; - if (!l) return; - m=l->menu_ltf; - LtfReset(l,TRUE); - Free(l->find_replace,l->mem_tss); - Free(l->dollar_buf,l->mem_tss); - LtfDel(m); - Free(l,l->mem_tss); -} - - -void LtfFormatData(LtfEntry *cl) -{ - BoolU4 *b; - U8 *d; - I8 i; - if (cl->btype==LTFT_DATA) { - d=cl->data; - if (cl->flags & LTFLF_DATA_IS_PTR) - SPrintF(cl->display,cl->aux_str,*d,cl->my_format_data); - else - SPrintF(cl->display,cl->aux_str,d,cl->my_format_data); - if (cl->flags & LTFLF_HAS_TERMINATOR) { - i=StrLen(cl->display); - cl->display[i++]='_'; - cl->display[i]=0; - } - cl->max_col=StrLen(cl->display); - } else if (cl->btype==LTFT_CHECK_BOX) { - if (cl->flags & LTFLF_DATA_IS_PTR) - b=cl->data; - else - b=&cl->data; - if (*b) - cl->flags|=LTFLF_CHECKED; - else - cl->flags&=~LTFLF_CHECKED; - } -} - -void LtfGetData(LtfEntry *cl) -{ - BoolU4 *b; - I8 i; - if (cl->btype==LTFT_DATA) { - i=StrLen(cl->display); - if (cl->flags & LTFLF_HAS_TERMINATOR) - cl->display[--i]=0; - if (i>cl->len+cl->min_col) - cl->display[cl->len+cl->min_col]=0; - if (cl->flags & LTFLF_DATA_IS_PTR) - GetF(cl->display,cl->aux_str,cl->data,cl->my_format_data); - else - GetF(cl->display,cl->aux_str,&cl->data,cl->my_format_data); - if (cl->flags & LTFLF_HAS_TERMINATOR) - cl->display[i]='_'; - } else if (cl->btype==LTFT_CHECK_BOX) { - if (cl->flags & LTFLF_DATA_IS_PTR) - b=cl->data; - else - b=&cl->data; - if (cl->flags & LTFLF_CHECKED) - *b=TRUE; - else - *b=FALSE; - } -} - -void LtfRemoveSoftCRs(Ltf *l=NULL,LtfEntry *cl=NULL) -{ - LtfEntry *cl2,*saved_cl=cl; - BoolU4 old_preempt=Preempt(OFF); - if (!l) { - l=Fs->cur_ltf; - if (!l) return; - } - if (!cl) cl=l->dummy.next; - while (cl!=l) { - cl2=cl->next; - if (cl->btype==LTFT_SOFT_CR) { - if (l->cur_entry==cl) { - l->cur_entry=cl2; - l->cur_data_col=l->cur_entry->min_col; - } - LtfDelEntry(l,cl); - } else if (saved_cl && cl->btype==LTFT_CR) - break; - cl=cl2; - } - Preempt(old_preempt); -} - -#help_index "Ltf/Cmd Line (Typically)" - -public void LtfMax(U8 i=MAX_I4) -//Adjusts the size of the Ltf buffer. -//Normally, the command line deletes -//entries after a while. -{ - Ltf *l=Fs->cur_ltf; - l->max_entries=i; -} - -#help_index "Ltf" -public Ltf *LtfNew() -{ - Ltf *l; - l=MAllocZ(sizeof(Ltf)); - StrCpy(l->filename.name,sys_temp_filename); - l->file_attr=0; - l->find_replace=MAllocZ(sizeof(EditFindTextStruct)); - l->find_replace->scan_forward=1; - l->find_replace->match_case=1; - l->LeftClickLink=&EditLeftClickLink; - l->dollar_buf_size=84; - l->dollar_buf=MAlloc(l->dollar_buf_size); - l->max_entries=MAX_I4; - l->ww_lines_back=32; - l->win_tss=Fs; - l->mem_tss=Fs; - LtfReset(l,FALSE); - return l; -} - -sys_clipboard_ltf=LtfNew; - diff --git a/LT/Adam/Ltf/LtfPlain.APZ b/LT/Adam/Ltf/LtfPlain.APZ deleted file mode 100644 index 83c11ba..0000000 --- a/LT/Adam/Ltf/LtfPlain.APZ +++ /dev/null @@ -1,688 +0,0 @@ -void ParseLtfFlags(LexStruct *l,U8 *flags,U4 *type) -{ - I8 i; - BoolU4 turn_on; - while (l->token=='+' || l->token=='-') { - turn_on=(l->token=='+'); - if (Lex(l)==TK_IDENT) { - i=MatchSysTextEntry(l->ident,"ST_LTF_FLAGS",MLE_EXACT); - if (i<0) - *type=LTFT_ERROR; - else { - AssignBit(flags,i,turn_on); - if (i==LTFLf_SELECTED) - AssignBit(type,30,turn_on); - else if (i==LTFLf_UNDERLINED) - AssignBit(type,31,turn_on); - else if (i==LTFLf_INVERTED) - AssignBit(type,29,turn_on); - else if (i==LTFLf_BLINK) - AssignBit(type,28,turn_on); - } - Lex(l); //skip flag - } - } -} - -void LtfDefaultFlags(U4 *type,U8 *f1) -{ - switch (*type & 255) {$AN,"default_flags","default_flags"$ - case LTFT_TREE: - *f1=LTFLF_COLLAPSED|LTFLF_TREE; - *type|=LTFLT_UNDERLINE; - break; - case LTFT_DATA: - *f1=LTFLF_DATA_IS_PTR | LTFLF_HAS_TERMINATOR | LTFLF_AUX_STR; - break; - case LTFT_CURSOR_MOVEMENT: - *f1=LTFLF_LEFT_EXP | LTFLF_RIGHT_EXP; - break; - case LTFT_LINK: - *f1=LTFLF_LINK|LTFLF_AUX_STR; - *type|=LTFLT_UNDERLINE; - break; - case LTFT_ANCHOR: - *f1=LTFLF_AUX_STR; - break; - case LTFT_BUTTON: - *f1=LTFLF_ESC | LTFLF_LEFT_EXP | LTFLF_HAS_BORDER; - break; - case LTFT_CHECK_BOX: - *f1=LTFLF_DATA_IS_PTR; - break; - case LTFT_MACRO: - *f1=LTFLF_ESC | LTFLF_LEFT_MACRO; - *type|=LTFLT_UNDERLINE; - break; - case LTFT_MENU_VALUE: - *f1=LTFLF_ESC | LTFLF_LEFT_EXP; - *type|=LTFLT_UNDERLINE; - break; - case LTFT_HEX_EDIT: - *f1=LTFLF_DATA_IS_PTR | LTFLF_ZERO_BASED; - break; - case LTFT_PICWORD: - *f1=LTFLF_HAS_BIN|LTFLF_AUX_STR|LTFLF_FROM_START|LTFLF_WIDTH|LTFLF_HEIGHT; - break; - case LTFT_PICTURE: - *f1=LTFLF_HAS_BIN; - break; - case LTFT_TOP_LEFT_TOOLBAR: - *f1=LTFLF_HAS_BIN|LTFLF_TOP_LEFT_MENU|LTFLF_WIDTH|LTFLF_HEIGHT; - break; - case LTFT_TOP_RIGHT_TOOLBAR: - *f1=LTFLF_HAS_BIN|LTFLF_TOP_RIGHT_MENU|LTFLF_WIDTH|LTFLF_HEIGHT; - break; - case LTFT_INSERT_BINARY: - case LTFT_INSERT_BINARY_TYPE: - case LTFT_INSERT_BINARY_SIZE: - *f1=LTFLF_HAS_BIN; - break; - case LTFT_HIDE_START: - *f1=LTFLF_COLLAPSED; - *type|=LTFLT_UNDERLINE; - break; - case LTFT_SONG: - *f1=LTFLF_SONG; - break; - } -} - -I1 *LtfToPlainText(Ltf *l,LtfEntry *ll) -{ //TODO: break strs - I8 i,j; - U8 type=ll->btype,f1=0,flags; - I1 *buf,*buf2; - -buf=NewStr(SysTextSub(ll->btype,"ST_LTF_CMDS")); -if (ll->btype!=LTFT_ERROR) { - LtfDefaultFlags(&type,&f1); - - flags=ll->flags & ~(LTFLF_WORD_WRAP |LTFLF_UNDERLINED | - LTFLF_INVERTED | LTFLF_BLINK | LTFLF_SKIP); - for (i=0;i<64;i++) - if (Bt(&f1,i)!=Bt(&flags,i)) { - if (Bt(&flags,i)) - buf=Add2Str(buf,"+"); - else - buf=Add2Str(buf,"-"); - buf=Add2Str(buf,SysTextSub(i,"ST_LTF_FLAGS")); - } - - for (i=28;i<32;i++) - if (Bt(&type,i)!=Bt(&ll->type,i)) { - if (Bt(&ll->type,i)) - buf=Add2Str(buf,"+"); - else - buf=Add2Str(buf,"-"); - switch (i) { - case 28: j=LTFLf_BLINK; break; - case 29: j=LTFLf_INVERTED; break; - case 30: j=LTFLf_SELECTED; break; - case 31: j=LTFLf_UNDERLINED; break; - } - buf=Add2Str(buf,SysTextSub(j,"ST_LTF_FLAGS")); - } - buf=Add2Str(buf,","); - switch (ll->btype) { - case LTFT_TEXT: - case LTFT_LINK: - case LTFT_ANCHOR: - case LTFT_MENU_VALUE: - case LTFT_BUTTON: - case LTFT_CHECK_BOX: - case LTFT_TREE: - case LTFT_PICTURE: - case LTFT_PICWORD: - case LTFT_INSERT_BINARY: - case LTFT_INSERT_BINARY_TYPE: - case LTFT_INSERT_BINARY_SIZE: - case LTFT_SONG: - buf=Add2Str(buf,"\""); - if (i==LTFT_CHECK_BOX) { - buf=Add2Str(buf,ll->display+4); - } else { - if (ll->flags & LTFLF_TREE) - buf=Add2Str(buf,ll->display+3); - else - buf=Add2Str(buf,ll->display); - } - buf=Add2Str(buf,"\","); - break; - case LTFT_DATA: - buf2=MSPrintF("%s%d,",buf,ll->len); - Free(buf); buf=buf2; - break; - case LTFT_HEX_EDIT: - buf2=MSPrintF("%s%d,",buf,ll->len); - Free(buf); buf=buf2; - buf2=MSPrintF("%s%d,",buf,ll->hex_edit_width); - Free(buf); buf=buf2; - break; - case LTFT_PAGE_LENGTH: - case LTFT_LEFT_MARGIN: - case LTFT_RIGHT_MARGIN: - case LTFT_HEADER: - case LTFT_FOOTER: - case LTFT_INDENT: - case LTFT_FOREGROUND_COLOR: - case LTFT_BACKGROUND_COLOR: - case LTFT_DEFAULT_FOREGROUND_COLOR: - case LTFT_DEFAULT_BACKGROUND_COLOR: - case LTFT_LINK_FOREGROUND: - case LTFT_LINK_BACKGROUND: - case LTFT_MACRO_FOREGROUND: - case LTFT_MACRO_BACKGROUND: - case LTFT_ANCHOR_FOREGROUND: - case LTFT_ANCHOR_BACKGROUND: - case LTFT_HIDDEN_FOREGROUND: - case LTFT_HIDDEN_BACKGROUND: - case LTFT_TREE_FOREGROUND: - case LTFT_TREE_BACKGROUND: - case LTFT_USER_FOREGROUND: - case LTFT_USER_BACKGROUND: - case LTFT_WORD_WRAP: - case LTFT_UNDERLINED: - case LTFT_INVERTED: - case LTFT_BLINK: - case LTFT_SHIFTED_X: - case LTFT_SHIFTED_Y: - if (ll->attr!=LTF_DEFAULT) { - buf2=MSPrintF("%s%d,",buf,ll->attr); - Free(buf); buf=buf2; - } - break; - } - flags=ll->flags& (LTFLF_SCROLLING_X|LTFLF_SHIFTED_X|LTFLF_SCROLLING_Y| - LTFLF_AUX_STR|LTFLF_LEFT_EXP|LTFLF_LEFT_MACRO| - LTFLF_HAS_BIN|LTFLF_RIGHT_EXP|LTFLF_RIGHT_MACRO| - LTFLF_WIDTH|LTFLF_HEIGHT); - while (flags) { - j=Bsf(flags); - Btr(&flags,j); - switch (j) { - case LTFLf_SCROLLING_X: - buf2=MSPrintF("%s%d",buf,ll->scroll_len); - Free(buf); buf=buf2; - break; - case LTFLf_SHIFTED_X: - j=(ll->type.u2[1])&0x1F; - if (j&0x10) j|=0xFFFFFFF0; - buf2=MSPrintF("%s%d",buf,j); - Free(buf); buf=buf2; - break; - case LTFLf_SHIFTED_Y: - j=(ll->type>>21)&0x1F; - if (j&0x10) j|=0xFFFFFFF0; - buf2=MSPrintF("%s%d",buf,j); - Free(buf); buf=buf2; - break; - case LTFLf_AUX_STR: - buf2=MSPrintF("%s\"%Q\"",buf,ll->aux_str); - Free(buf); buf=buf2; - break; - case LTFLf_LEFT_EXP: - buf2=MSPrintF("%s%d",buf,ll->left_exp); - Free(buf); buf=buf2; - break; - case LTFLf_LEFT_MACRO: - buf2=MSPrintF("%s\"%Q\"",buf,ll->left_macro); - Free(buf); buf=buf2; - break; - case LTFLf_RIGHT_EXP: - buf2=MSPrintF("%s%d",buf,ll->right_exp); - Free(buf); buf=buf2; - break; - case LTFLf_RIGHT_MACRO: - buf2=MSPrintF("%s\"%Q\"",buf,ll->right_macro); - Free(buf); buf=buf2; - break; - case LTFLf_HAS_BIN: - buf2=MSPrintF("%s%d",buf,ll->bin_num); - Free(buf); buf=buf2; - break; - case LTFLf_WIDTH: - buf2=MSPrintF("%s%d",buf,ll->width); - Free(buf); buf=buf2; - break; - case LTFLf_HEIGHT: - buf2=MSPrintF("%s%d",buf,ll->height); - Free(buf); buf=buf2; - break; - } - buf=Add2Str(buf,","); - } - buf[StrLen(buf)-1]=0; //Kill last comma -} - buf2=NewStr(buf,l->mem_tss); //exact allocation - Free(buf); - return buf2; -} - - -LtfEntry *ParseDollarCmd(Ltf *l,I1 *st) -{ - I8 i,j,size,flags; - I1 *ptr,*st2; - LtfEntry *ll=NULL; - LexStruct *lx=LexNew(st,LF_DONT_FREE_BUFFER,NULL); - Lex(lx); - if (lx->token==TK_IDENT) { - i=MatchSysTextEntry(lx->ident,"ST_LTF_CMDS",MLE_IGNORE_CASE); - if (i<0) - i=LTFT_ERROR; - Lex(lx); //skip cmd code - ll=MAllocZ(sizeof(LtfEntry),l->mem_tss); - ll->type=i; - LtfDefaultFlags(&ll->type,&ll->flags); - ParseLtfFlags(lx,&ll->flags,&ll->type); - if (lx->token==',') - Lex(lx); - switch (i) { - case LTFT_TEXT: - case LTFT_LINK: - case LTFT_ANCHOR: - case LTFT_MENU_VALUE: - case LTFT_BUTTON: - case LTFT_CHECK_BOX: - case LTFT_TREE: - case LTFT_PICTURE: - case LTFT_PICWORD: - case LTFT_INSERT_BINARY: - case LTFT_INSERT_BINARY_TYPE: - case LTFT_INSERT_BINARY_SIZE: - case LTFT_SONG: - if (lx->token==TK_STR) { - st2=LexExtendStr(lx,&size); - if (i==LTFT_CHECK_BOX) { - st=MSPrintF("[X] %s",st2); - Free(st2); - ll->min_col=1; - } else if (ll->flags & LTFLF_TREE) { - st=MSPrintF("+] %s",st2); - Free(st2); - ll->min_col=1; - } else - st=st2; - ll->display=NewStr(st,l->mem_tss); - Free(st); - } else { - if (i>=LTFT_PICTURE && i<=LTFT_INSERT_BINARY_SIZE || - i==LTFT_SONG) - ll->display=NewStr("",l->mem_tss); - else { - ll->display=NULL; - ll->type=LTFT_ERROR; - } - } - break; - case LTFT_HIDE_START: - ll->display=NewStr("<-",l->mem_tss); - ll->min_col=1; - break; - case LTFT_HIDE_END: - ll->display=NewStr(">",l->mem_tss); - break; - case LTFT_DATA: - ll->flags|=LTFLF_AUX_STR; //don't allow switched off - ll->len=Expression(lx); - break; - case LTFT_HEX_EDIT: - ll->len=Expression(lx); - if (lx->token==',') - Lex(lx); - ll->hex_edit_width=Expression(lx); - break; - case LTFT_PAGE_LENGTH: - case LTFT_LEFT_MARGIN: - case LTFT_RIGHT_MARGIN: - case LTFT_HEADER: - case LTFT_FOOTER: - case LTFT_INDENT: - case LTFT_FOREGROUND_COLOR: - case LTFT_BACKGROUND_COLOR: - case LTFT_DEFAULT_FOREGROUND_COLOR: - case LTFT_DEFAULT_BACKGROUND_COLOR: - case LTFT_LINK_FOREGROUND: - case LTFT_LINK_BACKGROUND: - case LTFT_MACRO_FOREGROUND: - case LTFT_MACRO_BACKGROUND: - case LTFT_ANCHOR_FOREGROUND: - case LTFT_ANCHOR_BACKGROUND: - case LTFT_HIDDEN_FOREGROUND: - case LTFT_HIDDEN_BACKGROUND: - case LTFT_TREE_FOREGROUND: - case LTFT_TREE_BACKGROUND: - case LTFT_USER_FOREGROUND: - case LTFT_USER_BACKGROUND: - case LTFT_WORD_WRAP: - case LTFT_UNDERLINED: - case LTFT_INVERTED: - case LTFT_BLINK: - case LTFT_SHIFTED_X: - case LTFT_SHIFTED_Y: - if (!lx->token) - ll->attr=LTF_DEFAULT; - else - ll->attr=Expression(lx); - break; - case LTFT_ERROR: - ll->flags=0; - ll->type=LTFT_ERROR; - break; - } - - flags=ll->flags& (LTFLF_SCROLLING_X|LTFLF_SHIFTED_X|LTFLF_SCROLLING_Y| - LTFLF_AUX_STR|LTFLF_LEFT_EXP|LTFLF_LEFT_MACRO| - LTFLF_HAS_BIN|LTFLF_RIGHT_EXP|LTFLF_RIGHT_MACRO| - LTFLF_WIDTH|LTFLF_HEIGHT); - while (flags) { - j=Bsf(flags); - Btr(&flags,j); - while (lx->token==',') - Lex(lx); - switch (j) { //TODO: Might check for expression errors - case LTFLf_SCROLLING_X: - ll->scroll_len=Expression(lx); - break; - case LTFLf_SHIFTED_X: - ll->type|=((Expression(lx) & 0x1F)<<16); - break; - case LTFLf_SHIFTED_Y: - ll->type|=((Expression(lx) & 0x1F)<<21); - break; - case LTFLf_AUX_STR: - if (lx->token==TK_STR) { - st2=LexExtendStr(lx,&size); - ll->aux_str=NewStr(st2,l->mem_tss); - Free(st2); - if (i==LTFT_MACRO && !ll->display) - ll->display=NewStr(ll->aux_str,l->mem_tss); - if (i==LTFT_DATA) { - if (ptr=StrStr(ll->aux_str,":")) - ll->min_col=ptr-ll->aux_str+1; - ll->display=MAlloc(ll->len+ll->min_col+2,l->mem_tss); - } - } else - ll->type=LTFT_ERROR; - break; - case LTFLf_LEFT_EXP: - ll->left_exp=Expression(lx); - break; - case LTFLf_LEFT_MACRO: - if (lx->token==TK_STR) { - st2=LexExtendStr(lx,&size); - ll->left_macro=NewStr(st2,l->mem_tss); - Free(st2); - if (i==LTFT_MACRO && !ll->display) - ll->display=NewStr(ll->left_macro,l->mem_tss); - } else - ll->type=LTFT_ERROR; - break; - case LTFLf_RIGHT_EXP: - ll->right_exp=Expression(lx); - break; - case LTFLf_RIGHT_MACRO: - if (lx->token==TK_STR) { - st2=LexExtendStr(lx,&size); - ll->right_macro=NewStr(st2,l->mem_tss); - Free(st2); - if (i==LTFT_MACRO && !ll->display) - ll->display=NewStr(ll->right_macro,l->mem_tss); - } else - ll->type=LTFT_ERROR; - break; - case LTFLf_HAS_BIN: - if (!lx->token) - ll->bin_num=0; - else - ll->bin_num=Expression(lx); - break; - case LTFLf_WIDTH: - ll->width=Expression(lx); - break; - case LTFLf_HEIGHT: - ll->height=Expression(lx); - break; - } - } - } else if (!ll) { - ll=MAllocZ(sizeof(LtfEntry),l->mem_tss); - ll->type=LTFT_ERROR; - } - LexDel(lx); - return ll; -} - -void LtfInsert(Ltf *l,LtfEntry *ll) -{ - I1 *dst; - LtfEntry *cl=l->cur_entry,*nl; - - ll->x=cl->x; - ll->y=cl->y; - ll->indent=cl->indent; - ll->page_line_num=cl->page_line_num; - ll->left_margin=cl->left_margin; - ll->right_margin=cl->right_margin; - if (l->cur_data_col>0 && - cl->btype==LTFT_TEXT && - l->cur_data_colmax_col) { - nl=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - nl->type=LTFT_TEXT|cl->type&-0x100; - nl->x=cl->x; - nl->y=cl->y; - nl->indent=cl->indent; - nl->page_line_num=cl->page_line_num; - nl->left_margin=cl->left_margin; - nl->right_margin=cl->right_margin; - nl->flags=cl->flags; - dst=cl->display+l->cur_data_col; - nl->display=NewStr(dst,l->mem_tss); - *dst=0; - cl->max_col=l->cur_data_col; - InsQue(nl,cl); - l->cur_data_col=0; - cl=nl; - cl->max_col=StrLen(cl->display); - } - if (cl->btype==LTFT_TEXT && l->cur_data_col>=cl->max_col) { - InsQue(ll,cl); - l->cur_entry=ll->next; - } else { - InsQue(ll,cl->last); - l->cur_entry=cl; - } - l->cur_data_col=l->cur_entry->min_col; - LtfRemoveSoftCRs(l,l->cur_entry); -} - - -#help_index "Ltf/Output" -public LtfEntry *LtfPutSExt(Ltf *l,I1 *st) -{ - I1 ch,*ptr=st,*ptr2,*st2,*ptr3,*ptr4,*src; - BoolU4 old_preempt=Preempt(OFF); - LtfEntry *ll=NULL,*result=NULL,*cl=l->cur_entry; - l->recalc_start=l; //TODO:This might be optimized - if (!st) { - Preempt(old_preempt); - return NULL; - } - while (*ptr) { - ptr2=ptr; - ch=*ptr++; - while (TRUE) { - if (l->flags & LTFF_PLAIN_TEXT_WITH_TABS) - while (ch && ch!=CH_CR && ch!=CH_LINE_FEED && ch!=CH_CURSOR) - ch=*ptr++; - else if (l->flags & LTFF_PLAIN_TEXT) - while (ch && ch!=CH_CR && ch!=CH_LINE_FEED && ch!=CH_TAB && ch!=CH_CURSOR && ch!=CH_FORM_FEED) - ch=*ptr++; - else - while (ch && ch!=CH_CR && ch!=CH_LINE_FEED && ch!=CH_TAB && ch!=CH_CURSOR && ch!=CH_FORM_FEED && ch!='$$') - ch=*ptr++; - if (ch==CH_CURSOR) { - if (l->flags & LTFF_NO_CURSOR) - ch=*ptr++; - else - break; - } else - break; - } - ptr--; - if (!ch) { - if (ptr!=ptr2) { - ll=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - ll->type=LTFT_TEXT | l->text_attribute << 8; - if (l->flags & LTFF_NO_CURSOR) { - src=NewStr(ptr2); - StrUtil(src,SU_REMOVE_CTRL_CHARS); - } else - src=ptr2; - ll->display=NewStr(src,l->mem_tss); - ll->max_col=StrLen(src); - LtfInsert(l,ll); - if (l->flags & LTFF_NO_CURSOR) - Free(src); - } - } else { - if (ptr!=ptr2) { - *ptr=0; - ll=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - ll->type=LTFT_TEXT | l->text_attribute << 8; - if (l->flags & LTFF_NO_CURSOR) { - src=NewStr(ptr2); - StrUtil(src,SU_REMOVE_CTRL_CHARS); - } else - src=ptr2; - ll->display=NewStr(src,l->mem_tss); - ll->max_col=StrLen(src); - LtfInsert(l,ll); - if (l->flags & LTFF_NO_CURSOR) - Free(src); - *ptr=ch; - } - if (ch==CH_CURSOR) { //cursor - ll=MAllocZ(sizeof(LtfEntryBase),l->mem_tss); - ll->type=LTFT_CURSOR | l->text_attribute << 8; - LtfInsert(l,ll); - ptr++; - } else if (ch==CH_FORM_FEED) { - ll=MAllocZ(sizeof(LtfEntryBase),l->mem_tss); - ll->type=LTFT_PAGE_BREAK | l->text_attribute << 8; - LtfInsert(l,ll); - ptr++; - } else if (ch==CH_TAB) { - ll=MAllocZ(sizeof(LtfEntryBase),l->mem_tss); - ll->type=LTFT_TAB | l->text_attribute << 8; - LtfInsert(l,ll); - ptr++; - } else if (ch=='$$') { - ptr++; //skip first dollar - ptr2=ptr; - while (*ptr && *ptr!='$$') - ptr++; - if (*ptr) { - *ptr=0; //zero second dollar - if (ptr==ptr2) { - ll=MAllocZ(sizeof(LtfEntryBase)+sizeof(void *),l->mem_tss); - ll->type=LTFT_TEXT | l->text_attribute << 8; - ll->max_col=1; - if (l->flags & LTFF_DOUBLE_DOLLARS) - ll->display=NewStr("$$$$",l->mem_tss); - else - ll->display=NewStr("$$",l->mem_tss); - LtfInsert(l,ll); - } else { - st2=MAlloc(ptr-ptr2+1); - ptr3=ptr2; - ptr4=st2; - while (*ptr3) { - ch=*ptr3++; - if (ch==CH_CURSOR) { - ll=MAllocZ(sizeof(LtfEntryBase),l->mem_tss); - ll->type=LTFT_CURSOR | l->text_attribute << 8; - LtfInsert(l,ll); - } else if (ch==CH_FORM_FEED) { - ll=MAllocZ(sizeof(LtfEntryBase),l->mem_tss); - ll->type=LTFT_PAGE_BREAK | l->text_attribute << 8; - LtfInsert(l,ll); - } else - *ptr4++=ch; - } - *ptr4=0; - if (ll=ParseDollarCmd(l,st2)) { - result=ll; - LtfInsert(l,ll); - } - Free(st2); - } - *ptr++='$$'; - } - } else { - ll=MAllocZ(sizeof(LtfEntryBase),l->mem_tss); - ll->type=LTFT_CR | l->text_attribute << 8; - LtfInsert(l,ll); - if (ch==CH_CR) - while (*ptr==CH_CR) - ptr++; - if (*ptr==CH_LINE_FEED) - ptr++; - while (*ptr==CH_CR) - ptr++; - } - } - } - Preempt(old_preempt); - return result; -} - - -public LtfEntry *LtfPrintF(Ltf *l,I1 *src,...) -{ - LtfEntry *result; - I1 *buf=SPrintFJoin(NULL,src,argc,argv); - result=LtfPutSExt(l,buf); - Free(buf); - return result; -} - -#help_index "PicWords" -#help_file "::/LT/Doc/PicWords.TXZ" -#help_index "PicWords;Ltf/Output" -public PicWordEntry *AddPicWord(I1 *st,GrElem *tempe,U8 size,I8 width=0,I8 height=0,I1 *txt=NULL) -{ -//If you set $FG,4$txt$FG$, then include dollar signs -//$FG,4$$$PW,"padspaces","Word",%d,width,height$$$FG$ -// -//If you want a macro picword -//$FG,4$$$PW+LM,"padspaces","Word","Macro",%d,width,height$$$FG$ - -//See $LK,"LtfWordsToPics","MN:LtfWordsToPics"$ - - I1 *st2; - I8 l; - PicWordEntry *temppw=MAllocZ(sizeof(PicWordEntry)); - temppw->type=HTT_PIC_WORD; - temppw->use_cnt=0; - temppw->grelem=tempe; - temppw->size=size; - temppw->width=width; - temppw->height=height; - if (txt) { - l=StrLen(txt); - if (l>2) { - st2=MAlloc(l-2+1); - MemCpy(st2,txt+1,l-2); - st2[l-2]=0; - temppw->txt=st2; - } - } - temppw->source_link=NULL; - temppw->str=NewStr(st); - AddSysHashEntry(temppw,Fs->hash_table); - return temppw; -} - -#help_index "Ltf" diff --git a/LT/Adam/Ltf/LtfPopUp.APZ b/LT/Adam/Ltf/LtfPopUp.APZ deleted file mode 100644 index 4765f7e..0000000 --- a/LT/Adam/Ltf/LtfPopUp.APZ +++ /dev/null @@ -1,621 +0,0 @@ -public I8 LtfRunEntry(Ltf *l,LtfEntry *cl,BoolU4 exited,BoolU4 old_preempt) -{ //Call with preempt off - I8 result=-1; - I1 ch=l->cmd_I1,*st; - I8 cb(Ltf *l,LtfEntry *ll); - - if (!exited) { - if (cl->flags & LTFLF_ESC) { - Msg(MSG_KEY_DOWN,CH_ESC,0,1<flags & LTFLF_QUIT) { - Msg(MSG_KEY_DOWN,CH_CTRLQ,0,1<best_d=MAX_I8; - if (cl->flags & LTFLF_LINK) { - try { - if (ch==CH_SPACE) { - if (l->LeftClickLink) - l->LeftClickLink(l,cl,old_preempt); - } else if (ch==CH_CR) { - if (l->RightClickLink) - l->RightClickLink(l,cl,old_preempt); - } - } catch - LtfBottom(l); - return 0; - } - if (ch==CH_SPACE && cl->flags & LTFLF_TREE || cl->btype==LTFT_HIDE_START) - cl->flags^=LTFLF_COLLAPSED; - - if ((cl->btype>=LTFT_BUTTON && cl->btype<=LTFT_MENU_VALUE) || - cl->btype==LTFT_PICTURE || - cl->btype==LTFT_PICWORD || - cl->btype==LTFT_TOP_LEFT_TOOLBAR || - cl->btype==LTFT_TOP_RIGHT_TOOLBAR) { - if (cl->btype==LTFT_CHECK_BOX) - cl->flags^=LTFLF_CHECKED; - if (ch==CH_SPACE) { - if (cl->flags & LTFLF_LEFT_EXP) { - result=cl->left_exp; - Msg(MSG_CMD,result,0,1<flags & LTFLF_LEFT_CB) { - cb=cl->left_cb; - Preempt(old_preempt); - result=cb(l,cl); - Preempt(OFF); - Msg(MSG_CMD,result,0,1<flags & LTFLF_LEFT_MACRO) { - if (cl->flags & LTFLF_POPUP) { - st=NewStr(cl->left_macro); - Preempt(old_preempt); - PopUp(st,Fs); - Preempt(OFF); - Free(st); - } else { - if (cl->flags & LTFLF_LEFT_AUTO) - AutoStr("%s",cl->left_macro); - else - Auto(cl->left_macro); - } - } - } else if (ch==CH_CR) { - if (cl->flags & LTFLF_RIGHT_EXP) { - result=cl->right_exp; - Msg(MSG_CMD,result,0,1<flags & LTFLF_RIGHT_CB) { - cb=cl->right_cb; - Preempt(old_preempt); - result=cb(l,cl); - Preempt(OFF); - Msg(MSG_CMD,result,0,1<flags & LTFLF_RIGHT_MACRO) { - if (cl->flags & LTFLF_POPUP) { - st=NewStr(cl->right_macro); - Preempt(old_preempt); - PopUp(st,Fs); - Preempt(OFF); - Free(st); - } else { - if (cl->flags & LTFLF_RIGHT_AUTO) - AutoStr("%s",cl->right_macro); - else - Auto(cl->right_macro); - } - } - } - } - l->cmd_I1=CH_SPACE; - return result; -} - -I1 *EditOverStrikeCB(Ltf *l,LtfEntry *ll,TssStruct *mem_tss) -{ - Ltf *ltf=ll->user_data; - I1 *st=MAlloc(8,mem_tss); - nounusedwarn l; - st[0]=(ltf->flags & LTFF_OVERSTRIKE) ? 'O':130; - st[1]=0; - return st; -} - -I1 *EditDollarCB(Ltf *l,LtfEntry *ll,TssStruct *mem_tss) -{ - Ltf *ltf=ll->user_data; - I1 *st=MAlloc(8,mem_tss); - nounusedwarn l; - st[0]=(ltf->flags & LTFF_IN_DOLLAR) ? '$$':130; - st[1]=0; - return st; -} - -I1 *EditQuotesCB(Ltf *l,LtfEntry *ll,TssStruct *mem_tss) -{ - LexStruct *lx=mem_tss->last_lex; - I1 *st=MAlloc(8,mem_tss); - nounusedwarn l,ll; - st[0]=(lx->flags & LF_IN_QUOTES) ? '"':130; - st[1]=0; - return st; -} - -I1 *EditBracesCB(Ltf *l,LtfEntry *ll,TssStruct *mem_tss) -{ - LexStruct *lx=mem_tss->last_lex; - I1 *st=MAlloc(8,mem_tss); - nounusedwarn l,ll; - st[0]=(lx->braces_cnt) ? '}':130; - st[1]=0; - return st; -} - -I1 *EditSemicolonCB(Ltf *l,LtfEntry *ll,TssStruct *mem_tss) -{ - LexStruct *lx=mem_tss->last_lex; - I1 *st=MAlloc(8,mem_tss); - nounusedwarn l,ll; - st[0]=(lx->statement_cnt) ? ';':130; - st[1]=0; - return st; -} - -I1 *EditPreemptCB(Ltf *l,LtfEntry *ll,TssStruct *mem_tss) -{ - I1 *st=MAlloc(8,mem_tss); - nounusedwarn l,ll; - st[0]=Bt(&mem_tss->task_flags,TSSf_PREEMPT) ? 'P':130; - st[1]=0; - return st; -} - -I1 *EditDollarTypeCB(Ltf *l,LtfEntry *ll,TssStruct *mem_tss) -{ - Ltf *ltf=ll->user_data; - I1 *src=SysTextSub(ltf->cur_entry->btype,"ST_LTF_CMDS"); - I1 *st=MAllocZ(8,mem_tss); - nounusedwarn l; - if (ltf->cur_entry==ltf) { - StrCpy(st,"EOF"); - } else if (src) StrCpy(st,src); - return st; -} - -public BoolU4 DoLtf(Ltf *l,BoolU4 home=TRUE,I1 *help=NULL,BoolU4 help_is_file=FALSE) -{ - Ltf *menu=NULL,*old_ltf=Fs->cur_ltf,*old_aux=Fs->aux_ltf,*aux; - I8 old_attribute=Fs->text_attribute; - I8 ch=0; - U8 sc=0; - LtfEntry *ll; - void * old_update=Fs->update_win; - BoolU4 old_preempt; - - if (help && !l->menu_ltf) { - if (help_is_file) - menu=LtfRead(help); - else { - menu=LtfNew; - menu->text_attribute=l->text_attribute; - LtfPutSExt(menu,help); - } - l->menu_ltf=menu; - } - - l->win_tss=Fs; - aux=LtfNew; - aux->text_attribute=Fs->border_attribute; - LtfPutSExt(aux,"$$CM +TY,0,-1$$"); - if (Bt(&Fs->crt_flags,CRTf_HAS_CLOSE_WIN)) - LtfPutSExt(aux,"$$TX+RX+BD,\"[X]\"$$"); - if (l->menu_ltf) - LtfPutSExt(aux,"$$TX+LX+BD,\"MENU\"$$"); - - ll=LtfPutSExt(aux,"$$DA-T-P+BD+RD+CX+SCX+IV,256,\"%s...\",16$$"); - ll->data=&l->filename.name; - LtfFormatData(ll); - - if (l->flags & LTFF_ALLOW_UNDO) { - LtfPutSExt(aux,"$$CM+BY+LX,0,1$$"); - ll=LtfPutSExt(aux,"$$DA+BD+RD-T,32,\"Undo:%04d\"$$\r\n"); - ll->data=&l->undo_cnt; - LtfFormatData(ll); - } - - LtfPutSExt(aux,"$$CM+BY+RX,-24,1$$"); - ll=LtfPutSExt(aux,"$$TX+BD+DC,\" \"$$"); - ll->user_data=l; - ll->display_cb=&EditDollarTypeCB; - LtfPutSExt(aux,"$$CM+BY+RX,-21,1$$"); - ll=LtfPutSExt(aux,"$$TX+BD+DC,\" \"$$"); - ll->user_data=l; - ll->display_cb=&EditOverStrikeCB; - LtfPutSExt(aux,"$$CM+BY+RX,-20,1$$"); //gets merged without this - ll=LtfPutSExt(aux,"$$TX+BD+DC,\" \"$$"); - ll->user_data=l; - ll->display_cb=&EditDollarCB; - - ll=LtfPutSExt(aux,"$$DA+BD+RD-T,32,\"Line:%04d \"$$"); - ll->data=&l->line; - LtfFormatData(ll); - ll=LtfPutSExt(aux,"$$DA+BD+RD-T,32,\"Col:%04d\"$$\r\n"); - ll->data=&l->col; - LtfFormatData(ll); - - old_preempt=Preempt(OFF); - aux->recalc_start=aux; - LtfRecalc(aux); - Fs->aux_ltf=aux; - l->recalc_start=l; - LtfRecalc(l); - if (home) - LtfHome(l); - Fs->cur_ltf=l; - Fs->text_attribute=l->text_attribute; - AssignBit(&Fs->crt_flags,CRTf_HAS_MENU,l->menu_ltf); - Fs->update_win=&LtfUpdateBothLtf; - Bts(&Fs->crt_flags,CRTf_SHOW); - do { - Preempt(OFF); - if (ScanKey(&ch,&sc)) { - Preempt(old_preempt); - PutKey(ch,sc); - LtfRecalc(Fs->cur_ltf); - } else { - Fs->task_flags|=1<rmt_chnl && - !(Fs->parent_tss && Fs->parent_tss->popup_tss==Fs)) { - Fs->task_flags|=1<task_flags&=~(1<cur_ltf=old_ltf; - Fs->aux_ltf=old_aux; - AssignBit(&Fs->crt_flags,CRTf_HAS_MENU,old_ltf->menu_ltf); - Fs->text_attribute=old_attribute; - Fs->update_win=old_update; - LtfDel(aux); - if (menu) { - l->menu_ltf=NULL; - LtfDel(menu); - } - Preempt(old_preempt); - return ch==CH_ESC; -} - - -#help_index "Ltf/Input" -public BoolU4 DoForm(U1 *D,I1 *class_name, - I1 *help=NULL,BoolU4 help_is_file=FALSE, - I1 *header=NULL,I1 *footer=NULL) -//Supply a class name that has fmtstr definitions -//and this routine will allow user input. -{ - BoolU4 result=FALSE,old_preempt; - MemberListStruct *ml; - LtfEntry *ll; - I8 ch=0; - ClassStruct *cl=FindLocalHash(class_name,HTT_CLASS); - Ltf *l; - if (!cl) return FALSE; - l=LtfNew; - if (header) LtfPutSExt(l,header); - l->flags|=LTFF_OVERSTRIKE | LTFF_FORM; - ml=cl->member_list; - while (ml) { - if (ml->fmtstr) { - ll=LtfPutSExt(l,ml->fmtstr); - ll->data=D+ml->offset; - ll->my_format_data=ml->fmtdata; - LtfFormatData(ll); - } - ml=ml->next; - } - if (footer) LtfPutSExt(l,footer); - if (l->dummy.next!=l) { - l->flags&=~(LTFF_ATTR_BY_PARTITION | LTFF_ATTR_BY_FILENAME); - LtfRecalc(l); - if (DoLtf(l,TRUE,help,help_is_file)) { - old_preempt=Preempt(OFF); - ll=l->dummy.next; - while (ll!=l) { - if (ll->btype==LTFT_DATA || ll->btype==LTFT_CHECK_BOX) - LtfGetData(ll); - ll=ll->next; - } - ll=l->cur_entry; - if (ll!=l) - LtfRunEntry(l,ll,TRUE,old_preempt); - Preempt(old_preempt); - result=TRUE; - } - } - LtfDel(l); - return result; -} - -void EndDoMenuCb() -{ - WinToTop; - throw(EXCEPT_LOCAL); -} - -public I8 DoMenu(Ltf *m,I1 *help=NULL,U8 flags=0) -{ - void *old_end_cb=Fs->end_task_cb; - LtfEntry *ll; - I8 result=-1; - BoolU4 old_preempt; - Fs->end_task_cb=&EndDoMenuCb; - try { - if (m) { - m->flags&=~(LTFF_ATTR_BY_PARTITION | LTFF_ATTR_BY_FILENAME); - if (DoLtf(m,TRUE,help)) { - old_preempt=Preempt(OFF); - ll=m->cur_entry; - if (ll!=m) - result=LtfRunEntry(m,ll,TRUE,old_preempt); - Preempt(old_preempt); - } - } - } catch { - if (Fs->except_argc==1 && Fs->except_argv[0]==EXCEPT_LOCAL) { - if (!(flags & LTFPUF_INTERCEPT_TASK_END)) - Exit; - Fs->catch_except=TRUE; - Preempt(old_preempt); - } - } - Fs->end_task_cb=old_end_cb; - return result; -} - -#help_index "Ltf" -public I8 PopUp(I1 *msg,TssStruct *parent=NULL,TssStruct **pu_tss=NULL) -{ - U8 result=0; - BoolU4 old_preempt=Preempt(OFF); - TssCmdStruct *tempc; - TssStruct *tss; - tss=Spawn(&ServantUserCmdLine,"SYSTEM TASK",parent); - if (!parent) { - QueueTaskRequest(tss,parent,msg,(1<popup_tss=tss; - tempc=QueueTaskRequest(tss,parent,msg, - 1<popup_tss=NULL; - Kill(tss); - if (pu_tss) *pu_tss=NULL; - Preempt(old_preempt); - return result; - } -} - -#help_index "Ltf/Output" -public TssStruct *PopUpViewLtf(Ltf *l,I1 *help=NULL) -{ - I1 *buf=MSPrintF("Preempt(ON);DoLtf(0x%X,TRUE,0x%X);",l,help); - TssStruct *tss=Spawn(&ServantUserCmdLine,"View",Fs); - QueueTaskRequest(tss,NULL,buf,1<user_data0); - Exit; -} - -public TssStruct *PopUpViewStr(I1 *msg) -{ - TssStruct *tss; - Ltf *l=LtfNew; - LtfPrintF(l,msg); - tss=PopUpViewLtf(l); - tss->user_data0=l; - tss->end_task_cb=&PopUpViewStrEndTsk; - return tss; -} - -#help_index "Ltf/Input" -public I8 PopUpMenu(Ltf *l,I1 *help=NULL,U8 flags=0) -{ - l->flags|=LTFF_MIN_SIZE | LTFF_FORM; - return ServantUser("DoMenu(0x%X,0x%X,0x%X);",l,help,flags); -} - -void LTDirEntryToFileLtf(Ltf *l,LTDirEntry *tempm) -{ - LtfEntry *ll; - while (tempm) { - if (tempm->attr & LT_ATTR_DIR) { - ll=LtfPrintF(l,"$$TR,\"%s\"$$",tempm->name); - ll->user_data=tempm; - LtfPutSExt(l,"\r\n$$ID,+2$$"); - if (tempm->sub) - LTDirEntryToFileLtf(l,tempm->sub); - LtfPutSExt(l,"$$ID,-2$$"); - } else - LtfPrintF(l,"$$MU,\"%s\",0x%08X$$\r\n", - tempm->name,tempm); - tempm=tempm->next; - } -} - -public I1 *PopUpPickFile(I1 *mask="/*",I1 *flags=NULL) -{ - I1 *result=NULL; - LTDirEntry *tempm,*tempm1; - U8 f=0; - Ltf *l=LtfNew; - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),"+r"); - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),flags); - tempm=FindFiles(mask,f); - LtfPutSExt(l,"$$TR-C+AL,\"\"$$\r\n"); - LtfPutSExt(l,"$$ID,+2$$"); - LTDirEntryToFileLtf(l,tempm); - LtfPutSExt(l,"$$ID,-2$$"); - tempm1=PopUpMenu(l); - if (tempm1full_name); - else - result=NewStr(""); - LtfDel(l); - DelLTDirList(tempm); - return result; -} - -#help_index "Ltf/Output" -public void LTDirEntryToDirLtf(Ltf *l,LTDirEntry *tempm) -{ - while (tempm) { - LtfPrintF(l,"$$TR,\"\"$$"); - LtfPrintF(l,"$$MU,\"%s\",0x%08X$$\r\n", - tempm->name,tempm); - LtfPutSExt(l,"$$ID,+2$$"); - if (tempm->sub) - LTDirEntryToDirLtf(l,tempm->sub); - LtfPutSExt(l,"$$ID,-2$$"); - tempm=tempm->next; - } -} - -#help_index "Ltf/Input" -public I1 *PopUpPickDir(I1 *mask="/*",I1 *flags=NULL) -{ //+r=recurse +D=just dirs - I1 *result=NULL; - LTDirEntry *tempm,*tempm1; - U8 f=0; - Ltf *l=LtfNew; - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),"+r+D"); - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),flags); - tempm=FindFiles(mask,f); - LtfPutSExt(l,"$$TR-C+AL,\"\"$$\r\n"); - LtfPutSExt(l,"$$ID,+2$$"); - LTDirEntryToDirLtf(l,tempm); - LtfPutSExt(l,"$$ID,-2$$"); - tempm1=PopUpMenu(l); - if (tempm1full_name); - else - result=NewStr(""); - LtfDel(l); - DelLTDirList(tempm); - return result; -} - -#help_index "Ltf" -public BoolU4 PopUpCd() -{ - I1 *st=PopUpPickDir; - BoolU4 result=Cd(st); - Free(st); - return result; -} - -#help_index "Ltf/Input" -public I1 *PopUpPickListEntry(I1 *lst) -{ - I8 i=0; - Ltf *l=LtfNew; - while (*lst) { - if (*lst=='@') { /* Check for '@' alias list entry*/ - i--; - lst++; - } - LtfPrintF(l,"$$MU,\"%s\",0x%08X$$\r\n", - lst,i++); - lst+=StrLen(lst)+1; - } - LtfPrintF(l,"$$MU,\"CANCEL\",-1$$\r\n"); - i=PopUpMenu(l); - LtfDel(l); - return i; -} - -public I1 *PopUpPickSysTextSub(I1 *st) -{ - return PopUpPickListEntry(SysText(st)); -} - -public BoolU4 PopUpDoForm(U1 *d,I1 *class_name, - I1 *help=NULL,BoolU4 help_is_file=FALSE) -{ //TODO: add header/footer - BoolU4 result; - result=ServantUser("DoForm(0x%X,\"%s\",0x%X,%d);",d,class_name,help,help_is_file); - return result; -} - -public I8 PopUpOk(I1 *header=NULL,I1 *footer=NULL) -{ - I8 i; - Ltf *l=LtfNew; - if (header) LtfPutSExt(l,header); - LtfPutSExt(l,"$$CM +CX,0,4$$$$BT, \"OKAY\" 1$$"); - if (footer) LtfPutSExt(l,footer); - i=PopUpMenu(l); - LtfDel(l); - return i; -} - -public I8 PopUpNoYes(I1 *header=NULL,I1 *footer=NULL) -{ - I8 i; - Ltf *l=LtfNew; - if (header) LtfPutSExt(l,header); - LtfPutSExt(l,"$$CM +LX, 2,4$$$$BT, \"YES\",1$$"); - LtfPutSExt(l,"$$CM +LX, 18,0$$$$BT, \"NO\",0$$"); - if (footer) LtfPutSExt(l,footer); - i=PopUpMenu(l); - LtfDel(l); - return i; -} - -public I8 PopUpCancelOk(I1 *header=NULL,I1 *footer=NULL) -{ - I8 i; - Ltf *l=LtfNew; - if (header) LtfPutSExt(l,header); - LtfPutSExt(l,"$$CM +LX, 2,4$$$$BT, \"OK\",1$$"); - LtfPutSExt(l,"$$CM +LX, 18,0$$$$BT, \"CANCEL\",0$$"); - if (footer) LtfPutSExt(l,footer); - i=PopUpMenu(l); - LtfDel(l); - return i; -} - -public I8 PopUpReplaceSkipAllCancel(I1 *header=NULL,I1 *footer=NULL) -{ - I8 i; - Ltf *l=LtfNew; - if (header) LtfPutSExt(l,header); - LtfPutSExt(l,"$$CM +LX,2,4$$$$BT, \"REPLACE\",0$$"); - LtfPutSExt(l,"$$CM +LX, 18,0$$$$BT, \"SKIP\",1$$"); - LtfPutSExt(l,"$$CM +LX, 2,3$$$$BT, \"ALL\",2$$"); - LtfPutSExt(l,"$$CM +LX, 18,0$$$$BT, \"CANCEL\",3$$"); - if (footer) LtfPutSExt(l,footer); - i=PopUpMenu(l); - LtfDel(l); - return i; -} - -#help_index "Ltf/Input;Input Pointer" -public I8 PopUpInputPointer() -{ - I8 i; - Ltf *l=LtfNew; - LtfPutSExt(l,"$$CM+LX,2,4$$$$BT,\"Mouse\",IP_MOUSE$$"); - LtfPutSExt(l,"$$CM+LX,18,0$$$$BT,\"JoyStick\",IP_JOYSTICK0$$"); - i=PopUpMenu(l); - switch (i) { - case IP_MOUSE: - ip_pointer_type=i; - break; - case IP_JOYSTICK0: - ip_pointer_type=i; - LoadJoystickCalibration; - break; - } - LtfDel(l); - return i; -} -#help_index "Ltf" - diff --git a/LT/Adam/Ltf/LtfRecalc.APZ b/LT/Adam/Ltf/LtfRecalc.APZ deleted file mode 100644 index 84bba98..0000000 --- a/LT/Adam/Ltf/LtfRecalc.APZ +++ /dev/null @@ -1,1657 +0,0 @@ -I8 LtfCharDist(Ltf *l,I8 x,I8 y) -{ - I8 dx=(l->x-x)*FONT_WIDTH,dy=(l->y-y)*FONT_HEIGHT; - return dx*dx+dy*dy; -} - -I1 ltf_spaces[9]= -{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0}; - -void LtfUpdateWinJoin(Ltf *l,BoolU4 to_screen,BoolU4 has_cursor, - BoolU4 recalc,BoolU4 find_cur_entry,BoolU4 preempt, - LtfEntry *pg_found=NULL,I8 num_del_entries=0) -{ - I8 i,ii,j,k,x,x0,y,y0,D,d2,col,col2,best_col=0,best_d=MAX_I8; - I8 num_entries=0; - LtfEntry *cl,*cl2,*best_cl=l->cur_entry,*alias,*next_pg_found=NULL; - I8 ijif; - U8 w,w1; - U1 *bptr; - BoolU4 del_cl,skipped_update,tree_collapsed; - U8 hide_collapsed[2]; - TssStruct *win_tss=l->win_tss,*mem_tss=l->mem_tss,*tss1; - BoolU4 pg_found_present=pg_found?TRUE:FALSE,resize=FALSE; - BoolU4 extra_processing,same_win; - BoolU4 revert_default_color_eol=FALSE; - BoolU4 old_preempt=Preempt(preempt); - BoolU4 blink_flag=(Jiffies/(JIFFY_FREQ/5))&1; - GrBitMap *base=GrAlias(grbase2,win_tss); - I8 cursor_y=MIN_I8,left_margin=win_tss->win_left,right_margin=win_tss->win_right; - I8 y_plot_top,y_plot_bottom; - U1 *ptr,buf[16],ch; - U4 *u4_ptr; - I8 top_menu_left_x=0,top_menu_y=0,top_menu_row_height=FONT_HEIGHT; - I8 top_menu_right_x=win_tss->win_right*FONT_WIDTH; - I8 saved_x,saved_y; - BoolU4 use_saved_xy,full_refresh,restored_state; - - if (!l) return; -// if (!LtfCheck(l)) -// DbgStr("LtfJoin1",10000); - if (to_screen || find_cur_entry) { - recalc=TRUE; - l->recalc_start=l; - } - - i=win_refresh/10+1; - if (Bt(&l->flags,LTFf_DO_FULL_UPDATE) || - !to_screen || !(l->refresh_cnt%i) || - (l->flags<FF_BACKWARD_MOVEMENT)) - full_refresh=TRUE; - else - full_refresh=FALSE; - - if (has_cursor && full_refresh) { - if (Btr(&win_tss->crt_flags,CRTf_HAS_BEEN_RESIZED)) - resize=TRUE; - - if (Btr(&win_tss->crt_flags,CRTf_SCROLL_X)) { - if (i=right_margin-left_margin+1) - l->line_start_col=win_tss->scroll_x*(l->max_x-l->min_x+1)/i+l->min_x; - } - if (Btr(&win_tss->crt_flags,CRTf_SCROLL_Y)) { - if (i=win_tss->win_bottom-win_tss->win_top+1) - l->cur_top_line_num=win_tss->scroll_y*(l->max_y-l->min_y+1)/i+l->min_y; - } - } - x=0; y=0; - l->indent=0; - l->page_line_num=0; - l->left_margin=LTF_DEFAULT; - l->right_margin=LTF_DEFAULT; - l->header=LTF_DEFAULT; - l->footer=LTF_DEFAULT; - same_win=win_tss->win_top==l->old_win_top && - win_tss->win_bottom==l->old_win_bottom && - win_tss->win_left==l->old_win_left && - win_tss->win_right==l->old_win_right && - l->cur_entry==l->old_cur_entry && - l->cur_data_col==l->old_cur_data_col; - if (!find_cur_entry && full_refresh) { - l->x=0; - l->y=0; - } - l->flags&=~(LTFF_WORD_WRAP|LTFF_UNDERLINED|LTFF_INVERTED|LTFF_BLINK); - l->shifted_x=0; - l->shifted_y=0; - - x0=l->line_start_col; - y0=l->cur_top_line_num; - restored_state=FALSE; - if (to_screen) { - i=0; - j=0; - y_plot_top=y0-2; - y_plot_bottom=y0+2+win_tss->win_bottom-win_tss->win_top; - tss1=win_tss->next_tss; - while (tss1!=sys_update_screen_tss) { - if (tss1->win_left<=win_tss->win_left && - tss1->win_right>=win_tss->win_right && - Bt(&tss1->crt_flags,CRTf_SHOW)) { - if (tss1->win_bottom-win_tss->win_top+1>i && - tss1->win_top<=win_tss->win_top) - i=tss1->win_bottom-win_tss->win_top+1; - if (win_tss->win_bottom-tss1->win_top+1>j && - tss1->win_bottom>=win_tss->win_bottom) - j=win_tss->win_bottom-tss1->win_top+1; - } - tss1=tss1->next_tss; - } - y_plot_top+=i; - y_plot_bottom-=j; - if (cl=l->top_entry) { - while (cl->next!=l) - if (cl->ynext; - else - break; - while (cl->last!=l) - if (cl->y>=y_plot_top) - cl=cl->last; - else - break; - l->top_entry=cl; - if (l->flags & LTFF_TOP_ENTRY_COPIED && - cl!=l && - !full_refresh) { - MemCpy(&l->state_start, - &l->top_line_state_start, - offset(Ltf.state_end)- - offset(Ltf.state_start)); - w=l->w; - restored_state=TRUE; - } - } - } - if (!restored_state) { - l->text_attribute=l->start_text_attribute; - w=l->text_attribute<<8; - } - - if (recalc) { - if (to_screen) - l->flags&=~LTFF_MODIFIED; - else - l->flags|=LTFF_MODIFIED; - - if (l->cur_data_col<=l->cur_entry->min_col) - l->cur_data_col=l->cur_entry->min_col; - if (!l->recalc_start) - cl=l; //skip update - else { - cl=l->recalc_start; - if (!full_refresh) - if (l->top_entry) - cl=l->top_entry; - if (cl!=l) { - i=l->ww_lines_back; - ii=i/2; //Threshold for stopping on SOFT_CR - while (i-- && cl->btype!=LTFT_CR && - (i>ii || cl->btype!=LTFT_SOFT_CR) && - cl->flags & LTFLF_WORD_WRAP && - cl->last!=l) - cl=cl->last; - if (cl->flags & LTFLF_WORD_WRAP) - l->flags|=LTFF_WORD_WRAP; - else - l->flags&=~LTFF_WORD_WRAP; - if (cl->flags & LTFLF_UNDERLINED) { - l->flags|=LTFF_UNDERLINED; - w|=LTFLT_UNDERLINE; - } else - l->flags&=~LTFF_UNDERLINED; - if (cl->flags & LTFLF_INVERTED) { - l->flags|=LTFF_INVERTED; - w|=LTFLT_INVERT; - } else - l->flags&=~LTFF_INVERTED; - if (cl->flags & LTFLF_BLINK) { - l->flags|=LTFF_BLINK; - w|=LTFLT_BLINK; - } else - l->flags&=~LTFF_BLINK; - w|=cl->type&0x0C000000; - x=cl->x; y=cl->y; - l->indent=cl->indent; - l->page_line_num=cl->page_line_num; - l->left_margin=cl->left_margin; - l->right_margin=cl->right_margin; - } else - cl=l->dummy.next; - } - } else - cl=l->dummy.next; - if (cl==l->dummy.next) { - l->top_entry=NULL; - l->flags&=~LTFF_BACKWARD_MOVEMENT; - if (full_refresh) - l->flags&=~LTFF_HAS_SONG; - } - - if (l->dummy.next==l) { - best_cl=l; - best_col=0; - l->cur_entry=l; - l->top_entry=l; - l->cur_data_col=0; - cl=l; - - } - skipped_update=(cl==l && l->dummy.next!=l); - - extra_processing=recalc||find_cur_entry||resize; - - if (full_refresh) { - l->min_x=MAX_I4; l->min_y=MAX_I4; - l->max_x=MIN_I4; l->max_y=MIN_I4; - } - while (cl!=l) { - del_cl=FALSE; - if (cl->flags & LTFLF_SKIP) { - cl=cl->last; //for consistency handle skips the same - goto skip; - } - if (cl->flags & LTFLF_DISPLAY_CB) { - if (recalc || cl->flags & LTFLF_REFRESH_DATA) { - Free(cl->display,mem_tss); - cl->display=cl->display_cb(l,cl,mem_tss); - cl->max_col=StrLen(cl->display); - if (l->cur_entry==cl) { - if (l->cur_data_col>=cl->max_col && cl->max_col) - l->cur_data_col=cl->max_col-1; - } - } - } - if (extra_processing && full_refresh) { -word_wrap_start: - cl2=cl->next; - if (cl2->btype==LTFT_SOFT_CR) { - if (!same_win) { - if (l->cur_entry==cl2) { - l->cur_entry=cl2->next; - l->cur_data_col=l->cur_entry->min_col; - } - if (l->top_entry==cl2) - l->top_entry=cl2->next; - if (best_cl==cl2) { - best_cl=cl2->next; - best_col=0; - } - LtfDelEntry(l,cl2); - goto word_wrap_start; - } - } - if (cl->btype==LTFT_TEXT) { - if (cl->flags==cl2->flags && - cl->type==cl2->type) { - i=StrLen(cl->display); - j=StrLen(cl2->display); - ptr=MAlloc(i+j+1,mem_tss); - MemCpy(ptr,cl->display,i); - MemCpy(ptr+i,cl2->display,j+1); - Free(cl->display,mem_tss); - cl->display=ptr; - if (l->cur_entry==cl2) { - l->cur_entry=cl; - l->cur_data_col+=i; - } - if (l->top_entry==cl2) - l->top_entry=cl; - if (best_cl==cl2) { - best_cl=cl; - best_col=0; - } - LtfDelEntry(l,cl2); - goto word_wrap_start; - } - } - } - if (cl->flags & LTFLF_SCROLLING_X) - k=cl->scroll_len; - else if (Bt(ltf_display_types,cl->btype)) - k=StrLen(cl->display); - else - k=0; - use_saved_xy=FALSE; - if (cl->flags & - (LTFLF_LEFT_X|LTFLF_RIGHT_X|LTFLF_CENTER_X| - LTFLF_TOP_Y|LTFLF_BOTTOM_Y|LTFLF_CENTER_Y| - LTFLF_TOP_LEFT_MENU|LTFLF_TOP_RIGHT_MENU)) { - if (cl->flags & LTFLF_MARGIN_REL_X) { - if (cl->flags & LTFLF_LEFT_X) - x=left_margin-win_tss->win_left; - else if (cl->flags & LTFLF_RIGHT_X) - x=right_margin-(k-1)-win_tss->win_left; - else if (cl->flags & LTFLF_CENTER_X) - x=((right_margin+left_margin)>>1-k>>1-win_tss->win_left); - } else { - if (cl->flags & LTFLF_LEFT_X) - x=x0; - else if (cl->flags & LTFLF_RIGHT_X) - x=win_tss->win_right-win_tss->win_left+x0-(k-1); - else if (cl->flags & LTFLF_CENTER_X) - x=((win_tss->win_right-win_tss->win_left+x0-k)>>1); - } - if (cl->flags & LTFLF_TOP_LEFT_MENU) { - use_saved_xy=TRUE; - saved_x=x; - saved_y=y; - if (cl->btype==LTFT_TOP_LEFT_TOOLBAR) - i=cl->width; - else - i=k*FONT_WIDTH; - if (top_menu_left_x+i>top_menu_right_x) { - top_menu_y+=top_menu_row_height; - top_menu_row_height=FONT_HEIGHT; - top_menu_left_x=0; - top_menu_right_x=win_tss->win_right*FONT_WIDTH; - } - if (cl->btype==LTFT_TOP_LEFT_TOOLBAR && - cl->height>top_menu_row_height) - top_menu_row_height=cl->height; - y=top_menu_y/FONT_HEIGHT+y0; - x=x0+top_menu_left_x/FONT_WIDTH; - top_menu_left_x+=i; - } else if (cl->flags & LTFLF_TOP_RIGHT_MENU) { - use_saved_xy=TRUE; - saved_x=x; - saved_y=y; - if (cl->btype==LTFT_TOP_RIGHT_TOOLBAR) - i=cl->width; - else - i=k*FONT_WIDTH; - if (top_menu_left_x+i>top_menu_right_x) { - top_menu_y+=top_menu_row_height; - top_menu_row_height=FONT_HEIGHT; - top_menu_left_x=0; - top_menu_right_x=win_tss->win_right*FONT_WIDTH; - } - if (cl->btype==LTFT_TOP_RIGHT_TOOLBAR && - cl->height>top_menu_row_height) - top_menu_row_height=cl->height; - y=top_menu_y/FONT_HEIGHT+y0; - top_menu_right_x-=i; - x=x0+top_menu_right_x/FONT_WIDTH; - } - i=y; - if (cl->flags & LTFLF_PAGE_REL_Y) { - l->flags|=LTFF_BACKWARD_MOVEMENT; - if (cl->flags & LTFLF_TOP_Y) - y-=cl->page_line_num; - else if (cl->flags & LTFLF_BOTTOM_Y) - y+=l->page_length-cl->page_line_num; - else if (cl->flags & LTFLF_CENTER_Y) - y+=l->page_length>>1-cl->page_line_num; - } else { - l->flags|=LTFF_BACKWARD_MOVEMENT; - if (cl->flags & LTFLF_TOP_Y) - y=y0; - else if (cl->flags & LTFLF_BOTTOM_Y) - y=win_tss->win_bottom-win_tss->win_top+y0; - else if (cl->flags & LTFLF_CENTER_Y) - y=(win_tss->win_bottom-win_tss->win_top)>>1+y0; - } - if (y!=i) { - l->page_line_num+=y-i; - if (l->page_line_num<0) - l->page_line_num=l->page_length+l->page_line_num%l->page_length; - else - l->page_line_num=l->page_line_num%l->page_length; - if (l->header!=LTF_DEFAULT && - l->page_line_numheader) { - y+=l->header-l->page_line_num; - l->page_line_num=l->header; - } - if (l->footer==LTF_DEFAULT) { - if (l->page_line_num>=l->page_length) { - if (l->header==LTF_DEFAULT) - l->page_line_num=0; - else { - l->page_line_num=l->header; - y+=l->header; - } - } - } else { - if (l->page_line_num>=l->page_length-l->footer) { - y+=l->footer; - if (l->header==LTF_DEFAULT) - l->page_line_num=0; - else { - l->page_line_num=l->header; - y+=l->header; - } - } - } - } - } - - if (full_refresh &&extra_processing && k>0) { - if (l->flags & LTFF_WORD_WRAP) { - i=(right_margin+1-(x+win_tss->win_left)); //Space left ON line - ii=(x+1-l->left_margin); - if (cl->btype==LTFT_TEXT) { - if (l->cur_entry==cl->next) { - if (l->cur_data_col==cl->next->min_col) - i--; - } else { - if (l->cur_entry==cl) { - if (l->cur_data_col==i) - i--; - } - } - if (k>i) { - for (j=i;j>8-ii && j>=0;j--) - if (cl->display[j]==CH_SPACE || - cl->display[j]==CH_SHIFT_SPACE) { - i=j+1; - break; - } - if (k>i && i>0) { - cl2=MAllocIdentical(cl,mem_tss); - cl2->display=NewStr(cl->display+i,mem_tss); - InsQue(cl2,cl); - if (l->cur_entry==cl && l->cur_data_col>=i) { - l->cur_entry=cl2; - l->cur_data_col=l->cur_data_col-i; - } - cl->display[i]=0; - ptr=NewStr(cl->display,mem_tss); - Free(cl->display,mem_tss); - cl->display=ptr; - cl2=MAllocZ(sizeof(LtfEntryBase),mem_tss); - cl2->type=LTFT_SOFT_CR | cl->type & 0xFFFFFF00; - cl2->flags=cl->flags; - cl2->x=x; - cl2->y=y; - cl2->indent=l->indent; - cl2->page_line_num=l->page_line_num; - cl2->left_margin=l->left_margin; - cl2->right_margin=l->right_margin; - InsQue(cl2,cl); - k=StrLen(cl->display); - goto skip_soft_cr; - } - } - if (k==i) - goto skip_soft_cr; - } - if (k>=i && cl->btype!=LTFT_SOFT_CR && cl->btype!=LTFT_CR - && cl->btype!=LTFT_CURSOR_MOVEMENT) { - cl2=cl->last; - if (cl2->btype!=LTFT_SOFT_CR && - cl2->btype!=LTFT_CR && - cl2->btype!=LTFT_CURSOR_MOVEMENT) { - cl2=MAllocZ(sizeof(LtfEntryBase),mem_tss); - cl2->type=LTFT_SOFT_CR | cl->type & 0xFFFFFF00; - cl2->flags=LTFLF_WORD_WRAP | - cl->flags & (LTFLF_INVERTED|LTFLF_UNDERLINED| - LTFLF_BLINK|LTFLF_SKIP); - cl2->x=x; - cl2->y=y; - cl2->indent=l->indent; - cl2->page_line_num=l->page_line_num; - cl2->left_margin=l->left_margin; - cl2->right_margin=l->right_margin; - InsQue(cl2,cl->last); - if (l->left_margin==LTF_DEFAULT) - x=l->indent; - else - x=l->left_margin+l->indent; - y++; - } - cl2=cl->next; - } -skip_soft_cr: - } - } - if (full_refresh) { - cl->x=x; - cl->y=y; - cl->indent=l->indent; - cl->page_line_num=l->page_line_num; - cl->left_margin=l->left_margin; - cl->right_margin=l->right_margin; - if (xmin_x) l->min_x=x; - if (ymin_y) l->min_y=y; - - if (find_cur_entry) { - D=LtfCharDist(l,x,y); - col=0; - } - if (!l->top_entry) - if (y>=y_plot_top && to_screen) { - l->top_entry=cl; - l->w=w; - MemCpy(&l->top_line_state_start, - &l->state_start, - offset(Ltf.state_end)- - offset(Ltf.state_start)); - l->flags|=LTFF_TOP_ENTRY_COPIED; - } - } - col2=0; - - cl->type=w & 0xFF00 | cl->type & 0xFFFF00FF; - if (l->flags & LTFF_WORD_WRAP) - cl->flags|=LTFLF_WORD_WRAP; - else - cl->flags&=~LTFLF_WORD_WRAP; - if (l->flags & LTFF_UNDERLINED) { - cl->flags|=LTFLF_UNDERLINED; - w|=LTFLT_UNDERLINE; - } else { - cl->flags&=~LTFLF_UNDERLINED; - w&=~LTFLT_UNDERLINE; - } - if (l->flags & LTFF_INVERTED) { - cl->flags|=LTFLF_INVERTED; - w|=LTFLT_INVERT; - } else { - cl->flags&=~LTFLF_INVERTED; - w&=~LTFLT_INVERT; - } - if (l->flags & LTFF_BLINK) { - cl->flags|=LTFLF_BLINK; - w|=LTFLT_BLINK; - } else { - cl->flags&=~LTFLF_BLINK; - w&=~LTFLT_BLINK; - } - w=w&0xFC00FF00|(l->shifted_x & 0x1F)<<16|(l->shifted_y & 0x1F)<<21; - switch (cl->btype) { - case LTFT_PICTURE: - case LTFT_PICWORD: - case LTFT_TOP_LEFT_TOOLBAR: - case LTFT_TOP_RIGHT_TOOLBAR: - if (cl->flags & LTFLF_LINK) - w1=w & 0xFFFF0000 | l->link_attribute<<8; - else if (cl->flags & - (LTFLF_LEFT_MACRO|LTFLF_LEFT_EXP)) - w1=w & 0xFFFF0000 | l->macro_attribute<<8; - else if (cl->flags & LTFLF_TREE) - w1=w & 0xFFFF0000 | l->tree_attribute<<8; - else - w1=w; - break; - case LTFT_LINK: - w1=w & 0xFFFF0000 | l->link_attribute<<8; - break; - case LTFT_MACRO: - case LTFT_MENU_VALUE: - w1=w & 0xFFFF0000 | l->macro_attribute<<8; - break; - case LTFT_ANCHOR: - w1=w & 0xFFFF0000 | l->anchor_attribute<<8; - break; - case LTFT_TREE: - w1=w & 0xFFFF0000 | l->tree_attribute<<8; - break; - case LTFT_HIDE_START: - case LTFT_HIDE_END: - w1=w & 0xFFFF0000 | l->hidden_attribute<<8; - break; - default: - w1=w; - } - w1=w1 & 0xFFFFFF00 | cl->type & 0xF3FF0000; - if (cl==l->cur_entry) { - if (cl->btype!=LTFT_TEXT) - w1^=0xFF00; - cursor_y=cl->y; - } - - - if (cl->flags & LTFLF_REFRESH_DATA) { - if (cl->btype==LTFT_DATA || cl->btype==LTFT_CHECK_BOX) - LtfFormatData(cl); - } - - ptr=cl->display; - if (cl->flags & LTFLF_TREE) { - if (StrLen(ptr)>=2) { - if (cl->flags & LTFLF_COLLAPSED) - *ptr++='+'; - else - *ptr++='-'; - *ptr++=']'; - } - } - if (cl->btype==LTFT_CHECK_BOX) { - if (k>=3) { - *ptr++='['; - if (cl->flags & LTFLF_CHECKED) - *ptr++='X'; - else - *ptr++=' '; - *ptr++=']'; - } - } else if (cl->btype==LTFT_HIDE_START) { - if (k>=2) { - *ptr++='<'; - if (cl->flags & LTFLF_COLLAPSED) - *ptr++='+'; - else - *ptr++='-'; - } - } else if (cl->btype==LTFT_HIDE_END) { - if (k>=1) - *ptr++='>'; - } - if (Bt(ltf_display_types,cl->btype)) { - if (cl->flags & LTFLF_SCROLLING_X) { - j=StrLen(cl->display); - if (j && cl->scroll_len) { - ijif=Jiffies*FONT_WIDTH*win_tss->scroll_speed/JIFFY_FREQ; - ijif=ijif%(j*FONT_WIDTH); - w1=w1 & 0xFFE0FF00| - ((FONT_WIDTH-1-ijif%FONT_WIDTH)<<16); -#assert FONT_WIDTH==8 - ijif>>=3; - ptr=cl->display; - for (k=0;kscroll_len;k++) { - ch=ptr[(ijif+k)%j]; - if (!Bt(displayable_chars_bitmap,ch)) ch='.'; - if (to_screen) { - if (cl->flags & LTFLF_BORDER_PLOT && - !Bt(&win_tss->crt_flags,CRTf_NO_BORDER)) - PlotBorderChar(win_tss,w1+ch,x-x0,y-y0); - else - PlotWinChar(win_tss,w1+ch,x-x0,y-y0); - } - x++; - } - } - if (find_cur_entry) { - D=LtfCharDist(l,cl->x,cl->y); - col=cl->min_col; - } - col2=cl->scroll_len; //TODO This is flawed - } else { - ptr=cl->display; - if (cl->flags & LTFLF_BORDER_PLOT && - !Bt(&win_tss->crt_flags,CRTf_NO_BORDER)) { - while (ch=*ptr++) { - if (to_screen) - PlotBorderChar(win_tss,w1+ch,x-x0,y-y0); - else - if (find_cur_entry) { - d2=LtfCharDist(l,x,y); - if (d2=y_plot_top && y<=y_plot_bottom) - PlotWinStr2(win_tss,ptr,k,w1,x-x0,y-y0); - col2+=k; - x+=k; - } else { - if (find_cur_entry) { - while (k--) { - d2=LtfCharDist(l,x,y); - if (d2btype) { - case LTFT_TEXT: - if (!col2) { - if (!(cl->flags & LTFLF_TREE) && recalc) - del_cl=TRUE; - } - break; - case LTFT_HEX_EDIT: - if (cl->flags & LTFLF_DATA_IS_PTR) - bptr=cl->data; - else - bptr=&cl->data; - k=cl->hex_edit_width; //columns - for (i=0;ilen;i=i+k) { - if (cl->flags & LTFLF_ZERO_BASED) - SPrintF(buf,"%08tX ",i); - else - SPrintF(buf,"%08tX ",bptr); - ptr=buf; - while (ch=*ptr++) { - if (to_screen) { - if (cl->flags & LTFLF_BORDER_PLOT && - !Bt(&win_tss->crt_flags,CRTf_NO_BORDER)) - PlotBorderChar(win_tss,w1+ch,x-x0,y-y0); - else - PlotWinChar(win_tss,w1+ch,x-x0,y-y0); - } - if (find_cur_entry) { - d2=LtfCharDist(l,x,y); - if (d2cl->len) k=cl->len-i; - for (j=0;jflags & LTFLF_BORDER_PLOT && - !Bt(&win_tss->crt_flags,CRTf_NO_BORDER)) - PlotBorderChar(win_tss,w1+ch,x-x0,y-y0); - else - PlotWinChar(win_tss,w1+ch,x-x0,y-y0); - } - if (find_cur_entry) { - d2=LtfCharDist(l,x,y); - if (d2hex_edit_width-k)*3; - for (j=0;jflags & LTFLF_BORDER_PLOT && - !Bt(&win_tss->crt_flags,CRTf_NO_BORDER)) - PlotBorderChar(win_tss,w1+ch,x-x0,y-y0); - else - PlotWinChar(win_tss,w1+ch,x-x0,y-y0); - } - if (find_cur_entry) { - d2=LtfCharDist(l,x,y); - if (d2hex_edit_width*3+k+9; - } - break; - case LTFT_TAB: - k=(x+8) & ~7; - if (cl->flags & LTFLF_BORDER_PLOT && - !Bt(&win_tss->crt_flags,CRTf_NO_BORDER)) { - while (x=y_plot_top && y<=y_plot_bottom) - PlotWinStr2(win_tss,ltf_spaces,k,w1,x-x0,y-y0); - x+=k; - } else { - if (find_cur_entry) { - while (k--) { - d2=LtfCharDist(l,x,y); - if (d2=y_plot_top && y<=y_plot_bottom) - PlotWinAttr(win_tss, - win_tss->win_right-win_tss->win_left+1-(x-x0), - w&0xFF00,x-x0,y-y0); - y++; - l->page_line_num++; -start_of_line: - if (l->left_margin==LTF_DEFAULT) - x=l->indent; - else - x=l->indent+l->left_margin; - if (revert_default_color_eol) { - revert_default_color_eol=FALSE; - w=w & 0xF000 | l->text_attribute<<8 & 0xF00; - } -adjust_xy: - i=l->indent+l->left_margin; - if (xpage_line_num<0) - l->page_line_num=l->page_length+l->page_line_num%l->page_length; - else { - if (l->page_line_num>=l->page_length) { - l->page_line_num-=l->page_length; - if (l->page_line_num>=l->page_length) - l->page_line_num=l->page_line_num%l->page_length; - } - } - if (l->header!=LTF_DEFAULT) { - if (l->page_line_numheader) { - y+=l->header-l->page_line_num; - l->page_line_num=l->header; - goto start_of_line; - } - } - if (l->footer==LTF_DEFAULT) { - if (l->page_line_num>=l->page_length) { - if (l->header==LTF_DEFAULT) - l->page_line_num=0; - else { - l->page_line_num=l->header; - y+=l->header; - } - goto start_of_line; - } - } else { - if (l->page_line_num>=l->page_length-l->footer) { - y+=l->footer; - if (l->header==LTF_DEFAULT) - l->page_line_num=0; - else { - l->page_line_num=l->header; - y+=l->header; - } - goto start_of_line; - } - } - cl->left_margin=l->left_margin; - cl->right_margin=l->right_margin; - cl->page_line_num=l->page_line_num; - break; - case LTFT_CURSOR_MOVEMENT: - l->flags|=LTFF_BACKWARD_MOVEMENT; - x+=cl->cursor_x_offset; - if (cl->flags & LTFLF_PAGE_REL_Y) { - i=l->page_line_num; - if (cl->flags & LTFLF_TOP_Y) - l->page_line_num=0; - else if (cl->flags & LTFLF_BOTTOM_Y) - l->page_line_num=l->page_length-1; - else if (cl->flags & LTFLF_CENTER_Y) - l->page_line_num=l->page_length>>1; - y+=l->page_line_num-i; - } - y+=cl->cursor_y_offset; - l->page_line_num+=cl->cursor_y_offset; - goto adjust_xy; - case LTFT_PAGE_BREAK: - l->flags|=LTFF_BACKWARD_MOVEMENT; - y+=l->page_length-cl->page_line_num; - l->page_line_num=0; - goto start_of_line; - case LTFT_INDENT: - if (cl->flags & LTFLF_LEFT_X) - l->indent=cl->attr; - else - l->indent+=cl->attr; - goto start_of_line; - case LTFT_PAGE_LENGTH: - l->page_length=cl->attr; - goto adjust_xy; - case LTFT_LEFT_MARGIN: - l->left_margin=cl->attr; - left_margin=win_tss->win_left+l->left_margin; - goto start_of_line; - case LTFT_RIGHT_MARGIN: - if (cl->flags & LTFLF_WIN_REL) - l->right_margin=win_tss->win_right-win_tss->win_left-cl->attr; - else - l->right_margin=cl->attr; - right_margin=win_tss->win_left+l->right_margin; - goto adjust_xy; - case LTFT_HEADER: - l->header=cl->attr; - goto adjust_xy; - case LTFT_FOOTER: - l->footer=cl->attr; - goto adjust_xy; - case LTFT_FOREGROUND_COLOR: - if (cl->attr==LTF_DEFAULT) - w=w & 0xF000 | l->text_attribute<<8 & 0xF00; - else - w=w & 0xF000 | cl->attr<<8; - break; - case LTFT_BACKGROUND_COLOR: - if (cl->attr==LTF_DEFAULT) - w=w & 0xF00 | l->text_attribute<<8 & 0xF000; - else - w=w & 0xF00 | cl->attr<<12; - if (to_screen) - win_tss->text_attribute=w>>8&0xFF; - break; - case LTFT_DEFAULT_FOREGROUND_COLOR: - if (cl->attr==LTF_DEFAULT) - w=w & 0xF000 | l->text_attribute<<8 & 0xF00; - else - w=w & 0xF000 | cl->attr <<8; - l->text_attribute=l->text_attribute & 0xF0 | cl->attr; - break; - case LTFT_DEFAULT_BACKGROUND_COLOR: - if (cl->attr==LTF_DEFAULT) - w=w & 0xF00 | l->text_attribute<<8 & 0xF000; - else - w=w & 0xF00 | cl->attr <<12; - l->text_attribute=l->text_attribute & 0xF | cl->attr<<4; - if (to_screen) - win_tss->text_attribute=w>>8&0xFF; - break; - case LTFT_LINK_FOREGROUND: - l->link_attribute=l->link_attribute & 0xF0 | cl->attr; - break; - case LTFT_LINK_BACKGROUND: - l->link_attribute=l->link_attribute & 0xF | cl->attr<<4; - break; - case LTFT_MACRO_FOREGROUND: - l->macro_attribute=l->macro_attribute & 0xF0 | cl->attr; - break; - case LTFT_MACRO_BACKGROUND: - l->macro_attribute=l->macro_attribute & 0xF | cl->attr<<4; - break; - case LTFT_ANCHOR_FOREGROUND: - l->anchor_attribute=l->anchor_attribute & 0xF0 | cl->attr; - break; - case LTFT_ANCHOR_BACKGROUND: - l->anchor_attribute=l->anchor_attribute & 0xF | cl->attr<<4; - break; - case LTFT_HIDDEN_FOREGROUND: - l->hidden_attribute=l->hidden_attribute & 0xF0 | cl->attr; - break; - case LTFT_HIDDEN_BACKGROUND: - l->hidden_attribute=l->hidden_attribute & 0xF | cl->attr<<4; - break; - case LTFT_TREE_FOREGROUND: - l->tree_attribute=l->tree_attribute & 0xF0 | cl->attr; - break; - case LTFT_TREE_BACKGROUND: - l->tree_attribute=l->tree_attribute & 0xF | cl->attr<<4; - break; - case LTFT_USER_FOREGROUND: - if (cl->attr==LTF_DEFAULT) { - w=w & 0xF000 | l->user_attribute<<8 & 0xF00; - if (y==cursor_y) { - l->cur_entry=cl->next; - l->cur_data_col=l->cur_entry->min_col; - } - } else - l->user_attribute=l->user_attribute & 0xF0 | cl->attr; - break; - case LTFT_USER_BACKGROUND: - if (cl->attr==LTF_DEFAULT) { - w=w & 0xF00 | l->user_attribute<<8 & 0xF000; - if (y==cursor_y) { - l->cur_entry=cl->next; - l->cur_data_col=l->cur_entry->min_col; - } - } else - l->user_attribute=l->user_attribute & 0xF | cl->attr<<4; - break; - case LTFT_WORD_WRAP: - if (cl->attr) - l->flags|=LTFF_WORD_WRAP; - else - l->flags&=~LTFF_WORD_WRAP; - break; - case LTFT_UNDERLINED: - if (cl->attr) - l->flags|=LTFF_UNDERLINED; - else - l->flags&=~LTFF_UNDERLINED; - break; - case LTFT_INVERTED: - if (cl->attr) - l->flags|=LTFF_INVERTED; - else - l->flags&=~LTFF_INVERTED; - break; - case LTFT_BLINK: - if (cl->attr) - l->flags|=LTFF_BLINK; - else - l->flags&=~LTFF_BLINK; - break; - case LTFT_SHIFTED_X: - l->shifted_x=cl->attr; - break; - case LTFT_SHIFTED_Y: - l->shifted_y=cl->attr; - break; - case LTFT_CURSOR: - if (!find_cur_entry && !(l->flags & LTFF_NO_CURSOR)) { - l->cur_entry=cl->next; - l->cur_data_col=l->cur_entry->min_col; - } - del_cl=TRUE; - break; - case LTFT_PICTURE: - case LTFT_PICWORD: - case LTFT_TOP_LEFT_TOOLBAR: - case LTFT_TOP_RIGHT_TOOLBAR: - if (!cl->bin_data) - cl->bin_data=LtfFindBin(l,cl->bin_num); - if (cl->bin_data) { - GrReset(base); - base->flags&=~(BMF_DONT_DRAW|BMF_LOCATE_NEAREST|BMF_TRANSFORMATION); - if (!to_screen) - base->flags|=BMF_DONT_DRAW; - i=((w1>>12)&0xF)^(win_tss->text_attribute>>4 & 0xF); - if (w1 & LTFLT_SELECTED) - i^=0xF; - if (w1 & LTFLT_INVERT) - i^=0xF; - if (blink_flag && (cl==l->cur_entry || w1<FLT_BLINK)) - i^=0xF; - base->color=i; - if (find_cur_entry) - base->flags|=BMF_LOCATE_NEAREST; - base->nearest_sub_grelem=0; - base->nearest_dist=MAX_I8; - if (to_screen && (l->cur_GrElem==cl->bin_data->data)) { - base->flags|=BMF_LOCATE_NEAREST; - base->cur_x=ipx; - base->cur_y=ipy; - } else { - base->cur_x=(l->x-x0)*FONT_WIDTH+win_tss->win_pixel_left; - base->cur_y=(l->y-y0)*FONT_HEIGHT+win_tss->win_pixel_top; - } - base->cur_z=0; - base->bkcolor=i; - if (cl->flags & LTFLF_FROM_START) - GrElemsPlot(base,(x-k-x0)*FONT_WIDTH, //TODO: scrolling text is not length k - (y-y0)*FONT_HEIGHT,0,cl->bin_data->data); - else - GrElemsPlot(base,(x-x0)*FONT_WIDTH, - (y-y0)*FONT_HEIGHT,0,cl->bin_data->data); - if (to_screen && (l->cur_GrElem==cl->bin_data->data)) - l->cur_sub_grelem=base->nearest_sub_grelem; - base->flags&=~(BMF_LOCATE_NEAREST|BMF_DONT_DRAW); - if (base->nearest_dist<=D) { - D=base->nearest_dist; - col=cl->min_col; - } - } - break; - case LTFT_BPT: - w=w & 0xF000 | RED<<8; - revert_default_color_eol=TRUE; - break; - case LTFT_SONG: - if (sys_cur_focus_task==win_tss && to_screen) { - if (StrCmp(cur_song,cl->song)) { - AFree(cur_song); - ResetMusicSettings; - cur_song=ANewStr(cl->song); - } - } - l->flags|=LTFF_HAS_SONG; - break; - case LTFT_CLEAR: - if (recalc) { - if (pg_found==cl) { - del_cl=TRUE; - pg_found=NULL; - } else - next_pg_found=cl; - } - break; - } - - if (cl->flags & LTFLF_HAS_BORDER) { - if (cl->flags & LTFLF_SOLID_BORDER) - DrawBorder(win_tss,1,cl->x-x0,x-x0-1,cl->y-y0,y-y0,w1.u1[1],TRUE); - else - DrawBorder(win_tss,0,cl->x-x0,x-x0-1,cl->y-y0,y-y0,w1.u1[1],TRUE); - } - if (full_refresh) { - switch (cl->btype) { - case LTFT_CHECK_BOX: - case LTFT_HIDE_START: - cl->max_col=2; - break; - case LTFT_TREE: - case LTFT_BUTTON: - case LTFT_LINK: - case LTFT_MENU_VALUE: - case LTFT_MACRO: - case LTFT_HIDE_END: - cl->max_col=1; - break; - default: - cl->max_col=(cl->flags & LTFLF_TREE) ? 1:col2; - } - - if (x>l->max_x) l->max_x=x; - if (y>l->max_y) l->max_y=y; - if (D<=best_d) { - best_d=D; - best_cl=cl; - best_col=col; - } - if (cl->flags & LTFLF_TREE) { - if (cl->flags & LTFLF_ALIAS) - alias=cl; - else - alias=NULL; - if (cl->flags & LTFLF_COLLAPSED) - tree_collapsed=TRUE; - else - tree_collapsed=FALSE; - cl2=cl->next; - while (cl2!=l && cl2->btype!=LTFT_INDENT && !(cl2->flags & LTFLF_TREE)) - cl2=cl2->next; - if (cl2->btype==LTFT_INDENT) { - i=l->indent; - j=i; - do { - if (tree_collapsed) - cl2->flags|=LTFLF_SKIP; - else - cl2->flags&=~LTFLF_SKIP; - if (alias && cl2==l->cur_entry && Bt(ltf_display_types,cl2->btype)) { - Free(alias->display,mem_tss); - alias->display=MAlloc(StrLen(cl2->display)+8,mem_tss); - alias->display[0]='+'; - alias->display[1]=']'; - alias->display[2]=CH_SPACE; - StrCpy(alias->display+3,cl2->display); - alias->max_col=cl2->max_col+3; - } - if (cl2->btype==LTFT_INDENT) { - if (cl2->flags & LTFLF_LEFT_X) - j=cl2->attr; - else - j+=cl2->attr; - } - cl2=cl2->next; - } while (cl2!=l && j>i); - } - } - if (cl->btype == LTFT_HIDE_START) { - if (cl->flags & LTFLF_ALIAS) - alias=cl; - else - alias=NULL; - cl2=cl->next; - Btr(hide_collapsed,0); - j=1; - AssignBit(hide_collapsed,j,cl->flags & LTFLF_COLLAPSED); - while (cl2!=l && j>0) { - if (Bt(hide_collapsed,j)) - cl2->flags|=LTFLF_SKIP; - else - cl2->flags&=~LTFLF_SKIP; - if (cl2->btype==LTFT_HIDE_START) { - j++; - AssignBit(hide_collapsed,j,cl2->flags & LTFLF_COLLAPSED); - if (Bt(hide_collapsed,j-1)) - Bts(hide_collapsed,j); - } else if (cl2->btype==LTFT_HIDE_END) { - j--; - if (Bt(hide_collapsed,j)) - cl2->flags|=LTFLF_SKIP; - else - cl2->flags&=~LTFLF_SKIP; - } - cl2=cl2->next; - } - } - } - -skip: - cl2=cl->next; - while (cl2!=l && cl2->flags & LTFLF_SKIP) { - if (cl2==l->cur_entry) { - l->cur_entry=cl2->next; - l->cur_data_col=l->cur_entry->min_col; - } - if (full_refresh) { - cl2->x=x; - cl2->y=y; - cl2->indent=l->indent; - cl2->page_line_num=l->page_line_num; - cl2->left_margin=l->left_margin; - cl2->right_margin=l->right_margin; - cl2->type=w & 0xFF00 | cl2->type & 0xFFFF00FF; - if (l->flags & LTFF_WORD_WRAP) - cl2->flags|=LTFLF_WORD_WRAP; - else - cl2->flags&=~LTFLF_WORD_WRAP; - - if (l->flags & LTFF_UNDERLINED) { - cl2->flags|=LTFLF_UNDERLINED; - w|=LTFLT_UNDERLINE; - } else { - cl2->flags&=~LTFLF_UNDERLINED; - w&=~LTFLT_UNDERLINE; - } - - if (l->flags & LTFF_INVERTED) { - cl2->flags|=LTFLF_INVERTED; - w|=LTFLT_INVERT; - } else { - cl2->flags&=~LTFLF_INVERTED; - w&=~LTFLT_INVERT; - } - if (l->flags & LTFF_BLINK) { - cl2->flags|=LTFLF_BLINK; - w|=LTFLT_BLINK; - } else { - cl2->flags&=~LTFLF_BLINK; - w&=~LTFLT_BLINK; - } - } - cl2=cl2->next; - } - - if (full_refresh) { - if (del_cl || pg_found || num_entriesflags & LTFLF_HOLD)) { - if (cl==l->cur_entry) { - l->cur_entry=cl2; - l->cur_data_col=cl2->min_col; - } - if (cl==l->top_entry) - l->top_entry=cl2; - if (best_cl==cl) { - best_cl=cl2; - best_col=cl2->min_col; //TODO: might be bug - } - LtfDelEntry(l,cl); - } - } - } - if (use_saved_xy) { - x=saved_x; - y=saved_y; - } - num_entries++; - if (!full_refresh) - if (cl->y>y_plot_bottom) - break; - cl=cl2; - } - - if (full_refresh) { - if (l->min_x>l->max_x) { - l->max_x=0; - l->min_x=0; - } - if (l->min_y>l->max_y) { - l->max_y=0; - l->min_y=0; - } - - //Update header - if (!skipped_update) { - cl->x=x; - cl->y=y; - cl->indent=l->indent; - cl->page_line_num=l->page_line_num; - cl->left_margin=l->left_margin; - cl->right_margin=l->right_margin; - cl->type=w & 0xFF00 | cl->type & 0xFFFF00FF; - if (find_cur_entry) { - D=LtfCharDist(l,x,y); - if (Dflags & LTFF_MIN_SIZE) { - i=win_tss->win_left+l->max_x-l->min_x+1; - if (win_tss->win_right!=i) { - SetWinHorz(win_tss,win_tss->win_left,i); - LBts(&sys_semas[SYS_SEMA_CLEAR_SCREEN_TEXT],0); - } - i=win_tss->win_top+l->max_y-l->min_y+1; - if (win_tss->win_bottom!=i) { - SetWinVert(win_tss,win_tss->win_top,i); - LBts(&sys_semas[SYS_SEMA_CLEAR_SCREEN_TEXT],0); - } - } - if (find_cur_entry) { - l->cur_entry=best_cl; - l->cur_data_col=best_col; - LtfFormBackward(l); - - //We need this because text coordinates are used - if (best_dbest_d=best_d; - } - - if (l->cur_entry->btype!=LTFT_HEX_EDIT) { - l->y=l->cur_entry->y; - l->x=l->cur_entry->x+l->cur_data_col; - } else { - l->y=l->cur_entry->y+l->cur_data_col/3/l->cur_entry->hex_edit_width; - x=l->cur_data_col%(l->cur_entry->hex_edit_width*3); - i=x/l->cur_entry->hex_edit_width; - l->x=l->cur_entry->x+9; - if (i<2) - l->x+=x>>1*3+(x&1); - else - l->x+=l->cur_entry->hex_edit_width*3+ - (x-l->cur_entry->hex_edit_width<<1); - } - l->line=l->y+1; - l->col=l->x+1; - - if (has_cursor) { - if (l->cur_top_line_num+win_tss->win_bottom-win_tss->win_top>l->max_y) - l->cur_top_line_num=l->max_y-(win_tss->win_bottom-win_tss->win_top); - if (l->cur_top_line_nummin_y) - l->cur_top_line_num=l->min_y; - - if (l->y-l->cur_top_line_num>win_tss->win_bottom-win_tss->win_top) - l->cur_top_line_num=l->y-(win_tss->win_bottom-win_tss->win_top); - if (l->y-l->cur_top_line_num<0) - l->cur_top_line_num=l->y; - - if (l->line_start_col+win_tss->win_right-win_tss->win_left>l->max_x) - l->line_start_col=l->max_x-(win_tss->win_right-win_tss->win_left); - if (l->line_start_colmin_x) - l->line_start_col=l->min_x; - - if (l->x-l->line_start_col>win_tss->win_right-win_tss->win_left) - l->line_start_col=l->x-(win_tss->win_right-win_tss->win_left); - if (l->x-l->line_start_col<0) - l->line_start_col=l->x; - } - if (recalc) - l->recalc_start=NULL; - } - if (to_screen && has_cursor) { - y=l->y-l->cur_top_line_num+win_tss->win_top; - x=l->x-l->line_start_col+win_tss->win_left; - if (x<=win_tss->win_right && y<=win_tss->win_bottom && - x>=0 && y>=0 && - xmax_x-l->min_x+1) - win_tss->scroll_x=(((l->line_start_col-l->min_x)* - (win_tss->win_right-win_tss->win_left+1)+i-1)/i); - - if (i=l->max_y-l->min_y+1) - win_tss->scroll_y=((l->cur_top_line_num-l->min_y)* - (win_tss->win_bottom-win_tss->win_top+1)+i-1)/i; - } - if (!Bt(&win_tss->crt_flags,CRTf_NO_BORDER)) { - PlotBorderChar(win_tss,140+(win_tss->border_attribute<<8), - (win_tss->win_right-win_tss->win_left+1),win_tss->scroll_y); - PlotBorderChar(win_tss,140+(win_tss->border_attribute<<8), - win_tss->scroll_x,(win_tss->win_bottom-win_tss->win_top+1)); - } - } - if (!same_win && extra_processing) { - l->old_win_top=win_tss->win_top; - l->old_win_bottom=win_tss->win_bottom; - l->old_win_left=win_tss->win_left; - l->old_win_right=win_tss->win_right; - l->old_cur_entry=l->cur_entry; - l->old_cur_data_col=l->old_cur_data_col; - } -// if (!LtfCheck(l)) -// DbgStr("LtfJoin2",10000); - if (l->flags & LTFF_HAS_SONG) - Bts(&win_tss->task_flags,TSSf_HAS_SONG); - if (recalc && full_refresh) { - if (!num_del_entries && !pg_found_present) { - l->recalc_start=l; - if (next_pg_found) - LtfUpdateWinJoin(l,to_screen,has_cursor,recalc,find_cur_entry,preempt,next_pg_found,0); - else { - i=num_entries-l->max_entries; - if (i>1024) - LtfUpdateWinJoin(l,to_screen,has_cursor,recalc,find_cur_entry,preempt,NULL,i); - } - } - } - if (to_screen) - l->refresh_cnt++; - Preempt(old_preempt); - GrDel(base); -} - -public I8 LtfWordsToPics(Ltf *l=NULL,LtfEntry *start=NULL) -{ - PicWordEntry *temppw; - I1 *ptr,*ptr2,ch,*st,cnt=0; - TssStruct *mem_tss; - BoolU4 old_preempt=Preempt(OFF); - LtfBinEntry *tempb; - LtfEntry *cl,*cl2,*ll; - if (!l) { - l=Fs->cur_ltf; - if (!l) return 0; - } - mem_tss=l->mem_tss; - if (start) - cl=start; - else - cl=l->dummy.next; - while (cl!=l) { - if (cl->btype==LTFT_TEXT && - !(cl->flags & ~(LTFLF_WORD_WRAP |LTFLF_UNDERLINED | - LTFLF_INVERTED | LTFLF_BLINK | LTFLF_SKIP))) { - ptr=cl->display; - while (*ptr) { - while (*ptr==CH_SPACE || *ptr==CH_SHIFT_SPACE) - ptr++; - ptr2=ptr; - while ((ch=*ptr) && ch!=CH_SPACE && ch!=CH_SHIFT_SPACE) - ptr++; - if (*ptr2) { - *ptr=0; - if (temppw=FindLocalHash(ptr2,HTT_PIC_WORD)) { - *ptr=ch; - *ptr2=0; - cl2=MAllocIdentical(cl,mem_tss); - cl2->display=NewStr(ptr,mem_tss); - cl ->max_col=StrLen(cl ->display); - cl2->max_col=StrLen(cl2->display); - InsQue(cl2,cl); - - cnt++; - tempb=MAllocZ(sizeof(LtfBinEntry),mem_tss); - tempb->type=LTFBT_GRELEM; - tempb->size=temppw->size; - tempb->data=MAlloc(temppw->size,mem_tss); - MemCpy(tempb->data,temppw->grelem,temppw->size); - tempb->num=l->cur_bin_num; - InsQue(tempb,l->bin_root.last); - if (temppw->txt) - st=MSPrintF(temppw->txt,l->cur_bin_num++); - else - st=MSPrintF("PW,\"%*ts\",\"%s\",%d,%d,%d",temppw->width/FONT_WIDTH," ",temppw->str,l->cur_bin_num++,temppw->width,temppw->height); - ll=ParseDollarCmd(l,st); - Free(st); - ll->bin_data=tempb; - ll->aux_str=NewStr(temppw->str,mem_tss); - InsQue(ll,cl); - - if (l->cur_entry==cl && l->cur_data_col>=ptr2-cl->display) { - if (l->cur_data_col>=ptr-cl->display) { - l->cur_entry=cl2; - l->cur_data_col-=ptr-cl->display; - } else { - l->cur_entry=ll; - l->cur_data_col=0; - } - } - ptr=cl2->display; - cl=cl2; - } else - *ptr=ch; - } - } - } - cl=cl->next; - } - Preempt(old_preempt); - return cnt; -} - -public void LtfRecalc(Ltf *l=NULL) -{ - BoolU4 old_preempt=Preempt(OFF); - if (!l) { - l=Fs->cur_ltf; - if (!l) { - Preempt(old_preempt); - return; - } - } - if (l->recalc_start) { - if (l->recalc_start!=l) - LtfRemoveSoftCRs(l,l->recalc_start); - if (!(l->flags<FF_NO_PICWORDS) && - !(l->flags&(LTFF_PLAIN_TEXT|LTFF_PLAIN_TEXT_WITH_TABS))) { - if (l->recalc_start!=l) - LtfWordsToPics(l,l->recalc_start); - else - LtfWordsToPics(l,l->dummy.next); - } - } - LtfUpdateWinJoin(l,FALSE,FALSE,TRUE,FALSE,OFF); - Preempt(old_preempt); -} - -public void LtfSafeInsert(Ltf *l,I1 *st) -{ //This is necessary when hidden text might screw-up - //inserts. It does them all-at-once. - BoolU4 old_preempt=Preempt(OFF); - U8 old_flags; - if (!l) { - l=Fs->cur_ltf; - if (!l) { - Preempt(old_preempt); - return; - } - } - old_flags=l->flags; - l->flags|=LTFF_NO_CURSOR; - LtfPutSExt(l,st); - LtfRecalc(l); - l->flags=old_flags; - Preempt(old_preempt); -} - -public void LtfCenter(Ltf *l=NULL) -{ - BoolU4 old_preempt=Preempt(OFF); - TssStruct *tss; - if (!l) { - l=Fs->cur_ltf; - if (!l) { - Preempt(old_preempt); - return; - } - } - tss=l->win_tss; -//TODO: l->recalc_start=l; - LtfRecalc(l); - l->cur_top_line_num=l->y-(tss->win_bottom-tss->win_top)>>1; - Preempt(old_preempt); -} - -public void LtfBottom(Ltf *l=NULL) -{ - BoolU4 old_preempt=Preempt(OFF); - if (!l) { - l=Fs->cur_ltf; - if (!l) { - Preempt(old_preempt); - return; - } - } - l->cur_entry=l; - l->cur_data_col=0; - l->recalc_start=l; - LtfRecalc(l); - Preempt(old_preempt); -} - -public void LtfClear(Ltf *l=NULL) -{ - BoolU4 old_preempt=Preempt(OFF); - if (!l) { - l=Fs->cur_ltf; - if (!l) { - Preempt(old_preempt); - return; - } - } - LtfPutSExt(l,"$$CL$$"); - l->recalc_start=l; - LtfRecalc(l); - Preempt(old_preempt); -} - -public Ltf *LtfUpdateCurLtf(TssStruct *tss) -{ - Ltf *main; - if (main=tss->cur_ltf) { - if (tss->double_buf_cur_ltf) - main=tss->double_buf_cur_ltf; - LtfUpdateWinJoin(main,TRUE,TRUE,FALSE,FALSE,ON); - } - return main; -} - -public Ltf *LtfUpdateAuxLtf(TssStruct *tss) -{ - Ltf *aux; - if (aux=tss->aux_ltf) { - if (tss->double_buf_aux_ltf) - aux=tss->double_buf_aux_ltf; - LtfUpdateWinJoin(aux,TRUE,FALSE,FALSE,FALSE,ON); - } - return aux; -} - -public void LtfUpdateBothLtf(TssStruct *tss) -{ - LTPartition *p; - U1 attr=0; - Ltf *main,*aux; - - ClearWinText(tss); - if (main=LtfUpdateCurLtf(tss)) { - if (main->flags & LTFF_ATTR_BY_PARTITION) { - p=tss->cur_partition; - attr=p->text_attr; - } - if (main->flags & LTFF_ATTR_BY_FILENAME) { - try { - p=DriveToPartition(main->filename.name[0]); - } catch { - p=NULL; - Fs->catch_except=TRUE; - } - if (p) - attr=p->text_attr; - } - } - - if ((attr & 0xF)!=(attr>>4)) - tss->border_attribute=attr; - if (aux=LtfUpdateAuxLtf(tss)) { - if ((attr & 0xF)!=(attr>>4)) - aux->start_text_attribute=attr; - } -} - -ext[EXT_LTF_RECALC]=&LtfRecalc; - \ No newline at end of file diff --git a/LT/Adam/Math.APZ b/LT/Adam/Math.APZ deleted file mode 100644 index e7ea0c7..0000000 --- a/LT/Adam/Math.APZ +++ /dev/null @@ -1,66 +0,0 @@ -#help_index "Math" - -public double Abs(double i) -{ - if (i<0) - return -i; - else - return i; -} - -public double Sign(double i) -{ - if (i<0) - return -1.0; - else if (!i) - return 0.0; - else - return 1.0; -} - -public double Sqr(double d) -{ - return d*d; -} - -public void R2P(double *mag,double *arg,double x,double y) -{ //Rect to polar - *arg=Arg(x,y); - *mag=Sqrt(x*x+y*y); -} - -public void P2R(double *x,double *y,double mag,double arg) -{ //Polar to Rect - *x=mag*Cos(arg); - *y=mag*Sin(arg); -} - -public double Unwrap(double theta,double base=-pi) -{ - double result=theta%pi2; - if (resultbase+pi2) result-=pi2; - return result; -} - -public I8 SignI8(I8 i) -{ - if (i<0) - return -1; - else if (!i) - return 0; - else - return 1; -} - -public I8 SqrI8(I8 i) -{ - return i*i; -} - -public I8 DistI8(I8 x1,I8 y1,I8 x2,I8 y2) -{ - I8 dx=x1-x2,dy=y1-y2; - return dx*dx+dy*dy; -} -#help_index "" diff --git a/LT/Adam/Message.APZ b/LT/Adam/Message.APZ deleted file mode 100644 index a07a5f4..0000000 --- a/LT/Adam/Message.APZ +++ /dev/null @@ -1,142 +0,0 @@ -#help_index "Messages" - -void InputFilterTask() -{ - I1 *st; - TssCmdStruct *tempc,*tempc1; - BoolU4 old_filter; - U8 old_flags=GetFlags; - InitUserTask; - Bts(&Fs->task_flags,TSSf_INPUT_FILTER_TASK); - old_filter=Bts(&Fs->last_input_filter_tss->task_flags,TSSf_FILTER_INPUT); - AssignBit(&Fs->task_flags,TSSf_FILTER_INPUT,old_filter); - while (TRUE) { - HandleServantCmds; - Cli; - tempc1=&Fs->next_servant_cmd; - tempc=tempc1->next; - if (tempc==tempc1) - break; - else { - if (tempc->cmd_code==TSSCT_TEXT_INPUT) { - RemQue(tempc); - SetFlags(old_flags); - st=tempc->data; - AFree(tempc); - Preempt(ON); - try - ExecuteStr(st); - catch - Fs->catch_except=TRUE; - Preempt(OFF); - AFree(st); - } else - break; - } - } - Fs->next_input_filter_tss->last_input_filter_tss=Fs->last_input_filter_tss; - Fs->last_input_filter_tss->next_input_filter_tss=Fs->next_input_filter_tss; - if (!old_filter) - Btr(&Fs->last_input_filter_tss->task_flags,TSSf_FILTER_INPUT); - SetFlags(old_flags); -} - -public U8 ScanMsg(I8 *param1,I8 *param2,U8 mask=-2,TssStruct *tss=NULL) -{ - U8 result,old_flags; - TssCmdStruct *tempc,*tempc1; - BoolU4 old_preempt; - if (!tss) tss=Fs; - old_flags=GetFlags; - tempc1=&tss->next_servant_cmd; - while (TRUE) { - if (tss==Fs) - HandleServantCmds; - Cli; - tempc=tempc1->next; - if (tempc==tempc1) - break; - else { - if (tempc->cmd_code==TSSCT_MSG) { - RemQue(tempc); - SetFlags(old_flags); - result=tempc->msg_code; - *param1=tempc->p1; - *param2=tempc->p2; - AFree(tempc); - if (Bt(&mask,result)) - goto done_msg; - } - } - SetFlags(old_flags); - } - if (tss->rmt_chnl) { - old_preempt=Preempt(OFF); -start_rmt_msg: - if (Jiffies>=tss->rmt_chnl->null_msg_jiffy) { - if (result=RmtGetMsg(tss->rmt_chnl,param1,param2)) { - if (Bt(&mask,result)) { - Preempt(old_preempt); - return result; - } else - goto start_rmt_msg; - } - } - Preempt(old_preempt); - } - result=0; - *param1=0; - *param2=0; - if (tss->parent_tss) { - if (tss->parent_tss->popup_tss==tss) { - SetFlags(old_flags); - return ScanMsg(param1,param2,mask,tss->parent_tss); - } - } -done_msg: - SetFlags(old_flags); - return result; -} - -public U8 FlushMsgs(TssStruct *tss=NULL) -{ - U8 result=0,p1,p2; - while (ScanMsg(&p1,&p2,-2,tss)) - result++; - return result; -} - -public U8 GetMsg(I8 *param1,I8 *param2,U8 mask=-2,TssStruct *tss=NULL) -{ - U8 result; - BoolU4 old_preempt=Preempt(OFF); - if (!tss) tss=Fs; - tss->task_flags&=~(1<task_flags|=1<task_flags&=~(1<='0' && ch<='9') { - music_octive=ch-'0'; - ch=*st++; - } - return --st; -} - -I1 *MusicSetNoteLen(I1 *st) -{ - BoolU4 cont=TRUE; - do { - switch (*st++) { - case 'w': music_note_len=4.0; break; - case 'h': music_note_len=2.0; break; - case 'q': music_note_len=1.0; break; - case 'e': music_note_len=0.5; break; - case 's': music_note_len=0.25; break; - case 't': music_note_len=2.0*music_note_len/3.0; break; - case '.': music_note_len=1.5*music_note_len; break; - default: - st--; - cont=FALSE; - } - } while (cont); - return st; -} - -public double Note2Freq(I8 note,I8 octive=3) -{ - return 2.0`(6+octive+(note-3)/12.0); -} - -public void Play(I1 *st,I1 *words=NULL) -/* - Notes are entered with a capital letter. - - Octives are entered with a digit and - stay set until changed. - - Durations are entered with - 'w' whole note - 'h' half note - 'q' quarter note - 'e' eighth note - 't' sets to 2/3rds the current duration - '.' sets to 1.5 times the current duration - durations stay set until changed. - - Sharp and flat are done with '#' or 'b'. - - The variable $FG,4$music_stacatto_factor$FG$ can - be set to a range from 0.0 to 1.0. - - The variable $FG,4$music_tempo$FG$ defaults to - 2.5 and gets faster when bigger. - -*/ - -{ - I1 *word; - U8 note,i=0; - double f; - music_play_note_num=0; - while (*st) { - st=MusicSetOctive(st); - st=MusicSetNoteLen(st); - st=MusicSetOctive(st); - if (!*st) break; - note=*st++-'A'; - if (note<7) { - note=music_note_map[note]; - if (*st=='b') { - note--; - st++; - } else if (*st=='#') { - note++; - st++; - } - f=Note2Freq(note,music_octive); - } else - f=0; - if (words) { - if (word=PointAtListEntry(i++,words)) - if (StrCmp(word," ")) - PutS(word); - } - if (!music_mute) - Sound(f); - Sleep(1000*music_stacatto_factor*music_note_len/music_tempo); - if (!music_mute) - Sound(0); - Sleep(1000*(1.0-music_stacatto_factor)*music_note_len/music_tempo); - music_play_note_num++; - } -} - -void ResetMusicSettings() -{ - music_stacatto_factor=1.0; - music_tempo=2.5; - music_octive=3; - music_note_len=1.0; -} - -ResetMusicSettings; - - -void EndCurSong() -{ - Sound(0); - Exit; -} - -void CurSongTsk() -{ - Preempt(ON); - Fs->end_task_cb=&EndCurSong; - while (TRUE) - Play(cur_song); -} - -#help_index "" diff --git a/LT/Adam/ODE.APZ b/LT/Adam/ODE.APZ deleted file mode 100644 index ccae3d3..0000000 --- a/LT/Adam/ODE.APZ +++ /dev/null @@ -1,194 +0,0 @@ -#help_index "Math" - -//This is taken from the book, $UL,1$Numeric Recipies in C$UL,0$ - -Ode *OdeNew(U8 n) -{ - Ode *o=MAllocZ(sizeof(Ode)); - o->n=n; - o->state=MAllocZ(n*sizeof(double)); - o->internal_state=MAllocZ(n*sizeof(double)); - o->base_t=GetTimeStamp*1.0/time_stamp_freq; - o->h=1.0e-6; - o->DstateDt=MAllocZ(n*sizeof(double)); - o->state_scale=MAllocZ(n*sizeof(double)); - o->initial_state=MAllocZ(n*sizeof(double)); - o->tolerance_start=1.0e-6; - o->temp0=MAllocZ(n*sizeof(double)); - o->temp1=MAllocZ(n*sizeof(double)); - o->temp2=MAllocZ(n*sizeof(double)); - o->temp3=MAllocZ(n*sizeof(double)); - o->temp4=MAllocZ(n*sizeof(double)); - o->temp5=MAllocZ(n*sizeof(double)); - o->temp6=MAllocZ(n*sizeof(double)); - o->temp7=MAllocZ(n*sizeof(double)); - o->win_tss=Fs; - o->mem_tss=Fs; - return o; -} - -void OdeDel(Ode *o) -{ - Free(o->state); - Free(o->internal_state); - Free(o->DstateDt); - Free(o->state_scale); - Free(o->initial_state); - Free(o->temp0); - Free(o->temp1); - Free(o->temp2); - Free(o->temp3); - Free(o->temp4); - Free(o->temp5); - Free(o->temp6); - Free(o->temp7); - Free(o); -} - -void OdeOneStep(Ode *o) -{ - I8 i; - o->derivative(o,o->t+o->base_t,o->internal_state,o->DstateDt); - for (i=0;in;i++) - o->internal_state[i]+=o->h*o->DstateDt[i]; - o->t+=o->h; -} - -void OdeRK4OneStep(Ode *o) -{ - I8 i,n=o->n; - double xh,hh,h6; - double *dym,*dyt,*yt,*DstateDt; - - dym =o->temp0; - dyt =o->temp1; - yt =o->temp2; - DstateDt=o->temp3; - hh =0.5*o->h; - h6 =o->h / 6.0; - xh =o->t +o->base_t+ hh; - - o->derivative(o,o->t+o->base_t,o->internal_state,o->DstateDt); - for (i=0;iinternal_state[i]+hh*DstateDt[i]; - o->derivative(o,xh,yt,dyt); - for (i=0;iinternal_state[i]+hh*dyt[i]; - o->derivative(o,xh,yt,dym); - for (i=0;iinternal_state[i]+o->h*dym[i]; - dym[i]+=dyt[i]; - } - o->t+=o->h; - o->derivative(o,o->t+o->base_t,yt,dyt); - for (i=0;iinternal_state[i]+=h6*(DstateDt[i]+dyt[i]+2.0*dym[i]); -} - - -#define ODEa2 0.2 -#define ODEa3 0.3 -#define ODEa4 0.6 -#define ODEa5 1.0 -#define ODEa6 0.875 -#define ODEb21 0.2 -#define ODEb31 (3.0/40.0) -#define ODEb32 (9.0/40.0) -#define ODEb41 0.3 -#define ODEb42 (-0.9) -#define ODEb43 1.2 -#define ODEb51 (-11.0/54.0) -#define ODEb52 2.5 -#define ODEb53 (-70.0/27.0) -#define ODEb54 (35.0/27.0) -#define ODEb61 (1631.0/55296.0) -#define ODEb62 (175.0/512.0) -#define ODEb63 (575.0/13824.0) -#define ODEb64 (44275.0/110592.0) -#define ODEb65 (253.0/4096.0) -#define ODEc1 (37.0/378.0) -#define ODEc3 (250.0/621.0) -#define ODEc4 (125.0/594.0) -#define ODEc6 (512.0/1771.0) -#define ODEdc1 (37.0/378.0-2825.0/27648.0) -#define ODEdc3 (250.0/621.0-18575.0/48384.0) -#define ODEdc4 (125.0/594.0-13525.0/55296.0) -#define ODEdc5 (-277.0/14336.0) -#define ODEdc6 (512.0/1771.0-0.25) - -void OdeCashKarp(Ode *o) -{ - I8 i,n=o->n; - double h=o->h,*state=o->internal_state,*DstateDt=o->DstateDt,*ak2,*ak3,*ak4,*ak5,*ak6,*tempstate,*stateerr,*outstate; - - ak2=o->temp0; - ak3=o->temp1; - ak4=o->temp2; - ak5=o->temp3; - ak6=o->temp4; - tempstate=o->temp5; - outstate=o->temp6; - stateerr=o->temp7; - - for (i=0;iderivative(o,o->t+o->base_t+ODEa2*h,tempstate,ak2); - for (i=0;iderivative(o,o->t+o->base_t+ODEa3*h,tempstate,ak3); - for (i=0;iderivative(o,o->t+o->base_t+ODEa4*h,tempstate,ak4); - for (i=0;iderivative(o,o->t+o->base_t+ODEa5*h,tempstate,ak5); - for (i=0;iderivative(o,o->t+o->base_t+ODEa6*h,tempstate,ak6); - for (i=0;itemp6,*stateerr=o->temp7; - while (TRUE) { - OdeCashKarp(o); - errmax=0.0; - for (i=0;in;i++) { - temp=Abs(stateerr[i]/o->state_scale[i]); - if (temp>errmax) - errmax=temp; - } - errmax/=o->tolerance; - if (errmax>1.0 && o->h>1.0e-64) { - temp=o->h*SAFETY*errmax`PSHRNK; - if (temp<0.1*o->h) - o->h*=0.1; - else - o->h=temp; - } else { - o->t+=o->h; - if (errmax>ERRCON) - o->h*=SAFETY*errmax`PGROW; - else - o->h*=5.0; - if (o->h>1.0e32) - o->h=1.0e32; - MemCpy(o->internal_state,tempstate,sizeof(double)*o->n); - break; - } - } -} -#help_index "" diff --git a/LT/Adam/PicWords2.APZ b/LT/Adam/PicWords2.APZ deleted file mode 100644 index bb66d8cd285f3b930a445369b8bbbe625f9b42dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmd<(QVHB<*Mf8Qc!SA zNr8%KDEZ_Ur-o$Y7c1$gcsjw&&{6RWMsUnbbSyNjdAVvqM)Pu^n`_O>#lXbCz`)1= z0S=4|49pA+3}Orn40a3*44e>QhX4Qn|L2FY*`YK@?BDW)I-fNpo(L_ Gh5!I~e9*W6 diff --git a/LT/Adam/Remote.APZ b/LT/Adam/Remote.APZ deleted file mode 100644 index f02b6c8..0000000 --- a/LT/Adam/Remote.APZ +++ /dev/null @@ -1,798 +0,0 @@ -#help_index "Comm" - -#define RMT_MAX_PKT_LEN 64 //Must be less then PKT_SYNC -#define RMT_PKT_ACK 0xA5 -#define RMT_PKT_NACK 0x5A -#define RMT_PKT_SYNC 0xA3 -#define RMT_PKT_SYNC2 0xA7 -#define RMT_PKT_CHAR 0xA4 -#define RMT_PKT_REQUEST 0xA6 -#define RMT_PKT_RESET 0xA8 - -#define RMT_FILE_ACK 0x87566565 - -#define RMT_RQST_NONE 0x00 -#define RMT_RQST_GETMSG 0x01 -#define RMT_RQST_TX_FILE 0x02 -#define RMT_RQST_RX_FILE 0x03 -#define RMT_RQST_TX_BUF 0x04 -#define RMT_RQST_RX_BUF 0x05 -#define RMT_RQST_EXE_LOCAL 0x06 -#define RMT_RQST_PUTS_CNT 0x07 - -#define RMT_NUM_RQST_TYPES 0x08 - -#define RMT_CHAR_DELAY (JIFFY_FREQ/50) -#define RMT_TX_TIMEOUT_DELAY (JIFFY_FREQ) -#define RMT_RX_TIMEOUT_DELAY (JIFFY_FREQ) -#define RMT_NULL_MSG_DELAY (JIFFY_FREQ/20) - -public void RmtFlushRxFifo(LTChnl *chnl) -{ - if (!chnl || !chnl->type) return; - U1FifoFlush(comm_Rx_fifos[chnl->port]); - if (Bt(&comm_flags[chnl->port],COMMf_INCOMING_XOFFED)) { - Bts(&comm_flags[chnl->port],COMMf_INCOMING_XOFFED2); - Bts(&comm_flags[chnl->port],COMMf_INCOMING_XOFFED3); - chnl->PutChar(chnl,CH_XON); - } -} - -public I8 RmtTxFifoCnt(LTChnl *chnl) -{ - if (!chnl || !chnl->type) return 0; - return U1FifoCnt(comm_Tx_fifos[chnl->port]); -} - -public void RmtWaitTxDone(LTChnl *chnl) -{ - U8 base=comm_base[chnl->port]; - if (!chnl || !chnl->type) return; - while (RmtTxFifoCnt(chnl)) - SwapInNext; - while (Bt(&comm_flags[chnl->port],COMMf_OUTGOING_XOFFED)) - SwapInNext; - while (Bt(&comm_flags[chnl->port],COMMf_TX_XOFF)) - SwapInNext; - while (Bt(&comm_flags[chnl->port],COMMf_TX_XON)) - SwapInNext; - while (!(InP(base+UART_LSR) & 0x20)) - SwapInNext; -} - -public void RmtFlushTxFifo(LTChnl *chnl) -{ - U8 base=comm_base[chnl->port]; - if (!chnl || !chnl->type) return; - U1FifoFlush(comm_Tx_fifos[chnl->port]); - RmtWaitTxDone(chnl); -} - -void RmtReset(LTChnl *chnl) -{ - RmtFlushTxFifo(chnl); - RmtFlushRxFifo(chnl); - comm_flags[chnl->port]=0; -} - - - -public void RmtPrintF(LTChnl *chnl,I1 *src,...) -{ - I1 *buf,*ptr; - if (!chnl || !chnl->type) return; - buf=SPrintFJoin(NULL,src,argc,argv); - ptr=buf; - while (*ptr) - chnl->PutChar(chnl,*ptr++); - Free(buf); -} - -public I8 RmtRxFifoCnt(LTChnl *chnl) -{ - if (!chnl || !chnl->type) return 0; - return U1FifoCnt(comm_Rx_fifos[chnl->port]); -} - -public U1 RmtGetChar(LTChnl *chnl) -{ - if (!chnl || !chnl->type) - return 0; - return CommGetChar(chnl->port); -} - -public BoolU4 RmtScanChar(LTChnl *chnl,U1 *ch) -{ - if (!chnl || !chnl->type) - return 0; - return CommScanChar(chnl->port,ch); -} -U8 RmtTxPktU1(LTChnl *chnl,U1 b) -{ - if (!chnl || !chnl->type) return 0; - if (b==CH_XOFF || b==CH_XON || - b==CH_ESC || b==RMT_PKT_CHAR || - b==RMT_PKT_REQUEST || - b==RMT_PKT_RESET) { - chnl->PutChar(chnl,CH_ESC); - chnl->PutChar(chnl,b^0x80); - return 2; - } else { - chnl->PutChar(chnl,b); - return 1; - } -} - -BoolU8 RmtRxPktU1(LTChnl *chnl,U1 *b, - U8 timeout_jiffies,BoolU4 *esc=NULL) -{ - U1 b1; - U8 timeout; - *b=RMT_PKT_NACK; - if (esc) - *esc=FALSE; - if (!chnl || !chnl->type) - return FALSE; - timeout=Jiffies+timeout_jiffies; - while (JiffiesScanChar(chnl,&b1)) { - if (b1==CH_ESC) { - timeout=Jiffies+timeout_jiffies; - while (JiffiesScanChar(chnl,&b1)) { - *b=b1^0x80; - if (esc) *esc=TRUE; - return TRUE; - } - SwapInNext; - } - return FALSE; - } else { - if (b1==RMT_PKT_RESET) { - RmtReset(chnl); - throw(EXCP_RESET); - } - *b=b1; - return TRUE; - } - } - SwapInNext; - } - return FALSE; -} - -#define ERR_DELAY 1 - -void RmtTxPkt(LTChnl *chnl,U1 *p,U8 size,U8 rqst=RMT_RQST_NONE, - U8 timeout_delay=0) -{ //zero timeout_delay=none - U1 b,xsum; - U8 i,timeout_jiffy; - if (!chnl || !chnl->type) return; - - if (!timeout_delay && (Fs->rmt_chnl==chnl || Fs->local_chnl==chnl)) { - timeout_delay=RMT_TX_TIMEOUT_DELAY; - if (Fs->rmt_chnl==chnl && - chnl->pkt_rx_jiffy+RMT_NULL_MSG_DELAY<<1timeout_jiffy) - throw(EXCP_TIMEOUT); - RmtFlushTxFifo(chnl); - RmtFlushRxFifo(chnl); - chnl->PutChar(chnl,RMT_PKT_REQUEST); - RmtWaitTxDone(chnl); - if (RmtScanChar(chnl,&b)) { - Sleep(ERR_DELAY); - goto rt_err1; - } - RmtTxPktU1(chnl,rqst); - RmtWaitTxDone(chnl); - RmtRxPktU1(chnl,&b,RMT_CHAR_DELAY); - if (b!=(RMT_PKT_ACK^RMT_PKT_REQUEST^rqst)&0xFF) { - Sleep(ERR_DELAY); - goto rt_err1; - } - } else if (size==1) { -rt_err2: - if (Jiffies>timeout_jiffy) - throw(EXCP_TIMEOUT); - RmtFlushTxFifo(chnl); - RmtFlushRxFifo(chnl); - chnl->PutChar(chnl,RMT_PKT_CHAR); - RmtWaitTxDone(chnl); - if (RmtScanChar(chnl,&b)) { - Sleep(ERR_DELAY); - goto rt_err2; - } - RmtTxPktU1(chnl,p[0]); - RmtWaitTxDone(chnl); - RmtRxPktU1(chnl,&b,RMT_CHAR_DELAY); - if (b!=RMT_PKT_ACK^RMT_PKT_CHAR^p[0]) { - Sleep(ERR_DELAY); - goto rt_err2; - } - } else { -rt_err3: - if (Jiffies>timeout_jiffy) - throw(EXCP_TIMEOUT); - RmtFlushTxFifo(chnl); - RmtFlushRxFifo(chnl); - RmtTxPktU1(chnl,RMT_PKT_SYNC); - RmtWaitTxDone(chnl); - if (RmtScanChar(chnl,&b)) { - Sleep(ERR_DELAY); - goto rt_err3; - } - RmtTxPktU1(chnl,RMT_PKT_SYNC2); - RmtWaitTxDone(chnl); - RmtRxPktU1(chnl,&b,RMT_CHAR_DELAY); - if (b!=RMT_PKT_ACK^RMT_PKT_SYNC) { - Sleep(ERR_DELAY); - goto rt_err3; - } - if (RmtScanChar(chnl,&b)) { - Sleep(ERR_DELAY); - goto rt_err3; - } - RmtTxPktU1(chnl,size); - RmtWaitTxDone(chnl); - RmtRxPktU1(chnl,&b,RMT_CHAR_DELAY); - if (b!=(RMT_PKT_ACK^size)&0xFF) { - Sleep(ERR_DELAY); - goto rt_err3; - } - xsum=0x3A; - for (i=0;ipkt_tx_jiffy=Jiffies; -} - -void RmtRxPkt(LTChnl *chnl,U1 *p,U8 *size=NULL,U8 *rqst=NULL, - U8 timeout_delay=0) -{ //zero timeout_delay=none - U1 b,b1,xsum; - U8 i=0,s,r,timeout_jiffy; - BoolU4 esc; - - if (!chnl || !chnl->type) { - if (size) *size=0; - if (rqst) *rqst=0; - return; - } - - if (!timeout_delay && (Fs->rmt_chnl==chnl || Fs->local_chnl==chnl)) { - timeout_delay=RMT_RX_TIMEOUT_DELAY; - if (Fs->rmt_chnl==chnl && - chnl->pkt_rx_jiffy+RMT_NULL_MSG_DELAY<<12) - RmtFlushRxFifo(chnl); - s=0; - r=0; - RmtRxPktU1(chnl,&b,RMT_CHAR_DELAY); - -rr_cont: - if (Jiffies>timeout_jiffy) - throw(EXCP_TIMEOUT); - RmtRxPktU1(chnl,&b1,RMT_CHAR_DELAY,&esc); - if (b==RMT_PKT_REQUEST) { - if (b1>=RMT_NUM_RQST_TYPES) { - if (b1==RMT_PKT_REQUEST && !esc) - goto rr_cont; - else - goto rr_err; - } - r=b1; - s=0; - if (RmtScanChar(chnl,&b)) - goto rt_err; - RmtTxPktU1(chnl,RMT_PKT_ACK^RMT_PKT_REQUEST^b1); - goto rr_exit; - } else if (b==RMT_PKT_CHAR) { - if (b1==RMT_PKT_CHAR && !esc) - goto rr_cont; - *p=b1; - s=1; - if (RmtScanChar(chnl,&b)) - goto rt_err; - RmtTxPktU1(chnl,RMT_PKT_ACK^RMT_PKT_CHAR^b1); - goto rr_exit; - } else if (b==RMT_PKT_SYNC) { - if (b1!=RMT_PKT_SYNC2) { - if (b1==RMT_PKT_SYNC) - goto rr_cont; - else - goto rr_err; - } - if (RmtScanChar(chnl,&b)) - goto rt_err; - RmtTxPktU1(chnl,RMT_PKT_ACK^RMT_PKT_SYNC); - RmtWaitTxDone(chnl); - RmtRxPktU1(chnl,&s,RMT_CHAR_DELAY); - if (s>RMT_MAX_PKT_LEN) - goto rr_err; - if (RmtScanChar(chnl,&b)) - goto rt_err; - RmtTxPktU1(chnl,(RMT_PKT_ACK^s)&0xFF); - RmtWaitTxDone(chnl); - xsum=0x3A; - for (i=0;ipkt_rx_jiffy=Jiffies; -} - -public void RmtTxBlk(LTChnl *chnl,U1 *buf,I8 cnt) -{ - U1 b[RMT_MAX_PKT_LEN]; - U8 size; - if (!chnl || !chnl->type) return; - while (cnt>0) { - if (cnttype) return NULL; - result=MAlloc(cnt); - buf=result; - while (cnt>0) { - RmtRxPkt(chnl,b,&size); - MemCpy(buf,b,size); - cnt-=size; - buf+=size; - progress1=cnt; - } - return result; -} - -public U8 RmtGetMsg(LTChnl *chnl,I8 *p1,I8 *p2) -{ - U8 cmd=0,size; - U1 b[RMT_MAX_PKT_LEN]; - *p1=0; - *p2=0; - if (!chnl || !chnl->type) - return 0; - if (Jiffiesnull_msg_jiffy) - return 0; - try { - RmtTxPkt(chnl,NULL,0,RMT_RQST_GETMSG); - RmtRxPkt(chnl,b,&size); - if (size==sizeof(U8)*3) { - cmd=b[0]><(U8); - *p1=b[8]><(U8); - *p2=b[16]><(U8); - } - } catch { - if (Fs->except_argc==1) { - if (Fs->except_argv[0]==EXCP_TIMEOUT) - Fs->catch_except=TRUE; - } - } - if (cmd) - chnl->null_msg_jiffy=0; - else - chnl->null_msg_jiffy=Jiffies+RMT_NULL_MSG_DELAY; - return cmd; -} - -public void RmtSendMsg(LTChnl *chnl,U8 cmd,I8 p1,I8 p2) -{ - U1 b[RMT_MAX_PKT_LEN]; - if (!chnl || !chnl->type) return; - if (cmd) { - b[0]><(U8)=cmd; - b[8]><(U8)=p1; - b[16]><(U8)=p2; - RmtTxPkt(chnl,b,sizeof(U8)*3); - } else { - RmtTxPkt(chnl,b,1); - chnl->null_msg_cnt++; - } -} - -public BoolU4 RmtPutKey(I8 ch,U8 sc) -{ - nounusedwarn sc; - if (ch && Fs->rmt_chnl) { - try { - RmtTxPkt(Fs->rmt_chnl,&ch,1); - } catch { - if (Fs->except_argc==1) { - if (Fs->except_argv[0]==EXCP_TIMEOUT) - Fs->catch_except=TRUE; - } - } - } - return FALSE; -} - -public void RmtTxBuf(LTChnl *chnl,U1 *buf,U8 size) -{ - if (!chnl || !chnl->type) return; - if (buf) { - RmtTxBlk(chnl,&size,sizeof(U8)); - RmtTxBlk(chnl,buf,size); - } -} - -public U1 *RmtRxBuf(LTChnl *chnl,U8 *size=NULL) -{ - U1 *buf; - U8 *size2; - if (size) *size=0; - if (!chnl || !chnl->type) return NULL; - size2=RmtRxBlk(chnl,sizeof(U8)); - buf=RmtRxBlk(chnl,*size2); - if (size) *size=*size2; - Free(size2); - return buf; -} - -public BoolU4 RmtTxFile(LTChnl *chnl,I1 *filename, - BoolU4 raw=TRUE) -{ - U8 size,tries=3; - U1 *buf; - U4 *good; - U1 b[RMT_MAX_PKT_LEN]; - LTDirEntry de; - if (!chnl || !chnl->type) return; -start_tx: - if (FindFile(filename,&de)) { - buf=ReadFile(filename,&size,NULL,raw); - if (buf) { - RmtTxBuf(chnl,&de.start,LT_DIR_ENTRY_SIZE); - RmtTxBuf(chnl,buf,size); - Free(buf); - } - } - RmtRxPkt(chnl,b,&size); - good=b; - if (size==4 && *good==RMT_FILE_ACK) - return TRUE; - else { - if (!--tries) { - coutln "Failed!"; - return FALSE; - } else { - coutln "Retry"; - goto start_tx; - } - } -} - -public U8 RmtRxFile(LTChnl *chnl,I1 *filename, - BoolU4 raw=TRUE) -{ - U8 size,tries=3; - U4 good; - U1 *buf,*buf1; - LTDirEntry *de; - if (!chnl || !chnl->type) return 0; -start_rx: - good=0; - buf1=RmtRxBuf(chnl); - de=buf1-offset(LTDirEntry.start); - if (buf=RmtRxBuf(chnl,&size)) { - good=RMT_FILE_ACK; - if (de->xsum) { - if ((de->xsum^ArcCheckSum(buf,de->size))!=LT_XSUM) - good=0; - } - if (good) - WriteFile(filename,buf,size,de->datetime,de->attr,raw); - else - coutln "Bad XSUM"; - Free(buf); - } - Free(buf1); - RmtTxPkt(chnl,&good,sizeof(BoolU4)); - if (!good) { - if (!--tries) { - coutln "Failed!"; - return 0; - } else { - coutln "Retry"; - goto start_rx; - } - } else - return size; -} - -public void RmtTxPutS(LTChnl *chnl,I1 *st) -{ - U8 len; - if (!chnl || !chnl->type) return; - if (st) { - len=StrLen(st); - if (len) { - if (len>RMT_MAX_PKT_LEN) { - RmtTxPkt(chnl,NULL,0,RMT_RQST_PUTS_CNT); - RmtTxBuf(chnl,st,len+1); - } else - RmtTxBlk(chnl,st,len); - } - } -} - -public void RmtTxPutChar(LTChnl *chnl,I8 ch) -{ - if (!chnl || !chnl->type) return; - if (ch) - RmtTxPkt(chnl,&ch,1); -} - -public I1 *RmtRxPutS(LTChnl *chnl,U8 *rqst=NULL) -{ - U1 b[RMT_MAX_PKT_LEN]; - U8 size; - U1 *buf=NULL; - if (!chnl || !chnl->type) return NULL; - if (RmtRxFifoCnt(chnl)>=2) { - RmtRxPkt(chnl,b,&size,rqst); - if (size) { - buf=MAlloc(size+1); - MemCpy(buf,b,size); - buf[size]=0; - } else - buf=MAllocZ(1); - } - return buf; -} - -public U1 *RmtRqstTxBuf() -{ -//Remote must fill-in remote's chnl->tx_buf -//and remote's chnl->tx_size before calling. - LTChnl *chnl=Fs->rmt_chnl; - U1 *result; - if (!chnl || !chnl->type) return NULL; - RmtTxPkt(chnl,NULL,0,RMT_RQST_TX_BUF); - result=RmtRxBuf(chnl); - return result; -} - -public void RmtRqstRxBuf(U1 *src_local_buf,U8 size) -{ //Dst buf address is placed in remote's chnl->rx_buf - LTChnl *chnl=Fs->rmt_chnl; - if (!chnl || !chnl->type) return; - RmtTxPkt(chnl,NULL,0,RMT_RQST_RX_BUF); - RmtTxBuf(chnl,src_local_buf,size); -} - -public void RmtRqstTxFile(I1 *dst_local_filename,I1 *src_remote_filename) -{ - LTChnl *chnl=Fs->rmt_chnl; - if (!chnl || !chnl->type) return; - RmtTxPkt(chnl,NULL,0,RMT_RQST_TX_FILE); - RmtTxBuf(chnl,src_remote_filename,StrLen(src_remote_filename)+1); - RmtRxFile(chnl,dst_local_filename); -} - -public void RmtRqstRxFile(I1 *src_local_filename,I1 *dst_remote_filename) -{ - LTChnl *chnl=Fs->rmt_chnl; - if (!chnl || !chnl->type) return; - RmtTxPkt(chnl,NULL,0,RMT_RQST_RX_FILE); - RmtTxBuf(chnl,dst_remote_filename,StrLen(dst_remote_filename)+1); - RmtTxFile(chnl,src_local_filename); -} - -public void RmtRqstExeLocal(I1 *st) -{ - LTChnl *chnl=Fs->rmt_chnl; - if (!chnl || !chnl->type) return; - RmtTxPkt(chnl,NULL,0,RMT_RQST_EXE_LOCAL); - RmtTxBuf(chnl,st,StrLen(st)+1); -} - -public void TelnetHostOpen(LTChnl *chnl) -//Allows remote telnet user to control -//this task. Will still allow local -//control. -{ - if (!chnl || !chnl->type) return; - Fs->rmt_chnl=chnl; -} - -public void TelnetHostClose() -{ - Fs->rmt_chnl=NULL; -} - -public void TelnetGuestOpen(LTChnl *chnl) -{ - U8 i,cmd,p1,p2,rqst; - U1 *st,*st2; - BoolU4 cont=TRUE,msg_sent=TRUE; - BoolU4 old_preempt=Preempt(OFF); - if (!chnl || !chnl->type) return; - Fs->local_chnl=chnl; - coutln "$$BK 1$$CTRL-ALT-B to break$$BK 0$$"; - for (i=0;i<4;i++) { - chnl->PutChar(chnl,RMT_PKT_RESET); - chnl->PutChar(chnl,RMT_PKT_RESET); - Sleep(100); - } - while (cont) { - try { - Fs->task_flags&=~(1<task_flags&=~(1<null_msg_cnt=0; - switch (rqst) { - case RMT_RQST_NONE: - PutS(st2); - break; - case RMT_RQST_GETMSG: - if (msg_sent) - cmd=ScanMsg(&p1,&p2, - 1<task_flags|=1<tx_buf,chnl->tx_size); - break; - case RMT_RQST_RX_BUF: - chnl->rx_buf=RmtRxBuf(chnl); - break; - case RMT_RQST_EXE_LOCAL: - st=RmtRxBuf(chnl); - ExecuteStr(st); - Free(st); - break; - case RMT_RQST_PUTS_CNT: - Free(st2); - st2=RmtRxBuf(chnl); - PutS(st2); - break; - } - Free(st2); - st2=NULL; - } else { - Fs->task_flags|=1<except_argc==1) { - if (Fs->except_argv[0]==EXCP_TIMEOUT) { - Fs->catch_except=TRUE; - cont=TRUE; - } - } - if (!cont) { - Fs->local_chnl=NULL; - Preempt(old_preempt); - } - } - } - Fs->local_chnl=NULL; - Preempt(old_preempt); -} - -BoolU8 RmtPutS(I1 *st) -{ - if (Fs->rmt_chnl) { - try - RmtTxPutS(Fs->rmt_chnl,st); - catch { - if (Fs->except_argc==1) { - if (Fs->except_argv[0]==EXCP_TIMEOUT) - Fs->catch_except=TRUE; - } - } - } - return FALSE; -} - -AddKeyDev(&RmtPutKey,&RmtPutS,0xA0000000); -#help_index "" diff --git a/LT/Adam/Utils.APZ b/LT/Adam/Utils.APZ deleted file mode 100644 index 4b54cac..0000000 --- a/LT/Adam/Utils.APZ +++ /dev/null @@ -1,445 +0,0 @@ -#help_index "File/Cmd Line (Typically)" - -public U1 *PatchBlk(U8 blk,BoolU4 write=FALSE) -{ - U1 *buf=MAlloc(BLK_SIZE); - - RBlks(Fs->cur_partition,buf,blk,1,TRUE); - LtfD(buf,BLK_SIZE); - if (write) { - coutln "Edit and press ESC to write or ^Q"; - if (View) { - coutln "Write"; - WBlks(Fs->cur_partition,buf,blk,1,TRUE); - } - } - return buf; -} - -public U1 *Patch(U8 c,BoolU4 write=FALSE) -{ - U1 *buf=MAlloc(Fs->cur_partition->spc<cur_partition,buf,c,1,TRUE); - coutln "Cluster:",c; - LtfD(buf,Fs->cur_partition->spc<cur_partition,buf,c,1,TRUE); - } - } - return buf; -} - -#help_index "Memory" -void CorruptSysMemory() -{ - Debugger; -} - -void CorruptTaskMemory() -{ - Debugger; -} - -public U8 UnusedSysMem() -{ - MemBlk *tempm; - U8 i,result=0,old_flags=GetFlags; - Cli; - tempm=mem_free_list; - while (tempm) { - if (tempm->signature!=MBS_UNUSED_SIGNATURE) - CorruptSysMemory; - result+=tempm->pages; - tempm=tempm->next; - } - SetFlags(old_flags); - Cli; - tempm=mem_free_2Meg_list; - while (tempm) { - if (tempm->signature!=MBS_UNUSED_SIGNATURE) - CorruptSysMemory; - result+=tempm->pages; - tempm=tempm->next; - } - SetFlags(old_flags); - for (i=0;isignature!=MBS_UNUSED_SIGNATURE) - CorruptSysMemory; - result+=tempm->pages; - tempm=tempm->next; - } - SetFlags(old_flags); - } - for (i=0;i<64;i++) { - Cli; - tempm=free_page_hash2[i]; - while (tempm) { - if (tempm->signature!=MBS_UNUSED_SIGNATURE) - CorruptSysMemory; - result+=tempm->pages; - tempm=tempm->next; - } - SetFlags(old_flags); - } - return result*PAGE_SIZE; -} - -public U8 TaskAllocatedMem(TssStruct *tss=NULL) -{ - MemBlk *m,*m1; - U8 result=0,old_flags=GetFlags; - if (!tss) tss=Fs; - Cli; - m=tss->next_mem_blk; - m1=&tss->next_mem_blk; - while (m!=m1) { - if (m->signature!=MBS_USED_SIGNATURE) - CorruptTaskMemory; - result+=m->pages*PAGE_SIZE; - m=m->next; - } - SetFlags(old_flags); - return result; -} - -public U8 TaskUnusedAllocatedMem(TssStruct *tss=NULL) -{ - U8 result=0,i,old_flags=GetFlags; - UnusedAllocatedMem *u; - if (!tss) tss=Fs; - Cli; - for (i=0;i>3;i++) { - u=tss->heap_hash[i]; - while (u) { - result+=u->size; - u=u->next; - } - } - u=tss->malloc_free_list; - while (u) { - result+=u->size; - u=u->next; - } - SetFlags(old_flags); - return result; -} - -#help_index "Memory/Heap Ctrl" -public U8 UnusedHCMem(HeapCtrl *hc) -{ - U8 result=0,i,old_flags=GetFlags; - MemBlk *tempm; - UnusedAllocatedMem *u; - - Cli; - tempm=hc->mem_free_list; - while (tempm) { - if (tempm->signature!=MBS_UNUSED_SIGNATURE) - CorruptSysMemory; - result+=tempm->pages; - tempm=tempm->next; - } - SetFlags(old_flags); - - for (i=0;ifree_page_hash[i]; - while (tempm) { - if (tempm->signature!=MBS_UNUSED_SIGNATURE) - CorruptSysMemory; - result+=tempm->pages; - tempm=tempm->next; - } - SetFlags(old_flags); - } - - for (i=0;i<64;i++) { - Cli; - tempm=hc->free_page_hash2[i]; - while (tempm) { - if (tempm->signature!=MBS_UNUSED_SIGNATURE) - CorruptSysMemory; - result+=tempm->pages; - tempm=tempm->next; - } - SetFlags(old_flags); - } - result*=PAGE_SIZE; - - Cli; - for (i=0;i>3;i++) { - u=hc->heap_hash[i]; - while (u) { - result+=u->size; - u=u->next; - } - } - u=hc->malloc_free_list; - while (u) { - result+=u->size; - u=u->next; - } - SetFlags(old_flags); - - return result; -} - -#help_index "Memory;Debugging" -I8 CompareUamPtrs(UnusedAllocatedMem **e1, - UnusedAllocatedMem **e2) -{ - return *e1-*e2; -} - -I8 CompareUamSize(UnusedAllocatedMem **e1, - UnusedAllocatedMem **e2) -{ - return (*e2)->size-(*e1)->size; -} - - -public void HeapRep(TssStruct *tss=NULL) -{ - I8 i,cnt; - UnusedAllocatedMem *u; - U8 old_flags=GetFlags; - - if (!tss) tss=Fs; - Cli; - for (i=0;i>3;i++) { - cnt=0; - u=tss->heap_hash[i]; - while (u) { - cnt+=u->size; - u=u->next; - } - if (cnt) - PrintF("%03X:%08X\r\n",i<<2,cnt); - } - u=tss->malloc_free_list; - while (u) { - PrintF("%08X\r\n",u->size); - u=u->next; - } - SetFlags(old_flags); -} - -public BoolU4 IsInHeap(U1 *a,TssStruct *tss=NULL) -{ - MemBlk *m; - U8 old_flags=GetFlags; - if (!tss) tss=Fs; - m=tss->next_mem_blk; - Cli; - while (m!=&tss->next_mem_blk) { - if (a>=m && apages*PAGE_SIZE) { - SetFlags(old_flags); - return TRUE; - } - m=m->next; - } - SetFlags(old_flags); - return FALSE; -} - -public BoolU4 HeapWalk(TssStruct *tss=NULL) -//Detects just one type of error -- -//a freed value, not valid. -{ - I8 i; - UnusedAllocatedMem *u; - BoolU4 result=TRUE; - U8 old_flags=GetFlags; - - if (!tss) tss=Fs; - if (!ValidateTss(tss)) return FALSE; - Cli; - for (i=0;i>3;i++) { - u=tss->heap_hash[i]; - while (u) { - if (!IsInHeap(u,tss)) - result=FALSE; - u=u->next; - } - } - u=tss->malloc_free_list; - while (u) { - if (!IsInHeap(u,tss)) - result=FALSE; - u=u->next; - } - SetFlags(old_flags); - return result; -} - - -#help_index "Memory" - -//TODO:Crashes -///More of a heap check at the moment -void CollectFreedAllocatedMem(TssStruct *tss=NULL) -{ - I8 i,cnt; -//I8 j; - UnusedAllocatedMem *u,**sort_buf; - U8 old_flags=GetFlags; -// U4 *dd; - - if (!tss) tss=Fs; - Cli; - cnt=0; - for (i=0;i>2;i++) { - u=tss->heap_hash[i]; - while (u) { - cnt++; - u=u->next; - } - } - u=tss->malloc_free_list; - while (u) { - cnt++; - u=u->next; - } - SetFlags(old_flags); - - //We might disturb the Free list and irq's might Free some - sort_buf=MAlloc(((cnt+512)&-0x100)*sizeof(void *)); - - Cli; - cnt=0; - - for (i=0;i>2;i++) { - u=tss->heap_hash[i]; - while (u) { - sort_buf[cnt++]=u; - u=u->next; - } - tss->heap_hash[i]=NULL; - } - - u=tss->malloc_free_list; - while (u) { - sort_buf[cnt++]=u; - u=u->next; - } - tss->malloc_free_list=NULL; - - for (i=0;isize>sort_buf[i+1]) - cout "****"; - coutln sort_buf[i]," ",sort_buf[i]->size; - } -/* - j=0; - for (i=0;isize && - sort_buf[j]->size+sort_buf[i]->sizesize=sort_buf[j]->size+ - sort_buf[i]->size; - else - sort_buf[++j]=sort_buf[i]; - } - if (cnt) { - j++; - QSort(sort_buf,j,sizeof(void *),&CompareUamSize); - for (i=0;inext=sort_buf[i]->size; - Free(sort_buf[i]+4,tss); - } - } -*/ - Free(sort_buf); -} - -#help_index "Task" - -void TaskRepTask(TssStruct *tss,I8 indent) -{ - TssStruct *tss1; - I1 *st,*desc=MSPrintF("%q",tss->task_descriptor); - st=MSPrintF("$$MA+A,\"%08X\",\"Kill(0x%X);\r\",$$",tss,tss,tss); - PrintF("%*s%s $$TX+SCX,\"%Q...\",16$$ Mem:%08X\r\n", - indent,"",st,desc, - TaskAllocatedMem(tss)); - PrintF("%*s Flags:%04X:%04X %02X\r\n", - indent+2,"",tss->task_flags,tss->crt_flags, - ExceptDepth(tss)); - PrintF("Time:%9.2fm\r\n",tss->total_time/60.0/time_stamp_freq); - Free(st); - Free(desc); - tss1=tss->next_child_tss; - while (tss1!=&tss->next_child_tss-offset(TssStruct.next_sibling_tss)) { - TaskRepTask(tss1,indent+2); - tss1=tss1->next_sibling_tss; - } -} - -public void TaskRep() -{ - U1 i; - U8 old_flags=GetFlags; - CPUStruct *c; - Cli; - for (i=0;icain_tss,2); - } - SetFlags(old_flags); -} - - -void CtrlAltX() -{ - Bts(sys_flags,SYSf_CTRL_ALT_X); -} -ctrl_alt_letter_routines['X'-'A']=&CtrlAltX; - - -void CtrlAltC() -{ - Bts(sys_flags,SYSf_CTRL_ALT_C); -} -ctrl_alt_letter_routines['C'-'A']=&CtrlAltC; - -#help_index "File/FileNames" - -public BoolU4 IsTextFile(I1 *filename) -{ - return WildFileNameList(TEXT_FILE_MASK,filename); -} - -public BoolU4 IsSourceFile(I1 *filename) -{ - return WildFileNameList(SOURCE_FILE_MASK,filename); -} - -public BoolU4 IsCFile(I1 *filename) -{ - return WildFileNameList(C_FILE_MASK,filename); -} - -public BoolU4 IsAsmFile(I1 *filename) -{ - return WildFileNameList(ASM_FILE_MASK,filename); -} - - -#help_index "" - \ No newline at end of file diff --git a/LT/Adam/WallPaper.APZ b/LT/Adam/WallPaper.APZ deleted file mode 100644 index 720d60fdfbf0052f6bba99acfaa5bb0cd2ceae3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2951 zcmY$+NX;pT&&*3ntx!-3&&*57FE3W&<>KWEwNS`OEG~&JE>A3oPtGezEi#Js4T$%3 zjED~i@^^L(4)zZUjX%hJ( z#Q2iT+*Df-5no)Am|GB^R+L(ZWKwBfX>n>wd~s!QZfdTrfi=is$|9YLH6ov4_oScBfg4807kmBOtlA_Y&5(TZ?%J`DvVohGI zYLII@Efg|!vUGB6-GkyiTs_@ALiFAI{X(E@T|;Y-A|%}<#l>JD=YUX{fyrP2pAeVC zl2nD9l9UoKKh#1YKPM$VEhjO(*w#I@#0|s%%Xk_pB$cK`8=0EL>Lit>89`WD#Sne& zMNXL|zKI12T1kn;skZJ#jyai$#Tw~FAg+-P)b-#XPypKoGTgbeC?qpC72*c4CBXqj znRz8{8cC&TI!dY;MlK4f873hLL8)n0szxPg3Q9U4mqLj0%sf~;X+jN7%P&&U$h0-E z&a}w|$Gdf=wzj4MILH(fl5N#Mq6MY##o$0Kj?Rn)+p3^|WUrBql5;?)Y6{pwRaFHg zolHmqP*6}XG%(OJ(9$r}Gtf=ewaZM&NsUiSOfJbU(ge9cK|w(wxTMHAu>|aXP#{5s zYeBJ*nWmtjr~z_xX+cV2Nouj0nX#rONCuj=P?Jk2IPnBm7W<~=f*pzKMBmh0D^&xF zk_aUoa6(7X46zlfQ$SG|;u;YW@9ggr91BjA3JL)^`6a>0MX9NI!6ijtw}*RphPZst7>3qRuZ8A6EK1bz}yTIH`IZ#j6eob-66(Md*Kc-feN5I#2D@n6G|PD zqpJ(fO=Oo8CB?HDRM5T1m$-l9VGlM_o)Q+!i%!Crz}gXAV1CDmdDaCwDF>KdArfFw*JtW*t5 zA{10j^^DSTmB1AY$n`o|I=oz{mV$(J?Mf1hv*S}zi<65o3rg~f;Htpl;MxnKF1e@# zQkfxCJdS7BZl!3RYY~vmQv1f&wU|fP*V9wW0(m zt<)-%XJqE2Du4n@5jibEtOi#Ws8%S&$H&Km!Wu*?fC{YOlI(be&|+|)$1B9gyFf!C zGe0jr9wY#+w?QmW1skuVgW*DoGXhHNf@(|yqZEbU^2CB-{bDOs^AzNI6H;I!8e`F! zvAUr02^3J^vK%306rCBXsf89P`n+76V0D=7FG!$4au=v_MQ^?-+JZHr3&R@)3OE~f zn0CQaHrPm1H$$vJh#}e*P#aLBK+%p6fSL=Ac^suIzDgRN>c9qo-G=U6TWmoCw${DK wB{fF_RKS2jvKG_`O|2-21~n1F9esQP90Oc~Vr|vnZBlDqE|gZc5-%4607_qgx&QzG diff --git a/LT/Adam/Window.APZ b/LT/Adam/Window.APZ deleted file mode 100644 index bcb755e..0000000 --- a/LT/Adam/Window.APZ +++ /dev/null @@ -1,1080 +0,0 @@ -#help_index "Windows" - -public void RefocusWin() -{ - TssStruct *tss_focus=sys_cur_focus_task; - if (!tss_focus) { - tss_focus=sys_update_screen_tss->last_tss; - while (tss_focus!=sys_update_screen_tss) { - if (Bt(&tss_focus->task_flags,TSSf_LOCAL_USER)) { - sys_cur_focus_task=tss_focus; - break; - } - tss_focus=tss_focus->last_tss; - } - } -} - -I8 old_ipx=-1000,old_ipy=-1000,old_ipz=0; -BoolU4 old_ip_lb=FALSE,old_ip_rb=FALSE; -U8 left_ip_double_time=0; -BoolU4 left_double=FALSE,left_down_sent=FALSE; -U8 right_ip_double_time=0; -BoolU4 right_double=FALSE,right_down_sent=FALSE; -public U8 double_click_mS=350; - -public I8 win_min_refresh=15, - win_max_refresh=50, - win_updates=0; -public double win_refresh=win_min_refresh; - -BoolU4 win_first_after_startup_complete=FALSE; - -void PlotInputPointer(GrBitMap *base) -{ - I8 x,y; - U8 old_flags=GetFlags; - Cli; - x=ipx; - y=ipy; - SetFlags(old_flags); - if (ip_on && ip_pointer_type!=IP_NULL) { - base->color=ROP_XOR+WHITE; - GrLine4(base,x,y,x+10,y+10); - GrLine4(base,x+2,y+1,x+11,y+10); - GrLine4(base,x+1,y+2,x+10,y+11); - GrLine4(base,x,y,x+5,y); - GrLine4(base,x,y,x,y+5); - } -} - - -void UpdateOdes(TssStruct *tss) -{ - I8 i,timeout_time=GetTimeStamp+time_stamp_freq/win_min_refresh; - double t_desired=GetTimeStamp*1.0/time_stamp_freq, - t_initial,interpolation; - Ode *o=tss->next_ode; - while (o!=&tss->next_ode) { - MemCpy(o->internal_state,o->state,o->n*sizeof(double)); - o->tolerance=o->tolerance_start; - o->derivative(o,o->t+o->base_t,o->internal_state,o->DstateDt); - for (i=0;in;i++) - o->state_scale[i]=Abs(o->internal_state[i])+Abs(o->DstateDt[i]*o->h)+1e-4; - t_initial=o->t+o->base_t; - MemCpy(o->initial_state,o->internal_state,o->n*sizeof(double)); - do { - while (o->t+o->base_ttimeout_time) - o->base_t=t_desired-o->t; - } - if (interpolation=(o->t+o->base_t-t_initial)) - interpolation=(t_desired-t_initial)/interpolation; - else - interpolation=1.0; - if (interpolation>.1 || o->tolerance<1e-64) - break; - else { - MemCpy(o->internal_state,o->initial_state,sizeof(double)*o->n); - o->t=t_initial-o->base_t; - o->tolerance/=10; - } - } while (TRUE); - for (i=0;in;i++) - o->internal_state[i]=(o->internal_state[i]-o->initial_state[i])*interpolation+o->initial_state[i]; - o->t=t_desired-o->base_t; - MemCpy(o->state,o->internal_state,o->n*sizeof(double)); - o=o->next; - } -} - -void WinUpdateIP() -{ - I8 dd; - U8 temp,temp2; - BoolU8 set=FALSE; - double speed=0; - - if (ip_pointer_type==IP_MOUSE) { - ip_has_wheel=mouse_has_wheel; - if (mouse_evt) { - ipx=mxx/ipx_snap*ipx_snap+ipx_snap_offset; - ipy=myy/ipy_snap*ipy_snap+ipy_snap_offset; - - ip_throttle+=(mzz-ipz)*0x10000000; - if (ip_throttle>MAX_I4) - ip_throttle=MAX_I4; - if (ip_throttlejoymax[3]-joymin[3]) - ip_throttle=0x100000000*(joyv[2]-joyrest[2])/(joymax[2]-joymin[2]+1); - else - ip_throttle=0x100000000*(joyv[3]-joyrest[3])/(joymax[3]-joymin[3]+1); - if (ip_throttle>MAX_I4) - ip_throttle=MAX_I4; - if (ip_throttle0) { - temp2=GetTimeStamp; - temp=temp2-last_ip_move_time; - last_ip_move_time=temp2; - if (!temp) temp=1; - speed=Sqrt(dd)/(temp/(1.0*time_stamp_freq)); - } - iptx=ipx/FONT_WIDTH; - ipty=ipy/FONT_HEIGHT; - } - if (ip_speed<10.0) - ip_speed=speed; - else - ip_speed=0.75*ip_speed+0.25*speed; //digital filter for mouse speed -} - -U8 last_idle_point_hits[MP_MAX_PROCESSORS]={0,0,0,0}; -U8 last_swap_cnter[MP_MAX_PROCESSORS]={0,0,0,0}; -I8 last_refresh_time=GetTimeStamp, - last_refresh_start_time=0, - last_refresh_end_time=0, - refresh_time,refresh_delta_time; -U8 win_calc_refresh_cnt=0, - win_calc_refresh_skips=0; - -U8 WinCalcRefreshTimeout() -{ - double d=Gs->idle_factor,d1; - I8 i,k; - U8 old_flags=GetFlags; - U8 idle_point_hits[MP_MAX_PROCESSORS]; - CPUStruct *c; - - win_calc_refresh_skips++; - if (GetTimeStamp-last_refresh_time>time_stamp_freq>>2) { - refresh_time=GetTimeStamp; - - Cli; - for (i=0;iidle_point_hits; - } - SetFlags(old_flags); - - refresh_delta_time=refresh_time-last_refresh_time; - for (i=0;i0) { - k=idle_point_hits[i]-last_idle_point_hits[i]; - if (k>=0) - c->idle_factor= - k*time_stamp_freq*1.0 - /(JIFFY_FREQ*refresh_delta_time); - } - last_idle_point_hits[i]=idle_point_hits[i]; - if (c->idle_factor<.01) - c->idle_factor=0.01; - if (c->idle_factor>.99) - c->idle_factor=0.99; - } - - last_refresh_time=refresh_time; - - if (win_first_after_startup_complete) { - d1=(last_refresh_end_time-last_refresh_start_time)*1.0/ - (refresh_delta_time/win_calc_refresh_skips); - if (d1<0.2) - win_refresh*=1.25; - else if (d<=0.0) - win_refresh=win_min_refresh; - else if (d<0.02) { - d=win_min_refresh/win_refresh; - win_refresh=d*win_min_refresh+0.5*(1.0-d)*win_refresh; - } else if (d<0.99) { - if (d=(1.0-d)`0.25) - win_refresh*=(0.8`0.25)/d; - } else - win_refresh=win_max_refresh; - win_calc_refresh_cnt++; - win_calc_refresh_skips=0; - } else { - win_refresh=win_max_refresh; - win_first_after_startup_complete=TRUE; - } - } - if (win_refreshwin_max_refresh) win_refresh=win_max_refresh; - return GetTimeStamp+time_stamp_freq/win_refresh; -} - -U8 WinQueueKbdMouseMsgs() -{ - U8 jiffies=Jiffies,cmd=0; - I8 p1,p2; - TssStruct *tss_focus=sys_cur_focus_task; - - if (tss_focus) { - while (U8FifoRemove(scan_code_fifo,&p2)) { - p1=ScanCodeToASCII(p2); - if (p2 & SCF_KEY_UP) { - QueueMsg(tss_focus,0, - MSG_KEY_UP,p1,p2,0); - cmd=MSG_KEY_UP; - } else { - QueueMsg(tss_focus,0, - MSG_KEY_DOWN,p1,p2,0); - cmd=MSG_KEY_DOWN; - } - } - - p1=ipx-tss_focus->win_left*FONT_WIDTH; - p2=ipy-tss_focus->win_top*FONT_HEIGHT; - if (old_ipx!=ipx || old_ipy!=ipy) { - QueueMsg(tss_focus,0, - MSG_IP_MOVE,p1,p2,0); - cmd=MSG_IP_MOVE; - } - //TODO queue msg for ipz? - if (left_ip_double_time) { - if (jiffies>left_ip_double_time) { - if (left_double) { - if (!left_down_sent) { - QueueMsg(tss_focus,0, - MSG_IP_L_D_DOWN,p1,p2,0); - left_down_sent=TRUE; - cmd=MSG_IP_L_D_DOWN; - } - if (!ip_lb) { - QueueMsg(tss_focus,0, - MSG_IP_L_D_UP,p1,p2,0); - left_ip_double_time=0; - cmd=MSG_IP_L_D_UP; - } - } else { - if (!left_down_sent) { - QueueMsg(tss_focus,0, - MSG_IP_L_DOWN,p1,p2,0); - left_down_sent=TRUE; - cmd=MSG_IP_L_DOWN; - } - if (!ip_lb) { - QueueMsg(tss_focus,0, - MSG_IP_L_UP,p1,p2,0); - left_ip_double_time=0; - cmd=MSG_IP_L_UP; - } - } - } else { - if (ip_lb && !ip_lb_last) { - left_ip_double_time=jiffies; - left_double=TRUE; - } - } - } else { - if (Bt(&tss_focus->crt_flags,CRTf_NO_DOUBLE_CLICK)) { - if (ip_lb && !ip_lb_last) { - QueueMsg(tss_focus,0, - MSG_IP_L_DOWN,p1,p2,0); - cmd=MSG_IP_L_DOWN; - } else if (!ip_lb && ip_lb_last) { - QueueMsg(tss_focus,0, - MSG_IP_L_UP,p1,p2,0); - cmd=MSG_IP_L_UP; - } - } else { - if (ip_lb && !ip_lb_last) { - left_double=FALSE; - left_down_sent=FALSE; - left_ip_double_time=jiffies+ - double_click_mS*JIFFY_FREQ/1000; - } - } - } - - if (right_ip_double_time) { - if (jiffies>right_ip_double_time) { - if (right_double) { - if (!right_down_sent) { - QueueMsg(tss_focus,0, - MSG_IP_R_D_DOWN,p1,p2,0); - right_down_sent=TRUE; - cmd=MSG_IP_R_D_DOWN; - } - if (!ip_rb) { - QueueMsg(tss_focus,0, - MSG_IP_R_D_UP,p1,p2,0); - right_ip_double_time=0; - cmd=MSG_IP_R_D_UP; - } - } else { - if (!right_down_sent) { - QueueMsg(tss_focus,0, - MSG_IP_R_DOWN,p1,p2,0); - right_down_sent=TRUE; - cmd=MSG_IP_R_DOWN; - } - if (!ip_rb) { - QueueMsg(tss_focus,0, - MSG_IP_R_UP,p1,p2,0); - right_ip_double_time=0; - cmd=MSG_IP_R_UP; - } - } - } else { - if (ip_rb && !ip_rb_last) { - right_ip_double_time=jiffies; - right_double=TRUE; - } - } - } else { - if (Bt(&tss_focus->crt_flags,CRTf_NO_DOUBLE_CLICK)) { - if (ip_rb && !ip_rb_last) { - QueueMsg(tss_focus,0, - MSG_IP_R_DOWN,p1,p2,0); - cmd=MSG_IP_R_DOWN; - } else if (!ip_rb && ip_rb_last) { - QueueMsg(tss_focus,0, - MSG_IP_R_UP,p1,p2,0); - cmd=MSG_IP_R_UP; - } - } else { - if (ip_rb && !ip_rb_last) { - right_double=FALSE; - right_down_sent=FALSE; - right_ip_double_time=jiffies+ - double_click_mS*JIFFY_FREQ/1000; - } - } - } - - ip_lb_last=ip_lb; - ip_rb_last=ip_rb; - old_ip_lb=ip_lb; - old_ip_rb=ip_rb; - old_ipx=ipx; - old_ipy=ipy; - old_ipz=ipz; - } - return cmd; -} - -U8 WinPointAndSleep() -{ - U8 timeout_val,timeout_val2,cmd=0; - - if (sys_cur_focus_task) - cmd=WinQueueKbdMouseMsgs; - else { - RefocusWin; - if (!sys_cur_focus_task) - U8FifoFlush(scan_code_fifo); - } - - if (sys_cur_focus_task) - Btr(&sys_cur_focus_task->task_flags,TSSf_HAS_SONG); - - timeout_val=WinCalcRefreshTimeout; - WinUpdateIP; - last_refresh_start_time=TssTotalTime; - GrUpdateScreen(gr_merge_base,grbase2,textbase); - last_refresh_end_time=TssTotalTime; - - if (sys_cur_focus_task) { - if (!Bt(&sys_cur_focus_task->task_flags,TSSf_HAS_SONG)) { - AFree(cur_song); - cur_song=NULL; - } - } - if (cur_song) { - if (!cur_song_tss) - cur_song_tss=Spawn(&CurSongTsk,"Current Song"); - } else { - if (cur_song_tss) { - Kill(cur_song_tss); - cur_song_tss=NULL; - } - } - win_updates++; - if (!mouse_install_attempts) { - Fs->task_flags|=1<time_slice_starttask_flags&=~(1<timeout_val) - timeout_val2=timeout_val; - - Fs->task_flags|=1<time_slice_starttask_flags&=~(1<time_slice_starttask_flags,TSSf_IDLE); - - if (full_update) { - if (Fs->cur_ltf) - old_full_update=Bts(&Fs->cur_ltf->flags,LTFf_DO_FULL_UPDATE); - } - - //We might catch it in the middle of an update - //If do full update, set cur position - update_cnt=win_updates; - gr_update_cnt=gr_win_updates; - while (update_cnt==win_updates || - gr_update_cnt==gr_win_updates) - SwapInNext; - - if (full_update) { - //Do update with cur position - update_cnt=win_updates; - gr_update_cnt=gr_win_updates; - while (update_cnt==win_updates || - gr_update_cnt==gr_win_updates) - SwapInNext; - if (Fs->cur_ltf) - AssignBit(&Fs->cur_ltf->flags,LTFf_DO_FULL_UPDATE,old_full_update); - } - AssignBit(&Fs->task_flags,TSSf_IDLE,old_idle); -} - -#help_index "Windows" - -public BoolU8 WinToTop(TssStruct *tss=NULL) -{ - BoolU4 result=FALSE,old_flags=GetFlags; - TssStruct *next,*last; - if (!tss) tss=Fs; - //REMOVE - Cli; //TODO Multiprocessor safe - if (!ValidateTss(tss)) { - SetFlags(old_flags); - return result; - } - if (sys_update_screen_tss->last_tss!=tss) { - next=tss->next_tss; - last=tss->last_tss; - next->last_tss=last; - last->next_tss=next; - AddTaskToQueue(tss,sys_update_screen_tss); - result=TRUE; - } - if (Bt(&tss->task_flags,TSSf_LOCAL_USER)) - sys_cur_focus_task=tss; - SetFlags(old_flags); - return result; -} -ext[EXT_WIN_TO_TOP]=&WinToTop; - -void SetWinHorz(TssStruct *tss,I8 i,I8 j) -{ - I8 d=j-i; - if (d<0) d=0; - if (i>=TEXT_COLS) { - i=TEXT_COLS-1; - j=i+d; - } - if (j<0) { - j=0; - i=j-d; - } - if (i>j) { - if (i>0) - j=i; - else - i=j; - } - if (tss->win_left!=i || tss->win_right!=j) { - Bts(&tss->crt_flags,CRTf_HAS_BEEN_RESIZED); - Bts(&tss->crt_flags,CRTf_HAS_BEEN_RESIZED2); - } - tss->win_left=i; - tss->win_right=j; -} - -void SetWinVert(TssStruct *tss,I8 i,I8 j) -{ - I8 d=j-i; - if (d<0) d=0; - if (i>=TEXT_ROWS) { - i=TEXT_ROWS-1; - j=i+d; - } - if (j<=0) { - j=1; - i=j-d; - } - if (i>j) { - if (i>=0) - j=i; - else - i=j; - } - if (tss->win_top!=i || tss->win_bottom!=j) { - Bts(&tss->crt_flags,CRTf_HAS_BEEN_RESIZED); - Bts(&tss->crt_flags,CRTf_HAS_BEEN_RESIZED2); - } - tss->win_top=i; - tss->win_bottom=j; -} - -BoolU8 SetCursorPosition(TssStruct *tss,I8 iptx,I8 ipty,BoolU4 set_cursor=TRUE) -{ - Ltf *l; - if (tss->win_top<=ipty && tss->win_bottom>=ipty && - tss->win_left<=iptx && tss->win_right>=iptx) { - if (l=tss->aux_ltf) { - if (set_cursor) { - //set top line - l->recalc_start=l; - LtfUpdateWinJoin(l,FALSE,TRUE,TRUE,FALSE,OFF); - - l->x=iptx-tss->win_left+l->line_start_col; - l->y=ipty-tss->win_top+l->cur_top_line_num; - LtfUpdateWinJoin(l,FALSE,FALSE,FALSE,TRUE,OFF); - if (!l->best_d) - goto done; - } - } - if (l=tss->cur_ltf) { - if (set_cursor) { - - //set top line - l->recalc_start=l; - LtfUpdateWinJoin(l,FALSE,TRUE,TRUE,FALSE,OFF); - - l->x=iptx-tss->win_left+l->line_start_col; - l->y=ipty-tss->win_top+l->cur_top_line_num; - LtfUpdateWinJoin(l,FALSE,FALSE,FALSE,TRUE,OFF); - } - } -done: - WinToTop(tss); - return TRUE; - } - return FALSE; -} - -void UpdateDerivedTssValues(TssStruct *tss) -{ -//Inside the Border - tss->win_pixel_left =FONT_WIDTH*tss->win_left; - tss->win_pixel_right =FONT_WIDTH*(tss->win_right+1)-1; - tss->win_pixel_top =FONT_HEIGHT*tss->win_top; - tss->win_pixel_bottom=FONT_HEIGHT*(tss->win_bottom+1)-1; - -//Outside the border - if (Bt(&tss->crt_flags,CRTf_NO_BORDER)) { - tss->win_border_pixel_left =tss->win_pixel_left; - tss->win_border_pixel_right =tss->win_pixel_right; - tss->win_border_pixel_top =tss->win_pixel_top; - tss->win_border_pixel_bottom=tss->win_pixel_bottom; - } else { - tss->win_border_pixel_left =tss->win_pixel_left-FONT_WIDTH; - tss->win_border_pixel_right =tss->win_pixel_right+FONT_WIDTH; - tss->win_border_pixel_top =tss->win_pixel_top-FONT_HEIGHT; - tss->win_border_pixel_bottom=tss->win_pixel_bottom+FONT_HEIGHT; - } -} - -public void WinTileHorz() -{ - TssStruct *tss,*last_tss=Fs; - I8 cnt,c,i,vert_size; - BoolU4 old_preempt=Preempt(OFF); - - tss=sys_update_screen_tss; - cnt=0; - do { - if (Bt(&tss->task_flags,TSSf_LOCAL_USER)) - cnt++; - tss=tss->last_tss; - } while (tss!=sys_update_screen_tss); - - - tss=sys_update_screen_tss; - i=0; - do { - if (Bt(&tss->task_flags,TSSf_LOCAL_USER)) { - c=cnt-(i&~3); - if (!c) - c=1; - else if (c>4) - c=4; - vert_size=(TEXT_ROWS-1)/c; - - tss->win_right=TEXT_COLS-2; - tss->win_left=1; - tss->win_top=(i&3)*vert_size+2; - tss->win_bottom=((i&3)+1)*vert_size; - last_tss=tss; - if ((i&3)==3) - tss->win_bottom=TEXT_ROWS-2; - i++; - UpdateDerivedTssValues(tss); - } - tss=tss->last_tss; - } while (tss!=sys_update_screen_tss); - last_tss->win_bottom=TEXT_ROWS-2; - LBts(&sys_semas[SYS_SEMA_CLEAR_SCREEN_TEXT],0); - Preempt(old_preempt); -} - -public void WinTileVert() -{ - TssStruct *tss,*last_tss=Fs; - I8 cnt,c,i,horz_size; - BoolU4 old_preempt=Preempt(OFF); - tss=sys_update_screen_tss; - cnt=0; - do { - if (Bt(&tss->task_flags,TSSf_LOCAL_USER)) - cnt++; - tss=tss->last_tss; - } while (tss!=sys_update_screen_tss); - - tss=sys_update_screen_tss; - i=0; - do { - if (Bt(&tss->task_flags,TSSf_LOCAL_USER)) { - c=cnt-(i&~3); - if (!c) - c=1; - else if (c>4) - c=4; - horz_size=TEXT_COLS/c; - - tss->win_top=2; - tss->win_bottom=TEXT_ROWS-2; - tss->win_left=(i&3)*horz_size+1; - tss->win_right=((i&3)+1)*horz_size-1; - last_tss=tss; - if ((i&3)==3) - tss->win_right=TEXT_COLS-2; - i++; - UpdateDerivedTssValues(tss); - } - tss=tss->last_tss; - } while (tss!=sys_update_screen_tss); - last_tss->win_right=TEXT_COLS-2; - LBts(&sys_semas[SYS_SEMA_CLEAR_SCREEN_TEXT],0); - Preempt(old_preempt); -} - - -public void WinMax(TssStruct *tss=NULL) -{ - BoolU4 old_preempt=Preempt(OFF); - if (!tss) tss=Fs; - if (Bt(&tss->crt_flags,CRTf_NO_BORDER)) { - tss->win_right=TEXT_COLS-1; - tss->win_left=0; - tss->win_top=1; - tss->win_bottom=TEXT_ROWS-1; - } else { - tss->win_right=TEXT_COLS-2; - tss->win_left=1; - tss->win_top=2; - tss->win_bottom=TEXT_ROWS-2; - } - UpdateDerivedTssValues(tss); - WinToTop(tss); - Preempt(old_preempt); -} - -public BoolU8 WinBorder(BoolU4 val,TssStruct *tss=NULL) -{ - BoolU4 old_has_border, - old_preempt=Preempt(OFF); - if (!tss) tss=Fs; - old_has_border=!Bt(&tss->crt_flags,CRTf_NO_BORDER); - if (val) { - if (!old_has_border) { - Btr(&tss->crt_flags,CRTf_NO_BORDER); - tss->win_right--; - tss->win_left++; - tss->win_top++; - tss->win_bottom--; - UpdateDerivedTssValues(tss); - } - } else { - if (old_has_border) { - Bts(&tss->crt_flags,CRTf_NO_BORDER); - tss->win_right++; - tss->win_left--; - tss->win_top--; - tss->win_bottom++; - UpdateDerivedTssValues(tss); - } - } - Preempt(old_preempt); - return old_has_border; -} - -void WinManagerTsk() -{ - TssStruct *tss=Fs; - I8 x,y,cmd; - Ltf *l; - LtfEntry *ll; - I8 my_ipz=0; - BoolU4 has_border; - U8 old_flags=GetFlags; - - InitCrt; - Fs->win_left=0; - Fs->win_right=TEXT_COLS-1; - Fs->win_top=0; - Fs->win_bottom=TEXT_ROWS-1; - UpdateDerivedTssValues(Fs); - Bts(&Fs->crt_flags,CRTf_NO_BORDER); - Bts(&Fs->crt_flags,CRTf_SHOW); - LBts(&sys_semas[SYS_SEMA_CLEAR_SCREEN_TEXT],0); - Raw(OFF); - GrSetupTable(grbase2); - ext[EXT_SCAN_KEY]=&WinScanKey; - while (TRUE) { - try { -wmt_start: - Fs->update_win=ext[EXT_WALLPAPER]; - do { - Cli; - if (ValidateTss(tss)) - tss=tss->last_tss; - else - tss=Fs->last_tss; - SetFlags(old_flags); - if (tss==Fs) { - WinPointAndSleep; - FinishOffDyingTsses; - } - } while (!ValidateTss(tss) || tss==Fs || !Bt(&tss->crt_flags,CRTf_SHOW)); - UpdateDerivedTssValues(tss); - if (ip_inhibit_win_operations) - goto wmt_start; - - if (Bt(&tss->crt_flags,CRTf_NO_BORDER)) - has_border=FALSE; - else - has_border=TRUE; - - if (!old_ip_lb && ip_lb) { - if (SetCursorPosition(tss,iptx,ipty)) { - if (l=tss->aux_ltf) { - if (!l->best_d) { - ll=l->cur_entry; - if (ll!=l) { - if (ll->flags & LTFLF_HAS_BORDER) - ll->flags|=LTFLF_SOLID_BORDER; - } - old_ip_lb=TRUE; - goto wmt_start; - } - } - if (l=tss->cur_ltf) { - ll=l->cur_entry; - if (ll!=l) { - if (ll->flags & LTFLF_HAS_BORDER) - ll->flags|=LTFLF_SOLID_BORDER; - } - } - old_ip_lb=TRUE; - goto wmt_start; - } - } - if (old_ip_lb && !ip_lb) { - if (ipty==tss->win_top-1) { - if (iptx>=tss->win_left && iptxwin_left+4) { - if (Bt(&tss->crt_flags,CRTf_HAS_MENU)) { - QueueMsg(tss,0,MSG_KEY_DOWN,0,SC_GUI,0); - old_ip_lb=FALSE; - goto wmt_start; - } - } else if (iptx>=tss->win_right-2 && iptx<=tss->win_right) { - if (Bt(&tss->crt_flags,CRTf_HAS_CLOSE_WIN)) { - if (tss->cur_ltf) - QueueMsg(tss,0,MSG_KEY_DOWN,CH_CTRLQ,0,0); - else - Kill(tss,FALSE); - old_ip_lb=FALSE; - goto wmt_start; - } - } - } else if (SetCursorPosition(tss,iptx,ipty,FALSE)) { - if (l=tss->aux_ltf) { - if (!l->best_d) { - do cmd=WinPointAndSleep; - while (ValidateTss(tss) && - (ip_lb || left_ip_double_time)); - if (ValidateTss(tss)) { - if (cmd==MSG_IP_L_UP) { - l=tss->aux_ltf; - ll=l->cur_entry; - if (ll!=l) { - if (ll->flags & LTFLF_HAS_BORDER) - ll->flags&=~LTFLF_SOLID_BORDER; - if (ll->btype==LTFT_CHECK_BOX || ll->btype==LTFT_HIDE_START || - (ll->flags & - (LTFLF_TREE | LTFLF_LINK | LTFLF_LEFT_CB | LTFLF_LEFT_MACRO | LTFLF_LEFT_EXP))) - QueueMsg(tss,0,MSG_KEY_DOWN,CH_SPACE,0,0); - } - } else if (cmd==MSG_IP_L_D_UP) - QueueMsg(tss,0,MSG_KEY_DOWN,CH_ESC,0,0); - } - old_ip_lb=FALSE; - goto wmt_start; - } - } - if (l=tss->cur_ltf) { - do cmd=WinPointAndSleep; - while (ValidateTss(tss) && - (ip_lb || left_ip_double_time)); - if (ValidateTss(tss)) { - if (cmd==MSG_IP_L_UP) { - l=tss->cur_ltf; - ll=l->cur_entry; - if (ll!=l) { - if (ll->flags & LTFLF_HAS_BORDER) - ll->flags&=~LTFLF_SOLID_BORDER; - if (ll->btype==LTFT_CHECK_BOX || ll->btype==LTFT_HIDE_START || - (ll->flags & - (LTFLF_TREE | LTFLF_LINK | LTFLF_LEFT_CB | LTFLF_LEFT_MACRO | LTFLF_LEFT_EXP))) - QueueMsg(tss,0,MSG_KEY_DOWN,CH_SPACE,0,0); - } - } else if (cmd==MSG_IP_L_D_UP) - QueueMsg(tss,0,MSG_KEY_DOWN,CH_ESC,0,0); - } - } - old_ip_lb=FALSE; - goto wmt_start; - } - } - - if (ip_has_wheel) { - if (my_ipz!=ipz && tss==sys_cur_focus_task) { - tss->scroll_y+=ipz-my_ipz; - my_ipz=ipz; - if (tss->scroll_y<0) - tss->scroll_y=0; - if (tss->scroll_y>tss->win_bottom+1-tss->win_top) - tss->scroll_y=tss->win_bottom+1-tss->win_top; - Bts(&tss->crt_flags,CRTf_SCROLL_Y); - if (tss->cur_ltf) { - while (ValidateTss(tss) && - Bt(&tss->crt_flags,CRTf_SCROLL_Y)) - WinPointAndSleep; - } - if (ValidateTss(tss)) - SetCursorPosition(tss, - ((tss->win_left+tss->win_right)>>1), - (tss->win_top+tss->win_bottom)>>1); - goto wmt_start; - } - } - if (old_ip_rb && !ip_rb) { - if (SetCursorPosition(tss,iptx,ipty,FALSE)) { - if (l=tss->aux_ltf) { - if (!l->best_d) { - do cmd=WinPointAndSleep; - while (ValidateTss(tss) && - (ip_rb || right_ip_double_time)); - if (ValidateTss(tss)) { - if (cmd==MSG_IP_R_UP) { - if (SetCursorPosition(tss,iptx,ipty)) { - if (l=tss->aux_ltf) { - ll=l->cur_entry; - if (ll!=l) { - if (ll->btype==LTFT_LINK || - (ll->flags & - (LTFLF_RIGHT_CB | LTFLF_RIGHT_MACRO | LTFLF_RIGHT_EXP))) - QueueMsg(tss,0,MSG_KEY_DOWN,CH_CR,0,0); - } - } - } - } else if (cmd==MSG_IP_R_D_UP) - QueueMsg(tss,0,MSG_KEY_DOWN,CH_CTRLQ,0,0); - } - old_ip_rb=FALSE; - goto wmt_start; - } - } - if (l=tss->cur_ltf) { - do cmd=WinPointAndSleep; - while (ValidateTss(tss) && - (ip_rb || right_ip_double_time)); - if (ValidateTss(tss)) { - if (cmd==MSG_IP_R_UP) { - if (SetCursorPosition(tss,iptx,ipty)) { - if (l=tss->cur_ltf) { - ll=l->cur_entry; - if (ll!=l) { - if (ll->btype==LTFT_LINK || - (ll->flags & - (LTFLF_RIGHT_CB | LTFLF_RIGHT_MACRO | LTFLF_RIGHT_EXP))) - QueueMsg(tss,0,MSG_KEY_DOWN,CH_CR,0,0); - } - } - } - } else if (cmd==MSG_IP_R_D_UP) - QueueMsg(tss,0,MSG_KEY_DOWN,CH_CTRLQ,0,0); - } - } - old_ip_rb=FALSE; - goto wmt_start; - } - } - if (ip_lb && !old_ip_lb) { - if (has_border && - tss->win_top==ipty+1 && - iptx>=tss->win_left-1 && iptx<=tss->win_right+1) { - if (iptx>=tss->win_left && iptxwin_left+4 && - Bt(&tss->crt_flags,CRTf_HAS_MENU)) { - old_ip_lb=TRUE; - goto wmt_start; - } - if (iptx>=tss->win_right-2 && iptx<=tss->win_right && - Bt(&tss->crt_flags,CRTf_HAS_CLOSE_WIN)) { - old_ip_lb=TRUE; - goto wmt_start; - } - x=iptx-tss->win_left; - if (ip_lb) { - WinToTop(tss); - while (ip_lb && ValidateTss(tss)) { - SetWinHorz(tss,iptx-x,tss->win_right+(iptx-x)-tss->win_left); - SetWinVert(tss,ipty+1,tss->win_bottom+ipty+1-tss->win_top); - LBts(&sys_semas[SYS_SEMA_CLEAR_SCREEN_TEXT],0); - UpdateDerivedTssValues(tss); - WinPointAndSleep; - } - } - old_ip_lb=FALSE; - goto wmt_start; - } - if (has_border && tss->win_left==iptx+1 && - (ipty>=tss->win_top-1 && ipty<=tss->win_bottom+1)) { - y=ipty-tss->win_top; - if (ip_lb) { - WinToTop(tss); - while (ip_lb && ValidateTss(tss)) { - SetWinHorz(tss,iptx+1,tss->win_right+iptx+1-tss->win_left); - SetWinVert(tss,ipty-y,tss->win_bottom+(ipty-y)-tss->win_top); - LBts(&sys_semas[SYS_SEMA_CLEAR_SCREEN_TEXT],0); - UpdateDerivedTssValues(tss); - WinPointAndSleep; - } - } - old_ip_lb=FALSE; - goto wmt_start; - } - if (has_border && tss->win_right+1==iptx && tss->win_bottom+1==ipty) { - if (ip_lb) { - WinToTop(tss); - while (ip_lb && ValidateTss(tss)) { - SetWinHorz(tss,tss->win_left,iptx-1); - SetWinVert(tss,tss->win_top,ipty-1); - LBts(&sys_semas[SYS_SEMA_CLEAR_SCREEN_TEXT],0); - UpdateDerivedTssValues(tss); - WinPointAndSleep; - } - } - old_ip_lb=FALSE; - goto wmt_start; - } - if (has_border && tss->win_bottom==ipty-1 && - iptx>=tss->win_left && iptx<=tss->win_right) { - if (iptx==(tss->scroll_x+tss->win_left)) { - while (ip_lb && ValidateTss(tss)) { - tss->scroll_x=iptx-tss->win_left; - Bts(&tss->crt_flags,CRTf_SCROLL_X); - WinPointAndSleep; - SetCursorPosition(tss, - ((tss->win_left+tss->win_right)>>1), - (tss->win_top+tss->win_bottom)>>1); - } - } else { - if (ip_lb) { - WinToTop(tss); - while (ip_lb && ValidateTss(tss)) { - SetWinVert(tss,tss->win_top,ipty-1); - LBts(&sys_semas[SYS_SEMA_CLEAR_SCREEN_TEXT],0); - UpdateDerivedTssValues(tss); - WinPointAndSleep; - } - } - } - old_ip_lb=FALSE; - goto wmt_start; - } - if (has_border && tss->win_right==iptx-1 && - ipty>=tss->win_top && ipty<=tss->win_bottom) { - if (ipty==(tss->scroll_y+tss->win_top)) { - while (ip_lb && ValidateTss(tss)) { - tss->scroll_y=ipty-tss->win_top; - Bts(&tss->crt_flags,CRTf_SCROLL_Y); - WinPointAndSleep; - SetCursorPosition(tss, - ((tss->win_left+tss->win_right)>>1), - (tss->win_top+tss->win_bottom)>>1); - } - } else { - if (ip_lb) { - WinToTop(tss); - while (ip_lb && ValidateTss(tss)) { - SetWinHorz(tss,tss->win_left,iptx-1); - LBts(&sys_semas[SYS_SEMA_CLEAR_SCREEN_TEXT],0); - UpdateDerivedTssValues(tss); - WinPointAndSleep; - } - } - } - old_ip_lb=FALSE; - goto wmt_start; - } - } - } catch { - Beep; - Fs->catch_except=TRUE; - tss=Fs; - } - } -} -#help_index "" diff --git a/LT/Adam/WordStat/WSDict.APZ b/LT/Adam/WordStat/WSDict.APZ deleted file mode 100644 index dd84144..0000000 --- a/LT/Adam/WordStat/WSDict.APZ +++ /dev/null @@ -1,450 +0,0 @@ -I8 WsdNextCmd(I1 **ptr_) -{ - I8 result=-1; - I1 ch,*ptr=*ptr_,*ptr2; - do { - do { - if (!(ch=*ptr++)) goto done; - } while (ch!='<'); - - ptr2=ptr; - do { - if (!(ch=*ptr2++)) goto done; - } while (ch!='>'); - *--ptr2=0; - result=MatchListEntry(ptr,"h1\0/h1\0def\0/def\0hw\0/hw\0tt\0/tt\0" -"ety\0@fld\0@cd\0@blockquote\0@wordforms\0@note\0@altname\0@chform\0@cref\0@syn\0" -"/ety\0@/fld\0@/cd\0@/blockquote\0@/wordforms\0@/note\0@/altname\0@/chform\0@/cref\0@/syn\0"); - *ptr2++='>'; - ptr=ptr2; - } while (result<0); - -done: - *ptr_=ptr; - return result; -} - -I1 *WsdNextEntry(I1 **ptr_) -{ - I1 *ignore,*result,ch,*ptr=*ptr_,buf[WSD_BLK_SIZE],*out_ptr=buf; - I8 l; - do { - do { - if (!(ch=*ptr++)) goto done; - if (ch!='<') { - *out_ptr++=ch; - if (ch=='$$') - *out_ptr++=ch; - } else - break; - } while (TRUE); - ignore="b>\0i>\0p>\0/b>\0/i>\0/p>\0" - "ets>\0col>\0spn>\0/ets>\0/col>\0/spn>\0er>\0as>\0cs>\0cd>\0ex>\0" - "/er>\0/as>\0/cs>\0/cd>\0/ex>\0" - "note>\0/note>\0blockquote>\0/blockquote>\0"; - while (*ignore) { - l=StrLen(ignore); - if (!StrNCmp(ptr,ignore,l)) { - ptr+=l; - break; - } else - ignore+=l+1; - } - if (!*ignore) - break; - } while (TRUE); -done: - *out_ptr++=0; - result=NewStr(buf); - *ptr_=ptr-1; - return result; -} - -I8 WsdCompareWords(I1 **e1,I1 **e2) -{ - return StrCmp(*e1,*e2); -} - -I1 *WsdSortWords(I1 *start,I8 size,I8 word_cnt) -{ - I1 **ptr_array=MAlloc(sizeof(void *)*word_cnt), - *out_start=MAlloc(size), - *ptr=start,*ptr2; - I8 i=0; - while (*ptr) { - ptr_array[i++]=ptr; - ptr+=StrLen(ptr)+3; - } - coutln "Sorting..."; Sleep(100); - QSort(ptr_array,word_cnt,sizeof(void *),&WsdCompareWords); - coutln "Done..."; Sleep(100); - - ptr=out_start; - for (i=0;ilargest_entry) - largest_entry=out_ptr-def_word_start; - def_word_start=out_ptr; - if (st=WsdNextEntry(&in_ptr)) { - if (*st) { - if (StrICmp(st,last_word)) { - word_cnt++; - - *word_ptr++=WSD_WORD_CHAR; - last_word=word_ptr; - StrCpy(word_ptr,st); - word_ptr+=StrLen(st)+1; - - d=word_ptr; - *d=(out_ptr-out_start)/WSD_BLK_SIZE; - word_ptr+=2; - - *out_ptr++=WSD_WORD_CHAR; - StrCpy(out_ptr,st); - out_ptr+=StrLen(st)+1; - } - Free(st); - - do { - do { - cmd=WsdNextCmd(&in_ptr); - if (cmd==WSD_H1) - goto next_word; - } while (cmd>=0 && !(cmd==WSD_DEF||cmd==WSD_PRONUNCIATION||cmd==WSD_POS||cmd==WSD_EXTRA)); - if (cmd==WSD_DEF) { - if(st=WsdNextEntry(&in_ptr)) { - if (*st) { - *out_ptr++=WSD_DEF_CHAR; - StrCpy(out_ptr,st); - out_ptr+=StrLen(st)+1; - } - Free(st); - } - } else if (cmd==WSD_PRONUNCIATION) { - if(st=WsdNextEntry(&in_ptr)) { - if (*st) { - *out_ptr++=WSD_PRONUNCIATION_CHAR; - StrCpy(out_ptr,st); - out_ptr+=StrLen(st)+1; - } - Free(st); - } - } else if (cmd==WSD_POS) { - if(st=WsdNextEntry(&in_ptr)) { - if (*st) { - *out_ptr++=WSD_POS_CHAR; - StrCpy(out_ptr,st); - out_ptr+=StrLen(st)+1; - } - Free(st); - } - } else if (cmd==WSD_EXTRA) { - if(st=WsdNextEntry(&in_ptr)) { - if (*st) { - *out_ptr++=WSD_EXTRA_CHAR; - StrCpy(out_ptr,st); - out_ptr+=StrLen(st)+1; - } - Free(st); - } - } - } while (cmd==WSD_DEF||cmd==WSD_PRONUNCIATION||cmd==WSD_POS||cmd==WSD_EXTRA); - } else - Free(st); - } - } - } while (cmd>=0); - *out_ptr++=WSD_END_CHAR; - *word_ptr++=WSD_END_CHAR; - - Free(in_start); - - PrintF("Blk Size :%d\r\n",WSD_BLK_SIZE); - PrintF("Blk Cnt :%04X\r\n",(out_ptr-out_start+WSD_BLK_SIZE-1)/WSD_BLK_SIZE); - PrintF("Largest Entry :%d\r\n",largest_entry); - PrintF("Word Count :%d\r\n",word_cnt); - - WriteFile(WSD_DEF_FILENAME,out_start,out_ptr-out_start); - PrintF("Def File Size :%d\r\n",out_ptr-out_start); - - sorted_word_start=WsdSortWords(word_start,word_ptr-word_start,word_cnt); - WriteFile(WSD_WORD_FILENAME,sorted_word_start,word_ptr-word_start); - PrintF("Word File Size:%d\r\n",word_ptr-word_start); - - Free(out_start); - Free(word_start); - Free(sorted_word_start); -} - - -public void WsdLoadWords() -{ - I8 size; - SysHashEntry *temph; - I1 *in_ptr,*in_start,*st2; - U2 *d; - ws_dict_num_words=0; - if (in_ptr=ReadFile(WSD_WORD_FILENAME,&size)) { - in_start=in_ptr; - ws_dict_word_list=AMAlloc(size); - MemCpy(ws_dict_word_list,in_start,size); - ws_dict_word_list_size=size; - - while (in_ptrstr=temph+sizeof(SysHashEntry); - temph->use_cnt=1; - temph->type=HTT_DICT_WORD; - d=in_ptr; - temph->user_data0=*d; - in_ptr+=2; - AddSysHashEntry(temph,ws_hash_table); - ws_dict_num_words++; - } else - in_ptr+=3; - } - Free(in_start); - } -} - - -public I1 *WsdGetDef(I1 *st,I8 def_num=1) -{ - LTFile *f; - SysHashEntry *temph; - I1 *result=NULL,*buf,*in_ptr; - I1 *st2=MStrUtil(st,SU_TO_UPPER); - temph=FindHashEntry(st2,ws_hash_table,HTT_DICT_WORD); - Free(st2); - if (temph) { - if (f=FOpen(WSD_DEF_FILENAME,"r")) { - buf=MAlloc(WSD_BLK_SIZE*2+1); - buf[WSD_BLK_SIZE*2]=0; //terminate - FRBlks(f,buf,temph->user_data0*WSD_BLK_SIZE/BLK_SIZE,WSD_BLK_SIZE*2/BLK_SIZE); - FClose(f); - in_ptr=buf; - while (in_ptruser_data0*WSD_BLK_SIZE/BLK_SIZE,WSD_BLK_SIZE*2/BLK_SIZE); - FClose(f); - in_ptr=buf; - while (in_ptr>1; - r=r1; - while (*r!=WSD_WORD_CHAR && r>ws_dict_word_list) - r--; - if (r[2]==WSD_WORD_CHAR) - r+=2; - else - if (r[1]==WSD_WORD_CHAR) - r++; - if (*r==WSD_WORD_CHAR) - r++; - if (StrNICmp(st,r,n)<=0) - end=r1; - else - start=r1; - } - if (r>ws_dict_word_list) - r--; - } - return r; -} - - -void WsdAddDictWords(Ltf *l,I1 *st=NULL) -{ - I8 i; - I1 *ptr; - if (!st) - st=ws_cur_word; - if (st) { - if (ptr=WsdPointAtWord(st)) { - for (i=0;i=0 && nws_partial_len) - Auto(s+ws_partial_len); - } -} - - -public void WsdDisplayDefs(Ltf *l,I1 *st,I8 num=-1) -{ - I1 *st2,*st3,ch; - I8 i=0; - if (!st) return; - if (*st==WSD_WORD_CHAR) - st++; - LtfPrintF(l,"$$WW,1$$$$FG,RED$$%s:$$FG$$\r\n\r\n",st); - if (num<0) { - if (st3=WsdGetWord(st)) { - st2=st3; - while (ch=*st2++) { - switch (ch) { - case WSD_WORD_CHAR: - break; - case WSD_DEF_CHAR: - LtfPrintF(l,"$$FG,GREEN$$(%d)$$FG$$ %s\r\n", - ++i,st2); - break; - case WSD_PRONUNCIATION_CHAR: - LtfPrintF(l,"$$FG,LTGREEN$$%s$$FG$$\r\n",st2); - break; - case WSD_POS_CHAR: - LtfPrintF(l,"$$FG,BLACK$$%s$$FG$$\r\n",st2); - break; - case WSD_EXTRA_CHAR: - LtfPrintF(l,"$$FG,LTBLUE$$%s$$FG$$\r\n",st2); - break; - } - st2+=StrLen(st2)+1; - } - Free(st3); - } - } else { - while (st2=WsdGetDef(st,++i)) { - if (i==num) - LtfPrintF(l,"$$FG,GREEN$$(%d)$$FG$$ %s\r\n", - i,st2); - Free(st2); - } - } -} - -void WsdPopUpDef(I1 *st,I8 num=-1,TssStruct *parent=NULL) -{ - I1 *buf; - buf=MSPrintF("WsdDisplayDefs(Fs->cur_ltf,\"%s\",%d);View;",st,num); - PopUp(buf,parent); - Free(buf); -} - -void WsdDef(I8 n,TssStruct *parent=NULL) -{ - if (n>=0 && nn; - for (i=0;iside[i]; - coutln "col:",i," rhits:",ms->row_hits," chits:",ms->col_hits; - tempw=ms->next; - while (tempw!=ms) { - coutln " substructs:",tempw->substructs, - " entries:",tempw->entries; - for (j=0;jsubstructs;j++) { - PrintF("(%04X %04X) ", - tempw->subs[j].hits, - tempw->subs[j].repeats); - } - CrLf; - tempw=tempw->next; - } - } - - View; -} - -WsHashEntry *WsAddHash(I1 *w) -{ - WsHashEntry *tempw=FindHashEntry(w,ws_hash_table,HTT_WORD); - if (tempw) { - tempw->hits++; - return tempw; - } - tempw=AMAllocZ(sizeof(WsHashEntry)); - tempw->word=ANewStr(w); - tempw->type=HTT_WORD; - tempw->use_cnt=1; - tempw->hits=1; - tempw->num=-1; - AddSysHashEntry(tempw,ws_hash_table); - ws_num_words++; - return tempw; -} - -void WsInitSides(WsMatrix *m) -{ - I8 i; - WsStruct *tempa; - m->n=0; - for (i=0;iside[i].next=&m->side[i].next; - m->side[i].last=&m->side[i].next; - m->side[i].const_minus_one=-1; - m->side[i].row_hits=0; - m->side[i].col_hits=0; - tempa=AMAlloc(sizeof(WsStruct)); - tempa->subs[0].hits=0; - tempa->subs[0].repeats=ws_num_matrix_words; - tempa->entries=ws_num_matrix_words; - tempa->substructs=1; - InsQue(tempa,m->side[i].last); - } -} - -WsStruct *WsFindStruct(WsMatrix *m,I8 col,I8 row, - I8 *row_base,I8 *substruct) -{ - WsStruct *tempa; - if (row>=ws_num_matrix_words || - col>=ws_num_matrix_words) - return NULL; - if (row>1) { - tempa=m->side[col].next; - *row_base=0; - while (row>=tempa->entries) { - row-=tempa->entries; - *row_base+=tempa->entries; - tempa=tempa->next; - } - for (*substruct=0;row>=tempa->subs[*substruct].repeats;*substruct=*substruct+1) { - row-=tempa->subs[*substruct].repeats; - *row_base+=tempa->subs[*substruct].repeats; - } - } else { - row=ws_num_matrix_words-row; - tempa=m->side[col].last; - *row_base=ws_num_matrix_words; - while (row>tempa->entries) { - row-=tempa->entries; - *row_base-=tempa->entries; - tempa=tempa->last; - } - for (*substruct=tempa->substructs-1;row>tempa->subs[*substruct].repeats; - *substruct=*substruct-1) { - row-=tempa->subs[*substruct].repeats; - *row_base-=tempa->subs[*substruct].repeats; - } - *row_base-=tempa->subs[*substruct].repeats; - } - return tempa; -} - -public I8 WsGetHits(WsMatrix *m,I8 col,I8 row) -{ - I8 row_base,substruct; - WsStruct *tempa; - if (row>=ws_num_matrix_words || - col>=ws_num_matrix_words) - return 0; - tempa=WsFindStruct(m,col,row, - &row_base,&substruct); - return tempa->subs[substruct].hits; -} - -WsSubstruct *WsNext(WsSubstruct *s,WsStruct **parent) -{ - I8 i=(s-&(*parent)->subs)>>WS_SUBSTRUCT_SIZE_BITS+1; - if (i>=(*parent)->substructs) { - i=0; - *parent=(*parent)->next; - if ((*parent)->substructs==-1) - return NULL; - } - return &(*parent)->subs[i]; -} - -WsSubstruct *WsLast(WsSubstruct *s,WsStruct **parent) -{ - I8 i=(s-&(*parent)->subs)>>WS_SUBSTRUCT_SIZE_BITS-1; - if (i<0) { - *parent=(*parent)->last; - if ((*parent)->substructs==-1) - return NULL; - i=(*parent)->substructs-1; - } - return &(*parent)->subs[i]; -} - -void WsRemove(WsSubstruct *s,WsStruct *parent) -{ - I8 i=(s-&parent->subs)>>WS_SUBSTRUCT_SIZE_BITS; - if (i<0 || i>=WS_SUBSTRUCTS_PER_STRUCT || parent->substructs<1) - return; - if (parent->substructs==1) { - RemQue(parent); - AFree(parent); - } else { - parent->entries-=s->repeats; - parent->substructs--; - MemCpy(&parent->subs[i],&parent->subs[i+1], - (parent->substructs-i)*sizeof(WsSubstruct)); - } -} - -WsSubstruct *WsInsert(WsSubstruct *s,WsStruct **parent,WsSubstruct *last) -{ - WsStruct *tempa,*p=*parent; - I8 j,k,i=(last-&p->subs)>>WS_SUBSTRUCT_SIZE_BITS+1; - if (i>=WS_SUBSTRUCTS_PER_STRUCT) { - i=0; - p=p->next; - *parent=p; - if (p->substructs==-1) { - tempa=AMAlloc(sizeof(WsStruct)); - InsQue(tempa,p->last); - p=tempa; - *parent=p; - tempa->entries=0; - tempa->substructs=0; - } - } - if (p->substructs==WS_SUBSTRUCTS_PER_STRUCT) { - tempa=p->next; - if (tempa->substructs==-1 || tempa->substructs==WS_SUBSTRUCTS_PER_STRUCT) { - tempa=AMAlloc(sizeof(WsStruct)); - tempa->entries=0; - tempa->substructs=0; - InsQue(tempa,p); - k=0; - for (j=i;jsubstructs;j++) { - MemCpy(&tempa->subs[k],&p->subs[j],sizeof(WsSubstruct)); - tempa->entries+=tempa->subs[k++].repeats; - tempa->substructs++; - } - p->entries-=tempa->entries; - p->substructs-=tempa->substructs; - } else { - for (j=tempa->substructs-1;j>=0;j--) - MemCpy(&tempa->subs[j+1],&tempa->subs[j],sizeof(WsSubstruct)); - MemCpy(&tempa->subs[0], - &p->subs[WS_SUBSTRUCTS_PER_STRUCT-1], - sizeof(WsSubstruct)); - p->entries-=tempa->subs[0].repeats; - p->substructs--; - tempa->entries+=tempa->subs[0].repeats; - tempa->substructs++; - for (j=WS_SUBSTRUCTS_PER_STRUCT-2;j>=i;j--) - MemCpy(&p->subs[j+1], - &p->subs[j],sizeof(WsSubstruct)); - } - } else { - for (j=p->substructs-1;j>=i;j--) - MemCpy(&p->subs[j+1], - &p->subs[j],sizeof(WsSubstruct)); - } - p->entries+=s->repeats; - p->substructs++; - MemCpy(&p->subs[i],s,sizeof(WsSubstruct)); - return &p->subs[i]; -} - -WsSubstruct *WsCondense(WsSubstruct *s,WsStruct **parent) -{ - WsSubstruct *temps,*temps_l,*temps_n; - WsStruct *tempa_l,*tempa_n; - if ((*parent)->substructs==-1) - return NULL; - temps=s; - tempa_l=*parent; - temps_l=WsLast(temps,&tempa_l); - if (temps_l && temps_l->hits==temps->hits) { - temps_l->repeats+=temps->repeats; - tempa_l->entries+=temps->repeats; - WsRemove(temps,*parent); - *parent=tempa_l; - temps=temps_l; - } - tempa_n=*parent; - temps_n=WsNext(temps,&tempa_n); - if (temps_n && temps_n->hits==temps->hits) { - temps->repeats=temps->repeats+temps_n->repeats; - (*parent)->entries=(*parent)->entries+temps_n->repeats; - WsRemove(temps_n,tempa_n); - } - return temps; -} - -I8 WsIncHits(WsMatrix *m,I8 col,I8 row) -{ - I8 row_base,substruct,repeats; - WsSubstruct sn,*temps,*temps1,*temps_l; - WsStruct *tempa,*tempa1,*tempa_l; - - if (row>=ws_num_matrix_words || - col>=ws_num_matrix_words) - return 0; - tempa=WsFindStruct(m,col,row,&row_base,&substruct); - temps=&tempa->subs[substruct]; - repeats=temps->repeats; - if (repeats==1) { - temps->hits++; - temps=WsCondense(temps,&tempa); - } else { - if (row==row_base) { - temps->repeats--; - tempa->entries--; - sn.hits=1; - sn.repeats=1; - tempa_l=tempa; - if (!(temps_l=WsLast(&tempa->subs[substruct],&tempa_l))) { - tempa_l=tempa->last; //header - temps_l=&tempa_l->subs[WS_SUBSTRUCTS_PER_STRUCT-1]; - } - temps=WsInsert(&sn,&tempa_l,temps_l); - temps=WsCondense(temps,&tempa_l); - } else if (row==repeats-1+row_base) { - temps->repeats--; - tempa->entries--; - sn.hits=1; - sn.repeats=1; - temps=WsInsert(&sn,&tempa,temps); - temps=WsCondense(temps,&tempa); - } else { - tempa->entries-=repeats; - sn.hits=temps->hits+1; - sn.repeats=1; - tempa1=tempa; - temps1=temps; - temps=WsInsert(&sn,&tempa1,temps1); - temps1->repeats=row-row_base; - tempa->entries+=temps1->repeats; - sn.repeats=row_base+repeats-(row+1); - sn.hits=temps1->hits; - WsInsert(&sn,&tempa1,temps); - } - } - m->n++; - m->side[col].col_hits++; - m->side[row].row_hits++; - return temps->hits; -} - -void WsAddSingleFile(LTDirEntry *tempd,BoolU4 compile) -{ - I1 ch,ch1,*buf,*ptr,*ptr2; - WsHashEntry *cur_ptr,*last_ptr=NULL; - I8 k=0; - buf=ReadTextFile(tempd->full_name); - ptr=buf; - - while (ch=*ptr++) { - while (ch && !Bt(alpha_numeric_bitmap,ch)) - ch=*ptr++; - if (!ch) break; - ptr--; - ptr2=ptr; - do ch=*ptr2++; - while (Bt(alpha_numeric_bitmap,ch)); - ptr2--; - ch1=*ptr2; - *ptr2=0; - - if (*ptr) { - if (!compile) - WsAddHash(ptr); - else { - cur_ptr=FindHashEntry(ptr,ws_hash_table,HTT_WORD); - if (cur_ptr->num<0) - cur_ptr=NULL; - else - if (last_ptr) - WsIncHits(ws_matrix,last_ptr->num,cur_ptr->num); - last_ptr=cur_ptr; - } - ptr=ptr2+1; - } - if (!ch1) break; - *ptr2=ch1; - } - Free(buf); -} - -void WsAddGlossFile(LTDirEntry *tempd) -{ - LtfEntry *ll; - WsHashEntry *temph; - Ltf *l=LtfRead(tempd->full_name); - I1 *temp; - - ll=l->dummy.next; - while (ll!=l) { - if (ll->btype==LTFT_ANCHOR) { - if (temph=FindHashEntry(ll->aux_str, - ws_hash_table,HTT_WORD)) { - temp=MSPrintF("FA:%s,%s", - tempd->full_name,ll->aux_str); - AFree(temph->glossary); - temph->glossary=ANewStr(temp); - Free(temp); - } - } - ll=ll->next; - } - LtfDel(l); -} - -I8 WsSort(WsHashEntry **e1,WsHashEntry **e2) -{ - I8 r; - if (!(r=(*e2)->hits - (*e1)->hits)) - r=StrCmp((*e1)->word,(*e2)->word); - return r; -} - -I8 WsSkipCrap(I1 *src,I8 len) -{ - I8 j; - j=len-1; - while (j>=0) { - if (Bt(alpha_numeric_bitmap,src[j])) - break; - else - j--; - } - return j+1; -} - -I8 WsPriorWordInStr(I1 *src,I1 *dst,I8 len,I8 buf_size) -{ - I8 i,j=0,k; - BoolU4 cont=TRUE; - i=len-1; - while (i>=0 && cont) { - if (!Bt(alpha_numeric_bitmap,src[i])) - cont=FALSE; - else - i--; - } - if (i>=-1 && len>0) - for (k=i+1;k=0 && nword; - len=StrLen(s); - if (len>ws_partial_len) - Auto(s+ws_partial_len); - } -} - -void WsMan(I8 n,TssStruct *parent=NULL) -{ - I1 *buf; - WsHashEntry *tempw; - SysHashEntry *temph; - BoolU4 old_preempt=Preempt(OFF); - n--; - if (n>=0 && nglossary; - if (temph=FindHashEntry(tempw->word,Fs->hash_table,HTT_ALL)) { - if (temph->source_link) - buf=temph->source_link; - } - if (buf) { - buf=MSPrintF("Edit(\"%s\");",buf); - Preempt(old_preempt); - PopUp(buf,parent); - Free(buf); - } - } - } - Preempt(old_preempt); -} - -void WsAddFillin(I8 i,I8 j,I8 old_num_fillins) -{ - BoolU4 cont; - I8 k; - if (ws_num_fillinsws_fillin_scores[ws_num_fillins-1] || - i==ws_fillin_scores[ws_num_fillins-1] && ws_sorted_words[j]->hits>ws_fillin_hits[ws_num_fillins-1]) { - cont=TRUE; - for (k=ws_num_fillins-1;k>=old_num_fillins && cont;k--) - if (i<=ws_fillin_scores[k] || i==ws_fillin_scores[k] && ws_sorted_words[j]->hits<=ws_fillin_hits[k]) { - cont=FALSE; - k++; //offset k-- - } else { - ws_fillin_scores[k+1]=ws_fillin_scores[k]; - ws_fillin_matches[k+1]=ws_fillin_matches[k]; - ws_fillin_hits[k+1]=ws_fillin_hits[k]; - } - if (ws_num_fillinshits; - ws_fillin_matches[k+1]=j; - } -} - -void WsPutChoices(Ltf *l,Ltf *aux,Ltf *focus_l,LtfEntry *ll,TssStruct *focus_tss) -{ - I8 i,j,k,data_col; - I1 ch=0,*buf,*buf1,*src=NULL,*st; - WsHashEntry *w2; - U8 timeout_jiffies=Jiffies+JIFFY_FREQ*20/1000; - SysHashEntry *temph; - - src=LtfGetLine(focus_l,ll,&data_col); - i=StrLen(src); - buf=MAlloc(i+1); - buf1=MAlloc(i+1); - if (data_col==-1) - data_col=StrLen(i); - data_col=WsPriorWordInStr(src,buf,data_col,256); - ws_partial_len=StrLen(buf); - data_col=WsSkipCrap(src,data_col); - data_col=WsPriorWordInStr(src,buf1,data_col,256); - - if (ws_cur_word) { - if (!StrCmp(ws_cur_word,buf)) - goto done; - } - st=ws_cur_word; - ws_cur_word=ANewStr(buf); - AFree(st); - Preempt(ON); - if (StrLen(buf1)) - w2=FindHashEntry(buf1,ws_hash_table,HTT_WORD); - else - w2=NULL; - ws_num_fillins=0; - if (w2 && w2->numword)) { - i=WsGetHits(ws_matrix,w2->num,ws_sorted_words[j]->num); - WsAddFillin(i,j,0); - } - k=ws_num_fillins; - for (j=0;jword)) - WsAddFillin(0,j,k); - Preempt(OFF); - -done: - LtfReset(l,TRUE); - l->flags|=LTFF_MIN_SIZE; - l->start_text_attribute=(LTBLUE<<4)+BLACK; - aux->start_text_attribute=(LTBLUE<<4)+BLACK; - Fs->text_attribute=l->start_text_attribute; - Fs->border_attribute=l->start_text_attribute; - - LtfPrintF(l,"Word:%-20ts\r\n",ws_cur_word); - for (i=0;iword; - if (ws_sorted_words[ws_fillin_matches[i]]->glossary) - ch='#'; - else - ch=CH_SPACE; - if (focus_tss) { - temph=FindHashEntry(st,focus_tss->hash_table,HTT_ALL); - if (temph) { - if (temph->source_link) - ch='*'; - } - } - LtfPrintF(l,"%cF%02d %-20ts\r\n",ch,i+1,st); - } - WsdAddDictWords(l); - - LtfRecalc(l); - Bts(&Fs->crt_flags,CRTf_SHOW); - WinToTop(Fs); - - Free(src); - Free(buf); - Free(buf1); -} - -void WsTsk() -{ - TssStruct *focus_tss; - Ltf *l; - LtfEntry *ll; - InitLocalTask; - UseConsoleLtf(NULL); - Fs->win_left=50; - do { - Sleep(333); - if (Bt(&ws_flags,WSf_ENABLE)) { - focus_tss=sys_cur_focus_task; - while (Bt(&focus_tss->task_flags,TSSf_INPUT_FILTER_TASK)) - focus_tss=focus_tss->parent_tss; - if (ValidateTss(focus_tss)) { - l=focus_tss->cur_ltf; - if (l && focus_tss!=Fs) { - ll=l->cur_entry; - if (ll) { - if (ll==l) ll=ll->last; - while (ll->last!=l && (ll->btype==LTFT_CR || - ll->btype==LTFT_SOFT_CR)) - ll=ll->last; - while ((ll->last->btype)!=LTFT_CR && ll->last!=l) - ll=ll->last; - if (Bt(&ws_flags,WSf_ENABLE)) - WsPutChoices(Fs->cur_ltf,Fs->aux_ltf,l,ll,focus_tss); - } - } - } - } - } while (!ScanKey); - ws_task=NULL; -} - -void WsTraverseMainFilelist(WsFilemaskEntry *tempfm,BoolU4 compile) -{ - WsFilemaskEntry *tempfm1; - LTDirEntry *tempm; - I8 i; - while (tempfm) { - tempfm1=tempfm->next; - if (!compile) { - tempm=FindFiles(tempfm->mask,1<flist=OrderFiles(tempm,&tempfm->cnt); - } - for (i=0;icnt;i++) { - tempm=tempfm->flist[i]; - if (IsTextFile(tempm->name)) { - coutln tempm->full_name; - WsAddSingleFile(tempm,compile); - } - if (compile) - DelLTDirEntry(tempm); - } - if (compile) { - Free(tempfm->flist); - Free(tempfm); - } - tempfm=tempfm1; - } -} - -void WsTraverseGlossFilelist(WsFilemaskEntry *tempfm) -{ - WsFilemaskEntry *tempfm1; - LTDirEntry *tempm; - I8 i; - while (tempfm) { - tempfm1=tempfm->next; - tempm=FindFiles(tempfm->mask,1<flist=OrderFiles(tempm,&tempfm->cnt); - for (i=0;icnt;i++) { - tempm=tempfm->flist[i]; - if (WildCardMatch("*.GL?",tempm->name)) { - coutln tempm->full_name; - WsAddGlossFile(tempm); - } - DelLTDirEntry(tempm); - } - Free(tempfm->flist); - Free(tempfm); - tempfm=tempfm1; - } -} - - -void WsDelMatrix(WsMatrix *m) -{ - I8 i; - WsStruct *tempw,*tempw1,*tempw2; - if (!m) return; - for (i=0;iside[i]; - tempw=tempw1->next; - while (tempw!=tempw1) { - tempw2=tempw->next; - AFree(tempw); - tempw=tempw2; - } - } - AFree(m); -} - - -public BoolU8 WordStat(BoolU8 val=ON) -{ - BoolU4 old_wordstat=FALSE, - old_preempt=Preempt(OFF); - if (val) { - Bts(&ws_flags,WSf_ENABLE); - if (ValidateTss(ws_task)) - old_wordstat=TRUE; - else - ws_task=Spawn(&WsTsk,"WordStat"); - } else { - Btr(&ws_flags,WSf_ENABLE); - if (ValidateTss(ws_task)) { - old_wordstat=TRUE; - Kill(ws_task); - while (ValidateTss(ws_task)) - SwapInNext; - ws_task=NULL; - } - Bts(&ws_flags,WSf_ENABLE); - } - Preempt(old_preempt); - return old_wordstat; -} - -public void WsInit(I1 *mask) -// Separate directories with ';' -{ - I1 *buf,buf2[512]; - I8 i,j=0; - WsHashEntry *tempw; - BoolU4 old_wordstat; - WsFilemaskEntry *tempfm,*tempfm1; - - while (Bts(&ws_flags,WSf_INIT_IN_PROGRESS)) - SwapInNext; - - old_wordstat=WordStat(OFF); - - if (Fs==adam_tss) - DelHashTable(ws_hash_table); - else - Adam("DelHashTable(ws_hash_table);"); - ws_hash_table=NewHashTable(0x4000,adam_tss); - - ws_num_words=0; - ws_num_matrix_words=0; - AFree(ws_cur_word); - ws_cur_word=NULL; - - tempfm1=NULL; - buf=NewStr(mask); - do { - RemoveFirstSeg(buf,";",buf2); - if (*buf2) { - tempfm=MAlloc(sizeof(WsFilemaskEntry)); - tempfm->next=tempfm1; - tempfm1=tempfm; - tempfm->mask=NewStr(buf2); - tempfm->flist=NULL; - } - } while (*buf2); - Free(buf); - - coutln "\r\n\r\nPass #1"; - WsTraverseMainFilelist(tempfm1,FALSE); - AFree(ws_sorted_words); - ws_sorted_words=AMAlloc(sizeof(void *)*ws_num_words); - - for (i=0;i<=ws_hash_table->mask;i++) { - tempw=ws_hash_table->body[i]; - while (tempw) { - ws_sorted_words[j++]=tempw; - tempw=tempw->next; - } - } - QSort(ws_sorted_words,ws_num_words,sizeof(void *),&WsSort); - for (i=0;inum=i; - if (ws_num_words<=WS_MAX_MATRIX_WORDS) - ws_num_matrix_words=ws_num_words; - else - ws_num_matrix_words=WS_MAX_MATRIX_WORDS; - - WsDelMatrix(ws_matrix); - ws_matrix=AMAlloc(sizeof(WsMatrix)); - - WsInitSides(ws_matrix); - coutln "\r\n\r\nPass #2"; - WsTraverseMainFilelist(tempfm1,TRUE); - - tempfm1=NULL; - buf=NewStr(mask); - do { - RemoveFirstSeg(buf,";",buf2); - if (*buf2) { - tempfm=MAlloc(sizeof(WsFilemaskEntry)); - tempfm->next=tempfm1; - tempfm1=tempfm; - tempfm->mask=NewStr(buf2); - tempfm->flist=NULL; - } - } while (*buf2); - Free(buf); - - coutln "\r\n\r\nGlossary Pass"; - WsTraverseGlossFilelist(tempfm1); - AFree(ws_dict_word_list); - WsdLoadWords; - WordStat(old_wordstat); - Btr(&ws_flags,WSf_INIT_IN_PROGRESS); -} - - - \ No newline at end of file diff --git a/LT/Adam/WordStat/WordStat.APZ b/LT/Adam/WordStat/WordStat.APZ deleted file mode 100644 index 87ed48b..0000000 --- a/LT/Adam/WordStat/WordStat.APZ +++ /dev/null @@ -1,100 +0,0 @@ -#help_index "WordStat" -#help_file "::/LT/Doc/WordStat.TXZ" - -#define WS_SUBSTRUCT_SIZE_BITS 3 -class WsSubstruct -{ - I4 hits,repeats; -}; - -#define WS_SUBSTRUCTS_PER_STRUCT 8 -class WsStruct -{ - WsStruct *next,*last; - I8 substructs, //-1 means WsMatrixSide - entries; - WsSubstruct subs[WS_SUBSTRUCTS_PER_STRUCT]; -}; - -class WsMatrixSide -{ - WsStruct *next,*last; - I8 const_minus_one, //-1 used to header in queue - row_hits,col_hits; -}; - -#define WS_MAX_MATRIX_WORDS 0x8000 -class WsMatrix -{ - I8 n; - WsMatrixSide side[WS_MAX_MATRIX_WORDS]; -}; - -public I8 ws_num_words,ws_num_matrix_words; -SysHashTable *ws_hash_table=NULL; -public I1 *ws_cur_word=NULL; - -#define WSf_ENABLE 0 -#define WSf_INIT_IN_PROGRESS 1 -U8 ws_flags=0; - -public WsMatrix *ws_matrix=NULL; -public WsHashEntry **ws_sorted_words=NULL; -TssStruct *ws_task=NULL; - -class WsFilemaskEntry -{ - WsFilemaskEntry *next; - I1 *mask; - I8 cnt; - LTDirEntry **flist; -}; - - - -#define WS_MAX_FILLINS 10 -I8 ws_partial_len=0,ws_fillin_matches[WS_MAX_FILLINS+1]; -I8 ws_num_fillins=0,ws_fillin_scores[WS_MAX_FILLINS+1],ws_fillin_hits[WS_MAX_FILLINS+1]; - -/**************** Dictionary Stuff ************/ - -#define WSD_RAW_FILENAME "/Text/Dictionary.TTZ" //this is a file I got from project gutenburg -#define WSD_WORD_FILENAME "/LT/Adam/WordStat/WsWords.DTZ" -#define WSD_DEF_FILENAME "/LT/Adam/WordStat/WsDefs.DAT" - -#define WSD_H1 0 -#define WSD_H1_END 1 -#define WSD_DEF 2 -#define WSD_DEF_END 3 -#define WSD_PRONUNCIATION 4 -#define WSD_PRONUNCIATION_END 5 -#define WSD_POS 6 -#define WSD_POS_END 7 -#define WSD_EXTRA 8 -#define WSD_EXTRA_END 9 -#define WSD_BLK_SIZE 0x4000 - -#define WSD_END_CHAR 0x00 -#define WSD_WORD_CHAR 0x01 -#define WSD_DEF_CHAR 0x02 -#define WSD_PRONUNCIATION_CHAR 0x03 -#define WSD_POS_CHAR 0x04 -#define WSD_EXTRA_CHAR 0x05 - -I1 *ws_dict_word_list=NULL; -I8 ws_dict_word_list_size=0, - ws_dict_num_words=0; - -extern void WsdLoadWords(); -extern void WsdAddDictWords(Ltf *l,I1 *st=NULL); - -#define WSD_MAX_FILLINS 10 -I1 *wsd_fillins[WSD_MAX_FILLINS]; -I8 wsd_num_fillins=0; - -/******************************************/ - -#include "WSMain.APZ" -#include "WSDict.APZ" - -#help_index "" diff --git a/LT/Adam/WordStat/WsWords.DTZ b/LT/Adam/WordStat/WsWords.DTZ deleted file mode 100644 index 1ae52877f7d2f9309df1411d7535086610c6b485..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1242430 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 W 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�Ry@;an6)l!LBE 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 Br3nB4 diff --git a/LT/Apps/MusicOrgan/Examples/almighty.CPZ b/LT/Apps/MusicOrgan/Examples/almighty.CPZ deleted file mode 100644 index 9eef72bddd30d77c992da35a02eef0a783cb039a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vSwjSC%vf{ap2+>PCw3SCp(T$OZqxi~qM z9CLCMVhoBh(=%cW6u_vYQZJ?`CJ)Sph@g>5Am5N^K`yx#6uP;&x~9516}mY)!JQmq zP?VaO5@S%Q196(CdRZ!jRh*idrx0V1nipe`Uz(l)^$D_zG0pSOP>3-|%10Pio>&Yq ztt2C{1Qa?*Mk&M?fK5|Ss0Br7twM5QNpc2=sh|LgK`=KywIVsSpu{#LDAW}kS4hbK N9Q&Y%x8~(y000E2mj?g< diff --git a/LT/Apps/MusicOrgan/Examples/appreciate.CPZ b/LT/Apps/MusicOrgan/Examples/appreciate.CPZ deleted file mode 100644 index 107ca81c7383d4069cd2ae91cb94fafdb2ce1cf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$v3SHfmba=Tq zIh8^(67#Z)brfO@AjmyGMNt95RERN%%rAwo6N^$6VhnOK(=$q93@RaF>G}C75LQV( zNHSF~rYI&4Y>*Pj%TQMg3P-pWJGnc#r@A^Dxf?qcx*53}7lWA2M(%~Mkbrmvjr3HA zF(}W^Q!i17F(^sR$w7D#O(C+6jp<{Xf&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vend_task_cb=&EndTsk; - music_tempo=2.5; - try { - while (!ScanKey) { - Play("3sFGFGetBFFDARqEC2G3FC"); - Play("sFGFGetBFFDARqEC2G3FC"); - Play("2eG3GetDB2G3qFDAReECsCRCR"); - Play("2eG3GetDB2G3qFDAReECsCRCR"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/bedewed.CPZ b/LT/Apps/MusicOrgan/Examples/bedewed.CPZ deleted file mode 100644 index 0bd3605ac9dd37a91d324b860ce86dd6f6a6434e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2046 zcmdPb&qyp*NH0n($jD4C=H*fe@YGSV3Gg(sQ_?X~;pM^(%knc*6kPLCLW;9BG#op?D*s)TQ!JL zV4b<8#hJqDlp@9RZ~!!5T^`D&gVU9y*39DoPOB$}=)^QWZ25 zgOd~Uyi+SRL5ev8auO>wl#Ekd-3uL^Q%juP+*4iM3f)sn+}&IY9hG!=xi~qMeDd?N z6=Dn$OB7-ZN-`2l6crR=4B*HmwH(gQ&r^soNXyADhsmcF73;+m#pJ~pfL#H#kABvb zmbe$W=A`CosCYW*DA{;AL844Y#WNVh4Tf+*0mKOlHfLWQ108c{u)!Sc;#%nH=<4PS z3L{4sXt)FvrIy4PlvFCj7?fwEg1in6pj41Ra$-qx2862+V~~@Xo>2k~2zX$jga{2S zfF=hwcOCa2S64q36%Ef4^FKT0j1#l+*FW?VjTrfh2qr2qT~#PwEQB4 z;?$fp-PE$ol+?Tuh4lRVl)Tj9Vm(bzLQqk0bBBhlfAPK9dZ*CaH8zQb|12!pRAe1<7bIFfgbvFfe#7GDuvc;k87=YYGEMP6#T_50aa9 zcAM{H7LYJ6)KHLc&k~i}Tp&S7s31sEWa*L5dsKR&Z|i_$7#J9o85kG@K!$*gRf8G} z67>{v^_^in!@vLk|04;3H2nSl|3AoFP9$*=Nj0#cAaRggpz!uoVFYn`7#J8pCV@;> znVGr~EGW&uz+epW4g&+j!bKV}wzp4DGEmV2sR#Mil!1YPgMooTZKg`uUa$s`Z$Yub zz`zi_31TovAxMY~8~`dCAPPaQ(u8^-a+(gPK9n{sd8nPh){ z@^Y9(Dw&g(K-jL6R8D$KTB34$TkhR$ytlVis#Q)>@tml1c;~k4-5_Uxje-~mBNLe! zayW%1ia1YNvN!j0+IBO~PhT>@zV>2ZU;qW1EGUdM0w;+~QaL$)$@X=#cjtLdnGkJ# zeqHWlCFeG9Vyb|q5m4gqT+*WAdHb72*AkbDad#&vxlR%}snL~tyKIumNhAl%&b>X) zmLC*j3=9k)J3!bIY#Jy%yMm$*6f>TaY&6}vgw#MDHv?x%aP|Pj2`E{BLO*53+0Q&6 zlR%LN%6Fi&=`-mj*c%`(fFci+j#3t#0Y@7s`GBHchJk^BM_6rkY_;Da4H0ni0VQWp z@&WloN!9Jvu2QfLP|mP~=6e;-i7F`|>p(_=)PvOK?ahsb+b6=nzyPwt$H^6(`ao&X M7Mh<`JV9C*04TTS!vFvP diff --git a/LT/Apps/MusicOrgan/Examples/blinded.CPZ b/LT/Apps/MusicOrgan/Examples/blinded.CPZ deleted file mode 100644 index 578fa5d..0000000 --- a/LT/Apps/MusicOrgan/Examples/blinded.CPZ +++ /dev/null @@ -1,36 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - TssStruct *tss; - Fs->end_task_cb=&EndTsk; - tss=PopUpViewStr( - "$$LK-A,\"BF:Acts,9:3\"$$\r\n" - ); - WaitTskIdle(tss); - tss->win_right=Fs->win_right; - tss->win_left=Fs->win_left; - tss->win_top=Fs->win_bottom+3; - tss->win_bottom=tss->win_top+12; - music_tempo=2.5; - try { - while (!ScanKey) { - Play("3qEeACA2G3qCEC2G3E", - "Now... \0 \0 \0 \0 \0I \0see \0the \0light.\r\n\0 \0"); - Play("EeACA2G3qCEC2G3E", - "Now... \0 \0 \0 \0 \0I \0see \0the \0light.\r\n\0 \0"); - Play("GCGBEeDFCAqD", - "It's \0 \0quite \0 \0bright.\r\n\0 \0 \0 \0 \0 \0"); - Play("GCGBEeDFCAqD", - "It's \0 \0quite \0 \0bright.\r\n\0 \0 \0 \0 \0 \0"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/ceaseth.CPZ b/LT/Apps/MusicOrgan/Examples/ceaseth.CPZ deleted file mode 100644 index 128028d0595b35ed97431e85b02f71d50489bdc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vSXoSod=l|W8_ieeLUb#ZZac5*CsbaHe;R$GW6 yp`cI;@=UEla$-qx28gMk0CGE+8=qQ{oLW#~8xj=i3U(z@0D%1s^0GBA7XtvIk50e< diff --git a/LT/Apps/MusicOrgan/Examples/childish.CPZ b/LT/Apps/MusicOrgan/Examples/childish.CPZ deleted file mode 100644 index 7a03ace6774bb24220a5de45e0db555b82135e84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 367 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vuol>2hid`IC9F;(Bf+{0U zRjQLqp_@^$yRoB@yRl=TqoZSLiHoCSv5S+76S8Rp)hQ^{f`X$~Avv)mIRnI0PyqQJ f%#Ba2NKP#%u?-0dbp`tqDG0$K2MRQ6UM>az-PU84 diff --git a/LT/Apps/MusicOrgan/Examples/comprise.CPZ b/LT/Apps/MusicOrgan/Examples/comprise.CPZ deleted file mode 100644 index a6c44ade3e85b33bcdda905e61e7142f57c26da5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 617 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vend_task_cb=&EndTsk; - music_tempo=2.5; - try { - tss=PopUpViewStr( - "$$LK-A,\"BF:Luke,12:16\"$$\r\n" - ); - WaitTskIdle(tss); - tss->win_right=Fs->win_right; - tss->win_left=Fs->win_left; - tss->win_top=Fs->win_bottom+3; - tss->win_bottom=tss->win_top+12; - while (!ScanKey) { - Play("3etGREqDDBRGCB", - "It \0 \0de\0pends \0 \0on \0 \0the \0wea\0ther.\r\n\0"); - Play("etGREqDDBRGCB", - "If \0 \0we \0reach \0 \0the \0 \0end \0ev\0er.\r\n\0"); - Play("2sG3E2G3EqGsGBGBqDsFCFCqBRsCBCB", - "Hand \0 \0of \0 \0God, \0 \0just \0 \0might, \0 \0in\0 \0ter\0 \0cedes.\r\n\0 \0 \0 \0 \0 \0"); - Play("2G3E2G3EqGsGBGBqDsFCFCqBRsCBCB", - "If \0 \0it's \0 \0not \0 \0deemed \0 \0right, \0 \0won't \0 \0suc\0 \0ceed.\r\n\0 \0 \0 \0 \0 \0"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/discerning.CPZ b/LT/Apps/MusicOrgan/Examples/discerning.CPZ deleted file mode 100644 index 261fec1..0000000 --- a/LT/Apps/MusicOrgan/Examples/discerning.CPZ +++ /dev/null @@ -1,20 +0,0 @@ -//star -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - while (TRUE) { - Play("etCCBetGGDetBBFeGCetBABeAAqEqF"); - Play("etCCBetGGDetBBFeGCetBABeAAqEqF"); - Play("eCGqFqDqDqCeDGqCqB"); - Play("eCGqFqDqDqCeDGqCqB"); - } -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/eternity.CPZ b/LT/Apps/MusicOrgan/Examples/eternity.CPZ deleted file mode 100644 index 40239e05c0d1a316eafdd7e973856115cb30e7b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$v|-acT*ObS`#xc6WAhbwM!&CA6A07|i8{{R30 diff --git a/LT/Apps/MusicOrgan/Examples/everlastingly.CPZ b/LT/Apps/MusicOrgan/Examples/everlastingly.CPZ deleted file mode 100644 index e0b6c5434da4ee7b6405ee6a5c0ffa12dcb987b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vZv3k(^pkVjB_^>I(KNQZRx;4-|0Lyj%&F1 diff --git a/LT/Apps/MusicOrgan/Examples/exalt.CPZ b/LT/Apps/MusicOrgan/Examples/exalt.CPZ deleted file mode 100644 index d165b82924ea57dfaadbf4e9573365c270dbafd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 702 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vNDam2`Ny zI60M^^K(-bVhj@VQWRngiZk=l6=DoPd@z}lpO>zu01?4M#uUZmfz?CQD1kf-bpsJD z@K1{|NJ}kJh%qQAO3W+Ic3NZ$mc?vNG9+|}oF$Ni_i7^IcsUQK67|1nXafoZubMlK~3^HR3@=J^L;NC{| zFahhFic%A^!8Ss@Sd1FP!6ikR*{QlQ2Bjc(K`brF0J$PL17tOZwF(Ngpwv~XkepbO ooB?7gD1Z_Zm>Zv3k(^pkVjB_^>IzOaNGTGW5J73snwN_K0OR1kE&u=k diff --git a/LT/Apps/MusicOrgan/Examples/fairness.CPZ b/LT/Apps/MusicOrgan/Examples/fairness.CPZ deleted file mode 100644 index a24e574..0000000 --- a/LT/Apps/MusicOrgan/Examples/fairness.CPZ +++ /dev/null @@ -1,41 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - TssStruct *tss; - Fs->end_task_cb=&EndTsk; - tss=PopUpViewStr( - "$$LK-A,\"BF:Luke,7:42\"$$\r\n" - "\r\n" - "Prodigal Son\r\n" - "$$LK-A,\"BF:Luke,15:21\"$$\r\n" - ); - WaitTskIdle(tss); - tss->win_right=Fs->win_right; - tss->win_left=Fs->win_left; - tss->win_top=Fs->win_bottom+3; - tss->win_bottom=tss->win_top+12; - music_tempo=2.5; - try { - PutS("$$WW+H,1$$"); - while (!ScanKey) { - Play("3qGGsEAEAqAsF2G3F2G3qCeEFqD", - "Life, \0life, \0isn't \0 \0 \0 \0fair. \0Isn't \0 \0 \0 \0fair.\r\n\0 \0 \0 \0"); - Play("GGsEAEAqAsF2G3F2G3qCeEFqD", - "Life, \0life, \0isn't \0 \0 \0 \0fair. \0Isn't \0 \0 \0 \0fair.\r\n\0 \0 \0 \0"); - Play("eFCqEBDBE2eG3EsFEFE", - " \0 \0I \0 \0ne\0ver \0sin.\r\n\0 \0 \0 \0 \0 \0 \0"); - Play("eFCqEBDBE2eG3EsFEFE", - " \0 \0I \0 \0ne\0ver \0win.\r\n\0 \0 \0 \0 \0 \0 \0"); - PutS("$$FG,GREEN$$(A warning on presumption. 'Who loves more man -- forgiven big debt or little?' See prodigal son.)$$FG$$\r\n"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/first.CPZ b/LT/Apps/MusicOrgan/Examples/first.CPZ deleted file mode 100644 index e6e5598b492bd0b62bc99d55723c57a5ef28f04d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2151 zcmdPb&qyp*NH0n($jD4C=H=q$QVHvYgPi;rgR)eG7z0pr#2A1BDaJq{#=z0XMQMa9isC&<-BMFkXfB_OVf3P>L~ zied~vkrZP9iY7f!z=3rt#26@nLWwh=w8Xv0H77M!L&ehxB_HUhcm|^gz|;q8D5ctAMK!r0vsmNXd!u3>$F-XbJQ!i17G04u#FGq<6h!Qx79GVS!k8cxAgdS{7(m8@xFDB9oeE=u zRDhfc3Ii5U7(jvq>|qTC1_osY1_nup!Jr@kd72+;B2)&X0_1U!gBchYlo%KoKrWGG zU|;~LWME)`F+p}hRl%4bmC!JNF+p6AW1*n~VuCQp^U%-%F+oBgLl_tsKwOY!5LXf5 zR8Yu++y=D~&g@J(qWG=|x zASHBTmgy^XwZU~AYqVWpg{{_ aBDJN}hK)wYTjHDFgI8fMt+y?+q+mB2D diff --git a/LT/Apps/MusicOrgan/Examples/fishermen.CPZ b/LT/Apps/MusicOrgan/Examples/fishermen.CPZ deleted file mode 100644 index 54e37ac..0000000 --- a/LT/Apps/MusicOrgan/Examples/fishermen.CPZ +++ /dev/null @@ -1,38 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - TssStruct *tss; - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - try { - tss=PopUpViewStr( - "$$LK-A,\"BF:Matthew,4:19\"$$\r\n" - "$$LK-A,\"BF:Luke,5:4\"$$\r\n" - ); - WaitTskIdle(tss); - tss->win_right=Fs->win_right; - tss->win_left=Fs->win_left; - tss->win_top=Fs->win_bottom+3; - tss->win_bottom=tss->win_top+12; - - while (!ScanKey) { - Play("3qEsGEGEeF2G3BCqCeDEqBsERER", - "$$FG$$Lord, \0I \0 \0am \0 \0feel\0ing \0just \0a \0bit \0un\0in\0spired.\r\n\0With \0 \0 \0 \0"); - Play("qEsGEGEeF2G3BCqCeDEqBsERER", - "net \0or \0 \0with \0 \0reel\0ing \0 \0I \0keep \0get\0ting \0mired.\r\n\0 \0 \0 \0 \0"); - Play("qDetRAFqDGetFC2G3sBCBCqDF", - "$$FG,PURPLE$$Throw \0 \0out \0your \0net.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); - Play("DetRAFqDGetFC2G3sBCBCqDF", - "Make \0 \0you \0a \0bet.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/forgive.CPZ b/LT/Apps/MusicOrgan/Examples/forgive.CPZ deleted file mode 100644 index 9250585..0000000 --- a/LT/Apps/MusicOrgan/Examples/forgive.CPZ +++ /dev/null @@ -1,20 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - try { - while (!ScanKey) { - Play("eGFqCqAqCqAetFDBetDBGeAFeGFqCqAqCqAetFDBetDBGeAFsDEDEetAGEsARARqDsARARqAetRFEqBsDEDEetAGEsARARqDsARARqAetRFEqB"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/forstress.CPZ b/LT/Apps/MusicOrgan/Examples/forstress.CPZ deleted file mode 100644 index 54a06d6..0000000 --- a/LT/Apps/MusicOrgan/Examples/forstress.CPZ +++ /dev/null @@ -1,20 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - try { - while (!ScanKey) { - Play("eEEeGGeRReRCetABCeEDsABABe2G3GeEEeGGeRReRCetABCeEDsABABe2G3GqRqFetFFDeCRqEeFCqFet2G3RFqRqFetFFDeCRqEeFCqFet2G3RF"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/fun.CPZ b/LT/Apps/MusicOrgan/Examples/fun.CPZ deleted file mode 100644 index 9e1f54ef40d729b7f40ab4ca636040d7819bc529..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 561 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$v&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vHSD6tI*3Uvj05h?V*fd&dMYhEq}0FWhPivR!s diff --git a/LT/Apps/MusicOrgan/Examples/good.CPZ b/LT/Apps/MusicOrgan/Examples/good.CPZ deleted file mode 100644 index 77f8ca2..0000000 --- a/LT/Apps/MusicOrgan/Examples/good.CPZ +++ /dev/null @@ -1,27 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - try { - while (!ScanKey) { - Play("3qFeRRqAeRAqGDetBACeCB", - "God \0 \0 \0is \0 \0a \0good \0God. \0(Thank \0 \0 \0God!!)\r\n\0 \0"); - Play("qFeRRqAeRAqGDetBACeCB", - "God \0 \0 \0is \0 \0a \0good \0God. \0(Thank \0 \0 \0God!!)\r\n\0 \0"); - Play("qGsCECEeC2GqR3FeEDqEF", - " \0 \0 \0 \0 \0 \0 \0 \0He \0is \0a \0good \0God.\r\n\0"); - Play("GsCECEeC2GqR3FeEDqEF", - " \0 \0 \0 \0 \0 \0 \0 \0He \0is \0a \0good \0God.\r\n\0"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/heldest.CPZ b/LT/Apps/MusicOrgan/Examples/heldest.CPZ deleted file mode 100644 index 7a60b7b..0000000 --- a/LT/Apps/MusicOrgan/Examples/heldest.CPZ +++ /dev/null @@ -1,27 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - try { - while (!ScanKey) { - Play("3eGCBEqDAEetFECqED", - "Do \0an \0act \0of \0kind\0ness.\r\n\0 \0 \0 \0 \0 \0 \0"); - Play("eGCBEqDAEetFECqED", - "Do \0an \0act \0of \0kind\0ness.\r\n\0 \0 \0 \0 \0 \0 \0"); - Play("GFEEeAAqDFF", - " \0 \0 \0 \0Hold \0 \0a \0hand.\r\n\0 \0"); - Play("GFEEeAAqDFF", - " \0 \0 \0 \0Hold \0 \0a \0hand.\r\n\0 \0"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/heretofore.CPZ b/LT/Apps/MusicOrgan/Examples/heretofore.CPZ deleted file mode 100644 index 37ef216443f246fbb151a63d1123e7c3e9dae308..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmdPb&qyp*D9T-Cf>3JSsbrFkhD2Ab9& zj%!6`i8U`*EiV^Tad3WKI$Wt+v94WeUP^pPVsUnSa+0kY#3-=N+|uIA0Dv^76|ejQl)3Jw31xgpWqLf~yxwsWN6}qLCIJ>)pM9>^cr1Dy5Y=I)mnwN_K E046AkW&i*H diff --git a/LT/Apps/MusicOrgan/Examples/hope.CPZ b/LT/Apps/MusicOrgan/Examples/hope.CPZ deleted file mode 100644 index 8094bd5e53c2e5c0df09543cec82eb89afe7b3bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 649 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$v2Q+zZ`}U7S)Kjob@^j8jY8U0sxPc)2(^m4Z`K zixpxFN-|OvVhj{w3{vw_6k-h0it=;eqQxbNMJ0MMMKO6`6%ch0QVHZMs73hganCPN zh%xX;O)LW&lA5OwV~~q7h3@Xg zsUh%q3|-bApT^8BJ~g&2eU zQlhPdTMxEQL7^6uP-+#D6HAgaKuiS%P`Utf<5Me=QwvILLxMtG!6^VKae>nmC^=d4 Haxnk^dsweT diff --git a/LT/Apps/MusicOrgan/Examples/including.CPZ b/LT/Apps/MusicOrgan/Examples/including.CPZ deleted file mode 100644 index 5aca74779428b631a5dd3c1f4f3f95d5f31bec3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1572 zcmdPb&qyp*NH0n($jD4C=H=q$D$CDIQE<&m2`SFj(B$Q+=H*gQ2+l9fOVKdUv<7ip zD>6&0dAVvqid6zUb(CxZJQYmrlypo~Ktd1-N(Hdx0i`9u8cHfE;o;gII)*ALN)Tt1XJqE2 zDrhJMCnx54r&el06e}nMf`gIJr6&x~G=7ySo_`x*MmKIJ>(RJGwf$7P>ks z>F{!KDg~G5Da05AB$nprD8v{j#2DnHmOvN^F$TG*3NZ$md3rHLF?nD~xC|Nt>KvHG z17)wfvzwDE#9!|DDeA=#S0-hqLl`Bgc_mQ4ARJs;;$GyMlbWlc;_0NLWaH@sjYb_6 z&tMQg7|MqPxPk&CCcq&A3Kb|umM5cOCa2S64q36%A0@0;Md4^2B0=M1|bU z;^NHwyu_kPh4PGih4R##sP+{Bbr1yD>CD?n0rK~ZXA zaz%RtUxU|?{C3OPcp zhlT;jqxK98415rcc2HHe3=9my5FslD1_lWR1_qE>Amc&qW&qj82$2W*8Wc87(12lJ zV1O|}f%^v$xF9A-=r2MD#00tMA4CYoG)0&N3KmdYrZO-vh(hC!4P-so9SjVx`0zsn VTRl`a$QeQqN18!BVS?}%0|3IlLNovX diff --git a/LT/Apps/MusicOrgan/Examples/income.CPZ b/LT/Apps/MusicOrgan/Examples/income.CPZ deleted file mode 100644 index 7ff19c4989e74d24207ff09cda3970e3e7a60ca2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmdPb&qyp*D9T-Cf>3JSsbrFkhD2Ab9& zj%!6`i8U`*EiV^Tad3WKI$Wt+v94WeUP^pPVsUnSa+0kY#3-=N+|uIAend_task_cb=&EndTsk; - music_tempo=2.5; - try { - while (!ScanKey) { - Play("3qGGGGsGGGGetFFFeEFsGGGG", - "I've \0been \0pat\0ient; \0Grant \0 \0 \0 \0me \0 \0 \0jus\0 \0tice.\r\n\0 \0 \0 \0"); - Play("qGGGGsGGGGetFFFeEFsGGGG", - "Not \0comp\0lan\0cient; \0You \0 \0 \0 \0are \0 \0 \0whit\0 \0ness.\r\n\0 \0 \0 \0"); - Play("BBBBeCCqDDA2G3etAAAqB", - "All \0 \0 \0 \0my \0 \0foes \0 \0re\0joice \0o\0ver \0 \0me.\r\n\0"); - Play("sBBBBeCCqDDA2G3etAAAqB", - "See \0 \0 \0 \0their \0 \0throes; \0 \0Now, \0it's \0they \0that \0are \0stoned.\r\n\0"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/kept.CPZ b/LT/Apps/MusicOrgan/Examples/kept.CPZ deleted file mode 100644 index 3fed384..0000000 --- a/LT/Apps/MusicOrgan/Examples/kept.CPZ +++ /dev/null @@ -1,37 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - TssStruct *tss; - Fs->end_task_cb=&EndTsk; - try { - tss=PopUpViewStr( - "$$LK-A,\"BF:Matthew,19:16\"$$\r\n" - ); - WaitTskIdle(tss); - tss->win_right=Fs->win_right; - tss->win_left=Fs->win_left; - tss->win_top=Fs->win_bottom+3; - tss->win_bottom=tss->win_top+12; - PutS("$$WW+H,1$$"); - while (!ScanKey) { - Play("3eGAetCCCFFDqAeAAFAAFqG", - "I \0 \0have \0 \0 \0kept \0 \0 \0 \0 \0 \0the \0 \0 \0com\0mands.\r\n\0"); - Play("eGAetCCCFFDqAeAAFAAFqG", - "I \0 \0have \0 \0 \0kept \0 \0 \0 \0 \0 \0the \0 \0 \0com\0mands.\r\n\0"); - Play("EeEGqEeEEqDBetCCGqC", - "What \0 \0 \0else \0 \0 \0must \0I \0do?\r\n\0 \0 \0 \0"); - Play("EeEGqEeEEqDBetCCGqC", - "What \0 \0 \0else \0 \0 \0must \0I \0do?\r\n\0 \0 \0 \0"); - PutS("$$FG,GREEN$$(Christ said sell all and follow me.)\r\n$$FG$$"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/king.CPZ b/LT/Apps/MusicOrgan/Examples/king.CPZ deleted file mode 100644 index 9e204525304ec0cab2a3ab61b95c2c7d5023902e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 683 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vr3>0Dv5*1<$((}PW*_nCidND;Yd0+{MG@Midc?W6(e)Bz26=DoZ@^e78 zD8v}#LbwVs2F1jhpIYMXZscxU=w9q%bk?#AvxPA;jg?!~U|uI@&K?oj`P zWF(g8#TbB)0>rs6zvWg!__>+I#b7^W=I7z`AVevIME0yPX|C}Exg*9v4`NVKY6;ll zlGGxIKu#vaB_*jOxI{sr7L=4~6_OK6k~2U|1qD#b0dwP1E0R+SN^C=dLS4aW1S$D} NQynP5S@Uu+002BiwSoWu diff --git a/LT/Apps/MusicOrgan/Examples/knewest.CPZ b/LT/Apps/MusicOrgan/Examples/knewest.CPZ deleted file mode 100644 index 69e1b68..0000000 --- a/LT/Apps/MusicOrgan/Examples/knewest.CPZ +++ /dev/null @@ -1,20 +0,0 @@ -//star -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - while (TRUE) { - Play("qCqFeDEetDCCetCCCqDqAqC"); - Play("qCqFeDEetDCCetCCCqDqAqC"); - Play("qFqEetFAFqAqDeGAqEeBC"); - Play("qFqEetFAFqAqDeGAqEeBC"); - } -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/leaving.CPZ b/LT/Apps/MusicOrgan/Examples/leaving.CPZ deleted file mode 100644 index d799ee5..0000000 --- a/LT/Apps/MusicOrgan/Examples/leaving.CPZ +++ /dev/null @@ -1,38 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - TssStruct *tss; - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - try { - tss=PopUpViewStr( - "$$LK-A,\"BF:John,16:28\"$$\r\n" - ); - WaitTskIdle(tss); - tss->win_right=Fs->win_right; - tss->win_left=Fs->win_left; - tss->win_top=Fs->win_bottom+3; - tss->win_bottom=tss->win_top+12; - PutS("$$WW+H,1$$"); - while (!ScanKey) { - Play("3qBBDsDGDGqFeFAFAqB", - "Now, \0I \0go \0 \0 \0 \0 \0to \0the \0 \0Fa\0th\0er.\r\n\0"); - Play("BBDsDGDGqFeFAFAqB", - "Now, \0I \0go \0 \0 \0 \0 \0to \0the \0 \0Fa\0th\0er.\r\n\0"); - Play("EDetBEA2eG3CsECECqGDeDD", - "Don't \0worry. \0 \0 \0 \0 \0 \0I'll \0 \0 \0 \0be \0back.\r\n\0 \0 \0"); - Play("qEDetBEA2eG3CsECECqGDeDD", - "Don't \0worry. \0 \0 \0 \0 \0 \0I'll \0 \0 \0 \0be \0back.\r\n\0 \0 \0"); - PutS("$$FG,GREEN$$(Christ promised to return.)\r\n$$FG$$"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/limit.CPZ b/LT/Apps/MusicOrgan/Examples/limit.CPZ deleted file mode 100644 index 6c4b06d..0000000 --- a/LT/Apps/MusicOrgan/Examples/limit.CPZ +++ /dev/null @@ -1,37 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - try { - while (!ScanKey) { - Play("3qBDAGFFeBAsD2G3D2G", - "Do \0not \0push \0your \0luck.\r\n\0 \0 \0 \0 \0 \0 \0 \0"); - Play("3qBDAGFFeBAsD2G3D2G", - "Do \0not \0push \0your \0luck.\r\n\0 \0 \0 \0 \0 \0 \0 \0"); - Play("3qGFCeCGqFetAAFqEF", - "God \0is \0not \0 \0a \0schmuck.\r\n\0 \0 \0 \0 \0 \0"); - Play("GFCeCGqFetAAFqEF", - "God \0is \0not \0 \0a \0schmuck.\r\n\0 \0 \0 \0 \0 \0"); - - Play("3qBDAGFFeBAsD2G3D2G", - "\r\nDo \0not \0tell \0the \0Lord\r\n\0 \0 \0 \0 \0 \0 \0 \0"); - Play("3qBDAGFFeBAsD2G3D2G", - "that \0you're \0feel\0ing \0bored.\r\n\0 \0 \0 \0 \0 \0 \0 \0"); - Play("3qGFCeCGqFetAAFqEF", - "He \0will \0send \0 \0the \0sword.\r\n\0 \0 \0 \0 \0 \0"); - Play("GFCeCGqFetAAFqEF", - "He \0will \0send \0 \0the \0sword.\r\n\r\n\0 \0 \0 \0 \0 \0"); - - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/littleton.CPZ b/LT/Apps/MusicOrgan/Examples/littleton.CPZ deleted file mode 100644 index 7141aba..0000000 --- a/LT/Apps/MusicOrgan/Examples/littleton.CPZ +++ /dev/null @@ -1,24 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - music_stacatto_factor=0.8; - try { - while (!ScanKey) { - Play("3eEEqCGGeGBDGEBsG2G3G2G"); - Play("3eEEqCGGeGBDGEBsG2G3G2G"); - Play("3qFDetB2GGsGGGG3eEEetBEGqGeDA"); - Play("qFDetB2GGsGGGG3eEEetBEGqGeDA"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/meekness.CPZ b/LT/Apps/MusicOrgan/Examples/meekness.CPZ deleted file mode 100644 index d7fb483..0000000 --- a/LT/Apps/MusicOrgan/Examples/meekness.CPZ +++ /dev/null @@ -1,28 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - try { - while (!ScanKey) { - Play("3qBeGDetCBCqGAeGCqDC", - " \0I \0 \0don't \0 \0 \0mind, \0 \0 \0 \0you \0de\0"); - Play("BeGDetCBCqGAeGCqDC", - "cide.\r\n\0I \0 \0don't \0 \0 \0mind.\r\n\0 \0 \0 \0 \0 \0"); - Play("etDFGqEeDGqFEetDFFqBetBDB", - "I \0trust \0God \0 \0 \0 \0to \0 \0look-out \0for \0me.\r\n\0 \0 \0 \0 \0"); - Play("DFGqEeDGqFEetDFFqBetBDB", - "I \0trust \0God \0 \0 \0 \0to \0 \0look-out \0for \0me.\r\n\0 \0 \0 \0 \0"); - Play("qC"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/mentioned.CPZ b/LT/Apps/MusicOrgan/Examples/mentioned.CPZ deleted file mode 100644 index a1d3d040591b93904e2d7689c0e73fc1f4b7efbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 367 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$v3*Z+=JYWQ%fA3jogh39i57ugPenuK(2x+ zBwAfbkh^=TyODdLyRoBVv7?itQ=wC_qqCzkifQ;&DJax}f}>U;Ik6-;1H@EN0Qnxw ejZdvePAw?04G9W$1^W{z2*Du-3N&k8E(QP(8)OOq diff --git a/LT/Apps/MusicOrgan/Examples/mildly.CPZ b/LT/Apps/MusicOrgan/Examples/mildly.CPZ deleted file mode 100644 index 3858648..0000000 --- a/LT/Apps/MusicOrgan/Examples/mildly.CPZ +++ /dev/null @@ -1,36 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - TssStruct *tss; - tss=PopUpViewStr( - "$$LK-A,\"BF:Mark,4:37\"$$\r\n" - ); - WaitTskIdle(tss); - tss->win_right=Fs->win_right; - tss->win_left=Fs->win_left; - tss->win_top=Fs->win_bottom+3; - tss->win_bottom=tss->win_top+12; - music_tempo=2.5; - try { - while (!ScanKey) { - Play("3qEsGEGEqDsCCCCqBsDEDEqFG", - "Lord, \0there's \0 \0a \0 \0storm \0u\0 \0 \0 \0pon \0the \0 \0 \0 \0sea.\r\n\0 \0"); - Play("EsGEGEqDsCCCCqBsDEDEqFG", - "Lord, \0there's \0 \0a \0 \0storm \0u\0 \0 \0 \0pon \0the \0 \0 \0 \0sea.\r\n\0 \0"); - Play("GEC2G3etB2G3FGGEDBBeBE", - "$$FG,PURPLE$$Re\0lax \0fel\0las.$$FG$$\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); - Play("qGEC2G3etB2G3FGGEDBBeBE", - "$$FG,GREEN$$(Sea \0be\0came \0glass.)$$FG$$\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/minds.CPZ b/LT/Apps/MusicOrgan/Examples/minds.CPZ deleted file mode 100644 index 538cc9316be6ad1563172457c4916596ab46981c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$v0Dvvh(uGAuRX&6up?Dm^`pBL`Vtb7yQNt=jWy>#26GO zRw~38lw_n9fq0o9EAsLoh7dBh*wN9^G1bvAwZzfL-M!E~)!o>w&@HvZ&CRXQ4eANc z5{OyIWJzLnD#)Hhh+uI^QEEwYhMoe18<}6KUIubYdOk>R3DhwPF$P7ciOCsIpCWsZ z70x8LXQyM6dS@Uu+007NVxU&EN diff --git a/LT/Apps/MusicOrgan/Examples/multiple.CPZ b/LT/Apps/MusicOrgan/Examples/multiple.CPZ deleted file mode 100644 index 75f0ab4..0000000 --- a/LT/Apps/MusicOrgan/Examples/multiple.CPZ +++ /dev/null @@ -1,36 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - TssStruct *tss; - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - tss=PopUpViewStr( - "$$LK-A,\"BF:Matthew,14:19\"$$\r\n" - ); - WaitTskIdle(tss); - tss->win_right=Fs->win_right; - tss->win_left=Fs->win_left; - tss->win_top=Fs->win_bottom+3; - tss->win_bottom=tss->win_top+12; - try { - while (!ScanKey) { - Play("3etGCECAFqFFAFBD", - "We \0 \0don't \0 \0have \0e\0nough.\r\n\0 \0 \0 \0 \0 \0"); - Play("etGCECAFqFFAFBD", - "$$FG,PURPLE$$You \0 \0don't \0 \0halve \0e\0nough.\r\n\0 \0 \0 \0 \0 \0"); - Play("AeGFGDqEAeCEGAetFAF", - " \0Try \0 \0 \0 \0to \0share.\r\n\0 \0 \0 \0 \0 \0 \0 \0"); - Play("qAeGFGDqEAeCEGAetFAF", - " \0Try \0 \0 \0 \0to \0share.$$FG$$\r\n\0 \0 \0 \0 \0 \0 \0 \0"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/my.CPZ b/LT/Apps/MusicOrgan/Examples/my.CPZ deleted file mode 100644 index 594289ae14c52c00b607864941e9f9e334f773af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2104 zcmdPb&qyp*NH0n($jD4C=H)8O&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1h zORRahYI(UJP$j@qN6E&}PD#g51tJ0=!3G8A=cU7qaVyrfOU+A(FG(!Uj!#aqRfAXq zHZ`}jI5RoEBsI4n-_}Ua6f9O!RH*>AzdR!|Csjd1F*rFf&pWkJ6C}zRkds)cp=4a> z;tm3CZb~}5T%4RrzLg3w2F00q#R@S7=|!2TWvL1=2Du=?jMT)k)Vvsj91tfhu_PnL zAhk#@rYI&a#y|<=H>i=+G_bV9y~s5uHCIE$(+M6*Ix3#Qa1O-c(vn~eC9qRK&OyS+ z4l8zYa&jtkN-c48G;%L=Pc3nGH+C;{cS|jCb9I4w-%}yRKq1DUJU>sp1j1B^F-XaW zGfOg3bM+M9T#)kQ#60y9XgI(n6i~xtAgoqUs0F3BT7~4qlH?2!Q$YcgguvYR)QaTP zf)d-1piozEVnIry;G_vkdDgsK3``6R42%pA;KIPb%)r1P#=yW}#K6Fy50(1!|Nnn} zhzf@PV89F}|6@?>4gW!c3=Dt%Gyk_|VEFZ)`F}hE!-N0KAOjlyGyi91V1QB#|C#@T zEdIy*A7u6)=6VqI3qt*1wg>T`)CUOf1G551@Bv;5?9d0yVCn#b!mj~rCfo+FwI5)P zs0TUl7tDb$=Yj?_j~61|Ns5|4x;}5 zeh;DUgQ>s&-!s4e{~u1B2l4*@2g~87KsNmU|NlF){r~y{|GzWW|L@=bALN$r_5Xi^ z9r*7r+_^s?j{pAuzx{va|Ih#bzYp=|dr(0B`~Mjfkbl5I@V~hk9D<_(`F}JZK?!p( Kr$|sC^&bF85?A^F diff --git a/LT/Apps/MusicOrgan/Examples/nay.CPZ b/LT/Apps/MusicOrgan/Examples/nay.CPZ deleted file mode 100644 index c76af34e5b5a4809a592c51601d6965835a55b5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 699 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vzhAOQU6k-fK5=&A+N)%!YQp-|{Dq{>vGBWeh^L?Ol?C0`-N zAkse+?%(XZ{Bk{zm*FB1h9@M96k-gr^NTZL3{r~}A)ZI}Gssf9+pVBb3rbqG3dxBj o$r&J~f&wTdfw}Ri70IauCAJ|!p|0RGgOnV>sSuO^t$Dc^043JG+yDRo diff --git a/LT/Apps/MusicOrgan/Examples/partake.CPZ b/LT/Apps/MusicOrgan/Examples/partake.CPZ deleted file mode 100644 index 3c888630d6376e77b90631cbc26f3a9d7a472f4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2600 zcmdPb&qyp*NH0n($jD4C=H=q$D$CDIQE<&m2`SFj(B$Q+=H*gQ2+l9fOVKdUv<7ip zD>6&0dAVvqig~$I0z7q;YyvzLjO~gQ0x5>q<+4HI%^42YCStM)Qc1lT)Evs-t_MORAHLi<^scp(`ZJAl_DpF$ho1 z$pHnOXN-YDdTDBLu?|G4BqOmzA;ustzg!{4AhSfhIL1JsBr`V^MCHdAD5NHqAi@#N z*3=SQ_9`eSC@4WJpt9YyptM`7kepbOoB?7gD1cHTm>Zv3k(^pkVjB_^>IzPCNa-D% z%s~m*nwN`#iGhKEnE?V^*&%F@7#{}%16Y!Qfq|QWfk7IgL0|Uqq1_lNg zQ-XnkK@?&Zj46mv1!IEzAOle)#=yV;!Ws+=3?ON!Ss;(-F)%QI9K^uD0ArdWRKb|$ z5OY8zj0w^V@-I>-s6sV@LX(Aofq{>Kfk7P_nmQo8kbng-`571(j37cVrU*g^#sv8r zxS*kmNLo-9BSHek1ckIF#Az@lC?!Kpf-ylRf&w0DIEV>K%Z3n* zFeWHXg8~a83i2?>XP{sM(I7KGDnLn-6Y3C|tPF0C7QH0|f{unL~v@(GF4pvIj{cNHr)!K%)$#0^}Nyc~Bcc z=72C%2xK&f2{H%7W?*0dX#z1pLLi?(i%Sp}WERL5AYUOTTTsMEFu<4~)zH|0F+u(Z#R>xh1B?j@PiO?e yn4sVW`GJ9f0h9D3}=-7+_40H$ZF#1_l@tqzRhVU`$ZZfRYC&*#ZF5Nee&# diff --git a/LT/Apps/MusicOrgan/Examples/permitted.CPZ b/LT/Apps/MusicOrgan/Examples/permitted.CPZ deleted file mode 100644 index 459ff75bd7823b415f9b55ad3b0a9634a6cce5e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 471 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$v&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vX5|j)EEQx)Lf7&K~61!*p{51i)t3crEn72$vBMm%h!PfNTqra$ccIRAm`_n zCTA$b7^Ib=1_9h)2m@@qf@2 diff --git a/LT/Apps/MusicOrgan/Examples/pretend.CPZ b/LT/Apps/MusicOrgan/Examples/pretend.CPZ deleted file mode 100644 index 65af8bb7d24b00afdacd0328857f9783611fbdb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$v{#p)azR*q-R diff --git a/LT/Apps/MusicOrgan/Examples/prosper.CPZ b/LT/Apps/MusicOrgan/Examples/prosper.CPZ deleted file mode 100644 index 422e0325f8f4aaea5bc90ee2d8031098d84ad260..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3516 zcmdPb&qyp*NH0n($jD4C=H=q$D$CDIQE<&m2`SFj(B$Q+=H*gQ2+l9fOVKdUv<7ip zD>6&0dAVvqiajk9Dr^mODs7DntU-LRX2-nD+{BVpWCO}GGILTDG(v(xT{RWJMk**& zXlsMbQ&7lEQ_!feb1T-hD@ZI#%`1s7DK6HvE6>b}FUYJ&&519{OwTCM<>lg3P{6Gy zCpE1^6XZSx1qG0!pk@c>q^1^V7@0!cUJG?MFPFZ)ikrKRkxF<*YMw%Aab{k+LRwCK zeu{2dW=@VmW}ZSKEL2q7+*J_jQ*%;tQ}ar66e{ye6$*;-lM<71Diz8T^GXy-@)c0k zCg|Ukn_PFRtfObQL-_#Q_?Y10mT9cD<~*HgpKT!bd12lARUILU?w=8 zT#6FQJxeq~ii?9wib|796tqf;i(ygjX`!H11P(*@BB#s}-^2n1t)#@_R9p8V$DGW> zVvY175Z6ctqz4@Lun-N&NL5J7&&kOz2L)lPmpoV zQEI9NL}3xkB?<~fw(dnC8L1_S8U}hsrdq+7c^UiNve21?2}w$}Ukg&@;6IxdfU#-HTjv zQge#~a`H>SZr3pYLlsXacq~FvYidq$Dma1_@M?j?Fh~nXv3rqAY7W?3kO(-Jf@3>4 zKQA4gp}`_r`8g@^rQqPV1?4LUGrl}C59|}vbYUA@kXW9lp@zuZI!X|Bevy)nTQSHo zNcK$4ONlQ@EY6NkPO?>l6eM8ta!ZRdljBQLa|`lqjrB~yVyM>IszH(@SgNF`5>iq? z%MQihbaU5D5NG(dyQ&5O8h|DhqSycqGFg-s%1;s98 zXB*SZ0tJOyP%5ldNKPzC&HynXsRGQ6PpwE!Ehw=C)dS#2MvH$$f&|NYXXfOup|Lwm2|NH;{-Ombt{{Mgc_5Hv9|G$6z{_p?)|L?)% z2Qc}&{LlaY|NplC`TxKE-}_pI@ALov-&_CrIhgzjB8&h1|9`i>_&?JyKY-Kt2X+wq0holae}LJ4+Ck#~-ZL^VH2nYHSkLePO#T3q|Nj3! zSP#k@Fp}dxNCZSasOR|izy3qL1c>~v@bAC<4=_n$$^=;s%Bvs@Vp|~PRV@Yv21N!2 zhByEJ|Nn%RSKl*(()M*QxgAVegGoy;IS)kI?`Qtc{Nw(9=KmkrA1q}4|M&m*`ON?S z{r~@-x&Gh(|DT!d|NZ~}mpT6b|NsA(^Z);^|Ib_wCawSd_y5m)T8<&(KlAr{|8xH{ z|G)D;?LYJXyI^uxefEFm`t2Zc|ML3W|IGI@LFD|n`kepF^$P#_|1tl+|L^^O=Kmn0 zng7rK|NlSp|NBTJ$mt*#{vY+lV2g|6;CN{Vlgwa}5ll9KNc#p*ic)A`2IVd|$-uzy zfVrN5f#CzQJp%*7A7)Ul`^OB*b^n<`dF($kGXn#|f9Atr^811RjQ^ScANbGkpZWhm gFxgPg@t?UKOxicp^ZaL4-~f|yAd>hL1&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$v~5SC>>Lw?bzpBX?tWmtrS( zCzzK*G7|H$Ar7w0FV%st-1AdlepZMv@C1cOJ|sBO@{3{&(o;*Ycp2Hhlv(IosSsn3 zTA5m`5Mz*71oC$|ZW|R8YC#FARv|gDBsl}bR8Rn=A22sQwIVsSpu{#LDAX04QjiiM NIPHOwoi#5P0{}(=yD9(x diff --git a/LT/Apps/MusicOrgan/Examples/proximate.CPZ b/LT/Apps/MusicOrgan/Examples/proximate.CPZ deleted file mode 100644 index c716302d904c69ffbc9470baafb7776f4552048d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 678 zcmdPb&qyp*D9T-Cf>3JSsbrFkhD2Ab9& zj%!6`i8U`*EiV^Tad3WKI$Wt+v94WeUP^pPVsUnSa+0kY#3-=N+|uIAu!fR~N_e=ohmN6&iW0<<@{G)!R0WNYpioy$1+W_w6asP*D>ak~-3#3c zoeLccoeNzGT?^fmbU=<$P*6}%^2sks(TOooC@#rN&WVjxkX1 z1WOf_rpFkh=cMYz6vgDl7(nf#kLjr;j_!`Bj_#>$E~zfAP@lLU`5-ty#y|n&=)}Aj z1CZ-u3=~Q-GV{_w?uST$e36k@2J%%2NOcxo|IpP&XjHnn>$nHGy85Z8Xm~25rKaX6 x6j$aJB$i}UDx~EXDHP`?C#M!E_~z#p>uG`_K}E&Q9Uk$u(3AyARMxy)3;-K}y#fFL diff --git a/LT/Apps/MusicOrgan/Examples/quotation.CPZ b/LT/Apps/MusicOrgan/Examples/quotation.CPZ deleted file mode 100644 index f773a7ccb094137bc7a55353692e5b68a7cdd208..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 644 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$v^6 z42lyoQ}p!oVv1t&Vhj|BLrNh3K&_y;1xBeQ?m@=xuFj6BK`u@~g{~k0V@H=lXLqPS zAgoC`m1X2r0xEq^FiB#2A!hWEMk&iZatPO7t|bdKcMSAWMj{)h#in z7!;1>nI$m>d8x%vdlX^}GK*sj^3*}rE5sNOv{yl)7L-P66_OK6k~2U|1qD!&0CVG0 cE0R+SN^C=dLS4a;kCd*!$qAH_ta-T@04{Z@p#T5? diff --git a/LT/Apps/MusicOrgan/Examples/regarded.CPZ b/LT/Apps/MusicOrgan/Examples/regarded.CPZ deleted file mode 100644 index fe17b0b..0000000 --- a/LT/Apps/MusicOrgan/Examples/regarded.CPZ +++ /dev/null @@ -1,27 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - try { - while (!ScanKey) { - Play("3qB2G3DsBABABDBDqDeAD2sG3A2G3A", - "All \0seeing \0eye.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); - Play("qB2G3DsBABABDBDqDeAD2sG3A2G3A", - "It's \0no \0lie.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); - Play("qEGC2sG3B2G3B2G3B2G3BqDetBGAsGGGG", - "God \0sees \0you.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); - Play("qEGC2sG3B2G3B2G3B2G3BqDetBGAsGGGG", - "Yes, \0it's \0true.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/represented.CPZ b/LT/Apps/MusicOrgan/Examples/represented.CPZ deleted file mode 100644 index 70869a5db974e977eeccd6f0e4f0bffddf53a5ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vend_task_cb=&EndTsk; - music_tempo=2.5; - try { - PutS("$$WW+H,1$$"); - while (!ScanKey) { - Play("qR3eG2G3qDsCCCCqDeCCetDDBsR2GRG", - " \0Be\0ing \0rid \0of \0 \0 \0 \0sin \0is \0a \0bit\0ter \0 \0 \0pill.\r\n\0 \0 \0"); - Play("qR3eG2G3qDsCCCCqDeCCetDDBsR2GRG", - " \0Be\0ing \0rid \0of \0 \0 \0 \0sin \0is \0a \0bit\0ter \0 \0 \0pill.\r\n\0 \0 \0"); - Play("3eCDqFAAeA2G3etA2G3AeCCAR", - " \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); - Play("CDqFAAeA2G3etA2G3AeCCAR"); - PutS("$$FG,GREEN$$(This isn't a riddle, oddly enough.)$$FG$$\r\n"); - - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/risen.CPZ b/LT/Apps/MusicOrgan/Examples/risen.CPZ deleted file mode 100644 index 929032a75a52d193749671832e114a72de451e9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 zcmdPbFD^+eQa~kmxytf0QxshDQbLNeH8gp-s(HB-6oT_h^HMYnG_64#*NV&%YhJEe zUM{HO;QYLFxKg)bUAxr0l=zaw;_Ue3BwICzQDB|9rNx=a@g=Fb1^Ko{dZu8p@{G)! zR0WNYpioy$1+Zlb3IREZl^RN^F0O@cg>I=OuC8u{E~(BgsV=UmCC=_{N)UIDuFkp8 lrO-9i(GhH9YKg0hduoZ3i*q5SiG)&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vTvAJ%oE?pd-GkhN+>ITL+>ISmgMtd( zl|W8|swPEkv74KlTWX1Gkdb>~kg=mts=K>;P+?GUkg;2k8;YTX)F~*`f&!;jAvv)m nIRnI0PymGmm>Zv3k(^pkVjB_^>I(KXQh&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$v&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vTZhUG*a%w?|ZAeh4E7win_right=Fs->win_right; - tss->win_left=Fs->win_left; - tss->win_top=Fs->win_bottom+3; - tss->win_bottom=tss->win_top+12; - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - try { - while (!ScanKey) { - Play("3qDetBAReGEqCCA2G3etFAC", - "Ma\0as\0ter! \0 \0I \0made \0more \0for \0you.\r\n\0 \0 \0 \0 \0"); - Play("qDetBAReGEqCCA2G3etFAC", - "Ma\0as\0ter! \0 \0I \0made \0more \0for \0you!\r\n\0 \0 \0 \0 \0"); - Play("eCB2qG3EFFG2G3etCFG", - " \0 \0 \0Got \0some\0thing \0else?\r\n\0 \0 \0 \0 \0"); - Play("eCB2qG3EFFG2G3etCFG", - " \0 \0 \0Got \0some\0thing \0else?\r\n\0 \0 \0 \0 \0"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/shield.CPZ b/LT/Apps/MusicOrgan/Examples/shield.CPZ deleted file mode 100644 index b3cbb450e3fe497105ec0a2fbb80f8867954cf85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1319 zcmdPb&qyp*NH0n($jD4C=H&uGl>kp2rQnRr)SMJ09b*-c5D1s$XQn8)=B0!bXKQHk za#izkDJTTzm*%Bt7-(99IIb0$CDy!LwQ$A3`FZJZrEbN#cBy$O@g<4H+40FqwrUWg zz&dkFi!+nsOHy+S@@221yj+}0?)fP?3NZ$`l?pKiNkyrN#U%yEbd+p7ofM4iKp~~0;u#F$2SfQ_T>+&f!5T_n13`vDF~mfOFNTFD+#FL& z9Nk<}UEB&CQ%hXjoKjufQcK)iTnk+wG2)w_oSm8i57I=17=xV5k{E-M99WcqqAD>Z z9TXu7F$Vc*aJ9+#rA4r)NKA*t4ssBt60%-FK|w)@Hcn7bs0F3|T7~4qlH?2!Q$Ycg z*umWR)QaTPf)d-1piozEvPQ}=;EV#wBi6iJ3``6R49pA=FqaWbgM=747#P5E3=9mS z3=9mC3=9m?3=9l%U=?tt20{qNG+9|Hq}5;TB7G}IIs1_lOp1_lO@1t1!v6yypO1_lOB1_lOIgiAp} jAQQD17#O%fY8V(mLM#jr8l)41VHSZ*11V*LC}jWuqr)Gn diff --git a/LT/Apps/MusicOrgan/Examples/sings.CPZ b/LT/Apps/MusicOrgan/Examples/sings.CPZ deleted file mode 100644 index a7b0943..0000000 --- a/LT/Apps/MusicOrgan/Examples/sings.CPZ +++ /dev/null @@ -1,21 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - while (TRUE) { - Play("qGsCECEsGAGAsEBEBqFeFFeDEqF", - "Shout! \0 \0 \0Let \0 \0your \0 \0voice \0 \0be \0 \0heard.\r\n\0"); - Play("qGsCECEsGAGAsEBEBqFeFFeDEqF", - "Shout! \0 \0 \0Let \0 \0your \0 \0voice \0 \0be \0 \0heard.\r\n\0"); - Play("e2G3CetDAAetFBEsD2G3D2G3qDqCetBEEsAFAF"); - Play("e2G3CetDAAetFBEsD2G3D2G3qDqCetBEEsAFAF"); - } -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/small.CPZ b/LT/Apps/MusicOrgan/Examples/small.CPZ deleted file mode 100644 index e79812e95ca9a0c5adc43ab6e290589d8737eed8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 743 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$v?69SA!uzX-xmh%s=_Pf>_5$ShWf zF(@p}EJ+1v%1zA4(TgdH$pf1KSE>+Wpak+i)Jdec$Rjl|#-J=UFUBCJ5@KFPelgUI z<%yXkAnPIG3NZ#?$9sUCluVRMj9rV}oZXyL-HqIh3tgO3OPrkDjf&lkosHa$oeSNe z0TY}L@_tG_#Gdku#1eI=wV8PeF$R_SrJztL$S;pENG-zdeTY`Ha3IQZg&2d7jMO}k z3lw4uK;D9wg=}?3evCmWQ8p_m)Pj;>twM5QNpc2=sh|K#bzp9MYDIEtL5XchP^c?7 ReIX@XaEb*bR%>1^1^}P>%ESNw diff --git a/LT/Apps/MusicOrgan/Examples/soothed.CPZ b/LT/Apps/MusicOrgan/Examples/soothed.CPZ deleted file mode 100644 index 200aea8..0000000 --- a/LT/Apps/MusicOrgan/Examples/soothed.CPZ +++ /dev/null @@ -1,25 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - try { - while (!ScanKey) { - Play("3eDRetAAAsBCBCeEGqF2GsG3B2G3BeDF", - "Good! \0 \0Now, \0 \0 \0I \0 \0don't \0 \0have \0to \0wor\0ry.\r\n\0 \0 \0 \0 \0 \0 \0"); - Play("DRetAAAsBCBCeEGqF2GsG3B2G3BeDF", - "Good! \0 \0Now, \0 \0 \0I \0 \0don't \0 \0have \0to \0wor\0ry.\r\n\0 \0 \0 \0 \0 \0 \0"); - Play("qFRAetACEqEG2G3sBRBR"); - Play("qFRAetACEqEG2G3sBRBR"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/stiff.CPZ b/LT/Apps/MusicOrgan/Examples/stiff.CPZ deleted file mode 100644 index f94f5e0d8c88f93956be5cabf8ae0539e00fa218..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 711 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vamiirtN!jogi$Q{5d4-HV-^oSX`s9gAI^U7ZWvm2`Ny zIF%G)4B*HoKfgG}AT>`R#-Ox7FQzCa4@nZP3XP!z@!tSiS?uKI)XK)on2hgi=dYew@pagI<>P*4DcISm|A w3rc3S3dxBj$r&J~f&wU2fw}Ri70IauCAJ|!p|0TcgOoJEDH4end_task_cb=&EndTsk; - music_tempo=2.5; - while (TRUE) { - Play("qAqBqFqFqDeEGeFDeDE", - "Show \0some \0love.\r\n\0"); - Play("qAqBqFqFqDeEGeFDeDE", - "Show \0some \0love.\r\n\0"); - Play("eABeFAqFeFDetDBBqGeCGqA", - "As \0 \0you \0 \0mea\0 \0sure \0 \0 \0out...\r\n\0"); - Play("eABeFAqFeFDetDBBqGeCGqA", - "As \0 \0you \0 \0mea\0 \0sure \0 \0 \0out...\r\n\0"); - } -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/struggles.CPZ b/LT/Apps/MusicOrgan/Examples/struggles.CPZ deleted file mode 100644 index 3d2d7a5..0000000 --- a/LT/Apps/MusicOrgan/Examples/struggles.CPZ +++ /dev/null @@ -1,27 +0,0 @@ -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - try { - while (!ScanKey) { - Play("3sFGFGetDCFqD2G3DGDetDFB", - "God, \0 \0 \0 \0please \0 \0 \0help \0me.\r\n\0 \0 \0 \0 \0 \0 \0"); - Play("sFGFGetDCFqD2G3DGDetDFB", - "God, \0 \0 \0 \0please \0 \0 \0help \0me.\r\n\0 \0 \0 \0 \0 \0 \0"); - Play("qACADetF2G3B2sG3F2G3FetCDFsDFDF", - "Thy \0will \0be \0done.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); - Play("qACADetF2G3B2sG3F2G3FetCDFsDFDF", - "Thy \0will \0be \0done.\r\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); - } - } catch - Fs->catch_except=TRUE; - Sound(0); -} - -Song; diff --git a/LT/Apps/MusicOrgan/Examples/sweeter.CPZ b/LT/Apps/MusicOrgan/Examples/sweeter.CPZ deleted file mode 100644 index 9e6bd957f464516e24dcb3a3b77ea39caebf5f80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$v&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vUQAI;9!x|DaeI%h%v~{ z%uBIHjun`b6clPfsjyZdIk6-;1H@EN03|vwH$Jr@Iklj~HY6z26`Z_~QZ6{bg3_ur HFBby&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$v&~gsR}U$mHDMb3NZ#bnQ5td3JNg>p6WR{U_Mwj zw-U@wOVx`hiph&HKz0VE6$%Op3e>YkL7^5D3AGBzi6zMyAf|!>D9pj!_|%Hz)PfS* Wkf2akaOfgM95}u}QDx1`#Q*>?c7+}Q diff --git a/LT/Apps/MusicOrgan/Examples/treating.CPZ b/LT/Apps/MusicOrgan/Examples/treating.CPZ deleted file mode 100644 index de3eb6e3cf0d4963d271ca38e5b8d4bb83e11194..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 479 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vJ^5vbX;Gr8E=+1WYO$+_6Y&Be{d)y37t z-NoI>#mS}6x!BRw(G}Sh#3)rzs09UotwM5QNpc2=sh|J~Z7?@JwIVsSpu{#LDAW}k Ru1HY^jww(iS@Uu+005qff9L=J diff --git a/LT/Apps/MusicOrgan/Examples/unlearned.CPZ b/LT/Apps/MusicOrgan/Examples/unlearned.CPZ deleted file mode 100644 index e00b1264f6d3b498f6beff1cd09335c26a8364b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 698 zcmXTR&rDHp%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxxk8p^YhZ- zO5KWe?Nakn;!6^Xv*VMKY}Ft}fpzAV7H1~Mm!#$vqiV)DS6ltA91zfF$rsU@!N z?x`+D?#8Jl?#@Q;#>FnKF0PJ_j*f+HZV1nXXC#&=#2942{FISc0Cu-Rj6p$aUMk2- z5O0=1Lm?C5ue^MiGLZLE^O95TvHCf6;9a7iPzy>~wF=3JCCM2erh)<}A%VH^sTIko Z1tqp2L7}eTB!iS1!HE!*{;YYq7ywW2y>|cr diff --git a/LT/Apps/MusicOrgan/Examples/valued.CPZ b/LT/Apps/MusicOrgan/Examples/valued.CPZ deleted file mode 100644 index c8d77c95819c41dcc97fdb63c0e6e7e8a904eb61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 491 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 g6qgvmbbg`k06b=##{d8T diff --git a/LT/Apps/MusicOrgan/Load.CPZ b/LT/Apps/MusicOrgan/Load.CPZ deleted file mode 100644 index 665bed6507f1f4af5ba25d889c5de8a2b86aa8f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmY$+NX;pT&&*3ntx!-3&M(bNQR3xN&df{BDNRXLP}27a(RVB;DAxBaEzV5#FG^3$ o)AvoxP7Th_OV@J_h$5)it28^+DZhd!wP536Dv{l##LLA109BDS*#H0l diff --git a/LT/Apps/MusicOrgan/MakeSong.CPZ b/LT/Apps/MusicOrgan/MakeSong.CPZ deleted file mode 100644 index e56b4e3..0000000 --- a/LT/Apps/MusicOrgan/MakeSong.CPZ +++ /dev/null @@ -1,73 +0,0 @@ -void InsertNote(I1 *buf,U4 k,U4 *j) -{ - if (k==0) { - buf[*j]='2'; - *j=*j+1; - - buf[*j]='G'; - *j=*j+1; - - buf[*j]='3'; - *j=*j+1; - } else if (k==8) { - buf[*j]='R'; - *j=*j+1; - } else { - buf[*j]=k-1+'A'; - *j=*j+1; - } -} - - -I1 *MakeSong() -{ - I1 *buf=MAllocZ(256), - buf2[256]; - U4 i,j=0,k,n,k2; - for (i=0;i<8;i++) { - SPrintF(buf2,"Picks Left:%d",8-i); - k=RandU4; - n=k/9; - k=k%9; - switch (n%6) { - case 0: - buf[j++]='e'; - InsertNote(buf,k,&j); - SPrintF(buf2,"Picks Left:%d:1",8-i); - k=RandU4; - k=k%9; - InsertNote(buf,k,&j); - break; - case 1: - buf[j++]='e'; - buf[j++]='t'; - InsertNote(buf,k,&j); - SPrintF(buf2,"Picks Left:%d:2",8-i); - k=RandU4; - k=k%9; - InsertNote(buf,k,&j); - SPrintF(buf2,"Picks Left:%d:1",8-i); - k=RandU4; - k=k%9; - InsertNote(buf,k,&j); - break; - case 2: - buf[j++]='s'; - InsertNote(buf,k,&j); - k2=k; - SPrintF(buf2,"Picks Left:%d:1",8-i); - k=RandU4; - k=k%9; - InsertNote(buf,k,&j); - InsertNote(buf,k2,&j); - InsertNote(buf,k,&j); - break; - default: - buf[j++]='q'; - InsertNote(buf,k,&j); - break; - } - } - buf[j++]=0; - return buf; -} diff --git a/LT/Apps/MusicOrgan/Organ.CPZ b/LT/Apps/MusicOrgan/Organ.CPZ deleted file mode 100644 index f821265..0000000 --- a/LT/Apps/MusicOrgan/Organ.CPZ +++ /dev/null @@ -1,992 +0,0 @@ -class OrgNote -{ - OrgNote *next,*last; - I1 note,octive,duration; - I1 ascii[9]; - I1 *word; -}; - -class OrgCtrl -{ - OrgNote root; - BoolU4 record_on; - I8 screen_x; - OrgNote *cur_note,*insert_point; - void old_update(TssStruct *tss); -}; - -I1 *org_note_list="A\0A#\0B\0C\0C#\0D\0D#\0E\0F\0F#\0G\0G#\0\0"; -I1 org_note_map[12]={6,6,5,4,4,3,3,2,1,1,0,0}; -I1 org_note_inverse_map[7]={10,8,7,5,3,2,0}; - - - $PI,"",2$ - - - - $PI,"",3$ - - - - $PI,"",4$ - - - - $PI,"",5$ - - - - $PI,"",6$ - - - - $PI,"",7$ - - - - $PI,"",8$ - - - - $PI,"",9$ - - - - $PI,"",11$ - - - $PI,"",18$ - - - $PI,"",19$ - - - $PI,"",20$ - - - $PI,"",21$ - - - - -#define ORG_NOTE_SPACING 9 -#define ORG_NUM_DURATIONS 8 -double org_durations[ORG_NUM_DURATIONS+1]={2*.25/3,.25,2*.5/3,.5,2.0/3.0,1.0,2.0,4.0,1000000.0}; -I1 *org_duration_list="st\0s\0et\0e\0qt\0q\0h\0w\0\0"; -U1 *org_duration_PI_map[ORG_NUM_DURATIONS]={$IB,"",7$,$IB,"",2$,$IB,"",8$, - $IB,"",3$,$IB,"",9$,$IB,"",4$, - $IB,"",5$,$IB,"",6$}; - - -void DrawIt(TssStruct *tss) -{ - OrgCtrl *oc=tss->user_data0; - OrgNote *tempo; - I8 i,y; - I8 w=tss->win_pixel_right-tss->win_pixel_left; - I8 h=tss->win_pixel_bottom-tss->win_pixel_top; - GrBitMap *base=GrAlias(grbase2,tss); - - - ClearWinText(tss); - base->color=BLACK; - for (i=1;i<6;i++) - GrLine(base,0,i*8,w,i*8); - for (i=7;i<12;i++) - GrLine(base,0,i*8,w,i*8); - - i=0; - tempo=oc->root.next; - while (tempo!=&oc->root) { - if (tempo==oc->cur_note) - base->color=GREEN; - else { - if (tempo->octive) - base->color=BLACK; - else - base->color=DKGRAY; - if (tempo->word) - if (StrCmp(tempo->word," ")) - base->color=RED; - } - if (tempo->octive) - y=(15+(org_note_map[tempo->note]-7*(tempo->octive-3)))*4; - else - y=50; - base->bkcolor=WHITE; - GrElemsPlot(base,8+i*ORG_NOTE_SPACING-oc->screen_x,y,0, - org_duration_PI_map[tempo->duration]); - tempo=tempo->next; - i++; - } - GrDel(base); - oc->old_update(tss); -} - -OrgNote *OrgFindNote(I8 x,I8 y) -{ - OrgCtrl *oc=Fs->user_data0; - OrgNote *tempo=oc->root.next; - I8 i=(x+oc->screen_x-8+ORG_NOTE_SPACING/2)/ORG_NOTE_SPACING; - nounusedwarn y; - while (i-- && tempo!=&oc->root) - tempo=tempo->next; - if (tempo==&oc->root) - tempo=NULL; - return tempo; -} - -#define ORGR_REST -5 -#define ORGR_INSERT_NOTE -4 -#define ORGR_DELETE_NOTE -3 -#define ORGR_SET_WORD -2 - -double PopUpDuration() -{ - I8 i; - Ltf *l=LtfNew; - LtfPrintF(l,"$$MU,\"Set Word\" %d$$\r\n",ORGR_SET_WORD); - LtfPrintF(l,"$$MU,\"Make Rest\" %d$$\r\n",ORGR_REST); - LtfPrintF(l,"$$MU,\"Insert Note\" %d$$\r\n",ORGR_INSERT_NOTE); - LtfPrintF(l,"$$MU,\"Delete Note\" %d$$\r\n\r\n",ORGR_DELETE_NOTE); - for (i=0;iuser_data0; - I1 *st,*st2; - OrgNote *tempo=OrgFindNote(x,y),*tempo1; - I8 i; - U8 old_ltf_flags=Fs->cur_ltf->flags; - oc->insert_point=tempo; - oc->cur_note=tempo; - if (tempo) { - Btr(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); - ip_inhibit_win_operations=FALSE; - i=PopUpDuration; - if (i>=0 && iduration=i; - else { - switch (i) { - case ORGR_REST: - tempo->octive=0; - tempo->note=0; - break; - case ORGR_SET_WORD: - Fs->cur_ltf->flags&=~LTFF_FORM; - if (tempo->word) - st2=MSPrintF("\r\nWord(\"%Q\"):",tempo->word); - else - st2=MSPrintF("\r\nWord(\"\"):"); - LtfBottom(Fs->cur_ltf); - st=PmtStr(st2); - Free(st2); - Free(tempo->word); - if (*st) { - tempo->word=MSPrintF("%q",st); - Free(st); - } else - tempo->word=NewStr(" "); - Fs->cur_ltf->flags=old_ltf_flags; - break; - case ORGR_INSERT_NOTE: - tempo1=MAllocIdentical(tempo); - tempo1->word=NewStr(tempo->word); - InsQue(tempo1,tempo); - break; - case ORGR_DELETE_NOTE: - oc->insert_point=tempo->next; - oc->cur_note=oc->insert_point; - RemQue(tempo); - Free(tempo->word); - Free(tempo); - break; - } - } - ip_inhibit_win_operations=TRUE; - Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); - } -} - -void OrgLeftClick(I8 x,I8 y) -{ - OrgCtrl *oc=Fs->user_data0; - OrgNote *tempo=OrgFindNote(x,y); - I8 o,n,cmd,p1,p2; - oc->insert_point=tempo; - oc->cur_note=tempo; - if (tempo) { - do { - cmd=GetMsg(&p1,&p2,1<note=n; - tempo->octive=o; - } - } while (cmd!=MSG_IP_L_UP); - } -} - -void OrgPlayEnd() -{ - Sound(0); - Exit; -} - -#define ORGPM_NORMAL 0 -#define ORGPM_REVERB1 1 - -#define ORGPM_NUM_PLAY_MODES 2 - -U8 org_play_mode=0; -double org_play_f=0; -void OrgPlayTsk() -{ - BoolU4 going_up=TRUE; - U8 i=0; - double f=0,f2=0; - Fs->end_task_cb=&OrgPlayEnd; - while (TRUE) { - i++; - switch (org_play_mode) { - case ORGPM_NORMAL: - if (org_play_f!=f) { - f=org_play_f; - Sound(f); - } - break; - case ORGPM_REVERB1: - if (org_play_f!=f) { - if (f>0) - f2=f; - f=org_play_f; - } - if (!(i&15)) { - if (i&16) - Sound(f); - else - Sound(f2); - } - break; - } - Sleep(1); - } -} - - -U1 OrgCvtDuration(double d) -{ - double d1,d2; - I8 j; - for (j=0;j='0' && ch<='9') { - *org_octive=ch-'0'; - ch=*st++; - } - return --st; -} - -I1 *OrgMusicSetNoteLen(I1 *st,double *org_duration) -{ - BoolU4 cont=TRUE; - do { - switch (*st++) { - case 'w': *org_duration=4.0; break; - case 'h': *org_duration=2.0; break; - case 'q': *org_duration=1.0; break; - case 'e': *org_duration=0.5; break; - case 's': *org_duration=0.25; break; - case 't': *org_duration=2.0* *org_duration/3.0; break; - case '.': *org_duration=1.5* *org_duration; break; - default: - st--; - cont=FALSE; - } - } while (cont); - return st; -} - -void OrgLoadSongStr(I1 *st,U8 *org_octive,double *org_duration) -{ - OrgCtrl *oc=Fs->user_data0; - OrgNote *tempo; - U8 note,i=0; - while (*st) { - tempo=MAllocZ(sizeof(OrgNote)); - st=OrgMusicSetOctive(st,org_octive); - st=OrgMusicSetNoteLen(st,org_duration); - st=OrgMusicSetOctive(st,org_octive); - if (!*st) break; - note=*st++-'A'; - if (note<7) { - note=music_note_map[note]; - if (*st=='b') { - note--; - st++; - } else if (*st=='#') { - note++; - st++; - } - tempo->note=note; - tempo->octive=*org_octive; - } else { - tempo->note=0; - tempo->octive=0; - } - if (*org_duration<=2*.25/3) - i=0; - else if (*org_duration<=.25) - i=1; - else if (*org_duration<=2*.5/3) - i=2; - else if (*org_duration<=.5) - i=3; - else if (*org_duration<=2.0/3) - i=4; - else if (*org_duration<=1.0) - i=5; - else if (*org_duration<=2.0) - i=6; - else - i=7; - tempo->duration=i; - InsQue(tempo,oc->root.last); - } -} - -void OrgLoadSong(I1 *filename,U8 *org_octive,double *org_duration) -{ - OrgCtrl *oc=Fs->user_data0; - I1 *st; - OrgNote *tempo; - LexStruct *lx=LexNew(ReadTextFile(filename),0,NewStr(filename)); - Lex(lx); - while (lx->token) { - if (lx->token==TK_IDENT) - if (!StrCmp(lx->ident,"Play")) - if (Lex(lx)=='(') - if (Lex(lx)==TK_STR) { - tempo=oc->root.last; - st=LexExtendStr(lx); - OrgLoadSongStr(st,org_octive,org_duration); - if (lx->token==',') { - if (Lex(lx)==TK_STR) { - st=LexExtendStr(lx); - do { - tempo=tempo->next; - tempo->word=NewStr(st); - st+=StrLen(st)+1; - } while (*st); - } - } - } - Lex(lx); - } - LexDel(lx); -} - -I1 *OrgCvtSong() -{ - OrgCtrl *oc=Fs->user_data0; - OrgNote *tempo; - I1 *buf,*src,*dst; - U8 i,note,octive,last_octive,last_duration; - - i=0; - tempo=oc->root.next; - last_octive=-1; - last_duration=-1; - while (tempo!=&oc->root) { - dst=&tempo->ascii; - octive=tempo->octive; - note=tempo->note; - if (octive!=last_octive && (note || octive)) { - *dst++=octive+'0'; - last_octive=octive; - } - if (tempo->duration!=last_duration) { - src=PointAtListEntry(tempo->duration,org_duration_list); - *dst++=src[0]; - if (src[1]) - *dst++=src[1]; - last_duration=tempo->duration; - } - if (note || octive) { - src=PointAtListEntry(note,org_note_list); - *dst++=src[0]; - if (src[1]) - *dst++=src[1]; - } else - *dst++='R'; - *dst++=0; - i+=StrLen(tempo->ascii); - tempo=tempo->next; - } - - buf=MAlloc(i+1); - dst=buf; - tempo=oc->root.next; - while (tempo!=&oc->root) { - StrCpy(dst,tempo->ascii); - dst+=StrLen(tempo->ascii); - tempo=tempo->next; - } - *dst++=0; - return buf; -} - -void OrgDelSong(I1 *full_filename) -{ - EditFileNameStruct fn; - if (full_filename) { - StrCpy(fn.name,full_filename); - if (DoForm(&fn,"EditFileNameStruct")) - Del(fn.name); - } -} - -void OrgSaveSong(I1 *dirname,I1 *full_filename=NULL) -{ - OrgCtrl *oc=Fs->user_data0; - Ltf *l=LtfNew; - BoolU4 has_words; - OrgNote *tempo,*tempo1; - double two_measure_left=8.0; - I1 *ptr,ch; - - Free(OrgCvtSong); //set tempo->ascii; - tempo=oc->root.next; - tempo1=tempo; - has_words=FALSE; - - LtfPutSExt(l, -"void EndTsk()\r\n" -"{\r\n" -" Sound(0);\r\n" -" Exit;\r\n" -"}\r\n" -"\r\n" -"void Song()\r\n" -"{\r\n" -" Fs->end_task_cb=&EndTsk;\r\n" -" music_tempo=2.5;\r\n" -" try {\r\n" -" while (!ScanKey) {\r\n" -"\tPlay(\""); - while (tempo!=&oc->root) { - LtfPutSExt(l,tempo->ascii); - if (tempo->word) has_words=TRUE; - two_measure_left-=org_durations[tempo->duration]; - tempo=tempo->next; - if (two_measure_left<0.001 && tempo!=&oc->root) { - if (has_words) { - LtfPutSExt(l,"\",\r\n\t\t\""); - while (tempo1!=tempo) { - if (tempo1->word) { - ptr=tempo1->word; - while (ch=*ptr) { - if (ch==CH_SPACE) - *ptr=CH_SHIFT_SPACE; - ptr++; - } - LtfPrintF(l,"%Q\\0",tempo1->word); - } else - LtfPrintF(l,"%c\\0",CH_SHIFT_SPACE); - tempo1=tempo1->next; - } - } - LtfPutSExt(l,"\");\r\n"); - LtfPutSExt(l,"\tPlay(\""); - two_measure_left=8.0; - tempo1=tempo; - has_words=FALSE; - } - } - if (has_words) { - LtfPutSExt(l,"\",\r\n\t\t\""); - while (tempo1!=tempo) { - if (tempo1->word) { - ptr=tempo1->word; - while (ch=*ptr) { - if (ch==CH_SPACE) - *ptr=CH_SHIFT_SPACE; - ptr++; - } - LtfPrintF(l,"%Q\\0",tempo1->word); - } else - LtfPrintF(l,"%c\\0",CH_SHIFT_SPACE); - tempo1=tempo1->next; - } - } - LtfPutSExt(l,"\");\r\n" -" }\r\n" -" } catch\r\n" -" Fs->catch_except=TRUE;\r\n" -" Sound(0);\r\n" -"}\r\n" -"\r\n" -"Song;\r\n"); - LtfRecalc(l); - if (full_filename) - StrCpy(l->filename.name,full_filename); - else - SPrintF(l->filename.name,"%s/Temp.CPZ",dirname); - LtfWrite(l,TRUE); - LtfDel(l); -} - -void OrgClearSong() -{ - OrgCtrl *oc=Fs->user_data0; - OrgNote *tempo,*tempo1; - tempo=oc->root.next; - while (tempo!=&oc->root) { - tempo1=tempo->next; - Free(tempo); - tempo=tempo1; - } - oc->root.next=&oc->root; - oc->root.last=&oc->root; -} - -void OrgHelp(I8 org_octive) -{ - I8 i; - coutln "$$CL$$$$BD,LTGRAY$$$$FD,YELLOW$$$$BU,LTGRAY$$$$FU,YELLOW$$$$FM,YELLOW$$$$BM,LTGRAY$$$$CM,0,12$$"; - coutln " E R T U I P [ ] "; - coutln "A S D F G H J K L ; ' ENTER"; - coutln; - coutln "$$FG,LTRED$$SPACE$$FG$$\t\tRest"; - coutln "$$FG,LTRED$$BACKSPACE$$FG$$\t$$MA+A-X,\"Deletes Last Note\",\"\\x08\"$$"; - coutln "$$FG,LTRED$$Left Mouse$$FG$$\tDrag note"; - coutln "$$FG,LTRED$$Right Mouse$$FG$$\tChange duration or set word"; - PutGrElem($IB,"",11$,$IS,"",11$,"$$PI+LM+LA,\"\",\"Msg(MSG_KEY_DOWN,0,SC_CURSOR_LEFT);\",%d$$"); - cout " "; - PutGrElem($IB,"",19$,$IS,"",19$,"$$PI+LM,\"\",\"x\",%d$$"); - cout " "; - if (Fs->user_data0><(OrgCtrl *)->record_on) - PutGrElem($IB,"",20$,$IS,"",20$,"$$PI+LM,\"\",\"z\",%d$$"); - else - PutGrElem($IB,"",21$,$IS,"",21$,"$$PI+LM,\"\",\"z\",%d$$"); - cout " "; - PutGrElem($IB,"",18$,$IS,"",18$,"$$PI+LM+LA,\"\",\"Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);\",%d$$"); - cout "\r\n\r\n\rOctive: $$FG$$"; - for (i=1;i<6;i++) - if (org_octive==i) - PrintF("$$BT-LE+LM-X+S,\"%d\",\"%d\"$$$$CM,3,0$$",i,i); - else - PrintF("$$BT-LE+LM-X,\"%d\",\"%d\"$$$$CM,3,0$$",i,i); - cout "\r\n\r\n\r\n"; - cout " $$BT-LE+LM-X,\"Mode\",\"c\"$$$$CM,2,0$$"; - cout "$$BT-LE+LM-X\"File Menu\",\"v\"$$$$CM,2,0$$"; - cout "$$BT-LE+LM-X\"Random Song\",\",\"$$$$CM,2,0$$"; - cout "$$BT-LE+LM-X\"Clear Song\",\".\"$$$$CM,2,0$$"; - cout "$$BT-LE+LM-X,\"Exit\",\"\\x1B\"$$"; - cout "\r\n\r\n\r"; -} - -#define ORGF_CANCEL 0 -#define ORGF_SAVE 1 -#define ORGF_CD 2 -#define ORGF_JUKEBOX 3 -#define ORGF_DELETE 4 - -I8 OrgPopUpFileMenu(I1 *dirname) -{ - I8 i; - Ltf *l=LtfNew; - LtfPrintF(l,"%s\r\n\r\n",dirname); - LtfPrintF(l,"$$MU,\"Load Song\" %d$$\r\n",ORGF_JUKEBOX); - LtfPrintF(l,"$$MU,\"Save Song\" %d$$\r\n",ORGF_SAVE); - LtfPrintF(l,"$$MU,\"Delete Song\" %d$$\r\n",ORGF_DELETE); - LtfPrintF(l,"$$MU,\"Change Directory\" %d$$\r\n",ORGF_CD); - LtfPrintF(l,"$$MU,\"CANCEL\" %d$$\r\n",ORGF_CANCEL); - i=PopUpMenu(l); - LtfDel(l); - return i; -} - -void MusicOrgan(I1 *dirname=NULL) -{ - OrgCtrl *oc=MAlloc(sizeof(OrgCtrl)); - BoolU4 is_note; - U8 p1,p2,i,j,ch,sc,cmd=0,note_down_time; - U8 note,octive,org_octive=3; - double record_tempo=LTDATE_FREQ/2.5; - double f=0,last_f=0,org_duration=1.0; - I1 *buf,*filename=NULL; - TssStruct *tss=Spawn(&OrgPlayTsk); - OrgNote *tempo; - BoolU4 old_ip_double=Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); - BoolU4 old_inhibit=ip_inhibit_win_operations; - BoolU4 old_wordstat=WordStat(OFF); - U8 old_user_data0=Fs->user_data0; - U8 old_ltf_flags=Fs->cur_ltf->flags; - BoolU4 old_border=WinBorder(OFF); - - Fs->cur_ltf->flags|=LTFF_FORM; - - oc->screen_x=0; - oc->record_on=FALSE; - oc->root.next=&oc->root; - oc->root.last=&oc->root; - oc->insert_point=NULL; - oc->cur_note=NULL; - - Fs->user_data0=oc; - WinMax; - - if (!dirname) - dirname=NewStr("HOME/MusicOrgan"); - else - dirname=NewStr(dirname); - ip_inhibit_win_operations=TRUE; - OrgHelp(org_octive); - oc->old_update=Fs->update_win; - Fs->update_win=&DrawIt; - - try { - do { -start: - if (ipty-Fs->win_top<13) - cmd=GetMsg(&p1,&p2,1<cur_ltf); - octive=org_octive; - if (cmd==MSG_KEY_DOWN) { - ch=p1; - sc=p2; - if (ch>='0' && ch<='9') { - org_octive=ch-'0'; - OrgHelp(org_octive); - } else { - is_note=TRUE; - switch (ch) { - case 0: - if (sc.u1[0]==SC_CURSOR_LEFT) { - oc->screen_x-=100; - } else if (sc.u1[0]==SC_CURSOR_RIGHT) { - oc->screen_x+=100; - } - is_note=FALSE; - break; - case 'a': note=7; octive--; break; - case 's': note=8; octive--; break; - case 'e': note=9; octive--; break; - case 'd': note=10; octive--; break; - case 'r': note=11; octive--; break; - case 'f': note=0; break; - case 't': note=1; break; - case 'g': note=2; break; - case 'h': note=3; break; - case 'u': note=4; break; - case 'j': note=5; break; - case 'i': note=6; break; - case 'k': note=7; break; - case 'l': note=8; break; - case 'p': note=9; break; - case ';': note=10; break; - case '[': note=11; break; - case '\'': note=0; octive++; break; - case ']': note=1; octive++; break; - case '\r': note=2; octive++; break; - case CH_SPACE: - note=0; - octive=0; - break; - case 'v': - Btr(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); - ip_inhibit_win_operations=FALSE; - switch (OrgPopUpFileMenu(dirname)) { - case ORGF_SAVE: - OrgSaveSong(dirname,filename); - break; - case ORGF_DELETE: - OrgDelSong(filename); - break; - case ORGF_CD: - Free(filename); - filename=NULL; - buf=dirname; - if (dirname=PopUpPickDir) - Free(buf); - else - dirname=buf; - break; - case ORGF_JUKEBOX: - Free(filename); - filename=NULL; - JukeBox(dirname,&filename); - if (filename) { - oc->screen_x=0; - org_duration=1.0; - org_octive=3; - OrgClearSong; - OrgLoadSong(filename,&org_octive,&org_duration); - oc->record_on=OFF; - oc->insert_point=NULL; - oc->cur_note=NULL; - } - break; - } - ip_inhibit_win_operations=TRUE; - Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); - is_note=FALSE; - OrgHelp(org_octive); - break; - case ',': - Free(filename); - filename=NULL; - Btr(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); - ip_inhibit_win_operations=FALSE; - buf=MakeSong(); - if (!oc->insert_point) { - oc->insert_point=&oc->root; - oc->cur_note=oc->insert_point; - } - OrgLoadSongStr(buf,&org_octive,&org_duration); - OrgLoadSongStr(buf,&org_octive,&org_duration); - Free(buf); - ip_inhibit_win_operations=TRUE; - Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); - is_note=FALSE; - OrgHelp(org_octive); - break; - case '.': - OrgHelp(org_octive); - Free(filename); - filename=NULL; - org_duration=1.0; - org_octive=3; - OrgClearSong; - oc->insert_point=NULL; - oc->cur_note=NULL; - oc->screen_x=0; - is_note=FALSE; - break; - case '?': - OrgHelp(org_octive); - is_note=FALSE; - break; - case 'x': - OrgHelp(org_octive); - tempo=oc->root.next; - while (tempo!=&oc->root) { - if (ipty-Fs->win_top<13) - cmd=ScanMsg(&p1,&p2,1<cur_note=oc->insert_point; - goto got_msg; - } - oc->cur_note=tempo; - if (tempo->word) - if (StrCmp(tempo->word," ")) - PutS(tempo->word); - note=tempo->note; - octive=tempo->octive; - if (note || octive) - f=Note2Freq(note,octive); - else - f=-1; //rest - if (f>0) - org_play_f=f; - else - org_play_f=0; - Sleep(org_durations[tempo->duration]*record_tempo*1000.0/LTDATE_FREQ); - org_play_f=0; - Sleep(3); - tempo=tempo->next; - } - oc->cur_note=oc->insert_point; - f=0; - org_play_f=0; - is_note=FALSE; - break; - case CH_BACKSPACE: - if (!oc->insert_point) { - oc->insert_point=&oc->root; - oc->cur_note=oc->insert_point; - } - tempo=oc->insert_point->last; - if (tempo!=&oc->root) { - PutChar(CH_BACKSPACE); - RemQue(tempo); - Free(tempo); - } - is_note=FALSE; - break; - case 'c': - org_play_mode++; - if (org_play_mode>=ORGPM_NUM_PLAY_MODES) org_play_mode=0; - is_note=FALSE; - OrgHelp(org_octive); - coutln "Mode:",org_play_mode; - break; - case 'z': - if (oc->record_on) { - oc->record_on=FALSE; - buf=OrgCvtSong; - coutln buf; - Free(buf); - } else { - coutln "\r\nCalibrate timing with 4 Quarter Notes"; - cmd=GetMsg(&ch,&sc,1<record_on=TRUE; - org_duration=1.0; - org_octive=3; - oc->screen_x=0; - } - is_note=FALSE; - OrgHelp(org_octive); - break; - default: - is_note=FALSE; - } - if (is_note) { - if (note || octive) - f=Note2Freq(note,octive); - else - f=-1; //rest - } - } - } else if (cmd==MSG_KEY_UP) - f=0; - else if (cmd==MSG_IP_MOVE) { - if (p2>13*FONT_HEIGHT) { - Btr(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); - ip_inhibit_win_operations=FALSE; - } else { - Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); - ip_inhibit_win_operations=TRUE; - } - } else if (cmd==MSG_IP_L_DOWN) - OrgLeftClick(p1,p2); - else - OrgRightClick(p1,p2); - if (f!=last_f) { - if (oc->record_on) { - if (last_f) { - tempo->duration=OrgCvtDuration((kbd_evt_time-note_down_time)/record_tempo); - if (!oc->insert_point) { - oc->insert_point=&oc->root; - oc->cur_note=oc->insert_point; - } - InsQue(tempo,oc->insert_point->last); - } - if (f) { - note_down_time=kbd_evt_time; - tempo=MAllocZ(sizeof(OrgNote)); - tempo->note=note; - tempo->octive=octive; - } - } - if (f>0) { - cout PointAtListEntry(note,org_note_list); - org_play_f=f; - } else { - if (f<0) - cout "R"; - org_play_f=0; - } - last_f=f; - } - } while (ch!=CH_ESC && ch!=CH_CTRLQ); - } catch - Fs->catch_except=TRUE; - AssignBit(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK,old_ip_double); - ip_inhibit_win_operations=old_inhibit; - OrgClearSong; - Kill(tss); - Fs->update_win=oc->old_update; - Fs->cur_ltf->flags=old_ltf_flags; - Free(oc); - Fs->user_data0=old_user_data0; - Free(dirname); - coutln "$$CL$$"; - WinBorder(old_border); - WordStat(old_wordstat); -} -Xòÿÿÿñÿÿÿñÿÿÿ -ñÿÿÿõÿÿÿ -õÿÿÿóÿÿÿ òÿÿÿöÿÿÿ -÷ÿÿÿÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿòÿÿÿþÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿ0óÿÿÿ -óÿÿÿóÿÿÿóÿÿÿòÿÿÿ òÿÿÿÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿòÿÿÿþÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿôÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿòÿÿÿþÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿhÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿòÿÿÿTÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿlþÿÿÿñÿÿÿòÿÿÿñÿÿÿñÿÿÿ -ñÿÿÿõÿÿÿ -õÿÿÿóÿÿÿ òÿÿÿöÿÿÿ -÷ÿÿÿÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿòÿÿÿþÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿDþÿÿÿòÿÿÿóÿÿÿ -óÿÿÿóÿÿÿóÿÿÿòÿÿÿ òÿÿÿÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿòÿÿÿþÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿ þÿÿÿñÿÿÿÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿòÿÿÿþÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿ        - - - - - -     - -      ]   - - -  - - -   - -  -  - -   - - - - - - - -W  - - \ No newline at end of file diff --git a/LT/Apps/MusicOrgan/Run.CPZ b/LT/Apps/MusicOrgan/Run.CPZ deleted file mode 100644 index 28f06fc014f4f111744ba56d167b9a5eee29c27d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53 zcmY$+%uCKGO-WTy()S6`cPuC<*7q$f&P?_%N>9ww_sLI8QR3x7h*D O0Z|ZT$hwtyxflS^2p1^; diff --git a/LT/Apps/Rocks/Rocks.CPZ b/LT/Apps/Rocks/Rocks.CPZ deleted file mode 100644 index 48532ca..0000000 --- a/LT/Apps/Rocks/Rocks.CPZ +++ /dev/null @@ -1,736 +0,0 @@ -$BD,0$$FD,15$ -GrBitMap *RK_base=GrAlias(grbase2,Fs); - - -$PI,"",2$ - - -$PI,"",3$ - - - -$PI,"",19$ - - -$PI,"",20$ - - -$PI,"",24$ - -$PI,"",23$ - - -$PI,"",21$ - - -$PI,"",22$ - - -$PI,"",4$ - - -$PI,"",13$ - - - -$PI,"",5$ - - -$PI,"",14$ - - - - -$PI,"",6$ - - -$PI,"",15$ - - -$PI,"",7$ - - - - -$PI,"",18$ - - - - - -#define CMD_NULL 0 -#define CMD_SPIN_LEFT 1 -#define CMD_SPIN_RIGHT 2 -#define CMD_THRUST 3 -#define CMD_FIRE 4 -#define CMD_EXIT 5 -I8 cmd=CMD_NULL; - -#define NUM_STARS 100 -I8 stars_x[NUM_STARS],stars_y[NUM_STARS]; - -BoolU4 bounce=TRUE; - -#define OT_SHIP 1 -#define OT_CARGO 2 -#define OT_BULLET 3 -#define OT_SPECK 4 -#define OT_PEBBLE 5 -#define OT_TINY_ROCK 6 -#define OT_SMALL_ROCK 7 -#define OT_MEDIUM_ROCK 8 -#define OT_LARGE_ROCK 9 - -#define A_TRANSITION -1 -#define A_INACTIVE 0 -#define A_ACTIVE 1 - -class Order2D2Theta -{ - double x,y,theta; - double DxDt,DyDt,DthetaDt; -}; - -class Object -{ - I4 active; - I4 type; - U1 *img; - double mass,radius; - U8 timeout; -}; - -#define NUM_OBJECTS 256 - -Ode *ode; -Order2D2Theta *o; -Object *objs; - -void InitObject(I8 i, I8 type) -{ - objs[i].active=A_ACTIVE; - objs[i].timeout=0; - objs[i].type=type; - switch (type) { - case OT_SHIP: - objs[i].img=$IB,"",2$; - objs[i].radius=15; - break; - case OT_CARGO: - objs[i].img=$IB,"",18$; - objs[i].radius=30; - break; - case OT_BULLET: - objs[i].img=$IB,"",9$; - objs[i].radius=7; - break; - case OT_SPECK: - objs[i].img=$IB,"",24$; - objs[i].radius=3; - break; - case OT_PEBBLE: - objs[i].img=$IB,"",23$; - objs[i].radius=5; - break; - case OT_TINY_ROCK: - if (i&1) - objs[i].img=$IB,"",21$; - else - objs[i].img=$IB,"",22$; - objs[i].radius=5; - break; - case OT_SMALL_ROCK: - if (i&1) - objs[i].img=$IB,"",10$; - else - objs[i].img=$IB,"",13$; - objs[i].radius=11; - break; - case OT_MEDIUM_ROCK: - if (i&1) - objs[i].img=$IB,"",11$; - else - objs[i].img=$IB,"",14$; - objs[i].radius=20; - break; - case OT_LARGE_ROCK: - if (i&1) - objs[i].img=$IB,"",12$; - else - objs[i].img=$IB,"",15$; - objs[i].radius=26; - break; - } - objs[i].mass=objs[i].radius*objs[i].radius*objs[i].radius; -} - -I8 AllocObject(I8 type) -{ - I8 i; - for (i=0;icolor=WHITE; - for (i=0;iGR_WIDTH) { - x=x%GR_WIDTH; - o[i].x=x; - } - if (y<0) { - y=GR_HEIGHT-AbsI8(y)%GR_HEIGHT; - o[i].y=y; - } else if (y>GR_HEIGHT) { - y=y%GR_HEIGHT; - o[i].y=y; - } - switch (objs[i].type) { - case OT_SHIP: - RK_base->flags|=BMF_TRANSFORMATION; - r1=RK_base->r; - RK_base->r=GrTheta(o[i].theta); - RK_base->x=x; - RK_base->y=y; - RK_base->z=0; - if (cmd==CMD_THRUST && GetTimeStamp&8192) - GrElemsPlot(RK_base,0,0,0,$IB,"",3$); - else - GrElemsPlot(RK_base,0,0,0,$IB,"",2$); - Free(RK_base->r); - RK_base->r=r1; - RK_base->flags&=~BMF_TRANSFORMATION; - break; - case OT_BULLET: - case OT_SPECK: - case OT_PEBBLE: - case OT_TINY_ROCK: - case OT_SMALL_ROCK: - case OT_MEDIUM_ROCK: - case OT_LARGE_ROCK: - case OT_CARGO: - RK_base->flags|=BMF_TRANSFORMATION; - r1=RK_base->r; - RK_base->r=GrTheta(o[i].theta); - RK_base->x=x; - RK_base->y=y; - RK_base->z=0; - GrElemsPlot(RK_base,0,0,0,objs[i].img); - Free(RK_base->r); - RK_base->r=r1; - RK_base->flags&=~BMF_TRANSFORMATION; - break; - } - } - } - } -} - -void SongEndTsk() -{ - Sound(0); - Exit; -} - -void SongTsk() -{ - Fs->end_task_cb=&SongEndTsk; - ResetMusicSettings; - while (TRUE) { - Play("qDCDeEGBDetBBFqDeDB"); - Play("FAetAFDeDFqAetDFBeDFetFDEqD"); - Play("eFAetAFDeDFqAetDFBeDFetFDEqD"); - } -} - -void InitObjs() -{ - I8 i,j; - - for (i=0;i1000000.0) f=1000000.0; - } - } else - f=-2.5*objs[i].mass*objs[j].mass/(dd+1.0); - - DstateDt[i].DxDt+=f*dx/objs[i].mass; - DstateDt[i].DyDt+=f*dy/objs[i].mass; - } - } - } - } - switch (cmd) { - case CMD_SPIN_LEFT: - DstateDt[0].DthetaDt-=10.0; - break; - case CMD_SPIN_RIGHT: - DstateDt[0].DthetaDt+=10.0; - break; - case CMD_THRUST: - DstateDt[0].DxDt+=100.0*Cos(state[0].theta-pi/2.0); - DstateDt[0].DyDt+=100.0*Sin(state[0].theta-pi/2.0); - break; - } - - DstateDt[1].DxDt+=2.0*Cos(state[1].theta-pi/2.0); - DstateDt[1].DyDt+=2.0*Sin(state[1].theta-pi/2.0); -} - -void Collision(I8 i,I8 j) -{ - I8 i2; - switch (objs[i].type) { - case OT_SHIP: - if (!bounce) { - cmd=CMD_EXIT; - objs[i].active=A_INACTIVE; - } - break; - case OT_CARGO: - cmd=CMD_EXIT; - objs[i].active=A_INACTIVE; - break; - case OT_SPECK: - if (objs[j].type==OT_BULLET && !bounce) - objs[i].active=A_INACTIVE; - break; - case OT_BULLET: - if (!bounce) - objs[i].active=A_INACTIVE; - break; - case OT_PEBBLE: - case OT_TINY_ROCK: - case OT_SMALL_ROCK: - case OT_MEDIUM_ROCK: - i2=AllocObject(objs[i].type-1); - objs[i2].active=A_TRANSITION; - o[i2].x=o[i].x+objs[i2].radius+2.0; - o[i2].y=o[i].y; - o[i2].theta=o[i].theta; - o[i2].DxDt=o[i].DxDt; - o[i2].DyDt=o[i].DyDt; - o[i2].DthetaDt=o[i].DthetaDt; - - i2=AllocObject(objs[i].type-1); - objs[i2].active=A_TRANSITION; - o[i2].x=o[i].x-objs[i2].radius-2.0; - o[i2].y=o[i].y; - o[i2].theta=o[i].theta; - o[i2].DxDt=o[i].DxDt; - o[i2].DyDt=o[i].DyDt; - o[i2].DthetaDt=o[i].DthetaDt; - - objs[i].active=A_INACTIVE; - break; - case OT_LARGE_ROCK: - i2=AllocObject(objs[i].type-1); - objs[i2].active=A_TRANSITION; - o[i2].x=o[i].x+objs[i2].radius+4.0; - o[i2].y=o[i].y+objs[i2].radius+4.0; - o[i2].theta=o[i].theta; - o[i2].DxDt=o[i].DxDt; - o[i2].DyDt=o[i].DyDt; - o[i2].DthetaDt=o[i].DthetaDt; - - i2=AllocObject(objs[i].type-1); - objs[i2].active=A_TRANSITION; - o[i2].x=o[i].x-objs[i2].radius-4.0; - o[i2].y=o[i].y-objs[i2].radius-4.0; - o[i2].theta=o[i].theta; - o[i2].DxDt=o[i].DxDt; - o[i2].DyDt=o[i].DyDt; - o[i2].DthetaDt=o[i].DthetaDt; - - i2=AllocObject(objs[i].type-1); - objs[i2].active=A_TRANSITION; - o[i2].x=o[i].x-objs[i2].radius-4.0; - o[i2].y=o[i].y+objs[i2].radius+4.0; - o[i2].theta=o[i].theta; - o[i2].DxDt=o[i].DxDt; - o[i2].DyDt=o[i].DyDt; - o[i2].DthetaDt=o[i].DthetaDt; - - i2=AllocObject(objs[i].type-1); - objs[i2].active=A_TRANSITION; - o[i2].x=o[i].x+objs[i2].radius+4.0; - o[i2].y=o[i].y-objs[i2].radius-4.0; - o[i2].theta=o[i].theta; - o[i2].DxDt=o[i].DxDt; - o[i2].DyDt=o[i].DyDt; - o[i2].DthetaDt=o[i].DthetaDt; - - objs[i].active=A_INACTIVE; - break; - } - - switch (objs[j].type) { - case OT_SHIP: - if (!bounce) { - cmd=CMD_EXIT; - objs[j].active=A_INACTIVE; - } - break; - case OT_CARGO: - cmd=CMD_EXIT; - objs[j].active=A_INACTIVE; - break; - case OT_SPECK: - if (objs[i].type==OT_BULLET && !bounce) - objs[j].active=A_INACTIVE; - break; - case OT_BULLET: - if (!bounce) - objs[j].active=A_INACTIVE; - break; - case OT_PEBBLE: - case OT_TINY_ROCK: - case OT_SMALL_ROCK: - case OT_MEDIUM_ROCK: - i2=AllocObject(objs[j].type-1); - objs[i2].active=A_TRANSITION; - o[i2].x=o[j].x+objs[i2].radius+2.0; - o[i2].y=o[j].y; - o[i2].theta=o[j].theta; - o[i2].DxDt=o[j].DxDt; - o[i2].DyDt=o[j].DyDt; - o[i2].DthetaDt=o[j].DthetaDt; - - i2=AllocObject(objs[j].type-1); - objs[i2].active=A_TRANSITION; - o[i2].x=o[j].x-objs[i2].radius-2.0; - o[i2].y=o[j].y; - o[i2].theta=o[j].theta; - o[i2].DxDt=o[j].DxDt; - o[i2].DyDt=o[j].DyDt; - o[i2].DthetaDt=o[j].DthetaDt; - - objs[j].active=A_INACTIVE; - break; - - case OT_LARGE_ROCK: - i2=AllocObject(objs[j].type-1); - objs[i2].active=A_TRANSITION; - o[i2].x=o[j].x+objs[i2].radius+4.0; - o[i2].y=o[j].y+objs[i2].radius+4.0; - o[i2].theta=o[j].theta; - o[i2].DxDt=o[j].DxDt; - o[i2].DyDt=o[j].DyDt; - o[i2].DthetaDt=o[j].DthetaDt; - - i2=AllocObject(objs[j].type-1); - objs[i2].active=A_TRANSITION; - o[i2].x=o[j].x-objs[i2].radius-4.0; - o[i2].y=o[j].y-objs[i2].radius-4.0; - o[i2].theta=o[j].theta; - o[i2].DxDt=o[j].DxDt; - o[i2].DyDt=o[j].DyDt; - o[i2].DthetaDt=o[j].DthetaDt; - - i2=AllocObject(objs[j].type-1); - objs[i2].active=A_TRANSITION; - o[i2].x=o[j].x-objs[i2].radius-4.0; - o[i2].y=o[j].y+objs[i2].radius+4.0; - o[i2].theta=o[j].theta; - o[i2].DxDt=o[j].DxDt; - o[i2].DyDt=o[j].DyDt; - o[i2].DthetaDt=o[j].DthetaDt; - - i2=AllocObject(objs[j].type-1); - objs[i2].active=A_TRANSITION; - o[i2].x=o[j].x+objs[i2].radius+4.0; - o[i2].y=o[j].y-objs[i2].radius-4.0; - o[i2].theta=o[j].theta; - o[i2].DxDt=o[j].DxDt; - o[i2].DyDt=o[j].DyDt; - o[i2].DthetaDt=o[j].DthetaDt; - - objs[j].active=A_INACTIVE; - break; - } -} - -void CheckCollisions() -{ - I8 i,j,*r1; - double d,d1,dd,dx,dy; - GrBitMap *b; - for (i=0;iflags|=BMF_TRANSFORMATION; - - r1=b->r; - b->r=GrTheta(o[i].theta); - b->x=32; - b->y=32; - b->z=0; - GrElemsPlot(b,0,0,0,objs[i].img); - Free(b->r); - b->r=r1; - - b->bkcolor=ROP_COLLISION+BLACK; - - r1=b->r; - b->r=GrTheta(o[j].theta); - b->x=o[j].x-o[i].x+32; - b->y=o[j].y-o[i].y+32; - b->z=0; - GrElemsPlot(b,0,0,0,objs[j].img); - Free(b->r); - b->r=r1; - - if (b->collision_cnt>0) - Collision(i,j); - - GrDel(b); - } - } - } - } - } - for (i=0;iMUZZLE_VELOCITY*5.0) - Auto(" "); - } -} - -void Rocks() -{ - I8 ch=0,i=0,c,p1,p2,sc=0; - void *old_update=Fs->update_win; - Ltf *l,*old_cur_ltf=Fs->cur_ltf,*old_aux_ltf=Fs->aux_ltf; - BoolU4 old_preempt=Preempt(OFF), - old_border=WinBorder(OFF); - TssStruct *song_tss=Spawn(&SongTsk,"Rocks Song",Fs); - I8 old_attr=Fs->text_attribute; - - SetTypeMatic(0); - - ode=OdeNew(NUM_OBJECTS*6); - ode->derivative=&MyDerivative; - ode->tolerance_start=.1; - o=ode->state; - objs=MAlloc(NUM_OBJECTS*sizeof(Object)); - - Fs->text_attribute=0x0F; - WinMax; - - Fs->cur_ltf=NULL; - - Fs->aux_ltf=l=InitSysAuxLtf(TRUE); - LtfPutSExt(l,"$$MA+A+TML+IV,\"Restart | \",\" \"$$"); - LtfPutSExt(l,"$$MA+A+TML+IV,\"Bounce | \",\"b\"$$"); - LtfPutSExt(l,"$$MA+A+TML+IV,\"Exit\",\"\\033\"$$"); - LtfPutSExt(l,"$$CM+LX+TY,2,2$$$$TX+BK,\"Escort the cargo ship\"$$"); - - InitObjs; - InsQue(ode,Fs->last_ode); - Fs->update_win=&DrawIt; - - while (ch!=CH_ESC && ch!=CH_CTRLQ) { - InitObjs; - ch=0; - cmd=CMD_NULL; - while (ch!=CH_ESC && ch!=CH_CR && ch!=CH_SPACE && ch!=CH_CTRLQ) { - while (c=ScanMsg(&p1,&p2,1<best_d && l->cur_entry!=l) { - LtfRunEntry(l,l->cur_entry,TRUE,old_preempt); - ch=0; - l->best_d=MAX_I8; - } - } else if (ch=='b') - bounce=!bounce; - else if (sc.u1[0]==SC_CURSOR_RIGHT) - cmd=CMD_SPIN_RIGHT; - else if (sc.u1[0]==SC_CURSOR_LEFT) - cmd=CMD_SPIN_LEFT; - else if (sc.u1[0]==SC_CURSOR_UP) - cmd=CMD_THRUST; - else if (sc.u1[0]==SC_CURSOR_DOWN) - Fire; - } else - cmd=CMD_NULL; - } - CheckCollisions; - CheckCrazy; - if (cmd==CMD_EXIT) { - Sleep(1000); - ch=CH_SPACE; - } - WinSync; //messages are only queued by winmngr - } - } - Kill(song_tss); - Sound(0); - LtfDel(l); - Fs->aux_ltf=old_aux_ltf; - if (Fs->cur_ltf=old_cur_ltf) - LtfBottom(Fs->cur_ltf); - - RemQue(ode); - OdeDel(ode); - Free(objs); - - Fs->text_attribute=old_attr; - Fs->update_win=old_update; - WinBorder(old_border); - Preempt(old_preempt); -} - ùÿÿÿüÿÿÿüÿÿÿúÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿýÿÿÿýÿÿÿ÷ÿÿÿ÷ÿÿÿûÿÿÿûÿÿÿÿÿÿÿøÿÿÿøÿÿÿ    - -  ôÿÿÿôÿÿÿôÿÿÿôÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿþÿÿÿ þÿÿÿ  �ùÿÿÿüÿÿÿüÿÿÿúÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿýÿÿÿýÿÿÿ÷ÿÿÿ÷ÿÿÿûÿÿÿûÿÿÿÿÿÿÿøÿÿÿøÿÿÿÿÿÿÿþÿÿÿ -þÿÿÿ - - -    ýÿÿÿ - - - - -óÿÿÿóÿÿÿøÿÿÿøÿÿÿûÿÿÿ ûÿÿÿ E þÿÿÿýÿÿÿólß$† n[½þÿÿÿd¨­hþÿÿÿûÿÿÿn[϶m’$C’$É$Q¶eÛ¼„ar–ͳíÙžW’"Cš¶½mÛ²úÿÿÿ¶m’6MÛ+€üÿÿÿ¤m þÿÿÿþÿÿÿ¤iÛT -I²rsüÿÿÿôÿÿÿóæy^ÝÚ³m“$íÛ¶mÛ³g’¡F CQŒ¢d["‰©( ³lÁ°lž×n.$I’T¤$à ÷ÿÿÿž=Û$Îúÿÿÿ«]»¶m“¦IFI’$I’„IrY–ms×zõÖm¶kÛ&MÛ¶m“¤%‘’l¶e[’$‰HÒ·m›next=header; - header->last=header; - ptr=buf; - while (type=*ptr++) { - tempt=MAllocZ(sizeof(TimeEntry)); - tempt->type=type; - d=ptr; - ptr+=sizeof(LTDate); - tempt->d=*d; - tempt->desc=NewStr(ptr); - ptr+=StrLen(ptr)+1; - InsQue(tempt,header->last); - } - Free(buf); -} - -void WriteTimeFile(TimeEntry *header) -{ - U1 *buf,*ptr; - TimeEntry *tempt; - LTDate *d; - U8 size=1; //for eof - - tempt=header->next; - while (tempt!=header) { - size+=sizeof(U1)+sizeof(LTDate)+StrLen(tempt->desc)+1; - tempt=tempt->next; - } - buf=MAlloc(size); - - ptr=buf; - tempt=header->next; - while (tempt!=header) { - *ptr++=tempt->type; - d=ptr; - *d=tempt->d; - ptr+=sizeof(LTDate); - StrCpy(ptr,tempt->desc); - ptr+=StrLen(tempt->desc)+1; - tempt=tempt->next; - } - *ptr=TET_EOF; - WriteFile(TIME_FILENAME,buf,size); - Free(buf); -} - -void DelTimeEntries(TimeEntry *header) -{ - TimeEntry *tempt=header->next,*tempt1; - while (tempt!=header) { - tempt1=tempt->next; - Free(tempt->desc); - Free(tempt); - tempt=tempt1; - } - Free(header); -} - -public BoolU4 TimeRep(TimeEntry **header=NULL) -{ - BoolU4 is_in=FALSE; - TimeEntry *tempt; - U8 week,cur_week,week_total=0; - TimeEntry *my_header=MAlloc(sizeof(TimeEntry)); - if (header) - *header=my_header; - ReadTimeFile(my_header); - tempt=my_header->next; - while (tempt!=my_header) { - week=tempt->d.date/7; //TODO - if (week!=cur_week) { - if (is_in) - week_total=week_total+GetCurTimeLTDate; - PrintF("Week Total:%h2T\r\n",week_total); - cur_week=week; - week_total=0; - } - if (tempt->type==TET_PUNCH_IN) { - PutS("$$FG,RED$$IN "); - if (!is_in) - week_total=week_total-tempt->d; - is_in=TRUE; - } else { - PutS("$$FG,RED$$OUT"); - if (is_in) - week_total=week_total+tempt->d; - is_in=FALSE; - } - PrintF(" %h2D %T:$$FG$$\r\n%s\r\n", - tempt->d,tempt->d,tempt->desc); - tempt=tempt->next; - } - if (is_in) - week_total=week_total+GetCurTimeLTDate; - PrintF("$$FG,RED$$Week Total:%h2T$$FG$$\r\n",week_total); - if (!header) - DelTimeEntries(my_header); - return is_in; -} - -void PunchOut() -{ - BoolU4 is_in; - TimeEntry *tempt,*header; - is_in=TimeRep(&header); - if (!is_in) { - PutS("$$BK,1$$Already Punched-Out$$BK,0$$\r\n"); - View; - } else { - tempt=MAlloc(sizeof(TimeEntry)); - tempt->type=TET_PUNCH_OUT; - tempt->d=GetCurTimeLTDate; - PrintF("\r\nEnter Description:\r\n"); - if (!(tempt->desc=MGetS)) - tempt->desc=MAllocZ(1); - InsQue(tempt,header->last); - WriteTimeFile(header); - } - DelTimeEntries(header); -} - -void PunchIn() -{ - BoolU4 is_in; - TimeEntry *tempt,*header; - is_in=TimeRep(&header); - if (is_in) { - PutS("$$BK,1$$Already Punched-In$$BK,0$$\r\n"); - View; - } else { - tempt=MAlloc(sizeof(TimeEntry)); - tempt->type=TET_PUNCH_IN; - tempt->d=GetCurTimeLTDate; - PrintF("\r\nEnter Description:\r\n"); - if (!(tempt->desc=MGetS)) - tempt->desc=MAllocZ(1); - InsQue(tempt,header->last); - WriteTimeFile(header); - } - DelTimeEntries(header); -} diff --git a/LT/Apps/Vocabulary/Load.CPZ b/LT/Apps/Vocabulary/Load.CPZ deleted file mode 100644 index a3ed664b6c12197a3b9f2ba4cfc7e1c8ab4f582f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88 zcmY$+NX;pT&&*3ntx!;MPs~j%R^sL2 z#U)^w@{G)!R0WMpU0nq=HL&Hjw&B4p@!|eKF7eJDjzLfh3rdQ#ZG%gSd{Xl?3QCGJ zwT;2rL5>8uSX)~Wt2T6Zrsfo)@jg2h8kR861;LDc7!=EmA0th5ICM?pbBA)qKTuf$D5 zNkt_*T*pvFMMcHgSJ%f?#}veLbJq!Sbpf%Qyg`zx#VRUJ-Z};vNgz=hCyK#B~W-Uk~2!o8%aSw8J^#d8|6r$_ns_o;e8=(`Uq?!_=1f@W7 zAZwL)xi~?NS5Q(>@$uC$S5Z+dhL{3zj*?EMwjmgY7pJ(Vmbj#*X+VM@GgcGkwt&)- zU=1aZHV_6oz$e7XC)8C%#WAnAJhcewMBh4b^RJ^Gb6ek_rkCH$&YD4KC;WqN3E~5|}4cRKO1AR8R=cFU?EQFf=eQ z0NKr1s{l&dU|Y}(0>`muUNU}zj9}*Qa&ZRdq^1^Vm_kJ$7C~$YFHQ-_F9ll!OkGpgJL@Xo>YB&L1_@= PW3XQp6o@nhoQoL%Zcs|X diff --git a/LT/Apps/WarGame/Load.CPZ b/LT/Apps/WarGame/Load.CPZ deleted file mode 100644 index f92953ed212c55c73b7fa3e3197a31daf489bd77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83 zcmY$+NX;pT&&*3ntx!;MPs~j%R^sL2",1$,$IB,"",3$,$IB,"",2$, - $IB,"",4$, - $IB,"",2$,$IB,"",3$,$IB,"",1$}; - -U8 fire_end_time=0; -BoolU4 sound_off=TRUE; - -class Trooper -{ - I8 num,x,y,dx,dy,fx,fy,att,def,rng,player; - U8 fire_end_time; -}; - -#define num_troopers 100 - -Trooper tr[num_troopers<<1]; -U8 cnt1,cnt2; -I8 text_area_size=(GR_HEIGHT/FONT_HEIGHT)*(GR_WIDTH/FONT_WIDTH); - - -#define mm_none 1 -#define mm_friendly_firepower 2 -#define mm_laps_time 3 -I8 map_mode=mm_none,cmd_intensity=128; -U2 *map_values; - - -#define ai_nothing 1 -#define ai_target 2 -#define ai_random 3 -U8 ai; - -void UpdateMap(TssStruct *tss) -{ - I8 i; - for (i=tss->win_top;i<=tss->win_bottom;i++) { - MemCpy(textbase+(i*TEXT_COLS+tss->win_left)*4, - map_values+(i*TEXT_COLS+tss->win_left)*4, - (tss->win_right+1-tss->win_left)*4); - } -} - -void ClearMapValues() -{ - MemSet(map_values,0,text_area_size*sizeof(U4)); -} - -void PutFriendlyFirepower(TssStruct *tss) -{ - I8 i,d,x,y,dx,dy; - I8 lt=tss->win_left,rt=tss->win_right, - tp=tss->win_top, bm=tss->win_bottom; - U4 *ptr; - U8 v; - for (y=0;y<=bm-tp;y++) { - ptr=map_values+((y+tp)*TEXT_COLS+tss->win_left)*4; - for (x=0;x<=rt-lt;x++) { - v=0; - for (i=0;i0 && tr[i].fire_end_time>16)-(x*FONT_WIDTH+FONT_WIDTH>>1); - dy=(tr[i].y>>16)-(y*FONT_HEIGHT+FONT_HEIGHT>>1); - d=dx*dx+dy*dy; - if (ddx>>12,y=t->dy>>12,s,fire_col, - speed=Sqrt(x*x+y*y); - - if (map_mode==mm_laps_time) { - x=(t->x+500*t->dx)>>16; - y=(t->y+500*t->dy)>>16; - } else { - x=t->x>>16; - y=t->y>>16; - } - s=t->def; - - if (s>0) { - s=s/3; - WG_base->color=color; - WG_base->bkcolor=BLACK; - GrElemsPlot(WG_base,x,y,0,GrTrooper[(t->num+Jiffies*speed/JIFFY_FREQ)%7]); - if (t->player==0) - fire_col=friendly_fire_color; - else - fire_col=enemy_fire_color; - if (Jiffiesfire_end_time) { - Sound(2000); - sound_off=FALSE; - WG_base->color=fire_col; - GrLine3(WG_base,x,y,0,t->fx>>16,t->fy>>16,0); - } - if (Jiffies>=fire_end_time) - if (!sound_off) { - sound_off=TRUE; - Sound(0); - } - } -} - -void DrawIt(TssStruct *tss) -{ - I1 buf[32]; - I8 i,c,x=ipx-tss->win_pixel_left,y=ipy-tss->win_pixel_top; - cmd_intensity=(ip_throttle*128)>>32; - - UpdateMap(tss); - LtfUpdateAuxLtf(tss); - - cnt1=0; - cnt2=0; - for (i=0;i0) { - DrawTrooper(&tr[i],p1_color); - cnt1++; - } - for (i=num_troopers;i0) { - DrawTrooper(&tr[i],p2_color); - cnt2++; - } - if (cmd_intensity>0) { - if (ip_lb) - c=ROP_EQU+LTGREEN; - else - c=ROP_EQU+GREEN; - } else { - if (ip_lb) - c=ROP_EQU+LTBLUE; - else - c=ROP_EQU+BLUE; - } - WG_base->color=c; - GrCircle(WG_base,x,y,AbsI8(cmd_intensity)); - SPrintF(buf,"%03d %03d",cnt1,cnt2); - PlotWinStr(tss,buf,WHITE,tss->win_right-8,0); -} - - -I8 targets[10]; -void InitTroopers() -{ - I8 i,j,dx,dy; - Trooper *t; - for (i=0;i<10;i++) { - targets[i]=RandU2%num_troopers; - dx=RandU2-0x8000; - dy=RandU2-0x8000; - for (j=0;j<10;j++) { - t=&tr[i*10+j]; - t->num=i*10+j; - t->x=(GR_WIDTH-100-i*10)<<16; - t->y=(GR_HEIGHT>>1-50+j*10)<<16; - t->dx=0; - t->dy=0; - t->fire_end_time=Jiffies; - t->att=3; - t->def=10; - t->rng=50*50; - t->player=0; - - t=&tr[i*10+j+num_troopers]; - t->num=i*10+j; - t->x=(100+i*10)<<16; - t->y=(GR_HEIGHT>>1-50+j*10)<<16; - t->dx=0; - t->dy=0; - if (ai==ai_random) { - t->dx=dx; - t->dy=dy; - } - t->fire_end_time=Jiffies; - t->att=3; - t->def=10; - t->rng=50*50; - t->player=1; - } - } -} - - -void DoAiTarget() -{ - I8 i,j; - Trooper *t,*t2; - for (i=0;i<10;i++) { - t2=&tr[targets[i]]; - for (j=0;j<10;j++) { - t=&tr[i*10+j+num_troopers]; - t->dx=(t2->x-t->x)>>11; - t->dy=(t2->y-t->y)>>11; - } - } -} - - -void UpdatePositions() -{ - I8 i; - Trooper *t; - for (i=0;ix+=t->dx; - if (t->x>=GR_WIDTH<<16) t->x-=GR_WIDTH<<16; - if (t->x<0) t->x+=GR_WIDTH<<16; - t->y+=t->dy; - if (t->y>=GR_HEIGHT<<16) t->y-=GR_HEIGHT<<16; - if (t->y<0) t->y+=GR_HEIGHT<<16; - } -} - -void ResolveFiring() -{ - I8 i,j,d,dx,dy; - for (i=0;i0 && tr[j].def>0) { - dx=(tr[i].x-tr[j].x)>>16; - dy=(tr[i].y-tr[j].y)>>16; - d=dx*dx+dy*dy; - if (d>3; - fire_end_time=tr[i].fire_end_time; - tr[i].fx=tr[j].x; - tr[i].fy=tr[j].y; - tr[j].def=tr[j].def-tr[i].att; - } - if (d>3; - fire_end_time=tr[i].fire_end_time; - tr[j].fx=tr[i].x; - tr[j].fy=tr[i].y; - tr[i].def=tr[i].def-tr[j].att; - } - } - } -} - -void UpdateVelocities() -{ - I8 i,x=ipx-Fs->win_pixel_left,y=ipy-Fs->win_pixel_top,dx,dy,d; - Trooper *t; - if (ip_lb) { - for (i=0;ix>>16)); - dy=(y-(t->y>>16)); - d=dx*dx+dy*dy+1; - dx=(cmd_intensity<<13*dx)/d; - dy=(cmd_intensity<<13*dy)/d; - t->dx=t->dx-dx; - t->dy=t->dy-dy; - } - } -} - -void SongEndTsk() -{ - Sound(0); - Exit; -} - -void SongTsk() -{ - Fs->end_task_cb=&SongEndTsk; - ResetMusicSettings; - while (TRUE) { - Play("3qAG2eG3DqDeBGqEsARAReFA"); - Play("qAG2eG3DqDeBGqEsARAReFA"); - Play("sCCCC2qG3G2G3ABD2eGR"); - Play("3sCCCC2qG3G2G3ABD2eGR"); - } -} - -void WarGame() -{ - I8 ch=0,i=0; - U8 sc=0,ms=0; - void *old_update=Fs->update_win; - Ltf *l,*m,*old_cur_ltf=Fs->cur_ltf,*old_aux_ltf=Fs->aux_ltf; - BoolU4 old_has_menu; - BoolU4 old_border=WinBorder(OFF); - BoolU4 old_ip_double=Bts(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK); - BoolU4 old_preempt=Preempt(OFF); - TssStruct *song_tss=Spawn(&SongTsk,"WarGame Song",Fs); - - WinMax; - map_values=MAlloc(text_area_size*sizeof(U4)); - ip_throttle=-1<<30; - - Fs->cur_ltf=NULL; - - m=LtfRead("::/LT/Apps/WarGame/WarGame.MUZ"); - old_has_menu=Bts(&Fs->crt_flags,CRTf_HAS_MENU); //todo aux ltf to show "MENU" - - Fs->aux_ltf=l=InitSysAuxLtf(TRUE); - LtfPutSExt(l,"$$MA+A+TML+IV,\"Restart | \",\" \"$$"); - LtfPutSExt(l,"$$MA+A+TML+IV,\"Normal | \",\"1\"$$"); - LtfPutSExt(l,"$$MA+A+TML+IV,\"FirePower | \",\"2\"$$"); - LtfPutSExt(l,"$$MA+A+TML+IV,\"LapseTime | \",\"3\"$$"); - LtfPutSExt(l,"$$MA+A+TML+IV,\"Exit\",\"\\033\"$$"); - - ClearMapValues; - InitTroopers(); - Fs->update_win=&DrawIt; - PopUpOk("Wheel Controls Command Strength"); - - while (ms!=101 && ch!=CH_ESC && ch!=CH_CTRLQ) { - ch=0;ms=0; - ai=RandU2%3+1; - InitTroopers(); - while (ch!=CH_ESC && ch!=CH_CR && ch!=CH_SPACE && ch!=CH_CTRLQ && ms!=101 && ms!=100) { - ms=0; - if (ScanKey(&ch,&sc)) { - if (ch==CH_SPACE) { - if (!l->best_d && l->cur_entry!=l) { - LtfRunEntry(l,l->cur_entry,TRUE,old_preempt); - ch=0; - } - } - ClearMapValues; - if (sc.u1[0]==SC_GUI) - ms=DoMenu(m); - if (ms==1 || ch=='1') - map_mode=mm_none; - else if (ms==2 || ch=='2') - map_mode=mm_friendly_firepower; - else if (ms==3 || ch=='3') - map_mode=mm_laps_time; - } - if (!(++i&7) && map_mode==mm_friendly_firepower) - PutFriendlyFirepower(Fs); - Sleep(40); - if (ai==ai_target) - DoAiTarget; - UpdateVelocities; - UpdatePositions; - ResolveFiring; - } - } - Kill(song_tss); - Sound(0); - LtfDel(l); - Fs->aux_ltf=old_aux_ltf; - if (Fs->cur_ltf=old_cur_ltf) - LtfBottom(Fs->cur_ltf); - LtfDel(m); - - Fs->update_win=old_update; - Free(map_values); - AssignBit(&Fs->crt_flags,CRTf_NO_DOUBLE_CLICK,old_ip_double); - AssignBit(&Fs->crt_flags,CRTf_HAS_MENU,old_has_menu); - WinBorder(old_border); - Preempt(old_preempt); -} -Tøÿÿÿýÿÿÿÿÿÿÿ þÿÿÿ|  ÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿýÿÿÿÿÿÿÿ þÿÿÿ| - - øÿÿÿýÿÿÿÿÿÿÿ þÿÿÿ|  ÿÿÿÿ ÿÿÿÿ ÿÿÿÿøÿÿÿýÿÿÿÿÿÿÿ þÿÿÿ \ No newline at end of file diff --git a/LT/Apps/WarGame/WarGame.MUZ b/LT/Apps/WarGame/WarGame.MUZ deleted file mode 100644 index 16ac1a4..0000000 --- a/LT/Apps/WarGame/WarGame.MUZ +++ /dev/null @@ -1,14 +0,0 @@ -$TX+CX,"WarGame"$ -$TX+CX,"------------"$ -$TX+CX,"Button #1 issues command"$s - -$TX+CX,"Throttle/Wheel adjusts command strength."$ - -$MA+A+CX,"SPACE Restart"," "$ -$MA+A+CX,"ESC Quit ","\033"$ - -$TX+CX,"---------------------------"$ -$MA+A+CX,"'1' No Map ","1"$ -$MA+A+CX,"'2' Friendly Fire Power Map","2"$ -$MA+A+CX,"'3' Lapse Time ","3"$ - diff --git a/LT/Compiler/AsmMain.CPZ b/LT/Compiler/AsmMain.CPZ deleted file mode 100644 index a72a107..0000000 --- a/LT/Compiler/AsmMain.CPZ +++ /dev/null @@ -1,1655 +0,0 @@ -ClassStruct *CmpClassNew() -{ - ClassStruct *result=MAllocZ(sizeof(ClassStruct)*5), - *tempc=result; - tempc->last_in_member_list=&tempc->member_list; - tempc->type=HTT_CLASS; - tempc->sub_type=IT_PTR; - tempc->ptr_cnt=0; - - tempc+=sizeof(ClassStruct); - tempc->type=HTT_CLASS; - tempc->sub_type=IT_PTR; - tempc->size=sizeof(void *); - tempc->ptr_cnt=1; - - tempc+=sizeof(ClassStruct); - tempc->type=HTT_CLASS; - tempc->sub_type=IT_PTR; - tempc->size=sizeof(void *); - tempc->ptr_cnt=2; - - tempc+=sizeof(ClassStruct); - tempc->type=HTT_CLASS; - tempc->sub_type=IT_PTR; - tempc->size=sizeof(void *); - tempc->ptr_cnt=3; - - tempc+=sizeof(ClassStruct); - tempc->type=HTT_CLASS; - tempc->sub_type=IT_PTR; - tempc->size=sizeof(void *); - tempc->ptr_cnt=4; - - return result; -} - -void AddUnresolved(AsmCtrlStruct *a,U1 *exp,I8 type,U8 ip,U8 rel_ip, - LexUndefEntry *undef_hash,I8 line_num,BoolU4 U1_avail,BoolU4 glbl) -{ - AsmUnresolvedRef *tempu=MAlloc(sizeof(AsmUnresolvedRef)); - tempu->exp=exp; - tempu->type=type; - tempu->ip=ip; - tempu->rel_ip=rel_ip; - tempu->undef_hash=undef_hash; - tempu->literal=FALSE; - tempu->line_num=line_num; - tempu->U1_avail=U1_avail; - tempu->str=NULL; - if (glbl) { - tempu->next=a->glbl_unresolved; - a->glbl_unresolved=tempu; - if (undef_hash->hash->type & HTT_IMPORT) { - tempu->str=NewStr(undef_hash->hash->str); - if (undef_hash->hash->type & HTT_LITERAL) - tempu->literal=TRUE; - } - } else { - tempu->next=a->local_unresolved; - a->local_unresolved=tempu; - a->has_locals=TRUE; - } -} - -void AsmListLine(LexStruct *lx) -{ - I8 i; - AsmCtrlStruct *a=lx->a; - LexFileStruct *tempf=lx->cur_lfn; - LtfEntry *cl=tempf->line_start,*cl3; - if (a->list && a->last_lfn==tempf && cl) { - if (cl3=a->last_line_listed) { - while (cl3->yy) { - for (i=a->display_col;i<8;i++) - cout " "; - a->display_col=0; - PrintF("%08X ",a->last_ip); - cl3=LexPutLine(lx,cl3); - } - a->last_line_listed=cl3; - } else - a->last_line_listed=cl; - } else { - a->last_line_listed=NULL; - a->last_lfn=tempf; - } - a->last_ip=a->ip; -} - -void AsmStoreCodeU1(LexStruct *lx,U1 b) -{ - AsmCtrlStruct *a=lx->a; - I8 i=a->ip>>ASM_CODE_BLK_BITS; - AsmCodeBlk *tempc=a->code; - while (i--) - if (!(tempc=tempc->next)) { - i=a->ip>>ASM_CODE_BLK_BITS+1; - tempc=&a->code; - while (i--) { - if (!*tempc) - *tempc=MAllocZ(sizeof(AsmCodeBlk)); - tempc=tempc->next; - } - break; - } - tempc->body[a->ip++ & (ASM_CODE_BLK_SIZE-1)]=b; - if (a->list) { - PrintF("%02X ",b); - a->display_col++; - if (a->display_col>8) { - a->display_col=0; - AsmListLine(lx); - } - } - if (a->ip>a->num_code_U1s) - a->num_code_U1s=a->ip; -} - -void AsmStoreCodeU4(LexStruct *lx,U4 d) -{ - AsmCtrlStruct *a=lx->a; - I8 i=a->ip>>ASM_CODE_BLK_BITS, - j=(a->ip+sizeof(U4))>>ASM_CODE_BLK_BITS; - U4 *dd; - AsmCodeBlk *tempc=a->code; - if (i!=j) { - for (i=0;icode; - while (i--) - if (!(tempc=tempc->next)) { - i=a->ip>>ASM_CODE_BLK_BITS+1; - tempc=&a->code; - while (i--) { - if (!*tempc) - *tempc=MAllocZ(sizeof(AsmCodeBlk)); - tempc=tempc->next; - } - break; - } - dd=tempc->body+(a->ip&(ASM_CODE_BLK_SIZE-1)); - *dd=d; - a->ip+=sizeof(U4); - if (a->list) { - PrintF("%08X ",d); - a->display_col+=sizeof(U4); - if (a->display_col>8) { - a->display_col=0; - AsmListLine(lx); - } - } - if (a->ip>a->num_code_U1s) - a->num_code_U1s=a->ip; -} - -void AsmStoreCodeU8(LexStruct *lx,U8 d) -{ - AsmCtrlStruct *a=lx->a; - I8 i=a->ip>>ASM_CODE_BLK_BITS, - j=(a->ip+sizeof(U8))>>ASM_CODE_BLK_BITS; - U8 *dd; - AsmCodeBlk *tempc=a->code; - if (i!=j) { - for (i=0;icode; - while (i--) - if (!(tempc=tempc->next)) { - i=a->ip>>ASM_CODE_BLK_BITS+1; - tempc=&a->code; - while (i--) { - if (!*tempc) - *tempc=MAllocZ(sizeof(AsmCodeBlk)); - tempc=tempc->next; - } - break; - } - dd=tempc->body+(a->ip&(ASM_CODE_BLK_SIZE-1)); - *dd=d; - a->ip+=sizeof(U8); - if (a->list) { - PrintF("%016X ",d); - a->display_col+=sizeof(U8); - if (a->display_col>8) { - a->display_col=0; - AsmListLine(lx); - } - } - if (a->ip>a->num_code_U1s) - a->num_code_U1s=a->ip; -} - -void AsmStoreCodeU1At(LexStruct *lx,U1 b,I8 ip) -{ - AsmCtrlStruct *a=lx->a; - I8 i=ip>>ASM_CODE_BLK_BITS+1; - AsmCodeBlk *tempc=&a->code; - while (i--) { - if (!*tempc) { - *tempc=MAlloc(sizeof(AsmCodeBlk)); - **tempc=NULL; - } - tempc=tempc->next; - } - tempc->body[ip & (ASM_CODE_BLK_SIZE-1)]=b; - if (ip+1>a->num_code_U1s) - a->num_code_U1s=ip+1; -} - - -I8 AsmEvalExpression(LexStruct *lx) -{ - U1 *exp; - I8 result=0; - lx->undef_hash_entry=NULL; - lx->flags&=~(LF_UNRESOLVED_LOCAL+LF_UNRESOLVED_GLBL); - lx->absolute_address_cnt=0; - if (!GetExpression(lx,&exp)) - LexSkipEol(lx); - else { - if (!(lx->flags & (LF_UNRESOLVED_LOCAL|LF_UNRESOLVED_GLBL))) { - result=Call(exp); - DelExpression(exp); - } else - PutAsmError(lx,"ST_UNDEFINED_SYMBOL"); - } - return result; -} - -void ResolveLocals(LexStruct *lx) -{ - AsmCtrlStruct *a=lx->a; - AsmUnresolvedRef *tempu=a->local_unresolved,*tempu1; - I8 result=0; - LexUndefEntry *templu; - BoolU4 undefined; - I1 *label=NULL; - - if (!a->has_locals) - return; - while (tempu) { - undefined=FALSE; - tempu1=tempu->next; - templu=tempu->undef_hash; - while (templu) { - if (templu->hash->type & (HTT_UNRESOLVED_LOCAL | HTT_UNRESOLVED_GLBL)) { - PrintFErr("%S%S%04d ","ST_UNDEFINED_SYMBOL","ST_LINE",tempu->line_num); - if (a->last_label) cout a->last_label," "; - coutln templu->hash->str; - lx->error_cnt++; - undefined=TRUE; - } else - label=templu->hash->str; - templu=templu->next; - } - if (!undefined) { - result=Call(tempu->exp); - if (!(tempu->type & 1)) { - result-=tempu->rel_ip; - if (tempu->type==EIE_REL_U1 && (resultMAX_I1) || - tempu->type==EIE_REL_U2 && (resultMAX_I2) ) { - PrintFErr("%S%S%04d ","ST_BRANCH_OUT_OF_RANGE","ST_LINE",tempu->line_num); - if (a->last_label) - PrintF("%s ",a->last_label); - if (label) cout label; - CrLf; - lx->error_cnt++; - } - if (tempu->U1_avail && tempu->type>EIE_LIT_U1 && (result>=-124 && result<=123)) { - PrintFWarn("%S%S%04d ","ST_COULD_USE_U1_DISP","ST_LINE",tempu->line_num); - if (a->last_label) - PrintF("%s ",a->last_label); - if (label) cout label; - CrLf; - } - } - AsmStoreCodeU1At(lx,result.u1[0],tempu->ip); - if (tempu->type>=EIE_REL_U2) - AsmStoreCodeU1At(lx,result.u1[1],tempu->ip+1); - if (tempu->type>=EIE_REL_U4) { - AsmStoreCodeU1At(lx,result.u1[2],tempu->ip+2); - AsmStoreCodeU1At(lx,result.u1[3],tempu->ip+3); - } - } - DelExpression(tempu->exp); - DelLinkedList(tempu->undef_hash); - Free(tempu); - tempu=tempu1; - } - DelHashTable(a->local_hash); - a->local_hash=NewHashTable(16); - a->local_hash->next=a->glbl_hash; - lx->hash_table_list=a->local_hash; - lx->local_hash_table=a->local_hash; - a->local_unresolved=NULL; - a->has_locals=FALSE; -} - -void ResolveGlbls(LexStruct *lx,ExeStruct *e) -{ - AsmCtrlStruct *a=lx->a; - ClassStruct *tempc; - GlblVarStruct *tempg; - AsmUnresolvedRef *tempu=a->glbl_unresolved,*tempu1; - I8 result=0; - ExeImportExportStruct *tempe,*tempe1; - LexUndefEntry *templu; - I8 i,j; - SysHashEntry *temph; - I1 *label; - BoolU4 undefined; - ExternUsage *tempeu,*tempeu1; - - while (tempu) { - label=NULL; - undefined=FALSE; - tempu1=tempu->next; - templu=tempu->undef_hash; - while (templu) { - if (templu->hash->type & (HTT_UNRESOLVED_LOCAL | HTT_UNRESOLVED_GLBL)) { - if (!(templu->hash->type & HTT_IMPORT)) { - PrintFErr("%S%S%04d ","ST_UNDEFINED_SYMBOL","ST_LINE",tempu->line_num); - cout templu->hash->str,"\r\n"; - lx->error_cnt++; - } - undefined=TRUE; - } else - label=templu->hash->str; - templu=templu->next; - } - if (undefined) { - templu=tempu->undef_hash; - if (templu->hash->type & HTT_IMPORT) { - tempe=MAllocZ(sizeof(ExeImportExportStruct)); - tempe->next=templu->hash->user_data1; - tempe->str=NULL; - templu->hash->user_data1=tempe; - tempe->ip=tempu->ip; - tempe->type=tempu->type; - } - } else { - result=Call(tempu->exp); - if (!(tempu->type & 1)) { - result-=tempu->rel_ip; - if ((tempu->type==EIE_REL_U1 && (resultMAX_I1)) || - tempu->type==EIE_REL_U2 && (resultMAX_I2)) { - PrintFErr("%S%S%04d ","ST_BRANCH_OUT_OF_RANGE","ST_LINE",tempu->line_num); - if (label) cout label; - CrLf; - lx->error_cnt++; - } - if (tempu->U1_avail && tempu->type>EIE_LIT_U1 && (result>=-124 && result<=123)) { - PrintFWarn("%S%S%04d ","ST_COULD_USE_U1_DISP","ST_LINE",tempu->line_num); - if (a->last_label) - PrintF("%s ",a->last_label); - if (label) cout label; - CrLf; - } - } - AsmStoreCodeU1At(lx,result.u1[0],tempu->ip); - if (tempu->type>=EIE_REL_U2) - AsmStoreCodeU1At(lx,result.u1[1],tempu->ip+1); - if (tempu->type>=EIE_REL_U4) { - AsmStoreCodeU1At(lx,result.u1[2],tempu->ip+2); - AsmStoreCodeU1At(lx,result.u1[3],tempu->ip+3); - } - } - DelExpression(tempu->exp); - DelLinkedList(tempu->undef_hash); - Free(tempu); - tempu=tempu1; - } - - tempe1=&e->ie; - while (tempe1->next) - tempe1=tempe1->next; - - for (i=0;i<=a->glbl_hash->mask;i++) { - temph=a->glbl_hash->body[i]; - while (temph) { - if (temph->type & HTT_IMPORT && temph->use_cnt) { - if (temph->type & HTT_FUNCTION) { - tempe=MAllocZ(sizeof(ExeImportExportStruct)); - tempe->type=EIE_LIT_U4; - tempc=temph; - tempe->str=(tempc->import_name) ? - NewStr(tempc->import_name):NewStr(tempc->str); - tempe->ip=tempc->executable_address; - tempe1->next=tempe; - tempe1=tempe; - } else if (temph->type & HTT_GLBL_VAR) { - tempe=MAllocZ(sizeof(ExeImportExportStruct)); - tempe->type=EIE_LIT_U4; - tempg=temph; - if (tempg->import_name) - tempe->str=NewStr(tempg->import_name); - else - tempe->str=NewStr(tempg->str); - tempe->ip=tempg->data_address; - tempe1->next=tempe; - tempe1=tempe; - } else { - tempe=temph->user_data1; - if (tempe) { - tempe1->next=tempe; - tempe->str=NewStr(temph->str); - while (tempe1->next) - tempe1=tempe1->next; - } - } - } else if (temph->type & HTT_EXPORT) { - if (temph->type & HTT_UNRESOLVED_GLBL) { - PrintFErr("%S%s\r\n","ST_UNDEFINED_SYMBOL",temph->str); - lx->error_cnt++; - } else { - tempe=MAlloc(sizeof(ExeImportExportStruct)); - tempe->type=EIE_REL_EXPORT; - if (temph->type & HTT_FUNCTION) { - tempc=temph; - tempe->ip=tempc->executable_address; - tempeu=tempc->ext_list; - while (tempeu) { - tempeu1=tempeu->next; - j=tempc->executable_address-(tempeu->ip+4); - AsmStoreCodeU1At(lx,j.u1[0],tempeu->ip); - AsmStoreCodeU1At(lx,j.u1[1],tempeu->ip+1); - AsmStoreCodeU1At(lx,j.u1[2],tempeu->ip+2); - AsmStoreCodeU1At(lx,j.u1[3],tempeu->ip+3); - Free(tempeu); - tempeu=tempeu1; - } - } else if (temph->type & HTT_GLBL_VAR) { - tempg=temph; - tempe->ip=tempg->data_address; - } else - tempe->ip=temph->user_data0; - if (temph->type & HTT_LITERAL) - tempe->type++; - *tempe1=tempe; - tempe->next=NULL; - tempe1=tempe; - tempe->str=NewStr(temph->str); - } - } - temph=temph->next; - } - } -} - -BoolU8 ParseAsmImm(LexStruct *lx,AsmCtrlStruct *aa,AsmArgStruct *a,U8 ip) -{ - if (a->imm_or_off_present) { - PutAsmError(lx,"ST_ALREADY_ONE_IMMEDIATE"); - return FALSE; - } else { - a->imm_or_off_present=TRUE; - a->undef_local=NULL; - a->undef_glbl=NULL; - lx->instruction_pointer=ip; - lx->undef_hash_entry=NULL; - lx->absolute_address_cnt=0; - lx->flags&=~(LF_UNRESOLVED_LOCAL+LF_UNRESOLVED_GLBL); - if (!GetExpression(lx,&a->exp)) - LexSkipEol(lx); - else { - if (!(lx->flags & (LF_UNRESOLVED_LOCAL|LF_UNRESOLVED_GLBL))) { - a->imm=Call(a->exp); - a->undef_glbl=lx->undef_hash_entry; - lx->undef_hash_entry=NULL; - DelExpression(a->exp); - a->exp=NULL; - } else { - if (lx->flags & LF_UNRESOLVED_GLBL) { - a->undef_glbl=lx->undef_hash_entry; - lx->undef_hash_entry=NULL; - aa->has_locals=TRUE; - } else if (lx->flags & LF_UNRESOLVED_LOCAL) { - a->undef_local=lx->undef_hash_entry; - lx->undef_hash_entry=NULL; - } - } - } - } - return TRUE; -} - -void ParseAsmArg(LexStruct *lx,AsmCtrlStruct *aa,AsmArgStruct *a,U8 ip) -{ - I8 i,temp; - a->size=0; - a->absolute_address_cnt=0; - a->seg=16; - a->reg1=16; - a->reg2=16; - a->imm=0; - a->scale=1; - a->indirect=FALSE; - a->imm_or_off_present=FALSE; - a->undef_local=NULL; - a->undef_glbl=NULL; - a->just_seg=FALSE; - a->exp=NULL; - while (TRUE) { - if (lx->token==TK_IDENT) { - if (lx->hash_entry) { - if (lx->hash_entry->type==HTT_R8) { - a->size=1; - a->reg1=lx->hash_entry->user_data0; - Lex(lx); - return; - } else if (lx->hash_entry->type==HTT_R16) { - a->size=2; - a->reg1=lx->hash_entry->user_data0; - Lex(lx); - return; - } else if (lx->hash_entry->type==HTT_R32) { - a->size=4; - a->reg1=lx->hash_entry->user_data0; - Lex(lx); - return; - } else if (lx->hash_entry->type==HTT_R64) { - a->size=8; - a->reg1=lx->hash_entry->user_data0; - Lex(lx); - return; - } else if (lx->hash_entry->type==HTT_SEG) { - a->seg=lx->hash_entry->user_data0; - if (Lex(lx)!=':') { - a->just_seg=TRUE; - return; - } else - Lex(lx); //skip ":" - } else if (lx->hash_entry->type==HTT_KEYWORD) { - i=lx->hash_entry->user_data0; - if (i==AKW_U1) { - Lex(lx); //skip keyword - a->size=1; - } else if (i==AKW_U2) { - Lex(lx); //skip keyword - a->size=2; - } else if (i==AKW_U4) { - Lex(lx); //skip keyword - a->size=4; - } else if (i==AKW_U8) { - Lex(lx); //skip keyword - a->size=8; - } else { - PutAsmError(lx,"ST_SYNTAX_ERROR"); - return; - } - } else { - ParseAsmImm(lx,aa,a,ip); - a->absolute_address_cnt=lx->absolute_address_cnt; - if (lx->token!='[') - return; - } - } else { - ParseAsmImm(lx,aa,a,ip); - a->absolute_address_cnt=lx->absolute_address_cnt; - if (lx->token!='[') - return; - } - } else if (lx->token=='[') { - a->indirect=TRUE; - Lex(lx); // skip [ - while (lx->token && lx->token!=']') { - if (lx->token==TK_IDENT) { - if (lx->hash_entry) { - if (lx->hash_entry->type==HTT_R16 || - lx->hash_entry->type==HTT_R32 || - lx->hash_entry->type==HTT_R64) { - if (a->reg1==16) - a->reg1=lx->hash_entry->user_data0; - else - a->reg2=lx->hash_entry->user_data0; - Lex(lx); - } else { - ParseAsmImm(lx,aa,a,ip); - a->absolute_address_cnt=lx->absolute_address_cnt; - } - } else { - ParseAsmImm(lx,aa,a,ip); - a->absolute_address_cnt=lx->absolute_address_cnt; - } - } else if (lx->token=='*') { - if (Lex(lx)!=TK_INTEGER) - PutAsmError(lx,"ST_EXPECTING_SCALE_FACTOR"); - else { - a->scale=lx->cur_i; - Lex(lx); //skip scale - if (a->reg2!=16) { - temp=a->reg1; - a->reg1=a->reg2; - a->reg2=temp; - } - } - } else if (lx->token=='+') { - Lex(lx); //skip '+' - } else { - ParseAsmImm(lx,aa,a,ip); - a->absolute_address_cnt=lx->absolute_address_cnt; - } - } - if (lx->token==']') { - Lex(lx); //skip ] - return; - } else - PutAsmError(lx,"ST_MISSING_RIGHT_BRACKET"); - } else { - ParseAsmImm(lx,aa,a,ip); - a->absolute_address_cnt=lx->absolute_address_cnt; - if (lx->token!='[') - return; - } - } -} - - -void AsmMakeArgMask(AsmArgStruct *a,U8 *mask) -{ - if (a->just_seg) { - switch (a->seg) { - case 0: *mask=1<size) { - case 0: *mask=0x3FF07FFFFE; break; - case 1: *mask=0x1110111112; break; - case 2: *mask=0x2220222224; break; - case 4: *mask=0x0440444448; break; - case 8: *mask=0x0880088880; break; - } - - if (a->reg1!=16 && a->imm_or_off_present && !a->imm) { - if (!a->undef_glbl && !a->undef_local) - a->imm_or_off_present=FALSE; //Zero displacement - } - - if (a->reg2!=16 || a->scale!=1) { - *mask&= 0x00000F0000; - return; - } - - if (a->indirect) { - if (a->imm_or_off_present) - *mask&=0x00FFFF0000; - else - *mask&=0x000FFF0000; - } else { - if (a->imm_or_off_present) - *mask&=0x000F80F0FE; - else - *mask&=0x3F0F8F0F00; - } - if (a->seg!=16) - *mask&= 0x00FFFF0000; - if (a->reg1==16) { - if (a->indirect) - *mask&=0x00FFFF0000; - else if (MIN_I1<=a->imm<=MAX_I1) - *mask&=0x000000F0FE; - else if (MIN_I1<=a->imm<=MAX_U1) - *mask&=0x000000E0FE; - else if (MIN_I2<=a->imm<=MAX_I2) - *mask&=0x000000E0EE; - else if (MIN_I2<=a->imm<=MAX_U2) - *mask&=0x000000C0EE; - else if (MIN_I4<=a->imm<=MAX_I4) - *mask&=0x000000C0CE; - else if (MIN_I4<=a->imm<=MAX_U4) - *mask&=0x00000080CE; - else - *mask&=0x000000808E; - } else - *mask&= 0x3F007F0F00; - if (a->reg1!=0) - *mask&= 0x30FFFFFFFF; - if (a->reg1!=1) - *mask&= 0x2FFFFFFFFF; - if (a->reg1!=2) - *mask&= 0x1FFFFFFFFF; -} - -BoolU8 AsmStoreNum(LexStruct *lx,AsmCtrlStruct *a,I8 num,BoolU4 is_question,I8 num_U1s,I8 cnt, - I8 num_ip_rel,I8 num_lit, - U1 *num_exp,LexUndefEntry *num_local_hash,LexUndefEntry *num_glbl_hash, - BoolU4 U1_avail,U8 abs_add_cnt) -{ - I8 i; - ExeAbsoluteAddressStruct *tempa; - if (!num_lit) - num-=num_ip_rel; - for (i=0;iip,num_ip_rel, - num_local_hash,LexLineNum(lx),U1_avail,FALSE); - else if (num_glbl_hash) - AddUnresolved(a,num_exp,EIE_REL_U1+num_lit,a->ip,num_ip_rel, - num_glbl_hash,LexLineNum(lx),U1_avail,TRUE); - else { - if (!num_lit && (numMAX_I1)) { -// LexPop(lx); - PutAsmError(lx,"ST_BRANCH_OUT_OF_RANGE"); - a->ip++; - return FALSE; - } - } - if (is_question) - a->ip++; - else - AsmStoreCodeU1(lx,num.u1[0]); - - } else if (num_U1s==2) { - if (num_local_hash) - AddUnresolved(a,num_exp,EIE_REL_U2+num_lit,a->ip,num_ip_rel, - num_local_hash,LexLineNum(lx),U1_avail,FALSE); - else if (num_glbl_hash) - AddUnresolved(a,num_exp,EIE_REL_U2+num_lit,a->ip,num_ip_rel, - num_glbl_hash,LexLineNum(lx),U1_avail,TRUE); - else { - if (!num_lit && (num MAX_I2)) { -// LexPop(lx); - PutAsmError(lx,"ST_BRANCH_OUT_OF_RANGE"); - a->ip+=2; - return FALSE; - } - } - if (is_question) - a->ip+=2; - else { - AsmStoreCodeU1(lx,num.u1[0]); - AsmStoreCodeU1(lx,num.u1[1]); - } - if (U1_avail && !num_local_hash && !num_glbl_hash && - !num_lit && num>=-124 && num<=123) { -// LexPop(lx); - PutAsmWarning(lx,"ST_COULD_USE_U1_DISP"); - return FALSE; - } - } else if (num_U1s==4) { - if (num_local_hash) - AddUnresolved(a,num_exp,EIE_REL_U4+num_lit,a->ip,num_ip_rel, - num_local_hash,LexLineNum(lx),U1_avail,FALSE); - else if (num_glbl_hash) - AddUnresolved(a,num_exp,EIE_REL_U4+num_lit,a->ip,num_ip_rel, - num_glbl_hash,LexLineNum(lx),U1_avail,TRUE); - if (num_lit && abs_add_cnt & 1) { - tempa=MAllocZ(sizeof(ExeAbsoluteAddressStruct)); - tempa->next=a->absolutes; - a->absolutes=tempa; - tempa->ip=a->ip; - } - if (is_question) - a->ip+=sizeof(U4); - else - AsmStoreCodeU4(lx,num.u4[0]); - if (U1_avail && !num_local_hash && !num_glbl_hash && - !num_lit && num>=-124 && num<=123) { -// LexPop(lx); - PutAsmWarning(lx,"ST_COULD_USE_U1_DISP"); - return FALSE; - } - } else if (num_U1s==8) { -//dbgo - if (num_local_hash) - AddUnresolved(a,num_exp,EIE_REL_U4+num_lit,a->ip,num_ip_rel, - num_local_hash,LexLineNum(lx),U1_avail,FALSE); - else if (num_glbl_hash) - AddUnresolved(a,num_exp,EIE_REL_U4+num_lit,a->ip,num_ip_rel, - num_glbl_hash,LexLineNum(lx),U1_avail,TRUE); - if (num_lit && abs_add_cnt & 1) { - tempa=MAllocZ(sizeof(ExeAbsoluteAddressStruct)); - tempa->next=a->absolutes; - a->absolutes=tempa; - tempa->ip=a->ip; - } - if (is_question) - a->ip+=sizeof(U8); - else - AsmStoreCodeU8(lx,num); - if (U1_avail && !num_local_hash && !num_glbl_hash && - !num_lit && num>=-124 && num<=123) { -// LexPop(lx); - PutAsmWarning(lx,"ST_COULD_USE_U1_DISP"); - return FALSE; - } - } - } - return TRUE; -} - - -BoolU8 AsmCodeInstruction(LexStruct *lx,AsmCtrlStruct *a, - OpcodeHashEntry *tempo,I8 argcnt) -{ - I8 i,j,a1,a2,om,seg; - U8 arg1mask,arg2mask; - AsmArgStruct *tempa1,*tempa2; - BoolU4 ModrM_complete,U1_avail=FALSE,found_second_possible=FALSE; - - I8 U1_cnt; - U1 last_opcode_U1; - InstructionEntry *tempi; - BoolU4 has_ModrM; - U1 ModrM; - BoolU4 has_SIB; - U1 SIB,REX; - BoolU4 has_address_prefix; - BoolU4 has_operand_prefix; - BoolU4 is_default; - I8 disp,disp_U1s,disp_ip_rel,disp_lit,disp_abs_cnt; - I8 imm, imm_U1s, imm_ip_rel, imm_lit,imm_abs_cnt; - U1 *disp_exp,*imm_exp; - LexUndefEntry *disp_local_hash,*disp_glbl_hash; - LexUndefEntry *imm_local_hash,*imm_glbl_hash; - - I8 best_U1_cnt=255; - U1 blast_opcode_U1; - InstructionEntry *btempi; - BoolU4 bhas_ModrM; - U1 bModrM; - BoolU4 bhas_SIB; - U1 bSIB,bREX; - BoolU4 bhas_address_prefix; - BoolU4 bhas_operand_prefix; - BoolU4 bis_default; - I8 bdisp,bdisp_U1s,bdisp_ip_rel,bdisp_lit,bdisp_abs_cnt; - I8 bimm, bimm_U1s, bimm_ip_rel, bimm_lit,bimm_abs_cnt; - U1 *bdisp_exp,*bimm_exp; - LexUndefEntry *bdisp_local_hash,*bdisp_glbl_hash; - LexUndefEntry *bimm_local_hash,*bimm_glbl_hash; - - - if (argcnt>0) - AsmMakeArgMask(&a->arg1,&arg1mask); - else - arg1mask=1; - if (argcnt>1) - AsmMakeArgMask(&a->arg2,&arg2mask); - else - arg2mask=1; - for (i=0;iinstruction_entry_cnt;i++) { - tempi=&tempo->ins[i]; - if (tempi->arg1==ARGT_REL8 || tempi->arg2==ARGT_REL8) - U1_avail=TRUE; - if (Bt(&arg1mask,tempi->arg1) && Bt(&arg2mask,tempi->arg2)) { - ModrM_complete=FALSE; - last_opcode_U1=0; - has_ModrM=FALSE; - ModrM=0; - has_SIB=FALSE; - SIB=0; - has_address_prefix=FALSE; - has_operand_prefix=FALSE; - is_default=(tempi->flags & IEF_DEFAULT) ? TRUE:FALSE; - if (a->seg_size==64) { - REX=0x40; - if (tempi->flags & IEF_48_REX) - REX=0x48; - else if (tempi->flags & IEF_NO_REX) - REX=0x00; - } else - REX=0x00; - disp=0; disp_U1s=0; disp_ip_rel=0; disp_lit=1; - imm=0; imm_U1s=0; imm_ip_rel=0; imm_lit=1; - disp_exp=NULL; imm_exp=NULL; - disp_local_hash=NULL; disp_glbl_hash=NULL; - disp_abs_cnt=0; - imm_local_hash=NULL; imm_glbl_hash=NULL; - imm_abs_cnt=0; - om=tempi->opcode_modifier; - a1=tempi->arg1; - a2=tempi->arg2; - tempa1=&a->arg1; - tempa2=&a->arg2; - last_opcode_U1=tempi->opcode[tempi->opcode_cnt-1]; - - if (tempi->slash_value<8) { - ModrM+=tempi->slash_value<<3; - has_ModrM=TRUE; - } - - if ((a->seg_size==16 && tempi->flags & IEF_OP_SIZE32) || - (a->seg_size!=16 && tempi->flags & IEF_OP_SIZE16)) - has_operand_prefix=TRUE; - - if (om==OM_IB) imm_U1s=1; - else if (om==OM_IW) imm_U1s=2; - else if (om==OM_ID) imm_U1s=4; - - if (om==OM_CB) { - imm_U1s=1; - imm_lit=0; - } else if (om==OM_CW) { - imm_U1s=2; - imm_lit=0; - } else if (om==OM_CD) { - imm_U1s=4; - imm_lit=0; - } - - if (argcnt==1) { - if (best_U1_cnt!=255 && !found_second_possible && !bis_default) { - found_second_possible=TRUE; - if (!a->arg1.size) - PrintFWarn("%S%s,%04d\r\n","ST_NO_SIZE_SPECIFIED", - lx->cur_lfn->name,lx->cur_lfn->line_num-1); - } - if (tempi->flags & IEF_PLUS_OPCODE) { - last_opcode_U1=last_opcode_U1+tempa1->reg1&7; - if (tempa1->reg1>7) - REX|=1; - } - if (a1==ARGT_R64 || a1==ARGT_RM64) - REX|=8; - if (a1>=ARGT_RM8 && a1<=ARGT_RM64) { - if (a->seg_size==16) - has_address_prefix=TRUE; - - has_ModrM=TRUE; - if (tempa1->imm_or_off_present && tempa1->indirect && tempa1->reg1==16) { - ModrM=ModrM+5; - disp=tempa1->imm; - disp_exp=tempa1->exp; - disp_local_hash=tempa1->undef_local; - disp_glbl_hash=tempa1->undef_glbl; - disp_U1s=4; - disp_abs_cnt=tempa1->absolute_address_cnt; - if (a->seg_size==64) - disp_lit=0; - } else { - if (tempa1->reg2==16 && tempa1->scale==1) { - ModrM+=tempa1->reg1&7; - if (tempa1->reg1>7) - REX|=1; - } else { - ModrM+=4; - has_SIB=TRUE; - if (tempa1->scale==1) - SIB=0; - else if (tempa1->scale==2) - SIB=0x40; - else if (tempa1->scale==4) - SIB=0x80; - else if (tempa1->scale==8) - SIB=0xC0; - if (tempa1->reg2==16) { - ModrM_complete=TRUE; - SIB+=((tempa1->reg1&7)<<3)+5; - if (tempa1->reg1>7) - REX|=2; - disp=tempa1->imm; - disp_exp=tempa1->exp; - disp_local_hash=tempa1->undef_local; - disp_glbl_hash=tempa1->undef_glbl; - disp_U1s=4; - disp_abs_cnt=tempa1->absolute_address_cnt; - } else { - SIB+=((tempa1->reg1&7)<<3)+tempa1->reg2&7; - if (tempa1->reg1>7) - REX|=2; - if (tempa1->reg2>7) - REX|=1; - if (tempa1->reg2==5 && !tempa1->imm_or_off_present && tempa1->indirect) { - ModrM+=0x40; - disp_U1s=1; - ModrM_complete=TRUE; - } - } - } - if (!ModrM_complete) { - if (tempa1->imm_or_off_present) { - disp=tempa1->imm; - disp_exp=tempa1->exp; - disp_local_hash=tempa1->undef_local; - disp_glbl_hash=tempa1->undef_glbl; - disp_abs_cnt=tempa1->absolute_address_cnt; - if (!disp_exp && MIN_I1<=disp<=MAX_I1) { - ModrM+=0x40; - disp_U1s=1; - } else if (a->seg_size==16) { - ModrM+=0x80; - disp_U1s=2; - } else { - ModrM+=0x80; - disp_U1s=4; - } - } else if (!tempa1->indirect) { - has_address_prefix=FALSE; - ModrM+=0xC0; - } else { - if (tempa1->reg1==5) { - ModrM+=0x40; - disp_U1s=1; - } - } - } - } - } else if (a1>=ARGT_REL8 && a1<=ARGT_REL32 || - a1>=ARGT_IMM8 && a1<=ARGT_IMM64 || - a1>=ARGT_UIMM8 && a1<=ARGT_UIMM64) { - if (a1==ARGT_IMM64 || a2==ARGT_UIMM64) - REX|=8; - imm=tempa1->imm; - imm_exp=tempa1->exp; - imm_local_hash=tempa1->undef_local; - imm_glbl_hash=tempa1->undef_glbl; - imm_abs_cnt=tempa1->absolute_address_cnt; - } - } else if (argcnt==2) { - if (best_U1_cnt!=255 && !found_second_possible && !bis_default) { - found_second_possible=TRUE; - if (!a->arg1.size && !a->arg2.size) - PrintFWarn("%S%s,%04d\r\n","ST_NO_SIZE_SPECIFIED", - lx->cur_lfn->name,lx->cur_lfn->line_num-1); - } - if (tempi->flags & IEF_PLUS_OPCODE) { - if (om>=OM_RB && om<=OM_RD) { - last_opcode_U1+=tempa1->reg1&7; - if (tempa1->reg1>7) - REX|=1; - } else if (tempi->slash_value==SV_REGISTER) { - if (a1>=ARGT_AL && a1<=ARGT_EAX) { - last_opcode_U1+=tempa2->reg1&7; - if (tempa2->reg1>7) - REX|=1; - } else if (a2>=ARGT_AL && a2<=ARGT_EAX) { - last_opcode_U1+=tempa1->reg1&7; - if (tempa1->reg1>7) - REX|=1; - } - } - } - if (a1==ARGT_RM64 || a2==ARGT_RM64 || - a1==ARGT_R64 || a2==ARGT_R64) - REX|=8; - if (a1>=ARGT_RM8 && a1<=ARGT_RM64 ||a2>=ARGT_RM8 && a2<=ARGT_RM64) { - if (a->seg_size==16) - has_address_prefix=TRUE; - has_ModrM=TRUE; - if (a2>=ARGT_RM8 && a2<=ARGT_RM64) { - tempa1=&a->arg2; - tempa2=&a->arg1; - } - if (tempi->slash_value==SV_REGISTER) { - if (tempa2->just_seg) - ModrM+=(tempa2->seg<<3); - else { - if (tempa2->reg1==16) { - ModrM+=((tempa1->reg1&7)<<3); - if (tempa1->reg1>7) - REX|=4; - } else { - ModrM+=((tempa2->reg1&7)<<3); - if (tempa2->reg1>7) - REX|=4; - } - } - } - if (tempa1->reg2==16 && tempa1->scale==1) { - if (tempa1->reg1!=16) { - ModrM+=tempa1->reg1&7; - if (tempa1->reg1>7) - REX|=1; - } - } else { - ModrM+=4; - has_SIB=TRUE; - if (tempa1->scale==1) - SIB=0; - else if (tempa1->scale==2) - SIB=0x40; - else if (tempa1->scale==4) - SIB=0x80; - else if (tempa1->scale==8) - SIB=0xC0; - if (tempa1->reg2==16) { - ModrM_complete=TRUE; - SIB+=((tempa1->reg1&7)<<3)+5; - if (tempa1->reg1>7) - REX|=2; - disp=tempa1->imm; - disp_exp=tempa1->exp; - disp_local_hash=tempa1->undef_local; - disp_glbl_hash=tempa1->undef_glbl; - disp_U1s=4; - disp_abs_cnt=tempa1->absolute_address_cnt; - } else { - SIB+=((tempa1->reg1&7)<<3)+tempa1->reg2&7; - if (tempa1->reg1>7) - REX|=2; - if (tempa1->reg2>7) - REX|=1; - if (tempa1->reg2==5 && !tempa1->imm_or_off_present && tempa1->indirect) { - ModrM+=0x40; - disp_U1s=1; - ModrM_complete=TRUE; - } - } - } - if (!ModrM_complete) { - if (tempa1->imm_or_off_present && tempa1->indirect && tempa1->reg1==16) { - ModrM=(ModrM & 0xF8)+5; - disp=tempa1->imm; - disp_exp=tempa1->exp; - disp_local_hash=tempa1->undef_local; - disp_glbl_hash=tempa1->undef_glbl; - disp_U1s=4; - disp_abs_cnt=tempa1->absolute_address_cnt; - if (a->seg_size==64) - disp_lit=0; - } else { - if (tempa1->imm_or_off_present) { - disp=tempa1->imm; - disp_exp=tempa1->exp; - disp_local_hash=tempa1->undef_local; - disp_glbl_hash=tempa1->undef_glbl; - disp_abs_cnt=tempa1->absolute_address_cnt; - if (!disp_exp && MIN_I1<=disp<=MAX_I1) { - ModrM+=0x40; - disp_U1s=1; - } else if (a->seg_size==16) { - ModrM+=0x80; - disp_U1s=2; - } else { - ModrM+=0x80; - disp_U1s=4; - } - } else if (!tempa1->indirect) { - has_address_prefix=FALSE; - ModrM+=0xC0; - } else { - if (tempa1->reg1==5) { - ModrM+=0x40; - disp_U1s=1; - } - } - } - } - } else if (a1>=ARGT_MOFFS8 && a1<=ARGT_MOFFS64) { - disp=tempa1->imm; - disp_exp=tempa1->exp; - disp_local_hash=tempa1->undef_local; - disp_glbl_hash=tempa1->undef_glbl; - disp_abs_cnt=tempa1->absolute_address_cnt; - if (a->seg_size==16) - disp_U1s=2; - else - disp_U1s=4; - has_address_prefix=FALSE; - } else if (a2>=ARGT_MOFFS8 && a2<=ARGT_MOFFS64) { - disp=tempa2->imm; - disp_exp=tempa2->exp; - disp_local_hash=tempa2->undef_local; - disp_glbl_hash=tempa2->undef_glbl; - disp_abs_cnt=tempa2->absolute_address_cnt; - if (a->seg_size==16) - disp_U1s=2; - else - disp_U1s=4; - has_address_prefix=FALSE; - } else if (a1>=ARGT_IMM8 && a1<=ARGT_IMM64 || - a1>=ARGT_UIMM8 && a1<=ARGT_UIMM64) { - imm=tempa1->imm; - imm_exp=tempa1->exp; - imm_local_hash=tempa1->undef_local; - imm_glbl_hash=tempa1->undef_glbl; - imm_abs_cnt=tempa1->absolute_address_cnt; - if (a1==ARGT_IMM8 || a1==ARGT_UIMM8) imm_U1s=1; - else if (a1==ARGT_IMM16 || a1==ARGT_UIMM16) imm_U1s=2; - else if (a1==ARGT_IMM32 || a1==ARGT_UIMM32) imm_U1s=4; - else { - imm_U1s=8; - REX|=8; - } - } - if (a2>=ARGT_IMM8 && a2<=ARGT_IMM64 || - a2>=ARGT_UIMM8 && a2<=ARGT_UIMM64) { - imm=tempa2->imm; - imm_exp=tempa2->exp; - imm_local_hash=tempa2->undef_local; - imm_glbl_hash=tempa2->undef_glbl; - imm_abs_cnt=tempa2->absolute_address_cnt; - if (a2==ARGT_IMM8 || a2==ARGT_UIMM8) imm_U1s=1; - else if (a2==ARGT_IMM16 || a2==ARGT_UIMM16) imm_U1s=2; - else if (a2==ARGT_IMM32 || a2==ARGT_UIMM32) imm_U1s=4; - else { - imm_U1s=8; - REX|=8; - } - } - } - U1_cnt=tempi->opcode_cnt+disp_U1s+imm_U1s; - if (has_ModrM) U1_cnt++; - if (has_SIB) U1_cnt++; - if (a->seg_size==64) - if (REX&0x40==0x40 && - (REX!=0x40 || (tempi->flags&IEF_40_REX))) - U1_cnt++; - - if (U1_cntflags & IEF_DONT_SWITCH_MODES && - (has_address_prefix || has_operand_prefix))) { - best_U1_cnt=U1_cnt; - blast_opcode_U1=last_opcode_U1; - btempi=tempi; - bhas_ModrM=has_ModrM; - bModrM=ModrM; - bhas_SIB=has_SIB; - bSIB=SIB; - bREX=REX; - bhas_address_prefix=has_address_prefix; - bhas_operand_prefix=has_operand_prefix; - bis_default=is_default; - bdisp=disp; - bdisp_U1s=disp_U1s; - bdisp_ip_rel=disp_ip_rel; - bdisp_lit=disp_lit; - bdisp_abs_cnt=disp_abs_cnt; - bimm=imm; - bimm_U1s=imm_U1s; - bimm_ip_rel=imm_ip_rel; - bimm_lit=imm_lit; - bimm_abs_cnt=imm_abs_cnt; - bdisp_exp=disp_exp; - bimm_exp=imm_exp; - bdisp_local_hash=disp_local_hash; - bdisp_glbl_hash=disp_glbl_hash; - bimm_local_hash=imm_local_hash; - bimm_glbl_hash=imm_glbl_hash; - } - } - } - if (best_U1_cnt<255) { - if (bhas_operand_prefix) - AsmStoreCodeU1(lx,0x66); //Operand size override - if (bhas_address_prefix || a->seg_size==16 && has_SIB) - AsmStoreCodeU1(lx,0x67); //Operand size override - - seg=16; - if (argcnt>1 && a->arg2.seg!=16 && !a->arg2.just_seg) - seg=a->arg2.seg; - else if (argcnt>0 && a->arg1.seg!=16 && !a->arg1.just_seg) - seg=a->arg1.seg; - if (seg!=16) { - if (seg==0) - AsmStoreCodeU1(lx,0x26); //ES: - else if (seg==1) - AsmStoreCodeU1(lx,0x2E); //CS: - else if (seg==2) - AsmStoreCodeU1(lx,0x36); //SS: - else if (seg==3) - AsmStoreCodeU1(lx,0x3E); //DS: - else if (seg==4) - AsmStoreCodeU1(lx,0x64); //FS: - else - AsmStoreCodeU1(lx,0x65); //GS: - } - if (a->seg_size==64) - if (bREX&0x40==0x40 && - (bREX!=0x40 || (btempi->flags&IEF_40_REX))) - AsmStoreCodeU1(lx,bREX); - for (j=0;jopcode_cnt-1;j++) - AsmStoreCodeU1(lx,btempi->opcode[j]); - AsmStoreCodeU1(lx,blast_opcode_U1); - - if (bhas_ModrM) - AsmStoreCodeU1(lx,bModrM); - if (bhas_SIB) - AsmStoreCodeU1(lx,bSIB); - - if (bdisp_U1s) { - bdisp_ip_rel=a->ip+bdisp_U1s+bimm_U1s; - if (!AsmStoreNum(lx,a,bdisp,FALSE,bdisp_U1s,1,bdisp_ip_rel,bdisp_lit, - bdisp_exp,bdisp_local_hash,bdisp_glbl_hash,U1_avail,bdisp_abs_cnt)) - return FALSE; - } - - if (bimm_U1s) { - bimm_ip_rel=a->ip+bimm_U1s; - if (!AsmStoreNum(lx,a,bimm,FALSE,bimm_U1s,1,bimm_ip_rel,bimm_lit, - bimm_exp,bimm_local_hash,bimm_glbl_hash,U1_avail,bimm_abs_cnt)) - return FALSE; - } - return TRUE; - } -// LexPop(lx); - PutAsmError(lx,"ST_INVALID_INSTRUCTION"); - return FALSE; -} - - -void DefineU1s(LexStruct *lx,AsmCtrlStruct *a,I8 num_U1s) -{ - BoolU4 is_question,is_dup; - I8 i,dup_value; - void *exp; - I1 *ptr; - LexUndefEntry *undef_locals,*undef_glbls; - - while (lx->token && lx->token!=';') { - undef_locals=NULL; - undef_glbls=NULL; - if (lx->token==TK_STR) { - ptr=lx->ident; - i=lx->ident_len-1; - while (i--) - AsmStoreCodeU1(lx,*ptr++); - Lex(lx); //SKip STR - } else { - is_question=FALSE; - is_dup=FALSE; - lx->absolute_address_cnt=0; - if (lx->token=='?') { - is_question=TRUE; - Lex(lx); - } else { - lx->undef_hash_entry=NULL; - lx->flags=lx->flags & ~(LF_UNRESOLVED_LOCAL+LF_UNRESOLVED_GLBL); - if (!GetExpression(lx,&exp)) - LexSkipEol(lx); - else { - if (lx->flags & (LF_UNRESOLVED_LOCAL | LF_UNRESOLVED_GLBL)) { - if (lx->flags & LF_UNRESOLVED_LOCAL) { - undef_locals=lx->undef_hash_entry; - lx->undef_hash_entry=NULL; - a->has_locals=TRUE; - } else if (lx->flags & LF_UNRESOLVED_GLBL) { - undef_glbls=lx->undef_hash_entry; - lx->undef_hash_entry=NULL; - } - } else { - i=Call(exp); - DelExpression(exp); - } - } - } - if (lx->token==TK_IDENT && lx->hash_entry) { - if (lx->hash_entry->type & HTT_KEYWORD && lx->hash_entry->user_data0==AKW_DUP) { - if (is_question) - PutAsmError(lx,"ST_QUESTION_NOT_ALLOWED"); - else { - is_dup=TRUE; - if (Lex(lx)!='(') - PutAsmError(lx,"ST_EXPECTING_LEFT_PAREN"); - else { - if (Lex(lx)=='?') { - is_question=TRUE; - Lex(lx); //SKIP "?" - } else - dup_value=AsmEvalExpression(lx); - if (lx->token!=')') - PutAsmError(lx,"ST_EXPECTING_RIGHT_PAREN"); - else - Lex(lx); //SKIP ')' - } - } - } - } - if (is_dup) { - if (undef_locals || undef_glbls) - PutAsmError(lx,"ST_UNDEFINED_DUP_CNT"); - else - AsmStoreNum(lx,a,dup_value,is_question,num_U1s,i,0,1,exp,undef_locals,undef_glbls,FALSE,lx->absolute_address_cnt); - } else - AsmStoreNum(lx,a,i,is_question,num_U1s,1,0,1,exp,undef_locals,undef_glbls,FALSE,lx->absolute_address_cnt); - } - if (lx->token==',') - Lex(lx); - } - if (lx->token==';') - Lex(lx); - else - PutAsmError(lx,"ST_MISSING_SEMICOLON"); -} - -void CmpParseAsmBlk(LexStruct *lx) -{ - AsmCtrlStruct *a=lx->a; - I8 i,j; - OpcodeHashEntry *tempo; - SysHashEntry *temph; - U8 argcnt,saved_ip; - BoolU4 is_literal; - U1 *file_buf,*b; - U8 file_size; - U8 old_hash_mask=lx->hash_mask; - I1 *next_last_label; - ArcCompressStruct *ac; - - if (!a) - PutAsmError(lx,"ST_ASM_NOT_ALLOWED"); - - a->seg_size=64; - lx->flags|=LF_ASM_EXPRESSIONS; - lx->hash_mask&=~(HTT_INTERNAL_TYPE|HTT_CLASS|HTT_PUBLIC| - HTT_WORD|HTT_LOCAL_VAR|HTT_GLBL_VAR|HTT_FUNCTION|HTT_FILE| - HTT_MODULE|HTT_PRIVATE|HTT_EXPORT|HTT_IMPORT); - if (lx->token=='{') - Lex(lx); - else - PrsExcept(lx,"ST_MISSING_RIGHT_BRACE"); - while (lx->token && lx->token!='}') { - AsmListLine(lx); - if (lx->token==TK_IDENT && lx->hash_entry) { - if (lx->hash_entry->type==HTT_KEYWORD) { - i=lx->hash_entry->user_data0; - Lex(lx); //skip keyword - switch (i) { - case AKW_IMPORT: - case AKW_EXPORT: - while (lx->token && lx->token!=';') { - if (lx->token=='#') { - is_literal=TRUE; - Lex(lx); - } else - is_literal=FALSE; - if (lx->token==TK_IDENT) { - if (temph=lx->hash_entry) { - temph=FindHashEntry(lx->ident,a->glbl_hash,HTT_ALL); - if (temph) - temph->type=HTT_SYS_SYMBOL+HTT_UNRESOLVED_GLBL; - } - if (!temph) { - temph=MAllocZ(sizeof(SysHashEntry)); - temph->str=lx->ident; - lx->ident=0; - temph->type=HTT_SYS_SYMBOL+HTT_UNRESOLVED_GLBL; - temph->use_cnt=0; - temph->user_data0=0; - temph->user_data1=NULL; - SetSourceFileInfo(lx,temph); - AddSysHashEntry(temph,a->glbl_hash); - } - if (i==AKW_IMPORT) - temph->type|=HTT_IMPORT; - else if (i==AKW_EXPORT) - temph->type|=HTT_EXPORT; - if (is_literal) - temph->type|=HTT_LITERAL; - if (Lex(lx)==',') - Lex(lx); //skip ',' - } else { - PutAsmError(lx,"ST_EXPECTING_IDENTIFIER"); - break; - } - } - if (lx->token!=';') - PutAsmError(lx,"ST_MISSING_SEMICOLON"); - else - Lex(lx); //skip ';'; - break; - case AKW_ALIGN: - if (lx->token!=TK_INTEGER) - PutAsmError(lx,"ST_EXPECTING_INTEGER"); - else { - i=(a->ip+lx->cur_i-1) & -lx->cur_i; - if (Lex(lx)==',') - Lex(lx); - if (lx->token==TK_INTEGER) { - for (j=a->ip;jcur_i); - Lex(lx); - } else - a->ip=i; - } - break; - case AKW_END: - break; //TODO - case AKW_DU1: - DefineU1s(lx,a,1); - break; - case AKW_DU2: - DefineU1s(lx,a,2); - break; - case AKW_DU4: - DefineU1s(lx,a,4); - break; - case AKW_DU8: - DefineU1s(lx,a,8); - break; - case AKW_INSERT: - if (lx->token!=TK_STR) - PutAsmError(lx,"ST_EXPECTING_STR"); - else { - file_buf=ReadFile(lx->ident,&file_size); - if (file_buf) { - for (i=0;itoken!=TK_STR) - PutAsmError(lx,"ST_EXPECTING_STR"); - else { - file_buf=ReadFile(lx->ident,&file_size); - if (file_buf) { - ac=CompressBuf(file_buf,file_size); - b=ac; - for (i=0;icompressed_size;i++) - AsmStoreCodeU1(lx,b[i]); - Free(file_buf); - Free(ac); - } - Lex(lx); - } - break; - case AKW_LIST: - a->list=TRUE; - break; - case AKW_NOLIST: - a->list=FALSE; - break; - case AKW_ORG: - a->ip=AsmEvalExpression(lx); - break; - case AKW_STRUC: - a->flags|=ACSF_IN_STRUCT; - saved_ip=a->ip; - a->ip=AsmEvalExpression(lx); - break; - case AKW_ENDS: - a->ip=saved_ip; - a->flags&=~ACSF_IN_STRUCT; - break; - case AKW_USE16: - a->seg_size=16; - break; - case AKW_USE32: - a->seg_size=32; - break; - case AKW_USE64: - a->seg_size=64; - break; - default: - PutAsmError(lx,"ST_SYNTAX_ERROR"); - break; - } - } else if (lx->hash_entry->type & HTT_OPCODE) { - tempo=lx->hash_entry; - Lex(lx); //skip opcode - argcnt=0; - if (tempo->ins[0].arg1) { - argcnt++; - ParseAsmArg(lx,a,&a->arg1,a->ip); - if (tempo->ins[0].arg2) { - argcnt++; - if (lx->token!=',') - PutAsmError(lx,"ST_EXPECTING_COMMA"); - else { - Lex(lx); //skip ',' - ParseAsmArg(lx,a,&a->arg2,a->ip); - } - } - } - AsmCodeInstruction(lx,a,tempo,argcnt); - } else if (lx->hash_entry->type & HTT_SYS_SYMBOL) { - if (a->flags & ACSF_IN_STRUCT) - lx->hash_entry->type|=HTT_LITERAL; - else - lx->hash_entry->type&=~HTT_LITERAL; - if (lx->hash_entry->type & HTT_UNRESOLVED_LOCAL) { - lx->hash_entry->type&=~HTT_UNRESOLVED_LOCAL; - lx->hash_entry->user_data0=a->ip; - if (Lex(lx)!=':') - PutAsmError(lx,"ST_EXPECTING_COLON"); - else - Lex(lx); - } else if (lx->hash_entry->type & HTT_UNRESOLVED_GLBL) { - if (lx->hash_entry->type & HTT_IMPORT) - PutAsmError(lx,"ST_ATTEMPT_DEFINE_IMPORT"); - else { - lx->hash_entry->type&=~HTT_UNRESOLVED_GLBL; - lx->hash_entry->user_data0=a->ip; - next_last_label=lx->hash_entry->str; - Lex(lx); //Skip ident - if (lx->token!=':' && lx->token!=TK_DOUBLE_COLON) - PutAsmError(lx,"ST_EXPECTING_COLON"); - else { - if (lx->token==TK_DOUBLE_COLON) { - lx->hash_entry->type|=HTT_EXPORT; - ResolveLocals(lx); - a->last_label=next_last_label; - } - if (Lex(lx)=='#') { - Lex(lx); - lx->hash_entry->type|=HTT_LITERAL | HTT_EXPORT; - } - } - } - } else - PutAsmError(lx,"ST_REDEFINITION"); - } else - PutAsmError(lx,"ST_SYNTAX_ERROR"); - } else { - if (lx->token==TK_IDENT) { - temph=MAllocZ(sizeof(SysHashEntry)); - temph->str=lx->ident; - lx->ident=0; - temph->type=HTT_SYS_SYMBOL; - if (a->flags & ACSF_IN_STRUCT) - temph->type|=HTT_LITERAL; - temph->use_cnt=0; - SetSourceFileInfo(lx,temph); - temph->user_data0=a->ip; - temph->user_data1=NULL; - Lex(lx); //Skip ident - if (lx->token==':' || lx->token==TK_DOUBLE_COLON) { - if (temph->str[0]=='@' && temph->str[1]=='@') { - AddSysHashEntry(temph,a->local_hash); - a->has_locals=TRUE; - } else - AddSysHashEntry(temph,a->glbl_hash); - if (lx->token==TK_DOUBLE_COLON) { - temph->type|=HTT_EXPORT; - ResolveLocals(lx); - a->last_label=temph->str; - Lex(lx); - } else { - if (Lex(lx)=='#') { - temph->type|=HTT_EXPORT | HTT_LITERAL; - ResolveLocals(lx); - a->last_label=temph->str; - Lex(lx); - } - } - } else { - PutAsmError(lx,"ST_EXPECTING_COLON"); - Free(temph->str); - Free(temph); - } - } else - PutAsmError(lx,"ST_SYNTAX_ERROR"); - } - } - ResolveLocals(lx); - lx->flags&=~LF_ASM_EXPRESSIONS; - lx->hash_mask=old_hash_mask; - Lex(lx); //Skip "}" -} - diff --git a/LT/Compiler/CmpAsm.ASZ b/LT/Compiler/CmpAsm.ASZ deleted file mode 100644 index 0e02486..0000000 --- a/LT/Compiler/CmpAsm.ASZ +++ /dev/null @@ -1,281 +0,0 @@ - ALIGN 4,OC_NOP -CMP_INTERNAL_TYPES_TABLE:: - DU4 HTT_INTERNAL_TYPE,IT_I8,8; - DU1 "void",0; - DU4 HTT_INTERNAL_TYPE,IT_DOUBLE,8; - DU1 "double",0; - - DU4 HTT_INTERNAL_TYPE,IT_I0,0; - DU1 "I0i",0; - DU4 HTT_INTERNAL_TYPE,IT_U0,0; - DU1 "U0i",0; - DU4 HTT_INTERNAL_TYPE,IT_I0,0; - DU1 "I0",0; - DU4 HTT_INTERNAL_TYPE,IT_U0,0; - DU1 "U0",0; - DU4 HTT_INTERNAL_TYPE,IT_I1,1; - DU1 "I1i",0; - DU4 HTT_INTERNAL_TYPE,IT_U1,1; - DU1 "U1i",0; - DU4 HTT_INTERNAL_TYPE,IT_I1,1; - DU1 "I1",0; - DU4 HTT_INTERNAL_TYPE,IT_U1,1; - DU1 "U1",0; - DU4 HTT_INTERNAL_TYPE,IT_I2,2; - DU1 "I2i",0; - DU4 HTT_INTERNAL_TYPE,IT_U2,2; - DU1 "U2i",0; - DU4 HTT_INTERNAL_TYPE,IT_I4,4; - DU1 "I4i",0; - DU4 HTT_INTERNAL_TYPE,IT_U4,4; - DU1 "U4i",0; - DU4 HTT_INTERNAL_TYPE,IT_I8,8; - DU1 "I8i",0; - DU4 HTT_INTERNAL_TYPE,IT_U8,8; - DU1 "U8i",0; - - DU4 HTT_INVALID; -//******************************************************* - ALIGN 8,OC_NOP -CMP_OPT_NOP: - DU4 EC_NOP; //Must be at IC_CODE offset - DU1 256 DUP(0); - -/********** -void OptNext(IntermediateCode *tempi, - IntermediateCode **temp_lag) -{ - I8 i,j=0; - for (i=3;i>0;i--) - temp_lag[i]=temp_lag[i-1]; - temp_lag[0]=tempi; - for (i=0;i<4;i++) - if (temp_lag[i]->opcode>EC_END_EXP) - temp_lag[j++]=temp_lag[i]; - while (j<4) - temp_lag[j++]=&opt_nop; -} -************/ - ALIGN 8,OC_NOP -CP_OPTNEXT:: - PUSH RBP - MOV RBP,RSP - PUSH RDI - MOV RCX,U8 SF_PARAM1[RBP] - MOV RDX,U8 SF_PARAM2[RBP] - - MOV RAX,U8 16[RDX] - MOV U8 24[RDX],RAX - MOV RAX,U8 8[RDX] - MOV U8 16[RDX],RAX - MOV RAX,U8 [RDX] - MOV U8 8[RDX],RAX - MOV U8 [RDX],RCX - - MOV RDI,RDX - - MOV RAX,RCX - CMP U2 IC_CODE[RAX],EC_END_EXP - JBE @@10 - STOSQ - -@@10: MOV RAX,U8 8[RDX] - CMP U2 IC_CODE[RAX],EC_END_EXP - JBE @@11 - STOSQ - -@@11: MOV RAX,U8 16[RDX] - CMP U2 IC_CODE[RAX],EC_END_EXP - JBE @@12 - STOSQ - -@@12: MOV RAX,U8 24[RDX] - CMP U2 IC_CODE[RAX],EC_END_EXP - JBE @@13 - STOSQ - -@@13: MOV RAX,CMP_OPT_NOP - ADD RDX,32 - JMP @@15 - -@@14: STOSQ -@@15: CMP RDI,RDX - JB @@14 - - POP RDI - POP RBP - RET -/********** -void OptNext2(IntermediateCode *tempi, - IntermediateCode **temp_lag) -{ - I8 i,j=0; - for (i=3;i>0;i--) - temp_lag[i]=temp_lag[i-1]; - temp_lag[0]=tempi; - for (i=0;i<4;i++) - if (temp_lag[i]->opcode>=EC_END_EXP) - temp_lag[j++]=temp_lag[i]; - while (j<4) - temp_lag[j++]=&opt_nop; -} -************/ - ALIGN 8,OC_NOP -CP_OPTNEXT2:: - PUSH RBP - MOV RBP,RSP - PUSH RDI - MOV RCX,U8 SF_PARAM1[RBP] - MOV RDX,U8 SF_PARAM2[RBP] - - MOV RAX,U8 16[RDX] - MOV U8 24[RDX],RAX - MOV RAX,U8 8[RDX] - MOV U8 16[RDX],RAX - MOV RAX,U8 [RDX] - MOV U8 8[RDX],RAX - MOV U8 [RDX],RCX - - MOV RDI,RDX - - MOV RAX,RCX - CMP U2 IC_CODE[RAX],EC_END_EXP - JB @@10 - STOSQ - -@@10: MOV RAX,U8 8[RDX] - CMP U2 IC_CODE[RAX],EC_END_EXP - JB @@11 - STOSQ - -@@11: MOV RAX,U8 16[RDX] - CMP U2 IC_CODE[RAX],EC_END_EXP - JB @@12 - STOSQ - -@@12: MOV RAX,U8 24[RDX] - CMP U2 IC_CODE[RAX],EC_END_EXP - JB @@13 - STOSQ - -@@13: MOV RAX,CMP_OPT_NOP - ADD RDX,32 - JMP @@15 - -@@14: STOSQ -@@15: CMP RDI,RDX - JB @@14 - - POP RDI - POP RBP - RET - - - ALIGN 8,OC_NOP -CP_OPTNEXT3:: - PUSH RBP - MOV RBP,RSP - PUSH RDI - MOV RCX,U8 SF_PARAM1[RBP] - MOV RDX,U8 SF_PARAM2[RBP] - - MOV RAX,U8 16[RDX] - MOV U8 24[RDX],RAX - MOV RAX,U8 8[RDX] - MOV U8 16[RDX],RAX - MOV RAX,U8 [RDX] - MOV U8 8[RDX],RAX - MOV U8 [RDX],RCX - - MOV RDI,RDX - - MOV RAX,RCX - CMP U2 IC_CODE[RAX],EC_END_EXP - JB @@10 - CMP U2 IC_CODE[RAX],EC_NOP1 - JE @@10 - STOSQ - -@@10: MOV RAX,U8 8[RDX] - CMP U2 IC_CODE[RAX],EC_END_EXP - JB @@11 - CMP U2 IC_CODE[RAX],EC_NOP1 - JE @@11 - STOSQ - -@@11: MOV RAX,U8 16[RDX] - CMP U2 IC_CODE[RAX],EC_END_EXP - JB @@12 - CMP U2 IC_CODE[RAX],EC_NOP1 - JE @@12 - STOSQ - -@@12: MOV RAX,U8 24[RDX] - CMP U2 IC_CODE[RAX],EC_END_EXP - JB @@13 - CMP U2 IC_CODE[RAX],EC_NOP1 - JE @@13 - STOSQ - -@@13: MOV RAX,CMP_OPT_NOP - ADD RDX,32 - JMP @@15 - -@@14: STOSQ -@@15: CMP RDI,RDX - JB @@14 - - POP RDI - POP RBP - RET - - -//******************************************************* -/**** -void PrsPush(ParseStack *ps,I8 val) -{ - ps->stk[ps->ptr++]=val; -} -I8 PrsPop(ParseStack *ps) -{ - return ps->stk[--ps->ptr]; -} -******/ - ALIGN 8,OC_NOP -CP_PRSPUSH:: - PUSH RBP - MOV RBP,RSP - MOV RCX,U8 SF_PARAM1[RBP] - MOV RAX,U8 [RCX] - INC RAX - MOV RDX,U8 SF_PARAM2[RBP] - MOV U8 [RCX+RAX*8],RDX - MOV U8 [RCX],RAX - POP RBP - RET - - ALIGN 8,OC_NOP -CP_PRSPOP:: - PUSH RBP - MOV RBP,RSP - MOV RCX,U8 SF_PARAM1[RBP] - MOV RBX,U8 [RCX] - MOV RAX,U8 [RCX+RBX*8] - DEC RBX - MOV U8 [RCX],RBX - POP RBP - RET - - -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_HI_CALL:: - PUSH RBP - MOV RBP,RSP - MOV RAX,U8 SF_PARAM1[RBP] - OR RAX,RAX - JZ @@100 - CALL RAX -@@100: POP RBP - RET - diff --git a/LT/Compiler/CmpDefs.HPZ b/LT/Compiler/CmpDefs.HPZ deleted file mode 100644 index 5e76a63..0000000 --- a/LT/Compiler/CmpDefs.HPZ +++ /dev/null @@ -1,254 +0,0 @@ -//Intermediate compiler codes -#define EC_NULL 0x000 -#define EC_NOP 0x001 -#define EC_END_EXP 0x002 -#define EC_LABEL 0x003 -#define EC_CALL_START 0x004 -#define EC_CALL_END 0x005 -#define EC_RETURN_START 0x006 -#define EC_RETURN_END 0x007 -#define EC_NOP1 0x008 -#define EC_IMM 0x009 -#define EC_DOUBLE 0x00A -#define EC_STR_CONST 0x00B -#define EC_ABSOLUTE_ADDRESS 0x00C -#define EC_TYPE 0x00D //not used (yet) -#define EC_GET_LABEL 0x00E -#define EC_RBP 0x00F -#define EC_REG 0x010 -#define EC_FS 0x011 -#define EC_GS 0x012 - -#define EC_LEA 0x013 - -#define EC_MOV 0x014 - -#define EC_ADDRESS 0x015 -#define EC_COM 0x016 -#define EC_NOT 0x017 -#define EC_UNARY_MINUS 0x018 - -#define EC_DEREF 0x019 -#define EC__PP 0x01A -#define EC__MM 0x01B -#define EC_PP_ 0x01C -#define EC_MM_ 0x01D - -#define EC_SHL 0x01E -#define EC_SHR 0x01F - -#define EC_POWER 0x020 - -#define EC_MUL 0x021 -#define EC_DIV 0x022 -#define EC_MOD 0x023 - -#define EC_AND 0x024 - -#define EC_OR 0x025 -#define EC_XOR 0x026 - -#define EC_ADD 0x027 -#define EC_SUB 0x028 - -#define EC_EQUAL_EQUAL 0x029 -#define EC_NOT_EQUAL 0x02A -#define EC_LESS 0x02B -#define EC_GREATER 0x02C -#define EC_LESS_EQUAL 0x02D -#define EC_GREATER_EQUAL 0x02E - -#define EC_AND_AND 0x02F - -#define EC_OR_OR 0x030 -#define EC_XOR_XOR 0x031 - -#define EC_COLON 0x032 -#define EC_QUESTION 0x033 - -#define EC_ASSIGN 0x034 - -#define EC_SHL_EQUAL 0x035 -#define EC_SHR_EQUAL 0x036 -#define EC_MUL_EQUAL 0x037 -#define EC_DIV_EQUAL 0x038 -#define EC_AND_EQUAL 0x039 -#define EC_OR_EQUAL 0x03A -#define EC_XOR_EQUAL 0x03B -#define EC_ADD_EQUAL 0x03C -#define EC_SUB_EQUAL 0x03D - -#define EC_ADD_RSP 0x03E - -#define EC_ENTER 0x03F -#define EC_LEAVE 0x040 -#define EC_RET 0x041 - -#define EC_CALL 0x042 -#define EC_CALL_INDIRECT 0x043 -#define EC_CALL_INDIRECT2 0x044 -#define EC_IRQ 0x045 - -#define EC_CLI 0x046 -#define EC_STI 0x047 -#define EC_DISABLE_CACHE 0x048 -#define EC_ENABLE_CACHE 0x049 -#define EC_WBINVD 0x04A -#define EC_INVD 0x04B - -#define EC_GET_FLAGS 0x04C -#define EC_SET_FLAGS 0x04D -#define EC_GET_BASE_PTR 0x04E -#define EC_SET_BASE_PTR 0x04F -#define EC_GET_STACK_PTR 0x050 -#define EC_SET_STACK_PTR 0x051 -#define EC_SET_RAX 0x052 - -#define EC_BT 0x053 -#define EC_BTS 0x054 -#define EC_BTR 0x055 -#define EC_BTC 0x056 -#define EC_BSF 0x057 -#define EC_BSR 0x058 -#define EC_INSQUE 0x059 -#define EC_INSQUE_REV 0x05A -#define EC_REMQUE 0x05B -#define EC_STRLEN 0x05C -#define EC_MEMCPY 0x05D -#define EC_MEMSET 0x05E -#define EC_INPD 0x05F -#define EC_INPW 0x060 -#define EC_INP 0x061 -#define EC_OUTPD 0x062 -#define EC_OUTPW 0x063 -#define EC_OUTP 0x064 -#define EC_RDTSC 0x065 - -#define EC_JMP 0x066 -#define EC_SWITCH 0x067 - -#define EC_BR_ZERO 0x068 -#define EC_BR_NOT_ZERO 0x069 - -//ADDED DURING PASS1 -#define EC_BR_NOT_EQUAL 0x06A -#define EC_BR_EQUAL_EQUAL 0x06B -#define EC_BR_GREATER_EQUAL 0x06C -#define EC_BR_LESS_EQUAL 0x06D -#define EC_BR_GREATER 0x06E -#define EC_BR_LESS 0x06F -#define EC_BR_OR_OR_ZERO 0x070 -#define EC_BR_OR_OR_NOT_ZERO 0x071 - -#define EC_SHL_CONST 0x072 -#define EC_SHR_CONST 0x073 -#define EC_ADD_CONST 0x074 -#define EC_SUB_CONST 0x075 - -#define EC_PUSH_REGS 0x076 -#define EC_POP_REGS 0x077 - -#define EC_BR_BT 0x078 -#define EC_BR_BTS 0x079 -#define EC_BR_BTR 0x07A -#define EC_BR_BTC 0x07B -#define EC_BR_NOT_BT 0x07C -#define EC_BR_NOT_BTS 0x07D -#define EC_BR_NOT_BTR 0x07E -#define EC_BR_NOT_BTC 0x07F -#define EC_CALL_END2 0x080 - -#define EC_LBTS 0x081 -#define EC_LBTR 0x082 -#define EC_LBTC 0x083 -#define EC_BR_LBTS 0x084 -#define EC_BR_LBTR 0x085 -#define EC_BR_LBTC 0x086 -#define EC_BR_NOT_LBTS 0x087 -#define EC_BR_NOT_LBTR 0x088 -#define EC_BR_NOT_LBTC 0x089 -#define EC_BR_AND_AND_ZERO 0x08A -#define EC_BR_AND_AND_NOT_ZERO 0x08B - -#define EC_BR_AND_ZERO 0x08C -#define EC_BR_AND_NOT_ZERO 0x08D - -#define EC_MOD_EQUAL 0x08E -#define EC_CALL_EXTERN 0x08F - -#define EC_ABSI8 0x090 -#define EC_PUSH_CMP 0x091 -#define EC_PREEMPT 0x092 - -#define EC_NUM_ENTRIES 0x093 - - - -#define KW_INCLUDE 0 -#define KW_DEFINE 1 -#define KW_UNION 2 -#define KW_CATCH 3 -#define KW_CLASS 4 -#define KW_TRY 5 -#define KW_IF 6 -#define KW_ELSE 7 -#define KW_FOR 8 -#define KW_WHILE 9 -#define KW_EXTERN 10 -#define KW_LTEXTERN 11 -#define KW_RETURN 12 -#define KW_SIZEOF 13 -#define KW_INTERNAL 14 -#define KW_FMTSTR 15 -#define KW_FMTDATA 16 -#define KW_OUTPUT_FUN 17 -#define KW_INPUT_FUN 18 -#define KW_COUT 19 -#define KW_DO 20 -#define KW_ASM 21 -#define KW_GOTO 22 -#define KW_EXE 23 -#define KW_BREAK 24 -#define KW_CONTINUE 25 -#define KW_SWITCH 26 -#define KW_CASE 27 -#define KW_DEFAULT 28 -#define KW_PUBLIC 29 -#define KW_OFFSET 30 -#define KW_TYPEOF 31 -#define KW_IMPORT 32 -#define KW_LTIMPORT 33 -#define KW_COUTLN 34 -#define KW_IFDEF 35 -#define KW_IFNDEF 36 -#define KW_ENDIF 37 -#define KW_ASSERT 38 -#define KW_REG 39 -#define KW_NOREG 40 -#define KW_NOUNUSEDWARN 41 -#define KW_HELP_INDEX 42 -#define KW_HELP_FILE 43 - -#define AKW_ALIGN 64 -#define AKW_END 65 -#define AKW_U1 66 -#define AKW_U2 67 -#define AKW_U4 68 -#define AKW_U8 69 -#define AKW_DU1 70 -#define AKW_DU2 71 -#define AKW_DU4 72 -#define AKW_DU8 73 -#define AKW_DUP 74 -#define AKW_ORG 75 -#define AKW_STRUC 76 -#define AKW_ENDS 77 -#define AKW_USE16 78 -#define AKW_USE32 79 -#define AKW_USE64 80 -#define AKW_IMPORT 81 -#define AKW_EXPORT 82 -#define AKW_INSERT 83 -#define AKW_LIST 84 -#define AKW_NOLIST 85 -#define AKW_INSERT_COMPRESSED 86 diff --git a/LT/Compiler/CmpDefs2.HPZ b/LT/Compiler/CmpDefs2.HPZ deleted file mode 100644 index 84e57b4..0000000 --- a/LT/Compiler/CmpDefs2.HPZ +++ /dev/null @@ -1,21 +0,0 @@ -extern I8 Expression(LexStruct *lx); -extern BoolU8 GetExpression(LexStruct *lx,U1 **exp); -extern U8 PrsUnaryTerm(LexStruct *lx,ParseStack *ps,MemberListStruct **local_var,ArrayDimStruct **tempad); -extern U8 PrsUnaryModifier(LexStruct *lx,ParseStack *ps,MemberListStruct **local_var,ArrayDimStruct **tempad); -extern U8 PrsDereferrence(LexStruct *lx,ParseStack *ps); -extern void PrsExcept(LexStruct *lx,I1 *name=NULL,I1 *msg=NULL); -extern BoolU8 CmpParseStatement(LexStruct *lx,ClassStruct *locals,I8 try_count=0, - CbMiscStruct *break_label=NULL,CbMiscStruct *continue_label=NULL, - BoolU4 saved_prs_semicolon=TRUE); -extern I8 ExecuteCmdLine(LexStruct *lx); -extern IntermediateCode *CmpOptPass1(LexStruct *lx,ClassStruct *fun_class,BoolU4 combined); -extern void CmpOptPass2(LexStruct *lx,ClassStruct *fun_class,I8 *register_offsets); -extern void CmpOptPass3(LexStruct *lx,I8 *register_offsets,U8 *type); -extern void CmpOptPass4(LexStruct *lx); -extern void CmpOptPass5(LexStruct *lx,ClassStruct *fun_class); -extern U8 CmpOptPass678(LexStruct *lx,ClassStruct *fun_class,I8 *register_offsets,U1 *buf,I8 pass,DbgInfo **dbg_info,I8 *min_line,I8 *max_line); -extern I8 CmpKeyWord(LexStruct *lx); -extern void PutLexWarning(LexStruct *lx,I1 *name=NULL,I1 *msg=NULL); - -LTextern CMP_INTERNAL_TYPES_TABLE U1 internal_types_table[1]; - diff --git a/LT/Compiler/CmpGlbls.CPZ b/LT/Compiler/CmpGlbls.CPZ deleted file mode 100644 index 23ea06a..0000000 --- a/LT/Compiler/CmpGlbls.CPZ +++ /dev/null @@ -1,13 +0,0 @@ -SysHashTable *asm_hash; -BoolU4 is_first_compiler,cmp_do_not_write_to_disk; -SysHashEntry *sys_internal_types[IT_NUM_IT]; - -U2 *duel_I1_tokens1,*duel_I1_tokens2,*duel_I1_tokens3; -U4 *binary_ops_table,*unary_ops_table; -U1 *cmp_param_cnt,*cmp_result_cnt; -U1 *deref_bitmap,*assign_bitmap,*not_constant_bitmap,*cmp_bitmap; -I8 num_stk_temps,num_reg_vars,num_non_ptr_vars; -U8 stk_temps_mask,reg_vars_mask,non_ptr_vars_mask; -U1 *to_stk_temps_map_odd; -U1 *to_stk_temps_map_even; -U1 *to_reg_vars_map,*to_non_ptr_vars_map; diff --git a/LT/Compiler/CmpInit.CPZ b/LT/Compiler/CmpInit.CPZ deleted file mode 100644 index 4e35d1b..0000000 --- a/LT/Compiler/CmpInit.CPZ +++ /dev/null @@ -1,603 +0,0 @@ -void LoadAsmHash(BoolU4 first) -{ - U8 i,j,type; - U4 *dd; - LexStruct *lx; - I8 size,size1; - SysHashEntry *temph; - OpcodeHashEntry *tempo,*tempo1; - InstructionEntry *tempi; - ClassStruct *tempc; - - asm_hash=NewHashTable(2048); - size1=offset(OpcodeHashEntry.ins)+sizeof(InstructionEntry)<<5; - tempo=MAlloc(size1); - - lx=LexNew(ReadTextFile("OpCodes.TXZ"),0,NewStr("OpCodes.TXZ")); - lx->hash_table_list=NULL; - Lex(lx); - while (lx->token) { - if (lx->token!=TK_IDENT) - PutAsmError(lx,"ST_EXPECTING_IDENTIFIER"); - else { - i=MatchListEntry(lx->ident,"OPCODE\0KEYWORD\0R8\0R16\0R32\0R64\0SEG\0\0",MLE_IGNORE_CASE); - Lex(lx); //skip keyword - if (!i) { //OPCODE - MemSet(tempo,0,size1); - tempo->type=HTT_OPCODE; - tempo->instruction_entry_cnt=0; - tempo->str=lx->ident; - lx->ident=0; - Lex(lx); //Skip OPCODE - while (lx->token && lx->token!=';') { - tempi=&tempo->ins[tempo->instruction_entry_cnt]; - tempi->ins_entry_num=tempo->instruction_entry_cnt++; - tempi->opcode_cnt=0; - while (lx->token==TK_INTEGER) { - tempi->opcode[tempi->opcode_cnt++]=lx->cur_i; - Lex(lx); - } - tempi->flags=0; - if (lx->token=='+') { - tempi->flags|=IEF_PLUS_OPCODE; - Lex(lx); - } - if (lx->token=='/') { - if (Lex(lx)==TK_INTEGER) { - tempi->slash_value=lx->cur_i; - Lex(lx); - } else if (lx->token==TK_IDENT) { - tempi->slash_value=SV_REGISTER; - Lex(lx); - } - } else - tempi->slash_value=SV_NONE; - if (lx->token=='*') { - tempi->flags|=IEF_OP_SIZE16; - Lex(lx); - } - if (lx->token==TK_MOD_EQUAL) { - tempi->flags|=IEF_OP_SIZE32|IEF_48_REX; - Lex(lx); - } - if (lx->token=='%') { - tempi->flags|=IEF_OP_SIZE32; - Lex(lx); - } - if (lx->token=='!') { - tempi->flags|=IEF_DONT_SWITCH_MODES; - Lex(lx); - } - if (lx->token=='&') { - tempi->flags|=IEF_DEFAULT; - Lex(lx); - } - if (lx->token=='-') { - tempi->flags|=IEF_NO_REX; - Lex(lx); - } - if (lx->token=='~') { - tempi->flags|=IEF_40_REX; - Lex(lx); - } - if (lx->token=='~') { - tempi->flags|=IEF_40_REX; - Lex(lx); - } else if (lx->token=='=') { - tempi->flags|=IEF_48_REX; - Lex(lx); - } - if (lx->token!=TK_IDENT) - PutAsmError(lx,"ST_EXPECTING_IDENTIFIER"); - else { - tempi->opcode_modifier=MatchSysTextEntry(lx->ident, - "ST_OPCODE_MODIFIERS",MLE_IGNORE_CASE); - tempi->arg1=0; - tempi->arg2=0; - if (Lex(lx)==TK_IDENT) { - j=MatchSysTextEntry(lx->ident, - "ST_ARGUMENT_TYPES",MLE_IGNORE_CASE); - tempi->arg1=j; - if (j>=ARGT_REL8 && j<=ARGT_REL32 || - j>=ARGT_MOFFS8 && j<=ARGT_MOFFS64) - tempi|=IEF_NO_REX; - - if (Lex(lx)==TK_IDENT) { - j=MatchSysTextEntry(lx->ident, - "ST_ARGUMENT_TYPES",MLE_IGNORE_CASE); - Lex(lx); - tempi->arg2=j; - if (j>=ARGT_REL8 && j<=ARGT_REL32 || - j>=ARGT_MOFFS8 && j<=ARGT_MOFFS64) - tempi|=IEF_NO_REX; - } - } - } - } - if (lx->token==';') { - Lex(lx); //Skip ';' - size=offset(OpcodeHashEntry.ins)+ - sizeof(InstructionEntry)*tempo->instruction_entry_cnt; - tempo1=MAlloc(size); - MemCpy(tempo1,tempo,size); - tempo1->use_cnt=0; - SetSourceFileInfo(lx,tempo1); - AddSysHashEntry(tempo1,asm_hash); - } else - PutAsmError(lx,"ST_MISSING_SEMICOLON"); - } else if (i>=1 && i<=6) { //KEYWORD,R8,R16,R32,R64,SEG - if (lx->token!=TK_IDENT) - PutAsmError(lx,"ST_EXPECTING_IDENTIFIER"); - else { - temph=MAllocZ(sizeof(SysHashEntry)); - temph->str=lx->ident; - lx->ident=NULL; - temph->use_cnt=0; - SetSourceFileInfo(lx,temph); - Lex(lx); //skip keyword name - if (lx->token!=TK_INTEGER) - PutAsmError(lx,"ST_EXPECTING_INTEGER"); - else { - temph->user_data0=lx->cur_i; - if (Lex(lx)!=';') - PutAsmError(lx,"ST_MISSING_SEMICOLON"); - else { - Lex(lx); //skip ';' - AddSysHashEntry(temph,asm_hash); - } - } - switch (i) { - case 1: - temph->type=HTT_KEYWORD; - if (first) { - temph=MAllocIdentical(temph); - AddSysHashEntry(temph,adam_tss->hash_table); - } - break; - case 2: temph->type=HTT_R8; break; - case 3: temph->type=HTT_R16; break; - case 4: temph->type=HTT_R32; break; - case 5: temph->type=HTT_R64; break; - case 6: temph->type=HTT_SEG; break; - } - } - } else - PutAsmError(lx,"Unknown Statement"); - } - } - Free(tempo); - LexDel(lx); - dd=internal_types_table; - while (*dd!=HTT_INVALID) { - tempc=CmpClassNew; - tempc->type=*dd; dd+=4; - tempc->use_cnt=0; - tempc->source_link=NULL; - tempc->index=NULL; - tempc->sub_type=*dd; dd+=4; - tempc->size=*dd; dd+=4; - tempc->str=ANewStr(dd); - dd+=StrLen(tempc->str)+1; - AddSysHashEntry(tempc,asm_hash); - sys_internal_types[tempc->sub_type]=tempc; - if (first) { - tempc=MAllocIdentical(tempc); - AddSysHashEntry(tempc,adam_tss->hash_table); - } - } -} - - -void LoadCompileSysText() -{ - LoadStr("ST_ERROR",ST_ERROR); - LoadStr("ST_WARNING",ST_WARNING); - LoadStr("ST_MISSING_SEMICOLON","missing ';' at"); - LoadStr("ST_MISSING_EXPRESSION","missing Expression at "); - LoadStr("ST_MISSING_RIGHT_PAREN","missing ')' at "); - LoadStr("ST_MISSING_RIGHT_BRACKET","missing ']' at "); - LoadStr("ST_UNDEFINED_SYMBOL","undefined symbol at "); - LoadStr("ST_UNDEFINED_IDENTIFIER","undefined identifier at "); - LoadStr("ST_INVALID_CLASS","invalid class at "); - LoadStr("ST_INVALID_MEMBER","invalid member at "); - LoadStr("ST_EXPECTING_TYPE","expecting type at "); - LoadStr("ST_EXPECTING_IDENTIFIER","expecting identifier at "); - LoadStr("ST_EXPECTING_RIGHT_PAREN","expecting ')' at "); - LoadStr("ST_EXPECTING_LEFT_BRACE","expecting '{' at "); - LoadStr("ST_MISSING_RIGHT_BRACE","missing '}' at "); - LoadStr("ST_INVALID_LVALUE","invalid lvalue at "); - LoadStr("ST_EXPECTING_EQUAL","expecting '=' at "); - LoadStr("ST_NOT_POINTER_TYPE","not pointer type at "); - LoadStr("ST_EXPECTING_COMMA","expecting ',' at "); - LoadStr("ST_EXPECTING_SYS_SYMBOL","expecting System symbol at "); - LoadStr("ST_EXPECTING_STR","expecting str at "); - LoadStr("ST_MISSING_WHILE","missing 'while' at"); - LoadStr("ST_UNKNOWN_STATEMENT","unknown statement at "); - LoadStr("ST_ALREADY_ONE_IMMEDIATE","already one immediate at "); - LoadStr("ST_SYNTAX_ERROR","syntax error at "); - LoadStr("ST_EXPECTING_SCALE_FACTOR","expecting scale factor at "); - LoadStr("ST_QUESTION_NOT_ALLOWED","'?' not allowed at "); - LoadStr("ST_EXPECTING_LEFT_PAREN","expecting '(' at "); - LoadStr("ST_UNDEFINED_DUP_CNT","undefined DUP cnt at "); - LoadStr("ST_EXPECTING_COLON","expecting ':' at "); - LoadStr("ST_EXPECTING_DOUBLE_COLON","expecting '::' at "); - LoadStr("ST_EXPECTING_DOT","expecting '.' at "); - LoadStr("ST_EXPECTING_LOCAL_VARIABLE","expecting local variable at "); - LoadStr("ST_REDEFINITION","redefinition at "); - LoadStr("ST_INVALID_INSTRUCTION","invalid instruction at "); - LoadStr("ST_INTERNAL_ERROR","LTintern error at "); - LoadStr("ST_BRANCH_OUT_OF_RANGE","branch out of range at "); - LoadStr("ST_ATTEMPT_DEFINE_IMPORT","attempt to define import at "); - LoadStr("ST_COULD_USE_U1_DISP","could use U1 displacement at "); - LoadStr("ST_LINE","line: "); - LoadStr("ST_NO_SIZE_SPECIFIED","no size specified at "); - LoadList("ST_IT_TYPES","I0\0U0\0I1\0U1\0I2\0U2\0I4\0U4\0I8\0U8\0double\0udouble\0"); - LoadList("ST_TY_TYPES","NULL\0IMM\0REG\0DISP\0RIP\0STK\0\0"); - LoadList("ST_U1_REGS","AL\0CL\0DL\0BL\0AH\0CH\0DH\0BH\0" - "R8u1\0R9u1\0R10u1\0R11u1\0R12u1\0R13u1\0R14u1\0R15u1\0"); - LoadList("ST_U2_REGS","AX\0CX\0DX\0BX\0SP\0BP\0SI\0DI\0" - "R8u2\0R9u2\0R10u2\0R11u2\0R12u2\0R13u2\0R14u2\0R15u2\0"); - LoadList("ST_U4_REGS","EAX\0ECX\0EDX\0EBX\0ESP\0EBP\0ESI\0EDI\0" - "R8u4\0R9u4\0R10u4\0R11u4\0R12u4\0R13u4\0R14u4\0R15u4\0"); - LoadList("ST_U8_REGS","RAX\0RCX\0RDX\0RBX\0RSP\0RBP\0RSI\0RDI\0" - "R8\0R9\0R10\0R11\0R12\0R13\0R14\0R15\0"); - LoadList("ST_OPCODE_MODIFIERS","NO\0R\0CB\0CW\0CD\0CP\0IB\0IW\0ID\0RB\0RW\0RD\0"); - LoadList("ST_ARGUMENT_TYPES", - "NO\0REL8\0REL16\0REL32\0UIMM8\0UIMM16\0UIMM32\0UIMM64\0" - "R8\0R16\0R32\0R64\0" - "IMM8\0IMM16\0IMM32\0IMM64\0RM8\0RM16\0RM32\0RM64\0" - "M8\0M16\0M32\0" - "M1616\0M1632\0M16N32\0M16N16\0M32N32\0" - "MOFFS8\0MOFFS16\0MOFFS32\0MOFFS64\0" - "AL\0AX\0EAX\0RAX\0CL\0DX\0 \0SREG\0" - "SS\0DS\0ES\0FS\0GS\0CS\0"); - LoadList("ST_SEG_REGS","ES\0CS\0SS\0DS\0FS\0GS\0"); - LoadStr("ST_EXPECTING_INTEGER","expecting integer at "); - LoadStr("ST_DIVIDE_BY_ZERO","Divide by zero at "); - LoadStr("ST_OPT_INTERNAL_ERROR","Compiler Optimization Error at "); - LoadStr("ST_UNRESOLVED_REFERENCE","Unresolved Reference:"); - LoadStr("ST_NOT_DEFINED","Not Defined"); - LoadStr("ST_SCANNING_DIRECTORY","Scanning Directory:"); - LoadStr("ST_ASM_NOT_ALLOWED","ASM not allowed"); - LoadStr("ST_UNUSED_VAR","Unused Var"); - LoadStr("ST_UNUSED_EXTERN","Unused extern"); - LoadStr("ST_NOT_ALLOWED_IN_FUNCTION","Not allowed in function"); - LoadStr("ST_MISSING_CATCH","missing 'catch' at"); - LoadStr("ST_UNDEFINED_GOTO_LABEL","Undefined goto label:"); - LoadStr("ST_BREAK_NOT_ALLOWED","'break' not allowed\r\n"); - LoadStr("ST_CONTINUE_NOT_ALLOWED","'continue' not allowed\r\n"); - LoadStr("ST_ERRORS_WARNINGS","Errors:%04d Warnings:%04d Size:%08X\r\n"); - LoadStr("ST_IMPORT_NOT_NEEDED","import not needed at "); - LoadStr("ST_EXPECTING_CASE","expecting 'case' at "); - LoadStr("ST_CASE_RANGE_ERROR","switch range error at "); - LoadStr("ST_LEX_STACK_OVERFLOW","Lex Stack overflow"); - LoadStr("ST_STR_DEFAULT","Str defaults not implemented in static mode at "); - LoadStr("ST_ASSERT_FAILED","Assert Failed "); - LoadStr("ST_ADDRESS_EXTERN","Can't take address of extern function"); - -$AN,"Anchor for inserting Compiler systext","COMPILE_SYSTEXT"$ - - - LoadList("ST_INTERMEDIATE_CODE", -// '*' means it is a dereferrence instruction -// '=' means it is an assignment instruction -// '^' means it is a compare instruction - -// '9' param count means variable - -// 'N' means not constant - -// param cnt,result cnt,push prior,deref/assign -"00..NULL\0" -"00..NOP\0" -"10..END_EXP\0" -"00..LABEL\0" -"00..CALL_START\0" -"01..CALL_END\0" -"00..RETURN_START\0" -"00..RETURN_END\0" -"00..NOP1\0" -"01..IMM\0" -"01..DOUBLE\0" -"01.NSTR_CONST\0" -"01.NABSOLUTE_ADDRESS\0" -"01.NTYPE\0" -"01.NGET_LABEL\0" -"01.NRBP\0" -"01.NREG\0" -"00.NFS\0" -"00.NGS\0" -"01.NLEA\0" -"01.NMOV\0" -"11.NADDRESS\0" -"11..COM\0" -"11..NOT\0" -"11..UNARY_MINUS\0" -"11*NDEREF\0" -"11*N_PP\0" -"11*N_MM\0" -"11*NPP_\0" -"11*NMM_\0" -"21..SHL\0" -"21..SHR\0" -"21..POWER\0" -"21..MUL\0" -"21..DIV\0" -"21..MOD\0" -"21..AND\0" -"21..OR\0" -"21..XOR\0" -"21..ADD\0" -"21..SUB\0" -"21^.EQUAL_EQUAL\0" -"21^.NOT_EQUAL\0" -"21^.LESS\0" -"21^.GREATER\0" -"21^.LESS_EQUAL\0" -"21^.GREATER_EQUAL\0" -"21..AND_AND\0" -"21..OR_OR\0" -"21..XOR_XOR\0" -"31..COLON\0" -"00..QUESTION\0" -"21=NASSIGN\0" -"21=NSHL_EQUAL\0" -"21=NSHR_EQUAL\0" -"21=NMUL_EQUAL\0" -"21=NDIV_EQUAL\0" -"21=NAND_EQUAL\0" -"21=NOR_EQUAL\0" -"21=NXOR_EQUAL\0" -"21=NADD_EQUAL\0" -"21=NSUB_EQUAL\0" -"90..ADD_RSP\0" -"00..ENTER\0" -"00..LEAVE\0" -"00..RET\0" -"00.NCALL\0" -"00.NCALL_INDIRECT\0" -"00.NCALL_INDIRECT2\0" -"00.NIRQ\0" -"00..CLI\0" -"00..STI\0" -"00..DISABLE_CACHE\0" -"00..ENABLE_CACHE\0" -"00..WBINVD\0" -"00..INVD\0" -"00.NGET_FLAGS\0" -"10.NSET_FLAGS\0" -"00.NGET_BASE_PTR\0" -"10.NSET_BASE_PTR\0" -"00.NGET_STACK_PTR\0" -"10.NSET_STACK_PTR\0" -"10.NSET_RAX\0" -"20.NBT\0" -"20.NBTS\0" -"20.NBTR\0" -"20.NBTC\0" -"10.NBSF\0" -"10.NBSR\0" -"20.NINSQUE\0" -"20.NINSQUE_REV\0" -"10.NREMQUE\0" -"10.NSTRLEN\0" -"30.NMEMCPY\0" -"30.NMEMSET\0" -"10.NINPD\0" -"10.NINPW\0" -"10.NINP\0" -"20.NOUTPD\0" -"20.NOUTPW\0" -"20.NOUTP\0" -"00.NRDTSC\0" -"00..JMP\0" -"20..SWITCH\0" -"10..BR_ZERO\0" -"10..BR_NOT_ZERO\0" -"20..BR_NOT_EQUAL\0" -"20..BR_EQUAL_EQUAL\0" -"20..BR_GREATER_EQUAL\0" -"20..BR_LESS_EQUAL\0" -"20..BR_GREATER\0" -"20..BR_LESS\0" -"20..BR_OR_OR_ZERO\0" -"20..BR_OR_OR_NOT_ZERO\0" -"11=.SHL_CONST\0" -"11=.SHR_CONST\0" -"11=.ADD_CONST\0" -"11=.SUB_CONST\0" -"00=.PUSH_REGS\0" -"00=.POP_REGS\0" -"20..BR_BT\0" -"20..BR_BTS\0" -"20..BR_BTR\0" -"20..BR_BTC\0" -"20..BR_NOT_BT\0" -"20..BR_NOT_BTS\0" -"20..BR_NOT_BTR\0" -"20..BR_NOT_BTC\0" -"00..CALL_END2\0" -"20.NLBTS\0" -"20.NLBTR\0" -"20.NLBTC\0" -"20.NBR_LBTS\0" -"20.NBR_LBTR\0" -"20.NBR_LBTC\0" -"20.NBR_NOT_LBTS\0" -"20.NBR_NOT_LBTR\0" -"20.NBR_NOT_LBTC\0" -"20..BR_AND_AND_ZERO\0" -"20..BR_AND_AND_NOT_ZERO\0" -"20..BR_AND_ZERO\0" -"20..BR_AND_NOT_ZERO\0" -"21=NMOD_EQUAL\0" -"00.NCALL_EXTERN\0" -"10.NABSI8\0" -"01..PUSH_CMP\0" -"10.NPREEMPT\0" -); -} - -void FillCompilerTables() -{ - I1 *st; - U8 i,k; - U2 *u; - U4 *d4; - - assign_bitmap=MAllocZ((EC_NUM_ENTRIES+7)>>3); - deref_bitmap=MAllocZ((EC_NUM_ENTRIES+7)>>3); - cmp_bitmap=MAllocZ((EC_NUM_ENTRIES+7)>>3); - not_constant_bitmap=MAllocZ((EC_NUM_ENTRIES+7)>>3); - cmp_param_cnt=MAllocZ(EC_NUM_ENTRIES); - cmp_result_cnt=MAllocZ(EC_NUM_ENTRIES); - st=SysText("ST_INTERMEDIATE_CODE"); - for (i=0;i'; - u['/']='*'; - u[':']=256*TK_DOUBLE_COLON+':'; - u['<']=256*TK_LESS_EQUAL+'='; - u['=']=256*TK_EQUAL_EQUAL+'='; - u['>']=256*TK_GREATER_EQUAL+'='; - u['^']=256*TK_XOR_EQUAL+'='; - u['|']=256*TK_OR_OR+'|'; - u['%']=256*TK_MOD_EQUAL+'='; - - u=MAllocZ(sizeof(U2)*TK_NUM_TK); - duel_I1_tokens2=u; - u['&']=256*TK_AND_EQUAL+'='; - u['+']=256*TK_ADD_EQUAL+'='; - u['-']=256*TK_MINUS_MINUS+'-'; - u['/']='/'; - u['<']=256*TK_SHL+'<'; - u['>']=256*TK_SHR+'>'; - u['^']=256*TK_XOR_XOR+'^'; - u['|']=256*TK_OR_EQUAL+'='; - - u=MAllocZ(sizeof(U2)*TK_NUM_TK); - duel_I1_tokens3=u; - u['-']=256*TK_SUB_EQUAL+'='; - u['/']=256*TK_DIV_EQUAL+'='; - u['>']=256*TK_CAST+'<'; - -//$AN,"","OP_Precidence"$Here the operator precidences are -//defined. - d4=MAllocZ(sizeof(U4)*TK_NUM_TK); - unary_ops_table=d4; - d4['~']=0x10000+EC_COM; - d4['!']=0x10000+EC_NOT; - d4['-']=0x10000+EC_UNARY_MINUS; - d4['&']=0x10000+EC_ADDRESS; - d4['*']=0x10000+EC_DEREF; - - - d4=MAllocZ(sizeof(U4)*TK_NUM_TK); - binary_ops_table=d4; -//There is an exponential operator and -//shift instructions are rightfully -//the precidence of exponentials. - d4['`'] =0x20000+EC_POWER; - d4[TK_SHL] =0x20000+EC_SHL; - d4[TK_SHR] =0x20000+EC_SHR; - - d4['*'] =0x30000+EC_MUL; - d4['/'] =0x30000+EC_DIV; - d4['%'] =0x30000+EC_MOD; - -//$FG,2$&$FG$ is higher precidence $FG,2$|$FG$, like in logic - d4['&'] =0x40000+EC_AND; - - d4['|'] =0x50000+EC_OR; - d4['^'] =0x50000+EC_XOR; - - d4['+'] =0x60000+EC_ADD; - d4['-'] =0x60000+EC_SUB; - - d4[TK_EQUAL_EQUAL] =0x70000+EC_EQUAL_EQUAL; - d4[TK_NOT_EQUAL] =0x70000+EC_NOT_EQUAL; - d4['<'] =0x70000+EC_LESS; - d4['>'] =0x70000+EC_GREATER; - d4[TK_LESS_EQUAL] =0x70000+EC_LESS_EQUAL; - d4[TK_GREATER_EQUAL]=0x70000+EC_GREATER_EQUAL; - -//$FG,2$&&$FG$ is higher precidence $FG,2$||$FG$, like in logic - d4[TK_AND_AND] =0x80000+EC_AND_AND; - - d4[TK_OR_OR] =0x90000+EC_OR_OR; - d4[TK_XOR_XOR] =0x90000+EC_XOR_XOR; - - d4[':'] =0xA0000+EC_COLON; - d4['?'] =0xA0000+EC_QUESTION; - - d4['='] =0x100000+EC_ASSIGN; - d4[TK_SHL_EQUAL]=0x100000+EC_SHL_EQUAL; - d4[TK_SHR_EQUAL]=0x100000+EC_SHR_EQUAL; - d4[TK_MUL_EQUAL]=0x100000+EC_MUL_EQUAL; - d4[TK_DIV_EQUAL]=0x100000+EC_DIV_EQUAL; - d4[TK_MOD_EQUAL]=0x100000+EC_MOD_EQUAL; - d4[TK_AND_EQUAL]=0x100000+EC_AND_EQUAL; - d4[TK_OR_EQUAL] =0x100000+EC_OR_EQUAL; - d4[TK_XOR_EQUAL]=0x100000+EC_XOR_EQUAL; - d4[TK_ADD_EQUAL]=0x100000+EC_ADD_EQUAL; - d4[TK_SUB_EQUAL]=0x100000+EC_SUB_EQUAL; -} - -void InitCompiler(BoolU4 first) -{ - is_first_compiler=first; - cmp_do_not_write_to_disk=FALSE; - if (first) - ext[EXT_CMP_EXE_BLK]=&CmpParseExeBlk; - LoadCompileSysText; - FillCompilerTables; - MemSet(&opt_nop,0,sizeof(IntermediateCode)); - opt_nop.ic_class=sys_internal_types[IT_I8]; - - opt_nop.ic_opcode=EC_NOP; - LoadAsmHash(first); -} diff --git a/LT/Compiler/CmpMain.CPZ b/LT/Compiler/CmpMain.CPZ deleted file mode 100644 index 1370da3..0000000 --- a/LT/Compiler/CmpMain.CPZ +++ /dev/null @@ -1,422 +0,0 @@ -void CatchAll() -{ - I8 i; - if (Fs->except_argc>0) { - if (Fs->except_argv[0]except_argv[0],"ST_EXCEPT_TYPES"); - if (Fs->except_argv[0]==EXCEPT_UNDEF_SYSTEXT) - PrintF("Name:'%s'\r\n",Fs->except_argv[1]); - else if (Fs->except_argv[0]==EXCEPT_ARITHMETIC) - PrintF("Address:%P\r\n",Fs->except_argv[1]); - else if (Fs->except_argv[0]==EXCEPT_FLOATING) - PrintF("Address:%P\r\n",Fs->except_argv[1]); - else { - for (i=1;iexcept_argc;i++) - cout Fs->except_argv[i]," "; - CrLf; - } - } else { - cout "Exception:"; - for (i=1;iexcept_argc;i++) - cout Fs->except_argv[i]," "; - CrLf; - } - } else - coutln "Generic Exception"; - Fs->catch_except=TRUE; -} - - -void ExePutS(I1 *st) -//Inserts text into the stream of -//characters being compiled. Called -//from withing $FG,2$#exe{}$FG$ block. -{ - LexStruct *lx=Fs->last_lex; - ExeBlkStruct *tempe=lx->last_exe_blk; - if (tempe!=&lx->next_exe_blk) - tempe->body=Add2Str(tempe->body,st); - else - PrintFErr("No exe{} blk\r\n"); -} - -void ExePrintF(I1 *src,...) -//Inserts text into the stream of -//characters being compiled. Called -//from withing $FG,2$#exe{}$FG$ block. -{ - I1 *buf=SPrintFJoin(NULL,src,argc,argv); - ExePutS(buf); - Free(buf); -} - -U1 *CompileStatement(LexStruct *lx,U8 *type=NULL) -{ - U8 *result=INVALID_PTR; - AsmCtrlStruct *a=lx->a; - U8 size,i,j,k; - DbgInfo *dbg=NULL; - IntermediateCode *tempi; - if (type) *type=IT_I8; - Btr(&lx->flags,LFf_OPT_TRACE_PRESENT); - CbInitOutPtrs(&lx->cb); - CbAddIc(lx,EC_RETURN_START,0,sys_internal_types[IT_I8]); - tempi=lx->cb.cb_last_out_ptr; - if (!CmpParseStatement(lx,NULL)) { - if (tempi!=lx->cb.cb_last_out_ptr) { - CbAddIc(lx,EC_RETURN_END,0,sys_internal_types[IT_I8]); - CbAddIc(lx,EC_RET,0,0); - CbAddIc(lx,EC_NULL,0,0); - if (result=CbCompile(lx,NULL,&size,&dbg,type)) { - if (a) { - j=a->ip; - k=(size+7)>>3; - for (i=0;icb.cb_out_first); - } else - DelLinkedList(lx->cb.cb_out_first); - Free(dbg); - return result; -} - - -ExeStruct *CompileBuf(U1 *buf,I1 *map_name=NULL, - I8 *error_cnt=NULL, I8 *warning_cnt=NULL,I1 mapfile_drive=0) -{ - BoolU4 okay=TRUE; - LexStruct *lx; - AsmCtrlStruct *a; - U8 i,j; - ExeStruct *result=NULL; - AsmCodeBlk *tempc; - ExeImportExportStruct *tempe,*tempe1; - - if (!is_first_compiler) - coutln "$$FG PURPLE$$**** Not First Compiler ****$$FG$$"; - - result=MAllocZ(sizeof(ExeStruct)); - lx=LexNew(buf,LF_DONT_FREE_BUFFER,NULL); - InsQue(lx,Fs->last_lex); - - a=MAllocZ(sizeof(AsmCtrlStruct)); - a->code=MAllocZ(sizeof(AsmCodeBlk)); - a->local_hash=NewHashTable(16); - a->glbl_hash=NewHashTable(2048); - a->glbl_hash->next=asm_hash; - a->local_hash->next=a->glbl_hash; - - lx->a=a; - lx->hash_table_list=a->local_hash; - lx->define_hash_table=a->glbl_hash; - lx->local_hash_table=a->local_hash; - lx->glbl_hash_table=a->glbl_hash; - Lex(lx); -try { - while (lx->token!=TK_EOF) { - i=CompileStatement(lx); - if (i!=INVALID_PTR) { - tempe=MAlloc(sizeof(ExeImportExportStruct)); - tempe->type=EIE_MAIN; - tempe->ip=i; - tempe->str=NULL; - tempe->next=NULL; - tempe1=&result->ie; - while (tempe1->next) //TODO:This could be optimized - tempe1=tempe1->next; - tempe1->next=tempe; - } - } - ResolveGlbls(lx,result); -} catch { - if (Fs->except_argc>0) - if (Fs->except_argv[0]==EXCEPT_COMPILER) - Fs->catch_except=TRUE; - okay=FALSE; -} - RemQue(lx); - if (error_cnt) *error_cnt=lx->error_cnt; - if (warning_cnt) *warning_cnt=lx->warning_cnt; - if (!okay) { - //TODO free debug info and possibly classes - if (error_cnt) - if (*error_cnt<1) *error_cnt=1; - result=NULL; - } else { - if (map_name) - CallExtStr("HashRep",a->glbl_hash,HTT_ALL,map_name,"-r-p",mapfile_drive,NULL,NULL); - LexDel(lx); - DelHashTable(a->local_hash); - DelHashTable(a->glbl_hash); - - if (!a->num_code_U1s) - result->code=NULL; - else { - result->code=MAlloc(a->num_code_U1s); - result->code_U1s=a->num_code_U1s; - tempc=a->code; - j=0; - lx=a->num_code_U1s; - while (tempc) { - i=lx; - if (i>ASM_CODE_BLK_SIZE) - i=ASM_CODE_BLK_SIZE; - MemCpy(result->code+j,tempc->body,i); - j+=i; - lx-=i; - tempc=tempc->next; - } - } - DelLinkedList(a->code); - result->absolutes=a->absolutes; - Free(a); - } - return result; -} - - -I8 CompileFile(I1 *filename,I1 *map_name=NULL,I1 *out_name=NULL,I1 mapfile_drive=0) -{ - I1 *fbuf=NULL,*fbuf2=NULL,*fbuf3=NULL; - ExeStruct *e; - U4 *dd; - U8 size=0; - U1 *header=MAlloc(0x20000),*ptr; - BinFileHeaderStruct *bfh; - U8 i,cnt=0,error_cnt=0,warning_cnt=0; - ExeImportExportStruct *tempe,*tempe1; - ExeAbsoluteAddressStruct *tempa,*tempa1; - - fbuf=DefaultExtension(filename,"SPZ"); - fbuf2=MSPrintF("#include \"%s\"",fbuf); - if (map_name) - fbuf3=DefaultExtension(map_name,"MPZ"); - e=CompileBuf(fbuf2,fbuf3,&error_cnt,&warning_cnt,mapfile_drive); - - if (e) { - ptr=header; - tempa=e->absolutes; - while (tempa) { - cnt++; - tempa=tempa->next; - } - if (cnt) { - *ptr++=EIE_ABSOLUTE_ADDRESS; - dd=ptr; - *dd=cnt; - ptr+=sizeof(U4); - *ptr++=0; - tempa=e->absolutes; - while (tempa) { - tempa1=tempa->next; - dd=ptr; - *dd=tempa->ip; - ptr+=sizeof(U4); - Free(tempa); - tempa=tempa1; - } - } - tempe=e->ie; - while (tempe) { - tempe1=tempe->next; - *ptr++=tempe->type; - dd=ptr; - *dd=tempe->ip; - ptr+=sizeof(U4); - if (tempe->str) { - i=StrLen(tempe->str); - MemCpy(ptr,tempe->str,i+1); - Free(tempe->str); - ptr+=i+1; - } else - *ptr++=0; - Free(tempe); - tempe=tempe1; - } - *ptr++=EIE_END; - i=(ptr-header+15) & -0x10; - size=i+e->code_U1s+sizeof(BinFileHeaderStruct); - bfh=MAlloc(size); - MemCpy(bfh+e->code_U1s+sizeof(BinFileHeaderStruct),header,i); - MemCpy(bfh+sizeof(BinFileHeaderStruct),e->code,e->code_U1s); - bfh->jmp=0xE9+256*(16-3); - bfh->type=0; - bfh->header_offset=e->code_U1s+sizeof(BinFileHeaderStruct); - bfh->file_size=size; - bfh->xsum=LT_XSUM; - bfh->xsum=ArcCheckSum(bfh,size); - Free(fbuf2); - if (out_name) - fbuf2=DefaultExtension(out_name,"BIZ"); - else - fbuf2=ChangeExtension(fbuf,"BIZ"); - if (!cmp_do_not_write_to_disk) - WriteFile(fbuf2,bfh,size); - Free(bfh); - Free(e->code); - Free(e); - } - Free(header); - Free(fbuf); - Free(fbuf2); - Free(fbuf3); - PrintF(SysText("ST_ERRORS_WARNINGS"),error_cnt,warning_cnt,size); - return error_cnt; -} - -I8 ExecuteCmdLine(LexStruct *lx) -{ - I8 result=0,i,type; - I1 *ptr,*ptr2,*ptr3; - U1 *code; - LtfEntry *cl; - Ltf *l; - while (lx->token && - (lx->token!='}' || !(lx->flags & LF_EXE_BLK)) ) { - if (!Bt(&Fs->task_flags,TSSf_DONT_CHANGE_DESC)) { - ptr2=&Fs->task_descriptor; - ptr3=ptr2+TSS_DESC_LENGTH; - if (lx->cur_lfn->flags & LFSF_IS_LTF) { - cl=lx->cur_lfn->line_start; - l=lx->cur_lfn->l; - while (cl!=l && ptr2btype && ptr2display; - while (*ptr && ptr2next; - } - } else - if (ptr=lx->cur_lfn->line_start) - MemCpy(ptr2,ptr,TSS_DESC_LENGTH); - } - code=CompileStatement(lx,&type); - if (code!=INVALID_PTR) { - result=Call(code); - for (i=6;i>=0;i--) { - Fs->answers[i+1]=Fs->answers[i]; - Fs->double_answers[i+1]=Fs->double_answers[i]; - Fs->answers_types[i+1]=Fs->answers_types[i]; - } - Fs->answers[0]=result; - Fs->double_answers[0]=result><(double); - Fs->answers_types[0]=type; - Free(code); - } - } - return result; -} - -void ContinueUserTask() -{ - LexStruct *lx; - while (TRUE) { - lx=LexNew(NULL,LF_PROMPT,NULL); - InsQue(lx,Fs->last_lex); - try { - Lex(lx); - ExecuteCmdLine(lx); - RemQue(lx); - LexDel(lx); //TODO: Sometimes crashes on BREAK - } catch - CatchAll; - } -} - - -I1 *CmpMGetS() -{ - I1 buf[512]; - GetS(buf,512,FALSE); - return NewStr(buf); -} - -void CmpDebugger() -{ - LBts(&sys_semas[SYS_SEMA_IN_DEBUGGER],0); - Fs->task_flags&=~(1<last_lex); - try { - Lex(lx); - result=ExecuteCmdLine(lx); - } catch { - if (Fs->except_argc>0) { - if (Fs->except_argv[0]==EXCEPT_COMPILER || - Fs->except_argv[0]==EXCEPT_BREAK) { - Fs->catch_except=TRUE; - okay=FALSE; - result=0; - } - } - } - RemQue(lx); - if (okay) - LexDel(lx); //TODO: can crash - return result; -} - -I8 ExecuteFile(I1 *name) -{ - I8 result; - I1 *name2=DefaultExtension(name,"CPZ"); - I1 *st=MSPrintF("#include \"%s\";",name2); - result=ExecuteStr(st,name); - Free(st); - Free(name2); - return result; -} - -#define ADAM_STARTUP_NAME "/LT/OSMain/AdamK.APZ" -void AdamStartUpFile() -{ - BoolU4 okay=TRUE; - LexStruct *lx=LexNew(ReadTextFile(ADAM_STARTUP_NAME),0, - NewStr(ADAM_STARTUP_NAME)); - InsQue(lx,Fs->last_lex); - ext[EXT_SPRINTF_JOIN]=&SPrintFJoin2; - ext[EXT_GETF_JOIN]=&GetFJoin2; - ext[EXT_EXECUTE_FILE]=&ExecuteFile; - ext[EXT_EXECUTE_STR]=&ExecuteStr; - ext[EXT_DEBUGGER]=&CmpDebugger; - InitCompiler(TRUE); - Bts(&lx->flags,LF_ECHO); -//Continues Here $LK,"/LT/OSMain/AdamK.APZ","FL:/LT/OSMain/AdamK.APZ,1"$ - try { - Lex(lx); - ExecuteCmdLine(lx); - RemQue(lx); - LexDel(lx); //TODO - } catch { - CatchAll; - okay=FALSE; - } - if (!okay) - Debugger; -} diff --git a/LT/Compiler/Code.CPZ b/LT/Compiler/Code.CPZ deleted file mode 100644 index 8fd1667..0000000 --- a/LT/Compiler/Code.CPZ +++ /dev/null @@ -1,2452 +0,0 @@ -$WW,1$/*$FG,5$$TX+CX,"Intermediate Code"$ -$TX+CX,"To"$ -$TX+CX,"Machine Code"$ -$FG$ -$FG,2$RAX$FG$,$FG,2$RBX$FG$,$FG,2$RCX$FG$ and $FG,2$RDX$FG$ can be trashed by each intermediate code's output code. However, intermediate codes must be coupled together based on the parameter and result type specifications in the $LK,"IcParam","MN:IcParam"$. $FG,2$RAX$FG$ is the most common register for coupling intermediate codes. - -Internal calculations take place on 64-bit values, so anything which has found it's way into a register has been sign or zero extended to 64-bits. However, calculations can lead to range violations. Performance can be boosted if you avoid causing this situation in your code. The $LK,"OPTf_IGNORE_OVERFLOW","MN:OPTf_IGNORE_OVERFLOW"$ flag sent to $LK,"OptOn","MN:OptOn"$() will make the compiler assume no range violations will occur. Since, I have the power of creating standards for this language, I should probably just mandate that nobody assume range restrictions for less than 64-bit variables will be enforced through-out intermediate calculations, but I want to try not to break with $FG,2$C$FG$ standards unless it's way better. I'm planning to make my code $LK,"OPTf_IGNORE_OVERFLOW","MN:OPTf_IGNORE_OVERFLOW"$ compliant. - -The $LK,"IcMov","MN:IcMov"$() routine is commonly used. It needs a register for zero-extensions when dealing with U4's and when shuffling things around. I try to use the $FG,2$RBX$FG$ register as a scratch register available for sub-intermediate codes to trash. Don't assume $FG,2$RBX$FG$ will be preserved by $LK,"IcMov","MN:IcMov"$() or other sub-intermediate code routines. If you are not calling such routines, you can use it. - -You might get away with returning a value from a $UL,1$sub$UL,0$intermediate code helper routine in $FG,2$RBX$FG$, but maybe not because it has to zero-extend $FG,2$U4$FG$'s and I know no way besides XORing ahead and moving a $FG,2$U4$FG$ in, which requires two registers. - - - - -Code size changing during passes could cause problems. Jumps will be shortened (not lengthened) on successive passes and contraction does not hurt jumps, but contraction can hurt a glbl displacement. I decided all code must reside in the lowest 2Gig allowing 32-bit relative addressing for $FG,2$CALLS$FG$ and $FG,2$JMPS$FG$. To allow code beyond 2Gig, indirect calls and jmps could be used. (Load a 64-bit value in a register and call the register.) - -*/$WW,0$ - -void IcU1(IntermediateCode *tempi,U1 b) -{ - if (tempi->ic_cnt>=IC_BODY_SIZE-1|| tempi->ic_ext_body) { - if (!tempi->ic_ext_body) { - tempi->ic_ext_body=MAlloc(256); - MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); - } - tempi->ic_ext_body[tempi->ic_cnt++]=b; - } else - tempi->ic_body[tempi->ic_cnt++]=b; -} - -void IcRex(IntermediateCode *tempi,U1 b) -{ - if (b) { - if (tempi->ic_cnt>=IC_BODY_SIZE-1|| tempi->ic_ext_body) { - if (!tempi->ic_ext_body) { - tempi->ic_ext_body=MAlloc(256); - MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); - } - tempi->ic_ext_body[tempi->ic_cnt++]=b; - } else - tempi->ic_body[tempi->ic_cnt++]=b; - } -} - -void Ic66Rex(IntermediateCode *tempi,U1 b) -{ - if (!b) { - if (tempi->ic_cnt>=IC_BODY_SIZE-1|| tempi->ic_ext_body) { - if (!tempi->ic_ext_body) { - tempi->ic_ext_body=MAlloc(256); - MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); - } - tempi->ic_ext_body[tempi->ic_cnt++]=0x66; - } else - tempi->ic_body[tempi->ic_cnt++]=0x66; - } else { - if (tempi->ic_cnt>=IC_BODY_SIZE-2|| tempi->ic_ext_body) { - if (!tempi->ic_ext_body) { - tempi->ic_ext_body=MAlloc(256); - MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); - } - tempi->ic_ext_body[tempi->ic_cnt++]=0x66; - tempi->ic_ext_body[tempi->ic_cnt++]=b; - } else { - tempi->ic_body[tempi->ic_cnt++]=0x66; - tempi->ic_body[tempi->ic_cnt++]=b; - } - } -} - -void IcU2(IntermediateCode *tempi,U2 w) -{ - if (tempi->ic_cnt>=IC_BODY_SIZE-2|| tempi->ic_ext_body) { - if (!tempi->ic_ext_body) { - tempi->ic_ext_body=MAlloc(256); - MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); - } - tempi->ic_ext_body[tempi->ic_cnt++]=w.u1[0]; - tempi->ic_ext_body[tempi->ic_cnt++]=w.u1[1]; - } else { - tempi->ic_body[tempi->ic_cnt++]=w.u1[0]; - tempi->ic_body[tempi->ic_cnt++]=w.u1[1]; - } -} - -void IcU3(IntermediateCode *tempi,U4 d) -{ - if (tempi->ic_cnt>=IC_BODY_SIZE-3|| tempi->ic_ext_body) { - if (!tempi->ic_ext_body) { - tempi->ic_ext_body=MAlloc(256); - MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); - } - tempi->ic_ext_body[tempi->ic_cnt++]=d.u1[0]; - tempi->ic_ext_body[tempi->ic_cnt++]=d.u1[1]; - tempi->ic_ext_body[tempi->ic_cnt++]=d.u1[2]; - } else { - tempi->ic_body[tempi->ic_cnt++]=d.u1[0]; - tempi->ic_body[tempi->ic_cnt++]=d.u1[1]; - tempi->ic_body[tempi->ic_cnt++]=d.u1[2]; - } -} - -void IcU4(IntermediateCode *tempi,U4 d) -{ - U4 *dd; - if (tempi->ic_cnt>=IC_BODY_SIZE-4|| tempi->ic_ext_body) { - if (!tempi->ic_ext_body) { - tempi->ic_ext_body=MAlloc(256); - MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); - } - dd=&tempi->ic_ext_body[tempi->ic_cnt]; - } else { - dd=&tempi->ic_body[tempi->ic_cnt]; - } - *dd=d; - tempi->ic_cnt+=4; -} - -void IcU8(IntermediateCode *tempi,U8 q) -{ - U8 *qq; - if (tempi->ic_cnt>=IC_BODY_SIZE-8 || tempi->ic_ext_body) { - if (!tempi->ic_ext_body) { - tempi->ic_ext_body=MAlloc(256); - MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); - } - qq=&tempi->ic_ext_body[tempi->ic_cnt]; - } else - qq=&tempi->ic_body[tempi->ic_cnt]; - *qq=q; - tempi->ic_cnt+=8; -} - -void IcCopyIrq(IntermediateCode *tempi,U8 op) -{ - U1 *ptr; - I8 i; - ptr=sys_irq_vectors[op]; - i=sys_irq_vectors[op+1]-2-ptr; //sub 2 because IRET - if (tempi->ic_cnt+i>=IC_BODY_SIZE) { - if (!tempi->ic_ext_body) { - tempi->ic_ext_body=MAlloc(256); - MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); - } - MemCpy(&tempi->ic_ext_body[tempi->ic_cnt],ptr,i); - } else - MemCpy(&tempi->ic_body[tempi->ic_cnt],ptr,i); - tempi->ic_cnt+=i; -} - -extern void IcMov(IntermediateCode *tempi,U8 t1,U8 r1,I8 d1,U8 t2,U8 r2,I8 d2,I8 ip); - -U8 IcModr(U8 r,U8 t2,U8 r2,I8 d2) -{ - //result.u[0] is type 0=[REG],1=disp8[REG],2=disp32[REG],3=REG,4=RIP_REL - //result.u[1] is REX - //result.u[2] is ModR - U8 result=0; - if (t2&IT_MASK7) { - result.u1[1]+=4; - r&=7; - } - if (t2&TY_MASK==TY_RIP_DISP32) { - result.u1[2]=0x05+r<<3; - result.u1[0]=4; - if (result.u1[1]==0x40 && - (t2&IT_MASK>=IT_I2 || - r<4)) - result.u1[1]=0; - } else { - if (r2>7) { - result.u1[1]++; - r2&=7; - } - if (t2&TY_MASK==TY_REG) { - result.u1[2]=0xC0+r<<3+r2; - result.u1[0]=3; - if (result.u1[1]==0x40 && - (t2&IT_MASK>=IT_I2 || - (r<4 && r2<4))) - result.u1[1]=0; - } else if (t2&TY_MASK==TY_DISP) { - if (!d2) { - result.u1[2]=r<<3+r2; - result.u1[0]=0; - } else if (MIN_I1<=d2<=MAX_I1) { - result.u1[2]=0x40+r<<3+r2; - result.u1[0]=1; - } else { - result.u1[2]=0x80+r<<3+r2; - result.u1[0]=2; - } - if (result.u1[1]==0x40 && - (t2&IT_MASK>=IT_I2 || - r<4)) - result.u1[1]=0; - } - } - return result; -} - -#define SLASH_OP_INC 0xFFFE00 -#define SLASH_OP_DEC 0xFFFE01 -#define SLASH_OP_NOT 0xF7F602 -#define SLASH_OP_NEG 0xF7F603 -#define SLASH_OP_MUL 0xF7F604 -#define SLASH_OP_MOV 0x898800 - -void IcSlashOp(IntermediateCode *tempi,U8 t1,U8 r1,I8 d1,U8 op,I8 ip) -{ - I8 i=IcModr(op.u1[0],t1,r1,d1); - switch (t1&IT_MASK) { - case IT_I1: - case IT_U1: - IcRex(tempi,i.u1[1]); - IcU2(tempi,i.u1[2]<<8+op.u1[1]); - break; - case IT_I2: - case IT_U2: - Ic66Rex(tempi,i.u1[1]); - IcU2(tempi,i.u1[2]<<8+op.u1[2]); - break; - default: - IcRex(tempi,i.u1[1]); - IcU2(tempi,i.u1[2]<<8+op.u1[2]); - } - if (i.u1[0]==1) - IcU1(tempi,d1); - else if (i.u1[0]==2) - IcU4(tempi,d1); - else if (i.u1[0]==4) { - IcU4(tempi,d1-(ip+tempi->ic_cnt+4)); - tempi->ic_flags&=~ICF_CODE_FINAL; - } -} - -void IcPush(IntermediateCode *tempi,U8 t1,U8 r1,I8 d1,I8 ip) -{ - U8 i; - IntermediateCode *tempi_last=tempi-sizeof(IntermediateCode); - switch (t1>>4) { - case TY_REG>>4: - if (t1&IT_MASK7) - IcU2(tempi,0x5049+(r1&7)<<8); - else - IcU2(tempi,0x5048+r1<<8); - } - break; - case TY_IMM>>4: - if (MIN_I1<=d1<=MAX_I1) - IcU3(tempi,0x6A48+d1<<16); - else if (MIN_I4<=d1<=MAX_I4) { - IcU2(tempi,0x6848); - IcU4(tempi,d1); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,t1,r1,d1,ip); - IcU2(tempi,0x5048+CREG_RBX<<8); - } - break; - case TY_DISP>>4: - i=0x48; - switch (t1&IT_MASK) { - case IT_I8: - case IT_U8: - case IT_DOUBLE: - if (r1>7) { - i++; - r1&=7; - } - if (!d1) - IcU3(tempi,0x30FF00+r1<<16+i); - else if (MIN_I1<=d1<=MAX_I1) { - IcU3(tempi,0x70FF00+r1<<16+i); - IcU1(tempi,d1); - } else { - IcU3(tempi,0xB0FF00+r1<<16+i); - IcU4(tempi,d1); - } - break; - default: - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,t1,r1,d1,ip); - IcU2(tempi,0x5048+CREG_RBX<<8); - } - break; - case TY_RIP_DISP32>>4: - switch (t1&IT_MASK) { - case IT_I8: - case IT_U8: - case IT_DOUBLE: - IcU3(tempi,0x35FF48); - IcU4(tempi,d1-(ip+tempi->ic_cnt+4)); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - default: - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,t1,r1,d1,ip); - IcU2(tempi,0x5048+CREG_RBX<<8); - } - break; - default: - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,t1,r1,d1,ip); - IcU2(tempi,0x5048+CREG_RBX<<8); - break; - } -} - -void IcPushRegs(IntermediateCode *tempi,U8 mask) -{ - I8 i; - for (i=0;i7) - IcU2(tempi,0x5049+(i&7)<<8); - else - IcU2(tempi,0x5048+i<<8); - } - } -} - -void IcPop(IntermediateCode *tempi,U8 t1,U8 r1,I8 d1,I8 ip) -{ - switch (t1>>4) { - case TY_REG>>4: - if (r1>7) - IcU2(tempi,0x5849+(r1&7)<<8); - else - IcU2(tempi,0x5848+r1<<8); - break; - case TY_NULL>>4: - break; - default: - IcU2(tempi,0x5848+CREG_RBX<<8); - IcMov(tempi,t1,r1,d1,TY_REG+IT_I8,CREG_RBX,0,ip); - } -} - -void IcPopRegs(IntermediateCode *tempi,U8 mask) -{ - I8 i; - for (i=NUM_REGS-1;i>=0;i--) { - if (Bt(&mask,i)) { - if (i>7) - IcU2(tempi,0x5849+(i&7)<<8); - else - IcU2(tempi,0x5848+i<<8); - } - } -} - -void IcZero(IntermediateCode *tempi,U8 r) -{ - if (r>7) { - r&=7; - IcU3(tempi,0xC0334D+r<<16+r<<19); - } else - IcU2(tempi,0xC033+r<<8+r<<11); -} - -void IcOr(IntermediateCode *tempi,U8 r) -{ - U8 i=0xC00B48; //OR R,R - if (r>7) { - i+=5; - r&=7; - } - IcU3(tempi,i+r<<16+r<<19); -} - - -void IcMov(IntermediateCode *tempi,U8 t1,U8 r1,I8 d1,U8 t2,U8 r2,I8 d2,I8 ip) -{ - I8 i,last_cnt=tempi->ic_cnt; - BoolU4 copy_from_rbx; - switch (t1>>4) { - case TY_REG>>4: - if (t2&TY_MASK==TY_IMM) { - if (!d2) - IcZero(tempi,r1); - else if (d2>=0 && d2<=MAX_U1) { - IcZero(tempi,r1); - if (r1>7) - IcU3(tempi,d2<<16+(0xB0+r1&7)<<8+0x41); - else - IcU3(tempi,d2<<16+(0xB0+r1)<<8+0x40); - } else if (MIN_I1<=d2<=MAX_I1) { - if (r1>7) { - r1&=7; - IcU3(tempi,d2<<16+(0xB0+r1)<<8+0x41); - IcU4(tempi,0xC0BE0F4D+r1<<24+r1<<27); - } else { - IcU3(tempi,d2<<16+(0xB0+r1)<<8+0x40); - IcU4(tempi,0xC0BE0F48+r1<<24+r1<<27); - } - } else if (MIN_I4<=d2<=MAX_I4) { - if (r1>7) { - r1&=7; - IcU2(tempi,(0xB8+r1)<<8+0x41); - IcU4(tempi,d2); - IcU3(tempi,0xC0634D+r1<<16+r1<<19); - } else { - IcU2(tempi,(0xB8+r1)<<8+0x40); - IcU4(tempi,d2); - IcU3(tempi,0xC06348+r1<<16+r1<<19); - } - } else if (d2>=0 && d2<=MAX_I4) { - IcZero(tempi,r1); - if (r1>7) { - IcU2(tempi,(0xB8+r1&7)<<8+0x41); - IcU4(tempi,d2); - } else { - IcU2(tempi,(0xB8+r1)<<8+0x40); - IcU4(tempi,d2); - } - } else { - i=0xB848; - if (r1>7) { - i++; - r1&=7; - } - IcU2(tempi,i+r1<<8); - IcU8(tempi,d2); - } - } else if (t2&TY_MASK==TY_STK) - IcPop(tempi,t1,r1,d1,ip); - else { - if (r1==r2) { - if (t2&TY_MASK==TY_REG) - if (t2&IT_MASK>=IT_I8) - return; - else - if (GetOpt(OPTf_IGNORE_OVERFLOW)) - return; - } - if (t2&TY_MASK==TY_REG) { - if (GetOpt(OPTf_IGNORE_OVERFLOW)) - t2=TY_REG+IT_I8; - if (t1&TY_MASK==TY_REG) { - i=tempi->ic_cnt; - if (tempi->ic_last_cnt==i-3 && i>=3) { - if (tempi->ic_body[i-2]==0x8B) - if (tempi->ic_body[i-1]==0xC0+(r1&7)+(r2&7)<<3) - if (tempi->ic_body[i-3]==0x48+((r2>7)?4:0)+((r1>7)?1:0) ) - return; - } - } - } - i=IcModr(r1,t2,r2,d2); - if (t2&IT_MASK==IT_U4) { - if (r1!=r2) { - IcZero(tempi,r1); - copy_from_rbx=FALSE; - } else { - IcZero(tempi,CREG_RBX); - copy_from_rbx=TRUE; - i=IcModr(CREG_RBX,t2,r2,d2); - } - } else - i|=0x4800; - IcRex(tempi,i.u1[1]); - switch (t2&IT_MASK) { - case IT_I1: - IcU3(tempi,i.u1[2]<<16+0xBE0F); - break; - case IT_I2: - IcU3(tempi,i.u1[2]<<16+0xBF0F); - break; - case IT_I4: - IcU2(tempi,i.u1[2]<<8+0x63); - break; - - case IT_U1: - IcU3(tempi,i.u1[2]<<16+0xB60F); - break; - case IT_U2: - IcU3(tempi,i.u1[2]<<16+0xB70F); - break; - case IT_U4: - IcU2(tempi,i.u1[2]<<8+0x8B); - if (i.u1[0]==1) - IcU1(tempi,d2); - else if (i.u1[0]==2) - IcU4(tempi,d2); - else if (i.u1[0]==4) { - IcU4(tempi,d2-(ip+tempi->ic_cnt+4)); - tempi->ic_flags&=~ICF_CODE_FINAL; - } - if (copy_from_rbx) { - if (r1>7) - IcU3(tempi,0xC38B4C+(r1&7)<<19); - else - IcU3(tempi,0xC38B48+r1<<19); - } - i=0; // no further disp - break; - default: - IcU2(tempi,i.u1[2]<<8+0x8B); - break; - } - if (i.u1[0]==1) - IcU1(tempi,d2); - else if (i.u1[0]==2) - IcU4(tempi,d2); - else if (i.u1[0]==4) { - IcU4(tempi,d2-(ip+tempi->ic_cnt+4)); - tempi->ic_flags&=~ICF_CODE_FINAL; - } - } - break; - case TY_STK>>4: - if (t1&IT_MASK>4: - case TY_RIP_DISP32>>4: - if (t2&TY_MASK==TY_IMM && - (t1&IT_MASKic_cnt+4); - switch (t1&IT_MASK) { - case IT_I1: - case IT_U1: - i--; - break; - case IT_I2: - case IT_U2: - i-=2; - break; - default: - i-=4; - } - IcU4(tempi,i); - tempi->ic_flags&=~ICF_CODE_FINAL; - } - switch (t1&IT_MASK) { - case IT_I1: - case IT_U1: - IcU1(tempi,d2); - break; - case IT_I2: - case IT_U2: - IcU2(tempi,d2); - break; - default: - IcU4(tempi,d2); - break; - } - } else { - if (t2&TY_MASK==TY_REG) - IcSlashOp(tempi,t1,r1,d1,r2+SLASH_OP_MOV,ip); - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,t2,r2,d2,ip); - IcMov(tempi,t1,r1,d1,TY_REG+IT_I8,CREG_RBX,0,ip); - } - } - break; - } - tempi->ic_last_cnt=last_cnt; -} - -void IcLea(IntermediateCode *tempi,U8 t1,U8 r1,I8 d1,U8 t2,U8 r2,I8 d2,I8 ip) -{ - I8 i; - if (t1&TY_MASK==TY_REG) { - i=IcModr(r1,t2,r2,d2); - i.u1[1]|=0x48; - IcU3(tempi,i.u1[2]<<16+0x8D00+i.u1[1]); - if (i.u1[0]==1) - IcU1(tempi,d2); - else if (i.u1[0]==2) - IcU4(tempi,d2); - else if (i.u1[0]==4) { - IcU4(tempi,d2-(ip+tempi->ic_cnt+4)); - tempi->ic_flags&=~ICF_CODE_FINAL; - } - } else { - IcLea(tempi,TY_REG+IT_I8,CREG_RCX,0,t2,r2,d2,ip); - IcMov(tempi,t1,r1,d1,TY_REG+IT_I8,CREG_RCX,0,ip); - } -} - -void IcDeref(IntermediateCode *tempi,I8 ip) -{ - I8 t; - t=tempi->r.type&IT_MASK; - if (t>tempi->p1.ptype) - t=tempi->p1.ptype; - - if (tempi->p1.type&TY_MASK==TY_REG) - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_DISP+t,tempi->p1.reg,tempi->p1.disp,ip); - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_DISP+t,CREG_RCX,0,ip); - } -} - -void IcAddEct(IntermediateCode *tempi,U8 t1,U8 r1,I8 d1, - U8 t2,U8 r2,I8 d2,U8 t3,U8 r3,I8 d3,U8 op,I8 ip) -{ - I8 i=0x48; - if (t2&TY_MASK==TY_DISP && - t2&IT_MASK>=IT_I8 && - r2!=CREG_RAX) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,t3,r3,d3,ip); - if (r2>7) { - i++; - r2&=7; - } - if (!d2) { - IcU3(tempi,0x000000+i+r2<<16+op<<8); - } else if (MIN_I1<=d2<=MAX_I1) { - IcU3(tempi,0x400000+i+r2<<16+op<<8); - IcU1(tempi,d2); - } else { - IcU3(tempi,0x800000+i+r2<<16+op<<8); - IcU4(tempi,d2); - } - } else { - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t2,r2,d2,ip); - r2=CREG_RCX; - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,t3,r3,d3,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,t3,r3,d3,ip); - if (t2&TY_MASK!=TY_REG || t2&IT_MASK7) { - i++; - r2&=7; - } - IcU3(tempi,0xC00000+i+r2<<16+op<<8); - } - IcMov(tempi,t1,r1,d1,TY_REG+IT_I8,CREG_RAX,0,ip); -} - -void IcAddConst(IntermediateCode *tempi,U8 t1,U8 r1,I8 d1, - U8 t2,U8 r2,I8 d2,I8 disp,U8 op,I8 ip) -{ - I8 i,r; - if (op.u1[0]==0x2B) { - op=0x0003; - disp=-disp; - } - if (t1&TY_MASK==TY_REG) { - if (t2&TY_MASK!=TY_REG) { - IcMov(tempi,t1,r1,d1,t2,r2,d2,ip); - t2=t1; - r2=r1; - d2=d1; - } - if (r1==r2) { - if (r1>7) - i=0x49; - else - i=0x48; - if (!disp && - (op.u1[0]==0x03||op.u1[0]==0x2B|| - op.u1[0]==0x33||op.u1[0]==0x0B)) - return; - else if (disp==1 && op.u1[0]==0x03) { - IcU3(tempi,0xC0FF00+op.u1[1]<<19+i+(r1&7)<<16); - return; - } else if (disp==-1 && op.u1[0]==0x03) { - IcU3(tempi,0xC8FF00+i+(r1&7)<<16); - return; - } else if (MIN_I1<=disp<=MAX_I1) { - IcU3(tempi,0xC08300+op.u1[1]<<19+i+(r1&7)<<16); - IcU1(tempi,disp); - return; - } else if (MIN_I4<=disp<=MAX_I4) { - IcU3(tempi,0xC08100+op.u1[1]<<19+i+(r1&7)<<16); - IcU4(tempi,disp); - return; - } - } - if (op.u1[0]==0x03 && MIN_I4<=disp<=MAX_I4 && - !Bt(&non_ptr_vars_mask,r2)) { - i=IcModr(r1,TY_DISP+IT_I8,r2,disp); - i.u1[1]|=0x48; - IcU3(tempi,i.u1[2]<<16+0x8D00+i.u1[1]); - if (i.u1[0]==1) - IcU1(tempi,disp); - else if (i.u1[0]==2) - IcU4(tempi,disp); - else if (i.u1[0]==4) { - IcU4(tempi,disp-(ip+tempi->ic_cnt+4)); - tempi->ic_flags&=~ICF_CODE_FINAL; - } - return; - } - } - switch (t1>>4) { - case TY_REG>>4: - case TY_DISP>>4: - case TY_RIP_DISP32>>4: - if (t1!=t2 || r1!=r2 || d1!=d2) { - IcMov(tempi,t1,r1,d1,t2,r2,d2,ip); - t2=t1; - r2=r1; - d2=d1; - } - - if (!disp && - (op.u1[0]==0x03||op.u1[0]==0x2B|| - op.u1[0]==0x33||op.u1[0]==0x0B)) - return; - r=op.u1[1]; - if (op.u1[0]==0x03 && disp==-1) - r=1; - - if (op.u1[0]==0x03 && (disp==1 || disp==-1)) { - i=IcModr(r,t1,r1,d1); - switch (t1&IT_MASK) { - case IT_I1: - case IT_U1: - IcRex(tempi,i.u1[1]); - IcU2(tempi,i.u1[2]<<8+0xFE); - break; - case IT_I2: - case IT_U2: - Ic66Rex(tempi,i.u1[1]); - IcU2(tempi,i.u1[2]<<8+0xFF); - break; - default: - IcRex(tempi,i.u1[1]); - IcU2(tempi,i.u1[2]<<8+0xFF); - break; - } - if (i.u1[0]==1) - IcU1(tempi,d1); - else if (i.u1[0]==2) - IcU4(tempi,d1); - else if (i.u1[0]==4) { - IcU4(tempi,d1-(ip+tempi->ic_cnt+4)); - tempi->ic_flags&=~ICF_CODE_FINAL; - } - return; - } - if (MIN_I1<=disp<=MAX_I1 || - t1&IT_MASK==IT_I1 || - t1&IT_MASK==IT_U1) { - i=IcModr(r,t1,r1,d1); - switch (t1&IT_MASK) { - case IT_I1: - case IT_U1: - IcRex(tempi,i.u1[1]); - IcU2(tempi,i.u1[2]<<8+0x80); - break; - case IT_I1: - case IT_U1: - Ic66Rex(tempi,i.u1[1]); - IcU2(tempi,i.u1[2]<<8+0x83); - break; - default: - IcRex(tempi,i.u1[1]); - IcU2(tempi,i.u1[2]<<8+0x83); - break; - } - if (i.u1[0]==1) - IcU1(tempi,d1); - else if (i.u1[0]==2) - IcU4(tempi,d1); - else if (i.u1[0]==4) { - IcU4(tempi,d1-(ip+tempi->ic_cnt+5)); - tempi->ic_flags&=~ICF_CODE_FINAL; - } - IcU1(tempi,disp); - return; - } - if (MIN_I4<=disp<=MAX_I4 || - t1&IT_MASKic_cnt+6)); - else - IcU4(tempi,d1-(ip+tempi->ic_cnt+8)); - tempi->ic_flags&=~ICF_CODE_FINAL; - } - if (t1&IT_MASK==IT_U2 || - t1&IT_MASK==IT_I2) - IcU2(tempi,disp); - else - IcU4(tempi,disp); - return; - } - break; - case TY_STK>>4: - IcAddConst(tempi,TY_REG+IT_I8,CREG_RAX,0,t2,r2,d2,disp,op,ip); - IcPushRegs(tempi,1<=IT_I8) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t2,r2,d2,ip); - if (r3>7) { - i++; - r3&=7; - } - if (!d3) - IcU3(tempi,0x080000+i+r3<<16+op<<8); - else if (MIN_I1<=d3<=MAX_I1) { - IcU3(tempi,0x480000+i+r3<<16+op<<8); - IcU1(tempi,d3); - } else { - IcU3(tempi,0x880000+i+r3<<16+op<<8); - IcU4(tempi,d3); - } - } else { - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t2,r2,d2,ip); - if (t3&TY_MASK!=TY_REG || t3&IT_MASK7) { - i++; - r3&=7; - } - IcU3(tempi,0xC80000+i+r3<<16+op<<8); - } - IcMov(tempi,t1,r1,d1,TY_REG+IT_I8,CREG_RCX,0,ip); -} - -void IcMul(IntermediateCode *tempi,I8 ip) -{ - I8 i,r2,r=CREG_RAX,j; - IcParam *p1,*p2; - if (tempi->p1.type&TY_MASK==TY_IMM) { - p1=&tempi->p2; - p2=&tempi->p1; - tempi->ic_flags|=ICF_P1_FIRST; - } else { - p1=&tempi->p1; - p2=&tempi->p2; - } - i=p2->disp; - if (!(tempi->ic_class->sub_type&1) && - p2->type&TY_MASK==TY_IMM && MIN_I4<=i<=MAX_I4) { - if (tempi->r.type==TY_REG+IT_I8) { - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,p1->type,p1->reg,p1->disp,ip); - r=tempi->r.reg; - } else - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,p1->type,p1->reg,p1->disp,ip); - if (r>7) - j=0xC0004D; - else - j=0xC00048; - if (MIN_I1<=i<=MAX_I1) - IcU4(tempi,i<<24+0x6B00+j+(r&7)<<16+(r&7)<<19); - else { - IcU3(tempi,0x6900+j+(r&7)<<16+(r&7)<<19); - IcU4(tempi,i); - } - } else { - if (tempi->ic_class->sub_type&1) - i=0xE0F748; - else - i=0xE8F748; - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,p1->type,p1->reg,p1->disp,ip); - r2=CREG_RCX; - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,p2->type,p2->reg,p2->disp,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,p2->type,p2->reg,p2->disp,ip); - if (p1->type&TY_MASK!=TY_REG || - p1->type&IT_MASKtype,p1->reg,p1->disp,ip); - r2=CREG_RCX; - } else - r2=p1->reg; - } - if (r2>7) { - i++; - r2&=7; - } - IcU3(tempi,i+r2<<16); - } - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I8,r,0,ip); -} - -void IcMulEqual(IntermediateCode *tempi,I8 ip) -{ - I8 i=tempi->p2.disp,r=CREG_RAX,j; - if (!(tempi->ic_class->sub_type&1) && - tempi->p2.type&TY_MASK==TY_IMM && MIN_I4<=i<=MAX_I4) { - if (tempi->ic_flags & ICF_NOT_ADDRESS) { - if (tempi->p1.type==TY_REG+IT_I8) - r=tempi->p1.reg; - else - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); - if (r>7) - j=0xC0004D; - else - j=0xC00048; - if (MIN_I1<=i<=MAX_I1) - IcU4(tempi,i<<24+0x6B00+j+(r&7)<<16+(r&7)<<19); - else { - IcU3(tempi,0x6900+j+(r&7)<<16+(r&7)<<19); - IcU4(tempi,i); - } - IcMov(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, - TY_REG+IT_I8,r,0,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,TY_DISP+tempi->p1.ptype,CREG_RCX,0,ip); - r=CREG_RBX; - if (MIN_I1<=i<=MAX_I1) - IcU4(tempi,i<<24+0xDB6B48); - else { - IcU3(tempi,0xDB6948); - IcU4(tempi,i); - } - IcMov(tempi,TY_DISP+tempi->p1.ptype,CREG_RCX,0,TY_REG+IT_I8,CREG_RBX,0,ip); - } - } else { - if (tempi->ic_class->sub_type&1) - i=0xE3F748; - else - i=0xEBF748; - if (tempi->ic_flags & ICF_NOT_ADDRESS) { - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); - } - IcU3(tempi,i); - IcMov(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, - TY_REG+IT_I8,CREG_RAX,0,ip); - } else { - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - } - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,TY_DISP+tempi->p1.ptype,CREG_RCX,0,ip); - IcU3(tempi,i); - IcMov(tempi,TY_DISP+tempi->p1.ptype,CREG_RCX,0,TY_REG+IT_I8,CREG_RAX,0,ip); - } - } - if (tempi->r.type&TY_MASK) - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I8,r,0,ip); -} - - -void IcDiv(IntermediateCode *tempi,I8 ip) -{ - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - } - if (tempi->ic_class->sub_type&1) { - IcZero(tempi,CREG_RDX); - IcU3(tempi,0xF1F748); - } else { - IcU2(tempi,0x9948); - IcU3(tempi,0xF9F748); - } - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I8,CREG_RAX,0,ip); -} - -void IcDivEqual(IntermediateCode *tempi,BoolU4 is_mod,I8 ip) -{ - if (tempi->ic_flags & ICF_NOT_ADDRESS) { - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); - } - if (tempi->ic_class->sub_type&1) { - IcZero(tempi,CREG_RDX); - IcU3(tempi,0xF1F748); - } else { - IcU2(tempi,0x9948); - IcU3(tempi,0xF9F748); - } - if (is_mod) - IcMov(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, - TY_REG+IT_I8,CREG_RDX,0,ip); - else - IcMov(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, - TY_REG+IT_I8,CREG_RAX,0,ip); - } else { - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - IcU3(tempi,0xD98748); //xchg bx,cx - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - } - //dangerous might trash RBX in Mov, but it doesn't - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,TY_DISP+tempi->p1.ptype,CREG_RBX,0,ip); - if (tempi->ic_class->sub_type&1) { - IcZero(tempi,CREG_RDX); - IcU3(tempi,0xF1F748); - } else { - IcU2(tempi,0x9948); - IcU3(tempi,0xF9F748); - } - if (is_mod) - IcMov(tempi,TY_DISP+tempi->p1.ptype,CREG_RBX,0,TY_REG+IT_I8,CREG_RDX,0,ip); - else - IcMov(tempi,TY_DISP+tempi->p1.ptype,CREG_RBX,0,TY_REG+IT_I8,CREG_RAX,0,ip); - } - if (tempi->r.type&TY_MASK) { - if (is_mod) - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I8,CREG_RDX,0,ip); - else - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I8,CREG_RAX,0,ip); - } -} - -void IcMod(IntermediateCode *tempi,I8 ip) -{ - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - } - if (tempi->ic_class->sub_type&1) { - IcZero(tempi,CREG_RDX); - IcU3(tempi,0xF1F748); - } else { - IcU2(tempi,0x9948); - IcU3(tempi,0xF9F748); - } - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I8,CREG_RDX,0,ip); -} - -void IcAddSubEctEqual(IntermediateCode *tempi,U8 ptype,U8 t1,U8 r1,I8 d1, - U8 t2,U8 r2,I8 d2,U8 t3,U8 r3,I8 d3,U8 op,I8 ip) -{ - BoolU4 done; - I8 result_reg,i; - if (tempi->ic_flags & ICF_NOT_ADDRESS) { - if (t3&TY_MASK==TY_IMM) { - IcAddConst(tempi, - t2,r2,d2,t2,r2,d2,d3,op,ip); - if (t1&TY_MASK) - IcMov(tempi,t1,r1,d1,t2,r2,d2,ip); - return; - } else { - done=FALSE; - if (ptype>=IT_I8 && t3&IT_MASK>=IT_I8) { - if (t3&TY_MASK==TY_REG || - t3&TY_MASK==TY_DISP || - t3&TY_MASK==TY_RIP_DISP32) { - if (t2&TY_MASK==TY_REG) - result_reg=r2; - else { - result_reg=CREG_RCX; - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t2&TY_MASK+ptype,r2,d2,ip); - } - i=IcModr(result_reg,t3&TY_MASK+ptype,r3,d3); - IcRex(tempi,i.u1[1]); - IcU2(tempi,i.u1[2]<<8+op.u1[0]); - if (i.u1[0]==1) - IcU1(tempi,d3); - else if (i.u1[0]==2) - IcU4(tempi,d3); - else if (i.u1[0]==4) { - IcU4(tempi,d3-(ip+tempi->ic_cnt+4)); - tempi->ic_flags&=~ICF_CODE_FINAL; - } - IcMov(tempi,t2&TY_MASK+ptype,r2,d2,TY_REG+IT_I8,result_reg,0,ip); - done=TRUE; - } - } - if (!done) { - if (tempi->ic_flags & ICF_P1_FIRST) { - if (t2&TY_MASK==TY_REG && r2!=CREG_RAX) { - result_reg=r2; - if (!GetOpt(OPTf_IGNORE_OVERFLOW)) - IcMov(tempi,TY_REG+IT_I8,result_reg,0, - TY_REG+ptype,result_reg,0,ip); - } else { - result_reg=CREG_RCX; - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t2&TY_MASK+ptype,r2,d2,ip); - } - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,t3,r3,d3,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,t3,r3,d3,ip); - if (t2&TY_MASK==TY_REG && r2!=CREG_RAX) { - result_reg=r2; - if (!GetOpt(OPTf_IGNORE_OVERFLOW)) - IcMov(tempi,TY_REG+IT_I8,result_reg,0, - TY_REG+ptype,result_reg,0,ip); - } else { - result_reg=CREG_RCX; - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t2&TY_MASK+ptype,r2,d2,ip); - } - } - if (result_reg>7) - IcU1(tempi,0x4C); - else - IcU1(tempi,0x48); - IcU2(tempi,0xC000+op.u1[0]+(result_reg&7)<<11); - IcMov(tempi,t2&TY_MASK+ptype,r2,d2,TY_REG+IT_I8,result_reg,0,ip); - } - } - } else { - done=FALSE; - if (t3&TY_MASK==TY_IMM && op.u1[2]) { - if (op.u1[2]==0x24) {//and - i=~d3; - if (!i.u4[1]) { - if (tempi->ic_flags&ICF_NO_DEPEND_RESULT && - t2&TY_MASK==TY_REG && 0>d3>=MIN_I1) { - IcSlashOp(tempi,TY_DISP+ptype,r2,0,0x838000+op.u1[4],ip); - IcU1(tempi,d3); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t2,r2,d2,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,TY_DISP+ptype,CREG_RCX,0,ip); - result_reg=CREG_RAX; - if (i.u2[1]) { - IcU2(tempi,op.u1[3]<<8+0x40); - IcU4(tempi,d3); - } else if (i.u1[1]) { - IcU3(tempi,op.u1[3]<<16+0x4066); - IcU2(tempi,d3); - } else { - IcU2(tempi,op.u1[2]<<8+0x40); - IcU1(tempi,d3); - } - IcMov(tempi,TY_DISP+ptype,CREG_RCX,0,TY_REG+IT_I8,result_reg,0,ip); - } - done=TRUE; - } - } else if (!d3.u4[1]) { //xor or - if (tempi->ic_flags&ICF_NO_DEPEND_RESULT && - t2&TY_MASK==TY_REG && d3><(U8)<=MAX_I1) { - IcSlashOp(tempi,TY_DISP+ptype,r2,0,0x838000+op.u1[4],ip); - IcU1(tempi,d3); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t2,r2,d2,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,TY_DISP+ptype,CREG_RCX,0,ip); - result_reg=CREG_RAX; - if (d3.u2[1]) { - IcU2(tempi,op.u1[3]<<8+0x40); - IcU4(tempi,d3); - } else if (d3.u1[1]) { - IcU3(tempi,op.u1[3]<<16+0x4066); - IcU2(tempi,d3); - } else { - IcU2(tempi,op.u1[2]<<8+0x40); - IcU1(tempi,d3); - } - IcMov(tempi,TY_DISP+ptype,CREG_RCX,0,TY_REG+IT_I8,result_reg,0,ip); - } - done=TRUE; - } - - } - if (!done) { - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t2,r2,d2,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,t3,r3,d3,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,t3,r3,d3,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t2,r2,d2,ip); - } - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,TY_DISP+ptype,CREG_RCX,0,ip); - result_reg=CREG_RBX; - IcU1(tempi,0x48); - IcU2(tempi,0xC000+op.u1[0]+(result_reg&7)<<11); - IcMov(tempi,TY_DISP+ptype,CREG_RCX,0,TY_REG+IT_I8,result_reg,0,ip); - } - } - if (t1&TY_MASK) - IcMov(tempi,t1,r1,d1,TY_REG+IT_I8,result_reg,0,ip); -} - -void IcShift(IntermediateCode *tempi,U8 t1,U8 r1,I8 d1, - U8 t2,U8 r2,I8 d2,U8 t3,U8 r3,I8 d3,U8 us,U8 is,I8 ip) -{ - if (tempi->ic_class->sub_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) - is=us; - if (t3&TY_MASK==TY_IMM) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,t2,r2,d2,ip); - IcU3(tempi,0x00C148+is<<16); - IcU1(tempi,d3); - } else { - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,t2,r2,d2,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t3,r3,d3,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t3,r3,d3,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,t2,r2,d2,ip); - } - IcU3(tempi,0x00D348+is<<16); - } - IcMov(tempi,t1,r1,d1,TY_REG+IT_I8,CREG_RAX,0,ip); -} - -void IcShiftEqual(IntermediateCode *tempi,U8 ptype,U8 t1,U8 r1,I8 d1, - U8 t2,U8 r2,I8 d2,U8 t3,U8 r3,I8 d3,U8 us,U8 is,I8 ip) -{ - I8 result_reg; - if (tempi->ic_class->sub_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) - is=us; - if (tempi->ic_flags & ICF_NOT_ADDRESS) { - if (tempi->ic_flags & ICF_P1_FIRST) { - if (t2&TY_MASK==TY_REG) { - result_reg=r2; - if (!GetOpt(OPTf_IGNORE_OVERFLOW)) - IcMov(tempi,TY_REG+IT_I8,result_reg,0, - TY_REG+ptype,result_reg,0,ip); - } else { - result_reg=CREG_RAX; - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,t2&TY_MASK+ptype,r2,d2,ip); - } - if (t3&TY_MASK!=TY_IMM) - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t3,r3,d3,ip); - } else { - if (t3&TY_MASK!=TY_IMM) - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t3,r3,d3,ip); - if (t2&TY_MASK==TY_REG) { - result_reg=r2; - if (!GetOpt(OPTf_IGNORE_OVERFLOW)) - IcMov(tempi,TY_REG+IT_I8,result_reg,0, - TY_REG+ptype,result_reg,0,ip); - } else { - result_reg=CREG_RAX; - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,t2&TY_MASK+ptype,r2,d2,ip); - } - } - if (result_reg>7) - IcU1(tempi,0x49); - else - IcU1(tempi,0x48); - if (t3&TY_MASK==TY_IMM) { - IcU2(tempi,0x00C1+(is+result_reg&7)<<8); - IcU1(tempi,d3); - } else - IcU2(tempi,0x00D3+(is+result_reg&7)<<8); - IcMov(tempi,t2&TY_MASK+ptype,r2,d2,TY_REG+IT_I8,result_reg,0,ip); - } else { - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0,t2,r2,d2,ip); - if (t3&TY_MASK!=TY_IMM) - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t3,r3,d3,ip); - } else { - if (t3&TY_MASK!=TY_IMM) - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,t3,r3,d3,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0,t2,r2,d2,ip); - } - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,TY_DISP+ptype,CREG_RDX,0,ip); - result_reg=CREG_RAX; - IcU1(tempi,0x48); - if (t3&TY_MASK==TY_IMM) { - IcU2(tempi,0x00C1+(is+result_reg&7)<<8); - IcU1(tempi,d3); - } else - IcU2(tempi,0x00D3+(is+result_reg&7)<<8); - IcMov(tempi,TY_DISP+ptype,CREG_RDX,0,TY_REG+IT_I8,result_reg,0,ip); - } - if (t1&TY_MASK) - IcMov(tempi,t1,r1,d1,TY_REG+IT_I8,result_reg,0,ip); -} - -void IcUnaries(IntermediateCode *tempi,U8 op,I8 ip) -{ - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - IcSlashOp(tempi,TY_REG+IT_I8,CREG_RAX,0,op,ip); - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_I8,CREG_RAX,0,ip); -} - -void IcNot(IntermediateCode *tempi,I8 ip) -{ - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - IcZero(tempi,CREG_RAX); - IcOr(tempi,CREG_RBX); - IcU2(tempi,0x0375); - IcU3(tempi,0xC0FF48); - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_U8,CREG_RAX,0,ip); -} - -void IcAndAnd(IntermediateCode *tempi,I8 ip) -{ - I8 i=0x48,r2; - if (tempi->ic_flags & ICF_P1_FIRST) { - if (tempi->p1.type&TY_MASK!=TY_REG || - tempi->p1.type&IT_MASKp1.reg==CREG_RAX) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - r2=CREG_RDX; - } else - r2=tempi->p1.reg; - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - if (tempi->p1.type&TY_MASK!=TY_REG || - tempi->p1.type&IT_MASKp1.reg==CREG_RAX) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - r2=CREG_RDX; - } else - r2=tempi->p1.reg; - } - IcZero(tempi,CREG_RAX); - IcOr(tempi,r2); - IcU2(tempi,0x0874); - IcOr(tempi,CREG_RCX); - IcU2(tempi,0x0374); - IcU3(tempi,0xC0FF48); - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I8,CREG_RAX,0,ip); -} - -void IcOrOr(IntermediateCode *tempi,I8 ip) -{ - I8 i=0x48,r2; - if (tempi->ic_flags & ICF_P1_FIRST) { - if (tempi->p1.type&TY_MASK!=TY_REG || - tempi->p1.type&IT_MASKp1.reg==CREG_RAX) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - r2=CREG_RDX; - } else - r2=tempi->p1.reg; - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - if (tempi->p1.type&TY_MASK!=TY_REG || - tempi->p1.type&IT_MASKp1.reg==CREG_RAX) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - r2=CREG_RDX; - } else - r2=tempi->p1.reg; - } - - if (r2>7) { - i++; - r2&=7; - } - IcZero(tempi,CREG_RAX); - IcU3(tempi,0xC80B00+i+r2<<16); - IcU2(tempi,0x0374); - IcU3(tempi,0xC0FF48); - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I8,CREG_RAX,0,ip); -} - -void IcXorXor(IntermediateCode *tempi,I8 ip) -{ - I8 i=0x48,r2; - if (tempi->ic_flags & ICF_P1_FIRST) { - if (tempi->p1.type&TY_MASK!=TY_REG || - tempi->p1.type&IT_MASKp1.type,tempi->p1.reg,tempi->p1.disp,ip); - r2=CREG_RDX; - } else - r2=tempi->p1.reg; - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - if (tempi->p1.type&TY_MASK!=TY_REG || - tempi->p1.type&IT_MASKp1.type,tempi->p1.reg,tempi->p1.disp,ip); - r2=CREG_RDX; - } else - r2=tempi->p1.reg; - } - IcZero(tempi,CREG_RBX); - IcOr(tempi,r2); - IcU2(tempi,0x0374); - IcU3(tempi,0xC3FF48); - - IcZero(tempi,CREG_RAX); - IcOr(tempi,CREG_RCX); - IcU2(tempi,0x0374); - IcU3(tempi,0xC0FF48); - - IcU3(tempi,0xC33348); - - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I8,CREG_RAX,0,ip); -} - -void IcColon(IntermediateCode *tempi,I8 ip) -{ - I8 i=0x48,r2; - if (tempi->p1.type&TY_MASK==TY_REG && - tempi->p1.reg==CREG_RAX) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - r2=CREG_RDX; - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - } else if (tempi->p2.type&TY_MASK==TY_REG && - tempi->p2.reg==CREG_RAX) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip); - if (tempi->p1.type&TY_MASK!=TY_REG || - tempi->p1.type&IT_MASKp1.type,tempi->p1.reg,tempi->p1.disp,ip); - r2=CREG_RDX; - } else - r2=tempi->p1.reg; - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - if (tempi->p1.type&TY_MASK!=TY_REG || - tempi->p1.type&IT_MASKp1.type,tempi->p1.reg,tempi->p1.disp,ip); - r2=CREG_RDX; - } else - r2=tempi->p1.reg; - } - IcOr(tempi,r2); - IcU2(tempi,0x0374); - IcU3(tempi,0xC18B48); - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I8,CREG_RAX,0,ip); -} - -void IcCmp(IntermediateCode *tempi,U8 us,U8 is,I8 ip) -{ - I8 r1,d1,r2,i=0x48,j=tempi->p2.disp; - if (tempi->p2.type&TY_MASK==TY_IMM && MIN_I4<=j<=MAX_I4) { - if (!(tempi->ic_flags&(ICF_POP_CMP|ICF_PUSH_CMP|ICF_RCX_CMP|ICF_RCX_CMP2)) && - tempi->p1.type&TY_MASK==TY_DISP && - tempi->p1.type&IT_MASK>=IT_I8 && tempi->p1.reg!=CREG_RAX) { - r1=tempi->p1.reg; - d1=tempi->p1.disp; - IcZero(tempi,CREG_RAX); - if (r1>7) - i++; - if (MIN_I1<=j<=MAX_I1) - i+=0x388300; - else - i+=0x388100; - if (!d1) { - IcU3(tempi,0x000000+i+(r1&7)<<16); - } else if (MIN_I1<=d1<=MAX_I1) { - IcU3(tempi,0x400000+i+(r1&7)<<16); - IcU1(tempi,d1); - } else { - IcU3(tempi,0x800000+i+(r1&7)<<16); - IcU4(tempi,d1); - } - if (MIN_I1<=j<=MAX_I1) - IcU1(tempi,j); - else - IcU4(tempi,j); - } else { - if (tempi->ic_flags & ICF_POP_CMP) { - IcPopRegs(tempi,1<p1.type&TY_MASK==TY_REG && - (tempi->p1.type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW)) && - tempi->p1.reg!=CREG_RAX) - r1=tempi->p1.reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - r1=CREG_RCX; - } - } - IcZero(tempi,CREG_RAX); - if (r1>7) - i++; - if (MIN_I1<=j<=MAX_I1) { - IcU3(tempi,0xF88300+i+(r1&7)<<16); - IcU1(tempi,j); - } else { - IcU3(tempi,0xF88100+i+(r1&7)<<16); - IcU4(tempi,j); - } - } - if (tempi->ic_flags & ICF_PUSH_CMP) - IcPush(tempi,TY_IMM+IT_I8,0,j,ip); - if (tempi->ic_class->sub_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) - is=us; - IcU2(tempi,0x300+is); - IcU3(tempi,0xC0FF48); - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_I8,CREG_RAX,0,ip); - } else { - if (tempi->ic_flags & ICF_P1_FIRST) { - if (tempi->ic_flags & ICF_POP_CMP) { - IcPopRegs(tempi,1<p1.type&TY_MASK==TY_REG && - (tempi->p1.type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW)) && - tempi->p1.reg!=CREG_RAX) - r1=tempi->p1.reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - r1=CREG_RCX; - } - } - if (tempi->p2.type&TY_MASK==TY_REG && - (tempi->p2.type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW)) && - tempi->p2.reg!=CREG_RAX) - r2=tempi->p2.reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - r2=CREG_RBX; - } - } else { - if (tempi->p2.type&TY_MASK==TY_REG && - (tempi->p2.type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW)) && - tempi->p2.reg!=CREG_RAX) - r2=tempi->p2.reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - r2=CREG_RCX; - } - if (tempi->ic_flags & ICF_POP_CMP) { - IcPopRegs(tempi,1<p1.type&TY_MASK==TY_REG && - (tempi->p1.type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW)) && - tempi->p1.reg!=CREG_RAX) - r1=tempi->p1.reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - r1=CREG_RBX; - } - } - } - IcZero(tempi,CREG_RAX); - if (r2>7) - i++; - if (r1>7) - i+=4; - if (tempi->ic_flags & ICF_PUSH_CMP) - IcPushRegs(tempi,1<ic_class->sub_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) - is=us; - IcU2(tempi,0x300+is); - IcU3(tempi,0xC0FF48); - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_I8,CREG_RAX,0,ip); - } -} - -void IcBitOps(IntermediateCode *tempi,U8 op,U8 op_imm,BoolU4 locked,I8 ip) -{ - IntermediateCode *tempi2=tempi+sizeof(IntermediateCode); - I8 r1=0,r2,i=0x48; - if (tempi->ic_flags & ICF_P1_FIRST) { - if (tempi->p1.type&TY_MASK==TY_REG && - (tempi->p1.type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW)) && - tempi->p1.reg!=CREG_RAX) - r1=tempi->p1.reg; - else if (tempi->p1.type&TY_MASK!=TY_IMM) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - r1=CREG_RCX; - } - if (tempi->p2.type&TY_MASK==TY_REG && - (tempi->p2.type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW)) && - tempi->p2.reg!=CREG_RAX) - r2=tempi->p2.reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - r2=CREG_RBX; - } - } else { - if (tempi->p2.type&TY_MASK==TY_REG && - (tempi->p2.type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW)) && - tempi->p2.reg!=CREG_RAX) - r2=tempi->p2.reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - r2=CREG_RCX; - } - if (tempi->p1.type&TY_MASK==TY_REG && - (tempi->p1.type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW)) && - tempi->p1.reg!=CREG_RAX) - r1=tempi->p1.reg; - else if (tempi->p1.type&TY_MASK!=TY_IMM) { - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - r1=CREG_RBX; - } - } - if (!(tempi2->ic_flags&ICF_NO_DEPEND_RESULT)) - IcZero(tempi,CREG_RAX); - if (r2>7) { - i++; - r2&=7; - } - if (r1>7) { - i+=4; - r1&=7; - } - if (locked) { - if (op!=0xA30F) - IcU1(tempi,0xF0); - } - IcU1(tempi,i); - if (tempi->p1.type&TY_MASK==TY_IMM) { - IcU3(tempi,0x000000+op_imm+r2<<16); - IcU1(tempi,tempi->p1.disp); - } else - IcU3(tempi,0x000000+op+r2<<16+r1<<19); - if (!(tempi2->ic_flags&ICF_NO_DEPEND_RESULT)) - IcU4(tempi,0x00D08348); -} - - -void IcPreempt(IntermediateCode *tempi,I8 ip) -{ - IntermediateCode *tempi2=tempi+sizeof(IntermediateCode); - if (tempi->p1.type&TY_MASK==TY_IMM) { - IcZero(tempi,CREG_RBX); - IcU4(tempi,0x1B8B4864); - if (!(tempi2->ic_flags&ICF_NO_DEPEND_RESULT)) - IcZero(tempi,CREG_RAX); - if (tempi->p1.disp) - IcU3(tempi,0x6BBA0F); - else - IcU3(tempi,0x73BA0F); - IcU2(tempi,TSS_TASK_FLAGS+TSSf_PREEMPT<<8); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - if (!(tempi2->ic_flags&ICF_NO_DEPEND_RESULT)) - IcZero(tempi,CREG_RAX); - IcZero(tempi,CREG_RBX); - IcU4(tempi,0x1B8B4864); - IcOr(tempi,CREG_RCX); - IcU2(tempi,0x0774); - IcU3(tempi,0x6BBA0F); - IcU2(tempi,TSS_TASK_FLAGS+TSSf_PREEMPT<<8); - IcU2(tempi,0x05EB); - IcU3(tempi,0x73BA0F); - IcU2(tempi,TSS_TASK_FLAGS+TSSf_PREEMPT<<8); - } - if (!(tempi2->ic_flags&ICF_NO_DEPEND_RESULT)) - IcU4(tempi,0x00D08348); -} - -void IcPreIncDec(IntermediateCode *tempi,U8 op,I8 ip) -{ - I8 r; - if (tempi->ic_flags & ICF_NOT_ADDRESS) { - IcSlashOp(tempi, - tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,op,ip); - if (tempi->r.type&TY_MASK) - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); - } else { - if (tempi->p1.type&TY_MASK==TY_REG) - r=tempi->p1.reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - r=CREG_RCX; - } - IcSlashOp(tempi, - TY_DISP+tempi->p1.ptype,r,0,op,ip); - if (tempi->r.type&TY_MASK) - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_DISP+tempi->p1.ptype,r,0,ip); - } -} - - -void IcPostIncDec(IntermediateCode *tempi,U8 op,I8 ip) -{ - I8 r; - if (tempi->ic_flags & ICF_NOT_ADDRESS) { - if (tempi->r.type&TY_MASK) { - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); - } - IcSlashOp(tempi, - tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,op,ip); - } else { - if (tempi->p1.type&TY_MASK==TY_REG && - !(tempi->r.type&TY_MASK==TY_REG && tempi->r.reg==tempi->p1.reg)) - r=tempi->p1.reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - r=CREG_RCX; - } - if (tempi->r.type&TY_MASK) { - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_DISP+tempi->p1.ptype,r,0,ip); - } - IcSlashOp(tempi, - TY_DISP+tempi->p1.ptype,r,0,op,ip); - } -} - -void IcCmpAndBranch(IntermediateCode *tempi,U8 ip, - U8 us,U8 is,U8 not_us,U8 not_is, - U1 *buf,I8 ip2) -{ - I8 r1,d1,r2,i=0x48,j; - BoolU4 short_jmp=FALSE,done; - CbMiscStruct *lb,*lb1; - IcParam *p1=&tempi->p1,*p2=&tempi->p2,*swap; - - if (tempi->ic_flags&ICF_RCX_CMP2) { - p1->type=TY_REG+IT_I8; - p1->reg=CREG_RCX; - p1->disp=0; - } - j=p1->disp; - if (p1->type&TY_MASK==TY_IMM && MIN_I4<=j<=MAX_I4) { - swap=p1; p1=p2; p2=swap; - us=not_us; - is=not_is; - } - if (tempi->ic_class->sub_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) - is=us; - - j=p2->disp; - if (p2->type&TY_MASK==TY_IMM && MIN_I4<=j<=MAX_I4) { - if (!(tempi->ic_flags&(ICF_POP_CMP|ICF_PUSH_CMP|ICF_RCX_CMP|ICF_RCX_CMP2)) && - p1->type&TY_MASK==TY_DISP && - p1->type&IT_MASK>=IT_I8) { - r1=p1->reg; - d1=p1->disp; - if (r1>7) { - i++; - r1&=7; - } - if (MIN_I1<=j<=MAX_I1) - i+=0x388300; - else - i+=0x388100; - if (!d1) { - IcU3(tempi,0x000000+i+r1<<16); - } else if (MIN_I1<=d1<=MAX_I1) { - IcU3(tempi,0x400000+i+r1<<16); - IcU1(tempi,d1); - } else { - IcU3(tempi,0x800000+i+r1<<16); - IcU4(tempi,d1); - } - if (MIN_I1<=j<=MAX_I1) - IcU1(tempi,j); - else - IcU4(tempi,j); - } else { - if (tempi->ic_flags&ICF_POP_CMP) { - IcPopRegs(tempi,1<type&TY_MASK==TY_REG && - (p1->type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW))) - r1=p1->reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,p1->type,p1->reg,p1->disp,ip2); - r1=CREG_RBX; - } - } - if (!j) { - if (is.u1[2]==0x7C) { - IcOr(tempi,r1); - is=0x78880F; - } else if (is.u1[2]==0x7D) { - IcOr(tempi,r1); - is=0x79890F; - } else if (is.u1[2]==0x74 || is.u1[2]==0x75) - IcOr(tempi,r1); - else { - if (r1>7) - i++; - IcU3(tempi,0xF88300+i+(r1&7)<<16); - IcU1(tempi,j); - } - } else { - if (r1>7) - i++; - if (MIN_I1<=j<=MAX_I1) { - IcU3(tempi,0xF88300+i+(r1&7)<<16); - IcU1(tempi,j); - } else { - IcU3(tempi,0xF88100+i+(r1&7)<<16); - IcU4(tempi,j); - } - } - } - if (tempi->ic_flags&ICF_PUSH_CMP) { - if (!swap) - IcPush(tempi,TY_IMM+IT_I8,0,j,ip2); - else - IcPush(tempi,TY_REG+IT_I8,r1,0,ip2); - } else if (tempi->ic_flags&ICF_RCX_CMP) { - if (!swap) - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,TY_IMM+IT_I8,0,j,ip2); - else - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,TY_REG+IT_I8,r1,0,ip2); - } - } else { - done=FALSE; - if (p1->type&IT_MASK>=IT_I8 && - p2->type&IT_MASK>=IT_I8 && - !(tempi->ic_flags&ICF_POP_CMP)) { - if (p1->type&TY_MASK==TY_REG && - !(tempi->ic_flags&(ICF_PUSH_CMP|ICF_RCX_CMP)) && - (p2->type&TY_MASK==TY_DISP || - p2->type&TY_MASK==TY_RIP_DISP32)) { - i=IcModr(p1->reg,p2->type,p2->reg,p2->disp); - IcRex(tempi,i.u1[1]); - IcU2(tempi,i.u1[2]<<8+0x3B); - if (i.u1[0]==1) - IcU1(tempi,p2->disp); - else if (i.u1[0]==2) - IcU4(tempi,p2->disp); - else if (i.u1[0]==4) { - IcU4(tempi,p2->disp-(ip2+tempi->ic_cnt+4)); - tempi->ic_flags&=~ICF_CODE_FINAL; - } - done=TRUE; - } else if (p2->type&TY_MASK==TY_REG && - (p1->type&TY_MASK==TY_REG || - p1->type&TY_MASK==TY_DISP || - p1->type&TY_MASK==TY_RIP_DISP32)) { - i=IcModr(p2->reg,p1->type,p1->reg,p1->disp); - IcRex(tempi,i.u1[1]); - IcU2(tempi,i.u1[2]<<8+0x39); - if (i.u1[0]==1) - IcU1(tempi,p1->disp); - else if (i.u1[0]==2) - IcU4(tempi,p1->disp); - else if (i.u1[0]==4) { - IcU4(tempi,p1->disp-(ip2+tempi->ic_cnt+4)); - tempi->ic_flags&=~ICF_CODE_FINAL; - } - if (tempi->ic_flags&ICF_PUSH_CMP) - IcPushRegs(tempi,1<reg); - else if (tempi->ic_flags&ICF_RCX_CMP) - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,TY_REG+IT_I8,p2->reg,0,ip2); - done=TRUE; - } - } - if (!done) { - if (tempi->ic_flags & ICF_P1_FIRST) { - if (tempi->ic_flags&ICF_POP_CMP) { - IcPopRegs(tempi,1<type&TY_MASK==TY_REG && - (p1->type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW))) - r1=p1->reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,p1->type,p1->reg,p1->disp,ip2); - r1=CREG_RAX; - } - } - if (p2->type&TY_MASK==TY_REG && - (p2->type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW))) - r2=p2->reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,p2->type,p2->reg,p2->disp,ip2); - r2=CREG_RCX; - } - } else { - if (p2->type&TY_MASK==TY_REG && - (p2->type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW))) - r2=p2->reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,p2->type,p2->reg,p2->disp,ip2); - r2=CREG_RAX; - } - if (tempi->ic_flags&ICF_POP_CMP) { - IcPopRegs(tempi,1<type&TY_MASK==TY_REG && - (p1->type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW))) - r1=p1->reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,p1->type,p1->reg,p1->disp,ip2); - r1=CREG_RCX; - } - } - } - if (r2>7) - i++; - if (r1>7) - i+=4; - IcU3(tempi,0xC03B00+i+(r2&7)<<16+(r1&7)<<19); - if (tempi->ic_flags&ICF_PUSH_CMP) - IcPushRegs(tempi,1<ic_flags&ICF_RCX_CMP) - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,TY_REG+IT_I8,r2,0,ip2); - } - } - ip+=tempi->ic_cnt; - lb=tempi->ic_data; - while (lb1=lb->forward) - lb=lb1; - if (lb->address!=INVALID_PTR) { - i=lb->address-ip; - if (lb->flags&CBMF_POP_CMP) - if(tempi->ic_flags&ICF_PUSH_CMP) - i+=4; - else - i+=8; - if (MIN_I1+2ic_flags & ICF_SHORT_JMP) ? TRUE:FALSE; - - if (short_jmp) { - tempi->ic_flags|=ICF_SHORT_JMP; - i=lb->address-(ip+2); - if (lb->flags&CBMF_POP_CMP) - if(tempi->ic_flags&ICF_PUSH_CMP) - i+=4; - else - i+=8; - IcU2(tempi,i<<8+is.u1[2]); - } else { - tempi->ic_flags&=~ICF_SHORT_JMP; - i=lb->address-(ip+6); - if (lb->flags&CBMF_POP_CMP) - if(tempi->ic_flags&ICF_PUSH_CMP) - i+=4; - else - i+=8; - IcU2(tempi,is.u2[0]); - IcU4(tempi,i); - } -} - -void IcTestAndBranch(IntermediateCode *tempi,U8 ip,U8 is,U1 *buf,I8 ip2) -{ - I8 i; - BoolU4 short_jmp=FALSE; - CbMiscStruct *lb,*lb1; - - if (tempi->p1.type&TY_MASK!=TY_REG) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcOr(tempi,CREG_RAX); - } else - IcOr(tempi,tempi->p1.reg); - ip+=tempi->ic_cnt; - - lb=tempi->ic_data; - while (lb1=lb->forward) - lb=lb1; - if (lb->address!=INVALID_PTR) { - i=lb->address-ip; - if (lb->flags&CBMF_POP_CMP) - i+=8; - if (MIN_I1+2ic_flags & ICF_SHORT_JMP) ? TRUE:FALSE; - if (short_jmp) { - tempi->ic_flags|=ICF_SHORT_JMP; - i=lb->address-(ip+2); - if (lb->flags&CBMF_POP_CMP) - i+=8; - IcU2(tempi,i<<8+is.u1[2]); - } else { - tempi->ic_flags&=~ICF_SHORT_JMP; - i=lb->address-(ip+6); - if (lb->flags&CBMF_POP_CMP) - i+=8; - IcU2(tempi,is.u2[0]); - IcU4(tempi,i); - } -} - -void IcAndBranch(IntermediateCode *tempi,U8 ip,U8 is,U1 *buf,I8 ip2) -{ - I8 i; - BoolU4 short_jmp=FALSE; - CbMiscStruct *lb,*lb1; - IcParam *p1,*p2; - if (tempi->p1.type&TY_MASK==TY_IMM) { - p1=&tempi->p2; - p2=&tempi->p1; - tempi->ic_flags|=ICF_P1_FIRST; - } else { - p1=&tempi->p1; - p2=&tempi->p2; - } - i=p2->disp; - if (p2->type&TY_MASK==TY_IMM && i>=0 && i<=MAX_U4) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,p1->type,p1->reg,p1->disp,ip2); - if (i<=MAX_U1) - IcU2(tempi,i<<8+0x24); - else if (i<=MAX_U2) - IcU4(tempi,i<<16+0x2566); - else { - IcU1(tempi,0x25); - IcU4(tempi,i); - } - } else { - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,p1->type,p1->reg,p1->disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,p2->type,p2->reg,p2->disp,ip2); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0,p2->type,p2->reg,p2->disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,p1->type,p1->reg,p1->disp,ip2); - } - IcU3(tempi,0xC12348); - } - ip+=tempi->ic_cnt; - - lb=tempi->ic_data; - while (lb1=lb->forward) - lb=lb1; - if (lb->address!=INVALID_PTR) { - i=lb->address-ip; - if (lb->flags&CBMF_POP_CMP) - i+=8; - if (MIN_I1+2ic_flags & ICF_SHORT_JMP) ? TRUE:FALSE; - if (short_jmp) { - tempi->ic_flags|=ICF_SHORT_JMP; - i=lb->address-(ip+2); - if (lb->flags&CBMF_POP_CMP) - i+=8; - IcU2(tempi,i<<8+is.u1[2]); - } else { - tempi->ic_flags&=~ICF_SHORT_JMP; - i=lb->address-(ip+6); - if (lb->flags&CBMF_POP_CMP) - i+=8; - IcU2(tempi,is.u2[0]); - IcU4(tempi,i); - } -} - -void IcAssign(IntermediateCode *tempi,I8 ip) -{ - if (tempi->ic_flags & ICF_NOT_ADDRESS) { - IcMov(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - if (tempi->r.type&TY_MASK) { - if (tempi->p1.type&TY_MASK==TY_REG) - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); - else - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - } - } else { - if (tempi->p1.type&TY_MASK==TY_REG) { - IcMov(tempi,TY_DISP+tempi->p1.ptype,tempi->p1.reg,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - if (tempi->r.type&TY_MASK) - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,TY_DISP+tempi->p1.ptype,CREG_RCX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - if (tempi->r.type&TY_MASK) - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - } - } -} - -void IcFOp1(IntermediateCode *tempi,U8 op,I8 ip) -{ - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - // IcU2(tempi,op<<8+0x00CD); - IcCopyIrq(tempi,op); - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_I8,CREG_RAX,0,ip); -} - -void IcFOp2(IntermediateCode *tempi,U8 op,I8 ip) -{ - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - } - // IcU2(tempi,op<<8+0x00CD); - IcCopyIrq(tempi,op); - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_I8,CREG_RAX,0,ip); -} - -void IcFCmp(IntermediateCode *tempi,U8 op,I8 ip) -{ - if (tempi->ic_flags & ICF_P1_FIRST) { - if (tempi->ic_flags&ICF_POP_CMP) - IcPopRegs(tempi,1<p1.type,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - if (tempi->ic_flags&ICF_POP_CMP) - IcPopRegs(tempi,1<p1.type,tempi->p1.reg,tempi->p1.disp,ip); - } - if (tempi->ic_flags&ICF_PUSH_CMP) - IcPushRegs(tempi,1<r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_I8,CREG_RAX,0,ip); -} - -void IcFOp2Equal(IntermediateCode *tempi,U8 op,I8 ip) -{ - if (tempi->ic_flags & ICF_NOT_ADDRESS) { - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); - } - // IcU2(tempi,op<<8+0x00CD); - IcCopyIrq(tempi,op); - IcMov(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, - TY_REG+IT_I8,CREG_RAX,0,ip); - if (tempi->r.type&TY_MASK) - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); - } else { - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - TY_DISP+tempi->p1.ptype,CREG_RCX,0,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - TY_DISP+tempi->p1.ptype,CREG_RCX,0,ip); - } - // IcU2(tempi,op<<8+0x00CD); - IcCopyIrq(tempi,op); - IcMov(tempi,TY_DISP+tempi->p1.ptype,CREG_RCX,0,TY_REG+IT_I8,CREG_RAX,0,ip); - if (tempi->r.type&TY_MASK) - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_I8,CREG_RAX,0,ip); - } -} - -void IcFCmpAndBranch(IntermediateCode *tempi,U8 ip,U8 op,U1 *buf,I8 ip2) -{ - I8 i; - BoolU4 short_jmp=FALSE; - CbMiscStruct *lb,*lb1; - if (tempi->ic_flags & ICF_P1_FIRST) { - if (tempi->ic_flags&ICF_POP_CMP) - IcPopRegs(tempi,1<p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - if (tempi->ic_flags&ICF_POP_CMP) - IcPopRegs(tempi,1<p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - } - if (tempi->ic_flags&ICF_PUSH_CMP) - IcPushRegs(tempi,1<ic_cnt; - lb=tempi->ic_data; - while (lb1=lb->forward) - lb=lb1; - if (lb->address!=INVALID_PTR) { - i=lb->address-ip; - if (lb->flags&CBMF_POP_CMP) - if(tempi->ic_flags&ICF_PUSH_CMP) - i+=4; - else - i+=8; - if (MIN_I1+2ic_flags & ICF_SHORT_JMP) ? TRUE:FALSE; - - if (short_jmp) { - tempi->ic_flags|=ICF_SHORT_JMP; - i=lb->address-(ip+2); - if (lb->flags&CBMF_POP_CMP) - if(tempi->ic_flags&ICF_PUSH_CMP) - i+=4; - else - i+=8; - IcU2(tempi,i<<8+0x75); - } else { - tempi->ic_flags&=~ICF_SHORT_JMP; - i=lb->address-(ip+6); - if (lb->flags&CBMF_POP_CMP) - if(tempi->ic_flags&ICF_PUSH_CMP) - i+=4; - else - i+=8; - IcU2(tempi,0x850F); - IcU4(tempi,i); - } -} - -void IcFPreIncDec(IntermediateCode *tempi,U8 op,I8 ip) -{ - if (tempi->ic_flags & ICF_NOT_ADDRESS) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type&TY_MASK+IT_I8,tempi->p1.reg,tempi->p1.disp,ip); - IcCopyIrq(tempi,op); - IcMov(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - TY_REG+IT_I8,CREG_RAX,0,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - TY_DISP+IT_I8,CREG_RCX,0,ip); - IcCopyIrq(tempi,op); - IcMov(tempi,TY_DISP+IT_I8,CREG_RCX,0, - TY_REG+IT_I8,CREG_RAX,0,ip); - } - if (tempi->r.type&TY_MASK) - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_I8,CREG_RAX,0,ip); -} - -void IcFPostIncDec(IntermediateCode *tempi,U8 op,I8 ip) -{ - if (tempi->ic_flags & ICF_NOT_ADDRESS) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type&TY_MASK+IT_I8,tempi->p1.reg,tempi->p1.disp,ip); - if (tempi->r.type&TY_MASK) - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - TY_REG+IT_I8,CREG_RAX,0,ip); - IcCopyIrq(tempi,op); - IcMov(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - TY_REG+IT_I8,CREG_RAX,0,ip); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - TY_DISP+IT_I8,CREG_RCX,0,ip); - if (tempi->r.type&TY_MASK) - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - TY_REG+IT_I8,CREG_RAX,0,ip); - IcCopyIrq(tempi,op); - IcMov(tempi,TY_DISP+IT_I8,CREG_RCX,0, - TY_REG+IT_I8,CREG_RAX,0,ip); - } - if (tempi->r.type&TY_MASK) - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_I8,CREG_RDX,0,ip); -} - -void IcBrBitOps(IntermediateCode *tempi,U8 ip,U8 op,U8 op_imm,U8 is,BoolU4 locked,U1 *buf,I8 ip2) -{ - I8 i=0x48,r1=0,r2; - BoolU4 short_jmp=FALSE; - CbMiscStruct *lb,*lb1; - - if (tempi->ic_flags & ICF_P1_FIRST) { - if (tempi->p1.type&TY_MASK==TY_REG && - (tempi->p1.type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW)) && - tempi->p1.reg!=CREG_RAX) - r1=tempi->p1.reg; - else if (tempi->p1.type&TY_MASK!=TY_IMM) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - r1=CREG_RCX; - } - if (tempi->p2.type&TY_MASK==TY_REG && - (tempi->p2.type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW)) && - tempi->p2.reg!=CREG_RAX) - r2=tempi->p2.reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - r2=CREG_RBX; - } - } else { - if (tempi->p2.type&TY_MASK==TY_REG && - (tempi->p2.type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW)) && - tempi->p2.reg!=CREG_RAX) - r2=tempi->p2.reg; - else { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - r2=CREG_RCX; - } - if (tempi->p1.type&TY_MASK==TY_REG && - (tempi->p1.type&IT_MASK>=IT_I8||GetOpt(OPTf_IGNORE_OVERFLOW)) && - tempi->p1.reg!=CREG_RAX) - r1=tempi->p1.reg; - else if (tempi->p1.type&TY_MASK!=TY_IMM) { - IcMov(tempi,TY_REG+IT_I8,CREG_RBX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - r1=CREG_RBX; - } - } - - if (r2>7) { - i++; - r2&=7; - } - if (r1>7) { - i+=4; - r1&=7; - } - if (locked) { - if (op!=0xA30F) - IcU1(tempi,0xF0); - } - IcU1(tempi,i); - if (tempi->p1.type&TY_MASK==TY_IMM) { - IcU3(tempi,0x000000+op_imm+r2<<16); - IcU1(tempi,tempi->p1.disp); - } else - IcU3(tempi,0x000000+op+r2<<16+r1<<19); - - ip+=tempi->ic_cnt; - lb=tempi->ic_data; - while (lb1=lb->forward) - lb=lb1; - if (lb->address!=INVALID_PTR) { - i=lb->address-ip; - if (lb->flags&CBMF_POP_CMP) - i+=8; - if (MIN_I1+2ic_flags & ICF_SHORT_JMP) ? TRUE:FALSE; - if (short_jmp) { - tempi->ic_flags|=ICF_SHORT_JMP; - i=lb->address-(ip+2); - if (lb->flags&CBMF_POP_CMP) - i+=8; - IcU2(tempi,i<<8+is.u1[2]); - } else { - tempi->ic_flags&=~ICF_SHORT_JMP; - i=lb->address-(ip+6); - if (lb->flags&CBMF_POP_CMP) - i+=8; - IcU2(tempi,is.u2[0]); - IcU4(tempi,i); - } -} - \ No newline at end of file diff --git a/LT/Compiler/CodeGen.CPZ b/LT/Compiler/CodeGen.CPZ deleted file mode 100644 index 46637d3..0000000 --- a/LT/Compiler/CodeGen.CPZ +++ /dev/null @@ -1,431 +0,0 @@ -void CbPutClass(ClassStruct *c) -{ - I8 i; - if (!c) return; - if (c->ptr_cnt>4) { - PrintFErr("put_class ptrcnt=%d\r\n",c->ptr_cnt); - while (TRUE) -//TODO: - SwapInNext; - } - for (i=0;iptr_cnt;i++) - PutChar('*'); - c-=sizeof(ClassStruct)*c->ptr_cnt; - if (c->str) - PutS(c->str); - else { - PrintFErr("put_class str=NULL\r\n"); - while (TRUE) -//TODO: - SwapInNext; - } - PutChar(CH_SPACE); -} - - -void CbPutIcParam(IcParam *p) -{ - if (p->ptype) - PrintF("%Z %Z %Z ", - p->type&IT_MASK,"ST_IT_TYPES", - p->ptype&IT_MASK,"ST_IT_TYPES", - p->type>>4,"ST_TY_TYPES"); - else - PrintF("%Z %Z ", - p->type&IT_MASK,"ST_IT_TYPES", - p->type>>4,"ST_TY_TYPES"); - switch (p->type>>4) { - case TY_IMM>>4: - PrintF("#%X",p->disp); - break; - case TY_REG>>4: - PrintF("%Z",p->reg,"ST_U8_REGS"); - break; - case TY_DISP>>4: - PrintF("%X[%Z]",p->disp,p->reg,"ST_U8_REGS"); - break; - case TY_RIP_DISP32>>4: - PrintF("[%X]",p->disp); - break; - } -} - -void CbPutIc(IntermediateCode *tempi) -{ - U8 opcode=tempi->ic_opcode; - if (opcode>=EC_END_EXP && opcode!=EC_NOP1) { - PrintF("%15ts %016X ", - SysTextSub(opcode,"ST_INTERMEDIATE_CODE")+4, - tempi->ic_data); - if (tempi->r.type&TY_MASK) { - CbPutIcParam(&tempi->r); - cout "<-"; - } - if (tempi->p1.type&TY_MASK) - CbPutIcParam(&tempi->p1); - cout ","; - if (tempi->p2.type&TY_MASK) - CbPutIcParam(&tempi->p2); - cout ","; - if (tempi->p3.type&TY_MASK) - CbPutIcParam(&tempi->p3); - cout " "; - CbPutClass(tempi->ic_class); - if (tempi->ic_flags & ICF_P3_TO_DOUBLE) - PutS("$$FG,LTBLUE$$p3d$$FG$$ "); - if (tempi->ic_flags & ICF_P3_TO_INT) - PutS("$$FG,GREEN$$p3i$$FG$$ "); - if (tempi->ic_flags & ICF_P2_TO_DOUBLE) - PutS("$$FG,LTBLUE$$p2d$$FG$$ "); - if (tempi->ic_flags & ICF_P2_TO_INT) - PutS("$$FG,GREEN$$p2i$$FG$$ "); - if (tempi->ic_flags & ICF_P1_TO_DOUBLE) - PutS("$$FG,LTBLUE$$p1d$$FG$$ "); - if (tempi->ic_flags & ICF_P1_TO_INT) - PutS("$$FG,GREEN$$p1i$$FG$$ "); - if (tempi->ic_flags & ICF_R_TO_DOUBLE) - PutS("$$FG,LTBLUE$$rd$$FG$$ "); - if (tempi->ic_flags & ICF_R_TO_INT) - PutS("$$FG,GREEN$$ri$$FG$$ "); - if (tempi->ic_flags & ICF_USE_DOUBLE) - PutS("[double] "); - if (tempi->ic_flags & ICF_USE_UNSIGNED) - PutS("[unsigned] "); - if (tempi->ic_flags & ICF_USE_INT) - PutS("[int] "); - if (tempi->ic_flags & ICF_NO_DEPEND_RESULT) - PutS("-DEP "); - if (tempi->ic_flags & ICF_DEPEND_RESULT) - PutS("+DEP "); - if (tempi->ic_flags & ICF_NOT_ADDRESS) - PutS("(NOT_ADDRESS) "); - if (tempi->ic_flags & ICF_PUSH_RESULT) - PutS("(PUSH) "); - if (tempi->ic_flags & ICF_PUSH_CMP) - PutS("(PUSH_CMP) "); - if (tempi->ic_flags & ICF_POP_CMP) - PutS("(POP_CMP) "); - if (tempi->ic_flags & ICF_RCX_CMP) - PutS("(RCX_CMP) "); - if (tempi->ic_flags & ICF_RCX_CMP2) - PutS("(RCX_CMP2) "); - CrLf; - } -} - -void CbInitOutPtrs(LexCbStack *ll) -{ - CodeBlk *cb=MAllocZ(sizeof(CodeBlk)); - cb->next=NULL; - ll->cb_out_first=cb; - ll->cb_out_last=cb; - ll->cb_misc_list=NULL; - ll->cb_misc_list_end=&ll->cb_misc_list; - ll->cb_out_ptr=&cb->data; - ll->cb_out_end=ll->cb_out_ptr+sizeof(IntermediateCode)*CB_IC_CNT; - ll->cb_last_out_ptr=&cb->data; -} - -void CbInitInPtrs(LexCbStack *ll) -{ - CodeBlk *cb=ll->cb_out_first; - ll->cb_in_first=cb; - ll->cb_in_ptr=&cb->data; - ll->cb_in_end=ll->cb_in_ptr+sizeof(IntermediateCode)*CB_IC_CNT; -} - -void CbPutAllIc(LexStruct *lx) -{ - IntermediateCode *tempi; - CbInitInPtrs(&lx->cb); - tempi=lx->cb.cb_in_ptr; - while (tempi->ic_opcode) { - if (tempi->ic_flags&ICF_TRACE) - CbPutIc(tempi); - tempi+=sizeof(IntermediateCode); - } -} - -void CbAddIc(LexStruct *lx, - U8 opcode_and_precidence,U8 arg, ClassStruct *c,U8 flags=0) -{ - IntermediateCode *tempi=lx->cb.cb_out_ptr; - CodeBlk *cb,*cb1; - lx->cb.cb_last_out_ptr=tempi; - tempi->ic_opcode=opcode_and_precidence.u2[0]; - tempi->ic_precidence=opcode_and_precidence.u2[1]; - tempi->ic_data=arg; - tempi->ic_class=c; - if (Bt(&lx->flags,LFf_OPT_TRACE)) { - Bts(&lx->flags,LFf_OPT_TRACE_PRESENT); - flags|=ICF_TRACE; - } - tempi->ic_flags=flags; - tempi->ic_line=lx->lag_line_num; - if (lx->flags & LF_PARSE_TRACE) - CbPutIc(tempi); - - tempi+=sizeof(IntermediateCode); - if (tempi>=lx->cb.cb_out_end) { - cb=MAllocZ(sizeof(CodeBlk)); - cb->next=NULL; - cb1=lx->cb.cb_out_last; - cb1->next=cb; - lx->cb.cb_out_last=cb; - tempi=&cb->data; - lx->cb.cb_out_end=tempi+sizeof(IntermediateCode)*CB_IC_CNT; - } - lx->cb.cb_out_ptr=tempi; -} - -IntermediateCode *CbGetIc1(LexCbStack *lx) -{ - IntermediateCode *tempi=lx->cb_in_ptr, - *tempi1=tempi+sizeof(IntermediateCode); - CodeBlk *cb; - if (tempi1>=lx->cb_in_end) { - cb=tempi1-sizeof(IntermediateCode)*CB_IC_CNT-offset(CodeBlk.data); - cb=cb->next; - tempi1=&cb->data; - lx->cb_in_end=tempi1+sizeof(IntermediateCode)*CB_IC_CNT; - } - lx->cb_in_ptr=tempi1; - return tempi; -} - -void CbPush(LexStruct *lx) -{ - LexCbStack *templ=MAlloc(sizeof(LexCbStack)); - MemCpy(templ,&lx->cb,sizeof(LexCbStack)); - if (lx->cb.cb_misc_list_end==&lx->cb.cb_misc_list) - templ->cb_misc_list_end=&templ->cb_misc_list; - lx->cb.cb_next=templ; -} - -void CbPop(LexStruct *lx) -{ - LexCbStack *templ=lx->cb.cb_next; - MemCpy(&lx->cb,templ,sizeof(LexCbStack)); - if (templ->cb_misc_list_end==&templ->cb_misc_list) - lx->cb.cb_misc_list_end=&lx->cb.cb_misc_list; - Free(templ); -} - -CbMiscStruct *CbFindGotoLabel(LexStruct *lx,I1 *name) -{ - CbMiscStruct *templ=lx->cb.cb_misc_list; - while (templ) { - if (templ->type==CBMT_GOTO_LABEL) { - if (!StrCmp(templ->str,name)) - return templ; - } - templ=templ->next; - } - return NULL; -} - -CbMiscStruct *CbMiscNew(LexStruct *lx,U8 t) -{ - CbMiscStruct *result=MAllocZ(sizeof(CbMiscStruct)); - lx->cb.cb_misc_list_end->next=result; - lx->cb.cb_misc_list_end=result; - result->address=INVALID_PTR; - result->type=t; - return result; -} - - -void DelCbMiscList(LexStruct *lx) -{ - CbMiscStruct *mc=lx->cb.cb_misc_list,*mc1; - while (mc) { - mc1=mc->next; - if (mc->type==CBMT_GOTO_LABEL && - !mc->address) { - lx->cb.cb_misc_list=NULL; //prevent recursion - PrintFErr("%S%s\r\n","ST_UNDEFINED_GOTO_LABEL",mc->str); - throw(EXCEPT_COMPILER,1); - } - Free(mc->str); - Free(mc->jmp_table); - Free(mc); - mc=mc1; - } -} - -LexStruct *CbPopNoFree(LexStruct *lx) -{ - LexCbStack *templ=lx->cb.cb_next; - MemCpy(&lx->cb,templ,sizeof(LexCbStack)); - if (templ->cb_misc_list_end==&templ->cb_misc_list) - lx->cb.cb_misc_list_end=&lx->cb.cb_misc_list; - return templ; -} - -void CbAppend(LexStruct *lx, LexCbStack *ll) -{ - IntermediateCode *tempi; - CbInitInPtrs(ll); - do { - tempi=CbGetIc1(ll); - if (tempi->ic_opcode) { - CbAddIc(lx,tempi->ic_opcode+tempi->ic_precidence<<16,tempi->ic_data, - tempi->ic_class,tempi->ic_flags); - } - } while (tempi->ic_opcode); - DelLinkedList(ll->cb_out_first); - - if (ll->cb_misc_list_end!=&ll->cb_misc_list) { - lx->cb.cb_misc_list_end->next=ll->cb_misc_list; - lx->cb.cb_misc_list_end=ll->cb_misc_list_end; - } - Free(ll); -} - -void CbCombine(LexStruct *lx) -{ - CodeBlk *cb=lx->cb.cb_out_first,*cb1,*cb2; - I8 i=0,j=sizeof(IntermediateCode)*CB_IC_CNT; - void *ptr; - while (cb) { - i++; - cb=cb->next; - } - if (i>1) { - cb1=MAlloc(i*j+offset(CodeBlk.data)); - cb1->next=NULL; - cb=lx->cb.cb_out_first; - ptr=&cb1->data; - while (cb) { - cb2=cb->next; - MemCpy(ptr,&cb->data,j); - ptr+=j; - Free(cb); - cb=cb2; - } - lx->cb.cb_out_first=cb1; - } -} - -U1 *CbCompile(LexStruct *lx,ClassStruct *fun_class, - U8 *code_size,DbgInfo **dbg_info,U8 *type=NULL) -{ - U1 *result; - I8 register_offsets[NUM_REGS],min_line=MAX_I8,max_line=0; - if (dbg_info) - *dbg_info=NULL; - - CbCombine(lx); - if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) { - if (Bt(&lx->pass_trace_mask,0)) { - coutln "$$IV 1$$Before Pass 1:$$IV 0$$"; - CbPutAllIc(lx); - } - } - CmpOptPass1(lx,fun_class,TRUE); - if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) { - if (Bt(&lx->pass_trace_mask,1)) { - coutln "$$IV 1$$After Pass 1:$$IV 0$$"; - CbPutAllIc(lx); - } - } - CmpOptPass2(lx,fun_class,register_offsets); - if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) { - if (Bt(&lx->pass_trace_mask,2)) { - coutln "$$IV 1$$After Pass 2:$$IV 0$$"; - CbPutAllIc(lx); - } - } - CmpOptPass3(lx,register_offsets,type); - if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) { - if (Bt(&lx->pass_trace_mask,3)) { - coutln "$$IV 1$$After Pass 3:$$IV 0$$"; - CbPutAllIc(lx); - } - } - CmpOptPass4(lx); - if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) { - if (Bt(&lx->pass_trace_mask,4)) { - coutln "$$IV 1$$After Pass 4:$$IV 0$$"; - CbPutAllIc(lx); - } - } - CmpOptPass5(lx,fun_class); - if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) { - if (Bt(&lx->pass_trace_mask,5)) { - coutln "$$IV 1$$After Pass 5:$$IV 0$$"; - CbPutAllIc(lx); - } - } - - if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) - if (Bt(&lx->pass_trace_mask,6)) - coutln "$$IV 1$$Pass 6:$$IV 0$$"; - CmpOptPass678(lx,fun_class,register_offsets,NULL,6,dbg_info,&min_line,&max_line); - - if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) - if (Bt(&lx->pass_trace_mask,7)) - coutln "$$IV 1$$Pass 7:$$IV 0$$"; - *code_size=CmpOptPass678(lx,fun_class,register_offsets,NULL,7,dbg_info,&min_line,&max_line); - - result=MAlloc(*code_size); - if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) - if (Bt(&lx->pass_trace_mask,8)) - coutln "$$IV 1$$Pass 8:$$IV 0$$"; - *code_size=CmpOptPass678(lx,fun_class,register_offsets,result,8,dbg_info,&min_line,&max_line); - - DelLinkedList(lx->cb.cb_out_first); - DelCbMiscList(lx); - if (Bt(&lx->flags,LFf_COMPILE_TRACE)) { - if (lx->a) { - if (lx->a->seg_size==16) - CallExtStr("Dasm2",result,*code_size,16); - else if (lx->a->seg_size==64) - CallExtStr("Dasm2",result,*code_size,64); - else - CallExtStr("Dasm2",result,*code_size,32); - } else - CallExtStr("Dasm2",result,*code_size,64); - } - return result; -} - -void DelHashTable(SysHashTable *tempht) -{ - I8 i; - SysHashEntry *temph,*temph1; - ClassStruct *tempc; - GlblVarStruct *tempg; - if (!tempht) return; - for (i=0;i<=tempht->mask;i++) { - temph=tempht->body[i]; - while (temph) { - temph1=temph->next; - if (!(temph->type&HTT_DICT_WORD)) - Free(temph->str); - if (temph->type & (HTT_FUNCTION | HTT_CLASS | - HTT_STR_CONST | HTT_GLBL_VAR | - HTT_SYS_SYMBOL)) { - Free(temph->source_link); - Free(temph->index); - if (temph->type & (HTT_FUNCTION | HTT_CLASS)) { - tempc=temph; - Free(tempc->debug); - Free(tempc->import_name); - DelMemberList(tempc); - //assumes code not on heap - } else if (temph->type&HTT_STR_CONST) - Free(temph><(StrConstStruct *)->data); - else if (temph->type&HTT_GLBL_VAR) { - tempg=temph; - DelLinkedList(tempg->dim_list); - Free(tempg->import_name); - } - } - Free(temph); - temph=temph1; - } - } - Free(tempht); -} - diff --git a/LT/Compiler/Compiler.BIZ b/LT/Compiler/Compiler.BIZ deleted file mode 100644 index 197e1912b0b6a444466a80c9206a6a1036dd291d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218949 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 sfiwY-tSw+*_#h7IGUkDAI6;&J39-®m®r®x®¤®©®¯®Å®È®ä® ¯5¯:¯^¯~¯£¯Ç¯ç¯ °°"°'°L°Š°‘°°°Å°Ê°è°ò°±±8±?±]±y±¢±¼±Ö±í±²à�¦ðùV{�¿á%1Ahu‚”¡´¹ÀÁËæà&?À»é»¼ ¼¼¼¼ ¼&¼.¼6¼>¼H¼R¼Y¼o¼–¼¬¼³¼µ¼¿¼Æ¼Ð¼ã¼˜%°ãÌãÚãåãìãä ää*ä4äUäkä�äˆä´ä»ä¿äÆäÉäÓäÚäääîäåå#å,å2å=å@åEåqå�å³åÉåÔåêåõåþåæ æææ4æ?æKæRæeæxæ‚æ”æ¨æ¼æÃæÎæÙæåæðæûæççç(çXç_çlç¿çÌçàçççëç÷çûçèè#è*èQèUè`èkèvè�èŒè—è¥è°èµèËè×èâèæèëèïèùèéééé*é1é=éDéOéVéxééƒéŽé™é¤é¯éºéÅéÊé÷éêêêê<ê@êKêRê`ênêyê„ê�êšê¥êÓê×êâêõêüêë ëëë1ë;ëBëGëRëVëaëzëŽë¢ë·ë»ëÆëÑëÜëçëòëì2ì9ìVì©ì¶ìÌìàìëìïìíí8íMíQílí€í‹í�í¤í¹í½íçíõíÿíîî&î.î=îUîcîhî}î�î˜îœî¡î¾îÓî×îíîøîïïïïï&ï1ï8ïHïOï_ïfïvï}ïˆï�ï±ï¼ïÀïËïÖïáïìï÷ïðð4ð?ðCðNðRðyð}ðˆð�ð�ðÄðÓðÞðéðôðÿð -ññ#ñ.ñ3ñAñLñWñbñmñxñ¦ñªñµñÈñÏñÚñßñæñññòòòò%ò)ò4òMòXòcònòyò„ò’ò�ò­ò·òÒòäòöòóó,ó:óEóUó_óxóŒó—ó¢ó­ó¸óÃóâóô*ô/ô:ô>ôTôjô|ôŽô ô²ôÄôåô õ1õ6õAõEõeõzõ’õ õµõÐõÓõçõôõö!ö,ö3ö>öEöSöaöhövö„ö’ö ö®ö¼öÊöØöæöôö÷÷÷,÷:÷H÷V÷d÷r÷~÷�÷ ÷°÷à÷ð÷ø÷"ø-øVø^øiøtø„ø”ø¤ø´øÄøÔøäøôøùù'ùAùjù�ù¤ùÕùìùýùú%ú<úLúkúÈúÏúßúñúNûUû_ûuûwûæû ×è€Ã‘ÔßçòÃÈÃÓÃÕÃàÃüÃ Ä Ä"ÄAÄÐAXè¼û¼ ½½½B½U½b½o½‹½–½¾½Ð½Õ½Ü½å½ç½ò½ù½¾ ¾@o´XÙiÙwÙŽÙ�٬ٻÙÊÙÙÙæÙëÙÚÚ!Ú0Ú?ÚLÚfÚxÚÚ�Ú¢Ú§ÚµÚ¿ÚÕÚïÚôÚþÚÛ+Û1ÛGÛRÛ\ÛrÛŠÛŸÛ¾ÛÓÛõÛ -Ü,ÜAÜgÜ|ܨܽÜ×ÜòÜùÜÝÝ0Ý;ÝQÝÐÝ ðZu ¾;¾B¾M¾T¾_¾j¾v¾€¾‹¾“¾´¾·¾¹¾»¾½¾ã¾ð¾¿ ¿*¿5¿@¿P¿[¿r¿ -�ÅÔ¸ÂÙÂàÂëÂõÂÃÃ)Ã3Ã6Ã8ÃNÃ]ÃkÃ~à @wœx¿‘¿˜¿£¿²¿¹¿¾¿Ç¿ê¿ï¿ö¿À ÀÀ"À-À5ÀVÀYÀ[À]À_ÀvÀ~ÀƒÀ�À¸ÀÀÀÊÀÕÀàÀðÀûÀÁ @žÃÁ1Á8ÁCÁRÁYÁ^ÁgÁŠÁ�Á–Á¡Á¬Á¸ÁÂÁÍÁÕÁöÁùÁûÁýÁÿÁÂÂ"Â/ÂTÂ\ÂfÂqÂ|Œ—±Â X¹!ÐÝýÝÞÞ'Þ2Þ7ÞnÞxÞ¯Þ±ÞÄÞØÞßÞæÞðÞ÷Þßß#ßZßdß›ß�ß¶ßÊßÏßÖßàßåßçßùß à&àEàYà`àpàuà¬à¶àíàá!á/á:áIáSáXálá‡á¦áºáÁáÑáÚáâ âVâkâŠâ˜â£â²â¼âÁâÒâíâããã(ã-ã­ãèhsŠÅÿGb”¯áæþ7HMd|µÆßòw–³W!W(W/W7W@WDWLWZWfWmWqWyW�WŒW“WœW½WÄWËWÎWÕWÜWêWñWX¨ ¨[¿[Ê[Ø[á[ -\\,\6\D\O\i\v\Ð4x\‘\˜\¤\©\¬\¯\±\»\â\é\ð\÷\ü\]#]&]@]D]F]M]`]˜7‡`]€]œ]¥]°]»]É]Ú]ñ]ü] ^^+^B^M^c^q^‚^™^¤^¼^Ê^Û^ò^ý^__'_>_I_V_d_u_Œ_—_¥_¶_Í_ÿ_ ``5`j`ˆ`–`§`¾`ò`aa+a;aRa{a›aÄaòa b#b&cpÖá`YwY~YƒYŽY®Y³Y¶Y¸YºYÇY€µÂXX!X(X.X9XnAnQn[n^nwn|n�n•n˜n�nµn¸n¼nÄnÌnånênònooo3o?oVolovo‡ožo´oÇoÌoÜoìoþopp#p&p?pDpIpephpmp‰pŒp�p˜p p¹p¾pÆpÖpæpðpþp q#q:qBq^qzq†q‹q“q›q«q»qÀqÌqÔqÜqæqôq rrr!r(F(M(a(n(„(ž(£(§(±(µ(½(Å(Í(ã(ë(ð())) ),)2):)?)I)T)Y)e)k)s)ˆ)š)¬)Ã)È)Ú)è)ú)ÿ) ****(*:*?*K*Q*Y*n*€*’*©*®*Í*Ó*Þ*ã*è*ò*++ +7+<+_+‰+ž+°+Â+Ù+Þ+ã+ø+ -,,3,8,U,],g,o,�,†,˜,�,¯,·,Ì,Þ,ð,- ---7-A-P-a-f-k-z--’-ž-£-«-³-¸-Í-ß-ñ-. ...8.B.Q.e.j.o.~.ƒ.–.¢.§.¯.·.¼.Ñ.ç.ù.//6/@/N/]/q/v/{/‰/½/Â/Ç/í/ò/÷/0 0000(060:0T0Y0l0r0z00‡0�0�0¥0¨0­0Ñ0Ý0å0ë0ó011131E1X1j1�1†1§1Í1×1å1ö1 222<2A2F2T2X2r2‹2�2£2¨2°2µ2½2Å2Ó2Û2Þ2ã2333 30353J3`3r3…3—3®3³3Ô3ú344#494>4C4w4|4�4�4“4­4Æ4Ë4õ4ý455-5?5R5d5{5€5¡5­5³5¸5Â5×5í5ÿ56$6;6@6a6m6w6|6†6›6±6Ã6Ö6è6ÿ67%717;7@7J7_7u7‡7š7¬7Ã7È7é7ó7ÿ78 88K8P8U8{8€8…8“8¡8¯8Ä8Ð8Þ8ù89 9'9,949<9J9R9U9o9{9‰9¤9Ä9Ê9Ò9×9ß9ç9õ9ý9::!:/:D:P:^:y:™:ž:¦:«:³:»:É:Ñ:Ô:î:ú:;#;C;H;P;U;];e;s;{;~;“;©;»;Î;à;÷;ü;<'<3<8<=<c<h<m<ˆ<›< <¨<­<µ<½<Ë<Ó<Ö<ë<==&=8=O=T=r=ˆ=�=¨=°=Å=Û=í=>>)>8>@>W>\>z>�>•>°>¸>Í>ã>õ>??1?@?H?_?d?…?�?�?³?Î?Ó?@ @@@$@:@B@W@m@@’@¤@»@Ê@Ò@é@î@AA'A=AXA]AŽA“A˜A¦A®AÄAÌAáA÷A BB.BEBTB\BsBxB™B£B±BÇBâBçBCC"C0C8CNCVCkC�C“C¦C¸CÏCÞCæCýCD#D-D;DQDlDqD¢D§D¬DºDÂDØDàDõD EE0EBEYEhEpE‡EŒEªEÅEÊEßEõEFF,FCFUFZFxFŽF“F¨F¾FÐFãFõF GG#GAGdGiG~G”G¦G¹GËGâGôGùGH"H/H7HMH_HdHzH†H›H±HÃHÚHßHíHII)IMI]IbIxIŽI“I˜I®I³I¸IÆIÜIòIJ&J6J;JYJoJ…JŠJ�J¥JªJ¯J½JÓJéJùJ'K/K4KRKhK~KƒKˆKžK£K¨K¾KÔKÙKÞKôKùKþKLLL0L5LGL]LsL|L‹L�L•L£LµLºLÈLÚLßLäLMMM$M>MFMKMfMkMvM‹M£M¯MÈMâMíMNN&N?NDNIN[NvNŠNœN©N½NÄNÒNÙN÷NüNO®T'H ½ UZCZGZLZQZaZsZ‰Z’Z¡Z°ZÄZÌZÑZàZíZ[ [7[I[m[v[[Ž[–[ª[²[·[¼[Î[ï[\\=\O\_\o\t\y\‹\�\®\Ä\Í\Ý\å\ô\ù\ ] ] ]5]K]T]Y]]]q]y]†]§]¹]¾]Ð]Õ]ç]ý]^^^^#^(^:^[^q^~^©^»^Ë^Û^à^å^ô^_4_h_l_w_€_†_‹_�_´_Ê_à_ì_``(`-`?`J`R`d`o`w`…`�`˜`œ`¥`«`°`µ`º`Ñ`Ö`è`õ`ÿ`a aa auRuVueusu‚u¤u³u½uÅuÏuÛuàuðuvvvv(v?vNvbvkvwv|v„vˆvœv v¨v·vÅvÔvövwww#w-w2wBwRwbwjwowtw‚w™w¨w¼wÁwÍwÒwÚwÞwâwæwúwÿw xxxx x(x,x@xBxNxSx[x_xcxkxsx‡x�xžx¬x»xÝxìxøxyy yy-y1yIyQyVy[yeyjytyyy~y‰y˜y¦y¸y½yÈyâyìyñyûyz -zzz+zLzbzvzzz z«z­z½zÛzìzýz{ {{{){1{H{U{\{a{j{q{x€)¸µx€�€¤€«€¹€΀߀õ€��=�H�`�x��’�£�³�¼�Ë�Ü�ì�‚‚!‚+‚9‚A‚T‚j‚w‚�‚”‚ª‚±‚Á‚Ñ‚Û‚Þ‚î‚ø‚û‚ƒƒƒ.ƒ1ƒ6ƒFƒIƒMƒUƒ]ƒvƒ{ƒƒƒ“ƒ£ƒºƒʃ؃âƒðƒüƒ„)„3„D„[„q„x„ˆ„˜„¢„¥„µ„ÄÆ„ß„ä„é„…… …)…,…0…8…@…Y…^…f…v…†…�…­…»…É…×…ã…ú…††+†B†X†k†p†€†�†¢†¥†µ†džʆã†è†í† ‡ ‡‡-‡0‡4‡<‡D‡]‡b‡j‡z‡Ї•‡œ‡¬‡³‡ʇÙ‡à‡å‡ˆ*�™PŽpŽxŽ�Ž�Ž¥ŽªŽ»ŽÉŽÔŽ׎àŽçŽ÷Ž� ��*�5�<�R�t�|�Œ�œ�¡�®�Å�Ü�ë�ÿ���� �7�N�]�e�s����� �®�º�Æ�à�ü�‘ ‘%‘@‘H‘P‘X‘‹‘“‘�‘ª‘¾‘‘Ö‘Ú‘ò‘’’$’(’<’@’K’n’t’�’¡’¨’­’¿’È’Ð’á’é’û’“9“¤“+h-—°‰щ؉ã‰ç‰ó‰ø‰ŠŠ;ŠFŠPŠUŠYŠ_ŠgŠoŠwŠ˜Š¢ŠÊØŠêŠòŠôŠ‹(‹0‹=‹L‹W‹f‹t‹‚‹ˆ‹–‹ž‹¨‹°‹º‹Ñ‹Ü‹ó‹ö‹ÿ‹ŒŒ/ŒEŒ\Œ_ŒhŒ|Œ„Œ˜Œ®ŒÅŒÈŒÑŒåŒíŒ��.�=�@�I�]�i�€�Ÿ�¤�»�Ú�ú� Ž Ž&Ž1ŽIŽ,X%ª¨“ēǓדß“ñ“ú“1”r”€”’”›”¦”´”ɔԔߔ÷”•••-•2•@•H•n•†•™•£•«•±•¿•̕ԕü• -––––'–O–]–a–e–m–z–†–�–¸–¼–À–È–ð–þ–——— —)—Q—U—Y—a—‰———›—Ÿ—¤—±—¹—á—ï—ó—÷—˜,˜:˜>˜B˜N˜[˜g˜�˜�˜¡˜¥˜²˜Ú˜è˜ì˜ð˜ü˜ ™™=™K™O™S™d™Œ™š™ž™¢™§™´™À™è™ö™ú™þ™š7šEšIšMšTšYšfšrššš¨š¬š°šÁšéš÷šûšÿš ››@›N›R›V›g›�›�›¡›¥›À›Ñ›à›ì›œ7œLœ^œ}œ¥œ­œ²œ¶œ¿œÑœÝœ� �� �0�X�]�k�|�¤�©�¼�Á�Î�Ó�æ�ö�žžDžIžVž[žežxž�ž’žœž¯žÄžÉžÓžæžûžŸ -ŸŸ2Ÿ7ŸhŸmŸ}Ÿ‚ŸÑŸÖŸ% * 4 A V [ e r ‡ Œ – £ ¸ ½ ¡¡N¡S¡™¡ž¡¬¡ò¡¢ ¢¢`¢u¢z¢�¢’¢¥¢ª¢¸¢Ë¢à¢å¢ó¢££ £.£A£V£[£i£|£‘£–£££¨£µ£º£Ç£Ì£Ù£Þ£ë£ð£F¤K¤¡¤¦¤´¤Á¤Ö¤Û¤é¤ù¤¥¥!¥1¥F¥K¥¡¥¦¥ü¥¦W¦\¦j¦·¦̦Ѧߦ/§D§I§�§•§ܧ᧨¨Y¨^¨t¨“¨£¨º¨˨بݨî¨û¨©3©?©x©¦©«©»©Ò©ã©ð©õ©ªªª)ª:ªGªOªTªeªsª|ª‡ª©ªÁªÖªêªòª÷ª««(«-«>«R«a«o«€«‘«¢«Ϋí«¬¬ ¬'¬,¬=¬B¬S¬X¬i¬n¬¬„¬›¬¬¬½¬Ô¬Ù¬ð¬­­)­.­?­U­Z­k­|­�­¤­©­È­Ù­Þ­ý­®*®/®N®S®{®€®…®­®²®ήÓ®ï®ô®¯¯1¯6¯R¯W¯s¯x¯”¯™¯Á¯دé¯ú¯ÿ¯'°>°O°`°e°r°w°Ÿ°°°Á°Ò°×°å° ±5±:±b±б›±¬±½±αß±ä±ò±²B²G²o²—²¨²¹²ʲÛ²ì²ñ²³*³;³L³]³b³y³‡³¯³׳ÿ³´)´Q´y´¡´¦´δö´µ/µNµmµ~µ�µ”µ«µ¹µáµ ¶1¶M¶[¶ƒ¶«¶Ó¶ض·(·P·a·€·Ÿ·°·Á·Æ·î·ÿ·¸!¸2¸C¸T¸e¸j¸�¸ ¸¼¸Á¸é¸ú¸ ¹¹5¹F¹b¹g¹�¹ ¹±¹¶¹Û¹ì¹º º5ºFºWº\º�º©ºźʺغ»(»-»U»}»Ž»“»¸»à»ü»¼¼7¼_¼d¼Œ¼´¼żʼï¼½3½8½F½n½–½›½ýë½ü½¾¾7¾_¾d¾Œ¾´¾žÖ¾í¾ñ¾þ¾¿ ¿O¿\¿ˆ¿§¿¼¿οÝ¿å¿ê¿À ÀÀ%À-À2À[ÀcÀhÀ‘À™ÀžÀ¬ÀÀÀîÀöÀûÀ ÁÁKÁSÁXÁfÁzÁ¨Á°ÁµÁÃÁ×Á ÂÂ8Â@ÂEÂkÂsÂxž¦«ÂÑÂÙÂÞÂà ÃÃ7Ã?ÃDÃjÃrÃwÃ�åêÃÐÃØÃÝÃÄ ÄÄ6Ä;ÄaÄiÄnĔĜġÄÇÄÏÄÔÄëÄóÄøÄÅÅÅ)ÅTÅdÅ{ŌřŞůżÅÒÅãÅèÅùÅþÅ Æ$Æ5Æ;ÆDÆRÆ\ÆoÆvƄƌÆ�ƸƽÆÎÆ߯ìÆôÆùÆþÆÇÇÇ%Ç3ÇDÇRÇZÇ_ÇdÇuDŽljǎÇ�ǢǧǶÇÃÇëÇðÇÿÇÈ ÈÈ(È4ÈEÈVÈgÈxȉȎȶÈÄÈìÈýÈ%É3É[ÉiÉtÉxɂɆɖÉ�ɳɷÉÇÉÎÉ×ÉäÉÊ Ê'ÊNÊ[Ê}ʎʬÊÁÊÐÊìÊõÊËËMËdËrË•Ë�ˤ˩˷ËÀËÐËÔËÝËûËÿËÌ5Ì9ÌBÌNÌ`Ìẉ̸̄ÌÊÌöÌÍ6Í>ÍIÍLÍQÍ\ÍgÍ‚Í�ͨÍÃÍÚÍÎ*ÎôÒ-h àTëTðTúTþTU UUUU.`luÀÿÙÿàÿëÿðÿ")4Mep‹§µÀáù&5X]enŒ”œ¤¬´¼Éäêòú )49MOT[o„‹Ÿ¤½ÎÙàî $49IN^csx“˜ÀÉÒî 38`i‹“¢¿Ùõ#27<DSX`ejuz…Š•š®ÏÚåèý,/6JOZt‡¦®Èä->Rb„�±¶Ðâôÿ).9S^i~‰£¼ÕÚå    # + 3 @ H P [ m ” ® ¸ Ø ã ë ö  - - -& -. -9 -D -O -T -h -„ -ž -· -¼ -Ç -Ï -Ú -é /ø IÐIñIøIÿIJ J%J)J2J:JBJJJcJoJ|J‡JŒJ‘J¹JÇJÉJÖJãJçJìJöJK/K=K?KLKVKcKmKtKyK�K‰K‘KªK¬KÈKäKðKõKýK -LLLDLGLrL0hâ Ønñnôn ooo,oJodooozoo‰o’o˜o›o¥o·o¿oàoúoppp#p:p?p`p‚pŒp£p¼pÙpûpq8q1È8N˜d·dÈdÙdïdee-e>eUe`ese‘e˜e¯eÅeÛeìefftf2X68qQqXq_qgqnq~qœq§q²q×qòqýqrr-r:rMrXr_rjrƒr“r r§r®r¶rÁrÈrârírþr -s%sCs]shsšs3HPvxf—fžfµfÀfØféfÿfg0gAgWg^gug€g‹g�g¯gÇgÎgægýghh"h)h@hKhchrhˆhžhóh4À’Ç O9O@OHOPOpOwO‚OŽO O·OÂO×OðO PP.PEPJPSP[PcPƒP‹P˜P§P¯PÍPÕPèPQQ&Q.Q:QEQPQTQ]QyQ¿QðQóQøQ;R50L�xL™L L¥LÐLÜLÞLëLøLüLM MMGMUMWMdMnM{M…MŒM•M�M¤M«M²MºM¿MÇMÌMÚMêMöMNNN7NSNoNzNN‡N‘N™N N­NÃNÌNÔNÝNõNOO O O O6øGHXdXkXyX„XŒX”X˜XŸXªX¯X±X¸XÏXñXYYY*Y5YZYbYgYxYƒY¨Y°YµY½YÅYÚYàYZZZ Z%Z+ZKZSZ_ZdZjZ‡ZŒZœZ¡Z¸Z½ZÝZåZëZ [-[2[L[Q[Y[_[g[r[ƒ[ˆ[�[›[£[¯[É[Ô[Ö[õ[\ \\+\9\@\W\b\g\r\ˆ\’\°\¸\½\Ä\Ð\å\ê\]]$]+]5]U]z]‚]�]Ÿ]½]Å]Ê]Ñ]Ý]â]ë]ö]^A^I^P^p^x^‡^™^°^µ^Ý^å^ì^_&_._=_E_O_W_]_c_k_s_w_~_…_’_ž_£_©_®_·_Ò_õ_` ``#`,`4`N`z`„`�`š`±`¼`Á`Æ`La7è Paqaxa�aša­aËaÒaéaôabb5bCbMbXbibb•b¯bÅbÝb c8�Ñàn)n0n?nVn[nfnmnxnzn�n˜nšnÔn9¸ x¬ wÁwÈwÖwÝwàwçwîwõwüw xxx"x)xExLxSx^xjxvxx†x‘x–x¡x´xÁxÉxëxöx yyy y/y2y7yByQyTyYydysyvy{y†y•y˜y�y¨y¶y»yÂyÙyèyÿyz z'z8zOz^zuz~z•zšz±zÌzÏzÕzÚzåzìz{ {{${;{J{a{j{�{†{�{´{Ð{Ó{Ù{Þ{é{ð{|| |7|F|]|f|}|‚|™|´|·|½|Â|Í|Ô|ë|ò|÷|}#}.}F}`}k}ƒ}ˆ}š}±}¿}Ä}Þ}á}ç}ì}÷}~~"~9~L~c~p~‡~�~ ~¦~«~¶~Á~Ä~Ë~Ð~Û~ê~í~ò~ý~ -!9>IVm…Š¡¬·Îìõ €1€S€j€s€|€Ž€½€Ï€å€õ€��9�^�v�‚�š�£�¾�Ú�ß�ê�õ� ‚(‚:‚I‚Q‚i‚t‚y‚„‚�‚”‚Ÿ‚­‚²‚½‚Ë‚ЂÛ‚ó‚ø‚ƒƒ ƒ+ƒ2ƒ8ƒ;ƒ@ƒGƒYƒbƒxƒƒ‚ƒ�ƒ’ƒ¬ƒ²ƒµƒÁƒƃÖƒ݃âƒþƒ„ „'„?„T„_„{„~„Š„˜„¯„̈́Ԅۄï„ú„…!…)…=… ‰:˜Ïøhii'i.iFiMidioi�i’i¤i·iÕi÷ij$jFjQjijj†j�j®jÅjÐjèjöjk k)k;kSk^klkskŠk•k�k§k«k²k¶kÁkÒkÝkókúkl!l+lAlYl`lwl‚l�lŸl¶lÛlélm mmm m'm@mZm^m`momzmn;è9s s»sÉs÷s%t-t?tQtctzt‘t«tÂtÜtêtöt u(uAuWumu„u‰u©uËuãuúuvv+vFv_vuvŒv¤vµvÌv×vïvôvw9wOwgw™w<ˆÿ>!>1>?>J>X>l>z>…>Š>•>ª>¿>Ê>è>ì>ò>?)?1?8?0$La£úüS[o† ¸ÌÕí03hmp‰•¡­¶Õïò)?X °T»TÀTÉTÏTÖTØTÝT@èZ´� ™   ¨ µ Ì ë  -' -I -y -Ÿ -Ì -á -ú - % ? U r  ¦ º Î Ø ÷    + 7 C P [ ` q „ — ­ À Ç È Ú ø   ) A I N W   ­ ½ Ñ ä ï ô %BT\n{ƒ•ÆÒÞéî.JNŽA¸0¸;Ñ;Ù;î;ù; <"<5<W<n<…<¤<¨<³<Ï<ò<õ<=Bз�¨ÀÃåý#LU{¢«¯·ÄÇÒÔáêîøü $(9=Ydfjsz‡‹•™¢»Û÷ %).7U`}ŸºÀÇÔØàý"Hp}£½Øò*Fb¤¨ïC 5V€�¦­µÁÍß /Ce|“»ÄÈØáþ  9 W s v ‰ DˆBPðùBivƒ•¢¸¾ÃÊE¨jèûüü ü"ü)ü1ü8üCücünüsüvü}üˆü�ü•ü ü¥ü°üÁü×üâüçüòüýüýýý'ý.ý9ý;ýWýdýý±ý¶ýÊýÏýÖýçýûýþþþ"þ3þ:þNþ[þiþsþ‡þÀþõþÿ ÿÿÿ"ÿ8ÿ¾ÿF˜îþ0ZCZJZSZVZaZjZuZ£ZÁZÝZùZ[[[G0;>h#s#�#’#H8‰­(c?cIcVcgcpcwc‚cžc«cÇcãcìcïc d'd2d@d\dgdjdƒdŸd¹d½dÂdÊdõdIÀÅÚ (³(·(À(Ã(ß(û()0)9)Q)m)‡)Š)�)–)ž)¦)¬)²)¿)JpAL˜#©#¬#Â#Í#Ï#ë#ø#û#$KX+3'LWq~Lp)x‹˜Ÿ«Êí M˜@ð  /GW_uƒ•©åéø  8Shv’¡ÛS[k{Žª¯²ðNp�Œ(=`†–°ÊÍïOèeÀÉÐÙä8_l}�£¹Ïâéñò &P`;DH=[=l=q=‹=–=›=«=Q°¹LPücü…ü§üÉüëüý5ýVýfý�ý�ý¨ý³ýÀýËýØýãýîýùýþþ>þIþTþ]þpþ�þ²þ½þÈþÑþäþÿ&ÿHÿSÿ^ÿgÿzÿšÿ¡ÿªÿ½ÿÕÿöÿýÿ !'-39BKQry…‹‘—�¦¯Ð×Ýãé -%/9Cdku|ƒ�—¡«µ¿ÉÓÚáëõü -",6@JT^hr|†�šÀRp¸Ã@(W([(`(€(†(‹(Ž(�(’(Ÿ(S *KØfífðfýfg$g+g2g;gDgUgZgcgggrgxg‚g‹g�g“g–g™g›g g£g¥g¬g¯gÂgTØ AÐíõù 1GKU]s�‹¡³¸ÅÊÔêü$.9LQY^fp¹ÇÑÜïôü !UˆCQ(ADGQY`jrux��V0Ux�©­¶¼ÀÄÓÝçý!&0<AIP\oy…Š’™›ªWP29==*=2=9=;=B=XXhð²5²<²G²L²j²€²�²�² ²£²¥²¯²¶²¹²Â²Ê²Þ²ý²³ -³³.³B³O³b³j³Œ³‘³�³¢³±³¹³Í³ì³ö³ù³ÿ³´1´>´b´w´ž´¨´Ë´Ñ´ï´µ!µ&µ,µJµ^µhµmµsµ‘µ¥µÆµËµ×µõµ¶5¶:¶F¶d¶t¶¤¶©¶¯¶Í¶Ý¶ä¶ñ¶·!·&·0·N·^·e·r·†·°·¼·Ð·Õ·Ú·ä·¸¸¸&¸:¸]¸b¸l¸Š¸ž¸³¸¸¸Â¸à¸ð¸þ¸¹$¹»YØc{hŠyŠ‚Š–ŠŸŠÁŠáŠöŠ‹‹0‹9‹[‹{‹�‹¥‹§‹¿‹׋Þ‹ZxÖ‚�ª½ªȪЪÙªëªúª«« «$«-«3«;«E«J«`«v«{«Œ«Å«Ê«Û«¬¬¬W¬d¬i¬†¬¿¬̬Ѭý¬­*­/­W­b­o­­Œ­™­¹­Á­Æ­ë­ü­® ®"®&®/®I®_®d®m®~®†®¥®¼®â®ô®¯¯(¯E¯J¯\¯y¯„¯‘¯¥¯²¯Ưæ¯î¯ó¯°°*°A°g°y°–°›°­°ʰϰá°þ° ±±.±;±O±o±w±„±‰±¦±¸±ϱõ±²$²)²;²X²g²t²ˆ²•²©²»²Ͳí²³³,³>³K³]³b³g³�³�³¢³гH´[P¬Ó¨A¨G¨Y¨k¨t¨–¨œ¨Ÿ¨£¨¨¨Ш䨩 ©%©T©a©f©p©Œ©’©´©¹©Û©÷©ªª ª"ª&ªUªwªŠª\x‰€Å©Å·ÅÆÅëÅóÅÆÆ Æ=ÆLÆ[ÆnÆ|ÆÆ�ƇƶÆáÆóÆÇ Ç.Ç>ÇMÇZÇzǂǰǷÇÅÇÓÇæÇéÇ -È*È,È2ÈaȃȈȪÈÁÈÄÈåÈÉÉ É<ÉBÉPÉ`ɈɶɻÉÂÉãÉòÉýÉ ÊÊAÊgÊvÊ{ʙʻʾÊÈÊâÊñÊËË,Ë.ËHËWËxË˒ˠ˽ËãËòË÷ËÌ7Ì:ÌHÌbÌq̵̡̰̄ÌÏÌÞÌÿÌÍÍ"Í@ÍbÍg͉ͧÍÉÍÏÍÝÍÎ&Î.ÎOÎbÎ]ƒ¢PÕiÕnÕ|Õ�Õ¢Õ¿ÕÉÕñÕ÷ÕþÕ&Ö+ÖSÖfÖyÖ–Ö ÖÈÖÎÖÕÖãÖðÖ×× ×1×Y×h×^7v¨üÅüÌüßüæüíüõü÷üþüý ý;ýbýkýƒý‘ý¬ý±ý¿ýÌýÑýÛýþ)þ+þRþyþŠþšþžþ¯þµþ¿þÊþÔþØþêþñþúþÿ*ÿ2ÿDÿNÿRÿqÿvÿ~ÿ�ÿšÿžÿ°ÿ½ÿÐÿ_x–Ðÿáÿïÿ3@S—œÍÒé*[`ˆ¸Áòù`ŽËÈåååìåõåææFæPæUæjæ’æ˜æ«æÛæåæêæïæçç"ç5çeçoçtçvçžç¤ç»çëçõçúçè:è@èJèXè^èaèeèkèoèsè}è‡è˜è¥è¼è×èæèéé.éAéaÈp Æ X u ~ … “ ¦ Ö à å ú $*=mw|�«±¶Éù -4:Q�‹�¨ÒØÞáåëïóý%<Wf“›Ÿ°¶ÄÎ×Ûíô#19GPTsx€Ž—›­ÍbðŒˆÞ¥Þ¯ÞãÞòÞ ß.ß3ß;ßIßOßRßaßhßqßzߙ߱ß×ßæßèßàà,à9àKàPà[àiàoàtà‡à·àÁàÆàÈàðàöàá -á á áFáSáXá~á‹á–á«áÅáÍáåáöáâ#â1â<âJâPâUâlâœâ¦â«â°âØâÞâõâ)ã3ã8ã=ãeãkãpã‡ã¿ãÉãÎãÓãûãäää$ä)ä@äxä‚ä‡äŒä´äºäÈäÎäÑä×äÛäêäå:å\ådå|å�åµåÈåc`# èíî îî"î-î0î4î<î@îgîrîzî‚îœî¤î¨îÛîêîïïï#ï-ï0ï4ïCïKïUï^ïyï‘ï³ïÂïÄïæïõïðð#ð(ð3ðAðGðLðbð‘ð–ð›ðÂðÈðÑðÜðéðñðñññ1ñ>ñCñMñPñwñ„ñ‰ñ“ñ–ñ­ñÔñáñæñ òò)ò6òKòeòyò†ò¤òÇòÌòÓòéòÿòó$ó3óEó[ó€ó’ó¬ó·óÆóÚóéóýóô%ô,ôGô]ôsô‰ô®ôÀôÚôéôøô õõ/õOõWõfõ€õ”õ·õ¾õÌõÚõéõ÷õúõÿõöHöMöRöyö|ö’öÉöÒö×öþö÷ ÷!÷X÷a÷f÷�÷•÷¤÷²÷¸÷½÷Ó÷ø øø7ø=øHøKøUøZø”ø£ø¼øÐøðøùù ù*ùBùXùoù~ùƒù�ù«ù²ù¿ùáùïù÷ùú+ú:ú?úIúiúnúvú“úªú¹ú¾úÈúÚúéúüúd(í¸ÛÑÛÖÛíÛûÛ#Ü)ÜQÜyܕܣÜËÜóÜÝÝ6Ý^ÝdÝnÝsÝ›ÝÃÝÖÝéÝÞÞÞ+Þ<ÞMÞuÞ„Þe�¼Ë8�Q�f�Ž�Ÿ�¨�Ê�ê� �0�?�N�f˜™©0§G§W§a§f§y§¬§®§Ö§¨¨g ,=8¿I¿S¿{¿£¿¥¿Í¿õ¿ÀÀ$À&À7ÀHÀpÀwÀh¸?sxÀ�À�À§ÀâÀ -Á Á4ÁoÁÁ�ÁžÁ Á±ÁÂÁÇÁÂÂBÂGÂQÂy¡²´ÂÜÂÃ+Ã;ÃIÃZÃ\ÃmÃ~ÃêÃÓÃàÃåà Ä7Ä@ÄiàµÎˆŸ©´ÂÄìALZ\„��ªÒÛjü< è  !/1Y�†®¹ÇÉñü -  ' / 3 D J T ^ g r v | Ž ” � ¿ È Ð á ê õ ù ÿ  - -$ -5 -> -I -M -S -d -q -„ -kX˜ ?Lt}l ¢³€—¡ÉñóCPx�mhÐúà÷Jrtœ×ä ,puƒ«Óúÿ'Ovƒª³ÛänèT n È ß í ! * I V ~ ƒ « Ê Ó ò ÿ  ' O X o¸> R ˆ -Ÿ -© -Ý -ê -  ? ^ k Š “ » Ä p°„—ð¥¦/¦F¦K¦s¦~¦‹¦›¦¨¦¸¦צߦá¦ÿ¦§0§q u†@ÄQÄ[ăīĭÄÕÄýÄ ÅÅ,Å.Å?ÅPÅxÅÅrèÏ P�q�y�‡�‹�‘�—�œ� �®�¼�À�Ï�Ý�ç�ë�ð�ú�ü�‘‘(‘,‘;‘I‘]‘a‘x‘}‘�‘”‘¨‘¿‘Ñőߑã‘î‘ü‘’’ -’’s°¯‚šEšNšsš…šŠš—š²š¿šÅšöš'›C›I›M›y›ª›¯›Û› œ.œ4œ8œWœdœ‰œŽœ­œºœßœúœ� �1�>�C�b�o�q�y�ƒ�†�Š�¢�¯�Â�Ù�Þ�ã�ñ�ÿ�ž!ž&ž8žUžZžlžuž–ž¶žïžHŸMŸbŸtŸyŸ†Ÿ�Ÿ�Ÿ�Ÿ¤ŸºŸÄŸÖŸüŸ  ; @ Z _ | � ž £ À Ë Ø è õ ¡%¡-¡;¡A¡a¡~¡†¡ˆ¡¥¡°¡½¡Í¡Ú¡î¡¢¢¢7¢b¢|¢�¢“¢¢Ú¢££/£4£F£c£h£z£—£¢£±£Á£Уä£ü£"¤)¤.¤3¤5¤:¤I¤Q¤w¤„¤‰¤–¤›¤¨¤­¤¿¤ߤ䤥"¥*¥ð¥tЯæȶå¶è¶û¶· ····!·%·9·l·w·§·¬·Õ·Û·ã·í·ü·E¸J¸ƒ¸�¸•¸¥¸®¸¹¸Ǹî¸ö¸¹"¹I¹[¹m¹”¹œ¹§¹®¹±¹¶¹ιõ¹ºu è)º#º*º>ºrº€º‹º�ºͺÓºܺçºöº>»@»u»‚»¼»Á»é»¼¼%¼@¼B¼S¼`¼‡¼Œ¼œ¼¥¼°¼¾¼̼½/½4½\½—½¤½ß½ä½ò½¾B¾G¾o¾—¾¾¾˾ò¾û¾"¿3¿v`x�¨Ô¹ÔáÔïÔýÔÕ ÕGÕNÕwX¤¬¸™Ï™Ø™Þ™â™æ™ -ššx(¤Æh×�׆הק׺×××á× ØØØ>ØCØkØ~ؑخظØàØæØíØóØöØúØÙ&Ù7ÙHÙpÙÙy�}Œè— ˜)˜/˜O˜l˜n˜p˜�˜�˜ȘzpŽ™ȘÙ˜ä˜ñ˜÷˜™4™9™D™{à `ì}ì‹ì”ìØì íí$íFíKíMíuí{í„í³íÒíáí|Èíøêë#ëWëdë¨ë­ëÀëÅëÇëïëõëììLì[ì}ÎëHé_éfé}é‹éœé¦é´é½éÎéáéòé÷é ê)ê7êEêVêdêuê†ê—ê¨ê¹êÊêÔêåêòê~P'n¸“á“í“” ”;”L”Q”W”w”—”œ”«”Æ”à”ñ”þ”• •0•5•;•a•g•j•n•s•—•«•ϕܕᕖ––3–D–I–l–}–œ–¤–©–Å–Ö–Ø–ô–—h—pp{h—y—‚—�—•—µ—Ò—×—â—€xUa¸‰ɉÒ‰æ‰ï‰Š1ŠFŠ`ŠgŠ�°+hΑΫγÎÁÎÝÎùÎÏ ÏÏ3ÏSÏUÏuϑϭÏÏÏÞÏ‚.màÏ Ð#Ð+Ð9ÐGÐUÐYÐvЖИЛÐÌÐÞÐþÐÑÑ1Ñ?ÑCÑ`ртхѶѼÑÊÑÚÑèÑ ÒÒAÒqÒvÒ„Ò¤Ò¶ÒÖÒÛÒéÒ Ó)ÓKÓNÓ\ÓjÓŽÓ�ÓÃÓäÓìÓ Ô Ôƒè % ’G’a’„’–’·’¹’Ë’ì’î’“!“,“9“F“S“`““‡“¸“„X…­H´q´v´ˆ´š´¼´´Å´É´δú´µ:µGµLµxµ…µе”µ¶µÖµòµõµúµ¶2¶5¶W¶]¶`¶d¶�¶²¶Ŷ…P5ûû û3û]ûkûû‡û‹û—ûœû¦û°û¹û½ûÏûÕûÞûüü üü'ü+üJüLüTüeünürü„ü‘ü¤ü†hIS‰!‰5‰>‰`‰€‰•‰¯‰¶‰‡€}Šà‹ë‹Œ Œ.ŒNŒgŒ€Œ‚ŒžŒºŒ¿Œˆ�Œ›ÀŒËŒãŒìŒ�.�G�`�y�{�—�³�Ï�Ô�‰ˆ�«Ø�ï�Ž Ž.ŽNŽZŽ\ŽnŽqŽvŽƒŽŠ€­ºˆŽŸŽ³Ž¼ŽÞŽþŽ -��!�&�3�‹Pov Ô7Ô_ÔwÔŸÔ¨ÔŒ0Èë€Ù™ÙžÙ¬Ù¿ÙÒÙïÙÚÚ$ÚLÚQÚyڌڟڼÚäÚêÚñÚÿÚ ÛÛ.Û<ÛJÛ[ÛlÛ}Û¥Û´Û�P›¢H™Y™_™c™ˆ™¯™¶™ŽxNZÀËÒÜáÿ 0OTg�àW ,¼,Î,Ü,ï,ú, ----7-<-O-Q-e-x-z-�-‘-¢-µ-·-Ã-ã-ð-.7.<.C.H.W.‡.Œ.“.¯.Ô.Ü.ä.é.ÿ.//&/4/Y/j/p/Š/¦/«/³/È/Ð/Õ/Ú/ê/ø/0 00 00020:0O0W0\0^0l0y0“0˜0·0¿0Ô0Ü0á0ï0ô0ú01 11!121J1M1R1Ý1ò1ú1222*2/2=2E2K2S2a2d2r2ƒ2—2œ2î2ö2 333&3+3:3B3E3M3p3•3ž3¹3Ó3×3û344$4/4=4Y4y4”4®4¶4¾4Æ4Ë4Õ4ã4ö4555!50585G5O5^5f5u5}5Œ5”5£5«5º5Â5Ð5õ566*6F6M6R6g6€6‰6—6«6Å6Ñ6æ6ë6777%7-777L7U7c7m7‚7Š7’7—7¡7¶7»7Î7Ó7à7å7 8 8%848Y8z8Ÿ8É8ã8ð8!9;9@9E9Z9x9€9ˆ9�9–9£9«9¹9Ü9ú9 ::,:::D:R:\:j:€:…:Œ:Ÿ:´:Þ:ñ:û:;;;?;Z;_;d;p;x;};ƒ;š;¤;¸;½;Ì;í;ð;<<<<<<#</<7<<<A<U<Z<_<s<x<‚<„<’<—<¥<ª<¸<½<Ë<Ð<Õ<Ú<ß<û< =%=0=G=Q=e=j=y=š=�=­=°=Ê=Ï=Ô=Ü=á=ê=ï=û=>> >!>&>+>0>;>@>P>U>[>r>|>�>•>¤>Å>È>Ø>Û>õ>ú>ÿ>? ???&?.?3?8?L?Q?V?[?f?k?{?€?†?�?§?»?À?Ï?ð?ó?@@ @%@*@2@7@@@E@Q@Y@^@c@w@|@�@§@¬@À@Å@â@ç@ü@AA%A-A2AGALAjA‡AŽA›A¹AËAØAåAéAîAøABB"B'BÖFÖQÖ\ÖdÖfÖzÖÖ�Ö’Ö�Ö¤Ö©Ö®Ö¿ÖÊÖÕÖÚÖêÖñÖüÖ× ×/×J×eׄ׋×�×±×¼×Á×Ò×Ý×â×ó×þר Ø3Ø8Ø@ØKØVØZØbØfØrØ}؂ؓ؞أتصغØÎØÓØäØïØúØüØÙWÙ®0Æé8ÒUÒ_ÒsÒzÒ�Ò‰Ò‘Ò•Ò Ò«Ò³ÒÉÒÔÒÙÒäÒÓ ÓÓ$Ó,Ó.Ó9ÓDÓOÓZÓgÓrÓ}Ó‚Ó¦Ó¯@õˆ:£:®:´:Â:Í:×:Þ:æ:ñ:õ:ÿ: -;;;(;0;6;C;K;Q;^;f;l;t;};ƒ;¢;§;¸;°8¿ÃPLgLvL”L»L±0 ¬ð ù   ; C N ^ n • ¬ Í Ô Û þ '8Tfo~ ¥µÆÎÓÚìø "+0KRWhyˆ¢¸Üçîû  '.3@Vhwƒ”­¶Æ×Ûìý$6HO`gu�³Îàí(L^u‹¡¸ÜþAFWhz‰š«²¹»É×åó"<`{ˆš±Õù ").D[u„“š­®Êæÿ/²'D8WUW]WaWdWmWsW„WŽW™W¤W¾WËWêWõWX XX#X.XAX³Ø;ó˜0±0¼0Æ0Í0Ô0ß0ç01111'131>1P1W1[1f1j1s1Š1›1²1Ê1á1ì12"2*2>2P2U2]2m2…2 2¨2À2Ê2Ø2é233(3/3=3T3e3k3o3v3z3�3˜3£3­3¸3Ã3Ê3Ù3á3ó3ù34444(4,454I4w4Ž4¥4Ã4Ê4á4ì4ó45 -5 5/5E5T5\5f5‹5¢5À5Ë5â5í5ô56 6!606F6U6]6g6�6ˆ6�6Ÿ6Á6Ç6é6 7!777G7W7Z7e7p7{7†7•7œ7§7¹7Ð7î7888 878B8M8[8f8q8|8‡8”8Ÿ8®8È8Ð8Ò8î89$9D9N9Y9d9l9v9�9Œ9”9ž9£9…:´h ¯90LWy€£ÈÓÝå  4?fhz£²½ÅÏÓÛãîù "4]lw‰¬·ÁÌßý&FPjxƒ�°½ÏÚìø6X]iŒŽ±»ÊÛâéôû  '.9AH^iŒ–­ÀÈÐÙáò$(>Wmx‰œ§¾Üäìô ,4OQYw…’Ÿ©ºÙäòý -Ach‰¬Ôßé÷þ   * - 6 : = D K M X _ u | ‡ ¥ ¼ Î Û ð  % C H O Z q † ‘   ´ Å Í á ò !!*!E!W!c!z!…!ˆ!�!£!µ!Í!Ø!ï!ú!""")"<"S"e"|"š"¡"¸"Ã"Æ"Ñ"â"ð"û"##+#9#D#O#Z#h#~#‹#™#¨#º#Ô#ß#á#ó# $#$3$C$\${$›$¾$Ã$Ü$ÿ$%6%@%N%R%a%i%�%“%—%Ÿ%¯%·%Ç%Û%ø%&&'&I&_&‚&‡&›&¸&Î&ñ&ü&''+'6'b'w'Ž'¡'¥'­'¼'Í'Ò'Ù'ï'((#(6(>(a(l(ƒ(Ž(˜(£(Ï(ä(û())))4)K)])a)v)�)¢)¹)Ô)ë)*%*<*G*Q*h*‘0µðÊ%@RaRlRoRxR~RŽR•R¬R¶RÁRÌRÕRçRñRüRS$S+SJSnSyS€S‹S”S¦S±S´S¹SÃSÊSáSìSñSþST/T:TDTXTsT~T„T‰T‘T™T­TËTÖTìT÷TU$ULUfUyU—U¢U°U¹UÏUåUêUôUùUV2V=VHVOVZVpVyV„VšV¼VËVãVîVñV3W¶@±¶ÐKáKñKüKLL·@¸½L!L1L‰e‰w‰z‰€‰ž‰³‰»‰Ñ‰Ô‰ð‰Š)Š,Š2ŠPŠeŠwŠzŠ�ŠŠŠ’Š¨Š«ŠÇŠîŠ‹‹ ‹+‹@‹G‹J‹y‹‹�‹²‹Õ‹Ú‹à‹þ‹(ŒKŒPŒVŒtŒ¡ŒÄŒàŒåŒëŒ �'�E�P�a�r����Ÿ�¬�¼�Ì�Ü�ì�ü�ŽŽ Ž1ŽBŽGŽWŽ}Ž£Ž¿ŽÄŽÉŽÓŽñŽ�-�9�D�O�c�f�s�‡�Š�š�®�±�Á�Õ�Ø�è�ü�ÿ��#�&�6�J�M�h�y�|�‘�§�Â�Ð�á�÷�‘'‘*‘@‘E‘J‘Z‘x‘°‘´‘×‘Ü‘ì‘ -’B’F’i’n’x’–’´’¹’Ã’á’““%“C“e“ˆ“¤“©“³“Ñ“ó“”2”7”A”_”m”””¿”ç”ì”ö”•)•4•;•F•l•�•¢•¤•²•º•Ǖҕñ•ü• ––– –3–L–e–~–Œ–œ–¯–Ü–á–ë– ——H—l—~—€—…—�—­—¾—ñ—ø—˜#˜n˜ˆ˜²˜+™l™q™…™‘™˜™šRšhšmš‚šŒšªš»šîšõš ››E›M›„›·›Í›Ô›à›é›$œNœ\œ†œµœõœ �-�W�†�Ž�•�žOž|ž‘ž¤ž°žÑžÖžëžõžŸ$ŸWŸ^ŸtŸ}Ÿ®Ÿ¶ŸO T Y n x – § Ú á ÷ ¡|¡„¡»¡î¡¢ ¢¢ ¢[¢…¢“¢½¢ì¢,£V£d£Ž£½£Å£Ì£E¤†¤³¤È¤Û¤ç¤¥ ¥¥5¥J¥t¥�¥Ï¥Ò¥Þ¥ã¥è¥ò¥¦%¦O¦k¦ª¦­¦¹¦¾¦Ã¦Í¦ë¦§*§F§R§T§Y§i§§„§”§˜§`ª½ M^Ègågh hhFhshuhzh¡hÈhñh¾hXb˜¯¶ãñù",B¿8I I+IFI]IÀ8 `IqIŸI©IËI \ No newline at end of file diff --git a/LT/Compiler/Compiler.SPZ b/LT/Compiler/Compiler.SPZ deleted file mode 100644 index 5ffbb4910363cbefcbdfd2b1e1f165cdcac2a162..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 331 zcmeZfWB`K@CNRYS;woq6CFhi;q$()s`-JHG2m2;A>Iau3mSiUDc?3i$@p3gZwX}6O z=N7o6rWMbcGmk5=I9H*1K4)mKtC`7sXMf)SPaoHy_}~!7pb#so`3sv{+m)6TIBwE& z44ylmwf0L5Y8!hJQdvTD+&bpMQ{RynomcHy{6SP3wCOtW9oNw^oL%PT6vc zEg)n|(DJ?wf`{9#3WT3y>YH?oWlnb&*ZfqSug5M-G|IDziqQzTC8ANpbkVTs!ei|T zysi=1%$fqH`X%zk4l=WQNmv%2I`J~{^K%EU+!q3-T_G=B+nC#Xbeuy|Jp`XDI5tZ- zdG*=G_|9`Pjg3BQ#gGk*K$j7#)++7;yJgZD#MkkW?wsYf8CWyJ3O72fAGz+ b_P_K;Bs)x(bzcLg^0%cO!b)fC{xSmqq&|Wc diff --git a/LT/Compiler/ExpParser.CPZ b/LT/Compiler/ExpParser.CPZ deleted file mode 100644 index c11e4e3..0000000 --- a/LT/Compiler/ExpParser.CPZ +++ /dev/null @@ -1,837 +0,0 @@ -LTextern CP_PRSPUSH void PrsPush(ParseStack *ps,I8 val); -LTextern CP_PRSPOP I8 PrsPop(ParseStack *ps); - -#define PRST_UNARY_TERM 0 -#define PRST_UNARY_MODIFIERS 1 -#define PRST_DEREFERRENCE 2 -#define PRST_CHECK_BINARY_OPS 3 - -BoolU8 PrsParseExpression(LexStruct *lx,BoolU4 end_exp=FALSE) -{ - BoolU4 result=TRUE,question_clause=FALSE, - cont_unary,cont_check_binary_ops,is_lower; - I8 i,j,k; - IntermediateCode *tempi,*tempi_first=lx->cb.cb_out_ptr,*tempi2; - ClassStruct *tempc; - ParseStack *ps=MAlloc(sizeof(ParseStack)); - MemberListStruct *local_var; - ArrayDimStruct *tempad=NULL; - - ps->ptr=0; - PrsPush(ps,0); //terminate - PrsPush(ps,0); //terminate -try { - do { - lx->flags&=~(LF_PREINC+LF_PREDEC+LF_POSTINC+LF_POSTDEC+LF_FUNCTION); - do i=PrsUnaryTerm(lx,ps,&local_var,&tempad); - while (i==PRST_UNARY_TERM); - - while (i==PRST_UNARY_MODIFIERS) - i=PrsUnaryModifier(lx,ps,&local_var,&tempad); - - if (i==PRST_DEREFERRENCE) - PrsDereferrence(lx,ps); - - //Check for binary Ops - do { - i=PrsPop(ps); - tempc=PrsPop(ps); - if (i && i.u1[2]<=1) { - tempi=lx->cb.cb_last_out_ptr; - i=i.u2[0]; - tempc=tempi->ic_class; - if (Bt(deref_bitmap,i) && tempc->ptr_cnt) { - tempc-=sizeof(ClassStruct); - while (tempc->return_class) - tempc=tempc->return_class; - i=EC_DEREF+0x10000; - } else { - if (i==EC_ADDRESS) { - if (!(lx->flags & (LF_RAX|LF_ARRAY))) { - j=tempi->ic_opcode; - if (!Bt(deref_bitmap,j)) - PrsExcept(lx,"ST_INVALID_LVALUE"); - tempi->ic_opcode=EC_NOP; - tempc+=sizeof(ClassStruct); - } - } - } - CbAddIc(lx,i,0,tempc); - cont_check_binary_ops=TRUE; - } else { - PrsPush(ps,tempc); - PrsPush(ps,i); - i=lx->token; - k=binary_ops_table[i]; - if (k.u2[0]==EC_AND_AND || k.u2[0]==EC_OR_OR) - CbAddIc(lx,EC_NOP,0,sys_internal_types[IT_I8]); - if (k.u2[0]==EC_QUESTION) - question_clause=TRUE; - else if (k.u2[0]==EC_COLON) { - if (!question_clause) - k=0; - else - question_clause=FALSE; - } - if (!k.u1[2]) { - cont_check_binary_ops=FALSE; - cont_unary=FALSE; //DONE - } else { - Lex(lx); //skip op - if (Bt(assign_bitmap,k.u2[0])) { - tempi=lx->cb.cb_last_out_ptr; - tempc=tempi->ic_class; - j=tempi->ic_opcode; - if (!Bt(deref_bitmap,j)) - PrsExcept(lx,"ST_INVALID_LVALUE"); - tempi->ic_opcode=EC_NOP; - while (tempc->return_class) - tempc=tempc->return_class; - k.u1[2]=0x10; - } - do { - i=PrsPop(ps); //pop ops of higher prec - tempc=PrsPop(ps); - is_lower=FALSE; - if (i) { - if (k.u1[2]==i.u1[2]) { - if (!Bt(assign_bitmap,k.u2[0]) || - !Bt(assign_bitmap,i.u2[0])) - is_lower=TRUE; - } else if (k.u1[2]>i.u1[2]) - is_lower=TRUE; - } - if (is_lower) { - if (i.u2[0]==EC_AND_AND || i.u2[0]==EC_OR_OR) - CbAddIc(lx,EC_NOP,0,sys_internal_types[IT_I8]); - CbAddIc(lx,i,0,tempc); - tempi2=lx->cb.cb_last_out_ptr; - if (i.u1[3]&ECF_HAS_PUSH_CMP) { - tempi2->ic_flags|=ICF_POP_CMP; - CbAddIc(lx,EC_NOP,0,sys_internal_types[IT_I8]); - CbAddIc(lx,EC_AND_AND,0,sys_internal_types[IT_I8]); - tempi=lx->cb.cb_last_out_ptr; - tempi->ic_flags|=ICF_POP_CMP; - } - if (Bt(cmp_bitmap,k.u2[0]) && - Bt(cmp_bitmap,i.u2[0])) { - tempi2->ic_flags|=ICF_PUSH_CMP; - CbAddIc(lx,EC_NOP,0,sys_internal_types[IT_I8]); - CbAddIc(lx,EC_PUSH_CMP,0,tempc); - k.u1[3]|=ECF_HAS_PUSH_CMP; - } else if (k.u2[0]==EC_AND_AND || k.u2[0]==EC_OR_OR) - CbAddIc(lx,EC_NOP,0,sys_internal_types[IT_I8]); - } else { - PrsPush(ps,tempc); - PrsPush(ps,i); - tempi=lx->cb.cb_last_out_ptr; - tempc=tempi->ic_class; - PrsPush(ps,tempc); - PrsPush(ps,k); - cont_check_binary_ops=FALSE; - cont_unary=TRUE; - break; - } - } while (TRUE); - } - } - } while (cont_check_binary_ops); - } while (cont_unary); - while (TRUE) { - i=PrsPop(ps); - tempc=PrsPop(ps); - if (i) { - if (i.u2[0]==EC_AND_AND || i.u2[0]==EC_OR_OR) - CbAddIc(lx,EC_NOP,0,sys_internal_types[IT_I8]); - CbAddIc(lx,i,0,tempc); - if (i.u1[3]&ECF_HAS_PUSH_CMP) { - tempi=lx->cb.cb_last_out_ptr; - tempi->ic_flags|=ICF_POP_CMP; - CbAddIc(lx,EC_NOP,0,sys_internal_types[IT_I8]); - CbAddIc(lx,EC_AND_AND,0,sys_internal_types[IT_I8]); - tempi=lx->cb.cb_last_out_ptr; - tempi->ic_flags|=ICF_POP_CMP; - } - } else - break; - } -} catch { - if (Fs->except_argc>0) { - if (Fs->except_argv[0]==EXCEPT_COMPILER) { - lx->statement_cnt=0; - lx->braces_cnt=0; - result=FALSE; - Fs->catch_except=TRUE; - } - } -} - Free(ps); - if (end_exp && result) - CbAddIc(lx,EC_END_EXP,0,0); - return result; -} - - -U8 PrsUnaryTerm(LexStruct *lx,ParseStack *ps,MemberListStruct **local_var,ArrayDimStruct **tempad) -{ - I8 i,*i_ptr; - I8 argc_cnt,size; - U8 d; - SysHashEntry *temph; - ClassStruct *tempc,*tempc1,*tempc2; - GlblVarStruct *tempg; - MemberListStruct *tempm; - LexUndefEntry *templu; - CbMiscStruct *tempmc; - IntermediateCode *tempi; - BoolU4 needs_right_paren,is_first_param; - LexCbStack *templ,*templ1; - - *local_var=NULL; - switch (lx->token) { - case TK_INTEGER: - if (lx->cur_i<0) - CbAddIc(lx,EC_IMM,lx->cur_i,sys_internal_types[IT_U8]); - else - CbAddIc(lx,EC_IMM,lx->cur_i,sys_internal_types[IT_I8]); - Lex(lx); - return PRST_CHECK_BINARY_OPS; - case TK_DOUBLE: - i_ptr=&lx->cur_d; - CbAddIc(lx,EC_DOUBLE,*i_ptr,sys_internal_types[IT_DOUBLE]); - Lex(lx); - return PRST_CHECK_BINARY_OPS; - case TK_STR: - d=LexExtendStr(lx,&size); - if (lx->flags & LF_ASM_EXPRESSIONS) - CbAddIc(lx,EC_IMM,d,sys_internal_types[IT_I1]+sizeof(ClassStruct)); - else { - tempmc=CbMiscNew(lx,CBMT_STR_CONST); - CbAddIc(lx,EC_STR_CONST,tempmc,sys_internal_types[IT_I1]+sizeof(ClassStruct)); - tempmc->st_len=size; - tempmc->str=d; - lx->flags|=LF_HAS_MISC_DATA; - } - return PRST_CHECK_BINARY_OPS; - case TK_INSERT_BINARY: - d=lx->ident; - size=lx->ident_len; - lx->ident=NULL; - Lex(lx); - if (lx->flags & LF_ASM_EXPRESSIONS) - CbAddIc(lx,EC_IMM,d,sys_internal_types[IT_I1]+sizeof(ClassStruct)); - else { - tempmc=CbMiscNew(lx,CBMT_STR_CONST); - CbAddIc(lx,EC_STR_CONST,tempmc,sys_internal_types[IT_I1]+sizeof(ClassStruct)); - tempmc->st_len=size; - tempmc->str=d; - lx->flags|=LF_HAS_MISC_DATA; - } - return PRST_CHECK_BINARY_OPS; - case TK_INSERT_BINARY_TYPE: - case TK_INSERT_BINARY_SIZE: - CbAddIc(lx,EC_IMM,lx->cur_i,sys_internal_types[IT_U8]); - Lex(lx); - return PRST_CHECK_BINARY_OPS; - case '(': - Lex(lx); //Skip ( - if (!PrsParseExpression(lx)) - throw(EXCEPT_COMPILER,2); - if (lx->token!=')') - PrsExcept(lx,"ST_MISSING_RIGHT_PAREN"); - Lex(lx); //skip ) - lx->flags=(lx->flags & ~(LF_ARRAY+LF_FUNCTION)) | LF_RAX; - return PRST_UNARY_MODIFIERS; - } - i=unary_ops_table[lx->token]; - if (i.u1[2]) { - Lex(lx); //Skip op - if (i.u2[0]==EC_ADDRESS && lx->token==TK_IDENT) { - if (tempc=lx->hash_entry) { - if (tempc->type & HTT_FUNCTION) { - if (!Bt(&tempc->flags,Cf_INTERNAL)) { - Lex(lx); //skip fun name - if (Bt(&tempc->flags,Cf_EXTERN)) { - if (lx->a) - PrsExcept(lx,"ST_ADDRESS_EXTERN"); - else - CbAddIc(lx,EC_IMM, - &tempc->executable_address,sys_internal_types[IT_PTR]); - CbAddIc(lx,EC_DEREF,0, - sys_internal_types[IT_PTR]); - } else { - if (lx->a) - CbAddIc(lx,EC_ABSOLUTE_ADDRESS, - tempc->executable_address,sys_internal_types[IT_PTR]); - else - CbAddIc(lx,EC_IMM, - tempc->executable_address,sys_internal_types[IT_PTR]); - } - return PRST_CHECK_BINARY_OPS; - } - } - } - } - PrsPush(ps,tempc); - PrsPush(ps,i); - return PRST_UNARY_TERM; - } - if (lx->token=='+') { - Lex(lx); - return PRST_UNARY_TERM; - } - - if (lx->token!=TK_IDENT) { - if (lx->token==TK_PLUS_PLUS) { - Lex(lx); - lx->flags|=LF_PREINC; - return PRST_UNARY_TERM; - } - if (lx->token==TK_MINUS_MINUS) { - Lex(lx); - lx->flags|=LF_PREDEC; - return PRST_UNARY_TERM; - } - if (lx->token=='$$' && lx->flags & LF_ASM_EXPRESSIONS) { - Lex(lx); - CbAddIc(lx,EC_IMM,lx->instruction_pointer,sys_internal_types[IT_I8]); - return PRST_CHECK_BINARY_OPS; - } - PrsExcept(lx,"ST_MISSING_EXPRESSION"); - } - - if (tempm=lx->local_var_entry) { - lx->flags&=~(LF_RAX+LF_ARRAY+LF_FUNCTION); - tempc=tempm->member_class+sizeof(ClassStruct); - if (tempm->flags & MLF_FUNCTION) { - lx->flags|=LF_FUNCTION; - PrsPush(ps,tempm->return_class); - PrsPush(ps,tempm->parameter_cnt); - } - if (tempm->cnt) { - *tempad=tempm->dim_list; - lx->flags|=LF_ARRAY; - tempc+=sizeof(ClassStruct); - } - CbAddIc(lx,EC_RBP,0,tempc); - CbAddIc(lx,EC_IMM,tempm->offset,tempc); - CbAddIc(lx,EC_ADD,0,tempc); - Lex(lx); //skip var name - *local_var=tempm; - return PRST_UNARY_MODIFIERS; - } - - if (!(temph=lx->hash_entry)) { - if (!(lx->flags & LF_ASM_EXPRESSIONS)) - PrsExcept(lx,"ST_INVALID_LVALUE"); - temph=MAllocZ(sizeof(SysHashEntry)); - temph->str=lx->ident; - lx->ident=NULL; - temph->use_cnt=0; - SetSourceFileInfo(lx,temph); - temph->user_data0=0; - if (temph->str[0]=='@' && - temph->str[1]=='@') { - temph->type=HTT_SYS_SYMBOL | HTT_UNRESOLVED_LOCAL; - AddSysHashEntry(temph,lx->local_hash_table); - } else { - temph->type=HTT_SYS_SYMBOL | HTT_UNRESOLVED_GLBL; - AddSysHashEntry(temph,lx->glbl_hash_table); - } - } - - if (temph->type & HTT_SYS_SYMBOL) { - if (!(temph->type & HTT_LITERAL) && - !(temph->type & HTT_IMPORT)) - lx->absolute_address_cnt++; - if (temph->type & (HTT_UNRESOLVED_LOCAL|HTT_UNRESOLVED_GLBL)) { - templu=MAlloc(sizeof(LexUndefEntry)); - templu->hash=temph; - templu->next=lx->undef_hash_entry; - lx->undef_hash_entry=templu; - if (temph->type & HTT_UNRESOLVED_LOCAL) - lx->flags|=LF_UNRESOLVED_LOCAL; - else - lx->flags|=LF_UNRESOLVED_GLBL; - CbAddIc(lx,EC_IMM,&temph->user_data0,sys_internal_types[IT_PTR]); - CbAddIc(lx,EC_DEREF,0,sys_internal_types[IT_PTR]); - } else { - if (lx->a && !(temph->type & HTT_LITERAL)) - CbAddIc(lx,EC_ABSOLUTE_ADDRESS,temph->user_data0,sys_internal_types[IT_PTR]); - else - CbAddIc(lx,EC_IMM,temph->user_data0,sys_internal_types[IT_PTR]); - } - Lex(lx); - return PRST_CHECK_BINARY_OPS; - } - - if (temph->type & HTT_FUNCTION) { - is_first_param=TRUE; - Lex(lx); //skip fun name - CbPush(lx); - templ=lx->cb.cb_next; - lx->cb.cb_next=NULL; - tempc=temph; - i=tempc->parameter_cnt; - tempm=tempc->member_list; - argc_cnt=0; - if (lx->token!='(') - needs_right_paren=FALSE; - else { - Lex(lx); - needs_right_paren=TRUE; - } - while (i--) { - if (lx->token==',') - Lex(lx); - else if (!is_first_param && lx->token!=')') - PrsExcept(lx,"ST_EXPECTING_COMMA"); - CbInitOutPtrs(&lx->cb); - if (tempm->flags & MLF_DEFAULT_AVAILABLE && - (lx->token==')' || !needs_right_paren)) - CbAddIc(lx,EC_IMM,tempm->default_value,tempm->member_class); - else - if (!PrsParseExpression(lx)) - throw(EXCEPT_COMPILER,3); - else { - is_first_param=FALSE; - CbPush(lx); - CbAddIc(lx,EC_NULL,0,0); - tempi=CmpOptPass1(lx,NULL,FALSE); - CbPop(lx); - tempc1=tempi->ic_class; - while (tempc1->return_class) - tempc1=tempc1->return_class; - tempc2=tempm->member_class; - while (tempc2->return_class) - tempc2=tempc2->return_class; - if (tempc2->sub_type==IT_DOUBLE && - tempc1->sub_type!=IT_DOUBLE) - tempi->ic_flags|=ICF_R_TO_DOUBLE; - else - if (tempc2->sub_type!=IT_DOUBLE && - tempc1->sub_type==IT_DOUBLE) - tempi->ic_flags|=ICF_R_TO_INT; - } - CbAddIc(lx,EC_NULL,0,0); - CbPush(lx); - tempm=tempm->next; - } - if (tempm && tempm->flags & MLF_DOT_DOT_DOT) { - CbInitOutPtrs(&lx->cb); - CbAddIc(lx,EC_IMM,0,tempm->member_class); - tempi=lx->cb.cb_last_out_ptr; - CbAddIc(lx,EC_NULL,0,0); - CbPush(lx); - if (needs_right_paren) { - if (lx->token!=')') { - do { - if (lx->token==',') - Lex(lx); - else if (!is_first_param) - PrsExcept(lx,"ST_EXPECTING_COMMA"); - CbInitOutPtrs(&lx->cb); - if (!PrsParseExpression(lx)) - throw(EXCEPT_COMPILER,4); - is_first_param=FALSE; - CbAddIc(lx,EC_NULL,0,0); - CbPush(lx); - argc_cnt++; - } while (lx->token==','); - } - } - tempi->ic_data=argc_cnt++; //++ so add_esp latter works - } - if (needs_right_paren) { - if (lx->token!=')') - PrsExcept(lx,"ST_MISSING_RIGHT_PAREN"); - Lex(lx); - } - templ1=templ->cb_next; - templ->cb_next=lx->cb.cb_next; - lx->cb.cb_next=templ; - CbPop(lx); - templ=lx->cb.cb_next; - lx->cb.cb_next=templ1; - CbAddIc(lx,EC_CALL_START,tempc,0); - while (templ) { - templ1=templ->cb_next; - CbAppend(lx,templ); - if (!Bt(&tempc->flags,Cf_INTERNAL)) - lx->cb.cb_last_out_ptr->ic_flags|=ICF_PUSH_RESULT; - templ=templ1; - } - if (Bt(&tempc->flags,Cf_INTERNAL)) - CbAddIc(lx,tempc->executable_address,0,tempc->return_class); - else if (Bt(&tempc->flags,Cf_EXTERN)) { - if (lx->a) { - if (tempc->type&HTT_IMPORT) - CbAddIc(lx,EC_CALL_INDIRECT2,tempc->executable_address,tempc->return_class); - else - CbAddIc(lx,EC_CALL_EXTERN,tempc,tempc->return_class); - } else - CbAddIc(lx,EC_CALL_INDIRECT2,&tempc->executable_address,tempc->return_class); - CbAddIc(lx,EC_ADD_RSP,(argc_cnt+tempc->parameter_cnt)<<3,tempc->return_class); - } else { - CbAddIc(lx,EC_CALL,tempc->executable_address,tempc->return_class); - CbAddIc(lx,EC_ADD_RSP,(argc_cnt+tempc->parameter_cnt)<<3,tempc->return_class); - } - CbAddIc(lx,EC_CALL_END,tempc,tempc->return_class); - lx->flags=(lx->flags|LF_RAX) & ~(LF_ARRAY|LF_FUNCTION); - return PRST_UNARY_MODIFIERS; - } - if (temph->type & HTT_GLBL_VAR) { - tempg=temph; - tempc=tempg->var_class+sizeof(ClassStruct); - lx->flags&=~(LF_RAX|LF_ARRAY|LF_FUNCTION); - if (tempg->cnt) { - *tempad=tempg->dim_list; - tempc+=sizeof(ClassStruct); - lx->flags|=LF_ARRAY; - } - if (tempg->flags & GVAF_FUNCTION) { - //TODO:Not implemented - lx->flags|=LF_FUNCTION; - } - if (lx->a) { - if (tempg->flags & GVAF_EXTERN) { - CbAddIc(lx,EC_IMM,&tempg->data_address,tempc); - CbAddIc(lx,EC_DEREF,0,tempc); - } else { - if (tempg->flags & GVAF_IMPORT) { - CbAddIc(lx,EC_ABSOLUTE_ADDRESS,tempg->data_address,tempc+sizeof(ClassStruct)); - CbAddIc(lx,EC_DEREF,0,tempc); - } else - CbAddIc(lx,EC_ABSOLUTE_ADDRESS,tempg->data_address,tempc); - } - } else { - if (tempg->flags & GVAF_EXTERN) { - CbAddIc(lx,EC_IMM,&tempg->data_address,tempc); - CbAddIc(lx,EC_DEREF,0,tempc); - } else - CbAddIc(lx,EC_IMM,tempg->data_address,tempc); - } - Lex(lx); - return PRST_UNARY_MODIFIERS; - } - if (!(temph->type & HTT_KEYWORD)) - PrsExcept(lx,"ST_MISSING_EXPRESSION"); - if (temph->user_data0==KW_SIZEOF) { - if (Lex(lx)!='(') PrsExcept(lx,"ST_EXPECTING_LEFT_PAREN"); - if (Lex(lx)!=TK_IDENT) - PrsExcept(lx,"ST_INVALID_CLASS"); - if (tempm=lx->local_var_entry) { - tempc=tempm->member_class; - i=tempc->size; - if (tempm->cnt) - i*=tempm->cnt; - } else { - tempc=lx->hash_entry; - if (!tempc || !(tempc->type & (HTT_CLASS|HTT_INTERNAL_TYPE|HTT_GLBL_VAR))) - PrsExcept(lx,"ST_INVALID_CLASS"); - i=tempc->size; - } //TODO: should allow '.member', etc; - if (Lex(lx)=='*') { - while (Lex(lx)=='*'); - i=sizeof(void *); - } - CbAddIc(lx,EC_IMM,i,sys_internal_types[IT_I8]); - if (lx->token!=')') - PrsExcept(lx,"ST_MISSING_RIGHT_PAREN"); - Lex(lx); - return PRST_CHECK_BINARY_OPS; - } else if (temph->user_data0==KW_OFFSET) { - if (Lex(lx)!='(') PrsExcept(lx,"ST_EXPECTING_LEFT_PAREN"); - if (Lex(lx)!=TK_IDENT) - PrsExcept(lx,"ST_INVALID_CLASS"); - if (tempm=lx->local_var_entry) - tempc=tempm->member_class; - else { - tempc=lx->hash_entry; - if (!tempc || !(tempc->type & (HTT_CLASS|HTT_GLBL_VAR))) - PrsExcept(lx,"ST_INVALID_CLASS"); - else if (tempc->type & HTT_GLBL_VAR) - tempc=tempc><(GlblVarStruct *)->var_class; - } - if (Lex(lx)!='.') - PrsExcept(lx,"ST_EXPECTING_DOT"); - if (Lex(lx)!=TK_IDENT) - PrsExcept(lx,"ST_INVALID_MEMBER"); - if (!(tempm=FindMember(lx->ident,tempc))) - PrsExcept(lx,"ST_INVALID_MEMBER"); - CbAddIc(lx,EC_IMM,tempm->offset,sys_internal_types[IT_I8]); - if (Lex(lx)!=')') - PrsExcept(lx,"ST_MISSING_RIGHT_PAREN"); - Lex(lx); - return PRST_CHECK_BINARY_OPS; - } - PrsExcept(lx,"ST_MISSING_EXPRESSION"); -} - -U8 PrsUnaryModifier(LexStruct *lx,ParseStack *ps,MemberListStruct **local_var,ArrayDimStruct **tempad) -{ - I8 i,j; - LexCbStack *templ,*templ2,*templl; - ClassStruct *tempc,*tempc1; - MemberListStruct *tempm; - IntermediateCode *tempi,*tempi1; - ArrayDimStruct *tempad1; - if (lx->flags & LF_ASM_EXPRESSIONS) - return PRST_CHECK_BINARY_OPS; - if (lx->token==TK_DEREFERRENCE) { - tempi=lx->cb.cb_last_out_ptr; - if (!(lx->flags & (LF_RAX | LF_ARRAY))) { - tempc=tempi->ic_class-sizeof(ClassStruct); - CbAddIc(lx,EC_DEREF+0x10000,0,tempc); - } else - tempi->ic_class-=sizeof(ClassStruct); - } else if (lx->token=='.') { - if (*local_var) { - tempm=*local_var; - tempm->flags|=MLF_NO_REG_VARIABLE; - } - } - *local_var=NULL; - if (lx->token=='.' || lx->token==TK_DEREFERRENCE) { - tempi=lx->cb.cb_last_out_ptr; - tempc=tempi->ic_class; - if (!(lx->flags & LF_RAX)) - tempc-=sizeof(ClassStruct); - if (!(tempc->type & HTT_CLASS)) - PrsExcept(lx,"ST_INVALID_CLASS"); - if (Lex(lx)!=TK_IDENT) - PrsExcept(lx,"ST_INVALID_MEMBER"); - if (!(tempm=FindMember(lx->ident,tempc))) - PrsExcept(lx,"ST_INVALID_MEMBER"); - Lex(lx); //skip member name - tempc1=tempm->member_class+sizeof(ClassStruct); - CbAddIc(lx,EC_IMM,tempm->offset,tempc1); - lx->flags&=~(LF_RAX|LF_ARRAY|LF_FUNCTION); - if (tempm->cnt) { - *tempad=tempm->dim_list; - tempc1+=sizeof(ClassStruct); - lx->flags|=LF_ARRAY; - } - if(tempm->flags & MLF_FUNCTION) { - PrsPush(ps,tempm->return_class); - PrsPush(ps,tempm->parameter_cnt); - lx->flags|=LF_FUNCTION; - } - CbAddIc(lx,EC_ADD,0,tempc1); - return PRST_UNARY_MODIFIERS; - } - if (lx->token==TK_CAST) { - if (Lex(lx)!='(') - PrsExcept(lx,"ST_EXPECTING_LEFT_PAREN"); - if (Lex(lx)!=TK_IDENT) - PrsExcept(lx,"ST_INVALID_CLASS"); - tempc=lx->hash_entry; - if (!tempc || !(tempc->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) - PrsExcept(lx,"ST_INVALID_CLASS"); - while (Lex(lx)=='*') - tempc+=sizeof(ClassStruct); - tempc+=sizeof(ClassStruct); - tempi=lx->cb.cb_last_out_ptr; - tempi->ic_class=tempc; - if (lx->token!=')') - PrsExcept(lx,"ST_MISSING_RIGHT_PAREN"); - Lex(lx); - return PRST_UNARY_MODIFIERS; - } - if (lx->token=='[') { - Lex(lx); - tempi=lx->cb.cb_last_out_ptr; - if (!(lx->flags & (LF_ARRAY | LF_RAX))) { - tempc=tempi->ic_class-sizeof(ClassStruct); - while (!(tempc->type & HTT_INTERNAL_TYPE) && tempc->return_class) - tempc=tempc->return_class; - i=EC_DEREF+0x10000; - CbAddIc(lx,i,0,tempc); - } else { - tempc=tempi->ic_class; - if (!(lx->flags & LF_RAX)) - tempc-=sizeof(ClassStruct); - } - tempc1=tempc-sizeof(ClassStruct); - if (tempad1=*tempad) { - CbAddIc(lx,EC_IMM,tempad1->cnt*tempc1->size,tempc); - if (*tempad=tempad1->next) { - if (!PrsParseExpression(lx)) - throw(EXCEPT_COMPILER,5); - if (lx->token!=']') - PrsExcept(lx,"ST_MISSING_RIGHT_BRACKET"); - Lex(lx); //skip ] - tempi1=lx->cb.cb_last_out_ptr; - if (tempi1->ic_class->sub_type==IT_DOUBLE) - tempi1->ic_flags|=ICF_R_TO_INT; - CbAddIc(lx,EC_MUL,0,tempc); - tempi1=lx->cb.cb_last_out_ptr; - tempi1->ic_flags|=ICF_USE_INT; - CbAddIc(lx,EC_ADD,0,tempc); - tempi1=lx->cb.cb_last_out_ptr; - tempi1->ic_flags|=ICF_USE_INT; - lx->flags|=LF_RAX; - return PRST_UNARY_MODIFIERS; - } - } else - CbAddIc(lx,EC_IMM,tempc1->size,tempc); - if (!PrsParseExpression(lx)) - throw(EXCEPT_COMPILER,5); - if (lx->token!=']') - PrsExcept(lx,"ST_MISSING_RIGHT_BRACKET"); - Lex(lx); //skip ] - tempi1=lx->cb.cb_last_out_ptr; - if (tempi1->ic_class->sub_type==IT_DOUBLE) - tempi1->ic_flags|=ICF_R_TO_INT; - CbAddIc(lx,EC_MUL,0,tempc); - tempi1=lx->cb.cb_last_out_ptr; - tempi1->ic_flags|=ICF_USE_INT; - CbAddIc(lx,EC_ADD,0,tempc); - tempi1=lx->cb.cb_last_out_ptr; - tempi1->ic_flags|=ICF_USE_INT; - lx->flags&=~(LF_RAX|LF_ARRAY); - return PRST_UNARY_MODIFIERS; - } - if (lx->token=='(' && lx->flags & LF_FUNCTION) { - tempi=lx->cb.cb_last_out_ptr; - tempc=tempi->ic_class-sizeof(ClassStruct); - if (!(lx->flags & (LF_RAX | LF_ARRAY))) - CbAddIc(lx,EC_DEREF,0,sys_internal_types[IT_PTR]); - else - tempi->ic_class=tempc; - CbAddIc(lx,EC_SET_RAX,0,sys_internal_types[IT_PTR]); - CbAddIc(lx,EC_NOP1,1,sys_internal_types[IT_PTR]); //balance the books - CbAddIc(lx,EC_CALL_START,0,tempc); - CbAddIc(lx,EC_PUSH_REGS,1<cb.cb_next; - lx->cb.cb_next=NULL; - while (i--) { - if (lx->token==',') - Lex(lx); - CbInitOutPtrs(&lx->cb); - if (!PrsParseExpression(lx)) - throw(EXCEPT_COMPILER,6); - CbAddIc(lx,EC_NULL,0,0); - CbPush(lx); - } - if (lx->token!=')') - PrsExcept(lx,"ST_MISSING_RIGHT_PAREN"); - Lex(lx); //skip ')' - templl=templ->cb_next; - templ->cb_next=lx->cb.cb_next; - lx->cb.cb_next=templ; - CbPop(lx); - templ=lx->cb.cb_next; - lx->cb.cb_next=templl; - while (templ) { - templ2=templ->cb_next; - CbAppend(lx,templ); - lx->cb.cb_last_out_ptr->ic_flags|=ICF_PUSH_RESULT; - templ=templ2; - } - CbAddIc(lx,EC_CALL_INDIRECT,j<<3,tempc); - CbAddIc(lx,EC_ADD_RSP,j<<3+8,tempc); - CbAddIc(lx,EC_CALL_END,0,tempc); - lx->flags=(lx->flags | LF_RAX)&~(LF_ARRAY | LF_FUNCTION); - return PRST_UNARY_MODIFIERS; - } - if (lx->token==TK_PLUS_PLUS) { - Lex(lx); - lx->flags|=LF_POSTINC; - return PRST_DEREFERRENCE; - } - if (lx->token==TK_MINUS_MINUS) { - Lex(lx); - lx->flags|=LF_POSTDEC; - return PRST_DEREFERRENCE; - } - return PRST_DEREFERRENCE; -} - -U8 PrsDereferrence(LexStruct *lx,ParseStack *ps) -{ - I8 i; - ClassStruct *tempc; - IntermediateCode *tempi; - if (lx->flags & LF_FUNCTION) { - ps->ptr--; - tempc=PrsPop(ps); - } - if (lx->flags & LF_RAX) - return PRST_CHECK_BINARY_OPS; - tempi=lx->cb.cb_last_out_ptr; - tempc=tempi->ic_class-sizeof(ClassStruct); - if (lx->flags & LF_ARRAY) { - tempi->ic_class=tempc; - return PRST_CHECK_BINARY_OPS; - } - - if (lx->flags & LF_PREINC) { - lx->flags&=~LF_PREINC; - i=EC_PP_; - } else if (lx->flags & LF_PREDEC) { - lx->flags&=~LF_PREDEC; - i=EC_MM_; - } else if (lx->flags & LF_POSTINC) { - lx->flags&=~LF_POSTINC; - i=EC__PP; - } else if (lx->flags & LF_POSTDEC) { - lx->flags&=~LF_POSTDEC; - i=EC__MM; - } else - i=EC_DEREF; - - while (tempc->return_class) - tempc=tempc->return_class; - CbAddIc(lx,i+0x10000,0,tempc); - return PRST_CHECK_BINARY_OPS; -} - -void *CompileExpression(LexStruct *lx,U8 *type=NULL) -{ - void *result; - U8 size; - DbgInfo *dbg=NULL; - BoolU4 old_trace=Btr(&lx->flags,LFf_OPT_TRACE_PRESENT); - CbPush(lx); - CbInitOutPtrs(&lx->cb); - CbAddIc(lx,EC_RETURN_START,0,0); - if (PrsParseExpression(lx,TRUE)) { - CbAddIc(lx,EC_RETURN_END,0,sys_internal_types[IT_I8]); - CbAddIc(lx,EC_RET,0,0); - CbAddIc(lx,EC_NULL,0,0); - result=CbCompile(lx,NULL,&size,&dbg,type); - } else - result=NULL; - CbPop(lx); - Free(dbg); - AssignBit(&lx->flags,LFf_OPT_TRACE_PRESENT,old_trace); - return result; -} - -BoolU8 GetExpression(LexStruct *lx,void **e) //FALSE=no err -{ - *e=CompileExpression(lx); - if (*e) - return TRUE; - else - return FALSE; -} - -I8 Expression(LexStruct *lx) //FALSE=no err -{ - I8 result; - void *e=CompileExpression(lx); - if (e) { - result=Call(e); - DelExpression(e); - } else - result=0; - return result; -} diff --git a/LT/Compiler/Lex.CPZ b/LT/Compiler/Lex.CPZ deleted file mode 100644 index 4a275a8..0000000 --- a/LT/Compiler/Lex.CPZ +++ /dev/null @@ -1,1222 +0,0 @@ -I1 *CmpPmt(BoolU4 double_semicolon=FALSE) -{ - I8 i; - I1 *s,*result; - - for (i=Fs->answers_displayed-1;i>=0;i--) { - if (Fs->answers_types[i]==IT_DOUBLE) - PrintF("ansd%d=%15.7g=%15e\r\n",i, - Fs->double_answers[i],Fs->double_answers[i]); - else - PrintF("ans%d=0x%016X=%d\r\n",i, - Fs->answers[i],Fs->answers[i]); - } - s=CurDir; - PutS(s); - Free(s); - PutChar('>'); - s=MGetS; - if (double_semicolon) { - i=StrLen(s); - result=MAlloc(i+4); - MemCpy(result,s,i+1); - i--; - while (i>=0 && (result[i]==CH_SPACE || result[i]==CH_SHIFT_SPACE || result[i]==CH_TAB)) - i--; - i++; - if (i>0 && result[i-1]==';') - result[i++]=';'; //The Lex goes one beyond - result[i++]=13;//#define goes to - result[i++]=10; - result[i]=0; - } else - result=NewStr(s); - Free(s); - return result; -} - -LexStruct *LexNew(I1 *buf,U8 flags,I1 *filename) -{ - LexStruct *lx=MAlloc(sizeof(LexStruct)); - LexFileStruct *tempf=&lx->lfns[0]; - MemSet(lx,0,offset(LexStruct.lfns)+sizeof(LexFileStruct)); - lx->next=lx; - lx->last=lx; - lx->flags=flags; - lx->lag_line_num=1; - lx->pass_trace_mask=0b100111111; - lx->hash_mask=HTT_ALL; - lx->hash_table_list=Fs->hash_table; - lx->define_hash_table=Fs->hash_table; - lx->cur_lfn=tempf; - lx->next_exe_blk=&lx->next_exe_blk; - lx->last_exe_blk=&lx->next_exe_blk; - if (!filename) - tempf->name=NewStr(sys_temp_filename); - else - tempf->name=filename; - if (flags & LF_PROMPT) - buf=MAllocZ(4); - tempf->buf=buf; - tempf->buf_ptr=buf; - tempf->line_start=buf; - tempf->line_num=1; - lx->cur_buf_ptr=buf; - return lx; -} - -void LexDel(LexStruct *lx) -{ - LexFileStruct *tempf=lx->cur_lfn; - Ltf *l; - - while (tempf!=&lx->lfns[0]) { - if (l=tempf->l) - CallExtNum(EXT_LTF_DEL,l); - Free(tempf->buf); - Free(tempf->name); - tempf-=sizeof(LexFileStruct); - } - Free(tempf->name); - if (!(lx->flags & LF_DONT_FREE_BUFFER)) - Free(tempf->buf); - Free(lx->ident); - Free(lx); -} - - -void SetSourceFileInfo(LexStruct *lx,SysHashEntry *h) -{ - LexFileStruct *tempf=lx->cur_lfn; - h->source_link=MSPrintF("FL:%s,%d",tempf->name,tempf->line_num); - if (Bt(&lx->flags,LFf_KEEP_PRIVATE)) - h->type|=HTT_PRIVATE; - if (lx->cur_index) - h->index=NewStr(lx->cur_index); - else - h->index=NULL; -} - -void LexPutToken(LexStruct *lx) -{ - PutChar('"'); - if (lx->token==TK_IDENT || lx->token==TK_STR) - PutS(lx->ident); - else if (lx->token==TK_INTEGER) - cout "INT:",lx->cur_i; - else if (lx->token==TK_DOUBLE) - cout "DBL:",lx->cur_d; - else if (lx->token>=CH_SHIFT_SPACE && lx->token<=0x7E) - PutChar(lx->token); - else { - cout "T:",lx->token; - } - PutS("\" "); -} - -U4 lex_zeros=0,lex_line_feed=0x000A; - -void LexBackupLastChar(LexStruct *lx) -{ - LexFileStruct *tempf=lx->cur_lfn; - tempf->buf_ptr=lx->cur_buf_ptr; - if (lx->flags & LF_USE_LAST_I1) { - tempf->last_I1=lx->last_I1; - lx->flags&=~LF_USE_LAST_I1; - } else - tempf->last_I1=0; -} - -U8 LexGetChar(LexStruct *lx) -{ - U1 *src; - LexFileStruct *tempf,*tempf1; - BoolU4 cont; - U8 result; - Ltf *l; - LtfEntry *cl; - U1 *ptr; - if (lx->flags & LF_USE_LAST_I1) { - lx->flags&=~LF_USE_LAST_I1; - if (lx->last_I1==CH_SHIFT_SPACE) - return CH_SPACE; - else - return lx->last_I1; - } - do { -lex_getchar_start: - - src=lx->cur_buf_ptr++; - switch (lx->last_I1=result=*src++) { - case 0: - tempf=lx->cur_lfn; - if (tempf->flags & LFSF_IS_LTF) { - l=tempf->l; - cl=tempf->cur_entry; - cl=cl->next; - while (cl!=l) { - cont=FALSE; - tempf->cur_entry=cl; - switch (cl->btype) { - case LTFT_TEXT: - if (*(src=cl->display)) - tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=src; - else { - cont=TRUE; - cl=cl->next; - } - break; - case LTFT_CR: - src=&lex_line_feed; - tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=src; - - tempf->line_start=cl->next; - tempf->line_num=cl->y+2; //+1 because CR is on previous line, +1 because l y starts at zero - compiled_lines++; - if (lx->flags & LF_ECHO) - CrLf; - lx->last_I1=CH_CR; - return CH_CR; - case LTFT_TAB: - src=&lex_zeros; - tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=src; - - tempf->line_num=cl->y+1; - if (lx->flags & LF_ECHO) - PutChar(CH_TAB); - lx->last_I1=CH_TAB; - return CH_TAB; - case LTFT_PAGE_BREAK: - src=&lex_zeros; - tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=src; - - tempf->line_num=cl->y+2; //TODO: should be a page down - if (lx->flags & LF_ECHO) - PutChar(CH_FORM_FEED); - lx->last_I1=CH_FORM_FEED; - return CH_FORM_FEED; - case LTFT_INSERT_BINARY: - src=&lex_zeros; - tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=src; - - tempf->line_num=cl->y+1; - Free(lx->ident); - lx->ident=NULL; - lx->ident_len=0; - if (cl->bin_data) { - ptr=MAlloc(cl->bin_data->size); - if (cl->bin_data->data) - MemCpy(ptr,cl->bin_data->data,cl->bin_data->size); - lx->ident=ptr; - lx->ident_len=cl->bin_data->size; - } - lx->last_I1=TK_INSERT_BINARY; - return TK_INSERT_BINARY; - case LTFT_INSERT_BINARY_TYPE: - src=&lex_zeros; - tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=src; - - if (cl->bin_data) - lx->cur_i=cl->bin_data->type; - else - lx->cur_i=0; - tempf->line_num=cl->y+1; - lx->last_I1=TK_INSERT_BINARY_TYPE; - return TK_INSERT_BINARY_TYPE; - case LTFT_INSERT_BINARY_SIZE: - src=&lex_zeros; - tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=src; - - if (cl->bin_data) - lx->cur_i=cl->bin_data->size; - else - lx->cur_i=0; - tempf->line_num=cl->y+1; - lx->last_I1=TK_INSERT_BINARY_SIZE; - return TK_INSERT_BINARY_SIZE; - default: - cont=TRUE; - cl=cl->next; - } - if (!cont) break; - } - if (cl==l) { - CallExtNum(EXT_LTF_DEL,l); - tempf->l=tempf->buf=NULL; - Free(tempf->name); - tempf->name=NULL; - goto here; - } - } else { -here: - tempf=lx->cur_lfn; - if (tempf!=&lx->lfns[0]) { - Free(tempf->name); - tempf->name=NULL; - Free(tempf->buf); - tempf->buf=NULL; - tempf1=tempf; - lx->cur_lfn=tempf-=sizeof(LexFileStruct); - lx->cur_buf_ptr=tempf->buf_ptr; - if (lx->last_I1=tempf->last_I1) { - lx->flags&=~LF_USE_LAST_I1; - if (lx->last_I1==CH_SHIFT_SPACE) - return CH_SPACE; - else - return lx->last_I1; - } else - lx->flags&=~LF_USE_LAST_I1; - } else { - if (lx->flags & LF_PROMPT) { - Free(tempf->buf); - lx->cur_buf_ptr=tempf->line_start= - tempf->buf_ptr=tempf->buf=CmpPmt(TRUE); - } else { - lx->last_I1=TK_EOF; - lx->cur_buf_ptr=src-1; - return TK_EOF; - } - } - } - break; - case CH_CURSOR: - case CH_FORM_FEED: - goto lex_getchar_start; - case CH_LINE_FEED: - tempf=lx->cur_lfn; - if (tempf->flags & LFSF_IS_LTF) - if (result==CH_SHIFT_SPACE) - return CH_SPACE; - else - return result; - else { - tempf->line_num++; - compiled_lines++; - tempf->line_start=src; - } - default: - if (lx->flags & LF_ECHO) - PutChar(result); - if (result==CH_SHIFT_SPACE) - return CH_SPACE; - else - return result; - } - } while (TRUE); -} - -void LexSkipEol(LexStruct *lx) -{ - U1 ch; - do ch=LexGetChar(lx); - while (ch && ch!=CH_CR && ch!=CH_LINE_FEED); -} - -void DelExpression(U1 *code) -{ - Free(code); -} - - -U8 EvalExpression(LexStruct *lx) -{ - U1 *exp; - U8 result=0; - if (!GetExpression(lx,&exp)) - LexSkipEol(lx); - else { - result=Call(exp); - DelExpression(exp); - } - return result; -} - -void LexIncludeStr(LexStruct *lx,I1 *filename, - I1 *src,BoolU4 actual_file) -{ - LexFileStruct *tempf; - LexBackupLastChar(lx); - tempf=lx->cur_lfn+sizeof(LexFileStruct); - lx->cur_lfn=tempf; - tempf->buf=src; - tempf->buf_ptr=src; - tempf->line_num=1; - tempf->line_start=src; - tempf->last_I1=0; - if (actual_file) { - tempf->name=AbsoluteFileName(filename); - tempf->flags=LFSF_IS_INCLUDED; - } else { - tempf->name=NewStr(sys_temp_filename); - tempf->flags=0; - } - lx->cur_buf_ptr=src; -} - -void LexIncludeLtf(LexStruct *lx,I1 *filename) -{ - BoolU4 is_null; - LtfEntry *cl; - Ltf *l; - LexFileStruct *tempf; - - LexBackupLastChar(lx); - tempf=lx->cur_lfn+sizeof(LexFileStruct); - lx->cur_lfn=tempf; - tempf->line_start=&lex_zeros; - if (ext[EXT_LTF_READ]) - l=CallExtNum(EXT_LTF_READ,filename,LTFF_DOUBLE_DOLLARS+LTFF_NO_PICWORDS); - else - throw(EXCEPT_COMPILER,1); //This should never happen - tempf->l=l; - cl=l->dummy.next; - while (cl!=l) { - if (cl->btype==LTFT_TEXT) - break; - if (cl->btype==LTFT_TAB) - break; - if (cl->btype==LTFT_CR) - break; - if (cl->btype==LTFT_INSERT_BINARY) - break; - if (cl->btype==LTFT_INSERT_BINARY_TYPE) - break; - if (cl->btype==LTFT_INSERT_BINARY_SIZE) - break; - cl=cl->next; - } - if (cl!=l) { - tempf->line_start=cl; - tempf->line_num=cl->y+1; - if (cl->btype==LTFT_TEXT) { - tempf->cur_entry=cl; - tempf->buf=cl->display; - tempf->buf_ptr=cl->display; - } else { - tempf->cur_entry=cl->last; //TODO might be problem at begining of file - tempf->buf=&lex_zeros; - tempf->buf_ptr=&lex_zeros; - } - is_null=FALSE; - } else - is_null=TRUE; - tempf->name=AbsoluteFileName(filename); - if (is_null) { -// LtfDel(lx); TODO - tempf->flags=LFSF_IS_INCLUDED; - tempf->buf=MAllocZ(1); - tempf->buf_ptr=&lex_zeros; - tempf->line_num=1; - } else - tempf->flags=LFSF_IS_INCLUDED|LFSF_IS_LTF; - tempf->last_I1=0; - lx->cur_buf_ptr=tempf->buf_ptr; -} - -void LexPush(LexStruct *lx) -{ - LexFileStruct *tempf=lx->cur_lfn, - *tempf1=&lx->stack[lx->stack_ptr++]; - if (lx->stack_ptr>=LFN_STACK_CNT) - PrsExcept(lx,"ST_LEX_STACK_OVERFLOW"); - LexBackupLastChar(lx); - if (tempf->last_I1) - lx->flags|=LF_USE_LAST_I1; - MemCpy(tempf1,tempf,sizeof(LexFileStruct)); -} - -void LexPop(LexStruct *lx) -{ - LexFileStruct *tempf=lx->cur_lfn, - *tempf1=&lx->stack[--lx->stack_ptr]; - lx->cur_buf_ptr=tempf1->buf_ptr; - if (lx->last_I1=tempf1->last_I1) - lx->flags|=LF_USE_LAST_I1; - else - lx->flags&=~LF_USE_LAST_I1; - MemCpy(tempf,tempf1,sizeof(LexFileStruct)); -} - -MemberListStruct *FindMember(I1 *st,ClassStruct *c) -{ - MemberListStruct *ml=c->member_list; - while (ml) { - if (!StrCmp(ml->str,st)) { - ml->use_cnt++; - return ml; - } - ml=ml->next; - } - return NULL; -} - -void DelMemberList(ClassStruct *tempc) -{ - MemberListStruct *tempm,*tempm1; - tempm=tempc->member_list; - while (tempm) { - tempm1=tempm->next; - Free(tempm->str); - Free(tempm->fmtstr); - Free(tempm->fmtdata); - DelLinkedList(tempm->dim_list); - if (tempm->flags & MLF_DEFAULT_AVAILABLE && - tempm->member_class==sys_internal_types[IT_I1]+sizeof(ClassStruct)) - Free(tempm->default_value); - Free(tempm); - tempm=tempm1; - } - tempc->size=0; - tempc->last_in_member_list=&tempc->member_list; - tempc->member_list=NULL; - tempc->member_cnt=0; - tempc->parameter_cnt=0; -} - - -I8 LexInStr(LexStruct *lx, - I1 *buf,I8 size,BoolU4 *done) -{ - I8 i=0,j,ch; - *done=TRUE; - while (iflags|=LF_USE_LAST_I1; - } else if (ch>='0' && ch<='7') { - j=ch-'0'; - do { - ch=LexGetChar(lx); - if (ch>='0' && ch<='7') - j=j<<3+ch-'0'; - } while (ch>='0' && ch<='7'); - buf[i++]=j; - lx->flags|=LF_USE_LAST_I1; - } else { - lx->flags|=LF_USE_LAST_I1; - buf[i++]='\\'; - } - } else if (ch=='$$') { - ch=LexGetChar(lx); - buf[i++]='$$'; - if (ch!='$$') - lx->flags|=LF_USE_LAST_I1; - } else - buf[i++]=ch; - } - *done=FALSE; - return i; -} - -I8 Lex(LexStruct *lx) -{ - U8 ch; - I8 i,j,k; - double d; - SysHashEntry *temph; - BoolU4 str_done; - I1 *fbuf; - I1 *buf2,*buf3,buf[LEX_MAX_IDENT]; - lx->lag_line_num=lx->cur_lfn->line_num; - while (TRUE) { -lex_cont: - if (!(ch=LexGetChar(lx))) - return lx->token=TK_EOF; - if (Bt(alpha_bitmap,ch)) { - i=0; - buf[i++]=ch; - do { - if (i>=LEX_MAX_IDENT-1) - break; - else { - if (!(ch=LexGetChar(lx))) - break; - else { - if (Bt(alpha_numeric_bitmap,ch)) - buf[i++]=ch; - else { - lx->flags|=LF_USE_LAST_I1; - break; - } - } - } - } while (TRUE); - buf[i++]=0; - temph=NULL; - if (lx->local_var_list) { - lx->local_var_entry=FindMember(buf, - lx->local_var_list); - } else - lx->local_var_entry=NULL; - if (!lx->local_var_entry && lx->hash_table_list) - temph=FindHashEntry(buf, - lx->hash_table_list,lx->hash_mask); - if (temph) - j=temph->type; - else - j=0; - if (j & HTT_STR_CONST && !(lx->flags & LF_NO_DEFINES)) - LexIncludeStr(lx, - temph->str,NewStr(temph><(StrConstStruct *)->data),FALSE); - else { - lx->hash_entry=temph; - Free(lx->ident); - lx->ident=NewStr(buf); - lx->ident_len=i; - lx->token=TK_IDENT; - goto lex_end; - } - } else if (Bt(dec_numeric_bitmap,ch)) { - i=ch-'0'; - ch=LexGetChar(lx); - if (ch=='X' || ch=='x') { - while (TRUE) { - ch=ToUpper(LexGetChar(lx)); - if (Bt(hex_numeric_bitmap,ch)) { - if (ch<='9') - i=i<<4+ch-'0'; - else - i=i<<4+ch-'A'+10; - } else { - lx->cur_i=i; - lx->flags|=LF_USE_LAST_I1; - lx->token=TK_INTEGER; - goto lex_end; - } - } - } - if (ch=='B' || ch=='b') { - while (TRUE) { - ch=LexGetChar(lx); - if (ch=='0') - i=i<<1; - else if (ch=='1') - i=i<<1+1; - else { - lx->cur_i=i; - lx->flags|=LF_USE_LAST_I1; - lx->token=TK_INTEGER; - goto lex_end; - } - } - } - while (TRUE) { - if (Bt(dec_numeric_bitmap,ch)) - i=i*10+ch-'0'; - else { - if (ch=='.' || ch=='e' || ch=='E') break; - lx->cur_i=i; - lx->flags|=LF_USE_LAST_I1; - lx->token=TK_INTEGER; - goto lex_end; - } - ch=LexGetChar(lx); - } - if (ch=='.') - ch=LexGetChar(lx); -float_start: - //TODO:back-up for cases where i overflows - // (people should use 'e', so might not be worth it) - j=0; - k=0; - while (TRUE) { - //TODO: maybe replace with log2 and insert bit field - if (Bt(dec_numeric_bitmap,ch)) { - j=j*10+ch-'0'; - k++; - } else { - d=i+j*Pow10(-k); - if (ch=='e' || ch=='E') break; - lx->cur_d=d; - lx->flags|=LF_USE_LAST_I1; - lx->token=TK_DOUBLE; - goto lex_end; - } - ch=LexGetChar(lx); - } - ch=LexGetChar(lx); - k=1; - if (ch=='-') { - k=-1; - ch=LexGetChar(lx); - } - j=0; - while (TRUE) { - //TODO: maybe replace with log2 and insert bit field - if (Bt(dec_numeric_bitmap,ch)) - j=j*10+ch-'0'; - else { - d*=Pow10(j*k); - lx->cur_d=d; - lx->flags|=LF_USE_LAST_I1; - lx->token=TK_DOUBLE; - goto lex_end; - } - ch=LexGetChar(lx); - } - } else if (ch=='"') { - lx->flags|=LF_IN_QUOTES; - buf2=NULL; - i=0; - do { - j=LexInStr(lx,buf,LEX_MAX_IDENT,&str_done); - buf3=MAlloc(i+j); - if (buf2) { - MemCpy(buf3,buf2,i); - Free(buf2); - buf2=buf3; - MemCpy(buf2+i,buf,j); - } else { - buf2=buf3; - MemCpy(buf2,buf,j); - } - i+=j; - } while (!str_done); - Free(lx->ident); - lx->ident=MAlloc(i); - MemCpy(lx->ident,buf2,i); - Free(buf2); - lx->ident_len=i; - lx->flags&=~LF_IN_QUOTES; - lx->token=TK_STR; - goto lex_end; - } else if (ch==0x27) { // "'" - ch=LexGetChar(lx); - if (!ch || ch==0x27) i=0x27; - else if (ch=='\\') { - ch=LexGetChar(lx); - if (ch=='n') - i=10; - else if (ch=='r') - i=13; - else if (ch=='"') - i='"'; - else if (ch==0x27) - i=0x27; - else if (ch=='\`') - i='\`'; - else if (ch=='\\') - i='\\'; - else if (ch=='t') - i=9; - else if (ch=='x') { - i=0; - while (TRUE) { - ch=ToUpper(LexGetChar(lx)); - if (Bt(hex_numeric_bitmap,ch)) { - if (ch<='9') - i=i<<4+ch-'0'; - else - i=i<<4+ch-'A'+10; - } else - break; - } - lx->flags|=LF_USE_LAST_I1; - } else if (ch>='0' && ch<='7') { - i=ch-'0'; - do { - ch=LexGetChar(lx); - if (ch>='0' && ch<='7') - i=i<<3+ch-'0'; - } while (ch>='0' && ch<='7'); - lx->flags|=LF_USE_LAST_I1; - } else { - lx->flags|=LF_USE_LAST_I1; - i='\\'; - } - } else if (ch=='$$') { - ch=LexGetChar(lx); - i='$$'; - if (ch!='$$') - lx->flags|=LF_USE_LAST_I1; - } else - i=ch; - ch=LexGetChar(lx); - if (ch!=0x27) - lx->flags|=LF_USE_LAST_I1; - lx->cur_i=i; - lx->token=TK_INTEGER; - goto lex_end; - } else if (ch=='#') { - if (Lex(lx)!=TK_IDENT) //skip '#' - goto lex_end; - if (!(temph=lx->hash_entry)) - goto lex_end; - if (!(temph->type & HTT_KEYWORD)) - goto lex_end; - switch (i=temph->user_data0) { - case KW_INCLUDE: - if (Lex(lx)!=TK_STR) - goto lex_end; - if (lx->flags & LF_ASM_EXPRESSIONS) - fbuf=DefaultExtension(lx->ident,"ASZ"); - else if (Fs==adam_tss) - fbuf=DefaultExtension(lx->ident,"APZ"); - else - fbuf=DefaultExtension(lx->ident,"CPZ"); - if (ext[EXT_LTF_READ]) - LexIncludeLtf(lx,fbuf); - else - LexIncludeStr(lx,fbuf,ReadTextFile(fbuf),TRUE); - Free(fbuf); - break; - case KW_DEFINE: - lx->flags|=LF_NO_DEFINES; - if (Lex(lx)==TK_IDENT) { - temph=MAllocZ(sizeof(StrConstStruct)); - temph->str=lx->ident; - lx->ident=0; - temph->use_cnt=0; - temph->type=HTT_STR_CONST; - SetSourceFileInfo(lx,temph); - i=0; - do ch=LexGetChar(lx); - while (ch && (ch<=CH_SPACE || ch>0x7E) && ch!=CH_CR); - if (ch>CH_SPACE && ch<=0x7E || ch==CH_CR) { - if (ch!=CH_CR) - buf[i++]=ch; - while (i=CH_SHIFT_SPACE && ch<=0x7E || ch==CH_TAB); - break; - } else { - buf[i++]='/'; - lx->flags|=LF_USE_LAST_I1; - } - } else if (ch>=CH_SHIFT_SPACE && ch<=0x7E || ch==CH_TAB) - buf[i++]=ch; - else - break; - } - } - buf[i++]=0; - temph><(StrConstStruct *)->data=NewStr(buf); - AddSysHashEntry(temph,lx->define_hash_table); - } - lx->flags&=~LF_NO_DEFINES; - break; - case KW_ELSE: - if (lx->flags & LF_IN_IF) { - lx->token=TK_ELSE; - goto lex_end; - } -lex_else: - j=1; - do { - if (ch=LexGetChar(lx)) { - if (ch=='#') { - if (!Lex(lx)) - goto lex_end; - i=CmpKeyWord(lx); - if (i==KW_IF || i==KW_IFDEF || i==KW_IFNDEF) - j++; - else if (i==KW_ENDIF) - j--; - } - } else { - lx->token=TK_EOF; - goto lex_end; - } - } while (j); - break; - case KW_IF: - if (lx->flags & LF_IN_IF) { - lx->token=TK_IF; - goto lex_end; - } -lex_if: - lx->flags|=LF_IN_IF; - if (!Lex(lx)) { - lx->flags&=~LF_IN_IF; - goto lex_end; - } - if (Expression(lx)) { - lx->flags&=~LF_IN_IF; - if (lx->token==TK_IF) - goto lex_if; - else if (lx->token==TK_IFDEF) - goto lex_ifdef; - else if (lx->token==TK_IFNDEF) - goto lex_ifndef; - else if (lx->token==TK_ELSE) - goto lex_else; - else if (lx->token==TK_ENDIF) - goto lex_cont; - else - goto lex_end; - } else { - lx->flags&=~LF_IN_IF; - if (lx->token!=TK_ENDIF && lx->token!=TK_ELSE) { - if (lx->token==TK_IF || lx->token==KW_IFDEF || lx->token==KW_IFNDEF) - j=2; - else - j=1; - do { - if (ch=LexGetChar(lx)) { - if (ch=='#') { - if (!Lex(lx)) - goto lex_end; - i=CmpKeyWord(lx); - if (i==KW_IF || i==KW_IFDEF || i==KW_IFNDEF) - j++; - else if (i==KW_ENDIF) - j--; - else if (i==KW_ELSE && j==1) - break; - } - } else { - lx->token=TK_EOF; - goto lex_end; - } - } while (j); - } - } - break; - case KW_IFDEF: - if (lx->flags & LF_IN_IF) { - lx->token=TK_IFDEF; - goto lex_end; - } -lex_ifdef: - lx->flags|=LF_NO_DEFINES; - if (!Lex(lx)) { - lx->flags&=~LF_NO_DEFINES; - goto lex_end; - } - lx->flags&=~LF_NO_DEFINES; - if (lx->token!=TK_IDENT) - goto lex_end; - if (lx->hash_entry) - goto lex_cont; - j=1; - do { - if (ch=LexGetChar(lx)) { - if (ch=='#') { - if (!Lex(lx)) - goto lex_end; - i=CmpKeyWord(lx); - if (i==KW_IF || i==KW_IFDEF || i==KW_IFNDEF) - j++; - else if (i==KW_ENDIF) - j--; - else if (i==KW_ELSE && j==1) - break; - } - } else { - lx->token=TK_EOF; - goto lex_end; - } - } while (j); - break; - case KW_IFNDEF: - if (lx->flags & LF_IN_IF) { - lx->token=TK_IFNDEF; - goto lex_end; - } -lex_ifndef: - lx->flags|=LF_NO_DEFINES; - if (!Lex(lx)) { - lx->flags&=~LF_NO_DEFINES; - goto lex_end; - } - lx->flags&=~LF_NO_DEFINES; - if (lx->token!=TK_IDENT) - goto lex_end; - if (!lx->hash_entry) - goto lex_cont; - j=1; - do { - if (ch=LexGetChar(lx)) { - if (ch=='#') { - if (!Lex(lx)) - goto lex_end; - i=CmpKeyWord(lx); - if (i==KW_IF || i==KW_IFDEF || i==KW_IFNDEF) - j++; - else if (i==KW_ENDIF) - j--; - else if (i==KW_ELSE && j==1) - break; - } - } else { - lx->token=TK_EOF; - goto lex_end; - } - } while (j); - break; - case KW_ENDIF: - if (lx->flags & LF_IN_IF) { - lx->token=TK_ENDIF; - goto lex_end; - } - break; - case KW_ASSERT: - if (!Lex(lx)) - goto lex_end; - if (!Expression(lx)) - PutLexWarning(lx,"ST_ASSERT_FAILED"); - goto lex_end; - case KW_EXE: - if (!Lex(lx)) - goto lex_end; - CallExtNum(EXT_CMP_EXE_BLK,lx); - goto lex_end; - case KW_HELP_INDEX: - if (Lex(lx)!=TK_STR) - goto lex_end; - Free(lx->cur_index); - lx->cur_index=lx->ident; - lx->ident=NULL; - break; - case KW_HELP_FILE: - if (Lex(lx)!=TK_STR) - goto lex_end; - temph=MAllocZ(sizeof(SysHashEntry)); - temph->str=AbsoluteFileName(lx->ident); - temph->type=HTT_HELP_FILE|HTT_PUBLIC; - SetSourceFileInfo(lx,temph); - AddSysHashEntry(temph,lx->hash_table_list); - break; - } - } else if (ch==TK_INSERT_BINARY || - ch==TK_INSERT_BINARY_TYPE || - ch==TK_INSERT_BINARY_SIZE) { - lx->token=ch; - goto lex_end; - } else if (ch=='.') { - ch=LexGetChar(lx); - if (ch>='0' && ch<='9') { - i=0; - goto float_start; - } - lx->flags|=LF_USE_LAST_I1; - lx->token='.'; - goto lex_end; - } else if (ch>=0x21 && ch<=0x7E) { - i=duel_I1_tokens1[ch]; - if (!i) { - if (ch=='$$') { - do ch=LexGetChar(lx); - while (ch && ch!='$$'); - goto lex_cont; - } else { - lx->token=ch; - goto lex_end; - } - } else { - j=LexGetChar(lx); - if (i.u1[0]==j) { - i>>=8; - if (!i) { // "/*" - j=1; - do { - if (!(ch=LexGetChar(lx))) - return lx->token=TK_EOF; -lex_check_comment: - if (ch=='*') { - if (!(ch=LexGetChar(lx))) - return lx->token=TK_EOF; - if (ch=='/') - j--; - else - goto lex_check_comment; - } else if (ch=='/') { - if (!(ch=LexGetChar(lx))) - return lx->token=TK_EOF; - if (ch=='*') - j++; - else - goto lex_check_comment; - } - } while (j); - goto lex_cont; - } else { - lx->token=i; - goto lex_end; - } - } - if (i=duel_I1_tokens2[ch]) { - if (i.u1[0]==j) { - i>>=8; - if (!i) { // "//" - LexSkipEol(lx); - goto lex_cont; - } else { - if (i==TK_SHL || i==TK_SHR) { - j=LexGetChar(lx); - if (j=='=') { - if (i==TK_SHL) - i=TK_SHL_EQUAL; - else - i=TK_SHR_EQUAL; - } else - lx->flags|=LF_USE_LAST_I1; - } - lx->token=i; - goto lex_end; - } - } - if (i=duel_I1_tokens3[ch]) { - if (i.u1[0]==j) { - lx->token=i.u1[1]; - goto lex_end; - } - } - } - lx->flags|=LF_USE_LAST_I1; - lx->token=ch; - goto lex_end; - } - } - } -lex_end: - if (Bt(&lx->flags,LFf_LEX_TRACE)) - LexPutToken(lx); - return lx->token; -} - -I1 *LexExtendStr(LexStruct *lx,U8 *size=NULL) -{ - U8 len=lx->ident_len,len1,len2; - I1 *st=lx->ident,*st1,*st2; - lx->ident=NULL; - while (lx->token==TK_STR) { - st1=st; - len1=len; - if (Lex(lx)==TK_STR) { - len2=lx->ident_len; - st2=lx->ident; - lx->ident=NULL; - len=len1+len2-1; - st=MAlloc(len); - if (len1>1) - MemCpy(st,st1,len1-1); - MemCpy(st+len1-1,st2,len2); - Free(st1); - Free(st2); - } - } - if (size) - *size=len; - return st; -} - -I1 *LexPutLine(LexStruct *lx,I1 *start) -{ - I1 *ptr; - if (!start) return; - if (lx->cur_lfn->flags&LFSF_IS_LTF) - return CallExtStr("LtfPutLine",start); - else { - ptr=start; - while (*ptr && *ptr!=CH_LINE_FEED && *ptr!=CH_CR) - PutChar(*ptr++); - CrLf; - return (*ptr) ? ptr+1:ptr; - } - return NULL; -} - -I8 LexLineNum(LexStruct *lx) -{ - return lx->cur_lfn->line_num; -} - -void LexPutLink(LexStruct *lx) -{ - if (IsRaw) - PrintF("%s,%d ",lx->cur_lfn->name,lx->cur_lfn->line_num); - else { - PutFileLink(lx->cur_lfn->name,lx->cur_lfn->line_num); - AdamErr("%s,%d\r",lx->cur_lfn->name,lx->cur_lfn->line_num); - PutS(" "); - } -} - -void PutLexError(LexStruct *lx,I1 *name=NULL,I1 *msg=NULL) -{ - PutErr; - lx->error_cnt++; - if (!IsRaw) - AdamErr("Tsk:%08X ",Fs); - if (name) { - PutSysText(name); - if (!IsRaw) - AdamErr("%S",name); - } - if (msg) { - PutS(msg); - if (!IsRaw) - AdamErr("%s\r\n",msg); - } - LexPutToken(lx); - LexPutLink(lx); - LexPutLine(lx,lx->cur_lfn->line_start); -} - -void PutLexWarning(LexStruct *lx,I1 *name=NULL,I1 *msg=NULL) -{ - PrintFWarn("%S%s",name,msg); - lx->warning_cnt++; - LexPutToken(lx); - LexPutLink(lx); - LexPutLine(lx,lx->cur_lfn->line_start); -} - -void PutAsmError(LexStruct *lx,I1 *name) -{ - PutLexError(lx,name); - LexSkipEol(lx); - Lex(lx); -} - -void PutAsmWarning(LexStruct *lx,I1 *name) -{ - PutLexWarning(lx,name); - LexSkipEol(lx); - Lex(lx); -} - -void PrsExcept(LexStruct *lx,I1 *name=NULL,I1 *msg=NULL) -{ - PutLexError(lx,name,msg); - CallExtNum(EXT_FLUSH_MSGS,NULL); - throw(EXCEPT_COMPILER,0); -} - - \ No newline at end of file diff --git a/LT/Compiler/OpCodes.TXZ b/LT/Compiler/OpCodes.TXZ deleted file mode 100644 index e1354ed..0000000 --- a/LT/Compiler/OpCodes.TXZ +++ /dev/null @@ -1,1085 +0,0 @@ -/* - '%'= 32 bit - '*'= 16 bit - '!'= don't switch modes - '&'= default - '-'= NoRex - '='= Rex 0x48 - '~'= Rex 0x40 -*/ -R8 AL 0; -R8 CL 1; -R8 DL 2; -R8 BL 3; -R8 AH 4; -R8 CH 5; -R8 DH 6; -R8 BH 7; -R8 R8u1 8; -R8 R9u1 9; -R8 R10u1 10; -R8 R11u1 11; -R8 R12u1 12; -R8 R13u1 13; -R8 R14u1 14; -R8 R15u1 15; - -R16 AX 0; -R16 CX 1; -R16 DX 2; -R16 BX 3; -R16 SP 4; -R16 BP 5; -R16 SI 6; -R16 DI 7; -R16 R8u2 8; -R16 R9u2 9; -R16 R10u2 10; -R16 R11u2 11; -R16 R12u2 12; -R16 R13u2 13; -R16 R14u2 14; -R16 R15u2 15; - -R32 EAX 0; -R32 ECX 1; -R32 EDX 2; -R32 EBX 3; -R32 ESP 4; -R32 EBP 5; -R32 ESI 6; -R32 EDI 7; -R32 R8u4 8; -R32 R9u4 9; -R32 R10u4 10; -R32 R11u4 11; -R32 R12u4 12; -R32 R13u4 13; -R32 R14u4 14; -R32 R15u4 15; - -R64 RAX 0; -R64 RCX 1; -R64 RDX 2; -R64 RBX 3; -R64 RSP 4; -R64 RBP 5; -R64 RSI 6; -R64 RDI 7; -R64 R8 8; -R64 R9 9; -R64 R10 10; -R64 R11 11; -R64 R12 12; -R64 R13 13; -R64 R14 14; -R64 R15 15; -R64 R8u8 8; -R64 R9u8 9; -R64 R10u8 10; -R64 R11u8 11; -R64 R12u8 12; -R64 R13u8 13; -R64 R14u8 14; -R64 R15u8 15; - -SEG ES 0; -SEG CS 1; -SEG SS 2; -SEG DS 3; -SEG FS 4; -SEG GS 5; -KEYWORD include 0; -KEYWORD define 1; -KEYWORD union 2; -KEYWORD catch 3; -KEYWORD class 4; -KEYWORD try 5; -KEYWORD if 6; -KEYWORD else 7; -KEYWORD for 8; -KEYWORD while 9; -KEYWORD extern 10; -KEYWORD LTextern 11; -KEYWORD return 12; -KEYWORD sizeof 13; -KEYWORD LTintern 14; -KEYWORD fmtstr 15; -KEYWORD fmtdata 16; -KEYWORD output_fun 17; -KEYWORD input_fun 18; -KEYWORD cout 19; -KEYWORD dbgo 19; /*used for debugging*/ -KEYWORD do 20; -KEYWORD asm 21; -KEYWORD goto 22; -KEYWORD exe 23; -KEYWORD break 24; -KEYWORD continue 25; -KEYWORD switch 26; -KEYWORD case 27; -KEYWORD default 28; -KEYWORD public 29; -KEYWORD offset 30; -KEYWORD typeof 31; -KEYWORD import 32; -KEYWORD LTimport 33; -KEYWORD coutln 34; -KEYWORD dbgoln 34; -KEYWORD ifdef 35; -KEYWORD ifndef 36; -KEYWORD endif 37; -KEYWORD assert 38; -KEYWORD reg 39; -KEYWORD noreg 40; -KEYWORD nounusedwarn 41; -KEYWORD help_index 42; -KEYWORD help_file 43; - -KEYWORD ALIGN 64; -KEYWORD END 65; -KEYWORD U1 66; -KEYWORD U2 67; -KEYWORD U4 68; -KEYWORD U8 69; -KEYWORD DU1 70; -KEYWORD DU2 71; -KEYWORD DU4 72; -KEYWORD DU8 73; -KEYWORD DUP 74; -KEYWORD ORG 75; -KEYWORD STRUC 76; -KEYWORD ENDS 77; -KEYWORD USE16 78; -KEYWORD USE32 79; -KEYWORD USE64 80; -KEYWORD IMPORT 81; -KEYWORD EXPORT 82; -KEYWORD INSERT 83; -KEYWORD LIST 84; -KEYWORD NOLIST 85; -KEYWORD INSERT_COMPRESSED 86; - -OPCODE PUSH - 0x0E NO CS - 0x16 NO SS - 0x1E NO DS - 0x06 NO ES - 0x0F 0xA0 NO FS - 0x0F 0xA8 NO GS - 0x6A &IB IMM8 - 0x68 *!IW IMM16 - 0x68 %!ID IMM32 - 0x50 +/R *NO R16 - 0x50 +/R %NO R32 - 0x50 +/R %NO R64 - 0xFF /6 *NO RM16 - 0xFF /6 %NO RM32 - 0xFF /6 %NO RM64; -OPCODE PUSHAW 0x60 *NO; -OPCODE PUSHAD 0x60 %NO; -OPCODE PUSHFW 0x9C *NO; -OPCODE PUSHFD 0x9C %NO; -OPCODE POP - 0x1F NO DS - 0x07 NO ES - 0x17 NO SS - 0x0F 0xA1 NO FS - 0x0F 0xA9 NO GS - 0x58 +*RW R16 - 0x58 +%RD R32 - 0x58 +%RD R64 - 0x8F /0 *NO RM16 - 0x8F /0 %NO RM32 - 0x8F /0 %NO RM64; -OPCODE POPAW 0x61 *NO; -OPCODE POPAD 0x61 %NO; -OPCODE POPFW 0x9D *NO; -OPCODE POPFD 0x9D %NO; -OPCODE MOV -// 0xA0 NO AL MOFFS8 - 0xA1 *NO AX MOFFS16 - 0xA1 %NO EAX MOFFS32 -// 0xA2 NO MOFFS8 AL - 0xA3 *NO MOFFS16 AX - 0xA3 %NO MOFFS32 EAX - 0x8A /R NO R8 RM8 - 0x8B /R *NO R16 RM16 - 0x8B /R %NO R32 RM32 - 0x8B /R %NO R64 RM64 - 0x88 /R NO RM8 R8 - 0x89 /R *NO RM16 R16 - 0x89 /R %NO RM32 R32 - 0x89 /R %NO RM64 R64 - 0x8C /R %NO RM16 SREG - 0x8E /R %NO SREG RM16 - 0xB0 +RB R8 UIMM8 - 0xB8 +*RW R16 UIMM16 - 0xB8 +%RD R32 UIMM32 - 0xB8 +%RD R64 UIMM64 - 0xC6 NO RM8 UIMM8 - 0xC7 *NO RM16 UIMM16 - 0xC7 %NO RM32 UIMM32 - 0xC7 %NO RM64 IMM32; - -OPCODE ADC - 0x14 IB AL UIMM8 - 0x15 *IW AX UIMM16 - 0x15 %ID EAX UIMM32 - 0x80 /2 IB RM8 IMM8 - 0x83 /2 *IB RM16 IMM8 - 0x83 /2 %IB RM32 IMM8 - 0x83 /2 %IB RM64 IMM8 - 0x81 /2 *IW RM16 IMM16 - 0x81 /2 %ID RM32 IMM32 - 0x81 /2 %ID RM64 IMM32 - 0x12 /R NO R8 RM8 - 0x13 /R *NO R16 RM16 - 0x13 /R %NO R32 RM32 - 0x13 /R %NO R64 RM64 - 0x10 /R NO RM8 R8 - 0x11 /R *NO RM16 R16 - 0x11 /R %NO RM32 R32 - 0x11 /R %NO RM64 R64; -OPCODE ADD - 0x04 IB AL UIMM8 - 0x05 *IW AX UIMM16 - 0x05 %ID EAX UIMM32 - 0x80 /0 IB RM8 UIMM8 - 0x83 /0 *IB RM16 IMM8 - 0x83 /0 %IB RM32 IMM8 - 0x83 /0 %IB RM64 IMM8 - 0x81 /0 *IW RM16 UIMM16 - 0x81 /0 %ID RM32 UIMM32 - 0x81 /0 %ID RM64 UIMM32 - 0x02 /R NO R8 RM8 - 0x03 /R *NO R16 RM16 - 0x03 /R %NO R32 RM32 - 0x03 /R %NO R64 RM64 - 0x00 /R NO RM8 R8 - 0x01 /R *NO RM16 R16 - 0x01 /R %NO RM32 R32 - 0x01 /R %NO RM64 R64; -OPCODE AND - 0x24 IB AL UIMM8 - 0x25 *IW AX UIMM16 - 0x25 %ID EAX UIMM32 - 0x80 /4 IB RM8 UIMM8 - 0x83 /4 *IB RM16 IMM8 - 0x83 /4 %IB RM32 IMM8 - 0x83 /4 %IB RM64 IMM8 - 0x81 /4 *IW RM16 UIMM16 - 0x81 /4 %ID RM32 UIMM32 - 0x81 /4 %ID RM64 UIMM32 - 0x22 /R NO R8 RM8 - 0x23 /R *NO R16 RM16 - 0x23 /R %NO R32 RM32 - 0x23 /R %NO R64 RM64 - 0x20 /R NO RM8 R8 - 0x21 /R *NO RM16 R16 - 0x21 /R %NO RM32 R32 - 0x21 /R %NO RM64 R64; -OPCODE CMP - 0x3C IB AL UIMM8 - 0x3D *IW AX UIMM16 - 0x3D %ID EAX UIMM32 - 0x80 /7 IB RM8 UIMM8 - 0x83 /7 *IB RM16 IMM8 - 0X83 /7 %IB RM32 IMM8 - 0X83 /7 %IB RM64 IMM8 - 0x81 /7 *IW RM16 UIMM16 - 0x81 /7 %ID RM32 UIMM32 - 0x81 /7 %ID RM64 UIMM32 - 0x3A /R NO R8 RM8 - 0x3B /R *NO R16 RM16 //ERROR? - 0x3B /R %NO R32 RM32 - 0x3B /R %NO R64 RM64 - 0x38 /R NO RM8 R8 - 0x39 /R *NO RM16 R16 - 0x39 /R %NO RM32 R32 - 0x39 /R %NO RM64 R64; -OPCODE OR - 0x0C IB AL UIMM8 - 0x0D *IW AX UIMM16 - 0x0D %ID EAX UIMM32 - 0x80 /1 IB RM8 UIMM8 - 0x83 /1 *IB RM16 IMM8 - 0x83 /1 %IB RM32 IMM8 - 0x83 /1 %IB RM64 IMM8 - 0x81 /1 *IW RM16 UIMM16 - 0x81 /1 %ID RM32 UIMM32 - 0x81 /1 %ID RM64 UIMM32 - 0x0A /R NO R8 RM8 - 0x0B /R *NO R16 RM16 - 0x0B /R %NO R32 RM32 - 0x0B /R %NO R64 RM64 - 0x08 /R NO RM8 R8 - 0x09 /R *NO RM16 R16 - 0x09 /R %NO RM32 R32 - 0x09 /R %NO RM64 R64; -OPCODE SBB - 0x1C IB AL UIMM8 - 0x1D *IW AX UIMM16 - 0x1D %ID EAX UIMM32 - 0x80 /3 IB RM8 UIMM8 - 0x83 /3 *IB RM16 IMM8 - 0x83 /3 %IB RM32 IMM8 - 0x83 /3 %IB RM64 IMM8 - 0x81 /3 *IW RM16 UIMM16 - 0x81 /3 %ID RM32 UIMM32 - 0x81 /3 %ID RM64 UIMM32 - 0x1A /R NO R8 RM8 - 0x1B /R *NO R16 RM16 - 0x1B /R %NO R32 RM32 - 0x1B /R %NO R64 RM64 - 0x18 /R NO RM8 R8 - 0x19 /R *NO RM16 R16 - 0x19 /R %NO RM32 R32 - 0x19 /R %NO RM64 R64; -OPCODE SUB - 0x2C IB AL UIMM8 - 0x2D *IW AX UIMM16 - 0x2D %ID EAX UIMM32 - 0x80 /5 IB RM8 UIMM8 - 0x83 /5 *IB RM16 IMM8 - 0x83 /5 %IB RM32 IMM8 - 0x83 /5 %IB RM64 IMM8 - 0x81 /5 *IW RM16 UIMM16 - 0x81 /5 %ID RM32 UIMM32 - 0x81 /5 %ID RM64 UIMM32 - 0x2A /R NO R8 RM8 - 0x2B /R *NO R16 RM16 - 0x2B /R %NO R32 RM32 - 0x2B /R %NO R64 RM64 - 0x28 /R NO RM8 R8 - 0x29 /R *NO RM16 R16 - 0x29 /R %NO RM32 R32 - 0x29 /R %NO RM64 R64; -OPCODE TEST - 0xA8 IB AL UIMM8 - 0xA9 *IW AX UIMM16 - 0xA9 %ID EAX UIMM32 - 0xF6 /0 IB RM8 UIMM8 - 0xF7 /0 *IW RM16 UIMM16 - 0xF7 /0 %ID RM32 UIMM32 - 0xF7 /0 %ID RM64 UIMM32 - 0x84 /R NO RM8 R8 - 0x85 /R *NO RM16 R16 - 0x85 /R %NO RM32 R32 - 0x85 /R %NO RM64 R64; -OPCODE NOP 0x90 NO; -OPCODE XCHG - 0x90 +/R *NO R16 AX - 0x90 +/R *NO AX R16 - 0x90 +/R %NO R32 EAX - 0x90 +/R %NO EAX R32 - 0x86 /R NO R8 RM8 - 0x87 /R *NO R16 RM16 - 0x87 /R %NO R32 RM32 - 0x87 /R %NO R64 RM64 - 0x86 /R NO RM8 R8 - 0x87 /R *NO RM16 R16 - 0x87 /R %NO RM32 R32 - 0x87 /R %NO RM64 R64; -OPCODE XOR - 0x34 IB AL UIMM8 - 0x35 *IW AX UIMM16 - 0x35 %ID EAX UIMM32 - 0x80 /6 IB RM8 UIMM8 - 0x83 /6 *IB RM16 IMM8 - 0x83 /6 %IB RM32 IMM8 - 0x83 /6 %IB RM64 IMM8 - 0x81 /6 *IW RM16 UIMM16 - 0x81 /6 %ID RM32 UIMM32 - 0x81 /6 %ID RM64 UIMM32 - 0x32 /R NO R8 RM8 - 0x33 /R *NO R16 RM16 - 0x33 /R %NO R32 RM32 - 0x33 /R %NO R64 RM64 - 0x30 /R NO RM8 R8 - 0x31 /R *NO RM16 R16 - 0x31 /R %NO RM32 R32 - 0x31 /R %NO RM64 R64; - -OPCODE CALL - 0xE8 *!&CW REL16 - 0xFF /2 *!NO RM16 - 0xE8 %!&CD REL32 - 0xFF /2 %!NO RM32 - 0xFF /2 %!NO RM64 -// 0x9A CD PTR1616 -// 0xFF /3 *NO M1616 -// 0x9A *CP PTR1632 -// 0x9A %CP PTR3232 -// 0xFF /3 %NO M1632 - ; - -OPCODE JMP - 0xEB &CB REL8 - 0xE9 *!CW REL16 - 0xE9 %!CD REL32 - 0xFF /4 *!NO RM16 - 0xFF /4 %!NO RM32 - 0xFF /4 %!NO RM64; -OPCODE JA - 0x77 &CB REL8 - 0x0F 0x87 *!CW REL16 - 0x0F 0x87 %!CD REL32; -OPCODE JAE - 0x73 &CB REL8 - 0x0F 0x83 *!CW REL16 - 0x0F 0x83 %!CD REL32; -OPCODE JB - 0x72 &CB REL8 - 0x0F 0x82 *!CW REL16 - 0x0F 0x82 %!CD REL32; -OPCODE JBE - 0x76 &CB REL8 - 0x0F 0x86 *!CW REL16 - 0x0F 0x86 %!CD REL32; -OPCODE JC - 0x72 &CB REL8 - 0x0F 0x82 *!CW REL16 - 0x0F 0x82 %!CD REL32; -OPCODE JCXZ - 0xE3 CB REL8; -OPCODE JECXZ - 0xE3 CB REL8; -OPCODE JE - 0x74 &CB REL8 - 0x0F 0x84 *!CW REL16 - 0x0F 0x84 %!CD REL32; -OPCODE JG - 0x7F &CB REL8 - 0x0F 0x8F *!CW REL16 - 0x0F 0x8F %!CD REL32; -OPCODE JGE - 0x7D &CB REL8 - 0x0F 0x8D *!CW REL16 - 0x0F 0x8D %!CD REL32; -OPCODE JL - 0x7C &CB REL8 - 0x0F 0x8C *!CW REL16 - 0x0F 0x8C %!CD REL32; -OPCODE JLE - 0x7E &CB REL8 - 0x0F 0x8E *!CW REL16 - 0x0F 0x8E %!CD REL32; -OPCODE JNA - 0x76 &CB REL8 - 0x0F 0x86 *!CW REL16 - 0x0F 0x86 %!CD REL32; -OPCODE JNAE - 0x72 &CB REL8 - 0x0F 0x82 *!CW REL16 - 0x0F 0x82 %!CD REL32; -OPCODE JNB - 0x73 &CB REL8 - 0x0F 0x83 *!CW REL16 - 0x0F 0x83 %!CD REL32; -OPCODE JNBE - 0x77 &CB REL8 - 0x0F 0x87 *!CW REL16 - 0x0F 0x87 %!CD REL32; -OPCODE JNC - 0x73 &CB REL8 - 0x0F 0x83 *!CW REL16 - 0x0F 0x83 %!CD REL32; -OPCODE JNE - 0x75 &CB REL8 - 0x0F 0x85 *!CW REL16 - 0x0F 0x85 %!CD REL32; -OPCODE JNG - 0x7E &CB REL8 - 0x0F 0x8E *!CW REL16 - 0x0F 0x8E %!CD REL32; -OPCODE JNGE - 0x7C &CB REL8 - 0x0F 0x8C *!CW REL16 - 0x0F 0x8C %!CD REL32; -OPCODE JNL - 0x7D &CB REL8 - 0x0F 0x8D *!CW REL16 - 0x0F 0x8D %!CD REL32; -OPCODE JNLE - 0x7F &CB REL8 - 0x0F 0x8F *!CW REL16 - 0x0F 0x8F %!CD REL32; -OPCODE JNO - 0x71 &CB REL8 - 0x0F 0x81 *!CW REL16 - 0x0F 0x81 %!CD REL32; -OPCODE JNP - 0x7B &CB REL8 - 0x0F 0x8B *!CW REL16 - 0x0F 0x8B %!CD REL32; -OPCODE JNS - 0x79 &CB REL8 - 0x0F 0x89 *!CW REL16 - 0x0F 0x89 %!CD REL32; -OPCODE JNZ - 0x75 &CB REL8 - 0x0F 0x85 *!CW REL16 - 0x0F 0x85 %!CD REL32; -OPCODE JO - 0x70 &CB REL8 - 0x0F 0x80 *!CW REL16 - 0x0F 0x80 %!CD REL32; -OPCODE JP - 0x7A &CB REL8 - 0x0F 0x8A *!CW REL16 - 0x0F 0x8A %!CD REL32; -OPCODE JPE - 0x7A &CB REL8 - 0x0F 0x8A *!CW REL16 - 0x0F 0x8A %!CD REL32; -OPCODE JPO - 0x7B &CB REL8 - 0x0F 0x8B *!CW REL16 - 0x0F 0x8B %!CD REL32; -OPCODE JS - 0x78 &CB REL8 - 0x0F 0x88 *!CW REL16 - 0x0F 0x88 %!CD REL32; -OPCODE JZ - 0x74 &CB REL8 - 0x0F 0x84 *!CW REL16 - 0x0F 0x84 %!CD REL32; - - -OPCODE INC -// 0x40 +*RW R16 -// 0x40 +%RD R32 - 0xFE /0 NO RM8 - 0xFF /0 *NO RM16 - 0xFF /0 %NO RM32 - 0xFF /0 %NO RM64; -OPCODE DEC -// 0x48 +*RW R16 -// 0x48 +%RD R32 - 0xFE /1 NO RM8 - 0xFF /1 *NO RM16 - 0xFF /1 %NO RM32 - 0xFF /1 %NO RM64; -OPCODE NOT - 0xF6 /2 NO RM8 - 0xF7 /2 *NO RM16 - 0xF7 /2 %NO RM32 - 0xF7 /2 %NO RM64; -OPCODE NEG - 0xF6 /3 NO RM8 - 0xF7 /3 *NO RM16 - 0xF7 /3 %NO RM32 - 0xF7 /3 %NO RM64; -OPCODE MUL - 0xF6 /4 NO RM8 - 0xF7 /4 *NO RM16 - 0xF7 /4 %NO RM32 - 0xF7 /4 %NO RM64; -OPCODE IMUL - 0xF6 /5 NO RM8 - 0xF7 /5 *NO RM16 - 0xF7 /5 %NO RM32 - 0xF7 /5 %NO RM64; -OPCODE IMUL2 - 0x0F 0xAF /R *NO R16 RM16 - 0x0F 0xAF /R *NO R32 RM32 - 0x0F 0xAF /R *NO R64 RM64 - 0x6B /R *IB RM16 IMM8 - 0x6B /R %IB RM32 IMM8 - 0x6B /R %IB RM64 IMM8 - 0x69 /R *IW RM16 UIMM16 - 0x69 /R %ID RM32 UIMM32 - 0x69 /R %ID RM64 UIMM32; -OPCODE DIV - 0xF6 /6 NO RM8 - 0xF7 /6 *NO RM16 - 0xF7 /6 %NO RM32 - 0xF7 /6 %NO RM64; -OPCODE IDIV - 0xF6 /7 NO RM8 - 0xF7 /7 *NO RM16 - 0xF7 /7 %NO RM32 - 0xF7 /7 %NO RM64; - -OPCODE AAA 0x37 NO; -OPCODE AAD 0xD5 0x0A NO; -OPCODE AAM 0xD4 0x0A NO; -OPCODE AAS 0x3F NO; -OPCODE ARPL 0x63 /R NO RM16 R16; -OPCODE BOUND - 0x62 /R *NO RM16 R16 - 0x62 /R %NO RM32 R32 - 0x62 /R %NO RM64 R64; -OPCODE BSF - 0x0F 0xBC /R *NO R16 RM16 - 0x0F 0xBC /R %NO R32 RM32 - 0x0F 0xBC /R %NO R64 RM64; -OPCODE BSR - 0x0F 0xBD /R *NO R16 RM16 - 0x0F 0xBD /R %NO R32 RM32 - 0x0F 0xBD /R %NO R64 RM64; -OPCODE BSWAP - 0x0F 0xC8 /R %NO R32 - 0x0F 0xC8 /R %NO R64; -OPCODE BT - 0x0F 0xA3 /R *NO RM16 R16 - 0x0F 0xA3 /R %NO RM32 R32 - 0x0F 0xA3 /R %NO RM64 R64 - 0x0F 0xBA /4 *IB RM16 UIMM8 - 0x0F 0xBA /4 %IB RM32 UIMM8 - 0x0F 0xBA /4 %IB RM64 UIMM8; -OPCODE BTC - 0x0F 0xBB /R *NO RM16 R16 - 0x0F 0xBB /R %NO RM32 R32 - 0x0F 0xBB /R %NO RM64 R64 - 0x0F 0xBA /7 *IB RM16 UIMM8 - 0x0F 0xBA /7 %IB RM32 UIMM8 - 0x0F 0xBA /7 %IB RM64 UIMM8; -OPCODE BTR - 0x0F 0xB3 /R *NO RM16 R16 - 0x0F 0xB3 /R %NO RM32 R32 - 0x0F 0xB3 /R %NO RM64 R64 - 0x0F 0xBA /6 *IB RM16 UIMM8 - 0x0F 0xBA /6 %IB RM32 UIMM8 - 0x0F 0xBA /6 %IB RM64 UIMM8; -OPCODE BTS - 0x0F 0xAB /R *NO RM16 R16 - 0x0F 0xAB /R %NO RM32 R32 - 0x0F 0xAB /R %NO RM64 R64 - 0x0F 0xBA /5 *IB RM16 UIMM8 - 0x0F 0xBA /5 %IB RM32 UIMM8 - 0x0F 0xBA /5 %IB RM64 UIMM8; -OPCODE CBW 0x98 NO; -OPCODE CDQ 0x99 NO; -OPCODE CQO 0x99 =NO; -OPCODE CLC 0xF8 NO; -OPCODE CLD 0xFC NO; -OPCODE CLI 0xFA NO; -OPCODE CLTS 0x0F 0x06 NO; -OPCODE CMC 0xF5 NO; -OPCODE CMPSB 0xA6 NO; -OPCODE CMPSW 0xA7 *NO; -OPCODE CMPSD 0xA7 %NO; -OPCODE CMPSQ 0xA7 %=NO; -OPCODE CMPXCHG - 0x0F 0xB0 /R NO RM8 R8 - 0x0F 0xB1 /R *NO RM16 R16 - 0x0F 0xB1 /R %NO RM32 R32 - 0x0F 0xB1 /R %NO RM64 R64; -OPCODE CHPXCHG8B 0x0F 0xC7 NO RM64; -OPCODE CWD 0x99 NO; -OPCODE CWDE 0x98 NO; -OPCODE DAA 0x27 NO; -OPCODE DAS 0x2F NO; -//OPCODE ENTER 0xC8 IW IB IMM16 IMM8; -OPCODE HLT 0xF4 NO; -OPCODE IN - 0xE4 IB AL UIMM8 - 0xE5 *IB AX UIMM8 - 0xE5 %IB EAX UIMM8 - 0xEC NO AL DX - 0xED *NO AX DX - 0xED %NO EAX DX; -OPCODE INS - 0x6C NO RM8 DX - 0x6D *NO RM16 DX - 0x6D %NO RM32 DX - 0x6D %NO RM64 DX; -OPCODE INSB 0x6C NO; -OPCODE INSW 0x6D *NO; -OPCODE INSD 0x6D %NO; -OPCODE INSQ 0x6D %=NO; -OPCODE INTO 0xCE NO; -OPCODE INT3 0xCC NO; -OPCODE INT 0xCD IB IMM8; -OPCODE INVD 0x0F 0x08 NO; -//OPCODE INVLPG 0x0F 0x07 /7 M; -OPCODE IRET 0xCF =NO; -OPCODE LAHF 0x9F NO; -OPCODE LAR - 0x0F 0x02 /R *NO R16 RM16 - 0x0F 0x02 /R %NO R32 RM32 - 0x0F 0x02 /R %NO R64 RM64; -OPCODE LEA - 0x8D /R *NO R16 RM16 - 0x8D /R %NO R32 RM32 - 0x8D /R %NO R64 RM64; -OPCODE LEAVE 0xC9 NO; -OPCODE LGDT - 0x0F 0x01 /2 *NO RM16 - 0x0F 0x01 /2 %NO RM32 - 0x0F 0x01 /2 %NO RM64; -OPCODE LIDT - 0x0F 0x01 /3 *NO RM16 - 0x0F 0x01 /3 %NO RM32 - 0x0F 0x01 /3 %NO RM64; -//OPCODE LGS LSS LFS LDS LES -OPCODE LLDT - 0x0F 0x00 /2 *NO RM16 - 0x0F 0x00 /2 %NO RM32 - 0x0F 0x00 /2 %NO RM64; -OPCODE LMSW - 0x0F 0x01 /6 *NO RM16 - 0x0F 0x01 /6 %NO RM32 - 0x0F 0x01 /6 %NO RM64; -OPCODE LOCK 0xF0 NO; -OPCODE LODSB 0xAC NO; -OPCODE LODSW 0xAD *NO; -OPCODE LODSD 0xAD %NO; -OPCODE LODSQ 0xAD %=NO; -OPCODE LOOP 0xE2 CB REL8; -OPCODE LOOPE 0xE1 CB REL8; -OPCODE LOOPZ 0xE1 CB REL8; -OPCODE LOOPNE 0xE0 CB REL8; -OPCODE LOOPNZ 0xE0 CB REL8; -OPCODE LSL - 0x0F 0x03 /R *NO R16 RM16 - 0x0F 0x03 /R %NO R32 RM32 - 0x0F 0x03 /R %NO R64 RM64; -OPCODE LTR - 0x0F 0x00 /3 *NO RM16 - 0x0F 0x00 /3 %NO RM32 - 0x0F 0x00 /3 %NO RM64; -OPCODE MOVSB 0xA4 NO; -OPCODE MOVSW 0xA5 *NO; -OPCODE MOVSD 0xA5 %NO; -OPCODE MOVSQ 0xA5 %=NO; -OPCODE MOVSX - 0x0F 0xBE /R *NO R16 RM8 - 0x0F 0xBE /R %NO R32 RM8 - 0x0F 0xBE /R %NO R64 RM8 - 0x0F 0xBF /R %NO R32 RM16 - 0x0F 0xBF /R %NO R64 RM16; -OPCODE MOVSXD - 0x63 /R %NO R64 RM32; -OPCODE MOVZX - 0x0F 0xB6 /R *NO R16 RM8 - 0x0F 0xB6 /R %NO R32 RM8 - 0x0F 0xB6 /R %NO R64 RM8 - 0x0F 0xB7 /R %NO R32 RM16 - 0x0F 0xB7 /R %NO R64 RM16; -OPCODE OUT - 0xE6 IB UIMM8 AL - 0xE7 *IB UIMM8 AX - 0xE7 %IB UIMM8 EAX - 0xEE NO DX AL - 0xEF *NO DX AX - 0xEF %NO DX EAX; -OPCODE OUTSB 0x6E NO; -OPCODE OUTSW 0x6F *NO; -OPCODE OUTSD 0x6F %NO; -OPCODE OUTSQ 0x6F %=NO; -OPCODE RDMSR 0x0F 0x32 =NO; -OPCODE REP_INSB 0xF3 0x6C NO; -OPCODE REP_INSW 0xF3 0x6D *NO; -OPCODE REP_INSD 0xF3 0x6D %NO; -OPCODE REP_INSQ 0xF3 0x6D %=NO; -OPCODE REP_MOVSB 0xF3 0xA4 NO; -OPCODE REP_MOVSW 0xF3 0xA5 *NO; -OPCODE REP_MOVSD 0xF3 0xA5 %NO; -OPCODE REP_MOVSQ 0xF3 0xA5 %=NO; -OPCODE REP_OUTSB 0xF3 0x6E NO; -OPCODE REP_OUTSW 0xF3 0x6F *NO; -OPCODE REP_OUTSD 0xF3 0x6F %NO; -OPCODE REP_OUTSQ 0xF3 0x6F %=NO; -OPCODE REP_LODSB 0xF2 0xAC NO; -OPCODE REP_LODSW 0xF2 0xAD *NO; -OPCODE REP_LODSD 0xF2 0xAD %NO; -OPCODE REP_LODSQ 0xF2 0xAD %=NO; -OPCODE REP_STOSB 0xF3 0xAA NO; -OPCODE REP_STOSW 0xF3 0xAB *NO; -OPCODE REP_STOSD 0xF3 0xAB %NO; -OPCODE REP_STOSQ 0xF3 0xAB %=NO; -OPCODE REPE_CMPSB 0xF3 0xA6 NO; -OPCODE REPE_CMPSW 0xF3 0xA7 *NO; -OPCODE REPE_CMPSD 0xF3 0xA7 %NO; -OPCODE REPE_CMPSQ 0xF3 0xA7 %=NO; -OPCODE REPE_SCASB 0xF3 0xAE NO; -OPCODE REPE_SCASW 0xF3 0xAF *NO; -OPCODE REPE_SCASD 0xF3 0xAF %NO; -OPCODE REPE_SCASQ 0xF3 0xAF %=NO; -OPCODE REPNE_CMPSB 0xF2 0xA6 NO; -OPCODE REPNE_CMPSW 0xF2 0xA7 *NO; -OPCODE REPNE_CMPSD 0xF2 0xA7 %NO; -OPCODE REPNE_CMPSQ 0xF2 0xA7 %=NO; -OPCODE REPNE_SCASB 0xF2 0xAE NO; -OPCODE REPNE_SCASW 0xF2 0xAF *NO; -OPCODE REPNE_SCASD 0xF2 0xAF %NO; -OPCODE REPNE_SCASQ 0xF2 0xAF %=NO; -OPCODE RET 0xC3 NO; -OPCODE RET2 0xC2 IW UIMM16; -OPCODE RETF 0xCB NO; -OPCODE RETF2 0xCA IW UIMM16; -OPCODE REX 0x48 NO; -OPCODE REX2 0x40 NO; -OPCODE RSM 0x0F 0xAA NO; -OPCODE SAHF 0x9E NO; -OPCODE SCASB 0xAE NO; -OPCODE SCASW 0xAF *NO; -OPCODE SCASD 0xAF %NO; -OPCODE SCASQ 0xAF %=NO; -OPCODE SEGCS 0x2E NO; -OPCODE SEGSS 0x36 NO; -OPCODE SEGDS 0x3E NO; -OPCODE SEGES 0x26 NO; -OPCODE SEGFS 0x64 NO; -OPCODE SEGGS 0x65 NO; -OPCODE SETA 0x0F 0x97 NO RM8; -OPCODE SETAE 0x0F 0x93 NO RM8; -OPCODE SETB 0x0F 0x92 NO RM8; -OPCODE SETBE 0x0F 0x96 NO RM8; -OPCODE SETC 0x0F 0x92 NO RM8; -OPCODE SETE 0x0F 0x94 NO RM8; -OPCODE SETG 0x0F 0x9F NO RM8; -OPCODE SETGE 0x0F 0x9D NO RM8; -OPCODE SETL 0x0F 0x9C NO RM8; -OPCODE SETLE 0x0F 0x9E NO RM8; -OPCODE SETNA 0x0F 0x96 NO RM8; -OPCODE SETNAE 0x0F 0x92 NO RM8; -OPCODE SETNB 0x0F 0x93 NO RM8; -OPCODE SETNBE 0x0F 0x97 NO RM8; -OPCODE SETNC 0x0F 0x93 NO RM8; -OPCODE SETNE 0x0F 0x95 NO RM8; -OPCODE SETNG 0x0F 0x9E NO RM8; -OPCODE SETNGE 0x0F 0x9C NO RM8; -OPCODE SETNL 0x0F 0x9D NO RM8; -OPCODE SETNLE 0x0F 0x9F NO RM8; -OPCODE SETNO 0x0F 0x91 NO RM8; -OPCODE SETNP 0x0F 0x9B NO RM8; -OPCODE SETNS 0x0F 0x99 NO RM8; -OPCODE SETNZ 0x0F 0x95 NO RM8; -OPCODE SETO 0x0F 0x90 NO RM8; -OPCODE SETP 0x0F 0x9A NO RM8; -OPCODE SETPE 0x0F 0x9A NO RM8; -OPCODE SETPO 0x0F 0x9B NO RM8; -OPCODE SETS 0x0F 0x98 NO RM8; -OPCODE SETZ 0x0F 0x94 NO RM8; -//OPCODE SGDT 0x0F 0x01 /0 m -//OPCODE SIDT 0x0F 0x01 /0 m -OPCODE SHLD - 0x0F 0xA5 /R *NO RM16 R16 - 0x0F 0xA5 /R %NO RM32 R32 - 0x0F 0xA5 /R %NO RM64 R64; -OPCODE SHRD - 0x0F 0xAD /R *NO RM16 R16 - 0x0F 0xAD /R %NO RM32 R32 - 0x0F 0xAD /R %NO RM64 R64; -OPCODE SLDT - 0x0F 0x00 /0 *NO RM16 - 0x0F 0x00 /0 %NO RM32 - 0x0F 0x00 /0 %NO RM64; -OPCODE SMSW - 0x0F 0x01 /4 *NO RM16 - 0x0F 0x01 /4 %NO RM32 - 0x0F 0x01 /4 %NO RM64; -OPCODE STC 0xF9 NO; -OPCODE STD 0xFD NO; -OPCODE STI 0xFB NO; -OPCODE STOSB 0xAA NO; -OPCODE STOSW 0xAB *NO; -OPCODE STOSD $MA+A+LA,"","NO;"$0xAB %NO; -OPCODE STOSQ 0xAB %=NO; -OPCODE STR - 0x0F 0x00 /1 *NO RM16 - 0x0F 0x00 /1 %NO RM32 - 0x0F 0x00 /1 %NO RM64; -OPCODE VERR - 0x0F 0x00 /4 *NO RM16 - 0x0F 0x00 /4 %NO RM32 - 0x0F 0x00 /4 %NO RM64; -OPCODE VERW - 0x0F 0x00 /5 *NO RM16 - 0x0F 0x00 /5 %NO RM32 - 0x0F 0x00 /5 %NO RM64; -OPCODE WAIT 0x9B NO; -OPCODE FWAIT 0x9B NO; -OPCODE WBINVD 0x0F 0x09 NO; -OPCODE WRMSR 0x0F 0x30 =NO; -OPCODE XADD - 0x0F 0xC0 /R NO RM8 R8 - 0x0F 0xC1 /R *NO RM16 R16 - 0x0F 0xC1 /R %NO RM32 R32 - 0x0F 0xC1 /R %NO RM64 R64; -OPCODE XLATB 0xD7 NO; - - -OPCODE RCL - 0xD2 /2 NO RM8 CL - 0xD3 /2 *NO RM16 CL - 0xD3 /2 %NO RM32 CL - 0xD3 /2 %NO RM64 CL - 0xC0 /2 IB RM8 UIMM8 - 0xC1 /2 *IB RM16 UIMM8 - 0xC1 /2 %IB RM32 UIMM8 - 0xC1 /2 %IB RM64 UIMM8; -OPCODE RCL1 - 0xD0 /2 NO RM8 - 0xD1 /2 *NO RM16 - 0xD1 /2 %NO RM32 - 0xD1 /2 %NO RM64; -OPCODE RCR - 0xD2 /3 NO RM8 CL - 0xD3 /3 *NO RM16 CL - 0xD3 /3 %NO RM32 CL - 0xD3 /3 %NO RM64 CL - 0xC0 /3 IB RM8 UIMM8 - 0xC1 /3 *IB RM16 UIMM8 - 0xC1 /3 %IB RM32 UIMM8 - 0xC1 /3 %IB RM64 UIMM8; -OPCODE RCR1 - 0xD0 /3 NO RM8 - 0xD1 /3 *NO RM16 - 0xD1 /3 %NO RM32 - 0xD1 /3 %NO RM64; -OPCODE ROL - 0xD2 /0 NO RM8 CL - 0xD3 /0 *NO RM16 CL - 0xD3 /0 %NO RM32 CL - 0xD3 /0 %NO RM64 CL - 0xC0 /0 IB RM8 UIMM8 - 0xC1 /0 *IB RM16 UIMM8 - 0xC1 /0 %IB RM32 UIMM8 - 0xC1 /0 %IB RM64 UIMM8; -OPCODE ROL1 - 0xD0 /0 NO RM8 - 0xD1 /0 *NO RM16 - 0xD1 /0 %NO RM32 - 0xD1 /0 %NO RM64; -OPCODE ROR - 0xD2 /1 NO RM8 CL - 0xD3 /1 *NO RM16 CL - 0xD3 /1 %NO RM32 CL - 0xD3 /1 %NO RM64 CL - 0xC0 /1 IB RM8 UIMM8 - 0xC1 /1 *IB RM16 UIMM8 - 0xC1 /1 %IB RM32 UIMM8 - 0xC1 /1 %IB RM64 UIMM8; -OPCODE ROR1 - 0xD0 /1 NO RM8 - 0xD1 /1 *NO RM16 - 0xD1 /1 %NO RM32 - 0xD1 /1 %NO RM64; - -OPCODE SAL - 0xD2 /4 NO RM8 CL - 0xD3 /4 *NO RM16 CL - 0xD3 /4 %NO RM32 CL - 0xD3 /4 %NO RM64 CL - 0xC0 /4 IB RM8 UIMM8 - 0xC1 /4 *IB RM16 UIMM8 - 0xC1 /4 %IB RM32 UIMM8 - 0xC1 /4 %IB RM64 UIMM8; -OPCODE SAL1 - 0xD0 /4 NO RM8 - 0xD1 /4 *NO RM16 - 0xD1 /4 %NO RM32 - 0xD1 /4 %NO RM64; - -OPCODE SAR - 0xD2 /7 NO RM8 CL - 0xD3 /7 *NO RM16 CL - 0xD3 /7 %NO RM32 CL - 0xD3 /7 %NO RM64 CL - 0xC0 /7 IB RM8 UIMM8 - 0xC1 /7 *IB RM16 UIMM8 - 0xC1 /7 %IB RM32 UIMM8 - 0xC1 /7 %IB RM64 UIMM8; -OPCODE SAR1 - 0xD0 /7 NO RM8 - 0xD1 /7 *NO RM16 - 0xD1 /7 %NO RM32 - 0xD1 /7 %NO RM64; - -OPCODE SHL - 0xD2 /4 NO RM8 CL - 0xD3 /4 *NO RM16 CL - 0xD3 /4 %NO RM32 CL - 0xD3 /4 %NO RM64 CL - 0xC0 /4 IB RM8 UIMM8 - 0xC1 /4 *IB RM16 UIMM8 - 0xC1 /4 %IB RM32 UIMM8 - 0xC1 /4 %IB RM64 UIMM8; -OPCODE SHL1 - 0xD0 /4 NO RM8 - 0xD1 /4 *NO RM16 - 0xD1 /4 %NO RM32 - 0xD1 /4 %NO RM64; - -OPCODE SHR - 0xD2 /5 NO RM8 CL - 0xD3 /5 *NO RM16 CL - 0xD3 /5 %NO RM32 CL - 0xD3 /5 %NO RM64 CL - 0xC0 /5 IB RM8 UIMM8 - 0xC1 /5 *IB RM16 UIMM8 - 0xC1 /5 %IB RM32 UIMM8 - 0xC1 /5 %IB RM64 UIMM8; -OPCODE SHR1 - 0xD0 /5 NO RM8 - 0xD1 /5 *NO RM16 - 0xD1 /5 %NO RM32 - 0xD1 /5 %NO RM64; - -OPCODE FILD - 0xDF /5 NO RM64; //Load 64 bit I4 -OPCODE FISTP - 0xDF /7 NO RM64; //Store 64 bit I4 -OPCODE FLD - 0xDD /0 NO RM64; //Load 64 bit double -OPCODE FSTP - 0xDD /3 NO RM64; //Store 64 bit double -OPCODE FST - 0xDD /2 NO RM64; //Store 64 bit double -OPCODE FRSTOR - 0xDD /4 NO RM32 - 0xDD /4 NO RM64; -OPCODE FSAVE - 0x9B 0xDD /6 NO RM32 - 0x9B 0xDD /6 NO RM64; - -OPCODE FYL2X 0xD9 0xF1 NO; -OPCODE FYL2XP1 0xD9 0xF9 NO; -OPCODE F2XM1 0xD9 0xF0 NO; -OPCODE FABS 0xD9 0xE1 NO; -OPCODE FCHS 0xD9 0xE0 NO; -OPCODE FSIN 0xD9 0xFE NO; -OPCODE FCOS 0xD9 0xFF NO; -OPCODE FPTAN 0xD9 0xF2 NO; -OPCODE FPATAN 0xD9 0xF3 NO; -OPCODE FSQRT 0xD9 0xFA NO; -OPCODE FMULP 0xDE 0xC9 NO; -OPCODE FDIVP 0xDE 0xF9 NO; -OPCODE FDIVRP 0xDE 0xF1 NO; -OPCODE FPREM 0xD9 0xF8 NO; -OPCODE FADDP 0xDE 0xC1 NO; -OPCODE FSUBP 0xDE 0xE9 NO; -OPCODE FSUBRP 0xDE 0xE1 NO; -OPCODE FCOMIP 0xDF 0xF1 NO; -OPCODE FCLEX 0x9B 0xDB 0xE2 NO; -OPCODE FSTSW 0x98 0xDF 0xE0 NO; -OPCODE FDECSTP 0xD9 0xF6 NO; -OPCODE FINCSTP 0xD9 0xF7 NO; -OPCODE FFREE 0xDD 0xC0 NO; -OPCODE FRNDINT 0xD9 0xFC NO; -OPCODE FSCALE 0xD9 0xFD NO; -OPCODE FXTRACT 0xD9 0xF4 NO; -OPCODE FLD1 0xD9 0xE8 NO; -OPCODE FLDL2T 0xD9 0xE9 NO; -OPCODE FLDL2E 0xD9 0xEA NO; -OPCODE FLDPI 0xD9 0xEB NO; -OPCODE FLDLG2 0xD9 0xEC NO; -OPCODE FLDLN2 0xD9 0xED NO; -OPCODE FLDZ 0xD9 0xEE NO; -OPCODE FXCH 0xD9 0xC9 NO; -OPCODE FSTCW - 0x9B 0xD9 /7 NO RM32 - 0x9B 0xD9 /7 NO RM64; -OPCODE FLDCW - 0xD9 /5 NO RM32 - 0xD9 /5 NO RM64; - -OPCODE WBINVD 0x0F 0x09 NO; -OPCODE CLFLUSH 0x0F 0xAE /7 NO RM8; -OPCODE CPUID 0x0F 0xA2 =NO; -OPCODE RDTSC 0x0F 0x31 =NO; diff --git a/LT/Compiler/OptPass1.CPZ b/LT/Compiler/OptPass1.CPZ deleted file mode 100644 index f9e8e9f..0000000 --- a/LT/Compiler/OptPass1.CPZ +++ /dev/null @@ -1,1540 +0,0 @@ - -#define FBO1_NOT_CONST 0 -#define FBO1_INT 1 -#define FBO1_DOUBLE 2 - - -BoolU8 FixupBinaryOp1(IntermediateCode *tempi, - IntermediateCode *tempi1,IntermediateCode *tempi2, - BoolU4 *is_unsigned) -{ - ClassStruct *tempc=tempi->ic_class,*tempc1,*tempc2; - tempc1=tempi1->ic_class; - while (tempc1->return_class) - tempc1=tempc1->return_class; - tempc2=tempi2->ic_class; - while (tempc2->return_class) - tempc2=tempc2->return_class; - if (tempc1->sub_type>tempc2->sub_type) - tempi->ic_class=tempc1; - else - tempi->ic_class=tempc2; - tempc=tempi->ic_class; - if (tempc->sub_type==IT_DOUBLE) { - if (!(tempi->ic_flags&ICF_USE_INT)) { - if (tempi1->ic_opcode==EC_IMM) { - tempi1->ic_data><(double)=tempi1->ic_data; - tempi1->ic_class=sys_internal_types[IT_DOUBLE]; - tempi1->ic_opcode=EC_DOUBLE; - } else - if (tempc1->sub_type!=IT_DOUBLE) - tempi1->ic_flags|=ICF_R_TO_DOUBLE; - if (tempi2->ic_opcode==EC_IMM) { - tempi2->ic_data><(double)=tempi2->ic_data; - tempi2->ic_class=sys_internal_types[IT_DOUBLE]; - tempi2->ic_opcode=EC_DOUBLE; - } else - if (tempc2->sub_type!=IT_DOUBLE) - tempi2->ic_flags|=ICF_R_TO_DOUBLE; - } - if (tempi1->ic_opcode==EC_DOUBLE && - tempi2->ic_opcode==EC_DOUBLE && - !(tempi->ic_flags&(ICF_PUSH_CMP|ICF_POP_CMP))) { - tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags; - tempi1->ic_opcode=EC_NOP; - tempi1->ic_flags=0; - tempi2->ic_opcode=EC_NOP; - tempi2->ic_flags=0; - return FBO1_DOUBLE; - } else - return FBO1_NOT_CONST; - } - tempi->ic_flags&=~ICF_USE_INT; - *is_unsigned=tempc1->sub_type&1 || tempc2->sub_type&1; - if (tempi1->ic_opcode==EC_IMM && - tempi2->ic_opcode==EC_IMM && - !(tempi->ic_flags&(ICF_PUSH_CMP|ICF_POP_CMP))) { - tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags; - tempi1->ic_opcode=EC_NOP; - tempi1->ic_flags=0; - tempi2->ic_opcode=EC_NOP; - tempi2->ic_flags=0; - return FBO1_INT; - } else - return FBO1_NOT_CONST; -} - -BoolU8 FixupBinaryOp2(IntermediateCode **tempi1,IntermediateCode **tempi2) -{ - IntermediateCode *tempii1=*tempi1, - *tempii2=*tempi2; - if (tempii1->ic_opcode==EC_IMM && - !(tempii1->ic_flags & ICF_R_TO_DOUBLE)) - return TRUE; - if (tempii2->ic_opcode==EC_IMM && - !(tempii2->ic_flags & ICF_R_TO_DOUBLE)) { - *tempi1=tempii2; - *tempi2=tempii1; - return TRUE; - } - return FALSE; -} - -BoolU8 FixupUnaryOp(IntermediateCode *tempi, - IntermediateCode *tempi1, - BoolU4 *is_unsigned) -{ - ClassStruct *tempc,*tempc1; - tempc1=tempi1->ic_class; - while (tempc1->return_class) - tempc1=tempc1->return_class; - tempi->ic_class=tempc1; - tempc=tempi->ic_class; - if (tempc->sub_type==IT_DOUBLE) { - if (!(tempi->ic_flags&ICF_USE_INT)) { - if (tempi1->ic_opcode==EC_IMM) { - tempi1->ic_data><(double)=tempi1->ic_data; - tempi1->ic_class=sys_internal_types[IT_DOUBLE]; - tempi1->ic_opcode=EC_DOUBLE; - } else - if (tempc1->sub_type!=IT_DOUBLE) - tempi1->ic_flags|=ICF_R_TO_DOUBLE; - } - if (tempi1->ic_opcode==EC_DOUBLE) { - tempi->ic_flags|=tempi1->ic_flags; - tempi1->ic_opcode=EC_NOP; - tempi1->ic_flags=0; - return FBO1_DOUBLE; - } else - return FBO1_NOT_CONST; - } - tempi->ic_flags&=~ICF_USE_INT; - *is_unsigned=tempc1->sub_type&1; - if (tempi1->ic_opcode==EC_IMM) { - tempi->ic_flags|=tempi1->ic_flags; - tempi1->ic_opcode=EC_NOP; - tempi1->ic_flags=0; - return FBO1_INT; - } else - return FBO1_NOT_CONST; -} - -I8 CmpOffsetToReg(I8 offset,I8 *register_offsets) -{ - I8 i; - for (i=0;icb); - ps->ptr=0; - for (i=0;i<4;i++) - temp_lag[i]=&opt_nop; - return ps; -} - -LTextern CP_OPTNEXT BoolU4 OptNext(IntermediateCode *tempi, - IntermediateCode **temp_lag); - -LTextern CP_OPTNEXT2 BoolU4 OptNext2(IntermediateCode *tempi, - IntermediateCode **temp_lag); - -LTextern CP_OPTNEXT3 BoolU4 OptNext3(IntermediateCode *tempi, - IntermediateCode **temp_lag); - -void OptEnd(LexStruct *lx,I8 pass,ParseStack *ps) -{ - if (ps->ptr>2) { - PrintF("Pass:%d Stack:%08X\r\n",pass,ps->ptr); - PrsExcept(lx,"ST_OPT_INTERNAL_ERROR"); - } - Free(ps); -} - - -IntermediateCode *OptLag(LexStruct *lx,IntermediateCode *tempi) -{ - do { - if (tempi==lx->cb.cb_in_ptr) - return NULL; - else - tempi-=sizeof(IntermediateCode); - } while (tempi->ic_opcode<=EC_END_EXP); - return tempi; -} - -IntermediateCode *OptLag1(LexStruct *lx,IntermediateCode *tempi) -{ - do { - if (tempi==lx->cb.cb_in_ptr) - return NULL; - else - tempi-=sizeof(IntermediateCode); - } while (tempi->ic_opcode==EC_NOP||tempi->ic_opcode==EC_NOP1); - return tempi; -} - -IntermediateCode *OptLead1(LexStruct *lx,IntermediateCode *tempi) -{ - nounusedwarn lx; - do { - tempi+=sizeof(IntermediateCode); - if (tempi->ic_opcode==EC_NULL) - return NULL; - } while (tempi->ic_opcode==EC_NOP||tempi->ic_opcode==EC_NOP1); - return tempi; -} - -extern void OptBrNotZero(LexStruct *lx,IntermediateCode *tempi); - -IntermediateCode *OptBrZero(LexStruct *lx,IntermediateCode *tempi) -{ - CbMiscStruct *templ_true,*templ_false; - IntermediateCode *tempii=OptLag(lx,tempi),*tempii2; - switch (tempii->ic_opcode) { - case EC_NOT: - tempi->ic_opcode=EC_BR_NOT_ZERO; - tempi->ic_class=tempii->ic_class; - tempi->ic_flags|=tempii->ic_flags; - tempi->p1c=tempii->p1c; - tempi->p1t=tempii->p1t; - tempii->ic_opcode=EC_NOP; - tempii->ic_flags=0; - return OptBrNotZero(lx,tempi); - case EC_EQUAL_EQUAL: - tempi->ic_opcode=EC_BR_NOT_EQUAL; - break; - case EC_NOT_EQUAL: - tempi->ic_opcode=EC_BR_EQUAL_EQUAL; - break; - case EC_LESS: - tempi->ic_opcode=EC_BR_GREATER_EQUAL; - break; - case EC_GREATER: - tempi->ic_opcode=EC_BR_LESS_EQUAL; - break; - case EC_LESS_EQUAL: - tempi->ic_opcode=EC_BR_GREATER; - break; - case EC_GREATER_EQUAL: - tempi->ic_opcode=EC_BR_LESS; - break; - case EC_OR_OR: - tempi->ic_opcode=EC_BR_OR_OR_ZERO; - break; - case EC_AND_AND: - tempi->ic_opcode=EC_BR_AND_AND_ZERO; - break; - case EC_AND: - tempi->ic_opcode=EC_BR_AND_ZERO; - break; - case EC_CALL_END: - tempii2=OptLag(lx,tempii); - switch (tempii2->ic_opcode) { - case EC_BT: - tempii2->ic_opcode=EC_BR_NOT_BT; - tempii2->ic_data=tempi->ic_data; - tempii->ic_opcode=EC_CALL_END2; - tempi->ic_opcode=EC_NOP; - return tempii; - case EC_BTS: - tempii2->ic_opcode=EC_BR_NOT_BTS; - tempii2->ic_data=tempi->ic_data; - tempii->ic_opcode=EC_CALL_END2; - tempi->ic_opcode=EC_NOP; - return tempii; - case EC_BTR: - tempii2->ic_opcode=EC_BR_NOT_BTR; - tempii2->ic_data=tempi->ic_data; - tempii->ic_opcode=EC_CALL_END2; - tempi->ic_opcode=EC_NOP; - return tempii; - case EC_BTC: - tempii2->ic_opcode=EC_BR_NOT_BTC; - tempii2->ic_data=tempi->ic_data; - tempii->ic_opcode=EC_CALL_END2; - tempi->ic_opcode=EC_NOP; - return tempii; - case EC_LBTS: - tempii2->ic_opcode=EC_BR_NOT_LBTS; - tempii2->ic_data=tempi->ic_data; - tempii->ic_opcode=EC_CALL_END2; - tempi->ic_opcode=EC_NOP; - return tempii; - case EC_LBTR: - tempii2->ic_opcode=EC_BR_NOT_LBTR; - tempii2->ic_data=tempi->ic_data; - tempii->ic_opcode=EC_CALL_END2; - tempi->ic_opcode=EC_NOP; - return tempii; - case EC_LBTC: - tempii2->ic_opcode=EC_BR_NOT_LBTC; - tempii2->ic_data=tempi->ic_data; - tempii->ic_opcode=EC_CALL_END2; - tempi->ic_opcode=EC_NOP; - return tempii; - } - break; - } - if (tempi->ic_opcode!=EC_BR_ZERO) { - tempi->ic_class=tempii->ic_class; - tempi->ic_flags|=tempii->ic_flags; - tempi->p1c=tempii->p1c; - tempi->p2c=tempii->p2c; - tempi->p1t=tempii->p1t; - tempi->p2t=tempii->p2t; - tempii->ic_opcode=EC_NOP; - tempii->ic_flags=0; - templ_true=tempi->ic_data; - if (tempi->ic_opcode==EC_BR_AND_AND_ZERO) { - tempi->ic_opcode=EC_NOP; - tempi->ic_flags=0; - tempii=tempi->p1t+sizeof(IntermediateCode); - tempii->ic_data=templ_true; - tempii->p1t=tempi->p1t; - tempii->p1c=tempi->p1c; - tempii->ic_opcode=EC_BR_ZERO; - OptBrZero(lx,tempii); - tempii=tempi->p2t+sizeof(IntermediateCode); - tempii->p1t=tempi->p2t; - tempii->p1c=tempi->p2c; - tempii->ic_data=templ_true; - tempii->ic_opcode=EC_BR_ZERO; - return OptBrZero(lx,tempii); - } else if (tempi->ic_opcode==EC_BR_OR_OR_ZERO) { - templ_false=CbMiscNew(lx,CBMT_LABEL); - tempi->ic_opcode=EC_LABEL; - tempi->ic_flags=0; - tempi->ic_data=templ_false; - tempii=tempi->p1t+sizeof(IntermediateCode); - tempii->p1t=tempi->p1t; - tempii->p1c=tempi->p1c; - tempii->ic_data=templ_false; - tempii->ic_opcode=EC_BR_NOT_ZERO; - OptBrNotZero(lx,tempii); - tempii=tempi->p2t+sizeof(IntermediateCode); - tempii->p1t=tempi->p2t; - tempii->p1c=tempi->p2c; - tempii->ic_data=templ_true; - tempii->ic_opcode=EC_BR_ZERO; - return OptBrZero(lx,tempii); - } - } - return tempi; -} - - -IntermediateCode *OptBrNotZero(LexStruct *lx,IntermediateCode *tempi) -{ - CbMiscStruct *templ_true,*templ_false; - IntermediateCode *tempii=OptLag(lx,tempi),*tempii2; - switch (tempii->ic_opcode) { - case EC_NOT: - tempi->ic_opcode=EC_BR_ZERO; - tempi->ic_class=tempii->ic_class; - tempi->ic_flags|=tempii->ic_flags; - tempi->p1c=tempii->p1c; - tempi->p1t=tempii->p1t; - tempii->ic_opcode=EC_NOP; - tempii->ic_flags=0; - return OptBrZero(lx,tempi); - case EC_EQUAL_EQUAL: - tempi->ic_opcode=EC_BR_EQUAL_EQUAL; - break; - case EC_NOT_EQUAL: - tempi->ic_opcode=EC_BR_NOT_EQUAL; - break; - case EC_LESS: - tempi->ic_opcode=EC_BR_LESS; - break; - case EC_GREATER: - tempi->ic_opcode=EC_BR_GREATER; - break; - case EC_LESS_EQUAL: - tempi->ic_opcode=EC_BR_LESS_EQUAL; - break; - case EC_GREATER_EQUAL: - tempi->ic_opcode=EC_BR_GREATER_EQUAL; - break; - case EC_OR_OR: - tempi->ic_opcode=EC_BR_OR_OR_NOT_ZERO; - break; - case EC_AND_AND: - tempi->ic_opcode=EC_BR_AND_AND_NOT_ZERO; - break; - case EC_AND: - tempi->ic_opcode=EC_BR_AND_NOT_ZERO; - break; - case EC_CALL_END: - tempii2=OptLag(lx,tempii); - switch (tempii2->ic_opcode) { - case EC_BT: - tempii2->ic_opcode=EC_BR_BT; - tempii2->ic_data=tempi->ic_data; - tempii->ic_opcode=EC_CALL_END2; - tempi->ic_opcode=EC_NOP; - return tempii; - case EC_BTS: - tempii2->ic_opcode=EC_BR_BTS; - tempii2->ic_data=tempi->ic_data; - tempii->ic_opcode=EC_CALL_END2; - tempi->ic_opcode=EC_NOP; - return tempii; - case EC_BTR: - tempii2->ic_opcode=EC_BR_BTR; - tempii2->ic_data=tempi->ic_data; - tempii->ic_opcode=EC_CALL_END2; - tempi->ic_opcode=EC_NOP; - return tempii; - case EC_BTC: - tempii2->ic_opcode=EC_BR_BTC; - tempii2->ic_data=tempi->ic_data; - tempii->ic_opcode=EC_CALL_END2; - tempi->ic_opcode=EC_NOP; - return tempii; - case EC_LBTS: - tempii2->ic_opcode=EC_BR_LBTS; - tempii2->ic_data=tempi->ic_data; - tempii->ic_opcode=EC_CALL_END2; - tempi->ic_opcode=EC_NOP; - return tempii; - case EC_LBTR: - tempii2->ic_opcode=EC_BR_LBTR; - tempii2->ic_data=tempi->ic_data; - tempii->ic_opcode=EC_CALL_END2; - tempi->ic_opcode=EC_NOP; - return tempii; - case EC_LBTC: - tempii2->ic_opcode=EC_BR_LBTC; - tempii2->ic_data=tempi->ic_data; - tempii->ic_opcode=EC_CALL_END2; - tempi->ic_opcode=EC_NOP; - return tempii; - } - break; - } - if (tempi->ic_opcode!=EC_BR_NOT_ZERO) { - tempi->ic_class=tempii->ic_class; - tempi->ic_flags|=tempii->ic_flags; - tempi->p1c=tempii->p1c; - tempi->p2c=tempii->p2c; - tempi->p1t=tempii->p1t; - tempi->p2t=tempii->p2t; - tempii->ic_opcode=EC_NOP; - tempii->ic_flags=0; - templ_true=tempi->ic_data; - if (tempi->ic_opcode==EC_BR_OR_OR_NOT_ZERO) { - tempi->ic_opcode=EC_NOP; - tempi->ic_flags=0; - tempii=tempi->p1t+sizeof(IntermediateCode); - tempii->p1t=tempi->p1t; - tempii->p1c=tempi->p1c; - tempii->ic_data=templ_true; - tempii->ic_opcode=EC_BR_NOT_ZERO; - OptBrNotZero(lx,tempii); - tempii=tempi->p2t+sizeof(IntermediateCode); - tempii->p1t=tempi->p2t; - tempii->p1c=tempi->p2c; - tempii->ic_data=templ_true; - tempii->ic_opcode=EC_BR_NOT_ZERO; - return OptBrNotZero(lx,tempii); - } else if (tempi->ic_opcode==EC_BR_AND_AND_NOT_ZERO) { - templ_false=CbMiscNew(lx,CBMT_LABEL); - tempi->ic_opcode=EC_LABEL; - tempi->ic_flags=0; - tempi->ic_data=templ_false; - tempii=tempi->p1t+sizeof(IntermediateCode); - tempii->p1t=tempi->p1t; - tempii->p1c=tempi->p1c; - tempii->ic_data=templ_false; - tempii->ic_opcode=EC_BR_ZERO; - OptBrZero(lx,tempii); - tempii=tempi->p2t+sizeof(IntermediateCode); - tempii->p1t=tempi->p2t; - tempii->p1c=tempi->p2c; - tempii->ic_data=templ_true; - tempii->ic_opcode=EC_BR_NOT_ZERO; - return OptBrNotZero(lx,tempii); - } - } - return tempi; -} - -IntermediateCode *CmpOptPass1(LexStruct *lx,ClassStruct *fun_class,BoolU4 combined) -{ -/* - Simplify CONST arithmetic. - Sets the class throughout Expression trees. - Returns the type of an Expression for use - in int<-->double conversions of function - parameters. -*/ - I8 code,i; - BoolU4 is_unsigned; - ClassStruct *tempc,*tempc1,*tempc2,*tempc3,*tempcc; - IntermediateCode *tempi,*tempi1,*tempi2,*tempi3,*tempi_push, - *temp_lag[4],*last_with_class=NULL,*tempii; - ParseStack *ps=OptStart(lx,temp_lag); - if (combined) - tempi=lx->cb.cb_in_ptr; - else - tempi=CbGetIc1(&lx->cb); - while (code=tempi->ic_opcode) { - OptNext(tempi,temp_lag); - tempc=tempi->ic_class; - tempi->original_class=tempc; - tempi_push=tempi; - switch (cmp_param_cnt[code]) { - case 9: - ps->ptr-=tempi->ic_data>>2; - break; - case 3: - tempi3=PrsPop(ps); - tempc3=tempi3->ic_class; - tempi->p3t=tempi3; - tempi->p3c=PrsPop(ps); - case 2: - tempi2=PrsPop(ps); - tempc2=tempi2->ic_class; - tempi->p2t=tempi2; - tempi->p2c=PrsPop(ps); - case 1: - tempi1=PrsPop(ps); - tempc1=tempi1->ic_class; - tempi->p1t=tempi1; - tempi->p1c=PrsPop(ps); - break; - } - if (Bt(not_constant_bitmap,code)) - lx->flags|=LF_NOT_CONSTANT; - switch (code) { - case EC_IMM: - case EC_DOUBLE: - case EC_STR_CONST: - case EC_RBP: - case EC_FS: - case EC_GS: - break; - case EC_PUSH_CMP: - tempi1=temp_lag[1]; - if (tempi1->ic_opcode==EC_AND_AND) - tempi1=temp_lag[2]; - tempi->ic_class=tempi1->ic_class; - tempi->original_class=tempi->ic_class; - tempi->ic_data=0; - if (tempi->ic_class->sub_type==IT_DOUBLE) - tempi->ic_flags|=ICF_USE_DOUBLE; - break; - case EC_COM: - if (tempc->sub_type==IT_DOUBLE) { - if (tempi1->ic_opcode==EC_DOUBLE) { - tempi->ic_data><(double)=~tempi1->ic_data><(double); - tempi->ic_opcode=EC_DOUBLE; - tempi->ic_flags|=tempi1->ic_flags; - tempi1->ic_opcode=EC_NOP; - tempi1->ic_flags=0; - } - break; - } - if (tempi1->ic_opcode==EC_IMM) { - tempi->ic_data=~tempi1->ic_data; - tempi->ic_opcode=EC_IMM; - tempi->ic_flags|=tempi1->ic_flags; - tempi1->ic_opcode=EC_NOP; - tempi1->ic_flags=0; - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - case EC_NOT: - if (tempc->sub_type==IT_DOUBLE) { - if (tempi1->ic_opcode==EC_DOUBLE) { - tempi->ic_data><(double)=!tempi1->ic_data><(double); - tempi->ic_opcode=EC_DOUBLE; - tempi->ic_flags|=tempi1->ic_flags; - tempi1->ic_opcode=EC_NOP; - tempi1->ic_flags=0; - } - break; - } - if (tempi1->ic_opcode==EC_IMM) { - tempi->ic_data=!tempi1->ic_data; - tempi->ic_opcode=EC_IMM; - tempi->ic_flags|=tempi1->ic_flags; - tempi1->ic_opcode=EC_NOP; - tempi1->ic_flags=0; - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - case EC_UNARY_MINUS: - if (i=FixupUnaryOp(tempi,tempi1,&is_unsigned)) { - if (i==FBO1_INT) { - tempi->ic_data=-tempi1->ic_data><(I8); - tempi->ic_opcode=EC_IMM; - } else { - if (tempi->ic_flags&ICF_USE_INT) { - tempi->ic_data=-tempi1->ic_data><(double); - tempi->ic_opcode=EC_IMM; - } else { - tempi->ic_data><(double)=-tempi1->ic_data><(double); - tempi->ic_opcode=EC_DOUBLE; - } - } - } - if (tempc1->type&HTT_INTERNAL_TYPE && tempc1->sub_type& 1) - tempi->ic_class=sys_internal_types[tempc1->sub_type-1]; - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - case EC_DEREF: - case EC__PP: - case EC__MM: - case EC_PP_: - case EC_MM_: - break; - case EC_SHL_CONST: - case EC_SHR_CONST: - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - - case EC_POWER: - if (tempc1->sub_type>tempc2->sub_type) - tempi->ic_class=tempc1; - else - tempi->ic_class=tempc2; - tempc=tempi->ic_class; - if (tempc1->sub_type!=IT_DOUBLE) - tempi1->ic_flags|=ICF_R_TO_DOUBLE; - if (tempc2->sub_type!=IT_DOUBLE) - tempi2->ic_flags|=ICF_R_TO_DOUBLE; - if (tempc->sub_type!=IT_DOUBLE) - tempi->ic_flags|=ICF_R_TO_INT|ICF_USE_DOUBLE; - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - case EC_SHL: - if (i=FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - if (i==FBO1_INT) { - if (is_unsigned) - tempi->ic_data=tempi1->ic_data><(U8)<ic_data><(U8); - else - tempi->ic_data=tempi1->ic_data><(I8)<ic_data><(I8); - tempi->ic_opcode=EC_IMM; - } else { - tempi->ic_data><(double)=tempi1->ic_data><(double) << tempi2->ic_data><(double); - tempi->ic_opcode=EC_DOUBLE; - } - } else if (tempi2->ic_opcode==EC_IMM) { - tempi->ic_flags|=tempi2->ic_flags; - tempi2->ic_opcode=EC_NOP; - tempi2->ic_flags=0; - tempi->ic_data=tempi2->ic_data; - tempi->ic_opcode=EC_SHL_CONST; - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - case EC_SHR: - if (i=FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - if (i==FBO1_INT) { - if (is_unsigned) - tempi->ic_data=tempi1->ic_data><(U8)>>tempi2->ic_data><(U8); - else - tempi->ic_data=tempi1->ic_data><(I8)>>tempi2->ic_data><(I8); - tempi->ic_opcode=EC_IMM; - } else { - tempi->ic_data><(double)=tempi1->ic_data><(double) >> tempi2->ic_data><(double); - tempi->ic_opcode=EC_DOUBLE; - } - } else if (tempi2->ic_opcode==EC_IMM) { - tempi->ic_flags|=tempi2->ic_flags; - tempi2->ic_opcode=EC_NOP; - tempi2->ic_flags=0; - tempi->ic_data=tempi2->ic_data; - tempi->ic_opcode=EC_SHR_CONST; - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - case EC_MUL: - if (i=FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - if (i==FBO1_INT) { - if (is_unsigned) - tempi->ic_data=tempi1->ic_data><(U8)*tempi2->ic_data><(U8); - else - tempi->ic_data=tempi1->ic_data><(I8)*tempi2->ic_data><(I8); - tempi->ic_opcode=EC_IMM; - } else { - if (tempi->ic_flags&ICF_USE_INT) { - tempi->ic_data=tempi1->ic_data><(double)* - tempi2->ic_data><(double); - tempi->ic_opcode=EC_IMM; - } else { - tempi->ic_data><(double)=tempi1->ic_data><(double)* - tempi2->ic_data><(double); - tempi->ic_opcode=EC_DOUBLE; - } - } - } else { - if (tempi2->ic_opcode==EC_IMM) { - tempcc=tempi->p1c; - tempii=tempi2; - tempi2=tempi1; - tempi1=tempii; - } else - tempcc=tempi->p2c; - - if (tempi1->ic_opcode==EC_IMM) { - i=tempi1->ic_data; - switch (i) { - case 0: - break; - case 1: - tempi2->ic_flags|=tempi->ic_flags|tempi1->ic_flags; - tempi1->ic_opcode=EC_NOP; - tempi1->ic_flags=0; - tempi->ic_opcode=EC_NOP; - tempi->ic_flags=0; - tempi2->p1c=tempi->p1c; - tempi2->p1t=tempi->p1t; - tempi2->original_class=tempi->original_class; - tempi_push=tempi2; - break; - default: - if (Bsf(i)==Bsr(i)) { - tempi->ic_flags|=tempi1->ic_flags; - tempi->p1c=tempcc; - tempi1->ic_opcode=EC_NOP; - tempi1->ic_flags=0; - tempi->ic_data=Bsf(i); - tempi->ic_opcode=EC_SHL_CONST; - } - break; - } - } - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - case EC_DIV: - if (i=FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - if (!tempi2->ic_data) PrsExcept(lx,"ST_DIVIDE_BY_ZERO"); - if (i==FBO1_INT) { - if (is_unsigned) - tempi->ic_data=tempi1->ic_data><(U8)/tempi2->ic_data><(U8); - else - tempi->ic_data=tempi1->ic_data><(I8)/tempi2->ic_data><(I8); - tempi->ic_opcode=EC_IMM; - } else { - tempi->ic_data><(double)=tempi1->ic_data><(double)/ - tempi2->ic_data><(double); - tempi->ic_opcode=EC_DOUBLE; - } - } else { - if (tempi2->ic_opcode==EC_IMM) { - i=tempi2->ic_data; - switch (i) { - case 0: - PrsExcept(lx,"ST_DIVIDE_BY_ZERO"); - break; - case 1: - tempi1->ic_flags|=tempi2->ic_flags|tempi->ic_flags; - tempi2->ic_opcode=EC_NOP; - tempi2->ic_flags=0; - tempi->ic_opcode=EC_NOP; - tempi->ic_flags=0; - tempi1->p1c=tempi->p1c; - tempi1->p1t=tempi->p1t; - tempi1->original_class=tempi->original_class; - tempi_push=tempi1; - break; - default: - if (Bsf(i)==Bsr(i)) { - tempi->ic_flags|=tempi2->ic_flags; - tempi2->ic_opcode=EC_NOP; - tempi2->ic_flags=0; - tempi->ic_data=Bsf(i); - tempi->ic_opcode=EC_SHR_CONST; - } - break; - } - } - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - case EC_MOD: - if (i=FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - if (!tempi2->ic_data) PrsExcept(lx,"ST_DIVIDE_BY_ZERO"); - if (i==FBO1_INT) { - if (is_unsigned) - tempi->ic_data=tempi1->ic_data><(U8)%tempi2->ic_data><(U8); - else - tempi->ic_data=tempi1->ic_data><(I8)%tempi2->ic_data><(I8); - tempi->ic_opcode=EC_IMM; - } else { - tempi->ic_data><(double)=tempi1->ic_data><(double)% - tempi2->ic_data><(double); - tempi->ic_opcode=EC_DOUBLE; - } - } else { - if (tempi2->ic_opcode==EC_IMM) { - i=tempi2->ic_data; - switch (i) { - case 0: - PrsExcept(lx,"ST_DIVIDE_BY_ZERO"); - break; - default: - if (i>0 && Bsf(i)==Bsr(i)) { - tempi2->ic_data=i-1; - tempi->ic_opcode=EC_AND; - } - break; - } - } - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - case EC_AND: - if (i=FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data&tempi2->ic_data; - if (i==FBO1_INT) - tempi->ic_opcode=EC_IMM; - else - tempi->ic_opcode=EC_DOUBLE; - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - case EC_OR: - if (i=FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data|tempi2->ic_data; - if (i==FBO1_INT) - tempi->ic_opcode=EC_IMM; - else - tempi->ic_opcode=EC_DOUBLE; - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - case EC_XOR: - if (i=FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data^tempi2->ic_data; - if (i==FBO1_INT) - tempi->ic_opcode=EC_IMM; - else - tempi->ic_opcode=EC_DOUBLE; - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - case EC_ADD: - if (i=FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - if (i==FBO1_INT) { - tempi->ic_data=tempi1->ic_data+tempi2->ic_data; - tempi->ic_opcode=EC_IMM; - } else { - if (tempi->ic_flags&ICF_USE_INT) { - tempi->ic_data=tempi1->ic_data><(double)* - tempi2->ic_data><(double); - tempi->ic_opcode=EC_IMM; - } else { - tempi->ic_data><(double)=tempi1->ic_data><(double)+ - tempi2->ic_data><(double); - tempi->ic_opcode=EC_DOUBLE; - } - } - } else { - if (tempi1->ic_opcode==EC_IMM) { -/******* we got problems--class needs to propigate back - if (!tempi1->ic_data) { - tempi2->ic_flags|=tempi1->ic_flags|tempi->ic_flags; - tempi1->ic_opcode=EC_NOP; - tempi1->ic_flags=0; - tempi->ic_opcode=EC_NOP; - tempi->ic_flags=0; - tempi2->p1c=tempi->p1c; - tempi2->p1t=tempi->p1t; - tempi2->original_class=tempi->original_class; - tempi_push=tempi2; - } else -*******/ - -// we got problems--class needs to propigate back - if (tempi2->ic_opcode==EC_ADD|| - tempi2->ic_opcode==EC_SUB) { - if (tempi2->p1t->ic_opcode==EC_IMM) { - tempi2->ic_flags|=tempi->ic_flags; - if (tempi2->ic_opcode==EC_ADD) - tempi2->p1t->ic_data+=tempi1->ic_data; - else - tempi2->p1t->ic_data-=tempi1->ic_data; - tempi1->ic_opcode=EC_NOP; - tempi1->ic_flags=0; - tempi->ic_opcode=EC_NOP; - tempi->ic_flags=0; - tempi2->p1c=tempi->p1c; - tempi2->p1t=tempi->p1t; - tempi2->original_class=tempi->original_class; - tempi_push=tempi2; - } else if (tempi2->p2t->ic_opcode==EC_IMM) { - tempi2->ic_flags|=tempi->ic_flags; - if (tempi2->ic_opcode==EC_ADD) - tempi2->p2t->ic_data+=tempi1->ic_data; - else - tempi2->p2t->ic_data-=tempi1->ic_data; - tempi1->ic_opcode=EC_NOP; - tempi1->ic_flags=0; - tempi->ic_opcode=EC_NOP; - tempi->ic_flags=0; - tempi2->p1c=tempi->p1c; - tempi2->p1t=tempi->p1t; - tempi2->original_class=tempi->original_class; - tempi_push=tempi2; - } - } - } else if (tempi2->ic_opcode==EC_IMM) { -/******* we got problems--class needs to propigate back - if (!tempi2->ic_data) { - tempi1->ic_flags|=tempi2->ic_flags|tempi->ic_flags; - tempi2->ic_opcode=EC_NOP; - tempi2->ic_flags=0; - tempi->ic_opcode=EC_NOP; - tempi->ic_flags=0; - tempi1->p1c=tempi->p1c; - tempi1->p1t=tempi->p1t; - tempi1->original_class=tempi->original_class; - tempi_push=tempi1; - } else -*******/ - -// we got problems--class needs to propigate back - if (tempi1->ic_opcode==EC_ADD || - tempi1->ic_opcode==EC_SUB) { - if (tempi1->p1t->ic_opcode==EC_IMM) { - tempi1->ic_flags|=tempi->ic_flags; - if (tempi1->ic_opcode==EC_ADD) - tempi1->p1t->ic_data+=tempi2->ic_data; - else - tempi1->p1t->ic_data-=tempi2->ic_data; - tempi2->ic_opcode=EC_NOP; - tempi2->ic_flags=0; - tempi->ic_opcode=EC_NOP; - tempi->ic_flags=0; - tempi1->p1c=tempi->p1c; - tempi1->p1t=tempi->p1t; - tempi1->original_class=tempi->original_class; - tempi_push=tempi1; - } else if (tempi1->p2t->ic_opcode==EC_IMM) { - tempi1->ic_flags|=tempi->ic_flags; - if (tempi1->ic_opcode==EC_ADD) - tempi1->p2t->ic_data+=tempi2->ic_data; - else - tempi1->p2t->ic_data-=tempi2->ic_data; - tempi2->ic_opcode=EC_NOP; - tempi2->ic_flags=0; - tempi->ic_opcode=EC_NOP; - tempi->ic_flags=0; - tempi1->p1c=tempi->p1c; - tempi1->p1t=tempi->p1t; - tempi1->original_class=tempi->original_class; - tempi_push=tempi1; - } - } - } - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - case EC_SUB: - if (i=FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - if (i==FBO1_INT) { - tempi->ic_data=tempi1->ic_data-tempi2->ic_data; - tempi->ic_opcode=EC_IMM; - } else { - tempi->ic_data><(double)=tempi1->ic_data><(double)- - tempi2->ic_data><(double); - tempi->ic_opcode=EC_DOUBLE; - } - } else { - if (tempi2->ic_opcode==EC_IMM && !tempi2->ic_data) { - tempi1->ic_flags|=tempi2->ic_flags|tempi->ic_flags; - tempi2->ic_opcode=EC_NOP; - tempi2->ic_flags=0; - tempi->ic_opcode=EC_NOP; - tempi->ic_flags=0; - tempi1->p1c=tempi->p1c; - tempi1->p1t=tempi->p1t; - tempi1->original_class=tempi->original_class; - tempi_push=tempi1; - } - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - case EC_EQUAL_EQUAL: - if (FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data==tempi2->ic_data; - tempi->ic_opcode=EC_IMM; - } else - if (tempi->ic_class->sub_type==IT_DOUBLE) - tempi->ic_flags|=ICF_USE_DOUBLE; - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - if (tempi_push->ic_flags & ICF_PUSH_CMP) - tempi->ic_class=tempi->original_class; - else - tempi->ic_class=sys_internal_types[IT_I8]; - break; - case EC_NOT_EQUAL: - if (FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data!=tempi2->ic_data; - tempi->ic_opcode=EC_IMM; - } else - if (tempi->ic_class->sub_type==IT_DOUBLE) - tempi->ic_flags|=ICF_USE_DOUBLE; - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - if (tempi_push->ic_flags & ICF_PUSH_CMP) - tempi->ic_class=tempi->original_class; - else - tempi->ic_class=sys_internal_types[IT_I8]; - break; - case EC_LESS: - if (i=FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - if (i==FBO1_INT) { - if (is_unsigned) - tempi->ic_data=tempi1->ic_data><(U8)ic_data><(U8); - else - tempi->ic_data=tempi1->ic_data><(I8)ic_data><(I8); - } else { - tempi->ic_data=tempi1->ic_data><(double)< - tempi2->ic_data><(double); - } - tempi->ic_opcode=EC_IMM; - } else { - if (is_unsigned) - tempi->ic_flags|=ICF_USE_UNSIGNED; - if (tempi->ic_class->sub_type==IT_DOUBLE) - tempi->ic_flags|=ICF_USE_DOUBLE; - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - if (tempi_push->ic_flags & ICF_PUSH_CMP) - tempi->ic_class=tempi->original_class; - else - tempi->ic_class=sys_internal_types[IT_I8]; - break; - case EC_GREATER: - if (i=FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - if (i==FBO1_INT) { - if (is_unsigned) - tempi->ic_data=tempi1->ic_data><(U8)>tempi2->ic_data><(U8); - else - tempi->ic_data=tempi1->ic_data><(I8)>tempi2->ic_data><(I8); - } else { - tempi->ic_data=tempi1->ic_data><(double)> - tempi2->ic_data><(double); - } - tempi->ic_opcode=EC_IMM; - } else { - if (is_unsigned) - tempi->ic_flags|=ICF_USE_UNSIGNED; - if (tempi->ic_class->sub_type==IT_DOUBLE) - tempi->ic_flags|=ICF_USE_DOUBLE; - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - if (tempi_push->ic_flags & ICF_PUSH_CMP) - tempi->ic_class=tempi->original_class; - else - tempi->ic_class=sys_internal_types[IT_I8]; - break; - case EC_LESS_EQUAL: - if (i=FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - if (i==FBO1_INT) { - if (is_unsigned) - tempi->ic_data=tempi1->ic_data><(U8)<=tempi2->ic_data><(U8); - else - tempi->ic_data=tempi1->ic_data><(I8)<=tempi2->ic_data><(I8); - } else { - tempi->ic_data=tempi1->ic_data><(double)<= - tempi2->ic_data><(double); - } - tempi->ic_opcode=EC_IMM; - } else { - if (is_unsigned) - tempi->ic_flags|=ICF_USE_UNSIGNED; - if (tempi->ic_class->sub_type==IT_DOUBLE) - tempi->ic_flags|=ICF_USE_DOUBLE; - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - if (tempi_push->ic_flags & ICF_PUSH_CMP) - tempi->ic_class=tempi->original_class; - else - tempi->ic_class=sys_internal_types[IT_I8]; - break; - case EC_GREATER_EQUAL: - if (i=FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - if (i==FBO1_INT) { - if (is_unsigned) - tempi->ic_data=tempi1->ic_data><(U8)>=tempi2->ic_data><(U8); - else - tempi->ic_data=tempi1->ic_data><(I8)>=tempi2->ic_data><(I8); - } else { - tempi->ic_data=tempi1->ic_data><(double)>= - tempi2->ic_data><(double); - } - tempi->ic_opcode=EC_IMM; - } else { - if (is_unsigned) - tempi->ic_flags|=ICF_USE_UNSIGNED; - if (tempi->ic_class->sub_type==IT_DOUBLE) - tempi->ic_flags|=ICF_USE_DOUBLE; - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - if (tempi_push->ic_flags & ICF_PUSH_CMP) - tempi->ic_class=tempi->original_class; - else - tempi->ic_class=sys_internal_types[IT_I8]; - break; - case EC_AND_AND: - if (FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data&&tempi2->ic_data; - tempi->ic_opcode=EC_IMM; - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - tempi->ic_class=sys_internal_types[IT_I8]; - break; - case EC_OR_OR: - if (FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data||tempi2->ic_data; - tempi->ic_opcode=EC_IMM; - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - tempi->ic_class=sys_internal_types[IT_I8]; - break; - case EC_XOR_XOR: - if (FixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { - tempi->ic_data=tempi1->ic_data^^tempi2->ic_data; - tempi->ic_opcode=EC_IMM; - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else if (is_unsigned) - tempi_push->original_class=sys_internal_types[IT_U8]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - tempi->ic_class=sys_internal_types[IT_I8]; - break; - case EC_COLON: - if (tempc2->sub_type>tempc3->sub_type) - tempi->ic_class=tempc2; - else - tempi->ic_class=tempc3; - tempc=tempi->ic_class; - if (tempc->sub_type==IT_DOUBLE) { - if (tempc2->sub_type!=IT_DOUBLE) - tempi2->ic_flags|=ICF_R_TO_DOUBLE; - if (tempc3->sub_type!=IT_DOUBLE) - tempi3->ic_flags|=ICF_R_TO_DOUBLE; - } - if (!tempi_push->ic_class->ptr_cnt) { - if (tempi_push->ic_class->sub_type==IT_DOUBLE) - tempi_push->original_class=sys_internal_types[IT_DOUBLE]; - else - tempi_push->original_class=sys_internal_types[IT_I8]; - } - break; - case EC_MUL_EQUAL: - if (tempi2->ic_opcode==EC_IMM && - tempc->sub_type!=IT_DOUBLE && - tempc2->sub_type!=IT_DOUBLE) { - if (i=tempi2->ic_data) { - if (Bsf(i)==Bsr(i)) { - tempi2->ic_data=Bsf(i); - tempi->ic_opcode=EC_SHL_EQUAL; - } - } - } - if (tempc->sub_type==IT_DOUBLE) { - if (tempc2->sub_type!=IT_DOUBLE) - tempi2->ic_flags|=ICF_R_TO_DOUBLE; - } else { - if (tempc2->sub_type==IT_DOUBLE) - tempi2->ic_flags|=ICF_R_TO_INT; - } - break; - case EC_DIV_EQUAL: - if (tempi2->ic_opcode==EC_IMM && - tempc->sub_type!=IT_DOUBLE && - tempc2->sub_type!=IT_DOUBLE) { - if (i=tempi2->ic_data) { - if (Bsf(i)==Bsr(i)) { - tempi2->ic_data=Bsf(i); - tempi->ic_opcode=EC_SHR_EQUAL; - } - } else - PrsExcept(lx,"ST_DIVIDE_BY_ZERO"); - } - if (tempc->sub_type==IT_DOUBLE) { - if (tempc2->sub_type!=IT_DOUBLE) - tempi2->ic_flags|=ICF_R_TO_DOUBLE; - } else { - if (tempc2->sub_type==IT_DOUBLE) - tempi2->ic_flags|=ICF_R_TO_INT; - } - break; - case EC_MOD_EQUAL: - if (tempi2->ic_opcode==EC_IMM && - tempc->sub_type!=IT_DOUBLE && - tempc2->sub_type!=IT_DOUBLE) { - if (i=tempi2->ic_data) { - if (i>0 && Bsf(i)==Bsr(i)) { - tempi2->ic_data=i-1; - tempi->ic_opcode=EC_AND_EQUAL; - } - } else - PrsExcept(lx,"ST_DIVIDE_BY_ZERO"); - } - if (tempc->sub_type==IT_DOUBLE) { - if (tempc2->sub_type!=IT_DOUBLE) - tempi2->ic_flags|=ICF_R_TO_DOUBLE; - } else { - if (tempc2->sub_type==IT_DOUBLE) - tempi2->ic_flags|=ICF_R_TO_INT; - } - break; - case EC_ADD_EQUAL: - case EC_SUB_EQUAL: - case EC_ASSIGN: - if (tempc->sub_type==IT_DOUBLE) { - if (tempc2->sub_type!=IT_DOUBLE) - tempi2->ic_flags|=ICF_R_TO_DOUBLE; - } else { - if (tempc2->sub_type==IT_DOUBLE) - tempi2->ic_flags|=ICF_R_TO_INT; - } - break; - case EC_SHL_EQUAL: - case EC_SHR_EQUAL: - case EC_AND_EQUAL: - case EC_OR_EQUAL: - case EC_XOR_EQUAL: - if (tempc2->sub_type==IT_DOUBLE) - tempi2->ic_flags|=ICF_R_TO_INT; - break; - case EC_ENTER: - case EC_LEAVE: - tempi->ic_data=-fun_class->size; - break; - case EC_ADD_RSP: - if (temp_lag[1]->ic_opcode==EC_ADD_RSP) { - tempi->ic_data+=temp_lag[1]->ic_data; - tempi->ic_flags|=temp_lag[1]->ic_flags; - temp_lag[1]->ic_opcode=EC_NOP; - temp_lag[1]->ic_flags=0; - } - break; - - case EC_CALL: - case EC_CALL_INDIRECT: - case EC_CALL_INDIRECT2: - case EC_CALL_EXTERN: - case EC_CLI: - case EC_STI: - case EC_WBINVD: - case EC_INVD: - case EC_ENABLE_CACHE: - case EC_DISABLE_CACHE: - case EC_GET_FLAGS: - case EC_GET_BASE_PTR: - case EC_GET_STACK_PTR: - case EC_RETURN_START: - case EC_RETURN_END: - case EC_ABSOLUTE_ADDRESS: - case EC_GET_LABEL: - case EC_TYPE: - case EC_RDTSC: - case EC_SET_FLAGS: - case EC_SET_BASE_PTR: - case EC_SET_STACK_PTR: - case EC_SET_RAX: - case EC_BSF: - case EC_BSR: - case EC_PREEMPT: - case EC_ABSI8: - case EC_REMQUE: - case EC_INPD: - case EC_INPW: - case EC_INP: - case EC_STRLEN: - case EC_BT: - case EC_BTS: - case EC_BTR: - case EC_BTC: - case EC_LBTS: - case EC_LBTR: - case EC_LBTC: - case EC_INSQUE: - case EC_INSQUE_REV: - case EC_OUTPD: - case EC_OUTPW: - case EC_OUTP: - case EC_SWITCH: - case EC_MEMCPY: - case EC_MEMSET: - break; - - case EC_BR_ZERO: - if (combined) - tempi_push=OptBrZero(lx,tempi); - break; - case EC_BR_NOT_ZERO: - if (combined) - tempi_push=OptBrNotZero(lx,tempi); - break; - case EC_BR_NOT_EQUAL: - case EC_BR_EQUAL_EQUAL: - case EC_BR_GREATER_EQUAL: - case EC_BR_LESS_EQUAL: - case EC_BR_GREATER: - case EC_BR_LESS: - case EC_BR_OR_OR_NOT_ZERO: - case EC_BR_OR_OR_ZERO: - case EC_BR_AND_AND_NOT_ZERO: - case EC_BR_AND_AND_ZERO: - case EC_BR_AND_NOT_ZERO: - case EC_BR_AND_ZERO: - case EC_BR_BT: - case EC_BR_BTS: - case EC_BR_BTR: - case EC_BR_BTC: - case EC_BR_NOT_BT: - case EC_BR_NOT_BTS: - case EC_BR_NOT_BTR: - case EC_BR_NOT_BTC: - case EC_BR_LBTS: - case EC_BR_LBTR: - case EC_BR_LBTC: - case EC_BR_NOT_LBTS: - case EC_BR_NOT_LBTR: - case EC_BR_NOT_LBTC: - break; - - case EC_NOP: - if (combined && tempi->ic_flags&ICF_PUSH_RESULT) { - tempii=tempi; - do tempii-=sizeof(IntermediateCode); - while (tempii->ic_opcode==EC_NOP); - tempii->ic_flags|=ICF_PUSH_RESULT; - tempi->ic_flags&=~ICF_PUSH_RESULT; - } - break; - case EC_NOP1: - ps->ptr+=tempi->ic_data<<1; - break; - case EC_LABEL: - tempii=temp_lag[1]; - if (tempii->ic_opcode==EC_JMP) { - if (tempii->ic_data==tempi->ic_data) { - tempii->ic_opcode=EC_NOP; - tempi->ic_flags|=tempii->ic_flags; - } - } else if (tempii->ic_opcode==EC_LABEL) { - tempii=temp_lag[2]; - if (tempii->ic_opcode==EC_JMP) { - if (tempii->ic_data==tempi->ic_data) { - tempii->ic_opcode=EC_NOP; - tempi->ic_flags|=tempii->ic_flags; - } - } - } - break; - case EC_NULL: - case EC_ADDRESS: - case EC_QUESTION: - case EC_RET: - case EC_END_EXP: - case EC_CALL_START: - case EC_CALL_END: - case EC_CALL_END2: - case EC_PUSH_REGS: - case EC_POP_REGS: - case EC_IRQ: - case EC_JMP: - break; - default: - OptMissing(lx,1,tempi); - } - if (cmp_result_cnt[tempi_push->ic_opcode]) { - PrsPush(ps,tempi->original_class); - PrsPush(ps,tempi_push); - } - if (tempi->ic_class) { - if (code!=EC_RETURN_END && code>EC_END_EXP) - last_with_class=tempi; - } - if (combined) - tempi+=sizeof(IntermediateCode); - else - tempi=CbGetIc1(&lx->cb); - } - OptEnd(lx,1,ps); - - /* - This is for determining type conversions - for passing parameters to functions. - */ - return last_with_class; -} - diff --git a/LT/Compiler/OptPass2.CPZ b/LT/Compiler/OptPass2.CPZ deleted file mode 100644 index 990d07a..0000000 --- a/LT/Compiler/OptPass2.CPZ +++ /dev/null @@ -1,447 +0,0 @@ -I8 CmpType(ClassStruct *tempc) -{ - if (tempc) { - while (tempc->return_class) - tempc=tempc->return_class; - return tempc->sub_type; - } - return 0; -} - -I8 CmpPType(ClassStruct *tempc) -{ - if (tempc) { - if (tempc->ptr_cnt) - tempc-=sizeof(ClassStruct); - while (tempc->return_class) - tempc=tempc->return_class; - return tempc->sub_type; - } - return 0; -} - -void CmpOptPass2(LexStruct *lx,ClassStruct *fun_class,I8 *register_offsets) -{ - ClassStruct *tempc,*tempc1,*tempc2,*tempc3; - CbMiscStruct *lb; - IntermediateCode *tempi,*tempi1,*tempi2,*tempi3,*tempii, - *tempil1,*tempil2, - *temp_lag[4],*last_with_class=NULL; - I8 code,i,j,k,l,o[NUM_REGS],c[NUM_REGS],lea_s[NUM_REGS]; - MemberListStruct *tempm,*m[NUM_REGS]; - ParseStack *ps=OptStart(lx,temp_lag); - - for (i=0;imember_list; - while (tempm) { - if (!(tempm->flags & MLF_NO_REG_VARIABLE)) { - k=tempm->use_cnt; - if (tempm->flags & MLF_USE_REG_VARIABLE) - k+=MAX_I8/2; //big but not too big - if (k>c[NUM_REGS-1]) { - for (i=0;ic[i]) { - for (j=NUM_REGS-2;j>=i;j--) { - c[j+1]=c[j]; - o[j+1]=o[j]; - m[j+1]=m[j]; - } - c[i]=k; - o[i]=tempm->offset; - m[i]=tempm; - break; - } - } - } - tempm=tempm->next; - } - } - tempi=lx->cb.cb_in_ptr; - while (code=tempi->ic_opcode) { - OptNext(tempi,temp_lag); - if (code!=EC_NOP) { - tempil1=temp_lag[1]; - tempil2=temp_lag[2]; - tempc=tempi->ic_class; - switch (cmp_param_cnt[code]) { - case 9: - ps->ptr-=tempi->ic_data>>3; - break; - case 3: - tempi3=PrsPop(ps); - if (tempi3->ic_flags&ICF_R_TO_DOUBLE) - tempc3=sys_internal_types[IT_DOUBLE]; - else if (tempi3->ic_flags & ICF_R_TO_INT) - tempc3=sys_internal_types[IT_I8]; - else - tempc3=tempi->p3c; - tempi->p3.type=TY_STK+CmpType(tempc3); - tempi->p3.ptype=CmpPType(tempc3); - tempi->ic_flags|=ICF_P3_WAS_STK; - case 2: - tempi2=PrsPop(ps); - if (tempi2->ic_flags&ICF_R_TO_DOUBLE) - tempc2=sys_internal_types[IT_DOUBLE]; - else if (tempi2->ic_flags & ICF_R_TO_INT) - tempc2=sys_internal_types[IT_I8]; - else - tempc2=tempi->p2c; - tempi->p2.type=TY_STK+CmpType(tempc2); - tempi->p2.ptype=CmpPType(tempc2); - tempi->ic_flags|=ICF_P2_WAS_STK; - case 1: - tempi1=PrsPop(ps); - if (tempi1->ic_flags&ICF_R_TO_DOUBLE) - tempc1=sys_internal_types[IT_DOUBLE]; - else if (tempi1->ic_flags & ICF_R_TO_INT) - tempc1=sys_internal_types[IT_I8]; - else - tempc1=tempi->p1c; - tempi->p1.type=TY_STK+CmpType(tempc1); - tempi->p1.ptype=CmpPType(tempc1); - tempi->ic_flags|=ICF_P1_WAS_STK; - break; - } - if (cmp_result_cnt[code]) { - tempi->r.type=TY_STK+CmpType(tempc); - tempi->r.ptype=CmpPType(tempc); - tempi->ic_flags|=ICF_R_WAS_STK; - PrsPush(ps,tempi); - } - switch (code) { - case EC_IMM: - case EC_DOUBLE: - case EC_STR_CONST: - case EC_FS: - case EC_GS: - case EC_PUSH_CMP: - break; - case EC_RBP: - tempi->ic_opcode=EC_REG; - tempi->p1.reg=CREG_RBP; - break; - case EC_REG: - case EC_COM: - case EC_NOT: - case EC_UNARY_MINUS: - break; - case EC_DEREF: - tempi->p1.ptype=tempi->r.type&IT_MASK; - if (tempi1->ic_opcode==EC_LEA) { - tempi->ic_flags|=tempi1->ic_flags; - tempi1->ic_opcode=EC_NOP; - tempi->p1.reg=tempi1->p1.reg; - tempi->p1.disp=tempi1->p1.disp; - tempi->p1.type=TY_DISP+tempi->r.type&IT_MASK; - tempi->p1.ptype=tempi->r.ptype; - tempi->ic_opcode=EC_MOV; - if (tempi->p1.reg==CREG_RBP) - for (i=0;ip1.disp) - lea_s[i]--; - } else if (tempil1->ic_opcode==EC_ADD_CONST) { - if (tempil2->ic_opcode==EC_REG) { - tempi->ic_flags|=tempil2->ic_flags|tempil1->ic_flags; - tempil2->ic_opcode=EC_NOP; - tempil1->ic_opcode=EC_NOP; - tempi->p1.reg=tempil2->p1.reg; - tempi->p1.disp=tempi->ic_data; - tempi->p1.type=TY_DISP+tempi->r.type&IT_MASK; - tempi->p1.ptype=tempi->r.ptype; - tempi->ic_opcode=EC_MOV; - } - } - break; - case EC__PP: - case EC__MM: - case EC_PP_: - case EC_MM_: - if (tempi1->ic_opcode==EC_LEA && - tempi1->p1.type&TY_MASK==TY_DISP && - tempi1->p1.reg==CREG_RBP) - for (i=0;ip1.disp) - lea_s[i]--; - tempi->p1.ptype=tempi->r.type&IT_MASK; - tempi->r.ptype=CmpPType(tempi->p1c); - break; - case EC_POWER: - case EC_SHL: - case EC_SHR: - case EC_MUL: - case EC_DIV: - case EC_MOD: - case EC_AND: - case EC_OR: - case EC_XOR: - break; - case EC_ADD: - if (tempi->ic_class->sub_type==IT_DOUBLE) - break; - if (FixupBinaryOp2(&tempi1,&tempi2)) { - tempi->ic_flags|=tempi1->ic_flags; - tempi1->ic_opcode=EC_NOP; - if (tempi->p1t!=tempi2) - tempi->p1c=tempi->p2c; - tempi->ic_data=tempi1->ic_data; - tempi->ic_opcode=EC_ADD_CONST; - tempi->p1.ptype=tempi->r.type&IT_MASK; - tempi->p2.type=TY_NULL; - if (tempil2->ic_opcode==EC_REG && - tempil2->p1.reg==CREG_RBP) { - tempi->ic_flags|=tempil2->ic_flags; - tempil2->ic_opcode=EC_NOP; - tempi->ic_opcode=EC_LEA; - tempi->p1.reg=CREG_RBP; - tempi->p1.type=TY_DISP+tempi->p1.type&IT_MASK; - tempi->p1.disp=tempi->ic_data; - for (i=0;iic_data) - lea_s[i]++; - } - } - break; - case EC_SUB: - if (tempi->ic_class->sub_type==IT_DOUBLE) - break; - if (tempi2->ic_opcode==EC_IMM) { - tempi->ic_flags|=tempi2->ic_flags; - tempi2->ic_opcode=EC_NOP; - tempi->ic_data=tempi2->ic_data; - tempi->ic_opcode=EC_SUB_CONST; - tempi->p2.type=TY_NULL; - } - break; - case EC_EQUAL_EQUAL: - case EC_NOT_EQUAL: - case EC_LESS: - case EC_GREATER: - case EC_LESS_EQUAL: - case EC_GREATER_EQUAL: - case EC_AND_AND: - case EC_OR_OR: - case EC_XOR_XOR: - case EC_COLON: - break; - - case EC_ASSIGN: - case EC_SHL_EQUAL: - case EC_SHR_EQUAL: - case EC_MUL_EQUAL: - case EC_DIV_EQUAL: - case EC_MOD_EQUAL: - case EC_AND_EQUAL: - case EC_OR_EQUAL: - case EC_XOR_EQUAL: - case EC_ADD_EQUAL: - case EC_SUB_EQUAL: - if (tempi1->ic_opcode==EC_LEA && - tempi1->p1.type&TY_MASK==TY_DISP && - tempi1->p1.reg==CREG_RBP) - for (i=0;ip1.disp) - lea_s[i]--; - tempi->p1.ptype=tempi->r.type&IT_MASK; - tempi->r.ptype=CmpPType(tempi->p1c); - break; - case EC_SHL_CONST: - case EC_SHR_CONST: - case EC_ENTER: - case EC_ADD_RSP: - case EC_CALL: - case EC_CALL_INDIRECT: - case EC_CALL_INDIRECT2: - case EC_CALL_EXTERN: - case EC_CLI: - case EC_STI: - case EC_WBINVD: - case EC_INVD: - case EC_ENABLE_CACHE: - case EC_DISABLE_CACHE: - case EC_GET_FLAGS: - case EC_RDTSC: - case EC_SET_FLAGS: - case EC_GET_BASE_PTR: - case EC_SET_BASE_PTR: - case EC_GET_STACK_PTR: - case EC_SET_STACK_PTR: - case EC_SET_RAX: - case EC_RETURN_START: - case EC_RETURN_END: - case EC_ABSOLUTE_ADDRESS: - case EC_TYPE: - case EC_BT: - case EC_BTS: - case EC_BTR: - case EC_BTC: - case EC_LBTS: - case EC_LBTR: - case EC_LBTC: - case EC_BSF: - case EC_BSR: - case EC_PREEMPT: - case EC_ABSI8: - case EC_INSQUE: - case EC_INSQUE_REV: - case EC_REMQUE: - case EC_MEMCPY: - case EC_MEMSET: - case EC_INPD: - case EC_INPW: - case EC_INP: - case EC_STRLEN: - case EC_OUTPD: - case EC_OUTPW: - case EC_OUTP: - case EC_SWITCH: - break; - case EC_BR_ZERO: - case EC_BR_NOT_ZERO: - case EC_BR_NOT_EQUAL: - case EC_BR_EQUAL_EQUAL: - case EC_BR_GREATER_EQUAL: - case EC_BR_LESS_EQUAL: - case EC_BR_GREATER: - case EC_BR_LESS: - case EC_BR_AND_NOT_ZERO: - case EC_BR_AND_ZERO: - if (tempi->ic_flags&ICF_POP_CMP && - !(tempi->ic_flags&ICF_USE_DOUBLE) && - tempi2->ic_opcode==EC_IMM) { - tempi->ic_flags=(tempi->ic_flags&~ICF_POP_CMP)|ICF_RCX_CMP2; - temp_lag[3]->ic_flags=(temp_lag[3]->ic_flags&~ICF_PUSH_CMP)|ICF_RCX_CMP; - } //fall through - case EC_GET_LABEL: - case EC_BR_BT: - case EC_BR_BTS: - case EC_BR_BTR: - case EC_BR_BTC: - case EC_BR_NOT_BT: - case EC_BR_NOT_BTS: - case EC_BR_NOT_BTR: - case EC_BR_NOT_BTC: - case EC_BR_LBTS: - case EC_BR_LBTR: - case EC_BR_LBTC: - case EC_BR_NOT_LBTS: - case EC_BR_NOT_LBTR: - case EC_BR_NOT_LBTC: - lb=tempi->ic_data; - if (!(tempi->ic_flags&ICF_PUSH_CMP)) - while (lb->forward) - lb=lb->forward; - lb->flags|=CBMF_USED; - break; - case EC_LEAVE: - case EC_RET: - if (fun_class && (tempii=last_with_class)) { - if (fun_class->return_class->sub_type==IT_DOUBLE && - tempii->ic_class->sub_type!=IT_DOUBLE) - tempii->ic_flags|=ICF_R_TO_DOUBLE; - if (fun_class->return_class->sub_type!=IT_DOUBLE && - tempii->ic_class->sub_type==IT_DOUBLE) - tempii->ic_flags|=ICF_R_TO_INT; - } - break; - - case EC_JMP: - if (tempil1->ic_opcode==EC_LABEL) { - lb=tempil1->ic_data; - lb->forward=tempi->ic_data; - if (tempil2->ic_opcode==EC_LABEL) { - lb=tempil2->ic_data; - lb->forward=tempi->ic_data; - if (temp_lag[3]->ic_opcode==EC_LABEL) { - lb=temp_lag[3]->ic_data; - lb->forward=tempi->ic_data; - } - } - } - lb=tempi->ic_data; - while (lb->forward) - lb=lb->forward; - lb->flags|=CBMF_USED; - break; - case EC_NOP: - case EC_NULL: - case EC_LABEL: - case EC_ADDRESS: - case EC_QUESTION: - case EC_IRQ: - case EC_END_EXP: - case EC_CALL_END: - case EC_CALL_END2: - case EC_CALL_START: - case EC_PUSH_REGS: - case EC_POP_REGS: - break; - case EC_NOP1: - ps->ptr+=tempi->ic_data; - break; - - default: - OptMissing(lx,2,tempi); - } - if (tempi->ic_class) { - if (code!=EC_RETURN_END) - last_with_class=tempi; - } - } - tempi+=sizeof(IntermediateCode); - } - - for (i=0;iused_reg_mask&=~(CREG_VARS_MASK|CREG_NON_PTR_MASK); - if (fun_class && !Bt(&lx->flags,LFf_NO_REG_VAR) && - !(lx->flags & LF_NO_REG_OPT)) { - j=0; - for (i=0;i0) { - l=0; - for (i=0;imember_class; - while (tempc->return_class) - tempc=tempc->return_class; - if (!tempc->ptr_cnt && !tempm->cnt) { - tempm->register=to_non_ptr_vars_map[l++]; - register_offsets[tempm->register]=o[i]; - if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) { - PrintF("Function:%s\r\n",fun_class->str); - PrintF("Reg %Z Var \"%s\" %08X[RBP]\r\n",tempm->register,"ST_U8_REGS", - tempm->str,register_offsets[tempm->register]); - } - o[i]=MAX_I8; - Bts(&fun_class->used_reg_mask,tempm->register); - } - } - l=0; - for (i=0;iregister=to_reg_vars_map[l++]; - register_offsets[tempm->register]=o[i]; - if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) - PrintF("Reg %Z Var \"%s\" %08X[RBP]\r\n",tempm->register,"ST_U8_REGS", - tempm->str,tempm->register); - Bts(&fun_class->used_reg_mask,tempm->register); - } - } - } - } - OptEnd(lx,2,ps); -} - diff --git a/LT/Compiler/OptPass3.CPZ b/LT/Compiler/OptPass3.CPZ deleted file mode 100644 index 00c705f..0000000 --- a/LT/Compiler/OptPass3.CPZ +++ /dev/null @@ -1,574 +0,0 @@ -BoolU8 CmpOptIc3(LexStruct *lx,IntermediateCode *tempi,BoolU4 inside_return) -{ - I8 i,t,pt,t1,pt1; - IntermediateCode *tempil1,*tempil2; - - if (tempi->ic_opcoder.type&TY_MASK==TY_STK && - !(tempil2->ic_flags&ICF_PUSH_RESULT)) { - if (tempil1->ic_opcode==EC_ADD_CONST && - tempil1->p1.type&TY_MASK==TY_STK) { - if ((tempil2->ic_opcode==EC_REG || - tempil2->ic_opcode==EC_MOV) && - tempil2->p1.type&TY_MASK==TY_REG) { - i=tempil1->ic_data; - if (i>=MIN_I4 && i<=MAX_I4 && - !Bt(&non_ptr_vars_mask,tempil2->p1.reg)) { - tempil1->ic_flags|=tempil2->ic_flags&ICF_NO_CVT_MASK; - tempil2->ic_opcode=EC_NOP; - tempil2->p1.type=TY_NULL+tempil2->p1.type&IT_MASK; - tempil2->r.type=TY_NULL+tempil2->r.type&IT_MASK; - tempil1->ic_opcode=EC_LEA; - tempil1->p1.type=TY_DISP+tempil1->p1.type&IT_MASK; - tempil1->p1.reg=tempil2->p1.reg; - tempil1->p1.disp=i; - return TRUE; - } - } - } - if (tempil2->ic_opcode==EC_MOV || - tempil2->ic_opcode==EC_REG) { - if (!inside_return) { - if (tempil1->p3.type&TY_MASK==TY_STK) { - if (tempil2->ic_flags & ICF_R_TO_INT) { - if (tempil2->p1.type&TY_MASK==TY_IMM) - tempil2->p1.disp=tempil2->p1.disp><(double); - else - tempil1->ic_flags|=ICF_P3_TO_INT; - } else if (tempil2->ic_flags&ICF_R_TO_DOUBLE) { - if (tempil2->p1.type&TY_MASK==TY_IMM) - tempil2->p1.disp><(double)=tempil2->p1.disp; - else - tempil1->ic_flags|=ICF_P3_TO_DOUBLE; - } - - t=tempil1->p3.type&IT_MASK; - t1=tempil2->p1.type&IT_MASK; - if (t1 && t1r.type&IT_MASK; - if (t1 && t1p3.type=tempil2->p1.type&TY_MASK+t; - - pt=tempil1->p3.ptype; - pt1=tempil2->p1.ptype; - if (pt1 && pt1r.ptype; - if (pt1 && pt1p3.ptype=pt; - - tempil1->p3.reg=tempil2->p1.reg; - tempil1->p3.disp=tempil2->p1.disp; - tempil1->ic_flags|=tempil2->ic_flags&ICF_NO_CVT_MASK; - tempil2->ic_opcode=EC_NOP1; - tempil2->ic_data=1; - tempil2->p1.type=TY_NULL+tempil2->p1.type&IT_MASK; - tempil2->r.type=TY_NULL+tempil2->r.type&IT_MASK; - return TRUE; - } - if (tempil1->p2.type&TY_MASK==TY_STK) { - if (tempil2->ic_flags & ICF_R_TO_INT) { - if (tempil2->p1.type&TY_MASK==TY_IMM) - tempil2->p1.disp=tempil2->p1.disp><(double); - else - tempil1->ic_flags|=ICF_P2_TO_INT; - } else if (tempil2->ic_flags&ICF_R_TO_DOUBLE) { - if (tempil2->p1.type&TY_MASK==TY_IMM) - tempil2->p1.disp><(double)=tempil2->p1.disp; - else - tempil1->ic_flags|=ICF_P2_TO_DOUBLE; - } - - t=tempil1->p2.type&IT_MASK; - t1=tempil2->p1.type&IT_MASK; - if (t1 && t1r.type&IT_MASK; - if (t1 && t1p2.type=tempil2->p1.type&TY_MASK+t; - - pt=tempil1->p2.ptype; - pt1=tempil2->p1.ptype; - if (pt1 && pt1r.ptype; - if (pt1 && pt1p2.ptype=pt; - - tempil1->p2.reg=tempil2->p1.reg; - tempil1->p2.disp=tempil2->p1.disp; - tempil1->ic_flags|=tempil2->ic_flags&ICF_NO_CVT_MASK; - tempil2->ic_opcode=EC_NOP1; - tempil2->ic_data=1; - tempil2->p1.type=TY_NULL+tempil2->p1.type&IT_MASK; - tempil2->r.type=TY_NULL+tempil2->r.type&IT_MASK; - return TRUE; - } - if (tempil1->p1.type&TY_MASK==TY_STK) { - if (tempil2->ic_flags & ICF_R_TO_INT) { - if (tempil2->p1.type&TY_MASK==TY_IMM) - tempil2->p1.disp=tempil2->p1.disp><(double); - else - tempil1->ic_flags|=ICF_P1_TO_INT; - } else if (tempil2->ic_flags&ICF_R_TO_DOUBLE) { - if (tempil2->p1.type&TY_MASK==TY_IMM) - tempil2->p1.disp><(double)=tempil2->p1.disp; //dbgo signed/unsigned - else if (!(tempil1->ic_flags&ICF_USE_INT)) - tempil1->ic_flags|=ICF_P1_TO_DOUBLE; - } - - t=tempil1->p1.type&IT_MASK; - t1=tempil2->p1.type&IT_MASK; - if (t1 && t1r.type&IT_MASK; - if (t1 && t1p1.type=tempil2->p1.type&TY_MASK+t; - - pt=tempil1->p1.ptype; - pt1=tempil2->p1.ptype; - if (pt1 && pt1r.ptype; - if (pt1 && pt1p1.ptype=pt; - - tempil1->p1.reg=tempil2->p1.reg; - tempil1->p1.disp=tempil2->p1.disp; - tempil1->ic_flags|=tempil2->ic_flags&ICF_NO_CVT_MASK; - tempil2->ic_opcode=EC_NOP1; - tempil2->ic_data=1; - tempil2->p1.type=TY_NULL+tempil2->p1.type&IT_MASK; - tempil2->r.type=TY_NULL+tempil2->r.type&IT_MASK; - return TRUE; - } - } - } - if (tempil1->ic_opcode==EC_DEREF) { - if (tempil2->ic_opcode==EC_ADD_CONST && - tempil2->p1.type&TY_MASK==TY_REG && - tempil1->p1.type&TY_MASK==TY_STK) { - i=tempil2->ic_data; - if (i>=MIN_I4 && i<=MAX_I4 && - !Bt(&non_ptr_vars_mask,tempil2->p1.reg)) { - tempil1->ic_flags|=tempil2->ic_flags; - tempil2->ic_opcode=EC_NOP1; - tempil2->ic_data=1; - tempil2->ic_data=-1; - tempil2->p1.type=TY_NULL+tempil2->p1.type&IT_MASK; - tempil2->r.type=TY_NULL+tempil2->r.type&IT_MASK; - tempil1->ic_opcode=EC_MOV; - tempil1->p1.type=TY_DISP+tempil1->p1.ptype; - tempil1->p1.reg=tempil2->p1.reg; - tempil1->p1.disp=i; - return TRUE; - } - } - if (tempil2->ic_opcode==EC_LEA && - tempil1->p1.type&TY_MASK==TY_STK) { - tempil1->ic_flags|=tempil2->ic_flags; - tempil2->ic_opcode=EC_NOP; - tempil1->ic_opcode=EC_MOV; - tempil1->p1.type=tempil2->p1.type&TY_MASK+tempil1->p1.ptype; - tempil1->p1.reg=tempil2->p1.reg; - tempil1->p1.disp=tempil2->p1.disp; - return TRUE; - } - } - } - if (tempil1->ic_opcode==EC_DEREF) { - if (tempil1->p1.type&TY_MASK==TY_REG) { - tempil1->p1.type=TY_DISP+tempil1->p1.ptype; - tempil1->p1.disp=0; - tempil1->ic_opcode=EC_MOV; - return TRUE; - } - } - return FALSE; -} - -void CmpOptPass3(LexStruct *lx,I8 *register_offsets,U8 *type_) -{ - ClassStruct *tempc,*tempc1,*tempc2,*tempc3; - IntermediateCode *tempi,*tempi1,*tempi2,*tempi3,*tempil1,*tempil2,*tempil3, - *temp_lag[4]; - I8 code,i,type=IT_I8; - ParseStack *ps=OptStart(lx,temp_lag); - BoolU4 inside_return=FALSE,dead_code=FALSE; - CbMiscStruct *lb; - - tempi=lx->cb.cb_in_ptr; - while (code=tempi->ic_opcode) { - OptNext2(tempi,temp_lag); - if (dead_code&&code!=EC_LABEL) - tempi->ic_opcode=EC_NOP; - else { - tempc=tempi->ic_class; - - tempi3=&opt_nop; - tempi2=&opt_nop; - tempi1=&opt_nop; - - tempil1=temp_lag[1]; - tempil2=temp_lag[2]; - tempil3=temp_lag[3]; - switch (cmp_param_cnt[code]) { - case 9: - ps->ptr-=tempi->ic_data>>3; - break; - case 3: - tempi3=PrsPop(ps); - tempc3=tempi3->ic_class; - case 2: - tempi2=PrsPop(ps); - tempc2=tempi2->ic_class; - case 1: - tempi1=PrsPop(ps); - tempc1=tempi1->ic_class; - break; - } - switch (code) { - case EC_IMM: - case EC_TYPE: - tempi->p1.type=TY_IMM+IT_I8; - tempi->p1.disp=tempi->ic_data; - tempi->ic_opcode=EC_MOV; - break; - case EC_DOUBLE: - tempi->p1.type=TY_IMM+IT_I8; - tempi->p1.disp=tempi->ic_data; - tempi->p1.ptype=IT_DOUBLE; - tempi->ic_opcode=EC_MOV; - break; - case EC_STR_CONST: - case EC_FS: - case EC_GS: - case EC_RBP: - case EC_REG: - case EC_COM: - case EC_NOT: - case EC_UNARY_MINUS: - case EC_PUSH_CMP: - break; - case EC_MOV: - if (tempi->p1.type&TY_MASK==TY_DISP && - tempi->p1.reg==CREG_RBP) { - i=CmpOffsetToReg(tempi->p1.disp,register_offsets); - if (i>=0) { - tempi->p1.type=TY_REG+tempi->p1.type&IT_MASK; - tempi->p1.reg=i; - } - } - break; - case EC_DEREF: - if (tempi1->ic_opcode==EC_LEA) { - if (tempi1->p1.type&TY_MASK==TY_DISP && - tempi1->p1.reg==CREG_RBP) { - i=CmpOffsetToReg(tempi1->p1.disp,register_offsets); - if (i>=0) { - tempi->ic_flags|=tempi1->ic_flags; - tempi1->ic_opcode=EC_NOP; - tempi->ic_opcode=EC_REG; - tempi->p1.type=TY_REG+tempi->p1.type&IT_MASK; - tempi->p1.reg=i; - } - } - } else if ((tempi1->ic_opcode==EC_ABSOLUTE_ADDRESS || - (tempi1->ic_opcode==EC_MOV && - tempi1->p1.type==TY_IMM+IT_I8 && - tempi1->p1.disp>=0 && tempi1->p2.disp<0x80000000)) && - !(lx->flags & LF_ASM_EXPRESSIONS)) { - if (tempi1->ic_opcode==EC_ABSOLUTE_ADDRESS) - tempi->p1.disp=tempi1->ic_data; - else - tempi->p1.disp=tempi1->p1.disp; - tempi->ic_flags|=tempi1->ic_flags; - tempi1->ic_opcode=EC_NOP; - tempi1->p1.type=TY_NULL+tempi1->p1.type&IT_MASK; - tempi1->r.type=TY_NULL+tempi1->r.type&IT_MASK; - tempi->ic_opcode=EC_MOV; - tempi->p1.type=TY_RIP_DISP32+tempi->p1.ptype; - tempi->p1.reg=CREG_RIP; - } - break; - case EC__PP: - case EC__MM: - case EC_PP_: - case EC_MM_: - if (tempi1->ic_opcode==EC_LEA) { - if (tempi1->p1.type&TY_MASK==TY_DISP && - tempi1->p1.reg==CREG_RBP) { - i=CmpOffsetToReg(tempi1->p1.disp,register_offsets); - if (i>=0) { - tempi->ic_flags|=tempi1->ic_flags; - tempi1->ic_opcode=EC_NOP1; - tempi1->ic_data=1; - tempi1->r.type=TY_NULL; - tempi->p1.type=TY_REG+tempi->p1.type&IT_MASK; - tempi->p1.reg=i; - tempi->ic_flags|=ICF_NOT_ADDRESS; - } - } - } else if ((tempi1->ic_opcode==EC_ABSOLUTE_ADDRESS || - (tempi1->ic_opcode==EC_MOV && - tempi1->p1.type==TY_IMM+IT_I8 && - tempi1->p1.disp>=0 && tempi1->p2.disp<0x80000000)) && - !(lx->flags & LF_ASM_EXPRESSIONS)) { - tempi->ic_flags|=tempi1->ic_flags; - if (tempi1->ic_opcode==EC_ABSOLUTE_ADDRESS) - tempi->p1.disp=tempi1->ic_data; - else - tempi->p1.disp=tempi1->p1.disp; - tempi1->ic_opcode=EC_NOP; - tempi1->p1.type=TY_NULL+tempi1->p1.type&IT_MASK; - tempi1->r.type=TY_NULL+tempi1->r.type&IT_MASK; - tempi->p1.type=TY_RIP_DISP32+tempi->p1.ptype; - tempi->p1.reg=CREG_RIP; - tempi->ic_flags|=ICF_NOT_ADDRESS; - } - break; - case EC_LEA: - case EC_SHL_CONST: - case EC_SHR_CONST: - case EC_POWER: - case EC_SHL: - case EC_SHR: - case EC_MUL: - case EC_DIV: - case EC_MOD: - case EC_AND: - case EC_OR: - case EC_XOR: - case EC_ADD: - case EC_SUB: - case EC_EQUAL_EQUAL: - case EC_NOT_EQUAL: - case EC_LESS: - case EC_GREATER: - case EC_LESS_EQUAL: - case EC_GREATER_EQUAL: - case EC_AND_AND: - case EC_OR_OR: - case EC_XOR_XOR: - case EC_COLON: - break; - case EC_ASSIGN: - case EC_SHL_EQUAL: - case EC_SHR_EQUAL: - case EC_MUL_EQUAL: - case EC_DIV_EQUAL: - case EC_MOD_EQUAL: - case EC_AND_EQUAL: - case EC_OR_EQUAL: - case EC_XOR_EQUAL: - case EC_ADD_EQUAL: - case EC_SUB_EQUAL: - if (tempi1->ic_opcode==EC_LEA) { - if (tempi1->p1.type&TY_MASK==TY_DISP) { - if (tempi1->p1.reg==CREG_RBP) { - i=CmpOffsetToReg(tempi1->p1.disp,register_offsets); - if (i>=0) { - tempi->ic_flags|=tempi1->ic_flags; - tempi1->ic_opcode=EC_NOP1; - tempi1->ic_data=1; - tempi1->p1.type=TY_NULL; - tempi1->r.type=TY_NULL; - tempi->p1.reg=i; - tempi->p1.type=TY_REG+tempi->p1.type&IT_MASK; - } else { - tempi->ic_flags|=tempi1->ic_flags; - tempi1->ic_opcode=EC_NOP1; - tempi1->ic_data=1; - tempi1->r.type=TY_NULL; - tempi1->p1.type=TY_NULL; - tempi->p1.disp=tempi1->p1.disp; - tempi->p1.reg=CREG_RBP; - tempi->p1.type=TY_DISP+tempi->p1.type&IT_MASK; - } - } else { - tempi->ic_flags|=tempi1->ic_flags; - tempi1->ic_opcode=EC_NOP1; - tempi1->ic_data=1; - tempi1->r.type=TY_NULL; - tempi1->p1.type=TY_NULL; - tempi->p1.disp=tempi1->p1.disp; - tempi->p1.reg=tempi1->p1.reg; - tempi->p1.type=TY_DISP+tempi->p1.type&IT_MASK; - } - tempi->ic_flags|=ICF_NOT_ADDRESS; - } - } else if ((tempi1->ic_opcode==EC_ABSOLUTE_ADDRESS || - (tempi1->ic_opcode==EC_MOV && - tempi1->p1.type==TY_IMM+IT_I8 && - tempi1->p1.disp>=0 && tempi1->p2.disp<0x80000000)) && - !(lx->flags & LF_ASM_EXPRESSIONS)) { - tempi->ic_flags|=tempi1->ic_flags; - tempi->p1.disp=tempi1->ic_data; - tempi1->ic_opcode=EC_NOP1; - tempi1->ic_data=1; - tempi1->p1.type=TY_NULL+tempi1->p1.type&IT_MASK; - tempi1->r.type=TY_NULL+tempi1->r.type&IT_MASK; - tempi1->r.type=TY_NULL; - tempi->p1.type=TY_RIP_DISP32+tempi->p1.type&IT_MASK; - tempi->p1.reg=CREG_RIP; - tempi->ic_flags|=ICF_NOT_ADDRESS; - } - break; - case EC_ADD_CONST: - case EC_SUB_CONST: - case EC_ENTER: - case EC_ADD_RSP: - case EC_CALL: - case EC_CALL_INDIRECT: - case EC_CALL_INDIRECT2: - case EC_CALL_EXTERN: - case EC_CLI: - case EC_STI: - case EC_WBINVD: - case EC_INVD: - case EC_ENABLE_CACHE: - case EC_DISABLE_CACHE: - case EC_GET_FLAGS: - case EC_RDTSC: - case EC_SET_FLAGS: - case EC_GET_BASE_PTR: - case EC_SET_BASE_PTR: - case EC_GET_STACK_PTR: - case EC_SET_STACK_PTR: - case EC_SET_RAX: - break; - case EC_RETURN_START: - inside_return=TRUE; - break; - case EC_RETURN_END: - inside_return=FALSE; - break; - case EC_GET_LABEL: - case EC_ABSOLUTE_ADDRESS: - case EC_BT: - case EC_BTS: - case EC_BTR: - case EC_BTC: - case EC_LBTS: - case EC_LBTR: - case EC_LBTC: - case EC_BSF: - case EC_BSR: - case EC_PREEMPT: - case EC_ABSI8: - case EC_INSQUE: - case EC_INSQUE_REV: - case EC_REMQUE: - case EC_MEMCPY: - case EC_MEMSET: - case EC_INPD: - case EC_INPW: - case EC_INP: - case EC_STRLEN: - case EC_OUTPD: - case EC_OUTPW: - case EC_OUTP: - case EC_SWITCH: - case EC_RET: - case EC_NULL: - case EC_ADDRESS: - case EC_QUESTION: - case EC_IRQ: - case EC_NOP: - case EC_CALL_START: - case EC_LEAVE: - case EC_PUSH_REGS: - case EC_POP_REGS: - case EC_BR_BT: - case EC_BR_BTS: - case EC_BR_BTR: - case EC_BR_BTC: - case EC_BR_NOT_BT: - case EC_BR_NOT_BTS: - case EC_BR_NOT_BTR: - case EC_BR_NOT_BTC: - case EC_BR_LBTS: - case EC_BR_LBTR: - case EC_BR_LBTC: - case EC_BR_NOT_LBTS: - case EC_BR_NOT_LBTR: - case EC_BR_NOT_LBTC: - break; - case EC_BR_ZERO: - case EC_BR_NOT_ZERO: - case EC_BR_NOT_EQUAL: - case EC_BR_EQUAL_EQUAL: - case EC_BR_GREATER_EQUAL: - case EC_BR_LESS_EQUAL: - case EC_BR_GREATER: - case EC_BR_LESS: - case EC_BR_AND_NOT_ZERO: - case EC_BR_AND_ZERO: - lb=tempi->ic_data; - if (tempi->ic_flags&ICF_PUSH_CMP) { - lb->flags|=CBMF_POP_CMP; - lb->forward=NULL; - } - break; - case EC_LABEL: - lb=tempi->ic_data; - if (lb->flags&CBMF_USED) - dead_code=FALSE; - break; - case EC_JMP: - dead_code=TRUE; - break; - case EC_NOP1: - ps->ptr+=tempi->ic_data; - break; - case EC_CALL_END2: - break; - case EC_CALL_END: - case EC_END_EXP: - if (tempi->p1.type&TY_MASK==TY_STK) { - if (tempil1->r.type&TY_MASK==TY_STK && - !(tempil1->ic_flags&ICF_PUSH_RESULT)) { - tempi->p1.type=TY_REG+tempi->p1.type&IT_MASK; - tempi->p1.reg=CREG_RAX; - tempil1->r.type=TY_REG+tempil1->r.type&IT_MASK; - tempil1->r.reg=CREG_RAX; - } - } - break; - default: - OptMissing(lx,3,tempi); - } - - while (CmpOptIc3(lx,tempi,inside_return)); - if (inside_return) { - if (tempc=tempi->ic_class) { - if (tempi->ic_flags & ICF_R_TO_DOUBLE) - type=IT_DOUBLE; - else if (tempi->ic_flags & ICF_R_TO_INT) - type=IT_I8; - else - type=tempc->sub_type; - } - } - code=tempi->ic_opcode; - if (cmp_result_cnt[code]) - PrsPush(ps,tempi); - } - tempi+=sizeof(IntermediateCode); - } - if (type_) - *type_=type; - - OptEnd(lx,3,ps); -} diff --git a/LT/Compiler/OptPass4.CPZ b/LT/Compiler/OptPass4.CPZ deleted file mode 100644 index e1a103b..0000000 --- a/LT/Compiler/OptPass4.CPZ +++ /dev/null @@ -1,182 +0,0 @@ -void CmpOptPass4(LexStruct *lx) -{ - IntermediateCode *tempi,*tempi1, - *temp_lag[4]; - I8 code,i,t,pt,t1,pt1; - ParseStack *ps=OptStart(lx,temp_lag); - BoolU4 inside_return=FALSE; - - tempi=lx->cb.cb_in_ptr; - while (code=tempi->ic_opcode) { - OptNext2(tempi,temp_lag); - if (code>EC_END_EXP && code!=EC_NOP1) { - - if (tempi->ic_flags&ICF_TRACE) { - if (Bt(&lx->pass_trace_mask,4)) { - PrintF("%2d:",ps->ptr); - CbPutIc(tempi); - } - } - - if (cmp_param_cnt[code]==9) - ps->ptr-=tempi->ic_data>>3; - if (code==EC_PUSH_REGS) { - for (i=0;iic_data,i)) - ps->ptr++; - } else if (code==EC_POP_REGS) { - for (i=0;iic_data,i)) - ps->ptr--; - } - - if (tempi->p3.type&TY_MASK==TY_STK) { - tempi1=PrsPop(ps); - if (!inside_return) { - if (tempi1->ic_opcode==EC_MOV || - tempi1->ic_opcode==EC_REG) { - if (tempi1->ic_flags & ICF_R_TO_INT) { - if (tempi1->p1.type&TY_MASK==TY_IMM) - tempi1->p1.disp=tempi1->p1.disp><(double); - else - tempi->ic_flags|=ICF_P3_TO_INT; - } else if (tempi1->ic_flags&ICF_R_TO_DOUBLE) { - if (tempi1->p1.type&TY_MASK==TY_IMM) - tempi1->p1.disp><(double)=tempi1->p1.disp; - else - tempi->ic_flags|=ICF_P3_TO_DOUBLE; - } - - t=tempi->p3.type&IT_MASK; - t1=tempi1->p1.type&IT_MASK; - if (t1 && t1r.type&IT_MASK; - if (t1 && t1p3.type=tempi1->p1.type&TY_MASK+t; - - pt=tempi->p3.ptype; - pt1=tempi1->p1.ptype; - if (pt1 && pt1r.ptype; - if (pt1 && pt1p3.ptype=pt; - - tempi->p3.reg=tempi1->p1.reg; - tempi->p3.disp=tempi1->p1.disp; - tempi->ic_flags|=tempi1->ic_flags&ICF_NO_CVT_MASK; - tempi1->ic_opcode=EC_NOP1; - tempi1->ic_data=1; - tempi1->p1.type=TY_NULL+tempi1->p1.type&IT_MASK; - tempi1->r.type=TY_NULL+tempi1->r.type&IT_MASK; - } - } - } - - if (tempi->p2.type&TY_MASK==TY_STK) { - tempi1=PrsPop(ps); - if (!inside_return) { - if (tempi1->ic_opcode==EC_MOV || - tempi1->ic_opcode==EC_REG) { - if (tempi1->ic_flags & ICF_R_TO_INT) { - if (tempi1->p1.type&TY_MASK==TY_IMM) - tempi1->p1.disp=tempi1->p1.disp><(double); - else - tempi->ic_flags|=ICF_P2_TO_INT; - } else if (tempi1->ic_flags&ICF_R_TO_DOUBLE) { - if (tempi1->p1.type&TY_MASK==TY_IMM) - tempi1->p1.disp><(double)=tempi1->p1.disp; - else - tempi->ic_flags|=ICF_P2_TO_DOUBLE; - } - - t=tempi->p2.type&IT_MASK; - t1=tempi1->p1.type&IT_MASK; - if (t1 && t1r.type&IT_MASK; - if (t1 && t1p2.type=tempi1->p1.type&TY_MASK+t; - - pt=tempi->p2.ptype; - pt1=tempi1->p1.ptype; - if (pt1 && pt1r.ptype; - if (pt1 && pt1p2.ptype=pt; - - tempi->p2.reg=tempi1->p1.reg; - tempi->p2.disp=tempi1->p1.disp; - tempi->ic_flags|=tempi1->ic_flags&ICF_NO_CVT_MASK; - tempi1->ic_opcode=EC_NOP1; - tempi1->ic_data=1; - tempi1->p1.type=TY_NULL+tempi1->p1.type&IT_MASK; - tempi1->r.type=TY_NULL+tempi1->r.type&IT_MASK; - } - } - } - - if (tempi->p1.type&TY_MASK==TY_STK) { - tempi1=PrsPop(ps); - if (!inside_return) { - if (tempi1->ic_opcode==EC_MOV || - tempi1->ic_opcode==EC_REG) { - if (tempi1->ic_flags & ICF_R_TO_INT) { - if (tempi1->p1.type&TY_MASK==TY_IMM) - tempi1->p1.disp=tempi1->p1.disp><(double); - else - tempi->ic_flags|=ICF_P1_TO_INT; - } else if (tempi1->ic_flags&ICF_R_TO_DOUBLE) { - if (tempi1->p1.type&TY_MASK==TY_IMM) - tempi1->p1.disp><(double)=tempi1->p1.disp; //dbgo signed/unsigned - else if (!(tempi->ic_flags&ICF_USE_INT)) - tempi->ic_flags|=ICF_P1_TO_DOUBLE; - } - - t=tempi->p1.type&IT_MASK; - t1=tempi1->p1.type&IT_MASK; - if (t1 && t1r.type&IT_MASK; - if (t1 && t1p1.type=tempi1->p1.type&TY_MASK+t; - - pt=tempi->p1.ptype; - pt1=tempi1->p1.ptype; - if (pt1 && pt1r.ptype; - if (pt1 && pt1p1.ptype=pt; - - tempi->p1.reg=tempi1->p1.reg; - tempi->p1.disp=tempi1->p1.disp; - tempi->ic_flags|=tempi1->ic_flags&ICF_NO_CVT_MASK; - tempi1->ic_opcode=EC_NOP1; - tempi1->ic_data=1; - tempi1->p1.type=TY_NULL+tempi1->p1.type&IT_MASK; - tempi1->r.type=TY_NULL+tempi1->r.type&IT_MASK; - } - } - } - - if (code==EC_RETURN_START) - inside_return=TRUE; - else if (code==EC_RETURN_END) - inside_return=FALSE; - - if (tempi->r.type&TY_MASK==TY_STK) - PrsPush(ps,tempi); - } - tempi+=sizeof(IntermediateCode); - } - OptEnd(lx,4,ps); -} diff --git a/LT/Compiler/OptPass5.CPZ b/LT/Compiler/OptPass5.CPZ deleted file mode 100644 index c659114..0000000 --- a/LT/Compiler/OptPass5.CPZ +++ /dev/null @@ -1,267 +0,0 @@ -BoolU8 CmpOptIc5(LexStruct *lx,IntermediateCode *tempi,BoolU4 inside_return) -{ - I8 i; - IntermediateCode *tempil1,*tempil2; - - nounusedwarn inside_return; - - if (tempi->ic_opcodeic_opcode==EC_ADD_CONST) { - if (tempil1->ic_opcode==EC_DEREF) { - if (tempil1->ic_flags&ICF_P1_WAS_STK) { - if (tempil1->p1.type&TY_MASK==TY_REG && - tempil2->p1.type&TY_MASK==TY_REG && - tempil2->r.type&TY_MASK==TY_REG && - tempil2->r.reg==tempil1->p1.reg) { - i=tempil2->ic_data; - if (i>=MIN_I4 && i<=MAX_I4 && - !Bt(&non_ptr_vars_mask,tempil2->p1.reg)) { - tempil1->ic_flags=(tempil1->ic_flags & ~ICF_P1_WAS_STK)| - tempil2->ic_flags; - tempil2->ic_opcode=EC_NOP1; - tempil2->ic_data=1; - tempil2->ic_data=-1; - tempil2->p1.type=TY_NULL+tempil2->p1.type&IT_MASK; - tempil2->r.type=TY_NULL+tempil2->r.type&IT_MASK; - tempil1->ic_opcode=EC_MOV; - tempil1->p1.type=TY_DISP+tempil1->p1.ptype; - tempil1->p1.reg=tempil2->p1.reg; - tempil1->p1.disp=i; - return TRUE; - } - } - } - } - } - return FALSE; -} - -void CmpOptPass5Lag(LexStruct *lx, - ParseStack *ps,IntermediateCode *tempi,I8 *i_,I8 num_stk,BoolU4 *inside_return, - U8 *trashed_reg_mask_,U8 fun_num) -{ - I8 i=*i_; - I8 j,k,l,code; - U8 trashed_reg_mask=*trashed_reg_mask_; - ClassStruct *tempc; - code=tempi->ic_opcode; - if (code<=EC_END_EXP || code==EC_NOP1) - return; - else { - if (tempi->ic_flags&ICF_TRACE) { - if (Bt(&lx->pass_trace_mask,5)) { - PrintF("%2d:",i); - CbPutIc(tempi); - } - } - if (code==EC_CALL_START) { - if (iic_data) { - if (Bt(&tempc->flags,Cf_INTERNAL)) - j=0; - else { - j&=tempc->trashed_reg_mask; - trashed_reg_mask|=tempc->trashed_reg_mask; - } - } - tempi->ic_data=j; - PrsPush(ps,i); - PrsPush(ps,j); - } else if (code==EC_CALL_END) { - tempi->ic_data=PrsPop(ps); - i=PrsPop(ps); - } -// else if (code==EC_LEAVE) -// i=0; - else if (code==EC_CALL_END2) { - ps->ptr--; - i=PrsPop(ps); - } else if (code==EC_RETURN_START) - *inside_return=TRUE; - else if (code==EC_RETURN_END) - *inside_return=FALSE; - if (cmp_param_cnt[code]==9) - i-=tempi->ic_data>>3; - if (tempi->p3.type&TY_MASK==TY_STK) { - i--; - if (ip3.type=tempi->p3.type&IT_MASK+TY_REG; - if (fun_num&1) - tempi->p3.reg=to_stk_temps_map_odd[i]; - else - tempi->p3.reg=to_stk_temps_map_even[i]; - } - } - - if (tempi->p2.type&TY_MASK==TY_STK) { - i--; - if (ip2.type=tempi->p2.type&IT_MASK+TY_REG; - if (fun_num&1) - tempi->p2.reg=to_stk_temps_map_odd[i]; - else - tempi->p2.reg=to_stk_temps_map_even[i]; - } - } - if (tempi->p1.type&TY_MASK==TY_STK) { - i--; - if (ip1.type=TY_REG+tempi->p1.type&IT_MASK; - if (fun_num&1) - tempi->p1.reg=to_stk_temps_map_odd[i]; - else - tempi->p1.reg=to_stk_temps_map_even[i]; - } - } - if (tempi->r.type&TY_MASK==TY_STK && - !(tempi->ic_flags & ICF_PUSH_RESULT)) { - i++; - if (i<=num_stk) { - tempi->r.type=TY_REG+tempi->r.type&IT_MASK; - if (fun_num&1) { - tempi->r.reg=to_stk_temps_map_odd[i-1]; - Bts(&trashed_reg_mask,to_stk_temps_map_odd[i-1]); - } else { - tempi->r.reg=to_stk_temps_map_even[i-1]; - Bts(&trashed_reg_mask,to_stk_temps_map_even[i-1]); - } - } - } - while (CmpOptIc5(lx,tempi,*inside_return)); - if (tempi->r.type&IT_MASK!=IT_DOUBLE && - !(tempi->ic_flags&ICF_USE_DOUBLE)) - tempi->ic_flags|=ICF_USE_INT; - } - *i_=i; - *trashed_reg_mask_=trashed_reg_mask; -} - -void CmpOptPass5(LexStruct *lx,ClassStruct *fun_class) -{ - IntermediateCode *tempi,*tempil1,*tempif1,*tempif2, - *temp_lag[4],*old_tempil1=NULL; - BoolU4 inside_return; - ParseStack *ps=OptStart(lx,temp_lag); - I8 code; - I8 i=0,num_stk,trashed_reg_mask=CALWAYS_TRASHED_MASK; - U8 fun_num=0; - - if (fun_class) - fun_num=compiled_functions++; - - if (Bt(&lx->flags,LFf_NO_REG_VAR) || - lx->flags&LF_NO_REG_OPT) - num_stk=0; - else - num_stk=num_stk_temps; - - tempi=lx->cb.cb_in_ptr; - while (code=tempi->ic_opcode) { - OptNext3(tempi,temp_lag); - tempil1=temp_lag[1]; - if (tempil1->ic_opcode==EC_END_EXP) { - if (code!=EC_RETURN_END && code!=EC_NOP) { - if (!(temp_lag[2]->ic_flags& - (ICF_R_TO_DOUBLE|ICF_R_TO_INT|ICF_PUSH_RESULT|ICF_DEPEND_RESULT))) { - temp_lag[2]->ic_flags|=ICF_NO_DEPEND_RESULT; - temp_lag[2]->r.type=TY_NULL+temp_lag[2]->r.type&IT_MASK; - tempil1->ic_flags|=ICF_NO_DEPEND_RESULT; - tempil1->r.type=TY_NULL+tempil1->r.type&IT_MASK; - } - } - } - if (code<=EC_END_EXP || code==EC_NOP1) { - } else { - if (tempi->p3.type&TY_MASK) { - if (tempi->p3.type&TY_MASK==TY_STK) { - if (tempil1->r.type&TY_MASK==TY_STK && - !(tempil1->ic_flags&ICF_PUSH_RESULT)) { - tempi->p3.type=TY_REG+tempi->p3.type&IT_MASK; - tempi->p3.reg=CREG_RAX; - tempil1->r.type=TY_REG+tempil1->r.type&IT_MASK; - tempil1->r.reg=CREG_RAX; - } - } - } else { - if (tempi->p2.type&TY_MASK==TY_STK) { - if (tempil1->r.type&TY_MASK==TY_STK && - !(tempil1->ic_flags&ICF_PUSH_RESULT)) { - tempif2=NULL; - if (tempi->ic_opcode==EC_ASSIGN && - tempi->ic_flags&ICF_NOT_ADDRESS && - tempil1->ic_opcode!=EC_CALL_END && - tempil1->ic_opcode!=EC_CALL_END2 && - tempil1->ic_opcode!=EC_SET_RAX && - !(tempi->ic_flags& - (ICF_P2_TO_DOUBLE|ICF_P2_TO_INT)) && - !(tempil1->ic_flags& - (ICF_R_TO_DOUBLE|ICF_R_TO_INT))) { - if (tempif1=OptLead1(lx,tempi)) //predict NO_DEPEND - if (tempif2=OptLead1(lx,tempif1)) - if (tempif1->ic_opcode==EC_END_EXP && - tempif2->ic_opcode!=EC_RETURN_END) { - tempi->ic_opcode=EC_NOP; - tempil1->r.type =tempi->p1.type&TY_MASK+tempi->p1.ptype; - tempil1->r.ptype=tempi->p1.ptype; - tempil1->r.reg =tempi->p1.reg; - tempil1->r.disp =tempi->p1.disp; - tempil1->ic_flags=tempil1->ic_flags&~(ICF_NO_DEPEND_RESULT|ICF_R_WAS_STK)| - tempi->ic_flags&~(ICF_NOT_ADDRESS|ICF_P1_WAS_STK|ICF_P2_WAS_STK)|ICF_DEPEND_RESULT; - old_tempil1=NULL; - } else - tempif2=NULL; - } - if (!tempif2) { - tempi->p2.type=TY_REG+tempi->p2.type&IT_MASK; - tempi->p2.reg=CREG_RAX; - tempil1->r.type=TY_REG+tempil1->r.type&IT_MASK; - tempil1->r.reg=CREG_RAX; - } - } - } else if (tempi->p1.type&TY_MASK==TY_STK) { - if (tempil1->r.type&TY_MASK==TY_STK && - !(tempil1->ic_flags&ICF_PUSH_RESULT)) { - tempi->p1.type=TY_REG+tempi->p1.type&IT_MASK; - tempi->p1.reg=CREG_RAX; - tempil1->r.type=TY_REG+tempil1->r.type&IT_MASK; - tempil1->r.reg=CREG_RAX; - } - } - } - if (tempi->ic_flags & ICF_PUSH_RESULT) - tempi->r.type==TY_STK+tempi->r.type&IT_MASK; - - } - if (old_tempil1!=tempil1) { - CmpOptPass5Lag(lx,ps,tempil1,&i,num_stk,&inside_return,&trashed_reg_mask,fun_num); - old_tempil1=tempil1; - } - tempi+=sizeof(IntermediateCode); - } - OptEnd(lx,5,ps); - - if (fun_class) { - fun_class->used_reg_mask&=~CSTK_TEMPS_MASK; - fun_class->used_reg_mask|=trashed_reg_mask; - fun_class->trashed_reg_mask=trashed_reg_mask; - if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) - if (Bt(&lx->pass_trace_mask,4)) { - PrintF("Used Reg Mask:%04X\r\n",fun_class->used_reg_mask); - PrintF("Trashed Reg Mask:%04X\r\n",trashed_reg_mask); - } - } -} diff --git a/LT/Compiler/OptPass6.CPZ b/LT/Compiler/OptPass6.CPZ deleted file mode 100644 index faa95f5..0000000 --- a/LT/Compiler/OptPass6.CPZ +++ /dev/null @@ -1,1195 +0,0 @@ -U8 CmpOptPass678(LexStruct *lx,ClassStruct *fun_class, - I8 *register_offsets,U1 *buf,I8 pass,DbgInfo **dbg_info,I8 *min_line,I8 *max_line) -{ - IntermediateCode *tempi; - I8 code,i,j,ip=0,ip2; - I8 min_line2=-1,last_line=0; - CbMiscStruct *lb,*lb1; - ExeAbsoluteAddressStruct *tempa; - DbgInfo *my_dbg=NULL; - AsmCtrlStruct *a=lx->a; - BoolU4 short_jmp; - I8 *qq; - IcParam saved_p123[3]; - ClassStruct *tempc; - ExternUsage *tempeu; - - if (buf) { - if (*max_line>=*min_line && *max_line-*min_line<10000) { - my_dbg=MAllocZ(offset(DbgInfo.body)+sizeof(void *)*(*max_line-*min_line+2)); - my_dbg->min_line=*min_line; - my_dbg->max_line=*max_line; - } - if (dbg_info) - *dbg_info=my_dbg; - } - - tempi=lx->cb.cb_in_ptr; - while (code=tempi->ic_opcode) { - if (code>EC_END_EXP) { - if (tempi->ic_flags&ICF_TRACE) - if (Bt(&lx->pass_trace_mask,pass)) - CbPutIc(tempi); - ip2=ip; - if (lx->a) - ip2+=lx->a->ip; - else - ip2+=buf; - if (!(tempi->ic_flags &ICF_CODE_FINAL)) { - tempi->ic_flags|=ICF_CODE_FINAL; - MemCpy(saved_p123,&tempi->p1,3*sizeof(IcParam)); - if (cmp_param_cnt[code]==2) { - if (tempi->p1.type&TY_MASK==TY_REG && - tempi->p1.reg==CREG_RAX) - tempi->ic_flags|=ICF_P1_FIRST; - } - tempi->ic_cnt=0; - if (tempi->ic_flags & ICF_P1_FIRST) { - if (tempi->p1.type&TY_MASK) { - if (tempi->ic_flags & ICF_P1_TO_DOUBLE) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcCopyIrq(tempi,I_TO_DOUBLE_RDX); - tempi->p1.type=TY_REG+IT_I8; - tempi->p1.reg=CREG_RDX; - tempi->ic_flags&=~ICF_P1_FIRST; - } else if (tempi->ic_flags & ICF_P1_TO_INT) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcCopyIrq(tempi,I_TO_INT_RDX); - tempi->p1.type=TY_REG+IT_I8; - tempi->p1.reg=CREG_RDX; - tempi->ic_flags&=~ICF_P1_FIRST; - } - } - if (tempi->p2.type&TY_MASK) { - if (tempi->ic_flags & ICF_P2_TO_DOUBLE) { - if (tempi->ic_flags&ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - tempi->p1.type=TY_REG+IT_I8; - tempi->p1.reg=CREG_RDX; - tempi->ic_flags&=~ICF_P1_FIRST; - } - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcCopyIrq(tempi,I_TO_DOUBLE_RAX); - tempi->p2.type=TY_REG+IT_I8; - tempi->p2.reg=CREG_RAX; - tempi->p2.disp=0; - } else if (tempi->ic_flags & ICF_P2_TO_INT) { - if (tempi->ic_flags&ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - tempi->p1.type=TY_REG+IT_I8; - tempi->p1.reg=CREG_RDX; - tempi->ic_flags&=~ICF_P1_FIRST; - } - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcCopyIrq(tempi,I_TO_INT_RAX); - tempi->p2.type=TY_REG+IT_I8; - tempi->p2.reg=CREG_RAX; - } - } - } else { - if (tempi->p3.type&TY_MASK) { - if (tempi->ic_flags & ICF_P3_TO_DOUBLE) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); - IcCopyIrq(tempi,I_TO_DOUBLE_RAX); - tempi->p3.type=TY_REG+IT_I8; - tempi->p3.reg=CREG_RAX; - } else if (tempi->ic_flags & ICF_P3_TO_INT) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); - IcCopyIrq(tempi,I_TO_INT_RAX); - tempi->p3.type=TY_REG+IT_I8; - tempi->p3.reg=CREG_RAX; - } - if (tempi->ic_flags & (ICF_P3_TO_DOUBLE | ICF_P3_TO_INT)) { - if (tempi->p2.type&TY_MASK) { - if (tempi->ic_flags & ICF_P2_TO_DOUBLE) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcCopyIrq(tempi,I_TO_DOUBLE_RDX); - tempi->p2.type=TY_REG+IT_I8; - tempi->p2.reg=CREG_RDX; - } else if (tempi->ic_flags & ICF_P2_TO_INT) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcCopyIrq(tempi,I_TO_INT_RDX); - tempi->p2.type=TY_REG+IT_I8; - tempi->p2.reg=CREG_RDX; - } - } - if (tempi->ic_flags & (ICF_P2_TO_DOUBLE | ICF_P2_TO_INT)) { - if (tempi->p1.type&TY_MASK) { //TODO: RCX might cause problems - if (tempi->ic_flags & ICF_P1_TO_DOUBLE) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcCopyIrq(tempi,I_TO_DOUBLE_RCX); - tempi->p1.type=TY_REG+IT_I8; - tempi->p1.reg=CREG_RCX; - } else if (tempi->ic_flags & ICF_P1_TO_INT) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcCopyIrq(tempi,I_TO_INT_RCX); - tempi->p1.type=TY_REG+IT_I8; - tempi->p1.reg=CREG_RCX; - } - } - } else { - if (tempi->p1.type&TY_MASK) { - if (tempi->ic_flags & ICF_P1_TO_DOUBLE) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcCopyIrq(tempi,I_TO_DOUBLE_RDX); - tempi->p1.type=TY_REG+IT_I8; - tempi->p1.reg=CREG_RDX; - } else if (tempi->ic_flags & ICF_P1_TO_INT) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcCopyIrq(tempi,I_TO_INT_RDX); - tempi->p1.type=TY_REG+IT_I8; - tempi->p1.reg=CREG_RDX; - } - } - } - } else - goto p2_RAX_p1_RDX; - } else { -p2_RAX_p1_RDX: - if (tempi->p2.type&TY_MASK) { - if (tempi->ic_flags & ICF_P2_TO_DOUBLE) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcCopyIrq(tempi,I_TO_DOUBLE_RAX); - tempi->p2.type=TY_REG+IT_I8; - tempi->p2.reg=CREG_RAX; - } else if (tempi->ic_flags & ICF_P2_TO_INT) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcCopyIrq(tempi,I_TO_INT_RAX); - tempi->p2.type=TY_REG+IT_I8; - tempi->p2.reg=CREG_RAX; - } - } - if (tempi->p1.type&TY_MASK) { - if (tempi->ic_flags & ICF_P1_TO_DOUBLE) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcCopyIrq(tempi,I_TO_DOUBLE_RDX); - tempi->p1.type=TY_REG+IT_I8; - tempi->p1.reg=CREG_RDX; - } else if (tempi->ic_flags & ICF_P1_TO_INT) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcCopyIrq(tempi,I_TO_INT_RDX); - tempi->p1.type=TY_REG+IT_I8; - tempi->p1.reg=CREG_RDX; - } - } - } - } - switch (code) { - case EC_ABSOLUTE_ADDRESS: - IcU2(tempi,0xB848); - IcU8(tempi,tempi->ic_data); - i=ip+tempi->ic_cnt-8; - if (buf && a && !(lx->flags & LF_ASM_EXPRESSIONS)) { - tempa=MAllocZ(sizeof(ExeAbsoluteAddressStruct)); - tempa->next=a->absolutes; - a->absolutes=tempa; - tempa->ip=a->ip+i; - } - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_I8,CREG_RAX,0,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_STR_CONST: - case EC_GET_LABEL: - lb=tempi->ic_data; - if (a) - i=lb->address+a->ip; - else - i=lb->address+buf; - IcLea(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_RIP_DISP32+IT_PTR,0,i,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_FS: - IcZero(tempi,CREG_RAX); - IcU4(tempi,0x008B4864); - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_I8,CREG_RAX,0,ip2); - break; - case EC_GS: - IcZero(tempi,CREG_RAX); - IcU4(tempi,0x008B4865); - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_I8,CREG_RAX,0,ip2); - break; - case EC_COM: - IcUnaries(tempi,SLASH_OP_NOT,ip2); - break; - case EC_NOT: - IcNot(tempi,ip2); - break; - case EC_UNARY_MINUS: - if (tempi->r.type&IT_MASK==IT_DOUBLE) - IcFOp1(tempi,I_UNARY_MINUS,ip2); - else - IcUnaries(tempi,SLASH_OP_NEG,ip2); - break; - case EC_ADDRESS: - case EC_MOV: - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - break; - case EC_DEREF: - IcDeref(tempi,ip2); - break; - case EC__PP: - if (tempi->ic_flags&ICF_USE_INT) - IcPostIncDec(tempi,SLASH_OP_INC,ip2); - else - IcFPostIncDec(tempi,I_INC,ip2); - break; - case EC__MM: - if (tempi->ic_flags&ICF_USE_INT) - IcPostIncDec(tempi,SLASH_OP_DEC,ip2); - else - IcFPostIncDec(tempi,I_DEC,ip2); - break; - case EC_PP_: - if (tempi->ic_flags&ICF_USE_INT) - IcPreIncDec(tempi,SLASH_OP_INC,ip2); - else - IcFPreIncDec(tempi,I_INC,ip2); - break; - case EC_MM_: - if (tempi->ic_flags&ICF_USE_INT) - IcPreIncDec(tempi,SLASH_OP_DEC,ip2); - else - IcFPreIncDec(tempi,I_DEC,ip2); - break; - case EC_LEA: - IcLea(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - break; - case EC_POWER: - IcFOp2(tempi,I_POWER,ip2); - break; - case EC_SHL: - IcShift(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0xE0,0xE0,ip2); - break; - case EC_SHR: - IcShift(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0xE8,0xF8,ip2); - break; - case EC_MUL: - if (tempi->ic_flags&ICF_USE_INT) - IcMul(tempi,ip2); - else - IcFOp2(tempi,I_MUL,ip2); - break; - case EC_DIV: - if (tempi->ic_flags&ICF_USE_INT) - IcDiv(tempi,ip2); - else - IcFOp2(tempi,I_DIV,ip2); - break; - case EC_MOD: - if (tempi->ic_flags&ICF_USE_INT) - IcMod(tempi,ip2); - else - IcFOp2(tempi,I_MOD,ip2); - break; - case EC_AND: - IcAddEct(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x23,ip2); - break; - case EC_OR: - IcAddEct(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x0B,ip2); - break; - case EC_XOR: - IcAddEct(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x33,ip2); - break; - case EC_ADD: - if (tempi->ic_flags&ICF_USE_INT) - IcAddEct(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x03,ip2); - else - IcFOp2(tempi,I_ADD,ip2); - break; - case EC_SUB: - if (tempi->ic_flags&ICF_USE_INT) - IcSubEct(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x2B,ip2); - else - IcFOp2(tempi,I_SUB,ip2); - break; - case EC_EQUAL_EQUAL: - IcCmp(tempi,0x75,0x75,ip2); - break; - case EC_NOT_EQUAL: - IcCmp(tempi,0x74,0x74,ip2); - break; - case EC_LESS: - if (tempi->ic_flags&ICF_USE_INT) - IcCmp(tempi,0x73,0x7D,ip2); - else - IcFCmp(tempi,I_LESS,ip2); - break; - case EC_GREATER: - if (tempi->ic_flags&ICF_USE_INT) - IcCmp(tempi,0x76,0x7E,ip2); - else - IcFCmp(tempi,I_GREATER,ip2); - break; - case EC_LESS_EQUAL: - if (tempi->ic_flags&ICF_USE_INT) - IcCmp(tempi,0x77,0x7F,ip2); - else - IcFCmp(tempi,I_LESS_EQUAL,ip2); - break; - case EC_GREATER_EQUAL: - if (tempi->ic_flags&ICF_USE_INT) - IcCmp(tempi,0x72,0x7C,ip2); - else - IcFCmp(tempi,I_GREATER_EQUAL,ip2); - break; - case EC_AND_AND: - IcAndAnd(tempi,ip2); - break; - case EC_OR_OR: - IcOrOr(tempi,ip2); - break; - case EC_XOR_XOR: - IcXorXor(tempi,ip2); - break; - case EC_COLON: - IcColon(tempi,ip2); - break; - case EC_ASSIGN: - IcAssign(tempi,ip2); - break; - case EC_SHL_EQUAL: - IcShiftEqual(tempi,tempi->p1.ptype, - tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0xE0,0xE0,ip2); - break; - case EC_SHR_EQUAL: - IcShiftEqual(tempi,tempi->p1.ptype, - tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0xE8,0xF8,ip2); - break; - case EC_MUL_EQUAL: - if (tempi->ic_flags&ICF_USE_INT) - IcMulEqual(tempi,ip2); - else - IcFOp2Equal(tempi,I_MUL,ip2); - break; - case EC_DIV_EQUAL: - if (tempi->ic_flags&ICF_USE_INT) - IcDivEqual(tempi,FALSE,ip2); - else - IcFOp2Equal(tempi,I_DIV,ip2); - break; - case EC_MOD_EQUAL: - if (tempi->ic_flags&ICF_USE_INT) - IcDivEqual(tempi,TRUE,ip2); - else - IcFOp2Equal(tempi,I_MOD,ip2); - break; - case EC_AND_EQUAL: - IcAddSubEctEqual(tempi,tempi->p1.ptype, - tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x0425240423,ip2); - break; - case EC_OR_EQUAL: - IcAddSubEctEqual(tempi,tempi->p1.ptype, - tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x010D0C010B,ip2); - break; - case EC_XOR_EQUAL: - IcAddSubEctEqual(tempi,tempi->p1.ptype, - tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x0635340633,ip2); - break; - case EC_ADD_EQUAL: - if (tempi->ic_flags&ICF_USE_INT) - IcAddSubEctEqual(tempi,tempi->p1.ptype, - tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x00000003,ip2); - else - IcFOp2Equal(tempi,I_ADD,ip2); - break; - case EC_SUB_EQUAL: - if (tempi->ic_flags&ICF_USE_INT) - IcAddSubEctEqual(tempi,tempi->p1.ptype, - tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x0000052B,ip2); - else - IcFOp2Equal(tempi,I_SUB,ip2); - break; - case EC_SHL_CONST: - IcShift(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - TY_IMM+IT_I8,0,tempi->ic_data,0xE0,0xE0,ip2); - break; - case EC_SHR_CONST: - IcShift(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp, - TY_IMM+IT_I8,0,tempi->ic_data,0xE8,0xF8,ip2); - break; - case EC_ADD_CONST: - IcAddConst(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,tempi->ic_data,0x0003,ip2); - break; - case EC_SUB_CONST: - IcAddConst(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,tempi->ic_data,0x052B,ip2); - break; - case EC_ENTER: - IcPush(tempi,TY_REG+IT_I8,CREG_RBP,0,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RBP,0, - TY_REG+IT_I8,CREG_RSP,0,ip2); - if (i=tempi->ic_data) { - if (MIN_I1<=i<=MAX_I1) { - IcU3(tempi,0xEC8348); - IcU1(tempi,i); - } else { - IcU3(tempi,0xEC8148); - IcU4(tempi,i); - } - } - if (fun_class) - IcPushRegs(tempi,fun_class->used_reg_mask&(CREG_VARS_MASK|CREG_NON_PTR_MASK)); - for (i=0;i0 && register_offsets[i]!=MAX_I8) - IcMov(tempi,TY_REG+IT_I8,i,0, - TY_DISP+IT_I8,CREG_RBP,register_offsets[i],ip2); - break; - case EC_ADD_RSP: - if (i=tempi->ic_data) { - if (MIN_I1<=i<=MAX_I1) { - IcU3(tempi,0xC48348); - IcU1(tempi,i); - } else { - IcU3(tempi,0xC48148); - IcU4(tempi,i); - } - } - break; - case EC_CALL: - i=tempi->ic_data-(ip2+5); - IcU1(tempi,0xE8); - IcU4(tempi,i); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_CALL_EXTERN: - IcU1(tempi,0xE8); - IcU4(tempi,0); - if (buf) { - tempc=tempi->ic_data; - tempeu=MAllocZ(sizeof(ExternUsage)); - tempeu->next=tempc->ext_list; - tempc->ext_list=tempeu; - tempeu->ip=ip2+1; - } - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_CALL_INDIRECT: //TODO: calls>32 disp - IcU3(tempi,0xDC8B48); - IcU3(tempi,0x93FF48); - IcU4(tempi,tempi->ic_data); - break; - case EC_CALL_INDIRECT2: - IcU2(tempi,0xBB48); - if (a) i=ip2+tempi->ic_cnt; - IcU4(tempi,tempi->ic_data); - IcU4(tempi,0); - IcU2(tempi,0xC033); - IcU2(tempi,0x038B); - IcU3(tempi,0xD0FF48); - if (buf && a && !(lx->flags & LF_ASM_EXPRESSIONS)) { - tempa=MAllocZ(sizeof(ExeAbsoluteAddressStruct)); - tempa->next=a->absolutes; - a->absolutes=tempa; - tempa->ip=i; - } - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_CLI: - IcU1(tempi,0xFA); - break; - case EC_STI: - IcU1(tempi,0xFB); - break; - case EC_WBINVD: - IcU2(tempi,0x090F); - break; - case EC_INVD: - IcU2(tempi,0x080F); - break; - case EC_ENABLE_CACHE: - IcU4(tempi,0xC0200F40); - IcU2(tempi, 0x2540); - IcU4(tempi,~0x60000000); - IcU4(tempi, 0xC0220F40); - break; - case EC_DISABLE_CACHE: - IcU4(tempi,0xC0200F40); - IcU2(tempi, 0x0D40); - IcU4(tempi,0x60000000); - IcU4(tempi, 0xC0220F40); - break; - case EC_GET_FLAGS: - IcU1(tempi,0x9C); - IcPop(tempi,TY_REG+IT_I8,CREG_RAX,0,ip2); - break; - case EC_RDTSC: - IcU2(tempi,0xC033); - IcU3(tempi,0x310F40); - IcU3(tempi,0xE2C148); - IcU4(tempi,0xC2034820); - break; - case EC_SET_FLAGS: - IcPush(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcU1(tempi,0x9D); - break; - case EC_GET_BASE_PTR: - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - TY_REG+IT_I8,CREG_RBP,0,ip2); - break; - case EC_SET_BASE_PTR: - IcMov(tempi,TY_REG+IT_I8,CREG_RBP,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - break; - case EC_GET_STACK_PTR: - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - TY_REG+IT_I8,CREG_RSP,0,ip2); - break; - case EC_SET_STACK_PTR: - IcMov(tempi,TY_REG+IT_I8,CREG_RSP,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - break; - case EC_RETURN_START: - case EC_RETURN_END: - break; - case EC_SET_RAX: - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - break; - case EC_BT: - IcBitOps(tempi,0xA30F,0x20BA0F,FALSE,ip2); - break; - case EC_BTS: - IcBitOps(tempi,0xAB0F,0x28BA0F,FALSE,ip2); - break; - case EC_BTR: - IcBitOps(tempi,0xB30F,0x30BA0F,FALSE,ip2); - break; - case EC_BTC: - IcBitOps(tempi,0xBB0F,0x38BA0F,FALSE,ip2); - break; - case EC_LBTS: - IcBitOps(tempi,0xAB0F,0x28BA0F,TRUE,ip2); - break; - case EC_LBTR: - IcBitOps(tempi,0xB30F,0x30BA0F,TRUE,ip2); - break; - case EC_LBTC: - IcBitOps(tempi,0xBB0F,0x38BA0F,TRUE,ip2); - break; - case EC_BSF: - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcU4(tempi,0xC0BC0F48); - IcU2(tempi,0x0375); - IcU3(tempi,0xD0F748); - break; - case EC_BSR: - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcU4(tempi,0xC0BD0F48); - IcU2(tempi,0x0375); - IcU3(tempi,0xD0F748); - break; - case EC_PREEMPT: - IcPreempt(tempi,ip2); - break; - case EC_ABSI8: - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcU3(tempi,0xC00B48); - IcU2(tempi,0x0379); - IcU3(tempi,0xD8F748); - break; - case EC_INSQUE: - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - } - IcU3(tempi,0x1A8B48); - IcU3(tempi,0x028948); - IcU3(tempi,0x188948); - IcU4(tempi,sizeof(void *)<<24+0x508948); - IcU4(tempi,sizeof(void *)<<24+0x438948); - break; - case EC_INSQUE_REV: - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - } - IcU4(tempi,sizeof(void *)<<24+0x5A8B48); - IcU3(tempi,0x038948); - IcU3(tempi,0x108948); - IcU4(tempi,sizeof(void *)<<24+0x588948); - IcU4(tempi,sizeof(void *)<<24+0x428948); - break; - case EC_REMQUE: - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcU3(tempi,0x188B48); - IcU4(tempi,sizeof(void *)<<24+0x508B48); - IcU3(tempi,0x1A8948); - IcU4(tempi,sizeof(void *)<<24+0x538948); - break; - case EC_MEMCPY: - if (tempi->p1.type&TY_MASK==TY_REG && - tempi->p1.reg==CREG_RAX) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - } else if (tempi->p2.type&TY_MASK==TY_REG && - tempi->p2.reg==CREG_RAX) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - } - IcPushRegs(tempi,1<p1.type&TY_MASK==TY_REG && - tempi->p1.reg==CREG_RAX) { - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - } else if (tempi->p2.type&TY_MASK==TY_REG && - tempi->p2.reg==CREG_RAX) { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RCX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - } - IcPushRegs(tempi,1<p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcU3(tempi,0xD08B48); - IcU2(tempi,0x188A); - IcU3(tempi,0xC0FF48); - IcU2(tempi,0xDB0A); - IcU2(tempi,0xF775); - IcU3(tempi,0xC22B48); - IcU3(tempi,0xC8FF48); - break; - case EC_INPD: - if (tempi->p1.type&TY_MASK==TY_IMM && tempi->p1.disp<=MAX_U1) { - IcU2(tempi,0xC033); - IcU2(tempi,0x00E5+tempi->p1.disp<<8); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcU2(tempi,0xC033); - IcU1(tempi,0xED); - } - break; - case EC_INPW: - if (tempi->p1.type&TY_MASK==TY_IMM && tempi->p1.disp<=MAX_U1) { - IcU2(tempi,0xC033); - IcU3(tempi,0x00E566+tempi->p1.disp<<16); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcU2(tempi,0xC033); - IcU2(tempi,0xED66); - } - break; - case EC_INP: - if (tempi->p1.type&TY_MASK==TY_IMM && tempi->p1.disp<=MAX_U1) { - IcU2(tempi,0xC033); - IcU2(tempi,0x00E4+tempi->p1.disp<<8); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcU2(tempi,0xC033); - IcU1(tempi,0xEC); - } - break; - case EC_OUTPD: - if (tempi->p2.type&TY_MASK==TY_IMM && tempi->p2.disp<=MAX_U1) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcU2(tempi,0x00E7+tempi->p2.disp<<8); - } else { - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - } - IcU1(tempi,0xEF); - } - break; - case EC_OUTPW: - if (tempi->p2.type&TY_MASK==TY_IMM && tempi->p2.disp<=MAX_U1) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcU3(tempi,0x00E766+tempi->p2.disp<<16); - } else { - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - } - IcU2(tempi,0xEF66); - } - break; - case EC_OUTP: - if (tempi->p2.type&TY_MASK==TY_IMM && tempi->p2.disp<=MAX_U1) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcU2(tempi,0x00E6+tempi->p2.disp<<8); - } else { - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RDX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - } - IcU1(tempi,0xEE); - } - break; - case EC_SWITCH: - if (tempi->ic_flags & ICF_P1_FIRST) { - IcMov(tempi,TY_REG+IT_U2,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - IcMov(tempi,TY_REG+IT_U2,CREG_RCX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - } else { - IcMov(tempi,TY_REG+IT_U2,CREG_RCX,0, - tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); - IcMov(tempi,TY_REG+IT_U2,CREG_RDX,0, - tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); - } - IcU3(tempi,0xD13B48); - IcU2(tempi,0x0873); - IcU4(tempi,0xD524FF48); - lb=tempi->ic_data; - if (a) - i=lb->address+a->ip; - else - i=lb->address+buf; - if (a) j=a->ip+ip+tempi->ic_cnt; - IcU4(tempi,i); - if (buf && a && !(lx->flags & LF_ASM_EXPRESSIONS)) { - tempa=MAllocZ(sizeof(ExeAbsoluteAddressStruct)); - tempa->next=a->absolutes; - a->absolutes=tempa; - tempa->ip=j; - } - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_ZERO: - IcTestAndBranch(tempi,ip,0x74840F,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_NOT_ZERO: - IcTestAndBranch(tempi,ip,0x75850F,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_EQUAL_EQUAL: - IcCmpAndBranch(tempi,ip,0x74840F,0x74840F,0x74840F,0x74840F,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_NOT_EQUAL: - IcCmpAndBranch(tempi,ip,0x75850F,0x75850F,0x75850F,0x75850F,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_GREATER_EQUAL: - if (tempi->ic_flags&ICF_USE_DOUBLE) - IcFCmpAndBranch(tempi,ip,I_GREATER_EQUAL,buf,ip2); - else - IcCmpAndBranch(tempi,ip,0x73830F,0x7D8D0F,0x76860F,0x7E8E0F,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_LESS_EQUAL: - if (tempi->ic_flags&ICF_USE_DOUBLE) - IcFCmpAndBranch(tempi,ip,I_LESS_EQUAL,buf,ip2); - else - IcCmpAndBranch(tempi,ip,0x76860F,0x7E8E0F,0x73830F,0x7D8D0F,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_GREATER: - if (tempi->ic_flags&ICF_USE_DOUBLE) - IcFCmpAndBranch(tempi,ip,I_GREATER,buf,ip2); - else - IcCmpAndBranch(tempi,ip,0x77870F,0x7F8F0F,0x72820F,0x7C8C0F,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_LESS: - if (tempi->ic_flags&ICF_USE_DOUBLE) - IcFCmpAndBranch(tempi,ip,I_LESS,buf,ip2); - else - IcCmpAndBranch(tempi,ip,0x72820F,0x7C8C0F,0x77870F,0x7F8F0F,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_BT: - IcBrBitOps(tempi,ip,0xA30F,0x20BA0F,0x72820F,FALSE,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_BTS: - IcBrBitOps(tempi,ip,0xAB0F,0x28BA0F,0x72820F,FALSE,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_BTR: - IcBrBitOps(tempi,ip,0xB30F,0x30BA0F,0x72820F,FALSE,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_BTC: - IcBrBitOps(tempi,ip,0xBB0F,0x38BA0F,0x72820F,FALSE,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_NOT_BT: - IcBrBitOps(tempi,ip,0xA30F,0x20BA0F,0x73830F,FALSE,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_NOT_BTS: - IcBrBitOps(tempi,ip,0xAB0F,0x28BA0F,0x73830F,FALSE,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_NOT_BTR: - IcBrBitOps(tempi,ip,0xB30F,0x30BA0F,0x73830F,FALSE,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_NOT_BTC: - IcBrBitOps(tempi,ip,0xBB0F,0x38BA0F,0x73830F,FALSE,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_LBTS: - IcBrBitOps(tempi,ip,0xAB0F,0x28BA0F,0x72820F,TRUE,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_LBTR: - IcBrBitOps(tempi,ip,0xB30F,0x30BA0F,0x72820F,TRUE,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_LBTC: - IcBrBitOps(tempi,ip,0xBB0F,0x38BA0F,0x72820F,TRUE,buf,ip2); - break; - case EC_BR_NOT_LBTS: - IcBrBitOps(tempi,ip,0xAB0F,0x28BA0F,0x73830F,TRUE,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_NOT_LBTR: - IcBrBitOps(tempi,ip,0xB30F,0x30BA0F,0x73830F,TRUE,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_NOT_LBTC: - IcBrBitOps(tempi,ip,0xBB0F,0x38BA0F,0x73830F,TRUE,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_AND_ZERO: - IcAndBranch(tempi,ip,0x74840F,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_BR_AND_NOT_ZERO: - IcAndBranch(tempi,ip,0x75850F,buf,ip2); - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_LEAVE: - if (fun_class) - IcPopRegs(tempi,fun_class->used_reg_mask&(CREG_VARS_MASK|CREG_NON_PTR_MASK)); - if (i=tempi->ic_data) { - if (MIN_I1<=i<=MAX_I1) { - IcU3(tempi,0xC48348); - IcU1(tempi,i); - } else { - IcU3(tempi,0xC48148); - IcU4(tempi,i); - } - } - IcPop(tempi,TY_REG+IT_I8,CREG_RBP,0,ip2); - IcU1(tempi,0xC3); - break; - case EC_RET: - IcU1(tempi,0xC3); - break; - case EC_JMP: - short_jmp=(tempi->ic_flags & ICF_SHORT_JMP) ? TRUE:FALSE; - lb=tempi->ic_data; - while (lb1=lb->forward) - lb=lb1; - if (!buf) { - if (lb->address!=INVALID_PTR) { - i=lb->address-ip; - if (MIN_I1+5ic_flags|=ICF_SHORT_JMP; - i=lb->address-(ip+2); - IcU2(tempi,i<<8+0xEB); - } else { - i=lb->address-(ip+5); - IcU1(tempi,0xE9); - IcU4(tempi,i); - } - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_NULL: - break; - case EC_LABEL: - lb=tempi->ic_data; - lb->address=ip; - if (lb->flags&CBMF_POP_CMP) { - IcU3(tempi,0xC48348); - IcU1(tempi,-8); - IcU3(tempi,0xC48348); - IcU1(tempi,8); - } - tempi->ic_flags&=~ICF_CODE_FINAL; - break; - case EC_QUESTION: - break; - case EC_IRQ: - IcU1(tempi,0xCD); - IcU1(tempi,tempi->ic_data); - break; - case EC_NOP: - case EC_NOP1: - case EC_PUSH_CMP: - break; - case EC_CALL_START: - case EC_PUSH_REGS: - IcPushRegs(tempi,tempi->ic_data); - break; - case EC_CALL_END2: - break; - case EC_CALL_END: - IcPopRegs(tempi,tempi->ic_data); - if (tempi->r.type&TY_MASK) - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_I8,CREG_RAX,0,ip2); - break; - case EC_POP_REGS: - IcPopRegs(tempi,tempi->ic_data); - break; - case EC_END_EXP: - break; - - default: - OptMissing(lx,6,tempi); - } - if (tempi->r.type&TY_MASK) { - if (tempi->ic_flags & ICF_R_TO_DOUBLE) { - if (tempi->ic_opcode==EC_PUSH_CMP) { - IcU3(tempi,0xDC8B48); - IcU3(tempi,0x2BDF48); - IcU3(tempi,0x1BDD48); - IcU1(tempi,0x9B); - } else { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->r.type,tempi->r.reg,tempi->r.disp,ip2); - IcCopyIrq(tempi,I_TO_DOUBLE_RAX); - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_I8,CREG_RAX,0,ip2); - } - } else if (tempi->ic_flags & ICF_R_TO_INT) { - IcMov(tempi,TY_REG+IT_I8,CREG_RAX,0, - tempi->r.type,tempi->r.reg,tempi->r.disp,ip2); - IcCopyIrq(tempi,I_TO_INT_RAX); - IcMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+IT_I8,CREG_RAX,0,ip2); - } - } - } - if (tempi->ic_cnt) { - if (pass==7) { - i=tempi->ic_line; - if (i>=last_line) { - last_line=i; - if (i<*min_line) - *min_line=i; - if (i>*min_line && i*max_line) - *max_line=i; - } - } - if (buf) { - if (tempi->ic_ext_body) { - MemCpy(buf+ip,tempi->ic_ext_body,tempi->ic_cnt); - Free(tempi->ic_ext_body); - tempi->ic_ext_body=NULL; - } else - MemCpy(buf+ip,tempi->ic_body,tempi->ic_cnt); - if (my_dbg) { - if (tempi->ic_line>=*min_line && tempi->ic_line<=*max_line) { - i=tempi->ic_line-*min_line; - if (!my_dbg->body[i]) - my_dbg->body[i]=ip2; - } - } - } - } - if (tempi->ic_flags&ICF_TRACE) { - if (Bt(&lx->pass_trace_mask,pass)) { - if (buf) { - if (tempi->ic_cnt) { - cout "$$FG,RED$$"; - CallExtStr("Dasm2",buf+ip,tempi->ic_cnt,64); - cout "$$FG$$"; - } - } - } - } - if (!(tempi->ic_flags&ICF_CODE_FINAL)) - MemCpy(&tempi->p1,saved_p123,3*sizeof(IcParam)); - ip+=tempi->ic_cnt; - } - tempi+=sizeof(IntermediateCode); - } - - lb=lx->cb.cb_misc_list; - while (lb) { - if (lb->type==CBMT_STR_CONST) { - lb->address=ip; - if (buf) - MemCpy(buf+ip,lb->str,lb->st_len); - ip+=lb->st_len; - } else if (lb->type==CBMT_JMP_TABLE) { - ip+=(8-ip&7)&7; //aligned to 8 - lb->address=ip; - if (buf) { - for (i=0;ist_len;i++) { - lb1=lb->jmp_table[i]; - qq=buf+ip+i<<3; - if (a) { - tempa=MAllocZ(sizeof(ExeAbsoluteAddressStruct)); - tempa->next=a->absolutes; - a->absolutes=tempa; - tempa->ip=a->ip+ip+i<<3; - *qq=lb1->address+a->ip; - } else - *qq=lb1->address+buf; - } - } - ip+=lb->st_len<<3; - } - lb=lb->next; - } - if (pass==7) { - if (min_line2!=-1 && - (min_line2-*min_line)>10) //Defines screw things up - *min_line=min_line2; - } else if (buf && my_dbg) { - i=*max_line-*min_line+1; - if (lx->a) - my_dbg->body[i]=ip+lx->a->ip; - else - my_dbg->body[i]=ip+buf; - } - - return ip; -} diff --git a/LT/Compiler/Renum.AUZ b/LT/Compiler/Renum.AUZ deleted file mode 100644 index 1430948..0000000 --- a/LT/Compiler/Renum.AUZ +++ /dev/null @@ -1,27 +0,0 @@ -/* To run this, do a directory, right click on -this file's name and select "AutoFile". -Or, type $LK,"AutoFile","MN:AutoFile"$(filename); -See $LK,"AutoFile","FF:::/LT/Doc/OSGlossary.GLZ,AutoFile"$ in the glossary for more info. - -This autofile will renumber the defines in -Demo3.TXZ. Test it by numbering a few wrong -and running this demo. - -*/ - -U1 i; - -PutS("Edit(\"CmpDefs.HPZ\");\r"); -//Go to start of file -Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL); -for (i=0;i<=0x8A;i++) { - PrintF("%c0x%c",6,CH_ESC); //ctrl F - Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT); - Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT); - Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT); - Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT); - Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT); - PrintF("%c%c%c",CH_BACKSPACE,CH_BACKSPACE,CH_BACKSPACE); - PrintF("%03X",i); - Sleep(5); -} \ No newline at end of file diff --git a/LT/Compiler/SPrintF2.CPZ b/LT/Compiler/SPrintF2.CPZ deleted file mode 100644 index bb8c1c5..0000000 --- a/LT/Compiler/SPrintF2.CPZ +++ /dev/null @@ -1,1009 +0,0 @@ -void OutChar(I1 **addr_dst,I1 ch,I1 **addr_buf) -{ - I8 i; - I1 *dst=*addr_dst,*buf; - if (addr_buf) { - buf=*addr_buf; - i=dst-buf; - if (i>=MSize(buf)) { - buf=MAlloc(i<<1+1); - MemCpy(buf,*addr_buf,i); - dst=buf+i; - *addr_buf=buf; - } - } - *dst++=ch; - *addr_dst=dst; -} - -void OutStr(I1 *ptr,I1 **addr_buf,I1 *addr_dst, - I8 len,BoolU4 left_justify,BoolU4 truncate) -{ - I8 i,j; - if (!ptr) - i=0; - else - i=StrLen(ptr); - if (truncate && i>len) - i=len; - if (left_justify) { - for (j=0;jhash_table; - ClassStruct *tempc; - U8 i,best=0x8000,j; - if (!CheckPtr(add)) { - *offset=best; - return NULL; - } - while (h) { - for (i=0;i<=h->mask;i++) { - temph=h->body[i]; - while (temph) { - if (temph->type&HTT_FUNCTION) { - tempc=temph; - j=tempc->executable_address; - } else - j=temph->user_data0; - j=add-j; - if (temph->type&(HTT_SYS_SYMBOL|HTT_FUNCTION)) { - if (jnext; - } - } - h=h->next; - } - *offset=best; - return result; -} - -void SPrintFPSect(I1 *buf,U8 add,U8 field_length) -{ - U8 offset; - SysHashEntry *temph; - if (temph=FindPSect(add,&offset)) { - if (offset<=0xFFFF) { - if (field_length>5) - SPrintF(buf,"%*ts,%04X",field_length-5,temph->str,offset); - else - SPrintF(buf,"%s,%04X",temph->str,offset); - } - return; - } - if (field_length) - SPrintF(buf,"%*tX",field_length,add); - else - SPrintF(buf,"%X",add); -} - -I1 *MSPrintFTime(LTDate ltdt,U8 sub_format) -{ - LTDateStruct d; - switch (sub_format) { - case 1: - ToLTDateStruct(&d,ltdt+local_time_offset); - return MSPrintF("%02d:%02d",d.hours,d.minutes); - case 2: - ToLTDateStruct(&d,ltdt+local_time_offset); - if (d.hours>=12) - return MSPrintF("%02d:%02d:%02d pm",d.hours-12,d.minutes,d.seconds); - else - return MSPrintF("%02d:%02d:%02d am",d.hours,d.minutes,d.seconds); - case 3: - ToLTDateStruct(&d,ltdt+local_time_offset); - if (d.hours>=12) - return MSPrintF("%02d:%02d pm",d.hours-12,d.minutes); - else - return MSPrintF("%02d:%02d am",d.hours,d.minutes); - case 4: - ToLTDateStruct(&d,ltdt+local_time_offset); - if (d.hours>=12) - return MSPrintF("%02d:%02d:%02dp",d.hours-12,d.minutes,d.seconds); - else - return MSPrintF("%02d:%02d:%02da",d.hours,d.minutes,d.seconds); - case 5: - ToLTDateStruct(&d,ltdt+local_time_offset); - if (d.hours>=12) - return MSPrintF("%02d:%02dp",d.hours-12,d.minutes); - else - return MSPrintF("%02d:%02da",d.hours,d.minutes); - case 6: - ToLTDateStruct(&d,ltdt); - return MSPrintF("%dh %02dm",d.hours+ltdt.date*24,d.minutes); - case 7: - ToLTDateStruct(&d,ltdt); - return MSPrintF("%dh %02dm %02ds",d.hours+ltdt.date*24,d.minutes,d.seconds); - case 8: - ToLTDateStruct(&d,ltdt); - return MSPrintF("%dd %02dh %02dm",ltdt.date,d.hours,d.minutes); - case 9: - ToLTDateStruct(&d,ltdt); - return MSPrintF("%dd %02dh %02dm %02ds",ltdt.date,d.hours,d.minutes,d.seconds); - case 10: - ToLTDateStruct(&d,ltdt); - return MSPrintF("%dd %02dh %02dm %02d.%02ds",ltdt.date,d.hours,d.minutes,d.seconds,d.hundredths); - case 11: - ToLTDateStruct(&d,ltdt); - return MSPrintF("%dh %02dm %02d.%02ds",d.hours+ltdt.date*24,d.minutes,d.seconds,d.hundredths); - case 12: - ToLTDateStruct(&d,ltdt); - return MSPrintF("%d.%02d",60*((ltdt.date*24+d.hours)*60+d.minutes)+d.seconds,d.hundredths); - case 13: - ToLTDateStruct(&d,ltdt); - return MSPrintF("%02d:%02d.%02d",60*(ltdt.date*24+d.hours)+d.minutes,d.seconds,d.hundredths); - case 14: - ToLTDateStruct(&d,ltdt); - return MSPrintF("%02d:%02d:%02d.%02d",ltdt.date*24+d.hours,d.minutes,d.seconds,d.hundredths); - case 15: - ToLTDateStruct(&d,ltdt); - return MSPrintF("%dd %02dh %02dm %02d.%04ds",ltdt.date,d.hours,d.minutes,d.seconds,d.ten_thousandths); - case 16: - ToLTDateStruct(&d,ltdt); - return MSPrintF("%dh %02dm %02d.%04ds",d.hours+ltdt.date*24,d.minutes,d.seconds,d.ten_thousandths); - case 17: - ToLTDateStruct(&d,ltdt); - return MSPrintF("%d.%04d",60*((ltdt.date*24+d.hours)*60+d.minutes)+d.seconds,d.ten_thousandths); - case 18: - ToLTDateStruct(&d,ltdt); - return MSPrintF("%02d:%02d.%04d",60*(ltdt.date*24+d.hours)+d.minutes,d.seconds,d.ten_thousandths); - case 19: - ToLTDateStruct(&d,ltdt); - return MSPrintF("%02d:%02d:%02d.%04d",ltdt.date*24+d.hours,d.minutes,d.seconds,d.ten_thousandths); - default: - ToLTDateStruct(&d,ltdt+local_time_offset); - return MSPrintF("%02d:%02d:%02d",d.hours,d.minutes,d.seconds); - } -} - -I1 *MSPrintFDate(LTDate dt,U8 sub_format) -{ - LTDateStruct d; - ToLTDateStruct(&d,dt+local_time_offset); - switch (sub_format) { - case 1: - return MSPrintF("%02d/%02d",d.month,d.day_of_month); - case 2: - return MSPrintF("%3tZ %02d/%02d",d.day_of_week,"ST_DAYS_OF_WEEK", - d.month,d.day_of_month); - case 3: - return MSPrintF("%3tZ %02d/%02d/%02d",d.day_of_week,"ST_DAYS_OF_WEEK", - d.month,d.day_of_month,(d.year)%100); - case 4: - return MSPrintF("%02d/%02d/%d",d.month,d.day_of_month,d.year); - case 5: - return MSPrintF("%3tZ %02d/%02d/%d",d.day_of_week,"ST_DAYS_OF_WEEK", - d.month,d.day_of_month,d.year); - case 6: - return MSPrintF("%3tZ %02d",d.month-1,"ST_MONTHS",d.day_of_month); - case 7: - return MSPrintF("%3tZ, %3tZ %02d",d.day_of_week,"ST_DAYS_OF_WEEK", - d.month-1,"ST_MONTHS",d.day_of_month); - case 8: - return MSPrintF("%3tZ %02d,%04d",d.month-1,"ST_MONTHS",d.day_of_month,d.year); - case 9: - return MSPrintF("%3tZ, %3tZ %02d,%d",d.day_of_week,"ST_DAYS_OF_WEEK", - d.month-1,"ST_MONTHS",d.day_of_month,d.year); - case 10: - return MSPrintF("%Z %d",d.month-1,"ST_MONTHS",d.day_of_month); - case 11: - return MSPrintF("%Z, %Z %d",d.day_of_week,"ST_DAYS_OF_WEEK", - d.month-1,"ST_MONTHS",d.day_of_month); - case 12: - return MSPrintF("%Z %d,%d",d.month-1,"ST_MONTHS",d.day_of_month,d.year); - case 13: - return MSPrintF("%Z, %Z %d,%d",d.day_of_week,"ST_DAYS_OF_WEEK", - d.month-1,"ST_MONTHS",d.day_of_month,d.year); - case 14: - return MSPrintF("%02d/%02d/%02d",d.day_of_month,d.month,(d.year)%100); - case 15: - return MSPrintF("%02d/%02d",d.day_of_month,d.month); - case 16: - return MSPrintF("%3tZ %02d/%02d",d.day_of_week,"ST_DAYS_OF_WEEK", - d.day_of_month,d.month); - case 17: - return MSPrintF("%3tZ %02d/%02d/%02d",d.day_of_week,"ST_DAYS_OF_WEEK", - d.day_of_month,d.month,(d.year)%100); - case 18: - return MSPrintF("%02d/%02d/%d",d.day_of_month,d.month,d.year); - case 19: - return MSPrintF("%3tZ %02d/%02d/%d",d.day_of_week,"ST_DAYS_OF_WEEK", - d.day_of_month,d.month,d.year); - case 20: - return MSPrintF("%02d %3tZ",d.day_of_month,d.month-1,"ST_MONTHS"); - case 21: - return MSPrintF("%3tZ, %02d %3tZ",d.day_of_week,"ST_DAYS_OF_WEEK", - d.day_of_month,d.month-1,"ST_MONTHS"); - case 22: - return MSPrintF("%02d %3tZ,%04d",d.day_of_month,d.month-1,"ST_MONTHS",d.year); - case 23: - return MSPrintF("%3tZ, %02d %3tZ,%d",d.day_of_week,"ST_DAYS_OF_WEEK", - d.day_of_month,d.month-1,"ST_MONTHS",d.year); - case 24: - return MSPrintF("%d %Z",d.day_of_month,d.month-1,"ST_MONTHS"); - case 25: - return MSPrintF("%Z, %d %Z",d.day_of_week,"ST_DAYS_OF_WEEK", - d.day_of_month,d.month-1,"ST_MONTHS"); - case 26: - return MSPrintF("%d %Z,%d",d.day_of_month,d.month-1,"ST_MONTHS",d.year); - case 27: - return MSPrintF("%Z, %d %Z,%d",d.day_of_week,"ST_DAYS_OF_WEEK", - d.day_of_month,d.month-1,"ST_MONTHS",d.year); - case 28: - return MSPrintF("%02d/%02d/%02d",(d.year)%100,d.month,d.day_of_month); - case 29: - return MSPrintF("%d/%02d/%02d",d.year,d.month,d.day_of_month); - case 30: - return MSPrintF("%02d%02d%02d",(d.year)%100,d.month,d.day_of_month); - case 31: - return MSPrintF("%d%02d%02d",d.year,d.month,d.day_of_month); - case 32: - return MSPrintF("%02d%02d%02d",d.month,d.day_of_month,(d.year)%100); - case 33: - return MSPrintF("%02d%02d%d",d.month,d.day_of_month,d.year); - case 34: - return MSPrintF("%3tZ",d.day_of_week,"ST_DAYS_OF_WEEK"); - case 35: - return MSPrintF("%Z",d.day_of_week,"ST_DAYS_OF_WEEK"); - case 36: - return MSPrintF("%3tZ",d.month-1,"ST_MONTHS"); - case 37: - return MSPrintF("%Z",d.month-1,"ST_MONTHS"); - case 38: - return MSPrintF("%d %3tZ",d.year,d.month-1,"ST_MONTHS"); - case 39: - return MSPrintF("%d %Z",d.year,d.month-1,"ST_MONTHS"); - case 40: - return MSPrintF("%02d %3tZ",(d.year)%100,d.month-1,"ST_MONTHS"); - case 41: - return MSPrintF("%02d %Z",(d.year)%100,d.month-1,"ST_MONTHS"); - case 42: - return MSPrintF("%3tZ %d",d.month-1,"ST_MONTHS",d.year); - case 43: - return MSPrintF("%Z %d",d.month-1,"ST_MONTHS",d.year); - case 44: - return MSPrintF("%3tZ %02d",d.month-1,"ST_MONTHS",(d.year)%100); - case 45: - return MSPrintF("%Z %02d",d.month-1,"ST_MONTHS",(d.year)%100); - case 46: - return MSPrintF("%02d",(d.year)%100); - case 47: - return MSPrintF("%d",d.year); - default: - return MSPrintF("%02d/%02d/%02d",d.month,d.day_of_month,(d.year)%100); - } -} - -#define TEMP_BUF_LEN 256 - -I1 *SPrintFJoin2(I1 *dst,I1 *src,I8 argc,I8 *argv) -{ - I1 *ptr,**addr_buf,*buf,*addr_dst, - *temp1; - BoolU4 pad_zero,left_justify,truncate,neg,neg_e; - I8 i,ch,ch1,k,len,dec_len,sub_format; - U8 d,cur_param=0; - double dd,dd1; - I1 temp_buf[TEMP_BUF_LEN]; - - if (!src) - throw(EXCEPT_SPRINTF,0); - if (dst) { - addr_buf=NULL; - buf=dst; - } else { - buf=MAlloc(128); - addr_buf=&buf; - dst=buf; - } - addr_dst=&dst; - - while (ch = *(src++)) { - if (ch=='%') { - if (*src=='-') { - left_justify=TRUE; - src++; - } else - left_justify=FALSE; - if (*src=='0') { - pad_zero=TRUE; - src++; - } else - pad_zero=FALSE; - len=0; - while (*src>='0' && *src<='9') - len=len*10+ *(src++)-'0'; - if (*src=='*') { - src++; - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - len=argv[cur_param++]; - } - dec_len=0; - if (*src=='.') { - src++; - while (*src>='0' && *src<='9') - dec_len=dec_len*10+ *(src++)-'0'; - if (*src=='*') { - src++; - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - dec_len=argv[cur_param++]; - } - } - if (*src=='t') { - src++; - truncate=TRUE; - } else - truncate=FALSE; - - sub_format=0; - if (*src=='h') { - src++; - while (*src>='0' && *src<='9') - sub_format=sub_format*10+ *(src++)-'0'; - if (*src=='*') { - src++; - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - sub_format=argv[cur_param++]; - } - } - neg=FALSE; - k=0; - switch (*src++) { - case 's': - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - ptr=argv[cur_param++]; - OutStr(ptr,addr_buf,addr_dst,len,left_justify,truncate); - break; - case 'S': - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - ptr=SysText(argv[cur_param++]); - OutStr(ptr,addr_buf,addr_dst,len,left_justify,truncate); - break; - case 'F': - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - ptr=ReadTextFile(argv[cur_param++]); - OutStr(ptr,addr_buf,addr_dst,len,left_justify,truncate); - Free(ptr); - break; - case 'Q': - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - if (ptr=argv[cur_param++]) - while (ch=*ptr++) { - if (ch=='$$') { - OutChar(addr_dst,ch,addr_buf); - OutChar(addr_dst,ch,addr_buf); - } else if (ch==CH_LINE_FEED){ - OutChar(addr_dst,'\\',addr_buf); - OutChar(addr_dst,'n',addr_buf); - } else if (ch==CH_CR){ - OutChar(addr_dst,'\\',addr_buf); - OutChar(addr_dst,'r',addr_buf); - } else if (ch==CH_TAB){ - OutChar(addr_dst,'\\',addr_buf); - OutChar(addr_dst,'t',addr_buf); - } else { - if (ch=='"' || ch=='\\') - OutChar(addr_dst,'\\',addr_buf); - if (ch>=CH_SHIFT_SPACE && ch<=0x7F) - OutChar(addr_dst,ch,addr_buf); - else { - OutChar(addr_dst,'\\',addr_buf); - OutChar(addr_dst,ch>>6&7+'0',addr_buf); - OutChar(addr_dst,ch>>3&7+'0',addr_buf); - OutChar(addr_dst,ch&7+'0',addr_buf); - } - } - } - break; - case 'q': - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - if (ptr=argv[cur_param++]) - while (ch=*ptr++) { - ch1=*ptr; - if (ch=='\\') { - if (ch1=='n') { - OutChar(addr_dst,CH_LINE_FEED,addr_buf); - ptr++; - } else if (ch1=='r') { - OutChar(addr_dst,CH_CR,addr_buf); - ptr++; - } else if (ch1=='"') { - OutChar(addr_dst,'"',addr_buf); - ptr++; - } else if (ch1==0x27) { // "\'" - OutChar(addr_dst,0x27,addr_buf); - ptr++; - } else if (ch1=='\`') { - OutChar(addr_dst,'\`',addr_buf); - ptr++; - } else if (ch1=='\\') { - OutChar(addr_dst,'\\',addr_buf); - ptr++; - } else if (ch1=='t') { - OutChar(addr_dst,CH_TAB,addr_buf); - ptr++; - } else if (ch1>='0' && ch1<='7') { - i=ch1-'0'; - ptr++; - do { - ch1=*ptr++; - if (ch1>='0' && ch1<='7') - i=i<<3+ch1-'0'; - } while (ch1>='0' && ch1<='7'); - OutChar(addr_dst,i,addr_buf); - } else - OutChar(addr_dst,ch,addr_buf); - } else if (ch=='$$' && ch1=='$$') { - OutChar(addr_dst,ch,addr_buf); - ptr++; - } else - OutChar(addr_dst,ch,addr_buf); - } - break; - case 'z': - if (cur_param+1>=argc) - throw(EXCEPT_SPRINTF,1); - ptr=PointAtListEntry(argv[cur_param],argv[cur_param+1]); - cur_param=cur_param+2; - OutStr(ptr,addr_buf,addr_dst,len,left_justify,truncate); - break; - case 'Z': - if (cur_param+1>=argc) - throw(EXCEPT_SPRINTF,1); - ptr=SysTextSub(argv[cur_param],argv[cur_param+1]); - cur_param=cur_param+2; - OutStr(ptr,addr_buf,addr_dst,len,left_justify,truncate); - break; - case 'c': - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - OutChar(addr_dst,argv[cur_param++],addr_buf); - break; - case 'C': - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - OutChar(addr_dst,ToUpper(argv[cur_param++]),addr_buf); - break; - case 'D': - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - temp1=MSPrintFDate(argv[cur_param++],sub_format); - OutStr(temp1,addr_buf,addr_dst,len,left_justify,truncate); - Free(temp1); - break; - case 'T': - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - temp1=MSPrintFTime(argv[cur_param++],sub_format); - OutStr(temp1,addr_buf,addr_dst,len,left_justify,truncate); - Free(temp1); - break; - case 'P': - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - if (truncate) - SPrintFPSect(temp_buf,argv[cur_param++],len); - else - SPrintFPSect(temp_buf,argv[cur_param++],0); - OutStr(temp_buf,addr_buf,addr_dst,len,left_justify,truncate); - break; - case 'd': - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - i=argv[cur_param++]; - if (i<0) { - neg=TRUE; - i=-i; - } - while ((!k || i) && k0) { - if (truncate && k+i>len) - k=len-i; - } else - len=0; - if (k<0) - k=0; - if (pad_zero) - for (;i=0;i--) - OutChar(addr_dst,temp_buf[i],addr_buf); - break; - case 'u': - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - d=argv[cur_param++]; - while ((!k|| d) && k=argc) - throw(EXCEPT_SPRINTF,1); - dd=argv[cur_param++]><(double); - if (dd<0) { - neg=TRUE; - dd=-dd; - } -out_f: - if (i=dec_len) - dd*=Pow10(i); - dd=Round(dd); - while (i-- && k=argc) - throw(EXCEPT_SPRINTF,1); - dd=argv[cur_param++]><(double); - if (dd<0) { - neg=TRUE; - dd=-dd; - } - if (dd) - dd1=Floor(Log10(dd)); - else - dd1=0; -out_e: - dd/=Pow10(dd1); - if (dd1<0) { - dd1=-dd1; - neg_e=TRUE; - } else - neg_e=FALSE; - if (dd) { - if (dd<1.0) { - dd*=10; - if (neg_e) - dd1+=1; - else - dd1-=1; - } else if (dd>=10.0) { - dd/=10; - if (neg_e) - dd1-=1; - else - dd1+=1; - } - } - i=3; - do { - temp_buf[k++]=dd1%10+'0'; - dd1=Floor(dd1/10); - } while (dd1 && i--); - if (neg_e) - temp_buf[k++]='-'; - temp_buf[k++]='e'; - dec_len=len-k-neg-2; - goto out_f; - case 'g': - if (!len) len=12; - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - dd=argv[cur_param++]><(double); - if (dd<0) { - neg=TRUE; - dd=-dd; - } - if (dd) - dd1=Floor(Log10(dd)); - else - dd1=0; - if (dd1>=(len-1-dec_len) || dd1<-(dec_len-1)) - goto out_e; - else - goto out_f; - case 'n': - if (!len) len=12; - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - dd=argv[cur_param++]><(double); - if (dd<0) { - neg=TRUE; - dd=-dd; - } - if (dd) - dd1=3.0*Floor(Log10(dd)/3); - else - dd1=0; -out_n: - dd/=Pow10(dd1); - if (dd1<0) { - dd1=-dd1; - neg_e=TRUE; - } else - neg_e=FALSE; - if (dd) { - if (dd<1.0) { - dd*=1000; - if (neg_e) - dd1+=3; - else - dd1-=3; - } else if (dd>=1000.0) { - dd/=1000; - if (neg_e) - dd1-=3; - else - dd1+=3; - } - } - i=3; - do { - temp_buf[k++]=dd1%10+'0'; - dd1=Floor(dd1/10); - } while (dd1 && i--); - if (neg_e) - temp_buf[k++]='-'; - temp_buf[k++]='e'; - dec_len=len-k-neg-2; - goto out_f; - case 'X': - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - d=argv[cur_param++]; - while ((!k || d) && k'9') temp_buf[k]+='A'-0x3A; - k++; - d>>=4; - } - goto out_num; - case 'x': - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - d=argv[cur_param++]; - while ((!k || d) && k'9') temp_buf[k]+='a'-0x3A; - k++; - d>>=4; - } - goto out_num; - case 'b': - if (cur_param>=argc) - throw(EXCEPT_SPRINTF,1); - d=argv[cur_param++]; - while ((!k || d) && k>=1; - } - goto out_num; - case '%': - OutChar(addr_dst,'%',addr_buf); - break; - } - } else - OutChar(addr_dst,ch,addr_buf); - } - OutChar(addr_dst,0,addr_buf); - return buf; -} - -double A2Double(I1 *src,I1 **end_ptr=NULL) -//ASCII string to double -{ - I1 ch=*src++; - I8 i=0,j=0,k=0; - double d; - BoolU4 neg=FALSE; - - while (ch==CH_SPACE||ch==CH_TAB||ch==CH_SHIFT_SPACE) - ch=*src++; - if (ch=='-') { - neg=TRUE; - ch=*src++; - } - while (TRUE) { - if (Bt(dec_numeric_bitmap,ch)) - i=i*10+ch-'0'; - else { - if (ch=='.' || ch=='e' || ch=='E') break; - d=i; - goto a2d_end; - } - ch=*src++; - } - if (ch=='.') - ch=*src++; - while (TRUE) { - if (Bt(dec_numeric_bitmap,ch)) { - j=j*10+ch-'0'; - k++; - } else { - d=i+j*Pow10(-k); - if (ch=='e' || ch=='E') break; - goto a2d_end; - } - ch=*src++; - } - ch=*src++; - k=1; - if (ch=='-') { - k=-1; - ch=*src++; - } - j=0; - while (TRUE) { - if (Bt(dec_numeric_bitmap,ch)) - j=j*10+ch-'0'; - else { - d*=Pow10(j*k); - goto a2d_end; - } - ch=*src++; - } -a2d_end: - if (end_ptr) *end_ptr=src-1; - return (neg) ? -d:d; -} - -/* -$FG,2$A2LTDate() - This routine recognizes the following formats: - 1) "$FG,4$*+nnnn$FG,2$" "$FG,4$*-nnnnn$FG,2$" - 2) $FG,4$mm/dd$FG,2$ - 3) $FG,4$mm/dd/yy$FG,2$ - -It also supports some functions - $FG,4$SM()$FG,2$ start of month - $FG,4$EM()$FG,2$ end of month - $FG,4$SM()$FG,2$ start of year - $FG,4$EY()$FG,2$ end of year -Full expressions are not implimented -but you can do stuff like $FG,4$SM(*-7)+3$FG,2$ -and it will return the 3rd day after -the start of month for seven days before -today. - -$FG$*/ -LTDate A2LTDate(I1 *src2) -//ASCII date to LTDate -{ - LTDate result=0; - LTDateStruct d,d1; - I1 *src=MStrUtil(src2,SU_REMOVE_SPACES|SU_TO_UPPER), - *v=NewStr(src), - *p1=src; - BoolU4 start_month=FALSE,end_month=FALSE; - BoolU4 start_year=FALSE,end_year=FALSE; - - MemSet(&d,0,sizeof(LTDateStruct)); - MemSet(&d1,0,sizeof(LTDateStruct)); - if (!StrNCmp(p1,"SM(",3)) { - p1+=3; - start_month=TRUE; - } else if (!StrNCmp(p1,"EM(",3)) { - p1+=3; - end_month=TRUE; - } else if (!StrNCmp(p1,"SY(",3)) { - p1+=3; - start_year=TRUE; - } else if (!StrNCmp(p1,"EY(",3)) { - p1+=3; - end_year=TRUE; - } - if (*p1=='*') { - p1++; - if (*p1=='+' || *p1=='-') - result.date=AtoI(p1,10,&p1); - result+=GetCurTimeLTDate+local_time_offset; - } else { - RemoveFirstSeg(p1,"/",v); //Put month into v - d.month=AtoI(v); - if (Occurrences(p1,'/')) { - RemoveFirstSeg(p1,"/",v); //Put day into v leaving year in p1 - d.day_of_month=AtoI(v); - d.year=AtoI(p1,10,&p1); - if (d.year<100) //if not 4 digit year - d.year+=2000; - } else { - d.day_of_month=AtoI(p1,10,&p1); - ToLTDateStruct(&d1,GetCurTimeLTDate+local_time_offset); - d.year=d1.year; - } - result=ToLTDate(&d); - } - if (*p1==')') p1++; - - if (start_month) - result.date=FirstDayOfMonth(result.date); - else if (end_month) - result.date=LastDayOfMonth(result.date); - else if (start_year) - result.date=FirstDayOfYear(result.date); - else if (end_year) - result.date=LastDayOfYear(result.date); - - if (*p1=='+' || *p1=='-') - result.date+=AtoI(p1); - Free(src); - Free(v); - return result-local_time_offset; -} - -void GetFJoin2(I1 *src,I1 *fmt,I8i argc,I8i *argv) -//Pass pointer to data, -//For %s pass pointer to pointer (be careful because address -// of array is the same as array--create ptr to array and take address -{ - I1 ch,*buf,*ptr,**pptr; - BoolU4 left_justify=FALSE; - I8 cur_param=0,i,j,k,len,*i_ptr,sub_format=0,dec_len; - double *d_ptr; - if (!fmt) - throw(EXCEPT_GETF,0); - while (ch = *(fmt++)) { - if (ch=='%') { - if (*fmt=='%') { - src++; - fmt++; - } else { - if (*fmt=='-') { - left_justify=TRUE; - fmt++; - } else - left_justify=FALSE; - len=0; - while (*fmt>='0' && *fmt<='9') - len=len*10+ (*(fmt++)-'0'); - if (*fmt=='*') { - fmt++; - if (cur_param>=argc) - throw(EXCEPT_GETF,1); - len=argv[cur_param++]; - } - ch=*(fmt++); - if (ch && !len) { - ptr=src; - while (*ptr && *ptr!=*fmt) - ptr++; - len=ptr-src; - } else { - if (ch=='.') { - dec_len=0; - while (*fmt>='0' && *fmt<='9') - dec_len=dec_len*10+ (*(fmt++)-'0'); - if (*fmt=='*') { - fmt++; - if (cur_param>=argc) - throw(EXCEPT_GETF,1); - dec_len=argv[cur_param++]; - } - ch=*(fmt++); - } - } - buf=MAlloc(len+1); - for (i=0;i=argc) - throw(EXCEPT_GETF,1); - pptr=argv[cur_param++]; - StrCpy(*pptr,buf); - break; - case 'c': - if (cur_param>=argc) - throw(EXCEPT_GETF,1); - ptr=argv[cur_param++]; - *ptr=*buf; - break; - case 'C': - if (cur_param>=argc) - throw(EXCEPT_GETF,1); - ptr=argv[cur_param++]; - *ptr=ToUpper(*buf); - break; - case 'z': - if (cur_param+1>=argc) - throw(EXCEPT_GETF,1); - i_ptr=argv[cur_param++]; - *i_ptr=MatchListEntry(buf,argv[cur_param++]); - break; - case 'Z': - if (cur_param+1>=argc) - throw(EXCEPT_GETF,1); - i_ptr=argv[cur_param++]; - *i_ptr=MatchSysTextEntry(buf,argv[cur_param++]); - break; - case 'd': - if (cur_param>=argc) - throw(EXCEPT_GETF,1); - i_ptr=argv[cur_param++]; - *i_ptr=0; - for (k=0;k=argc) - throw(EXCEPT_GETF,1); - i_ptr=argv[cur_param++]; - *i_ptr=0; - for (k=0;k9) j=j-'A'+('9'+1); - *i_ptr=(*i_ptr<<4)+j; - } - break; - case 'b': - if (cur_param>=argc) - throw(EXCEPT_GETF,1); - i_ptr=argv[cur_param++]; - *i_ptr=0; - for (k=0;k=argc) - throw(EXCEPT_GETF,1); - d_ptr=argv[cur_param++]; - *d_ptr=A2Double(buf); - break; - case 'D': - if (cur_param>=argc) - throw(EXCEPT_GETF,1); - i_ptr=argv[cur_param++]; - *i_ptr=A2LTDate(buf); - break; - } - Free(buf); - } - } else - src++; - } -} diff --git a/LT/Compiler/StmtParser.CPZ b/LT/Compiler/StmtParser.CPZ deleted file mode 100644 index 9a956bb..0000000 --- a/LT/Compiler/StmtParser.CPZ +++ /dev/null @@ -1,1453 +0,0 @@ -I8 CmpKeyWord(LexStruct *lx) -{ - I8 result=-1; - SysHashEntry *temph; - if (lx->token==TK_IDENT) - if (temph=lx->hash_entry) - if (temph->type == HTT_KEYWORD) - result=temph->user_data0; - return result; -} - -#define PVLM_LOCAL_VAR 0 -#define PVLM_FUNCTION_PARAM 1 -#define PVLM_CLASS 2 -#define PVLM_UNION 3 -void CmpParseVarList(LexStruct *lx,ClassStruct *tempc, - I8 mode,U8 union_base=MAX_I4) -{ - I8 i,j,k,old_flags; - U8 ptr_cnt,size; - ClassStruct *tempc1,*tempc2; - SysHashEntry *temph; - MemberListStruct *tempm; - ArrayDimStruct *tempad,*tempad1; - U1 *e; - if (mode!=PVLM_LOCAL_VAR || union_base!=MAX_I4) { - if (lx->token=='(' || lx->token=='{') - Lex(lx); - } - while (TRUE) { - while (lx->token==';') Lex(lx); - if (lx->token==')' || lx->token=='}') { - Lex(lx); - return; - } - if (lx->token=='.') { - if (Lex(lx)=='.') { - if (Lex(lx)=='.') { - Lex(lx); - tempm=MAllocZ(sizeof(MemberListStruct)); - tempm->register=-1; - tempm->flags=MLF_DOT_DOT_DOT; - tempm->member_class=sys_internal_types[IT_U8]; - tempm->str=NewStr("argc"); - tempc2=tempc->last_in_member_list; - tempc2->next=tempm; - tempc->last_in_member_list=tempm; - tempm->offset=tempc->size; - tempc->size+=8; - - tempm=MAllocZ(sizeof(MemberListStruct)); - tempm->register=-1; - tempm->flags=MLF_DOT_DOT_DOT; - tempm->member_class=sys_internal_types[IT_I8]; - tempm->str=NewStr("argv"); - tempm->cnt=127; //nonzero - tempc2=tempc->last_in_member_list; - tempc2->next=tempm; - tempc->last_in_member_list=tempm; - tempm->offset=tempc->size; - tempc->size+=8; - - if (lx->token==')' || lx->token=='}') - Lex(lx); - return; - } else - PrsExcept(lx,"ST_EXPECTING_TYPE"); - } else - PrsExcept(lx,"ST_EXPECTING_TYPE"); - } - temph=NULL; - if (lx->token==TK_IDENT) { - temph=lx->hash_entry; - k=CmpKeyWord(lx); - } - if (!temph) - PrsExcept(lx,"ST_EXPECTING_TYPE"); - if (k==KW_UNION) { - Lex(lx); - CmpParseVarList(lx,tempc,mode,tempc->size); - } else { - tempc1=temph; - if (!(tempc1->type & (HTT_CLASS | HTT_INTERNAL_TYPE))) - PrsExcept(lx,"ST_EXPECTING_TYPE"); - do { - LexPush(lx); - Lex(lx); //skip type - ptr_cnt=0; - tempm=MAllocZ(sizeof(MemberListStruct)); - tempm->register=-1; - if (mode==PVLM_FUNCTION_PARAM || mode==PVLM_LOCAL_VAR) { - k=CmpKeyWord(lx); - if (k==KW_REG) { - tempm->flags|=MLF_USE_REG_VARIABLE; - lx->stack_ptr--; //grows up - LexPush(lx); - Lex(lx); - } else if (k==KW_NOREG) { - tempm->flags|=MLF_NO_REG_VARIABLE; - lx->stack_ptr--; //grows up - LexPush(lx); - Lex(lx); - } - } - while (lx->token=='*') { - lx->stack_ptr--; //grows up - LexPush(lx); - Lex(lx); - ptr_cnt++; - } - if (lx->token!=TK_IDENT) - PrsExcept(lx,"ST_EXPECTING_IDENTIFIER"); - tempm->member_class=tempc1; - tempm->str=lx->ident; - lx->ident=NULL; - tempc2=tempc->last_in_member_list; - tempc2->next=tempm; - tempc->last_in_member_list=tempm; - tempc->member_cnt++; - - if (Lex(lx)=='(') { - tempm->flags|=MLF_FUNCTION; - if (Lex(lx)!=')') { - tempm->parameter_cnt++; - while (lx->token!=')') { - if (lx->token==',') - tempm->parameter_cnt++; - Lex(lx); - } - } - Lex(lx); //skip ) - } - - i=1; - while (lx->token=='[') { - if (Lex(lx)==']) - ptr_cnt++; - else { - j=Expression(lx); - tempad1=&tempm->dim_list; - while (tempad1->next) { - tempad1->next->cnt*=j; - tempad1=tempad1->next; - } - tempad=MAlloc(sizeof(ArrayDimStruct)); - tempad1->next=tempad; - tempad->next=NULL; - tempad->cnt=1; - tempm->cnt= i*=j; - } - if (lx->token!=']') - PrsExcept(lx,"ST_MISSING_RIGHT_BRACKET"); - Lex(lx); - } - tempm->member_class+=ptr_cnt*sizeof(ClassStruct); - if (tempm->flags & MLF_FUNCTION) { - tempm->return_class=tempm->member_class; - tempm->member_class=sys_internal_types[IT_PTR]+sizeof(ClassStruct); - } - tempc2=tempm->member_class; - i=tempc2->size; - j=(tempm->cnt)? tempm->cnt:1; - i*=j; - if (mode==PVLM_LOCAL_VAR) { - if (union_base!=MAX_I4) { - if (union_base-tempc->sizesize; - else - i=0; - } - if (i>=8) - tempc->size=(tempc->size-i)&~7; - else if (i>=4) - tempc->size=(tempc->size-i)&~3; - else if (i>=2) - tempc->size=(tempc->size-i)&~1; - else - tempc->size-=i; - tempm->offset=tempc->size; - if (lx->token=='=') { - LexPop(lx); - Lex(lx); - if (!PrsParseExpression(lx,TRUE)) - throw(EXCEPT_COMPILER,7); - } else - lx->stack_ptr--; - } else if (mode==PVLM_FUNCTION_PARAM) { - if (union_base!=MAX_I4) { - tempm->offset=union_base; - if (tempc->size-union_base<8) - tempc->size=8+union_base; - } else { - tempm->offset=tempc->size; - tempc->size+=8; - } - if (lx->token=='=') { - Lex(lx); - old_flags=lx->flags; - lx->flags&=~LF_HAS_MISC_DATA; - e=CompileExpression(lx); - if (!e) - throw(EXCEPT_COMPILER,8); - tempm->default_value=Call(e); //TODO: if lx->a - if (!(lx->flags & LF_HAS_MISC_DATA)) - DelExpression(e); - else if (lx->a) - PrsExcept(lx,"ST_STR_DEFAULT"); - tempm->flags|=MLF_DEFAULT_AVAILABLE; - lx->flags|=old_flags&LF_HAS_MISC_DATA; - } - lx->stack_ptr--; - } else { //CLASS - if (union_base!=MAX_I4) { - tempm->offset=union_base; - if (tempc->size-union_basesize=i+union_base; - } else { - tempm->offset=tempc->size; - tempc->size+=i; - } - do { - temph=NULL; - k=CmpKeyWord(lx); - if (k==KW_FMTSTR) { - if (Lex(lx)!=TK_STR) - PrsExcept(lx,"ST_EXPECTING_STR"); - tempm->fmtstr=LexExtendStr(lx,&size); - } else if (k==KW_FMTDATA) { - if (Lex(lx)!=TK_STR) - PrsExcept(lx,"ST_EXPECTING_STR"); - tempm->fmtdata=LexExtendStr(lx,&size); - } - } while (k==KW_FMTSTR || k==KW_FMTDATA); - lx->stack_ptr--; - } - - if (lx->token==',') { - if (mode==PVLM_FUNCTION_PARAM && union_base==MAX_I4) { - Lex(lx); - break; - } - } else if (lx->token==')' || lx->token=='}') { - Lex(lx); - return; - } else if (lx->token==';') { - Lex(lx); - if (mode==PVLM_LOCAL_VAR && union_base==MAX_I4) - return; - break; - } else - PrsExcept(lx,"ST_MISSING_SEMICOLON"); - } while (TRUE); - } - } -} - -void UndefinedExtern() -{ - PutSysTextErr("ST_UNDEFINED_EXTERN"); - throw(EXCEPT_UNDEF_EXTERN); -} - -void UnusedExternWarning(LexStruct *lx,ClassStruct *tempc) -{ - PrintFWarn("%S '%s'\r\n","ST_UNUSED_EXTERN",tempc->str); - lx->warning_cnt++; -} - -ClassStruct *CmpParseClass(LexStruct *lx,BoolU4 is_union,BoolU4 is_public,BoolU4 is_extern) -{ - ClassStruct *tempc; - SysHashTable *tempht; - AsmCtrlStruct *a=lx->a; - if (lx->token!=TK_IDENT) - PrsExcept(lx,"ST_EXPECTING_IDENTIFIER"); - if (is_extern) { - if (a) - tempht=a->glbl_hash; - else - tempht=lx->hash_table_list; - tempc=CmpClassNew; - tempc->str=lx->ident; - lx->ident=NULL; - AddSysHashEntry(tempc,tempht); - Bts(&tempc->flags,Cf_EXTERN); - SetSourceFileInfo(lx,tempc); - Lex(lx); - } else { - if (a) { - if (tempc=FindHashEntry(lx->ident,a->glbl_hash,HTT_CLASS)) { - if (!Bt(&tempc->flags,Cf_EXTERN)) - tempc=NULL; - else if (tempc->use_cnt<3) - UnusedExternWarning(lx,tempc); - } - tempht=a->glbl_hash; - } else { - tempht=lx->hash_table_list->next; - lx->hash_table_list->next=NULL; - if (tempc=FindHashEntry(lx->ident,lx->hash_table_list,HTT_CLASS)) { - if (!Bt(&tempc->flags,Cf_EXTERN)) - tempc=NULL; - else if (tempc->use_cnt<3) { - lx->hash_table_list->next=tempht; - UnusedExternWarning(lx,tempc); - } - } - lx->hash_table_list->next=tempht; - tempht=lx->hash_table_list; - } - if (!tempc) { - tempc=CmpClassNew; - tempc->str=lx->ident; - lx->ident=NULL; - AddSysHashEntry(tempc,tempht); - } else { - Free(tempc->source_link); - Free(tempc->index); - } - Btr(&tempc->flags,Cf_EXTERN); - if (is_public) - tempc->type|=HTT_PUBLIC; - SetSourceFileInfo(lx,tempc); - tempc->use_cnt=0; - Lex(lx); - CmpParseVarList(lx,tempc,PVLM_CLASS,(is_union)?0:MAX_I4); - } - return tempc; -} - -ClassStruct *CmpParseFunctionJoin(LexStruct *lx, - ClassStruct *temp_return,I1 *name,BoolU4 is_public,BoolU4 indirect) -{ - MemberListStruct *tempm; - AsmCtrlStruct *a=lx->a; - SysHashTable *tempht; - ClassStruct *tempc; - if (a) { - if (tempc=FindHashEntry(name,a->glbl_hash,HTT_FUNCTION)) { - if (tempc->type & HTT_IMPORT) - tempc=NULL; - else - if (tempc->use_cnt<3) - UnusedExternWarning(lx,tempc); - } - tempht=a->glbl_hash; - } else { - tempht=lx->hash_table_list->next; - lx->hash_table_list->next=NULL; - if (tempc=FindHashEntry(name,lx->hash_table_list,HTT_FUNCTION)) { - if (!Bt(&tempc->flags,Cf_EXTERN)) - tempc=NULL; - else if (tempc->use_cnt<3) { - lx->hash_table_list->next=tempht; - UnusedExternWarning(lx,tempc); - } - } - lx->hash_table_list->next=tempht; - tempht=lx->hash_table_list; - } - if (!tempc) { - tempc=CmpClassNew; - tempc->used_reg_mask=CALWAYS_TRASHED_MASK+CSTK_TEMPS_MASK; - tempc->trashed_reg_mask=CALWAYS_TRASHED_MASK+CSTK_TEMPS_MASK; - tempc->type=HTT_FUNCTION; - tempc->str=name; - if (a) { - tempc->executable_address=a->ip; - if (indirect) - AsmStoreCodeU8(lx,0); - } else - tempc->executable_address=&UndefinedExtern; - Bts(&tempc->flags,Cf_EXTERN); - AddSysHashEntry(tempc,tempht); - } else { - tempc->used_reg_mask=CALWAYS_TRASHED_MASK+CSTK_TEMPS_MASK; - Free(tempc->source_link); - Free(tempc->index); - Free(name); - DelMemberList(tempc); - } - if (is_public) - tempc->type|=HTT_PUBLIC; - else - tempc->type&=~HTT_PUBLIC; - tempc->return_class=temp_return; - tempc->use_cnt=0; - SetSourceFileInfo(lx,tempc); - CmpParseVarList(lx,tempc,PVLM_FUNCTION_PARAM); - tempc->parameter_cnt=tempc->member_cnt; - tempm=tempc->member_list; - while (tempm) { - tempm->offset+=16; //RBP+RETURN - tempm=tempm->next; - } - - tempc->size=0; - return tempc; -} - -void CmpParseFunction(LexStruct *lx, - ClassStruct *temp_return,I1 *name,BoolU4 is_public) -{ - U8 *result; - AsmCtrlStruct *a=lx->a; - ClassStruct *tempc; - MemberListStruct *tempm; - CbMiscStruct *saved_leave_label; - U8 i,j,size; - DbgInfo *dbg=NULL; - lx->flags&=~LF_NO_REG_OPT; - tempc=CmpParseFunctionJoin(lx,temp_return,name,is_public,FALSE); - lx->local_var_list=tempc; - CbPush(lx); - Btr(&lx->flags,LFf_OPT_TRACE_PRESENT); - CbInitOutPtrs(&lx->cb); - CbAddIc(lx,EC_ENTER,0,0); - saved_leave_label=lx->leave_label; - lx->leave_label=CbMiscNew(lx,CBMT_LABEL); - CmpParseStatement(lx,tempc,0,NULL,NULL,FALSE); - CbAddIc(lx,EC_LABEL,lx->leave_label,0); - lx->leave_label=saved_leave_label; - CbAddIc(lx,EC_LEAVE,0,tempc->return_class); - CbAddIc(lx,EC_NULL,0,0); - tempc->size&=~7; - if (a) { - tempc->executable_address=a->ip; - tempc->type|=HTT_EXPORT; - result=CbCompile(lx,tempc,&size,&dbg); - tempc->debug=dbg; - if (result) { - j=(size+7)>>3; - for (i=0;iip&7) - AsmStoreCodeU1(lx,OC_NOP); - Free(result); - } - } else { - tempc->executable_address=CbCompile(lx,tempc,&size,&dbg); - tempc->debug=dbg; - } - Btr(&tempc->flags,Cf_EXTERN); - CbPop(lx); - lx->local_var_list=NULL; - tempm=tempc->member_list; - while (tempm) { - if (!tempm->use_cnt && !(tempm->flags & MLF_NO_UNUSED_WARN)) { - PrintFWarn("%S\r\n $$LK-A,\"FL:%s,%d\"$$ '","ST_UNUSED_VAR", - lx->cur_lfn->name,lx->cur_lfn->line_num); - coutln tempm->str,"' in '",tempc->str,"'"; - } - tempm=tempm->next; - } -} - - -BoolU8 PrsVarInit(LexStruct *lx,U1 **dd,ClassStruct *tempc,U8 cnt,GlblVarStruct *tempg) -{ - U1 *d=*dd,*e; - U8 i,j,r,old_flags,type; - BoolU4 result=FALSE,stop; - MemberListStruct *tempm; - IntermediateCode *tempi; - - while (tempc->return_class) - tempc=tempc->return_class; - if (tempm=tempc->member_list) { - if (lx->token!='{') - PrsExcept(lx,"ST_EXPECTING_LEFT_BRACE"); - lx->stack_ptr--; //grows up - LexPush(lx); - Lex(lx); - - while (tempm) { - if (tempm->cnt && lx->token=='{') { - lx->stack_ptr--; //grows up - LexPush(lx); - Lex(lx); - } - j=(tempm->cnt) ? tempm->cnt:1; - stop=FALSE; - for (i=0;imember_class,tempm->cnt,tempg); - LexPush(lx); - if (lx->token==',') - Lex(lx); - } - if (tempm->cnt && lx->token=='}') - Lex(lx); - tempm=tempm->next; - } - lx->stack_ptr--; //grows up - if (lx->token!='}') - PrsExcept(lx,"ST_MISSING_RIGHT_BRACE"); - Lex(lx); - } else { - if (tempc->type & HTT_INTERNAL_TYPE && - !tempc->ptr_cnt && cnt && - (tempc->sub_type==IT_I1 || tempc->sub_type==IT_U1) && - lx->token==TK_STR) { - lx->stack_ptr--; //grows up - e=LexExtendStr(lx,&i); - MemCpy(d,e,i); - d+=cnt; - result=TRUE; - } else { - old_flags=lx->flags; - lx->flags&=~(LF_HAS_MISC_DATA|LF_NOT_CONSTANT); - e=CompileExpression(lx,&type); - if (lx->a && lx->flags&LF_NOT_CONSTANT) { - DelExpression(e); - MemSet(d,0,tempc->size); - LexPop(lx); - Lex(lx); - CbAddIc(lx,EC_ABSOLUTE_ADDRESS,tempg->data_address,tempc+sizeof(ClassStruct)); - CbAddIc(lx,EC_IMM,d-&tempg->data,tempc+sizeof(ClassStruct)); - CbAddIc(lx,EC_ADD,0,tempc+sizeof(ClassStruct)); - if (!PrsParseExpression(lx,TRUE)) - throw(EXCEPT_COMPILER,10); - tempi=lx->cb.cb_last_out_ptr; - if (tempi->ic_opcode==EC_END_EXP) - tempi->ic_opcode=EC_NOP; - CbAddIc(lx,EC_ASSIGN,0,tempc); - CbAddIc(lx,EC_END_EXP,0,tempc); - } else { - lx->stack_ptr--; //grows up - if (!e) - throw(EXCEPT_COMPILER,10); - r=Call(e); - if (!(lx->flags & LF_HAS_MISC_DATA)) - DelExpression(e); - - if (type==IT_DOUBLE && - tempc->sub_type!=IT_DOUBLE) - r=r><(double); - else if (type!=IT_DOUBLE && - tempc->sub_type==IT_DOUBLE) - r><(double)=r; - - MemCpy(d,&r,tempc->size); - } - d+=tempc->size; - lx->flags|=old_flags&LF_HAS_MISC_DATA; - } - } - *dd=d; - return result; -} - -void PrsParseGlblInit(LexStruct *lx,GlblVarStruct *tempg) -{ - U1 *dd=&tempg->data; - U8 i,j; - ClassStruct *tempc=tempg->var_class; - BoolU4 stop=FALSE; - while (tempc->return_class) - tempc=tempc->return_class; - if (tempg->cnt && lx->token=='{') { - lx->stack_ptr--; //grows up - LexPush(lx); - Lex(lx); - } - j=(tempg->cnt) ? tempg->cnt:1; - for (i=0;icnt,tempg); - LexPush(lx); - if (j>1 && lx->token==',') - Lex(lx); - } - if (tempg->cnt && lx->token=='}') - Lex(lx); -} - -#define PG_NULL 0 -#define PG_LTEXTERN 1 -#define PG_LTINTERN 2 -#define PG_LTIMPORT 3 -#define PG_EXTERN 4 -#define PG_IMPORT 5 - -void CmpParseGlblVarList(LexStruct *lx,I8 saved_mode,ClassStruct *saved_tempc, - U8 saved_val,BoolU4 is_public) -{ - I8 i,j,mode; - U8 k,val; - I1 *st; - SysHashEntry *temph; - GlblVarStruct *tempg,*tempg1; - AsmCtrlStruct *a=lx->a; - ClassStruct *tempc,*tempc1; - ArrayDimStruct *tempad,*tempad1,*tempad2; - U1 *u1; - while (TRUE) { - Lex(lx); - tempc=saved_tempc; - val=saved_val; - mode=saved_mode; - while (lx->token=='*') { - Lex(lx); - tempc+=sizeof(ClassStruct); - } - if (lx->token!=TK_IDENT) - PrsExcept(lx,"ST_EXPECTING_IDENTIFIER"); - if ((temph=lx->hash_entry) && mode==PG_EXTERN && !a) { - if (temph->type & HTT_SYS_SYMBOL) { - val=temph->user_data0; - mode=PG_LTEXTERN; - } - } - if (CmpKeyWord(lx)==KW_UNION) { - Lex(lx); - tempc1=CmpParseClass(lx,TRUE,is_public,mode==PG_EXTERN); - tempc1->return_class=tempc; - return; - } else if (CmpKeyWord(lx)==KW_CLASS) { - Lex(lx); - tempc1=CmpParseClass(lx,FALSE,is_public,mode==PG_EXTERN); - tempc1->return_class=tempc; - return; - } - st=lx->ident; - lx->ident=NULL; - if (Lex(lx)=='(') { - if (mode==PG_LTINTERN) { - tempc1=CmpParseFunctionJoin(lx,tempc,st,is_public,FALSE); - tempc1->executable_address=val; - Bts(&tempc1->flags,Cf_INTERNAL); - Btr(&tempc1->flags,Cf_EXTERN); - return; - } else if (mode==PG_LTEXTERN) { - tempc1=CmpParseFunctionJoin(lx,tempc,st,is_public,FALSE); - tempc1->executable_address=val; - Btr(&tempc1->flags,Cf_EXTERN); - return; - } else if (mode==PG_EXTERN) { - CmpParseFunctionJoin(lx,tempc,st,is_public,FALSE); - return; - } else if (mode==PG_IMPORT || mode==PG_LTIMPORT) { - if (!a) - PrsExcept(lx,"ST_IMPORT_NOT_NEEDED"); - else { - tempc1=CmpParseFunctionJoin(lx,tempc,st,is_public,TRUE); - tempc1->type|=HTT_IMPORT; - if (mode==PG_LTIMPORT) - tempc1->import_name=NewStr(val); - else - tempc1->import_name=NewStr(st); - } - return; - } else { - CmpParseFunction(lx,tempc,st,is_public); - return; - } - } - i=0; - j=1; - tempad2=NULL; - while (lx->token=='[') { - if (Lex(lx)==']') - tempc+=sizeof(ClassStruct); - else { - j=Expression(lx); - tempad1=&tempad2; - while (tempad1->next) { - tempad1->next->cnt*=j; - tempad1=tempad1->next; - } - tempad=MAlloc(sizeof(ArrayDimStruct)); - tempad1->next=tempad; - tempad->next=NULL; - tempad->cnt=1; - if (!i) i=1; - i*=j; - } - if (lx->token!=']') - PrsExcept(lx,"ST_MISSING_RIGHT_BRACKET"); - Lex(lx); - } - j=tempc->size; - if (i) j*=i; - if (mode==PG_LTEXTERN) { - tempg=MAllocZ(sizeof(GlblVarStruct)-8); - tempg->data_address=val; - if (a) - tempg->type=HTT_GLBL_VAR | HTT_EXPORT; - else - tempg->type=HTT_GLBL_VAR; - } else if (mode==PG_LTIMPORT || mode==PG_IMPORT) { - if (!a) - PrsExcept(lx,"ST_IMPORT_NOT_NEEDED"); - else { - tempg=MAllocZ(sizeof(GlblVarStruct)-8); - tempg->type=HTT_GLBL_VAR | HTT_IMPORT; - if (mode==PG_LTIMPORT) - tempg->import_name=NewStr(val); - else - tempg->import_name=NewStr(st); - tempg->data_address=a->ip; - AsmStoreCodeU8(lx,0); - } - } else if (mode==PG_EXTERN) { - tempg=MAllocZ(sizeof(GlblVarStruct)-8); - tempg->data_address=0; - if (a) - tempg->type=HTT_GLBL_VAR; - else - tempg->type=HTT_GLBL_VAR|HTT_UNRESOLVED_GLBL; - } else { - if (a) { - if (lx->token=='=') - tempg=MAllocZ(j+sizeof(GlblVarStruct)-8); - else - tempg=MAllocZ(sizeof(GlblVarStruct)-8); - tempg->data_address=a->ip; - tempg->type=HTT_GLBL_VAR | HTT_EXPORT; - if (temph && (temph->type & HTT_GLBL_VAR)) { - tempg1=temph; - tempg1->data_address=a->ip; - } - for (k=0;kdata_address=&tempg->data; - tempg->type=HTT_GLBL_VAR; - if (temph && temph->type&HTT_GLBL_VAR && - temph->type&HTT_UNRESOLVED_GLBL) { - tempg1=temph; //TODO: do not resolve extern variables in parent tasks - tempg1->data_address=&tempg->data; - } - } - } - tempg->dim_list=tempad2; - if (is_public) - tempg->type|=HTT_PUBLIC; - tempg->flags=0; - tempg->parameter_cnt=0; - tempg->var_class=tempc; - tempg->str=st; - tempg->size=j; - tempg->cnt=i; - tempg->use_cnt=0; - SetSourceFileInfo(lx,tempg); - if (mode==PG_IMPORT || mode==PG_LTIMPORT) - tempg->flags|=GVAF_IMPORT; - if (mode==PG_EXTERN) - tempg->flags|=GVAF_EXTERN; - if (a) - AddSysHashEntry(tempg,a->glbl_hash); - else - AddSysHashEntry(tempg,lx->hash_table_list); - if (lx->token=='=') { - LexPush(lx); - Lex(lx); - PrsParseGlblInit(lx,tempg); - if (a) { - u1=&tempg->data; - for (k=0;ksize;k++) - AsmStoreCodeU1At(lx,u1[k],tempg->data_address+k); - } - lx->stack_ptr--; //grows up - } - if (lx->token!=',') { - if (lx->token!=';') - PrsExcept(lx,"ST_MISSING_SEMICOLON"); - Lex(lx); - return; - } - } -} - -void CmpParseIf(LexStruct *lx,ClassStruct *locals,I8 try_count, - CbMiscStruct *break_label,CbMiscStruct *continue_label) -{ - CbMiscStruct *templ,*templ1; - I8 k; - - if (lx->token!='(') - PrsExcept(lx,"ST_EXPECTING_LEFT_PAREN"); - Lex(lx); - if (!PrsParseExpression(lx,FALSE)) - throw(EXCEPT_COMPILER,11); - if (lx->token!=')') - PrsExcept(lx,"ST_MISSING_RIGHT_PAREN"); - Lex(lx); - templ=CbMiscNew(lx,CBMT_LABEL); - CbAddIc(lx,EC_BR_ZERO,templ,0); - CmpParseStatement(lx,locals,try_count,break_label,continue_label); - k=CmpKeyWord(lx); - if (k==KW_ELSE) { - Lex(lx); - templ1=CbMiscNew(lx,CBMT_LABEL); - CbAddIc(lx,EC_JMP,templ1,0); - CbAddIc(lx,EC_LABEL,templ,0); - CmpParseStatement(lx,locals,try_count,break_label,continue_label); - CbAddIc(lx,EC_LABEL,templ1,0); - } else - CbAddIc(lx,EC_LABEL,templ,0); -} - -void CmpParseWhile(LexStruct *lx,ClassStruct *locals,I8 try_count) -{ - CbMiscStruct *templ,*templ1; - - if (lx->token!='(') - PrsExcept(lx,"ST_EXPECTING_LEFT_PAREN"); - Lex(lx); - templ=CbMiscNew(lx,CBMT_LABEL); - CbAddIc(lx,EC_LABEL,templ,0); - if (!PrsParseExpression(lx,FALSE)) - throw(EXCEPT_COMPILER,12); - if (lx->token!=')') - PrsExcept(lx,"ST_MISSING_RIGHT_PAREN"); - Lex(lx); - - templ1=CbMiscNew(lx,CBMT_LABEL); - CbAddIc(lx,EC_BR_ZERO,templ1,0); - CmpParseStatement(lx,locals,try_count,templ1,templ); - CbAddIc(lx,EC_JMP,templ,0); - CbAddIc(lx,EC_LABEL,templ1,0); -} - -void CmpParseDoWhile(LexStruct *lx,ClassStruct *locals,I8 try_count) -{ - CbMiscStruct *templ,*templ1; - - templ=CbMiscNew(lx,CBMT_LABEL); - templ1=CbMiscNew(lx,CBMT_LABEL); - CbAddIc(lx,EC_LABEL,templ,0); - CmpParseStatement(lx,locals,try_count,templ1,templ); - if (CmpKeyWord(lx)!=KW_WHILE) - PrsExcept(lx,"ST_MISSING_WHILE"); - if (Lex(lx)!='(') - PrsExcept(lx,"ST_EXPECTING_LEFT_PAREN"); - Lex(lx); - if (!PrsParseExpression(lx,FALSE)) - throw(EXCEPT_COMPILER,13); - if (lx->token!=')') - PrsExcept(lx,"ST_MISSING_RIGHT_PAREN"); - CbAddIc(lx,EC_BR_NOT_ZERO,templ,0); - CbAddIc(lx,EC_LABEL,templ1,0); - if (Lex(lx)!=';') - PrsExcept(lx,"ST_MISSING_SEMICOLON"); - Lex(lx); -} - -void CmpParseFor(LexStruct *lx,ClassStruct *locals,I8 try_count) -{ - LexCbStack *templs; - CbMiscStruct *templ,*templ1,*templ2; - - if (lx->token!='(') - PrsExcept(lx,"ST_EXPECTING_LEFT_PAREN"); - Lex(lx); - CmpParseStatement(lx,locals,try_count); - - templ=CbMiscNew(lx,CBMT_LABEL); - CbAddIc(lx,EC_LABEL,templ,0); - if (!PrsParseExpression(lx,FALSE)) - throw(EXCEPT_COMPILER,14); - templ1=CbMiscNew(lx,CBMT_LABEL); - CbAddIc(lx,EC_BR_ZERO,templ1,0); - if (lx->token!=';') - PrsExcept(lx,"ST_MISSING_SEMICOLON"); - Lex(lx); - - CbPush(lx); - CbInitOutPtrs(&lx->cb); - templ2=CbMiscNew(lx,CBMT_LABEL); - CbAddIc(lx,EC_LABEL,templ2,0); - if (lx->token!=')') - CmpParseStatement(lx,locals,try_count,NULL,NULL,FALSE); - CbAddIc(lx,EC_NULL,0,0); - CbPush(lx); - templs=CbPopNoFree(lx); - CbPop(lx); - if (lx->token!=')') - PrsExcept(lx,"ST_MISSING_RIGHT_PAREN"); - Lex(lx); - - CmpParseStatement(lx,locals,try_count,templ1,templ2); - CbAppend(lx,templs); - CbAddIc(lx,EC_JMP,templ,0); - CbAddIc(lx,EC_LABEL,templ1,0); -} - - -class SwitchCaseEntry { - SwitchCaseEntry *next; - CbMiscStruct *label; - U8 value; -}; - -void CmpParseSwitch(LexStruct *lx,ClassStruct *locals,I8 try_count) -{ - SwitchCaseEntry *header=NULL,*temps,*temps1; - CbMiscStruct *templ_break,*templ_default,*templ_jmp; - IntermediateCode *tempi_sub,*tempi_cmp; - AsmCtrlStruct *a=lx->a; - BoolU4 default_found=FALSE; - I8 i,k; - I8 lo=MAX_I8,hi=MIN_I8,range; - U8 *jmp_table; - - if (lx->token!='(') - PrsExcept(lx,"ST_EXPECTING_LEFT_PAREN"); - Lex(lx); - templ_break=CbMiscNew(lx,CBMT_LABEL); - templ_default=CbMiscNew(lx,CBMT_LABEL); - templ_jmp=CbMiscNew(lx,CBMT_JMP_TABLE); - if (!PrsParseExpression(lx,FALSE)) - throw(EXCEPT_COMPILER,15); - CbAddIc(lx,EC_IMM,0,sys_internal_types[IT_I8]); - tempi_sub=lx->cb.cb_last_out_ptr; - CbAddIc(lx,EC_SUB,0,sys_internal_types[IT_I8]); - CbAddIc(lx,EC_IMM,0,sys_internal_types[IT_I8]); - tempi_cmp=lx->cb.cb_last_out_ptr; - CbAddIc(lx,EC_SWITCH,templ_jmp,0); - CbAddIc(lx,EC_JMP,templ_default,0); - if (lx->token!=')') - PrsExcept(lx,"ST_MISSING_RIGHT_PAREN"); - if (Lex(lx)!='{') - PrsExcept(lx,"ST_EXPECTING_LEFT_BRACE"); - Lex(lx); - while (lx->token && lx->token!='}') { - k=CmpKeyWord(lx); - if (k==KW_CASE) { - Lex(lx); - temps=MAlloc(sizeof(SwitchCaseEntry)); - temps->label=CbMiscNew(lx,CBMT_LABEL); - CbAddIc(lx,EC_LABEL,temps->label,0); - temps->label->flags|=CBMF_USED; - k=Expression(lx); - if (lx->token!=':') - PrsExcept(lx,"ST_EXPECTING_COLON"); - Lex(lx); - if (khi) hi=k; - temps->value=k; - temps->next=header; - header=temps; - } else if (k==KW_DEFAULT) { - if (Lex(lx)==':') - Lex(lx); - CbAddIc(lx,EC_LABEL,templ_default,0); - default_found=TRUE; - } else - CmpParseStatement(lx,locals,try_count,templ_break,NULL); - } - if (!default_found) - CbAddIc(lx,EC_LABEL,templ_default,0); - CbAddIc(lx,EC_LABEL,templ_break,0); - if (lx->token!='}') - PrsExcept(lx,"ST_MISSING_RIGHT_BRACE"); - Lex(lx); - - range=hi-lo+1; - if (range<=0 || range>0x4000) - PrsExcept(lx,"ST_CASE_RANGE_ERROR"); - jmp_table=MAlloc(sizeof(U8)*range); - for (i=0;iic_data=lo; - tempi_cmp->ic_data=range; - temps=header; - while (temps) { - temps1=temps->next; - jmp_table[temps->value-lo]=temps->label; - Free(temps); - temps=temps1; - } - templ_jmp->jmp_table=jmp_table; - templ_jmp->st_len=range; -} - -void CmpParseNoUnusedWarn(LexStruct *lx) -{ - MemberListStruct *tempm; - while (lx->token==TK_IDENT) { - if (!(tempm=lx->local_var_entry)) - PrsExcept(lx,"ST_EXPECTING_LOCAL_VARIABLE"); - tempm->flags|=MLF_NO_UNUSED_WARN; - Lex(lx); - if (lx->token==',') - Lex(lx); - else { - if (lx->token!=';') - PrsExcept(lx,"ST_EXPECTING_COMMA"); - } - } -} - -void CmpParseCout(LexStruct *lx,BoolU4 linefeed) -{ - ClassStruct *tempc; - SysHashEntry *temph; - IntermediateCode *tempi; - I8 cnt=0,i,j; - - CbAddIc(lx,EC_CALL_START,0,0); - while (lx->token!=';') { - cnt++; - if (!PrsParseExpression(lx,FALSE)) - throw(EXCEPT_COMPILER,16); - lx->cb.cb_last_out_ptr->ic_flags|=ICF_PUSH_RESULT; - tempi=lx->cb.cb_last_out_ptr; - tempc=tempi->ic_class; - j=tempc->ptr_cnt; - tempc-=sizeof(ClassStruct)*j; - while (tempc->return_class) - tempc=tempc->return_class; - temph=tempc; - if (temph->type & HTT_INTERNAL_TYPE) - i=tempc->sub_type+j*IT_NUM_IT; - else - i=IT_I8; - CbAddIc(lx,EC_TYPE,i,sys_internal_types[IT_I8]); - lx->cb.cb_last_out_ptr->ic_flags|=ICF_PUSH_RESULT; - if (lx->token==',' || lx->token==TK_SHL) - Lex(lx); - else { - if (lx->token!=';') - PrsExcept(lx,"ST_EXPECTING_COMMA"); - } - } - CbAddIc(lx,EC_IMM,cnt,sys_internal_types[IT_U8]); - CbAddIc(lx,EC_SET_RAX,0,sys_internal_types[IT_U8]); - if (linefeed) - CbAddIc(lx,EC_IRQ,I_COUTLN,0); - else - CbAddIc(lx,EC_IRQ,I_COUT,0); - CbAddIc(lx,EC_ADD_RSP,cnt<<4,0); - CbAddIc(lx,EC_CALL_END,0,sys_internal_types[IT_I8]); - CbAddIc(lx,EC_END_EXP,0,0); -} - -void CmpParseExeBlk(LexStruct *lx) -{ - AsmCtrlStruct *a=lx->a; - SysHashTable *ht1=lx->hash_table_list, - *ht2=lx->define_hash_table; - U8 old_hash_mask=lx->hash_mask; - U8 old_flags=lx->flags & (LF_ASM_EXPRESSIONS | LF_EXE_BLK); - ExeBlkStruct *tempe=MAlloc(sizeof(ExeBlkStruct)); - MemberListStruct *old_var_list=lx->local_var_list; - lx->local_var_list=NULL; - - tempe->body=NewStr(""); - InsQue(tempe,lx->last_exe_blk); - CbPush(lx); //TODO Misc lists - lx->hash_mask=HTT_ALL; - lx->hash_table_list=Fs->hash_table; - lx->define_hash_table=Fs->hash_table; - lx->flags=(lx->flags & ~LF_ASM_EXPRESSIONS) | - LF_EXE_BLK; - lx->a=NULL; - if (lx->token=='{') - Lex(lx); - else - PrsExcept(lx,"ST_MISSING_RIGHT_BRACE"); - while (lx->token && lx->token!='}') - ExecuteCmdLine(lx); - lx->a=a; - lx->hash_table_list=ht1, - lx->define_hash_table=ht2; - lx->local_var_list=old_var_list; - lx->hash_mask=old_hash_mask; - lx->flags=(lx->flags&~LF_EXE_BLK) | old_flags; - CbPop(lx); - RemQue(tempe); - if (*tempe->body) - LexIncludeStr(lx,"ExeBlk",tempe->body,FALSE); - else - Free(tempe->body); - Free(tempe); - Lex(lx); //Skip "}" -} - - -void CmpParseTryBlk(LexStruct *lx,ClassStruct *locals,I8 try_count) -{ - CbMiscStruct *templ,*templ1,*templ2; - ClassStruct *d=sys_internal_types[IT_PTR], - *temp_try=FindHashEntry("SysTry",lx->hash_table_list,HTT_FUNCTION), - *temp_catch=FindHashEntry("SysCatch",lx->hash_table_list,HTT_FUNCTION); - - lx->flags|=LF_NO_REG_OPT; //TODO - - templ=CbMiscNew(lx,CBMT_LABEL); - templ1=CbMiscNew(lx,CBMT_LABEL); - templ2=CbMiscNew(lx,CBMT_LABEL); - CbAddIc(lx,EC_CALL_START,0,0); - CbAddIc(lx,EC_GET_LABEL,templ2,d); - lx->cb.cb_last_out_ptr->ic_flags|=ICF_PUSH_RESULT; - CbAddIc(lx,EC_GET_LABEL,templ,d); - lx->cb.cb_last_out_ptr->ic_flags|=ICF_PUSH_RESULT; - if (Bt(&temp_try->flags,Cf_EXTERN)) { - if (lx->a) - CbAddIc(lx,EC_CALL_INDIRECT2,temp_try->executable_address,d); - else - CbAddIc(lx,EC_CALL_INDIRECT2,&temp_try->executable_address,d); - } else - CbAddIc(lx,EC_CALL,temp_try->executable_address,d); - CbAddIc(lx,EC_ADD_RSP,16,d); - CbAddIc(lx,EC_CALL_END,0,d); - CbAddIc(lx,EC_END_EXP,0,0); - - if (try_count<0) - CmpParseStatement(lx,locals,try_count-1); - else - CmpParseStatement(lx,locals,try_count+1); - - CbAddIc(lx,EC_LABEL,templ2,0); - CbAddIc(lx,EC_CALL_START,0,0); - if (Bt(&temp_catch->flags,Cf_EXTERN)) { - if (lx->a) - CbAddIc(lx,EC_CALL_INDIRECT2,temp_catch->executable_address,d); - else - CbAddIc(lx,EC_CALL_INDIRECT2,&temp_catch->executable_address,d); - } else - CbAddIc(lx,EC_CALL,temp_catch->executable_address,d); - CbAddIc(lx,EC_CALL_END,0,d); - CbAddIc(lx,EC_END_EXP,0,0); - - CbAddIc(lx,EC_JMP,templ1,0); - - if (CmpKeyWord(lx)!=KW_CATCH) - PrsExcept(lx,"ST_MISSING_CATCH"); - Lex(lx); - - CbAddIc(lx,EC_LABEL,templ,0); - if (try_count<0) - CmpParseStatement(lx,locals,try_count-1); - else - CmpParseStatement(lx,locals,-try_count-1); - CbAddIc(lx,EC_RET,0,d); - CbAddIc(lx,EC_LABEL,templ1,0); -} - - -BoolU8 CmpParseStatement(LexStruct *lx,ClassStruct *locals,I8 try_count=0, - CbMiscStruct *break_label=NULL,CbMiscStruct *continue_label=NULL, - BoolU4 saved_prs_semicolon=TRUE) -{ - BoolU4 prs_exp,cont,prs_semicolon,is_asm=FALSE, - is_public=FALSE,last_is_public=FALSE; - U8 i; - SysHashEntry *temph; - CbMiscStruct *templ; - I1 *import_name; - ClassStruct *d,*temp_catch; - do { - is_public=FALSE; - cont=FALSE; - prs_exp=FALSE; - prs_semicolon=saved_prs_semicolon; - lx->statement_cnt++; - while (lx->token==',') - Lex(lx); - if (lx->token=='{') { - lx->braces_cnt++; - Lex(lx); - while (lx->token!='}') - CmpParseStatement(lx,locals,try_count,break_label,continue_label); - lx->braces_cnt--; - lx->statement_cnt--; - Lex(lx); - } else if (lx->token==TK_EOF) ; - else if (lx->token==';') { - if (prs_semicolon) { - lx->statement_cnt--; - Lex(lx); - } - } else { - if (lx->token==TK_IDENT) { - if (temph=lx->hash_entry) { - if (temph->type & HTT_KEYWORD) { - i=temph->user_data0; - switch (i) { - case KW_IF: - Lex(lx); - CmpParseIf(lx,locals,try_count,break_label,continue_label); - prs_semicolon=FALSE; - break; - case KW_FOR: - Lex(lx); - CmpParseFor(lx,locals,try_count); - prs_semicolon=FALSE; - break; - case KW_WHILE: - Lex(lx); - CmpParseWhile(lx,locals,try_count); - prs_semicolon=FALSE; - break; - case KW_DO: - Lex(lx); - CmpParseDoWhile(lx,locals,try_count); - prs_semicolon=FALSE; - break; - case KW_SWITCH: - Lex(lx); - CmpParseSwitch(lx,locals,try_count); - prs_semicolon=FALSE; - break; - case KW_LTEXTERN: - Lex(lx); - if (Bt(&lx->flags,LFf_EXTERNS_TO_IMPORTS)) - goto keyword_LTimport; - if (lx->token!=TK_IDENT) - PrsExcept(lx,"ST_EXPECTING_SYS_SYMBOL"); - if (!(temph=lx->hash_entry)) - PrsExcept(lx,"ST_EXPECTING_SYS_SYMBOL"); - if (!(temph->type & HTT_SYS_SYMBOL)) - PrsExcept(lx,"ST_EXPECTING_SYS_SYMBOL"); - i=temph->user_data0; - if (Lex(lx)!=TK_IDENT) - PrsExcept(lx,"ST_EXPECTING_TYPE"); - if (!(temph=lx->hash_entry)) - PrsExcept(lx,"ST_EXPECTING_TYPE"); - if (!(temph->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) - PrsExcept(lx,"ST_EXPECTING_TYPE"); - if (locals) - PrsExcept(lx,"ST_NOT_ALLOWED_IN_FUNCTION"); - CmpParseGlblVarList(lx,PG_LTEXTERN,temph,i,last_is_public); - prs_semicolon=FALSE; - cont=TRUE; - break; - case KW_LTIMPORT: - Lex(lx); -keyword_LTimport: - if (lx->token!=TK_IDENT) - PrsExcept(lx,"ST_EXPECTING_SYS_SYMBOL"); - import_name=lx->ident; - lx->ident=0; - if (Lex(lx)!=TK_IDENT) - PrsExcept(lx,"ST_EXPECTING_TYPE"); - if (!(temph=lx->hash_entry)) - PrsExcept(lx,"ST_EXPECTING_TYPE"); - if (!(temph->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) - PrsExcept(lx,"ST_EXPECTING_TYPE"); - if (locals) - PrsExcept(lx,"ST_NOT_ALLOWED_IN_FUNCTION"); - CmpParseGlblVarList(lx,PG_LTIMPORT,temph,import_name,FALSE); - Free(import_name); - prs_semicolon=FALSE; - cont=TRUE; - break; - case KW_INTERNAL: - Lex(lx); - if (lx->token!=TK_INTEGER) - PrsExcept(lx,"ST_EXPECTING_INTEGER"); - i=lx->cur_i; - if (Lex(lx)!=TK_IDENT) - PrsExcept(lx,"ST_EXPECTING_TYPE"); - if (!(temph=lx->hash_entry)) - PrsExcept(lx,"ST_EXPECTING_TYPE"); - if (!(temph->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) - PrsExcept(lx,"ST_EXPECTING_TYPE"); - if (locals) - PrsExcept(lx,"ST_NOT_ALLOWED_IN_FUNCTION"); - CmpParseGlblVarList(lx,PG_LTINTERN,temph,i,last_is_public); - prs_semicolon=FALSE; - cont=TRUE; - break; - case KW_EXTERN: - Lex(lx); - if (lx->token!=TK_IDENT) - PrsExcept(lx,"ST_EXPECTING_TYPE"); - temph=lx->hash_entry; - if (locals) - PrsExcept(lx,"ST_NOT_ALLOWED_IN_FUNCTION"); - if (CmpKeyWord(lx)==KW_CLASS) { - Lex(lx); - CmpParseClass(lx,FALSE,last_is_public,TRUE); - } else if (CmpKeyWord(lx)==KW_UNION) { - Lex(lx); - CmpParseClass(lx,TRUE,last_is_public,TRUE); - } else { - if (!temph || !(temph->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) - PrsExcept(lx,"ST_EXPECTING_TYPE"); - if (Bt(&lx->flags,LFf_EXTERNS_TO_IMPORTS)) - goto keyword_import; - CmpParseGlblVarList(lx,PG_EXTERN,temph,0,last_is_public); - prs_semicolon=FALSE; - cont=TRUE; - } - break; - case KW_IMPORT: - Lex(lx); - if (lx->token!=TK_IDENT) - PrsExcept(lx,"ST_EXPECTING_TYPE"); - if (locals) - PrsExcept(lx,"ST_NOT_ALLOWED_IN_FUNCTION"); - if (!(temph=lx->hash_entry)) - PrsExcept(lx,"ST_EXPECTING_TYPE"); - if (!(temph->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) - PrsExcept(lx,"ST_EXPECTING_TYPE"); -keyword_import: - CmpParseGlblVarList(lx,PG_IMPORT,temph,0,FALSE); - prs_semicolon=FALSE; - cont=TRUE; - break; - case KW_ASM: - Lex(lx); - CmpParseAsmBlk(lx); - prs_semicolon=FALSE; - is_asm=TRUE; - break; - case KW_TRY: - Lex(lx); - CmpParseTryBlk(lx,locals,try_count); - prs_semicolon=FALSE; - break; - case KW_BREAK: - Lex(lx); - if (!break_label) - PrsExcept(lx,"ST_BREAK_NOT_ALLOWED"); - CbAddIc(lx,EC_JMP,break_label,0); - break; - case KW_CONTINUE: - Lex(lx); - if (!continue_label) - PrsExcept(lx,"ST_CONTINUE_NOT_ALLOWED"); - CbAddIc(lx,EC_JMP,continue_label,0); - break; - case KW_RETURN: - CbAddIc(lx,EC_RETURN_START,0,0); - Lex(lx); - if (lx->token!=';') { - if (!PrsParseExpression(lx,TRUE)) - throw(EXCEPT_COMPILER,17); - } - if (try_count<0) {//inside catch{} - CbAddIc(lx,EC_GET_BASE_PTR,0,0); - CbAddIc(lx,EC_IMM,locals->size,sys_internal_types[IT_I8]); - CbAddIc(lx,EC_ADD,0,sys_internal_types[IT_I8]); - CbAddIc(lx,EC_SET_STACK_PTR,0,0); - try_count=-try_count; //force removal from queue - } - if (try_count) { - d=sys_internal_types[IT_PTR]; - temp_catch=FindHashEntry("SysCatch", - lx->hash_table_list,HTT_FUNCTION); - for (i=0;iflags,Cf_EXTERN)) { - if (lx->a) - CbAddIc(lx,EC_CALL_INDIRECT2, - temp_catch->executable_address,d); - else - CbAddIc(lx,EC_CALL_INDIRECT2, - &temp_catch->executable_address,d); - } else - CbAddIc(lx,EC_CALL,temp_catch->executable_address,d); - CbAddIc(lx,EC_ADD_RSP,8,d); - } - } - CbAddIc(lx,EC_RETURN_END,0,locals->return_class); - if (locals) - CbAddIc(lx,EC_JMP,lx->leave_label,0); - else - CbAddIc(lx,EC_RET,0,0); - break; - case KW_GOTO: - Lex(lx); - if (lx->token!=TK_IDENT) - PrsExcept(lx,"ST_EXPECTING_IDENTIFIER"); - if (!(templ=CbFindGotoLabel(lx,lx->ident))) { - templ=CbMiscNew(lx,CBMT_GOTO_LABEL); - templ->str=lx->ident; - lx->ident=NULL; - } - CbAddIc(lx,EC_JMP,templ,0); - Lex(lx); - break; - case KW_NOUNUSEDWARN: - Lex(lx); - CmpParseNoUnusedWarn(lx); - break; - case KW_COUT: - Lex(lx); - CmpParseCout(lx,FALSE); - break; - case KW_COUTLN: - Lex(lx); - CmpParseCout(lx,TRUE); - break; - case KW_CLASS: - Lex(lx); - CmpParseClass(lx,FALSE,last_is_public,FALSE); - break; - case KW_UNION: - Lex(lx); - CmpParseClass(lx,TRUE,last_is_public,FALSE); - break; - case KW_PUBLIC: - Lex(lx); - is_public=TRUE; - cont=TRUE; - prs_semicolon=FALSE; - break; - default: - prs_exp=TRUE; - break; - } - } else if (temph->type & (HTT_CLASS|HTT_INTERNAL_TYPE)) { - if (locals) { - CmpParseVarList(lx,locals,PVLM_LOCAL_VAR); - if (lx->token=='}') - cont=FALSE; - else - cont=TRUE; - } else { - CmpParseGlblVarList(lx,PG_NULL,temph,0,last_is_public); - cont=TRUE; - } - prs_semicolon=FALSE; - } else prs_exp=TRUE; - } else { - if (lx->local_var_entry) - prs_exp=TRUE; - else { - if (!(templ=CbFindGotoLabel(lx,lx->ident))) { - templ=CbMiscNew(lx,CBMT_GOTO_LABEL); - templ->str=lx->ident; - lx->ident=NULL; - } - CbAddIc(lx,EC_LABEL,templ,0); - if (Lex(lx)==':') //skip ident - Lex(lx); //skip colon - else - PrsExcept(lx,"ST_UNDEFINED_IDENTIFIER"); - prs_semicolon=FALSE; - } - } - } else prs_exp=TRUE; - if (prs_exp) { - if (!PrsParseExpression(lx,TRUE)) - throw(EXCEPT_COMPILER,18); - } - if (lx->token!=',') - lx->statement_cnt--; - if (prs_semicolon && lx->token!=',') { - if (lx->token==';') - Lex(lx); - else - PrsExcept(lx,"ST_MISSING_SEMICOLON"); - } - } - last_is_public=is_public; - } while (lx->token==',' || cont); - return is_asm; -} diff --git a/LT/Demo/ASCIIOrgan.CPZ b/LT/Demo/ASCIIOrgan.CPZ deleted file mode 100644 index 7abad7e..0000000 --- a/LT/Demo/ASCIIOrgan.CPZ +++ /dev/null @@ -1,16 +0,0 @@ -//Practice your ASCII knowledge ;-) - -void ASCIIOrgan() -{ - U1 ch; - coutln "Press keys to make sounds"; - coutln "and press ESC to exit."; - do { - //We don't want echo or scan codes, so we use NULL and FALSE... - ch=GetChar(NULL,FALSE); - Sound((ch-28)*25); - } while (ch!=CH_ESC && ch!=CH_CTRLQ); - Sound(0); -} - -ASCIIOrgan; \ No newline at end of file diff --git a/LT/Demo/AutoFile/Demo1.AUZ b/LT/Demo/AutoFile/Demo1.AUZ deleted file mode 100644 index 2a80c29..0000000 --- a/LT/Demo/AutoFile/Demo1.AUZ +++ /dev/null @@ -1,15 +0,0 @@ -/* To run this, do a directory, right click on -this file's name and select "AutoFile". -Or, type $LK,"AutoFile","MN:AutoFile"$(filename); -See $LK,"AutoFile","FF:::/LT/Doc/OSGlossary.GLZ,AutoFile"$ in the glossary for more info. -*/ - - -//This is to demo autofiles. -I8 i; -for (i=0;i<3;i++) - PutS("Dir;\r"); -PutS("$$FG,RED$$//Press a letter to complete the mask$$FG$$\r"); -PutS("Dir(\"*."); -I1 ch=GetChar(NULL,FALSE); //Prompt for first digit of mask -PrintF("%c*\");\r",ch); \ No newline at end of file diff --git a/LT/Demo/AutoFile/Demo2.AUZ b/LT/Demo/AutoFile/Demo2.AUZ deleted file mode 100644 index 02b2ba5..0000000 --- a/LT/Demo/AutoFile/Demo2.AUZ +++ /dev/null @@ -1,9 +0,0 @@ -/* To run this, do a directory, right click on -this file's name and select "AutoFile". -Or, type $LK,"AutoFile","MN:AutoFile"$(filename); -See $LK,"AutoFile","FF:::/LT/Doc/OSGlossary.GLZ,AutoFile"$ in the glossary for more info. -*/ -PutS("$$FG,RED$$ProfAll;$$FG$$\r"); -PutS("$$FG,RED$$//Collecting Data$$FG$$"); -PressAKey; -PutS("\r$$FG,RED$$ProfRep;$$FG$$\r"); \ No newline at end of file diff --git a/LT/Demo/AutoFile/Demo3.AUZ b/LT/Demo/AutoFile/Demo3.AUZ deleted file mode 100644 index b0be68efc90928a0c8b177f3f0c782ddd830618c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 769 zcmdPbQV7XcC@RfUD9Oky)=@~wS4dPy$t+4uF3B&d)KMtPOwTA$NY2Sj&Q{3J3YnWJgV%N3l8soKrW%F0ULCq&;RKUv>D*gYq|xHz$>QqSEdN(W(# zLMF)lsS4>(X@#`>B8A-iqEv;H;vep(W1ti49Pb<& z6zm@q9~w{-?Ccir91`RMG6LjrjZ9ku>r5M4g9;Zj>r8EJO@(S+E(L{vqRhM!Hw`7# zWP=LTWF;Ll9cPbt*I;K&YXyD%`_o4Rvp}01EUBfolMd+ nlWa*c$Y;(T@lKA;-oXKm&aNO&!Z{GjgL6_-3p7kYoLU9|_9)?o diff --git a/LT/Demo/AutoFile/Demo3.TXZ b/LT/Demo/AutoFile/Demo3.TXZ deleted file mode 100644 index 9bed5ce..0000000 --- a/LT/Demo/AutoFile/Demo3.TXZ +++ /dev/null @@ -1,260 +0,0 @@ -#define EC_NULL 0xD7 -#define EC_NOP 0xD8 - -#define EC_U8 0xD9 -#define EC_U4 0xDA -#define EC_U2 0x04 -#define EC_U1 0x05 -#define EC_DOUBLE 0x06 -#define EC_STR_CONST 0x07 -#define EC_RBP 0x08 -#define EC_FS 0x09 - -#define EC_COM 0x0A -#define EC_NOT 0x0B -#define EC_UNARY_MINUS 0x0C -#define EC_ADDRESS 0x0D - -#define EC_U8_DISP32 0x0E -#define EC_U4_DISP32 0x0F -#define EC_U2_DISP32 0x10 -#define EC_U1_DISP32 0x11 -#define EC_U8_DISP8 0x12 -#define EC_U4_DISP8 0x13 -#define EC_U2_DISP8 0x14 -#define EC_U1_DISP8 0x15 -#define EC_DEREF_U8 0x16 -#define EC_DEREF_U4 0x17 -#define EC_DEREF_U2 0x18 -#define EC_DEREF_U1 0x19 -#define EC_U8_PP 0x1A -#define EC_U4_PP 0x1B -#define EC_U2_PP 0x1C -#define EC_U1_PP 0x1D -#define EC_U8_MM 0x1E -#define EC_U4_MM 0x1F -#define EC_U2_MM 0x20 -#define EC_U1_MM 0x21 -#define EC_PP_U8 0x22 -#define EC_PP_U4 0x23 -#define EC_PP_U2 0x24 -#define EC_PP_U1 0x25 -#define EC_MM_U8 0x26 -#define EC_MM_U4 0x27 -#define EC_MM_U2 0x28 -#define EC_MM_U1 0x29 - -#define EC_SHL 0x2A -#define EC_SHR 0x2B - -#define EC_MULTIPLICATION 0x2C -#define EC_DIVISION 0x2D -#define EC_REMAINDER 0x2E - -#define EC_AND 0x2F - -#define EC_OR 0x30 -#define EC_XOR 0x31 - -#define EC_ADDITION 0x32 -#define EC_SUBTRACTION 0x33 - -#define EC_EQUAL_EQUAL 0x34 -#define EC_NOT_EQUAL_TO 0x35 -#define EC_LESS_THAN 0x36 -#define EC_GREATER_THAN 0x37 -#define EC_LESS_OR_EQUAL 0x38 -#define EC_GREATER_OR_EQUAL 0x39 - -#define EC_AND_AND 0x3A - -#define EC_OR_OR 0x3B -#define EC_XOR_XOR 0x3C - -#define EC_COLON 0x3D -#define EC_QUESTION 0x3E - -#define EC_ASSIGN_U8 0x3F -#define EC_ASSIGN_U4 0x40 -#define EC_ASSIGN_U2 0x41 -#define EC_ASSIGN_U1 0x42 - -#define EC_SHL_EQUAL_U8 0x43 -#define EC_SHL_EQUAL_U4 0x44 -#define EC_SHL_EQUAL_U2 0x45 -#define EC_SHL_EQUAL_U1 0x46 - -#define EC_SHR_EQUAL_U8 0x47 -#define EC_SHR_EQUAL_U4 0x48 -#define EC_SHR_EQUAL_U2 0x49 -#define EC_SHR_EQUAL_U1 0x4A - -#define EC_MUL_EQUAL_U8 0x4B -#define EC_MUL_EQUAL_U4 0x4C -#define EC_MUL_EQUAL_U2 0x4D -#define EC_MUL_EQUAL_U1 0x4E - -#define EC_DIV_EQUAL_U8 0x4F -#define EC_DIV_EQUAL_U4 0x50 -#define EC_DIV_EQUAL_U2 0x51 -#define EC_DIV_EQUAL_U1 0x52 - -#define EC_AND_EQUAL_U8 0x53 -#define EC_AND_EQUAL_U4 0x54 -#define EC_AND_EQUAL_U2 0x55 -#define EC_AND_EQUAL_U1 0x56 - -#define EC_OR_EQUAL_U8 0x57 -#define EC_OR_EQUAL_U4 0x58 -#define EC_OR_EQUAL_U2 0x59 -#define EC_OR_EQUAL_U1 0x5A - -#define EC_XOR_EQUAL_U8 0x5B -#define EC_XOR_EQUAL_U4 0x5C -#define EC_XOR_EQUAL_U2 0x5D -#define EC_XOR_EQUAL_U1 0x5E - -#define EC_ADD_EQUAL_U8 0x5F -#define EC_ADD_EQUAL_U4 0x60 -#define EC_ADD_EQUAL_U2 0x61 -#define EC_ADD_EQUAL_U1 0x62 - -#define EC_SUB_EQUAL_U8 0x63 -#define EC_SUB_EQUAL_U4 0x64 -#define EC_SUB_EQUAL_U2 0x65 -#define EC_SUB_EQUAL_U1 0x66 - -#define EC_ADD64 0x67 -#define EC_ADD32 0x68 -#define EC_ADD8 0x69 -#define EC_INC 0x6A -#define EC_SUB64 0x6B -#define EC_SUB32 0x6C -#define EC_SUB8 0x6D -#define EC_DEC 0x6E - -#define EC_ENTER 0x6F -#define EC_LEAVE 0x70 -#define EC_ADD_RSP64 0x71 -#define EC_ADD_RSP32 0x72 -#define EC_ADD_RSP8 0x73 -#define EC_RET 0x74 -#define EC_CALL 0x75 -#define EC_CALL_INDIRECT 0x76 -#define EC_CALL_INDIRECT2 0x77 -#define EC_IRQ 0x78 - -#define EC_CLI 0x79 -#define EC_STI 0x7A -#define EC_GET_FLAGS 0x7B -#define EC_SET_FLAGS 0x7C -#define EC_GET_BASE_PTR 0x7D -#define EC_SET_BASE_PTR 0x7E -#define EC_GET_STACK_PTR 0x7F -#define EC_SET_STACK_PTR 0x80 -#define EC_GET_LABEL 0x81 -#define EC_ABSOLUTE_ADDRESS 0x82 -#define EC_LABEL 0x83 -#define EC_TYPE 0x84 - -#define EC_BT 0x85 -#define EC_BTS 0x86 -#define EC_BTR 0x87 -#define EC_BTC 0x88 -#define EC_BSF 0x89 -#define EC_BSR 0x8A -#define EC_INSQUE 0x8B -#define EC_INSQUE_REV 0x8C -#define EC_REMQUE 0x8D -#define EC_MEMCPY 0x8E -#define EC_MEMSET 0x8F -#define EC_INPD 0x90 -#define EC_INPW 0x91 -#define EC_INP 0x92 -#define EC_OUTPD 0x93 -#define EC_OUTPW 0x94 -#define EC_OUTP 0x95 -#define EC_REP_INSW 0x96 -#define EC_REP_INSB 0x97 -#define EC_REP_OUTSW 0x98 -#define EC_REP_OUTSB 0x99 - -#define EC_JMP 0x9A -#define EC_SHORT_JMP 0x9B -#define EC_SWITCH 0x9C - -#define EC_SKIPZ 0x9D -#define EC_SKIPZ2 0x9E -#define EC_SKIPNZ 0x9F -#define EC_SKIPNZ2 0xA0 - -#define EC_EQUAL_EQUAL_SKIPZ 0xA1 -#define EC_EQUAL_EQUAL_SKIPZ2 0xA2 - -#define EC_NOT_EQUAL_TO_SKIPZ 0xA3 -#define EC_NOT_EQUAL_TO_SKIPZ2 0xA4 - -#define EC_LESS_THAN_SKIPZ 0xA5 -#define EC_LESS_THAN_SKIPZ2 0xA6 - -#define EC_GREATER_THAN_SKIPZ 0xA7 -#define EC_GREATER_THAN_SKIPZ2 0xA8 - -#define EC_LESS_OR_EQUAL_SKIPZ 0xA9 -#define EC_LESS_OR_EQUAL_SKIPZ2 0xAA - -#dABine EC_GREATER_OR_EQUAL_SKIPZ 0xAB -#dACine EC_GREATER_OR_EQUAL_SKIPZ2 0xAC - -#define EC_AND_AND_SKIPZ 0xAD -#define EC_AND_AND_SKIPZ2 0xAE -#define EC_AND_AND_SKIPNZ 0xAF -#define EC_AND_AND_SKIPNZ2 0xB0 - -#define EC_OR_OR_SKIPZ 0xB1 -#define EC_OR_OR_SKIPZ2 0xB2 -#define EC_OR_OR_SKIPNZ 0xB3 -#define EC_OR_OR_SKIPNZ2 0xB4 - -#define EC_FILD 0xB5 -#define EC_FISTP 0xB6 -#define EC_FLD 0xB7 -#define EC_FSTP 0xB8 -#define EC_FYL2X 0xB9 -#define EC_FABS 0xBA -#define EC_FCHS 0xBB -#define EC_FSIN 0xBC -#define EC_FCOS 0xBD -#define EC_FPTAN 0xBE -#define EC_FPATAN 0xBF -#define EC_FSQRT 0xC0 -#define EC_FMULP 0xC1 -#define EC_FDIVP 0xC2 -#define EC_FDIVRP 0xC3 -#define EC_FADDP 0xC4 -#define EC_FSUBP 0xC5 -#define EC_FSUBRP 0xC6 - -#define EC_LEA_DISP32_RBP 0xC7 -#define EC_LEA_DISP8_RBP 0xC8 - -#define EC_FS_U8_DISP32 0xC9 -#define EC_FS_U4_DISP32 0xCA -#define EC_FS_U2_DISP32 0xCB -#define EC_FS_U1_DISP32 0xCC - -#define EC_SHL_CONST1 0xCD -#define EC_SHL_CONST2 0xCE -#define EC_SHR_CONST1 0xCF -#define EC_SHR_CONST2 0xD0 - -#define EC_U8_DISP32_SCALED 0xD1 -#define EC_U4_DISP32_SCALED 0xD2 -#define EC_U2_DISP32_SCALED 0xD3 - -#define EC_STRLEN 0xD4 -#define EC_ZERO 0xD5 - -#define EC_NUM_ENTRIES 0xD6 - - diff --git a/LT/Demo/AutoFile/Demo4.CPZ b/LT/Demo/AutoFile/Demo4.CPZ deleted file mode 100644 index 602a889359db73f1aa196bc218f67ab381a8a68d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmdPbQcwuV$ShXKELO~Q1S8BQ38nvmlP@K zDEazX!8j_sTqXGmMWuNPC8-r93W>!EB^mjp=@|-XMftfXrtxy|azX7%tw_u*$VpWw z&d4t>R>;UNSE$S{RY*?EQ%EVwEK5}=$S=?>E#T!U&&*57FE7^P<&eqW6<*Mf8QcwuaFU?EQFwnFH zaa=1hORRahYEd*Gt9C2awM)%Qi7!bk&W=w`vQZ%E{M?oPVC$UmPDZ|yp*)ho3#nm}T3FHEV#V$pO<(?%PA;rbP zB}JvlB??+4#l#ctmlmWXmZaK(q8Gx9FVD;a zt8vQD&j~eA04d5Wh=(LDTc?s@4KmQd1xX~*d>TTt2syCpm`&o{9G%+!LUFe?me=j0dJ2KfiXNB9S6Yk*U!LYx9PkwSdpUIcNc21tVrBAsX(nd0O@bh_n~7H9Yt zL-Srrz5+O-D}a)Kt$S*TZ*jVYT7jXCT7i)cBr_@~Xc*eq_y)Vjd%H%)yZDFuX==kn zJOko=AVLts6%>lgGfR>)6f}}^Q#4^lD<~u<7N;s88)3!E#hFx;nwSmtwSoeY61bTl zHHfg`1o@P3&~TC)GT6-za&!}#K$0V8g`sVMp|wJ#p>2VY zH7^$@B!oF30UVs1n1>$1oFLz$1ZZdgN(lSc)^Sf(Ql&6lLa>xM@H#uZ~hMsHU`1 zwbV08QvgM=m1>5ed5Dq@*cyF}f=nYVMDEknfu#gpMCt%J3v8dhen>`Uv4V<^w~kV9 zPHJj_l8%zEpB03uqM=!=P?}egnWIpWk*biFT2Z0^D&aspsP6L2yp;TMh1|rv#Prl6 z1yC)kP*j>%tf!z5l97sCQF3BVPBF*~1r;}U9TOEuv7_SVuA-r-P?TRn7nV6TN zP>_?DoLa1qn_66)n4Vg!keLV8TUeS}nyRBvoDbp^rK*EsPC-FmKQCV)FEuqqp(I}+ zC0`*iud*Zq6w?TApg9@rTChVwRdHorGPv==0 && acctnum=0 && acctnum<*Mf8Qc&=;P^i$UwC3fi zwFW8iv{3NNFUr+`DpJtOGt`8tEJ`gYEy`1HOe*%Y(8x2?wX4w7MsO-ML1uuAfNOQm zFQ|la5ay*6m*~KpprBP;lngW8H#OI}pi%=QUtE-|Q=D0qnx6*KrwKA$K>_N7l;RSY zWxQNa8x*vBGb>=q6|{;{i%WA#bl{SChDdB9n4J(+x^@+|VE<_48R^mS}_&7YCOVl_r-cXq6Nf!=m5QLLomV zB|fpFq{z0UxLDV&B(>(sfk75 znRy|p6(t%VOTePow8QL#B_60#oifv163f#yV6FqZUkjwTv>+w1B-PffSl151j4#j3 z0~_yYp^%)RlcH0hQ>l}jpOastlbi?28w&6&mS?DwXQY#7tdnP=lV_@vXQq>9u9Ig0 z*6oy^pA%}LkeL?`)(aL3wNNO@%uUTNEr|!wU@`Y1r_2)H!~zAaq{QM>TlXTzoXo^x z4fkSQyYwQEkd9k1D1(AB4yq$<)gTc7HYPkX&o>d0cvJEfs(HEcK*61oUy_<*1=6aZ zkep#_09LA?kepXy8Pnv_UfQ#UN&UT2X4Dot-gMOIm)Bf<~pS zfpw*gdr-WGtEan1h;^m5wkF8K3Sf|#rl3)2V`QMo%f$&|BO7c7G8kqhNP&VvdVWd1 z0wSoO_9!TTv<4?9=6R=9YN#b=Xo6JZQVVufg{^^g1;|z5o-QFC))i1kf!zRe55!mk zF2d#}UM|i&L%j;y3TqHuX$#7loX9nRTAs0vTAm>!op6E^95}K$Q*6OCj#{2ENRG2S zBQqyeK_f-4)Fj#<)+RZxL_tkW0j%BzoZG-5$q8{N!r2f$L5E{=I;VmHwAfb5GuHuC zBWigjIxzR@@N#i-Dkvy`N>sHxQ>eHRxJKesfH+KB+nSe)Q$Ydh6^K%hcg=O+CYwQZ zT4+MF)A4*%=1gFfD|PPFqz~G zP$qEBNG#Iu3-$5QadY$uc7^D#Re;7@a)zR;{osazm=&u? diff --git a/LT/Demo/Digits.CPZ b/LT/Demo/Digits.CPZ deleted file mode 100644 index 6cda2aef3e98b7e97ede01b1fc7f9c57ed8a3dde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2512 zcmdPbS8;RKF;WT1$ShXK$xlovR!CIH$t*5W$WK$KN-fG)C`m2K&CE+INloG9QgL%v zf$1nNDay=CFILFRE6G7-~jNW_Bv7=_MfdBo?JAWas6V=P4u>D+E^-hon}ND5U0<6lJCs>w(+?!n|BQ z`H3k$nZ+d*FBdOYS$<}ULU2ZYxl3kxW{HNUp+a(oCNEbtFBdE zhH8|GifRgosiLB!lboTeZlJCMQl+4P500ozlj$1J#xSjIzb3#oN@^ez+b4yE7ZF4~Z2WEm3t%8D2Nt$y` zYGM)C8dypVPAySLNli;E%_&hxN=(j9F9Jm&D7!19CyEt{^A*Zd6*3abQsH$*eo-;Zas>t7)ZF0I5)DWS z)-lj2&a6t!PlNI`AwE=4Kz9T<)KJqRNC*)MgpwB2$%s-CTEKzg#V0i{y(Gg*H3h^` z;^pE58La?LhM*|p%qz{+HiWrM0hakdqS~>xL5X=Op(d(^2HNTd>Tp{?MN-BU}PGZKq5{6c+vble<$ zf?Yw{I6?kO&akz0_K0^53GxY4sHsta@?C?SHNoLplv+|+lxNM$#R&=_aEYV=sVbn_ z6>T9YBRVq{oTWGw6c9y{EvWPcX;x4`sxvqdkqYu&+?NK{BEN-WRJOIIi;%1Qor%R2u0N80r)l=_Kdpo^C6q{aLB$GiB4 zI{CQ9JNtM#duw8tke88}lv!e%SrDHIVS?<5&o4+VN-W9D&npINa4&MoEb&b&P|!+B zEKap`FLKPuOf1%LFV?k7F9HeaxD`W;261%lAl?e{4~UQO57O2Ea~0wg!aY1gTp{Xk z+GiUQ6zU4LG(0oUH?acD1bGY*3btyHm;p<<7lC5}%nm3m3D!_jQE~QBQBi`}laj9h zjxGgI1lYQ#miQK@Yp4|%>ZlbM>3~99K|w)5!_daYH`qPi+ch%Y#XsCnQyV7Y84&LS z6+&0+84w>79~z(uu}49nxID8YIYU7sIX6WUW~YKea$<3+0?2Hraw}dgPTYQXbMy%Y zd7cv-VzvSK1)&Abpd@0=%f(4t(Bd&28nT>8MX8C|-~a=89@&Kuzk=LYVQ5=mXsu9b zXj@|ZvYA~ zPMq<<333xk@P`JV#D}kcm@7EYiL(aX;kCS6oCIBmBZOe-0~A2WN@_uAqgDYuOkm1E z9#&95OT(b-3rW)8m_Sa(j>W~9>3L3>CB)=t9gsorasXl#?gR!_49VwEYh6-vz_A3< p2`;}}z(tp}f`Y!jYei~uX-TR=c}8lUf^ueFa!zSVY6>qG0{|CwiAw+g diff --git a/LT/Demo/Doodle2.CPZ b/LT/Demo/Doodle2.CPZ deleted file mode 100644 index 1ba07219e50b2b7ab4744ede8b478aad4bdf0483..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1356 zcmdPb56Q?ZR>&+?NK{BEN-WRJOIIi;%1Ovukq$w@WR zfNAoyP)N>A(MirL(Wx-hsWjB7Fw&_s(kU?1DKOGW&djtytF%!i+D^%mb@&%FoXUHBkU5$}EUa$uCXHNwswjl9``Z z4A$UYTrm6TYVYU^I)n3I`Utl?g)YnNUG64G%ih8PXv=-NTN733cf?;04Y ztpVmL#3_V(c!sz_)Zw(xHY6z26>MpEW}a_i1(*r)7$OvG)gZA1mU1rw#|oGoP+AhK zp`@bX?4zQh1hFS2UjZC-3ZO`^bx$qvEl$@^D=^eiD=^Xlg}8!(f`W#jjg4=xd%U-6 zWW0-ixSysrOvE!F-Ulj#uGljmJ}5pkKoeq*f3q;#38Y z*-+(Hyj+~P{qE-I6Abb^Cpg4x1M&+(3!Fho#G03jlenP8V>&csIg^S~6SKhq2J$?z z3n6|5xv|2~w!qL@q0-Q{zzAe{g%N~r1m!2^mDn19B+4@~b5g;+R zP;f5_E=WyH@yX0f)c|<_B@bj4#215PK|#ogGln=pu0)BD&;XPe^7RjM1xEv?fD=475yq1@X)4d4fAY)_~89?);0oXA(f(VvCKp}*zq!yGoY8BAK0;U{f zq=EukA_nDONSX#m1#&ueEH2JW&vVKwAtp=ffDD2c1Q4rmr!cT$NJfWR>ynxS4hN7< oaAD>GDZs216!i67D^in7OHvieGg9*ulr!^^b4pWEQ+T-;0DTRQH~;_u diff --git a/LT/Demo/Exceptions.CPZ b/LT/Demo/Exceptions.CPZ deleted file mode 100644 index 4533d59f9519c8731ed8b72eeab007f2aa2e05a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1028 zcmdPbS8?*zF;oe64D$2zbGHKV3{(_c^7GV76pB(yN{jLo@=Hq;^3xO&6_OK6k~6An z^*BQ^GK+b+^!0Ny(=$pG(o;(m(lRSjQ}lSbc)65QQqwZ?QWadC1L6%i4N(P*IE_#R zj5&=_1xz?iK&F)CXQn6wXXKY_X!3GZ^KvODcv>iAT7wwL`K2W}c?wEy#kzK>70Iau zCGm+x>B+WAI%pzb)oJ-f3L2TV2G*H2=+c?m+L|B(6%+!BGV@B@G|-GJi&jmEwN*8+ zh=?hQ$y3tFM6;kQIx|+&nwP5<$eZ4hf~3ke30I!>59&WWX<1euwq-~#pmCrBSS z)y6|oifu?xs4LW71%+Bj?1QOVXgorqBQ-Z49w^9xUy+LCumqGfvf?g6=*V5PyqQS6RZ-8hf;HjQz1TrD8%k@m`8cJTvBuM It$Dc^04Bc?rvLx| diff --git a/LT/Demo/FPrintF.CPZ b/LT/Demo/FPrintF.CPZ deleted file mode 100644 index 79d0a4f48058d45a51f7ead037391cd0ce2a64ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 659 zcmdPbQV7XNElO3$ELOEHy7PHLpY=Ex$;iBqOs} zkC#hJpO=f5OF1(yIj1xwRY6JLCq&;RH8)>Bq$o8N#PG_`%u@oXDa+4Hfq4WZq2Xz$ zpp{=*QczkF4{~*0Vs5IfU#O3dCNEbtFPDNssD(nBt${U&=~I%Xpp|3mQ($rDXE>hA2Yw{^c z3n(oKcC9GU$k9_6el17e> zTV`I08z{&%z&_Vf(n-_AZkMNvjxNFkpOUno)a1mRWQ`n%^2{^^4Ya_}Q~(EqfES&T}fu)149_&X2P}GGNWtOCZoag8h>RVXe=EGkJ&(E}NzrKP10qItPg0z7q;Y>LbCi&E^AbPQD> zqWDSWl+?7$yi|oCe}CV2zfd0^P6J*p6hR-)Fi$^sPD3%+xf{ll0vF7CpwNOYdEkcrk*kKLQSC*fdq7a;sUmlQOT%1~5oSC0j ztf9%vRSgP?`D<~u<7DJN{Bo?iBxj13r=aX5MnU}5r zN&=wp<4h__P0R*ct)PIc6OuBJbvozd7pIos)#T*rf~>foq?Wg=Td^4Em;RzU$H`++=xZjKAs9E5IL zq|AfOAXxl^%>e~0FP8!|OCTjSYhEq}CI$uuMg|C2#K6G7%)kH^!57=%g&83qQ1cm@UrGbjz!1rh>j$%E)tXJBARfEt_+5mI4b qU?^ZOv1@$* diff --git a/LT/Demo/GameStarters/BlackDiamond.CPZ b/LT/Demo/GameStarters/BlackDiamond.CPZ deleted file mode 100644 index 8262d3f24c01850b9faef4eb730fdd2afed95bed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4485 zcmdPbS8;RKF;WT1NG(oP$jnVlPc2p`Pc2GSNG?iEEJ;mKD943ONJ>o3hT0A@zz=M0u|i@|szPFM zab|j6YKlTqCD=|-AmkT8HSluraw#Y%D5wN@>L}S5+bQW7tANC?VT3v(J0%?>Eb5d~ zQqwZ?QWg9{ed9xdTwQ}X4UH^7MtNE&RM;9C80b`jNNZj$PYZ>TqSVyl_=;$_;#eJs zP$iNOL}_wqQG9W7QEF;le5I`cM65VDzbF;V;pHmJ&rDHpDM~E&EYS!lE)Fg!Dorj? z&?+e|*5u`?2Kms_LLsR%E!xn?BGwwp&jd5vi<~k`d=m>4w2~5wQ*GUg9CI=gi#5`V zKwKjokP+4(AHYI3JhLPtzqCZ5BqOs}N1;3w9F?FLNH5AS%}Y@zNv$Y>hAm8sb4Frb zdMY#}xE1T#fz-q&mXs7_CY6?e5}=Neib7_ZLS=rbLV03d30h*vS4f7K07@1}Rwd`> zz~fOt!8s>2u_!z5YWnM{Qg+hKBD4C$TLCG_(IJKxm z!6`E@v8Yl>p|~WmBsDiRuS6j;52RWlEk7qGzdSQ99qM-lg|z%41&vHw1M5s1cnn)- zYHMqPf?q+wy~s5uHMck*C%;4k6x7hTuZYe>B!kRYUF4Y8G0;)*bkb3>fh0doaJ(oe zfOPBHCFkelWEN-U=fx-Im4K54OeQHC98k7F{sHmM{ysjQ!Jhtp+Tk9aA+FFAfaa14 zol3Y>kQ@QBN&yr@V5g#4rl|l&>*T7J)CX7JBzY zP-8nMzdW_LM8QNMDYK*)Tm&JdI*0~^(t?82A_Wt8bO#3%W#*N*X(W}V=_mz*@}`w) zijodE2taO9Pyj`BcxGO3Nf9V{>VOnF`8YazL!v^<&`ifr#}K5n7L?z>S=uu%vm^vm zOlTnGV@STmnY>`J0VzvB>B%-IF)t<5MAbbgKHSqK!~-0(3efVWGCDIBrohO+!~!f? z%gY6J1hiyv%1KPlcF9c4&Cg3gc1d!EPH{3=1K71%`8g@^r3ER8C8@TcYz|?@muKdI z)i~wn=Y*OlfD|R=7p0^Y*@kE4Ie}Rk{%&p{pDQSYXXg1PR)E!`8eyvjDc`_S@Nfb1 zQu1Mb&P-F#2u@DS^G>bQP)p9xQ7cZ?geOl0h2rwelH?2pjpAgzQp0G2Sg;gla$<3+ zLa=kZb7)Yoe^7jor@Kdp6)zX3fDky*x2dsDxPgO|C&r>e}7u^cksg=bgMfusO#R^HK znK>z$dFi^P1*rK8nuU@|)6!C56*0tMx17@A4Bz7PVsONQEdohY+G&${kG@en=(HQ;>6=H7^$f69WSnGcYhPWUxWlVhjunIt&a9&I}9;zyAOK z|L6bz|NI~Y3=9naL4Y4b{D+hEe?aW|A0W~miBtfy6+VK*`9FY2b};Gw0K|3%lgVH* z@c>A~08Cnd$a;y6|NQ^!Wg7nT|F`D>kqUeQ|M~wbu!Bf`cBcRQ|NGgM{_+23R{)a? zZ2$QGA6It!!~g$3BbXF)0I>xg{NVrpU!dU!|NnXh4lrr>f&aff!$%1DkpI7ez+;ff zV3MEl*nj^2{0v7xBnOD>=jZ|11t!@$K(2D{k@(O5-x*9M_gMVn|DW7r_>cep!+sF? zvA^&S|9{3m$sm%U2IK}t29O($GlI$gANl|PKmH%&U-C#$WT1xssL0?CfzdpIKaWU) z^T>a29{CT>Beagw(HOxWBeX5GK-CGT?qLQo7#J8nF)%QI*dQ?m4n(EI#=yW}%)r1P z$-uzi1yL<)2`R7#Q53Dj69V82A_%7;G3A7z7y@7~~*IRTvl;ETCMdkPrg{g8~Bs z1IQGp5R3_;IUyQhOi;B46@oDZpqd#N7(h&rEIR`OgDgZN$Ve^*1_ot>Dp3Xo29OF6 K4N=6vzyJW!1snJP diff --git a/LT/Demo/GameStarters/BushLeague.CPZ b/LT/Demo/GameStarters/BushLeague.CPZ deleted file mode 100644 index c45f0960d7ce0f85d6a4c28d1670b2f1881d99db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3519 zcmWHwP$(+R%S$baudp@Hfif#?4Xk;&Ku{&XQ%A`LB5Y`=)CRM$~AQrA&8R@YI;FH%r9QCHG&@^N(b)(-dZ3~{xwG0`#5G0?OI z83D3O*DfhLIX@@A$QG;$ES{OBpaJo0e1#@RA;=G|IjOnDAWJns+F)T+0b^9^80bKh zDk!LUI-vy@$Ucy)dyz|O4%h&YNG-^JyjQ{cw6!qMg$f1dq^1^V7=ojUvzC{OGpQ&wF&pd&ko6FojMQmi6JeJloC!@Qm9{3N zx!ib2xSViEAiNC^2~r}^WaI?{;V^{;AUr@3`2=sKs0EcUwF>1KnK`MTe5q*b>=ExA z666!8pr)pfoB`&$20KG?FsLLz6eqTbg2tMc3tTXP3m~V`;tZeE#Prfsc)^5J$ftn{ zt@x7SVsN(fGz67KTE!(0o`nL)AG}=pS}Jbt;3^{|BePhcxFE4SuUH{bp(L?5TcJ2# zp(G=*M4>!YAvrNmAtj%eE4?VOAR{xm80wMYlFXbOh0@~8ymW<{M_8cycAxp zoXosbJp~2-l8n@%^338?9fk5#^%RAS#IjU{l6-}N(h^>-lGKV4h5S6Q#^U6n)YLqM zq)LU1#Jm(eP}v)vs*stNoKu>T3RVGfr-_PNv5K3!3W#l_qEL`nl$e`Zl3D~ZvLrPp zM|$OnuwzP#ic<4RAb!a#2Afil2o{3*tRy3qmn%6VGbcr%9ORSCyo}T$upy}m z#g(~9`8mZ3`DsWx^?12FK`zcL1{bFwZz+@~=9PeL&WHFfJ1@UHCp9HKm6r>u7vx?O z6>u%0p^4;yw9>rflFa-(uzx|~TKb@50*^V{U{HK$sD&1%7CGmp_+;j#>L`JYQPOcM z1|=1cax67SNqzxx^`UJDtv(_`5_7UO;O0XO3n|XFjww=to0phb5>lM)nUa%=PzsSm zBp1)T;>?s(g^bjqR2_xN{8IIzRE6Twf`a_w)D%#3n>=X^uiserZW&UTU!dr~rUD z5|pYFi&7O-e7tp(0&+`&ONx|qlzjcHpllTlO&wk?uq?DHhDgIWAbGfEPYZ}-KyHbr zg_4SfCfE(UT#@;u;E*XvEiM5E2#N<%GK*4^OL8i86p~6y6!P+mauaiMDtWmu{FIcc zkW!Rc2FXJupuAk3nU|7ZuE)!TNLT@-CBYg>Dk{!CDk@5v)(Q&x`k>D3#VLR? zBuFtRQ6U-{pvGN(NPYph;80K~F0qApUqdN4GcP?SRY$=kzcdL%hZJRk;wZmJ!2=Yu zL8W>2F-0+XO1xa0pjLr`f|9yxMP`XQD6R@iGfVW)WMM&(n3PnMT9%nu0xCkR6u=1+ zWI(2^Z(>PuhEHa3iECa-QKd$4iH=fgMP^Bi0jLDZNsTc`0Xrqepakrc7=sLuLyAiC zVhogYe0^NwJ>C8MgIwdC9T9CMx1!Wkjp7ne0tZY&yJ_QBu%$yvAcOhYiR1U#Rb5G1oRq!uMEdrSbuDB3&mNhRI z0}}%S7&9<1Fx-T)L1K&?P!0nFgB%nqGB7ZRgA_6_z?e!53=Dh_AsADQfq_91A_QZC zXpkWc3=AMuybKHsAR&k%u<>jR3=Fyq3=E7AF&I;wfq{VwA_UUU!oa|wz`(%34G~g? iPz;(33=BX1|Nqaxz@Wmw!0_w;|NkIs{y~Ho{s91rxUL-l diff --git a/LT/Demo/GameStarters/FlightSim.CPZ b/LT/Demo/GameStarters/FlightSim.CPZ deleted file mode 100644 index baa3c59..0000000 --- a/LT/Demo/GameStarters/FlightSim.CPZ +++ /dev/null @@ -1,348 +0,0 @@ -//$FG,4$You probably want to avoid -$FG$//$FG,4$three dimensional graphics because -$FG$//$FG,4$support is not very good. There -$FG$//$FG,4$is no support for hidden surface -$FG$//$FG,4$removal.$FG$ - -#define MAP_WIDTH 1024 -#define MAP_HEIGHT 1024 -#define MAP_SCALE 20 -#define FORSHORTENING 100 -#define CONTROLS_SCALE 0.05 -#define COORDINATE_SCALE 256 -#define COORDINATE_BITS 8 - -I2 elevations[MAP_HEIGHT][MAP_WIDTH]; - -double - phi =-45.0*pi/180.0, - theta1= 0.0*pi/180.0, - theta2= 0.0*pi/180.0, - speed = 0.2; - -I8 x=MAP_WIDTH>>1 *COORDINATE_SCALE*MAP_SCALE, - y=MAP_HEIGHT>>1*COORDINATE_SCALE*MAP_SCALE, - z=64 *COORDINATE_SCALE*MAP_SCALE; - -double grid_size=64.0; - -class MPCtrl { - double phi,theta1,theta2,grid_size; - I8 x,y,z; - BoolU4 update,done; - TssStruct *win_tss; -}; - -MPCtrl *mp; -void InitMap() -{ - I8 i,j,k1,k2,x,y,xx,yy; - MemSet(elevations,0,sizeof(elevations)); - for (i=0;i<10000;i++) { - x=RandU4%MAP_WIDTH; - y=RandU4%MAP_HEIGHT; - j=1<<(RandU4%6); - for (k1=-j;k1<=j;k1++) - for (k2=-j;k2<=j;k2++) { - xx=x+k2; yy=y+k1; - if (xx>=0 && xx=0 && yywin_pixel_right-tss->win_pixel_left)>>1, - cy=(tss->win_pixel_bottom-tss->win_pixel_top)>>1,height; - double d; - GrBitMap *base=GrAlias(grbase2,tss); - I1 buf[128]; - BoolU4 first; - - //Adjust grid size to utilize whole CPU power - d=1.05*win_refresh/win_max_refresh; - if (d>1.5) d=1.5; - if (d<0.666666) d=0.666666; - grid_size*=0.975+0.025*d; - if (grid_size<10.0) - grid_size=10.0; - grid_s=grid_size; - - //Pass stuff to other CPU - mp->phi=phi; - mp->theta1=theta1; - mp->theta2=theta2; - mp->x=x; - mp->y=y; - mp->z=z; - mp->update=TRUE; - mp->grid_size=grid_size; - - xx=x/MAP_SCALE/COORDINATE_SCALE; - yy=y/MAP_SCALE/COORDINATE_SCALE; - height=z/COORDINATE_SCALE-elevations[yy][xx]; - if (height<0) - Sound(1000); //Signal plane crashed - - base->color=BLACK; - ClearWinText(tss); - SPrintF(buf,"Theta1:%5.1f Phi:%5.1f Theta2:%5.1f Box:%5.1f", - theta1*180/pi,phi*180/pi,theta2*180/pi,grid_size); - GrText(base,0,0,buf); - SPrintF(buf,"x:%5.1f y:%5.1f z:%5.1f height:%3d", - x*1.0/COORDINATE_SCALE,y*1.0/COORDINATE_SCALE,z*1.0/COORDINATE_SCALE, - height); - GrText(base,0,FONT_HEIGHT,buf); - - //World to screen coordinates - r1=GrTheta(theta1); - r2=GrPhi(phi); - r3=GrTheta(theta2); - r4=GrMulMat(r1,r2); - r=GrMulMat(r4,r3); - Free(r1); - Free(r2); - Free(r3); - Free(r4); - - base->pen_width=2; - base->color=BLACK; - GrLine3(base,cx+5,cy,0,cx-5,cy,0); - GrLine3(base,cx,cy+5,0,cx,cy-5,0); - - base->color=GREEN; - - x2=0;y2=0;z2=0; - for (i=yy-grid_s;i=0 && i=0 && j>COORDINATE_BITS; - y1=i*MAP_SCALE-y>>COORDINATE_BITS; - z1=elevations[i][j]-z>>COORDINATE_BITS; - GrRotate(r,&x1,&y1,&z1); - if (z1<0) { - z1=AbsI8(z1)+FORSHORTENING; - x1=x1*FORSHORTENING/z1; - y1=y1*FORSHORTENING/z1; - - if (!first) - GrLine(base,x1+cx,cy-y1,x2+cx,cy-y2); - } - x2=x1;y2=y1;z2=z1; - first=FALSE; - } - } - } - } - Free(r); - GrDel(base); -} - -void MPDrawIt(MPCtrl *mp) -{ - TssStruct *tss=mp->win_tss; - I8 i,j,*r1,*r2,*r3,*r4,*r,x1,y1,z1,x2,y2,z2,xx,yy, - cx=(tss->win_pixel_right-tss->win_pixel_left)>>1, - cy=(tss->win_pixel_bottom-tss->win_pixel_top)>>1; - GrBitMap *base=GrAlias(Gs->grbase,Fs); - BoolU4 first; - I8 x=mp->x,y=mp->y,z=mp->z,grid_s=mp->grid_size; - - base->win_tss=tss; - - xx=x/MAP_SCALE/COORDINATE_SCALE; - yy=y/MAP_SCALE/COORDINATE_SCALE; - - //World to screen coordinates - r1=GrTheta(mp->theta1); - r2=GrPhi(mp->phi); - r3=GrTheta(mp->theta2); - r4=GrMulMat(r1,r2); - r=GrMulMat(r4,r3); - Free(r1); - Free(r2); - Free(r3); - Free(r4); - - GrClear(base); - - base->color=GREEN^WHITE; - x2=0;y2=0;z2=0; - for (j=xx-grid_s;j=0 && j=0 && i>COORDINATE_BITS; - y1=i*MAP_SCALE-y>>COORDINATE_BITS; - z1=elevations[i][j]-z>>COORDINATE_BITS; - GrRotate(r,&x1,&y1,&z1); - if (z1<0) { - z1=AbsI8(z1)+FORSHORTENING; - x1=x1*FORSHORTENING/z1; - y1=y1*FORSHORTENING/z1; - - if (!first) - GrLine(base,x1+cx,cy-y1,x2+cx,cy-y2); - } - x2=x1;y2=y1;z2=z1; - first=FALSE; - } - } - } - } - Free(r); - GrDel(base); -} - -void MPFSim() -{ - while (!mp->done) { - while (!mp->update && !mp->done) - SwapInNext; - MPDrawIt(mp); - mp->update=FALSE; - } - GrClear(Gs->grbase); - mp->done=FALSE; -} - -void AnimateTsk() -{ - I8 *r1,*r2,*r3,*r4,*r,x1,y1,z1; - while (TRUE) { - - //Screen to world coordinates - r1=GrTheta(-theta2); - r2=GrPhi(-phi); - r3=GrTheta(-theta1); - r4=GrMulMat(r1,r2); - r=GrMulMat(r4,r3); - - x1=0;y1=0;z1=-1.0*speed*COORDINATE_SCALE; - GrRotate(r,&x1,&y1,&z1); - x+=x1; - y+=y1; - z+=z1; - Free(r1); - Free(r2); - Free(r3); - Free(r4); - Free(r); - Sleep(1); - } -} - -void SongEndTsk() -{ - Sound(0); - Exit; -} - -void SongTsk() -{ - Fs->end_task_cb=&SongEndTsk; - ResetMusicSettings; - while (TRUE) { - Play("3etDCDqDetABFsFBFBqC2G3BeDF"); - Play("etDCDqDetABFsFBFBqC2G3BeDF"); - Play("qReFDqDeF2GqR3sABABqFetREA"); - Play("qReFDqDeF2GqR3sABABqFetREA"); - } -} - -void EndFSim() -{ - mp->done=TRUE; - while (mp->done) - SwapInNext; - FreeHC(mp,mp_heap); -} - -void EndFSimCB() -{ - //We need this to shut-down CPU#1 task - //in case of CPU0 task getting terminated - //irregularly. - EndFSim; - Exit; -} - - - -void FlightSim() -{ - I8 ch,sc; - double pp,tt1,tt2; - void *old_update=Fs->update_win; - TssStruct *animate_tss,song_tss; - BoolU4 old_border=WinBorder(OFF); - BoolU4 old_wordstat=WordStat(OFF); - - //Set callback for irregular aborts - Fs->end_task_cb=&EndFSimCB; - - WinMax; - InitMap; - Fs->update_win=&DrawIt; - animate_tss=Spawn(&AnimateTsk,"FlightSim Animate",Fs); - song_tss=Spawn(&SongTsk,"FlightSim Song",Fs); - - //This heap is uncached - mp=MAllocHCZ(sizeof(MPCtrl),mp_heap); - WbInvd; //Write mp out of cache - - mp->win_tss=Fs; - if (mp_cnt>1) - MPQueueJob(&MPFSim,NULL,1<catch_except=TRUE; - - Kill(animate_tss); - Kill(song_tss); - Fs->update_win=old_update; - Fs->end_task_cb=NULL; - WinBorder(old_border); - WordStat(old_wordstat); - - EndFSim; -} - -FlightSim; diff --git a/LT/Demo/GameStarters/Goons.CPZ b/LT/Demo/GameStarters/Goons.CPZ deleted file mode 100644 index b3f4f86235aea7b5c642fc8a6ddbba989cfcc435..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6364 zcmY#!bJsCZ(bo^jNG(oPNGwWKD9K1wNY2kMO3BPiEJ-a^$WH?c733sVrWWa`xVfwF za(P-PRM;BmRNA@+#e2AVx_gA^8(H&mfgr-b%wmPiVueHnH%~Wz1&y@KqT&+W%sd4M zBfqpnQz0d>BvGNbq^LBxq_ilNmrGy2JR>tXLm@jgwV+s`q$n{t8)SV_X--aRNwJ=S zLU=}Mo4^#0Pu$hXgAa8-c?g=0jTp9SAeOv;@Sih=wbT)hVt-;z1*bmkZ(xP@Kb} zC@nKBUjb{_gB+BUn4*wgiq%Q({{DV&C#C1-=Yay<)<6fsgg7Z3;v}%rSeigQSik8Ti%ZK488Zcx48 z^iT;lEwQ*bGd(Xg1*9)gA+IzyDYZyXK_LKSoB~KQ)SwU$+eAf2p(rywqeLMuzg$P5 zBwwL86`a&TA)Aqzl9HOI0FL9#lFa-(gs(Eec|s4Inm`tnq*j!GQdMDTehDabR_2!~ zBq!!66sMMe3@y({EJ-a(Em8o9mnY_x=zugOm6m|RC^au7GcO(LRFJm3{1SzvR8WxR zrKhIoDJXcBfYfIegUu@kWiycbU}2qEtN;xLa1dq|E0h*P{GXYpkX8!Hy$VICX{kl2 zdC958AoqZD7eM_0DKo&a8Q`g-WE0@2U}&eLW2gcWLdGgEX=6Jj9b*h>kW#o36FVgx z6D&#~VGd2)Mfs&ApxjehkOD5tK&~p!%uC5H2YVS*A|xl~VqRi; zYLP;5WpPPru0ly-aW*6}pfOxhTnw=a;&G6tK_LjT0i+h1oAS%^ijho(X6my1%oGKe zqQr8~5{;1J;$UzIsGwC+T&&5DJdz$}GuEEYO4KHBw10N=htFHG(=g6XGO@8i+$7x-yFuic(XG z63g=xKxwH`p(HaGQXxQ02Za|TC{v(5QBZI%a>^|6O)OB*0$E|}UgQXJl?K#C9gv@( z-f+%IO)Lt}%nM1aDA7O?hqy{#A2a_zeV&(J4oXtRsSvk7GfhEaQ3=G^l%WLQBVMdzE5UeD#X6xis&qGkq;t4Y+WNz1&|dBQCtghWTq{=WJa?VB2J{W zApcFVR-AFgAd1BxuHCV`6P+|uF_1yDxFgBq2p zTUww{RGO1otcTmIT5!<^Z>oXvDYRq*l?dPxOaWeKgNvWcJW%0Yl%A@Pp9U(IK(!>u z)u8eT)c8mTH$)V2ON%p;LD@Px6I2XBO2v}WqC8N$53CWSp%~O?0hj!#c`1;>18hlo zW=RG(j~c1CR%C)(M@A}oAQ2T_E^r|ioS&EOnwJt%oUH*X+JZrbX&68P9i+{gmkaDa zxCUg^kn9RA&Qps^5|eT=i!)L|?aH*$yku~l32C^LXXfO9>oi1gfKt4^en|$Xz)LL7 zM)D`5N>Wg8E7rA3%}a>~c_%(O$yN>FU~m)$r52}__<{l{IJKlCGcUauEDX)9Awi+8 z@FX6PlUS*tROnLZQtaaF;+$IIsfuT+TsI{)3 z01k1j{G60{NU3fM3JwS}zC1Gz>{VF%tTZn^KhM_9(I?mySsbLfJijQVxFoT}Hax#5 zCAcK9M8n_B4dP0uZjh>^{Gyc9BHQrHJSQ*CD6tG_X@FuF6f2-?0!qBFq?!k= z?GQ;AUM?e5q{aDp>G37S#kRo(iRF13;7AQA&el-^hm!&*j+J!Wia|~U*&du)5>i=^ z>YG@SnG8ypkXjQ|C6z zq_;TPw!p|*Avwdgzz|y7frMc`vqkX+sFLGEM1Lx%Y%DHO05z~P(=wA2^GXzwDoa46 z7&zYHuHoh4)Ys2UNzE(COv?l{IWtlf5Dwu4Syr5^S85n-5Nm52>>TeL8Wijw1PMB@ zoeBz-+O~$EBA*jdIaS)hJF~jR2A~QGcb*lY+507nF;f(i_A_Z`3G&8ke}5HTWAg3JT!njJB;Q+;3pFgIW-vhzj>~ z3Go1h1H2iftqoTRj-YB@F3wCtl=coMG#_RfDniAf?Hx`9g)Bo`jZ8y$I}6+ig|xGv z>7%$ZIxE)BHoY=B%P;v0MZ3}qF!OVaMCfrg)9tE{NN{`%p8aQD?iW;a4 zDBalxCFZ4sny6|Z$|zFHAY?tr(sk?LrW0T7R8=E409O-E5;rFUjdjs~pm)wD*` zL+Pm{3PqVIpaCwBG`KSjsX`$wuu^dM9Mt5n1+^3)T!d4CQj1ISi&7Qxi!#$Q^Ad9u zpj~u`It6GaA7&t;fdMiL(&_-!^a={_<_Smw)@T7qfl~muZD0+rixi4V^Ark-^3#hF zb0KYO<;=X~oYIuk6o^eAl7WeVfq{_$0^Tw(fcYRX1`Y-W24;vjHv6l7pv;Drdmm_kt13=9nX3=9lB3=9k+3=9l^|Ns9F75ex8|9_AHASnh029QRO z5Xfkdtx#J)OgRPyutSi{067N9#^3+{{|6cW6=FQdEReAv8e{;}c#t_DRUlu0Tnq9c z)N>5(j0j(|gY-Zpgc%qZEEpIV#26SDv_YB>ObG@C29S{q3=A+P$YhXeBq5L+5c)Ww zP62rwi3t*xhNyytfhg1rsNEnZfouV}1LSTth-y%1fi#1ppm8G!4JIjw3O=YgARCcX zfi!~R2tKU4g&)N$aFK1IgpeEQUwYPs45s!k%5811fmM$5m3;Nh`i36c`Hped3dL|>?d zLTX-WZe@H*YH>+Xer0M(d`V_*s;z-FFIT9ALP1VqWoi*F$&AF}{33*UPYZ<#TSEf_ zok|c1GQdzlD>FCU&{oCMNk_>hz{n2dbcBQvOv1!YNykJ5Az=)YFtt@-tHu0>FL?DbCi=t+A#8Se1f8aDHiCibf{LJ)k%X&Ph!z&@hB>YeD)U3JgFZ zwIDZx?Q_b{&n4eBLjwbCLjwaXjZ8H|O_0IF+04rYw%esBvD~vnBc!-ExTL5wxkN#$ zq_`O7?NErfK@NA$Nlh#Y&&&%+ttim|DFFwUf&wTCbnTM!bMlL9!#zAhT#bnTL|A?7>zI68ZS&Cg6z z(7={-;Su3psLP9u<=AVnZM6|v?kxXU44PR`HC$t=#y&x=paD}mYt3v5_$1o;QV zJNx_icm{j=`)MNr2Nb?&zRxVE(8(--h5$4@Dky+lgT*>Kg9;-9xO)_ElmpP9)AsUo zbBm033vvy#R#4E_&(BL$C{9hz&r1RM7ZiHI1&QT(8fwr)4hjj7C^$EO35W||oX`0++Hip}5v1{n$V0=O^%7nJZYg?JfX977U3N(_S& zJ}GIyCo?YYN3#ylME}9oK#zz3(^Q-#+PU2fo*}hp(M4UBtEgEqzJ4A&dW?HEx~k6UPfk8W(mmAnGhz( zwD|mj)S|?a%>2A!u)#>qFDOb)%`GUg4S>)Z{%&p%2O_B{&o4?TE=er04bLx12`))2 z!Kx}LzbGZO$TmDP&k4*zC<@3g2rcl;D<~}qfCMDi5t#+?*qvw_5(G^ZpfEx8uPwMR zfs~9kHYQ+$K&lWSXR8LO|G-k=nR&j66<{W`n#ZiaU==;2`2ec5Y=aW>QbLVX-Gk!8 zJzYXP!1@)SO^(Xw%vdA^9=pu!FfkQ=tNyiXk$U zHU^psmA39d@ksVVq%sTQbCN)oDd_9xq^7|vvWM7&nlYd`2&ur=Hv$*=8HqV**vou) zLkf~g6coU|R#1Sni%h}IAgCZx!$?5^6iH}N2}=BMA+WbWijZOwqyWMN%c5mOTaa{S z0a(hhxHvOC&ndHnm<*@`(Fo195P#rKj9|r(tOT~orzFiOzoaBTR|DkQ*f` z2SVcE|Ns9585kHu7#JAt|NsA=fq{XGfq~)H|NsA=|NsAA6r`7d;p_kZ|Ns2|{~x50 z86pH@vNJF+h(Uy4%+LS-|L27W!I$-Q2hP> z|NlQo9OOHYF`xhevGb6U7Zb=kpqOD`U;tSGN<1JMqz)&@FhG+8j0vKlNdm?+ zVqjnZrF8}d1{f1$Cdl^;3=AN%Kq(DGLtPJJ$}%u8fD#H+6^IEk6XaJ01_l^2f`Nen zl)M-i7+}l{1_p-55U0YJF^Ir{F+&*`7~VltfrLQD$3bI^fq?;||9T7z40j;L!21_n@KV_;x_F+r+9NeHA6WHpFpU|p47wHO!}Kul0{xic^@NI(pPF&z-m24jMP8k!+OpuR9?U|;}c zDFy}x7*i6F!eC5LU_#>?#$;q*U;q^>3=9k~Cdiqf=!3c#!~~Tjpb%nUU{GUVU;w2s zP@w`+$-uy%0@VzP5D=Szfx!Uko)iWK22O~FKpH_o3GxLr<%2R7NC>3h1tfAA08Y<_ Awg3PC diff --git a/LT/Demo/GameStarters/Swing.CPZ b/LT/Demo/GameStarters/Swing.CPZ deleted file mode 100644 index 9c99e690253559067e50769b0a5f186e1dcd1050..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8229 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 Y{y^OW5(DACPn*k%^M znDOPAdGYxLsYQt;nfZCe7#a%VQ}Roba#C%bN{Thq+=_MWl8Z{>({d8ii*=lXLek>> z{Nr8xL!EqFNoh|@aTkf2aku#$k%l3)!b6%}V66%{3j zA?`)aIjM<7VCj^61#mbhC?w~m*t(~d_!g&Ys1+FMs1+FL7~0tQ2D`_52E_ZshX!aP zxIyuu0T8nk6f)BkG(dW7k(6q}3{_A_j?RqLtFSFFw1zM%Z3~Q`%qm+0up1N<6cmzl z?UM6z@{4TUgIrzx;=(;VLm=)4NxBy~XBH*rq-rGTKw`nr0A{;_LZ-Gh)RbCKOw}rs zXJqE2g59JDa}&b7aC?GWU65>XFEWCr4vi$8WSvYMQ20UYfa`Gb33Wx$VvI|RV{vh2 zdY)5e2{93?15Q7%^|6O)OB*O0sn?a?Ht0EY@%@*0oD7N=htF)p0A05r%SSe;@xK6CG1SBM=5@;N=3Dt815>pOar?8}8v5;%W^O zD@e_YFV9RV$*?sByTm!OC^;up1EfL6*Z_o#3_xbM7rEu+=cl-3=HwV7%R(i6GV@ZQ z;${Xq5C~#`w1TZNf>|Hr>JkTbLQRl=K)int#3e?$c1cC0#Tm9Bi_sinq+?`irfX~f zqd-AnW)3nrGdCS>u9HuwE5u;9i3q=$!Nnl9_=WoTfNg=h+Xxi8U<|fL8)S)*sTr6? z_aoRrU>T4q1F$X>wWvOhboKG^4~M(Wy~ruQ0u+Q`V|0zc_JJr91055vRlHoD77Cfx zyj*GdMG6|3wg%RjHb$mq)|uM2CYlP>yj%(j?nTZysfk6_5VliJeu+ksPNuGrsTqvS vO*aAsk%B^SPHJj_1|$}1dAUHz%_TJl)53C%*O9Dyoaxnk^D7?Fj diff --git a/LT/Demo/Graphics/Box.CPZ b/LT/Demo/Graphics/Box.CPZ deleted file mode 100644 index f678e16dc09ebf1544895985e2cc3fc5fbd98494..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1394 zcmZ=Sa>^|6O)OB*N=htFwRJCY%*jkF)<`b`agB7`iZ!iyxp=wC@-tHuT#6FQJxeq~ zii?9wib|796tqf;i#2(RAUX04jo-X0|O*N0nAr`34)xYpn$0Xu0V$qq!iA@ zq8=;C^fFy9K2fGTSKnLO=I3J4!upF2`*8md4r2(QAJ` z8JL1op{Ip{R*|8OR*{j8R*|ueR*{L0R*|WWR*@N48k`NZ@^ez+OAAsGOHys!igoQE z%=q%mJg^#6AzL*_t^wyF1qD#**0rm!H8L;&D~9kZ(fDaOiRr~Pwoblo@gYHue!*`3 zLB5V5p8kGdJ>?mhIjIU7iowZ=dETj&nhN0jr=U<|XzN}S0`jE>*sq`vQBY7&C^E8j zFAB)W)F{Zvgo_!&)q+9-E^K1!UgTSvd9TDHZ8P)}v1 wDQFbi80Z<*)F>3&8S0s6Du7arK2$+1$bPhVMi_@% diff --git a/LT/Demo/Graphics/CPUPlot.CPZ b/LT/Demo/Graphics/CPUPlot.CPZ deleted file mode 100644 index 8ef03efdc08e707a2eb6c128e682661795d6f4e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2525 zcmY#RNlnYlOI7d-^^JFN3~`JP@b~l!305#NHRI*tt5uTlbKkokzNGi8tH&k zT7%SiS}0`dR2b@18tPOS=~Nnl1)XzJ6N|z#^FmT9N;Kd~)AEZHG%{@stut-V!ofOI zTU%2BY_Ea>$O2uv#Q{0_CD4clgQNF3U`9+l=!@wz#Xyc5q8y5sA&J{eW zlypEbNVIv-GS0ooB{c_}RzT+0f+{0$q3;|J3JL@bSUK+;5DF{(lfk(MtV%0CCndhL zASJOR)z+<8*ABvrFVD;atMRl@NG>gk2Paos1F(>9YHo09i3Y5w)G^R0&a6t!Pt$-@ zftp%qWiiNA3JOqNxv9BCYCv_2ts0~b1G}I+BQqyeK|?V(IWf;WwGv*|CEJ3Ezk<^E zVsI^2tPOP-+~=BF5HBbo>S?&|Vr`Rk?LhT%d|G01Nq!O7CItnQWD2Xe6cmWC$`EP- z*fL15N60d8#!yfIl{837L-R_DQ&WN~i+xjbwG8zP^fihri{mp=6AR*VGIKLabm3f3 zVW167777ZmOo?Qap`L**s6vHG=^Gjt=owfmDCp~lWMmdA6y)TW6f5NCDI_WsCnx5l zD&(gr80Z=r7$|sDL9%FYPHJj_hLI^GQWcOAhlaK`+#*c{RrGceI55EeLyK5M`m^Tc z0;gVHE@;xVR?yckE=epZQ7F$y%~Md$%uCKGO-W5*U}9hZV+IBW1_uQD&;S4bK~n$! g|NjqSGcYi~m@Eto49pend_task_cb=&AnimateEnd; - MemCpy(font,grfont,256*8); - grfont=font; - while (TRUE) { - MemCpy(font+CH_SPACE*FONT_HEIGHT,waves+8*(i++&0x3),8); - Sleep(100); - } -} - - -Spawn(&AnimateTsk,"Animate Font Task"); -TaskRep; - -/* - Note: You cannot redefine the zero - or space (0x20) characters. -*/ - diff --git a/LT/Demo/Graphics/DotNet.CPZ b/LT/Demo/Graphics/DotNet.CPZ deleted file mode 100644 index f2f55ea0fea0c07e40a1812a6c8fc0b87dc078ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305 zcmXTR&rDHp$uIFsEz!{A<*Mf8Qc&=;P{_0fG2DxsGE00D3ly}H5{px9-HRM^G82n6 z+>3SX(u+VsI&Q_9V3h$ynRz8{8cHfE&ORzCN}ARR3i|raIjM<73MHu(B_P8<>UHgs z^K&+?NX%1EadX!(QgIB3QgL%vQOL|IE=f&HQOHkI zNQ6o`L#5I(b5a$OQj-%)i&GUU^Gg-V6Z1+GN-|Ov$`f;P3K9!aixi6TOG`5IQWZ+_ z6^cs|D-|;H6mnB@^NT7KQp-~F6f)BkNJ^_vau0gTZAf;vbnJEgsmEnmwIRT*1(g-Oo z4lXGwO)gQ;%B_qqDK6IJ<*Eh+1z4qjP6}3~Aa&LtRh||KnJ`9{tygART4rjomZ5>Z zm#3RsWV~CDYam$Ky~ruE#5b`(K`SY-IMvp@$T24~u~;L$2*fqgfm#h#8k|}Zo|)&A z?VO*JU!(z%(eVj!@(Fd-1Sp_LvCh=C zH8Riyxl=*Gy~rmsFI5AiStnCFOVvWhK*vA_u2wfwH%rw5Yyn6;NSUr(QZ~#MM`v%a zHSR^OIjOnD0Xg|45TmkG-Gk!8JzYXP5N7Ec=@{s!csl7Q*?2lZA_{D?p!5Jve`)zSIr-(8dFh~p49)?W#TlTK;^wZRug{5W zA~ftkR@H*y9)vNIg{>M=asa0h1||ju21W)5kYi#1^Fd-<91IW+0|SEq0|Udq|NsAk zXg-Ki7*mmffq@eu1Y?>oFfi~!gkVf}1_lOph!BkFjW8a@1koUC7#J8}Ob-SIhM)ic z|7T!efHBPwLNKNj!VfT}AOi!#e~3mQ1_lNe1_lNhhyxfH7(gOi3=9m?2xoyD&%nT7 zgzyfG=>pfL1hoca?H`EQFeXURUx*Nh2?{_rsA>iV1{f3Mcc=&Tpx(DZs4{0@VEFO> z|9_ChA0cMJm<9+x8$x{pGJqT6G#FDCDh09~B;^bZ0~pP~zyM-`T;K|gQ3eJEkb6Nw JAR3ks7yx)savA^t diff --git a/LT/Demo/Graphics/Pick.CPZ b/LT/Demo/Graphics/Pick.CPZ deleted file mode 100644 index 8b5e1f1111d6022788c607bbe8af97101b651dc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3255 zcmd<(0zs7kPaP#2LpvoMLlqDohLuxN(=zi?75qYd;~fJ6d|ZPS42>*6vYr+S710Rc zSe;4~9xs=IfQG8-SK~Aa;h*eyg6rY-tnwy$e0_LY=7MJM2)m7LUfJG~94XnZD z8!9A~rbQbXS;T_*W%-#Y3NA&7<(?%PA;rbPB}JvlB??+4#l@PuT-6|BJS`M5b&^tx zOX5K$+xj|2#Cuvm1i+54HGpuC+yS;rLBYMqDYL{ku|Pp9DX}=!*1gCvCo{2FBfSX3 zHPQjuVa>~>0J6k6CpEDsJTosOwW34=DghD)snoSg%SlWxuCaCUb&L1$cXkYMjrVhP z3~~()0clr&r~w5j*$vTMPgoZszOP=0#uhmL1sm2 zj*dccVQFGfYKn@Ry9&t13JM5aDn8yiO2LIiB}zI!6v{L6Qu50cauf3s(^HESQu0%a z74q^+6w*^m6bgz`Q*#SSQd1NX^PqtY(_E5~S*(zppOUIjRGL?;keLT|CBiU}StW_Z z*-#gQtOg}wNXQ@p3G6hG1SsSYsQ@kv@&w#_utW+K04st-MRI;levxgshi8Z@Sk%49 zDZc`o&~!|7Om%`wihNS@G?GfwG_~CP{X*iyJzYXPbihmxS5J435J>t&Hq6P#(b*en z7&!ZaB*CVEjIrkBss)uhyj+lyCf~C}1Epk1&P~xNFw`k9f|Meewgx)+IVtfKU=osP z!8)}-qNN2Xi6yDFZpFHG5N3RNW**pXr~Le!P!k1^qRfK$l>E}9oK#zg3}Z@9g90><#e~vI%(^nMs)?wwVR-nGhz(p7{KN)S|?a z%>2A!u$4GvZ9{@WA;C+yWC4`}wn2$`DWOKH?m>|72Ai&+P#K*WizEdJf3O@lfodg{ zra{XekQWi*VXFoy&%sJl@?m9Ia&C&PduoYqak_?DfuW9Cfsu}(jg4=xd%U-6WW0-i zxL*yF?->y9gDwyR76645D1{>OX=rh(LUD3YYHFTBa(;eMN@iYSNouhUIA=f;xdu3T zH4!BQENg&Ep3H&@NWlYQsDSd10#v*bCSIwe0xkm5bMliCa}>%Fi!u|Fa#D*GAby5s zI8gZkGZ`wOkW`75+rU}3BwryTKPLq&h3P6x-@uBN%)Elq5`}{N%)FA+A_a}y{L4M@wjvs$0MsM^DOUjJqe|OK4DsNAqRhM!H&6+oqZC}4qyQ>x6_iy|6kIZkOB8}3 z)r^&DiW0chfmAAi`JloJl!hRdK++~BC?tqZn7;mDt|;j=GysWeGILTDG?H^u zP_0o=Q&WHog5x(d09_2>RIpi~gh9N4$ePhIKgb)9yOaaj1T7w6rMyeNX9>76XJBGrU|?i`fc=aNU_MBUg@XaYVPIh3hB7%B7#P?f zN1_lNmguzf-L9PJl2l;^kq7S4EJy^T7NiEG7Ni%1L1uyU jfXw*)|NnoegF#G?AAUiE1Q-|?{{R2~A4LCw2r&Qvyk=&w diff --git a/LT/Demo/Graphics/Sprite1.CPZ b/LT/Demo/Graphics/Sprite1.CPZ deleted file mode 100644 index 85994df566cd3d8fefd2291d21a0607c2669561a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1945 zcmdPb;^pGyaxY3O$jD4CR!C0FQ%FixD9A}nPF2XvE6G!=Q2}Y^j(hOk9XK_Q?hwYV5r zA_Sygp(Gz)jGq~xa-=c$({B|6F4vFjnP#A-aK#FE?I77TqsgRVK zkyw_hkdv96s!&`4vQ8m6Kd-nXF|VYUm#aJ@H4kKVL1s=WD1<{Y54X;3IgEh^3|E=kQRQGg~Tg`~vdRG4?% zi*@bNi$EeOZtf~NAloxRsURa&A-^O86bq@j`Rd@r2@L>RGfWORFoic zY57G88kx2R)|oc$LGj_9E+HOvc1G5j+S-~5U~51YIp?G%7FmN_qOTtgigHj=&dg0r zPX*^=SRs(2P@Y+m0S$XZUe-~_%jf0N*DudZDain9C@x4%24#vA9fjh2a8Q9tGDt1} z<=TwYB2dWa>wBhwWx**O9E2bf@{1Ib^K0$pw@)6-x6` z^1+6H${mnLk`j}%(~I&;^HLzbM)5^bHaH|~!L9~JF(|rRb5e7Q19I|9G(agsCsW5g zDBi=>)7>M)&dyNBKu5*XNk_@X(+Qf+KnVd7G{HHksRbIwAOQu1T98@A&M9n7yxe_Epq?> diff --git a/LT/Demo/Graphics/Sprite2.CPZ b/LT/Demo/Graphics/Sprite2.CPZ deleted file mode 100644 index 44feb81fedb11293ce43f44ba2040cd52bdcba18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1211 zcmdPbS8;RKF;WT1$ShV!NzKhyC@oGcRsac_sH7JqB^IX|fjCAgIts=43YGb#3c01l zB?^ftDGG@yZtg0)To5BnR7wj{5=&C!%QN#J8Wf81OG`5IQWcU?lM_peQ?VJUkXfvd zmtO)is35hdIJ3AUHLpZZK|#Z_L?J!3q*x)fD6u#-MIkjYIYR+ri9%8($lj8SRE6To z;*!){JxyLN5L5~9)KRht@Ki9eQ_?X~0SWPPxfeNQmiQ(XC}@GaW9wezn3I`UtO50% zj$5&&HAG=qerAe-OHpFEXNg8gadB`-QE76Cf>ud!u_iB9HOR*B%#w`!(h`M|jLc#k z1(5wEsTCy(`DqIIB^jwj3gwx3Df#8a3Q4Is`Q;!D<@u#KDGG@N1*wTedc0f;3eGvH ziACX=c_FD4B^n@;!FEH!&`2dbRUtVsPa!!YF)uw8Y<@v%oSz@i>1dUt<`#ej!A5B1=cL3#V%pZN zSl1511f?vn8dM=$HAswsq!50our)G(SOapmu3aS>KP@LQy|~8K$=5ADB*@V(*v&u4 z*D=J?-w$MrLU~4JPO5^2VsLU|o_A`crb0EyWCevHLtFQvkc`xlM2!*<3G%suf`USk zk*#}CKt`rUK}IG>45Aw3DO-s3MPOrL!Cz$SUgTSviAT7wvA`9%sE znYISjnKs7OncCW#3SfB!h2;Fw5(TBuUH#a|T%exIW>ob@Hv2z?i zmT@pJFz7KbFmQq_&XEQQu`w_(7%?y~fTT?PK`gLySRgKCcnx(bNE+k?5QfP~FfcF} zFfcHHXsB`#s1S&T3JE}kKr~c{2Py=j85kHqib3Xs%mUF+A&@m7ArK7}0_g_{foPCQ lMrh!H`2Udr)J2923=AMq5DgLnIi67vq!=mzvKi_K1_0wBvdjPg diff --git a/LT/Demo/Graphics/Sprite4.CPZ b/LT/Demo/Graphics/Sprite4.CPZ deleted file mode 100644 index c3bba15e1beba12ea26868024f6e21856b665b0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3557 zcmXTR&rDGW&d*DC%}WU>&eqW6<*Mf8QcwuaFU?EQFwnFHaa=1hORRahYI(VMxjZct zDr^mODs7DntU-LR0gic@xrrsI$Oe>WWagwQXoLiXx@szbjZ{#m(AEZ7pnzLZPHI|-CdhpX3JM@c zLCp@%Nlh)#FfxU>y%y?jeSH--cO4^@@Qlxg{8EL2qWq-9q?}5H^2EFng_3*)RJFsIZC?$Sb^D;7D>QN-Xy* z(FiFn4lXGwO)gQ;Dk(08#kZ%0f>seY0Nsn6GE00D3ly}H5{px9-HRM^G82n6(u+V` zBOQ<)aKys`C?q3QAuT^AC%+sNrYS{<<;4mh|K#NteVg;8T(oT9A@h zlIoOSlHpU5rU5riK>=jEu3cJAVtR3nt&^`?d`OU^U$C2hkgsEir@tTAZEi)WsTvT4 zMKG5rC=}Vc7lmY`mLzHz=oy)61!v}I6l5A{m1rWAK=s(V7X>FL=A`;2mS_~|80wj7 z8|XnaAS(vjf@D5KbA@dM*bNX~rEMh=ugVsb86e5JMAbmg)DGklXxelya?MH2Ee^=Z zF9Ew<#{djfJe}Z?2uZ4`ImM~q_*KBG1ros^Eg;42MJ}m1U~@qt;4BJ`ZBU+u=Vq{o zR(?)Od?`5iZ9$m|!i+D^%me!bHC@;S7bKSFX{aG`wvG~nonNG+<5mo^43alf^HSnV z5{t9rlap-KK(<0k60n&;sl}-!zNN*P$-${5C7F5Y#bDuFkVt$-*liBU02`BAT3n(KV~~`p5Mz+2 z5Mz*1l$w}Jl(DX z07o@iDnO)Iu&j4xP7bWdK&zra8j(|?U#O1{tjYof}FsL#xFueZ%|NrOz|Nrwtlra3q5BM1l{D1!c{r~;{KmPyzzyANX|G)qLxBLG8 z@BjaIKP&wC|NrsV_y7L?|Niy+zyJULzXy{az~t}pKmY&#|J(lO|Nr`b?`s*p&;S2_ zZ~f=zVDcx3EdKZZ|K0lH|1k1qeKwd4BHz`&{`bHBd;JX%`TzdE|NDP~Nc%tk?f?7- z*^b}YM9Pl(Zm7o{KSRU+kN?>j82*3w&&z$A$&6J$9kuYxd$ZGn_mwHO!}6d4#8-u(an{}WnXea{R^+tKWpZP!YkNf+X|9@nEu#oxx-~Zp|Gynhh|NndD`hWlbe`dD-_y7N2=J@~r|Nmpo z|Np=KKXW;lwEp+s|3C9-Ifjh?%-`?*&;8H*|IYuk|IGjIg2`R=+5egAw}Z(2%j3=9nanGb`>?+5-f{%8Jw;6KBE=Klx5WJ5j2f985HY2Q%K^PgFP15C<+Na9lz IDF6Hi0HH79mH+?% diff --git a/LT/Demo/Ltf.CPZ b/LT/Demo/Ltf.CPZ deleted file mode 100644 index 186a43f..0000000 --- a/LT/Demo/Ltf.CPZ +++ /dev/null @@ -1,98 +0,0 @@ -I1 *BootTimeCB(Ltf *l,LtfEntry *ll,TssStruct *mem_tss) -{ - LTDate i; -//$FG,2$This routine is called by the window -$FG$//$FG,2$manager things would get corrupted -$FG$//$FG,2$if the window manager used it's own -$FG$//$FG,2$heap, so we use the owning task's heap.$FG$ - I1 *st=MAlloc(64,mem_tss); - nounusedwarn l,ll; - - i=BootTime; - - //$FG,2$Doesn't have to be fixed width!!$FG$ - SPrintF(st,"%d=%h11T",i,i); - return st; -} - -I1 *CurTimeCB(Ltf *l,LtfEntry *ll,TssStruct *mem_tss) -{ - LTDate i; - I1 *st=MAlloc(64,mem_tss); - nounusedwarn l,ll; - i=GetCurTimeLTDate; - SPrintF(st,"%h0D %h0T",i,i); - return st; -} - -void DoIt() -{ -/*$FG,2$ The main window is kept at $FG,4$Fs->cur_ltf$FG,2$. -A second framework is kept at $FG,4$Fs->aux_ltf$FG,2$. -Normally, the $FG,4$aux_ltf$FG,2$ is used for updating -the border, primarily. - -See $LK,"UseConsoleLtf","MN:UseConsoleLtf"$(). -See $LK,"LtfUpdateBothLtf","MN:LtfUpdateBothLtf"$(). - -Note: the $FG,4$aux_ltf$FG,2$ is not to be confused -with the $FG,4$aux_str$FG,2$, a member of the $LK,"LtfEntry","MN:LtfEntry"$. - -$FG$*/ - Ltf *aux=Fs->aux_ltf, - *cur=Fs->cur_ltf; - LtfEntry *ll; - -// $FG,2$We don't want an update between -$FG$// $FG,2$creating the LtfEntry and defining the -$FG$// $FG,2$callback, so we turn-off preemption.$FG$ - - BoolU4 old_preempt=Preempt(OFF); - - LtfBottom(aux); //$FG,2$Insert at the bottom$FG$ - LtfPutSExt(aux,"$$FG,RED$$$$CM+BY+LX,5,-3$$"); - -//$FG,2$ The $LK,"LtfPutSExt","MN:LtfPutSExt"$() routine returns the address of the last entry.$FG$ - ll=LtfPutSExt(aux,"$$TX+DC,\" \"$$"); -$FG$// $FG,2$The $FG,4$DC$FG,2$ flag is "has display callback". -$FG$ -//$FG,2$ Flags are explained here: -$FG$// $LK,"::/LT/Doc/CtrlL.MUZ","FI:::/LT/Doc/CtrlL.MUZ"$ -// $LK,"::/LT/Doc/Dollar.TXZ","FI:::/LT/Doc/Dollar.TXZ"$ -// $LK,"Dollar Flags","MN:LTFLf_AUX_STR"$ -// $LK,"ST_LTF_FLAGS","FF:::/LT/OSMain/SysText.CPZ,ST_LTF_FLAGS"$ - - ll->display_cb=&BootTimeCB; - LtfPutSExt(aux,"$$FG$$"); - -//$FG,2$$BK,1$WARNING:$BK,0$ If you use the $FG,4$cur_ltf$FG,2$ you -$FG$//$FG,2$run the risk of the user pressing -$FG$//$FG,2$$FG,4$CTRL-T$FG,2$ or using the clipboard, both -$FG$//$FG,2$of which will crash. So, you might want -$FG$//$FG,2$to use the $FG,4$aux_ltf$FG,2$. -$FG$ - LtfPutSExt(cur,"$$FG,LTRED$$"); - ll=LtfPutSExt(cur,"$$TX+DC,\" \"$$"); -$FG$ ll->display_cb=&CurTimeCB; - LtfPutSExt(cur,"$$FG$$"); - - Preempt(old_preempt); - -//$FG,2$Send carriage return, new line, so -$FG$//$FG,2$that the timer string is not part -$FG$//$FG,2$of the next command on the command line. -$FG$ CrLf; -} - - - -void UndoIt() -{ -//$FG,2$Clear-out entries without a $FG,4$+H$FG,2$ hold flag.$FG$ - LtfBottom(Fs->aux_ltf); - LtfPutSExt(Fs->aux_ltf,"$$CL$$"); -} - - -DoIt; - diff --git a/LT/Demo/Ltf2.CPZ b/LT/Demo/Ltf2.CPZ deleted file mode 100644 index f747323759fad653f193114a5f92fb2c237d417f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5022 zcmdPbS8;RKF;WRAN-Zu{0I^L}oI`?qbVERFBNZKmy!>)K1%;4|R0SoFkcojQv;^wXbHyI*YtdLlgs*s(RU!JFsSgeqg znU`2psgROblBlPk-~{HO>H|qBWR|4nLUbk;7w0EuCYGe8D3oWGWGEymMY4fRY*Bg~Za5{M^Kn%;dzJoJu`j zE>xwSc?!k(rA5i9;GoliSeTlVqX4!iKer$=2js1Mh0MI-)FL#$B`Or;XXcea6o51! z1ti3^iHLaebV7=!)Vz`+kYkYJCNjSiY75x%;>@a4h5R&yMC9lJha1>vRBymjgJ&?p z7Er2CLH97omgJ(;#FA7{tfiL25(?N*i=Mb(CxZJPqxXbPU0cM-?}*Q_?ZP zB5rD@q+^OC4omRisp>_k3hDVE%S-YVpgu3o&rMY*$B$pP&=ai&DZOX{cNkKCRtUD(Yq&cxD6_I%q(uxvuQ_J&;{2RcpOQ2s z9VK5sD^wvBNH}O{f>M-1W?phmX-cX>A~d|TJygIcR3R-VF&){zMk?hQnaLRnC8;?% z#h~;E3P;`iypnv7pK}#bN{c|r0cMVhinEUj)G8f?cRMjCFsl}-ZCFS`Lqjd92OBC{RQeY_zoX15*pOUnI(vo1;iV|cQ9VLiIlt4;AnFf{x{PN3n6v|W8b8?2T~Ny|qI){=Z=`@xk9H2dN6qOYU2qjrd|kG5x+PK=UE zW|2aS5`&{XvD%ijl4sVEeeB<7_+Dshm(uwoP%b+7!N&+0jZ!O zE;kWk2eerQZFlG?D1fTNl>9vP5{1O%l2T9`1J#n0)WjTco(H#$5c)ut=Oh-FfJ+KU z>j~1fD$h&-wW#t^6f#mlsR`5uD9J!8P4iOAVF3>=SU_zFh`o@M?_T7ZlZsMs=%{!) z=_uKFIzehy9Tm@D5H}dgRZ>y$_tB2f_VGo^OggG5Iu-^x#zxRwg-HJzAm@V{o1oeP zk@8^)3{;&~g3=SbVd5WzNJDy>5VwL#DNhT9kksN54WE)U1+5$%pOQ3JP}@jBD!QMg;{0h2Wgj)B+7t2)7nwHbj8|M5HLSq_ikc!N8iA zs}|%)gvb5R3sY1dLtDe(qz!6tCM70kLvseQ&#Za5a&l}5Mir#71CJ^w7ZO!I&Y;*a zGeN`-N*LH08W@0_4-y2qCO$dIRt*%;Bv@^xf?~C~3aEsGI=x4GQuLbV~~q$}{s)^2<>*mllI6aZuh?adX!(QPBLP~xrsH92BEJ{r-$uFt|we0eVcoCSMK4qL}rjeSq26Mb*Q1+azXMSk{2XZ$iTp0h#~b> zC2*38r;wWG3>D8ADxA5$x98s8_IB6pZ4*^q{@!1EyAot8$j2b3f!L~yXg&rBg0L^t z4Z%bCSwo70GF-x6LN0curE8 zspBz?_jX&ZG+3P!0|NudgP@QAtG{jL*~S9W&A`AQ$H2hA&%nSS!iglnz`&pa=1VXz zFla&p5v=vMnx_y*A;>Ik1_lN`kWxAP7Eo~& z&q+2XFULJEy|*nFz?d^NpazBF|39<*I4WuLjcur_ltf); - PrintF("CMD:%02X P1:%08X P2:%08X\r\n",cmd,p1,p2); - } -} - -MsgLoop; diff --git a/LT/Demo/MultiCore.CPZ b/LT/Demo/MultiCore.CPZ deleted file mode 100644 index c72b7c1..0000000 --- a/LT/Demo/MultiCore.CPZ +++ /dev/null @@ -1,94 +0,0 @@ -/* - This demo uses some memory which is - uncached and can be accessed by - both CPU's. - - See $LK,"Memory","HI:Memory"$ -*/ - -class XferCtrl -{ - BoolU4 done; - I1 buf[512]; - I8 cnt; - TssStruct *song_tsk; -}; - -XferCtrl *xc; - -void SongEndTsk() -{ - Sound(0); - Exit; -} - -void SongTsk() -{ - Fs->end_task_cb=&SongEndTsk; - ResetMusicSettings; - while (TRUE) { - Play("3qG2G3DBsDCDCqRCG"); - Play("G2G3DBsDCDCqRCG"); - Play("EeGFqBBDA2eGGqR"); - Play("3EeGFqBBDA2eGGqR"); - } -} - -void CPU1Tsk1() -{ - Preempt(ON); - xc->song_tsk=Spawn(&SongTsk,"MultiCore Song"); - while (!xc->done) { - SPrintF(xc->buf,"Hi %d",xc->cnt); - SPrintF(xc->buf,"Low %d",xc->cnt); - xc->cnt++; - } - xc->done=FALSE; -} - -void CPU1Tsk2() -{ - Preempt(ON); - Kill(xc->song_tsk); - while (!xc->done) { - SPrintF(xc->buf,"Up %d",xc->cnt); - SPrintF(xc->buf,"Down%d",xc->cnt); - xc->cnt--; - } - xc->done=FALSE; -} - - -void CPU0Tsk() -{ - //$FG,2$Allocate off of the write-through heap$FG$ - xc=MAllocHC(sizeof(XferCtrl),mp_heap); - WbInvd; //$FG,2$Flush xc out of Cache.$FG$ - - xc->cnt=0; - xc->done=FALSE; - *xc->buf=0; - - MPQueueJob(&CPU1Tsk1); - while (!ScanKey) { - coutln xc->cnt,":",xc->buf; - SwapInNext; - } - - xc->done=TRUE; - while (xc->done) - SwapInNext; - - MPQueueJob(&CPU1Tsk2); - while (!ScanKey) { - coutln xc->cnt,":",xc->buf; - SwapInNext; - } - - xc->done=TRUE; - while (xc->done) - SwapInNext; - FreeHC(xc,mp_heap); -} - -CPU0Tsk; diff --git a/LT/Demo/MultiCore1.CPZ b/LT/Demo/MultiCore1.CPZ deleted file mode 100644 index a1d2accecb0b3e8b94ee84a9a96c33db9d02dc43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmZ?D&(8@pQ7A6SFRX}bDK6IJ<*Mf8Qc&=; zP{`EDvNf;3SX(u+VsIv|~3r63Dz-5h;_ zUBTS)jLe)=1r0@zu%-goWCaEHBIlgc#3BulPED{f1%r8EJ zxN-#rkV0L%PlW^gUY0}2Y^nR&sL zdC5>+S=!oQ7FZJM9BW>#T6o9=m*f|CmT1621LS<$kf2bAr^1sw^U6|S>XY+JOLFoQ zltL;CQWex88m-lpta-VDb5c_aG>l9Q3_yCNma-%Em6o%Q%Fus f&Pe6uf*a`@5LlX8n(CFGq@f0i9v!!0kY)w|t0{N$ diff --git a/LT/Demo/MultiCore2.CPZ b/LT/Demo/MultiCore2.CPZ deleted file mode 100644 index 89ec85a12ef5b7ee77adec1aa49d73d43dbdead5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3077 zcmd<(f6^I~&^t4dWDl*j3Dl)Q$2$bb#rYN`+C6;@ZXoM6O z2bUC;CYLB^l@u3i@^V%4aw#ad7dd5?_$C%8Xyq0dBqbK7+PW7x=42)oYor%}xJEi4 z#nvFDAk*`6QsRqjp-Oe_ioo_LC^+Y&CKiQf=7pqIlxRRTfV3bK+7=mt4S|bP*cura zpbAxD3Z>;FrWe=PI{CWAhXgtL1-tnN`8tMp`ujmGh8tIqnipT5nNpHr3-Y^y0$d^~ zJ2^imzsT0f$I;mvY@d6PYffrzaX?Ofi3U`ejsX~|csl7Q*?2lZgH{vW5=@hv@+*wt zhL{@Yn49Vt=olIp=$IOSbc4eeS&6x+jw#44Q?M$C5~v$=?I6ax2f4a}ya&?jnv;`R zP@Iae0%SA@gDlW7GKClb@(_M?It7{fMi9klw)upRVjsvHGl)6FS!xVYjFu9>X$Tq< zE~z=N-~*|wMM}250hkFlH!(9W9+bYYq+UZ%a)qZ}_hMZ;ND9_*D+U>@pn#ly!HN;- zH@5&PP!2KQ7G@FHnQ+-6TX4<-r7oy?$Dz0#Mxp zWq`Qg#29L!P+Xo^5MPp+n+g^Hdru1#2&Dxni6yDFZpFHG5N3RNW*%4#s*tT3q%432 zWqC$sPO5^2VsLU|o_A`crUJMsQ$Sc_>z-N?l9`(tT#}eupbfG(z8J)ePb*3-)HgPU znxmiqb+)a0Q3%MR8es216OMvHkrCK0w(dm%8JQZO5CDalf`Wnq$aAnN4P=U~dy#Kx zj&EX#2Gm3ys9u-`x1!Wk4UjGr0jOeBF^HugF;JEPnGSOWk{h8Z42v7#G9cSv1r|sh zZQKY74QM)7P;qnDF;dajFEUg}%u7)yGE&G(O-)fK$yZ29RY=PzEzU?yQOGYXQOHkI zNKQ=7NL6uj2RC3qhQKrjBo-HglAS_HaWP0?Nk*zdd1hWpez`(ou|i5>Nuok#Nop?0 z)U5m@J%|w?1AGGlOH)fzz4DVZ)L@kdwD5-nWO!y?aAjVyHQb$^3Mu({>Lm)#(t;!Ydh`GPe~_>j0|Nudd`|`jhWG#f|9|=a z|NoEw|NnpW|NnoGILLk$2?hoRekfLi+W7Xbs%6l@5BouKybKHsAZ!bD=+VFL&0%sN kr+_fXT9Bu5LPg>F^cff!1Q{3@KxTkE2vWnqz|a7u0R{Fzj{pDw diff --git a/LT/Demo/Music.CPZ b/LT/Demo/Music.CPZ deleted file mode 100644 index bad72e2..0000000 --- a/LT/Demo/Music.CPZ +++ /dev/null @@ -1,35 +0,0 @@ -void SongEndTsk() -{ - Sound(0); - Exit; -} - - -void SongTsk() -{ - //See $LK,"Play","MN:Play"$() for notation. - - Preempt(ON); - - //Define a end-task call back so - //the sound will stop if the - //window is closed. - Fs->end_task_cb=&SongEndTsk; - - ResetMusicSettings; - while (TRUE) { - Play("1wCqDsEFG2AB"); - Play("wCqDsEFG3AB"); - Play("wCqDsEFG4AB"); - Play("wCqDsEFG5AB"); - Play("wCqDsEFG6AB"); - } -} - -Spawn(&SongTsk,"Background Song"); -coutln "$$FG,PURPLE$$A task has been spawned to " - "play music in the background."; -coutln "Use $$LK,\"TaskRep\",\"MN:TaskRep\"$$() to " - "kill it.$$FG$$"; - -Auto("TaskRep;\r"); //Make it visible so people see the name, TaskRep diff --git a/LT/Demo/NeatTrick.CPZ b/LT/Demo/NeatTrick.CPZ deleted file mode 100644 index b7f5361a9b1ead61b0a287926ad36218b5aef1c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 415 zcmXTR&rDHpDM~E&EYS!lE)Fg!Dorj?&?+e|*5u`?=H*gQaL!3hEDF!e3rVdg(Ey2C zgG4ja6g0{+^WsYjQW8s2i`5J@L81x@0Xg|4;hA~CB}E{$I!Yy}#U)BQL9Q;^;U1nL zu3Cm>I)(;1#+qP5Qgez^@o5VP4GQpa#io-uYm6Y)U{{RAa1)UFT3#+*E=aKCdzNUx zf&na|m7kLW^|Gy7v92A&_wnVKd0_vb3fZbb!WAs#o?7CZkyr#~qbWm}Y0b+8w%sM) Kv&0(Y3cluster,a[i]->full_name); - DelLTDirEntry(a[i]); - } - Free(a); -} - - -DoIt; \ No newline at end of file diff --git a/LT/Demo/Spy.CPZ b/LT/Demo/Spy.CPZ deleted file mode 100644 index 004512f..0000000 --- a/LT/Demo/Spy.CPZ +++ /dev/null @@ -1,23 +0,0 @@ -void Spy(TssStruct *tss) -{ - Ltf *swap,*menu=Fs->cur_ltf->menu_ltf; - BoolU4 old_preempt=Preempt(OFF); - SysHashTable *old_hash=Fs->hash_table; - Fs->cur_ltf->menu_ltf=NULL; - Fs->hash_table=tss->hash_table; - Fs->double_buf_cur_ltf=LtfNew; - while (!ScanKey) { - LtfDel(Fs->cur_ltf); - Fs->cur_ltf=LtfNew; - StackRep(tss->rsp); - swap=Fs->double_buf_cur_ltf; - Fs->double_buf_cur_ltf=Fs->cur_ltf; - Fs->cur_ltf=swap; - WinSync; - } - LtfDel(Fs->double_buf_cur_ltf); - Fs->double_buf_cur_ltf=NULL; - Fs->hash_table=old_hash; - Fs->cur_ltf->menu_ltf=menu; - Preempt(old_preempt); -} \ No newline at end of file diff --git a/LT/Demo/TAD/Adam3.APZ b/LT/Demo/TAD/Adam3.APZ deleted file mode 100644 index 73c89b7..0000000 --- a/LT/Demo/TAD/Adam3.APZ +++ /dev/null @@ -1,82 +0,0 @@ -//Change anything you want in this -//account file or others. - -local_time_offset=-7*60*60*LTDATE_FREQ; - -//$AN,"","mouse_move_scale"$adjust these to set mouse move scale -mxx_scale=1.0; -myy_scale=1.0; -mzz_scale=1.0; //wheel - -//don't change these -mxx_prescale=mxx/mxx_scale; -myy_prescale=myy/myy_scale; -mzz_prescale=mzz/mzz_scale; - - -MPStart; -Cd("/LT/Adam");; -#include "PicWords2" -#include "HOME/PicWords3" -Cd("/LT/Utils/Boot");; -#include "InsBoot" -Cd("/LT/Utils");; -#include "Disk20" -#include "Diff" -#include "Grep" -#include "Merge" -#include "S2T" -#include "IDE" -#include "LinkChk" -#include "HeapLog" -#include "ListFile" -LoadMapFile("::/LT/OSMain/OS.MPZ"); //Enable Man() -LoadMapFile("::/LT/Compiler/Compiler.MPZ"); //Enable Man() -LoadMapFile("::/LT/Adam/GrAsm/GrAsm.MPZ"); //Enable Man() -Cd("/LT/Apps");; -#include "TimeClock/Load.CPZ" -#include "MusicOrgan/Load.CPZ" - -Cd("/LT/Accts/TAD");; -#include "HOME/Private/Adam4" -#include "TADAdam" -#include "Distribute" -#include "PlugIns" -Cd("/LT/Accts/TAD/Testing");; -#include "Compiler5" -Cd("/LT/Accts/TAD/BenchMarks");; -#include "CompareCmp" - -Del("::/Temp/ScreenShots/*"); - -void StartUpTsks() -{ - I1 buf[80]; - TssStruct *tss,*tss1; - - InitLocalTask; //needed for disk access - Preempt(ON); //off by default - Silent(ON); //no output to screen - - try { - tss1=SpawnUser; - tss=SpawnUser; - WinToTop(tss1); - WinTileVert; - PopUp("#include \"::/LT/Doc/StartSong.CPZ\";"); - - SPrintF(buf,"Boot Time:%h17Ts\r\n",BootTime); - AdamLog(buf); - XTalk(tss1,"#include \"DoIt\";\r"); - - WsInit("/LT"); - WordStat; - AdamLog("WordStat Time:%7.3f\r\n",BootTime*1.0/LTDATE_FREQ); - } catch - CatchAll; -} - -//This must be spawned because start-up files -// may invoke the Adam() cmd. -Spawn(&StartUpTsks,"Spawn Users"); -PrintF("\r\nOS Compile Time:%D %T\r\n",sys_compile_time,sys_compile_time); diff --git a/LT/Demo/TAD/DoIt.CPZ b/LT/Demo/TAD/DoIt.CPZ deleted file mode 100644 index bb4333e19f3c791679b3b680745e53e57c01d3ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39 rcmZ?H$aX2tw&vy1*AK~0PtQqpD@x2wbuUUxN=hxV=H+t91d$8?`3wuL diff --git a/LT/Demo/TAD/Fault.CPZ b/LT/Demo/TAD/Fault.CPZ deleted file mode 100644 index f0da687d03d82730ab8438fd555989b7c19ed5cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1196 zcmdPbQV7pT%~MEJNJ}iuDN)EzPA)Af)=@}QNY2R2Nl_>$%1=%$E>_4a=H)6bNG#7w zO;IQ+&CAQoOIIk#$ShV!%gjktNX$!7D9K1wC`c?y%`4&MN>42*RwynlE=bKwNlnpH zP>9SgRY*?EQ^?Iv$xN$MD9=bNQ2;68dS+g_9xoR!muH$nWqv8lAh;8Bz@o(&`K2I7=OiYlDrA=Ma%JX~QWT@_L?i&B$I@{20<6cj>0t}jb1D$dN$Q^+g^xu2ISB^7MFLRx;2LSk}qeraAw zu|j!fNk)EYi9(_RTzMYYJUw16Eq#!qLW+xnONvU9OBA$9ii>UCigoQEK@ne4Tx`wD zRhFNbqM)T!R9p~WP*P;8R#IH7YgbfUpaT-Jh4Xm16ciK`w2G2YlqG?bB^5xGB^Btv zlx3nQ%LFOQgel7`um(A-xID8YIYU7MYz5eB@p+}Wn!H@qAVZQ9i&GU0tQ7S1Gt(4O zGRrbkQWa7wl2Z#xK(Y!7`uYW>#Tg1knFR`o#h}Pd%mu|uNJde9xeHi1L|svFfv&BE zHG~8564;kT#UM9;d{k6i5N#N1TLg9#NIGS;Ogh%>Y@o%>RORm0%k%yQekLd1#ttV4sy%MPb|sIO9vaSpg_8lYC(ao zuLS|TTtSKD8vcGDXFDh6X8dAVG`X*{(^L&*)44V6GLx^{>N zv*zW3n5Cr!NpYdYsm}R%#rZj@J|$@yexW`-AcLGriZ#?gsV}*x1R8SAK_O}J!5;qM zAbDOceSMGoVo;#*awX@NmgM9qKx_o%ypZ5vE3nNvN(!Dqfy!Vuk}Irvxv)AvxFj(- z8|~ymexff>Tq$xkVrBH9hBms2C-k7$rAPD^Q+97FAJEvgYM-Ni5FQ UD9S9*HK;H$&;b!3LwUIv0JGU}82|tP diff --git a/LT/Demo/TAD/Favor.MUZ b/LT/Demo/TAD/Favor.MUZ deleted file mode 100644 index 34ead90..0000000 --- a/LT/Demo/TAD/Favor.MUZ +++ /dev/null @@ -1,170 +0,0 @@ -$WW,1$You can access your own TODO/favorites file with CTRL-SHIFT-F. - -$TX+TR,""$$BK,1$$FG,4$LEGAL STUFF:$BK,0$$FG$ -$ID,2$ This file is where I set my plans. There are no guarentees. I work "iteratively" when programming--often writing bad code to experiment with and later changing it on a priority basis. The order things are listed does not necessarily reflect the order they will be done, if at all--I often do stuff when I'm in the mood. - -$ID,-2$$TR-C,"HANDY FILE LINKS"$ -$ID,2$ -$LK+S,"Goto OS Systext","FA:::/LT/OSMain/SysText.CPZ,OS_SYSTEXT"$ -$LK+S,"Goto Compiler Systext","FA:::/LT/Compiler/CmpInit.CPZ,COMPILE_SYSTEXT"$ - -$LK+S,"::/LT/Doc/News.TXZ","FI:::/LT/Doc/News.TXZ"$ - $ID,-2$$TR-C,"THINGS WHICH MIGHT CHANGE"$ -$ID,2$ -$ID,-2$$TR-C,"HIGH PRIORITY"$ -$ID,2$ -* document internals of keyboard processing - -* I think a partition was left locked after pressing ctrl-alt-c in a copy. - -* Dasm OR mode 0D -* Ln(-1.0); - -* inline functions? - -* Document start,step on clipped lines. -* Penwidth or brush with clipped line - -* make popuppickfile/dir with default dir? in registry? - -* fix %g, not sure it's worth it--standard seems dumb. - -* efficient line clipping -* clipping bug--draw pen_width pixel near border. -* with pen_width of, say, 2... blots a width 8 and checks too far over (IsPixelCovered) - -* Better single step--already have $LK,"DasmIns","MN:DasmIns"$() set to return branch offsets. Needs to put breakpoints on all branches outside the current C/C+ source code line. Problem is calls--should open files... whatever - -* add compact to ltz--low priority - -* Word Wrap has some bugs -* perhaps store ltfentry.display length--low priority (Significant profile time is spent on the StrLen instruction and it could be stored for each text entry. - -* fix LTFile with alloccluster. Sorta fixed it--made all LT filesystem files marked contiguous, since they are. Should check what happens when you attempt to $LK,"FWBlks","MN:FWBlks"$() to acluster past the end. - -* add compiler routine which you can pass a local-variable list, to provide locals which are globals, for stuff like a spread sheet or something. Might do this to facilitate spread-sheet type applications and things like SimStructure. Might do my budget program. low priority - -* Fix dictionary--not sure it's broken, but it's missing words and definitions ? - -* log to file--would be ineffecient--load-in whole file, modify and write out. Useful, but not very effecient - -* test dvd burning-- It might put CD-ROM format on DVD. I probably need to use DMA, though, to prevent underflow when mutlitasking, but I don't feel like it. Headaches with dma involving compatibility. Missing documentation on DMA. - -* CD boots--limit retry, seems to fail sometimes. - -* make partitioner round to 63 blks -* make editable partitioner -* Make driveutil with maps and adddrive and partition report - -* prtscrn--printer support... is PortNop() a problem? - -* rename command -* log filename generator--pick next larger than last logfilenamenum found - -* SprintF NaN,Inf; GetF Inf -* GetF date codes - -* make grelem insert use l->mem_tss? -* Ltf's not using mem_tss? - -$ID,-2$$TR,"DOCUMENTATION"$ -$ID,2$ -$ID,-2$$TR,"PERPETUAL TASKS"$ -$ID,2$* Change hardcoded stuff to SysText -* Too much preemption turned off? -* Look for mem leaks. -* Move stuff out of OSmain. -$TR-C,"COMPATIBILITY"$ -$ID,2$* TAD4 CD-ROM doesn't close -* mouse IRQ doesn't work on TAD5. -$ID,-2$$ID,-2$$TR-C,"GRAPHICS"$ -$ID,2$* Do something about extended ASCII in fonts. -* skip redundant clipping, line and plot -* SIMD transformation -$ID,-2$$TR,"MULTICORE"$ -$ID,2$* move GrElem draw to CPU1? - -$ID,-2$$TR,"DISK"$ -$ID,2$* Improve ATAPI read-ahead -* Clear unused portion of clusters on disk writes -* try not using FDCreadtrack on Mom's computer -* removable media id (critical for resident files) -* Flash cards: Flash mem cards might offer a removable, bootable media which will enable people to run without repartitioning--floppy is kinda small. DVD doesn't allow writing. Problem with flash is it is not standard equipment on computers. Would be very convenient for developing and distributing operating systems. I think LILO will allow Flash booting. -* Report just one error per read track (Floppy) -$ID,-2$$TR,"FILE"$ -$ID,2$* CurDir per partition? Path? -* Make use of flag potential in SysFindFiles and possibly LTFileAccess -* make contiguous flag right -* implement fixed position files -$ID,-2$$TR,"C+ LIBRARY"$ -$ID,2$* Improve Random number generator. -* add field overflow I1 "t='*'" -* Integer Money value for printf/getf--in pennies -* Implement format codes into GetF -* Date Input -* flag for comma's in numeric output (printf). eg "1,000,000" instead of "1000000". -$ID,-2$$TR,"APPLICATIONS"$ -$ID,2$$ID,-2$$TR,"EDITOR"$ -$ID,2$* Might allow constantly centered mode--cursor stays centered on screen(vertically). -* Find jumps past current line -* Make editor find command take dollar signs -* Maybe allow SearchStr flags in Links -* Link Type for SysText document? problem would be differnet needs for indexing into books. Bible uses book,chapter:verse, others are different. Already have links. -* Generalize book links -* HASHTYPE for Book? Index? -* Add write protect mode with indicator and toggle -$ID,-2$$TR,"IDE"$ -$ID,2$$ID,-2$$TR,"DEBUGGING"$ -$ID,2$* Improve fault handling--has inaccuracies--would be nice to display mem access violation addresses. -$ID,-2$$TR,"ASSEMBLER"$ -$ID,2$* 16 bit Dasm is bad--very low priority -* support r4u1 by adding 0x40 byte -$ID,-2$$TR,"COMPILER"$ -$ID,2$* something makes $LK,"OptEnd","MN:OptEnd"$ not right -* More RCX_CMPs, check existing -* do r,rm IcCmp like IcBrCmp -* PUSH_CMP allocs reg R9 or whatever -* Might be problem with NOP in OPT pass1 for NO_PUSH in expressions besides assignments. Is ShiftNoPush fully implemented? -$TR,"Check for problems"$ -$ID,2$* NOP1 might need to have diff ic_data's -* in divequal, it assumes about ebx -* check union return_class. -$ID,-2$* error/warning line nums -* ASM branch out of range off by 1 line--use lx->lag_line_num -* Switch statement with sparse cases (low priority) -* arbitrary named attributes like "fmtdata" or "fmtstr". Might allow arbitrary supplimental data in class definitions. -* goto labels scope issues? -* No str default function parameters inside $LK,"Static Compiled Mode","FF:::/LT/Doc/OSGlossary.GLZ,Static Compiled Mode"$. -* var declarations after class definitions (Not a priority) -* glbl vars--&function ptrs -$TR,"Optimizations"$ -$ID,2$* push pop -* maybe improve floating point compilation. -* new TY_ mode SIB and reg extensions -$ID,-2$$TR,"Picky"$ -$ID,2$* !double ~double -* assign I2, etc. should sign extend copyleft -$ID,-2$$ID,-2$$TR,"MEM"$ -$ID,2$* Redo mem Garbage collection on task and do one on system... but these don't help, so probably won't do it. -$ID,-2$$TR,"LOW PRIORITY"$ -$ID,2$* num lock comes on with break key -* sort options for findfiles -$ID,-2$$TR,"TESTING"$ -$ID,2$* Tabs2Spaces -$ID,-2$$TR,"INVESTIGATE"$ -$ID,2$* -$ID,-2$$TR,"BUGS"$ -$ID,2$ -$ID,-2$$TR,"NASTY BUGS"$ -$ID,2$* -$ID,-2$$TR,"BUGS WHICH MIGHT EXIST"$ -$ID,2$* -$ID,-2$$TR,"BUGS WHICH MIGHT BE FIXED"$ -$ID,2$* -$ID,-2$$TR,"MIGHT BE BUGS"$ -$ID,2$* recalc_start probably needs to be more accurate before recalculating. -* In LtfPutSExt, might need to alloc extendstr, ect from different heap. -$ID,-2$ - -$LK,"Bible","BF:Genesis,"$ - diff --git a/LT/Demo/TAD/PlugIns.APZ b/LT/Demo/TAD/PlugIns.APZ deleted file mode 100644 index 32520c0..0000000 --- a/LT/Demo/TAD/PlugIns.APZ +++ /dev/null @@ -1,254 +0,0 @@ -void InsertSong() -{ - I1 *s1,*s2; - s1=MakeSong; - s2=MakeSong; - PrintF("$$SO,\"\",\"%s%s%s%s\"$$",s1,s1,s2,s2); - Free(s1); - Free(s2); -} - - -void FillinTime() -{ - LTDate ltdt; - ltdt=GetCurTimeLTDate; - PrintF("$$IV 1$$----%D %T----$$IV 0$$\r",ltdt,ltdt); -} - -class RenameSymbolStruct -{ - I1 find[256] fmtstr "$$DA -P ,255 \"Find :%s\"$$\r\n"; - I1 replace[256] fmtstr "$$DA -P ,255 \"Replace:%s\"$$\r\n"; -}; - -void RenameCurSymbol() -{ - I1 *buf; - RenameSymbolStruct r; - BoolU4 old_preempt=Preempt(OFF); - StrCpy(r.find,ws_cur_word); - StrCpy(r.replace,ws_cur_word); - Preempt(old_preempt); - if (PopUpDoForm(&r,"RenameSymbolStruct")) { - buf=MSPrintF("R(\"%s\",\"%s\",\"+r+l+a\");",r.find,r.replace); - PopUp(buf,Fs); - Free(buf); - } -} - -void RenameFile() -{ - I1 *buf; - RenameSymbolStruct r; - BoolU4 old_preempt=Preempt(OFF); - StrCpy(r.find,ws_cur_word); - StrCpy(r.replace,ws_cur_word); - Preempt(old_preempt); - if (PopUpDoForm(&r,"RenameSymbolStruct")) { - buf=MSPrintF("R(\"%s\",\"%s\",\"+r+l+a\");",r.find,r.replace); - PopUp(buf,Fs); - Free(buf); - } - Move(r.find,r.replace); -} - -void MyScreenShot() -{ - I1 *st; - LTDirEntry *tempm; - U8 cnt=0; - tempm=FindFiles("::/Temp/ScreenShots/*.BMP"); - while (tempm) { - cnt++; - tempm=tempm->next; - } - st=MSPrintF("::/Temp/ScreenShots/SCRN%04d.BMP",cnt); - CaptureScreen4(st); - Free(st); - Beep; -} - -BoolU4 frame_grabber_paused=FALSE; -TssStruct *my_frame_grabber=NULL; - -void EndFrameGrabberCB() -{ - my_frame_grabber=NULL; - Exit; -} - -void FrameGrabberTsk() -{ - I8 frame_num=0; - I8 buf[80]; - U8 i, - end_time=0, - time_stamp=0; - Fs->end_task_cb=&EndFrameGrabberCB; - InitLocalTask; - Silent(ON); //no output to screen - while (my_frame_grabber) { - SPrintF(buf,"::/Temp/ScreenShots/VID%05d.BMP",frame_num++); - CaptureScreen4(buf); - do { - i=GetTimeStamp; - if (i>end_time) { - end_time=i+time_stamp_freq/4; - break; - } else { - SwapInNext; - while (sys_cur_scan_code&SCF_NUM) - SwapInNext; - } - } while (TRUE); - } -} - -void ToggleFrameGrabber() -{ - if (my_frame_grabber) { - my_frame_grabber=NULL; - kbd_display_special_keys=FALSE; - } else { - my_frame_grabber=Spawn(&FrameGrabberTsk,"Frame Grabber"); - kbd_display_special_keys=TRUE; - } -} - -BoolU8 MyPutKey(I8 ch,U8 sc) -{ //ch=ASCII; sc=scancode - -//You can customize keys. This routine -//is called before the main editor -//key handler $LK,"LtfPutKeyExt","MN:LtfPutKeyExt"$(). -//You can intercept any key. - -//Return TRUE if you completely -//handled the key. - - nounusedwarn ch; - U8 sc2=sc.u1[0]; - - if (sc2>=SC_F1 && sc2<=SC_F10 && - (sc & SCF_ALT) && - !(sc & SCF_CTRL)) { - switch (sc2) { - case SC_F1: - if (sc & SCF_SHIFT) - PutS("$$FG LTPURPLE$$"); - else - PutS("$$FG PURPLE$$"); - break; - case SC_F2: - if (sc & SCF_SHIFT) - PutS("$$FG LTRED$$"); - else - PutS("$$FG,RED$$"); - break; - case SC_F3: - if (sc & SCF_SHIFT) - PutS("$$FG LTGREEN$$"); - else - PutS("$$FG,GREEN$$"); - break; - case SC_F4: - if (sc & SCF_SHIFT) - PutS("$$FG LTBLUE$$"); - else - PutS("$$FG$$"); - break; - case SC_F5: - if (sc & SCF_SHIFT) - RandQuote; - else - RandWord; - break; - case SC_F6: - if (sc & SCF_SHIFT) - PopUp("WsInit(\"/Text/Brief\");"); - else - PopUp("WsInit(\"/LT\");"); - break; - case SC_F7: - if (sc & SCF_SHIFT) - LtfSafeInsert(Fs->cur_ltf, - "$$HS+C$$$$FG$$$$HE$$"); - else - FillinTime(); - break; - case SC_F8: - if (sc & SCF_SHIFT) - RenameFile(); - else - RenameCurSymbol(); - break; - } - return TRUE; - } else { - if (!(sc & SCF_CTRL)) { - if (ch=='S' && sc & SCF_ALT) { - InsertSong; - return TRUE; - } - - if (ch=='p' && sc & SCF_ALT) { - JukeBox("/LT/Apps/MusicOrgan/Examples"); - return TRUE; - } - if (ch=='P' && sc & SCF_ALT) { - JukeBox("HOME/BTracks"); - return TRUE; - } - - if (ch=='f' && sc & SCF_ALT) { - ProfAll; - return TRUE; - } - if (ch=='F' && sc & SCF_ALT) { - ProfRep; - return TRUE; - } - - if (ch=='h' && sc & SCF_ALT) { - WinTileHorz; //This is handy - return TRUE; - } - if (ch=='v' && sc & SCF_ALT) { - WinTileVert; //So is this - return TRUE; - } - if (ch=='V' && sc & SCF_ALT) { - ToggleFrameGrabber; - return TRUE; - } - if (ch=='m' && sc & SCF_ALT) { - WinMax; - WinBorder(OFF); - return TRUE; - } - if (ch=='k' && sc & SCF_ALT) { - if (kbd_display_special_keys) - kbd_display_special_keys=FALSE; - else - kbd_display_special_keys=TRUE; - return TRUE; - } - } else { - if (sc2==SC_PRTSCRN2) { - MyScreenShot(); - return TRUE; - } - } - } - return FALSE; -} - -BoolU8 MyPutS(I1 *st) -{ - nounusedwarn st; - return FALSE; -} - -AddKeyDev(&MyPutKey,&MyPutS,0x20000000); - diff --git a/LT/Demo/TAD/TADAdam.APZ b/LT/Demo/TAD/TADAdam.APZ deleted file mode 100644 index dbf13ec..0000000 --- a/LT/Demo/TAD/TADAdam.APZ +++ /dev/null @@ -1,202 +0,0 @@ -#define CID_TAD7 7 - -I8 IdComputer() -{ - return CID_TAD7; -} - -I8 computer_id=IdComputer; - - -void SysTaskRepTask(TssStruct *tss,I8 indent) -{ - TssStruct *tss1; - I1 desc[TSS_DESC_LENGTH+1]; - if (!ValidateTss(tss)) return; - SPrintF(desc,"%Q",tss->task_descriptor); - PrintF("%*s%08X %-20ts ",indent,"",tss,desc); - PrintF("Mem:%08X\r\n",TaskAllocatedMem(tss)); - PrintF("%*s Flags:%04X:%04X %02X\r\n", - indent+2,"",tss->task_flags,tss->crt_flags, - ExceptDepth(tss)); - if (tss==sys_update_screen_tss) { - CallerRep(tss->rbp,tss); - StackRep(tss->rsp); - } - tss1=tss->next_child_tss; - while (tss1!=&tss->next_child_tss-offset(TssStruct.next_sibling_tss)) { - if (ValidateTss(tss1)) - SysTaskRepTask(tss1,indent+2); - tss1=tss1->next_sibling_tss; - } -} - -public void SysTaskRep() -{ - U8 i; - CPUStruct *c; - for (i=0;icain_tss,2); - } -} - -void CtrlAltT() -{ - BoolU4 old_raw=Raw(ON); - dc_col=0; - SysTaskRep; - Raw(old_raw); -} -ctrl_alt_letter_routines['T'-'A']=&CtrlAltT; - -void CtrlAltF() -{ - I1 *st; - st=MSPrintF("%P",sys_update_screen_tss->rip); - RemoveLastSeg(st,","); - RawClassRep(st,sys_update_screen_tss->rbp,1,TRUE); - Free(st); -} -ctrl_alt_letter_routines['F'-'A']=&CtrlAltF; - -void CtrlAltZ() -{ - BoolU4 old_raw=Raw(ON); - coutln "0:",sysdbg0," 1:",sysdbg1; - coutln "2:",sysdbg2," 3:",sysdbg3; - Raw(old_raw); -} -ctrl_alt_letter_routines['Z'-'A']=&CtrlAltZ; - -void CtrlAltE() -{ - RawClassRep("TssStruct",sys_update_screen_tss,1,FALSE); -} -ctrl_alt_letter_routines['E'-'A']=&CtrlAltE; - -void CtrlAltD() -{ - Debugger; -} -ctrl_alt_letter_routines['D'-'A']=&CtrlAltD; - - -extern void MyScreenShot(); - -void PrintScreenTsk() -{ - InitUserTask; - MyScreenShot; -} - -void CtrlAltP() -{ - Spawn(&PrintScreenTsk); -} -ctrl_alt_letter_routines['P'-'A']=&CtrlAltP; - -#define COMM_BAUD 38400*3 - -void Tx(I1 *filename) -{ - LTChnl *chnl; - CommClose(1); - chnl=CommOpen8N1(1,COMM_BAUD); - if (chnl) { - RmtTxFile(chnl,filename); - CommClose(1); - } -} - -void Rx(I1 *filename) -{ - LTChnl *chnl; - CommClose(1); - chnl=CommOpen8N1(1,COMM_BAUD); - if (chnl) { - RmtRxFile(chnl,filename); - CommClose(1); - } -} - -void Host() -{ - LTChnl *chnl; - CommClose(1); - chnl=CommOpen8N1(1,COMM_BAUD); - if (chnl) - TelnetHostOpen(chnl); -} - -void CloseHost() -{ - TelnetHostClose; - CommClose(1); -} - -void Guest() -{ - LTChnl *chnl; - CommClose(1); - chnl=CommOpen8N1(1,COMM_BAUD); - if (chnl) { - TelnetGuestOpen(chnl); - CommClose(1); - } -} - -void RmtSync() -{ - LTChnl *chnl; - CommClose(1); - chnl=CommOpen8N1(1,COMM_BAUD); - if (chnl) { - RmtMergeChk(chnl); - CommClose(1); - } -} - -void RmtSyncDrive(I1 drive=0) -{ - LTChnl *chnl; - Drive(drive); - CommClose(1); - chnl=CommOpen8N1(1,COMM_BAUD); - if (chnl) { - RmtMergeChk(chnl,"/LT/*","/LT/*", - "+r+t+a"); - CommClose(1); - } -} - -I1 *TADPickFile(I1 *msg,I1 *mask,I8 prefix_len=0) -{ - I8 i=0; - LTDirEntry *tempm,*tempm1; - Ltf *l=LtfNew; - I1 *st; - tempm=FindFiles(mask); - tempm1=tempm; - if (msg) - LtfPutSExt(l,msg); - while (tempm1) { - if ((i++%5)==0) - LtfPutSExt(l,"\r\n"); - st=NewStr(tempm1->name); - RemoveLastSeg(st,"."); - LtfPrintF(l,"$$MU,\"%-8ts\",%d$$ ",st+prefix_len,tempm1); - Free(st); - tempm1=tempm1->next; - } - tempm1=PopUpMenu(l); - LtfDel(l); - if (tempm1<0) - st=NULL; - else - st=NewStr(tempm1->full_name); - DelLTDirList(tempm); - return st; -} - diff --git a/LT/Demo/TAD/User.CPZ b/LT/Demo/TAD/User.CPZ deleted file mode 100644 index b9e4f726564eba04e5cdb1145217259571f436bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2231 zcmY$+NX;pT&&*3ntx!-3Ey>I&R^sIfElzdL&nwQ)N%bj7(@?Uq()S6`cT7$$Db^2h zbkPqjPA$^&4UJOLwC3dswNP-=@HAA=Do89TNiE9L0kP9^64Q%q{X%_wGdHT4<`#J`D>wvX_46fzn0-GL$VR}(&K~7?F zYJ5p*MG4pvBs-O~b96J6$g@=k*G*k=+0`pCr#=vk`v>k~1`5%E9X3ekse(Oi}O!CxhamWJ7S-P+XL31ZH3cm2YZM zda83qwgy-+SRq&us(B$AFc&zMmgH+Fna31?i*^MC$CQ*1M;8wlYfusHQj}Sis-fCnU(#1*Fc&$I;mvyD}Gbop2A&5U_C|W3j7pMN$>y>VjR78Qd0U5x{m6@iXk({4fkeQQOWE!8DS6q^qlardFsQ|9+lk-bU za`F_EJR#zldFcwyFvUvX#N=9$np|3v>Xw<4ssS!2;PU#Od7ySgv7Sc&#CNs4T*}C; J6eV6R1^^ZcnXCW+ diff --git a/LT/Demo/TAD/User.MUZ b/LT/Demo/TAD/User.MUZ deleted file mode 100644 index a1a6c29e3980e2e7a3acf974963eed8cb88d89e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7081 zcmY%Kb<|OEPSJ=_^6>X{jZxCHcF8QVjww=7;pIY=({~CfN=(i!#-hfhD6=e8L)}GP z6Imxz)D>A&+fhd;&?!H^M8QP~%0klzQsJDRTacNP3RVMULk&Z+!pB=j$s;wVK*2LF zCAC6HN6F38%F0ULCq&;RKUp6n1D4PWiHJh=3`mK8uy0~!9u}{Fg94#K-zBp+8=o?$ z^NP^a1bAxu_-Y4)YKQvhDESwqC+2BDgHKaQN6ELeI5Qa{3JG`Qu#G8F(lJB{eUNh; zQxbF0?10A{OkUroB#oe&@cg2b;F81=f(qTy{e)?sdy!)?epe+YmlW%VIJ)4q4Wx*m z0{xKuQv5Cg8KWPZpO=m;iNfR65v(k(&H#N5>2lEk8t)FQl!LrXGq2rJMB z<#W7_%TLB99g})S!?cU1uF7m&CmE)S~>-VsN47>7rw#qT=facRRQoRnk!k$Sv`$1i2h6fGD;> z3Zcnf!L2AiSHamup(Gz%5<`VSqRuWM`7WrMLJLw7OHy6EK>-4)PV{|3K%NXX3egDm z4-Im5jd%0(agFzN4EENEQPKwIKA0YuNuDk`x<)E05Rdq#7Nw^uxMk*~7Apjol%}Pj zct}UdS0hHr1zg@kLOBG9tzD#@0nR|-m4;J^%o@vu~XA&J?k3ZUW+7M74|4N`J}#6e!Ob}TK)2ZfGCj1o)??p;tU zLIPJIF)u{{T1hE@;~EtCMfte}B@hK*F<1mZ5{g%8aft#%7Pl57m>x)Mfn!J^Ex$;? zskA6BGcR4i*#$ER`htAsnU|4YTAT_>S)RFx>8YR!F)=$8D(vh67PR)Q3@^$oNriDy zyar0Q3Q+aP#(>13!dUfztq&;5Pbp0<$;{6~)(VnB$iQ@CcLX%TAs%-uD9Fi7P6U~U zJc7*v5Z1$30c6N^A4ELyCBDhQ|yI9`=A^OAE)Q&JUTl!8k0Vw9|vbc|IL6p+mE zD$P!H$_F)hkkmrc2*@-A6P|ilO2`rAw)kbh5BD4cSb(F&LlM|D$cpfZXnv+;miPa=fd&m@S6tqd@mXn#D zQ4*Y)tE8iZ5eSe<52-HGhbxa!0wr4=GZk3$z-V~zf?I6C<(YZu#2F1%3N_XoIiA1< zx##ESfdY;QH-eQy4YGi`57kwW79%X4FdCBJW+0wO1qCFuVX5t?3yBk#%=FBXVg(J~ z)ZF}{N(E5z1eptNEkWWL6qxAo0?`$tgp?^^=K1S}xcc}gXgDgQ6(uH@q~_@6WM-!- zlw@S)r4wUvVtG2;Ttv=+_}n8uH&sDFK>=hAB8@}4E=VmWkaIzvwFI@IA(<82nSuM- zC$qRjA+0nITnZE`WacR(<`iTkCZ(2SCM)C@rKA=q=_q-)mF5)(r50F+Wu}%}E2$_D zG9#}vH?=4;Ss^hcr6{$y7-5iaVgZ^tpuUS!W>OBQ>~nIna!<`mEzT^~0o8E4Tq?o- zI!d5+tdfpWp>wLEbD?vgk-KrBQ>v3|v7?c@F$fpC7`YpRFkuy`M()P$#YXPNZXjIf zROndfTIg8lSm=yf2ILZO_s=EYIk&*nG$ggS1e9|?AquMKAi`Kg^K%Oli&C9)3y@WV z%H@!v)KrZaB{y(A3ayZeOu_9V3^9~$BseXCI;Z*|>oW7wLD7r5lbV{BoZ*{Tgteav zHVU3i;Dr}X!=M)G!>U>gn?dz#Ku%(%0@y4pWgA!=q|F+s1b`Iln3=~pAT%H+zXY}1 z0XY|x2jQ)FeW)@>v5sj9lM|F2?TVEFw1|9=Js1{f1Wb3!!0n5hg53|tT)7!zawNFxUW0|PTe zDi3N_K7}! z#HS!W2gq3<1_J}b`~Uy{KmY&#|EvH1|9^yd6~_F65P~s5s$W1|2JLR0n@B08t<=$a5ea zpwtC2lm*0KU|aV}cw4G7qZpE;Q?0ho}O{fS91LxeXD5F+mXyvK=V|K_Ll>WpDt2;s=^3K*}!s z|NkH4nj;WXU`$Y2JOmK}x%<@r|NlWk$00%>jpzUW{|~bI5=02Zyz>A5f0z^l0|Us- zFrkYORUlaq6C`yNAp~N=q!<_&KunPD?)?A%|1v@q$R?1`HHZ*6^+D6ZKcrHJ4dg?x zS0N^WVg?kdpiqFuGKdLE8qhF@F+o8GidF^&1{f3M6sQo$&7hnFqM@l4Bnt{ykZKSO z)d*sOYz5KKvI)cl2gD9L~_4M+$?Lk$KoK?w|0kTNhZ z{Q3X?KgbIpgFz{Rfq?5u_PJLxn&|8YBdDDk$(kMH|Sepm1ei zU;xR0RDp^(5Y52A0MZXi+8`+q4T^A30J4D?3=9lckzyVs4oc4;?V$7wauPKEfJ$MI z5l|sef&&Si{{R0!D99KX7;Zw#wj2Nd|A(pqg$bzG1LXiv2r@7*9R2_QKZpr(9aPl` zXaNVx%+Pdk23mhSg4SIO3=HR>#)EtfvKd;qfXo273l#s*001#Tu?kfMV}i^A1r-AW z1IQ+jEGV2oG&FocOi+RW8Nk560Aqq81sc9E6(9pZ(oh>g!XQ;3hd?74#014Eh(;?( zK&p|1K*<4AG%zqQz?h)$f~o=ufuazGp)m^Lf{X_F02Gm+m}3Vq7#J8jp%n>8j6n!m z8G-x+$}*t#52ykFX@*+C0HUED1h=MOY!D4f3LtY~`al+f;twPSN>0#F0Jpx7*)TOA zbs&d;>;|#lB0CNw2(A8L=>e2nKyGDVV1O|})_|m;J^?X7Hi2TEfdTAzP}qYq1}F(a zg>FHU3rGs85hMi4FQ5bgZH0iCpsWa@p#=@d43HHd4AlrKNU0!4AdxvdKAV4(NG;QCaj&xz`y`wf(!s@L<+nC HXtDwT>JIq9 diff --git a/LT/Demo/TextDemo.CPZ b/LT/Demo/TextDemo.CPZ deleted file mode 100644 index e806df6..0000000 --- a/LT/Demo/TextDemo.CPZ +++ /dev/null @@ -1,16 +0,0 @@ - - -CrLf; -PrintF("Super : 3$$SY,-3$$2$$SY,0$$=9\r\n"); -CrLf; -PrintF("Sub : H$$SY,3$$2$$SY,0$$O\r\n"); -CrLf; -PrintF("Color : $$FG,RED$$Test$$FG$$\r\n"); -CrLf; -PrintF("Blink : $$BK,1$$Test$$BK,0$$\r\n"); -CrLf; -PrintF("Invert : $$IV,1$$Test$$IV,0$$\r\n"); -CrLf; -PrintF("UnderLine: $$UL,1$$Test$$UL,0$$\r\n"); -CrLf; - diff --git a/LT/Demo/TimeIns.CPZ b/LT/Demo/TimeIns.CPZ deleted file mode 100644 index 28523c1..0000000 --- a/LT/Demo/TimeIns.CPZ +++ /dev/null @@ -1,51 +0,0 @@ -/* -$FG,2$This program allows you to measure the -timing of various instructions. -Don't be surprised by odd results -because the CPU does instructions in -parallel sometimes and a simple -instruction might take place in parallel -with the loop instruction and it will -report zero clock cycles. -$FG$*/ - - -#define SAMPLE_SIZE 100000000 - - -void TimeIns() -{ - I8 i; - U8 start1,end1,start2,end2,overhead_time,test_time; - double reg d=5.0; //$FG,2$Use the $FG,4$reg$FG,2$ directive to designate register variables$FG$ - - Preempt(OFF); - - -//Measure Loop Overhead - start1=GetTimeStamp; - for (i=0;icur_ltf; - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),"+r"); - old_preempt=Preempt(OFF); - LtfPutSExt(l,"$$TR-C+AL,\"\"$$\r\n"); - LtfPutSExt(l,"$$ID,+2$$"); - TreeSub(l,FindFiles("/LT/*",f)); - LtfPutSExt(l,"$$ID,-2$$"); - LtfRecalc(l); - Preempt(old_preempt); -} - -TreeDemo; diff --git a/LT/Demo/TreeDemoJoin.CPZ b/LT/Demo/TreeDemoJoin.CPZ deleted file mode 100644 index d9e4a76..0000000 --- a/LT/Demo/TreeDemoJoin.CPZ +++ /dev/null @@ -1,25 +0,0 @@ -void TreeSub(Ltf *l,LTDirEntry *tempm) -{ - LTDirEntry *tempm1; - while (tempm) { - tempm1=tempm->next; - if (tempm->attr & LT_ATTR_DIR) { - LtfPutSExt(l,"$$TR,\"\"$$"); - LtfPrintF(l,"$$MA+A,\"%s\",\"Cd(\\\"%s\\\");Dir;\r\"$$\r\n", - tempm->name,tempm->full_name); - if (tempm->sub) { - LtfPutSExt(l,"$$ID,+2$$"); - TreeSub(l,tempm->sub); - LtfPutSExt(l,"$$ID,-2$$"); - } - } else { - LtfPrintF(l,"$$LK,\"%12s\",\"FI:%s\"$$\r\n", - tempm->name,tempm->full_name); - } - //Note there is also a routine - //to delete an entire LTDirEntry tree. - //See $LK,"DelLTDirList","MN:DelLTDirList"$(). - DelLTDirEntry(tempm); - tempm=tempm1; - } -} diff --git a/LT/Demo/WinMgr2.APZ b/LT/Demo/WinMgr2.APZ deleted file mode 100644 index 0137beab1a5b0a54cead172460e3a611f9d02e99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4534 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 Mx(694fszLU0JIctAhB`Nu( zB?{^JsUWX|r3(^^Qu9jGi=hFSRGOBSTBN4{alCJFI>hN9hKh!!LULlBLQ<+iW?phm zX-aB}LME;dDaltTPR&bEC@x4%&P>cv$WE;+R>&_>$jvV;PE|V28DB8W?s4u*yVZoMY)MNPYXDhSP?VpPn3Piqid=-xl%YWgjl5XxXa04W0}!r;_YNYq$a>HCD}yQJpk>%$a*d4_t9p;1aYN^YK3_?4)D z&GXAINwtEQ2r>o|+hCT8hLRFI!om41Gfg2eCkO1Yyi`air{sfj4>+bBgPlD+6_PU& zixQJdQj0)Y&9g)yB@>jMiWSm|@^cZ^1eX*cYyxpqG&J=T6e9CW)pK$bP(loxiNFp5 z=OHi)loAsaa`HX^uedz52$4|1 zv0Mz+QIwjTpIeZb14<2`WCO{F{=vS9nR%f2Qpn9uDa}b$CA7i6_+ID Ue@@RVXPf%G1ryQ_x6CEh$MYQYc9+%2miLR!}O)FHbGfEiF(| z)Ko}RNY2kKCtvD`e&=lw_nT zsJOZ77^ygU`Uk7HxvS_YCTF%NX$!5#iCvzDL=nNA-^aE zz)Z~)j^Vu%4nrFmfg7@FxOWtJ#d7*tr8Ddgs- zq$(ulr6}a5m89lDEY{7;Q%F=OPEF3wOHoM6%mH~Ru|&OCAt^IGJ+(+7GYu3#$%%RD zB??KY3Mu({sR~Jz3R$2q0I?zV=_x39f;1&66ep&oDkPdSY3sZfSu+Nl|5HUOGr+I?OdC`3mLvMcLpW$gM za&l^MF-RjQrRb&n;{ zPEMr)BwoRh2}*__yA;YZ@^exZ@(WUn5=%fKSX^0Ll9~$+G;lrvrH7)@yu8f3bg;=- z)aHUx2i!nV>?q`e(ou10PMV&Af^Q`>kNF4tCT8Y=av3xLLHQSys=*FP0%asf`YMJ5 z04VKxf?^gFI|ZdB3W*B2nR%JHrMVz4gEDeH$aUqJIXMc6Ipv9!#o(}lh7&lEDioJz zmLzASf+N`22%I}Wfdme5PzXTj4 zko1^eR0%d%#m8Gm2_)z2q8A(xrKF?e=4oYRg{lv%8LB{qmkX}PjgTIw0%SeD9)vW( zRG{fHBH%t>4;P3MWPJoJgDOw~m7*$;5;{M>#MuQLRGHv(4J$E`5)LTN)4-)RsPsuL zEy~Og&@L}#o=VvQqq!vLf07WiT z9u&K7(Aag!Pu6$K%t`f4%u7s9Ezef^97U)wu$t z7NL;z1`hAkN`<`C)D(rH#BykWC#Iwnr4|=M3MNq5qL5#bky->PJ3xB!6-oZ6i;Xf>q?j!{V6gHhLj90JP1&{j`=Q6<=4 zsd*{Ip!OXk9Vut#CFhi;q=FQJTmf!1t$PdBL-9gr{sf7hZIVPra3r;WrC~9G)OU44r=>@ns6ZH`FWVpn_mPf j>p__&v8V(QT*aV9JggiCr6->dNQ#28RWvlg4rKrUgCh+6 diff --git a/LT/Doc/Char.TXZ b/LT/Doc/Char.TXZ deleted file mode 100644 index b40c5d0fe4938635dd806415f5d05530e20abda1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmY!h57#kNaa2%obJsCaan49AQgL%vNlY$DEmFuVR!CGR&df{CNmWRyEJ;P0G*FQ&0%W zNQIj3lV6+~l968wvO}RHwI~;CM;=tx(-0)C$IHdb1u?!XF{d=OSfMB}FFjQuttdZN z!9bxTU%}AGTu(tE3?iA7nv-9yU~Ht2Sd^-eoS#=xl%J!Jom#10tf!z5oUem$tg(xT%0B88m%tAs6eTJIdw9Bq=mrNkI=ezV2lcOaY9+|S zAVnpW1)0f-IXRUI#RaL!nQ57+DGKG8B^jUyNKVWH2Q;#ai(!JrU_U2j<|%+2lbu=# zakT>3oJq=Mq%;F6-uymXkK6BUw5^O7?Z g^3$LJmYk7T1WtLy;IxsMmso-bhN{$}e6V2*072u_cmMzZ diff --git a/LT/Doc/Comm.TXZ b/LT/Doc/Comm.TXZ deleted file mode 100644 index 47e263ac167a1b0670d1f3bd80110c85f79acab2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmY!h57#kN@yRbv4avwaR>;rGsZ=N~Ehxw@Dk)Y_adX!(QV9w+GB#3ib5~I)PA$qz z%+Uo&DkSIU=9cDVCMT9;=I7}tC`9I$DkLZ7DJ19T<)tQ zD&*!Dr7Gm5mXzlgWoPE4D`e&=lw_nTq?MMG7NzPaB$bvZ!2OYt zSgeqjuTY$tTw0V_QmLa*oUf2sqL7=Jo>8KZmtUfgl&VmkS)8iJ%f-v(nWj*gU#gIj zub|@Nt)mo@nv<7W;*nom;$M)Or=+9g>t}@~rlO&#ke{cJpO*^vBiIN~02HO>=9i@A zRDwdHq$oc}p(G=*M4=?HI9ov>sZt>&ALMoOK!Laj>7%P+}DEmBC#O944F zEi)%op`<7=uQ)BWs8~-yAtWQSSRu1mAqC_nXlNG{<(K3q=jSMRDkK-BCYGe8K-`iE z3Y!vz;*!L?l*FPGP!yCPB0VuDM80_rn2}%cgyj%tDfZ diff --git a/LT/Doc/Confuse.TXZ b/LT/Doc/Confuse.TXZ deleted file mode 100644 index eb4fe00320b2fd36fd9ba52424cef754a603358c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2156 zcmY#!bJsCdQ3;9Ac8<_da?VLjEXvGF*DWnjaL&(5D=p5<&ns3^QE_uu;pO7xQV9>& zF;vk~@X0Su4avwaR>&+?Ff=ewRmjXsNi9gtOG(WuQP9;@$ShGv$xkg-$jdKLNK8&n zEiP6l$w*a5%gjkFR>)6NsLU@dQYa|O%uOt+RLCz#ElMoO%u81&t}HG|&DB#-@GMa% z&&mt>?CDJ18oq$*_Q!M&}g zpb(i_tfSzmP+pW@k_z@4$N`x-sYR$Zpt%MfC@J~nc{%xsDGG^sl_eROdFdce=P9Hm zCYR`-gkDBsS*k)_Y6&A*r-P zA+tms?2^*NoSaIK8w)aXQd6LIdMYI5DkSD9q?YC9l$K=X=Vcayf>FsaB{5eC6#t0| zNvS0zsYMDUsYSV9qrnL_5gh;dX$pxsISM6-#o3^=n3$)aRFt1zqNGrsSgZ(%VkJ)t zC57D7#Jpk!3*Ds35>WC0rT(PMl47VERD8U3l$=VGbd-Gktei@eR5Ua}HY+7%mMD~@ z7MCbN!vW0CFDgpSD^Wt$>Q)TV>Q=0z0@9eMP@I~c3(9dtsp*-;C8#EH#R?k9`FSO& z6(ySB6b#B6#h@$)iiNz?iW0B}Jq3mEjMO}Z^2AI~c>&5P>c#Mg%U4LrS18HI1X+}r zr;wbHnw+hWsF0kWmy!u~d}f|PqC!r7et|-1UP)#SDEBC&r=qV^T zgLHw)B4mv?l!KzbB(+$^rvsz_ z0;dNgJ}AI4^UCsbKw*}buaJ^ioDIohnI)CbK=*{_4sd!^N~z3C%*{-OCVOyPfih7D zC^R6cG7}u1&@2ZkcTyBmD^in7OTeWDxP&XnNlZ>nQOL|I$%nhQC^a#q5|odVQWcUD zb3i!?Ts(uaeO^Ae=mN>6w)+RFqhhnF>q$Zs3w1tRycHlzCJ0Qb3`c znWvx>rKFHplnQowQEG8J7r{*OWRf1y$lEaYeocw~+JcZ)?(xPNYftOmAT2!e3 z$~gIH;A94s%LJvNRR%&tyq$md0Z{RW-Yn54)3NA#!Rj#3)nSyU>xs&WHd2 diff --git a/LT/Doc/Customize.TXZ b/LT/Doc/Customize.TXZ deleted file mode 100644 index 917f2e8..0000000 --- a/LT/Doc/Customize.TXZ +++ /dev/null @@ -1,5 +0,0 @@ - -$WW,1$* You can adjust the mouse movement rate by setting global variables in your start-up file. See $LK,"mouse_scale","FA:HOME/Adam3.APZ,mouse_move_scale"$. - -* You can set your local time zone by setting the $LK,"local_time_offset","MN:local_time_offset"$ global variable in a start-up file. It's units are $LK,"LTDATE_FREQ","MN:LTDATE_FREQ"$. See $LK,"local time","FF:HOME/Adam3.APZ,local_time"$. - diff --git a/LT/Doc/Differences.TXZ b/LT/Doc/Differences.TXZ deleted file mode 100644 index 8396169..0000000 --- a/LT/Doc/Differences.TXZ +++ /dev/null @@ -1,92 +0,0 @@ -$WW,1$$FG,5$$TX+CX,"Departures from C/C++:"$$FG$ - -* Built-in types include $FG,2$I0,I1,I2,I4,I8$FG$ for signed ints and $FG,2$U0,U1,U2,U4,U8$FG$ for unsigned ints and $FG,2$double$FG$. - -* The "$FG,2$`$FG$" operator raises a base to a power. - -* Operator Precidence - 1) $FG,2$`$FG$,$FG,2$>>$FG$,$FG,2$<<$FG$ - 2) $FG,2$*$FG$,$FG,2$/$FG$,$FG,2$%$FG$ - 3) $FG,2$&$FG$ - 4) $FG,2$|$FG$,$FG,2$^$FG$ - 5) $FG,2$+$FG$,$FG,2$-$FG$ - 6) $FG,2$==$FG$,$FG,2$!=$FG$,$FG,2$<$FG$,$FG,2$>$FG$,$FG,2$<=$FG$,$FG,2$>=$FG$ - 7) $FG,2$&&$FG$ - 8) $FG,2$||$FG$,$FG,2$^^$FG$ - 9) $FG,2$:$FG$,$FG,2$?$FG$ - 10) $FG,2$=$FG$,$FG,2$<<=$FG$,$FG,2$>>=$FG$,$FG,2$*=$FG$,$FG,2$/=$FG$,$FG,2$&=$FG$,$FG,2$|=$FG$,$FG,2$^=$FG$,$FG,2$+=$FG$,$FG,2$-=$FG$ - -* Allows "$FG,2$5<(classname)$FG$" and is postfix. - -* When dealing with function addresses, precede the name with "$FG,2$&$FG$". With this syntax change, a function name by itself can be used as a call like a Pascal procedure with no "()" if there are no parameters or there are just default parameters. - -* "$FG,2$$$$FG$" is an escape character. Two dollar signs signify an ordinary $$. See $LK,"::/LT/Doc/Dollar.TXZ","FI:::/LT/Doc/Dollar.TXZ"$. - -* There is not a "$FG,2$struct$FG$" keyword, just "$FG,2$class$FG$". - -* "$FG,2$union$FG$" is more like a class, so you don't referrence it with a "$FG,2$union$FG$" label after you define it. Some common unions are declared in $LK,"AdamK.HPZ","MN:U2"$ for 1,2,4 and 8 byte objects. If you place a type in front of a union declaration, that is the type when used by itself. - -* You cannot declare instances of "$FG,2$class$FG$es" or "$FG,2$unions$FG$" in the same statement where they are defined. - -* $FG,2$class$FG$ member vars have two keywords for associating data with member vars -- "$FG,2$fmtstr$FG$" and "$FG,2$fmtdata$FG$". All compiler structures are saved and you can access the compiler's info about classes and variables. In the future, I hope to have arbitrary named data items on class definitions. - -* "$FG,2$static$FG$" variables in functions are not allowed and I have no plans for doing them--just use a global variable. - -* See $LK,"::/LT/Demo/Exceptions.CPZ","FI:::/LT/Demo/Exceptions.CPZ"$. "$FG,2$try{} catch{}$FG$ and $FG,2$throw$FG$" are different from C++. "$FG,2$throw$FG$" is a function with variable ("$FG,2$...$FG$") parameters. The values passed in "$FG,2$throw()$FG$" can be accessed from within a "$FG,2$catch{}$FG$" using the "$FG,2$Fs->except_argc$FG$" and "$FG,2$Fs->except_argv[]$FG$" variables. Within a "$FG,2$catch {}$FG$" blk, set the var "$FG,2$Fs->catch_except$FG$" to "$FG,2$TRUE$FG$" if you want to terminate the search for a handler. By convention, the first parameter of $FG,2$except_argv[]$FG$ specifies the exception type number. A list of assigned exception types can be found at $LK,"EXCEPT_LOCAL","MN:EXCEPT_LOCAL"$. For a handler that will catch all excepts, you can use $LK,"CatchAll","MN:CatchAll"$(). - -* A function is available similar to "$FG,2$sizeof$FG$" which provides the offset of a member of a class. It's called "$FG,2$offset()$FG$". You place the class name and member inside as in "$FG,2$offset(classname.membername)$FG$". It has nothing to do with 16-bit code. Both $FG,2$sizeof()$FG$ and $FG,2$offset()$FG$ only accept one level of member variables. That is, you cannot do $FG,2$sizeof(classname.membername.submembername)$FG$.$FG$ - -* There is a function called $LK,"MSize","MN:MSize"$() which gives the size of an object allocated off the heap. For larger size allocations, the system rounds-up to a power of two, so $FG,2$MSize()$FG$ lets you know the real size. - -* You can $LK,"Free","MN:Free"$() a $FG,2$NULL$FG$ pointer. Useful variants of $LK,"MAlloc","MN:MAlloc"$() can be found $LK,"Here","MN:MAllocZ"$. Each task has a heap and you can $FG,2$MAlloc$FG$ and $FG,2$Free$FG$ off of other task's heaps. - -$FG,5$$TX+CX,"PrintF Family"$$FG$ -$AN,"","PrintF_Codes"$ -$LK,"MSPrintF","MN:MSPrintF"$() is like $LK,"SPrintF","MN:SPrintF"$() but it returns a $LK+S,"MAlloc","MN:MAlloc"$ated str. It is vary handy because you don't have to worry about overflow. - -$LK,"Auto","MN:Auto"$(I1 *src,...) and text to the current task's input buffer. -$LK,"AutoStr","MN:AutoStr"$(I1 *src,...) sends text of an $LK,"AutoFile","FF:::/LT/Doc/OSGlossary.GLZ,AutoFile"$ to the keyboard stream of the current TASK but can also do mouse commands. - -$LK,"XTalk","MN:XTalk"$(TssStruct *tss,I1 *src,...) and text to another task's input buffer. -$LK,"XTalkStr","MN:XTalkStr"$(TssStruct *tss,I1 *src,...) sends text of an $LK,"AutoFile","FF:::/LT/Doc/OSGlossary.GLZ,AutoFile"$ to the keyboard stream of another TASK but can also do mouse commands. - - -$LK,"LtfPutSExt","MN:LtfPutSExt"$(Ltf *l,I1 *src) and $LK,"LtfPrintF","MN:LtfPrintF"$(Ltf *l,I1 *src,...) send text to a linked text file. You can buffer to a Ltf and save it, providing the functionality of $FG,2$fprintf$FG$. See $LK,"::/LT/Demo/FPrintF.CPZ","FI:::/LT/Demo/FPrintF.CPZ"$. - -$LK,"Adam","MN:Adam"$(I1 *src,...) send text to the adam task to be compiled and run. -$LK,"AdamLog","MN:AdamLog"$(I1 *src,...) and $LK,"AdamErr","MN:AdamErr"$(I1 *src,...) send text to the adam task to be displayed. - - -$LK,"Lpt1PrintF","MN:Lpt1PrintF"$(I1 *src,...) send text to the printer port. - -$LK,"ExePrintF","MN:ExePrintF"$(I1 *src,...) and $LK,"ExePutS","MN:ExePutS"$(I1 *src) send text to the stream of code being compiled and must reside in a $FG,2$#exe{}$FG$ blk. - -$BK,1$Note:$BK,0$ If no $FG,2$PutS$FG$ variant is available, you can use $FG,2$PrintF("%s",src)$FG$. - - -The $LK,"PrintF","MN:PrintF"$() family supports extended format codes. - * $FG,2$"%n"$FG$ will print a floating point in scientific notation. - * $FG,2$"%S"$FG$ will print a systext entry. - * $FG,2$"%C"$FG$ will print a ToUpper character. - * $FG,2$"%F"$FG$ will print a text file. - * $FG,2$"t"$FG$ is a flag which will truncate to field width. - * $FG,2$"%P"$FG$ will display a PSECT expression which is good for pointers or addresses. - * $FG,2$"%T"$FG$ and $FG,2$"%D"$FG$ will display a date or time and the format is selected with a subcode, entered after a "$FG,2$h$FG$". Example: "$FG,2$%20h1D$FG$" uses date format code "1". See $LK,"MSPrintFDate","MN:MSPrintFDate"$() and $LK,"MSPrintFTime","MN:MSPrintFTime"$() for subcodes. - * $FG,2$"%z"$FG$ will display a sub entry of an enumerated list of text entries. It calls $LK+S,"PointAtListEntry","MN:PointAtListEntry"$(). - * $FG,2$"%Z"$FG$ will display a SysText sub entry. - * $FG,2$"%Q"$FG$ will convert "\" to "\\" and quote to backslash quote. (For use in creating strs in strs.) - * $FG,2$"%q"$FG$ will reverse a $FG,2$"%Q"$FG$. diff --git a/LT/Doc/Dollar.TXZ b/LT/Doc/Dollar.TXZ deleted file mode 100644 index fc711da..0000000 --- a/LT/Doc/Dollar.TXZ +++ /dev/null @@ -1,159 +0,0 @@ -$WW,1$$FG,5$$TX+CX,"Dollar Sign Cmds"$$FG$ - -LoseThos supports rich-text type commands which are bracketed with "$$". Use CTRL-L to experiment with them. Use CTRL-T to toggle between plain text and rich text. - -The format of "$$" commands includes a two character code, +/-flags, a comma and parameters separated by commas. The flags often determine how many and what parameters the command takes. - -See $LK,"::/LT/Doc/CtrlL.MUZ","FI:::/LT/Doc/CtrlL.MUZ"$. - -See $LK,"Ltf Type Defines","MN:LTFT_TEXT"$ and $LK,"Ltf Type Codes","FF:::/LT/OSMain/SysText.CPZ,ST_LTF_CMDS"$ -$TR,"TX Text"$ -$ID,2$Normally, text is not bracketed with "$$", but if you wish to specify flag attributes to center text, you can bracket them with "$$" and enter flags such as "$FG,4$+CX$FG$". You cannot edit them if they are bracketed by "$$" unless you toggle to plain text mode with CTRL-T. -$ID,-2$$TR,"CR Hard Carriage Return"$ -$ID,2$Carriage returns are normally specified without being bracketed with "$$". -$ID,-2$$TR,"SR Soft Carriage Return"$ -$ID,2$Word wrap uses soft carriage returns which are not saved. You never place soft carriage returns by yourself. -$ID,-2$$TR,"TB Tab"$ -$ID,2$Tabs are normally not bracketed with "$$", but are stored as ASCII#9. -$ID,-2$$TR,"CU Cursor position"$ -$ID,2$The cursor position is usually stored as a ASCII#5 I1acter and is not bracketed with "$$". You do not normally enter cursor position commands yourself. -$ID,-2$$TR,"ID Indent +/- number"$ -$ID,2$This changes the indention deeper if positive or shallower if negative. It effects the behavior of trees. -$ID,-2$$TR,"DA Data"$ -$ID,2$This is primarily used for forms that prompt for data. Use CTRL-L as a resource editor-type thing to generate the text you'll need in your "fmtdata" command in a struct. If you add it directly with LtfPutSExt, you'll need to fill-in the data address. See $LK,"DoForm","MN:DoForm"$(). -$ID,-2$$TR,"Text Colors"$ -$ID,2$You place an expression(usually a color define--see $LK,"color defines","MN:BLACK"$) to indicate which of the 16 colors to use. If you enter no number, color returns to the default. -$FG,5$FG Foreground Color$FG$ -$FG,5$BG Background Color$FG$ -$FG,5$FD Default Foreground Color$FG$ -$FG,5$BD Default Background Color$FG$ -$FG,5$FL Foreground of Link Color$FG$ -$FG,5$BL Background of Link Color$FG$ -$FG,5$FM Foreground of Macro/Menu-Value Color$FG$ -$FG,5$BM Background of Macro/Menu-Value Color$FG$ -$FG,5$FA Foreground of Anchor Color$FG$ -$FG,5$BA Background of Anchor Color$FG$ -$FG,5$FH Foreground of Hidden widget Color$FG$ -$FG,5$BH Background of Hidden widget Color$FG$ -$FG,5$FE Foreground of Tree Color$FG$ -$FG,5$BE Background of Tree Color$FG$ -$ID,-2$$TR,"FU,BU User Prompts"$ -$ID,2$These are special color changing commands. They are used when the user is prompted for text at the command line. They reset the cursor position if the cursor is positioned before them on the line. They are also used to indicate the start of a prompted str. -$ID,-2$$TR,"CL clear"$ -$ID,2$Clear all entries except ones with hold($FG,4$+H$FG$) flags. This is good for programs which update data to the command line. It keeps the quantity of ltf entries down. -$ID,-2$$TR,"WW Word Wrap"$ -$ID,2$Include a 1 or 0. -$ID,-2$$TR,"UL Underline"$ -$ID,2$Include a 1 or 0. -$ID,-2$$TR,"IV Invert"$ -$ID,2$Include a 1 or 0. -$ID,-2$$TR,"BK Blink"$ -$ID,2$Include a 1 or 0. -$ID,-2$$TR,"SX Shift X position"$ -$ID,2$* Include a number from -16 to 15. -* Only foreground is shifted. -* Positive right. -* For negative be sure to precede with a comma. -$ID,-2$$TR,"SY Shift Y position"$ -$ID,2$* Include a number from -16 to 15. -* Only foreground is shifted. -* Positive down. -* For negative be sure to precede with a comma. -$ID,-2$$TR,"CM Cursor Movement"$ -$ID,2$ -$ID,-2$$TR,"AN Anchor"$ -$ID,2$ -$ID,-2$$TR,"LK Link"$ -$ID,2$By default, links have a separate display text from link text, but with the $FG,4$-A$FG$ flag you can make the link displayed as in example 3. - -Examples (Press CTRL-T to see): - -1)$LK,"File link to Help.TXZ","::/LT/Doc/Help.TXZ"$ -2)$LK,"File link to Help.TXZ with link type file","FI:::/LT/Doc/Help.TXZ"$ -3)File link without different display str.$LK-A,"::/LT/Doc/Help.TXZ"$ -4)$LK,"File find link searching for 'Admin'","FF:::/LT/Doc/Help.TXZ,Admin"$ -5)$LK,"File find link searching for 3rd 'CTRL'","FF:::/LT/OSMain/AdamK.HPZ,CTRL:3"$ -6)$LK,"Manual page link","MN:PrintF"$ -7)$LK,"File line number link","FL:::/LT/OSMain/AdamK.HPZ,200"$ -8)$LK,"File anchor link--Press CTRL-T to see anchor after you click","FA:::/LT/OSMain/SysText.CPZ,OS_SYSTEXT"$ -$ID,-2$$TR,"BT Button"$ -$ID,2$ -$ID,-2$$TR,"CB Check Box"$ -$ID,2$ -$ID,-2$$TR,"MA Macro"$ -$ID,2$Macro's are usually placed into menu/help areas and they have the '$FG,4$+X$FG$' flag set by default. Adding '$FG,4$-X$FG$' prevents the usual ESC from being sent (which exits the macro screen). Note that when you output a macro to the cmd line, when the user clicks on it, it will go to the bottom and execute it unless you cancel the ESC with a '$FG,4$-X$FG$'. - -$ID,-2$$TR,"MU Menu Value"$ -$ID,2$ -$ID,-2$$TR,"HX Hex Edit"$ -$ID,2$ -$ID,-2$$TR,"Hidden Text Widget"$ -$ID,2$$FG,5$HS Start of hidden text$FG$ -$FG,5$HE End of hidden text$FG$ -$FG,5$$FG$Hidden text widgets allow text to be placed in collapsable brackets like this $HS$$FG$This is hidden.$HE$ which can be expanded by clicking them. If you place a '$FG,4$-C$FG$' flag to uncollapse it, it will start expanded like this $HS-C$$FG$Click to hide$HE$. They can be nestled like this $HS$Click here:$HS$This is nestled.$HE$ okay?$HE$. -$ID,-2$$TR,"TR Tree Widget"$ -$ID,2$A tree widget is a branch in a collapsable tree. The domain of the branch extends from the first +indent until enough -indents bring it back to where it started. Tree's begin collapsed unless a $FG,4$-C$FG$ flag is present. -$ID,-2$$TR,"PI Picture"$ -$ID,2$You can insert a picture into text with CTRL-R. It is critical where the cursor is at the time you enter CTRL-R because the picture will be offset from that location. This is especially important when adding images to programs. Numbers for pictures are automatically chosen because copying to and from the clipboard requires this. You can insert another picture with the same image by hitting CTRL-T and manually adding a $$PI$$ entry with the same number. You can cause the $$PI$$ command to appear with some text associated with it by manually adding text into the $$PI$$ command, as in $$PI,"pic 2",2$$. -$ID,-2$$TR,"IB Insert Binary"$ -$ID,2$This cmd is used to tell the compiler to fetch the binary data stored after the end of text. There is basically one type of binary data in LTF's at this point--pictures-- created with CTRL-R. They have a number associated with them. This number is automatically chosen, because copying to the clip-board and back requires renumbering. To use a $$IB$$ command, toggle to plain text (CTRL-T) after inserting a picture and check the number in the $$PI$$ command. Create a $$IB$$ command with the same number and the picture will be inserted into the compiled stream like a str constant. You can optionally include text to be displayed for the $$IB$$ command. - -The main reason for the $$IB$$ command at this point is to pass a parameter to the $LK,"GrElemsPlot","MN:GrElemsPlot"$() function. See $LK,"::/LT/Demo/Graphics/Sprite1.CPZ","FI:::/LT/Demo/Graphics/Sprite1.CPZ"$. - -$ID,-2$$TR,"IT Insert Binary Type"$ -$ID,2$See $$IB$$. This command inserts a number into the compiled stream describing the type of binary data associated with a number. See $LK,"LTFBT_GRELEM","MN:LTFBT_GRELEM"$ for the types of binary data in LTF's. -$ID,-2$$TR,"IS Insert Binary Size"$ -$ID,2$See $$IB$$. This command inserts a number into the compiled stream describing the size of binary data associated with a number. -$ID,-2$$TR,"OL,OR Toolbar Entries"$ -$ID,2$Left and right toolbar entries behave like $$PI$$ entries, but are positioned automatically at the top of the window. -$ID,-2$$TR,"BP Break Point"$ -$ID,2$This is used by the debugger to mark a break point. -$ID,-2$$TR,"ER Error"$ -$ID,2$When errors are detected in dollar commands, an $FG,5$ER$FG$ entry is generated to hold the garbage so it is not lost. -$ID,-2$ -See $LK,"Ltf Flag Defines","MN:LTFLf_AUX_STR"$ and $LK,"Ltf Flag Codes","FF:::/LT/OSMain/SysText.CPZ,ST_LTF_FLAGS"$ -$FE,4$See $LK+S,"default_flags","FA:::/LT/Adam/Ltf/LtfPlain.APZ,default_flags"$. -$TR,"FLAGS"$ -$ID,2$$TR,"+H Hold"$ -$ID,2$Hold entry and do not delete it when cleared with $FG,5$CL$FG$ or when the l->max_entries is exceeded. Word wrap is a good one to hold. -$ID,-2$$TR,"+A Auxilliary Str"$ -$ID,2$Most commands display a str. Some need other strs. A $FG,4$+A$FG$ means an auxilliary str is present. Links have $FG,4$+A$FG$ by default, so use a $FG,4$-A$FG$ if you wish the display str and the link str to be the same. -$ID,-2$$TR,"+TR Tree"$(obsolete) -$ID,2$* There is now a separate $FG,5$TR$FG$ command so this flag is obsolete. -* Make a tree branch. Usually this is placed on a text($FG,5$TX$FG$) entry. The tree extends from the start until another tree entry or when indentation has been expanded and reduced back to the starting value. -* A $FG,4$+C$FG$ flag on a tree will start it collapsed. -$ID,-2$$TR,"+PU PopUp"$ -$ID,2$A PopUp flag on a macro ($FG,5$MA$FG$) will cause the commands to run in a pop-up window. -$ID,-2$$TR,"+C Collapsed"$ -$ID,2$A collapsed flag on a tree $FG,5$TR$FG$ entry or a hide start $FG,5$HS$FG$ will cause it to start collapsed. A $FG,4$-C$FG$ flag will make it start open. -$ID,-2$$TR,"+X Exit"$ -$ID,2$* A exit flag will cause a macro to send an ESC before running(to exit the macro screen and return to the cmd prompt). Actually, the default has an exit flag set so you might add a $FG,4$-X$FG$ to turn-off ESC. -* If an entry is in the cmd prompt window, the $FG,4$+X$FG$ will cause a movement to the bottom of the window. -$ID,-2$$TR,"+Q Quit"$ -$ID,2$A quit flag is similar to a $FG,4$+X$FG$ except a CTRL-Q instead of an ESC to exit. -$ID,-2$$TR,"+Z Zero"$ -$ID,2$A zero flag on a hex edit($FG,5$HX$FG$) entry will cause the offset from zero. A $FG,4$-X$FG$ will show the actual mem address. By default, $FG,5$HX$FG$ has the zero flag set. -$ID,-2$$TR,"+AL Alias"$ -$ID,2$An alias flag on a tree entry ($FG,4$+TR$FG$) will cause the text of the current entry the cursor is on to be copied to this entry. This creates something similar to a drop-down window, but it doesn't work well yet. -$ID,-2$$TR,"+TML,+TMR Top Menu"$ -$ID,2$These flags position the entry along the top of the window. -$ID,-2$$TR,"+RD Refresh Data"$ -$ID,2$The Refresh Data flag on a $FG,5$DA$FG$ or a $FG,5$CB$FG$ makes the value updated continuously. -$ID,-2$$ID,-2$$FE,5$ - -$FG,5$EXAMPLES: - -$FG$Press CTRL-T to see how the following were done. -$UL,1$Underlined$UL,0$ $IV,1$Inverted$IV,0$ $BK,1$Blinking$BK,0$ $SY,-3$super$SY,0$ $SY,0$$SY,3$sub$SY,0$ -$TX+SCX,"This is a big long scrolling message.",10$ - -$FG,5$Cursor Movements:$FG$ -$CM+LX,3,3$Cursor moved 3 rows down and to 3rd column from left. -$CM+RX,-40,3$Note mandatory comma after flags - -The following may be changed to modes instead of attributes with flags. - -$TX+CX,"This is centered"$ - -$TX+RX,"This is right justified"$ - \ No newline at end of file diff --git a/LT/Doc/Edit.MUZ b/LT/Doc/Edit.MUZ deleted file mode 100644 index a6b6ebb..0000000 --- a/LT/Doc/Edit.MUZ +++ /dev/null @@ -1,75 +0,0 @@ -$FG,2$$WW,1$'^'$FG$ Means the Control Key - -$MA+A+LA,"Toggle Plain Text ^T","Msg(2,0x14,0x41400000414);"$ -$MA+A+LA,"Toggle Picture Word ^O","Msg(2,0xF,0x41800000418);"$ -$MA+A+LA,"Toggle Border ^B","Msg(2,2,0x43000000430);"$ - -Select Text SHIFT CURSOR -$MA+A+LA,"Cut to Clipboard SHIFT DEL","Msg(2,0,0x3D300000253);"$ -$MA+A+LA,"Copy to Clipboard ^INS","Msg(2,0,0x4D200000452);"$ -$MA+A+LA,"Paste from Clipboard SHIFT INS","Msg(2,0,0x2D200000252);"$ -$MA+A+LA,"Del Line ^Y","Msg(2,0x19,0x41500000415);"$ - -Begin/End of Line ^Left/^Right -Begin/End of File ^Up/^Down - -$MA+A+LA,"Indent In ^N","Msg(2,0xE,0x43100000431);"$ -$MA+A+LA,"Indent Out ^SHIFT N","Msg(2,0xE,0x63100000631);"$ - -$MA+A+LA,"Word Wrap On ^W","Msg(2,0x17,0x41100000411);"$ -$MA+A+LA,"Word Wrap Off ^SHIFT W","Msg(2,0x17,0x61100000611);"$ - -$MA+A+LA,"Underline On ^U","Msg(2,0x15,0x41600000416);"$ -$MA+A+LA,"Underline Off ^SHIFT U","Msg(2,0x15,0x61600000616);"$ - -$MA+A+LA,"Blink On ^K","Msg(2,0xB,0x42500000425);"$ -$MA+A+LA,"Blink Off ^SHIFT K","Msg(2,0xB,0x62500000625);"$ - -$MA+A+LA,"Invert Color On ^Z","Msg(2,0x1A,0x42C0000042C);"$ -$MA+A+LA,"Invert Color Off ^SHIFT Z","Msg(2,0x1A,0x62C0000062C);"$ - -$MA+A+LA,"Toggle Superscript ^P","Msg(2,0x10,0x41900000419);"$ -$MA+A+LA,"Toggle Subscript ^SHIFT P","Msg(2,0x10,0x61900000619);"$ - -$MA+A+LA,"Insert Dollar Cmd ^L","Msg(2,0xC,0x42600000426);"$ -$MA+A+LA,"Insert Graphic Cmd ^R","Msg(2,0x12,0x41300000413);"$ -$MA+A+LA,"Macro Capture and Play F2","Msg(2,0,0x3C0000003C);"$ - -$MA+A+LA,"Undo ALT-BACKSPACE","Msg(2,8,0x80E0000080E);"$ - -$MA+A+LA,"Page Break ^ENTER","Msg(2,0xD,0x41C0000041C);"$ -$MA+A+LA,"Print PrintScreen","Msg(2,0,0xB7000000B7);"$ -$MA+A+LA,"Goto Favorites ^SHIFT F","Msg(2,6,0x62100000621);"$ -$MA+A+LA,"File Manager ^D","Msg(2,4,0x42000000420);"$ - -$MA+A+LA,"Find/Replace ^F","Msg(2,6,0x42100000421);"$ -$MA+A+LA,"Find Next F3","Msg(2,0,0x3D0000003D);"$ -$MA+A+LA,"Go to Line ^G","Msg(2,7,0x42200000422);"$ -$MA+A+LA,"Save ^S","Msg(2,0x13,0x41F0000041F);"$ -$MA+A+LA,"Save As ^A","Msg(2,1,0x41E0000041E);"$ -$MA+A+LA,"Quit No Save ^Q","Msg(2,0x11,0x41000000410);"$ -$MA+A+LA,"Quit and Save ESC","Msg(2,0x1B,0x0100000001);"$ - -$TR,"Cmd Line Issues"$ -$ID,2$$FG$* $FG,2$CTRL-SHIFT-ENTER$FG$ can be used to insert a carriage return without issuing a cmd. This is useful when you have scrolled-up and wish to enter a cmd on a blank line. -* The last semicolon on the line is converted to a double semicolon because the compiler looks ahead before doing a cmd. This normally has no negative effect, but when entering "if" statements with "else" clauses it presents problems. - - -$ID,-2$$TR,"Hot Keys"$ -$ID,2$$FG,9$CTRL ALT DEL$FG$ Reboots -$FG,9$CTRL ALT ESC$FG$ Spawns new task -$FG,9$CTRL ALT TAB$FG$ Switches tasks -$FG,9$CTRL ALT X$FG$ Kills current task -$FG,9$$FG,9$CTRL ALT C$FG$ Breaks current program -$FG,9$WINDOWS KEY$FG$ Activates Menu/Help/Macro area -$FG,9$CTRL FUNCTION KEY$FG$ Enters autocomplete word -$FG,9$CTRL Digit KEY$FG$ Enters autocomplete of dictionary word -$FG,9$CTRL SHIFT-FUNCTION KEY$FG$ Does man page on symbol -$FG,9$CTRL SHIFT-digit KEY$FG$ Looks-up the dictionary definition. -$ID,-2$$TR,"Debugging"$ -$ID,2$F9 Toggle Breakpoint -SHIFT-F9 Clear ALL Breakpoints -F5 Go -SHIFT-F5 Single-Step -$ID,-2$ -* If "MENU" appears on the title bar, you can click it with a mouse. \ No newline at end of file diff --git a/LT/Doc/FileManager.MUZ b/LT/Doc/FileManager.MUZ deleted file mode 100644 index ffb391fef8c754991f3d2fc68f31359e1a4efa04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3218 zcmY!h57#kNQE_wEF;!6siO_bA&{1;B%t=-7P0UM7Pc2dc$*J&i@p6IG7^wt%c)Eos zIEMxW`vxBK|Z>X3i(9} zF0MYVA+8GEu93*PT~c#WOH#qQL5fO>Qd4ml;^`Oc8We)8*EzqSQlS`ZeQFBWh+>73 ze1+tk%z~u+#G({TgTQ{!#WX1(vA84^pGF^7w-8-tA5Uj*WCyquC8jGR=A|g46y+Cy ztj^6ZOI1h&I|b$&kZ__xN@h`Na!GzsC8nE#Jl#F8nC(=QnU}6xTA+}dnpcXc%hfN$ z6(t&iQu7jXApwc0T0K`C+1<_=iFxU%E}6yI3K~JFx%s7eB??8Ux%p*@Nja$sxv43c ziJE!}3NHBydHE#@DftQ|8JWcj`FRRSIf;4M3MrYz*;t}ly#&P)$CMO>lGNOS{G!C7 zN`;i7%(7HH1%=S!RETLM`3kv-*`UxuQ>2iVU!;&!T9lWWm#*OKqVE#sqF$`0pb(i~ zs!*JfUz(GmP?VaSpIZP*tNy{hiJ5ueH~^bgT$-GrkO;9&p&+#=H!&|YuLNqZijTLB zl4o9VNn%cpQ+|Gll8%zEpB1uziiRdAzToC#3CT1RPrBt76^gOiD#f zB@|GKPfJTJO3lL^I8G>m<5XId2aRrwzyYNOP|!fbuCy2wG@#&sgbk?Z(IL&V$Z-WJ z;7nCO38APoxg;|`51iOT!PY?RR4+!(Kb~ozKvBp@EK3FF5O{h?Q9w$Nupk77AH*0) zLeWu3t;j3^$0x|?3b~L17aRel#iK2d(9{9D#wWixH6$aySRpw-Hy2cZf=UBy#Sk&^1WGxe z1Oag|YD_tUvz0<3Qb`2MT448s(sz)fFQ~B2&jS~1Itt04Y6TQA#R{2uC7{ADRRKkl zo`M26D<^^zDkKd;b05Ueq)G*FD1%%D4QNP7fGwcWjSfJLA4nd-rVZj-g&==lNTLEo z4k(|1!xvNtl;nf`qo<%Su*p>q)P#WLG2g^&P@p6#fXZKRZ3FQKO74PWEKnLt%g@Ql zF9+#J&QD1NMOJPldQk*69~#Q8;35T7^yPx0ATt+K^<*R#L5oWTc)BY{EGo$a<#dqa zpqfLFHA9>Q30fpIQE)Yh3ZQg@QFj&P=PHzEWF}`QctY#9JVYvi)?&%vN(_|Kp-lz2 zYZNl`ic3-xQ$U$8$kA6%0TON|D!g3E&@3Mi=NYf8}IDz=jQ3osgz`BP+??X zU|ol)T-Cf>3JT6C8cMEK`aU5_ zn${pK3eciKUmsjArRJ5S78NVxRw^Xt=cQ$)gS6=DgQ{pq6%2|SNSUVx3PzAi6%-sx zOY$`^911fZRL(+cU=4LwbshB(b&!;T0;Dq4P>)jA2?+{y)p2w533i1@fr~`?^;-)xu6A`K;dBq4;l@XWlF{PJR` zQWUdcQaYfZP*70PhY6rN4HP4wWRA@cxE$ORxCq1;NWtao0&08JuTvD1+2`)ZB^;ubJQKf>j z3pf!MfpQ+CTCxHq6@AC#grbase$FG$ is a bitmap for persistent data on the screen, not needing to be redrawn. You create an alias for this by using $LK,"GrAlias","MN:GrAlias"$() and work with that. This image is XORed on top of everything, so the colors you work with, you usually XOR with WHITE to compensate. (White is usually the text background color. XORing twice gets you to what you started with.) It's slightly simpler using this bitmap then $LK,"grbase2","MN:grbase2"$, but it's not as good because changes aren't syncronized to the screen update and window borders are not enforced. See $LK,"::/LT/Demo/Graphics/DotNet.CPZ","FI:::/LT/Demo/Graphics/DotNet.CPZ"$ - -* There is actually one $FG,4$Gs->grbase$FG$ for each core and they get merged. See $LK,"::/LT/Demo/MultiCore2.CPZ","FI:::/LT/Demo/MultiCore2.CPZ"$ - -* $LK,"grbase2","MN:grbase2"$ is a bitmap for the screen, redrawn each refresh. You create an alias with $LK,"GrAlias","MN:GrAlias"$() and work with that. You must change the "$FG,2$Fs->update_win$FG$" variable to point to your update function and must draw everything in the window over and over again. "$FG,2$DrawIt()$FG$" is the preferred name for your update function, so everyone is consistent. See $LK,"::/LT/Demo/Graphics/Box.CPZ","FI:::/LT/Demo/Graphics/Box.CPZ"$ - -* Use $LK,"GrAlias","MN:GrAlias"$() to create your own structure for accessing the screen and pass it either $FG,4$Gs->grbase$FG$ or $LK,"grbase2","MN:grbase2"$. (Free it with $LK,"GrDel","MN:GrDel"$() when finished). A $LK,"GrBitMap","MN:GrBitMap"$ returned by $LK,"GrAlias","MN:GrAlias"$() stores the pen width and current color. It also can hold info necessary to rotate the whole image in 3D and shift it around. - -* Use $LK,"GrBitMapNew","MN:GrBitMapNew"$() to create a memory bitmap which can be used to work off-line and which can be $LK,"GrBlot","MN:GrBlot"$ed onto the screen. If you set $FG,2$brush$FG$ member of $FG,2$GrBitMap$FG$ to another $FG,2$GrBitMap$FG$, all the graphic routines will $LK,"GrBlot","MN:GrBlot"$() the brush instead of $LK,"GrPlot","MN:GrPlot"$(). See $LK,"::/LT/Demo/Graphics/Blot.CPZ","FI:::/LT/Demo/Graphics/Blot.CPZ"$. - -* There are various flavors of line and point plotting routines. $LK,"GrLine","MN:GrLine"$() and $LK,"GrPlot","MN:GrPlot"$() are the simplest. The others allow 3 dimensional graphics. - -* $LK,"GrTheta","MN:GrTheta"$() and $LK,"GrPhi","MN:GrPhi"$() create matrices for 3 dimensional rotations. You pass them an angle in radians. To make the matrices take effect, assign them to your graphic $LK,"GrBitMap","MN:GrBitMap"$'s "$FG,2$r$FG$" variable and set the $LK,"BMF_TRANSFORMATION","MN:BMF_TRANSFORMATION"$ flag. Transformations (rotations) can be combined using $LK,"GrMulMat","MN:GrMulMat"$(). See $LK,"::/LT/Demo/Graphics/Box.CPZ","FI:::/LT/Demo/Graphics/Box.CPZ"$. - -* You can rotate single points using $LK,"GrRotate","MN:GrRotate"$(). - -* You can shift the image around by changing a $LK,"GrBitMap","MN:GrBitMap"$'s "$FG,2$x$FG$","$FG,2$y$FG$" and "$FG,2$z$FG$" variables. - -* Use the resource editor, $FG,2$CTRL-R$FG$, to create a picture-like thing called a Graphic Element that can be plotted with $LK,"GrElemsPlot","MN:GrElemsPlot"$(). Use $FG,2$$$IB,"",1$$$FG$ in a source program to insert the address of picture #1. (After creating a picture with $FG,2$CTRL-R$FG$ in your source code, toggle to plain text with $FG,2$CTRL-T$FG$ and check it's number. Then, make an assignment to a pointer variable with $FG,2$$$IB,"",n$$$FG$ as the value. See $LK,"::/LT/Demo/Graphics/Sprite1.CPZ","FI:::/LT/Demo/Graphics/Sprite1.CPZ"$ and $LK,"::/LT/Demo/Graphics/Sprite2.CPZ","FI:::/LT/Demo/Graphics/Sprite2.CPZ"$.) The origin (zero point) for a graphic element is defined by the cursor location when you press $FG,2$CTRL-R$FG$. The "$FG,2$x$FG$", "$FG,2$y$FG$" and "$FG,2$z$FG$" values you pass to $LK,"GrElemsPlot","MN:GrElemsPlot"$() shift it around. You can edit a Graphic Element by clicking the cursor on it and pressing $FG,2$CTRL-R$FG$ again. - -* There is a mechanism built-in for generating motion based on differential equations, which allows real-world physics. You create an $LK,"Ode","MN:Ode"$ struct with $LK,"OdeNew","MN:OdeNew"$(), passing it the number of variables in the state vector. For real-world physics, you usually have 2 state variables for each dimension (for each mass) because motion is governed by f=ma which is a 2nd order equation. The two states are position and velocity and to solve these you need to supply the derivative of position and velocity. The derivative of position is usually simply the current velocity and the derivative of velocity is the acceleration (the sum of forces on a mass divided by mass). To help provide meaningful names for values in the state vector, you can create an $LK,"Order2D3","MN:Order2D3"$ pointer and point it to a mass in the state vector. Six elements in the state vector are required for each mass. - -See $LK,"::/LT/Apps/Rocks/Rocks.CPZ","FI:::/LT/Apps/Rocks/Rocks.CPZ"$ - - - diff --git a/LT/Doc/GuideLines.TXZ b/LT/Doc/GuideLines.TXZ deleted file mode 100644 index 0ec4511..0000000 --- a/LT/Doc/GuideLines.TXZ +++ /dev/null @@ -1,66 +0,0 @@ -$WW,1$$FG,5$$TX+CX,"ACCOUNT FILES"$$FG$ - -You can add and remove accounts by making or removing directories in the $FG,2$::/LT/Accts$FG$ directory. You'll have to copy start-up files into them. - -See $LK-A,"HOME/User.CPZ"$ for the user start-up file. - -See $LK-A,"HOME/User.MUZ"$ for a personalizable menu/macro area which can be viewed at the command line with the windows key or by clicking "$FG,2$MENU$FG$" in the upper left border area of a window. - -See $LK-A,"HOME/DoIt.CPZ"$ for a file which is invoked at the start-up of the first user. - -See $LK-A,"HOME/Favor.MUZ"$ for a handy "favorites" file which can be reached by pressing $FG,2$CTRL-SHIFT-F$FG$, pretty-much anywhere. Users can place links and todo lists or any text within this. - -See $LK-A,"HOME/Adam3.APZ"$ for the user files that get loaded into the adam task at start-up. These are only loaded once. - -See $LK-A,"HOME/System.CPZ"$ for the start-up file used when a $LK,"System","MN:System"$() command is used. - -See $LK-A,"HOME/Servant.CPZ"$ for the start-up file other commands which $LK,"Spawn","MN:Spawn"$() tasks. - -See $LK-A,"HOME/Fault.CPZ"$ for a start-up file called when a fault occurs. When debugging you might place data display commands here. - -$FG,4$SysRegistry.BIZ$FG$ is for operating system data. It's just a $LK,"SysAccntRegistryStruct","MN:SysAccntRegistryStruct"$ that's been written-out. For application configuration data, create a data file in the application's subdirectory in $FG,2$HOME$FG$ if you make an application. - -$FG,5$$TX+CX,"APPLICATION POLICIES"$$FG$ - -* Place applications in their own $FG,2$/LT/Apps$FG$ subdirectory. - -* Make a file called $FG,2$Load.CPZ$FG$ to load the application. - -* Make a file called $FG,2$Run.CPZ$FG$ to load and run the application, preferable by $FG,2$#include$FG$ing the $FG,2$Load.CPZ$FG$ file. - -* Place user data in a subdirectory of $FG,2$HOME$FG$, preferably naming the subdirectory the same as the $FG,2$/LT/Apps$FG$ subdirectory. - -* Make a file called $FG,2$Install.CPZ$FG$ or $FG,2$Install.AUZ$FG$ to create the $FG,2$HOME$FG$ subdirectory and do similar stuff. - - - -$FG,5$$TX+CX,"OS PROGRAMMING GUIDELINES:"$$FG$ - -* Virtual mem is not used (It is identity mapped in EM64T mode). The stack does not grow, so allocate enough when the task (process) is $LK,"Spawn","MN:Spawn"$ed and use the heap for most things. (The "heap" refers to $LK,"MAlloc","MN:MAlloc"$() and $LK,"Free","MN:Free"$().) - -* I've tried to standardize names see $LK,"Naming convention","FF:::/LT/Doc/OSGlossary.GLZ,Naming convention"$ - -* There are two modes of compiling $LK,"Static Compiled Mode","FF:::/LT/Doc/OSGlossary.GLZ,Static Compiled Mode"$ and $LK,"Dynamic Compiled Mode","FF:::/LT/Doc/OSGlossary.GLZ,Dynamic Compiled"$. Actual compilation is done in both--nothing is "interpreted". - -* $LK,"Differences from C/C++","FI:::/LT/Doc/Differences.TXZ"$ - - -$FG,5$$TX+CX,"Hash symbol tables:"$$FG$ - -* See $LK,"::/LT/Adam/HashUtils.APZ","FI:::/LT/Adam/HashUtils.APZ"$ for examples of how the hash tables are set-up. Basically, symbols are placed into hash tables and child process hash tables are chained to parents. This provides scopes for variables and functions. - -* "$FG,2$adam_tss->hash_table$FG$" holds the C/C++ symbols loaded in on start-up. - -* "$FG,2$Fs->hash_table$FG$" holds user C+ symbols and if a symbol is not found, it checks parents. When a duplicate symbol is added to the table, it overshadows the previous symbol. When developing software, typically you include the file at the command prompt, make changes and reinclude it. Old symbols are overshadowed but they are still there. Periodically, kill the TASK and start fresh when mem is low. If you wish your applications to free themselves instead of staying in mem, spawn or $LK,"PopUp","MN:PopUp"$() a task to run the application and kill it when it's done. - -* To display the contents of a hash table, use the $LK,"HashRep","MN:HashRep"$() routine or the varients. - -$FG,5$$TX+CX,"Assembly Language Concerns:"$$FG$ - -* $FG,2$FS$FG$ must always point to the per-TASK's structure. See $LK,"C+","FF:::/LT/OSMain/AdamK.HPZ,TssStruct:2"$ and $LK,"Asm","FF:::/LT/OSMain/OSDefs.ASZ,TSS_RIP"$. - -* $FG,2$GS$FG$ must always point to the per-CPU's structure. See $LK,"C+","FF:::/LT/OSMain/AdamK.HPZ,CPUStruct:1"$ and $LK,"Asm","FF:::/LT/OSMain/OSDefs.ASZ,CPU_NUM"$. - -* Don't change the segment registers unless interrupts are off. - -* When interacting with compiled code, preserve $FG,2$RBP, RSI, RDI, R12-R15$FG$ because the compiler uses these for register vars. You are free to trash $FG,2$RAX, RBX, RCX, RDX$FG$ and $FG,2$R8-R11. diff --git a/LT/Doc/Hardware.TXZ b/LT/Doc/Hardware.TXZ deleted file mode 100644 index 1d275db..0000000 --- a/LT/Doc/Hardware.TXZ +++ /dev/null @@ -1,21 +0,0 @@ -$WW,1$$FG,5$User Skills Required$FG$ -* Knowledge of the $FG,2$C$FG$ programming language. - -$FG,5$Supported Hardware$FG$ -* IBM PC compatible with 64-bit x86 $FG,4$EM64T$FG$ -* VGA graphics -* Some$FG$ keyboards and mice. -* Minimum 256 Meg RAM; Maximum 128 Gig RAM -* Internal PC Speakers -* Can boot to IDE CD-ROMs -* Can access but not boot SATA CD-ROMs -* ATA and SATA hard drives $FG,4$<=120 Gig$FG$ -* RS232 serial ports -* Game Port Joysticks, not USB. - -$FG,5$Unsupported Hardware$FG$ -* No Modern graphics cards -* No Modern sound cards -* $FG,4$No Networking$FG$ -* No USB devices -* No Printers (There is a feeble attempt to send ASCII to a parallel port when you press $FG,2$PRT SCRN$FG$.) diff --git a/LT/Doc/Hash.TXZ b/LT/Doc/Hash.TXZ deleted file mode 100644 index 07c990aac8e299579bc3b165b0de000e88a84bc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmY!h57#kN3CTz;N>xZKN>wPX%uUMA(a1xkFNP@t zn+j5#oRONGotmPjpx~I3qfk(kpPX7;tdN|Mn3<=Ll$e~YP?8TeMa9is$4JF7B{5gU z&0Pg-njS9~FPBe#acW3LKB~dRU~gpR7UZPnrskETrYMwWmSiX-<|!l=6(v?GZ^2-(Sb5c@^6!P;@ixm>{Qs62;v6Yuv zmRh7xl$x7g1`bC=JeDOEW#*R_E0k0gfJ{q+X#+VtHB~{y$6H6qBe6I`!8Na>s8S&W fq)bUi$=A=yBP1j~I5IdsIMUb2-$zLW9MlW|v3b3t diff --git a/LT/Doc/Help.TXZ b/LT/Doc/Help.TXZ deleted file mode 100644 index c2a2dea8ddbd7c32bd39491a0bb9f05060f75ac3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5896 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 Sjv-7Ns0j|Og78qhTnqp+Z6Oi> diff --git a/LT/Doc/HelpIndex.TXZ b/LT/Doc/HelpIndex.TXZ deleted file mode 100644 index 9d6f1e1..0000000 --- a/LT/Doc/HelpIndex.TXZ +++ /dev/null @@ -1,39 +0,0 @@ - -$LK,"Main Help","FI:::/LT/Doc/Help.TXZ"$ - -Function Catagories - -$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,"Comm","HI:Comm"$ -$LK,"Compiler","HI:Compiler"$ -$LK,"Compression","HI:Compression"$ -$LK,"Debugging","HI:Debugging"$ -$LK,"Exceptions","HI:Exceptions"$ -$LK,"Fifo","HI:Fifo"$ -$LK,"File","HI:File"$ -$LK,"Games","HI:Games"$ -$LK,"Graphics","HI:Graphics"$ -$LK,"Hash","HI:Hash"$ -$LK,"Input Pointer","HI:Input Pointer"$ -$LK,"Install","HI:Install"$ -$LK,"Ltf","HI:Ltf"$ -$LK,"Math","HI:Math"$ -$LK,"Memory","HI:Memory"$ -$LK,"Messages","HI:Messages"$ -$LK,"Misc","HI:Misc"$ -$LK,"Multi-Core","HI:MultiCore"$ -$LK,"PicWords","HI:PicWords"$ -$LK,"Processor","HI:Processor"$ -$LK,"Sound","HI:Sound"$ -$LK,"Task","HI:Task"$ -$LK,"Time","HI:Time"$ -$LK,"Training","HI:Training"$ -$LK,"Windows","HI:Windows"$ -$LK,"WordStat","HI:WordStat"$ -$LK,"Utils","HI:Utils"$ - diff --git a/LT/Doc/InputPointer.TXZ b/LT/Doc/InputPointer.TXZ deleted file mode 100644 index 11f3af5..0000000 --- a/LT/Doc/InputPointer.TXZ +++ /dev/null @@ -1,4 +0,0 @@ -$WW,1$"Input Pointer" is either a mouse or joystick at this point. If you really want to, you can access the mouse variables directly -- see $LK,"mxx","MN:mxx"$. - - - diff --git a/LT/Doc/Install.TXZ b/LT/Doc/Install.TXZ deleted file mode 100644 index 9a5f3a3bfa71a18ef2dcf80e36bb196c17f60b15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2844 zcmY!h57#kNQE_wEF;!6siO_bA&{6WtD=taQ$w@59%+FKs%P&bSRsyL|;pO7x3du-S zaCXrR^7mEn^a~Dg^zl*1F90hn&&z}WkYAQsRF;`q4l*$* zKffe1FI`VT0dAy6Vo^$YVo|C>aA`q7eo;wk3c8Un6=3UBzzzy2&sXrtFHQ}~$S+nX zNGvMJ1bL%a0c1`_W_m_Wr9x3^a(-@ZYF6<@rU~3i){onI(D(3jQf6U^{fc zQu%o~l?r*OsVNGH3d#AU1v#k->6z(?NtGq3#bD1@=9d;>b0*jehMK%wDxNMnMk?Tt zbxcWdDatHMEmqP|^7XSqa8)!k6-tX!6*AKlQa}n6GLd|ongTNp5}`VB6SFh((iJjG6cUq@Q;Ul;lX6n^6cpU@ixi48a|?1ZlQT;ybrgzIb5fH_ z6hP_8NJZUQUB%5^MIo^m94<+T#i>x!a#Bl5Qi~8C%t$Osfk^2oAbbl7mtqAIg}l<- zq|~BfP>7e7Waea6r79#UAhamx>MDTDHqZf6hB^wFMTN@XC@IYYhj}S+*}O|KpJ$AL=3?qU|Uq&+;xmpOhGF2ATg|K1kS?Xv=RVI@Zb~! zNib+)*iubiehDJ4fKm>`WFr-D+5r~<1*t`8`9--3i3-I9smYm%Igo6RNR3z$C$!ke zOis+nsRSo&6(?^ULzQsHAU{t(cPkLjKt(|TYzr)frWPd@rxq)umZcU|mSliZXMP?^ z!q8Jt@GMa%N=44x3gsF3Ik031O6MTACYC@_D6+z0L^?zW>!CTJI3vF_Cq*GCRiQXL zv!Ea~1(d}=r9@&*QEFmJB_w{qc^HuhkOL4oWp_7Nmmg#v00=Y2dO6R1g-WLd*u0 zxC)6_f0P1yIr`$ydn9FHQw#caU|kq^WOUU|;|$?)Ck1Qhc3)^qf4wSql=? zo-R7NMk>Zoe>>+FRE89#rb2uU=i%~uW-+K}O92%Q$@vA93LtBX74q}I#WS`*S4b<$ z&jq^>QjdY+w6Y*op*TM`6_Sj=WdJ1mz^vC$3bE2x(ou4;(pS>72IVPK3-uHfLZSYK zl(5he4qOAKB1KDPoS1$$$7^pxhJdnXf zDS8SDk@=2tyf)X3JY{8w?6*BW6=?T=bCkZ@*A6(vff(!lh#LPV8pfp7dO5eod zlGGxM07VkU6|CS`1J#G%%0DMR5mfAh3miyHxnTPt zDk0$sc6(7O)OghD3SKuEU8oi$*b^k@p6IG8L9Y$ zM5(yBt0-g^DNqN3Pd158l zj`Y+L0@f?&>ME3FCMr0)=mz=wD&!Y|d5H>2AUhQb5{pVQOEUBGloa5$Cl{qAmZYXA zlxLP?D4+&aejZX#!S(8a!W1b~6?9W83P6Dvt(#b!oS7M`kdj%HmzbLh3T`WqVsKC* z1w>*_4tijKZ3k&8R!GfD0R?kro`O2WIpBCxSI9(mO-g1_YH~?_QKbUNW{^})jzV#1 z5==ZZwOCILrNNKrT{9%SlXEC@oG+0hySbpPQ7Kmk0_INTem_=ar=vl_->C zq$*?<6{V(^<|Gy&T?FToY;Iw03p zLc#{5EH5=R1(Z~iQjwB&YKoqMLS%laLULlBf{Kr~j*@SFS*ntblCPf?n5Ckj2}+A# zDd+rxN{AGg1(GVsNX-Qqnh17}0>~a*sQ~2bl8jWSi;_|mic9i~Qd3YJ14?u#DKs}R zJ5?bmCp$T>1e^ G&Lh2qTgyu8v}P{KeYRY;alNCf9K1?;&19ARmoG9nX{-AghQ z62XQgmXsEyD&&>sCZ!fBlw>59fWrjj&eX)BV)4>n2s|f*GiViJpRj ze_nE`LUDdB$j$l5*~O4@A}KXBPa!cUCqEgSVUsFhWe(UaNW!pUNe3*E35o8M{5U=Wfp@{c%nj1 zW=Tm-szOm_adsuR7*sD-C@4xTDXCN_PE1QxfI0*kx+NKz#b6sC0Sqr*6jD-CG9f+$ zg%ns>L1|GzesL9&0TOM{SO({`#5_=z1qEMmL27blTBSmwf|6f; zo~};_#FuanDk0^SqEt}rkeQRJ;2-Rp2r9<%QWR2B(?Hb`#OI075*w6#K#>H_LXIgZ zE=8GTsl^b_BeYo!(F(5B zN-|RO6!P;Ri6g7DxI`g2zn~KA3vdAkPStSl=qM!R=a--)#iG(Yw9qTbS4gcW0Tq&< z;v^Rqk#6of;EEYkg+OFeic6ri2TDFg%by_UfGQDCHZBGg-QcnUk25lM2aypaulYVNTvUhAQEXL4KZo?p7*J-Z};<3NHEJf+?}2 zBsI671Y`qJl?HK1NqJ^+Dk!GFWkODlLUK`JaRw+aq=EbmtnkY$$Nja4egB42h^P!QPo0*=aZzbzoKo( zT!guh!YwB=J5>RkZBi2R(o>6c6p~WY6?`+3i}H)})4)*%t_a*5A$hX6vbZEQ7gS1> UCgo%%E2QM-CT8a8@p3T$0QwVpW&i*H diff --git a/LT/Doc/Lectures/LoseThos.TXZ b/LT/Doc/Lectures/LoseThos.TXZ deleted file mode 100644 index 15bae88..0000000 --- a/LT/Doc/Lectures/LoseThos.TXZ +++ /dev/null @@ -1,94 +0,0 @@ -$WW,1$$FG,5$$TX+CX,"Introduction"$$FG$ - -There's no point being an inferior immitation of $FG,2$Windows$FG$. I picked a niche and specialized -- $BK,1$programming as entertainment$BK,0$. I chose simplicity intentionally over conventional approaches. This is not a platform for games, but a platform for writing games. Hobbiest programmers are a higher priority than commercial developers. - -I have no plans to support multimedia or the Internet. This is a supplemental operating system (like supplemental insurance). Duel boot and do that stuff on your primary operating system. There's no reason to reinvent the wheel and, unlike what I've done in LoseThos , I see nothing I could add to a browser or multimedia player -- you can't change the file formats. - -LoseThos has no networking and will never have networking so there's no need for security. Did an $FG,2$Apple II$FG$ or $FG,2$Commodore 64$FG$ have security? I mention these classic systems because the intended usage of LoseThos is similar, only modern. - -LoseThos is not for desktop publishing or word processing. It's document format is designed for interaction on the screen and does not lend itself to printing. Click here for a hint $HS$This text is hidden until you click on it.$HE$. - -When I started programming in 1981 on an $FG,2$Apple II$FG$, it took two lines of code to draw a line on the screen and it could be typed from the command line or in a $FG,2$BASIC$FG$ program: - -$FG,4$HGR -HLINE 1,1 TO 30,30$FG$ - -Programming is far more intimidating, now. It's not uncommon for a "Hello World" application to take 50 lines of code. - -Most game development packages for amateurs are like fitting a square peg in a round hole. People want good looking games, but don't have "the chops". $FG,2$LoseThos$FG$ games will not look as good, but there is complete freedom -- you won't be constrained. I suggest you stick to 2D instead of 3D. - -Game companies employ more artists than programmers. In the past, games were often made by individual programmers. Modern games are more like movies, relying on lots of "canned" video and sound. - -I had to have an option for simple graphics so I made a graphic layer that is "persistent" (stays on the screen without having to be refreshed.) There is a second layer which is redrawn each refresh. The two layers are merged (XOR), along with a text layer, to form the screen image. There's actually a persistent layer for each CPU, but beginners don't need to know that. - -I hate fighting with fonts. There will always be just one font, a fixed-width font, because variable width letters screw-up tables. Now, I fight with colors and it's about the same. Oh, well. - -I like $FG,2$ASCII$FG$ more than $FG,2$UNICODE$FG$. I'll stick to the American market. I might add extended $FG,2$ASCII$FG$, but not $FG,2$UNICODE$FG$. Let programmers in other countries write their own operating systems. - -The text layer allows animated character graphics, which were fun. It's been modified to shift the character in each position horizontally or vertically, so you can do $SY,-3$superscripts $SY,0$or $SY,3$subscripts$SY,0$. - -I hated learning one language for the command line and another for programming. With $FG,2$LoseThos$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 in memory it $LK,"MAlloc","MN:MAlloc"$()s. It's like the compiler is paused. Naturally, you $FG,2$#include$FG$ a program to load it into memory and, usually, start it. During boot, many files get compiled before it allows you to access the command line. All the header declarations for the operating system are already compiled and are available for use in your programs without needing to $FG,2$#include $FG$them. Everything is truely compiled and nothing is "interpreted". - -Statements outside the "scope" of a $FG,2$C+$FG$ function execute immediately. There is no $FG,2$main()$FG$ function. Instead, you give a meaningful name and invoke that function by calling it with a statement outside the scope of any function, 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 parameters 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 parameters and it looks like this: - -$FG,4$Dir;$FG$ - -The only side effect in changing the syntax is that when you specify the address of a function, you must include a $FG,2$&$FG$ in front (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 precidence","FA:::/LT/Compiler/CmpInit.CPZ,OP_precidence"$ rules. See $LK,"Departures from C/C++","FI:::/LT/Doc/Differences.TXZ"$. - -There are no object files in LoseThos and, normally, you don't make executable files either, but you can. That's known as "static" compilation. - -I looked at $FG,2$Linux$FG$ code to learn how to use a hard drive and, damn it was confusing. It had so many layers it was hard to find the actual $FG,4$IN$FG$ and $FG,4$OUT$FG$ instructions that access the hardware. I decided I'd keep layering to a minimum. Why have open source software if people can't understand and modify it? - -One problem with $FG,2$Linux$FG$ is it handles many platforms and different pieces of hardware so it's full of $FG,4$#if$FG$'s and I found it difficult to read. I don't know if LoseThos will become that way or not. I'm starting with 64-bit CPU's and hardware of that vintage, so I have no reason to support the majority of old hardware. - -I cherished a book called "Mapping the $FG,2$Commodore 64$FG$" when I was a kid because it literally told what everything did. I had a lot of fun. $FG,2$Commodore$FG$, Ticketmaster's $FG,2$VAXTMOS$FG$ and $FG,2$MATLAB$FG$ are influences. - -I made the kernel (known as OSMain) intentionally simple, so everybody could understand and tinker. Technically, it shouldn't be called a kernel since $BK,1$everything always runs in kernel mode$BK,0$. All code always has full priviledge. User programs can access all memory, use all CPU instructions, access all I/O ports directly, and can access all parts of the disk. My system reboots in 3 seconds if I crash it and I like total freedom as a programmer. - -Tasks have no priority scheme and are never removed from the queue. Instead they poll whatever they are waiting on and swap-out. This keeps it simple. It's only a problem if you have too many tasks busy. - -The file system is simple so no body can sue me. There is an allocation bitmap and all files are stored contiguously. You cannot grow files. Files have checksums, however. Filenames ending in "Z" are stored compressed. LoseThos supports direct block access into files. There is no $FG,2$PATH$FG$ but parent directories are searched when a file is not found. See $LK,"LTZ","FI:::/LT/Doc/LTZ.TXZ"$ for transferring files to your primary partition. - -At one job I made a hardware device which plugged into the parallel port. When we upgraded from $FG,2$Win98$FG$ to $FG,2$WinXP$FG$, hardware ports became off-limits. A coworker found some software to enable them. $FG,2$LoseThos$FG$ allows full access to ports. Some hobbiests might want to plug hobby hardware projects into the parallel port. - -I like being able to turn-off interrupts ($FG,2$Cli; $FG$and $FG,2$Sti;$FG$) when I change a structure used in a multitasking environment. $FG,2$LoseThos$FG$ runs all programs in kernel mode, so no instructions are restricted. Turning-off preemption with $LK,"Preempt","MN:Preempt"$() is a less drastic measure that is usually sufficient. - -The graphic resolution is poor, 640x480x4. I've decided to set this as the one and only resolution, forever. It uses minimal CPU. A fixed size keeps it simple. Everybody has the same appearance on their screen. It's good for mobile devices. VGA is currently the least common denominator on PC's. Look on the bright-side -- you won't spend your time twiddling pixels. - -$FG,2$LoseThos$FG$ is for hobbiest programmers on single user home computers. The focus task is all-important so "symmetrical multiprocessing" is almost pointless. When it comes to multicore utilization, all resources should be devoted to the focus task. For now, you must explicitly make use of mutlicore in your programs. You can make use of $FG,4$Gs->grbase$FG$, a persistent graphics layer present for each core. It gets merged (XORed) to make the final image. Multicore is fun. A practical use I plan is placing time-critical tasks on a core which doesn't allow long periods with preemption turned-off. - -I didn't want to use virtual memory, but I had to for 64-bit mode. It's just as though there is no virtual memory, except you can mark pages as uncached or write-through for MultiCore programming. - -There is no distinction between "task", "process" or "thread". All have a $LK,"TssStruct","MN:TssStruct"$() pointed to by $FG,4$Fs->$FG$ while $FG,4$Gs->$FG$ points to a $LK,"CPUStruct","MN:CPUStruct"$ for the current CPU. Each task can have just one window. - -In LoseThos , "$FG,2$Adam$FG$" refers to the father of all tasks. He's never supposed to die. Since task's 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. He stays in a server mode, taking requests, so you can ask him to $FG,2$#include$FG$ something which places that code system-wide. A funny story is that, originally, I called it the "root" task and even had a "$FG,2$/LT/Root$FG$" directory. - -For easy back-up, place everything you do in your $FG,2$HOME$FG$ directory and subdirectories. That should make upgrading easy, too. To make an account use $LK,"MkDir","MN:MkDir"$() to create a directory under $FG,2$/LT/Accts$FG$. It will be $FG,2$HOME$FG$ if you boot to it. The customizable start-up scripts should go in your $FG,2$HOME$FG$ directory. The default start-up files are in $FG,2$/LT/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,"Account Files","FF:::/LT/Doc/GuideLines.TXZ,ACCOUNT FILES"$. - -Typically, your usage pattern through the day will be repeatedly left or right clicking on filenames in a command 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,"Edit","MN:Edit"$(""); and supply a filename. Press $FG,2$ESC$FG$ to save and exit the file. You'll need to do a new $LK,"Dir","MN:Dir"$() command, periodically, so make a macro. Access the macro by pressing the $FG,2$WINDOWS$FG$ key, cursoring until you are on top of it and pressing the $FG,2$SPACE BAR$FG$. - -$FG,2$CTRL-T$FG$ toggles plain text mode, similar to html. $FG,2$CTRL-L$FG$ inserts a nongraphic widget. $FG,2$CTRL-R$FG$ inserts a graphic or edits the graphic under the cursor. - -$FG,2$CTRL-ALT-ESC$FG$ creates a new terminal window. $FG,2$CTRL-ALT-X$FG$ kills a window. You'll do these periodically. $FG,2$CTRL-SHIFT-F$FG$ pops-up the "favorites" document. The favorites can be used from anywhere. You can put anything there. I use it as a handy TODO file, along with common links. - -$LK,"Grep","MN:Grep"$() is your best friend. There's a wrapper function called $LK,"F","MN:F"$() in your $FG,2$User.CPZ$FG$ file. $LK,"Grep","MN:Grep"$() can also be used to replace strings across multiple files. - -As you browse code, use the $FG,2$WordStat$FG$ window to look-up functions, etc. Press $FG,2$CTRL-SHIFT-F1$FG$ (or whatever) to follow a symbol to it's source. You can browse deeper and deeper. You go back with $FG,2$CTRL-Q$FG$. - -Use the $LK,"Help Index","FI:::/LT/Doc/HelpIndex.TXZ"$ to find-out what exists. It's broken down by category. A link to the help index should be on your menu. ($FG,2$WINDOW's KEY$FG$). Also, look in the $FG,2$/LT/Demo$FG$ directory. - - -$MA+A-X+PU,"Take Tour","SpawnUser(\"Cd(\\\"::/LT/Accts/Tour\\\");;AutoFile(\\\"Tour\\\");\r\");"$ - \ No newline at end of file diff --git a/LT/Doc/Lectures/Proverbs.TXZ b/LT/Doc/Lectures/Proverbs.TXZ deleted file mode 100644 index 6940111..0000000 --- a/LT/Doc/Lectures/Proverbs.TXZ +++ /dev/null @@ -1,25 +0,0 @@ -$WW,1$$FG,5$$TX+CX,"Proverbs"$$FG$ - -Writing your own code is more fun then modifying someone else's. Sadly, I heard 90% of programmers work on maintaining code. One good thing about looking at other people's code is it's a good way to learn -- you can learn what to and what NOT to do. - -Code written by one person is less redundant than code written by a team because one person knows when he is reinventing the wheel. It is more vertical, meaning deeper levels of subroutines. - -When working on other people's code, you tend to be defensive, using caution about uncertain items and this adds unnecessary code. - -Documentation which is out-of-date is worse than no documentation. With LoseThos, I tried to keep documentation right by code. - -If you call common low-level routines, there is a potential for huge added functionality with changes to the low level routines, benefitting everything. Imagine modifying a file choosing dialog. - -Not all features are good to use. I've seen cases where people use macro functions ($FG,2$#define$FG$) to make C code look like C++ code. It becomes one-more layer you have to look-up to understand. An advantage of nonvertical coding is readibility. It is possible to get carried away with nonstandard library routines. - -One mentor discouraged using abbreviations. One advantage of nonabreviated labels is there's no uncertainty on how to spell them. Typing is never what slows you down, except maybe at the command line. Uncertainty is what slow you down. - -One mentor always put "temp" on the beginning of local variables -- "$FG,2$tempd$FG$" instead of just "$FG,2$d$FG$". The reason is probably for text searches. I've somewhat eliminated this need with the "whole label" search feature. - -$LK,"Grep","MN:Grep"$() is my best friend. I use a wrapper function $LK,"F","MN:F"$(). - -It's easier to write a command-line interface than a GUI one and if it's for personal use, why not? - -On a modern home computer, the only things which take significant memory are disk cache, graphics and sound. Code related items do not. If you had a million lines of code and stored an 8-byte value telling where each line was located, that would be 8 Meg. I have 2Gig, so that would be 0.4 %. Structures for classes and functions amount to nothing. - -A home computer doesn't really need a big disk cache. How often do you listen to the same multimedia items more than once? If you have a server for a database, sure you need disk cache. diff --git a/LT/Doc/Lectures/ScaledInt.CPZ b/LT/Doc/Lectures/ScaledInt.CPZ deleted file mode 100644 index a854d39..0000000 --- a/LT/Doc/Lectures/ScaledInt.CPZ +++ /dev/null @@ -1,62 +0,0 @@ -/* - -$FG,2$$WW,1$You may wonder why I do scaled integer arithmetic in the graphics routines. The transformation matrix in a $LK,"GrBitMap","MN:GrBitMap"$, r, is stored as 8-byte integers shifted 32 bits left to allow fractions. This is faster than floating point (double) arithmetic, but less accurate. -$WW,0$ -$FG$*/ - -#define SAMPLE_SIZE 100000000 - -I4 coordinates[65536]; - -void TimeIns() -{ - U8 start1,end1,start2,end2,overhead_time,test_time; - double reg d1; - I8 reg i,reg temp,reg d2,reg sum; - - //Set-up some sample coordinates - for (i=0;i<65536;i++) - coordinates[i]=RandU4; - - Preempt(OFF); - -//$FG,2$Measure Loop Overhead$FG$ - start1=GetTimeStamp; - for (i=0;i9h6;h0Ak`q6fq_94YL+CFW?*1|F+ns)GgJt~1gQqmP>moaNC;{p zj0w^R6#}^!WD|%+5&|(z5l#ikg3JO5foP~#K^j3qAQ}`xED*nfLIe~VAew=J!4?{> zAR6QX1_lOKsAoVl$SSB1$ml?5FfcGMz?dK!swxz!5ky0U5~1FQ(F_a>Fj=k7+_2g4YCF*1Y&|Tf@lT? z22h|tDI^g^s1P)4;OPw%n0?T62nt`kWvuMz`!5^H4;Q434xfP6bhoDs-RH}F&m^Dr~-eh24P=Z7Dxc9L<_15L_>uP7#JAX7#J8}Gy?+zOco@B zqzc3Y34t67)c|6GRD);+1_mRj@fJ`TNeCnbaTt^ZQUeiyvOpBb3I+xS7!#xvDg+7* zP|5+(NJ5~{011I;kZGX6gF1$xfe}*pi9s_jH%I{#^FwKv+W-Im*Z=?jpC6h2&CJ9H z;{X2r3oOq33(EiX4XxZyQ1S8BQF6{KN-oVwEK&$8O)X7T z(oyp8v_cb8QOHkINXbtw%}vcKQAp0u%}vZpDOO0#OHoKKN-W68OfJ?_PzcG$ELO-Y zRw&6xRY*xJNmM8NXsu$@X0Su4avwah8t9@rx2W)3UP!_Nt$b3Nl~Se zj*_pR6`ZG{$IHdb6_Sx!lnOFAKQ9%o8)Rl~VhM->+nAb?S(0C*uTYkmTAo^@uaH!f UUtSDiBp67y0N3QCI# z@{3c8brdp7)Qc4oixo;T@=Mb*(5=xZNKDVnOV?D$ELO8YrK3K@xIsS1e- zMXAO4Ii)3;`FRTYX$nRPzNsJwIhPg{rRJ67RO%=g8d)f~XQnHZ)TDx9Z~TUuPAkd&&B zlb@VelA5AWo>`KSnWta`@@YzDaYla+LoeEqDTY!wYngf|jF(upOh#R_Rf`MC(^WELwFCFZ54f>145yx+BY@VDJQ!a z;vTFrAlKy=A!+r?&kHHe#?*)^uA-p{j-Whnn1CDtw%ju>v&17cvB0^cC5KMNKi4KssMFLZhlH>4k&|w z9EfCxL4_m8@wx^TP9Q5lM#HQLb9YooFG?)P$V`SM3mtIzpPB-yLr}|ma6N$O1%nDh zkn!M9GPE!@Ffc&20Z~pDLo7vdSe-!yM1!sYJP{)6b(B9AVguw}2U6XHek^GThD0 z4Qf6({$QR5MIp#LP$h6h;G`0omz$WEn4X#f^@oB6G;`&Z<|d^U5uK$#3Lz$eYM}fg Yg_L}Sa!}0ys=0GAvs3jnF~XPu0Ggrbase*mp_cnt:$FG$ -(mp_cnt+3)*(0x40000+0x400) ------------ -0x00101000 - -$FG,2$Disk Cache:$FG$ -0x8000000+0x400 ------------ -0x08000400 - -$FG,2$WordStat:$FG$ ------------ -big--holds a sparse matrix containing statistics on which words follow which other words with what frequency. diff --git a/LT/Doc/MultiCore.TXZ b/LT/Doc/MultiCore.TXZ deleted file mode 100644 index 53db67d1b90bac6dcf1dee91acea44b078598d77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1291 zcmY!h57#kN@y|V9%qvzX zEl5c$$;?YvNX%16Oi3w9EiP6_E6UGR$j^hA2(l$FzeJ%ZH90>$FS9B&MIotDp(GM1Bh=9elYC*~;>rDHP@B=Ynl>O-#;! zq|>C-;>?s(aGFZXEGjNh$VeBBoh%6|OL2|Hc408)8 zBtZErEfJj3^V2|S1?)<2E(eDKD9`IDC{Q74453j2N~`IaWvL2@3R(F{pwyPA01qBW z5d@As-+;i<)Y4S1{3M7kkochF0*Yn0t02k4B{er6k~l!67btNk=_t8*LK6=bSrw2W F3;+(vr9}V$ diff --git a/LT/Doc/MultiTasking.TXZ b/LT/Doc/MultiTasking.TXZ deleted file mode 100644 index 480c54128dd58b7741415177529586c818d244b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2444 zcmY#!bJsCdQ3;9Ac8<_d@-59N$qY#>&d$tBS5i@Nb64Tz;^k5a57#kN@yRbv4avwa zR>&+?NK_~&N=?lzD9J2KRmcTtDuHNH$S+7ON-W9DOIIkaEG|jS)l*RL$S+SVOD)n- zsLU@_NKVXCC@C$<)6GvygBy~cr;wkgkf;DML?NjXN+%YBY|2YfD9K2L2$g5%=l_?8x@ zrj_O>lxL*ofkQ1L5f;t`Igqd@R>;jy$xN#Rg>*_{Nuok=Nl|HXNoi4Pu|jbsC`uCZ zQu9lTb1L-|6g=}vQj3a83rdO=ic3IYn4g?nS_Cm37LoaRpoq;+OVd+OPyolelednc z3e*Fc5NVLxQ&YfkmsF{clA4xSno|NX2O4{s#nA99NG#8Tgh4QvsiL8onxd!T zPE;YFNX^Vm)h*7+OiooON-RkQIiNVT1e5~6A?fAm<`x<67UUWTF$jsTq6cy!JV~bH zrxt?~Mp0^Rei={B*nI8~vbC_gDDHMdwHGfkl+KVKm?F%OdRixpBUGK))6 zQ}h%R;64PUi@cK5yp+@wu$6iFdAh}^MP;c)3K{visS3&Yxdo*q@PwbJkegVMnOmBx zke{ZISd?E1%0{VqI-n$7oUa4UPQ|EUn2`tyLa>ZNK~ZLYQD#Y{LUD3NYHli6A!KinHYc?tRUxe?H8mwa7nH9Git<5*<$}ThoFl<$ z$T=qyl6XK2P%g|bf+o-ss6=o{rjm+=CURgWmlhSJ=9T1BDu5DJo_Yz$xe9P^C?us8 zXQreUgY$ezW^QT`*sIy8l}Y)DMJWh{dI}1`nR&^O!U3T@EhjM@l-6N>t;{bif`mJ$ zL`$tG0UK8g)(I*zL5USovLzN}=0H+v0Vo@mmVgouNC~)*0(;m!wZu6iu?XU67zgU{ z@(f6Nh7`r+`5>RAmZj!_vJNN{W~PBl8&EC>=W)1`ixm<}z`g~QVFg9`xdkN(NvX-; zbPTc{P|SdG5zK9%_(wLPC{+QX2xI}s{du6Q4vOhKkf%YVzaFIQ@dO1pxU__n zeEFaZgJe{Bei5jO0%s~6g}nT79Z8y~Pky!vr80o2bpgIX0 z3%NQ9#rX=J3I+L~LOml@As1vcsE904C@xLTE{1z6IX^EgCo{RESOKZ91p75P8C2VV zoDGX{eXuDC#Tki3sVNEt`9&q*>L(u*Kk&2!rNR8XWN1+eY6c`0E2O5Sr6y-WGHW8JVFE1_v9v=xVdZa9etNn>N`84BIF=L= z6*5ZmQa~{WN`b`+(3T9S0stA7nVbqsA4QNV3S6KU=_r(B#r=;`Sx6z3-9pl9ZlBxdG;gh6?sG%qE!sJJ9CFC{T4Cl!?T6BTk2D{~X`6hXBa0{~YvON{^k diff --git a/LT/Doc/Mysteries.TXZ b/LT/Doc/Mysteries.TXZ deleted file mode 100644 index 4216bba4adc1d1922fd590128fefa679be86127c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4071 zcmY!h57#kNQE_wEF;xl4$ShXKELJGVS4hrDO)Sbxt5nFyFIOl|ElVv*%u&d#EG|hc z%FHhCgr3SE953-=9MI7=B1`6BvmS;CMIVnlq42s z>nSLNXQbvSBtkWTT$h($qL7wfnwO%ZP?C|VP>@)ZnpXl=tzHaM1~wI>I5{IVIXg8) zPeH*kCr6>6C_g#1xL6@MBQY~iAt^CA8{}7zDWCu_Qb|ln%mq0arce*$b|Xy%r_8*> zqDqC-iqzy%h|y`8AXjH3mZd7BRutqHl|XGSRw&QNOwIuNGbcYWB{fAMGp{5c>{5uo zp+44A0EGxfh$%oE;vejrn3)H5N=9O_LUAd`$UK-;U?=D)D0t>6B&MWfmSpDV=_nNE z=cX#;CKf0_oCXSLsCQFSK)x&}$}h`INmaOGau=L40OjN@|6Yj*^?Fm6esgPl&!t zezLwtYEFSCNJ1|pB1%a`Au%sS0j$L%u{a|rwE*G;7)M1z6BPC7MTxlzWr;lz4oKp%4yVS(I%)Im*P#S{7CMbA3(-bQ6OBKp9i!&4w71By`aukYE!D%8tO#$K? zu)TTtc~BlyuY!uNqqd`Ngmyrvj*@duW^%TIM`}^3l8%y3Nt$nBg@&O47-(91IOgO8 zr50F+Wu}%}#}p~4fCJA&6OucU^K%O_b0D!`zINKJbf`mY6FJGZ3H8~Ng2pr`w?KJ}e!1`1`u*d*xRK zgS@2Y5)uVYQeelJX)3s7=A`B&=B5@aq~@i7O03L01$9UQ1S?brXW_)sl6+7$0SBQ1 zD3pp)i$UQAN=K!6NCM@cVye6-6I}Y0nhL?- zQYSSRB|vZvMXe#rWO>#|#)zlv$!)tdL)xr%;?)kO)d+3K^-11rQgd6{V)8fU{*uMrtvnVgl7H$@!&u zCE!vU&25kxO#!42>JCtj$}dgN04b~l`x+z(O0yZMl?v&pB??8UC8b56It^X}6qlst zLL30f2%stsl-#p3b8^7G4ao=VOH?RM%_~k-$WH^;t2*EW0?Ha7P3V;@*b~L6(6Gz} zxgVqv8kV434slW*!kEkwg~W7F6$pxuw8SC>aES(v8Bp$q#T{55r07pdO-?K=PF2V( z0lBv*wX_(NHbBk+M}k6fMk%PS0M(ZkkRm;~w5T}0NCBJ-GV}95+KNl^i$H;1tdN)o zO;V1*&YqqMrl2GRiZM|B1r@1~j0ll5HiXDRODs?dg-8c`c)Eq?1_wAgyMk1J%8%rX z#G=IHlGGw-H4LslK+y_{jpY2iveY6_myVlk+;29+fFMJXT` zr55WbWabr@q$Z|-QbST^38--ZatO4#0=Hcf6;g^4%Rx~IDp7P4ax$}16$}l)W)4MJmF6a;7C|yK#4boON(9AZNj_AIk%2*lk%56iQe_FqVo)3QDQ+xW^%DYN`9U?sMVI8s*nq6-4x~L=YpCvpcJ19wH4%Wa8m)4cybbp z(o=On?NLx`R7WARL_I|z3EG}XO-sv6236OfmJZmN3NZV16p~6yz}X073Meg9rj~$f z=}Lv-(gILDotgp(TSH9+Xy7DgB<7`qLNf(iaD&o0Bzi&Z3P)%wQ3slaL1LjLnK{Ma zc+W2aRZB%sIZ!187KWGokXj4keNeFoa&b{As3ytGNrgyefvPlwTvC31i2^JGmSp4? zr^0KJ%+z9VfdMxl1yZMXU{M1J7+Afj=j7=Jad%!6=DK#}u z0o)h{cTqs;EL9<+w5TXEH6^D~0UWd?kW#iNwYW5=1e7JfwHR1^v4W>UN@f`-)=Toi z)ogxg38*=h2Wt31Q#&X*q~z!1Bo-+YXQt<>!O?%L<@O2<`_KL7Z*|sT_0j!If#TLP0*L=GTE% zS0L?qscC7ckg^OEv7np`b{VLKcMb?uD9S8OMP%~a{4z+Eftm>EiWKDJmnb*~gesI4 MC#I+B@p3T$0BkK%N&o-= diff --git a/LT/Doc/News.TXZ b/LT/Doc/News.TXZ deleted file mode 100644 index 9a9e74d..0000000 --- a/LT/Doc/News.TXZ +++ /dev/null @@ -1,189 +0,0 @@ -$WW,1$$FG,5$Notes on upgrading: - -$FG,2$* Use the $LK,"R","MN:R"$("old","new") to rename items if I change them. - -* You are strongly advised not to make statically compiled modules. (Static modules produce a .BIZ file which you $LK,"Load","MN:Load"$() while dynamicly compiled code is just $FG,4$#include$FG,2$d.) -$FG$ -$IV,1$----08/16/07 02:38:03----$IV,0$ -* Added faster line clipping. - -$IV,1$----08/15/07 20:51:55----$IV,0$ -* Fixed feature of scan codes--sc.u4[1] is unconsolidated code. -* Made so you can nestle $FG,2$AutoFile$FG$s. -* Modified $LK,"Load","MN:Load"$()... no recognizable changes -* Modified $FG,4$cout$FG$ no recognizable changes -* Made $FG,4$PUSH_C_REGS$FG$ and $FG,4$POP_C_REGS$FG$ and made use of it. Fewer regs are pushed in many places. - -$IV,1$----08/14/07 14:35:33----$IV,0$ -* Fixed Ltf bug on PAGE DOWN/UP -* Added $LK,"LTFF_DO_FULL_UPDATE","MN:LTFF_DO_FULL_UPDATE"$ to prevent flicker if you like. -* $LK,"LTFF_DONT_SWAP_OUT","MN:LTFF_DONT_SWAP_OUT"$, related to swap-outs during $LK,"PrintF","MN:PrintF"$(). Made swap-out less. - -$IV,1$----08/13/07 08:38:18----$IV,0$ -* Worked-out scheme to keep from turning preemption off during window updates. -* Added $FG,2$preempt$FG$ parameter to $LK,"LtfUpdateWinJoin","MN:LtfUpdateWinJoin"$(). -* Modified poll kbdmouse to spawn separate task when winupdates take too long. - -$IV,1$----08/13/07 01:24:12----$IV,0$ -* Modified $LK,"WinSync","MN:WinSync"$() to make it more useful. -* R("nearest_sub_GrElem", "nearest_sub_grelem"); -* R("cur_sub_GrElem", "cur_sub_grelem"); -* Added $LK,"::/LT/Demo/Graphics/Pick.CPZ","FI:::/LT/Demo/Graphics/Pick.CPZ"$ showing how to use distance to cursor calculations in graphics routines. -$IV,1$ -----08/12/07 01:59:17----$IV,0$ -* Added compiler optimizations. -* Added recovery disk option. -* Changed B RAM drive size on install CD. - -$IV,1$----08/09/07 22:13:41----$IV,0$ -* Adjusted $LK,"TssStruct","MN:TssStruct"$ to optimize for byte displacement. Haven't settled on best. -* Added compiler optimizations. -* Fixed editor bugs. - -$IV,1$----08/09/07 08:19:49----$IV,0$ -* Got rid of REX 0x40 in assembler -* Got rid of Ltf password flag. - -$IV,1$----08/08/07 10:15:29----$IV,0$ -* Removed .BMP screen capture due to licensing concerns. - -$IV,1$----08/08/07 05:10:27----$IV,0$ -* Moved flags in $LK,"TssStruct","MN:TssStruct"$ and $LK,"CPUStruct","MN:CPUStruct"$, eliminated CPU preemptive flag (It's now a task flag, only.) -* Made $LK,"Preempt","MN:Preempt"$() function inline -* Added compiler opt -- fewer 0x40 bytes -* Fixed $LK,"::LT/Demo/GameStarters/Swing.CPZ","FI:::LT/Demo/GameStarters/Swing.CPZ"$ - -$IV,1$----08/07/07 22:33:38----$IV,0$ -* $BK,1$Finished Version 3.04$BK,0$ -* Improved kbd/mouse -* Replaced U4Fifo with U8Fifo - -$IV,1$----08/05/07 22:31:06----$IV,0$ -* Cleaned-up WordStat code -* Added $LK,"OrderFiles","MN:OrderFiles"$(). See $LK,"::/LT/Demo/OrderedIO.CPZ","FI:::/LT/Demo/OrderedIO.CPZ"$ - -$IV,1$----07/31/07 02:48:11----$IV,0$ -* Adding new feature to compiler to allow "5=i". (I always code the former way.) - -$IV,1$----07/27/07 00:49:50----$IV,0$ -* Improved fault handling -* Added compiler optimizations -* Added TSSf_AWAITING_MSG to improve performance. -* Modified keyboard/mouse routine. Boots faster and might not hang so much when you use both at the same time. - -$IV,1$----07/25/07 03:40:49----$IV,0$ -* $BK,1$WARNING:$BK,0$ Your $LK,"Auto","MN:Auto"$() entries to configure builds must be changed. I cleaned-up the $LK,"AddDrives","MN:AddDrives"$() prompts, getting rid of "Custom". All $FG,2$ATA$FG$ and $FG,2$ATAPI$FG$ types require numbers. - -$IV,1$----07/24/07 21:55:58----$IV,0$ -* Fixed graphic pen_width brushes. It slightly affects picture appearance. You might need to increase pen_width. -$ID,2$$FG,5$To convert old pictures... -$FG$1) Boot the old LoseThos version -2) Press CTRL-R when on top of the picture -3) Select "Insert" -4) Select "Convert to Bitmap". If you don't want it drawn on a background, select "transparent bitmap." -5) Stretch-out a box around the image -6) Click "End" -7) Click "End" again -8) Save your picture in a file -9) Boot the new version of LoseThos - -$FG,5$Another option you might try$FG$ -1) Press CTRL-R -2) Select "Edit" -3) find the "Width" entries and change the far right numbers. -4) Press ESC -5) Select "End" -6) Save your picture in a file -$ID,-2$ -$IV,1$----07/24/07 01:13:59----$IV,0$ -* I think I fixed a bug in the CD-ROM install script. - -$IV,1$----07/23/07 16:51:15----$IV,0$ -* Added borderless windows. CTRL-B now toggles the window border and Blink is now done with CTRL-K. - -$IV,1$----07/21/07 21:46:59----$IV,0$ -* Added $LK,"WordStat","MN:WordStat"$() to replace old Spawn(&WsTsk). - -$IV,1$----07/21/07 04:00:51----$IV,0$ -* Fixed divide by zero bug in $LK,"GrBlot3","MN:GrBlot3"$() - -$IV,1$----07/20/07 00:41:53----$IV,0$ -* R("ViewDisk","ViewDrive"); -* Added new $LK,"ViewDisk","MN:ViewDisk"$(). -* Fixed horrible $BK,1$compiler bug$BK,0$ relating to unary minus and double/int conversion. -$IV,1$ -----07/19/07 17:00:50----$IV,0$ -* Scaled pen_width on GrElem transformations -* Added lecture on scaled integer arithmetic. $LK,"::/LT/Doc/Lectures/ScaledInt.CPZ","FI:::/LT/Doc/Lectures/ScaledInt.CPZ"$ -* Added demo MultiCore1 - -$IV,1$----07/16/07 01:40:23----$IV,0$ -* Added nestled comments to compiler. - -$IV,1$----07/13/07 14:54:38----$IV,0$ -* Added some compiler optimizations. -* Fixed bugs in editor - -$IV,1$----07/09/07 07:30:18----$IV,0$ -* Added $LK,"kbd_display_special_keys","MN:kbd_display_special_keys"$. -* placed sys_cur_raw_scan_code into upper DWORD of sys_cur_scan_code. -* R("TranslateScanCode", "ScanCodeToASCII"); -* Removed $FG,2$name$FG$ parameter from $LK,"AFGetKey","MN:AFGetKey"$() and $LK,"AFGetChar","MN:AFGetChar"$(). - -$IV,1$----07/08/07 08:22:53----$IV,0$ -* Added keyname display to wallpaper for making movies. - -$IV,1$----07/07/07 02:22:45----$IV,0$ -* Discovered subscript key needed to be changed. Now, CTRL-P and CTRL-SHIFT-P toggle super/sub scripts. - -$IV,1$----07/06/07 23:42:59----$IV,0$ -* Decided to make screen size fixed. Do the following text replacements on your code: -$ID,2$R("grwidth","GR_WIDTH"); -R("grheight","GR_HEIGHT"); -R("text_rows","TEXT_ROWS"); -R("text_cols","TEXT_COLS"); - -R("GR_BLACK","BLACK"); //do all colors - -The video mode prompt was removed, so modify $LK,"Auto","MN:Auto"$() strings for compiling the kernel. -$ID,-2$ -$IV,1$----07/02/07 19:18:08----$IV,0$ -* Added $LK,"SpawnUser","MN:SpawnUser"$(). -* Changed $LK,"Edit","MN:Edit"$() and $LK,"DoForm","MN:DoForm"$() so they run the ltf entry they exit on. -* Changed $LK,"WsInit","MN:WsInit"$() to take full filename mask. Filters-out non text files. - -$IV,1$----06/22/07 18:12:48----$IV,0$ -* This is funny--I fixed a bug in the compiler which made ";" on a do while optional. - -$IV,1$----06/21/07 16:11:14----$IV,0$ -* Renamed "HeapChk" to "HeapWalk" -* Renamed "HeapChkOn/HeapChkOff" to "HeapLog(ON/OFF)" and "HeapChkRep" to "HeapLogRep". -* Made $LK,"AbsI8","MN:AbsI8"$() internal. -* Improved $LK,"Line","MN:Line"$(). -* Added $LK,"::/LT/Demo/GameStarters/FlightSim.CPZ","FI:::/LT/Demo/GameStarters/FlightSim.CPZ"$ -* Fixed bug in compiler related to mutlidimensional arrays of size less than 8 byte elements. - -$IV,1$----06/19/07 00:37:08----$IV,0$ -* $BK,1$Uploaded V3.03$BK,0$ -* Made on Gs->grbase for each core and they get merged together, so you can do mutlicore screen operations. See $LK,"::/LT/Demo/MultiCore2.CPZ","FI:::/LT/Demo/MultiCore2.CPZ"$. - -$IV,1$----06/15/07 05:05:19----$IV,0$ -* Added GrElem transformation. Doesn't work on some element types. - -$IV,1$----06/10/07 17:39:35----$IV,0$ -* $BK,1$Uploaded V3.02$BK,0$ -* Added $LK,"PicWords","HI:PicWords"$ -* Changed $LK,"mp_heap","MN:mp_heap"$ from write-through to uncached. -* Modified $LK,"MPQueueJob","MN:MPQueueJob"$() - -$IV,1$----05/29/07 18:33:01----$IV,0$ -* Added $LK,"GrText","MN:GrText"$(). Added it to GrElems. -* Modified $LK,"WallPaper","MN:WallPaper"$() to calc mem less often. - -$IV,1$----05/16/07 01:34:25----$IV,0$ -* Fixed bug where buttons weren't unchecked. - -$IV,1$----05/14/07 20:18:26----$IV,0$ -* Added new profiler mode. $LK,"ProfAll","MN:ProfAll"$() and $LK,"ProfBin","MN:ProfBin"$(). - \ No newline at end of file diff --git a/LT/Doc/OSGlossary.GLZ b/LT/Doc/OSGlossary.GLZ deleted file mode 100644 index 0e11987..0000000 --- a/LT/Doc/OSGlossary.GLZ +++ /dev/null @@ -1,160 +0,0 @@ -$WW,1$$TR,"Task"$ -$ID,2$A "task" is the Intel term for a "process". Each task has a $LK+S,"TssStruct","MN:TssStruct"$, the name derived from "Task State Something". The "$FG,2$Fs$FG$" segment register is maintained pointing to the current TssStruct. There is only one window per task. -$ID,-2$$TR,"Adam Task"$ -$ID,2$This is Adam, as in Adam and Eve, the parent of all tasks. This task is created at start-up and appears in the small window at the top beneath the user windows. On it's heap are all mem objects which are system wide. When created, it runs the file $LK,"::/LT/OSMain/AdamK.APZ","FI:::/LT/OSMain/AdamK.APZ"$$ER$ Normally, AdamK.APZ ends by $FG,2$#include$FG$ $LK,"::/LT/Adam/Adam2.APZ","FI:::/LT/Adam/Adam2.APZ"$ where the remainder of the operating system is "$FG,2$#include$FG$d". When start-up is finished, the adam task enters a server mode where it accepts requests from other tasks. The $LK,"Adam","MN:Adam"$("") routine will cause the adam task to compile and run text source code. "$FG,2$#include$FG$" statements can be sent to the $LK,"Adam","MN:Adam"$("") routine, creating system-wide code and data which don't disappear when any particular task ends. (The Adam task is immortal.) -$ID,-2$$TR,"Cain Task"$ -$ID,2$This is Cain, as in Adam and Eve's child. Each CPU has a special task which is immortal and which is special. The Adam task on CPU#0 is also it's Cain task. -$ID,-2$$TR,"Parent/Child Task"$ -$ID,2$Often a task will $LK,"Spawn","MN:Spawn"$() or $LK,"PopUp","MN:PopUp"$() a task as a helper. The helper is known as a Child Task, though you can $FG,2$Spawn$FG$ a task and assign it a different parent... like Adam. Links are kept as to who Spawned what so that when one task is $LK,"Kill","MN:Kill"$()ed the helper tasks disappear, too. You see a report on current system tasks with $LK+S,"TaskRep","MN:TaskRep"$(). There is just one possible window per task, so child tasks are needed. -$ID,-2$$TR,"C+"$ -$ID,2$The language used by LoseThos is more than "$FG,2$C$FG$" and less than "$FG,2$C++$FG$", so it's just "$FG,2$C+$FG$". It has the default parameter feature of $FG,2$C++$FG$ and uses $FG,2$class$FG$ in place of $FG,2$struct$FG$. It uses $FG,2$U1,U2,U4,U8$FG$ and $FG,2$I1,I2,I4,I8$FG$ for signed and unsigned integers. It has a slightly different operator precidence. See $LK,"OP_Precidence","FA:::/LT/Compiler/CmpInit.CPZ,OP_Precidence"$ It has the $FG,2$PASCAL$FG$ like feature of function calls with no parens, but requires an "$FG,2$&$FG,2$$FG$" when referring to a function address. -$ID,-2$$TR,"Static Compiled Mode"$ -$ID,2$I coined this term to refer to conventional compilation mode, but it is not the preferred mode for this operating system and is discouraged. "$FG,2$.BI?$FG$" files are created directly, skipping "$FG,2$.OBJ$FG$" files. In this mode, code and data are contiguous. After compiling, you do a $LK,"Load","MN:Load"$() cmd which is available from right-clicking on a link (like from $LK,"Dir","MN:Dir"$()). There is no "$FG,2$main()$FG$" routine. Instead, statements outside functions are automatically executed upon loading. There is no way to unload except by killing the task. To invoke $FG,2$Static Compiled Mode$FG$, use the $LK,"CompileFile","MN:CompileFile"$() routine or right-click on a link. The OSmain and compiler are made in static compiled mode and stored in "$FG,2$Boot.BIC$FG$" and "$FG,2$Compiler.BIZ$FG$". -$ID,-2$$TR,"Dynamic Compiled Mode"$ -$ID,2$I coined this term to refer to the mode when the compiler allocates objects(code and data) from the heap, noncontiguously. This mode is used during command-line operations. When you "$FG,2$#include$FG$" a file, it is compiled function by function and objects are placed all over in mem. The $LK,"ExecuteFile","MN:ExecuteFile"$() routine is the same as "$FG,2$#include$FG$" but can be placed in programs. $LK,"ExecuteStr","MN:ExecuteStr"$() routine will compile and run a str. "$FG,2$asm{}$FG$" cmds are not allowed in Dynamic mode. -$ID,-2$$TR,"Compiler Intermediate Code"$ -$ID,2$The compiler generates instructions one step before making actual assembly(machine) language instructions. This code is reverse polish in nature and can be viewed with $LK,"PTrace","MN:PTrace"$() or $LK,"OTrace","MN:OTrace"$(). The compiler does not "interpret" code, except in the process of optimization. The assembly language can be viewed when it is compiled with the $LK,"CTrace","MN:CTrace"$() routine, or afterward with $LK,"Dasm","MN:Dasm"$(). -$ID,-2$$TR,"File Partition"$ -$ID,2$There are physical partitions on disks and then there are virtual partitions which are stored in files on other partitions. This is a LoseThos feature. You can create a file partition using AddDrives or at the prompt when you recompile the operating system. Enter the filename including the drive letter. If you answer "Yes" to the prompt on reformating, this partition will be reformatted each time you use it for the first time after booting. The original purpose of file partitions was as a holding area to collect files to write to a CD-ROM. Use the file partition's letter when calling $LK,"CreateCDFile","MN:CreateCDFile"$(). -$ID,-2$$TR,"Hard-coded"$ -$ID,2$When you use a raw number instead of a $FG,2$#define$FG$'ed label, that's called "hard-coding". Use labels whenever possible or your programs will fail if numbers change when the operating system is updated. -$ID,-2$ -$LK,"AutoFile","HI:AutoFile"$ -$LK,"Graphic Element","HI:Graphics/GrElem"$ -$LK,"Hash Table","HI:Hash"$ -$LK,"PicWords","HI:PicWords"$ -$LK,"SysText","HI:Char/SysText"$ - - -$FG,5$$TX+CX,"FileNames"$$FG$ - -$FG,5$Wildcards$FG$ - FileName wild card matching allows "$FG,2$*$FG$" to match sequences of arbitrary characters and "$FG,2$?$FG$" for a single arbitrary character. For some commands, you can enter multiple specifiers separated by "$FG,2$;$FG$". You don't need to, but can, use "$FG,2$*.*$FG$" instead of "$FG,2$*$FG$" for filenames. You can specify names to exclude by using a "$FG,2$~$FG$". - -$FG,5$*.??Z$FG$ - These files are automatically compressed or uncompresses files when read or written. -$FG,5$$FG,5$*.??C$FG$ - Contiguous files--NOT compressed. -$FG,5$*.TX?$FG$ - Text Files -$FG,5$*.GL?$FG$ - Glossary Files--WordStat will show a "$FG,2$#$FG$" next to words which are defined as anchors within glossary files. -$FG,5$*.CP?$FG$ - C+ source files. The default C+ compiler type is "$FG,2$.CPZ$FG$". -$FG,5$*.SP?$FG$ - C+ source files to be compiled statically. -$FG,5$*.AP?$FG$ - C+ source files meant to be included into the Adam Task. -$FG,5$*.HP?$FG$ - C+ source header files. -$FG,5$*.AS?$FG$ - Assembly source files. The default assembler type is "$FG,2$.ASZ$FG$". -$FG,5$*.MU?$FG$ - Menu/Help/Macro files -$FG,5$*.MP?$FG$ - Compiler "map" files -$FG,5$*.BI?$FG$ - Binary executable files, created by $LK,"CompileFile","MN:CompileFile"$() and read by $LK,"Load","MN:Load"$(). -$FG,5$*.DT?$FG$ - Data files -$FG,5$*.DVC$FG$ - File Partition Drive (A drive stored in a file on another partition) -$FG,5$$FG,5$*.IS?$FG$ - CD-ROM image file--ISO9660. To burn on other operating systems, rename "$FG,2$.ISO$FG$" -$FG,5$*.AUZ$FG$ - "AutoFile" Basically a C+ program who's stdout goes to the input of a task when $LK,"AutoFile","MN:AutoFile"$() is called. - -$LK,"SOURCE_FILE_MASK","MN:SOURCE_FILE_MASK"$$FG$ - This $FG,2$#define$FG$ holds a list of source file extensions. -$LK,"TEXT_FILE_MASK","MN:TEXT_FILE_MASK"$$FG$ - This $FG,2$#define$FG$ holds a list of text file extensions. - - - -$FG,5$$TX+CX,"Naming conventions"$ -$FG$ -$FG,5$$FG$The following are rules I stick to. If you work on the operating system, it'd be good to stick with them for uniformity, but you can do what you like. Since there are no "$FG,2$namespaces$FG$" and I don't plan to implement name spaces, I highly recommend putting a 2-3 character module code prefix on symbols. e.g. "Ws","Ltf","Lex" - -$FG,5$ALL_CAPS$FG$ - Assembly Language labels are capitalized with underscores between words. So are $FG,2$#define$FG$'s. - -$FG,5$MixedCaps$FG$ - $FG,2$C+$FG$ Functions and class names are MixedCaps. - -$FG,5$lower_case$FG$ - Local function vars and glbl vars are lower case. Class member names are also lower_case. - -$FG,5$SYSf_????$FG$ - Flags which are designated with bit numbers instead of bit values are designated with a lower case "$FG,2$f$FG$". - -$FG,5$CP_????$FG$ - Assembly language routines which are C+ callable have a prefix "CP_". - - - -$AN,"Fs","Fs"$ - This refers to the CPU segment register called FS. This register is special in LoseThos because it points to the currently active task's $LK,"TssStruct","MN:TssStruct"$. - - -$AN,"Gs","Gs"$ - This refers to the CPU segment register called GS. This register is special in LoseThos because it points to the currently active task's $LK,"CPUStruct","MN:CPUStruct"$. - -$AN,"Tss","Tss"$ - This is an Intel abbreviation for task state something. Each task has one of these structures. - -$AN,"Bt,Bts,Btr,Btc","Bt,Bts,Btr,Btc"$ - These are bit manipulation functions named after Intel instructions. They stand for "Bit Test", "Bit Test and Set", "Bit Test and Reset" and "Bit Test and Compliment". - -$AN,"Cli,Sti","Cli,Sti"$ - These functions turn on or off interrupts. They are named after the Intel instructions. "Cli" turns off interrupts. - -$AN,"Heap","Heap"$ - Programs can dynamically request chunks of memory allocated from a "heap" using $LK,"MAlloc","MN:MAlloc"$(). They must be sure to $LK,"Free","MN:Free"$() it when finished. Pointers are used to refer to it. The "heap" is dynamically allocated memory. - -$AN,"Root","root"$ - Refers to the base of a binary tree or the head of a queue. - -$AN,"Join","Join"$ - When two parts of a program have a common low-level routine, that routine is often labeled SomethingJoin. - - -$FG,5$$TX+CX,"Abreviations"$$FG$ - -$FG,5$Acct$FG$ Account -$FG,5$Attr$FG$ Attribute -$FG,5$Blk$FG$ Block -$FG,5$Buf$FG$ Buffer -$FG,5$Cb$FG$ Call-back (or code block) -$FG,5$Chnl$FG$ Channel -$FG,5$Cmd$FG$ Command -$FG,5$Cmp$FG$ Compiler -$FG,5$Cnt$FG$ Count -$FG,5$Ctrl$FG$ Control. The control key is indicated with "$FG,2$^$FG$" in documentation. -$FG,5$Cur$FG$ Current -$FG,5$Dbg$FG$ Debug -$FG,5$Del$FG$ Delete -$FG,5$Dev$FG$ Device -$FG,5$Dir$FG$ Directory -$FG,5$Elem$FG$ Element -$FG,5$Glbl$FG$ Global -$FG,5$Gr$FG$ Graphic -$FG,5$ip_$FG$ Input Pointer. See $LK,"::/LT/Adam/InputPointer.APZ","FI:::/LT/Adam/InputPointer.APZ"$. -$FG,5$Lex$FG$ Lexical analyser -$FG,5$Lpt$FG$ I think this stands for "line printer port". (It's a DOS term.) -$FG,5$Ltf$FG$ Linked-Text-File (doubly-linked-list of rich text and graphic cmds) -$FG,5$Mem$FG$ Memory -$FG,5$MP$FG$ MultiProcessor -$FG,5$Msg$FG$ Message -$FG,5$Num$FG$ Number -$FG,5$Ode$FG$ Ordinary differential equation -$FG,5$Pmt$FG$ Prompt -$FG,5$Ptr$FG$ Pointer -$FG,5$Rep$FG$ Report -$FG,5$Rmt$FG$ Remote -$FG,5$Rx$FG$ Receive -$FG,5$Str$FG$ String -$FG,5$Sys$FG$ System -$FG,5$Tx$FG$ Transmit -$FG,5$Var$FG$ Variable -$FG,5$Win$FG$ Window - \ No newline at end of file diff --git a/LT/Doc/PicWords.TXZ b/LT/Doc/PicWords.TXZ deleted file mode 100644 index d3ecd1ec3d36bec955842b78af150fd924c8c2c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmY!h57#kNiOermNKVXCC@xJZF3Bt@ElE{KR4B+yE-5WaRY=P(Qb<%N&o4?*NG(e( zsw~e)ElO3$EK$f$PA)AfR>;g#NX%1E@$uGC@+nDE(oyp8v;r|y6jJlbGK=!_a#Qn4 z^b{0)@{3bLGV+TRQc}}0^HPfyit}?*LApyaQX$%{tn__C^c_x{p z2eJ;#20Pco-`5pxlQF_3EaFf*c)57F0*X?LixpJd+;xmpoI`?qbp2J_+*Lp}mE@s!}M=%*jzmN>#{CEhy0e372K2q^2ljBo?KVCl;kDBxfY%rKc7vq~t5) z<(DWF6s4A>=9MUvWTfWmfed#_P0KGzRjAA_RVYeLOi?Jw$Sl@TNY2kI&P+)yQpm_J zS8&eH&CO2%sWLNBFILDeQgAFN$VpZ3^i(faC{Ha)RVXb^P0>?O2+2szL(-d)4{~Wq zMyf(_Vs0wP{4f~UT}LP35}NwJPXW?pegQE75X zW`16=jzVflvYvuMWNNVv$T!6bxv7bH#o(|@PRvtCE=nxUK)AaswJ0;EQXw_5I5Vdb zi?+Och2qrY(xS|gN^ndV;qbFkW=d*aNoGlpL=8zrd8w%>3TYsZBFB{p9%m-zRVrj>=A|g)r@e~?FGwsdF3&GY0q3ODyyT+F0#Nb-rvX!RbD`-T?En0{R0UA(&IhMz9R)KJ zg9;N11BIkY1w%814)b)U!mrSfL=lxHvN@2b6p=i@{bYKq4+FH90>Q6mN-TiJ3WxASL;E(CAGqDpttM z0~IR@X{9BlMX7oU3jPp&QV}@XLFEZFXhD|bq~?`Wf`Z67AQT+Fpj@qxlUY)d19xvp zzCvk1N@5Afu#k+R)KrC(%-qzx;>`TK#2kg<(gIK>1?BdF{LH)(aM~;fMQ46q4swuy z(v_JesB}VPPDr8$MMrUEaY>NF za&V-Xqeog&s)C_`fvQ4&L24eTlq*V3g_xh1lLO;t=7G{fY6?78rKFZ+CZ{T-6lIoy z0uz+t;8_b4onTKTr7FNQDuBJ3m!GGbl3ARblV4m~l&X-JUX+@eo0?Zr40ajF=b-#y z3a?%K@=Fw;HB1VkhCwcFGm909OOvuvlS@EFBBc6INX$zCXEYNP6(?^ULzSe&)6NC@9KL%1O;FR>(|KsLU@_NXb`7%gjkt z$S+7ON-W9D&ns5Q&r>MLNL46K%uNN$6)O~H=9cD^B<7{&mlo$#DkP;QCzckcf>afy zDr6Qbs5p7+7^>t!jVjJaEXvGFSIA9G&PdG5EY1Z<8>r~?o7lGNPPypm#t#GIV`^VA{crlh7NmgbZw6qgh!B&LKfQx{f{} zy3QaOuyKwMA3LW&Q*eqBDCH*SrYPi=7DIwJKPM-@JT*ljsZyb&JYS(WH8(RkKL?b{ zGSd`bj#SRfOU@}xfuw}YVui%ClGGxF%o1pl0_8BIET>RVlnM>?B2actPAx7@Ee2&q zg}l^?5{1mX;*z3LaP%moCKlyXg54UDk*biBSX_c|0xX|{+?$h`2hPaJ`FUljMJ1^z zpukB~NXah+NMDMq;r-UcN$JYIy=QWT0((^894^O93R#+HIgC200SDk`D1Mp|Z3 yafw1oYI05@q&|T}EU2o1mx(F)3I+L@pjd{O3^uwLl;pr63eM1QN9gf#F#rHwYCY%x diff --git a/LT/Doc/StartSong.CPZ b/LT/Doc/StartSong.CPZ deleted file mode 100644 index 69e8421..0000000 --- a/LT/Doc/StartSong.CPZ +++ /dev/null @@ -1,45 +0,0 @@ -BoolU4 old_io_sound=TRUE; - -void SongEndTsk() -{ - Sound(0); - IOSound(old_io_sound); - Exit; -} - -void SongTsk() -{ - I8 i; - Fs->end_task_cb=&SongEndTsk; - old_io_sound=IOSound(OFF); - ResetMusicSettings; - for (i=0;i<1;i++) { - Play("2qG3ECB2eGG3qCeFDsBGBG"); - Play("2qG3ECB2eGG3qCeFDsBGBG"); - Play("qEeEFqEB2eG3FetCAGqFC"); - Play("EeEFqEB2eG3FetCAGqFC"); - } - XTalk(Fs->parent_tss,"."); -} - -void SplashOnTop() -{ - while (TRUE) { - WinToTop(Fs->parent_tss); - WinSync; - } -} - -void StartSong() -{ - Type("::/LT/Doc/StartUp.TXZ"); - Fs->win_left=TEXT_COLS/4; - Fs->win_right=3*TEXT_COLS/4; - Fs->win_top=TEXT_ROWS/4; - Fs->win_bottom=3*TEXT_ROWS/4; - Spawn(&SongTsk,"Start Song",Fs); - Spawn(&SplashOnTop,"Splash On Top",Fs); - GetChar; -} - -StartSong; diff --git a/LT/Doc/StartUp.TXZ b/LT/Doc/StartUp.TXZ deleted file mode 100644 index e9294f4dfcd4a5edfb3ba52a8df0c41ceeeddc74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1407 zcmd<(;^k660xAKXI!a19mMS0#WQ?Q+#DuCdG*RK@Qh=!gNx(2nfuV|m0$c$^Aw)?) zQGR++Vs36`Ub;eJv4U$}Nor9^VrE`$YF-IM9f)LLVqjq4WPpHaObiT+3=9k$3=Cj# zkQ|7Qj5Q%jK|&yAB?AKkh=!WN3#DZtsz3&Vn4$~}3?Q0;fdR$@(IC}OArKR!8bmWN zFsL#xFo2knP?~{(0mcN;Ak9!A5EG;tL_;-#m>?mjjW8xiBUA|FVvzA58c7JmG(|WS zBnvVNBm|CW?*1|F+nuQ8mJJ63DO9n85kHqfdZwFL=>Sy(69lgH*QEs zGW>*w9Vm36!3mb(Vqjn}0<&O*2&xE3fgGw3KLZ1U2C5KD6OvJ&v|)p)3S^EOs*o}R z1496+5XfjyP$HS7%fP@8kE#kJi$w_L3lI(RD<6mfN&<|Kv;z`jf@Mai9Ebu5Nq`uT ztO{ZZK)4_hWL-c61cSmCWI2e2ngwHmR6&J6OqePV&A`9_ M69Ul?qZk+%03UZf+W-In diff --git a/LT/Doc/SysText.TXZ b/LT/Doc/SysText.TXZ deleted file mode 100644 index 783a690adcef5d91e4786434f3d25d1bb4bebbf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmY!h57#kN3CUMT%*n|wS4hcBOG_&+?$jdKLNKVYjOe#t& zNlj5G$p@L8n4DY+;wu!TCgv!VWag$SlqKerrs^mpm6j;@DI}I9X67U&<)rHIa)BTN00*~Up8x;= diff --git a/LT/Doc/TimeJiffy.TXZ b/LT/Doc/TimeJiffy.TXZ deleted file mode 100644 index fd5fd70..0000000 --- a/LT/Doc/TimeJiffy.TXZ +++ /dev/null @@ -1,9 +0,0 @@ -$WW,1$One jiffy is one time slice. $LK,"Jiffies","MN:Jiffies"$ returns time slices since boot and takes longer to compute than $LK,"GetTimeStamp","MN:GetTimeStamp"$. - -$LK,"ReadSysTimer","MN:ReadSysTimer"$ reads the timer ticks since boot. It's not as fast as $LK,"GetTimeStamp","MN:GetTimeStamp"$. - -Use $LK,"JIFFY_FREQ","MN:JIFFY_FREQ"$ to convert $LK,"Jiffies","MN:Jiffies"$. - -Use $LK,"SYS_TIMER_FREQ","MN:SYS_TIMER_FREQ"$ to convert $LK,"ReadSysTimer","MN:ReadSysTimer"$. - - diff --git a/LT/Doc/TimeLTDate.TXZ b/LT/Doc/TimeLTDate.TXZ deleted file mode 100644 index 32481356c3b2994891ed3a1906ca71aba5b13e57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 354 zcmY!h57#kN@yRbv4avwaRwyk_EmlZWFf-9j$}CYROUx-v)lpFK@zzoD32{j*NmbHO z^7XTVvQ=~x((;QGQW8s2^-D5yQ}q-SLNZbnN(%~7ixiBFKt>cRBo?JAlw_nTq$E}r zD->tuC8sJlXB1@?mq1nLanswers_displayed$FG$ to a number from 0-8 in your $LK,"HOME/User.CPZ","FI:HOME/User.CPZ"$ file. - -* You can adjust the mouse movement rate by setting global variables in your start-up file. See $LK,"mouse_scale","FA:HOME/Adam3.APZ,mouse_move_scale"$. - -* You can set your local time zone by setting the $LK,"local_time_offset","MN:local_time_offset"$ global variable in a start-up file. It's units are $LK,"LTDATE_FREQ","MN:LTDATE_FREQ"$. See $LK,"local time","FF:HOME/Adam3.APZ,local_time"$. - -* You can define or redefine behavior of all keys in your $LK,"MyPutKey","MN:MyPutKey"$() routine. - -* You can use "$FG,2$ans0$FG$","$FG,2$ans1$FG$", etc in expressions. You can use the cmd prompt as a calculator by just entering expressions like "$FG,2$1+2*3;$FG$". $FG,2$double$FG$ results can be accessed with "$FG,2$ansd0$FG$" or "$FG,2$ansd1$FG$". - -* You can recompile and reinstall the kernel with $LK,"InstallBoot","MN:InstallBoot"$(). You'll probably want to make a function for recompiling that uses the $LK,"Auto","MN:Auto"$() function to answer the config questions. - -* You can disable $FG,2$WORDSTAT$FG$ commenting-out $LK,"WsInit","FF:HOME/Adam3.APZ,WsInit"$() and the $LK,"Spawn","MN:Spawn"$() in $LK,"HOME/Adam3.APZ","FF:HOME/Adam3.APZ,WsInit"$. - -* You can disable MutliCore by commenting-out $LK,"MPStart","FF:HOME/Adam3.APZ,MPStart"$ in $LK,"HOME/Adam3.APZ","FF:HOME/Adam3.APZ,MPStart"$. - -* You can use $LK,"progress1","MN:progress1"$-$LK,"progress4","MN:progress4"$ in your programs for whatever you like. They're just global variables that are shown on the wallpaper. The original intent was to indicate how far along operations were. There's no coordination, so different apps might interfere. I use them most for debugging--just values easily viewed. - -* Use $LK,"LtfMax","MN:LtfMax"$() to adjust the size of the cmd line buf. It counts $LK,"Ltf","MN:Ltf"$ entries, not lines. - -* You can get rid of the splash screen by commenting-out the start song in $LK,"HOME/Adam3.APZ","FF:HOME/Adam3.APZ,StartSong"$. - -* You can reduce memory usage by making a smaller disk cache when you recompile the kernel; disabling $FG,2$WORDSTAT$FG$; Specifying smaller stack sizes when doing $LK,"Spawn","MN:Spawn"$(), changing $LK,"DEFAULT_STACK","MN:DEFAULT_STACK"$, and using $LK,"LtfMax","MN:LtfMax"$() to reduce the command line buffer size. - -* Filenames ending in "$FG,2$Z$FG$" will be automatically compressed and uncompressed when read or written. The compression method is not supported by other operating systems. You can store files uncompressed by $LK,"Move","MN:Move"$()ing them to a filename not ending in "$FG,2$Z$FG$". See $LK,"::/LT/Doc/LTZ.TXZ","FI:::/LT/Doc/LTZ.TXZ"$ if you want to uncompress while in $FG,2$WINDOWS$FG$. - -* The joystick can be recalibrated with $LK,"JoyCalibration","MN:JoyCalibration"$(). - -* $LK,"MergeChk","MN:MergeChk"$() can be used to see what's changed. The "$FG,2$+d$FG$" flag will show differences of files which have changed and allow you to merge code. (The "$FG,2$+r$FG$" flag will recurse.) - -* There is a utility $LK,"LinkChk","MN:LinkChk"$() which will check for broken links in documentation. - -* Use $LK,"Plain","MN:Plain"$() to edit a plain text file. You'll need this if your file has $FG,2$$$$FG$'s. - -* Use $LK,"Silent","MN:Silent"$() to disable screen text output. -* Use $LK,"IOSound","MN:IOSound"$() to disable noise from disk access. - -* There are handy functions--$FG,2$F(),R(),FD()$FG$ and $FG,2$RD()$FG$ which are defined in $LK+S,"HOME/User.CPZ","FI:HOME/User.CPZ"$. You're encouraged to change them, since they're in account files. They will perform find-and-replace operations accross multiple files. The "$FG,2$+l$FG$" flag is particularly useful since it limits to whole labels. You are encouraged to add or modify handy wrapper functions to make command line operations easier. - -* You can save files after making changes, anytime you are within the editor, like when viewing help/macro files. $FG,2$CTRL-A$FG$ saves as, $FG,2$CTRL-S$FG$ saves with the same name in the scrolling title bar. Hitting $FG,2$ESC$FG$ will exit and save. ($FG,2$CTRL-Q$FG$ will exit and not save). You can save the cmd line window to a file, too, since you're actually in the editor when you're at the cmd line. - -* When using $FG,2$CTRL-L$FG$ to insert links in documents, you can usually leave the "Display Text" blank and it will be filled-in automatically based on other entries. - -* There is a feature of the precompiler that allows code to be executed in the middle of compilation and data inserted into the compilation stream. Click here for an example: $LK,"#exe {","FF:::/LT/OSMain/OSEnd.CPZ,#exe {"$. - -* If you output to the cmd line and wish to allow users to scroll around and view data, you can use $LK,"View","MN:View"$(). $LK,"Example","MN:WsPutMatrix"$ - -* Use $LK+S,"View","MN:View"$() in Pop-up macros to linger until the user presses $FG,2$ESC$FG$ or $FG,2$CTRL-Q$FG$. - -* You can access the word under the cursor at $LK,"ws_cur_word","MN:ws_cur_word"$, but you should probably turn-off preemption or interrupts momentarily to copy it. - -* You can reactivate $FG,2$WORDSTAT$FG$ after closing it by pressing $FG,2$CTRL-FUNCTION KEY$FG$. - -* $LK,"Preempt","MN:Preempt"$() is used to keep a task from being interrupted and swapped-out. It has a similar effect to turning-off interrupts. Each task has it's own preemption control. A task with preemption turned-off can voluntarily $LK,"SwapInNext","MN:SwapInNext"$() with preemption off. - -* You can set a color for different drives with $LK,"SetDriveTextAttr","MN:SetDriveTextAttr"$(). Place calls to this in $LK,"::HOME/User.CPZ","FI:::HOME/User.CPZ"$. - -* If you toggle to plain text when you are working with graphics in a document, you can add duplicate entries for pictures by entering a "$FG,2$PI$FG$" command with the same number. - -* If you toggle to plain text when working with graphics, you can add a str to the $FG,2$$$PI$$$FG$ entry to keep track of it. Try "$FG,2$$$PI,"<2>",2$$$FG$" where '2' is the picture number. - -* I use spaces-to-tab operations on all my files to keep them small. You have to be careful, though, because spaces in strings will be converted. I use $FG,2$SHIFT-SPACE$FG$ ' ' in such cases. See $LK,"S2T","MN:S2T"$() for spaces-to-tabs. - -* You can edit an existing Graphic Element by putting the cursor on it and pressing $FG,2$CTRL-R$FG$. - -* You might want to stick with manually filling-in a GrElem by drawing lines instead of flood-fill or convert the GrElem to bitmaps. Bitmaps are a little slow and flood-fill behaves weird based on what's underneath. Artistically, you get good results with brush-strokes produced by drawing with lines. - -* You can customize the "wallpaper". See $LK,"::/LT/Demo/Graphics/MyWallPaper.APZ","FI:::/LT/Demo/Graphics/MyWallPaper.APZ"$. - -* You can adjust the screen refresh rate (software). It is automatically adjusted based on load. The range is $LK,"win_min_refresh","MN:win_min_refresh"$,$LK,"win_max_refresh","MN:win_max_refresh"$. - - -$FG,5$$IV,1$$TX+CX,"DEBUGGING"$$FG$$IV,0$ - -* While debugging, you specify addresses of assembly OSmain $FG,2$asm{}$FG$ routines with just the label, as in "$FG,2$CP_MALLOC+0x20$FG$". You specify $FG,2$C+$FG$ labels with "$FG,2$&$FG$" before functions as in "$FG,2$&Printf+0x10$FG$". - -$LK,"D","MN:D"$() $LK,"LtfD","MN:LtfD"$() to hex dump mem with numbering from zero. With $LK,"LtfD","MN:LtfD"$ the values are updated continually and you can alter mem by editing. - -$LK,"Dm","MN:Dm"$() $LK,"LtfDm","MN:LtfDm"$() to hex dump mem with addresses showing. - -$LK,"Dasm","MN:Dasm"$() to disassemble mem. - -$LK,"ProfBin","MN:ProfBin"$(),$LK,"ProfAll","MN:ProfAll"$() and $LK,"ProfRep","MN:ProfRep"$() provide code profiling. See $LK,"::/LT/Demo/AutoFile/Demo2.AUZ","FI:::/LT/Demo/AutoFile/Demo2.AUZ"$ (This is an "$LK,"AutoFile","FF:::/LT/Doc/OSGlossary.GLZ,AutoFile"$".) - -* Use $LK,"DbgNum","MN:DbgNum"$(), $LK,"DbgStr","MN:DbgStr"$() and $LK,"DbgAdd","MN:DbgAdd"$() to print debug info bypassing the window framework. You can use $LK,"Raw","MN:Raw"$($FG,2$TRUE$FG$) to make all output bypass the window framework. - -* Use $LK,"SysDbg","MN:SysDbg"$() to set a flag which you can read with $LK,"IsSysDbg","MN:IsSysDbg"$() when you wish to trigger some debug activity. - -* There are flags for various trace options that can help debugging when there are compiler bugs. -$ID,2$ -$LK,"Echo","MN:Echo"$() turns on or off raw data going into the lexical analyzer. - -$LK,"LTrace","MN:LTrace"$() shows the tokens coming out of the lexical analyzer. - -$LK,"CTrace","MN:CTrace"$() disassembles code generated from the C+ compiler. - -$LK,"PTrace","MN:PTrace"$() shows "intermediate code" comming out of the first stage of the compiler (it's not 100% valid because it hasn't been fixed-up). - -$LK,"OTrace","MN:OTrace"$() shows intermediate code coming-out after optimization. $LK,"OPassTraceMask","MN:OPassTraceMask"$() controls which passes are displayed. - -These flags can be set and reset by placing them in "$FG,2$#exe{}$FG$" code blks. -$ID,-2$ - -* $FG,4$dbgo$FG$ is an alias for "$FG,2$cout$FG$" and can be used to place output. You can easily find and remove them doing a $LK,"Grep","MN:Grep"$(). - -* $LK,"SBpt","MN:SBpt"$() to set breakpoints. When the fault screen appears, use $LK,"Go","MN:Go"$() to continue. You can altering modify what is displayed each break-point by $LK,"HOME/Fault.CPZ","FI:HOME/Fault.CPZ"$ in your account's home directory. - -* There is a heap check utility which can find leaks. Use $LK,"HeapLog","MN:HeapLog"$(), and $LK,"HeapLogRep","MN:HeapLogRep"$(). It's a really simple program which intercepts $LK,"MAlloc","MN:MAlloc"$() and $LK,"Free","MN:Free"$(). You can customize the code to find other heap issues. - -* You can define functions for $FG,2$CTRL-ALT-LETTER$FG$ keys, but they must operate in a interrupt environment. You can do $LK,"Raw","MN:Raw"$() output. Scan for $LK,"ctrl_alt_letter_routines","MN:ctrl_alt_letter_routines"$[] and look at the code. - \ No newline at end of file diff --git a/LT/Doc/WordStat.TXZ b/LT/Doc/WordStat.TXZ deleted file mode 100644 index c4a1ba01ebd00e8ca409c6784b026f655c64734d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 498 zcmY#!bJsCaQ3(&%F;of9FG>k6Ni0!ub5~JF&d&C z_RPyHQPNTJ^|OMqRWvm96cjv56q55x^GZOvGLthD%JYj-iWSoGb8_;_70NR}Lir^b zsYOtU^30M9h4PHV5{0y))WXu#yyQxd0}>UIGSd}`3lfWpQx$R(ONufp^mw^=xk54v ztQ0)cz>X;`PE|E=kQRQ7B6+%1lhkNma;8%uNN^Sfr3ylA2qrke{ZIl9`s4 zS_D#+oRe5woLZ~{GC@5jN1?R1G%+WqQXwf-0j#+sUm>xyBtJPnw;(6ABvqj#BUK?c zH8&}>2yQ_!$d?L7*sizeof(void *) - -class ParseStack -{//dup code $LK,"CP_PRSPUSH","FF:::/LT/Compiler/CmpAsm.ASZ,CP_PRSPUSH"$ - U8 ptr; - I8 stk[255]; -}; - -#define CB_IC_CNT 511 -class CodeBlk -{ - CodeBlk *next; - IntermediateCode data[CB_IC_CNT]; -}; - -#define CBMT_LABEL 0 -#define CBMT_GOTO_LABEL 1 -#define CBMT_STR_CONST 2 -#define CBMT_JMP_TABLE 3 - -#define CBMF_USED 1 -#define CBMF_POP_CMP 2 - -class CbMiscStruct -{ - CbMiscStruct *next,*forward; - I1 *str; - U4 type,flags; - void *address; - U8 st_len; - void **jmp_table; -}; - -#define IEF_OP_SIZE16 1 -#define IEF_OP_SIZE32 2 -#define IEF_DONT_SWITCH_MODES 4 -#define IEF_PLUS_OPCODE 8 -#define IEF_DEFAULT 16 -#define IEF_NO_REX 32 -#define IEF_40_REX 64 -#define IEF_48_REX 128 - -#define SV_REGISTER 8 -#define SV_NONE 9 -class InstructionEntry -{ - U1 ins_entry_num; //This entry num in opcode hash entry - U1 opcode_cnt; - U1 opcode[4]; - U1 flags,slash_value,opcode_modifier; - U1 arg1,arg2; - U1 pad[5]; -}; - -class OpcodeHashEntry -{ - SysHashEntry *next; - I1 *str; - U4 type,use_cnt; //AHT_OPCODE - I1 *source_link; - I1 *index; - DbgInfo *debug; - U1 instruction_entry_cnt; - U1 pad[7]; - InstructionEntry ins[1]; -}; - -#define ASM_CODE_BLK_BITS 16 -#define ASM_CODE_BLK_SIZE (1<answers[0]) -#define ans0 (Fs->answers[0]) -#define ans1 (Fs->answers[1]) -#define ans2 (Fs->answers[2]) -#define ans3 (Fs->answers[3]) -#define ans4 (Fs->answers[4]) -#define ans5 (Fs->answers[5]) -#define ans6 (Fs->answers[6]) -#define ans7 (Fs->answers[7]) - -#define ansd (Fs->double_answers[0]) -#define ansd0 (Fs->double_answers[0]) -#define ansd1 (Fs->double_answers[1]) -#define ansd2 (Fs->double_answers[2]) -#define ansd3 (Fs->double_answers[3]) -#define ansd4 (Fs->double_answers[4]) -#define ansd5 (Fs->double_answers[5]) -#define ansd6 (Fs->double_answers[6]) -#define ansd7 (Fs->double_answers[7]) - -#define KEYB_PORT 0x60 -#define KEYB_CTRL 0x64 - - -//SYS_CUR_SCAN_CODE FLAGS -#define SCf_E0_PREFIX 7 -#define SCf_KEY_UP 8 -#define SCf_SHIFT 9 -#define SCf_CTRL 10 -#define SCf_ALT 11 -#define SCf_CAPS 12 -#define SCf_NUM 13 -#define SCf_SCROLL 14 -#define SCf_NEW_KEY 16 - -#define SCF_E0_PREFIX (1<>3; - } - dc_col++; - } - Preempt(old_preempt); -} - -void GrClear2(GrBitMap *base) -{ - switch (base->type) { - case BMT_COLOR4: - MemSet(base->body,0,(base->internal_width*base->height)>>1); - break; - case BMT_MONO: - MemSet(base->body,0,(base->internal_width*base->height)>>3); - break; - } -} - -void GrClear(GrBitMap *base=NULL) -{ - if (!base) - GrClear2(Gs->grbase); - else - GrClear2(base); -} - -void FillWinText(TssStruct *tss,U8 d) -{ - I8 x,y; - I8 t=(tss->win_top>0) - ? tss->win_top : 0, - b=(tss->win_bottomwin_bottom : TEXT_ROWS-1, - l=(tss->win_left>0) - ? tss->win_left : 0, - r=(tss->win_rightwin_right : TEXT_COLS-1; - U4 *ptr; - for (y=t;y<=b;y++) { - ptr=textbase+(y*TEXT_COLS+l)*4; - for (x=l;x<=r;x++) { - *ptr=d; - ptr+=4; - } - } -} - -void ClearWinText(TssStruct *tss) -{ - FillWinText(tss,tss->text_attribute<<8); -} - -void SetWinBkColor(TssStruct *tss,U8 c) -{ - tss->text_attribute=tss->text_attribute&0x0F | c<<4; - FillWinText(tss,c<<12); -} - -void InitCrt() -//Called when spawning new tasks -{ - Fs->text_attribute=0xF1; - Fs->border_attribute=0xF9; - Fs->win_right=TEXT_COLS-2; - Fs->win_left=1; - Fs->win_top=1; - Fs->win_bottom=TEXT_ROWS-2; -} - -BoolU8 RawCrtPutKey(I8 ch,U8 scancode) -{ - nounusedwarn scancode; - if (IsRaw) { - DrawChar(ch); - return TRUE; - } else - return FALSE; -} - -BoolU8 RawCrtPutS(I1 *st) -{ - I1 ch; - if (IsRaw) { - while (ch=*st++) - DrawChar(ch); - return TRUE; - } else - return FALSE; -} - -void WaitLastInputTskIdle(TssStruct *tss) -{ - U8 old_flags=GetFlags; - TssCmdStruct *tempc; - Cli; - do { - tempc=&tss->last_input_filter_tss->next_servant_cmd; - if (tempc==*tempc && - Bt(&tss->last_input_filter_tss->task_flags,TSSf_IDLE)) - break; - SwapInNext; - } while (TRUE); - SetFlags(old_flags); -} - -BoolU8 InputFilterPutKey(I8 ch,U8 scancode) -{ - BoolU4 old_preempt; - if (Bt(&Fs->task_flags,TSSf_INPUT_FILTER_TASK)) { - old_preempt=Preempt(OFF); -//This is for nestled autotypes -//more trouble than it's worth -// WaitLastInputTskIdle(Fs); - Msg(MSG_KEY_DOWN,ch,scancode); - Preempt(old_preempt); - return TRUE; - } else - return FALSE; -} - -BoolU8 InputFilterPutS(I1 *st) -{ - I1 ch; - BoolU4 old_preempt; - if (Bt(&Fs->task_flags,TSSf_INPUT_FILTER_TASK)) { - old_preempt=Preempt(OFF); -//This is for nestled autotypes -//more trouble than it's worth -// WaitLastInputTskIdle(Fs); - while (ch=*st++) - Msg(MSG_KEY_DOWN,ch,0); - Preempt(old_preempt); - return TRUE; - } else - return FALSE; -} - -void PutKey(I8 ch,U8 sc) -{ - KeyDevStruct *tempp=sys_put_key_queue.next; - if (!Bt(&Fs->crt_flags,CRTf_SILENT)) { - if (sys_cur_scan_code & SCF_SCROLL) { - if (sys_cur_focus_task==Fs) { - while (sys_cur_scan_code & SCF_SCROLL) - SwapInNext; - } - } - while (tempp!=&sys_put_key_queue) { - if (tempp->PutKey(ch,sc)) - break; - tempp=tempp->next; - } - } -} - -asm {CP_PUT_CHAR::}; -void PutChar(I8 ch) -{ - PutKey(ch,0); -} - -asm {CP_PUT_STR::}; -void PutS(I1 *st) -{ - I1 ch,*ptr; - BoolU4 cont=TRUE; - if (!st) return; - KeyDevStruct *tempp=sys_put_key_queue.next; - if (!Bt(&Fs->crt_flags,CRTf_SILENT)) { - if (sys_cur_scan_code & SCF_SCROLL) { - if (sys_cur_focus_task==Fs) { - while (sys_cur_scan_code & SCF_SCROLL) - SwapInNext; - } - } - while (cont && tempp!=&sys_put_key_queue) { - if (tempp->PutS) { - if (tempp->PutS(st)) - break; - } else { - ptr=st; - while (ch=*ptr++) - if (tempp->PutKey(ch,0)) - cont=FALSE; - } - tempp=tempp->next; - } - } -} - -KeyDevStruct *AddKeyDev(void *putkey_add,void *puts_add,U8 priority) -//Places hook in StdOut chain -{ - BoolU4 old_preempt=Preempt(OFF); - KeyDevStruct *tempp,*tempp1=sys_put_key_queue.last; - tempp=AMAllocZ(sizeof(KeyDevStruct)); - tempp->PutKey=putkey_add; - tempp->PutS=puts_add; - tempp->priority=priority; - while (tempp1->priority>priority) - tempp1=tempp1->last; - InsQue(tempp,tempp1); - Preempt(old_preempt); - return tempp; -} diff --git a/LT/OSMain/CharUtils.ASZ b/LT/OSMain/CharUtils.ASZ deleted file mode 100644 index 19b3e92..0000000 --- a/LT/OSMain/CharUtils.ASZ +++ /dev/null @@ -1,620 +0,0 @@ - ALIGN 8,OC_NOP - -SYS_ALPHA_BITMAP:: DU4 0x0000000,0x00000000,0x87FFFFFF,0x07FFFFFE; - DU4 0,0,0,0; -SYS_ALPHA_NUMERIC_BITMAP:: DU4 0x0000000,0x03FF0000,0x87FFFFFF,0x07FFFFFE; - DU4 0,0,0,0; -SYS_FILENAME_CHARS_BITMAP:: DU4 0x0000000,0x03FF6001,0x87FFFFFF,0x07FFFFFE; - DU4 0,0,0,0; -SYS_DEC_NUMERIC_BITMAP:: DU4 0x0000000,0x03FF0000,0,0; - DU4 0,0,0,0; -SYS_HEX_NUMERIC_BITMAP:: DU4 0x0000000,0x03FF0000,0x7E,0x7E; - DU4 0,0,0,0; -SYS_PRINTABLE_CHARS_BITMAP:: - DU4 0x80002200,0xFFFFFFFF,0xFFFFFFFF,0x7FFFFFFF; - DU4 0,0,0,0; -SYS_SAFE_DOLLAR_CHARS_BITMAP:: - DU4 0x80000000,0xFFFFFFEF,0xFFFFFFFF,0x7FFFFFFF; - DU4 0,0,0,0; -SYS_DISPLAYABLE_CHARS_BITMAP:: - DU4 0x80000000,0xFFFFFFFF,0xFFFFFFFF,0x7FFFFFFF; - DU4 0x00001FFF,0,0,0; -////**************************PROCEDURE************************* -// IN: RAX=NUMBER TO PRINT - ALIGN 8,OC_NOP -PUT_HEX_U8:: - PUSH RCX - MOV RCX,16 - CALL FIXED_PUT_HEX - POP RCX - RET -PUT_HEX:: -PUT_HEX_U4:: - PUSH RCX - MOV RCX,8 - CALL FIXED_PUT_HEX - POP RCX - RET -PUT_HEX_U2:: - PUSH RCX - MOV RCX,4 - CALL FIXED_PUT_HEX - POP RCX - RET -PUT_HEX_U1:: - PUSH RCX - MOV RCX,2 - CALL FIXED_PUT_HEX - POP RCX - RET -FIXED_PUT_HEX:: - PUSH_C_REGS - PUSH RSI - PUSH RDI - SUB RSP,32 - MOV RDI,RSP - CALL BINARY_TO_FIXED_HEX - XOR EAX,EAX - STOSB - MOV RSI,RSP - CALL PUT_STR - ADD RSP,32 - POP RDI - POP RSI - POP_C_REGS - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -PUT_CHAR:: - PUSH_C_REGS - PUSH RAX - CALL CP_PUT_CHAR - ADD RSP,8 - POP_C_REGS - RET - ALIGN 8,OC_NOP -PUT_STR:: - PUSH_C_REGS - PUSH RSI - CALL CP_PUT_STR - ADD RSP,8 - POP_C_REGS - RET -////**************************PROCEDURE************************* -// IN: RAX=BINARY -// [RDI]=@FIELD -// RCX=LENGTH (IF THE HEX_FIELD ENTRY IS USED) -// -// OUT: RAX PRESERVED -// RCX=0 -// [RDI] POINTS PAST DESTINATION - - ALIGN 8,OC_NOP -BINARY_TO_HEX:: - MOV RCX,8 -BINARY_TO_FIXED_HEX: - PUSHFD //-**** - CLI //because of STD - PUSH RAX //-**** - PUSH RDX //-**** - ADD RDI,RCX - PUSH RDI //-**** EDI WE WANT TO RETURN - DEC RDI - MOV RDX,RAX - STD - -@@1: MOV AL,DL - AND AL,0xF - ADD AL,'0' - CMP AL,'9' - JBE @@2 - ADD AL,'A'-'0'-10 -@@2: STOSB - SHR RDX,4 - LOOP @@1 - - POP RDI //+**** - POP RDX //+**** - POP RAX //+**** - POPFD //+**** - RET -////**************************PROCEDURE************************* -//IN: [RSI] = @FIELD -// RCX = LENGTH -//OUT: RAX = VALUE -// RCX = 0 - ALIGN 8,OC_NOP -HEX_TO_BINARY:: - PUSH RDX - XOR EDX,EDX - OR RCX,RCX - JZ @@9 -@@1: SHL RDX,4 - LODSB - SUB AL,0x30 - CMP AL,9 - JA @@2 - SUB AL,7 -@@2: MOVZX RAX,AL - ADD RDX,RAX - LOOP @@1 - -@@9: MOV RAX,RDX - POP RDX - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CRLF:: - PUSH RAX - MOV RAX,13 - CALL PUT_CHAR - MOV RAX,10 - CALL PUT_CHAR - POP RAX - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_STRCAT:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - MOV RSI,U8 SF_PARAM1[RBP] -@@2: LODSB - OR AL,AL - JNZ @@2 - MOV RDI,RSI - DEC RDI - MOV RSI,U8 SF_PARAM2[RBP] -@@1: LODSB - STOSB - OR AL,AL - JNZ @@1 - POP RDI - POP RSI - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_STRCPY:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - MOV RSI,U8 SF_PARAM2[RBP] - MOV RDI,U8 SF_PARAM1[RBP] -@@1: LODSB - STOSB - OR AL,AL - JNZ @@1 - POP RDI - POP RSI - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_STRCMP:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - MOV RSI,U8 SF_PARAM2[RBP] - MOV RDI,U8 SF_PARAM1[RBP] -@@1: LODSB - OR AL,AL - JZ @@100 - SCASB - JE @@1 - JA @@90 -@@80: MOV RAX,1 - JMP @@101 -@@90: MOV RAX,-1 - JMP @@101 -@@100: SCASB - JNE @@80 - XOR EAX,EAX -@@101: POP RDI - POP RSI - POP RBP - RET -////**************************PROCEDURE************************* -TO_UPPER:: - CMP AL,'a' - JB @@100 - CMP AL,'z' - JA @@100 - ADD AL,'A'-'a' -@@100: RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_STRICMP:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - MOV RSI,U8 SF_PARAM2[RBP] - MOV RDI,U8 SF_PARAM1[RBP] -@@1: LODSB - OR AL,AL - JZ @@100 - CMP AL,'a' - JB @@2 - CMP AL,'z' - JA @@2 - ADD AL,'A'-'a' -@@2: MOV BL,U1 [RDI] - INC RDI - CMP BL,'a' - JB @@3 - CMP BL,'z' - JA @@3 - ADD BL,'A'-'a' -@@3: CMP AL,BL - JE @@1 - JA @@90 -@@80: MOV RAX,1 - JMP @@101 -@@90: MOV RAX,-1 - JMP @@101 -@@100: MOV BL,U1 [RDI] - OR BL,BL - JNE @@80 - XOR EAX,EAX -@@101: POP RDI - POP RSI - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_STRNCMP:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - MOV RCX,U8 SF_PARAM3[RBP] - MOV RSI,U8 SF_PARAM2[RBP] - MOV RDI,U8 SF_PARAM1[RBP] -@@1: OR RCX,RCX - JZ @@102 - DEC RCX - LODSB - OR AL,AL - JZ @@100 - SCASB - JE @@1 - JA @@90 -@@80: MOV RAX,1 - JMP @@101 -@@90: MOV RAX,-1 - JMP @@101 -@@100: MOV BL,U1 [RDI] - OR BL,BL - JNE @@80 -@@102: XOR EAX,EAX -@@101: POP RDI - POP RSI - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_STRNICMP:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - MOV RCX,U8 SF_PARAM3[RBP] - MOV RSI,U8 SF_PARAM2[RBP] - MOV RDI,U8 SF_PARAM1[RBP] -@@1: OR RCX,RCX - JZ @@102 - DEC RCX - LODSB - OR AL,AL - JZ @@100 - CMP AL,'a' - JB @@2 - CMP AL,'z' - JA @@2 - ADD AL,'A'-'a' -@@2: MOV BL,U1 [RDI] - INC RDI - CMP BL,'a' - JB @@3 - CMP BL,'z' - JA @@3 - ADD BL,'A'-'a' -@@3: CMP AL,BL - JE @@1 - JA @@90 -@@80: MOV RAX,1 - JMP @@101 -@@90: MOV RAX,-1 - JMP @@101 -@@100: SCASB - JNE @@80 -@@102: XOR EAX,EAX -@@101: POP RDI - POP RSI - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_STRSTR:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - MOV RSI,U8 SF_PARAM1[RBP] - MOV RDI,U8 SF_PARAM2[RBP] - MOV DL,U1 [RDI] - OR DL,DL - JZ @@90 - JMP @@5 -@@1: INC RSI -@@5: LODSB - OR AL,AL - JZ @@100 - CMP AL,DL - JNE @@5 - DEC RSI - MOV RCX,1 -@@10: MOV AL,U1 [RDI+RCX] - OR AL,AL - JZ @@90 - CMP AL,U1 [RSI+RCX] - JNE @@1 - INC RCX - JMP @@10 - -@@80: DEC RSI -@@90: MOV RAX,RSI - JMP @@101 -@@100: XOR EAX,EAX -@@101: POP RDI - POP RSI - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_STRISTR:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - MOV RSI,U8 SF_PARAM1[RBP] - MOV RDI,U8 SF_PARAM2[RBP] - MOV AL,U1 [RDI] - CALL TO_UPPER - MOV DL,AL - OR DL,DL - JZ @@90 - JMP @@5 -@@1: INC RSI -@@5: LODSB - CALL TO_UPPER - OR AL,AL - JZ @@100 - CMP AL,DL - JNE @@5 - DEC RSI - MOV RCX,1 -@@10: MOV AL,U1 [RDI+RCX] - CALL TO_UPPER - OR AL,AL - JZ @@90 - MOV BL,U1 [RSI+RCX] - XCHG AL,BL - CALL TO_UPPER - CMP AL,BL - JNE @@1 - INC RCX - JMP @@10 - -@@80: DEC RSI -@@90: MOV RAX,RSI - JMP @@101 -@@100: XOR EAX,EAX -@@101: POP RDI - POP RSI - POP RBP - RET -////**************************PROCEDURE************************* -// IN: [RSI] -// OUT: RAX - ALIGN 8,OC_NOP -HASH_STR:: - PUSH RSI //-**** - PUSH RBX //-**** - XOR EAX,EAX - XOR EBX,EBX - JMP @@10 - -@@1: SHL RBX,1 - ADC RBX,RAX -@@10: LODSB - OR AL,AL - JNZ @@1 - -@@100: MOV RAX,RBX - SHR RBX,16 - ADC RAX,RBX - POP RBX //+**** - POP RSI //+**** - RET -////**************************PROCEDURE************************* -// IN: [RSI]=STR -// RBX=TYPE MASK -// [RDI]=TABLE -// OUT: [RSI]=ENTRY OR ZERO NOT FOUND -// ZERO FLAG SET NOT FOUND - ALIGN 8,OC_NOP -FIND_HASH_ENTRY:: - PUSH RDX //-**** - PUSH RDI //-**** - MOV RDX,RSI - CALL HASH_STR - -@@4: PUSH RAX //-**** - AND RAX,U8 HT_MASK[RDI] - MOV RSI,U8 HT_BODY[RDI+RAX*8] -@@1: OR RSI,RSI - JNZ @@3 - MOV RDI,U8 HT_NEXT[RDI] - OR RDI,RDI - JZ @@100 - POP RAX - JMP @@4 - -@@3: TEST U4 HTE_TYPE[RSI],EBX - JZ @@90 - PUSH RSI //-**** - PUSH RDI //-**** - MOV RDI,U8 HTE_STR[RSI] - MOV RSI,RDX -@@2: LODSB - CMP U1 [RDI],AL - JNE @@80 - INC RDI - OR AL,AL - JNZ @@2 - POP RDI //+**** - POP RSI //+**** - INC U4 HTE_USE_CNT[RSI] - JMP @@100 - -@@80: POP RDI //+**** - POP RSI //+**** - -@@90: MOV RSI,U8 HTE_NEXT[RSI] - JMP @@1 - -@@100: POP RAX //+**** - POP RDI //+**** - POP RDX //+**** - OR RSI,RSI - RET -////**************************PROCEDURE************************* -// IN: [RSI]=STR -// [RDI]=TABLE -// OUT: [RSI]=BUCKET - ALIGN 8,OC_NOP -FIND_HASH_BUCKET:: - PUSH RAX - PUSH RDX - CALL HASH_STR - AND RAX,U8 HT_MASK[RDI] - LEA RSI,U8 HT_BODY[RDI+RAX*8] - POP RDX - POP RAX - RET -////**************************PROCEDURE************************* -FIND_EXTERN:: -//IN: RSI -//OUT: RSI - PUSH RAX - PUSH RDI - PUSH RBX - XOR EAX,EAX - MOV RAX,FS:TSS_ABSOLUTE_ADDRESS[RAX] - MOV RDI,U8 TSS_HASH_TABLE[RAX] - MOV RBX,HTT_FUNCTION|HTT_SYS_SYMBOL - CALL FIND_HASH_ENTRY - JNZ @@1 - XOR ESI,ESI - JMP @@3 -@@1: MOV RAX,U8 HTE_USER_DATA0[RSI] - TEST U4 HTE_TYPE[RSI],HTT_FUNCTION - JZ @@2 - MOV RAX,U8 C_STATEMENTS[RSI] -@@2: MOV RSI,RAX -@@3: POP RBX - POP RDI - POP RAX - OR RSI,RSI - RET -CP_FIND_EXTERN:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - XOR EAX,EAX - MOV RAX,FS:TSS_ABSOLUTE_ADDRESS[RAX] - MOV RDI,U8 TSS_HASH_TABLE[RAX] - MOV RSI,U8 SF_PARAM1[RBP] - MOV RBX,HTT_FUNCTION|HTT_SYS_SYMBOL - CALL FIND_HASH_ENTRY - JZ @@1 - MOV RAX,U8 HTE_USER_DATA0[RSI] - TEST U4 HTE_TYPE[RSI],HTT_FUNCTION - JZ @@2 - MOV RAX,U8 C_STATEMENTS[RSI] - JMP @@2 -@@1: XOR EAX,EAX -@@2: POP RDI - POP RSI - POP RBP - RET - ALIGN 8,OC_NOP -////**************************PROCEDURE************************* -CP_HASH_STR:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - MOV RSI,U8 SF_PARAM1[RBP] - CALL HASH_STR - POP RSI - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_FIND_HASH_ENTRY:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - MOV RSI,U8 SF_PARAM1[RBP] - MOV RDI,U8 SF_PARAM2[RBP] - MOV RBX,U8 SF_PARAM3[RBP] - CALL FIND_HASH_ENTRY - MOV RAX,RSI - POP RDI - POP RSI - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_FIND_HASH_BUCKET:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - MOV RSI,U8 SF_PARAM1[RBP] - MOV RDI,U8 SF_PARAM2[RBP] - CALL FIND_HASH_BUCKET - MOV RAX,RSI - POP RDI - POP RSI - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_ADD_SYS_HASH_ENTRY:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - MOV RSI,U8 SF_PARAM1[RBP] - MOV RSI,U8 HTE_STR[RSI] - MOV RDI,U8 SF_PARAM2[RBP] - CALL FIND_HASH_BUCKET - MOV RDI,U8 SF_PARAM1[RBP] - PUSHFD - CLI - MOV RAX,U8 [RSI] - MOV U8 HTE_NEXT[RDI],RAX - MOV U8 [RSI],RDI - POPFD - POP RDI - POP RSI - POP RBP - RET diff --git a/LT/OSMain/Cmd.CPZ b/LT/OSMain/Cmd.CPZ deleted file mode 100644 index 59b5c3b..0000000 --- a/LT/OSMain/Cmd.CPZ +++ /dev/null @@ -1,662 +0,0 @@ -SysHashTable *NewHashTable(U8 size,TssStruct *mem_tss=NULL) -{ - SysHashTable *tempht; - tempht=MAllocZ(offset(SysHashTable.body)+size<<3,mem_tss); - tempht->mask=size-1; - return tempht; -} - -U8 AllocGdtTabEntry() -{ - U8 old_flags=GetFlags,result; - U4 *d; - Cli; - if (!(result=free_gdt_list)) - Debugger; - d=gdttab+result; - free_gdt_list=*d; - SetFlags(old_flags); - return result; -} - -void FreeGdtTabEntry(U8 i) -{ - U8 old_flags=GetFlags; - U4 *d=gdttab+i; - Cli; - *d=free_gdt_list; - free_gdt_list=i; - SetFlags(old_flags); -} - -/* -U8 CreateCodeSelector(U8 phy_add) -{ - U8 result,*d,*d1,old_flags=GetFlags; - Cli; - result=AllocGdtTabEntry; - d=gdttab+result; - d1=d+4; - *d =0x0000FFFF; - *d1=0x00CF9A00; - d=d+2; - *d|=(phy_add & 0x00FFFFFF); - *d1|=(phy_add & 0xFF000000); - d1+=4; - *d1=0; - d1+=4; - *d1=0; - SetFlags(old_flags); - return result; -} -*/ - -U8 CreateTssSelector(U8 phy_add) -{ - U8 result,old_flags=GetFlags; - U4 *d,*d1; - Cli; - result=AllocGdtTabEntry; - d=gdttab+result; - d1=d+4; - *d =0x0000FFFF; - *d1=0x008F8900; - d=d+2; - *d|=(phy_add & 0x00FFFFFF); - *d1|=(phy_add & 0xFF000000); - d1+=4; - *d1=0; - d1+=4; - *d1=0; - SetFlags(old_flags); - return result; -} - -U8 CreateMemSelector(U8 phy_add) -{ - U8 result,old_flags=GetFlags; - U4 *d,*d1; - Cli; - result=AllocGdtTabEntry; - d=gdttab+result; - d1=d+4; - *d =0x0000FFFF; - *d1=0x00CF9200; - d=d+2; - *d |=(phy_add & 0x00FFFFFF); - *d1|=(phy_add & 0xFF000000); - d1+=4; - *d1=0; - d1+=4; - *d1=0; - SetFlags(old_flags); - return result; -} - -void AddTaskToQueue(TssStruct *tss,TssStruct *pred=NULL) -{ - TssStruct *last; - U8 old_flags=GetFlags; - Cli; - if (!pred) pred=Fs; - last=pred->last_tss; - last->next_tss=tss; - pred->last_tss=tss; - tss ->last_tss=last; - tss ->next_tss=pred; - tss->in_queue_signature=TSSS_IN_QUEUE_SIGNATURE; - SetFlags(old_flags); -} - -void AddTaskToChildQueue(TssStruct *tss) -{ - TssStruct *last,*pred; - U8 old_flags=GetFlags; - Cli; - pred=tss->parent_tss->last_child_tss; - last=pred->last_sibling_tss; - last->next_sibling_tss=tss; - pred->last_sibling_tss=tss; - tss ->last_sibling_tss=last; - tss ->next_sibling_tss=pred; - SetFlags(old_flags); -} - -asm {CP_INIT_TSS::} -U8 InitTss(TssStruct *tss,U8 stk) -{ //Returns Fs of task - void *b; - tss->absolute_address=tss; - tss->next_tss=tss; - tss->last_tss=tss; - tss->rflags=SYS_NORMAL_RFLAGS; - - b=&tss->next_child_tss-offset(TssStruct.next_sibling_tss); - tss->next_child_tss=b; - tss->last_child_tss=b; - - b=&tss->next_servant_cmd; - tss->next_servant_cmd=b; - tss->last_servant_cmd=b; - - b=&tss->next_master_cmd; - tss->next_master_cmd=b; - tss->last_master_cmd=b; - - tss->next_input_filter_tss=tss; - tss->last_input_filter_tss=tss; - - b=&tss->next_mem_blk; - tss->next_mem_blk=b; - tss->last_mem_blk=b; - - b=&tss->next_lex; - tss->next_lex=b; - tss->last_lex=b; - - b=&tss->next_except; - tss->next_except=b; - tss->last_except=b; - - b=&tss->next_ode; - tss->next_ode=b; - tss->last_ode=b; - - tss->hash_table=NewHashTable(0x1000,tss); - b=MAlloc(stk,tss); - tss->stack_base=b; - tss->stack_size=MSize(b); - b+=stk; - tss->rsp=b; - tss->answers_displayed=1; //from 0-8 - return tss; -} - -asm {CP_INIT_CPU_STRUCT::} -U8 InitCPUStruct(U8 num,CPUStruct *c) -{ - MemSet(c,0,sizeof(CPUStruct)); - c->num=num; - c->absolute_address=c; - c->idle_factor=0.01; - if (num) { - c->grbase=GrBitMapNew(BMT_COLOR4,GR_WIDTH,GR_HEIGHT); - c->grbase->flags|=BMF_SCREEN_BITMAP; - GrClear2(c->grbase); - } - return c; -} - -U8 InitStk(U8 size) -{ - U8 *st=MAllocZ(size); - return st+size; -} - -U2 InitTssStruct2() -{ - TssStruct2 *tss2; - tss2=MAllocZ(sizeof(TssStruct2)); - tss2->io_map_offset=offset(TssStruct2.io_map); - MemSet(tss2->io_map,0xFF,MAXIO/8); - tss2->rsp0=InitStk(4096); - tss2->rsp1=InitStk(4096); - tss2->rsp2=InitStk(4096); - tss2->ist1=InitStk(4096); - tss2->ist2=InitStk(4096); - tss2->ist3=InitStk(4096); - tss2->ist4=InitStk(4096); - tss2->ist5=InitStk(4096); - tss2->ist6=InitStk(4096); - tss2->ist7=InitStk(4096); - return CreateTssSelector(tss2); -} - -asm {CP_SPAWN_TASK::} -TssStruct *Spawn(void *start_add, - I1 *desc=NULL, - TssStruct *parent=NULL, //NULL means adam - I1 *account=NULL, - U8 stk=DEFAULT_STACK, - BoolU4 add_to_queue=TRUE) -{ - U8 old_flags=GetFlags; - TssStruct *tss=MAllocZ(sizeof(TssStruct),Gs->cain_tss); - SysAccntStruct *tempa; - if (!desc) desc="Unnamed Task"; - if (!parent) parent=Gs->cain_tss; - tss->parent_tss=parent; - tss->gs=parent->gs; - InitTss(tss,stk); - tss->rip=start_add; - tss->rsp-=8; - *tss->rsp=&Exit; - tss->hash_table->next=parent->hash_table; - MemCpy(tss->task_descriptor,desc,TSS_DESC_LENGTH); - MemCpy(tss->task_descriptor2,desc,TSS_DESC_LENGTH); - tss->account=tss->parent_tss->account; - if (account) { - if (tempa=CallExtStr("FindSysAccnt",account)) - tss->account=tempa; - } - //The following is a convenient way to - //initialize the FPU, but not very professional. - //I'll fix it when I have time. - MemCpy(&tss->fpu,&parent->fpu,108); - - Cli; - if (add_to_queue) { - AddTaskToQueue(tss); - AddTaskToChildQueue(tss); - } - SetFlags(old_flags); - return tss; -} - - -TssCmdStruct *QueueTaskRequest(TssStruct *servant,TssStruct *master, - I1 *data,U8 flags) -{ - U8 old_flags=GetFlags; - TssCmdStruct *result; - if (!data || !ValidateTss(servant) || - master && !ValidateTss(master)) - return NULL; - result=AMAlloc(sizeof(TssCmdStruct)); - result->master_tss=master; - result->cmd_code=TSSCT_EXECUTE_STR; - result->flags=flags; - result->data=ANewStr(data); - Cli; - servant->task_flags&=~(1<last_servant_cmd); - servant->task_flags&=~(1<task_flags,TSSf_SUSPENDED); - SwapInNext; - } - SetFlags(old_flags); - return result; -} - -TssCmdStruct *QueueTextInput(TssStruct *servant,TssStruct *master, - I1 *data,U8 flags) -{ - U8 old_flags=GetFlags; - BoolU4 old_preempt=Preempt(OFF); - U1 *input_filter_start_add; - TssCmdStruct *result; - TssStruct *tss; - if (!data || !ValidateTss(servant) || - master && !ValidateTss(master)) { - Preempt(old_preempt); - return NULL; - } - result=AMAlloc(sizeof(TssCmdStruct)); - result->master_tss=master; //in case somebody cares - result->cmd_code=TSSCT_TEXT_INPUT; - result->flags=flags; - result->data=ANewStr(data); - - if (input_filter_start_add=ext[EXT_INPUT_FILTER_TASK]) { - if (flags&1<next_input_filter_tss==servant) { - tss=Spawn(input_filter_start_add, - "Input Filter",servant); - Cli; - tss->next_input_filter_tss=servant->next_input_filter_tss; - tss->last_input_filter_tss=servant; - servant->next_input_filter_tss=tss; - tss->next_input_filter_tss->last_input_filter_tss=tss; - } else - tss=servant->next_input_filter_tss; - Cli; - tss->task_flags&=~(1<last_servant_cmd); - tss->task_flags&=~(1<master_tss=master; - tempc->cmd_code=TSSCT_MSG; - tempc->msg_code=code; - tempc->p1=p1; - tempc->p2=p2; - tempc->flags=flags; - tempc->data=NULL; - if (Bt(&sys_semas[SYS_SEMA_RECORD_MACRO],0) && - servant!=macro_util_tss && - code==MSG_KEY_DOWN) { - tempc1=AMAllocIdentical(tempc); - InsQue(tempc1,sys_macro_queue.last); - } - Cli; - while (Bt(&servant->task_flags,TSSf_FILTER_INPUT) && - !Bt(&flags,TSSCf_DONT_FILTER)) - servant=servant->next_input_filter_tss; - servant->task_flags&=~(1<last_servant_cmd); - servant->task_flags&=~(1<next_master_cmd; - tempc=tempc1->next; - while (tempc!=tempc1) { - if (!rqst || rqst==tempc) { - RemQue(tempc); - if (result) - *result=tempc->result; - AFree(tempc->data); - AFree(tempc); - SetFlags(old_flags); - return TRUE; - } - tempc=tempc->next; - } - SetFlags(old_flags); - return FALSE; -} - -void WaitTskIdle(TssStruct *tss) -{ - U8 old_flags=GetFlags; - TssStruct *tss1; - TssCmdStruct *tempc; - Cli; - while (TRUE) { - tss1=tss->last_input_filter_tss; - tempc=&tss1->next_servant_cmd; - if (ValidateTss(tss1) && tempc==*tempc && - Bt(&tss1->task_flags,TSSf_IDLE)) - break; - SwapInNext; - } - SetFlags(old_flags); -} - -void Msg(U8 code,U8 p1,U8 p2,U8 flags=0) -{ - if (Bt(&Fs->task_flags,TSSf_INPUT_FILTER_TASK)) { - QueueMsg(Fs->last_input_filter_tss,NULL,code,p1,p2, - flags| 1<next_servant_cmd; - while (tempc!=tempc1) { - tempc=tempc1->next; - if (tempc->cmd_code==TSSCT_EXECUTE_STR || - tempc->cmd_code==TSSCT_EXECUTE_FILE) { - cnt++; - RemQue(tempc); - SetFlags(old_flags); - try { - if (tempc->cmd_code==TSSCT_EXECUTE_STR) - tempc->result=CallExtNum(EXT_EXECUTE_STR,tempc->data,sys_temp_filename); - else - tempc->result=CallExtNum(EXT_EXECUTE_FILE,tempc->data); - } catch - Fs->catch_except=TRUE; - if (master=tempc->master_tss) { - if (!Bt(&tempc->flags,TSSCf_EXIT_ON_COMPLETE)) { - Cli; - InsQue(tempc,master->last_master_cmd); - SetFlags(old_flags); - } - if (Bt(&tempc->flags,TSSCf_FOCUS_MASTER) && - Bt(&master->task_flags,TSSf_LOCAL_USER)) - sys_cur_focus_task=master; - if (Bt(&tempc->flags,TSSCf_WAKE_MASTER)) - Btr(&master->task_flags,TSSf_SUSPENDED); - if (!Bt(&tempc->flags,TSSCf_EXIT_ON_COMPLETE)) - goto start_over; - else { - AFree(tempc->data); - AFree(tempc); - Exit; - } - } else { - if (!Bt(&tempc->flags,TSSCf_EXIT_ON_COMPLETE)) { - AFree(tempc->data); - AFree(tempc); - goto start_over; - } else { - AFree(tempc->data); - AFree(tempc); - Exit; - } - } - } else - break; - } - SetFlags(old_flags); - return cnt; -} - -void ContinueServantTask() -{ - Preempt(OFF); - CallExtNum(EXT_FLUSH_MSGS,NULL); - while (TRUE) { - if (HandleServantCmds) - if (!Bt(&Fs->task_flags,TSSf_DONT_CHANGE_DESC)) - MemCpy(Fs->task_descriptor,Fs->task_descriptor2,TSS_DESC_LENGTH); - CallExtNum(EXT_FLUSH_MSGS,NULL); - Fs->task_flags|=(1<account; - StrCpy(result,"::/LT/Accts/"); - if (sa) - StrCat(result,sa->name); - else - StrCat(result,"User"); - *result=PartitionToDrive(default_partition); - return result; -} - -void InitSysTask() -{ - InitCrt; - Fs->text_attribute=(WHITE<<4)+PURPLE; - Fs->border_attribute=(WHITE<<4)+LTPURPLE; - Fs->win_top++; -} - -void InitLocalTask() -{ - InitCrt; - Bts(&Fs->crt_flags,CRTf_HAS_CLOSE_WIN); - Fs->text_attribute=(WHITE<<4)+BLUE; - Fs->border_attribute=(WHITE<<4)+LTBLUE; - Fs->win_top=13; - Cd("HOME"); - CallExtNum(EXT_WIN_TO_TOP,Fs); -} - -void InitUserTask() -{ - Bts(&Fs->task_flags,TSSf_LOCAL_USER); - InitLocalTask; -} - - -asm {CP_USER_CMD_LINE::} -void UserCmdLine() -{ - InitUserTask; - Fs->user_num=++num_spawned_users; - CallExtNum(EXT_EXECUTE_FILE,"User.CPZ"); - CallExtStr("ContinueUserTask"); -} - -void SysCmdLine() -{ - InitSysTask; - Cd("HOME"); - CallExtNum(EXT_EXECUTE_FILE,"System.CPZ"); - ContinueServantTask; -} - -void ServantUserCmdLine() -{ - InitUserTask; - CallExtNum(EXT_EXECUTE_FILE,"Servant.CPZ"); - ContinueServantTask; -} - -TssStruct *SpawnUser(I1 *st=NULL) -{ - TssStruct *tss=Spawn(&UserCmdLine); - WaitTskIdle(tss); - if (st) - XTalk(tss,st); - return tss; -} - -void FinishOffTss(TssStruct *tss) -{ - if (Gs->cpu_heap) { - Free(tss->hash_table,Gs->cain_tss); - Free(tss->stack_base,Gs->cain_tss); - } - FreeMemBlkList(tss); - Free(tss,Gs->cain_tss); -} - -asm {END_TASK::} -U8 EndTask() -{ - TssStruct *tempt,*tempt1; - TssCmdStruct *tempc,*tempc1,*tempc2; - Preempt(OFF); - if (Fs->end_task_cb) { - Btr(&Fs->task_flags,TSSf_KILL_TASK); - Fs->rip=Fs->end_task_cb; - Fs->end_task_cb=NULL; - return Fs; - } - if (Fs->parent_tss) { - if (Fs->parent_tss->popup_tss==Fs) { - Fs->parent_tss->popup_tss=NULL; - Kill(Fs->parent_tss,FALSE); - return Fs->parent_tss; - } - if (Fs->parent_tss->dbg_tss==Fs) - Fs->parent_tss->dbg_tss=NULL; - } - - ReleaseTaskPartitions; - tempt1=&Fs->next_child_tss-offset(TssStruct.next_sibling_tss); - tempt=tempt1->next_sibling_tss; - if (tempt!=tempt1) { - do { - Bts(&tempt->task_flags,TSSf_KILL_TASK); - tempt=tempt->next_sibling_tss; - } while (tempt!=tempt1); - return Fs->next_tss; - } - tempc1=&Fs->next_servant_cmd; - tempc=tempc1->next; - while (tempc!=tempc1) { - tempc2=tempc->next; - AFree(tempc->data); - AFree(tempc); - tempc=tempc2; - } - - tempc1=&Fs->next_master_cmd; - tempc=tempc1->next; - while (tempc!=tempc1) { - tempc2=tempc->next; - AFree(tempc->data); - AFree(tempc); - tempc=tempc2; - } - - LBts(&sys_semas[SYS_SEMA_CLEAR_SCREEN_TEXT],0); - Cli; //TDOD: might be too long - if (sys_cur_focus_task==Fs) { - sys_cur_focus_task=0; - ip_inhibit_win_operations=FALSE; - } - - -//Remque - Fs->in_queue_signature=0; - - tempt =Fs->next_input_filter_tss; - tempt1=Fs->last_input_filter_tss; - tempt1->next_input_filter_tss=tempt; - tempt ->last_input_filter_tss=tempt1; - - tempt =Fs->next_sibling_tss; - tempt1=Fs->last_sibling_tss; - tempt1->next_sibling_tss=tempt; - tempt ->last_sibling_tss=tempt1; - - tempt =Fs->next_tss; - tempt1=Fs->last_tss; - tempt1->next_tss=tempt; - tempt ->last_tss=tempt1; - - if (sys_update_screen_tss) { - Fs->next_tss=Gs->dying_tss_list; - Gs->dying_tss_list=Fs; - } else - FinishOffTss(Fs); //dangerous (stack in use) - return tempt; -} - -void FinishOffDyingTsses() -{ - BoolU4 old_preempt=Preempt(OFF); - TssStruct *tss1,*tss2; - if (tss1=Gs->dying_tss_list) { - do { - tss2=tss1->next_tss; - FinishOffTss(tss1); - tss1=tss2; - } while (tss1); - Gs->dying_tss_list=NULL; - } - Preempt(old_preempt); -} diff --git a/LT/OSMain/Compress.CPZ b/LT/OSMain/Compress.CPZ deleted file mode 100644 index 7608f46..0000000 --- a/LT/OSMain/Compress.CPZ +++ /dev/null @@ -1,213 +0,0 @@ -// The following algorithm came from a magazine -// and I implimented it when I worked for Ticketmaster. - -void ArcCompressBuf(ArcCs *c) -//Use $LK,"CompressBuf","MN:CompressBuf"$() unless you are doing -//more than one buffer. -{ - ArcTableEntry *temp,*temp1; - U8 basecode; - U1 *src_ptr,*src_limit,ch; - - src_ptr=c->src_buf+c->src_pos; - src_limit=c->src_buf+c->src_size; - - if (c->saved_basecode==0xFFFFFFFF) - basecode=*src_ptr++; - else - basecode=c->saved_basecode; - - while (src_ptrdst_pos+c->cur_bits_in_use<=c->dst_size) { - ArcGetTableEntry(c); - - arc_start_loop1: - if (src_ptr>=src_limit) goto arc_done_compression; - ch=*src_ptr++; - if (temp=c->hash[basecode]) - do { - if (temp->ch==ch) { - basecode=(temp-&c->compress[0])>>4; -#assert sizeof(ArcTableEntry)==16 - - goto arc_start_loop1; - } - } while (temp=temp->next); - - OrU4BitField(c->dst_buf,c->dst_pos,basecode); - c->dst_pos+=c->cur_bits_in_use; - - c->entry_used=TRUE; - temp=c->cur_entry; - temp->basecode=basecode; - temp->ch=ch; - temp1=&c->hash[basecode]; - temp->next=temp1->next; - temp1->next=temp; - - basecode=ch; - } -arc_done_compression: - c->saved_basecode=basecode; - c->src_pos=src_ptr-c->src_buf; -} - -void ArcFinishCompression(ArcCs *c) -{ - if (c->dst_pos+c->cur_bits_in_use<=c->dst_size) { - OrU4BitField(c->dst_buf,c->dst_pos,c->saved_basecode); - c->dst_pos+=c->cur_bits_in_use; - } -} - -void ArcExpandBuf(ArcCs *c) -//Use $LK,"ExpandBuf","MN:ExpandBuf"$() unless you know what -//you're doing. I forgot why I made this -//"public". -{ - U1 *dst_ptr,*dst_limit; - U8 basecode,lastcode,code; - ArcTableEntry *temp,*temp1; - - dst_ptr=c->dst_buf+c->dst_pos; - dst_limit=c->dst_buf+c->dst_size; - - while (dst_ptrstack_ptr!=c->stack_base) - *dst_ptr++ = * -- c->stack_ptr; - - if (c->stack_ptr==c->stack_base && dst_ptrsaved_basecode==0xFFFFFFFF) { - lastcode=ExtractU4BitField(c->src_buf,c->src_pos, - c->next_bits_in_use); - c->src_pos+=c->next_bits_in_use; - *dst_ptr++=lastcode; - ArcGetTableEntry(c); - c->last_ch=lastcode; - } else - lastcode=c->saved_basecode; - while (dst_ptrsrc_pos+c->next_bits_in_use<=c->src_size) { - basecode=ExtractU4BitField(c->src_buf,c->src_pos, - c->next_bits_in_use); - c->src_pos+=c->next_bits_in_use; - if (c->cur_entry==&c->compress[basecode]) { - *c->stack_ptr++=c->last_ch; - code=lastcode; - } else - code=basecode; - while (code>=c->min_table_entry) { - *c->stack_ptr++=c->compress[code].ch; - code=c->compress[code].basecode; - } - *c->stack_ptr++=code; - c->last_ch=code; - - c->entry_used=TRUE; - temp=c->cur_entry; - temp->basecode=lastcode; - temp->ch=c->last_ch; - temp1=&c->hash[lastcode]; - temp->next=temp1->next; - temp1->next=temp; - - ArcGetTableEntry(c); - while (dst_ptrstack_ptr!=c->stack_base) - *dst_ptr++ = * -- c->stack_ptr; - lastcode=basecode; - } - c->saved_basecode=lastcode; - } - c->dst_pos=dst_ptr-c->dst_buf; -} - -ArcCs *NewArcCs(BoolU4 expand,BoolU4 text_only) -{ - ArcCs *c; - c=MAllocZ(sizeof(ArcCs)); - if (expand) { - c->stack_base=MAlloc(ARC_MAX_TABLE_ENTRY+1); - c->stack_ptr=c->stack_base; - } - if (text_only) - c->min_bits=7; - else - c->min_bits=8; - c->min_table_entry=1<min_bits; - c->free_index=c->min_table_entry; - c->next_bits_in_use=c->min_bits+1; - c->free_limit=1<next_bits_in_use; - c->saved_basecode=0xFFFFFFFF; - c->entry_used=TRUE; - ArcGetTableEntry(c); - c->entry_used=TRUE; - return c; -} - -void DelArcCs(ArcCs *c) -{ - Free(c->stack_base); - Free(c); -} - - -ArcCompressStruct *CompressBuf(U1 *src,U8 size, - U8 flags=0) -{ - U8 size_out; - ArcCompressStruct *result; - BoolU4 text_only=(ArcDetermineCompressionType(src,size)==CT_7_BIT); - ArcCs *c=NewArcCs(FALSE,text_only); - c->src_size=size; - c->src_buf=src; - c->dst_size=(size+sizeof(ArcCompressStruct)-1)<<3; - c->dst_buf=MAllocZ(c->dst_size>>3); - c->dst_pos=(sizeof(ArcCompressStruct)-1)<<3; - ArcCompressBuf(c); - ArcFinishCompression(c); - if (c->src_pos==c->src_size) { - size_out=(c->dst_pos+7)>>3; - result=MAlloc(size_out); - MemCpy(result,c->dst_buf,size_out); - result->compression_type=(text_only) ? CT_7_BIT:CT_8_BIT; - result->compressed_size=size_out; - } else { - result=MAlloc(size+sizeof(ArcCompressStruct)-1); - MemCpy(result->body,src,size); - result->compression_type=CT_NONE; - result->compressed_size=size+sizeof(ArcCompressStruct)-1; - } - result->expanded_size=size; - result->flags=flags; - Free(c->dst_buf); - DelArcCs(c); - return result; -} - -U1 *ExpandBuf(ArcCompressStruct *r) -{ - ArcCs *c; - U1 *result; - BoolU4 text_only; - result=MAlloc(r->expanded_size+1); - result[r->expanded_size]=0; //terminate - - text_only=(r->compression_type==CT_7_BIT); - if (r->compression_type==CT_NONE) { - MemCpy(result,r->body,r->expanded_size); - goto expand_end; - } - c=NewArcCs(TRUE,text_only); - c->src_size=r->compressed_size<<3; - c->src_pos=(sizeof(ArcCompressStruct)-1)<<3; - c->src_buf=r; - c->dst_size=r->expanded_size; - c->dst_buf=result; - c->dst_pos=0; - ArcExpandBuf(c); - DelArcCs(c); - -expand_end: - return result; -} - diff --git a/LT/OSMain/Date.CPZ b/LT/OSMain/Date.CPZ deleted file mode 100644 index c882b73..0000000 --- a/LT/OSMain/Date.CPZ +++ /dev/null @@ -1,217 +0,0 @@ -U2 month_start_days1[12]={ -0,31,59,90,120,151,181,212,243,273,304,334}; -U2 month_start_days2[12]={ -0,31,60,91,121,152,182,213,244,274,305,335}; - -I8 YearStartDate(I8 year) -{ - I8 y1=year-1; - I8 yd4000=y1/4000,yd400=y1/400,yd100=y1/100,yd4=y1/4; - return year*365+yd4-yd100+yd400-yd4000; -} - -LTDate ToLTDate(LTDateStruct *d) -{ - LTDate ltdt; - I8 i1,i2; - i1=YearStartDate(d->year); - i2=YearStartDate(d->year+1); - if (i2-i1==365) - i1+=month_start_days1[d->month-1]; - else - i1+=month_start_days2[d->month-1]; - ltdt.date=i1+d->day_of_month-1; - ltdt.time=(d->ten_thousandths+10000*(d->seconds+60*(d->minutes+60*(d->hours))))<<21/(15*15*3*625); - return ltdt; -} - -I8 DayOfWeek(I8 i) -{ - i+=LT_BASE_DAY_OF_WEEK; - if (i>=0) - return i % 7; - else - return 6-(6-i)%7; -} - -void ToLTDateStruct(LTDateStruct *d,LTDate ltdt) -{ - I8 i,date=ltdt.date; - U8 k; - d->day_of_week=DayOfWeek(date); - d->year=(date+1)*100000/36524225; - i=YearStartDate(d->year); - date-=i; - if (YearStartDate(d->year+1)-i==365) { - k=0; - while (date>=month_start_days1[k+1] && k<11) - k++; - date-=month_start_days1[k]; - } else { - k=0; - while (date>=month_start_days2[k+1] && k<11) - k++; - date-=month_start_days2[k]; - } - d->month=k+1; - d->day_of_month=date+1; - k=(625*15*15*3*ltdt.time)>>21+1; - d->ten_thousandths=k%10000; k/=100; - d->hundredths=k%100; k/=100; - d->seconds=k%60;k/=60; - d->minutes=k%60; - d->hours =k/60; -} - -I8 FirstDayOfMonth(I8 i) -{ - LTDateStruct d; - LTDate ltdt=0; - ltdt.date=i; - ToLTDateStruct(&d,ltdt); - d.day_of_month=1; - ltdt=ToLTDate(&d); - return ltdt.date; -} - -I8 LastDayOfMonth(I8 i) -{ - LTDateStruct d; - LTDate ltdt=0; - ltdt.date=i; - ToLTDateStruct(&d,ltdt); - d.month++; - if (d.month==13) { - d.month=0; - d.year++; - } - d.day_of_month=1; - ltdt=ToLTDate(&d); - return ltdt.date-1; -} - -I8 FirstDayOfYear(I8 i) -{ - LTDateStruct d; - LTDate ltdt=0; - ltdt.date=i; - ToLTDateStruct(&d,ltdt); - d.day_of_month=1; - d.month=1; - ltdt=ToLTDate(&d); - return ltdt.date; -} - -I8 LastDayOfYear(I8 i) -{ - LTDateStruct d; - LTDate ltdt=0; - ltdt.date=i; - ToLTDateStruct(&d,ltdt); - d.day_of_month=1; - d.month=1; - d.year++; - ltdt=ToLTDate(&d); - return ltdt.date-1; -} - - -U8 Bcd2Bin(U8 b) -{ - U8 i,result=0; - for (i=0;i<16;i++) { - result=result*10+b>>60; - b<<=4; - } - return result; -} - - -void GetCurTimeLTDateStruct(LTDateStruct *r) -{ - U8 i; - U8 old_flags=GetFlags; - U1 *p=r; - BoolU4 is_bcd; - - MemSet(r,0,sizeof(LTDateStruct)); - Cli; - if (mp_cnt>1) - while (LBts(&sys_semas[SYS_SEMA_SYS_DATE],0)); - do OutP(0x70,0x0A); - while (InP(0x71) & 0x80); - - OutP(0x70,0); - p[3]=InP(0x71); - OutP(0x70,2); - p[4]=InP(0x71); - OutP(0x70,4); - p[5]=InP(0x71); - - OutP(0x70,6); - p[6]=InP(0x71); - OutP(0x70,7); - p[7]=InP(0x71); - OutP(0x70,8); - p[8]=InP(0x71); - OutP(0x70,9); - p[9]=InP(0x71); - - OutP(0x70,0x0B); - if (InP(0x71) & 4) - is_bcd=FALSE; - else - is_bcd=TRUE; - - LBtr(&sys_semas[SYS_SEMA_SYS_DATE],0); - SetFlags(old_flags); - if (is_bcd) { - for (i=3;i<10;i++) - p[i]=Bcd2Bin(p[i]); - } - if (r->year>255) r->year=255; - r->year+=2000; - if (r->month>12) r->month=12; - if (r->day_of_month>31) r->day_of_month=31; - if (r->day_of_week>6) r->day_of_week=6; - if (r->hours>23) r->hours=23; - if (r->minutes>59) r->minutes=59; - if (r->seconds>59) r->seconds=59; - if (r->hundredths>99) r->hundredths=99; -} - -LTDate GetCurTimeLTDate() -{ - LTDate result; - LTDateStruct r; - GetCurTimeLTDateStruct(&r); - result=ToLTDate(&r)-local_time_offset; - return result; -} - -void LTDateToISO(ISODate *dst,LTDate ltdate) -{ - LTDateStruct d; - ToLTDateStruct(&d,ltdate); - dst->year=d.year-ISO_BASE_YEAR; - dst->mon=d.month; - dst->day=d.day_of_month; - dst->hour=d.hours; - dst->min=d.minutes; - dst->sec=d.seconds; - dst->hund=d.hundredths; -} - -LTDate ISOToLTDate(ISODate *dt) -{ - LTDateStruct ltdt; - ltdt.day_of_month=dt->day; - ltdt.month=dt->mon; - ltdt.year=dt->year+ISO_BASE_YEAR; - ltdt.ten_thousandths=dt->hund*100; - ltdt.hundredths=dt->hund; - ltdt.seconds=dt->sec; - ltdt.minutes=dt->min; - ltdt.hours=dt->hour; - return ToLTDate(<dt); -} diff --git a/LT/OSMain/Debug.CPZ b/LT/OSMain/Debug.CPZ deleted file mode 100644 index 67c76b6..0000000 --- a/LT/OSMain/Debug.CPZ +++ /dev/null @@ -1,232 +0,0 @@ -BoolU8 IsDbgTsk() -{ - TssStruct *tss=Fs->parent_tss; - if (ValidateTss(tss) && tss->dbg_tss==Fs) - return TRUE; - else - return FALSE; -} - -BoolU8 CheckPtr(void *ptr) -{ - if (ptr>=sys_heap_base && ptr<=sys_heap_limit) - return TRUE; - else if (ptr=tss->stack_base && - ptr<=tss->stack_base+tss->stack_size) - return TRUE; - } else if (ptr>=sys_heap_base && ptr<=sys_heap_limit) - return TRUE; - return FALSE; -} - -void StackRep(void **rsp=NULL) -//Reports whats on the stack -{ - U8 i,old_flags=GetFlags; - void * my_rsp[32]; - if (!rsp) rsp=GetBasePtr; - Cli; - MemCpy(my_rsp,rsp,32*sizeof(void *)); - SetFlags(old_flags); - for (i=0;i<32;i++) - PrintF("%08X [RSP+%04X]: %016X %P\r\n",rsp+i<<3,i<<3,my_rsp[i],my_rsp[i]); - CrLf; -} - -U8 *Caller(U8 num=1) -//Returns the address of the function -//which called this one, or the caller -//of the caller, etc. -{ - void **rbp=GetBasePtr,*ptr; - while (num--) { - if (rbp>=*rbp) - return NULL; - rbp=*rbp; - if (!CheckOnStk(rbp,Fs)) - return NULL; - } - ptr=rbp+sizeof(void *); - return *ptr; -} - -void CallerRep(void **rbp=NULL,TssStruct *tss=NULL) -//Prints a report of calling routines -{ - U8 i=0; - void **ptr; - if (!tss) tss=Fs; - if (!rbp) rbp=GetBasePtr; - while (CheckOnStk(rbp,tss)) { - ptr=rbp+sizeof(void *); - PrintF("Caller %d:%08tX:%P\r\n",i++,*ptr,*ptr); - if (rbp>=*rbp) - break; - rbp=*rbp; - } -} - -void DbgStr(I1 *st,U8 mS=100) -//Shows a string using -//$LK,"Raw","MN:Raw"$ screen output for a fixed length -//of time. -{ - BoolU4 old_flags=GetFlags; - BoolU4 old_raw; - Cli; - old_raw=Raw(ON); - cout "DbgStr(",st,")"; - BusyWait(mS<<10); - SetFlags(old_flags); - Raw(old_raw); -} - -void DbgNum(U8 num,U8 mS=100) -//Shows a hex number using -//$LK,"Raw","MN:Raw"$ screen output for a fixed length -//of time. -{ - BoolU4 old_flags=GetFlags; - BoolU4 old_raw; - Cli; - old_raw=Raw(ON); - cout "DbgNum(",num,")"; - BusyWait(mS<<10); - SetFlags(old_flags); - Raw(old_raw); -} - -void DbgF(double d,U8 mS=100) -//Shows a floating-point value using -//$LK,"Raw","MN:Raw"$ screen output for a fixed length -//of time. -{ - BoolU4 old_flags=GetFlags; - BoolU4 old_raw; - Cli; - old_raw=Raw(ON); - cout "DbgF(",d,")"; - BusyWait(mS<<10); - SetFlags(old_flags); - Raw(old_raw); -} - -void DbgAdd(void *add,U8 mS=100) -//Shows an address using $LK,"Raw","MN:Raw"$ screen -//output for a length of time. -{ - BoolU4 old_flags=GetFlags; - BoolU4 old_raw; - Cli; - old_raw=Raw(ON); - PrintF("DbgAdd(%P)",add); - BusyWait(mS<<10); - SetFlags(old_flags); - Raw(old_raw); -} - -void DbgD(void *add,U8 cnt=0x80,U8 mS=100) -//Dumps a block of memory using $LK,"Raw","MN:Raw"$ -//screen output for a fixed length -//of time. -{ - BoolU4 old_flags=GetFlags; - BoolU4 old_raw; - Cli; - old_raw=Raw(ON); - D(add,cnt); - BusyWait(mS<<10); - SetFlags(old_flags); - Raw(old_raw); -} - -void DbgDm(void *add,U8 cnt=0x80,U8 mS=100) -//Dumps a block of memory using $LK,"Raw","MN:Raw"$ -//screen output for a fixed length -//of time. -{ - BoolU4 old_flags=GetFlags; - BoolU4 old_raw; - Cli; - old_raw=Raw(ON); - Dm(add,cnt); - BusyWait(mS<<10); - SetFlags(old_flags); - Raw(old_raw); -} - -void Debugger(I1 *msg=NULL,U8 num=0) -//Enters the debugger. -//This can be used as a kernel panic. -{ - Cli; - Raw(ON); - - coutln "\r\n\r\nLoseThos Debugger\r\n"; - Beep; - - if (msg) { - cout msg; - if (num) - cout num; - CrLf; - } - CallerRep; - - if (ext[EXT_DEBUGGER]) - CallExtNum(EXT_DEBUGGER); - else { - coutln "No Debugger"; - while (TRUE); - } -} - -void FaultCmdLine() -{ - InitUserTask; - CallExtNum(EXT_EXECUTE_FILE,"Fault.CPZ"); - CallExtStr("ContinueUserTask"); -} - - -asm {CP_FAULT2::} -void Fault2() -{ - TssStruct *tss; - BoolU4 old_raw; -//$FG,4$$BK,1$Be careful not to swap-out and ruin the saved context$FG$$BK,0$ - - sys_cur_focus_task=0; - if (Fs->dbg_tss) { - Bts(&Fs->task_flags,TSSf_SUSPENDED); - CallExtNum(EXT_RESUME_DBG); - } else { - old_raw=Raw(ON); - coutln "\r\n\r\nFault2:",Fs->fault_num; -// Beep; - - //These are optional--alter them to suit taste - CallerRep; - StackRep; - BusyWait(3000000); //dbgoo - - if (!Bt(&Fs->task_flags,TSSf_IS_FAULT_TASK)) {//no double fault - tss=Spawn(&FaultCmdLine,"Fault Task",Fs); - Bts(&tss->task_flags,TSSf_IS_FAULT_TASK); - CallExtNum(EXT_WIN_TO_TOP,tss); - } - Raw(old_raw); - Bts(&Fs->task_flags,TSSf_SUSPENDED); - } -} diff --git a/LT/OSMain/Disk/Disk3.CPZ b/LT/OSMain/Disk/Disk3.CPZ deleted file mode 100644 index 7217232..0000000 --- a/LT/OSMain/Disk/Disk3.CPZ +++ /dev/null @@ -1,554 +0,0 @@ -void LockPartition(LTPartition *p) -{ - BoolU4 old_preempt=Preempt(OFF); - LTBlkDev *bdev=p->bdev; - CheckLTPartition(p); - if (p->owning_task!=Fs) { - while (Bts(&p->flags,MPEf_LOCKED)) - SwapInNext; - if (bdev->type==LTBDT_FDC) - FDCGet(bdev); - p->owning_task=Fs; - } - Preempt(old_preempt); -} - -BoolU8 UnlockPartition(LTPartition *p,BoolU4 reset=FALSE) -{ - LTBlkDev *bdev=p->bdev; - BoolU4 old_preempt=Preempt(OFF),result=FALSE; - CheckLTPartition(p); - if (p->owning_task==Fs) { - if (reset) { - bdev->flags&=~(LTBDF_INITIALIZED|LTBDF_INIT_IN_PROGRESS); - if (bdev->irq) - LBtr(&sema_irq_busy[bdev->irq],0); - } - p->owning_task=0; - if (bdev->type==LTBDT_FDC) - FDCFree(bdev); - Btr(&p->flags,MPEf_LOCKED); - result=TRUE; - SwapInNext; //Prevent deadlock - } - Preempt(old_preempt); - return result; -} - - -void AllocMAPBuf(LTPartition *p,U8 num_blks) -{ - CheckLTPartition(p); - AFree(p->cur_MAP_blk); - AFree(p->buffered_MAP_dirty_bits); - p->num_buffered_MAP_blks=num_blks; - p->cur_MAP_blk=AMAlloc(num_blks<buffered_MAP_dirty_bits=AMAllocZ((num_blks+7)>>3); - p->cur_MAP_blk_num=0; - RBlks(p,p->cur_MAP_blk,p->MAP1,p->num_buffered_MAP_blks,FALSE); -} - - -void CleanMAPBuf(LTPartition *p,I8 MAP_select=-1) -{ - U8 i; - if (MAP_select==-1 || MAP_select==0) { - for (i=0;inum_buffered_MAP_blks;i++) - if (Bt(p->buffered_MAP_dirty_bits,i)) - WBlks(p,p->cur_MAP_blk+i<MAP1+i+p->cur_MAP_blk_num,1,FALSE); - } - if (MAP_select==-1 || MAP_select==1) { - for (i=0;inum_buffered_MAP_blks;i++) - if (Btr(p->buffered_MAP_dirty_bits,i)) - WBlks(p,p->cur_MAP_blk+i<MAP2+i+p->cur_MAP_blk_num,1,FALSE); - } -} - -void SetLTBuf(LTPartition *p,U8 c) -{ - U8 MAP_blk_num=c>>(BLK_SIZE_BITS+3); - if (MAP_blk_num!=p->cur_MAP_blk_num) { - CleanMAPBuf(p); - p->cur_MAP_blk_num=MAP_blk_num; - RBlks(p,p->cur_MAP_blk,p->MAP1+p->cur_MAP_blk_num,1,FALSE); - } -} - -#define ZERO_BUF_SIZE 2048 -void WZeroBlks(LTPartition *p,U8 blk,U8 cnt,BoolU4 unlock) -{ - U8 n; - U1 *z=MAllocZ(ZERO_BUF_SIZE<ZERO_BUF_SIZE) - n=ZERO_BUF_SIZE; - WBlks(p,z,blk,n,unlock); - blk+=n; - cnt-=n; - SwapInNext; //Prevent locking - } - Free(z); -} - -//Very dangerous -BoolU8 SetDriveType(I1 drive,U8 type=PT_LT) -{ - I8 i,j,ext_base,num_partition; - U8 offset,cur_type; - MasterBootStruct mbr; - LTBlkDev *bd=DriveToBlkDev(drive); - num_partition=bd->partition_base-'A'; - switch (bd->type) { - case LTBDT_ATA: - offset=0; - ext_base=INVALID_CLUSTER; - while (TRUE) { - ATAReadBlks(bd,&mbr,offset,1); - j=-1; - for (i=0;i<4;i++) { - cur_type=mbr.p[i].type; - if (cur_type) { - if (cur_type==5 || cur_type==0xF) - j=i; - else { - if ((num_partition+'A')==drive) { - mbr.p[i].type=type; - mbr.p[i].active=0x80; - ATAWriteBlks(bd,&mbr,offset,1); - return TRUE; - } - num_partition++; - } - } - } - if (j<0) - break; - if (mbr.p[j].offset==0) - break; - if (ext_base==INVALID_CLUSTER) { - offset=mbr.p[j].offset; - ext_base=offset; - } else - offset=mbr.p[j].offset+ext_base; - } - break; - } -} - -BoolU8 InitBlkDev(LTBlkDev *bd,BoolU4 unlock) -{ - LTPartition *p=DriveToPartition(bd->partition_base),*p2; - LTBlkDev *bd2; - BoolU4 old_preempt=Preempt(OFF),result=FALSE; - if (!(bd->flags & LTBDF_INITIALIZED)) { - bd->flags|=LTBDF_INITIALIZED | - LTBDF_INIT_IN_PROGRESS; - switch(bd->type) { - case LTBDT_RAM: - bd->RAM_disk=AMAllocZ((bd->max_blk+1)<max_blk=MSize(bd->RAM_disk)>>BLK_SIZE_BITS-1; - p->type=PT_LT; - //TODO: finish unlock? - FormatLT(bd->partition_base,FALSE); - break; - case LTBDT_FDC: - if (!monitor_floppy_tss) { - monitor_floppy_tss=Spawn(&MonitorFDCTsk,"FLOPPY MANAGER"); - monitor_floppy_tss->user_data0=bd; - } - bd->max_reads=1; - bd->max_writes=1; - bd->read_freq=750; - bd->write_freq=150; - break; - case LTBDT_ATA: - bd->max_reads=128; - bd->max_writes=1; - bd->read_freq=2000; - bd->write_freq=500; - IDEInit(bd,TRUE); - break; - case LTBDT_ATAPI: - //0xFFFF*4 is too big for my taste - bd->max_reads=0x800*4; - //max of maybe a quarter of disk cache - if (bd->max_reads>ltdc_size*BLK_SIZE/4) - bd->max_reads=(ltdc_size/BLK_SIZE/4) & ~3; - if (bd->max_reads<128) - bd->max_reads=128; - bd->max_writes=0xFFFF*4; - bd->read_freq=1000; - bd->write_freq=250; - IDEInit(bd,TRUE); - p->size=bd->max_blk+1; - break; - case LTBDT_LT_FILE: - if (bd->flags & LTBDF_FORMAT) { - //TODO: finish unlock? - bd->f=FOpen(bd->filename,"wc",p->size); - if (!bd->f) - throw(EXCEPT_PARTITION,1); - //TODO: finish unlock? - FormatLT(bd->partition_base,TRUE); - } else { - bd->f=FOpen(bd->filename,"wc+"); - if (!bd->f) - throw(EXCEPT_PARTITION,2); - bd->max_blk=(FSize(bd->f)+BLK_SIZE-1)>>BLK_SIZE_BITS-1; - p->size=bd->max_blk+1; - InitLTPartition(p,unlock); - } - break; - case LTBDT_NON_LT_FILE: - bd->max_reads=128; - bd->max_writes=128; - bd->read_freq=2000; - bd->write_freq=500; - if (bd->flags & LTBDF_FORMAT) - FormatLT(bd->partition_base,TRUE); - else { - p2=DriveToPartition(bd->non_lt_drive); - bd2=p2->bdev; - bd->min_blk=p->offset; - bd->max_blk=p2->offset+p2->size-1; //temp - p->size=p2->size-(p->offset-p2->offset); //temp - InitLTPartition(p,unlock); - bd->max_blk=p->offset+p->size-1; - } - break; - } - if (bd->flags & LTBDF_READ_CACHE) - InvalidateDiskCache(p,unlock); - bd->flags=bd->flags & ~LTBDF_INIT_IN_PROGRESS; - result=TRUE; - } - Preempt(old_preempt); - return result; -} - -BoolU8 RBlks(LTPartition *p,U1 *buf, U8 blk, U8 cnt,BoolU4 unlock) -{ - BoolU4 result=TRUE; - LTBlkDev *bdev=p->bdev; - CheckLTPartition(p); - try { - LockPartition(p); - InitBlkDev(bdev,FALSE); - if ((p->offset && blkoffset) || blk+cnt>p->offset+p->size) - throw(EXCEPT_PARTITION,3); - blk+=bdev->offset; - - if (bdev->flags & LTBDF_READ_CACHE) - RCache(p,&buf,&blk,&cnt); - if (cnt) { - if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SOUND],0)) - Sound(bdev->read_freq); - result=p->RBlks(p,buf,blk,cnt); - bdev->last_jiffy=Jiffies; - if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SOUND],0)) - Sound(0); - if (bdev->flags & LTBDF_READ_CACHE) - LTDCAdd(p,buf,blk,cnt); - if (bdev->type!=LTBDT_RAM) - disk_reads+=cnt; - } - if (unlock) - UnlockPartition(p); - } catch - if (unlock) - UnlockPartition(p); - return result; -} - -BoolU8 WBlks(LTPartition *p,U1 *buf, U8 blk, U8 cnt,BoolU4 unlock) -{ - BoolU4 result; - LTBlkDev *bdev=p->bdev; - CheckLTPartition(p); - try { - LockPartition(p); - InitBlkDev(bdev,FALSE); - if ((bdev->flags & LTBDF_READ_ONLY) && - !(bdev->flags & LTBDF_READ_ONLY_OVERRIDE)) - throw(EXCEPT_BLKDEV,0); - if ((p->offset && blkoffset) || blk+cnt>p->offset+p->size) - throw(EXCEPT_PARTITION,4); - blk+=bdev->offset; - if (cnt) { - if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SOUND],0)) - Sound(bdev->write_freq); - result=p->WBlks(p,buf,blk,cnt); - bdev->last_jiffy=Jiffies; - if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SOUND],0)) - Sound(0); - if (bdev->flags & LTBDF_READ_CACHE) - LTDCAdd(p,buf,blk,cnt); - if (bdev->type!=LTBDT_RAM) - disk_writes+=cnt; - } - if (unlock) - UnlockPartition(p); - } catch - if (unlock) - UnlockPartition(p); - return result; -} - - -void InvalidateDiskCache(LTPartition *p,BoolU4 unlock) -{ - LTBlkDev *bdev=p->bdev; - CheckLTPartition(p); - try { - LockPartition(p); - InitBlkDev(bdev,FALSE); - if (bdev->flags & LTBDF_READ_CACHE) - LTDCInvalidate(p); - if (bdev->type==LTBDT_FDC) - InitLTPartition(p,FALSE); - else if (p->type==PT_ISO9660) { - if (!(bdev->flags & LTBDF_READ_ONLY_OVERRIDE)) - InitISOPartition(p,FALSE); - } - if (unlock) - UnlockPartition(p); - } catch - if (unlock) - UnlockPartition(p); -} - -void ChangeDisk(I1 drive_letter=0) -{ - LTBlkDev *bdev=DriveToBlkDev(drive_letter); - if (!InitBlkDev(bdev,TRUE) && bdev->flags & LTBDF_REMOVABLE) - InvalidateDiskCache(DriveToPartition(drive_letter),TRUE); - Drive(drive_letter); //TODO: might preempt off - FreeLTFreeList(DriveToPartition(drive_letter),TRUE); -} - - -void PartitionRep() -{ - I8 i; - I1 ch; - U2 u2; - U1 u1; - LTPartition *p; - LTBlkDev *bdev; - coutln "\r\nDefined Partitions:\r\n"; - for (i=0;i<32;i++) { - p=&local_partitions[i]; - bdev=p->bdev; - if (p->type) { - cout "$$FG,PURPLE$$"; - if (p==default_partition) - cout "*"; - else - cout " "; - ch=PartitionToDrive(p); - cout ch," "; - if (p->type==PT_LT) - cout "LT "; - else if (p->type==PT_FAT12) - cout "FAT12 "; - else if (p->type==PT_FAT32) - cout "FAT32 "; - else if (p->type==PT_ISO9660) - cout "ISO9660"; - else - cout "-------"; - cout " ",SysTextSub(bdev->type,"ST_BLKDEV_TYPES")," "; - u2=bdev->base0; cout u2," "; - u1=bdev->irq; cout u1," "; - u1=bdev->unit; coutln u1,"$$FG$$"; - coutln p->offset,"-",p->offset+p->size-1; - } - } -} - -void ReleaseTaskPartitions() -{ - I8 i; - LTPartition *p; - for (i=0;i<32;i++) { - p=&local_partitions[i]; - if (p->owning_task==Fs) { - UnlockPartition(p,TRUE); - if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SOUND],0)) - Sound(0); - } - } -} - -U8 NextClusterNum(LTPartition *p,U8 c,U8 cnt,BoolU4 unlock) -{ - CheckLTPartition(p); - if (!cnt || !c) return c; - try { - LockPartition(p); - if (p->type==PT_ISO9660 || p->type==PT_LT) - c+=cnt; - else - c=INVALID_CLUSTER; - if (unlock) - UnlockPartition(p); - } catch - if (unlock) - UnlockPartition(p); - return c; -} - - -U8 ClusterBlk(LTPartition *p,U8 c) -{ - CheckLTPartition(p); - return p->data+c*p->spc; -} - -U8 RClusters(LTPartition *p,U1 *buf,U8 c,U8 cnt,BoolU4 unlock,BoolU4 update_display=FALSE) -{ - nounusedwarn update_display; - CheckLTPartition(p); - if (!cnt) return c; - try { - LockPartition(p); - if (p->type==PT_ISO9660 || p->type==PT_LT) { - RBlks(p,buf,p->data+c*p->spc,p->spc*cnt,FALSE); - c+=cnt; - } else { - while (cnt && c && c!=INVALID_CLUSTER) { - RBlks(p,buf,p->data+c*p->spc,p->spc,FALSE); - buf+=p->spc<root_cluster; - while (*buf && cont) { - RemoveFirstSeg(buf,"/",buf2); - if (*buf2) { - if (p->type==PT_LT) - cont=FindLTFile(p,cur_dir_cluster, - buf2,&de,TRUE,FALSE,FALSE); - else if (p->type==PT_ISO9660) - cont=FindISOFile(p,cur_dir_cluster, - buf2,&de,TRUE,FALSE,FALSE); - else cont=FALSE; - cur_dir_cluster=de.cluster; - } - } - if (!cont) { - cout name," "; - PutSysTextErr("ST_FILE_NOT_FOUND"); - cur_dir_cluster=0; - } - if (unlock) - UnlockPartition(p); - } catch - if (unlock) - UnlockPartition(p); - Free(buf); - Free(buf2); - return cur_dir_cluster; -} - -U8 NameToParentDirCluster(LTPartition *p,I1 *name,BoolU4 unlock) -{ - BoolU4 cont=TRUE; - U8 cur_dir_cluster,cur_dir_cluster2; - LTDirEntry de; - I1 *buf=NewStr(name),*buf2=NewStr(name); - CheckLTPartition(p); - try { - LockPartition(p); - cur_dir_cluster=p->root_cluster; - cur_dir_cluster2=p->root_cluster; - while (*buf && cont) { - cur_dir_cluster2=cur_dir_cluster; - RemoveFirstSeg(buf,"/",buf2); - if (*buf2) { - if (p->type==PT_LT) - cont=FindLTFile(p,cur_dir_cluster, - buf2,&de,TRUE,FALSE,FALSE); - else if (p->type==PT_ISO9660) - cont=FindISOFile(p,cur_dir_cluster, - buf2,&de,TRUE,FALSE,FALSE); - else cont=FALSE; - cur_dir_cluster=de.cluster; - } - } - if (!cont) { - cout name," "; - PutSysTextErr("ST_FILE_NOT_FOUND"); - cur_dir_cluster2=0; - } - if (unlock) - UnlockPartition(p); - } catch - if (unlock) - UnlockPartition(p); - Free(buf); - Free(buf2); - return cur_dir_cluster2; -} - - -U8 WClusters(LTPartition *p,U1 *buf,U8 c,U8 cnt,BoolU4 unlock,BoolU4 update_display=FALSE) -{ - nounusedwarn update_display; - CheckLTPartition(p); - try { - LockPartition(p); - if (p->type==PT_LT) { - WBlks(p,buf,p->data+c*p->spc,p->spc*cnt,FALSE); - c=0; - } - if (unlock) - UnlockPartition(p); - } catch - if (unlock) - UnlockPartition(p); - return c; -} - - -//c=0 means first cluster in chain -U8 AllocClusters(LTPartition *p,U8 c,U8 cnt,BoolU4 contiguous,BoolU4 unlock) -{ - nounusedwarn contiguous; - if (!cnt) - return c; - CheckLTPartition(p); - if (p->type==PT_LT) - return AllocLTClusters(p,cnt,unlock); -} - \ No newline at end of file diff --git a/LT/OSMain/Disk/Disk4.CPZ b/LT/OSMain/Disk/Disk4.CPZ deleted file mode 100644 index 0a8cc45..0000000 --- a/LT/OSMain/Disk/Disk4.CPZ +++ /dev/null @@ -1,400 +0,0 @@ -void MapDrive(I1 ch,LTPartition *p) -{ - drive_to_partition[ToUpper(ch)-'A']=p; - p->drive=ToUpper(ch); -} - -BoolU8 Drive(I1 drive_letter) -{ - LTPartition *p; - LTBlkDev *bdev; - BoolU4 different=FALSE; - LTPartition *new_partition=DriveToPartition(drive_letter); - if (!new_partition) { - PutSysTextErr("ST_INVALID_DRIVE"); - return FALSE; - } - if (new_partition!=Fs->cur_partition) { - different=TRUE; - Fs->cur_partition=new_partition; - } - p=Fs->cur_partition; - CheckLTPartition(p); - bdev=p->bdev; - CheckLTBlkDev(bdev); - if (different) { - if ((bdev->flags & LTBDF_REMOVABLE) && - !(bdev->flags & LTBDF_INITIALIZED) ) - ChangeDisk(p->drive); - if (bdev->type==LTBDT_RAM || - bdev->type==LTBDT_NON_LT_FILE || - bdev->type==LTBDT_LT_FILE) - InitBlkDev(bdev,TRUE); - } - Free(Fs->cur_dir); - Fs->cur_dir=NewStr("/"); - if (p->type==PT_ISO9660 || p->type==PT_LT) - return TRUE; - else - return FALSE; -} - -BoolU8 Cd(I1 *name,BoolU4 make_dirs=FALSE) -{ - I8 maxlen; - BoolU4 result=TRUE; - I1 *change_to_buf,*new_cur_dir,*buf,*hdir; - LTPartition *p; - U8 cur_dir_cluster=0; - if (!*name) return TRUE; - if (name[1]==':') { - if (*name==':') { - if (Fs->cur_partition!=default_partition) - if (!Drive(*name)) return FALSE; - } else { - if (Fs->cur_partition!= - DriveToPartition(*name)) - if (!Drive(*name)) return FALSE; - } - name+=2; - } - if (*name=='/' || !*name) { - Free(Fs->cur_dir); - Fs->cur_dir=NewStr("/"); - if (*name) - name++; - } - change_to_buf=MStrUtil(name, - SU_REMOVE_LEADING|SU_REMOVE_TRAILING| - SU_DISCARD_PARITY|SU_REMOVE_CTRL_CHARS); - maxlen=StrLen(Fs->cur_dir)+1+StrLen(change_to_buf)+1; - new_cur_dir=MAlloc(maxlen); - buf=MAlloc(maxlen); - StrCpy(new_cur_dir,Fs->cur_dir); - while (*change_to_buf && result) { - RemoveFirstSeg(change_to_buf,"/",buf); - if (!*buf) - StrCpy(new_cur_dir,"/"); - else if (!StrCmp(buf,"..")) { - RemoveLastSeg(new_cur_dir,"/"); - if (!*new_cur_dir) - StrCpy(new_cur_dir,"/"); - } else if (!StrCmp(buf,".")) { - ; - } else if (*buf) { - if (!StrCmp(buf,"HOME")) { - hdir=HomeDirStr; - result=Cd(hdir); - Free(new_cur_dir); - new_cur_dir=MAlloc(maxlen+StrLen(hdir)); - StrCpy(new_cur_dir,hdir+2); - Free(hdir); - } else { - p=Fs->cur_partition; - cur_dir_cluster=NameToDirCluster(p,new_cur_dir,TRUE); - if (p->type==PT_LT) - result=CdLT(buf,cur_dir_cluster); - else if (p->type==PT_ISO9660) - result=CdISO(buf,cur_dir_cluster); - else result=FALSE; - if (!result && make_dirs) { - Free(Fs->cur_dir); - Fs->cur_dir=NewStr(new_cur_dir); - result=MkDir(buf); - } - if (result) { - if (StrCmp(new_cur_dir,"/")) - StrCat(new_cur_dir,"/"); - StrCat(new_cur_dir,buf); - } - } - } - } - Free(Fs->cur_dir); - Fs->cur_dir=NewStr(new_cur_dir); - Free(buf); - Free(change_to_buf); - Free(new_cur_dir); - return result; -} - -void DelLTFileAccess(LTFileAccess *fa) -{ - LTBlkDev *bdev; - if (!fa) return; - bdev=fa->old_partition->bdev; - if (!(bdev->flags & LTBDF_INIT_IN_PROGRESS)) { - if (fa->old_dir) { - Drive(PartitionToDrive(fa->old_partition)); - Cd(fa->old_dir); - } - } else { - Fs->cur_partition=fa->old_partition; - Free(Fs->cur_dir); - Fs->cur_dir=NewStr("/"); - } - Free(fa->old_dir); - Free(fa->mask); - Free(fa); -} - -LTFileAccess *NewLTFileAccess(I1 *mask,BoolU4 make_mask=FALSE,BoolU4 make_dirs=FALSE) -{ - BoolU4 valid=TRUE; - I1 *buf,*my_mask,*temp_mask; - BoolU4 old_silent; - LTFileAccess *fa=MAllocZ(sizeof(LTFileAccess)); - my_mask=MStrUtil(mask, - SU_REMOVE_LEADING|SU_REMOVE_TRAILING| - SU_DISCARD_PARITY|SU_REMOVE_CTRL_CHARS); - temp_mask=my_mask; - fa->old_dir=NewStr(Fs->cur_dir); - fa->old_partition=Fs->cur_partition; - if (*my_mask && my_mask[1]==':') { - if (Fs->cur_partition!=DriveToPartition(*my_mask)) - if (!Drive(*my_mask)) valid=FALSE; - my_mask+=2; - } - if (StrStr(my_mask,"HOME")) { //TODO - if (Fs->cur_partition!=DriveToPartition(':')) - Drive(':'); - } - fa->p=Fs->cur_partition; - CheckLTPartition(fa->p); - buf=MAlloc(StrLen(my_mask)+2); - StrCpy(buf,my_mask); - fa->mask=MAlloc(StrLen(my_mask)+2); - RemoveLastSeg(buf,"/",fa->mask); - if (*my_mask=='/' && !*buf) - StrCpy(buf,"/"); - if (*buf) - if (!Cd(buf,make_dirs)) - valid=FALSE; - if (valid && make_mask) { - if (!*fa->mask) { - Free(fa->mask); - fa->mask=NewStr("*"); - } else { - if (!make_dirs || CheckFileName(fa->mask)) { - old_silent=Silent(ON); - if (Cd(fa->mask,make_dirs)) { - Free(fa->mask); - fa->mask=NewStr("*"); - } - Silent(old_silent); - } - } - } - Free(buf); - Free(temp_mask); - if (!valid) { - DelLTFileAccess(fa); - fa=NULL; -// throw(EXCEPT_FILE); - } - return fa; -} - -LTDirEntry *FindFiles(I1 *wild,U8 fuf_flags=0) -{ - LTDirEntry *result=NULL; - LTFileAccess *fa=NewLTFileAccess(wild,TRUE); - if (fa) { - result=SysFindFiles(fa->mask,fuf_flags); - DelLTFileAccess(fa); - } - return result; -} - -BoolU8 IsDir(I1 *dir_name) -{ - BoolU4 result=FALSE; - I1 *mask=MSPrintF("%s/*",dir_name); - BoolU4 old_silent=Silent(ON); - LTFileAccess *fa=NewLTFileAccess(mask); - if (fa) { - result=TRUE; - DelLTFileAccess(fa); - } - Free(mask); - Silent(old_silent); - return result; -} - -void Dir(I1 *wild=NULL,BoolU4 full=FALSE) -{ - I1 *w; - LTFileAccess *fa; - if (!wild) - w=NewStr("*"); //We must do this because of bug that prevents str defaults - else - w=NewStr(wild); - fa=NewLTFileAccess(w,TRUE); - if (fa) { - DirLT(fa->mask,full); - DelLTFileAccess(fa); - } - Free(w); -} - - -void Del(I1 *wild,BoolU4 print_msg=TRUE) -{ - LTFileAccess *fa=NewLTFileAccess(wild); - if (fa) { - if (fa->p->type==PT_LT) - DelLTFiles(fa->p,Fs->cur_dir,fa->mask,FALSE,print_msg); - DelLTFileAccess(fa); - } -} - -U1 *ReadFile(I1 *filename,U8 *size=NULL,U8 *attr=NULL,BoolU4 raw=FALSE) -{ - SysHashEntry *temph; - I1 *absname; - U1 *result=NULL; - U8 size2=0,attr2=0; - LTFileAccess *fa; - ArcCompressStruct *ac=NULL; - - if (attr) - *attr=0; - absname=AbsoluteFileName(filename); - if (!raw && (temph=FindHashEntry(absname,adam_tss->hash_table,HTT_FILE))) { - if (FileAttr(absname) & LT_ATTR_COMPRESSED) { - ac=temph->user_data0; - if (size) - *size=ac->expanded_size; - if (attr) - *attr=FileAttr(absname,*attr); - result=ExpandBuf(ac); - } else { //Not implimented - result=MAlloc(temph->user_data1+1); - MemCpy(result,temph->user_data0,temph->user_data1); - result[temph->user_data1]=0; //Terminate - if (size) - *size=temph->user_data1; - } - } else { - fa=NewLTFileAccess(absname); - if (fa) { - if (fa->p->type==PT_LT) - result=ReadLTFile(fa->p,Fs->cur_dir,fa->mask,&size2,&attr2,raw,&ac); - else if (fa->p->type==PT_ISO9660) - result=ReadISOFile(fa->p,Fs->cur_dir,fa->mask,&size2,&attr2,raw,&ac); - while (!result && StrCmp(Fs->cur_dir,"/")) { - Cd(".."); - if (Fs->cur_partition->type==PT_LT) - result=ReadLTFile(fa->p,Fs->cur_dir,fa->mask,&size2,&attr2,raw,&ac); - else if (fa->p->type==PT_ISO9660) - result=ReadISOFile(fa->p,Fs->cur_dir,fa->mask,&size2,&attr2,raw,&ac); - } - if (!result) { - cout filename," "; - PutSysTextErr("ST_FILE_NOT_FOUND"); - } - DelLTFileAccess(fa); - } - if (size) - *size=size2; - if (attr) - *attr=attr2; - if (!raw && attr2 & LT_ATTR_RESIDENT) { - temph=AMAllocZ(sizeof(SysHashEntry)); - temph->str=ANewStr(absname); - temph->type=HTT_FILE; - temph->use_cnt=0; - temph->source_link=NULL; - temph->user_data0=AMAllocIdentical(ac); - temph->user_data1=size2; - AddSysHashEntry(temph,adam_tss->hash_table); - } - Free(ac); - } - Free(absname); - return result; -} - -I1 *ReadTextFile(I1 *filename,U8 *attr=NULL) -{ - return ReadFile(filename,NULL,attr); -} - - -BoolU8 FindFile(I1 *filename,LTDirEntry *rde=NULL, - BoolU4 dir_only=FALSE,BoolU4 file_only=FALSE,BoolU4 scan_parents=FALSE) -{ - U8 cur_dir_cluster; - BoolU4 result=FALSE; - LTDirEntry de; - LTFileAccess *fa=NewLTFileAccess(filename); - if (fa) { - cur_dir_cluster=NameToDirCluster(fa->p,Fs->cur_dir,TRUE); - if (fa->p->type==PT_LT) - result=FindLTFile(fa->p,cur_dir_cluster,fa->mask, - &de,dir_only,file_only,TRUE); - else if (fa->p->type==PT_ISO9660) - result=FindISOFile(fa->p,cur_dir_cluster,fa->mask, - &de,dir_only,file_only,TRUE); - if (scan_parents) { - while (!result && StrCmp(Fs->cur_dir,"/")) { - Cd(".."); - cur_dir_cluster=NameToDirCluster(fa->p,Fs->cur_dir,TRUE); - if (fa->p->type==PT_LT) - result=FindLTFile(fa->p,cur_dir_cluster,fa->mask, - &de,dir_only,file_only,TRUE); - else if (fa->p->type==PT_ISO9660) - result=FindISOFile(fa->p,cur_dir_cluster,fa->mask, - &de,dir_only,file_only,TRUE); - } - } - DelLTFileAccess(fa); - } - if (result && rde) - MemCpy(rde,&de,sizeof(LTDirEntry)); - return result; -} - - -U8 WriteFile(I1 *filename,U1 *fbuf, - U8 size,LTDate LTdatetime=0,U8 attr=0,BoolU4 raw=FALSE) -{ - U8 c=0; - SysHashEntry *temph; - LTFileAccess *fa=NewLTFileAccess(filename); - ArcCompressStruct *ac=NULL; - I1 *absname=AbsoluteFileName(filename); - if (fa) { - if (fa->p->type==PT_LT) - c=WriteLTFile(fa->p,Fs->cur_dir,fa->mask, - fbuf,size,LTdatetime,attr,raw,&ac); - if (temph=FindHashEntry(absname,adam_tss->hash_table,HTT_FILE)) { - AFree(temph->user_data0); - if (!raw && ac && attr & LT_ATTR_RESIDENT) { - temph->user_data0=AMAllocIdentical(ac); - temph->user_data1=size; - } else { - temph->user_data0=0; - temph->type=HTT_INVALID; - } - } else if (!raw && ac && attr & LT_ATTR_RESIDENT) { - temph=AMAllocZ(sizeof(SysHashEntry)); - temph->str=ANewStr(absname); - temph->type=HTT_FILE; - temph->use_cnt=0; - temph->source_link=NULL; - temph->user_data0=AMAllocIdentical(ac); - temph->user_data1=size; - AddSysHashEntry(temph,adam_tss->hash_table); - } - Free(ac); - DelLTFileAccess(fa); - } - Free(absname); - return c; -} - -void WriteTextFile(I1 *filename,I1 *st,U8 attr=0) -{ - WriteFile(filename,st,StrLen(st),0,attr); -} diff --git a/LT/OSMain/Disk/Disk5.CPZ b/LT/OSMain/Disk/Disk5.CPZ deleted file mode 100644 index 5e5fb2a..0000000 --- a/LT/OSMain/Disk/Disk5.CPZ +++ /dev/null @@ -1,338 +0,0 @@ -void SelectDefaultDrive() -{ - default_partition=DriveToPartition(default_drive); - Fs->cur_partition=INVALID_PTR; //Null screws-up cache - Fs->cur_dir=NewStr("/"); - ChangeDisk(':'); -} - -BoolU8 CopySingleZ(I1 *f1,I1 *f2) //Just one file -{ - U1 *file_buf=NULL; - U8 size,attr=0; - LTDirEntry de; - - if (FindFile(f1,&de,FALSE,TRUE)) { - file_buf=ReadFile(f1,&size,&attr); - attr=FileAttr(f2,attr); - if (file_buf) { - coutln "Copying ",f1," to ",f2; - WriteFile(f2,file_buf,size,de.datetime,attr); - Free(file_buf); - return TRUE; - } else PutSysTextErr("ST_FILE_NOT_FOUND"); - } else PutSysTextErr("ST_FILE_NOT_FOUND"); - return FALSE; -} - -#define COPY_BUF_BLKS 0x400 -BoolU8 CopySingle(I1 *f1,I1 *f2) //Just one file -{ - U1 *buf; - U8 cnt,n,size,attr1=FileAttr(f1),attr2=FileAttr(f2); - LTFile *in_file=NULL,*out_file=NULL; - U8 xsum=LT_XSUM,i,j; - if (!StrCmp(f1,f2)) - return FALSE; - if (attr1!=attr2) - return CopySingleZ(f1,f2); - buf=MAlloc(COPY_BUF_BLKS<>BLK_SIZE_BITS; - if (attr2 & LT_ATTR_CONTIGUOUS) - out_file=FOpen(f2,"wc",cnt); - else - out_file=FOpen(f2,"w",cnt); - if (out_file) { - coutln "Copying ",f1," to ",f2; - j=size; - while (cnt) { - if (cnt>COPY_BUF_BLKS) { - n=COPY_BUF_BLKS; - i=n<de.xsum && - in_file->de.xsum!=xsum) - throw(EXCEPT_ARC_XSUM); - out_file->de.xsum=xsum; - out_file->flags|=LTF_USE_OLD_DATETIME; - out_file->de.datetime=in_file->de.datetime; - out_file->de.size=size; - out_file->de.expanded_size=in_file->de.expanded_size; - out_file->de.attr=FileAttr(f2,in_file->de.attr); - FClose(out_file); - FClose(in_file); - Free(buf); - return TRUE; - } else PutSysTextErr("ST_FILE_NOT_FOUND"); - FClose(in_file); - } else PutSysTextErr("ST_FILE_NOT_FOUND"); - Free(buf); - return FALSE; -} - -BoolU8 MkDir(I1 *filename) -{ - U8 c,size,cur_dir_cluster; - U1 *buf; - BoolU4 result=FALSE; - LTDirEntry *dLT; - I1 *name; - if (FindFile(filename,NULL,TRUE)) - return FALSE; - LTFileAccess *fa=NewLTFileAccess(filename); - if (fa) { - if (*fa->mask) { - if (!CheckFileName(fa->mask)) - PutSysTextErr("ST_INVALID_FILENAME"); - else { - coutln "Make Directory:",filename; - name=MStrUtil(fa->mask, - SU_REMOVE_LEADING|SU_REMOVE_TRAILING| - SU_DISCARD_PARITY|SU_REMOVE_CTRL_CHARS); - size=fa->p->spc<p,Fs->cur_dir,TRUE); - if (fa->p->type==PT_LT) { - dLT=buf-offset(LTDirEntry.start); - c=WriteFile(name,buf,size,0,LT_ATTR_DIR,FALSE); - - dLT->attr=LT_ATTR_DIR|LT_ATTR_CONTIGUOUS; - StrCpy(dLT->name,name); - dLT->cluster=c; - dLT->size=size; - dLT->expanded_size=size; - dLT->datetime=GetCurTimeLTDate; - - dLT+=LT_DIR_ENTRY_SIZE; - - dLT->attr=LT_ATTR_DIR|LT_ATTR_CONTIGUOUS; - dLT->name[0]='.'; - dLT->name[1]='.'; - dLT->name[2]=0; - dLT->cluster=cur_dir_cluster; - dLT->size=0; - dLT->expanded_size=0; - dLT->datetime=GetCurTimeLTDate; - - } - WClusters(fa->p,buf,c,1,TRUE); - Free(buf); - Free(name); - result=TRUE; - } - } - DelLTFileAccess(fa); - } - return result; -} - -void SysDel(I1 *wild,BoolU4 make_mask) //this is dangerous -{ - LTFileAccess *fa=NewLTFileAccess(wild,make_mask); - if (fa) { - if (fa->p->type==PT_LT) - DelLTFiles(fa->p,Fs->cur_dir,fa->mask,TRUE); - DelLTFileAccess(fa); - } -} - -void Format(I8 drive_letter,BoolU4 quick=TRUE,BoolU4 confirm=TRUE,U8 type=PT_LT) -{ - LTPartition *p=DriveToPartition(drive_letter); - if (confirm) { - if (!AreYouSure) - return; - } - if (!p) { - PutSysTextErr("ST_INVALID_DRIVE"); - return; - } - if (type==PT_LT) { - Drive(drive_letter); - FormatLT(drive_letter,quick); - InvalidateDiskCache(DriveToPartition(drive_letter),TRUE); - Drive(drive_letter); - } -} - - -void ReadCDImage(I1 drive,I1 *out_name) -{ - LTBlkDev *bdev=DriveToBlkDev(drive); - LTPartition *p=DriveToPartition(drive); - U1 *buf=MAlloc(COPY_BUF_BLKS<type!=LTBDT_ATAPI) - throw(EXCEPT_BLKDEV,3); - if (!out_name) - out_name=default_iso_name; - dv=bdev->blk_size>>BLK_SIZE_BITS; - cnt=((p->size+dv-1)/dv)*dv; - while (cnt) { - if (cnt>COPY_BUF_BLKS) - n=COPY_BUF_BLKS; - else - n=cnt; - if (n>bdev->max_reads) - n=bdev->max_reads; - if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SOUND],0)) - Sound(bdev->read_freq); - ATAPIReadBlks2(bdev,buf,blk/dv,n/dv); - if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SOUND],0)) - Sound(0); - FWBlks(f,buf,blk,n); - cnt-=n; - blk+=n; - disk_reads+=n; - } - FClose(f); - Free(buf); - Free(out_name2); -} - -class LTDuelBuf -{ - U1 *buf0,*buf1; - U8 in_buf,out_buf,cnt; - I1 *filename; - LTBlkDev *CD_bdev; -}; - - -void WriteCDImageTsk() -{ - LTDuelBuf *d=Fs->user_data0; - U1 *buf; - U8 n,blk=0,cnt=d->cnt; - LTFile *f; - Preempt(ON); - InitLocalTask; //needed for disk access - if (FileAttr(d->filename)<_ATTR_CONTIGUOUS) - f=FOpen(d->filename,"rc"); - else - f=FOpen(d->filename,"r"); - while (cnt) { - if (cnt>COPY_BUF_BLKS) - n=COPY_BUF_BLKS; - else - n=cnt; - if (n>d->CD_bdev->max_writes) - n=d->CD_bdev->max_writes; - buf=(d->in_buf & 1) ? d->buf1:d->buf0; - while (d->in_buf>d->out_buf+1) - SwapInNext; - FRBlks(f,buf,blk,n); - if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SOUND],0)) - Sound(d->CD_bdev->write_freq); - d->in_buf++; - cnt-=n; - blk+=n; - } - FClose(f); -} - -void WriteCDImage(I1 drive,I1 *in_name) -{ - LTDuelBuf *d=MAllocZ(sizeof(LTDuelBuf)); - U1 *buf; - I1 *in_name2,*in_name3; - U8 n,dv,blk=0,cnt; - LTPartition *p=DriveToPartition(drive); - LTBlkDev *bdev=p->bdev,*bdev2; - TssStruct *tss; - BoolU4 old_preempt; - LTFile *f; - - if (!in_name) - in_name=default_iso_name; - in_name3=DefaultExtension(in_name,"ISO"); - in_name2=AbsoluteFileName(in_name3); - f=FOpen(in_name2,"r"); - if (!f) { - Free(d); - return; - } - - cnt=(FSize(f)+BLK_SIZE-1)>>BLK_SIZE_BITS; - FClose(f); - if (bdev->type!=LTBDT_ATAPI) - throw(EXCEPT_BLKDEV,4); - bdev2=DriveToBlkDev(*in_name2); - if (bdev->irq==bdev2->irq) { - coutln "Cannot Burn CD on same IDE controller as File.\r\n"; - throw(EXCEPT_BLKDEV,5); - } - - bdev->flags|=LTBDF_READ_ONLY_OVERRIDE; - InitBlkDev(bdev,TRUE); - dv=bdev->blk_size>>BLK_SIZE_BITS; - if (p->sizesize=cnt; - - d->filename=in_name2; - d->CD_bdev=bdev; - d->buf0=MAlloc(COPY_BUF_BLKS<buf1=MAlloc(COPY_BUF_BLKS<cnt=cnt; - - old_preempt=Preempt(OFF); - tss=Spawn(&WriteCDImageTsk,"WRITE CD"); - tss->user_data0=d; - - while (d->in_buf<=d->out_buf) - SwapInNext; - - if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SOUND],0)) - Sound(bdev->write_freq); - IDEWaitForDrive(bdev); - ATAPIWaitReady(bdev); - - while (cnt) { - if (cnt>COPY_BUF_BLKS) - n=COPY_BUF_BLKS; - else - n=cnt; - if (n>bdev->max_writes) - n=bdev->max_writes; - buf=(d->out_buf&1) ? d->buf1:d->buf0; - while (d->in_buf<=d->out_buf) - SwapInNext; - ATAPIWriteBlks(bdev,buf,blk/dv,(n+dv-1)/dv); - d->out_buf++; - cnt-=n; - blk+=n; - disk_writes+=n; - } - ATAPISync(bdev); - ATAPIClose(bdev); - if (!Bt(&sys_semas[SYS_SEMA_NO_IO_SOUND],0)) - Sound(0); - bdev->flags&=~LTBDF_READ_ONLY_OVERRIDE; - LBtr(&sema_irq_busy[bdev->irq],0); - Free(d->buf0); - Free(d->buf1); - Free(d); - Free(in_name2); - Free(in_name3); - Preempt(old_preempt); -} - - \ No newline at end of file diff --git a/LT/OSMain/Disk/DiskATA.CPZ b/LT/OSMain/Disk/DiskATA.CPZ deleted file mode 100644 index 766080e..0000000 --- a/LT/OSMain/Disk/DiskATA.CPZ +++ /dev/null @@ -1,599 +0,0 @@ - -//The following definitions were copied from Linux source code -/* ATA/ATAPI Cmds pre T13 Spec */ -#define WIN_NOP 0x00 -#define CFA_REQ_EXT_ERROR_CODE 0x03 /* CFA Request Extended Error Code */ -#define WIN_SRST 0x08 /* ATAPI soft reset cmd */ -#define WIN_DEV_RESET 0x08 -#define WIN_RESTORE 0x10 -#define WIN_READ 0x20 /* 28-Bit */ -#define WIN_READ_EXT 0x24 /* 48-Bit */ -#define WIN_READDMA_EXT 0x25 /* 48-Bit */ -#define WIN_READDMA_QUEUED_EXT 0x26 /* 48-Bit */ -#define WIN_READ_NATIVE_MAX_EXT 0x27 /* 48-Bit */ -#define WIN_MULTREAD_EXT 0x29 /* 48-Bit */ -#define WIN_WRITE 0x30 /* 28-Bit */ -#define WIN_WRITE_EXT 0x34 /* 48-Bit */ -#define WIN_WRITEDMA_EXT 0x35 /* 48-Bit */ -#define WIN_WRITEDMA_QUEUED_EXT 0x36 /* 48-Bit */ -#define WIN_SET_MAX_EXT 0x37 /* 48-Bit */ -#define CFA_WRITE_SECT_WO_ERASE 0x38 /* CFA Write Sectors without erase */ -#define WIN_MULTWRITE_EXT 0x39 /* 48-Bit */ -#define WIN_WRITE_VERIFY 0x3C /* 28-Bit */ -#define WIN_VERIFY 0x40 /* 28-Bit - Read Verify Sectors */ -#define WIN_VERIFY_EXT 0x42 /* 48-Bit */ -#define WIN_FORMAT 0x50 -#define WIN_INIT 0x60 -#define WIN_SEEK 0x70 -#define CFA_TRANSLATE_SECTOR 0x87 /* CFA Translate Sector */ -#define WIN_DIAGNOSE 0x90 -#define WIN_SPECIFY 0x91 /* set Drive geometry translation */ -#define WIN_DOWNLOAD_MICROCODE 0x92 -#define WIN_STANDBYNOW2 0x94 -#define WIN_SETIDLE2 0x97 -#define WIN_CHECKPOWERMODE2 0x98 -#define WIN_SLEEPNOW2 0x99 -#define WIN_PACKETCMD 0xA0 /* Send a packet cmd. */ -#define WIN_PIDENTIFY 0xA1 /* IDEntify ATAPI dev */ -#define WIN_QUEUED_SERVICE 0xA2 -#define WIN_SMART 0xB0 /* self-monitoring and reporting */ -#define CFA_ERASE_SECTORS 0xC0 -#define WIN_MULTREAD 0xC4 /* read sectors using multiple mode*/ -#define WIN_MULTWRITE 0xC5 /* write sectors using multiple mode */ -#define WIN_SETMULT 0xC6 /* enable/disable multiple mode */ -#define WIN_READDMA_QUEUED 0xC7 /* read sectors using Queued DMA transfers */ -#define WIN_READDMA 0xC8 /* read sectors using DMA transfers */ -#define WIN_WRITEDMA 0xCA /* write sectors using DMA transfers */ -#define WIN_WRITEDMA_QUEUED 0xCC /* write sectors using Queued DMA transfers */ -#define CFA_WRITE_MULTI_WO_ERASE 0xCD /* CFA Write multiple without erase */ -#define WIN_GETMEDIASTATUS 0xDA -#define WIN_DOORLOCK 0xDE /* lock door ON removable drives */ -#define WIN_DOORUNLOCK 0xDF /* unlock door ON removable drives */ -#define WIN_STANDBYNOW1 0xE0 -#define WIN_IDLEIMMEDIATE 0xE1 /* force Drive to become "ready" */ -#define WIN_STANDBY 0xE2 /* Set dev in Standby Mode */ -#define WIN_SETIDLE1 0xE3 -#define WIN_READ_BUFFER 0xE4 /* force read only 1 sector */ -#define WIN_CHECKPOWERMODE1 0xE5 -#define WIN_SLEEPNOW1 0xE6 -#define WIN_FLUSH_CACHE 0xE7 -#define WIN_WRITE_BUFFER 0xE8 /* force write only 1 sector */ -#define WIN_FLUSH_CACHE_EXT 0xEA /* 48-Bit */ -#define WIN_IDENTIFY 0xEC /* ask Drive to IDEntify itself */ -#define WIN_MEDIAELTECT 0xED -#define WIN_IDENTIFY_DMA 0xEE /* same as WIN_IDENTIFY, but DMA */ -#define WIN_SETFEATURES 0xEF /* set special Drive features */ -#define EXAU1_ENABLE_NEST 0xF0 -#define WIN_SECURITY_SET_PASS 0xF1 -#define WIN_SECURITY_UNLOCK 0xF2 -#define WIN_SECURITY_ERASE_PREPARE 0xF3 -#define WIN_SECURITY_ERASE_UNIT 0xF4 -#define WIN_SECURITY_FREEZE_LOCK 0xF5 -#define WIN_SECURITY_DISABLE 0xF6 -#define WIN_READ_NATIVE_MAX 0xF8 /* return the native maximum address */ -#define WIN_SET_MAX 0xF9 -#define DISABLE_SEAGATE 0xFB - -/* Bits of HD_STATUS */ -#define ERR_STAT 0x01 -#define INDEX_STAT 0x02 -#define ECC_STAT 0x04 /* Corrected error */ -#define DRQ_STAT 0x08 -#define SEEK_STAT 0x10 -#define WRERR_STAT 0x20 -#define READY_STAT 0x40 -#define BUSY_STAT 0x80 -#define BAD_R_STAT (BUSY_STAT | ERR_STAT) -#define BAD_W_STAT (BAD_R_STAT | WRERR_STAT) -#define BAD_STAT (BAD_R_STAT | DRQ_STAT) -#define DRIVE_READY (READY_STAT | SEEK_STAT) -#define DATA_READY (DRQ_STAT) - -#define IDE_DATA_REG 0 -#define IDE_FEATURE_REG 1 -#define IDE_NSECTOR_REG 2 -#define IDE_SECTOR_REG 3 -#define IDE_LCYL_REG 4 -#define IDE_HCYL_REG 5 -#define IDE_SELECT_REG 6 -#define IDE_STATUS 7 -#define IDE_CMD 7 -#define IDE_CONTROL_REG 0 - -void Irq0BHandler() -{ -// LBts(&sema_irqs[11],0); -} - -void Irq0EHandler() -{ -// LBts(&sema_irqs[14],0); -} - -void Irq0FHandler() -{ -// LBts(&sema_irqs[15],0); -} - -void ATASelectBlk28(LTBlkDev *bdev,U8 blk,U8 cnt) -{ - OutP(bdev->base1+IDE_CONTROL_REG,0x8); - OutP(bdev->base0+IDE_SECTOR_REG,blk); - OutP(bdev->base0+IDE_NSECTOR_REG,cnt); - OutP(bdev->base0+IDE_LCYL_REG,blk.u1[1]); - OutP(bdev->base0+IDE_HCYL_REG,blk.u1[2]); - OutP(bdev->base0+IDE_SELECT_REG,0xE0|bdev->unit<<4|blk.u1[3]); -} - -U8 ATAGetBlkNum28(LTBlkDev *bdev) -{ - U8 result=0; - result.u1[0]=InP(bdev->base0+IDE_SECTOR_REG); - result.u1[1]=InP(bdev->base0+IDE_LCYL_REG); - result.u1[2]=InP(bdev->base0+IDE_HCYL_REG); - result.u1[3]=InP(bdev->base0+IDE_SELECT_REG) & 0xF; - return result; -} - -void ATASelectBlk48(LTBlkDev *bdev,U8 blk,U8 cnt) -{//Untested - OutP(bdev->base1+IDE_CONTROL_REG,0x8); - OutP(bdev->base0+IDE_NSECTOR_REG,cnt.u1[1]); - OutP(bdev->base0+IDE_SECTOR_REG,blk.u1[3]); - OutP(bdev->base0+IDE_LCYL_REG,blk.u1[4]); - OutP(bdev->base0+IDE_HCYL_REG,blk.u1[5]); - - OutP(bdev->base0+IDE_NSECTOR_REG,cnt); - OutP(bdev->base0+IDE_SECTOR_REG,blk); - OutP(bdev->base0+IDE_LCYL_REG,blk.u1[1]); - OutP(bdev->base0+IDE_HCYL_REG,blk.u1[2]); - OutP(bdev->base0+IDE_SELECT_REG,0xE0|bdev->unit<<4); -} - -void IDEWaitNotBusy(LTBlkDev *bdev) -{ - while (InP(bdev->base0+IDE_STATUS) & BUSY_STAT) - SwapInNext; -} - -void ATANop(LTBlkDev *bdev) -{ - OutP(bdev->base0+IDE_SELECT_REG,0xE0|bdev->unit<<4); - OutP(bdev->base0+IDE_FEATURE_REG,0); - OutP(bdev->base0+IDE_CMD,WIN_NOP); - IDEWaitNotBusy(bdev); -} - -void ATACmd(LTBlkDev *bdev,U1 cmd) -{ - OutP(bdev->base0+IDE_FEATURE_REG,0); - OutP(bdev->base0+IDE_CMD,cmd); - bdev->last_jiffy=Jiffies; -} - -/******* -U8 ATAPIStat(LTBlkDev *bdev) -{ - return InP(bdev->base0+IDE_STATUS)+ - 256*(InP(bdev->base0+IDE_NSECTOR_REG)+ - 256* InP(bdev->base0+IDE_FEATURE_REG) ); -} -**********/ - -void ATAPIWritePktWord(LTBlkDev *bdev,U2 w) -{ - while (!(InP(bdev->base0+IDE_STATUS)&DATA_READY)) - SwapInNext; - OutPW(bdev->base0+IDE_DATA_REG,w.u1[1]+256*w.u1[0]); - bdev->last_jiffy=Jiffies; -} - -void IDEWaitForDrive(LTBlkDev *bdev) -{ - while (LBts(&sema_irq_busy[bdev->irq],0)) - SwapInNext; - LBtr(&sema_irqs[bdev->irq],0); -} - -/******** -void IDEWaitForIrq(LTBlkDev *bdev) -{ - BoolU4 old_flags=GetFlags; - Sti; - while (!LBtr(&sema_irqs[bdev->irq],0)) - SwapInNext; - SetFlags(old_flags); -} -*********/ - -void ATAPISetMaxSpeed(LTBlkDev *bdev) -{ - OutP(bdev->base1+IDE_CONTROL_REG,0x8); - OutP(bdev->base0+IDE_SELECT_REG,0xE0|bdev->unit<<4); - OutP(bdev->base0+IDE_LCYL_REG,bdev->blk_size); - OutP(bdev->base0+IDE_HCYL_REG,bdev->blk_size.u1[1]); - ATACmd(bdev,WIN_PACKETCMD); - ATAPIWritePktWord(bdev,0xBB00); //Set speed - ATAPIWritePktWord(bdev,0xFFFF); //read at max - ATAPIWritePktWord(bdev,0xFFFF); //write at max - ATAPIWritePktWord(bdev,0); - ATAPIWritePktWord(bdev,0); - ATAPIWritePktWord(bdev,0); - IDEWaitNotBusy(bdev); -} - - -void ATAPISeek(LTBlkDev *bdev,U8 blk) -{ - OutP(bdev->base1+IDE_CONTROL_REG,0x8); - OutP(bdev->base0+IDE_SELECT_REG,0xE0|bdev->unit<<4); - OutP(bdev->base0+IDE_LCYL_REG,bdev->blk_size); - OutP(bdev->base0+IDE_HCYL_REG,bdev->blk_size.u1[1]); - ATACmd(bdev,WIN_PACKETCMD); - ATAPIWritePktWord(bdev,0x2B00); //Seek - ATAPIWritePktWord(bdev,blk>>16); - ATAPIWritePktWord(bdev,blk); - ATAPIWritePktWord(bdev,0); - ATAPIWritePktWord(bdev,0); - ATAPIWritePktWord(bdev,0x0000); - IDEWaitNotBusy(bdev); -} - -void ATAPIStartStop(LTBlkDev *bdev,BoolU4 start) -{ - OutP(bdev->base0+IDE_SELECT_REG,0xE0|bdev->unit<<4); - ATACmd(bdev,WIN_PACKETCMD); - ATAPIWritePktWord(bdev,0x1B00); //Start/Stop - ATAPIWritePktWord(bdev,0x0000); - if (start) - ATAPIWritePktWord(bdev,0x0100); - else - ATAPIWritePktWord(bdev,0x0000); - ATAPIWritePktWord(bdev,0x0000); - ATAPIWritePktWord(bdev,0x0000); - ATAPIWritePktWord(bdev,0x0000); - IDEWaitNotBusy(bdev); -} - -void IDEInit(LTBlkDev *bdev,BoolU4 unlock) -{ - CheckLTBlkDev(bdev); - if (unlock) - IDEWaitForDrive(bdev); - LBtr(&sema_irqs[bdev->irq],0); - - if (!(bdev->flags & LTBDF_HAS_BEEN_RESET)) { - OutP(bdev->base1+IDE_CONTROL_REG,0x8); - OutP(bdev->base0+IDE_SELECT_REG,0xE0|bdev->unit<<4); - ATACmd(bdev,WIN_DEV_RESET); - IDEWaitNotBusy(bdev); - bdev->flags=bdev->flags | LTBDF_HAS_BEEN_RESET; - } - OutP(bdev->base1+IDE_CONTROL_REG,0x8); - OutP(bdev->base0+IDE_SELECT_REG,0xE0|bdev->unit<<4); - ATACmd(bdev,WIN_READ_NATIVE_MAX); - IDEWaitNotBusy(bdev); - bdev->max_blk=ATAGetBlkNum28(bdev); - ATASelectBlk28(bdev,bdev->max_blk,0); - ATACmd(bdev,WIN_SET_MAX); - IDEWaitNotBusy(bdev); - if (bdev->type==LTBDT_ATAPI) { - ATAPIStartStop(bdev,TRUE); - ATAPISetMaxSpeed(bdev); - } - LBtr(&sema_irqs[bdev->irq],0); - if (unlock) - LBtr(&sema_irq_busy[bdev->irq],0); -} - -/********** -void IDEWaitReady(LTBlkDev *bdev) -{ - U8 i=0; - while (!(InP(bdev->base0+IDE_STATUS) & READY_STAT)) { - if (!(++i & 0xFFF)) - IDEInit(bdev,FALSE); - ATANop(bdev); - SwapInNext; - } -} -***********/ - -void ATAPIWaitReady(LTBlkDev *bdev) -{ - U8 pass=0; - BoolU4 cont; - do { - IDEWaitNotBusy(bdev); - if (pass) - SwapInNext; - ATANop(bdev); - if (InP(bdev->base0+IDE_STATUS) & READY_STAT) { - if (!bdev->last_jiffy || pass>16 || - (Jiffies>bdev->last_jiffy+JIFFY_FREQ<<1)) { - ATAPIStartStop(bdev,TRUE); - } - cont=FALSE; - } else { - if (pass>16) - IDEInit(bdev,FALSE); - cont=TRUE; - } - pass++; - } while (cont || InP(bdev->base0+IDE_FEATURE_REG)); -} - -void ATAReadBlks2(LTBlkDev *bdev,U1 *buf, U8 cnt) -{ - U8 U2s_avail,sectors_avail; - while (cnt) { - while (!(InP(bdev->base0+IDE_STATUS) & DATA_READY)) - SwapInNext; - sectors_avail=1; - U2s_avail=sectors_avail<>1; - RepInSW(buf,U2s_avail,bdev->base0+IDE_DATA_REG); - buf+=U2s_avail<<1; - cnt-=sectors_avail; - } - IDEWaitNotBusy(bdev); - LBtr(&sema_irqs[bdev->irq],0); -} - - -/*********** -void ATAReadBlksExt(LTBlkDev *bdev,U1 *buf, U8 blk, U8 cnt) -{// Untested - IDEWaitForDrive(bdev); - ATASelectBlk48(bdev,blk,0,cnt); - ATACmd(bdev,WIN_MULTREAD_EXT); - ATAReadBlks2(bdev,buf,cnt); - LBtr(&sema_irq_busy[bdev->irq],0); -} -*************/ - -void ATAReadBlks(LTBlkDev *bdev,U1 *buf, U8 blk, U8 cnt) -{ - IDEWaitForDrive(bdev); - while ((InP(bdev->base0+IDE_STATUS) & DATA_READY)) - SwapInNext; - ATASelectBlk28(bdev,blk,cnt); - ATACmd(bdev,WIN_MULTREAD); - ATAReadBlks2(bdev,buf,cnt); - LBtr(&sema_irq_busy[bdev->irq],0); -} - -I8 IDEProbe(I8 base0,I8 base1,I8 unit) -{ - nounusedwarn base1; - I8 timeout=0; - OutP(base0+IDE_SELECT_REG,0xE0|unit<<4); - OutP(base0+IDE_CMD,WIN_NOP); - while (InP(base0+IDE_STATUS) & BUSY_STAT) { - if (timeout++>5000) - return LTBDT_NULL; - PortNop; - } - if (timeout) - return LTBDT_ATA; - else - return LTBDT_NULL; -} - -void ATAPIReadBlks2(LTBlkDev *bdev,U1 *buf, U8 blk, U8 cnt) -{ - U8 U2s_avail; - U1 *done_add=buf+cnt*bdev->blk_size; - - if (!cnt) - return; - IDEWaitForDrive(bdev); - while ((InP(bdev->base0+IDE_STATUS) & DATA_READY)) - SwapInNext; - ATAPIWaitReady(bdev); - OutP(bdev->base1+IDE_CONTROL_REG,0x8); - OutP(bdev->base0+IDE_SELECT_REG,0xE0|bdev->unit<<4); - OutP(bdev->base0+IDE_LCYL_REG,bdev->blk_size); - OutP(bdev->base0+IDE_HCYL_REG,bdev->blk_size.u1[1]); - ATACmd(bdev,WIN_PACKETCMD); - ATAPIWritePktWord(bdev,0xA800); - ATAPIWritePktWord(bdev,blk.u2[1]); - ATAPIWritePktWord(bdev,blk); - ATAPIWritePktWord(bdev,cnt.u2[1]); - ATAPIWritePktWord(bdev,cnt); - ATAPIWritePktWord(bdev,0x0000); - while (bufbase0+IDE_STATUS) & DATA_READY)) - SwapInNext; - if (U2s_avail=(InP(bdev->base0+IDE_HCYL_REG)<<8+InP(bdev->base0+IDE_LCYL_REG))>>1) { - if (buf+U2s_avail<<1>done_add) - U2s_avail=(done_add-buf)>>1; - RepInSW(buf,U2s_avail,bdev->base0+IDE_DATA_REG); - buf+=U2s_avail<<1; - } - } - IDEWaitNotBusy(bdev); -// ATAPIStartStop(bdev,FALSE); - LBtr(&sema_irq_busy[bdev->irq],0); -} - -void ATAPIReadBlks(LTBlkDev *bdev,U1 *buf, U8 blk, U8 cnt) -{ - LTPartition *p=DriveToPartition(bdev->partition_base); - U8 dv=bdev->blk_size>>BLK_SIZE_BITS,n,blk2, - l2=bdev->max_reads<<1+dv<<1; - U1 *cd_buf=MAlloc(l2<max_reads) - blk2=0; - else - blk2=((blk-bdev->max_reads)/dv)*dv; - if (blk2+l2>p->size) - l2=p->size-blk2; - n=(l2+dv-1)/dv; - ATAPIReadBlks2(bdev,cd_buf,blk2/dv,n); - if (bdev->flags & LTBDF_READ_CACHE) - LTDCAdd(p,cd_buf,blk2,n*dv); - MemCpy(buf,cd_buf+(blk-blk2)<bdev; - CheckLTBlkDev(bdev); - while (cnt>0) { - n=cnt; - if (n>bdev->max_reads) - n=bdev->max_reads; - if (bdev->type==LTBDT_ATAPI) - ATAPIReadBlks(bdev,buf,blk,n); - else - ATAReadBlks(bdev,buf,blk,n); - buf+=n<base0+IDE_STATUS); - if (i & DRIVE_READY!=DRIVE_READY || - !(i & DATA_READY)) { - SwapInNext; - } else - break; - } while (TRUE); -//TODO - sectors_avail=1; - U2s_avail=sectors_avail<>1; - RepOutSW(buf,U2s_avail,bdev->base0+IDE_DATA_REG); - buf+=U2s_avail<<1; - cnt-=sectors_avail; - } - IDEWaitNotBusy(bdev); - LBtr(&sema_irq_busy[bdev->irq],0); -} - -void ATAPISync(LTBlkDev *bdev) -{ - IDEWaitNotBusy(bdev); - OutP(bdev->base1+IDE_CONTROL_REG,0x8); - OutP(bdev->base0+IDE_SELECT_REG,0xE0|bdev->unit<<4); - OutP(bdev->base0+IDE_LCYL_REG,bdev->blk_size); - OutP(bdev->base0+IDE_HCYL_REG,bdev->blk_size.u1[1]); - ATACmd(bdev,WIN_PACKETCMD); - ATAPIWritePktWord(bdev,0x3500); //Sync - ATAPIWritePktWord(bdev,0x0000); - ATAPIWritePktWord(bdev,0x0000); - ATAPIWritePktWord(bdev,0x0000); - ATAPIWritePktWord(bdev,0x0000); - ATAPIWritePktWord(bdev,0x0000); - IDEWaitNotBusy(bdev); -} - -void ATAPIClose(LTBlkDev *bdev) -{ - OutP(bdev->base1+IDE_CONTROL_REG,0x8); - OutP(bdev->base0+IDE_SELECT_REG,0xE0|bdev->unit<<4); - OutP(bdev->base0+IDE_LCYL_REG,bdev->blk_size); - OutP(bdev->base0+IDE_HCYL_REG,bdev->blk_size.u1[1]); - ATACmd(bdev,WIN_PACKETCMD); - ATAPIWritePktWord(bdev,0x5B00); //Close - ATAPIWritePktWord(bdev,0x0200); - ATAPIWritePktWord(bdev,0x0000); - ATAPIWritePktWord(bdev,0x0000); - ATAPIWritePktWord(bdev,0x0000); - ATAPIWritePktWord(bdev,0x0000); - IDEWaitNotBusy(bdev); -} - -void ATAPIWriteBlks(LTBlkDev *bdev,U1 *buf, U8 blk, U8 cnt) -{ - U8 U2s_avail; - U1 *buf2; - IDEWaitNotBusy(bdev); - ATAPISeek(bdev,blk); - - OutP(bdev->base0+IDE_FEATURE_REG,0); - OutP(bdev->base0+IDE_LCYL_REG,bdev->blk_size); - OutP(bdev->base0+IDE_HCYL_REG,bdev->blk_size.u1[1]); - OutP(bdev->base0+IDE_SELECT_REG,0xE0|bdev->unit<<4); - OutP(bdev->base0+IDE_CMD,WIN_PACKETCMD); - ATAPIWritePktWord(bdev,0x0400); //FMT - ATAPIWritePktWord(bdev,blk.u2[1]); - ATAPIWritePktWord(bdev,blk); - ATAPIWritePktWord(bdev,cnt.u2[1]); - ATAPIWritePktWord(bdev,cnt); - ATAPIWritePktWord(bdev,0x0000); - IDEWaitNotBusy(bdev); - - ATAPISeek(bdev,blk); - - OutP(bdev->base1+IDE_CONTROL_REG,0x8); - OutP(bdev->base0+IDE_SELECT_REG,0xE0|bdev->unit<<4); - OutP(bdev->base0+IDE_LCYL_REG,bdev->blk_size); - OutP(bdev->base0+IDE_HCYL_REG,bdev->blk_size.u1[1]); - ATACmd(bdev,WIN_PACKETCMD); - ATAPIWritePktWord(bdev,0xAA00); //Write - ATAPIWritePktWord(bdev,blk.u2[1]); - ATAPIWritePktWord(bdev,blk); - ATAPIWritePktWord(bdev,cnt.u2[1]); - ATAPIWritePktWord(bdev,cnt); - ATAPIWritePktWord(bdev,0x0000); - buf2=buf+bdev->blk_size*cnt; - while (bufbase0+IDE_STATUS) & DATA_READY)) - SwapInNext; - U2s_avail=(InP(bdev->base0+IDE_HCYL_REG)<<8+InP(bdev->base0+IDE_LCYL_REG))>>1; - if (buf+U2s_avail<<1>buf2) - U2s_avail=(buf2-buf)>>1; - if (U2s_avail) { - RepOutSW(buf,U2s_avail,bdev->base0+IDE_DATA_REG); - buf+=U2s_avail<<1; - } - } -} - -//TODO: needs to be fixed so it does more than one blk at -//a time when it calls ATAWriteBlks. -void IDEWBlks(LTPartition *p,U1 *buf, U8 blk, U8 cnt) -{ - U8 n,dv; - LTBlkDev *bdev=p->bdev; - CheckLTBlkDev(bdev); - dv=bdev->blk_size>>BLK_SIZE_BITS; - if (bdev->type==LTBDT_ATAPI) { - IDEWaitForDrive(bdev); - ATAPIWaitReady(bdev); - } - while (cnt>0) { - n=cnt; - if (n>bdev->max_writes) - n=bdev->max_writes; - if (bdev->type==LTBDT_ATAPI) - ATAPIWriteBlks(bdev,buf,blk/dv,(n+dv-1)/dv); - else - ATAWriteBlks(bdev,buf,blk,n); - buf+=n<type==LTBDT_ATAPI) { - ATAPISync(bdev); -// ATAPIStartStop(bdev,FALSE); - LBtr(&sema_irq_busy[bdev->irq],0); - } -} - - \ No newline at end of file diff --git a/LT/OSMain/Disk/DiskAddDev.CPZ b/LT/OSMain/Disk/DiskAddDev.CPZ deleted file mode 100644 index db91127..0000000 --- a/LT/OSMain/Disk/DiskAddDev.CPZ +++ /dev/null @@ -1,500 +0,0 @@ -U8 AddBlkDev(LTBlkDev *bd,BoolU4 one_partition) -{ - I8 i,j,ext_base,num_partition; - U8 offset; - LTPartition *p; - I1 *drname; - LTBootStruct br; - MasterBootStruct mbr; - - bd->ch_L='L'; - bd->ch_B='B'; - bd->ch_D='D'; - num_partition=bd->partition_base-'A'; - p=&local_partitions[num_partition]; - MemSet(p,0,sizeof(LTPartition)); - p->drive=num_partition+'A'; - p->ch_L='L'; - p->ch_P='P'; - p->ch_E='E'; - p->bdev=bd; - p->size=bd->max_blk+1; - j=(sys_boot_code.u1[1]==0xE0) ? 0:1; - switch (sys_boot_code.u1[0]) { - case BOOT_CODE_CDROM: - if (sys_boot_code.u2[1]==bd->base0 && j==bd->unit) - boot_blkdev=bd; - break; - case BOOT_CODE_HARDDRIVE: - if (sys_boot_code.u2[1]==bd->base0 && j==bd->unit) - boot_blkdev=bd; - break; - } - if (boot_blkdev==bd) - bd->flags|=LTBDF_HAS_BEEN_RESET; - - switch (bd->type) { - case LTBDT_FDC: - p->type=PT_LT; - p->RBlks=&FDCRBlks; - p->WBlks=&FDCWBlks; - num_partition++; - break; - case LTBDT_RAM: - p->type=PT_LT; - p->RBlks=&RAMRBlks; - p->WBlks=&RAMWBlks; - num_partition++; - break; - case LTBDT_ATA: - InitBlkDev(bd,TRUE); - offset=0; - ext_base=INVALID_CLUSTER; - if (one_partition) { - p->type=PT_LT; - p->RBlks=&IDERBlks; - p->WBlks=&IDEWBlks; - p->size=bd->max_blk+1; - num_partition++; - //The following read is a test read. - //if it hangs, the drive is not supported. - ATAReadBlks(bd,&mbr,offset,1); - break; - } - while (TRUE) { - ATAReadBlks(bd,&mbr,offset,1); - if (mbr.signature!=0xAA55) - break; - j=-1; - for (i=0;i<4;i++) { - if (mbr.p[i].type!=0) { - p=&local_partitions[num_partition]; - MemSet(p,0,sizeof(LTPartition)); - p->drive=num_partition+'A'; - p->ch_L='L'; - p->ch_P='P'; - p->ch_E='E'; - p->bdev=bd; - p->RBlks=&IDERBlks; - p->WBlks=&IDEWBlks; - p->offset=mbr.p[i].offset+offset; - p->size =mbr.p[i].size; - p->type =mbr.p[i].type; - if (p->type==PT_LT) - InitLTPartition(p,TRUE); - else { - if (p->type==PT_FAT32+1) p->type=PT_FAT32; - if (p->type==PT_FAT32) { - ATAReadBlks(bd,&br,p->offset,1); - if (br.signature==PT_LT) - InitLTPartition(p,TRUE); - } - } - if (p->type==5 || p->type==0xF) - j=i; - else - num_partition++; - } - } - if (j<0) - break; - if (mbr.p[j].offset==0) - break; - if (ext_base==INVALID_CLUSTER) { - offset=mbr.p[j].offset; - ext_base=offset; - } else - offset=mbr.p[j].offset+ext_base; - } - break; - case LTBDT_ATAPI: - p->type=PT_ISO9660; - p->RBlks=&IDERBlks; - p->WBlks=&IDEWBlks; - p->size =CD_FILE_OFFSET; - num_partition++; - break; - case LTBDT_LT_FILE: - drname=ChangeExtension(bd->filename,"DVC"); - bd->filename=ANewStr(drname); - Free(drname); - p->type=PT_LT; - p->RBlks=&FileRBlks; - p->WBlks=&FileWBlks; - num_partition++; - break; - case LTBDT_NON_LT_FILE: - p->type=PT_LT; - p->offset=bd->non_lt_offset; - p->RBlks=&NonLTFileRBlks; - p->WBlks=&NonLTFileWBlks; - if (bd->flags & LTBDF_FORMAT) - p->size=bd->max_blk-bd->min_blk+1; - num_partition++; - break; - } - return num_partition-(bd->partition_base-'A'); -} - -void HintATA() -{ - void *base_PCI=0xF0000000; - void *base; - U4 *dd,d1,d2; - U1 *bb,d3; - U2 *ww; - base=base_PCI+0xF9000; - ww=base; - if (*ww==0x8086) { - dd=base+0x10; - d1=*dd; - dd=base+0x14; - d2=*dd; - bb=base+0x3C; - d3=*bb; - if (d1&1 && d2&1) { - if (IDEProbe(d1&-8,d2&-4,0)) - coutln "$$FG,PURPLE$$Primary IDE$$FG$$\r\nBase0: 0x",d1&-8,"\r\nBase1: 0x",d2&-4,"\r\nIrq: 0x",d3," Unit 0"; - if (IDEProbe(d1&-8,d2&-4,1)) - coutln "$$FG,PURPLE$$Primary IDE$$FG$$\r\nBase0: 0x",d1&-8,"\r\nBase1: 0x",d2&-4,"\r\nIrq: 0x",d3," Unit 1"; - } - dd=base+0x18; - d1=*dd; - dd=base+0x1C; - d2=*dd; - if (d1&1 && d2&1) { - if (IDEProbe(d1&-8,d2&-4,0)) - coutln "$$FG,PURPLE$$Secondary IDE$$FG$$\r\nBase0: 0x",d1&-8,"\r\nBase1: 0x",d2&-4,"\r\nIrq: 0x",d3," Unit 0"; - if (IDEProbe(d1&-8,d2&-4,1)) - coutln "$$FG,PURPLE$$Secondary IDE$$FG$$\r\nBase0: 0x",d1&-8,"\r\nBase1: 0x",d2&-4,"\r\nIrq: 0x",d3," Unit 1"; - } - } else { - d1=0x1F0; - d2=0x3F6; - d3=14; - if (IDEProbe(d1,d2,0)) - coutln "$$FG,PURPLE$$Primary IDE$$FG$$\r\nBase0: 0x",d1,"\r\nBase1: 0x",d2,"\r\nIrq: 0x",d3," Unit 0"; - if (IDEProbe(d1,d2,1)) - coutln "$$FG,PURPLE$$Primary IDE$$FG$$\r\nBase0: 0x",d1,"\r\nBase1: 0x",d2,"\r\nIrq: 0x",d3," Unit 1"; - - d1=0x170; - d2=0x376; - d3=15; - if (IDEProbe(d1,d2,0)) - coutln "$$FG,PURPLE$$Secondary IDE$$FG$$\r\nBase0: 0x",d1,"\r\nBase1: 0x",d2,"\r\nIrq: 0x",d3," Unit 0"; - if (IDEProbe(d1,d2,1)) - coutln "$$FG,PURPLE$$Secondary IDE$$FG$$\r\nBase0: 0x",d1,"\r\nBase1: 0x",d2,"\r\nIrq: 0x",d3," Unit 1"; - } - base=base_PCI+0xFA000; - ww=base; - if (*ww==0x8086) { - dd=base+0x10; - d1=*dd; - dd=base+0x14; - d2=*dd; - bb=base+0x3C; - d3=*bb; - if (d1&1 && d2&1) { - if (IDEProbe(d1&-8,d2&-4,0)) - coutln "$$FG,PURPLE$$Primary SATA$$FG$$\r\nBase0: 0x",d1&-8,"\r\nBase1: 0x",d2&-4,"\r\nIrq: 0x",d3," Unit 0"; - if (IDEProbe(d1&-8,d2&-4,1)) - coutln "$$FG,PURPLE$$Primary SATA$$FG$$\r\nBase0: 0x",d1&-8,"\r\nBase1: 0x",d2&-4,"\r\nIrq: 0x",d3," Unit 1"; - } - dd=base+0x18; - d1=*dd; - dd=base+0x1C; - d2=*dd; - if (d1&1 && d2&1) { - if (IDEProbe(d1&-8,d2&-4,0)) - coutln "$$FG,PURPLE$$Secondary SATA$$FG$$\r\nBase0: 0x",d1&-8,"\r\nBase1: 0x",d2&-4,"\r\nIrq: 0x",d3,"Unit 0"; - if (IDEProbe(d1&-8,d2&-4,1)) - coutln "$$FG,PURPLE$$Secondary SATA$$FG$$\r\nBase0: 0x",d1&-8,"\r\nBase1: 0x",d2&-4,"\r\nIrq: 0x",d3,"Unit 1"; - } - } - CrLf; - CrLf; -} - - -void AddDrives(BoolU4 repartition=FALSE) -{ - LTBlkDev *bd; - I8 base_partition,drive_letter,type,k; - I1 buf[32],buf2[128],buf3[128],buf4[128]; - BoolU4 format,add; - void my_PartitionDrive(I1 drive); - do { - PartitionRep; - PutSysText("ST_ADDDRIVES1"); - base_partition=ToUpper(GetChar)-'A'; - CrLf; - if (base_partition>=0 && base_partition<32) { - - PutSysText("ST_ADDDRIVES2"); - type=GetChar-'0'; - CrLf; - - k=0; - - if (type==LTBDT_LT_FILE) { - PutSysText("ST_ADDDRIVES3"); - GetS(buf2,128); - PutSysText("ST_ADDDRIVES4"); - format=YorN; - *buf=0; - } else if (type==LTBDT_ATA || type==LTBDT_ATAPI) { - HintATA; - PutSysText("ST_ADDDRIVES12"); - GetS(buf2,128); - PutSysText("ST_ADDDRIVES13"); - GetS(buf3,128); - PutSysText("ST_ADDDRIVES14"); - GetS(buf4,128); - PutSysText("ST_ADDDRIVES7"); - k=GetChar-'0'; - CrLf; - } - if (type==LTBDT_NON_LT_FILE) { - PutSysText("ST_ADDDRIVES15"); - drive_letter=GetChar; - CrLf; - PutSysText("ST_ADDDRIVES16"); - GetS(buf2,128); - } - if (type==LTBDT_RAM || - type==LTBDT_LT_FILE && format) { - PutSysText("ST_ADDDRIVES5"); - GetS(buf,32); - } else if (type==LTBDT_FDC) { - PutSysText("ST_ADDDRIVES7"); - k=GetChar-'0'; - CrLf; - } - - if (type>LTBDT_NULL && type<=LTBDT_NON_LT_FILE && - k>=0 && k<=1) { - bd=local_blkdevs+sizeof(LTBlkDev)*(num_blkdevs++); - bd->partition_base=base_partition+'A'; - bd->unit=k; - - if (type==LTBDT_FDC) { - bd->base0=0x3F0; - bd->irq=6; - } else if (type==LTBDT_ATA || - type==LTBDT_ATAPI) { - bd->base0=AtoI(buf2); - bd->base1=AtoI(buf3); - bd->irq=AtoI(buf4); - } - - if (type==LTBDT_FDC || - type==LTBDT_ATAPI) - bd->flags=LTBDF_REMOVABLE; - else - bd->flags=0; - if (type!=LTBDT_RAM) - bd->flags|=LTBDF_READ_CACHE; - - if (type==LTBDT_ATAPI) { - bd->blk_size=CD_BLK_SIZE; - bd->flags|=LTBDF_READ_ONLY; - } else - bd->blk_size=BLK_SIZE; - if (type==LTBDT_RAM || - type==LTBDT_LT_FILE && format) { - bd->max_blk=AtoI(buf)-1; - if (bd->max_blkmax_blk=fdc_max_sector; - } else if (type==LTBDT_FDC) - bd->max_blk=fdc_max_sector; - else - bd->max_blk=0xEFFFFFFF; - if (type==LTBDT_LT_FILE) { - bd->filename=ANewStr(buf2); - if (format) - bd->flags=bd->flags|LTBDF_FORMAT; - } else if (type==LTBDT_NON_LT_FILE) { - bd->non_lt_drive=drive_letter; - bd->non_lt_offset=AtoI(buf2); - } - bd->type=type; - add=TRUE; - if (type==LTBDT_ATA && repartition) { - if (my_PartitionDrive=FindExtern("PartitionDrive")) { - PutSysText("ST_ADDDRIVES11"); - if (YorN) { - if (!AddBlkDev(bd,TRUE)) - PutSysText("ST_FAILED"); - else - my_PartitionDrive(bd->partition_base); - add=FALSE; - } - } - } - if (add) { - if (!AddBlkDev(bd,FALSE)) - PutSysText("ST_FAILED"); - } - } else - PutSysText("ST_FAILED"); - } - } while (base_partition>=0 && base_partition<32); -} - -void SetObtainedBaseUnit(LTBlkDev *bd) -{ - if (sys_boot_code.u1[1]==0xE0) - bd->unit=0; - else - bd->unit=1; - if (sys_boot_code.u2[1]==0x1F0) { - bd->base0=0x1F0; - bd->base1=0x3F6; - bd->irq=14; - } else { - bd->base0=0x170; - bd->base1=0x376; - bd->irq=15; - } -} - -void InitAllBlkDevs() -{ - LTBlkDev *bd; - I8 i; - - num_blkdevs=0; - boot_blkdev=NULL; - local_blkdevs=AMAllocZ(sizeof(LTBlkDev)<<5); - - monitor_floppy_tss=NULL; - fdc_retries=2; - fdc_drive_heads=2; - fdc_disk_cylinders=80; - fdc_disk_sectors=18; - fdc_max_sector=fdc_drive_heads*fdc_disk_cylinders*fdc_disk_sectors-1; - fdc_dma_buf=0xD000; - ext[EXT_IRQ06]=&Irq06Handler; - - ext[EXT_IRQ0B]=&Irq0BHandler; - ext[EXT_IRQ0E]=&Irq0EHandler; - ext[EXT_IRQ0F]=&Irq0FHandler; - - local_partitions=AMAllocZ(sizeof(LTPartition)<<5); - for (i=0;i<32;i++) - drive_to_partition[i]=&local_partitions[i]; - dc_col=0; - - #exe { - I8 base_partition,type,drive_letter,k,n,num=0; - I1 buf[32],buf2[128],buf3[128],buf4[128]; - BoolU4 format; - PutSysText("ST_ADDDRIVES0"); - do { - PutSysText("ST_ADDDRIVES1"); - base_partition=ToUpper(GetChar)-'A'; - CrLf; - if (base_partition>=0 && base_partition<32) { - PutSysText("ST_ADDDRIVES2"); - type=GetChar-'0'; - CrLf; - - k=0; - if (type==LTBDT_LT_FILE) { - PutSysText("ST_ADDDRIVES3"); - GetS(buf2,128); - PutSysText("ST_ADDDRIVES4"); - format=YorN; - *buf=0; - } - if (type==LTBDT_RAM || - type==LTBDT_LT_FILE && format) { - PutSysText("ST_ADDDRIVES5"); - GetS(buf,32); - } else if (type==LTBDT_ATA || - type==LTBDT_ATAPI) { - HintATA; - if (type==LTBDT_ATAPI) - PutSysText("ST_ADDDRIVES12a"); - PutSysText("ST_ADDDRIVES12"); - GetS(buf2,128); - if (type!=LTBDT_ATAPI || *buf2) { - PutSysText("ST_ADDDRIVES13"); - GetS(buf3,128); - PutSysText("ST_ADDDRIVES14"); - GetS(buf4,128); - PutSysText("ST_ADDDRIVES7"); - k=GetChar-'0'; - CrLf; - } - } - if (type==LTBDT_NON_LT_FILE) { - PutSysText("ST_ADDDRIVES15"); - drive_letter=GetChar; - CrLf; - PutSysText("ST_ADDDRIVES16"); - GetS(buf2,128); - } - - if (type>LTBDT_NULL && type<=LTBDT_NON_LT_FILE && - k>=0 && k<=1) { - ExePrintF("bd=local_blkdevs+sizeof(LTBlkDev)*(num_blkdevs++);"); - ExePrintF("bd->partition_base=%d;", - base_partition+'A'); - - ExePrintF("bd->unit=%d;",k); - - if (type==LTBDT_FDC) - ExePrintF("bd->base0=0x3F0;bd->irq=6;"); - else if (type==LTBDT_ATA || type==LTBDT_ATAPI) { - if (type==LTBDT_ATAPI && !*buf2) - ExePrintF("SetObtainedBaseUnit(bd);"); - else - ExePrintF("bd->base0=%s;bd->base1=%s;bd->irq=%s;", - buf2,buf3,buf4); - } - if (type==LTBDT_FDC || type==LTBDT_ATAPI) - ExePrintF("bd->flags=LTBDF_REMOVABLE;"); - else - ExePrintF("bd->flags=0;"); - if (type!=LTBDT_RAM) - ExePrintF("bd->flags=bd->flags|LTBDF_READ_CACHE;"); - - if (type==LTBDT_ATAPI) { - ExePrintF("bd->blk_size=CD_BLK_SIZE;"); - ExePrintF("bd->flags=bd->flags | LTBDF_READ_ONLY;"); - } else - ExePrintF("bd->blk_size=BLK_SIZE;"); - if (type==LTBDT_RAM || - type==LTBDT_LT_FILE && format) { - n=AtoI(buf)-1; - if (nmax_blk=%d;",n); - } else if (type==LTBDT_FDC) - ExePrintF("bd->max_blk=fdc_max_sector;"); - else - ExePrintF("bd->max_blk=0xEFFFFFFF;"); - - if (type==LTBDT_LT_FILE) { - ExePrintF("bd->filename=ANewStr(\"%s\");",buf2); - if (format) - ExePrintF("bd->flags=bd->flags|LTBDF_FORMAT;"); - } else if (type==LTBDT_NON_LT_FILE) { - ExePrintF("bd->non_lt_drive=%d;",drive_letter); - n=AtoI(buf2); - ExePrintF("bd->non_lt_offset=%d;",n); - } - ExePrintF("bd->type=%d;",type); - ExePrintF("AddBlkDev(bd,FALSE);"); - num++; - } else - PutSysText("ST_FAILED"); - } - } while (num==0 || base_partition>=0 && base_partition<32); - ExePrintF("default_drive=\'%C\';",insboot_dst_drive); - } - PartitionRep; -} - - \ No newline at end of file diff --git a/LT/OSMain/Disk/DiskCache.CPZ b/LT/OSMain/Disk/DiskCache.CPZ deleted file mode 100644 index c8ccbb928fd7603a73f54372f18ae86ac3c3151a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5100 zcmXTR&rDJ932|}u%*!lsPE5{7)d;mvD9)@(jnB-B4>c^-p zm89ktBwK?-LoF0Cb&~T+z#OOi{G3n|h5Ve9_=2L;)ZBs++W-iy;qT_AY0b+8(&Fe= zl$xrMQ<9t#pOjdf3KCXOfC;7~$7duKXT+BzCgnh-GSd_^klbTqP+??XV4$f0c9ntx z+#p-OP#+(#J3xXc1|dtqT!iFGh!YePic(8Ti}Jum)Ph`!Fxt`AF()TK8QC2WO*thg z$?60jP#+WrEF6Q1Hwv4lGU8 z0PD~}aXQ2S3JPE;T|2OsK`~_u7JzC8vvuvj-o+)EmXnxXY-<44Q42{CV2eQNA<=FN z3vE!cj1O^i@^JKwT|C)(mRms*@j14j zqy$cFAbzs09Vo?tT?yjH=Yc~hJ_kLRK$6Kwfelp#*O-i?0U`$}IYIhROan_oY74Mj z9=f3rIegKA9NHk?xMk+0IOSw(_=E%`7L{a{Waj57Xcg#$S}1`02CcA&i34PVL5@q- z;pO54B~)-^CL1Ec4rDOc@8l+W1$gxYE+N3SL4w8*DI~#GlxJk-q$)s4VMVAKczqRN(x4d87gQcm8R(^K%x#zC+C&G3L%W>0XvhJhy{fbIYkp%EJ0%; zIj=-l7apwO&oNme802rGx^gfiMj@*`TDLtqm0hg+Fp}0n?vU znx<_FGZd^AUj&0Al$Q%$iFoFfCFW$NB$lM2MJy}=iHRzVNQMLyxIoV-DutA*$%bIZ zQ8!w_VWo)HYD0}?Ls%|=IS1?vNF;-`gTmgn0Imslj3UJqG<$$j23!=Bc_ED=kTBF} zaAE;9j3BOn+6~tOb`ut9U?lw04IeYaL)iO3Fw3xDrmto zw^mY4HaK@{A!To}QU^E?sGAPJZi4kEz(J3eyFspp~gr z#+JT7MIyB72(?f^N?JZ4PC3~wsbvaUNhzsiwgtL&AQ~KK&Kar6*)VwxkT4{6ppghN z5+tZ=7v$(0pORUet(}yUjUEEYc_nB<5JR99U`S9Xs9T2Sjc|H;BPF#AzZXCrCEXit znK`L+i4IUcQ-nlB8nhxU$tcP%*Kmz+b`1!L4{!_$@eJ|w_tP8q`ntylwa=aj^!fMg+V w$Cb&Uk(pGWYX@;?QUOZ9So3lrXIi+gAVG=ZoC0tS2g*f*$yX4EV)YdR0NxVwqW}N^ diff --git a/LT/OSMain/Disk/DiskDir.CPZ b/LT/OSMain/Disk/DiskDir.CPZ deleted file mode 100644 index 871a14f702771af65d3af5cf74e41d50c39e151b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4044 zcmZ?D&(8_9Q1DAF_X%;yEON~&DXP@)2?oqlXbu*TZ0UMYIk$=33j#S<*Mc70>QHU z%oGKe)EtCMH4sdwqmf+(wnS3_>{0~Ou_@usp;Y3JPEj#3G1$U_SG-P;k!AEl4a%1v?zYUs|b#D9J%9)d&`@o`woZ zrD=xIJ|XeGjuG*0o<6RAj=rw(KCXV+hOs(HrD;Yu{=}k!}jaxYV5DR9NB)E-7*@sMG)jjSkd3$jJ*KZ3L1Axd2%@C^a{~ zEY&BmxFk3=9b$-*o)RcDjA8MJp~OfBs>B4Q1QZr2hPEKPatlDF7=uhO(S!yA!UquN z!}$meh9C__5c6Q^1e^nc^NUKr$;2%)C$$(gt$gC zvszFg1Ica4c_nrT%M=t~&aw4%%*n}5)=17P(JIcYO3hEx00)JZCM0}77Gy%b31TB# z26Lu@0;WSbVHQMZYHPNp)Wa&XK^X*QKBRQz zR8Rl~C^(rylC~PM0&89_sJ|eggCknNu>;F5V6&h}KDe^jEi*3#Vlt?%EzitJ(FwIs zNGnZ?Ps>S6FSa#+Rf`maXfO<_qA)qKTuf$D5NkzrSTOmeCwOB{hz$7I`Nhd}rz{d*2O^H!b zQBl(2<>CaHt^?8yD$~IXSU`dz6qa`|OoSNbX{B0>YEn{Z8bp7s0!Tls-Xq0{Zq#(5 z8$Kt3d%i$Zw_mxG)g0#2OZObTn8m*(WaJb;w<6|@S7C_%tQ zogugc(ScL~kR~E1Jr_e-q);U&1sT|W15j!Jg)=AxKvcogZE}8TiGq@f3N##CGK*4^ zOY(~<6~N&UkY5m5;GBXS5a3Lppio?5>s(p{3Lucdkdh13QirF1kij{53QGBD3Q9V~ zC7@)k6jKzF7a#B97~&cquMi&};^_-wIQs?!dq%m&E5wKTIs5wt1i1zWLj;s~xj2>L zLBQE3G&saH2*gx^x&V~4A$BV$;Ia&Cl>*ovh4^@|q46;N;6ztk0ty>Y%p%u8$ZZU8 zc)@BcNL>eY0FtLcS&S2ws8n4PR6`V04J;xQz_}Y*>ly0Wr6iW5mSpCpf&zn(D5$9b zavLYeZ;-Bmp{`wOML}X-N@_|xNE%{{f`WpQf|3r{orb!0$vLIPC8status,0,32); - i=0; - while (i<32) { - b=InP(bdev->base0+FDC_STATUS); - if (b & 0x80) { - if (b & 0x40) - bdev->status[i++]=InP(bdev->base0+FDC_DATA); - else - break; - } - SwapInNext; - } - if (i==32) - throw(EXCEPT_FDC,2); - bdev->status[0]=bdev->status[0] & 0xC8; //clear non-error bits - bdev->last_jiffy=Jiffies; -} - -void FDCWaitIrq(LTBlkDev *bdev) -{ - BoolU4 old_flags=GetFlags; - Sti; - while (!LBtr(&sema_irqs[bdev->irq],0)) { -/* - if (!(InP(bdev->base0+FDC_p0) & 0x80)) //Pending IRQ? - throw(EXCEPT_FDC,1); -*/ - SwapInNext; - } - SetFlags(old_flags); - FDCFlushStatus(bdev); -} - - -void FDCSendCmdU1(LTBlkDev *bdev,U1 v) -{ - FDCFlushStatus(bdev); - OutP(bdev->base0+FDC_DATA,v); -} - -void FDCSeek(LTBlkDev *bdev,U1 cyl, U1 head) -{ - FDCSendCmdU1(bdev,0x0F); - FDCSendCmdU1(bdev,head<<2); - FDCSendCmdU1(bdev,cyl); - FDCWaitIrq(bdev); -} - -void FDCFree(LTBlkDev *bdev) -{ - LBtr(&sema_irq_busy[bdev->irq],0); -} - -void MonitorFDCTsk() -{ - LTBlkDev *bdev; - bdev=Fs->user_data0; - CheckLTBlkDev(bdev); - while (TRUE) { - if (!LBts(&sema_irq_busy[bdev->irq],0)) { - if (bdev->last_jiffy) { - if (Jiffies > bdev->last_jiffy+JIFFY_FREQ<<1) { - FDCSeek(bdev,0,0); - FDCSeek(bdev,0,1); - OutP(bdev->base0+FDC_DOR,0x00); - bdev->last_jiffy=0; - } - } - FDCFree(bdev); - } - SwapInNext; - } -} - - -void FDCGet(LTBlkDev *bdev) -{ - CheckLTBlkDev(bdev); - while (LBts(&sema_irq_busy[bdev->irq],0)) - SwapInNext; - LBtr(&sema_irqs[bdev->irq],0); - - if (!bdev->last_jiffy) { - bdev->last_jiffy=Jiffies; - OutP(bdev->base0+FDC_DOR,0x00); - BusyWait(100); - OutP(bdev->base0+FDC_DOR,0x1C); //Motor ON - FDCWaitIrq(bdev); - OutP(bdev->base0+FDC_DCR,0x00); //step,Load, Unload specs - FDCSendCmdU1(bdev,0x03); - FDCSendCmdU1(bdev,0xCF); - FDCSendCmdU1(bdev,0x10); - FDCWaitIrq(bdev); - FDCSendCmdU1(bdev,0x07); //Recalibrate - FDCSendCmdU1(bdev,0x00); - FDCWaitIrq(bdev); - } -} - -void FDCReset(LTBlkDev *bdev) -{ - CheckLTBlkDev(bdev); - OutP(0x0A,0x42); //Shut down old DMA - OutP(0x09,0x02); - bdev->last_jiffy=0; - LBtr(&sema_irq_busy[bdev->irq],0); - FDCGet(bdev); -} - -BoolU8 FDCReadTrack(LTBlkDev *bdev,U1 cyl, U1 head,U8 blk) -{ - I8 i; - U8 size=fdc_disk_sectors<>8) & 0xFF); - OutP(0x81,fdc_dma_buf>>16); //set page - OutP(0x0C,0); - OutP(0x05,size.u1[0]); //cnt - OutP(0x05,size.u1[1]); - OutP(0x0A,0x02); //Start new DMA - OutP(0x09,0x06); - - FDCSendCmdU1(bdev,0x62); - FDCSendCmdU1(bdev,head<<2); - FDCSendCmdU1(bdev,cyl); - FDCSendCmdU1(bdev,head); - FDCSendCmdU1(bdev,1); //sector - FDCSendCmdU1(bdev,BLK_SIZE>>8); - FDCSendCmdU1(bdev,fdc_disk_sectors); //last sec - FDCSendCmdU1(bdev,0x1B); //gap - FDCSendCmdU1(bdev,0xFF); - FDCWaitIrq(bdev); - if (bdev->status[0] || bdev->status[1] || - bdev->status[2]) { - PrintFErr("FDC Read:%X,%X,%X\r\n",bdev->status[2],bdev->status[1],bdev->status[0]); - FDCReset(bdev); - } else - return TRUE; - } - coutln "FDC Read Failed!!! Blk:",blk; - return FALSE; -} - -BoolU8 FDCRBlks(LTPartition *p,U1 *buf, U8 blk, U8 cnt) -{ - LTCacheBlk *tempc; - BoolU4 okay=TRUE; - U8 n,blk2; - U1 cyl,head,sec; - LTBlkDev *bdev=p->bdev; - CheckLTBlkDev(bdev); - while (cnt>0) { - if (bdev->flags & LTBDF_READ_CACHE) { - while (cnt) { - tempc=LTDCFindBlk(p,blk); //TODO preempt - if (tempc) { - MemCpy(buf,&tempc->body,BLK_SIZE); - cnt--; - buf+=BLK_SIZE; - blk++; - } else - break; - } - } - if (cnt) { - n=cnt; - if (n>bdev->max_reads) - n=bdev->max_reads; - blk2=blk; - sec=blk2%fdc_disk_sectors+1;blk2=blk2/fdc_disk_sectors; - head=blk2%fdc_drive_heads; - cyl=blk2/fdc_drive_heads; - if (!FDCReadTrack(bdev,cyl,head,blk-(sec-1))) - okay=FALSE; - MemCpy(buf,fdc_dma_buf+(sec-1)<flags & LTBDF_READ_CACHE) - LTDCAdd(DriveToPartition(bdev->partition_base), - fdc_dma_buf,blk-(sec-1),fdc_disk_sectors); - buf+=n<max_writes<>8) & 0xFF); - OutP(0x81,fdc_dma_buf>>16); //set page - OutP(0x0C,0); - OutP(0x05,size.u1[0]); //cnt - OutP(0x05,size.u1[1]); - OutP(0x0A,0x02); //Start new DMA - OutP(0x09,0x06); - - FDCSendCmdU1(bdev,0xC5); - FDCSendCmdU1(bdev,head<<2); - FDCSendCmdU1(bdev,cyl); - FDCSendCmdU1(bdev,head); - FDCSendCmdU1(bdev,sec); - FDCSendCmdU1(bdev,BLK_SIZE>>8); - FDCSendCmdU1(bdev,fdc_disk_sectors); //last sec - FDCSendCmdU1(bdev,0x1B); //gap - FDCSendCmdU1(bdev,0xFF); - FDCWaitIrq(bdev); - if (bdev->status[2] || bdev->status[1] || - bdev->status[0]) { - PrintFErr("FDC Write:%X,%X,%X\r\n",bdev->status[0],bdev->status[1],bdev->status[2]); - FDCReset(bdev); - } else - return TRUE; - } - coutln "FDC Write Failed!!! Blk:",blk; - return FALSE; -} - -BoolU8 FDCWBlks(LTPartition *p,U1 *buf, U8 blk, U8 cnt) -{ - BoolU4 okay=TRUE; - U8 n,blk2; - U1 cyl,head,sec; - LTBlkDev *bdev=p->bdev; - CheckLTBlkDev(bdev); - while (cnt>0) { - n=cnt; - if (n>bdev->max_writes) - n=bdev->max_writes; - blk2=blk; - sec=blk2%fdc_disk_sectors+1;blk2=blk2/fdc_disk_sectors; - head=blk2%fdc_drive_heads; - cyl=blk2/fdc_drive_heads; - if (!FDCWriteBlk2(bdev,buf,cyl,head,sec,blk)) - okay=FALSE; - buf+=n<3JN|U0f|K=nI)O|c?w!-1-5Crb_LcD36K$v$;qk3#R^(!iMD>J zb}6ZPX{9+i@p*~4shVJ25W(b}(&CcTB3rP7oFSZIjkE$C109Xzyb|rS0$sb}f@EDo zO?@a+2jMcEkf2akWYdZ>t5R)~^Ga-NoP50FgFT~M@rR5~17pvLU`GmN|`?-e4yLtM!TJv(%@^bNVg<2@M1!q)STi}6nO)fsgU>%uFOkDL^X=JP)8}KDS#a1 z6zUf5;u#bY2@i#EM67@UAWhc}8fWoIrD-|{u8tu%B)|m3(+VJ0BKsI_I5@Oxq5kIO zf&`g@mYaV;YMzFtp@LRgW=<+7spx`Az~(C`6)EW` zm4mRhl0sr$ih@$Il7a>zrGNtuW=)!{qc1qUMQMNnFh30%GMW%)LzF?1E+{#J9Se2` zECK6i!PBx4SQaDC*!m|YmlhSJ<|U^VYk-}oqn@k|G9MI6h(NRT^b2$J@pOrI_6ZFR zaSZ~S21+MMIoa`frMb4CcvMgTC4l6-60k48p_-dm5ucQk4NB{}hG0#I6p*HC2b0ES zdS*^)JS-MLwqR8U^R1DsV^VQ`PH9OhD4Y8w=B8@Eq6g$51qFCu*gE>9mIs#mZf7b|sYsskXKOA@M#T(11Y1uPvw~ z0EYueJwhCwia}utN=7xdpj7Vc?-%0f9_k+oDH;ge>EU~hX;9vxPn=JuC6Y@@nAkU*dSiSVyHHf zp%6uGnRzLokU&HztR!@E^a*x_6aZj{a6(EccxtePv#fc!I6=NZiYZ<$PL!mr0VxdA zG__%6xvrt6ogIt=F4)0opA%LjLOlWvUj>C)1w^I*7tKg620IlJnqXUz>n9XvDky;E zAz=tkJV@m>SQ1Np2g^Dz3qW2)s#p{hf=h~=3o4-%BeIYCk>j)`$P^v6Q07GR^BMK@AQ2{m7FVx2ewJvqe$uGuI zNh8MT4}o-N_J6cmVUQi1FM+X!jHfOD84 zD3O6vFVu?AVAptmAD4I+#}L;LPhVGXX$6b1l*E$MlFZyxTldrw=hC8(%-mF;5SPS~ zR9J?^a4)0{1BySA8%&&#?8!;AMtG*>#MRCMg#aY=Vl9GAP>Wy%1!#<8Ngzma$SD~X zcTkNGF03U3Zo#FNKpRZZRt2nS4Qjw7ToSdawoXxT^(3DJUe{20??X7?e;8kQ$Vr8c`=1vsnpt1vGbp><2fV!7VTg1-Brloa|!c zkT+D&0<}{^EfhfQC7%#Cr+7cth>&i)dCFzR0|YA)dI|JXsZY*je#Q?S`r|&SYTy6B=`z+KtTqL7pI(T zjRKuyO>I!(1=TMgLm}y20Tia%phhUzxsZ$pGb+;-lmLngKv4vWYmo0V?LgrMYCR%1 zKamnLI9w5d3eu;bkg1DJ7uZU8T@N-L8ZMwz<(FCk%ZGlYxgZbdWI|dd(6~}i06S0> z&4DOxaSKLd<}{sT9Z(1$`(8mI%NEp2wE^`|Gc^_LL6xe46)3UjWXJqE2Du7&T zXIor=C}BW>McAJ>{h))ZjS7l7u%j^*z}*RUHX;I`$q69jw&kM7X$DS-h;kB?IQ0=( z43xKMS1LmbolN9X)ey-C$+no~v>~*{N90M68<+ zoM{KD=Q%-z2d1SunYxhSE0C?6NkyrN+0bx9bR#)4b#fuaw0hWAf*%ZMja(}3nc5o%4W`FNZfJ~idJxZV2M%i5CGN~ z#h#bI1ur~lLlawaUI}^)hb zpbM&v;R4|51(7=kRrrFlVO|M1-$4=xpo$UXGlVKoX^Ex^Y6~bdAnH)26bKuOq8yj`;FJvt255Hxqz-H` Nv{nR#GNeht002GEIm7?} diff --git a/LT/OSMain/Disk/FileSysISO.CPZ b/LT/OSMain/Disk/FileSysISO.CPZ deleted file mode 100644 index e5ba6282fb990a148bbc3a498b01f3dad06eef2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6724 zcmXTR&rDJ9%*!nC4E7I5EGo$?$;{8w@Ckvl6|@R;obvN?LQND(^K$Z&vo(3Ss(HB- z6hbW&GHngbtU+v$=Az8p#G*=<)Z*l#%z~2qA_c9?;(S|Q$DEw}WDRGRcqbq4_+ZZ{ zS524>m&_v9ypp0y1+A1+YhEspIUpX`aG(6-Y`7CN3Ltt4bnQwi3sP+ZLgGDx{VmPR z48TSe=-L$*B-6@7~&rU*H@BJ zlwYpl8sY335E38Y7!=|e;_2_FV*m*mh*>Z@GPSkAHq?Ry3UuvK5=# zL5a)H(bqNJ$JI~U5aO>qTad}nSOIx5&(_vZK}}6T5hM;zb1B6o(FU=$>U!#6(`yk4 z1g0LO+}73*mktF5kP(I$MnKbao}HboA=qdIg)C@-P*6zAFH+FRv^B8Kw8^v1)YgU@ zuAop{lniw=C^A3}hd4mpT3wTuixW95L*l`yL?bOTCp9lIH#I&vBeAGBJ}I*#H?cqm zq)!uUGAGEGEIV5)!38o?L7^zMq_ikc0i4OKdAT@2UdqzejztbbkaHlx!^_2qrU5Jm zN*dtg50!MzNKMXm%gjjyM|nzd2`FMvQbcA>j!%e7W|3#GKYH;87Kav9C8@auxjLS~ z{>Y^l_5#weDA_qbx1cDsxH!0^s5H4mK`W^=4IKU`i3=+vEp-5^B_8)(u8s|R2j%#aE=Etpm`YVKB#$M2N{Td~f*=bamVx3HWag%VOVfOx5SPS~R1L7-Kr#rckjzq0Q}79a*yZf+8xZ6g9PH`>PH>>~kW`um ztBF9xRzb3j4N46GF;YPx$Qe@TflB_Q(li~Y1<=6LG1P$;G+@UnC_trCD+&_xQc_dE z1)ptFX_~GbiV##axU5SmO@mklOTHlIVKoOT2#N@>0nn5TDUhsrxlmJYUW#Y1KPY0* z6K|-6LUL&lsHl&Jc>`49f#OUDk-QYNAm-}ua&dBkoTLCvqA8h0@%ecAi3gAow@g&StNX~&Z)FAGGr~s!Rh?imY9JmrtP{`D> z#p)}l4v2P8)`bc{n}nHmpb&)zWSWA8B1EaKT~2CVdPxSjgyDpUfvZZ+OkG{5843yr zmvSPP*x*c{18RqXBL$QtKrssPAGmhZ0xN(R4T*fk;F2Qe+yV`dQXPmaOd4D#fQn>9 z^;Mt)&CC#YA%YZ~vq3qfD79EYO%0US6*WNV4wS>e?GX)#PF*`t`HWPig351AxE6RJ z0Mdg;hXSNV2gOKweo4MUYDH#Ad`U)TF{oY#iGuPRFBjNZP=A1$))3iRUM@}$&eXMq z_yZQ^AZdt*Hl_^7R0RcStk?2#!L77{#3DF7!3$wX=)#LIh-R#qYzCz!;wrR3B{Vc^=z!Ru00+l?sD*+SC==^|d;{Wu;t5tZ7bTYKU}dp9tK4j$nUmr&w}Mj zN{V3GK!Jy(jjr`anu3N~CZg7c`yXCQ!{b~nB^8o|bwEJ_VM5x{ARj`~A;>47%%%lm z*rufFfoO2xgVexcGdZusRwE@<4-|CTFhLLpRO}=3;W|NS1=@v&$tUNPXu;SZy|7LW z*dmbCP)WEM$+n1Epg;#)>LVu}h=;&_14TQ?7>J)VK+PF&J2NF!50v^fkqRW_Mjogm zRg_o`DG?Ksp~X13CkKLh!Ci4sMC)Ld7_b5iv%CU%2cvNT8IGYsOAu^2Qa;77 z307{w^DU@W_NjF+^B?AK}aE~g;Ww1gJYpQGbaTU3u&ck@!-xJ zN?)NMu_!gK1YE8n;sriRqo7q_ixEs<*Q4|fKm`G)Yha`U8YnC%DFQ3OjCpKz1^;1Q)4%vvJa@1R%(WqwFe2C<9u#yfSJ z?ns3>)+!y*aL4CmP`p9wYIvH@M2ZDySqAYkBnVK`HOLtdS#XpnfQFI5EO1gyDorzj zmf!@M?O59Apxmkm?tmjT&mnm!sWc7TK!@-Ut#nkkLHqQuQ~@eeu?@q33<25YhCFJ7 znL5Df4qW4blLI*KbAknR?Vx!GLV=sKX$l%nB^qjoEaw)Q79Zs592ykt3Tk`9h8sY2 z8d6Q@;u!>LhC_`7l@`$kv5KHkM2LM*FX`IlrB;;KLh=R3K2QM!9!vu3gouEdx^`)$ zIXUqllWZN6it}?yOHy4ji$F~_^bsFU1qJ66EP_yTic6DhQHmCDv4Zd*SQ#jZK+I9n z(*u`XoX|J{g|LPq%y>+1g9AkoGt9g~gF`?gPQjq+5Y)M-sZqe93>LH?V_-EdNOgE- zP70`<0P?U;W^suI*wtXSLUJ&q@x@7%fQ4BE^Cc+M!65<(190caB^A=Q0}nw$6oQn1 u5+SJeg?6Iws>;*_n<5VEQHo0@I(Zz!WjTBiK|Hf diff --git a/LT/OSMain/Disk/FileSysLT.CPZ b/LT/OSMain/Disk/FileSysLT.CPZ deleted file mode 100644 index 3539f01..0000000 --- a/LT/OSMain/Disk/FileSysLT.CPZ +++ /dev/null @@ -1,653 +0,0 @@ -void FreeLTFreeList(LTPartition *p,BoolU4 unlock) -{ - LTFreeList *tempf,*tempf1; - try { - LockPartition(p); - - if (tempf=p->next_free) { - while (tempf!=&p->next_free) { - tempf1=tempf->next; - AFree(tempf); - tempf=tempf1; - } - } - p->next_free=NULL; - if (unlock) - UnlockPartition(p); - } catch - if (unlock) - UnlockPartition(p); -} - -void BuildLTFreeList(LTPartition *p,BoolU4 unlock) -{ - LTFreeList *tempf; - U8 i,first=0, - max_cluster=(p->size+p->offset-p->data)/p->spc; - - try { - LockPartition(p); - if (p->next_free) - FreeLTFreeList(p,FALSE); - p->next_free=&p->next_free; - p->last_free=&p->next_free; - while (firstcur_MAP_blk,(first+i)&(BLK_SIZE<<3-1))) - break; - else - i++; - } - if (i) { - tempf=AMAlloc(sizeof(LTFreeList)); - tempf->size=i; - tempf->start=first; - InsQue(tempf,p->last_free); - } - first+=i+1; - } - if (unlock) - UnlockPartition(p); - } catch - if (unlock) - UnlockPartition(p); -} - -void InitLTPartition(LTPartition *p,BoolU4 unlock) -{ - LTBootStruct br; - try { - LockPartition(p); - RBlks(p,&br,p->offset,1,FALSE); - if (br.signature!=PT_LT || - br.signature2!=0xAA55) - throw(EXCEPT_PARTITION,12); - p->type=PT_LT; - FreeLTFreeList(p,FALSE); - p->spc=br.sectors_per_cluster; - p->size=br.sectors; - p->data=p->offset+1+br.bitmap_sectors-p->spc; - p->root_cluster=br.root_cluster; - p->MAP1=p->offset+1; - p->MAP2=p->offset+1; - AllocMAPBuf(p,1); - if (unlock) - UnlockPartition(p); - } catch - if (unlock) - UnlockPartition(p); -} - -void FormatLT(I1 drive_letter,BoolU4 quick=TRUE) -{ - U1 *root_dir; - LTDirEntry *dLT; - LTBootStruct *br=MAllocZ(BLK_SIZE); - LTPartition *p=DriveToPartition(drive_letter); - U8 i,n; - try { - LockPartition(p); -// SetDriveType(drive_letter,PT_LT); - SetDriveType(drive_letter,PT_FAT32); - p->type=PT_LT; - br->U1s_per_sector=BLK_SIZE; - if (p->size<0x20000) - br->sectors_per_cluster=1; - else if (p->size<0x200000) - br->sectors_per_cluster=2; - else if (p->size<0x2000000) - br->sectors_per_cluster=4; - else if (p->size<0x20000000) - br->sectors_per_cluster=8; - else if (p->size<0x200000000) - br->sectors_per_cluster=16; - else - br->sectors_per_cluster=32; - - br->signature=PT_LT; - br->signature2=0xAA55; - br->sectors=p->size; - n=br->sectors_per_cluster*(BLK_SIZE<<3); - n=(br->sectors+n-1)/n; - br->bitmap_sectors=n; - br->unique_id=BootTime; - br->root_cluster=0; - - if (quick) - i=n+1; - else - i=p->size; - WZeroBlks(p,p->offset,i,FALSE); - - WBlks(p,br,p->offset,1,FALSE); - InitLTPartition(p,FALSE); - AllocClusters(p,0,1,FALSE,FALSE); //Alloc #1 - br->root_cluster=AllocClusters(p,0,1,FALSE,FALSE); - WBlks(p,br,p->offset,1,FALSE); - root_dir=MAllocZ(p->spc<attr=LT_ATTR_DIR|LT_ATTR_CONTIGUOUS; - dLT->name[0]='.'; - dLT->cluster=br->root_cluster; - dLT->size=p->spc<expanded_size=dLT->size; - dLT->datetime=GetCurTimeLTDate; - - dLT+=LT_DIR_ENTRY_SIZE; - - dLT->name[0]='.'; - dLT->name[1]='.'; - dLT->attr=LT_ATTR_DIR|LT_ATTR_CONTIGUOUS; - dLT->cluster=br->root_cluster; - dLT->datetime=GetCurTimeLTDate; - - WBlks(p,root_dir,p->data+br->root_cluster*p->spc,p->spc,FALSE); - InitLTPartition(p,FALSE); - UnlockPartition(p); - } catch - UnlockPartition(p); - Free(br); - Free(root_dir); -} - -BoolU8 FindLTFile(LTPartition *p,U8 cur_dir_cluster,I1 *name,LTDirEntry *result, - BoolU4 dir_only,BoolU4 file_only,BoolU4 unlock) -{ - BoolU4 res=FALSE; - LTDirEntry *buf,*buf2,*ptr; - I1 dname[LT_MAX_FILENAME_LEN+1]; - BoolU4 cont2=FALSE; - U1 ch; - - MemSet(result,0,sizeof(LTDirEntry)); - CheckLTPartition(p); - if (p->type!=PT_LT) - PutSysTextErr("ST_NOT_LT"); - else if (!ToLTFilename(dname,name)) - PutSysTextErr("ST_INVALID_FILENAME"); - else { - try { - LockPartition(p); - buf2=MAlloc(p->spc<size); - RClusters(p,buf,cur_dir_cluster,ptr->size>>BLK_SIZE_BITS/p->spc,FALSE); - Free(buf2); - - ptr=buf-offset(LTDirEntry.start); - ptr->name[0]='.'; - ptr->name[1]=0; - while (TRUE) { - ch=ptr->name[0]; - if (!ch) - break; - else if (!(ptr->attr & LT_ATTR_DELETED)) { - if (dir_only && !(ptr->attr & LT_ATTR_DIR)) - cont2=FALSE; - else if (file_only && ptr->attr & LT_ATTR_DIR) - cont2=FALSE; - else - cont2=TRUE; - if (cont2 && !StrCmp(dname,ptr->name)) { - MemCpy(&result->attr,&ptr->attr,LT_DIR_ENTRY_SIZE); - res=TRUE; - goto exit_this; - } - } - ptr+=LT_DIR_ENTRY_SIZE; - } -exit_this: - Free(buf); - if (unlock) - UnlockPartition(p); - } catch - if (unlock) - UnlockPartition(p); - } - - return res; -} - - - -U1 *ReadLTFile(LTPartition *p,I1 *cur_dir,I1 *filename,U8 *size, - U8 *attr,BoolU4 raw,ArcCompressStruct **ac2) -{ - U1 *buf=NULL; - LTDirEntry de; - U8 c,cluster_size=p->spc<type!=PT_LT) - PutSysTextErr("ST_NOT_LT"); - else { - try { - LockPartition(p); - if (FindLTFile(p,cur_dir_cluster,filename,&de,FALSE,TRUE,FALSE)) { - if (attr) - *attr=de.attr; - cluster_cnt=(de.size+cluster_size-1)/cluster_size; - buf=MAlloc(cluster_cnt*cluster_size+1); - c=de.cluster; - c=RClusters(p,buf,c,cluster_cnt,FALSE,TRUE); - if (de.xsum) { - if ((de.xsum^ArcCheckSum(buf,de.size))!=LT_XSUM) - throw(EXCEPT_ARC_XSUM); - } - if ((FileAttr(de.name) & LT_ATTR_COMPRESSED) && !raw) { - ac=buf; - if (attr) - *attr=FileAttr(de.name,*attr); - if (size) - *size=ac->expanded_size; - if (ac2) { - *ac2=ac; - buf=ExpandBuf(ac); - } else { - buf=ExpandBuf(ac); - Free(ac); - } - } else { - buf[de.size]=0; //Terminate - if (size) - *size=de.size; - } - if (attr) - *attr=FileAttr(de.name,*attr); - } - UnlockPartition(p); - } catch - UnlockPartition(p); - } - return buf; -} - -BoolU8 CdLT(I1 *name,U8 cur_dir_cluster) -{ - LTDirEntry de; - if (Fs->cur_partition->type!=PT_LT) - PutSysTextErr("ST_NOT_LT"); - else { - if (FindLTFile(Fs->cur_partition,cur_dir_cluster, - name,&de,TRUE,FALSE,TRUE)) { - return TRUE; - } else { - cout name," "; - PutSysTextErr("ST_FILE_NOT_FOUND"); - } - } - return FALSE; -} - -void FreeLTClusters(LTPartition *p,U8 c,U8 cnt,BoolU4 unlock) -{ - LTFreeList *tempf; - BoolU4 found=FALSE; - CheckLTPartition(p); - if (!c) return; - if (p->type!=PT_LT) - PutSysTextErr("ST_NOT_LT"); - else { - try { - LockPartition(p); - if (!p->next_free) - BuildLTFreeList(p,FALSE); - tempf=p->next_free; - while (!found && tempf!=&p->next_free) { - if (tempf->start+tempf->size==c) { - tempf->size+=cnt; - found=TRUE; - } else if (c+cnt==tempf->start) { - tempf->size+=cnt; - tempf->start=c; - found=TRUE; - } - tempf=tempf->next; - } - if (!found) { - tempf=AMAlloc(sizeof(LTFreeList)); - tempf->size=cnt; - tempf->start=c; - InsQue(tempf,p->last_free); - } - while (cnt--) { - SetLTBuf(p,c); - Btr(p->cur_MAP_blk,c&(BLK_SIZE<<3-1)); - Bts(p->buffered_MAP_dirty_bits,0); - c++; - } - CleanMAPBuf(p); - - if (unlock) - UnlockPartition(p); - } catch - if (unlock) - UnlockPartition(p); - } -} - -U8 AllocLTClusters(LTPartition *p,U8 cnt, BoolU4 unlock) -{ - LTFreeList *tempf,*best_free=NULL; - U8 i,first,best_size=MAX_U8; - if (!cnt) - Debugger; - try { - LockPartition(p); - if (!p->next_free) - BuildLTFreeList(p,FALSE); - tempf=p->next_free; - while (tempf!=&p->next_free) { - if (tempf->size>=cnt && tempf->sizesize; - if (tempf->size==cnt) - break; - } - tempf=tempf->next; - } - if (!best_free) - Debugger; - first=best_free->start; - for (i=0;icur_MAP_blk,(first+i)&(BLK_SIZE<<3-1)); - Bts(p->buffered_MAP_dirty_bits,0); - } - CleanMAPBuf(p); - if (best_free->size-=cnt) - best_free->start+=cnt; - else { - RemQue(best_free); - AFree(best_free); - } - if (unlock) - UnlockPartition(p); - } catch - if (unlock) - UnlockPartition(p); - return first; -} - - -BoolU8 NewLTDirEntry2(LTPartition *p,I1 *cur_dir,LTDirEntry *de,BoolU4 free_old_chain,BoolU4 unlock) -{ - LTDirEntry *buf,*buf2,*ptr,de2; - LTBootStruct *br; - U8 c,i=1,j=0,n=BLK_SIZE/LT_DIR_ENTRY_SIZE,dir_size; - BoolU4 written=FALSE; - U1 ch; - U8 cur_dir_cluster=NameToDirCluster(p,cur_dir,unlock); - I1 *temp,*parent_dir; - try { - de->attr|=LT_ATTR_CONTIGUOUS; - LockPartition(p); - buf2=MAlloc(p->spc<size); - RClusters(p,buf,cur_dir_cluster,ptr->size>>BLK_SIZE_BITS/p->spc,FALSE); - - dir_size=ptr->size; - ptr=buf-offset(LTDirEntry.start)+LT_DIR_ENTRY_SIZE; - Free(buf2); - while (TRUE) { - ch=ptr->name[0]; - if (!ch) { - if (!written) - MemCpy(&ptr->start,&de->start,LT_DIR_ENTRY_SIZE); - if ((i+1)*LT_DIR_ENTRY_SIZE+j<data+cur_dir_cluster*p->spc+j,1,FALSE); - else { - buf2=MAllocZ(dir_size+p->spc<spc<spc<spc<size=dir_size; - ptr->expanded_size=dir_size; - ptr->cluster=c; - WClusters(p,buf,c,dir_size/(p->spc<root_cluster) { - br=MAllocZ(BLK_SIZE); - RBlks(p,br,p->offset,1,FALSE); - br->root_cluster=c; - WBlks(p,br,p->offset,1,FALSE); - Free(br); - p->root_cluster=c; - } else { - temp=NewStr(cur_dir); - parent_dir=NewStr(cur_dir); - RemoveLastSeg(parent_dir,"/",temp); - if (!*parent_dir) { - Free(parent_dir); - parent_dir=NewStr("/"); - } - if (FindLTFile(p,NameToDirCluster(p,parent_dir,FALSE), - temp,&de2,TRUE,FALSE,FALSE)) { - de2.cluster=c; - de2.size=dir_size; - de2.expanded_size=dir_size; - //TODO: is this supposed to free old chain? - NewLTDirEntry2(p,parent_dir,&de2,FALSE,FALSE); - } else - Debugger; - Free(temp); - Free(parent_dir); - } - } - break; - } else if (ptr->attr & LT_ATTR_DELETED) { - if (!written) { - MemCpy(&ptr->start,&de->start,LT_DIR_ENTRY_SIZE); - WBlks(p,buf+j<data+cur_dir_cluster*p->spc+j,1,FALSE); - written=TRUE; - } - } else { - if (!StrCmp(de->name,ptr->name)) { - if (free_old_chain) - FreeLTClusters(p,ptr->cluster, - (ptr->size+p->spc<spc<start,&de->start,LT_DIR_ENTRY_SIZE); - else - ptr->attr|=LT_ATTR_DELETED; - WBlks(p,buf+j<data+cur_dir_cluster*p->spc+j,1,FALSE); - break; - } - } - ptr+=LT_DIR_ENTRY_SIZE; - if (++i>=n) { - j++; - i=0; - } - } - Free(buf); - if (unlock) - UnlockPartition(p); - } catch - if (unlock) - UnlockPartition(p); - return FALSE; -} - -BoolU8 DelLTFiles(LTPartition *p,I1 *cur_dir,I1 *wild, - BoolU4 del_dir=FALSE,BoolU4 print_msg=TRUE) -{ - LTDirEntry *buf,*buf2,*ptr; - U8 i=0,j=0,n=BLK_SIZE/LT_DIR_ENTRY_SIZE; - U1 ch; - U8 cur_dir_cluster=NameToDirCluster(p,cur_dir,TRUE); - try { - LockPartition(p); - buf2=MAlloc(p->spc<size); - RClusters(p,buf,cur_dir_cluster,ptr->size>>BLK_SIZE_BITS/p->spc,FALSE); - Free(buf2); - - ptr=buf-offset(LTDirEntry.start); - ptr->name[0]='.'; - ptr->name[1]=0; - while (TRUE) { - ch=ptr->name[0]; - if (!ch) - break; - else if (!(ptr->attr & LT_ATTR_DELETED) && ch!='.' && (del_dir || - !(ptr->attr & LT_ATTR_DIR))) { - if (WildFileNameList(wild,ptr->name)) { - if (print_msg) - coutln SysText("ST_DELETE"),ptr->name; - ptr->attr|=LT_ATTR_DELETED; - WBlks(p,buf+j<data+cur_dir_cluster*p->spc+j,1,FALSE); - FreeLTClusters(p,ptr->cluster, - (ptr->size+p->spc<spc<=n) { - j++; - i=0; - } - } - Free(buf); - UnlockPartition(p); - } catch - UnlockPartition(p); - return FALSE; -} - -U8 WriteLTFile(LTPartition *p,I1 *cur_dir,I1 *name,U1 *buf,U8 size, - LTDate LTdatetime,U8 attr,BoolU4 raw, - ArcCompressStruct **ac2) -{ - LTDirEntry de; - U8 c=0; - U8 flags=0,cluster_cnt, - cluster_size=p->spc<type!=PT_LT) - PutSysTextErr("ST_NOT_LT"); - else if (!ToLTFilename(de.name,name)) - PutSysTextErr("ST_INVALID_FILENAME"); - else { - DelLTFiles(p,cur_dir,de.name,FALSE,FALSE); - attr=FileAttr(name,attr); - attr|=LT_ATTR_CONTIGUOUS; - contiguous=TRUE; - de.expanded_size=size; - if ((attr & LT_ATTR_COMPRESSED) && !raw) { - ac=CompressBuf(buf,size,flags); - size=ac->compressed_size; - buf=ac; - } - de.size=size; - de.xsum=ArcCheckSum(buf,size)^LT_XSUM; - cluster_cnt=(size+cluster_size-1)/cluster_size; - if (cluster_cnt) - c=AllocClusters(p,0,cluster_cnt,contiguous,TRUE); - else - c=INVALID_CLUSTER; - de.cluster=c; - de.attr=attr; - de.datetime=LTdatetime; - if (cluster_cnt) - WClusters(p,buf,c,cluster_cnt,TRUE,TRUE); - NewLTDirEntry2(p,cur_dir,&de,TRUE,TRUE); - if (ac2) - *ac2=ac; - else - Free(ac); - } - return c; -} - -LTDirEntry *FindLTFiles(I1 *wild,U8 fuf_flags,LTDirEntry *parent=NULL) -{ - LTPartition *p=Fs->cur_partition; - LTDirEntry *buf,*buf2,*ptr; - U8 cur_dir_cluster=NameToDirCluster(p,Fs->cur_dir,FALSE); - U1 ch; - LTDirEntry *result=NULL,*tempm; - - LockPartition(p); - buf2=MAlloc(p->spc<size); - RClusters(p,buf,cur_dir_cluster,ptr->size>>BLK_SIZE_BITS/p->spc,FALSE); - Free(buf2); - - ptr=buf-offset(LTDirEntry.start); - ptr->name[0]='.'; - ptr->name[1]=0; - ptr+=LT_DIR_ENTRY_SIZE; - ptr->cluster=NameToParentDirCluster(p,Fs->cur_dir,FALSE); - ptr-=LT_DIR_ENTRY_SIZE; - while (TRUE) { - ch=ptr->name[0]; - if (!ch) - break; - else if (!(ptr->attr & LT_ATTR_DELETED)) { - tempm=MAllocZ(sizeof(LTDirEntry)); - MemCpy(&tempm->start,&ptr->start,LT_DIR_ENTRY_SIZE); - tempm->parent=parent; - if (Bt(&fuf_flags,FUf_RECURSE) && tempm->attr & LT_ATTR_DIR && tempm->name[0]!='.') { - tempm->next=result; - result=tempm; - tempm->full_name=AbsoluteDirName(tempm->name); - UnlockPartition(p); - Cd(tempm->name); - tempm->sub=FindLTFiles(wild,fuf_flags,tempm); - Cd(".."); - LockPartition(p); - } else if ((!(tempm->attr & LT_ATTR_DIR) && !Bt(&fuf_flags,FUf_JUST_DIRS) - || !Bt(&fuf_flags,FUf_RECURSE)) && - !(Bt(&fuf_flags,FUf_RECURSE) && tempm->name[0]=='.') && - WildFileNameList(wild,tempm->name)) { - tempm->next=result; - result=tempm; - tempm->full_name=AbsoluteFileName(tempm->name); - } else - DelLTDirEntry(tempm); - } - ptr+=LT_DIR_ENTRY_SIZE; - } - Free(buf); - UnlockPartition(p); - return result; -} - \ No newline at end of file diff --git a/LT/OSMain/Except.CPZ b/LT/OSMain/Except.CPZ deleted file mode 100644 index 426e9119531062f40b40779cabaea0b1fbcb4729..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3065 zcmWHwP;jkCPAw>LNi8VJ&A}I^CPyi|OafF+RqQWUa2Ncp^ z%i@Ea0#GD_J&`4YJy9fGP$XSYB@K;`bs8F>=rlA&ku*k?G(nLxL6tN`ku-%#280HC za3cA`&BxIl9ufim0d6k5T%2CM0Z3{*9Q|B;T!Z3+LmY!bpyohA-_hHZUZEe168gdL z(8u9aZ%>#CuuFp-!(c9r4{~)61}7G9Py{&zz>jW7ZVd^x5#I#P3p)nRoNKESl8Jb{` zgv7K?kfA9r7iWNf04KzUL9QXZT(#DqY~&M?T2Yc(l&652ffUN}GgA~oQj1F<#e#;W zH7^&6T10e1)h1@A;!uko;1CVLiDgg?L8?TE!)aMJ4e$iAkwBI$(ZwW&wnYRMu$~6&KjLrk$xC?ADw5)?G%FZmXErvTCSqaGLMa2c$1{Efd zvKp!tqB1zO z1RN?FaHB!u;IbGNAsG9(<5moEhk}BFLRx;2f<~sTfpw-0$g7YF zGd{5>J=r=_TU!%m0Ngg!2puJGL?Bd_MQ6ssjDxGww2mo?$y0)e*Fq~tXdVH(EpXkLTMCW8_TwDDl;=I9gb3YW@E&&w}L#gv0KFF=+ewLBDU)zC!X?F>XA z1~ywk0TkIF#mJV!!#@OGjG?JUaSvQMq-g?G8VvWK2FQG9U=<}5Kq3cPEZBnNP=gng zJ}}cbdTLfs0Jnxf&R2w`RYISEx)WmFfE)Po0Nlh$H4M{A{ z4oEC2$t=mt&x5pLofC6%Tq{caN^><_BSPZcd_sdg;(deNgLS|SWrV{tAk9jMJ)qb` zlq?~j62K+1EHfol1MFF?qRax6pn++24Dt-|@O2IGbk+eWK?xzSDQ-FWi6xnN=>*Ji P^YM2K@$_>?F@*sD_h5Hk diff --git a/LT/OSMain/FIFO.CPZ b/LT/OSMain/FIFO.CPZ deleted file mode 100644 index 66752a1..0000000 --- a/LT/OSMain/FIFO.CPZ +++ /dev/null @@ -1,169 +0,0 @@ -U1Fifo *NewU1Fifo(U8 size,TssStruct *tss=NULL) -{ - U1Fifo *f; - if (!tss) tss=Fs; - f=MAlloc(sizeof(U1Fifo),tss); - f->mem_tss=tss; - f->buf=MAlloc(size,tss); - f->mask=size-1; - f->in_ptr=0; - f->out_ptr=0; - return f; -} - -void DelU1Fifo(U1Fifo *f) -{ - Free(f->buf,f->mem_tss); - Free(f,f->mem_tss); -} - -BoolU8 U1FifoInsert(U1Fifo *f,U1 ch) -{ - U8 old_flags=GetFlags, - new_in_ptr; - Cli; - new_in_ptr=(f->in_ptr+1)&f->mask; - if (new_in_ptr==f->out_ptr) { - SetFlags(old_flags); - return FALSE; - } else { - f->buf[f->in_ptr]=ch; - f->in_ptr=new_in_ptr; - SetFlags(old_flags); - return TRUE; - } -} - -BoolU8 U1FifoRemove(U1Fifo *f,U1 *ch) -{ - U8 old_flags=GetFlags; - Cli; - if (f->in_ptr==f->out_ptr) { - SetFlags(old_flags); - return FALSE; - } else { - *ch=f->buf[f->out_ptr]; - f->out_ptr=(f->out_ptr+1)&f->mask; - SetFlags(old_flags); - return TRUE; - } -} - -BoolU8 U1FifoPeek(U1Fifo *f,U1 *ch) -{ - U8 old_flags=GetFlags; - Cli; - if (f->in_ptr==f->out_ptr) { - SetFlags(old_flags); - return FALSE; - } else { - *ch=f->buf[f->out_ptr]; - SetFlags(old_flags); - return TRUE; - } -} - -void U1FifoFlush(U1Fifo *f) -{ - U8 old_flags=GetFlags; - Cli; - f->out_ptr=f->in_ptr; - SetFlags(old_flags); -} - -U8 U1FifoCnt(U1Fifo *f) -{ - U8 result,old_flags=GetFlags; - Cli; - if (f->out_ptr>f->in_ptr) - result=f->mask+1-(f->out_ptr-f->in_ptr); - else - result=f->in_ptr-f->out_ptr; - SetFlags(old_flags); - return result; -} - -U8Fifo *NewU8Fifo(U8 size,TssStruct *tss=NULL) -{ - U8Fifo *f; - if (!tss) tss=Fs; - f=MAlloc(sizeof(U8Fifo),tss); - f->mem_tss=tss; - f->buf=MAlloc(size*sizeof(U8),tss); - f->mask=size-1; - f->in_ptr=0; - f->out_ptr=0; - return f; -} - -void DelU8Fifo(U8Fifo *f) -{ - Free(f->buf,f->mem_tss); - Free(f,f->mem_tss); -} - -BoolU8 U8FifoInsert(U8Fifo *f,U8 d) -{ - U8 old_flags=GetFlags, - new_in_ptr; - Cli; - new_in_ptr=(f->in_ptr+1)&f->mask; - if (new_in_ptr==f->out_ptr) { - SetFlags(old_flags); - return FALSE; - } else { - f->buf[f->in_ptr]=d; - f->in_ptr=new_in_ptr; - SetFlags(old_flags); - return TRUE; - } -} - -BoolU8 U8FifoRemove(U8Fifo *f,U8 *d) -{ - U8 old_flags=GetFlags; - Cli; - if (f->in_ptr==f->out_ptr) { - SetFlags(old_flags); - return FALSE; - } else { - *d=f->buf[f->out_ptr]; - f->out_ptr=(f->out_ptr+1)&f->mask; - SetFlags(old_flags); - return TRUE; - } -} - -BoolU8 U8FifoPeek(U8Fifo *f,U8 *d) -{ - U8 old_flags=GetFlags; - Cli; - if (f->in_ptr==f->out_ptr) { - SetFlags(old_flags); - return FALSE; - } else { - *d=f->buf[f->out_ptr]; - SetFlags(old_flags); - return TRUE; - } -} - -void U8FifoFlush(U8Fifo *f) -{ - U8 old_flags=GetFlags; - Cli; - f->out_ptr=f->in_ptr; - SetFlags(old_flags); -} - -U8 U8FifoCnt(U8Fifo *f) -{ - U8 result,old_flags=GetFlags; - Cli; - if (f->out_ptr>f->in_ptr) - result=f->mask+1-(f->out_ptr-f->in_ptr); - else - result=f->in_ptr-f->out_ptr; - SetFlags(old_flags); - return result; -} diff --git a/LT/OSMain/IRQHandlers.ASZ b/LT/OSMain/IRQHandlers.ASZ deleted file mode 100644 index fbb32bf..0000000 --- a/LT/OSMain/IRQHandlers.ASZ +++ /dev/null @@ -1,838 +0,0 @@ - ALIGN 8,OC_NOP -IRQ_VECTORS:: - DU4 IRQ00,IRQ01,IRQ02,IRQ03; - DU4 IRQ04,IRQ05,IRQ06,IRQ07; - DU4 IRQ08,IRQ09,IRQ0A,IRQ0B; - DU4 IRQ0C,IRQ0D,IRQ0E,IRQ0F; - - DU4 IRQ10,IRQ11,IRQ12,IRQ13; - DU4 IRQ14,IRQ15,IRQ16,IRQ17; - DU4 IRQ18,IRQ19,IRQ1A,IRQ1B; - DU4 IRQ1C,IRQ1D,IRQ1E,IRQ1F; - - DU4 IRQ20,IRQ21,IRQ22,IRQ23; - DU4 IRQ24,IRQ25,IRQ26,IRQ27; - DU4 IRQ28,IRQ29,IRQ2A,IRQ2B; - DU4 IRQ2C,IRQ2D,IRQ2E,IRQ2F; - - DU4 IRQ30,IRQ31,IRQ32,IRQ33; - DU4 IRQ34,IRQ35,IRQ36,IRQ37; - DU4 IRQ38,IRQ39,IRQ3A,IRQ3B; - DU4 IRQ3C,IRQ3D,IRQ3E,IRQ3F; - - DU4 IRQ40,IRQ41,IRQ42,IRQ43; - DU4 IRQ44,IRQ45,IRQ46,IRQ47; - DU4 IRQ48,IRQ49,IRQ4A,IRQ4B; - DU4 IRQ4C,IRQ4D,IRQ4E,IRQ4F; - - DU4 IRQ50,IRQ51,IRQ52,IRQ53; - -////***************** INTERRUPT ROUTINES *************** - ALIGN 8,OC_NOP -IRQ00:: PUSH RDX - XOR EDX,EDX - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ01: PUSH RDX - MOV RDX,1 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ02: //Halt - XOR ESI,ESI - CALL HALT_CPU - - ALIGN 8,OC_NOP -IRQ03: PUSH RDX - MOV RDX,3 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ04: PUSH RDX - MOV RDX,4 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ05: PUSH RDX - MOV RDX,5 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ06: PUSH RDX - MOV RDX,6 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ07: PUSH RDX - MOV RDX,7 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ08: PUSH RDX - MOV RDX,8 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ09: PUSH RDX - MOV RDX,9 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ0A: PUSH RDX - MOV RDX,0x0A - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ0B: PUSH RDX - MOV RDX,0x0B - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ0C: PUSH RDX - MOV RDX,0x0C - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ0D: PUSH RDX - MOV RDX,0x0D - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ0E: PUSH RDX - MOV RDX,0x0E - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ0F: PUSH RDX - MOV RDX,0x0F - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ10: PUSH RDX - MOV RDX,0x10 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ11: PUSH RDX - MOV RDX,0x11 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ12: PUSH RDX - MOV RDX,0x12 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ13: PUSH RDX - MOV RDX,0x13 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ14: PUSH RDX - MOV RDX,0x14 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ15: PUSH RDX - MOV RDX,0x15 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ16: PUSH RDX - MOV RDX,0x16 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ17: PUSH RDX - MOV RDX,0x17 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ18: PUSH RDX - MOV RDX,0x18 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ19: PUSH RDX - MOV RDX,0x19 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ1A: PUSH RDX - MOV RDX,0x1A - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ1B: PUSH RDX - MOV RDX,0x1B - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ1C: PUSH RDX - MOV RDX,0x1C - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ1D: PUSH RDX - MOV RDX,0x1D - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ1E: PUSH RDX - MOV RDX,0x1E - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ1F: PUSH RDX - MOV RDX,0x1F - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ20: CLD - PUSH RAX - PUSH_C_REGS - MOV RBP,RSP - MOV RBX,U8 SC_RIP+8[RBP] - XOR EAX,EAX - MOV RDX,GS:CPU_ABSOLUTE_ADDRESS[RAX] - MOV RAX,FS:TSS_ABSOLUTE_ADDRESS[RAX] - BT U8 TSS_TASK_FLAGS[RAX],TSSf_IDLE - JC @@1a - CMP RBX,U4 IDLE_START - JB @@1 - CMP RBX,U4 IDLE_END - JA @@1 -@@1a: INC U8 CPU_IDLE_POINT_HITS[RDX] -@@1: MOV RAX,U8 CPU_NUM[RDX] - OR RAX,RAX - JZ @@3 - XOR EAX,EAX - MOV EAX,U4 MP_EOI - MOV U4 [RAX],0 - JMP @@5 - -@@3: MOV RAX,U8 [SYS_EXTERN_TABLE] - MOV RAX,U8 EXT_IRQ00*8[RAX] - OR RAX,RAX - JZ @@2 - PUSH RBX - CALL RAX - ADD RSP,8 -@@2: MOV AL,0x20 //ACKNOWLEDGE INTERRUPT - OUT 0x20,AL - -@@5: POP_C_REGS - XOR EAX,EAX - MOV RAX,FS:TSS_ABSOLUTE_ADDRESS[RAX] - BT U8 TSS_TASK_FLAGS[RAX],TSSf_PREEMPT - JC @@5A - POP RAX - IRET - -@@5A: POP RAX - CLI - CALL SAVE_CONTEXT //PREEMPTIVE - - XOR ESI,ESI - MOV RSI,FS:TSS_ABSOLUTE_ADDRESS[RSI] - MOV RBP,RSP - MOV RAX,U8 [RBP] - MOV U8 TSS_RIP[RSI],RAX - MOV RAX,U8 16[RBP] - MOV U8 TSS_RFLAGS[RSI],RAX - MOV RAX,U8 24[RBP] - MOV U8 TSS_RSP[RSI],RAX - JMP U4 SIN_PART1 - - ALIGN 8,OC_NOP -IRQ21: CLD - PUSH_C_REGS - CALL KBD_IRQ_HANDLER - MOV AL,0x20 //ACKNOWLEDGE INTERRUPT - OUT 0x20,AL - POP_C_REGS - IRET - - ALIGN 8,OC_NOP -IRQ22: PUSH RDX - MOV RDX,0x22 - JMP U4 IRQFAULT - - - ALIGN 8,OC_NOP -IRQ23: CLD - PUSH_C_REGS - MOV RAX,U8 [SYS_EXTERN_TABLE] - MOV RAX,U8 EXT_IRQ03*8[RAX] - OR RAX,RAX - JZ @@231 - CALL RAX -@@231: MOV AL,0x20 //ACKNOWLEDGE INTERRUPT - OUT 0x20,AL - POP_C_REGS - IRET - - ALIGN 8,OC_NOP -IRQ24: CLD - PUSH_C_REGS - MOV RAX,U8 [SYS_EXTERN_TABLE] - MOV RAX,U8 EXT_IRQ04*8[RAX] - OR RAX,RAX - JZ @@241 - CALL RAX -@@241: MOV AL,0x20 //ACKNOWLEDGE INTERRUPT - OUT 0x20,AL - POP_C_REGS - IRET - - ALIGN 8,OC_NOP -IRQ25: PUSH RDX - MOV RDX,0x25 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ26: CLD - PUSH_C_REGS - MOV RAX,U8 [SYS_EXTERN_TABLE] - MOV RAX,U8 EXT_IRQ06*8[RAX] - OR RAX,RAX - JZ @@261 - CALL RAX -@@261: MOV AL,0x20 //ACKNOWLEDGE INTERRUPT - OUT 0x20,AL - POP_C_REGS - IRET - - ALIGN 8,OC_NOP -IRQ27: CLD - PUSH_C_REGS - MOV RAX,U8 [SYS_EXTERN_TABLE] - MOV RAX,U8 EXT_IRQ07*8[RAX] - OR RAX,RAX - JZ @@271 - CALL RAX -@@271: MOV AL,0x20 //ACKNOWLEDGE INTERRUPT - OUT 0x20,AL - POP_C_REGS - IRET - - ALIGN 8,OC_NOP -IRQ28: PUSH RDX - MOV RDX,0x28 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ29: PUSH RDX - MOV RDX,0x29 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ2A: PUSH RDX - MOV RDX,0x2A - JMP U4 IRQFAULT - - - ALIGN 8,OC_NOP -IRQ2B: CLD - PUSH_C_REGS - MOV RAX,U8 [SYS_EXTERN_TABLE] - MOV RAX,U8 EXT_IRQ0B*8[RAX] - OR RAX,RAX - JZ @@2B1 - CALL RAX -@@2B1: MOV AL,0x20 - OUT 0xA0,AL - MOV AL,0x20 - OUT 0x20,AL - POP_C_REGS - IRET - - ALIGN 8,OC_NOP -IRQ2C: PUSH RAX //keyboard - MOV AL,0x20 - OUT 0xA0,AL - MOV AL,0x20 //ACKNOWLEDGE INTERRUPT - OUT 0x20,AL - POP RAX - IRET - - ALIGN 8,OC_NOP -IRQ2D: PUSH RDX - MOV RDX,0x2D - JMP U4 IRQFAULT - - - ALIGN 8,OC_NOP -IRQ2E: CLD - PUSH_C_REGS - MOV RAX,U8 [SYS_EXTERN_TABLE] - MOV RAX,U8 EXT_IRQ0E*8[RAX] - OR RAX,RAX - JZ @@2E1 - CALL RAX -@@2E1: MOV AL,0x20 - OUT 0xA0,AL - MOV AL,0x20 - OUT 0x20,AL - POP_C_REGS - IRET - - ALIGN 8,OC_NOP -IRQ2F: CLD - PUSH_C_REGS - MOV RAX,U8 [SYS_EXTERN_TABLE] - MOV RAX,U8 EXT_IRQ0F*8[RAX] - OR RAX,RAX - JZ @@2F1 - CALL RAX -@@2F1: MOV AL,0x20 - OUT 0xA0,AL - MOV AL,0x20 - OUT 0x20,AL - POP_C_REGS - IRET - - -/*************************************/ - ALIGN 8,OC_NOP -IRQ30: PUSH RDX - MOV RDX,0x30 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ31: PUSH RDX - MOV RDX,0x31 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ32: PUSH RDX - MOV RDX,0x32 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ33: PUSH RDX - MOV RDX,0x33 - JMP U4 IRQFAULT - - -COUT_PUT_DOUBLE: - PUSH_C_REGS - PUSH U8 8[RBP] - CALL CP_PUT_FLOAT - ADD RSP,8 - POP_C_REGS -COUT_RETURN: - RET -COUT_PUT_STR: - PUSH RSI - MOV RSI,RAX - CALL PUT_STR - POP RSI - RET - -COUT_JMP_TABLE: - DU8 COUT_RETURN; - DU8 COUT_RETURN; - DU8 PUT_HEX_U1; - DU8 PUT_HEX_U1; - DU8 PUT_HEX_U2; - DU8 PUT_HEX_U2; - DU8 PUT_HEX_U4; - DU8 PUT_HEX_U4; - DU8 PUT_HEX_U8; - DU8 PUT_HEX_U8; - DU8 COUT_PUT_DOUBLE; - DU8 COUT_RETURN; - -//pointer types - DU8 COUT_RETURN; - DU8 COUT_RETURN; - DU8 COUT_PUT_STR; - -COUT_JOIN:: - OR RBX,RBX - JZ @@100 -@@20: MOV RDX,U8 [RBP] - MOV RAX,U8 8[RBP] - CALL U8 COUT_JMP_TABLE[RDX*8] - SUB RBP,16 - DEC RBX - JNZ @@20 -@@100: RET - -//I_COUT - ALIGN 8,OC_NOP -IRQ34:: PUSH RBP - MOV RBP,RSP - BT U8 24[RBP],9 - JNC @@I34 - STI -@@I34: - MOV RBP,U8 32[RBP] - MOV RBX,RAX //GET PARAM CNT - ADD RBX,RBX - LEA RBP,-16[RBP+RBX*8] - MOV RBX,RAX //GET PARAM CNT - CALL COUT_JOIN - POP RBP - IRET - - -//I_COUTLN - ALIGN 8,OC_NOP -IRQ35:: PUSH RBP - MOV RBP,RSP - BT U8 24[RBP],9 - JNC @@I35 - STI -@@I35: - MOV RBP,U8 32[RBP] - MOV RBX,RAX //GET PARAM CNT - ADD RBX,RBX - LEA RBP,-16[RBP+RBX*8] - MOV RBX,RAX //GET PARAM CNT - CALL COUT_JOIN - CALL CRLF - POP RBP - IRET - - ALIGN 8,OC_NOP -IRQ36: PUSH RDX - MOV RDX,0x36 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ37: PUSH RDX - MOV RDX,0x37 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ38: PUSH RDX - MOV RDX,0x38 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ39: PUSH RDX - MOV RDX,0x39 - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ3A: PUSH RDX - MOV RDX,0x3A - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ3B: PUSH RDX - MOV RDX,0x3B - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ3C: PUSH RDX - MOV RDX,0x3C - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ3D: PUSH RDX - MOV RDX,0x3D - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ3E: PUSH RDX - MOV RDX,0x3E - JMP U4 IRQFAULT - - ALIGN 8,OC_NOP -IRQ3F: PUSH RDX - MOV RDX,0x3F - JMP U4 IRQFAULT - -//************************************ SOFTWARE INT'S ****************************** - ALIGN 8,OC_NOP -IRQ40: //UNARY_MINUS - PUSH RAX - MOV RBX,RSP - FLD U8 [RBX] - FCHS - FSTP U8 [RBX] - FWAIT - POP RAX - IRET - -IRQ41: //INC - PUSH RAX - MOV RBX,RSP - FLD U8 [RBX] - FLD1 - FADDP - FSTP U8 [RBX] - FWAIT - POP RAX - IRET - -IRQ42: //DEC - PUSH RAX - MOV RBX,RSP - FLD1 - FLD U8 [RBX] - FSUBRP - FSTP U8 [RBX] - FWAIT - POP RAX - IRET - -IRQ43: //POWER - PUSH RDX - PUSH RAX - PUSH 0 - MOV RBX,RSP - FSTCW U4 [RBX] - FWAIT - MOV AX,U2 [RBX] - MOV U2 2[RBX],AX - OR AX,0x0C00 - MOV U2 [RBX],AX - FLDCW U4 [RBX] - FLD U8 8[RBX] - FLD U8 16[RBX] - FYL2X // y*log2(x) - FST U8 16[RBX] - FRNDINT - FLD U8 16[RBX] - FSUBRP - F2XM1 - FLD1 - FADDP - FSTP U8 8[RBX] - FFREE - FINCSTP - FLD U8 16[RBX] - FLD U8 8[RBX] - FSCALE // ST0<='a' && ch<='z') - return ch-'a'+'A'; - else - return ch; -} - -void GetOutOfDollar() -{ - Ltf *l=Fs->cur_ltf; - if (IsRaw) { - if (dc_flags&DCF_IN_DOLLAR) - PutChar('$$'); - } else { - if (l && l->flags<FF_IN_DOLLAR) - PutChar('$$'); - } -} - -void PutErr() -{ - GetOutOfDollar; - PutSysText("ST_ERROR"); -} - -void PutWarn() -{ - GetOutOfDollar; - PutSysText("ST_WARNING"); -} - -void PutSysTextErr(I1 *st) -{ - PutErr; - PutSysText(st); -} - -void PutSysTextWarn(I1 *st) -{ - PutWarn; - PutSysText(st); -} - - -BoolU8 ScanKey(I8 *ch=NULL,U8 *scancode=NULL,BoolU4 echo=FALSE) -{ - I8 ch1=0; - U8 scancode1=0; - BoolU4 result=CallExtNum(EXT_SCAN_KEY,&ch1,&scancode1,FALSE); - if (echo) - PutKey(ch1,scancode1); - if (ch) *ch=ch1; - if (scancode) *scancode=scancode1; - return result; -} - -I8 GetKey(U8 *scancode=NULL,BoolU4 echo=FALSE) -{ - I8 ch1; - BoolU4 old_preempt=Preempt(OFF); - Fs->task_flags&=~(1<task_flags|=1<task_flags|=1<task_flags&=~(1<size-1) { - MemCpy(buf,buf2,size-1); - buf[size-1]=0; - } else - StrCpy(buf,buf2); - i=StrLen(buf); - Free(buf2); - } else { - while (TRUE) { - ch=GetChar(NULL,FALSE); - if (ch==CH_CR) { - PutChar(ch); - break; - } if (ch==CH_BACKSPACE) { - if (i>0) { - i--; - PutChar(ch); - } - } else { - if (i>12)*8; - else - return 0x100000+NUM_PML1*0x1000+ - (a>>(12+9))*8; -} - -void *AllocNonTskMemBlks(U8 *pages512) -//This will allocate a 512 byte pages from -//the code heap memory range and not -//link them to any task. (Linking to a task -//means it will be freed when the task -//dies.) -//It might give you more than you asked for -//so a pointer to a page count is passed. -{ - MemBlk *result=NULL,*m; - U8 i,num=*pages512,old_flags=GetFlags; - Cli; - if (numnext; - SetFlags(old_flags); - return result; - } - } else { - num-=2; - i=Bsr(num)+1; - num=0; - Bts(&num,i); - num+=2; - *pages512=num; - if (result=free_page_hash2[i]) { - free_page_hash2[i]=result->next; - SetFlags(old_flags); - return result; - } - } - m=&mem_free_list; - do { - if (!(result=m->next)) { - SysOutOfMem; - SetFlags(old_flags); - return NULL; - } - if (result->pagespages==num) { - m->next=result->next; - SetFlags(old_flags); - return result; - } else { - result->pages-=num; - result+=result->pages<pages=num; - SetFlags(old_flags); - return result; - } - } - } while (TRUE); -} - -void FreeNonTskMemBlks(MemBlk *m,U8 pages512) -{ - U8 i,old_flags; - if (m) { - old_flags=GetFlags; - Cli; - m->signature=MBS_UNUSED_SIGNATURE; - m->pages=pages512; - if (pages512next=free_page_hash[pages512]; - free_page_hash[pages512]=m; - } else { - pages512-=2; - i=Bsr(pages512); - m->next=free_page_hash2[i]; - free_page_hash2[i]=m; - } - SetFlags(old_flags); - } -} - -void *Alloc2MegMemBlks(U8 *pages2Meg) -//This will allocate 2Meg pages from -//the code heap memory range and not -//link it to any task. (Linking to a task -//means they will be freed when the task -//dies.) -//It might give you more than you asked for -//so a pointer to a page count is passed. -{ - U8 *pte; - MemBlk *result=NULL,*m,*m1; - U8 i,j,num=*pages2Meg,old_flags=GetFlags; - - Cli; - num<<=12; - - m=&mem_free_2Meg_list; - do { - if (!(result=m->next)) - break; - if (result->pagespages==num) { - m->next=result->next; - goto done; - } else { - result->pages-=num; - result+=result->pages<pages=num; - goto done; - } - } - } while (TRUE); - - m=&mem_free_list; - do { - if (!(result=m->next)) { - SysOutOfMem; - SetFlags(old_flags); - return NULL; - } - if (result->pagespages==num) { - if (result&0x1FFFFF) - m=result; - else { - m->next=result->next; - goto done; - } - } else { - if (i=(result&0x1FFFFF)>>PAGE_BITS) { - j=(1<<12)-i; - if (result->pagespages==num+j) { - result->pages-=num; - result+=result->pages<pages=num; - goto done; - } else { - m1=result; - result+=j<pages=num; - m=result+num<pages=m1->pages-num-j; - m1->pages=j; - m->next=m1->next; - m1->next=m; - m->signature=MBS_UNUSED_SIGNATURE; - goto done; - } - } else { - m=m->next=result+num<next=result->next; - m->pages=result->pages-num; - m->signature=MBS_UNUSED_SIGNATURE; - result->pages=num; - goto done; - } - } - } - } while (TRUE); -done: - m=result; - num=*pages2Meg; - for (i=0;isignature=MBS_UNUSED_SIGNATURE; - m->pages=pages2Meg<<12; - m->next=mem_free_2Meg_list; - mem_free_2Meg_list=m; - SetFlags(old_flags); - } -} - - -asm {ALLOCATE_MEM_BLKS::} -MemBlk *AllocMemBlks(U8 *num_,TssStruct *tss) -{ - MemBlk *result; - U8 old_flags=GetFlags; - Cli; - result=AllocNonTskMemBlks(num_); - InsQue(result,tss->last_mem_blk); - result->signature=MBS_USED_SIGNATURE; - SetFlags(old_flags); - return result; -} - -asm {FREE_MEM_BLKS::} -void FreeMemBlks(MemBlk *m) -{ - U8 old_flags; - if (m) { - old_flags=GetFlags; - Cli; - if (m->signature!=MBS_USED_SIGNATURE) { - SysBadMemFree(m); - goto done; - } - RemQue(m); - FreeNonTskMemBlks(m,m->pages); -done: - SetFlags(old_flags); - } -} - - -void FreeMemBlkList(TssStruct *tss) -{ - U8 old_flags=GetFlags; - MemBlk *m,*m1; - Cli; - m=tss->next_mem_blk; - while (m!=&tss->next_mem_blk) { - m1=m->next; - FreeMemBlks(m); - m=m1; - } - SetFlags(old_flags); -} - -asm { -////**************************PROCEDURE************************* -// OUT: RAX=BASE ADDRESS -// - ALIGN 8,OC_NOP -CP_MALLOC:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - - XOR EBX,EBX - MOV RDX,U8 SF_PARAM2[RBP] - OR RDX,RDX - JNZ @@30 - MOV RDX,FS:TSS_ABSOLUTE_ADDRESS[RBX] -@@30: MOV RAX,GS:CPU_ABSOLUTE_ADDRESS[RBX] - MOV RAX,U8 CPU_HEAP[RAX] - OR RAX,RAX - JZ @@32 - MOV RDX,RAX - JMP U4 MALLOC_HC_JOIN -@@32: MOV RAX,U8 SF_PARAM1[RBP] - PUSHFD - CLI -@@31: LOCK - BTS U4 [SYS_SEMAS+SYS_SEMA_MEM_BUSY*SEMA_STRUCT_SIZE],0 - JC @@31 - - ADD RAX,UM_START+8-1 //round-up to U8 - AND RAX,~7 - CMP RAX,UUM_STRUCT_SIZE - JAE @@4 - MOV RAX,UUM_STRUCT_SIZE -@@4: CMP RAX,HEAP_HASH_SIZE - JAE @@10 - MOV RSI,U8 TSS_HEAP_HASH[RAX+RDX] - OR RSI,RSI - JZ @@13 - MOV RCX,U8 UUM_NEXT[RSI] - MOV U8 TSS_HEAP_HASH[RAX+RDX],RCX - JMP U4 @@5 - -@@10: ADD RAX,MB_STRUCT_SIZE+PAGE_SIZE-1 - SHR RAX,PAGE_BITS - - PUSH RDX - PUSH RAX - MOV RAX,RSP - PUSH RDX - PUSH RAX - CALL ALLOCATE_MEM_BLKS - MOV RSI,RAX - ADD RSP,16 - POP RAX - POP RDX - - SHL RAX,PAGE_BITS - SUB RAX,MB_STRUCT_SIZE - ADD RSI,MB_STRUCT_SIZE - JMP U4 @@5 - -@@13: MOV RSI,RDX - ADD RSI,TSS_MALLOC_FREE_LIST - -@@1: LEA RBX,U8 UUM_NEXT[RSI] - MOV RSI,U8 [RBX] - OR RSI,RSI - JNZ @@2 - PUSH RAX //-**** - ADD RAX,16*PAGE_SIZE-1 - SHR RAX,PAGE_BITS - - PUSH RDX - PUSH RAX - MOV RAX,RSP - PUSH RDX - PUSH RAX - CALL ALLOCATE_MEM_BLKS - MOV RSI,RAX - ADD RSP,16 - POP RAX - POP RDX - - LEA RSI,U8 MB_STRUCT_SIZE[RSI] - SHL RAX,PAGE_BITS - SUB RAX,MB_STRUCT_SIZE - MOV RDI,U8 TSS_MALLOC_FREE_LIST[RDX] - MOV U8 UUM_NEXT[RSI],RDI - MOV U8 UUM_SIZE[RSI],RAX - MOV U8 TSS_MALLOC_FREE_LIST[RDX],RSI - MOV RBX,RDX - ADD RBX,TSS_MALLOC_FREE_LIST - POP RAX //+**** - JMP @@3 -@@2: CMP U8 UUM_SIZE[RSI],RAX - JB @@1 - JNE @@3 - -@@8: MOV RDI,U8 UUM_NEXT[RSI] - MOV U8 UUM_NEXT[RBX],RDI - JMP @@5 - -@@3: SUB U8 UUM_SIZE[RSI],RAX //UPDATE FREE ENTRY - CMP U8 UUM_SIZE[RSI],UUM_STRUCT_SIZE - JAE @@7 - ADD U8 UUM_SIZE[RSI],RAX - XOR EAX,EAX - MOV RAX,U8 UUM_SIZE[RSI] - JMP @@8 - -@@7: MOV RDI,U8 UUM_SIZE[RSI] - ADD RSI,RDI //SET ESI TO @ALLOCATED PAGES - -@@5: MOV U8 UM_SIZE[RSI],RAX - MOV U8 UM_TSS[RSI],RDX - ADD RSI,UM_START - -@@100: LOCK - BTR U4 [SYS_SEMAS+SYS_SEMA_MEM_BUSY*SEMA_STRUCT_SIZE],0 - POPFD - MOV RAX,RSI - - BT U4 [SYS_SEMAS+SYS_SEMA_HEAPLOG*SEMA_STRUCT_SIZE],0 - JNC @@200 - PUSH_C_REGS - PUSH RDX - PUSH RAX - MOV RAX,U8 [SYS_EXTERN_TABLE] - MOV RAX,U8 EXT_HEAPLOG_MALLOC*8[RAX] - OR RAX,RAX - JZ @@202 - CALL RAX -@@202: ADD RSP,16 - POP_C_REGS -@@200: -/************* -This will initialize memory to some value -for debugging. - PUSH RAX - PUSH RCX - MOV RCX,U8 UM_SIZE-UM_START[RAX] - SUB RCX,UM_START - MOV RDI,RAX - MOV RAX,0x12345678 - REP_STOSB - POP RCX - POP RAX -**********/ - - POP RDI - POP RSI - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_FREE:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - - BT U4 [SYS_SEMAS+SYS_SEMA_HEAPLOG*SEMA_STRUCT_SIZE],0 - JNC @@1 - PUSH_C_REGS - PUSH U8 SF_PARAM1[RBP] - MOV RAX,U8 [SYS_EXTERN_TABLE] - MOV RAX,U8 EXT_HEAPLOG_FREE*8[RAX] - OR RAX,RAX - JZ @@2 - CALL RAX -@@2: ADD RSP,8 - POP_C_REGS - -@@1: MOV RSI,U8 SF_PARAM1[RBP] - OR RSI,RSI - JZ U4 @@100 - XOR EBX,EBX - MOV RDX,U8 SF_PARAM2[RBP] - OR RDX,RDX - JNZ @@30 - MOV RDX,U8 FS:TSS_ABSOLUTE_ADDRESS[RBX] -@@30: MOV RAX,GS:CPU_ABSOLUTE_ADDRESS[RBX] - MOV RAX,U8 CPU_HEAP[RAX] - OR RAX,RAX - JZ @@32 - MOV RDX,RAX - JMP U4 FREE_HC_JOIN - -@@32: PUSHFD - CLI -@@31: LOCK - BTS U4 [SYS_SEMAS+SYS_SEMA_MEM_BUSY*SEMA_STRUCT_SIZE],0 - JC @@31 - SUB RSI,UM_START - CMP RDX,U8 UM_TSS[RSI] - JE @@10 - PUSH_C_REGS - PUSH RSI - CALL CP_BAD_MEM_FREE - ADD RSP,8 - POP_C_REGS - JMP @@101 -@@10: XOR EAX,EAX - MOV RAX,U8 UM_SIZE[RSI] - CMP RAX,HEAP_HASH_SIZE - JAE @@5 - MOV U8 UUM_SIZE[RSI],RAX - MOV RBX,U8 TSS_HEAP_HASH[RAX+RDX] - MOV U8 UUM_NEXT[RSI],RBX - MOV U8 TSS_HEAP_HASH[RAX+RDX],RSI - JMP @@101 - -@@5: SUB RSI,MB_STRUCT_SIZE - PUSH RSI - CALL FREE_MEM_BLKS - ADD RSP,8 - -@@101: LOCK - BTR U4 [SYS_SEMAS+SYS_SEMA_MEM_BUSY*SEMA_STRUCT_SIZE],0 - POPFD -@@100: POP RDI - POP RSI - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_MSIZE:: - PUSH RBP - MOV RBP,RSP - MOV RBX,U8 SF_PARAM1[RBP] - XOR EAX,EAX - OR RBX,RBX - JZ @@100 - MOV RAX,U8 UM_SIZE-UM_START[RBX] - SUB RAX,UM_START -@@100: POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_MTSS:: - PUSH RBP - MOV RBP,RSP - MOV RBX,U8 SF_PARAM1[RBP] - XOR EAX,EAX - OR RBX,RBX - JZ @@100 - MOV RAX,U8 UM_TSS-UM_START[RBX] -@@100: POP RBP - RET -} - -LTextern CP_MALLOC void *MAlloc(U8 size,TssStruct *tss=NULL); -LTextern CP_FREE void Free(void *add,TssStruct *tss=NULL); -LTextern CP_MSIZE U8 MSize(void *src); //size of heap object -LTextern CP_MTSS TssStruct *MTss(void *src); //tss of heap object - -void *MAllocZ(U8 size,TssStruct *tss=NULL) -{ - void *result=MAlloc(size,tss); - MemSet(result,0,size); - return result; -} - -void *AMAlloc(U8 size) -{ - return MAlloc(size,adam_tss); -} - -void AFree(void *add) -{ - Free(add,adam_tss); -} - -void *MAllocIdentical(void *src,TssStruct *tss=NULL) -{ - U8 size=MSize(src); - void *result=MAlloc(size,tss); - MemCpy(result,src,size); -} - -void *AMAllocIdentical(void *src) -{ - return MAllocIdentical(src,adam_tss); -} - -I1 *NewStr(I1 *buf,TssStruct *tss=NULL) -{ - U8 size=StrLen(buf)+1; - I1 *result=MAlloc(size,tss); - MemCpy(result,buf,size); -} - -I1 *ANewStr(I1 *buf) -{ - return NewStr(buf,adam_tss); -} - -void *AMAllocZ(U8 size) -{ - return MAllocZ(size,adam_tss); -} - -void DelLinkedList(void **list) -{ - void **d; - while (list) { - d=*list; - Free(list); - list=d; - } -} - -////**************************PROCEDURE************************* -asm {ALLOCATE_HC_MEM_BLKS::} -void *AllocHCMemBlks(U8 *pages512,HeapCtrl *hc) -{ - MemBlk *result=NULL,*m; - U8 i,num=*pages512,old_flags=GetFlags; - Cli; - if (numfree_page_hash[num]) { - hc->free_page_hash[num]=result->next; - result->signature=MBS_USED_SIGNATURE; - SetFlags(old_flags); - return result; - } - } else { - num-=2; - i=Bsr(num)+1; - num=0; - Bts(&num,i); - num+=2; - *pages512=num; - if (result=hc->free_page_hash2[i]) { - hc->free_page_hash2[i]=result->next; - result->signature=MBS_USED_SIGNATURE; - SetFlags(old_flags); - return result; - } - } - m=&hc->mem_free_list; - do { - if (!(result=m->next)) { - SysOutOfMem; - SetFlags(old_flags); - return NULL; - } - if (result->pagespages==num) { - m->next=result->next; - result->signature=MBS_USED_SIGNATURE; - SetFlags(old_flags); - return result; - } else { - result->pages-=num; - result+=result->pages<pages=num; - result->signature=MBS_USED_SIGNATURE; - SetFlags(old_flags); - return result; - } - } - } while (TRUE); -} - -asm {FREE_HC_MEM_BLKS::} -void FreeHCMemBlks(MemBlk *m,HeapCtrl *hc) -{ - U8 i,old_flags,pages512; - if (m) { - old_flags=GetFlags; - pages512=m->pages; - Cli; - if (m->signature!=MBS_USED_SIGNATURE) { - SysBadMemFree(m); - goto done; - } - m->signature=MBS_UNUSED_SIGNATURE; - m->pages=pages512; - if (pages512next=hc->free_page_hash[pages512]; - hc->free_page_hash[pages512]=m; - } else { - pages512-=2; - i=Bsr(pages512); - m->next=hc->free_page_hash2[i]; - hc->free_page_hash2[i]=m; - } -done: - SetFlags(old_flags); - } -} - -void InitHeapCtrl(HeapCtrl *hc,U8 pages512) -{ - MemBlk *m; - MemSet(hc,0,sizeof(HeapCtrl)); - hc->size=pages512; - m=(hc+sizeof(HeapCtrl)+PAGE_SIZE-1)&~(PAGE_SIZE-1); - hc->mem_free_list=m; - m->next=NULL; - m->pages=(hc+pages512<>PAGE_BITS; - m->signature=MBS_UNUSED_SIGNATURE; -} - -asm { - STRUC 0 -HC_SIZE: DU8 ?; -HC_FLAGS: DU8 ?; -HC_MALLOC_FREE_LIST: DU8 ?; -HC_MEM_FREE_LIST: DU8 ?; -HC_HEAP_HASH: DU1 HEAP_HASH_SIZE DUP(?); -HC_FREE_PAGE_HASH: DU8 FREE_PAGE_HASH_SIZE DUP(?); -HC_FREE_PAGE_HASH2: DU8 64 DUP(?); -HC_STRUCT_SIZE: - ENDS -////**************************PROCEDURE************************* -// OUT: RAX=BASE ADDRESS -// - ALIGN 8,OC_NOP -CP_MALLOC_HC:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - - MOV RDX,U8 SF_PARAM2[RBP] - -MALLOC_HC_JOIN:: - MOV RAX,U8 SF_PARAM1[RBP] - PUSHFD - CLI -@@31: LOCK - BTS U4 HC_FLAGS[RDX],HCf_LOCKED - JC @@31 - - ADD RAX,UM_START+8-1 //round-up to U8 - AND RAX,~7 - CMP RAX,UUM_STRUCT_SIZE - JAE @@4 - MOV RAX,UUM_STRUCT_SIZE -@@4: CMP RAX,HEAP_HASH_SIZE - JAE @@10 - MOV RSI,U8 HC_HEAP_HASH[RAX+RDX] - OR RSI,RSI - JZ @@13 - MOV RCX,U8 UUM_NEXT[RSI] - MOV U8 HC_HEAP_HASH[RAX+RDX],RCX - JMP U4 @@5 - -@@10: ADD RAX,MB_STRUCT_SIZE+PAGE_SIZE-1 - SHR RAX,PAGE_BITS - - PUSH RDX - PUSH RAX - MOV RAX,RSP - PUSH RDX - PUSH RAX - CALL ALLOCATE_HC_MEM_BLKS - MOV RSI,RAX - ADD RSP,16 - POP RAX - POP RDX - - SHL RAX,PAGE_BITS - SUB RAX,MB_STRUCT_SIZE - ADD RSI,MB_STRUCT_SIZE - JMP U4 @@5 - -@@13: MOV RSI,RDX - ADD RSI,HC_MALLOC_FREE_LIST - -@@1: LEA RBX,U8 UUM_NEXT[RSI] - MOV RSI,U8 [RBX] - OR RSI,RSI - JNZ @@2 - PUSH RAX //-**** - ADD RAX,16*PAGE_SIZE-1 - SHR RAX,PAGE_BITS - - PUSH RDX - PUSH RAX - MOV RAX,RSP - PUSH RDX - PUSH RAX - CALL ALLOCATE_HC_MEM_BLKS - MOV RSI,RAX - ADD RSP,16 - POP RAX - POP RDX - - LEA RSI,U8 MB_STRUCT_SIZE[RSI] - SHL RAX,PAGE_BITS - SUB RAX,MB_STRUCT_SIZE - MOV RDI,U8 HC_MALLOC_FREE_LIST[RDX] - MOV U8 UUM_NEXT[RSI],RDI - MOV U8 UUM_SIZE[RSI],RAX - MOV U8 HC_MALLOC_FREE_LIST[RDX],RSI - MOV RBX,RDX - ADD RBX,HC_MALLOC_FREE_LIST - POP RAX //+**** - JMP @@3 -@@2: CMP U8 UUM_SIZE[RSI],RAX - JB @@1 - JNE @@3 - -@@8: MOV RDI,U8 UUM_NEXT[RSI] - MOV U8 UUM_NEXT[RBX],RDI - JMP @@5 - -@@3: SUB U8 UUM_SIZE[RSI],RAX //UPDATE FREE ENTRY - CMP U8 UUM_SIZE[RSI],UUM_STRUCT_SIZE - JAE @@7 - ADD U8 UUM_SIZE[RSI],RAX - XOR EAX,EAX - MOV RAX,U8 UUM_SIZE[RSI] - JMP @@8 - -@@7: MOV RDI,U8 UUM_SIZE[RSI] - ADD RSI,RDI //SET ESI TO @ALLOCATED PAGES - -@@5: MOV U8 UM_SIZE[RSI],RAX - MOV U8 UM_HEAP_CTRL[RSI],RDX - ADD RSI,UM_START - -@@100: LOCK - BTR U4 HC_FLAGS[RDX],HCf_LOCKED - POPFD - MOV RAX,RSI - - BT U4 [SYS_SEMAS+SYS_SEMA_HEAPLOG*SEMA_STRUCT_SIZE],0 - JNC @@200 - PUSH_C_REGS - PUSH RDX - PUSH RAX - MOV RAX,U8 [SYS_EXTERN_TABLE] - MOV RAX,U8 EXT_HEAPLOG_MALLOC*8[RAX] - OR RAX,RAX - JZ @@202 - CALL RAX -@@202: ADD RSP,16 - POP_C_REGS -@@200: -/************* -This will initialize memory to some value -for debugging. - PUSH RAX - PUSH RCX - MOV RCX,U8 UM_SIZE-UM_START[RAX] - SUB RCX,UM_START - MOV RDI,RAX - MOV RAX,0x12345678 - REP_STOSB - POP RCX - POP RAX -**********/ - - POP RDI - POP RSI - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_FREE_HC:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - - BT U4 [SYS_SEMAS+SYS_SEMA_HEAPLOG*SEMA_STRUCT_SIZE],0 - JNC @@1 - PUSH_C_REGS - PUSH U8 SF_PARAM1[RBP] - MOV RAX,U8 [SYS_EXTERN_TABLE] - MOV RAX,U8 EXT_HEAPLOG_FREE*8[RAX] - OR RAX,RAX - JZ @@2 - CALL RAX -@@2: ADD RSP,8 - POP_C_REGS - -@@1: MOV RSI,U8 SF_PARAM1[RBP] - OR RSI,RSI - JZ U4 FREE_HC_DONE - MOV RDX,U8 SF_PARAM2[RBP] - -FREE_HC_JOIN:: - PUSHFD - CLI -@@31: LOCK - BTS U4 HC_FLAGS[RDX],HCf_LOCKED - JC @@31 - SUB RSI,UM_START - CMP RDX,U8 UM_HEAP_CTRL[RSI] - JE @@10 - PUSH_C_REGS - PUSH RSI - CALL CP_BAD_MEM_FREE - ADD RSP,8 - POP_C_REGS - JMP @@101 -@@10: XOR EAX,EAX - MOV RAX,U8 UM_SIZE[RSI] - CMP RAX,HEAP_HASH_SIZE - JAE @@5 - MOV U8 UUM_SIZE[RSI],RAX - MOV RBX,U8 HC_HEAP_HASH[RAX+RDX] - MOV U8 UUM_NEXT[RSI],RBX - MOV U8 HC_HEAP_HASH[RAX+RDX],RSI - JMP @@101 - -@@5: SUB RSI,MB_STRUCT_SIZE - PUSH RDX - PUSH RSI - CALL FREE_HC_MEM_BLKS - ADD RSP,8 - POP RDX - -@@101: LOCK - BTR U4 HC_FLAGS[RDX],HCf_LOCKED - POPFD -FREE_HC_DONE: - POP RDI - POP RSI - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_MEM_HEAP_CTRL:: - PUSH RBP - MOV RBP,RSP - MOV RBX,U8 SF_PARAM1[RBP] - XOR EAX,EAX - OR RBX,RBX - JZ @@100 - MOV RAX,U8 UM_HEAP_CTRL-UM_START[RBX] -@@100: POP RBP - RET -} - -LTextern CP_MALLOC_HC void *MAllocHC(U8 size,HeapCtrl *hc); -LTextern CP_FREE_HC void FreeHC(void *add,HeapCtrl *hc); -LTextern CP_MSIZE U8 MSizeHC(void *src); //size of heap object -LTextern CP_MEM_HEAP_CTRL HeapCtrl *MHeapCtrl(void *src); //HC of heap object - -void *MAllocHCZ(U8 size,HeapCtrl *hc) -{ - void *result=MAllocHC(size,hc); - MemSet(result,0,size); - return result; -} - -void *MAllocIdenticalHC(void *src,HeapCtrl *hc) -{ - U8 size=MSize(src); - void *result=MAllocHC(size,hc); - MemCpy(result,src,size); -} - -I1 *NewStrHC(I1 *buf,HeapCtrl *hc) -{ - U8 size=StrLen(buf)+1; - I1 *result=MAllocHC(size,hc); - MemCpy(result,buf,size); -} diff --git a/LT/OSMain/Misc.CPZ b/LT/OSMain/Misc.CPZ deleted file mode 100644 index 209232a..0000000 --- a/LT/OSMain/Misc.CPZ +++ /dev/null @@ -1,318 +0,0 @@ -BoolU8 AssignBit(void *field,U8 bit,U8 val) -{ - if (val) - return Bts(field,bit); - else - return Btr(field,bit); -} - -BoolU8 LAssignBit(void *field,U8 bit,U8 val) -{ - if (val) - return LBts(field,bit); - else - return LBtr(field,bit); -} - -void PortNop() -{ - InP(0x379); //This is an innoculous ISA (parallel port) - //access which should take - //fixed time on all machines. - //It takes 1.66uS -} - -void Exit() -{ - Bts(&Fs->task_flags,TSSf_KILL_TASK); - while (TRUE) - SwapInNext; -} - -BoolU8 ValidateTss(TssStruct *tss) -{ - if (tss->absolute_address!=tss) - return FALSE; - if (tss->in_queue_signature!=TSSS_IN_QUEUE_SIGNATURE) - return FALSE; - return TRUE; -} - -void Kill(TssStruct *tss,BoolU4 wait=TRUE) -{ - U8 i; - CPUStruct *c; - BoolU4 found,old_preempt=Preempt(OFF); - if (ValidateTss(tss)) { - found=FALSE; - if (tss==sys_update_screen_tss) - found=TRUE; - for (i=0;icain_tss) - found=TRUE; - } - if (!found) { - Bts(&tss->task_flags,TSSf_KILL_TASK); - if (wait) { - do { - SwapInNext; - if (!Bt(&tss->task_flags,TSSf_KILL_TASK)) - break; - } while (ValidateTss(tss)); - } - } - } - Preempt(old_preempt); -} - - -void SimpleTimerIrq(U8 rip) -{ - U8 old_flags=GetFlags; - nounusedwarn rip; - Cli; - if (mp_cnt>1) - while (LBts(&sys_semas[SYS_SEMA_SYS_TIMER],0)); - sys_jiffies++; - t=1.0*sys_jiffies/JIFFY_FREQ; - sys_timer+=SYS_TIMER0_PERIOD+1; - LBtr(&sys_semas[SYS_SEMA_SYS_TIMER],0); - if (mp_cnt>1) - MPIntAll(0x20); - SetFlags(old_flags); -} - -U8 Jiffies() -{ - return sys_jiffies; -} - -U8 ReadSysTimer() -{ - I8 i; - U8 result,old_flags=GetFlags; - Cli; - if (mp_cnt>1) - while (LBts(&sys_semas[SYS_SEMA_SYS_TIMER],0)); - OutP(0x43,0); //Latch Timer0 - if ((i=InP(0x40)+InP(0x40)<<8)==SYS_TIMER0_PERIOD) { - if (InP(0x20) & 1) - i=-1; - } - result=sys_timer+SYS_TIMER0_PERIOD-i; - LBtr(&sys_semas[SYS_SEMA_SYS_TIMER],0); - SetFlags(old_flags); - - return result; -} - -U8 TssTotalTime() -{ - U8 old_flags=GetFlags; - U8 result; - Cli; - if (mp_cnt>1) - while (LBts(&sys_semas[SYS_SEMA_TIMESTAMP],0)); - result=GetTimeStamp-Fs->time_slice_start+Fs->total_time; - LBtr(&sys_semas[SYS_SEMA_TIMESTAMP],0); - SetFlags(old_flags); - return result; -} - -LTDate BootTime() -//Roughly 49,710ths of a second since boot -{ - return ReadSysTimer<<14/(1833333*3*3*3/125); -} - -void BusyWait(U8 uS) //Loosely timed -{ - U8 i; - uS=uS<<1/3; - for (i=0;itask_flags,TSSf_IDLE); - target_val=GetTimeStamp+mS*time_stamp_kHz_freq; - do SwapInNext; - while (Fs->time_slice_starttask_flags,TSSf_IDLE,old_idle); - } -} - - -U8 RandU2() -{ - U8 i=GetTimeStamp; - rnd_SEED^=rnd_SEED*0x763D+i.u4[0]^i.u4[1]+rnd_SEED%0x56233; - return rnd_SEED.u2[0]; -} - -U8 RandU4() -{ - U8 result=0; - result.u2[0]=RandU2; - result.u2[1]=RandU2; - return result; -} - -U8 RandU8() -{ - U8 result; - result.u2[0]=RandU2; - result.u2[1]=RandU2; - result.u2[2]=RandU2; - result.u2[3]=RandU2; - return result; -} - -void Sound(U8 freq) -{ - U8 p,old_flags=GetFlags; - if (Bt(&sys_semas[SYS_SEMA_NO_SOUND],0)) - return; - Cli; - if (!LBts(&sys_semas[SYS_SEMA_SOUND],0)) { - if (freq) { - p=SYS_TIMER_FREQ/freq; - OutP(0x43,0xB6); - OutP(0x42,p); - OutP(0x42,p.u1[1]); - OutP(0x61,3|InP(0x61)); - } else - OutP(0x61,InP(0x61)&~3); - LBtr(&sys_semas[SYS_SEMA_SOUND],0); - } - SetFlags(old_flags); -} - -void Beep(U8 freq=500,BoolU4 busy=FALSE) -{ - Sound(freq); - if (busy) BusyWait(500000); - else Sleep(500); - Sound(0); - if (busy) BusyWait(200000); - else Sleep(200); -} - -BoolU8 Externs2Imports(BoolU4 val) { - return AssignBit(&Fs->last_lex->flags,LFf_EXTERNS_TO_IMPORTS,val); -} - -//Private symbols are accessible but -//don't show-up in reports -BoolU8 KeepPrivate(BoolU4 val) { - return AssignBit(&Fs->last_lex->flags,LFf_KEEP_PRIVATE,val); -} - -//Displays intermediate code as it is being added -BoolU8 PTrace(BoolU4 val) { - return AssignBit(&Fs->last_lex->flags,LFf_PARSE_TRACE,val); -} - -//Displays intermediate code after passes through optimization -BoolU8 OTrace(BoolU4 val) { - return AssignBit(&Fs->last_lex->flags,LFf_OPT_TRACE,val); -} - -//Controls which optimizerpasses are displayed -U8 OPassTraceMask(U8 i=0b100111111) { - U8 old=Fs->last_lex->pass_trace_mask; - Fs->last_lex->pass_trace_mask=i; - return old; -} - -//Turn on compiler option -//See $LK,"OPTf_IGNORE_OVERFLOW","MN:OPTf_IGNORE_OVERFLOW"$ -BoolU8 OptOn(U8 num) { - return Bts(&Fs->last_lex->opts,num); -} - -//Turn off compiler option -//See $LK,"OPTf_IGNORE_OVERFLOW","MN:OPTf_IGNORE_OVERFLOW"$ -BoolU8 OptOff(U8 num) { - return Btr(&Fs->last_lex->opts,num); -} - -//Get state of compiler option -//See $LK,"OPTf_IGNORE_OVERFLOW","MN:OPTf_IGNORE_OVERFLOW"$ -BoolU8 GetOpt(U8 num) { - return Bt(&Fs->last_lex->opts,num); -} - -//Displays assembly code output -BoolU8 CTrace(BoolU4 val) { - return AssignBit(&Fs->last_lex->flags,LFf_COMPILE_TRACE,val); -} - -//Displays lexical analyser's output -BoolU8 LTrace(BoolU4 val) { - return AssignBit(&Fs->last_lex->flags,LFf_LEX_TRACE,val); -} - -BoolU8 NoRegVar(BoolU4 val) { - return AssignBit(&Fs->last_lex->flags,LFf_NO_REG_VAR,val); -} - -//Displays text as it is being compiled -BoolU8 Echo(BoolU4 val) { - return AssignBit(&Fs->last_lex->flags,LFf_ECHO,val); -} - -BoolU8 SysEcho(BoolU4 val) { - return AssignBit(&Fs->last_lex->flags,LFf_ECHO,val); -} - -BoolU8 Silent(BoolU4 val) { - return AssignBit(&Fs->crt_flags,CRTf_SILENT,val); -} - -BoolU8 IOSound(BoolU4 val) { - return !LAssignBit(&sys_semas[SYS_SEMA_NO_IO_SOUND],0,!val); -} - -BoolU8 IsPreempt() { - return Bt(&Fs->task_flags,TSSf_PREEMPT); -} - -BoolU8 SysDbg(BoolU4 val) { -//Sets or resets a bit which you can -//use while debugging. - return LAssignBit(&sys_semas[SYS_SEMA_DEBUG],0,val); -} - -BoolU8 IsSysDbg() { -//Returns the value of the debug -//bit. - return Bt(&sys_semas[SYS_SEMA_DEBUG],0); -} - -BoolU8 Raw(BoolU4 val) { -//Switches to direct screen output -//mode for when you don't have -//a working window. - return !LAssignBit(&Fs->task_flags,TSSf_NOT_RAW,!val); -} - -BoolU8 IsRaw() { - return !Bt(&Fs->task_flags,TSSf_NOT_RAW); -} - - -SysHashEntry *FindLocalHash(I1 *st,U8 mask) -{ - return FindHashEntry(st,Fs->hash_table,mask); -} diff --git a/LT/OSMain/MultiProc.CPZ b/LT/OSMain/MultiProc.CPZ deleted file mode 100644 index 1bd858a..0000000 --- a/LT/OSMain/MultiProc.CPZ +++ /dev/null @@ -1,283 +0,0 @@ -asm { -////**************************PROCEDURE************************* - ALIGN 16,0x90 - USE16 -MP_INIT_START:: - JMP MP2_START2 - ALIGN 4,OC_NOP -MP2_SYS_TEMP_PTR: DU4 0,0; - -MP2_START2: - CLI - -// MOV EAX,CR0 - DU1 0x0F,0x20,0xC0; - OR EAX,0x60000000 -// MOV CR0,EAX - DU1 0x0F,0x22,0xC0; - - INVD - - MOV AX,MP_VECTOR_ADDRESS/16 - MOV DS,AX - - LGDT U4 [MP_SYS_TEMP_PTR] - - MOV EAX,SYS_START_CR0|0x60000000 -// MOV CR0,EAX - DU1 0x0F,0x22,0xC0; - - DU1 0x66,0xEA; //JMP SYS_CS_SEL:MP_INIT_OS - DU4 MP_INIT_OS; - DU2 SYS_CS_SEL; - -MP_INIT_END:: - USE32 -MP_INIT_OS: - MOV AX,ZERO_DS_SEL - MOV DS,AX - MOV ES,AX - MOV FS,AX - MOV GS,AX - MOV SS,AX - - MOV EDI,U4 [SYS_UNCACHED_MP_CNT] - MOV ESI,U4 [EDI] //TODO: not perfect - LOCK - INC U4 [EDI] - -// MOV EAX,CR0 - DU1 0x0F,0x20,0xC0; - AND EAX,~0x60000000 //enable cache -// MOV CR0,EAX - DU1 0x0F,0x22,0xC0; - - IMUL2 ESI,CPU_STRUCT_SIZE - ADD ESI,U4 [SYS_MP_CPU_STRUCTS] - - LEA EAX,U4 CPU_START_STACK_TOP[ESI] - MOV ESP,EAX - PUSH U4 SYS_START_RFLAGS - POPFD - PUSH U4 0 - CALL INIT_EM64T -USE64 - PUSH RSI - CALL CP_PUT_GS_BASE - POP RSI -@@2: MOV RBX,U8 CPU_CAIN_TSS[RSI] - OR RBX,RBX - JZ @@2 - MOV RAX,RBX - CALL PUT_FS_BASE - - MOV RAX,U4 SYS_TEMP_PTR - MOV U2 [RAX],MAXIDT*16-1 - MOV U4 2[RAX],SYS_IDTTAB - MOV U2 6[RAX],0 - MOV U4 8[RAX],0 - REX - LIDT U4 [RAX] - - JMP U4 RESTORE_CONTEXT -} - -void MPInt(U8 num,U8 cpu_num=1) -{ - U4 *dl=MP_ICR_LOW,*dh=MP_ICR_HIGH; - U8 old_flags=GetFlags; - Cli; - while (*dl&0x1000); //TODO semaphore - *dh=cpu_num<<24; - *dl=0x4800+num; - SetFlags(old_flags); -} - -void MPIntAll(U8 num) -{ - U4 *dl=MP_ICR_LOW; - U8 old_flags=GetFlags; - Cli; - while (*dl&0x1000); //TODO semaphore - *dl=0xC4800+num; - SetFlags(old_flags); -} - -void MPNMInt() -{ - U4 *dl=MP_ICR_LOW; - *dl=0xC4400; -} - -void MPHalt() -{ - MPNMInt; //Hlt All other processors -} - -void MPInitAPIC() -{ - U4 *d; - d=MP_SVR; - *d=*d|MP_APIC_ENABLED; - d=MP_LDR; - *d=Gs->num<<24; - d=MP_DFR; - *d=0xF0000000; - MemSet(MP_IRR,0,0x20); - MemSet(MP_ISR,0,0x20); - MemSet(MP_TMR,0,0x20); - SetTR(Gs->tr); -} - -void MPWaitForTask() -{ - MPCmdStruct *tempm; - Bts(&Fs->task_flags,TSSf_IDLE); - while (TRUE) { - WbInvd; - FinishOffDyingTsses; - while (mp_ctrl->next_waiting==mp_ctrl) - SwapInNext; - while (LBts(&mp_ctrl->flags,MPCCf_LOCKED)) - SwapInNext; - tempm=mp_ctrl->next_waiting; - RemQue(tempm); - LBtr(&mp_ctrl->flags,MPCCf_LOCKED); - if (tempm!=mp_ctrl) { - Btr(&Fs->task_flags,TSSf_IDLE); - switch (tempm->cmd_code) { - case MPCT_CALL: - CallInd(tempm->add,tempm->data); - break; - case MPCT_SPAWN_TASK: - Spawn(tempm->add,"MP Job"); - break; - } - if (Bt(&tempm->flags,MPCf_FREE_ON_COMPLETE)) - FreeHC(tempm,mp_heap); - else { - while (LBts(&mp_ctrl->flags,MPCCf_LOCKED)) - SwapInNext; - InsQue(tempm,mp_ctrl->last_done); - LBtr(&mp_ctrl->flags,MPCCf_LOCKED); - } - LBtr(&Gs->flags,CPUf_NOT_READY); - Bts(&Fs->task_flags,TSSf_IDLE); - } - } -} - -void MPQueueJob(void *add,void *data=NULL, - U8 flags=1<cmd_code=MPCT_SPAWN_TASK; - else - tempm->cmd_code=MPCT_CALL; - tempm->add=add; - tempm->data=data; - tempm->flags=flags; - while (LBts(&mp_ctrl->flags,MPCCf_LOCKED)) - SwapInNext; - InsQue(tempm,mp_ctrl->last_waiting); - LBtr(&mp_ctrl->flags,MPCCf_LOCKED); -} - -void MPInitCPUTsk() -{ - MPInitAPIC; - Fs->rip=&MPWaitForTask; - Fs->time_slice_start=GetTimeStamp; - RestoreContext; -} - -void MPStart() -{ - TssStruct *tss; - I1 buf[128]; - U4 *d; - MPMainStruct *mp=MP_VECTOR_ADDRESS; - I8 i=0; - CPUStruct *c; - BoolU4 old_preempt=Preempt(OFF); - I8 shared_blks; - - if (mp_cnt>1) { - Preempt(old_preempt); - return; - } - - MemCpy(MP_VECTOR_ADDRESS,MP_INIT_START,MP_INIT_END-MP_INIT_START); - mp->sys_temp_ptr=MAXGDT*16-1+gdttab<<16; - mp_cnt=1; - *uncached_mp_cnt=1; - - d=MP_LVT3; - *d=*d&0xFFFFFF00+MP_VECTOR; - WbInvd; - - d=MP_ICR_LOW; - *d=0xCC500; //assert init IPI - BusyWait(10000); - - *d=0xC4600+MP_VECTOR; //start-up - BusyWait(200); - *d=0xC4600+MP_VECTOR;$FG$ - - BusyWait(10000); - - mp_cnt=*uncached_mp_cnt; - for (i=1;iin_queue_signature=TSSS_IN_QUEUE_SIGNATURE; - tss->gs=InitCPUStruct(i,c); - shared_blks=1; //One 2Meg blk - c->cpu_heap=Alloc2MegMemBlks(&shared_blks); - InitHeapCtrl(c->cpu_heap,shared_blks<<12); - c->tr=InitTssStruct2; - c->cain_tss=tss; - WbInvd; - } - Preempt(old_preempt); -} - -void MPInit() -{ - I8 shared_blks=1; //One 2Meg blk - TssStruct *tss; - RaxRbxRcxRdx e; - CPUStruct *c; - - CpuId(0x1,&e); - - mp_cnt=1; - mp_heap=AllocUncachedMemBlks(&shared_blks); - InitHeapCtrl(mp_heap,shared_blks<<12); - uncached_mp_cnt=MAllocHC(sizeof(U8),mp_heap); - *uncached_mp_cnt=1; - - mp_ctrl=MAllocHCZ(sizeof(MPCmdCtrl),mp_heap); - mp_ctrl->next_waiting=mp_ctrl; - mp_ctrl->last_waiting=mp_ctrl; - mp_ctrl->next_done=&mp_ctrl->next_done; - mp_ctrl->last_done=&mp_ctrl->next_done; - - mp_cpu_structs=MAllocHCZ(sizeof(CPUStruct)*MP_MAX_PROCESSORS,mp_heap); - c=mp_cpu_structs; - MemCpy(c,&sys_temp_cpu0_struct,sizeof(CPUStruct)); - c->absolute_address=c; - SetGs(c); - tss=adam_tss; - tss->time_slice_start=GetTimeStamp; - tss->in_queue_signature=TSSS_IN_QUEUE_SIGNATURE; - c->cain_tss=tss; - c->tr=InitTssStruct2; - - SwapInNext; //Store FPU for spawn - if (Bt(&e.rdx,9)) - MPInitAPIC; -} - diff --git a/LT/OSMain/OS.MPZ b/LT/OSMain/OS.MPZ deleted file mode 100644 index 422ebcc..0000000 --- a/LT/OSMain/OS.MPZ +++ /dev/null @@ -1,2518 +0,0 @@ -$LK,"ACSF_IN_STRUCT ","FL:::/LT/OSMain/AdamK.HPZ,1400"$1 0000 StrConst -$LK,"ACS_COMPRESS ","FL:::/LT/OSMain/OSDefs.ASZ,299"$00000098 0002 SysSym Lit -$LK,"ACS_CUR_BITS_IN_USE ","FL:::/LT/OSMain/OSDefs.ASZ,290"$00000050 0001 SysSym Lit -$LK,"ACS_CUR_ENTRY ","FL:::/LT/OSMain/OSDefs.ASZ,288"$00000040 0001 SysSym Lit -$LK,"ACS_DST_BUF ","FL:::/LT/OSMain/OSDefs.ASZ,285"$00000028 0000 SysSym Lit -$LK,"ACS_DST_POS ","FL:::/LT/OSMain/OSDefs.ASZ,282"$00000010 0000 SysSym Lit -$LK,"ACS_DST_SIZE ","FL:::/LT/OSMain/OSDefs.ASZ,283"$00000018 0000 SysSym Lit -$LK,"ACS_ENTRY_USED ","FL:::/LT/OSMain/OSDefs.ASZ,297"$00000088 0001 SysSym Lit -$LK,"ACS_FREE_INDEX ","FL:::/LT/OSMain/OSDefs.ASZ,294"$00000070 0002 SysSym Lit -$LK,"ACS_FREE_LIMIT ","FL:::/LT/OSMain/OSDefs.ASZ,295"$00000078 0003 SysSym Lit -$LK,"ACS_HASH ","FL:::/LT/OSMain/OSDefs.ASZ,300"$00010098 0002 SysSym Lit -$LK,"ACS_LAST_CH ","FL:::/LT/OSMain/OSDefs.ASZ,298"$00000090 0000 SysSym Lit -$LK,"ACS_MIN_BITS ","FL:::/LT/OSMain/OSDefs.ASZ,286"$00000030 0000 SysSym Lit -$LK,"ACS_MIN_TABLE_ENTRY ","FL:::/LT/OSMain/OSDefs.ASZ,287"$00000038 0001 SysSym Lit -$LK,"ACS_NEXT_BITS_IN_USE ","FL:::/LT/OSMain/OSDefs.ASZ,291"$00000058 0002 SysSym Lit -$LK,"ACS_NEXT_ENTRY ","FL:::/LT/OSMain/OSDefs.ASZ,289"$00000048 0003 SysSym Lit -$LK,"ACS_SAVED_BASECODE ","FL:::/LT/OSMain/OSDefs.ASZ,296"$00000080 0000 SysSym Lit -$LK,"ACS_SRC_BUF ","FL:::/LT/OSMain/OSDefs.ASZ,284"$00000020 0000 SysSym Lit -$LK,"ACS_SRC_POS ","FL:::/LT/OSMain/OSDefs.ASZ,280"$00000000 0000 SysSym Lit -$LK,"ACS_SRC_SIZE ","FL:::/LT/OSMain/OSDefs.ASZ,281"$00000008 0000 SysSym Lit -$LK,"ACS_STACK_BASE ","FL:::/LT/OSMain/OSDefs.ASZ,293"$00000068 0000 SysSym Lit -$LK,"ACS_STACK_PTR ","FL:::/LT/OSMain/OSDefs.ASZ,292"$00000060 0000 SysSym Lit -$LK,"ACS_STRUCT_SIZE ","FL:::/LT/OSMain/OSDefs.ASZ,301"$00018098 0000 SysSym Lit -$LK,"ACTIVATE_NEXT_USER ","FL:::/LT/OSMain/Scheduler.ASZ,205"$000068E0 0002 SysSym -$LK+BI,"AFree ","FL:::/LT/OSMain/Memory.CPZ,731",1$00008918 001A Funct Export -$LK,"ALLOCATE_HC_MEM_BLKS ","FL:::/LT/OSMain/Memory.CPZ,776"$00008AC0 0002 SysSym Export -$LK,"ALLOCATE_MEM_BLKS ","FL:::/LT/OSMain/Memory.CPZ,416"$00008468 0002 SysSym Export -$LK,"ALL_MASK ","FL:::/LT/OSMain/AdamK.HPZ,109"$-1 0000 StrConst -$LK+BI,"AMAlloc ","FL:::/LT/OSMain/Memory.CPZ,726",2$000088F0 0008 Funct Export -$LK+BI,"AMAllocIdentical ","FL:::/LT/OSMain/Memory.CPZ,743",3$000089A0 0004 Funct Export -$LK+BI,"AMAllocZ ","FL:::/LT/OSMain/Memory.CPZ,760",4$00008A60 0009 Funct Export -$LK+BI,"ANewStr ","FL:::/LT/OSMain/Memory.CPZ,755",5$00008A38 0007 Funct Export -$LK,"ARC_MAX_BITS ","FL:::/LT/OSMain/AdamK.HPZ,2270"$12 0006 StrConst -$LK,"ARC_MAX_TABLE_ENTRY ","FL:::/LT/OSMain/AdamK.HPZ,2271"$((1<answers[0]) 0000 StrConst -$LK,"ans0 ","FL:::/LT/OSMain/AdamK.HPZ,1995"$(Fs->answers[0]) 0000 StrConst -$LK,"ans1 ","FL:::/LT/OSMain/AdamK.HPZ,1996"$(Fs->answers[1]) 0000 StrConst -$LK,"ans2 ","FL:::/LT/OSMain/AdamK.HPZ,1997"$(Fs->answers[2]) 0000 StrConst -$LK,"ans3 ","FL:::/LT/OSMain/AdamK.HPZ,1998"$(Fs->answers[3]) 0000 StrConst -$LK,"ans4 ","FL:::/LT/OSMain/AdamK.HPZ,1999"$(Fs->answers[4]) 0000 StrConst -$LK,"ans5 ","FL:::/LT/OSMain/AdamK.HPZ,2000"$(Fs->answers[5]) 0000 StrConst -$LK,"ans6 ","FL:::/LT/OSMain/AdamK.HPZ,2001"$(Fs->answers[6]) 0000 StrConst -$LK,"ans7 ","FL:::/LT/OSMain/AdamK.HPZ,2002"$(Fs->answers[7]) 0000 StrConst -$LK,"ansd ","FL:::/LT/OSMain/AdamK.HPZ,2004"$(Fs->double_answers[0]) 0000 StrConst -$LK,"ansd0 ","FL:::/LT/OSMain/AdamK.HPZ,2005"$(Fs->double_answers[0]) 0000 StrConst -$LK,"ansd1 ","FL:::/LT/OSMain/AdamK.HPZ,2006"$(Fs->double_answers[1]) 0000 StrConst -$LK,"ansd2 ","FL:::/LT/OSMain/AdamK.HPZ,2007"$(Fs->double_answers[2]) 0000 StrConst -$LK,"ansd3 ","FL:::/LT/OSMain/AdamK.HPZ,2008"$(Fs->double_answers[3]) 0000 StrConst -$LK,"ansd4 ","FL:::/LT/OSMain/AdamK.HPZ,2009"$(Fs->double_answers[4]) 0000 StrConst -$LK,"ansd5 ","FL:::/LT/OSMain/AdamK.HPZ,2010"$(Fs->double_answers[5]) 0000 StrConst -$LK,"ansd6 ","FL:::/LT/OSMain/AdamK.HPZ,2011"$(Fs->double_answers[6]) 0000 StrConst -$LK,"ansd7 ","FL:::/LT/OSMain/AdamK.HPZ,2012"$(Fs->double_answers[7]) 0000 StrConst -$LK,"boot_blkdev ","FL:::/LT/OSMain/OSGlbls.CPZ,33"$0000720D 0004 GlbVar Export -$LK,"compiled_functions ","FL:::/LT/OSMain/OSGlbls.CPZ,32"$000071FD 0001 GlbVar Export -$LK,"compiled_lines ","FL:::/LT/OSMain/OSGlbls.CPZ,32"$000071F5 0001 GlbVar Export -$LK,"ctrl_alt_letter_routines ","FL:::/LT/OSMain/OSGlbls.CPZ,43"$0000735A 0001 GlbVar Export -$LK,"dc_col ","FL:::/LT/OSMain/OSGlbls.CPZ,25"$0000719D 0009 GlbVar Export -$LK,"dc_cursor_blink ","FL:::/LT/OSMain/OSGlbls.CPZ,25"$000071AD 0001 GlbVar Export -$LK,"dc_flags ","FL:::/LT/OSMain/OSGlbls.CPZ,25"$000071A5 0009 GlbVar Export -$LK,"dec_numeric_bitmap ","FL:::/LT/OSMain/AdamK2.HPZ,257"$000069F0 0000 GlbVar Public Export -$LK,"default_drive ","FL:::/LT/OSMain/OSGlbls.CPZ,35"$00007225 0004 GlbVar Export -$LK,"default_iso_name ","FL:::/LT/OSMain/OSGlbls.CPZ,31"$000071DD 0003 GlbVar Export -$LK,"default_partition ","FL:::/LT/OSMain/OSGlbls.CPZ,34"$0000721D 0005 GlbVar Export -$LK,"disk_reads ","FL:::/LT/OSMain/OSGlbls.CPZ,32"$000071E5 0002 GlbVar Export -$LK,"disk_writes ","FL:::/LT/OSMain/OSGlbls.CPZ,32"$000071ED 0002 GlbVar Export -$LK,"displayable_chars_bitmap ","FL:::/LT/OSMain/AdamK2.HPZ,262"$00006A70 0000 GlbVar Public Export -$LK,"drive_to_partition ","FL:::/LT/OSMain/OSGlbls.CPZ,36"$00007226 0003 GlbVar Export -$LK,"e ","FL:::/LT/OSMain/AdamK2.HPZ,230"$00005110 0001 GlbVar Public Export -$LK,"ext ","FL:::/LT/OSMain/AdamK2.HPZ,281"$00003010 000A GlbVar Public Export -$LK,"fdc_disk_cylinders ","FL:::/LT/OSMain/OSGlbls.CPZ,15"$00007165 0002 GlbVar Export -$LK,"fdc_disk_sectors ","FL:::/LT/OSMain/OSGlbls.CPZ,16"$00007169 000A GlbVar Export -$LK,"fdc_dma_buf ","FL:::/LT/OSMain/OSGlbls.CPZ,18"$00007171 000A GlbVar Export -$LK,"fdc_drive_heads ","FL:::/LT/OSMain/OSGlbls.CPZ,14"$00007161 0006 GlbVar Export -$LK,"fdc_max_sector ","FL:::/LT/OSMain/OSGlbls.CPZ,17"$0000716D 0004 GlbVar Export -$LK,"fdc_retries ","FL:::/LT/OSMain/OSGlbls.CPZ,13"$0000715D 0003 GlbVar Export -$LK,"filename_chars_bitmap ","FL:::/LT/OSMain/AdamK2.HPZ,261"$000069D0 0002 GlbVar Public Export -$LK,"free_gdt_list ","FL:::/LT/OSMain/AdamK2.HPZ,174"$00002018 0004 GlbVar Export -$LK,"free_page_hash ","FL:::/LT/OSMain/AdamK2.HPZ,138"$00003028 0008 GlbVar Export -$LK,"free_page_hash2 ","FL:::/LT/OSMain/AdamK2.HPZ,139"$00003828 0008 GlbVar Export -$LK,"gdttab ","FL:::/LT/OSMain/AdamK2.HPZ,175"$00000010 0005 GlbVar Export -$LK,"gr_merge_base ","FL:::/LT/OSMain/OSGlbls.CPZ,26"$000071BD 0002 GlbVar Export -$LK,"grbase2 ","FL:::/LT/OSMain/OSGlbls.CPZ,26"$000071B5 0008 GlbVar Export -$LK,"grfont ","FL:::/LT/OSMain/OSGlbls.CPZ,11"$00007155 0002 GlbVar Export -$LK,"hex_numeric_bitmap ","FL:::/LT/OSMain/AdamK2.HPZ,258"$00006A10 0000 GlbVar Public Export -$LK,"ip_inhibit_win_operations ","FL:::/LT/OSMain/OSGlbls.CPZ,39"$00007336 0002 GlbVar Export -$LK,"kbd_evt_time ","FL:::/LT/OSMain/OSGlbls.CPZ,48"$0000739A 0002 GlbVar Export -$LK,"kbdmouse_fifo ","FL:::/LT/OSMain/OSGlbls.CPZ,49"$000073A2 0001 GlbVar Export -$LK,"local_blkdevs ","FL:::/LT/OSMain/OSGlbls.CPZ,33"$00007205 0004 GlbVar Export -$LK,"local_partitions ","FL:::/LT/OSMain/OSGlbls.CPZ,34"$00007215 0006 GlbVar Export -$LK,"local_time_offset ","FL:::/LT/OSMain/OSGlbls.CPZ,44"$00007362 0002 GlbVar Export -$LK,"log10_2 ","FL:::/LT/OSMain/AdamK2.HPZ,233"$00005128 0000 GlbVar Public Export -$LK,"log2_10 ","FL:::/LT/OSMain/AdamK2.HPZ,231"$00005118 0000 GlbVar Public Export -$LK,"log2_E ","FL:::/LT/OSMain/AdamK2.HPZ,232"$00005120 0000 GlbVar Public Export -$LK,"logE_2 ","FL:::/LT/OSMain/AdamK2.HPZ,234"$00005130 0000 GlbVar Public Export -$LK,"ltcd_base ","FL:::/LT/OSMain/OSGlbls.CPZ,20"$00007175 000C GlbVar Export -$LK,"ltdc_hash_table ","FL:::/LT/OSMain/OSGlbls.CPZ,22"$0000718D 0006 GlbVar Export -$LK,"ltdc_last_lru ","FL:::/LT/OSMain/OSGlbls.CPZ,21"$00007185 0005 GlbVar Export -$LK,"ltdc_next_lru ","FL:::/LT/OSMain/OSGlbls.CPZ,21"$0000717D 0005 GlbVar Export -$LK,"ltdc_size ","FL:::/LT/OSMain/OSGlbls.CPZ,23"$00007195 0003 GlbVar Export -$LK,"macro_util_tss ","FL:::/LT/OSMain/OSGlbls.CPZ,5"$00007129 0002 GlbVar Export -$LK,"mem_free_2Meg_list ","FL:::/LT/OSMain/AdamK2.HPZ,137"$00003020 0003 GlbVar Export -$LK,"mem_free_list ","FL:::/LT/OSMain/AdamK2.HPZ,136"$00003018 0004 GlbVar Export -$LK,"monitor_floppy_tss ","FL:::/LT/OSMain/OSGlbls.CPZ,10"$0000714D 0004 GlbVar Export -$LK,"month_start_days1 ","FL:::/LT/OSMain/Date.CPZ,1"$0000D2D0 0003 GlbVar Export -$LK,"month_start_days2 ","FL:::/LT/OSMain/Date.CPZ,3"$0000D2E8 0003 GlbVar Export -$LK,"mouse_evt_time ","FL:::/LT/OSMain/OSGlbls.CPZ,48"$00007392 0001 GlbVar Export -$LK,"mp_cnt ","FL:::/LT/OSMain/AdamK2.HPZ,193"$00003A68 000C GlbVar Public Export -$LK,"mp_cpu_structs ","FL:::/LT/OSMain/AdamK2.HPZ,195"$00003A60 0004 GlbVar Public Export -$LK,"mp_ctrl ","FL:::/LT/OSMain/OSGlbls.CPZ,7"$00007139 0015 GlbVar Export -$LK,"mp_heap ","FL:::/LT/OSMain/OSGlbls.CPZ,6"$00007131 0007 GlbVar Export -$LK,"num_blkdevs ","FL:::/LT/OSMain/OSGlbls.CPZ,37"$00007326 0004 GlbVar Export -$LK,"num_spawned_users ","FL:::/LT/OSMain/OSGlbls.CPZ,9"$00007149 0002 GlbVar Export -$LK,"one ","FL:::/LT/OSMain/AdamK2.HPZ,227"$000050F8 0000 GlbVar Public Export -$LK,"pi ","FL:::/LT/OSMain/AdamK2.HPZ,228"$00005100 0000 GlbVar Public Export -$LK,"pi2 ","FL:::/LT/OSMain/AdamK2.HPZ,229"$00005108 0000 GlbVar Public Export -$LK,"printable_chars_bitmap ","FL:::/LT/OSMain/AdamK2.HPZ,259"$00006A30 0000 GlbVar Public Export -$LK,"progress1 ","FL:::/LT/OSMain/AdamK2.HPZ,72"$00003A28 0001 GlbVar Public Export -$LK,"progress2 ","FL:::/LT/OSMain/AdamK2.HPZ,73"$00003A30 0001 GlbVar Public Export -$LK,"progress3 ","FL:::/LT/OSMain/AdamK2.HPZ,74"$00003A38 0001 GlbVar Public Export -$LK,"progress4 ","FL:::/LT/OSMain/AdamK2.HPZ,75"$00003A40 0001 GlbVar Public Export -$LK,"reverse_bits_table ","FL:::/LT/OSMain/OSGlbls.CPZ,42"$0000734A 0003 GlbVar Export -$LK,"rnd_SEED ","FL:::/LT/OSMain/OSGlbls.CPZ,29"$000071CD 0005 GlbVar Export -$LK,"safe_dollar_chars_bitmap ","FL:::/LT/OSMain/AdamK2.HPZ,260"$00006A50 0001 GlbVar Public Export -$LK,"sema ","FL:::/LT/OSMain/AdamK.HPZ,223"$4000000002 0005 Class -$LK,"sema_irq_busy ","FL:::/LT/OSMain/AdamK2.HPZ,173"$00004370 000D GlbVar Export -$LK,"sema_irqs ","FL:::/LT/OSMain/AdamK2.HPZ,172"$00003B70 0008 GlbVar Export -$LK,"set_bits_table ","FL:::/LT/OSMain/OSGlbls.CPZ,42"$00007352 0002 GlbVar Export -$LK,"sys_accounts ","FL:::/LT/OSMain/OSGlbls.CPZ,2"$00007079 0000 GlbVar Export -$LK,"sys_boot_base ","FL:::/LT/OSMain/AdamK2.HPZ,67"$00000004 0002 GlbVar Public Export -$LK,"sys_boot_code ","FL:::/LT/OSMain/AdamK2.HPZ,68"$00002010 0006 GlbVar Export -$LK,"sys_boot_header_base ","FL:::/LT/OSMain/AdamK2.HPZ,69"$00000008 0001 GlbVar Public Export -$LK,"sys_clipboard_ltf ","FL:::/LT/OSMain/OSGlbls.CPZ,30"$000071D5 0000 GlbVar Export -$LK,"sys_compile_time ","FL:::/LT/OSMain/OSGlbls.CPZ,40"$0000733A 0001 GlbVar Export -$LK,"sys_cur_focus_task ","FL:::/LT/OSMain/AdamK2.HPZ,70"$00003A48 0007 GlbVar Export -$LK,"sys_cur_scan_code ","FL:::/LT/OSMain/AdamK2.HPZ,71"$00003008 0004 GlbVar Export -$LK,"sys_flags ","FL:::/LT/OSMain/AdamK2.HPZ,66"$00002FF8 0000 GlbVar Public Export -$LK,"sys_font_8x8 ","FL:::/LT/OSMain/Font8x8.CPZ,2"$000073CA 0001 GlbVar Export -$LK,"sys_heap_base ","FL:::/LT/OSMain/AdamK2.HPZ,140"$00002FE8 0002 GlbVar Public Export -$LK,"sys_heap_limit ","FL:::/LT/OSMain/AdamK2.HPZ,141"$00002FF0 0002 GlbVar Public Export -$LK,"sys_irq_vectors ","FL:::/LT/OSMain/AdamK2.HPZ,163"$00005190 0000 GlbVar Export -$LK,"sys_jiffies ","FL:::/LT/OSMain/AdamK2.HPZ,204"$00003A58 0004 GlbVar Export -$LK,"sys_macro_queue ","FL:::/LT/OSMain/OSGlbls.CPZ,3"$000070B1 0005 GlbVar Export -$LK,"sys_put_key_queue ","FL:::/LT/OSMain/OSGlbls.CPZ,4"$00007101 000A GlbVar Export -$LK,"sys_semas ","FL:::/LT/OSMain/AdamK2.HPZ,198"$00004B70 001D GlbVar Export -$LK,"sys_startup_account ","FL:::/LT/OSMain/OSGlbls.CPZ,38"$0000732E 0001 GlbVar Export -$LK,"sys_temp_cpu0_struct ","FL:::/LT/OSMain/AdamK2.HPZ,194"$00003A78 0001 GlbVar Export -$LK,"sys_temp_filename ","FL:::/LT/OSMain/OSGlbls.CPZ,1"$00007029 0002 GlbVar Export -$LK,"sys_timer ","FL:::/LT/OSMain/AdamK2.HPZ,203"$00003A50 0003 GlbVar Export -$LK,"sys_timer_start ","FL:::/LT/OSMain/OSGlbls.CPZ,45"$00007372 0001 GlbVar Export -$LK,"sys_update_screen_tss ","FL:::/LT/OSMain/OSGlbls.CPZ,28"$000071C5 0003 GlbVar Export -$LK,"sysdbg0 ","FL:::/LT/OSMain/OSGlbls.CPZ,54"$000073AA 0001 GlbVar Export -$LK,"sysdbg1 ","FL:::/LT/OSMain/OSGlbls.CPZ,54"$000073B2 0001 GlbVar Export -$LK,"sysdbg2 ","FL:::/LT/OSMain/OSGlbls.CPZ,54"$000073BA 0001 GlbVar Export -$LK,"sysdbg3 ","FL:::/LT/OSMain/OSGlbls.CPZ,54"$000073C2 0001 GlbVar Export -$LK,"t ","FL:::/LT/OSMain/OSGlbls.CPZ,47"$0000738A 0003 GlbVar Export -$LK,"textbase ","FL:::/LT/OSMain/AdamK2.HPZ,78"$00003000 0002 GlbVar Export -$LK+BI,"throw ","FL:::/LT/OSMain/Except.CPZ,129",408$0000BA10 001C Funct Export -$LK+BI,"throw_join ","FL:::/LT/OSMain/Except.CPZ,95",409$0000B868 0002 Funct Export -$LK+BI,"throw_no_log ","FL:::/LT/OSMain/Except.CPZ,124",410$0000B9F0 0000 Funct Export -$LK,"time_stamp_freq ","FL:::/LT/OSMain/OSGlbls.CPZ,46"$0000737A 0002 GlbVar Export -$LK,"time_stamp_kHz_freq ","FL:::/LT/OSMain/OSGlbls.CPZ,46"$00007382 0002 GlbVar Export -$LK,"time_stamp_start ","FL:::/LT/OSMain/OSGlbls.CPZ,45"$0000736A 0001 GlbVar Export -$LK,"uncached_mp_cnt ","FL:::/LT/OSMain/AdamK2.HPZ,192"$00003A70 0004 GlbVar Export -$LK,"vga_image ","FL:::/LT/OSMain/OSGlbls.CPZ,41"$00007342 0001 GlbVar Export -0ÛÞ‰#‰5‰:‰0ÖÙðˆûˆ ‰‰0çê ‰«‰½‰Â‰0øû`ŠkŠ}Š‚Š0óö8ŠCŠUŠZŠ@§¬`AqAA�A˜AŸAX€ˆˆ?—?Ÿ?±?Ã?Õ?ò?ö?ÿ?HŸ¥A A/A=ALAWA\A ˆùxOƒO‘OµOÇOÙOêOûO PP(P6PDPOPTP -¸£·hK�K“KŸK¸KÐKÝKëKîKL L)L>L\LeL€L¹LÇLÚL 0~¡`IyI‹I”I™I¤I·I¾IÉI×IûI J J0JAJSJbJtJƒJ‘JšJ­J´JèJ÷JKK%K*K5KWKfK ˆâð8CICWC{C�CŸC°CÁCÕCâCðCþC DDD ˆÑßXBcBqB•B§B¹BÊBÛBìBýB CC'C2C7Cˆò D1DUDfDwD…DŠD›D«D¹DÇDÕDàDçD�è÷�N›N¦N´NØNêNüN OO,O:OHOVOdOoOtOÈ.D F³F¶FÁFÆFËFÖFéFøFGG!G#G)G7G=G@G`GmG€ 6XPqP|P‹P™P«P½PáPóPQQ%Q7QFQTQ_QnQ|Q Q²QÄQÕQæQøQRR(R6RHRQRdRkRšR©R¹R¾RÒRÜRáRðRH·½ A«A¾AÅAæAïAôA`bk(HEHPHcHjHyHŠH™H»HÆHˆFTpG�G”G§G®G´GÂGÖGàGãGåGðGH#HXv~è>ù>??(?:?L?{?‚?€Š—@ @@+@=@O@a@r@ƒ@•@§@Ë@Ð@ØÎæˆM©M´MÅMÖMßMñMÿMN NNN N-NANKNNNPN[N}N�N@ d�õ£õ²õÇõÚõïõö ööö ö4ö>öIöRöVönö‰ö“ö¡ö¹ö¼öÎö÷÷&÷3÷D÷\÷e÷y÷”÷«÷¸÷Ì÷ê÷ü÷ø'ø0øZøoøøŠøŒø¥ø¹øÆøËøÙøùù%ù3ùCùQùaùdù�ùøf‚�ù¡ù·ù»ùÌùÐùäùèùìùú,ú?úSúcúsú¸úÅúêúþú ûû'û7û:ûOû�L[ˆ£¼Ðà+9=N€ivàù5D[hv„­h]gPg€�¦³ÁÚhR\€·‰·œ·Ì·ç·"¸7¸b¸¨Íß8òUò…ò“ò¡òÆòßòòòóóóóó.ó X‰0qLqPqTqXq`qwq�q“q—q›qŸq£q¯qäq r0r7r9r\rcrlrqr“ršr«r¼r¿rÄrËrÜrírðrõrssss s0sAsMsPsisns|s•s¦s«s²s¿sÞsõs ttttt!t2tCtitƒtœtªt¸t½tÏtÚtõtuu*u-u2u:u?uDubugunu†uŠuµuºuÆu×uèuðuóuøuv#v3v:vKv\v_vdvkvsv„v•vžv±v´vÈv$w ðÛVX‚p‚u‚‡‚¥‚ª‚½‚Ï‚â‚ç‚é‚ƒ.ƒ6ƒ:ƒOƒTƒfƒ�ƒ“ƒ®ƒÀƒÛƒíƒ„„ „„0„5„G„b„h„s„…„š„¢„´„DŽ̄à„ó„………!…(…/…:…@…[…v…‘…—…�…¤…­…³…¸…¾…Å…Ê…Ó…Ù…ì… ††*†2†>†N†X†n†w†‡†’†™†µ†¹†¿†׆ù† ‡‡,‡>‡]‡`‡i‡€‡’‡¦‡µ‡´ˆ!€èõPŸqŸ…Ÿ“Ÿ¢Ÿ¦ŸªŸ®Ÿ´ŸºŸÑŸëŸ "h;E`w‰�—›£µÍÚ#Hgàõÿ59=GJek}„‹•�¯ÇÒÝèò÷$xo{�½¥½«½¬½º½Á½È½Ï½Ö½Ý½à½ï½%€`m0½I½O½P½^½b½f½j½n½r½|½½Ž½&úYp€…€‡€•€–€š€§€²€´€¾€Á€Ã€Í€Ó€Ø€æ€ò€ö€û€���"�'�.�8�;�@�J�T�W�\�b�g�l�ˆ�—�§�ª�¿�Í�Ù�Ý�â�å�ï�ó�‚‚‚ ‚"‚)‚+‚-‚=‚C‚N‚U‚Y‚[‚i‚l‚s‚{‚Š‚¥‚¬‚±‚¶‚¹‚Ì‚'P!(Èpëpðpõpqq-q(p »»»»0»?»U»_»b»e»r»)° <ÀŠÝŠßŠìŠíŠ÷Š‹0‹7‹:‹B‹G‹L‹]‹e‹p‹u‹|‹˜‹¯‹¶‹¹‹Á‹È‹Ó‹Ø‹Û‹â‹ð‹ó‹õ‹Œ ŒŒŒŒ'Œ3Œ:ŒAŒDŒIŒWŒjŒ*`W€´!´)´1´:´I´d´q´�´‘´ ´®´дØ´ç´ø´ú´µµµ µ.µGµ^µ‹µžµ§µ·µ×µïµñµ¶¶¶*¶1¶;¶L¶P¶W¶+h'1°UÁUÌUÙUæUêUVV"VH�‡À¤Ñ¤å¤í¤÷¤¥?(À©Ë©ï©ô©@�/>�®£®©®´®¹®½®À®Ø®Ü®Þ®â®è®õ®Aˆ@Nø®¯¯"¯-¯?¯C¯c¯h¯j¯m¯o¯“¯B€*w@ÉYÉ_ÉgÉzɉɓɦÉÁÉÃÉÍÉåÉÊÊÊ-ÊSÊ\Ê_ÊsʯÊÀÊÑÊæÊüÊËË/ËJËaËn˂ˠ˲ËÏËØËëËùË#Ì8ÌHÌMÌ[Ìq̛̲̉ÌÄÌÉÌàÌöÌÍ#Í,ÍEÍYÍfÍkÍ�ͮ͠ͼÍÊÍÍÍøÍC�ÇÖ°�Å�Ý�ï�ñ�ž#ž?žQžSž�žD�&¸°Ͱè°ú°ü°'±.±J±\±^±‡±EPAHÐcácòcd*d8dTd_dF`„�Pûgû¬û¹ûÌûãû÷ûüüüGˆª¸hýyý|ýˆý˜ý¢ý¶ýÕýôýýýþ þ%þ0þHPü ô+ô;ôQôcôyô‹ô�ôI8áå0ó;óaósóxóJ` H­Y­^­g­z­�­�­¤­¦­­­Kh -ð¬û¬­­)­-­6­=­A­F­L€4AHV_VjVsV}V³V¿VÈVÒVWWM0Y\pš{š”š™šN8“—ÀhÑhÜhîhõhO¸1pŒŒŒ’Œ¡Œ§Œ¶Œ¼ŒÁŒÕŒíŒ�#�A�^�c�x�Ž�P›¹%-%K%_%c%g%y%“%›%¦%±%½%Ì%Ý%÷%&&&0&J&P&]&a&i&y&„&‡&š&QxÕáËË(Ë:ËHËYËm˟˱ËÉËÎËÓËÖËRàVðê ë/ë3ë=ëQëXëeëyë�ë™ëµëÓëÜëëëì -ì#ì>ìGìvì~ì‡ì�ì™ì¤ì¦ì©ì±ìÎìâìÿìííí#í-í<í@íDíLíTí\írí}íˆí˜íŸí±í¼íÐíàíâí1îS° ¨éÂéÄéÌéòéê"ê'êTêpê~ê…ê—ê«ê­êïêT°K^€¼—¼�¼ž¼¦¼¼¼À¼Æ¼Ì¼Ð¼è¼½½ ½½½½½,½U°6Iлç»í»î»ö» ¼¼¼¼ ¼8¼Q¼U¼[¼_¼e¼h¼k¼|¼VPõ#õTõbõfõõ‚õ‹õWð8Hehq{�»Üä19CU`fqv{~�†£XP#¨Ô³Ô¸ÔÐÔÕ ÕYx}‰`±y±±€±�±¦±¸±¾±Ì±æ±Z€‹˜è±² ²²²-²?²E²S²d²[€š§h²‡²�²Ž²�²ª²¼²Â²Ð²á²\€n{Ȱá°ç°è°÷° ±1±7±E±\±]€_l0°I°O°P°_°‡°™°Ÿ°­°Æ°^€P]˜¯±¯·¯¸¯Ç¯ï¯°°°.°_Ø©Áè²ù²ú²³³/³4³D³I³Y³^³m³ƒ³’³”³«³·³â³``�˜ü/ütü�ü”ü¨üµü¸üÇüaXñù Ó·ÓËÓÐÓèÓ ÔÔ#Ôb8“—à$ë$û$ %%cH è‹ó‹ø‹ŒŒŒdh Œ1Œ6Œ9ŒBŒOŒZŒ]Œ_ŒjŒe¨y‹øÍ ÎÎÎ(Î5ÎOÎ_ÎaÎq·ένÎÍÎÛÎèÎfˆñ è¾ñ¾ ¿!¿<¿I¿n¿Œ¿™¿´¿û¿ ÀÀ#À.À<ÀKÀUÀZÀ‰À�À½ÀÇÀöÀ Á`ÁÇÁßÁâÁêÁïÁÿÁÂÂ'Â)Â:ÂgXýˆŠ™ŠžŠ¡Š¯Š²Š´Š¿Šh8’’#’2’7’i8cg€”‹”›”ª”¯”jˆàîÓÓÓ6ÓIÓ]ÓbÓtÓÓ�ÓžÓkp�¸H‘c‘q‘s‘„‘�‘¤‘¬‘±‘‘Ù‘ì‘’’’’"’C’J’h’j’‹’”’£’º’¿’Ê’Í’Ò’Ô’®“l0:=¨¹Ðm€.€–‘–¥–¬–·–¿–Ê–Ò–×–Ù–á–æ–î–ù–þ–—— —.—:—A—M—T—`—l—‰———¾—Í—Ü—ð—*˜@˜I˜c˜g˜l˜s˜�˜œ˜n (ØÇïÇòÇÈÈÈ!È0È6ÈCÈMÈXÈ\ÈgÈlÈuÈ~È�ȘȣȮȼÈÒÈøÈÉÉÉ>ÉoP Øôéôúôõõ õõpH �ô£ô´ô¸ôÃôÆôÓôqpïú¨ó¹ó¾óÈóÐó×óô ôôôr(hªsª—ªœªs 6‡PÏaÏlÏ~Ï�Ï­ÏÁÏÌÏßÏûÏÐ)Ð8ÐTÐlÐqЂЉЎКСЦеÐÅÐÈÐÍÐÔÐáÐìÐðÐòÐÑÑ -ÑÑÑ)Ñ-Ñ/ÑBÑCÑRÑ]ÑgÑzфюђіѣѰѷѾÑÈÑÒÑÖÑÚÑæÑÒÒ)Ò,Ò;Òtp  µ³µ¶µÄµËµ×µÚµÝµßµâµïµu@À Å × á è ë vػӠ&µ&Í&×&ê&ô&''('3':'>'F'J'R']'h'z'w(ÓÕè§ó§¨¨xx ðÜÝÝ)ÝZÝeÝmÝrÝ’Ý�ݡݲÝyÈ`vá)á2á=áHá^ácájásázášá¼áÇáÛáëáøáââz¸$€2“2ª2­2³2Å2Ì2Ó2ò2ö2û2ý233/383E3{0DG@4K4m4r4|È_uH5S5^5‚5‰5«5¸5Á5Ð5Ü5î5ù566'656@6N6\6g6l6}`­Ö09Q9X9c9n9x9�9†9™9¢9Ì9Ö9Ù9Ý9ß9ä9ç9ñ9ø9û9':::M:{:‚:¿:È:;;;;; ;3;~h�«Ð6ó677&7;7B7I7M7T7X7j7ƒ7‘7•7œ7£7ª7±7¿7Ó7ã7ó788$828C8N8k8|8¶8Á8Ê8Ò8î8ð8.9Xwp6{6†6�6”6œ6¾6É6Î6€H<Bà3÷344)444=4�86:¨3¹3Ä3Ô3Û3‚ÀÀ=Ý=ã=î=ù=>>>>>F>Y>l>—>š>¬>¯>²>·>Í>ƒ€&3H3Y3_3`3„3‰3‹3‘3œ3§3„hØ8;a;r;†;›;À;Ç;Î;Ò;Ù;Ý;ï;<<<!<(</<6<G<[<k<{<‹<™<®<¼<Í<Ø<ù<=@=K=T=\=z=|=¾=… ^Þ5ÞGÞXÞcÞnÞsÞ�ÞŽÞ™ÞªÞºÞÊÞÝÞõÞûÞßßß2ßDßi߀ߖ߭ßÌßÐßÕßüßàààà0à9àLàWà\ànà|à„à‰à¨à¬à±àØàÝàíàøàááᆠ‡¸Ðâñâùâ ãã-ã4ãFãMã\ãcã“ã–ã›ã©ã²ã¹ãÀãÅãÜãêãóãä9äoä‚ä†äŠä�ä¤äÌäÞäáäääæäëäå(å:å=åDåIå\净x…â-â:âAâeârâyâšâŸâÁâÄâÏâˆH¸ÝÃÝÈÝÎÝÐÝÕ݉HØÝãÝêÝÞÞÞЏº`å�å…å“å¤å³åºåÌåÓåÚåáåðå÷å#æ&æ+æ0æJæUæ\æ`ædæsæ|æƒæŠæ“æ—æ¯æµæÏæÕæîæðæóæõæç ç çRç‚ç†ç™ç�ç¡ç¦çªçÂçÈçãçíçÿç(è,è?èCèGèLèPèhèrè�è’è›è­èÕèÙèëèîèûèééé%é=é‹èÌæ@´M´X´j´|´‹´�´Ÿ´É´Ø´ä´ó´µ<µHµYµgµ›µŒ@ÃÈè³í³ò³ -´ ´=´�ˆš¨Èüáüçüúüÿü ý6ý<ýCýLýSýVýeýŽh»Å0;0?0J0S0e0}0�0œ0¡0²0�hÇѸ0Û0ß0ê0ó011/1<1A1R1�¸>Rh–�–£–»–Ä–Í–ã–ì–ñ–——*—F—N—\—f—i—|—‘°DWp™‰™˜™¸™Í™Ü™ü™šš;šDšKšOšTšYšlš’Edx؜؟صؾØÛØóØÙ3Ù\Ùj٘٭ÙÊÙâÙ Ú)ÚRÚWÚbÚlÚŽÚ‘Ú¬Ú“`ÆÏðÑ Ò Ò Ò$Ò6ÒAÒDÒSÒ”ØU�€—‰—�—�—²—Ä—É—ä—ñ—˜:˜e˜±˜à˜™™™ ™'™E™M™X™i™p™s™u™Ž™œ™¸™Ó™Ý™÷™ššš-š@šEšUš_šošvš€š‘š–š¬š•°Ø ˆž�ž§žžÊžåžŸ"ŸQŸuŸ”Ÿ¢Ÿ¤Ÿ§Ÿ­Ÿ±ŸÄŸΟןÚŸÝŸߟñŸ  B I M ` r ‰ ž º È à ç ë þ  ¡¡ ¡&¡+¡;¡U¡–àž×hªqªxªª–ª£ª»ªͪêªüª««)«N«l«y«”«Û«ë«ø«¬¬¬+¬5¬:¬P¬j¬q¬�¬”¬�¬Ŭî¬õ¬ü¬­­­+­2­<­M­R­w­—ÈU‹°ÄÅÄÏÄêÄíÄøÄÅ.Å6ÅJÅvņŎŒŚźÅÈÅÍÅÒÅ×ſŸů#ÆMÆPÆSÆfÆtƆÆ�ƲƽÆÙÆçÆÇÇÇÇ1ÇBÇGÇWÇeÇ~ǘ(;=p¬�¬¢¬™x‰•@ÒOÒcÒxÒ|Ò‡ÒŠÒ�Ò£ÒÊÒšX+3ØÎãÎõÎÏ)Ï4ÏIÏNÏ›`BKèÖ÷ÖÿÖ×××-×1×:לh]g°×¿×Ç×Ë×Þ×â׿×ù×ýר� š«øðñ)ñ.ñ8ñ:ñ?ñQñSñ\ñgñwñ�ñ›ñ½ñžXS›à¥é¥ÿ¥¦.¦;¦N¦\¦i¦}¦Ц£¦°¦ɦÖ¦ì¦ù¦§"§1§<§L§f§z§Ÿ§­§À§ϧÙ§å§ö§¨7¨G¨`¨ˆ¨ª¨Ϩܨé¨ô¨©0©J©c©n©y©†© ©´©ªª'ª.ª?ªOª_ªfªŸ¸‰�Ѓíƒòƒõƒýƒ „„ „$„*„+„2„<„F„M„P„c„ Xx»‹»‘»§»¨»²»¹»¼»É»¡à?XpŒ‹Œ”ŒšŒ¡Œ¢Œ°Œ»ŒÀŒÇŒËŒÔŒëŒÿŒ���+�?�B�S�¢€(Uˆ±‘±˜±¥±³±˱ݱâ±ý± -²²*²9²Y²z²’²™²·²ϲÞ²å²ð²õ²ÿ²³³-³S³e³v³™³°³³³µ³ųϳß³æ³ð³´´£°X¡a¡|¡‰¡�¡«¡¶¡áˡ͡ܡæ¡ö¡ý¡¢¢ ¢¤xÀÌ@…U…[…\…c…o…r…}…€…‚………”…¥�®½Ð„á„æ„ì„í„û„………+….…9…¦°åø˜±ºÀÁÈÌÕÿ €€€!€K€X€[€j€§ð!<h•…•‹•¡•«•º•½•Ò•Õ•Ù•Þ•â•å•ñ•ô•þ•–––!–:–@–E–P–c–¨XRZ¸ÞÏÞàÞåÞêÞßß$ß©P·¾�Ú›ÚªÚÉÚÌÚÕÚª°‚µ¸ØÏØÕØØØîØïØüØÙ!Ù)Ù-Ù4Ù;ÙBÙIÙPÙWÙ^ÙeÙlÙsÙzÙ�ÙˆÙ�ٗٚ٢ټٿÙÄÙÐÙöÙ -ÚÚ!Ú0Ú?ÚNÚ]ÚlÚ{ڌګH# ·ÌÕ¬(æ¨Ãìõ $25>Ar‡‹£¬°ÃÆÓÖ 8=AFTe­` Ðí,1Hd®À:Op݇ݛݩÝÈÝÖÝñÝ ÞÞÞ)Þ>ÞSÞXÞfÞ€Þ„Þ³Þ¯(üþˆ©“©·©¼©°h èÛóÛýÛÜÜÜ Ü0Ü<ÜEܱÀh}ØÆóÆùÆúÆ -Ç ÇÇÇ-Ç2Ç9ÇFÇQÇTÇ[Ç^Ç`ÇcÇeÇvDz8b†@ßaßdßuß~߆ߧßÄßÎßÝßõßààà(à.à9à;àAàGàJàUàWà`àlàwàyà‚à…à˜à³8þ"˜»ÉÝäëîò   #>Qmo‚˜š¬³ÈÖäò@´H<B8™C™H™^™k™p™µh0: ˜«˜É˜ó˜õ˜ ™8™¶àšÓpÈyȈțȜȫȼÈÇÈØÈñÈôÈÉ É&É7ÉlɗɞɲÉÊÉÜÉÝÉÊÊÊ,Ê7ÊIÊYÊkÊpʄʑʖʛʭÊÁÊÎÊÓÊçÊôÊùÊËË -ËËË·€‹Ø(w=wKwVwZwowswyw}wƒw‡w‹w¡wÐw7xfxÍxÑx×xÛxáx÷x&y�yÀy'z,z5z>zCz^z±zÌz {({1{6{Q{¤{¿{||!|6|:|@|D|J|N|R|h|›|}5}œ} }¦}ª}°}Æ}ù}`~“~ú~ÿ~U‚¸pãîØËåËúËÌÌ Ì1ÌGÌYÌ\Ìy̹ èDùDE EE6E?EMEqEEŠEšE¨EÌEÝEèE÷E FF%F0F>FIFkFpF’F™Fº�m|ÈHåHèHII&I5I9I>I@IEILINI]I» ¹ÊàLM MMMM'M.M9MJM]MgMjMmMoM‚M¼à:SðRSS'S3S>SISTS^SaSkSrS}SªS½SÇSÊSÍSÏSÚSåST½@¿ÄøAB'B.BPBUB¾8™�Ð@Û@î@õ@ú@¿(««T«Y«ÀpÍØHÛWÛ_ÛgÛuÛ‚ÛŠÛ’ÛšÛ¢ÛºÛÁXiñ8‰E‰P‰[‰q‰|‰†‰�‰š‰¤‰щÛ‰ó‰ Š#Š;ŠQŠgŠ�Š{‹‹‹Âà‹äðY Z Z6ZCZKZmZ‡Z Z§Z¹Z¾ZÊZþZ[[[#[)[.[5[<[B[H[V[[[b[{[š[¨[¯[¶[¼[Â[Ð[Ü[á[ê[\\#\5\:\W\`\r\•\¡\±\¶\½\Ä\Ê\Ð\Ù\ë\ð\] ]]#]9]I]Y]b]r]†]Œ]¦]©]^Ãx°¼8¿I¿_¿c¿f¿t¿y¿›¿©¿¹¿¼¿Ã¿Ä`dmðšõš››&›7›H›Y›\›Å$A@EP[fw™ªÍÞþ %>m�—¹ÇÖåÆhZdX�o�‰�Œ�¨�¬�³�Í�Ô�á�Ç °“¹“Á“דò“ÿ“ ””*”8”r”€”‚”“”¥”±”¶”ŔԔò”•$•.•>•E•O•`•g•È ëü05<CHOV[binu|�ˆ�”—ÉÐ:Q(¤4¤O¤\¤ƒ¤”¤¢¤´¤¤Ò¤ä¤ö¤:¥L¥i¥†¥–¥ ¥°¥·¥Á¥Ò¥Ü¥Ê`øÀÌÅÌÊÌÜÌìÌüÌ Í"Í9ÍAÍË8¾Âȿٿê¿ó¿þ¿ÌØ9h-mxƒŽŸ»ÈÓô *5Px’£®¹Òù$Kr}‡’�¨¾Ôê<`ÍHðö€Ì…̷̪̺̊̚ÌÎ@äé  &)Ï�~­ð½¾ -¾¾¾¾(¾/¾6¾@¾G¾N¾X¾_¾f¾j¾n¾x¾¾†¾�¾—¾ž¾¨¾¯¾¶¾À¾Ç¾Î¾æ¾ö¾ý¾¿¿¿#¿&¿3¿РÄÕÀ À À&ÀDÀWÀjÀ}À�À£À¶ÀÉÀÜÀïÀÁ ÁÁÑ8HÍMÍ_ÍdÍgÍÒ€“ Pœgœ{œ�œ¢œ¼œÃœÅœÒœÓ�¢±Øœëœÿœ�%�>�X�_�a�n�Ô¸+?°b¹bÈbÕbðbýb c c-cBcRcic|cŒc–c¦c­c·cÈcÏcÕ0 - X2]2w2z2Ö0gjÐ>Õ>Ø>×0loØ>Ý>à>Ø0qtà>å>è>ÙP¨¬³¬½¬Ü¬ã¬å¬î¬Ú€ÑÞXÒoÒrҌқүҴҺÒÅÒÓÒáÒäÒúÒÛ( !`«e«‚«…«Ü(688¬=¬g¬j¬Ý8)-À«Å«ã«æ«Þ0VY £%£,£/£ß8ª®øáýáâ)â=âà(ÙÛ ¨+¨O¨T¨áè)C(¡E¡Y¡m¡p¡y¡¡‹¡£¡©¡¯¡´¡¹¡Å¡Ê¡Ï¡Ý¡ß¡ï¡ ¢¢âH X o t Š ž § ã¸_s¨+Í+á+í+,,,),.,5,@,`,d,k,},,™,¬,ä°J]Ø*ó*++!+;+?+C+H+T+n+s+w+y+“+•+¦+å8%)0)A)P)e)p)æ(#€'—'«'»'Ë'Ô'ß'ê'( ((,(=(l(t(�(«(¯(³(»(À(Ö(â(÷(û(ÿ())/)ç˜8H*-*A*M*g*i*„*”*˜*œ* *¤*¨*Â*Ñ*èÈvŒ°,Å,Ù,à,ì,- -- -&-1-9-A-E-I-d-g-i-ƒ-…-”-ép+6p)�)•)¡)»)½)Î)Ý)ì)**êpÀËØÚíÚþÚÛÛÛ Û'Û/Û7ÛBÛë(ø©ª'ª,ªìˆM[@×O×W×[×r×t×ׇ׉×�× ×§×°×ípitØØ Ø#Ø6Ø:ØBØDØWØ^ØgØîàiâ0;Tt‚‰‘»ÊÙçú 7 H V l † ‰ � “ — ³ ½ Ó õ  - -1 -Y -y -” -š -¨ -¾ -Û -ê -÷ -  C H R \ e o … “ š ¨ Ä ß í ô    ' 5 N T e p ‚ � ˜   ± À Ê Ô Ù Ý ò õ ù    ! 7 Q T X ^ b ~ „ Œ ” ¥ ­ · ¼ Ì Ð ï¨Šœ æ»æ¾æÐæ×æéæìæõæç ç ç'çNçRçjçmç~çðh~ˆæ/æAæHæZælætæŒæ�æœæñø]@E`{–±Ìç8Sn‰¤b¿Úõ+Fa|—²Íè9ToŠ¥ÀÛö,G<ò€ T3TGTKTVTbTpTwT‚T�T—T±T¾Tó@V[o�†�–�ª�­�º�ô@àå@‰Y‰g‰w‰�‰Ÿ‰õ@]bÀ�Ù�ç�÷�‘ ‘ö@ÏÔŸˆ¶ˆÆˆÚˆÝˆêˆ÷8\`(ß-ß<ß?ßø0ps`ûeûjûmûù(÷¸ÅÍßê4B\m‚›´ÑØ(26?DRbú€u‚pû{û…û—û¡û±û»ûÁûÞûûûü+ü4üûH»ÁØþÝþâþüþÿÿ ÿü`U^vú‘ú¥ú«ú¬ú¸úÁúÍúÐúáúýX`hèúûúû û ûû$û'û4ûþ8jn8ûCûMûSû\ûÿˆ«¹þ3þIþNþVþ`þdþhþlþ‚þ‰þ®þÂþÓþ¨Ãõ ÿAÿDÿXÿeÿÿ„ÿÐÿêÿõÿ $&06EKZ`o€“ªÊú$=Zcgiq‹²8„¨8üCüUücüeüjü}ü„üšü¡ü«ü¼üÐüÝüïü ý!ý#ýHýVýhýjý€ý‡ý¬ýÀýÓýåýêýþH4:`y’£±´Ã€;HXísí„í‘íší¨í¶í¹íÊíØíÛíìí8€Ç‘ǞǺÇÊÇÑÇèM âÁâËâÒâëâðâ÷âããããã ãNãQãTãVãnãqãtãvãŠã—ã ã¥ã­ã°ã·ã¼ãÂãÇãÎãØãßãáãéãìãîãÿã äääää"ä-ä4ä7äJä8rv¨åÅåáåìåP¤«¸}Ã}Ì}à}ò}÷}ÈXŽ8îMîTîrîyî�î˜î©î»îÍîÒîðîïï-ïKïgïkï†ïŒï�ï¡ï¥ï©ï¶ï¼ïÀïÄïÈïÐïØïàïéïðð ð&ð1ð6ðmð °I\x4ƒ4�4›4©4Í4Ö4î4ÿ45 5'52575<5E5 -P�—ðÇ È!ÈGÈeÈpÈ 8¾â@kLkSk�kŽk©k¶kÅkçkll/lYlplšl£l«l°lºlØlêlòlül mmm.mAmTmXmxm Hä -xm„m‹m¹mÆmámîmým n.n6nVnfn~n«nÂnïnønooo-o?oGoQoaohoroƒo–o©o­oÍo À|‘$$,$1$G$O$T$\$f$v$~$Š$š$«$¶$Á$Ì$Ï$Ü$H¸ºÏºêºòºõº»@�‹­‹»‹Ô‹Ö‹á‹pƒîX¶d¶…¶�¶®¶ɶà¶í¶·3·@·[·¥···Ä·Ô·â·ô·¸¸;¸d¸À¸Ÿñ¸¹K¹o¹°¹À¹ȹÕ¹ç¹ù¹ ºMºeº~º£º¸ºݺ𺻻»5»U»e»x»”»Ø»ã»î»ù»¼-¼@¼S¼X¼n¼¼¨¼½½½9½C½¥½²½Û½ô½P¾W¾x¾{¾†¾‹¾›¾¥¾µ¾¼¾ƾ×¾Ù¾ç¾Ð�ÄèÎÏ ÏÏ1Ï5ÏOÏ\ÏpÏ’Ï©Ï­ÏÆÏåÏñÏÿÏ Ð6ÐCÐnІЙЭжÐËÐÎÐåÐòÐÑÑ Ñ;ÑJÑaÑqъњѨѸѽÑÈÑÊÑÍÑíÑ@ìñȉá‰ú‰ -Š#Š2Š8dh ‘9‘R‘b‘Š‘p �‘§‘µ‘Ƒʑڑâ‘ê‘ò‘õ‘’pVa””%”6”:”Q”Y”a”i”l”y”˜€�àgågòg h(h5hbhnhxh‚h’h™h£h´h¸h»h( - 0ª;ª_ªdªHÓÙX1}1�1”1Ÿ1¾1Ñ1@ÛàØ1ý122 2Q28èìȨ٨í¨©©©(ãå�¨›¨¿¨Ä¨Hž¤€ç—çšç£ç·çºçÇç(öøP©[©©„©(ðò©#©G©L© ˆUƒp{ˆ©Ðéû?Xjs€ž·ÐÕÚßäéîóø!4@W\sx�¤¹Ðåês (ÞàX¨c¨‡¨Œ¨!@Kp`dudŒd™d°d´dÂdÙdâdùde e?eMedete‹e›e²e¿eÖeïe0fVf|f¢fÐfØf\g"Hçíxóƒóˆó’ó�ó¡ó¦ó#˜@âQâ`âiânâqâtâ~â�â„â†â‹â�â’â™â$H¨ ­ ¹ ¼ %`˜¡hásá…á—á£á§á¬áÄá&@&+Øï!.'H<BÈßøý#(HDJ(?X]hvƒ)0ÆÉž#ž1ž6ž*Xƒ‹Ð�á�è�ö�‘‘G‘+8HÜMÜRÜdÜpÜ,Àl� �½�Ç�Õ�Ú�ß�ü�þ����;�=�V�d�Ë�-0.10;R\.˜³Ãp�‡�”�¨�µ�Ä�Ñ�Ø�ç�žž ž žž/èÌæ8žOžUž_žlž„ž‘ž ž­ž´žÐžÙžôžöžøžûž Ÿ.Ÿ3Ÿ6Ÿ;ŸLŸ00x{ðåûåææ18!% Ü«Ü°Ü»ÜÀÜ28'+ÀÜËÜÐÜÛÜàÜ38 pÜuÜz܌ܚÜ4Ðéô   # * 8 E U s Œ ¥ ¾ Å Í Ò Ö Û é ü 5Hf€Å©Å°ÅÀÅÕÅÜÅëÅïÅ÷ÅûÅÿÅÆ ÆÆ.Æ7Æ=ÆLÆrÆsÆ�Æ�ƕƚƵƽÆÂÆÅÆØÆ6ÐØÂ÷ÂýÂÃ'Ã.Ã=ÃAÃIÃQÃ`ÃaÃfÃ�É×çóøûþÃÏÃ7`EÐÃñÃøÃ Ä%Ä:ÄTÄ[ÄjÄnÄvÄzċĩİĶÄÝÄÞÄæÄêÄîÄùÄÿÄÅÅ Å(Å-Å/Å:Å<ÅVÅYÅyÅ8H«± /C/G/R/ƒ/ˆ/™/9H³¹ /Ã/Ç/Ò/ý/00:æ^^^'^4^O^\^l^¹^Ë^á^ô^_ _;_R_ƒ_—_²_¾_Ñ_ê_ÿ_``+`2`<`M`R`Y`;ðŽ©˜-·-Ë-×-ñ-ø-...B.h.y.€.….�.¨.­.Ý.î.ò.ô./ /<虳øhýh -ii7iDiqiÈiÔiÙiþiHjfj…jˆj�j–j¥j¯j¿jÆjÐjájåjèj=@œ¡¨¥±¥Á¥¦$¦+¦>H£©0¦9¦A¦J¦S¦W¦^¦?X«³`¦i¦r¦{¦„¦�¦‘¦˜¦@@/4è«ó«-¬2¬AXow`›q›{›†›�›�›–›B`y‚˜›©›³›Å›Õ›Ü›Þ›é›C0®ÑÀñÕñèñüñò+òHòKòYòdòvòòŠò–òÁòÊòÓòÜòáòëòòò óóDó_ókó~ó�ó„ó•óšó§óµóÅóÞóD û<(ÔCÔFÔVÔ^ÔcÔjÔ{Ô´ÔÊÔÒÔÛÔíÔòÔÕÕÕ2ÕMÕWÕdÕoÕtÕŠÕ“Õ«ÕàÕ÷Õ,ÖZÖoÖŠÖ¿ÖÝÖ×××:×L×W×`×k×p×w׎×�×®×µ×¼×Ä×Õ×Ý×ù× ØØØFØEÀ�Űš¼šÄšÞšùš›››#›.›7›B›W›i›n›‰›–›Æ›Ï›Û›ü›"œ*œPœzœ…œŽœ«œ´œÉœÒœàœôœöœ -�� �*�3�>�G�d�t�{�Œ���©�FàÜx­„­Œ­¦­Á­έ×­â­ë­ö­ÿ­ -®"®4®9®T®a®‘®š®¦®Ç®í®õ®¯%¯M¯\¯†¯‘¯š¯·¯À¯Õ¯Þ¯ì¯°°°,°.°9°B°M°V°s°ƒ°а›°Ÿ°³°G [l0£?£E£F£S£q£u£–£ž£¥£¼£Ö£Ù£Ü£é£H0>AHØYØlØsØIˆDR*/;@GKO`enJxr~`gmgvg�g™g§gÂgÎgÓgÞgK¨J\ðíîîîîBîMîPî{î€î�î“î—î¨îL _p¨îÅîàîûîïïï,ï/ï1ï6ïCïFïIïXïM0h”�N  -h�„’›¨¼ÖÛäñ&+.AOX @]sŒ¨ªÐPh.8àÜýÜÝ Ý.Ý3ÝDÝPÝ\Ý_ÝnÝQ0r•Xïyï|ï•ï˜ïŸï¯ïÁïÕïßïöïùïðð ðððð.ð1ð:ð@ðDðMðPðcðRH@éEé_épé–é¢é§éS˜¬¼°Ëäì!1L]q�‘¯T@ 0Î5Î:ÎRÎWÎfÎUh_‰X4XGXTXwXzX�X�X¨X¯X¼XÓXàXîXñXóX YY+YDYNYRYUY]YbYgY‚Y„YŠYŸY¢YÉYÎYðYVhCMW/W9W?WMWQWpW}WW�Xg¸ˆÈÛˆâˆëˆ‰ -‰‰‰‰!‰(‰/‰4‰X8^b š±šÔšèšïšY(ت㪫«ZˆFT ¢1¢7¢8¢E¢c¢j¢Ñ¢Ü¢ö¢££££[˜‰™¥¥ ¥%¥'¥B¥a¥f¥x¥•¥¢¥\@3X��©�¬�¯�¸�»�À�Ã�Æ�È�Ò�ê�í�ð�õ�ŽŽ -Ž&Ž)Ž,Ž:ŽGŽZŽ_ŽlŽsŽ�ބމޒޡޤަ޹Ž]¨µÇ˜¦©¦¯¦Ê¦Ï¦Ð¦ì¦ñ¦§ §§§(§=§W§Z§e§^`¦ÏÈçáçåçëçøçûçþçè èèèè è#è%è(è.è1èDèFèRè^èeènèpèyè†è�è“è•è£è¬è¯è¸è»èÀèÉèÌèßè_ ÝþÁ=ÁCÁ_ÁkÁzÁ~ÁŒÁ™Á¤Á¬ÁÀÁÑÁðÁÂ$Â)ÂIÂTÂ}Â~ˆ–¡¤§ÂÔÂ`P")hÎyΣήγÎÃÎÆÎÑÎax!-°­Æ­Ì­×­Ø­û­þ­®^®c®�®bHó9pê‹êŽê•ê³ê¸ê»êÑêçêîêùêëiëlëzëë�ë™ëžë¡ë®ë±ë´ëÁëßëòëììììì ìLìWì^ìjìnìxì}ìˆì”ì˜ì¤ì­ì²ì½ìÉìÍìÙìâìçìôìíí í"í'í0í=í@íQíc0Ÿ¢€}‹}Ÿ}²}dXHP0·9·@·Q·R·d·i·y·€·eHàÍåÍêÍÿÍÎÎ/Îf8#'ˆ«“«´«¹«gX�˜pð‡ð�ð¢ðºðÛðæðóðh( ª«ªÏªÔªi˜ZjÀŽ׎áŽéŽôŽ��#�7�9�K�S�\�k�o�™�j0™œb}g}v}y}kPV]¸äÉäÝäâäèäóäþälP_fåå+å0åAåLåYåmPho`åqå…åŠå�å›å¦ån€9F[¶d¶y¶Œ¶›¶ª¶Á¶×¶æ¶ó¶ô¶··%·o�›ªÈãü9D_p~Œ�­pÑñàèõèé'éDéSéjéré{é‡éŸé¼éÊéÎéÑéÖéÙéÞéëé÷éê.ê<ê@êCêFêKêTêWêjêq0‘”hºsº„º‰ºr(–˜�º›º±ºs€ °ÓÃÓÕÓêÓüÓ ÔDÔRÔ’Ô–Ô£Ôtð%@Õ%Õ)Õ7ÕUÕgÕjÕŽÕ‘ÕºÕ¿ÕÝÕßÕâÕ ÖÖ.Ö5Ö<ÖPÖtÖ”Ö´ÖÄÖÔÖãÖuPµ¼èjùjk k#k0k5k“B“O“R“W“d“|€%2 ’·’½’¾’Ë’Î’Ò’ß’ô’÷’ü’ “}`Ÿ¨–+–1–2–?–Z–g–j–z–~H—�è•ù•ÿ•–– ––�ix°”ɔϔДä”ê”í”ñ”ÿ”•• ••€x‰•�•§•­•®•»•¾••ӕ֕ەè•�€z‡ •7•=•>•K•N•R•c•x•{•€•�•‚8OSPä[äƒä”ä¸äƒ¸$ÀTÛTßTöTU UUU$UFUNUYUdUpUvU{U•U˜U©U„H hÍmÍrÍ�ͨͽÍÚÍ…P 'ð û ¡¡¡¡¡#¡†(``i`x`…` `­`½`Ð`ã`õ`BaTajawa’a©aÚaîa bb(bAbVbhbrb‚b‰b“b¤b©b°b‡˜ ÐoÕoâoýo -p"pyp�p‹p›p¢p¬p½pÁpÄpˆˆN\€W¥WºW¿WÂWËWÔWêWíWðWõW÷WXX‰€„‘𛜠œ -œœœ/œ1œ6œ@œCœPœŠ�ŽxÇ�ǓǔǞǢǬÇÁÇÏÇÑÇÖÇØÇÛÇêNj藱hð�ð�ð¡ðªð±ð»ð½ðÏðÖðÜðîðõðúð ñññ"ñ&ñ+ñ:ñŒØ³Ë@ñ[ñ^ñoñ˜ñ¢ñ¸ñÁñËñáñäñæñèñúñòòòò"ò%ò8ò�°üOXõmõõ‡õ›õ¦õ¯õºõÔõäõÿõööö9öFöQöcövö�ö¦ö¸ö½öËö×öçöòöööúö÷%÷)÷=÷n÷|÷‰÷�÷«÷»÷Æ÷Ñ÷Ú÷ã÷ì÷ñ÷û÷ø!ø.ø5øeøløoøzø‹ø�ø›ø¦øÁøÍøÒøôøùù!ù/ù?ù®ùŽÜúàóõóô ôôô/ôKôiôrô{ô„ô‰ô�ô«ôÉôÖôÝôîô õ õ'õ*õ-õ2õ=õUõ�0h‹°ÚÑÚÙÚïÚ÷ÚÛÛ(Û^ÛˆÛ•Û¬Û½ÛÁÛÆÛÎÛÕÛùÛÜÜÜ%Ü-Ü>ÜBÜ^ÜnÜy܇܋ܞÜ�˜#S@ÂdÂfÂnÂ~Â�š±ÂÅÂÎÂ×ÂåÂ÷ÂÃ&Ã+ÃFÃXÃ_ÃiÃmÀÖÙÃ�áÃÃÃßÃäÃÄ ÄÄÄÄ#Ä<ÄWÄ`ÄgÄwÄzĮđ(�� Ü·ÜìÜ’`x�°Ïè#1N“@×ÜÈåþ .”HÞä0Mfy‡’¡•Xƒ‹Poˆ¢µÃÑÜù–@ ÓÓ ÓaÓ�Ó°Ó—ˆˆ–˜à£àºàÄàáàçàþàá á"á&á(ácá˜0�„ºº º6º™ð_zh¸q¸‚¸–¸ª¸Á¸Ô¸ç¸ ¹¹'¹,¹B¹G¹W¹h¹z¹Š¹�¹ž¹³¹µ¹¿¹Ó¹î¹š0|ð¹õ¹º º \ No newline at end of file diff --git a/LT/OSMain/OS.SPZ b/LT/OSMain/OS.SPZ deleted file mode 100644 index 185406764ed7150e1061382ee6272e871ee92e91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmdnN$N&Zn%wUQE#8uABOU@}xNmWpCOi9f3*7FF6QsU)GEY4M^p3>0N($?W0?2?*R zJeiBr(Z|!>kJHdh$DqQ}U`lXgaJ=)b;1I{45G$+Mjm@p?N(+Na5{pVg3zpA0K3~Z* zD9|G@FC{0nXxY)ZCpv;Fi$hB?a~^SBnRhZcIU_Zt^nTIhV;?)5FIWU0KNmZ{@aiPZ zq%AJT7JFPi^}uq=b50p6|2qpRm|DAL>aUq&GcoANX<=>GB@&6Bo_KZ1vflrwy*$TD z(5B?h!O4=ZIHV2Vew(;C?Mbh+mBoh#3{?VwlZ|rkojAF8%X|)H&mJ4gP=)1N6%Q^u zl`|>roWzD}Zk;QOkL7Hdm3%5B<@I`A$(>3aEenH>y%RD_nY5!ZxVSklk4xV9ZWv2A@}=-lxvFH&A@fLO|xsapO-Q}w9e9mg)3(@0ow7z2LJ#7 diff --git a/LT/OSMain/OSDefs.ASZ b/LT/OSMain/OSDefs.ASZ deleted file mode 100644 index 60c3da3..0000000 --- a/LT/OSMain/OSDefs.ASZ +++ /dev/null @@ -1,350 +0,0 @@ - STRUC 0 -SF_RBP: DU8 ?; -SF_RIP: DU8 ?; -SF_PARAM1: DU8 ?; -SF_PARAM2: DU8 ?; -SF_PARAM3: DU8 ?; -SF_PARAM4: DU8 ?; -SF_PARAM5: DU8 ?; -SF_PARAM6: DU8 ?; -SF_PARAM7: DU8 ?; -SF_PARAM8: DU8 ?; - ENDS - - STRUC 0 -NULL_SEL: DU8 ?,?; -SYS_BOOT_DS_SEL: DU8 ?,?; -SYS_BOOT_CS_SEL: DU8 ?,?; -SYS_CS_SEL: DU8 ?,?; -SYS_CS64_SEL: DU8 ?,?; -ZERO_DS_SEL: DU8 ?,?; -FIRST_FREE_SEL: - ENDS - - STRUC 0 -EXCEPT_NEXT: DU8 ?; -EXCEPT_LAST: DU8 ?; -EXCEPT_HANDLER_START: DU8 ?; -EXCEPT_HANDLER_SKIP: DU8 ?; -EXCEPT_RSP: DU8 ?; -EXCEPT_RBP: DU8 ?; -EXCEPT_RFLAGS: DU8 ?; -EXCEPT_RSI: DU8 ?; -EXCEPT_RDI: DU8 ?; -EXCEPT_R12: DU8 ?; -EXCEPT_R13: DU8 ?; -EXCEPT_R14: DU8 ?; -EXCEPT_R15: DU8 ?; -EXCEPT_STRUCT_SIZE: - ENDS - - STRUC 0 -BPT_NEXT:: DU8 ?; -BPT_ADDRESS:: DU8 ?; -BPT_FLAGS:: DU4 ?; -BPT_U1:: DU1 ?; - ENDS - - STRUC 0 $LK+BK,"Redundent C+ Struct","FF:/LT/OSMain/AdamK.HPZ,class TssStruct"$ -TSS_ABSOLUTE_ADDRESS: DU8 ?; -TSS_TASK_FLAGS: DU8 ?; -TSS_CRT_FLAGS: DU8 ?; - -TSS_CUR_LTF: DU8 ?; -TSS_AUX_LTF: DU8 ?; -TSS_WIN_LEFT: DU8 ?; -TSS_WIN_RIGHT: DU8 ?; -TSS_WIN_TOP: DU8 ?; -TSS_WIN_BOTTOM: DU8 ?; - -TSS_CUR_PARTITION: DU8 ?; -TSS_CUR_DIR: DU8 ?; - -TSS_PARENT_TSS: DU8 ?; -TSS_NEXT_TSS: DU8 ?; //ABSOLUTE ADDRESS OF NEXT TSS -TSS_LAST_TSS: DU8 ?; //ABSOLUTE ADDRESS OF LAST TSS -TSS_NEXT_INPUT_FILTER_TSS: DU8 ?; -TSS_LAST_INPUT_FILTER_TSS: DU8 ?; -TSS_NEXT_SIBLING_TSS: DU8 ?; -TSS_LAST_SIBLING_TSS: DU8 ?; -TSS_NEXT_CHILD_TSS: DU8 ?; -TSS_LAST_CHILD_TSS: DU8 ?; - -TSS_WIN_PIXEL_LEFT: DU8 ?; //These are derived -TSS_WIN_PIXEL_RIGHT: DU8 ?; -TSS_WIN_PIXEL_TOP: DU8 ?; -TSS_WIN_PIXEL_BOTTOM: DU8 ?; -TSS_WIN_BORDER_PIXEL_LEFT: DU8 ?; //These are derived -TSS_WIN_BORDER_PIXEL_RIGHT: DU8 ?; -TSS_WIN_BORDER_PIXEL_TOP: DU8 ?; -TSS_WIN_BORDER_PIXEL_BOTTOM: DU8 ?; - -TSS_RIP: DU8 ?; -TSS_RFLAGS: DU8 ?; -TSS_RAX: DU8 ?; -TSS_RCX: DU8 ?; -TSS_RDX: DU8 ?; -TSS_RBX: DU8 ?; -TSS_RSP: DU8 ?; -TSS_RBP: DU8 ?; -TSS_RSI: DU8 ?; -TSS_RDI: DU8 ?; -TSS_R8: DU8 ?; -TSS_R9: DU8 ?; -TSS_R10: DU8 ?; -TSS_R11: DU8 ?; -TSS_R12: DU8 ?; -TSS_R13: DU8 ?; -TSS_R14: DU8 ?; -TSS_R15: DU8 ?; -TSS_GS: DU8 ?; - -TSS_HEAP_HASH: DU1 HEAP_HASH_SIZE DUP (?); -TSS_FPU: DU1 112 DUP(?); -TSS_TIME_SLICE_START: DU8 ?; -TSS_TOTAL_TIME: DU8 ?; -TSS_SWAP_CNTER: DU8 ?; - -TSS_UPDATE_WIN: DU8 ?; -TSS_TASK_DESCRIPTOR: DU1 (TSS_DESC_LENGTH+1) DUP (?); -TSS_TASK_DESCRIPTOR2: DU1 (TSS_DESC_LENGTH+1) DUP (?); - -TSS_DOUBLE_BUF_CUR_LTF: DU8 ?; -TSS_DOUBLE_BUF_AUX_LTF: DU8 ?; -TSS_SCROLL_SPEED: DU4 ?; -TSS_TEXT_ATTRIBUTE: DU1 ?; -TSS_BORDER_ATTRIBUTE: DU1 ?; - DU2 ?; //Unused -TSS_SCROLL_X: DU8 ?; -TSS_SCROLL_Y: DU8 ?; - -TSS_STACK_BASE: DU8 ?; -TSS_STACK_SIZE: DU8 ?; -TSS_MEM_SIZE: DU8 ?; -TSS_NEXT_MEM_BLK: DU8 ?; -TSS_LAST_MEM_BLK: DU8 ?; -TSS_MALLOC_FREE_LIST: DU8 ?; -TSS_NEXT_EXCEPT: DU8 ?; -TSS_LAST_EXCEPT: DU8 ?; -TSS_EXCEPT_RBP: DU8 ?; -TSS_EXCEPT_ARGC: DU8 ?; -TSS_EXCEPT_ARGV: DU8 ?; -TSS_CATCH_EXCEPT: DU4 ?; -TSS_IGNORE_EXCEPT: DU4 ?; -TSS_BPT_LIST: DU8 ?; -TSS_NEXT_ODE: DU8 ?; -TSS_LAST_ODE: DU8 ?; -TSS_HASH_TABLE: DU8 ?; -TSS_ACCOUNT: DU8 ?; -TSS_NEXT_SERVANT_CMD: DU8 ?; -TSS_LAST_SERVANT_CMD: DU8 ?; -TSS_NEXT_MASTER_CMD: DU8 ?; -TSS_LAST_MASTER_CMD: DU8 ?; -TSS_NEXT_LEX: DU8 ?; -TSS_LAST_LEX: DU8 ?; - -TSS_END_TASK_CB: DU8 ?; -TSS_USER_NUM: DU4 ?; -TSS_FAULT_NUM: DU4 ?; -TSS_ANSWERS: DU8 8 DUP(?); -TSS_DOUBLE_ANSWERS: DU8 8 DUP(?); -TSS_ANSWERS_TYPES: DU4 8 DUP(?); -TSS_ANSWERS_DISPLAYED: DU4 ?; -TSS_IN_QUEUE_SIGNATURE: DU4 ?; -TSS_DBG: DU8 ?; -TSS_POPUP: DU8 ?; -TSS_LOCALCHNL: DU8 ?; -TSS_RMTCHNL: DU8 ?; -TSS_USER_DATA0: DU8 ?; -TSS_USER_DATA1: DU8 ?; -TSS_USER_DATA2: DU8 ?; -TSS_USER_DATA3: DU8 ?; -TSS_STRUCT_SIZE: - ENDS - - STRUC 0 -HT_NEXT: DU8 ?; -HT_MASK: DU8 ?; -HT_BODY: - ENDS - - STRUC 0 -HTE_NEXT: DU8 ?; -HTE_STR: DU8 ?; -HTE_TYPE: DU4 ?; -HTE_USE_CNT: DU4 ?; -HTE_SOURCE_LINK: DU8 ?; -HTE_INDEX: DU8 ?; -HTE_DEBUG: DU8 ?; -HTE_USER_DATA0: DU8 ?; - ENDS - - STRUC 0 -SP_R15: DU8 ?; -SP_R14: DU8 ?; -SP_R13: DU8 ?; -SP_R12: DU8 ?; -SP_R11: DU8 ?; -SP_R10: DU8 ?; -SP_R9: DU8 ?; -SP_R8: DU8 ?; -SP_RDI: DU8 ?; -SP_RSI: DU8 ?; -SP_RBP: DU8 ?; -SP_RBX: DU8 ?; -SP_RDX: DU8 ?; -SP_RCX: DU8 ?; -SP_RAX: DU8 ?; -SP_STRUCT_SIZE: -SP_RIP: DU8 ?; -SP_PARAM1: DU8 ?; -SP_PARAM2: DU8 ?; -SP_PARAM3: DU8 ?; -SP_PARAM4: DU8 ?; -SP_PARAM5: DU8 ?; -SP_PARAM6: DU8 ?; -SP_PARAM7: DU8 ?; -SP_PARAM8: DU8 ?; -SP_PARAM9: DU8 ?; -SP_PARAM10: DU8 ?; -SP_PARAM11: DU8 ?; -SP_PARAM12: DU8 ?; - ENDS - - STRUC 0 -SC_R11: DU8 ?; -SC_R10: DU8 ?; -SC_R9: DU8 ?; -SC_R8: DU8 ?; -SC_RBP: DU8 ?; -SC_RBX: DU8 ?; -SC_RDX: DU8 ?; -SC_RCX: DU8 ?; -SC_RAX: DU8 ?; -SC_STRUCT_SIZE: -SC_RIP: DU8 ?; -SC_PARAM1: DU8 ?; -SC_PARAM2: DU8 ?; -SC_PARAM3: DU8 ?; -SC_PARAM4: DU8 ?; -SC_PARAM5: DU8 ?; -SC_PARAM6: DU8 ?; -SC_PARAM7: DU8 ?; -SC_PARAM8: DU8 ?; -SC_PARAM9: DU8 ?; -SC_PARAM10: DU8 ?; -SC_PARAM11: DU8 ?; -SC_PARAM12: DU8 ?; - ENDS - - STRUC 0 -C_HASH_NEXT: DU8 ?; -C_HASH_STR: DU8 ?; -C_HASH_TYPE: DU4 ?; -C_USE_CNT: DU4 ?; -C_SOURCE_LINK: DU8 ?; -C_INDEX: DU8 ?; -C_DEBUG: DU8 ?; -C_MEM_CNT: DU2 ?; -C_PARAM_CNT: DU2 ?; //FOR FUNCTIONS -C_SIZE: DU4 ?; //Must be in same position as HTE_USER1 -C_MEM_LIST: DU8 ?; //MEMBER LIST -C_MEM_LIST_LAST: DU8 ?; -C_STATEMENTS: DU8 ?; //For functions - ENDS - - STRUC 0 -IC_CODE: DU2 ?; -IC_PRECIDENCE: DU2 ?; -IC_CNT: DU2 ?; -IC_PAD: DU2 ?; -IC_FLAGS: DU8 ?; -IC_DATA: DU8 ?; -IC_CLASS: DU8 ?; -IC_LINE: DU8 ?; -IC_PARAMS: DU1 12*4 DUP (?); -IC_EXT_BODY: DU8 ?; -IC_BODY: DU1 IC_BODY_SIZE DUP (?); -IC_STRUCT_SIZE: - ENDS - - STRUC 0 -ATE_NEXT: DU8 ?; -ATE_BASECODE: DU2 ?; -ATE_CH: DU1 ?,?; -ATE_PAD2: DU4 ?; -ATE_STRUCT_SIZE: - ENDS - - STRUC 0 -ACS_SRC_POS: DU8 ?; -ACS_SRC_SIZE: DU8 ?; -ACS_DST_POS: DU8 ?; -ACS_DST_SIZE: DU8 ?; -ACS_SRC_BUF: DU8 ?; -ACS_DST_BUF: DU8 ?; -ACS_MIN_BITS: DU8 ?; -ACS_MIN_TABLE_ENTRY: DU8 ?; -ACS_CUR_ENTRY: DU8 ?; -ACS_NEXT_ENTRY: DU8 ?; -ACS_CUR_BITS_IN_USE: DU8 ?; -ACS_NEXT_BITS_IN_USE: DU8 ?; -ACS_STACK_PTR: DU8 ?; -ACS_STACK_BASE: DU8 ?; -ACS_FREE_INDEX: DU8 ?; -ACS_FREE_LIMIT: DU8 ?; -ACS_SAVED_BASECODE: DU8 ?; -ACS_ENTRY_USED: DU8 ?; -ACS_LAST_CH: DU8 ?; -ACS_COMPRESS: DU8 (ARC_MAX_TABLE_ENTRY+1)*2 DUP(?); -ACS_HASH: DU8 ARC_MAX_TABLE_ENTRY+1 DUP(?); -ACS_STRUCT_SIZE: - ENDS - - STRUC 0 -MP_JMP: DU4 ?; -MP_SYS_TEMP_PTR: DU8 ?; - ENDS - - STRUC 0 -CPU_ABSOLUTE_ADDRESS: DU8 ?; -CPU_FLAGS: DU8 ?; -CPU_NUM: DU8 ?; -CPU_CAIN_TSS: DU8 ?; -CPU_TR: DU8 ?; -CPU_IDLE_POINT_HITS: DU8 ?; -CPU_IDLE_FACTOR: DU8 ?; -CPU_SWAP_CNTER: DU8 ?; -CPU_STARTUP_RIP: DU8 ?; -CPU_START_STACK: DU8 8 DUP(?); -CPU_START_STACK_TOP: -CPU_DYING_TSS_LIST: DU8 ?; -CPU_HEAP: DU8 ?; -CPU_GRBASE: DU8 ?; -CPU_STRUCT_SIZE: - ENDS - -//Multiprocessor stuff -#define MP_ICR_LOW 0xFEE00300 -#define MP_ICR_HIGH 0xFEE00310 -#define MP_EOI 0xFEE000B0 -#define MP_SVR 0xFEE000F0 -#define MP_APIC_ID 0xFEE00020 -#define MP_LVT1 0xFEE00350 -#define MP_LVT2 0xFEE00360 -#define MP_LVT3 0xFEE00370 -#define MP_APIC_ENABLED 0x100 -#define MP_VECTOR 0x30 -#define MP_VECTOR_ADDRESS (MP_VECTOR<<12) -#define MP_LDR 0xFEE000D0 -#define MP_DFR 0xFEE000E0 -#define MP_IRR 0xFEE00200 -#define MP_ISR 0xFEE00100 -#define MP_TMR 0xFEE00180 - -#define IA32F_LME 0x100 -#define IA32F_SCE 0x001 -#define IA32_EFER 0xC0000080 -#define IA32_FS_BASE 0xC0000100 -#define IA32_GS_BASE 0xC0000101 - diff --git a/LT/OSMain/OSEnd.CPZ b/LT/OSMain/OSEnd.CPZ deleted file mode 100644 index 47321dd..0000000 --- a/LT/OSMain/OSEnd.CPZ +++ /dev/null @@ -1,391 +0,0 @@ -void InitSysGlbls() -{ - - sys_timer=0; - sys_jiffies=0; - rnd_SEED = 93186752; - time_stamp_freq=2676302000; //give reasonable value - time_stamp_kHz_freq=time_stamp_freq/1000; - sys_cur_focus_task=Fs; - sys_update_screen_tss=NULL; - MemSet(sema_irqs,0,NUM_IRQ_SEMAS*sizeof(sema)); - MemSet(sema_irq_busy,0,NUM_IRQ_SEMAS*sizeof(sema)); - num_spawned_users=0; - compiled_lines=0; - compiled_functions=0; - ext[EXT_IRQ00]=&SimpleTimerIrq; - StrCpy(sys_temp_filename,"HOME/Temp.TXZ"); - - sys_macro_queue.next=&sys_macro_queue; - sys_macro_queue.last=&sys_macro_queue; - - mouse_evt_time=0; - kbd_evt_time=0; - kbdmouse_fifo=NewU1Fifo(128); - - MemSet(&sys_put_key_queue,0,sizeof(KeyDevStruct)); - sys_put_key_queue.next=&sys_put_key_queue; - sys_put_key_queue.last=&sys_put_key_queue; - AddKeyDev(&InputFilterPutKey,&InputFilterPutS,0x40000000); - AddKeyDev(&RawCrtPutKey,&RawCrtPutS,0x60000000); - - macro_util_tss=NULL; - ip_inhibit_win_operations=FALSE; - local_time_offset=0; - - ltcd_base=NULL; - ltdc_hash_table=NULL; - sysdbg0=0; sysdbg1=0; - sysdbg2=0; sysdbg3=0; - progress1=0; progress2=0; - progress3=0; progress4=0; - - default_iso_name="::/Temp/CDDVD.ISO"; - - #exe { - I1 *buf; - LTDate ltdt; - buf=PmtStr("Start-up Accnt(ENTER will prompt):",""); - ExePrintF("sys_startup_account=\"%s\";\r\n",buf); - Free(buf); - ltdt=GetCurTimeLTDate; - ExePrintF("sys_compile_time=0x%X;\r\n",ltdt); - buf=PmtStr("Disk Cache Size, gets rounded-up funny, (ENTER will use default of %s Bytes):","0x8000000"); - ExePrintF("LTDCInitCache(%s);",buf); - Free(buf); - } -} - -void AddModuleHash(I1 *name,U8 base) -{ - SysHashEntry *temph; - temph=MAllocZ(sizeof(SysHashEntry)); - temph->type=HTT_MODULE|HTT_PUBLIC; - temph->use_cnt=0; - temph->user_data0=base; - temph->source_link=NULL; - temph->str=NewStr(name); - AddSysHashEntry(temph,Fs->hash_table); -} - - -void AddOsMapSymbols() -{ - SysHashEntry *temph; - I1 *sptr; - U1 *ptr; - U4 *dd; - U8 type; - I8 i,code; - code=sys_boot_base; - AddModuleHash("/LT/OSMain/OS",code); - ptr=sys_boot_header_base; - while ((type=*ptr++)!=EIE_END) { //PASS 1 - dd=ptr; - ptr+=4; - i=*dd; - sptr=ptr; - ptr+=StrLen(sptr)+1; - if (type<=EIE_LIT_EXPORT) { - temph=MAllocZ(sizeof(SysHashEntry)); - temph->type=HTT_SYS_SYMBOL; - temph->use_cnt=0; - temph->user_data0=i+code; - temph->source_link=NULL; - temph->str=NewStr(sptr); - AddSysHashEntry(temph,Fs->hash_table); - } else if (typefile_size)!=LT_XSUM) - throw(EXCEPT_ARC_XSUM); - - absname=AbsoluteFileName(fbuf); - Free(fbuf); - fbuf=NewStr(absname); - RemoveLastSeg(fbuf,"."); - if (fbuf[1]==':' && StrLen(fbuf)>2) - AddModuleHash(fbuf+2,code); - Free(fbuf); - - ptr=bfh+bfh->header_offset; - while ((etype=*ptr++)!=EIE_END) { //PASS 1 - dd=ptr; - ptr+=sizeof(U4); - i=*dd; - sptr=ptr; - ptr+=StrLen(sptr)+1; - if (etype<=EIE_LIT_EXPORT) { - temph=MAllocZ(sizeof(SysHashEntry)); - temph->str=NewStr(sptr); - temph->type=HTT_SYS_SYMBOL; - temph->use_cnt=0; - n=StrLen(absname); - temph->source_link=MAlloc(n+4); - StrCpy(temph->source_link,"FI:"); - StrCat(temph->source_link,absname); - if (etype==EIE_LIT_EXPORT) - temph->user_data0=i; - else - temph->user_data0=i+code; - AddSysHashEntry(temph,Fs->hash_table); - } else if (etypetype & HTT_FUNCTION) { - tempc=saved_hash_ptr; - if (etype & 1) - i=tempc->executable_address; - else - i=tempc->executable_address-code; - } else if (saved_hash_ptr->type & HTT_GLBL_VAR) { - tempg=saved_hash_ptr; - if (etype & 1) - i=tempg->data_address; - else - i=tempg->data_address-code; - } else { - if (etype & 1) - i=saved_hash_ptr->user_data0; - else - i=saved_hash_ptr->user_data0-code; - } - if (etype<=EIE_LIT_U1) - *bb=i+*bb; - else if (etype<=EIE_LIT_U2) - *ww=i+*ww; - else if (etype<=EIE_LIT_U4) - *dd=i+*dd; - else if (etype<=EIE_LIT_U8) - *qq=i+*qq; - } - } else if (etype==EIE_ABSOLUTE_ADDRESS) { - if (no_abs) - ptr+=i*sizeof(U4); - else { - cnt=i; - for (j=0;jheader_offset; - while ((etype=*ptr++)!=EIE_END) { //PASS 2 - dd=ptr; - ptr+=sizeof(U4); - i=*dd; - sptr=ptr; - ptr+=StrLen(sptr)+1; - if (etype<=EIE_LIT_EXPORT) { - } else if (etype>8); -} - -void InitIrqs() -{ //Init 8259 - OutP(0x20,0x11); //IW1 - OutP(0xA0,0x11); //IW1 - PortNop; - OutP(0x21,0x20); //IW2 - OutP(0xA1,0x28); //IW2 - PortNop; - OutP(0x21,0x04); //IW3 - OutP(0xA1,0x02); //IW3 - PortNop; - OutP(0x21,0x0D); //IW4 - OutP(0xA1,0x09); //IW4 - PortNop; - OutP(0x21,0x24); //Mask - OutP(0xA1,0x37); - PortNop; -} - -GrBitMap *GrBitMapNew(U8 type,U8 width,U8 height,TssStruct *tss=NULL) -{ //This only allows widths which are divisible by 8 - GrBitMap *result; - if (!tss) tss=Fs; - result=MAllocZ(sizeof(GrBitMap),tss); - result->win_tss=tss; - result->mem_tss=tss; - result->type=type; - result->width=width; - result->internal_width=(width+7)&~7; - result->height=height; - result->left_margin=0; - result->right_margin=width; - result->top_margin=0; - result->bottom_margin=height; - switch (type) { - case BMT_COLOR4: - result->plane_size=(result->internal_width*result->height)>>3; - result->body=MAllocZ(result->plane_size<<2,tss); - break; - case BMT_MONO: - result->plane_size=(result->internal_width*result->height)>>3; - result->body=MAllocZ(result->plane_size,tss); - break; - default: - throw(EXCEPT_GRAPHICS,1); - } - result->pen_width=1; - result->r=MAllocZ(16<<3,tss); - result->r[0].u4[1]=1; - result->r[5].u4[1]=1; - result->r[10].u4[1]=1; - result->r[15].u4[1]=1; - result->speedline_scale=0.04; - result->bitmap_signature=BMS_SIGNATURE; - return result; -} - -void InitGraphics() -{ - dc_col=0; - dc_flags=0; - dc_cursor_blink=0; - - grfont=sys_font_8x8; -//TODO free old allocated stuff - grbase2=GrBitMapNew(BMT_COLOR4,GR_WIDTH+128,GR_HEIGHT+32); - grbase2->left_margin=64; - grbase2->right_margin=GR_WIDTH+grbase2->left_margin; - grbase2->top_margin=16; - grbase2->bottom_margin=grbase2->height-16; - grbase2->flags|=BMF_SCREEN_BITMAP; - vga_image=MAlloc(GR_WIDTH*GR_HEIGHT>>1); - textbase=MAlloc(GR_WIDTH/FONT_WIDTH*(GR_HEIGHT/FONT_HEIGHT)<<2); - - - Gs->grbase=GrBitMapNew(BMT_COLOR4,GR_WIDTH,GR_HEIGHT); - Gs->grbase->flags|=BMF_SCREEN_BITMAP; - GrClear2(Gs->grbase); - - gr_merge_base=GrBitMapNew(BMT_COLOR4,GR_WIDTH,GR_HEIGHT); - gr_merge_base->flags|=BMF_SCREEN_BITMAP; - - OutP(VGA_SC_INDEX,VGA_MAP_MASK); - OutP(VGA_SC_DATA,0x0F); - - MemSet(0xA0000,0,GR_HEIGHT*GR_WIDTH>>3); -} - -asm {CP_REBOOT:} -void Reboot() -{ - U2 *d=0x472; - Cli; - if (mp_cnt>1) { - MPHalt; - BusyWait(100); - } - *d=0; - OutP(0x70,0x8F); - OutP(0x71,0x00); - OutP(0x70,0x00); - OutP(0x92,InP(0x92)|1); - Hlt; -} - -asm {CP_OS_MAIN:} -void OsMain() -{ - U8 i,j; - adam_tss=Fs; - StrCpy(Fs->task_descriptor2,"Adam Task CPU#0"); - StrCpy(Fs->task_descriptor,Fs->task_descriptor2); - reverse_bits_table=MAllocZ(256); - for (i=0;i<256;i++) - for (j=0;j<8;j++) - if (Bt(&i,7-j)) - Bts(reverse_bits_table+i,j); - set_bits_table=MAllocZ(256); - for (i=0;i<256;i++) - for (j=0;j<8;j++) - if (Bt(&i,j)) - set_bits_table[i]++; - ext=MAllocZ(EXT_TABLE_SIZE*sizeof(void *)); - ctrl_alt_letter_routines=MAllocZ(26*sizeof(void *)); - InitGraphics(); - InitSysTask; - AddOsMapSymbols; - InitSysGlbls; -//Before this point use $LK,"Sound","MN:Sound"$() and $LK,"BusyWait","MN:BusyWait"$() -//to debug. After this point, use $LK,"DbgNum","MN:DbgNum"$() - LoadSysStrs; - - MPInit; - InitTimer; - InitIrqs; - coutln "Enable IRQ's"; - SetFlags(SYS_NORMAL_RFLAGS); - Preempt(ON); - time_stamp_start=GetTimeStamp; - sys_timer_start=ReadSysTimer; - - coutln "InitAllBlkDevs"; - InitAllBlkDevs; - coutln "Select Default Drive"; - SelectDefaultDrive; - cout "Loading Compiler..."; - Cd("/LT/Compiler"); - Load("Compiler"); - coutln "Done"; - CallExtStr("AdamStartUpFile"); -//Continues here $LK,"AdamStartUpFile","FF:::/LT/Compiler/CmpMain.CPZ,AdamStartUpFile"$ - ContinueServantTask; //Never to return -} - -asm { ALIGN 16,0x90 -SYS_CS_SIZE::} - \ No newline at end of file diff --git a/LT/OSMain/OSExts.CPZ b/LT/OSMain/OSExts.CPZ deleted file mode 100644 index 915a616..0000000 --- a/LT/OSMain/OSExts.CPZ +++ /dev/null @@ -1,51 +0,0 @@ -extern void PutSysText(I1 *name); -extern BoolU8 Cd(I1 *name,BoolU4 make_dirs=FALSE); -extern BoolU8 MkDir(I1 *filename); -extern void Msg(U8 code,U8 p1,U8 p2,U8 flags=0); -extern I1 PartitionToDrive(LTPartition *p=NULL); -extern BoolU8 RBlks(LTPartition *p,U1 *buf, U8 blk, U8 cnt,BoolU4 unlock); -extern BoolU8 WBlks(LTPartition *p,U1 *buf, U8 blk, U8 cnt,BoolU4 unlock); -extern void InvalidateDiskCache(LTPartition *p,BoolU4 unlock); -extern BoolU8 Drive(I1 drive_letter); -extern LTFile *FOpen(I1 *filename,I1 *flags,U8 cnt=0); -extern U8 FSize(LTFile *f); -extern void FSync(LTFile *f); -extern BoolU8 FRBlks(LTFile *f,U1 *buf,U8 blk=LTFB_NEXT_BLK,U8 cnt=1); -extern BoolU8 FWBlks(LTFile *f,U1 *buf,U8 blk=LTFB_NEXT_BLK,U8 cnt=1); -extern void ReleaseTaskPartitions(); -extern BoolU8 IsRaw(); -extern void D(U1 *buf,U8 cnt=0x80,BoolU4 show_offset=TRUE); -extern void Dm(U1 *buf,U8 cnt=0x80); -extern void PrintF(I1 *fmt,...); -extern void MPIntAll(U8 num); -extern void XTalk(TssStruct *tss,I1 *fmt,...); - -extern GrBitMap *GrBitMapNew(U8 type,U8 width,U8 height,TssStruct *tss=NULL); - -extern void InitISOPartition(LTPartition *p,BoolU4 unlock); -extern BoolU8 FindISOFile(LTPartition *p,U8 cur_dir_cluster,I1 *name,LTDirEntry *result, - BoolU4 dir_only,BoolU4 file_only,BoolU4 unlock); -extern LTDirEntry *FindISOFiles(I1 *wild,U8 fuf_flags,LTDirEntry *parent=NULL); - -extern void FreeLTFreeList(LTPartition *p,BoolU4 unlock); -extern void InitLTPartition(LTPartition *p,BoolU4 unlock); -extern void FormatLT(I1 drive_letter,BoolU4 quick=TRUE); -extern BoolU8 FindLTFile(LTPartition *p,U8 cur_dir_cluster,I1 *name,LTDirEntry *result, - BoolU4 dir_only,BoolU4 file_only,BoolU4 unlock); -extern U8 AllocLTClusters(LTPartition *p,U8 cnt, BoolU4 unlock); -extern BoolU8 NewLTDirEntry2(LTPartition *p,I1 *cur_dir,LTDirEntry *de,BoolU4 free_old_chain,BoolU4 unlock); -extern LTDirEntry *FindLTFiles(I1 *wild,U8 fuf_flags,LTDirEntry *parent=NULL); - -extern TssStruct *Spawn(U1 *start_add, - I1 *desc=NULL, - TssStruct *parent=NULL, //NULL means adam - I1 *account=NULL, //Null means use parent's - U8 stk=DEFAULT_STACK, - BoolU4 add_to_queue=TRUE); -extern void InitUserTask(); - -extern void AdamLog(I1 *fmt,...); -extern void Debugger(I1 *msg=NULL,U8 num=0); - -#define DCF_IN_DOLLAR 1 -#define DCF_LAST_DOLLAR 2 diff --git a/LT/OSMain/OSGlbls.CPZ b/LT/OSMain/OSGlbls.CPZ deleted file mode 100644 index 3cb6c2e..0000000 --- a/LT/OSMain/OSGlbls.CPZ +++ /dev/null @@ -1,54 +0,0 @@ -I1 sys_temp_filename[80]; -SysAccntStruct sys_accounts; -TssCmdStruct sys_macro_queue; -KeyDevStruct sys_put_key_queue; -TssStruct *macro_util_tss; -HeapCtrl *mp_heap; -MPCmdCtrl *mp_ctrl; -TssStruct *adam_tss; -U4 num_spawned_users; -TssStruct *monitor_floppy_tss; -U1 *grfont; - -U4 fdc_retries; -U4 fdc_drive_heads; -U4 fdc_disk_cylinders; -U4 fdc_disk_sectors; -U4 fdc_max_sector; -U4 fdc_dma_buf; - -LTCacheBlk *ltcd_base; -LTCacheBlk *ltdc_next_lru,*ltdc_last_lru; -LTCacheBlk **ltdc_hash_table; -U8 ltdc_size; - -U8 dc_col,dc_flags,dc_cursor_blink; -GrBitMap *grbase2,*gr_merge_base; - -TssStruct *sys_update_screen_tss; -U8 rnd_SEED; -Ltf *sys_clipboard_ltf; -I1 *default_iso_name; -U8 disk_reads,disk_writes,compiled_lines,compiled_functions; -LTBlkDev *local_blkdevs,*boot_blkdev; -LTPartition *local_partitions,*default_partition; -I1 default_drive; -LTPartition *drive_to_partition[32]; -I8 num_blkdevs; -I1 *sys_startup_account; -BoolU4 ip_inhibit_win_operations; -LTDate sys_compile_time; -void *vga_image; -U1 *reverse_bits_table,*set_bits_table; -void **ctrl_alt_letter_routines; -LTDate local_time_offset; -U8 time_stamp_start,sys_timer_start; -U8 time_stamp_freq,time_stamp_kHz_freq; -double t; -U8 mouse_evt_time,kbd_evt_time; -U1Fifo *kbdmouse_fifo; - -//These are just handy variables -//available for debugging. You might -//put them on your wallpaper. -U8 sysdbg0,sysdbg1,sysdbg2,sysdbg3; diff --git a/LT/OSMain/OSStartUp.ASZ b/LT/OSMain/OSStartUp.ASZ deleted file mode 100644 index 79776c0..0000000 --- a/LT/OSMain/OSStartUp.ASZ +++ /dev/null @@ -1,457 +0,0 @@ - USE16 - JMP U2 LOSETHOS_START2 -////**************************PROCEDURE************************* -// ASM Global variables required for 16-bit start-up - ALIGN 4,OC_NOP -SYS_BOOT_BASE:: DU4 ?; //Fixed offset from start used by reboot -SYS_BOOT_HEADER_BASE:: DU4 ?; -SYS_OS_32START:: DU4 INIT_OS; - - ALIGN 16,OC_NOP -SYS_GDTTAB:: DU1 MAXGDT*16 DUP(0); -SYS_BOOT_CODE:: DU4 0xFF; -SYS_MEMBLKS:: DU4 0; -SYS_FREE_GDT_LIST:: DU4 0; - ALIGN 8,OC_NOP -SYS_ADAM_TSS:: DU1 TSS_STRUCT_SIZE DUP(0); -SYS_TEMP_PTR:: DU4 0,0,0; - -////**************************PROCEDURE************************* -//EBX is SYS_BOOT_CODE (value passed from boot blk) -LOSETHOS_START2:: - MOV AX,(0xA0000-2<>1,i; - U1 *b1,*b2,*temp=MAlloc(width); - BoolU4 cont; - - while (span) { - cont=TRUE; - while (cont) { - cont=FALSE; - for (i=0;i+span0) { - MemCpy(temp,b1,width); - MemCpy(b1,b2,width); - MemCpy(b2,temp,width); - cont=TRUE; - } - } - } - span>>=1; - } - Free(temp); -} diff --git a/LT/OSMain/SPrintF1.CPZ b/LT/OSMain/SPrintF1.CPZ deleted file mode 100644 index 6218605b1363bf76829c5efd89523e1fb38ee31d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6733 zcmeY?RL}|zD9X$$ar4U0%+mnzQ;JJ;Ky+GeiH@g*LSj*RGKkhnEJ`oaP{%6d<(DY<FMdgA_}Sm9JyFS95sl*Mu9v5O8^j~ z^z{Q0i;EQs@-y>FQi~Ky@)c4NOA>W>x%Bnj@{1Hyixmpc?~E}9oK%GrSX@KgqoJf~Xqu{|lL9grY!ojS$X&irN1=Ng=I)}@;?kTF z9W7$r4^eOHms%cNQUr6lf&#Kf;CT|F)*3lOLLBQ_RD{bt#JU410}%*Pa6tgEH$1Tj zQrLka1{(jcfFQwQkTKxsBVco=g@R*BVlJ9j_4R{O^HPcxN>VFIKzRz3{1a0Wa}`Pw zi?bEVGcuDi6w*^mz!@buKer$=CpAR@l=zEE^YowvF(_tlM) znUa&L0djGCNpUem2Uv}5U}INc!{K>8mwBZ1d~)y zPznx-2iNyV-X<}u3~>b(R05Vl(6}I7;4%{&co89qIoTQ^#l`R(P+SaeI6z7b^pH%< z%P+|QRgsCs+3Lj#nRx}JC7_BfsT5RqP${^;5sxKlK(bwGMTsZKT8)z8VjTle!ZFk_ z0C@~iI1~1DcxFikD3{~+J-FT_vIv4jFM8b5!ZQjAAh*LxC}`n?h*!tbl6(SrK0hy2 zy;vc?JP#6u3Xu3Ct^%-gww+#k4SVJwi5>)&7Wag#nCK9VM$~P3gGGp zvjzlZMxrY}V(K{W%$yu>7I$;>33f$|B?u4N34>IOu*MfCno^6(67xzzi&N1XU;6rB zuNNyMDh#QJLU_nIHw7ADu0dgrej#Wv2Fh9m`30o~pcad5NpUeaSr8j#@H~RlTv4b| zfD60%JBJ3tnlWILiHS&5H-WkfV69}vFSz0Y6>y+dIjCqxv~W@Cs?0oacPlTkq_ij% z+zZQ70BLi}%t-|`M!^LjC`+Q3fh5*pV876yWP>Def(4rnJaX`tYaruLD+o|PKq`sM zoYcI;+*DXM3lyjzzLBjSQDoXMd5<#j#g*B`( z1FZ@5pq){06A5H7Y7vUoN+PA508TJy)fA}k1h-_+8#16^0DB6Y>|u_fe&dB?M-ga& zfW|7^K()I@sD*-78aTLeGNA)+#U=2hW}%P?wi=Y?ic5@aeI0Xh@{=`!ONx9_^E8S} zG_?&ib+igfAOlFCY*t*N2^&5u&j96R4J{-g1yHv#CshF?sGz2%pjBL=XsfQRj$rGm zYw~h&7MEyigDqB2fTUop;u2esLa^a5X-<%ZFylEDK%+Fa#U)18yj+~bSOmA!*&{wU zz|q+iMZm+;4K%js=xsh|K70axvu3JRIFzKJEt89tfCC9ZiT zMU@)GB}O`+Fa@O%kbIhgMy8#u0n9X~l46ZColLN7Eu=%Gpirv-%2MFrO^AQL!~S|}vvmDn0o zSQzL)M|O%c^2_7%)6$AlOKd}eLP6O`U*DxPw?H8`H8;PgQbz%#A~P>t0ivi_4^-9% zr=}`^M?!r{(p;2ulzjcHz$_IFO>h(>D&%CAr7EP9<`%$O0-+WPnL1fI$r<1n1-r;L zsWc7DgO)+bd5B^O6ki~lp>Bi5B4o5*AxRfBJfx%m8`KA7M@R~VDbPVkX4z^a=atwQ znrSN7D;SztCFg;H2Nb_Z@s)*?RA6RAXT~BK16FLEX=7-HsZ>cp0qz#CI!FqH7z!(B z6%>*)Y?GohW5Heq*$?t#a)u44U_+E+3NTnGKr6tZ8iA5U8 z8L)VVl)K3pwzldjD&RsHQw=z6DkwM?`9MNj0h9=IZL^@pCTT;Nu$co$qRGXUYBa%- mpOIeLF-=mh7iva*c6@lph diff --git a/LT/OSMain/Scheduler.ASZ b/LT/OSMain/Scheduler.ASZ deleted file mode 100644 index 00d1679..0000000 --- a/LT/OSMain/Scheduler.ASZ +++ /dev/null @@ -1,330 +0,0 @@ -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -IDLE_START:: -SAVE_CONTEXT:: - PUSH RAX - PUSHFD - XOR EAX,EAX - MOV RAX,FS:TSS_ABSOLUTE_ADDRESS[RAX] - POP U8 TSS_RFLAGS[RAX] - MOV U8 TSS_RBX[RAX],RBX - MOV U8 TSS_RCX[RAX],RCX - MOV U8 TSS_RDX[RAX],RDX - MOV U8 TSS_RSI[RAX],RSI - MOV U8 TSS_RDI[RAX],RDI - MOV U8 TSS_RBP[RAX],RBP - MOV U8 TSS_R8[RAX],R8 - MOV U8 TSS_R9[RAX],R9 - MOV U8 TSS_R10[RAX],R10 - MOV U8 TSS_R11[RAX],R11 - MOV U8 TSS_R12[RAX],R12 - MOV U8 TSS_R13[RAX],R13 - MOV U8 TSS_R14[RAX],R14 - MOV U8 TSS_R15[RAX],R15 - POP U8 TSS_RAX[RAX] - - MOV RSI,RAX - XOR EAX,EAX - RDTSC - SHL RDX,32 - ADD RAX,RDX - MOV RBX,RAX -@@31: LOCK - BTS U4 [SYS_SEMAS+SYS_SEMA_TIMESTAMP*SEMA_STRUCT_SIZE],0 - JC @@31 - SUB RBX,U8 TSS_TIME_SLICE_START[RSI] - ADD U8 TSS_TOTAL_TIME[RSI],RBX - LOCK - BTR U4 [SYS_SEMAS+SYS_SEMA_TIMESTAMP*SEMA_STRUCT_SIZE],0 - - FSAVE U4 TSS_FPU[RSI] - - BT U4 TSS_TASK_FLAGS[RSI],TSSf_DISABLE_BPTS - JC @@4 - MOV RSI,U8 TSS_BPT_LIST[RSI] -@@3: OR RSI,RSI - JZ @@4 - MOV RDI,U8 BPT_ADDRESS[RSI] - MOV AL,U1 BPT_U1[RSI] - MOV U1 [RDI],AL - MOV RSI,U8 BPT_NEXT[RSI] - JMP @@3 -@@4: RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -RESTORE_CONTEXT:: - XOR EAX,EAX - MOV RAX,GS:CPU_ABSOLUTE_ADDRESS[RAX] - LOCK - INC U8 CPU_SWAP_CNTER[RAX] - XOR EAX,EAX - MOV RSI,FS:TSS_ABSOLUTE_ADDRESS[RAX] - BT U4 TSS_TASK_FLAGS[RSI],TSSf_DISABLE_BPTS - JC @@4 - MOV RDX,U8 TSS_BPT_LIST[RSI] -@@3: OR RDX,RDX - JZ @@4 - MOV RDI,U8 BPT_ADDRESS[RDX] - CMP RDI,U8 TSS_RIP[RSI] - JNE @@5 - BTR U8 BPT_FLAGS[RDX],SBPTf_DISABLE - JC @@6 -@@5: MOV AL,U1 [RDI] - MOV U1 BPT_U1[RDX],AL - MOV U1 [RDI],0xCC -@@6: MOV RDX,U8 BPT_NEXT[RDX] - JMP @@3 - -@@4: INC U8 TSS_SWAP_CNTER[RSI] - - FRSTOR U4 TSS_FPU[RSI] - - XOR EAX,EAX - RDTSC - SHL RDX,32 - ADD RAX,RDX - MOV RBX,RAX - MOV U8 TSS_TIME_SLICE_START[RSI],RBX - - MOV RBX,U8 TSS_RBX[RSI] - MOV RCX,U8 TSS_RCX[RSI] - MOV RDX,U8 TSS_RDX[RSI] - MOV RDI,U8 TSS_RDI[RSI] - MOV RBP,U8 TSS_RBP[RSI] - MOV R8,U8 TSS_R8[RSI] - MOV R9,U8 TSS_R9[RSI] - MOV R10,U8 TSS_R10[RSI] - MOV R11,U8 TSS_R11[RSI] - MOV R12,U8 TSS_R12[RSI] - MOV R13,U8 TSS_R13[RSI] - MOV R14,U8 TSS_R14[RSI] - MOV R15,U8 TSS_R15[RSI] - - MOV RAX,U8 TSS_RAX[RSI] - PUSH ZERO_DS_SEL - PUSH U8 TSS_RSP[RSI] - PUSH U8 TSS_RFLAGS[RSI] - PUSH SYS_CS64_SEL - PUSH U8 TSS_RIP[RSI] - MOV RSI,U8 TSS_RSI[RSI] - IRET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -END_TASK_EVT:: - MOV RAX,RSI - CALL PUT_FS_BASE - CALL END_TASK - MOV RSI,RAX - CALL PUT_FS_BASE - JMP SIN_PART2 - - ALIGN 8,OC_NOP -SWAP_IN_NEXT:: - PUSHFD - CLI - CALL SAVE_CONTEXT - - XOR ESI,ESI - MOV RSI,FS:TSS_ABSOLUTE_ADDRESS[RSI] - MOV RBX,U4 IDLE_POINT - MOV U8 TSS_RIP[RSI],RBX - POP U8 TSS_RFLAGS[RSI] - MOV U8 TSS_RSP[RSI],RSP - -SIN_PART1:: - MOV RSI,U8 TSS_NEXT_TSS[RSI] -SIN_PART2:: - TEST U4 [SYS_FLAGS],1<d<_D)SL2q?-dODsv%@b}ZSuI1%Y&df{BDNRXLP}27a(f1GbP0Y;GcT7pl z_15zUh*IL^N-WM*sK%krKiDNTtys@77^Dzn7}yrqijvf#ykaBI+=Bd~l48O(89}YW Z?G|I03hWlRxk3B_mPPR-REC#}0RSXqPIv$S diff --git a/LT/OSMain/Strings.CPZ b/LT/OSMain/Strings.CPZ deleted file mode 100644 index 70b5909..0000000 --- a/LT/OSMain/Strings.CPZ +++ /dev/null @@ -1,746 +0,0 @@ -I1 *PointAtListEntry(I8 entry_number, I1 *lst) -{ - while (*lst && entry_number>0) { - while (*lst) /* Advance to end of cur entry. */ - lst++; - lst++; /* Skip trailing zero */ - entry_number--; - if (*lst=='@') { /* Check for '@' alias list entry*/ - entry_number++; - lst++; - } - } - if (entry_number) - return NULL; - else - return lst; -} - -I8 MatchListEntry(I1 *src, I1 *lst,I8 flags=0,I8 *ambiguity_overkill_ptr=NULL) -/* RETURNS: -2 if Ambiguous, -1 if not found, else entry_number */ -{ - I8 n,entry_num=0,result=-1,unutilized_src; - I1 *s; - BoolU4 exact_match=FALSE; - - n=StrLen(src); - if (ambiguity_overkill_ptr) - *ambiguity_overkill_ptr=n; - while (*lst) { - if (*lst=='@') { /* Check for '@' alias list entry*/ - entry_num--; - lst++; - } - - s=src; - if (flags & MLE_IGNORE_CASE) - while (*s && ToUpper(*s) == ToUpper(*lst)) { - s++; - lst++; - } - else - while (*s && *s==*lst) { - s++; - lst++; - } - unutilized_src=n-(s-src); - if (!(*s)) { /* Did we reach end of sourcecout */ - if (!(*lst)) { /* Did we reach end of list entrycout */ - if (!ambiguity_overkill_ptr) - return entry_num; /* Found Exact match */ - result=entry_num; - exact_match=TRUE; - } else { - if (result!=-1) { - if (ambiguity_overkill_ptr) - *ambiguity_overkill_ptr=0; - if (!exact_match) - result=-2; /* AMBIGUOUS RESPONSE unless later exact match*/ - } else { - if (!(flags & MLE_EXACT)) - result=entry_num; - } - } - } else { - if (ambiguity_overkill_ptr && *ambiguity_overkill_ptr>(unutilized_src-1)) - *ambiguity_overkill_ptr=unutilized_src-1; - } - - while (*lst) /* Advance to end of cur entry. */ - lst++; - lst++; /* Skip trailing zero */ - entry_num++; - } - if (ambiguity_overkill_ptr && result==-1) - *ambiguity_overkill_ptr=0; - return result; -} - -void UndefinedSysText(I1 *name) -{ - coutln "Error: Undefined SysText: '",name,"'."; - throw(EXCEPT_UNDEF_SYSTEXT,name); -} - - -I1 *SysText(I1 *name) -{ - SysHashEntry *temph=FindLocalHash(name,HTT_SYSTEXT); - if (temph) - return temph->user_data0; - else - UndefinedSysText(name); -} - -I1 *SysTextSub(U8 sub,I1 *name) -{ - SysHashEntry *temph=FindLocalHash(name,HTT_SYSTEXT); - if (temph) - return PointAtListEntry(sub,temph->user_data0); - else - UndefinedSysText(name); -} - -I8 SysTextSubCount(I1 *name) -{ - SysHashEntry *temph=FindLocalHash(name,HTT_SYSTEXT); - if (temph) - return temph->user_data1; - else - UndefinedSysText(name); -} - -I8 MatchSysTextEntry(I1 *src, I1 *lst_name, - I8 flags=0,I8 *ambiguity_overkill_ptr=NULL) -{ - return MatchListEntry(src,SysText(lst_name), - flags,ambiguity_overkill_ptr); -} - -void PutSysText(I1 *name) -{ - PutS(SysText(name)); -} - - -SysHashEntry *LoadStr(I1 *name, I1 *st) -{ - SysHashEntry *temph; - temph=MAllocZ(sizeof(SysHashEntry)); - temph->type=HTT_SYSTEXT; - temph->str=NewStr(name); - temph->user_data0=NewStr(st); - temph->user_data1=-1; - AddSysHashEntry(temph,Fs->hash_table); - return temph; -} - -SysHashEntry *LoadList(I1 *name, I1 *st) -{ - U8 cnt=0; - I1 *ptr; - SysHashEntry *temph; - temph=MAllocZ(sizeof(SysHashEntry)); - temph->type=HTT_SYSTEXT; - temph->str=NewStr(name); - ptr=st; - while (*ptr) { - while (*ptr++); - cnt++; - } - temph->user_data0=MAlloc(ptr+1-st); - MemCpy(temph->user_data0,st,ptr+1-st); - temph->user_data1=cnt; - AddSysHashEntry(temph,Fs->hash_table); - return temph; -} - -I8 Occurrences(I1 *src, I8 ch) -{ - I8 i=0; - while (*src) - if (*src++ == ch) i++; - return i; -} - -I8 SpacesToTabs(I1 *dst2,I1 *src) -{ - I1 *src2,*dst=dst2; - I8 i,changed=0,space_cnt,space_cnt2,col=0; - while (*src) { - src2=src; - space_cnt=0; - while (*src2==CH_SPACE) { - space_cnt++; - src2++; - } - if (space_cnt<2) { - if (*src==CH_TAB) - col=0; - else { - col++; - if (col==8) - col=0; - } - *(dst++)=*(src++); - } else { - while (col+space_cnt>=8) { - space_cnt2=8-col; - if (space_cnt2==1) - *(dst++)=CH_SPACE; - else { - *(dst++)=CH_TAB; - changed=changed+(space_cnt2-1); - } - space_cnt=space_cnt-space_cnt2; - col=0; - } - for (i=0;i=l-2) { - temp=MAlloc(l<<1); - MemCpy(temp,dst,i+1); - Free(dst); - l<<=1; - dst=temp; - } - } - col=j; - } else { - dst[col]=ch; - if (col>=l-2) { - temp=MAlloc(l<<1); - MemCpy(temp,dst,col+1); - Free(dst); - l<<=1; - dst=temp; - } - col++; - } - } - dst[col]=0; - return dst; -} - -I1 *StrUtil(I1 *u, I8 mask) -{ - I1 *src,*dst; - I8 ch; - - src=u; - if (mask & SU_REMOVE_LEADING) - while (*src==CH_SPACE || *src==CH_SHIFT_SPACE || *src==CH_TAB) - src++; - - dst=u; - while (ch=*src++) { - if (ch==CH_SPACE || ch==CH_SHIFT_SPACE || ch==CH_TAB) { - if (!(mask & SU_REMOVE_SPACES)) { - if (mask & SU_SINGLE_SPACE) { - (*dst++) = CH_SPACE; - while (ch= *src++ && (ch==CH_SPACE || ch==CH_SHIFT_SPACE || ch==CH_TAB) ); - src--; - } else - (*dst++) = ch; - } - } else { - if (!(mask & SU_REMOVE_CTRL_CHARS) || ch>=CH_SHIFT_SPACE) - (*dst++)=ch; - } - } - *dst=0; - - if (mask & SU_CAP_UNDERSCORES) { - src=u; - dst=u; - while (*src) { - *dst++=ToUpper(*src++); - while (*src && *src!='_') - *dst++=*src++; - if (*src=='_') - src++; - } - *dst=0; - } - - if (mask & SU_REMOVE_TRAILING) - while ( dst != u && (!*dst || *dst==CH_SPACE || *dst==CH_SHIFT_SPACE || *dst==CH_TAB)) - (*dst--)=0; - if (mask & SU_DISCARD_PARITY) - for (dst=u;*dst;dst++) { - ch=*dst; - *dst=ch & 127; - } - if (mask & SU_TO_UPPER) - for (dst=u;*dst;dst++) { - ch=*dst; - if (ch>=0x61 && ch<=0x7A) - *dst = ch-0x20; - } - if (mask & SU_TO_LOWER) - for (dst=u;*dst;dst++) { - ch=*dst; - if (ch>=0x41 && ch<=0x5A) - *dst = ch+0x20; - } - if (mask & SU_SAFE_DOLLAR) - for (dst=u;*dst;dst++) { - ch=*dst; - if (!Bt(safe_dollar_chars_bitmap,*dst)) - *dst = '.'; - } - if (mask & SU_S2T) - SpacesToTabs(u,u); - return u; -} - -I1 *MStrUtil(I1 *src,U8 flags) -//Return a $LK,"MAlloc","MN:MAlloc"$()ed result from StrUtil -{ - I1 *dst=NewStr(src),*dst2,*temp; - StrUtil(dst,flags); - if (flags & SU_T2S) { - temp=TabsToSpaces(dst); - Free(dst); - dst=temp; - } - dst2=NewStr(dst); //Shorten - Free(dst); - return dst2; -} - -I1 *RemoveFirstSeg(I1 *src, I1 *marker, I1 *dst=NULL) -{ - I1 *temp,*temp1,ch; - - temp = src; - temp1= dst; - if (dst) { - while ( (ch= *src++) && !Occurrences(marker,ch) ) - *dst++=ch; - *dst = 0; - } else - while ( (ch= *src++) && !Occurrences(marker,ch) ); - - if (ch) - StrCpy(temp,src); - else - *temp=0; - return temp1; -} - - -I1 *RemoveLastSeg(I1 *src, I1 *marker, I1 *dst=NULL) -{ - I1 *temp; - - temp=src+StrLen(src); - while (temp>src && !Occurrences(marker,*temp)) - temp--; - if (Occurrences(marker,*temp)) { - if (dst) - StrCpy(dst,temp+1); - *temp=0; - } else { - if (dst) - StrCpy(dst,src); - *src=0; - } - return dst; -} - -I1 *SearchStr(I1 *src,I1 *pattern,U8 flags=0) -{ - BoolU4 cont; - U1 *src2; - I1 *saved_src=src; - I8 plen=StrLen(pattern); - do { - cont=FALSE; - if (flags & SS_IGNORE_CASE) - src=StrIStr(src,pattern); - else - src=StrStr(src,pattern); - if (src && flags & SS_WHOLE_LABELS) { - src2=src+plen; - if (Bt(alpha_numeric_bitmap,*src2)) { - src++; //TODO: Numbers could be false negative - if (*src) - cont=TRUE; - else - src=NULL; - } else { - if (src!=saved_src) { - src2=src-1; - if (Bt(alpha_numeric_bitmap,*src2)) { - src++; - if (*src) - cont=TRUE; - else - src=NULL; - } - } - } - } - } while (cont); - return src; -} - -BoolU8 WildCardMatch(I1 *wild_st,I1 *src_st) -{ - U8 ch1,ch2; - while (TRUE) { - if ( !(ch1 = *src_st++)) { - if (*wild_st) - return FALSE; - else - return TRUE; - } else { - if ( !(ch2 = *wild_st++)) - return FALSE; - else { - if (ch2 == '*') { - if (!(ch2 = *wild_st++)) - return TRUE; - while (ch2 != ch1) - if (!(ch1 = *src_st++)) - return FALSE; - } else - if (ch2!='?') - if (ch1!=ch2) - return FALSE; - } - } - } -} - -BoolU8 WildFileNameList(I1 *wild_st,I1 *src_st) -{ - BoolU4 result=FALSE; - - I1 *buf1=NewStr(wild_st), - *buf2=MAlloc(StrLen(wild_st)+1); - while (TRUE) { - RemoveFirstSeg(buf1,";",buf2); - if (*buf2) { - if (*buf2=='~') { - if (WildCardMatch(buf2+1,src_st)) { - result=FALSE; - break; - } - } else { - if (WildCardMatch(buf2,src_st)) - result=TRUE; - } - } else - break; - } - Free(buf1); - Free(buf2); - return result; -} - -I1 *Add2Str(I1 *base,I1 *addition) -//Concatinates a string onto another string. -//Returns new string. -//Doubles length when it grows. -{ - I1 *result; - I8 blen=StrLen(base),alen=StrLen(addition); - I8 bmem=MSize(base); - if (blen+alen+1>bmem) { - result=MAlloc(bmem<<1+alen+4); - MemCpy(result,base,blen); - StrCpy(result+blen,addition); - Free(base); - } else { - result=base; - StrCpy(result+blen,addition); - } - return result; -} - -void CheckLTPartition(LTPartition *p) -{ - if (!p || p->ch_L!='L' || p->ch_P!='P' || p->ch_E!='E') - throw(EXCEPT_PARTITION,9); -} - -I1 PartitionToDrive(LTPartition *p=NULL) -{ - if (!p) - p=Fs->cur_partition; - CheckLTPartition(p); - return p->drive; -} - -LTPartition *DriveToPartition(I1 drive=0) -{ - LTPartition *p; - if (!drive) - p=Fs->cur_partition; - else if (drive==':') - p=default_partition; - else - p=drive_to_partition[ToUpper(drive)-'A']; - CheckLTPartition(p); - return p; -} - -void CheckLTBlkDev(LTBlkDev *bdev) -{ - if (!bdev || bdev->ch_L!='L' || - bdev->ch_B!='B' || bdev->ch_D!='D') - throw(EXCEPT_BLKDEV,1); - if (bdev->type<=LTBDT_NULL || bdev->type>LTBDT_NON_LT_FILE) - throw(EXCEPT_BLKDEV,2); -} - -LTBlkDev *DriveToBlkDev(I1 drive=0) -{ - LTPartition *p=DriveToPartition(drive); - LTBlkDev *bdev=p->bdev; - CheckLTBlkDev(bdev); - return bdev; -} - -BoolU8 DriveIsWritable(I1 drive=0) -{ - LTBlkDev *bdev=DriveToBlkDev(drive); - if (bdev->flags & LTBDF_READ_ONLY) - return FALSE; - else - return TRUE; -} - -I1 *CurDir() -{ - I1 *st=MAlloc(StrLen(Fs->cur_dir)+3); - st[0]=PartitionToDrive; - st[1]=':'; - StrCpy(st+2,Fs->cur_dir); - return st; -} - -I1 *AbsoluteDirName(I1 *name) -{ - I8 maxlen; - I1 drive[3],*hdir,*cur_dir,*buf2,*buf3,*buf,*my_name,*temp_name; - if (!Fs->cur_dir) - return NewStr(name); - if (!*Fs->cur_dir) - return NewStr(name); - my_name=MStrUtil(name, - SU_REMOVE_LEADING|SU_REMOVE_TRAILING| - SU_DISCARD_PARITY|SU_REMOVE_CTRL_CHARS); - temp_name=my_name; - drive[0]=PartitionToDrive; - drive[1]=':'; - drive[2]=0; - if (*my_name && my_name[1]==':') { - if (*my_name==':') - drive[0]=default_drive; - else - drive[0]=*my_name; - my_name=my_name+2; - cur_dir=NewStr("/"); - } else - cur_dir=NewStr(Fs->cur_dir); - if (*my_name=='/') { - Free(cur_dir); - cur_dir=NewStr("/"); - my_name++; - } - - buf2=NewStr(my_name); - maxlen=StrLen(cur_dir)+1+StrLen(buf2)+1; - buf3=MAlloc(maxlen); - buf =MAlloc(maxlen); - StrCpy(buf3,cur_dir); - while (*buf2) { - RemoveFirstSeg(buf2,"/",buf); - if (!*buf) - StrCpy(buf3,"/"); - else if (!StrCmp(buf,"..")) { - RemoveLastSeg(buf3,"/"); - if (!*buf3) - StrCpy(buf3,"/"); - } else if (!StrCmp(buf,".")) { - ; - } else if (*buf) { - if (!StrCmp(buf,"HOME")) { - Free(buf3); - hdir=HomeDirStr; - buf3=MAlloc(maxlen+StrLen(hdir)); - StrCpy(buf3,hdir+2); - Free(hdir); - drive[0]=default_drive; - } else { - if (StrCmp(buf3,"/")) - StrCat(buf3,"/"); - StrCat(buf3,buf); - } - } - } - Free(cur_dir); - cur_dir=MAlloc(StrLen(buf3)+3); - StrCpy(cur_dir,drive); - StrCpy(cur_dir+2,buf3); - Free(buf); - Free(buf2); - Free(buf3); - Free(temp_name); - return cur_dir; -} - -I1 *AbsoluteFileName(I1 *name) -{ - I1 *buf,*buf2,*buf3,*my_name,*temp_name,*temp_buf; - my_name=MStrUtil(name, - SU_REMOVE_LEADING|SU_REMOVE_TRAILING| - SU_DISCARD_PARITY|SU_REMOVE_CTRL_CHARS); - temp_name=my_name; - buf=NewStr(my_name); - temp_buf=buf; - if (*buf && buf[1]==':') { - buf+=2; - my_name+=2; - } - buf2=MAlloc(StrLen(temp_name)+1); - RemoveLastSeg(buf,"/",buf2); - if (*my_name=='/' && !*buf) - StrCpy(buf,"/"); - buf3=AbsoluteDirName(temp_buf); - Free(temp_buf); - buf=MAlloc(StrLen(buf3)+1+StrLen(buf2)+1); - StrCpy(buf,buf3); - if (buf[StrLen(buf)-1]!='/') - StrCat(buf,"/"); - StrCat(buf,buf2); - Free(buf2); - Free(buf3); - Free(temp_name); - return buf; -} - -I1 *ChangeExtension(I1 *name,I1 *extension) -{ - I1 *result=MAlloc(StrLen(name)+1+StrLen(extension)+1); - StrCpy(result,name); - if (Occurrences(name,'.')) - RemoveLastSeg(result,"."); - StrCat(result,"."); - StrCat(result,extension); - return result; -} - -I1 *DefaultExtension(I1 *name,I1 *extension) -{ - I1 *result=MAlloc(StrLen(name)+1+StrLen(extension)+1); - StrCpy(result,name); - if (!Occurrences(name,'.')) { - StrCat(result,"."); - StrCat(result,extension); - } - return result; -} - -U8 FileAttr(I1 *name,U8 attr=0) -{ - I1 *ptr=name,ch=0; - while (*ptr && *ptr!='.') - ptr++; - if (*ptr=='.') - ch=ToUpper(ptr[StrLen(ptr)-1]); - if (ch=='Z') - attr|=LT_ATTR_COMPRESSED; - else - attr&=~LT_ATTR_COMPRESSED; -//TODO: temporary - attr|=LT_ATTR_CONTIGUOUS; - return attr; -} - -BoolU8 CheckFileName(I1 *name) -{ - I1 *ptr=name; - if (!name) return FALSE; - if (!*ptr) return FALSE; - if (*ptr=='.') { - if (!ptr[1]) return TRUE; - if (ptr[1]=='.' && !ptr[2]) return TRUE; - } - if (StrLen(name)>LT_MAX_FILENAME_LEN) return FALSE; - while (*ptr) - if (!Bt(filename_chars_bitmap,*ptr++)) - return FALSE; - return TRUE; -} - - -I8 AtoI(I1 *st,I8 radix=10,I1 **end_ptr=NULL) -{ - BoolU4 neg=FALSE; - I1 ch; - I8 result=0,k=0; - if (radix<2||radix>36) return 0; - while (*st==CH_SPACE || *st==CH_SHIFT_SPACE || *st==CH_TAB) - st++; - if (*st=='-') { - st++; - neg=TRUE; - } - if (*st=='+') st++; - while (ch=ToUpper(*st++)) { - k++; - if (radix==10) { - if (ch>='0' && ch<='9') - result=result*10+ch-'0'; - else if (k==2 && !result) { - if (ch=='X') - radix=16; - else if (ch=='B') - radix=2; - else if (ch=='o') - radix=8; - else - break; - } else - break; - } else if (radix>10) { - if (ch>='0' && ch<='9') - result=result*radix+ch-'0'; - else if (ch>='A' && ch<='A'+radix-11) - result=result*radix+ch-'A'+10; - else - break; - } else { - if (ch>='0' && ch<='0'+radix-1) - result=result*radix+ch-'0'; - else - break; - } - } - if (end_ptr) *end_ptr=st-1; - return (neg)? -result:result; -} - - \ No newline at end of file diff --git a/LT/OSMain/SysText.CPZ b/LT/OSMain/SysText.CPZ deleted file mode 100644 index 273b7db..0000000 --- a/LT/OSMain/SysText.CPZ +++ /dev/null @@ -1,97 +0,0 @@ -void LoadSysStrs() -{ - LoadStr("ST_USER_STARTUP","Welcome\r\n"); - LoadStr("ST_UNDEFINED_EXTERN","Undefined Extern\r\n"); - LoadStr("ST_FILE_NOT_FOUND","File not found.\r\n"); - LoadStr("ST_INVALID_FILENAME","Invalid File Name.\r\n"); - LoadStr("ST_PRESS_A_KEY","$$BK,1$$PRESS A KEY$$BK,0$$\r\n"); - LoadStr("ST_ARE_YOU_SURE","ARE YOU SURE "); - LoadStr("ST_NOT_LT","Not LT Partition\r\n"); - LoadStr("ST_NOT_ISO9660","Not ISO9660 Partition\r\n"); - LoadStr("ST_DELETE","Del "); - LoadStr("ST_INVALID_DRIVE","Invalid Drive\r\n"); - LoadStr("ST_CUR_PARTITION","Current Partition: "); - LoadStr("ST_NO_MATCHING_ENTRIES","No matching entries\r\n"); - LoadList("ST_LTF_CMDS","TX\0CR\0SR\0CU\0TB\0CL\0PB\0DA\0PL\0LM\0RM\0HD\0" - "FO\0ID\0FG\0BG\0FD\0BD\0FL\0BL\0" - "FM\0BM\0FA\0BA\0FH\0BH\0FE\0BE\0FU\0BU\0WW\0UL\0IV\0BK\0SX\0SY\0CM\0AN\0LK\0BT\0" - "CB\0MA\0MU\0HX\0HS\0HE\0TR\0PI\0IB\0IT\0IS\0BP\0SO\0OL\0OR\0PW\0ER\0"); - LoadList("ST_LTF_FLAGS","A\0L\0" - "LC\0LE\0LM\0LA\0RC\0RE\0RM\0RA\0" - "DC\0BI\0X\0Q\0LX\0CX\0RX\0TY\0CY\0BY\0SX\0SY\0SCX\0SCY\0WR\0" - "WD\0HT\0 \0 \0 \0 \0 \0" - "B\0S\0BD\0C\0CK\0RD\0P\0T\0" - "Z\0WW\0UL\0IV\0BK\0SEL\0H\0TR\0SK\0AL\0PU\0PRY\0MRX\0" - "TML\0TMR\0FST\0"); - LoadList("ST_HTT_TYPES","StrConst\0SysSym\0KeyWord\0LocVar\0GlbVar\0Class\0" - "IntType\0Funct\0Word\0DictWord\0OpCode\0R8\0R16\0R32\0R64\0" - "SegReg\0SysText\0File\0Module\0HelpFile\0.\0.\0.\0.\0.\0Private\0" - "Public\0Export\0Import\0Lit\0UnrLoc\0UnrGlb\0"); - LoadList("ST_DAYS_OF_WEEK","Sunday\0Monday\0Tuesday\0Wednesday\0" - "Thursday\0Friday\0Saturday\0"); - LoadList("ST_MONTHS","January\0February\0March\0April\0May\0" - "June\0July\0August\0September\0October\0November\0December\0"); - LoadList("ST_EXCEPT_TYPES","Local\0Compiler\0Arithmetic\0Undefined Systext\0" - "Undefined Extern\0File\0Break\0File Xsum\0" - "FDC error\0Partition error\0Blk Dev error\0" - "Floating\0Graphics\0SPrintF\0"); - LoadList("ST_FILE_ATTRS","R\0H\0S\0V\0D\0A\0.\0.\0X\0Y\0T\0Z\0" - "C\0F\0"); - LoadList("ST_FILE_UTIL_FLAGS","r\0d\0i\0l\0?\0a\0c\0R\0p\0m\0D\0t\0"); - LoadList("ST_BLKDEV_TYPES","NULL \0RAM \0FDC \0ATA \0ATAPI\0FILE_\0NONLT\0"); - LoadList("ST_GRELEM_TYPES","End\0.\0Color (4-bit)\0.\0Point\0" - "Line\0PolyLine\0PolyPoint\0Width\0Shift\0" - "BSpline2\0BSpline3\0BSpline2 Closed\0BSpline3 Closed\0SpeedLine\0" - " \0 \0Box\0Circle\0Flood Fill Not Color\0Flood Fill\0BitMap (4-bit)\0" - "BitMap (4-bit) Transparent\0Text\0Ellipse\0"); - LoadList("ST_LINK_TYPES","FI\0FA\0FF\0FL\0MN\0PI\0PF\0PL\0BF\0DF\0HI\0"); - - LoadStr("ST_ADDDRIVES0", - "\r\n\r\n\r\n$$BK,1$$$$FG,PURPLE$$Add drives to this installation so they will " - "be present when you boot.$$FG$$$$BK,0$$\r\n"); - LoadStr("ST_ADDDRIVES1", - "\r\n****** Add Drives ******\r\n" - "The base drive letter is the letter\r\n" - "of the first partition. If adding\r\n" - "a hard drive, you should pick 'C'.\r\n" - "If more than one partition is present\r\n" - "they will be lettered in sequence.\r\n" - "\r\n" - "Base Drive Letter(ENTER to exit):"); - LoadStr("ST_ADDDRIVES2", - "\t1=RAM\r\n\t2=FDC(Floppy)\r\n\t3=ATA(Harddisk)\r\n" - "\t4=ATAPI(CD-ROM)\r\n\t5=LT File\r\n" - "\t6=Non LT File\r\n" - "Type:"); - LoadStr("ST_ADDDRIVES3", - "Filename:"); - LoadStr("ST_ADDDRIVES4", - "Reformat (with each boot) "); - LoadStr("ST_ADDDRIVES5", - "Blks(2880 for floppy):"); - LoadStr("ST_ADDDRIVES7", - "\t0=Master\r\n\t1=Slave\r\nUnit:"); - LoadStr("ST_ADDDRIVES11", - "\r\nReformat WHOLE drive!"); - LoadStr("ST_ADDDRIVES12a", - "Press ENTER to use booted CD-ROM\r\n"); - LoadStr("ST_ADDDRIVES12", - "Base0:\r\n"); - LoadStr("ST_ADDDRIVES13", - "Base1:\r\n"); - LoadStr("ST_ADDDRIVES14", - "Irq:\r\n"); - LoadStr("ST_ADDDRIVES15", - "Non LT Drive Letter:"); - LoadStr("ST_ADDDRIVES16", - "File blk num:"); - - LoadStr("ST_FAILED","\r\n\r\n$$BK,1$$$$FG,RED$$Operation Failed$$BK,0$$$$FG$$\r\n\r\n"); - - LoadList("ST_COLORS","BLACK\0BLUE\0GREEN\0CYAN\0" - "RED\0PURPLE\0BROWN\0LTGRAY\0DKGRAY\0LTBLUE\0LTGREEN\0" - "LTCYAN\0LTRED\0LTPURPLE\0YELLOW\0WHITE\0\0"); - -$AN,"Anchor for inserting OS systext","OS_SYSTEXT"$ - -} diff --git a/LT/OSMain/SysUtils.ASZ b/LT/OSMain/SysUtils.ASZ deleted file mode 100644 index 3ffcb51..0000000 --- a/LT/OSMain/SysUtils.ASZ +++ /dev/null @@ -1,884 +0,0 @@ -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_CALL:: - PUSH RBP - MOV RBP,RSP - MOV RAX,U8 SF_PARAM1[RBP] - OR RAX,RAX - JZ @@100 - CALL RAX -@@100: POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -OR_U4_BIT_FIELD:: - PUSH RBP - MOV RBP,RSP - MOV RBX,U8 SF_PARAM2[RBP] - SHR RBX,3 - ADD RBX,U8 SF_PARAM1[RBP] - MOV RAX,U8 SF_PARAM3[RBP] - MOV RCX,U8 SF_PARAM2[RBP] - AND RCX,7 - SHL RAX,CL - OR U8 [RBX],RAX - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -SYS_EBF_MASKTABLE: - DU8 0,1,3,7,15,31,63,127,255; - DU8 0x1FF,0x3FF,0x7FF,0x0FFF; - DU8 0x1FFF,0x3FFF,0x7FFF,0x0FFFF; - DU8 0x1FFFF,0x3FFFF,0x7FFFF,0xFFFFF; - DU8 0x1FFFFF,0x3FFFFF,0x7FFFFF,0xFFFFFF; - DU8 0x1FFFFFF,0x3FFFFFF,0x7FFFFFF,0xFFFFFFF; - DU8 0x1FFFFFFF,0x3FFFFFFF,0x7FFFFFFF,0xFFFFFFFF; - -EXTRACT_U4_BIT_FIELD:: - PUSH RBP - MOV RBP,RSP - MOV RBX,U8 SF_PARAM2[RBP] - MOV CL,3 - SHR RBX,3 - ADD RBX,U8 SF_PARAM1[RBP] - MOV RAX,U8 [RBX] - MOV RCX,U8 SF_PARAM2[RBP] - AND RCX,7 - SHR RAX,CL - MOV RBX,U8 SF_PARAM3[RBP] - AND RAX,U8 SYS_EBF_MASKTABLE[RBX*8] - POP RBP - RET -////**************************PROCEDURE************************* -// IN: RSI=STRUCT TO INSERT -// RDI=PREDECESSOR - ALIGN 8,OC_NOP -INSQUE:: - PUSH RBX - MOV RBX,U8 [RDI] - MOV U8 [RDI],RSI - MOV U8 [RSI],RBX - MOV U8 8[RSI],RDI - MOV U8 8[RBX],RSI - POP RBX - RET -////**************************PROCEDURE************************* -// IN: RSI=STRUCT TO INSERT -// RDI=SUCCESSOR - ALIGN 8,OC_NOP -INSQUE_REV:: - PUSH RBX - MOV RBX,U8 8[RDI] - MOV U8 [RBX],RSI - MOV U8 [RSI],RDI - MOV U8 8[RSI],RBX - MOV U8 8[RDI],RSI - POP RBX - RET -////**************************PROCEDURE************************* -// IN: RSI=STRUCT TO REMOVE - ALIGN 8,OC_NOP -REMQUE:: - PUSH RBX - PUSH RDI - MOV RBX,U8 [RSI] - MOV RDI,U8 8[RSI] - MOV U8 [RDI],RBX - MOV U8 8[RBX],RDI - POP RDI - POP RBX - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_REP_INSW:: - PUSH RBP - MOV RBP,RSP - PUSH RDI - MOV RDI,U8 SF_PARAM1[RBP] - MOV RDX,U8 SF_PARAM3[RBP] - MOV RCX,U8 SF_PARAM2[RBP] - REP_INSW - POP RDI - POP RBP - RET - - ALIGN 8,OC_NOP -CP_REP_INSB:: - PUSH RBP - MOV RBP,RSP - PUSH RDI - MOV RDI,U8 SF_PARAM1[RBP] - MOV RDX,U8 SF_PARAM3[RBP] - MOV RCX,U8 SF_PARAM2[RBP] - REP_INSB - POP RDI - POP RBP - RET - - ALIGN 8,OC_NOP -CP_REP_OUTSW:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - MOV RSI,U8 SF_PARAM1[RBP] - MOV RDX,U8 SF_PARAM3[RBP] - MOV RCX,U8 SF_PARAM2[RBP] - REP_OUTSW - POP RSI - POP RBP - RET - - ALIGN 8,OC_NOP -CP_REP_OUTSB:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - MOV RSI,U8 SF_PARAM1[RBP] - MOV RDX,U8 SF_PARAM3[RBP] - MOV RCX,U8 SF_PARAM2[RBP] - REP_OUTSB - POP RSI - POP RBP - RET - - ALIGN 8,OC_NOP -CP_HLT:: - HLT - -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_FSQRT:: - PUSH RBP - MOV RBP,RSP - FLD U8 SF_PARAM1[RBP] - FSQRT - FSTP U8 SF_PARAM1[RBP] - FWAIT - MOV RAX,U8 SF_PARAM1[RBP] - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_FSIN:: - PUSH RBP - MOV RBP,RSP - FLD U8 SF_PARAM1[RBP] - FSIN - FSTP U8 SF_PARAM1[RBP] - FWAIT - MOV RAX,U8 SF_PARAM1[RBP] - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_FCOS:: - PUSH RBP - MOV RBP,RSP - FLD U8 SF_PARAM1[RBP] - FCOS - FSTP U8 SF_PARAM1[RBP] - FWAIT - MOV RAX,U8 SF_PARAM1[RBP] - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_FTAN:: - PUSH RBP - MOV RBP,RSP - FLD U8 SF_PARAM1[RBP] -@@1: FPTAN - FSTSW - FWAIT - TEST AX,0x400 - JNZ @@1 - FFREE - FINCSTP - FSTP U8 SF_PARAM1[RBP] - FWAIT - MOV RAX,U8 SF_PARAM1[RBP] - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_FATAN:: - PUSH RBP - MOV RBP,RSP - FLD U8 SF_PARAM1[RBP] - FLD1 -@@1: FPATAN - FSTSW - FWAIT - TEST AX,0x400 - JNZ @@1 - FSTP U8 SF_PARAM1[RBP] - FWAIT - MOV RAX,U8 SF_PARAM1[RBP] - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_ARG:: - PUSH RBP - MOV RBP,RSP - FLD U8 SF_PARAM2[RBP] - FLD U8 SF_PARAM1[RBP] -@@1: FPATAN - FSTSW - FWAIT - TEST AX,0x400 - JNZ @@1 - FSTP U8 SF_PARAM1[RBP] - FWAIT - MOV RAX,U8 SF_PARAM1[RBP] - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_ROUND:: - PUSH RBP - MOV RBP,RSP - - SUB RSP,8 - FSTCW U4 -8[RBP] - FWAIT - MOV AX,U2 -8[RBP] - MOV U2 -6[RBP],AX - AND AX,~0x0C00 - MOV U2 -8[RBP],AX - FLDCW U4 -8[RBP] - - FLD U8 SF_PARAM1[RBP] - FRNDINT - FSTP U8 SF_PARAM1[RBP] - FWAIT - MOV RAX,U8 SF_PARAM1[RBP] - - FLDCW U4 -6[RBP] - FWAIT - ADD RSP,8 - - POP RBP - RET - -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_TRUNC:: - PUSH RBP - MOV RBP,RSP - - SUB RSP,8 - FSTCW U4 -8[RBP] - FWAIT - MOV AX,U2 -8[RBP] - MOV U2 -6[RBP],AX - OR AX,0x0C00 - MOV U2 -8[RBP],AX - FLDCW U4 -8[RBP] - - FLD U8 SF_PARAM1[RBP] - FRNDINT - FSTP U8 SF_PARAM1[RBP] - FWAIT - MOV RAX,U8 SF_PARAM1[RBP] - - FLDCW U4 -6[RBP] - FWAIT - ADD RSP,8 - - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_FLOOR:: - PUSH RBP - MOV RBP,RSP - - SUB RSP,8 - FSTCW U4 -8[RBP] - FWAIT - MOV AX,U2 -8[RBP] - MOV U2 -6[RBP],AX - AND AX,~0x0C00 - OR AX,0x0400 - MOV U2 -8[RBP],AX - FLDCW U4 -8[RBP] - - FLD U8 SF_PARAM1[RBP] - FRNDINT - FSTP U8 SF_PARAM1[RBP] - FWAIT - MOV RAX,U8 SF_PARAM1[RBP] - - FLDCW U4 -6[RBP] - FWAIT - ADD RSP,8 - - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_CEILING:: - PUSH RBP - MOV RBP,RSP - - SUB RSP,8 - FSTCW U4 -8[RBP] - FWAIT - MOV AX,U2 -8[RBP] - MOV U2 -6[RBP],AX - AND AX,~0x0C00 - OR AX,0x0800 - MOV U2 -8[RBP],AX - FLDCW U4 -8[RBP] - - FLD U8 SF_PARAM1[RBP] - FRNDINT - FSTP U8 SF_PARAM1[RBP] - FWAIT - MOV RAX,SF_PARAM1[RBP] - - FLDCW U4 -6[RBP] - FWAIT - ADD RSP,8 - - POP RBP - RET -////**************************PROCEDURE************************* - ALIGN 8,OC_NOP -CP_POW10:: - PUSH RBP - MOV RBP,RSP - SUB RSP,16 - FSTCW U4 -8[RBP] - FWAIT - MOV AX,U2 -8[RBP] - MOV U2 -6[RBP],AX - OR AX,0x0C00 - MOV U2 -8[RBP],AX - FLDCW U4 -8[RBP] - - FLDL2T - FLD U8 SF_PARAM1[RBP] - FMULP - FST U8 SF_PARAM1[RBP] - FRNDINT - FLD U8 SF_PARAM1[RBP] - FSUBRP - F2XM1 - FLD1 - FADDP - FSTP U8 -16[RBP] - FFREE - FINCSTP - FLD U8 SF_PARAM1[RBP] - FLD U8 -16[RBP] - FSCALE // ST0<>2; - for (i=0;ientry_used) { - i=c->free_index; - - c->entry_used=FALSE; - c->cur_entry=c->next_entry; - c->cur_bits_in_use=c->next_bits_in_use; - if (c->next_bits_in_usenext_entry = &c->compress[i++]; - if (i==c->free_limit) { - c->next_bits_in_use++; - c->free_limit=1<next_bits_in_use; - } - } else { - do if (++i==c->free_limit) - i=c->min_table_entry; - while (c->hash[i]); - temp=&c->compress[i]; - c->next_entry=temp; - temp1=&c->hash[temp->basecode]; - while (temp1) { - if (temp1->next==temp) { - temp1->next=temp->next; - break; - } else - temp1=temp1->next; - } - } - c->free_index=i; - } -} -*/ - ALIGN 8,OC_NOP -CP_ARC_GET_TABLE_ENTRY:: - PUSH RBP - MOV RBP,RSP - PUSH RSI - PUSH RDI - MOV RSI,U8 SF_PARAM1[RBP] - BTR U8 ACS_ENTRY_USED[RSI],0 - JNC U4 @@100 - MOV RDX,U8 ACS_FREE_INDEX[RSI] - XOR EAX,EAX - MOV RAX,U8 ACS_NEXT_ENTRY[RSI] - MOV U8 ACS_CUR_ENTRY[RSI],RAX - MOV RCX,U8 ACS_NEXT_BITS_IN_USE[RSI] - MOV U8 ACS_CUR_BITS_IN_USE[RSI],RCX - CMP RCX,ARC_MAX_BITS - JAE @@20 - MOV RAX,RDX - SHL RAX,4 - LEA RAX,U8 ACS_COMPRESS[RSI+RAX] - MOV U8 ACS_NEXT_ENTRY[RSI],RAX - INC RDX - CMP U8 ACS_FREE_LIMIT[RSI],RDX - JNE @@90 - INC RCX - MOV U8 ACS_NEXT_BITS_IN_USE[RSI],RCX - MOV RAX,1 - SHL RAX,CL - MOV U8 ACS_FREE_LIMIT[RSI],RAX - JMP @@90 -@@20: INC RDX - CMP U8 ACS_FREE_LIMIT[RSI],RDX - JNE @@25 - MOV RDX,U8 ACS_MIN_TABLE_ENTRY[RSI] -@@25: MOV RAX,U8 ACS_HASH[RSI+RDX*8] - OR RAX,RAX - JNZ @@20 - MOV RDI,RDX - SHL RDI,4 - LEA RDI,U8 ACS_COMPRESS[RSI+RDI] - MOV U4 ACS_NEXT_ENTRY[RSI],EDI - MOVZX RBX,U2 ATE_BASECODE[RDI] - LEA RCX,U8 ACS_HASH[RSI+RBX*8] -@@50: OR RCX,RCX - JZ @@90 - MOV RAX,U8 ATE_NEXT[RCX] - CMP RDI,RAX - JNE @@55 - MOV RAX,U8 ATE_NEXT[RDI] - MOV U8 ATE_NEXT[RCX],RAX - JMP @@90 -@@55: MOV RCX,RAX - JMP @@50 -@@90: MOV U8 ACS_FREE_INDEX[RSI],RDX -@@100: POP RDI - POP RSI - POP RBP - RET - -CP_PUT_GS_BASE:: - PUSH RBP - MOV RBP,RSP - MOV RAX,SF_PARAM1[RBP] - PUSH RAX - PUSH RCX - PUSH RDX - MOV RDX,RAX - SHR RDX,32 - MOV ECX,IA32_GS_BASE - WRMSR - POP RDX - POP RCX - POP RAX - POP RBP - RET - -PUT_FS_BASE:: - PUSH RAX - PUSH RCX - PUSH RDX - MOV RDX,RAX - SHR RDX,32 - MOV ECX,IA32_FS_BASE - WRMSR - POP RDX - POP RCX - POP RAX - RET diff --git a/LT/Utils/Boot/BootCD.BIZ b/LT/Utils/Boot/BootCD.BIZ deleted file mode 100644 index 1c1597fab59b1c5381dca7a3dbe079d9f942491c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1095 zcmaFK%fPUiiGd-Qg@M7-?9{4Xe|99yPwP97)^}kK1J?@%hUn(kf(Ku-r1hL&KAhHf zVWdTuAG?@oEKQ!u;-Q&4<|E90pNr8$P@{yn&BX21)U|7petUi|wPk#_I_S6cTC zh;<-qq+jg*w}PYO3&=E(4O}1w%Nwo(B@Yh2F#ca6@FMmpNil|26xIuYXlIN`9spp9DGaO&2(z zSl)DgwkLvKguvVtgW0VSslC1A{BnASWO1cn?no25%(3k3R#0 zHB@o1tBzYqq7?@(#S5XS(| rc(A!3eUS_dEl?S-7|gDC)7)SNhDlIUf}I`x;{E+x8U91U1wsM diff --git a/LT/Utils/Boot/BootCD.SPZ b/LT/Utils/Boot/BootCD.SPZ deleted file mode 100644 index 758eea4afebf96426b052b98cfb5686334b58fc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2621 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 diff --git a/LT/Utils/Boot/BootFD.BIZ b/LT/Utils/Boot/BootFD.BIZ deleted file mode 100644 index eff66eb7f1120d00cd86d2140e8069ad8c6d9bc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 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

@t90|SGTf|0_G1@qJTE~NDx*u%h<)^j4Q??zgB zr))J71H(=R7UOTm|35ED>p76tcjMI(#s%}&a2+TS+rqb-o#Cv&>rX~c&WZ&|dm8~#31 z-0=U|!r!nM18Ln?&G4f1-;0KSY0VGV)6%WMFv0$iQ%kk%1wb zfq@~4fq_98q!HvsCtnX2qj)DDZw7{XCI$uw*VWI3fuS0do*}aS{vq+c!R`zUpyUWq z;^Y|YYQVq%@;pMokbwada!>&u?|8?cAje3MRWOr-LmY!b7#Ki)hNuel^9*75e-L69 E04Be>6951J diff --git a/LT/Utils/Boot/BootMHD2.SPZ b/LT/Utils/Boot/BootMHD2.SPZ deleted file mode 100644 index aef5800c635d45ca3ca869c7ffe283e73e57b49b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1837 zcmdO8X8?oeykLrfk%56hUq2)xvsfWNFQ-x=DL=oYwIpAmpeQppv8c<_#Z^b4G%vG6 z!GM=5u{c+udYN)cYFcJqs)Cb`cYLsClxw_`XGkz7r{&u98#iy=zH_&$!eI?V8=GxA zcJ0}BAXszRu??HH`1-qq`s}^#de}(o>X|+FPHYJdadf_R_VC*mA0BM=pBM16N#&%V zO8g8P$w>^XToM&c2Rb+wvvyT}efKd+v2TuLxogmp4-cE!%vt|TiuHW-#Cvj4$Py7w zr<56o6-^xW1TZ@J%``}HIHPH-HffGi>9Z47%!_J!Dd;4p_YH+)VT%?;X59`Y=e8}i($n3V<|wr7nRvK3W9Ix+7IwD6 zsd|E%fuAO|Ha5STqU5@!Q&oELlxxX<*B$u7C8;MTIcNJZX2#&OX&3o2=X{&v<1tlp zt?sL%&CSNKibnezj`H?yd%H)W@AFD+sdCRNe`|z)7NweSy*SX@?7?>{yI|wl)XSUn zY8HNdmp8FFf`jO#V2zv zaW{P7sbGmIG5pagXc!pC>Lbup5SIS0(P5$RR9?rU!U+dUSU8F+XGpawPpe206g+33 zsLswikyThg&B3{MuR`PEJ`J^i=Kh@`iF}>bw-QwHwyG91Pjogh6rK`f_wb0fKZmBW zW~6FBw4kBEN(V+KlSURnqb;heqE;^wyqF$EFh28j^I3RU%%J2T6PG$i;UO-*nPP!l z+CMa%7c_fKIb@PtXPM6Am~gO3;6IB=fFrxANcxgspM!^%%(Zh&7hKS_s$tF&H3L== zorsivcd6dsbCzd&yq+)7;ZgL7*XQ}jA`;m!K~rdln!}Nm5i-$7eWT~hd^RiE?f7eP zPlto)f=)WwL8~V6Ilgq;S|y?`rnYI;k=344s`Uh4?vhsb3E1HBO2o-w*Q#~Pr}ceVDYiG;E+r?28rtbCJbU3C77=at->t_ErnG((cNcLy zD&WDQ=z5%UhIZ=`qvJB_=a<;dT6HW~K~Z!2s%KipXU&48rk~@?cx#-_=^&VMW0}g^ zO;_}k&wiQ}&cfKEzcp2{bcstql>x{3XK%d)roNS2?qke*uBkie>a?xGlcw2JJoY=| zQna-GdFv)&E%m+S_m89s>R+x9mVF=|ETp*gdctBWvrR3h6Dlt4)4k{V*u}$x*?4 zDV+^GrZ*76dm`m6qIsjvtL;vz;fWFLY?_R$3M^5n}1an_%avHn5|WAIp^d8 z=ls=Y-yB&sNzzJ%!)(gjJG(-6pR+u|;qoEwyq7TZ4$!fm@c4vRY%~CrhoOUn;T04SAKF`!}+rNvVh02mW8@! zGJ+2*mixJ5*;3QDnL!us_#`=LZgusVs1uRQRw#H#Fwb$K)&j@(d$z7JmFvs6dO~c~ zhZ8I&d>_kpI^Wq6W6qkLsO=Z;Ew{94%Boi{R~5{SiO^bIx>odr!sM;SQ}=ITVo?y; zP&Q%nQ-;dt)(>3Ix%vHC%+w~?ob+x(@yyvzpQXJ}V7#ebqBS|KeM0-1@`V>g8Yc7` zO*^0;e6PrNxA0{B)$BW8Cwh9vST%`98c0s8?GJirtY$rV<^GC)=c>+a;qKYB{AA43 zoTlYpp6J%x+_SOaeadE?7dE*nN-eWEoNiicbXs*Ss^Q`ha7thnX@9_G)vyemtN2AN{NH@hqAR>Z$f4FYyVN8K<=`Exf&5Y;-yORBOHJR^~&g zY4>6y1kJYFu`)0jXis&OJr%%VBGV?OvV)b|<-;=ZJ6~BtE4ZYeePB{FY2stnE0`5? wK})woVZWQfq1hz|;>BLK_SIZE_BITS); - ww=BCD_BLK_HI+1; - *ww=(d/(CD_BLK_SIZE>>BLK_SIZE_BITS))>>16; - - ww=BCD_JMP_START; - *ww=(d%(CD_BLK_SIZE>>BLK_SIZE_BITS))<boot_base=lo_image+sizeof(BinFileHeaderStruct); - hi_image->header_base=lo_image+hi_image->h.header_offset; - hi_image->boot_code=BOOT_CODE_RAM; - hi_image->sys_memblks=lo_image->sys_memblks; - - Cli; - if (mp_cnt>1) { - MPHalt; - BusyWait(10000); - } - - MemCpy(shutdown,SYS_SHUTDOWN_CPU,SYS_SHUTDOWN_CPU_END-SYS_SHUTDOWN_CPU); - MemCpy(&hi_image->gdttab,&lo_image->gdttab,sizeof(GdtTabStruct)*MAXGDT); - MemCpy(lo_image,hi_image,size); - HiCall(shutdown); -} - -#help_index "Boot" -#help_file "::/LT/Doc/Boot.TXZ" - -public void BootLT(I1 drive=0) -{ //Compile OSMain and boot. You might -//want to precede with $LK,"Auto","MN:Auto"$() to -//specifing answers to the prompted -//config questions. - I1 *buf; - - if (!drive) - drive=Fs->cur_partition->drive; - -//This passes a config parameter for -//compilation of OSMain which is accessed -//within a #exe {} statement. -//See $LK,"insboot_dst_drive","FF:::/LT/OSMain/Disk/DiskAddDev.CPZ,insboot_dst_drive"$ - - buf=MSPrintF("I1 insboot_dst_drive=\'%C\';",drive); - ExecuteStr(buf); - Free(buf); - - Cd("/LT/OSMain"); - if (!CompileFile("OS","OS",NULL,':')) - Boot("OS.BIZ"); -} - -#help_index "Install" -void InstallLTDir(I1 src,I1 dst) -{ - I1 buf_s[64],buf_d[64]; - if (src==dst) return; - SPrintF(buf_s,"%c:/LT",src); - SPrintF(buf_d,"%c:/LT",dst); - DelTree(buf_d); - CopyTree(buf_s,buf_d); -} - -I1 CheckWritable(I1 drive=0) -{ - BoolU4 cont=TRUE; - I1 writable_drive=drive; - LTPartition *p; - LTBlkDev *bdev; - if (!DriveIsWritable(drive)) { - coutln drive,": Drive is read-only."; - while (cont) { - cout "Enter RAM drive (usually 'B') for temporary files:"; - writable_drive=ToUpper(GetChar); - CrLf; - p=DriveToPartition(writable_drive); - bdev=p->bdev; - if (bdev->type!=LTBDT_RAM || - !DriveIsWritable(writable_drive)) - coutln "Not A RAM Drive"; - else - cont=FALSE; - } - Format(writable_drive,FALSE,FALSE); - InstallLTDir(drive,writable_drive); - } - return writable_drive; -} - - -#help_index "Install" -BoolU8 CreateBootImage(I1 src_drive,I1 dst_drive,U8 *out_size,I1 *filename) -{ - LTPartition *p; - I8 my_CompileFile(I1 *filename,I1 *map_name=NULL,I1 *out_name=NULL,I1 mapfile_drive=0); - U1 *buf; - - my_CompileFile=FindExtern("CompileFile5"); //In case a offline compiler is present - if (!my_CompileFile) - my_CompileFile=FindExtern("CompileFile"); //In case a offline compiler is present - - Drive(src_drive); - - Cd("/LT/Adam/GrAsm"); - if (my_CompileFile("GrAsm","GrAsm",NULL,':')) - return FALSE; - - Cd("/LT/Compiler"); - if (my_CompileFile("Compiler","Compiler",NULL,':')) - return FALSE; - - Cd("/LT/OSMain"); - if (my_CompileFile("OS","OS",NULL,':')) - return FALSE; - - buf=ReadFile("OS.BIZ",out_size); - - filename[StrLen(filename)-1]='C'; - coutln "Creating ",filename," from OS.BIZ"; - Drive(dst_drive); - Cd("/"); - p=Fs->cur_partition; - - PrintF("Size: %08X\r\n",*out_size); - WriteFile(filename,buf,*out_size,0,LT_ATTR_FIXED,FALSE); - Free(buf); - Drive(src_drive); - Del("/LT/OSMain/OS.BIZ"); - return TRUE; -} - -public BoolU8 InstallBoot(I1 src_drive,I1 dst_drive=0) -{ //See $LK,"Install Documentation","FI:::/LT/Doc/Install.TXZ"$ - BoolU4 result=FALSE; - LTBlkDev *bd; - LTPartition *p; - LTBootStruct br; - LTDirEntry de; - U4 *dd; - U8 i,size; - U1 *bb; - U2 *ww; - I1 *buf; - - if (!dst_drive) dst_drive=src_drive; - -//This passes a config parameter for -//compilation of OSMain which is accessed -//within a #exe {} statement. -//See $LK,"insboot_dst_drive","FF:::/LT/OSMain/Disk/DiskAddDev.CPZ,insboot_dst_drive"$ - buf=MSPrintF("I1 insboot_dst_drive=\'%C\';",dst_drive); - ExecuteStr(buf); - Free(buf); - - bd=DriveToBlkDev(dst_drive); - switch (bd->type) { - case LTBDT_ATAPI: - if (!CreateBootImage(src_drive,src_drive,&size,BOOT1_BIC)) - return FALSE; - Drive(src_drive); - CreateCdBootFile; - return TRUE; - case LTBDT_RAM: //TODO - case LTBDT_FDC: - break; - case LTBDT_ATA: - case LTBDT_NON_LT_FILE: - break; - default: - return FALSE; - } - - Drive(dst_drive); - p=Fs->cur_partition; - if (p->type!=PT_LT) - PutSysTextErr("ST_NOT_LT"); - else { - src_drive=CheckWritable(src_drive); - if (!CreateBootImage(src_drive,dst_drive,&size,BOOT_BIC)) - return FALSE; - Drive(dst_drive); - RBlks(Fs->cur_partition,&br,p->offset,1,TRUE); - if (!FindFile(BOOT_BIC,&de,FALSE,TRUE)) - coutln "No image"; - else { - coutln "Modifying partition boot record."; - br.jump_and_nop[0]=0xEB; - br.jump_and_nop[1]=30; - br.jump_and_nop[2]=0x90; - switch (bd->type) { - case LTBDT_ATA: - case LTBDT_NON_LT_FILE: - ww=BHD_BASE0; - *ww=PmtI8("Boot Drive Base0 (0x%X):",0x1F0); - ww=BHD_BASE1; - *ww=PmtI8("Boot Drive Base1 (0x%X):",0x3F6); - bb=BHD_UNIT; - *bb=0xE0+(PmtI8("Boot Drive Unit (0=Master,1=Slave):",0)<<4); - - ww=BHD_RESTART+1; - *ww=(size+BLK_SIZE-1)>>BLK_SIZE_BITS; - dd=BHD_BLK; - *dd=p->data+de.cluster*p->spc; - bb=BHD_CODE; - for (i=0;i<(BHD_END-BHD_CODE);i++) - br.code[i]=bb[i]; - break; - case LTBDT_RAM: //TODO - case LTBDT_FDC: - ww=BFD_RESTART+1; - *ww=(size+BLK_SIZE-1)>>BLK_SIZE_BITS; - ww=BFD_RESTART+4; - *ww=p->data+de.cluster*p->spc; - bb=BFD_CODE; - for (i=0;i<(BFD_END-BFD_CODE);i++) - br.code[i]=bb[i]; - break; - } - for (;i<478;i++) - br.code[i]=0; - WBlks(Fs->cur_partition,&br,p->offset,1,TRUE); - result=TRUE; - } - } - return result; -} - - -public void ReadOldMasterBoot(I1 src_drive,I1 dst_drive) -{ - LTBlkDev *bd; - LTPartition *p,*p2; - MasterBootStruct mbr; - - bd=DriveToBlkDev(src_drive); - try { - while (bd->non_lt_drive) { - p2=DriveToPartition(bd->non_lt_drive); - bd=DriveToBlkDev(p2->drive); - } - } catch - Fs->catch_except=TRUE; - Drive(dst_drive); - p=Fs->cur_partition; - if (p->type!=PT_LT) - PutSysTextErr("ST_NOT_LT"); - else { - ATAReadBlks(bd,&mbr,0,1); - Drive(dst_drive); - MkDir(BOOT_DIR); - WriteFile(OLD_BOOT_BIC,&mbr,BLK_SIZE); - } -} - -public void WriteOldMasterBoot(I1 src_drive,I1 dst_drive) -{ - LTBlkDev *bd; - MasterBootStruct *mbr; - LTPartition *p2; - bd=DriveToBlkDev(dst_drive); - try { - while (bd->non_lt_drive) { - p2=DriveToPartition(bd->non_lt_drive); - bd=DriveToBlkDev(p2->drive); - } - } catch - Fs->catch_except=TRUE; - Drive(src_drive); - mbr=ReadFile(OLD_BOOT_BIC); - if (mbr) - ATAWriteBlks(bd,mbr,0,1); - Free(mbr); -} - -void ZeroMasterBoot(I1 dst_drive) -{ //This is dangerous!! - LTBlkDev *bd; - MasterBootStruct mbr; - LTPartition *p2; - bd=DriveToBlkDev(dst_drive); - try { - while (bd->non_lt_drive) { - p2=DriveToPartition(bd->non_lt_drive); - bd=DriveToBlkDev(p2->drive); - } - } catch - Fs->catch_except=TRUE; - MemSet(mbr,0,BLK_SIZE); - ATAWriteBlks(bd,&mbr,0,1); -} - -public BoolU8 InstallMasterBoot(I1 drive,I1 *drive_list=NULL) -{ - BoolU4 result=FALSE; - LTBlkDev *bd,*bd1; - LTPartition *p,*p1,*p2; - MasterBootStruct mbr; - LTDirEntry de; - U8 i,j,size; - U4 *dd; - U1 *bb; - U2 *ww; - I1 *menu_ptr,*ptr,ch,buf[128],buf2[128]; - - if (drive_list) - StrCpy(buf2,drive_list); - else { - j=0; - for (i='A';i<='Z';i++) - buf2[j++]=i; - buf2[j++]=0; - } - - Drive(drive); - p=Fs->cur_partition; - if (p->type!=PT_LT) - PutSysTextErr("ST_NOT_LT"); - else { - bd=DriveToBlkDev(drive); - try { - while (bd->non_lt_drive) { - p2=DriveToPartition(bd->non_lt_drive); - bd=DriveToBlkDev(p2->drive); - } - } catch - Fs->catch_except=TRUE; - if (!FindFile(OLD_BOOT_BIC,&de,FALSE,TRUE)) - ReadOldMasterBoot(drive,drive); - - while (!(i=PmtI8("Base0:",0))); - ww=BMHD_BASE0; - *ww=i; - ww=BMHD2_BASE0; - *ww=i; - - while (!(i=PmtI8("Base1:",0))); - ww=BMHD_BASE1; - *ww=i; - ww=BMHD2_BASE1; - *ww=i; - - i=0xE0+(PmtI8("Unit (0=Master,1=Slave):",0)<<4); - bb=BMHD_UNIT; - *bb=i; - bb=BMHD2_UNIT; - *bb=i; - - dd=BMHD2_BLK_ARRAY; - MemSet(dd,0,sizeof(U4)*8); - menu_ptr=BMHD2_BOOT_MSG; - SPrintF(menu_ptr,"\r\n\r\nLoseThos 3.05 Boot Loader\r\n\r\n"); - j=0; - if (FindFile(OLD_BOOT_BIC,&de,FALSE,TRUE)) { - *dd=p->data+de.cluster*p->spc; - StrCat(menu_ptr,"0. Old Boot Record\r\n"); - j++; - dd+=sizeof(U4); - } - - ptr=buf2; - while (ch=*ptr++) { - try - p1=DriveToPartition(ch); - catch { - Fs->catch_except=TRUE; - p1=NULL; - } - if (p1) { - bd1=p1->bdev; - try { - while (bd1->non_lt_drive) { - p2=DriveToPartition(bd1->non_lt_drive); - bd1=DriveToBlkDev(p2->drive); - } - } catch - Fs->catch_except=TRUE; - if (bd1==bd) { - *dd=p1->offset; - PrintF("Drive %c:%16X\r\n",p1->drive,*dd); - SPrintF(buf,"%d. Drive %c\r\n",j++,p1->drive); - StrCat(menu_ptr,buf); - dd+=sizeof(U4); - } - } - } - StrCat(menu_ptr,"\r\nSelection:"); - - size=BMHD2_END-BMHD2_START; - WriteFile(BOOT_LOADER_BIC,BMHD2_START,size); - - if (!FindFile(BOOT_LOADER_BIC,&de,FALSE,TRUE)) - coutln "No Boot Loader Image"; - else { - ww=BMHD_RESTART+1; - *ww=(size+BLK_SIZE-1)>>BLK_SIZE_BITS; - dd=BMHD_BLK; - *dd=p->data+de.cluster*p->spc; - bb=BMHD_CODE; - ATAReadBlks(bd,&mbr,0,1); - for (i=0;i<(BMHD_END-BMHD_CODE);i++) - mbr.boot_code[i]=bb[i]; - for (;i<446;i++) - mbr.boot_code[i]=0; - mbr.signature=0xAA55; - - ATAWriteBlks(bd,&mbr,0,1); - result=TRUE; - } - } - return result; -} - -#help_index "" diff --git a/LT/Utils/Diff.APZ b/LT/Utils/Diff.APZ deleted file mode 100644 index e18b2ae..0000000 --- a/LT/Utils/Diff.APZ +++ /dev/null @@ -1,241 +0,0 @@ -#help_index "Utils" - -I8 PopUpDiffOptions() -{ - I8 i; - Ltf *l=LtfNew; - LtfPutSExt(l,"$$CM +LX, 2,4$$$$FG$$$$BT, \"USE FILE1\",0$$"); - LtfPutSExt(l,"$$CM +LX, 24,0$$$$FG CYAN$$$$BT, \"USE FILE2\",1$$"); - LtfPutSExt(l,"$$CM +LX, 2,4$$$$FG$$$$BT, \"REMAINDER ALL FILE1\",2$$"); - LtfPutSExt(l,"$$CM +LX, 24,0$$$$FG CYAN$$$$BT, \"REMAINDER ALL FILE2\",3$$"); - LtfPutSExt(l,"$$CM +LX, 2,4$$$$FG$$$$BT, \"ABORT FILE\",4$$"); - LtfPutSExt(l,"$$CM +LX, 24,0$$$$FG$$$$BT, \"ABORT ALL FILES\",5$$"); - i=PopUpMenu(l); - LtfDel(l); - return i; -} - -I8 CompareDiffEntries(LtfEntry **ll1,LtfEntry **ll2) -{ - LtfEntry *cl1=*ll1,*cl2=*ll2; - return StrCmp(cl1->display,cl2->display); -} - -#define DF_MODIFIED 1 -#define DF_DONT_MODIFIED 2 -#define DF_REMAINDER_ALL_FILE1 4 -#define DF_REMAINDER_ALL_FILE2 8 -#define DF_ABORT_FILE 16 -#define DF_ABORT_ALL_FILES 32 -#define DF_NO_MORE_PROMPTS_THIS_FILE 64 - -void DiffSelect(Ltf *l,U8 *flags,I8 j1_lo,I8 j1_hi, - I8 j2_lo,I8 j2_hi,LtfEntry **usl1,LtfEntry **usl2) -{ - I8 i; - LtfEntry *cl,*cl1,*cl2; - BoolU4 use_file1; - U8 old_flags; - Ltf *cur_l; - if (!(*flags & (DF_ABORT_FILE|DF_ABORT_ALL_FILES))) { - PrintF("$$FG,RED$$%d,%d---------------------$$FG$$\r\n",j1_lo,j2_lo); - i=(j1_lo<=0) ? 0:j1_lo-1; - while (icur_ltf) { - old_flags=cur_l->flags<FF_PLAIN_TEXT; - cur_l->flags|=LTFF_PLAIN_TEXT; - } - PutS(usl1[i++]->display); - if (cur_l) - cur_l->flags=(cur_l->flags & ~LTFF_PLAIN_TEXT)|old_flags; - CrLf; - } - PutS("$$FG CYAN$$"); - i=(j2_lo<=0) ? 0:j2_lo-1; - while (icur_ltf) { - old_flags=cur_l->flags<FF_PLAIN_TEXT; - cur_l->flags|=LTFF_PLAIN_TEXT; - } - PutS(usl2[i++]->display); - if (cur_l) - cur_l->flags=(cur_l->flags & ~LTFF_PLAIN_TEXT)|old_flags; - CrLf; - } - PutS("$$FG$$"); - - use_file1=TRUE; - if (!(*flags & DF_NO_MORE_PROMPTS_THIS_FILE)) { - switch (PopUpDiffOptions) { - case 0: - break; - case 1: - use_file1=FALSE; - break; - case 2: - *flags|=DF_REMAINDER_ALL_FILE1|DF_NO_MORE_PROMPTS_THIS_FILE; - break; - case 3: - *flags|=DF_REMAINDER_ALL_FILE2|DF_NO_MORE_PROMPTS_THIS_FILE; - break; - case 4: - *flags|=DF_DONT_MODIFIED|DF_ABORT_FILE|DF_NO_MORE_PROMPTS_THIS_FILE; - break; - default: - *flags|=DF_DONT_MODIFIED|DF_ABORT_ALL_FILES|DF_NO_MORE_PROMPTS_THIS_FILE; - } - } - if (*flags & DF_REMAINDER_ALL_FILE2) - use_file1=FALSE; - if (!use_file1) { - *flags|=DF_MODIFIED; - cl1=usl1[j1_lo]->last; - if (j1_lonext; - LtfDelEntry(l,cl); - cl=cl2; - } - } - if (j2_lonext; - } - } - } - } -} - -void DiffSub(Ltf *l,U8 *flags,I8 j1_lo,I8 j1_hi,I8 j2_lo,I8 j2_hi, - I8 cnt1,I8 cnt2,LtfEntry **sl1,LtfEntry **sl2,LtfEntry **usl1,LtfEntry **usl2) -{ - I8 i,i1=0,i2=0,i2b,j1,j2,n; - I8 best_j1,best_j2,best_score=0,score; - - if (j1_lo>=j1_hi || j2_lo>=j2_hi) { - if (j1_loyy>=j1_hi) - i1++; - else if (sl2[i2]->yy>=j2_hi) - i2++; - else { - i=StrCmp(sl1[i1]->display,sl2[i2]->display); - if (i>0) - i2++; - else if (i<0) - i1++; - else { - i2b=i2; - while (!StrCmp(sl1[i1]->display,sl2[i2]->display)) { - if (sl2[i2]->y>=j2_lo && sl2[i2]->yy; - j2=sl2[i2]->y; - n=j1_hi-j1; - if (j2_hi-j2display,usl2[j2+score]->display)) - score++; - else - break; - } - if (score>best_score) { - best_score=score; - best_j1=j1; - best_j2=j2; - } - } - i2++; - if (i2>=cnt2) - break; - } - i2=i2b; - i1++; - } - } - } - if (best_score==0) - DiffSelect(l,flags,j1_lo,j1_hi,j2_lo,j2_hi,usl1,usl2); - else { - DiffSub(l,flags,j1_lo,best_j1,j2_lo,best_j2,cnt1,cnt2,sl1,sl2,usl1,usl2); - DiffSub(l,flags,best_j1+best_score,j1_hi,best_j2+best_score,j2_hi,cnt1,cnt2, - sl1,sl2,usl1,usl2); - } -} - -public U8 Diff(I1 *dst_file,I1 *src_file,U8 flags=0) -{ - Ltf *l1=LtfRead(dst_file, LTFF_PLAIN_TEXT_WITH_TABS | LTFF_NO_CURSOR); - Ltf *l2=LtfRead(src_file, LTFF_PLAIN_TEXT_WITH_TABS | LTFF_NO_CURSOR); - LtfEntry *cl,**sl1,**sl2,**usl1,**usl2; - I8 i,cnt1=0,cnt2=0; - - flags&=DF_ABORT_ALL_FILES; - - cl=l1->dummy.next; - while (cl!=l1) { - if (cl->btype==LTFT_TEXT) - cl->y=cnt1++; - cl=cl->next; - } - - cl=l2->dummy.next; - while (cl!=l2) { - if (cl->btype==LTFT_TEXT) - cl->y=cnt2++; - cl=cl->next; - } - - sl1=MAlloc(cnt1*sizeof(LtfEntry *)); - usl1=MAlloc((cnt1+1)*sizeof(LtfEntry *)); - i=0; - cl=l1->dummy.next; - while (cl!=l1) { - if (cl->btype==LTFT_TEXT) { - sl1[i]=cl; - usl1[i++]=cl; - } - cl=cl->next; - } - usl1[i]=l1; - QSort(sl1,cnt1,sizeof(LtfEntry *),&CompareDiffEntries); - - sl2=MAlloc(cnt2*sizeof(LtfEntry *)); - usl2=MAlloc((cnt2+1)*sizeof(LtfEntry *)); - i=0; - cl=l2->dummy.next; - while (cl!=l2) { - if (cl->btype==LTFT_TEXT) { - sl2[i]=cl; - usl2[i++]=cl; - } - cl=cl->next; - } - usl2[i]=l2; - QSort(sl2,cnt2,sizeof(LtfEntry *),&CompareDiffEntries); - - DiffSub(l1,&flags,0,cnt1,0,cnt2,cnt1,cnt2,sl1,sl2,usl1,usl2); - if (flags&DF_MODIFIED && !(flags&DF_DONT_MODIFIED)) - LtfWrite(l1); - - LtfDel(l1); - LtfDel(l2); - Free(sl1); - Free(sl2); - Free(usl1); - Free(usl2); - return flags; -} -#help_index "" diff --git a/LT/Utils/Disk20.APZ b/LT/Utils/Disk20.APZ deleted file mode 100644 index 7abe086..0000000 --- a/LT/Utils/Disk20.APZ +++ /dev/null @@ -1,469 +0,0 @@ -#help_index "File/Program Routines/Utils" - -U8 SizeFlattenLTDirTree(LTDirEntry *tempm) -{ - U8 result=0; - while (tempm) { - result+=LT_DIR_ENTRY_SIZE+1; - if (tempm->attr & LT_ATTR_DIR) - result+=SizeFlattenLTDirTree(tempm->sub); - tempm=tempm->next; - } - return result+1; -} - -U8 FillFlattenLTDirTree(LTDirEntry *tempm,U1 *dst) -{ - U8 result=0,i; - while (tempm) { - *dst++=1; - result++; - i=LT_DIR_ENTRY_SIZE; - MemCpy(dst,&tempm->start,i); - dst+=i; - result+=i; - if (tempm->attr & LT_ATTR_DIR) { - i=FillFlattenLTDirTree(tempm->sub,dst); - dst+=i; - result+=i; - } - tempm=tempm->next; - } - *dst=0; - return result+1; -} - -public U1 *FlattenLTDirTree(LTDirEntry *tempm,U8 *size=NULL) -{ - U8 i=SizeFlattenLTDirTree(tempm); - U1 *buf=MAlloc(i); - FillFlattenLTDirTree(tempm,buf); - if (size) *size=i; - return buf; -} - -U1 *DoUnflattenLTDirTree(U1 *src,LTDirEntry **tempm) -{ - U8 i; - LTDirEntry *tempm1; - if (*src++) { - tempm1=MAllocZ(sizeof(LTDirEntry)); - *tempm=tempm1; - i=LT_DIR_ENTRY_SIZE; - MemCpy(&tempm1->start,src,i); - src+=i; - if (tempm1->attr & LT_ATTR_DIR) - src=DoUnflattenLTDirTree(src,&tempm1->sub); - src=DoUnflattenLTDirTree(src,&tempm1->next); - } else - *tempm=NULL; - return src; -} - -public LTDirEntry *UnflattenLTDirTree(U1 *src) -{ - LTDirEntry *tempm=NULL; - DoUnflattenLTDirTree(src,&tempm); - return tempm; -} - -#help_index "Install;File/Install Related" -#help_file "::/LT/Doc/Install.TXZ" - - -public void PartitionDrive(I1 drive=0) - -//drive=0 means add new device - -{ - LTBlkDev *bd; - MasterBootStruct mbr; - I8 ext_base=0,size, - i=0,start_offset,offset=0,remaining, - num_partition; - if (!drive) { - AddDrives(TRUE); - return; - } - bd=DriveToBlkDev(drive); - remaining=bd->max_blk, - num_partition=bd->partition_base; - if (!bd || bd->type!=LTBDT_ATA) - return; - coutln "\r\n\r\n!!! Repartition Drive !!!\r\n"; - while (remaining>0) { - start_offset=offset; - MemSet(&mbr,0,BLK_SIZE); - mbr.signature=0xAA55; - do { - PrintF( "Partition %c :\r\n",num_partition); - PrintF( "Blocks Remaining:%d (0x%X)\r\n",remaining,remaining); - size=PmtI8("Size in Blocks :",remaining); - } while (size<=0 || size>remaining); - mbr.p[0].active=0x80; - mbr.p[0].size=size; - mbr.p[0].type=1; - mbr.p[0].offset=1; - offset+=1+size; - remaining-=1+size; - if (remaining>0) { - mbr.p[1].active=0x80; - mbr.p[1].size=remaining; - mbr.p[1].type=0xF; - mbr.p[1].offset=offset-ext_base; - if (!ext_base) - ext_base=offset; - } - ATAWriteBlks(bd,&mbr,start_offset,1); - num_partition++; - } - bd->flags&=~(LTBDF_INITIALIZED | LTBDF_INIT_IN_PROGRESS|LTBDF_HAS_BEEN_RESET); - AddBlkDev(bd,FALSE); - for (i=bd->partition_base;iupdate_win; - Ltf *old_ltf=Fs->cur_ltf; - U8 lohi,c1,i,x,y, - l=(GR_HEIGHT-3*FONT_HEIGHT)*(GR_WIDTH-FONT_WIDTH<<1), - s=(p->size+p->spc-1)/p->spc; - U8 ch=0; - U1 *bitmap; - GrBitMap *base=GrAlias(Gs->grbase,Fs); - if (p->type!=PT_LT) { - GrDel(base); - return; - } - - WinMax; - Fs->update_win=&DrawIt; - Fs->cur_ltf=NULL; - GrClear; - try { - i=((s+7)>>3+BLK_SIZE-1)>>BLK_SIZE_BITS; - bitmap=MAlloc(i<MAP1,i,TRUE); - i=0; - for (y=0;y<(GR_HEIGHT-3*FONT_HEIGHT);y++) { - if (ScanKey(&ch)) - break; - for (x=0;x<(GR_WIDTH-FONT_WIDTH<<1);x++) { - lohi=i*s; - c1=lohi/l; - if (Bt(bitmap,c1)) - base->color=ROP_XOR+(BLUE^WHITE); - else - base->color=ROP_XOR+(WHITE^WHITE); - GrPlot(base,x,y); - i++; - } - } - Free(bitmap); - } catch - UnlockPartition(p); - while (ch!=CH_ESC && ch!=CH_CTRLQ) - ch=GetChar; - - Fs->update_win=old_update; - GrClear; - Fs->cur_ltf=old_ltf; - GrDel(base); -} - -void DrawIt(TssStruct *tss) -{ - ClearWinText(tss); -} - -public void ViewDisk(I1 drive=0) -{ - I8 i,j, - h=Fs->win_pixel_right-Fs->win_pixel_left, - v=Fs->win_pixel_bottom-Fs->win_pixel_top, - radius; - LTPartition *p; - LTBlkDev *bdev=DriveToBlkDev(drive); - void *old_update=Fs->update_win; - Ltf *old_ltf=Fs->cur_ltf; - GrBitMap *base=GrAlias(Gs->grbase,Fs); - double sector_start,sector_end; - I1 buf[32]; - - Fs->update_win=&DrawIt; - Fs->cur_ltf=NULL; - GrClear; - if (hcolor=ROP_OR+BLACK^WHITE; - GrCircle(base,h>>1,v>>1,radius); - - j=1; - for (i=0;i<32;i++) { - p=&local_partitions[i]; - if (bdev==p->bdev && p->type) { - sector_start=-(p->offset*pi2/bdev->max_blk); - sector_end =-((p->offset+p->size-1)*pi2/bdev->max_blk); - base->color=ROP_OR+BLACK^WHITE; - GrLine(base,h>>1,v>>1, - h>>1+radius*Cos(sector_start), - v>>1+radius*Sin(sector_start)); - GrLine(base,h>>1,v>>1, - h>>1+radius*Cos(sector_end), - v>>1+radius*Sin(sector_end)); - - base->color=ROP_XOR+j^WHITE; - base->bkcolor=BLACK; - SPrintF(buf,"%C ",PartitionToDrive(p)); - if (p->type==PT_LT) - StrCat(buf,"LT "); - else if (p->type==PT_FAT12) - StrCat(buf,"FAT12 "); - else if (p->type==PT_FAT32) - StrCat(buf,"FAT32 "); - else if (p->type==PT_ISO9660) - StrCat(buf,"ISO9660"); - else - StrCat(buf,"-------"); - GrText(base,0,v-FONT_HEIGHT*j,buf); - GrFloodFill(base, - h>>1+(radius-4)*Cos((sector_start+sector_end)/2), - v>>1+(radius-4)*Sin((sector_start+sector_end)/2),FALSE); - j++; - } - } - - GetChar(NULL,FALSE); - Fs->update_win=old_update; - GrClear; - Fs->cur_ltf=old_ltf; - GrDel(base); -} - - -void ChkDskList(LTDirEntry *tempm1,U1 *bits,U1 *bits2,U8 size,U8 bpc) -{ - LTDirEntry *tempm2; - U8 i,j; - while (tempm1) { - tempm2=tempm1->next; - if (tempm1->attr & LT_ATTR_DIR) { - if (tempm1->sub) { - coutln SysText("ST_SCANNING_DIRECTORY"),tempm1->full_name; - ChkDskList(tempm1->sub,bits,bits2,size,bpc); - } - } - j=(tempm1->size+bpc-1)/bpc; - for (i=0;icluster>size) { - PrintFErr("Invalid Cluster:%s Cluster:%X\r\n",tempm1->full_name, - i+tempm1->cluster); - break; - } - if (Bts(bits,i+tempm1->cluster)) - PrintFErr("Double Alloc:%s Cluster:%X\r\n",tempm1->full_name, - i+tempm1->cluster); - if (!Btr(bits2,i+tempm1->cluster)) - PrintFErr("UnAlloc:%s Cluster:%X\r\n",tempm1->full_name, - i+tempm1->cluster); - } - DelLTDirEntry(tempm1); - tempm1=tempm2; - } -} - -public void ChkDsk(I1 drive=0) -{ - U8 i,j,bpc,size; - LTPartition *p=DriveToPartition(drive); - I1 *mask=MSPrintF("%c:/*",PartitionToDrive(p)); - U1 *bits,*bits2; - - if (p->type!=PT_LT) { - PutSysTextErr("ST_NOT_LT"); - return; - } - size=(p->size-(p->data-p->offset))/p->spc; - bpc=p->spc<>3); - bits2=MAllocZ((size+7)>>3+BLK_SIZE); - RBlks(p,bits2,p->MAP1,((size+7)>>3+BLK_SIZE-1)>>BLK_SIZE_BITS,TRUE); - - j=1; //TODO: get rootdir size - for (i=0;iroot_cluster>size) { - PrintFErr("Invalid Cluster: RootDir Cluster:%X\r\n",i+p->root_cluster); - break; - } - if (Bts(bits,i+p->root_cluster)) - PrintFErr("Double Alloc: RootDir Cluster:%X\r\n",i+p->root_cluster); - if (!Btr(bits2,i+p->root_cluster)) - PrintFErr("UnAlloc: RootDir Cluster:%X\r\n",i+p->root_cluster); - } - - ChkDskList(FindFiles(mask,1<offset; - U8 result=0,start=0,i,j,n,to_go,size, - contiguous=0,new_drive_letter; - BoolU4 good,proceed=FALSE; -try { - while (!result) { - cout "-"; - n=p->size+p->offset-blk; - if (n>SC_BLK_CNT) - n=SC_BLK_CNT; - if (!n) - break; - RBlks(p,buf,blk,1,TRUE); - d=buf; - dd=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,TRUE); - for (i=0;iSC_BLK_CNT) - n=SC_BLK_CNT; - RBlks(p,buf,blk,n,TRUE); - for (i=0;icatch_except=TRUE; - - Cd("HOME"); - Free(buf); - - if (proceed) { - cout "New Drive Letter:"; - new_drive_letter=ToUpper(GetChar); - CrLf; - bd=local_blkdevs+sizeof(LTBlkDev)*(num_blkdevs++); - bd->partition_base=new_drive_letter; - bd->blk_size=BLK_SIZE; - bd->min_blk=start; - bd->max_blk=start+contiguous-1; - bd->non_lt_drive=drive; - bd->non_lt_offset=start; - bd->type=LTBDT_NON_LT_FILE; - bd->flags=LTBDF_FORMAT; - if (!AddBlkDev(bd,FALSE)) - PutSysText("ST_FAILED"); - Drive(new_drive_letter); - coutln "File Blk: 0x",start; - result=start; - } else - result=0; - return result; -} -#help_index "" diff --git a/LT/Utils/Dollar.APZ b/LT/Utils/Dollar.APZ deleted file mode 100644 index 85d2865..0000000 --- a/LT/Utils/Dollar.APZ +++ /dev/null @@ -1,49 +0,0 @@ -#help_index "Utils" - -void DollarFile(LTDirEntry *m1) -{ - BoolU4 changed; - I1 *buf,*ptr,ch; - while (m1) { - if (m1->attr & LT_ATTR_DIR) - DollarFile(m1->sub); - else { - coutln m1->full_name; - Sleep(1000); - if (buf=ReadTextFile(m1->full_name)) { - ptr=buf; - changed=FALSE; - while (ch=*ptr++) { - if (ch=='$$') { - ptr--; - *ptr++='.'; - changed=TRUE; - } - } - if (changed) { - WriteTextFile(m1->full_name,buf); - coutln "Updated"; - } - Free(buf); - } - } - m1=m1->next; - } -} - - -public void Dollar(I1 *src_mask,I1 *flags=NULL) -//This is for importing non-"LT" text files. -//$BK,1$WARNING:$BK,0$Do not use on files with dollar commands -// or on binary files. -//r=recurse -{ - LTDirEntry *tempm1=NULL; - U8 f=0; - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),"+r"); - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),flags); - tempm1=FindFiles(src_mask,f); - DollarFile(tempm1); - DelLTDirList(tempm1); -} -#help_index "" diff --git a/LT/Utils/Grep.APZ b/LT/Utils/Grep.APZ deleted file mode 100644 index cfdaf7531023b7d76f2ff289b27bf262a43570f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5065 zcmY$+NX;pT&&*3ntx!-3Ey>I&R^sL2^YAvy{%N>mWN+NUJVHLs+o zQb8*@2W%=RH|S*P6y&7l=@fy8l$_K&uuQ0hLULY-t$|K{P71m+l1q!?LHa@22M|1qG0UZG%gSd{Xl?ppgmjA;?&?=u=QoPyqQ2rXEEa?3Uyl+Ze))ivdlr<(vwjc+=Ll=H=pqxD&-fg_;@#l!$_sTyV__s7V}>q#=eW zC$zh7q6f`nzZH*z}&goQA zjJ5RQaTLf8nYOk@puj^j8{`{=daxIus!gG8p~OZru#KoD zfZ`4k`jGsgmP?-V^>MYyhqGVkpGZEfT%P#^&gMoFXO_p`0wl>)Hpn5`E8@Vir&Wy#X z2V_6GHssO{MIWd@L2(z<@+@tT53Dn7Y(c(4Hx9|!D5kj;rKV~iNg{;+k|-!3;K>yd z`rv$nne#c}*@a-H=L8!8EfsL)cLfDloGU26a=facQL&Dyfk}iGEbAi|P&z5aB}Pd8 z03}PXRp3|wv!Irep8G**5IyUF%1~IeLi0^ExR3xTE-p%jmFXZZ$Ss++wkFUl0uFtU z+d;)H*vXtQo~>VMIjF|S(X|6LQ9#0aAOfNaBnoQwsM$gaEO>hX|;Nn(6*ehxTU=4R%B*kCweZk_K;_adN^!KD;QuB-IKz z)DbQRx7tBYLF{5%+EK$EB!WG>L9w2hlL~SNJS~9phk^ofbSWr6+tSH-pyCVMnufNdeKLz7Ju6rv z#3#fhvk2O@EJ@8R$TcLQO$}>ff*U{>CV&bGP$dm*6+uh|HH@$}t>J+HR%c`jrVMrM z;GqX8ZeYTRB_%})Y6?Cf@s1%OLGdo0L2v_56&9B!fo0%HS2Y;kP*4gEi4S&m^z-xd za|apW>Kx)96se>Gvm~uFCnp{h%HSlKoL8c43+je|0}mE(Ftx>{Njl(mjSg~&4bljT zM`-N8DpXLgfP~>jf?8#;hA^h}cno$)%|Qgb2E;KiOCdZ+NP;2*>Ilq4QBazclbNgl zO&b_Jtn$p96kBlr1k{_0_jL^R26wZ--UVj@Fc;b1U{Os_TVG#4BqOs}AtgVxSRpUJ zL?I<#p(r)IG$*l0A+@5QD7CmaGe56bS2wp(At^D1mrGyYF|V>bu~J7NvqZgEAw54o zMFCW^6@%N(nR)37iFqjs5W6z-()B<(d{RM5ixVpqGD{SSOA_-^iotr)bMliCbD)Y- z6|8lkE>hAiQnD>dO)f1eP6g>#(#}+}%}meBFG^KNPK1f&DA|^00WSd^KVl#{BXpp=uN1omc1ex7;>$c137<%xME z3MKgpxrrso84Bh3MJdG!Ihon13QFafFda(ei8(p>D92A*mH58lWr)PF0~Ho<8wzK926eN}4)K+C|!#;O4D@0twnc zzAJ{Le#heC%=A2`%o31gpdLK5pM)iM!ZRUCzIMyZO9AD|VhvF8*GbdVQA@+38DC}s zY4=Y~E-flb%}Y)#CNW=u!$3Pn2{wQM3081X3mwYadd=add; - temph->caller1=Caller(2); - temph->caller2=Caller(3); - temph->caller3=Caller(4); - temph->caller4=Caller(5); - i=(add>>2)&(HEAPLOG_HASH_SIZE-1); - old_flags=GetFlags; - Cli; - InsQue(temph,heaplog_root[i].last); - SetFlags(old_flags); - } -} - -void HeapLogFree(U1 *add) -{ - U8 i,old_flags; - HeapLogStruct *temph; - BoolU4 old_val; - if (!add) return; - if (Fs==heaplog_test_tss) { - i=(add>>2)&(HEAPLOG_HASH_SIZE-1); - old_flags=GetFlags; - Cli; - temph=heaplog_root[i].next; - while (temph!=&heaplog_root[i]) { - if (add==temph->add) { - RemQue(temph); - SetFlags(old_flags); - old_val=LBtr(&sys_semas[SYS_SEMA_HEAPLOG],0); - Free(temph,heaplog_tss); - LAssignBit(&sys_semas[SYS_SEMA_HEAPLOG],0,old_val); - return; - } - temph=temph->next; - } - SetFlags(old_flags); - } -} - -public void HeapLogRep() -{ - U8 i,total=0; - HeapLogStruct *temph; - BoolU4 old_val=LBtr(&sys_semas[SYS_SEMA_HEAPLOG],0); - for (i=0;iadd), - temph->caller1,temph->caller2,temph->caller3, - temph->caller4); - total+=MSize(temph->add); - temph=temph->next; - } - } - LAssignBit(&sys_semas[SYS_SEMA_HEAPLOG],0,old_val); - PrintF("\r\n$$FG,LTRED$$Total:%08X$$FG$$\r\n",total); -} - -public void HeapLog(BoolU4 val=TRUE,TssStruct *tss=NULL) -{ - U8 i; - if (val) { - if (Bt(&sys_semas[SYS_SEMA_HEAPLOG],0)) - coutln "HeapLog Already Active"; - else { - if (!tss) tss=Fs; - heaplog_test_tss=tss; - heaplog_tss=Spawn(&HeapLogTsk); - ext[EXT_HEAPLOG_MALLOC]=&HeapLogMAlloc; - ext[EXT_HEAPLOG_FREE]=&HeapLogFree; - heaplog_root=MAlloc(sizeof(HeapLogHashStruct)*HEAPLOG_HASH_SIZE); - for (i=0;ifilename.name; - I8 line=l->cur_entry->y+1+line_offset; - U8 i; - SysHashEntry *temph; - SysHashTable *h=Fs->hash_table; - ClassStruct *tempc; - DbgInfo *tempd; - while (h) { - for (i=0;i<=h->mask;i++) { - temph=h->body[i]; - while (temph) { - if (temph->type&HTT_FUNCTION) { - tempc=temph; - if (tempd=tempc->debug) { - StrCpy(st,tempc->source_link); - RemoveFirstSeg(st,":"); - RemoveLastSeg(st,","); - if (!StrCmp(st,filename)) { - if (line>=tempd->min_line && line<=tempd->max_line) - return tempc; - } - } - } - temph=temph->next; - } - } - h=h->next; - } - return NULL; -} - -void WatchLocals() -{ - BoolU4 old_preempt=Preempt(OFF); - TssStruct *tss=Fs->parent_tss,*dbg_tss=tss->dbg_tss; - Ltf *swap,*l; - ClassStruct *tempc,*tempc1; - U8 j,sc,ch; - void **rbp,**ptr; - I8 offset,ip; - - Fs->double_buf_cur_ltf=LtfNew; - while (TRUE) { - if (!(dbg_tss=tss->dbg_tss)) - Exit; - if (ScanKey(&ch,&sc,TRUE)) { - j=Jiffies+JIFFY_FREQ*5; - LtfDel(Fs->double_buf_cur_ltf); - Fs->double_buf_cur_ltf=NULL; - do { - if (ch==CH_CTRLQ || ch==CH_ESC) - Exit; - if (ScanKey(&ch,&sc,TRUE)) - j=Jiffies+JIFFY_FREQ*5; - WinSync; - } while (Jiffiesdouble_buf_cur_ltf=LtfNew; - } else { - LtfDel(Fs->cur_ltf); - Fs->cur_ltf=LtfNew; - if (l=dbg_tss->cur_ltf) { - if (tempc=DbgFindFun(l,0)) { - PutS("$$WW,1$$"); - rbp=tss->rbp; - ip=tss->rip; - do { - tempc1=FindPSect(ip,&offset); -break; //TODO: load reg variables for higher level subroutines - if (tempc==tempc1) - break; - else { - if (rbp>=*rbp) - break; - ptr=rbp+8; - rbp=*rbp; - ip=*ptr; - if (!CheckOnStk(rbp,tss)) - break; - } - } while (TRUE); - if (tempc==tempc1) - FunRep(tempc->str,rbp,2,tss); - } - } - swap=Fs->double_buf_cur_ltf; - Fs->double_buf_cur_ltf=Fs->cur_ltf; - Fs->cur_ltf=swap; - WinSync; - } - } - LtfDel(Fs->double_buf_cur_ltf); - Fs->double_buf_cur_ltf=NULL; - Preempt(old_preempt); -} - - -public void IDE(I1 *filename) -//Spawns a child process which has -//access to parents symbols. Can be used -//to debug parent. -{ - TssStruct *tss; - I1 *fn1=DefaultExtension(filename,"CPZ"), - *fn2=AbsoluteFileName(fn1); - - if (PopUpCancelOk("$$BK,1$$$$FG,RED$$LoseThos IDE Debugger$$FG$$$$BK,0$$\r\n" - "Do not use this on files that run when included.\r\n" - "\r\nTo use:\r\n" - " 1) Set a break-point in the editor window.\r\n" - " 2) Run program from command line.\r\n\r\n" - "$$FG,GREEN$$F5$$FG$$\t\tGo\r\n" - "$$FG,GREEN$$SHIFT-F5$$FG$$\tStep\r\n" - "$$FG,GREEN$$F9$$FG$$\t\tToggle Break Point\r\n" - "$$FG,GREEN$$SHIFT-F9$$FG$$\tClear All Break Points\r\n" - )) { - if (!Fs->dbg_tss) { - Fs->win_top=2; - Fs->win_bottom=TEXT_ROWS-2; - Fs->win_left=1; - Fs->win_right=TEXT_COLS>>1-1; - - tss=Spawn(&UserCmdLine,"Debug Task",Fs); - WaitTskIdle(tss); - tss->win_top=12; - tss->win_bottom=TEXT_ROWS-2; - tss->win_left=TEXT_COLS>>1+1; - tss->win_right=TEXT_COLS-2; - XTalk(tss,"Edit(\"%s\");\r",fn2); - - Fs->dbg_tss=tss; - - tss=Spawn(&UserCmdLine,"Watch Task",Fs); - WaitTskIdle(tss); - tss->win_top=2; - tss->win_bottom=10; - tss->win_left=TEXT_COLS>>1+1; - tss->win_right=TEXT_COLS-2; - XTalk(tss,"WatchLocals;\r"); - - ExecuteFile(fn2); - } - Free(fn1); - Free(fn2); - } -} - - -#help_index "Debugging/Breakpoints" -I8 IDELineAdd(DbgInfo *tempd,I8 line) -{ - I8 max=tempd->max_line-tempd->min_line; - line-=tempd->min_line; - if (line<0) - return IDELineAdd(tempd,tempd->min_line); - while (!tempd->body[line] && linebody[line]; -} - -I8 IDERIPLineNum(Ltf *l,void *rip) -{ - I1 st[256],*filename=l->filename.name; - I8 line; - SysHashEntry *temph; - SysHashTable *h=Fs->hash_table; - ClassStruct *tempc; - I8 i; - DbgInfo *tempd; - while (h) { - for (i=0;i<=h->mask;i++) { - temph=h->body[i]; - while (temph) { - if (temph->type&HTT_FUNCTION) { - tempc=temph; - if (tempd=tempc->debug) { - StrCpy(st,tempc->source_link); - RemoveFirstSeg(st,":"); - RemoveLastSeg(st,","); - if (!StrCmp(st,filename)) { - for (line=tempd->min_line;line<=tempd->max_line;line++) - if (rip>=IDELineAdd(tempd,line) && - ripnext; - } - } - h=h->next; - } - return -1; -} - -void IDESetStepRange(Ltf *l) -{ - I1 st[256],*filename=l->filename.name; - I8 line=l->cur_entry->y+1; - SysHashEntry *temph; - SysHashTable *h=Fs->hash_table; - ClassStruct *tempc; - I8 i; - DbgInfo *tempd; - while (h) { - for (i=0;i<=h->mask;i++) { - temph=h->body[i]; - while (temph) { - if (temph->type&HTT_FUNCTION) { - tempc=temph; - if (tempd=tempc->debug) { - StrCpy(st,tempc->source_link); - RemoveFirstSeg(st,":"); - RemoveLastSeg(st,","); - if (!StrCmp(st,filename)) { - if (line>=tempd->min_line && line<=tempd->max_line) { - Fs->user_data0=IDELineAdd(tempd,line); - Fs->user_data1=IDELineAdd(tempd,line+1); - return; - } - } - } - } - temph=temph->next; - } - } - h=h->next; - } -} - -void IDEToggleBpt(Ltf *l) -{ //F9 - I1 st[256],*filename=l->filename.name; - I8 line=l->cur_entry->y+1; - SysHashEntry *temph; - SysHashTable *h=Fs->hash_table; - ClassStruct *tempc; - I8 i,a; - DbgInfo *tempd; - LtfEntry *ll; - while (h) { - for (i=0;i<=h->mask;i++) { - temph=h->body[i]; - while (temph) { - if (temph->type&HTT_FUNCTION) { - tempc=temph; - if (tempd=tempc->debug) { - StrCpy(st,tempc->source_link); - RemoveFirstSeg(st,":"); - RemoveLastSeg(st,","); - if (!StrCmp(st,filename)) { - if (line>=tempd->min_line && line<=tempd->max_line) { - a=IDELineAdd(tempd,line); - ll=l->cur_entry; - while (ll->last->btype!=LTFT_CR && - ll->last->btype!=LTFT_SOFT_CR && - ll->last!=l) - ll=ll->last; - l->cur_entry=ll; - l->cur_data_col=ll->min_col; - if (!RBpt(Fs->parent_tss,a)) { - SBpt(Fs->parent_tss,a,SBPTF_BPT); - Auto("$$BP$$"); - } else { - if (ll->btype==LTFT_BPT) { - l->cur_entry=ll->next; - l->cur_data_col=l->cur_entry->min_col; - LtfDelEntry(l,ll); - } - } - LtfGotoLineNum(l,line); - return; - } - } - } - } - temph=temph->next; - } - } - h=h->next; - } -} - -void IDEClearAllBpts(Ltf *l) -{ //SHIFT-F9 - LtfEntry *ll,*ll2; - CBpt(Fs->parent_tss); - ll=l->dummy.next; - while (ll!=l) { - ll2=ll->next; - if (ll->btype==LTFT_BPT) { - if (l->cur_entry==ll) { - l->cur_entry=ll->next; - l->cur_data_col=l->cur_entry->min_col; - } - LtfDelEntry(l,ll); - } - ll=ll2; - } -} - -void IDEGo() //Continue after breakpoint -{ //F5 - TssStruct *tss=Fs->parent_tss; - void *rip=&tss->rip; - if (!Btr(&tss->task_flags,TSSf_DISABLE_BPTS)) { - *rip-=1; - if (!DBpt(tss,*rip)) - *rip+=1; - } - Fs->user_data0=0; - Fs->user_data1=0; - Btr(&tss->rflags,8); - Btr(&tss->task_flags,TSSf_SUSPENDED); -} - -void IDEStep(Ltf *l) //Single step -{ //SHIFT-F5 - TssStruct *tss=Fs->parent_tss; - void *rip=&tss->rip; - I8 line=IDERIPLineNum(l,*rip); - if (!Bts(&tss->task_flags,TSSf_DISABLE_BPTS)) { - *rip-=1; - if (!DBpt(tss,*rip)) - *rip+=1; - } - if (line>0) { - LtfGotoLineNum(l,line); - IDESetStepRange(l); - } else { - Fs->user_data0=0; - Fs->user_data1=0; - } - Bts(&tss->rflags,8); - Btr(&tss->task_flags,TSSf_SUSPENDED); -} - -void IDESetLineNum(Ltf *l) -{ //SHIFT-F8 - TssStruct *tss=Fs->parent_tss; - I8 line=IDERIPLineNum(l,tss->rip); - if (line>0) - LtfGotoLineNum(l,line); -} - -void IDEResumeDbg() -{ - TssStruct *dbg=Fs->dbg_tss; - I8 u0=dbg->user_data0,u1=dbg->user_data1; - if (!u0 || (Fs->riprip>u1) || - Fs->rip==u1 && u1!=u0) { - WinToTop(dbg); - QueueMsg(dbg,NULL,MSG_KEY_DOWN,0,SCF_SHIFT+SC_F8,0); - } else - Btr(&Fs->task_flags,TSSf_SUSPENDED); -} - -ext[EXT_RESUME_DBG]=&IDEResumeDbg; - -#help_index "" - \ No newline at end of file diff --git a/LT/Utils/LinkChk.APZ b/LT/Utils/LinkChk.APZ deleted file mode 100644 index 571685a..0000000 --- a/LT/Utils/LinkChk.APZ +++ /dev/null @@ -1,72 +0,0 @@ -#help_index "Debugging;Utils" - -void LinkChkLtf(Ltf *l,U8 *flags) -{ - I1 *st,buf[4]; - Ltf *old_l=Fs->cur_ltf; - LtfEntry *ll=l->dummy.next; - BoolU4 found; - - PrintF("File:%s\r\n",l->filename.name); - while (ll!=l) { - if (ScanKey) { - Bts(flags,FUf_CANCEL); - break; - } - if (ll->btype==LTFT_LINK) { - if (ll->flags & LTFLF_AUX_STR) - st=ll->aux_str; - else - st=ll->display; - buf[0]=CH_CTRLQ; - buf[1]=0; - Auto(buf); - Fs->cur_ltf=l; - found=Edit(st); - Fs->cur_ltf=old_l; - if (!found) { - PutFileLink(l->filename.name,ll->y); - PutS("$$FG,RED$$"); - PrintF(" %04d:%s\r\n",ll->y,st); - PutS("$$FG$$"); - } - } - ll=ll->next; - } -} - -void LinkChkFile(I1 *filename,U8 *flags) -{ - Ltf *l=LtfRead(filename,LTFF_NO_CURSOR); - LinkChkLtf(l,flags); - LtfDel(l); -} - -void LinkChkList(LTDirEntry *tempm1,U8 *flags) -{ - LTDirEntry *tempm2; - - while (tempm1 && !Bt(flags,FUf_CANCEL)) { - tempm2=tempm1->next; - if (tempm1->attr & LT_ATTR_DIR) { - if (tempm1->sub) { - PrintF("%S %s\r\n","ST_SCANNING_DIRECTORY",tempm1->full_name); - LinkChkList(tempm1->sub,flags); - } - } else - LinkChkFile(tempm1->full_name,flags); - DelLTDirEntry(tempm1); - tempm1=tempm2; - } -} - -public void LinkChk(I1 *wild=TEXT_FILE_MASK,I1 *flags=NULL) -//"+r"=recurse -//Checks for broken file links. -{ - U8 f=0; - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),"+r"); - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),flags); - LinkChkList(FindFiles(wild,f),&f); -} -#help_index "" diff --git a/LT/Utils/ListFile.APZ b/LT/Utils/ListFile.APZ deleted file mode 100644 index be4aff6fdea5fe31585285b1c5a7eec88441d30e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1701 zcmY$+NX;pT&&*3ntx!;M&d)8#%t&`QhG@w8CL z$;?aDan4CBE)Fg!Dorj?(9+7t%q!94<*Mf8Qc&tF72<-75>1%pY57G88kx2R)|oc8 zAjf5t=-TBb7H3;$YHPz4DJX!XlHm%#)@4FW2RQ}F=wz@aPPkun?Mf;OQq?p(LPFx* zLj9aWJpKJ@K%C&n;P~K3UnhSbO^{E)7UOH6D#QqoGDVO>atk!l@^q3)(==hugT!A-QaU(vl6CD;Qj<#45wZ|@ zP}~q1zo3}m;*Ca1t5YoS^7XP^blm3XBHvKo}f+5Hoe{@=_~GzzG|%xdJcYE(oYZ0kpZvs>)D(rxypnu{ z+|=CsqDnoG(zKk!bOjYRcO4@Y?P3)-cNK-))Wp1Eh2qSrRE5mE;*!+F6ovdWg~XJU zqSWGIJ#fwjdC1d3AyX&K)<7pGvA852l*qxN;G)6S1rp1y6(y;8#hLke8Xz}-U903A z5T&H4qm`Ct1P&mdk~9Ua92nCzucW9_K`R*|;EY_bfXWrH51|>}J+;Km4diVNwKN^2 z;ur%Z9gts&LFp3YlC(S{TgRm0{G8H~R8XM#CFZ7Tq~(F66%=x8eM-`TQWH}&((;TT zLdiL{Il6W!rMbD4dhker=Dp+`McW*3ssqJmrY)i4Ryg1#1B10+3Hotu8GI)=&ZqgEKIg1y&9+A0Y`6hbsW5 zS_Oq7N3$dm(&~$s6w}*R7BiBIpAoi<>f-DlazS5 F7y#N8+t2_2 diff --git a/LT/Utils/Merge.APZ b/LT/Utils/Merge.APZ deleted file mode 100644 index 113a831..0000000 --- a/LT/Utils/Merge.APZ +++ /dev/null @@ -1,289 +0,0 @@ -#help_index "Utils" - -LTDirEntry MCFindMatch(LTDirEntry *pattern,LTDirEntry *list) -{ - while (list) { - if (!StrCmp(pattern->name,list->name) && - (pattern->attr&~LT_ATTR_RESIDENT)== - list->attr&~LT_ATTR_RESIDENT) - return list; - list=list->next; - } - return NULL; -} - -void MergeChkList(LTDirEntry *m1,LTDirEntry *m2,U8 *fuf_flags,U8 *df_flags) -{ - I8 i; - LTDirEntry *tempm2; - while (m1 && !(*df_flags & DF_ABORT_ALL_FILES)) { - if (!Bt(fuf_flags,FUf_JUST_TEXT_FILES) || - IsTextFile(m1->name) || - m1->attr & LT_ATTR_DIR) { - tempm2=MCFindMatch(m1,m2); - if (!tempm2) - coutln "Does Not Exist:",m1->full_name; - else { - if (m1->attr & LT_ATTR_DIR) - MergeChkList(m1->sub,tempm2->sub,fuf_flags,df_flags); - else { - i=m1->datetime-tempm2->datetime; - if (AbsI8(i)>LTDATE_FREQ*2) { //Filedates can shift due to conversion - coutln m1->full_name; - 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 void MergeChk( - I1 *dst_mask="/LT/*", - I1 *src_mask="/LT/*", - I1 *flags=NULL) -//+r=recurse -//+d=diff -//+t=just text files -{ - U8 df_flags=0,f=0; - LTDirEntry *tempm1=NULL,*tempm2=NULL; - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),"+r"); - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),flags); - PrintFWarn("This is based strictly on file dates.\r\n"); - tempm1=FindFiles(src_mask,f); - tempm2=FindFiles(dst_mask,f); - MergeChkList(tempm1,tempm2,&f,&df_flags); - DelLTDirList(tempm1); - DelLTDirList(tempm2); -} - - -#help_index "Utils;Comm" - -void MrgWaitPmt(TssStruct *tss,LTChnl *chnl) -{ - WaitTskIdle(tss); - chnl->null_msg_cnt=0; - while (chnl->null_msg_cnt<2) - SwapInNext; - WaitTskIdle(tss); -} - -I1 *red_st="$$FG,RED$$",*green_st="$$FG,GREEN$$"; - -void RmtMergeChkList(TssStruct *tss,LTChnl *chnl,LTDirEntry *m1,LTDirEntry *m2,U8 *fuf_flags,U8 *df_flags,I1 *cur_dir) -{ - I8 i; - LTDirEntry *tempm2,*sub; - I1 *full_name,*c1,*c2; - BoolU4 doit; - while (m1 && !(*df_flags & DF_ABORT_ALL_FILES)) { - if (!Bt(fuf_flags,FUf_JUST_TEXT_FILES) || - IsTextFile(m1->name) || - m1->attr & LT_ATTR_DIR) { - tempm2=MCFindMatch(m1,m2); - if (!tempm2) { - coutln "Does Not Exist on Remote:",m1->name; - full_name=MAlloc(StrLen(cur_dir)+1+StrLen(m1->name)+1+1); - StrCpy(full_name,cur_dir); - StrCat(full_name,m1->name); - } else { - full_name=MAlloc(StrLen(cur_dir)+1+StrLen(tempm2->name)+1+1); - StrCpy(full_name,cur_dir); - StrCat(full_name,tempm2->name); - } - if (m1->attr & LT_ATTR_DIR) { - if (!tempm2) { - if (Bt(fuf_flags,FUf_ALL)) - doit=TRUE; - else - doit=PopUpNoYes("MkDir on Remote?"); - if (doit) { - XTalkWithWait(tss,"MkDir(\"%s\");\r",full_name); - MrgWaitPmt(tss,chnl); - } - sub=NULL; - } else - sub=tempm2->sub; - StrCat(full_name,"/"); - RmtMergeChkList(tss,chnl,m1->sub,sub,fuf_flags,df_flags,full_name); - } else { - if (tempm2) { - i=m1->datetime-tempm2->datetime; - if (AbsI8(i)>LTDATE_FREQ*2) { //Filedates can shift due to conversion - if (i<0) { - c1=red_st; - c2=green_st; - } else { - c1=green_st; - c2=red_st; - } - PrintF("%s%h2D %h4T$$FG$$ %s%h2D %h4T$$FG$$\r\n %s\r\n\r\n", - c1,m1->datetime,m1->datetime, - c2,tempm2->datetime,tempm2->datetime, - m1->full_name); - if (i<0) { - if (Bt(fuf_flags,FUf_ALL)) - doit=TRUE; - else - doit=PopUpNoYes("Get from Remote Overwriting?"); - if (doit) { - XTalkWithWait(tss,"RmtRqstRxFile(\"%s\",\"%s\");\r", - full_name,m1->full_name); - MrgWaitPmt(tss,chnl); - } - } else { - if (Bt(fuf_flags,FUf_ALL)) - doit=TRUE; - else - doit=PopUpNoYes("Send to Remote Overwriting?"); - if (doit) { - XTalkWithWait(tss,"RmtRqstTxFile(\"%s\",\"%s\");\r", - full_name,m1->full_name); - MrgWaitPmt(tss,chnl); - } - } - } - } else { - if (Bt(fuf_flags,FUf_ALL)) - doit=TRUE; - else - doit=PopUpNoYes("Send to Remote?"); - if (doit) { - XTalkWithWait(tss,"RmtRqstTxFile(\"%s\",\"%s\");\r", - full_name,m1->full_name); - MrgWaitPmt(tss,chnl); - } - } - } - Free(full_name); - } - m1=m1->next; - } -} - -public void RmtMergeChkHost(I1 *dst_mask="/LT/*",I1 *flags=NULL) -{ - LTDirEntry *tempm; - U8 size,f=0; - U1 *buf; - ArcCompressStruct *ac; - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),"+r"); - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),flags); - tempm=FindFiles(dst_mask,f); - buf=FlattenLTDirTree(tempm,&size); - ac=CompressBuf(buf,size); - RmtRqstRxBuf(ac,ac->compressed_size); - Free(ac); - Free(buf); - DelLTDirList(tempm); -} - -I1 *Progress1CB(Ltf *l,LtfEntry *ll,TssStruct *mem_tss) -{ - I1 *st=MAlloc(16,mem_tss); - nounusedwarn l,ll; - SPrintF(st,"%08X",progress1); - return st; -} - -public void RmtMergeChk(LTChnl *chnl, - I1 *dst_mask="/LT/*", - I1 *src_mask="/LT/*", - I1 *flags=NULL) -//+r=recurse -//+d=diff -//+t=Just text files -//+a=all -{ - U8 df_flags=0,f=0; - LTDirEntry *tempm1=NULL,*tempm2=NULL; - TssStruct *tss; - I1 *st; - Ltf *aux; - LtfEntry *ll; - U1 *buf; - - if (!chnl || !chnl->type) return; - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),"+r+t"); - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),flags); - PrintFWarn("This is based strictly on file dates.\r\n"); - if (tempm1=FindFiles(src_mask,f)) { - tss=SpawnUser; - tss->win_top=Fs->win_top; - tss->win_bottom=(Fs->win_top+Fs->win_bottom)>>1-1; - Fs-> win_top=tss->win_bottom+3; - tss->win_right=Fs->win_right; - tss->win_left=Fs->win_left; - WinToTop(Fs); - aux=tss->aux_ltf; - LtfPutSExt(aux,"$$CM+BY,0,0$$"); - ll=LtfPutSExt(aux,"$$TX+DC+LX+IV,\"00000000\"$$"); - ll->display_cb=&Progress1CB; - XTalkWithWait(tss,"TelnetGuestOpen(0x%08X);\r",chnl); - MrgWaitPmt(tss,chnl); - XTalkWithWait(tss,"RmtMergeChkHost(\"%s\",\"%s\");\r",dst_mask,flags); - MrgWaitPmt(tss,chnl); - buf=ExpandBuf(chnl->rx_buf); - Free(chnl->rx_buf,tss); - tempm2=UnflattenLTDirTree(buf); - Free(buf); - st =MAlloc(StrLen(dst_mask)+3); - StrCpy(st,dst_mask); - RemoveLastSeg(st,"/"); - if (!*st) { - Free(st); - st=NewStr("./"); - } else - StrCat(st,"/"); - - RmtMergeChkList(tss,chnl,tempm1,tempm2,&f,&df_flags,st); - Free(st); - DelLTDirList(tempm1); - DelLTDirList(tempm2); - XTalkStrWithWait(tss,"Msg(MSG_KEY_DOWN,CH_CTRLB,SCF_CTRL+SCF_ALT);"); - Fs->win_top=tss->win_top; - Sleep(250); //allow shutdown of Guest channel - Kill(tss); - } -} - -#help_index "Utils" - -void ListNewFilesList(LTDirEntry *tempm,LTDate datetime,U8 f) -{ - while (tempm) { - if (tempm->datetime>datetime) - if (!Bt(&f,FUf_JUST_TEXT_FILES) || - IsTextFile(tempm->name)) - coutln tempm->full_name; - ListNewFilesList(tempm->sub,datetime,f); - tempm=tempm->next; - } -} - -public void ListNewFiles(I1 *src_mask="/LT/*",LTDate datetime=0, - I1 *flags=NULL) -//+r=recurse -//+t=Just text files -{ - U8 f=0; - LTDirEntry *tempm1=NULL; - - if (!datetime) - datetime=sys_compile_time; - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),"+r+t"); - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),flags); - - if (tempm1=FindFiles(src_mask,f)) { - ListNewFilesList(tempm1,datetime,f); - DelLTDirList(tempm1); - } -} - -#help_index "" diff --git a/LT/Utils/S2T.APZ b/LT/Utils/S2T.APZ deleted file mode 100644 index 1c05027..0000000 --- a/LT/Utils/S2T.APZ +++ /dev/null @@ -1,69 +0,0 @@ -#help_index "Utils" - -//$LK,"StrUtil","MN:StrUtil"$() operations on files - -public void SUFile(I1 *name,U8 su_flags) -{//String utility on a single file -//See $LK,"SU Flags","MN:SU_SINGLE_SPACE"$ - I1 *dst; - BoolU4 changed=FALSE; - I8 reduced=0; - Ltf *l=LtfRead(name,LTFF_PLAIN_TEXT_WITH_TABS | LTFF_NO_CURSOR); - LtfEntry *cl; - cl=l->dummy.next; - while (cl!=l) { - if (cl->btype==LTFT_TEXT) { - dst=MStrUtil(cl->display,su_flags); - if (StrCmp(dst,cl->display)) { - reduced=reduced+StrLen(cl->display)-StrLen(dst); - changed=TRUE; - Free(cl->display); - cl->display=dst; - } else - Free(dst); - } - cl=cl->next; - } - if (changed) { - PrintF("Reduced %s by %d chars\r\n",name,reduced); - StrCpy(l->filename.name,name); - LtfWrite(l); - } - LtfDel(l); -} - -void SUList(LTDirEntry *tempm1,U8 su_flags) -{ - LTDirEntry *tempm2; - while (tempm1) { - tempm2=tempm1->next; - if (tempm1->attr & LT_ATTR_DIR) { - if (tempm1->sub) { - coutln SysText("ST_SCANNING_DIRECTORY"),tempm1->full_name; - SUList(tempm1->sub,su_flags); - } - } else - SUFile(tempm1->full_name,su_flags); - DelLTDirEntry(tempm1); - tempm1=tempm2; - } -} - -//flags +r=recurse -public void SU(I1 *wild,U8 su_flags,I1 *flags) -{//Apply string utilities to files -//You can convert spaces to tabs, for example -//or removing trailing spaces on lines. -//See $LK,"SU Flags","MN:SU_SINGLE_SPACE"$ - U8 f=0; - GetFFlags(&f,SysText("ST_FILE_UTIL_FLAGS"),flags); - SUList(FindFiles(wild,f),su_flags); -} - -//flags +r=recurse -public void S2T(I1 *wild,I1 *flags) -{//Spaces to tabs - SU(wild,SU_S2T|SU_REMOVE_TRAILING,flags); -} - -#help_index "" diff --git a/Windows/LTZ/COMPRESS.CPP b/Linux/TSZ.CPP similarity index 53% rename from Windows/LTZ/COMPRESS.CPP rename to Linux/TSZ.CPP index 1e6750e25eb2695b1d83b82fe629696c06465b34..58846a05d10d564204a1f8c8a07c25c9881f910b 100644 GIT binary patch literal 6928 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 diff --git a/SparrowOS/Accts/Adam3.CPP b/SparrowOS/Accts/Adam3.CPP new file mode 100644 index 0000000..05b8698 --- /dev/null +++ b/SparrowOS/Accts/Adam3.CPP @@ -0,0 +1,9 @@ +//Change anything you want in this +//acct file or others. + +#include "HOME/Adam3aLocalize" +#include "HOME/Adam3bPkgs" +#include "HOME/Adam3cSnd" +#include "HOME/Adam3dKeyPlugIns" +#include "HOME/Adam3eWrappers" +#include "HOME/Adam3fSys" diff --git a/SparrowOS/Accts/Adam3aLocalize.CPP b/SparrowOS/Accts/Adam3aLocalize.CPP new file mode 100644 index 0000000..355852d --- /dev/null +++ b/SparrowOS/Accts/Adam3aLocalize.CPP @@ -0,0 +1,21 @@ +//Change anything you want in this +//acct file or others. + +//This makes your keyboard fast +SetTypeMatic(0); + +//Set Time Zone +local_time_offset=0*60*60*CDATE_FREQ; + +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 + +//don't change these +mxx_prescale=mxx/mxx_scale; +myy_prescale=myy/myy_scale; +mzz_prescale=mzz/mzz_scale; + diff --git a/SparrowOS/Accts/Adam3bPkgs.CPP b/SparrowOS/Accts/Adam3bPkgs.CPP new file mode 100644 index 0000000..f8d24bf --- /dev/null +++ b/SparrowOS/Accts/Adam3bPkgs.CPP @@ -0,0 +1,24 @@ +//Change anything you want in this +//acct file or others. + +Cd("/SparrowOS/Adam/Boot");; +#include "InsBoot" +Cd("/SparrowOS/Adam");; +#include "Diff" +#include "Grep" +#include "LineCnt" +#include "Merge" +#include "S2T" +#include "LinkChk" +#include "HeapLog" +#include "MemRep" +#include "ToHtml" +#include "ToTXT" +#include "BinRep" +#include "FileBMP" +Cd("/SparrowOS/Apps");; + +MapFileLoad("::/SparrowOS/OSMain/OSMain"); +MapFileLoad("::/SparrowOS/Compiler/Compiler"); + +Cd("HOME");; diff --git a/SparrowOS/Accts/Adam3cSnd.CPP b/SparrowOS/Accts/Adam3cSnd.CPP new file mode 100644 index 0000000..87300d8 --- /dev/null +++ b/SparrowOS/Accts/Adam3cSnd.CPP @@ -0,0 +1,11 @@ +//Change anything you want in this +//acct file or others. + +Cd("/SparrowOS/Adam/Snd");; +#include "SndFile" +#include "HDAudio" +//Uncomment this after running $LK,"::/SparrowOS/Adam/Snd/HDCfg.CPP.Z","FI:::/SparrowOS/Adam/Snd/HDCfg.CPP.Z"$. +//#include "HOME/HDAudioCfg.CPP.Z" +LBtr(&sys_semas[SYS_SEMA_SND],0); + +Cd("HOME");; diff --git a/SparrowOS/Accts/Adam3dKeyPlugIns.CPP b/SparrowOS/Accts/Adam3dKeyPlugIns.CPP new file mode 100644 index 0000000..e822d59 --- /dev/null +++ b/SparrowOS/Accts/Adam3dKeyPlugIns.CPP @@ -0,0 +1,179 @@ +//Change anything you want in this +//acct file or others. + +U0 FillInTime() +{ + CDate ltdt; + ltdt=GetCurTimeCDate; + "$$IV,1$$----%D %T----$$IV,0$$\n",ltdt,ltdt; +} + + +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"$ + +//You can customize keys. This routine +//is called before the main editor +//key handler $LK,"DocPutKey","MN:DocPutKey"$(). +//You can intercept any key. + +//Return TRUE if you completely +//handled the key. + + I64 i,sc2=sc.u8[0]; + + if (SC_F1<=sc2<=SC_F10 && + sc&SCF_ALT && + !(sc & SCF_CTRL)) { + switch (sc2) { + case SC_F1: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Dollar/LTPURPLE"); + else + SetKeyDesc("Dollar/PURPLE"); + } else { + if (sc & SCF_SHIFT) + "$$FG,LTPURPLE$$"; + else + "$$FG,PURPLE$$"; + } + break; + case SC_F2: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Dollar/LTRED"); + else + SetKeyDesc("Dollar/RED"); + } else { + if (sc & SCF_SHIFT) + "$$FG,LTRED$$"; + else + "$$FG,RED$$"; + } + break; + case SC_F3: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Dollar/LTGREEN"); + else + SetKeyDesc("Dollar/GREEN"); + } else { + if (sc & SCF_SHIFT) + "$$FG,LTGREEN$$"; + else + "$$FG,GREEN$$"; + } + break; + case SC_F4: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Dollar/LTBLUE"); + else + SetKeyDesc("Dollar/Default Color"); + } else { + if (sc & SCF_SHIFT) + "$$FG,LTBLUE$$"; + else + "$$FG$$"; + } + break; + case SC_F6: + if (sc&SCF_KEY_DESC) { + if (!(sc & SCF_SHIFT)) + SetKeyDesc("Cmd/Init WordStat LT"); + } else if (!(sc & SCF_SHIFT)) + PopUp("WSInit(\"/SparrowOS/\" TEXT_FILE_MASK \";~*Bible.TXT.Z\");"); + break; + case SC_F7: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Dollar/Insert Hidden Widget"); + else + SetKeyDesc("Misc/Insert Datetime"); + } else { + if (sc & SCF_SHIFT) + DocInsSafe(DocCur, + "$$HS+C$$$$FG$$$$HE$$"); + else + FillInTime(); + } + break; + } + return TRUE; + } else { + if (!(sc & SCF_CTRL)) { + if (sc & SCF_ALT) { + switch (ch) { + case 'h': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/Tile Horizontally"); + else + WinTileHorz; + return TRUE; + case 'm': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/Maximize"); + else { + WinMax; + WinBorder; + } + return TRUE; + case 'v': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/Tile Vertically"); + else + WinTileVert; + return TRUE; + + case 'l': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Put Link to Cur Pos on Clipboard"); + else { + ClipBoardDel; + DocPrintF(sys_clipboard_doc,"$$LK-A,\"FL:%s,%d\"$$", + DocCur->filename.name,DocCur->cur_entry->y+1); + } + return TRUE; + case 'L': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Place Anchor, Put Link to Clipboard"); + else { + i=RandU32; + ClipBoardDel; + DocPrintF(sys_clipboard_doc,"$$LK,\"\",\"FA:%s,ANC%d\"$$", + DocCur->filename.name,i); + "$$AN,\"\",\"ANC%d\"$$",i; + } + return TRUE; + + case 'w': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/WordStat(ON);"); + else + WordStat(ON); + return TRUE; + case 'W': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/WordStat;"); + else + WordStat; + return TRUE; + + } + } + } + } + return FALSE; +} + +Bool MyPutS(U8 *st) +{ + nounusedwarn st; + return FALSE; +} + +KeyDevAdd(&MyPutKey,&MyPutS,0x20000000,TRUE); diff --git a/SparrowOS/Accts/Adam3eWrappers.CPP b/SparrowOS/Accts/Adam3eWrappers.CPP new file mode 100644 index 0000000..b8d5ff2 --- /dev/null +++ b/SparrowOS/Accts/Adam3eWrappers.CPP @@ -0,0 +1,27 @@ +//Change anything you want in this +//acct file or others. + +#help_index "Utils;Cmd Line (Typically)" + +//These are customized quick commands. +//Feel free to add more or change. +public I64 F(U8 *pattern,U8 *fu_flags=NULL) +{ + return Grep(pattern,"/SparrowOS/"TEXT_FILE_MASK,fu_flags); +} + +public I64 R(U8 *pattern,U8 *replace_text=NULL,U8 *fu_flags="+l-i") +{ + return Grep(pattern,"/SparrowOS/"TEXT_FILE_MASK,fu_flags,replace_text); +} + +public I64 FD(U8 *pattern,U8 *fu_flags=NULL) +{ + return Grep(pattern,TEXT_FILE_MASK,fu_flags); +} + +public I64 RD(U8 *pattern,U8 *replace_text=NULL,U8 *fu_flags="+l-i") +{ + return Grep(pattern,TEXT_FILE_MASK,fu_flags,replace_text); +} +#help_index "" diff --git a/SparrowOS/Accts/Adam3fSys.CPP b/SparrowOS/Accts/Adam3fSys.CPP new file mode 100644 index 0000000..b89f0c9 --- /dev/null +++ b/SparrowOS/Accts/Adam3fSys.CPP @@ -0,0 +1,42 @@ +//Change anything you want in this +//acct file or others. + +U0 UserStartUp() +{ //Run each time a user a spawned + UseTermDoc; + DocCurAttr(WHITE<<4+BLUE); + Type("::/SparrowOS/Doc/Start.TXT.Z"); + LBts(&Fs->display_flags,DISPLAYf_SHOW); + WinZBufUpdate; + if (!IsSysDeterministic) + Preempt(ON); +} + +U0 ServantStartUp() +{ //Run each time a servant task is spawned. + UseTermDoc; + LBts(&Fs->display_flags,DISPLAYf_SHOW); + WinZBufUpdate; + if (!IsSysDeterministic) + Preempt(ON); +} + +U0 StartUpTasks() +{ + CTask *task1,*task2; + task1=SpawnUser; + task2=SpawnUser; + WinToTop(task1); + WinTileVert; + if (!IsSysDeterministic) + PopUp("#include \"::/SparrowOS/Adam/Start.CPP.Z\";"); + AdamLog("Boot Time:%7.3fs\n",tS); + XTalk(task1,"#include \"DoItOnce.CPP.Z\";\n"); + Silent(ON); //no output to screen + WSInit("/SparrowOS/" TEXT_FILE_MASK ";~*Bible.TXT.Z"); + Silent(OFF); //no output to screen +} + +StartUpTasks; + +"\nOS Compile Time:%D %T\n",sys_compile_time,sys_compile_time; diff --git a/SparrowOS/Accts/DoItOnce.CPP b/SparrowOS/Accts/DoItOnce.CPP new file mode 100644 index 0000000..8b37b26 --- /dev/null +++ b/SparrowOS/Accts/DoItOnce.CPP @@ -0,0 +1,16 @@ +//This file is executed by the +//first terminal window upon start-up. +//See $LK,"DoItOnce","FF:HOME/Adam3fSys.CPP.Z,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"); + +"\nTake Tour"; +if (YorN) { + Cd("/SparrowOS/Misc/Tour"); + AutoFile("Tour"); +} diff --git a/SparrowOS/Accts/Install/Adam3fSys.CPP b/SparrowOS/Accts/Install/Adam3fSys.CPP new file mode 100644 index 0000000..b6bb32d --- /dev/null +++ b/SparrowOS/Accts/Install/Adam3fSys.CPP @@ -0,0 +1,40 @@ +//Change anything you want in this +//acct file or others. + +U0 UserStartUp() +{ //Run each time a user a spawned + UseTermDoc; + DocCurAttr(WHITE<<4+BLUE); + Type("::/SparrowOS/Doc/Start.TXT.Z"); + LBts(&Fs->display_flags,DISPLAYf_SHOW); + WinZBufUpdate; + if (!IsSysDeterministic) + Preempt(ON); +} + +U0 ServantStartUp() +{ //Run each time a servant task is spawned. + UseTermDoc; + LBts(&Fs->display_flags,DISPLAYf_SHOW); + WinZBufUpdate; + if (!IsSysDeterministic) + Preempt(ON); +} + +U0 StartUpTasks() +{ + CTask *task1,*task2; + task1=SpawnUser; + task2=SpawnUser; + WinToTop(task1); + WinTileVert; + AdamLog("Boot Time:%7.3fs\n",tS); + XTalk(task1,"#include \"DoItOnce.CPP.Z\";\n"); + Silent(ON); //no output to screen + WSInit; + Silent(OFF); //no output to screen +} + +StartUpTasks; + +"\nOS Compile Time:%D %T\n",sys_compile_time,sys_compile_time; diff --git a/SparrowOS/Accts/Install/DoItOnce.CPP b/SparrowOS/Accts/Install/DoItOnce.CPP new file mode 100644 index 0000000..a3d2142 --- /dev/null +++ b/SparrowOS/Accts/Install/DoItOnce.CPP @@ -0,0 +1,264 @@ +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) { + XTalkWait(task,"PrtDsk;\nYC2p%d\nYYY",ata_drv->num); + XTalkWait(task,"%d\nY\nY\n",(prt_dsk_dsk_size-PRT_HEADER)/2); + return TRUE; + } else + return FALSE; +} + +U0 VMInstallBoot(CTask *task,U8 cd_drv,U8 drv,U8 *acct_name, + CATARep *ata_drv,CATARep *atapi_drv) +{ + U8 *st1,*st2; + + st1=MSPrintF("%C:/",cd_drv); + st2=MSPrintF("%C:/",drv); + CopyTree(st1,st2); + Free(st1); + Free(st2); + + st1=MSPrintF("%C:/SparrowOS/Accts/%s",drv,acct_name); + MkDir(st1); + Free(st1); + + XTalkWait(task, + "InstallBoot('%C');\n" + "B10x20000\n",drv); + + if (ata_drv) + XTalkWait(task,"C2p%d\n",ata_drv->num); + if (atapi_drv) + XTalkWait(task,"T3p%d\n",atapi_drv->num); + + XTalkWait(task, + "\n" //Exit Drives + "%s\n" //Acct + "\n" //Dsk Cache + "\n", //Options + acct_name); +} + +U0 VMInstallWizard(CTask *task) +{ + U8 *acct_name; + CATARep *root=NULL,*ata_drv=NULL,*atapi_drv=NULL; + while (TRUE) { + "Make-up a Log-In Name (account).\n"; + acct_name=PmtStr("User Acct Name (%s): ","User"); + if (FileNameChk(acct_name)) + break; + 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; + WinToTop(Fs); + + ATARep(FALSE,&root); + VMDrvs(root,&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'); + } + LinkedListDel(root); + Free(acct_name); +} + +U0 RegularInstallWizard(CTask *task) +{ + I64 unit; + U8 ch,*base0,*base1,*ms,*dst,*acct_name; + U8 *st1,*st2,*new_home_str; + CATARep *root=NULL,*tempha; + I64 num_hints; + + while (TRUE) { + "Make-up a Log-In Name (account).\n"; + acct_name=PmtStr("User Acct Name (%s): ","User"); + if (FileNameChk(acct_name)) + break; + 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; + WinToTop(Fs); + XTalk(task,"Mount;\n"); + XTalk(task,"C"); + XTalk(task,"2 "); + + 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 : "); + if (0base0); + 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 : "); + if (0next_task; + while (task->user_num!=2 && task!=Fs) + task=task->next_task; + XTalk(task,"Ed(\"::/SparrowOS/Doc/Install.TXT.Z\");\n"); + + NewLine(5); + "Install on virtual machine "; + if (YorN) + VMInstallWizard(task); + else { + "\n\nThis wizard works if you have a partition ready. " + "You can partition the drive or compile the kernel " + "with more options if you do it by hand, not using this wizard.\n\n" + "Continue Install Wizard "; + if (YorN) + RegularInstallWizard(task); + } + Fs->win_top=task->win_top; + Kill(task); + + "Reboot Now "; + if (YorN) + Reboot; +} + +DoInstall; diff --git a/SparrowOS/Accts/PersonalMenu.TXT b/SparrowOS/Accts/PersonalMenu.TXT new file mode 100644 index 0000000000000000000000000000000000000000..6a43e1a36bd47ac4701ed9bce4f9712a0a9dc0a2 GIT binary patch literal 51803 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,DISPLAYf_SHOW); + WinZBufUpdate; + if (!IsSysDeterministic) + Preempt(ON); +} + +U0 ServantStartUp() +{ //Run each time a servant task is spawned. + UseTermDoc; + LBts(&Fs->display_flags,DISPLAYf_SHOW); + WinZBufUpdate; + if (!IsSysDeterministic) + Preempt(ON); +} + +U0 StartUpTasks() +{ + CTask *task1,*task2; + task1=SpawnUser; + task2=SpawnUser; + WinToTop(task1); + WinTileVert; + if (!IsSysDeterministic) + PopUp("#include \"::/SparrowOS/Adam/Start.CPP.Z\";"); + AdamLog("Boot Time:%7.3fs\n",tS); +} + +StartUpTasks; + +"\nOS Compile Time:%D %T\n",sys_compile_time,sys_compile_time; diff --git a/SparrowOS/Accts/SafeMode/DoItOnce.CPP b/SparrowOS/Accts/SafeMode/DoItOnce.CPP new file mode 100644 index 0000000..94cb625 --- /dev/null +++ b/SparrowOS/Accts/SafeMode/DoItOnce.CPP @@ -0,0 +1,9 @@ +//This file is executed by the +//first terminal window upon start-up. +//See $LK,"DoItOnce","FF:HOME/Adam3fSys.CPP.Z,DoItOnce"$. + +//It goes in your HOME directory and +//you can customize it. + +//Delete this to get rid of +//default start-up msg. diff --git a/SparrowOS/Accts/TS/Adam3bPkgs.CPP b/SparrowOS/Accts/TS/Adam3bPkgs.CPP new file mode 100644 index 0000000..e606cb9 --- /dev/null +++ b/SparrowOS/Accts/TS/Adam3bPkgs.CPP @@ -0,0 +1,9 @@ +#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/Accts/TS/Adam3dKeyPlugIns.CPP b/SparrowOS/Accts/TS/Adam3dKeyPlugIns.CPP new file mode 100644 index 0000000..70018aa --- /dev/null +++ b/SparrowOS/Accts/TS/Adam3dKeyPlugIns.CPP @@ -0,0 +1,266 @@ +//Change anything you want in this +//acct file or others. + +U0 FillInTime() +{ + CDate ltdt; + ltdt=GetCurTimeCDate; + "$$IV,1$$----%D %T----$$IV,0$$\n",ltdt,ltdt; +} + +U0 RandQuote(I64 num) +{ //$LK,"::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z","FI:::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z"$ + I64 i,size,l=512; + U8 *bible_filename=Define("ST_BIBLE_FILE"), + *buf=FileRead(bible_filename,&size); + if (buf) { + i=num%(size-l); + buf[i+l]=0; + "" buf+i; + Free(buf); + } +} + +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), + *tempm=root; + I64 cnt=0; + CDoc *doc; + U8 *st; + while (tempm) { + doc=DocRead(tempm->full_name); + tempm->user_data=doc->root.y; + cnt+=doc->root.y; + DocDel(doc); + tempm=tempm->next; + } + num=num%cnt; + tempm=root; + while (tempm) { + num-=tempm->user_data; + if (num<0) { + st=MSPrintF("FL:%s,%d",tempm->full_name,-num); + break; + } + tempm=tempm->next; + } + CDirListDel(root); + Ed(st); + Free(st); +} + +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"$ + +//You can customize keys. This routine +//is called before the main editor +//key handler $LK,"DocPutKey","MN:DocPutKey"$(). +//You can intercept any key. + +//Return TRUE if you completely +//handled the key. + + I64 i,sc2=sc.u8[0]; + + if (SC_F1<=sc2<=SC_F10 && + sc&SCF_ALT && + !(sc & SCF_CTRL)) { + switch (sc2) { + case SC_F1: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Dollar/LTPURPLE"); + else + SetKeyDesc("Dollar/PURPLE"); + } else { + if (sc & SCF_SHIFT) + "$$FG,LTPURPLE$$"; + else + "$$FG,PURPLE$$"; + } + break; + case SC_F2: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Dollar/LTRED"); + else + SetKeyDesc("Dollar/RED"); + } else { + if (sc & SCF_SHIFT) + "$$FG,LTRED$$"; + else + "$$FG,RED$$"; + } + break; + case SC_F3: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Dollar/LTGREEN"); + else + SetKeyDesc("Dollar/GREEN"); + } else { + if (sc & SCF_SHIFT) + "$$FG,LTGREEN$$"; + else + "$$FG,GREEN$$"; + } + break; + case SC_F4: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Dollar/LTBLUE"); + else + SetKeyDesc("Dollar/Default Color"); + } else { + if (sc & SCF_SHIFT) + "$$FG,LTBLUE$$"; + else + "$$FG$$"; + } + break; + case SC_F5: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("God Passage"); + else + SetKeyDesc("God Word"); + } else { + //$LK,"::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z","FI:::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z"$ + if (sc & SCF_SHIFT) + RandQuote(KbdMouseEvtTime>>4); + else + "%s ",ws_sorted_words[KbdMouseEvtTime>>4%ws_num_words]->str; + } + break; + case SC_F6: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Cmd/Init WordStat Text"); + else + SetKeyDesc("Cmd/Init WordStat LT"); + } else { + if (sc & SCF_SHIFT) + PopUp("WSInit(\"::/SparrowOS/Misc/Bible.TXT.Z\");"); + else + PopUp("WSInit(\"::/SparrowOS/\" TEXT_FILE_MASK \";~*Bible.TXT.Z\");"); + } + break; + case SC_F7: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Dollar/Insert Hidden Widget"); + else + SetKeyDesc("Misc/Insert Datetime"); + } else { + if (sc & SCF_SHIFT) + DocInsSafe(DocCur, + "$$HS+C$$$$FG$$$$HE$$"); + else + FillInTime(); + } + break; + } + return TRUE; + } else { + if (!(sc & SCF_CTRL)) { + if (sc & SCF_ALT) { + switch (ch) { + case 'h': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/Tile Horizontally"); + else + WinTileHorz; + return TRUE; + case 'm': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/Maximize"); + else { + WinMax; + WinBorder; + } + return TRUE; + case 'v': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/Tile Vertically"); + else + WinTileVert; + return TRUE; + case 'V': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Sys/Frame Grabber Toggle"); + else + FrameGrabberToggle; + return TRUE; + + case 'l': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Put Link to Cur Pos on Clipboard"); + else { + ClipBoardDel; + DocPrintF(sys_clipboard_doc,"$$LK-A,\"FL:%s,%d\"$$", + DocCur->filename.name,DocCur->cur_entry->y+1); + } + return TRUE; + case 'L': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Place Anchor, Put Link to Clipboard"); + else { + i=RandU32; + ClipBoardDel; + DocPrintF(sys_clipboard_doc,"$$LK,\"\",\"FA:%s,ANC%d\"$$", + DocCur->filename.name,i); + "$$AN,\"\",\"ANC%d\"$$",i; + } + return TRUE; + + case 'w': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/WordStat(ON);"); + else + WordStat(ON); + return TRUE; + case 'W': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/WordStat;"); + else + WordStat; + return TRUE; + +//Ins your own ALT-key plug-ins + 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"$ + BadCodeJump(KbdMouseEvtTime>>4); + return TRUE; + + case 'p': + if (sc&SCF_KEY_DESC) + SetKeyDesc("JukeBox(TAD)"); + else + JukeBox("::/SparrowOS/Accts/TS/TAD/MusicOrgan"); + return TRUE; + case 'P': + if (sc&SCF_KEY_DESC) + SetKeyDesc("JukeBox(Examples)"); + else + JukeBox("::/SparrowOS/Apps/MusicOrgan/Examples"); + return TRUE; + } + } + } + } + return FALSE; +} + +Bool MyPutS(U8 *st) +{ + nounusedwarn st; + return FALSE; +} + +KeyDevAdd(&MyPutKey,&MyPutS,0x20000000,TRUE); diff --git a/SparrowOS/Accts/TS/Adam3eWrappers.CPP b/SparrowOS/Accts/TS/Adam3eWrappers.CPP new file mode 100644 index 0000000..4d4ea2b --- /dev/null +++ b/SparrowOS/Accts/TS/Adam3eWrappers.CPP @@ -0,0 +1,9 @@ +#include "/SparrowOS/Accts/Adam3eWrappers" + +#help_index "Utils;Cmd Line (Typically)" +public U0 M(U8 *src1,U8 *src2,U8 *fu_flags=NULL) +{ + MergeChk(src1,src2,fu_flags); +} +#help_index "" + diff --git a/SparrowOS/Accts/TS/Adam3fSys.CPP b/SparrowOS/Accts/TS/Adam3fSys.CPP new file mode 100644 index 0000000..157cc8a --- /dev/null +++ b/SparrowOS/Accts/TS/Adam3fSys.CPP @@ -0,0 +1,49 @@ +U0 UserStartUp() +{ //Run each time a user a spawned + UseTermDoc; + DocCurAttr(WHITE<<4+BLUE); + Type("::/SparrowOS/Doc/Start.TXT.Z"); + LBts(&Fs->display_flags,DISPLAYf_SHOW); + WinZBufUpdate; + if (!IsSysDeterministic) + Preempt(ON); + Dir; + CPURep; +} + +U0 ServantStartUp() +{ //Run each time a servant task is spawned. + UseTermDoc; + LBts(&Fs->display_flags,DISPLAYf_SHOW); + WinZBufUpdate; + if (!IsSysDeterministic) + Preempt(ON); +} + +CTask *user1,*user2; + +U0 StartUpTasks() +{ + user1=SpawnUser; + user2=SpawnUser; + WinToTop(user1); + WinTileVert; + if (!IsSysDeterministic) + PopUp("#include \"::/SparrowOS/Adam/Start.CPP.Z\";"); + AdamLog("Boot Time:%7.3fs\n",tS); + XTalk(user1,"#include \"DoItOnce.CPP.Z\";\n"); + Silent(ON); + if (!IsSysDeterministic) + WSInit("/SparrowOS/" TEXT_FILE_MASK ";~*Bible.TXT.Z"); + Silent(OFF); + AdamLog("WordStat Time:%7.3fs\n",tS); + if (ts_has_win_drv) + DrvEnable(TS_WIN_DRV_LET,OFF); +} + +DelTree("::/Temp/ScreenShots"); +MkDir("::/Temp/ScreenShots"); + +StartUpTasks; + +"\nOS Compile Time:%D %T\n",sys_compile_time,sys_compile_time; diff --git a/SparrowOS/Accts/TS/DoItOnce.CPP b/SparrowOS/Accts/TS/DoItOnce.CPP new file mode 100644 index 0000000..6fe56f4 --- /dev/null +++ b/SparrowOS/Accts/TS/DoItOnce.CPP @@ -0,0 +1,12 @@ +//This file is executed by the +//first terminal window upon start-up. +//See $LK,"DoItOnce","FF:HOME/Adam3fSys.CPP.Z,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"); + diff --git a/SparrowOS/Accts/TS/PersonalMenu.TXT b/SparrowOS/Accts/TS/PersonalMenu.TXT new file mode 100644 index 0000000000000000000000000000000000000000..a886958024fe6b6f96e2d2b4bc4114bc5f10a9db GIT binary patch literal 51890 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 literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/Adam3aLocalize.CPP b/SparrowOS/Accts/TS/TAD/Adam3aLocalize.CPP new file mode 100644 index 0000000..54e8d1d --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/Adam3aLocalize.CPP @@ -0,0 +1,20 @@ +//Change anything you want in this +//acct file or others. + +//This makes your keyboard fast +SetTypeMatic(0); + +//Set Time Zone +local_time_offset=-7*60*60*CDATE_FREQ; //Pacific + +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 + +//don't change these +mxx_prescale=mxx/mxx_scale; +myy_prescale=myy/myy_scale; +mzz_prescale=mzz/mzz_scale; diff --git a/SparrowOS/Accts/TS/TAD/Archive/FileSysISO3.CPP b/SparrowOS/Accts/TS/TAD/Archive/FileSysISO3.CPP new file mode 100644 index 0000000..ed59842 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/Archive/FileSysISO3.CPP @@ -0,0 +1,488 @@ +//ISO1 is ISO9660 +//ISO2 is ISO13490 +//ISO3 is ISO13346 + +//ISO13346 tag id types +#define ISO3T_PRI_VOL_DESC 1 +#define ISO3T_ANCHOR_VOL_DESC_PTR 2 +#define ISO3T_VOL_DESC_PTR 3 +#define ISO3T_IMPLEMENTATION_VOL_DESC 4 +#define ISO3T_PRT_DESC 5 +#define ISO3T_LOG_VOL_DESC 6 +#define ISO3T_UNALLOCATED_SPACE_DESC 7 +#define ISO3T_TERMINATOR_DESC 8 +#define ISO3T_LOG_VOL_INTEGRITY_DESC 9 +#define ISO3T_FILE_SET_DESC 256 +#define ISO3T_FILE_ID_DESC 257 +#define ISO3T_ALLOC_EXTENT_DESC 258 +#define ISO3T_INDIRECT_ENTRY 259 +#define ISO3T_TERMINAL_ENTRY 260 +#define ISO3T_FILE_ENTRY 261 +#define ISO3T_EXT_ATTR_HEADER_DESC 262 +#define ISO3T_UNALLOC_SPACE_ENTRY 263 +#define ISO3T_SPACE_BITMAP_DESC 264 +#define ISO3T_PRT_INTEGRITY_ENTRY 265 +#define ISO3T_EXT_FILE_ENTRY 266 + +class CISO3Tag +{ + U16 id; + U16 version; + U8 xsum; + U8 reserved; + U16 serial_num; + U16 desc_crc; + U16 desc_crc_len; + U32 loc; +}; + +class CISO3Date +{ + U16 time_zone; + I16 year; + U8 mon; + U8 day; + U8 hour; + U8 min; + U8 sec; + U8 sec100; + U8 sec10000; + U8 sec1000000; +}; + + +class CISO3DString32 +{ + U8 body[31]; + U8 len; +}; + +class CISO3DString128 +{ + U8 body[127]; + U8 len; +}; + +class CISO3CharSpec +{ + U8 type; + U8 body[63]; +}; + +class CISO3RegId +{ + U8 flags; + U8 id[23]; + U8 id_suffix[8]; +}; + +class CISO3ExtentAD +{ + U32 len; + U32 loc; +}; + +class CISO3LBAdd +{ + U32 log_blk_num; + U16 prt_ref_num; +}; + +class CISO3LongAD +{ + U32 len; + CISO3LBAdd loc; + U8 implementation_use[6]; +}; + +class CISO3ICBTag +{ + U32 prior_record_direct_entries; + U16 strategy_type; + U16 strategy_param; + U16 max_entries; + U8 reserved; + U8 file_type; + CISO3LBAdd parent_icb_loc; + U16 flags; +}; + +class CISO3PriDesc +{ + CISO3Tag tag; + U32 vol_desc_seq_num; + U32 pri_vol_desc_num; + CISO3DString32 vol_id; + U16 vol_seq_num; + U16 max_vol_seq_num; + U16 interchg_level; + U16 max_interchg_level; + U32 char_set_list; + U32 max_char_set_list; + CISO3DString128 vol_set_id; + CISO3CharSpec desc_char_set; + CISO3CharSpec explanatory_char_set; + CISO3ExtentAD vol_abstract; + CISO3ExtentAD vol_copyright_notice; + CISO3RegId app_id; + CISO3Date recording_date_time; + CISO3RegId implementation_id[32]; + U8 implementation_use[64]; + U32 pred_vol_desc_seq_loc; + U16 flags; + U8 reserved[22]; +}; + +class CISO3PrtMap +{ + U8 type; + U8 len; + U0 mapping; +}; + +class CISO3PrtMap1 +{ + U8 type; + U8 len; + U16 vol_seq_num; + U16 prt_num; +}; + +class CISO3PrtMap2 +{ + U8 type; + U8 len; + U8 prt_id[62]; +}; + +class CISO3LogVolDesc +{ + CISO3Tag tag; + U32 vol_desc_seq_num; + CISO3CharSpec desc_char_set; + CISO3DString128 log_vol_id; + U32 blk_size; + CISO3RegId domain_id; + U8 log_vol_contents_use[16]; + U32 map_table_len; + U32 num_prt_maps; + CISO3RegId implementation_id; + U8 implementation_use[128]; + CISO3ExtentAD integrity_seq_extent; + U0 prt_maps; +}; + +class CISO3Prt +{ + CISO3Tag tag; + U32 vol_desc_seq_num; + U16 flags; + U16 num; + CISO3RegId contents; + U8 contents_use[128]; + U32 access_type; + U32 starting_loc; + U32 len; + CISO3RegId implementation_id; + U8 implementation_use[128]; + U8 reserved[156]; +}; + +class CISO3FileSetDesc +{ + CISO3Tag tag; + CISO3Date recording_date_time; + U16 interchg_level; + U16 max_interchg_level; + U32 char_set_list; + U32 max_char_set_list; + U32 file_set_num; + U32 file_set_desc_num; + CISO3CharSpec log_vol_id_char_set; + CISO3DString128 log_vol_id; + CISO3CharSpec file_set_char_set; + CISO3DString32 file_set_id; + CISO3DString32 copyright_file_id; + CISO3DString32 abstract_file_id; + CISO3LongAD root_dir_icb; + CISO3RegId domain_id; + CISO3LongAD next_extent; + CISO3LongAD sys_stream_dir_icb; + U8 reserved[32]; +}; + +class CISO3FileIdDesc +{ + CISO3Tag tag; + U16 version; + U8 characteristics; + U8 len_of_file_id; + CISO3LongAD icb; + U16 len_of_implementation_use; + U0 implementation_use; + U0 file_id; +}; + +class CISO3File +{ + CISO3Tag tag; + CISO3ICBTag icb_tag; + U32 uid; + U32 gid; + U32 permissions; + U16 file_link_cnt; + U8 record_fmt; + U8 record_display_attr; + U32 record_len; + I64 info_len; + I64 log_blks_recorded; + CISO3Date access_date_time; + CISO3Date modification_date_time; + CISO3Date attr_date_time; + U32 chk_pt; + CISO3LongAD ext_attr_icb; + CISO3RegId implementation_id; + I64 unique_id; + U32 ext_attr_len; + U32 alloc_desc_len; + U0 ext_attr; + U0 alloc_desc; +}; + +class CISO3FileExt +{ + CISO3Tag tag; + CISO3ICBTag icb_tag; + U32 uid; + U32 gid; + U32 permissions; + U16 file_link_cnt; + U8 record_fmt; + U8 record_display_attr; + U32 record_len; + I64 info_len; + I64 object_size; + I64 log_blks_recorded; + CISO3Date access_date_time; + CISO3Date modification_date_time; + CISO3Date creation_date_time; + CISO3Date attr_date_time; + U32 chk_pt; + U32 reserved; + CISO3LongAD ext_attr_icb; + CISO3LongAD stream_dir_icb; + CISO3RegId implementation_id; + I64 unique_id; + U32 ext_attr_len; + U32 alloc_desc_len; + U0 ext_attr; + U0 alloc_desc; +}; + +import U0 ClassRep(U8 *class_name,U8 *d,I64 max_depth=2,Bool fun=FALSE,I64 offset=0); + +Bool ISO3PrtInitPrt(CPrt *p,I64 blk) +{ + CBlkDev *bdev=p->bdev; + I64 spc=bdev->blk_size>>BLK_SIZE_BITS,i=blk/spc; + CISO3FileSetDesc *iso=MAlloc(bdev->blk_size); + Bool unlock,result=FALSE; + try { + unlock=PrtLock(p); + while (TRUE) { + p->size=MaxI64(p->size,(i+1)*spc); + RBlks(p,iso,i*spc,spc); + "%X:%X\n",i,iso->tag.id; + switch (iso->tag.id) { + case ISO3T_FILE_SET_DESC: + ClassRep("CISO3FileSetDesc",iso,3); +// p->offset=blk; +// p->root_cluster=iso->root_dir_icb.loc.log_blk_num+p->offset/spc; + result=TRUE; + break; + case ISO3T_EXT_FILE_ENTRY: + ClassRep("CISO3FileExt",iso,3); + break; + case ISO3T_FILE_ENTRY: + ClassRep("CISO3File",iso,3); + break; + case ISO3T_FILE_ID_DESC: + ClassRep("CISO3FileIdDesc",iso,3); + break; + case ISO3T_ALLOC_EXTENT_DESC: + case ISO3T_INDIRECT_ENTRY: + case ISO3T_TERMINAL_ENTRY: + case ISO3T_EXT_ATTR_HEADER_DESC: + case ISO3T_UNALLOC_SPACE_ENTRY: + case ISO3T_SPACE_BITMAP_DESC: + case ISO3T_PRT_INTEGRITY_ENTRY: + break; + default + goto i3pip_done; + } + i++; + } +i3pip_done: + Free(iso); + if (unlock) + PrtUnlock(p); + } catch { + Free(iso); + if (unlock) + PrtUnlock(p); + } + return result; +} + +Bool ISO3PrtInit(CPrt *p,I64 blk) +{ + CBlkDev *bdev=p->bdev; + I64 spc=bdev->blk_size>>BLK_SIZE_BITS,i=blk/spc,offset=0; + CISO3Prt *iso=MAlloc(bdev->blk_size); + Bool unlock,result=FALSE; + + try { + unlock=PrtLock(p); + while (TRUE) { + p->size=MaxI64(p->size,(i+1)*spc); + RBlks(p,iso,i*spc,spc); +"%X:%X\n",i,iso->tag.id; + switch (iso->tag.id) { + case ISO3T_PRT_DESC: + ClassRep("CISO3Prt",iso,3); + offset=iso->starting_loc*spc; //one partition for now + break; + case ISO3T_PRI_VOL_DESC: + ClassRep("CISO3PriDesc",iso,3); + break; + case ISO3T_LOG_VOL_DESC: + ClassRep("CISO3LogVolDesc",iso,3); + D(&iso(CISO3LogVolDesc *)->prt_maps); + break; + case ISO3T_ANCHOR_VOL_DESC_PTR: + case ISO3T_VOL_DESC_PTR: + case ISO3T_IMPLEMENTATION_VOL_DESC: + case ISO3T_UNALLOCATED_SPACE_DESC: + case ISO3T_LOG_VOL_INTEGRITY_DESC: + break; + case ISO3T_TERMINATOR_DESC: + goto i3pi_done; + default: + PutDefineErr("ST_UNSUPPORTED_FILE_SYSTEM"); + throw(EXCEPT_PRT,8); + } + i++; + } +i3pi_done: + if (offset) + result=ISO3PrtInitPrt(p,offset); + Free(iso); + if (unlock) + PrtUnlock(p); + } catch { + Free(iso); + if (unlock) + PrtUnlock(p); + } + return result; +} + + +/**** +U0 CDate2ISO3(CISO3Date *dst,CDate ltdt) +{ + CDateStruct ds; + CDate2CDateStruct(&ds,ltdt); + MemSet(dst,0,sizeof(CISO3Date)); + dst->year=ds.year; + dst->mon=ds.mon; + dst->day=ds.day_of_mon; + dst->hour=ds.hour; + dst->min=ds.min; + dst->sec=ds.sec; + dst->sec100=ds.sec100; +} + +CDate ISO3Date2CDate(CISO3Date *dt) +{ + CDateStruct ds; + MemSet(&ds,0,sizeof(CDateStruct)); + ds.day_of_mon=dt->day; + ds.mon=dt->mon; + ds.year=dt->year; + ds.sec100=dt->sec100; + ds.sec=dt->sec; + ds.min=dt->min; + ds.hour=dt->hour; + return CDateStruct2CDate(&ds); +} +****/ + + +Bool ISOPrtInit(CPrt *p,I64 blk) +{ + CBlkDev *bdev=p->bdev; + I64 spc=bdev->blk_size>>BLK_SIZE_BITS,i=blk/spc; + CISO1PriDesc *iso=MAlloc(bdev->blk_size); + CISO1DirEntry *de; + Bool unlock,result=FALSE; + U8 buf[8]; + + try { + unlock=PrtLock(p); + p->type=PT_ISO9660; //default + p->spc=spc; + p->offset=p->data=p->root_cluster=p->size=0; + while (TRUE) { + p->size=MaxI64(p->size,(i+1)*spc); + 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)) { + case 0: + p->type=PT_ISO9660; + switch (iso->type) { + case ISO1T_SUPPLEMENTARY_DESC: + p->data=0; + de=&iso->root_dir_record; + p->root_cluster=de->loc.little; + p->size=iso->vol_space_size.little*bdev->blk_size>>BLK_SIZE_BITS; + result=TRUE; + goto ipi_done; + case ISO1T_TERMINATOR: + throw(EXCEPT_PRT,9); + } + break; + case 2...6: + p->type=PT_ISO13346; + break; + case 1: //PT_ISO13490 (Not supported) + default: //Its normal for ISO13346 to read NULL blk as terminator + switch (p->type) { + case PT_ISO13346: + i++; //Terminator is blk after last valid. Advance to next blk + if (ISO3PrtInit(p,i*spc)) { + result=TRUE; + goto ipi_done; + } + break; + } + PutDefineErr("ST_UNSUPPORTED_FILE_SYSTEM"); + throw(EXCEPT_PRT,10); + } + i++; + } +ipi_done: + Free(iso); + if (unlock) + PrtUnlock(p); + } catch { + p->type=PT_ISO9660; + p->spc=spc; + p->offset=p->data=p->root_cluster=0; + Free(iso); + if (unlock) + PrtUnlock(p); + } + return result; +} diff --git a/SparrowOS/Accts/TS/TAD/Archive/Logo.TXT b/SparrowOS/Accts/TS/TAD/Archive/Logo.TXT new file mode 100644 index 0000000000000000000000000000000000000000..efc8df6a9698ce5aa25f592a158ba447c563a4a9 GIT binary patch literal 33188 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 literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/Archive/USB.CPP b/SparrowOS/Accts/TS/TAD/Archive/USB.CPP new file mode 100644 index 0000000..26214a5 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/Archive/USB.CPP @@ -0,0 +1,217 @@ +/* +You can play with this if you are +interested in USB. I'm not planning +on doing USB unless the legacy PS2 +keyboard/mouse mode disappears. +There EHCI UHCI in various ICH chips and +others and God knows how many custom packet +formats for different keyboards and mice. Okay, +I suppose if BIOS can make a universal +packet, it is done just one way for +different mice. PS2 is more compatible. + +*/ +#help_index "USB" +extern I64 sys_num_usb; +extern CUSB sys_usb_devs[MAX_USB]; +extern CUSBTD *USBAllocTD(); +extern U0 USBFreeTD(CUSBTD *temptd); +extern U0 USBEndAll(); +extern U0 USBInitAll(); +extern U32 *USBAllocFrameList(I64 usb_num,I64 size); + +U8 *StatCB(CDoc *,CDocEntry *doc_e,CTask *mem_task) +{ //This routine shows the stat of the USB ports + U8 *st=MAlloc(128,mem_task); + U16 w1,w2,w3,w4; + U32 d1; + CUSB *u=doc_e->user_data; + I64 d=u->ports; + w3=InU16(d+USBP_STS); + w1=InU16(d+USBP_PORTSC0); w2=InU16(d+USBP_PORTSC1); + w4=InU16(d+USBP_FRNUM); + d1=InU32(d+USBP_FRBASEADD); + SPrintF(st,"%X:Stat:%04X P0:%04X P1:%04X FRAME:%04X",d1,w3,w1,w2,w4); + return st; +} + +U0 PutStat() +{ + I64 i; + Bool old_preempt=Preempt(OFF); + CDocEntry *doc_e; + CUSB *u; + WinMax; + + "$$FG,GREEN$$Dev Stat Bits\n$$FG$$" + " 0:IRQ\n" + " 1:IRQ err\n" + " 2:Resume\n" + " 3:Host Sys Err\n" + " 4:Host Process Err\n" + " 5:Halted\n" + "$$FG,GREEN$$Port Stat Bits\n$$FG$$" + " 0:Connection Stat\n" + " 1:Connection Stat Change\n" + " 2:Port Enabled\n" + " 3:Port Enabled Change\n" + "4-5:Line Stat\n" + " 6:Resume Detect\n" + " 8:Low Speed\n" + " 9:Port Rst\n" + " 10:Overcurrent Active\n" + " 11:Overcurrent Indicator\n" + " 12:Suspend\n\n"; + + for (i=0;iports; + doc_e=DocPutS(DocCur,"$$TX+TC,\" \"$$"); + doc_e->user_data=&sys_usb_devs[i]; + doc_e->tag_cb=&StatCB; + "$$FG$$\n"; + } + + Preempt(old_preempt); + NewLine; +} + + +extern U0 PutQH(U32 h); + +U32 *P(U32 d) +{ + return d&~3; +} + + +U0 PutTD(U32 t) +{ + "TD:$$FG,GREEN$$%08X$$FG$$\n",t; + "%08X\n",*P(t); + DocDm(t+4,8); + if (*P(t+12)) + DocDm(*P(t+12),16); +// DocDm(*P(t+12),*P(t+4)>>21&0x7FF); + if (!(*P(t)&1)) { + if (*P(t)&2) + PutQH(*P(t)); + else + PutTD(*P(t)); + } +} + +U0 PutQH(U32 h) +{ + "QH:$$FG,RED$$%08X$$FG$$\n",h; + "%08X\n",*P(h); + "%08X\n",*P(h+4); + + if (!(*P(h)&1)) { + if (*P(h)&2) + PutQH(*P(h)); + else + PutTD(*P(h)); + } + + if (!(*P(h+4)&1)) { + if (*P(h+4)&2) + PutQH(*P(h+4)); + else + PutTD(*P(h+4)); + } +} + +U0 PutFrame(U32 f) +{ + PutQH(f); +} + +U0 PutFrames() +{ + I64 i,d,f,w1,w2; + CUSB *u; + for (i=0;iports; + w1=InU16(d+USBP_PORTSC0); w2=InU16(d+USBP_PORTSC1); + if (w1&1 || w2&1) { + f=InU32(d+USBP_FRBASEADD); + PutFrame(f); + } + } + +} + +U0 Main() +{ + USBInitAll; + PutStat; + PutFrames; + "$$FG,RED$$The BIOS sets-up the USB in PS/2 legacy mode.$$FG$$\n"; +} + +Main; + + +/* Not Finished +#define PORT 5 + +#define DEV_ADD_INIT 1 +#define DEV_ADD 1 +#define END_PT0 0 +#define END_PT1 1 +#define END_PT2 2 +#define MAX_LEN 8 +#define TERMINATE 1 + +U0 SetUpTD() +{ + CUSB *u=&sys_usb_devs[PORT]; + I64 i,d=u->ports; + U32 *frm=CAllocAligned(0x1000,0x1000,Fs->code_heap), + *tds=CAllocAligned(256,16,Fs->code_heap), + *buf=CAlloc(128,Fs->code_heap); + DocD(buf,128); + + "<0>\n"; Sleep(100); + OutU16(d+USBP_CMD,2); //Reset + "<1>\n"; Sleep(100); + OutU16(d+USBP_CMD,0); + "<2>\n"; Sleep(100); + OutU16(d+USBP_PORTSC0,4); //Enable + OutU16(d+USBP_PORTSC1,4); + "<3>\n"; Sleep(100); + + tds[0]=&tds[4](U8 *); + tds[1]=0; + tds[2]=PID_SETUP+DEV_ADD_INIT<<8+END_PT0<<15+MAX_LEN<<21; + tds[3]=buf; + buf[0]=0+RQ_SET_ADDR<<8+DEV_ADD<<16; + buf[1]=0+0<<16; + + + tds[4]=TERMINATE; + tds[5]=0; + tds[6]=PID_SETUP+DEV_ADD_INIT<<8+END_PT0<<15+MAX_LEN<<21; + tds[7]=buf(U8 *)+8; + buf[2]=0+RQ_SET_ADDR<<8+DEV_ADD<<16; + buf[3]=0+0<<16; + + frm[0]=&tds[0](U8 *); + for (i=1;i<0x1000/4;i++) + frm[i]=TERMINATE; + + OutU16(d+USBP_FRNUM,frm); + OutU32(d+USBP_FRBASEADD,frm); + "<4>\n"; Sleep(200); + OutU16(d+USBP_CMD,1); + "<5>\n"; Sleep(1000); + OutU16(d+USBP_CMD,0); + "<6>\n"; Sleep(200); +} + +SetUpTD; + +*/ + diff --git a/SparrowOS/Accts/TS/TAD/Archive/USB1a.CPP b/SparrowOS/Accts/TS/TAD/Archive/USB1a.CPP new file mode 100644 index 0000000..02d3990 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/Archive/USB1a.CPP @@ -0,0 +1,114 @@ +#define USBP_CMD 0x00 +#define USBP_STS 0x02 +#define USBP_INTR 0x04 +#define USBP_FRNUM 0x06 +#define USBP_FRBASEADD 0x08 +#define USBP_SOFMOD 0x0C +#define USBP_PORTSC0 0x10 +#define USBP_PORTSC1 0x12 +#define MAX_USB 16 + +class CUSBTD //Not implemented +{ + U32 td[4]; +}; + +class CUSB //Not implemented +{ + U8 num, //USB dev num + bus,dev,fun; + U16 ports,pad; + U32 *frame_list; +}; + +//USB Pkt ID's +#define PID_OUT 0xE1 +#define PID_IN 0x69 +#define PID_SOF 0xA5 +#define PID_SETUP 0x2D +#define PID_DATA0 0xC3 +#define PID_DATA1 0x4B +#define PID_DATA2 0x87 +#define PID_MDATA 0x0F +#define PID_ACK 0xD2 +#define PID_NAK 0x5A +#define PID_STALL 0x1E +#define PID_NYET 0x96 +#define PID_PRE 0x3C +#define PID_ERR 0x3C +#define PID_SPLIT 0x78 +#define PID_PING 0xB4 + +//USB Std Rqsts +#define RQ_GET_STAT 0x0 +#define RQ_CLR_FEAT 0x1 +#define RQ_SET_FEAT 0x3 +#define RQ_SET_ADDR 0x5 +#define RQ_SET_DESC 0x7 +#define RQ_GET_CFG 0x8 +#define RQ_SET_CFG 0x9 +#define RQ_GET_INTERFACE 0xA +#define RQ_SET_INTERFACE 0xB +#define RQ_SYNC_FRAME 0xC + +I64 sys_num_usb=0; +CUSB sys_usb_devs[MAX_USB]; +MemSet(sys_usb_devs,0,MAX_USB*sizeof(CUSB)); + + +U0 USBInitOne(I64 b,I64 d,I64 f) +{ + CUSB *u; + if (sys_num_usbnum=sys_num_usb; + u->bus=b; + u->dev=d; + u->fun=f; + u->ports=PCIReadU32(b,d,f,0x20)&~0x1F; + } +} + +U0 USBEndAll() +{ + sys_num_usb=0; +} + +U0 USBInitAll() //This is only valid for my ICH10 dev +{ + if (sys_num_usb) + USBEndAll; + USBInitOne(0,29,0); + USBInitOne(0,29,1); + USBInitOne(0,29,2); + USBInitOne(0,29,3); + USBInitOne(0,26,0); + USBInitOne(0,26,1); + USBInitOne(0,26,2); +} + +CUSBTD *USBAllocTD() +{ + return MAllocAligned(sizeof(CUSBTD),0x10,sys_uncached_heap); +} + +U0 USBFreeTD(CUSBTD *temptd) +{ + Free(temptd); +} + +U32 *USBAllocFrameList(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); + 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; + } + return NULL; +} diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/abiding.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/abiding.CPP new file mode 100644 index 0000000..f0e67a9 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/abiding.CPP @@ -0,0 +1,75 @@ +//9 has graphics + +#define X 330 +#define Y 15 + +#define NUM_BEAMS 256 + +F64 beams_r[NUM_BEAMS],beams_é[NUM_BEAMS]; + +U0 DrawIt(CTask *,CDC *dc) +{ + I64 i; + F64 r,x1,y1,x2,y2; + dc->color=YELLOW; + GrCircle(dc,X,Y,10); + GrFloodFill(dc,X,Y,10); + dc->color=BROWN; + GrCircle(dc,X,Y,10); + dc->color=YELLOW; + for (i=0;idraw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + for (i=0;iwin_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); + "$$BD+H,LTCYAN$$$$FD+H,BLACK$$"; + while (!ScanKey) { + "$$FG,WHITE$$To God...\n$$FG$$"; + Play("W13etCFE!!sDDDDD2G!3D2G!!3qC2eG3EqEetAA!F2qG", + "I \0am \0a\0biding \0 \0 \0 \0in \0 \0Your \0 \0presence.\n\0 \0 \0 \0 \0 \0 \0 \0"); + Play("3etCFE!!sDDDDD2G!3D2G!!3qC2eG3EqEetAA!F2qG", + "I \0am \0a\0biding \0 \0 \0 \0in \0 \0Your \0 \0presence.\n\0 \0 \0 \0 \0 \0 \0 \0"); + Play("!3DBsFGF!G2eG!!3FRDqEGeB!E", + "What \0a \0joy!\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("!qDBsFGF!G2eG!!3FRDqEGeB!E", + "I'm \0so \0coy!\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/abyss.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/abyss.CPP new file mode 100644 index 0000000..204f25d --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/abyss.CPP @@ -0,0 +1,44 @@ +//7 has words +U0 Song() +{ + CTask *task; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.736; + try { + task=PopUpViewStr( + "There are myths about the River\n" + "Styx separating the land of the\n" + "living from dead. Jesus' told a story\n" + "about the land of living separate from\n" + "land of dead. ($LK,"Luke,16:22","BF:Luke,16:22"$) In the Old\n" + "Testament, the River Jordan was a special\n" + "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); + while (!ScanKey) { + Play("W13sBBBBqCq.BeAqBh.A", + "Can't \0 \0 \0 \0get \0there, \0from \0he\0re.\n\0"); + Play("M2/4"); + Play("eECqAM4/4"); + Play("sBBBBqCq.BeAqBh.A", + "Can't \0 \0 \0 \0get \0there, \0from \0he\0re.\n\0"); + Play("M2/4"); + Play("eDDqDM4/4"); + Play("DeEDqG!CeF2G3qG!!sFGFG!!eD!C", + "Oh, \0my \0 \0God, \0some\0thing's... \0 \0 \0ver\0 \0y \0 \0wrong!\n\0 \0"); + Play("qDeEDqG!CeF2G3qG!!sFGFG!!eD!C", + "Oh, \0my \0 \0God, \0some\0thing's... \0 \0 \0ver\0 \0y \0 \0wrong!\n\0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/almighty.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/almighty.CPP new file mode 100644 index 0000000..3014b15 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/almighty.CPP @@ -0,0 +1,22 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + while (!ScanKey) { + Play("2qG3etC2GG3qARR2etG3FBqEeFE", + "All \0righ\0 \0 \0ty.\n\0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("2qG3etC2GG3qARR2etG3FBqEeFE", + "All \0migh\0 \0 \0ty.\n\0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("qFFEEeEBqFCB", + "Al\0read\0y, \0 \0I've \0 \0seen \0en\0ough.\n\0"); + Play("FFEEeEBqFCB", + "Oh \0bo\0y, \0 \0was \0 \0that \0rough.\n\0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/appreciate.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/appreciate.CPP new file mode 100644 index 0000000..d3e2e79 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/appreciate.CPP @@ -0,0 +1,22 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + while (!ScanKey) { + Play("3etDGDqGeCGetAE2G3eEFsGBGBqEG", + "Thanks, \0 \0 \0God! \0 \0 \0You \0 \0are \0might\0y \0 \0good \0 \0to \0me.\n\0 \0"); + Play("etDGDqGeCGetAE2G3eEFsGBGBqEG", + "Thanks, \0 \0 \0God! \0 \0 \0You \0 \0are \0might\0y \0 \0good \0 \0to \0me.\n\0 \0"); + Play("EsBGBGeEC2G3AqF2G3sC2G3C2GqG", + " \0 \0 \0 \0 \0 \0 \0I \0won't \0tell.\n\0 \0 \0 \0 \0 \0 \0"); + Play("3EsBGBGeEC2G3AqF2G3sC2G3C2GqG", + " \0 \0 \0 \0 \0 \0 \0I \0won't \0tell.\n\0 \0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/awake.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/awake.CPP new file mode 100644 index 0000000..aef5327 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/awake.CPP @@ -0,0 +1,77 @@ +//8 has graphics + +#define R1 13 +#define R2 21 + +U0 DrawIt(CTask *,CDC *dc) +{ + static F64 é=0; + I64 x1=200,y1=20,x2=x1,y2=y1+R2; + F64 tt=tMBeat%16.0,è; + é+=1/(tt*tt+1); + dc->color=BLACK; + dc->pen_width=4; + GrCircle3(dc,x2,y2,0,R2+10); + for (è=é;è<é+2*ã;è+=ã/3) { + dc->color=BLACK; + dc->pen_width=2; + GrCircle3(dc,x2+R2*Cos(è),y2-R2*Sin(è),0,8); + dc->color=WHITE; + dc->pen_width=2; + GrCircle3(dc,x2+(R2+15)*Cos(è+ã/6),y2-(R2+15)*Sin(è+ã/6),0,3); + } + dc->color=BROWN; + GrFloodFill(dc,x2+R2*Cos(è),y2-R2*Sin(è)); + dc->color=DKGRAY; + GrFloodFill(dc,x2,y2); + dc->pen_width=6; + dc->color=RED; + GrCircle3(dc,x1,y1,0,R1-6); + dc->color=DKGRAY; + GrCircle3(dc,x1,y1,0,R1-2); + dc->color=LTGRAY; + GrRect(dc,x1-2,y1-R2-1,4,10); + GrCircle3(dc,x1,y1,0,R1); + dc->color=RED; + GrFloodFill(dc,x1,y1,TRUE); + dc->color=BLACK; + GrFloodFill(dc,x1,y1); +} + + +U0 Song() +{ + CTask *task; + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->draw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + task=PopUpViewStr( + "$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); + while (!ScanKey) { + "$$FG,GREEN$$Jesus talking...$$FG$$\n"; + Play("W13eBC!qB2sG3D2G3DetC!!GFsCBCB!etCGBeB!!GsBCB!C", + "Stay \0a\0wake.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("eBC!qB2sG3D2G3DetC!!GFsCBCB!etCGBeB!!GsBCB!C", + "Stay \0a\0wake.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("qD!sD!BD!BetA2G3GqB2G3sAD!ADqD!etGF!D", + " \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0am \0a \0dead \0 \0man.\n\0"); + Play("qD!sD!BD!BetA2G3GqB2G3sAD!ADqD!etGF!D", + " \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0am \0a \0dead \0 \0man.\n\0"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/battlehymnsolo.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/battlehymnsolo.CPP new file mode 100644 index 0000000000000000000000000000000000000000..4e9cba6b703cb6cf31c3f1368493c209f6aa5524 GIT binary patch literal 12886 zcmdPbH&@6=ELKP_N-W68OfKf);^I;X4$x6j(lJy4ao{-AKp{9kFI_{EtC~we!L3-= zt|YNIJ3cipB|bUHRxLO$B_y#p+chu6*~ywqLBY4QI5RmowWK67FTFUZxCA7Y3lfVj zNzEp1y1I(viIZtgna9-bktDk?E~Fc_YgS)!1ZU!+iy zk*biIm!hYqr)15=>6cpWlbM&QVXA4(#Ti_Xn4DUyVQ3EG1eBHp7Zhcdq-v;mI_W6c z7}|lt11yu1SgE08oT}$u><%K_QuSPm-Az*UoQqvROji)$Qs@j4a8d&4fZAfs#TfwB zo2utn>N%%kH=|Gkm|EiM>R#wv?BeX=?B?v| zT>EPqH#IuO;gbPp&PuoXMt zgaVd?v)~Mxy9bgih%SFIqbPs7s z8KRn&?jbQLgG)$Sx`(u+3{g!>_drrHJjq}(up}ayy9bgiM$1F=f(%r@gCY!)EQV}( zi0&<_@j>B(nS$XWSdubWj%xO!8^nOEM*&aVL#DsXPAkBGtw#Y*+*rC65ILHcKe!SK zDDPpBqq%$FNd}XFB@vDGPmz)pmPAB{@Bt?jH~}3I0=Wt`4Alon*SdubW z5qdF3HU2Ou52+R&=mwEl9-z7yv^+#F0a5v*;e#3;=)BSJK@SmB{%CnfpghDcO?TPR_`)CLgD!kfv)h34M$1F| SQ7{@lqv3-;1n|o;FaQ9kJznGh literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/bedewed.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/bedewed.CPP new file mode 100644 index 0000000000000000000000000000000000000000..6f2fb23e972bb7afd91994f5c413817a15ad42e7 GIT binary patch literal 2044 zcmdPbw@}DPELKP_N-W68OfKe92@cRvvN5z%(lJ!wLIR-%3c>k#=^C0`)m#b+&LN4# z*$P@EiN)F0TnY+q#kzJNc6@4HN_=vXty*wi3P^=(UW&65NI`CCab|LSNosCEzO9j- zDM+ZKs8RuB6iA1JL0D#Ld2mUQ2A6_@f`XEYkGGCeKt^UxW0k0!`mkiFrFnI#$^gTW#ohOS+CW?p|0TH!Dm{^iuplxUbQUr3COKMSOS!zmHVoq^rK}upt zD#DdYDk|aO+8#QFDk@4K<>eWfIjIU7iowZ=dETj&nhMoioB=tBl^ROMsjlvYj?Sqi z&Tj6hu5N|ysU_}iu7!?DI$WHbN!i;DGP@?s2>G_7HF(Z{ONlHh`(%#u_M6;CI4>H|4KNkzrkSI0od92_W6 z|EIdR7P>mRx;cY_z|jTb?SP`xk{E-MN`)AM@{ClF&%pjq1qmc4mLz9DxC$`_IiN%U z_9r|fkUdNr!G}C7d8x(4dYUnLAp60AsGv~GrJzu&01gyzws8gp zk7G^_DAfh$rDzyvT65KMae=bCH5UUD0|Nsi0|cC8W&rb71mJc&LSwlU#yT>>h?%fP@Ovh>L3Jt{rXx7k@37#Nfp7#IXVdKuV3T0rK5 zggk{@J!iCZ3b_T&Xz>(c=Yy&gV_;z5eslAQ5EDBm0|SE&0|Ns{N@a2`8#@C z+gxLIkg<9U3=Ex0NXNt>NQzLtCUmZ|3? z5lyYz+t%LRv-a+`+}mIzy)E~4Tkh>?s-By2Z{L|@e}3|Em_;g?la@f(u9H+wdQ4iP za(i3u-EF+Lw^gcDPEzrlsC0Pew(Q*?XMl}@7ziU1nHh38g(iwPPg=4!_jB5IGtW<7 zGTA*D7#KkDDhmoojlfAFlT=R5U$TAO?A>{uQzk@PpI?_dS;@JLiM<>eC!plpxuiwK z^Y%B5t|cxPX)mLHr5LB@lyClfdkx-u{@sDaY8 z=Oi0Vw=N+ykY~-9xWGXVifK?#r_4C}nFky>pfn3gYd({1g5whuIiM_%vgiyOI4OW4 zREB|pfk#+vc5JoZA`KC6wgDvtkb9L>-EQqFg(P50XckoQoTvg$SfG>&Qk1thH<|%# cya)pWgET0II=M2kvokO-*g`Xxil-0*0Jt|H7ytkO literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/blinded.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/blinded.CPP new file mode 100644 index 0000000..e9bb360 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/blinded.CPP @@ -0,0 +1,51 @@ +//7 has words + +F64 t0=tMBeat; + +U0 DrawIt(CTask *task,CDC *dc) +{ + static I64 i=0; + F64 dt=tMBeat-t0; + if (dt>16.0 && i++&1) { + dc->color=WHITE; + GrRect(dc,0,0,task->win_pixel_width,task->win_pixel_height); + } +} + +U0 Song() +{ + CTask *task; + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->task_end_cb=&SndTaskEndCB; + + task=PopUpViewStr( + "$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); + music_tempo=2.5; + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + try { + while (!ScanKey) { + t0=tMBeat; + Play("3qEeACA2G3qCEC2G3E", + "Now... \0 \0 \0 \0 \0I \0see \0the \0light.\n\0 \0"); + Play("EeACA2G3qCEC2G3E", + "Now... \0 \0 \0 \0 \0I \0see \0the \0light.\n\0 \0"); + Play("GCGBEeDFCAqD", + "It's \0 \0quite \0 \0bright.\n\0 \0 \0 \0 \0 \0"); + Play("GCGBEeDFCAqD", + "It's \0 \0quite \0 \0bright.\n\0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/born.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/born.CPP new file mode 100644 index 0000000..934c46e --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/born.CPP @@ -0,0 +1,54 @@ +//9 has graphics + +F64 t0; +#define HORIZON_Y 50 +#define LEFT_EDGE 200 + +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 i; + F64 dt=tMBeat-t0,d=Limit(0.1*dt,0,2),d2; + + dc->color=ROPF_PROBABILITY_DITHER+LTCYAN<<16+CYAN; + for (i=HORIZON_Y;i>=0;i--) { + d2=ToF64(HORIZON_Y-i)/HORIZON_Y; + dc->dither_probability=1<<16*Limit((4.0-d2)/4.0*d*d-0.15,0,1.0); + GrLine(dc,LEFT_EDGE,i,task->win_pixel_width-1,i); + } + + d=(task->win_pixel_width-LEFT_EDGE)/2+LEFT_EDGE; + dc->color=YELLOW; + GrCircle(dc,d,HORIZON_Y+50-dt,40); + GrFloodFill(dc,d,HORIZON_Y+15-dt,TRUE); + + dc->color=GREEN; + GrRect(dc,200,HORIZON_Y,task->win_pixel_width-200,task->win_pixel_height-HORIZON_Y); +} + +U0 Song() +{ + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->draw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + + MusicSettingsRst; + music_tempo= 2.500; + music_stacatto_factor= 0.900; + try { + while (!ScanKey) { + t0=tMBeat; + Play("3qB!eB2G!3qA!!eF!!AsF!AFA!!qC2sG!3A!2G3ARBRB", + "New \0day \0is \0born.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("qB!eB2G!3qA!!eF!!AsF!AFA!!qC2sG!3A!2G3ARBRB", + "Though \0it's \0the \0mourn',\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("!eDDR!!CqG!2eGR3qE!!etEA!!FqCsDGDG", + "cheer-\0up \0 \0the \0heart\n\0 \0 \0 \0 \0 \0 \0 \0 \0as \0 \0you \0"); + Play("!eDDR!!CqG!2eGR3qE!!etEA!!FqCsDGDG", + "hitch-\0up \0 \0the \0cart.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/childish.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/childish.CPP new file mode 100644 index 0000000..07f418c --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/childish.CPP @@ -0,0 +1,22 @@ +//8 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13qEsCDCDqCDeEGsEBEBeCBsDADA", + "Be \0like \0 \0a \0 \0child \0 \0 \0 \0some \0 \0re\0 \0spect.\n\0 \0 \0 \0 \0 \0"); + Play("qEsCDCDqCDeEGsEBEBeCBsDADA", + "Ma\0tur\0 \0i\0 \0ty \0 \0 \0 \0don't \0 \0ne\0 \0glect.\n\0 \0 \0 \0 \0 \0"); + Play("eBDqF2sG3A2G3AqAAAetDAAsDBDB"); + Play("eBDqF2sG3A2G3AqAAAetDAAsDBDB"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/compassions.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/compassions.CPP new file mode 100644 index 0000000..681af72 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/compassions.CPP @@ -0,0 +1,24 @@ +//8 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13qBAeEE!qAeA!EDB!2qG3F", + "$$FG,RED$$You \0need \0help!\n\0 \0 \0 \0Po\0-o\0-o\0r \0dear.\n\0"); + Play("BAeEE!qAeA!EDB!2qG3F", + "You \0need \0help!\n\0 \0 \0 \0Po\0-o\0-o\0r \0dear.\n$$FG$$\0"); + Play("!4eFG!!qDetF!E!D!eD!EetADEC3G4GqD3G", + "Pat\0ron\0ize? \0No, \0 \0thank \0you!\n\0 \0Too \0 \0man\0y \0strings \0a\0ttach\0ed.\n\0"); + Play("!4eFG!!qDetF!E!D!eD!EetADEC3G4GqD3G", + "Pat\0ron\0ize? \0No, \0 \0thank \0you!\n\0 \0Too \0 \0man\0y \0strings \0a\0ttach\0ed.\n\0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/completed.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/completed.CPP new file mode 100644 index 0000000000000000000000000000000000000000..450f5347880003a8c244f327b7793ec95df88ba7 GIT binary patch literal 924 zcmdPbH&@6=ELKP_N-W68OfKf);^I;X4$x7uF|*?u%anD4UJMu+!Ym#otzaF3*A#)oC=+d+>MLf6&>9jQ(fJP-4)&4-Ia8>I60L( zOB7-ZGK&>r3>0Dv(lYZhi!)MF^kVYBe26GPQc2UAi_`GU}9ikU}S)RAO;37 vpNTtask_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 3.966; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13qABeCCqABAAR", + "What \0makes \0You \0 \0 \0think \0You're \0God?\n\0 \0"); + Play("ABeCCqABAAR", + "What \0makes \0You \0 \0 \0think \0You're \0God?\n\0 \0"); + Play("DeCCCCqCDCCR", + "Do \0You \0 \0think \0 \0 \0I'll \0app\0laud?\n\0 \0"); + Play("ABeCCqABAAR", + "What \0makes \0You \0 \0 \0think \0You're \0God?\n\0 \0"); + Play("GD!G!!eGA2G3FqF!!eDRqB", + "$$FG,RED$$Be\0-e-\0cause \0 \0 \0 \0I \0 \0a\0 \0m.\n\0"); + Play("GD!G!!eGA2G3FqF!!eDRqB", + "Are \0 \0you \0 \0 \0 \0a \0 \0fan?\n$$FG$$\0 \0 \0"); + "$$FG,GREEN$$(If God talks, how can you be sure it's not Him?\n" + "You can't, so harden not your heart.)\n$$FG$$"; + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/depending.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/depending.CPP new file mode 100644 index 0000000..3443335 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/depending.CPP @@ -0,0 +1,32 @@ +//7 has words +U0 Song() +{ + CTask *task; + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + task=PopUpViewStr( + "$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); + while (!ScanKey) { + Play("3etGREqDDBRGCB", + "It \0 \0de\0pends \0 \0on \0 \0the \0wea\0ther.\n\0"); + Play("etGREqDDBRGCB", + "If \0 \0we \0reach \0 \0the \0 \0end \0ev\0er.\n\0"); + Play("2sG3E2G3EqGsGBGBqDsFCFCqBRsCBCB", + "Hand \0 \0of \0 \0God, \0 \0just \0 \0might, \0 \0in\0 \0ter\0 \0cedes.\n\0 \0 \0 \0 \0 \0"); + Play("2G3E2G3EqGsGBGBqDsFCFCqBRsCBCB", + "If \0 \0it's \0 \0not \0 \0deemed \0 \0right, \0 \0won't \0 \0suc\0 \0ceed.\n\0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/despairing.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/despairing.CPP new file mode 100644 index 0000000..f2bd6cd --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/despairing.CPP @@ -0,0 +1,24 @@ +//8 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("M9/8"); + Play("W13hDeFhDeFhDC"); + Play("FeDhFeDhFE"); + Play("M4/4"); + Play("qD!!2G3AeBF!FE2qG!!3D!!A", + " \0 \0 \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"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/determination.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/determination.CPP new file mode 100644 index 0000000..e029b84 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/determination.CPP @@ -0,0 +1,20 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + while (!ScanKey) { + Play("3sEAEAeFFsA2G3A2G3FGFGqCCBA", + "All \0 \0 \0 \0hell \0 \0breaks \0 \0 \0 \0loose.\n\0 \0 \0 \0I \0will \0get \0through.\n\0"); + Play("sEAEAeFFsA2G3A2G3FGFGqCCBA", + "All \0 \0 \0 \0hell \0 \0breaks \0 \0 \0 \0loose.\n\0 \0 \0 \0I \0will \0get \0through.\n\0"); + Play("ACeCCsBBBBqEsCCCCqAE"); + Play("ACeCCsBBBBqEsCCCCqAE"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/dialogue.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/dialogue.CPP new file mode 100644 index 0000000000000000000000000000000000000000..13af13e0c0f961539dfb18f2a961e475bf737e20 GIT binary patch literal 3382 zcmdPbw^YbTELKP_N-W68OfKf);^I;X4$x7uF|B3F>mKVH+1Mt=SK8PbYdzLC(gfS73v~~w;U*>s!z&Sn zL+yd8g*hB5if+4w_G5h`5*)y#ppcTRYnPUjm|k3C>*DMd9}?u~7wqOAF)>f zp?gtKeo2IDVW|d4X%Q$u!9fESk3<%)1dD@IRoEIEnSwNfIF+`>V77B`K~ZK&YCukY ziLpjXvW@{5s(3oVV_egktCkBC!@>D^=^Bs-4Nfg7$;?YH4k#_ouvXC54^B;0Q1S8B zQ9_nb(oypDvqBM30VRfFUAvT`#Paye5?eJ$ssTC5tytHtB(XR2Ps!DuraED#RE#7p2A+D8v{f#u$|37b(OTcr&57$|94b3u*6ZkSVQPG)Ku$Uv|m3NZ$G`6W6EF$U$S>O~;oy!;Y~Ejjsl zsd{K;7CNUoIf4v!G;(*#aD}+fJwFAcKd~gnAUPuyfdwnulLYpRox zyK$jov8$20qN1@Yh~t`C;^gL9=;8)qztask_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("M3/4"); + Play("W13eECqAAeECqAA", + "I \0hate \0you.\n\0 \0I \0hate \0you.\n\0 \0"); + Play("eDCqAAeECqAR", + " \0 \0 \0 \0I \0hate \0you.\n\0 \0"); + Play("M6/8"); + Play("etAB!GqCsGEGE!!etGBDqCsCD!CD", + "$$FG,RED$$Don't \0 \0 \0smile.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("etAB!GqCsGEGE!!etGBDqCsCD!CD", + "Don't \0 \0 \0smile.$$FG$$\n\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/doing.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/doing.CPP new file mode 100644 index 0000000000000000000000000000000000000000..af7c86cdb4d4b12456a084cbcffaf519c44fae26 GIT binary patch literal 2589 zcmdPbw^YbTELKP_N-W68OfI(OLIRu$3JNO00Xj-HhIUFihAJ>AH!~B35(C>3U#HZ> z5^Jtd0|l3&#B$FP4d;-=;%o&i9cLG31+A21O|EJ#1qG1mloF_F-4X+9E(L{@WL>+o zoW%6v8e114CN55b<{~%w-5Kn(UkOCKH$DEw}WS7)}k_@NPG>w#GO^`51Uxlr) z5!{eUTO)IrM3t?3P<&LpqmK_r#Jwmeza+x7uv7!2sYu5_&(Op`>oM3Euv`?foRO)4 z)?=;U%sh?9S}7%(2vw0Ns*GVKI0qLLWtOA{GDansdOH3}wFS1oI(6cl!0_iF#s#E|)Xn96v zPO5^2VsLU|o_A`crb0CrCsK0YR8moKbJuYXa&`4nQ3=UcaL-TC)6)Y9s;I=|DOq!I z2IM4GYAA&p8W*}dITpLRD7v~R7CO5-DJnWE>2Ps!D!C=b7?fnB7U?L&7%0RTlxHNC zKv)nmGQU(I#vmy*HBTYNASFM>ATuxBJ|-{5KuHsBIu4V=6HAgaVhnUMOB59#hWW#6 zfpAMQQY+PSa=_**#26Hpf=$;$Gd|G)hI|DPMm2B`wEK{QMpM1wF${MG;e|3MhUK841HsR40%fP?@5{L2mp<*CDSRASc#0RBhkXvBx1%)n%4-yB- zgZQA}0*Qh6AU4Qu7#|v%AR&-60|Nty33Cn9Auui|;6M%lxyOKk0mKD`A4mwQ8SHMb z9}FNl4CHoXK8Ov{15yuiBgh@Fumz<8kQj^)qG4h%^)N9IAI1iy4j3O44xsn}@j*05 z4ix_|K8OvA3lI(BgW?Ay528VQPzb>IAT}tzKzxv2K7xAgZu{) z2e}8N4kQNhH;fNrgWLq-gUklG7v_HuAEX|n4+KiGkFCne*$0wm004*{_2mEn literal 0 HcmV?d00001 diff --git a/LT/Apps/MusicOrgan/Examples/downfall.CPZ b/SparrowOS/Accts/TS/TAD/MusicOrgan/downfall.CPP similarity index 66% rename from LT/Apps/MusicOrgan/Examples/downfall.CPZ rename to SparrowOS/Accts/TS/TAD/MusicOrgan/downfall.CPP index 530c7e6..704e5c4 100644 --- a/LT/Apps/MusicOrgan/Examples/downfall.CPZ +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/downfall.CPP @@ -1,22 +1,16 @@ -//has words,star,star -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - while (TRUE) { - Play("et2G32G3Gq2G3qCq2G3sFAFAq2G3etGDAqA", - "Don't \0 \0need \0 \0help. \0 \0Got \0 \0it \0 \0all \0figured \0 \0 \0out.\r\n\0"); - Play("et2G32G3Gq2G3qCq2G3sFAFAq2G3etGDAqA", - "Don't \0 \0need \0 \0help. \0 \0Got \0 \0it \0 \0all \0figured \0 \0 \0out.\r\n\0"); - Play("etCCCq2G3qDeDFetCF2G3qBeGFsAGAG"); - Play("etCCCq2G3qDeDFetCF2G3qBeGFsAGAG"); - } -} - -Song; +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + while (TRUE) { + Play("et2G32G3Gq2G3qCq2G3sFAFAq2G3etGDAqA", + "Don't \0 \0need \0 \0help. \0 \0Got \0 \0it \0 \0all \0figured \0 \0 \0out.\n\0"); + Play("et2G32G3Gq2G3qCq2G3sFAFAq2G3etGDAqA", + "Don't \0 \0need \0 \0help. \0 \0Got \0 \0it \0 \0all \0figured \0 \0 \0out.\n\0"); + Play("etCCCq2G3qDeDFetCF2G3qBeGFsAGAG"); + Play("etCCCq2G3qDeDFetCF2G3qBeGFsAGAG"); + } +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/dream.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/dream.CPP new file mode 100644 index 0000000..cebd934 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/dream.CPP @@ -0,0 +1,24 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13qA!!sDGD!!GqAsCA!CAeCBsFDF!D!!etCGAsAD!A!!D", + " \0I\0mag\0 \0ine.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("qA!!sDGD!!GqAsCA!CAeCBsFDF!D!!etCGAsAD!A!!D", + " \0 \0Fa\0 \0thom.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + 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"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/efforts.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/efforts.CPP new file mode 100644 index 0000000..84248d0 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/efforts.CPP @@ -0,0 +1,20 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + while (!ScanKey) { + Play("2qG3sDADAeF2G3etFDCBA2G3qAetGFC2eG3E", + " \0Let's \0 \0try. \0 \0 \0 \0O\0oh\0 \0h. \0 \0 \0 \0Didn't \0 \0 \0work.\n\0 \0"); + Play("2qG3sDADAeF2G3etFDCBA2G3qAetGFC2eG3E", + " \0Let's \0 \0try. \0 \0 \0 \0O\0oh\0 \0h. \0 \0 \0 \0Didn't \0 \0 \0work.\n\0 \0"); + Play("sA2G3A2G3eBCsE2G3E2G3qGsFEFEDBDBeAG2etG3B2G"); + Play("3sA2G3A2G3eBCsE2G3E2G3qGsFEFEDBDBeAG2etG3B2G"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/elijah.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/elijah.CPP new file mode 100644 index 0000000000000000000000000000000000000000..fb3e58b4507e92eb3f700d72b79b617b64853a62 GIT binary patch literal 17661 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 + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + "$$FG,GREEN$$To God...$$FG$$\n"; + Play("M5/4"); + Play("W13eEqCeEFEDCqBeEqCeEFEDCqB", + "Fa\0ther, \0for\0give \0them \0if \0you \0must.\n\0I'd \0like \0to \0see \0them \0turn \0to \0dust.\n\0"); + Play("M4/4"); + Play("sGBGBetAF!2G3eEF!sEGEGqDsB!!D!BDGFGF2etG3GB"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/epicurus.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/epicurus.CPP new file mode 100644 index 0000000..8698e56 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/epicurus.CPP @@ -0,0 +1,42 @@ +//7 has words +U0 Song() +{ + CTask *task; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.500; + music_stacatto_factor= 0.900; + try { + task=PopUpViewStr( + "$$WW+H,1$$You get what you pray for. " + "Most people are fools like King Midas. People have laughable notions of Heaven. " + "You'd be surprised -- I can't imagine things being much better than Earth " + "because we need a sense of purpose. " + "Don't ask for stuff, let God pick, but He might get annoyed at that. " + "God wants us to be happy. He tries hard. If you do get what you pray for, you damn " + "well better be happy, lil' sonfabitch!\n\n" + "$LK,"Ecclesiastes,3:13","BF:Ecclesiastes,3:13"$\n" + "$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); + while (!ScanKey) { + Play("W13qBeCDqCAetAACeECsF2G3F2GqG", + "I'm \0on \0a \0mis\0sion \0from \0 \0 \0my \0 \0God.\n\0 \0 \0 \0 \0"); + Play("3BeCDqCAetAACeECsF2G3F2GqG", + "I'm \0on \0a \0mis\0sion \0from \0 \0 \0my \0 \0God.\n\0 \0 \0 \0 \0"); + Play("3etEDDDGABG2GeG3E2G3GqF2G3etGCD", + "He \0 \0 \0told \0 \0 \0me \0 \0 \0 \0to \0 \0be \0hap\0py.\n\0 \0 \0 \0"); + Play("EDDDGABG2GeG3E2G3GqF2G3etGCD", + "He \0 \0 \0said \0 \0 \0to \0 \0 \0 \0make \0 \0it \0snap\0py.\n\0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/exalt.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/exalt.CPP new file mode 100644 index 0000000..10c4f7c --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/exalt.CPP @@ -0,0 +1,39 @@ +//9 has graphics + + +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 i,cx=0.85*task->win_pixel_width,cy=task->win_pixel_height+10; + dc->pen_width=5; + for (i=2;i<=7;i++) { + dc->color=gr_rainbow_10[9-i]; + GrCircle3(dc,cx,cy,0,(i+5)*5); + } +} + +U0 Song() +{ + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->draw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + + music_tempo=2.5; + try { + while (!ScanKey) { + DocClear; + "$$BG,LTCYAN$$$$FG,BLACK$$"; + Play("3eEDsBABA2qG3etGECFDBECFCBReBE", + "Come \0and \0sing \0 \0a\0 \0long. \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0\n\0 \0 \0 \0"); + Play("EDsBABA2qG3etGECFDBECFCBReBE", + "Of\0fer \0praise \0 \0to \0 \0God. \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0\n\0 \0 \0 \0"); + Play("qBeDF2qG3eFRqBetFFGeACDF", + "Up \0in \0His \0hea\0ven \0 \0He \0is \0 \0 \0glor\0i\0ous.\n\0 \0"); + Play("qBeDF2qG3eFRqBetFFGeACDF", + "Break \0in\0to \0song. \0 \0 \0Strike-\0up \0 \0 \0the \0chor\0us.\n\0 \0"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/exiled.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/exiled.CPP new file mode 100644 index 0000000..9f9e266 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/exiled.CPP @@ -0,0 +1,62 @@ +//8 has graphics + +U0 DrawIt(CTask *,CDC *dc) +{ + I64 i; + F64 dt=tMBeat%8.0,z,w,x1,y1,z1,x2,y2,z2; + Bool first=TRUE; + DCAllocDepthBuf(dc); + dc->flags|=DCF_TRANSFORMATION; + dc->x=30*dt+20.0*Sin(dt)+25; + dc->y=10*dt-15; + dc->z=GR_Z_ALL; + GrRotXEqu(dc->r,0.75*dt); + GrRotYEqu(dc->r,0.45*dt); + GrRotZEqu(dc->r,0.50*dt); + GrScaleMatEqu(dc->r,0.5); + for (i=-50;i<40;i+=2) { + if (i&2) + dc->color=LTGRAY; + else + dc->color=DKGRAY; + z=10*Cos(i/10.0*ã/8.0)*Cos(dt); + w=Tri(100+i,200); + x1=i-3;y1=0;z1=z; + if (-30<=i<=40) { + GrLine3(dc,i,-10*w,z,i-3,0,z); + GrLine3(dc,i,+10*w,z,i-3,0,z); + } + if (!first) { + dc->color=DKGRAY; + GrLine3(dc,x1,y1,z1,x2,y2,z2); + } + x2=x1;y2=y1;z2=z1; + first=FALSE; + } +} + +U0 Song() +{ + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->draw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + "$$BG+H,LTCYAN$$"; + while (!ScanKey) { + Play("W13qE!AA!etF2G3G!qDF!!etFE!D2eG!3G", + "A\0dam... \0 \0no \0 \0 \0long\0er \0sees \0Your \0face.\n\0 \0 \0"); + Play("qE!AA!etF2G3G!qDF!!etFE!D2eG!3G", + "Oh! \0 \0 \0What \0 \0a \0wretch\0ed \0bar\0ren \0waste!\n\0 \0 \0"); + Play("qACFeB!CB2GqG3E!D", + " \0 \0 \0 \0 \0 \0 \0 \0Ex\0iled.\n\0"); + Play("ACFeB!CB2GqG3E!D"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/expedition.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/expedition.CPP new file mode 100644 index 0000000000000000000000000000000000000000..35e1e6b8efb08990cb6b942dc3a38878c3d04bbb GIT binary patch literal 1558 zcmdPbw@}DPELKP_N-W68OfKf);^I}wd~%YlT5w)UNMdoeYhH@8lQoxuLT+hsW^#NtFRY5~BI5{!TJGD|%p_+>`ASba>L&-R`#M#Z+sLE zb}>T2N}AR%4J4>9EeS3t$}CCMQ1NuqQL-s6Ni4Dhc@<=sl8TD6ua1F^g^G$2+-#8L zu8yvbE^f|BI$WHbN(wOs{%L6nF$M}T1||6rx-vg6#vmoNNFl}mWTIY7UW@^f`;6R; z(T#9P%*|7TX!a~oFNUznQj1~?DivZ3(h`f{W+*7saw#a(DkLYCBxiu4N5L7ya?HsA zg=TPGiiUxvHCHVc7bsq=xfqxj7#J8CAV8Oe0nBG&6od#cF!V7nFxW6KFo=pWFfeE{ zFfdp%Ffed{^e|!pDB^qw1%pBy;T({E5j-lnlMjbExWy3~;Nimu1yI*9Fff1x7{Mfn zfUw}|89{tTxIswbUtask_end_cb=&SndTaskEndCB; + task=PopUpViewStr( + "$LK-A,"BF:Luke,7:42"$\n" + "\n" + "Prodigal Son\n" + "$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); + music_tempo=2.5; + try { + "$$WW+H,1$$"; + while (!ScanKey) { + Play("3qGGsEAEAqAsF2G3F2G3qCeEFqD", + "Life, \0life, \0isn't \0 \0 \0 \0fair. \0Isn't \0 \0 \0 \0fair.\n\0 \0 \0 \0"); + Play("GGsEAEAqAsF2G3F2G3qCeEFqD", + "Waaa, \0waaa, \0isn't \0 \0 \0 \0fair. \0Isn't \0 \0 \0 \0fair.\n\0 \0 \0 \0"); + Play("eFCqEBDBE2eG3EsFEFE", + " \0 \0I \0 \0ne\0ver \0sin.\n\0 \0 \0 \0 \0 \0 \0"); + Play("eFCqEBDBE2eG3EsFEFE", + " \0 \0I \0 \0ne\0ver \0win.\n\0 \0 \0 \0 \0 \0 \0"); + "$$FG,GREEN$$(A warning on presumption. 'Who loves more man -- forgiven big debt or little?' See prodigal son.)$$FG$$\n"; + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/feigned.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/feigned.CPP new file mode 100644 index 0000000..0be6455 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/feigned.CPP @@ -0,0 +1,20 @@ +//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/Accts/TS/TAD/MusicOrgan/finger.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/finger.CPP new file mode 100644 index 0000000000000000000000000000000000000000..d4a7d29dc12e9b250cff62c01d9afdbab3bbd443 GIT binary patch literal 3968 zcmdPbw@}DPELKP_N-W68OfKdE1C`(a9VHt>J0%@M6_5agZ)B&WV+7(m<>%)pR3#R~ z=jZ99W#*-)7RBf1S#xoP8Ys9FC6;@ZXgG%?7H2DH={UPMD`=%8YjRa{DJW#7DQLiz zYjPY;6(I=R;Mw&vcNB9D2XD!&b!TEXV8W4X5r)NFhC6>o$me{I6Viy!pAmNh4;_Ud;yp;Il zBwMxMycAI2y5^-gJAoABmKJ9w$Csq$7UbI+>6wCr5DtX~EY!UU3MECA3ZN8Ho{^c8 zs-U45oSc~Fom#1>P|d{|kds)cp=4a>TI}rP>{RF&6qM>7ROo0_>~8FCbWbgDH+C{|H!gN_adRnjG)i?hb}w{+c*Zd&2j+>AjLc$%7=z-H zqRg~Z0)BzGMc$MZBfUQj|Dp80r$gNa}F~}j&1quqa zTnY-c3dxBj$r+H`4q`dx9e= zE{t$2vJwB`ZbA_Saj+YMUGzT=)1m$a8Ha|kn}c0+(3y_anOFtEzQ!tpRgiq;XvU#& z!RA5NxLNF381!v%jYp@QODx}PTI}sq8gwOyp0&E@{fg}fG!e}&=U@jIp zEJ9$VAOhqDP`LnN!!XY51WA=(M=fJB0fhj8Jl;0%a33W-n-4?!Z8!_?zb z{vTEtf$W4RgpeRU7R&%DDq!MZm0$uUf=(kj9u!chTy(`C6)-o0KY)!x5Fmvxj1c|Lzy|@Ke2HW?R2U=*jtiI$h&WUs zlmaCOkRcGoARe-6xG0i2417qU2yx^r1Tq3@K1ek-^-#Akz~vz7A;QQG0*fPr`M`Xb zJ3(OrQp^VzhNmS^B0&;Hi2nx#8_X1h`_Y6E>KTwtK~m3vuoKC@sD{Jb38GPz!^}qy zHn=##g&@;m_F^c9s)q+7L@~%d5DQZntRB-8i1}EQgVbXa28)BNK*uO$Ba$RGJ3-P| X4F|a&Jpe$8LE=yvox-8~KLY~*Sj3p; literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/first.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/first.CPP new file mode 100644 index 0000000000000000000000000000000000000000..0934f6323d4b0db0c361a1f38c2d14359aeed0d8 GIT binary patch literal 1885 zcmdPbw@}DPELKP_N-W68OfKf)QV9;wQL@QMO)M(0Q_?Y1;X(qT1`5IXdFdLOT-96( z3eF*k#n}p4C5gq^)?5k-ZpFHGAa;CeUP^p&lC4^BUJ6KsYhH@86G%aBX>n$9d`W6< zLB6e#o+(JEq^ME>WE4oBZ9slOXhB$JYI$%;kp`E7f`WpQib{C6wug?Pii(Plx2~g( zl9QX2Z(>PFMryf^k&%_Lsgg=eUQC`6M72kLxk7GYUZp}oYJNdZsshLp3NcDP`DLjJ z?)fPS<(VZJ3W+&6V2Kh1sIJ`1ycC7RycC7v{L&n2Fe@)LGd&|IzepjmSfMyICru|t zNg=7UM4>z}CmW_Mu{^O-p(G4 z3$zW5K#D*Pb4e}AEK5xZOUx+_El5c$NkzD_JR>tFRY5~BI5{!TJGD|%p_+>`ASba> zL&><%E!EM;-MG*x)!nJkHMPXW8AQ3cDd})=D!FAA6_@BJ#2Dn{#~75QD#RFo;wZ)d z9CR@T3NZ$bK0XRD1}Z9U?m9uPE-EUZ_$&c&Ra8Lwz!4W?0E)U815o7Y#pHqYDa05k zXKG_6iWLr$UTDN`9Vti9(D) zc3yrtQeZ+9z)48hf`cn{U~E@VsO3^ns8vW#EJ@A)=Y3}o%P}VhlwO1LQZx)St+{Hs zxIm?qH5UUD0|Nsi0|az1F)%PQFfcGNaDaq(85kJEp;#M*dq6=4 zas$YGkbC497#KvL803Bs2B`s=&BOyz0g?r&0+|j92$&B+DnX`zd;>CF3L4lTpMY!z z*$N6QkUo%FkX{fUM1$l&z6G&Cp#ZWC6qq3UKr~1UWG{?{yNCs3639l7A7HvcDnTv) H`IP|xjYW26 literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/fishermen.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/fishermen.CPP new file mode 100644 index 0000000000000000000000000000000000000000..4f60a63f77e6c6c63553a29aa76a3fe32fd04ba7 GIT binary patch literal 2038 zcmdPbw@}DPELKP_N-W68OfKf);!+6?&{486v{TYCRN(@HPy>bF{JeAxO|EJ#1qJ7j z#NuoPt&+szY-=tB1-D{dI}kfQH7_MTImuQnI4=dH!Zk0&*$Jc|x3oAjIld${w;Y^U4c(&cB+o4l?g&p6J!I(1>uRAB^n?rz#<@qu3dR%UVKqzdPa#Y$lY)r zNDD$iPHGxL9>hVFF3B%|>rToqDap^(Hbzwe5w%5_Sdw3$ZD<5i1ag>5YEfocYD!pQ zPH|{KN@7VW%#~aU3gsD@IjIU7iowZ=dETj&nhMoioB=tBl^ROMg|5Z!uI{d>Zbt6L zPR@nSsV=UCPQ|W4u0cvVT%4RrDk^U7Dk?ttMJYN8F$SIrF$M}T28p>4IxRIdC&nN% zFI^$VAgi>v1SF*pV~~^yVwL8Bq+$$;3o?sRQ}kl;VhqAFOEMrjA*7O~HOwJ|+>w_G zGBdvjqOlxqP!W<7pbpGVO)XG}F-T7>i7_aFI4&3N1c-hJiEO<~YDtizTcL}4YKfb( zk-KrRle3d^p^FjxK~Ad7F9kU&FSP{hMTitG63IsV7WyV; zr$P*=%rAunD+yMVmIN0RWtOCBsCYWTGae|k{Zh+)GV@Y3Ou^~5mPOL?7qyfwjWnf@n0eMv%#0Z9lDGSJx(jbv=mN_vfWjHfaD`dn%)r0^Rt#c*tpG6uK+XUu1_cgS z7uZse2*~>^?$CH(@qk7c3&=pQzd#I7kgzyF!pq@3ih%KG~s|1 zgI#C`Guf7bfdT9<5Cg2;24*0L!3}b%B`h>R5y=M<{9 literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/fixing.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/fixing.CPP new file mode 100644 index 0000000..f3a19f0 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/fixing.CPP @@ -0,0 +1,20 @@ +//7 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.758; + try { + while (!ScanKey) { + Play("W13sDDeBCsAAeB2G3A2F3sCCeDsFFeEsFFEEeDE"); + Play("sDDeBCsAAeB2G3A2F3sCCeDsFFeEsFFEEeDE"); + Play("sGBGB2etG3EGqF!!ED2G3eBA!DG"); + Play("sGBGB2etG3EGqF!!ED2G3eBA!DG"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/flung.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/flung.CPP new file mode 100644 index 0000000..b7671ec --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/flung.CPP @@ -0,0 +1,20 @@ +//8 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.714; + try { + while (!ScanKey) { + Play("W13sBBBBEBDBeEBqDeBBEDEBqD"); + Play("sFEFEeFEDBqDeEFEBABqD"); + Play("eDGqEeBAABqF!eBD!qE!A"); + Play("eDGqEeBAABqF!eBD!qE!A"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/fog.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/fog.CPP new file mode 100644 index 0000000000000000000000000000000000000000..f7f0a988995bbc288a9a28f9b932b9bbfbce11df GIT binary patch literal 1572 zcmdPbH&@6=ELKP_N-W68OfKf);!+6?&{486v{TYCRN+DZ<&@O4%)C?uACLG51tT*9 zE+m0S1tSA4E;ln1g%ShX5?`m(#1d;Ru22I7m!iaS&k_yiki_C_1uY$C7iR^nlw?h= zYAyu@kn)rgsB+yB1D#51E(HbW;DVyelGK2l{1Ri0lw=){bs!>A$3REL(+Tb}O_1Wu zGzE>65<4RkO$CsN3JNL7x^~I=Ir&Alk*+>I{^1}+3JPiYMG6{~wz|d!)|ECOLfh6< zlS=^%+>3lN^HNc50@j$T%DyaB)>nI^hDCsEq`dOifsDJ{YSl2G4D6u>~v&2>n5?UZPyA|u& zl_VBt$EW6{#3v`&ss-nzfWpuL&-R`#L?NM*wxk5HMPXu-N?PrJ+;K$*vYZbDYYcX$=%t}T}g+FlT*o4 zA;zFQF(+Fg#y}y)ASqur#sGwKQeq5pDj|Z%WJyMTX?li2j6q38szQuGT7J4-OdeP( zvMPlb10_vsE~s0GcSw4E3B;J3%o4DnB{?8l6k-gLGx9T&p=^kfq*9RDl6;U`ib{(? z9QXVb!ma@YfU~o6p|f+Uv$L~Hp=)Z1s}nRZ6k-fq^7GU|W+}uNWaoiGBEKABAA~H= zNCe4(txd^CwGGM31S|>9NG$?+1{C<|U`uo$#zRO?^)irb9>{OWIi;zX)+i{{aw#a( zDkLYCBxiuLh%<=gn3DraO0e`6kY8X8$_SuLV9mwA#K6G7$N&K^7#YBPCWb%%|NsB_ z|Ns9V|NsBjWnf_V`~Uy{U;qFAXJKGqK&Cku7#MUI7#LtQNDqh)(x=A2z`(}9z#z%M zzyJ~#gIL1Nz`*eP|NsA-3=9m+P$eMaK}LfdgG__uL26+%NFB&&$TUbj$a-xC1_nL` z1_pBm1_qGzdJGHP?UnLFz%y0)+~QW@6-J zU|;|_ESrIW0c63q|NsAk9QNS<|NkIyVFm^UQ22x7^%)o#1fYB_1_lNV1_p-j|Ns97 S(VzeS{|^dx82uO;Zwvqq6~!e0 literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/forasmuch.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/forasmuch.CPP new file mode 100644 index 0000000000000000000000000000000000000000..0ef7eaaa44f328b8426cebfee056b7f8d1e47964 GIT binary patch literal 2276 zcmdPbH&@6=ELKP_N-W68OfKf);!+6?&{486v{TYCRN;bvPy>bF{JeAxO|EJ#1qHWa zUAvOR;_Ud;yp;IlBwMxMyp)i{;%wKv6lW)EE-nQH-_qjDuRGbdF+ zLoqlxG0!`-Qd6Oti!-3KB)Fg`vm{kR#nTDyWKC->PQTQ0pUk{e4KolYASba>L#Z$* z+)&XtwZuhH(a7E1UD4RtvCu`)HPubgUC~+5wa`ULhl`U_Ng>9-Ex$-1#vrj+A;uuL zG&uvtuFNl0h%rddEKAio3#$|(o zLM@kqLajn_Vo7oamx6+Vf-{Kan3DraJHdG=8U~uyT(w+Wpwwy2#lXbCz`)1=0ZeQR zV7{ml0|SE^0|NsW0|NsK0|Uc<5MY4;5a&OP!@>gQLJau-A4!~rg$0!dQi-gN2LfQ~ zAUqxr_y2#GIu;fds5lQu28|0>hb#_J2-gMX!puWe2Qm>!9S;i&LLIU=50WE5;&63n z#)0IJF$)VQ@IYaRW&pAx9F_^19Y7Kwnn_?T#5ja`ASZ$)Pzk6qRCSnP1GN>| zUXXzp3Sq_}n+H;eYAGlkf^!k7d6<5N8;5EhdaNLnVW>lKAx?FuHX|uRGY{1((4qkB z6IeO`b5LUi**FaIkZeXa4v#t%<1p314MZ^xw>nhgu&9F?h-w@Tbu36R3keDIZ~=*e may^=H*vtc2jOIGD^a3&rgyE?Z#DQRJ_JR$BNW)2pItBox(!*5% literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/freaks.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/freaks.CPP new file mode 100644 index 0000000..a5911af --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/freaks.CPP @@ -0,0 +1,24 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 1.930; + music_stacatto_factor= 0.604; + try { + while (!ScanKey) { + Play("W13sEqAsDeCqAsEqAsDeCqAsDeEqEsE", + "Jes\0us \0kind \0of \0freaks,\n\0Jes\0us \0kind \0of \0freaks,\n\0are \0dif\0ferent \0 \0"); + Play("eDqCsDeCqBsBeBqAetBED!qBeC!B", + "from \0 \0oth\0er\n\0 \0 \0peo\0ple.\n\0 \0 \0 \0 \0They \0don't \0"); + Play("2qGeG!3FsCDC!!DqFetB!ACBED!qBeC!B", + "care,\n\0for \0God \0 \0is \0their \0 \0joy!\n\0 \0 \0 \0 \0 \0 \0 \0They \0don't \0"); + Play("2qGeG!3FsCDC!!DqFetB!AC", + "care,\n\0for \0God \0 \0is \0their \0 \0joy!\n\0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/free.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/free.CPP new file mode 100644 index 0000000..0f6ed66 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/free.CPP @@ -0,0 +1,34 @@ +//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/furnishing.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/furnishing.CPP new file mode 100644 index 0000000000000000000000000000000000000000..c1be26ced7eaf694b33657456e8f4799a76bd58a GIT binary patch literal 5274 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 K2BkNUI0FF0!@-FF literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/good.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/good.CPP new file mode 100644 index 0000000000000000000000000000000000000000..d6e52475562e6fb1d253b78628dbd06adb6ccf3a GIT binary patch literal 1149 zcmdPbw@}DPELKP_N-W68OfKf);!+6?&{486v{TYCRDpAi?38qjRJgd@%uEzY3~Wn$ zol+A^thu;C4HR6863abHG@L^ci?bE9bevtB6|_>4HMy#}6cj+pQ%a!9bxRC%N=mG` z6cj=&6tpt)N>YnJoXj)@jg%4_Lo+=CO)dom1%;9lTLX|pYEE&g0!-EdNmfH6r9{`z zOjF-TQ`Hcr5~kHq53Ct%ysdL^K~ZK&swc>9PbawdbRZmv=X6R+G(m}wd~%YlT5w(pD7;2c% zjDdT8ilU-sOdeRL5;#;5_R-rq_hM&PXV+9`Blp4}W4BaSmqJ%JsPEtoMq_xSD#RFo zy^H2okeAT?Lo4%ZxfB#?6_OK6k~6@`-xI8FCS*P-`v*CI$uu zMg|BlW?%sGIY5GJ3=9k|3=9m+3=9n3P&yDwM?&dDC=J#H(gZRG!xUEr28O@?|Nn=X O5(3o~1ErIo@(ch-9vYhf literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/gutenberg.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/gutenberg.CPP new file mode 100644 index 0000000000000000000000000000000000000000..c310a2c91804da8ffe22cc0131cf580d72aef0c9 GIT binary patch literal 2093 zcmdPbw@}DPELKP_N-W68OfKdE0hQnY9VHt>J0%@M6$IbNPD#f|g^SD0%tWEYz_!HK zDK)Xgnu{ycK*6ObvD~vn!#O0eI9owW$JxbMK`SL$ldGCbK>?)vrA|r-RD*7bfi;(c zLS~wRMoNjDp^>ISN{OwZ5lHN%t%07AmRo5~PDoLvMoNi}i6%(cIk=!Gvm`YjC%+^p zza+{yNh2j$$I!$;+t@%WI5STpr9@N5#6ZVDN5#_#?rfcx=z5L8+RP1f3{Bx`Azsq7 z=Bnia`y)6%FI@xTY^YyK5{t7zjsVfN0r>@?1!0+~<-sLI8e9qr3JOXpKHfS?L8)b_ zIf*5i`FT1b}FUm~M zD6w@bM&iMo01?VbO+(0oIH=Mk`2}#@N%$Dzf_z&ABRx|CaMFN?7MCO@Czh1t z$EPJGm*f}ODj4WlLgbZHRKmlxJ#-9JRFpubloVAefD&4HMrKZ`f`(#na$=r$YNe(^ zH5VsRI^_(=NvzaRQZz1f3UW0nb~kobG;&uoc20G6Q!I2%byrk$EDkbq4^nhj(&6Id zR0_#RRfsWAh%qQE&CJP($pfFXf#;GMPM()OLicW5dM()NgL2eMAL9BAmPf>^3st{vPo?n!r5Mz**U!)LYkeHJL zQIi34S4Lt1*#8BU5Q&1+{1^iykD}PEh|ltZoK!s$0uy2#*d`?v6*qSs_aIkSKNS`C z(vsA?q|~Bxh0MIN)Vz|^6orzERE2_~%sfyEQz$4(EiP6_%u7+oO-xBuaLP=|NiEh> zPzcQ{$;<&M&C^j(;^I{DR4C8SOGzzK$jC2O$W6?v1QEI!`K3k03ZTHq&r4MRhfQW4 zNEgH)#h5&hTcGK$mPBY2qG13jUqEGxH5UUD0|Nsi z0|Xc`F@X7^+zbp1N(>APfB*mgfB!!mFfjc84^{~gVIauoV?a{R@Sg#d&+wlQBFz9Y z4tOOApMZP;;e(We0taS41JpAJK1@4IJvb~u27s&w*$&kXkq4;;yAEzY zs`~#h)i8O8TjAz`f(OKb*-vdgIMsks63F#Q4A4}>#=yY91x-aiK-Pm~K~9Cz5N|So N0tY05n}*0@k^mzdrda?0 literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/happy.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/happy.CPP new file mode 100644 index 0000000000000000000000000000000000000000..5bc464eb9e93c4af36586c85b3477b58480b5ed6 GIT binary patch literal 1676 zcmdPbw@}DPELKP_N-W68OfKf)Qcg)t%gjqv2oCj&kKi;iF+dTCmS{MKBo=2YXz4h+I4fwS zBx`b2b15i*%y?;Qpp#MpHAlC^z?w@z!PCq{p~BYCz(CJH%Q?STBc(*kNb9k_g`RFVR-9}W_8FLKMt&rfm7%*jF5<>u%U?5YX2D>F?&Bc;U7&`gs{K|w*` zrL9IviLRlUCdj2AQ=EefiZV-519I|9g7QnEjFUiSRcM3VplfWTQwe59>KN##csjwu zP3NViHCHVc7bxU{^YhX*AORJeT2hjkmtGuDTAX36psydCnyR4UMJnK`Kn8j8WmiFw|sm6}jt z1>|G`3MvJKfSkli4JG43r_>V1Ah$x-AR~9zN%*g>IBv?`l$S(kA0Z{U{=3-!CU|?WmfPh~tT9CyVn80F8jEqc7 zU=2|93?M!eBUqdfqya@7Yz!lkILKCrNg#tjPJ*jv1X}task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.758; + try { + while (!ScanKey) { + Play("W13qBeABqA2G3AB2hG"); + Play("3sCCCCqBsAAAA2qG3sCCCCqE2GR"); + Play("!!3sBDB!!DA2G!3A2G!!3etAA!EsGCGCetFFEqDFeE2G"); + Play("!!3sBDB!!DA2G!3A2G!!3etAA!EsGCGCetFFEqDFeE2G"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/hope.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/hope.CPP new file mode 100644 index 0000000000000000000000000000000000000000..c69d0c73115f51f3a4f2d9d9ed31af0734236a8a GIT binary patch literal 1668 zcmdPbw^YbTELKP_N-W68OfKdE15O1nPzesuQL-_#Q_?Y10gJntnJAPP*p~QOb8&?l zD7X|QmV1_HIEN$_XDevwIJ-D2Xr&};a#eFFD0rHgC}iqX=u}#BDJWFf8XIVv8fa-~ zl=$kF7-*^*Yl4I;ZA}b7v~zGlQD#YMKu&&%u|`TVNSBU*j*6!f+;*_?lw@7IIaBVkV(%Hb+7|-aui|=NVho=tgk%3C|e=MAitDIOW_WHSy;=Z zpirxjoLG{a0nSm*AeLiJ4k&WrNi)B|nyZ$J3zWdExfqxj7#J8CAV7nO0nBG&XMe=N zz;NmR|Nrm*|NpPztQDx?xx{1Mf8YDtb0;TF(olK%ds+SM+2+6h`%gCU{kF zA*8}FfrVX$fq_Amfq~&S*a6$`?m2sV5ASU@b_oUs22BPAhBsjG`^$1~zus2LF2%sW zAjiPKz{|kEux@+RY>?Ht%wUgQgLrIT{x2KPNi0Gj2mky3|35ne0|OJE2#EXV|Ns9? z{30*^|NjqSih!g+@gl+u^&}HJyAYJg!@$5`mOF2se;X&*bdaT>5EVJxA>`W0%r4Eq z!0`9~|NkI!Ro+hy+?IRyTIpQ|c5Y~R{{R2~|LqC7oDA%o3=9mHq4Dso{vHbxyU5%B e|Nn!0Aad^i|Nndp3=AS5--?4=$`59OT?PPk3I^!_ literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/image.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/image.CPP new file mode 100644 index 0000000..5215337 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/image.CPP @@ -0,0 +1,35 @@ +//7 has words +U0 Song() +{ + CTask *task; + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + task=PopUpViewStr( + "Asking God for stuff is like knocking on the door\n" + "of a neighbor in the middle of the night.\n" + "It's annoying! We're supposed to love God!\n" + "$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); + while (!ScanKey) { + Play("3qBBE2GG3FFC", + "We \0are \0in \0the \0image \0of \0God.\n\0 \0"); + Play("BBE2GG3FFC", + "Some \0people's \0prayer \0is \0ver\0y \0odd.\n\0 \0"); + Play("eGDqCB2G3eGEqEC2G", + "They \0don't \0love \0Him.\n\0 \0They \0love \0their \0neigh\0bor.\n\0"); + Play("3eGDqCB2G3eGEqEC2G", + "Pest\0er\0ing \0Him.\n\0 \0Ask\0ing \0for \0fav\0ors.\n\0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/inwardly.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/inwardly.CPP new file mode 100644 index 0000000..3e4c82c --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/inwardly.CPP @@ -0,0 +1,20 @@ +//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 new file mode 100644 index 0000000..31f97d6 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/keeping.CPP @@ -0,0 +1,22 @@ +//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/kept.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/kept.CPP new file mode 100644 index 0000000..5ec5bde --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/kept.CPP @@ -0,0 +1,33 @@ +//8 has words +U0 Song() +{ + CTask *task; + Fs->task_end_cb=&SndTaskEndCB; + try { + task=PopUpViewStr( + "$LK-A,"BF:Matthew,19: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); + "$$WW+H,1$$"; + while (!ScanKey) { + Play("3eGAetCCCFFDqAeAAFAAFqG", + "I \0 \0have \0 \0 \0kept \0 \0 \0 \0 \0 \0the \0 \0 \0com\0mands.\n\0"); + Play("eGAetCCCFFDqAeAAFAAFqG", + "I \0 \0have \0 \0 \0kept \0 \0 \0 \0 \0 \0the \0 \0 \0com\0mands.\n\0"); + Play("EeEGqEeEEqDBetCCGqC", + "What \0 \0 \0else \0 \0 \0must \0I \0do?\n\0 \0 \0 \0"); + Play("EeEGqEeEEqDBetCCGqC", + "What \0 \0 \0else \0 \0 \0must \0I \0do?\n\0 \0 \0 \0"); + "$$FG,GREEN$$(Christ said sell all and follow me.)\n$$FG$$"; + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/limit.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/limit.CPP new file mode 100644 index 0000000000000000000000000000000000000000..280eab205de95659504b7b654319889c942a0b28 GIT binary patch literal 1464 zcmdPbw^YbTELKP_N-W68OfKf)ax*hgC^4`t@pVc~EV1U|QV9;wQL-_#Q_?Y1;o=H4 zP;eL%Eitg>;!;pZN!GPX&d}wd~%YlT5w(pD9l{*QkW6Wxj2#Hk~1JDu~I`R+|ant$;Hv#%`Mf*vDn4P-Ppy*T}g+FlT*nhUm?aIFTX?~ z#-O0II71=EpfbO-NFl}`r!+ZRFD5U>Kmi*91uN8Wni}oy=A7#6Ug(xu;^^pB=;{V> zw0nMvLX1IXG2H12F$ReWF$TrS8M!!|jpShR%v3-Q2futpXwZPo#SC#Ap&gTl6y7DN zIXMb31|=D(3NZ#g`9&#EBatnFu)&r|B(ZSdw3)7n2vBs*qTe zs*sbJovM&tnp#|?2QpMeMG2G-Yq=B@Y88?bOOi9drIs^@ z<(QKLl7nUBfcye$Q27EXT&%emm>3us7#SeIoq++&X9A1-{r~?zGXn#|&;S4bvp{J! V1_lO@xFD1khKh?oX)&lc0|0rZp&kGL literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/mary.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/mary.CPP new file mode 100644 index 0000000..73c41d2 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/mary.CPP @@ -0,0 +1,59 @@ +//8 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.976; + music_stacatto_factor= 0.538; + try { + while (!ScanKey) { + Play("W13qEDCDeEEqEeDDqD"); + Play("EDCDeEEqEeDDqD"); + Play("eD!!AsFDF!DqFsFBFB2qG3etBB!BqFC"); + Play("eD!!AsFDF!DqFsFBFB2qG3etBB!BqFC"); + } + } catch + CatchAll; + Snd(0); +} + +Song; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/mightest.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/mightest.CPP new file mode 100644 index 0000000..414c288 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/mightest.CPP @@ -0,0 +1,52 @@ +//8 has graphics + +U0 DrawIt(CTask *task,CDC *dc) +{ + F64 x1,x2,y1,y2,x3,y3,radius,pedals,é,t=tMBeat, + cx=335,cy=task->win_pixel_height>>1; + Bool first=TRUE; + + radius=cy*(1.0+Sin(2*ã*t)); + pedals=8; + + dc->color=BLACK; + for (é=0;é<2*ã;é+=2*ã/100) { + P2R(&x2,&y2,radius*Abs(Sin(pedals/2*é))+5,é+t); + if (!first) + GrLine(dc,x1+cx,cy-y1,x2+cx,cy-y2); + else { + first=FALSE; + x3=x2; y3=y2; + } + x1=x2; y1=y2; + } + GrLine(dc,x1+cx,cy-y1,x3+cx,cy-y3); + + dc->color=(2*t)%16; + GrFloodFill(dc,cx,cy); +} + +U0 Song() +{ + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->draw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + + music_tempo=2.5; + try { + while (TRUE) { + Play("qBq2G3sGAGAetCBBqAq2G3sBBBBeFE", + "I \0am \0feeling \0 \0 \0 \0 \0 \0brave.\n\0"); + Play("qBq2G3sGAGAetCBBqAq2G3sBBBBeFE", + "I \0am \0feeling \0 \0 \0 \0 \0 \0brave.\n\0"); + Play("qCsDEDEq2G3qDqBqAqGq2G3", + "Test \0me \0 \0 \0 \0Lord. \0See \0if \0I'm \0wor\0thy.\n\0"); + Play("qCsDEDEq2G3qDqBqAqGq2G3", + "Test \0me \0 \0 \0 \0Lord. \0See \0if \0I'm \0wor\0thy.\n\0"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/mildly.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/mildly.CPP new file mode 100644 index 0000000000000000000000000000000000000000..a9a950758a319b412af62bc868af5daff9225ddf GIT binary patch literal 1905 zcmdPbH&@6=ELKP_N-W68OfKf);!+6?&{0y-F;w9~0H~M|vKUy_&CEoh#K5-1*C{oz z#F~pM)Ih(jj8rs18dGzM zQx!nwDkxOi2507J7->D$(kSs&HPkcEHPAEF)Hl>K0IS4iq^X{PR;7-C4#ZePJCL7o zD%M3+jpT@0u3E6agY)y!H6Y#$PAw_P%u6p0C@s#gR?ycEPEA!%@$uGCLY7d{QS$Y( zLJ?5`1yQlCT}n}6d3uxnn5vy(L! zmx2N`z(I;^1M&+(3&Ju}%Y#dbG{7OMprEAU5{8atNFUav4HFPHGxL9>hVFF3B%|>rToq zDap^(Hbzwe5w%5_Sdw3$ZD<5i1ag>5YEfocYD!pQPH|{KN@7VW!j-wD#hJs(P_PjDbRoK_Y}IF3B&-RfsVt1q(vN3i9(H zsv%qmS)7`v7n288r38)}kP{*H53KF(uFgj8#;GMvM()OL?(VKGPEM&#u28QBrN$WK zBvvTI7^J1S}knUor1keryCst{w4o|9NytfvVLFkH4k z#9?;Taw#a(DkLYCBxitgg)@ldn3DsFYc~E}0=3-!CU|?WmfPg;?3}8MJ zHwQ?VeK7+ALnZ?QgDL|9!#Ce~&nsuCc}_C%ysY9mNyT%LqUR(P%}FYrYC@Wml)xeo zahvm#O*}6>shniyIY}jRl3M+|XN>HXP@|L?7#Nth@!sB+8y9OK`cQheJ4Gu1Ub;Aex6$8Jc#TP50EoK zY({o31_lN_Mu_)R{O3LQoNVJcS;cdb8r0zvLCQQQsX+V>2@VEvMg|6EP?&Il!{hJ& z|NnIu7#O4&7#K8==miW645kbW3^2Nek%7URfq}u2fq_Abfq}t-fq}sqi9W!O1 Sfx!(Va)N<@0c0T)GXnrhoa0jf literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/nay.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/nay.CPP new file mode 100644 index 0000000..5f888d4 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/nay.CPP @@ -0,0 +1,23 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + "$$WW+H,1$$"; + while (!ScanKey) { + Play("3qAAsG2G3G2G3qGF2eG3FqEetCBA", + "Let's \0ask \0Mike\0 \0 \0 \0y; \0Hates \0 \0every\0thing.\n\0 \0 \0 \0"); + Play("qAAsG2G3G2G3qGF2eG3FqEetCBA", + "Let's \0ask \0Mike\0 \0 \0 \0y; \0Hates \0 \0every\0thing.\n\0 \0 \0 \0"); + Play("2eG3GqE2eG3FqF2sG3G2G3GqAetGEBqD", + "What \0do \0YOU \0 \0 \0know. \0 \0 \0 \0 \0 \0It's \0 \0kosh\0er!\n\0"); + Play("2eG3GqE2eG3FqF2sG3G2G3GqAetGEBqD", + "What \0do \0YOU \0 \0 \0know. \0 \0 \0 \0 \0 \0It's \0 \0kosh\0er!\n\0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/night.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/night.CPP new file mode 100644 index 0000000000000000000000000000000000000000..f3977a4dfe165746ae6aeb45f4c55ef071073fc6 GIT binary patch literal 3355 zcmdPbw^YbTELKP_N-W68OfKe9adOu&P~qZKPzesuQL-_#Q_?Y1;er4aCwCPt<&@O4 z%)C^E2u@>T12`{|)7X@Y%gxM0p~S$p#Mdb`vBa8-E7U;2r6{r7vqZx=B(XSKK}*Nk z#aTfsC0UcJnoB{!)67I6)0#^`0i>@&r&1@S1gclJ!~i7j99&S8S&|x%lV4)2k&>(v zp%bZNprhjH1b3MxNLgl@f(FD+-4X*EBNI&pkm(8vAn~BYyc8P)J#(0tflhl1qB5K_acxzU~6;@jdUWl4Z((El`_IEWvCOWZGufo+t2`~lnG85 zQ=BqpIAzRrBDGDiI>7=-rj`rjt+f0i1&vHw1M5s1Q$r)`Ol@sMC{@@R>KW*QLNCEs z4;&dF9hJ5q5m<;-*qZ7YXa#5HX*|{nE-Wh1sMOTds({H>+8TkRD`9+CY-njzXjNz% z=^1FkG})Nw8Gvl&gekEx&@UB=O+Xl9J54^x}Zh;tXpAef{9nR0S0uZyhCM2_+pRUq34p5fxCb zDAu)0DM~Dl&n&T3gXANSE8L28?Mf1hv*T0qQsR@7Y}JDEQb4)OH7~{438Wymv^X<4 zz9cobAm7#q5_csFuI-`YI#Y%NYEl>Y>0r8ii(@NPPm6>h^vZ_5E!Ewv&<*T* zCnUEk#27dhXMmiRucxP{5Mz*-m!c43pb%q_Qd(RB7KgI+V)8KEO?{KW2~#0Cu_QSI z9KOyVmSav1D5l{_F2BGUly*T0*P4rgiGhKEkpTieu`z)8qH+uj4CV|B3?Kgg|NrYh zA;7?ZUj>Fd2M3ACU3b5+u;OB>kv$L}^utNaI z^#A|C_Oo;FgA}l{vvcsXGw?$I#6>W9upCGNE)TI0BG1kaGk_m#K1d-yKRXA+d=8K- zKbYW$nGe zJ3l`MI21sNIM^Yk!0ZQwFUU%;W{^Vs@*t%k-=NwL5(OIzXN=0j;tv|Ia0(nm=W6|6P$}u3_5X({XCs;4c^`L+NWfnC3;5-O2fP({4 zVxY@|4F)NIU{v>mYye@19EfD+-~g9Dpxh7j5l9%0sVfgM7N7ltT^task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13sC!G!CG!!etA!DD2sG!3G2G3G!F!A!!FADD!!DD!qGsB2G3B2G3qG"); + Play("sC!G!CG!!etA!DD2sG!3G2G3G!F!A!!FADD!!DD!qGsB2G3B2G3qG"); + Play("eG!2G3qEeAsA2G3qAsEAEAD!E!!DEqFeA!2G"); + Play("3G!2G3qEeAsA2G3qAsEAEAD!E!!DEqFeA!2G"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/partake.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/partake.CPP new file mode 100644 index 0000000000000000000000000000000000000000..a1afa99e2ca9cf7b32972c0780293da441c955fd GIT binary patch literal 2194 zcmdPbw@}DPELKP_N-W68OfKf);!+6?&{486v{TYCRN;bxPy>bF{JeAxO|EJ#1qHWa zUAvOR;_Ud;yp;IlBwMxMyp)i{;%wKv6lW)EE(L|$(&EhI_>$Dzf_z&eJyVcSNl~Q& zNN;&YW=^VthGKAXVxD(ur6yQVK_MU~u~I|HIMv0y&^^`F-PNhk(J|H4DYeAe%}Ggz zi&H5iBQY;qA;v%<#vn4kR7WAkz&$?&!cWUDQiw4~j4?ye)Nz6-5)r)~}AZiq1 z43soM?odz&C@l#tD9S8J)ll(tg8LLI>6cpWlbM&QVFBes+%;&NWsc%3Cnu*uw^T>> zLYGu07Z*1d=R#L-Si!vCzd2==4N1EkcP;pASgBl z1_pfw1_pL0&C9^RV8Xz_0Hehj7#NHh7#Lu*0s{ks76StVj8tUS`Mlg zMoTa-Fo-fRFu-U*s631Yxl)FKfk6z4H5eEeKyo1cAb09P?S|2&P|@G&qjs53AyfNa!3qWKvZ7>pPg7+|yrlnhdm3=A+Dl(s-VXJB9eIUkf5LB=z2fh0f)g%j!wCI$|W zouH5dr8!WDg3N)@Am4%f4WmKf0}5#v4T>>kXb6L7P|SkV!)TB^$Xpl=iUCl_gWL&9 z^C0(w90sF#pfLoaLH-4WGK>agE>I}LXi(Avg)$NiN|vDL0vRg>^(Bl3C3BE=5DkiU zkUEg@FdF1-5FbW^oC^weXnqFy5Tp$`gg{C`J^}?Ohz6y6P|Scr3`Q$La}X%tLFoe| z4hnHl41;J{X!>Ac1Nj?d3n*QJ@*j)_IS}M%7!5K7WGYAutask_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + while (!ScanKey) { + Play("2eG3DGDqGetA2G3B2qG3GCE", + " \0 \0 \0 \0 \0 \0 \0 \0 \0It's \0ko\0sher.\n\0"); + Play("2eG3DGDqGetA2G3B2qG3GCE", + " \0 \0 \0 \0 \0 \0 \0 \0 \0It's \0ko\0sher.\n\0"); + Play("C2G3sGFGFDCDCetE2G3CGFAqDeFC"); + Play("qC2G3sGFGFDCDCetE2G3CGFAqDeFC"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/personal.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/personal.CPP new file mode 100644 index 0000000..3bb78b4 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/personal.CPP @@ -0,0 +1,22 @@ +//8 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + while (!ScanKey) { + Play("qRsR2GRGeGR3qA2etG3EEqEeDCB2G", + " \0 \0He \0 \0is \0 \0 \0our \0 \0 \0 \0per\0son\0al \0sav\0ior.\n\0"); + Play("qRsRGRGeGR3qA2etG3EEqEeDCB2G", + " \0 \0We \0 \0can \0ne\0 \0ver \0 \0 \0 \0re\0turn \0the \0fav\0or.\n\0"); + Play("3CBBGsF2G3F2G3qBsBBBB2eG3AetBBGeBF", + " \0 \0 \0That's \0 \0O.\0 \0K. \0 \0 \0 \0 \0 \0 \0 \0works \0 \0 \0for \0me.\n\0"); + Play("CBBGsF2G3F2G3qBsBBBB2eG3AetBBGeBF", + " \0 \0 \0That's \0 \0O.\0 \0K. \0 \0 \0 \0 \0 \0It's \0 \0works \0 \0 \0for \0me.\n\0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/population.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/population.CPP new file mode 100644 index 0000000..09620c1 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/population.CPP @@ -0,0 +1,20 @@ +//7 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.780; + try { + while (!ScanKey) { + Play("W13eCDBCA2FFF3C2F3E2F3A2F3sEEeD"); + Play("F2FFF3qCeF2F3F2FFF3qCeF2F"); + Play("!3qG!sEAEAqB!etDC!F2qG3D!sGDGDetCRC"); + Play("!qG!sEAEAqB!etDC!F2qG3D!sGDGDetCRC"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/LT/Apps/MusicOrgan/Examples/proponent.CPZ b/SparrowOS/Accts/TS/TAD/MusicOrgan/proponent.CPP similarity index 67% rename from LT/Apps/MusicOrgan/Examples/proponent.CPZ rename to SparrowOS/Accts/TS/TAD/MusicOrgan/proponent.CPP index ba6207d..0b7d07c 100644 --- a/LT/Apps/MusicOrgan/Examples/proponent.CPZ +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/proponent.CPP @@ -1,22 +1,16 @@ -//has words,star,star,star -void EndTsk() -{ - Sound(0); - Exit; -} - -void Song() -{ - Fs->end_task_cb=&EndTsk; - music_tempo=2.5; - while (TRUE) { - Play("qCqAqAsEDEDqBqBetGGEs2G3C2G3C"); - Play("qCqAqAsEDEDqBqBetGGEs2G3C2G3C"); - Play("etCD2G3etEE2G3qFqFqAsACACsAFAFetECC", - "In \0my \0 \0corn\0 \0 \0er? \0 \0 \0 \0 \0 \0 \0Hope \0we're \0right.\r\n\0"); - Play("etCD2G3etEE2G3qFqFqAsACACsAFAFetECC", - "In \0my \0 \0corn\0 \0 \0er? \0 \0 \0 \0 \0 \0 \0Hope \0we're \0right.\r\n\0"); - } -} - -Song; +//8 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + while (TRUE) { + Play("qCqAqAsEDEDqBqBetGGEs2G3C2G3C"); + Play("qCqAqAsEDEDqBqBetGGEs2G3C2G3C"); + Play("etCD2G3etEE2G3qFqFqAsACACsAFAFetECC", + "In \0my \0 \0corn\0 \0 \0er? \0 \0 \0 \0 \0 \0 \0Hope \0we're \0right.\n\0"); + Play("etCD2G3etEE2G3qFqFqAsACACsAFAFetECC", + "In \0my \0 \0corn\0 \0 \0er? \0 \0 \0 \0 \0 \0 \0Hope \0we're \0right.\n\0"); + } +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/prosper.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/prosper.CPP new file mode 100644 index 0000000000000000000000000000000000000000..a03b42c717de05ed32618cfbc7b806e83689d2c8 GIT binary patch literal 5575 zcmdPbw^YbTELKP_N-W68OfKf)($^2qNX=6yEzZnKS4hjr&ri`!%go79$jnnngel|F z*H6t!%}vcK(NU<(FI6Zg%1=s6%BfT+Ps}S(D9Pv2*H6yRD@!dZQOE@G6%rMaGD~t3 z3!ui9WTbNG>!+nAmVk^c$w*bOaSjRc(G9Xw$W6^F)#Kt)P*6|_4$x7uF|x18JTJYXXa@bX+72|@zvCXC<;za%t`f4EI}wV)HBsK(1WN& zQkPm1lwabTSfY`VtOGU?Y(Qq3f`(I0W?r_2fu5-j#8aA@ppZ~-4lXFlEJ+Q>$uBWZ z0_id|(lgLXDNzM^P}ilabBa?bGz}8; zn$}#k;J^;f&r8>UgllkWNl9j2dT~H$afY>mzJ73Os)CA-w~i9Bgp!Vuub&l)hzcl9 zigoQ$iW1A?GfQmMAQ1=(P`6@TJCOh4Q}a^dlap-Kg7Z>9(dwF);_PG%N)WlF#hJ6zK{I(EP+~XCD<66%{9U9ZMCJn7o)gFxvnfdQoC=u|kYNCWuHcN=?nvi^+>IP{2S+;K)%>fVl;` zOF}Zh2IZC(mng&-B&90E7$hph7^D=XCgu`puxqNjTcMMai=$DhyL({})Qce*iFw(@ zAb00hLL66|ky;RAkda!HqNkt`V-T5N3bL#SWMz7OehQLp=uS7LofWlQ3JSFf$%!S& z8IUv#VmapIfZ`mUpz;gADHD_|t+^PO7#J8B86Y5tivi3RwPavm&}3j>c>e$Y{}2Bu z01$H-$TneAKR5*F7=Ea61-6|5RSdslP}Snp50!vW$R?s%29ZZK6Retn9|<7oVL)R4 z|NkGCeiZHe{QNK*K;keq$Q~T}LCTQq2N?j;#Q+vZb^;dt4FCUwm7(efIRPOI_XMVX z1_tcf`S}sr`T1c6VCZMyhd2`5b`(BLH)i-TfQ&{_i_QVr2nsm}2Jw)?<3Az$LBR;o z3MMi1|HtoqH0{{pA32yHjt5x+VZqY@*mCUY2UR~v@Bja>I6=1_xBVb}U<|g20qQFv z^n-T>=D5SaQQ zic$1~(jQn05&j3OgCuMi6CaIXKR(4+HNc4kSm7ta; z$UQ}D&{n1%0|SE+0|UdG|NsAggFBg62C1P!U-cl5A}}^Tp|}TBtU;?FaAN{9C;vxM z53MZ_8bGx&k{w{(2=%Cj!*oFk5|A#ia)kNVl|!5b@e)WATs=W#hfYVTMoD{@4 zF!Ko+4{A6ey9ZQ=;?n~!IU()=hXSnnMRpRXpofGrihIBuupE+NP^f^y2i#tQIS67t z*lFOp4dy7QjWA`PDh8|wSv{zN;|G}v!XQ}&xU<1!H$(_T!Z655Fg8dDKe7g}1e*D% zbsYm~>Op~wY5>UVU~9kx$Ti6F1k{6q2F1OQ_6#_z!RCPoB=>`i2L%yG7>x0&2OIzY zKf*y^qfjga1sU8ru<@X(8YV)VdV~cq^)US~H-c$|Rd5$T)Ims?8d&-V^C41TW5IlE N1b$ge9V1UY0|0@+_U`}y literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/psalm.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/psalm.CPP new file mode 100644 index 0000000..05426f7 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/psalm.CPP @@ -0,0 +1,21 @@ +//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/purpose.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/purpose.CPP new file mode 100644 index 0000000000000000000000000000000000000000..6cf873ef4af5ac7c0083dc870345787948bbc6b4 GIT binary patch literal 4622 zcmdPbH&@6=ELKP_N-W68OfKf);!+6?&{486v{TYCRN;bwPy>bF{JeAxO|EJ#1qHWa zUAvOR;_Ud;yp;IlBwMxMyp)i{;%wKv6lW)EE(L|$(&EhI_>$Dzf_z&eJyVcSNl~Q& zNN;&YW=^VthGKAXVxD(urKUnP7iU0eNpL|?W=X1sil-CYa!qS4PQTQ0pUk{e4Kol& zNkzrYUB^Ah)zwc$B_v@omi=(5MuyAF(^;W0|_a_7?gtK6=DoZ@*$Eb`Svk+Fk>J>N+3r=oJ72fAX*`$Pb$>1 z+*E}agY?qW;$nnTL9PJ_E5sNi7C{*>$0TRu=NG5y;d79aTcL|{s*_WYduoYmkXxa< zDbVLr2E|aXCg4McK=vtV1}nrEwOk4cwF=3JCCM3F3JMAe&LEa!P7Ww-1?Qz`7-(8^)pBuxQmHi;0}}%S10w?j zDDyLb`BD}P3=I4X3=AMzm4SglG?syZL4$#TfeWJWKMH_|fk_l`{2Z`)2!X1Qfq?-@ z0K{Ye4}(xCkl=riUQ~q)|3QLaF$M;>9(K4OSO$fMq6};a$ZiG(kRpcv><|vvw*L%Z zb3iix|ARPS)o@Fo4g=W$Q4V6kl!06d#vtV&2G|64c6JaOY8e9qJ4gT|!@$4*G8`fa zG7ZE7y9Ht>%r3YxkWMfLi!l5Lvq6Uc2m9~;e~{BbUV=z~odvNEEC96vVJyho|NnzS z5J?$GEyx0pnIHqf?)wk+1UoVxY$+Cf?Ej(WLM(z91u_&FLqtI?V)zdUYmhc}P{e}x zAWwkoM>8H2a-iq}TL97wb3L-r5H?5|$TYC)K?FNH#19}g2!kUR92pP|FcK0ckoWrV>C^|t7WBAVi5(E1XSp$p>_7})xQ22ms!{P{#M?n^Y%w-2@ zfW|TdI0o23i3B8yQzt|L$R+>Tu`6N+xgQiFkW>V63)oFySN;dv!w#ard^7^=XiyY^ z(hd&e*+KaToM`@o-3(6Bpa_9*89;u()WDq+f4&Y)S1~kw>Ml*15a9{*8$WKtc zAmunQR1L@nsA?G4!RCT20GW^ON>I80JD*_sgsQ?&$ADr!s^y>}2I4aGaKlgsF&!A0(N!=a@~)SEWpMh2xu}R*L*_8 zgWDFM!i!Az)7X3hp$`fsNDSZ!A5ccaa3%vd|6&M(48*{oD8Oz$sL{%R+k7Hi53&s8 z1H9%V*KQyUpnQW_WJ6`JQJ}&Y!>^#C8PsqBHJ>pwF>qk96hjqEfPn#v`@!boG=<2p aLD&Feq0%_bhxR{ERpaJigbq|GD3AcEIK9sR literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/reasoning.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/reasoning.CPP new file mode 100644 index 0000000..5a3bcdf --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/reasoning.CPP @@ -0,0 +1,22 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + while (!ScanKey) { + Play("3sF2G3F2G3eGDA2GqG3eEDsAAAA2eG3FsFGFG", + "In \0 \0the \0 \0twi\0light \0zone,\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("F2G3F2G3eGDA2GqG3eEDsAAAA2eG3FsFGFG", + "keep \0 \0a \0 \0friend\0ly \0tone.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("C2G3C2G3qFG2GG3sGDGDqGsDCDC", + "Mind \0 \0in \0 \0knots? \0 \0 \0 \0Skip \0 \0de \0 \0bait.\n\0 \0 \0 \0 \0"); + Play("C2G3C2G3qFG2GG3sGDGDqGsDCDC", + "Watch \0 \0those \0 \0thoughts. \0 \0 \0 \0Head \0 \0on \0 \0straight.\n\0 \0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/reliance.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/reliance.CPP new file mode 100644 index 0000000..2ebe687 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/reliance.CPP @@ -0,0 +1,39 @@ +//8 has words +U0 Song() +{ + CTask *task; + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + task=PopUpViewStr( + "$$WW+H,1$$$LK-A,"BF:Matthew,6:11"$\n\n" + "I find two things interesting. Jesus asks for " + "the bare minimum... can't ask for less than daily bread. " + "Also, He actually demands it. I find that funny.\n\n" + "$LK-A,"BF:Matthew,10:31"$\n\n" + "I have a funny story. I used to shoot birds with a BB-gun. " + "That passage didn't snd so comforting!! How many sparrows " + "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); + try { + while (!ScanKey) { + Play("3qGsB2G3B2G3eF2G3sGGGGeRFC2G3qFC", + "Where's \0my \0 \0 \0next \0 \0 \0meal!!\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("GsB2G3B2G3eF2G3sGGGGeRFC2G3qFC", + "God, \0we \0 \0 \0had \0 \0a \0deal!!\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("B2GsG3A2G3AeCCsCECEqACsGFGF", + "Day \0old \0bread?\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("qB2GsG3A2G3AeCCsCECEqACsGFGF", + "'Dai\0ly' \0I \0 \0 \0 \0said.\n\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/reposes.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/reposes.CPP new file mode 100644 index 0000000..43cc569 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/reposes.CPP @@ -0,0 +1,24 @@ +//9 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 1.820; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13eC2G3DDEDqCeEEGFGFqE", + "Sit\0ting \0 \0 \0on \0the \0fence,\n\0is \0 \0 \0 \0no \0de\0fence.\n\0"); + Play("sFFeGFEFEqDsCCeDCBqBB", + "Is \0this \0seat \0 \0 \0tak\0 \0en?\n\0An\0 \0y\0one \0op\0 \0pose?\n\0"); + Play("etB2GG!3qE!2eG3F!EEetFBA!qFDetF!CC", + "Take \0 \0a \0step.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("B2GG!3qE!2eG3F!EEetFBA!qFDetF!CC", + "Take \0 \0the \0step,\n\0 \0 \0 \0 \0 \0 \0 \0not \0back.\n\0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/restless.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/restless.CPP new file mode 100644 index 0000000..f54fc5d --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/restless.CPP @@ -0,0 +1,19 @@ +//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/rifled.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/rifled.CPP new file mode 100644 index 0000000..b4f18c9 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/rifled.CPP @@ -0,0 +1,21 @@ +//7 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 1.930; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("M9/8"); + Play("W13qAeCBAq.CsAAqAeCBA2q.G3sBC"); + Play("qAeDCAhBeFsEEeDq.CM4/4"); + Play("sAFAFeF!!2GsG3B2G!!3BqGeA!sAAetEGDE2G!3DeGsGG"); + Play("AFAFeF!!2GsG3B2G!!3BqGeA!sAAetEGDE2G!3DeGsGG"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/risen.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/risen.CPP new file mode 100644 index 0000000..3f09ea9 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/risen.CPP @@ -0,0 +1,89 @@ +//9 has graphics + +/* +This is one of the oldest songs. I picked +the random name "risen" and said to God +"Oh, you're ambitious," thinking it was +an epic name. He laughed and gave an +epic song! +*/ + +F64 t0=tMBeat; + +#define WING 6 +#define BODY 2 + +U0 Bird(CDC *dc,F64 wing_é) +{ + CD3I32 p[3]; + dc->color=WHITE; + + p[0].x=0; p[0].y=0; p[0].z=-BODY; + p[1].x=0; p[1].y=0; p[1].z=BODY; + p[2].x=-WING*Cos(wing_é); p[2].y=-WING*Sin(wing_é); p[2].z=0; + GrFillPoly3(dc,3,p); + + p[0].x=0; p[0].y=0; p[0].z=-BODY; + p[1].x=0; p[1].y=0; p[1].z=BODY; + p[2].x=WING*Cos(wing_é); p[2].y=-WING*Sin(wing_é); p[2].z=0; + GrFillPoly3(dc,3,p); + + dc->color=ROPF_DITHER+WHITE<<16+LTGRAY; + GrLine3(dc,0,0,-BODY,0,0,BODY); +} + +#define NUM_BIRDS 7 +#define RANGE 5 + +F64 bx[NUM_BIRDS],by[NUM_BIRDS]; + +U0 DrawIt(CTask *,CDC *dc) +{ + I64 i; + F64 é,dt=tMBeat-t0; + DCAllocDepthBuf(dc); + dc->x=325; + dc->y=95; + dc->z=GR_Z_ALL; + dc->flags|=DCF_TRANSFORMATION; + for (i=0;ir); + GrRotXEqu(dc->r,ã/2); + GrRotZEqu(dc->r,é); + GrSetTranslation(dc->r,50*Cos(é)+bx[i],50*Sin(é)+by[i],30*i/NUM_BIRDS+4*dt); + GrRotXEqu(dc->r,0.35*ã); + Bird(dc,Sin(2*ã*dt+i*2*ã/NUM_BIRDS)); + } +} + +U0 Song() +{ + I64 i; + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->draw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + for (i=0;iRB+T&a7ir7Earj$mEZs! zB^yIKB^^T*hzJ)KM9j!eNyi8-1`{>5Q_?YpiMpAYD3lo3miRiQCYD%paVe*yre)@( zDg<~q2D=(^TI!ji3K?-48t56IiW!5%(A1f58k(W2GX;s6BJA*W^ox(+G%`gP2NH?o zG&bPk3N=u0DM~E&EYWZdNi5D*(9&^saaPbuN!H}5=2B1qIXk5U>TKN-18Xh?g-{Cx zt<1cV)FNvxPKC@g1&x#v8;CbFxfB!>6r6(#iZV-519I|9j5Sh{bwHLyfXPT5105Al zCwM4of{aVeDNaQ(#z<2EWVM0<*b-Z)ah@O>3-WUkOHwtE&43yRi2@ysloDO2Tl6)+ z3?mpHY#AZffvtq9bSp|t)j$Z;Dqy(Om`ImG9S3nXBv~L_YNQEusWHT*Mw(Fjp&rK( zjtGY-C=hn33Gq<_aUa+X7#=ny(!&rlpiu+KF$fQvz&vaU@vsSA59=Bl7-+$x)kG7L zkaSH^#0+!@1_$n>39$j3Sl})~*n%dGk$`K#c_=tPFI@wYWuW<}B(XRfl)QaQi!+mh zQ%g!R^U{lhic3IZxgfFllGNOSd|L%0J!4aFzJiDrmn0@9mXzejrzIwr+G#OhN8e`D}7KUg7rw#=LP>B(qm|3C$au8Gu#MHGb&&-Q2%1qBF zv2`m(;(AG<1rjyp;IlBwMxMycCdIT=P<#oghleGct2h6*LrslN0m2 zQ!8OvO98o_0F|c-3IREZl^ROErurt~hQ@`ij;Ss#&d!BSV1|+o7pH=PQfPrfj6q_I zK~jEMszQu`2Z%^d&5JQ8$*EL`F(}T>%taELMmyCh@n0-*|@=HOw%kzt}LH1>& z7J*F21i3#CWOiCB7gIJC^IiL`SM_+z{HCHVc z7bwqKb1^V6FfcGOK)_)L#Q_pyVhm+qU=U|uUA|Ve*@(|`~UxcG*lf(|Ih#b|HEjIILJzvK9GAr z@-RAxfq~)w|NsBNUI95Bq!{ECW(EcZG{5*WFfa%(FfhPqkefitVKm4tZUzPh7@fet zz#zuJzyR|L$PJ&6`~ouP%m4rXL2dx~$(MnF;T6@GKv>*cm1I!~(X)gu_ zhF|~x|A*;vVPIhR`~UxcHwFfVAOHXVw`E{p0EID3oeu*80~Z4W1B?c#1KEzOkDY;m Q0VEEh?HCvsL_w|x00zLzEdT%j literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/scriptures.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/scriptures.CPP new file mode 100644 index 0000000000000000000000000000000000000000..d4d4ca2e23843f4d63fc1d6b71eb4e948b077ed6 GIT binary patch literal 1075 zcmdPbw@}DPELKP_N-W68OfKf)QV9;wQBu+|RN;bvPy>bF{JeAxO|EJ#1qHWaUAvOR z;_Ud;yp;IlBwMxMyp)i{;%wKv6lW)EE(L|$(&EhI_>$Dzf_z&eJyVcSNl~Q&NUxHL zN_e=ohmN6&iV{e?JR>tFRY5~BI5{!TJGD|1tVls2ASba>L&><%)!9AO)w$5g$Y#vrjMRUyVeA;uuLQX$45B{jw%Co?^xL@y=}EUKgl zvPD55ptK~opeVB>RYS$oNk_@X&<^B1sH9(Nxld+Zs)i|)53wEHZohmTg%|@*g&2eK z{5y$fhVLC@3i5Gs!;#YLFr*03im|aw#a(DkLYCBxi7e3~&aq9CLC& zAsd{RqG6zE%~i|A1xg{-TntPM3=E765b%kSfq|KUfq{vQ10?Loz`&rvz`&5qz`&rz zz`&r#0FgF<(jakd1_p*~1_lNYodZ=rg@J)VnSp`9fq{WR6G>ki#1@8W3=9lP3=9lT z3=9nF3=9m05OF5BfDuH11LQ7es3KPe1_lKN1_l@nvRoDFI1oLVfq_Aqfq?;;R)q4U z7#J9u85kJ;{{R0UM#q8t$-uw>qfHqY82#`Kg?Q?b3lGegE}h{ zN>5;5V31>AU`U0A0Z2W_Suh%84g&*&3)B}-E(6FokTOt^GB7Y?FfcHvF)%Ppgen7> rrozC$5Ce5A6AL(EN}zF8&A`CG$-uw>qd@`8&%nR{qd@^J3i1a4Y|P2i literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/service.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/service.CPP new file mode 100644 index 0000000..0a31128 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/service.CPP @@ -0,0 +1,35 @@ +//7 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,"Matthew,20:28","BF:Matthew,20:28"$\n" + "$LK,"Mark,10:45","BF:Mark,10:45"$\n" + "$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); + while (!ScanKey) { + "$$FG,GREEN$$Jesus talking...\n$$FG$$"; + Play("M6/8"); + Play("W13eAACADAADACAR", + " \0 \0I \0 \0came \0 \0 \0to \0 \0serve.\n\0 \0 \0"); + Play("AACADAADACAR", + " \0 \0I \0 \0give \0 \0 \0my \0 \0word.\n\0 \0 \0"); + Play("FG!etFEGA!!B!C!DA!C2qG!3sECEC"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/shield.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/shield.CPP new file mode 100644 index 0000000000000000000000000000000000000000..e0afa2422069b260a5e5b64784508573411d7312 GIT binary patch literal 2852 zcmdPbH&@6=ELKP_N-W68OfKev0hQnY9VHt>J0%@M6{uLKfkJS8Ub==RS2dS{f^$e> zakhe1Nn&xfHJ5^dTd}Skh#jArmlB_xWUCgOmjY7ZnwR421X7S&TAZ02Uy_43$zW5K#D*Pb4e}AEK5xZOUx+_El5c$NkzD_JR>tFRY5~BI5{!T zJGD|%p_+>`ASba>L&><%#n~m*)!oS@wZzHEtV^E%-rw$TJN(D)jf|w=w3NZ%78Hu^6dNFx11`05wq-o8? z>6cpWlbM%l&BYl|S`u7Plv$Fhq2lQTPj5(SG)zGphyw?^``jE;OB~%?QeE5%9aBqO z+?-Nf+)_*2TwDuXz~ShdpPZeV0uPErg&2dJ%#s*`k{nn-f&w@(B^?xu3NZ%xX>hg4 z`K3j$AWTe$gef>EAt94Wz-n-AqJi}a3bkAc3bhK!i6zMy;2h`-VmapIfKp;`UW$f+ zrZrbB7Z<49u;yZ5VqjokWPpH0Yzz#{3=9mSN(>APS_}*fY77hvzy1>gAO`%0Pz1^U z42<{z)C8KSW5)#;8DRkdwilN&cFNW9@i8zUjK^)>P*=x?0YLu7^e=`oaQNU;2TdRh z*v*55Ehzk8D%tVG8%P~Y&!{>?NQ{OHB=vyH14bglg%P0;CHz1o9>h3?|NlW8ghG%o z%yh5}NPvNX;s1Y#%`g)|!ccV(WzYf_R6;|FRH!VRf+|B&hiW2JAxs&vI;cXh6fyyF g6^c6S3c<=y)nQWzQHG`ttPtc`Bntask_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/MusicOrgan/silver.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/silver.CPP new file mode 100644 index 0000000..0c815f8 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/silver.CPP @@ -0,0 +1,25 @@ +//8 has words + +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13qF!2GsGG!!GG3GFG!FqAeD!2G!3etDBEsFCFC", + "Love \0 \0 \0 \0 \0 \0ev\0 \0ery \0 \0sec\0ond.\n\0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("qF!2GsGG!!GG3GFG!FqAeD!2G!3etDBEsFCFC", + "World -- \0 \0 \0 \0 \0 \0all \0 \0that \0 \0beck\0ons.\n\0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("qBG!!FsEAEAqEFGeF!C", + " \0Life \0is \0too \0 \0 \0 \0prec\0i\0ous.\n\0 \0 \0"); + Play("qBG!!FsEAEAqEFGeF!C", + " \0Can \0be \0 \0 \0 \0 \0worr\0i\0ous.\n\0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/small.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/small.CPP new file mode 100644 index 0000000000000000000000000000000000000000..a30233f5bf8870684477e4fbce7e2b635b13a96e GIT binary patch literal 10740 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 literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/struggles.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/struggles.CPP new file mode 100644 index 0000000000000000000000000000000000000000..4e7ddc77882481678a8542be17fef22f529da735 GIT binary patch literal 3081 zcmdPbw^YbTELKP_N-W68OfKdE0hQnY9VHt>J0%@M6)r9}GZTdp1KSc`r_{s}YcA!K z)U?dJR0U^OzYy1;_y|rT0|PFuPy+>*qQr8~5)J2&#NuoPEgfeUX9ca4WKFJWE(HaU z87U=DGjvM~thp2vQj&G;(sB~hi)(CMoZaGsBYk~cLxLhfQtm~;sU^Xcxw)w&MU@&U z$vQC0bPNzoLrsuU=iq{(%#zfAoct1FWR0x^^i=iRJN` zCAMmiAOJbbtytHtB(XR2Pr>C@8t-r|2le7{F0MPHJLtDx8~ftgj1AI@4-=~npBeb%7yxNg->?7x literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/sustain.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/sustain.CPP new file mode 100644 index 0000000000000000000000000000000000000000..8a21ddb495eec2cf0567d0b7f0a713d0a8163706 GIT binary patch literal 2832 zcmdPbH&@6=ELKP_N-W68OfKf);!+6?&{486v{TYCRN>;{3N=u0DM~E&EYWZdNi5D* z(9&^saaPbuN!H}5=2B2_Gc!>rDX|SNN-WSQ@zpWVwB}M!NJ-YUOUp@2FRrn5adwLj z33BuccJmMNbqw+J_X8<#FAB;piEu3})c`3i(lOOC(t50KXaUilnWmueSl`ITwxq!MYzL6%#j>ozsC2-A=2+buWa7!y}jg3q}YCy(T+8Tq|&cOvmnI)+KIr$~V8Y#&- z24JY-=>+$trZrbB7sRi@`FZIY5U&NNmXu`Xr56X37H3#1=<5fkrYflTcamiQ%l_3jogik9i1JWUEE#Vot>SXom`w;T%25-3SHclbhtPb z6qGy_Vhj{w3{vv*)Jq`D?7aMP2n!Eco{?IV3X%6z&&h$X(o>;Elw?5Va`W?I3{org zV)9}Pl)&+%pa65=pm(2}OQB1#qobo^s+(JCiIcmdi=$Jji;=r=p$jzdR8-vDb%I=7 zR8%|?%RpYv%U6goNJ~vD(o=v02^#61pQ2t25lhd9238`3pOK%Fq7Y+{pQjLGP?=wf zJ;(?kH6%8}Mw3``6R z42%pA5X8m+=8I}DFff4d*Z=?jzxj_9uwfNN7GwhhJ}`+#H5(r?V8fx34XTWbiwmlp z4U1BkDn34hIzB!=bTgr5feb=bhpG@^8k%{iCL)=Jp$^Gv6lJLH133g{HL|6AVDmsF zD9qCcn^BAdD*+QAqaYY!Ad)h$JdA*-0g*V>fh`BAfMT#hEaqWTholVRRd6_i38-n1 zXu+-yp#;og`~RQH>X3~CxepvFV7rhBHWX{&>JV`ORg6m=$W*8j2!$56NYRU8CYpc2 zdO>D^Fqi`+aHvC%4^SFJ@i0g`I4ZydhzG$`HV;dB0Xq%k4P^h4qz)-cz~;aRhz~#{ z*tq{lNd{91vND8$1k}M5f odH4!IBz5S9ft(0366{QvI&7sWL?KuySS_d|hl$~$v8!PK03|URBme*a literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/teachings.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/teachings.CPP new file mode 100644 index 0000000..738fe28 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/teachings.CPP @@ -0,0 +1,35 @@ +//7 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,"Proverbs,11:25","BF:Proverbs,11:25"$\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("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"); + Play("2eG3CD!AqE!!sACACG!EGEqDsAAA!AetCDD", + "Wa\0ter \0thi\0s \0tree.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("2qG!G3eEBqAGeFE!!sF!GFG!etD!BD", + " \0 \0$$FG,RED$$I \0will \0teach \0thee.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("2qG!G3eEBqAGeFE!!sF!GFG!etD!BD", + " \0 \0Wat\0er \0that \0tree.$$FG$$\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/thereupon.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/thereupon.CPP new file mode 100644 index 0000000..94ab3da --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/thereupon.CPP @@ -0,0 +1,76 @@ +//7 has graphics + +#define X 330 +#define Y 15 + +#define NUM_BEAMS 256 + +F64 beams_r[NUM_BEAMS],beams_é[NUM_BEAMS]; + +U0 DrawIt(CTask *,CDC *dc) +{ + I64 i; + F64 r,x1,y1,x2,y2; + dc->color=YELLOW; + GrCircle(dc,X,Y,10); + GrFloodFill(dc,X,Y,10); + dc->color=BROWN; + GrCircle(dc,X,Y,10); + dc->color=YELLOW; + for (i=0;idraw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + for (i=0;iwin_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); + "$$BD+H,LTCYAN$$$$FD+H,BLACK$$"; + while (!ScanKey) { + Play("W12qG3eCB2hGqG3eCB2qG3A", + "Umm... \0God?\n\0 \0 \0Let \0Your \0 \0 \0 \0"); + Play("CeBA2G3DqEeDCBA2qG3A", + "face \0shine \0on \0down\n\0on \0us, \0Your \0 \0luck\0y \0 \0peo\0"); + Play("eBA2h.G3qE!!CAF", + " \0ple.\n\0 \0Fath\0e\0r \0a\0"); + Play("FD!A!eEDqE!!CAF", + "bove,\n\0 \0 \0I \0 \0feel \0 \0 \0Your \0"); + Play("FD!A!eED", + "love.\n\0 \0 \0 \0 \0"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/thither.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/thither.CPP new file mode 100644 index 0000000..ee38d04 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/thither.CPP @@ -0,0 +1,24 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13sC#C#D#D#C#C#CCC#C#D#D#C#C#CCEEDDC#C#DDEEDDC#C#DD", + "Still \0 \0 \0 \0there.\n\0 \0 \0 \0Still \0 \0 \0 \0there.\n\0 \0 \0 \0Not \0 \0 \0 \0fair.\n\0 \0 \0 \0Not \0 \0 \0 \0fair.\n\0 \0 \0 \0"); + Play("C#C#D#D#C#C#CCC#C#D#D#C#C#CCEEDDC#C#DDEEDDC#C#DD", + "Un\0 \0 \0 \0aware!\n\0 \0 \0 \0Un\0 \0 \0 \0aware!\n\0 \0 \0 \0Every\0 \0 \0 \0where!\n\0 \0 \0 \0Every\0 \0 \0 \0where!\n\0 \0 \0 \0"); + Play("eB!!DetFGAeF!EBE!etE!FEqCeFEDA", + "$$FG,RED$$Running \0 \0 \0a\0way \0 \0 \0 \0 \0 \0from \0the \0Lord \0won't \0 \0work.\n\0 \0"); + Play("B!!DetFGAeF!EBE!etE!FEqCeFEDA", + "Running \0 \0 \0a\0way \0 \0 \0 \0 \0 \0from \0the \0Lord \0won't \0 \0work.$$FG$$\n\0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/twins.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/twins.CPP new file mode 100644 index 0000000..00b7f02 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/twins.CPP @@ -0,0 +1,25 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.260; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + "$$FG,GREEN$$As I look back on my sinful past...$$FG$$\n"; + Play("W13qCAABAeAECEqB", + "Who \0was \0that \0per\0son? \0 \0It \0wasn't \0 \0me?\n\0"); + Play("CAABAeAECEqB", + "Who \0was \0that \0per\0son? \0 \0It \0wasn't \0 \0me?\n\0"); + Play("etDEDqFetBEDeAFGEqFDE", + "Sad \0to \0say, \0 \0I \0guess \0 \0it \0 \0was \0 \0 \0me.\n\0 \0"); + Play("etDEDqFetBEDeAFGEqFDE", + "Sad \0to \0say, \0 \0I \0guess \0 \0it \0 \0was \0 \0 \0me.\n\0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/valued.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/valued.CPP new file mode 100644 index 0000000000000000000000000000000000000000..ed5406640866c754da8d27fe11e852d569f6edd9 GIT binary patch literal 1509 zcmdPbw^YbTELKP_N-W68OfKf);tDlTa4AYG_bkzH4oNJ|R?yOMc5znFN=eq_s^(Hq zC@x7X$xK#oGc!@hNh~gjFR?B0)hQ{lHL&JVP$((Uw$&){)rH7tYB?qqYXoQJX_WYC zYJ%h;;)qXknmTQle8*qGfEL zW1yqr>7=7%V`!(OW2mBIpl4*N1va@vQ`LmWzu^B{%@C2JDmI{JeAxh{JNmk~Uf+!>>U>K5Lo(FNdLX1IretwD`!ub$!kY)u11%+BJ1%+CL3us7#Seo5fcNLFDlHyz#zxK!0`S5|Nrm) zlMNWL>tw_!j$MKghXzI*68OZi*#J_HMI0=Q#cGf^KW=dhlR)YjF*SgN8Tm0JAmW%3 zaB+TA8=&GCHbBMs(E|w~juty$2@K``|HH)5ltUyioc|vpjwO7c5*Wq|fB*vk+aL^D literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/vengeance.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/vengeance.CPP new file mode 100644 index 0000000000000000000000000000000000000000..04a55b93e1cf5b242194f1edb39b0a9831c348f1 GIT binary patch literal 6567 zcmdPbw@}DPELKP_N-W68OfKd^00j_G2@cRvvN5z%(lJy4OSzeuD3lo38d!62g&HWh z6eX5>mS{MKBo=2YXz4h+I4fwSBx`b2b15i*RHl^JmiRiQCYI=y80ebm8CY{EC}gH7 zXp|TzsHrI!*x06&*cj>=Xexj-C@7>P>)NH|B&HYF*t$5o#fJnr`USiB2l+aNc>4Q+ z^eQO07X{^)M7b80YJe0M>6q#nXlbOB=o;vmYHA`Wi9jeZ)HBsJ(lgLXDS;~pPAv(_ zFY!$*(MUHL+^e8~P?D3HhEM_GpercJFMyknlwVSkpQ~+*t_C7*i!ik$zd+m2 z2%-$+M3>Z}%(B#!u*96=(1Mi2l2l~(mS<$udM(TmB8F;IdA z2DMBnF|dVXHHfER#umC1x)r(?Iv2VYI;WPnxI3mgIzrv15MuyG!6k`#DGD(LNr}nX zXwIXh!QcWxL7|pQL7`S5Ik6-;g9}vZID=S@IXNJ&z%xdEfi)<{fwG%57XuRm0|O%i z1l$r~0P{r^85kH^85kH?7#J89{U-uI^fM4ti9;O+x<>5kIEYopj;;`^c^vFSt3y|a z%{&fvb_@e?szWmni#o7z=mz3ehiV|EI;e4I1`bhmAkUygF%Ex>s)Ga!QuYD`2|I`w z4L=6t@(L6rqu~NcE~DXsUXqW7%OKAmVCRAJFG@v-5pSdFz;(fBxPTgKqv>Td9gL;} zP=PR-4#4REOdvOmafAzX)Nx<~pxF5TAH`k{C=Z!}Iua@b(KO=J5gC5a(BXpsXvjeX zQNj-*!~s#pH>wV$fAoL&gbTsize-LEN) start=size-LEN; + ch=bible[start+LEN-1]; + bible[start+LEN-1]=0; + "" bible+start; + bible[start+LEN-1]=ch; +} + +U0 Song() +{ + U8 *bible_filename=Define("ST_BIBLE_FILE"); + Fs->task_end_cb=&TaskEndCB; + music_tempo=2.5; + bible=FileRead(bible_filename,&size); + "$$WW+H,1$$"; + try { + while (!ScanKey) { + PutVerse; + Play("3qAeABCBqCetABBqCetAAREE2G"); + Play("3qAeABCBqCetABBqCetAAREE2G"); + Play("3eDRRRqGReRRGGGGqE"); + Play("eDRRRqGReRRGGGGqE"); + } + } catch + CatchAll; + Snd(0); + Free(bible); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/villa.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/villa.CPP new file mode 100644 index 0000000..8fe51a7 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/villa.CPP @@ -0,0 +1,22 @@ +//8 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W14etEEEqBetDDqtDqBetCCqtCqBhB"); + Play("etEEEqBetDDqtDqBetCCqtCqBhB"); + Play("etABCqDetBCCqDetDCBqAhA"); + Play("etABCqDetBCCqDetDCBqAhA"); + Play("!qAetC!!AEsG!!CGCetBC3G4ADAqAGetDAD"); + Play("!qAetC!!AEsG!!CGCetBC3G4ADAqAGetDAD"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/wisdom.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/wisdom.CPP new file mode 100644 index 0000000000000000000000000000000000000000..c20d7622e827782d2ecb72ad286edfd7914713f4 GIT binary patch literal 1671 zcmdPbH&@6=ELKP_N-W68OfKf);!+6?&{486v{TYCRDtn~?38qjRJg#v&CEoh#K6`- z&%m0CE7U;2r6{r7vqZx=B(XSKK}*Nk#aTfsC0UcJnoB{!Ik=!Gvm`YjC%?p4BPChK z$Uw(J$3REL(+O^crZty>LS~wRMu~x@0!R;5T}CEwZ4kGBwJ9hB=cQ<9l=$kF7-(u4 z8W=!D!N&R8l^AFn=oy)6aw&iT%+U%8wOqAerw8ZfrE5T38k|~El9`uY98g-EVXdIA zADo)1pyK1Lql7G>q@(2PXN4l7!lj_#R;+86Qj}O8pIKt71_=(3r$E9biN)FRsd*{! z$w{_q!Feg5KyuAXadxui;!;q^EiKMWjxR~gEy%Yu(lZ5VDk-XjhC+EpW=^VthGKAX zVxD(uB`k0h6asP*D>amiQ=OcP9o-$>Qym>sOWYkDi=CXDoKl@#3SClN9hG#rI29C> z{PN3n6k-fK6=DpEOJfWaVho^UQK|x%3n9z%^VCZeVhmF9V+^23A;zF2BM~H+7-Nv0 zn3<;-lLynGqzQICC{RlbY)gDW?gnun4jWKsft&#gA)`Wfx}=b1R{AW^s%`Nn&!5^g&BegPzyQV!3=9m`P&N}E z2S`|zfq{XMfq_Ahfq_8)i3W)aGB7Z}Xe9;)1`r0D1JVF8%ZdqNE)xU$5e5bYsL9c> zx3}d^Qdz3uxoPXR*xS!NCz*H#iD(+$Fvz*F?d;avc`BZhQe0X+7pdIbmV0~KSv&tr zDkoVS+H!Ai%l&*U_ifH?Gyi!ilT|z?fkd)nZ*TiMU&V8hil^`qimRa~lfvz7YuDw@R`HzVIf>;4*l>{EXSv(Xe^&9F zv_z!y(6-#$X6tY7Ia``LS>-&)z9oxNBn)z-K~{jQe*G*rF8BWz&rcw`MAdv2<=o!0 zOAX`_u!)@`}-)IBGu zoK*4LmODFrwhhdvkVz^h&2m7_+jj1D&h2lWvp_a_PEyef@|>h13G&Eo72io9y_#yC z8$fQm`)roFr;+ERgqz!PvvVgu2YHj{#@nnH96(>w!F=+Z>jlDQd(>fG)V;{zNhr_w!C}KuCBEO1&fNOAt%K9KA?C9`D?O@ O=Z39ct*)E$GXMa(G#{$~ literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/witherto.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/witherto.CPP new file mode 100644 index 0000000..4f547f7 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/witherto.CPP @@ -0,0 +1,35 @@ +//7 has words +U0 Song() +{ + CTask *task; + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + task=PopUpViewStr( + "$LK,"Mark,11:12","BF:Mark,11:12"$\n" + "$LK,"Matthew,3:10","BF:Matthew,3:10"$\n" + "$LK,"Matthew,25:18","BF:Matthew,25:18"$\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("2qG3sFEFEqDBEetCB2G3qFsBDBD", + " \0Damn \0 \0 \0 \0 \0 \0fig \0 \0 \0 \0tree.\n\0 \0 \0 \0 \0"); + Play("2qG3sFEFEqDBEetCB2G3qFsBDBD", + " \0On\0ly \0 \0 \0good \0 \0for \0a \0 \0 \0pee.\n\0 \0 \0 \0 \0"); + Play("qC2G3eFC2G3EqACDA", + "Has \0no \0fruit.\n\0 \0 \0 \0 \0 \0 \0 \0"); + Play("C2G3eFC2G3EqACDA", + "Kill \0the \0root.\n\0 \0 \0 \0 \0 \0 \0 \0"); + "$$FG,GREEN$$Be sure to bear 'fruit'.$$FG$$\n\n"; + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/worship.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/worship.CPP new file mode 100644 index 0000000..2ef0800 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/worship.CPP @@ -0,0 +1,20 @@ +//7 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13qEDeCC!etEAAqEetCDCA!!GFqG"); + Play("EDeCC!etEAAqEetCDCA!!GFqG"); + Play("eGEetFDAqF!sGF!GF!G!!FG!F!etBGFqGeDE"); + Play("GEetFDAqF!sGF!GF!G!!FG!F!etBGFqGeDE"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/you.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/you.CPP new file mode 100644 index 0000000..e0e1910 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/MusicOrgan/you.CPP @@ -0,0 +1,26 @@ +//8 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.802; + try { + while (!ScanKey) { + DocClear; + Play("W13qDsCCCCeBBCCqDsCCCCeBBCC", + "I'm \0 \0 \0 \0 \0on \0my \0way.\n\0 \0Got \0a \0 \0 \0 \0bus\0y \0day.\n\0 \0"); + Play("sBBBBeAAsBA2G3AqAsBBBBeAAsBA2G3AqA", + "Woe, \0 \0 \0 \0I \0for\0got \0 \0to \0 \0pray.\n\0What's \0 \0 \0 \0God \0 \0have \0 \0to \0 \0say?\n\0"); + "$$FG,GREEN$$God talking...\n$$FG$$"; + Play("AeB2G3GGqE2etG3F!B!eFGqFeEC", + "$$FG,RED$$Oh, \0 \0 \0hi-\0a \0you!\n\0What\0ch\0u \0been \0 \0do\0ing?\n\0 \0"); + Play("qAeB2G3GGqE2etG3F!B!eFGqFeEC", + "Oh, \0 \0 \0hi-\0a \0you!\n\0What\0ch\0u \0been \0 \0do\0ing?$$FG$$\n\0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/zip.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/zip.CPP new file mode 100644 index 0000000000000000000000000000000000000000..593d501c96a0a77d4049a2f647d5eb57ef6a0780 GIT binary patch literal 2508 zcmdPbw@}DPELKP_N-W68OfKf);!+6?&{486v{TYCRN;aEh>($;l8zBX$j!_|p~S$p z#Mdb`vBa8-E7U;2r6{r7vqZx=B(XSKK}*Nk#aTfsC0UcJnoB_eq&%ers$93kz?w@z zA=E-aD>JVowFtz?OjFQEDY3IPG}ANCQ~+sFPykEXItLdNWtOCRf>ajd=OmV-YN&WR z!5ydr;Xs_G}R~#kzJN^W#(VQsR@7Y}JDE zQb0lKnwR421hzD{v^X<4z9cobAm7$V&lIGoq^J@aXdtb&0r>@?1!0+~<-sLI8e9qr z3JOXpKHj>HI!aD%Rslu%WvN9;#X5!tR)&^JDlvIVxRsb%84*xnZe?TvQNoGM5+h41 zLqn)MG?+oY2~W%{(Ezy>Dh6We+LdSK#TR9!XO!52LIKVL`A|Utp(H0Y4WR?RbO%za3625< zh4PHdoKyu3#o*+`Jnz&>SejKp&K015S5OGZNvzaRGA?v?HA;0ib}DpFEpc&jNp*2G z0x{ib?6lN!g&2eK{Gya%y_mch0|nej2^x|x z3+ZiNs;gtMo2#2^p_?PfgRYK_M()Oi&W=#ex#j2Q6hoY!otc-C2w@_VC5buNaDHM= zjzWwP-P&KKv;xG2jme@ zq<}02Ng>l9zk>K68l(>77-Slx9vWP{(7*@z6%+{|KFAM33=9k)8j?gn?q^_Nz>;J@ zajXLJC+(9A$QRI*2#Ot0c!6RIlr%t|1JNKCgJ_T(hz9wJ0g+@to&%)~kmo=&Gz>t= z1mt&+ZV($rgMts5&_Jp|5d#WU7>%A}K#l-K8c6$~Ofn$vgZu~b1dIlS6o?OsM;HzA h2#61(LHa-e01Yk>SB`;!0ThZL8pH<$A4oem$N)`|4j%vj literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/TAD/PersonalNotes.TXT b/SparrowOS/Accts/TS/TAD/PersonalNotes.TXT new file mode 100644 index 0000000..0cc69c7 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/PersonalNotes.TXT @@ -0,0 +1,186 @@ +* Preempt-->cli + +* Why is bitmap different from vector in $LK,"Logo","FI:::/SparrowOS/Accts/TS/TAD/Archive/Logo.TXT.Z"$? + +* Hangs after pressing Compile MAIN in menu. +* 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. + +* $LK,"DocUpdateTaskDocs","MN:DocUpdateTaskDocs"$() skips locked docs. $LK,"WinMgrSync","MN:WinMgrSync"$() needs to check. + +* Why is wordstat so slow on "OldMasterBootWrite" for example. + +* $LK,"Plain","MN:Plain"$() might be better not saving $LK,"CH_CURSOR","MN:CH_CURSOR"$. + +* TRANSPARENT might not work with line ROPF_DITHER + +* It would be nice if $LK,"U","MN:U"$() NOP were better. + +* Autoindent is very bad. + +* Make native file system expanded size set in Copy. + +* unhandled exception on MP message gets overwritten by WinMgr + +* Cmd to enable/disable compiler warnings + +* make aware of ctrl-r side bar + +* fix problem -- remembering 0 terminator in str or not for $$DA +* GetS, crazy putkey code +* editor page formatting + +* $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 + +* CGrVectMap sucks +* 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 +$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 +* EIE_ABS_ADDR 64 + +//After Egypt possible future ideas +//$LK,"Numbers,13:33","BF:Numbers,13:33"$ scouts +//$LK,"Numbers,21:8","BF:Numbers,21:8"$ snakes + +GrEdit: Move sidebar selected elems. + - Be careful of multipt elems. +GrEdit: Strip origin shift cmds. + +GrEditBitMap, grabscroll? +GrEditBitMap, cut/paste boxes. + +extern of fun with dft arg of str? + +* We kinda need a routine to return how much free memory, so that applications can plan a big alloc. + +* 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. +* $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. + +* Window mgr needs to do DOC operations on posted messages from mouse. Works for $LK,"SetIP","MN:SetIP"$(), though. + +* Add local vars to sym table in $LK,"Dbg","MN:Dbg"$()? (maybe) + +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"$ +* get kbd lights working. +* figure-out hyperthread vs nonhyperthread CPU's +* Might have issue with compiler exceptions and restoring lex.hash tables. +* Generates two compiler error messages for expressions in statements. +* release semaphores or break lock sema,usb_td +* Fix Mom's secondary CD-ROM, dad's primary +* pmtstr in install didn't like focus change + +*$FG,2$U0 Main() +{ + U0 (*fp_old_draw_input_ptr)(CDC *dc,I64 x,I64 y)=fp_draw_input_ptr; +}$FG$ + +* Syncronize VGA memory update with the hardware refresh cycle. + +* Demo $LK,"ToHtml","MN:ToHtml"$(). + +* Del short name in FAT32--currently I do not check to see if I have generated a unique short name and one can delete multiple files accidentally. Generating unique short names is a pain in the ass because you have to scan the whole directory. I think I just truncate the name instead of "Program~1" or whatever. S081130-0001.BMP crashed windows--two identical short names. + +* OVERSTRIKE at cmd line with menu macro. + +* $FG,2$lock{}$FG$ warning on invalid modes. +* Local array vars-->reg. +* $LK,"DCF_SYMMETRY","MN:DCF_SYMMETRY"$, before transformation? (Currently it's after) +* all graphics clipping -- screen y+top<0 for top<0 +* Maybe convert graphics to float +* compiler F32 +* preempt(OFF) during graphic clipping? +* compiler optimization heap_glbls with added offset +* static_compile extern glblvar references. +* extern glbl var in static module on data heap. +* Might make FAT32 read in contiguous chunks. +* make Limit(),Min(),Max() asm routines. +* Might make CSprite flood fill operate on a separate bitmap and blotted at the end. +* autofile popup of popup +* delete subsprite in menu near others +* consider changing domenu so a real on menu item doesn't select ( sends followed by or something) +* puts3 with depth buf? might not do this +* make task queins and querem safe for multicore cycling through tasks (fwd). +* make better heapwalk, do something with _CFG_HEAP_DBG. +* log to file--would be inefficient--load-in whole file, modify and write out. Useful, but not very efficient (SparrowOS file system has no grow-file ability. Created when FAT patent was an issue and wanted absly nothing people could sue me for.) +* APIC2 +* import intel datasheets, somehow? +* Might make DskView show drive colors. +* Might do utility to set drive colors, making a tree entry in Adam 3 using registry-like routines... or registry I guess. + +* New Editor widgets + +* Make use of flag potential in SysFilesFind and possibly CFileAccess +* implement fixed pos files + +* new C+ language features +* better debugging + +* Change hardcoded stuff to Define +* Too much preemption turned off? +* Look for mem leaks. +* Move stuff out of OSmain. + +* $LK,"ROP_XOR","MN:ROP_XOR"$ with pen_width>1 is broken. + +* use width and height in line clipping for pen_width>1 or blot. +* SIMD transformation +* test removable media id (critical for resident files) + +* add field overflow U8 "t='*'" +* Implement fmt codes into GetF +* GetF date codes and maybe $FG,2$h$FG$ fmts for nums +* Date Input +* Default date fmt + +* 16 bit Unassembly is bad--very low priority +* more signed int disassembly +* support r4u8 by adding 0x40 byte +* static var off of data heap. +* Might want to use U32*U32 multiplication. +* could add "const" to not set LF_NOT_CONSTANT flag for trig, etc. +* do r,rm ICCmp like ICBrCmp +* could make glblvar imports use TY_RIP_DISP32. +* PUSH_CMP allocs reg R9 or whatever +* Might be problem with NOP in OPT pass1 for NO_PUSH in expressions besides assignments. Is ShiftNoPush fully implemented? +* NOP1 might need to have diff ic_data's +* in divequal, it assumes about ebx +* error/warning line nums +* ASM branch out warning of range off by 1 line--use lx->last_line_num + +* Switch statement with sparse cases (low priority) +* maybe inline functions? +* Use of more floating-point stk? + +* More aggressive in this routine $LK,"CmpF2PushPop","MN:CmpF2PushPop"$() with types besides MOV and F64. +* !dbl ~dbl +* &=, |= can overflow with Bts Btr on small data types + +* num lock comes on with break key +* sort options for findfiles +* recalc_start could be more accurate before recalculating? +* Maybe, get rid of $LK,"0x20000","FF:::/SparrowOS/Compiler/CmpMain.CPP.Z,0x20000"$ in compiler. +* get rid of "$FG,2$$$PI$FG$" alias. diff --git a/SparrowOS/Accts/TS/TAD/Registry.CPP b/SparrowOS/Accts/TS/TAD/Registry.CPP new file mode 100644 index 0000000..9db1424 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/Registry.CPP @@ -0,0 +1,8 @@ +$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 new file mode 100644 index 0000000..d2c27b7 --- /dev/null +++ b/SparrowOS/Accts/TS/TAD/Test.CPP @@ -0,0 +1,53 @@ +#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/TSAdam.CPP b/SparrowOS/Accts/TS/TSAdam.CPP new file mode 100644 index 0000000..5b9189d --- /dev/null +++ b/SparrowOS/Accts/TS/TSAdam.CPP @@ -0,0 +1,413 @@ +#define CID_DFT 0 +#define CID_TAD8 1 + +I64 ts_cid=CID_DFT; + +#include "::/SparrowOS/Accts/TS/TSIDComputer" + +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; +} + +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; + switch (ts_cid) { + case CID_TAD8: + 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\""); + 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: + 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); + } 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); + } + DefinePrintF("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\""); + DefinePrintF("TS_HDS","\"DEF\""); + 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\""); + } +} 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)); + +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); +} TSInit2; + +if (ts_has_main_drv) + SetDrvTextAttr(TS_MAIN_DRV_LET, WHITE <<4|BLUE); +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) + SetDrvTextAttr(TS_IMG_DRV_LET, BLUE <<4|LTRED); +if (ts_has_cdrom_drv) + SetDrvTextAttr(TS_CDROM_DRV_LET,LTGRAY<<4|BLUE); + +#define TS_ISO_NAME TS_RAM_DRV ":/SparrowOSCD.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 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" + +//$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"$ + + +U0 CtrlAltR(I64) +{ + snd_record=!snd_record; +} +SetCtrlAltLetCB('R',&CtrlAltR,"Toggle snd_record"); + +Bool frame_grabber_paused=FALSE, + frame_grabber_on=FALSE; + +public U0 MyScreenShot(I64 bits=4) +{ + U8 *st; + CDirEntry *tempm; + I64 cnt=0; + tempm=FilesFind("::/Temp/ScreenShots/*.BMP"); + while (tempm) { + cnt++; + tempm=tempm->next; + } + st=MSPrintF("::/Temp/ScreenShots/SCRN%04d.BMP",cnt); + BMPFileCaptureScreen(st,bits); + Free(st); + 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) +{ + I64 frame_num=0; + I64 buf[136],buf2[136],buf3[136]; + F64 end_time=tNP,f; + TaskInitExt; + Silent(ON); //no output to screen + 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); + BMPFileCaptureScreen(buf); + Suspend(sys_winmgr_task); + StrCpy(buf3,buf); + + f=tNP; + while (end_timetask_flags,TASKf_IDLE); + while (sys_cur_scan_code&SCF_NUM) { + Suspend(sys_winmgr_task,FALSE); + Yield; + end_time=tNP; + } + while (end_time>tNP) { + Suspend(sys_winmgr_task,FALSE); + Yield; + } + LBtr(&Fs->task_flags,TASKf_IDLE); + } + Suspend(sys_winmgr_task,FALSE); +} + +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); + } +} + +U0 ScreenShotTask(I64) +{ + TaskInitExt; + MyScreenShot; +} + +U0 CtrlAltS(I64) +{ + Spawn(&ScreenShotTask); +} +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]; + StrCpy(buf1,word); + StrCpy(buf2,abbr); + + StrUtil(buf1,SUF_TO_LOWER); + StrUtil(buf2,SUF_TO_LOWER); + Grep(buf1,"/SparrowOS/"TEXT_FILE_MASK,"-l-i",buf2); + + *buf1=ToUpper(*buf1); + *buf2=ToUpper(*buf2); + Grep(buf1,"/SparrowOS/"TEXT_FILE_MASK,"-l-i",buf2); + + StrUtil(buf1,SUF_TO_UPPER); + StrUtil(buf2,SUF_TO_UPPER); + Grep(buf1,"/SparrowOS/"TEXT_FILE_MASK,"-l-i",buf2); +} + +public U0 ChkAll() +{ + U8 *ptr=TS_HDS; + while (*ptr) + ChkDsk(*ptr++); +} + +public U0 MyHAllRep(U8 *flags="-p",U8 *index=NULL) +{ + HashRep(Fs->hash_table,HTG_SRC_SYM-HTT_DEFINE_STR-HTT_CLASS,NULL,flags,0,index); +} + +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; + CDoc *doc=DocNew; + + MemSet(st,0,sizeof(st)); + MemSet(byte_bit_cnts,0,sizeof(byte_bit_cnts)); + for (i=0;i<256;i++) + for (j=0;j<7;j++) + if (Bt(&i,j)) + byte_bit_cnts[i]++; + + for (row=0;rowheight/FONT_HEIGHT;row++) { + for (col=0;colwidth/FONT_WIDTH;col++) { + + cur_char_image=0; + for (i=0;ifilename.name,out_name); + DocWrite(doc); + } + DocDel(doc); + } + } + 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/Accts/TS/TSDistribute.CPP b/SparrowOS/Accts/TS/TSDistribute.CPP new file mode 100644 index 0000000..247234c --- /dev/null +++ b/SparrowOS/Accts/TS/TSDistribute.CPP @@ -0,0 +1,543 @@ +//The CFG defines are $LK,"Here","FI:::/SparrowOS/Demo/AcctExample/TSAdam.CPP.Z"$. + +U0 ShowBootFileDate(U8 drv_let) +{ + CDirEntry de; + U8 *name=MSPrintF("%c:/OSMain.BIN.C",drv_let); + if (FileFind(name,&de)) + "%s %D %T\n",name,de.datetime,de.datetime; + else + "%s\n",name; + Free(name); +} + +U0 ShowBootFiles() +{ + U8 *ptr=TS_HDS; + while (*ptr) + ShowBootFileDate(*ptr++); +} + +U8 DrvMySelect() +{ + I64 result; + ShowBootFiles; + "Drive:"; + result=ToUpper(GetChar); + NewLine; + return result; +} + +U0 CmpDrv(U8 drv_let) +{ + drv_let=ToUpper(drv_let); + Auto(TS_CFG); + InstallBoot(drv_let); + if (StrOcc(TS_MASTER_BOOT_DRVS,drv_let)) + InstallMasterBoot(drv_let); +} + +U0 QMenuBoot(U8 drv_let=0) +{ + if (!drv_let) + drv_let=Prt2Drv(Fs->cur_prt); + Drv(drv_let); + Cd("/SparrowOS/OSMain"); + Auto(TS_MENU_CFG); + if (!Cmp("OSMain","OSMain",NULL,':')) + Boot("OSMain.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) +{ + U8 buf_s[128],buf_d[128]; + src=ToUpper(src); + dst=ToUpper(dst); + + Fmt(dst,TRUE,FALSE,PT_FAT32); + + SPrintF(buf_s,"%c:/SparrowOS",src); + SPrintF(buf_d,"%c:/SparrowOS",dst); + CopyTree(buf_s,buf_d); + + SPrintF(buf_s,"%c:/Windows",src); + SPrintF(buf_d,"%c:/Windows",dst); + CopyTree(buf_s,buf_d); + + SPrintF(buf_s,"%c:/Linux",src); + SPrintF(buf_d,"%c:/Linux",dst); + CopyTree(buf_s,buf_d); + + SPrintF(buf_s,"%c:/0000Boot",src); + SPrintF(buf_d,"%c:/0000Boot",dst); + CopyTree(buf_s,buf_d); + + SPrintF(buf_d,"%c:/Temp",dst); + MkDir(buf_d); + + SPrintF(buf_d,"%c:/Temp/ScreenShots",dst); + MkDir(buf_d); + + if (ts_has_tra_drv && dst==TS_TRA_DRV_LET) { + SPrintF(buf_d,"%c:/Logs",dst); + MkDir(buf_d); + SPrintF(buf_d,"%c:/Logs/SPARROWOSLogs",dst); + MkDir(buf_d); + } + DocClear; + Drv(dst); + CmpDrv(dst); +} + +U0 PmtMyCopyDrv() +{ + U8 src,dst; + "$$FG,RED$$\nCopy Src Drive:\n$$FG$$"; + src=DrvMySelect; + "$$FG,RED$$\nCopy Dst Drive:\n$$FG$$"; + dst=DrvMySelect; + MyCopyDrv(src,dst); +} + +public U0 FileCursorRem(U8 *filename) +{ + CDoc *doc; + doc=DocRead(filename,DOCF_PLAIN_TEXT|DOCF_NO_CURSOR); + DocWrite(doc); + DocDel(doc); +} + +public U0 FileCursorTop(U8 *filename) +{ + CDoc *doc; + doc=DocRead(filename,DOCF_PLAIN_TEXT); + doc->cur_entry=doc->root.next; + DocWrite(doc); + DocDel(doc); +} + +public U0 FilesCursorRem(U8 *mask="*") +{ + I64 fuf_flags=0; + 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); + CDirEntryDel(tempm); + tempm=tempm1; + } +} + +public U0 FilesCursorTop(U8 *mask="*") +{ + I64 fuf_flags=0; + 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); + CDirEntryDel(tempm); + tempm=tempm1; + } +} + +U0 UncollapseFile(U8 *filename,I64 *) +{ + CDoc *doc=DocRead(filename,DOCF_NO_CURSOR); + DocCollapse(FALSE,doc); + DocWrite(doc); + DocDel(doc); +} + +U0 UncollapseList(CDirEntry *tempm1,I64 *flags) +{ + CDirEntry *tempm2; + while (tempm1 && !Bt(flags,FUf_CANCEL)) { + tempm2=tempm1->next; + if (tempm1->attr & _ATTR_DIR) { + if (tempm1->sub) { + "%S %s\n","ST_SCANNING_DIR",tempm1->full_name; + UncollapseList(tempm1->sub,flags); + } + } else + UncollapseFile(tempm1->full_name,flags); + CDirEntryDel(tempm1); + tempm1=tempm2; + } +} + +U0 Uncollapse(U8 *files_find_mask=TEXT_FILE_MASK,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); +} + +U0 CopySongDir(U8 *files_find_mask,U8 threshold) +{ + CDoc *s; + CDocEntry *doc_e; + CDirEntry *tempm,*tempm1; + tempm1=tempm=FilesFind(files_find_mask); + while (tempm1) { + 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"); + tempm1=tempm1->next; + } + CDirListDel(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); +} + +U0 PrepForDistribution() +{ + Del("/SparrowOS/Demo/WebLogExample/WebLog.TXT.Z"); + Del("/SparrowOS/Demo/GameStarters/EagleDive.BIN.Z"); + DelTree("/SparrowOS/Accts/*Temp.TXT.Z"); + CopySongs; + +//User + Del("/SparrowOS/Accts/User/Registry.CPP.Z"); + +//Install + Del("/SparrowOS/Accts/Install/Registry.CPP.Z"); + +//SafeMode + Del("/SparrowOS/Accts/SafeMode/Registry.CPP.Z"); + + Touch("/SparrowOS/Accts/PersonalMenu.TXT.Z","+T"); +//TS + Touch("/SparrowOS/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*"); + + Cd("/SparrowOS"); + FilesCursorTop; + + DelTree("/SparrowOS/Demo/*.BI?"); + + Cd("/SparrowOS"); + S2T(SRC_FILE_MASK,"+r"); + Move(WSD_DEF_FILENAME,WSD_DEF_FILENAME_Z); +} + +U0 PrepForInHouse() +{ + Drv(TS_MAIN_DRV_LET); + PrepForDistribution; + Auto(TS_CDROM_CFG); + InstallBoot(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 ":/Windows","/Windows"); + CopyTree(TS_MAIN_DRV ":/Linux","/Linux"); + MkDir("/Temp"); + MkDir("/Temp/ScreenShots"); + CopyTree(TS_MAIN_DRV ":/0000Boot","/0000Boot"); +} + +U0 MakeSymbolFiles() +{ + CDoc *doc; + U8 *st; + if (ts_has_tra_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"); + DocWrite(doc); + StrCpy(doc->filename.name,st); + Free(st); + } + DocClear; + DocMax; + 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"); + DocWrite(doc); + StrCpy(doc->filename.name,st); + Free(st); + } + DocClear; + } +} + +I64 MakeLineCntFile() +{ + U8 *st; + CDoc *doc; + I64 result; + CDocEntry *tree_branch,*start_indent,*end_indent; + + DocClear; + Drv(TS_MAIN_DRV_LET); + PrepForDistribution; + + DocMax; + DocClear; + Cd(TS_MAIN_DRV ":/SparrowOS"); + result=LineCntRep; + if (doc=DocCur) { + st=StrNew(doc->filename.name); + StrCpy(doc->filename.name,TS_MAIN_DRV ":/SparrowOS/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"); + 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); + + st=MSPrintF("%,d",result); + DefineLoad("DD_SPARROWOS_LOC",st); + Free(st); + + DocWrite(doc); + DocDel(doc); + + "Total LOC:%12,d\n\n",result; + return result; +} + +U0 PrepForProduction(U8 *auto_cfg) +{ + Drv(TS_MAIN_DRV_LET); + PrepForDistribution; + Auto(auto_cfg); + InstallBoot(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 ":/Windows","/Windows"); + CopyTree(TS_MAIN_DRV ":/Linux","/Linux"); + MkDir("/Temp"); + DelTree("/SparrowOS/Accts/TS"); + CopyTree(TS_MAIN_DRV ":/0000Boot","/0000Boot"); + Del("/0000Boot/OldMBR.BIN.C"); + Del("/0000Boot/BootMHD2.BIN.C"); +} + +U0 MakeInHouseCDImage() +{ + PrepForInHouse; + CDFileCreate(TS_ISO_NAME,TS_IMG_DRV ":/*",NULL,BOOTCD_BIN_Z); + Drv(TS_MAIN_DRV_LET); +} + +U0 MakeProductionCDImage() +{ + PrepForProduction(PROD_CDROM_CFG); + CDFileCreate(TS_ISO_NAME,TS_IMG_DRV ":/*",NULL,BOOTCD_BIN_Z); + Drv(TS_MAIN_DRV_LET); +} + +U0 TSWebFile(U8 *name) +{ + U8 *name2; + CDirEntry de; + if (FileFind(name,&de)) { + "File:%s\n",name; + UncollapseFile(name,NULL); + Touch(name,"",NULL,de.datetime); + name2=ChgExt(name,"html"); + ToHtml(name,name2, + "The Sparrow Operating System\n" + "\n" + ); + Touch(name2,"",NULL,de.datetime); + Free(name2); + } +} + +U0 MakeWebSite() +{ + CDirEntry *tempm,*tempm2; + if (ts_has_tra_drv) { + DocClear; + Cd(TS_TRA_DRV ":/Wb"); + tempm=tempm2=FilesFind(TEXT_FILE_MASK,FUF_RECURSE|FUF_FLATTEN_TREE|FUF_JUST_FILES); + while (tempm) { + TSWebFile(tempm->full_name); + tempm=tempm->next; + } + CDirListDel(tempm2); + Drv(TS_MAIN_DRV_LET); + } +} + +U0 ToWeb(U8 *name) +{ + U8 *st,*st2; + if (ts_has_tra_drv) { + st=FileNameAbs(name); + if (!StrNCmp(st+1,":/SparrowOS/",12)) { + st2=MSPrintF(TS_TRA_DRV":/Wb/%s",st+13); + "%s\n",st2; + Copy(name,st2); + TSWebFile(st2); + Free(st2); + } + Free(st); + } +} + +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); + while (tempm) { + tempm1=tempm->next; + st=StrNew(tempm->full_name); + StrLastRem(st,"."); + Move(tempm->full_name,st); + Free(st); + CDirEntryDel(tempm); + tempm=tempm1; + } + FilesCursorRem(TS_TRA_DRV ":/Uncompressed/" TEXT_FILE_MASK); + } +} + +U0 MakeBack() +{ + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + 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"); + DocClear; + MakeInHouseCDImage; + DocClear; + Copy(TS_ISO_NAME,TS_TRA_DRV ":/Wb/SparrowOSTS.ISO"); + MakeProductionCDImage; + DocClear; + Copy(TS_ISO_NAME,TS_TRA_DRV ":/Wb/SparrowOSCD.ISO"); + Cd(TS_MAIN_DRV ":/SparrowOS"); + if (LinkChk) + throw; + MakeSymbolFiles; + MakeWebSite; + TSUncompress; + } + ChkAll; + SettingsPop; +} + +public U0 TSMount() +{ + 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); + } + 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); + } + Kill(task); +} + + +public U0 TSUpdate() +{ + TSMount; + TSCopy; +} + +public U0 TSInstall() +{ + TSPrtDsk; + TSCopy; +} + diff --git a/SparrowOS/Accts/TS/TSIDComputer.CPP b/SparrowOS/Accts/TS/TSIDComputer.CPP new file mode 100644 index 0000000..3a84230 --- /dev/null +++ b/SparrowOS/Accts/TS/TSIDComputer.CPP @@ -0,0 +1,7 @@ +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 new file mode 100644 index 0000000..3a84230 --- /dev/null +++ b/SparrowOS/Accts/TS/TSIDDft.CPP @@ -0,0 +1,7 @@ +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 new file mode 100644 index 0000000..1a6060a --- /dev/null +++ b/SparrowOS/Accts/TS/Wb2/Hymns.TXT @@ -0,0 +1,81 @@ + +$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 new file mode 100644 index 0000000..b7ca792 --- /dev/null +++ b/SparrowOS/Accts/TS/Wb2/LineCnt.TXT @@ -0,0 +1,721 @@ +$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 new file mode 100644 index 0000000000000000000000000000000000000000..f33112706b1b909cc5190bffcea22b272504c1e6 GIT binary patch literal 153718 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 literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/Wb2/ScreenShots.TXT b/SparrowOS/Accts/TS/Wb2/ScreenShots.TXT new file mode 100644 index 0000000..e09b4c1 --- /dev/null +++ b/SparrowOS/Accts/TS/Wb2/ScreenShots.TXT @@ -0,0 +1,14 @@ + +$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 new file mode 100644 index 0000000000000000000000000000000000000000..b025780b603e640fb9f05daedd789b6415fbeb44 GIT binary patch literal 153718 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 literal 0 HcmV?d00001 diff --git a/SparrowOS/Accts/TS/Wb2/Tanks.BMP b/SparrowOS/Accts/TS/Wb2/Tanks.BMP new file mode 100644 index 0000000000000000000000000000000000000000..de80b44b9d96df7b1ccdd95cba5f6b0041284e2c GIT binary patch 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/Adam2.CPP b/SparrowOS/Adam/Adam2.CPP new file mode 100644 index 0000000..0ef719a --- /dev/null +++ b/SparrowOS/Adam/Adam2.CPP @@ -0,0 +1,72 @@ +#exe {OptOn(OPTf_WARN_PAREN);}; +#exe {OptOn(OPTf_WARN_DUP_TYPES);}; +#help_index "Task/Login" + +//Use Dbg("Type 'Go1;'"); to debug before window mgr is running. + +public F64 os_version=1.02; + +#include "AdamExt.HPP.Z" + +#include "Math2a" +#include "Training" +#include "Utils2a" +#include "MathODE" + +Cd("::/SparrowOS/Adam/Gr");; +#include "Gr" + +Cd("::/SparrowOS/Adam/Snd");; +#include "Snd" + +Cd("::/SparrowOS/Adam/Dsk");; +#include "Dsk2" + +Cd("::/SparrowOS/Adam");; +#include "Menu" +#include "Window" +#include "Dbg2a" + +Cd("::/SparrowOS/Adam/Doc");; +#include "Doc" +LBts(&sys_run_level,RLf_DOC); + +Cd("::/SparrowOS/Adam/Ctrls");; +#include "Ctrls" + +Cd("::/SparrowOS/Adam");; +#include "AutoFile2a" +#include "LogIn" + +Cd("::/SparrowOS/Adam/WordStat");; +#include "WordStat" + +Cd("::/SparrowOS/Adam");; +#include "Profiler" +#include "Hash2a" +#include "TaskSettings" +#include "DevInfo" +#include "DocDefines" + +//Dbg("Type 'Go1;'"); + +UseTermDoc; + +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); +SysLogin; +LBts(&sys_run_level,RLf_LOGIN); +RegistryInit; +LBts(&sys_run_level,RLf_REGISTRY); + +Cd("::/SparrowOS/Adam");; +#include "WallPaper" +#exe {OptOff(OPTf_WARN_PAREN);}; +#exe {OptOff(OPTf_WARN_DUP_TYPES);}; +LBts(&sys_run_level,RLf_ADAM2); + +Cd("HOME");; +#include "Adam3" diff --git a/SparrowOS/Adam/AdamExt.HPP b/SparrowOS/Adam/AdamExt.HPP new file mode 100644 index 0000000..337bcc2 --- /dev/null +++ b/SparrowOS/Adam/AdamExt.HPP @@ -0,0 +1,105 @@ +extern Bool win_show_menu; +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); +extern CDocEntry *DocPutSprite(CDoc *doc,U8 *elems,U8 *txt=NULL); +extern U0 DrawTaskBorder(CTask *task); +extern U0 DrawCtrls(CTask *task); +extern U0 MgdSliderCtrl(CDoc *doc); +extern U0 WinScrollsInit(CTask *task); + +extern I64 doc_tag_types[],doc_nontag_invisible_types[], + doc_form_types[],doc_data_types[]; +extern I64 doc_dft_flags1[],doc_dft_flags2[],doc_dft_type_flags[]; + +extern I64 PopUp(U8 *msg,CTask *parent=NULL,CTask **_pu_task=NULL); +extern CDocEntry *DocPutS(CDoc *doc,U8 *st); +extern Bool PopUpNoYes(U8 *header=NULL,U8 *footer=NULL); +extern I64 PopUpMenu(CDoc *doc,I64 doc_flags=0); +extern I64 PopUpRangeI64(I64 lo,I64 hi,I64 step=1,U8 *header=NULL,U8 *footer=NULL); +extern I64 PopUpColor(U8 *header=NULL,Bool allow_transpant=TRUE,Bool allow_dft=TRUE); +extern I64 PopUpLightingColor(U8 *header=NULL); +extern I64 PopUpDitherColor(U8 *header=NULL); +extern U8 *PopUpMGetS(U8 *header=NULL); +extern Bool PopUpTransform(I64 *r); +extern U0 PopUpSnap(CSnap *g); +extern CDoc *DocNew(CTask *task=NULL); +extern CDoc *DocRead(U8 *name,I64 flags=0); +extern U0 EdCodeTools(CDoc *doc); +extern U0 DocDel(CDoc *doc); +extern U0 DocMax(I64 i=MAX_I32); +extern CDocEntry *DocPrintF(CDoc *doc,U8 *src,...); +extern U8 *EdSprite(I64 bin_num); +extern Bool View(); +extern Bool DocLock(CDoc *doc); +extern Bool DocUnlock(CDoc *doc); +extern U0 DocIns(CDoc *doc,CDocEntry *doc_e); +extern U0 DocDataFmt(CDocEntry *doc_e); +extern U0 DocLineNumGoTo(CDoc *doc,I64 linenum); //one based +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 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); +extern Bool DocCursor(Bool show=OFF,CDoc *doc=NULL); +extern U0 DocBottom(CDoc *doc=NULL); +extern U0 DocBinsValidate(CDoc *doc); +extern U0 DocQueRem(CDoc *doc); +extern U0 DocHome(CDoc *doc=NULL); +extern U0 DocCenter(CDoc *doc=NULL,I64 recalc=DOC_RECALC_ALL); +extern U0 DocRst(CDoc *doc,Bool is_old); +extern U0 DocQueIns(CDoc *doc,CDoc *pred); +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 U0 DocPutBMPFile(CDoc *doc=NULL,U8 *fname,Bool use_ms_paint_palette=FALSE); + +extern U0 WSFillIn(I64 n); +extern U0 WSMan(I64 n,CTask *parent=NULL); +extern U0 WSDFillin(I64 n); +extern U0 WSDDef(I64 n,CTask *parent=NULL); +extern Bool WordStat(Bool val=ON); +extern U0 WSDDisplayDefs(CDoc *doc,U8 *st,I64 num=-1); +extern U0 WSFindMisspelled(CDoc *doc); + +extern U0 DocHelpIndex(CDoc *doc,U8 *index); +extern U0 AcctOneTimePopUp(I64 flag_num,U8 *msg); +extern Bool PopUpOk(U8 *header=NULL,U8 *footer=NULL); +extern Bool PopUpCancelOk(U8 *header=NULL,U8 *footer=NULL); +extern I64 PopUpFile(U8 *filename,Bool warn_ext=TRUE,CTask *parent=NULL,CTask **_pu_task=NULL); +extern I64 AdamFile(U8 *filename,Bool warn_ext=TRUE); + +extern CTaskSettings *SettingsPush(CTask *task=NULL,I64 flags=0); +extern U0 SettingsPop(CTask *task=NULL,I64 flags=0); + +extern U0 WinScrollNull(CTask *task,CD3I64 *s); +extern U0 WinScrollRestore(CTask *task,CD3I64 *s); +extern F64 win_desired_refresh,win_actual_refresh; +extern Bool WinBorder(Bool val,CTask *task=NULL); +extern U0 WinMgrSync(I64 cnt=1,Bool force=FALSE); +extern U0 WinMax(CTask *task=NULL); +extern Bool SetCursorPos(CTask *task,I64 iptx,I64 ipty,Bool set_cursor=TRUE); +extern F64 refresh_ode_time,last_refresh_ode_time; + +extern CMenuEntry *MenuEntryFind(CMenu *m,U8 *full_name); +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 CCtrl *CtrlFindUnique(CTask *task,I64 type); +extern Bool CtrlInside(CCtrl *c,I64 x,I64 y); +extern CCtrl *ViewAnglesNew(CTask *task=NULL); +extern U0 ViewAnglesDel(CTask *task=NULL); + +#define FM_NORMAL 0 +#define FM_PICK_FILE 1 +#define FM_PICK_DIR 2 +extern I64 GrepWiz(); diff --git a/SparrowOS/Adam/AutoFile2a.CPP b/SparrowOS/Adam/AutoFile2a.CPP new file mode 100644 index 0000000..c2cd894 --- /dev/null +++ b/SparrowOS/Adam/AutoFile2a.CPP @@ -0,0 +1,138 @@ +#help_index "AutoFile;Training" + +public U0 AFPmtStr(U8 *st) +{ + I64 ch,sc; + U8 buf[136]; + while (*st) { + ch=GetKey(&sc,FALSE); + if (sc.u8[0]!=SC_SHIFT && + sc.u8[0]!=SC_ALT && + sc.u8[0]!=SC_CTRL) { + if (ch==*st) { + '' ch; + st++; + } else { + if (*st==CH_NEW_LINE) + SPrintF(buf,"Press the '$$FG,GREEN$$$$FG$$' key"); + else if (*st==CH_SPACE) + SPrintF(buf,"Press the '$$FG,GREEN$$$$FG$$' key"); + else + SPrintF(buf,"Press the '$$FG,GREEN$$%c$$FG$$' key",*st); + PopUpOk(buf); + } + } + } +} + +public U0 AFDelayedPutS(U8 *st,I64 mS=100) +{ + I64 ch; + while (ch=*st++) { + '' ch; + Sleep(mS); + } +} + +public U0 AFGetKey(I64 scancode,I64 sc_mask=0xFF|SCF_SHIFT|SCF_CTRL|SCF_ALT) +{ + I64 sc,ch; + U8 buf[128],*st; + do { + ch=GetKey(&sc); + if (sc.u8[0]!=SC_PRTSCRN1 && + !(sc.u8[0]==SC_SHIFT && scancode&SCF_SHIFT) && + !(sc.u8[0]==SC_CTRL && scancode&SCF_CTRL) && + !(sc.u8[0]==SC_ALT && scancode&SCF_ALT) ) { + if (sc&sc_mask!=scancode&sc_mask) { + st=ScanCode2KeyName(scancode); + SPrintF(buf,"Press the '$$FG,GREEN$$%s$$FG$$' key",st); + Free(st); + PopUpOk(buf); + } + } + } while (sc&sc_mask!=scancode&sc_mask); + Msg(MSG_KEY_DOWN,ch,sc); +} + +public U0 AFGetChar(I64 ch1,I64 ch2=0) +{ + I64 sc,ch; + U8 buf[256],*st1,*st2; + while (TRUE) { + ch=GetKey(&sc); + if (sc.u8[0]!=SC_SHIFT && + sc.u8[0]!=SC_ALT && + sc.u8[0]!=SC_CTRL) { + if (ch!=ch1 && (!ch2 || ch!=ch2)) { + if (!ch2) { + st1=A2KeyName(ch1); + SPrintF(buf,"Press the '$$FG,GREEN$$%s$$FG$$' key",st1); + Free(st1); + } else { + st1=A2KeyName(ch1); + st2=A2KeyName(ch2); + SPrintF(buf,"Press the '$$FG,GREEN$$%s$$FG$$' key or\n" + "the '$$FG,GREEN$$%s$$FG$$' key.",st1,st2); + Free(st1); + Free(st2); + } + PopUpOk(buf); + } else + break; + } + } + Msg(MSG_KEY_DOWN,ch,sc); +} + +public U0 AFUntilKey(I64 scancode,I64 sc_mask=0xFF|SCF_SHIFT|SCF_CTRL|SCF_ALT) +{ + I64 sc,ch; + do { + ch=GetKey(&sc); + Msg(MSG_KEY_DOWN,ch,sc); + } while (sc&sc_mask!=scancode&sc_mask); +} + +public U0 AFUntilChar(I64 ch1,I64 ch2=0) +{ + I64 sc,ch; + do { + ch=GetKey(&sc); + Msg(MSG_KEY_DOWN,ch,sc); + } while (ch!=ch1 && (!ch2 || ch!=ch2)); +} + +I64 af_l,af_r,af_c; + +U0 AFSetIPPlot(I64 mS,I64 x,I64 y,I64 z) +{ + SetIP(x,y,z,af_l,af_r,af_c); + Sleep(mS); +} + +public U0 AFSetIP(I64 mS=7,I64 x=MAX_I64,I64 y=MAX_I64,I64 z=MAX_I64,I64 l=MAX_I64,I64 r=MAX_I64,I64 c=MAX_I64) +{ + if (!(0<=xfile_size)!=NATIVE_XSUM) { + "Bad XSum\n\n"; + return; + } + + absname=FileNameAbs(fbuf); + Free(fbuf); + fbuf=StrNew(absname); + FileExtRem(fbuf); + if (fbuf[1]==':' && StrLen(fbuf)>2) + "Module Name:%s\n",fbuf+2; + else + "No Module Name\n"; + Free(fbuf); + + ptr=bfh(U8 *)+bfh->loader_patch_table_offset; + while (etype=*ptr++) { + i=*ptr(U32 *)++; + sptr=ptr; + ptr+=StrLen(sptr)+1; + "%16Z:$$FG,GREEN$$%s$$FG$$:%X ",etype,"ST_BIN_FILE_TYPES",sptr,i; + switch (etype) { + case EIE_REL_U8...EIE_LIT_U64: + if (*sptr) + saved_hash_ptr=HashFind(sptr,Fs->hash_table,HTG_ALL); + if (!saved_hash_ptr) + "%S%s\n","ST_UNRESOLVED_REFERENCE",sptr; + break; + case EIE_ABS_ADDR: + NewLine; + for (j=0;j>4) +USE16 +BCD_START:: +//DL is supposed to have the BIOS drive number + CLD + MOV AX,BOOT_HIGH_LOC + MOV ES,AX + + CLI + MOV SS,AX + MOV SP,BOOT_STK_SIZE+MODULE_SIZE + STI + + CALL BCD_GET_IP +BCD_GET_IP: + POP BX + SUB BX,BCD_GET_IP-BCD_START + SHR BX,4 +//Copy this bootloader code to just under 0x80000 + MOV AX,CS + ADD AX,BX + MOV DS,AX + MOV CX,MODULE_SIZE + XOR SI,SI + XOR DI,DI + REP_MOVSB + + MOV AX,BOOT_HIGH_LOC + MOV DS,AX + +//My assembler doesn't support 16-bit very well. + DU8 0xEA; //JMP BOOT_HIGH_LOC:BCD_MAIN + DU16 BCD_MAIN-BCD_START,BOOT_HIGH_LOC; + +BCD_BIOS_DRV_NUM: DU8 0; +BCD_PAGE: DU8 0; + +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_NOT64_MSG: + DU8 "SparrowOS requires a 64-bit capable processor.\n\r",0; + +//These get patched by $LK,"CDBootFileCreate","MN:CDBootFileCreate"$ +BCD_BLK_LO:: DU16 0; +BCD_BLK_HI:: DU16 0; +BCD_BLK_CNT:: DU16 0; + +BCD_PROGRESS_STEP:: DU32 0; +BCD_PROGRESS_VAL:: DU32 0; + +BCD_PUTCHAR:: + MOV AH,0xE + MOV BL,7 //Might be foreground color on some BIOS's + MOV BH,U8 [BCD_PAGE-BCD_START] + INT 0x10 +BCD_RET:: + RET +BCD_PUTS:: +@@1: LODSB + OR AL,AL + JZ BCD_RET + CALL BCD_PUTCHAR + JMP @@1 + +BCD_MAIN:: + MOV U8 [BCD_BIOS_DRV_NUM-BCD_START],DL //Passed in by BIOS + + MOV AH,0xF + INT 0x10 + MOV U8 [BCD_PAGE-BCD_START],BH //video page + + MOV EAX,0x80000000 + CPUID + CMP EAX,0x80000001 + JB @@05 + + MOV EAX,0x80000001 + CPUID + BT EDX,29 + JC @@15 +@@05: MOV SI,BCD_NOT64_MSG-BCD_START + CALL BCD_PUTS +@@10: JMP @@10 + +@@15: MOV SI,BCD_SPARROWOS_MSG-BCD_START + CALL BCD_PUTS + + MOV AX,BOOT_RAM_BASE/16 + MOV ES,AX + XOR ECX,ECX + MOV CX,U16 [BCD_BLK_CNT-BCD_START] + + MOV EAX,(80-7-9)*65536 //80 columns + XOR EDX,EDX + DIV ECX + MOV U32 [BCD_PROGRESS_STEP-BCD_START],EAX + MOV U32 [BCD_PROGRESS_VAL-BCD_START],0 + + MOV AX,U16 [BCD_BLK_LO-BCD_START] + MOV DX,U16 [BCD_BLK_HI-BCD_START] + +@@20: PUSH CX //Blk cnt + +//READ BLK + PUSH AX //Blk lo + PUSH DX //Blk hi + PUSH ES //Buf seg + MOV U16 [BCD_DAP_BLK-BCD_START],AX + MOV U16 [BCD_DAP_BLK+2-BCD_START],DX + MOV AX,ES + MOV U16 [BCD_DAP_BUF+2-BCD_START],AX //ES:0000 + MOV SI,BCD_DAP-BCD_START //DS:SI=DAP + MOV AH,0x42 + MOV DL,U8 [BCD_BIOS_DRV_NUM-BCD_START] + INT 0x13 + + POP AX //ES + ADD AX,CD_BLK_SIZE/16 + MOV ES,AX + POP DX + POP AX + INC AX + JNZ @@25 + INC DX + +@@25: PUSH AX + MOV BX,U16 [BCD_PROGRESS_VAL+2-BCD_START] + MOV EAX,U32 [BCD_PROGRESS_STEP-BCD_START] + ADD U32 [BCD_PROGRESS_VAL-BCD_START],EAX + CMP U16 [BCD_PROGRESS_VAL+2-BCD_START],BX + JE @@30 + MOV AL,'.' + CALL BCD_PUTCHAR +@@30: POP AX + + POP CX + LOOP @@20 + +//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"$ + +//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"$ +BCD_END:: +#assert BCD_END-BCD_START>4) + +USE16 +BHD_START:: + DU8 0x5A DUP(0); //See $LK,"CFAT32Boot","MN:CFAT32Boot"$.code[] +BHD_CODE:: + CLD + + MOV AX,VGA_TEXT_MEM_BASE/16 + MOV FS,AX + MOV U32 FS:[4],0 + MOV U32 FS:[0],'B'+0x2000+('3'+0x2000)<<16 + + MOV AX,BOOT_HIGH_LOC + MOV ES,AX + + CLI + MOV SS,AX + MOV SP,BOOT_STK_SIZE+MODULE_SIZE + STI + + CALL BHD_GET_IP +BHD_GET_IP: + POP BX + SUB BX,BHD_GET_IP-BHD_START + SHR BX,4 +//Copy this bootloader code to just under 0x80000 + MOV AX,CS + ADD AX,BX + MOV DS,AX + MOV CX,MODULE_SIZE + XOR SI,SI + XOR DI,DI + REP_MOVSB + + MOV AX,BOOT_HIGH_LOC + MOV DS,AX + +//My assembler doesn't support 16-bit very well. + DU8 0xEA; //JMP BOOT_HIGH_LOC:BHD_HISTART + DU16 BHD_HISTART-BHD_START,BOOT_HIGH_LOC; + +BHD_BIOS_DRV_NUM: DU8 0; + +//Gets patched by $LK,"InstallBoot","MN:InstallBoot"$(). +BHD_BLK_CNT:: DU16 0; + +BHD_DAP: DU8 16,0,1,0; //One blk at a time +BHD_DAP_BUF: DU16 0,0; +//Gets patched by $LK,"InstallBoot","MN:InstallBoot"$(). +BHD_DAP_BLK:: //64-bit +BHD_DAP_BLK_LO: DU32 0; +BHD_DAP_BLK_HI: DU32 0; + +BHD_HISTART: + MOV U8 [BHD_BIOS_DRV_NUM-BHD_START],DL //Passed in by BIOS + MOV AX,BOOT_RAM_BASE/16 + MOV ES,AX + XOR ECX,ECX + MOV CX,U16 [BHD_BLK_CNT-BHD_START] + +@@05: PUSH CX //Blk cnt + +//READ BLK + PUSH ES //Buf seg + MOV AX,ES + MOV U16 [BHD_DAP_BUF+2-BHD_START],AX //ES:0000 + MOV SI,BHD_DAP-BHD_START //DS:SI=DAP + MOV AH,0x42 + MOV DL,U8 [BHD_BIOS_DRV_NUM-BHD_START] + INT 0x13 + + POP AX //ES + ADD AX,BLK_SIZE/16 + MOV ES,AX + INC U32 [BHD_DAP_BLK_LO-BHD_START] + JNZ @@10 + INC U32 [BHD_DAP_BLK_HI-BHD_START] + +@@10: POP CX + LOOP @@05 + + MOV EBX,BOOT_CODE_HARDDRV //$MA+A-X+PU,"See sys_boot_code","Grep(\"sys_boot_code\",\"/SparrowOS/\"TEXT_FILE_MASK);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"$ +BHD_END:: +#assert BHD_END-BHD_START>4) +USE16 +BMHD_START:: +BMHD_CODE:: + CLD + + MOV AX,BOOT_HIGH_LOC + + CLI + MOV SS,AX + MOV SP,BOOT_STK_SIZE+MODULE_SIZE + STI + + PUSHFW + PUSH DS + PUSH ES + PUSH FS + PUSH GS + PUSH ECX + PUSH EBX + PUSH EDX + PUSH EBP + + MOV ES,AX + + MOV AX,VGA_TEXT_MEM_BASE/16 + MOV FS,AX + MOV U32 FS:[0],'B'+0x2000+('1'+0x2000)<<16 + CALL BMHD_GET_IP +BMHD_GET_IP: + POP BX + SUB BX,BMHD_GET_IP-BMHD_START + MOV CX,BX + SHR BX,4 +//Copy this bootloader code to just under 0x80000 + MOV AX,CS + PUSH AX + ADD AX,BX + MOV DS,AX + MOV U16 [BMHD_OLD_CS_IP-BMHD_START],CX + POP U16 [BMHD_OLD_CS_IP+2-BMHD_START] + + MOV CX,MODULE_SIZE + XOR SI,SI + XOR DI,DI + REP_MOVSB + + MOV AX,BOOT_HIGH_LOC + MOV DS,AX + +//My assembler doesn't support 16-bit very well. + DU8 0xEA; //JMP BOOT_HIGH_LOC:BMHD_HISTART + DU16 BMHD_HISTART-BMHD_START,BOOT_HIGH_LOC; + +BMHD_BIOS_DRV_NUM: DU8 0; +BMHD_OLD_CS_IP: DU16 0,0; +//Gets patched by $LK,"InstallBoot","MN:InstallBoot"$(). +BMHD_BLK_CNT:: DU16 0; + +BMHD_DAP: DU8 16,0,1,0; //One blk at a time +BMHD_DAP_BUF: DU16 0,0; +//Gets patched by $LK,"InstallBoot","MN:InstallBoot"$(). +BMHD_DAP_BLK:: //64-bit +BMHD_DAP_BLK_LO: DU32 0; +BMHD_DAP_BLK_HI: DU32 0; + +BMHD_HISTART: + MOV U8 [BMHD_BIOS_DRV_NUM-BMHD_START],DL //Passed in by BIOS + MOV AX,BOOT_RAM_BASE/16 + MOV ES,AX + XOR ECX,ECX + MOV CX,U16 [BMHD_BLK_CNT-BMHD_START] + +@@05: PUSH CX //Blk cnt + +//READ BLK + PUSH ES //Buf seg + MOV AX,ES + MOV U16 [BMHD_DAP_BUF+2-BMHD_START],AX //ES:0000 + MOV SI,BMHD_DAP-BMHD_START //DS:SI=DAP + MOV AH,0x42 + MOV DL,U8 [BMHD_BIOS_DRV_NUM-BMHD_START] + INT 0x13 + + POP AX //ES + ADD AX,BLK_SIZE/16 + MOV ES,AX + INC U32 [BMHD_DAP_BLK_LO-BMHD_START] + JNZ @@10 + INC U32 [BMHD_DAP_BLK_HI-BMHD_START] + +@@10: POP CX + LOOP @@05 + + MOV DL,U8 [BMHD_BIOS_DRV_NUM-BMHD_START] + MOV EBX,U32 [BMHD_OLD_CS_IP-BMHD_START] +//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,"BMHD2_START","FF:::/SparrowOS/Adam/Boot/BootMHD2.CPP.Z,BMHD2_START"$ +BMHD_END:: +#assert BMHD_END-BMHD_START<=440 +} diff --git a/SparrowOS/Adam/Boot/BootMHD2.CPP b/SparrowOS/Adam/Boot/BootMHD2.CPP new file mode 100644 index 0000000..ecabbce --- /dev/null +++ b/SparrowOS/Adam/Boot/BootMHD2.CPP @@ -0,0 +1,119 @@ +asm { +#define MODULE_SIZE 2*BLK_SIZE +#define BOOT_HIGH_LOC ((BOOT_RAM_LIMIT-(BOOT_STK_SIZE+MODULE_SIZE))>>4) +USE16 +BMHD2_START:: + MOV U32 FS:[0],'B'+0x2000+('2'+0x2000)<<16 + + MOV AX,BOOT_HIGH_LOC + MOV ES,AX +//Copy this bootloader code to just under 0x80000 + MOV AX,CS + MOV DS,AX + MOV U32 [BMHD2_OLD_CS_IP-BMHD2_START],EBX + MOV U8 [BMHD2_BIOS_DRV_NUM-BMHD2_START],DL + + MOV CX,MODULE_SIZE + XOR SI,SI + XOR DI,DI + REP_MOVSB + + MOV AX,BOOT_HIGH_LOC + MOV DS,AX + +//My assembler doesn't support 16-bit very well. + DU8 0xEA; //JMP BOOT_HIGH_LOC:BMHD2_HISTART + DU16 BMHD2_HISTART-BMHD2_START,BOOT_HIGH_LOC; + +BMHD2_BOOT_MSG:: + DU8 256 DUP(0); + +BMHD2_BIOS_DRV_NUM: DU8 0; +BMHD2_PAGE: DU8 0; +BMHD2_BLK_ARRAY:: DU64 8 DUP(0); + +BMHD2_DAP: DU8 16,0,1,0; //One blk at a time +BMHD2_DAP_BUF: DU16 0,0; +BMHD2_DAP_BLK:: //64-bit +BMHD2_DAP_BLK_LO: DU32 0; +BMHD2_DAP_BLK_HI: DU32 0; + +BMHD2_PUTCHAR:: + MOV AH,0xE + MOV BL,7 //Might be foreground color on some BIOS's + MOV BH,U8 [BMHD2_PAGE-BMHD2_START] + INT 0x10 +BMHD2_RET:: + RET +BMHD2_PUTS:: +@@1: LODSB + OR AL,AL + JZ BMHD2_RET + CALL BMHD2_PUTCHAR + JMP @@1 + +BMHD2_GETCHAR: + XOR AH,AH + INT 0x16 + PUSH AX + MOV AH,0x0E + MOV BX,0x07 + INT 0x10 + POP AX + RET + +BMHD2_HISTART: + MOV AH,0xF + INT 0x10 + MOV U8 [BMHD2_PAGE-BMHD2_START],BH //video page + + MOV U32 FS:[0],0 +@@5: MOV SI,BMHD2_BOOT_MSG-BMHD2_START + CALL BMHD2_PUTS + CALL BMHD2_GETCHAR + CMP AL,'0' + JB @@5 + CMP AL,'8' + JAE @@5 + AND EAX,7 + + MOV EBX,U32 BMHD2_BLK_ARRAY-BMHD2_START[EAX*8] + MOV EAX,U32 BMHD2_BLK_ARRAY+4-BMHD2_START[EAX*8] + + OR EBX,EBX + JNZ @@10 + OR EAX,EAX + JZ @@5 + +@@10: MOV U32 [BMHD2_DAP_BLK_LO-BMHD2_START],EBX + MOV U32 [BMHD2_DAP_BLK_HI-BMHD2_START],EAX + + MOV AX,U16 [BMHD2_OLD_CS_IP-BMHD2_START] + SHR AX,4 + ADD AX,U16 [BMHD2_OLD_CS_IP+2-BMHD2_START] + MOV U16 [BMHD2_DAP_BUF+2-BMHD2_START],AX //ES:0000 + MOV SI,BMHD2_DAP-BMHD2_START //DS:SI=DAP + MOV DL,U8 [BMHD2_BIOS_DRV_NUM-BMHD2_START] + MOV AH,0x42 + INT 0x13 + + + POP EBP + POP EDX + POP EBX + POP ECX + XOR EAX,EAX + POP GS + POP FS + POP ES + POP DS + POPFW + +//My assembler doesn't support 16-bit very well. + DU8 0xEA; //JMP xxxx:yyyy +BMHD2_OLD_CS_IP: + DU16 0,0; +BMHD2_END:: +//Continues here $LK,"::/SparrowOS/Adam/Boot/BootHD.CPP.Z","FF:::/SparrowOS/Adam/Boot/BootHD.CPP.Z,START"$ +#assert BMHD2_END-BMHD2_START>BLK_SIZE_BITS); + + MemCpy(br,BCD_START,BCD_END-BCD_START); + FileWrite(BOOTCD_BIN_Z,br,CD_BOOT_LOADER_SIZE); + Free(br); + return TRUE; +} + +#help_index "Call" +asm { +USE64 +_HI_CALL:: + ENTER 0 + MOV RAX,U64 16[RBP] + OR RAX,RAX + JZ @@05 + CALL RAX +@@05: LEAVE + RET1 8 +} +_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 +//wish to boot. +{ + I64 size; + COSMain *hi_image,*lo_image=sys_boot_base-sizeof(CBinFile), + reg *shutdown,*hi_image2; + + if (!(hi_image2=FileRead(filename,&size))) return; + switch (snd_dev) { + case SD_PC_SPEAKER: + break; + case SD_HD_AUDIO: + CallExtStr("HDAudioEnd",TRUE); + break; + } + + shutdown=MAlloc(SYS_RESTART_OSMAIN_END-SYS_RESTART_OSMAIN,Fs->code_heap); + hi_image=MAlloc(size,Fs->code_heap); + MemCpy(hi_image,hi_image2,size); + Free(hi_image2); + + hi_image->boot_base=lo_image(U8 *)+sizeof(CBinFile); + hi_image->boot_patch_table_base=lo_image(U8 *)+hi_image->h.loader_patch_table_offset; + MemCpy(&hi_image->sys_mem_E801,&lo_image->sys_mem_E801,2*2); + MemCpy(&hi_image->sys_mem_E820,&lo_image->sys_mem_E820,NUM_MEM_E820_ENTRIES*MEM_E820_ENTRY_SIZE); + hi_image->sys_gr_mode=lo_image->sys_gr_mode; + hi_image->sys_pci_busses=lo_image->sys_pci_busses; + hi_image->boot_code=BOOT_CODE_RAM; + + Cli; + if (mp_cnt>1) + MPHalt; + + MemCpy(shutdown,SYS_RESTART_OSMAIN,SYS_RESTART_OSMAIN_END-SYS_RESTART_OSMAIN); + MemCpy(&hi_image->sys_gdttab,&lo_image->sys_gdttab,GDT_SIZE); + MemCpy(lo_image,hi_image,size); + HiCall(shutdown); +} + +#help_index "Install" +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); + DelTree(buf_d); + CopyTree(buf_s,buf_d); +} + +U8 ChkWritable(U8 drv_let=0) +{ + Bool cont=TRUE; + U8 writable_drv=drv_let; + CPrt *p; + CBlkDev *bdev; + if (!IsDrvWritable(drv_let)) { + '' drv_let; + ": Drive is read-only.\n"; + do { + "Enter RAM drive (usually 'B') for temporary files:"; + writable_drv=ToUpper(GetChar); + NewLine; + p=Drv2Prt(writable_drv); + bdev=p->bdev; + if (bdev->type!=BDT_RAM || + !IsDrvWritable(writable_drv)) + "Not A RAM Drive\n"; + else + cont=FALSE; + } while (cont); + Fmt(writable_drv,FALSE,FALSE); + InstallCDir(drv_let,writable_drv); + } + return writable_drv; +} + + +#help_index "Install" +public U0 MakeAll() +//Call from $LK,"InstallBoot","MN:InstallBoot"$() 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. + +{ + Cd("/SparrowOS/Compiler"); + if (Cmp("Compiler","Compiler",,':')) + throw; + Cd("/SparrowOS/OSMain"); + if (Cmp("OSMain","OSMain",,':')) + throw; +} + +public Bool InstallBoot(U8 src_drv,U8 dst_drv=0) +{ +//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,"Install Documentation","FI:::/SparrowOS/Doc/Install.TXT.Z"$ + +//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"$ + + CBlkDev *bdev; + CPrt *p; + CFAT32Boot br; + CDirEntry de; + I64 i; + Bool result=FALSE; + + try { + if (!src_drv) src_drv=Fs->cur_prt->drv_let; + if (!dst_drv) dst_drv=src_drv; + + //This passes a cfg arg for + //compilation of OSMain which is accessed + //within a #exe {} statement. + //See $LK,"InsBootDstDrv","FF:::/SparrowOS/OSMain/OSCfg.CPP.Z,InsBootDstDrv"$ + //(There is no way to set compiler options.) + NamedFramePtrAdd("InsBootDstDrv",dst_drv); + src_drv=ChkWritable(src_drv); + if (!Drv(src_drv)) + throw; + MakeAll; + Cd("/"); + + bdev=Drv2BlkDev(dst_drv); + p =Drv2Prt (dst_drv); + switch (bdev->type) { + case BDT_ATAPI: + Move("/SparrowOS/OSMain/OSMain.BIN.Z",BOOT_DIR_OSMAIN_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"; + else { + "Modifying partition boot record.\n"; + RBlks(p,&br,p->offset,1); + br.jump_and_nop[0]=0xEB; + br.jump_and_nop[1]=0x58; + br.jump_and_nop[2]=0x90; + *BHD_BLK_CNT(U16 *)=(de.size+BLK_SIZE-1)>>BLK_SIZE_BITS; + *BHD_DAP_BLK(I64 *)=p->data+de.cluster*p->spc; + for (i=0;ioffset,1); + result=TRUE; + } + break; + } + } catch + CatchAll; + NamedFramePtrDel("InsBootDstDrv"); + return result; +} + + +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); + CPrt *p; + CMasterBoot mbr; + Drv(dst_drv); + p=Fs->cur_prt; + if (p->type!=PT_NATIVE && p->type!=PT_FAT32) + PutDefineErr("ST_NOT_NATIVE"); + else { + //Bypass partition bounds-checking + BlkDevLock(bdev); + ATAReadBlks(bdev,&mbr,0,1); + BlkDevUnlock(bdev); + + Drv(dst_drv); + MkDir(BOOT_DIR); + FileWrite(OLDMBR_BIN_C,&mbr,BLK_SIZE); + } +} + +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); + CMasterBoot *mbr; + Drv(src_drv); + if (mbr=FileRead(OLDMBR_BIN_C)) { + //Bypass partition bounds-checking + BlkDevLock(bdev); + ATAWriteBlks(bdev,mbr,0,1); + BlkDevUnlock(bdev); + } + Free(mbr); +} + +public U0 MasterBootZero(U8 dst_drv) +{ //Set MBR of disk with dest partition to zero. + +//This is dangerous!! +//The SparrowOS partitioner doesn't play well +//with other operating systems at this time and you need +//to do this on a drive partitioned by SparrowOS +//if you wish to partition with another operating system. + CBlkDev *bdev=Drv2BlkDevFwded(dst_drv); + CMasterBoot mbr; + MemSet(&mbr,0,BLK_SIZE); + //Bypass partition bounds-checking + BlkDevLock(bdev); + ATAWriteBlks(bdev,&mbr,0,1); + BlkDevUnlock(bdev); +} + +public Bool InstallMasterBoot(U8 drv_let,U8 *drv_list=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; + CPrt *p,*p1; + CMasterBoot mbr; + CDirEntry de; + I64 i,j,size,*_q; + U8 *menu_ptr,*ptr,ch,buf[128],buf2[128]; + Bool result=FALSE; + + try { + if (drv_list) + StrCpy(buf2,drv_list); + else { + j=0; + for (i='A';i<='Z';i++) + buf2[j++]=i; + buf2[j++]=0; + } + + Drv(drv_let); + p=Fs->cur_prt; + 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)) + 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"); + j=0; + if (FileFind(OLDMBR_BIN_C,&de,FALSE,TRUE)) { + *_q++=p->data+de.cluster*p->spc; + StrCat(menu_ptr,"0. Old Boot Record\n\r"); + j++; + } + + ptr=buf2; + while (ch=*ptr++) { + try { + p1 =Drv2Prt(ch); + bd1=Drv2BlkDevFwded(ch); + } catch { + Fs->catch_except=TRUE; + p1 =NULL; + bd1=NULL; + } + if (p1 && bd1==bdev) { + *_q=p1->offset; + "Drive %C:%16X\n",Prt2Drv(p1),*_q; + SPrintF(buf,"%d. Drive %C\n\r",j++,Prt2Drv(p1)); + StrCat(menu_ptr,buf); + _q++; + } + } + StrCat(menu_ptr,"\n\rSelection:"); + + size=BMHD2_END-BMHD2_START; + FileWrite(BOOTMHD2_BIN_C,BMHD2_START,size); + + if (!FileFind(BOOTMHD2_BIN_C,&de,FALSE,TRUE)) + "No Boot Loader Image\n"; + else { + *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 + BlkDevLock(bdev); + ATAReadBlks(bdev,&mbr,0,1); + for (i=0;inext_ctrl; + while (c!=&task->next_ctrl) { + if (c->type==type) { + Preempt(old_preempt); + return c; + } + c=c->next; + } + Preempt(old_preempt); + return NULL; +} + +U0 CtrlsUpdate(CTask *task) +{ + CCtrl *c; + Bool old_preempt=Preempt(OFF); + c=task->next_ctrl; + while (c!=&task->next_ctrl) { + if (c->update_derived_vals) + (*c->update_derived_vals)(c); + if (c->flags&CTRLF_BORDER) { + c->screen_left =task->win_pixel_left+c->left-FONT_WIDTH; + c->screen_right =task->win_pixel_left+c->right-FONT_WIDTH; + c->screen_top =task->win_pixel_top+c->top-FONT_HEIGHT; + c->screen_bottom=task->win_pixel_top+c->bottom-FONT_HEIGHT; + } else { + c->screen_left =task->win_pixel_left+c->left; + c->screen_right =task->win_pixel_left+c->right; + c->screen_top =task->win_pixel_top+c->top; + c->screen_bottom=task->win_pixel_top+c->bottom; + } + c=c->next; + } + Preempt(old_preempt); +} + +fp_update_ctrls=&CtrlsUpdate; + + +Bool CtrlInsideRect(CCtrl *c,I64 x,I64 y) +{//screen coordinates + if (c->screen_left<=x<=c->screen_right && + c->screen_top<=y<=c->screen_bottom) + return TRUE; + else + return FALSE; +} + +public Bool CtrlInside(CCtrl *c,I64 x,I64 y) +{ + if (c->flags&CTRLF_SHOW) { + if (c->inside_ctrl) + return (*c->inside_ctrl)(c,x,y); + else + return CtrlInsideRect(c,x,y); + } else + return FALSE; +} + +U0 DrawCtrls(CTask *task) +{ + CCtrl *c; + CDC *dc=DCAlias(gr_dc,task); + Bool old_preempt=Preempt(OFF); + c=task->next_ctrl; + while (c!=&task->next_ctrl) { + if (c->flags&CTRLF_SHOW) { + if (c->flags&CTRLF_BORDER) { + if (!Bt(&task->display_flags,DISPLAYf_NO_BORDER)) { + PushFD; + Cli; + while (LBts(&task->locked_flags,TASKLf_TASK_LOCK)) + Pause; + + task->win_left--; //Allow drawing on border + task->win_right++; + task->win_top--; + task->win_bottom++; + WinDerivedValsUpdate(task); + + LBtr(&task->locked_flags,TASKLf_TASK_LOCK); + PopFD; + + if (c->draw_it) + (*c->draw_it)(dc,c); + + PushFD; + Cli; + while (LBts(&task->locked_flags,TASKLf_TASK_LOCK)) + Pause; + + task->win_left++; + task->win_right--; + task->win_top++; + task->win_bottom--; + WinDerivedValsUpdate(task); + + LBtr(&task->locked_flags,TASKLf_TASK_LOCK); + PopFD; + } + } else + if (c->draw_it) + (*c->draw_it)(dc,c); + } + c=c->next; + } + Preempt(old_preempt); + DCDel(dc); +} + + +#define WIN_SCROLL_SIZE 8 +#define WIN_SCROLL_BORDER_BONUS 4 +U0 DrawWinScroll(CDC *dc,CCtrl *c) +{ + CWinScroll *s=c->state; + Bool old_preempt=Preempt(OFF); + + if (c->flags&CTRLF_CLICKED) + dc->color=s->color>>4; + else + dc->color=s->color&0xF; + GrRect(dc,c->left,c->top,c->right-c->left+1,c->bottom-c->top+1); + + if (c->flags&CTRLF_CLICKED) + dc->color=s->color&0xF; + else + dc->color=s->color>>4; + GrRect(dc,c->left+2,c->top+2,c->right-c->left+1-4,c->bottom-c->top+1-4); + Preempt(old_preempt); +} + +U0 WinDerivedScrollValsUpdate(CCtrl *c) +{ + CWinScroll *s=c->state; + I64 range; + if (s->maxmin) s->max=s->min; + if (s->posmin) s->pos=s->min; + if (s->pos>s->max) s->pos=s->max; + s->color=c->win_task->border_attr&0xF^0xF+ + (c->win_task->border_attr&0xF)<<4; + range=s->max-s->min; + if (!range) range=1; + switch (c->type) { + case CTRLT_WIN_HSCROLL: + c->left=FONT_WIDTH-WIN_SCROLL_BORDER_BONUS+(s->pos-s->min)*(c->win_task->win_pixel_width+2*WIN_SCROLL_BORDER_BONUS-WIN_SCROLL_SIZE)/range; + c->right=c->left+WIN_SCROLL_SIZE-1; + c->top=FONT_HEIGHT+(FONT_WIDTH-WIN_SCROLL_SIZE)/2+c->win_task->win_pixel_height; + c->bottom=c->top+WIN_SCROLL_SIZE-1; + break; + case CTRLT_WIN_VSCROLL: + c->left=FONT_WIDTH+(FONT_WIDTH-WIN_SCROLL_SIZE)/2+c->win_task->win_pixel_width; + c->right=c->left+WIN_SCROLL_SIZE-1; + c->top=FONT_HEIGHT-WIN_SCROLL_BORDER_BONUS+(s->pos-s->min)*(c->win_task->win_pixel_height+2*WIN_SCROLL_BORDER_BONUS-WIN_SCROLL_SIZE)/range; + c->bottom=c->top+WIN_SCROLL_SIZE-1; + break; + } +} + +U0 LeftClickHWinScroll(CCtrl *c,I64 x,I64,Bool down) +{ + CTask *task=c->win_task; + CWinScroll *s=c->state; + I64 range=task->win_pixel_width+2*WIN_SCROLL_BORDER_BONUS-WIN_SCROLL_SIZE; + LBts(&s->flags,WSSf_SET_TO_POS); + s->pos=((x-(FONT_WIDTH-WIN_SCROLL_BORDER_BONUS))*(s->max-s->min+1)+range/2)/range+s->min; + if (down) + c->flags|=CTRLF_CLICKED; + else + c->flags&=~CTRLF_CLICKED; + if (c->update_derived_vals) + (*c->update_derived_vals)(c); +} + +U0 LeftClickVWinScroll(CCtrl *c,I64,I64 y,Bool down) +{ + CTask *task=c->win_task; + CWinScroll *s=c->state; + I64 range=task->win_pixel_height+2*WIN_SCROLL_BORDER_BONUS-WIN_SCROLL_SIZE; + LBts(&s->flags,WSSf_SET_TO_POS); + s->pos=((y-(FONT_HEIGHT-WIN_SCROLL_BORDER_BONUS))*(s->max-s->min+1)+range/2)/range+s->min; + if (down) + c->flags|=CTRLF_CLICKED; + else + c->flags&=~CTRLF_CLICKED; + if (c->update_derived_vals) + (*c->update_derived_vals)(c); +} + +U0 WheelChangeWinScroll(CCtrl *c,I64 delta) +{ + CWinScroll *s=c->state; + LBts(&s->flags,WSSf_SET_TO_POS); + s->pos+=delta; + if (c->update_derived_vals) + (*c->update_derived_vals)(c); +} + +U0 WinScrollsInit(CTask *task) +{ + Bool old_preempt=Preempt(OFF); + CCtrl *c; + + if (!CtrlFindUnique(task,CTRLT_WIN_HSCROLL)) { + c=CAlloc(sizeof(CCtrl)); + c->win_task=task; + c->flags=CTRLF_SHOW|CTRLF_BORDER|CTRLF_CAPTURE_LEFT_IP; + c->type=CTRLT_WIN_HSCROLL; + c->state=&task->horz_scroll; + c->update_derived_vals=&WinDerivedScrollValsUpdate; + c->draw_it=&DrawWinScroll; + c->left_click=&LeftClickHWinScroll; + QueIns(c,task->last_ctrl); + } + + if (!CtrlFindUnique(task,CTRLT_WIN_VSCROLL)) { + c=CAlloc(sizeof(CCtrl)); + c->win_task=task; + c->flags=CTRLF_SHOW|CTRLF_BORDER|CTRLF_CAPTURE_LEFT_IP; + c->type=CTRLT_WIN_VSCROLL; + c->state=&task->vert_scroll; + c->update_derived_vals=&WinDerivedScrollValsUpdate; + c->draw_it=&DrawWinScroll; + c->left_click=&LeftClickVWinScroll; + c->wheel_chg=&WheelChangeWinScroll; + QueIns(c,task->last_ctrl); + } + TaskDerivedValsUpdate(task); + Preempt(old_preempt); +} +#define VIEWANGLES_SPACING 22 +#define VIEWANGLES_RANGE 48 +#define VIEWANGLES_BORDER 2 +#define VIEWANGLES_SNAP 2 + +U0 DrawViewAnglesCtrl(CDC *dc,CCtrl *c) +{ + I64 i,j; + CViewAngles *s=c->state; + + dc->color=s->cbd; + GrRect(dc, c->left,c->top,VIEWANGLES_SPACING*4+3,VIEWANGLES_SPACING*2+VIEWANGLES_RANGE); + dc->color=s->cbg; + GrRect(dc, c->left+VIEWANGLES_BORDER,c->top+VIEWANGLES_BORDER, + VIEWANGLES_SPACING*4+3-2*VIEWANGLES_BORDER,VIEWANGLES_SPACING*2+VIEWANGLES_RANGE-2*VIEWANGLES_BORDER); + dc->color=s->cfg; + GrLine(dc,c->left+VIEWANGLES_SPACING,c->top+VIEWANGLES_SPACING, + c->left+VIEWANGLES_SPACING,c->top+VIEWANGLES_SPACING+VIEWANGLES_RANGE-1); + GrLine(dc,c->left+2*VIEWANGLES_SPACING+1,c->top+VIEWANGLES_SPACING, + c->left+2*VIEWANGLES_SPACING+1,c->top+VIEWANGLES_SPACING+VIEWANGLES_RANGE-1); + GrLine(dc,c->left+3*VIEWANGLES_SPACING+2,c->top+VIEWANGLES_SPACING, + c->left+3*VIEWANGLES_SPACING+2,c->top+VIEWANGLES_SPACING+VIEWANGLES_RANGE-1); + for (i=1;ileft+VIEWANGLES_SPACING-j,c->bottom-VIEWANGLES_SPACING-i, + c->left+VIEWANGLES_SPACING+j,c->bottom-VIEWANGLES_SPACING-i); + GrLine(dc,c->left+2*VIEWANGLES_SPACING+1-j,c->bottom-VIEWANGLES_SPACING-i, + c->left+2*VIEWANGLES_SPACING+1+j,c->bottom-VIEWANGLES_SPACING-i); + GrLine(dc,c->left+3*VIEWANGLES_SPACING+2-j,c->bottom-VIEWANGLES_SPACING-i, + c->left+3*VIEWANGLES_SPACING+2+j,c->bottom-VIEWANGLES_SPACING-i); + } + + dc->color=s->cx; + GrPrintF(dc,c->left+VIEWANGLES_SPACING-FONT_WIDTH/2, + c->top+VIEWANGLES_SPACING-(1+FONT_HEIGHT),"X"); + GrPrintF(dc,c->left+VIEWANGLES_SPACING-3*FONT_WIDTH/2, + c->top+VIEWANGLES_SPACING+VIEWANGLES_RANGE+3, + "%3d",s->sx*360/VIEWANGLES_RANGE); + i=c->left+VIEWANGLES_SPACING; + if (s->sx>VIEWANGLES_RANGE/2) + j=-VIEWANGLES_RANGE/2+s->sx; + else + j=s->sx+VIEWANGLES_RANGE/2; + j=c->top+VIEWANGLES_SPACING+VIEWANGLES_RANGE-1-j; + GrRect(dc,i-3,j-2,7,5); + dc->color=s->cx^8; + GrRect(dc,i-2,j-1,5,3); + + + dc->color=s->cy; + GrPrintF(dc,c->left+2*VIEWANGLES_SPACING+1-FONT_WIDTH/2, + c->top+VIEWANGLES_SPACING-(1+FONT_HEIGHT),"Y"); + GrPrintF(dc,c->left+2*VIEWANGLES_SPACING+1-3*FONT_WIDTH/2, + c->top+VIEWANGLES_SPACING+VIEWANGLES_RANGE+3, + "%3d",s->sy*360/VIEWANGLES_RANGE); + i=c->left+2*VIEWANGLES_SPACING+1; + if (s->sy>VIEWANGLES_RANGE/2) + j=-VIEWANGLES_RANGE/2+s->sy; + else + j=s->sy+VIEWANGLES_RANGE/2; + j=c->top+VIEWANGLES_SPACING+VIEWANGLES_RANGE-1-j; + GrRect(dc,i-3,j-2,7,5); + dc->color=s->cy^8; + GrRect(dc,i-2,j-1,5,3); + + + dc->color=s->cz; + GrPrintF(dc,c->left+3*VIEWANGLES_SPACING+2-FONT_WIDTH/2, + c->top+VIEWANGLES_SPACING-(1+FONT_HEIGHT),"Z"); + GrPrintF(dc,c->left+3*VIEWANGLES_SPACING+2-3*FONT_WIDTH/2, + c->top+VIEWANGLES_SPACING+VIEWANGLES_RANGE+3, + "%3d",s->sz*360/VIEWANGLES_RANGE); + i=c->left+3*VIEWANGLES_SPACING+2; + if (s->sz>VIEWANGLES_RANGE/2) + j=-VIEWANGLES_RANGE/2+s->sz; + else + j=s->sz+VIEWANGLES_RANGE/2; + j=c->top+VIEWANGLES_SPACING+VIEWANGLES_RANGE-1-j; + GrRect(dc,i-3,j-2,7,5); + dc->color=s->cz^8; + GrRect(dc,i-2,j-1,5,3); +} + +U0 UpdateDerivedViewAnglesCtrl(CCtrl *c) +{ + CViewAngles *s=c->state; + c->left=c->win_task->win_pixel_width-(VIEWANGLES_SPACING*4+3); + c->right=c->left+VIEWANGLES_SPACING*4+3; + c->top=c->win_task->win_pixel_height-(VIEWANGLES_SPACING*2+VIEWANGLES_RANGE); + c->bottom=c->top+VIEWANGLES_SPACING*2+VIEWANGLES_RANGE; + s->sx=LimitI64(RoundI64(s->sx,VIEWANGLES_SNAP),0,VIEWANGLES_RANGE-1); + s->sy=LimitI64(RoundI64(s->sy,VIEWANGLES_SNAP),0,VIEWANGLES_RANGE-1); + s->sz=LimitI64(RoundI64(s->sz,VIEWANGLES_SNAP),0,VIEWANGLES_RANGE-1); + s->ax=2*ã*s->sx/VIEWANGLES_RANGE; + s->ay=2*ã*s->sy/VIEWANGLES_RANGE; + s->az=2*ã*s->sz/VIEWANGLES_RANGE; +} + +U0 LeftClickViewAngles(CCtrl *c,I64 x,I64 y,Bool) +{ + CViewAngles *s=c->state; + I64 i; + i=VIEWANGLES_RANGE-1-(y-(c->top+VIEWANGLES_SPACING)); + if (i>=VIEWANGLES_RANGE/2) + i-=VIEWANGLES_RANGE/2; + else + i+=VIEWANGLES_RANGE/2; + if (xleft+(c->right-c->left)/3) + s->sx=i; + else if (xleft+2*(c->right-c->left)/3) + s->sy=i; + else + s->sz=i; + if (c->update_derived_vals) + (*c->update_derived_vals)(c); +} + +public CCtrl *ViewAnglesNew(CTask *task=NULL) +{ + Bool old_preempt; + CCtrl *c; + CViewAngles *s; + if (!task) task=Fs; + if (!(c=CtrlFindUnique(task,CTRLT_VIEWING_ANGLES))) { + s=CAlloc(sizeof(CViewAngles),task); + c=CAlloc(sizeof(CCtrl)); + s->cbd=BLUE; + s->cbg=LTBLUE; + s->cfg=BLACK; + s->cx=LTGREEN; + s->cy=GREEN; + s->cz=LTGREEN; + c->win_task=task; + c->flags=CTRLF_SHOW|CTRLF_CAPTURE_LEFT_IP; + c->type=CTRLT_VIEWING_ANGLES; + c->state=s; + c->draw_it=&DrawViewAnglesCtrl; + c->left_click=&LeftClickViewAngles; + c->update_derived_vals=&UpdateDerivedViewAnglesCtrl; + old_preempt=Preempt(OFF); + QueIns(c,task->last_ctrl); + TaskDerivedValsUpdate(task); + Preempt(old_preempt); + } + return c; +} + +public U0 ViewAnglesDel(CTask *task=NULL) +{ + CCtrl *c; + Bool old_preempt=Preempt(OFF); + if (!task) task=Fs; + if (c=CtrlFindUnique(task,CTRLT_VIEWING_ANGLES)) { + QueRem(c); + Free(c->state); + Free(c); + } + Preempt(old_preempt); +} diff --git a/SparrowOS/Adam/Ctrls/CtrlsButton.CPP b/SparrowOS/Adam/Ctrls/CtrlsButton.CPP new file mode 100644 index 0000000..40b1e70 --- /dev/null +++ b/SparrowOS/Adam/Ctrls/CtrlsButton.CPP @@ -0,0 +1,94 @@ +#define BUTTON_BORDER 2 + +#define BTF_DONT_FREE 1 + +class CCtrlButtonState +{ + I64 state,num_states,flags; + U8 *state_texts; + CColorROPU32 *state_colors; +}; + +U0 DrawCtrlButton(CDC *dc,CCtrl *c) +{ + CCtrlButtonState *s=c->state; + I64 l; + U8 *st; + + 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))) + 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, + (c->top+c->bottom+1-FONT_HEIGHT)>>1,st); +} + +U0 LeftClickCtrlButton(CCtrl *c,I64,I64,Bool down) +{ + CCtrlButtonState *s=c->state; + if (down) { + s->state++; + if (s->state==s->num_states) + s->state=0; + } +} + +public CCtrl *CtrlButtonNew(I64 x,I64 y,I64 width=-1,I64 height=-1, + I64 num_states=1,U8 *state_texts,I32 state_colors[],CCtrlButtonState *_s=NULL) +{ + Bool old_preempt; + CCtrl *result; + CCtrlButtonState *s; + I64 i,j,l; + U8 *st; + if (width<0) { + l=1; + for (i=0;il) l=j; + } + width=BUTTON_BORDER*4+l*FONT_WIDTH; + } + if (height<0) height=BUTTON_BORDER*4+FONT_HEIGHT; + result=CAlloc(sizeof(CCtrl)); + if (_s) { + s=_s; + MemSet(s,0,sizeof(CCtrlButtonState)); + } else { + s=CAlloc(sizeof(CCtrlButtonState)); + s->flags=BTF_DONT_FREE; + } + s->num_states=num_states; + s->state_texts=state_texts; + s->state_colors=state_colors; + result->win_task=Fs; + result->flags=CTRLF_SHOW; + result->type=CTRLT_GENERIC; + result->state=s; + result->draw_it=&DrawCtrlButton; + result->left_click=&LeftClickCtrlButton; + result->left=x; + result->top=y; + result->right=result->left+width-1; + result->bottom=result->top+height-1; + old_preempt=Preempt(OFF); + QueIns(result,Fs->last_ctrl); + Preempt(old_preempt); + return result; +} + +public U0 CtrlButtonDel(CCtrl *c) +{ + Bool old_preempt=Preempt(OFF); + QueRem(c); + Preempt(old_preempt); + if (!(c->flags&BTF_DONT_FREE)) + Free(c->state); + Free(c); +} diff --git a/SparrowOS/Adam/Ctrls/CtrlsSlider.CPP b/SparrowOS/Adam/Ctrls/CtrlsSlider.CPP new file mode 100644 index 0000000..3cc50ce --- /dev/null +++ b/SparrowOS/Adam/Ctrls/CtrlsSlider.CPP @@ -0,0 +1,217 @@ +class CMgdSCSlider +{ + CMgdSCSlider *next,*last; + U8 *name; + I64 num; +}; + +class CMgdSC +{ + CMgdSCSlider *next_slider,*last_slider; + I64 num_sliders,range,spacing,border; + U8 *glbl_name; +}; + + +CMgdSC *PmtSliderCtrl() +{ + CMgdSCSlider *temps; + U8 *st,pmt[136]; + CMgdSC *result=CAlloc(sizeof(CMgdSC)); + + "$$FG,PURPLE$$Slider Ctrl$$FG$$\n\n"; + + result->glbl_name=PmtStr("Glbl Struct Name (ENTER for No Glbl):"); + result->range=PmtI64 ("Range (%4d):",30); + result->spacing=PmtI64("Spacing (%4d):",20); + result->border=PmtI64 ("Border (%4d):",2); + + result->next_slider=result->last_slider=&result->next_slider; + while (TRUE) { + SPrintF(pmt,"Slider #%d Name:",result->num_sliders+1); + st=PmtStr(pmt); + if (!*st) { + Free(st); + break; + } + temps=CAlloc(sizeof(CMgdSCSlider)); + temps->name=st; + QueIns(temps,result->last_slider); + temps->num=result->num_sliders++; + } + return result; +} + +U0 MgdSliderCtrl(CDoc *doc) +{ + CTask *task; + CMgdSC *m=NULL; + CMgdSCSlider *temps; + I64 i; + + DocUnlock(doc); + DocRecalc(doc); + DocCaptureUndo(doc,TRUE); + + task=SpawnUser("CMgdSC **_m=0x%X;*_m=PmtSliderCtrl;\n",&m); + while (!m) + Yield; + + DocPrintF(doc, +"#define SLIDER_RANGE %d +#define SLIDER_SPACING %d +#define SLIDER_BORDER %d + +class CSliderState +{ +",m->range,m->spacing,m->border); + + + temps=m->next_slider; + while (temps!=&m->next_slider) { + DocPrintF(doc," I64 %s;\n",temps->name); + temps=temps->next; + } + if (*m->glbl_name) + DocPrintF(doc,"} %s;\n",m->glbl_name); + else + DocPutS(doc,"};\n"); + + + DocPrintF(doc, +" +U0 DrawSliderCtrl(CDC *dc,CCtrl *c) +{ + CSliderState *s=c->state; + + dc->color=LTRED; + GrRect(dc, c->left,c->top,%d*SLIDER_SPACING+%d,SLIDER_SPACING*2+SLIDER_RANGE); + dc->color=BLUE; + GrRect(dc, c->left+SLIDER_BORDER,c->top+SLIDER_BORDER, + %d*SLIDER_SPACING+%d-2*SLIDER_BORDER,SLIDER_SPACING*2+SLIDER_RANGE-2*SLIDER_BORDER); + dc->color=BLACK; +",m->num_sliders+1,m->num_sliders,m->num_sliders+1,m->num_sliders); + + for (i=0;inum_sliders;i++) + DocPrintF(doc, +" GrLine(dc,c->left+%d*SLIDER_SPACING+%d,c->top+SLIDER_SPACING, + c->left+%d*SLIDER_SPACING+%d,c->top+SLIDER_SPACING+SLIDER_RANGE-1); +",i+1,i,i+1,i); + + DocPutS(doc," dc->color=LTRED;\n"); + + temps=m->next_slider; + while (temps!=&m->next_slider) { + DocPrintF(doc, +" GrPrintF(dc,c->left+%d*SLIDER_SPACING+%d-FONT_WIDTH/2, + c->top+SLIDER_SPACING+SLIDER_RANGE+3, + \"%%d\",s->%s*10/SLIDER_RANGE);\n", + temps->num+1,temps->num,temps->name); + temps=temps->next; + } + + temps=m->next_slider; + while (temps!=&m->next_slider) { + DocPrintF(doc," GrRect(dc,c->left+%d*SLIDER_SPACING+%d-3,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->%s-2,7,5);\n", + temps->num+1,temps->num,temps->name); + temps=temps->next; + } + DocPutS(doc," dc->color=YELLOW;\n"); + + temps=m->next_slider; + while (temps!=&m->next_slider) { + DocPrintF(doc," GrRect(dc,c->left+%d*SLIDER_SPACING+%d-2,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->%s-1,5,3);\n", + temps->num+1,temps->num,temps->name); + temps=temps->next; + } + DocPrintF(doc, +"} + +U0 UpdateDerivedSliderCtrl(CCtrl *c) +{ + CSliderState *s=c->state; + c->left=c->win_task->win_pixel_width/2-(SLIDER_SPACING*3+2)/2; + c->right=c->left+%d*SLIDER_SPACING+%d; + c->top=c->win_task->win_pixel_height/2-(SLIDER_SPACING*2+SLIDER_RANGE)/2; + c->bottom=c->top+SLIDER_SPACING*2+SLIDER_RANGE; +",m->num_sliders+1,m->num_sliders); + + temps=m->next_slider; + while (temps!=&m->next_slider) { + DocPrintF(doc," s->%s=LimitI64(s->%s,0,SLIDER_RANGE-1);\n",temps->name,temps->name); + temps=temps->next; + } + DocPutS(doc, +"} + +U0 LeftClickSlider(CCtrl *c,I64 x,I64 y,Bool down) +{ + nounusedwarn down; + CSliderState *s=c->state; +"); + + temps=m->next_slider; + while (temps!=&m->next_slider) { + DocPutS(doc," "); + if (temps!=m->next_slider) + DocPutS(doc,"else "); + if (temps->next==&m->next_slider) + DocPutS(doc,"\n"); + else + DocPrintF(doc,"if (xleft+%d*SLIDER_SPACING+%d+SLIDER_SPACING/2)\n", + temps->num+1,temps->num); + DocPrintF(doc," s->%s=SLIDER_RANGE-1-(y-(c->top+SLIDER_SPACING));\n", + temps->name); + temps=temps->next; + } + + DocPutS(doc, +" if (c->update_derived_vals) + (*c->update_derived_vals)(c); +} + +CCtrl *SliderNew() +{ + Bool old_preempt; + CCtrl *c=CAlloc(sizeof(CCtrl)); + c->win_task=Fs; + c->flags=CTRLF_SHOW|CTRLF_CAPTURE_LEFT_IP; + c->type=CTRLT_GENERIC; +"); + if (*m->glbl_name) + DocPrintF(doc," c->state=&%s;\n" + " MemSet(&%s,0,sizeof(CSliderState));\n",m->glbl_name,m->glbl_name); + else + DocPutS(doc, " c->state=CAlloc(sizeof(CSliderState));\n"); + DocPutS(doc, +" c->draw_it=&DrawSliderCtrl; + c->left_click=&LeftClickSlider; + c->update_derived_vals=&UpdateDerivedSliderCtrl; + old_preempt=Preempt(OFF); + QueIns(c,Fs->last_ctrl); + TaskDerivedValsUpdate; + Preempt(old_preempt); + return c; +} + +U0 SliderDel(CCtrl *c) +{ + Bool old_preempt=Preempt(OFF); + QueRem(c); + Preempt(old_preempt); +"); + if (!*m->glbl_name) + DocPutS(doc," Free(c->state);\n"); + DocPutS(doc, +" Free(c); +} +"); + + Kill(task); //This frees memory. + + AcctOneTimePopUp(ARf_MANAGE_SLIDER, + "Modify the code to your heart's content.\n" + "The code is no longer managed.\n"); + + DocLock(doc); +} diff --git a/SparrowOS/Adam/Dbg2a.CPP b/SparrowOS/Adam/Dbg2a.CPP new file mode 100644 index 0000000..0dbcd0d --- /dev/null +++ b/SparrowOS/Adam/Dbg2a.CPP @@ -0,0 +1,398 @@ +#help_index "Debugging" + +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; + CDocEntry *doc_e; + Bool unlock; + CHashClass *tempc,*tempc2; + if (depth>=max_depth) return TRUE; + if (!(tempc=HashFind(class_name,Fs->hash_table,types))) { + DocPutS(doc,"Class Not Found.\n"); + return FALSE; + } + if (!ChkPtr(_b) || !ChkPtr(_b(U8 *)+tempc->size)) { + DocPrintF(doc,"Bad Ptr:%016X\n",_b); + return FALSE; + } + if (tempc->base_class && !ClassRep2(doc,tempc->base_class->str,_b,depth,max_depth,dynamic,types,offset)) + return FALSE; + unlock=DocLock(doc); + DocPrintF(doc,"Class:\"%s\"\n",class_name); + ml=tempc->member_list; + while (ml) { + tempc2=ml->member_class; + ptr=_b(U8 *)+ml->offset; + DocPrintF(doc,"%08X ",ptr(U8 *)+offset); + j=tempc2->ptr_cnt; + while (tempc2->fwd_class) + tempc2=tempc2->fwd_class; + tempc2-=tempc2->ptr_cnt; + if (tempc2->type & HTT_INTERNAL_TYPE) { + DocPrintF(doc,"$$FG,GREEN$$%-20ts:$$FG$$",ml->str); + if (j==1 && (tempc2->sub_type==IT_I8 || tempc2->sub_type==IT_U8)) { + ptr=*ptr; + if (ChkPtr(ptr)) { + if (dynamic) { + doc_e=DocPutS(doc,"$$DA-T-P+RD,64,\"%40ts\"$$\n"); + doc_e->data=ptr; + DocDataFmt(doc_e); + } else + DocPrintF(doc,"%40ts\n",ptr); + } + } else if (!j) { + j=MinI64(ml->dim.total_cnt,32); + if (tempc2->sub_type==IT_I8 || tempc2->sub_type==IT_U8) { + if (j==1) { + if (dynamic) { + doc_e=DocPutS(doc,"$$DA-T+RD+UD-I64+U8,32,\"%c\"$$\n"); + doc_e->data=ptr; + } else + DocPrintF(doc,"%c\n",*ptr(U8 *)); + } else { + if (dynamic) { + doc_e=DocPutS(doc,"$$DA-T-P+RD,64,\"%40ts\"$$\n"); + doc_e->data=ptr; + DocDataFmt(doc_e); + } else + DocPrintF(doc,"%40ts\n",ptr); + } + } + for (i=0;isub_type) { + case IT_I0: + case IT_U0: + break; + case IT_I8: + case IT_U8: + if (dynamic) { + doc_e=DocPutS(doc,"$$DA-T+RD+UD-I64+U8,32,\"%02X\"$$ "); + doc_e->data=ptr(U8 *)++; + } else + DocPrintF(doc,"%02X ",*ptr(U8 *)++); + break; + case IT_I16: + case IT_U16: + if (dynamic) { + doc_e=DocPutS(doc,"$$DA-T+RD+UD-I64+U16,32,\"%04X\"$$ "); + doc_e->data=ptr(U16 *)++; + } else + DocPrintF(doc,"%04X ",*ptr(U16 *)++); + break; + case IT_I32: + case IT_U32: + if (dynamic) { + doc_e=DocPutS(doc,"$$DA-T+RD+UD-I64+U32,32,\"%08X\"$$ "); + doc_e->data=ptr(U32 *)++; + } else + DocPrintF(doc,"%08X ",*ptr(U32 *)++); + break; + case IT_F64: + if (dynamic) { + doc_e=DocPutS(doc,"$$DA-T+RD+UD,32,\"%16g\"$$ "); + doc_e->data=ptr(I64 *)++; + } else + DocPrintF(doc,"%16g ",*ptr(I64 *)++); + break; + default: + if (dynamic) { + doc_e=DocPutS(doc,"$$DA-T+RD+UD,32,\"%016X\"$$ "); + doc_e->data=ptr(I64 *)++; + } else + DocPrintF(doc,"%016X ",*ptr(I64 *)++); + } + if (dynamic) + DocDataFmt(doc_e); + } + if (jdim.total_cnt) + DocPutS(doc,"..."); + } else + DocPrintF(doc,"%016X",*ptr); + DocPutS(doc,"\n"); + } else { + if (depth<2) { + if (j==1 && !ChkPtr(*ptr)) + DocPrintF(doc,"%-20ts:%016X\n",ml->str,*ptr); + else { + DocPrintF(doc,"$$TR,\"%s\"$$\n",ml->str); + DocPutS(doc,"$$ID,2$$"); + if (!j) + ClassRep2(doc,tempc2->str,ptr,depth+1,max_depth,dynamic); + else if (j==1) + ClassRep2(doc,tempc2->str,*ptr,depth+1,max_depth,dynamic); + DocPutS(doc,"$$ID,-2$$"); + } + } else + DocPrintF(doc,"%-20ts\n",ml->str); + } + ml=ml->next; + } + if (unlock) + DocUnlock(doc); + return TRUE; +} + +public U0 ClassRep(U8 *class_name,U8 *_b,I64 max_depth=2,Bool fun=FALSE,I64 offset=0) +//Displays members of a record +//by using the compiler's info. +{ + CDoc *doc; + Bool old_preempt; + if (IsRaw) { + doc=DocNew; + } else { + DocMax; + old_preempt=Preempt(OFF); + doc=DocCur; + } + if (fun) + ClassRep2(doc,class_name,_b,0,max_depth,FALSE,HTT_FUN,offset); + else + ClassRep2(doc,class_name,_b,0,max_depth,FALSE,HTT_CLASS,offset); + DocPutS(doc,"\n"); + DocRecalc(doc); + if (IsRaw) { + DocDump(doc,100000); + DocDel(doc); + } else + Preempt(old_preempt); +} + +public U0 ClassRepD(U8 *class_name,U8 *_b,I64 max_depth=2,Bool fun=FALSE,I64 offset=0) +//Dynamic classrep (uses hex_ed widgit for live changes) +{ + CDoc *doc; + Bool old_preempt; + if (IsRaw) { + doc=DocNew; + } else { + DocMax; + old_preempt=Preempt(OFF); + doc=DocCur; + } + if (fun) + ClassRep2(doc,class_name,_b,0,max_depth,TRUE,HTT_FUN,offset); + else + ClassRep2(doc,class_name,_b,0,max_depth,TRUE,HTT_CLASS,offset); + DocPutS(doc,"\n"); + DocRecalc(doc); + if (IsRaw) { + DocDump(doc,100000); + DocDel(doc); + } else + Preempt(old_preempt); +} + +U0 UpdateRegVarImg(CHashFun *tempf,U8 *_b,CTask *task) +{ + CMemberList *ml; + CHashClass *tempc; + ml=tempf->member_list; + while (ml) { + if (ml->register!=CREG_NONE) { + tempc=ml->member_class; + while (tempc->fwd_class) + tempc=tempc->fwd_class; + MemCpy(_b+ml->offset,TaskRegAdd(task,ml->register),tempc->size); + } + ml=ml->next; + } +} + +public U0 FunRep(U8 *st,U8 *rbp=NULL,I64 max_depth=2,CTask *task=NULL) +//Shows names and vals of a fun's +//local vars using info the compiler +//has. +{ + I64 size; + U8 *img; + CHashFun *tempf=HashFind(st,Fs->hash_table,HTT_FUN); + CMemberList *tempm; + if (tempf) { + if (rbp) { + if (task) { + //tempf->size is negative. It's the bottom + //of the fun local var space relative to RBP . + size=tempf->arg_cnt*8-tempf->size+16; + + img=MAlloc(size); + MemCpy(img,rbp+tempf->size,size); + UpdateRegVarImg(tempf,img-tempf->size,task); + ClassRep(st,img-tempf->size,max_depth,TRUE,rbp-img+tempf->size); + Free(img); + } else + ClassRep(st,rbp,max_depth,TRUE); + } else { + tempm=tempf->member_list; + while (tempm) { + if (0<=tempm->registerregister,"ST_U64_REGS",tempm->str; + else + "%08tX %s\n",tempm->offset,tempm->str; + tempm=tempm->next; + } + "%08tX Stk Size\n",tempf->size; + } + } +} + +public U0 Uf(U8 *st) +{//Unassemble named fun + I64 i; + CHashFun *tempf=HashFind(st,Fs->hash_table,HTT_FUN); + CDbgInfo *dbg; + if (tempf) { + FunRep(st); + if (dbg=tempf->debug) { + i=dbg->body[dbg->max_line-dbg->min_line+1]-tempf->executable_addr; + Un(tempf->executable_addr,i); + "Code Size:%04X\n",i; + } else + U(tempf->executable_addr); + } +} + +#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/SparrowOS/Adam/DevInfo.CPP new file mode 100644 index 0000000..c179f4c --- /dev/null +++ b/SparrowOS/Adam/DevInfo.CPP @@ -0,0 +1,325 @@ +#help_index "PCI;Processor;Device;Info" + +//The file was downloaded from +//http://www.pcidatabase.com/reports.php?type=tab-delimeted + +#define PCI_DEV_FILE "::/SparrowOS/Misc/PCIDevices.TXT.Z" + +/**** +public U0 PCIDevFileGen() +{ + Bool first=TRUE,del=FALSE,del2=FALSE,cont=FALSE; + CDoc *doc=DocRead(PCI_DEV_FILE,DOCF_PLAIN_TEXT|DOCF_DBL_DOLLARS); + CDocEntry *doc_e=doc->root.next,*doc_e2; + while (doc_e!=doc) { + doc_e2=doc_e->next; + if (first) { + if (doc_e->type_u8==DOCT_TEXT) { + if (doc_e->tag[0]==';') + del=TRUE; + } + first=FALSE; + } + if (doc_e->type_u8==DOCT_TEXT && doc_e->tag[StrLen(doc_e->tag)-1]=='=' && + doc_e2->type_u8==DOCT_NEW_LINE) { + doc_e->tag[StrLen(doc_e->tag)-1]=CH_SPACE; + cont=TRUE; + } + del2=del; + if (doc_e->type_u8==DOCT_NEW_LINE) { + first=TRUE; + del2=FALSE; + if (cont) { + del=TRUE; + cont=FALSE; + } + } + if (del) + DocEntryDel(doc,doc_e); + del=del2; + doc_e=doc_e2; + } + DocWrite(doc); +} +****/ + +//$LK,"::/SparrowOS/Misc/PCIDevices.TXT.Z","PI:::/SparrowOS/Misc/PCIDevices.TXT.Z"$ +U0 PCILookUpSingle(CDoc *doc,I64 m,I64 d,U8 **_vendor,U8 **_dev) +{ + Bool first=TRUE; + U8 buf[8],*vendor=NULL,*dev=NULL; + CDocEntry *doc_e=doc->root.next; + while (doc_e!=doc) { + if (first) { + if (doc_e->type_u8==DOCT_TEXT && doc_e->tag[0]!=';' && StrLen(doc_e->tag)>=4) { + buf[0]='0'; + buf[1]='x'; + buf[2]=doc_e->tag[0]; + buf[3]=doc_e->tag[1]; + buf[4]=doc_e->tag[2]; + buf[5]=doc_e->tag[3]; + buf[6]=0; + if (A2I(buf)==m) { + doc_e=doc_e->next->next; + if (doc_e->type_u8==DOCT_TEXT) { + vendor=AStrNew(doc_e->tag); + first=FALSE; + break; + } + } + } + first=FALSE; + } + if (doc_e->type_u8==DOCT_NEW_LINE) + first=TRUE; + doc_e=doc_e->next; + } + + if (vendor) { + while (doc_e!=doc) { + if (first) { + if (doc_e->type_u8==DOCT_TAB) { + doc_e=doc_e->next; + if (doc_e->type_u8==DOCT_TEXT && StrLen(doc_e->tag)>=4) { + buf[0]='0'; + buf[1]='x'; + buf[2]=doc_e->tag[0]; + buf[3]=doc_e->tag[1]; + buf[4]=doc_e->tag[2]; + buf[5]=doc_e->tag[3]; + buf[6]=0; + if (A2I(buf)==d) { + doc_e=doc_e->next->next; + if (doc_e->type_u8==DOCT_TEXT) { + dev=AStrNew(doc_e->tag); + break; + } + } + } + } else + break; + first=FALSE; + } + if (doc_e->type_u8==DOCT_NEW_LINE) + first=TRUE; + doc_e=doc_e->next; + } + } + + if (vendor) + *_vendor=vendor; + else + *_vendor=AStrNew("Unknown"); + + if (dev) + *_dev=dev; + else + *_dev=AStrNew("Unknown"); +} + +U0 PCILookUpDevs() +{ + CPCIDev *temppci; + U16 w1,w2; + I64 b,d,f,timeout=32*8*2; + CDoc *doc; + if (sys_pci_dev_root.next!=&sys_pci_dev_root) + return; + doc=DocRead(PCI_DEV_FILE,DOCF_PLAIN_TEXT); + for (b=0;bbus=b; + temppci->dev=d; + temppci->fun=f; + temppci->vendor=w1; + temppci->dev_id=w2=PCIReadU16(b,d,f,2); + temppci->sub_code=PCIReadU8(b,d,f,0xA); + temppci->base_code=PCIReadU8(b,d,f,0xB); + PCILookUpSingle(doc,w1,w2,&temppci->vendor_str,&temppci->dev_id_str); + QueIns(temppci,sys_pci_dev_root.last); + timeout=32*8*2; + } else if (sys_pci_busses==256 && --timeout<=0) + goto lud_done; + } +lud_done: + DocDel(doc); +} + +public U0 PCIRep() +{ + CPCIDev *temppci; + "PCI Busses:%d\n",sys_pci_busses; + if (!FileFind(PCI_DEV_FILE)) { + "You don't have the PCI device file.\n"; + return; + } + PCILookUpDevs; + temppci=sys_pci_dev_root.next; + while (temppci!=&sys_pci_dev_root) { + "%02X:%02X:%01X %02X%02X $$FG,GREEN$$%s $$FG,CYAN$$%s$$FG$$\n", + temppci->bus,temppci->dev,temppci->fun, + temppci->base_code,temppci->sub_code, + temppci->vendor_str,temppci->dev_id_str; + temppci=temppci->next; + } +} + +#help_index "Info;Time/CPU Cycles" +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;itype,tempmr->base,tempmr->base+tempmr->size-1; + tempmr=tempmr->next; + } + LBtr(&sys_semas[SYS_SEMA_DEV_MEM],0); + + "\nBIOS Memory Report 15:E801\n" + "01:0x0000000000000000-0x%016X\n",0x100000+m01[0]<<10-1; + "01:0x0000000001000000-0x%016X\n",0x1000000+m01[1]<<16-1; + + if (m20->type) { + NewLine; + "BIOS Memory Report 15:E820\n"; + while (m20->type) { + "%02X:0x%016X-0x%016X\n",m20->type,m20->base,m20->base+m20->len-1; + m20++; + } + } + +} + +#help_index "" diff --git a/SparrowOS/Adam/Diff.CPP b/SparrowOS/Adam/Diff.CPP new file mode 100644 index 0000000..8e6fbf0 --- /dev/null +++ b/SparrowOS/Adam/Diff.CPP @@ -0,0 +1,269 @@ +#help_index "Utils;Cmd Line (Typically)" + +#define DS_USE_FILE1 0 +#define DS_USE_FILE2 1 +#define DS_REMAINDER_1 2 +#define DS_REMAINDER_2 3 +#define DS_ABORT_FILE 4 + +I64 PopUpDiffOptions() +{ + I64 i; + CDoc *doc=DocNew; + DocPutS(doc,"$$CM+LX,2,4$$$$FG$$$$BT,\"USE FILE1\",DS_USE_FILE1$$" + "$$CM+LX,24,0$$$$FG,CYAN$$$$BT,\"USE FILE2\",DS_USE_FILE2$$" + "$$CM+LX,2,4$$$$FG$$$$BT,\"REMAINDER ALL FILE1\",DS_REMAINDER_1$$" + "$$CM+LX,24,0$$$$FG,CYAN$$$$BT,\"REMAINDER ALL FILE2\",DS_REMAINDER_2$$" + "$$CM+LX,2,4$$$$FG$$$$BT,\"ABORT FILE\",DS_ABORT_FILE$$" + "$$CM+LX,24,0$$$$FG$$$$BT,\"ABORT ALL FILES\",DOCM_CANCEL$$\n"); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +I64 DiffEntriesCompare(CDocEntry *doc_e1,CDocEntry *doc_e2) +{ + return StrCmp(doc_e1->tag,doc_e2->tag); +} + +#define DF_MODIFIED 1 +#define DF_DONT_MODIFIED 2 +#define DF_REMAINDER_ALL_FILE1 4 +#define DF_REMAINDER_ALL_FILE2 8 +#define DF_ABORT_FILE 16 +#define DF_ABORT_ALL_FILES 32 +#define DF_NO_MORE_PROMPTS_THIS_FILE 64 + +U0 DiffSelect(CDoc *doc,I64 *_df_flags,I64 j1_lo,I64 j1_hi, + I64 j2_lo,I64 j2_hi,CDocEntry **doc_us1,CDocEntry **doc_us2) +{ + I64 i; + CDocEntry *doc_e,*doc_e1,*doc_e2; + Bool use_file1; + I64 old_flags; + CDoc *cur_l; + if (!(*_df_flags & (DF_ABORT_FILE|DF_ABORT_ALL_FILES))) { + "$$FG,RED$$%d,%d---------------------$$FG$$\n",j1_lo,j2_lo; + i= j1_lo<=0 ? 0:j1_lo-1; + while (iflags&DOCF_PLAIN_TEXT; + cur_l->flags|=DOCF_PLAIN_TEXT; + } + "" doc_us1[i++]->tag; + if (cur_l) + cur_l->flags= cur_l->flags&~DOCF_PLAIN_TEXT |old_flags; + NewLine; + } + "$$FG,CYAN$$"; + i= j2_lo<=0 ? 0:j2_lo-1; + while (iflags&DOCF_PLAIN_TEXT; + cur_l->flags|=DOCF_PLAIN_TEXT; + } + "" doc_us2[i++]->tag; + if (cur_l) + cur_l->flags= cur_l->flags&~DOCF_PLAIN_TEXT |old_flags; + NewLine; + } + "$$FG$$"; + + use_file1=TRUE; + if (!(*_df_flags & DF_NO_MORE_PROMPTS_THIS_FILE)) { + switch (PopUpDiffOptions) { + case DS_USE_FILE1: + break; + case DS_USE_FILE2: + use_file1=FALSE; + break; + case DS_REMAINDER_1: + *_df_flags=*_df_flags&~DF_REMAINDER_ALL_FILE2|DF_REMAINDER_ALL_FILE1|DF_NO_MORE_PROMPTS_THIS_FILE; + break; + case DS_REMAINDER_2: + *_df_flags=*_df_flags&~DF_REMAINDER_ALL_FILE1|DF_REMAINDER_ALL_FILE2|DF_NO_MORE_PROMPTS_THIS_FILE; + break; + case DS_ABORT_FILE: + *_df_flags|=DF_DONT_MODIFIED|DF_ABORT_FILE|DF_NO_MORE_PROMPTS_THIS_FILE; + break; + default: + *_df_flags|=DF_DONT_MODIFIED|DF_ABORT_ALL_FILES|DF_NO_MORE_PROMPTS_THIS_FILE; + } + } + if (*_df_flags & DF_REMAINDER_ALL_FILE2 && + !(*_df_flags & (DF_DONT_MODIFIED|DF_REMAINDER_ALL_FILE1))) + use_file1=FALSE; + if (!use_file1) { + *_df_flags|=DF_MODIFIED; + doc_e1=doc_us1[j1_lo]->last; + if (j1_lonext; + DocEntryDel(doc,doc_e); + doc_e=doc_e2; + } + } + if (j2_lonext; + } + } + } + } +} + +U0 DiffSub(CDoc *doc,I64 *_df_flags,I64 j1_lo,I64 j1_hi,I64 j2_lo,I64 j2_hi, + I64 cnt1,I64 cnt2,CDocEntry **doc_s1,CDocEntry **doc_s2,CDocEntry **doc_us1,CDocEntry **doc_us2) +{ + I64 i,i1=0,i2=0,i2b,j1,j2,n; + I64 best_j1,best_j2,best_score=0,score; + + if (j1_lo>=j1_hi || j2_lo>=j2_hi) { + if (j1_loyy>=j1_hi) + i1++; + else if (doc_s2[i2]->yy>=j2_hi) + i2++; + else { + i=StrCmp(doc_s1[i1]->tag,doc_s2[i2]->tag); + if (i>0) + i2++; + else if (i<0) + i1++; + else { + i2b=i2; + while (!StrCmp(doc_s1[i1]->tag,doc_s2[i2]->tag)) { + if (doc_s2[i2]->y>=j2_lo && doc_s2[i2]->yy; + j2=doc_s2[i2]->y; + n=j1_hi-j1; + if (j2_hi-j2tag,doc_us2[j2+score]->tag)) + score++; + else + break; + } + if (score>best_score) { + best_score=score; + best_j1=j1; + best_j2=j2; + } + } + i2++; + if (i2>=cnt2) + break; + } + i2=i2b; + i1++; + } + } + } + if (!best_score) + DiffSelect(doc,_df_flags,j1_lo,j1_hi,j2_lo,j2_hi,doc_us1,doc_us2); + else { + DiffSub(doc,_df_flags,j1_lo,best_j1,j2_lo,best_j2,cnt1,cnt2,doc_s1,doc_s2,doc_us1,doc_us2); + DiffSub(doc,_df_flags,best_j1+best_score,j1_hi,best_j2+best_score,j2_hi,cnt1,cnt2, + doc_s1,doc_s2,doc_us1,doc_us2); + } +} + +Bool DiffBins(CDoc *doc1,CDoc *doc2) +{ + CDocBin *tempb1=doc1->bin_root.next, + *tempb2=doc2->bin_root.next; + + if (tempb1->last->last->num!= + tempb2->last->last->num) + return FALSE; + while (tempb1!=&doc1->bin_root) { + if (tempb1->type!=tempb2->type || + tempb1->size!=tempb2->size || + MemCmp(tempb1->data,tempb2->data,tempb1->size)) + return FALSE; + tempb1=tempb1->next; + tempb2=tempb2->next; + } + return TRUE; +} + +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); + CDocEntry *doc_e,**doc_s1,**doc_s2,**doc_us1,**doc_us2; + I64 i,cnt1=0,cnt2=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=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=doc_e->next; + } + + doc_s1=MAlloc(cnt1*sizeof(CDocEntry *)); + doc_us1=MAlloc((cnt1+1)*sizeof(CDocEntry *)); + i=0; + doc_e=doc1->root.next; + while (doc_e!=doc1) { + if (doc_e->type_u8==DOCT_TEXT) { + doc_s1[i]=doc_e; + doc_us1[i++]=doc_e; + } + doc_e=doc_e->next; + } + doc_us1[i]=doc1; + QSortI64(doc_s1,cnt1,&DiffEntriesCompare); + + doc_s2=MAlloc(cnt2*sizeof(CDocEntry *)); + doc_us2=MAlloc((cnt2+1)*sizeof(CDocEntry *)); + i=0; + doc_e=doc2->root.next; + while (doc_e!=doc2) { + if (doc_e->type_u8==DOCT_TEXT) { + doc_s2[i]=doc_e; + doc_us2[i++]=doc_e; + } + doc_e=doc_e->next; + } + 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); + if (df_flags&DF_MODIFIED && !(df_flags&DF_DONT_MODIFIED)) + DocWrite(doc1); + + if (!DiffBins(doc1,doc2)) + "$$FG,RED$$Bin Data is Different$$FG$$\n"; + + DocDel(doc1); + DocDel(doc2); + Free(doc_s1); + Free(doc_s2); + Free(doc_us1); + Free(doc_us2); + return df_flags; +} +#help_index "" diff --git a/SparrowOS/Adam/Doc/Doc.CPP b/SparrowOS/Adam/Doc/Doc.CPP new file mode 100644 index 0000000..7ea5c7d --- /dev/null +++ b/SparrowOS/Adam/Doc/Doc.CPP @@ -0,0 +1,89 @@ +#help_index "Doc" +#help_file "::/SparrowOS/Doc/Doc" + +//See $LK,"::/SparrowOS/Doc/Doc.TXT.Z","FI:::/SparrowOS/Doc/Doc.TXT.Z"$ + +extern I64 EdLeftClickLink(CDoc *doc,CDocEntry *doc_e); +extern I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e); +extern U0 DocPutSPartial(CDoc *doc,U8 *st); +extern U0 DocFormBackward(CDoc *doc,Bool giveup=FALSE); +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" + "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", +//flags1 + "A\0L\0" + "LC\0LE\0LM\0LA\0RC\0RE\0RM\0RA\0" + "TC\0BI\0X\0Q\0LX\0CX\0RX\0TY\0CY\0BY\0SX\0SY\0SCX\0SCY\0" + "HL\0LP\0CC\0WW\0BK\0IV\0SEL\0UL\0" + "B\0S\0BD\0C\0CA\0RD\0P\0T\0" + "Z\0H\0TR\0SK\0AL\0PU\0PRY\0MRX\0" + "FST\0SIF\0WD\0HT\0HS\0FS\0NC\0DD\0UD\0U8\0U16\0U32\0U64\0D\0WR\0HTML\0" +//flags2 + "BP\0" + ); + DefineListLoad("ST_LINK_TYPES","FI\0FA\0FF\0FL\0MN\0PI\0PF\0PL\0BF\0DF\0HI\0AD\0"); +} + +DocInit; + + + +//--SPARROWOS LINK TYPES-- +// "filename" +// "FI:filename" +// "FA:filename,anchor" +// "FF:filename,pattern" +// "FF:filename,pattern:occurnum" +// "FL:filename,linenum" +#define LK_FILE 0 +#define LK_FILE_ANCHOR 1 +#define LK_FILE_FIND 2 +#define LK_FILE_LINE 3 +// "MN:SymName" +#define LK_MAN_PAGE 4 +// "PI:filename" +// "PF:filename,pattern" +// "PF:filename,pattern:occurnum" +// "PL:filename,linenum" +#define LK_PLAIN 5 +#define LK_PLAIN_FIND 6 +#define LK_PLAIN_LINE 7 +// "BF:book,pattern" +#define LK_BIBLE_FIND 8 +// "DF:word" +// "DF:word,defnum" +#define LK_DEF 9 +// "HI:index" +#define LK_HELP_INDEX 10 +// "AD:address_number" +#define LK_ADDR 11 +#define LK_PLACE_ANCHOR 12 + + + +#include "DocNew" +#include "DocHighlight" +#include "DocRecalc" +#include "DocPlain" +#include "DocFile" +#include "DocPopUp" +#include "DocCtrlL" +#include "DocMacro" +#include "DocIDE" +#include "DocEd" +#include "DocCodeTools" +#include "DocBible" +#include "DocTree" +#include "DocMain" +#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. + +*/ diff --git a/LT/Adam/Ltf/LtfBible.APZ b/SparrowOS/Adam/Doc/DocBible.CPP similarity index 64% rename from LT/Adam/Ltf/LtfBible.APZ rename to SparrowOS/Adam/Doc/DocBible.CPP index c1cb75f..ff5a85b 100644 --- a/LT/Adam/Ltf/LtfBible.APZ +++ b/SparrowOS/Adam/Doc/DocBible.CPP @@ -1,154 +1,192 @@ -LoadStr("ST_BIBLE_FILE","::/LT/Text/Bible.TXZ"); - -LoadList("ST_BIBLE_BOOKS", -"Genesis\0" -"Exodus\0" -"Leviticus\0" -"Numbers\0" -"Deuteronomy\0" -"Joshua\0" -"Judges\0" -"Ruth\0" -"1 Samuel\0" -"2 Samuel\0" -"1 Kings\0" -"2 Kings\0" -"1 Chronicles\0" -"2 Chronicles\0" -"Ezra\0" -"Nehemiah\0" -"Tobit\0" -"Judith\0" -"Esther\0" -"1 Maccabees\0" -"2 Maccabees\0" -"Job\0" -"Psalms\0" -"Proverbs\0" -"Ecclesiastes\0" -"Song of Songs\0" -"Wisdom\0" -"Sirach\0" -"Isaiah\0" -"Jeremiah\0" -"Lamentations\0" -"Baruch\0" -"Ezekiel\0" -"Daniel\0" -"Hosea\0" -"Joel\0" -"Amos\0" -"Obadiah\0" -"Jonah\0" -"Micah\0" -"Nahum\0" -"Habakkuk\0" -"Zephaniah\0" -"Haggai\0" -"Zechariah\0" -"Malachi\0" -"Matthew\0" -"Mark\0" -"Luke\0" -"John\0" -"Acts\0" -"Romans\0" -"1 Corinthians\0" -"2 Corinthians\0" -"Galatians\0" -"Ephesians\0" -"Philippians\0" -"Colossians\0" -"1 Thessalonians\0" -"2 Thessalonians\0" -"1 Timothy\0" -"2 Timothy\0" -"Titus\0" -"Philemon\0" -"Hebrews\0" -"James\0" -"1 Peter\0" -"2 Peter\0" -"1 John\0" -"2 John\0" -"3 John\0" -"Jude\0" -"Revelation\0" -"\0"); - -LoadList("ST_BIBLE_BOOK_LINES", -"297\0" -"5068\0" -"9123\0" -"12005\0" -"15977\0" -"19168\0" -"21329\0" -"23598\0" -"23902\0" -"26892\0" -"29345\0" -"32241\0" -"34961\0" -"37633\0" -"40756\0" -"41671\0" -"Tobit\0" -"Judith\0" -"42963\0" -"1 Maccabees\0" -"2 Maccabees\0" -"43605\0" -"46190\0" -"53793\0" -"56267\0" -"56966\0" -"Wisdom\0" -"Sirach\0" -"57332\0" -"61806\0" -"66736\0" -"Baruch\0" -"67217\0" -"71804\0" -"73189\0" -"73876\0" -"74130\0" -"74615\0" -"74697\0" -"74860\0" -"75241\0" -"75416\0" -"75604\0" -"75806\0" -"75932\0" -"76684\0" -"76908\0" -"79970\0" -"81941\0" -"85266\0" -"87803\0" -"90914\0" -"92110\0" -"93323\0" -"94088\0" -"94514\0" -"94869\0" -"95153\0" -"95402\0" -"95647\0" -"95772\0" -"96090\0" -"96320\0" -"96440\0" -"96500\0" -"97370\0" -"97687\0" -"97976\0" -"98163\0" -"98506\0" -"98552\0" -"98597\0" -"98684\0" -"\0"); - +#help_index "Doc/Bible" +DefineLoad("ST_BIBLE_FILE","::/SparrowOS/Misc/Bible.TXT.Z"); + +DefineListLoad("ST_BIBLE_BOOKS", +"Genesis\0" +"Exodus\0" +"Leviticus\0" +"Numbers\0" +"Deuteronomy\0" +"Joshua\0" +"Judges\0" +"Ruth\0" +"1 Samuel\0" +"2 Samuel\0" +"1 Kings\0" +"2 Kings\0" +"1 Chronicles\0" +"2 Chronicles\0" +"Ezra\0" +"Nehemiah\0" +"Tobit\0" +"Judith\0" +"Esther\0" +"1 Maccabees\0" +"2 Maccabees\0" +"Job\0" +"Psalms\0" +"Proverbs\0" +"Ecclesiastes\0" +"Song of Songs\0" +"Wisdom\0" +"Sirach\0" +"Isaiah\0" +"Jeremiah\0" +"Lamentations\0" +"Baruch\0" +"Ezekiel\0" +"Daniel\0" +"Hosea\0" +"Joel\0" +"Amos\0" +"Obadiah\0" +"Jonah\0" +"Micah\0" +"Nahum\0" +"Habakkuk\0" +"Zephaniah\0" +"Haggai\0" +"Zechariah\0" +"Malachi\0" +"Matthew\0" +"Mark\0" +"Luke\0" +"John\0" +"Acts\0" +"Romans\0" +"1 Corinthians\0" +"2 Corinthians\0" +"Galatians\0" +"Ephesians\0" +"Philippians\0" +"Colossians\0" +"1 Thessalonians\0" +"2 Thessalonians\0" +"1 Timothy\0" +"2 Timothy\0" +"Titus\0" +"Philemon\0" +"Hebrews\0" +"James\0" +"1 Peter\0" +"2 Peter\0" +"1 John\0" +"2 John\0" +"3 John\0" +"Jude\0" +"Revelation\0" +"\0"); + +DefineListLoad("ST_BIBLE_BOOK_LINES", +"297\0" +"5068\0" +"9123\0" +"12005\0" +"15977\0" +"19168\0" +"21329\0" +"23598\0" +"23902\0" +"26892\0" +"29345\0" +"32241\0" +"34961\0" +"37633\0" +"40756\0" +"41671\0" +"Tobit\0" +"Judith\0" +"42963\0" +"1 Maccabees\0" +"2 Maccabees\0" +"43605\0" +"46190\0" +"53793\0" +"56267\0" +"56966\0" +"Wisdom\0" +"Sirach\0" +"57332\0" +"61806\0" +"66736\0" +"Baruch\0" +"67217\0" +"71804\0" +"73189\0" +"73876\0" +"74130\0" +"74615\0" +"74697\0" +"74860\0" +"75241\0" +"75416\0" +"75604\0" +"75806\0" +"75932\0" +"76684\0" +"76908\0" +"79970\0" +"81941\0" +"85266\0" +"87803\0" +"90914\0" +"92110\0" +"93323\0" +"94088\0" +"94514\0" +"94869\0" +"95153\0" +"95402\0" +"95647\0" +"95772\0" +"96090\0" +"96320\0" +"96440\0" +"96500\0" +"97370\0" +"97687\0" +"97976\0" +"98163\0" +"98506\0" +"98552\0" +"98597\0" +"98684\0" +"\0"); + + +public U0 PutBibleVerse(U8 *verse,I64 lines) +{ + I64 i; + CDoc *doc; + CDocEntry *doc_e; + U8 *st=StrNew(verse), + *st2=StrNew(verse); + if (StrOcc(st,',')) + StrLastRem(st,",",st2); + else + *st2=0; + + i=DefineMatch(st,"ST_BIBLE_BOOKS",LEF_IGNORE_CASE); + if (i>=0) { + i=A2I(DefineSub(i,"ST_BIBLE_BOOK_LINES")); + doc=DocRead(Define("ST_BIBLE_FILE"),DOCF_PLAIN_TEXT); + DocLineNumGoTo(doc,i); //one based + if (*st2) { + StrCpy(doc->find_replace->find_text,st2); + EdFindNext(doc); + } + doc_e=doc->cur_entry; + while (lines) { + if (doc_e->type_u8==DOCT_TEXT) + "" doc_e->tag; + else if (doc_e->type_u8==DOCT_NEW_LINE) { + NewLine; + lines--; + } + doc_e=doc_e->next; + } + DocDel(doc); + } + Free(st); + Free(st2); +} diff --git a/SparrowOS/Adam/Doc/DocCodeTools.CPP b/SparrowOS/Adam/Doc/DocCodeTools.CPP new file mode 100644 index 0000000..e790dac --- /dev/null +++ b/SparrowOS/Adam/Doc/DocCodeTools.CPP @@ -0,0 +1,433 @@ +#define EF_DONT_RECOMPILE 0 +#define EF_RECOMPILE 1 +#define EF_RENUM_ASM 2 +#define EF_SLIDER_CTRL 3 +#define EF_CH_SC 4 + +I64 PopUpEdFmt() +{ + I64 i; + CDoc *doc=DocNew; + DocPutS(doc,"$$FG,PURPLE$$Reformat Function$$FG$$\n" + "If you enter $$FG,GREEN$$DONT RECOMPILE$$FG$$ the stored\n" + "source line indentation information will\n" + "be used. $$BK,1$$Be sure it is up-to-date!$$BK,0$$\n" + "For $$FG,GREEN$$#exe$$FG$$ config'ed projects, enter $$FG,GREEN$$DONT RECOMPILE$$FG$$.\n" + "$$MU,\"Recompile and autoindent CPP.Z Fun\",EF_RECOMPILE$$\n" + "$$MU,\"Don't Recompile but autoindent CPP.Z Fun\",EF_DONT_RECOMPILE$$\n\n" + "$$MU,\"Renum Asm Local @@ Labels for Fun\",EF_RENUM_ASM$$\n\n" + "$$FG,PURPLE$$Insert Managed Code$$FG$$\n" + "$$MU,\"Slider Ctrl\",EF_SLIDER_CTRL$$\n\n" + "$$FG,PURPLE$$Misc$$FG$$\n" + "$$MU,\"Insert ASCII/Scan Code Hex Codes for key pressed\",EF_CH_SC$$\n\n" + "$$MU,\"CANCEL\",DOCM_CANCEL$$\n" + "$$FG,GREEN$$$$FG$$ to undo if not happy\n" + "with the results.\n"); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + + +#define C_INDENT_SPACES 2 +#define ASM_RENUM_SPACING 5 + +U0 EdRemFunLeadingSpace(CDoc *doc) +{ + Bool unlock=DocLock(doc), + start_of_line=TRUE; + U8 ch,*ptr; + I64 levels=1; + CDocEntry *doc_e,*doc_e2; + + EdGoToFun(doc,FALSE,FALSE); + doc_e=doc->cur_entry->next; + do { + doc_e2=doc_e->next; + if (doc_e!=doc && doc_e!=doc->cur_entry && + !(doc_e->flags1&(DOCEG1_DONT_EDIT-DOCEF1_SCROLLING_X)) && + !(doc_e->flags2&DOCEG2_DONT_EDIT)) + switch (doc_e->type_u8) { + case DOCT_TEXT: + ptr=doc_e->tag; + if (start_of_line) { + while (*ptr==CH_SPACE) + ptr++; + if (*ptr) + start_of_line=FALSE; + ptr=StrNew(ptr,doc->mem_task); + Free(doc_e->tag); + doc_e->tag=ptr; + } + if (!*ptr) + DocEntryDel(doc,doc_e); + else { + while (ch=*ptr++) + if (ch=='{') + levels++; + else if (ch=='}') { + if (!--levels) + break; + } + if (!levels) goto ls_done; + } + break; + case DOCT_TAB: + if (start_of_line) + DocEntryDel(doc,doc_e); + break; + case DOCT_NEW_LINE: + start_of_line=TRUE; + break; + default: + start_of_line=FALSE; + } + doc_e=doc_e2; + } while (doc_e!=doc->cur_entry); +ls_done: + DocRecalc(doc); + DocCenter(doc); + if (unlock) + DocUnlock(doc); +} + + +class CRenum +{ + CRenum *next,*last; + U8 label[sizeof(CEdFindText.find_text)]; +}; + +I64 EdRAGetU8(CDoc *doc) +{ + I64 result=-1; + while (doc->cur_entry!=doc && doc->cur_entry->type&DOCET_SELECTED && result<0) { + result=EdCurU8(doc); + EdCursorRight(doc); + } + return result; +} + +U0 EdRACollect(CDoc *doc,CRenum *root) +{ + I64 ch,i; + CRenum *tempr; + U8 buf[sizeof(CEdFindText.find_text)]; + ch=EdRAGetU8(doc); + while (ch>=0) { + if (ch!='@') + ch=EdRAGetU8(doc); + else { + ch=EdRAGetU8(doc); + if (ch=='@') { + ch=EdRAGetU8(doc); + StrCpy(buf,"@@"); + i=2; + while (ch>=0 && i=0 && Bt(white_space_bitmap,ch)) + ch=EdRAGetU8(doc); + if (ch==':') { + ch=EdRAGetU8(doc); + tempr=MAlloc(sizeof(CRenum)); + StrCpy(tempr->label,buf); + QueIns(tempr,root->last); + } + } + } + } + } + //This is needed because we moved the + //cursor and it didn't recalc. + DocRecalc(doc); +} + +U0 EdRenumAsm(CDoc *doc) +{ + Bool unlock=DocLock(doc); + I64 num=0; + CRenum root,*tempr,*tempr1; + U8 buf[sizeof(CEdFindText.find_text)], + buf2[sizeof(CEdFindText.find_text)]; + + QueInit(&root); + EdSelectFun(doc,TRUE); + EdRACollect(doc,&root); + + tempr=root.next; + while (tempr!=&root) { + tempr1=tempr->next; + num+=ASM_RENUM_SPACING; + SPrintF(buf,"@#%02d",num); + EdReplace(doc,tempr->label,buf,TRUE,TRUE,TRUE); + Free(tempr); + tempr=tempr1; + } + + while (num) { + SPrintF(buf, "@#%02d",num); + SPrintF(buf2,"@@%02d",num); + EdReplace(doc,buf,buf2,TRUE,TRUE,TRUE); + num-=ASM_RENUM_SPACING; + } + EdSelectAll(doc,FALSE); + DocRecalc(doc); + DocCenter(doc); + if (unlock) + DocUnlock(doc); +} + +#define AC_ABORT -1 +#define AC_REINDENT 0 +#define AC_RENUM_ASM 1 + +U0 EdRefmtFun(CDoc *doc,I64 fmt_type) +{ + Bool unlock=DocLock(doc),start_of_line=TRUE; + CDocEntry *doc_e,*doc_ne; + I64 i,x,r,action=AC_ABORT,old_line_num; + U8 *b,*st,*st2,*prj_file; + CHashSrcSym *temph; + CIndentInfo *indent; + CTask *task=NULL; + CTaskCmd *tempc; + + DocRecalc(doc); + old_line_num=doc->cur_entry->y+1; + + DocCaptureUndo(doc,TRUE); + switch (fmt_type) { + case EF_RECOMPILE: + if (EdGoToFun(doc,FALSE,FALSE)) { + if (doc->flags&DOCF_PLAIN_TEXT) + DocFlagsToggle(doc,DOCF_PLAIN_TEXT); + DocWrite(doc); + task=Spawn(&ServantUserCmdLine,NULL,"Servant",Fs); + st2=CurDir; + st=MSPrintF("Cd(\"%s\");",st2); + 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); + + if (GetRqstResult(tempc,&r)) { + st=DirFile(doc->filename.name,,"PRJ.Z"), + prj_file=ZorNotZ(st); + Free(st); + if (FileFind(prj_file)) { + st2=DirFile(prj_file), + st=MSPrintF("Cd(\"%s\");",st2); + Free(st2); + tempc=TaskRqstQue(task,Fs,st,1<filename.name,"Load","CPP.Z"); + prj_file=ZorNotZ(st); + Free(st); + if (FileFind(prj_file)) + st=MSPrintF("\"$$WW,1$$\";ExeFile(\"%s\",TRUE);",prj_file); + else + st=MSPrintF("\"$$WW,1$$\";ExeFile(\"%s\",TRUE);",doc->filename.name); + tempc=TaskRqstQue(task,Fs,st,1<type&(HTT_FUN|HTT_EXPORT_SYS_SYM)) + indent=temph->indent; + else + indent=NULL; + if (indent && indent->min_line<=indent->max_line) { + DocUnlock(doc); + Snd(2000); Sleep(150); Snd(0); + Sleep(100); + Snd(2000); Sleep(150); Snd(0); + DocLock(doc); + EdRemFunLeadingSpace(doc); + DocLineNumGoTo(doc,indent->min_line); + doc_e=doc->cur_entry; + while (indent->min_line<=doc_e->y+1<=indent->max_line) { + if (doc_e!=doc && doc_e!=doc->cur_entry && + !(doc_e->flags1&(DOCEG1_DONT_EDIT-DOCEF1_SCROLLING_X)) && + !(doc_e->flags2&DOCEG2_DONT_EDIT)) { + if (doc_e->type_u8==DOCT_NEW_LINE||doc_e->type_u8==DOCT_SOFT_NEW_LINE) + start_of_line=TRUE; + else { + if (start_of_line) { + i=indent->body[doc_e->y+1-indent->min_line]*C_INDENT_SPACES; + x=doc_e->x+1; + while (i>8) { + doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); + doc_ne->type=DOCT_TAB | doc->settings_root.dft_text_attr << 8; + doc_ne->x=x; + doc_ne->y=doc_e->y; + doc_ne->page_line_num=doc_e->page_line_num; + QueIns(doc_ne,doc_e->last); + i-=8; + x+=8; + } + if (i>0) { + b=MAlloc(i+1,doc->mem_task); + MemSet(b,CH_SPACE,i); + b[i]=0; + doc_ne=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_ne->type=DOCT_TEXT | doc->settings_root.dft_text_attr << 8; + doc_ne->tag=b; + doc_ne->max_col=1; + doc_ne->x=x; + doc_ne->y=doc_e->y; + doc_ne->page_line_num=doc_e->page_line_num; + QueIns(doc_ne,doc_e->last); + } + } + start_of_line=FALSE; + } + } + doc_e=doc_e->next; + } + break; + } + } + DocRecalc(doc); + DocLineNumGoTo(doc,old_line_num); + + DocUnlock(doc); + if (!unlock) + DocLock(doc); + if (task) + Kill(task,FALSE); +} + +U0 EdPopUpChSC(I64 *_ch,I64 *_sc) +{ + I64 sc; + "Press A Key\n"; + DocCur->flags|=DOCF_MIN_SIZE; + do GetMsg(_ch,&sc,1<=0) { + el->num=1; + switch (type) { + case LK_FILE: + if (DocFormDo(el,"CEdFileLink",,,ctrl_L_footer)) { + result=TRUE; + if (!*el->tag) + *_tag=StrNew(el->file); + else + *_tag=StrNew(el->tag); + *_link=MSPrintF("FI:%s",el->file); + } + break; + case LK_PLAIN: + if (DocFormDo(el,"CEdFileLink",,,ctrl_L_footer)) { + result=TRUE; + if (!*el->tag) + *_tag=StrNew(el->file); + else + *_tag=StrNew(el->tag); + *_link=MSPrintF("PI:%s",el->file); + } + break; + case LK_FILE_ANCHOR: + if (DocFormDo(el,"CEdFileAnchorLink",,,ctrl_L_footer)) { + result=TRUE; + if (!*el->tag) + *_tag=StrNew(el->aux); + else + *_tag=StrNew(el->tag); + *_link=MSPrintF("FA:%s,%s",el->file,el->aux); + } + break; + case LK_FILE_FIND: + if (DocFormDo(el,"CEdFileFindLink",,,ctrl_L_footer)) { + result=TRUE; + if (el->num==1) { + if (!*el->tag) + *_tag=StrNew(el->aux); + else + *_tag=StrNew(el->tag); + *_link=MSPrintF("FF:%s,%s",el->file,el->aux); + } else { + if (!*el->tag) + *_tag=StrNew(el->aux); + else + *_tag=StrNew(el->tag); + *_link=MSPrintF("FF:%s,%s:%d",el->file,el->aux,el->num); + } + } + break; + case LK_PLAIN_FIND: + if (DocFormDo(el,"CEdFileFindLink",,,ctrl_L_footer)) { + result=TRUE; + if (el->num==1) { + if (!*el->tag) + *_tag=StrNew(el->aux); + else + *_tag=StrNew(el->tag); + *_link=MSPrintF("PF:%s,%s",el->file,el->aux); + } else { + if (!*el->tag) + *_tag=StrNew(el->aux); + else + *_tag=StrNew(el->tag); + *_link=MSPrintF("PF:%s,%s:%d",el->file,el->aux,el->num); + } + } + break; + case LK_FILE_LINE: + if (DocFormDo(el,"CEdFileLineLink",,,ctrl_L_footer)) { + result=TRUE; + if (!*el->tag) + *_tag=StrNew(el->file); + else + *_tag=StrNew(el->tag); + *_link=MSPrintF("FL:%s,%d",el->file,el->num); + } + break; + case LK_PLAIN_LINE: + if (DocFormDo(el,"CEdFileLineLink",,,ctrl_L_footer)) { + result=TRUE; + if (!*el->tag) + *_tag=StrNew(el->file); + else + *_tag=StrNew(el->tag); + *_link=MSPrintF("PL:%s,%d",el->file,el->num); + } + break; + case LK_MAN_PAGE: + if (DocFormDo(el,"CEdManPageLink",,,ctrl_L_footer)) { + result=TRUE; + if (!*el->tag) + *_tag=StrNew(el->aux); + else + *_tag=StrNew(el->tag); + *_link=MSPrintF("MN:%s",el->aux); + } + break; + case LK_PLACE_ANCHOR: + if (DocFormDo(el,"CEdPlaceAnchor",,,ctrl_L_footer)) { + result=TRUE; + if (!*el->tag) { + if (el->hide) + *_tag=StrNew(""); + else + *_tag=StrNew(el->aux); + } else + *_tag=StrNew(el->tag); + *_link=StrNew(el->aux); + } + break; + case LK_BIBLE_FIND: //TODO + i=PopUpPickDefineSub("ST_BIBLE_BOOKS"); + if (i>=0) { + if (DocFormDo(el,"CEdBibleLink",,,ctrl_L_footer)) { + result=TRUE; + if (!*el->tag) + *_tag=MSPrintF("%Z,%s",i,"ST_BIBLE_BOOKS",el->aux); + else + *_tag=StrNew(el->tag); + *_link=MSPrintF("BF:%Z,%s",i,"ST_BIBLE_BOOKS",el->aux); + } + } + break; + case LK_DEF: + el->num=-1; + if (DocFormDo(el,"CEdDefLink",,,ctrl_L_footer)) { + result=TRUE; + if (!*el->tag) + *_tag=StrNew(el->aux); + else + *_tag=StrNew(el->tag); + if (el->num<0) + *_link=MSPrintF("DF:%s",el->aux); + else + *_link=MSPrintF("DF:%s,%d",el->aux,el->num); + + } + break; + case LK_HELP_INDEX: + if (DocFormDo(el,"CEdManPageLink",,,ctrl_L_footer)) { + result=TRUE; + if (!*el->tag) + *_tag=StrNew(el->aux); + else + *_tag=StrNew(el->tag); + *_link=MSPrintF("HI:%s",el->aux); + } + break; + case LK_ADDR: + el->num=DFT_ADDR_LINK_BIN_SIZE; + if (DocFormDo(el,"CEdAddrLink",,,ctrl_L_footer)) { + result=TRUE; + if (el->num==DFT_ADDR_LINK_BIN_SIZE) { + if (!*el->tag) + *_tag=StrNew(el->aux); + else + *_tag=StrNew(el->tag); + *_link=MSPrintF("AD:%s",el->aux); + } else { + if (!*el->tag) + *_tag=MSPrintF("%s,%d",el->aux,el->num); + else + *_tag=StrNew(el->tag); + *_link=MSPrintF("AD:%s,%d",el->aux,el->num); + } + } + break; + } + } + if (*el->html_link) + *_html_link=StrNew(el->html_link); + else + *_html_link=NULL; + if (el->quote) + *_quote=TRUE; + else + *_quote=FALSE; + Free(el); + return result; +} + +U0 EdInsLink() +{ + U8 *tag=NULL,*link=NULL,*st=NULL,*html_link=NULL; + Bool quote=FALSE; + I64 type=PopUpLinkType(TRUE); + if (type>=0) { + if (PmtLink(type,&tag,&link,"e,&html_link)) { + switch (type) { + case LK_PLACE_ANCHOR: + if (html_link) + st=MSPrintF("$$AN+HTML,\"%Q\",\"%Q\",\"%Q\"$$",tag,link,html_link); + else + st=MSPrintF("$$AN,\"%Q\",\"%Q\"$$",tag,link); + break; + default: + if (html_link) + st=MSPrintF("$$LK+HTML,\"%Q\",\"%Q\",\"%Q\"$$",tag,link,html_link); + else + st=MSPrintF("$$LK,\"%Q\",\"%Q\"$$",tag,link); + } + } + } + if (st) { + if (quote) + "%Q",st; + else + "" st; + } + Free(tag); + Free(link); + Free(html_link); + Free(st); +} + +I64 PopUpColorType() +{ + I64 i; + CDoc *doc=DocNew; + DocPutS(doc,"$$MU,\"Foreground\",DOCT_FOREGROUND$$\n" + "$$MU,\"Background\",DOCT_BACKGROUND$$\n" + "$$MU,\"Default Foreground\",DOCT_DFT_FOREGROUND$$\n" + "$$MU,\"Default Background\",DOCT_DFT_BACKGROUND$$\n" + "$$MU,\"Alt Foreground\",DOCT_ALT_FOREGROUND$$\n" + "$$MU,\"Link Foreground\",DOCT_LINK_FOREGROUND$$\n" + "$$MU,\"Macro Foreground\",DOCT_MACRO_FOREGROUND$$\n" + "$$MU,\"Anchor Foreground\",DOCT_ANCHOR_FOREGROUND$$\n" + "$$MU,\"Hidden Foreground\",DOCT_HIDDEN_FOREGROUND$$\n" + "$$MU,\"Tree Foreground\",DOCT_TREE_FOREGROUND$$\n" + "$$MU,\"User Foreground\",DOCT_USER_FOREGROUND$$\n" + "$$MU,\"Binary Foreground\",DOCT_BINARY_FOREGROUND$$\n" + "$$MU,\"Keyword Foreground\",DOCT_KEYWORD_FOREGROUND$$\n" + "$$MU,\"Keyword2 Foreground\",DOCT_KEYWORD2_FOREGROUND$$\n" + "$$MU,\"Comment Foreground\",DOCT_COMMENT_FOREGROUND$$\n" + "$$MU,\"Quote Foreground\",DOCT_QUOTE_FOREGROUND$$\n" + "\n$$MU,\"CANCEL\",DOCM_CANCEL$$"); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +I64 PopUpPageSettingType() +{ + I64 i; + CDoc *doc=DocNew; + DocPutS(doc,"$$MU,\"Page Length\",DOCT_PAGE_LEN$$\n" + "$$MU,\"Page Header\",DOCT_HEADER$$\n" + "$$MU,\"Page Footer\",DOCT_FOOTER$$\n" + "$$MU,\"Left Margin\",DOCT_LEFT_MARGIN$$\n" + "$$MU,\"Right Margin\",DOCT_RIGHT_MARGIN$$\n" + "$$MU,\"Lock To Page\",DOCT_LOCK_TO_PAGE$$\n" + "$$MU,\"Lock To Center\",DOCT_LOCK_TO_CENTER$$\n"); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +U0 EdInsColor() +{ + I64 type=PopUpColorType,col=DOC_DFT; + if (type>=0) { + col=PopUpColor(,FALSE); + if (col==DOC_DFT) + "$$%Z$$",type,"ST_DOC_CMDS"; + else if (col>=0) + "$$%Z,%d$$",type,"ST_DOC_CMDS",col; + } +} + +class CEdPageSetting1 +{ + U8 val[136] fmtstr "$$DA-P,135,\"Setting Val:%s\"$$\n"; +}; + +class CEdPageSetting2 +{ + U8 val[136] fmtstr "$$DA-P,135,\"Setting Val:%s\"$$\n"; + Bool winrel fmtstr "$$CB,\"Win Relative\"$$\n"; +}; + +class CEdPageSetting3 +{ + Bool lock fmtstr "$$CB,\"Lock To Page\"$$\n"; +}; + +class CEdPageSetting4 +{ + Bool lock fmtstr "$$CB,\"Lock To Center\"$$\n"; +}; + + +U0 EdInsPageSetting() +{ + I64 type=PopUpPageSettingType; + CEdPageSetting1 *el=CAlloc(sizeof(CEdPageSetting1)); + CEdPageSetting2 *el2=CAlloc(sizeof(CEdPageSetting2)); + CEdPageSetting3 *el3=CAlloc(sizeof(CEdPageSetting3)); + CEdPageSetting4 *el4=CAlloc(sizeof(CEdPageSetting4)); + if (type>=0) { + if (type==DOCT_RIGHT_MARGIN||type==DOCT_PAGE_LEN) { + if (DocFormDo(el2,"CEdPageSetting2")) { + if (el2->winrel) { + if (*el2->val) + "$$%Z+WR,%s$$",type,"ST_DOC_CMDS",el2->val; + else + "$$%Z+WR,0$$",type,"ST_DOC_CMDS"; + } else { + if (*el2->val) + "$$%Z,%s$$",type,"ST_DOC_CMDS",el2->val; + else + "$$%Z$$",type,"ST_DOC_CMDS"; + } + } + } else if (type==DOCT_LOCK_TO_PAGE) { + el3->lock=TRUE; + if (DocFormDo(el3,"CEdPageSetting3")) { + if (el3->lock) + "$$%Z,1$$",type,"ST_DOC_CMDS",el->val; + else + "$$%Z,0$$",type,"ST_DOC_CMDS"; + } + } else if (type==DOCT_LOCK_TO_CENTER) { + el4->lock=TRUE; + if (DocFormDo(el4,"CEdPageSetting4")) { + if (el4->lock) + "$$%Z,1$$",type,"ST_DOC_CMDS",el->val; + else + "$$%Z,0$$",type,"ST_DOC_CMDS"; + } + } else { + if (DocFormDo(el,"CEdPageSetting1")) { + if (*el->val) + "$$%Z,%s$$",type,"ST_DOC_CMDS",el->val; + else + "$$%Z$$",type,"ST_DOC_CMDS"; + } + } + } + Free(el4); + Free(el3); + Free(el2); + Free(el); +} + +I64 PopUpDollarType() +{ + I64 i; + CDoc *doc=DocNew; + DocPutS(doc,"$$MU,\"Link\",DOCT_LINK$$\n" + "$$MU,\"Text\",DOCT_TEXT$$\n" + "$$MU,\"Tree Branch\",DOCT_TREE$$\n" + "$$MU,\"Color\",DOCT_FOREGROUND$$\n" + "$$MU,\"Page Settings\",DOCT_PAGE_LEN$$\n" + "$$MU,\"Cursor Movement\",DOCT_CURSOR_MOVEMENT$$\n" + "$$MU,\"Macro\",DOCT_MACRO$$\n" + "$$MU,\"Button\",DOCT_BUTTON$$\n" + "$$MU,\"Check Box\",DOCT_CHECK_BOX$$\n" + "$$MU,\"Menu Val\",DOCT_MENU_VAL$$\n" + "$$MU,\"Data\",DOCT_DATA$$\n" + "$$MU,\"Hex Edit\",DOCT_HEX_ED$$\n" + "$$MU,\"Hidden Widget\",DOCT_HIDE_START$$\n" + "$$MU,\"Syntax Highlighting\",DOCT_HIGHLIGHT$$\n" + "$$MU,\"HTML\",DOCT_HTML_CODE$$\n" + "$$MU,\"Song\",DOCT_SONG$$\n" + "\n$$MU,\"CANCEL\",DOCM_CANCEL$$"); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +class CEdDollarText +{ + U8 tag[136] fmtstr "$$DA-P,135,\"Tag Text :%s\"$$\n"; + Bool left_x fmtstr "$$CB,\"Left X\"$$\n"; + Bool center_x fmtstr "$$CB,\"Center X\"$$\n"; + Bool right_x fmtstr "$$CB,\"Right X\"$$\n"; + Bool margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n"; + Bool blink fmtstr "$$CB,\"Blink\"$$\n"; + Bool invert fmtstr "$$CB,\"Invert\"$$\n"; + Bool underline fmtstr "$$CB,\"Underline\"$$\n"; + Bool tree fmtstr "$$CB,\"Tree\"$$\n"; + Bool collapsed fmtstr "$$CB,\"Collapsed\"$$\n"; + Bool alias fmtstr "$$CB,\"Alias\"$$\n"; + U8 scroll_x [136] fmtstr "$$DA-P,135,\"Scroll X Length Expression:%s\"$$\n"; + U8 shift_x [136] fmtstr "$$DA-P,135,\"X Offset Expression :%s\"$$\n"; + U8 shift_y [136] fmtstr "$$DA-P,135,\"Y Offset Expression :%s\"$$\n"; + U8 define_str[136] fmtstr "$$DA-P,135,\"Define Str :%s\"$$\n"; + U8 html_link[136] fmtstr "$$DA-P,135,\"Html Link :%s\"$$\n"; +}; + +U0 EdInsDollarText() +{ + U8 *st,buf[136]; + CEdDollarText *dt=CAlloc(sizeof(CEdDollarText)); + if (DocFormDo(dt,"CEdDollarText",,,ctrl_L_footer)) { + *buf=0; + if (dt->left_x ) StrCat(buf,"+LX"); + if (dt->center_x) StrCat(buf,"+CX"); + if (dt->right_x ) StrCat(buf,"+RX"); + if (dt->margin_rel) StrCat(buf,"+MRX"); + if (dt->blink) StrCat(buf,"+BK"); + if (dt->invert) StrCat(buf,"+IV"); + if (dt->underline) StrCat(buf,"+UL"); + if (dt->tree) StrCat(buf,"+TR"); + if (dt->collapsed) StrCat(buf,"+C"); + if (dt->alias) StrCat(buf,"+AL"); + if (*dt->scroll_x) StrCat(buf,"+SCX"); + if (*dt->shift_x) StrCat(buf,"+SX"); + if (*dt->shift_y) StrCat(buf,"+SY"); + if (*dt->define_str) StrCat(buf,"+D"); + if (*dt->html_link) StrCat(buf,"+HTML"); + st=MSPrintF("%q",dt->tag); + "$$TX%s,\"%Q\"",buf,st; + Free(st); + if (*dt->shift_x) + ",%s",dt->shift_x; + if (*dt->shift_y) + ",%s",dt->shift_y; + if (*dt->scroll_x) + ",%s",dt->scroll_x; + if (*dt->define_str) { + st=MSPrintF("%q",dt->define_str); + ",\"%Q\"",st; + Free(st); + } + if (*dt->html_link) { + st=MSPrintF("%q",dt->html_link); + ",\"%Q\"",st; + Free(st); + } + "$$"; + } + Free(dt); +} + +class CEdSong +{ + U8 tag[136] fmtstr "$$DA-P,135,\"Tag Text :%s\"$$\n"; + U8 song[512] fmtstr "$$DA-P,511,\"Song :%s\"$$\n"; +}; + +U0 EdInsSong() +{ + CEdSong *dt=CAlloc(sizeof(CEdSong)); + if (DocFormDo(dt,"CEdSong",,,ctrl_L_footer)) + "$$SO,\"%Q\",\"%s\"$$",dt->tag,dt->song; + Free(dt); +} + +class CEdHighlight +{ + Bool highlight_on fmtstr "$$CB,\"Highlight On\"$$\n"; +}; + +U0 EdInsHighlight() +{ + CEdHighlight *dt=CAlloc(sizeof(CEdHighlight)); + if (DocFormDo(dt,"CEdHighlight",,,ctrl_L_footer)) + "$$HL,%d$$",dt->highlight_on; + Free(dt); +} + +#define HT_CODE 0 +#define HT_IMAGE 1 +#define HT_VIDEO 2 + +I64 PopUpHtmlType() +{ + I64 i; + CDoc *doc=DocNew; + DocPutS(doc,"$$MU,\"Html Code\",HT_CODE$$\n" + "$$MU,\"Html Image\",HT_IMAGE$$\n" + "$$MU,\"Html Video\",HT_VIDEO$$\n" + "\n$$MU,\"CANCEL\",DOCM_CANCEL$$"); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +class CEdHtmlCode +{ + U8 tag[512] fmtstr "$$DA-P,511,\"Html Code:%s\"$$\n"; +}; + +class CEdHtmlURL +{ + U8 tag[512] fmtstr "$$DA-P,511,\"URL:%s\"$$\n"; +}; + +U0 EdInsHtml() +{ + CEdHtmlCode *dt=CAlloc(sizeof(CEdHtmlCode)); + switch (PopUpHtmlType) { + case HT_CODE: + if (DocFormDo(dt,"CEdHtmlCode",,,ctrl_L_footer)) + "$$HC,\"%Q\"$$",dt->tag; + break; + case HT_IMAGE: + if (DocFormDo(dt,"CEdHtmlURL",,,ctrl_L_footer)) + "$$HI,\"%Q\"$$",dt->tag; + break; + case HT_VIDEO: + if (DocFormDo(dt,"CEdHtmlURL",,,ctrl_L_footer)) + "$$HV,\"%Q\"$$",dt->tag; + break; + } + Free(dt); +} + +class CEdMacroMenu +{ + U8 tag[136] fmtstr "$$DA-P,135,\"Tag Text :%s\"$$\n"; + U8 left_macro[512] fmtstr "$$DA-P,511,\"Left Click Macro :%s\"$$\n"; + U8 left_exp[136] fmtstr "$$DA-P,135,\"Left Click Expression :%s\"$$\n"; + Bool popup fmtstr "$$CB,\"PopUp\"$$\n"; + Bool left_is_auto fmtstr "$$CB,\"Left is AutoStr\"$$\n"; + Bool left_x fmtstr "$$CB,\"Left X \"$$\n"; + Bool center_x fmtstr "$$CB,\"Center X \"$$\n"; + Bool right_x fmtstr "$$CB,\"Right X \"$$\n"; + Bool margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n"; + Bool blink fmtstr "$$CB,\"Blink\"$$\n"; + Bool invert fmtstr "$$CB,\"Invert\"$$\n"; + Bool underline fmtstr "$$CB,\"Underline\"$$\n"; + Bool escape fmtstr "$$CB,\"Escape\"$$\n"; + U8 scroll_x[136] fmtstr "$$DA-P,135,\"Scroll X Length Expression:%s\"$$\n"; + U8 shift_x[136] fmtstr "$$DA-P,135,\"X Offset Expression :%s\"$$\n"; + U8 shift_y[136] fmtstr "$$DA-P,135,\"Y Offset Expression :%s\"$$\n"; +}; + +U0 EdInsMacroMenu(Bool is_macro) +{ + U8 *st,buf[136]; + CEdMacroMenu *dt=CAlloc(sizeof(CEdMacroMenu)); + dt->underline=TRUE; + dt->escape=TRUE; + if (DocFormDo(dt,"CEdMacroMenu",,,ctrl_L_footer)) { + *buf=0; + if (is_macro && *dt->tag) StrCat(buf,"+A "); + if (dt->popup) StrCat(buf,"+PU-X"); + if (dt->left_x ) StrCat(buf,"+LX"); + if (dt->center_x) StrCat(buf,"+CX"); + if (dt->right_x ) StrCat(buf,"+RX"); + if (dt->margin_rel) StrCat(buf,"+MRX"); + if (dt->blink) StrCat(buf,"+BK"); + if (dt->invert) StrCat(buf,"+IV"); + if (!dt->underline) StrCat(buf,"-UL"); + if (!dt->escape) StrCat(buf,"-X"); + if (*dt->scroll_x) StrCat(buf,"+SCX"); + if (*dt->shift_x) StrCat(buf,"+SX"); + if (*dt->shift_y) StrCat(buf,"+SY"); + if (is_macro) { + if (*dt->left_exp) StrCat(buf,"+LE"); + if (!*dt->left_macro) StrCat(buf,"-LM"); + } else { + if (!*dt->left_exp) StrCat(buf,"-LE"); + if (*dt->left_macro) StrCat(buf,"+LM"); + } + if (dt->left_is_auto) StrCat(buf,"+LA"); + if (*dt->tag || is_macro) { + if (is_macro) { + if (*dt->tag) { + st=MSPrintF("%q",dt->tag); + "$$MA%s,\"%Q\"",buf,st; + Free(st); + } else + "$$MA%s,",buf; + } else { + st=MSPrintF("%q",dt->tag); + "$$MU%s,\"%Q\"",buf,st; + Free(st); + } + if (*dt->left_exp) + ",%s",dt->left_exp; + if (*dt->left_macro) { + st=MSPrintF("%q",dt->left_macro); + ",\"%Q\"",st; + Free(st); + } + if (*dt->shift_x) + ",%s",dt->shift_x; + if (*dt->shift_y) + ",%s",dt->shift_y; + if (*dt->scroll_x) + ",%s",dt->scroll_x; + "$$"; + } + } + Free(dt); +} + +class CEdButton +{ + U8 tag[136] fmtstr "$$DA-P,135,\"Tag Text :%s\"$$\n"; + Bool popup fmtstr "$$CB,\"PopUp\"$$\n"; + Bool left_x fmtstr "$$CB,\"Left X \"$$\n"; + Bool center_x fmtstr "$$CB,\"Center X \"$$\n"; + Bool right_x fmtstr "$$CB,\"Right X \"$$\n"; + Bool margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n"; + Bool escape fmtstr "$$CB,\"Escape\"$$\n"; + U8 left_macro [136] fmtstr "$$DA-P,135,\"Left Click Macro:%s\"$$\n"; + Bool left_is_auto fmtstr "$$CB,\"Left is AutoStr\"$$\n"; + U8 left_exp [136] fmtstr "$$DA-P,135,\"Left Click Expression:%s\"$$\n"; + Bool quote fmtstr "$$CB,\"Quote\"$$\n"; +}; + +U0 EdInsButton() +{ + U8 *st,buf[136]; + CEdButton *dt=CAlloc(sizeof(CEdButton)); + dt->escape=TRUE; + if (DocFormDo(dt,"CEdButton",,,ctrl_L_footer)) { + *buf=0; + if (dt->popup) StrCat(buf,"+PU-X"); + if (dt->left_x ) StrCat(buf,"+LX"); + if (dt->center_x) StrCat(buf,"+CX"); + if (dt->right_x ) StrCat(buf,"+RX"); + if (dt->margin_rel) StrCat(buf,"+MRX"); + if (!dt->escape) StrCat(buf,"-X"); + if (!*dt->left_exp) StrCat(buf,"-LE"); + if (*dt->left_macro) StrCat(buf,"+LM"); + if (dt->left_is_auto) StrCat(buf,"+LA"); + if (*dt->tag) { + if (dt->quote) { + st=MSPrintF("%q",dt->tag); + "$$$$BT%s,\\\"%Q\\\"",buf,st; + Free(st); + if (*dt->left_exp) + ",%s",dt->left_exp; + if (*dt->left_macro) { + st=MSPrintF("%q",dt->left_macro); + ",\\\"%Q\\\"",st; + Free(st); + } + "$$$$"; + } else { + st=MSPrintF("%q",dt->tag); + "$$BT%s,\"%Q\"",buf,st; + Free(st); + if (*dt->left_exp) + ",%s",dt->left_exp; + if (*dt->left_macro) { + st=MSPrintF("%q",dt->left_macro); + ",\"%Q\"",st; + Free(st); + } + "$$"; + } + } + } + Free(dt); +} + + +class CEdCursorMovement +{ + U8 left_exp[136] fmtstr "$$DA-P,135,\"X Expression:%s\"$$\n"; + U8 right_exp[136] fmtstr "$$DA-P,135,\"Y Expression:%s\"$$\n"; + Bool left_x fmtstr "$$CB,\"Left X \"$$\n"; + Bool center_x fmtstr "$$CB,\"Center X \"$$\n"; + Bool right_x fmtstr "$$CB,\"Right X \"$$\n"; + Bool margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n"; + Bool top_y fmtstr "$$CB,\"Top Y \"$$\n"; + Bool center_y fmtstr "$$CB,\"Center Y \"$$\n"; + Bool bottom_y fmtstr "$$CB,\"Bottom Y \"$$\n"; + Bool page_rel fmtstr "$$CB,\"Page Rel Y\"$$\n"; + Bool quote fmtstr "$$CB,\"Quote\"$$\n"; +}; + +U0 EdInsCursorMovement() +{ + U8 buf[136]; + CEdCursorMovement *dt=CAlloc(sizeof(CEdCursorMovement)); + if (DocFormDo(dt,"CEdCursorMovement",,,ctrl_L_footer)) { + *buf=0; + if (dt->left_x ) StrCat(buf,"+LX"); + if (dt->center_x) StrCat(buf,"+CX"); + if (dt->right_x ) StrCat(buf,"+RX"); + if (dt->margin_rel) StrCat(buf,"+MRX"); + if (dt->top_y ) StrCat(buf,"+TY"); + if (dt->center_y) StrCat(buf,"+CY"); + if (dt->bottom_y) StrCat(buf,"+BY"); + if (dt->page_rel) StrCat(buf,"+PRY"); + if (!*dt->left_exp) StrCat(buf,"-LE"); + if (!*dt->right_exp) StrCat(buf,"-RE"); + if (dt->quote) + "$$"; + "$$CM%s",buf; + if (*dt->left_exp) + ",%s",dt->left_exp; + if (*dt->right_exp) + ",%s",dt->right_exp; + "$$"; + if (dt->quote) + "$$"; + } + Free(dt); +} + +class CEdData +{ + U8 fmt_str [136] fmtstr "$$DA-P,135,\"Format Str:%s\"$$\n"; + I64 len fmtstr "$$DA,256,\"Length:%d\"$$\n"; + Bool term fmtstr "$$CB,\"Terminator\"$$\n"; + Bool str fmtstr "$$CB,\"Str\"$$\n"; + Bool refresh fmtstr "$$CB,\"Refresh Data\"$$\n"; + Bool update fmtstr "$$CB,\"Update Data\"$$\n"; + Bool u8 fmtstr "$$CB,\"U8\"$$\n"; + Bool u16 fmtstr "$$CB,\"U16\"$$\n"; + Bool u32 fmtstr "$$CB,\"U32\"$$\n"; + Bool u64 fmtstr "$$CB,\"I64\"$$\n"; +}; + +U0 EdInsData() +{ + U8 *st,buf[136]; + CEdData *dt=CAlloc(sizeof(CEdData)); + dt->term=TRUE; + dt->len=256; + dt->u64=TRUE; + if (DocFormDo(dt,"CEdData",,,ctrl_L_footer)) { + *buf=0; + if (dt->str) StrCat(buf,"-P"); + if (!dt->term) StrCat(buf,"-T"); + 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"); + + st=MSPrintF("%q",dt->fmt_str); + "$$$$DA%s,%d,\\\"%Q\\\"$$$$",buf,dt->len,st; + Free(st); + } + Free(dt); +} + +class CEdCheckBox +{ + U8 label[136] fmtstr "$$DA-P,135,\"Tag Text :%s\"$$\n"; + Bool refresh fmtstr "$$CB,\"Refresh Data\"$$\n"; +}; + +U0 EdInsCheckBox() +{ + U8 *st,buf[136]; + CEdCheckBox *dt=CAlloc(sizeof(CEdCheckBox)); + if (DocFormDo(dt,"CEdCheckBox",,,ctrl_L_footer)) { + *buf=0; + if (dt->refresh) StrCat(buf,"+RD"); + st=MSPrintF("%q",dt->label); + "$$$$CB%s,\\\"%Q\\\"$$$$",buf,st; + Free(st); + } + Free(dt); +} + +class CEdHexEd +{ + I64 cnt fmtstr "$$DA,256,\"Count:%d\"$$\n"; + I64 cols fmtstr "$$DA,256,\"Columns:%d\"$$\n"; + Bool zero fmtstr "$$CB,\"Zero Based\"$$\n"; + Bool refresh fmtstr "$$CB,\"Refresh Data\"$$\n"; +}; + +U0 EdInsHexEd() +{ + U8 buf[136]; + CEdHexEd *dt=CAlloc(sizeof(CEdHexEd)); + dt->cnt=128; + dt->cols=4; + dt->zero=TRUE; + if (DocFormDo(dt,"CEdHexEd",,,ctrl_L_footer)) { + *buf=0; + if (!dt->zero) StrCat(buf,"-Z"); + if (dt->refresh) StrCat(buf,"+RD"); + "$$$$HX%s,%d,%d$$$$",buf,dt->cnt,dt->cols; + } + Free(dt); +} + + +class CEdBinary +{ + U8 tag[136] fmtstr "$$DA-P,135,\"Tag Text :%s\"$$\n"; + I64 bin_num fmtstr "$$DA,256,\"Bin Num:%d\"$$\n"; + U8 bin_ptr_link_file[136] fmtstr "$$DA-P,135,\"File:%s\"$$\n"; + I64 bin_ptr_link_bin_num fmtstr "$$DA,256,\"File Bin Num:%d\"$$\n"; + U8 bin_ptr_link_tag[136] fmtstr "$$DA-P,135,\"File Bin Tag:%s\"$$\n"; +}; + +U0 EdInsBinary(I64 bin_num,I64 type) +{ + CEdBinary *dt=CAlloc(sizeof(CEdBinary)); + SPrintF(dt->tag,"<%d>",bin_num); + dt->bin_num=bin_num; + dt->bin_ptr_link_bin_num=1; + if (DocFormDo(dt,"CEdBinary",, +"Note: Normally, you enter no file,\n" +"just a bin num. If You enter a\n" +"file, enter a file bin num or a file\n" +"bin tag.\n\n",ctrl_L_footer)) { + if (*dt->bin_ptr_link_file) { + if (*dt->bin_ptr_link_tag) + "$$%Z+BP,\"%Q\",%d,\"%s,%s\"$$",type,"ST_DOC_CMDS",dt->tag,dt->bin_num, + dt->bin_ptr_link_file,dt->bin_ptr_link_tag; + else + "$$%Z+BP,\"%Q\",%d,\"%s,%d\"$$",type,"ST_DOC_CMDS",dt->tag,dt->bin_num, + dt->bin_ptr_link_file,dt->bin_ptr_link_bin_num; + } else { + if (DocBinFindNum(DocCur,dt->bin_num)) + "$$%Z,\"%Q\",%d$$",type,"ST_DOC_CMDS",dt->tag,dt->bin_num; + else + PopUpOk("Invalid Binary Num"); + } + } + Free(dt); +} + +class CEdTree +{ + U8 label[136] fmtstr "$$DA-P,135,\"Tag Text :%s\"$$\n"; + I64 indent fmtstr "$$DA,135,\"Indention:%d\"$$\n"; + Bool collapsed fmtstr "$$CB,\"Collapsed\"$$\n"; +}; + +U0 EdInsTree() +{ + U8 *st,*st2,buf[136]; + CEdTree *dt=CAlloc(sizeof(CEdTree)); + dt->collapsed=TRUE; + dt->indent=2; + if (DocFormDo(dt,"CEdTree",,,ctrl_L_footer)) { + *buf=0; + if (!dt->collapsed) StrCat(buf,"-C"); + st=MSPrintF("%q",dt->label); + st2=MSPrintF("$$TR%s,\"%Q\"$$\n$$ID,%d$$*\n$$ID,%d$$", + buf,st,dt->indent,-dt->indent); + DocInsSafe(DocCur,st2); + Free(st); + Free(st2); + } + Free(dt); +} + +U0 EdInsHidden() +{ + DocInsSafe(DocCur,"$$HS$$*$$HE$$"); +} + +U0 EdInsDollarCmd() +{ + I64 type=PopUpDollarType; + switch (type) { + case DOCT_FOREGROUND: + EdInsColor; + break; + case DOCT_PAGE_LEN: + EdInsPageSetting; + break; + case DOCT_LINK: + EdInsLink; + break; + case DOCT_TEXT: + EdInsDollarText; + break; + case DOCT_TREE: + EdInsTree; + break; + case DOCT_MACRO: + EdInsMacroMenu(TRUE); + break; + case DOCT_MENU_VAL: + EdInsMacroMenu(FALSE); + break; + case DOCT_CURSOR_MOVEMENT: + EdInsCursorMovement; + break; + case DOCT_BUTTON: + EdInsButton; + break; + case DOCT_DATA: + EdInsData; + break; + case DOCT_CHECK_BOX: + EdInsCheckBox; + break; + case DOCT_HEX_ED: + EdInsHexEd; + break; + case DOCT_HIDE_START: + EdInsHidden; + break; + case DOCT_SONG: + EdInsSong; + break; + case DOCT_HIGHLIGHT: + EdInsHighlight; + break; + case DOCT_HTML_CODE: + EdInsHtml; + } +} + +#define PT_SPRITE 0 +#define PT_SPRITE_MACRO 1 +#define PT_SPRITE_MENU 2 +#define PT_SPRITE_LINK 3 +#define PT_SPRITE_PTR 4 +#define PT_SPRITE_SIZE 5 +#define PT_DUP_SPRITE 6 +#define PT_SPRITE_TYPE 7 + +I64 PopUpSpriteType() +{ + I64 i; + CDoc *doc=DocNew; + DocPutS(doc,"A sprite is composed of an ordered list 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" + "icons and \"Esc\" for shelling-to-the-cmd-line macros.\n\n" + "In a program, you first make a sprite. Then, you insert\n" + "a pointer to it.\n\n" + "$$MU,\"Insert just Sprite\",PT_SPRITE$$\n" + "$$MU,\"Sprite Macro (Icon)\",PT_SPRITE_MACRO$$\n" + "$$MU,\"Sprite Menu Item\",PT_SPRITE_MENU$$\n" + "$$MU,\"Sprite Link\",PT_SPRITE_LINK$$\n" + "$$MU,\"Pointer to Sprite\",PT_SPRITE_PTR$$\n" + "$$MU,\"Sprite Size (not really needed)\",PT_SPRITE_SIZE$$\n" + "$$MU,\"Duplicate Sprite\",PT_DUP_SPRITE$$\n" + "\n$$MU,\"CANCEL\",DOCM_CANCEL$$\n\n" + "The potential exists for binary data besides $$FG,GREEN$$sprites$$FG$$.\n" + "This is why the pointer to a sprite is known as\n" + "\"Insert Binary\". There is one more option called\n" + "\"Insert Binary Type\". The only other binary data type is\n" + "source line info in map files.\n\n" + "$$MU,\"Insert Binary Data Type\",PT_SPRITE_TYPE$$\n"); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +class CEdJustSprite +{ + U8 tag[136] fmtstr "$$DA-P,135,\"Tag Text :%s\"$$\n"; +}; + +class CEdMacroSprite +{ + U8 tag[136] fmtstr "$$DA-P,135,\"Tag Text :%s\"$$\n"; + U8 exp[512] fmtstr "$$DA-P,511,\"Macro :%s\"$$\n"; + Bool escape fmtstr "$$CB,\"Escape\"$$\n"; + Bool popup fmtstr "$$CB,\"PopUp\"$$\n"; + Bool is_auto fmtstr "$$CB,\"AutoStr\"$$\n"; +}; + +class CEdMenuSprite +{ + U8 tag[136] fmtstr "$$DA-P,135,\"Tag Text :%s\"$$\n"; + U8 exp[512] fmtstr "$$DA-P,511,\"Expression :%s\"$$\n"; + Bool escape fmtstr "$$CB,\"Escape\"$$\n"; +}; + +U8 *EdSpriteLink(U8 **_html_link) +{ + U8 *result=NULL,*tag=NULL,*link=NULL; + Bool quote=FALSE; + I64 type=PopUpLinkType(FALSE); + *_html_link=NULL; + if (type>=0) { + if (PmtLink(type,&tag,&link,"e,_html_link)) + result=MSPrintF("\"%Q\",\"%Q\"",tag,link); + } + Free(tag); + Free(link); + return result; +} + +U8 *EdSprite(I64 bin_num) +{ + I64 type=PopUpSpriteType; + U8 *st,*st1=NULL,*st2=NULL,buf[1024],*html_link=NULL; + CEdMacroSprite *dt=CAlloc(sizeof(CEdMacroSprite)); + *buf=0; + switch (type) { + case PT_SPRITE: + SPrintF(dt->tag,"<%d>",DocCur->cur_bin_num); + if (DocFormDo(dt,"CEdJustSprite",,,ctrl_L_footer)) + st1=MSPrintF("\"%Q\"",dt->tag); + break; + case PT_SPRITE_MACRO: + dt->escape=TRUE; + if (DocFormDo(dt,"CEdMacroSprite",,,ctrl_L_footer)) { + StrCat(buf,"+LM+UL"); + if (dt->is_auto)StrCat(buf,"+LA"); + if (dt->popup) StrCat(buf,"+PU"); + if (dt->escape) StrCat(buf,"+X"); + st=MSPrintF("%q",dt->exp); + st1=MSPrintF("\"%Q\",\"%Q\"",dt->tag,st); + Free(st); + } + break; + case PT_SPRITE_MENU: + dt->escape=TRUE; + if (DocFormDo(dt,"CEdMenuSprite",,,ctrl_L_footer)) { + StrCat(buf,"+LE"); + if (dt->escape) StrCat(buf,"+X"); + st1=MSPrintF("\"%Q\",%s",dt->tag,dt->exp); + } + break; + case PT_SPRITE_LINK: + StrCat(buf,"+L+A"); + st1=EdSpriteLink(&html_link); + break; + case PT_SPRITE_PTR: + EdInsBinary(bin_num,DOCT_INS_BINARY); + break; + case PT_SPRITE_SIZE: + EdInsBinary(bin_num,DOCT_INS_BINARY_SIZE); + break; + case PT_DUP_SPRITE: + EdInsBinary(bin_num,DOCT_SPRITE); + break; + case PT_SPRITE_TYPE: + EdInsBinary(bin_num,DOCT_INS_BINARY_TYPE); + break; + } + if (st1) { + if (html_link) { + StrCat(buf,"+HTML"); + st2=MSPrintF("$$SP%s,%s,\"%Q\",%d$$",buf,st1,html_link,bin_num); + } else + st2=MSPrintF("$$SP%s,%s,%d$$",buf,st1,bin_num); + Free(st1); + } + Free(dt); + Free(html_link); + return st2; +} diff --git a/SparrowOS/Adam/Doc/DocEd.CPP b/SparrowOS/Adam/Doc/DocEd.CPP new file mode 100644 index 0000000..e05b04f --- /dev/null +++ b/SparrowOS/Adam/Doc/DocEd.CPP @@ -0,0 +1,2486 @@ +#help_index "Doc/Edit" +public Bool DocLineNumGoTo(CDoc *doc,I64 line_num) //one based +{ + Bool result=FALSE,unlock; + if (doc) { + unlock=DocLock(doc); + 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); + } + return result; +} + + +public Bool DocPatternFind(CDoc *doc,I64 start_line_num=MIN_I64, + U8 *pattern,I64 match=1) +{ + Bool result=FALSE,unlock; + CDocEntry *doc_e; + U8 *ptr; + I64 i; + if (doc) { + unlock=DocLock(doc); + if (start_line_num==MIN_I64) { + result=TRUE; + doc_e=doc->root.next; + } else { + result=DocLineNumGoTo(doc,start_line_num); + doc_e=doc->cur_entry; + } + if (result) { + if (pattern) { + result=FALSE; + while (doc_e!=doc) { + if (Bt(doc_tag_types,doc_e->type_u8)) { + if (ptr=StrIStr(doc_e->tag,pattern)) { //TODO: handle multientry strings + i=ptr-doc_e->tag; + if (!--match) { + doc->cur_entry=doc_e; + if (imin_col) i=doc_e->min_col; + if (i>doc_e->max_col) i=doc_e->max_col; + doc->cur_data_col=i; + result=TRUE; + break; + } + } + } + doc_e=doc_e->next; + } + } else + result=FALSE; + } + if (!result) DocBottom(doc); + DocCenter(doc); + if (unlock) + DocUnlock(doc); + } + return result; +} + +public Bool DocAnchorFind(CDoc *doc,U8 *pattern) +{ + Bool result=FALSE,unlock; + CDocEntry *doc_e; + if (doc) { + unlock=DocLock(doc); + doc_e=doc->root.next; + if (pattern) + while (doc_e!=doc) { + if (doc_e->type_u8==DOCT_ANCHOR) { + if (!StrCmp(pattern,doc_e->aux_str)) { + doc->cur_entry=doc_e; + doc->cur_data_col=doc_e->min_col; + result=TRUE; + break; + } + } + doc_e=doc_e->next; + } + if (!result) DocBottom(doc); + DocCenter(doc); + if (unlock) + DocUnlock(doc); + } + return result; +} + +public I64 EdCurU8(CDoc *doc) +{ +//See $LK,"EdRenumAsm","MN:EdRenumAsm"$ for an example. + Bool unlock=DocLock(doc); + CDocEntry *doc_ce=doc->cur_entry; + I64 result=-1; + 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; + else if (doc_ce->type_u8==DOCT_NEW_LINE || doc_ce->type_u8==DOCT_SOFT_NEW_LINE) + result=CH_NEW_LINE; + if (unlock) + DocUnlock(doc); + return result; +} + +public U0 EdCursorLeft(CDoc *doc,I64 sc=MIN_I64) +{//You might need a call to $LK,"DocRecalc","MN:DocRecalc"$(). +//See $LK,"EdRenumAsm","MN:EdRenumAsm"$ for an example. + U8 *dst; + Bool unlock=DocLock(doc); + CDocEntry *doc_ce=doc->cur_entry,*original_cl=doc_ce,*doc_ne; + I64 cc=doc->cur_data_col,y=doc_ce->y; + if (sc!=MIN_I64) sc=sc.u32[0]; + if (sc>=0 && sc&SCF_CTRL) { + while (doc_ce->last!=doc && (doc_ce->last->y==y || + doc_ce->flags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP))) + doc_ce=doc_ce->last; //TODO: select? recurse? + cc=doc_ce->min_col; + } else { + if (cc>doc_ce->min_col) { + if (doc_ce->type_u8==DOCT_TEXT && + !(doc_ce->flags1&DOCEG1_DONT_EDIT) && + !(doc_ce->flags2&DOCEG2_DONT_EDIT) && + ccmax_col) { + doc_ne=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_ne->type=doc_ce->type; + doc_ne->flags1=doc_ce->flags1; + doc_ne->flags2=doc_ce->flags2; + dst=doc_ce->tag+cc; + doc_ne->tag=StrNew(dst,doc->mem_task); + doc_ne->max_col=StrLen(dst); + doc_ne->x=doc_ce->x; + doc_ne->y=doc_ce->y; + doc_ne->page_line_num=doc_ce->page_line_num; + *dst=0; + doc_ce->max_col=cc; + QueIns(doc_ne,doc_ce); + } + cc--; + if (doc_ce->type_u8==DOCT_TEXT&& + !(doc_ce->flags1&DOCEG1_DONT_EDIT) && + !(doc_ce->flags2&DOCEG2_DONT_EDIT) && + cc>doc_ce->min_col) { + doc_ne=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_ne->type=doc_ce->type; + doc_ne->flags1=doc_ce->flags1; + doc_ne->flags2=doc_ce->flags2; + dst=doc_ce->tag+cc; + doc_ne->tag=StrNew(dst,doc->mem_task); + doc_ne->max_col=StrLen(dst); + doc_ne->x=doc_ce->x; + doc_ne->y=doc_ce->y; + doc_ne->page_line_num=doc_ce->page_line_num; + *dst=0; + doc_ce->max_col=cc; + QueIns(doc_ne,doc_ce); + doc_ce=doc_ne; + cc=doc_ce->min_col; + } + if (sc>=0) { + if (sc&SCF_SHIFT) + doc_ce->type|=DOCET_SELECTED; + else + doc_ce->type&=~DOCET_SELECTED; + } + } else { + cc=doc_ce->min_col; + while (doc_ce->last!=doc && + (doc_ce->last->type_u8==DOCT_SOFT_NEW_LINE || doc_ce->last->type_u8==DOCT_INDENT || + doc_ce->last->flags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP))) { + doc_ce=doc_ce->last; + if (sc>=0) { + if (sc&SCF_SHIFT) + doc_ce->type|=DOCET_SELECTED; + else + doc_ce->type&=~DOCET_SELECTED; + } + } + if (doc_ce->last!=doc) { + doc_ce=doc_ce->last; + if (doc_ce->max_col>doc_ce->min_col) { + cc=doc_ce->max_col-1; + if (doc_ce->type_u8==DOCT_TEXT && + !(doc_ce->flags1&DOCEG1_DONT_EDIT) && + !(doc_ce->flags2&DOCEG2_DONT_EDIT) && + cc>doc_ce->min_col) { + doc_ne=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_ne->type=doc_ce->type; + doc_ne->flags1=doc_ce->flags1; + doc_ne->flags2=doc_ce->flags2; + dst=doc_ce->tag+cc; + doc_ne->tag=StrNew(dst,doc->mem_task); + doc_ne->max_col=StrLen(dst); + doc_ne->x=doc_ce->x; + doc_ne->y=doc_ce->y; + doc_ne->page_line_num=doc_ce->page_line_num; + *dst=0; + doc_ce->max_col=cc; + QueIns(doc_ne,doc_ce); + doc_ce=doc_ne; + cc=doc_ce->min_col; + } + } else + cc=doc_ce->max_col; + if (sc>=0) { + if (sc&SCF_SHIFT) + doc_ce->type|=DOCET_SELECTED; + else + doc_ce->type&=~DOCET_SELECTED; + } + } + } + } + doc->cur_data_col=cc; + doc->cur_entry=doc_ce; + if (doc_ce!=original_cl) + DocFormBackward(doc); + doc->recalc_start=doc->cur_entry->last; + if (unlock) + DocUnlock(doc); +} + +public U0 EdCursorRight(CDoc *doc,I64 sc=MIN_I64) +{//You might need a call to $LK,"DocRecalc","MN:DocRecalc"$(). +//See $LK,"EdRenumAsm","MN:EdRenumAsm"$ for an example. + Bool unlock=DocLock(doc); + U8 *dst; + CDocEntry *doc_ce=doc->cur_entry,*original_cl=doc_ce,*doc_ne; + I64 cc=doc->cur_data_col,y=doc_ce->y,old_flags1,old_flags2,old_color; + doc->recalc_start=doc_ce->last; + if (sc!=MIN_I64) sc=sc.u32[0]; + if (sc>=0 && sc&SCF_CTRL) { + while (doc_ce!=doc && doc_ce->next->y==y && + doc_ce->next->type_u8!=DOCT_SOFT_NEW_LINE && doc_ce->next!=doc && (doc_ce->next->type_u8!=DOCT_NEW_LINE || !(doc->flags & DOCF_FORM)) || + doc_ce->flags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP)) + doc_ce=doc_ce->next; + if (doc_ce->max_col>doc_ce->min_col) + cc=doc_ce->max_col-1; + else + cc=doc_ce->min_col; + } else { + if (ccmax_col) { + if (doc_ce->type_u8==DOCT_TEXT&& + !(doc_ce->flags1&DOCEG1_DONT_EDIT) && + !(doc_ce->flags2&DOCEG2_DONT_EDIT) && + cc>doc_ce->min_col) { + doc_ne=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_ne->type=doc_ce->type; + doc_ne->flags1=doc_ce->flags1; + doc_ne->flags2=doc_ce->flags2; + doc_ne->x=doc_ce->x; + doc_ne->y=doc_ce->y; + doc_ne->page_line_num=doc_ce->page_line_num; + dst=doc_ce->tag+cc; + doc_ne->tag=StrNew(dst,doc->mem_task); + doc_ne->max_col=StrLen(dst); + *dst=0; + doc_ce->max_col=cc; + QueIns(doc_ne,doc_ce); + doc_ce=doc_ne; + cc=doc_ce->min_col; + } + cc++; + old_flags1=doc_ce->flags1; + old_flags2=doc_ce->flags2; + old_color=doc_ce->type; + if (sc>=0) { + if (sc&SCF_SHIFT) + doc_ce->type|=DOCET_SELECTED; + else + doc_ce->type&=~DOCET_SELECTED; + } + if (doc_ce->type_u8==DOCT_TEXT&& + !(doc_ce->flags1&DOCEG1_DONT_EDIT) && + !(doc_ce->flags2&DOCEG2_DONT_EDIT) && + ccmax_col) { + doc_ne=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_ne->type=DOCT_TEXT | old_color & -0x100; + doc_ne->flags1=old_flags1; + doc_ne->flags2=old_flags2; + dst=doc_ce->tag+cc; + doc_ne->tag=StrNew(dst,doc->mem_task); + doc_ne->max_col=StrLen(dst); + doc_ce->max_col=cc; + *dst=0; + doc_ne->x=doc_ce->x; + doc_ne->y=doc_ce->y; + doc_ne->page_line_num=doc_ce->page_line_num; + QueIns(doc_ne,doc_ce); + doc_ce=doc_ne; + cc=doc_ce->min_col; + } else if (cc>=doc_ce->max_col) { + doc_ce=doc_ce->next; + cc=doc_ce->min_col; + } + } else { + if (doc_ce!=doc) { + if (cc<=doc_ce->min_col && sc>=0) { + if (sc&SCF_SHIFT) + doc_ce->type|=DOCET_SELECTED; + else + doc_ce->type&=~DOCET_SELECTED; + } + doc_ce=doc_ce->next; + while (doc_ce!=doc && doc_ce->flags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP)) { + if (sc>=0) { + if (sc&SCF_SHIFT) + doc_ce->type|=DOCET_SELECTED; + else + doc_ce->type&=~DOCET_SELECTED; + } + doc_ce=doc_ce->next; + } + cc=doc_ce->min_col; + if (doc_ce->type_u8==DOCT_SOFT_NEW_LINE) { + if (sc>=0) { + if (sc&SCF_SHIFT) + doc_ce->type|=DOCET_SELECTED; + else + doc_ce->type&=~DOCET_SELECTED; + } + doc_ce=doc_ce->next; + cc=doc_ce->min_col; + } + } + } + } + doc->cur_data_col=cc; + doc->cur_entry=doc_ce; + if (doc_ce!=original_cl) + DocFormFwd(doc); + if (unlock) + DocUnlock(doc); +} + +public U0 EdLineUp(CDoc *doc,I64 sc=MIN_I64) +{//You might need a call to $LK,"DocRecalc","MN:DocRecalc"$(). +//See $LK,"EdRenumAsm","MN:EdRenumAsm"$ for an example. + Bool unlock=DocLock(doc); + U8 *dst; + I64 y,x; + CDocEntry *doc_ce=doc->cur_entry,*doc_ne; + + if (sc!=MIN_I64) sc=sc.u32[0]; + if (doc_ce->type_u8==DOCT_HEX_ED) { + doc->cur_data_col=doc->cur_data_col-doc_ce->hex_ed_width*3; + if (doc->cur_data_col>=0) { + if (unlock) + DocUnlock(doc); + return; + } else + doc->cur_data_col=0; + } + x=doc->x; y=doc->y; + if (doc_ce->type_u8==DOCT_TEXT && + !(doc_ce->flags1&DOCEG1_DONT_EDIT) && + !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + if (doc_ce->min_colcur_data_colmax_col-1) { + doc_ne=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_ne->type=doc_ce->type; + doc_ne->flags1=doc_ce->flags1; + doc_ne->flags2=doc_ce->flags2; + dst=doc_ce->tag+doc->cur_data_col; + doc_ne->tag=StrNew(dst,doc->mem_task); + doc_ne->max_col=StrLen(dst); + doc_ne->y=doc_ce->y; + doc_ne->x=doc_ce->x+doc->cur_data_col; + doc_ne->page_line_num=doc_ce->page_line_num; + *dst=0; + doc_ce->max_col=doc->cur_data_col; + QueIns(doc_ne,doc_ce); + } else + if (doc->cur_data_col==doc_ce->min_col && doc_ce->last!=doc) + doc_ce=doc_ce->last; + } else + if (doc_ce->last!=doc) + doc_ce=doc_ce->last; + if (sc>=0) { + if (sc&SCF_SHIFT) + doc_ce->type|=DOCET_SELECTED; + else + doc_ce->type&=~DOCET_SELECTED; + } + doc->cur_entry=doc_ce; + DocFormBackward(doc); + doc_ce=doc->cur_entry; + while (doc_ce->last!=doc && (doc_ce->y>=y || doc_ce->flags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP))) { + doc_ce=doc_ce->last; + if (sc>=0) { + if (sc&SCF_SHIFT) + doc_ce->type|=DOCET_SELECTED; + else + doc_ce->type&=~DOCET_SELECTED; + } + } + y=doc_ce->y; + doc->y=y; + while (doc_ce!=doc && (doc_ce->y>=y && doc_ce->x>=x || doc_ce->flags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP))) { + if (sc>=0) { + if (sc&SCF_SHIFT) + doc_ce->type|=DOCET_SELECTED; + else + doc_ce->type&=~DOCET_SELECTED; + } + doc_ce=doc_ce->last; + } + + if (doc_ce==doc || doc_ce->ynext; + else { + if (doc_ce->type_u8!=DOCT_TEXT|| + doc_ce->flags1&DOCEG1_DONT_EDIT || + doc_ce->flags2&DOCEG2_DONT_EDIT) { + if (sc>=0) { + if (sc&SCF_SHIFT) + doc_ce->type|=DOCET_SELECTED; + else + doc_ce->type&=~DOCET_SELECTED; + } + } else { + if (doc_ce->next->x==x) { + doc_ce=doc_ce->next; + if (doc->flags & DOCF_FORM) { + while (doc_ce->next->x==x && + (!Bt(doc_form_types,doc_ce->type_u8) || + doc_ce->flags1&DOCEF1_SKIP_IN_FORM)) + doc_ce=doc_ce->next; + } + } + } + } + if (Bt(doc_tag_types,doc_ce->type_u8)) { + doc->cur_data_col=x-doc_ce->x; + if (doc_ce->type_u8==DOCT_TEXT&& + !(doc_ce->flags1&DOCEG1_DONT_EDIT) && + !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + if (doc->cur_data_col>doc_ce->max_col) + doc->cur_data_col=doc_ce->max_col; + } else { + if (doc->cur_data_col>=doc_ce->max_col) + doc->cur_data_col=doc_ce->max_col-1; + } + if (doc->cur_data_colmin_col) + doc->cur_data_col=doc_ce->min_col; + } else { + if (doc_ce->type_u8==DOCT_HEX_ED) { + doc->cur_data_col=RoundI64((doc_ce->len-1)*3,doc_ce->hex_ed_width*3); + if (doc->cur_data_col<0) + doc->cur_data_col=0; + } else + doc->cur_data_col=doc_ce->min_col; + } + if (doc_ce->type_u8==DOCT_TEXT && + !(doc_ce->flags1&DOCEG1_DONT_EDIT) && + !(doc_ce->flags2&DOCEG2_DONT_EDIT) && doc_ce->xcur_data_colmax_col-1) { + doc_ne=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_ne->type=doc_ce->type; + doc_ne->flags1=doc_ce->flags1; + doc_ne->flags2=doc_ce->flags2; + if (sc>=0) { + if (sc&SCF_SHIFT) + doc_ne->type=doc_ce->type | DOCET_SELECTED; + else + doc_ne->type=doc_ce->type & ~DOCET_SELECTED; + } + dst=doc_ce->tag+doc->cur_data_col; + doc_ne->tag=StrNew(dst,doc->mem_task); + doc_ne->max_col=StrLen(dst); + doc_ne->page_line_num=doc_ce->page_line_num; + doc_ne->y=doc_ce->y; + doc_ne->x=doc_ce->x+doc->cur_data_col; + *dst=0; + doc_ce->max_col=doc->cur_data_col; + QueIns(doc_ne,doc_ce); + doc_ce=doc_ne; + doc->cur_data_col=doc_ce->min_col; + } + } + doc->cur_entry=doc_ce; + DocFormFwd(doc); + doc->x=doc->cur_entry->x+doc->cur_data_col; + doc->recalc_start=doc->cur_entry->last; + if (unlock) + DocUnlock(doc); +} + +public U0 EdLineDown(CDoc *doc,I64 sc=MIN_I64) +{//You might need a call to $LK,"DocRecalc","MN:DocRecalc"$(). +//See $LK,"EdRenumAsm","MN:EdRenumAsm"$ for an example. + Bool unlock=DocLock(doc); + U8 *dst; + I64 y,x,old_flags1=0,old_flags2=0,old_color; + CDocEntry *doc_ce=doc->cur_entry,*doc_ne,*doc_ce2; + if (sc!=MIN_I64) sc=sc.u32[0]; + if (doc_ce->type_u8==DOCT_HEX_ED) { + doc->cur_data_col=doc->cur_data_col+doc_ce->hex_ed_width*3; + if (doc->cur_data_col>=doc_ce->len*3) { + doc->cur_entry=doc_ce=doc_ce->next; + doc->cur_data_col=doc_ce->min_col; + doc->x=doc_ce->x+doc->cur_data_col; + doc->y=doc_ce->y; + } + if (unlock) + DocUnlock(doc); + return; + } + doc->recalc_start=doc_ce->last; + x=doc->x; y=doc->y; + if (doc_ce->type_u8==DOCT_TEXT && + !(doc_ce->flags1&DOCEG1_DONT_EDIT)&& + !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + if (doc->cur_data_col>doc_ce->min_col && doc->cur_data_colmax_col-1) { + doc_ne=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_ne->type=doc_ce->type; + doc_ne->flags1=doc_ce->flags1; + doc_ne->flags2=doc_ce->flags2; + if (sc>=0) { + if (sc&SCF_SHIFT) + doc_ne->type=doc_ce->type | DOCET_SELECTED; + else + doc_ne->type=doc_ce->type & ~DOCET_SELECTED; + } + dst=doc_ce->tag+doc->cur_data_col; + doc_ne->tag=StrNew(dst,doc->mem_task); + doc_ne->max_col=StrLen(dst); + doc_ne->page_line_num=doc_ce->page_line_num; + doc_ne->y=doc_ce->y; + doc_ne->x=doc_ce->x+doc->cur_data_col; + *dst=0; + doc_ce->max_col=doc->cur_data_col; + QueIns(doc_ne,doc_ce); + doc_ce=doc_ne; + doc->cur_data_col=doc_ce->min_col; + } + } + doc_ce2=doc_ce; + while (doc_ce!=doc && (doc_ce->y<=y || doc_ce->flags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP))) + doc_ce=doc_ce->next; + y=doc_ce->y; + doc->y=y; + while (doc_ce!=doc && (doc_ce->y<=y && doc_ce->x<=x || doc_ce->flags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP))) { + old_flags1=doc_ce->flags1; + old_flags2=doc_ce->flags2; + old_color=doc_ce->type; + doc_ce=doc_ce->next; + } + if (doc_ce->last!=doc && (doc_ce->x>x || doc_ce->y>y)) { + doc_ce=doc_ce->last; + doc->cur_entry=doc_ce; + if (!((doc_ce->type_u8==DOCT_NEW_LINE || doc_ce->type_u8==DOCT_SOFT_NEW_LINE || doc_ce->type_u8==DOCT_INDENT) && + (doc_ce->last->type_u8==DOCT_NEW_LINE || doc_ce->last->type_u8==DOCT_SOFT_NEW_LINE || doc_ce->last->type_u8==DOCT_INDENT))) + DocFormBackward(doc); + doc_ce=doc->cur_entry; + } + while (doc_ce2!=doc && (doc_ce2!=doc_ce || doc_ce->type_u8==DOCT_TEXT && + !(doc_ce->flags1&DOCEG1_DONT_EDIT) && + !(doc_ce->flags2&DOCEG2_DONT_EDIT))) { + if (doc_ce2->yxflags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP) || + doc_ce2->x==x && !doc_ce2->max_col && + Bt(doc_nontag_invisible_types,doc_ce2->type_u8)) { + if (sc>=0) { + if (sc&SCF_SHIFT) + doc_ce2->type|=DOCET_SELECTED; + else + doc_ce2->type&=~DOCET_SELECTED; + } + } + if (doc_ce2==doc_ce) break; + doc_ce2=doc_ce2->next; + } + if (Bt(doc_tag_types,doc_ce->type_u8)) { + doc->cur_data_col=x-doc_ce->x; + if (doc_ce->type_u8==DOCT_TEXT&& + !(doc_ce->flags1&DOCEG1_DONT_EDIT) && + !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + if (doc->cur_data_col>doc_ce->max_col) + doc->cur_data_col=doc_ce->max_col; + } else { + if (doc->cur_data_col>=doc_ce->max_col) + doc->cur_data_col=doc_ce->max_col-1; + } + if (doc->cur_data_colmin_col) + doc->cur_data_col=doc_ce->min_col; + } else + doc->cur_data_col=doc_ce->min_col; + if (doc_ce->type_u8==DOCT_TEXT&& + !(doc_ce->flags1&DOCEG1_DONT_EDIT) && + !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + if (doc_ce->min_colcur_data_colmax_col-1) { + doc_ne=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_ne->type=DOCT_TEXT | old_color & -0x100; + doc_ne->flags1=old_flags1; + doc_ne->flags2=old_flags2; + dst=doc_ce->tag+doc->cur_data_col; + doc_ne->tag=StrNew(dst,doc->mem_task); + doc_ne->max_col=StrLen(dst); + *dst=0; + doc_ce->max_col=doc->cur_data_col; + doc_ne->y=doc_ce->y; + doc_ne->page_line_num=doc_ce->page_line_num; + doc_ne->x=doc_ce->x+doc->cur_data_col; + QueIns(doc_ne,doc_ce); + doc_ce=doc_ne; + doc->cur_data_col=doc_ce->min_col; + } + } + doc->cur_entry=doc_ce; + DocFormFwd(doc); + if (!(doc->flags & DOCF_FORM)) + while (doc_ce!=doc && doc_ce!=doc->cur_entry) { + if (sc>=0) { + if (sc&SCF_SHIFT) + doc_ce->type|=DOCET_SELECTED; + else + doc_ce->type&=~DOCET_SELECTED; + } + doc_ce=doc_ce->next; + } + doc->x=doc->cur_entry->x+doc->cur_data_col; + if (unlock) + DocUnlock(doc); +} + +U0 EdDelChar(CDoc *doc) +{ + Bool unlock=DocLock(doc); + CDocEntry *doc_ce=doc->cur_entry; + + if (doc_ce==doc) { + if (unlock) + DocUnlock(doc); + return; + } else + doc->recalc_start=doc_ce->last; + if (doc_ce->max_col!=0 && (doc_ce->type_u8==DOCT_TEXT&& + !(doc_ce->flags1&DOCEG1_DONT_EDIT) && + !(doc_ce->flags2&DOCEG2_DONT_EDIT)|| doc_ce->type_u8==DOCT_DATA)) { + if (doc_ce->type_u8==DOCT_DATA) { + if (doc_ce->flags1 & DOCEF1_HAS_TERMINATOR && doc->cur_data_col==doc_ce->max_col-1) { + if (unlock) + DocUnlock(doc); + return; + } + } + if (doc->cur_data_colmax_col) + StrCpy(doc_ce->tag+doc->cur_data_col,doc_ce->tag+doc->cur_data_col+1); + if (doc->cur_data_col>=doc_ce->max_col-1) { + doc->cur_entry=doc_ce->next; + doc->cur_data_col=doc->cur_entry->min_col; + } + DocRemSoftNewLines(doc,doc->cur_entry); + if (unlock) + DocUnlock(doc); + return; + } + doc->cur_entry=doc_ce->next; + doc->cur_data_col=doc->cur_entry->min_col; + if (!(doc_ce->flags1&DOCEF1_FILTER_SKIP)) + DocEntryDel(doc,doc_ce); + DocRemSoftNewLines(doc,doc->cur_entry); + if (unlock) + DocUnlock(doc); +} + +U0 ChkDollarBufSize(CDoc *doc) +{ + U8 *b; + if (doc->dollar_buf_ptr>=doc->dollar_buf_size-2) { + doc->dollar_buf_size<<=1; + b=MAlloc(doc->dollar_buf_size,doc->mem_task); + MemCpy(b,doc->dollar_buf,doc->dollar_buf_ptr); + Free(doc->dollar_buf); + doc->dollar_buf=b; + } +} + + +U0 EdInsChar(I64 ch,I64 sc,CDoc *doc) +{ + Bool unlock=DocLock(doc); + U8 *b,*src,*dst; + CDocEntry *doc_ce=doc->cur_entry,*doc_ne; + I64 i,j,m,y=doc_ce->y; + + doc->recalc_start=doc_ce->last; + while (doc->recalc_start!=doc && doc->recalc_start->flags1&(DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP)) + doc->recalc_start=doc->recalc_start->last; + + if (doc->flags & DOCF_IN_DOLLAR) { + if (!Bt(getkey_chars_bitmap,ch)) + goto ic_done; + ChkDollarBufSize(doc); + doc->dollar_buf[doc->dollar_buf_ptr++]=ch; + if (ch=='$$') { + if (doc->dollar_buf_ptr==2) { + doc->flags&=~DOCF_IN_DOLLAR; + doc->dollar_buf_ptr=0; + goto ic_cont; + } else { + doc->dollar_buf[doc->dollar_buf_ptr]=0; + DocPutS(doc,doc->dollar_buf); + doc->flags&=~DOCF_IN_DOLLAR; + doc->dollar_buf_ptr=0; + goto ic_done; + } + } else + goto ic_done; + } + if (ch=='$$') { + if (!(doc->flags & (DOCF_PLAIN_TEXT | DOCF_PLAIN_TEXT_WITH_TABS))) { + doc->flags|=DOCF_IN_DOLLAR; + doc->dollar_buf_ptr=0; + doc->dollar_buf[doc->dollar_buf_ptr++]=ch; + goto ic_done; + } + } + if (ch==CH_CARRIAGE_RETURN) goto ic_done; + +ic_cont: + if ((ch==CH_SPACE || ch==CH_NEW_LINE) && + !(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 | + DOCEF1_RIGHT_MACRO|DOCEF1_RIGHT_EXP|DOCEF1_RIGHT_CB|DOCEF1_RIGHT_AUTO)) { + doc->cmd_U8=ch; + DocEntryRun(doc,doc_ce,FALSE); + DocLock(doc); + goto ic_done; + } + if (doc_ce->type_u8==DOCT_HEX_ED) { + if (doc_ce->flags1 & DOCEF1_DATA_IS_PTR) + b=doc_ce->data; + else + b=&doc_ce->data; + i=doc->cur_data_col; + j=i%(doc_ce->hex_ed_width*3); + m=i/(doc_ce->hex_ed_width*3)*doc_ce->hex_ed_width; + if (j>=doc_ce->hex_ed_width<<1) + b[j-doc_ce->hex_ed_width<<1+m]=ch; + else { + ch=ToUpper(ch)-'0'; + if (ch>9) { + ch+='0'-'A'+10; + if (!(10<=ch<=15)) + goto ic_done; + } + m=j>>1+m; + if (j & 1) + b[m]=b[m] & 0xF0| ch; + else + b[m]=b[m] & 0xF | ch<<4; + } + doc->cur_data_col++; + goto ic_done; + } + if (doc->flags & DOCF_OVERSTRIKE) { + if (Bt(displayable_chars_bitmap,ch)) { +ic_overstrike_char: + if (doc_ce->type_u8==DOCT_TEXT&& + !(doc_ce->flags1&DOCEG1_DONT_EDIT) && + !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + if (doc->cur_data_colmax_col) { + if (doc_ce->tag[doc->cur_data_col]) { + doc_ce->tag[doc->cur_data_col++]=ch; + goto ic_done; + } + } else { + doc_ce=doc_ce->next; + doc->cur_entry=doc_ce; + doc->cur_data_col=doc_ce->min_col; + goto ic_overstrike_char; + } + } else if (doc_ce->type_u8==DOCT_DATA) { + if (doc_ce->flags1 & DOCEF1_HAS_TERMINATOR) { + if (doc_ce->tag[doc->cur_data_col] && + doc->cur_data_colmin_col+doc_ce->len) { + doc_ce->tag[doc->cur_data_col++]=ch; + if ( ! doc_ce->tag[doc->cur_data_col]) { + doc_ce->tag[doc->cur_data_col]='_'; + doc_ce->tag[doc->cur_data_col+1]=0; + } + } + } else { + if (doc_ce->tag[doc->cur_data_col]) + doc_ce->tag[doc->cur_data_col++]=ch; + } + goto ic_done; + } + b=MAlloc(2,doc->mem_task); + *b=ch; + b[1]=0; + doc_ne=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_ne->type=DOCT_TEXT | doc->settings_root.dft_text_attr << 8; + doc_ne->tag=b; + doc_ne->max_col=1; + doc_ne->x=doc_ce->x; + 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) { + 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) { + if (doc->flags&DOCF_FORM) + goto ic_form_tab; + } + goto ic_done; + } + if (ch==CH_NEW_LINE) { + 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) { + if (doc->flags&DOCF_FORM && + Bt(doc_form_types,doc->cur_entry->type_u8) && + !(doc->cur_entry->flags1&DOCEF1_SKIP_IN_FORM)) { +ic_form_tab: + doc->cur_entry=doc->cur_entry->next; + doc->cur_data_col=doc->cur_entry->min_col; + DocFormFwd(doc); + goto ic_done; + } else { + doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); + doc_ne->type=DOCT_TAB | doc->settings_root.dft_text_attr << 8; + DocIns(doc,doc_ne); + } + } else { + if (Bt(displayable_chars_bitmap,ch)) { + if (doc_ce->type_u8==DOCT_DATA) { + i=doc_ce->len+doc_ce->min_col; + if (doc_ce->flags1 & DOCEF1_HAS_TERMINATOR) + i++; + if (i>doc_ce->max_col) { + b=doc_ce->tag; + doc_ce->max_col++; + for (i=doc_ce->max_col;i>doc->cur_data_col;i--) + b[i]=b[i-1]; + b[doc->cur_data_col++]=ch; + } + } else if (doc_ce->type_u8==DOCT_TEXT&& + !(doc_ce->flags1&DOCEG1_DONT_EDIT) && + !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + dst=b=MAlloc(doc_ce->max_col+2,doc->mem_task); + src=doc_ce->tag; + i=doc->cur_data_col; + while (i-->0) + *dst++=*src++; + *dst++=ch; + while (*dst++=*src++); + Free(doc_ce->tag); + doc_ce->tag=b; + doc_ce->max_col++; + doc->cur_data_col++; + } else { + b=MAlloc(2,doc->mem_task); + *b=ch; + b[1]=0; + doc_ne=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_ne->type=DOCT_TEXT | doc->settings_root.dft_text_attr << 8; + doc_ne->tag=b; + doc_ne->max_col=1; + doc_ne->x=doc_ce->x+1; + doc_ne->y=doc_ce->y; + doc_ne->page_line_num=doc_ce->page_line_num; + QueIns(doc_ne,doc_ce->last); + } + } + } +ic_done: + DocRemSoftNewLines(doc,doc->cur_entry); + if (doc->cur_entry->flags1 & DOCEF1_UPDATE_DATA) { + if (doc->cur_entry->type_u8==DOCT_DATA || doc->cur_entry->type_u8==DOCT_CHECK_BOX) + DocDataGet(doc->cur_entry); + } + if (unlock) + DocUnlock(doc); +} + +U0 EdDelLine(CDoc *doc) +{ + CDocEntry *doc_ce=doc->cur_entry,*doc_ce2; + I64 y; + y=doc->y; + while (doc_ce!=doc && doc_ce->y==y) + doc_ce=doc_ce->next; + doc->cur_entry=doc_ce; + doc->cur_data_col=doc_ce->min_col; + doc_ce=doc_ce->last; + while (doc_ce!=doc && doc_ce->y==y) { + doc_ce2=doc_ce->last; + if (!(doc_ce->flags1&DOCEF1_FILTER_SKIP)) + DocEntryDel(doc,doc_ce); + doc_ce=doc_ce2; + } + if (doc_ce==doc) + doc->recalc_start=doc_ce; + else + doc->recalc_start=doc_ce->last; +} + +public U0 EdFindNext(CDoc *doc) +{ + Bool unlock=DocLock(doc); + U8 *ptr,*ptr2,*ptr3; + CDocEntry *doc_ce=doc->cur_entry,*doc_e=doc_ce; + I64 ss_flags; + if (doc->find_replace->match_case) + ss_flags=0; + else + ss_flags=SRF_IGNORE_CASE; + if (doc->find_replace->whole_labels) + ss_flags|=SRG_WHOLE_LABELS; + do { + if (doc_e!=doc) { + if (Bt(doc_tag_types,doc_e->type_u8)&& + !(doc_e->flags1&(DOCEG1_DONT_EDIT|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP)) && + !(doc_e->flags2&DOCEG2_DONT_EDIT)) { + if (doc_e->type & DOCET_SELECTED || !doc->find_replace->scan_selected_text) { + if (doc->find_replace->scan_fwd) { + if (doc_e==doc_ce) { + ptr=doc_ce->tag+doc->cur_data_col+1; + if (ptr-doc_ce->tag>=doc_ce->max_col) + goto fn_skip; + if (ptr-doc_ce->tagmin_col) + ptr=doc_ce->tag+doc_ce->min_col; + } else + ptr=doc_e->tag; + if (ptr=SearchStr(ptr,doc->find_replace->find_text,ss_flags)) { + doc->cur_entry=doc_e; + doc->cur_data_col=ptr-doc_e->tag; + if (doc->cur_data_col>=doc_e->max_col) + doc->cur_data_col=doc_e->max_col-1; + if (doc->cur_data_colmin_col) + doc->cur_data_col=doc_e->min_col; + DocCenter(doc); + if (unlock) + DocUnlock(doc); + return; + } + } else { + ptr2=NULL; + ptr=doc_e->tag+doc_e->min_col; + if (doc_e==doc_ce) + ptr3=doc_ce->tag+doc->cur_data_col; + else + ptr3=doc_e->tag+doc_e->max_col; + while (ptr=SearchStr(ptr,doc->find_replace->find_text,ss_flags)) { + if (ptr>=ptr3) + break; + ptr2=ptr++; + } + if (ptr2 && ptr2cur_entry=doc_e; + doc->cur_data_col=ptr2-doc_e->tag; + if (doc->cur_data_col>=doc_e->max_col) + doc->cur_data_col=doc_e->max_col-1; + if (doc->cur_data_colmin_col) + doc->cur_data_col=doc_e->min_col; + DocCenter(doc); + if (unlock) + DocUnlock(doc); + return; + } + } + } + } + } +fn_skip: + doc_e= doc->find_replace->scan_fwd ? doc_e->next:doc_e->last; + } while (doc_e!=doc_ce); + if (unlock) + DocUnlock(doc); +} + +public U0 EdSelectAll(CDoc *doc,Bool select) +{ + Bool unlock=DocLock(doc); + CDocEntry *doc_e=doc->root.next; + while (doc_e!=doc) { + if (select) + doc_e->type|=DOCET_SELECTED; + else + doc_e->type&=~DOCET_SELECTED; + doc_e=doc_e->next; + } + if (unlock) + DocUnlock(doc); +} + +#help_index "Doc/IDE" +public Bool EdFindPaired(CDoc *doc,U8 plus,U8 minus,Bool fwd,Bool abort_on_dbl_colon=FALSE) +{ + Bool unlock=DocLock(doc),result=FALSE; + U8 ch,*ptr,original_col=doc->cur_data_col; + I64 levels=0,colons=0; + CDocEntry *doc_ce=doc->cur_entry,*doc_e=doc_ce,*original_cl=doc_ce; + if (abort_on_dbl_colon && EdCurU8(doc)==':') + colons=1; + else + colons=0; + do { + if (doc_e!=doc) { + if (Bt(doc_tag_types,doc_e->type_u8)&&!(doc_e->flags1&(DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP))) { + if (fwd) { + if (doc_e==doc_ce) + ptr=doc_e->tag+doc->cur_data_col+1; + else + ptr=doc_e->tag; + if (ptr-doc_e->tagmin_col) + ptr=doc_e->tag+doc_e->min_col; + if (ptr-doc_e->tag>=doc_e->max_col) + goto pa_skip; + while (ch=*ptr++) + if (abort_on_dbl_colon && ch==':') { + if (++colons==2) { + doc->cur_entry=doc_e; + doc->cur_data_col=ptr-doc_e->tag-1; + EdCursorLeft(doc); + result=FALSE; + goto pa_done; + } + } else { + colons=0; + if (ch==plus) + levels++; + else if (ch==minus) { + if (!levels--) { + doc->cur_entry=doc_e; + doc->cur_data_col=ptr-doc_e->tag-1; + result=doc->cur_entry!=original_cl || doc->cur_data_col!=original_col; + goto pa_done; + } + } + } + } else { + if (doc_e==doc_ce) { + ptr=doc_e->tag+doc->cur_data_col-1; + if (ptr-doc_e->tag>=doc_e->max_col) + ptr=doc_e->tag+doc_e->max_col-1; + } else + ptr=doc_e->tag+doc_e->max_col-1; + if (ptr-doc_e->tagmin_col) + goto pa_skip; + while (ptr>=doc_e->tag+doc_e->min_col) { + ch=*ptr--; + if (abort_on_dbl_colon && ch==':') { + if (++colons==2) { + doc->cur_entry=doc_e; + doc->cur_data_col=ptr-doc_e->tag+1; + result=FALSE; + goto pa_done; + } + } else { + colons=0; + if (ch==plus) + levels++; + else if (ch==minus) { + if (!levels--) { + doc->cur_entry=doc_e; + doc->cur_data_col=ptr-doc_e->tag+1; + result=doc->cur_entry!=original_cl || doc->cur_data_col!=original_col; + goto pa_done; + } + } + } + } + } + } + } +pa_skip: + if (fwd) + doc_e=doc_e->next; + else + doc_e=doc_e->last; + } while (doc_e!=doc_ce); +pa_done: + DocRecalc(doc); + DocCenter(doc); + if (unlock) + DocUnlock(doc); + return result; +} + +public Bool EdGoToFun(CDoc *doc,Bool fwd,Bool abort_on_dbl_colon) +{ + Bool unlock=DocLock(doc),result=FALSE; + I64 ch,levels,colons; + if (fwd) { + levels=0; + colons=0; + while (doc->cur_entry!=doc) { + ch=EdCurU8(doc); + if (abort_on_dbl_colon && ch==':') { + if (++colons==2) { + EdCursorLeft(doc); + break; + } + } else { + colons=0; + if (ch=='{') + levels++; + else if (ch=='}' && !levels--) + break; + } + EdCursorRight(doc); + } + DocRecalc(doc); + if (doc->cur_entry!=doc) + result=TRUE; + } else { + while (EdFindPaired(doc,'}','{',FALSE,abort_on_dbl_colon)); + if (doc->cur_entry!=doc) { + ch=EdCurU8(doc); + if (abort_on_dbl_colon && ch==':') + result=TRUE; + else { + if (ch=='{') + result=TRUE; + } + } + } + if (unlock) + DocUnlock(doc); + return result; +} + +public U0 EdSelectFun(CDoc *doc,Bool abort_on_dbl_colon=FALSE) +{ + Bool unlock=DocLock(doc); + U8 ch,*ptr; + I64 levels=0,colons=0; + CDocEntry *doc_e; + EdSelectAll(doc,FALSE); + EdGoToFun(doc,FALSE,abort_on_dbl_colon); + if (EdCurU8(doc)=='{') + levels--; + else if (abort_on_dbl_colon && EdCurU8(doc)==':') { + EdCursorRight(doc); + if (EdCurU8(doc)==':') + EdCursorRight(doc); + } + doc_e=doc->cur_entry; + while (doc_e!=doc) { + doc_e->type|=DOCET_SELECTED; + if (doc_e->type_u8==DOCT_TEXT) { + ptr=doc_e->tag; + if (doc_e==doc->cur_entry) + ptr+=doc->cur_data_col; + while (ch=*ptr++) + if (abort_on_dbl_colon && ch==':') { + if (++colons==2) + goto sf_done; + } else { + colons=0; + if (ch=='{') + levels++; + else if (ch=='}' && !levels--) + goto sf_done; + } + } + doc_e=doc_e->next; + } +sf_done: + DocRecalc(doc); + if (unlock) + DocUnlock(doc); +} + +#help_index "Doc/Edit" +U0 EdUndoFilter(CDoc *doc) +{ + Bool unlock=DocLock(doc); + CDocEntry *doc_ce=doc->root.next; + while (doc_ce!=doc) { + doc_ce->flags1&=~DOCEF1_FILTER_SKIP; + doc_ce=doc_ce->next; + } + doc->find_replace->filter_lines=0; + if (unlock) + DocUnlock(doc); +} + +I64 EdFindReplace(CDoc *doc) +{ + Bool first=TRUE,found,unlock; + I64 cmd,i,j,plen,rlen,dlen,result=-1,ss_flags; + U8 *src,*dst,*dst2; + CDocEntry *doc_ce=doc->cur_entry,*doc_e; + if (doc->find_replace->pmt) + cmd=RSAC_REPLACE; + else + cmd=RSAC_ALL; + if (!doc->find_replace->pmt || DocFormDo(doc->find_replace,"CEdFindText")) { + result=0; + unlock=DocLock(doc); + if (doc->find_replace->match_case || doc->find_replace->local_var) + ss_flags=0; + else + ss_flags=SRF_IGNORE_CASE; + if (doc->find_replace->whole_labels || doc->find_replace->local_var) + ss_flags|=SRG_WHOLE_LABELS; + + if (i=doc->find_replace->filter_lines) { + doc_ce=doc->root.next; + while (doc_ce!=doc) { + if (doc_ce->type_u8==DOCT_TEXT && !(doc_ce->flags1&(DOCEF1_TAG_CB|DOCEF1_DEFINE|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP))&& + SearchStr(doc_ce->tag,doc->find_replace->find_text,ss_flags)) { + doc_ce->type|=DOCET_SELECTED; + result++; + } else + doc_ce->type&=~DOCET_SELECTED; + doc_ce=doc_ce->next; + } + + doc_ce=doc->root.next; + while (doc_ce!=doc) { + if (!(doc_ce->flags1&(DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP))) { + found=FALSE; + + doc_e=doc_ce; + while (doc_e!=doc && doc_e->y>doc_ce->y-i) { + if (doc_e->type&DOCET_SELECTED) { + found=TRUE; + break; + } else + doc_e=doc_e->last; + } + + if (!found) { + doc_e=doc_ce; + while (doc_e!=doc && doc_e->yy+i) { + if (doc_e->type&DOCET_SELECTED) { + found=TRUE; + break; + } else + doc_e=doc_e->next; + } + } + + if (!found) + doc_ce->flags1|=DOCEF1_FILTER_SKIP; + } + + doc_ce=doc_ce->next; + } + EdSelectAll(doc,FALSE); + goto fr_unlock_done; + } + + if (doc->find_replace->local_var) { + EdSelectFun(doc); + doc_ce=doc->cur_entry; + } + + if (!doc->find_replace->replace && !doc->find_replace->local_var) { + EdFindNext(doc); + goto fr_unlock_done; + } + plen=StrLen(doc->find_replace->find_text); + if (!plen) + goto fr_unlock_done; + rlen=StrLen(doc->find_replace->replace_text); + doc_e=doc_ce; + while (doc_e!=doc_ce || first) { + first=FALSE; + if (doc_e->type_u8==DOCT_TEXT && + !(doc_e->flags1&(DOCEG1_DONT_EDIT|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP)) && + !(doc_e->flags2&DOCEG2_DONT_EDIT) && + (doc_e->type & DOCET_SELECTED || !doc->find_replace->scan_selected_text&&!doc->find_replace->local_var)) { + src=doc_e->tag; + while (src) { + src=SearchStr(src,doc->find_replace->find_text,ss_flags); + if (src) { + doc->cur_data_col=src-doc_e->tag; + doc->cur_entry=doc_e; + if (cmd!=RSAC_ALL) + DocCenter(doc); + doc_e=doc->cur_entry; + src=doc->cur_data_col+doc_e->tag; + if (cmd!=RSAC_ALL) { + DocUnlock(doc); + cmd=PopUpReplaceSkipAllCancel(""); + DocLock(doc); + if (cmd<0) + goto fr_unlock_done; + } + if (cmd==RSAC_REPLACE || cmd==RSAC_ALL) { + dlen=StrLen(doc_e->tag); + doc_e->max_col=dlen+rlen-plen; + dst=MAlloc(doc_e->max_col+1,doc->mem_task); + dst2=dst; + j=src-doc_e->tag; + for (i=0;itag[i]; + for (i=0;ifind_replace->replace_text[i]; + src=dst; + for (i=j+plen;i<=dlen;i++) + *dst++=doc_e->tag[i]; + Free(doc_e->tag); + doc_e->tag=dst2; + doc->cur_data_col=src-doc_e->tag; + doc->cur_entry=doc_e; + if (cmd!=RSAC_ALL) { + DocRemSoftNewLines(doc,doc->cur_entry); + DocRecalc(doc); + } + doc_e=doc->cur_entry; + src=doc->cur_data_col+doc_e->tag; + result++; + } else + src++; + } + } + } + if (doc->find_replace->scan_fwd) { + doc_e=doc_e->next; + if (doc_e==doc) { + if (doc_ce==doc) break; + doc_e=doc_e->next; + } + } else { + doc_e=doc_e->last; + if (doc_e==doc) { + if (doc_ce==doc) break; + doc_e=doc_e->last; + } + } + } +fr_unlock_done: + DocRemSoftNewLines(doc,NULL); + DocRecalc(doc); + DocCenter(doc); + if (unlock) + DocUnlock(doc); + } + return result; +} + +public I64 EdReplace(CDoc *doc,U8 *find,U8 *replace, + Bool selected=TRUE,Bool match_case=TRUE,Bool whole_labels=FALSE) +{ + CEdFindText old_find_replace; + Bool unlock; + I64 i,result=-1; + if (!doc) return -1; + unlock=DocLock(doc); + MemCpy(&old_find_replace,doc->find_replace,sizeof(CEdFindText)); + MemSet(doc->find_replace,0,sizeof(CEdFindText)); + i=StrLen(find); + if (ifind_replace->find_text,find,i+1); + i=StrLen(replace); + if (ifind_replace->replace_text,replace,i+1); + doc->find_replace->replace=TRUE; + doc->find_replace->scan_selected_text=selected; + doc->find_replace->match_case=match_case; + doc->find_replace->whole_labels=whole_labels; + doc->find_replace->pmt=FALSE; + result=EdFindReplace(doc); + } + } + MemCpy(doc->find_replace,&old_find_replace,sizeof(CEdFindText)); + if (unlock) + DocUnlock(doc); + return result; +} + +class CEdLineGoTo +{ + I64 line fmtstr "$$DA,256,\"Go to Line:%d\"$$"; +}; + +public U0 EdGoToLine(CDoc *doc) +{ + CEdLineGoTo gtl; + gtl.line=1; + if (DocFormDo(>l,"CEdLineGoTo")) + DocLineNumGoTo(doc,gtl.line); +} + +U0 DocEntryToggle(CDoc *doc) +{ + Bool unlock=DocLock(doc); + CDocEntry *doc_ce=doc->cur_entry,*cl1,*doc_ce2; + U8 ch,*st,*st2; + I64 i,j,k; + if (doc_ce!=doc && !(doc->flags&(DOCF_PLAIN_TEXT|DOCF_PLAIN_TEXT_WITH_TABS))) { + if (doc_ce->type_u8==DOCT_TEXT && !(doc_ce->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))) { + doc_ce2=doc_ce->last; + for (k=0;k<20;k++) { + if (doc_ce2!=doc) { + cl1=doc_ce2->last; + if (doc_ce2->type_u8==DOCT_TEXT && doc_ce->flags1==doc_ce2->flags1 && doc_ce->flags2==doc_ce2->flags2 && doc_ce->type==doc_ce2->type) { + i=StrLen(doc_ce2->tag); + j=StrLen(doc_ce->tag); + st=MAlloc(i+j+1,doc->mem_task); + MemCpy(st,doc_ce2->tag,i); + MemCpy(st+i,doc_ce->tag,j+1); + Free(doc_ce->tag); + doc_ce->tag=st; + doc_ce->max_col=i+j; + doc->cur_data_col+=i; + DocEntryDel(doc,doc_ce2); + } else if (doc_ce2->type_u8==DOCT_SOFT_NEW_LINE) + DocEntryDel(doc,doc_ce2); + else + break; + doc_ce2=cl1; + } else + break; + } + doc_ce2=doc_ce->next; + for (k=0;k<20;k++) { + if (doc_ce2!=doc) { + cl1=doc_ce2->next; + if (doc_ce2->type_u8==DOCT_TEXT && doc_ce->flags1==doc_ce2->flags1 && doc_ce->flags2==doc_ce2->flags2 && doc_ce->type==doc_ce2->type) { + i=StrLen(doc_ce->tag); + j=StrLen(doc_ce2->tag); + st=MAlloc(i+j+1,doc->mem_task); + MemCpy(st,doc_ce->tag,i); + MemCpy(st+i,doc_ce2->tag,j+1); + Free(doc_ce->tag); + doc_ce->tag=st; + doc_ce->max_col=i+j; + DocEntryDel(doc,doc_ce2); + } else if (doc_ce2->type_u8==DOCT_SOFT_NEW_LINE) + DocEntryDel(doc,doc_ce2); + else + break; + doc_ce2=cl1; + } else + break; + } + i=doc->cur_data_col; + while (i>doc_ce->min_col && doc_ce->tag[i]!='$$') + i--; + j=doc->cur_data_col+1; + while (jmax_col && doc_ce->tag[j]!='$$') + j++; + if (imin_col<=imax_col && doc_ce->tag[i]=='$$' && doc_ce->tag[j]=='$$') { + ch=doc_ce->tag[j+1]; + doc_ce->tag[j+1]=0; + st=StrNew(doc_ce->tag+i); + doc_ce->tag[j+1]=ch; + StrCpy(doc_ce->tag+i,doc_ce->tag+j+1); + doc->cur_data_col=i; + st2=MSPrintF("%q",st); + if (doc_ce=DocPutS(doc,st2)) { + doc->cur_entry=doc_ce; + doc->cur_data_col=doc_ce->min_col; + } + Free(st); + Free(st2); + } + } else { + st=Doc2PlainText(doc,doc_ce); + DocEntryDel(doc,doc_ce); + DocPrintF(doc,"$$$$%Q$$$$",st); + } + DocRecalc(doc); + } + if (unlock) + DocUnlock(doc); +} + +U0 DocFlagsToggle(CDoc *doc,I64 tog_flags) +{ + Bool unlock=DocLock(doc); + I64 size,start_text_attr=doc->start_text_attr, + flags=doc->flags^tog_flags; + U8 *st=DocSave(doc,&size); + CDocUndo *u_next,*u_last; + + u_next=doc->undo_root.next; + u_last=doc->undo_root.last; + doc->undo_root.next=doc->undo_root.last=&doc->undo_root; + + DocRst(doc,TRUE); + doc->start_text_attr=start_text_attr; + doc->undo_root.next=u_next; + doc->undo_root.last=u_last; + DocUndoCntSet(doc); + doc->flags=flags & ~(DOCG_BL_IV_UL|DOCF_WORD_WRAP); + DocLoad(doc,st,size); + DocCenter(doc); + if (unlock) + DocUnlock(doc); + Free(st); +} + +#help_index "Doc/Output" +public U0 DocPutKey(CDoc *doc,I64 ch,I64 sc) +{ + I64 i,x,y,sc2,ext_ascii_cnt=0,timeout; + CDoc *m; + CDocEntry *doc_ce; + U8 *st; + Bool unlock; + + if (!doc || doc->doc_signature!=DOC_SIGNATURE_VAL) + return; + if (doc->user_put_key) + if ((*doc->user_put_key)(doc,doc->user_put_data,ch,sc)) + return; + unlock=DocLock(doc); + if (!Bt(doc_clean_scancodes,sc.u8[0])) + doc->flags|=DOCF_UNDO_DIRTY; + DocCaptureUndo(doc); + if (Bt(getkey_chars_bitmap,ch) && + !(sc&(SCF_CTRL|SCF_ALT))) { + if (sc&SCF_KEY_DESC) { + st=A2KeyName(ch,FALSE); + SetKeyDesc("Char/'%s'",st); + Free(st); + } else + EdInsChar(ch,sc,doc); + } else { + doc_ce=doc->cur_entry; + x=doc->x; y=doc->y; + sc2=sc.u8[0]; + switch (ch) { + case CH_CTRLA: + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Save As"); + else + DocWrite(doc,TRUE); + break; + case CH_CTRLB: + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/Toggle Border"); + else + WinBorder(Bt(&doc->win_task->display_flags,DISPLAYf_NO_BORDER),doc->win_task); + break; + case CH_CTRLC: + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Copy to Clipboard"); + else + EdCopyToClipboard(doc); + break; + case CH_CTRLD: + if (sc&SCF_KEY_DESC) + SetKeyDesc("Cmd/Jump to File Manager"); + else { + DocUnlock(doc); + FileMgr; + DocLock(doc); + } + break; + case CH_CTRLF: + if (sc&SCF_SHIFT) { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Cmd/Grep Wizard"); + else + GrepWiz; + } else { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Find & Replace"); + else + EdFindReplace(doc); + } + break; + case CH_CTRLG: + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/GoTo Line Num"); + else + EdGoToLine(doc); + break; + case CH_BACKSPACE: // + if (sc&SCF_ALT && !(sc&SCF_CTRL)) { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Undo"); + else + DocUndoRestore(doc); + } else { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Char/Back Space"); + else { + DocCaptureUndo(doc); + doc_ce=doc->cur_entry; + if (doc->cur_data_col<=doc_ce->min_col) { + doc_ce=doc->cur_entry=doc_ce->last; + if (doc_ce!=doc && doc_ce->type_u8==DOCT_SOFT_NEW_LINE) + doc_ce=doc->cur_entry=doc_ce->last; + if (doc_ce==doc || doc_ce->type_u8==DOCT_USER_FOREGROUND) { + doc_ce=doc->cur_entry=doc_ce->next; + doc->cur_data_col=doc_ce->min_col; + } else { + doc->cur_data_col=doc_ce->max_col; + if (doc->cur_data_col>doc_ce->min_col) + doc->cur_data_col--; + EdDelChar(doc); + } + } else { + doc->cur_data_col--; + EdDelChar(doc); + } + } + } + break; + case CH_CTRLI: + if (sc&SCF_SHIFT) { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Dollar/Indent Out"); + else + DocPutS(doc,"$$ID,-2$$"); + } else { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Dollar/Indent In"); + else + DocPutS(doc,"$$ID,2$$"); + } + break; + case CH_NEW_LINE: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Char/Return"); + else + SetKeyDesc("Char/Page Break"); + } else + EdInsChar(ch,sc,doc); + break; + case CH_CTRLK: + if (sc&SCF_KEY_DESC) + SetKeyDesc("Dollar/Toggle Blinking Text"); + else if (sc&SCF_SHIFT) + DocPutS(doc,"$$BK,0$$"); + else + DocPutS(doc,"$$BK,1$$"); + break; + case CH_CTRLL: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/Managed Code"); + else + SetKeyDesc("Dollar/Wizard"); + } else { + if (sc&SCF_SHIFT) + EdCodeTools(doc); + else { + DocUnlock(doc); + EdInsDollarCmd; + DocLock(doc); + } + } + break; + case CH_CTRLM: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Cmd/Jump to Notes File"); + else + SetKeyDesc("Cmd/Jump to Menu"); + } else { + if (sc&SCF_SHIFT) + Ed("HOME/PersonalNotes.TXT.Z"); + else { + m=DocRead("HOME/PersonalMenu.TXT.Z"); + DocMenuDo(m); + DocDel(m); + } + } + break; + case CH_CTRLO: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/Collapse"); + else + SetKeyDesc("Edit/Uncolapse"); + } else { + if (sc&SCF_SHIFT) + DocCollapse(TRUE,doc); + else + DocCollapse(FALSE,doc); + } + break; + case CH_CTRLP: + if (doc->flags & (DOCF_SUPERSCRIPT_MODE | DOCF_SUBSCRIPT_MODE)) { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Dollar/Toggle Super or Sub script"); + else { + DocPutS(doc,"$$SY,0$$"); + doc->flags&=~(DOCF_SUPERSCRIPT_MODE | DOCF_SUBSCRIPT_MODE); + } + } else if (sc&SCF_SHIFT) { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Dollar/Toggle Subscript"); + else { + DocPutS(doc,"$$SY,3$$"); + doc->flags|=DOCF_SUBSCRIPT_MODE; + } + } else { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Dollar/Toggle Superscript"); + else { + DocPutS(doc,"$$SY,-3$$"); + doc->flags|=DOCF_SUPERSCRIPT_MODE; + } + } + break; + case CH_CTRLQ: + break; + case CH_CTRLR: + if (sc&SCF_KEY_DESC) + SetKeyDesc("Dollar/Edit or Create Graphic"); + else { + if (!(doc->flags&(DOCF_PLAIN_TEXT|DOCF_PLAIN_TEXT_WITH_TABS))) { + DocUnlock(doc); + if (doc_ce->type_u8==DOCT_SPRITE) + EdExistingGraphic(doc, + (doc_ce->x-doc->line_start_col+doc_ce->max_col)*FONT_WIDTH, + (doc_ce->y-doc->cur_top_line_num)*FONT_HEIGHT); + else + EdInsGraphic(doc, + (doc_ce->x+doc->cur_data_col-doc->line_start_col)*FONT_WIDTH, + (doc_ce->y-doc->cur_top_line_num)*FONT_HEIGHT); + DocLock(doc); + } + } + break; + case CH_CTRLS: + if (sc&SCF_SHIFT) { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Find Misspelled"); + else + WSFindMisspelled(doc); + } else { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Save"); + else + DocWrite(doc); + } + break; + case CH_CTRLT: + if (sc&SCF_SHIFT) { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Single Entry Toggle Plain Text"); + else + DocEntryToggle(doc); + } else { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Toggle Plain Text Display"); + else + if (!(doc->flags&DOCF_FORM) || doc->flags&(DOCF_PLAIN_TEXT|DOCF_PLAIN_TEXT_WITH_TABS)) + DocFlagsToggle(doc,DOCF_PLAIN_TEXT); + } + break; + case CH_CTRLU: + if (sc&SCF_KEY_DESC) + SetKeyDesc("Dollar/Toggle Underline"); + else if (sc&SCF_SHIFT) + DocPutS(doc,"$$UL,0$$"); + else + DocPutS(doc,"$$UL,1$$"); + break; + case CH_CTRLV: + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Paste Clipboard"); + else + EdPasteClipboard(doc); + break; + case CH_CTRLW: + if (sc&SCF_KEY_DESC) + SetKeyDesc("Dollar/Toggle Word Wrap"); + else if (sc&SCF_SHIFT) + DocPutS(doc,"$$WW,0$$"); + else + DocPutS(doc,"$$WW,1$$"); + break; + case CH_CTRLX: + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Cut To Clipboard"); + else + EdCutToClipboard(doc); + break; + case CH_CTRLY: + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Delete Line"); + else + EdDelLine(doc); + break; + case CH_CTRLZ: + if (sc&SCF_KEY_DESC) + SetKeyDesc("Dollar/Toggle Inverted Text"); + else if (sc&SCF_SHIFT) + DocPutS(doc,"$$IV,0$$"); + else + DocPutS(doc,"$$IV,1$$"); + break; + case '0'...'9': + if (!(sc&SCF_ALT)) { + if (sc&SCF_CTRL) { + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/Jump to Word Definition"); + else + SetKeyDesc("Edit/Autocomplete Word"); + } else { + if (WordStat) { + DocUnlock(doc); + if (sc&SCF_SHIFT) + WSDDef(ch-'0',Fs); + else + WSDFillin(ch-'0'); + DocLock(doc); + } + } + } + } else { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Enter extended-ASCII"); + else { + if (++doc->ext_ascii_cnt==1) + doc->ext_ascii_val=ch-'0'; + else + doc->ext_ascii_val=doc->ext_ascii_val*10+ch-'0'; + if (doc->ext_ascii_cnt==3) + EdInsChar(doc->ext_ascii_val.u8[0],sc,doc); + else + ext_ascii_cnt=doc->ext_ascii_cnt; + } + } + break; + case '[': + if (!(sc&SCF_ALT) && sc&SCF_CTRL) { + if (sc&SCF_SHIFT) { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/GoTo matching brace"); + else + EdFindPaired(doc,'}','{',FALSE); + } else { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/GoTo matching bracket"); + else + EdFindPaired(doc,']','[',FALSE); + } + } + break; + case ']': + if (!(sc&SCF_ALT) && sc&SCF_CTRL) { + if (sc&SCF_SHIFT) { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/GoTo matching brace"); + else + EdFindPaired(doc,'{','}',TRUE); + } else { + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/GoTo matching bracket"); + else + EdFindPaired(doc,'[',']',TRUE); + } + } + break; + default: + switch (sc2) { + case SC_F1...SC_F10: + if (!(sc&SCF_ALT)) { + if (sc&SCF_CTRL) { + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/Jump to Src of Sym"); + else + SetKeyDesc("Edit/Autocomplete Sym"); + } else { + if (WordStat) { + DocUnlock(doc); + if (sc&SCF_SHIFT) + WSMan(sc2-SC_F1+1,Fs); + else + WSFillIn(sc2-SC_F1+1); + DocLock(doc); + } + } + } else { + switch (sc2) { + case SC_F1: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("About"); + else + SetKeyDesc("Help"); + } else { + if (sc&SCF_SHIFT) + Ed("::/SparrowOS/Doc/Splash.TXT.Z"); + else + Ed("::/SparrowOS/Doc/HelpIndex.TXT.Z"); + } + break; + case SC_F2: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/Play Macro"); + else + SetKeyDesc("Edit/Macro"); + } else { + DocUnlock(doc); + if (sc&SCF_SHIFT) { + if (TaskValidate(sys_macro_util_task)) + SendMsg(sys_macro_util_task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + SysMacroStripKey(&sys_macro_root,ch,sc); + PlaySysMacro; + } else + EdMacroUtil; + DocLock(doc); + } + break; + case SC_F3: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/Find Last"); + else + SetKeyDesc("Edit/Find Next"); + }else { + doc->find_replace->scan_fwd=!(sc&SCF_SHIFT); + EdFindNext(doc); + } + break; + case SC_F4: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Misc/Insert Directory Name"); + else + SetKeyDesc("Misc/Insert File Name"); + } else { + DocUnlock(doc); + if (sc&SCF_SHIFT) + st=PopUpPickDir; + else + st=PopUpPickFile; + DocLock(doc); + if (st) { + DocPutSPartial(doc,st); + Free(st); + } + } + break; + case SC_F5: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Cmd/Adam Include"); + else + SetKeyDesc("Cmd/Run (Execute);Dbg/Go"); + } else { + if (IsDbgTask) { + DocUnlock(doc); + if (!(sc&SCF_SHIFT)) + 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; + } else { + DocWrite(doc); + st=doc->filename.name; + } + if (sc&SCF_SHIFT) + AdamFile(st); + else + PopUpFile(st); + } + } + break; + case SC_F9: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Dbg/Clear All Break Points"); + else + SetKeyDesc("Dbg/Toggle Break Point"); + } else { + if (IsDbgTask) { + DocUnlock(doc); + if (sc&SCF_SHIFT) + IDEClearAllBpts(doc); + else + IDEToggleBpt(doc); + DocLock(doc); + } + } + break; + case SC_F10: + if (sc&SCF_KEY_DESC) { + if (!(sc&SCF_SHIFT)) + SetKeyDesc("Dbg/Step Over"); + } else { + if (IsDbgTask) { + DocUnlock(doc); + if (!(sc&SCF_SHIFT)) + IDEStepOver(doc); + DocLock(doc); + } + } + break; + } + } + } + break; + case SC_F11: + case SC_F12: + if (!(sc & (SCF_ALT|SCF_CTRL))) { + switch (sc2) { + case SC_F11: + if (sc&SCF_KEY_DESC) { + if (!(sc&SCF_SHIFT)) + SetKeyDesc("Dbg/Step Into"); + } else { + if (IsDbgTask) { + DocUnlock(doc); + if (!(sc&SCF_SHIFT)) + IDEStepInto(doc); + DocLock(doc); + } + } + break; + } + } + break; + case SC_CURSOR_DOWN: + case SC_END: + if (sc2==SC_END || sc&SCF_CTRL) { + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/GoTo Doc End, Select"); + else + SetKeyDesc("Edit/GoTo Doc End"); + } else { + while (doc_ce!=doc) { + if (sc&SCF_SHIFT) + doc_ce->type|=DOCET_SELECTED; + else + doc_ce->type&=~DOCET_SELECTED; + doc_ce=doc->cur_entry=doc_ce->next; + } + doc->cur_data_col=doc_ce->min_col; + doc->recalc_start=doc; + DocFormBackward(doc); + } + } else if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/Cursor Down, Select"); + else + SetKeyDesc("Edit/Cursor Down"); + } else + EdLineDown(doc,sc); + break; + case SC_CURSOR_UP: + case SC_HOME: + if (sc2==SC_HOME || sc&SCF_CTRL) { + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/GoTo Top of Doc, Select"); + else + SetKeyDesc("Edit/GoTo Top of Doc"); + } else { + if (doc_ce==doc) doc_ce=doc_ce->last; + while (doc_ce!=doc) { + if (sc&SCF_SHIFT) + doc_ce->type|=DOCET_SELECTED; + else + doc_ce->type&=~DOCET_SELECTED; + doc_ce=doc->cur_entry=doc_ce->last; + } + doc_ce=doc->cur_entry=doc->root.next; + doc->cur_data_col=doc_ce->min_col; + doc->recalc_start=doc; + DocFormFwd(doc); + } + } else if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/Cursor Up, Select"); + else + SetKeyDesc("Edit/Cursor Up"); + } else + EdLineUp(doc,sc); + break; + case SC_PAGE_DOWN: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/Page Down, Select"); + else + SetKeyDesc("Edit/Page Down"); + } else { + i=doc_ce->y+doc->win_task->win_height-1; + if (doc_ce->type_u8==DOCT_HEX_ED) + i+=doc->cur_data_col/3/doc_ce->hex_ed_width; + while (doc_ce!=doc && + (doc_ce->type_u8!=DOCT_HEX_ED && doc_ce->ytype_u8==DOCT_HEX_ED && doc_ce->y+doc->cur_data_col/3/doc_ce->hex_ed_widthy!=doc->root.last->y) { + EdLineDown(doc,sc); + //paranoid check for stuck on same node + if (doc->cur_entry==doc_ce && doc_ce->type_u8!=DOCT_HEX_ED) + break; + doc_ce=doc->cur_entry; + } + } + break; + case SC_PAGE_UP: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/Page Up, Select"); + else + SetKeyDesc("Edit/Page Up"); + }else { + i=doc_ce->y-(doc->win_task->win_height-1); + if (doc_ce->type_u8==DOCT_HEX_ED) + i+=doc->cur_data_col/3/doc_ce->hex_ed_width; + while (doc_ce->last!=doc && + (doc_ce->type_u8!=DOCT_HEX_ED && doc_ce->y>i || + doc_ce->type_u8==DOCT_HEX_ED && doc_ce->y+doc->cur_data_col/3/doc_ce->hex_ed_width>i) && + doc_ce->y!=doc->root.next->y) { + EdLineUp(doc,sc); + //paranoid check for stuck on same node + if (doc->cur_entry==doc_ce && doc_ce->type_u8!=DOCT_HEX_ED) + break; + doc_ce=doc->cur_entry; + } + } + break; + case SC_CURSOR_LEFT: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_CTRL) + SetKeyDesc("Edit/GoTo Start of Line"); + else { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/Cursor Left, Select"); + else + SetKeyDesc("Edit/Cursor Left"); + } + } else + EdCursorLeft(doc,sc); + break; + case SC_CURSOR_RIGHT: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_CTRL) + SetKeyDesc("Edit/GoTo End of Line"); + else { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/Cursor Right, Select"); + else + SetKeyDesc("Edit/Cursor Right"); + } + } else + EdCursorRight(doc,sc); + break; + case SC_DELETE: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/Cut To Clipboard"); + else + SetKeyDesc("Char/Delete"); + } else { + if (sc&SCF_SHIFT) + EdCutToClipboard(doc); + else + EdDelChar(doc); + } + break; + case SC_INS: + if (sc&SCF_KEY_DESC) { + if (sc&SCF_SHIFT) + SetKeyDesc("Edit/Paste Clipboard"); + else if (sc&SCF_CTRL) + SetKeyDesc("Edit/Copy to Clipboard"); + else + SetKeyDesc("Edit/Toggle Overstrike"); + } else { + if (sc&SCF_SHIFT) + EdPasteClipboard(doc); + else if (sc&SCF_CTRL) + EdCopyToClipboard(doc); + else + doc->flags^=DOCF_OVERSTRIKE; + } + break; + } //switch (sc2) + } + } + if (!doc->recalc_start) + doc->recalc_start=doc->cur_entry->last; + 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; + } + } +} + +Bool AKDDocPutKey(I64 ch,I64 scancode) +{ + CDoc *doc; + doc=Fs->next_doc; + while (doc!=(&Fs->next_doc)(U8 *)-offset(CDoc.next_doc) && + doc->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL) { + if (!(doc->flags&DOCF_DONT_SHOW) && doc->flags&DOCF_AUX_DOC && !doc->best_d) { + DocPutKey(doc,ch,scancode); + return FALSE; + } + doc=doc->next_doc; + } + if (doc=DocCur) + DocPutKey(doc,ch,scancode); + return FALSE; +} + +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; + if (!st) + return; + if (doc->user_put_s) + if ((*doc->user_put_s)(doc,doc->user_put_data,st)) + return; + unlock=DocLock(doc); + if (doc->cur_entry->type_u8==DOCT_DATA) + while (ch=*ptr++) + DocPutKey(doc,ch,0); + else + while (ch=*ptr) { + if (!Bt(safe_dollar_chars_bitmap,ch) || + doc->flags & (DOCF_OVERSTRIKE | DOCF_IN_DOLLAR)) { + DocPutKey(doc,ch,0); + ptr++; + } else { + ptr2=ptr++; + while (TRUE) { + ch=*ptr++; + if (!Bt(safe_dollar_chars_bitmap,ch)) + break; + } + ptr--; + *ptr=0; + doc_ce=doc->cur_entry; + doc->recalc_start=doc_ce->last; + j=ptr-ptr2; + if (doc_ce->type_u8==DOCT_TEXT && + !(doc_ce->flags1&DOCEG1_DONT_EDIT) && + !(doc_ce->flags2&DOCEG2_DONT_EDIT)) { + dst=b=MAlloc(doc_ce->max_col+j+1,doc->mem_task); + src=doc_ce->tag; + i=doc->cur_data_col; + doc->cur_data_col+=j; + doc_ce->max_col+=j; + while (i-->0) + *dst++=*src++; + while (j-->0) + *dst++=*ptr2++; + while (*dst++=*src++); + Free(doc_ce->tag); + doc_ce->tag=b; + } else { + doc_ne=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_ne->type=DOCT_TEXT | doc->settings_root.dft_text_attr << 8; + doc_ne->tag=MAlloc(j+1,doc->mem_task); + MemCpy(doc_ne->tag,ptr2,j+1); + doc_ne->x=doc_ce->x; + doc_ne->y=doc_ce->y; + doc_ne->max_col=j; + doc_ne->page_line_num=doc_ce->page_line_num; + QueIns(doc_ne,doc_ce->last); + doc->cur_entry=doc_ne; + doc->cur_data_col=StrLen(ptr2); + } + *ptr=ch; + DocRemSoftNewLines(doc,doc->cur_entry); + } + } + 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; + } + } +} + +#help_index "Doc" +Bool DocFileEd(I64 type,U8 *filename, + U8 *pattern,I64 *_num,I64 ed_flags) +{ + I64 flags=0; + CDocEntry *doc_e; + CDoc *doc; + Bool old_silent=Bt(&Fs->display_flags,DISPLAYf_SILENT), + result=FALSE; + + try { + switch (type) { + case LK_PLAIN: + type=LK_FILE; + flags=DOCF_PLAIN_TEXT; + break; + case LK_PLAIN_FIND: + type=LK_FILE_FIND; + flags=DOCF_PLAIN_TEXT; + break; + case LK_PLAIN_LINE: + type=LK_FILE_LINE; + flags=DOCF_PLAIN_TEXT; + break; + case LK_BIBLE_FIND: + flags=DOCF_PLAIN_TEXT; + break; + } + + flags|=DOCF_ALLOW_UNDO; + + if (!*filename) + doc=DocCur; + else { + Silent(ON); + //if bail, scan parents + result=FileFind(filename,NULL,FALSE,TRUE,Bt(&ed_flags,EDf_BAIL)); + doc=DocRead(filename,flags); + StrCpy(doc->desc,"Edit"); + Silent(old_silent); + doc->flags|=DOCF_ATTR_BY_FILENAME; + } + + if (Bt(&ed_flags,EDf_COLLAPSE)) + DocCollapse(TRUE,doc); + else if (Bt(&ed_flags,EDf_UNCOLLAPSE)) + DocCollapse(FALSE,doc); + + if (result) + switch (type) { + case LK_FILE_LINE: + result=DocLineNumGoTo(doc,*_num); + break; + case LK_FILE_ANCHOR: + result=DocAnchorFind(doc,pattern); + break; + case LK_FILE_FIND: + result=DocPatternFind(doc,,pattern,*_num); + break; + case LK_BIBLE_FIND: + result=DocPatternFind(doc,*_num,pattern); + break; + default: + DocCenter(doc); + } + *_num=doc->cur_entry->y+1; + if (!(ed_flags&EDF_BAIL) && DocDo(doc,DOF_DONT_HOME)) { + DocLock(doc); + doc_e=doc->cur_entry; + if (doc_e!=doc) + DocEntryRun(doc,doc_e,TRUE); + DocUnlock(doc); + DocWrite(doc); + } + if (Fs->last_doc!=doc) + DocDel(doc); + else + result=FALSE; + } catch { + Silent(old_silent); + result=FALSE; + } + return result; +} + +public I64 EdLinkCvt(U8 *link_st,U8 **_filename,U8 **_pattern,I64 *_num,I64 ed_flags) +{ + U8 *st,*ptr,*filename; + I64 result,i; + CHashSrcSym *temph; + *_filename=NULL; + *_pattern=NULL; + *_num=1; + if (!link_st||!*link_st) { + if (ed_flags&EDF_BAIL) + return -1; + link_st=sys_temp_filename; + } + st=StrNew(link_st); + result=LK_FILE; + if (StrLen(st)>3 && st[2]==':') { + st[2]=0; + filename=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->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); + Free(ptr); + } else + result=-1; + } else + result=EdLinkCvt(temph->src_link,_filename,_pattern,_num,ed_flags); + } else + result=-1; + goto lc_done; + case LK_ADDR: + if (ptr=StrLastOcc(filename,",")) { + *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); + Free(ptr); + } else + result=-1; + goto lc_done; + case LK_DEF: + if (ptr=StrLastOcc(filename,",")) { + *ptr=0; + i=A2I(ptr+1); + } else + i=-1; + *_filename=StrNew(filename); + *_num=i; + goto lc_done; + case LK_HELP_INDEX: + *_filename=StrNew(filename); + goto lc_done; + case LK_BIBLE_FIND: + if (ptr=StrLastOcc(filename,",")) { + *ptr=0; + *_pattern=StrNew(ptr+1); + } + i=DefineMatch(filename,"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"); + } + break; + case LK_FILE_LINE: + case LK_PLAIN_LINE: + if (ptr=StrLastOcc(filename,",")) { + *ptr=0; + *_num=A2I(ptr+1); + } + break; + case LK_FILE_ANCHOR: + if (ptr=StrLastOcc(filename,",")) { + *ptr=0; + *_pattern=StrNew(ptr+1); + } + break; + case LK_FILE_FIND: + case LK_PLAIN_FIND: + if (ptr=StrLastOcc(filename,",")) { + *ptr=0; + *_pattern=StrNew(ptr+1); + if (ptr=StrLastOcc(*_pattern,":")) { + *ptr=0; + *_num=A2I(ptr+1); + } + } + break; + } + } else + filename=st; + if (result>=0) + *_filename=StrNew(filename); +lc_done: + Free(st); + return result; +} diff --git a/SparrowOS/Adam/Doc/DocFile.CPP b/SparrowOS/Adam/Doc/DocFile.CPP new file mode 100644 index 0000000..fd01063 --- /dev/null +++ b/SparrowOS/Adam/Doc/DocFile.CPP @@ -0,0 +1,455 @@ +#help_index "Doc/File" +public U0 DocLoad(CDoc *doc,U8 *src2,I64 size) +{ + I64 i; + U8 *src; + Bool unlock=DocLock(doc); + CDocBin *tempb; + doc->find_replace->filter_lines=0; + if (src2) { + DocPutS(doc,src2); + src=src2+StrLen(src2)+1; + i=size-(offset(CDocBin.data)-offset(CDocBin.start)); + while (src<=src2+i) { + tempb=CAlloc(sizeof(CDocBin),doc->mem_task); + MemCpy(&tempb->start,src,offset(CDocBin.data)-offset(CDocBin.start)); + src+=offset(CDocBin.data)-offset(CDocBin.start); + tempb->data=MAlloc(tempb->size,doc->mem_task); + if (tempb->size) { + MemCpy(tempb->data,src,tempb->size); + src+=tempb->size; + } + QueIns(tempb,doc->bin_root.last); + if (tempb->num>=doc->cur_bin_num) + doc->cur_bin_num=tempb->num+1; + } + } + if (!(doc->flags & (DOCF_PLAIN_TEXT|DOCF_PLAIN_TEXT_WITH_TABS))) + DocBinsValidate(doc); + DocHome(doc); //DOCT_CURSOR will set it in recalc + DocRecalc(doc); + if (unlock) + DocUnlock(doc); +} + +public CDoc *DocRead(U8 *name,I64 flags=0) +{ + CDoc *doc=DocNew; + U8 *src,*name2; + I64 size=0; + doc->flags|=flags; + name2=FileNameAbs(name); + StrCpy(doc->filename.name,name2); + src=FileRead(name2,&size,&doc->file_attr); + Free(name2); + if (src) { + DocLoad(doc,src,size); + Free(src); + } + return doc; +} + +public U8 *DocSave(CDoc *doc,I64 *_size=NULL) +{ + CDocEntry *doc_e; + CDocBin *b; + Bool unlock=DocLock(doc); + I64 i,cnt; + U8 *st,*result,*dst,*src,ch; + + if (doc->flags&DOCF_NO_CURSOR) + cnt=1; //terminator + else + cnt=2; //cursor + terminator + + if (!(doc->flags & (DOCF_PLAIN_TEXT|DOCF_PLAIN_TEXT_WITH_TABS))) + DocBinsValidate(doc); + DocRecalc(doc); + for (doc_e=doc->root.next;doc_e!=doc;doc_e=doc_e->next) { + if (!Bt(doc_data_types,doc_e->type_u8)) { + switch (doc_e->type_u8) { + case DOCT_TAB: + case DOCT_PAGE_BREAK: + cnt++; + break; + case DOCT_NEW_LINE: + if (doc->flags&DOCF_CARRIAGE_RETURN) + cnt+=2; + else + cnt++; + break; + case DOCT_TEXT://$BK,1$Update $LK,"DOCT_TEXT","FF:D:/SparrowOS/Compiler/Lex.CPP.Z,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)) || + doc->flags&DOCF_DBL_DOLLARS) + cnt+=StrOcc(doc_e->tag,'$$'); + } else { + st=Doc2PlainText(doc,doc_e); + cnt+=StrLen(st)+2; + Free(st); + } + break; + default: + if (doc_e->type_u8!=DOCT_SOFT_NEW_LINE && + doc_e->type_u8!=DOCT_CURSOR && + doc_e->type_u8!=DOCT_BPT) { + st=Doc2PlainText(doc,doc_e); + cnt+=StrLen(st)+2; + Free(st); + } + } + } + } + for (b=doc->bin_root.next;b!=&doc->bin_root;b=b->next) { + if (b->use_cnt>b->temp_use_cnt) + cnt+=offset(CDocBin.data)- + offset(CDocBin.start)+b->size; + } + result=MAlloc(cnt); + dst=result; + for (doc_e=doc->root.next;doc_e!=doc;doc_e=doc_e->next) { + if (!Bt(doc_data_types,doc_e->type_u8)) { + if (doc_e->type_u8==DOCT_TEXT && + !(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))) { + src=doc_e->tag; + i=0; + while (ch=*src++) { + if (doc_e==doc->cur_entry && i++==doc->cur_data_col && !(doc->flags&DOCF_NO_CURSOR)) + *dst++=CH_CURSOR; + *dst++=ch; + if (ch=='$$') { + if (!(doc->flags & (DOCF_PLAIN_TEXT | DOCF_PLAIN_TEXT_WITH_TABS)) || + doc->flags&DOCF_DBL_DOLLARS) + *dst++=ch; + } + } + if (doc_e==doc->cur_entry && i++==doc->cur_data_col && !(doc->flags&DOCF_NO_CURSOR)) + *dst++=CH_CURSOR; + } else { + if (doc_e==doc->cur_entry && !(doc->flags&DOCF_NO_CURSOR)) + *dst++=CH_CURSOR; + switch (doc_e->type_u8) { + case DOCT_TAB: + *dst++=CH_TAB; + break; + case DOCT_PAGE_BREAK: + *dst++=CH_FORM_FEED; + break; + case DOCT_NEW_LINE: + if (doc->flags&DOCF_CARRIAGE_RETURN) + *dst++=CH_CARRIAGE_RETURN; + *dst++=CH_NEW_LINE; + break; + default: + if (doc_e->type_u8!=DOCT_SOFT_NEW_LINE && + doc_e->type_u8!=DOCT_CURSOR && + doc_e->type_u8!=DOCT_BPT) { + *dst++='$$'; + st=Doc2PlainText(doc,doc_e); + StrCpy(dst,st); + dst+=StrLen(st); + *dst++='$$'; + Free(st); + } + break; + } + } + } + } + *dst++=0; + b=doc->bin_root.next; + if (b!=&doc->bin_root) { + do { + if (b->use_cnt>b->temp_use_cnt) { + MemCpy(dst,&b->type,offset(CDocBin.data)-offset(CDocBin.start)); + dst+=offset(CDocBin.data)-offset(CDocBin.start); + MemCpy(dst,b->data,b->size); + dst+=b->size; + } + b=b->next; + } while (b!=&doc->bin_root); + } else + cnt--; + if (_size) *_size=cnt; + if (unlock) + DocUnlock(doc); + return result; +} + +public U0 DocWrite(CDoc *doc,Bool prompt=FALSE) +{ + I64 size; + U8 *buf=DocSave(doc,&size); + if (prompt) { + if (DocFormDo(&doc->filename,"CEdFileName")) + FileWrite(doc->filename.name,buf,size,0,doc->file_attr); + } else + FileWrite(doc->filename.name,buf,size,0,doc->file_attr); + Free(buf); +} + +#help_index "Doc" +public U0 DocInsDoc(CDoc *doc,CDoc *doc2) +{ //TODO: $LK,"DocRst","MN:DocRst"$ + U8 *dst; + Bool unlock_doc=DocLock(doc), + unlock_doc2=DocLock(doc2); + CDocEntry *doc_ne,*doc_e=doc2->root.next; + DocRemSoftNewLines(doc,NULL); + if (doc->cur_entry->type_u8==DOCT_TEXT && + doc->cur_data_col>doc->cur_entry->min_col) { + if (doc->cur_data_colcur_entry->max_col) { + doc_ne=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_ne->type=DOCT_TEXT | doc->cur_entry->type & 0xFFFFFF00; + doc_ne->flags1=doc->cur_entry->flags1; + doc_ne->flags2=doc->cur_entry->flags2; + doc_ne->x=doc->cur_entry->x; + doc_ne->y=doc->cur_entry->y; + doc_ne->page_line_num=doc->cur_entry->page_line_num; + dst=doc->cur_entry->tag+doc->cur_data_col; + doc_ne->tag=StrNew(dst,doc->mem_task); + doc_ne->max_col=StrLen(dst); + *dst=0; + doc->cur_entry->max_col=doc->cur_data_col; + QueIns(doc_ne,doc->cur_entry); + doc->cur_entry=doc_ne; + doc->cur_data_col=doc_ne->min_col; + } else + if (doc->cur_entry!=doc) + doc->cur_entry=doc->cur_entry->next; + } + while (doc_e!=doc2) { + if (doc_e->type_u8!=DOCT_SOFT_NEW_LINE) { + doc_ne=DocEntryCopy(doc,doc_e); + QueIns(doc_ne,doc->cur_entry->last); + } + doc_e=doc_e->next; + } + DocRecalc(doc); + if (unlock_doc2) + DocUnlock(doc2); + if (unlock_doc) + DocUnlock(doc); +} + +#help_index "Doc/Clipboard" +public U0 ClipBoardDel() +{ + DocRst(sys_clipboard_doc,TRUE); +} + +public U0 EdCopyToClipboard(CDoc *doc) +{ + CDoc *doc2=sys_clipboard_doc; + Bool unlock_doc=DocLock(doc), + unlock_doc2=DocLock(doc2); + CDocEntry *doc_e=doc->root.next,*doc_ne; + ClipBoardDel; + while (doc_e!=doc) { + if (doc_e->type & DOCET_SELECTED) { + doc_e->type&=~DOCET_SELECTED; + if (!Bt(doc_data_types,doc_e->type_u8)) { + doc_ne=DocEntryCopy(doc2,doc_e); + QueIns(doc_ne,doc2->root.last); + } + } + doc_e=doc_e->next; + } + if (unlock_doc2) + DocUnlock(doc2); + if (unlock_doc) + DocUnlock(doc); +} + +public U0 EdCutToClipboard(CDoc *doc) +{ + CDoc *doc2=sys_clipboard_doc; + Bool unlock_doc=DocLock(doc), + unlock_doc2=DocLock(doc2); + CDocEntry *doc_e=doc->root.next,*doc_e1,*doc_ne,*doc_e2=NULL; + ClipBoardDel; + while (doc_e!=doc) { + doc_e1=doc_e->next; + if (doc_e->type & DOCET_SELECTED) { + doc_e->type&=~DOCET_SELECTED; + if (!Bt(doc_data_types,doc_e->type_u8)) { + doc_ne=DocEntryCopy(doc2,doc_e); + QueIns(doc_ne,doc2->root.last); + } + if (doc_e==doc->cur_entry || doc_e==doc_e2) + doc_e2=doc_e->next; + DocEntryDel(doc,doc_e); + } + doc_e=doc_e1; + } + if (doc_e2) { + doc->cur_entry=doc_e2; + doc->cur_data_col=doc_e2->min_col; + } + doc->recalc_start=doc; + DocRemSoftNewLines(doc,NULL); + if (unlock_doc2) + DocUnlock(doc2); + if (unlock_doc) + DocUnlock(doc); +} + +public U0 EdPasteClipboard(CDoc *doc) +{ + CDoc *doc2=sys_clipboard_doc; + Bool unlock_doc=DocLock(doc), + unlock_doc2=DocLock(doc2); + CDocEntry *doc_ce=doc->cur_entry,*doc_e; + if (doc_ce->type_u8==DOCT_DATA) { + doc_e=doc2->root.next; + while (doc_e!=doc2) { + if (Bt(doc_tag_types,doc_e->type_u8)) + DocPutSPartial(doc,doc_e->tag); + doc_e=doc_e->next; + } + } else + DocInsDoc(doc,doc2); + if (unlock_doc2) + DocUnlock(doc2); + if (unlock_doc) + DocUnlock(doc); +} + +public U0 DocCut(CDoc *doc,CDocEntry *start,CDocEntry *end) +{ //deletes including end points + Bool unlock_doc=DocLock(doc); + CDocEntry *doc_e1; + while (start!=doc) { + doc_e1=start->next; + if (start==doc->cur_entry) { + doc->cur_entry=start->next; + doc->cur_data_col=doc->cur_entry->min_col; + } + DocEntryDel(doc,start); + if (start==end) + break; + start=doc_e1; + } + doc->recalc_start=doc; + DocRemSoftNewLines(doc,NULL); + if (unlock_doc) + DocUnlock(doc); +} + +public CDoc *DocCopy(CDoc *doc,CDocEntry *start,CDocEntry *end) +{ //copies including end points + CDoc *doc2=DocNew; + Bool unlock_doc=DocLock(doc); + CDocEntry *doc_ne; + while (start!=doc) { + if (!Bt(doc_data_types,start->type_u8)) { + doc_ne=DocEntryCopy(doc2,start); + QueIns(doc_ne,doc2->root.last); + } + if (start==end) + break; + start=start->next; + } + if (unlock_doc) + DocUnlock(doc); + return doc2; +} + +#help_index "Doc;Compiler/Directive" + +public U0 StreamDoc(CDoc *doc) +{ //TODO: $LK,"DocRst","MN:DocRst"$ + Bool unlock_doc=DocLock(doc); + CDocEntry *doc_e=doc->root.next; + while (doc_e!=doc) { + if (doc_e->type_u8==DOCT_TEXT) + StreamPutS(doc_e->tag); + else if (doc_e->type_u8==DOCT_NEW_LINE) + StreamPutS("\n"); + else if (doc_e->type_u8==DOCT_TAB) + StreamPutS("\t"); + doc_e=doc_e->next; + } + if (unlock_doc) + DocUnlock(doc); +} + +#help_index "Doc" + +Bool DocCaptureUndo(CDoc *doc,Bool force=FALSE) +{ + Bool result=FALSE,unlock; + I64 time_stamp; + CDocUndo *u; + if (doc->flags&DOCF_ALLOW_UNDO) { + unlock=DocLock(doc); + time_stamp=GetTimeStamp; + if (doc->flags&DOCF_UNDO_DIRTY && + time_stamp>doc->undo_root.last->time_stamp+time_stamp_freq<<4 || force) { + u=CAlloc(sizeof(CDocUndo),doc->mem_task); + u->time_stamp=time_stamp; + u->body=DocSave(doc,&u->size); + QueIns(u,doc->undo_root.last); + doc->flags&=~DOCF_UNDO_DIRTY; + doc->undo_cnt++; + u->doc_flags=doc->flags; + result=TRUE; + } + if (unlock) + DocUnlock(doc); + } + return result; +} + +U0 DocUndoRestore(CDoc *doc) +{ + Bool unlock=DocLock(doc); + CDocUndo *u=doc->undo_root.last,*u_next,*u_last; + if (u!=&doc->undo_root) { + QueRem(u); + u_next=doc->undo_root.next; + u_last=doc->undo_root.last; + QueInit(&doc->undo_root); + DocRst(doc,TRUE); + doc->flags=u->doc_flags; + DocLoad(doc,u->body,u->size); + DocUndoDel(doc,u); + doc->undo_root.next=u_next; + doc->undo_root.last=u_last; + } + DocUndoCntSet(doc); + doc->flags&=~DOCF_UNDO_DIRTY; + if (unlock) + DocUnlock(doc); +} + + +#help_index "File/Cmd Line (Typically);Doc/Cmd Line (Typically);Cmd Line (Typically)" + +public Bool Type(U8 *fname) +//Output a file to the cmd line. +//Even graphics and macros will be sent. +{ + CDoc *doc,*doc2; + if (doc=DocCur) { + if (IsTextFile(fname)) { + doc2=DocRead(fname); + DocInsDoc(doc,doc2); + DocDel(doc2); + return TRUE; + } else if (FilesFindMatch("*.BMP.Z",fname)) { + DocPutBMPFile(doc,fname,FALSE); + return TRUE; + } else if (FilesFindMatch("*.BMP;*.bmp",fname)) { + DocPutBMPFile(doc,fname,TRUE); + return TRUE; + } else if (FilesFindMatch("*.GRA.Z;*.GRA",fname)) { + DocPutGRAFile(doc,fname); + return TRUE; + } + } + return FALSE; +} + +#help_index "Doc" diff --git a/SparrowOS/Adam/Doc/DocHighlight.CPP b/SparrowOS/Adam/Doc/DocHighlight.CPP new file mode 100644 index 0000000..6ec92c4 --- /dev/null +++ b/SparrowOS/Adam/Doc/DocHighlight.CPP @@ -0,0 +1,385 @@ +CHashTable *doc_hash; + +U0 DocHighlightInit() +{ + doc_hash=MAllocIdentical(asm_hash); + doc_hash->next=NULL; +} + +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"$. + U32 *result=MAlloc((len+1)*sizeof(U32)),*dst=result; + U8 *ptr,ch,ch1,last_ch; + CDocSettings *s=*_s; + I64 temp_u32_attr,mask_temp_u32_attr=_temp_u32_attr&0xFFFFF000, + comment_depth,brace_depth=s->brace_depth,paren_depth=s->paren_depth; + CHash *temph; + nobound_switch (s->state) { + case DOCSS_NORMAL: +hl_normal: + while (len) { + while (len && !Bt(alpha_numeric_bitmap,*src)) { + temp_u32_attr=_temp_u32_attr; + ch1=*src++; + switch (ch1) { + case '/': + if (len>=2) { + if (*src=='/') { + temp_u32_attr=(s->comment_attr&15)<<8|mask_temp_u32_attr; + *dst++=ch1+temp_u32_attr; + *dst++=*src++ +temp_u32_attr; + len-=2; + goto hl_cpp_comment; + } else if (*src=='*') { + temp_u32_attr=(s->comment_attr&15)<<8|mask_temp_u32_attr; + *dst++=ch1+temp_u32_attr; + *dst++=*src++ +temp_u32_attr; + len-=2; + comment_depth=1; + goto hl_comment; + } + } + break; + case '\'': + temp_u32_attr=(s->quote_attr&15)<<8|mask_temp_u32_attr; + *dst++=ch1+temp_u32_attr; + len--; + goto hl_single_quote; + case '\"': + temp_u32_attr=(s->quote_attr&15)<<8|mask_temp_u32_attr; + *dst++=ch1+temp_u32_attr; + len--; + goto hl_dbl_quote; + case '(': + if (paren_depth++&1) + temp_u32_attr=(s->alt_text_attr&15)<<8|mask_temp_u32_attr; + break; + case ')': + if (--paren_depth&1) + temp_u32_attr=(s->alt_text_attr&15)<<8|mask_temp_u32_attr; + break; + case '{': + if (brace_depth++&1) + temp_u32_attr=(s->alt_text_attr&15)<<8|mask_temp_u32_attr; + break; + case '}': + if (--brace_depth&1) + temp_u32_attr=(s->alt_text_attr&15)<<8|mask_temp_u32_attr; + break; + } + *dst++=ch1+temp_u32_attr; + if (!--len) goto hl_normal_done; + } + ptr=src; + while (len && Bt(alpha_numeric_bitmap,*src)) { + src++; + len--; + } + ch=*src; + *src=0; + if (temph=HashFind(ptr,doc_hash,HTT_KEYWORD|HTT_ASM_KEYWORD|HTT_OPCODE|HTT_REG)) { + if (temph->type&(HTT_KEYWORD|HTT_ASM_KEYWORD|HTT_OPCODE)) + temp_u32_attr=(s->keyword_attr&15) <<8|mask_temp_u32_attr; + else + temp_u32_attr=(s->keyword2_attr&15)<<8|mask_temp_u32_attr; + } else + temp_u32_attr=_temp_u32_attr; + while (ch1=*ptr++) + *dst++=ch1+temp_u32_attr; + *src=ch; + } +hl_normal_done: + if (s->state!=DOCSS_NORMAL||s->comment_depth|| + s->paren_depth!=paren_depth||s->brace_depth!=brace_depth) { + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->state=DOCSS_NORMAL; + s->paren_depth=paren_depth; + s->brace_depth=brace_depth; + s->comment_depth=0; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + } + break; + case DOCSS_SINGLE_QUOTE: + temp_u32_attr=(s->quote_attr&15)<<8|mask_temp_u32_attr; +hl_single_quote: + last_ch=0; + while (len--) { + ch1=*src++; + *dst++=ch1+temp_u32_attr; + if (last_ch!='\\' && ch1=='\'') + goto hl_normal; + if (last_ch=='\\' && ch1=='\\') + last_ch=0; + else + last_ch=ch1; + } + if (s->state!=DOCSS_SINGLE_QUOTE||s->comment_depth|| + s->paren_depth!=paren_depth||s->brace_depth!=brace_depth) { + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->state=DOCSS_SINGLE_QUOTE; + s->paren_depth=paren_depth; + s->brace_depth=brace_depth; + s->comment_depth=0; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + } + break; + case DOCSS_DBL_QUOTE: + temp_u32_attr=(s->quote_attr&15)<<8|mask_temp_u32_attr; +hl_dbl_quote: + last_ch=0; + while (len--) { + ch1=*src++; + *dst++=ch1+temp_u32_attr; + if (last_ch!='\\' && ch1=='\"') + goto hl_normal; + if (last_ch=='\\' && ch1=='\\') + last_ch=0; + else + last_ch=ch1; + } + if (s->state!=DOCSS_DBL_QUOTE||s->comment_depth|| + s->paren_depth!=paren_depth||s->brace_depth!=brace_depth) { + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->state=DOCSS_DBL_QUOTE; + s->paren_depth=paren_depth; + s->brace_depth=brace_depth; + s->comment_depth=0; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + } + break; + case DOCSS_COMMENT: + temp_u32_attr=(s->comment_attr&15)<<8|mask_temp_u32_attr; + comment_depth=s->comment_depth; +hl_comment: + last_ch=0; + while (len--) { + ch1=*src++; + *dst++=ch1+temp_u32_attr; + if (last_ch=='*' && ch1=='/') { + if (!--comment_depth) + goto hl_normal; + } else if (last_ch=='/' && ch1=='*') + comment_depth++; + last_ch=ch1; + } + if (s->state!=DOCSS_COMMENT||s->comment_depth!=comment_depth|| + s->paren_depth!=paren_depth||s->brace_depth!=brace_depth) { + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->state=DOCSS_COMMENT; + s->paren_depth=paren_depth; + s->brace_depth=brace_depth; + s->comment_depth=comment_depth; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + } + break; + case DOCSS_CPP_Z_COMMENT: + temp_u32_attr=(s->comment_attr&15)<<8|mask_temp_u32_attr; +hl_cpp_comment: + while (len--) + *dst++=*src++ +temp_u32_attr; + if (s->state!=DOCSS_CPP_Z_COMMENT||s->comment_depth|| + s->paren_depth!=paren_depth||s->brace_depth!=brace_depth) { + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->state=DOCSS_CPP_Z_COMMENT; + s->paren_depth=paren_depth; + s->brace_depth=brace_depth; + s->comment_depth=0; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + } + break; + case DOCSS_NORMAL+DOCSSF_BPT: + temp_u32_attr=_temp_u32_attr & 0xFFFFF000 | RED<<8; +hl_bpt_normal: + while (len) { + while (len && !Bt(alpha_numeric_bitmap,*src)) { + ch1=*src++; + switch (ch1) { + case '/': + if (len>=2) { + if (*src=='/') { + *dst++=ch1+temp_u32_attr; + *dst++=*src++ +temp_u32_attr; + len-=2; + goto hl_bpt_cpp_comment; + } else if (*src=='*') { + *dst++=ch1+temp_u32_attr; + *dst++=*src++ +temp_u32_attr; + len-=2; + comment_depth=1; + goto hl_bpt_comment; + } + } + break; + case '\'': + *dst++=ch1+temp_u32_attr; + len--; + goto hl_bpt_single_quote; + case '\"': + *dst++=ch1+temp_u32_attr; + len--; + goto hl_bpt_dbl_quote; + case '(': + paren_depth++; + break; + case ')': + paren_depth--; + break; + case '{': + brace_depth++; + break; + case '}': + brace_depth--; + break; + } + *dst++=ch1+temp_u32_attr; + if (!--len) goto hl_bpt_normal_done; + } + ptr=src; + while (len && Bt(alpha_numeric_bitmap,*src)) { + src++; + len--; + } + ch=*src; + *src=0; + while (ch1=*ptr++) + *dst++=ch1+temp_u32_attr; + *src=ch; + } +hl_bpt_normal_done: + if (s->state!=DOCSS_NORMAL+DOCSSF_BPT||s->comment_depth|| + s->paren_depth!=paren_depth||s->brace_depth!=brace_depth) { + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->state=DOCSS_NORMAL+DOCSSF_BPT; + s->paren_depth=paren_depth; + s->brace_depth=brace_depth; + s->comment_depth=0; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + } + break; + case DOCSS_SINGLE_QUOTE+DOCSSF_BPT: + temp_u32_attr=_temp_u32_attr & 0xFFFFF000 | RED<<8; +hl_bpt_single_quote: + last_ch=0; + while (len--) { + ch1=*src++; + *dst++=ch1+temp_u32_attr; + if (last_ch!='\\' && ch1=='\'') + goto hl_bpt_normal; + if (last_ch=='\\' && ch1=='\\') + last_ch=0; + else + last_ch=ch1; + } + if (s->state!=DOCSS_SINGLE_QUOTE+DOCSSF_BPT||s->comment_depth|| + s->paren_depth!=paren_depth||s->brace_depth!=brace_depth) { + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->state=DOCSS_SINGLE_QUOTE+DOCSSF_BPT; + s->paren_depth=paren_depth; + s->brace_depth=brace_depth; + s->comment_depth=0; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + } + break; + case DOCSS_DBL_QUOTE+DOCSSF_BPT: + temp_u32_attr=_temp_u32_attr & 0xFFFFF000 | RED<<8; +hl_bpt_dbl_quote: + last_ch=0; + while (len--) { + ch1=*src++; + *dst++=ch1+temp_u32_attr; + if (last_ch!='\\' && ch1=='\"') + goto hl_bpt_normal; + if (last_ch=='\\' && ch1=='\\') + last_ch=0; + else + last_ch=ch1; + } + if (s->state!=DOCSS_DBL_QUOTE+DOCSSF_BPT||s->comment_depth|| + s->paren_depth!=paren_depth||s->brace_depth!=brace_depth) { + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->state=DOCSS_DBL_QUOTE+DOCSSF_BPT; + s->paren_depth=paren_depth; + s->brace_depth=brace_depth; + s->comment_depth=0; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + } + break; + case DOCSS_COMMENT+DOCSSF_BPT: + temp_u32_attr=_temp_u32_attr & 0xFFFFF000 | RED<<8; + comment_depth=s->comment_depth; +hl_bpt_comment: + last_ch=0; + while (len--) { + ch1=*src++; + *dst++=ch1+temp_u32_attr; + if (last_ch=='*' && ch1=='/') { + if (!--comment_depth) + goto hl_bpt_normal; + } else if (last_ch=='/' && ch1=='*') + comment_depth++; + last_ch=ch1; + } + if (s->state!=DOCSS_COMMENT+DOCSSF_BPT||s->comment_depth!=comment_depth|| + s->paren_depth!=paren_depth||s->brace_depth!=brace_depth) { + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->state=DOCSS_COMMENT+DOCSSF_BPT; + s->paren_depth=paren_depth; + s->brace_depth=brace_depth; + s->comment_depth=comment_depth; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + } + break; + case DOCSS_CPP_Z_COMMENT+DOCSSF_BPT: + temp_u32_attr=_temp_u32_attr & 0xFFFFF000 | RED<<8; +hl_bpt_cpp_comment: + while (len--) + *dst++=*src++ +temp_u32_attr; + if (s->state!=DOCSS_CPP_Z_COMMENT+DOCSSF_BPT||s->comment_depth|| + s->paren_depth!=paren_depth||s->brace_depth!=brace_depth) { + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->state=DOCSS_CPP_Z_COMMENT+DOCSSF_BPT; + s->paren_depth=paren_depth; + s->brace_depth=brace_depth; + s->comment_depth=0; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + } + break; + } + *dst=0; + *_s=s; + return result; +} + diff --git a/SparrowOS/Adam/Doc/DocIDE.CPP b/SparrowOS/Adam/Doc/DocIDE.CPP new file mode 100644 index 0000000..56b89e9 --- /dev/null +++ b/SparrowOS/Adam/Doc/DocIDE.CPP @@ -0,0 +1,520 @@ +#help_index "Debugging" + +#define IDET_GO 1 +#define IDET_STEP_INTO 2 +#define IDET_STEP_OVER 3 + +class CIDE +{ + I64 type; + U8 *cur_line,*next_line; + U8 *call_bpt; + Bool existing_bpt; +}; + +U0 IDEWaitParent() +{ + CTask *task=Fs->parent_task; + while (!IsSuspended(task) && + !Bt(&task->task_flags,TASKf_IDLE) && + !Bt(&task->rflags,RFLAGS_SINGLE_STEP)) + Yield; +} + +public CHashFun *DbgFunFind(CDoc *doc,I64 line_offset=0) +{ + U8 st[256],*filename=doc->filename.name; + I64 line=doc->cur_entry->y+1+line_offset; + CHashTable *h=Fs->hash_table; + CHashSrcSym *temph; + CDbgInfo *dbg; + while (h) { + temph=h->next_added; + while (temph!=h) { + if (temph->type&(HTT_FUN|HTT_EXPORT_SYS_SYM)) + dbg=temph->debug; + else + dbg=NULL; + if (dbg) { + StrCpy(st,temph->src_link); + StrFirstRem(st,":"); + StrLastRem(st,","); + if (!StrCmp(st,filename)) { + if (dbg->min_line<=line<=dbg->max_line) + return temph; + } + } + temph=temph->next_added; + } + h=h->next; + } + return NULL; +} + +U0 WatchLocals() +{ + Bool old_preempt=Preempt(OFF); + CTask *task=Fs->parent_task,*dbg_task; + CDoc *doc; + CHashFun *tempf,*tempf1; + I64 sc,ch,offset,ip; + F64 timeout; + U8 **rbp,**ptr; + while (TRUE) { + IDEWaitParent; + if (!TaskValidate(dbg_task=task->dbg_task)) + Exit; + if (ScanKey(&ch,&sc,TRUE)) { + timeout=tS+4.0; + do { + if (ch==CH_SHIFT_ESC || ch==CH_ESC) + Exit; + if (ScanKey(&ch,&sc,TRUE)) + timeout=tS+4.0; + WinMgrSync; + } while (tSdbg_task)) + Exit; + DocDblBufStart; + if (doc=DocCur(dbg_task)) { + if (tempf=DbgFunFind(doc,0)) { + "$$WW,1$$"; + rbp=task->rbp; + ip=task->rip; + while (TRUE) { + tempf1=PSectFind(ip,&offset); +break; //TODO: load reg vars for higher level subroutines + if (tempf==tempf1) + break; + else { + if (rbp>=*rbp) + break; + ptr=rbp+1; + rbp=*rbp; + ip=*ptr; + if (!ChkOnStk(rbp,task)) + break; + } + } + if (tempf==tempf1) + FunRep(tempf->str,rbp,1,task); + } + } + DocDblBufEnd; + WinMgrSync; + } + } + Preempt(old_preempt); +} + + +public U0 IDE(U8 *filename) +//Spawns a child process which has +//access to parents syms. Can be used +//to debug parent. +{ + CTask *task; + U8 *fn1=DftExt(filename,"CPP.Z"), + *fn2=FileNameAbs(fn1); + + if (PopUpCancelOk("$$BK,1$$$$FG,RED$$SparrowOS 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" + " 2) Run program from cmd line.\n\n" + "$$FG,GREEN$$F5$$FG$$\t\tGo\n" + "$$FG,GREEN$$F10$$FG$$\t\tStep Over\n" + "$$FG,GREEN$$F11$$FG$$\t\tStep Into\n" + "$$FG,GREEN$$F9$$FG$$\t\tToggle Break Point\n" + "$$FG,GREEN$$SHIFT-F9$$FG$$\tClear All Break Points\n", + "\n\n\nNote: I don't use this debugger because\n" + "I'm always doing multitasking stuff, \n" + "kernel stuff and multicore stuff. Also,\n" + "you can't debug code in the window\n" + "mgr callbacks. It works on really\n" + "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,\"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; + 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); + 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); + XTalk(task,"WatchLocals;\n"); + ExeFile(fn2); + Free(fn1); + Free(fn2); + } +} + + +#help_index "Debugging/Breakpoints" +I64 IDELineAdd(CDbgInfo *dbg,I64 line) +{ + I64 max=dbg->max_line-dbg->min_line; + line-=dbg->min_line; + if (line<0) + return IDELineAdd(dbg,dbg->min_line); + while (!dbg->body[line] && line<=max) + line++; + return dbg->body[line]; +} + +I64 IDERIPLineNum(CDoc *doc,U8 *rip) +{ + U8 st[256],*filename=doc->filename.name; + I64 line; + CHashTable *h=Fs->hash_table; + CHashFun *tempf; + CDbgInfo *dbg; + while (h) { + tempf=h->next_added; + while (tempf!=h) { + if (tempf->type&HTT_FUN) { + if (dbg=tempf->debug) { + StrCpy(st,tempf->src_link); + StrFirstRem(st,":"); + StrLastRem(st,","); + if (!StrCmp(st,filename)) { + for (line=dbg->min_line;line<=dbg->max_line;line++) + if (rip>=IDELineAdd(dbg,line) && + ripnext_added; + } + h=h->next; + } + return -1; +} + +U0 IDESetStepRange(CDoc *doc) +{ + U8 st[256],*filename=doc->filename.name; + I64 line=doc->cur_entry->y+1; + CHashTable *h=Fs->hash_table; + CHashFun *tempf; + CIDE *tempi=NamedFramePtr("IDEFrame"); + CDbgInfo *dbg; + while (h) { + tempf=h->next_added; + while (tempf!=h) { + if (tempf->type&HTT_FUN) { + if (dbg=tempf->debug) { + StrCpy(st,tempf->src_link); + StrFirstRem(st,":"); + StrLastRem(st,","); + if (!StrCmp(st,filename)) { + if (dbg->min_line<=line<=dbg->max_line) { + tempi->cur_line =IDELineAdd(dbg,line); + tempi->next_line=IDELineAdd(dbg,line+1); + return; + } + } + } + } + tempf=tempf->next_added; + } + h=h->next; + } +} + +U0 IDEToggleBpt(CDoc *doc) +{ //F9 + U8 st[512],*filename=doc->filename.name; + I64 a,line=doc->cur_entry->y+1; + Bool unlock; + CHashTable *h=Fs->hash_table; + CHashFun *tempf; + CDbgInfo *dbg; + CDocEntry *doc_e; + while (h) { + tempf=h->next_added; + while (tempf!=h) { + if (tempf->type&HTT_FUN) { + if (dbg=tempf->debug) { + StrCpy(st,tempf->src_link); + StrFirstRem(st,":"); + StrLastRem(st,","); + if (!StrCmp(st,filename)) { + if (dbg->min_line<=line<=dbg->max_line) { + a=IDELineAdd(dbg,line); + unlock=DocLock(doc); + doc_e=doc->cur_entry; + while (doc_e->last->type_u8!=DOCT_NEW_LINE && + doc_e->last->type_u8!=DOCT_SOFT_NEW_LINE && + doc_e->last!=doc) + doc_e=doc_e->last; + doc->cur_entry=doc_e; + doc->cur_data_col=doc_e->min_col; + if (!BptR(a,Fs->parent_task)) { + BptS(a,Fs->parent_task); + DocPutS(doc,"$$BP$$"); + } else { + if (doc_e->type_u8==DOCT_BPT) { + doc->cur_entry=doc_e->next; + doc->cur_data_col=doc->cur_entry->min_col; + DocEntryDel(doc,doc_e); + } + } + if (unlock) + DocUnlock(doc); + DocLineNumGoTo(doc,line); + return; + } + } + } + } + tempf=tempf->next_added; + } + h=h->next; + } +} + +U0 IDEClearAllBpts(CDoc *doc) +{ //SHIFT-F9 + CDocEntry *doc_e,*doc_e2; + Bool unlock; + IDEWaitParent; + BptsR(Fs->parent_task); + unlock=DocLock(doc); + doc_e=doc->root.next; + while (doc_e!=doc) { + doc_e2=doc_e->next; + if (doc_e->type_u8==DOCT_BPT) { + if (doc->cur_entry==doc_e) { + doc->cur_entry=doc_e->next; + doc->cur_data_col=doc->cur_entry->min_col; + } + DocEntryDel(doc,doc_e); + } + doc_e=doc_e2; + } + if (unlock) + DocUnlock(doc); +} + +U0 IDEGo() //Continue after breakpoint +{ //F5 + CTask *task=Fs->parent_task; + CIDE *tempi=NamedFramePtr("IDEFrame"); + if (!tempi) { + tempi=CAlloc(sizeof(CIDE)); + NamedFramePtrAdd("IDEFrame",tempi); + } + IDEWaitParent; + LBts(&task->task_flags,TASKf_DISABLE_BPTS); + tempi->cur_line=task->rip; + tempi->type=IDET_GO; + LBts(&task->rflags,RFLAGS_SINGLE_STEP); + Suspend(task,FALSE); +} + +U0 IDEStepOver(CDoc *doc) +{ //F10 + CTask *task=Fs->parent_task; + I64 line; + U8 *opcode; + + CIDE *tempi=NamedFramePtr("IDEFrame"); + if (!tempi) { + tempi=CAlloc(sizeof(CIDE)); + NamedFramePtrAdd("IDEFrame",tempi); + } + + IDEWaitParent; + line=IDERIPLineNum(doc,task->rip); + LBts(&task->task_flags,TASKf_DISABLE_BPTS); + if (line>0) { + DocLineNumGoTo(doc,line); + IDESetStepRange(doc); + } else { + tempi->cur_line=NULL; + tempi->next_line=NULL; + } + tempi->type=IDET_STEP_OVER; + tempi->call_bpt=NULL; + + LBts(&task->rflags,RFLAGS_SINGLE_STEP); + Suspend(task,FALSE); + + opcode=task->rip; + if (*opcode==OC_CALL) { + if (BptS(opcode+5,task)) { + if (tempi->call_bpt!=opcode+5) + tempi->existing_bpt=TRUE; + } else + tempi->existing_bpt=FALSE; + tempi->call_bpt=opcode+5; + LBtr(&task->task_flags,TASKf_DISABLE_BPTS); + LBtr(&task->rflags,RFLAGS_SINGLE_STEP); + } +} + +U0 IDEStepInto(CDoc *doc) +{ //F11 + CTask *task=Fs->parent_task; + I64 line; + + CIDE *tempi=NamedFramePtr("IDEFrame"); + if (!tempi) { + tempi=CAlloc(sizeof(CIDE)); + NamedFramePtrAdd("IDEFrame",tempi); + } + + IDEWaitParent; + line=IDERIPLineNum(doc,task->rip); + LBts(&task->task_flags,TASKf_DISABLE_BPTS); + if (line>0) { + DocLineNumGoTo(doc,line); + IDESetStepRange(doc); + } else { + tempi->cur_line=NULL; + tempi->next_line=NULL; + } + tempi->type=IDET_STEP_INTO; + LBts(&task->rflags,RFLAGS_SINGLE_STEP); + Suspend(task,FALSE); +} + +U0 IDEEdTask(I64) +{ + CTask *task=Fs->parent_task, + *ed_task=NULL,*dbg_task; + U8 *rip=task->rip, + *st,*rip_filename,*bpt_filename; + CIDE *tempi,*tempi1; + + CDoc *doc; + CBpt *tempb; + if (rip_filename=SrcFileName(rip)) { + ed_task=Spawn(&UserCmdLine,NULL,"Debug",task); + TaskWait(ed_task); + st=MSPrintF("Preempt(OFF);Ed(\"%s\");\n",rip_filename); + XTalkWait(ed_task,st); + 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); + if (tempi=NamedFramePtr("IDEFrame",dbg_task)) { + tempi1=MAllocIdentical(tempi,ed_task); + NamedFramePtrAdd("IDEFrame",tempi1); + } + Kill(dbg_task); + } + task->dbg_task=ed_task; + tempb=task->bpt_list; + while (tempb) { + if (bpt_filename=SrcFileName(tempb->addr)) { + if (!StrCmp(rip_filename,bpt_filename)) { + DocLineNumGoTo(doc,SrcLineNum(tempb->addr)); + DocPutS(doc,"$$BP$$"); + } + Free(bpt_filename); + } + tempb=tempb->next; + } + DocLineNumGoTo(doc,SrcLineNum(rip)); + Free(rip_filename); + StrCpy(ed_task->task_title,"Debug Task"); + } +} + +U0 IDEResumeDbg() +{ + CTask *dbg_task=Fs->dbg_task; + CIDE *tempi=NamedFramePtr("IDEFrame",dbg_task); + U8 *opcode; + if (!tempi) { + Spawn(&IDEEdTask,NULL,"Resume Dbg",Fs); + Suspend(Fs); + } else + switch (tempi->type) { + case IDET_GO: + if (tempi->cur_line) { + LBtr(&Fs->task_flags,TASKf_DISABLE_BPTS); + LBtr(&Fs->rflags,RFLAGS_SINGLE_STEP); + if (Fs->rip==tempi->cur_line) {//Jmp to self + tempi->cur_line=NULL; + Spawn(&IDEEdTask,NULL,"Resume Dbg",Fs); + Suspend(Fs); + } else + tempi->cur_line=NULL; + } else { + Spawn(&IDEEdTask,NULL,"Resume Dbg",Fs); + Suspend(Fs); + } + break; + case IDET_STEP_INTO: + if (!tempi->cur_line || + Fs->ripcur_line || Fs->rip>=tempi->next_line) { + Spawn(&IDEEdTask,NULL,"Resume Dbg",Fs); + Suspend(Fs); + } else + Suspend(Fs,FALSE); + break; + case IDET_STEP_OVER: + LBts(&Fs->rflags,RFLAGS_SINGLE_STEP); + LBts(&Fs->task_flags,TASKf_DISABLE_BPTS); + if (Fs->rip==tempi->call_bpt) { + if (!tempi->existing_bpt) + BptR(Fs->rip,Fs,FALSE); + tempi->call_bpt=NULL; + } + if (!tempi->cur_line || + Fs->ripcur_line || Fs->rip>=tempi->next_line) { + Spawn(&IDEEdTask,NULL,"Resume Dbg",Fs); + Suspend(Fs); + } else { + opcode=Fs->rip; + if (*opcode==OC_CALL) { + if (BptS(opcode+5,Fs,FALSE)) { + if (tempi->call_bpt!=opcode+5) + tempi->existing_bpt=TRUE; + } else + tempi->existing_bpt=FALSE; + tempi->call_bpt=opcode+5; + LBtr(&Fs->task_flags,TASKf_DISABLE_BPTS); + LBtr(&Fs->rflags,RFLAGS_SINGLE_STEP); + } + Suspend(Fs,FALSE); + } + break; + } +} + +ext[EXT_RESUME_DBG]=&IDEResumeDbg; + +#help_index "" diff --git a/SparrowOS/Adam/Doc/DocMacro.CPP b/SparrowOS/Adam/Doc/DocMacro.CPP new file mode 100644 index 0000000..a303ff0 --- /dev/null +++ b/SparrowOS/Adam/Doc/DocMacro.CPP @@ -0,0 +1,219 @@ +U8 captured_macro_name[136]; +StrCpy(captured_macro_name,"Test"); + +I64 sys_macro_repeat_n=1; + +U0 SysMacroStripKey(CTaskCmd *macro_root,I64 p1,I64 p2) +{ + CTaskCmd *tempc,*tempc1; + tempc=macro_root->next; + while (tempc!=macro_root) { + tempc1=tempc->next; + if (tempc->cmd_code==TASKCT_MSG && + (tempc->msg_code==MSG_KEY_DOWN || + tempc->msg_code==MSG_KEY_UP || + tempc->msg_code==MSG_KEY_DOWN_UP) && + p1 && tempc->p1==p1 || + !p1 && tempc->p2==p2) { + QueRem(tempc); + Free(tempc); + } + tempc=tempc1; + } +} + +#define MT_NULL 0 +#define MT_MSG 1 +#define MT_CHAR 2 + +class CMacroTemp +{ + CMacroTemp *next,*last; + I64 type; + U8 buf[136]; +}; + +CMacroTemp *Cmd2MT(CTaskCmd *tempc) +{ + U8 buf[8]; + CMacroTemp *tempmt=CAlloc(sizeof(CMacroTemp)); + if (Bt(getkey_chars_bitmap,tempc->p1) && tempc->msg_code==MSG_KEY_DOWN) { + tempmt->type=MT_CHAR; + buf[0]=tempc->p1; + buf[1]=0; + SPrintF(tempmt->buf,"%Q",buf); + } else { + tempmt->type=MT_MSG; + SPrintF(tempmt->buf,"Msg(0x%X,0x%X,0x%X);", + tempc->msg_code,tempc->p1,tempc->p2); + } + return tempmt; +} + + +U8 *SysMacro2Str(CTaskCmd *macro_root) +{ + CTaskCmd *tempc; + I64 cnt=1; //terminating zero + U8 *ptr,*m; + CMacroTemp *tempmt,*tempmt1,root; + Bool old_preempt=Preempt(OFF); + LBtr(&sys_semas[SYS_SEMA_RECORD_MACRO],0); + + QueInit(&root); + root.type=MT_NULL; + tempc=macro_root->next; + while (tempc!=macro_root) { + tempmt=Cmd2MT(tempc); + QueIns(tempmt,root.last); + cnt+=StrLen(tempmt->buf); + if (tempmt->type==MT_CHAR) { + if (tempmt->last->type!=MT_CHAR) + cnt+=StrLen("\""); + if (tempmt->next->type!=MT_CHAR) + cnt+=StrLen("\";"); + } + tempc=tempc->next; + } + + m=MAlloc(cnt); + ptr=m; + + tempmt=root.next; + while (tempmt!=&root) { + tempmt1=tempmt->next; + if (tempmt->type==MT_MSG) { + StrCpy(ptr, tempmt->buf); + ptr+=StrLen(tempmt->buf); + } else { + if (tempmt->last->type!=MT_CHAR) { + StrCpy(ptr, "\""); + ptr+=StrLen("\""); + } + StrCpy(ptr,tempmt->buf); + ptr+=StrLen(tempmt->buf); + if (tempmt->next->type!=MT_CHAR) { + StrCpy(ptr, "\";"); + ptr+=StrLen("\";"); + } + } + Free(tempmt); + tempmt=tempmt1; + } + *ptr=0; + Preempt(old_preempt); + return m; +} + +U0 PlaySysMacro(I64 n=1) +{ + CTask *task=sys_focus_task; + Bool old_preempt; + U8 *m; + if (TaskValidate(task)) { + LBtr(&sys_semas[SYS_SEMA_RECORD_MACRO],0); + old_preempt=Preempt(OFF); + m=SysMacro2Str(&sys_macro_root); + while (n-- && TaskValidate(task)) { + if (task==Fs) + AutoStr("%s",m); + else + XTalkStrWait(task,"%s",m); + } + Free(m); + Preempt(old_preempt); + } +} + +U0 EdInsCapturedMacro() +{ + Bool old_preempt=Preempt(OFF); + U8 *st=SysMacro2Str(&sys_macro_root); + if (sys_focus_task) { + XTalk(sys_focus_task,"$$MA+A+LM+LA,\"%s\",\"%Q\"$$", + captured_macro_name,st); + Free(st); + } + Preempt(old_preempt); +} + +#define SM_CANCEL -1 +#define SM_RECORD 0 +#define SM_INS 1 +#define SM_PLAY 2 +#define SM_REPEAT_N 3 +#define SM_STOP 4 + +I64 PopUpExitRecordPlayStopIns() +{ + U8 buf[136]; + CTaskCmd *tempc; + CDoc *doc=DocNew; + CDocEntry *doc_e=DocPutS(doc,"$$DA-P,135,\"Name:%s\"$$"); + I64 result=0; + doc_e->data=captured_macro_name; + DocDataFmt(doc_e); + doc_e=DocPutS(doc,"\n$$DA,32,\"Repeat N:%d\"$$"); + doc_e->data=&sys_macro_repeat_n; + DocDataFmt(doc_e); + DocPutS(doc,"\n" + "$$CM+LX,1,3$$$$BT,\"RECORD\",SM_RECORD$$" + "$$CM+LX,17,0$$$$BT,\"INSERT\",SM_INS$$" + "$$CM+LX,1,3$$$$BT,\"PLAY\",SM_PLAY$$" + "$$CM+LX,17,0$$$$BT,\"REPEAT N\",SM_REPEAT_N$$" + "$$CM+LX,1,3$$$$BT,\"STOP\",SM_STOP$$" + "$$CM+LX,17,0$$$$BT,\"CANCEL\",SM_CANCEL$$" + "\n\n\n$$FG,GREEN$$SHIFT-F2$$FG$$ will play macro.\n"); + doc->flags|=DOCF_MIN_SIZE | DOCF_FORM; + SPrintF(buf,"DocMenuDo(0x%X);",doc); + sys_macro_util_task=Spawn(&ServantUserCmdLine,NULL,"Macro Popup",Fs); + Fs->popup_task=sys_macro_util_task; + LBts(&sys_macro_util_task->display_flags,DISPLAYf_WIN_ON_TOP); + tempc=TaskRqstQue(sys_macro_util_task,Fs,buf, + 1<popup_task=NULL; + Kill(sys_macro_util_task); + sys_macro_util_task=NULL; + DocDataGet(doc_e); + DocDel(doc); + return result; +} + +U0 MacroTask(I64) +{ + I64 i; + StrCpy(captured_macro_name,"Click Here"); + sys_macro_repeat_n=1; + do { + i=PopUpExitRecordPlayStopIns; + WinRefocus; + switch (i) { + case SM_RECORD: + LBtr(&sys_semas[SYS_SEMA_RECORD_MACRO],0); + QueDel(&sys_macro_root,TRUE); + LBts(&sys_semas[SYS_SEMA_RECORD_MACRO],0); + break; + case SM_PLAY: + PlaySysMacro; + break; + case SM_REPEAT_N: + PlaySysMacro(sys_macro_repeat_n); + break; + case SM_STOP: + LBtr(&sys_semas[SYS_SEMA_RECORD_MACRO],0); + break; + case SM_INS: + LBtr(&sys_semas[SYS_SEMA_RECORD_MACRO],0); + EdInsCapturedMacro; + break; + } + } while (i>=0); +} + +U0 EdMacroUtil() +{ + if (!sys_macro_util_task) + Spawn(&MacroTask,NULL,"Macro"); +} + diff --git a/SparrowOS/Adam/Doc/DocMain.CPP b/SparrowOS/Adam/Doc/DocMain.CPP new file mode 100644 index 0000000..b09c3e1 --- /dev/null +++ b/SparrowOS/Adam/Doc/DocMain.CPP @@ -0,0 +1,644 @@ +#help_index "Doc/Cmd Line (Typically);Cmd Line (Typically)" + +Bool EdJoin(U8 *link_st,I64 ed_flags) +{ + U8 *filename,*pattern; + I64 i,num; + Bool cont,result=FALSE; + CDoc *doc; + + switch (i=EdLinkCvt(link_st,&filename,&pattern,&num,ed_flags)) { + case -1: + break; + case LK_DEF: + doc=DocNew; + StrCpy(doc->desc,"DictDef"); + WSDDisplayDefs(doc,filename,num); + goto ej_doc; + case LK_HELP_INDEX: + doc=DocNew; + StrCpy(doc->desc,"HelpIdx"); + DocHelpIndex(doc,filename); +ej_doc: + if (!(ed_flags&EDF_BAIL)) { + DocDo(doc); + DocDel(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); + } + 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) +//Open a document in plain text mode, +//so that dollar signs are not special. +{ + U8 *st=MSPrintF("PI:%s",filename); + Ed(st); + Free(st); +} + +#help_index "Doc" +public Bool DocLinkChk(U8 *link_st) +{ + U8 *filename,*pattern; + I64 num; + Bool result=FALSE; + if (link_st) { + switch (EdLinkCvt(link_st,&filename,&pattern,&num,0)) { + 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 + 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)) + result=TRUE; + } + Free(filename); + Free(pattern); + } + return result; +} + +#help_index "Doc/Task" +public CDoc *SysAuxDocInit() +{ + CDocEntry *doc_e; + CDoc *aux,*doc=DocCur; + + aux=DocNew; + aux->flags|=DOCF_AUX_DOC; + + if (doc) { + DocPutS(aux,"$$CM+H+BY+RX+NC,-7,1$$"); + doc_e=DocPutS(aux,"$$TX+H+BD+TC,\" \"$$"); + doc_e->user_data=doc; + doc_e->tag_cb=&EdFilterCB; + doc_e=DocPutS(aux,"$$TX+H+BD+TC,\" \"$$"); + doc_e->user_data=doc; + doc_e->tag_cb=&EdOverStrikeCB; + doc_e=DocPutS(aux,"$$TX+H+BD+TC,\" \"$$"); + doc_e->user_data=doc; + doc_e->tag_cb=&EdDollarCB; + } + + DocPutS(aux,"$$CM+H+BY+RX+NC,-4,1$$"); + doc_e=DocPutS(aux,"$$TX+H+BD+TC,\" \"$$"); + doc_e->tag_cb=&EdQuotesCB; + doc_e=DocPutS(aux,"$$TX+H+BD+TC,\" \"$$"); + doc_e->tag_cb=&EdBracesCB; + doc_e=DocPutS(aux,"$$TX+H+BD+TC,\" \"$$"); + doc_e->tag_cb=&EdSemicolonCB; + + if (doc) { + DocPutS(aux,"$$CM+H+BY+RX+NC,-18,1$$"); + doc_e=DocPutS(aux,"$$TX+BD+TC,\" \"$$"); + doc_e->user_data=doc; + doc_e->tag_cb=&EdMoreCB; + doc_e=DocPutS(aux,"$$TX+H+BD+TC,\" \"$$"); + doc_e->user_data=doc; + doc_e->tag_cb=&EdDollarTypeCB; + } + + if (Fs->user_num) + DocPrintF(aux,"$$CM+H+TY+LX+NC,5,-1$$$$TX+H+BD,\"#%d\"$$",Fs->user_num); + DocPutS(aux,"$$CM+H+TY+NC,0,-1$$"); + doc_e=DocPutS(aux,"$$DA+H-T-P+BD+RD+CX+SCX+IV,140,\"%s...\",16$$"); + doc_e->data=&Fs->task_title; + DocDataFmt(doc_e); + DocPrintF(aux,"$$CM+H+NC,1,0$$$$TX+H+BD+IV,\"%X\"$$",Fs); + aux->settings_root.dft_text_attr=Fs->border_attr; + if (Bt(&Fs->display_flags,DISPLAYf_HAS_CLOSE_WIN)) + DocPutS(aux,"$$TX+H+RX+BD,\"[X]\"$$"); + DocPutS(aux,"$$BK,1$$$$TX+H+LX+BD,\"MENU\"$$$$BK,0$$"); + return aux; +} + +public U0 UseTermDoc() +{ + Bool old_preempt=Preempt(OFF); + CDoc *doc=DocNew; + doc->start_text_attr=WHITE<<4+BLUE; + DocQueIns(doc,Fs->last_doc); + doc->right_click_link=&TermRightClickLink; + doc->max_entries=4096; + doc->flags|=DOCF_ATTR_BY_PRT; + StrCpy(doc->desc,"Term"); + DocQueInsRev(SysAuxDocInit,Fs->next_doc); + Fs->cur_menu=MenuFile("::/SparrowOS/Doc/EdPullDown.TXT.Z"); + WinScrollsInit(Fs); + Preempt(old_preempt); + Raw(OFF); +} + +#help_index "Doc/Input" +public U8 *DocGetLine(CDoc *doc,CDocEntry *doc_e,I64 *cur_col=NULL,CDocEntry **_do_e_end=NULL) +{ + CDocEntry *doc_e2=doc_e; + Bool unlock=DocLock(doc); + U8 *dst,*src,*start,*result; + I64 i=0; + if (cur_col) + *cur_col=-1; + while (doc_e2!=doc && doc_e2->type_u8!=DOCT_NEW_LINE) { + if (Bt(doc_tag_types,doc_e2->type_u8)) { + src=doc_e2->tag; + i+=StrLen(src); + } else if (doc_e2->type_u8==DOCT_TAB) + i++; + doc_e2=doc_e2->next; + } + result=MAlloc(i+1); + dst=result; + while (doc_e!=doc && doc_e->type_u8!=DOCT_NEW_LINE) { + start=dst; + if (Bt(doc_tag_types,doc_e->type_u8)) { + src=doc_e->tag; + while (*src) + *dst++=*src++; + } else if (doc_e->type_u8==DOCT_TAB) + *dst++=CH_TAB; + if (doc_e==doc->cur_entry && cur_col) + *cur_col=start-result+doc->cur_data_col; + doc_e=doc_e->next; + } + if (_do_e_end) *_do_e_end=doc_e; + *dst=0; + if (doc_e==doc->cur_entry && cur_col && !doc->cur_data_col) + *cur_col=dst-result; + if (unlock) + DocUnlock(doc); + return result; +} + +#help_index "Doc/Output" +public U0 DocDump(CDoc *doc,I64 uS_delay=0) +{ + U8 *st; + CDocEntry *doc_e,*doc_e2; + Bool unlock=DocLock(doc); + doc_e=doc->root.next; + while (doc_e!=doc) { + st=DocGetLine(doc,doc_e,NULL,&doc_e2); + "" st; + Free(st); + doc_e=doc_e2; + if (doc_e->type_u8==DOCT_NEW_LINE) { + NewLine; + BusyWait(uS_delay); + doc_e=doc_e->next; + } + } + if (unlock) + DocUnlock(doc); +} + +public CDocEntry *DocPutLine(CDocEntry *doc_e) +{ + U8 ch,*ptr,*ptr2; + while (doc_e->type_u8!=DOCT_ERROR && doc_e->type_u8!=DOCT_NEW_LINE) { + if (Bt(doc_tag_types,doc_e->type_u8)) { + ptr=doc_e->tag; + do { + ptr2=ptr; + while (ch=*ptr) + if (ch=='$$') + break; + else + ptr++; + *ptr=0; + "" ptr2; + *ptr=ch; + if (ch=='$$') { + "$$$$"; + ptr++; + } + } while (ch); + } else if (doc_e->type_u8==DOCT_TAB) + '' CH_TAB; + doc_e=doc_e->next; + } + NewLine; + return doc_e->type_u8==DOCT_ERROR ? doc_e:doc_e->next; +} + +#help_index "Doc/Input" +public U8 *DocMGetS(I64 flags=0) +//$LK,"Flags","MN:GETSF_SHIFT_ESC_EXIT"$ +{ + CDoc *doc; + CDocEntry *doc_e,*doc_e_end; + Bool old_preempt=IsPreempt; + U8 *st,*result; + I64 ch,sc; + "$$FU$$"; + do { + ch=DocGetKey(&sc); + if (ch==CH_ESC) { + doc=Fs->next_doc; + while (doc!=(&Fs->next_doc)(U8 *)-offset(CDoc.next_doc) && + doc->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL) { + DocLock(doc); + if (!(doc->flags&DOCF_DONT_SHOW) && + (!doc->best_d || !(doc->flags&DOCF_AUX_DOC)) && + doc->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL && doc->cur_entry!=doc) { + doc_e=DocEntryCopy(doc,doc->cur_entry); + if (doc->flags&DOCF_AUX_DOC && DocCur) + DocBottom; + else + DocBottom(doc); + DocEntryRun(doc,doc_e,TRUE); + DocEntryDel(doc,doc_e); + DocUnlock(doc); + break; + } + DocUnlock(doc); + doc=doc->next_doc; + } + if (flags&GETSF_WITH_NEW_LINE) + break; + } if (ch==CH_SHIFT_ESC) { + if (flags&GETSF_SHIFT_ESC_EXIT) + Exit; + else { + result=StrNew(""); + goto mgets_done; + } + } + // is a blank line without entry + } while (flags&GETSF_WITH_NEW_LINE || ch!=CH_NEW_LINE || sc & SCF_CTRL && sc & SCF_SHIFT); + + Preempt(OFF); + doc=DocCur; + DocLock(doc); + if (flags&GETSF_WITH_NEW_LINE) { + doc_e=doc->cur_entry; + do doc_e=doc_e->last; + while (doc_e!=doc && doc_e->type_u8!=DOCT_USER_FOREGROUND); + doc_e=doc_e->next; + if (result=DocGetLine(doc,doc_e,NULL,&doc_e_end)) { + while (doc_e_end!=doc && doc_e_end->type_u8==DOCT_NEW_LINE) { + result=StrAdd(result,"\n"); + if (st=DocGetLine(doc,doc_e_end->next,NULL,&doc_e_end)) { + result=StrAdd(result,st); + Free(st); + } + } + } + } else { + doc_e=doc->cur_entry; + do doc_e=doc_e->last; + while (doc_e!=doc && doc_e->type_u8!=DOCT_NEW_LINE && + doc_e->type_u8!=DOCT_USER_FOREGROUND); + if (doc_e!=doc && doc_e->type_u8!=DOCT_USER_FOREGROUND) { + do doc_e=doc_e->last; + while (doc_e!=doc && doc_e->type_u8!=DOCT_NEW_LINE && + doc_e->type_u8!=DOCT_USER_FOREGROUND); + } + doc_e=doc_e->next; + result=DocGetLine(doc,doc_e,NULL); + } + DocUnlock(doc); +mgets_done: + "$$FU$$$$FG$$$$BG$$"; + Preempt(old_preempt); + return result; +} + +#help_index "Char/Input" + +public I64 PmtI64(U8 *msg,I64 dft,I64 lo=MIN_I64,I64 hi=MAX_I64) +{ + Bool okay; + U8 *st; + I64 result; + while (TRUE) { + "" msg,dft; + st=MGetS; + if (!*st) { + Free(st); + return dft; + } + try { + okay=FALSE; + result=ExePrintF3("ToI64(%s);",st); + okay=TRUE; + } catch + Fs->catch_except=TRUE; + Free(st); + if (okay && lo<=result<=hi) + return result; + } +} + +public F64 PmtF64(U8 *msg,F64 dft,F64 lo=MIN_F64,F64 hi=MAX_F64) +{ + Bool okay; + U8 *st; + F64 result; + while (TRUE) { + "" msg,dft; + st=MGetS; + if (!*st) { + Free(st); + return dft; + } + try { + okay=FALSE; + result=ExePrintF3("ToF64(%s);",st)(F64); + okay=TRUE; + } catch + Fs->catch_except=TRUE; + Free(st); + if (okay && lo<=result<=hi) + return result; + } +} + +public U8 *PmtStr(U8 *msg=NULL,U8 *dft=NULL) +{ + U8 *st; + if (msg) { + if (dft) + "" msg,dft; + else + "" msg; + } + st=MGetS; + if (!*st) { + Free(st); + if (dft) + return StrNew(dft); + else + return StrNew(""); + } + return st; +} + +public CDate PmtCDate(U8 *msg,CDate dft,CDate lo=MIN_I64,CDate hi=MAX_I64) +{ + U8 *st; + CDate result; + while (TRUE) { + "" msg,dft,dft; + st=MGetS; + if (!*st) { + Free(st); + return dft; + } + result=A2CDate(st); + Free(st); + if (result>=lo && result<=hi) + return result; + } +} + +#help_index "Doc" + +#define RIGHT_INCLUDE 0 +#define RIGHT_DEBUG 1 +#define RIGHT_COMPILE 2 +#define RIGHT_LOAD 3 +#define RIGHT_AINCLUDE 4 +#define RIGHT_AUTOFILE 5 +#define RIGHT_COPY 6 +#define RIGHT_MOVE 7 +#define RIGHT_DELETE 8 +#define RIGHT_TYPE 9 + +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"); + if (footer) DocPutS(doc,footer); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +I64 EdLeftClickLink(CDoc *doc,CDocEntry *doc_e) +{ //called with doc locked, exit unlocked + 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; +} + +I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e) +{ //called with doc locked, exit unlocked + Bool send_new_line=FALSE,result=FALSE; + U8 *st; + 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; + 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; + 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; + 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; + 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; + 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; + break; + } + } + "IDE(\"%s\");\n$$FU$$$$FG$$$$BG$$",st; + WinZBufUpdate; + IDE(st); + result=TRUE; + break; + } + } else + send_new_line=TRUE; + DocBottom(doc); + "$$FU$$$$FG$$$$BG$$"; + if (send_new_line) + '' CH_NEW_LINE; + 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)" + +public U0 DocDm(U8 *buf,I64 cnt=0x80) +//Dumps a chunk of mem, showing +//addresses. It is live and can be +//edited. +{ + CDocEntry *doc_e; + CDoc *doc=DocCur; + Bool unlock=DocLock(doc); + doc_e=DocPrintF(doc,"$$HX-Z,%d,16$$",cnt); + doc_e->data=buf; + doc->cur_entry=doc_e->next; + DocRecalc(doc); + if (unlock) + DocUnlock(doc); +} + +public U0 DocD(U8 *buf,I64 cnt=0x80) +//Dumps a chunk of mem, showing +//offsets. It is live and can be +//edited. +{ + CDocEntry *doc_e; + CDoc *doc=DocCur; + Bool unlock=DocLock(doc); + doc_e=DocPrintF(doc,"$$HX,%d,16$$",cnt); + doc_e->data=buf; + doc->cur_entry=doc_e->next; + DocRecalc(doc); + if (unlock) + DocUnlock(doc); +} + +#help_index "Doc/Output" +Bool AKDDocPutS(U8 *st) +{ + CDoc *doc; + if (doc=DocCur) + DocPutSPartial(doc,st); + return FALSE; +} + +KeyDevAdd(&AKDDocPutKey,&AKDDocPutS,0x80000000,TRUE); +fp_mgets=&DocMGetS; +fp_doc_cur=&DocCur; + +#help_index "Doc" diff --git a/SparrowOS/Adam/Doc/DocNew.CPP b/SparrowOS/Adam/Doc/DocNew.CPP new file mode 100644 index 0000000..dbc9a91 --- /dev/null +++ b/SparrowOS/Adam/Doc/DocNew.CPP @@ -0,0 +1,897 @@ +I64 doc_tag_types[(DOCT_NUM_TYPES+63)/64], + doc_nontag_invisible_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"$ +U0 DocTablesInit() +{ + doc_tag_types[0]= + 1<locked_flags,DOClf_LOCKED) || doc->owning_task!=Fs) { + while (LBts(&doc->locked_flags,DOClf_LOCKED)) + Yield; + if (doc->owning_task!=Fs) + LBEqu(&doc->flags,DOCf_BREAK_UNLOCKED,BreakLock(Fs)); + doc->owning_task=Fs; + return TRUE; + } else + return FALSE; +} + +public Bool DocUnlock(CDoc *doc) +{ + Bool unlock_break; + if (Bt(&doc->locked_flags,DOClf_LOCKED) && doc->owning_task==Fs) { + doc->owning_task=0; + unlock_break=Bt(&doc->flags,DOCf_BREAK_UNLOCKED); + LBtr(&doc->locked_flags,DOClf_LOCKED); + if (unlock_break) + BreakUnlock(Fs); + return TRUE; + } else + return FALSE; +} + + +CDocBin *DocBinFindNum(CDoc *doc,I64 num) +{ + CDocBin *b=doc->bin_root.next; + while (b!=&doc->bin_root) { + if (b->num==num) + return b; + b=b->next; + } + return NULL; +} + +CDocBin *DocBinFindTag(CDoc *doc,U8 *tag) +{ + CDocBin *b; + if (tag) { + b=doc->bin_root.next; + while (b!=&doc->bin_root) { + if (b->tag && !StrCmp(b->tag,tag)) + return b; + b=b->next; + } + } + return NULL; +} + +U0 DocBinsValidate(CDoc *doc) +{ + Bool unlock=DocLock(doc); + CDocBin *b,*b1; + CDocEntry *doc_e,*doc_e2; + I64 renum_num=0; + b=doc->bin_root.next; + while (b!=&doc->bin_root) { + b->use_cnt=0; + b->temp_use_cnt=0; + b->renum_num=-1; + Free(b->tag); + b->tag=NULL; + b=b->next; + } + doc_e=doc->root.next; + while (doc_e!=doc) { + doc_e2=doc_e->next; + if (doc_e->flags1 & DOCEF1_HAS_BIN) { + if (b=doc_e->bin_data=DocBinFindNum(doc,doc_e->bin_num)) { + if (doc_e->flags2 & DOCEF2_BIN_PTR_LINK) + b->temp_use_cnt=MAX_I32; + if (!b->use_cnt++) + b->renum_num=++renum_num; + doc_e->bin_num=b->renum_num; + if (!b->tag && Bt(doc_tag_types,doc_e->type_u8) && + doc_e->tag && *doc_e->tag) + b->tag=StrNew(doc_e->tag,doc->mem_task); + } else { + DbgStr("Bin Not Found",3000); + doc_e->type=doc_e->flags2=doc_e->flags1=0; + doc_e->type_u8=DOCT_ERROR; + } + } + doc_e=doc_e2; + } + + b=doc->bin_root.next; + doc->cur_bin_num=1; + while (b!=&doc->bin_root) { + b1=b->next; + if (!b->use_cnt) { + QueRem(b); + Free(b->data); + Free(b); + } else { + b->num=b->renum_num; + if (b->num>=doc->cur_bin_num) + doc->cur_bin_num=b->num+1; + } + b=b1; + } + if (unlock) + DocUnlock(doc); +} + + +U0 DocBinDel(CDoc *doc,CDocBin *b) +{ + if (doc && b && b->use_cnt) { + b->use_cnt--; + if (!b->use_cnt) { + QueRem(b); + Free(b->tag); + Free(b->data); + Free(b); + } + } else + DbgStr("DocBinDel",3000); +} + +public U0 DocEntryDel(CDoc *doc,CDocEntry *doc_e) +{ + if (!doc || doc==doc_e) + DbgStr("DocEntryDel",3000); + else { + if (doc->cur_entry==doc_e) + doc->cur_entry=doc_e->next; + QueRem(doc_e); + if (Bt(doc_tag_types,doc_e->type_u8)) + Free(doc_e->tag); + if (doc_e->flags1 & DOCEF1_LEFT_MACRO) + Free(doc_e->left_macro); + if (doc_e->flags1 & DOCEF1_RIGHT_MACRO) + Free(doc_e->right_macro); + if (doc_e->flags1 & DOCEF1_AUX_STR) + Free(doc_e->aux_str); + if (doc_e->flags1 & DOCEF1_DEFINE) + Free(doc_e->define_str); + if (doc_e->flags1 & DOCEF1_HTML_LINK) + Free(doc_e->html_link); + if (doc_e->flags2 & DOCEF2_BIN_PTR_LINK) + Free(doc_e->bin_ptr_link); + if (doc_e->flags1 & DOCEF1_HAS_BIN) + DocBinDel(doc,doc_e->bin_data); + Free(doc_e); + } +} + +public I64 DocEntrySize(CDoc *,CDocEntry *doc_e) +{ + I64 result; + if (!doc_e) return 0; + result=MSize2(doc_e); + if (Bt(doc_tag_types,doc_e->type_u8)) + result+=MSize2(doc_e->tag); + if (doc_e->flags1 & DOCEF1_AUX_STR) + result+=MSize2(doc_e->aux_str); + if (doc_e->flags1 & DOCEF1_DEFINE) + result+=MSize2(doc_e->define_str); + if (doc_e->flags1 & DOCEF1_HTML_LINK) + result+=MSize2(doc_e->html_link); + if (doc_e->flags2 & DOCEF2_BIN_PTR_LINK) + result+=MSize2(doc_e->bin_ptr_link); + if (doc_e->flags1 & DOCEF1_LEFT_MACRO) + result+=MSize2(doc_e->left_macro); + if (doc_e->flags1 & DOCEF1_RIGHT_MACRO) + result+=MSize2(doc_e->right_macro); + return result; +} + +U0 DocUndoDel(CDoc *,CDocUndo *u) +{ + Free(u->body); + Free(u); +} + +U0 DocUndoCntSet(CDoc *doc) +{ + Bool unlock=DocLock(doc); + CDocUndo *u=doc->undo_root.next; + doc->undo_cnt=0; + while (u!=&doc->undo_root) { + doc->undo_cnt++; + u=u->next; + } + if (unlock) + DocUnlock(doc); +} + +public CDocEntry *DocEntryCopy(CDoc *doc,CDocEntry *doc_e) +{ + CDocEntry *doc_ne; + CDocBin *tempb; + CTask *task=doc->mem_task; + doc_ne=MAllocIdentical(doc_e,task); + doc_ne->next=doc_ne; + doc_ne->last=doc_ne; + doc_ne->settings=NULL; + if (Bt(doc_tag_types,doc_e->type_u8)) + doc_ne->tag=MAllocIdentical(doc_e->tag,task); + if (doc_e->flags1 & DOCEF1_AUX_STR) + doc_ne->aux_str=MAllocIdentical(doc_e->aux_str,task); + if (doc_e->flags1 & DOCEF1_DEFINE) + doc_ne->define_str=MAllocIdentical(doc_e->define_str,task); + if (doc_e->flags1 & DOCEF1_HTML_LINK) + doc_ne->html_link=MAllocIdentical(doc_e->html_link,task); + if (doc_e->flags2 & DOCEF2_BIN_PTR_LINK) + doc_ne->bin_ptr_link=MAllocIdentical(doc_e->bin_ptr_link,task); + if (doc_e->flags1 & DOCEF1_LEFT_MACRO) + doc_ne->left_macro=MAllocIdentical(doc_e->left_macro,task); + if (doc_e->flags1 & DOCEF1_RIGHT_MACRO) + doc_ne->right_macro=MAllocIdentical(doc_e->right_macro,task); + if (doc_e->flags1 & DOCEF1_HAS_BIN) { + tempb=MAllocIdentical(doc_e->bin_data,task); + tempb->data=MAllocIdentical(doc_e->bin_data->data,task); + doc_ne->bin_num=doc->cur_bin_num; + tempb->num=doc->cur_bin_num++; + doc_ne->bin_data=tempb; + if (Bt(doc_tag_types,doc_e->type_u8) && doc_e->tag && *doc_e->tag) + tempb->tag=StrNew(doc_e->tag,task); + else + tempb->tag=NULL; + QueIns(tempb,doc->bin_root.last); + } + return doc_ne; +} + +U0 DocFormFwd(CDoc *doc,Bool giveup=FALSE) +{ + CDocEntry *doc_e=doc->cur_entry,*doc_e2=doc_e; + if (doc->flags & DOCF_FORM) { + if (doc_e==doc) goto recover; + while (!Bt(doc_form_types,doc_e->type_u8) || + doc_e->flags1&DOCEF1_SKIP_IN_FORM) { + doc_e=doc_e->next; + if (doc_e==doc) { +recover: + doc->cur_data_col=0; + if (!giveup) { + doc->cur_entry=doc_e->last; + DocFormBackward(doc,TRUE); + } else + doc->cur_entry=doc; + return; + } + } + } + while (doc_e->type_u8==DOCT_INDENT) + doc_e=doc_e->next; + if (doc_e!=doc_e2) { + doc->cur_data_col=doc_e->min_col; + doc->cur_entry=doc_e; + } +} + +U0 DocFormBackward(CDoc *doc,Bool giveup=FALSE) +{ + CDocEntry *doc_e=doc->cur_entry,*doc_e2=doc_e; + if (doc->flags & DOCF_FORM) { + while (!Bt(doc_form_types,doc_e->type_u8) || + doc_e->flags1&DOCEF1_SKIP_IN_FORM) { + doc_e=doc_e->last; + if (doc_e==doc) { + doc->cur_data_col=0; + if (!giveup) { + doc->cur_entry=doc_e->next; + DocFormFwd(doc,TRUE); + } else + doc->cur_entry=doc; + return; + } + } + } + while (doc_e->type_u8==DOCT_INDENT) + doc_e=doc_e->next; + if (doc_e!=doc_e2) { + doc->cur_data_col=doc_e->min_col; + doc->cur_entry=doc_e; + } +} + +public U0 DocHome(CDoc *doc=NULL) +{ + Bool unlock; + if (!doc) { + doc=DocCur; + if (!doc) return; + } + unlock=DocLock(doc); + doc->cur_entry=doc->root.next; + doc->cur_data_col=doc->cur_entry->min_col; + doc->x=0; + doc->y=0; + doc->line_start_col=0; + doc->cur_top_line_num=0; + + DocFormFwd(doc); + if (unlock) + DocUnlock(doc); +} + +U0 DocSettlingsRemainingDel(CDoc *doc,CDocEntry *doc_e,CDocSettings *s) +{ + CDocSettings *s1; + if (doc_e) { + while (doc_e!=doc) { + doc_e->settings=NULL; + doc_e=doc_e->next; + } + } + if (!s) return; + while (s!=&doc->settings_root) { + s1=s->next; + QueRem(s); + Free(s); + s=s1; + } +} + +CDocSettings *DocSettingsIdentical(CDoc *doc,CDocSettings *s1) +{ + CDocSettings *s=MAlloc(sizeof(CDocSettings),doc->mem_task); + MemCpy(&s->start,&s1->start,sizeof(CDocSettings)-offset(CDocSettings.start)); + return s; +} + +CDocSettings *DocSettingsLast(CDocEntry *doc_e) +{ + while (!doc_e->settings) + doc_e=doc_e->last; + return doc_e->settings; +} + +CDocSettings *DocSettingsNext(CDocEntry *doc_e) +{ + while (!doc_e->settings) + doc_e=doc_e->next; + return doc_e->settings; +} + +public U0 DocRst(CDoc *doc,Bool is_old) +{ + Bool unlock; + CDocEntry *doc_e,*doc_e2; + CDocUndo *u,*u8; + CDocSettings *s; + CDocBin *b,*b1; + if (!doc) { + doc=DocCur; + if (!doc) return; + } + unlock=DocLock(doc); + if (is_old) { + doc_e=doc->root.next; + while (doc_e!=doc) { + doc_e2=doc_e->next; + DocEntryDel(doc,doc_e); + doc_e=doc_e2; + } + DocSettlingsRemainingDel(doc,NULL,doc->settings_root.next); + u=doc->undo_root.next; + while (u!=&doc->undo_root) { + u8=u->next; + DocUndoDel(doc,u); + u=u8; + } + b=doc->bin_root.next; + while (b!=&doc->bin_root) { + b1=b->next; + QueRem(b); + Free(b->data); + Free(b); + b=b1; + } + } + //Check $LK,"DocInsDoc","MN:DocInsDoc"$ + doc->flags&=DOCF_BREAK_UNLOCKED; + doc->root.next=doc->root.last=doc; + QueInit(&doc->bin_root); + QueInit(&doc->undo_root); + doc->undo_root.time_stamp=0; + doc->undo_cnt=0; + doc->cur_bin_num=1; + doc->recalc_start=doc; + doc->dollar_buf_ptr=0; + doc->ext_ascii_cnt=doc->ext_ascii_val=0; + doc->cmd_U8=CH_SPACE; + doc->page_line_num=0; + doc->best_d=MAX_I64; + + s=&doc->settings_root; + s->next=s->last=s; + s->left_margin=DOC_DFT; + s->right_margin=DOC_DFT; + s->indent=0; + s->page_len=66; + s->header=DOC_DFT; + s->footer=DOC_DFT; + s->state=DOCSS_NORMAL; + s->comment_depth=0; + s->paren_depth=0; + s->brace_depth=0; + s->shifted_x=0; + s->shifted_y=0; + + s->cur_text_attr=s->dft_text_attr=doc->start_text_attr=WHITE<<4+BLACK; + s->alt_text_attr =LTGRAY; + s->link_attr =RED; + s->macro_attr =LTBLUE; + s->anchor_attr =DKGRAY; + s->hidden_attr =DKGRAY; + s->tree_attr =PURPLE; + s->user_attr =GREEN; + s->bin_attr =CYAN; + s->keyword_attr =BLUE; + s->keyword2_attr =LTRED; + s->comment_attr =GREEN; + s->quote_attr =BROWN; + + doc_e=&doc->root; + doc_e->type=DOCT_ERROR; + doc_e->flags1=0; + doc_e->flags2=0; + doc_e->x=0; + doc_e->y=0; + doc_e->min_col=0; + doc_e->max_col=0; + doc_e->page_line_num=doc->page_line_num; + doc_e->settings=s; + + DocHome(doc); + if (unlock) + DocUnlock(doc); +} + + +public U0 DocDel(CDoc *doc) +{ + if (!doc || doc->doc_signature!=DOC_SIGNATURE_VAL) return; + DocLock(doc); + doc->doc_signature=0; + doc->doc_in_que_signature=0; + DocRst(doc,TRUE); + Free(doc->find_replace); + Free(doc->dollar_buf); + DocUnlock(doc); + Free(doc); +} + +public I64 DocSize(CDoc *doc) +{ + Bool unlock; + CDocEntry *doc_e; + CDocUndo *u; + CDocSettings *s; + CDocBin *b; + I64 result=0; + + if (!doc || doc->doc_signature!=DOC_SIGNATURE_VAL) return 0; + unlock=DocLock(doc); + + doc_e=doc->root.next; + while (doc_e!=doc) { + result+=DocEntrySize(doc,doc_e); + doc_e=doc_e->next; + } + + s=doc->settings_root.next; + while (s!=&doc->settings_root) { + result+=MSize2(s); + s=s->next; + } + + u=doc->undo_root.next; + while (u!=&doc->undo_root) { + result+=MSize2(u->body); + result+=MSize2(u); + u=u->next; + } + + b=doc->bin_root.next; + while (b!=&doc->bin_root) { + result+=MSize2(b->data); + result+=MSize2(b); + b=b->next; + } + + result+=MSize2(doc->find_replace); + result+=MSize2(doc->dollar_buf); + result+=MSize2(doc); + if (unlock) + DocUnlock(doc); + return result; +} + + +U0 DocDataFmt(CDocEntry *doc_e) +{ + I64 i,d; + U8 *ptr; + if (doc_e->type_u8==DOCT_DATA || doc_e->type_u8==DOCT_CHECK_BOX) { + if (doc_e->flags1 & DOCEF1_DATA_IS_PTR) { + if (!(ptr=doc_e->data)) return; + } else + ptr=&doc_e->data; + if (doc_e->flags1&DOCEF1_U8) + d=*ptr; + else if (doc_e->flags1&DOCEF1_U16) + d=*ptr(U16 *); + else if (doc_e->flags1&DOCEF1_U32) + d=*ptr(U32 *); + else + d=*ptr(I64 *); + if (doc_e->type_u8==DOCT_DATA) { + SPrintF(doc_e->tag,doc_e->aux_str,d,doc_e->my_fmt_data); + if (doc_e->flags1 & DOCEF1_HAS_TERMINATOR) { + i=StrLen(doc_e->tag); + doc_e->tag[i++]='_'; + doc_e->tag[i]=0; + } + doc_e->max_col=StrLen(doc_e->tag); + } else { + if (d) + doc_e->flags1|=DOCEF1_CHECKED_COLLAPSED; + else + doc_e->flags1&=~DOCEF1_CHECKED_COLLAPSED; + } + } +} + +U0 DocDataGet(CDocEntry *doc_e) +{ + I64 i,d; + U8 *ptr; + if (doc_e->type_u8==DOCT_DATA || doc_e->type_u8==DOCT_CHECK_BOX) { + if (doc_e->flags1 & DOCEF1_DATA_IS_PTR) { + if (!(ptr=doc_e->data)) return; + } else + ptr=&doc_e->data; + if (doc_e->type_u8==DOCT_DATA) { + i=StrLen(doc_e->tag); + if (doc_e->flags1 & DOCEF1_HAS_TERMINATOR) + doc_e->tag[--i]=0; + if (i>doc_e->len+doc_e->min_col) + doc_e->tag[doc_e->len+doc_e->min_col]=0; + if (doc_e->flags1&(DOCEF1_U8|DOCEF1_U16|DOCEF1_U32)) { + GetF(doc_e->tag,doc_e->aux_str,&d,doc_e->my_fmt_data); + if (doc_e->flags1 & DOCEF1_HAS_TERMINATOR) + doc_e->tag[i]='_'; + } else { + GetF(doc_e->tag,doc_e->aux_str,ptr,doc_e->my_fmt_data); + if (doc_e->flags1 & DOCEF1_HAS_TERMINATOR) + doc_e->tag[i]='_'; + return; + } + } else { + if (doc_e->flags1 & DOCEF1_CHECKED_COLLAPSED) + d=TRUE; + else + d=FALSE; + } + if (doc_e->flags1&DOCEF1_U8) + *ptr=d; + else if (doc_e->flags1&DOCEF1_U16) + *ptr(U16 *)=d; + else if (doc_e->flags1&DOCEF1_U32) + *ptr(U32 *)=d; + else + *ptr(I64 *)=d; + } +} + +U0 DocRemSoftNewLines(CDoc *doc=NULL,CDocEntry *doc_e=NULL) +{ + CDocEntry *doc_e2,*saved_ll=doc_e; + Bool unlock; + if (!doc) { + doc=DocCur; + if (!doc) return; + } + unlock=DocLock(doc); + if (!doc_e) doc_e=doc->root.next; + while (doc_e!=doc) { + doc_e2=doc_e->next; + if (doc_e->type_u8==DOCT_SOFT_NEW_LINE) { + if (doc->cur_entry==doc_e) { + doc->cur_entry=doc_e2; + doc->cur_data_col=doc->cur_entry->min_col; + } + DocEntryDel(doc,doc_e); + } else if (saved_ll && doc_e->type_u8==DOCT_NEW_LINE) + break; + doc_e=doc_e2; + } + if (unlock) + DocUnlock(doc); +} + +#help_index "Doc/Cmd Line (Typically);Cmd Line (Typically)" + +public I64 DocMax(I64 i=MAX_I32) +//Adjusts the size of the Doc buf. +//Normally, the cmd line deletes +//entries after a while. +{ + I64 result; + CDoc *doc=DocCur; + if (doc) { + result=doc->max_entries; + doc->max_entries=i; + return result; + } else + return 0; +} + +#help_index "Doc" +public CDoc *DocNew(CTask *task=NULL) +{ + CDoc *doc; + if (!task) task=Fs; + doc=CAlloc(sizeof(CDoc),task); + StrCpy(doc->filename.name,sys_temp_filename); + doc->find_replace=CAlloc(sizeof(CEdFindText),task); + doc->find_replace->scan_fwd=TRUE; + doc->find_replace->match_case=TRUE; + doc->find_replace->pmt=TRUE; + doc->left_click_link=&EdLeftClickLink; + doc->dollar_buf_size=84; + doc->dollar_buf=MAlloc(doc->dollar_buf_size,task); + doc->max_entries=MAX_I32; + doc->ww_lines_back=32; + doc->win_task=task; + doc->mem_task=task; + DocRst(doc,FALSE); + doc->doc_signature=DOC_SIGNATURE_VAL; + return doc; +} + +sys_clipboard_doc=DocNew; + +#help_index "Doc/Task" +public U0 DocQueIns(CDoc *doc,CDoc *pred) +{ + CDoc *succ; + Bool *old_preempt; + if (!doc) return; + old_preempt=Preempt(OFF); + succ=pred->next_doc; + doc->last_doc=pred; + doc->next_doc=succ; + pred->next_doc=doc; + succ->last_doc=doc; + doc->doc_in_que_signature=DOC_IN_QUE_SIGNATURE_VAL; + Preempt(old_preempt); +} + +public U0 DocQueInsRev(CDoc *doc,CDoc *succ) +{ + CDoc *pred; + Bool *old_preempt; + if (!doc) return; + old_preempt=Preempt(OFF); + pred=succ->last_doc; + doc->last_doc=pred; + doc->next_doc=succ; + pred->next_doc=doc; + succ->last_doc=doc; + doc->doc_in_que_signature=DOC_IN_QUE_SIGNATURE_VAL; + Preempt(old_preempt); +} + +public U0 DocQueRem(CDoc *doc) +{ + CDoc *succ,*pred; + Bool *old_preempt; + if (!doc) return; + old_preempt=Preempt(OFF); + doc->doc_in_que_signature=0; + succ=doc->next_doc; + pred=doc->last_doc; + pred->next_doc=succ; + succ->last_doc=pred; + Preempt(old_preempt); +} + +public CDoc *DocCur(CTask *task=NULL) +{ + CDoc *result; + if (!task) task=Fs; + result=task->last_doc; + if (result==(&task->next_doc)(U8 *)-offset(CDoc.next_doc) || + result->flags&DOCF_AUX_DOC || + result->doc_in_que_signature!=DOC_IN_QUE_SIGNATURE_VAL) + result=NULL; + return result; +} + +public CDoc *DocAux(CTask *task=NULL) +{ + CDoc *result; + if (!task) task=Fs; + result=task->next_doc; + if (result==(&task->next_doc)(U8 *)-offset(CDoc.next_doc) || + !(result->flags&DOCF_AUX_DOC) || + result->doc_in_que_signature!=DOC_IN_QUE_SIGNATURE_VAL) + result=NULL; + return result; +} + + +public CDoc *DocDblBufStart(CTask *task=NULL) +{ //See $LK,"::/SparrowOS/Demo/Spy.CPP.Z","FI:::/SparrowOS/Demo/Spy.CPP.Z"$ + CDoc *doc,*doc2; + Bool unlock_doc2,old_preempt=Preempt(OFF); + if (!task) task=Fs; + doc2=task->last_doc; + unlock_doc2=DocLock(doc2); //dont want change during winupdate, so lock DocCur$WW,0$ + doc=DocNew(task); + doc->win_task =doc2->win_task; + doc->start_text_attr=doc2->start_text_attr; + doc->max_entries=doc2->max_entries; + MemCpy(doc->find_replace,doc2->find_replace,sizeof(CEdFindText)); + doc->start_x =doc2->start_x; + doc->start_y =doc2->start_y; + MemCpy(&doc->filename,&doc2->filename,sizeof(CEdFileName)); + doc->left_click_link =doc2->left_click_link; + doc->right_click_link=doc2->right_click_link; + doc->user_put_data=doc2->user_put_data; + doc->user_put_key =doc2->user_put_key; + doc->user_put_s =doc2->user_put_s; + doc->parent_doc =doc2->parent_doc; + doc->desc[0](I64)=doc2->desc[0](I64); + doc->user_data =doc2->user_data; + doc->flags|=doc2->flags&DOCG_DBL_BUF_FLAGS | DOCF_DONT_SHOW; + DocQueIns(doc,task->last_doc); + if (unlock_doc2) + DocUnlock(doc2); + Preempt(old_preempt); + return doc; +} + +public Bool DocDblBufEnd(CTask *task=NULL) +{ //See $LK,"::/SparrowOS/Demo/Spy.CPP.Z","FI:::/SparrowOS/Demo/Spy.CPP.Z"$ + Bool okay=FALSE,old_preempt=Preempt(OFF); + CDoc *doc1,*doc2; + if (!task) task=Fs; + if (doc1=DocCur(task)) { + doc2=doc1->last_doc; + if (doc2!=(&task->next_doc)(U8 *)-offset(CDoc.next_doc) && + !(doc2->flags&DOCF_AUX_DOC) && + doc2->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL) { + doc2->flags|=DOCF_DONT_SHOW; + doc1->flags&=~DOCF_DONT_SHOW; + DocLock(doc2); + DocQueRem(doc2); + DocUnlock(doc2); + DocDel(doc2); + okay=TRUE; + } + } + Preempt(old_preempt); + return okay; +} + +public Bool DocDblBufSwap(CTask *task=NULL) +{ //See $LK,"::/SparrowOS/Demo/Spy.CPP.Z","FI:::/SparrowOS/Demo/Spy.CPP.Z"$ + Bool okay=FALSE,old_preempt=Preempt(OFF); + CDoc *doc1,*doc2; + if (!task) task=Fs; + if (doc1=DocCur(task)) { + doc2=doc1->last_doc; + if (doc2!=(&task->next_doc)(U8 *)-offset(CDoc.next_doc) && + !(doc2->flags&DOCF_AUX_DOC) && + doc2->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL) { + doc2->flags|=DOCF_DONT_SHOW; + doc1->flags&=~DOCF_DONT_SHOW; + DocLock(doc2); + DocQueRem(doc2); + DocUnlock(doc2); + DocRst(doc2,TRUE); + MemCpy(doc2->find_replace,doc1->find_replace,sizeof(CEdFindText)); + MemCpy(&doc2->filename,&doc1->filename,sizeof(CEdFileName)); + doc2->start_text_attr=doc1->start_text_attr; + doc2->max_entries =doc1->max_entries; + doc2->flags =doc1->flags&DOCG_DBL_BUF_FLAGS | doc2->flags&~DOCG_DBL_BUF_FLAGS; + doc2->left_click_link =doc1->left_click_link; + doc2->right_click_link=doc1->right_click_link; + doc2->user_put_data=doc1->user_put_data; + doc2->user_put_key =doc1->user_put_key; + doc2->user_put_s =doc1->user_put_s; + doc2->desc[0](I64)=doc1->desc[0](I64); + doc2->user_data =doc1->user_data; + DocQueIns(doc2,task->last_doc); + okay=TRUE; + } + } + Preempt(old_preempt); + return okay; +} +#help_index "Doc" diff --git a/SparrowOS/Adam/Doc/DocPlain.CPP b/SparrowOS/Adam/Doc/DocPlain.CPP new file mode 100644 index 0000000..07356b5 --- /dev/null +++ b/SparrowOS/Adam/Doc/DocPlain.CPP @@ -0,0 +1,1276 @@ +U0 PrsDocFlags(CLex *lx,I64 *flags1,I64 *flags2,U32 *type) +{ + I64 i; + Bool turn_on; + while (lx->token=='+' || lx->token=='-') { + turn_on= lx->token=='+'; + if (Lex(lx)==TK_IDENT) { + i=DefineMatch(lx->ident,"ST_DOC_FLAGS",LEF_EXACT); + if (i<0) + *type=DOCT_ERROR; + else if (i<64) { + BEqu(flags1,i,turn_on); + switch (i) { + case DOCEf1_SELECTED: + case DOCEf1_UNDERLINE: + case DOCEf1_INVERT: + case DOCEf1_BLINK: + BEqu(type,i,turn_on); + break; + } + } else + BEqu(flags2,i-64,turn_on); + Lex(lx); //skip flag + } + } +} + +I64 doc_dft_flags1[DOCT_NUM_TYPES]={ +//DOCT_TEXT +0, + +//DOCT_NEW_LINE +0, + +//DOCT_SOFT_NEW_LINE +0, + +//DOCT_CURSOR +0, + +//DOCT_TAB +0, + +//DOCT_CLEAR +0, + +//DOCT_PAGE_BREAK +0, + +//DOCT_DATA +DOCEF1_DATA_IS_PTR | DOCEF1_HAS_TERMINATOR | DOCEF1_AUX_STR | DOCEF1_U64, + +//DOCT_PAGE_LEN +0, + +//DOCT_LEFT_MARGIN +0, + +//DOCT_RIGHT_MARGIN +0, + +//DOCT_HEADER +0, + +//DOCT_FOOTER +0, + +//DOCT_INDENT +0, + +//DOCT_FOREGROUND +0, + +//DOCT_BACKGROUND +0, + +//DOCT_DFT_FOREGROUND +0, + +//DOCT_DFT_BACKGROUND +0, + +//DOCT_ALT_FOREGROUND +0, + +//DOCT_LINK_FOREGROUND +0, + +//DOCT_MACRO_FOREGROUND +0, + +//DOCT_ANCHOR_FOREGROUND +0, + +//DOCT_HIDDEN_FOREGROUND +0, + +//DOCT_TREE_FOREGROUND +0, + +//DOCT_USER_FOREGROUND +0, + +//DOCT_BINARY_FOREGROUND +0, + +//DOCT_KEYWORD_FOREGROUND +0, + +//DOCT_KEYWORD2_FOREGROUND +0, + +//DOCT_COMMENT_FOREGROUND +0, + +//DOCT_QUOTE_FOREGROUND +0, + +//DOCT_WORD_WRAP +0, + +//DOCT_UNDERLINE +0, + +//DOCT_INVERT +0, + +//DOCT_BLINK +0, + +//DOCT_SHIFTED_X +0, + +//DOCT_SHIFTED_Y +0, + +//DOCT_CURSOR_MOVEMENT +DOCEF1_LEFT_EXP | DOCEF1_RIGHT_EXP, + +//DOCT_ANCHOR +DOCEF1_AUX_STR, + +//DOCT_LINK +DOCEF1_LINK|DOCEF1_AUX_STR, + +//DOCT_BUTTON +DOCEF1_ESC | DOCEF1_LEFT_EXP | DOCEF1_HAS_BORDER, + +//DOCT_CHECK_BOX +DOCEF1_CHECK_COLLAPSABLE|DOCEF1_DATA_IS_PTR|DOCEF1_U8, + +//DOCT_MACRO +DOCEF1_ESC | DOCEF1_LEFT_MACRO, + +//DOCT_MENU_VAL +DOCEF1_ESC | DOCEF1_LEFT_EXP, + +//DOCT_HEX_ED +DOCEF1_DATA_IS_PTR | DOCEF1_ZERO_BASED, + +//DOCT_HIDE_START +DOCEF1_CHECKED_COLLAPSED|DOCEF1_CHECK_COLLAPSABLE, + +//DOCT_HIDE_END +0, + +//DOCT_TREE +DOCEF1_CHECKED_COLLAPSED|DOCEF1_CHECK_COLLAPSABLE|DOCEF1_TREE, + +//DOCT_SPRITE +DOCEF1_HAS_BIN, + +//DOCT_INS_BINARY +DOCEF1_HAS_BIN, + +//DOCT_INS_BINARY_TYPE +DOCEF1_HAS_BIN, + +//DOCT_INS_BINARY_SIZE +DOCEF1_HAS_BIN, + +//DOCT_BPT +0, + +//DOCT_SONG +DOCEF1_AUX_STR, + +//DOCT_HIGHLIGHT +0, + +//DOCT_LOCK_TO_PAGE +0, + +//DOCT_LOCK_TO_CENTER +0, + +//DOCT_HTML_IMG +0, + +//DOCT_HTML_VIDEO +0, + +//DOCT_HTML_CODE +0, + +//DOCT_ERROR +0}; + +I64 doc_dft_flags2[DOCT_NUM_TYPES]={ +//DOCT_TEXT +0, + +//DOCT_NEW_LINE +0, + +//DOCT_SOFT_NEW_LINE +0, + +//DOCT_CURSOR +0, + +//DOCT_TAB +0, + +//DOCT_CLEAR +0, + +//DOCT_PAGE_BREAK +0, + +//DOCT_DATA +0, + +//DOCT_PAGE_LEN +0, + +//DOCT_LEFT_MARGIN +0, + +//DOCT_RIGHT_MARGIN +0, + +//DOCT_HEADER +0, + +//DOCT_FOOTER +0, + +//DOCT_INDENT +0, + +//DOCT_FOREGROUND +0, + +//DOCT_BACKGROUND +0, + +//DOCT_DFT_FOREGROUND +0, + +//DOCT_DFT_BACKGROUND +0, + +//DOCT_ALT_FOREGROUND +0, + +//DOCT_LINK_FOREGROUND +0, + +//DOCT_MACRO_FOREGROUND +0, + +//DOCT_ANCHOR_FOREGROUND +0, + +//DOCT_HIDDEN_FOREGROUND +0, + +//DOCT_TREE_FOREGROUND +0, + +//DOCT_USER_FOREGROUND +0, + +//DOCT_BINARY_FOREGROUND +0, + +//DOCT_KEYWORD_FOREGROUND +0, + +//DOCT_KEYWORD2_FOREGROUND +0, + +//DOCT_COMMENT_FOREGROUND +0, + +//DOCT_QUOTE_FOREGROUND +0, + +//DOCT_WORD_WRAP +0, + +//DOCT_UNDERLINE +0, + +//DOCT_INVERT +0, + +//DOCT_BLINK +0, + +//DOCT_SHIFTED_X +0, + +//DOCT_SHIFTED_Y +0, + +//DOCT_CURSOR_MOVEMENT +0, + +//DOCT_ANCHOR +0, + +//DOCT_LINK +0, + +//DOCT_BUTTON +0, + +//DOCT_CHECK_BOX +0, + +//DOCT_MACRO +0, + +//DOCT_MENU_VAL +0, + +//DOCT_HEX_ED +0, + +//DOCT_HIDE_START +0, + +//DOCT_HIDE_END +0, + +//DOCT_TREE +0, + +//DOCT_SPRITE +0, + +//DOCT_INS_BINARY +0, + +//DOCT_INS_BINARY_TYPE +0, + +//DOCT_INS_BINARY_SIZE +0, + +//DOCT_BPT +0, + +//DOCT_SONG +0, + +//DOCT_HIGHLIGHT +0, + +//DOCT_LOCK_TO_PAGE +0, + +//DOCT_LOCK_TO_CENTER +0, + +//DOCT_HTML_IMG +0, + +//DOCT_HTML_VIDEO +0, + +//DOCT_HTML_CODE +0, + +//DOCT_ERROR +0}; + +I64 doc_dft_type_flags[DOCT_NUM_TYPES]={ +//DOCT_TEXT +0, + +//DOCT_NEW_LINE +0, + +//DOCT_SOFT_NEW_LINE +0, + +//DOCT_CURSOR +0, + +//DOCT_TAB +0, + +//DOCT_CLEAR +0, + +//DOCT_PAGE_BREAK +0, + +//DOCT_DATA +0, + +//DOCT_PAGE_LEN +0, + +//DOCT_LEFT_MARGIN +0, + +//DOCT_RIGHT_MARGIN +0, + +//DOCT_HEADER +0, + +//DOCT_FOOTER +0, + +//DOCT_INDENT +0, + +//DOCT_FOREGROUND +0, + +//DOCT_BACKGROUND +0, + +//DOCT_DFT_FOREGROUND +0, + +//DOCT_DFT_BACKGROUND +0, + +//DOCT_ALT_FOREGROUND +0, + +//DOCT_LINK_FOREGROUND +0, + +//DOCT_MACRO_FOREGROUND +0, + +//DOCT_ANCHOR_FOREGROUND +0, + +//DOCT_HIDDEN_FOREGROUND +0, + +//DOCT_TREE_FOREGROUND +0, + +//DOCT_USER_FOREGROUND +0, + +//DOCT_BINARY_FOREGROUND +0, + +//DOCT_KEYWORD_FOREGROUND +0, + +//DOCT_KEYWORD2_FOREGROUND +0, + +//DOCT_COMMENT_FOREGROUND +0, + +//DOCT_QUOTE_FOREGROUND +0, + +//DOCT_WORD_WRAP +0, + +//DOCT_UNDERLINE +0, + +//DOCT_INVERT +0, + +//DOCT_BLINK +0, + +//DOCT_SHIFTED_X +0, + +//DOCT_SHIFTED_Y +0, + +//DOCT_CURSOR_MOVEMENT +0, + +//DOCT_ANCHOR +0, + +//DOCT_LINK +DOCET_UNDERLINE, + +//DOCT_BUTTON +0, + +//DOCT_CHECK_BOX +0, + +//DOCT_MACRO +DOCET_UNDERLINE, + +//DOCT_MENU_VAL +DOCET_UNDERLINE, + +//DOCT_HEX_ED +0, + +//DOCT_HIDE_START +DOCET_UNDERLINE, + +//DOCT_HIDE_END +0, + +//DOCT_TREE +DOCET_UNDERLINE, + +//DOCT_SPRITE +0, + +//DOCT_INS_BINARY +0, + +//DOCT_INS_BINARY_TYPE +0, + +//DOCT_INS_BINARY_SIZE +0, + +//DOCT_BPT +0, + +//DOCT_SONG +0, + +//DOCT_HIGHLIGHT +0, + +//DOCT_LOCK_TO_PAGE +0, + +//DOCT_LOCK_TO_CENTER +0, + +//DOCT_HTML_IMG +0, + +//DOCT_HTML_VIDEO +0, + +//DOCT_HTML_CODE +0, + +//DOCT_ERROR +0 +}; + +I64 DocBinPtrRst(CDoc *doc,CDocEntry *doc_e) +{ + U8 *st,*st2; + CDoc *doc2; + CDocBin *tempb,*tempb2; + I64 i,bin_num=0; + if (doc_e->flags1&DOCEF1_HAS_BIN && doc_e->bin_ptr_link && StrLen(doc_e->bin_ptr_link)) { + bin_num=doc_e->bin_num; + st=StrNew(doc_e->bin_ptr_link); + st2=StrNew(st); + StrLastRem(st,",",st2); + i=A2I(st2); + if (i>0||*st2) { + doc2=DocRead(st); + if (i>0 && (tempb2=DocBinFindNum(doc2,i)) || + i==0 && (tempb2=DocBinFindTag(doc2,st2))) { + i=1; + if (bin_num>0) { + if (tempb=DocBinFindNum(doc,bin_num)) { + i=tempb->use_cnt; + DocBinDel(doc,tempb); + } + } else + bin_num=doc->cur_bin_num++; + tempb=MAllocIdentical(tempb2,doc->mem_task); + tempb->use_cnt=i; + tempb->data=MAllocIdentical(tempb2->data,doc->mem_task); + tempb->num=bin_num; + doc_e->bin_data=tempb; + if (Bt(doc_tag_types,doc_e->type_u8) && doc_e->tag && *doc_e->tag) + tempb->tag=StrNew(doc_e->tag,doc->mem_task); + else + tempb->tag=NULL; + QueIns(tempb,doc->bin_root.last); + } else + bin_num=0; + DocDel(doc2); + } else + bin_num=0; + Free(st2); + Free(st); + doc_e->bin_num=bin_num; + } + return bin_num; +} + +U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e) +{ //TODO: break strs + I64 i,j, + t1,f1,f2,flags1,flags2,type; + U8 *buf,*buf2; + + buf=StrNew(DefineSub(doc_e->type_u8,"ST_DOC_CMDS")); + if (doc_e->type_u8!=DOCT_ERROR) { + f1=doc_dft_flags1[doc_e->type_u8]; + f2=doc_dft_flags2[doc_e->type_u8]; + t1=doc_e->type_u8|doc_dft_type_flags[doc_e->type_u8]; + + flags1=doc_e->flags1&~(DOCG_BL_IV_UL|DOCEF1_SELECTED|DOCEF1_HIGHLIGHT|DOCEF1_WORD_WRAP|DOCEF1_LOCK_TO_PAGE|DOCEF1_LOCK_TO_CENTER|DOCEF1_SKIP|DOCEF1_FILTER_SKIP); + flags2=doc_e->flags2; + for (i=0;itype&~DOCET_SELECTED; + for (i=DOCEt_BLINK;i<=DOCEt_UNDERLINE;i++) + if (Bt(&t1,i)!=Bt(&type,i)) { + if (Bt(&type,i)) + buf=StrAdd(buf,"+"); + else + buf=StrAdd(buf,"-"); + buf=StrAdd(buf,DefineSub(i,"ST_DOC_FLAGS")); + } + buf=StrAdd(buf,","); + nobound_switch (doc_e->type_u8) { + case DOCT_TEXT: + case DOCT_LINK: + case DOCT_ANCHOR: + case DOCT_MENU_VAL: + case DOCT_BUTTON: + case DOCT_CHECK_BOX: + case DOCT_TREE: + case DOCT_SPRITE: + case DOCT_INS_BINARY: + case DOCT_INS_BINARY_TYPE: + case DOCT_INS_BINARY_SIZE: + case DOCT_SONG: + case DOCT_HTML_IMG: + case DOCT_HTML_VIDEO: + case DOCT_HTML_CODE: + if (i==DOCT_CHECK_BOX) + buf2=doc_e->tag+4; + else if (doc_e->flags1 & DOCEF1_TREE) + buf2=doc_e->tag+3; + else + buf2=doc_e->tag; + buf2=MSPrintF("%s\"%$$Q\",",buf,buf2); + Free(buf); buf=buf2; + break; + case DOCT_DATA: + buf2=MSPrintF("%s%d,",buf,doc_e->len); + Free(buf); buf=buf2; + break; + case DOCT_HEX_ED: + buf2=MSPrintF("%s%d,",buf,doc_e->len); + Free(buf); buf=buf2; + buf2=MSPrintF("%s%d,",buf,doc_e->hex_ed_width); + Free(buf); buf=buf2; + break; + case DOCT_PAGE_LEN: + case DOCT_LEFT_MARGIN: + case DOCT_RIGHT_MARGIN: + case DOCT_HEADER: + case DOCT_FOOTER: + case DOCT_INDENT: + case DOCT_FOREGROUND: + case DOCT_BACKGROUND: + case DOCT_DFT_FOREGROUND: + case DOCT_DFT_BACKGROUND: + case DOCT_ALT_FOREGROUND: + case DOCT_LINK_FOREGROUND: + case DOCT_MACRO_FOREGROUND: + case DOCT_ANCHOR_FOREGROUND: + case DOCT_HIDDEN_FOREGROUND: + case DOCT_TREE_FOREGROUND: + case DOCT_USER_FOREGROUND: + case DOCT_BINARY_FOREGROUND: + case DOCT_KEYWORD_FOREGROUND: + case DOCT_KEYWORD2_FOREGROUND: + case DOCT_COMMENT_FOREGROUND: + case DOCT_QUOTE_FOREGROUND: + case DOCT_WORD_WRAP: + case DOCT_HIGHLIGHT: + case DOCT_LOCK_TO_PAGE: + case DOCT_LOCK_TO_CENTER: + case DOCT_UNDERLINE: + case DOCT_INVERT: + case DOCT_BLINK: + case DOCT_SHIFTED_X: + case DOCT_SHIFTED_Y: + if (doc_e->attr!=DOC_DFT) { + buf2=MSPrintF("%s%d,",buf,doc_e->attr); + Free(buf); buf=buf2; + } + case DOCT_NUM_TYPES-1: //nobound_switch + break; + } + flags1=doc_e->flags1& (DOCEF1_SCROLLING_X|DOCEF1_SHIFTED_X|DOCEF1_SCROLLING_Y| + DOCEF1_AUX_STR|DOCEF1_LEFT_EXP|DOCEF1_LEFT_MACRO| + DOCEF1_HAS_BIN|DOCEF1_RIGHT_EXP|DOCEF1_RIGHT_MACRO| + DOCEF1_WIDTH|DOCEF1_HEIGHT|DOCEF1_DEFINE|DOCEF1_HTML_LINK); + while (flags1) { + j=Bsf(flags1); + Btr(&flags1,j); + nobound_switch (j) { + case DOCEf1_SCROLLING_X: + buf2=MSPrintF("%s%d",buf,doc_e->scroll_len); + Free(buf); buf=buf2; + break; + case DOCEf1_SHIFTED_X: + j=doc_e->type.u16[1]&0x1F; + if (j&0x10) j|=0xFFFFFFF0; + buf2=MSPrintF("%s%d",buf,j); + Free(buf); buf=buf2; + break; + case DOCEf1_SHIFTED_Y: + j=doc_e->type>>21 &0x1F; + if (j&0x10) j|=0xFFFFFFF0; + buf2=MSPrintF("%s%d",buf,j); + Free(buf); buf=buf2; + break; + case DOCEf1_AUX_STR: + buf2=MSPrintF("%s\"%$$Q\"",buf,doc_e->aux_str); + Free(buf); buf=buf2; + break; + case DOCEf1_LEFT_EXP: + buf2=MSPrintF("%s%d",buf,doc_e->left_exp); + Free(buf); buf=buf2; + break; + case DOCEf1_LEFT_MACRO: + buf2=MSPrintF("%s\"%$$Q\"",buf,doc_e->left_macro); + Free(buf); buf=buf2; + break; + case DOCEf1_RIGHT_EXP: + buf2=MSPrintF("%s%d",buf,doc_e->right_exp); + Free(buf); buf=buf2; + break; + case DOCEf1_RIGHT_MACRO: + buf2=MSPrintF("%s\"%$$Q\"",buf,doc_e->right_macro); + Free(buf); buf=buf2; + break; + case DOCEf1_HAS_BIN: + buf2=MSPrintF("%s%d",buf,doc_e->bin_num); + Free(buf); buf=buf2; + break; + case DOCEf1_WIDTH: + buf2=MSPrintF("%s%d",buf,doc_e->width); + Free(buf); buf=buf2; + break; + case DOCEf1_HEIGHT: + buf2=MSPrintF("%s%d",buf,doc_e->height); + Free(buf); buf=buf2; + break; + case DOCEf1_DEFINE: + buf2=MSPrintF("%s\"%$$Q\"",buf,doc_e->define_str); + Free(buf); buf=buf2; + break; + case DOCEf1_HTML_LINK: + buf2=MSPrintF("%s\"%$$Q\"",buf,doc_e->html_link); + Free(buf); buf=buf2; + break; +#assert DOCEf1_HTML_LINK==DOCEf1_NUM_FLAGS-1 //nobound_switch + } + buf=StrAdd(buf,","); + } + flags2=doc_e->flags2&DOCEF2_BIN_PTR_LINK; + while (flags2) { + j=Bsf(flags2); + Btr(&flags2,j); + nobound_switch (j) { + case DOCEf2_BIN_PTR_LINK: + buf2=MSPrintF("%s\"%$$Q\"",buf,doc_e->bin_ptr_link); + Free(buf); buf=buf2; + break; +#assert DOCEf2_BIN_PTR_LINK==DOCEf2_NUM_FLAGS-1 //nobound_switch + } + buf=StrAdd(buf,","); + } + buf[StrLen(buf)-1]=0; //Kill last comma + } + buf2=StrNew(buf,doc->mem_task); //exact allocation + Free(buf); + return buf2; +} + + +CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) +{//This uses $LK,"Lex","MN:Lex"$() to parse a string and make Doc entries. + I64 i,j,flags1,flags2; + U8 *ptr,*st2; + CDocEntry *doc_e=NULL; + CLex *lx=LexNew(st,LF_DONT_FREE_BUF); + Lex(lx); + if (lx->token==TK_IDENT) { + i=DefineMatch(lx->ident,"ST_DOC_CMDS"); + if (i<0) + i=DOCT_ERROR; + Lex(lx); //skip cmd code + doc_e=CAlloc(sizeof(CDocEntry),doc->mem_task); + doc_e->type=i; + doc_e->flags1=doc_dft_flags1[i]; + doc_e->flags2=doc_dft_flags2[i]; + doc_e->type|=doc_dft_type_flags[i]; + PrsDocFlags(lx,&doc_e->flags1,&doc_e->flags2,&doc_e->type); + if (lx->token==',') + Lex(lx); + nobound_switch (i) { + case DOCT_TEXT: + case DOCT_LINK: + case DOCT_ANCHOR: + case DOCT_MENU_VAL: + case DOCT_BUTTON: + case DOCT_CHECK_BOX: + case DOCT_TREE: + case DOCT_SPRITE: + case DOCT_INS_BINARY: + case DOCT_INS_BINARY_TYPE: + case DOCT_INS_BINARY_SIZE: + case DOCT_SONG: + case DOCT_HTML_IMG: + case DOCT_HTML_VIDEO: + case DOCT_HTML_CODE: + if (lx->token==TK_STR) { + st2=LexExtStr(lx); + if (i==DOCT_CHECK_BOX) { + st=MSPrintF("[X] %s",st2); + Free(st2); + doc_e->min_col=1; + } else if (doc_e->flags1 & DOCEF1_TREE) { + st=MSPrintF("+] %s",st2); + Free(st2); + doc_e->min_col=1; + } else + st=st2; + doc_e->tag=StrNew(st,doc->mem_task); + Free(st); + } else { + if (DOCT_SPRITE<=i<=DOCT_INS_BINARY_SIZE || + i==DOCT_SONG) + doc_e->tag=StrNew("",doc->mem_task); + else { + doc_e->tag=NULL; + doc_e->type=DOCT_ERROR; + } + } + break; + case DOCT_HIDE_START: + doc_e->tag=StrNew("<-",doc->mem_task); + doc_e->min_col=1; + break; + case DOCT_HIDE_END: + doc_e->tag=StrNew(">",doc->mem_task); + break; + case DOCT_DATA: + doc_e->flags1|=DOCEF1_AUX_STR; //don't allow switched off + doc_e->len=Expression(lx); + break; + case DOCT_HEX_ED: + doc_e->len=Expression(lx); + if (lx->token==',') + Lex(lx); + doc_e->hex_ed_width=Expression(lx); + break; + case DOCT_PAGE_LEN: + case DOCT_LEFT_MARGIN: + case DOCT_RIGHT_MARGIN: + case DOCT_HEADER: + case DOCT_FOOTER: + case DOCT_INDENT: + case DOCT_FOREGROUND: + case DOCT_BACKGROUND: + case DOCT_DFT_FOREGROUND: + case DOCT_DFT_BACKGROUND: + case DOCT_ALT_FOREGROUND: + case DOCT_LINK_FOREGROUND: + case DOCT_MACRO_FOREGROUND: + case DOCT_ANCHOR_FOREGROUND: + case DOCT_HIDDEN_FOREGROUND: + case DOCT_TREE_FOREGROUND: + case DOCT_USER_FOREGROUND: + case DOCT_BINARY_FOREGROUND: + case DOCT_KEYWORD_FOREGROUND: + case DOCT_KEYWORD2_FOREGROUND: + case DOCT_COMMENT_FOREGROUND: + case DOCT_QUOTE_FOREGROUND: + case DOCT_WORD_WRAP: + case DOCT_HIGHLIGHT: + case DOCT_LOCK_TO_PAGE: + case DOCT_LOCK_TO_CENTER: + case DOCT_UNDERLINE: + case DOCT_INVERT: + case DOCT_BLINK: + case DOCT_SHIFTED_X: + case DOCT_SHIFTED_Y: + if (!lx->token) + doc_e->attr=DOC_DFT; + else + doc_e->attr=Expression(lx); + break; + case DOCT_ERROR: + doc_e->flags1=0; + doc_e->flags2=0; + doc_e->type=DOCT_ERROR; +#assert DOCT_ERROR==DOCT_NUM_TYPES-1 +// case DOCT_NUM_TYPES-1: //nobound_switch + break; + } + + flags1=doc_e->flags1& (DOCEF1_SCROLLING_X|DOCEF1_SHIFTED_X|DOCEF1_SCROLLING_Y| + DOCEF1_AUX_STR|DOCEF1_LEFT_EXP|DOCEF1_LEFT_MACRO| + DOCEF1_HAS_BIN|DOCEF1_RIGHT_EXP|DOCEF1_RIGHT_MACRO| + DOCEF1_WIDTH|DOCEF1_HEIGHT|DOCEF1_DEFINE|DOCEF1_HTML_LINK); + while (flags1) { + j=Bsf(flags1); + Btr(&flags1,j); + while (lx->token==',') + Lex(lx); + nobound_switch (j) { //TODO: Might check for expression errors + case DOCEf1_SCROLLING_X: + doc_e->scroll_len=Expression(lx); + break; + case DOCEf1_SHIFTED_X: + doc_e->type|=(Expression(lx) & 0x1F)<<16; + break; + case DOCEf1_SHIFTED_Y: + doc_e->type|=(Expression(lx) & 0x1F)<<21; + break; + case DOCEf1_AUX_STR: + if (lx->token==TK_STR) { + st2=LexExtStr(lx); + doc_e->aux_str=StrNew(st2,doc->mem_task); + Free(st2); + if (i==DOCT_MACRO && !doc_e->tag) + doc_e->tag=StrNew(doc_e->aux_str,doc->mem_task); + //$AN,"Anchor","DataTagWidth"$ + if (i==DOCT_DATA) { + if (ptr=StrStr(doc_e->aux_str,":")) + doc_e->min_col=ptr-doc_e->aux_str+1; + doc_e->tag=MAlloc(doc_e->len+doc_e->min_col+2,doc->mem_task); //+2 because "_\0" + } + } else + doc_e->type=DOCT_ERROR; + break; + case DOCEf1_LEFT_EXP: + doc_e->left_exp=Expression(lx); + break; + case DOCEf1_LEFT_MACRO: + if (lx->token==TK_STR) { + st2=LexExtStr(lx); + doc_e->left_macro=StrNew(st2,doc->mem_task); + Free(st2); + if (i==DOCT_MACRO && !doc_e->tag) + doc_e->tag=StrNew(doc_e->left_macro,doc->mem_task); + } else + doc_e->type=DOCT_ERROR; + break; + case DOCEf1_RIGHT_EXP: + doc_e->right_exp=Expression(lx); + break; + case DOCEf1_RIGHT_MACRO: + if (lx->token==TK_STR) { + st2=LexExtStr(lx); + doc_e->right_macro=StrNew(st2,doc->mem_task); + Free(st2); + if (i==DOCT_MACRO && !doc_e->tag) + doc_e->tag=StrNew(doc_e->right_macro,doc->mem_task); + } else + doc_e->type=DOCT_ERROR; + break; + case DOCEf1_HAS_BIN: + if (!lx->token) + doc_e->bin_num=0; + else + doc_e->bin_num=Expression(lx); + break; + case DOCEf1_WIDTH: + doc_e->width=Expression(lx); + break; + case DOCEf1_HEIGHT: + doc_e->height=Expression(lx); + break; + case DOCEf1_DEFINE: + if (lx->token==TK_STR) { + st2=LexExtStr(lx); + doc_e->define_str=StrNew(st2,doc->mem_task); + Free(st2); + } else + doc_e->type=DOCT_ERROR; + break; + case DOCEf1_HTML_LINK: + if (lx->token==TK_STR) { + st2=LexExtStr(lx); + doc_e->html_link=StrNew(st2,doc->mem_task); + Free(st2); + } else + doc_e->type=DOCT_ERROR; + break; +#assert DOCEf1_HTML_LINK==DOCEf1_NUM_FLAGS-1 //nobound_switch + } + } + flags2=doc_e->flags2&DOCEF2_BIN_PTR_LINK; + while (flags2) { + j=Bsf(flags2); + Btr(&flags2,j); + while (lx->token==',') + Lex(lx); + nobound_switch (j) { //TODO: Might check for expression errors + case DOCEf2_BIN_PTR_LINK: + if (lx->token==TK_STR) { + st2=LexExtStr(lx); + doc_e->bin_ptr_link=StrNew(st2,doc->mem_task); + Free(st2); + if (!DocBinPtrRst(doc,doc_e)) + doc_e->type=DOCT_ERROR; + } else + doc_e->type=DOCT_ERROR; + break; +#assert DOCEf2_BIN_PTR_LINK==DOCEf2_NUM_FLAGS-1 //nobound_switch + } + } + } else if (!doc_e) { + doc_e=CAlloc(sizeof(CDocEntry),doc->mem_task); + doc_e->type=DOCT_ERROR; + } + LexDel(lx); + return doc_e; +} + +public U0 DocIns(CDoc *doc,CDocEntry *doc_e) +{ + U8 *dst; + Bool unlock=DocLock(doc); + CDocEntry *doc_ce=doc->cur_entry,*doc_ne; + + doc_e->x=doc_ce->x; + doc_e->y=doc_ce->y; + doc_e->page_line_num=doc_ce->page_line_num; + doc_e->settings=NULL; + if (doc->cur_data_col>0 && + doc_ce->type_u8==DOCT_TEXT && + !(doc_ce->flags1&(DOCEF1_TAG_CB|DOCEF1_DEFINE|DOCEF1_HTML_LINK)) && + !(doc_ce->flags2&DOCEF2_BIN_PTR_LINK) && + doc->cur_data_colmax_col) { + doc_ne=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_ne->type=DOCT_TEXT|doc_ce->type&0xFFFFFF00; + doc_ne->x=doc_ce->x; + doc_ne->y=doc_ce->y; + doc_ne->page_line_num=doc_ce->page_line_num; + doc_ne->flags1=doc_ce->flags1; + doc_ne->flags2=doc_ce->flags2; + dst=doc_ce->tag+doc->cur_data_col; + doc_ne->tag=StrNew(dst,doc->mem_task); + *dst=0; + doc_ce->max_col=doc->cur_data_col; + QueIns(doc_ne,doc_ce); + doc->cur_data_col=0; + doc_ce=doc_ne; + doc_ce->max_col=StrLen(doc_ce->tag); + } + if (doc_ce->type_u8==DOCT_TEXT && doc->cur_data_col>=doc_ce->max_col) { + QueIns(doc_e,doc_ce); + doc->cur_entry=doc_e->next; + } else { + QueIns(doc_e,doc_ce->last); + doc->cur_entry=doc_ce; + } + doc->cur_data_col=doc->cur_entry->min_col; + DocRemSoftNewLines(doc,doc->cur_entry); + if (unlock) + DocUnlock(doc); +} + + +#help_index "Doc/Output" +public CDocEntry *DocPutS(CDoc *doc,U8 *st) +{ //Does not handle partial Doc entries + //Returns last newly created dollar-sign CDocEntry. + U8 ch,*ptr=st,*ptr2,*st2,*ptr3,*ptr4,*src, + *char_bitmap; + Bool unlock; + I64 j; + CDocEntry *doc_e=NULL,*result=NULL,*doc_ce; + if (!st || !doc || doc->doc_signature!=DOC_SIGNATURE_VAL) + return NULL; + unlock=DocLock(doc); + if (doc->flags & DOCF_PLAIN_TEXT_WITH_TABS) + char_bitmap=zero_cr_nl_cursor_bitmap; + else if (doc->flags & DOCF_PLAIN_TEXT) + char_bitmap=zero_tab_ff_cr_nl_cursor_bitmap; + else + char_bitmap=zero_tab_ff_cr_nl_cursor_dollar_bitmap; + doc->recalc_start=doc; //TODO:This might be optimized + doc_ce=doc->cur_entry; + while (*ptr) { + ptr2=ptr; + do ch=*ptr++; + while (!Bt(char_bitmap,ch) || ch==CH_CURSOR && doc->flags&DOCF_NO_CURSOR); + ptr--; + if (!ch) { + if (j=ptr-ptr2) { + doc_e=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_e->type=DOCT_TEXT | doc->settings_root.dft_text_attr << 8; + if (doc->flags & DOCF_NO_CURSOR) { + src=MAlloc(j+1); + MemCpy(src,ptr2,j+1); + StrUtil(src,SUF_REM_CTRL_CHARS); + j=StrLen(src); + } else + src=ptr2; + doc_e->tag=MAlloc(j+1,doc->mem_task); + MemCpy(doc_e->tag,src,j+1); + doc_e->max_col=j; + DocIns(doc,doc_e); + if (doc->flags & DOCF_NO_CURSOR) + Free(src); + } + } else { + if (j=ptr-ptr2) { + *ptr=0; + doc_e=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_e->type=DOCT_TEXT | doc->settings_root.dft_text_attr << 8; + if (doc->flags & DOCF_NO_CURSOR) { + src=MAlloc(j+1); + MemCpy(src,ptr2,j+1); + ptr3=src; + ptr4=src; + while (*ptr3) + if (*ptr3!=CH_CURSOR) + *ptr4++=*ptr3++; + else + ptr3++; + *ptr4=0; + j=ptr4-src; + } else + src=ptr2; + doc_e->tag=MAlloc(j+1,doc->mem_task); + MemCpy(doc_e->tag,src,j+1); + doc_e->max_col=j; + DocIns(doc,doc_e); + if (doc->flags & DOCF_NO_CURSOR) + Free(src); + *ptr=ch; + } + switch (ch) { + case CH_CURSOR: + doc_e=CAlloc(sizeof(CDocEntryBase),doc->mem_task); + doc_e->type=DOCT_CURSOR | doc->settings_root.dft_text_attr << 8; + DocIns(doc,doc_e); + ptr++; + break; + case CH_FORM_FEED: + doc_e=CAlloc(sizeof(CDocEntryBase),doc->mem_task); + doc_e->type=DOCT_PAGE_BREAK | doc->settings_root.dft_text_attr << 8; + DocIns(doc,doc_e); + ptr++; + break; + case CH_TAB: + doc_e=CAlloc(sizeof(CDocEntryBase),doc->mem_task); + doc_e->type=DOCT_TAB | doc->settings_root.dft_text_attr << 8; + DocIns(doc,doc_e); + ptr++; + break; + case '$$': + ptr++; //skip first dollar + ptr2=ptr; + while (*ptr && *ptr!='$$') + ptr++; + if (*ptr) { + *ptr=0; //zero second dollar + if (ptr-1==ptr2 && *ptr2==CH_CURSOR) { + doc_e=CAlloc(sizeof(CDocEntryBase),doc->mem_task); + doc_e->type=DOCT_CURSOR | doc->settings_root.dft_text_attr << 8; + DocIns(doc,doc_e); + ptr2++; + } + if (ptr==ptr2) { + doc_e=CAlloc(sizeof(CDocEntryBase)+sizeof(U8 *),doc->mem_task); + doc_e->type=DOCT_TEXT | doc->settings_root.dft_text_attr << 8; + doc_e->max_col=1; + if (doc->flags & DOCF_DBL_DOLLARS) + doc_e->tag=StrNew("$$$$",doc->mem_task); + else + doc_e->tag=StrNew("$$",doc->mem_task); + DocIns(doc,doc_e); + } else { + st2=MAlloc(ptr-ptr2+1); + ptr3=ptr2; + ptr4=st2; + while (ch=*ptr3++) { + if (ch==CH_CURSOR) { + doc_e=CAlloc(sizeof(CDocEntryBase),doc->mem_task); + doc_e->type=DOCT_CURSOR | doc->settings_root.dft_text_attr << 8; + DocIns(doc,doc_e); + } else if (ch==CH_FORM_FEED) { + doc_e=CAlloc(sizeof(CDocEntryBase),doc->mem_task); + doc_e->type=DOCT_PAGE_BREAK | doc->settings_root.dft_text_attr << 8; + DocIns(doc,doc_e); + } else + *ptr4++=ch; + } + *ptr4=0; + if (doc_e=PrsDollarCmd(doc,st2)) { + result=doc_e; + DocIns(doc,doc_e); + } + Free(st2); + } + *ptr++='$$'; + } + break; + default: + doc_e=CAlloc(sizeof(CDocEntryBase),doc->mem_task); + doc_e->type=DOCT_NEW_LINE | doc->settings_root.dft_text_attr << 8; + DocIns(doc,doc_e); + if (ch==CH_CARRIAGE_RETURN) + while (*ptr==CH_CARRIAGE_RETURN) + ptr++; + if (*ptr==CH_NEW_LINE) + ptr++; + while (*ptr==CH_CARRIAGE_RETURN) + ptr++; + } + } + } + if (unlock) + DocUnlock(doc); + return result; +} + + +public CDocEntry *DocPrintF(CDoc *doc,U8 *src,...) +{ + U8 *buf=SPrintFJoin(NULL,src,argc,argv); + CDocEntry *result=DocPutS(doc,buf); + Free(buf); + return result; +} + +#help_index "Doc" + diff --git a/SparrowOS/Adam/Doc/DocPopUp.CPP b/SparrowOS/Adam/Doc/DocPopUp.CPP new file mode 100644 index 0000000..386278c --- /dev/null +++ b/SparrowOS/Adam/Doc/DocPopUp.CPP @@ -0,0 +1,880 @@ +public I64 DocEntryRun(CDoc *doc,CDocEntry *doc_e,Bool exited) +{ //sometimes returns locked, sometimes unlocked + U8 ch=doc->cmd_U8,*st; + I64 result=-1; + DocLock(doc); + if (!exited) { + if (doc_e->flags1 & DOCEF1_ESC) { + Msg(MSG_KEY_DOWN,CH_ESC,0,1<flags1 & DOCEF1_QUIT) { + Msg(MSG_KEY_DOWN,CH_SHIFT_ESC,0,1<flags1 & DOCEF1_CHECK_COLLAPSABLE) + doc_e->flags1^=DOCEF1_CHECKED_COLLAPSED; + } + doc->best_d=MAX_I64; + try { + if (ch==CH_SPACE) { + if (doc_e->flags1 & DOCEF1_LINK && doc->left_click_link) + result=(*doc->left_click_link)(doc,doc_e); + if (doc_e->flags1 & DOCEF1_LEFT_EXP) { + result=doc_e->left_exp; + Msg(MSG_CMD,result,0,1<flags1 & DOCEF1_LEFT_CB && doc_e->left_cb) { + DocUnlock(doc); + result=(*doc_e->left_cb)(doc,doc_e); + Msg(MSG_CMD,result,0,1<flags1 & DOCEF1_LEFT_MACRO) { + if (doc_e->flags1 & DOCEF1_POPUP) { + st=StrNew(doc_e->left_macro); + DocUnlock(doc); + PopUp(st,Fs); + Free(st); + } else { + if (doc_e->flags1 & DOCEF1_LEFT_AUTO) + AutoStr("%s",doc_e->left_macro); + else + Auto("%s",doc_e->left_macro); + } + } + } else if (ch==CH_NEW_LINE) { + 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) { + result=doc_e->right_exp; + Msg(MSG_CMD,result,0,1<flags1 & DOCEF1_RIGHT_CB && doc_e->right_cb) { + DocUnlock(doc); + result=(*doc_e->right_cb)(doc,doc_e); + Msg(MSG_CMD,result,0,1<flags1 & DOCEF1_RIGHT_MACRO) { + if (doc_e->flags1 & DOCEF1_POPUP) { + st=StrNew(doc_e->right_macro); + DocUnlock(doc); + PopUp(st,Fs); + Free(st); + } else { + if (doc_e->flags1 & DOCEF1_RIGHT_AUTO) + AutoStr("%s",doc_e->right_macro); + else + Auto("%s",doc_e->right_macro); + } + } + } + } + catch + DocBottom(doc); + doc->cmd_U8=CH_SPACE; + return result; +} + +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[1]=0; + return st; +} + +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[1]=0; + return st; +} + +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[1]=0; + return st; +} + +U8 *EdMoreCB(CDoc *,CDocEntry *doc_e,CTask *mem_task) +{ + CDoc *doc=doc_e->user_data; + U8 *st=MAlloc(8,mem_task); + if (doc->flags&DOCF_MORE) + StrCpy(st,"MoreÄ"); + else + StrCpy(st,"ÄÄÄÄÄ"); + return st; +} + +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[1]=0; + return st; +} + +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[1]=0; + return st; +} + +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[1]=0; + return st; +} + +U8 *EdDollarTypeCB(CDoc *,CDocEntry *doc_e,CTask *mem_task) +{ + CDoc *doc=doc_e->user_data; + U8 *src=DefineSub(doc->cur_entry->type_u8,"ST_DOC_CMDS"), + *st=CAlloc(8,mem_task); + if (doc->cur_entry==doc) + src="EOF"; + else if (!src) + src="ERR"; + SPrintF(st,"%-3ts",src); + return st; +} + +public I64 DocGetKey(I64 *_sc=NULL) +{ + I64 ch,sc; + Bool cont,old_preempt=IsPreempt; + do { + ch=GetKey(&sc,TRUE); + DocRecalc(DocCur); + cont=FALSE; + if (ch==CH_ESC || ch==CH_SHIFT_ESC) { //Check for exit filter mode + Preempt(OFF); + if (DocCur && DocCur->find_replace->filter_lines) { + EdUndoFilter(DocCur); + cont=TRUE; + } + Preempt(old_preempt); + } + } while (cont); + if (_sc) *_sc=sc; + return ch; +} + +#help_index "Doc/Output" +public Bool View() +{ + I64 ch; + do ch=DocGetKey; + while (ch!=CH_ESC && ch!=CH_SHIFT_ESC); + return ch==CH_ESC; +} + +#help_index "Doc" +public Bool DocDo(CDoc *doc,I64 doc_flags=0) +{ + CDoc *old_doc=DocCur,*old_aux_doc=DocAux,*aux; + CDocEntry *doc_e; + I64 old_attr=Fs->text_attr, + old_top =Fs->win_top, old_bottom=Fs->win_bottom, + old_left=Fs->win_left,old_right =Fs->win_right; + Bool result,unlock,old_preempt; + + if (doc_flags&DOF_WIN_MAX) + WinMax; + + unlock=DocLock(doc); + doc->win_task=Fs; + aux=DocNew; + aux->flags|=DOCF_AUX_DOC; + aux->settings_root.dft_text_attr=Fs->border_attr; + DocPutS(aux,"$$CM+TY+LX+NC,0,-1$$"); + if (Bt(&Fs->display_flags,DISPLAYf_HAS_CLOSE_WIN)) + DocPutS(aux,"$$TX+RX+BD,\"[X]\"$$"); + DocPutS(aux,"$$BK,1$$$$TX+LX+BD,\"MENU\"$$$$BK,0$$"); + + doc_e=DocPutS(aux,"$$DA-T-P+BD+RD+CX+SCX+IV,256,\"%s...\",16$$"); + doc_e->data=&doc->filename.name; + DocDataFmt(doc_e); + + if (doc->flags & DOCF_ALLOW_UNDO) { + DocPutS(aux,"$$CM+BY+LX+NC,1,1$$"); + doc_e=DocPutS(aux,"$$DA+BD+RD-T,32,\"Undo:%03d\"$$\n"); + doc_e->data=&doc->undo_cnt; + DocDataFmt(doc_e); + } + + DocPutS(aux,"$$CM+BY+RX+NC,-30,1$$"); + doc_e=DocPutS(aux,"$$TX+BD+TC,\" \"$$"); + doc_e->user_data=doc; + doc_e->tag_cb=&EdMoreCB; + doc_e=DocPutS(aux,"$$TX+BD+TC,\" \"$$"); + doc_e->user_data=doc; + doc_e->tag_cb=&EdDollarTypeCB; + doc_e=DocPutS(aux,"$$TX+BD+TC,\" \"$$"); + doc_e->user_data=doc; + doc_e->tag_cb=&EdFilterCB; + doc_e=DocPutS(aux,"$$TX+BD+TC,\" \"$$"); + doc_e->user_data=doc; + doc_e->tag_cb=&EdOverStrikeCB; + doc_e=DocPutS(aux,"$$TX+BD+TC,\" \"$$"); + doc_e->user_data=doc; + doc_e->tag_cb=&EdDollarCB; + doc_e=DocPutS(aux,"$$DA+BD+RD-T,32,\"Line:%04d \"$$"); + doc_e->data=&doc->line; + DocDataFmt(doc_e); + doc_e=DocPutS(aux,"$$DA+BD+RD-T,32,\"Col:%04d\"$$\n"); + doc_e->data=&doc->col; + DocDataFmt(doc_e); + + DocRecalc(aux); + DocRecalc(doc); + if (!(doc_flags&DOF_DONT_HOME)) + DocHome(doc); + old_preempt=Preempt(OFF); + DocQueRem(old_aux_doc); + DocQueInsRev(aux,Fs->next_doc); + if (doc!=old_doc) + doc->parent_doc=old_doc; + DocQueRem(old_doc); + DocQueIns(doc,Fs->last_doc); + Fs->text_attr=doc->settings_root.dft_text_attr; + LBts(&Fs->display_flags,DISPLAYf_SHOW); + WinZBufUpdate; + if (doc_flags&DOF_MIN_SIZE) + doc->flags|=DOCF_MIN_SIZE; + + Preempt(old_preempt); + DocUnlock(doc); + WinMgrSync(2,TRUE); + if (doc->flags&DOCF_MIN_SIZE) + WinMgrSync(2,TRUE); + result=View; + + Preempt(OFF); + DocLock(doc); + if (result) { + doc_e=doc->root.next; + while (doc_e!=doc) { + if (doc_e->type_u8==DOCT_DATA || doc_e->type_u8==DOCT_CHECK_BOX) + DocDataGet(doc_e); + doc_e=doc_e->next; + } + } + if (unlock) + DocUnlock(doc); + + DocQueRem(aux); + DocQueInsRev(old_aux_doc,Fs->next_doc); + DocDel(aux); + DocQueRem(doc); + 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; + } + Preempt(old_preempt); + return result; +} + + +#help_index "Doc/Input" +public Bool DocFormDo(U8 *D,U8 *class_name, + I64 doc_flags=0,U8 *header=NULL,U8 *footer=NULL) +//Supply a class name that has fmtstr definitions +//and this routine will allow user input. +{ + CMemberList *ml; + CDocEntry *doc_e; + U8 *fmtstr; + CHashClass *tempc; + CDoc *doc; + Bool result=FALSE; + if (!(tempc=HashFind(class_name,Fs->hash_table,HTT_CLASS))) + return FALSE; + doc=DocNew; + StrCpy(doc->desc,"Form"); + if (header) DocPutS(doc,header); + doc->flags|=DOCF_OVERSTRIKE|DOCF_FORM; + if (doc_flags&DOF_MIN_SIZE) + doc->flags|=DOCF_MIN_SIZE; + ml=tempc->member_list; + while (ml) { + if (fmtstr=MemberMetaData("fmtstr",ml)) { + doc_e=DocPutS(doc,fmtstr); + doc_e->data=D+ml->offset; + doc_e->my_fmt_data=MemberMetaData("fmtdata",ml); + DocDataFmt(doc_e); + } + ml=ml->next; + } + if (footer) DocPutS(doc,footer); + if (doc->root.next!=doc) { + doc->flags&=~(DOCF_ATTR_BY_PRT | DOCF_ATTR_BY_FILENAME); + DocRecalc(doc); + if (DocDo(doc,doc_flags)) { + doc_e=doc->cur_entry; + if (doc_e!=doc) { + DocEntryRun(doc,doc_e,TRUE); + DocUnlock(doc); + } + result=TRUE; + } + } + DocDel(doc); + return result; +} + +U0 DocMenuDoEndTaskCB() +{ + WinToTop; + throw(EXCEPT_LOCAL); +} + +public I64 DocMenuDo(CDoc *m,I64 doc_flags=0) +{ //returns m unlocked + U8 *old_end_cb=Fs->task_end_cb; + Bool old_break_shift_esc=LBts(&Fs->task_flags,TASKf_BREAK_TO_SHIFT_ESC); + CDocEntry *doc_e; + I64 old_doc_flags=m->flags,result=DOCM_CANCEL; + Fs->task_end_cb=&DocMenuDoEndTaskCB; + try { + if (m) { + StrCpy(m->desc,"Menu"); + m->flags&=~(DOCF_ATTR_BY_PRT | DOCF_ATTR_BY_FILENAME); + if (DocDo(m,doc_flags)) { + doc_e=m->cur_entry; + if (doc_e!=m) { + result=DocEntryRun(m,doc_e,TRUE); + DocUnlock(m); + } + } + } + } catch { + if (Fs->except_argc==1 && Fs->except_argv[0]==EXCEPT_LOCAL) { + if (!(doc_flags & DOF_INTERCEPT_TASK_END)) + Exit; + Fs->catch_except=TRUE; + } + } + m->flags|=old_doc_flags&(DOCF_ATTR_BY_PRT | DOCF_ATTR_BY_FILENAME); + LBEqu(&Fs->task_flags,TASKf_BREAK_TO_SHIFT_ESC,old_break_shift_esc); + Fs->task_end_cb=old_end_cb; + return result; +} + +#help_index "Doc" +public I64 PopUp(U8 *msg,CTask *parent=NULL,CTask **_pu_task=NULL) +{ + I64 result=0; + Bool old_preempt=Preempt(OFF); + CTaskCmd *tempc; + CTask *task=Spawn(&ServantUserCmdLine,NULL,"System",parent); + if (!parent) { + TaskRqstQue(task,parent,msg,1<popup_task=task; + tempc=TaskRqstQue(task,parent,msg, + 1<popup_task=NULL; + Kill(task); + if (_pu_task) *_pu_task=NULL; + Preempt(old_preempt); + return result; + } +} + +#help_index "Doc/Output" +public CTask *PopUpViewDoc(CDoc *doc,I64 doc_flags=0) +{ + U8 *buf=MSPrintF("if (!IsSysDeterministic) Preempt(ON);DocDo(0x%X,0x%X);",doc,doc_flags); + CTask *task=Spawn(&ServantUserCmdLine,NULL,"View",Fs); + TaskRqstQue(task,NULL,buf,1<task_end_cb=&PopUpViewStrTaskEndCB; + return task; +} + +#help_index "Doc/Input" +public I64 PopUpMenu(CDoc *doc,I64 doc_flags=0) +{ + doc->flags|=DOCF_MIN_SIZE | DOCF_FORM; + return ServantUser("DocMenuDo(0x%X,0x%X);",doc,doc_flags); +} + +public Bool PopUpForm(U8 *D,U8 *class_name,I64 doc_flags=DOF_MIN_SIZE, + U8 *header=NULL,U8 *footer=NULL) +{ + return ServantUser("DocFormDo(0x%X,0x%X,0x%X,0x%X,0x%X);",D,class_name, + doc_flags,header,footer); +} + +#help_index "Doc/Input;File/FileNames" +public U8 *PopUpPickFile(U8 *dir=NULL) +{ + U8 *result,*st,*st2; + if (dir) + st=MSPrintF("Cd(\"%Q\");FileMgr(FM_PICK_FILE,Fs->parent_task);",dir); + else { + st2=CurDir; + st=MSPrintF("Cd(\"%Q\");FileMgr(FM_PICK_FILE,Fs->parent_task);",st2); + Free(st2); + } + result=PopUp(st,Fs); + Free(st); + return result; +} + +public U8 *PopUpPickDir(U8 *dir=NULL) +{ + U8 *result,*st,*st2; + if (dir) + st=MSPrintF("Cd(\"%Q\");FileMgr(FM_PICK_DIR,Fs->parent_task);",dir); + else { + st2=CurDir; + st=MSPrintF("Cd(\"%Q\");FileMgr(FM_PICK_DIR,Fs->parent_task);",st2); + Free(st2); + } + result=PopUp(st,Fs); + Free(st); + return result; +} + +public U8 *FileNameForm(U8 *dft=NULL,I64 doc_flags=0,CTask *mem_task=NULL) +{ + CEdFileName fn; + if (dft) + StrCpy(fn.name,dft); + else + *fn.name=0; + if (DocFormDo(fn.name,"CEdFileName",doc_flags)) + return StrNew(fn.name,mem_task); + else + return NULL; +} + +public U8 *PopUpFileName(U8 *dft=NULL,I64 doc_flags=0) +{ + U8 *st=MSPrintF("FileNameForm(\"%Q\",0x%X,Fs->parent_task);",dft,doc_flags|DOF_MIN_SIZE), + *result=PopUp(st,Fs); + Free(st); + return result; +} + +#help_index "Doc" +public Bool PopUpCd() +{ + Bool result; + U8 *st=PopUpPickDir; + if (st) { + result=Cd(st); + Free(st); + } else + result=FALSE; + return result; +} + +#help_index "Doc/Input" +public U8 *PopUpPickListEntry(U8 *lst) +{ + I64 i=0; + CDoc *doc=DocNew; + while (*lst) { + if (*lst=='@') { //Check for '@' alias list entry + i--; + lst++; + } + DocPrintF(doc,"$$MU,\"%s\",0x%08X$$\n", + lst,i++); + lst+=StrLen(lst)+1; + } + DocPutS(doc,"\n$$MU,\"CANCEL\",DOCM_CANCEL$$\n"); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +public U8 *PopUpPickDefineSub(U8 *st) +{ + return PopUpPickListEntry(Define(st)); +} + +public I64 PopUp1(U8 *b1,I64 n1,U8 *header=NULL,U8 *footer=NULL) +{ + I64 i,l1=StrLen(b1); + CDoc *doc=DocNew; + if (header) DocPutS(doc,header); + DocPrintF(doc,"$$CM+CX,%d,4$$$$BT,\"%s\",%d$$\n",-l1/2,b1,n1); + if (footer) DocPutS(doc,footer); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +public I64 PopUp2(U8 *b1,I64 n1,U8 *b2,I64 n2,U8 *header=NULL,U8 *footer=NULL) +{ + I64 i,l1=StrLen(b1),l2=StrLen(b2),y; + CDoc *doc=DocNew; + if (header) { + DocPutS(doc,header); + y=4; + } else { + DocPrintF(doc,"%*s\n",l1+l2+10,""); + y=3; + } + DocPrintF(doc,"$$CM+CX,%d,%d$$$$BT,\"%s\",%d$$",-(l1+l2+3)>>1,y,b1,n1); + DocPrintF(doc,"$$CM+CX,%d,0$$$$BT,\"%s\",%d$$\n" ,-(l1+l2+3)>>1+l1+6,b2,n2); + if (footer) DocPutS(doc,footer); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +public Bool PopUpOk(U8 *header=NULL,U8 *footer=NULL) +{ + return PopUp1("OKAY",1,header,footer)>0; +} + +public Bool PopUpNoYes(U8 *header=NULL,U8 *footer=NULL) +{ + return $WW,0$PopUp2("YES",1,"NO",0,header,footer)>0; +} + +public Bool PopUpCancelOk(U8 *header=NULL,U8 *footer=NULL) +{ + return PopUp2("OKAY",1,"CANCEL",0,header,footer)>0; +} + + +#define RSAC_REPLACE 0 +#define RSAC_SKIP 1 +#define RSAC_ALL 2 + +public I64 PopUpReplaceSkipAllCancel(U8 *header=NULL,U8 *footer=NULL) +{ + I64 i; + CDoc *doc=DocNew; + if (header) DocPutS(doc,header); + DocPutS(doc,"$$CM+LX,1,4$$$$BT,\"REPLACE\",RSAC_REPLACE$$" + "$$CM+LX,17,0$$$$BT,\"SKIP\",RSAC_SKIP$$" + "$$CM+LX,1,3$$$$BT,\"ALL\",RSAC_ALL$$" + "$$CM+LX,17,0$$$$BT,\"CANCEL\",DOCM_CANCEL$$\n"); + if (footer) DocPutS(doc,footer); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +U8 *DoPopUpMGetS(U8 *header,CTask *mem_task) +{ + U8 *result,*st; + if (header) + "" header; + st=MGetS(GETSF_WITH_NEW_LINE); + result=StrNew(st,mem_task); + Free(st); + return result; +} + +public U8 *PopUpMGetS(U8 *header=NULL) +{ + U8 *st=MSPrintF("DoPopUpMGetS(0x%X,0x%X);",header,Fs), + *result=PopUp(st,Fs); + Free(st); + return result; +} + +public I64 PopUpRangeI64(I64 lo,I64 hi,I64 step=1,U8 *header=NULL,U8 *footer=NULL) +{ + I64 i; + CDoc *doc=DocNew; + if (header) + DocPutS(doc,header); + for (i=lo;i<=hi;i+=step) + DocPrintF(doc,"$$MU,\"%d\",%d$$\n",i,i); + if (footer) + DocPutS(doc,footer); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +public F64 PopUpRangeF64(F64 lo,F64 hi,F64 step, + U8 *fmt="%9.4f",U8 *header=NULL,U8 *footer=NULL) +{ + F64 d; + I64 i; + U8 buf[136]; + CDoc *doc=DocNew; + if (header) + DocPutS(doc,header); + for (d=lo;d<=hi;d+=step) { + SPrintF(buf,fmt,d); + DocPrintF(doc,"$$MU,\"%s\",0x%X$$\n",buf,d); + } + if (footer) + DocPutS(doc,footer); + i=PopUpMenu(doc); + DocDel(doc); + return i(F64); +} + +public F64 PopUpRangeF64Exp(F64 lo,F64 hi,F64 factor, + U8 *fmt="%9.4f",U8 *header=NULL,U8 *footer=NULL) +{ + F64 d; + I64 i; + U8 buf[136]; + CDoc *doc=DocNew; + if (header) + DocPutS(doc,header); + for (d=lo;d<=hi;d*=factor) { + SPrintF(buf,fmt,d); + DocPrintF(doc,"$$MU,\"%s\",0x%X$$\n",buf,d); + } + if (footer) + DocPutS(doc,footer); + i=PopUpMenu(doc); + DocDel(doc); + return i(F64); +} + +public F64 PopUpRangeF64Log(F64 lo,F64 hi,I64 steps, + U8 *fmt="%9.4f",U8 *header=NULL,U8 *footer=NULL) +{ + return PopUpRangeF64Exp(lo,hi,Exp(Ln(hi/lo)/(steps-1)),fmt,header,footer); +} + +#help_index "Task/Rqsts" +public I64 AdamFile(U8 *filename,Bool warn_ext=TRUE) +{ + Bool okay=TRUE; + U8 *name=FileNameAbs(filename), + *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")) + okay=FALSE; + if (okay) + result=Adam("#include \"%s\";",name2); + Free(name2); + Free(name); + return result; +} +#help_index "Doc" + +public I64 PopUpFile(U8 *filename,Bool warn_ext=TRUE,CTask *parent=NULL,CTask **_pu_task=NULL) +{ + Bool okay=TRUE; + U8 *st,*name=FileNameAbs(filename), + *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")) + okay=FALSE; + if (okay) { + st=MSPrintF("\"$$$$WW+H,1$$$$\";Auto(\"ExeFile(\\\"%s\\\");\\n\");UserTaskCont;",name2); + result=PopUp(st,parent,_pu_task); + Free(st); + } + Free(name2); + Free(name); + return result; +} + +#help_index "Graphics/Input" +public I64 PopUpColor(U8 *header=NULL,Bool allow_transparent=TRUE,Bool allow_dft=TRUE) +{ + I64 i; + CDoc *doc=DocNew; + if (header) + DocPutS(doc,header); + if (allow_transparent) + DocPutS(doc,"$$BG,WHITE$$$$MU,\"TRANSPARENT\",COLOR_TRANSPARENT$$$$BG$$\n"); + DocPutS(doc,"$$FM,BLACK$$"); + for (i=0;i<16;i++) + DocPrintF(doc,"$$BG,%d$$$$MU,\"__%-8Z__\",%d$$$$BG$$\n",i,i,"ST_COLORS",i); + if (allow_dft) + DocPutS(doc,"$$BG,WHITE$$$$MU,\"DEFAULT\",DOC_DFT$$$$BG$$"); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +public I64 PopUpLightingColor(U8 *header=NULL) +{ + I64 i; + CDoc *doc=DocNew; + if (header) + DocPutS(doc,header); + DocPutS(doc,"\n$$FM,BLACK$$Single-Sided Full-Range Double-Sided Full-Range\n"); + for (i=0;i<8;i++) { + DocPrintF(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",%d$$$$BG$$ ",i,i,"ST_COLORS",i); + DocPrintF(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",%d$$$$BG$$\n",i,i,"ST_COLORS",ROPF_TWO_SIDED+i); + } + DocPutS(doc,"\nSingle-Sided Half-Range Double-Sided Half-Range\n"); + for (i=0;i<16;i++) { + DocPrintF(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",%d$$$$BG$$ ",i,i,"ST_COLORS",ROPF_HALF_RANGE_COLOR+i); + DocPrintF(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",%d$$$$BG$$\n",i,i,"ST_COLORS",ROPF_TWO_SIDED+ROPF_HALF_RANGE_COLOR+i); + } + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +class CTransformForm +{ + F64 x_scale fmtstr "$$DA-T,32,\"X Scale :%12.6f\"$$\n"; + F64 y_scale fmtstr "$$DA-T,32,\"Y Scale :%12.6f\"$$\n"; + F64 z_scale fmtstr "$$DA-T,32,\"Z Scale :%12.6f\"$$\n"; + F64 é_z fmtstr "\nAngles are in degrees\n$$DA-T,32,\"Z-Axis :%12.6f\"$$\n"; + F64 é_y fmtstr "$$DA-T,32,\"Y-Axis :%12.6f\"$$\n"; + F64 é_x fmtstr "$$DA-T,32,\"X-Axis :%12.6f\"$$\n"; + F64 x_offset fmtstr "\n$$DA-T,32,\"X Offset:%12.6f\"$$\n"; + F64 y_offset fmtstr "$$DA-T,32,\"Y Offset:%12.6f\"$$\n"; + F64 z_offset fmtstr "$$DA-T,32,\"Z Offset:%12.6f\"$$\n"; +}; + +Bool PopUpTransform(I64 *r) +{ + CTransformForm *tf=MAlloc(sizeof(CTransformForm)); + tf->x_scale=1.0; + tf->y_scale=1.0; + tf->z_scale=1.0; + tf->é_x=0.0; + tf->é_y=0.0; + tf->é_z=0.0; + tf->x_offset=0.0; + tf->y_offset=0.0; + tf->z_offset=0.0; + if (PopUpForm(tf,"CTransformForm")) { + MemSet(r,0,16*sizeof(I64)); + r[0] =tf->x_scale*gr_scale; + r[5] =tf->y_scale*gr_scale; + r[10]=tf->z_scale*gr_scale; + r[15]=gr_scale; + + GrRotZEqu(r,tf->é_z*ã/180.0); + GrRotYEqu(r,tf->é_y*ã/180.0); + GrRotXEqu(r,tf->é_x*ã/180.0); + + r[3] =tf->x_offset*gr_scale; + r[7] =tf->y_offset*gr_scale; + r[11]=tf->z_offset*gr_scale; + return TRUE; + } else + return FALSE; +} + + +#define PU_SPACING 10 +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 i,j,i1,j1; + CDoc *doc=DocCur(task); + for (j=0;j<17;j++) + for (i=0;i<17;i++) { + if (j<16) + j1=j; + else + j1=COLOR_TRANSPARENT; + if (i<16) + i1=i; + else + i1=COLOR_TRANSPARENT; + dc->color=j1+i1<<16+ROPF_DITHER; + GrRect(dc,i*PU_SPACING,j*PU_SPACING+NamedFramePtr("DitherDoFrame",task),PU_SPACING,PU_SPACING); + } + 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; +} + +I64 DitherColorDo(U8 *header=NULL) +{ + I64 msg_code,p1,p2,result=-1,i,j; + DocClear; + "" header; + DocRecalc(DocCur); + NamedFramePtrAdd("DitherDoFrame",(DocCur->max_y+1)*FONT_HEIGHT); + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->draw_it=&DrawIt; + do { + msg_code=GetMsg(&p1,&p2,1<=0 && p2>=0 && 0<=j<17 && 0<=i<17) { + if (j==16) j=COLOR_TRANSPARENT; + if (i==16) i=COLOR_TRANSPARENT; + result=j+i<<16+ROPF_DITHER; + goto dcd_done; + } + } + } while (!(msg_code==MSG_KEY_DOWN && (p1==CH_ESC || p1==CH_SHIFT_ESC))); + do GetMsg(&p1,&p2,1<=1) { + d=PopUpRangeF64Exp(1.0/16.0,4.0,2.0,"%5.3f","Pointer Speed Scaler\n"); + if (d>0) + SetSnap(g,i,d); + } +} + +#help_index "Doc" diff --git a/SparrowOS/Adam/Doc/DocRecalc.CPP b/SparrowOS/Adam/Doc/DocRecalc.CPP new file mode 100644 index 0000000..9cb80e6 --- /dev/null +++ b/SparrowOS/Adam/Doc/DocRecalc.CPP @@ -0,0 +1,1840 @@ +I64 DocCharDist(CDoc *doc,I64 x,I64 y) +{ +#assert FONT_WIDTH==FONT_HEIGHT + return (SqrI64(doc->x-x)+SqrI64(doc->y-y))*FONT_WIDTH*FONT_WIDTH; +} + +U0 LockToPage(CDoc *doc) +{ + I64 win_page_len; + CDocEntry *doc_e; + CDocSettings *s; + doc_e=doc->cur_entry; + if (doc_e->flags1 & DOCEF1_LOCK_TO_PAGE) { + doc->cur_top_line_num=doc_e->y-doc_e->page_line_num; + s=DocSettingsLast(doc_e); + win_page_len=doc->win_task->win_height; + if (doc_e->page_line_num>=win_page_len) + doc->cur_top_line_num+=s->page_len-win_page_len; + } +} + +public U0 DocCenter(CDoc *doc=NULL,I64 recalc=DOC_RECALC_ALL) +{ + Bool unlock; + CTask *task; + if (!doc) { + doc=DocCur; + if (!doc) + return; + } + unlock=DocLock(doc); + task=doc->win_task; + DocRecalc(doc,FALSE,recalc); + if (!(doc->flags&DOCF_AUX_DOC)) + doc->cur_top_line_num=doc->y-(task->win_height+1)>>1; + LockToPage(doc); + if (unlock) + DocUnlock(doc); +} + +U0 DocDelToNum(CDoc *doc,I64 num) +{ + CDocEntry *doc_e=doc->root.next,*doc_e2; + while (num-->0 && doc_e!=doc) { + doc_e2=doc_e->next; + if (!(doc_e->flags1 & (DOCEF1_HOLD|DOCEF1_FILTER_SKIP))) { + if (doc_e==doc->cur_entry) { + doc->cur_entry=doc_e2; + doc->cur_data_col=doc_e2->min_col; + } + DocEntryDel(doc,doc_e); + } + doc_e=doc_e2; + } +} + +U0 DocDelToEntry(CDoc *doc,CDocEntry *clear_entry) +{ + CDocEntry *doc_e=doc->root.next,*doc_e2; + while (doc_e!=doc) { + doc_e2=doc_e->next; + if (!(doc_e->flags1 & (DOCEF1_HOLD|DOCEF1_FILTER_SKIP))) { + if (doc_e==doc->cur_entry) { + doc->cur_entry=doc_e2; + doc->cur_data_col=doc_e2->min_col; + } + DocEntryDel(doc,doc_e); + } + if (doc_e==clear_entry) + break; + doc_e=doc_e2; + } +} + +U0 DocBorderListDraw(CDoc *doc) +{ + CTask *win_task=doc->win_task; + I64 i,y=-1,attr=win_task->border_attr<<8; + CDoc *templ=doc; + U8 *ptr; + CD3I64 saved_scroll; + Bool old_preempt=Preempt(OFF); + while (templ && templ->doc_signature==DOC_SIGNATURE_VAL) { + y+=StrLen(templ->desc)+1; + templ=templ->parent_doc; + } + templ=doc; + if (y>win_task->win_height) + y=win_task->win_height; + WinScrollNull(win_task,&saved_scroll); + while (templ && templ->doc_signature==DOC_SIGNATURE_VAL) { + ptr=templ->desc; + i=StrLen(templ->desc); + ptr+=i; + attr=win_task->border_attr<<8; + while (i-- && y>0) + PlotBorderU8(win_task,attr+*--ptr,-1,--y); + y--; + templ=templ->parent_doc; + } + WinScrollRestore(win_task,&saved_scroll); + Preempt(old_preempt); +} + +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) +{ + 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, + hide_collapsed[2], + cursor_y=MIN_I64,left_margin,right_margin, + y_plot_top,y_plot_bottom, + top,left,bottom,right,width,height,scroll_x,scroll_y, + pixel_top,pixel_left; + CDocEntry reg *doc_e,reg *doc_e2,*best_do_e,*alias,*next_clear_found=NULL; + CDocBin *tempb; + CDocSettings *s; + Bool del_cl,skipped_update,tree_collapsed, + resize=FALSE,same_win,more=FALSE,find_cursor=FALSE, + blink_flag,full_refresh=TRUE,unlock; + CTask *win_task,*mem_task; + CDC *dc; + U8 *bptr,*ptr,buf[136],ch; + U32 *u32_ptr,*hl; + I32 *depth_buf=NULL; + CWinScroll *vss,*hss; + CHashDefineStr *temph; + + if (!doc || doc->doc_signature!=DOC_SIGNATURE_VAL) return; + + if (recalc==DOC_RECALC_TO_SCREEN && + (!Bt(&doc->locked_flags,DOClf_LOCKED) || doc->owning_task!=Fs)) { + i=8; + while (Bt(&doc->locked_flags,DOClf_LOCKED)) { + if (!--i) + return; + Yield; + } + } + + unlock=DocLock(doc); + if (doc->doc_signature!=DOC_SIGNATURE_VAL) { + DocUnlock(doc); + return; + } + + win_task=doc->win_task; + mem_task=doc->mem_task; + blink_flag=Blink(,tP(win_task)); + dc=NULL; + + nobound_switch (recalc) { + case DOC_RECALC_FIND_CURSOR: + if (win_task) + dc=DCAlias(gr_dc,win_task); + find_cursor=TRUE; + case DOC_RECALC_ALL: + doc->recalc_start=doc; + break; + case DOC_RECALC_TO_SCREEN: + if (doc->refresh_cnt++%(ToI64(win_actual_refresh/10)+1) && + !Bt(&doc->flags,DOCf_DO_FULL_REFRESH) && + !(doc->flags&DOCF_BACKWARD_MOVEMENT)) + full_refresh=FALSE; + doc->recalc_start=doc; + if (win_task) + dc=DCAlias(gr_dc,win_task); + break; + case DOC_RECALC_PARTIAL: + DocRemSoftNewLines(doc,doc->recalc_start); + break; + } + + PushFD; + Cli; + left =win_task->win_left; + right =win_task->win_right; + width =win_task->win_width; + top =win_task->win_top; + scroll_x=win_task->win_scroll_x; + scroll_y=win_task->win_scroll_y; + bottom=win_task->win_bottom; + height=win_task->win_height; + pixel_left =win_task->win_pixel_left; + pixel_top =win_task->win_pixel_top; + left_margin=left; + right_margin=right; + PopFD; + if (doc->flags&DOCF_AUX_DOC) { + scroll_x=0; + scroll_y=0; + } + best_do_e=doc->cur_entry; + + if (!(doc->flags&(DOCF_PLAIN_TEXT|DOCF_PLAIN_TEXT_WITH_TABS)) && + IsSrcFile(doc->filename.name)) + doc->flags|=DOCF_HIGHLIGHT; + else + doc->flags&=~DOCF_HIGHLIGHT; + + x=doc->start_x; + y=doc->start_y; + doc->page_line_num=0; + if (full_refresh) { + if (!find_cursor) { + doc->x=x; + doc->y=y; + } + if (LBtr(&win_task->display_flags,DISPLAYf_HAS_BEEN_RESIZED)) + resize=TRUE; + } + + hss=&win_task->horz_scroll; + vss=&win_task->vert_scroll; + if (doc->flags&DOCF_AUX_DOC) { + doc->cur_top_line_num=0; + doc->line_start_col=0; + has_cursor=FALSE; + } else if (has_cursor && full_refresh) { + if (Bt(&hss->flags,WSSf_SET_TO_POS)||Bt(&vss->flags,WSSf_SET_TO_POS)) { + if (!(doc->flags&DOCF_NO_SCROLL_BARS)) { + if (Bt(&hss->flags,WSSf_SET_TO_POS)) { + doc->line_start_col=hss->pos; + LBtr(&hss->flags,WSSf_SET_TO_POS); + } + if (Bt(&vss->flags,WSSf_SET_TO_POS)) { + doc->cur_top_line_num=vss->pos; + LBtr(&vss->flags,WSSf_SET_TO_POS); + } + } + doc->x=doc->line_start_col+width/2; + doc->y=doc->cur_top_line_num+height/2; + find_cursor=TRUE; + doc->recalc_start=doc; + } + } + x0=doc->line_start_col; + y0=doc->cur_top_line_num; + doc->settings_root.cur_text_attr=doc->settings_root.dft_text_attr=doc->start_text_attr; + same_win=top ==doc->old_win_top && + bottom==doc->old_win_bottom && + left ==doc->old_win_left && + right ==doc->old_win_right && + doc->cur_entry==doc->old_cur_entry && + doc->cur_data_col==doc->old_cur_data_col; + if (recalc==DOC_RECALC_TO_SCREEN) { + 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); + } + + if (doc->cur_data_col<=doc->cur_entry->min_col) + doc->cur_data_col=doc->cur_entry->min_col; + if (doc->recalc_start==doc) { + doc_e=doc->root.next; + doc_e->flags1&=~(DOCG_BL_IV_UL|DOCEF1_WORD_WRAP|DOCEF1_HIGHLIGHT|DOCEF1_LOCK_TO_PAGE|DOCEF1_LOCK_TO_CENTER); + } else if (!doc->recalc_start) + doc_e=doc; //skip update + else { + doc_e=doc->recalc_start; + i=doc->ww_lines_back; + ii=i/2; //Threshold for stopping on SOFT_CR + while (i-- && doc_e->type_u8!=DOCT_NEW_LINE && + (i>ii || doc_e->type_u8!=DOCT_SOFT_NEW_LINE) && + doc_e->flags1 & DOCEF1_WORD_WRAP && + doc_e->last!=doc) + doc_e=doc_e->last; + x=doc_e->x; y=doc_e->y; + doc->page_line_num=doc_e->page_line_num; + } + + s=DocSettingsLast(doc_e); + doc->flags=doc_e->flags1& (DOCG_BL_IV_UL|DOCEF1_WORD_WRAP|DOCEF1_LOCK_TO_PAGE|DOCEF1_LOCK_TO_CENTER) | + doc->flags&~(DOCG_BL_IV_UL|DOCEF1_WORD_WRAP|DOCEF1_LOCK_TO_PAGE|DOCEF1_LOCK_TO_CENTER); + cur_u8_attr=s->cur_text_attr; + if (doc_e==doc->root.next) { + doc->flags&=~DOCF_BACKWARD_MOVEMENT; + if (recalc==DOC_RECALC_TO_SCREEN && full_refresh) + doc->flags&=~DOCF_HAS_SONG; + } else + doc->flags=doc_e->flags1& DOCEF1_HIGHLIGHT | + doc->flags&~DOCEF1_HIGHLIGHT; + + if (doc->root.next==doc) { + best_do_e=doc; + best_col=0; + doc->cur_entry=doc; + doc->cur_data_col=0; + doc_e=doc; + } + skipped_update= doc_e==doc && doc->root.next!=doc; + + if (full_refresh) { + DocSettlingsRemainingDel(doc,doc_e,s->next); + doc->min_x=MAX_I32; doc->min_y=MAX_I32; + doc->max_x=MIN_I32; doc->max_y=MIN_I32; + } + while (doc_e!=doc) { +restart: + del_cl=FALSE; + if (doc_e->flags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP)) { + doc_e2=doc_e; + goto skip; + } + if (!full_refresh && doc_e->settings) + s=doc_e->settings; + if (doc_e->flags1 & (DOCEF1_TAG_CB|DOCEF1_DEFINE)) { + Free(doc_e->tag); + if (doc_e->flags1 & DOCEF1_TAG_CB) { + if (doc_e->tag_cb) + doc_e->tag=(*doc_e->tag_cb)(doc,doc_e,mem_task); + else + doc_e->tag=StrNew("",mem_task); + } else { + if (temph=HashFind(doc_e->define_str,win_task->hash_table,HTT_DEFINE_STR)) + doc_e->tag=StrNew(temph->data,mem_task); + else + doc_e->tag=CAlloc(1,mem_task); + } + doc_e->max_col=StrLen(doc_e->tag); + if (doc->cur_entry==doc_e) { + if (doc->cur_data_col>=doc_e->max_col) { + if (doc_e->max_col) + doc->cur_data_col=doc_e->max_col-1; + else + doc->cur_data_col=0; + } + } + } + if (Bt(doc_tag_types,doc_e->type_u8)) + k=StrLen(doc_e->tag); + else + k=0; + if (full_refresh) { +word_wrap_start: + doc_e2=doc_e->next; + if (doc_e2->type_u8==DOCT_SOFT_NEW_LINE) { + if (!same_win) { + if (doc->cur_entry==doc_e2) { + doc->cur_entry=doc_e2->next; + doc->cur_data_col=doc->cur_entry->min_col; + } + if (best_do_e==doc_e2) { + best_do_e=doc_e2->next; + best_col=0; + } + DocEntryDel(doc,doc_e2); + goto word_wrap_start; + } + } + if (doc_e->type_u8==DOCT_TEXT && + !(doc_e->flags1&DOCEG1_DONT_EDIT) && + !(doc_e->flags2&DOCEG2_DONT_EDIT)) { + if (doc_e->flags1==doc_e2->flags1 && doc_e->flags2==doc_e2->flags2 && + doc_e->type==doc_e2->type) { + j=StrLen(doc_e2->tag); + ptr=MAlloc(k+j+1,mem_task); + MemCpy(ptr,doc_e->tag,k); + MemCpy(ptr+k,doc_e2->tag,j+1); + Free(doc_e->tag); + doc_e->tag=ptr; + if (doc->cur_entry==doc_e2) { + doc->cur_entry=doc_e; + doc->cur_data_col+=k; + } + if (best_do_e==doc_e2) { + best_do_e=doc_e; + best_col=0; + } + DocEntryDel(doc,doc_e2); + k+=j; + if (k>(right_margin-left_margin+1)<<1) + goto word_wrap2; + else + goto word_wrap_start; + } + } + } +word_wrap2: + if (doc_e->flags1 & DOCEF1_SCROLLING_X) + k=doc_e->scroll_len; + if (doc_e->flags1 & + (DOCEF1_LEFT_X|DOCEF1_RIGHT_X|DOCEF1_CENTER_X| + DOCEF1_TOP_Y|DOCEF1_BOTTOM_Y|DOCEF1_CENTER_Y)) { + if (doc_e->flags1 & DOCEF1_MARGIN_REL_X) { + if (doc_e->flags1 & DOCEF1_LEFT_X) + x=left_margin-left; + else if (doc_e->flags1 & DOCEF1_RIGHT_X) + x=right_margin-(k-1)-left; + else if (doc_e->flags1 & DOCEF1_CENTER_X) + x=(right_margin+left_margin)>>1-k>>1-left; + } else { + if (doc_e->flags1 & DOCEF1_LEFT_X) + x=x0; + else if (doc_e->flags1 & DOCEF1_RIGHT_X) + x=width+x0-k; + else if (doc_e->flags1 & DOCEF1_CENTER_X) + x=(width+x0-k)>>1; + } + i=y; + if (doc_e->flags1 & DOCEF1_PAGE_REL_Y) { + doc->flags|=DOCF_BACKWARD_MOVEMENT; + if (doc_e->flags1 & DOCEF1_TOP_Y) + y-=doc_e->page_line_num; + else if (doc_e->flags1 & DOCEF1_BOTTOM_Y) + y+=s->page_len-doc_e->page_line_num; + else if (doc_e->flags1 & DOCEF1_CENTER_Y) + y+=s->page_len>>1-doc_e->page_line_num; + } else { + doc->flags|=DOCF_BACKWARD_MOVEMENT; + if (doc_e->flags1 & DOCEF1_TOP_Y) + y=y0; + else if (doc_e->flags1 & DOCEF1_BOTTOM_Y) + y=height-1+y0; + else if (doc_e->flags1 & DOCEF1_CENTER_Y) + y=height>>1+y0; + } + if (y!=i) { + doc->page_line_num+=y-i; + if (doc->page_line_num<0) + doc->page_line_num=s->page_len+doc->page_line_num%s->page_len; + else + doc->page_line_num=doc->page_line_num%s->page_len; + if (s->header!=DOC_DFT && + doc->page_line_numheader) { + y+=s->header-doc->page_line_num; + doc->page_line_num=s->header; + } + if (s->footer==DOC_DFT) { + if (doc->page_line_num>=s->page_len) { + if (s->header==DOC_DFT) + doc->page_line_num=0; + else { + doc->page_line_num=s->header; + y+=s->header; + } + } + } else { + if (doc->page_line_num>=s->page_len-s->footer) { + y+=s->footer; + if (s->header==DOC_DFT) + doc->page_line_num=0; + else { + doc->page_line_num=s->header; + y+=s->header; + } + } + } + } + } + + if (full_refresh && k>0) { + if (doc->flags & DOCF_WORD_WRAP) { + i=right_margin+1-(x+left); //Space left on line + ii=x+1-s->left_margin; + if (doc_e->type_u8==DOCT_TEXT && + !(doc_e->flags1&DOCEG1_DONT_EDIT) && + !(doc_e->flags2&DOCEG2_DONT_EDIT)) { + if (doc->cur_entry==doc_e->next) { + if (doc->cur_data_col==doc_e->next->min_col) + i--; + } else { + if (doc->cur_entry==doc_e) { + if (doc->cur_data_col==i) + i--; + } + } + if (k>i) { + for (j=i;j>8-ii && j>=0;j--) + if (doc_e->tag[j]==CH_SPACE || + doc_e->tag[j]==CH_SHIFT_SPACE) { + i=j+1; + break; + } + if (k>i && i>0) { + doc_e2=MAllocIdentical(doc_e,mem_task); + doc_e2->tag=StrNew(doc_e->tag+i,mem_task); + QueIns(doc_e2,doc_e); + if (doc->cur_entry==doc_e && doc->cur_data_col>=i) { + doc->cur_entry=doc_e2; + doc->cur_data_col=doc->cur_data_col-i; + } + doc_e->tag[i]=0; + ptr=StrNew(doc_e->tag,mem_task); + Free(doc_e->tag); + doc_e->tag=ptr; + doc_e2=CAlloc(sizeof(CDocEntryBase),mem_task); + doc_e2->type=DOCT_SOFT_NEW_LINE | doc_e->type & 0xFFFFFF00; + doc_e2->flags1=doc_e->flags1; + doc_e2->flags2=doc_e->flags2; + doc_e2->x=x; + doc_e2->y=y; + doc_e2->page_line_num=doc_e->page_line_num; + doc_e2->settings=NULL; + QueIns(doc_e2,doc_e); + k=StrLen(doc_e->tag); + goto skip_soft_cr; + } + } + if (k==i) + goto skip_soft_cr; + } + if (k>=i) { + doc_e2=doc_e->last; + if (doc_e2->type_u8!=DOCT_SOFT_NEW_LINE && + doc_e2->type_u8!=DOCT_NEW_LINE && + doc_e2->type_u8!=DOCT_CURSOR_MOVEMENT) { + doc_e2=CAlloc(sizeof(CDocEntryBase),mem_task); + doc_e2->type=DOCT_SOFT_NEW_LINE | doc_e->type & 0xFFFFFF00; + doc_e2->flags1=DOCEF1_WORD_WRAP | + doc_e->flags1 & (DOCEF1_LOCK_TO_PAGE|DOCEF1_HIGHLIGHT|DOCEF1_LOCK_TO_CENTER|DOCG_BL_IV_UL|DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP); + doc_e2->x=x; + doc_e2->y=y; + doc_e2->page_line_num=doc_e->last->page_line_num; + doc_e2->settings=s; + QueIns(doc_e2,doc_e->last); + doc_e=doc_e2; + goto restart; + } + } +skip_soft_cr: + } + } + if (full_refresh) { + doc_e->x=x; + doc_e->y=y; + doc_e->page_line_num=doc->page_line_num; + doc_e->settings=s; + if (xmin_x) doc->min_x=x; + if (ymin_y) doc->min_y=y; + + if (find_cursor) { + D=DocCharDist(doc,x,y); + col=0; + } + } + col2=0; + + doc_e->flags1=doc->flags& (DOCG_BL_IV_UL|DOCEF1_WORD_WRAP|DOCEF1_HIGHLIGHT|DOCEF1_LOCK_TO_PAGE|DOCEF1_LOCK_TO_CENTER) | + doc_e->flags1&~(DOCG_BL_IV_UL|DOCEF1_WORD_WRAP|DOCEF1_HIGHLIGHT|DOCEF1_LOCK_TO_PAGE|DOCEF1_LOCK_TO_CENTER); + temp_u32_attr=(cur_u8_attr&0xF0)<<8|doc->flags&DOCG_BL_IV_UL|(s->shifted_x&0x1F)<<16|(s->shifted_y&0x1F)<<21; + switch (doc_e->type_u8) { + case DOCT_SPRITE: + if (doc_e->flags1 & DOCEF1_LINK) + temp_u32_attr.u8[1]|=s->link_attr&15; + else if (doc_e->flags1 & (DOCEF1_LEFT_MACRO|DOCEF1_LEFT_EXP)) + temp_u32_attr.u8[1]|=s->macro_attr&15; + else if (doc_e->flags1 & DOCEF1_TREE) + temp_u32_attr.u8[1]|=s->tree_attr&15; + else + temp_u32_attr.u8[1]|=s->bin_attr&15; + break; + case DOCT_HTML_IMG: + case DOCT_HTML_VIDEO: + case DOCT_HTML_CODE: + temp_u32_attr.u8[1]|=s->bin_attr&15; + break; + case DOCT_LINK: + temp_u32_attr.u8[1]|=s->link_attr&15; + break; + case DOCT_MACRO: + case DOCT_MENU_VAL: + temp_u32_attr.u8[1]|=s->macro_attr&15; + break; + case DOCT_ANCHOR: + temp_u32_attr.u8[1]|=s->anchor_attr&15; + break; + case DOCT_TREE: + temp_u32_attr.u8[1]|=s->tree_attr&15; + break; + case DOCT_HIDE_START: + case DOCT_HIDE_END: + temp_u32_attr.u8[1]|=s->hidden_attr&15; + break; + default: + temp_u32_attr.u8[1]|=cur_u8_attr&15; + } + doc_e->type.u8[1]=temp_u32_attr.u8[1]; + temp_u32_attr|=doc_e->type&0xF3FF0000; + if (doc_e==doc->cur_entry) { + if (doc_e->type_u8!=DOCT_TEXT) + temp_u32_attr^=0xFF00; + cursor_y=doc_e->y; + } + + if (doc_e->flags1 & DOCEF1_REFRESH_DATA) { + if (doc_e->type_u8==DOCT_DATA || doc_e->type_u8==DOCT_CHECK_BOX) + DocDataFmt(doc_e); + } + + if (Bt(doc_tag_types,doc_e->type_u8)) { + ptr=doc_e->tag; + if (doc_e->flags1 & DOCEF1_TREE) { + if (k>=2) { + if (doc_e->flags1 & DOCEF1_CHECKED_COLLAPSED) + *ptr++='+'; + else + *ptr++='-'; + *ptr++=']'; + ptr=doc_e->tag; + } + } else if (doc_e->flags1 & DOCEF1_HAS_BIN) { + if (*ptr=='<') { + temp_u32_attr=temp_u32_attr & 0xFFFFF000 | (s->bin_attr&0xF)<<8; + doc_e->type.u8[1]=temp_u32_attr.u8[1]; + if (doc_e==doc->cur_entry && doc_e->type_u8!=DOCT_TEXT) + temp_u32_attr^=0x0F00; + if (full_refresh && '0'<=ptr[1]<='9') { + SPrintF(buf,"<%d>",doc_e->bin_num); + k=StrLen(buf); + Free(doc_e->tag); + ptr=doc_e->tag=MAlloc(k+1,mem_task); + MemCpy(ptr,buf,k+1); + } + } + } else if (doc_e->type_u8==DOCT_CHECK_BOX) { + if (k>=3) { + *ptr++='['; + if (doc_e->flags1 & DOCEF1_CHECKED_COLLAPSED) + *ptr++='X'; + else + *ptr++=CH_SPACE; + *ptr++=']'; + ptr=doc_e->tag; + } + } else if (doc_e->type_u8==DOCT_HIDE_START) { + if (k>=2) { + *ptr++='<'; + if (doc_e->flags1 & DOCEF1_CHECKED_COLLAPSED) + *ptr++='+'; + else + *ptr++='-'; + ptr=doc_e->tag; + } + } else if (doc_e->type_u8==DOCT_HIDE_END) { + if (k>=1) + *ptr='>'; + } + + 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%=j*FONT_WIDTH; + temp_u32_attr=temp_u32_attr & 0xFFE0FF00| + (FONT_WIDTH-1-ijif&(FONT_WIDTH-1))<<16; +#assert FONT_WIDTH==8 + ijif>>=3; + for (k=0;kscroll_len;k++) { + ch=ptr[(ijif+k)%j]; + if (!Bt(displayable_chars_bitmap,ch)) ch='.'; + if (recalc==DOC_RECALC_TO_SCREEN && !(doc_e->flags1&DOCEF1_DONT_DRAW)) { + if (doc_e->flags1 & DOCEF1_BORDER_PLOT && + !Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) + PlotBorderU8(win_task,temp_u32_attr+ch,x-x0,y-y0); + else + PlotWinU8(win_task,temp_u32_attr+ch,x-x0,y-y0); + } + x++; + } + } + if (find_cursor) { + D=DocCharDist(doc,doc_e->x,doc_e->y); + col=doc_e->min_col; + } + col2=doc_e->scroll_len; //TODO This is flawed + } else { + if (doc_e->flags1 & DOCEF1_BORDER_PLOT && + !Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) { + while (ch=*ptr++) { + if (recalc==DOC_RECALC_TO_SCREEN && !(doc_e->flags1&DOCEF1_DONT_DRAW)) + PlotBorderU8(win_task,temp_u32_attr+ch,x-x0,y-y0); + else + if (find_cursor) { + d2=DocCharDist(doc,x,y); + if (d2type_u8==DOCT_TEXT && doc_e->flags1&DOCEF1_HIGHLIGHT) + hl=DocHighlight(doc,full_refresh,doc_e,&s,ptr,k,temp_u32_attr); + else + hl=NULL; + if (recalc==DOC_RECALC_TO_SCREEN && !(doc_e->flags1&DOCEF1_DONT_DRAW)) { + if (y>y_plot_bottom) //Technically we should do this for scrolling_x, too. + more=TRUE; + else if (y>=y_plot_top) { + if (hl) + PlotAttrStr2(win_task,hl,k,x-x0,y-y0); + else + PlotWinStr2(win_task,ptr,k,temp_u32_attr,x-x0,y-y0); + } + col2+=k; + x+=k; + } else { + if (find_cursor) { + while (k--) { + d2=DocCharDist(doc,x,y); + if (d2type_u8) { + case DOCT_TEXT: + if (!col2 && + !(doc_e->flags1&(DOCEF1_TREE|DOCEF1_TAG_CB|DOCEF1_DEFINE|DOCEF1_HTML_LINK)) && + !(doc_e->flags2&DOCEF2_BIN_PTR_LINK)) + del_cl=TRUE; + break; + case DOCT_HEX_ED: + if (doc_e->flags1 & DOCEF1_DATA_IS_PTR) + bptr=doc_e->data; + else + bptr=&doc_e->data; + k=doc_e->hex_ed_width; //columns + for (i=0;ilen;i+=k) { + if (doc_e->flags1 & DOCEF1_ZERO_BASED) + SPrintF(buf,"%08tX ",i); + else + SPrintF(buf,"%08tX ",bptr); + ptr=buf; + while (ch=*ptr++) { + if (recalc==DOC_RECALC_TO_SCREEN && !(doc_e->flags1&DOCEF1_DONT_DRAW)) { + if (doc_e->flags1 & DOCEF1_BORDER_PLOT && + !Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) + PlotBorderU8(win_task,temp_u32_attr+ch,x-x0,y-y0); + else + PlotWinU8(win_task,temp_u32_attr+ch,x-x0,y-y0); + } + if (find_cursor) { + d2=DocCharDist(doc,x,y); + if (d2doc_e->len) k=doc_e->len-i; + for (j=0;jflags1&DOCEF1_DONT_DRAW)) { + if (doc_e->flags1 & DOCEF1_BORDER_PLOT && + !Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) + PlotBorderU8(win_task,temp_u32_attr+ch,x-x0,y-y0); + else + PlotWinU8(win_task,temp_u32_attr+ch,x-x0,y-y0); + } + if (find_cursor) { + d2=DocCharDist(doc,x,y); + if (d2hex_ed_width-k)*3; + for (j=0;jflags1&DOCEF1_DONT_DRAW)) { + if (doc_e->flags1 & DOCEF1_BORDER_PLOT && + !Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) + PlotBorderU8(win_task,temp_u32_attr+ch,x-x0,y-y0); + else + PlotWinU8(win_task,temp_u32_attr+ch,x-x0,y-y0); + } + if (find_cursor) { + d2=DocCharDist(doc,x,y); + if (d2hex_ed_width*3+k+9; + } + break; + case DOCT_TAB: + k=(x+8) & ~7; + if (doc_e->flags1 & DOCEF1_BORDER_PLOT && + !Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) { + while (xflags1&DOCEF1_DONT_DRAW)) + PlotBorderU8(win_task,temp_u32_attr+CH_SPACE,x-x0,y-y0); + if (find_cursor) { + d2=DocCharDist(doc,x,y); + if (d2flags1&DOCEF1_DONT_DRAW)) { + if (y_plot_top<=y<=y_plot_bottom) + PlotWinStr2(win_task,doc_spaces,k,temp_u32_attr,x-x0,y-y0); + x+=k; + } else { + if (find_cursor) { + while (k--) { + d2=DocCharDist(doc,x,y); + if (d2flags1&DOCEF1_DONT_DRAW)&& y_plot_top<=y<=y_plot_bottom) + PlotWinAttr(win_task,width-(x-x0), + cur_u8_attr<<8,x-x0,y-y0); + if (doc_e->flags1&DOCEF1_HIGHLIGHT) { + if (s->state&7==DOCSS_CPP_Z_COMMENT) { + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->state=DOCSS_NORMAL; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + } else if (s->state&DOCSSF_BPT) { + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->state&=~DOCSSF_BPT; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + } + } + y++; + doc->page_line_num++; +start_of_line: + if (s->left_margin==DOC_DFT) + x=s->indent; + else + x=s->indent+s->left_margin; +adjust_xy: + i=s->indent+s->left_margin; + if (xpage_line_num<0) + doc->page_line_num=s->page_len+doc->page_line_num%s->page_len; + else { + if (doc->page_line_num>=s->page_len) { + doc->page_line_num-=s->page_len; + if (doc->page_line_num>=s->page_len) //avoid extra divide + doc->page_line_num=doc->page_line_num%s->page_len; + } + } + if (s->header!=DOC_DFT) { + if (doc->page_line_numheader) { + y+=s->header-doc->page_line_num; + doc->page_line_num=s->header; + goto start_of_line; + } + } + if (s->footer==DOC_DFT) { + if (doc->page_line_num>=s->page_len) { + if (s->header==DOC_DFT) + doc->page_line_num=0; + else { + doc->page_line_num=s->header; + y+=s->header; + } + goto start_of_line; + } + } else { + if (doc->page_line_num>=s->page_len-s->footer) { + y+=s->footer; + if (s->header==DOC_DFT) + doc->page_line_num=0; + else { + doc->page_line_num=s->header; + y+=s->header; + } + goto start_of_line; + } + } + break; + case DOCT_CURSOR_MOVEMENT: + doc->flags|=DOCF_BACKWARD_MOVEMENT; + x+=doc_e->cursor_x_offset; + if (doc_e->flags1 & DOCEF1_PAGE_REL_Y) { + i=doc->page_line_num; + if (doc_e->flags1 & DOCEF1_TOP_Y) + doc->page_line_num=0; + else if (doc_e->flags1 & DOCEF1_BOTTOM_Y) + doc->page_line_num=s->page_len-1; + else if (doc_e->flags1 & DOCEF1_CENTER_Y) + doc->page_line_num=s->page_len>>1; + y+=doc->page_line_num-i; + } + y+=doc_e->cursor_y_offset; + doc->page_line_num+=doc_e->cursor_y_offset; + goto adjust_xy; + case DOCT_PAGE_BREAK: + doc->flags|=DOCF_BACKWARD_MOVEMENT; + y+=s->page_len-doc_e->page_line_num; + doc->page_line_num=0; + goto start_of_line; + case DOCT_INDENT: + if (full_refresh) { + if (doc_e->flags1 & DOCEF1_LEFT_X) + i=doc_e->attr; + else + i=s->indent+doc_e->attr; + s=DocSettingsIdentical(doc,s); + s->indent=i; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + goto start_of_line; + case DOCT_PAGE_LEN: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->page_len=doc_e->attr; + if (doc_e->flags1 & DOCEF1_WIN_REL) + s->page_len+=height; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + goto adjust_xy; + case DOCT_LEFT_MARGIN: + i=doc_e->attr; + left_margin=left+i; + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->left_margin=i; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + goto start_of_line; + case DOCT_RIGHT_MARGIN: + if (doc_e->flags1 & DOCEF1_WIN_REL) + i=width-1-doc_e->attr; + else + i=doc_e->attr; + right_margin=left+i; + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->right_margin=i; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + goto adjust_xy; + case DOCT_HEADER: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->header=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + goto adjust_xy; + case DOCT_FOOTER: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->footer=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + goto adjust_xy; + case DOCT_FOREGROUND: + cur_u8_attr&=0xF0; + if (doc_e->attr==DOC_DFT) + cur_u8_attr|=s->dft_text_attr&0x0F; + else + cur_u8_attr|=doc_e->attr; + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->cur_text_attr=cur_u8_attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + break; + case DOCT_BACKGROUND: + cur_u8_attr&=0x0F; + if (doc_e->attr==DOC_DFT) + cur_u8_attr|=s->dft_text_attr&0xF0; + else + cur_u8_attr|=doc_e->attr<<4; + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->cur_text_attr=cur_u8_attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + if (recalc==DOC_RECALC_TO_SCREEN && !(doc_e->flags1&DOCEF1_DONT_DRAW)) + win_task->text_attr=cur_u8_attr; + break; + case DOCT_DFT_FOREGROUND: + cur_u8_attr&=0xF0; + if (doc_e->attr==DOC_DFT) + cur_u8_attr|=s->dft_text_attr&0xF; + else + cur_u8_attr|=doc_e->attr; + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->dft_text_attr=s->dft_text_attr&0xF0|cur_u8_attr&0x0F; + s->cur_text_attr=cur_u8_attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + break; + case DOCT_DFT_BACKGROUND: + cur_u8_attr&=0x0F; + if (doc_e->attr==DOC_DFT) + cur_u8_attr|=s->dft_text_attr&0xF0; + else + cur_u8_attr|=doc_e->attr<<4; + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->dft_text_attr=s->dft_text_attr&0x0F|cur_u8_attr&0xF0; + s->cur_text_attr=cur_u8_attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + if (recalc==DOC_RECALC_TO_SCREEN && !(doc_e->flags1&DOCEF1_DONT_DRAW)) + win_task->text_attr=cur_u8_attr; + break; + case DOCT_ALT_FOREGROUND: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->alt_text_attr=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + break; + case DOCT_LINK_FOREGROUND: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->link_attr=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + break; + case DOCT_MACRO_FOREGROUND: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->macro_attr=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + break; + case DOCT_ANCHOR_FOREGROUND: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->anchor_attr=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + break; + case DOCT_HIDDEN_FOREGROUND: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->hidden_attr=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + break; + case DOCT_TREE_FOREGROUND: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->tree_attr=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + break; + case DOCT_USER_FOREGROUND: + if (doc_e->attr==DOC_DFT) { + cur_u8_attr=cur_u8_attr&0xF0|s->user_attr&0x0F; + if (y==cursor_y) { + doc->cur_entry=doc_e->next; + doc->cur_data_col=doc->cur_entry->min_col; + } + } else { + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->user_attr=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + } + break; + case DOCT_BINARY_FOREGROUND: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->bin_attr=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + break; + case DOCT_KEYWORD_FOREGROUND: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->keyword_attr=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + break; + case DOCT_KEYWORD2_FOREGROUND: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->keyword2_attr=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + break; + case DOCT_COMMENT_FOREGROUND: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->comment_attr=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + break; + case DOCT_QUOTE_FOREGROUND: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->quote_attr=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + break; + case DOCT_WORD_WRAP: + if (doc_e->attr) + doc->flags|=DOCF_WORD_WRAP; + else + doc->flags&=~DOCF_WORD_WRAP; + break; + case DOCT_HIGHLIGHT: + if (doc_e->attr) + doc->flags|=DOCF_HIGHLIGHT; + else + doc->flags&=~DOCF_HIGHLIGHT; + break; + case DOCT_LOCK_TO_PAGE: + if (doc_e->attr) + doc->flags|=DOCF_LOCK_TO_PAGE; + else + doc->flags&=~DOCF_LOCK_TO_PAGE; + break; + case DOCT_LOCK_TO_CENTER: + if (doc_e->attr) + doc->flags|=DOCF_LOCK_TO_CENTER; + else + doc->flags&=~DOCF_LOCK_TO_CENTER; + break; + case DOCT_UNDERLINE: + if (doc_e->attr) + doc->flags|=DOCF_UNDERLINE; + else + doc->flags&=~DOCF_UNDERLINE; + break; + case DOCT_INVERT: + if (doc_e->attr) + doc->flags|=DOCF_INVERT; + else + doc->flags&=~DOCF_INVERT; + break; + case DOCT_BLINK: + if (doc_e->attr) + doc->flags|=DOCF_BLINK; + else + doc->flags&=~DOCF_BLINK; + break; + case DOCT_SHIFTED_X: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->shifted_x=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + break; + case DOCT_SHIFTED_Y: + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->shifted_y=doc_e->attr; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + break; + case DOCT_CURSOR: + if (!find_cursor && !(doc->flags & DOCF_NO_CURSOR)) { + doc->cur_entry=doc_e->next; + doc->cur_data_col=doc->cur_entry->min_col; + } + del_cl=TRUE; + break; + case DOCT_SPRITE: + if (!doc_e->bin_data && doc->flags&DOCEF1_HAS_BIN) + doc_e->bin_data=DocBinFindNum(doc,doc_e->bin_num); + if ((tempb=doc_e->bin_data) && !tempb->tag && doc_e->tag && *doc_e->tag) + tempb->tag=StrNew(doc_e->tag,mem_task); + if (tempb && dc) { + DCRst(dc); + dc->flags&=~(DCF_DONT_DRAW|DCF_LOCATE_NEAREST); + if (recalc!=DOC_RECALC_TO_SCREEN || doc_e->flags1&DOCEF1_DONT_DRAW) + dc->flags|=DCF_DONT_DRAW; + bptr=tempb->data; + ii=CSpriteTypeMask(bptr); + if (ii&1<>4 &0xF ^ win_task->text_attr>>4 & 0xF; + else { + i=temp_u32_attr>>12&0xF ^ win_task->text_attr>>4 & 0xF; + if (temp_u32_attr & DOCET_SELECTED) + i^=0xF; + if (temp_u32_attr & DOCET_INVERT) + i^=0xF; + if (blink_flag && (doc_e==doc->cur_entry || temp_u32_attr&DOCET_BLINK)) + i^=0xF; + } + dc->color=i; + if (find_cursor) + dc->flags|=DCF_LOCATE_NEAREST; + dc->nearest_sprite_elem_num=0; + dc->nearest_dist=MAX_I64; + if (recalc==DOC_RECALC_TO_SCREEN && doc->cur_sprite==bptr) { + dc->flags|=DCF_LOCATE_NEAREST; + dc->cur_x=ipx; + dc->cur_y=ipy; + } else { + dc->cur_x=(doc->x-x0)*FONT_WIDTH+pixel_left+scroll_x; + dc->cur_y=(doc->y-y0)*FONT_HEIGHT+pixel_top+scroll_y; + } + dc->cur_z=0; + dc->bkcolor=i; + if (doc_e->flags1 & DOCEF1_FROM_START) { + xx=(x-k-x0)*FONT_WIDTH; //TODO: scrolling text is not length k + yy=(y-y0)*FONT_HEIGHT; + zz=0; + } else { + xx=(x-x0)*FONT_WIDTH; + yy=(y-y0)*FONT_HEIGHT; + zz=0; + } + if (ii&(1<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)); + 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); + dc->depth_buf=NULL; + if (recalc==DOC_RECALC_TO_SCREEN && doc->cur_sprite==bptr) + doc->cur_sprite_elem_num=dc->nearest_sprite_elem_num; + dc->flags&=~(DCF_LOCATE_NEAREST|DCF_DONT_DRAW|DCF_TRANSFORMATION); + if (dc->nearest_dist<=D) { + D=dc->nearest_dist; + col=doc_e->min_col; + } + } + break; + case DOCT_BPT: + if (!(s->state&DOCSSF_BPT)) { + if (full_refresh) { + s=DocSettingsIdentical(doc,s); + s->state|=DOCSSF_BPT; + QueIns(s,doc->settings_root.last); + } else + s=DocSettingsNext(doc_e->next); + } + break; + case DOCT_SONG: + if (sys_focus_task==win_task && recalc==DOC_RECALC_TO_SCREEN && !(doc_e->flags1&DOCEF1_DONT_DRAW)) { + if (doc_e->aux_str && (!cur_song || StrCmp(cur_song,doc_e->aux_str))) { + Free(cur_song); + MusicSettingsRst; + cur_song=AStrNew(doc_e->aux_str); + } + } + doc->flags|=DOCF_HAS_SONG; + break; + case DOCT_CLEAR: + next_clear_found=doc_e; + break; + case DOCT_NUM_TYPES-1: //nobound_switch + default: + break; + } + + if (doc_e->flags1 & DOCEF1_HAS_BORDER) { + if (doc_e->flags1 & DOCEF1_SOLID_BORDER) + DrawBorder(win_task,1,doc_e->x-x0,x-x0-1,doc_e->y-y0,y-y0,temp_u32_attr.u8[1],TRUE); + else + DrawBorder(win_task,0,doc_e->x-x0,x-x0-1,doc_e->y-y0,y-y0,temp_u32_attr.u8[1],TRUE); + } + if (full_refresh) { + switch (doc_e->type_u8) { + case DOCT_CHECK_BOX: + case DOCT_HIDE_START: + doc_e->max_col=2; + break; + case DOCT_TREE: + case DOCT_BUTTON: + case DOCT_LINK: + case DOCT_MENU_VAL: + case DOCT_MACRO: + case DOCT_HIDE_END: + doc_e->max_col=1; + break; + default: + doc_e->max_col= doc_e->flags1 & DOCEF1_TREE ? 1:col2; + } + + if (x>doc->max_x) doc->max_x=x; + if (y>doc->max_y) doc->max_y=y; + if (D<=best_d && !(doc_e->flags1&DOCEF1_NO_CLICK_ON)) { + best_d=D; + best_do_e=doc_e; + best_col=col; + } + if (doc_e->flags1 & DOCEF1_TREE) { + if (doc_e->flags1 & DOCEF1_ALIAS) + alias=doc_e; + else + alias=NULL; + if (doc_e->flags1 & DOCEF1_CHECKED_COLLAPSED) + tree_collapsed=TRUE; + else + tree_collapsed=FALSE; + doc_e2=doc_e->next; + while (doc_e2!=doc && doc_e2->type_u8!=DOCT_INDENT && !(doc_e2->flags1 & DOCEF1_TREE)) + doc_e2=doc_e2->next; + if (doc_e2->type_u8==DOCT_INDENT) { + i=s->indent; + j=i; + do { + if (tree_collapsed) + doc_e2->flags1|=DOCEF1_SKIP; + else + doc_e2->flags1&=~DOCEF1_SKIP; + if (alias && doc_e2==doc->cur_entry && Bt(doc_tag_types,doc_e2->type_u8)) { + Free(alias->tag); + alias->tag=MAlloc(StrLen(doc_e2->tag)+8,mem_task); + alias->tag[0]='+'; + alias->tag[1]=']'; + alias->tag[2]=CH_SPACE; + StrCpy(alias->tag+3,doc_e2->tag); + alias->max_col=doc_e2->max_col+3; + } + if (doc_e2->type_u8==DOCT_INDENT) { + if (doc_e2->flags1 & DOCEF1_LEFT_X) + j=doc_e2->attr; + else + j+=doc_e2->attr; + } + doc_e2=doc_e2->next; + } while (doc_e2!=doc && j>i); + } + } + if (doc_e->type_u8 == DOCT_HIDE_START) { + if (doc_e->flags1 & DOCEF1_ALIAS) + alias=doc_e; + else + alias=NULL; + doc_e2=doc_e->next; + LBtr(hide_collapsed,0); + j=1; + LBEqu(hide_collapsed,j,doc_e->flags1 & DOCEF1_CHECKED_COLLAPSED); + while (doc_e2!=doc && j>0) { + if (Bt(hide_collapsed,j)) + doc_e2->flags1|=DOCEF1_SKIP; + else + doc_e2->flags1&=~DOCEF1_SKIP; + if (doc_e2->type_u8==DOCT_HIDE_START) { + j++; + LBEqu(hide_collapsed,j,doc_e2->flags1 & DOCEF1_CHECKED_COLLAPSED); + if (Bt(hide_collapsed,j-1)) + LBts(hide_collapsed,j); + } else if (doc_e2->type_u8==DOCT_HIDE_END) { + j--; + if (Bt(hide_collapsed,j)) + doc_e2->flags1|=DOCEF1_SKIP; + else + doc_e2->flags1&=~DOCEF1_SKIP; + } + doc_e2=doc_e2->next; + } + } + } + + doc_e2=doc_e->next; +skip: + while (doc_e2!=doc && doc_e2->flags1 & (DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP)) { + if (doc_e2==doc->cur_entry) { + doc->cur_entry=doc_e2->next; + doc->cur_data_col=doc->cur_entry->min_col; + } + if (full_refresh) { + doc_e2->x=x; + doc_e2->y=y; + doc_e2->page_line_num=doc->page_line_num; + doc_e2->settings=s; + doc_e2->type.u8[1]=cur_u8_attr; + doc_e2->flags1=doc->flags& (DOCG_BL_IV_UL|DOCEF1_WORD_WRAP|DOCEF1_HIGHLIGHT|DOCEF1_LOCK_TO_PAGE|DOCEF1_LOCK_TO_CENTER) | + doc_e2->flags1&~(DOCG_BL_IV_UL|DOCEF1_WORD_WRAP|DOCEF1_HIGHLIGHT|DOCEF1_LOCK_TO_PAGE|DOCEF1_LOCK_TO_CENTER); + } + doc_e2=doc_e2->next; + } + + if (full_refresh) { + if (del_cl) { + if (!(doc_e->flags1 & (DOCEF1_HOLD|DOCEF1_FILTER_SKIP))) { + if (doc_e==doc->cur_entry) { + doc->cur_entry=doc_e2; + doc->cur_data_col=doc_e2->min_col; + } + if (best_do_e==doc_e) { + best_do_e=doc_e2; + best_col=doc_e2->min_col; //TODO: might be bug + } + DocEntryDel(doc,doc_e); + } + } + } + num_entries++; + if (!full_refresh && doc_e->y>y_plot_bottom) + break; + doc_e=doc_e2; + } + + if (full_refresh) { + if (doc->min_x>doc->max_x) { + doc->max_x=doc->start_x; + doc->min_x=doc->start_x; + } + if (doc->min_y>doc->max_y) { + doc->max_y=doc->start_y; + doc->min_y=doc->start_y; + } + + //Update header + if (!skipped_update) { + doc_e->x=x; + doc_e->y=y; + doc_e->page_line_num=doc->page_line_num; + doc_e->settings=s; + doc_e->type.u8[1]=cur_u8_attr; + if (find_cursor) { + D=DocCharDist(doc,x,y); + if (Dflags1&DOCEF1_NO_CLICK_ON)) { + best_d=D; + best_do_e=doc_e; + best_col=0; + } + } + } + if (doc->recalc_start==doc && doc->flags & DOCF_MIN_SIZE) { + if (Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) { + if (left<0) + left=0; + i=left+doc->max_x-doc->min_x; + if (i>TEXT_COLS-1) + i=TEXT_COLS-1; + SetWinHorz(left,i,win_task); + if (top<0) + top=0; + i=top+doc->max_y-doc->min_y; + if (i>TEXT_ROWS-1) + i=TEXT_ROWS-1; + SetWinVert(top,i,win_task); + } else { + if (left<1) + left=1; + i=left+doc->max_x-doc->min_x; + if (i>TEXT_COLS-2) + i=TEXT_COLS-2; + SetWinHorz(left,i,win_task); + if (top<1) + top=1; + i=top+doc->max_y-doc->min_y; + if (i>TEXT_ROWS-2) + i=TEXT_ROWS-2; + SetWinVert(top,i,win_task); + } + } + if (find_cursor) { + doc->cur_entry=best_do_e; + doc->cur_data_col=best_col; + DocFormBackward(doc); + + //We need this because text coordinates are used + if (best_dbest_d=best_d; + } + + if (doc->cur_entry->type_u8!=DOCT_HEX_ED) { + doc->y=doc->cur_entry->y; + doc->x=doc->cur_entry->x+doc->cur_data_col; + } else { + doc->y=doc->cur_entry->y+doc->cur_data_col/3/doc->cur_entry->hex_ed_width; + x=doc->cur_data_col%(doc->cur_entry->hex_ed_width*3); + i=x/doc->cur_entry->hex_ed_width; + doc->x=doc->cur_entry->x+9; + if (i<2) + doc->x+=x>>1*3+x&1; + else + doc->x+=doc->cur_entry->hex_ed_width*3+ + (x-doc->cur_entry->hex_ed_width<<1); + } + doc->line=doc->y+1; + doc->col=doc->x+1; + + if (has_cursor) { + if (recalc==DOC_RECALC_TO_SCREEN) { + x=0; + y=0; + } else { + x=scroll_x/FONT_WIDTH; + y=scroll_y/FONT_HEIGHT; + } + if (doc->cur_top_line_num-y+height-1>doc->max_y) + doc->cur_top_line_num=doc->max_y-(height-1)+y; + if (doc->cur_top_line_num-ymin_y) + doc->cur_top_line_num=doc->min_y+y; + + if (doc->y-doc->cur_top_line_num+y>height-1) + doc->cur_top_line_num=doc->y-(height-1)+y; + if (doc->y-doc->cur_top_line_num+y<0) + doc->cur_top_line_num=doc->y+y; + + if (doc->cur_entry->flags1 & DOCEF1_LOCK_TO_CENTER) + DocCenter(doc,DOC_RECALC_PARTIAL); + LockToPage(doc); + + if (doc->line_start_col-x+width-1>doc->max_x) + doc->line_start_col=doc->max_x-(width-1)+x; + if (doc->line_start_col-xmin_x) + doc->line_start_col=doc->min_x+x; + + if (doc->x-doc->line_start_col+x>width-1) + doc->line_start_col=doc->x-(width-1)+x; + if (doc->x-doc->line_start_col+x<0) + doc->line_start_col=doc->x+x; + } + doc->recalc_start=NULL; + } + if (recalc==DOC_RECALC_TO_SCREEN && has_cursor) { + x=doc->x-doc->line_start_col+left +scroll_x/FONT_WIDTH; + y=doc->y-doc->cur_top_line_num+top+scroll_y/FONT_HEIGHT; + if (0<=x<=right && 0<=y<=bottom && + xflags&DOCF_HIDE_CURSOR)) { + u32_ptr=gr_text_base+y*TEXT_COLS+x; + *u32_ptr|=DOCET_BLINK; + *u32_ptr^=0xFF00; + } + if (full_refresh) { + if (!(doc->flags&DOCF_NO_SCROLL_BARS)) { + if (!Bt(&hss->flags,WSSf_SET_TO_POS)) { + hss->min=doc->min_x; + if (doc->max_x-width+1min) + hss->max=hss->min; + else + hss->max=doc->max_x-width+1; + hss->pos=doc->line_start_col; + } + if (!Bt(&vss->flags,WSSf_SET_TO_POS)) { + vss->min=doc->min_y; + if (doc->max_y-height+1min) + vss->max=vss->min; + else + vss->max=doc->max_y-height+1; + vss->pos=doc->cur_top_line_num; + } + } + LBEqu(&doc->flags,DOCf_MORE,more); + } + } + if (!same_win) { + doc->old_win_top=top; + doc->old_win_bottom=bottom; + doc->old_win_left=left; + doc->old_win_right=right; + doc->old_cur_entry=doc->cur_entry; + doc->old_cur_data_col=doc->old_cur_data_col; + } + if (doc->flags & DOCF_HAS_SONG) + LBts(&win_task->task_flags,TASKf_HAS_SONG); + if (full_refresh) { + i=num_entries-doc->max_entries; + if (next_clear_found) { + DocDelToEntry(doc,next_clear_found); + DocRecalc(doc,has_cursor,recalc); + } else if (i>1024) { + DocDelToNum(doc,i); + DocRecalc(doc,has_cursor,recalc); + } + } + DCDel(dc); + Free(depth_buf); + if (unlock) + DocUnlock(doc); +} + +public U0 DocInsSafe(CDoc *doc,U8 *st) +{ //This is necessary when hidden text might screw-up + //inserts. It does them all-at-once. + Bool unlock; + I64 old_flags; + if (!doc) { + doc=DocCur; + if (!doc) + return; + } + unlock=DocLock(doc); + old_flags=doc->flags; + doc->flags|=DOCF_NO_CURSOR; + DocPutS(doc,st); + DocRecalc(doc,FALSE,DOC_RECALC_PARTIAL); + doc->flags=old_flags; + if (unlock) + DocUnlock(doc); +} + +public U0 DocBottom(CDoc *doc=NULL) +{ + Bool unlock; + if (!doc) { + doc=DocCur; + if (!doc) + return; + } + unlock=DocLock(doc); + doc->cur_entry=doc; + doc->cur_data_col=0; + DocRecalc(doc); + if (unlock) + DocUnlock(doc); +} + +public U0 DocTop(CDoc *doc=NULL) +{ + Bool unlock; + if (!doc) { + doc=DocCur; + if (!doc) + return; + } + unlock=DocLock(doc); + doc->cur_entry=doc->root.next; + doc->cur_data_col=0; + DocRecalc(doc); + if (unlock) + DocUnlock(doc); +} + +public U0 DocClear(CDoc *doc=NULL) +{ + Bool unlock; + if (!doc) { + doc=DocCur; + if (!doc) + return; + } + unlock=DocLock(doc); + DocBottom(doc); + DocPutS(doc,"$$CL$$"); + DocRecalc(doc); + if (unlock) + DocUnlock(doc); +} + +public Bool DocCursor(Bool show=OFF,CDoc *doc=NULL) +{ + if (!doc) { + doc=DocCur; + if (!doc) + return FALSE; + } + return !LBEqu(&doc->flags,DOCf_HIDE_CURSOR,!show); +} + +public Bool DocScroll(Bool val=OFF,CDoc *doc=NULL) +{ + if (!doc) { + doc=DocCur; + if (!doc) + return FALSE; + } + return !LBEqu(&doc->flags,DOCf_NO_SCROLL_BARS,!val); +} + +I64 DocBkColor(CDoc *doc,I64 col) +{ + CDocSettings *s=&doc->settings_root; + I64 result=doc->start_text_attr>>4&15; + col=(col&15)<<4; + doc->start_text_attr=doc->start_text_attr&15+col; + s->cur_text_attr =s->cur_text_attr&15+col; + s->dft_text_attr =s->dft_text_attr&15+col; + return result; +} + +public I64 DocCurAttr(I64 attr=WHITE<<4+BLUE,CTask *task=NULL) +{ + CDoc *doc; + I64 result=0; + if (!task) task=Fs; + result=task->text_attr; + if (doc=DocCur(task)) { + result=doc->start_text_attr; + doc->start_text_attr=attr; + DocBkColor(doc,attr>>4); + } + task->text_attr=attr; + return result; +} + +public I64 DocAuxAttr(I64 attr=WHITE<<4+BLUE,CTask *task=NULL) +{ //This will probably be ineffective since the + //$LK,"DOCF_ATTR_BY_PRT","MN:DOCF_ATTR_BY_PRT"$ or $LK,"DOCF_ATTR_BY_FILENAME","MN:DOCF_ATTR_BY_FILENAME"$ flag is probably set + //which means $LK,"SetDrvTextAttr","MN:SetDrvTextAttr"$() is overriding it. + CDoc *doc; + I64 result=0; + if (!task) task=Fs; + result=task->border_attr; + if (doc=DocAux(task)) { + result=doc->start_text_attr; + doc->start_text_attr=attr; + DocBkColor(doc,attr>>4); + } + task->border_attr=attr; + return result; +} + +public U0 DocCollapse(Bool collapse=TRUE,CDoc *doc=NULL) +{ + CDocEntry *doc_e; + Bool unlock; + if (!doc) { + doc=DocCur; + if (!doc) + return; + } + unlock=DocLock(doc); + doc_e=doc->root.next; + while (doc_e!=doc) { + if (doc_e->flags1&DOCEF1_TREE || doc_e->type_u8==DOCT_HIDE_START) + BEqu(&doc_e->flags1,DOCEf1_CHECKED_COLLAPSED,collapse); + doc_e=doc_e->next; + } + DocRecalc(doc); + if (unlock) + DocUnlock(doc); +} + +#help_index "Doc/Task" +U0 DocUpdateTaskDocs(CTask *task) +{ + CPrt *p; + I64 attr=task->border_attr; + CDoc *doc=task->last_doc; + CD3I64 saved_scroll; + Bool old_preempt=Preempt(OFF); + 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_AUX_DOC) { + if (attr&0xF!=attr>>4) + doc->start_text_attr=attr; + WinScrollNull(task,&saved_scroll); + DocRecalc(doc,FALSE,DOC_RECALC_TO_SCREEN); + WinScrollRestore(task,&saved_scroll); + } else { + if (doc->flags&DOCF_ATTR_BY_PRT) { + p=task->cur_prt; + attr=p->text_attr; + } + if (doc->flags&DOCF_ATTR_BY_FILENAME) { + try + p=Drv2Prt(doc->filename.name[0]); + catch { + p=NULL; + Fs->catch_except=TRUE; + } + if (p) + attr=p->text_attr; + } + if (attr&0xF!=attr>>4) + task->border_attr=attr; + Preempt(old_preempt); + DocRecalc(doc,TRUE,DOC_RECALC_TO_SCREEN); + Preempt(OFF); + } + } + doc=doc->last_doc; + } + Preempt(old_preempt); +} +#help_index "Doc" diff --git a/SparrowOS/Adam/Doc/DocTree.CPP b/SparrowOS/Adam/Doc/DocTree.CPP new file mode 100644 index 0000000..0b11b7d --- /dev/null +++ b/SparrowOS/Adam/Doc/DocTree.CPP @@ -0,0 +1,175 @@ +#help_index "Doc" + +public Bool DocTreeFind(CDoc *doc,U8 *path, + CDocEntry **_tree_entry=NULL, + CDocEntry **_start_indent=NULL, CDocEntry **_end_indent=NULL) +{ + I64 i=0,k=0; + U8 *st1=StrNew(path),*st2=MAlloc(StrLen(path)+1); + Bool result=FALSE,unlock_doc=DocLock(doc); + CDocEntry *doc_e=doc->root.next; + if (_tree_entry) *_tree_entry=doc; + if (_start_indent) *_start_indent=doc; + if (_end_indent) *_end_indent=doc; + while (*st1 && doc_e!=doc) { + StrFirstRem(st1,"/",st2); + if (*st2) { + while (doc_e!=doc) { + if (doc_e->type_u8==DOCT_INDENT) + i+=doc_e->attr; + else if (i==k && doc_e->flags1&DOCEF1_TREE && !StrCmp(doc_e->tag+3,st2)) { + if (*st1) + break; + else { + if (_tree_entry) *_tree_entry=doc_e; + i=0; + while (doc_e!=doc && doc_e->type_u8!=DOCT_INDENT) + doc_e=doc_e->next; + if (doc_e!=doc) { + i=doc_e->attr; + if (_start_indent) *_start_indent=doc_e; + doc_e=doc_e->next; + while (doc_e!=doc && i>0) { + if (doc_e->type_u8==DOCT_INDENT) { + i+=doc_e->attr; + if (i<=0) { + if (_end_indent) *_end_indent=doc_e; + result=TRUE; + break; + } + } + doc_e=doc_e->next; + } + } + goto ft_done; + } + } + doc_e=doc_e->next; + } + k+=2; + } + } +ft_done: + if (unlock_doc) + DocUnlock(doc); + Free(st1); + Free(st2); + return result; +} + + +public Bool DocTreeMake(CDoc *doc,U8 *path) +{ + I64 i=0,j=MIN_I64,k=0; + U8 *st1=StrNew(path), + *st2=MAlloc(StrLen(path)+1), + *st3=StrNew(path); + Bool result=TRUE,unlock_doc=DocLock(doc); + CDocEntry *doc_e=doc->root.next; + doc->cur_entry=doc; + doc->cur_data_col=0; + while (*st1 && doc_e!=doc) { + StrFirstRem(st1,"/",st2); + if (*st2) { + while (doc_e!=doc) { + if (doc_e->type_u8==DOCT_INDENT) { + i+=doc_e->attr; + if (i==j) { + doc->cur_entry=doc_e; + doc->cur_data_col=0; + goto mt_done; + } + } else if (i==k && doc_e->flags1&DOCEF1_TREE && !StrCmp(doc_e->tag+3,st2)) { + Free(st3); + st3=StrNew(st1); + j=i; + if (!*st1) + result=FALSE; + else + break; + } + doc_e=doc_e->next; + } + k+=2; + } + } +mt_done: + if (result) { + while (*st3) { + StrFirstRem(st3,"/",st2); + if (*st2) { + DocPrintF(doc,"$$TR+C,\"%s\"$$\n$$ID,2$$",st2); + doc->cur_entry=DocPutS(doc,"$$ID,-2$$"); + doc->cur_data_col=0; + } + } + } + if (unlock_doc) + DocUnlock(doc); + Free(st1); + Free(st2); + Free(st3); + return result; +} + +#help_index "Doc/Compiler;Compiler" +public I64 ExeDoc(CDoc *doc,Bool just_load=FALSE) +{ + I64 result; + Bool okay=TRUE,unlock_doc=DocLock(doc); + CLex *lx; + lx=LexNew("",LF_DONT_FREE_BUF,FileNameAbs(sys_temp_filename)); + if (just_load) + lx->flags|=LF_JUST_LOAD; + if (Fs->last_lex!=&Fs->next_lex) + lx->opts=Fs->last_lex->opts; + QueIns(lx,Fs->last_lex); + LexIncludeDoc(lx,NULL,doc); + try { + Lex(lx); + result=ExeCmdLine(lx); + } catch { + if (Fs->except_argc>0) { + if (Fs->except_argv[0]==EXCEPT_COMPILER || + Fs->except_argv[0]==EXCEPT_BREAK) { + Fs->catch_except=TRUE; + okay=FALSE; + result=0; + } + } + } + QueRem(lx); + if (okay) + LexDel(lx); //TODO: can crash + if (unlock_doc) + DocUnlock(doc); + return result; +} + + +public I64 DocTreeBranchExe(CDoc *doc,U8 *path) +{ + CDoc *doc2; + Bool unlock_doc=DocLock(doc); + CDocEntry *tree_branch,*start_indent,*end_indent; + I64 result=0; + if (DocTreeFind(doc,path,&tree_branch,&start_indent,&end_indent)) { + doc2=DocCopy(doc,tree_branch,end_indent); + result=ExeDoc(doc2); + DocDel(doc2); + } + if (unlock_doc) + DocUnlock(doc); + return result; +} + +public I64 ExeTreeBranch(U8 *registry_file,U8 *path) +{ + I64 result; + CDoc *doc=DocRead(registry_file); + result=DocTreeBranchExe(doc,path); + DocDel(doc); + return result; +} + +#help_index "Doc" diff --git a/SparrowOS/Adam/DocDefines.CPP b/SparrowOS/Adam/DocDefines.CPP new file mode 100644 index 0000000..037cc4a --- /dev/null +++ b/SparrowOS/Adam/DocDefines.CPP @@ -0,0 +1,55 @@ +#help_index "Char/Define" + +U0 LoadDocDefines() +{ +//These are used in documents such as $LK,"::/SparrowOS/Doc/TrivialSolutions.TXT.Z","FI:::/SparrowOS/Doc/TrivialSolutions.TXT.Z"$ +//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); + DefinePrintF( + "DD_OSMAIN2","%09,X",bfh); + bfh(I64)+=bfh->file_size-1; + DefinePrintF( + "DD_OSMAIN_END","%08X",bfh); + DefinePrintF( + "DD_OSMAIN_END2","%09,X",bfh); + + DefinePrintF( + "DD_MP_VECT","%08X",MP_VECT_ADDR); + DefinePrintF( + "DD_MP_VECT_END","%08X",MP_VECT_ADDR+SYS_MP_INIT_END-SYS_MP_INIT_START-1); + + + DefinePrintF( + "DD_SPARROWOS_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"$. + $TR-C,"LineCnt"$ +$ID,4$DefinePrintF("DD_SPARROWOS_LOC","137,965"); +$ID,-4$ + DefinePrintF( + "DD_PAGE_TABLE_BASE","%08X",PAGE_TABLE_BASE); + DefinePrintF( + "DD_PAGE_TABLE_BASE2","%09,X",PAGE_TABLE_BASE); + DefinePrintF( + "DD_PAGE_TABLE_END","%08X",PAGE_TABLE_BASE+PAGE_TABLE_SIZE-1); + + DefinePrintF( + "DD_SYS_HEAP_BASE","%08X",sys_heap_base); + DefinePrintF( + "DD_SYS_HEAP_BASE2","%09,X",sys_heap_base); + + DefinePrintF( + "DD_MAPPED_MEM_SPACE_GIG","%d Gig",MAPPED_MEM_SPACE/0x40000000); + DefinePrintF( + "DD_MAPPED_MEM_SPACE_END","%010X",MAPPED_MEM_SPACE-1); + DefinePrintF( + "DD_MAPPED_MEM_SPACE_END2","%014,X",MAPPED_MEM_SPACE-1); +} + +LoadDocDefines; +#help_index "" diff --git a/SparrowOS/Adam/Dsk/ChkDsk.CPP b/SparrowOS/Adam/Dsk/ChkDsk.CPP new file mode 100644 index 0000000..ec2d456 --- /dev/null +++ b/SparrowOS/Adam/Dsk/ChkDsk.CPP @@ -0,0 +1,232 @@ +#help_index "Info;File/Cmd Line (Typically);Cmd Line (Typically)" + +Bool ChkDskConfirm(Bool *_fix,Bool *_confirm) +{ + if (*_fix && *_confirm) { + "Fix "; + if (!YorN) + *_fix=FALSE; + *_confirm=FALSE; + } + return *_fix; +} + +I64 NativeFSChkDskList(CDirEntry *tempm1,U8 *bits,U8 *bits2,I64 size,I64 bpc) +{ + CDirEntry *tempm2; + I64 i,j,errs=0; + while (tempm1) { + tempm2=tempm1->next; + if (tempm1->attr & _ATTR_DIR) { + if (tempm1->sub) + errs+=NativeFSChkDskList(tempm1->sub,bits,bits2,size,bpc); + } + j=(tempm1->size+bpc-1)/bpc; + for (i=0;icluster>size) { + PrintFErr("Invalid Cluster:%s Cluster:%X\n",tempm1->full_name, + i+tempm1->cluster); + errs++; + break; + } + if (LBts(bits,i+tempm1->cluster)) { + PrintFErr("Dbl Alloc:%s Cluster:%X\n",tempm1->full_name, + i+tempm1->cluster); + errs++; + } + if (!LBtr(bits2,i+tempm1->cluster)) { + PrintFErr("UnAlloc:%s Cluster:%X\n",tempm1->full_name, + i+tempm1->cluster); + errs++; + } + } + CDirEntryDel(tempm1); + tempm1=tempm2; + } + return errs; +} + +I64 NativeFSChkDsk(U8 drv_let,Bool *_fix,Bool *_confirm) +{ + I64 i,j,bpc,size,errs=0; + CPrt *p=Drv2Prt(drv_let),*old_prt=Fs->cur_prt; + U8 *files_find_mask=MSPrintF("%c:/*",Prt2Drv(p)), + *old_dir=StrNew(Fs->cur_dir), + *bits,*bits2; + CDirEntry *ptr,*ptr2; + + Drv(drv_let); + "Scanning...\n"; + size=(p->size-(p->data-p->offset))/p->spc; + bpc=p->spc<>3); + bits2=CAlloc((size+7)>>3+BLK_SIZE); + RBlks(p,bits2,p->map1,((size+7)>>3+BLK_SIZE-1)>>BLK_SIZE_BITS); + + //Get Root Dir size + ptr2=MAlloc(bpc); + RClusters(p,ptr2,p->root_cluster,1); + ptr=ptr2(U8 *)-offset(CDirEntry.start); + j=(ptr->size+bpc-1)/bpc; + Free(ptr2); + + for (i=0;iroot_cluster>size) { + PrintFErr("Invalid Cluster: RootDir Cluster:%X\n",i+p->root_cluster); + errs++; + break; + } + if (LBts(bits,i+p->root_cluster)) { + PrintFErr("Dbl Alloc: RootDir Cluster:%X\n",i+p->root_cluster); + errs++; + } + if (!LBtr(bits2,i+p->root_cluster)) { + PrintFErr("UnAlloc: RootDir Cluster:%X\n",i+p->root_cluster); + errs++; + } + } + + errs+=NativeFSChkDskList(FilesFind(files_find_mask,1<next; + if (tempm1->attr & _ATTR_DIR) { + if (tempm1->sub) + errs+=FAT32ChkDskList(p,tempm1->sub,bits,bits2,size,bpc); + } + i=0; + c=tempm1->cluster; + while (0size) { + PrintFErr("Invalid Cluster:%s Cluster:%X\n",tempm1->full_name,c); + errs++; + break; + } + if (LBts(bits,c)) { + PrintFErr("Dbl Alloc:%s Cluster:%X\n",tempm1->full_name,c); + errs++; + } + if (!bits2[c]) { + PrintFErr("UnAlloc:%s Cluster:%X\n",tempm1->full_name,c); + errs++; + } else + bits2[c]=0; + c=ClusterNumNext(p,c); + i++; + } + if (!(tempm1->attr & _ATTR_DIR)) { + i*=bpc; + if (tempm1->size>i) { + PrintFErr("Allocated File Too Short:%s\n",tempm1->full_name); + errs++; + } + if (i>tempm1->size+bpc-1) { + PrintFWarn("Allocated File Too Long:%s\n",tempm1->full_name); + errs++; + } + } + CDirEntryDel(tempm1); + tempm1=tempm2; + } + return errs; +} + +I64 FAT32ChkDsk(U8 drv_let,Bool *_fix,Bool *_confirm) +{ + I64 i,bpc,size,c,errs=0; + CPrt *p=Drv2Prt(drv_let),*old_prt=Fs->cur_prt; + U8 *files_find_mask=MSPrintF("%c:/*",Prt2Drv(p)), + *old_dir=StrNew(Fs->cur_dir), + *bits; + U32 *bits2; + Drv(drv_let); + "Scanning...\n"; + size=(p->size-(p->data-p->offset))/p->spc; + bpc=p->spc<>3); + bits2=CAlloc(size*4+BLK_SIZE); + RBlks(p,bits2,p->map1,(size*4+BLK_SIZE-1)>>BLK_SIZE_BITS); + + c=p->root_cluster; + while (0size) { + PrintFErr("Invalid Cluster: RootDir Cluster:%X\n",c); + errs++; + break; + } + if (LBts(bits,c)) { + PrintFErr("Dbl Alloc: RootDir Cluster:%X\n",c); + errs++; + } + if (!bits2[c]) { + PrintFErr("UnAlloc: RootDir Cluster:%X\n",c); + errs++; + } else + bits2[c]=0; + c=ClusterNumNext(p,c); + } + + errs+=FAT32ChkDskList(p,FilesFind(files_find_mask,1<type) { + case PT_NATIVE: + errs=NativeFSChkDsk(drv_let,&fix,&confirm); + break; + case PT_FAT32: + errs=FAT32ChkDsk(drv_let,&fix,&confirm); + break; + default: + PutDefineErr("ST_UNSUPPORTED_FILE_SYSTEM"); + } + if (errs) { + if (fix) + "It might be a little better. "; + "Copy files to another partition or CD-ROM, " + "reformat, and copy back. " + "Or, copy from a back-up.\n"; + } + return errs; +} + +#help_index "" diff --git a/SparrowOS/Adam/Dsk/Dsk2.CPP b/SparrowOS/Adam/Dsk/Dsk2.CPP new file mode 100644 index 0000000..67e7e49 --- /dev/null +++ b/SparrowOS/Adam/Dsk/Dsk2.CPP @@ -0,0 +1,5 @@ +#include "Dsk2a" +#include "Dsk2b" +#include "DskCDDVD" +#include "ChkDsk" +#include "FileMgr" diff --git a/SparrowOS/Adam/Dsk/Dsk2a.CPP b/SparrowOS/Adam/Dsk/Dsk2a.CPP new file mode 100644 index 0000000..08f280e --- /dev/null +++ b/SparrowOS/Adam/Dsk/Dsk2a.CPP @@ -0,0 +1,426 @@ +#help_index "File/Cmd Line (Typically);Cmd Line (Typically)" + +public U8 *DBlk(I64 blk,Bool write=FALSE) +{//Dump Disk Blk. +//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"$. + U8 *buf=MAlloc(BLK_SIZE); + + RBlks(Fs->cur_prt,buf,blk,1); + DocD(buf,BLK_SIZE); + if (write) { + "Edit and press to write or \n"; + if (View) { + "Write\n"; + WBlks(Fs->cur_prt,buf,blk,1); + } + } + return buf; +} + +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"$. +//Do $LK,"Dir","MN:Dir"$("*",TRUE); to get cluster numbers of files. + U8 *buf=MAlloc(Fs->cur_prt->spc<cur_prt,c,num); + RClusters(Fs->cur_prt,buf,c,1); + "Cluster:%X\n",c; + DocD(buf,Fs->cur_prt->spc< to write or \n"; + if (View) { + "Write\n"; + WClusters(Fs->cur_prt,buf,c,1); + } + } + return buf; +} + +#help_index "File/Program Routines" + +U0 OFFlatten(CDirEntry *tempm,CDirEntry **a,I64 *i) +{ + CDirEntry *tempm1; + while (tempm) { + tempm1=tempm->next; + if (tempm->attr&_ATTR_DIR) { + OFFlatten(tempm->sub,a,i); + CDirEntryDel(tempm); + } else { + a[*i]=tempm; + *i=*i+1; + } + tempm=tempm1; + } +} + + +public I64 CFileCnt(CDirEntry *tempm) +{ + I64 cnt=0; + while (tempm) { + if (tempm->attr&_ATTR_DIR) + cnt+=CFileCnt(tempm->sub); + else + cnt++; + tempm=tempm->next; + } + return cnt; +} + +I64 OFCompare(CDirEntry *e1,CDirEntry *e2) +{ + return e1->cluster-e2->cluster; +} + +public CDirEntry **FilesOrder(CDirEntry *tempm,I64 *_cnt=NULL) +{ //See $LK,"::/SparrowOS/Demo/Dsk/OrderedIO.CPP.Z","FI:::/SparrowOS/Demo/Dsk/OrderedIO.CPP.Z"$. + I64 cnt=CFileCnt(tempm),i=0; + CDirEntry **a=MAlloc(sizeof(CDirEntry *)*cnt); + OFFlatten(tempm,a,&i); + QSortI64(a,cnt,&OFCompare); + if (_cnt) *_cnt=cnt; + return a; +} + + +#help_index "File/Cmd Line (Typically);Cmd Line (Typically)" + +public Bool Copy(U8 *src_files_find_mask,U8 *dst_files_find_mask=".") +{ + Bool result=TRUE; + CFileAccess *fa; + CDirEntry *tempm,*tempm1; + U8 *st; + if (!(tempm=FilesFind(src_files_find_mask))) + return FALSE; + if (IsDir(dst_files_find_mask)) { + fa=FileAccessNew(dst_files_find_mask,TRUE); + if (fa) { + while (tempm) { + tempm1=tempm->next; + if (!(tempm->attr & _ATTR_DIR)) { + st=FileNameAbs(tempm->name); + if (!CopySingle(tempm->full_name,st)) + result=FALSE; + Free(st); + } + CDirEntryDel(tempm); + tempm=tempm1; + } + FileAccessDel(fa); + } + return result; + } else + return CopySingle(src_files_find_mask,dst_files_find_mask); +} + +public Bool Move(U8 *f1,U8 *f2) +{ + if (Copy(f1,f2)) { + Del(f1); + return TRUE; + } + return FALSE; +} + +I64 PutCopyTree(CDirEntry *tempm,I64 src_dir_len,I64 dst_dir_len,U8 *dst_dir) +{ + U8 *st; + I64 result=1; + while (tempm) { + st=MAlloc(StrLen(tempm->full_name)+dst_dir_len+2); + MemCpy(st,dst_dir,dst_dir_len); + StrCpy(st+dst_dir_len,tempm->full_name+src_dir_len); + if (tempm->attr & _ATTR_DIR) { + MkDir(st); + result+=PutCopyTree(tempm->sub,src_dir_len,dst_dir_len,dst_dir); + } else + if (CopySingle(tempm->full_name,st)) + result++; + Free(st); + tempm=tempm->next; + } + return result; +} + +public I64 CopyTree(U8 *src_files_find_mask,U8 *dst_files_find_mask) +{ //returns count of copied files (not dirs) + CFileAccess *fa; + CDirEntry *tempm=NULL; + I64 result=0,i1,i2; + U8 *st1,*st2; + + st1=DirNameAbs(src_files_find_mask); + st2=DirNameAbs(dst_files_find_mask); + i1=StrLen(st1); + if (!StrNCmp(st1,st2,i1) && (st2[i1]=='/' || !st2[i1]) ) { + Free(st1); + Free(st2); + return 0; + } + Free(st1); + Free(st2); + + fa=FileAccessNew(src_files_find_mask,TRUE); + if (fa) { + tempm=SysFilesFind(fa->mask,1<next; + if (tempm1->attr & _ATTR_DIR) { + if (tempm1->sub) + DelTreeDirs(tempm1->sub); + SysDel(tempm1->full_name,TRUE); + } + CDirEntryDel(tempm1); + tempm1=tempm2; + } +} + +U0 DelTreeFiles(CDirEntry *tempm1) +{ + CDirEntry *tempm2; + while (tempm1) { + tempm2=tempm1->next; + if (tempm1->attr & _ATTR_DIR) { + if (tempm1->sub) + DelTreeFiles(tempm1->sub); + } else + SysDel(tempm1->full_name,FALSE); + CDirEntryDel(tempm1); + tempm1=tempm2; + } +} + +public U0 DelTree(U8 *files_find_mask,U8 *fu_flags=NULL) +{ + I64 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); + } else + DelTreeFiles(FilesFind(files_find_mask,fuf_flags)); +} + +U0 TouchFile(U8 *filename,U8 *attr,CDate ltdt=0) //Just one file +{ + CPrt *p=Drv2Prt(*filename); + CDirEntry de; + U8 *cur_dir=StrNew(filename), + buf[136]; + if (FileFind(filename,&de,FALSE,TRUE)) { + if (!StrCmp(attr,"+?")) + "%-32ts %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; + else + de.datetime=GetCurTimeCDate; + CDirNew(p,cur_dir,&de,FALSE); + } + } else PutDefineErr("ST_FILE_NOT_FOUND"); +} + +U0 TouchList(CDirEntry *tempm1,U8 *attr,CDate ltdt=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; + TouchList(tempm1->sub,attr,ltdt); + } + } else + TouchFile(tempm1->full_name,attr,ltdt); + CDirEntryDel(tempm1); + tempm1=tempm2; + } +} + +public U0 Touch(U8 *files_find_mask,U8 *attr="+?",U8 *fu_flags=NULL,CDate ltdt=0) +{ +//Attr "+?" =show +// "+T" =resident + I64 fuf_flags=0; + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + TouchList(FilesFind(files_find_mask,fuf_flags),attr,ltdt); +} + +I64 FFList(CDirEntry *tempm1) +{ + I64 cnt=0; + CDirEntry *tempm2; + + while (tempm1) { + tempm2=tempm1->next; + if (tempm1->attr & _ATTR_DIR) { + if (tempm1->sub) + cnt+=FFList(tempm1->sub); + } else { + PutFileLink(tempm1->full_name); + NewLine; + cnt++; + } + CDirEntryDel(tempm1); + tempm1=tempm2; + } + return cnt; +} + +public I64 FF(U8 *files_find_mask,U8 *fu_flags=NULL) +//Files Find +{ + 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)); + return cnt; +} + +public U0 SetDrvTextAttr(U8 drv_let,U8 attr) +{ //This is to color the border text according to the current drive + CPrt *p; + try { + p=Drv2Prt(drv_let); + p->text_attr=attr; + } catch + Fs->catch_except=TRUE; +} + +U0 PrintFDrvTextAttr(U8 drv_let=0) +{ + CPrt *p=Drv2Prt(drv_let); + U8 fg=p->text_attr&0xF,bg=p->text_attr>>4; + if (fg!=bg) + "$$FG,%d$$$$BG,%d$$",fg,bg; +} + +I64 NativeFSUnusedDrvSpace(U8 drv_let=0) +{ + CPrt *p=Drv2Prt(drv_let); + I64 result=0,i,l; + U8 *bitmap; + try { + l=(p->size+p->spc-1)/p->spc; + i=((l+7)>>3+BLK_SIZE-1)>>BLK_SIZE_BITS; + bitmap=MAlloc(i<map1,i); + for (i=0;ispc; +} + +I64 FAT32UnusedDrvSpace(U8 drv_let=0) +{ + CPrt *p=Drv2Prt(drv_let); + I64 result=0,i,l; + U32 *bitmap; + try { + l=(p->size+p->spc-1)/p->spc; + i=(l*4+BLK_SIZE-1)>>BLK_SIZE_BITS; + bitmap=MAlloc(i<map1,i); + for (i=0;ispc; +} + +public I64 UnusedDrvSpace(U8 drv_let=0) +{ //returns size in bytes + CPrt *p=Drv2Prt(drv_let),*p_old=Fs->cur_prt; + U8 *old_dir=StrNew(Fs->cur_dir); + I64 result=0; + Drv(drv_let); + switch (p->type) { + case PT_NATIVE: + result=NativeFSUnusedDrvSpace(drv_let); + break; + case PT_FAT32: + result=FAT32UnusedDrvSpace(drv_let); + break; + default: + PutDefineErr("ST_UNSUPPORTED_FILE_SYSTEM"); + } + Drv(Prt2Drv(p_old)); + Cd(old_dir); + Free(old_dir); + return result; +} + +#help_index "File/Program Routines" + +I64 TreeSizeFiles(CDirEntry *tempm,I64 round_to) +{ + I64 result=0,i; + while (tempm) { + if (round_to) + i=CeilU64(tempm->size,round_to); + else + i=tempm->size; + if (tempm->attr&_ATTR_DIR) + i+=TreeSizeFiles(tempm->sub,round_to); + tempm->user_data=i; + result+=i; + tempm=tempm->next; + } + return result; +} + +public I64 TreeSize(U8 *files_find_mask="/SparrowOS/*",U8 *fu_flags=NULL,I64 round_to=0) +{ +//Does not include directory size of base directory, but +//does include size of sub directories. + I64 fuf_flags=0,result=0; + CDirEntry *tempm1=NULL; + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); + 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); + } + return result; +} + +#help_index "" diff --git a/SparrowOS/Adam/Dsk/Dsk2b.CPP b/SparrowOS/Adam/Dsk/Dsk2b.CPP new file mode 100644 index 0000000..7745e1f --- /dev/null +++ b/SparrowOS/Adam/Dsk/Dsk2b.CPP @@ -0,0 +1,549 @@ +#help_index "File/Program Routines/Utils" + +I64 CDirTreeFlattenSize(CDirEntry *tempm) +{ + I64 result=0; + while (tempm) { + result+=CDIR_SIZE+1; + if (tempm->attr & _ATTR_DIR) + result+=CDirTreeFlattenSize(tempm->sub); + tempm=tempm->next; + } + return result+1; +} + +I64 CDirTreeFlattenFill(CDirEntry *tempm,U8 *dst) +{ + I64 result=0,i; + while (tempm) { + *dst++=1; + result++; + i=CDIR_SIZE; + MemCpy(dst,&tempm->start,i); + dst+=i; + result+=i; + if (tempm->attr & _ATTR_DIR) { + i=CDirTreeFlattenFill(tempm->sub,dst); + dst+=i; + result+=i; + } + tempm=tempm->next; + } + *dst=0; + return result+1; +} + +public U8 *CDirTreeFlatten(CDirEntry *tempm,I64 *_size=NULL) +{ + I64 size=CDirTreeFlattenSize(tempm); + U8 *buf=MAlloc(size); + CDirTreeFlattenFill(tempm,buf); + if (_size) *_size=size; + return buf; +} + +U8 *CDirTreeDoUnflatten(U8 *src,CDirEntry **tempm) +{ + I64 i; + CDirEntry *tempm1; + if (*src++) { + tempm1=CAlloc(sizeof(CDirEntry)); + *tempm=tempm1; + i=CDIR_SIZE; + MemCpy(&tempm1->start,src,i); + src+=i; + if (tempm1->attr & _ATTR_DIR) + src=CDirTreeDoUnflatten(src,&tempm1->sub); + src=CDirTreeDoUnflatten(src,&tempm1->next); + } else + *tempm=NULL; + return src; +} + +public CDirEntry *CDirTreeUnflatten(U8 *src) +{ + CDirEntry *tempm=NULL; + CDirTreeDoUnflatten(src,&tempm); + return tempm; +} + +#help_index "Install;File/Install Related" +#help_file "::/SparrowOS/Doc/Install" + +#define ROUND_PRT_TO (63*255) +#define PRT_HEADER 63 + +class CPlannedPrt +{ + CPlannedPrt *next,*last; + I64 size; + Bool pri; +}; + +//This is available to assist in writing scripts. +I64 prt_dsk_dsk_size; + +public U0 PrtDsk(U8 drv_let=0) +//Partition Disk containing partition drv_let. +//or drv_let=0 means add new drv that is not already mounted. +{ + CBlkDev *bdev; + CPlannedPrt root,*temppp; + CMasterBoot mbr; + Bool pri=TRUE; + I64 ext_base,num_prt,pri_cnt=0, + i,start_offset,offset,remaining; +"This command does not play well\n" +"with other operating systems.\n" +"You really should use another\n" +"operating system's partitioner.\n" +"If you use this, it may, in fact,\n" +"make your hard drive impossible\n" +"to repartition with other operating\n" +"until you set block zero to zero\n" +"with $$LK,\"MasterBootZero\",\"MN:MasterBootZero\"$$()\n\n\n" +"Continue"; + if (!YorN) return; + + if (drv_let) + try + Drv2BlkDev(drv_let); + catch { + drv_let=0; + Fs->catch_except=TRUE; + } + + if (!drv_let) { + Mount(TRUE); + return; + } + + bdev=Drv2BlkDev(drv_let); + if (!bdev || bdev->type!=BDT_ATA) + return; + + prt_dsk_dsk_size=bdev->max_blk+1; + + QueInit(&root); + + num_prt=bdev->drv_let_base; + 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; + temppp->pri=FALSE; + if (pri) { + "Primary Partition"; + if (YorN) { + pri_cnt++; + temppp->pri=TRUE; + if (pri_cnt==3) + pri=FALSE; + } else + pri=FALSE; + } + "Blocks Remaining:%d (0x%X)\n", + remaining-PRT_HEADER,remaining-PRT_HEADER; + temppp->size=CeilU64(PmtI64("Size in Blocks :", + remaining-PRT_HEADER)+PRT_HEADER,ROUND_PRT_TO); + } while (!(ROUND_PRT_TO<=temppp->size<=FloorU64(remaining,ROUND_PRT_TO))); + QueIns(temppp,root.last); + remaining-=temppp->size; + num_prt++; + } + + "\n\n!!! Repartition Drive !!!\n\n"; + temppp=root.next; + num_prt=bdev->drv_let_base; + while (temppp!=&root) { + "Drive %C:%08X %s\n",num_prt,temppp->size, + temppp->pri ? "Primary":"Logical"; + temppp=temppp->next; + num_prt++; + } + if (!AreYouSure) + goto pd_done; + + remaining=FloorU64(bdev->max_blk+1,ROUND_PRT_TO)-ROUND_PRT_TO; + temppp=root.next; + MemSet(&mbr,0,BLK_SIZE); + mbr.signature=0xAA55; + offset=0; + for (i=0;isize-PRT_HEADER; + offset+=temppp->size; + remaining-=temppp->size; + temppp=temppp->next; + } + if (!i) i++; + if (temppp!=&root) { + mbr.p[i].active=0x80; + mbr.p[i].start_head=0; + mbr.p[i].start_cyl=0x101; + mbr.p[i].type=0xF; + mbr.p[i].end_head=0xFE; + mbr.p[i].end_cyl=0xFFFF; + mbr.p[i].offset=offset; + mbr.p[i].size=remaining; + ext_base=offset; + } + ATAWriteBlks(bdev,&mbr,0,1); + + while (temppp!=&root) { + start_offset=offset; + MemSet(&mbr,0,BLK_SIZE); + mbr.signature=0xAA55; + + mbr.p[0].active=0x80; + mbr.p[0].start_head=1; + mbr.p[0].start_cyl=0x101; + mbr.p[0].type=1; //Will get set to MBR_PT_NATIVE + mbr.p[0].end_head=0xFE; + mbr.p[0].end_cyl=0xFFFF; + mbr.p[0].offset=PRT_HEADER; + mbr.p[0].size=temppp->size-PRT_HEADER; + offset+=temppp->size; + temppp=temppp->next; + if (temppp!=&root) { + mbr.p[1].active=0x80; + mbr.p[1].start_head=0; + mbr.p[1].start_cyl=0x101; + mbr.p[1].type=5; + mbr.p[1].end_head=0xFE; + mbr.p[1].end_cyl=0xFFFF; + mbr.p[1].offset=offset-ext_base; + mbr.p[1].size=temppp->size; + } + ATAWriteBlks(bdev,&mbr,start_offset,1); + } + + bdev->flags&=~(BDF_INITIALIZED | BDF_INIT_IN_PROGRESS); + BlkDevAdd(bdev,FALSE); + for (i=bdev->drv_let_base;isize+p->spc-1)/p->spc; + + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WinMax; + DocCursor; + DocClear; + DCFill; + try { + i=((s+7)>>3+BLK_SIZE-1)>>BLK_SIZE_BITS; + bitmap=MAlloc(i<map1,i); + i=0; + for (y=0;ycolor=ROP_XOR+BLUE^COLOR_TRANSPARENT; + else + dc->color=ROP_XOR+WHITE^COLOR_TRANSPARENT; + GrPlot(dc,x,y); + i++; + } + } + Free(bitmap); + } catch + PrtUnlock(p); + GetChar; + + SettingsPop; + DCFill; + DCDel(dc); +} + +U0 FAT32DrvView(U8 drv_let=0) +{ + CPrt *p=Drv2Prt(drv_let); + I64 lohi,c1,i,x,y,l,s; + U32 *bitmap; + CDC *dc=DCAlias; + l=(GR_HEIGHT-3*FONT_HEIGHT)*(GR_WIDTH-FONT_WIDTH<<1), + s=(p->size+p->spc-1)/p->spc; + + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WinMax; + DocCursor; + DocClear; + DCFill; + try { + i=(s*4+BLK_SIZE-1)>>BLK_SIZE_BITS; + bitmap=MAlloc(i<map1,i); + i=0; + for (y=0;ycolor=ROP_XOR+BLUE^COLOR_TRANSPARENT; + else + dc->color=ROP_XOR+WHITE^COLOR_TRANSPARENT; + GrPlot(dc,x,y); + i++; + } + } + Free(bitmap); + } catch + PrtUnlock(p); + GetChar; + + SettingsPop; + DCFill; + DCDel(dc); +} + +public U0 DrvView(U8 drv_let=0) +{ + CPrt *p=Drv2Prt(drv_let),*p_old=Fs->cur_prt; + Drv(drv_let); + switch (p->type) { + case PT_NATIVE: + NativeFSDrvView(drv_let); + break; + case PT_FAT32: + FAT32DrvView(drv_let); + break; + default: + PutDefineErr("ST_UNSUPPORTED_FILE_SYSTEM"); + } + Drv(Prt2Drv(p_old)); +} + +public U0 DskView(U8 drv_let=0) +{ + I64 i,j, + h=Fs->win_pixel_width, + v=Fs->win_pixel_height, + radius; + CPrt *p; + CBlkDev *bdev=Drv2BlkDevFwded(drv_let); + CDC *dc=DCAlias; + F64 sect_start,sect_end; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + DocCursor; + DocClear; + DCFill; + if (hcolor=ROP_EQU+BLACK; + GrCircle(dc,h>>1,v>>1,radius); + + j=1; + for (i=0;ibdev && p->type) { + sect_start=-(p->offset*2*ã/(bdev->max_blk+1)); + sect_end =-((p->offset+p->size)*2*ã/(bdev->max_blk+1)); + dc->color=ROP_EQU+BLACK; + GrLine(dc,h>>1,v>>1, + h>>1+radius*Cos(sect_start), + v>>1+radius*Sin(sect_start)); + GrLine(dc,h>>1,v>>1, + h>>1+radius*Cos(sect_end), + v>>1+radius*Sin(sect_end)); + + dc->color=ROP_EQU+j; + GrPrintF(dc,0,v-FONT_HEIGHT*j,"%C %-8Z",Prt2Drv(p), + p->type.u16[0],"ST_PRT_TYPES"); + GrFloodFill(dc, + h>>1+(radius-4)*Cos((sect_start+sect_end)/2), + v>>1+(radius-4)*Sin((sect_start+sect_end)/2),FALSE); + j++; + } + } + + GetChar(NULL,FALSE); + SettingsPop; + DCFill; + DCDel(dc); +} + +#help_index "Info;File/Cmd Line (Typically);Cmd Line (Typically);File/Install Related;Install" +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; +} +#help_index "" diff --git a/SparrowOS/Adam/Dsk/DskCDDVD.CPP b/SparrowOS/Adam/Dsk/DskCDDVD.CPP new file mode 100644 index 0000000..bd5a131 --- /dev/null +++ b/SparrowOS/Adam/Dsk/DskCDDVD.CPP @@ -0,0 +1,598 @@ +#help_index "File/CD DVD" + +U0 FillU16Palindrome(CPalindromeU16 *dst,U16 w) +{ + dst->big=EndianU16(w); + dst->little=w; +} + +U0 FillU32Palindrome(CPalindromeU32 *dst,I64 d) +{ + dst->big=EndianU32(d); + dst->little=d; +} + + +class CCCDUserData //Create CD +{ + I64 loc,path_entry_num, + short_dir_blks,long_dir_blks; +}; + +I64 CDFileCreate2(CFile *out_file,CDirEntry *tempm, + CISO1DirEntry *tempi,CISO1DirEntry *tempi2, + I64 *_cur_blk, + CDirEntry *parent,Bool write) +{ + CCCDUserData *tempc; + CDirEntry *tempm1,*tempm2; + CFile *in_file; + U8 *buf=MAlloc(CD_BLK_SIZE),*ptr1,*ptr2; + CISO1DirEntry *dir_blk_buf =CAlloc(CD_BLK_SIZE*128), + *de =dir_blk_buf, *de1, + *dir_blk_buf2=CAlloc(CD_BLK_SIZE*128), + *de2=dir_blk_buf2,*de12; + I64 i,n; + + tempc=parent->user_data; + + de->len=sizeof(CISO1DirEntry)-1; + de->ext_attr_len=0; + FillU16Palindrome(&de->vol_seq_num,1); + CDate2ISO1(&de->date,tempm->datetime); + de->flags=ISO1_ATTR_DIR; + de->name_len=1; + de->name=0; + de->len+=de->name_len; + de(U8 *)+=de->len; + + de->len=sizeof(CISO1DirEntry)-1; + de->ext_attr_len=0; + FillU32Palindrome(&de->loc,tempc->loc); + FillU32Palindrome(&de->size,tempc->short_dir_blks*CD_BLK_SIZE); + FillU16Palindrome(&de->vol_seq_num,1); + CDate2ISO1(&de->date,parent->datetime); + de->flags=ISO1_ATTR_DIR; + de->name_len=1; + de->name=1; + de->len+=de->name_len; + de(U8 *)+=de->len; + + de2->len=sizeof(CISO1DirEntry)-1; + de2->ext_attr_len=0; + FillU16Palindrome(&de2->vol_seq_num,1); + CDate2ISO1(&de2->date,tempm->datetime); + de2->flags=ISO1_ATTR_DIR; + de2->name_len=1; + de2->name=0; + de2->len=de2->len+de2->name_len; + de2(U8 *)+=de2->len; + + de2->len=sizeof(CISO1DirEntry)-1; + de2->ext_attr_len=0; + FillU32Palindrome(&de2->loc,tempc->loc+tempc->short_dir_blks); + FillU32Palindrome(&de2->size,tempc->long_dir_blks*CD_BLK_SIZE); + FillU16Palindrome(&de2->vol_seq_num,1); + CDate2ISO1(&de2->date,parent->datetime); + de2->flags=ISO1_ATTR_DIR; + de2->name_len=1; + de2->name=1; + de2->len+=de2->name_len; + de2(U8 *)+=de2->len; + + tempm1=tempm->sub; + while (tempm1) { + tempm2=tempm1->next; + if (!write) tempm1->user_data=CAlloc(sizeof(CCCDUserData)); + de1=de; + de12=de2; + if (tempm1->attr & _ATTR_DIR) { + n=CDFileCreate2(out_file,tempm1,de,de2,_cur_blk,tempm,write); + de(U8 *)+=sizeof(CISO1DirEntry)-1+n; + de2(U8 *)+=sizeof(CISO1DirEntry)-1+n<<1; + } else { + tempc=tempm1->user_data; + de->len=sizeof(CISO1DirEntry)-1; + de->ext_attr_len=0; + FillU32Palindrome(&de->loc,*_cur_blk); + tempc->loc=*_cur_blk; + if (write) + "%X:%s\n",*_cur_blk,tempm1->full_name; + FillU32Palindrome(&de->size,tempm1->size); + FillU16Palindrome(&de->vol_seq_num,1); + CDate2ISO1(&de->date,tempm1->datetime); + de->flags=0; + de->name_len=StrLen(tempm1->name); + StrCpy(&de->name,tempm1->name); + de->len=de->len+de->name_len; + de(U8 *)+=de->len; + + de2->len=sizeof(CISO1DirEntry)-1; + de2->ext_attr_len=0; + FillU32Palindrome(&de2->loc,*_cur_blk); + FillU32Palindrome(&de2->size,tempm1->size); + FillU16Palindrome(&de2->vol_seq_num,1); + CDate2ISO1(&de2->date,tempm1->datetime); + de2->flags=0; + de2->name_len=StrLen(tempm1->name)<<1; + ptr1=&de2->name; + ptr2=&tempm1->name; + for (i=0;iname_len;i=i+2) { + ptr1++; + *ptr1++=*ptr2++; + } + de2->len+=de2->name_len; + de2(U8 *)+=de2->len; + + in_file=FOpen(tempm1->full_name,"r"); + for (i=0;i<(FSize(in_file)+CD_BLK_SIZE-1)/CD_BLK_SIZE;i++) { + n=4; + if ((i+1)<<2>(FSize(in_file)+BLK_SIZE-1)>>BLK_SIZE_BITS) { + n=(FSize(in_file)+BLK_SIZE-1)>>BLK_SIZE_BITS&3; + MemSet(buf,0,CD_BLK_SIZE); + } + if (write) { + FRBlks(in_file,buf,i<<2,n); + FWBlks(out_file,buf,*_cur_blk<<2,n); + } + *_cur_blk+=1; + } + FClose(in_file); + } + if ((de1(U8 *)-dir_blk_buf(U8 *))/CD_BLK_SIZE!= + (de(U8 *) -dir_blk_buf(U8 *))/CD_BLK_SIZE) { + i=de1->len; + MemCpy(buf,de1,i); + MemSet(de1,0,i); + de=dir_blk_buf(U8 *)+(de(U8 *)-dir_blk_buf(U8 *))/CD_BLK_SIZE*CD_BLK_SIZE; + MemCpy(de,buf,i); + de(U8 *)+=i; + } + if ((de12(U8 *)-dir_blk_buf2(U8 *))/CD_BLK_SIZE!= + (de2(U8 *) -dir_blk_buf2(U8 *))/CD_BLK_SIZE) { + i=de12->len; + MemCpy(buf,de12,i); + MemSet(de12,0,i); + de2(U8 *)=dir_blk_buf2(U8 *)+(de2(U8 *)-dir_blk_buf2(U8 *))/CD_BLK_SIZE*CD_BLK_SIZE; + MemCpy(de2,buf,i); + de2(U8 *)+=i; + } + tempm1=tempm2; + } + + tempc=tempm->user_data; + + tempi->len=sizeof(CISO1DirEntry)-1; + tempi->ext_attr_len=0; + tempi->flags=ISO1_ATTR_DIR; + if (!tempm->name[0]) { + tempi->name_len=1; + tempi->name=1; + } else { + tempi->name_len=StrLen(tempm->name); + StrCpy(&tempi->name,tempm->name); + } + tempi->len+=tempi->name_len; + + n=de(U8 *)+1-dir_blk_buf(U8 *); + n=(n+CD_BLK_SIZE-1)/CD_BLK_SIZE; + FillU32Palindrome(&tempi->size,n*CD_BLK_SIZE); + FillU32Palindrome(&tempi->loc,*_cur_blk); + tempc->short_dir_blks=n; + tempc->loc=*_cur_blk; + FillU32Palindrome(&dir_blk_buf->size,n*CD_BLK_SIZE); + FillU32Palindrome(&dir_blk_buf->loc,*_cur_blk); + FillU16Palindrome(&tempi->vol_seq_num,1); + CDate2ISO1(&tempi->date,tempm->datetime); + if (write) + "%X:%s\n",*_cur_blk,tempm->full_name; + if (write) + FWBlks(out_file,dir_blk_buf,*_cur_blk<<2,n<<2); + *_cur_blk+=n; + + tempi2->len=sizeof(CISO1DirEntry)-1; + tempi2->ext_attr_len=0; + tempi2->flags=ISO1_ATTR_DIR; + if (!tempm->name[0]) { + tempi2->name_len=1; + tempi->name=1; + } else { + tempi2->name_len=StrLen(tempm->name)<<1; + ptr1=&tempi2->name; + ptr2=&tempm->name; + for (i=0;iname_len;i=i+2) { + ptr1++; + *ptr1++=*ptr2++; + } + } + tempi2->len+=tempi2->name_len; + n=de2(U8 *)+1-dir_blk_buf2(U8 *); + n=(n+CD_BLK_SIZE-1)/CD_BLK_SIZE; + FillU32Palindrome(&tempi2->size,n*CD_BLK_SIZE); + FillU32Palindrome(&tempi2->loc,*_cur_blk); + tempc->long_dir_blks=n; + FillU32Palindrome(&dir_blk_buf2->size,n*CD_BLK_SIZE); + FillU32Palindrome(&dir_blk_buf2->loc,*_cur_blk); + FillU16Palindrome(&tempi2->vol_seq_num,1); + CDate2ISO1(&tempi2->date,tempm->datetime); + if (write) + "%X:%s\n",*_cur_blk,tempm->full_name; + if (write) + FWBlks(out_file,dir_blk_buf2,*_cur_blk<<2,n<<2); + *_cur_blk+=n; + + Free(dir_blk_buf); + Free(dir_blk_buf2); + Free(buf); + return tempi->name_len; +} + +I64 CDTableLen(CDirEntry *tempm,I64 *size1,I64 *size2,I64 cur_depth) +//returns depth +{ + CDirEntry *tempm1=tempm->sub; + I64 max_depth=cur_depth,i; + while (tempm1) { + if (tempm1->attr & _ATTR_DIR) { + *size1+=sizeof(CISO1PathEntry)-2+ (StrLen(tempm1->name)+1)&-0x2; + *size2+=sizeof(CISO1PathEntry)-2+StrLen(tempm1->name)<<1; + i=CDTableLen(tempm1,size1,size2,cur_depth+1); + if (i>max_depth) max_depth=i; + } + tempm1=tempm1->next; + } + return max_depth; +} + +U0 CDFillPathTable(CDirEntry *tempm, + CISO1PathEntry **_itabbuf,CISO1PathEntry **_itabbuf2, + I64 parent_entry_num,Bool big_endian,I64 *first_free,I64 cur_level,I64 output_level) +{ + U8 *ptr1,*ptr2; + I64 i; + CISO1PathEntry *tabbuf =*_itabbuf, + *tabbuf2=*_itabbuf2; + CDirEntry *tempm1=tempm->sub,*tempm2; + CCCDUserData *tempc; + + if (cur_level==output_level) { + while (tempm1) { + if (tempm1->attr & _ATTR_DIR) { + tempc=tempm1->user_data; + tempc->path_entry_num=*first_free; + tabbuf->name_len=StrLen(tempm1->name); + if (big_endian) { + tabbuf->blk=EndianU32(tempc->loc); + tabbuf->parent_entry_num=EndianU16(parent_entry_num); + } else { + tabbuf->blk=tempc->loc; + tabbuf->parent_entry_num=parent_entry_num; + } + StrCpy(&tabbuf->name,tempm1->name); + + tabbuf(U8 *)+=sizeof(CISO1PathEntry)-2+ + (StrLen(tempm1->name)+1) & -0x2; + + tabbuf2->name_len=StrLen(tempm1->name)<<1; + if (big_endian) { + tabbuf2->blk=EndianU32(tempc->loc+tempc->short_dir_blks); + tabbuf2->parent_entry_num=EndianU16(parent_entry_num); + } else { + tabbuf2->blk=tempc->loc+tempc->short_dir_blks; + tabbuf2->parent_entry_num=parent_entry_num; + } + ptr1=&tabbuf2->name; + ptr2=&tempm1->name; + for (i=0;iname_len;i=i+2) { + ptr1++; + *ptr1++=*ptr2++; + } + tabbuf2(U8 *)+=sizeof(CISO1PathEntry)-2+ + StrLen(tempm1->name)<<1; + *first_free+=1; + } + tempm1=tempm1->next; + } + *_itabbuf=tabbuf; + *_itabbuf2=tabbuf2; + } + tempm1=tempm->sub; + while (tempm1) { + tempm2=tempm1->next; + if (tempm1->attr & _ATTR_DIR) { + tempc=tempm1->user_data; + CDFillPathTable(tempm1,_itabbuf,_itabbuf2,tempc->path_entry_num, + big_endian,first_free,cur_level+1,output_level); + } + tempm1=tempm2; + } +} + +class CElTorito +{ + U16 w[16]; + U8 bootable; //88=bootable 00=not bootable + U8 media_type; //0=no emulation 4=hard disk + U16 load_seg; //0000->07C0 + U8 sys_type; + U8 zero; + U16 sect_cnt; + U32 load_rba; //start addr of virtual disk + U8 zero2[20]; +}; + +/**** +#define PROD_CDROM_CFG "b10x20000\nt3 \n\n\n\n\n" +U0 MakeMyISO() +{ + Fmt('B',TRUE,FALSE); + CopyTree("::/SparrowOS","B:/SparrowOS"); + //Del("B:/SparrowOS/Adam/WordStat/WSDefs.DAT"); + Auto(PROD_CDROM_CFG); + InstallBoot('B','T'); + CDFileCreate(,"B:/*","",BOOTCD_BIN_Z); +} +****/ + + + +I have the following code in my start-up script. + +'E' is my primary hard drive SparrowOS partition + +'T' is my CD/DVD drive + +'Z' is a RAM temporary drive from which I make an ISO image. +You could use a hard drive directory instead of RAM. + +#define PROD_CDROM_CFG "b10x20000\nt3 \n\n\n\n\n" + +U0 BurnProductionCDImage() +{ + Cd("E:/SparrowOS"); + + //This enters my cfg + //for compiling OSMain. + Auto(PROD_CDROM_CFG); + + InstallBoot('E','T'); + Fmt('Z',TRUE,FALSE); + Drv('Z'); + DelTree("/SparrowOS"); + CopyTree("E:/SparrowOS","/SparrowOS"); + DelTree("/Temp"); + MkDir("/Temp"); + DelTree("/0000Boot"); + CopyTree("E:/0000Boot","/0000Boot"); + CDFileCreate(,"Z:/*",NULL,BOOTCD_BIN_Z); //sys_dft_iso_name + CDImageWrite('T'); +} +*/ + +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"$. +****/ + +public I64 CDFileCreate(U8 *filename=NULL,U8 *src_files_find_mask,U8 *fu_flags=NULL, + U8 *bootfile=NULL,I64 emulation=0) +//NULL filename uses sys_dft_iso_name. +//See the above sample code +//0=no emu 2=1.44meg 4=hard drive + +//Use "C:/*" if you want all files on the C: drive. +//Default flags are "+r" recurse. + +{ + CISO1PriDesc *iso =CAlloc(CD_BLK_SIZE), + *iso1=CAlloc(CD_BLK_SIZE), + *iso2=CAlloc(CD_BLK_SIZE), + *iso3=CAlloc(CD_BLK_SIZE); + CDirEntry *rootdir=CAlloc(sizeof(CDirEntry)); + I64 i,j, + cur_blk=0,bootfile_cd_blks=0,tabsize,tabsize2,first_free,max_depth, + fuf_flags=0; + U32 *d; + CElTorito *et=CAlloc(CD_BLK_SIZE); + U8 *filename2, + *zero_buf=CAlloc(CD_BLK_SIZE), + *bootfile_buf=NULL; + CISO1PathEntry *tabbuf=NULL,*tabbuf2=NULL,*itabbuf,*itabbuf2; + Bool okay=TRUE; + CFile *out_file=NULL; + CISO1DirEntry *tempi; + CCCDUserData *tempc; + + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + + if (!filename) + filename=sys_dft_iso_name; + filename2=DftExt(filename,"ISO"); + + if (bootfile) { + bootfile_buf=FileRead(bootfile,&bootfile_cd_blks); + if (bootfile_cd_blks>CD_BLK_SIZE*4) { + ST_ERR_ST "Boot files limited to 0x2000 bytes\n"; + goto done1; + } + bootfile_cd_blks=(bootfile_cd_blks+CD_BLK_SIZE-1)/CD_BLK_SIZE; + } + rootdir->attr=_ATTR_DIR; + rootdir->sub=FilesFind(src_files_find_mask,fuf_flags); + rootdir->datetime=GetCurTimeCDate; + rootdir->user_data=CAlloc(sizeof(CCCDUserData)); + tempc=rootdir->user_data; + tempc->path_entry_num=1; + + if (okay) { + cur_blk=CD_FILE_OFFSET>>2; + if (bootfile_buf) + //preboot and bootloader + cur_blk+=1+bootfile_cd_blks; + CDFileCreate2(out_file,rootdir, + &iso->root_dir_record, + &iso2->root_dir_record, + &cur_blk,rootdir,FALSE); + tabsize=sizeof(CISO1PathEntry); + tabsize2=sizeof(CISO1PathEntry); + max_depth=CDTableLen(rootdir,&tabsize,&tabsize2,1); + FillU32Palindrome(&iso->path_table_size,tabsize); + FillU32Palindrome(&iso2->path_table_size,tabsize2); + tabsize=(tabsize+CD_BLK_SIZE-1)/CD_BLK_SIZE; + cur_blk+=tabsize<<1; + tabsize2=(tabsize2+CD_BLK_SIZE-1)/CD_BLK_SIZE; + cur_blk+=tabsize2<<1; + } + if (okay) { + if (FileAttr(filename2) & _ATTR_CONTIGUOUS) + out_file=FOpen(filename2,"wc",cur_blk<<2); + else + out_file=FOpen(filename2,"w",cur_blk<<2); + if (!out_file) + okay=FALSE; + } + if (okay) { + cur_blk=0; + while (cur_blk>2) { + FWBlks(out_file,zero_buf,cur_blk<<2,4); + cur_blk++; + } + iso->type=ISO1T_PRI_VOL_DESC; + StrCpy(iso->id,"CD001"); + iso->version=1; + FillU16Palindrome(&iso->vol_set_size,1); + FillU16Palindrome(&iso->vol_seq_num,1); + FillU16Palindrome(&iso->log_block_size,CD_BLK_SIZE); + iso->file_structure_version=1; + + iso2->type=ISO1T_SUPPLEMENTARY_DESC; + StrCpy(iso2->id,"CD001"); + iso2->version=1; + FillU16Palindrome(&iso2->vol_set_size,1); + FillU16Palindrome(&iso2->vol_seq_num,1); + FillU16Palindrome(&iso2->log_block_size,CD_BLK_SIZE); + iso2->file_structure_version=1; + + iso1->type=ISO1T_BOOT_RECORD; + StrCpy(iso1->id,"CD001"); + iso1->version=1; + StrCpy(iso1(U8 *)+7,"EL TORITO SPECIFICATION"); + + cur_blk=CD_FILE_OFFSET>>2; + + if (bootfile_buf) { + d=iso1(U8 *)+0x47; + *d=cur_blk; + et->w[0]=1; + StrCpy(&et->w[2],"SparrowOS"); + et->w[15]=0xAA55; + j=0; + for (i=0;i<16;i++) //Checksum + j+=et->w[i]; + et->w[14]=-j; + if (bootfile_buf) + et->bootable=0x88; + //0=no emu 2=1.44meg 4=hard drive + et->media_type=emulation; + et->sect_cnt=4; //5 seems like the limit, 4 is safer + et->load_rba=cur_blk+1; +//$AN,"CDBOOT","CDBOOT"$ See $LK,"CDBootFileCreate","MN:CDBootFileCreate"$ +//See $LK,"BootCdProbe","MN:BootCdProbe"$(). + "%X: Pre Boot Blk\n",cur_blk; + FWBlks(out_file,et,cur_blk<<2,4); + cur_blk++; + + "%X: Boot Loader Blks\n",cur_blk; + FWBlks(out_file,bootfile_buf,cur_blk<<2,bootfile_cd_blks<<2); + cur_blk+=bootfile_cd_blks; + } + + CDFileCreate2(out_file,rootdir, + &iso->root_dir_record, + &iso2->root_dir_record, + &cur_blk,rootdir,TRUE); + + tabbuf=CAlloc(tabsize*CD_BLK_SIZE); + iso->type_l_path_table=cur_blk; + tabbuf->name_len=2; //Fill-in adam entry + tempi=&iso->root_dir_record; + tabbuf->blk=tempi->loc.little; + tabbuf->parent_entry_num=1; + tabbuf2=CAlloc(tabsize2*CD_BLK_SIZE); + iso2->type_l_path_table=cur_blk+tabsize; + tabbuf2->name_len=2; //Fill-in adam entry + tempi=&iso2->root_dir_record; + tabbuf2->blk=tempi->loc.little; + tabbuf2->parent_entry_num=1; + itabbuf=tabbuf+1; + itabbuf2=tabbuf2+1; + first_free=2; + for (i=1;i<=max_depth;i++) + CDFillPathTable(rootdir,&itabbuf,&itabbuf2, + 1,FALSE,&first_free,1,i); + "%X: Path Table 0\n",cur_blk; + FWBlks(out_file,tabbuf,cur_blk<<2,tabsize<<2); + cur_blk+=tabsize; + "%X: Path Table 1\n",cur_blk; + FWBlks(out_file,tabbuf2,cur_blk<<2,tabsize2<<2); + cur_blk+=tabsize2; + + + MemSet(tabbuf,0,tabsize*CD_BLK_SIZE); + iso->type_m_path_table=EndianU32(cur_blk); + tabbuf->name_len=2; //Fill-in adam entry + tempi=&iso->root_dir_record; + tabbuf->blk=tempi->loc.big; + tabbuf->parent_entry_num=EndianU16(1); + MemSet(tabbuf2,0,tabsize2*CD_BLK_SIZE); + iso2->type_m_path_table=EndianU32(cur_blk+tabsize); + tabbuf2->name_len=2; //Fill-in adam entry + tempi=&iso2->root_dir_record; + tabbuf2->blk=tempi->loc.big; + tabbuf2->parent_entry_num=EndianU16(1); + itabbuf=tabbuf+1; + itabbuf2=tabbuf2+1; + first_free=2; + for (i=1;i<=max_depth;i++) + CDFillPathTable(rootdir,&itabbuf,&itabbuf2, + 1,TRUE,&first_free,1,i); + "%X: Path Table 2\n",cur_blk; + FWBlks(out_file,tabbuf,cur_blk<<2,tabsize<<2); + cur_blk+=tabsize; + "%X: Path Table 3\n",cur_blk; + FWBlks(out_file,tabbuf2,cur_blk<<2,tabsize2<<2); + cur_blk+=tabsize2; + + CDirListDel2(rootdir); + FillU32Palindrome(&iso->vol_space_size,cur_blk); + FillU32Palindrome(&iso2->vol_space_size,cur_blk); + FWBlks(out_file,iso,16<<2,4); + + iso3->type=ISO1T_TERMINATOR; + StrCpy(iso3->id,"CD001"); + iso3->version=1; + if (bootfile_buf) { + FWBlks(out_file,iso1,17<<2,4); + FWBlks(out_file,iso2,18<<2,4); + FWBlks(out_file,iso3,19<<2,4); + } else { + FWBlks(out_file,iso2,17<<2,4); + FWBlks(out_file,iso3,18<<2,4); + } + } else + cur_blk=0; + + FClose(out_file); + Free(tabbuf); + Free(tabbuf2); +done1: + Free(bootfile_buf); + Free(filename2); + Free(et); + Free(zero_buf); + Free(iso); + Free(iso1); + Free(iso2); + Free(iso3); + return cur_blk; +} +#help_index "" diff --git a/SparrowOS/Adam/Dsk/FileMgr.CPP b/SparrowOS/Adam/Dsk/FileMgr.CPP new file mode 100644 index 0000000..2623ead --- /dev/null +++ b/SparrowOS/Adam/Dsk/FileMgr.CPP @@ -0,0 +1,765 @@ +#help_index "Doc/Output" +U0 CDirFileDoc(CDoc *doc,CDirEntry *tempm) +{ + CDocEntry *doc_e; + while (tempm) { + if (tempm->attr & _ATTR_DIR) { + doc_e=DocPrintF(doc,"$$TR,\"%s\"$$",tempm->name); + doc_e->user_data=tempm; + tempm->user_data=doc_e; + DocPutS(doc,"\n$$ID,+2$$"); + if (tempm->sub) + CDirFileDoc(doc,tempm->sub); + DocPutS(doc,"$$ID,-2$$"); + } else { + doc_e=DocPrintF(doc,"$$MU-LE,\"%s\"$$", + tempm->name); + doc_e->user_data=tempm; + tempm->user_data=doc_e; + DocPutS(doc,"\n"); + } + tempm=tempm->next; + } +} + +#help_index "File/Cmd Line (Typically);Cmd Line (Typically)" + +class CFMUncollapsedList +{ + CFMUncollapsedList *next; + U8 *name; +}; + +CFMUncollapsedList *FMCollectUncollapsedList(CDoc *doc) +{ + CDocEntry *doc_e=doc->root.next; + CFMUncollapsedList *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->next=result; + result=tempc; + tempc->name=StrNew(tempm->full_name); + } + } + } + doc_e=doc_e->next; + } + return result; +} + +U0 FMMarkUncollapsed(CDoc *doc,CFMUncollapsedList *tempc,U8 *cur_entry,U8 *next_entry) +{ + CDocEntry *doc_e=doc->root.next; + CFMUncollapsedList *tempc1; + CDirEntry *tempm; + while (doc_e!=doc) { + if (doc_e->type_u8==DOCT_TREE) { + tempm=doc_e->user_data; + tempc1=tempc; + while (tempc1) { + if (!StrCmp(tempc1->name,tempm->full_name)) { + doc_e->flags1&=~DOCEF1_CHECKED_COLLAPSED; + break; + } + tempc1=tempc1->next; + } + if (cur_entry) { + if (!StrNCmp(cur_entry,tempm->full_name,StrLen(tempm->full_name))) { + doc->cur_entry=doc_e; + if (StrLen(tempm->full_name)==StrLen(cur_entry)) + cur_entry=NULL; + } else if (next_entry) { + if (!StrNCmp(next_entry,tempm->full_name,StrLen(tempm->full_name))) { + doc->cur_entry=doc_e; + if (StrLen(tempm->full_name)==StrLen(next_entry)) + cur_entry=NULL; + } + } + } + } else if (doc_e->type_u8==DOCT_MENU_VAL) { + tempm=doc_e->user_data; + if (cur_entry) { + if (!StrNCmp(cur_entry,tempm->full_name,StrLen(tempm->full_name))) { + doc->cur_entry=doc_e; + if (StrLen(tempm->full_name)==StrLen(cur_entry)) + cur_entry=NULL; + } else if (next_entry) { + if (!StrNCmp(next_entry,tempm->full_name,StrLen(tempm->full_name))) { + doc->cur_entry=doc_e; + if (StrLen(tempm->full_name)==StrLen(next_entry)) + cur_entry=NULL; + } + } + } + } + doc_e=doc_e->next; + } +} + +U0 FMDelUncollapsedList(CFMUncollapsedList *tempc) +{ + CFMUncollapsedList *tempc1; + while (tempc) { + tempc1=tempc->next; + Free(tempc->name); + Free(tempc); + tempc=tempc1; + } +} + +CDirEntry *FMRebuildDocDrv(U8 drv_let,CDoc *doc,CDirEntry **_root,Bool init) +{ + CDocEntry *doc_e; + CDirEntry *tempm,*tempm1; + U8 *st; + tempm=CAlloc(sizeof(CDirEntry)); + tempm->full_name=MSPrintF("%C:/",drv_let); + tempm->attr=_ATTR_DIR; + st=MSPrintF("%c:/*",drv_let); + if (init) + tempm->sub=tempm1=FilesFind(st,1<full_name); + doc_e->user_data=tempm; + tempm->user_data=doc_e; + tempm->next=*_root; + *_root=tempm; + DocPutS(doc,"\n$$ID,+2$$"); + DocBottom(doc); + if (init) { + CDirFileDoc(doc,tempm1); + while (tempm1) { + tempm1->parent=tempm; + tempm1=tempm1->next; + } + } + DocPutS(doc,"$$ID,-2$$"); + return tempm; +} + +U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_root,I64 mode) +{ + CPrt *p; + I64 i; + CDoc *doc=*_doc,*doc2=sys_clipboard_doc,*parent_doc; + CFMUncollapsedList *tempc=NULL; + U8 *cur_entry=NULL,*next_entry=NULL; + CDocEntry *doc_ce; + CDirEntry *tempm,*tempm1,*cur_tree_entry; + if (!doc) + parent_doc=DocCur; + else { + parent_doc=doc->parent_doc; + DocQueRem(doc); + DocUnlock(doc); + WinMgrSync; + DocLock(doc); + cur_tree_entry=NULL; + doc_ce=doc->cur_entry; + if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) + cur_tree_entry=doc_ce->user_data; + if (cur_tree_entry) + cur_entry=StrNew(cur_tree_entry->full_name); + tempm=NULL; + if (doc_ce!=doc) + doc_ce=doc_ce->next; + while (doc_ce!=doc) { + if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) + tempm=doc_ce->user_data; + else + tempm=NULL; + if (tempm) { + tempm1=tempm->parent; + while (tempm1) { + if (tempm1==cur_tree_entry) { + tempm=NULL; + break; + } else + tempm1=tempm1->parent; + } + if (tempm) + break; + } + doc_ce=doc_ce->next; + } + if (tempm) + next_entry=StrNew(tempm->full_name); + + tempc=FMCollectUncollapsedList(doc); + DocDel(doc); + } + if (*_root) { + CDirListDel(*_root); + *_root=NULL; + } + doc=DocNew; + StrCpy(doc->desc,"FileMan"); + doc->parent_doc=parent_doc; + 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"); + break; + case FM_PICK_FILE: + DocPutS(doc,"$$FG,PURPLE$$Pick file and press $$FG$$\n\n"); + doc->flags|=DOCF_MIN_SIZE; + break; + case FM_PICK_DIR: + DocPutS(doc,"$$FG,PURPLE$$Pick directory and press $$FG$$\n\n"); + doc->flags|=DOCF_MIN_SIZE; + break; + } + for (i=0;itype==PT_NATIVE||p->type==PT_FAT32) + FMRebuildDocDrv(Prt2Drv(p),doc,_root,TRUE); + else if (p->type==PT_ISO9660) { + if (p->bdev->flags&BDF_INITIALIZED) + tempm=FMRebuildDocDrv(Prt2Drv(p),doc,_root,TRUE); + else { + tempm=FMRebuildDocDrv(Prt2Drv(p),doc,_root,FALSE); + tempm->flags|=DEF_NOT_INITIALIZED; + } + tempm->flags|=DEF_REMOVABLE; + } + } + DocHome(doc); + FMMarkUncollapsed(doc,tempc,cur_entry,next_entry); + DocCenter(doc); + DocRst(doc2,TRUE); + FMDelUncollapsedList(tempc); + Free(cur_entry); + Free(next_entry); + *_doc=doc; + DocLock(doc); + DocQueRem(DocCur); + DocQueIns(doc,Fs->last_doc); +} + +U0 FMRename(CDoc *doc) +{ + CEdFileName fn; + CDocEntry *doc_e=doc->cur_entry; + CDirEntry *tempm=NULL,*parent; + if (doc_e->type_u8==DOCT_MENU_VAL) { + tempm=doc_e->user_data; + if (parent=tempm->parent) { + Cd(parent->full_name); + StrCpy(fn.name,tempm->name); + if (DocFormDo(fn.name,"CEdFileName")) { + Silent(ON); + Move(tempm->name,fn.name); + Silent(OFF); + } + } + } else if (doc_e->type_u8==DOCT_TREE) { + tempm=doc_e->user_data; + if (parent=tempm->parent) { + Cd(parent->full_name); + StrCpy(fn.name,tempm->name); + if (DocFormDo(fn.name,"CEdFileName")) { + if (StrCmp(tempm->name,fn.name)) { + Silent(ON); + if (CopyTree(tempm->name,fn.name)) + DelTree(tempm->name); + Silent(OFF); + } + } + } + } +} + +U0 FMMkDir(CDoc *doc) +{ + CEdFileName fn; + CDocEntry *doc_e=doc->cur_entry; + CDirEntry *tempm=NULL,*parent; + *fn.name=0; + if (doc_e->type_u8==DOCT_MENU_VAL) { + tempm=doc_e->user_data; + if (parent=tempm->parent) { + Cd(parent->full_name); + if (DocFormDo(fn.name,"CEdFileName")) { + Silent(ON); + MkDir(fn.name); + Silent(OFF); + } + } + } else if (doc_e->type_u8==DOCT_TREE) { + tempm=doc_e->user_data; + Cd(tempm->full_name); + if (DocFormDo(fn.name,"CEdFileName")) { + Silent(ON); + MkDir(fn.name); + Silent(OFF); + } + } +} + +U0 FMDelete(CDoc *doc) +{ + U8 *st; + CDocEntry *doc_ce=doc->cur_entry; + CDirEntry *tempm; + if (doc_ce->type_u8==DOCT_MENU_VAL) { + tempm=doc_ce->user_data; + Silent(ON); + st=MSPrintF("Delete: %s",tempm->full_name); + if (PopUpCancelOk(st)) + Del(tempm->full_name); + Free(st); + Silent(OFF); + } else if (doc_ce->type_u8==DOCT_TREE) { + tempm=doc_ce->user_data; + Silent(ON); + st=MSPrintF("Delete: %s",tempm->full_name); + if (PopUpCancelOk(st)) + DelTree(tempm->full_name); + Free(st); + Silent(OFF); + } +} + +U0 FMMount(CDoc *doc) +{ + CDocEntry *doc_ce=doc->cur_entry; + CDirEntry *tempm; + if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) + tempm=doc_ce->user_data; + else + tempm=NULL; + if (tempm) { + while (tempm->parent) + tempm=tempm->parent; + Silent(ON); + ChgDsk(*tempm->full_name); + Silent(OFF); + } +} + +U0 FMFmtDrv(CDoc *doc) +{ + CDocEntry *doc_ce=doc->cur_entry; + CDirEntry *tempm; + U8 *st=NULL; + if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) + tempm=doc_ce->user_data; + else + tempm=NULL; + if (tempm) { + while (tempm->parent) + tempm=tempm->parent; + st=MSPrintF("Format Drive '%c'?\nAre You Sure?\n",*tempm->full_name); + if (PopUpCancelOk(st)) { + Silent(ON); + Fmt(*tempm->full_name,TRUE,FALSE); + Silent(OFF); + } + } + Free(st); +} + +U0 FMMakeISO(CDoc *doc) +{ + CDocEntry *doc_ce=doc->cur_entry; + CDirEntry *tempm; + U8 *st; + if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) + tempm=doc_ce->user_data; + else + tempm=NULL; + if (tempm) { + if (doc_ce->type_u8==DOCT_MENU_VAL) + tempm=tempm->parent; + if (tempm && *tempm->full_name) { + Silent(ON); + if (tempm->full_name[StrLen(tempm->full_name)-1]=='/') + st=MSPrintF("%s*",tempm->full_name); + else + st=MSPrintF("%s/*",tempm->full_name); + CDFileCreate(,st); + Free(st); + Silent(OFF); + } + } +} + +U0 FMBurnISO(CDoc *doc) +{ + CDocEntry *doc_ce=doc->cur_entry; + CDirEntry *tempm; + if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) + tempm=doc_ce->user_data; + else + tempm=NULL; + if (tempm) { + while (tempm->parent) + tempm=tempm->parent; + Silent(ON); + CDImageWrite(*tempm->full_name); + Silent(OFF); + } +} + +U0 FMCopy(CDoc *doc) +{ + CDoc *doc2=sys_clipboard_doc; + U8 *st; + CDocEntry *doc_ce=doc->cur_entry,*doc_e; + CDirEntry *tempm,*tempm1=NULL,*tempm2; + Bool unlock_doc2=DocLock(doc2); + doc_e=doc2->root.next; + + tempm1=doc_ce->user_data; + if (doc_ce->type_u8==DOCT_MENU_VAL) + tempm1=tempm1->parent; + else if (doc_ce->type_u8!=DOCT_TREE) + tempm1=NULL; + if (tempm1) { + while (doc_e!=doc2) { + if (doc_e->type_u8==DOCT_MENU_VAL) { + tempm=doc_e->user_data; + tempm->flags|=DEF_PROCESSED; + tempm2=tempm->parent; + if (!tempm2 || !(tempm2->flags&DEF_PROCESSED)) { + Silent(ON); + Copy(tempm->full_name,tempm1->full_name); + Silent(OFF); + } + } else if (doc_e->type_u8==DOCT_TREE) { + tempm=doc_e->user_data; + tempm->flags|=DEF_PROCESSED; + tempm2=tempm->parent; + if (!tempm2 || !(tempm2->flags&DEF_PROCESSED)) { + Silent(ON); + if (*tempm1->name) + st=MSPrintF("%s/%s",tempm1->full_name,tempm->name); + else + st=MSPrintF("%s%s",tempm1->full_name,tempm->name); + CopyTree(tempm->full_name,st); + Free(st); + Silent(OFF); + } + } + doc_e=doc_e->next; + } + } + if (unlock_doc2) + DocUnlock(doc2); +} + +#define FMR_INCLUDE 0 +#define FMR_ADAM_INCLUDE 1 +#define FMR_DELETE 2 +#define FMR_RENAME 3 +#define FMR_MKDIR 4 +#define FMR_PLAIN 5 +#define FMR_PASTE 6 +#define FMR_CHG_DSK 7 +#define FMR_FORMAT 8 +#define FMR_MAKE_ISO 9 +#define FMR_BURN_ISO 10 +#define FMR_HELP 11 + +I64 PopUpCancelPasteDel(U8 *header=NULL,U8 *footer=NULL) +{ + I64 i; + CDoc *doc=DocNew; + if (header) DocPutS(doc,header); + DocPutS(doc,"$$CM+LX,1,1 $$$$BT,\"INCLUDE \",FMR_INCLUDE$$" + "$$CM+LX,27,0$$$$BT,\"ADAM INCLUDE \",FMR_ADAM_INCLUDE$$" + "$$CM+LX,1,3 $$$$BT,\"DELETE \",FMR_DELETE$$" + "$$CM+LX,27,0$$$$BT,\"RENAME \",FMR_RENAME$$" + "$$CM+LX,1,3 $$$$BT,\"MAKE DIRECTORY \",FMR_MKDIR$$" + "$$CM+LX,27,0$$$$BT,\"PLAIN-TEXT EDIT \",FMR_PLAIN$$" + "$$CM+LX,1,3 $$$$BT,\"PASTE CLIPBOARD FILES \",FMR_PASTE$$" + "$$CM+LX,27,0$$$$BT,\"CHANGE DISK(MOUNT IT) \",FMR_CHG_DSK$$" + "$$CM+LX,1,3 $$$$BT,\"FORMAT \",FMR_FORMAT$$" + "$$CM+LX,1,3 $$$$BT,\"MAKE ISO (CD-ROM) FILE\",FMR_MAKE_ISO$$" + "$$CM+LX,27,0$$$$BT,\"BURN ISO (CD-ROM) FILE\",FMR_BURN_ISO$$" + "$$CM+LX,1,3 $$$$BT,\"HELP \",FMR_HELP$$" + "$$CM+LX,27,0$$$$BT,\"CANCEL \",DOCM_CANCEL$$\n"); + if (footer) DocPutS(doc,footer); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +U0 FMRightClick() +{ + switch (PopUpCancelPasteDel) { + case FMR_INCLUDE: + Msg(MSG_KEY_DOWN,0,0x3F0000003F); + break; + case FMR_ADAM_INCLUDE: + Msg(MSG_KEY_DOWN,0,0x23F0000023F); + break; + case FMR_DELETE: + Msg(MSG_KEY_DOWN,CH_CTRLY,0); + break; + case FMR_RENAME: + Msg(MSG_KEY_DOWN,'r',0); + break; + case FMR_MKDIR: + Msg(MSG_KEY_DOWN,'d',0); + break; + case FMR_PLAIN: + Msg(MSG_KEY_DOWN,CH_SHIFT_SPACE,0); + break; + case FMR_PASTE: + Msg(MSG_KEY_DOWN,0,SC_INS+SCF_SHIFT); + break; + case FMR_CHG_DSK: + Msg(MSG_KEY_DOWN,'m',0); + break; + case FMR_FORMAT: + Msg(MSG_KEY_DOWN,'f',0); + break; + case FMR_MAKE_ISO: + Msg(MSG_KEY_DOWN,'M',0); + break; + case FMR_BURN_ISO: + Msg(MSG_KEY_DOWN,'B',0); + break; + case FMR_HELP: + Msg(MSG_KEY_DOWN,CH_CTRLM,0x43200000432); + break; + } +} + + +U8 *fm_ip_str=NULL; +U0 (*fp_old_final_screen_update)(CDC *dc); + +U0 FMFinalScreenUpdate(CDC *dc) +{ + if (fm_ip_str) { + dc->color=LTRED; + GrPutS(dc,ipx,ipy,fm_ip_str); + } + (*fp_old_final_screen_update)(dc); +} + +public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL) +{ + CDirEntry *root=NULL,*tempm,*tempm1,*tempm2; + I64 sc,ch,p1,p2,msg_code; + CDoc *doc=NULL,*old_doc=DocCur; + U8 *result=NULL,*st,*st2,*old_cur_dir=CurDir; + CDocEntry *doc_ce=NULL,*doc_e; + Bool okay; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + fp_old_final_screen_update=fp_final_screen_update; + MenuFilePush("::/SparrowOS/Doc/FileMgrPullDown.TXT.Z"); + FMRebuildDoc(&doc,&root,mode); + if (tempm1=CdDir(root,old_cur_dir)) + doc->cur_entry=tempm1->user_data; + while (tempm1) { + if (tempm1->attr&_ATTR_DIR) + tempm1->user_data(CDocEntry *)->flags1&=~DOCEF1_CHECKED_COLLAPSED; + tempm1=tempm1->parent; + } + do { + DocUnlock(doc); + do msg_code=GetMsg(&p1,&p2, + 1<cur_entry; + fm_ip_str=doc_ce->tag; + fp_final_screen_update=&FMFinalScreenUpdate; + break; + case MSG_IP_L_UP: + if (doc_ce) { + fp_final_screen_update=fp_old_final_screen_update; + if (SetCursorPos(Fs,p1/FONT_WIDTH+Fs->win_left+Fs->win_scroll_x/FONT_WIDTH,p2/FONT_HEIGHT+Fs->win_top+Fs->win_scroll_y/FONT_HEIGHT,TRUE)) { + doc_e=doc->cur_entry; + if (doc_e!=doc_ce) { + st2=NULL; + if (doc_e->type_u8==DOCT_MENU_VAL) { + tempm1=doc_e->user_data; + if (tempm1=tempm1->parent) + st2=StrNew(tempm1->full_name); + } else if (doc_e->type_u8==DOCT_TREE) { + tempm1=doc_e->user_data; + st2=StrNew(tempm1->full_name); + } + if (st2 && doc_ce->type_u8==DOCT_MENU_VAL) { + tempm=doc_ce->user_data; + Silent(ON); + Move(tempm->full_name,st2); + Silent(OFF); + FMRebuildDoc(&doc,&root,mode); + } else if (st2 && doc_ce->type_u8==DOCT_TREE) { + tempm=doc_ce->user_data; + okay=TRUE; + tempm2=tempm1; + while (tempm2) { + if (tempm2!=tempm) + tempm2=tempm2->parent; + else { + okay=FALSE; + break; + } + } + if (okay) { + if (*tempm1->name) + st=MSPrintF("%s/%s",tempm1->full_name,tempm->name); + else + st=MSPrintF("%s%s",tempm1->full_name,tempm->name); + if (StrCmp(tempm->full_name,st)) { + Silent(ON); + CopyTree(tempm->full_name,st); + DelTree(tempm->full_name); + Silent(OFF); + FMRebuildDoc(&doc,&root,mode); + } + Free(st); + } + } + Free(st2); + FlushMsgs; + } else + if (doc_e->type_u8==DOCT_MENU_VAL) { + DocUnlock(doc); + Ed(doc_e->user_data(CDirEntry *)->full_name); + DocLock(doc); + } + doc_ce=NULL; + } + } + break; + case MSG_KEY_DOWN: + doc_ce=NULL; + ch=p1; sc=p2; + if (sc.u8[0]==SC_DELETE && !(sc&(SCF_SHIFT|SCF_CTRL))) + ch=CH_CTRLY; + if (ch && sc&SCF_ALT) goto regular_key; + switch (ch) { + case CH_NEW_LINE: + DocUnlock(doc); + FMRightClick; + DocLock(doc); + break; + case CH_CTRLV: + FMCopy(doc); + FMRebuildDoc(&doc,&root,mode); + break; + case 'r': + DocUnlock(doc); + FMRename(doc); + FMRebuildDoc(&doc,&root,mode); + break; + case 'd': + DocUnlock(doc); + FMMkDir(doc); + FMRebuildDoc(&doc,&root,mode); + break; + case CH_CTRLY: + DocUnlock(doc); + FMDelete(doc); + FMRebuildDoc(&doc,&root,mode); + break; + case 'm': + DocUnlock(doc); + FMMount(doc); + FMRebuildDoc(&doc,&root,mode); + break; + case 'M': + DocUnlock(doc); + FMMakeISO(doc); + FMRebuildDoc(&doc,&root,mode); + break; + case 'B': + DocUnlock(doc); + FMBurnISO(doc); + FMRebuildDoc(&doc,&root,mode); + break; + case 'f': + DocUnlock(doc); + FMFmtDrv(doc); + FMRebuildDoc(&doc,&root,mode); + break; + case CH_SHIFT_ESC: + break; + case CH_SPACE: + if (doc->cur_entry->type_u8==DOCT_MENU_VAL) { + DocUnlock(doc); + Ed(doc->cur_entry->user_data(CDirEntry *)->full_name); + DocLock(doc); + } else + goto regular_key; + break; + case CH_SHIFT_SPACE: + if (doc->cur_entry->type_u8==DOCT_MENU_VAL) { + DocUnlock(doc); + Plain(doc->cur_entry->user_data(CDirEntry *)->full_name); + DocLock(doc); + } else + goto regular_key; + break; + case CH_ESC: + doc_ce=doc->cur_entry; + tempm=doc_ce->user_data; + if (mode==FM_PICK_FILE && doc_ce->type_u8==DOCT_MENU_VAL) + result=StrNew(tempm->full_name,mem_task); + else if (mode==FM_PICK_DIR) { + if (doc_ce->type_u8==DOCT_TREE) + result=StrNew(tempm->full_name,mem_task); + else if (doc_ce->type_u8==DOCT_MENU_VAL && (tempm=tempm->parent)) + result=StrNew(tempm->full_name,mem_task); + } + break; + default: + if (sc.u8[0]==SC_INS && sc&SCF_SHIFT && !(sc&SCF_CTRL)) { + FMCopy(doc); + FMRebuildDoc(&doc,&root,mode); + } else if (sc.u8[0]==SC_F5) { + if (doc->cur_entry->type_u8==DOCT_MENU_VAL) { + tempm=doc->cur_entry->user_data; + DocUnlock(doc); + if (sc&SCF_SHIFT) + AdamFile(tempm->full_name); + else + PopUpFile(tempm->full_name); + DocLock(doc); + } + } else { +regular_key: + DocUnlock(doc); + PutKey(ch,sc); + DocLock(doc); + } + } + break; + } + } while (ch!=CH_ESC && ch!=CH_SHIFT_ESC); + fp_final_screen_update=fp_old_final_screen_update; + DocQueRem(doc); + DocQueIns(old_doc,Fs->last_doc); + SettingsPop; + DocDel(doc); + CDirListDel(root); + Cd(old_cur_dir); + Free(old_cur_dir); + if (mode!=FM_NORMAL && !result) + result=StrNew("",mem_task); + MenuPop; + return result; +} +#help_index "" diff --git a/SparrowOS/Adam/FileBMP.CPP b/SparrowOS/Adam/FileBMP.CPP new file mode 100644 index 0000000..afac4d3 --- /dev/null +++ b/SparrowOS/Adam/FileBMP.CPP @@ -0,0 +1,213 @@ +#help_index "Graphics/Windows BMP Files" + +//This provides support for Window's BMP files. + +class CFileBMP +{ + U16 type; + U32 file_size; + U32 reserved; + U32 data_offset; + + U32 header_size; + U32 width; + U32 height; + U16 planes; + U16 bit_cnt; + U32 compression; + U32 image_size; + U32 x_pixels_per_meter; + U32 y_pixels_per_meter; + U32 colors_used; + U32 important_colors; + + U0 end; + + CBGR palette[16]; +}; + + +CFileBMP *BMPFileNew(I64 width,I64 height,I64 bits) +{ + 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; + 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); + } + return r; +} + + +public CFileBMP *BMPFile4To(CDC *dc) +{ +//To Windows 4 bit BMP + U8 *src; + CFileBMP *r=BMPFileNew(dc->width,dc->height,4); + I64 x,y,w=dc->width>>1; + U8 *bgr; + bgr=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,24); + I64 i,x,y; + CBGR *bgr; + + bgr=r(U8 *)+r->data_offset; + for (y=dc->height-1;y>=0;y--) { + src=y*dc->width_internal+dc->body; + for (x=0;xwidth;x++) { + i=*src++; + if (i&BLUE) bgr->b=0x7F; + if (i&GREEN) bgr->g=0x7F; + if (i&RED) bgr->r=0x7F; + if (i&8) { + if (bgr->b) bgr->b=0xFF; + if (bgr->g) bgr->g=0xFF; + if (bgr->r) bgr->r=0xFF; + } + bgr(U8 *)+=4; + } + } + return r; +} + +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) + r=BMPFile24To(dc); + else { + "Format Not Supported.\n"; + return 0; + } + size=r->file_size; + FileWrite(filename,r,r->file_size); + Free(r); + return size; +} + +U8 *BMPFilePaletteNew(CFileBMP *r) +{ + I64 i,j,best,score,best_score; + CBGR palette[16]; + U8 *result=CAlloc(16*sizeof(U8)); + GetVGAPalette4(palette); + for (i=0;i<16;i++) { + best=i; + best_score=MAX_I64; + for (j=0;j<16;j++) { + score=SqrI64(r->palette[i].r-palette[j].r)+ + SqrI64(r->palette[i].g-palette[j].g)+ + SqrI64(r->palette[i].b-palette[j].b); + if (scorewidthheightwidth,r->height); + ptr1+=r->data_offset; + if (r->bit_cnt==4) { + 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 (!use_ms_paint_palette) + Free(palette_map); + } else { + "Format Not Supported.\n"; + DCDel(result); + result=NULL; + } + } else + "Invalid BMP File\n"; + Free(r); + } + return result; +} + +#help_index "Graphics/CSprite;Graphics/Windows BMP Files;Doc/Output" +public U0 DocPutBMPFile(CDoc *doc=NULL,U8 *fname,Bool use_ms_paint_palette=FALSE) +{ + CDC *dc=BMPFileRead(fname,use_ms_paint_palette); + CSprite *elems=DC2Sprite(dc); + DocPutSprite(doc,elems); + Free(elems); + DCDel(dc); +} + +#help_index "Graphics/Windows BMP Files;Graphics/Screen" +public I64 BMPFileCaptureScreen(U8 *filename,I64 bits=4) +{ + CDC *dc=DCCaptureScreen; + I64 size=BMPFileWrite(filename,dc,bits); + DCDel(dc); + return size; +} + +#help_index "" diff --git a/SparrowOS/Adam/Gr/CSpriteBitMap.CPP b/SparrowOS/Adam/Gr/CSpriteBitMap.CPP new file mode 100644 index 0000000..6574af8 --- /dev/null +++ b/SparrowOS/Adam/Gr/CSpriteBitMap.CPP @@ -0,0 +1,603 @@ +#define GEBM_END 0 +#define GEBM_CONT 1 +#define GEBM_COLOR 2 +#define GEBM_DITHER_COLOR 3 +#define GEBM_WIDTH 4 +#define GEBM_SNAP 5 +#define GEBM_PT 6 +#define GEBM_LINE 7 +#define GEBM_ARROW 8 +#define GEBM_RECT 9 +#define GEBM_CIRCLE 10 +#define GEBM_TEXT 11 +#define GEBM_TEXT_BOX 12 +#define GEBM_TEXT_DIAMOND 13 +#define GEBM_FLOOD_FILL 14 +#define GEBM_FLOOD_FILL_NOT 15 +#define GEBM_POLYLINE 16 +#define GEBM_POLYPT 17 +#define GEBM_CUT 18 +#define GEBM_DELETE 19 +#define GEBM_PASTE 20 +#define GEBM_PASTE_TRANSPARENT 21 +#define GEBM_FIND_AND_REPLACE 22 +#define GEBM_TRIM_TO_EXTENTS 23 +#define GEBM_UNDO 24 + +I64 PopUpCSpriteBitMap(CColorROPU32 color,I64 width,I64 snap,F64 ip_scaler) +{ + I64 i; + U8 *st1,*st2,buf[136]; + CDoc *doc=DocNew; + + Color2Text(buf,color); + if (color&ROPF_DITHER) { + st1=""; + st2=buf; + } else { + st1=buf; + st2=""; + } + + DocPrintF(doc,"$$FG,PURPLE$$$$TX+CX,\"BitMap Menu\"$$$$FG$$\n" + "$$FG,RED$$Settings$$FG$$\n" + "$$MU-UL,\"Color %s\",GEBM_COLOR$$\n" + "$$MU-UL,\"Dither Color %s\",GEBM_DITHER_COLOR$$\n" + "$$MU-UL,\"Width %d\",GEBM_WIDTH$$\n" + "$$MU-UL,\"Snap %d %5.3f\",GEBM_SNAP$$\n" + "$$MU-UL,\"Find & Replace Color\",GEBM_FIND_AND_REPLACE$$\n" + "$$MU-UL,\"Trim to Extents\",GEBM_TRIM_TO_EXTENTS$$\n" + "\n$$FG,RED$$Objects$$FG$$\n" + "$$MU-UL,\"Point\",GEBM_PT$$\n" + "$$MU-UL,\"Line\",GEBM_LINE$$\n" + "$$MU-UL,\"Arrow\",GEBM_ARROW$$\n" + "$$MU-UL,\"Rect\",GEBM_RECT$$\n" + "$$MU-UL,\"Circle\",GEBM_CIRCLE$$\n" + "$$MU-UL,\"Text\",GEBM_TEXT$$\n" + "$$MU-UL,\"Text Box\",GEBM_TEXT_BOX$$\n" + "$$MU-UL,\"Text Diamond\",GEBM_TEXT_DIAMOND$$\n" + "$$MU-UL,\"Flood Fill\",GEBM_FLOOD_FILL$$\n" + "$$MU-UL,\"Flood Fill Not Color\",GEBM_FLOOD_FILL_NOT$$\n" + "$$MU-UL,\"PolyLine\",GEBM_POLYLINE$$\n" + "$$MU-UL,\"PolyPoint\",GEBM_POLYPT$$\n" + "\n$$FG,RED$$Clipboard$$FG$$\n" + "$$MU-UL,\"Cut\",GEBM_CUT$$\n" + "$$MU-UL,\"Delete\",GEBM_DELETE$$\n" + "$$MU-UL,\"Paste\",GEBM_PASTE$$\n" + "$$MU-UL,\"Paste Transparent\",GEBM_PASTE_TRANSPARENT$$\n" + "\n$$MU-UL,\"Undo\",GEBM_UNDO$$\n" + "\n$$FM,PURPLE$$$$MU-UL,\"+] Vect Object Menu\",GEBM_CONT$$$$FM,LTBLUE$$\n" + "$$MU-UL,\"End\",GEBM_END$$\n" + "$$MU-UL,\"Cancel\",DOCM_CANCEL$$\n",st1,st2,width,snap,ip_scaler); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +U0 GrBMEdPrepPersistentDC(CDC *dc,I64 xx1,I64 yy1,CDC *img) +{ + DCFill(dc); + GrBlot(dc,xx1,yy1,img); +} + +U0 GrBMEFindReplaceColor(CDC *img,I64 pattern,I64 replace) +{ + U8 *dst=img->body; + I64 d0=img->height*img->width_internal; + while (d0--) { + if (*dst==pattern) + *dst=replace; + dst++; + } +} + +U0 GrBMETrimToExtents(CDC **_img,I64 *_xx1,I64 *_yy1,I64 *_xx2,I64 *_yy2,CColorROPU32 bkcolor) +{ + CDC *img=*_img; + I64 i,c, + x1=0,y1=0,x2=img->width-1,y2=img->height-1; //inclusive + while (y1width-1); *_yy2+=y2-(img->height-1); //not inclusive + 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 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; + Bool down=FALSE; + F64 new_ip_scaler=1.0; + U8 *st=NULL; + CDC *img=*_img, + *clipboard=NULL,*undo=NULL,*dc2; + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + + if (_import_snap) new_snap=*_import_snap; + if (_import_ip_scaler) new_ip_scaler=*_import_ip_scaler; + SetSnap(&Fs->snap,new_snap,new_ip_scaler); + + goto bm_menu; + + while (TRUE) { + if (sys_cur_scan_code&SCF_CTRL)//grab scroll update? + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + + dc->color=ROPF_DITHER+WHITE<<16+ROP_EQU+BLACK; + dc->pen_width=1; + GrLineRect4(dc,xx1-1,yy1-1,xx2,yy2);//This is done little bit too often. + + while (msg_code=ScanMsg(&p1,&p2,1<=0) color=i; + goto bm_menu; + + case GEBM_FIND_AND_REPLACE: + i=PopUpColor("Find Color\n",,FALSE); + if (i>=0) { + j=PopUpColor("Replace Color\n",,FALSE); + if (j>=0) { + GrBMEFindReplaceColor(img,i,j); + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + } + } + goto bm_menu; + + case GEBM_TRIM_TO_EXTENTS: + GrBMETrimToExtents(&img,&xx1,&yy1,&xx2,&yy2,bkcolor); + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + goto bm_menu; + + + case GEBM_DITHER_COLOR: + i=PopUpDitherColor; + if (i>=0) color=i; + goto bm_menu; + + case GEBM_WIDTH: + i=PopUpRangeI64(1,16,1,"Pen Width\n"); + if (i>=0) width=i; + goto bm_menu; + + case GEBM_SNAP: + PopUpSnap(&Fs->snap); + new_snap=Fs->snap.x; + new_ip_scaler=Fs->snap.dx; + goto bm_menu; + + case GEBM_UNDO: + if (undo) { + Beep; + img->color=ROP_EQU; + GrBlot(img,0,0,undo); + DCDel(undo); + undo=NULL; + } + goto bm_menu; + + case GEBM_PT: + case GEBM_LINE: + case GEBM_ARROW: + case GEBM_RECT: + case GEBM_CIRCLE: + case GEBM_FLOOD_FILL: + case GEBM_FLOOD_FILL_NOT: + case GEBM_POLYPT: + case GEBM_POLYLINE: + case GEBM_CUT: + case GEBM_DELETE: + case GEBM_PASTE: + case GEBM_PASTE_TRANSPARENT: + mode=i; + break; + + case GEBM_TEXT: + case GEBM_TEXT_BOX: + case GEBM_TEXT_DIAMOND: + Free(st); + st=PopUpMGetS("Enter text and press .\n"); + if (st && *st) + mode=i; + else + goto bm_menu; + break; + + } + DCDel(undo); + undo=DCExtract(img,0,0,img->width-1,img->height-1); + undo->bkcolor=bkcolor; + WinMgrSync(2,TRUE); //Let popup close + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + down=FALSE; + break; + case MSG_IP_L_DOWN: + switch (mode) { + case GEBM_PT: + img->color=color; + img->pen_width=width; + GrPlot3(img,p1-xx1,p2-yy1,0); + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + break; + case GEBM_LINE: + case GEBM_ARROW: + case GEBM_RECT: + case GEBM_CIRCLE: + case GEBM_CUT: + case GEBM_DELETE: + if (down) + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + x1=p1; y1=p2; + down=TRUE; + dc->color=color; + dc->pen_width=width; + switch (mode) { + case GEBM_LINE: + GrLine3(dc,x1,y1,0,p1,p2,0); + break; + case GEBM_ARROW: + GrArrow3(dc,x1,y1,0,p1,p2,0); + break; + case GEBM_RECT: + GrRect(dc,x1,y1,1,1); + break; + case GEBM_CIRCLE: + GrCircle3(dc,x1,y1,0,1); + break; + case GEBM_CUT: + case GEBM_DELETE: + dc->color=ROPF_DITHER+WHITE<<16+ROP_EQU+BLACK; + dc->pen_width=1; + GrLineRect4(dc,x1,y1,x1,y1); + break; + } + break; + case GEBM_PASTE: + case GEBM_PASTE_TRANSPARENT: + if (clipboard) { + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + if (mode==GEBM_PASTE) { + clipboard->flags|=DCF_NO_TRANSPARENTS; + GrBlot(dc,p1,p2,clipboard); + clipboard->flags&=~DCF_NO_TRANSPARENTS; + } else { + dc2=DCCopy(clipboard); + DCColorChg(dc2,bkcolor); + GrBlot(dc,p1,p2,dc2); + DCDel(dc2); + } + } + break; + case GEBM_TEXT: + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + dc->color=color; + GrPutS(dc,p1,p2,st); + break; + case GEBM_TEXT_BOX: + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + dc->color=color; + GrTextBox3(dc,p1,p2,0,st); + break; + case GEBM_TEXT_DIAMOND: + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + dc->color=color; + GrTextDiamond3(dc,p1,p2,0,st); + break; + case GEBM_FLOOD_FILL: + img->color=color; + GrFloodFill(img,p1-xx1,p2-yy1); + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + break; + case GEBM_FLOOD_FILL_NOT: + img->color=color; + GrFloodFill(img,p1-xx1,p2-yy1,TRUE); + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + break; + case GEBM_POLYLINE: + if (!down) { + x1=p1; y1=p2; + down=TRUE; + dc->color=color; + dc->pen_width=width; + GrLine3(dc,x1,y1,0,p1,p2,0); + } + break; + case GEBM_POLYPT: + x1=p1; y1=p2; + down=TRUE; + img->color=color; + img->pen_width=width; + GrLine3(img,x1-xx1,y1-yy1,0,p1-xx1,p2-yy1,0); + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + break; + } + break; + case MSG_IP_MOVE: + switch (mode) { + case GEBM_LINE: + case GEBM_ARROW: + case GEBM_POLYLINE: + if (down) { + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + dc->color=color; + dc->pen_width=width; + if (mode==GEBM_ARROW) + GrArrow3(dc,x1,y1,0,p1,p2,0); + else + GrLine3(dc,x1,y1,0,p1,p2,0); + } + break; + case GEBM_RECT: + if (down) { + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + if (x1color=color; + GrRect(dc,x11,y11,x22-x11+1,y22-y11+1); + } + break; + case GEBM_CUT: + case GEBM_DELETE: + if (down) { + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + if (x1color=ROPF_DITHER+WHITE<<16+ROP_EQU+BLACK; + dc->pen_width=1; + GrLineRect4(dc,x11,y11,x22,y22); + } + break; + case GEBM_CIRCLE: + if (down) { + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + dc->color=color; + dc->pen_width=width; + GrCircle3(dc,x1,y1,0,Sqrt(SqrI64(p1-x1)+SqrI64(p2-y1))); + } + break; + case GEBM_PASTE: + case GEBM_PASTE_TRANSPARENT: + if (clipboard) { + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + if (mode==GEBM_PASTE) { + clipboard->flags|=DCF_NO_TRANSPARENTS; + GrBlot(dc,p1,p2,clipboard); + clipboard->flags&=~DCF_NO_TRANSPARENTS; + } else { + dc2=DCCopy(clipboard); + DCColorChg(dc2,bkcolor); + GrBlot(dc,p1,p2,dc2); + DCDel(dc2); + } + } + break; + case GEBM_TEXT: + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + dc->color=color; + GrPutS(dc,p1,p2,st); + break; + case GEBM_TEXT_BOX: + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + dc->color=color; + GrTextBox3(dc,p1,p2,0,st); + break; + case GEBM_TEXT_DIAMOND: + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + dc->color=color; + GrTextDiamond3(dc,p1,p2,0,st); + break; + case GEBM_POLYPT: + if (down) { + img->color=color; + img->pen_width=width; + GrLine3(img,x1-xx1,y1-yy1,0,p1-xx1,p2-yy1,0); + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + x1=p1; y1=p2; + } + break; + } + break; + case MSG_IP_L_UP: + switch (mode) { + case GEBM_LINE: + case GEBM_ARROW: + case GEBM_POLYPT: + case GEBM_POLYLINE: + img->color=color; + img->pen_width=width; + if (mode==GEBM_ARROW) + GrArrow3(img,x1-xx1,y1-yy1,0,p1-xx1,p2-yy1,0); + else + GrLine3(img,x1-xx1,y1-yy1,0,p1-xx1,p2-yy1,0); + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + if (mode==GEBM_POLYLINE) { + x1=p1; y1=p2; + } else + down=FALSE; + break; + case GEBM_RECT: + img->color=color; + if (x1bkcolor=bkcolor; + if (mode==GEBM_DELETE) { + img->color=bkcolor; + GrRect(img,x11-xx1,y11-yy1,x22-x11+1,y22-y11+1); + } + goto bm_menu; + case GEBM_CIRCLE: + img->color=color; + img->pen_width=width; + GrCircle3(img,x1-xx1,y1-yy1,0,Sqrt(SqrI64(p1-x1)+SqrI64(p2-y1))); + down=FALSE; + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + break; + case GEBM_PASTE: + case GEBM_PASTE_TRANSPARENT: + if (clipboard) { + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + if (mode==GEBM_PASTE) { + clipboard->flags|=DCF_NO_TRANSPARENTS; + GrBlot(img,p1-xx1,p2-yy1,clipboard); + clipboard->flags&=~DCF_NO_TRANSPARENTS; + } else { + dc2=DCCopy(clipboard); + DCColorChg(dc2,bkcolor); + GrBlot(img,p1-xx1,p2-yy1,dc2); + DCDel(dc2); + } + GrBMEdPrepPersistentDC(dc,xx1,yy1,img); + } + break; + case GEBM_TEXT: + img->color=color; + GrPutS(img,p1-xx1,p2-yy1,st); + goto bm_menu; + case GEBM_TEXT_BOX: + img->color=color; + GrTextBox3(img,p1-xx1,p2-yy1,0,st); + goto bm_menu; + case GEBM_TEXT_DIAMOND: + img->color=color; + GrTextDiamond3(img,p1-xx1,p2-yy1,0,st); + goto bm_menu; + } + break; + } + } + WinMgrSync; + } +bm_key_up_done: + GetMsg(,,1<next; + while (tempg!=root) { + switch (tempg->type) { + case GRST_PT: + case GRST_FLOOD_FILL: + case GRST_FLOOD_FILL_NOT: + tempg->x1+=dx; + tempg->y1+=dy; + break; + case GRST_ARROW: + case GRST_LINE: + case GRST_PLANAR_SYMMETRY: + tempg->x1+=dx; + tempg->y1+=dy; + tempg->x2+=dx; + tempg->y2+=dy; + break; + case GRST_BITMAP8: + case GRST_ELLIPSE: + case GRST_REG_POLY: + tempg->x2+=dx; + tempg->y2+=dy; + break; + case GRST_RECT: + case GRST_ROTATED_RECT: + tempg->x1+=dx; + tempg->y1+=dy; + tempg->x2+=dx; + tempg->y2+=dy; + break; + case GRST_TEXT: + case GRST_TEXT_BOX: + case GRST_TEXT_DIAMOND: + case GRST_CIRCLE: + tempg->x1+=dx; + tempg->y1+=dy; + break; + case GRST_POLYLINE: + ptr=&tempg->y1; + for (i=0;inum;i++) { + ptr[i<<1]+=dx; + ptr[i<<1+1]+=dy; + } + break; + case GRST_POLYPT: + ptr=&tempg->y1; + ptr[0]+=dx; + ptr[1]+=dy; + break; + case GRST_BSPLINE2: + case GRST_BSPLINE3: + case GRST_BSPLINE2_CLOSED: + case GRST_BSPLINE3_CLOSED: + p=&tempg->y1; + for (i=0;inum;i++,p++) { + p->x+=dx; + p->y+=dy; + p->z+=dz; + } + break; + case GRST_MESH: + p=&tempg->x2; + for (i=0;ivertex_cnt;i++,p++) { + p->x+=dx; + p->y+=dy; + p->z+=dz; + } + break; + case GRST_SHIFTABLE_MESH: + tempg->x1+=dx; + tempg->y1+=dy; + tempg->z1+=dz; + break; + } + tempg=tempg->next; + } +} + + +CSprite *GrTransformCircle(I64 r[4][4],CSprite *tempg) +{ + I64 x,y,z; + F64 m1,a1,m2,radius=tempg->x2<<16; + CSprite *tempg1=CAlloc(gr_sprite_qued_base_size[GRST_ELLIPSE]); + tempg1->type=GRST_ELLIPSE; + + x=tempg->x1; y=tempg->y1; z=0; + GrRot(r,&x,&y,&z); + tempg1->x2=x; + tempg1->y2=y; + + x=radius; y=0; z=0; + GrRot(r,&x,&y,&z); + R2P(&m1,&a1,x,y); + + x=0; y=radius; z=0; + GrRot(r,&x,&y,&z); + m2=Sqrt(x*x+y*y); + + tempg1->width =ToI64(m1)/0x10000; + tempg1->height=ToI64(m2)/0x10000; + tempg1->rot_angle=-a1; + + return tempg1; +} + +CSprite *GrTransformEllipse(I64 r[4][4],CSprite *tempg) +{ + I64 x,y,z; + F64 m1,a1,m2,a2,s,c,x_radius=tempg->width<<16,y_radius=tempg->height<<16; + CSprite *tempg1=CAlloc(gr_sprite_qued_base_size[tempg->type]); + tempg1->type=tempg->type; + if (tempg->type==GRST_REG_POLY) + tempg1->sides=tempg->sides; + + x=tempg->x2; y=tempg->y2; z=0; + GrRot(r,&x,&y,&z); + tempg1->x2=x; + tempg1->y2=y; + + c=Cos(-tempg->rot_angle); + s=Sin(-tempg->rot_angle); + + x=x_radius*c; + y=x_radius*s; + z=0; + GrRot(r,&x,&y,&z); + R2P(&m1,&a1,x,y); + + x=-y_radius*s; + y=y_radius*c; + z=0; + GrRot(r,&x,&y,&z); + R2P(&m2,&a2,x,y); + m2*=Abs(Sin(a2-a1)); + + tempg1->width=ToI64(m1)/0x10000; + if (tempg1->width<1) tempg1->width=1; + tempg1->height=ToI64(m2)/0x10000; + if (tempg1->height<1) tempg1->height=1; + tempg1->rot_angle=-a1; + + return tempg1; +} + +CSprite *GrTransformRect(I64 r[4][4],CSprite *tempg,F64 é) +{ + I64 x,y,z,w,h; + F64 m1,a1,m2,a2,s,c, + x_radius=(tempg->x2-tempg->x1)<<16, + y_radius=(tempg->y2-tempg->y1)<<16; + CSprite *tempg1=CAlloc(gr_sprite_qued_base_size[GRST_ROTATED_RECT]); + tempg1->type=GRST_ROTATED_RECT; + + x=tempg->x1; y=tempg->y1; z=0; + GrRot(r,&x,&y,&z); + tempg1->x1=x; + tempg1->y1=y; + + c=Cos(-é); + s=Sin(-é); + + x=x_radius*c; + y=x_radius*s; + z=0; + GrRot(r,&x,&y,&z); + R2P(&m1,&a1,x,y); + + x=-y_radius*s; + y=y_radius*c; + z=0; + GrRot(r,&x,&y,&z); + R2P(&m2,&a2,x,y); + m2*=Abs(Sin(a2-a1)); + + w=ToI64(m1)/0x10000; + if (w<1) w=1; + h=ToI64(m2)/0x10000; + if (h<1) h=1; + tempg1->x2=tempg1->x1+w; + tempg1->y2=tempg1->y1+h; + tempg1->rot_angle=-a1; + + return tempg1; +} + +CSprite *GrTransformBitMap(I64 r[4][4],CSprite *tempg) +{ + CDC *img,*tempb; + U8 *elems; + I64 x,y,z,minx,maxx,miny,maxy,minz,maxz; + CSprite *tempg1; + + + x=0; y=0; z=0; + GrRot(r,&x,&y,&z); + minx=maxx=x; + miny=maxy=y; + minz=maxz=z; + + x=0; y=tempg->height; z=0; + GrRot(r,&x,&y,&z); + if (xmaxx) maxx=x; + if (ymaxx) maxy=y; + if (zmaxx) maxz=z; + + x=tempg->width; y=0; z=0; + GrRot(r,&x,&y,&z); + if (xmaxx) maxx=x; + if (ymaxx) maxy=y; + if (zmaxx) maxz=z; + + x=tempg->width; y=tempg->height; z=0; + GrRot(r,&x,&y,&z); + if (xmaxx) maxx=x; + if (ymaxx) maxy=y; + if (zmaxx) maxz=z; + + tempb=DCNew(DCT_COLOR8,maxx-minx+1,maxy-miny+1); + + img=CAlloc(sizeof(CDC)); + img->type=DCT_COLOR8; + img->width=tempg->width; + img->width_internal=(tempg->width+7)&~7; + img->height=tempg->height; + img->plane_size=(img->width_internal*img->height)>>3; + img->body=tempg(U8 *)+offset(CSprite.linespeed); + img->dc_signature=DCS_SIGNATURE_VAL; + + tempb->color=COLOR_TRANSPARENT; + GrRect(tempb,0,0,maxx-minx+1,maxy-miny+1); + + Free(tempb->r); + GrSetRotMat(tempb,r); + tempb->flags|=DCF_TRANSFORMATION; + + tempb->x=-minx; + tempb->y=-miny; + tempb->z=-minz; + GrBlot3(tempb,0,0,0,img); + Free(img); + + elems=DC2Sprite(tempb); + tempb->r=NULL; + DCDel(tempb); + tempg1=CAlloc(offset(CSprite.start)+MSize(elems)); + MemCpy(tempg1(U8 *)+offset(CSprite.start),elems,MSize(elems)); + tempg1->type=tempg->type; + + x=tempg->x2; y=tempg->y2; z=0; + GrRot(r,&x,&y,&z); + tempg1->x2=x; + tempg1->y2=y; + + x=0; y=0; z=0; + GrRot(r,&x,&y,&z); + tempg1->x2+=minx-x; + tempg1->y2+=miny-y; + + return tempg1; +} + + +U0 CSpriteTransform(I64 r[4][4],CSprite *root) +{ + I64 i,j,k,num, + x,y,z,x1,y1,z1,x2,y2,z2,x3,y3,z3; + I32 *ptr; + CD3I32 *p; + CSprite *tempg=root->next,root2,*tempg1,*tempg2,*tempg3; + while (tempg!=root) { + switch (tempg->type) { + case GRST_WIDTH: + // (1.0/Sqrt(3))*65536=37837.22 + x=37838;y=37838;z=37838; + GrRot(r,&x,&y,&z); + //scaled 32 bits + tempg->width*=Sqrt(x*x+y*y+z*z)/65536; + if (tempg->width<0) tempg->width=0; + break; + case GRST_PT: + case GRST_FLOOD_FILL: + case GRST_FLOOD_FILL_NOT: + x=tempg->x1; y=tempg->y1; z=0; + GrRot(r,&x,&y,&z); + tempg->x1=x; + tempg->y1=y; + break; + case GRST_PLANAR_SYMMETRY: + case GRST_ARROW: + case GRST_LINE: + x=tempg->x1; y=tempg->y1; z=0; + GrRot(r,&x,&y,&z); + tempg->x1=x; + tempg->y1=y; + x=tempg->x2; y=tempg->y2; z=0; + GrRot(r,&x,&y,&z); + tempg->x2=x; + tempg->y2=y; + break; + case GRST_BITMAP8: + tempg1=GrTransformBitMap(r,tempg); + QueIns(tempg1,tempg); + QueRem(tempg); + Free(tempg); + tempg=tempg1; + break; + case GRST_ROTATED_RECT: + tempg1=GrTransformRect(r,tempg,tempg->rot_angle); + QueIns(tempg1,tempg); + QueRem(tempg); + Free(tempg); + tempg=tempg1; + break; + case GRST_RECT: + tempg1=GrTransformRect(r,tempg,0); + QueIns(tempg1,tempg); + QueRem(tempg); + Free(tempg); + tempg=tempg1; + break; + case GRST_TEXT: + case GRST_TEXT_BOX: + case GRST_TEXT_DIAMOND: + x=tempg->x1; y=tempg->y1; z=0; + GrRot(r,&x,&y,&z); + tempg->x1=x; + tempg->y1=y; + break; + case GRST_CIRCLE: + tempg1=GrTransformCircle(r,tempg); + QueIns(tempg1,tempg); + QueRem(tempg); + Free(tempg); + tempg=tempg1; + break; + case GRST_ELLIPSE: + case GRST_REG_POLY: + tempg1=GrTransformEllipse(r,tempg); + QueIns(tempg1,tempg); + QueRem(tempg); + Free(tempg); + tempg=tempg1; + break; + case GRST_POLYLINE: + ptr=&tempg->y1; + for (i=0;inum;i++) { + x=ptr[i<<1]; y=ptr[i<<1+1]; z=0; + GrRot(r,&x,&y,&z); + ptr[i<<1]=x; + ptr[i<<1+1]=y; + } + break; + case GRST_POLYPT: + QueInit(&root2); + ptr=&tempg->y1; + x=ptr[0]; y=ptr[1]; z=0; + x1=x; y1=y; z1=z; //unrotated cur coordinates + GrRot(r,&x,&y,&z); + ptr+=2; + k=tempg->num*3; + x2=x; y2=y; z2=z; //rotated start coordinates + x3=x; y3=y; z3=z; //lag 1 rotated coordinates + for (i=0;inext; + if (tempg1->x1==x3 && tempg1->y1==y3) { + QueRem(tempg1); + Free(tempg1); + } else { + num++; + x3=tempg1->x1; + y3=tempg1->y1; + } + tempg1=tempg2; + } + + tempg3=CAlloc(gr_sprite_qued_base_size[GRST_POLYPT]+ + sizeof(I32)*2+(num*3+7)>>3); + ptr=&tempg3->y1; + ptr[0]=x2; + ptr[1]=y2; + ptr+=2; + x3=0;y3=0; z3=0; + i=0; + tempg1=root2.next; + while (tempg1!=&root2) { + tempg2=tempg1->next; + BFieldOrU32(ptr,i, + GrSpOffset[SignI64(tempg1->x1-x3)+1+ + 3*(SignI64(tempg1->y1-y3)+1)]); + i+=3; + x3=tempg1->x1;y3=tempg1->y1; + QueRem(tempg1); + Free(tempg1); + tempg1=tempg2; + } + tempg3->type=GRST_POLYPT; + tempg3->num=num; + QueIns(tempg3,tempg); + QueRem(tempg); + Free(tempg); + tempg=tempg3; + break; + case GRST_BSPLINE2: + case GRST_BSPLINE3: + case GRST_BSPLINE2_CLOSED: + case GRST_BSPLINE3_CLOSED: + p=&tempg->y1; + for (i=0;inum;i++,p++) { + x=p->x; y=p->y; z=p->z; + GrRot(r,&x,&y,&z); + p->x=x; + p->y=y; + p->z=z; + } + break; + case GRST_SHIFTABLE_MESH: + x=tempg->x1; y=tempg->y1; z=tempg->z1; + GrRot(r,&x,&y,&z); + tempg->x1=x; + tempg->y1=y; + tempg->z1=z; + p=(&tempg->shiftable_triangle_cnt)(U8 *)+sizeof(I32); + for (i=0;ishiftable_vertex_cnt;i++,p++) { + x=p->x; y=p->y; z=p->z; + GrRot(r,&x,&y,&z); + p->x=x; + p->y=y; + p->z=z; + } + break; + case GRST_MESH: + p=&tempg->x2; + for (i=0;ivertex_cnt;i++,p++) { + x=p->x; y=p->y; z=p->z; + GrRot(r,&x,&y,&z); + p->x=x; + p->y=y; + p->z=z; + } + break; + } + tempg=tempg->next; + } +} + +CSprite *CSpriteDoc2Que(CDoc *doc,CSprite *root,I64 *cur_num) +{ + CSprite *result=CAlloc(sizeof(CSprite)),*tempg; + CDocEntry *doc_e=doc->root.next; + Bool found=FALSE; + I64 num=0; + result->next=result->last=result; + while (doc_e!=doc) { + if (doc_e->type_u8==DOCT_MENU_VAL && doc_e->left_exp>=0) { + tempg=GrNum2Que(root,doc_e->left_exp); + if (tempg!=root) { + tempg=MAllocIdentical(tempg); + if (*cur_num==doc_e->left_exp) { + *cur_num=num; + found=TRUE; + } + QueIns(tempg,result->last); + num++; + } + } + doc_e=doc_e->next; + } + if (!found) + *cur_num=num; + QueDel(root); + Free(root); + return result; +} + +U0 PickCSpriteDocNew(CDoc *doc,CSprite *root,I64 old_num) +{ + CSprite *tempg; + CDocEntry *doc_e=NULL; + I64 cur_num=0; + U8 *st; + + tempg=root->next; + while (tempg!=root) { + st=CSprite2Text(tempg); + if (cur_num==old_num) { + DocPutS(doc,"$$FM,LTRED$$"); + doc_e=DocPrintF(doc,"$$MU-UL,\"%Q\",%d$$\n",st,cur_num++); + } else { + DocPutS(doc,"$$FM,LTBLUE$$"); + DocPrintF(doc,"$$MU-UL,\"%Q\",%d$$\n",st,cur_num++); + } + Free(st); + tempg=tempg->next; + } + if (cur_num==old_num) { + DocPutS(doc,"$$FM,LTRED$$"); + doc_e=DocPrintF(doc,"$$MU-UL,\"END\",%d$$\n",cur_num); + } else { + DocPutS(doc,"$$FM,LTBLUE$$"); + DocPrintF(doc,"$$MU-UL,\"END\",%d$$\n",cur_num); + } + if (doc_e) + doc->cur_entry=doc_e; +} + +U0 CSpriteSideBarTask2(CTask *grand_parent) +{ + I64 w,h; + CTask *parent=Fs->parent_task,*pu_task; + while (TRUE) { + 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; + h=parent->win_bottom-parent->win_top; + parent->win_top=pu_task->win_top; + parent->win_bottom=parent->win_top+h; + } + WinMgrSync; + } +} + +U0 CSpriteSideBarTask(CTask *parent,CSprite **_root,I64 *cur_num) +{ + CDocEntry *doc_e; + CDoc *doc=DocCur; + Spawn(&CSpriteSideBarTask2,parent,"CSpriteTask",Fs); + doc->flags|=DOCF_MIN_SIZE|DOCF_FORM; + while (TRUE) { + PickCSpriteDocNew(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); + DocClear(doc); + } +} + +U8 *CSpriteHexDoc2CSprite(CDoc *doc,I64 *cur_num,CTask *mem_task=NULL) +{ + I64 num=0,size=gr_sprite_base_size[GRST_END]; + U8 *result,*dst; + Bool unlock_doc=DocLock(doc); + CDocEntry *doc_e=doc->root.next; + while (doc_e!=doc) { + if (doc_e->type_u8==DOCT_HEX_ED) + size+=doc_e->len; + doc_e=doc_e->next; + } + *cur_num=0; + dst=result=MAlloc(size,mem_task); + doc_e=doc->root.next; + while (doc_e!=doc) { + if (doc_e->type_u8==DOCT_HEX_ED) { + if (doc_e==doc->cur_entry) + *cur_num=num; + MemCpy(dst,doc_e->data,doc_e->len); + dst+=doc_e->len; + num++; + } + doc_e=doc_e->next; + } + *dst=GRST_END; + if (unlock_doc) + DocUnlock(doc); + return result; +} + +Bool CSpriteTextEd(CSprite **_root,I64 *cur_num) +{ + Bool result; + U8 *st; + CDoc *doc=DocNew; + CSprite *root=*_root,*tempg; + CDocEntry *doc_e; + doc->flags|=DOCF_FORM; + tempg=root->next; + while (tempg!=root) { + st=CSprite2Text(tempg); + DocPrintF(doc,"$$FG,BLUE$$%s$$FG$$\n",st); + Free(st); + doc_e=DocPrintF(doc,"$$HX,%d,16$$",CSpriteElemSize(tempg)); + doc_e->data=&tempg->start; + tempg=tempg->next; + } + if (result=ServantUser("DocDo(0x%X,0x%X);",doc,0)) { + tempg=CSpriteHexDoc2CSprite(doc,cur_num); + QueDel(root); + Free(root); + root=CSprite2Que(tempg); + } + DocDel(doc); + if (_root) *_root=root; + return result; +} + +#define GED_PICK_GRAPHICALLY 0 +#define GED_SET_ORIGIN 1 +#define GED_SHIFT_ORIGIN 2 +#define GED_SHIFT_PTS 3 +#define GED_SHIFT_RECTS 4 +#define GED_TRANSFORM 5 +#define GED_SHIFT_SUB_ORIGIN 6 +#define GED_VECT 7 +#define GED_INS_CLIPBOARD 8 +#define GED_DELETE 9 +#define GED_ED 10 +#define GED_SNAP 11 +#define GED_END 12 + +U0 GrInit2() +{ + DefineListLoad("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) +{ + U8 *st; + CTask *pu_task; + I64 i; + CDoc *doc=DocNew; + DocPrintF(doc,"$$FG,PURPLE$$$$TX+CX,\"Edit Menu\"$$$$FG$$\n" + "$$MU-UL,\"Shift Points\",GED_SHIFT_PTS$$\n" + "$$MU-UL,\"Shift Points with Rects\",GED_SHIFT_RECTS$$\n" + "$$MU-UL,\"Shift Origin\",GED_SHIFT_ORIGIN$$\n" + "$$MU-UL,\"Set Origin\",GED_SET_ORIGIN$$\n" + "$$MU-UL,\"Insert Shift SubOrigin\",GED_SHIFT_SUB_ORIGIN$$\n" + "$$MU-UL,\"Snap %d %5.3f\",GED_SNAP$$\n" + "$$MU-UL,\"Pick or Delete Objects Graphically\",GED_PICK_GRAPHICALLY$$\n" + "$$MU-UL,\"Transform\",GED_TRANSFORM$$\n" + "$$MU-UL,\"Delete\",GED_DELETE$$\n" + "$$MU-UL,\"Edit as Text\",GED_ED$$\n" + "\n$$FM,PURPLE$$$$MU-UL,\"+] Vect Object Menu\",GED_VECT$$$$FM,LTBLUE$$\n" + "$$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); + PopUp(st,NULL,&pu_task); + Free(st); + i=PopUpMenu(doc); + if (TaskValidate(pu_task)) { + *_root=CSpriteDoc2Que(DocCur(pu_task),*_root,cur_num); + Kill(pu_task); + } + DocDel(doc); + return i; +} + +#define GESPT_SIMPLE_PT 0 +#define GESPT_WIDTH_HEIGHT 1 + +#define GESPF_SELECTED 1 + +class CSpritePt +{ + CSpritePt *next,*last; + I32 type,num,flags,xx,yy,zz; + I32 *x,*y,*z,*w,*h; +}; + +U0 CSpritePtQueNew(U8 *elems,I64 x,I64 y,CSpritePt *root) +{ + I64 i,cur_num=0; + I32 *ptr; + CD3I32 *p; + CSpritePt *temppe; + CSprite *tempg=elems-offset(CSprite.start); + QueInit(root); + while (tempg->type) { + switch (tempg->type) { + case GRST_RECT: + case GRST_ROTATED_RECT: + case GRST_LINE: + case GRST_ARROW: + case GRST_PLANAR_SYMMETRY: + temppe=CAlloc(sizeof(CSpritePt)); + temppe->type=GESPT_SIMPLE_PT; + temppe->xx=x; + temppe->yy=y; + temppe->x=&tempg->x2; + temppe->y=&tempg->y2; + temppe->num=cur_num; + QueIns(temppe,root->last); + case GRST_TEXT: + case GRST_TEXT_BOX: + case GRST_TEXT_DIAMOND: + case GRST_PT: + case GRST_FLOOD_FILL: + case GRST_FLOOD_FILL_NOT: + case GRST_CIRCLE: + temppe=CAlloc(sizeof(CSpritePt)); + temppe->type=GESPT_SIMPLE_PT; + temppe->xx=x; + temppe->yy=y; + temppe->x=&tempg->x1; + temppe->y=&tempg->y1; + temppe->num=cur_num; + QueIns(temppe,root->last); + break; + case GRST_SHIFT: + x+=tempg->x1; + y+=tempg->y1; + break; + case GRST_ELLIPSE: + case GRST_REG_POLY: + temppe=CAlloc(sizeof(CSpritePt)); + temppe->type=GESPT_WIDTH_HEIGHT; + temppe->xx=x; + temppe->yy=y; + temppe->x=&tempg->x2; + temppe->y=&tempg->y2; + temppe->w=&tempg->width; + temppe->h=&tempg->height; + temppe->num=cur_num; + QueIns(temppe,root->last); + case GRST_BITMAP8: + temppe=CAlloc(sizeof(CSpritePt)); + temppe->type=GESPT_SIMPLE_PT; + temppe->xx=x; + temppe->yy=y; + temppe->x=&tempg->x2; + temppe->y=&tempg->y2; + temppe->num=cur_num; + QueIns(temppe,root->last); + break; + case GRST_POLYLINE: + ptr=&tempg->y1; + for (i=0;inum;i++) { + temppe=CAlloc(sizeof(CSpritePt)); + temppe->type=GESPT_SIMPLE_PT; + temppe->xx=x; + temppe->yy=y; + temppe->x=&ptr[i<<1]; + temppe->y=&ptr[i<<1+1]; + temppe->num=cur_num; + QueIns(temppe,root->last); + } + break; + case GRST_POLYPT: + ptr=&tempg->y1; + temppe=CAlloc(sizeof(CSpritePt)); + temppe->type=GESPT_SIMPLE_PT; + temppe->xx=x; + temppe->yy=y; + temppe->x=&ptr[0]; + temppe->y=&ptr[1]; + temppe->num=cur_num; + QueIns(temppe,root->last); + break; + case GRST_BSPLINE2: + case GRST_BSPLINE3: + case GRST_BSPLINE2_CLOSED: + case GRST_BSPLINE3_CLOSED: + p=&tempg->y1; + for (i=0;inum;i++) { + temppe=CAlloc(sizeof(CSpritePt)); + temppe->type=GESPT_SIMPLE_PT; + temppe->xx=x; + temppe->yy=y; + temppe->x=&p[i].x; + temppe->y=&p[i].y; + temppe->z=&p[i].z; + temppe->num=cur_num; + QueIns(temppe,root->last); + } + break; + case GRST_MESH: + break; + case GRST_SHIFTABLE_MESH: + temppe=CAlloc(sizeof(CSpritePt)); + temppe->type=GESPT_SIMPLE_PT; + temppe->xx=x; + temppe->yy=y; + temppe->x=&tempg->x1; + temppe->y=&tempg->y1; + temppe->z=&tempg->z1; + temppe->num=cur_num; + QueIns(temppe,root->last); + break; + } + tempg(U8 *)+=CSpriteElemSize(tempg); + cur_num++; + } +} + +U0 GESPCtrlPtsDraw(CDC *dc,CSpritePt *root) +{ + I64 x,y; + CSpritePt *temppe; + WinMgrSync; + DCFill(dc); + if (Blink(20)) { + temppe=root->next; + while (temppe!=root) { + switch (temppe->type) { + case GESPT_SIMPLE_PT: + x=*temppe->x+temppe->xx; + y=*temppe->y+temppe->yy; + break; + case GESPT_WIDTH_HEIGHT: + x=*temppe->w+*temppe->x+temppe->xx; + y=*temppe->h+*temppe->y+temppe->yy; + break; + } + if (temppe->flags&GESPF_SELECTED) + dc->color=RED; + else + dc->color=BLACK; + GrRect(dc,x-2,y-2,4,4); + dc->color=WHITE; + GrRect(dc,x-1,y-1,2,2); + temppe=temppe->next; + } + } +} + +U0 GESPCtrlPtsMove(CSpritePt *root,I64 dx,I64 dy) +{ + CSpritePt *temppe; + temppe=root->next; + while (temppe!=root) { + if (temppe->flags&GESPF_SELECTED) + switch (temppe->type) { + case GESPT_SIMPLE_PT: + if (temppe->x) *temppe->x+=dx; + if (temppe->y) *temppe->y+=dy; + break; + case GESPT_WIDTH_HEIGHT: + if (temppe->w) *temppe->w+=dx; + if (temppe->h) *temppe->h+=dy; + break; + } + temppe=temppe->next; + } +} + +Bool CSpriteShiftPts(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); + cur_num=0; + if (root.next!=&root) { + old_preempt=Preempt(OFF); + while (TRUE) { + GESPCtrlPtsDraw(dc,&root); //has WinMgrSync + switch (msg_code=ScanMsg(&p1,&p2,1<type) { + case GESPT_SIMPLE_PT: + dd=SqrI64(*temppe->x+temppe->xx-xx)+SqrI64(*temppe->y+temppe->yy-yy); + break; + case GESPT_WIDTH_HEIGHT: + dd=SqrI64(*temppe->x+*temppe->w+temppe->xx-xx)+SqrI64(*temppe->y+*temppe->h+temppe->yy-yy); + break; + } + if (ddnext; + } + cur_num=best_pe->num; + best_pe->flags|=GESPF_SELECTED; + break; + case GED_SHIFT_RECTS: + xx2=xx=p1; yy2=yy=p2; + while (TRUE) { + GESPCtrlPtsDraw(dc,&root); + if (Blink) + dc->color=ROPF_DITHER+RED<<16+WHITE; + else + dc->color=ROPF_DITHER+WHITE<<16+RED; + GrLineRect4(dc,xx,yy,xx2,yy2); + if (msg_code=ScanMsg(&p1,&p2,1<type) { + case GESPT_SIMPLE_PT: + if (xx<=*temppe->x+temppe->xx<=xx2 && + yy<=*temppe->y+temppe->yy<=yy2) + temppe->flags|=GESPF_SELECTED; + break; + case GESPT_WIDTH_HEIGHT: + if (xx<=*temppe->x+*temppe->w+temppe->xx<=xx2 && + yy<=*temppe->y+*temppe->h+temppe->yy<=yy2) + temppe->flags|=GESPF_SELECTED; + break; + } + temppe=temppe->next; + } + do { + GESPCtrlPtsDraw(dc,&root); + msg_code=ScanMsg(&p1,&p2,1<flags&=~GESPF_SELECTED; + temppe=temppe->next; + } + break; + case MSG_KEY_DOWN: + gs_key: + switch (p1.u8[0]) { + case CH_SHIFT_ESC: + result=FALSE; + case CH_ESC: + GetMsg(&p1,&p2,1<flags&(DOCF_ATTR_BY_PRT|DOCF_ATTR_BY_FILENAME), + old_ce_flags1; + F64 new_ip_scaler=1.0; + CSprite *cur_elem,*old_CSprite, + *root,*root2,*next,*last,*tempg,*insert_pt; + Fs->task_title[TASK_TITLE_LEN]=0; + U8 *old_desc=StrNew(Fs->task_title), + *old_filename=StrNew(doc->filename.name); + + WinMgrSync(2,TRUE); + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WordStat; + if (_import_snap) new_snap=*_import_snap; + if (_import_ip_scaler) new_ip_scaler=*_import_ip_scaler; + SetSnap(&Fs->snap,new_snap,new_ip_scaler); + Fs->win_inhibit=CSPRITE_WIF; + doc_ce=doc->cur_entry; + old_ce_flags1=doc_ce->flags1; + tempb=doc_ce->bin_data; + old_size=tempb->size; + old_CSprite=tempb->data; + root=CSprite2Que(old_CSprite); + + cur_num=CSpriteCntQue(root); + tempb->data=MAllocIdentical(old_CSprite); + DocUnlock(doc); + do { + StrCpy(Fs->task_title,old_desc); + 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); + GrEdUpdate(doc,tempb,root); + if (i>=0) { + StrCpy(Fs->task_title,DefineSub(i,"ST_CSPRITE_ED_MENU")); + StrCpy(doc->filename.name,Fs->task_title); + doc->flags&=~(DOCF_ATTR_BY_PRT|DOCF_ATTR_BY_FILENAME); + } + switch (i) { + case GED_PICK_GRAPHICALLY: + AcctOneTimePopUp(ARf_CSPRITE_PICK_GRAPHICALLY, + "You can delete elements by\n" + "holding $$FG,GREEN$$Delete$$FG$$ and clicking.\n"); + doc_ce->flags1=old_ce_flags1; + doc->cur_sprite=tempb->data; + doc->cur_sprite_elem_num=0; + del_down=FALSE; + do { + msg_code=GetMsg(&p1,&p2,1<cur_sprite_elem_num; + cur_elem=GrNum2Que(root,cur_num); + if (cur_elem!=root) { + QueRem(cur_elem); + Free(cur_elem); + GrEdUpdate(doc,tempb,root); + } + doc->cur_sprite=tempb->data; + doc->cur_sprite_elem_num=0; + if (msg_code==MSG_KEY_DOWN) + GetMsg(&p1,&p2,1<cur_sprite_elem_num; + doc->cur_sprite=NULL; + break; + case GED_SNAP: + PopUpSnap(&Fs->snap); + new_snap=Fs->snap.x; + new_ip_scaler=Fs->snap.dx; + break; + case GED_SET_ORIGIN: + doc_ce->flags1=old_ce_flags1; + GetMsg(&p1,&p2,1<flags1=old_ce_flags1; + GetMsg(&p1,&p2,1<flags1=old_ce_flags1; + if (CSpriteShiftPts(tempb->data,x,y,&cur_num,i)) { + QueDel(root); + Free(root); + root=CSprite2Que(tempb->data); + } else + GrEdUpdate(doc,tempb,root); + break; + case GED_TRANSFORM: + if (PopUpTransform(r)) { + CSpriteTransform(r,root); + GrEdUpdate(doc,tempb,root); + } + break; + case GED_SHIFT_SUB_ORIGIN: + doc_ce->flags1=old_ce_flags1; + insert_pt=GrNum2Que(root,cur_num); + tempg=MAlloc(gr_sprite_qued_base_size[GRST_SHIFT]); + tempg->type=GRST_SHIFT; + tempg->x1=0; + tempg->y1=0; + QueIns(tempg,insert_pt->last); + GetMsg(&p1,&p2,1<x1=p1-xx; + tempg->y1=p2-yy; + GrEdUpdate(doc,tempb,root); + } while (msg_code!=MSG_IP_L_UP); + cur_num++; + break; + case GED_INS_CLIPBOARD: + AcctOneTimePopUp(ARf_CSPRITE_INS_CLIPBOARD, + "You will probably want to shift around\n" + "the location of element groups. Use\n" + "'Insert shift sub-origin' after picking the\n" + "element to insert before. Or,\n" + "use 'shift points'.\n"); + insert_pt=GrNum2Que(root,cur_num); + unlock2=DocLock(sys_clipboard_doc); + 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); + if (root2->next!=root2) { + tempg=root2->next; + while (tempg!=root2) { + cur_num++; + tempg=tempg->next; + } + next=root2->next; + last=root2->last; + insert_pt->last->next=next; + next->last=insert_pt->last; + insert_pt->last=last; + last->next=insert_pt; + } + Free(root2); + } + doc_e=doc_e->next; + } + if (unlock2) + DocUnlock(sys_clipboard_doc); + GrEdUpdate(doc,tempb,root); + 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)) { + case GE_OKAY_DONE: + i=GED_END; + break; + case GE_CANCEL: + i=DOCM_CANCEL; + break; + } + break; + case GED_DELETE: + cur_elem=GrNum2Que(root,cur_num); + if (cur_elem!=root) { + QueRem(cur_elem); + Free(cur_elem); + GrEdUpdate(doc,tempb,root); + } + break; + case GED_ED: + if (CSpriteTextEd(&root,&cur_num)) + GrEdUpdate(doc,tempb,root); + break; + } + } while (i!=DOCM_CANCEL && i!=GED_END); + doc_ce->flags1=old_ce_flags1; + DocLock(doc); + if (i==GED_END) + Free(old_CSprite); + else { + Free(tempb->data); + tempb->data=old_CSprite; + tempb->size=old_size; + } + if (unlock) + DocUnlock(doc); + if (_import_snap) *_import_snap=new_snap; + if (_import_ip_scaler) *_import_ip_scaler=new_ip_scaler; + QueDel(root); + Free(root); + StrCpy(Fs->task_title,old_desc); + Free(old_desc); + StrCpy(doc->filename.name,old_filename); + Free(old_filename); + SettingsPop; + doc->flags|=old_doc_flags; +} +#help_index "Graphics" diff --git a/SparrowOS/Adam/Gr/CSpriteMesh.CPP b/SparrowOS/Adam/Gr/CSpriteMesh.CPP new file mode 100644 index 0000000..32972a3 --- /dev/null +++ b/SparrowOS/Adam/Gr/CSpriteMesh.CPP @@ -0,0 +1,1383 @@ +#help_index "Graphics/Mesh" +#define GE_WORKSPACE_SIZE 4000 + +#define VF_SELECTED 1 +#define VF_COPIED 2 +#define VF_IGNORE 4 + +class CGrMVertex +{ + CGrMVertex *next,*last,*copy; + + U0 start; + CD3I32 p; //This is the world coordinates of the point. + U0 end; + CD3I32 p0, + pt; //This is the transformed coordinates. (Screen) + I32 num,flags; +}; + +#define TF_SELECTED 1 +#define TF_COPIED 2 + +class CGrMTri +{ + CGrMTri *next,*last; + + U0 start; + CMeshTri mt; + U0 end; + + I32 cpu_num,flags; //Draw different triangles with different cores. + CGrMVertex *t[3]; +}; + + +class CGrMFrame +{ + I64 my_ipz; //This is the Z-coordinate of the input pointer (mouse). + CTask *task; + I64 mode,cx,cy; + CColorROPU32 cur_color; + Bool grid_on,flip_y,select_rect,vertex_on,pad[4]; + I64 mp_done_flags; //Used for multiprocessing signaling. + F64 view_scale; + CDC *dc; + I64 *w2s,*s2w; //Screen-to-world and world-to-screen transform matrices. + I64 vertex_cnt,triangle_cnt; //Set by GrMSize + CGrMVertex vertex_root,*cur_vertex; + CGrMTri triangle_root,*cur_triangle; + I64 x1,y1,x2,y2,cur_snap; +}; + +CGrMVertex *GrMVertexNew(CGrMFrame *e,I64 x,I64 y,I64 z) +{ + CGrMVertex *tempv=CAlloc(sizeof(CGrMVertex)); + tempv->p.x=x; + tempv->p.y=y; + tempv->p.z=z; + QueIns(tempv,e->vertex_root.last); + return tempv; +} + +CGrMTri *GrMTriNew(CGrMFrame *e,CColorROPU32 color,CGrMVertex *v1,CGrMVertex *v2,CGrMVertex *v3) +{ + static I64 cpu_num=0; + CGrMTri *tempt=CAlloc(sizeof(CGrMTri)); + tempt->cpu_num=cpu_num++%mp_cnt; + tempt->mt.color=color; + tempt->t[0]=v1; + tempt->t[1]=v2; + tempt->t[2]=v3; + QueIns(tempt,e->triangle_root.last); + return tempt; +} + +CGrMVertex *GrMVertexFindS(CGrMFrame *e,I64 x,I64 y) +{//Screen coordinates + CGrMVertex *result=NULL,*tempv=e->vertex_root.next; + I64 dd,dz,best_dd=MAX_I64,best_dz=MAX_I64; + while (tempv!=&e->vertex_root) { + if (!(tempv->flags&VF_IGNORE)) { + dd=SqrI64(x-tempv->pt.x)+SqrI64(y-tempv->pt.y); + dz=AbsI64(e->my_ipz-tempv->p.z); + if (ddnext; + } + return result; +} + +CGrMVertex *GrMVertexFindNum(CGrMFrame *e,I64 num) +{ + CGrMVertex *tempv=e->vertex_root.next; + while (tempv!=&e->vertex_root) { + if (tempv->num==num) + return tempv; + tempv=tempv->next; + } + return NULL; +} + +U0 GrMTriangleDel(CGrMFrame *e,CGrMTri *tempt) +{ + if (tempt) { + if (tempt==e->cur_triangle) + e->cur_triangle=NULL; + QueRem(tempt); + Free(tempt); + } +} + +U0 GrMVertexDel(CGrMFrame *e,CGrMVertex *tempv) +{ + I64 i; + CGrMTri *tempt,*tempt1; + if (tempv) { + tempt=e->triangle_root.next; + while (tempt!=&e->triangle_root) { + tempt1=tempt->next; + for (i=0;i<3;i++) + if (tempt->t[i]==tempv) + break; + if (i<3) + GrMTriangleDel(e,tempt); + tempt=tempt1; + } + if (tempv==e->cur_vertex) + e->cur_vertex=NULL; + QueRem(tempv); + Free(tempv); + } +} + +U0 GrMVertexSelectAll(CGrMFrame *e,Bool val) +{ + CGrMVertex *tempv=e->vertex_root.next; + while (tempv!=&e->vertex_root) { + if (val) + tempv->flags|=VF_SELECTED; + else + tempv->flags&=~VF_SELECTED; + tempv=tempv->next; + } +} + +U0 GrMTriangleSelectAll(CGrMFrame *e,Bool val) +{ + CGrMTri *tempt=e->triangle_root.next; + while (tempt!=&e->triangle_root) { + if (val) + tempt->flags|=TF_SELECTED; + else + tempt->flags&=~TF_SELECTED; + tempt=tempt->next; + } +} + +U0 GrMVertexIgnoreSet(CGrMFrame *e,Bool val) +{ + CGrMVertex *tempv=e->vertex_root.next; + while (tempv!=&e->vertex_root) { + tempv->flags&=~VF_IGNORE; + if (tempv->flags&VF_SELECTED && val) + tempv->flags|=VF_IGNORE; + tempv=tempv->next; + } +} + +U0 GrMP0Capture(CGrMFrame *e) +{ + CGrMVertex *tempv=e->vertex_root.next; + while (tempv!=&e->vertex_root) { + MemCpy(&tempv->p0,&tempv->p,sizeof(CD3I32)); + tempv=tempv->next; + } +} + +U0 GrMP0Offset(CGrMFrame *e,I64 dx,I64 dy,I64 dz) +{ + CGrMVertex *tempv=e->vertex_root.next; + while (tempv!=&e->vertex_root) { + if (tempv->flags&VF_SELECTED) { + tempv->p.x=tempv->p0.x+dx; + tempv->p.y=tempv->p0.y+dy; + tempv->p.z=tempv->p0.z+dz; + } + tempv=tempv->next; + } +} + +#define GRM_EQU 0 +#define GRM_OR 1 +#define GRM_AND 2 +U0 GrMVertexSelectRect(CGrMFrame *e,I64 mode,I64 x1,I64 x2,I64 y1,I64 y2) +{ + CGrMVertex *tempv=e->vertex_root.next; + if (x1>x2) SwapU64(&x1,&x2); + if (y1>y2) SwapU64(&y1,&y2); + while (tempv!=&e->vertex_root) { + if (x1<=tempv->pt.x<=x2 && + y1<=tempv->pt.y<=y2) { + if (mode==GRM_AND) + tempv->flags&=~VF_SELECTED; + else + tempv->flags|=VF_SELECTED; + } else if (mode==GRM_EQU) + tempv->flags&=~VF_SELECTED; + tempv=tempv->next; + } +} + +U0 GrMTriangleSelectRect(CGrMFrame *e,I64 mode,I64 x1,I64 x2,I64 y1,I64 y2) +{ + CGrMTri *tempt=e->triangle_root.next; + if (x1>x2) SwapU64(&x1,&x2); + if (y1>y2) SwapU64(&y1,&y2); + while (tempt!=&e->triangle_root) { + if (x1<=tempt->t[0]->pt.x<=x2 && + y1<=tempt->t[0]->pt.y<=y2 && + x1<=tempt->t[1]->pt.x<=x2 && + y1<=tempt->t[1]->pt.y<=y2 && + x1<=tempt->t[2]->pt.x<=x2 && + y1<=tempt->t[2]->pt.y<=y2) { + if (mode==GRM_AND) + tempt->flags&=~TF_SELECTED; + else + tempt->flags|=TF_SELECTED; + } else { + if (mode==GRM_EQU) + tempt->flags&=~TF_SELECTED; + else if (mode==GRM_AND) { + if (x1<=tempt->t[0]->pt.x<=x2 && + y1<=tempt->t[0]->pt.y<=y2 || + x1<=tempt->t[1]->pt.x<=x2 && + y1<=tempt->t[1]->pt.y<=y2 || + x1<=tempt->t[2]->pt.x<=x2 && + y1<=tempt->t[2]->pt.y<=y2) + tempt->flags&=~TF_SELECTED; + } + } + tempt=tempt->next; + } +} + +I64 GrMSelectCnt(CGrMFrame *e) +{ + I64 result=0; + CGrMVertex *tempv=e->vertex_root.next; + CGrMTri *tempt=e->triangle_root.next; + while (tempv!=&e->vertex_root) { + if (tempv->flags&VF_SELECTED) + result++; + tempv=tempv->next; + } + while (tempt!=&e->triangle_root) { + if (tempt->flags&TF_SELECTED) + result++; + tempt=tempt->next; + } + return result; +} + +U0 GrMSwapAxes(CGrMFrame *e,I64 o1,I64 o2) +{ + Bool unselect; + CGrMVertex *tempv=e->vertex_root.next; + if (!GrMSelectCnt(e)) { + GrMVertexSelectAll(e,TRUE); + unselect=TRUE; + } else + unselect=FALSE; + while (tempv!=&e->vertex_root) { + if (tempv->flags&VF_SELECTED) + SwapU32((&tempv->p)(U8 *)+o1,(&tempv->p)(U8 *)+o2); + tempv=tempv->next; + } + if (unselect) + GrMVertexSelectAll(e,FALSE); +} + +U0 GrMInvertAxis(CGrMFrame *e,I64 o) +{ + Bool unselect; + CGrMVertex *tempv=e->vertex_root.next; + if (!GrMSelectCnt(e)) { + GrMVertexSelectAll(e,TRUE); + unselect=TRUE; + } else + unselect=FALSE; + while (tempv!=&e->vertex_root) { + if (tempv->flags&VF_SELECTED) + *((&tempv->p)(U8 *)+o)(I32 *)=-*((&tempv->p)(U8 *)+o)(I32 *); + tempv=tempv->next; + } + if (unselect) + GrMVertexSelectAll(e,FALSE); +} + +U0 GrMTransformSelect(CGrMFrame *e) +{ + Bool unselect; + I64 r[16],x,y,z; + CGrMVertex *tempv=e->vertex_root.next; + if (PopUpTransform(r)) { + if (!GrMSelectCnt(e)) { + GrMVertexSelectAll(e,TRUE); + unselect=TRUE; + } else + unselect=FALSE; + while (tempv!=&e->vertex_root) { + if (tempv->flags&VF_SELECTED) { + x=tempv->p.x; y=tempv->p.y; z=tempv->p.z; + GrRot(r,&x,&y,&z); + tempv->p.x=x; tempv->p.y=y; tempv->p.z=z; + } + tempv=tempv->next; + } + if (unselect) + GrMVertexSelectAll(e,FALSE); + } +} + +U0 GrMFlipTriangles(CGrMFrame *e) +{ + Bool unselect; + CGrMTri *tempt=e->triangle_root.next; + if (!GrMSelectCnt(e)) { + GrMTriangleSelectAll(e,TRUE); + unselect=TRUE; + } else + unselect=FALSE; + while (tempt!=&e->triangle_root) { + if (tempt->flags & TF_SELECTED) + SwapU64(&tempt->t[1],&tempt->t[2]); + tempt=tempt->next; + } + if (unselect) + GrMTriangleSelectAll(e,FALSE); +} + +U0 GrMRecalcCxCy(CTask *task,CGrMFrame *e) +{ + e->cx=RoundI64(task->win_pixel_width/2 -task->horz_scroll.pos,e->cur_snap); + e->cy=RoundI64(task->win_pixel_height/2-task->vert_scroll.pos,e->cur_snap); +} + +U0 GrMCurSnap(CGrMFrame *e) +{ + CTask *task=e->task; + I64 x1,y1,z1,x2,y2,z2; + if (e->w2s) { + x1=e->cur_snap<<16; y1=0; z1=0; + GrRot(e->w2s,&x1,&y1,&z1); + x2=0; y2=e->cur_snap<<16; z2=0; + GrRot(e->w2s,&x2,&y2,&z2); + task->snap.x=MaxI64(1,MaxI64(x1,x2)>>16); + task->snap.y=MaxI64(1,MaxI64(y1,y2)>>16); + task->snap.z=MinI64(task->snap.x,task->snap.y); + } +} + +U0 GrMScaleZoom(CGrMFrame *e,F64 scale) +{ + CTask *task=Fs; + I64 x=ipx-task->win_pixel_left-task->win_scroll_x-task->win_pixel_width/2, + y=ipy-task->win_pixel_top-task->win_scroll_y-task->win_pixel_height/2; + task->horz_scroll.pos*=scale; + task->vert_scroll.pos*=scale; + task->horz_scroll.pos+=scale*x-x; + task->vert_scroll.pos+=scale*y-y; + e->view_scale*=scale; + GrMRecalcCxCy(task,e); + GrMCurSnap(e); +} + +U0 MPDrawIt(CGrMFrame *e) //Multiprocessing draw it, called by each core. +{ + +//Makes a copy of e->dc so we can change dc->color member and stuff. + CDC *dc=DCAlias(e->dc,e->dc->win_task); + + CGrMTri *tempt=e->triangle_root.next; + I64 i,*old_r=dc->r; + +//$LK,"DCAlias","MN:DCAlias"$() allocates a new identity rotation matrix. +//We want e->dc's rotation matrix. + dc->r=e->dc->r; + + MemCpy(&dc->ls,&e->dc->ls,sizeof(CD3I32)); + +//... and translation (shift) vals. + dc->x=e->dc->x; + dc->y=e->dc->y; + dc->z=e->dc->z; + dc->flags|=DCF_TRANSFORMATION; + + if (e->grid_on) + //Draw grid with different cores. + for (i=-500+25*Gs->num;i<=500;i+=25*mp_cnt) { + if (i) { + dc->color=DKGRAY; + GrLine3(dc,i,-500,0,i,500,0); + dc->color=LTGRAY; + GrLine3(dc,-500,i,0,500,i,0); + } + } + if (!Gs->num) { + dc->color=RED; //Y-Axis red + GrLine3(dc,0,0,0,0,500,0); + dc->color=ROPF_DITHER+RED; //Y-Axis red + GrLine3(dc,0,-500,0,0,0,0); + + dc->color=YELLOW; //X-Axis yellow + GrLine3(dc,0,0,0,500,0,0); + dc->color=ROPF_DITHER+YELLOW; //X-Axis yellow + GrLine3(dc,-500,0,0,0,0,0); + + dc->color=GREEN; //Z-Axis green + GrLine3(dc,0,0,0,0,0,500); + dc->color=ROPF_DITHER+GREEN; //Z-Axis green + GrLine3(dc,0,0,-500,0,0,0); + } + + while (tempt!=&e->triangle_root) { + if (tempt->cpu_num==Gs->num) { + if (tempt->flags & TF_SELECTED) { + if (Blink(,tP(e->dc->win_task))) + dc->color=ROPF_DITHER+WHITE<<16+RED; + else + dc->color=ROPF_DITHER+RED<<16+WHITE; + GrFillTriangle0(dc,&tempt->t[0]->pt,&tempt->t[1]->pt,&tempt->t[2]->pt); + } else { + (*dc->lighting)(dc,&tempt->t[0]->pt,&tempt->t[1]->pt,&tempt->t[2]->pt,tempt->mt.color); + GrFillTriangle0(dc,&tempt->t[0]->pt,&tempt->t[1]->pt,&tempt->t[2]->pt); + } + } + tempt=tempt->next; + } + dc->r=old_r; + +//e->dc's depth buf was copied but we don't want it freed during $LK,"DCDel","MN:DCDel"$(). + dc->depth_buf=NULL; + + DCDel(dc); + LBts(&e->mp_done_flags,Gs->num); +} + +I64 *GrMW2S(CGrMFrame *e,CTask *task) +{//World to screen coordinate transform matrix. + CCtrl *c=CtrlFindUnique(task,CTRLT_VIEWING_ANGLES); + CViewAngles *s=c->state; + I64 *r=GrIdent(task); + GrScaleMatEqu(r,e->view_scale); + GrRotZEqu(r,s->az); + GrRotYEqu(r,s->ay); + if (e->flip_y) + GrRotXEqu(r,s->ax); + else + GrRotXEqu(r,s->ax+ã); + return r; +} + +I64 *GrMS2W(CGrMFrame *e,CTask *task) +{//Screen to world coordinate transform matrix. + CCtrl *c=CtrlFindUnique(task,CTRLT_VIEWING_ANGLES); + CViewAngles *s=c->state; + I64 *r=GrIdent(task); + if (e->flip_y) + GrRotXEqu(r,-s->ax); + else + GrRotXEqu(r,-(s->ax+ã)); + GrRotYEqu(r,-s->ay); + GrRotZEqu(r,-s->az); + GrScaleMatEqu(r,1/e->view_scale); + return r; +} + +I64 *GrMSetW2S(CGrMFrame *e,CTask *task) +{ + Free(e->w2s); + e->w2s=GrMW2S(e,task); + Free(e->s2w); + e->s2w=GrMS2W(e,task); + return MAllocIdentical(e->w2s,task); //returned matrix is assigned to dc->r and will be freed by $LK,"DCDel","MN:DCDel"$(). +} + +U0 GrMCursorW(CGrMFrame *e,CTask *task,I64 *_x,I64 *_y,I64 *_z) +{ + I64 x_shadow,y_shadow,z_shadow, + xc=ipx-task->win_pixel_left-task->win_scroll_x-e->cx,yc=ipy-task->win_pixel_top-task->win_scroll_y-e->cy,zc=0, + x=0,y=0,z=e->my_ipz, + i,x2,y2,z2; + GrRot(e->w2s,&x,&y,&z); //screen of Z vect + +//This converges onto a solution for zc, an unknown. + for (i=0;i<128;i++) { + x_shadow=xc-x; //Shadow of mouse cursor on xy plane + y_shadow=yc-y; + z_shadow=zc-z; + GrRot(e->s2w,&x_shadow,&y_shadow,&z_shadow); + x2=0; y2=0; z2=-z_shadow; + GrRot(e->w2s,&x2,&y2,&z2); + zc+=Round(Sqrt(x2*x2+y2*y2+z2*z2))*SignI64(z2); + } + + x=xc-x; + y=yc-y; + z=zc-z; + GrRot(e->s2w,&x,&y,&z); + x=RoundI64(x,e->cur_snap); + y=RoundI64(y,e->cur_snap); + z=RoundI64(e->my_ipz,e->cur_snap); + *_x=x; *_y=y; *_z=z; +} + + +CGrMVertex sys_vertex_root; +CGrMTri sys_triangle_root; + +U0 GrMClipBoardInit() +{ + QueInit(&sys_vertex_root); + QueInit(&sys_triangle_root); +} + +U0 GrMClipBoardRst() +{ + QueDel(&sys_vertex_root,TRUE); + QueDel(&sys_triangle_root,TRUE); + GrMClipBoardInit; +} + +U0 GrMClipBoardCopy(CGrMFrame *e) +{ + CGrMVertex *tempv=e->vertex_root.next,*tempv2; + CGrMTri *tempt=e->triangle_root.next,*tempt2; + + GrMClipBoardRst; + while (tempv!=&e->vertex_root) { + if (tempv->flags&VF_SELECTED) { + tempv->copy=tempv2=ACAlloc(sizeof(CGrMVertex)); + MemCpy(&tempv2->p,&tempv->p,sizeof(CD3I32)); + QueIns(tempv2,sys_vertex_root.last); + tempv->flags|=VF_COPIED; + tempv->flags&=~VF_SELECTED; + } else { + tempv->copy=NULL; + tempv->flags&=~(VF_COPIED|VF_SELECTED); + } + tempv=tempv->next; + } + while (tempt!=&e->triangle_root) { + if (tempt->flags&TF_SELECTED && + tempt->t[0]->copy && tempt->t[1]->copy && tempt->t[2]->copy) { + tempt2=ACAlloc(sizeof(CGrMTri)); + tempt2->t[0]=tempt->t[0]->copy; + tempt2->t[1]=tempt->t[1]->copy; + tempt2->t[2]=tempt->t[2]->copy; + tempt2->mt.color=tempt->mt.color; + QueIns(tempt2,sys_triangle_root.last); + tempt->flags|=TF_COPIED; + tempt->flags&=~TF_SELECTED; + } else + tempt->flags&=~(TF_COPIED|TF_SELECTED); + tempt=tempt->next; + } +} + +U0 GrMClipBoardCut(CGrMFrame *e) +{ + CGrMVertex *tempv=e->vertex_root.next,*tempv1; + CGrMTri *tempt=e->triangle_root.next,*tempt1; + GrMClipBoardCopy(e); + while (tempv!=&e->vertex_root) { + tempv1=tempv->next; + if (tempv->flags&VF_COPIED) + GrMVertexDel(e,tempv); + tempv=tempv1; + } + while (tempt!=&e->triangle_root) { + tempt1=tempt->next; + if (tempt->flags&TF_COPIED) + GrMTriangleDel(e,tempt); + tempt=tempt1; + } +} + +U0 GrMClipBoardDel(CGrMFrame *e) +{//Technically not clipboard + CGrMVertex *tempv=e->vertex_root.next,*tempv1; + CGrMTri *tempt=e->triangle_root.next,*tempt1; + while (tempv!=&e->vertex_root) { + tempv1=tempv->next; + if (tempv->flags&VF_SELECTED) + GrMVertexDel(e,tempv); + tempv=tempv1; + } + while (tempt!=&e->triangle_root) { + tempt1=tempt->next; + if (tempt->flags&TF_SELECTED) + GrMTriangleDel(e,tempt); + tempt=tempt1; + } +} + +U0 GrMClipBoardPaste(CGrMFrame *e) +{ + CGrMVertex *tempv2=sys_vertex_root.next,*tempv; + CGrMTri *tempt2=sys_triangle_root.next,*tempt; + + GrMVertexSelectAll(e,FALSE); + GrMTriangleSelectAll(e,FALSE); + while (tempv2!=&sys_vertex_root) { + tempv2->copy=tempv=CAlloc(sizeof(CGrMVertex)); + MemCpy(&tempv->p,&tempv2->p,sizeof(CD3I32)); + QueIns(tempv,e->vertex_root.last); + tempv->flags|=VF_SELECTED; + tempv2=tempv2->next; + } + + while (tempt2!=&sys_triangle_root) { + tempt=GrMTriNew(e,tempt2->mt.color,tempt2->t[0]->copy,tempt2->t[1]->copy,tempt2->t[2]->copy); + tempt->flags|=TF_SELECTED; + tempt2=tempt2->next; + } +} + +GrMClipBoardInit; + + +U0 DrawIt(CTask *task,CDC *dc) +{ + CGrMFrame *e=NamedFramePtr("CGrMFrame",task); + CCtrl *c=CtrlFindUnique(task,CTRLT_VIEWING_ANGLES); + F64 d; + I64 i,x,y,z; + CGrMVertex *tempv; + + task->horz_scroll.min=-(GE_WORKSPACE_SIZE-task->win_pixel_width)/2; + task->horz_scroll.max= (GE_WORKSPACE_SIZE-task->win_pixel_width)/2; + task->vert_scroll.min=-(GE_WORKSPACE_SIZE-task->win_pixel_height)/2; + task->vert_scroll.max= (GE_WORKSPACE_SIZE-task->win_pixel_height)/2; + TaskDerivedValsUpdate(task); + GrMRecalcCxCy(task,e); + + dc->flags|=DCF_TRANSFORMATION; + + Free(dc->r); //Set rotmat doesn't free old dc->r matrix. + GrSetRotMat(dc,GrMSetW2S(e,task)); + + dc->x=e->cx; + dc->y=e->cy; +//z-vals less than zero are in front of screen and not drawn. +//we want to shift all Z-vals into a drawable range. +//GR_Z_ALL is set to half of the Z-range which is an I32. + dc->z=GR_Z_ALL; + +//Light source set to input pointer (mouse). + GrMCursorW(e,task,&x,&y,&z); + dc->ls.x=x; + dc->ls.y=y; + dc->ls.z=z; + d=1<<16/P3I32Norm(&dc->ls); //Light source normalized to 65536. + dc->ls.x*=d; + dc->ls.y*=d; + dc->ls.z*=d; + + DCAllocDepthBuf(dc); + + tempv=e->vertex_root.next; + while (tempv!=&e->vertex_root) { + x=tempv->p.x; y=tempv->p.y; z=tempv->p.z; + (*dc->transform)(dc,&x,&y,&z); + tempv->pt.x=x; tempv->pt.y=y; tempv->pt.z=z; + tempv=tempv->next; + } + + e->mp_done_flags=0; //Issue jobs to all cores. + e->dc=dc; + for (i=1;ivertex_root.next; + 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. + dc->color=ROPF_DITHER+BLACK<<16+WHITE; + else + dc->color=ROPF_DITHER+WHITE<<16+BLACK; + GrLine(dc,x-3,y-3,x+3,y+3); + GrLine(dc,x-3,y+3,x+3,y-3); + } + if (tempv->flags&VF_SELECTED) { + if (e->mode=='t') { + if (Blink(10,tP(task))) //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))) + dc->color=ROPF_DITHER+RED<<16+WHITE; + else + dc->color=ROPF_DITHER+WHITE<<16+RED; + } + GrCircle(dc,x,y,3); + } + tempv=tempv->next; + } + + if (CtrlInside(c,ipx_presnap,ipy_presnap)||win_show_menu) { + SetSnap(&task->snap,1,1.0); + task->win_inhibit=WIF_DOC; + } else { + GrMCurSnap(e); + task->win_inhibit=WIF_ALL|WIF_DOC-WIF_BORDER-WIF_CTRLS-WIF_MENU-WIF_GRAB_SCROLL; + } + + GrMCursorW(e,task,&x,&y,&z); + if (z<0) + dc->color=ROP_XOR+RED^COLOR_TRANSPARENT; + else + dc->color=ROP_XOR+COLOR_TRANSPARENT; + 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))) + 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))) + dc->color=ROPF_DITHER+RED<<16+WHITE; + else + dc->color=ROPF_DITHER+WHITE<<16+RED; + GrLineRect4(dc,e->x1,e->y1,e->x2,e->y2); + } +//Wait for all cores to complete. + while (e->mp_done_flags!=1<task=Fs; + e->vertex_root.next=e->vertex_root.last=&e->vertex_root; + e->triangle_root.next=e->triangle_root.last=&e->triangle_root; + e->mode='v'; + e->grid_on=TRUE; + e->vertex_on=TRUE; + e->my_ipz=0; + e->view_scale=1.0; + e->w2s=NULL; + e->s2w=NULL; + e->cur_color=RED; + e->cur_snap=5; + e->flip_y=flip_y; + e->select_rect=FALSE; + e->cur_triangle=NULL; + e->cur_vertex=NULL; +} + +U0 GrMLoad(CGrMFrame *e,U8 *src) +{ + I64 i,j,x,y,z; + CColorROPU32 color; + CGrMVertex *tempv,*va[3]; + + e->vertex_root.next=e->vertex_root.last=&e->vertex_root; + e->triangle_root.next=e->triangle_root.last=&e->triangle_root; + + e->vertex_cnt =*src(I32 *)++; + e->triangle_cnt=*src(I32 *)++; + for (i=0;ivertex_cnt;i++) { + x=*src(I32 *)++; + y=*src(I32 *)++; + z=*src(I32 *)++; + tempv=GrMVertexNew(e,x,y,z); + tempv->num=i; + } + for (i=0;itriangle_cnt;i++) { + color=*src(I32 *)++; + for (j=0;j<3;j++) + va[j]=GrMVertexFindNum(e,*src(I32 *)++); + GrMTriNew(e,color,va[0],va[1],va[2]); + } +} + +I64 GrMSize(CGrMFrame *e) +{ + I64 i; + CGrMVertex *tempv=e->vertex_root.next; + CGrMTri *tempt=e->triangle_root.next; + + e->vertex_cnt=0; + while (tempv!=&e->vertex_root) { + tempv->num=e->vertex_cnt++; + tempv=tempv->next; + } + + e->triangle_cnt=0; + while (tempt!=&e->triangle_root) { + e->triangle_cnt++; + for (i=0;i<3;i++) + tempt->mt.nums[i]=tempt->t[i]->num; + tempt=tempt->next; + } + return sizeof(I32)*2+ + (offset(CGrMVertex.end)-offset(CGrMVertex.start))*e->vertex_cnt+ + (offset(CGrMTri.end)-offset(CGrMTri.start))*e->triangle_cnt; +} + +I32 *GrMSave(CGrMFrame *e,I64 *_size=NULL) +{ + I64 size=GrMSize(e); + U8 *result=MAlloc(size),*dst=result; + CGrMVertex *tempv=e->vertex_root.next; + CGrMTri *tempt=e->triangle_root.next; + + *dst(I32 *)++=e->vertex_cnt; + *dst(I32 *)++=e->triangle_cnt; + + e->vertex_cnt=0; + while (tempv!=&e->vertex_root) { + MemCpy(dst,&tempv->start,offset(CGrMVertex.end)-offset(CGrMVertex.start)); + dst+=offset(CGrMVertex.end)-offset(CGrMVertex.start); + tempv=tempv->next; + } + + e->triangle_cnt=0; + while (tempt!=&e->triangle_root) { + MemCpy(dst,&tempt->start,offset(CGrMTri.end)-offset(CGrMTri.start)); + dst+=offset(CGrMTri.end)-offset(CGrMTri.start); + tempt=tempt->next; + } + if (_size) *_size=size; + return result; +} + +U0 GrMCleanUp(CGrMFrame *e) +{ + QueDel(&e->vertex_root,TRUE); + QueDel(&e->triangle_root,TRUE); + Free(e->w2s); + Free(e->s2w); +} + +U0 GrMUpdateMenu(CGrMFrame *e) +{ + CMenuEntry *tempse; + if (tempse=MenuEntryFind(Fs->cur_menu,"View/Grid")) + tempse->checked=ToBool(e->grid_on); + if (tempse=MenuEntryFind(Fs->cur_menu,"View/Vertex")) + tempse->checked=ToBool(e->vertex_on); + if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/PlaceVertex")) + tempse->checked=ToBool(e->mode=='v'); + if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/MoveVertex")) + tempse->checked=ToBool(e->mode=='m'); + if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/MoveVertexZ")) + tempse->checked=ToBool(e->mode=='M'); + if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/MakeTriangle")) + tempse->checked=ToBool(e->mode=='t'); + if (tempse=MenuEntryFind(Fs->cur_menu,"View/FlipY")) + tempse->checked=ToBool(e->flip_y); +} + +I32 *CSpriteMesh(I32 *root=NULL,I64 *_size=NULL,Bool flip_y=FALSE) +/*$WW,1$ + +Fmt for mesh: +{ +I32 vertex_cnt; +I32 triangle_cnt; +CD3I32 vertices[]; +CMeshTri triangles[]; +} + +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"$. + + +$WW,0$*/ +{ + CCtrl *c=CtrlFindUnique(Fs,CTRLT_VIEWING_ANGLES); + CViewAngles *s,*old_s; + I64 i,msg_code,p1,p2,vn=0,x,y,z; + CD3I32 p0a,p0b; + CGrMVertex *va[3],*tempv; + Bool adjusting_z=FALSE,moving,save_and_exit; + CGrMFrame e; + + if (c) { + old_s=MAlloc(sizeof(CViewAngles)); + MemCpy(old_s,c->state,sizeof(CViewAngles)); + } else { + c=ViewAnglesNew; + old_s=NULL; + } + + s=c->state; + s->sx=0; + s->sy=0; + s->sz=0; + s->cx=YELLOW; + s->cy=RED; + s->cz=GREEN; + + MenuPush( + "File {" + " Abort(,CH_SHIFT_ESC);" + " Exit(,CH_ESC);" + "}" + "Edit {" + " Delete(,,SC_DELETE);" + " DelLast(,CH_BACKSPACE);" + " Cut(,CH_CTRLX);" + " Copy(,CH_CTRLC);" + " Paste(,CH_CTRLV);" + " SelectAll(,'A');" + " UnSelectAll(,'U');" + " SelectRect(,'a');" + " UnSelectRect(,'u');" + " OrSelectRect(,'o');" + " JumpToZ(,'j');" + " FlipTri(,'f');" + "}" + "Mode {" + " PlaceVertex(,'v');" + " MoveVertex(,'m');" + " MoveVertexZ(,'M');" + " MakeTriangle(,'t');" + "}" + "Settings {" + " Color(,'c');" + " Snap(,'s');" + "}" + "View {" + " ZoomIn(,'z');" + " ZoomOut(,'Z');" + " NullAngles(,'n');" + " FlipY(,'y');" + " Grid(,'g');" + " Vertex(,'V');" + " ToggleBorder(,CH_CTRLB);" + "}" + "Transforms {" + " Transform(,'T');" + " SwapXY(,'1');" + " SwapXZ(,'2');" + " SwapYZ(,'3');" + " InvertX(,'4');" + " InvertY(,'5');" + " InvertZ(,'6');" + " FlipTri(,'F');" + "}"); + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Preempt(OFF); //We don't really want window update while modifying links + AcctOneTimePopUp(ARf_MESH_ED, + "$$FG,GREEN$$Right Mouse$$FG$$: Hold and move to shift cursor z\n" + "$$FG,GREEN$$'j'$$FG$$: Jump cursor Z to nearest vertex's Z\n" + "$$FG,GREEN$$'v'$$FG$$: Place Vertex Mode\n" + "$$FG,GREEN$$'t'$$FG$$: Make Triangle Mode\n" + "$$FG,GREEN$$'m'$$FG$$: Move Vertex Mode\n" + "$$FG,GREEN$$'M'$$FG$$: Move Vertex Z\n" + "$$FG,GREEN$$'c'$$FG$$: Set color\n" + "$$FG,GREEN$$'s'$$FG$$: Set snap\n" + "\nSee menu at top of screen for more.\n"); + + Fs->win_inhibit=WIF_ALL|WIF_DOC-WIF_BORDER-WIF_CTRLS-WIF_MENU-WIF_GRAB_SCROLL; + Fs->horz_scroll.pos=0; + Fs->vert_scroll.pos=0; + WordStat; + GrMInit(&e,flip_y); + if (root) + GrMLoad(&e,root); + NamedFramePtrAdd("CGrMFrame",&e); + Fs->draw_it=&DrawIt; + GrMCurSnap(&e); + GrMRecalcCxCy(Fs,&e); + + try { //In case of + while (TRUE) { + GrMUpdateMenu(&e); + msg_code=GetMsg(&p1,&p2,1<win_pixel_left-Fs->win_scroll_x,ipy_presnap-Fs->win_pixel_top-Fs->win_scroll_y)); + GrMVertexSelectAll(&e,FALSE); + GrMTriangleSelectAll(&e,FALSE); + vn=0; + } + break; + case SC_INS: + if (e.mode=='t') { + Beep; Beep; + } else { + if (p2&SCF_CTRL) + GrMClipBoardCopy(&e); + else if (p2&SCF_SHIFT) { + GrMClipBoardPaste(&e); + e.mode='m'; + } + } + break; + } + break; + case CH_BACKSPACE: + switch (e.mode) { + case 'v': + GrMVertexDel(&e,e.cur_vertex); + break; + case 't': + if (vn) { + GrMVertexSelectAll(&e,FALSE); + GrMTriangleSelectAll(&e,FALSE); + vn=0; + } else + GrMTriangleDel(&e,e.cur_triangle); + break; + } + break; + case 't': + GrMVertexSelectAll(&e,FALSE); + GrMTriangleSelectAll(&e,FALSE); + case 'v': + case 'm': + case 'M': + adjusting_z=FALSE; + moving=FALSE; + e.mode=p1; + vn=0; + Snd(0); + break; + case 'T': + GrMTransformSelect(&e); + break; + case 'A': + GrMTriangleSelectAll(&e,TRUE); + if (e.mode!='t') + GrMVertexSelectAll(&e,TRUE); + else + GrMVertexSelectAll(&e,FALSE); + vn=0; + break; + case 'U': + GrMTriangleSelectAll(&e,FALSE); + GrMVertexSelectAll(&e,FALSE); + vn=0; + break; + case 'a': + case 'u': + case 'o': + if (p1=='a') + i=GRM_EQU; + else if (p1=='u') + i=GRM_AND; + else + i=GRM_OR; + if ((msg_code=GetMsg(&p1,&p2,1<display_flags,DISPLAYf_NO_BORDER)); + break; + case CH_CTRLC: + if (e.mode=='t') { + Beep;Beep; + } else + GrMClipBoardCopy(&e); + break; + case CH_CTRLV: + if (e.mode=='t') { + Beep;Beep; + } else { + GrMClipBoardPaste(&e); + e.mode='m'; + } + break; + case CH_CTRLX: + if (e.mode=='t') { + Beep;Beep; + } else + GrMClipBoardCut(&e); + break; + case CH_SHIFT_ESC: + save_and_exit=FALSE; + goto mesh_done; + case CH_ESC: + save_and_exit=TRUE; + goto mesh_done; + case 'z': + GrMScaleZoom(&e,1.5); + break; + case 'Z': + GrMScaleZoom(&e,1/1.5); + break; + case 'c': + e.cur_color=PopUpLightingColor; + break; + case 's': + i=PopUpRangeI64(1,25,1,"New Snap\n"); + if (i>=1) + e.cur_snap=i; + GrMCurSnap(&e); + GrMRecalcCxCy(Fs,&e); + break; + case 'g': + e.grid_on=!e.grid_on; + break; + case 'V': + e.vertex_on=!e.vertex_on; + break; + case 'n': + s->sx=s->sy=s->sz=0; + break; + case 'y': + e.flip_y=!e.flip_y; + break; + case 'j': + if (moving) + GrMVertexIgnoreSet(&e,TRUE); + if (tempv=GrMVertexFindS(&e,ipx-Fs->win_pixel_left-Fs->win_scroll_x,ipy-Fs->win_pixel_top-Fs->win_scroll_y)) { + Noise(25,2000,8000); + e.my_ipz=RoundI64(tempv->p.z,e.cur_snap); + } else { + Beep; Beep; + e.my_ipz=0; + } + GrMVertexIgnoreSet(&e,FALSE); + if (moving) { + GrMCursorW(&e,Fs,&x,&y,&z); + if (adjusting_z) + GrMP0Offset(&e,0,0,z-p0a.z); + else + GrMP0Offset(&e,x-p0a.x,y-p0a.y,z-p0a.z); + p0a.x=x; + p0a.y=y; + p0a.z=z; + GrMP0Capture(&e); + } + break; + case '1': + GrMSwapAxes(&e,offset(CD3I32.x),offset(CD3I32.y)); + break; + case '2': + GrMSwapAxes(&e,offset(CD3I32.x),offset(CD3I32.z)); + break; + case '3': + GrMSwapAxes(&e,offset(CD3I32.y),offset(CD3I32.z)); + break; + case '4': + GrMInvertAxis(&e,offset(CD3I32.x)); + break; + case '5': + GrMInvertAxis(&e,offset(CD3I32.y)); + break; + case '6': + GrMInvertAxis(&e,offset(CD3I32.z)); + break; + case 'f': + if (e.cur_triangle) + SwapU64(&e.cur_triangle->t[1],&e.cur_triangle->t[2]); + break; + case 'F': + GrMFlipTriangles(&e); + break; + + } + break; + case MSG_IP_L_DOWN: + switch (e.mode) { + case 'm': + if (!moving) { + if (!GrMSelectCnt(&e) && + (tempv=GrMVertexFindS(&e,p1,p2))) { + tempv->flags|=VF_SELECTED; + e.my_ipz=RoundI64(tempv->p.z,e.cur_snap); + } + if (GrMSelectCnt(&e)) { + GrMCursorW(&e,Fs,&x,&y,&z); + p0a.x=x; + p0a.y=y; + p0a.z=z; + GrMP0Capture(&e); + moving=TRUE; + } + } + break; + case 'M': + if (!adjusting_z && !moving) { + if (!GrMSelectCnt(&e) && + (tempv=GrMVertexFindS(&e,p1,p2))) { + tempv->flags|=VF_SELECTED; + e.my_ipz=RoundI64(tempv->p.z,e.cur_snap); + } + if (GrMSelectCnt(&e)) { + GrMCursorW(&e,Fs,&x,&y,&z); + p0a.x=x; + p0a.y=y; + p0a.z=z; + GrMP0Capture(&e); + moving=TRUE; + + p0b.x=ipx_presnap; + p0b.y=ipy_presnap; + p0b.z=e.my_ipz; + adjusting_z=TRUE; + Snd(LimitI64(3*e.my_ipz+1500,0,15000)); + } + } + break; + } + break; + case MSG_IP_L_UP: + switch (e.mode) { + case 'v': + Noise(25,2000,8000); + GrMCursorW(&e,Fs,&x,&y,&z); + e.cur_vertex=GrMVertexNew(&e,x,y,z); + break; + case 'm': + case 'M': + if (moving) { + if (adjusting_z) { + e.my_ipz=RoundI64(Sign(p0b.y-ipy_presnap)*Sqrt(Sqr(p0b.x-ipx_presnap)+Sqr(p0b.y-ipy_presnap))+p0b.z,e.cur_snap); + Snd(0); + adjusting_z=FALSE; + GrMCursorW(&e,Fs,&x,&y,&z); + GrMP0Offset(&e,0,0,z-p0a.z); + } else { + GrMCursorW(&e,Fs,&x,&y,&z); + GrMP0Offset(&e,x-p0a.x,y-p0a.y,z-p0a.z); + } + GrMTriangleSelectAll(&e,FALSE); + GrMVertexSelectAll(&e,FALSE); + moving=FALSE; + } + break; + case 't': + if (tempv=GrMVertexFindS(&e,p1,p2)) { + for (i=0;iflags|=VF_SELECTED; + if (vn==3) { + e.cur_triangle=GrMTriNew(&e,e.cur_color,va[0],va[1],va[2]); + for (i=0;iflags&=~VF_SELECTED; + vn=0; + } + } + } + break; + } + break; + case MSG_IP_R_DOWN: + if (e.mode!='M' && !adjusting_z) { + if (moving) { + GrMCursorW(&e,Fs,&x,&y,&z); + GrMP0Offset(&e,x-p0a.x,y-p0a.y,z-p0a.z); + p0a.x=x; + p0a.y=y; + p0a.z=z; + GrMP0Capture(&e); + } + p0b.x=ipx_presnap; + p0b.y=ipy_presnap; + p0b.z=e.my_ipz; + adjusting_z=TRUE; + Snd(LimitI64(3*e.my_ipz+1500,0,15000)); + } + break; + case MSG_IP_R_UP: + if (e.mode!='M' && adjusting_z) { + e.my_ipz=RoundI64(Sign(p0b.y-ipy_presnap)*Sqrt(Sqr(p0b.x-ipx_presnap)+Sqr(p0b.y-ipy_presnap))+p0b.z,e.cur_snap); + Snd(0); + adjusting_z=FALSE; + if (moving) { + GrMCursorW(&e,Fs,&x,&y,&z); + GrMP0Offset(&e,0,0,z-p0a.z); + p0a.x=x; + p0a.y=y; + p0a.z=z; + GrMP0Capture(&e); + } + } + break; + case MSG_IP_MOVE: + if (adjusting_z) { + e.my_ipz=RoundI64(Sign(p0b.y-ipy_presnap)*Sqrt(Sqr(p0b.x-ipx_presnap)+Sqr(p0b.y-ipy_presnap))+p0b.z,e.cur_snap); + Snd(LimitI64(3*e.my_ipz+1500,0,15000)); + } + if (moving) { + GrMCursorW(&e,Fs,&x,&y,&z); + if (adjusting_z) + GrMP0Offset(&e,0,0,z-p0a.z); + else + GrMP0Offset(&e,x-p0a.x,y-p0a.y,z-p0a.z); + p0a.x=x; + p0a.y=y; + p0a.z=z; + GrMP0Capture(&e); + } + break; + } + } +mesh_done: + } catch + Fs->catch_except=TRUE; + SettingsPop; + MenuPop; + if (save_and_exit) + root=GrMSave(&e,_size); + else + root=NULL; + GrMCleanUp(&e); + NamedFramePtrDel("CGrMFrame"); + if (old_s) { + MemCpy(c->state,old_s,sizeof(CViewAngles)); + Free(old_s); + } else + ViewAnglesDel; + return root; +} + +#help_index "Graphics" diff --git a/SparrowOS/Adam/Gr/CSpriteNew.CPP b/SparrowOS/Adam/Gr/CSpriteNew.CPP new file mode 100644 index 0000000..0b43fdc --- /dev/null +++ b/SparrowOS/Adam/Gr/CSpriteNew.CPP @@ -0,0 +1,235 @@ +#help_index "Graphics/CSprite" +#help_file "::/SparrowOS/Doc/CSprite" + +I64 gr_sprite_base_size[GRST_NUM_TYPES]= +{ +offset(CSprite.x1)-offset(CSprite.start), //GRST_END +1, +1+offset(CSprite.color8)-offset(CSprite.start), //GRST_COLOR8 +1, +offset(CSprite.x2)-offset(CSprite.start), //GRST_PT +offset(CSprite.linespeed)-offset(CSprite.start), //GRST_LINE +offset(CSprite.y1)-offset(CSprite.start), //GRST_POLYLINE +offset(CSprite.y1)-offset(CSprite.start), //GRST_POLYPT +offset(CSprite.y1)-offset(CSprite.start), //GRST_WIDTH +offset(CSprite.x2)-offset(CSprite.start), //GRST_SHIFT +offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE2 +offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE3 +offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE2_CLOSED +offset(CSprite.y1)-offset(CSprite.start), //GRST_BSPLINE3_CLOSED +1, +1, +1, +offset(CSprite.linespeed)-offset(CSprite.start), //GRST_RECT +offset(CSprite.y2)-offset(CSprite.start), //GRST_CIRCLE +offset(CSprite.x2)-offset(CSprite.start), //GRST_FLOOD_FILL_NOT +offset(CSprite.x2)-offset(CSprite.start), //GRST_FLOOD_FILL +offset(CSprite.linespeed)-offset(CSprite.start), //GRST_BITMAP8 +1, +offset(CSprite.st)-offset(CSprite.start), //GRST_TEXT +offset(CSprite.sides)-offset(CSprite.start), //GRST_ELLIPSE +sizeof(CSprite)-offset(CSprite.start), //GRST_REG_POLY +offset(CSprite.linespeed)-offset(CSprite.start), //GRST_PLANAR_SYMMETRY +2+offset(CSprite.dither_color8)-offset(CSprite.start), //GRST_DITHER_COLOR8 +offset(CSprite.sides)-offset(CSprite.start), //GRST_ROTATED_RECT +offset(CSprite.x2)-offset(CSprite.start), //GRST_MESH +offset(CSprite.shiftable_triangle_cnt)+sizeof(I32)-offset(CSprite.start), //GRST_SHIFTABLE_MESH +offset(CSprite.x1)-offset(CSprite.start), //GRST_TRANSFORM_ON +offset(CSprite.x1)-offset(CSprite.start), //GRST_TRANSFORM_OFF +offset(CSprite.linespeed)-offset(CSprite.start), //GRST_ARROW +offset(CSprite.st)-offset(CSprite.start), //GRST_TEXT_BOX +offset(CSprite.st)-offset(CSprite.start), //GRST_TEXT_DIAMOND +}; + +I64 gr_sprite_qued_base_size[GRST_NUM_TYPES]= +{ +offset(CSprite.x1),//GRST_END +1, +1+offset(CSprite.color8), //GRST_COLOR8 +1, +offset(CSprite.x2), //GRST_PT +offset(CSprite.linespeed), //GRST_LINE +offset(CSprite.y1), //GRST_POLYLINE +offset(CSprite.y1), //GRST_POLYPT +offset(CSprite.y1), //GRST_WIDTH +offset(CSprite.x2), //GRST_SHIFT +offset(CSprite.y1), //GRST_BSPLINE2 +offset(CSprite.y1), //GRST_BSPLINE3 +offset(CSprite.y1), //GRST_BSPLINE2_CLOSED +offset(CSprite.y1), //GRST_BSPLINE3_CLOSED +1, +1, +1, +offset(CSprite.linespeed), //GRST_RECT +offset(CSprite.y2), //GRST_CIRCLE +offset(CSprite.x2), //GRST_FLOOD_FILL_NOT +offset(CSprite.x2), //GRST_FLOOD_FILL +offset(CSprite.linespeed), //GRST_BITMAP8 +1, +offset(CSprite.st), //GRST_TEXT +offset(CSprite.sides), //GRST_ELLIPSE +sizeof(CSprite), //GRST_REG_POLY +offset(CSprite.linespeed), //GRST_PLANAR_SYMMETRY +2+offset(CSprite.dither_color8), //GRST_DITHER_COLOR8 +offset(CSprite.sides), //GRST_ROTATED_RECT +offset(CSprite.x2), //GRST_MESH +offset(CSprite.shiftable_triangle_cnt)+sizeof(I32), //GRST_SHIFTABLE_MESH +offset(CSprite.x1), //GRST_TRANSFORM_ON +offset(CSprite.x1), //GRST_TRANSFORM_OFF +offset(CSprite.linespeed), //GRST_ARROW +offset(CSprite.st), //GRST_TEXT_BOX +offset(CSprite.st), //GRST_TEXT_DIAMOND +}; + + +I64 CSpriteElemSize(CSprite *tempg) +{ + I64 i=gr_sprite_base_size[tempg->type]; + switch (tempg->type) { + case GRST_POLYLINE: + i+=tempg->num<<1*sizeof(I32); + break; + case GRST_TEXT: + case GRST_TEXT_BOX: + case GRST_TEXT_DIAMOND: + i+=StrLen(tempg->st)+1; + break; + case GRST_BITMAP8: + i+=((tempg->width+7)&~7)*tempg->height; + break; + case GRST_POLYPT: + i+=sizeof(I32)<<1+(tempg->num*3+7)>>3; + break; + case GRST_BSPLINE2: + case GRST_BSPLINE3: + case GRST_BSPLINE2_CLOSED: + case GRST_BSPLINE3_CLOSED: + i+=tempg->num*sizeof(CD3I32); + break; + case GRST_MESH: + i+=tempg->vertex_cnt*sizeof(CD3I32)+tempg->triangle_cnt*sizeof(CMeshTri); + break; + case GRST_SHIFTABLE_MESH: + i+=tempg->shiftable_vertex_cnt*sizeof(CD3I32)+tempg->shiftable_triangle_cnt*sizeof(CMeshTri); + break; + } + return i; +} + +public I64 CSpriteSize(U8 *elems) +{ + CSprite *tempg=elems-offset(CSprite.start),*tempg1=tempg; + while (tempg->type) + tempg(U8 *)+=CSpriteElemSize(tempg); + return tempg(U8 *)-tempg1(U8 *)+gr_sprite_base_size[GRST_END]; +} + +I64 CSpriteTypeMask(U8 *elems) +{ + I64 result=0; + CSprite *tempg=elems-offset(CSprite.start); + while (tempg->type) { + if (tempg->type>=GRST_NUM_TYPES) + return 1<type); + tempg(U8 *)+=CSpriteElemSize(tempg); + } + return result; +} + +public U8 *DC2Sprite(CDC *tempb) +{ + CSprite *tempg; + CDC *tempb1; + Bool temp_bitmap; + if (tempb->type!=DCT_COLOR8) { + tempb1=DCNew(DCT_COLOR8,tempb->width,tempb->height,Fs); + tempb1->color=WHITE; + GrBlot(tempb1,0,0,tempb); + temp_bitmap=TRUE; + } else { + tempb1=tempb; + temp_bitmap=FALSE; + } + tempg=CAlloc(gr_sprite_base_size[GRST_BITMAP8]+ + tempb1->width_internal*tempb1->height+ + gr_sprite_base_size[GRST_END]) + (U8 *)-offset(CSprite.start); + tempg->type=GRST_BITMAP8; + tempg->width=tempb1->width; + tempg->height=tempb1->height; + tempg->x2=0; + tempg->y2=0; + MemCpy(tempg(U8 *)+offset(CSprite.linespeed),tempb1->body, + tempb1->width_internal*tempb1->height); + if (temp_bitmap) + DCDel(tempb1); + 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"$. + U8 buf[256],buf2[256],buf3[136]; + I32 *ptr; + SPrintF(buf,"%Z",tempg->type,"ST_CSPRITE_TYPES"); + *buf2=0; + switch (tempg->type) { + case GRST_COLOR8: + SPrintF(buf2," %s",Color2Text(buf3,tempg->color8)); + break; + case GRST_PT: + case GRST_FLOOD_FILL: + case GRST_FLOOD_FILL_NOT: + case GRST_SHIFT: + SPrintF(buf2," %d,%d",tempg->x1,tempg->y1); + break; + case GRST_LINE: + case GRST_ARROW: + case GRST_PLANAR_SYMMETRY: + case GRST_RECT: + case GRST_ROTATED_RECT: + SPrintF(buf2," (%d,%d)-(%d,%d)", + tempg->x1,tempg->y1,tempg->x2,tempg->y2); + break; + case GRST_CIRCLE: + SPrintF(buf2," %d,%d:%dR", + tempg->x1,tempg->y1,tempg->x2); + break; + case GRST_WIDTH: + SPrintF(buf2," %d",tempg->width); + break; + case GRST_TEXT: + case GRST_TEXT_BOX: + case GRST_TEXT_DIAMOND: + SPrintF(buf2," %d,%d:%-16tQ",tempg->x1,tempg->y1,tempg->st); + break; + case GRST_DITHER_COLOR8: + SPrintF(buf2," %s",Color2Text(buf3,ROPF_DITHER|tempg->dither_color8.u8[0]|tempg->dither_color8.u8[1]<y1; + SPrintF(buf2," %d %d,%d",tempg->num,ptr[0],ptr[1]); + break; + case GRST_ELLIPSE: + case GRST_REG_POLY: + case GRST_BITMAP8: + SPrintF(buf2," %dW,%dH:%d,%d", + tempg->width,tempg->height,tempg->x2,tempg->y2); + break; + case GRST_BSPLINE2: + case GRST_BSPLINE3: + case GRST_BSPLINE2_CLOSED: + case GRST_BSPLINE3_CLOSED: + SPrintF(buf2," %d",tempg->num); + break; + case GRST_MESH: + SPrintF(buf2," %dV,%dT",tempg->vertex_cnt,tempg->triangle_cnt); + break; + case GRST_SHIFTABLE_MESH: + SPrintF(buf2," %dV,%dT",tempg->shiftable_vertex_cnt,tempg->shiftable_triangle_cnt); + break; + } + StrCat(buf,buf2); + return StrNew(buf); +} diff --git a/SparrowOS/Adam/Gr/CSpriteVect.CPP b/SparrowOS/Adam/Gr/CSpriteVect.CPP new file mode 100644 index 0000000..d797a76 --- /dev/null +++ b/SparrowOS/Adam/Gr/CSpriteVect.CPP @@ -0,0 +1,1281 @@ +#help_index "Graphics/CSprite" +#define CSPRITE_WIF (WIF_ALL-WIF_BORDER-WIF_GRAB_SCROLL) + +#define GRST_MENU -2 +#define GRST_SNAP -3 +#define GRST_INS_SCREEN_BITMAP -5 +#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) +{ + U8 *st; + CTask *pu_task; + I64 i; + CDoc *doc=DocNew; + DocPrintF(doc,"$$FG,PURPLE$$$$TX+CX,\"Vect Object Menu\"$$$$FG$$\n" + "$$FG,RED$$Settings$$FG$$\n" + "$$MU-UL,\"Color (4-bit)\",GRST_COLOR8$$\n" + "$$MU-UL,\"Dither Color (4-bit)\",GRST_DITHER_COLOR8$$\n" + "$$MU-UL,\"Width\",GRST_WIDTH$$\n" + "$$MU-UL,\"Snap %d %5.3f\",GRST_SNAP$$\n" + "$$MU-UL,\"Planar Symmetry\",GRST_PLANAR_SYMMETRY$$\n" + "\n$$FG,RED$$Objects$$FG$$\n" + "$$MU-UL,\"Point\",GRST_PT$$\n" + "$$MU-UL,\"Line\",GRST_LINE$$\n" + "$$MU-UL,\"Arrow\",GRST_ARROW$$\n" + "$$MU-UL,\"Rect\",GRST_RECT$$\n" + "$$MU-UL,\"Circle\",GRST_CIRCLE$$\n" + "$$MU-UL,\"Ellipse\",GRST_ELLIPSE$$\n" + "$$MU-UL,\"Reg Polygon\",GRST_REG_POLY$$\n" + "$$MU-UL,\"Text\",GRST_TEXT$$\n" + "$$MU-UL,\"Text Box\",GRST_TEXT_BOX$$\n" + "$$MU-UL,\"Text Diamond\",GRST_TEXT_DIAMOND$$\n" + "$$MU-UL,\"Flood Fill\",GRST_FLOOD_FILL$$\n" + "$$MU-UL,\"Flood Fill Not Color\",GRST_FLOOD_FILL_NOT$$\n" + "$$MU-UL,\"PolyLine\",GRST_POLYLINE$$\n" + "$$MU-UL,\"PolyPoint\",GRST_POLYPT$$\n" + "$$MU-UL,\"BSpline2\",GRST_BSPLINE2$$\n" + "$$MU-UL,\"BSpline3\",GRST_BSPLINE3$$\n" + "$$MU-UL,\"BSpline2 Closed\",GRST_BSPLINE2_CLOSED$$\n" + "$$MU-UL,\"BSpline3 Closed\",GRST_BSPLINE3_CLOSED$$\n" + "$$MU-UL,\"Insert Screen BitMap\",GRST_INS_SCREEN_BITMAP$$\n" + "$$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" + "\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" + "\n" + "$$FM,PURPLE$$$$MU-UL,\"+] Edit Menu\",GRST_ED$$$$FM,LTBLUE$$\n" + "$$MU-UL,\"End\",GRST_END$$\n",snap,ip_scaler); + 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); + PopUp(st,NULL,&pu_task); + Free(st); + i=PopUpMenu(doc); + if (TaskValidate(pu_task)) { + *_root=CSpriteDoc2Que(DocCur(pu_task),*_root,cur_num); + Kill(pu_task); + } + DocDel(doc); + return i; +} + +U8 GrSpOffset[9]={0,1,2,3,0,4,5,6,7}; + +Bool GrPolyPtPlot(CSprite *root,I64 x,I64 y,I64) +{ + CSprite *tempg=CAlloc(gr_sprite_qued_base_size[GRST_PT]); + tempg->type=GRST_PT; + tempg->x1=x; + tempg->y1=y; + QueIns(tempg,root->last); + return TRUE; +} + +CSprite *CSpriteFromQue(CSprite *root,U32 *_size=NULL) +{ + I64 s,size=gr_sprite_base_size[GRST_END]; + CSprite *result,*tempg; + U8 *dst; + + tempg=root->next; + while (tempg!=root) { + size+=CSpriteElemSize(tempg); + tempg=tempg->next; + } + result=MAlloc(size); + dst=result; + tempg=root->next; + while (tempg!=root) { + s=CSpriteElemSize(tempg); + MemCpy(dst,&tempg->start,s); + dst+=s; + tempg=tempg->next; + } + *dst=GRST_END; + if (_size) *_size=size; + return result; +} + +CSprite *CSprite2Que(U8 *elems) +{ + I64 s; + CSprite *result=CAlloc(sizeof(CSprite)), + *tempg=elems-offset(CSprite.start), + *tempg1; + result->next=result->last=result; + while (tempg->type) { + tempg1=MAlloc(CSpriteElemSize(tempg)+offset(CSprite.start)); + s=CSpriteElemSize(tempg); + MemCpy(&tempg1->start,&tempg->start,s); + QueIns(tempg1,result->last); + tempg(U8 *)+=s; + } + return result; +} + +CSprite *GrNum2Que(CSprite *root,I64 num,I64 *x=NULL,I64 *y=NULL) +{ + I64 xx=0,yy=0; + CSprite *result=root->next; + while (result!=root && num--) { + if (result->type==GRST_SHIFT) { + xx+=result->x1; + yy+=result->y1; + } + result=result->next; + } + if (x) *x=xx; + if (y) *y=yy; + return result; +} + +U0 GrEdUpdate(CDoc *doc,CDocBin *tempb,CSprite *root) +{ + Bool unlock=DocLock(doc); + Free(tempb->data); + tempb->data=CSpriteFromQue(root,&tempb->size); + if (unlock) + DocUnlock(doc); +} + +U0 GrSetSettings(CDC *dc,CSprite *root,I64 cur_num,CColorROPU32 *_color,I64 *_width,I64 x,I64 y) +{ + CSprite *tempg; + *_color=ROP_EQU|BLACK; + *_width=1; + DCRst(dc); + + tempg=root->next; + while (cur_num>0 && tempg!=root) { + switch (tempg->type) { + case GRST_COLOR8: + dc->color=*_color=tempg->color8; + break; + case GRST_DITHER_COLOR8: + dc->color=*_color= + tempg->dither_color8.u8[0]| + tempg->dither_color8.u8[1]<pen_width=*_width=tempg->width; + break; + case GRST_PLANAR_SYMMETRY: + if (GrSetSymmetry3(dc,tempg->x1+x,tempg->y1+y,0,tempg->x2+x,tempg->y2+y,0,tempg->x2+x,tempg->y2+y,1)) + dc->flags|=DCF_SYMMETRY; + else + dc->flags&=~DCF_SYMMETRY; + break; + } + cur_num--; + tempg=tempg->next; + } +} + +U0 GrScreenInit(CDC *dc,I64,I64) +{ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + I64 xx,yy,old_pen_width=dc->pen_width; + CColorROPU32 old_color=dc->color; + WinMgrSync; + DCFill(dc); + if (dc->flags&DCF_SYMMETRY) { + dc->flags&=~DCF_SYMMETRY; + dc->pen_width=1; + xx=dc->sym.sny*8192; + yy=-dc->sym.snx*8192; + dc->color=ROP_EQU+RED; + GrLine3(dc,dc->sym.sx-xx.i32[1],dc->sym.sy-yy.i32[1],0, + dc->sym.sx+xx.i32[1],dc->sym.sy+yy.i32[1],0,3,0); + dc->color=ROP_EQU+WHITE; + GrLine3(dc,dc->sym.sx-xx.i32[1],dc->sym.sy-yy.i32[1],0, + dc->sym.sx+xx.i32[1],dc->sym.sy+yy.i32[1],0,3,1); + dc->color=ROP_EQU+BLACK; + GrLine3(dc,dc->sym.sx-xx.i32[1],dc->sym.sy-yy.i32[1],0, + dc->sym.sx+xx.i32[1],dc->sym.sy+yy.i32[1],0,3,2); + dc->flags|=DCF_SYMMETRY; + } + dc->color=old_color; + 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 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, + old_doc_flags=doc->flags&(DOCF_ATTR_BY_PRT|DOCF_ATTR_BY_FILENAME), + old_ce_flags1=doc_e->flags1,old_flags; + CColorROPU32 bm_bkcolor,color; + CSprite root2,*tempg,*tempg1,*tempg2,*insert_pt; + CDC *dc=DCAlias(gr_dc2,Fs), + *dc2=DCAlias(gr_dc2,sys_winmgr_task), + *dc3, + *img; + CD3I32 *p; + CDocBin *tempb=doc_e->bin_data; + F64 a1,a2,new_ip_scaler=1.0; + Fs->task_title[TASK_TITLE_LEN]=0; + I32 *ptr,*mesh,*old_mesh; + U8 *st,*old_desc=StrNew(Fs->task_title), + *old_filename=StrNew(doc->filename.name); + + WinMgrSync(2,TRUE); + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + dc2->flags|=DCF_ON_TOP; + insert_pt=GrNum2Que(*_root,*cur_num,&x1,&y1); + x+=x1; y+=y1; + + if (_import_snap) new_snap=*_import_snap; + if (_import_ip_scaler) new_ip_scaler=*_import_ip_scaler; + SetSnap(&Fs->snap,new_snap,new_ip_scaler); + Fs->win_inhibit=CSPRITE_WIF; + while (TRUE) { + GrSetSettings(dc,*_root,*cur_num,&color,&width,x,y); + DCFill; + if (eletype==GRST_MENU) { + doc_e->flags1|=DOCEF1_DONT_DRAW; + StrCpy(Fs->task_title,old_desc); + StrCpy(doc->filename.name,old_filename); + doc->flags|=old_doc_flags; + + eletype=PopUpCSpriteVect(new_sprite,_root,new_snap,new_ip_scaler,cur_num); + GrEdUpdate(doc,tempb,*_root); + insert_pt=GrNum2Que(*_root,*cur_num); + switch (eletype) { + case GRST_FLOOD_FILL: + case GRST_FLOOD_FILL_NOT: + AcctOneTimePopUp(ARf_FLOODFILL, + ST_WARN_ST "This is affected by what's underneath\n" + "when it is drawn. You will probably want to\n" + "convert it to a bitmap.\n\n" + "A tip on artistry you might consider\n" + "is using lines to fill regions because\n" + "brush strokes look cool.\n"); + break; + case GRST_PLANAR_SYMMETRY: + AcctOneTimePopUp(ARf_PLANAR_SYMMETRY, + "Right-click to turn-off symmetry.\n"); + break; + } + doc_e->flags1=old_ce_flags1; + } + + if (eletype<0) + switch (eletype) { + case GRST_INS_SCREEN_BITMAP: + StrCpy(Fs->task_title,"Insert Screen BitMap"); + break; + case GRST_INS_TRANSPARENT_SCREEN_BITMAP: + StrCpy(Fs->task_title,"Insert Transparent Screen BitMap"); + break; + } + else + StrCpy(Fs->task_title,DefineSub(eletype,"ST_CSPRITE_TYPES")); + StrCpy(doc->filename.name,Fs->task_title); + doc->flags&=~(DOCF_ATTR_BY_PRT|DOCF_ATTR_BY_FILENAME); + + switch (eletype) { + case GRST_COLOR8: + doc_e->flags1|=DOCEF1_DONT_DRAW; + i=PopUpColor(,,FALSE); + if (i>=0) { + color=ROP_EQU|i; + tempg=MAlloc(gr_sprite_qued_base_size[GRST_COLOR8]); + tempg->type=GRST_COLOR8; + tempg->color8=color; + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + } + doc_e->flags1=old_ce_flags1; + eletype=GRST_MENU; + break; + case GRST_DITHER_COLOR8: + doc_e->flags1|=DOCEF1_DONT_DRAW; + i=PopUpDitherColor; + if (i>=0) { + color=ROP_EQU|i; + tempg=MAlloc(gr_sprite_qued_base_size[GRST_DITHER_COLOR8]); + tempg->type=GRST_DITHER_COLOR8; + tempg->dither_color8=color.c0.color|color.c1.color<<8; + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + } + doc_e->flags1=old_ce_flags1; + eletype=GRST_MENU; + break; + case GRST_MESH: + doc_e->flags1|=DOCEF1_DONT_DRAW; + + tempg1=insert_pt; + if (tempg1!=*_root && tempg1->type==GRST_MESH) + old_mesh=&tempg1->vertex_cnt; + else if (tempg1!=*_root && tempg1->type==GRST_SHIFTABLE_MESH) { + x1=tempg1->x1; + y1=tempg1->y1; + z1=tempg1->z1; + p=(&tempg1->shiftable_triangle_cnt)(U8 *)+sizeof(I32); + for (i=0;ishiftable_vertex_cnt;i++,p++) { + p->x+=x1; + p->y+=y1; + p->z+=z1; + } + old_mesh=&tempg1->shiftable_vertex_cnt; + } else + old_mesh=NULL; + if (mesh=CSpriteMesh(old_mesh,&size,TRUE)) { + tempg=MAlloc(gr_sprite_qued_base_size[GRST_MESH]-sizeof(I32)*2+size); + tempg->type=GRST_MESH; + MemCpy(&tempg->vertex_cnt,mesh,size); + Free(mesh); + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + if (old_mesh) { + insert_pt=tempg; + QueRem(tempg1); + Free(tempg1); + GrEdUpdate(doc,tempb,*_root); + } else + *cur_num+=1; + } else if (old_mesh && tempg1->type==GRST_SHIFTABLE_MESH) { + x1=tempg1->x1; + y1=tempg1->y1; + z1=tempg1->z1; + p=(&tempg1->shiftable_triangle_cnt)(U8 *)+sizeof(I32); + for (i=0;ishiftable_vertex_cnt;i++,p++) { + p->x-=x1; + p->y-=y1; + p->z-=z1; + } + } + doc_e->flags1=old_ce_flags1; + eletype=GRST_MENU; + break; + case GRST_SHIFTABLE_MESH: + doc_e->flags1|=DOCEF1_DONT_DRAW; + if (PopUpNoYes("Use same origin?\n")) { + doc_e->flags1=old_ce_flags1; + p1=x; p2=y; + goto ei_shiftable_mesh; + } + PopUpOk("Select Origin.\n"); + doc_e->flags1=old_ce_flags1; + break; + case GRST_INS_SCREEN_BITMAP: + doc_e->flags1|=DOCEF1_DONT_DRAW; + PopUpOk("Drag-out a rect for the extents of the\n" + "bitmap.\n"); + doc_e->flags1=old_ce_flags1; + break; + case GRST_BITMAP8: + case GRST_INS_TRANSPARENT_SCREEN_BITMAP: + doc_e->flags1|=DOCEF1_DONT_DRAW; + i=PopUpColor("Background Color\n\n",,FALSE); + if (i<0) + eletype=GRST_MENU; + else { + bm_bkcolor=i; + if (eletype!=GRST_INS_TRANSPARENT_SCREEN_BITMAP) { + GrEdUpdate(doc,tempb,*_root); + CSpriteExtents(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; + xx1+=x; yy1+=y; + xx2+=x; yy2+=y; + goto ei_bitmap; + } + } + PopUpOk("Drag-out a rect for the extents of the\n" + "bitmap.\n"); + } + doc_e->flags1=old_ce_flags1; + break; + case GRST_WIDTH: + doc_e->flags1|=DOCEF1_DONT_DRAW; + i=PopUpRangeI64(1,16,1,"Pen Width\n"); + if (i>=1) { + width=i; + tempg=MAlloc(gr_sprite_qued_base_size[GRST_WIDTH]); + tempg->type=GRST_WIDTH; + tempg->width=width; + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + } + doc_e->flags1=old_ce_flags1; + eletype=GRST_MENU; + break; + case GRST_TRANSFORM_ON: + case GRST_TRANSFORM_OFF: + tempg=MAlloc(gr_sprite_qued_base_size[GRST_TRANSFORM_ON]); + if (eletype==GRST_TRANSFORM_ON) + tempg->type=GRST_TRANSFORM_ON; + else + tempg->type=GRST_TRANSFORM_OFF; + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + eletype=GRST_MENU; + break; + case GRST_REG_POLY: + doc_e->flags1|=DOCEF1_DONT_DRAW; + i=PopUpRangeI64(3,16,1,"Num of Sides\n"); + doc_e->flags1=old_ce_flags1; + if (i<3) + eletype=GRST_MENU; + break; + case GRST_SNAP: + doc_e->flags1|=DOCEF1_DONT_DRAW; + PopUpSnap(&Fs->snap); + new_snap=Fs->snap.x; + new_ip_scaler=Fs->snap.dx; + doc_e->flags1=old_ce_flags1; + eletype=GRST_MENU; + break; + case GRST_TEXT: + doc_e->flags1|=DOCEF1_DONT_DRAW; + st=PopUpMGetS("Enter text and press .\n"); + doc_e->flags1=old_ce_flags1; + if (st && *st) { + x1=0; y1=0; + do { + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrPutS3(dc,x1,y1,0,st); + msg_code=GetMsg(&p1,&p2, + 1<type=GRST_TEXT; + tempg->x1=x1-x; + tempg->y1=y1-y; + StrCpy(tempg->st,st); + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + } + Free(st); + eletype=GRST_MENU; + break; + case GRST_TEXT_BOX: + doc_e->flags1|=DOCEF1_DONT_DRAW; + st=PopUpMGetS("Enter text and press .\n"); + doc_e->flags1=old_ce_flags1; + if (st && *st) { + x1=0; y1=0; + do { + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrTextBox3(dc,x1,y1,0,st); + msg_code=GetMsg(&p1,&p2, + 1<type=GRST_TEXT_BOX; + tempg->x1=x1-x; + tempg->y1=y1-y; + StrCpy(tempg->st,st); + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + } + Free(st); + eletype=GRST_MENU; + break; + case GRST_TEXT_DIAMOND: + doc_e->flags1|=DOCEF1_DONT_DRAW; + st=PopUpMGetS("Enter text and press .\n"); + doc_e->flags1=old_ce_flags1; + if (st && *st) { + x1=0; y1=0; + do { + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrTextDiamond3(dc,x1,y1,0,st); + msg_code=GetMsg(&p1,&p2, + 1<type=GRST_TEXT_DIAMOND; + tempg->x1=x1-x; + tempg->y1=y1-y; + StrCpy(tempg->st,st); + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + } + Free(st); + eletype=GRST_MENU; + break; + } + + + + if (eletype!=GRST_MENU) { +ei_restart: + GrScreenInit(dc,x,y); + if (eletype==GRST_END) { + result=GE_OKAY_DONE; + goto ei_done; + } else if (eletype==GRST_ED) { + result=GE_OKAY_CONT; + goto ei_done; + } else if (eletype==DOCM_CANCEL) { + result=GE_CANCEL; + goto ei_done; + } + msg_code=GetMsg(&p1,&p2,1<type=GRST_PLANAR_SYMMETRY; + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + eletype=GRST_MENU; + } else + eletype=GRST_MENU; + } + if (msg_code==MSG_KEY_DOWN) { + if (p1==CH_ESC) { + result=GE_OKAY_DONE; + goto ei_done; + } else if (p1==CH_SHIFT_ESC) { + result=GE_CANCEL; + goto ei_done; + } else + goto ei_restart; + } else { + switch (eletype) { + case GRST_LINE: + x1=p1; y1=p2; + x2=p1; y2=p2; + do { + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrLine3(dc,x1,y1,0,x2,y2,0); + msg_code=GetMsg(&p1,&p2, + 1<color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrLine3(dc,x1,y1,0,x2,y2,0); + tempg=MAlloc(gr_sprite_qued_base_size[GRST_LINE]); + tempg->type=GRST_LINE; + tempg->x1=x1-x; + tempg->y1=y1-y; + tempg->x2=x2-x; + tempg->y2=y2-y; + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + break; + case GRST_ARROW: + x1=p1; y1=p2; + x2=p1; y2=p2; + do { + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrArrow3(dc,x1,y1,0,x2,y2,0); + msg_code=GetMsg(&p1,&p2, + 1<color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrArrow3(dc,x1,y1,0,x2,y2,0); + tempg=MAlloc(gr_sprite_qued_base_size[GRST_ARROW]); + tempg->type=GRST_ARROW; + tempg->x1=x1-x; + tempg->y1=y1-y; + tempg->x2=x2-x; + tempg->y2=y2-y; + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + break; + case GRST_PLANAR_SYMMETRY: + old_width=dc->pen_width; + old_flags=dc->flags; + dc->flags&=~DCF_SYMMETRY; + dc->pen_width=1; + x1=p1; y1=p2; + x2=p1; y2=p2; + do { + dc->color=ROPF_DITHER+WHITE<<16+ROP_EQU+BLACK; + GrLine3(dc,x1,y1,0,x2,y2,0); + msg_code=GetMsg(&p1,&p2, + 1<type=GRST_PLANAR_SYMMETRY; + tempg->x1=x1-x; + tempg->y1=y1-y; + tempg->x2=x2-x; + tempg->y2=y2-y; + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + dc->flags=old_flags&DCF_SYMMETRY|dc->flags&~DCF_SYMMETRY; + dc->pen_width=old_width; + eletype=GRST_MENU; + break; + case GRST_RECT: + x1=p1; y1=p2; + x2=p1; y2=p2; + xx1=p1; yy1=p2; + xx2=p1; yy2=p2; + do { + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrRect3(dc,xx1,yy1,0,xx2-xx1,yy2-yy1); + msg_code=GetMsg(&p1,&p2, + 1<color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrRect3(dc,xx1,yy1,0,xx2-xx1,yy2-yy1); + tempg=MAlloc(gr_sprite_qued_base_size[GRST_RECT]); + tempg->type=GRST_RECT; + tempg->x1=xx1-x; + tempg->y1=yy1-y; + tempg->x2=xx2-x; + tempg->y2=yy2-y; + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + break; + case GRST_BITMAP8: + x1=p1; y1=p2; + x2=p1; y2=p2; + xx1=p1; yy1=p2; + xx2=p1; yy2=p2; + old_width=dc->pen_width; + dc->pen_width=1; + do { + dc->color=ROPF_DITHER+WHITE<<16+ROP_EQU+BLACK; + GrLineRect4(dc,xx1,yy1,xx2,yy2); + msg_code=GetMsg(&p1,&p2, + 1<type=eletype; + tempg->width=xx2-xx1; + tempg->height=yy2-yy1; + tempg->x2=xx1-x; + tempg->y2=yy1-y; + img=DCNew(DCT_COLOR8,tempg->width,tempg->height,Fs); + img->color=bm_bkcolor; + GrRect(img,0,0,tempg->width,tempg->height); + 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); + 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); + insert_pt=tempg1->next; + QueRem(tempg1); + Free(tempg1); + } + 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)) { + case GE_OKAY_DONE: + case GE_OKAY_CONT: + Free(tempg); + tempg=CAlloc(gr_sprite_qued_base_size[GRST_BITMAP8]+ + ((xx2-xx1+7)&~7)*(yy2-yy1)); + tempg->type=eletype; + tempg->width=xx2-xx1; + tempg->height=yy2-yy1; + tempg->x2=xx1-x; + tempg->y2=yy1-y; + MemCpy(tempg(U8 *)+offset(CSprite.linespeed),img->body,((xx2-xx1+7)&~7)*(yy2-yy1)); + break; + } + SetSnap(&Fs->snap,new_snap,new_ip_scaler); + doc_e->flags1=old_ce_flags1; + + QueIns(tempg,insert_pt->last); + DCDel(img); + GrEdUpdate(doc,tempb,*_root); + dc->pen_width=old_width; + eletype=GRST_MENU; + if (i==GE_OKAY_DONE) { + result=GE_OKAY_DONE; + goto ei_done; + } + break; + case GRST_INS_SCREEN_BITMAP: + case GRST_INS_TRANSPARENT_SCREEN_BITMAP: + x1=p1; y1=p2; + x2=p1; y2=p2; + xx1=p1; yy1=p2; + xx2=p1; yy2=p2; + old_width=dc2->pen_width; + dc2->pen_width=1; + do { + dc2->color=ROPF_DITHER+WHITE<<16+ROP_EQU+BLACK; + GrLineRect4(dc2,xx1+Fs->win_pixel_left+Fs->win_scroll_x,yy1+Fs->win_pixel_top+Fs->win_scroll_y, + xx2+Fs->win_pixel_left+Fs->win_scroll_x,yy2+Fs->win_pixel_top+Fs->win_scroll_y); + msg_code=GetMsg(&p1,&p2, + 1<type=GRST_BITMAP8; + tempg->width=xx2-xx1; + tempg->height=yy2-yy1; + tempg->x2=0; + tempg->y2=0; + GrScreenInit(dc,x,y); + i=gr_screen_zoom; + GrScaleZoom(1.0/i); + WinMgrSync(2,TRUE); + + dc3=DCCaptureScreen; + img=DCExtract(dc3, + Fs->win_pixel_left+Fs->win_scroll_x+xx1,Fs->win_pixel_top+Fs->win_scroll_y+yy1, + Fs->win_pixel_left+Fs->win_scroll_x+xx2-1,Fs->win_pixel_top+Fs->win_scroll_y+yy2-1); + if (eletype==GRST_INS_TRANSPARENT_SCREEN_BITMAP) + DCColorChg(img,bm_bkcolor); + GrScaleZoom(i); + MemCpy(tempg(U8 *)+offset(CSprite.linespeed),img->body,((xx2-xx1+7)&~7)*(yy2-yy1)); + DCDel(img); + DCDel(dc3); + dc2->pen_width=old_width; + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + eletype=GRST_MENU; + break; + case GRST_CIRCLE: + x1=p1; y1=p2; + x2=p1; y2=p2; + do { + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrCircle3(dc,x1,y1,0,Sqrt(SqrI64(x1-x2)+SqrI64(y1-y2))); + msg_code=GetMsg(&p1,&p2, + 1<color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrCircle3(dc,x1,y1,0,Sqrt(SqrI64(x1-x2)+SqrI64(y1-y2))); + tempg=MAlloc(gr_sprite_qued_base_size[GRST_CIRCLE]); + tempg->type=GRST_CIRCLE; + tempg->x1=x1-x; + tempg->y1=y1-y; + tempg->x2=Sqrt(SqrI64(x1-x2)+SqrI64(y1-y2)); + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + break; + case GRST_ELLIPSE: + x1=p1; y1=p2; + x2=p1; y2=p2; + do { + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrEllipse3(dc,(x1+x2)>>1,(y1+y2)>>1,0, + AbsI64(x1-x2)>>1,AbsI64(y1-y2)>>1); + msg_code=GetMsg(&p1,&p2, + 1<type=GRST_ELLIPSE; + tempg->x2=(x1+x2)>>1-x; + tempg->y2=(y1+y2)>>1-y; + tempg->width =AbsI64(x1-x2)>>1; + tempg->height=AbsI64(y1-y2)>>1; + a2=Arg(x2-(tempg->x2+x),y2-(tempg->y2+y)); + if (tempg->widthheight) + a2-=ã/2.0; + do { + a1=Arg(x2-(tempg->x2+x),y2-(tempg->y2+y)); + if (tempg->width>=tempg->height) + tempg->rot_angle=-(a1-a2); + else + tempg->rot_angle=-(a1-a2)+ã/2.0; + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrEllipse3(dc,tempg->x2+x,tempg->y2+y,0, + tempg->width,tempg->height,tempg->rot_angle); + msg_code=GetMsg(&p1,&p2, + 1<x2+x),y2-(tempg->y2+y)); + if (tempg->width>=tempg->height) + tempg->rot_angle=-(a1-a2); + else + tempg->rot_angle=-(a1-a2)+ã/2.0; + + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrEllipse3(dc,tempg->x2+x,tempg->y2+y,0, + tempg->width,tempg->height,tempg->rot_angle); + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + break; + case GRST_REG_POLY: + if (i>=3) { + x1=p1; y1=p2; + x2=p1; y2=p2; + do { + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrRegPoly3(dc,(x1+x2)>>1,(y1+y2)>>1,0, + AbsI64(x1-x2)>>1,AbsI64(y1-y2)>>1,i); + msg_code=GetMsg(&p1,&p2, + 1<type=GRST_REG_POLY; + tempg->x2=(x1+x2)>>1-x; + tempg->y2=(y1+y2)>>1-y; + tempg->width =AbsI64(x1-x2)>>1; + tempg->height=AbsI64(y1-y2)>>1; + tempg->sides=i; + a2=Arg(x2-(tempg->x2+x),y2-(tempg->y2+y)); + if (tempg->widthheight) + a2-=ã/2.0; + do { + a1=Arg(x2-(tempg->x2+x),y2-(tempg->y2+y)); + if (tempg->width>=tempg->height) + tempg->rot_angle=-(a1-a2); + else + tempg->rot_angle=-(a1-a2)+ã/2.0; + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrRegPoly3(dc,tempg->x2+x,tempg->y2+y,0, + tempg->width,tempg->height,tempg->sides,tempg->rot_angle); + msg_code=GetMsg(&p1,&p2, + 1<x2+x),y2-(tempg->y2+y)); + if (tempg->width>=tempg->height) + tempg->rot_angle=-(a1-a2); + else + tempg->rot_angle=-(a1-a2)+ã/2.0; + + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrRegPoly3(dc,tempg->x2+x,tempg->y2+y,0, + tempg->width,tempg->height,tempg->sides,tempg->rot_angle); + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + } + eletype=GRST_MENU; + break; + case GRST_PT: + x1=p1; y1=p2; + tempg=MAlloc(gr_sprite_qued_base_size[GRST_PT]); + tempg->type=GRST_PT; + tempg->x1=x1-x; + tempg->y1=y1-y; + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + break; + case GRST_FLOOD_FILL: + case GRST_FLOOD_FILL_NOT: + x1=p1; y1=p2; + tempg=MAlloc(gr_sprite_qued_base_size[GRST_FLOOD_FILL]); + tempg->type=eletype; + tempg->x1=x1-x; + tempg->y1=y1-y; + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + break; + case GRST_POLYLINE: + QueInit(&root2); + num=0; + x3=p1-x; y3=p2-y; + x1=p1; y1=p2; + x2=p1; y2=p2; + do { + do { + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrLine3(dc,x1,y1,0,x2,y2,0); + msg_code=GetMsg(&p1,&p2, + 1<color=ROP_EQU|COLOR_TRANSPARENT; + GrLine3(dc,x1,y1,0,x2,y2,0); + x2=p1; y2=p2; + } while (msg_code!=MSG_IP_L_UP && msg_code!=MSG_IP_R_UP); + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + if (msg_code==MSG_IP_L_UP) { + GrLine3(dc,x1,y1,0,x2,y2,0); + tempg=MAlloc(gr_sprite_qued_base_size[GRST_PT]); + tempg->type=GRST_PT; + tempg->x1=x2-x; + tempg->y1=y2-y; + QueIns(tempg,root2.last); + x1=x2;y1=y2; + num++; + } + } while (msg_code!=MSG_IP_R_UP); + if (num) { + tempg2=CAlloc(gr_sprite_qued_base_size[GRST_POLYLINE]+ + (num+1)<<1*sizeof(I32)); + ptr=&tempg2->y1; + tempg=root2.next; + ptr[0]=x3; + ptr[1]=y3; + ptr+=2; + for (i=0;inext; + ptr[i<<1]=tempg->x1; + ptr[i<<1+1]=tempg->y1; + Free(tempg); + tempg=tempg1; + } + tempg2->type=GRST_POLYLINE; + tempg2->num=num+1; + QueIns(tempg2,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + } + break; + case GRST_POLYPT: + QueInit(&root2); + x3=p1-x; y3=p2-y; + x1=p1; y1=p2; + x2=p1; y2=p2; + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + do { + msg_code=GetMsg(&p1,&p2, + 1<next; + if (tempg->x1==x1 && tempg->y1==y1) { + QueRem(tempg); + Free(tempg); + } else { + num++; + x1=tempg->x1; + y1=tempg->y1; + } + tempg=tempg1; + } + + tempg2=CAlloc(gr_sprite_qued_base_size[GRST_POLYPT]+ + sizeof(I32)*2+(num*3+7)>>3); + ptr=&tempg2->y1; + ptr[0]=x3; + ptr[1]=y3; + ptr+=2; + x1=x3;y1=y3; + i=0; + tempg=root2.next; + while (tempg!=&root2) { + tempg1=tempg->next; + BFieldOrU32(ptr,i, + GrSpOffset[SignI64(tempg->x1-x1)+1+ + 3*(SignI64(tempg->y1-y1)+1)]); + i+=3; + x1=tempg->x1;y1=tempg->y1; + QueRem(tempg); + Free(tempg); + tempg=tempg1; + } + tempg2->type=GRST_POLYPT; + tempg2->num=num; + QueIns(tempg2,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + break; + case GRST_BSPLINE2: + case GRST_BSPLINE3: + case GRST_BSPLINE2_CLOSED: + case GRST_BSPLINE3_CLOSED: + QueInit(&root2); + num=0; + x3=p1-x; y3=p2-y; + x1=p1; y1=p2; + x2=p1; y2=p2; + do { + do { + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + GrLine3(dc,x1,y1,0,x2,y2,0); + msg_code=GetMsg(&p1,&p2, + 1<color=ROP_EQU|COLOR_TRANSPARENT; + GrLine3(dc,x1,y1,0,x2,y2,0); + x2=p1; y2=p2; + } while (msg_code!=MSG_IP_L_UP && msg_code!=MSG_IP_R_UP); + dc->color=color&COLORROP_NO_ROP0_MASK|ROP_EQU; + if (msg_code==MSG_IP_L_UP) { + GrLine3(dc,x1,y1,0,x2,y2,0); + tempg=MAlloc(gr_sprite_qued_base_size[GRST_PT]); + tempg->type=GRST_PT; + tempg->x1=x2-x; + tempg->y1=y2-y; + QueIns(tempg,root2.last); + x1=x2;y1=y2; + num++; + } + } while (msg_code!=MSG_IP_R_UP); + if (num) { + tempg2=CAlloc(gr_sprite_qued_base_size[GRST_POLYLINE]+ + (num+1)*sizeof(CD3I32)); + p=&tempg2->y1; + tempg=root2.next; + p[0].x=x3; + p[0].y=y3; + for (i=1;i<=num;i++) { + tempg1=tempg->next; + p[i].x=tempg->x1; + p[i].y=tempg->y1; + Free(tempg); + tempg=tempg1; + } + tempg2->type=eletype; + tempg2->num=num+1; + QueIns(tempg2,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + *cur_num+=1; + } + break; + case GRST_SHIFTABLE_MESH: + GetMsg(NULL,NULL,1<flags1|=DOCEF1_DONT_DRAW; + + tempg1=insert_pt; + if (tempg1!=*_root && tempg1->type==GRST_MESH) { + z=0; + x1=-(p1-x); + y1=-(p2-y); + z1=z; + p=&tempg1->x2; + for (i=0;ivertex_cnt;i++,p++) { + p->x+=x1; + p->y+=y1; + p->z+=z1; + } + old_mesh=&tempg1->vertex_cnt; + } else if (tempg1!=*_root && tempg1->type==GRST_SHIFTABLE_MESH) { + z=-tempg1->z1; + x1=tempg1->x1-(p1-x); + y1=tempg1->y1-(p2-y); + z1=tempg1->z1+z; + p=(&tempg1->shiftable_triangle_cnt)(U8 *)+sizeof(I32); + for (i=0;ishiftable_vertex_cnt;i++,p++) { + p->x+=x1; + p->y+=y1; + p->z+=z1; + } + old_mesh=&tempg1->shiftable_vertex_cnt; + } else { + z=0; + old_mesh=NULL; + } + if (mesh=CSpriteMesh(old_mesh,&size,TRUE)) { + tempg=MAlloc(gr_sprite_qued_base_size[GRST_SHIFTABLE_MESH]-sizeof(I32)*2+size); + tempg->type=GRST_SHIFTABLE_MESH; + MemCpy(&tempg->shiftable_vertex_cnt,mesh,size); + Free(mesh); + tempg->x1=p1-x; + tempg->y1=p2-y; + tempg->z1=-z; + QueIns(tempg,insert_pt->last); + GrEdUpdate(doc,tempb,*_root); + if (old_mesh) { + insert_pt=tempg; + QueRem(tempg1); + Free(tempg1); + GrEdUpdate(doc,tempb,*_root); + } else + *cur_num+=1; + } else if (old_mesh && tempg1->type==GRST_SHIFTABLE_MESH) { + x1=tempg1->x1-(p1-x); + y1=tempg1->y1-(p2-y); + z1=tempg1->z1+z; + p=(&tempg1->shiftable_triangle_cnt)(U8 *)+sizeof(I32); + for (i=0;ishiftable_vertex_cnt;i++,p++) { + p->x-=x1; + p->y-=y1; + p->z-=z1; + } + } else if (old_mesh && tempg1->type==GRST_MESH) { + x1=-(p1-x); + y1=-(p2-y); + z1= z; + p=&tempg1->x2; + for (i=0;ivertex_cnt;i++,p++) { + p->x-=x1; + p->y-=y1; + p->z-=z1; + } + } + doc_e->flags1=old_ce_flags1; + eletype=GRST_MENU; + break; + } + } + } + } +ei_done: + DCFill; + SettingsPop; + doc_e->flags1=old_ce_flags1; + DCDel(dc); + DCDel(dc2); + StrCpy(Fs->task_title,old_desc); + Free(old_desc); + StrCpy(doc->filename.name,old_filename); + Free(old_filename); + if (_import_snap) *_import_snap=new_snap; + if (_import_ip_scaler) *_import_ip_scaler=new_ip_scaler; + doc->flags|=old_doc_flags; + return result; +} + +I64 CSpriteCntQue(CSprite *root) +{ + CSprite *tempg=root->next; + I64 result=0; + while (tempg->type) { + result++; + tempg=tempg->next; + } + return result; +} + +U0 EdInsGraphic(CDoc *doc,I64 x,I64 y) +{ + Bool unlock; + U8 *st; + CDocEntry *doc_e; + CDocBin *tempb; + I64 cur_num=0,new_snap=1; + CSprite *root; + F64 new_ip_scaler=1.0; + if (Fs!=doc->mem_task) + Dbg; + if (st=EdSprite(doc->cur_bin_num)) { + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WordStat; + unlock=DocLock(doc); + tempb=CAlloc(sizeof(CDocBin),doc->mem_task); + tempb->type=DOCBT_CSPRITE; + tempb->size=gr_sprite_base_size[GRST_END]; + tempb->data=CAlloc(tempb->size,doc->mem_task); + tempb->num=doc->cur_bin_num++; + tempb->use_cnt=1; + QueIns(tempb,doc->bin_root.last); + doc_e=DocPutS(doc,st); + doc_e->bin_data=tempb; + Free(st); + 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); + 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)) { + case GE_CANCEL: + QueDel(root); + Free(root); + DocLock(doc); + QueRem(doc_e); + Free(doc_e); + Free(doc_e->tag); + QueRem(tempb); + Free(tempb->data); + Free(tempb); + if (unlock) + DocUnlock(doc); + break; + case GE_OKAY_DONE: + QueDel(root); + Free(root); + break; + case GE_OKAY_CONT: + QueDel(root); + Free(root); + doc->cur_entry=doc_e; + doc->cur_data_col=0; + DocRecalc(doc); + EdExistingGraphic(doc,x,y,&new_snap,&new_ip_scaler); + break; + } + SettingsPop; + } + if (!(doc->flags & (DOCF_PLAIN_TEXT|DOCF_PLAIN_TEXT_WITH_TABS))) + DocBinsValidate(doc); +} diff --git a/SparrowOS/Adam/Gr/Gr.CPP b/SparrowOS/Adam/Gr/Gr.CPP new file mode 100644 index 0000000..352315e --- /dev/null +++ b/SparrowOS/Adam/Gr/Gr.CPP @@ -0,0 +1,127 @@ +#help_index "Graphics" +#define GRST_END 0 +//Unused +#define GRST_COLOR8 2 +//Unused +#define GRST_PT 4 +#define GRST_LINE 5 +#define GRST_POLYLINE 6 +#define GRST_POLYPT 7 +#define GRST_WIDTH 8 +#define GRST_SHIFT 9 +#define GRST_BSPLINE2 10 +#define GRST_BSPLINE3 11 +#define GRST_BSPLINE2_CLOSED 12 +#define GRST_BSPLINE3_CLOSED 13 +//Unused +//Unused +//Unused +#define GRST_RECT 17 +#define GRST_CIRCLE 18 +#define GRST_FLOOD_FILL_NOT 19 +#define GRST_FLOOD_FILL 20 +#define GRST_BITMAP8 21 +//Unused +#define GRST_TEXT 23 +#define GRST_ELLIPSE 24 +#define GRST_REG_POLY 25 +#define GRST_PLANAR_SYMMETRY 26 +#define GRST_DITHER_COLOR8 27 +#define GRST_ROTATED_RECT 28 +#define GRST_MESH 29 +#define GRST_SHIFTABLE_MESH 30 +#define GRST_TRANSFORM_ON 31 +#define GRST_TRANSFORM_OFF 32 +#define GRST_ARROW 33 +#define GRST_TEXT_BOX 34 +#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. + I32 nums[3]; //Vertex number +}; + +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. + CSprite *next,*last; + + U0 start; + U8 type; + union { + U8 color8; + U16 dither_color8; + I32 x1; + I32 num; + I32 width; + I32 vertex_cnt; //Mesh + } + union { + I32 y1; + I32 height; + I32 triangle_cnt; //Mesh + } + union { + I32 z1; + I32 x2; + U8 st[4]; + } + union { + I32 y2; + I32 shiftable_vertex_cnt //Shiftable Mesh + } + union { + F64 linespeed; + F64 rot_angle; + I32 shiftable_triangle_cnt //Shiftable Mesh + } + I32 sides; +}; + + +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 Bool GrBlot3(CDC *dc,I64 x1,I64 y1,I64 z1,CDC *img); +extern U8 *GrBitMap4ToBitMap8(U8 *dst,U8 *src,I64 src_size,I64 bkcolor); + +#include "GrCfg" +#include "GrAsm" +#include "MathGr" +#include "GrScreen" +#include "GrDC" +#include "GrBitMap" +#include "GrPrimatives" +#include "GrComposites" +#include "GrChar" + +#define GE_CANCEL (-1) +#define GE_OKAY_DONE 0 +#define GE_OKAY_CONT 1 + +#include "CSpriteNew" +#include "GrSpritePlot" +#include "CSpriteMesh" +#include "CSpriteBitMap" +#include "CSpriteVect" +#include "CSpriteEd" +#include "GrVectMap" +#help_index "" + diff --git a/SparrowOS/Adam/Gr/GrAsm.CPP b/SparrowOS/Adam/Gr/GrAsm.CPP new file mode 100644 index 0000000..c6f156c --- /dev/null +++ b/SparrowOS/Adam/Gr/GrAsm.CPP @@ -0,0 +1,765 @@ +#help_index "Graphics" +I64 *gr_1_to_8_bits,*gr_1_to_8_colors; + +#help_index "Graphics/Char;Char/Graphics" +U32 *gr_text_base; +U16 *gr_win_z_buf; + +asm { +USE64 +// ************************************ +_PLOT_SCREEN_U8:: + ENTER 0 + MOV RBX,U64 SF_ARG2[RBP] + MOV RAX,U64 SF_ARG3[RBP] + OR RBX,RBX + JS @@05 + OR RAX,RAX + JS @@05 + CMP RBX,TEXT_COLS + JGE @@05 + CMP RAX,TEXT_ROWS + JGE @@05 + IMUL2 RAX,TEXT_COLS + ADD RBX,RAX + SHL RBX,2 + ADD RBX,U64 [&gr_text_base] + MOV RAX,U64 SF_ARG1[RBP] + MOV U32 [RBX],EAX + + MOV RAX,1 + LEAVE + RET1 24 +@@05: XOR RAX,RAX + LEAVE + RET1 24 +// ************************************ +_PLOT_WIN_U8:: + ENTER 0 + MOV RCX,U64 SF_ARG1[RBP] + MOV RBX,U64 CTask.win_scroll_x[RCX] + SAR RBX,3 + ADD RBX,U64 SF_ARG3[RBP] + MOV RAX,U64 CTask.win_scroll_y[RCX] + SAR RAX,3 + ADD RAX,U64 SF_ARG4[RBP] + + OR RBX,RBX + JS @@05 + ADD RBX,U64 CTask.win_left[RCX] + CMP RBX,U64 CTask.win_right[RCX] + JG @@05 + OR RBX,RBX + JS @@05 + CMP RBX,TEXT_COLS + JGE @@05 + + OR RAX,RAX + JS @@05 + ADD RAX,U64 CTask.win_top[RCX] + CMP RAX,U64 CTask.win_bottom[RCX] + JG @@05 + OR RAX,RAX + JS @@05 + CMP RAX,TEXT_ROWS + JGE @@05 + + IMUL2 RAX,TEXT_COLS + ADD RBX,RAX + SHL RBX,2 + ADD RBX,U64 [&gr_text_base] + MOV RAX,U64 SF_ARG2[RBP] + MOV U32 [RBX],EAX + + MOV RAX,1 + LEAVE + RET1 32 +@@05: XOR RAX,RAX + LEAVE + RET1 32 +// ************************************ +/* +Bool PlotWinStr2(CTask *task,U8 *s,I64 len, + I64 attr,I64 x,I64 y) +*/ +_PLOT_WIN_STR2:: + ENTER 0 + MOV R9,U64 [&gr_text_base] + PUSH RSI + PUSH RDI + MOV RBX,U64 SF_ARG1[RBP] + MOV RSI,U64 SF_ARG2[RBP] + MOV RDI,U64 CTask.win_scroll_x[RBX] + SAR RDI,3 + ADD RDI,U64 SF_ARG5[RBP] + MOV RCX,U64 SF_ARG3[RBP] + + OR RDI,RDI + JNS @@05 + ADD RCX,RDI + SUB RSI,RDI + XOR RDI,RDI +@@05: ADD RDI,U64 CTask.win_left[RBX] + MOV RDX,RCX + ADD RDX,RDI + DEC RDX + CMP RDX,U64 CTask.win_right[RBX] + JLE @@10 + MOV RAX,RDX + SUB RAX,U64 CTask.win_right[RBX] + SUB RDX,RAX + SUB RCX,RAX +@@10: OR RDI,RDI + JNS @@15 + ADD RCX,RDI + SUB RSI,RDI + XOR RDI,RDI +@@15: INC RDX + SUB RDX,TEXT_COLS + JLE @@20 + SUB RCX,RDX +@@20: CMP RCX,1 + JL @@30 + + MOV RAX,U64 CTask.win_scroll_y[RBX] + SAR RAX,3 + ADD RAX,U64 SF_ARG6[RBP] + OR RAX,RAX + JS @@30 + ADD RAX,U64 CTask.win_top[RBX] + CMP RAX,U64 CTask.win_bottom[RBX] + JG @@30 + OR RAX,RAX + JS @@30 + CMP RAX,TEXT_ROWS + JGE @@30 + + IMUL2 RAX,TEXT_COLS + ADD RDI,RAX + SHL RDI,2 + ADD RDI,R9 + MOV RAX,U64 SF_ARG4[RBP] +@@25: LODSB + STOSD + DEC RCX + JNZ @@25 + + POP RDI + POP RSI + MOV RAX,TRUE + LEAVE + RET1 48 + +@@30: POP RDI + POP RSI + XOR RAX,RAX + LEAVE + RET1 48 +// ************************************ +/* +Bool PlotAttrStr2(CTask *task,U32 *hl,I64 len,I64 x,I64 y) +*/ +_PLOT_ATTR_STR2:: + ENTER 0 + MOV R9,U64 [&gr_text_base] + PUSH RSI + PUSH RDI + MOV RBX,U64 SF_ARG1[RBP] + MOV RSI,U64 SF_ARG2[RBP] + MOV RDI,U64 CTask.win_scroll_x[RBX] + SAR RDI,3 + ADD RDI,U64 SF_ARG4[RBP] + MOV RCX,U64 SF_ARG3[RBP] + + OR RDI,RDI + JNS @@05 + ADD RCX,RDI + SHL RDI,2 + SUB RSI,RDI + XOR RDI,RDI +@@05: ADD RDI,U64 CTask.win_left[RBX] + MOV RDX,RCX + ADD RDX,RDI + DEC RDX + CMP RDX,U64 CTask.win_right[RBX] + JLE @@10 + MOV RAX,RDX + SUB RAX,U64 CTask.win_right[RBX] + SUB RDX,RAX + SUB RCX,RAX +@@10: OR RDI,RDI + JNS @@15 + ADD RCX,RDI + SHL RDI,2 + SUB RSI,RDI + XOR RDI,RDI +@@15: INC RDX + SUB RDX,TEXT_COLS + JLE @@20 + SUB RCX,RDX +@@20: CMP RCX,1 + JL @@30 + + MOV RAX,U64 CTask.win_scroll_y[RBX] + SAR RAX,3 + ADD RAX,U64 SF_ARG5[RBP] + OR RAX,RAX + JS @@30 + ADD RAX,U64 CTask.win_top[RBX] + CMP RAX,U64 CTask.win_bottom[RBX] + JG @@30 + OR RAX,RAX + JS @@30 + CMP RAX,TEXT_ROWS + JGE @@30 + + IMUL2 RAX,TEXT_COLS + ADD RDI,RAX + SHL RDI,2 + ADD RDI,R9 +@@25: MOVSD + DEC RCX + JNZ @@25 + + POP RDI + POP RSI + MOV RAX,TRUE + LEAVE + RET1 40 + +@@30: POP RDI + POP RSI + XOR RAX,RAX + LEAVE + RET1 40 +// ************************************ +/* +Bool PlotAttr(CTask *task,I64 len, + I64 attr,I64 x,I64 y) +*/ +_PLOT_ATTR:: + ENTER 0 + MOV R9,U64 [&gr_text_base] + PUSH RSI + PUSH RDI + MOV RBX,U64 SF_ARG1[RBP] + MOV RDI,U64 CTask.win_scroll_x[RBX] + SAR RDI,3 + ADD RDI,U64 SF_ARG4[RBP] + MOV RCX,U64 SF_ARG2[RBP] + + OR RDI,RDI + JNS @@05 + ADD RCX,RDI + XOR RDI,RDI +@@05: ADD RDI,U64 CTask.win_left[RBX] + MOV RDX,RCX + ADD RDX,RDI + DEC RDX + CMP RDX,U64 CTask.win_right[RBX] + JLE @@10 + MOV RAX,RDX + SUB RAX,U64 CTask.win_right[RBX] + SUB RDX,RAX + SUB RCX,RAX +@@10: OR RDI,RDI + JNS @@15 + ADD RCX,RDI + XOR RDI,RDI +@@15: INC RDX + SUB RDX,TEXT_COLS + JLE @@20 + SUB RCX,RDX +@@20: CMP RCX,1 + JL @@35 + + MOV RAX,U64 CTask.win_scroll_y[RBX] + SAR RAX,3 + ADD RAX,U64 SF_ARG5[RBP] + OR RAX,RAX + JS @@35 + ADD RAX,U64 CTask.win_top[RBX] + CMP RAX,U64 CTask.win_bottom[RBX] + JG @@35 + OR RAX,RAX + JS @@35 + CMP RAX,TEXT_ROWS + JGE @@35 + + IMUL2 RAX,TEXT_COLS + ADD RDI,RAX + SHL RDI,2 + ADD RDI,R9 + MOV RBX,U64 SF_ARG3[RBP] + MOV RSI,RDI +@@25: LODSD + OR AL,AL + JNZ @@30 + MOV RAX,RBX + STOSD + DEC RCX + JNZ @@25 + +@@30: POP RDI + POP RSI + MOV RAX,TRUE + LEAVE + RET1 40 + +@@35: POP RDI + POP RSI + XOR RAX,RAX + LEAVE + RET1 40 +// ************************************ +_PLOT_BORDER_U8:: + ENTER 0 + MOV R9,U64 [&gr_text_base] + MOV RCX,U64 SF_ARG1[RBP] + MOV RBX,U64 CTask.win_scroll_x[RCX] + SAR RBX,3 + ADD RBX,U64 SF_ARG3[RBP] + MOV RAX,U64 CTask.win_scroll_y[RCX] + SAR RAX,3 + ADD RAX,U64 SF_ARG4[RBP] + + MOV RDX,-1 + CMP RBX,RDX + JL @@05 + ADD RBX,U64 CTask.win_left[RCX] + MOV RDX,U64 CTask.win_right[RCX] + INC RDX + CMP RBX,RDX + JG @@05 + OR RBX,RBX + JS @@05 + CMP RBX,TEXT_COLS + JGE @@05 + + MOV RDX,-1 + CMP RAX,RDX + JL @@05 + ADD RAX,U64 CTask.win_top[RCX] + MOV RDX,U64 CTask.win_bottom[RCX] + INC RDX + CMP RAX,RDX + JG @@05 + OR RAX,RAX + JS @@05 + CMP RAX,TEXT_ROWS + JGE @@05 + + IMUL2 RAX,TEXT_COLS + ADD RBX,RAX + SHL RBX,2 + ADD RBX,R9 + MOV RAX,U64 SF_ARG2[RBP] + MOV U32 [RBX],EAX + + MOV RAX,TRUE + LEAVE + RET1 32 +@@05: XOR RAX,RAX + LEAVE + RET1 32 +// ************************************ +_GR_UPDATE_LINE32:: + ENTER 0 + PUSH RSI + PUSH RDI + + MOV RAX,U64 SF_ARG2[RBP] + MOV RSI,U64 [RAX] //rsi=src2 + MOV RBX,U64 [&reverse_bits_table] + MOV RCX,U64 SF_ARG3[RBP] //rcx=d5 + MOV RAX,U64 SF_ARG4[RBP] + MOV RDI,U64 [RAX] //rdi=vga image + + MOV RAX,U64 SF_ARG1[RBP] + MOV R8,U64 [RAX] //rbp=vga dst + +@@05: LODSD + CMP U32 [RDI],EAX + JE @@10 + MOV U32 [RDI],EAX + XLATB + ROR EAX,8 + XLATB + ROR EAX,8 + XLATB + ROR EAX,8 + XLATB + ROR EAX,8 + MOV U32 [R8],EAX +@@10: ADD RDI,4 + ADD R8,4 + DEC RCX + JNZ @@05 + + MOV RAX,U64 SF_ARG1[RBP] + MOV U64 [RAX],R8 + MOV RAX,U64 SF_ARG4[RBP] + MOV U64 [RAX],RDI + MOV RAX,U64 SF_ARG2[RBP] + MOV U64 [RAX],RSI + POP RDI + POP RSI + LEAVE + RET1 32 +// ************************************ +_GR_UPDATE_LINE32_FLUSH_CACHE:: + ENTER 0 + PUSH RSI + PUSH RDI + + MOV RAX,U64 SF_ARG2[RBP] + MOV RSI,U64 [RAX] //rsi=src2 + MOV RBX,U64 [&reverse_bits_table] + MOV RCX,U64 SF_ARG3[RBP] //rcx=d5 + MOV RAX,U64 SF_ARG4[RBP] + MOV RDI,U64 [RAX] //rdi=vga image + + MOV RAX,U64 SF_ARG1[RBP] + MOV R8,U64 [RAX] //rbp=vga dst + +@@05: LODSD + MOV U32 [RDI],EAX + XLATB + ROR EAX,8 + XLATB + ROR EAX,8 + XLATB + ROR EAX,8 + XLATB + ROR EAX,8 + MOV U32 [R8],EAX + ADD RDI,4 + ADD R8,4 + DEC RCX + JNZ @@05 + + MOV RAX,U64 SF_ARG1[RBP] + MOV U64 [RAX],R8 + MOV RAX,U64 SF_ARG4[RBP] + MOV U64 [RAX],RDI + MOV RAX,U64 SF_ARG2[RBP] + MOV U64 [RAX],RSI + POP RDI + POP RSI + LEAVE + RET1 32 +// ************************************ +_DC_BLOT_COLOR4:: + ENTER 0 + PUSH RSI + PUSH RDI + PUSH R10 + + MOV RDI,U64 SF_ARG1[RBP] + MOV RSI,U64 SF_ARG2[RBP] + MOV RBX,U64 SF_ARG3[RBP] + MOV RCX,U64 SF_ARG4[RBP] + + MOV R8,RDI + ADD R8,RCX + MOV R9,R8 + ADD R9,RCX + MOV R10,R9 + ADD R10,RCX + +@@5: LODSQ + MOV RDX,U64 [RBX] + CMP RAX,RDX + JE I32 @@10 + MOV U64 [RBX],RAX + + XOR RDX,RDX + BT RAX,7*8+0 + ADC RDX,0 + SHL1 RDX + BT RAX,6*8+0 + ADC RDX,0 + SHL1 RDX + BT RAX,5*8+0 + ADC RDX,0 + SHL1 RDX + BT RAX,4*8+0 + ADC RDX,0 + SHL1 RDX + BT RAX,3*8+0 + ADC RDX,0 + SHL1 RDX + BT RAX,2*8+0 + ADC RDX,0 + SHL1 RDX + BT RAX,1*8+0 + ADC RDX,0 + SHL1 RDX + BT RAX,0*8+0 + ADC RDX,0 + MOV U8 [RDI],DL + + XOR RDX,RDX + BT RAX,7*8+1 + ADC RDX,0 + SHL1 RDX + BT RAX,6*8+1 + ADC RDX,0 + SHL1 RDX + BT RAX,5*8+1 + ADC RDX,0 + SHL1 RDX + BT RAX,4*8+1 + ADC RDX,0 + SHL1 RDX + BT RAX,3*8+1 + ADC RDX,0 + SHL1 RDX + BT RAX,2*8+1 + ADC RDX,0 + SHL1 RDX + BT RAX,1*8+1 + ADC RDX,0 + SHL1 RDX + BT RAX,0*8+1 + ADC RDX,0 + MOV U8 [R8],DL + + XOR RDX,RDX + BT RAX,7*8+2 + ADC RDX,0 + SHL1 RDX + BT RAX,6*8+2 + ADC RDX,0 + SHL1 RDX + BT RAX,5*8+2 + ADC RDX,0 + SHL1 RDX + BT RAX,4*8+2 + ADC RDX,0 + SHL1 RDX + BT RAX,3*8+2 + ADC RDX,0 + SHL1 RDX + BT RAX,2*8+2 + ADC RDX,0 + SHL1 RDX + BT RAX,1*8+2 + ADC RDX,0 + SHL1 RDX + BT RAX,0*8+2 + ADC RDX,0 + MOV U8 [R9],DL + + XOR RDX,RDX + BT RAX,7*8+3 + ADC RDX,0 + SHL1 RDX + BT RAX,6*8+3 + ADC RDX,0 + SHL1 RDX + BT RAX,5*8+3 + ADC RDX,0 + SHL1 RDX + BT RAX,4*8+3 + ADC RDX,0 + SHL1 RDX + BT RAX,3*8+3 + ADC RDX,0 + SHL1 RDX + BT RAX,2*8+3 + ADC RDX,0 + SHL1 RDX + BT RAX,1*8+3 + ADC RDX,0 + SHL1 RDX + BT RAX,0*8+3 + ADC RDX,0 + MOV U8 [R10],DL + +@@10: ADD RBX,8 + + INC RDI + INC R8 + INC R9 + INC R10 + + DEC RCX + JNZ I32 @@5 + + POP R10 + POP RSI + POP RDI + LEAVE + RET1 32 +// ************************************ +_IS_PIXEL_COVERED0:: + ENTER 0 +#assert FONT_WIDTH==FONT_HEIGHT==8 + MOV RCX,U64 SF_ARG3[RBP] + SAR RCX,3 + MOV RAX,U64 SF_ARG2[RBP] + SAR RAX,3 + MOV RDX,U64 SF_ARG1[RBP] + IMUL2 RCX,TEXT_COLS + MOV RBX,U64 [&gr_win_z_buf] + MOV DX,U16 CTask.win_z_num[RDX] + ADD RCX,RAX + XOR RAX,RAX + CMP DX,U16 [RBX+RCX*2] + JAE @@05 //Jump not covered + INC RAX +@@05: LEAVE + RET1 24 +// ************************************ +_GR_ROP_EQU_U8_NO_CLIPPING:: +//Puts foreground char shape onto gr_dc. +//ch.u8[1] is color as a whole byte +//ch DOCEt_UNDERLINE attr flag is used. + ENTER 0 + MOVZX RAX,U8 SF_ARG1[RBP] + MOV RDX,U64 [&gr_font] + MOV RAX,U64 [RDX+RAX*8] //RAX is 8x8 char font data, 64-bits + BT U64 SF_ARG1[RBP],DOCEt_UNDERLINE + JNC @@05 + MOV RBX,0xFF00000000000000 + OR RAX,RBX +@@05: OR RAX,RAX + JZ I32 @@10 + + PUSH RSI + PUSH RDI + MOVZX RBX,U8 SF_ARG1+1[RBP] //Warning color is 8-bit + MOV RDX,U64 [&gr_1_to_8_colors] + MOV R8,U64 [RDX+RBX*8] //R8 is color repeated 8 times. + MOV R9,U64 SF_ARG3[RBP] //R9 is width_internal + MOV RDI,U64 SF_ARG2[RBP] + MOV RSI,U64 [&gr_1_to_8_bits] //RSI is gr_1_to_8_bits + +// m=my_1_to_8_bits[ch&255];ch>>=8; +// *dst=*dst&~m|c&m; +// dst(U8 *)+=w1; + + MOVZX RBX,AL + MOV RDX,U64 [RSI+RBX*8] + SHR RAX,8 + MOV RBX,U64 [RDI] + MOV RCX,RDX + NOT RCX + AND RDX,R8 + AND RCX,RBX + OR RCX,RDX + MOV U64 [RDI],RCX + ADD RDI,R9 + + MOVZX RBX,AL + MOV RDX,U64 [RSI+RBX*8] + SHR RAX,8 + MOV RBX,U64 [RDI] + MOV RCX,RDX + NOT RCX + AND RDX,R8 + AND RCX,RBX + OR RCX,RDX + MOV U64 [RDI],RCX + ADD RDI,R9 + + MOVZX RBX,AL + MOV RDX,U64 [RSI+RBX*8] + SHR RAX,8 + MOV RBX,U64 [RDI] + MOV RCX,RDX + NOT RCX + AND RDX,R8 + AND RCX,RBX + OR RCX,RDX + MOV U64 [RDI],RCX + ADD RDI,R9 + + MOVZX RBX,AL + MOV RDX,U64 [RSI+RBX*8] + SHR RAX,8 + MOV RBX,U64 [RDI] + MOV RCX,RDX + NOT RCX + AND RDX,R8 + AND RCX,RBX + OR RCX,RDX + MOV U64 [RDI],RCX + ADD RDI,R9 + + MOVZX RBX,AL + MOV RDX,U64 [RSI+RBX*8] + SHR RAX,8 + MOV RBX,U64 [RDI] + MOV RCX,RDX + NOT RCX + AND RDX,R8 + AND RCX,RBX + OR RCX,RDX + MOV U64 [RDI],RCX + ADD RDI,R9 + + MOVZX RBX,AL + MOV RDX,U64 [RSI+RBX*8] + SHR RAX,8 + MOV RBX,U64 [RDI] + MOV RCX,RDX + NOT RCX + AND RDX,R8 + AND RCX,RBX + OR RCX,RDX + MOV U64 [RDI],RCX + ADD RDI,R9 + + MOVZX RBX,AL + MOV RDX,U64 [RSI+RBX*8] + SHR RAX,8 + MOV RBX,U64 [RDI] + MOV RCX,RDX + NOT RCX + AND RDX,R8 + AND RCX,RBX + OR RCX,RDX + MOV U64 [RDI],RCX + ADD RDI,R9 + + MOV RDX,U64 [RSI+RAX*8] + MOV RBX,U64 [RDI] + MOV RCX,RDX + NOT RCX + AND RDX,R8 + AND RCX,RBX + OR RCX,RDX + MOV U64 [RDI],RCX + + POP RDI + POP RSI +@@10: LEAVE + RET1 24 +} + +#help_index "Graphics/Char;Char/Graphics" +public _extern _PLOT_SCREEN_U8 Bool PlotScreenU8(I64 w,I64 x,I64 y); +public _extern _PLOT_WIN_U8 Bool PlotWinU8(CTask *task,I64 w,I64 x,I64 y); +public _extern _PLOT_WIN_STR2 Bool PlotWinStr2( + CTask *task,U8 *s,I64 len,I64 attr,I64 x,I64 y); +public _extern _PLOT_ATTR_STR2 Bool PlotAttrStr2( + CTask *task,U32 *hl,I64 len,I64 x,I64 y); + +public _extern _PLOT_ATTR Bool PlotWinAttr( + CTask *task,I64 len,I64 attr,I64 x,I64 y); +public _extern _PLOT_BORDER_U8 Bool PlotBorderU8(CTask *task,I64 w,I64 x,I64 y); +_extern _GR_ROP_EQU_U8_NO_CLIPPING U0 GrRopEquU8NoClipping(I64 ch,U8 *dst,I64 width_internal); + +#help_index "Graphics" +//No clipping +public _extern _IS_PIXEL_COVERED0 Bool IsPixelCovered0(CTask *task,I64 x,I64 y); + +_extern _GR_UPDATE_LINE32 U0 GrUpdateLine32( + U32 **_dst3,U32 **_src2,I64 w,U8 **_vga); +_extern _GR_UPDATE_LINE32_FLUSH_CACHE U0 GrUpdateLine32FlushCache( + U32 **_dst3,U32 **_src2,I64 w,U8 **_vga); +_extern _DC_BLOT_COLOR4 U0 DCBlotColor4( + U8 *dst,I64 *img,I64 *img_cache,I64 cnt); +#help_index "" diff --git a/SparrowOS/Adam/Gr/GrBitMap.CPP b/SparrowOS/Adam/Gr/GrBitMap.CPP new file mode 100644 index 0000000..4f6910b --- /dev/null +++ b/SparrowOS/Adam/Gr/GrBitMap.CPP @@ -0,0 +1,1681 @@ +#help_index "Graphics" + +public Bool GrPlot0(CDC *dc,I64 x,I64 y) +{ //No clipping or transformation or pen width + U8 *dst; + I32 *db; + I64 d,dist; + CColorROPU32 c,color=dc->color,bkcolor=dc->bkcolor; + + if (dc->flags & DCF_LOCATE_NEAREST) { + dist=DistI64(x,y,dc->cur_x,dc->cur_y); + if (dist<=dc->nearest_dist) { + dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; + dc->nearest_dist=dist; + } + } + if (dc->flags & DCF_RECORD_EXTENTS) { + if (xmin_x) dc->min_x=x; + if (x>dc->max_x) dc->max_x=x; + if (ymin_y) dc->min_y=y; + if (y>dc->max_y) dc->max_y=y; + } + if (dc->flags & DCF_DONT_DRAW) + return TRUE; + d=dc->width_internal*y+x; + if (db=dc->depth_buf) { + db+=d; + if (0<=dc->db_z<=*db) + *db=dc->db_z; + else + return TRUE; + } + if (color.c1.rop&(ROPBF_DITHER|ROPBF_PROBABILITY_DITHER)) { + if (color.c1.rop&ROPBF_PROBABILITY_DITHER) { + if (RandU16dither_probability) { + color.c1.rop=color.c0.rop; + color.c0=color.c1; + } + } else { + if ((x^y)&1) { + color.c1.rop=color.c0.rop; + color.c0=color.c1; + } + } + } + if (dc->type==DCT_COLOR8) { + dst=dc->body+d; + nobound_switch (color.c0.rop) { + case ROPB_EQU: + case ROPB_MONO: + *dst=color.c0.color; + break; + case ROPB_COLLISION: + c=*dst; + if (c!=COLOR_TRANSPARENT&&c!=bkcolor.c0.color) + dc->collision_cnt++; + break; + case ROPB_XOR: + *dst^=color.c0.color; + break; + } + } + return TRUE; +} + +public I64 GrPeek0(CDC *dc,I64 x,I64 y) +{ //No clipping or transformation + if (dc->type==DCT_COLOR8) + return dc->body[dc->width_internal*y+x]; + else + return -1; +} + +#help_index "Graphics;Graphics/DCs" + +public Bool GrBlot(CDC *dc,I64 x,I64 y,CDC *img) +{ //Clipping but not transformation + I64 i,j,k,k1,kk,kk1,w1,h1,w2,h2, + leading_bits,leading_bit_mask,whole_bytes,trailing_bits,trailing_bit_mask, + reg bit_shift,dist,win_z_buf_line_inc,win_z_buf_line_dec,win_z_num, + color_mask; + U8 reg *dst,*src; + I32 db; + U16 reg *win_z_buf_ptr; + CColorROPU32 color,c,old_color; + CTask *win_task; + + if (dc->flags & DCF_SCREEN_BITMAP) { + win_task=dc->win_task; + x+=win_task->win_scroll_x; + y+=win_task->win_scroll_y; + } + w1=x<0 ?-x:0; + h1=y<0 ?-y:0; + w2=img->width; + h2=img->height; + if (dc->flags & DCF_SCREEN_BITMAP) { + x+=win_task->win_pixel_left; + y+=win_task->win_pixel_top; + } + if (dc->flags & DCF_LOCATE_NEAREST) { //TODO:Untested + dist=DistI64(x+img->width>>1,y+img->height>>1,dc->cur_x,dc->cur_y); + if (dist<=dc->nearest_dist) { + dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; + dc->nearest_dist=dist; + } + } + if (dc->flags & DCF_SCREEN_BITMAP) { + if (x+w1<0) w1=-x; + if (x+w2>win_task->win_pixel_right+1) + w2=win_task->win_pixel_right+1-x; + + if (y+h1<0) h1=-y; + if (y+h2>win_task->win_pixel_bottom+1) + h2=win_task->win_pixel_bottom+1-y; + } + if (x+w2>dc->width) + w2=dc->width-x; + if (y+h2>dc->height) + h2=dc->height-y; + if (w1width && h1height) { + if (dc->flags & DCF_RECORD_EXTENTS) { + if (x+w1min_x) dc->min_x=x+w1; + if (x+w2-1>dc->max_x) dc->max_x=x+w2-1; + if (y+h1min_y) dc->min_y=y+h1; + if (y+h2-1>dc->max_y) dc->max_y=y+h2-1; + } + if (dc->flags & DCF_DONT_DRAW) + return TRUE; + old_color=dc->color; + db=dc->depth_buf; + dc->depth_buf=NULL; + dc->color&=~ROPF_DITHER; + color=dc->color; + if (dc->type==DCT_COLOR8) { + leading_bits=-(w1+x)&7; + leading_bit_mask=gr_1_to_8_bits[0xFF>>leading_bits]; + bit_shift=-x&7; + whole_bytes=(w2-w1-leading_bits)>>3; + if (whole_bytes<0) whole_bytes=0; + trailing_bits=(x+w2)&7; + trailing_bit_mask=gr_1_to_8_bits[0xFF<w2-w1) { + leading_bit_mask|=trailing_bit_mask; + trailing_bits=0; + } + switch (color.c0.rop) { + case ROPB_COLLISION: //TODO: Might want to check win_z_buf + color =dc->bkcolor.c0.color; + nobound_switch (img->type) { + case DCT_COLOR8: + k=h1*img->width_internal; + k1=(h1+y)*dc->width_internal+x; + for (j=h2-h1;j;j--) { + for (i=w1;ibody[k1+i]; + if (c!=COLOR_TRANSPARENT&&c!=color&&img->body[k+i]!=COLOR_TRANSPARENT) + dc->collision_cnt++; + } + k+=img->width_internal; + k1+=dc->width_internal; + } + break; + } + break; + case ROPB_MONO: + color_mask=gr_1_to_8_colors[color.c0.color]; + if (img->flags&DCF_NO_TRANSPARENTS) { + if (!(dc->flags & DCF_SCREEN_BITMAP) || dc->flags&DCF_ON_TOP) + win_z_buf_ptr=NULL; + else { + win_z_num=win_task->win_z_num; + win_z_buf_ptr=gr_win_z_buf(U8 *)+((h1+y)/FONT_HEIGHT*TEXT_COLS+(w1+x)/FONT_WIDTH)*sizeof(U16); + win_z_buf_line_dec=((leading_bits?1:0)+whole_bytes+(trailing_bits?1:0))*sizeof(U16); + win_z_buf_line_inc=TEXT_COLS*sizeof(U16)-win_z_buf_line_dec; + } + kk = h1 *img ->width_internal+w1; + kk1=(h1+y)*dc->width_internal+x+w1; + kk =(kk-bit_shift)&~7+bit_shift; + bit_shift*=8; + if (win_z_buf_ptr) + for (j=h1;jbody+kk&~7; + dst=dc->body+kk1&~7; + if (leading_bits) { + if (win_z_num>=*win_z_buf_ptr++) { + if (bit_shift) + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask| + (*src(I64 *)++>>bit_shift|*src(I64 *)<<(64-bit_shift))&~leading_bit_mask&color_mask; + else + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask| + *src(I64 *)++&~leading_bit_mask&color_mask; + } else { + src(I64 *)++; + dst(I64 *)++; + } + } + if (bit_shift) + for (i=0;i=*win_z_buf_ptr++) + *dst(I64 *)++=(*src(I64 *)++>>bit_shift|*src(I64 *)<<(64-bit_shift))&color_mask; + else { + src(I64 *)++; + dst(I64 *)++; + } + else + for (i=0;i=*win_z_buf_ptr++) + *dst(I64 *)++=*src(I64 *)++&color_mask; + else { + src(I64 *)++; + dst(I64 *)++; + } + if (trailing_bits && win_z_num>=*win_z_buf_ptr++) { + if (bit_shift) + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask| + (*src(I64 *)++>>bit_shift|*src(I64 *)<<(64-bit_shift))&~trailing_bit_mask&color_mask; + else + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask| + *src(I64 *)++&~trailing_bit_mask&color_mask; + } + kk +=img->width_internal; + kk1+=dc->width_internal; + if ((j+y)&7==7) + win_z_buf_ptr(U8 *)+=win_z_buf_line_inc; + else + win_z_buf_ptr(U8 *)-=win_z_buf_line_dec; + } + else + for (j=h2-h1;j;j--) { + src=img->body+kk&~7; + dst=dc->body+kk1&~7; + if (leading_bits) { + if (bit_shift) + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask| + (*src(I64 *)++>>bit_shift|*src(I64 *)<<(64-bit_shift))&~leading_bit_mask&color_mask; + else + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask| + *src(I64 *)++&~leading_bit_mask&color_mask; + } + if (bit_shift) + for (i=0;i>bit_shift|*src(I64 *)<<(64-bit_shift))&color_mask; + else + for (i=0;i>bit_shift|*src(I64 *)<<(64-bit_shift))&~trailing_bit_mask&color_mask; + else + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask| + *src(I64 *)++&~trailing_bit_mask&color_mask; + } + kk +=img->width_internal; + kk1+=dc->width_internal; + } + } else { + k=h1*img->width_internal; + if (!(dc->flags & DCF_SCREEN_BITMAP) || dc->flags&DCF_ON_TOP) { + for (j=h1;jbody[k+i]) + GrPlot0(dc,x+i,y+j); + k+=img->width_internal; + } + } else { + win_z_num =win_task->win_z_num; + win_z_buf_ptr =gr_win_z_buf(U8 *)+((h1+y)/FONT_HEIGHT*TEXT_COLS+(w1+x)/FONT_WIDTH)*sizeof(U16); + win_z_buf_line_dec=((leading_bits?1:0)+whole_bytes+(trailing_bits?1:0))*sizeof(U16); + win_z_buf_line_inc=TEXT_COLS*sizeof(U16)-win_z_buf_line_dec; + for (j=h1;j=*win_z_buf_ptr++) + color_mask=TRUE; + else + color_mask=FALSE; + for (i=w1;ibody[k+i]) + GrPlot0(dc,x+i,y+j); + if (!((++i+x) &7) && i=*win_z_buf_ptr++) + color_mask=TRUE; + else + color_mask=FALSE; + } + } + if ((j+y)&7==7) + win_z_buf_ptr(U8 *)+=win_z_buf_line_inc; + else + win_z_buf_ptr(U8 *)-=win_z_buf_line_dec; + k+=img->width_internal; + } + } + } + break; + case ROPB_EQU: + if (img->flags&DCF_NO_TRANSPARENTS) { + if (!(dc->flags & DCF_SCREEN_BITMAP) || dc->flags&DCF_ON_TOP) + win_z_buf_ptr=NULL; + else { + win_z_num=win_task->win_z_num; + win_z_buf_ptr=gr_win_z_buf(U8 *)+((h1+y)/FONT_HEIGHT*TEXT_COLS+(w1+x)/FONT_WIDTH)*sizeof(U16); + win_z_buf_line_dec=((leading_bits?1:0)+whole_bytes+(trailing_bits?1:0))*sizeof(U16); + win_z_buf_line_inc=TEXT_COLS*sizeof(U16)-win_z_buf_line_dec; + } + kk = h1 *img ->width_internal+w1; + kk1=(h1+y)*dc->width_internal+x+w1; + kk =(kk-bit_shift)&~7+bit_shift; + bit_shift*=8; + if (win_z_buf_ptr) + for (j=h1;jbody+kk&~7; + dst=dc->body+kk1&~7; + if (leading_bits) { + if (win_z_num>=*win_z_buf_ptr++) { + if (bit_shift) + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask| + (*src(I64 *)++>>bit_shift|*src(I64 *)<<(64-bit_shift))&~leading_bit_mask; + else + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask| + *src(I64 *)++&~leading_bit_mask; + } else { + src(I64 *)++; + dst(I64 *)++; + } + } + if (bit_shift) + for (i=0;i=*win_z_buf_ptr++) + *dst(I64 *)++=*src(I64 *)++>>bit_shift|*src(I64 *)<<(64-bit_shift); + else { + src(I64 *)++; + dst(I64 *)++; + } + else + for (i=0;i=*win_z_buf_ptr++) + *dst(I64 *)++=*src(I64 *)++; + else { + src(I64 *)++; + dst(I64 *)++; + } + if (trailing_bits && win_z_num>=*win_z_buf_ptr++) { + if (bit_shift) + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask| + (*src(I64 *)++>>bit_shift|*src(I64 *)<<(64-bit_shift))&~trailing_bit_mask; + else + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask| + *src(I64 *)++&~trailing_bit_mask; + } + kk +=img->width_internal; + kk1+=dc->width_internal; + if ((j+y)&7==7) + win_z_buf_ptr(U8 *)+=win_z_buf_line_inc; + else + win_z_buf_ptr(U8 *)-=win_z_buf_line_dec; + } + else + for (j=h2-h1;j;j--) { + src=img->body+kk&~7; + dst=dc->body+kk1&~7; + if (leading_bits) { + if (bit_shift) + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask| + (*src(I64 *)++>>bit_shift|*src(I64 *)<<(64-bit_shift))&~leading_bit_mask; + else + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask| + *src(I64 *)++&~leading_bit_mask; + } + if (bit_shift) + for (i=0;i>bit_shift|*src(I64 *)<<(64-bit_shift); + else + for (i=0;i>bit_shift|*src(I64 *)<<(64-bit_shift))&~trailing_bit_mask; + else + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask| + *src(I64 *)++&~trailing_bit_mask; + } + kk +=img->width_internal; + kk1+=dc->width_internal; + } + } else { +here1a: + k=h1*img->width_internal; + if (!(dc->flags & DCF_SCREEN_BITMAP) || dc->flags&DCF_ON_TOP) { + for (j=h1;jbody[k+i]; + if (c!=COLOR_TRANSPARENT) { + dc->color.c0.color=c; + GrPlot0(dc,x+i,y+j); + } + } + k+=img->width_internal; + } + } else { + win_z_num =win_task->win_z_num; + win_z_buf_ptr =gr_win_z_buf(U8 *)+((h1+y)/FONT_HEIGHT*TEXT_COLS+(w1+x)/FONT_WIDTH)*sizeof(U16); + win_z_buf_line_dec=((leading_bits?1:0)+whole_bytes+(trailing_bits?1:0))*sizeof(U16); + win_z_buf_line_inc=TEXT_COLS*sizeof(U16)-win_z_buf_line_dec; + for (j=h1;j=*win_z_buf_ptr++) + color_mask=TRUE; + else + color_mask=FALSE; + for (i=w1;ibody[k+i]; + if (c!=COLOR_TRANSPARENT) { + dc->color.c0.color=c; + GrPlot0(dc,x+i,y+j); + } + } + if (!((++i+x) &7) && i=*win_z_buf_ptr++) + color_mask=TRUE; + else + color_mask=FALSE; + } + } + if ((j+y)&7==7) + win_z_buf_ptr(U8 *)+=win_z_buf_line_inc; + else + win_z_buf_ptr(U8 *)-=win_z_buf_line_dec; + k+=img->width_internal; + } + } + dc->color=color; + } + break; + case ROPB_XOR: + if (img->flags&DCF_NO_TRANSPARENTS) { + if (!(dc->flags & DCF_SCREEN_BITMAP) || dc->flags&DCF_ON_TOP) + win_z_buf_ptr=NULL; + else { + win_z_num=win_task->win_z_num; + win_z_buf_ptr=gr_win_z_buf(U8 *)+((h1+y)/FONT_HEIGHT*TEXT_COLS+(w1+x)/FONT_WIDTH)*sizeof(U16); + win_z_buf_line_dec=((leading_bits?1:0)+whole_bytes+(trailing_bits?1:0))*sizeof(U16); + win_z_buf_line_inc=TEXT_COLS*sizeof(U16)-win_z_buf_line_dec; + } + kk = h1 *img ->width_internal +w1; + kk1=(h1+y)*dc->width_internal+x+w1; + kk =(kk-bit_shift)&~7+bit_shift; + bit_shift*=8; + if (win_z_buf_ptr) + for (j=h1;jbody+kk&~7; + dst=dc->body+kk1&~7; + if (leading_bits) { + if (win_z_num>=*win_z_buf_ptr++) { + if (bit_shift) + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask| + (*dst(I64 *)^(*src(I64 *)++>>bit_shift|*src(I64 *)<<(64-bit_shift)))&~leading_bit_mask; + else + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask| + (*dst(I64 *)^*src(I64 *)++)&~leading_bit_mask; + } else { + src(I64 *)++; + dst(I64 *)++; + } + } + if (bit_shift) + for (i=0;i=*win_z_buf_ptr++) + *dst(I64 *)++^=*src(I64 *)++>>bit_shift|*src(I64 *)<<(64-bit_shift); + else { + src(I64 *)++; + dst(I64 *)++; + } + else + for (i=0;i=*win_z_buf_ptr++) + *dst(I64 *)++^=*src(I64 *)++; + else { + src(I64 *)++; + dst(I64 *)++; + } + if (trailing_bits && win_z_num>=*win_z_buf_ptr++) { + if (bit_shift) + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask| + (*dst(I64 *)^(*src(I64 *)++>>bit_shift|*src(I64 *)<<(64-bit_shift)))&~trailing_bit_mask; + else + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask| + (*dst(I64 *)^*src(I64 *)++)&~trailing_bit_mask; + } + kk +=img->width_internal; + kk1+=dc->width_internal; + if ((j+y)&7==7) + win_z_buf_ptr(U8 *)+=win_z_buf_line_inc; + else + win_z_buf_ptr(U8 *)-=win_z_buf_line_dec; + } + else + for (j=h2-h1;j;j--) { + src=img->body+kk&~7; + dst=dc->body+kk1&~7; + if (leading_bits) { + if (bit_shift) + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask| + (*dst(I64 *)^(*src(I64 *)++>>bit_shift|*src(I64 *)<<(64-bit_shift)))&~leading_bit_mask; + else + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask| + (*dst(I64 *)^*src(I64 *)++)&~leading_bit_mask; + } + if (bit_shift) + for (i=0;i>bit_shift|*src(I64 *)<<(64-bit_shift); + else + for (i=0;i>bit_shift|*src(I64 *)<<(64-bit_shift)))&~trailing_bit_mask; + else + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask| + (*dst(I64 *)^*src(I64 *)++)&~trailing_bit_mask; + } + kk +=img->width_internal; + kk1+=dc->width_internal; + } + } else + goto here1a; + break; + } + } + dc->depth_buf=db; + dc->color=old_color; + return TRUE; + } else + return FALSE; +} + +U8 *GrBitMap4ToBitMap8(U8 *dst,U8 *src,I64 src_size,I64 bkcolor) +{ + I64 c,k,i=src_size*2,i1=i>>3; + for (k=0;kx2) SwapU64(&x1,&x2); + if (y1>y2) SwapU64(&y1,&y2); + if (dc->flags & DCF_SCREEN_BITMAP) { + win_task=dc->win_task; + x1+=win_task->win_pixel_left+win_task->win_scroll_x; + y1+=win_task->win_pixel_top+win_task->win_scroll_y; + x2+=win_task->win_pixel_left+win_task->win_scroll_x; + y2+=win_task->win_pixel_top+win_task->win_scroll_y; + } + result=DCNew(dc->type,x2-x1+1,y2-y1+1,task); + DCFill(result); + GrBlot(result,-x1,-y1,dc); + return result; +} + +#help_index "Graphics/Char;Char/Graphics" + +public Bool GrPutChar(CDC *dc,I64 x,I64 y,U8 ch) +{ //Clipping but not transformation + U8 reg *src,reg *dst,*font_ptr; + I64 i,m,leading_bits,trailing_bits,leading_bit_mask,trailing_bit_mask, + j,k1,kk1,w1,h1,w2,h2,reg bit_shift,dist,reg color_mask; + CColorROPU32 color,c; + CTask *win_task; + + if (dc->flags & DCF_SCREEN_BITMAP) { + win_task=dc->win_task; + x+=win_task->win_scroll_x; + y+=win_task->win_scroll_y; + } + + w1=x<0 ?-x:0; + h1=y<0 ?-y:0; + w2=FONT_WIDTH; + h2=FONT_HEIGHT; + + if (dc->flags & DCF_SCREEN_BITMAP) { + x+=win_task->win_pixel_left; + y+=win_task->win_pixel_top; + } + if (dc->flags & DCF_LOCATE_NEAREST) { //TODO:Untested + dist=DistI64(x+w2>>1,y+h2>>1,dc->cur_x,dc->cur_y); + if (dist<=dc->nearest_dist) { + dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; + dc->nearest_dist=dist; + } + } + if (dc->flags & DCF_SCREEN_BITMAP) { + if (x+w1<0) w1=-x; + if (x+w2>win_task->win_pixel_right+1) + w2=win_task->win_pixel_right+1-x; + + if (y+h1<0) h1=-y; + if (y+h2>win_task->win_pixel_bottom+1) + h2=win_task->win_pixel_bottom+1-y; + } + if (x+w2>dc->width) + w2=dc->width-x; + if (y+h2>dc->height) + h2=dc->height-y; + if (w1flags & DCF_RECORD_EXTENTS) { + if (x+w1min_x) dc->min_x=x+w1; + if (x+w2-1>dc->max_x) dc->max_x=x+w2-1; + if (y+h1min_y) dc->min_y=y+h1; + if (y+h2-1>dc->max_y) dc->max_y=y+h2-1; + } + if (dc->flags & DCF_DONT_DRAW) + return TRUE; + color=dc->color; + if (dc->type==DCT_COLOR8) { + leading_bits=-(w1+x)&7; + if (!leading_bits) leading_bits=8; + leading_bit_mask=gr_1_to_8_bits[0xFF>>leading_bits]; + bit_shift=-x&7; + trailing_bits=(x+w2)&7; + trailing_bit_mask=gr_1_to_8_bits[0xFF<w2-w1) { + leading_bit_mask|=trailing_bit_mask; + trailing_bits=0; + } + font_ptr=&gr_font[(FONT_WIDTH*(FONT_HEIGHT*ch+h1))>>3]; + if (color.c0.rop==ROPB_COLLISION) { + m=w1&(FONT_WIDTH-1); +#assert FONT_WIDTH==8 + color =dc->bkcolor.c0.color; + for (i=w1;iwidth_internal+x; + src=font_ptr; + for (j=h2-h1;j;j--) { + c=dc->body[k1+i]; + if (c!=COLOR_TRANSPARENT && c!=color && Bt(src,m)) + dc->collision_cnt++; + k1+=dc->width_internal; + src++; + } + } + } else { + color_mask=gr_1_to_8_colors[color.c0.color]; + k1=x+w1; + kk1=(h1+y)*dc->width_internal+k1; + if (!(dc->flags & DCF_SCREEN_BITMAP) || dc->flags&DCF_ON_TOP) { + if (leading_bits) { + dst=dc->body+kk1&~7; + src=font_ptr; + if (bit_shift) + src--; + nobound_switch (color.c0.rop) { + case ROPB_EQU: + case ROPB_MONO: + for (j=h2-h1;j;j--) { + m=gr_1_to_8_bits[*src(U16 *)>>bit_shift&0xFF]; + *dst(I64 *)=*dst(I64 *)&leading_bit_mask|(color_mask&m|*dst(I64 *)&~m)&~leading_bit_mask; + src++; + dst+=dc->width_internal; + } + break; + case ROPB_XOR: + if (color_mask) { + for (j=h2-h1;j;j--) { + *dst(I64 *)=*dst(I64 *)&leading_bit_mask|(*dst(I64 *)^gr_1_to_8_bits[*src(U16 *)>>bit_shift&0xFF])&~leading_bit_mask; + src++; + dst+=dc->width_internal; + } + } + break; + } + kk1+=8; + } + if (trailing_bits) { + dst=dc->body+kk1&~7; + src=font_ptr+1; + if (bit_shift) + src--; + nobound_switch (color.c0.rop) { + case ROPB_EQU: + case ROPB_MONO: + for (j=h2-h1;j;j--) { + m=gr_1_to_8_bits[*src(U16 *)>>bit_shift&0xFF]; + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask|(color_mask&m|*dst(I64 *)&~m)&~trailing_bit_mask; + src++; + dst+=dc->width_internal; + } + break; + case ROPB_XOR: + if (color_mask) { + for (j=h2-h1;j;j--) { + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask|(*dst(I64 *)^gr_1_to_8_bits[*src(U16 *)>>bit_shift&0xFF])&~trailing_bit_mask; + src++; + dst+=dc->width_internal; + } + } + break; + } + } + } else { + if (leading_bits) { + dst=dc->body+kk1&~7; + src=font_ptr; + if (bit_shift) + src--; + nobound_switch (color.c0.rop) { + case ROPB_EQU: + case ROPB_MONO: + for (j=h1;j>bit_shift&0xFF]; + *dst(I64 *)=*dst(I64 *)&leading_bit_mask|(color_mask&m|*dst(I64 *)&~m)&~leading_bit_mask; + } + src++; + dst+=dc->width_internal; + } + break; + case ROPB_XOR: + if (color_mask) { + for (j=h1;j>bit_shift&0xFF])&~leading_bit_mask; + src++; + dst+=dc->width_internal; + } + } + break; + } + k1+=8; + kk1+=8; + } + if (trailing_bits) { + dst=dc->body+kk1&~7; + src=font_ptr+1; + if (bit_shift) + src--; + nobound_switch (color.c0.rop) { + case ROPB_EQU: + case ROPB_MONO: + for (j=h1;j>bit_shift&0xFF]; + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask|(color_mask&m|*dst(I64 *)&~m)&~trailing_bit_mask; + } + src++; + dst+=dc->width_internal; + } + break; + case ROPB_XOR: + if (color_mask) { + for (j=h1;j>bit_shift&0xFF])&~trailing_bit_mask; + src++; + dst+=dc->width_internal; + } + } + break; + } + } + } + } + } + return TRUE; + } else + return FALSE; +} + +public Bool GrPutS(CDC *dc,I64 x,I64 y,U8 *_s) +{ + I64 x0=x,ch; + Bool result=FALSE,first=TRUE; + if (!_s) return FALSE; + while (ch=*_s++) { + if (ch==CH_NEW_LINE) { + x=x0; + y+=FONT_HEIGHT; + } else if (ch==CH_TAB) + x=x0+CeilU64(x-x0+FONT_WIDTH,8*FONT_WIDTH); + else { + if (first) { + result=GrPutChar(dc,x,y,ch); + first=FALSE; + } else + GrPutChar(dc,x,y,ch); + x+=FONT_WIDTH; + } + } + return result; +} + +public Bool GrVPutS(CDC *dc,I64 x,I64 y,U8 *_s) +{ //Vertical text + I64 y0=y; + U8 buf[2]; + Bool result=FALSE,first=TRUE; + if (!_s) return FALSE; + buf[1]=0; + while (*buf=*_s++) { + if (*buf==CH_NEW_LINE) { + y=y0; + x+=FONT_WIDTH; + } else if (*buf==CH_TAB) + y=y0+CeilU64(y-y0+FONT_HEIGHT,8*FONT_HEIGHT); + else { + if (first) { + result=GrPutS(dc,x,y,buf); + first=FALSE; + } else + GrPutS(dc,x,y,buf); + y+=FONT_HEIGHT; + } + } + return result; +} + +public U0 GrPrintF(CDC *dc,I64 x,I64 y,U8 *fmt,...) +{ + U8 *buf=SPrintFJoin(NULL,fmt,argc,argv); + GrPutS(dc,x,y,buf); + Free(buf); +} + +public U0 GrVPrintF(CDC *dc,I64 x,I64 y,U8 *fmt,...) +{ //Vertical text + U8 *buf=SPrintFJoin(NULL,fmt,argc,argv); + GrVPutS(dc,x,y,buf); + Free(buf); +} + +#help_index "Graphics" +public I64 GrRect(CDC *dc,I64 x,I64 y,I64 w,I64 h) +{ //Clipping but not transformation +//Returns cnt of pixels changed + I64 i,result=0,j,k1,kk1,w1,h1,w2,h2,dist, + leading_bits,whole_bytes,trailing_bits,leading_bit_mask,trailing_bit_mask, + win_z_buf_line_inc,win_z_buf_line_dec,win_z_num,color_mask; + U8 reg *dst; + U16 reg *win_z_buf_ptr; + CColorROPU32 color,c,dither_colors; + Bool dither,probability_dither; + CTask *win_task; + + if (dc->flags & DCF_SCREEN_BITMAP) { + win_task=dc->win_task; + x+=win_task->win_scroll_x; + y+=win_task->win_scroll_y; + } + + w1=x<0 ?-x:0; + h1=y<0 ?-y:0; + w2=w; + h2=h; + + if (dc->flags & DCF_SCREEN_BITMAP) { + x+=win_task->win_pixel_left; + y+=win_task->win_pixel_top; + } + if (dc->flags & DCF_LOCATE_NEAREST) { //TODO:Untested + if (dc->cur_x>=x && dc->cur_y>=y && + dc->cur_x<=x+w && dc->cur_y<=y+h) { + dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; + dc->nearest_dist=0; + } else { + dist=DistI64(x+w>>1,y+h>>1,dc->cur_x,dc->cur_y); + if (dist<=dc->nearest_dist) { + dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; + dc->nearest_dist=dist; + } + } + } + if (dc->flags & DCF_SCREEN_BITMAP) { + if (x+w1<0) w1=-x; + if (x+w2>win_task->win_pixel_right+1) + w2=win_task->win_pixel_right+1-x; + + if (y+h1<0) h1=-y; + if (y+h2>win_task->win_pixel_bottom+1) + h2=win_task->win_pixel_bottom+1-y; + } + if (x+w2>dc->width) + w2=dc->width-x; + if (y+h2>dc->height) + h2=dc->height-y; + if (w1flags & DCF_RECORD_EXTENTS) { + if (x+w1min_x) dc->min_x=x+w1; + if (x+w2-1>dc->max_x) dc->max_x=x+w2-1; + if (y+h1min_y) dc->min_y=y+h1; + if (y+h2-1>dc->max_y) dc->max_y=y+h2-1; + } + if (dc->flags & DCF_DONT_DRAW) + return TRUE; + color=dc->color; + if (color.c1.rop&(ROPBF_DITHER|ROPBF_PROBABILITY_DITHER)) { + dither=TRUE; + if (color.c1.rop&ROPBF_PROBABILITY_DITHER) { + probability_dither=TRUE; + color.c1.rop=color.c0.rop; + dither_colors=color; + } else { + probability_dither=FALSE; + color.c1.rop=color.c0.rop; + } + } else + dither=FALSE; + if (dc->type==DCT_COLOR8) { + leading_bits=-(w1+x)&7; + leading_bit_mask=gr_1_to_8_bits[0xFF>>leading_bits]; + whole_bytes=(w2-w1-leading_bits)>>3; + if (whole_bytes<0) whole_bytes=0; + trailing_bits=(x+w2)&7; + trailing_bit_mask=gr_1_to_8_bits[0xFF<w2-w1) { + leading_bit_mask|=trailing_bit_mask; + leading_bits=w2-w1; //Correct so it's right for result. + trailing_bits=0; + } + if (dither) { + if (probability_dither) { + if (RandU16dither_probability) + color.c0=dither_colors.c1; + else + color.c0=dither_colors.c0; + } else + if (((x+w1)^(y+h1))&1) + SwapU16(&color.c0,&color.c1); + if (color.c0.rop==ROPB_COLLISION) { //TODO: Might want to check win_z_buf + color =dc->bkcolor.c0.color; //TODO: Dithered? + k1=(h1+y)*dc->width_internal+x; + result=-dc->collision_cnt; + for (j=h2-h1;j;j--) { + for (i=w1;ibody[k1+i]; + if (c!=COLOR_TRANSPARENT && c!=color) + dc->collision_cnt++; + } + k1+=dc->width_internal; + } + result+=dc->collision_cnt; + } else { + if (!(dc->flags & DCF_SCREEN_BITMAP) || dc->flags&DCF_ON_TOP) + win_z_buf_ptr=NULL; + else { + win_z_num=win_task->win_z_num; + win_z_buf_ptr=gr_win_z_buf(U8 *)+((h1+y)/FONT_HEIGHT*TEXT_COLS+(w1+x)/FONT_WIDTH)*sizeof(U16); + win_z_buf_line_dec=((leading_bits?1:0)+whole_bytes+(trailing_bits?1:0))*sizeof(U16); + win_z_buf_line_inc=TEXT_COLS*sizeof(U16)-win_z_buf_line_dec; + } + kk1=(h1+y)*dc->width_internal+x+w1; + nobound_switch (color.c0.rop) { + case ROPB_EQU: + case ROPB_MONO: + if (win_z_buf_ptr) { + result=0; + for (j=h1;jbody+kk1&~7; + if (leading_bits) { + if (win_z_num>=*win_z_buf_ptr++) { + *dst(I64 *)=*dst(I64 *)&leading_bit_mask|color_mask&~leading_bit_mask; + result+=leading_bits; + } + dst(I64 *)++; + } + for (i=0;i=*win_z_buf_ptr++) { + *dst(I64 *)=color_mask; + result+=8; + } + if (trailing_bits && win_z_num>=*win_z_buf_ptr++) { + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask|color_mask&~trailing_bit_mask; + result+=trailing_bits; + } + if ((j+y)&7==7) + win_z_buf_ptr(U8 *)+=win_z_buf_line_inc; + else + win_z_buf_ptr(U8 *)-=win_z_buf_line_dec; + kk1+=dc->width_internal; + if (probability_dither) { + if (RandU16dither_probability) + color.c0=dither_colors.c1; + else + color.c0=dither_colors.c0; + } else + SwapU16(&color.c0,&color.c1); + } + } else { + for (j=h2-h1;j;j--) { + color_mask=gr_1_to_8_bits[0x55]&gr_1_to_8_colors[color.c0.color]| + gr_1_to_8_bits[0xAA]&gr_1_to_8_colors[color.c1.color]; + dst=dc->body+kk1&~7; + if (leading_bits) + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask|color_mask&~leading_bit_mask; + for (i=0;iwidth_internal; + if (probability_dither) { + if (RandU16dither_probability) + color.c0=dither_colors.c1; + else + color.c0=dither_colors.c0; + } else + SwapU16(&color.c0,&color.c1); + } + result=(h2-h1)*(w2-w1); + } + break; + case ROPB_XOR: + if (win_z_buf_ptr) { + result=0; + for (j=h1;jbody+kk1&~7; + if (leading_bits) { + if (win_z_num>=*win_z_buf_ptr++) { + *dst(I64 *)=*dst(I64 *)&leading_bit_mask^color_mask&~leading_bit_mask; + result+=leading_bits; + } + dst(I64 *)++; + } + for (i=0;i=*win_z_buf_ptr++) { + *dst(I64 *)^=color_mask; + result+=8; + } + if (trailing_bits && win_z_num>=*win_z_buf_ptr++) { + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask^color_mask&~trailing_bit_mask; + result+=trailing_bits; + } + if ((j+y)&7==7) + win_z_buf_ptr(U8 *)+=win_z_buf_line_inc; + else + win_z_buf_ptr(U8 *)-=win_z_buf_line_dec; + kk1+=dc->width_internal; + if (probability_dither) { + if (RandU16dither_probability) + color.c0=dither_colors.c1; + else + color.c0=dither_colors.c0; + } else + SwapU16(&color.c0,&color.c1); + } + } else { + for (j=h2-h1;j;j--) { + color_mask=gr_1_to_8_bits[0x55]&gr_1_to_8_colors[color.c0.color]| + gr_1_to_8_bits[0xAA]&gr_1_to_8_colors[color.c1.color]; + dst=dc->body+kk1&~7; + if (leading_bits) + *dst(I64 *)++=*dst&leading_bit_mask^color_mask&~leading_bit_mask; + for (i=0;iwidth_internal; + if (probability_dither) { + if (RandU16dither_probability) + color.c0=dither_colors.c1; + else + color.c0=dither_colors.c0; + } else + SwapU16(&color.c0,&color.c1); + } + result=(h2-h1)*(w2-w1); + } + break; + } + } + } else { + if (color.c0.rop==ROPB_COLLISION) { //TODO: Might want to check win_z_buf + color =dc->bkcolor.c0.color; + k1=(h1+y)*dc->width_internal+x; + result=-dc->collision_cnt; + for (j=h2-h1;j;j--) { + for (i=w1;ibody[k1+i]; + if (c!=COLOR_TRANSPARENT && c!=color) + dc->collision_cnt++; + } + k1+=dc->width_internal; + } + result+=dc->collision_cnt; + } else { + if (!(dc->flags & DCF_SCREEN_BITMAP) || dc->flags&DCF_ON_TOP) + win_z_buf_ptr=NULL; + else { + win_z_num=win_task->win_z_num; + win_z_buf_ptr=gr_win_z_buf(U8 *)+((h1+y)/FONT_HEIGHT*TEXT_COLS+(w1+x)/FONT_WIDTH)*sizeof(U16); + win_z_buf_line_dec=((leading_bits?1:0)+whole_bytes+(trailing_bits?1:0))*sizeof(U16); + win_z_buf_line_inc=TEXT_COLS*sizeof(U16)-win_z_buf_line_dec; + } + color_mask=gr_1_to_8_colors[color.c0.color]; + kk1=(h1+y)*dc->width_internal+x+w1; + nobound_switch (color.c0.rop) { + case ROPB_EQU: + case ROPB_MONO: + if (win_z_buf_ptr) { + result=0; + for (j=h1;jbody+kk1&~7; + if (leading_bits) { + if (win_z_num>=*win_z_buf_ptr++) { + *dst(I64 *)=*dst(I64 *)&leading_bit_mask|color_mask&~leading_bit_mask; + result+=leading_bits; + } + dst(I64 *)++; + } + for (i=0;i=*win_z_buf_ptr++) { + *dst(I64 *)=color_mask; + result+=8; + } + if (trailing_bits && win_z_num>=*win_z_buf_ptr++) { + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask|color_mask&~trailing_bit_mask; + result+=trailing_bits; + } + if ((j+y)&7==7) + win_z_buf_ptr(U8 *)+=win_z_buf_line_inc; + else + win_z_buf_ptr(U8 *)-=win_z_buf_line_dec; + kk1+=dc->width_internal; + } + } else { + for (j=h2-h1;j;j--) { + dst(I64 *)=dc->body+kk1&~7; + if (leading_bits) + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask|color_mask&~leading_bit_mask; + for (i=0;iwidth_internal; + } + result=(h2-h1)*(w2-w1); + } + break; + case ROPB_XOR: + if (win_z_buf_ptr) { + result=0; + for (j=h1;jbody+kk1&~7; + if (leading_bits) { + if (win_z_num>=*win_z_buf_ptr++) { + *dst(I64 *)=*dst(I64 *)&leading_bit_mask^color_mask&~leading_bit_mask; + result+=leading_bits; + } + dst(I64 *)++; + } + for (i=0;i=*win_z_buf_ptr++) { + *dst(I64 *)^=color_mask; + result+=8; + } + if (trailing_bits && win_z_num>=*win_z_buf_ptr++) { + *dst(I64 *)=*dst(I64 *)&trailing_bit_mask^color_mask&~trailing_bit_mask; + result+=trailing_bits; + } + if ((j+y)&7==7) + win_z_buf_ptr(U8 *)+=win_z_buf_line_inc; + else + win_z_buf_ptr(U8 *)-=win_z_buf_line_dec; + kk1+=dc->width_internal; + } + } else { + for (j=h2-h1;j;j--) { + dst=dc->body+kk1&~7; + if (leading_bits) + *dst(I64 *)++=*dst(I64 *)&leading_bit_mask^color_mask&~leading_bit_mask; + for (i=0;iwidth_internal; + } + result=(h2-h1)*(w2-w1); + } + break; + } + } + } + } + } + return result; +} + + +I64 GrRayLenMinus(CDC *dc,I64 x,I64 y) +{ +//Returns cnt of pixels changed + I64 result=0,c,x3,y3,d; + U8 *dst,*dst2; + Bool not_color=ToBool(dc->flags&DCF_FILL_NOT_COLOR); + CTask *win_task; + + if (dc->flags & DCF_SCREEN_BITMAP) { + win_task=dc->win_task; + x+=win_task->win_scroll_x; + y+=win_task->win_scroll_y; + } + x3=x; + y3=y; + if (x3<0 || y3<0) + goto gr_done; + if (dc->flags & DCF_SCREEN_BITMAP) { + x3+=win_task->win_pixel_left; + y3+=win_task->win_pixel_top; + if (x3<0 || y3<0 || + x3>win_task->win_pixel_right || + y3>win_task->win_pixel_bottom || + !(dc->flags&DCF_ON_TOP) && + IsPixelCovered0(win_task,x3,y3)) + goto gr_done; + } + if (x3>=dc->width || y3>=dc->height) + goto gr_done; + + d=y3*dc->width_internal; + nobound_switch (dc->type) { + case DCT_COLOR8: + dst2=dc->body+d; + while (TRUE) { + x3=x; + if (x3&(FONT_WIDTH-1)==FONT_WIDTH-1) { + if (dc->flags & DCF_SCREEN_BITMAP) { + if (x3<0) break; + x3+=win_task->win_pixel_left; + if (x3<0 || x3>win_task->win_pixel_right || + x3>=dc->width || + !(dc->flags&DCF_ON_TOP) && + IsPixelCovered0(win_task,x3,y3)) + break; + } else + if (!(0<=x3width)) + break; + } else if (dc->flags & DCF_SCREEN_BITMAP) + x3+=win_task->win_pixel_left; + dst=dst2+x3; + c=*dst; + if (not_color) { + if (c!=dc->color2) { + result++; + x--; + } else + break; + } else { + if (c==dc->color2) { + result++; + x--; + } else + break; + } + } + return result; + } +gr_done: + return 0; +} + +I64 GrRayLen(CDC *dc,I64 *x1,I64 y,I64 z=0,I32 *db=NULL) +{ +//Returns cnt of pixels changed + I64 result=0,d,x=*x1,x2,x3,y3,dist; + Bool plot,dither,probability_dither,not_color=ToBool(dc->flags&DCF_FILL_NOT_COLOR); + U8 *dst,*dst2; + CColorROPU32 c,c2,color=dc->color,bkcolor=dc->bkcolor; + I32 *db2; + CTask *win_task; + + if (dc->flags & DCF_SCREEN_BITMAP) { + win_task=dc->win_task; + x+=win_task->win_scroll_x; + y+=win_task->win_scroll_y; + z+=win_task->win_scroll_z; + } + x2=x; + x3=x; + y3=y; + if (x3<0 || y3<0) + goto gr_done; + if (dc->flags & DCF_SCREEN_BITMAP) { + x3+=win_task->win_pixel_left; + y3+=win_task->win_pixel_top; + if (x3<0 || y3<0 || + x3>win_task->win_pixel_right || + y3>win_task->win_pixel_bottom || + !(dc->flags&DCF_ON_TOP) && + IsPixelCovered0(win_task,x3,y3)) + goto gr_done; + } + if (x3>=dc->width || y3>=dc->height) + goto gr_done; + + d=dc->width_internal*y3; + if (db) db+=d; + + color=dc->color; + if (color.c1.rop&(ROPBF_DITHER|ROPBF_PROBABILITY_DITHER)) { + dither=TRUE; + if (color.c1.rop&ROPBF_PROBABILITY_DITHER) { + probability_dither=TRUE; + color.c1.rop=color.c0.rop; + } else { + probability_dither=FALSE; + color.c1.rop=color.c0.rop; + } + } else + dither=FALSE; + nobound_switch (dc->type) { + case DCT_COLOR8: + dst2=dc->body+d; + while (TRUE) { + x3=x; + if (!(x3&(FONT_WIDTH-1))) { + if (dc->flags & DCF_SCREEN_BITMAP) { + if (x3<0) break; + x3+=win_task->win_pixel_left; + if (x3<0 || x3>win_task->win_pixel_right || + x3>=dc->width || + !(dc->flags&DCF_ON_TOP) && + IsPixelCovered0(win_task,x3,y3)) + break; + } else { + if (!(0<=x3width)) + break; + } + } else if (dc->flags & DCF_SCREEN_BITMAP) + x3+=win_task->win_pixel_left; + + dst=dst2+x3; + + c=*dst; + if (db) { + db2=db+x3; + if (0<=z<=*db2) { + *db2=z; + plot=TRUE; + } else + plot=FALSE; + } else + plot=TRUE; + + if ((not_color && c!=dc->color2 || + !not_color && c==dc->color2) && plot) { + if (dc->flags & DCF_LOCATE_NEAREST) { + dist=DistI64(x3,y3,dc->cur_x,dc->cur_y); + if (dist<=dc->nearest_dist) { + dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; + dc->nearest_dist=dist; + } + } + if (dc->flags & DCF_RECORD_EXTENTS) { + if (x3min_x) dc->min_x=x3; + if (x3>dc->max_x) dc->max_x=x3; + if (y3min_y) dc->min_y=y3; + if (y3>dc->max_y) dc->max_y=y3; + } + dst=dst2+x3; + + c=color.c0.color; + if (dither) { + if (probability_dither) { + if (RandU16dither_probability) + c=color.c1.color; + } else + if ((x3^y3)&1) + c=color.c1.color; + } + nobound_switch (color.c0.rop) { + case ROPB_EQU: + case ROPB_MONO: + *dst=c; + break; + case ROPB_COLLISION: + c2=*dst; + if (c2!=COLOR_TRANSPARENT && c2!=bkcolor.c0.color) + dc->collision_cnt++; + break; + case ROPB_XOR: + *dst^=c; + break; + } + result++; + x++; + } else + break; + } + if (dc->flags & DCF_SCREEN_BITMAP) + *x1=x-1-win_task->win_scroll_x; + else + *x1=x-1; + x=x2-1; + while (TRUE) { + x3=x; + if (x3&(FONT_WIDTH-1)==FONT_WIDTH-1) { + if (dc->flags & DCF_SCREEN_BITMAP) { + if (x3<0) break; + x3+=win_task->win_pixel_left; + if (x3<0 || x3>win_task->win_pixel_right || + x3>=dc->width || + !(dc->flags&DCF_ON_TOP) && + IsPixelCovered0(win_task,x3,y3)) + break; + } else + if (!(0<=x3width)) + break; + } else if (dc->flags & DCF_SCREEN_BITMAP) + x3+=win_task->win_pixel_left; + + dst=dst2+x3; + c=*dst; + if (db) { + db2=db+x3; + if (0<=z<=*db2) { + *db2=z; + plot=TRUE; + } else + plot=FALSE; + } else + plot=TRUE; + + if ((not_color && c!=dc->color2 || + !not_color && c==dc->color2) && plot) { + if (dc->flags & DCF_LOCATE_NEAREST) { + dist=DistI64(x3,y3,dc->cur_x,dc->cur_y); + if (dist<=dc->nearest_dist) { + dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; + dc->nearest_dist=dist; + } + } + if (dc->flags & DCF_RECORD_EXTENTS) { + if (x3min_x) dc->min_x=x3; + if (x3>dc->max_x) dc->max_x=x3; + if (y3min_y) dc->min_y=y3; + if (y3>dc->max_y) dc->max_y=y3; + } + dst=dst2+x3; + + c=color.c0.color; + if (dither) { + if (probability_dither) { + if (RandU16dither_probability) + c=color.c1.color; + } else + if ((x3^y3)&1) + c=color.c1.color; + } + nobound_switch (color.c0.rop) { + case ROPB_EQU: + case ROPB_MONO: + *dst=c; + break; + case ROPB_COLLISION: + c2=*dst; + if (c2!=COLOR_TRANSPARENT && c2!=bkcolor.c0.color) + dc->collision_cnt++; + break; + case ROPB_XOR: + *dst^=c; + break; + } + result++; + x--; + } else + break; + } + return result; + } +gr_done: + return 0; +} + +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"$. + I64 dx,dz,z,result=0,i,j,d,dist; + U8 *dst; + CColorROPU32 c,c2,color=dc->color,bkcolor=dc->bkcolor,dither_colors; + I32 *db; + Bool plot=TRUE,char_clear,dither,probability_dither; + CTask *win_task; + + if (!dc->depth_buf) { + if (x2flags & DCF_SCREEN_BITMAP) { + win_task=dc->win_task; + x1+=win_task->win_scroll_x; + x2+=win_task->win_scroll_x; + y +=win_task->win_scroll_y; + z1+=win_task->win_scroll_z; + z2+=win_task->win_scroll_z; + } + if (dc->flags & DCF_RECORD_EXTENTS) { + if (x1min_x) dc->min_x=x1; + if (x1>dc->max_x) dc->max_x=x1; + if (x2min_x) dc->min_x=x2; + if (x2>dc->max_x) dc->max_x=x2; + if (ymin_y) dc->min_y=y; + if (y>dc->max_y) dc->max_y=y; + } + if (y<0) goto gr_done; + if (x2flags & DCF_SCREEN_BITMAP) { + x1+=win_task->win_pixel_left; + x2+=win_task->win_pixel_left; + if (x1>win_task->win_pixel_right) + goto gr_done; + if (x2>win_task->win_pixel_right) { + j=x2-win_task->win_pixel_right; + x2=win_task->win_pixel_right; + } + y+=win_task->win_pixel_top; + if (y>win_task->win_pixel_bottom || + y<0 || + x2<0) + goto gr_done; + } + if (x1>=dc->width || y>=dc->height) + goto gr_done; + dx=x2+j-(x1-i); + d=dc->width_internal*y+x1; + if (db=dc->depth_buf) { + db+=d; + if (dx) + dz=(z2-z1)<<32/dx; + else + dz=0; + z=z1<<32; + } + if (i) + z+=i*dz; + if (x2>=dc->width) + x2=dc->width-1; + + if (dc->flags & DCF_LOCATE_NEAREST) { + if (x1<=dc->cur_x<=x2) + dist=0; + else if (dc->cur_xcur_x); + else + dist=SqrI64(dc->cur_x-x2); + dist+=SqrI64(y-dc->cur_y); + if (dist<=dc->nearest_dist) { + dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; + dc->nearest_dist=dist; + } + } + if (dc->flags & DCF_DONT_DRAW) + goto gr_done; + + if (!(dc->flags & DCF_SCREEN_BITMAP) || + win_task->next_task==sys_winmgr_task || + dc->flags&DCF_ON_TOP || + !IsPixelCovered0(win_task,x1,y)) + char_clear=TRUE; + else + char_clear=FALSE; + if (color.c1.rop&(ROPBF_DITHER|ROPBF_PROBABILITY_DITHER)) { + dither=TRUE; + if (color.c1.rop&ROPBF_PROBABILITY_DITHER) { + probability_dither=TRUE; + color.c1.rop=color.c0.rop; + dither_colors=color; + if (RandU16dither_probability) + color.c0=dither_colors.c1; + else + color.c0=dither_colors.c0; + } else { + probability_dither=FALSE; + color.c1.rop=color.c0.rop; + if ((x1^y)&1) + SwapU16(&color.c0,&color.c1); + } + } else + dither=FALSE; + while (x1<=x2) { + if (char_clear) { + if (db) { + if (0<=z.i32[1]<=*db) { + *db=z.i32[1]; + plot=TRUE; + } else + plot=FALSE; + } + if (plot) { + nobound_switch (dc->type) { + case DCT_COLOR8: + dst=dc->body+d; + c=color.c0.color; + nobound_switch (color.c0.rop) { + case ROPB_EQU: + case ROPB_MONO: + *dst=c; + break; + case ROPB_COLLISION: + c2=*dst; + if (c2!=COLOR_TRANSPARENT && c2!=bkcolor.c0.color) + dc->collision_cnt++; + break; + case ROPB_XOR: + *dst^=c; + break; + } + break; + } + result++; + } + } + if (dither) { + if (probability_dither) { + if (RandU16dither_probability) + color.c0=dither_colors.c1; + else + color.c0=dither_colors.c0; + } else + SwapU16(&color.c0,&color.c1); + } + d++; + x1++; + if (db) + db++; + z+=dz; + if (!(x1&(FONT_WIDTH-1)) && x1<=x2) { + if (!(dc->flags & DCF_SCREEN_BITMAP)|| + win_task->next_task==sys_winmgr_task || + dc->flags&DCF_ON_TOP || + !IsPixelCovered0(win_task,x1,y)) + char_clear=TRUE; + else + char_clear=FALSE; + } + } +gr_done: + return result; +} diff --git a/SparrowOS/Adam/Gr/GrCfg.CPP b/SparrowOS/Adam/Gr/GrCfg.CPP new file mode 100644 index 0000000..21a292d --- /dev/null +++ b/SparrowOS/Adam/Gr/GrCfg.CPP @@ -0,0 +1,10 @@ +//See $LK,"SYS_BIOS_GR_MODE","FF:D:/SparrowOS/OSMain/OSStart.CPP.Z,SYS_BIOS_GR_MODE:2"$ +//See $LK,"SysGrInit","MN:SysGrInit"$() + +//This allows constants to be used +//instead of vars. +DefinePrintF("BIOS_GR_MODE","%d",bios_gr_mode); +DefinePrintF("GR_WIDTH","%d",gr_width); +DefinePrintF("GR_HEIGHT","%d",gr_height); +DefinePrintF("TEXT_ROWS","%d",text_rows); +DefinePrintF("TEXT_COLS","%d",text_cols); diff --git a/SparrowOS/Adam/Gr/GrChar.CPP b/SparrowOS/Adam/Gr/GrChar.CPP new file mode 100644 index 0000000..02f461b --- /dev/null +++ b/SparrowOS/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,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/Gr/GrComposites.CPP b/SparrowOS/Adam/Gr/GrComposites.CPP new file mode 100644 index 0000000..30c314c --- /dev/null +++ b/SparrowOS/Adam/Gr/GrComposites.CPP @@ -0,0 +1,180 @@ +#help_index "Graphics" +public U0 GrLineRect4(CDC *dc,I64 x1,I64 y1,I64 x2,I64 y2,I64 step=1,I64 start=0) +{ +//Can be used with ROPF_DITHER+WHITE<<16+ROP_EQU+BLACK +//for dotted rect. + GrLine3(dc,x1,y1,0,x2,y1,0,step,start); + GrLine3(dc,x2,y1,0,x2,y2,0,step,start); + GrLine3(dc,x2,y2,0,x1,y2,0,step,start); + GrLine3(dc,x1,y2,0,x1,y1,0,step,start); +} + +public U0 GrArrow3(CDC *dc,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2,F64 w=2.75,I64 step=1,I64 start=0) +{ //transformation with pen width + I64 _x1,_y1,_z1,_x2,_y2,_z2,dx,dy; + F64 d; + 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); + dx=_x2-_x1; dy=_y2-_y1; + if (d=Sqrt(dx*dx+dy*dy)) { + d=w*dc->pen_width/d; + Line(dc,_x2-dx*d+dy*d+0.5,_y2-dy*d-dx*d+0.5,_z2,_x2,_y2,_z2,&GrPlot3,step); + Line(dc,_x2-dx*d-dy*d+0.5,_y2-dy*d+dx*d+0.5,_z2,_x2,_y2,_z2,&GrPlot3,step); + } + was_symmetry=TRUE; + if (dc->flags&DCF_JUST_MIRROR) + goto gr_done; + } + Line(dc,x1,y1,z1,x2,y2,z2,&GrPlot3,step,start); + dx=x2-x1; dy=y2-y1; + if (d=Sqrt(dx*dx+dy*dy)) { + d=w*dc->pen_width/d; + Line(dc,x2-dx*d+dy*d+0.5,y2-dy*d-dx*d+0.5,z2,x2,y2,z2,&GrPlot3,step); + Line(dc,x2-dx*d-dy*d+0.5,y2-dy*d+dx*d+0.5,z2,x2,y2,z2,&GrPlot3,step); + } +gr_done: + if (was_transform) + dc->flags|=DCF_TRANSFORMATION; + if (was_symmetry) + dc->flags|=DCF_SYMMETRY; +} + +#help_index "Graphics/Char;Char/Graphics" + +public Bool GrTextBox3(CDC *dc,I64 x1,I64 y1,I64 z1,U8 *s,I64 border=2) +{ //transformation +//DCF_SYMMETRY is silly. + Bool result; + U8 ch,*ptr=s; + I64 w=0,w_max=0,h=FONT_HEIGHT; + if (!s) return FALSE; + if (dc->flags & DCF_TRANSFORMATION) + (*dc->transform)(dc,&x1,&y1,&z1); + while (ch=*ptr++) { + if (ch==CH_TAB) + w=CeilU64(w+FONT_WIDTH,FONT_WIDTH*8); + else if (ch==CH_NEW_LINE) { + if (w>w_max) w_max=w; + w=0; + h+=FONT_HEIGHT; + } else + w+=FONT_WIDTH; + } + if (w>w_max) w_max=w; + result=GrPutS(dc,x1,y1,s); + GrLine(dc,x1-border ,y1-border ,x1+w_max+border,y1-border); + GrLine(dc,x1-border ,y1+h+border,x1+w_max+border,y1+h+border); + GrLine(dc,x1-border ,y1-border ,x1-border,y1+h+border); + GrLine(dc,x1+w_max+border,y1-border ,x1+w_max+border,y1+h+border); + return result; +} + +#define MAX_DIAMOND_SLOPE 2.75 + +public Bool GrTextDiamond3(CDC *dc,I64 x1,I64 y1,I64 z1,U8 *_s,I64 border=2) +{ //transformation +//DCF_SYMMETRY is silly. + Bool result=FALSE,first=TRUE; + U8 ch,*ptr,*ptr_end,*st,*s; + I64 y,dx,dy,dx_old,dy_old,w,h=FONT_HEIGHT; + F64 m; + if (!_s) return FALSE; + if (dc->flags & DCF_TRANSFORMATION) + (*dc->transform)(dc,&x1,&y1,&z1); + + ptr=s=StrNew(_s); + while (ch=*ptr) { + if (ch==CH_CARRIAGE_RETURN||ch==CH_TAB) + *ptr=CH_SPACE; + if (ch==CH_NEW_LINE) { + *ptr=0; + h+=FONT_HEIGHT; + } + ptr++; + } + ptr_end=ptr+1; + + y=y1-h>>1; + dx=FONT_WIDTH +border; //Minimum + dy=FONT_HEIGHT+border+h>>1; //Minimum + ptr=s; + while (ptr!=ptr_end) { + st=ptr; + while (*ptr++); + StrUtil(st,SUF_REM_LEADING|SUF_REM_TRAILING); + + w=(StrLen(st)*FONT_WIDTH)>>1; + if (first) { + result=GrPutS(dc,x1-w,y,st); + first=FALSE; + } else + GrPutS(dc,x1-w,y,st); + if (w) { + w+=border; + do { + dx_old=dx; dy_old=dy; + m=ToF64(dx)/dy; + if (m<1/MAX_DIAMOND_SLOPE) { + dy=MaxI64(dy,Ceil(MAX_DIAMOND_SLOPE*dx)); + m=1/MAX_DIAMOND_SLOPE; + } else if (m>MAX_DIAMOND_SLOPE) { + dy=MaxI64(dy,Ceil(dx/MAX_DIAMOND_SLOPE)); + m=MAX_DIAMOND_SLOPE; + } + dx=MaxI64(dx,w+Ceil(m*AbsI64(y-y1))); + dx=MaxI64(dx,w+Ceil(m*AbsI64(y+FONT_HEIGHT-y1))); + } while (dx!=dx_old || dy!=dy_old); + } + y+=FONT_HEIGHT; + } + Free(s); + + GrLine(dc,x1,y1-dy,x1+dx,y1); + GrLine(dc,x1+dx,y1,x1,y1+dy); + GrLine(dc,x1,y1+dy,x1-dx,y1); + GrLine(dc,x1-dx,y1,x1,y1-dy); + return result; +} + +#help_index "Graphics;Input Pointer/Displayed Image" +//Called by $LK,"DrawInputPtr","MN:DrawInputPtr"$() which is +//called by $LK,"WinFinalUpdate","MN:WinFinalUpdate"$(). +public U0 DrawStdInputPtr(CDC *dc,I64 x,I64 y) +{ + dc->pen_width=1; + dc->flags&=~(DCF_TRANSFORMATION|DCF_SYMMETRY); + GrArrow3(dc,x+8,y+8,0,x,y,0); +} + +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 U0 DrawWaitInputPtr(CDC *dc,I64 x,I64 y) +{ + I64 old_pen_width=dc->pen_width; + CColorROPU32 old_color=dc->color; + dc->pen_width=3; + dc->color=LTRED; + GrCircle3(dc,x,y,0,7); + GrLine3(dc,x-6,y+6,0,x+6,y-6,0); + dc->color=RED; + GrCircle(dc,x,y,7); + GrLine(dc,x-6,y+6,x+6,y-6); + dc->pen_width=old_pen_width; + dc->color=old_color; +} + +#help_index "Graphics" diff --git a/SparrowOS/Adam/Gr/GrDC.CPP b/SparrowOS/Adam/Gr/GrDC.CPP new file mode 100644 index 0000000..7d468e6 --- /dev/null +++ b/SparrowOS/Adam/Gr/GrDC.CPP @@ -0,0 +1,304 @@ +#help_index "Graphics/DCs" + +public U0 DCRst(CDC *dc) +{ + dc->color=BLACK; + dc->color2=BLACK; + dc->bkcolor=BLACK; + dc->collision_cnt=0; + dc->pen_width=1; + dc->ls.x=37837; //1<<16/Sqrt(3) + dc->ls.y=37837; + dc->ls.z=37837; + dc->x=0; + dc->y=0; + dc->z=0; + dc->transform=&GrTransform; + dc->lighting =&GrLighting; + GrIdentEqu(dc->r); + dc->r_norm=gr_scale; + dc->flags&=~(DCF_SYMMETRY|DCF_TRANSFORMATION|DCF_JUST_MIRROR); +} + +public CDC *DCAlias(CDC *dc=NULL,CTask *task=NULL) +{ + CDC *result; + if (!dc) dc=gr_dc2; + if (!task) task=Fs; + if (dc->dc_signature!=DCS_SIGNATURE_VAL) + Dbg; + result=MAlloc(sizeof(CDC),task); + MemCpy(result,dc,sizeof(CDC)); + result->win_task=task; + result->mem_task=task; + result->r=MAlloc(16*sizeof(I64),task); + DCRst(result); + result->flags|=DCF_ALIAS; + result->alias=dc; + return result; +} + + +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;"$. + CDC *result; + if (!task) task=Fs; + result=CAlloc(sizeof(CDC),task); + result->win_task=task; + result->mem_task=task; + result->type=type; + result->width=width; + result->width_internal=(width+7)&~7; + result->height=height; + switch (type) { + case DCT_COLOR4: + result->plane_size=(result->width_internal*result->height)>>3; + if (!null_bitmap) + result->body=CAlloc(result->plane_size<<2,task); + break; + case DCT_COLOR8: + result->plane_size=result->width_internal*result->height; + if (!null_bitmap) + result->body=CAlloc(result->plane_size,task); + break; + default: + throw(EXCEPT_GRAPHICS,1); + } + if (null_bitmap) + result->flags|=DCF_DONT_DRAW; + result->r=MAlloc(16*sizeof(I64),task); + DCRst(result); + result->dc_signature=DCS_SIGNATURE_VAL; + return result; +} + +public U0 DCDel(CDC *dc) +{ + if (!dc) return; + if (dc->dc_signature!=DCS_SIGNATURE_VAL) + Dbg; + dc->dc_signature=0; + Free(dc->r); + if (!(dc->flags & DCF_ALIAS)) + Free(dc->body); + Free(dc->depth_buf); + Free(dc); +} + +public I64 DCSize(CDC *dc) +{ + if (dc) + return MSize2(dc)+MSize2(dc->body)+MSize2(dc->depth_buf); + else + return 0; +} + +public U0 DCDepthBufRst(CDC *dc) +{ + if (dc->depth_buf) + MemSetU32(dc->depth_buf,MAX_I32,dc->width_internal*dc->height); +} + +public U0 DCAllocDepthBuf(CDC *dc) +{ + Free(dc->depth_buf); + dc->depth_buf=MAlloc(dc->width_internal*dc->height*sizeof(I32),dc->mem_task); + DCDepthBufRst(dc); +} + +public CDC *DCCopy(CDC *dc,CTask *task=NULL) +{ + CDC *result; + if (!dc) return NULL; + if (dc->dc_signature!=DCS_SIGNATURE_VAL) + Dbg; + result=MAllocIdentical(dc,task); + GrSetRotMat(result,MAllocIdentical(dc->r,task)); + result->mem_task=task; + result->body=MAllocIdentical(dc->body,task); + return result; +} + +public U0 DCMono(CDC *dc, + I64 quest=COLOR_TRANSPARENT,I64 true_color=0,I64 false_color=COLOR_MONO) +{ + I64 i; + U8 *dst; + if (dc->type==DCT_COLOR8) { + dst=dc->body; + i=dc->width_internal*dc->height; + while (i--) + if (*dst==quest) + *dst++=true_color; + else + *dst++=false_color; + } +} + +public U0 DCColorChg(CDC *dc,I64 src_color,I64 dst_color=COLOR_TRANSPARENT) +{ + I64 i; + U8 *dst; + if (dc->type==DCT_COLOR8) { + dst=dc->body; + i=dc->width_internal*dc->height; + while (i--) + if (*dst==src_color) + *dst++=dst_color; + else + dst++; + } +} + +public U8 *DCSave(CDC *dc,I64 *_size=NULL,Bool compressed=TRUE) +{ //stores to mem + U8 *result,*ptr,*body; + Bool old_preempt; + CArcCompress *ac; + I64 i,j,old_flags=dc->flags; + + if (dc->type==DCT_COLOR8) + i=dc->plane_size; + else + throw(EXCEPT_GRAPHICS,2); + if (compressed) { + ac=CompressBuf(dc->body,i); + j=ac->compressed_size; + body=ac; + } else { + ac=NULL; + j=i; + body=dc->body; + } + + ptr=result=MAlloc(offset(CDC.end_saved_area)- + offset(CDC.start_saved_area)+j); + + old_preempt=Preempt(OFF); //in case it is a screen bitmap + if (compressed) dc->flags|=DCF_COMPRESSED; + dc->flags&=DCF_COMPRESSED; + MemCpy(result,&dc->start_saved_area, + offset(CDC.end_saved_area)- + offset(CDC.start_saved_area)); + dc->flags=old_flags; + Preempt(old_preempt); + + ptr+=offset(CDC.end_saved_area)- + offset(CDC.start_saved_area); + MemCpy(ptr,body,j); + ptr+=j; + + Free(ac); + if (_size) *_size=ptr-result; + return result; +} + +public CDC *DCLoad(U8 *src,I64 *_size=NULL,CTask *task=NULL) +{ //loads from mem + CDC *result; + I64 i; + U8 *ptr=src; + CArcCompress *ac; + if (!task) task=Fs; + result=CAlloc(sizeof(CDC),task); + result->win_task=task; + result->mem_task=task; + MemCpy(&result->start_saved_area,src, + offset(CDC.end_saved_area)- + offset(CDC.start_saved_area)); + ptr+=offset(CDC.end_saved_area)- + offset(CDC.start_saved_area); + if (result->type==DCT_COLOR8) + i=result->plane_size; + else + throw(EXCEPT_GRAPHICS,3); + if (result->flags&DCF_COMPRESSED) { + result->flags&=~DCF_COMPRESSED; + ac=ptr; + result->body=ExpandBuf(ac,task); + ptr+=ac->compressed_size; + } else { + result->body=MAlloc(i,task); + MemCpy(result->body,ptr,i); + } + + result->pen_width=1; + result->r=GrIdent(task); + result->r_norm.u32[1]=1; + result->dc_signature=DCS_SIGNATURE_VAL; + if (_size) *_size=ptr-src; + return result; +} + +public I64 GRAWrite(U8 *filename,CDC *dc) +{ // SparrowOS GRA File + I64 size; + U8 *st=DftExt(filename,"GRA.Z"), + *src=DCSave(dc,&size); + FileWrite(st,src,size); + Free(st); + Free(src); + return size; +} + +public CDC *GRARead(U8 *filename,CTask *task=NULL) +{ // SparrowOS GRA File + CDC *dc=NULL; + U8 *st=DftExt(filename,"GRA.Z"), + *src=FileRead(st); + if (src) + dc=DCLoad(src,NULL,task); + Free(src); + Free(st); + return dc; +} + +#help_index "Graphics/CSprite;Graphics/DCs;Doc/Output" +public U0 DocPutGRAFile(CDoc *doc=NULL,U8 *fname) +{ + CDC *dc=GRARead(fname); + CSprite *elems=DC2Sprite(dc); + DocPutSprite(doc,elems); + Free(elems); + DCDel(dc); +} + +#help_index "Graphics/DCs;Graphics/Screen" +public CDC *DCCaptureScreen(CTask *task=NULL) +{ + CDC *dc; + U8 *dst; + WinMgrSync(2,TRUE); + dc=DCCopy(gr_screen_image,task); + if (dc->type==DCT_COLOR4) { + dc->type=DCT_COLOR8; + dc->plane_size*=8; + dst=MAlloc(dc->plane_size,task); + GrBitMap4ToBitMap8(dst,dc->body,dc->plane_size/2,COLOR_INVALID); + Free(dc->body); + dc->body=dst; + } + return dc; +} + +public I64 GRACaptureScreen(U8 *filename) +{ // SparrowOS GRA File + I64 size; + CDC *dc=DCCaptureScreen; + size=GRAWrite(filename,dc); + DCDel(dc); + return size; +} + +#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"$ +//You should clear the record flag yourself + dc->flags|=DCF_RECORD_EXTENTS; + dc->min_x=MAX_I64; + dc->max_x=MIN_I64; + dc->min_y=MAX_I64; + dc->max_y=MIN_I64; +} diff --git a/SparrowOS/Adam/Gr/GrPrimatives.CPP b/SparrowOS/Adam/Gr/GrPrimatives.CPP new file mode 100644 index 0000000..c42f527 --- /dev/null +++ b/SparrowOS/Adam/Gr/GrPrimatives.CPP @@ -0,0 +1,1497 @@ +public Bool GrLimits(CDC *dc,I64 *left,I64 *top,I64 *right,I64 *bottom,I64 width=0,I64 height=0) +{ //returns screen, not window coordinates + CTask *win_task; + *left=0; + *top=0; + *right=dc->width-1; + *bottom=dc->height-1; + if (dc->flags & DCF_SCREEN_BITMAP) { + win_task=dc->win_task; + if (GR_WIDTH-1<*right) + *right=GR_WIDTH-1; + if (GR_HEIGHT-1<*bottom) + *bottom=GR_HEIGHT-1; + if (win_task->win_pixel_left>*left) + *left=win_task->win_pixel_left; + if (win_task->win_pixel_top>*top) + *top=win_task->win_pixel_top; + if (win_task->win_pixel_right<*right) + *right=win_task->win_pixel_right; + if (win_task->win_pixel_bottom<*bottom) + *bottom=win_task->win_pixel_bottom; + } + *left-=width; + *right+=width; + *top-=height; + *bottom+=height; + return *left<=*right && *top<=*bottom; +} + +Bool DCClipLine(CDC *dc,I64 *x1,I64 *y1,I64 *x2,I64 *y2,I64 width=0,I64 height=0) +{ //also converts window to screen coordinates + I64 left,top,right,bottom; + CTask *win_task; + if (GrLimits(dc,&left,&top,&right,&bottom,width,height)) { + if (dc->flags & DCF_SCREEN_BITMAP) { + win_task=dc->win_task; + *x1+=win_task->win_pixel_left+win_task->win_scroll_x; + *y1+=win_task->win_pixel_top+win_task->win_scroll_y; + *x2+=win_task->win_pixel_left+win_task->win_scroll_x; + *y2+=win_task->win_pixel_top+win_task->win_scroll_y; + } + return ClipLine(x1,y1,x2,y2,left,top,right,bottom); + } else + return FALSE; +} + +public Bool GrPlot(CDC *dc,I64 x,I64 y) +{ //Clipping but No transformation or pen width + I32 *db=dc->depth_buf; + CTask *win_task; + CColorROPU32 old_color; + dc->depth_buf=NULL; + if (dc->brush) { + old_color=dc->color; + if (dc->color.c0.rop!=ROPB_COLLISION) + dc->color.c0.rop=ROPB_MONO; + GrBlot(dc,x,y,dc->brush); + dc->color=old_color; + } else if (dc->flags & DCF_SCREEN_BITMAP) { + win_task=dc->win_task; + x+=win_task->win_pixel_left+win_task->win_scroll_x; + y+=win_task->win_pixel_top+win_task->win_scroll_y; + if (win_task->win_pixel_left<=x<=win_task->win_pixel_right && + win_task->win_pixel_top <=y<=win_task->win_pixel_bottom && + 0<=xwidth && 0<=yheight && + (win_task->next_task==sys_winmgr_task || + dc->flags&DCF_ON_TOP || + !IsPixelCovered0(win_task,x,y))) + GrPlot0(dc,x,y); + } else + if (0<=xwidth && 0<=yheight) + GrPlot0(dc,x,y); + dc->depth_buf=db; + return TRUE; +} + +Bool GrPlot1(CDC *dc,I64 x,I64 y) +{ //Clipping but No transformation or pen width, called with db_z set + CTask *win_task; + CColorROPU32 old_color; + if (dc->brush) { + old_color=dc->color; + if (dc->color.c0.rop!=ROPB_COLLISION) + dc->color.c0.rop=ROPB_MONO; + if (dc->depth_buf) + GrBlot3(dc,x,y,dc->db_z,dc->brush); + else + GrBlot(dc,x,y,dc->brush); + dc->color=old_color; + } else if (dc->flags & DCF_SCREEN_BITMAP) { + win_task=dc->win_task; + x+=win_task->win_pixel_left+win_task->win_scroll_x; + y+=win_task->win_pixel_top+win_task->win_scroll_y; + if (win_task->win_pixel_left<=x<=win_task->win_pixel_right && + win_task->win_pixel_top <=y<=win_task->win_pixel_bottom && + 0<=xwidth && 0<=yheight && + (win_task->next_task==sys_winmgr_task || + dc->flags&DCF_ON_TOP || + !IsPixelCovered0(win_task,x,y))) + GrPlot0(dc,x,y); + } else + if (0<=xwidth && 0<=yheight) + GrPlot0(dc,x,y); + return TRUE; +} + +public I64 GrPeek(CDC *dc,I64 x,I64 y) +//Returns pixel color or -1 if off-screen or covered. +{ //Clipping but No transformation + CTask *win_task; + if (dc->flags & DCF_SCREEN_BITMAP) { + win_task=dc->win_task; + x+=win_task->win_pixel_left+win_task->win_scroll_x; + y+=win_task->win_pixel_top+win_task->win_scroll_y; + if (!(win_task->win_pixel_left<=x<=win_task->win_pixel_right) || + !(win_task->win_pixel_top <=y<=win_task->win_pixel_bottom) || + !(0<=xwidth) || !(0<=yheight) || + win_task->next_task!=sys_winmgr_task && + !(dc->flags&DCF_ON_TOP) && + IsPixelCovered0(win_task,x,y)) + return -1; + } else + if (!(0<=xwidth) || !(0<=yheight)) + return -1; + return GrPeek0(dc,x,y); +} + +/* + +This is an easier to understand +version of the nonrecursive routine below. +I64 GrFloodFillRay(CDC *dc,I64 x,I64 y,I64 z,I32 *db) +{ + I64 result,j,x1,ray_len,ray_len2; + + if (UnusedStk<0x80) + StkOverflow(Fs); + + result=ray_len=GrRayLen(dc,&x,y,z,db); + y--; + j=ray_len; + x1=x; + while (j>0) { + if (ray_len2=GrRayLenMinus(dc,x1,y)) + result+=GrFloodFillRay(dc,x1,y,z,db); + j-=ray_len2+1; + x1-=ray_len2+1; + } + y+=2; + j=ray_len; + x1=x; + while (j>0) { + if (ray_len2=GrRayLenMinus(dc,x1,y)) + result+=GrFloodFillRay(dc,x1,y,z,db); + j-=ray_len2+1; + x1-=ray_len2+1; + } + return result; +} +*/ + +class CFFRay +{ + I64 state,x,y,j,x1,ray_len,ray_len2; +}; + +I64 GrFloodFillRay(CDC *dc,I64 x,I64 y,I64 z,I32 *db) +{//See the above commented-out routine for an easier to understand version. +//Returns cnt of pixels changed + I64 result=0; +//We don't dynamically calculate the size to avoid +//fragmentation of memory. + CFFRay *f_dc=MAlloc(sizeof(CFFRay)*0x80000),*f=f_dc; + f->x=x; + f->y=y; + f->state=0; + do { + nobound_switch (f->state) { + case 0: + f->state++; + result+=f->ray_len=GrRayLen(dc,&f->x,f->y,z,db); + f->y--; + f->j=f->ray_len; + f->x1=f->x; + break; + case 1: + if (f->j>0) { + f->state++; + if (f->ray_len2=GrRayLenMinus(dc,f->x1,f->y)) { + f[1].x=f->x1; + f[1].y=f->y; + f[1].state=0; + f++; + } + } else + f->state+=2; + break; + case 2: + f->state--; + f->j-=f->ray_len2+1; + f->x1-=f->ray_len2+1; + break; + case 3: + f->state++; + f->y+=2; + f->j=f->ray_len; + f->x1=f->x; + break; + case 4: + if (f->j>0) { + f->state++; + if (f->ray_len2=GrRayLenMinus(dc,f->x1,f->y)) { + f[1].x=f->x1; + f[1].y=f->y; + f[1].state=0; + f++; + } + } else + f->state+=2; + break; + case 5: + f->state--; + f->j-=f->ray_len2+1; + f->x1-=f->ray_len2+1; + break; + case 6: + f--; + break; + } + } while (f>=f_dc); + Free(f_dc); + return result; +} + + +public I64 GrFloodFill(CDC *dc,I64 x,I64 y,Bool not_color=FALSE,I64 z=0,I32 *db=NULL) +{ +//Ignore z and db. +//not_color=TRUE means fill up to everything which is not the current color. +//not_color=FALSE means fill all parts equal to the color under the point. +//Returns cnt of pixels changed + I64 result=0,j,old_flags=dc->flags; + CColorROPU32 old_color2=dc->color2; + CDC *old_brush; + if (dc->flags & DCF_DONT_DRAW) //TODO + return 0; + old_brush=dc->brush; + dc->brush=NULL; + if ((j=GrPeek(dc,x,y))>=0 && dc->type==DCT_COLOR8) { + if (not_color) { + dc->color2=dc->color.c0.color; + dc->flags|=DCF_FILL_NOT_COLOR; + } else { + dc->color2=j; + if (dc->color.c1.rop&ROPBF_DITHER) { + if (dc->color2.c0.color==dc->color.c0.color && + dc->color.c0.color==dc->color.c1.color) + goto ff_done; + } else if (dc->color2.c0.color==dc->color.c0.color) + goto ff_done; + dc->flags&=~DCF_FILL_NOT_COLOR; + } + if (not_color && j!=dc->color2 || + !not_color) + result=GrFloodFillRay(dc,x,y,z,db); + } +ff_done: + dc->brush=old_brush; + dc->flags=old_flags; + dc->color2=old_color2; + return result; +} + +public Bool GrPlot3b(CDC *dc,I64 x,I64 y,I64 z) +{ //Clipping and transformation but no pen_width + I64 _x,_y,_z; + Bool was_transform=FALSE,was_symmetry=FALSE; + if (dc->flags & DCF_TRANSFORMATION) { + (*dc->transform)(dc,&x,&y,&z); + dc->flags&=~DCF_TRANSFORMATION; + was_transform=TRUE; + } + if (dc->flags & DCF_SYMMETRY) { + _x=x; _y=y; _z=z; + GrReflect(dc,&_x,&_y,&_z); + dc->flags&=~DCF_SYMMETRY; + dc->db_z=_z; + GrPlot1(dc,_x,_y); + was_symmetry=TRUE; + if (dc->flags&DCF_JUST_MIRROR) + goto gr_done; + } + dc->db_z=z; + GrPlot1(dc,x,y); +gr_done: + if (was_transform) + dc->flags|=DCF_TRANSFORMATION; + if (was_symmetry) + dc->flags|=DCF_SYMMETRY; + return TRUE; +} + +public Bool GrPlot3(CDC *dc,I64 x,I64 y,I64 z) +{ //clipping and transformation and pen width + + I64 _x,_y,_z,i,j,w,dist; + CColorROPU32 old_color=dc->color; + Bool record,was_transform=FALSE,was_symmetry=FALSE; + CTask *win_task; + if (dc->flags & DCF_TRANSFORMATION) { + (*dc->transform)(dc,&x,&y,&z); + dc->flags&=~DCF_TRANSFORMATION; + was_transform=TRUE; + } + if (dc->flags & DCF_SYMMETRY) { + _x=x; _y=y; _z=z; + GrReflect(dc,&_x,&_y,&_z); + dc->flags&=~DCF_SYMMETRY; + GrPlot3(dc,_x,_y,_z); + was_symmetry=TRUE; + if (dc->flags&DCF_JUST_MIRROR) + goto gr_done; + } + w=dc->pen_width>>1; + dc->db_z=z; + if (dc->brush || w<=0) + GrPlot1(dc,x,y); + else if (dc->pen_widthcolor.c0.rop!=ROPB_COLLISION) + dc->color.c0.rop=ROPB_MONO; + if (dc->depth_buf) { + if (dc->color.c1.rop&ROPBF_DITHER) { + dc->color.c1.rop=dc->color.c0.rop; + if (((x-w)^(y-w))&1) { + record=GrBlot3(dc,x-w,y-w,z,gr_odd_pen_brushes[dc->pen_width]); + dc->color.c0=dc->color.c1; + record=GrBlot3(dc,x-w,y-w,z,gr_even_pen_brushes[dc->pen_width]); + } else { + record=GrBlot3(dc,x-w,y-w,z,gr_even_pen_brushes[dc->pen_width]); + dc->color.c0=dc->color.c1; + record=GrBlot3(dc,x-w,y-w,z,gr_odd_pen_brushes[dc->pen_width]); + } + } else { + if (dc->color.c0.rop==ROPB_COLLISION) { + if (dc->color.c0.color!=dc->bkcolor.c0.color && dc->color.c0.color!=COLOR_TRANSPARENT) + record=GrBlot3(dc,x-w,y-w,z,gr_collision_pen_brushes[dc->pen_width]); + else + record=FALSE; + } else + record=GrBlot3(dc,x-w,y-w,z,gr_pen_brushes[dc->pen_width]); + } + } else { + if (dc->color.c1.rop&ROPBF_DITHER) { + dc->color.c1.rop=dc->color.c0.rop; + if (((x-w)^(y-w))&1) { + record=GrBlot(dc,x-w,y-w,gr_odd_pen_brushes[dc->pen_width]); + dc->color.c0=dc->color.c1; + record=GrBlot(dc,x-w,y-w,gr_even_pen_brushes[dc->pen_width]); + } else { + record=GrBlot(dc,x-w,y-w,gr_even_pen_brushes[dc->pen_width]); + dc->color.c0=dc->color.c1; + record=GrBlot(dc,x-w,y-w,gr_odd_pen_brushes[dc->pen_width]); + } + } else { + if (dc->color.c0.rop==ROPB_COLLISION) { + if (dc->color.c0.color!=dc->bkcolor.c0.color && dc->color.c0.color!=COLOR_TRANSPARENT) + record=GrBlot(dc,x-w,y-w,gr_collision_pen_brushes[dc->pen_width]); + else + record=FALSE; + } else + record=GrBlot(dc,x-w,y-w,gr_pen_brushes[dc->pen_width]); + } + } + if (record) { + if (dc->flags & DCF_SCREEN_BITMAP) { + win_task=dc->win_task; + x+=win_task->win_pixel_left+win_task->win_scroll_x; + y+=win_task->win_pixel_top+win_task->win_scroll_y; + } + if (dc->flags & DCF_LOCATE_NEAREST) { + dist=DistI64(x,y,dc->cur_x,dc->cur_y); + if (distnearest_dist) { + dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; + dc->nearest_dist=dist; + } + } + if (dc->flags & DCF_RECORD_EXTENTS) { + if (x-wmin_x) dc->min_x=x-w; + if (y-wmin_y) dc->min_y=y-w; + if (dc->pen_width & 1) { + if (x+w>dc->max_x) dc->max_x=x+w; + if (y+w>dc->max_y) dc->max_y=y+w; + } else { + if (x+w-1>dc->max_x) dc->max_x=x+w-1; + if (y+w-1>dc->max_y) dc->max_y=y+w-1; + } + } + } + } else if (dc->pen_width & 1) { //TODO Dither + for (i=-w;i<=w;i++) + for (j=-w;j<=w;j++) + GrPlot1(dc,x+i,y+j); + } else { + for (i=-w;icolor=old_color; + if (was_transform) + dc->flags|=DCF_TRANSFORMATION; + if (was_symmetry) + dc->flags|=DCF_SYMMETRY; + return TRUE; +} + +Bool GrLinePlot0(CDC *dc,I64 x,I64 y,I64 z) +{ + CTask *win_task=dc->win_task; + if (!(dc->flags & DCF_SCREEN_BITMAP) || + win_task->next_task==sys_winmgr_task || + dc->flags&DCF_ON_TOP || + !IsPixelCovered0(win_task,x,y)) { + dc->db_z=z; + GrPlot0(dc,x,y); + } + return TRUE; +} + +Bool GrLinePlot(CDC *dc,I64 x,I64 y,I64 z) +{ + dc->db_z=z; + GrPlot1(dc,x,y); + return TRUE; +} + +public U0 GrLine(CDC *dc,I64 x1,I64 y1,I64 x2,I64 y2,I64 step=1,I64 start=0) +{ + I32 *db=dc->depth_buf; + dc->depth_buf=NULL; + if (step==1 && !start && !dc->brush && !dc->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,0,x2,y2,0,&GrLinePlot,step,start); + dc->depth_buf=db; +} + +public U0 GrCircle(CDC *dc,I64 cx,I64 cy,I64 radius, + I64 step=1,F64 start_radians=0,F64 len_radians=2*ã) +{ + I32 *db=dc->depth_buf; + dc->depth_buf=NULL; + Circle(dc,cx,cy,0,radius,&GrLinePlot,step,start_radians,len_radians); + dc->depth_buf=db; +} + +public U0 GrEllipse(CDC *dc, + I64 cx,I64 cy, + I64 x_radius,I64 y_radius, + F64 rot_angle=0, + I64 step=1, + F64 start_radians=0, + F64 len_radians=2*ã) +{ + I32 *db=dc->depth_buf; + dc->depth_buf=NULL; + Ellipse(dc,cx,cy,0,x_radius,y_radius,&GrLinePlot,rot_angle,step,start_radians,len_radians); + dc->depth_buf=db; +} + +public U0 GrRegPoly(CDC *dc, + I64 cx,I64 cy, + I64 x_radius,I64 y_radius,I64 sides, + F64 rot_angle=0, + I64 step=1, + F64 start_radians=0, + F64 len_radians=2*ã) +{ + I32 *db=dc->depth_buf; + dc->depth_buf=NULL; + RegPoly(dc,cx,cy,0,x_radius,y_radius,sides, + &GrLinePlot,rot_angle,step,start_radians,len_radians); + dc->depth_buf=db; +} + +public U0 Gr2Bezier(CDC *dc,CD3I32 *ctrl) +{ + Bezier2(dc,ctrl,&GrLinePlot); +} + +public U0 Gr3Bezier(CDC *dc,CD3I32 *ctrl) +{ + Bezier3(dc,ctrl,&GrLinePlot); +} + +public U0 Gr2BSpline(CDC *dc,CD3I32 *ctrl,I64 cnt,Bool closed=FALSE) +{ + BSpline2(dc,ctrl,cnt,&GrLinePlot,closed); +} + +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 + 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; + if (step==1 && !start && !dc->brush && !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); + 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 (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); +gr_done: + if (was_transform) + dc->flags|=DCF_TRANSFORMATION; + if (was_symmetry) + dc->flags|=DCF_SYMMETRY; +} + +#help_index "Graphics/Char;Char/Graphics" + +public Bool GrPutChar3(CDC *dc,I64 x1,I64 y1,I64 z1,U8 ch) +{ //transformation +//DCF_SYMMETRY is silly. + if (dc->flags & DCF_TRANSFORMATION) + (*dc->transform)(dc,&x1,&y1,&z1); + return GrPutChar(dc,x1,y1,ch); +} + +public Bool GrPutS3(CDC *dc,I64 x1,I64 y1,I64 z1,U8 *s) +{ //transformation +//DCF_SYMMETRY is silly. + if (dc->flags & DCF_TRANSFORMATION) + (*dc->transform)(dc,&x1,&y1,&z1); + return GrPutS(dc,x1,y1,s); +} + +public Bool GrVPutS3(CDC *dc,I64 x1,I64 y1,I64 z1,U8 *s) +{ //Vertical text +//transformation +//DCF_SYMMETRY is silly. + if (dc->flags & DCF_TRANSFORMATION) + (*dc->transform)(dc,&x1,&y1,&z1); + return GrVPutS(dc,x1,y1,s); +} + +public U0 GrPrintF3(CDC *dc,I64 x,I64 y,I64 z,U8 *fmt,...) +{ + U8 *buf=SPrintFJoin(NULL,fmt,argc,argv); + GrPutS3(dc,x,y,z,buf); + Free(buf); +} + +public U0 GrVPrintF3(CDC *dc,I64 x,I64 y,I64 z,U8 *fmt,...) +{ //Vertical text + U8 *buf=SPrintFJoin(NULL,fmt,argc,argv); + GrVPutS3(dc,x,y,z,buf); + Free(buf); +} + +#help_index "Graphics" + +public U0 GrEllipse3(CDC *dc, + I64 cx,I64 cy,I64 cz, + I64 x_radius,I64 y_radius, + F64 rot_angle=0, + I64 step=1, + F64 start_radians=0, + F64 len_radians=2*ã) +{ + I64 x,y,z,xx,yy,zz; + F64 m1,a1,m2,a2,s,c; + if (dc->flags & DCF_TRANSFORMATION) { + dc->flags&=~DCF_TRANSFORMATION; + (*dc->transform)(dc,&cx,&cy,&cz); + + c=Cos(rot_angle); + s=Sin(rot_angle); + + x_radius<<=16; + y_radius<<=16; + + xx=0; + yy=0; + zz=0; + (*dc->transform)(dc,&xx,&yy,&zz); + + x=x_radius*c; + y=x_radius*s; + z=0; + (*dc->transform)(dc,&x,&y,&z); + x-=xx; + y-=yy; + z-=zz; + R2P(&m1,&a1,x,y); + + x=-y_radius*s; + y=y_radius*c; + z=0; + (*dc->transform)(dc,&x,&y,&z); + x-=xx; + y-=yy; + z-=zz; + R2P(&m2,&a2,x,y); + m2*=Abs(Sin(a2-a1)); + + Ellipse(dc,cx,cy,cz, + m1/0x10000,m2/0x10000,&GrPlot3,-a1,step,start_radians,len_radians); + dc->flags|=DCF_TRANSFORMATION; + } else + Ellipse(dc,cx,cy,cz,x_radius,y_radius,&GrPlot3,rot_angle,step,start_radians,len_radians); +} + +public U0 GrCircle3(CDC *dc,I64 cx,I64 cy,I64 cz,I64 radius, + I64 step=1,F64 start_radians=0,F64 len_radians=2*ã) +{ //transformation with pen width + if (dc->flags & DCF_TRANSFORMATION) + GrEllipse3(dc,cx,cy,cz,radius,radius,0,step,start_radians,len_radians); + else + Circle(dc,cx,cy,cz,radius,&GrPlot3,step,start_radians,len_radians); +} + +public U0 GrRegPoly3(CDC *dc, + I64 cx,I64 cy,I64 cz, + I64 x_radius,I64 y_radius,I64 sides, + F64 rot_angle=0, + I64 step=1, + F64 start_radians=0, + F64 len_radians=2*ã) +{ + I64 x,y,z,xx,yy,zz; + F64 m1,a1,m2,a2,s,c; + if (dc->flags & DCF_TRANSFORMATION) { + dc->flags&=~DCF_TRANSFORMATION; + (*dc->transform)(dc,&cx,&cy,&cz); + + c=Cos(rot_angle); + s=Sin(rot_angle); + + x_radius<<=16; + y_radius<<=16; + + xx=0; + yy=0; + zz=0; + (*dc->transform)(dc,&xx,&yy,&zz); + + x=x_radius*c; + y=x_radius*s; + z=0; + (*dc->transform)(dc,&x,&y,&z); + x-=xx; + y-=yy; + z-=zz; + R2P(&m1,&a1,x,y); + + x=-y_radius*s; + y=y_radius*c; + z=0; + (*dc->transform)(dc,&x,&y,&z); + x-=xx; + y-=yy; + z-=zz; + R2P(&m2,&a2,x,y); + m2*=Abs(Sin(a2-a1)); + + RegPoly(dc,cx,cy,cz, + m1/0x10000,m2/0x10000,sides,&GrPlot3,-a1,step,start_radians,len_radians); + dc->flags|=DCF_TRANSFORMATION; + } else + RegPoly(dc,cx,cy,cz,x_radius,y_radius,sides,&GrPlot3,rot_angle,step,start_radians,len_radians); +} + +public I64 GrFloodFill3(CDC *dc,I64 x1,I64 y1,I64 z1,Bool not_color=FALSE) +{ //transformation +//not_color=TRUE means fill up to everything which is not the current color. +//not_color=FALSE means fill all parts equal to the color under the point. +//Returns cnt of pixels changed + I64 result,old_flags=dc->flags, + _x,_y,_z; + if (dc->flags & DCF_TRANSFORMATION) { + (*dc->transform)(dc,&x1,&y1,&z1); + dc->flags&=~DCF_TRANSFORMATION; + } + if (dc->flags & DCF_SYMMETRY) { + _x=x1; _y=y1; _z=z1; + GrReflect(dc,&_x,&_y,&_z); + dc->flags&=~DCF_SYMMETRY; + result=GrFloodFill(dc,_x,_y,not_color,_z,dc->depth_buf); + if (dc->flags&DCF_JUST_MIRROR) + goto gr_done; + } + result=GrFloodFill(dc,x1,y1,not_color,z1,dc->depth_buf); +gr_done: + dc->flags=old_flags; + return result; +} + +public U0 GrRect3(CDC *dc,I64 x,I64 y,I64 z,I64 w,I64 h) +{ //Clipping and transformation + I64 x2,y2,z2,x3,y3,z3; + CDC *old_brush=dc->brush; + if (dc->flags & DCF_TRANSFORMATION) { + dc->brush=NULL; + x2=x+w; y2=y; z2=z; + x3=x; y3=y+h; z3=z; + (*dc->transform)(dc,&x,&y,&z); + (*dc->transform)(dc,&x2,&y2,&z2); + (*dc->transform)(dc,&x3,&y3,&z3); + if (!(dc->flags&DCF_JUST_MIRROR) || + !(dc->flags&DCF_SYMMETRY)) + Rect(dc,x,y,z,x2,y2,z2,x3,y3,z3,&GrLinePlot); + if (dc->flags & DCF_SYMMETRY) { + GrReflect(dc,&x,&y,&z); + GrReflect(dc,&x2,&y2,&z2); + GrReflect(dc,&x3,&y3,&z3); + Rect(dc,x,y,z,x2,y2,z2,x3,y3,z3,&GrLinePlot); + } + dc->brush=old_brush; + } else { + if (!(dc->flags&DCF_JUST_MIRROR)|| + !(dc->flags&DCF_SYMMETRY)) { + if (dc->depth_buf) + Rect(dc,x,y,z,x+w,y,z,x,y+h,z,&GrLinePlot); + else + GrRect(dc,x,y,w,h); + } + if (dc->flags & DCF_SYMMETRY) { + dc->brush=NULL; + x2=x+w; y2=y; z2=z; + x3=x; y3=y+h; z3=z; + GrReflect(dc,&x,&y,&z); + GrReflect(dc,&x2,&y2,&z2); + GrReflect(dc,&x3,&y3,&z3); + Rect(dc,x,y,z,x2,y2,z2,x3,y3,z3,&GrLinePlot); + dc->brush=old_brush; + } + } +} + +#help_index "Graphics;Graphics/DCs" + +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"$. + CColorROPU32 old_color=dc->color; + I64 color,reg i,j,w=img->width,h=img->height, + d1,dx1,dy1,dz1, + reg d2,dx2,dy2,dz2, + adx1,ady1,adz1, + adx2,ady2,adz2, + x2,y2,z2,x3,y3,z3, + dw,reg dh,x,y,_x1,_y1,_z1,_x2,_y2,_z2,_x3,_y3,_z3, + last_x,last_y; + Bool first,result=FALSE; + CDC *old_brush=dc->brush; + + if (dc->depth_buf || dc->flags & (DCF_TRANSFORMATION | DCF_SYMMETRY)) { + x2=x1+w; y2=y1; z2=z1; + x3=x1; y3=y1+h; z3=z1; + if (dc->flags & DCF_TRANSFORMATION) { + (*dc->transform)(dc,&x1,&y1,&z1); + (*dc->transform)(dc,&x2,&y2,&z2); + (*dc->transform)(dc,&x3,&y3,&z3); + } + 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); + _x3=x3; _y3=y3; _z3=z3; + GrReflect(dc,&_x3,&_y3,&_z3); + dx1=_x2-_x1; dy1=_y2-_y1; dz1=_z2-_z1; + dx2=_x3-_x1; dy2=_y3-_y1; dz2=_z3-_z1; + adx1=AbsI64(dx1); ady1=AbsI64(dy1); adz1=AbsI64(dz1); + adx2=AbsI64(dx2); ady2=AbsI64(dy2); adz2=AbsI64(dz2); + + if (adx1>=ady1) + d1=adx1>=adz1 ? adx1:adz1; + else + d1=ady1>=adz1 ? ady1:adz1; + if (adx2>=ady2) + d2=adx2>=adz2 ? adx2:adz2; + else + d2=ady2>=adz2 ? ady2:adz2; + + if (AbsI64(d1)!=w ||AbsI64(d2)!=h) { + d1<<=1; + d2<<=1; + } + if (d1) { + dx1=dx1<<32/d1; + dy1=dy1<<32/d1; + dz1=dz1<<32/d1; + } else + goto normal_image; + if (d2) { + dx2=dx2<<32/d2; + dy2=dy2<<32/d2; + dz2=dz2<<32/d2; + } else + goto normal_image; + dc->brush=NULL; + x=0;y=0; + dw=w<<32/d1; + dh=h<<32/d2; + + first=TRUE; + _x1<<=32; _y1<<=32; _z1<<=32; + for (j=0;j<=d1;j++) { + _x2=_x1; _y2=_y1; _z2=_z1; + y=0; + for (i=0;i<=d2;i++) { + if (_x2.i32[1]!=last_x || _y2.i32[1]!=last_y ||first) { + if ((color=GrPeek(img,x.i32[1],y.i32[1]))>=0) { + if (dc->color.c0.rop==ROPB_MONO) { + if (color) { + dc->color=old_color&~ROPF_DITHER; + if (dc->depth_buf) { + dc->db_z=_z2.i32[1]; + GrPlot1(dc,_x2.i32[1],_y2.i32[1]); + } else + GrPlot(dc,_x2.i32[1],_y2.i32[1]); + } + } else { + if (color!=COLOR_TRANSPARENT) { + dc->color=old_color&~COLORROP_NO_ROP0_MASK|color; + if (dc->depth_buf) { + dc->db_z=_z2.i32[1]; + GrPlot1(dc,_x2.i32[1],_y2.i32[1]); + } else + GrPlot(dc,_x2.i32[1],_y2.i32[1]); + } + } + } + } + first=FALSE; + last_x=_x2.i32[1]; last_y=_y2.i32[1]; + _x2+=dx2; _y2+=dy2; _z2+=dz2; + y+=dh; + } + _x1+=dx1; _y1+=dy1; _z1+=dz1; + x+=dw; + } + result=TRUE; +normal_image: + if (dc->flags&DCF_JUST_MIRROR) + goto gr_done; + } + dx1=x2-x1; dy1=y2-y1; dz1=z2-z1; + dx2=x3-x1; dy2=y3-y1; dz2=z3-z1; + adx1=AbsI64(dx1); ady1=AbsI64(dy1); adz1=AbsI64(dz1); + adx2=AbsI64(dx2); ady2=AbsI64(dy2); adz2=AbsI64(dz2); + + if (adx1>=ady1) + d1=adx1>=adz1 ? adx1:adz1; + else + d1=ady1>=adz1 ? ady1:adz1; + if (adx2>=ady2) + d2=adx2>=adz2 ? adx2:adz2; + else + d2=ady2>=adz2 ? ady2:adz2; + if (AbsI64(d1)!=w ||AbsI64(d2)!=h) { + d1<<=1; + d2<<=1; + } + if (d1) { + dx1=dx1<<32/d1; + dy1=dy1<<32/d1; + dz1=dz1<<32/d1; + } else + goto gr_done; + if (d2) { + dx2=dx2<<32/d2; + dy2=dy2<<32/d2; + dz2=dz2<<32/d2; + } else + goto gr_done; + dc->brush=NULL; + x=0;y=0; + dw=w<<32/d1; + dh=h<<32/d2; + + first=TRUE; + x1<<=32; y1<<=32; z1<<=32; + for (j=0;j<=d1;j++) { + x2=x1; y2=y1; z2=z1; + y=0; + for (i=0;i<=d2;i++) { + if (x2.i32[1]!=last_x || y2.i32[1]!=last_y || first) { + if ((color=GrPeek(img,x.i32[1],y.i32[1]))>=0) { + if (dc->color.c0.rop==ROPB_MONO) { + if (color) { + dc->color=old_color&~ROPF_DITHER; + if (dc->depth_buf) { + dc->db_z=z2.i32[1]; + GrPlot1(dc,x2.i32[1],y2.i32[1]); + } else + GrPlot(dc,x2.i32[1],y2.i32[1]); + } + } else { + if (color!=COLOR_TRANSPARENT) { + dc->color=old_color&~COLORROP_NO_ROP0_MASK|color;//COLOR + if (dc->depth_buf) { + dc->db_z=z2.i32[1]; + GrPlot1(dc,x2.i32[1],y2.i32[1]); + } else + GrPlot(dc,x2.i32[1],y2.i32[1]); + } + } + } + } + first=FALSE; + last_x=x2.i32[1]; last_y=y2.i32[1]; + x2+=dx2; y2+=dy2; z2+=dz2; + y+=dh; + } + x1+=dx1; y1+=dy1; z1+=dz1; + x+=dw; + } + result=TRUE; //TODO: check off screen + } else + result=GrBlot(dc,x1,y1,img); +gr_done: + dc->color=old_color; + dc->brush=old_brush; + return result; +} + +#help_index "Graphics" + +public U0 Gr2Bezier3(CDC *dc,CD3I32 *ctrl) +{ + I64 i,x,y,z, + old_flags=dc->flags; + CD3I32 *ctrl2=NULL,*ctrl3=NULL; + if (dc->flags & DCF_TRANSFORMATION) { + ctrl2=MAlloc(sizeof(CD3I32)*3); + for (i=0;i<3;i++) { + x=ctrl[i].x; + y=ctrl[i].y; + z=ctrl[i].z; + (*dc->transform)(dc,&x,&y,&z); + ctrl2[i].x=x; + ctrl2[i].y=y; + ctrl2[i].z=z; + } + dc->flags&=~DCF_TRANSFORMATION; + ctrl=ctrl2; + } + if (dc->flags & DCF_SYMMETRY) { + ctrl3=MAlloc(sizeof(CD3I32)*3); + for (i=0;i<3;i++) { + x=ctrl[i].x; + y=ctrl[i].y; + z=ctrl[i].z; + GrReflect(dc,&x,&y,&z); + ctrl3[i].x=x; + ctrl3[i].y=y; + ctrl3[i].z=z; + } + dc->flags&=~DCF_SYMMETRY; + Bezier2(dc,ctrl3,&GrPlot3); + if (dc->flags & DCF_JUST_MIRROR) + goto gr_done; + } + + Bezier2(dc,ctrl,&GrPlot3); +gr_done: + Free(ctrl2); + Free(ctrl3); + dc->flags=old_flags; +} + +public U0 Gr3Bezier3(CDC *dc,CD3I32 *ctrl) +{ + I64 i,x,y,z, + old_flags=dc->flags; + CD3I32 *ctrl2=NULL,*ctrl3=NULL; + if (dc->flags & DCF_TRANSFORMATION) { + ctrl2=MAlloc(sizeof(CD3I32)*4); + for (i=0;i<4;i++) { + x=ctrl[i].x; + y=ctrl[i].y; + z=ctrl[i].z; + (*dc->transform)(dc,&x,&y,&z); + ctrl2[i].x=x; + ctrl2[i].y=y; + ctrl2[i].z=z; + } + dc->flags&=~DCF_TRANSFORMATION; + ctrl=ctrl2; + } + if (dc->flags & DCF_SYMMETRY) { + ctrl3=MAlloc(sizeof(CD3I32)*4); + for (i=0;i<4;i++) { + x=ctrl[i].x; + y=ctrl[i].y; + z=ctrl[i].z; + GrReflect(dc,&x,&y,&z); + ctrl3[i].x=x; + ctrl3[i].y=y; + ctrl3[i].z=z; + } + dc->flags&=~DCF_SYMMETRY; + Bezier3(dc,ctrl3,&GrPlot3); + if (dc->flags & DCF_JUST_MIRROR) + goto gr_done; + } + + Bezier3(dc,ctrl,&GrPlot3); +gr_done: + Free(ctrl2); + Free(ctrl3); + dc->flags=old_flags; +} + +public U0 Gr2BSpline3(CDC *dc,CD3I32 *ctrl,I64 cnt,Bool closed=FALSE) +{ + I64 i,x,y,z, + old_flags=dc->flags; + CD3I32 *ctrl2=NULL,*ctrl3=NULL; + if (dc->flags & DCF_TRANSFORMATION) { + ctrl2=MAlloc(sizeof(CD3I32)*cnt); + for (i=0;itransform)(dc,&x,&y,&z); + ctrl2[i].x=x; + ctrl2[i].y=y; + ctrl2[i].z=z; + } + dc->flags&=~DCF_TRANSFORMATION; + ctrl=ctrl2; + } + if (dc->flags & DCF_SYMMETRY) { + ctrl3=MAlloc(sizeof(CD3I32)*cnt); + for (i=0;iflags&=~DCF_SYMMETRY; + BSpline2(dc,ctrl3,cnt,&GrPlot3,closed); + if (dc->flags & DCF_JUST_MIRROR) + goto gr_done; + } + + BSpline2(dc,ctrl,cnt,&GrPlot3,closed); +gr_done: + Free(ctrl2); + Free(ctrl3); + dc->flags=old_flags; +} + +public U0 Gr3BSpline3(CDC *dc,CD3I32 *ctrl,I64 cnt,Bool closed=FALSE) +{ + I64 i,x,y,z, + old_flags=dc->flags; + CD3I32 *ctrl2=NULL,*ctrl3=NULL; + if (dc->flags & DCF_TRANSFORMATION) { + ctrl2=MAlloc(sizeof(CD3I32)*cnt); + for (i=0;itransform)(dc,&x,&y,&z); + ctrl2[i].x=x; + ctrl2[i].y=y; + ctrl2[i].z=z; + } + dc->flags&=~DCF_TRANSFORMATION; + ctrl=ctrl2; + } + if (dc->flags & DCF_SYMMETRY) { + ctrl3=MAlloc(sizeof(CD3I32)*cnt); + for (i=0;iflags&=~DCF_SYMMETRY; + BSpline3(dc,ctrl3,cnt,&GrPlot3,closed); + if (dc->flags & DCF_JUST_MIRROR) + goto gr_done; + } + + BSpline3(dc,ctrl,cnt,&GrPlot3,closed); +gr_done: + Free(ctrl2); + Free(ctrl3); + dc->flags=old_flags; +} + +public I64 GrFillTriangle0(CDC *dc,CD3I32 *p1,CD3I32 *p2,CD3I32 *p3) +{ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//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; + //p1 is min x + if (p3->xx) + SwapU64(&p3,&p2); + if (p2->xx) + SwapU64(&p2,&p1); + + //p2 is min y of remainder + if (p3->yy) + SwapU64(&p3,&p2); + + y_min=0; + y_max=dc->height; + if (dc->flags & DCF_SCREEN_BITMAP) { + win_task=dc->win_task; + y_min-=win_task->win_scroll_y+win_task->win_pixel_top; + y_max-=win_task->win_scroll_y+win_task->win_pixel_top; + if (y_max>win_task->win_pixel_bottom-(win_task->win_scroll_y+win_task->win_pixel_top)) + y_max=win_task->win_pixel_bottom-(win_task->win_scroll_y+win_task->win_pixel_top); + } + + if ((dy2=p3->y-p1->y)<0) { + if (dy1=p2->y-p1->y) { + dx1=(p1->x-p2->x)<<32/dy1; + dz1=(p1->z-p2->z)<<32/dy1; + } else { + dx1=0; + dz1=0; + } + dx2=(p1->x-p3->x)<<32/dy2; + dz2=(p1->z-p3->z)<<32/dy2; + x1=x2=p1->x<<32; y=p1->y; z1=z2=p1->z<<32; + if (y+dy2-dy2) goto ft_done; + dy2+=i; + } + if (y>=y_max) { + i=y-y_max+1; + if (i>-dy2) + i=-dy2; + dy2+=i; + y-=i; + x1+=dx1*i; + x2+=dx2*i; + z1+=dz1*i; + z2+=dz2*i; + } + while (dy2++) { + result+=GrHLine(dc,x1.i32[1],x2.i32[1],y,z1.i32[1],z2.i32[1]); + y--; + x1+=dx1; + x2+=dx2; + z1+=dz1; + z2+=dz2; + } + if (dy2=p2->y-p3->y) { + dx2=(p3->x-p2->x)<<32/dy2; + dz2=(p3->z-p2->z)<<32/dy2; + if (y+dy2-dy2) goto ft_done; + dy2+=i; + } + if (y>=y_max) { + i=y-y_max+1; + if (i>-dy2) goto ft_done; + dy2+=i; + y-=i; + x1+=dx1*i; + x2+=dx2*i; + z1+=dz1*i; + z2+=dz2*i; + } + } + while (dy2++<=0) { + result+=GrHLine(dc,x1.i32[1],x2.i32[1],y,z1.i32[1],z2.i32[1]); + y--; + x1+=dx1; + x2+=dx2; + z1+=dz1; + z2+=dz2; + } + } else if ((dy2=p2->y-p1->y)>0) { + if (dy1=p3->y-p1->y) { + dx1=(p3->x-p1->x)<<32/dy1; + dz1=(p3->z-p1->z)<<32/dy1; + } else { + dx1=0; + dz1=0; + } + dx2=(p2->x-p1->x)<<32/dy2; + dz2=(p2->z-p1->z)<<32/dy2; + x1=x2=p1->x<<32; y=p1->y; z1=z2=p1->z<<32; + if (y+dy2>=y_max) { + i=y+dy2-y_max+1; + if (i>dy2) goto ft_done; + dy2-=i; + } + if (ydy2) + i=dy2; + dy2-=i; + y+=i; + x1+=dx1*i; + x2+=dx2*i; + z1+=dz1*i; + z2+=dz2*i; + } + while (dy2--) { + result+=GrHLine(dc,x1.i32[1],x2.i32[1],y,z1.i32[1],z2.i32[1]); + y++; + x1+=dx1; + x2+=dx2; + z1+=dz1; + z2+=dz2; + } + if (dy2=p3->y-p2->y) { + dx2=(p3->x-p2->x)<<32/dy2; + dz2=(p3->z-p2->z)<<32/dy2; + if (y+dy2>=y_max) { + i=y+dy2-y_max+1; + if (i>dy2) goto ft_done; + dy2-=i; + } + if (ydy2) goto ft_done; + dy2-=i; + y+=i; + x1+=dx1*i; + x2+=dx2*i; + z1+=dz1*i; + z2+=dz2*i; + } + } + while (dy2-->=0) { + result+=GrHLine(dc,x1.i32[1],x2.i32[1],y,z1.i32[1],z2.i32[1]); + y++; + x1+=dx1; + x2+=dx2; + z1+=dz1; + z2+=dz2; + } + } else { + if (dy1=p2->y-p1->y) { + dx1=(p2->x-p1->x)<<32/dy1; + dz1=(p2->z-p1->z)<<32/dy1; + if (dy2=p2->y-p3->y) { + dx2=(p2->x-p3->x)<<32/dy2; + dz2=(p2->z-p3->z)<<32/dy2; + } else { + dx2=0; + dz2=0; + } + x1=x2=p2->x<<32; y=p2->y; z1=z2=p2->z<<32; + if (y-dy1) + i=-dy1; + dy1+=i; + y+=i; + x1+=dx1*i; + x2+=dx2*i; + z1+=dz1*i; + z2+=dz2*i; + } + while (dy1++<=0) { + if (yy-p1->y) { + dx1=(p1->x-p3->x)<<32/dy1; + dz1=(p1->z-p3->z)<<32/dy1; + if (dy2=p3->y-p2->y) { + dx2=(p2->x-p3->x)<<32/dy2; + dz2=(p2->z-p3->z)<<32/dy2; + } else { + dx2=0; + dz2=0; + } + x1=x2=p3->x<<32; y=p3->y; z1=z2=p3->z<<32; + if (y-dy1dy1) goto ft_done; + dy1-=i; + } + if (y>=y_max) { + i=y-y_max+1; + if (i>dy1) goto ft_done; + dy1-=i; + y-=i; + x1+=dx1*i; + x2+=dx2*i; + z1+=dz1*i; + z2+=dz2*i; + } + while (dy1-->=0) { + result+=GrHLine(dc,x1.i32[1],x2.i32[1],y,z1.i32[1],z2.i32[1]); + y--; + x1+=dx1; + x2+=dx2; + z1+=dz1; + z2+=dz2; + } + } + } +ft_done: + return result; +} + +public I64 GrFillPoly3(CDC *dc,I64 n,CD3I32 *poly) +{ //Must be convex. +//Returns cnt of pixels changed + CD3I32 tri[3]; + I64 i,j,x0,y0,z0,x1,y1,z1,x2,y2,z2,result=0; + if (n<3) return 0; + if (dc->flags & DCF_SYMMETRY) { + for (i=1;iflags&DCF_TRANSFORMATION) + (*dc->transform)(dc,&x0,&y0,&z0); + GrReflect(dc,&x0,&y0,&z0); + tri[0].x=x0; tri[0].y=y0; tri[0].z=z0; + } + + j++; + if (i==1) { + x1=poly[j].x; y1=poly[j].y; z1=poly[j].z; + if (dc->flags&DCF_TRANSFORMATION) + (*dc->transform)(dc,&x1,&y1,&z1); + GrReflect(dc,&x1,&y1,&z1); + } else { + x1=x2; y1=y2; z1=z2; + } + tri[1].x=x1; tri[1].y=y1; tri[1].z=z1; + + j++; + x2=poly[j].x; y2=poly[j].y; z2=poly[j].z; + if (dc->flags&DCF_TRANSFORMATION) + (*dc->transform)(dc,&x2,&y2,&z2); + GrReflect(dc,&x2,&y2,&z2); + tri[2].x=x2; tri[2].y=y2; tri[2].z=z2; + + result+=GrFillTriangle0(dc,&tri[0],&tri[1],&tri[2]); + } + } + if (dc->flags&DCF_JUST_MIRROR) + return result; + for (i=1;iflags&DCF_TRANSFORMATION) + (*dc->transform)(dc,&x0,&y0,&z0); + tri[0].x=x0; tri[0].y=y0; tri[0].z=z0; + } + + j++; + if (i==1) { + x1=poly[j].x; y1=poly[j].y; z1=poly[j].z; + if (dc->flags&DCF_TRANSFORMATION) + (*dc->transform)(dc,&x1,&y1,&z1); + } else { + x1=x2; y1=y2; z1=z2; + } + tri[1].x=x1; tri[1].y=y1; tri[1].z=z1; + + j++; + x2=poly[j].x; y2=poly[j].y; z2=poly[j].z; + if (dc->flags&DCF_TRANSFORMATION) + (*dc->transform)(dc,&x2,&y2,&z2); + tri[2].x=x2; tri[2].y=y2; tri[2].z=z2; + + result+=GrFillTriangle0(dc,&tri[0],&tri[1],&tri[2]); + } + return result; +} + +#help_index "Graphics/Mesh" + +public I64 Gr3Mesh(CDC *dc,I64 vertex_cnt,CD3I32 *p,I64 triangle_cnt,CMeshTri *tri) +{ +//Returns cnt of pixels changed + CColorROPU32 old_color=dc->color; + I64 i,x,y,z,result=0; + CD3I32 *pt,*pt_sym,*p_sym,*dst; + CMeshTri *tri_sym=tri; + if (dc->flags&DCF_TRANSFORMATION) { + dst=pt=MAlloc(sizeof(CD3I32)*vertex_cnt); + for (i=0;ix; y=p->y; z=p->z; + (*dc->transform)(dc,&x,&y,&z); + dst->x=x; dst->y=y; dst->z=z; + } + p=pt; + } else + pt=NULL; + + if (dc->flags & DCF_SYMMETRY) { + dst=pt_sym=MAlloc(sizeof(CD3I32)*vertex_cnt); + p_sym=p; + for (i=0;ix; y=p_sym->y; z=p_sym->z; + GrReflect(dc,&x,&y,&z); + dst->x=x; dst->y=y; dst->z=z; + } + p_sym=pt_sym; + for (i=0;ilighting)(dc,&p_sym[tri_sym->nums[0]],&p_sym[tri_sym->nums[2]],&p_sym[tri_sym->nums[1]],tri_sym->color); + result+=GrFillTriangle0(dc,&p_sym[tri_sym->nums[0]],&p_sym[tri_sym->nums[2]],&p_sym[tri_sym->nums[1]]); + } + Free(pt_sym); + if (dc->flags&DCF_JUST_MIRROR) + goto mesh_done; + } + for (i=0;ilighting)(dc,&p[tri->nums[0]],&p[tri->nums[1]],&p[tri->nums[2]],tri->color); + result+=GrFillTriangle0(dc,&p[tri->nums[0]],&p[tri->nums[1]],&p[tri->nums[2]]); + } +mesh_done: + dc->color=old_color; + Free(pt); + return result; +} + +#help_index "Graphics" diff --git a/SparrowOS/Adam/Gr/GrScreen.CPP b/SparrowOS/Adam/Gr/GrScreen.CPP new file mode 100644 index 0000000..00e8880 --- /dev/null +++ b/SparrowOS/Adam/Gr/GrScreen.CPP @@ -0,0 +1,785 @@ +#help_index "Graphics/DCs;Graphics/Screen" +public CDC *gr_screen_image; //This is read only + +#help_index "Graphics/DCs" +public CDC *gr_dc=NULL, //This is updated every refresh + *gr_dc_cache, + *gr_dc1=NULL, + *gr_dc2=NULL; +CDC *gr_zoomed_dc; +U16 *gr_win_uncovered_bitmap=NULL,gr_highest_uncovered; + +U16 *gr_vga_text_cache; + +public U0 DCFill(CDC *dc=NULL,CColorROPU32 val=COLOR_TRANSPARENT) +{ + if (!dc) dc=gr_dc2; + nobound_switch (dc->type) { + case DCT_COLOR4: + MemSet(dc->body,val,(dc->width_internal*dc->height)>>1); + break; + case DCT_COLOR8: + MemSet(dc->body,val,dc->width_internal*dc->height); + break; + } +} + +public U0 DCClear(CDC *dc=NULL) +{ + if (!dc) dc=gr_dc2; + DCFill(dc,0); +} + +#help_index "Graphics/Screen" +public U0 (*fp_final_screen_update)(CDC *dc)=NULL; +public U0 (*fp_wall_paper)(CTask *task)=NULL; + +#help_index "Graphics/Screen;Windows" + + + +U0 WinZBufFill(CTask *task) +{ //Not public + I64 y,t,dc,l,r,w; + if (!Bt(&task->display_flags,DISPLAYf_NO_BORDER)) { + t= task->win_top-1>0 + ? task->win_top-1 : 0, + dc= task->win_bottom+1win_bottom+1 : TEXT_ROWS-1, + l= task->win_left-1>0 + ? task->win_left-1 : 0, + r= task->win_right+1win_right+1 : TEXT_COLS-1; + } else { + t= task->win_top>0 + ? task->win_top : 0, + dc= task->win_bottomwin_bottom : TEXT_ROWS-1, + l= task->win_left>0 + ? task->win_left : 0, + r= task->win_rightwin_right : TEXT_COLS-1; + } + t=LimitI64(t,0,TEXT_ROWS-1); + dc=LimitI64(dc,t,TEXT_ROWS-1); + l=LimitI64(l,0,TEXT_COLS-1); + r=LimitI64(r,l,TEXT_COLS-1); + if (w=r-l+1) + for (y=t;y<=dc;y++) + MemSetU16(gr_win_z_buf(U8 *)+(y*TEXT_COLS+l)*sizeof(U16), + task->win_z_num,w); +} + +public U0 WinZBufUpdate() +{ //You might have to call this if you are doing graphics outside + //the window mgr callback routines. Call it if, for example, + //a pop-up window closes and you need to refresh before graphics. + I64 i,z=1; + U16 *ptr; + CTask *task,*task1; + Bool old_preempt=Preempt(OFF); + if (gr_win_z_buf) { + LBtr(&sys_semas[SYS_SEMA_UPDATE_WIN_Z_BUF],0); + task1=task=sys_winmgr_task; + do { + if (!TaskValidate(task)) break; + if (Bt(&task->display_flags,DISPLAYf_SHOW)) { + task->win_z_num=z++; + WinZBufFill(task); + } + task=task->next_task; + } while (task!=task1 && z<0x10000); + + MemSet(gr_win_uncovered_bitmap,0,(gr_highest_uncovered+7)>>3+1); + gr_highest_uncovered=z-1; + for (ptr=gr_win_z_buf,i=TEXT_ROWS*TEXT_COLS;i;i--) + Bts(gr_win_uncovered_bitmap,*ptr++); + } + Preempt(old_preempt); +} + +#help_index "Graphics/Char;Char" +public U0 WinTextFill(I64 d,CTask *task=NULL) +{ + if (!task) task=Fs; + if (!TaskValidate(task)) return; + I64 y,w, + t= task->win_top>0 + ? task->win_top : 0, + dc= task->win_bottomwin_bottom : TEXT_ROWS-1, + l= task->win_left>0 + ? task->win_left : 0, + r= task->win_rightwin_right : TEXT_COLS-1; + if (w=r-l+1) + for (y=t;y<=dc;y++) + MemSetU32(gr_text_base(U8 *)+(y*TEXT_COLS+l)*sizeof(U32), + d,w); +} + +public U0 WinTextClear(CTask *task=NULL) +{ + if (!task) task=Fs; + if (!TaskValidate(task)) return; + WinTextFill(task->text_attr<<8,task); +} + +public U0 SetWinBkColor(I64 c,CTask *task=NULL) +{ + if (!task) task=Fs; + if (!TaskValidate(task)) return; + task->text_attr=task->text_attr&0x0F | c<<4; + WinTextFill(c<<12,task); +} + +#help_index "Graphics/Color" +public I32 gr_rainbow_10[10]= +{ +BLACK,BROWN,RED,LTRED,YELLOW, +GREEN,BLUE,PURPLE,LTGRAY,WHITE +}; + +DefineListLoad("ST_RAINBOW_10", +"BLACK\0BROWN\0RED\0LTRED\0YELLOW\0" +"GREEN\0BLUE\0PURPLE\0LTGRAY\0WHITE\0"); + +U0 SetVGAPalette4Indices() +{//4-bit (16 color) +/*There is a level of indirection we wish to identity map. +This sets the 16-colors to use +the first 16 DAC rgb entries, so +we never need to worry about indexes, +just DAC palette settings. +*/ + I64 i; + if (text_mode) return; + PushFD; + Cli; + while (LBts(&sys_semas[SYS_SEMA_VGA],0)) + Yield; + InU8(VGA_INPUT_STAT); //Rsts attr index/data + for (i=0;i<16;i++) { + OutU8(VGA_ATTR_INDEX,i); + OutU8(VGA_ATTR_DATA_WRITE,i); + } + OutU8(VGA_ATTR_INDEX,0x20); + OutU8(VGA_ATTR_DATA_WRITE,0); //Dummy write + InU8(VGA_INPUT_STAT); //Rsts attr index/data + LBtr(&sys_semas[SYS_SEMA_VGA],0); + PopFD; +} + +public U0 SetVGAPaletteColor(I64 color_num,CBGR bgr) +{ //6-bits per r,dc and g + if (text_mode) return; + PushFD; + Cli; + while (LBts(&sys_semas[SYS_SEMA_VGA],0)) + Yield; + OutU8(VGA_PALETTE_MASK,0xFF); + OutU8(VGA_REG_WRITE,color_num); + OutU8(VGA_PALETTE_DATA,bgr.r>>2); + OutU8(VGA_PALETTE_DATA,bgr.g>>2); + OutU8(VGA_PALETTE_DATA,bgr.b>>2); + LBtr(&sys_semas[SYS_SEMA_VGA],0); + PopFD; +} + +public CBGR GetVGAPaletteColor(I64 color_num) +{ //6-bits per r,dc and g + CBGR result=0; + if (text_mode) return 0; + PushFD; + Cli; + while (LBts(&sys_semas[SYS_SEMA_VGA],0)) + Yield; + OutU8(VGA_PALETTE_MASK,0xFF); + OutU8(VGA_REG_READ,color_num); + result.r=InU8(VGA_PALETTE_DATA)<<2; + result.g=InU8(VGA_PALETTE_DATA)<<2; + result.b=InU8(VGA_PALETTE_DATA)<<2; + LBtr(&sys_semas[SYS_SEMA_VGA],0); + PopFD; + return result; +} + +public CBGR vga_palette4_std[16]={ +0x000000,0x0000AA,0x00AA00,0x00AAAA, +0xAA0000,0xAA00AA,0xAA5500,0xAAAAAA, +0x555555,0x5555FF,0x55FF55,0x55FFFF, +0xFF5555,0xFF55FF,0xFFFF55,0xFFFFFF}; + +public CBGR vga_palette4_gray[16]={ +0x000000,0x111111,0x222222,0x333333, +0x444444,0x555555,0x666666,0x777777, +0x888888,0x999999,0xAAAAAA,0xBBBBBB, +0xCCCCCC,0xDDDDDD,0xEEEEEE,0xFFFFFF}; + +public U0 GetVGAPalette4(CBGR *bgr) +{//4-bit (16 color) + I64 i; + for (i=0;i<16;i++) + bgr[i]=GetVGAPaletteColor(i); +} + +public U0 SetVGAPalette4(CBGR *bgr) +{//4-bit (16 color) + I64 i; + for (i=0;i<16;i++) + SetVGAPaletteColor(i,bgr[i]); +} + +public U0 SetStdPalette() +{ + SetVGAPalette4(vga_palette4_std); +} + +#help_index "Graphics/Screen" + +#define GR_NUM_PEN_BRUSHES 64 +CDC *gr_pen_brushes[GR_NUM_PEN_BRUSHES], + *gr_collision_pen_brushes[GR_NUM_PEN_BRUSHES], + *gr_even_pen_brushes[GR_NUM_PEN_BRUSHES], + *gr_odd_pen_brushes[GR_NUM_PEN_BRUSHES]; + + +#define GR_MAX_SCREEN_ZOOM 8 +U8 *gr_screen_zoom_tables[GR_MAX_SCREEN_ZOOM+1]; +I64 gr_screen_zoom=1,grsx=0,grsy=0; + +//When zoomed, this keeps the mouse centered. +public Bool gr_continuous_scroll=FALSE; + + +#define GR_REFRESH_LOG_CNT 16 +F64 gr_refresh_time_stamps[GR_REFRESH_LOG_CNT]; +I64 gr_refresh_ts_ptr=0; + +U0 GrSetUpTables() +{ + CDC *dc; + I64 i,j,k,l,m,x,y,rr; + U8 *dst; + + k=0; + for (i=0;i<256;i++) + for (j=0;j<8;j++) + if (Bt(&i,j)) + gr_1_to_8_bits(U8 *)[k++]=0xFF; + else + gr_1_to_8_bits(U8 *)[k++]=0x00; + k=0; + for (i=0;i<256;i++) + for (j=0;j<8;j++) + gr_1_to_8_colors(U8 *)[k++]=i; + + for (i=0;icolor=COLOR_MONO; + rr=k*k; + for (y=1;ycolor=COLOR_INVALID; + rr=k*k; + for (y=1;ycolor=COLOR_MONO; + rr=k*k; + for (y=1;ycolor=COLOR_MONO; + rr=k*k; + for (y=1;y>3); + MemSet(gr_screen_image->body,0,GR_WIDTH*GR_HEIGHT>>1); + } + for (i=1;i<=GR_MAX_SCREEN_ZOOM;i++) { + dst=gr_screen_zoom_tables[i]=MAlloc(256*i); + for (j=0;j<256;j++) { + m=0; + for (k=0;k<8;k++) { + if (Bt(&j,k)) { + for (l=0;lflags|=DCF_SCREEN_BITMAP; + gr_dc_cache=DCNew(DCT_COLOR8,GR_WIDTH,GR_HEIGHT); + + gr_dc2=DCNew(DCT_COLOR8,GR_WIDTH,GR_HEIGHT); + gr_dc2->flags|=DCF_SCREEN_BITMAP; + DCFill; + + gr_dc1=DCNew(DCT_COLOR4,GR_WIDTH,GR_HEIGHT); + gr_dc1->flags|=DCF_SCREEN_BITMAP; + + gr_screen_image=DCNew(DCT_COLOR4,GR_WIDTH,GR_HEIGHT); + gr_zoomed_dc =DCNew(DCT_COLOR4,GR_WIDTH,GR_HEIGHT); + gr_zoomed_dc->flags|=DCF_SCREEN_BITMAP; + + GrSetUpTables; + + WinZBufUpdate; +} + +U0 GrUpdateWins() +{ //Only called by WinMgr + I64 i; + CTask *task,*task1; + CD3I64 saved_scroll; + CDC *dc; + Bool old_preempt=Preempt(OFF); + try { + refresh_ode_time=0; + if (Bt(&sys_semas[SYS_SEMA_UPDATE_WIN_Z_BUF],0)) + WinZBufUpdate; + task1=task=sys_winmgr_task; + do { + if (!TaskValidate(task)) + break; + sys_task_being_screen_updated=task; + Preempt(old_preempt); + ODEsUpdate(task); + Preempt(OFF); + if (!TaskValidate(task)) + break; + if (Bt(&task->display_flags,DISPLAYf_SHOW) && + Bt(gr_win_uncovered_bitmap,task->win_z_num)) { + try { + if (!Bt(&task->display_flags,DISPLAYf_NO_BORDER)) + DrawTaskBorder(task); + WinTextClear(task); + Preempt(old_preempt); + if (task==sys_winmgr_task) { + if (fp_wall_paper) + (*fp_wall_paper)(task); + } else { + if (!(task->win_inhibit&WIF_DOC)) + DocUpdateTaskDocs(task); + } + if (TaskValidate(task)) { + if (task->draw_it) { + dc=DCAlias(gr_dc,task); + (*task->draw_it)(task,dc); + DCDel(dc); + } + if (TaskValidate(task)) { + Preempt(OFF); + WinScrollNull(task,&saved_scroll); + DrawCtrls(task); + WinScrollRestore(task,&saved_scroll); + } + } + } catch { + if (task!=Fs && TaskValidate(task)) { + LBtr(&task->display_flags,DISPLAYf_SHOW); + "Exception in WinMgr: DrawIt\n"; + PutExcept; + Sleep(3000); + VGAFlush; + Fs->catch_except=TRUE; + } + } + } + if (!TaskValidate(task)) + break; + task=task->next_task; + } while (task!=task1); + + for (i=1;iwin_inhibit,WIf_ODE); + "Exception in WinMgr: ODE\n"; + PutExcept; + Sleep(3000); + VGAFlush; + Fs->catch_except=TRUE; + } + if (!TaskValidate(task)) + break; + task=task->next_task; + } while (task!=task1); + } + } catch { + PutExcept; + Dbg("Exception in WinMgr"); + } + + last_refresh_ode_time=refresh_ode_time; + ode_allocated_factor=LowPass1(0.1,ode_allocated_factor, + Limit(Gs->idle_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; + 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)]); + Preempt(old_preempt); +} + +U0 GrFixZoomScale() +{ + gr_screen_zoom=LimitI64(gr_screen_zoom,1,GR_MAX_SCREEN_ZOOM); + if (gr_screen_zoom==1) { + grsx=0; + grsy=0; + } else { + grsx=LimitI64(grsx,0,GR_WIDTH-GR_WIDTH/gr_screen_zoom)&~7; + grsy=LimitI64(grsy,0,GR_HEIGHT-GR_HEIGHT/gr_screen_zoom); + } +} + +public U0 GrScaleZoom(F64 scale) +{ + Bool old_preempt=Preempt(OFF); + F64 s=gr_screen_zoom; + gr_screen_zoom=gr_screen_zoom*scale; + GrFixZoomScale; + s/=gr_screen_zoom; + ipx_scale*=s; + ipy_scale*=s; + ipz_scale*=s; + ipx_offset=ipx-(ipx-ipx_offset)*s; + ipy_offset=ipy-(ipy-ipy_offset)*s; + ipz_offset=ipz-(ipz-ipz_offset)*s; + grsx=ipx-gr_zoomed_dc->width >>1/gr_screen_zoom; + grsy=ipy-gr_zoomed_dc->height>>1/gr_screen_zoom; + GrFixZoomScale; + Preempt(old_preempt); +} + +public U0 GrZoomIn() +{ + GrScaleZoom(2.0); +} + +public U0 GrZoomOut() +{ + GrScaleZoom(0.5); +} + +U0 CtrlAltZ(I64 sc) +{ + if (sc&SCF_SHIFT) + GrZoomOut; + else + GrZoomIn; +} +SetCtrlAltLetCB('Z',&CtrlAltZ,"Sys/Zoom In or Out"); + +U0 GrZoomInScreen() +{ + GrFixZoomScale; + I64 plane,row,col,k,l, + d2=gr_zoomed_dc->width>>3/gr_screen_zoom, + d4=gr_zoomed_dc->width_internal>>3, + d5=d4-d2*gr_screen_zoom, + d3=gr_zoomed_dc->height/gr_screen_zoom, + d6=(gr_zoomed_dc->height-d3)*gr_dc1->width_internal>>3, + d7=gr_zoomed_dc->height%gr_screen_zoom*d4; + U8 *src,*src2,*dst,*src3,*map=gr_screen_zoom_tables[gr_screen_zoom]; + + src=gr_dc1->body+grsx>>3+grsy*gr_dc1->width_internal>>3; + dst=gr_zoomed_dc->body; + for (plane=1;plane<0x10;plane<<=1) { + row=d3; + while (row--) { + k=gr_screen_zoom; + while (k--) { + src2=src; + col=d2; + while (col--) { + src3=&map[*src2++]; + l=gr_screen_zoom; + while (l--) { + *dst++=*src3; + src3+=256; + } + } + l=d5; + while (l--) + *dst++=0; + } + src+=d4; + } + l=d7; + while (l--) + *dst++=0; + src+=d6; + } +} + +U0 GrUpdateBackgroundOfText() +{ + I64 reg RSI *dst=gr_dc->body,reg R13 c,row,col,,cur_ch, + reg R12 w1=gr_dc->width_internal,reg R10 w2=-7*w1+8,w3=7*w1, + reg *my_1_to_8_colors=gr_1_to_8_colors; + U32 reg *src=gr_text_base; +$HL,1$ Bool blink_flag=Blink; + nounusedwarn w2; + for (row=TEXT_ROWS;row--;) { + for (col=TEXT_COLS;col--;) { + cur_ch=*src++; + if (cur_ch & (DOCET_SELECTED | DOCET_INVERT | DOCET_BLINK)) { + if (cur_ch & DOCET_SELECTED) + cur_ch.u8[1]=cur_ch.u8[1]^0xFF; + if (cur_ch & DOCET_INVERT) + cur_ch.u8[1]=cur_ch.u8[1]<<4+cur_ch.u8[1]>>4; + if (cur_ch & DOCET_BLINK) + if (blink_flag) + cur_ch.u8[1]= cur_ch.u8[1]<<4+ cur_ch.u8[1]>>4; + } + c=my_1_to_8_colors[cur_ch.u8[1]>>4]; +asm { + MOV U64 [RSI],R13 + ADD RSI,R12 + MOV U64 [RSI],R13 + ADD RSI,R12 + MOV U64 [RSI],R13 + ADD RSI,R12 + MOV U64 [RSI],R13 + ADD RSI,R12 + MOV U64 [RSI],R13 + ADD RSI,R12 + MOV U64 [RSI],R13 + ADD RSI,R12 + MOV U64 [RSI],R13 + ADD RSI,R12 + MOV U64 [RSI],R13 + ADD RSI,R10 +} + } + dst(U8 *)+=w3; + } +} + +//$AN,"ExtScreenCodes","ExtScreenCodes"$ +// Bits 0-7 ASCII (Screen Code) +// Bits 8-11 Foreground color +// Bits 12-15 Background color +// Bits 16-20 Signed X pos shift val +// Bits 21-25 Signed Y pos shift val +// Bit 28 Blink +// Bit 29 Inverted (Swap foreground and background) +// Bit 30 Selected (XOR colors with FF) +// Bit 31 Underline +U0 GrUpdateForegroundOfText() +{ + U32 *src=gr_text_base; + I64 i,j,cur_ch,reg *dst=gr_dc->body, + reg w1=gr_dc->width_internal,w2=7*w1, + row,col; + U8 *dst_start=gr_dc->body,*dst_end=dst_start+w1*gr_dc->height-7*w1-8; + Bool blink_flag=Blink; + for (row=TEXT_ROWS;row--;) { + for (col=TEXT_COLS;col--;) { + cur_ch=*src++; + if (cur_ch & (DOCET_UNDERLINE | DOCET_SELECTED | DOCET_INVERT | DOCET_BLINK)) { + if (cur_ch & DOCET_SELECTED) + cur_ch.u8[1]=cur_ch.u8[1]^0xFF; + if (cur_ch & DOCET_INVERT) + cur_ch.u8[1]=cur_ch.u8[1]<<4+cur_ch.u8[1]>>4; + if (cur_ch & DOCET_BLINK) + if (blink_flag) + cur_ch.u8[1]= cur_ch.u8[1]<<4+cur_ch.u8[1]>>4; + } + if (i=cur_ch.u16[1]&0x3FF) { + j=i&0x1F; + if (j&0x10) j|=~0x1F; + i>>=5; + if (i&0x10) i|=~0x1F; + i=w1*i+j; + if (dst_start<=dst(U8 *)+ibody,*b0=dc->body; + I64 reg j,reg k,reg d0=img->width_internal*img->height; + for (k=0;k>4; + if (cur_ch & DOCET_BLINK) + if (blink_flag) + cur_ch.u8[1]= cur_ch.u8[1]<<4+ cur_ch.u8[1]>>4; + cur_ch&=0x7FFF; + *dst++=*dst2++=cur_ch; + } + } else { + i=d0; + while (i--) { + cur_ch=*src++; + if (cur_ch & DOCET_SELECTED) + cur_ch.u8[1]=cur_ch.u8[1]^0xFF; + if (cur_ch & DOCET_INVERT) + cur_ch.u8[1]=cur_ch.u8[1]<<4+cur_ch.u8[1]>>4; + if (cur_ch & DOCET_BLINK) + if (blink_flag) + cur_ch.u8[1]= cur_ch.u8[1]<<4+ cur_ch.u8[1]>>4; + cur_ch&=0x7FFF; + if (*dst2!=cur_ch) + *dst++=*dst2++=cur_ch; + else { + dst++; + dst2++; + } + } + } +} + +U0 GrUpdateVGAGraphics() +{ + I64 row,plane,d2=gr_zoomed_dc->width_internal>>5; + U32 *src,*dst,*dst2; + //Update Graphic Card + if (gr_screen_zoom==1) + src=gr_dc1->body; + else { + GrZoomInScreen; + src=gr_zoomed_dc->body; + } + dst2=gr_screen_image->body; + if (LBtr(&sys_semas[SYS_SEMA_FLUSH_VGA_IMAGE],0)) { + for (plane=1;plane<0x10;plane<<=1) { + OutU8(VGA_SC_INDEX,VGA_MAP_MASK); + OutU8(VGA_SC_DATA,plane); + dst=VGA_GRAPHIC_MEM_BASE; + row=gr_zoomed_dc->height; + while (row--) + GrUpdateLine32FlushCache(&dst,&src,d2,&dst2); + } + } else { + for (plane=1;plane<0x10;plane<<=1) { + OutU8(VGA_SC_INDEX,VGA_MAP_MASK); + OutU8(VGA_SC_DATA,plane); + dst=VGA_GRAPHIC_MEM_BASE; + row=gr_zoomed_dc->height; + while (row--) + GrUpdateLine32(&dst,&src,d2,&dst2); + } + } +} + +U0 GrUpdateScreen() +{ + CDC *dc; + Bool old_preempt=IsPreempt; + if (!IsSysDeterministic) + Preempt(ON); + + if (text_mode) + GrUpdateWins; + else { + GrUpdateBackgroundOfText; + GrUpdateForegroundOfText; + GrUpdateWins; + DCBlotColor8(gr_dc,gr_dc2); + } + + dc=DCAlias(gr_dc,Fs); + dc->flags|=DCF_ON_TOP; + if (fp_final_screen_update) + (*fp_final_screen_update)(dc); + DCDel(dc); + + if (text_mode) + GrUpdateTextModeText; + else { + DCBlotColor4(gr_dc1->body,gr_dc->body,gr_dc_cache->body, + gr_dc->height*gr_dc->width_internal>>3); + GrUpdateVGAGraphics; + } + Preempt(old_preempt); +} + +#help_index "Graphics" + diff --git a/SparrowOS/Adam/Gr/GrSpritePlot.CPP b/SparrowOS/Adam/Gr/GrSpritePlot.CPP new file mode 100644 index 0000000..52b3615 --- /dev/null +++ b/SparrowOS/Adam/Gr/GrSpritePlot.CPP @@ -0,0 +1,523 @@ +#help_index "Graphics/CSprite" +/* +$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 +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 +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,"gr_sprite_base_size","MN:gr_sprite_base_size"$. + +To get familiar, type on sprite in +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 +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) +{ + CSprite *tempg=elems-offset(CSprite.start); + I64 i,j,k,x1,y1,z1,x2,y2, + cur_sprite_elem_num=0,*old_r,*r2, + old_flags=dc->flags, + old_pen_width=dc->pen_width; + I32 *ptr; + CColorROPU32 old_color=dc->color; + CDC *img; + CD3I32 *p; + CGrSym old_sym; + MemCpy(&old_sym,&dc->sym,sizeof(CGrSym)); + while (tempg->type) { + dc->cur_sprite_elem_num=cur_sprite_elem_num++; + switch (tempg->type) { + case GRST_COLOR8: + dc->color=dc->color&~(COLORROP_COLORS_MASK|ROPF_DITHER)|tempg->color8; + break; + case GRST_DITHER_COLOR8: + dc->color=dc->color&~COLORROP_COLORS_MASK| + tempg->dither_color8.u8[0]| + tempg->dither_color8.u8[1]<pen_width=tempg->width; + GrScalePenWidth(dc); + break; + case GRST_TRANSFORM_ON: + if (!(dc->flags&DCF_TRANSFORMATION)) { + x-=dc->x; + y-=dc->y; + z-=dc->z; + } + dc->flags|=DCF_TRANSFORMATION; + break; + case GRST_TRANSFORM_OFF: + if (dc->flags&DCF_TRANSFORMATION) { + x+=dc->x; + y+=dc->y; + z+=dc->z; + } + dc->flags&=~DCF_TRANSFORMATION; + break; + case GRST_PT: + GrPlot3(dc,tempg->x1+x,tempg->y1+y,z); + break; + case GRST_TEXT: + GrPutS3(dc,tempg->x1+x,tempg->y1+y,z,tempg->st); + break; + case GRST_TEXT_BOX: + GrTextBox3(dc,tempg->x1+x,tempg->y1+y,z,tempg->st); + break; + case GRST_TEXT_DIAMOND: + GrTextDiamond3(dc,tempg->x1+x,tempg->y1+y,z,tempg->st); + break; + case GRST_FLOOD_FILL: + GrFloodFill3(dc,tempg->x1+x,tempg->y1+y,z,FALSE); + break; + case GRST_FLOOD_FILL_NOT: + i=dc->color; + dc->color=dc->color.c0; + GrFloodFill3(dc,tempg->x1+x,tempg->y1+y,z,TRUE); + dc->color=i; + break; + case GRST_SHIFT: + x+=tempg->x1; + y+=tempg->y1; + break; + case GRST_LINE: + GrLine3(dc,tempg->x1+x,tempg->y1+y,z,tempg->x2+x,tempg->y2+y,z); + break; + case GRST_ARROW: + GrArrow3(dc,tempg->x1+x,tempg->y1+y,z,tempg->x2+x,tempg->y2+y,z); + break; + case GRST_PLANAR_SYMMETRY: + if (GrSetSymmetry3(dc,tempg->x1+x,tempg->y1+y,z,tempg->x2+x,tempg->y2+y,z,tempg->x2+x,tempg->y2+y,z+1)) + dc->flags|=DCF_SYMMETRY; + else + dc->flags&=~DCF_SYMMETRY; + break; + case GRST_BITMAP8: + img=CAlloc(sizeof(CDC)); + img->type=DCT_COLOR8; + img->width=tempg->width; + img->width_internal=(tempg->width+7)&~7; + img->height=tempg->height; + img->plane_size=img->width_internal*img->height; + img->body=tempg(U8 *)+offset(CSprite.linespeed); + img->dc_signature=DCS_SIGNATURE_VAL; + GrBlot3(dc,tempg->x2+x,tempg->y2+y,z,img); + Free(img); + break; + case GRST_RECT: + GrRect3(dc,tempg->x1+x,tempg->y1+y,z,tempg->x2-tempg->x1,tempg->y2-tempg->y1); + break; + case GRST_ROTATED_RECT: + x1=tempg->x1+x; + y1=tempg->y1+y; + z1=z; + GrRot(dc->r,&x1,&y1,&z1); + old_r=dc->r; + dc->flags|=DCF_TRANSFORMATION; + r2=GrRotZ(-tempg->rot_angle); + GrSetTranslation(r2,x1,y1,z1); + GrSetRotMat(dc,GrMulMat(old_r,r2)); + GrRect3(dc,0,0,0,tempg->x2-tempg->x1,tempg->y2-tempg->y1); + Free(dc->r); + Free(r2); + GrSetRotMat(dc,old_r); + dc->flags=dc->flags&~DCF_TRANSFORMATION|old_flags; + break; + case GRST_CIRCLE: + GrCircle3(dc,tempg->x1+x,tempg->y1+y,z,tempg->x2); + break; + case GRST_ELLIPSE: + GrEllipse3(dc,tempg->x2+x,tempg->y2+y,z,tempg->width,tempg->height,tempg->rot_angle); + break; + case GRST_REG_POLY: + GrRegPoly3(dc,tempg->x2+x,tempg->y2+y,z,tempg->width,tempg->height,tempg->sides,tempg->rot_angle); + break; + case GRST_POLYLINE: + ptr=&tempg->y1; + x1=ptr[0]; + y1=ptr[1]; + for (i=1;inum;i++) { + x2=ptr[i<<1]; + y2=ptr[i<<1+1]; + GrLine3(dc,x1+x,y1+y,z,x2+x,y2+y,z); + x1=x2;y1=y2; + } + break; + case GRST_POLYPT: + ptr=&tempg->y1; + x1=ptr[0]; + y1=ptr[1]; + ptr+=2; + k=tempg->num*3; + GrPlot3(dc,x1+x,y1+y,z); + for (i=0;iy1; + for (i=0;inum;i++,p++) { + p->x+=x; + p->y+=y; + p->z+=z; + } + Gr2BSpline3(dc,&tempg->y1,tempg->num,FALSE); + p=&tempg->y1; + for (i=0;inum;i++,p++) { + p->x-=x; + p->y-=y; + p->z-=z; + } + break; + case GRST_BSPLINE3: + p=&tempg->y1; + for (i=0;inum;i++,p++) { + p->x+=x; + p->y+=y; + p->z+=z; + } + Gr3BSpline3(dc,&tempg->y1,tempg->num,FALSE); + p=&tempg->y1; + for (i=0;inum;i++,p++) { + p->x-=x; + p->y-=y; + p->z-=z; + } + break; + case GRST_BSPLINE2_CLOSED: + p=&tempg->y1; + for (i=0;inum;i++,p++) { + p->x+=x; + p->y+=y; + p->z+=z; + } + Gr2BSpline3(dc,&tempg->y1,tempg->num,TRUE); + p=&tempg->y1; + for (i=0;inum;i++,p++) { + p->x-=x; + p->y-=y; + p->z-=z; + } + break; + case GRST_BSPLINE3_CLOSED: + p=&tempg->y1; + for (i=0;inum;i++,p++) { + p->x+=x; + p->y+=y; + p->z+=z; + } + Gr3BSpline3(dc,&tempg->y1,tempg->num,TRUE); + p=&tempg->y1; + for (i=0;inum;i++,p++) { + p->x-=x; + p->y-=y; + p->z-=z; + } + break; + case GRST_MESH: + p=&tempg->x2; + for (i=0;ivertex_cnt;i++,p++) { + p->x+=x; + p->y+=y; + p->z+=z; + } + Gr3Mesh(dc,tempg->vertex_cnt,&tempg->x2,tempg->triangle_cnt,(&tempg->x2)(U8 *)+sizeof(CD3I32)*tempg->vertex_cnt); + p=&tempg->x2; + for (i=0;ivertex_cnt;i++,p++) { + p->x-=x; + p->y-=y; + p->z-=z; + } + break; + case GRST_SHIFTABLE_MESH: + if (dc->flags&DCF_TRANSFORMATION) { + dc->x+=tempg->x1; + dc->y+=tempg->y1; + dc->z+=tempg->z1; + x1=x; + y1=y; + z1=z; + } else { + x1=tempg->x1+x; + y1=tempg->y1+y; + z1=tempg->z1+z; + } + p=(&tempg->shiftable_triangle_cnt)(U8 *)+sizeof(I32); + for (i=0;ishiftable_vertex_cnt;i++,p++) { + p->x+=x1; + p->y+=y1; + p->z+=z1; + } + p=(&tempg->shiftable_triangle_cnt)(U8 *)+sizeof(I32); + Gr3Mesh(dc,tempg->shiftable_vertex_cnt,p,tempg->shiftable_triangle_cnt,p(U8 *)+sizeof(CD3I32)*tempg->shiftable_vertex_cnt); + p=(&tempg->shiftable_triangle_cnt)(U8 *)+sizeof(I32); + for (i=0;ishiftable_vertex_cnt;i++,p++) { + p->x-=x1; + p->y-=y1; + p->z-=z1; + } + if (dc->flags&DCF_TRANSFORMATION) { + dc->x-=tempg->x1; + dc->y-=tempg->y1; + dc->z-=tempg->z1; + } + break; + } + if (just_one) break; + tempg(U8 *)+=CSpriteElemSize(tempg); + } + MemCpy(&dc->sym,&old_sym,sizeof(CGrSym)); + dc->color=old_color; + dc->pen_width=old_pen_width; + dc->flags=dc->flags&~(DCF_SYMMETRY|DCF_TRANSFORMATION) | + old_flags&(DCF_SYMMETRY|DCF_TRANSFORMATION); +} + +public U0 CSpritePlot3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems) +{ + I64 old_x=dc->x,old_y=dc->y,old_z=dc->z; + dc->x=x; dc->y=y; dc->z=z; + CSpritePlot3(dc,0,0,0,elems); + dc->x=old_x; dc->y=old_y; dc->z=old_z; +} + +public U0 CSpritePlotRotMat3b(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; + MemCpy(old_m,m,16*sizeof(I64)); + dc->flags|=DCF_TRANSFORMATION; + GrAddTranslation(m,x,y,z); + dc->r=GrMulMat(old_r,m); + CSpritePlot3(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) +{ + I64 *r=GrRotX(è); + CSpritePlotRotMat3b(dc,x,y,z,elems,r); + Free(r); +} + +public U0 CSpritePlotRotY3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,F64 ê=0) +{ + I64 *r=GrRotY(ê); + CSpritePlotRotMat3b(dc,x,y,z,elems,r); + Free(r); +} + +public U0 CSpritePlotRotZ3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,F64 é=0) +{ + I64 *r=GrRotZ(é); + CSpritePlotRotMat3b(dc,x,y,z,elems,r); + Free(r); +} + +public U0 CSpriteExtents(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); + if (dc->min_x<=dc->max_x) { + dc->min_x-=MAX_I32/2; + dc->max_x-=MAX_I32/2; + } + if (dc->min_y<=dc->max_y) { + dc->min_y-=MAX_I32/2; + dc->max_y-=MAX_I32/2; + } + if (min_x) *min_x=dc->min_x; + if (max_x) *max_x=dc->max_x; + if (min_y) *min_y=dc->min_y; + if (max_y) *max_y=dc->max_y; + DCDel(dc); +} + +public CDC *CSprite2DC(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); + result=DCNew(type,max_x-min_x+1,max_y-min_y+1); + CSpritePlot3(result,-min_x,-min_y,0,elems); + return result; +} + +public U8 *CSpriteInterpolate(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), + t1=gr_scale*t,t0=gr_scale-t1; + I32 *ptr0,*ptr1,*ptrr; + CD3I32 *p0,*p1,*pr; + U8 *result=MAlloc(i); + CSprite *tempg0=elems0-offset(CSprite.start), + *tempg1=elems1-offset(CSprite.start), + *tempgr=result-offset(CSprite.start); + MemCpy(result,elems0,i); + while (tempg0->type) { + if (tempg0->type!=tempg1->type) + throw(EXCEPT_GRAPHICS,4); + switch (tempg0->type) { + case GRST_ROTATED_RECT: + tempgr->rot_angle=(tempg0->rot_angle*t0+tempg1->rot_angle*t1)/gr_scale; + case GRST_RECT: + case GRST_LINE: + case GRST_ARROW: + case GRST_PLANAR_SYMMETRY: + tempgr->x2=(tempg0->x2*t0+tempg1->x2*t1)>>32; + tempgr->y2=(tempg0->y2*t0+tempg1->y2*t1)>>32; + case GRST_TEXT: + case GRST_TEXT_BOX: + case GRST_TEXT_DIAMOND: + case GRST_PT: + case GRST_FLOOD_FILL: + case GRST_FLOOD_FILL_NOT: + case GRST_SHIFT: + tempgr->x1=(tempg0->x1*t0+tempg1->x1*t1)>>32; + tempgr->y1=(tempg0->y1*t0+tempg1->y1*t1)>>32; + break; + case GRST_CIRCLE: + tempgr->x2=(tempg0->x2*t0+tempg1->x2*t1)>>32; + tempgr->x1=(tempg0->x1*t0+tempg1->x1*t1)>>32; + tempgr->y1=(tempg0->y1*t0+tempg1->y1*t1)>>32; + break; + case GRST_ELLIPSE: + case GRST_REG_POLY: + tempgr->x2=(tempg0->x2*t0+tempg1->x2*t1)>>32; + tempgr->y2=(tempg0->y2*t0+tempg1->y2*t1)>>32; + tempgr->width=(tempg0->width*t0+tempg1->width*t1)>>32; + tempgr->height=(tempg0->height*t0+tempg1->height*t1)>>32; + break; + case GRST_BITMAP8: + tempgr->x2=(tempg0->x2*t0+tempg1->x2*t1)>>32; + tempgr->y2=(tempg0->y2*t0+tempg1->y2*t1)>>32; + break; + case GRST_POLYLINE: + ptr0=&tempg0->y1; + ptr1=&tempg1->y1; + ptrr=&tempgr->y1; + for (i=0;inum;i++) { + ptrr[i<<1]=(ptr0[i<<1]*t0+ptr1[i<<1]*t1)>>32; + ptrr[i<<1+1]=(ptr0[i<<1+1]*t0+ptr1[i<<1+1]*t1)>>32; + } + break; + case GRST_POLYPT: + ptr0=&tempg0->y1; + ptr1=&tempg1->y1; + ptrr=&tempgr->y1; + ptrr[0]=(ptr0[0]*t0+ptr1[0]*t1)>>32; + ptrr[1]=(ptr0[1]*t0+ptr1[1]*t1)>>32; + break; + case GRST_BSPLINE2: + case GRST_BSPLINE3: + case GRST_BSPLINE2_CLOSED: + case GRST_BSPLINE3_CLOSED: + p0=&tempg0->y1; + p1=&tempg1->y1; + pr=&tempgr->y1; + for (i=0;inum;i++) { + pr[i].x=(p0[i].x*t0+p1[i].x*t1)>>32; + pr[i].y=(p0[i].y*t0+p1[i].y*t1)>>32; + pr[i].z=(p0[i].z*t0+p1[i].z*t1)>>32; + } + break; + case GRST_MESH: + p0=&tempg0->x2; + p1=&tempg1->x2; + pr=&tempgr->x2; + for (i=0;ivertex_cnt;i++) { + pr[i].x=(p0[i].x*t0+p1[i].x*t1)>>32; + pr[i].y=(p0[i].y*t0+p1[i].y*t1)>>32; + pr[i].z=(p0[i].z*t0+p1[i].z*t1)>>32; + } + break; + case GRST_SHIFTABLE_MESH: + p0=(&tempg0->shiftable_triangle_cnt)(U8 *)+sizeof(I32); + p1=(&tempg1->shiftable_triangle_cnt)(U8 *)+sizeof(I32); + pr=(&tempgr->shiftable_triangle_cnt)(U8 *)+sizeof(I32); + for (i=0;ishiftable_vertex_cnt;i++) { + pr[i].x=(p0[i].x*t0+p1[i].x*t1)>>32; + pr[i].y=(p0[i].y*t0+p1[i].y*t1)>>32; + pr[i].z=(p0[i].z*t0+p1[i].z*t1)>>32; + } + break; + } + i=CSpriteElemSize(tempg0); + tempg0(U8 *)+=i; + tempg1(U8 *)+=i; + tempgr(U8 *)+=i; + } + return result; +} + + +#help_index "Graphics/CSprite;Doc/Output" +public CDocEntry *DocPutSprite(CDoc *doc=NULL,U8 *elems,U8 *txt=NULL) +{ + I64 size; + U8 *st; + Bool unlock; + CDocEntry *doc_e; + CDocBin *tempb; + if (!doc && !(doc=DocCur)) return NULL; + unlock=DocLock(doc); + size=CSpriteSize(elems); + tempb=CAlloc(sizeof(CDocBin),doc->mem_task); + tempb->type=DOCBT_CSPRITE; + tempb->size=size; + tempb->data=MAlloc(size,doc->mem_task); + MemCpy(tempb->data,elems,size); + tempb->num=doc->cur_bin_num; + tempb->use_cnt=1; + QueIns(tempb,doc->bin_root.last); + if (txt) + st=MSPrintF(txt,doc->cur_bin_num++); + else + st=MSPrintF("$$SP,\"\",%d$$",doc->cur_bin_num++); + doc_e=DocPutS(doc,st); + Free(st); + doc_e->bin_data=tempb; + 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); + if (unlock) + DocUnlock(doc); + return doc_e; +} + +public CDocEntry *PutSprite(U8 *elems,U8 *txt=NULL) +{ +//If you set txt, +//then include dollarsigns ("$$SP ...$$") +//and leave a %d for the number. + + CDoc *doc; + if (doc=DocCur) + return DocPutSprite(doc,elems,txt); + return NULL; +} diff --git a/SparrowOS/Adam/Gr/GrVectMap.CPP b/SparrowOS/Adam/Gr/GrVectMap.CPP new file mode 100644 index 0000000..d28bebc --- /dev/null +++ b/SparrowOS/Adam/Gr/GrVectMap.CPP @@ -0,0 +1,486 @@ +#help_index "Graphics/CGrVectMap" +/* +This processes a monocrome map, finds edges and generates vect graphic +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 +(R_BITS) : X-coordinate of polyline start +(R_BITS) : Y-coordinate of polyline start +(poly_line_cnt_bits): Number of polyline direction entries +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+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 +} +*/ + +#define R_BITS 6 +#define R_BORDER 1 +#define R_WIDTH (1<body; + F64 d=scale/2; + dc->pen_width=scale+0.5; + dc->color=rect_dft=Bt(body,bit++); + not_rect_dft=1-rect_dft; + + dc->bkcolor=vm->bkcolor; + GrRect(dc,0,0,dc->width,dc->height); + + dc->color=not_rect_dft; + while (Bt(body,bit++)) { + j=BFieldExtU32(body,bit,R_BITS); + bit+=R_BITS; + i=BFieldExtU32(body,bit,R_BITS); + bit+=R_BITS; + cnt=BFieldExtU32(body,bit,vm->poly_line_cnt_bits); + bit+=vm->poly_line_cnt_bits; + if (!cnt) + GrPlot3(dc,(j-R_BORDER)*scale+d,(i-R_BORDER)*scale+d,0); + else { + i0=i;j0=j; + while (cnt--) { + k=BFieldExtU32(body,bit,3); + bit+=3; + i+=gr_y_offsets[k]; + j+=gr_x_offsets[k]; + GrLine3(dc,(j0-R_BORDER)*scale+d,(i0-R_BORDER)*scale+d,0, + (j-R_BORDER)*scale+d,(i-R_BORDER)*scale+d,0); + i0=i; j0=j; + } + } + } + while (Bt(body,bit++)) { + j=BFieldExtU32(body,bit,R_BITS+1); + bit+=R_BITS+1; + i=BFieldExtU32(body,bit,R_BITS+1); + bit+=R_BITS+1; + if (GrPeek(dc,(j/2.0-R_BORDER)*scale+d,(i/2.0-R_BORDER)*scale+d)==rect_dft) + GrFloodFill(dc,(j/2.0-R_BORDER)*scale+d,(i/2.0-R_BORDER)*scale+d); + } +} + +class CMPVMBlot +{ + CDC *dc,*rect_dc; + CGrVectMap *vm; + I64 bit; + I64 xx,yy; + F64 scale; + I64 busy; +}; + + +U0 MPGrVectMapBlotRect(CMPVMBlot *mp) +{ + GrVectMapBlotRect(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) +{ + I64 i,i_lo,i_hi,j,j_lo,j_hi,k,cpu,pass, + w=(vm->width +R_WIDTH-1)/R_WIDTH, + h=(vm->height+R_HEIGHT-1)/R_HEIGHT; + F64 xx,yy,r_scale=scale*(R_WIDTH+1.0/scale)/R_WIDTH; + CMPVMBlot *mp; + if (!dc || !vm) return; + if (Gs->num) + _mp_cnt=1; //Only core #0 can be master + else if (!_mp_cnt) + _mp_cnt=mp_cnt; + else if (_mp_cnt>mp_cnt) + _mp_cnt=mp_cnt; + cpu=_mp_cnt-1; + + mp=MAlloc(_mp_cnt*sizeof(CMPVMBlot)); + + for (i=0;i<_mp_cnt;i++) { + mp[i].rect_dc=DCNew(DCT_COLOR8,R_WIDTH*r_scale,R_HEIGHT*r_scale,Fs); + mp[i].dc=DCAlias(dc,dc->win_task); + mp[i].dc->color=dc->color; + mp[i].vm=vm; + mp[i].scale=r_scale; + mp[i].busy=FALSE; + } + + if (y<0) + i_lo=-y/(R_HEIGHT*scale); + else + i_lo=0; + if (R_HEIGHT*scale*h+y>dc->height) + i_hi=MinI64((dc->height-y)/(R_HEIGHT*scale)+1,h); + else + i_hi=h; + + if (x<0) + j_lo=-x/(R_WIDTH*scale); + else + j_lo=0; + if (R_WIDTH*scale*w+x>dc->width) + j_hi=MinI64((dc->width-x)/(R_WIDTH*scale)+1,w); + else + j_hi=w; + + xx=x+j_lo*R_WIDTH*scale; + for (j=j_lo;j1) { + pass=0; + //Does up to two passes + while (TRUE) + if (!pass && !cpu) { + pass++; + cpu=_mp_cnt-1; + } else if (mp[cpu].busy) //by the way, core #0 is never busy + cpu--; + else + break; + } + mp[cpu].xx=xx; + mp[cpu].yy=yy; + mp[cpu].bit=vm->rect_start_bits[k]; + if (!cpu) + MPGrVectMapBlotRect(mp); + else { + mp[cpu].busy=TRUE; + MPJob(&MPGrVectMapBlotRect,&mp[cpu],cpu); + } + k+=w; + yy+=R_HEIGHT*scale; + } + xx+=R_WIDTH*scale; + } + for (i=_mp_cnt-1;i>=0;i--) { + while(mp[i].busy) + Yield; + DCDel(mp[i].rect_dc); + DCDel(mp[i].dc); + } + Free(mp); +} + +Bool IsSolidSquare(CDC *dc,I64 x,I64 y,I64 edge,CColorROPU32 color) +{ + I64 i,j; + edge>>=1; + for (i=-edge;ibody; + Bool found; + if (_max_poly_line_cnt_bits) + max_poly_line_cnt_bits=*_max_poly_line_cnt_bits; + else + max_poly_line_cnt_bits=3; + + //Count ON pixels + for (y=0;y=R_WIDTH*R_HEIGHT/2) + rect_dft=1; + else + rect_dft=0; + not_rect_dft=1-rect_dft; + + BEqu(body,bit++,rect_dft); + + 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 + } else { + for (y=0;ycolor=0; + if (GrPeek(b_desired,x,y)==not_rect_dft) + for (k=0;k<8;k++) + if (GrPeek(b_desired,x+gr_x_offsets[k],y+gr_y_offsets[k])==rect_dft) + b_edge->color=1; + GrPlot(b_edge,x,y); + } + + b_edge->color=0; + link_bit1=bit; + for (y=0;ymax_poly_line_cnt_bits) + max_poly_line_cnt_bits=Bsr(cnt)+1; + } + + //Connect adjacent groups with link to prevent flood-fill leaks. + link_bit_limit=bit; + while (link_bit1color=1; + GrPlot(b_link_check,xx,yy); + cnt=BFieldExtU32(body,link_bit2,poly_line_cnt_bits); + link_bit2+=poly_line_cnt_bits; + while (cnt--) { + kk=BFieldExtU32(body,link_bit2,3); + link_bit2+=3; + yy+=gr_y_offsets[kk]; + xx+=gr_x_offsets[kk]; + GrPlot(b_link_check,xx,yy); + } + + link_bit1=link_bit2; + } + Btr(body,bit++); //End of poly-line list + + b_desired->color=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 + + 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); + + //Flood fill + for (y=R_BORDER;y>step_bits,y>>step_bits)==rect_dft) { + Bts(body,bit++); //Show not end of flood-fill list + yy=y; xx=x; + for (k=0;k<4;k++) { + yy2=yy; + while (yy2>step_bits,yy2>>step_bits)==rect_dft) + yy2++; + while (yy>R_BORDER && + IsSolidSquare(b_desired,xx,yy,step,not_rect_dft) && GrPeek(b_actual,xx>>step_bits,yy>>step_bits)==rect_dft) + yy--; + yy1=yy+yy2; + yy=yy1/2; + + xx2=xx; + while (xx2>step_bits,yy>>step_bits)==rect_dft) + xx2++; + while (xx>R_BORDER && + IsSolidSquare(b_desired,xx,yy,step,not_rect_dft) && GrPeek(b_actual,xx>>step_bits,yy>>step_bits)==rect_dft) + xx--; + xx1=xx+xx2; + xx=xx1/2; + + } + GrFloodFill(b_actual,xx>>step_bits,yy>>step_bits); + BFieldOrU32(body,bit,xx1); //Flood fill X-coordinate in rect + bit+=R_BITS+1; + BFieldOrU32(body,bit,yy1); //Flood fill Y-coordinate in rect + bit+=R_BITS+1; + } + DCDel(b_actual); + Btr(body,bit); //Temp end of flood-fill list + } + bit++; //End of flood-fill list + } + + DCDel(b_desired); + DCDel(b_edge); + DCDel(b_link_check); + + if (_max_poly_line_cnt_bits) *_max_poly_line_cnt_bits=max_poly_line_cnt_bits; + + return bit-_bit; +} + + +#define TEMP_BODY_SIZE 0x10000 +public CGrVectMap *DC2VectMap(CDC *dc,CTask *mem_task=NULL,I64 *_size=NULL) +{ //Currently does not convert outer 1 pixel border + I64 i,j,k,cnt,size, + w=(dc->width-R_BORDER*2+R_WIDTH-1)/R_WIDTH, + h=(dc->height-R_BORDER*2+R_HEIGHT-1)/R_HEIGHT, + rect_cnt=w*h,poly_line_cnt_bits=12,max_poly_line_cnt_bits=3; + U32 *rect_start_bits; + U8 *body; + CGrVectMap *result,tempv; + + body=MAlloc(TEMP_BODY_SIZE); + + //Pass 1: Get max_poly_line_cnt_bits + for (i=0;iwidth-R_BORDER*2; + tempv.height=dc->height-R_BORDER*2; + tempv.body=body; + 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); + } + + //Pass 2: Get cnt + poly_line_cnt_bits=max_poly_line_cnt_bits; + cnt=0; + for (i=0;iwidth-R_BORDER*2; + tempv.height=dc->height-R_BORDER*2; + tempv.body=body; + 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); + } + Free(body); + + //Pass 3 + size=(cnt+7)/8; + result=CAlloc(sizeof(CGrVectMap),mem_task); + result->body=CAlloc(size,mem_task); + rect_start_bits=MAlloc((rect_cnt+1)*sizeof(U32),mem_task); + result->width =dc->width-R_BORDER*2; + result->height=dc->height-R_BORDER*2; + result->rect_cnt=rect_cnt; + result->r_bits=R_BITS; + result->poly_line_cnt_bits=poly_line_cnt_bits; + result->rect_start_bits=rect_start_bits; + k=0; + cnt=0; + for (i=0;irect_start_bits); + Free(vm->body); + Free(vm); +} + +U32 *GrVectMapRectStartBits(CGrVectMap *vm,CTask *mem_task=NULL) +{ + I64 k=0,bit=0; + U8 *body=vm->body; + U32 *result=MAlloc((vm->rect_cnt+1)*sizeof(U32),mem_task); + for (k=0;krect_cnt;k++) { + result[k]=bit++; + while (Bt(body,bit++)) { + bit+=2*R_BITS; + bit+=vm->poly_line_cnt_bits+3*BFieldExtU32(body,bit,vm->poly_line_cnt_bits); + } + while (Bt(body,bit++)) + bit+=2*(R_BITS+1); + } + result[k]=bit; + return result; +} diff --git a/SparrowOS/Adam/Gr/MathGr.CPP b/SparrowOS/Adam/Gr/MathGr.CPP new file mode 100644 index 0000000..e98d22a --- /dev/null +++ b/SparrowOS/Adam/Gr/MathGr.CPP @@ -0,0 +1,1062 @@ +#help_index "Graphics/Math" + +public I64 gr_x_offsets[8]={-1, 0, 1,-1,1,-1,0,1}, + gr_y_offsets[8]={-1,-1,-1, 0,0, 1,1,1}, + gr_x_offsets2[4]={ 0,-1, 1, 0}, + gr_y_offsets2[4]={-1, 0, 0, 1}; + +public Bool Line(U8 *aux_data, + I64 x1,I64 y1,I64 z1, + I64 x2,I64 y2,I64 z2, + 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"$. + 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; + if (adx>=ady) { + if (adx>=adz) { + if (d=adx) { + if (dx>=0) + dx=0x100000000; + else + dx=-0x100000000; + dy=dy<<32/d; + dz=dz<<32/d; + } + } else { + if (d=adz) { + dx=dx<<32/d; + dy=dy<<32/d; + if (dz>=0) + dz=0x100000000; + else + dz=-0x100000000; + } + } + } else { + if (ady>=adz) { + if (d=ady) { + dx=dx<<32/d; + if (dy>=0) + dy=0x100000000; + else + dy=-0x100000000; + dz=dz<<32/d; + } + } else { + if (d=adz) { + dx=dx<<32/d; + dy=dy<<32/d; + if (dz>=0) + dz=0x100000000; + else + dz=-0x100000000; + } + } + } + x1<<=32; y1<<=32; z1<<=32; + for (j=0;j=ady1) + d1=adx1>=adz1 ? adx1:adz1; + else + d1=ady1>=adz1 ? ady1:adz1; + if (adx2>=ady2) + d2=adx2>=adz2 ? adx2:adz2; + else + d2=ady2>=adz2 ? ady2:adz2; + d1<<=1; + d2<<=1; + if (d1) { + dx1=dx1<<32/d1; + dy1=dy1<<32/d1; + dz1=dz1<<32/d1; + } + + if (d2) { + dx2=dx2<<32/d2; + dy2=dy2<<32/d2; + dz2=dz2<<32/d2; + } + + x1<<=32; y1<<=32; z1<<=32; + for (j=0;j<=d1;j++) { + x2=x1; y2=y1; z2=z1; + for (i=0;i<=d2;i++) { + if (x2.i32[1]!=last_x || y2.i32[1]!=last_y || z2.i32[1]!=last_z ||first) { + if (!(*fp_plot)(aux_data,x2.i32[1],y2.i32[1],z2.i32[1])) + return FALSE; + } + first=FALSE; + last_x=x2.i32[1]; last_y=y2.i32[1]; last_z=z2.i32[1]; + x2+=dx2; y2+=dy2; z2+=dz2; + } + x1+=dx1; y1+=dy1; z1+=dz1; + } + return TRUE; +} + +#help_index "Graphics/Math/3D Transformation" +#help_file "::/SparrowOS/Doc/Transform" +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +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"$. + 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; + z1=(r[2][0]*xx+r[2][1]*yy+r[2][2]*zz+r[2][3])>>32; + *_x=x1;*_y=y1;*_z=z1; +} + +public U0 GrTransform(CDC *dc,I64 *_x,I64 *_y,I64 *_z) +{ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + GrRot(dc->r,_x,_y,_z); + *_x+=dc->x; + *_y+=dc->y; + *_z+=dc->z; +} + +public I64 *GrRotX(F64 è,CTask *mem_task=NULL) +{ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + F64 my_cos=Cos(è)*gr_scale, + my_sin=Sin(è)*gr_scale; + I64 *r=CAlloc(sizeof(I64)*16,mem_task); + + r[5]=my_cos; + r[10]=my_cos; + r[9]=my_sin; + r[6]=-my_sin; + r[0]=gr_scale; + r[15]=gr_scale; + return r; +} + +public I64 *GrRotY(F64 ê,CTask *mem_task=NULL) +{ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + F64 my_cos=Cos(ê)*gr_scale, + my_sin=Sin(ê)*gr_scale; + I64 *r=CAlloc(sizeof(I64)*16,mem_task); + + r[0]=my_cos; + r[10]=my_cos; + r[8]=-my_sin; + r[2]=my_sin; + r[5]=gr_scale; + r[15]=gr_scale; + return r; +} + +public I64 *GrRotZ(F64 é,CTask *mem_task=NULL) +{ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + F64 my_cos=Cos(é)*gr_scale, + my_sin=Sin(é)*gr_scale; + I64 *r=CAlloc(sizeof(I64)*16,mem_task); + + r[0]=my_cos; + r[5]=my_cos; + r[4]=my_sin; + r[1]=-my_sin; + r[10]=gr_scale; + r[15]=gr_scale; + return r; +} + +public I64 *GrScaleMat(I64 *m1,F64 s,CTask *mem_task=NULL) +{ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + I64 i,*r=CAlloc(sizeof(I64)*16,mem_task); + for (i=0;i<16;i++) + r[i]=m1[i]*s; + return r; +} + +public I64 *GrMulMat(I64 *m1,I64 *m2,CTask *mem_task=NULL) +{ + //This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + //Conceptually, the transform m1 is applied after m2 + I64 i,j,k,*r=CAlloc(sizeof(I64)*16,mem_task); + F64 d; + for (i=0;i<4;i++) { + for (j=0;j<4;j++) { + for (k=0;k<4;k++) { + d=m1[k+4*j]; + d*=m2[i+4*k]; //TODO! Possible overflow if norm > one. + d/=gr_scale; + r[i+4*j]+=d; + } + } + } + return r; +} + +public I64 *GrRotXEqu(I64 *m1,F64 è) +{ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + F64 my_cos=Cos(è)*gr_scale, + my_sin=Sin(è)*gr_scale; + I64 r[16],*r2; + MemSet(r,0,sizeof(r)); + r[5]=my_cos; + r[10]=my_cos; + r[9]=my_sin; + r[6]=-my_sin; + r[0]=gr_scale; + r[15]=gr_scale; + + r2=GrMulMat(r,m1); + MemCpy(m1,r2,sizeof(I64)*16); + Free(r2); + return m1; +} + +public I64 *GrRotYEqu(I64 *m1,F64 ê) +{ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + F64 my_cos=Cos(ê)*gr_scale, + my_sin=Sin(ê)*gr_scale; + I64 r[16],*r2; + MemSet(r,0,sizeof(r)); + r[0]=my_cos; + r[10]=my_cos; + r[8]=-my_sin; + r[2]=my_sin; + r[5]=gr_scale; + r[15]=gr_scale; + + r2=GrMulMat(r,m1); + MemCpy(m1,r2,sizeof(I64)*16); + Free(r2); + return m1; +} + +public I64 *GrRotZEqu(I64 *m1,F64 é) +{ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + F64 my_cos=Cos(é)*gr_scale, + my_sin=Sin(é)*gr_scale; + I64 r[16],*r2; + MemSet(r,0,sizeof(r)); + r[0]=my_cos; + r[5]=my_cos; + r[4]=my_sin; + r[1]=-my_sin; + r[10]=gr_scale; + r[15]=gr_scale; + + r2=GrMulMat(r,m1); + MemCpy(m1,r2,sizeof(I64)*16); + Free(r2); + return m1; +} + +public I64 *GrScaleMatEqu(I64 *m1,F64 s) +{ + I64 i; + for (i=0;i<16;i++) + m1[i]*=s; + return m1; +} + +public U0 GrSetRotMat(CDC *dc,I64 r[4][4]) +{ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +// (1.0/Sqrt(3))*65536=37837.22 + I64 xx=37838,yy=37837,zz=37837; + dc->r=r; + GrRot(r,&xx,&yy,&zz); + //scaled 32 bits + dc->r_norm=Sqrt(xx*xx+yy*yy+zz*zz)*65536; +} + +public U0 GrScalePenWidth(CDC *dc) +{ + I64 d; + if (dc->flags&DCF_TRANSFORMATION) { + if (dc->pen_width) { + d=dc->pen_width*dc->r_norm+0x80000000; + dc->pen_width=d.u32[1]; + if (dc->pen_width<1) + dc->pen_width=1; + } + } +} + +public I64 *GrIdent(CTask *mem_task=NULL) +{ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + I64 *r=CAlloc(sizeof(I64)*16,mem_task); + r[0] .i32[1]=1; + r[5] .i32[1]=1; + r[10].i32[1]=1; + r[15].i32[1]=1; + return r; +} + +public I64 *GrIdentEqu(I64 r[4][4]) +{ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + MemSet(r,0,sizeof(I64)*16); + r[0][0].i32[1]=1; + r[1][1].i32[1]=1; + r[2][2].i32[1]=1; + r[3][3].i32[1]=1; + return r; +} + +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"$. + r[0][3]=x<<32; + r[1][3]=y<<32; + r[2][3]=z<<32; + r[3][3]=gr_scale; + return r; +} + +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"$. + r[0][3]+=x<<32; + r[1][3]+=y<<32; + r[2][3]+=z<<32; + r[3][3]=gr_scale; + return r; +} + +public Bool GrSetSymmetry(CDC *dc,I64 x1,I64 y1,I64 x2,I64 y2) +{ + F64 d; + if (y1==y2 && x1==x2) + return FALSE; + dc->sym.snx=y2-y1; + dc->sym.sny=x1-x2; + dc->sym.snz=0; + if (d=Sqrt(SqrI64(dc->sym.snx)+ + SqrI64(dc->sym.sny)+ + SqrI64(dc->sym.snz))) { + d=gr_scale/d; + dc->sym.snx *= d; + dc->sym.sny *= d; + dc->sym.snz *= d; + } + dc->sym.sx=x1; + dc->sym.sy=y1; + dc->sym.sz=0; + return TRUE; +} + +public Bool GrSetSymmetry3(CDC *dc,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2,I64 x3,I64 y3,I64 z3) +{ + F64 d,x,y,z,xx,yy,zz; + I64 xx1,yy1,zz1,xx2,yy2,zz2,*r; + xx1=x1-x2; yy1=y1-y2; zz1=z1-z2; + xx2=x3-x2; yy2=y3-y2; zz2=z3-z2; + if (!xx1 && !yy1 && !zz1 || + !xx2 && !yy2 && !zz2 || + xx1==xx2 && yy1==yy2 && zz1==zz2) + return FALSE; + + x=yy1*zz2-zz1*yy2; + y=-xx1*zz2+zz1*xx2; + z=xx1*yy2-yy1*xx2; + if (dc->flags & DCF_TRANSFORMATION) { + r=dc->r; + xx=x*r[0]+y*r[1]+z*r[2]; + yy=x*r[4]+y*r[5]+z*r[6]; + zz=x*r[8]+y*r[9]+z*r[10]; + x=xx; y=yy; z=zz; + } + if (d=Sqrt(Sqr(x)+Sqr(y)+Sqr(z))) { + d=gr_scale/d; + dc->sym.snx = d*x; + dc->sym.sny = d*y; + dc->sym.snz = d*z; + } + if (dc->flags & DCF_TRANSFORMATION) + (*dc->transform)(dc,&x1,&y1,&z1); + dc->sym.sx=x1; + dc->sym.sy=y1; + dc->sym.sz=z1; + return TRUE; +} + +public U0 GrReflect(CDC *dc,I64 *_x,I64 *_y,I64 *_z) +{ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + 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, + xn,yn,zn,xx2,yy2,zz2; + xn=d*dc->sym.snx>>15; + yn=d*dc->sym.sny>>15; + zn=d*dc->sym.snz>>15; + xx=x-xn; + yy=y-yn; + zz=z-zn; + xx2=x+xn; + yy2=y+yn; + zz2=z+zn; + if (SqrI64(xx>>16 -dc->sym.sx<<16)+ + SqrI64(yy>>16 -dc->sym.sy<<16)+ + SqrI64(zz>>16 -dc->sym.sz<<16)< + SqrI64(xx2>>16-dc->sym.sx<<16)+ + SqrI64(yy2>>16-dc->sym.sy<<16)+ + SqrI64(zz2>>16-dc->sym.sz<<16)) { + *_x=xx.i32[1]; *_y=yy.i32[1]; *_z=zz.i32[1]; + } else { + *_x=xx2.i32[1]; *_y=yy2.i32[1]; *_z=zz2.i32[1]; + } +} + +#help_index "Graphics/Mesh" +public U0 GrLighting(CDC *dc,CD3I32 *p1,CD3I32 *p2,CD3I32 *p3,CColorROPU32 color) +{ + CD3I32 v1,v2; + I64 i,vn_x,vn_y,vn_z; + F64 d; + + v1.x=p1->x-p2->x; + v1.y=p1->y-p2->y; + v1.z=p1->z-p2->z; + + v2.x=p3->x-p2->x; + v2.y=p3->y-p2->y; + v2.z=p3->z-p2->z; + +//V1 and V2 are vects along two sides +//of the triangle joined at p2. + + vn_x=v1.y*v2.z-v1.z*v2.y; + vn_y=v1.z*v2.x-v1.x*v2.z; + vn_z=v1.x*v2.y-v1.y*v2.x; + if (d=Sqrt(SqrI64(vn_x)+SqrI64(vn_y)+SqrI64(vn_z))) + d=1<<16/d; + vn_x*=d; + vn_y*=d; + vn_z*=d; +//Vn is the cross product of V1 and V3 +//which means it is perpendicular. It +//is the normal vect to the surface. +//It has been scaled to length 65536. + +//Light source has been scaled to length 65536. + i=(vn_x*dc->ls.x+vn_y*dc->ls.y+vn_z*dc->ls.z)>>16; +//The dot product of the light source +//vect and the surface normal +//gives an illumination number. +//65536*65536>>16=65536 + +//SparrowOS 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. + if (color.c0.rop&ROPBF_TWO_SIDED) { + color.c0.rop&=~ROPBF_TWO_SIDED; + i=AbsI64(i)<<1; + } else + i+=65536; + if (color.c0.rop&ROPBF_HALF_RANGE_COLOR) { + color.c0.rop&=~ROPBF_HALF_RANGE_COLOR; + i>>=1; + if (color>=8) { + color-=8; + i+=65536; + } + } + if (i<65536) { + dc->color=ROPF_PROBABILITY_DITHER+color<<16+BLACK; + dc->dither_probability=i; + } else { + dc->color=ROPF_PROBABILITY_DITHER+(color^8)<<16+color; + dc->dither_probability=i-65536; + } +} + +#define SCALE1 24 +#define SCALE2 8 + +#help_index "Graphics/Math" +public Bool Circle(U8 *aux_data, + I64 cx,I64 cy,I64 cz, + I64 radius, + Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z), + I64 step=1, + F64 start_radians=0, + F64 len_radians=2*ã) +{ + I64 i,j,len=Ceil(len_radians*radius), + x,y,x1,y1,s1,s2,c; + F64 t; + if (radius<=0||!step) return TRUE; + t=1.0/radius; + c=1<>SCALE2,cy+y>>SCALE2,cz)) + return FALSE; + for (j=0;j>SCALE1; + y1=(s2*x+c*y)>>SCALE1; + x=x1; y=y1; + } + } + return TRUE; +} + +public Bool Ellipse(U8 *aux_data, + I64 cx,I64 cy,I64 cz, + I64 x_radius,I64 y_radius, + Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z), + F64 rot_angle=0, + I64 step=1, + F64 start_radians=0, + F64 len_radians=2*ã) +{ + I64 i,j,len, + x,y,_x,_y,x1,y1,x2,y2, s1,s2,c, s12,s22,c2; + F64 t; + Bool first=TRUE; + if (x_radius<=0 || y_radius<=0 || !step) + return TRUE; + if (x_radius>=y_radius) { + t=1.0/x_radius; + len=Ceil(len_radians*x_radius); + } else { + t=1.0/y_radius; + len=Ceil(len_radians*y_radius); + } + + c=1<>SCALE1; + y=(s22*x2+c2*y1)>>SCALE1; + + for (i=0;i<=len;i+=step) { + if (x>>SCALE2!=_x || y>>SCALE2!=_y || first) { + if (!(*fp_plot)(aux_data,cx+x>>SCALE2,cy+y>>SCALE2,cz)) + return FALSE; + } + _x=x>>SCALE2; _y=y>>SCALE2; first=FALSE; + for (j=0;j>SCALE1; + y1=(s2*x2+c*y2)>>SCALE1; + x2=x1; + y2=y1; + y1=y1*y_radius/x_radius; + x=(c2*x1+s12*y1)>>SCALE1; + y=(s22*x1+c2*y1)>>SCALE1; + } + } + return TRUE; +} + +public Bool RegPoly(U8 *aux_data, + I64 cx,I64 cy,I64 cz, + I64 x_radius,I64 y_radius,I64 sides, + Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z), + F64 rot_angle=0, + I64 step=1, + F64 start_radians=0, + F64 len_radians=2*ã) +{ + I64 i,n,x,y,x1,y1,x2,y2, + xx1,yy1,xx2,yy2, + s1,s2,c, s12,s22,c2; + F64 angle_step; + + if (sides<=0 || x_radius<=0 || y_radius<=0) + return TRUE; + + angle_step=2*ã/sides; + n=len_radians*sides/(2*ã); + + s1=1<>SCALE1; + y=(s22*x2+c2*y1)>>SCALE1; + + xx1=cx+x>>SCALE2; + yy1=cy+y>>SCALE2; + for (i=0;i>SCALE1; + y1=(s2*x2+c*y2)>>SCALE1; + x2=x1; + y2=y1; + y1=y1*y_radius/x_radius; + x=(c2*x1+s12*y1)>>SCALE1; + y=(s22*x1+c2*y1)>>SCALE1; + xx2=cx+x>>SCALE2; + yy2=cy+y>>SCALE2; + if (!Line(aux_data,xx1,yy1,cz,xx2,yy2,cz,fp_plot,step)) + return FALSE; + xx1=xx2; yy1=yy2; + } + return TRUE; +} + +#help_index "Graphics/CD3I32;Math/CD3I32" +public F64 P3I32Dist(CD3I32 *p1,CD3I32 *p2) +{ + return Sqrt(SqrI64(p1->x-p2->x)+SqrI64(p1->y-p2->y)+SqrI64(p1->z-p2->z)); +} + +public F64 P3I32Norm(CD3I32 *p) +{ + return Sqrt(SqrI64(p->x)+SqrI64(p->y)+SqrI64(p->z)); +} + +public I64 P3I32SqrNorm(CD3I32 *p) +{ + return SqrI64(p->x)+SqrI64(p->y)+SqrI64(p->z); +} + +#help_index "Graphics/Math" +public Bool Bezier2(U8 *aux_data,CD3I32 *ctrl,Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z),Bool first=TRUE) +{//2nd order + I64 x,y,z,xx,yy,zz,dx,dy,dz,d_max; + F64 x0=ctrl[0].x,y0=ctrl[0].y,z0=ctrl[0].z, + x1=ctrl[1].x-x0,y1=ctrl[1].y-y0,z1=ctrl[1].z-z0, + x2=ctrl[2].x-x0,y2=ctrl[2].y-y0,z2=ctrl[2].z-z0, + t,d=P3I32Dist(&ctrl[0],&ctrl[1])+ + P3I32Dist(&ctrl[1],&ctrl[2])+ + P3I32Dist(&ctrl[2],&ctrl[0]), + s=0.5/d,t1,t2; + xx=x0; yy=y0; zz=z0; + if (first) { + if (!(*fp_plot)(aux_data,xx,yy,zz)) + return FALSE; + } + for (t=0.0;t<=1.0;t+=s) { + t1=t*(1.0-t); + t2=t*t; + x=x0+x1*t1+x2*t2; + y=y0+y1*t1+y2*t2; + z=z0+z1*t1+z2*t2; + dx=AbsI64(x-xx); + dy=AbsI64(y-yy); + dz=AbsI64(z-zz); + if (dx>dy) + d_max=dx; + else + d_max=dy; + if (dz>d_max) + d_max=dz; + if (!d_max) + s*=1.1; + else { + s*=0.9; + if (!(*fp_plot)(aux_data,x,y,z)) + return FALSE; + xx=x;yy=y;zz=z; + } + } + x=ctrl[2].x; y=ctrl[2].y; z=ctrl[2].z; + if (xx!=x || yy!=y || zz!=z) { + if (!(*fp_plot)(aux_data,x,y,z)) + return FALSE; + } + return TRUE; +} + +public Bool Bezier3(U8 *aux_data,CD3I32 *ctrl,Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z),Bool first=TRUE) +{ //3rd order + I64 x,y,z,xx,yy,zz,dx,dy,dz,d_max; + F64 x0=ctrl[0].x,y0=ctrl[0].y,z0=ctrl[0].z, + x1=ctrl[1].x-x0,y1=ctrl[1].y-y0,z1=ctrl[1].z-z0, + x2=ctrl[2].x-x0,y2=ctrl[2].y-y0,z2=ctrl[2].z-z0, + x3=ctrl[3].x-x0,y3=ctrl[3].y-y0,z3=ctrl[3].z-z0, + t,d=P3I32Dist(&ctrl[0],&ctrl[1])+ + P3I32Dist(&ctrl[1],&ctrl[2])+ + P3I32Dist(&ctrl[2],&ctrl[3])+ + P3I32Dist(&ctrl[3],&ctrl[0]), + s=0.5/d,nt,t1,t2,t3; + xx=x0; yy=y0; zz=z0; + if (first) { + if (!(*fp_plot)(aux_data,xx,yy,zz)) + return FALSE; + } + for (t=0.0;t<=1.0;t+=s) { + nt=1.0-t; + t1=t*nt*nt; + t2=t*t*nt; + t3=t*t*t; + x=x0+x1*t1+x2*t2+x3*t3; + y=y0+y1*t1+y2*t2+y3*t3; + z=z0+z1*t1+z2*t2+z3*t3; + dx=AbsI64(x-xx); + dy=AbsI64(y-yy); + dz=AbsI64(z-zz); + if (dx>dy) + d_max=dx; + else + d_max=dy; + if (dz>d_max) + d_max=dz; + if (!d_max) + s*=1.1; + else { + s*=0.9; + if (!(*fp_plot)(aux_data,x,y,z)) + return FALSE; + xx=x;yy=y;zz=z; + } + } + x=ctrl[3].x; y=ctrl[3].y; z=ctrl[3].z; + if (xx!=x || yy!=y || zz!=z) { + if (!(*fp_plot)(aux_data,x,y,z)) + return FALSE; + } + return TRUE; +} + +public Bool BSpline2(U8 *aux_data,CD3I32 *ctrl,I64 cnt,Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z),Bool closed=FALSE) +{ //2nd order + I64 i,j; + CD3I32 *c; + Bool first=TRUE; + if (cnt<3) return TRUE; + if (closed) { + cnt++; + c=MAlloc(sizeof(CD3I32)*(cnt*2-1)); + j=1; + for (i=0;ibottom) + cc1=CC_BOTTOM; + else if (y1right) + cc1|=CC_RIGHT; + else if (x1bottom) + cc2=CC_BOTTOM; + else if (y2right) + cc2|=CC_RIGHT; + else if (x2bottom) + cc1=CC_BOTTOM; + else if (y1right) + cc1|=CC_RIGHT; + else if (x1bottom) + cc2=CC_BOTTOM; + else if (y2right) + cc2|=CC_RIGHT; + else if (x2root.next; + while (doc_e!=doc && cont) { + if (doc_e->type_u8==DOCT_TEXT) { + src=doc_e->tag; + first_on_line=TRUE; + while (src && cont) { + if (src=SearchStr(src,pattern,ss_flags)) { + cnt++; + if (first_on_line || Bt(_fuf_flags,FUf_REPLACE)) { + first_on_line=FALSE; + PutFileLink(name,doc_e->y+1,TRUE); + name_buf=MSPrintF("%s,%d",name,doc_e->y+1); + if (cur_l=DocCur) { + old_flags=cur_l->flags&DOCF_PLAIN_TEXT; + cur_l->flags|=DOCF_PLAIN_TEXT; + } + " %s\n",doc_e->tag; + if (cur_l) + cur_l->flags= cur_l->flags&~DOCF_PLAIN_TEXT |old_flags; + } + if (Bt(_fuf_flags,FUf_REPLACE)) { + if (Bt(_fuf_flags,FUf_ALL)) + i=GRF_ALL; + else { + i=PopUpReplaceSkipAllCancelEd(""); + if (i<0) { + LBts(_fuf_flags,FUf_CANCEL); + cont=FALSE; + write_this_file=FALSE; + } else if (i==GRF_ALL) + LBts(_fuf_flags,FUf_ALL); + else if (i==GRF_ABORT_FILE) { + cont=FALSE; + write_this_file=FALSE; + } else if (i==GRF_SKIP_FILE) + cont=FALSE; + } + if (i==GRF_REPLACE || i==GRF_ALL) { + dlen=StrLen(doc_e->tag); + dst=MAlloc(dlen+1+rlen-plen); + dst2=dst; + j=src-doc_e->tag; + for (i=0;itag[i]; + for (i=0;itag[i]; + Free(doc_e->tag); + doc_e->tag=dst2; + if (cur_l=DocCur) { + old_flags=cur_l->flags&DOCF_PLAIN_TEXT; + cur_l->flags|=DOCF_PLAIN_TEXT; + } + "%12s,%04d*%s\n",name,doc_e->y+1,dst2; + if (cur_l) + cur_l->flags= cur_l->flags&~DOCF_PLAIN_TEXT |old_flags; + write_this_file=TRUE; + } else { + src++; + if (i==GRF_ED) { + Free(name_buf); + name_buf=StrNew(doc->filename.name); + doc->flags&=~DOCF_NO_CURSOR; + doc->cur_entry=doc_e; + doc->cur_data_col=doc_e->min_col; + DocWrite(doc); + DocDel(doc); + "Wrote:%s\n",name_buf; + Ed(name_buf); + doc=DocRead(name_buf, DOCF_PLAIN_TEXT_WITH_TABS); + doc_e=doc->cur_entry; + if (doc_e->last!=doc) doc_e=doc_e->last; + src=NULL; + write_this_file=FALSE; + } + } + } else + src++; + Free(name_buf); + name_buf=NULL; + } + } + } + doc_e=doc_e->next; + } + if (write_this_file) { + DocWrite(doc); + "Wrote:%s\n",doc->filename.name; + } + DocDel(doc); + return cnt; +} + +I64 GrepList(U8 *pattern,CDirEntry *tempm1,I64 *_fuf_flags,U8 *replace_text) +{ + I64 cnt=0; + CDirEntry *tempm2; + + while (tempm1 && !Bt(_fuf_flags,FUf_CANCEL)) { + tempm2=tempm1->next; + 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); + } + } else + cnt+=GrepFile(pattern,tempm1->full_name,_fuf_flags,replace_text); + CDirEntryDel(tempm1); + tempm1=tempm2; + } + return cnt; +} + +public I64 Grep(U8 *pattern,U8 *files_find_mask=TEXT_FILE_MASK,U8 *fu_flags=NULL,U8 *replace_text=NULL) +/* +This does not do regular expressions--my bad. +Anyway, it's good for searching and replacing. +Let's say it stands for global replace ;-) + +"+r"=recurse +"+i"=ignore case +"+l"=whole labels only. + This will check for a nonlabel character before + and after. If you have a var, "doc_e" and don't + want to match words like "will" and "wallow", you + set this flag and it will see that the characters + before or after "doc_e" are label characters. +*/ + +{ + I64 cnt=0,fuf_flags=0; + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+i"); //Set dft flags + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + LBEqu(&fuf_flags,FUf_REPLACE,replace_text); + cnt+=GrepList(pattern,FilesFind(files_find_mask,fuf_flags),&fuf_flags,replace_text); + return cnt; +} + +public I64 FileOcc(U8 *pattern,U8 *files_find_mask=TEXT_FILE_MASK,U8 *fu_flags="+r+i+l") +{/* +"+r"=recurse +"+i"=ignore case +"+l"=whole labels only. +*/ + I64 cnt=0; + Bool old_silent=Silent(TRUE); + cnt=Grep(pattern,files_find_mask,fu_flags); + Silent(old_silent); + return cnt; +} + +class CGrep +{ + U8 find_text[136] fmtstr "$$DA-P,135,\"FIND :%s\"$$\n"; + U8 replace_text[136] fmtstr "$$DA-P,135,\"REPLACE :%s\"$$\n"; + Bool replace fmtstr "$$CB,\"REPLACE\"$$\n"; + Bool match_case fmtstr "$$CB,\"MATCH CASE\"$$\n"; + Bool whole_labels fmtstr "$$CB,\"WHOLE LABELS\"$$\n"; + U8 filemask[136] fmtstr "$$DA-P,135,\"FILE MASK :%s\"$$\n"; + Bool recurse fmtstr "$$CB,\"RECURSE\"$$\n"; +}; + +I64 GrepWiz() +{ + CDoc *doc; + U8 buf[32],*dir,*st; + CGrep *g=CAlloc(sizeof(CGrep)); + I64 result=0; + g->recurse=TRUE; + StrCpy(g->filemask,TEXT_FILE_MASK); + if (doc=DocCur) { + StrCpy(g->find_text,doc->find_replace->find_text); + StrCpy(g->replace_text,doc->find_replace->replace_text); + g->replace=doc->find_replace->replace; + g->match_case=doc->find_replace->match_case; + g->whole_labels=doc->find_replace->whole_labels; + } + if (DocFormDo(g,"CGrep",0,"$$FG,PURPLE$$$$TX+CX,\"Grep\"$$\n$$FG$$")) { + if (doc) { + StrCpy(doc->find_replace->find_text,g->find_text); + StrCpy(doc->find_replace->replace_text,g->replace_text); + doc->find_replace->replace=g->replace; + doc->find_replace->match_case=g->match_case; + doc->find_replace->whole_labels=g->whole_labels; + } + dir=PopUpPickDir; + if (*dir) { + *buf=0; + if (g->match_case) + StrCat(buf,"-i"); + if (!g->recurse) + StrCat(buf,"-r"); + if (g->whole_labels) + StrCat(buf,"+l"); + if (g->replace) + st=MSPrintF("\"$$$$WW+H,1$$$$\";Cd(\"%s\");Grep(\"%Q\",\"%Q\",\"%Q\",\"%Q\");UserTaskCont;",dir,g->find_text,g->filemask,buf,g->replace_text); + else + st=MSPrintF("\"$$$$WW+H,1$$$$\";Cd(\"%s\");Grep(\"%Q\",\"%Q\",\"%Q\");UserTaskCont;",dir,g->find_text,g->filemask,buf); + result=PopUp(st); + } + Free(dir); + } + Free(g); + return result; +} + +#help_index "" diff --git a/SparrowOS/Adam/Hash2a.CPP b/SparrowOS/Adam/Hash2a.CPP new file mode 100644 index 0000000..86385c6 --- /dev/null +++ b/SparrowOS/Adam/Hash2a.CPP @@ -0,0 +1,544 @@ +#help_index "Hash" +public I64 HashVal(CHash *temph) +{ + nobound_switch (HashTypeNum(temph)) { + case HTt_EXPORT_SYS_SYM: + return temph(CHashExport *)->val; + case HTt_IMPORT_SYS_SYM: + return temph(CHashImport *)->module_base; + case HTt_DEFINE_STR: + case HTt_CLASS: + case HTt_INTERNAL_TYPE: + case HTt_WORD: + case HTt_DICT_WORD: + case HTt_OPCODE: + case HTt_HELP_FILE: + return temph; + case HTt_GLBL_VAR: + if (temph(CHashGlblVar *)->flags&GVAF_EXTERN) + return &temph(CHashGlblVar *)->data_addr; + else + return temph(CHashGlblVar *)->data_addr; + case HTt_FUN: + if (Bt(temph(CHashFun *)->flags,Cf_EXTERN)) + return temph; + else + return temph(CHashFun *)->executable_addr; + case HTt_REG: + return temph(CHashReg *)->reg_num|temph(CHashReg *)->reg_type<<8; + case HTt_KEYWORD: + case HTt_ASM_KEYWORD: + case HTt_MODULE: + case HTt_FILE: + case HTt_NAMED_FRAME_PTR: + return temph(CHashGeneric *)->user_data0; + + case -1: //nobound_switch + case HTt_NUM_TYPES: //nobound_switch + default: + return 0; + } +} + +#help_index "Info;Hash/Reports;" +class CHashRep +{ + CHashGeneric *h; + U8 *index; +}; + + +I64 HashEntriesCompare(CHashRep *h1,CHashRep *h2) +{ + I64 i1,i2; + if (i1=StrCmp(h1->h->str,h2->h->str)) + return i1; + i1=HashTypeNum(h1->h); + i2=HashTypeNum(h2->h); + return i1-i2; +} + +I64 HashEntriesCompare2(CHashRep *h1,CHashRep *h2) +{ + CHashFun *tempf1=h1->h,*tempf2=h2->h; + I64 i1=HashVal(tempf1),i2=HashVal(tempf2); + if (i1==i2) { + i1=HashTypeNum(tempf1); + i2=HashTypeNum(tempf2); + if (i1==i2) + return StrCmp(tempf1->str,tempf2->str); + } + return i1-i2; +} + +I64 HelpIndexCnt(U8 *ptr,U8 *index) +{ + U8 cnt=0,ch; + I64 index_len=StrLen(index); + while (*ptr) { + if (!StrNCmp(ptr,index,index_len)) + cnt++; + while (ch=*ptr++) + if (ch==';') + break; + if (!ch) + ptr--; + } + return cnt; +} + +U8 *HelpIndexStr(U8 **ptr_,U8 *index) +{ + U8 *ptr=*ptr_,*ptr2,ch,*result; + I64 index_len=StrLen(index); + while (*ptr) { + ptr2=ptr; + while (ch=*ptr++) + if (ch==';') + break; + if (!ch) + ptr--; + *ptr_=ptr; + if (!StrNCmp(ptr2,index,index_len)) { + if (ch==';') + ptr--; + *ptr=0; + result=StrNew(ptr2); + *ptr=ch; + return result; + } + } + return NULL; +} + +I64 HashEntriesCompare3(CHashRep *h1,CHashRep *h2) +{ + I64 i,i1=0,i2=0; + i=StrCmp(h1->index,h2->index); + if (i) + return i; + else { + if (h1->h->type&HTT_HELP_FILE) + i1=1; + if (h2->h->type&HTT_HELP_FILE) + i2=1; + i=i2-i1; + if (i) + return i; + else + return StrCmp(h1->h->str,h2->h->str); + } +} + +//Possible choices for first arg, "h" include +// "adam_task->hash_table" +// "Fs->hash_table" +public U0 HashRep(CHashTable *h=NULL, + I64 mask=HTG_ALL,U8 *outname=NULL,U8 *flags=NULL,U8 mapfile_drv=0,U8 *index=NULL, + CDoc *_doc=NULL) +{ + CHashTable *tempht; + CHashSrcSym *temph; + CHashGeneric *ptr; + CHashRep *list; + I64 cnt,i,j,k,size,f=0, + dbg_bin_num,indent_bin_num; + U8 buf[512],*buf4,*last_index=StrNew(""),*cur_index; + CDoc *doc,*doc1; + Bool recurse,publics,map,old_preempt=Preempt(OFF); + CDocBin *tempb; + CDbgInfo *dbg; + CIndentInfo *indent; + + GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),"+r+p"); + GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),flags); + recurse=Bt(&f,FUf_RECURSE); + publics=Bt(&f,FUf_PUBLIC); + map =Bt(&f,FUf_MAP); + + if (!h) h=Fs->hash_table; + + if (_doc) + doc=_doc; + else if (outname) { + doc=DocNew; + doc->flags|=DOCF_NO_CURSOR; + StrCpy(doc->filename.name,outname); + } else + doc=NULL; + + cnt=0; + tempht=h; + while (tempht) { + temph=tempht->next_added; + while (temph!=tempht) { + if (!(temph->type & (HTF_IMPORT | HTF_PRIVATE)) && + temph->type & mask && + (temph->type & HTF_PUBLIC || !publics)) + if (!index) + cnt++; + else + if (temph->type&HTG_SRC_SYM && + (cur_index=temph->index)) + cnt+=HelpIndexCnt(cur_index,index); + temph=temph->next_added; + } + if (recurse) + tempht=tempht->next; + else + break; + } + if (!cnt) goto end_hash; + + list=CAlloc(cnt*sizeof(CHashRep)); + j=0; + tempht=h; + while (tempht) { + temph=tempht->next_added; + while (temph!=tempht) { + if (!(temph->type & (HTF_IMPORT | HTF_PRIVATE)) && + temph->type & mask && + (temph->type & HTF_PUBLIC || !publics)) + if (!index) + list[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; + } + } + temph=temph->next_added; + } + if (recurse) + tempht=tempht->next; + else + break; + } + Preempt(old_preempt); + + if (map) + QSort(list,cnt,sizeof(CHashRep),&HashEntriesCompare2); + else if (index) + QSort(list,cnt,sizeof(CHashRep),&HashEntriesCompare3); + else + QSort(list,cnt,sizeof(CHashRep),&HashEntriesCompare); + + for (i=0;itype & HTT_HELP_FILE) { + if (doc) { + doc1=DocRead(ptr->str); + DocInsDoc(doc,doc1); + DocDel(doc1); + } else + Type(ptr->str); + } else { + if (ptr->type&HTG_SRC_SYM && ptr(CHashSrcSym *)->src_link) { + buf4=StrNew(ptr(CHashSrcSym *)->src_link); + if (mapfile_drv && StrLen(buf4)>3) + buf4[3]=mapfile_drv; + dbg=indent=NULL; + if (outname && doc && ptr->type & HTT_FUN) { + if (dbg=ptr(CHashFun *)->debug) { + size=offset(CDbgInfo.body)+ + sizeof(U8 *)* + (dbg->max_line-dbg->min_line+2); + if (size>MSize(dbg)) { + "Corrupt Map Entry\n"; + dbg=NULL; + } else { + if (dbg->min_line<=dbg->max_line) { + tempb=CAlloc(sizeof(CDocBin)); + tempb->type=DOCBT_DEBUG_LINES; + tempb->size=size; + tempb->data=MAlloc(size); + MemCpy(tempb->data,dbg,size); + dbg_bin_num=tempb->num=doc->cur_bin_num++; + tempb->use_cnt=1; + QueIns(tempb,doc->bin_root.last); + } else + dbg=NULL; + } + } + if (indent=ptr(CHashFun *)->indent) { + size=offset(CIndentInfo.body)+ + sizeof(U8)* + (indent->max_line-indent->min_line+2); + if (size>MSize(indent)) { + "Corrupt Indent Entry\n"; + indent=NULL; + } else { + if (indent->min_line<=indent->max_line) { + tempb=CAlloc(sizeof(CDocBin)); + tempb->type=DOCBT_INDENTS; + tempb->size=size; + tempb->data=MAlloc(size); + MemCpy(tempb->data,indent,size); + indent_bin_num=tempb->num=doc->cur_bin_num++; + tempb->use_cnt=1; + QueIns(tempb,doc->bin_root.last); + } else + indent=NULL; + } + } + } + if (dbg || indent) { + if (dbg) { + SPrintF(buf,"$$LK+BI,\"%-26s\",\"%s\",%d$$", + ptr->str,buf4,dbg_bin_num); + DocPutS(doc,buf); + } + if (indent) { + if (dbg) + SPrintF(buf,"$$LK+BI,\"\",\"%s\",%d$$", + ptr->str,indent_bin_num); + else + SPrintF(buf,"$$LK+BI,\"%-26s\",\"%s\",%d$$", + ptr->str,buf4,indent_bin_num); + DocPutS(doc,buf); + } + } else { + SPrintF(buf,"$$LK,\"%-26s\",\"%s\"$$", + ptr->str,buf4); + if (doc) + DocPutS(doc,buf); + else + "" buf; + } + Free(buf4); + } else { + SPrintF(buf,"%-26ts",ptr->str); + if (doc) + DocPutS(doc,buf); + else + "" buf; + } + + if (!index) { + if (ptr->type & HTT_DEFINE_STR) { + j=ptr(CHashDefineStr *)->cnt; + if (j==-1) + SPrintF(buf,"%-10tQ ",ptr(CHashDefineStr *)->data); + else + SPrintF(buf,"%-10tQ %02X",ptr(CHashDefineStr *)->data,j); + } else if (ptr->type & HTT_GLBL_VAR) { + if (outname) + SPrintF(buf,"%010X ",ptr(CHashGlblVar *)->data_addr_ip); + else + SPrintF(buf,"%010X ",ptr(CHashGlblVar *)->data_addr); + } else + SPrintF(buf,"%010X ",HashVal(ptr)); + j=HashEntrySize(ptr); + if (j==-1) + SPrintF(buf+StrLen(buf)," %04X ",ptr->use_cnt); + else + SPrintF(buf+StrLen(buf)," %04X %010X ",ptr->use_cnt,j); + } else + *buf=0; + + k=ptr->type; + if (publics) + k&=~HTF_PUBLIC; + + for (j=0;j<32;j++) + if (Bt(&k,j)) + SPrintF(buf+StrLen(buf),"%Z ",j,"ST_HTT_TYPES"); + StrCat(buf,"\n"); + if (doc) + DocPutS(doc,buf); + else + "" buf; + } + Free(list[i].index); + } + Free(list); + +end_hash: + Preempt(old_preempt); + if (doc) { + DocBinsValidate(doc); + if (!_doc) { + DocWrite(doc); + DocDel(doc); + } else { + if (doc->root.next==doc) + DocPutS(doc,"No Match"); + else + DocRecalc(doc); + } + } + Free(last_index); +} + +public U0 HFunsRep(U8 *flags="",U8 *index=NULL) +{ + HashRep(Fs->hash_table,HTT_FUN,NULL,flags,0,index); +} + +public U0 HMapRep(U8 *flags="-p+m",U8 *index=NULL) +{ + HashRep(Fs->hash_table,HTT_FUN,NULL,flags,0,index); +} + +public U0 HVarsRep(U8 *flags="",U8 *index=NULL) +{ + HashRep(Fs->hash_table,HTT_GLBL_VAR,NULL,flags,0,index); +} + +public U0 HClassesRep(U8 *flags="-p",U8 *index=NULL) +{ + HashRep(Fs->hash_table,HTT_CLASS,NULL,flags,0,index); +} + +public U0 HDefinesRep(U8 *flags="-p",U8 *index=NULL) +{ + HashRep(Fs->hash_table,HTT_DEFINE_STR,NULL,flags,0,index); +} + +public U0 HSymsRep(U8 *flags="-p",U8 *index=NULL) +{ + HashRep(Fs->hash_table,HTT_EXPORT_SYS_SYM,NULL,flags,0,index); +} + +public U0 HAllRep(U8 *flags="-p",U8 *index=NULL) +{ + HashRep(Fs->hash_table,HTG_ALL,NULL,flags,0,index); +} + +#define HDR_MAX 16 +public I64 HashDepthRep(CHashTable *tempht=NULL) +{ + I64 i,j,longest=0,cnt=0,a[HDR_MAX]; + CHash *temph; + if (!tempht) tempht=Fs->hash_table; + MemSet(a,0,sizeof(a)); + for (i=0;i<=tempht->mask;i++) { + temph=tempht->body[i]; + if (temph) { + j=1; + while (temph->next) { + temph=temph->next; + j++; + } + if (jlongest) + longest=j; + } + } + "Histogram\n"; + for (i=0;imask+1,cnt,longest; + return longest; +} + +#help_index "Help System;Training" +#help_file "::/SparrowOS/Doc/HelpSystem" + +public U0 DocHelpIndex(CDoc *doc,U8 *index) +{ + HashRep(Fs->hash_table,HTG_ALL,NULL,NULL,0,index,doc); +} + +public U0 PopUpHelpIndex(U8 *index,CTask *parent=NULL) +{ + U8 *buf; + buf=MSPrintF("DocHelpIndex(DocCur,\"%s\");View;",index); + PopUp(buf,parent); + Free(buf); +} + +#help_index "Hash" +public U0 MapFileLoad(U8 *filename) +{ + U8 *st,*ptr,*name=DftExt(filename,"MAP.Z"), + *absname=FileNameAbs(name); + CDoc *doc=DocRead(name); + CDocEntry *doc_e; + CHashSrcSym *temph; + I64 i,j,base=0; + CDbgInfo *dbg; + CIndentInfo *indent; + + FileExtRem(absname); + if (absname[1]==':' && StrLen(absname)>2 && + (temph=HashSingleTableFind(absname+2,Fs->hash_table,HTT_MODULE))) + base=temph(CHashGeneric *)->user_data0+sizeof(CBinFile); + + if (!doc) return; + doc_e=doc->root.next; + while (doc_e!=doc) { + if (doc_e->type_u8==DOCT_LINK) { + if (*doc_e->tag) + st=MStrUtil(doc_e->tag,SUF_REM_TRAILING); + else + st=MStrUtil(doc_e->aux_str,SUF_REM_TRAILING); + if (temph=HashSingleTableFind(st,Fs->hash_table,HTG_SRC_SYM)) { + if (*doc_e->tag) { + Free(temph->src_link); + temph->src_link=doc_e->aux_str; + + ptr=temph->src_link; + if (ptr[0] && ptr[1] && ptr[2]==':' && ptr[3]==':') + ptr[3]=dft_drv; + + doc_e->aux_str=NULL; + } + if (temph->type&(HTT_FUN|HTT_EXPORT_SYS_SYM)) { + dbg =temph->debug; + indent=temph->indent; + if (!dbg && doc_e->bin_data && doc_e->bin_data->type==DOCBT_DEBUG_LINES) { + if (dbg=doc_e->bin_data->data) { + if (doc_e->bin_data->size>MSize(dbg)) + "Corrupt Map Entry\n"; + else { + doc_e->bin_data->data=NULL; + temph->debug=dbg; + for (i=dbg->min_line;i<=dbg->max_line+1;i++) { + j=i-dbg->min_line; + if (dbg->body[j]) + dbg->body[j]=dbg->body[j]+base; + } + } + } + } + if (!indent && doc_e->bin_data && doc_e->bin_data->type==DOCBT_INDENTS) { + if (indent=doc_e->bin_data->data) { + if (doc_e->bin_data->size>MSize(indent)) + "Corrupt Indent Entry\n"; + else { + doc_e->bin_data->data=NULL; + temph->indent=indent; + } + } + } + } + } + Free(st); + } + doc_e=doc_e->next; + } + DocDel(doc); + Free(name); + Free(absname); +} +#help_index "" diff --git a/SparrowOS/Adam/HeapLog.CPP b/SparrowOS/Adam/HeapLog.CPP new file mode 100644 index 0000000..9da955c --- /dev/null +++ b/SparrowOS/Adam/HeapLog.CPP @@ -0,0 +1,159 @@ +#help_index "Debugging" + +class CHeapLog +{ + CHeapLog *next,*last; + U8 *addr; + U8 *caller1; + U8 *caller2; + U8 *caller3; + U8 *caller4; +}; + +class CHeapLogHash +{ + CHeapLog *next,*last; +}; + +#define HEAPLOG_HASH_SIZE 0x1000 + +CTask *heaplog_task=NULL; +CHeapCtrl *heaplog_hc; +CHeapLogHash *heaplog_root=NULL; + + +U0 HeapLogTask(I64) +{ + while (TRUE) + Yield; +} + +U0 HeapLogMAlloc(U8 *addr) +{ + CHeapLog *temph; + I64 i; + if (MHeapCtrl(addr)==heaplog_hc) { + temph=MAlloc(sizeof(CHeapLog),heaplog_task); + temph->addr=addr; + temph->caller1=Caller(2); + temph->caller2=Caller(3); + temph->caller3=Caller(4); + temph->caller4=Caller(5); + i=addr>>3 &(HEAPLOG_HASH_SIZE-1); + PushFD; + Cli; + while (LBts(&sys_semas[SYS_SEMA_HEAPLOG_LOCK],0)) + Pause; + QueIns(temph,heaplog_root[i].last); + LBtr(&sys_semas[SYS_SEMA_HEAPLOG_LOCK],0); + PopFD; + } +} + +U0 HeapLogFree(U8 *addr) +{ + I64 i; + CHeapLog *temph; + if (!addr) return; + if (MHeapCtrl(addr)==heaplog_hc) { + i=addr>>3 &(HEAPLOG_HASH_SIZE-1); + PushFD; + Cli; + while (LBts(&sys_semas[SYS_SEMA_HEAPLOG_LOCK],0)) + Pause; + temph=heaplog_root[i].next; + while (temph!=&heaplog_root[i]) { + if (addr==temph->addr) { + QueRem(temph); + LBtr(&sys_semas[SYS_SEMA_HEAPLOG_LOCK],0); + PopFD; + Free(temph); + return; + } + temph=temph->next; + } + LBtr(&sys_semas[SYS_SEMA_HEAPLOG_LOCK],0); + PopFD; + } +} + +public U0 HeapLogRep() +{ + I64 i,total=0; + CHeapLog *temph; + if (!LBtr(&sys_semas[SYS_SEMA_HEAPLOG_ACTIVE],0)) { + "HeapLog Not Active\n"; + return; + } + "$$WW,0$$"; + + PushFD; + Cli; + while (LBts(&sys_semas[SYS_SEMA_HEAPLOG_LOCK],0)) + Pause; + for (i=0;iaddr),temph->addr; + if (!PutSrcLink(temph->caller1,64)) + "%P",temph->caller1; + '' CH_SPACE; + if (!PutSrcLink(temph->caller2,64)) + "%P",temph->caller2; + '' CH_SPACE; + if (!PutSrcLink(temph->caller3,64)) + "%P",temph->caller3; + '' CH_SPACE; + if (!PutSrcLink(temph->caller4,64)) + "%P",temph->caller4; + NewLine; + + total+=MSize(temph->addr); + temph=temph->next; + } + } + LBtr(&sys_semas[SYS_SEMA_HEAPLOG_LOCK],0); + PopFD; + "\n$$FG,LTRED$$Total:%08X$$FG$$\n",total; + LBts(&sys_semas[SYS_SEMA_HEAPLOG_ACTIVE],0); +} + +public U0 HeapLog(Bool val=TRUE,CTask *task=NULL) +{ + I64 i; + if (val) { + if (Bt(&sys_semas[SYS_SEMA_HEAPLOG_ACTIVE],0)) + "HeapLog Already Active\n"; + else { + if (!task) task=Fs; + if (TaskValidate(task)) + heaplog_hc=task->data_heap; + else + heaplog_hc=task; + PushFD; + Cli; + while (LBts(&sys_semas[SYS_SEMA_HEAPLOG_LOCK],0)) + Pause; + heaplog_task=Spawn(&HeapLogTask); + ext[EXT_HEAPLOG_MALLOC]=&HeapLogMAlloc; + ext[EXT_HEAPLOG_FREE]=&HeapLogFree; + heaplog_root=MAlloc(sizeof(CHeapLogHash)*HEAPLOG_HASH_SIZE,heaplog_task); + for (i=0;iattr&_ATTR_DIR) + i=LineCntRepFiles(tempm->sub); + else { + if (IsSrcFile(tempm->name)) { + doc=DocRead(tempm->full_name); + if (doc->root.next!=doc) + i=doc->root.last->y+2; + DocDel(doc); + } + } + tempm->user_data=i; + result+=i; + tempm=tempm->next; + } + return result; +} + +U0 PutLineCntFiles(CDoc *doc,CDirEntry *tempm) +{ + while (tempm) { + if (tempm->attr&_ATTR_DIR) { + DocPrintF(doc,"%8,d $$TR+C,\"%s\"$$\n$$ID,2$$",tempm->user_data,tempm->name); + PutLineCntFiles(doc,tempm->sub); + DocPutS(doc,"$$ID,-2$$"); + } else { + if (IsSrcFile(tempm->name)) { + DocPrintF(doc,"%8,d ",tempm->user_data); + DocPrintF(doc,"$$LK,\"%s\",\"FI:%s\"$$\n", + tempm->name,tempm->full_name); + } + } + tempm=tempm->next; + } +} + +public I64 LineCntRep(U8 *files_find_mask="/SparrowOS/*",U8 *fu_flags=NULL) +{ + I64 fuf_flags=0,result=0; + CDoc *doc=DocNew; + CDirEntry *tempm1=NULL; + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + if (tempm1=FilesFind(files_find_mask,fuf_flags)) { + result=LineCntRepFiles(tempm1); + DocPrintF(doc,"%8,d $$TR+C,\"%s\"$$\n$$ID,2$$",result,files_find_mask); + PutLineCntFiles(doc,tempm1); + DocPutS(doc,"$$ID,-2$$"); + CDirListDel(tempm1); + } + DocInsDoc(DocCur,doc); + DocDel(doc); + return result; +} + +I64 TreeSizeRepFiles(CDirEntry *tempm) +{ + I64 result=0,i; + while (tempm) { + if (tempm->attr&_ATTR_DIR) + i=TreeSizeRepFiles(tempm->sub); + else + i=tempm->size; + tempm->user_data=i; + result+=i; + tempm=tempm->next; + } + return result; +} + +U0 PutTreeSizeFiles(CDoc *doc,CDirEntry *tempm) +{ + while (tempm) { + if (tempm->attr&_ATTR_DIR) { + DocPrintF(doc,"%10,d $$TR+C,\"%s\"$$\n$$ID,2$$",tempm->user_data,tempm->name); + PutTreeSizeFiles(doc,tempm->sub); + DocPutS(doc,"$$ID,-2$$"); + } else { + DocPrintF(doc,"%10,d ",tempm->user_data); + DocPrintF(doc,"$$LK,\"%s\",\"FI:%s\"$$\n", + tempm->name,tempm->full_name); + } + tempm=tempm->next; + } +} + +public I64 TreeSizeRep(U8 *files_find_mask="/SparrowOS/*",U8 *fu_flags=NULL) +{ + I64 fuf_flags=0,result=0; + CDoc *doc=DocNew; + CDirEntry *tempm1=NULL; + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + if (tempm1=FilesFind(files_find_mask,fuf_flags)) { + result=TreeSizeRepFiles(tempm1); + DocPrintF(doc,"%10,d $$TR+C,\"%s\"$$\n$$ID,2$$",result,files_find_mask); + PutTreeSizeFiles(doc,tempm1); + DocPutS(doc,"$$ID,-2$$"); + CDirListDel(tempm1); + } + DocInsDoc(DocCur,doc); + DocDel(doc); + return result; +} + +#help_index "" diff --git a/SparrowOS/Adam/LinkChk.CPP b/SparrowOS/Adam/LinkChk.CPP new file mode 100644 index 0000000..aefccd2 --- /dev/null +++ b/SparrowOS/Adam/LinkChk.CPP @@ -0,0 +1,78 @@ +#help_index "Debugging;Utils;Cmd Line (Typically)" + +I64 LinkChkDoc(CDoc *doc,I64 *_fuf_flags) +{ + U8 *st; + Bool found,unlock=DocLock(doc); + CDoc *old_doc=DocCur; + CDocEntry *doc_e=doc->root.next; + I64 result=0; + while (doc_e!=doc) { + if (ScanKey) { + 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; + DocLock(old_doc); + DocQueRem(old_doc); + DocQueIns(doc,Fs->last_doc); + found=DocLinkChk(st); + DocQueRem(doc); + DocQueIns(old_doc,Fs->last_doc); + DocUnlock(old_doc); + if (!found) { + PutFileLink(doc->filename.name,doc_e->y); + "$$FG,RED$$ %04d:%s\n$$FG$$",doc_e->y,st; + result++; + } + } else if (doc_e->type_u8==DOCT_ERROR) { + PutFileLink(doc->filename.name,doc_e->y); + "$$FG,RED$$ Doc Error\n$$FG$$"; + result++; + } + doc_e=doc_e->next; + } + if (unlock) DocUnlock(doc); + return result; +} + +I64 LinkChkFile(U8 *filename,I64 *_fuf_flags) +{ + CDoc *doc=DocRead(filename,DOCF_NO_CURSOR); + I64 result=LinkChkDoc(doc,_fuf_flags); + DocDel(doc); + return result; +} + +I64 LinkChkList(CDirEntry *tempm1,I64 *_fuf_flags) +{ + CDirEntry *tempm2; + I64 result=0; + while (tempm1 && !Bt(_fuf_flags,FUf_CANCEL)) { + tempm2=tempm1->next; + if (tempm1->attr & _ATTR_DIR) { + if (tempm1->sub) { + "%S %s\n","ST_SCANNING_DIR",tempm1->full_name; + result+=LinkChkList(tempm1->sub,_fuf_flags); + } + } else + result+=LinkChkFile(tempm1->full_name,_fuf_flags); + CDirEntryDel(tempm1); + tempm1=tempm2; + } + return result; +} + +public I64 LinkChk(U8 *files_find_mask=TEXT_FILE_MASK,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"),fu_flags); + return LinkChkList(FilesFind(files_find_mask,fuf_flags),&fuf_flags); +} +#help_index "" diff --git a/SparrowOS/Adam/LogIn.CPP b/SparrowOS/Adam/LogIn.CPP new file mode 100644 index 0000000..86f7785 --- /dev/null +++ b/SparrowOS/Adam/LogIn.CPP @@ -0,0 +1,168 @@ +#help_index "Task/Login" + +//This is temporary until defined in $LK,"HOME/Adam3fSys.CPP.Z","FI:HOME/Adam3fSys.CPP.Z"$. +U0 UserStartUp() +{ //Run each time a user a spawned + UseTermDoc; + DocCurAttr(WHITE<<4+BLUE); + Type("::/SparrowOS/Doc/Start.TXT.Z"); + 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"$. +U0 ServantStartUp() +{ //Run each time a servant task is spawned. + UseTermDoc; + LBts(&Fs->display_flags,DISPLAYf_SHOW); + WinZBufUpdate; + if (!IsSysDeterministic) + Preempt(ON); +} + +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$$"); + 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)) + st+=12; + DocPrintF(doc,"$$CM+LX,2,3$$$$BT,\"%s\",%d$$",st,tempm); + } + tempm=tempm->next; + } + DocPutS(doc,"\n\n\n\nLog-in as USER if you are new and get familiar\n" + "before you try to install.\n"); + do tempm=PopUpMenu(doc,DOF_WIN_MAX); + while (tempm<0); + + DocDel(doc); + result=AStrNew(tempm->full_name); + CDirListDel(tempm1); + return result; +} + +U0 SysLogin() +{ + U8 *st; + if (!FileFind(sys_acct)||!StrCmp(sys_acct+2,"/SparrowOS/Accts")) { + st=sys_acct; + sys_acct=PopUpSysAcctGet; + Free(st); + } +} + +#define ACCT_REGISTRY_FILENAME "HOME/Registry.CPP.Z" +CDoc *sys_registry_doc=NULL; +I64 sys_msg_flags[1]={0}; +F64 registry_version; + +Bool AcctCacheRegistry() +{ + Bool old_silent; + if (!sys_registry_doc) { + old_silent=Silent(ON); + sys_registry_doc=DocRead(ACCT_REGISTRY_FILENAME); + Silent(old_silent); + return FALSE; + } else + return TRUE; +} + +public Bool AcctRegSetDftEntry(U8 *path,U8 *val,Bool is_adam_entry=FALSE) +{ + Bool result,unlock_doc; + AcctCacheRegistry; + unlock_doc=DocLock(sys_registry_doc); + if (!DocTreeFind(sys_registry_doc,path)) { + DocTreeMake(sys_registry_doc,path); + DocPutS(sys_registry_doc,val); + if (is_adam_entry) { + if (Fs==adam_task) + ExePutS(val); + else + Adam("%s",val); + } + if (IsDrvWritable(dft_drv)) + DocWrite(sys_registry_doc); + result=FALSE; + } else + result=TRUE; + if (unlock_doc) + DocUnlock(sys_registry_doc); + return result; +} + +public I64 AcctRegExecuteBranch(U8 *path) +{ + AcctCacheRegistry; + return DocTreeBranchExe(sys_registry_doc,path); +} + +public Bool AcctRegWriteBranch(U8 *path,U8 *fmt,...) +{ + Bool result,unlock_doc; + CDocEntry *tree_branch,*start_indent,*end_indent; + U8 *buf=SPrintFJoin(NULL,fmt,argc,argv); + AcctCacheRegistry; + unlock_doc=DocLock(sys_registry_doc); + if (result=DocTreeFind(sys_registry_doc,path,&tree_branch,&start_indent,&end_indent)) + DocCut(sys_registry_doc,tree_branch,end_indent); + DocTreeMake(sys_registry_doc,path); + DocPutS(sys_registry_doc,buf); + if (IsDrvWritable(dft_drv)) + DocWrite(sys_registry_doc); + if (unlock_doc) + DocUnlock(sys_registry_doc); + Free(buf); + return result; +} + +U0 AcctOneTimePopUp(I64 flag_num,U8 *msg) +{ //You're not supposed to make system pop-up flags, only me. + CDoc *doc=DocNew; + CDocEntry *doc_e; + if (!Bt(sys_msg_flags,flag_num)) { + if (msg) DocPutS(doc,msg); + doc_e=DocPutS(doc,"\n$$CB+LE,\"Do not show this msg again.\",1$$"); + 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", + "sys_msg_flags[0]=0x%X;\n", + sys_msg_flags[0]); + } + DocDel(doc); + } +} + +U0 RegistryInit() +{ + U8 buf[136]; + Bool existed=FileFind(ACCT_REGISTRY_FILENAME),version_present; + AcctRegSetDftEntry("Adam/SparrowOS/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); + AcctRegExecuteBranch("Adam"); + + //Convert old registries + if (existed && !version_present) + registry_version=5.10; + if (registry_version!=os_version) { + if (registry_version<5.101) + AcctRegWriteBranch("SparrowOS",""); + AcctRegWriteBranch("Adam/SparrowOS/SysRegVer",buf); + AcctRegExecuteBranch("Adam"); + } +} + +#help_index "" diff --git a/SparrowOS/Adam/Math2a.CPP b/SparrowOS/Adam/Math2a.CPP new file mode 100644 index 0000000..a56cd0e --- /dev/null +++ b/SparrowOS/Adam/Math2a.CPP @@ -0,0 +1,138 @@ +#help_index "Math" +public U0 R2P(F64 *_mag=NULL,F64 *_arg=NULL,F64 x,F64 y) +{ //Rect to polar + //returns angle in range (-ã,ã] + if (_arg) + *_arg=Arg(x,y); + if (_mag) + *_mag=Sqrt(x*x+y*y); +} + +public U0 P2R(F64 *_x=NULL,F64 *_y=NULL,F64 mag,F64 arg) +{ //Polar to Rect + if (_x) + *_x=mag*Cos(arg); + if (_y) + *_y=mag*Sin(arg); +} + +public F64 Wrap(F64 é,F64 base=-ã) +{ //returns angle in range [base,base+2*ã) + F64 result=é%(2*ã); + if (result>=base+2*ã) + result-=2*ã; + else if (result=1.0) + return ã/2.0; + c=Sqrt(1.0-c); + return ATan(s/c); +} + +public F64 ACos(F64 c) +{ + F64 s; + if (!c) + return ã/2.0; + s=c*c; + if (s>=1.0) + return 0.0; + s=Sqrt(1.0-s); + return ATan(s/c); +} + +public F64 Sinh(F64 x) +{ + return 0.5*(Exp(x)-Exp(-x)); +} + +public F64 Cosh(F64 x) +{ + return 0.5*(Exp(x)+Exp(-x)); +} + +#help_index "Math/Complex" +public Complex *CAdd(Complex *n1,Complex *n2,Complex *sum) +{ + sum->x=n1->x+n2->x; + sum->y=n1->y+n2->y; + return sum; +} + +public Complex *CSub(Complex *n1,Complex *n2,Complex *diff) +{ + diff->x=n1->x-n2->x; + diff->y=n1->y-n2->y; + return diff; +} + +public Complex *CMul(Complex *n1,Complex *n2,Complex *prod) +{ + prod->x=n1->x*n2->x-n1->y*n2->y; + prod->y=n1->x*n2->y+n1->y*n2->x; + return prod; +} + +public Complex *CDiv(Complex *n1,Complex *n2,Complex *quot) +{ + F64 m1,a1,m2,a2; + R2P(&m1,&a1,n1->x,n1->y); + R2P(&m2,&a2,n2->x,n2->y); + m1/=m2; + a1-=a2; + quot->x=m1*Cos(a1); + quot->y=m1*Sin(a1); + return quot; +} + +public Complex *CScale(Complex *dst,F64 s) +{ + dst->x*=s; + dst->y*=s; + return dst; +} + +public Complex *CCopy(Complex *dst,Complex *src) +{ + dst->x=src->x; + dst->y=src->y; + return dst; +} + +public Complex *CEqu(Complex *dst,F64 x,F64 y) +{ + dst->x=x; + dst->y=y; + return dst; +} + +public Complex *CPoly(Complex *dst,Complex *x,Complex *zeros,I64 n) +{ + I64 i; + Complex n1,n2; + if (n>0) { + CSub(x,&zeros[0],dst); + for (i=1;in_internal*sizeof(F64); + F64 *ptr=ode->array_base; + + ode->state_internal=ptr; + ptr(I64)+=s; + ode->state_scale=ptr; + ptr(I64)+=s; + ode->DstateDt=ptr; + ptr(I64)+=s; + ode->initial_state=ptr; + ptr(I64)+=s; + ode->temp0=ptr; + ptr(I64)+=s; + ode->temp1=ptr; + ptr(I64)+=s; + ode->temp2=ptr; + ptr(I64)+=s; + ode->temp3=ptr; + ptr(I64)+=s; + ode->temp4=ptr; + ptr(I64)+=s; + ode->temp5=ptr; + ptr(I64)+=s; + ode->temp6=ptr; + ptr(I64)+=s; + ode->temp7=ptr; +} + +public CMathODE *ODENew(I64 n,F64 max_tolerance=1e-6,I64 flags=0) +{ +//See $LK,"flags","MN:ODEF_HAS_MASSES"$. + +//The tolerance is not precise. +//You can min_tolerance and it will +//dynamically adjust tolerance to utilize +//the CPU. + + I64 s=n*sizeof(F64); + CMathODE *ode=MAlloc(sizeof(CMathODE)); + + ode->t=0; + ode->t_scale=1.0; + ode->base_t=0; + ode->flags=flags; + ode->n_internal=ode->n=n; + ode->h=1e-6; + ode->h_min=1e-64; + ode->h_max=1e32; + ode->max_tolerance=ode->min_tolerance=ode->tolerance_internal=max_tolerance; + ode->win_task=ode->mem_task=Fs; + ode->derivative=NULL; + QueInit(&ode->next_mass); + QueInit(&ode->next_spring); + ode->acceleration_limit=ode->drag_v=ode->drag_v2=ode->drag_v3=0; + + ode->state=CAlloc(s); + ode->array_base=MAlloc(12*s); + ODERstPtrs(ode); + ode->ode_signature=ODE_SIGNATURE_VAL; + return ode; +} + +public U0 ODEDel(CMathODE *ode) +{ + if (!ode) return; + ode->ode_signature=0; + Free(ode->state); + Free(ode->array_base); + Free(ode); +} + +public I64 ODESize(CMathODE *ode) +{ + if (!ode) + return 0; + else + return MSize2(ode->state)+MSize2(ode->array_base)+MSize2(ode); +} + +U0 ODESetMassesPtrs(CMathODE *ode,F64 *state,F64 *DstateDt) +{ + COrder2D3 *ptr1=state(F64 *)+ode->n, + *ptr2=DstateDt(F64 *)+ode->n; + CMass *tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + tempm->state=ptr1++; + tempm->DstateDt=ptr2++; + tempm=tempm->next; + } +} + +U0 ODEState2Internal(CMathODE *ode) +{ + CMass *tempm; + F64 *old_array_base; + I64 mass_cnt; + + if (ode->flags&ODEF_HAS_MASSES) { + mass_cnt=0; + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + mass_cnt++; + tempm=tempm->next; + } + old_array_base=ode->array_base; + ode->n_internal=ode->n+6*mass_cnt; + ode->array_base=MAlloc(12*ode->n_internal*sizeof(F64),ode->mem_task); + Free(old_array_base); + ODERstPtrs(ode); + + ODESetMassesPtrs(ode,ode->state_internal,ode->state_internal); + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + MemCpy(tempm->state,&tempm->saved_state,sizeof(COrder2D3)); + tempm=tempm->next; + } + } + MemCpy(ode->state_internal,ode->state,ode->n*sizeof(F64)); +} + +U0 ODEInternal2State(CMathODE *ode) +{ + CMass *tempm; + MemCpy(ode->state,ode->state_internal,ode->n*sizeof(F64)); + if (ode->flags&ODEF_HAS_MASSES) { + ODESetMassesPtrs(ode,ode->state_internal,ode->state_internal); + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + MemCpy(&tempm->saved_state,tempm->state,sizeof(COrder2D3)); + tempm=tempm->next; + } + } +} + +public U0 ODERenum(CMathODE *ode) +{ + I64 i; + CSpring *temps; + CMass *tempm; + + i=0; + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + tempm->num=i++; + tempm=tempm->next; + } + + i=0; + temps=ode->next_spring; + while (temps!=&ode->next_spring) { + temps->num=i++; + temps->end1_num=temps->end1->num; + temps->end2_num=temps->end2->num; + temps=temps->next; + } +} + +public CMass *MassFind(CMathODE *ode,F64 x,F64 y,F64 z=0) +{ + CMass *tempm,*best_mass=NULL; + F64 d,best_d=MAX_F64; + + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + d=Sqr(tempm->x-x)+Sqr(tempm->y-y)+Sqr(tempm->z-z); + if (dnext; + } + return best_mass; +} + +public CSpring *SpringFind(CMathODE *ode,F64 x,F64 y,F64 z=0) +{ + CSpring *temps,*best_spring=NULL; + F64 d,best_d=MAX_F64; + + temps=ode->next_spring; + while (temps!=&ode->next_spring) { + d=Sqr((temps->end1->x+temps->end2->x)/2-x)+ + Sqr((temps->end1->y+temps->end2->y)/2-y)+ + Sqr((temps->end1->z+temps->end2->z)/2-z); + if (dnext; + } + return best_spring; +} + +public U0 MassOrSpringFind(CMathODE *ode,CMass **result_mass,CSpring **result_spring, + F64 x,F64 y,F64 z=0) +{ + CMass *tempm,*best_mass=NULL; + CSpring *temps,*best_spring=NULL; + F64 d,best_d=MAX_F64; + + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + d=Sqr(tempm->x-x)+Sqr(tempm->y-y)+Sqr(tempm->z-z); + if (dnext; + } + + temps=ode->next_spring; + while (temps!=&ode->next_spring) { + d=Sqr((temps->end1->x+temps->end2->x)/2-x)+ + Sqr((temps->end1->y+temps->end2->y)/2-y)+ + Sqr((temps->end1->z+temps->end2->z)/2-z); + if (dnext; + } + if (result_mass) *result_mass =best_mass; + if (result_spring) *result_spring=best_spring; +} + +public CMass *MassFindNum(CMathODE *ode,I64 num) +{ + CMass *tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + if (tempm->num==num) + return tempm; + tempm=tempm->next; + } + return NULL; +} + +public U0 ODERstInactive(CMathODE *ode) +{ + CMass *tempm; + CSpring *temps; + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + tempm->flags&=~MSF_INACTIVE; + tempm=tempm->next; + } + temps=ode->next_spring; + while (temps!=&ode->next_spring) { + temps->flags&=~SSF_INACTIVE; + temps=temps->next; + } +} + +U0 ODECalcSprings(CMathODE *ode) +{ + CSpring *temps=ode->next_spring; + CMass *e1,*e2; + F64 d; + CD3 p; + while (temps!=&ode->next_spring) { + if (temps->flags&SSF_INACTIVE) { + temps->displacement=0; + temps->f=0; + } else { + e1=temps->end1; + e2=temps->end2; + d=D3Norm(D3Sub(&e2->state->x,&e1->state->x,&p)); + temps->displacement=d-temps->rest_len; + temps->f=temps->displacement*temps->constant; + if (temps->f>0 && temps->flags&SSF_NO_TENSION) + temps->f=0; + else if (temps->f<0 && temps->flags&SSF_NO_COMPRESSION) + temps->f=0; + if (d>0) { + D3MulEqu(&p,temps->f/d); + D3AddEqu(&e1->DstateDt->DxDt,&p); + D3SubEqu(&e2->DstateDt->DxDt,&p); + } + } + temps=temps->next; + } +} + +U0 ODECalcDrag(CMathODE *ode) +{ + CMass *tempm; + F64 d,dd; + CD3 p; + if (ode->drag_v || ode->drag_v2 || ode->drag_v3) { + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + if (!(tempm->flags & MSF_INACTIVE) && + tempm->drag_profile_factor && + (dd=D3SqrNorm(&tempm->state->DxDt))) { + d=ode->drag_v; + if (ode->drag_v2) + d+=ode->drag_v2*Sqrt(dd); + if (ode->drag_v3) + d+=dd*ode->drag_v3; + D3SubEqu(&tempm->DstateDt->DxDt, + D3Mul(d*tempm->drag_profile_factor,&tempm->state->DxDt,&p)); + } + tempm=tempm->next; + } + } +} + +U0 ODEApplyAccelerationLimit(CMathODE *ode) +{ + CMass *tempm; + F64 d; + if (ode->acceleration_limit) { + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + if (!(tempm->flags & MSF_INACTIVE) && + (d=D3Norm(&tempm->DstateDt->DxDt))>ode->acceleration_limit) + D3MulEqu(&tempm->DstateDt->DxDt,ode->acceleration_limit/d); + tempm=tempm->next; + } + } +} + +U0 ODECallDerivative(CMathODE *ode,F64 t,F64 *state,F64 *DstateDt) +{ + CMass *tempm; + if (ode->flags&ODEF_HAS_MASSES) { + ODESetMassesPtrs(ode,state,DstateDt); + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + if (!(tempm->flags&MSF_INACTIVE)) { + D3Zero(&tempm->DstateDt->DxDt); + D3Copy(&tempm->DstateDt->x,&tempm->state->DxDt); + } + tempm=tempm->next; + } + ODECalcSprings(ode); + ODECalcDrag(ode); + (*ode->derivative)(ode,t,state,DstateDt); + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + if (!(tempm->flags&MSF_INACTIVE)) { + if (tempm->flags&MSF_FIXED) { + D3Zero(&tempm->DstateDt->DxDt); + D3Zero(&tempm->DstateDt->x); + } else if (tempm->mass) + D3DivEqu(&tempm->DstateDt->DxDt,tempm->mass); + } + tempm=tempm->next; + } + ODEApplyAccelerationLimit(ode); + } else + (*ode->derivative)(ode,t,state,DstateDt); +} + +U0 ODEOneStep(CMathODE *ode) +{ + I64 i; + ODECallDerivative(ode,ode->t,ode->state_internal,ode->DstateDt); + for (i=0;in_internal;i++) + ode->state_internal[i]+=ode->h*ode->DstateDt[i]; + ode->t+=ode->h; +} + +U0 ODERK4OneStep(CMathODE *ode) +{ + I64 i,n=ode->n_internal; + F64 xh,hh,h6,*dym,*dyt,*yt,*DstateDt; + + dym =ode->temp0; + dyt =ode->temp1; + yt =ode->temp2; + DstateDt=ode->temp3; + hh =0.5*ode->h; + h6 =ode->h / 6.0; + xh =ode->t + hh; + + ODECallDerivative(ode,ode->t,ode->state_internal,ode->DstateDt); + for (i=0;istate_internal[i]+hh*DstateDt[i]; + ODECallDerivative(ode,xh,yt,dyt); + for (i=0;istate_internal[i]+hh*dyt[i]; + ODECallDerivative(ode,xh,yt,dym); + for (i=0;istate_internal[i]+ode->h*dym[i]; + dym[i]+=dyt[i]; + } + ode->t+=ode->h; + ODECallDerivative(ode,ode->t,yt,dyt); + for (i=0;istate_internal[i]+=h6*(DstateDt[i]+dyt[i]+2.0*dym[i]); +} + + +#define ODEa2 0.2 +#define ODEa3 0.3 +#define ODEa4 0.6 +#define ODEa5 1.0 +#define ODEa6 0.875 +#define ODEb21 0.2 +#define ODEb31 (3.0/40.0) +#define ODEb32 (9.0/40.0) +#define ODEb41 0.3 +#define ODEb42 (-0.9) +#define ODEb43 1.2 +#define ODEb51 (-11.0/54.0) +#define ODEb52 2.5 +#define ODEb53 (-70.0/27.0) +#define ODEb54 (35.0/27.0) +#define ODEb61 (1631.0/55296.0) +#define ODEb62 (175.0/512.0) +#define ODEb63 (575.0/13824.0) +#define ODEb64 (44275.0/110592.0) +#define ODEb65 (253.0/4096.0) +#define ODEc1 (37.0/378.0) +#define ODEc3 (250.0/621.0) +#define ODEc4 (125.0/594.0) +#define ODEc6 (512.0/1771.0) +#define ODEdc1 (37.0/378.0-2825.0/27648.0) +#define ODEdc3 (250.0/621.0-18575.0/48384.0) +#define ODEdc4 (125.0/594.0-13525.0/55296.0) +#define ODEdc5 (-277.0/14336.0) +#define ODEdc6 (512.0/1771.0-0.25) + +U0 ODECashKarp(CMathODE *ode) +{ + I64 i,n=ode->n_internal; + F64 h=ode->h,*state=ode->state_internal,*DstateDt=ode->DstateDt,*ak2,*ak3,*ak4,*ak5,*ak6,*tempstate,*stateerr,*outstate; + + ak2=ode->temp0; + ak3=ode->temp1; + ak4=ode->temp2; + ak5=ode->temp3; + ak6=ode->temp4; + tempstate=ode->temp5; + outstate=ode->temp6; + stateerr=ode->temp7; + + for (i=0;it+ODEa2*h,tempstate,ak2); + for (i=0;it+ODEa3*h,tempstate,ak3); + for (i=0;it+ODEa4*h,tempstate,ak4); + for (i=0;it+ODEa5*h,tempstate,ak5); + for (i=0;it+ODEa6*h,tempstate,ak6); + for (i=0;itemp6,*stateerr=ode->temp7; + while (TRUE) { + ode->h=Limit(ode->h,ode->h_min,ode->h_max); + ODECashKarp(ode); + errmax=0.0; + for (i=0;in_internal;i++) { + temp=Abs(stateerr[i]/ode->state_scale[i]); + if (temp>errmax) + errmax=temp; + } + errmax/=ode->tolerance_internal; + if (errmax<=1.0 || ode->h==ode->h_min) break; + temp=ode->h*SAFETY*errmax`PSHRNK; + if (temp<0.1*ode->h) + ode->h*=0.1; + else + ode->h=temp; + } + ode->t+=ode->h; + if (errmax>ERRCON) + ode->h*=SAFETY*errmax`PGROW; + else + ode->h*=5.0; + ode->h=Limit(ode->h,ode->h_min,ode->h_max); + MemCpy(ode->state_internal,tempstate,sizeof(F64)*ode->n_internal); +} + +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 +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. + +It is adaptive step-sized, so it slows down when an important +event is taking place to improve accuracy, but in my implementation +it has a timeout. + +*/ + I64 i; + F64 d,start_time,timeout_time,t_desired,t_initial,interpolation; + CMathODE *ode; + Bool old_suspend; + + if (task->next_ode==&task->next_ode) + task->last_ode_time=0; + else { + //See $LK,"GrUpdateWins","MN:GrUpdateWins"$() + if (!Bt(&task->win_inhibit,WIf_ODE)) { + //TODO: Being preempted here woulds be bad + if (task!=Fs) + old_suspend=Suspend(task); + //We will not pick a time limit based on + //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; + d=1.0/win_actual_refresh; + timeout_time=start_time+ + (task->last_ode_time/d+0.1)/(last_refresh_ode_time/d+0.1)* + ode_allocated_factor*d; + ode=task->next_ode; + while (ode!=&task->next_ode) { + if (ode->ode_signature==ODE_SIGNATURE_VAL) { + t_initial=ode->t; + d=tNP; + 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 + else if (ode->derivative) { + ODEState2Internal(ode); + MemCpy(ode->initial_state,ode->state_internal,ode->n_internal*sizeof(F64)); + while (ode->th_max=t_desired-ode->t; + ODECallDerivative(ode,ode->t,ode->state_internal,ode->DstateDt); + for (i=0;in_internal;i++) + ode->state_scale[i]=Abs(ode->state_internal[i])+ + Abs(ode->DstateDt[i]*ode->h)+ode->tolerance_internal; + ODERK5OneStep(ode); + if (tNP>timeout_time) { + ode->base_t+=t_desired-ode->t; //Slip + goto ode_done; + +} + } + + //Interpolate if end time was not exact. + if (ode->t!=t_desired) { + if (interpolation=ode->t-t_initial) { + interpolation=(t_desired-t_initial)/interpolation; + if (interpolation!=1.0) + for (i=0;in_internal;i++) + ode->state_internal[i]=(ode->state_internal[i]- + ode->initial_state[i])*interpolation+ + ode->initial_state[i]; + } + ode->t=t_desired; + } +ode_done: + ODEInternal2State(ode); + + //Convenience call to set vals + ODECallDerivative(ode,ode->t,ode->state_internal,ode->DstateDt); + } + ode->base_t+=(1.0-ode->t_scale)*d; + } + ode=ode->next; + } + + //Now, we will dynamically adjust tolerances. + + //We will regulate the tolerances + //to fill the time we decided was + //okay to devote to ODE's. + //Since we might have multiple ODE's + //active we scale them by the same factor. + + //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; + + 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) { + if (ode->min_tolerance!=ode->max_tolerance) { + if (d>0) + ode->tolerance_internal*=10.0`d; + else + ode->tolerance_internal*=2.0`d; + } + ode->tolerance_internal=Limit(ode->tolerance_internal,ode->min_tolerance,ode->max_tolerance); + } + ode=ode->next; + } + refresh_ode_time+=task->last_ode_time=tNP-start_time; + //See $LK,"GrUpdateWins","MN:GrUpdateWins"$() + if (task!=Fs) + Suspend(task,old_suspend); + } + } +} + +#help_index "" diff --git a/SparrowOS/Adam/MemRep.CPP b/SparrowOS/Adam/MemRep.CPP new file mode 100644 index 0000000..78f9317 --- /dev/null +++ b/SparrowOS/Adam/MemRep.CPP @@ -0,0 +1,238 @@ +#help_index "Info;Utils;Memory/Info;Cmd Line (Typically)" + +I64 TSSSize(CTSS *tss) +{ + return MSize2(tss)+ + MSize2(tss->st0)+ + MSize2(tss->st1)+ + MSize2(tss->st2); +} + +I64 PenBrushesSize() +{ + I64 result=0,i; + for (i=0;istk; + I64 result=0; + while (temps) { + result+=MSize2(temps); + temps=temps->next_stk; + } + return result; +} + +I64 TaskQueSize(CTask *task) +{ + CTaskCmd *tempc,*tempc1; + I64 result=0; + PushFD; + Cli; + while (LBts(&task->locked_flags,TASKLf_TASK_LOCK)) + Pause; + tempc1=&task->next_servant_cmd; + tempc=tempc1->next; + while (tempc!=tempc1) { + result+=MSize2(tempc); + if (tempc->cmd_code==TASKCT_EXECUTE_STR || + tempc->cmd_code==TASKCT_EXECUTE_FILE || + tempc->cmd_code==TASKCT_TEXT_INPUT) + result+=MSize2(tempc->data); + tempc=tempc->next; + } + LBtr(&task->locked_flags,TASKLf_TASK_LOCK); + PopFD; + return result; +} + +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); + } + return result; +} + +I64 PrtsSize() +{ + I64 i,result=MSize2(sys_prts); + for (i=0;irsp=GetStkPtr; + st=MStrUtil(task->task_title,SUF_REM_CTRL_CHARS|SUF_SAFE_DOLLAR); + "$$FG,GREEN$$Task:%010X$$FG,CYAN$$ %-30ts$$FG$$\n$$ID,2$$",task,st; + Free(st); + "$$FG,PURPLE$$Alloced:%010X Used:%010X $$FG,RED$$Unused:%010X$$FG$$\n", + TaskAllocatedMem(task,override_validate), + TaskUsedMem(task,override_validate), + TaskUnusedAllocatedMem(task,override_validate); + "HashTable:%010X\n",HashTableSize2(task->hash_table); + + i=UnusedStk(task); + if (0<=i<=task->stk->stk_size) + "Stk Size :%010X Unused:%010X\n",TaskStkSize(task),i; + else + "Stk Size :%010X $$FG,RED$$$$BK,1$$Overflow$$BK,0$$$$FG$$\n",TaskStkSize(task); + + doc=task->last_doc; + while (doc!=(&task->next_doc)(U8 *)-offset(CDoc.next_doc) && + doc->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL) { + "Doc :%010X\n",DocSize(doc); + doc=doc->last_doc; + } + + lx=task->next_lex; + while (lx!=&task->next_lex) { + "Lex :%010X\n",LexSize(lx); + lx=lx->next; + } + + o=task->next_ode; + while (o!=&task->next_ode) { + "CMathODE :%010X\n",ODESize(o); + o=o->next; + } + + if (task==sys_winmgr_task) { + "gr_dc2\t\t:%010X\n",DCSize(gr_dc2); + "gr_dc\t\t:%010X\n",DCSize(gr_dc); + "gr_dc_cache\t\t:%010X\n",DCSize(gr_dc_cache); + "gr_screen_image\t:%010X\n",DCSize(gr_screen_image); + "gr_zoomed_dc\t:%010X\n",DCSize(gr_zoomed_dc); + "gr_pen_brushes\t:%010X\n",PenBrushesSize; + "gr_1_to_8_bits\t:%010X\n",MSize2(gr_1_to_8_bits); + "gr_1_to_8_colors\t:%010X\n",MSize2(gr_1_to_8_colors); + "gr_text_base\t:%010X\n",MSize2(gr_text_base); + "gr_vga_text_cache\t:%010X\n",MSize2(gr_vga_text_cache); + "gr_win_z_buf\t:%010X\n",MSize2(gr_win_z_buf)+MSize2(gr_win_uncovered_bitmap); + "gr_screen_zoom_tbles:%010X\n",ScreenZoomTablesSize; + } else if (task==adam_task) { + j=0;k=0;m=0;n=0; + for (i=0;itss); + task1=c->seth_task; + do { + if (task1!=adam_task) {//adam task located in OSMain mem + j+=MSize2(task1); + m+=MSize2(task1->code_heap); + if (task1->data_heap!=task1->code_heap) + m+=MSize2(task1->code_heap); + } + n+=TaskQueSize(task1); + task1=task1->next_task; + } while (task1!=c->seth_task); + task1=c->idle_task; + j+=MSize2(task1); + m+=MSize2(task1->code_heap); + if (task1->data_heap!=task1->code_heap) + m+=MSize2(task1->code_heap); + } + "TaskStructs\t:%010X\n",j; + "TSSes\t:%010X\n",k; + "HeapCtrls\t:%010X\n",m; + "TaskQues\t:%010X\n",n; + "BlkDevs\t:%010X\n",BlkDevsSize; + "Prts\t:%010X\n",PrtsSize; + "Audio\t:%010X\n",CallExtStr("AudioSize"); + if (sys_dsk_cache_base) + "DskCache\t:%010X\n", + MSize2(sys_dsk_cache_base)+MSize2(sys_dsk_cache_hash_table)+MSize2(sys_dsk_cache_ctrl); + "WordStat\t:%010X\n",CallExtStr("WordStatSize"); + "Clipboard\t:%010X\n",DocSize(sys_clipboard_doc); + } + "$$ID,-2$$"; + return TRUE; +} + + +public U0 MemRep() +{ + I64 i; + CTask *task; + CCPU *c; + U32 *u32_ptr; + Bool old_preempt=Preempt(OFF); + CBinFile *bfh=sys_boot_base-sizeof(CBinFile); + bfh(I64)+=bfh->file_size-1; + + "$$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; + "VGA\t\t:00000A0000-00000BFFFF\n"; + "$$ID,-2$$$$FG,BLACK$$High Memory\t:0000100000-%010X$$FG$$\n", + sys_heap_limit; + "$$ID,2$$Page Tables\t:%010X-%010X\n",PAGE_TABLE_BASE,sys_heap_base-1; + "$$ID,-2$$"; + + if (sys_data_bp) { + "$$FG,BLACK$$Code Heap:%010X Used:%010X $$FG,RED$$Unused:%010X$$FG$$\n", + sys_code_bp->size*PAGE_SIZE,sys_code_bp->allocated_u8s,UnusedBPMem(sys_code_bp); + "$$FG,BLACK$$Data Heap:%010X Used:%010X $$FG,RED$$Unused:%010X$$FG$$\n", + sys_data_bp->size*PAGE_SIZE,sys_data_bp->allocated_u8s,UnusedBPMem(sys_data_bp); + } else + "$$FG,BLACK$$Code/Data Heap:%010X Used:%010X $$FG,RED$$Unused:%010X$$FG$$\n", + sys_code_bp->size*PAGE_SIZE,sys_code_bp->allocated_u8s,UnusedBPMem(sys_code_bp); + + for (i=0;iseth_task; + do { + if (!MemRepTask(task)) + break; + task=task->next_task; + } while (task!=c->seth_task); + MemRepTask(c->idle_task,TRUE); + "$$ID,-2$$"; + } + + "$$FG,GREEN$$Independent Heaps$$FG$$\n$$ID,2$$"; + "$$FG,BLACK$$sys_uncached_heap:%010X Used:%010X $$FG,RED$$Unused:%010X$$FG$$\n", + sys_uncached_heap->bp->size*PAGE_SIZE,sys_uncached_heap->used_u8s,UnusedBPMem(sys_uncached_heap->bp); + "$$ID,-2$$\n"; + Preempt(old_preempt); +} + + #help_index "" diff --git a/SparrowOS/Adam/Menu.CPP b/SparrowOS/Adam/Menu.CPP new file mode 100644 index 0000000..707445e --- /dev/null +++ b/SparrowOS/Adam/Menu.CPP @@ -0,0 +1,241 @@ +#help_index "Menus" +#help_file "::/SparrowOS/Doc/Menus" + +CMenuEntry *sys_cur_submenu_entry=NULL; + +public CMenuEntry *MenuSubEntryFind(CMenuEntry *first,U8 *entry_name) +{ + while (first) { + if (!StrCmp(first->name,entry_name)) + return first; + first=first->next; + } + return NULL; +} + +public CMenuEntry *MenuEntryFind(CMenu *m,U8 *full_name) +{ + U8 *st,*st2; + CMenuEntry *tempse; + if (!m || m->mu_signature!=MENU_SIGNATURE_VAL || !full_name) + return NULL; + st=StrNew(full_name); + st2=StrNew(full_name); + tempse=(&m->sub)(U8 *)-offset(CMenuEntry.sub); + while (*st && tempse) { + StrFirstRem(st,"/",st2); + tempse=MenuSubEntryFind(tempse->sub,st2); + } + return tempse; +} + +CMenuEntry *MenuNewSub(CLex *lx,CTask *task) +{ + CMenuEntry *tempme=NULL,*tempse; + if (lx->token==TK_IDENT) { + tempme=CAlloc(sizeof(CMenuEntry),task); + if (StrLen(lx->ident)>31) + lx->ident[31]=0; + StrCpy(tempme->name,lx->ident); + Lex(lx); //skip ident + if (lx->token=='(') { + tempme->msg_code=MSG_KEY_DOWN_UP; + Lex(lx); //Skip ( + if (lx->token!=',' && lx->token!=')') + tempme->msg_code=Expression(lx); + if (lx->token==',') + Lex(lx); + if (lx->token!=',' && lx->token!=')') + tempme->p1=Expression(lx); + if (lx->token==',') + Lex(lx); + if (lx->token!=',' && lx->token!=')') + tempme->p2=Expression(lx); + if (lx->token!=')') + LexExcept(lx,"ST_MISSING_RIGHT_PAREN"); + if (Lex(lx)!=';') + LexExcept(lx,"ST_MISSING_SEMICOLON"); + Lex(lx); //Skip ; + } else if (lx->token=='{') { + Lex(lx); //Skip { + tempme->dir=TRUE; + tempse=&tempme->sub; + while (tempse && lx->token!='}') + tempse=tempse->next=MenuNewSub(lx,task); + if (lx->token!='}') + LexExcept(lx,"ST_MISSING_RIGHT_BRACE"); + else + Lex(lx); //Skip } + } else + LexExcept(lx,"ST_EXPECTING_LEFT_BRACE"); + } + return tempme; +} + +public CMenu *MenuNew(U8 *st,I64 flags=0,CTask *task=NULL) +{ + CMenu *m; + CMenuEntry *tempse; + CLex *lx=LexNew(st,LF_DONT_FREE_BUF); + if (!task) task=Fs; + Lex(lx); + m=CAlloc(sizeof(CMenu),task); + m->task=task; + m->flags=flags; + m->attr =LTBLUE<<4 +YELLOW; + m->checked_attr=LTGREEN<<4+BROWN; + tempse=&m->sub; + while (tempse) + tempse=tempse->next=MenuNewSub(lx,task); + LexDel(lx); + m->mu_signature=MENU_SIGNATURE_VAL; + return m; +} + +public CMenu *MenuFile(U8 *filename,I64 flags=0,CTask *task=NULL) +{ + CMenu *m; + U8 *st=MSPrintF("#include \"%s\"",filename); + m=MenuNew(st,flags,task); + Free(st); + return m; +} + +U0 MenuDelSub(CMenuEntry *tempme) +{ + CMenuEntry *tempse,*tempse1; + if (tempme) { + tempse=tempme->sub; + while (tempse) { + tempse1=tempse->next; + MenuDelSub(tempse); + tempse=tempse1; + } + Free(tempme); + } +} + +public U0 MenuDel(CMenu *m) +{ + CMenuEntry *tempme,*tempme1; + if (!m || m->mu_signature!=MENU_SIGNATURE_VAL) + return; + m->mu_signature=0; + tempme=m->sub; + while (tempme) { + tempme1=tempme->next; + MenuDelSub(tempme); + tempme=tempme1; + } + Free(m); +} + +I64 MenuEntryWidth(CMenuEntry *tempme) +{ + I64 result=StrLen(tempme->name); + CMenuEntry *tempse=tempme->sub; + while (tempse) { + result=MaxI64(result,StrLen(tempse->name)); + tempse=tempse->next; + } + return result+1; +} + +public CMenu *MenuPush(U8 *st) +{ + CMenu *m=MenuNew(st); + m->next=Fs->cur_menu; + Fs->cur_menu=m; + return m; +} + +public CMenu *MenuFilePush(U8 *filename) +{ + CMenu *m=MenuFile(filename); + m->next=Fs->cur_menu; + Fs->cur_menu=m; + return m; +} + +public U0 MenuPop() +{ + CMenu *m=Fs->cur_menu; + if (!m) return; + Fs->cur_menu=m->next; + MenuDel(m); +} + +U0 DrawMenu(CDC *dc) +{ + CMenu *m; + CMenuEntry *tempme,*tempse,*cur_submenu=NULL; + U8 *st=NULL; + CTask *task=sys_focus_task; + I64 i,w,x0,y0,x1=ipx,y1=ipy; + if (!TaskValidate(task) || !(m=task->cur_menu) || + m->mu_signature!=MENU_SIGNATURE_VAL) { + sys_cur_submenu_entry=NULL; + return; + } + + dc->color=m->attr>>4; + GrRect(dc,0,0,GR_WIDTH,FONT_HEIGHT); + x0=0; + tempme=m->sub; + while (tempme) { + w=MenuEntryWidth(tempme)*FONT_WIDTH; + if (x0<=x1color=m->attr&15; + GrRect(dc,x0,0,w,FONT_HEIGHT); + dc->color=m->attr>>4; + } else + dc->color=m->attr&15; + GrPutS(dc,x0,0,tempme->name); + y0=FONT_HEIGHT; + tempse=tempme->sub; + while (tempse) { + if (tempse->checked) + i=m->checked_attr; + else + i=m->attr; + if (y0<=y1msg_code==MSG_KEY_DOWN||tempse->msg_code==MSG_KEY_DOWN_UP) { + if (!tempse->p2) + tempse->p2=A2ScanCode(tempse->p1); + st=ScanCode2KeyName(tempse->p2); + } + sys_cur_submenu_entry=cur_submenu=tempse; + dc->color=i&15; + GrRect(dc,x0,y0,w,FONT_HEIGHT); + dc->color=i>>4; + GrPutS(dc,x0,y0,tempse->name); + if (st) { + dc->color=i>>4; + GrRect(dc,x0+w,y0-FONT_HEIGHT,(StrLen(st)+1)*FONT_WIDTH,FONT_HEIGHT*3); + dc->color=i&15; + GrPutS(dc,x0+w,y0,st); + Free(st); + } + } else { + dc->color=i>>4; + GrRect(dc,x0,y0,w,FONT_HEIGHT); + dc->color=i&15; + GrPutS(dc,x0,y0,tempse->name); + } + y0+=FONT_HEIGHT; + tempse=tempse->next; + } + } else { + dc->color=m->attr&15; + GrPutS(dc,x0,0,tempme->name); + } + x0+=w; + tempme=tempme->next; + } + sys_cur_submenu_entry=cur_submenu; +} + + +#help_index "" + diff --git a/SparrowOS/Adam/Merge.CPP b/SparrowOS/Adam/Merge.CPP new file mode 100644 index 0000000..6cf167f --- /dev/null +++ b/SparrowOS/Adam/Merge.CPP @@ -0,0 +1,88 @@ +#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/Adam/Profiler.CPP b/SparrowOS/Adam/Profiler.CPP new file mode 100644 index 0000000..bce01d9 --- /dev/null +++ b/SparrowOS/Adam/Profiler.CPP @@ -0,0 +1,200 @@ +#help_index "Debugging/Profiler;Utils/Profiler;Profiler" +#help_file "::/SparrowOS/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_array=NULL; +I64 pf_cpu=0; +U0 (*fp_chained_timer_routine)(CTask *task)=cpu_structs[pf_cpu].timer_irq_chain; +I64 pf_ptr,pf_depth; +#define PFM_OFF 0 +#define PFM_BIN 1 +#define PFM_ALL 2 +I64 prof_mode=PFM_OFF; +F64 pf_t0; + +U0 ProfTimerInt(CTask *task) +{ + I64 i,j=task->rip,k; + nobound_switch (prof_mode) { + case PFM_OFF: + break; + case PFM_BIN: + i=(j-pf_low) * pf_size/(pf_high-pf_low); + if (0<=iidle_task) + j=SYS_IDLE_START; + else + j=TaskCaller(task,k,TRUE); + if (pf_ptr=mp_cnt) + ST_ERR_ST "Invalid CPU\n"; + else if (cpu_structs[pf_cpu].timer_irq_chain!=&ProfTimerInt) + ST_ERR_ST "Unchaining not implemented!\n"; + else { + cpu_structs[pf_cpu].timer_irq_chain=fp_chained_timer_routine; + pf_cpu=num; + fp_chained_timer_routine=cpu_structs[pf_cpu].timer_irq_chain; + cpu_structs[pf_cpu].timer_irq_chain=&ProfTimerInt; + } +} + +public U0 ProfAll(I64 depth=0) +//Start profiler in record-all mode. Profilers +//report where time is spent by checking +//the instruction ptr during the +//timer interrupt. Do a $LK,"ProfRep","MN:ProfRep"$(), (profiler report) +//after you have collected data. +{ + pf_depth=depth; + pf_ptr=0; + if (!pf_array) + pf_array=AMAlloc(sizeof(I64)*PF_ARRAY_CNT); + pf_time_end=0; + pf_time_start=sys_jiffies; + prof_mode=PFM_ALL; + pf_t0=tNP; +} + +I64 PFACompare(U8 *i1,U8 *i2) +{ + if (i1i2) + return 1; + else + return 0; +} + +public U0 ProfRep(I64 filter_cnt=1) +{ + F64 pf_tf=tNP; + I64 i,ip,last_ip=pf_low,hits, + total_time,routine_total=0,old_mode=prof_mode; + U8 buf[128],buf2[128],buf3[128],last_buf[128]; + prof_mode=PFM_OFF; + if (pf_time_end) + total_time=pf_time_end-pf_time_start; + else + total_time=sys_jiffies-pf_time_start; + if (!total_time) total_time=1; + switch (old_mode) { + case PFM_BIN: + *last_buf=0; + for (i=0;i=filter_cnt) { + "$$FG,GREEN$$%3d.%02d%% %08X:",routine_total*100/total_time, + routine_total*10000/total_time%100,routine_total; + "%s\n$$FG$$",last_buf; + } + StrCpy(last_buf,buf2); + routine_total=0; + } + hits=pf_array[i]; + routine_total+=hits; + if (hits>=filter_cnt) { + "%3d.%02d%% %08X:",hits*100/total_time, + hits*10000/total_time%100,hits; + if (!PutSrcLink(ip,ip-last_ip)) + "%s\n",buf; + else + NewLine; + last_ip=ip; + } + } + if (*last_buf && routine_total>=filter_cnt) { + "$$FG,GREEN$$%3d.%02d%% %08X:",routine_total*100/total_time, + routine_total*10000/total_time%100,routine_total; + "%s\n$$FG$$",last_buf; + } + break; + case PFM_ALL: + QSortI64(pf_array,pf_ptr,&PFACompare); + *last_buf=0; + for (i=0;i=pf_ptr) break; + } + SPrintF(buf,"%P",ip); + StrCpy(buf3,buf); + StrFirstRem(buf3,"+",buf2); + if (StrCmp(buf2,last_buf)) { + if (*last_buf && routine_total>=filter_cnt) { + "$$FG,GREEN$$%3d.%02d%% %08X:",routine_total*100/total_time, + routine_total*10000/total_time%100,routine_total; + "%s\n$$FG$$",last_buf; + } + StrCpy(last_buf,buf2); + routine_total=0; + } + routine_total+=hits; + if (hits>=filter_cnt) { + "%3d.%02d%% %08X:",hits*100/total_time, + hits*10000/total_time%100,hits; + if (!PutSrcLink(ip,ip-last_ip)) + "%s\n",buf; + else + NewLine; + last_ip=ip; + } + } + if (*last_buf && routine_total>=filter_cnt) { + "$$FG,GREEN$$%3d.%02d%% %08X:",routine_total*100/total_time, + routine_total*10000/total_time%100,routine_total; + "%s\n$$FG$$",last_buf; + } + break; + } + "Total Time:%12.6fs\n",pf_tf-pf_t0; +} + +#help_index "" diff --git a/SparrowOS/Adam/S2T.CPP b/SparrowOS/Adam/S2T.CPP new file mode 100644 index 0000000..f330ad3 --- /dev/null +++ b/SparrowOS/Adam/S2T.CPP @@ -0,0 +1,69 @@ +#help_index "Utils;Cmd Line (Typically)" + +//$LK,"StrUtil","MN:StrUtil"$() operations on files + +public U0 SUFile(U8 *name,I64 su_flags,F64 indent_scale_factor) +{//String utility on a single file +//See $LK,"SU Flags","MN:SUF_SINGLE_SPACE"$ + U8 *dst; + Bool chged=FALSE; + I64 reduced=0; + CDoc *doc=DocRead(name,DOCF_PLAIN_TEXT_WITH_TABS | DOCF_NO_CURSOR); + CDocEntry *doc_e=doc->root.next; + while (doc_e!=doc) { + if (doc_e->type_u8==DOCT_TEXT) { + dst=MStrUtil(doc_e->tag,su_flags,indent_scale_factor); + if (StrCmp(dst,doc_e->tag)) { + reduced+=StrLen(doc_e->tag)-StrLen(dst); + chged=TRUE; + Free(doc_e->tag); + doc_e->tag=dst; + } else + Free(dst); + } + doc_e=doc_e->next; + } + if (chged) { + "Reduced %s by %d chars\n",name,reduced; + StrCpy(doc->filename.name,name); + DocWrite(doc); + } + DocDel(doc); +} + +U0 SUList(CDirEntry *tempm1,I64 su_flags,F64 indent_scale_factor) +{ + CDirEntry *tempm2; + while (tempm1) { + tempm2=tempm1->next; + if (tempm1->attr & _ATTR_DIR) { + if (tempm1->sub) { + "%S%s\n","ST_SCANNING_DIR",tempm1->full_name; + SUList(tempm1->sub,su_flags,indent_scale_factor); + } + } else + SUFile(tempm1->full_name,su_flags,indent_scale_factor); + CDirEntryDel(tempm1); + tempm1=tempm2; + } +} + +public U0 SU(U8 *files_find_mask,I64 su_flags,U8 *fu_flags=NULL,F64 indent_scale_factor=0) +{//Apply string utilities to files +//You can convert spaces to tabs, for example +//or removing trailing spaces on lines. +//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); +} + +public U0 S2T(U8 *files_find_mask,U8 *fu_flags=NULL) +{ +//Spaces to tabs. +//Use "Hard Space" (SHIFT-SPACE) for spaces +//in string constants in your code. + SU(files_find_mask,SUF_S2T|SUF_REM_TRAILING,fu_flags); +} + +#help_index "" diff --git a/SparrowOS/Adam/Snd/HDAudio.CPP b/SparrowOS/Adam/Snd/HDAudio.CPP new file mode 100644 index 0000000..d5be2c4 --- /dev/null +++ b/SparrowOS/Adam/Snd/HDAudio.CPP @@ -0,0 +1,610 @@ +#help_index "Snd/HDAudio" + +#define HD_1_CHAN 0 +#define HD_2_CHAN 1 +#define HD_3_CHAN 2 +#define HD_4_CHAN 3 + +#define HD_8_BIT 0 +#define HD_16_BIT 1 +#define HD_20_BIT 2 +#define HD_24_BIT 3 +#define HD_32_BIT 4 + +#define HD_48kHz 0 + +#define HD_DFT_OUT_FMT (HD_2_CHAN+HD_24_BIT<<4+HD_48kHz<<8) +#define HD_DFT_IN_FMT (HD_2_CHAN+HD_16_BIT<<4+HD_48kHz<<8) + +#define HD_POS_BUF_MULTIPLES 0x1000 + +#define HD_CORB_ENTRIES 256 +#define HD_RIRB_ENTRIES 256 +#define HD_BDL_ENTRIES 256 + +#define HD_GCTL 0x08 +#define HD_STATESTS 0x0E +#define HD_GSTS 0x10 +#define HD_CORBLBASE 0x40 +#define HD_CORBUBASE 0x44 +#define HD_CORBWP 0x48 +#define HD_CORBRP 0x4A +#define HD_CORBCTL 0x4C +#define HD_CORBST 0x4D +#define HD_RIRBLBASE 0x50 +#define HD_RIRBUBASE 0x54 +#define HD_RIRBWP 0x58 +#define HD_RIRBCTL 0x5C +#define HD_RIRBSTS 0x5D + +#define STRCTL 0x00 +#define STRSTS 0x03 +#define STRLPIB 0x04 +#define STRCBL 0x08 +#define STRLVI 0x0C +#define STRFIFOW 0x0E +#define STRFIFOS 0x10 +#define STRFMT 0x12 +#define STRBDPL 0x18 +#define STRBDPU 0x1C + +#define ISTR0 0x080 +#define ISTR1 0x0A0 +#define ISTR2 0x0C0 +#define ISTR3 0x0E0 +#define OSTR0 0x100 +#define OSTR1 0x120 +#define OSTR2 0x140 +#define OSTR3 0x160 + +#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_PROCESS_STATE_GET 0xF0300 +#define VERB_PROCESS_STATE_SET 0x70300 +#define VERB_COEFF_INDEX_GET 0xD0000 +#define VERB_COEFF_INDEX_SET 0x50000 +#define VERB_PROCESS_COEFF_GET 0xC0000 +#define VERB_PROCESS_COEFF_SET 0x40000 +#define VERB_AMPLIFIER_GAIN_GET 0xB0000 +#define VERB_AMPLIFIER_GAIN_SET 0x30000 +#define VERB_STREAM_FMT_GET 0xA0000 +#define VERB_STREAM_FMT_SET 0x20000 +#define VERB_DIGIT_CONVERT1_GET 0xF0D00 +#define VERB_DIGIT_CONVERT1_SET 0x70D00 +#define VERB_DIGIT_CONVERT2_GET 0xF0D00 +#define VERB_DIGIT_CONVERT2_SET 0x70E00 +#define VERB_POWER_STATE_GET 0xF0500 +#define VERB_POWER_STATE_SET 0x70500 +#define VERB_CHAN_STREAM_ID_GET 0xF0600 +#define VERB_CHAN_STREAM_ID_SET 0x70600 +#define VERB_SDI_SELECT_GET 0xF0400 +#define VERB_SDI_SELECT_SET 0x70400 +#define VERB_PIN_WIDGET_CTL_GET 0xF0700 +#define VERB_PIN_WIDGET_CTL_SET 0x70700 +#define VERB_UNSOL_ENABLE_GET 0xF0800 +#define VERB_UNSOL_ENABLE_SET 0x70800 +#define VERB_PIN_SENSE_GET 0xF0900 +#define VERB_PIN_SENSE_SET 0x70900 +#define VERB_EAPDBTL_ENABLE_GET 0xF0C00 +#define VERB_EAPDBTL_ENABLE_SET 0x70C00 +#define VERB_BEEP_CTL_GET 0xF0A00 +#define VERB_BEEP_CTL_SET 0x70A00 +#define VERB_GPI_CTRL0_GET 0xF1000 +#define VERB_GPI_CTRL0_SET 0x71000 +#define VERB_GPI_CTRL1_GET 0xF1100 +#define VERB_GPI_CTRL1_SET 0x71100 +#define VERB_GPI_CTRL2_GET 0xF1200 +#define VERB_GPI_CTRL2_SET 0x71200 +#define VERB_GPI_CTRL3_GET 0xF1300 +#define VERB_GPI_CTRL3_SET 0x71300 +#define VERB_GPI_CTRL4_GET 0xF1400 +#define VERB_GPI_CTRL4_SET 0x71400 +#define VERB_GPI_CTRL5_GET 0xF1500 +#define VERB_GPI_CTRL5_SET 0x71500 +#define VERB_GPI_CTRL6_GET 0xF1600 +#define VERB_GPI_CTRL6_SET 0x71600 +#define VERB_GPI_CTRL7_GET 0xF1700 +#define VERB_GPI_CTRL7_SET 0x71700 +#define VERB_GPI_CTRL8_GET 0xF1800 +#define VERB_GPI_CTRL8_SET 0x71800 +#define VERB_GPI_CTRL9_GET 0xF1900 +#define VERB_GPI_CTRL9_SET 0x71900 +#define VERB_GPI_CTRLA_GET 0xF1A00 +#define VERB_GPI_CTRLA_SET 0x71A00 +#define VERB_VOL_CTL_GET 0xF0F00 +#define VERB_VOL_CTL_SET 0x70F00 +#define VERB_SUB_SYS_ID0_GET 0xF2000 +#define VERB_SUB_SYS_ID0_SET 0x72000 +#define VERB_SUB_SYS_ID1_GET 0xF2000 +#define VERB_SUB_SYS_ID1_SET 0x72100 +#define VERB_SUB_SYS_ID2_GET 0xF2000 +#define VERB_SUB_SYS_ID2_SET 0x72200 +#define VERB_SUB_SYS_ID3_GET 0xF2000 +#define VERB_SUB_SYS_ID3_SET 0x72300 +#define VERB_CFG_DFT0_GET 0xF1C00 +#define VERB_CFG_DFT0_SET 0x71C00 +#define VERB_CFG_DFT1_GET 0xF1C00 +#define VERB_CFG_DFT1_SET 0x71D00 +#define VERB_CFG_DFT2_GET 0xF1C00 +#define VERB_CFG_DFT2_SET 0x71E00 +#define VERB_CFG_DFT3_GET 0xF1C00 +#define VERB_CFG_DFT3_SET 0x71F00 +#define VERB_STRIPE_CTL_GET 0xF2400 +#define VERB_STRIPE_CTL_SET 0x72400 +#define VERB_RST 0x7FF00 + + +//Parameters +#define P_VENDOR_ID 0x00 +#define P_REVISION_ID 0x02 +#define P_SUBNODE_CNT 0x04 +#define P_FUN_GRP_TYPE 0x05 +#define P_AUDIO_FUN_CAP 0x08 +#define P_AUDIO_WIDGET_CAP 0x09 +#define P_SAMPLE_SIZE_RATE_CAP 0x0A +#define P_STREAM_FMTS 0x0B +#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_POWER_STATES 0x0F +#define P_PROCESSING_CAP 0x10 +#define P_GPIO_CNT 0x11 +#define P_VOL_KNOB_CAP 0x13 + +//Function Group Types +//00 reserved +#define FGT_AUDIO 1 +#define FGT_VENDOR_MODEM 2 +//03-7F reserved +//80-FF vendor function group + +//Audio Widget Types +#define AWT_OUTPUT 0x0 +#define AWT_INPUT 0x1 +#define AWT_MIXER 0x2 +#define AWT_SELECTOR 0x3 +#define AWT_PIN_COMPLEX 0x4 +#define AWT_POWER_WIDGET 0x5 +#define AWT_VOL_KNOB_WIDGET 0x6 +#define AWT_BEEP_GEN_WIDGET 0x7 +#define AWT_VENDOR 0xF +#define AWT_NODE 0x10 +DefineListLoad("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"); + +class CHDBufDesc +{ + I32 *buf; + U32 len; + U32 ctrl; +}; + +class CHDAudioCtrl +{ + U8 *bar; + I64 cad; + U32 *corb; + I64 *rirb; + CHDBufDesc *ostr0_bdl,*istr0_bdl; + SND_OUT_CONTAINER *ostr0_buf[2]; + SND_IN_CONTAINER *istr0_buf[2]; + CTask *task; + I64 waveform; + F64 freq,amp; + CSndWaveCtrl *sc; + U8 rirb_rp,corb_wp; + Bool audio_task_started,in_running,out_running; +} *_hda=NULL; + +I64 AudioSize() +{//$LK,"MemRep","MN:MemRep"$ uses this for Adam Heap + I64 result=MSize2(snd_reverb_buf); + if (_hda) { + result+=MSize2(_hda); +/* uncached heap + result+=MSize2(_hda->corb)+MSize(_hda->rirb); + result+=MSize2(_hda->ostr0_bdl); + result+=MSize2(_hda->istr0_bdl); + for (i=0;i<2;i++) + result+=MSize2(_hda->ostr0_buf[i]); + for (i=0;i<2;i++) + result+=MSize2(_hda->istr0_buf[i]); +*/ + } + return result; +} + +U0 HDSyncCORB() +{ + U16 *wp,*rp; + wp =_hda->bar+HD_CORBWP; + *wp=_hda->corb_wp; + rp =_hda->bar+HD_CORBRP; + while (*rp&255!=_hda->corb_wp) + Yield; +} + +U0 HDWriteCORB(I64 cad,I64 nid,U32 val) +{ + val|=cad<<28+nid<<20; + _hda->corb[++_hda->corb_wp]=val; +} + +I64 HDSyncRIRB() +{ + U16 *_w; + I64 wp,result=0; + _w=_hda->bar+HD_RIRBWP; + wp=*_w; + while (_hda->rirb_rp!=wp) + result=_hda->rirb[++_hda->rirb_rp]; + return result; +} + +I64 HDReadRIRB() +{ + U16 *_w; + I64 wp,result=0; + _w=_hda->bar+HD_RIRBWP; + do { + Yield; + wp=*_w; + } while (wp==_hda->rirb_rp); + result=_hda->rirb[++_hda->rirb_rp]; + return result; +} + +I64 HDWriteCORBSync(I64 cad,I64 nid,U32 val) +{ + HDSyncCORB; + HDSyncRIRB; + HDWriteCORB(cad,nid,val); + HDSyncCORB; + return HDReadRIRB; +} + +Bool HDTestCORBSync(I64 cad,I64 nid,U32 val) +{ //Checks for a response + U16 *_w; + U8 wp; + + HDSyncCORB; + HDSyncRIRB; + HDWriteCORB(cad,nid,val); + HDSyncCORB; + + Sleep(1); + _w=_hda->bar+HD_RIRBWP; + wp=*_w; + if (wp==_hda->rirb_rp) + return FALSE; + HDReadRIRB; + return TRUE; +} + +U0 HDTraverse(I64 cad,I64 nid) +{ + I64 i,len,aud_cap,type; + HDWriteCORBSync(cad,nid,VERB_POWER_STATE_SET+0x00); //0 is on + HDWriteCORBSync(cad,nid,VERB_EAPDBTL_ENABLE_SET+0x02); + HDWriteCORBSync(cad,nid,VERB_PROCESS_STATE_SET+0x02); + HDWriteCORBSync(cad,nid,VERB_CONNECT_SELECT_SET+0x00); + aud_cap=HDWriteCORBSync(cad,nid,VERB_GET_PARAM+P_SUBNODE_CNT); + if (aud_cap.u16[0]) { + for (i=aud_cap.u16[1];i>20&15; + if (Bt(&aud_cap,8)) + len=HDWriteCORBSync(cad,nid,VERB_GET_PARAM+P_CONNECT_LIST_LEN)&127; + else + len=0; + HDWriteCORBSync(cad,nid,VERB_AMPLIFIER_GAIN_SET+0xF07F); //set I/O amp #0 + for (i=1;ibar) { + if (out) { + _d=_hda->bar+OSTR0+STRCTL; + *_d=0x100002; + _hda->out_running=TRUE; + } + if (in) { + _d=_hda->bar+ISTR0+STRCTL; + *_d=0x200002; + _hda->in_running=TRUE; + } + } +} + +U0 HDStop(Bool in,Bool out) +{ + U32 *_d; + if (_hda->bar) { + if (out) { + _d=_hda->bar+OSTR0+STRCTL; + *_d=0; + _hda->out_running=FALSE; + } + if (in) { + _d=_hda->bar+ISTR0+STRCTL; + *_d=0; + _hda->in_running=FALSE; + } + } +} + +U0 HDSnd(F64 freq,I64 waveform=WF_SQUARE,F64 amp=1.0) +{ + _hda->waveform=waveform; + _hda->amp=amp; + _hda->freq=freq; +} + +U0 HDFillBuf(SND_OUT_CONTAINER *buf,I64) +{ + SndWaveFillBuf(_hda->sc,buf,SND_BUF_LEN/SND_OCHANNELS,_hda->freq,_hda->waveform,snd_vol*_hda->amp); +} + +U0 HDAudioTaskEndCB() +{ + HDStop(FALSE,TRUE); + fp_snd=NULL; + SndWaveCtrlDel(_hda->sc); + _hda->sc=NULL; + Exit; +} + + +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, + 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; + _hda->freq=0; + Snd(0); + fp_snd=&HDSnd; + fp_snd_fill_buf=&HDFillBuf; + fp_snd_copy_buf=NULL; + if (!IsSysDeterministic) + Preempt(ON); + snd_obuf_num=1; + snd_ibuf_num=1; + HDRun(FALSE,TRUE); + _hda->audio_task_started=TRUE; //This flag is probably not necessary + while (TRUE) { + if (next_obuf_trigger-obuf_rollover<=*pos_in_obuf=HD_POS_BUF_MULTIPLES*SND_BUF_LEN*sizeof(SND_OUT_CONTAINER)) + obuf_rollover+=HD_POS_BUF_MULTIPLES*SND_BUF_LEN*sizeof(SND_OUT_CONTAINER); + if (fp_snd_fill_buf) { + LBts(&snd_flags,Sf_FILLING_OUT); + (*fp_snd_fill_buf)(_hda->ostr0_buf[snd_obuf_num&1],snd_obuf_num); + if (IsMute) + MemSet(_hda->ostr0_buf[snd_obuf_num&1],0,SND_BUF_LEN*sizeof(SND_OUT_CONTAINER)); + else if (snd_reverb_intensity && + 0ostr0_buf[snd_obuf_num&1],snd_obuf_num); + LBtr(&snd_flags,Sf_FILLING_OUT); + } + snd_obuf_num++; + } + if (next_ibuf_trigger-ibuf_rollover<=*pos_in_ibuf=HD_POS_BUF_MULTIPLES*SND_BUF_LEN*sizeof(SND_IN_CONTAINER)) + ibuf_rollover+=HD_POS_BUF_MULTIPLES*SND_BUF_LEN*sizeof(SND_IN_CONTAINER); + if (fp_snd_copy_buf) + (*fp_snd_copy_buf)(_hda->istr0_buf[snd_obuf_num&1],snd_ibuf_num); + snd_ibuf_num++; + } + Sleep(1); + } +} + +U0 HDRst() +{ + U32 d,*_d; + HDStop(TRUE,TRUE); + _d=_hda->bar+HD_GCTL; + *_d=0; //rst + do { + Sleep(1); + d=*_d; + } while (d & 1); + *_d=1; + do { + Sleep(1); + d=*_d; + } while (!(d & 1)); + Sleep(1); +} + +public U0 HDAudioEnd(Bool rst=TRUE) +{ + snd_dev=SD_PC_SPEAKER; + if (_hda && _hda->bar) { + Kill(_hda->task); + _hda->task=NULL; + if (rst) + HDRst; + Free(_hda->corb); + Free(_hda->rirb); + Free(_hda->ostr0_buf[0]); + Free(_hda->ostr0_buf[1]); + Free(_hda->istr0_buf[0]); + Free(_hda->istr0_buf[1]); + Free(_hda->ostr0_bdl); + Free(_hda->istr0_bdl); + Mem32DevFree(_hda->bar); + Free(_hda); + _hda=NULL; + } +} + +public Bool HDAudioInit(I64 hd_bus,I64 hd_dev,I64 hd_fun) +{ + I64 i; + U32 *_d; + U16 w,*_w; + U8 *_b; + if (_hda) + HDAudioEnd; + if (PCIReadU16(hd_bus,hd_dev,hd_fun,0)==0x8086 && + (_hda=ACAlloc(sizeof(CHDAudioCtrl))) && + (_hda->bar=Mem32DevAlloc(0x4000,0x4000)) ) { + PCIWriteU32(hd_bus,hd_dev,hd_fun,0x14,_hda->bar(I64).u32[1]); + PCIWriteU32(hd_bus,hd_dev,hd_fun,0x10,_hda->bar(I64).u32[0]); + PCIWriteU16(hd_bus,hd_dev,hd_fun,0x04, + PCIReadU16(hd_bus,hd_dev,hd_fun,0x04)|0x406); + + HDRst; + + _hda->corb=CAllocAligned(HD_CORB_ENTRIES*sizeof(U32),128,sys_uncached_heap); + _d=_hda->bar+HD_CORBLBASE; + *_d=_hda->corb(I64).u32[0]; + _d=_hda->bar+HD_CORBUBASE; + *_d=_hda->corb(I64).u32[1]; + + _hda->rirb=CAllocAligned(HD_RIRB_ENTRIES*sizeof(I64),128,sys_uncached_heap); + _d=_hda->bar+HD_RIRBLBASE; + *_d=_hda->rirb(I64).u32[0]; + _d=_hda->bar+HD_RIRBUBASE; + *_d=_hda->rirb(I64).u32[1]; + + _w=_hda->bar+HD_CORBRP; + *_w=0x8000; //Rst read ptr + do { + Yield; + w=*_w; + } while (!(w&0x8000)); + *_w=0x0000; //Rst read ptr + do { + Yield; + w=*_w; + } while (w&0x8000); + + _w=_hda->bar+HD_RIRBWP; + *_w=0x8000; //Rst write ptr + + _b=_hda->bar+HD_CORBCTL; + *_b=0x02; //Run + _b=_hda->bar+HD_RIRBCTL; + *_b=0x02; //Run + + _w=_hda->bar+HD_CORBWP; + _hda->corb_wp=*_w; + _w=_hda->bar+HD_RIRBWP; + _hda->rirb_rp=*_w; + + _hda->ostr0_bdl =CAllocAligned(HD_BDL_ENTRIES*sizeof(CHDBufDesc),128,sys_uncached_heap); + _d=_hda->bar+OSTR0+STRBDPL; + *_d=_hda->ostr0_bdl(I64).u32[0]; + _d=_hda->bar+OSTR0+STRBDPU; + *_d=_hda->ostr0_bdl(I64).u32[1]; + for (i=0;i<2;i++) { + _hda->ostr0_bdl[i].buf=_hda->ostr0_buf[i]=CAllocAligned(SND_BUF_LEN*sizeof(SND_OUT_CONTAINER),128,sys_uncached_heap); + _hda->ostr0_bdl[i].len=SND_BUF_LEN*sizeof(SND_OUT_CONTAINER); + _hda->ostr0_bdl[i].ctrl=1; + } + + _hda->istr0_bdl =CAllocAligned(HD_BDL_ENTRIES*sizeof(CHDBufDesc),128,sys_uncached_heap); + _d=_hda->bar+ISTR0+STRBDPL; + *_d=_hda->istr0_bdl(I64).u32[0]; + _d=_hda->bar+ISTR0+STRBDPU; + *_d=_hda->istr0_bdl(I64).u32[1]; + for (i=0;i<2;i++) { + _hda->istr0_bdl[i].buf=_hda->istr0_buf[i]=CAllocAligned(SND_BUF_LEN*sizeof(SND_IN_CONTAINER),128,sys_uncached_heap); + _hda->istr0_bdl[i].len=SND_BUF_LEN*sizeof(SND_IN_CONTAINER); + _hda->istr0_bdl[i].ctrl=1; + } + + _w=_hda->bar+HD_STATESTS; + w=*_w; + while (w) { + _hda->cad=Bsf(w); + if (HDTestCORBSync(_hda->cad,0,VERB_GET_PARAM+P_SUBNODE_CNT)) { + HDTraverse(_hda->cad,0); + + _d=_hda->bar+OSTR0+STRLPIB; + *_d=0; + _d=_hda->bar+OSTR0+STRCBL; + *_d=HD_POS_BUF_MULTIPLES*SND_BUF_LEN*sizeof(SND_OUT_CONTAINER); + _w=_hda->bar+OSTR0+STRLVI; + *_w=1; //last valid index + _w=_hda->bar+OSTR0+STRFMT; + *_w=HD_DFT_OUT_FMT; + + _d=_hda->bar+ISTR0+STRLPIB; + *_d=0; + _d=_hda->bar+ISTR0+STRCBL; + *_d=HD_POS_BUF_MULTIPLES*SND_BUF_LEN*sizeof(SND_IN_CONTAINER); + _w=_hda->bar+ISTR0+STRLVI; + *_w=1; //last valid index + _w=_hda->bar+ISTR0+STRFMT; + *_w=HD_DFT_IN_FMT; + + LBts(&sys_semas[SYS_SEMA_SND],0); //turn off until cfg completed + LBtr(&snd_flags,Sf_FILLING_OUT); + _hda->audio_task_started=FALSE; + if (mp_cnt>1) + _hda->task=MPSpawn(&HDAudioTask,NULL,"HD Audio"); + else + _hda->task=Spawn(&HDAudioTask,NULL,"HD Audio"); + while (!_hda->audio_task_started) + Yield; + snd_dev=SD_HD_AUDIO; + return TRUE; + } + Btr(&w,_hda->cad); + } + HDAudioEnd(FALSE); + } else { + Free(_hda); + _hda=NULL; + } + return FALSE; +} + +HDAudioInit(0,27,0); + +//$BK,1$Run $LK,"::/SparrowOS/Adam/Snd/HDCfg.CPP.Z","FI:::/SparrowOS/Adam/Snd/HDCfg.CPP.Z"$.$BK,0$ +#help_index "" diff --git a/SparrowOS/Adam/Snd/HDCfg.CPP b/SparrowOS/Adam/Snd/HDCfg.CPP new file mode 100644 index 0000000..5e58840 --- /dev/null +++ b/SparrowOS/Adam/Snd/HDCfg.CPP @@ -0,0 +1,638 @@ +#define MAX_CONNECTS 16 + +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]; + U32 pin_capabilities,pin_sense, + pcm_size_rates, + in_amp_cap,out_amp_cap; + U8 pin_widget_ctl; + Bool disabled; +}; + +class MySpring:CSpring +{ + I64 color; +}; + +CMathODE *ode=NULL; + +#define BORDER 10 + + +U0 DrawIt(CTask *task,CDC *dc) +{ + Bool old_suspend,old_preempt; + I16 *buf; + I64 i,cxx,cyy, + cy=task->win_pixel_height>>1; + F64 dx,dy,d; + MyMass *tempm; + MySpring *temps; + + old_preempt=Preempt(OFF); + old_suspend=Suspend(task); + temps=ode->next_spring; + while (temps!=&ode->next_spring) { + dc->color=temps->color; + GrLine(dc,temps->end1->x,temps->end1->y, + temps->end2->x,temps->end2->y); + cxx=(temps->end1->x+temps->end2->x)/2; + cyy=(temps->end1->y+temps->end2->y)/2; + dx=temps->end1->x-temps->end2->x; + dy=temps->end1->y-temps->end2->y; + d=Sqrt(dx*dx+dy*dy); + dx/=d; + dy/=d; + GrLine(dc,cxx,cyy,cxx+3.0*dy-3.0*dx,cyy-3.0*dx-3.0*dy); + GrLine(dc,cxx,cyy,cxx-3.0*dy-3.0*dx,cyy+3.0*dx-3.0*dy); + temps=temps->next; + } + + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + if (tempm->disabled) + dc->color=BLUE; + else + dc->color=LTBLUE; + GrCircle(dc,tempm->x,tempm->y,tempm->radius); + GrPrintF(dc,tempm->x,tempm->y-FONT_HEIGHT/2,"%02X %3tZ", + tempm->nid,tempm->type, + "ST_AUDIO_WIDGET_TYPES"); + tempm=tempm->next; + } + Suspend(task,old_suspend); + Preempt(old_preempt); + dc->color=BLUE; + buf=_hda->istr0_buf[0]; + for (i=0;iwin_pixel_width/SND_BUF_LEN, + cy-buf[i]*cy/MAX_I16); +} + + +U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *) +{ +//The forces due to springs and drag are +//automatically handled by the +//ode code. We can add new forces +//here. + CTask *task=ode->win_task; + I64 h=task->win_pixel_width,v=task->win_pixel_height; + F64 d,dd; + CD3 p; + MyMass *tempm1,*tempm2; + + tempm1=ode->next_mass; + while (tempm1!=&ode->next_mass) { + tempm2=tempm1->next; + while (tempm2!=&ode->next_mass) { + D3Sub(&tempm2->state->x,&tempm1->state->x,&p); + dd=D3SqrNorm(&p); + if (dd<=Sqr(tempm1->radius+tempm2->radius)) { + d=Sqrt(dd)+0.0001; + dd=10.0*Sqr(Sqr(Sqr(tempm1->radius+tempm2->radius)-dd)); + D3MulEqu(&p,dd/d); + D3AddEqu(&tempm2->DstateDt->DxDt,&p); + D3SubEqu(&tempm1->DstateDt->DxDt,&p); + } else { + D3MulEqu(&p,100000.0/dd); + D3AddEqu(&tempm2->DstateDt->DxDt,&p); + D3SubEqu(&tempm1->DstateDt->DxDt,&p); + } + tempm2=tempm2->next; + } + if (tempm1->state->xDstateDt->DxDt+=1000*Sqr(tempm1->state->x-BORDER); + if (tempm1->state->yDstateDt->DyDt+=1000*Sqr(tempm1->state->y-BORDER); + if (tempm1->state->x>h-BORDER-FONT_WIDTH*6) + tempm1->DstateDt->DxDt-=1000*Sqr(tempm1->state->x-(h-BORDER-FONT_WIDTH*6)); + if (tempm1->state->y>v-BORDER) + tempm1->DstateDt->DyDt-=1000*Sqr(tempm1->state->y-(v-BORDER)); + tempm1=tempm1->next; + } +} + +MyMass *PlaceMass(I64 nid) +{ + MyMass *tempm=CAlloc(sizeof(MyMass)); + tempm->mass=1.0; + 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)); + QueIns(tempm,ode->last_mass); + return tempm; +} + +MyMass *FindMassByNID(I64 nid) +{ + MyMass *tempm; + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + if (tempm->nid==nid) + return tempm; + tempm=tempm->next; + } + return NULL; +} + +MyMass *FindMassByXY(I64 x,I64 y) +{ + I64 dd,best_dd=MAX_I64; + MyMass *tempm,*result=NULL; + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + dd=SqrI64(tempm->x-x)+SqrI64(tempm->y-y); + if (ddnext; + } + return result; +} + +I64 FindConnectIndex(MyMass *tempm,I64 nid) +{ + I64 i; + for (i=0;inum_connects;i++) + if (tempm->connect_list[i]==nid) + return i; + return -1; +} + + +MySpring *PlaceSpring(MyMass *tempm1,MyMass *tempm2) +{ + MySpring *temps=CAlloc(sizeof(MySpring)); + temps->end1=tempm1; + temps->end2=tempm2; + temps->constant=10; + temps->rest_len=0; + temps->color=LTGRAY; + QueIns(temps,ode->last_spring); + return temps; +} + +U0 RedoSprings() +{ + I64 i,k; + MyMass *tempm,*tempm1; + MySpring *temps; + + QueDel(&ode->next_spring,TRUE); + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + for (i=0;inum_connects;i++) { + if ((k=tempm->connect_list[i]) && + (tempm1=FindMassByNID(k)) ) { + temps=PlaceSpring(tempm,tempm1); + switch (tempm->type) { + case AWT_MIXER: + if (!(tempm->gain_list[i]&0x80)) { //If not mute + temps->color=GREEN; + temps->constant=100; + } + break; + case AWT_INPUT: + case AWT_SELECTOR: + case AWT_PIN_COMPLEX: + case AWT_VENDOR: + if (i==tempm->cur_connect) { + temps->color=RED; + temps->constant=100; + } + break; + } + } + } + tempm=tempm->next; + } +} + +U0 Init() +{ + ode=ODENew(0,1e-4,ODEF_HAS_MASSES); + ode->derivative=&MyDerivative; + ode->drag_v2=0.002; + ode->drag_v3=0.00001; + ode->acceleration_limit=5e3; + + QueIns(ode,Fs->last_ode); +} + +U0 CleanUp() +{ + QueRem(ode); + QueDel(&ode->next_mass,TRUE); + QueDel(&ode->next_spring,TRUE); + ODEDel(ode); +} + +U0 HDCfgConnectList(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; + 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]; + } + } 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]; + } + } +} + +U0 HDCfgTraverse(I64 cad,I64 nid) +{ + I64 i,j; + MyMass *tempm=PlaceMass(nid); + j=HDWriteCORBSync(cad,nid,VERB_GET_PARAM+P_SUBNODE_CNT); + if (j.u16[0]) { + tempm->type=AWT_NODE; + for (i=j.u16[1];iaudio_widget_capabilities=HDWriteCORBSync(cad,nid,VERB_GET_PARAM+P_AUDIO_WIDGET_CAP); + tempm->pcm_size_rates=HDWriteCORBSync(cad,nid,VERB_GET_PARAM+P_SAMPLE_SIZE_RATE_CAP); + tempm->in_amp_cap=HDWriteCORBSync(cad,nid,VERB_GET_PARAM+P_INPUT_AMP_CAP); + tempm->out_amp_cap=HDWriteCORBSync(cad,nid,VERB_GET_PARAM+P_OUTPUT_AMP_CAP); + tempm->type=tempm->audio_widget_capabilities>>20&15; + switch (tempm->type) { + case AWT_PIN_COMPLEX: + tempm->pin_widget_ctl=HDWriteCORBSync(cad,nid,VERB_PIN_WIDGET_CTL_GET); + tempm->pin_capabilities=HDWriteCORBSync(cad,nid,VERB_GET_PARAM+P_PIN_CAP); + if (Bt(&tempm->pin_capabilities,0) || + Bt(&tempm->pin_capabilities,2)) + tempm->pin_sense=HDWriteCORBSync(cad,nid,VERB_PIN_SENSE_GET); + HDWriteCORBSync(cad,nid,VERB_CONNECT_SELECT_SET+0x00); + break; + case AWT_INPUT: + tempm->disabled=TRUE; + case AWT_SELECTOR: + case AWT_VENDOR: + HDWriteCORBSync(cad,nid,VERB_CONNECT_SELECT_SET+0x00); + break; + } + if (Bt(&tempm->audio_widget_capabilities,8)) + HDCfgConnectList(tempm,cad,nid); + } +} + +U0 HDCfgRandomizeXY() +{ + I64 h=Fs->win_pixel_width,v=Fs->win_pixel_height; + MyMass *tempm; + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + tempm->x=RandU32%(h-2*BORDER-FONT_WIDTH*6)+BORDER; + tempm->y=RandU32%(v-2*BORDER)+BORDER; + tempm=tempm->next; + } +} + +U0 HDCfgPopUpInfoTask(MyMass *tempm) +{ + I64 i; + "$$FG,RED$$NID:$$FG$$0x%02X $$FG,RED$$Type:$$FG$$%Z\n", + tempm->nid,tempm->type,"ST_AUDIO_WIDGET_TYPES"; + + i=tempm->audio_widget_capabilities; + "\n$$FG,RED$$Audio Widget Capabilities:$$FG$$\n"; + if (Bt(&i,0)) + "Stereo, "; + if (Bt(&i,1)) + "In Amp, "; + if (Bt(&i,2)) + "Out Amp, "; + if (Bt(&i,3)) + "Amp Override, "; + if (Bt(&i,4)) + "Fmt Override, "; + if (Bt(&i,5)) + "Stripe, "; + if (Bt(&i,6)) + "Proc Wgt, "; + if (Bt(&i,7)) + "Unsolicited, "; + if (Bt(&i,8)) + "Cnt List, "; + if (Bt(&i,9)) + "Digital, "; + if (Bt(&i,10)) + "Power Ctrl, "; + if (Bt(&i,11)) + "Left/Right Swap, "; + "Delay:%d\n",i.u16[1]&0xF; + + i=tempm->in_amp_cap; + "\n$$FG,RED$$Input Amp Capabilities:$$FG$$\n" + "Offset:0x%02X Steps:0x%02X StepSize:%5.2fdB Mutable:%d\n", + i&127,i.u8[1]&127+1,0.25*(i.u16[1]&127),Bt(&i,31); + + i=tempm->out_amp_cap; + "\n$$FG,RED$$Output Amp Capabilities:$$FG$$\n" + "Offset:0x%02X Steps:0x%02X StepSize:%5.2fdB Mutable:%d\n", + i&127,i.u8[1]&127+1,0.25*(i.u16[1]&127),Bt(&i,31); + + "\n$$FG,RED$$Size Rates Capabilities:$$FG$$\n"; + for (i=0;i<21;i++) + if (Bt(&tempm->pcm_size_rates,i)) + "%z",i, + " 8.0kHz\0 11.025kHz\0 16.0kHz\0 22.05kHz\0" + " 32.0kHz\0 44.1kHz\0 48.0kHz\0 88.2kHz\0" + " 96.0kHz\0 176.4kHz\0 192.0kHz\0 384kHz\0" + " \0 \0 \0 \0" + " 8Bit\0 16bit\0 20Bit\0 24Bit\0 32Bit\0"; + NewLine; + + + "\n$$FG,RED$$Connection List:$$FG$$\n"; + for (i=0;inum_connects;i++) + "%02X,",tempm->connect_list[i]; + NewLine; + + "\n$$FG,RED$$Gain List:$$FG$$\n"; + for (i=0;inum_connects;i++) + "%02X,",tempm->gain_list[i]; + NewLine; + + switch (tempm->type) { + case AWT_PIN_COMPLEX: + "\n$$FG,RED$$Pin Capabilities:$$FG$$\n"; + i=tempm->pin_capabilities; + if (Bt(&i,0)) + "Impedance Sense, "; + if (Bt(&i,1)) + "Trigger Required, "; + if (Bt(&i,2)) + "Presence Detect, "; + if (Bt(&i,3)) + "Headphone Drive, "; + if (Bt(&i,4)) + "Output, "; + if (Bt(&i,5)) + "Input, "; + if (Bt(&i,6)) + "Balanced, "; + if (Bt(&i,16)) + "EAPD, "; + "Vref:%02X\n\n",i.u8[1]; + if (Bt(&tempm->pin_capabilities,0) || + Bt(&tempm->pin_capabilities,2)) + tempm->pin_sense=HDWriteCORBSync(_hda->cad,tempm->nid,VERB_PIN_SENSE_GET); + if (Bt(&tempm->pin_capabilities,0)) + "Impedance Measurement:%08X\n",tempm->pin_sense&0x7FFFFFFF; + if (Bt(&tempm->pin_capabilities,2)) + "Presence:%d\n",Bt(&tempm->pin_sense,31); + "\n\nPin widget ctrl bits:\n" + " 7: High phn enable (low impedance output amp)\n" + " 6: Output Enable\n" + " 5: Input Enable\n" + "0-2: Vref 0=HiZ 1=50% 2=Gnd 4=80% 5=100%\n"; + tempm->pin_widget_ctl=PmtI64("Widget Ctrl (0x%02X):",tempm->pin_widget_ctl,0,0xFF); + HDWriteCORBSync(_hda->cad,tempm->nid,VERB_PIN_WIDGET_CTL_SET+tempm->pin_widget_ctl); + break; + case AWT_INPUT: + "Disable"; + if (tempm->disabled=YorN) + HDWriteCORBSync(_hda->cad,tempm->nid,VERB_CHAN_STREAM_ID_SET+0x00); + else + HDWriteCORBSync(_hda->cad,tempm->nid,VERB_CHAN_STREAM_ID_SET+0x20); + NewLine; + break; + case AWT_OUTPUT: + "Disable"; + if (tempm->disabled=YorN) + HDWriteCORBSync(_hda->cad,tempm->nid,VERB_CHAN_STREAM_ID_SET+0x00); + else + HDWriteCORBSync(_hda->cad,tempm->nid,VERB_CHAN_STREAM_ID_SET+0x10); + NewLine; + break; + } +} + +U0 HDCfgPopUpInfo(MyMass *tempm) +{ + U8 buf[136]; + SPrintF(buf,"HDCfgPopUpInfoTask(0x%X);\"\\n\\nPress SHIFT-ESC\\n\\n\\n\\n\";View;",tempm); + Fs->win_inhibit|=WIF_ODE; + Fs->draw_it=NULL; + WinMgrSync; + PopUp(buf,Fs); + Fs->win_inhibit&=~WIF_ODE; + Fs->draw_it=&DrawIt; +} + +U0 HDCfgEdLink(MyMass *tempm_out,MyMass *tempm_in) +{ + I64 i,j; + 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; + for (j=0;jnum_connects;j++) + HDWriteCORBSync(_hda->cad,tempm_in->nid, + VERB_AMPLIFIER_GAIN_SET+0x7000+tempm_in->gain_list[j]+j<<8); + break; + case AWT_INPUT: + case AWT_SELECTOR: + case AWT_PIN_COMPLEX: + case AWT_VENDOR: + tempm_in->cur_connect=i; + HDWriteCORBSync(_hda->cad,tempm_in->nid,VERB_CONNECT_SELECT_SET+i); + break; + } + RedoSprings; + } +} + +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" + "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:"); + for (i=0;inum_connects;i++) { + if (i==tempm->cur_connect) + DocPutS(doc,"*"); + DocPrintF(doc,"0x%02X ",tempm->connect_list[i]); + } + DocPutS(doc,"\n"); + if (tempm->type==AWT_MIXER) { + DocPutS(doc," //Gain List:"); + for (i=0;inum_connects;i++) + DocPrintF(doc,"0x%02X ",tempm->gain_list[i]); + DocPutS(doc,"\n"); + } + } + switch (tempm->type) { + case AWT_OUTPUT: + if (tempm->disabled) + DocPrintF(doc," HDWriteCORBSync(_hda->cad,0x%02X,VERB_CHAN_STREAM_ID_SET+0x00);\n", + tempm->nid); + else + DocPrintF(doc," HDWriteCORBSync(_hda->cad,0x%02X,VERB_CHAN_STREAM_ID_SET+0x10);\n", + tempm->nid); + break; + case AWT_MIXER: + DocPrintF(doc," HDWriteCORBSync(_hda->cad,0x%02X,VERB_AMPLIFIER_GAIN_SET+0xB07F);\n", + 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); + break; + case AWT_INPUT: + if (tempm->disabled) + DocPrintF(doc," HDWriteCORBSync(_hda->cad,0x%02X,VERB_CHAN_STREAM_ID_SET+0x00);\n", + tempm->nid); + else + DocPrintF(doc," HDWriteCORBSync(_hda->cad,0x%02X,VERB_CHAN_STREAM_ID_SET+0x20);\n", + tempm->nid); + goto here; + case AWT_PIN_COMPLEX: + DocPrintF(doc," HDWriteCORBSync(_hda->cad,0x%02X,VERB_PIN_WIDGET_CTL_SET+0x%02X);\n", + tempm->nid,tempm->pin_widget_ctl); + case AWT_SELECTOR: + case AWT_VENDOR: +here: + if (tempm->num_connects>1) + DocPrintF(doc," HDWriteCORBSync(_hda->cad,0x%02X,VERB_CONNECT_SELECT_SET+0x%02X);\n", + tempm->nid,tempm->cur_connect); + break; + } + DocPutS(doc,"\n"); + tempm=tempm->next; + } + DocPutS(doc," LBtr(&sys_semas[SYS_SEMA_SND],0);\n" + "}\n\nif (snd_dev==SD_HD_AUDIO)\n" + " MyHDCfg;\n"); + StrCpy(doc->filename.name,"HOME/HDAudioCfg.CPP.Z"); + DocWrite(doc); + DocDel(doc); +} + +U0 HDCfg() +{ + I64 p1,p2; + MyMass *tempm1=NULL,*tempm2=NULL; + + if (snd_dev!=SD_HD_AUDIO) { + "HD Audio not detected\n"; + return; + } + HDAudioInit(0,27,0); + + MenuPush( +"File {" +" Abort(,CH_SHIFT_ESC);" +" Exit(,CH_ESC);" +"}" +"Edit {" +" Randomize(,CH_NEW_LINE);" +" Options(,CH_SPACE);" +"}" + ); + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Preempt(OFF); + DocBottom; + WordStat; + WinMax; + WinBorder; + Fs->win_inhibit=WIF_IP_L|WIF_IP_R|WIF_DBL_CLICK|WIF_DOC; + Init; + + HDCfgTraverse(_hda->cad,0); + HDCfgRandomizeXY; + RedoSprings; + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + PopUpOk( +"This is a tool to cfgure\n" +"HD Audio. It creates $$FG,RED$$HOME/HDAudioCfg.CPP.Z$$FG$$\n" +"which you should $$FG,GREEN$$#include$$FG$$ in your\n" +"$$FG,RED$$HOME/Adam3cSnd.CPP.Z$$FG$$ file.\n\n\n" +"Left click to see info and cfgure a widget.\n" +"Right click drag to connect output to input.\n\n" +"You will need to set input and output amplifier\n" +"gains by hand -- edit $$FG,RED$$HOME/HDAudioCfg.CPP.Z$$FG$$.\n\n" +"The $$FG,BLUE$$BLUE$$FG$$ line in the middle is microphone waveform.\n\n" +); + + HDRun(TRUE,TRUE); //run input output + Snd(500,WF_SINE,0.50); + + try { + while (TRUE) { + switch (GetMsg(&p1,&p2,1<win_pixel_left-Fs->win_scroll_x,ipy-Fs->win_pixel_top-Fs->win_scroll_y)) + HDCfgPopUpInfo(tempm1); + tempm1=NULL; + break; + case CH_NEW_LINE: + HDCfgRandomizeXY; + break; + case CH_ESC: + HDCfgSave; + case CH_SHIFT_ESC: + goto hd_done; + } + break; + } + } +hd_done: //Don't goto out of try + GetMsg(,,1<catch_except=TRUE; + SettingsPop; + HDStop(TRUE,FALSE); //stop input + CleanUp; + MenuPop; + "$$BK,1$$Note: #include \"HOME/HDAudioCfg.CPP.Z\" in your start-up scripts.$$BK,0$$\n"; +} + +HDCfg; + diff --git a/SparrowOS/Adam/Snd/MathAudio.CPP b/SparrowOS/Adam/Snd/MathAudio.CPP new file mode 100644 index 0000000..30ea331 --- /dev/null +++ b/SparrowOS/Adam/Snd/MathAudio.CPP @@ -0,0 +1,239 @@ +#help_index "Snd/Math;Math" +public F64 Saw(F64 t,F64 period) +{ //0.0 - 1.0 think "(Sin+1)/2" + if (period) { + if (t>=0.0) + return t%period/period; + else + return 1.0+t%period/period; + } else + return 0.0; +} + +public F64 Caw(F64 t,F64 period) +{ //1.0 - 0.0 think "(Cos+1)/2" + if (period) { + if (t>=0.0) + return 1.0-t%period/period; + else + return -(t%period)/period; + } else + return 1.0; +} + +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); + else + return -1.0-2.0*(t%period/period); + } else + return 1.0; +} + +public F64 Tri(F64 t,F64 period) +{ //0.0 - 1.0 - 0.0 + if (period) { + t=2.0*(Abs(t)%period)/period; + if (t<=1.0) + return t; + else + return 2.0-t; + } else + return 0.0; +} + + +public F64 FullTri(F64 t,F64 period) +{ //0.0 - 1.0 - 0.0 - -1.0 -0.0 + if (period) { + t=4.0*(t%period)/period; + if (t<=-1.0) { + if (t<=-3.0) + return t+4.0; + else + return -2.0-t; + } else { + if (t<=1.0) + return t; + else if (t<=3.0) + return 2.0-t; + else + return t-4.0; + } + } else + return 0.0; +} + +#help_index "Snd/Math" +public F64 Note2Freq(I64 note,I64 octave=3) +{ + return 440.0*2.0`(octave-3+note/12.0); +} + + +F64 SinPhaseCont(F64 last_y,F64 last_dydt, + F64 current_amp,F64 phase_offset) +{ + F64 phase; + phase=last_y/current_amp; + if (phase>1.0) phase=1.0; + if (phase<-1.0) phase=-1.0; + if (last_dydt<0) + phase=ã-ASin(phase); + else + phase=ASin(phase); + return phase-phase_offset; +} + +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; +} + +public U0 SndWaveCtrlDel(CSndWaveCtrl *sc) +{ + Free(sc); +} + +public U0 SndWaveFillBuf(CSndWaveCtrl *sc,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. +//left,right range from 0.0-1.0 +//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; + } else { + phase=sc->phase; + i=0; + amp=Min(MAX_I32,MAX_I32*_amp); + f=2*ã/sc->sample_rate*_freq; + switch (_waveform) { + case WF_NOISE: + a=2.0/ã*amp; + break; + case WF_SAWTOOTH: + a=amp/ã; + break; + case WF_SINE: + phase=SinPhaseCont(sc->last_y,sc->last_dydt,amp,0.0); + break; + } + while (phase<0) + phase+=2*ã; + while (phase>=2*ã) + phase-=2*ã; + num_samples*=sc->channels; + while (i=ã) + j=-amp; + else + j=amp; + break; + case WF_SINE: + j=amp*Sin(phase); + break; + case WF_TRIANGLE: + if (phase>=ã) { + sc->last_y=sc->next_y; + sc->next_y=-amp*Sign(sc->last_y)+.00001; + phase-=ã; + } + j=(sc->last_y*(ã-phase)+sc->next_y*phase)/ã; + break; + case WF_SAWTOOTH: + j=a*(phase-ã); + break; + case WF_NOISE: + if (phase<ã) { + if (phaselast_y=sc->next_y; + sc->next_y=a*RandI16/MAX_U16; + } + j=sc->last_y*(ã-phase)+sc->next_y*phase; + } else { + if (phase-ãlast_y=sc->next_y; + sc->next_y=a*RandI16/MAX_U16; + } + j=sc->last_y*(2.0*ã-phase)+sc->next_y*(phase-ã); + } + break; + } + //left channel + k=j*_left; + if (sc->sample_bits==16) { + k>>=16; + buf(I16 *)[i++]=k; + } else { + if (sc->sample_bits==24) + k&=0xFFFFFF00; + buf(I32 *)[i++]=k; + } + //right channel + if (sc->channels==2) { + k=j*_right; + if (sc->sample_bits==16) { + k>>=16; + buf(I16 *)[i++]=k; + } else { + if (sc->sample_bits==24) + k&=0xFFFFFF00; + buf(I32 *)[i++]=k; + } + } + phase+=f; + while (phase>=2*ã) + phase-=2*ã; + } + if (_waveform==WF_SINE) { + sc->last_y=amp*Sin(phase); + sc->last_dydt=Cos(phase); + } + sc->phase=phase; + } +} + +#help_index "Snd/HDAudio" +I64 snd_reverb_buf_cnt; +SND_OUT_CONTAINER *snd_reverb_buf=NULL; + +U0 SndReverb(SND_OUT_CONTAINER *buf,I64 buf_num) +{ + I64 i,j,mask,span=RoundI64(SND_SAMPLE_RATE*SND_OCHANNELS*snd_reverb_delay,SND_OCHANNELS); + if (!snd_reverb_buf || span>snd_reverb_buf_cnt) { + Free(snd_reverb_buf); + snd_reverb_buf_cnt=1<<(Bsr(span)+1); + snd_reverb_buf=ACAlloc(snd_reverb_buf_cnt*sizeof(SND_OUT_CONTAINER)); + } + j=buf_num*SND_BUF_LEN; + mask=snd_reverb_buf_cnt-1; + for (i=0;i1) + while (LBts(&sys_semas[SYS_SEMA_TMBEAT],0)) + Pause; + cur_tM=tM; + result=music_last_tMBeat; + if (music_tempo) + result+=(cur_tM-music_last_tM)*music_tempo; + music_last_tM=cur_tM; + music_last_tMBeat=result; + LBtr(&sys_semas[SYS_SEMA_TMBEAT],0); + PopFD; + return result; +} + +#help_index "Snd/Music" +U8 *MusicSetOctave(U8 *st) +{ + U8 ch=*st++; + while ('0'<=ch<='9') { + music_octave=ch-'0'; + ch=*st++; + } + return --st; +} + +U8 *MusicSetWaveform(U8 *st) +{ + U8 ch=*st++; + while (ch=='W') { + ch=*st++; + if ('0'<=ch<'0'+WF_NUM_WAVEFORMS) { + music_waveform=ch-'0'; + ch=*st++; + } + } + return --st; +} + +U8 *MusicSetMeter(U8 *st) +{ + U8 ch=*st++; + while (ch=='M') { + ch=*st++; + if ('0'<=ch<='9') { + music_meter_top=ch-'0'; + ch=*st++; + } + if (ch=='/') + ch=*st++; + if ('0'<=ch<='9') { + music_meter_bottom=ch-'0'; + ch=*st++; + } + } + return --st; +} + +U8 *MusicSetNoteLen(U8 *st) +{ + Bool cont=TRUE; + do { + switch (*st++) { + case 'w': music_note_len=4.0; break; + case 'h': music_note_len=2.0; break; + case 'q': music_note_len=1.0; break; + case 'e': music_note_len=0.5; break; + case 's': music_note_len=0.25; break; + case 't': music_note_len=2.0*music_note_len/3.0; break; + case '.': music_note_len=1.5*music_note_len; break; + default: + st--; + cont=FALSE; + } + } while (cont); + return st; +} + +public U0 Play(U8 *st,U8 *words=NULL) +/* + Notes are entered with a capital letter. + + Octaves are entered with a digit and + stay set until changed. + + Durations are entered with + 'w' whole note + 'h' half note + 'q' quarter note + 'e' eighth note + 't' sets to 2/3rds the current duration + '.' sets to 1.5 times the current duration + durations stay set until changed. + + '(' tie, placed before the note to be extended + + Accents are made with + '!' *1.5 + '!!' *1.5`2 + + $LK,"music_waveform","MN:music_waveform"$ is set with + "W1" for $LK,"WF_SQUARE","MN:WF_SQUARE"$ + "W2" for $LK,"WF_SINE","MN:WF_SINE"$ + "W3" for $LK,"WF_TRIANGLE","MN:WF_TRIANGLE"$ + "W4" for $LK,"WF_SAWTOOTH","MN:WF_SAWTOOTH"$ + "W5" for $LK,"WF_NOISE","MN:WF_NOISE"$ + + $LK,"music_meter_top","MN:music_meter_top"$,$LK,"music_meter_bottom","MN:music_meter_bottom"$ is set with + "M3/4" + "M4/4" + etc. + + Sharp and flat are done with '#' or 'b'. + + The var music_stacatto_factor can + be set to a range from 0.0 to 1.0. + + The var music_amplitude can + be set to a range from 0.0 to 1.0. + + The var music_tempo is quarter-notes + per second. It defaults to + 2.5 and gets faster when bigger. + +*/ + +{ + U8 *word,*last_st; + I64 note,i=0,timeout_val,timeout_val2; + Bool tie,old_preempt=Preempt(OFF); + F64 f,d,a,on_jiffies,off_jiffies; + music_play_note_num=0; + while (*st) { + timeout_val=sys_jiffies; + a=music_amplitude; + tie=FALSE; + + do { + last_st=st; + if (*st=='!') { + a*=1.5; + st++; + } else if (*st=='(') { + tie=TRUE; + st++; + } else { + st=MusicSetWaveform(st); + st=MusicSetMeter(st); + st=MusicSetOctave(st); + st=MusicSetNoteLen(st); + } + } while (st!=last_st); + + if (!*st) break; + note=*st++-'A'; + if (note<7) { + note=music_note_map[note]; + if (*st=='b') { + note--; + st++; + } else if (*st=='#') { + note++; + st++; + } + f=Note2Freq(note,music_octave); + } else + f=0; + if (words) { + if (word=ListEntryPt(i++,words)) + if (StrCmp(word," ")) + "" word; + } + + d=JIFFY_FREQ*music_note_len/music_tempo; + if (tie) { + on_jiffies =d; + off_jiffies =0; + } else { + on_jiffies =d*music_stacatto_factor; + off_jiffies =d*(1.0-music_stacatto_factor); + } + timeout_val+=on_jiffies; + timeout_val2=timeout_val+off_jiffies; + + if (!music_mute) + Snd(f,music_waveform,a); + SleepUntil(timeout_val); + music_tM_correction+=on_jiffies-ToI64(on_jiffies); + + if (!music_mute) + Snd(0,music_waveform,a); + SleepUntil(timeout_val2); + music_tM_correction+=off_jiffies-ToI64(off_jiffies); + + music_play_note_num++; + } + Preempt(old_preempt); +} + +U0 MusicSettingsRst() +{ + music_play_note_num=0; + music_stacatto_factor=0.9; + music_amplitude=1/1.5`2; + music_tempo=2.5; + music_octave=3; + music_note_len=1.0; + music_waveform=WF_SQUARE; + music_meter_top=4; + music_meter_bottom=4; + snd_reverb_intensity=0.2; + snd_reverb_delay=0.3; + + PushFD; + Cli; + if (mp_cnt>1) + while (LBts(&sys_semas[SYS_SEMA_TMBEAT],0)) + Pause; + music_last_tM=tM; + music_last_tMBeat=0.0; + LBtr(&sys_semas[SYS_SEMA_TMBEAT],0); + PopFD; +} + +MusicSettingsRst; + +U0 CurSongTask() +{ + if (!IsSysDeterministic) + Preempt(ON); + Fs->task_end_cb=&SndTaskEndCB; + while (TRUE) + Play(cur_song); +} +#help_index "Snd" diff --git a/SparrowOS/Adam/Snd/Snd.CPP b/SparrowOS/Adam/Snd/Snd.CPP new file mode 100644 index 0000000..004e196 --- /dev/null +++ b/SparrowOS/Adam/Snd/Snd.CPP @@ -0,0 +1,64 @@ +#help_index "Snd" + +class CSndWaveCtrl +{ + I64 sample_rate,sample_bits,channels; + F64 phase,last_y,last_dydt,next_y; +}; + +I64 snd_obuf_num,snd_ibuf_num; + +#define Sf_FILLING_OUT 0 +I64 snd_flags; + +public U0 SndTaskEndCB() +//This will turn-off snd when a task gets killed. +{ + Snd(0); + Exit; +} + + +class CSndData +{ + CSndData *next,*last; + U8 waveform,pad[7]; + F64 amp; //0.0-1.0 + F64 freq; //Hz + F64 time_stamp; +} snd_record_root; + +U0 SndRecord(F64 freq,I64 waveform,F64 amp) +{ + CSndData *d; + d=ACAlloc(sizeof(CSndData)); + d->freq=freq; + d->time_stamp=tNP; + d->waveform=waveform; + d->amp=amp; + QueIns(d,snd_record_root.last); +} + +U0 CtrlAltV(I64 sc) +{ + if (sc&SCF_SHIFT) + snd_vol/=1.5; + else + snd_vol*=1.5; +} +SetCtrlAltLetCB('V',&CtrlAltV,"Sys/Snd Volume +/-"); + +U0 SndInit() +{ + QueInit(&snd_record_root); + snd_record_root.freq=0; + snd_record_root.time_stamp=tNP; + fp_snd_record=&SndRecord; +} + +SndInit; + +#include "MathAudio" +#include "Music" +#include "SndEffects" +#help_index "" diff --git a/SparrowOS/Adam/Snd/SndEffects.CPP b/SparrowOS/Adam/Snd/SndEffects.CPP new file mode 100644 index 0000000..2e1e842 --- /dev/null +++ b/SparrowOS/Adam/Snd/SndEffects.CPP @@ -0,0 +1,68 @@ +#define SE_NOISE 0 +#define SE_SWEEP 1 + +class CSoundEffectFrame +{ + I32 type,waveform; + F64 duration,freq1,freq2; +}; + +U0 SoundEffectEndTaskCB() +{ + Free(NamedFramePtr("CSoundEffectFrame")); + music_mute--; + SndTaskEndCB; +} + +U0 SoundEffectTask(CSoundEffectFrame *ns) +{ + I64 i; + F64 f,t0=tS,t,timeout=t0+ns->duration; + NamedFramePtrAdd("CSoundEffectFrame",ns); + Fs->task_end_cb=&SoundEffectEndTaskCB; + switch (ns->type) { + case SE_NOISE: + i=MaxI64(ns->freq2-ns->freq1,1); + while (tSfreq1) { + Snd(f,ns->waveform); + Sleep(MaxI64(3000/f,1)); + } else + break; + break; + case SE_SWEEP: + while (tSduration; + if (f=(1.0-t)*ns->freq1+t*ns->freq2) { + Snd(f,ns->waveform); + Sleep(MaxI64(3000/f,1)); + } else + break; + } + break; + } +} + +public U0 Noise(I64 mS,F64 min_freq,F64 max_freq,I64 waveform=WF_NOISE) +{ + CSoundEffectFrame *ns=MAlloc(sizeof(CSoundEffectFrame)); + ns->type=SE_NOISE; + ns->waveform=waveform; + ns->duration=mS/1000.0; + ns->freq1=min_freq; + ns->freq2=max_freq; + music_mute++; + Spawn(&SoundEffectTask,ns,"Noise",Fs); +} + +public U0 Sweep(I64 mS,F64 freq1,F64 freq2,I64 waveform=WF_SINE) +{ + CSoundEffectFrame *ns=MAlloc(sizeof(CSoundEffectFrame)); + ns->type=SE_SWEEP; + ns->waveform=waveform; + ns->duration=mS/1000.0; + ns->freq1=freq1; + ns->freq2=freq2; + music_mute++; + Spawn(&SoundEffectTask,ns,"Noise",Fs); +} diff --git a/SparrowOS/Adam/Snd/SndFile.CPP b/SparrowOS/Adam/Snd/SndFile.CPP new file mode 100644 index 0000000..dda6132 --- /dev/null +++ b/SparrowOS/Adam/Snd/SndFile.CPP @@ -0,0 +1,316 @@ +#help_index "Snd/Snd Files" +#define SNDFILE_SAMPLE_RATE 8000 +//Header for a ".SND" file +class CFileSND +{ //big endian + U32 signature; //0x646e732e + U32 offset; //24 + U32 data_size; + U32 coding; //3=16bit uncompressed + U32 sample_rate; //Hz + U32 channels; //1=mono + I16 body[1]; +}; + +//This is a windows media constraint. +#define MAX_SND_FILE_DATA 0x7FF00 + + +public I64 SndFileCreate(U8 *base_filename,F64 normalized_vol=1.0,F64 averaging=0.0,I64 waveform=WF_NULL, + F64 reverb_delay=0,F64 reverb_intensity=0) +//Use "snd_record" flag to start or stop +//recording, then call this routine. + +//Averaging should be a num from 0.0 to 0.999. +//Vol should be from 0.0 to 1.0. +//If waveform is $LK,"WF_NULL","MN:WF_NULL"$, the original passed to $LK,"Snd","MN:Snd"$() will be used. + +//Set reverb_delay to like 0.3 sec and reverb_intensity to like 0.4. + +{ + I64 i,k,cnt,cnt2,level; + F64 avg,dt; + CFileSND *s; + CSndWaveCtrl *sc=SndWaveCtrlNew(SNDFILE_SAMPLE_RATE,16,1); + CSndData *d,*d1; + U8 *name,*name2; + I64 file_num; + + snd_record=FALSE; + + dt=snd_record_root.last->time_stamp-snd_record_root.next->time_stamp; + if (!dt) return 0; + cnt=dt*SNDFILE_SAMPLE_RATE; + cnt++; //terminator + + name=StrNew(base_filename); + FileExtRem(name); + + s=CAlloc(offset(CFileSND.body)+cnt*sizeof(I16)); + s->signature=0x646e732e; + s->offset=EndianU32(offset(CFileSND.body)); + s->coding=EndianU32(3); + s->sample_rate=EndianU32(SNDFILE_SAMPLE_RATE); + s->channels=EndianU32(1); + + d=snd_record_root.next; + k=0; + while (d->next!=&snd_record_root) { + 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); + k+=cnt2; + QueRem(d); + Free(d); + d=d1; + } + + //Average + if (averaging) { + avg=0; + for (i=0;ibody[i]=avg=LowPass1(averaging,avg,s->body[i],1.0); + } + + //reverb + if (reverb_intensity) { + if (dt=reverb_delay*SNDFILE_SAMPLE_RATE) + for (i=dt;ibody[i]+=reverb_intensity*s->body[i-dt]; + } + + //Get rid of D.C. component + for (k=0;k<3;k++) { + level=0; + for (i=0;ibody[i]; + level/=cnt-1; + for (i=0;ibody[i]=LimitI64(s->body[i]-level,MIN_I16,MAX_I16); + } + + for (i=0;ibody[i]=EndianU16(s->body[i]); + + s->body[cnt-1]=0; + + d=snd_record_root.next; + while (d!=&snd_record_root) { + d1=d->next; + QueRem(d); + Free(d); + d=d1; + } + + name2=MAlloc(StrLen(name)+3+1+3+1); + cnt2=cnt; + file_num=0; + while (cnt2>0) { + i=cnt2; + if (i>MAX_SND_FILE_DATA) + i=MAX_SND_FILE_DATA; + s->data_size=EndianU32(i*sizeof(I16)); + MemCpy(s->body,&s->body[file_num*MAX_SND_FILE_DATA],i*sizeof(I16)); + SPrintF(name2,"%s%03d.SND",name,file_num++); + FileWrite(name2,s,offset(CFileSND.body)+i*sizeof(I16)); + cnt2-=i; + } + Free(s); + Free(name); + Free(name2); + + SndWaveCtrlDel(sc); + return cnt; +} + +public U0 SndFileWrite(U8 *filename,SND_IN_CONTAINER *buf,I64 cnt) +{ + CFileSND *s; + I64 i,j,l=SND_SAMPLE_RATE/SNDFILE_SAMPLE_RATE; + F64 level,a1,a2; + + cnt/=l; + s=CAlloc(offset(CFileSND.body)+cnt*sizeof(I16)); + s->signature=0x646e732e; + s->offset=EndianU32(offset(CFileSND.body)); + s->coding=EndianU32(3); + s->sample_rate=EndianU32(SNDFILE_SAMPLE_RATE); + s->channels=EndianU32(1); + s->data_size=EndianU32(cnt*sizeof(I16)); + + //Get rid of D.C. component + j=cnt*l; + level=0; + for (i=0;ibody[i]=EndianU16(buf[j]); + j+=l; + } + FileWrite(filename,s,offset(CFileSND.body)+cnt*sizeof(I16)); + Free(s); +} + +public U0 SndFileView(U8 *name,Bool zoom=FALSE) +{ + I64 i,start,end,w=Fs->win_pixel_width,h=Fs->win_pixel_height; + F64 x_scale,y_scale; + CFileSND *s=FileRead(name); + if (s) { + s->data_size=EndianU32(s->data_size)/sizeof(I16); + for (i=0;idata_size;i++) + s->body[i]=EndianU16(s->body[i]); + start=1; + end=s->data_size; + if (zoom) { + for (i=1;ibody[i]!=s->body[i-1]) { + start=i; + break; + } + if (s->data_size-start>w) + end=start+w; + } + "$$CL$$"; + DCFill; + CDC *dc=DCAlias; + dc->color=GREEN; + x_scale=ToF64(w)/(end-start+1); + y_scale=ToF64(h)/MAX_U16; + for (i=start;ibody[i]+MAX_I16), + x_scale*(i-start-1),y_scale*(s->body[i-1]+MAX_I16)); + Free(s); + PressAKey; + DCFill; + DCDel(dc); + } +} + + +CFileSND *snd_play_snd_file=NULL; +I64 snd_play_start_buf_num,snd_play_samples_per_sample; +Bool snd_play_done=TRUE,snd_play_single_done; +U0 (*fp_snd_play_task_end_cb)()=NULL; +U0 (*fp_snd_play_old_fill_buf)(SND_OUT_CONTAINER *buf,I64 buf_num)=NULL; + +CFileSND *SndFileLoad(U8 *name) +{ + I64 i; + CFileSND *s=FileRead(name); + if (s) { + s->data_size=EndianU32(s->data_size)/sizeof(I16); + for (i=0;idata_size;i++) + s->body[i]=EndianU16(s->body[i]); + } + return s; +} + +U0 SndFileFillBuf(SND_OUT_CONTAINER *buf,I64 buf_num) +{ + I64 i,j,k,m; + if (snd_play_done) return; + buf_num-=snd_play_start_buf_num; + j=buf_num*(SND_BUF_LEN/SND_OCHANNELS*SNDFILE_SAMPLE_RATE/SND_SAMPLE_RATE); + i=j%snd_play_snd_file->data_size; + k=j%snd_play_samples_per_sample; + j=0; + while (jbody[i++]<<16; + while (j=snd_play_snd_file->data_size) { + while (jtask_end_cb; + Fs->task_end_cb=&SndFilePlayTaskEndCB; + snd_play_start_buf_num=snd_obuf_num; + snd_play_done=FALSE; + fp_snd_play_old_fill_buf=fp_snd_fill_buf; + fp_snd_fill_buf=&SndFileFillBuf; + try { + while (!snd_play_done) + Sleep(1); + } catch { + snd_play_done=TRUE; + fp_snd_fill_buf=fp_snd_play_old_fill_buf; + Fs->task_end_cb=fp_snd_play_task_end_cb; + Free(snd_play_snd_file); + snd_play_snd_file=NULL; + } + fp_snd_fill_buf=fp_snd_play_old_fill_buf; + Fs->task_end_cb=fp_snd_play_task_end_cb; + Free(snd_play_snd_file); + snd_play_snd_file=NULL; + } + snd_play_single_done=TRUE; +} + +public U0 SndFilePlaySeq(U8 *snz_filename,I64 num) +{ //This has gaps between files. I might fix it someday. You fix it;-) + I64 i; + Bool old_preempt=Preempt(OFF),old_idle; + U8 *fname=StrNew(snz_filename),*fname2; + FileExtRem(fname); + old_idle=LBts(&Fs->task_flags,TASKf_IDLE); + for (i=0;itask_flags,TASKf_IDLE,old_idle); + Free(fname); + Preempt(old_preempt); +} + +#help_index "" diff --git a/SparrowOS/Adam/Start.CPP b/SparrowOS/Adam/Start.CPP new file mode 100644 index 0000000..bf79e5a --- /dev/null +++ b/SparrowOS/Adam/Start.CPP @@ -0,0 +1,29 @@ +#if snd_dev==SD_HD_AUDIO +#include "::/SparrowOS/Demo/Snd/PolyPhonic.CPP.Z" +#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; + 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); + TaskWait(task); + WinToTop; + PolyPhonic; + Kill(task); +#else + nounusedwarn task; + View; +#endif +} + +Start; diff --git a/SparrowOS/Adam/TaskSettings.CPP b/SparrowOS/Adam/TaskSettings.CPP new file mode 100644 index 0000000..c5d51f4 --- /dev/null +++ b/SparrowOS/Adam/TaskSettings.CPP @@ -0,0 +1,121 @@ +#help_index "Task/Settings" + +public CTaskSettings *SettingsPush(CTask *task=NULL,I64 flags=0) +{ //This is typically used at the start of an application. + //It saves many settings so they can be restored + //at the end of the application with $LK,"SettingsPop","MN:SettingsPop"$(). + + CTaskSettings *tempse; + CDoc *doc; + if (!task) task=Fs; + if (!TaskValidate(task)) return NULL; + tempse=CAlloc(sizeof(CTaskSettings),task); + tempse->draw_it=task->draw_it; + GetVGAPalette4(tempse->palette4); + tempse->task_end_cb=task->task_end_cb; + + if (!(flags&TSF_SAME_SONG)) { + if (tempse->song_task=task->song_task) { + Suspend(task->song_task); + Snd(0); + } + task->song_task=NULL; + } + + if (tempse->animate_task=task->animate_task) + Suspend(task->animate_task); + task->animate_task=NULL; + + if (doc=DocCur(task)) { + tempse->cursor=!Bt(&doc->flags,DOCf_HIDE_CURSOR); + tempse->scroll=!Bt(&doc->flags,DOCf_NO_SCROLL_BARS); + tempse->doc_cur_attr=doc->start_text_attr; + } + if (doc=DocAux(task)) + tempse->doc_aux_attr=doc->start_text_attr; + + tempse->left=task->win_left; + tempse->right=task->win_right; + tempse->top=task->win_top; + tempse->bottom=task->win_bottom; + + tempse->scroll_x=task->win_scroll_x; + tempse->scroll_y=task->win_scroll_y; + tempse->scroll_z=task->win_scroll_z; + + tempse->win_inhibit=task->win_inhibit; + MemCpy(&tempse->snap,&task->snap,sizeof(CSnap)); + + tempse->win_max_refresh=task->win_max_refresh; + tempse->text_attr=task->text_attr; + tempse->border_attr=task->border_attr; + tempse->border=!Bt(&task->display_flags,DISPLAYf_NO_BORDER); + tempse->preempt=Bt(&task->task_flags,TASKf_PREEMPT); + if (TaskValidate(ws_task)) + tempse->wordstat=TRUE; + else + tempse->wordstat=FALSE; + + tempse->next=task->next_settings; + task->next_settings=tempse; + return tempse; +} + +public U0 SettingsPop(CTask *task=NULL,I64 flags=0) +{ + CTaskSettings *tempse; + CDoc *doc; + Bool old_preempt=Preempt(OFF); + if (!task) task=Fs; + if (!TaskValidate(task)) { + Preempt(old_preempt); + return; + } + if (tempse=task->next_settings) { + task->next_settings=tempse->next; + task->draw_it=tempse->draw_it; + SetVGAPalette4(tempse->palette4); + task->task_end_cb=tempse->task_end_cb; + + if (task->animate_task) + Kill(task->animate_task); + if (task->animate_task=tempse->animate_task) + Suspend(task->animate_task,FALSE); + + if (!(flags&TSF_SAME_SONG)) { + if (task->song_task) + Kill(task->song_task); + if (task->song_task=tempse->song_task) + Suspend(task->song_task,FALSE); + } + + if (doc=DocCur(task)) { + LBEqu(&doc->flags,DOCf_HIDE_CURSOR,!tempse->cursor); + LBEqu(&doc->flags,DOCf_NO_SCROLL_BARS,!tempse->scroll); + doc->start_text_attr=tempse->doc_cur_attr; + } + if (doc=DocAux(task)) + doc->start_text_attr=tempse->doc_aux_attr; + + WinBorder(tempse->border,task); + SetWinHorz(tempse->left,tempse->right,task); + SetWinVert(tempse->top,tempse->bottom,task); + task->win_scroll_x=tempse->scroll_x; + task->win_scroll_y=tempse->scroll_y; + task->win_scroll_z=tempse->scroll_z; + MemCpy(&task->snap,&tempse->snap,sizeof(CSnap)); + task->win_inhibit=tempse->win_inhibit; + task->win_max_refresh=tempse->win_max_refresh; + task->text_attr=tempse->text_attr; + task->border_attr=tempse->border_attr; + WordStat(tempse->wordstat); + Snd(0); + Free(tempse); + WinMgrSync(,TRUE); + Preempt(old_preempt); + LBEqu(&task->task_flags,TASKf_PREEMPT,tempse->preempt); + } else + Preempt(old_preempt); +} + +#help_index "" diff --git a/SparrowOS/Adam/ToHtml.CPP b/SparrowOS/Adam/ToHtml.CPP new file mode 100644 index 0000000..119f2ee --- /dev/null +++ b/SparrowOS/Adam/ToHtml.CPP @@ -0,0 +1,348 @@ +#help_index "Utils;Cmd Line (Typically);Doc/Html" + +//See $LK,"::/SparrowOS/Doc/Acknowledgements.TXT.Z","FI:::/SparrowOS/Doc/Acknowledgements.TXT.Z"$ (12). + +U0 HtmlPutS(CDoc *doc,I64 c,I64 *_old_c,U8 *st,I64 *_col,U8 *style_bitmap=NULL) +{ + U8 *ch; + if (c!=*_old_c) { + if (*_old_c!=-1) + DocPutS(doc,""); + DocPrintF(doc,"",c); + *_old_c=c; + if (style_bitmap) + LBts(style_bitmap,c); + } + while (ch=*st++) { + switch (ch) { + case '&': + DocPutS(doc,"&"); + *_col=*_col+1; + break; + case '<': + DocPutS(doc,"<"); + *_col=*_col+1; + break; + case '>': + DocPutS(doc,">"); + *_col=*_col+1; + break; + case '"': + 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; + break; + case 'é': + DocPutS(doc,"theta"); + *_col=*_col+1; + break; + case 'è': + DocPutS(doc,"phi"); + *_col=*_col+1; + break; + case 'ê': + DocPutS(doc,"omega"); + *_col=*_col+1; + break; + case 'ì': + DocPutS(doc,"inf"); + *_col=*_col+1; + break; + case 'æ': + DocPutS(doc,"u"); + *_col=*_col+1; + break; + default: + DocPutKey(doc,ch,0); + *_col=*_col+1; + } + } +} + +U8 *TSLinkCvt2(U8 *filename,I64 line_num) +{ // ::/SparrowOS/ --> http://www.sparrowos.com/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); + Free(st); + } + return result; +} + +U8 *TSLinkCvt1(U8 *link_st) +{ + static CDoc *bible=NULL; + static I64 locks=0; + U8 *result=NULL,*filename,*pattern; + I64 i,num; + if (link_st) { + switch (i=EdLinkCvt(link_st,&filename,&pattern,&num,0)) { + case LK_FILE_LINE: + case LK_PLAIN_LINE: + case LK_FILE: + result=TSLinkCvt2(filename,num); + break; + case -1: + case LK_DEF: + case LK_HELP_INDEX: + break; + case LK_BIBLE_FIND: + while (LBts(&locks,0)) + Yield; + if (!bible) + bible=Adam("DocRead(\"%s\");",filename); + if (DocPatternFind(bible,num,pattern)) + result=TSLinkCvt2(filename,bible->cur_entry->y+1); + LBtr(&locks,0); + break; + default: + if (DocFileEd(i,filename,pattern,&num,EDF_UNCOLLAPSE|EDF_BAIL)) + result=TSLinkCvt2(filename,num); + } + Free(filename); + Free(pattern); + } + return result; +} + +public CDoc *Doc2Html(CDoc *doc_in, + U8 *html_header=NULL, + U8 *body_header=NULL,U8 *body_footer=NULL,Bool line_anchors=TRUE, + U8 (*link_cvt)(U8 *link_st)=&TSLinkCvt1) +{ + CDocEntry *doc_e,*style,*doc_e2; + 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); + CBGR p[16]; + GetVGAPalette4(p); + CDoc *doc_out=DocNew; + Bool unlock_doc_in=DocLock(doc_in),no_backward; + + for (i=0xF0;i<=0xFF;i++) + LBts(style_bitmap,i); + + DocRecalc(doc_in); + + st_2[0]=0; st_2[1]=0; + doc_out->flags|=DOCF_PLAIN_TEXT|DOCF_NO_CURSOR; + if (!html_header) html_header=""; + if (!body_header) body_header=""; + if (!body_footer) body_footer=""; + DocPrintF(doc_out, + "\n" + "\n" + "\n" + "\n" + "%s" + "\n" + "\n" + "\n" + "\n" + "\n\n"); + + doc_out->cur_entry=style->next; + for (i=0;i<256;i++) + if (Bt(style_bitmap,i)) + DocPrintF(doc_out,".c%02X{color:#%02x%02x%02x;background-color:#%02x%02x%02x;}\n",i,p[i&15].r,p[i&15].g,p[i&15].b,p[i/16].r,p[i/16].g,p[i/16].b); + doc_out->cur_entry=&doc_out->root; + DocRecalc(doc_out); + + if (unlock_doc_in) + DocUnlock(doc_in); + return doc_out; +} + +public U0 ToHtml(U8 *_in_name,U8 *_out_name=NULL,U8 *html_header=NULL, + U8 *body_header=NULL,U8 *body_footer=NULL,I64 width=80, + Bool line_anchors=TRUE,U8 (*link_cvt)(U8 *link_st)=&TSLinkCvt1) +//Supply your own link_cvt routine. +{ + U8 *in_name,*out_name; + CDoc *doc_in,*doc_out; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + SetWinHorz(0,width-1); //This sets doc width for word wrap + + in_name=DftExt(_in_name,"CPP.Z"), + if (_out_name) + out_name=DftExt(_out_name,"html"); + else + out_name=ChgExt(_in_name,"html"); + + doc_in=DocRead(in_name); + doc_out=Doc2Html(doc_in,html_header,body_header,body_footer,line_anchors,link_cvt); + StrCpy(&doc_out->filename.name,out_name); + + SettingsPop; + + DocWrite(doc_out); + DocDel(doc_in); + DocDel(doc_out); + Free(in_name); + Free(out_name); +} + +#help_index "" diff --git a/SparrowOS/Adam/ToTXT.CPP b/SparrowOS/Adam/ToTXT.CPP new file mode 100644 index 0000000..601f0c4 --- /dev/null +++ b/SparrowOS/Adam/ToTXT.CPP @@ -0,0 +1,146 @@ +#help_index "Utils;Cmd Line (Typically)" + +U0 TXTPutS(CDoc *doc,U8 *st,I64 *_col) +{ + U8 *ch; + while (ch=*st++) { + switch (ch) { + 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; + break; + case 'é': + DocPutS(doc,"theta"); + *_col=*_col+1; + break; + case 'è': + DocPutS(doc,"phi"); + *_col=*_col+1; + break; + case 'ê': + DocPutS(doc,"omega"); + *_col=*_col+1; + break; + case 'ì': + DocPutS(doc,"inf"); + *_col=*_col+1; + break; + case 'æ': + DocPutS(doc,"u"); + *_col=*_col+1; + break; + default: + DocPutKey(doc,ch,0); + *_col=*_col+1; + } + } +} + +public CDoc *Doc2TXT(CDoc *doc_in) +{ + CDocEntry *doc_e,*doc_e2; + I64 y,col; + CDoc *doc_out=DocNew; + Bool unlock_doc_in=DocLock(doc_in),no_backward; + + DocRecalc(doc_in); + + doc_out->flags|=DOCF_PLAIN_TEXT|DOCF_NO_CURSOR; + + doc_e=doc_in->root.next; + col=doc_e->x; + y=doc_e->y; + while (doc_e!=doc_in) { + if (!(doc_e->flags1&(DOCEF1_SKIP|DOCEF1_HARD_SKIP))) { + while (yy) { + TXTPutS(doc_out,"\n",&col); + y++; + col=0; + } + + no_backward=TRUE; + doc_e2=doc_e->next; + while (doc_e2!=doc_in && doc_e2->y==doc_e->y) { + if (doc_e2->xx) { + no_backward=FALSE; + break; + } + doc_e2=doc_e2->next; + } + if (no_backward) + while (colx) + TXTPutS(doc_out," ",&col); + + switch (doc_e->type_u8) { + case DOCT_TEXT: + TXTPutS(doc_out,doc_e->tag,&col); + break; + case DOCT_TAB: + TXTPutS(doc_out,"\t",&col); + break; + case DOCT_HTML_IMG: + break; + case DOCT_HTML_VIDEO: + break; + case DOCT_HTML_CODE: + break; + case DOCT_SPRITE: + break; + default: + if (Bt(doc_tag_types,doc_e->type_u8)) + TXTPutS(doc_out,doc_e->tag,&col); + } + } + doc_e=doc_e->next; + } + while (yy) { + TXTPutS(doc_out,"\n",&col); + y++; + col=0; + } + doc_out->cur_entry=&doc_out->root; + DocRecalc(doc_out); + + if (unlock_doc_in) + DocUnlock(doc_in); + return doc_out; +} + +public U0 ToTXT(U8 *_in_name,U8 *_out_name=NULL,I64 width=70) +{ + U8 *in_name,*out_name; + CDoc *doc_in,*doc_out; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + SetWinHorz(0,width-1); //This sets doc width for word wrap + + in_name=DftExt(_in_name,"TXT.Z"), + if (_out_name) + out_name=DftExt(_out_name,"TXT"); + else + out_name=ChgExt(_in_name,"TXT"); + + doc_in=DocRead(in_name); + doc_out=Doc2TXT(doc_in); + StrCpy(&doc_out->filename.name,out_name); + + SettingsPop; + + DocWrite(doc_out); + DocDel(doc_in); + DocDel(doc_out); + Free(in_name); + Free(out_name); +} + +#help_index "" diff --git a/SparrowOS/Adam/Training.CPP b/SparrowOS/Adam/Training.CPP new file mode 100644 index 0000000..49b11bc --- /dev/null +++ b/SparrowOS/Adam/Training.CPP @@ -0,0 +1,242 @@ +#help_index "Training" + +public U0 PressKeyHelp(CTask *task=NULL) +{ + I64 p1=0,p2=0; + Bool old_preempt=Preempt(OFF); + CTask *old_hash=Fs->hash_table; + if (!task) task=Fs; + +//This feat is a burden in code. +//It would be nice to list key +//cmds for all applications, +//but it makes the code too ugly. +// +task=Fs; + + Fs->hash_table=task->hash_table; + "Press keys to show handler code.\n" + " to exit.\n" + "Do not press .\n"; + while (p1!=CH_ESC && p1!=CH_SHIFT_ESC) { + GetMsg(&p1,&p2,1<hash_table=old_hash; + Preempt(old_preempt); +} + +U0 KeyMapCtrlAltFamily() +{ + I64 i,p2; + U8 *st,*st2; + + p2=SC_DELETE+SCF_CTRL+SCF_ALT; + st2=ScanCode2KeyName(p2); + st=SrcEdLink(&Reboot,256); + "%20s $$LK,\"%s\",\"%s\"$$\n",st2,"Sys/Reboot",st; + Free(st); + Free(st2); + + p2=SC_ESC+SCF_CTRL+SCF_ALT; + st2=ScanCode2KeyName(p2); + st=SrcEdLink(&SpawnUser,256); + "%20s $$LK,\"%s\",\"%s\"$$\n",st2,"Sys/Spawn New User Task",st; + Free(st); + Free(st2); + + p2=SC_TAB+SCF_CTRL+SCF_ALT; + st2=ScanCode2KeyName(p2); + st=SrcEdLink(&WinToTop,256); + "%20s $$LK,\"%s\",\"%s\"$$\n",st2,"Sys/Switch Focus to Next Task",st; + Free(st); + Free(st2); + + for (i=0;i<26;i++) { + if (fp_ctrl_alt_let_cbs[i] && + ctrl_alt_let_descs[i]) { + p2=A2ScanCode(i+'a')+SCF_CTRL+SCF_ALT; + st2=ScanCode2KeyName(p2); + st=SrcEdLink(fp_ctrl_alt_let_cbs[i],256); + "%20s $$LK,\"%s\",\"%s\"$$\n",st2,ctrl_alt_let_descs[i],st; + Free(st); + Free(st2); + } + } +} + +I64 KMCompare(U8 *e1,U8 *e2) +{ + I64 i; + U8 *ee1,*ee2,ch1,ch2; + Bool e1_shift=FALSE,e2_shift=FALSE; + if (e1) { + if (e2) { + while (*e1==CH_SPACE) + e1++; + while (*e2==CH_SPACE) + e2++; + while (*e1 && *e1==*e2) { + e1++; + e2++; + } + if (!StrNCmp(e1,"SHIFT",5)) { + e1+=6; + e1_shift=TRUE; + } else if (!StrNCmp(e1," ",5)) + e1+=6; + if (!StrNCmp(e2,"SHIFT",5)) { + e2+=6; + e2_shift=TRUE; + } else if (!StrNCmp(e2," ",5)) + e2+=6; + + ee1=e1; + while (*ee1 && *ee1!='$$') + ee1++; + ch1=*ee1; + *ee1=0; + + ee2=e2; + while (*ee2 && *ee2!='$$') + ee2++; + ch2=*ee2; + *ee2=0; + + i=StrCmp(e1,e2); + + *ee1=ch1; + *ee2=ch2; + + if (i) + return i; + else + return e1_shift-e2_shift; + } else + return 1; + } else { + if (e2) + return -1; + else + return 0; + } +} + +U0 KeyMapFamily2(U8 **entries,U8 *family,CTask *task,I64 scf) +{ + I64 i,p2,p1; + U8 *st,*st2; + CTask *old_hash=Fs->hash_table; + Fs->hash_table=task->hash_table; + for (i=0;i<256;i++) { + p2=scf|i|SCF_KEY_DESC; + p1=ScanCode2A(p2); + *key_desc=0; + key_handler=NULL; + if (task==Fs) + PutKey(p1,p2); + else if (TaskValidate(task)) { + PostMsg(task,MSG_KEY_DOWN,p1,p2); + while (!key_handler) + Yield; + } + if (*key_desc && StrNCmp(key_desc,"Char/",5)) { + st=ScanCode2KeyName(p2&~(SCF_CTRL|SCF_ALT|SCF_SHIFT)); + st2=MSPrintF("%s %s",family,st); + Free(st); + st=SrcEdLink(key_handler,256); + entries[i]=MSPrintF("%20s $$LK,\"%s\",\"%s\"$$\n", + st2,key_desc,st); + Free(st); + Free(st2); + } + } + Fs->hash_table=old_hash; +} + +U0 KeyMapFamily(U8 *family,CTask *task,I64 scf) +{ + I64 i; + U8 **entries=CAlloc(2*256*sizeof(U8 *)),st1[32],st2[32]; + SPrintF(st1,"%s ",family); + SPrintF(st2,"%s SHIFT",family); + KeyMapFamily2(entries ,st1,task,scf); + KeyMapFamily2(entries+256,st2,task,scf+SCF_SHIFT); + QSortI64(entries,2*256,&KMCompare); + for (i=0;i<2*256;i++) + if (entries[i]) { + "" entries[i]; + Free(entries[i]); + } + Free(entries); +} + +public U0 KeyMap(CTask *task=NULL) +{ + if (!task) task=Fs; + +//This feat is a burden in code. +//It would be nice to list key +//cmds for all applications, +//but it makes the code too ugly. +// +task=Fs; + + DocMax; + KeyMapFamily("",task,0); + KeyMapFamily("CTRL",task,SCF_CTRL); + KeyMapFamily("ALT",task,SCF_ALT); + KeyMapCtrlAltFamily; + "\n$$MA+A-X+PU,\"Click for help on key pressed\",\"PressKeyHelp(0x%X);\"$$\n",task; +} + +public U0 TipOfDay(U8 *tip_file="::/SparrowOS/Doc/Tips.TXT.Z") +{ + I64 i=RandU16; + CDoc *doc=DocRead(tip_file),*doc2=DocNew; + CDocEntry *doc_e=doc->root.next; + "$$WW,1$$\n"; + while (TRUE) { + if (doc_e->type_u8==DOCT_TEXT && *doc_e->tag=='*') + if (!i--) break; + doc_e=doc_e->next; + } + if (doc_e->type_u8==DOCT_TEXT && *doc_e->tag=='*') { + while (doc_e!=doc) { + if (doc_e->type_u8!=DOCT_ERROR) + DocIns(doc2,DocEntryCopy(doc2,doc_e)); + doc_e=doc_e->next; + if (doc_e->type_u8==DOCT_TEXT && *doc_e->tag=='*') + break; + } + } + DocInsDoc(DocCur,doc2); + DocDel(doc2); + DocDel(doc); +} + +/**** +//This feat is a burden in code. +//It would be nice to list key +//cmds for all applications, +//but it makes the code too ugly. +// +U0 CtrlAltK(I64) +{ + U8 buf[136]; + SPrintF(buf,"KeyMap(0x%X);View;", + sys_focus_task); + PopUp(buf); +} +SetCtrlAltLetCB('K',&CtrlAltK,"Sys/Show KeyMap"); +****/ diff --git a/SparrowOS/Adam/Utils2a.CPP b/SparrowOS/Adam/Utils2a.CPP new file mode 100644 index 0000000..a107dbf --- /dev/null +++ b/SparrowOS/Adam/Utils2a.CPP @@ -0,0 +1,443 @@ +#help_index "Memory" +U0 StkOverflow(CTask *task) +{ + Dbg("Stk Overflow",task); +} + +U0 MemSysCorrupt() +{ + Dbg("Corrupt Sys Memory"); +} + +U0 MemTaskCorrupt() +{ + Dbg("Corrupt Task Memory"); +} + +public I64 UnusedBPMem(CBlkPool *bp) +{ + I64 result=0,i; + CMemBlk *tempm; + + if (!bp) return 0; + + PushFD; + Cli; + while (LBts(&bp->locked_flags,BPlf_LOCKED)) + Pause; + + tempm=bp->mem_free_list; + while (tempm) { + if (tempm->mb_signature!=MBS_UNUSED_SIGNATURE_VAL) + MemSysCorrupt; + result+=tempm->pages; + tempm=tempm->next; + } + for (i=0;ifree_page_hash[i]; + while (tempm) { + if (tempm->mb_signature!=MBS_UNUSED_SIGNATURE_VAL) + MemSysCorrupt; + result+=tempm->pages; + tempm=tempm->next; + } + } + + for (i=0;i<64-PAGE_BITS;i++) { + tempm=bp->free_page_hash2[i]; + while (tempm) { + if (tempm->mb_signature!=MBS_UNUSED_SIGNATURE_VAL) + MemSysCorrupt; + result+=tempm->pages; + tempm=tempm->next; + } + } + LBtr(&bp->locked_flags,BPlf_LOCKED); + PopFD; + return result*PAGE_SIZE; +} + +public I64 UnusedSysMem() +{ + return UnusedBPMem(sys_code_bp); +} + +public I64 TaskAllocatedMem(CTask *task=NULL,Bool override_validate=FALSE) +{ + CMemBlk *m,*m1; + I64 result=0; + + if (!task) task=Fs; + if (!override_validate && !TaskValidate(task)) return 0; + + PushFD; + Cli; + while (LBts(&task->code_heap->locked_flags,HClf_LOCKED)) + Pause; + if (task->code_heap!=task->data_heap) + while (LBts(&task->data_heap->locked_flags,HClf_LOCKED)) + Pause; + + m=task->code_heap->next_mem_blk; + m1=&task->code_heap->next_mem_blk; + while (m!=m1) { + if (m->mb_signature!=MBS_USED_SIGNATURE_VAL) + MemTaskCorrupt; + result+=m->pages*PAGE_SIZE; + m=m->next; + } + + if (task->code_heap!=task->data_heap) { + m=task->data_heap->next_mem_blk; + m1=&task->data_heap->next_mem_blk; + while (m!=m1) { + if (m->mb_signature!=MBS_USED_SIGNATURE_VAL) + MemTaskCorrupt; + result+=m->pages*PAGE_SIZE; + m=m->next; + } + } + + if (task->code_heap!=task->data_heap) + LBtr(&task->data_heap->locked_flags,HClf_LOCKED); + LBtr(&task->code_heap->locked_flags,HClf_LOCKED); + PopFD; + return result; +} + +I64 MemBlkListSize(CHeapCtrl *hc) +{ + CMemBlk *m; + I64 result=0; + m=hc->next_mem_blk; + while (m!=&hc->next_mem_blk) { + result+=sizeof(CMemBlk); + m=m->next; + } + return result; +} + +public I64 TaskUnusedAllocatedMem(CTask *task=NULL,Bool override_validate=FALSE) +{ + I64 result=0,i; + CMemUnusedAllocated *uum; + if (!task) task=Fs; + if (!override_validate && !TaskValidate(task)) return 0; + + PushFD; + Cli; + while (LBts(&task->code_heap->locked_flags,HClf_LOCKED)) + Pause; + if (task->data_heap!=task->code_heap) + while (LBts(&task->data_heap->locked_flags,HClf_LOCKED)) + Pause; + + result+=MemBlkListSize(task->code_heap); + for (i=0;i>3;i++) { + uum=task->code_heap->heap_hash[i]; + while (uum) { + result+=uum->size; + uum=uum->next; + } + } + uum=task->code_heap->malloc_free_list; + while (uum) { + result+=uum->size; + uum=uum->next; + } + + if (task->data_heap!=task->code_heap) { + result+=MemBlkListSize(task->data_heap); + for (i=0;i>3;i++) { + uum=task->data_heap->heap_hash[i]; + while (uum) { + result+=uum->size; + uum=uum->next; + } + } + uum=task->data_heap->malloc_free_list; + while (uum) { + result+=uum->size; + uum=uum->next; + } + } + + if (task->data_heap!=task->code_heap) + LBtr(&task->data_heap->locked_flags,HClf_LOCKED); + LBtr(&task->code_heap->locked_flags,HClf_LOCKED); + PopFD; + return result; +} + +public I64 TaskUsedMem(CTask *task=NULL,Bool override_validate=FALSE) +{ + I64 result=0; + if (!task) task=Fs; + if (!override_validate && !TaskValidate(task)) return 0; + result=task->code_heap->used_u8s; + if (task->data_heap!=task->code_heap) + result+=task->data_heap->used_u8s; + return result; +} + + #help_index "Memory/Heap Ctrl" + +public I64 UnusedHCMem(CHeapCtrl *hc) +{ + I64 result,i; + CMemUnusedAllocated *u; + + if (!hc) return 0; + + result=UnusedBPMem(hc->bp); + + PushFD; + Cli; + while (LBts(&hc->locked_flags,HClf_LOCKED)) + Pause; + + for (i=0;i>3;i++) { + u=hc->heap_hash[i]; + while (u) { + result+=u->size; + u=u->next; + } + } + u=hc->malloc_free_list; + while (u) { + result+=u->size; + u=u->next; + } + + LBtr(&hc->locked_flags,HClf_LOCKED); + PopFD; + return result; +} + +#help_index "Info;Memory/Info;Debugging" +public Bool HeapRep(CTask *task) +{ + I64 i,cnt; + CMemUnusedAllocated *uum; + + if (!task || task==Fs) { + "Task can't HeapRep on self.\n"; + return FALSE; + } + if (!TaskValidate(task)) return FALSE; + + PushFD; + Cli; + while (LBts(&task->code_heap->locked_flags,HClf_LOCKED)) + Pause; + if (task->data_heap!=task->code_heap) + while (LBts(&task->data_heap->locked_flags,HClf_LOCKED)) + Pause; + + for (i=0;i>3;i++) { + cnt=0; + uum=task->code_heap->heap_hash[i]; + while (uum) { + cnt+=uum->size; + uum=uum->next; + } + if (task->data_heap!=task->code_heap) { + uum=task->data_heap->heap_hash[i]; + while (uum) { + cnt+=uum->size; + uum=uum->next; + } + } + if (cnt) + "%03X:%08X\n",i<<3,cnt; + } + NewLine; + + uum=task->code_heap->malloc_free_list; + while (uum) { + "%X, ",uum->size; + uum=uum->next; + } + if (task->data_heap!=task->code_heap) { + uum=task->data_heap->malloc_free_list; + while (uum) { + "%X, ",uum->size; + uum=uum->next; + } + } + + if (task->data_heap!=task->code_heap) + LBtr(&task->data_heap->locked_flags,HClf_LOCKED); + LBtr(&task->code_heap->locked_flags,HClf_LOCKED); + PopFD; + + NewLine; +} + +#help_index "Memory;Debugging" + +public Bool IsInHeap(U8 *a,CTask *task=NULL,Bool lock=TRUE) +{ + CMemBlk *m; + + if (!task) task=Fs; + if (!TaskValidate(task)) return FALSE; + + PushFD; + Cli; + if (lock) { + while (LBts(&task->code_heap->locked_flags,HClf_LOCKED)) + Pause; + if (task->data_heap!=task->code_heap) + while (LBts(&task->data_heap->locked_flags,HClf_LOCKED)) + Pause; + } + + m=task->code_heap->next_mem_blk; + while (m!=&task->code_heap->next_mem_blk) { + if (a>=m && apages*PAGE_SIZE) { + if (lock) + LBtr(&task->code_heap->locked_flags,HClf_LOCKED); + PopFD; + return TRUE; + } + m=m->next; + } + if (task->data_heap!=task->code_heap) { + m=task->data_heap->next_mem_blk; + while (m!=&task->code_heap->next_mem_blk) { + if (a>=m && apages*PAGE_SIZE) { + if (lock) + LBtr(&task->data_heap->locked_flags,HClf_LOCKED); + PopFD; + return TRUE; + } + m=m->next; + } + } + + if (lock) { + LBtr(&task->code_heap->locked_flags,HClf_LOCKED); + if (task->data_heap!=task->code_heap) + LBtr(&task->data_heap->locked_flags,HClf_LOCKED); + } + PopFD; + + return FALSE; +} + +public Bool HeapWalk(CTask *task=NULL) +{ + I64 i; + CMemUnusedAllocated *uum; + Bool result=TRUE; + + if (!task) task=Fs; + if (!TaskValidate(task)) return FALSE; + + PushFD; + Cli; + while (LBts(&task->code_heap->locked_flags,HClf_LOCKED)) + Pause; + if (task->data_heap!=task->code_heap) + while (LBts(&task->data_heap->locked_flags,HClf_LOCKED)) + Pause; + + for (i=0;i>3;i++) { + uum=task->code_heap->heap_hash[i]; + while (uum) { + if (!IsInHeap(uum,task,FALSE)) + result=FALSE; + uum=uum->next; + } + if (task->data_heap!=task->code_heap) { + uum=task->data_heap->heap_hash[i]; + while (uum) { + if (!IsInHeap(uum,task,FALSE)) + result=FALSE; + uum=uum->next; + } + } + } + + uum=task->code_heap->malloc_free_list; + while (uum) { + if (!IsInHeap(uum,task,FALSE)) + result=FALSE; + uum=uum->next; + } + + if (task->data_heap!=task->code_heap) { + uum=task->data_heap->malloc_free_list; + while (uum) { + if (!IsInHeap(uum,task,FALSE)) + result=FALSE; + uum=uum->next; + } + } + +#if _CFG_HEAP_DBG + CMemUsedAllocated *um,*um1; + um1=(&task->code_heap->next_um)(U8 *)-offset(CMemUsedAllocated.next); + um=um1->next; + while (um!=um1) { + if (!IsInHeap(um,task,FALSE)) + result=FALSE; + um=um->next; + } + if (task->data_heap!=task->code_heap) { + um1=(&task->data_heap->next_um)(U8 *)-offset(CMemUsedAllocated.next); + um=um1->next; + while (um!=um1) { + if (!IsInHeap(um,task,FALSE)) + result=FALSE; + um=um->next; + } + } +#endif + + if (task->data_heap!=task->code_heap) + LBtr(&task->data_heap->locked_flags,HClf_LOCKED); + LBtr(&task->code_heap->locked_flags,HClf_LOCKED); + PopFD; + return result; +} + +#help_index "Info;Task" + +U0 TaskRepTask(CTask *task,I64 indent) +{ + CTask *task1; + U8 *st,*desc=MSPrintF("%q",task->task_title); + st=MSPrintF("$$MA+A,\"%08X\",\"Kill(0x%X);\n\",$$",task,task,task); + Spaces(indent); + "%s $$TX+SCX,\"%Q...\",16$$ Mem:%08X\n", + st,desc,TaskAllocatedMem(task); + Spaces(indent+2); + "Flags:%04X:%04X %02X\n", + task->task_flags,task->display_flags,ExceptDepth(task); + "Time:%9.2fm\n",task->total_time/60.0/time_stamp_freq_initial; + Free(st); + Free(desc); + task1=task->next_child_task; + while (task1!=(&task->next_child_task)(U8 *)-offset(CTask.next_sibling_task)) { + TaskRepTask(task1,indent+2); + task1=task1->next_sibling_task; + } +} + +public U0 TaskRep() +{ + U8 i; + CCPU *c; + PushFD; + Cli; + for (i=0;iseth_task,2); + } + PopFD; +} + +#help_index "" diff --git a/SparrowOS/Adam/WallPaper.CPP b/SparrowOS/Adam/WallPaper.CPP new file mode 100644 index 0000000000000000000000000000000000000000..cfaf6176ec19d1e853d63e3190c46ccaea30625b GIT binary patch literal 6787 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 OHUwin_max_refresh; + else + return WIN_DFT_MAX_REFRESH; +} + +Bool WinInhibit(I64 flag) +{ + if (sys_focus_task && TaskValidate(sys_focus_task)) + return Bt(&sys_focus_task->win_inhibit,flag); + else + return FALSE; +} + + +#define PROGRESS_BAR_HEIGHT 20 +#define PROGRESS_BAR_WIDTH (3*GR_WIDTH/4) + +U0 DrawProgressBars(CDC *dc) +{ + I64 i,j,k,m; + for (i=0;icolor=BLACK; + GrRect(dc, + (GR_WIDTH-PROGRESS_BAR_WIDTH)/2, + (GR_HEIGHT-(NUM_PROGRESS_BARS*2-1-i*4)*PROGRESS_BAR_HEIGHT)/2, + PROGRESS_BAR_WIDTH,PROGRESS_BAR_HEIGHT); + + dc->color=LTGREEN; + k=sys_progresses[i].val; + if (k>m) + k=m; + GrRect(dc, + (GR_WIDTH-PROGRESS_BAR_WIDTH)/2+2, + (GR_HEIGHT-(NUM_PROGRESS_BARS*2-1-i*4)*PROGRESS_BAR_HEIGHT)/2+2, + k*(PROGRESS_BAR_WIDTH-4)/m, + PROGRESS_BAR_HEIGHT-4); + + if (m>1) { + dc->color=BLACK; + k=m-1; + if (k>19) k=19; + for (j=0;j<=k;j++) + GrLine(dc, + (GR_WIDTH-PROGRESS_BAR_WIDTH)/2+1+j*(PROGRESS_BAR_WIDTH-4)/ToF64(k+1), + (GR_HEIGHT-(NUM_PROGRESS_BARS*2-1-i*4)*PROGRESS_BAR_HEIGHT)/2+4, + (GR_WIDTH-PROGRESS_BAR_WIDTH)/2+1+j*(PROGRESS_BAR_WIDTH-4)/ToF64(k+1), + (GR_HEIGHT-(NUM_PROGRESS_BARS*2-3-i*4)*PROGRESS_BAR_HEIGHT)/2-4); + } + dc->color=WHITE; + GrPutS(dc, + (GR_WIDTH-FONT_WIDTH*StrLen(sys_progresses[i].desc))/2, + (GR_HEIGHT-FONT_HEIGHT-(NUM_PROGRESS_BARS*2-2-i*4)*PROGRESS_BAR_HEIGHT)/2, + sys_progresses[i].desc); + } + } +} + +Bool win_show_grid=FALSE; +F64 win_grid_spacing=8.0, + win_grid_x_offset=0, + win_grid_y_offset=0; + +U0 DrawWinGrid(CDC *dc) +{ + F64 d; + dc->color=BLACK; + dc->pen_width=1; + for (d=win_grid_x_offset;d\n"); + for (i=0;i<256;i++) { + if (i>=CH_SHIFT_SPACE && i!=127) { + if (i==CH_SHIFT_SPACE) + DocPrintF(doc,"$$MU-X-UL,\"\\37\",%d$$",i); + else if (i=='$$') + DocPrintF(doc,"$$MU-X-UL,\"\\44\",%d$$",i); + else if (i=='\"'||i=='\\') + DocPrintF(doc,"$$MU-X-UL,\"\\%c\",%d$$",i,i); + else + DocPrintF(doc,"$$MU-X-UL,\"%c\",%d$$",i,i); + } else + DocPutS(doc," "); + if (i&15==15) + DocPutS(doc,"\n"); + } + i=PopUpMenu(doc); + DocDel(doc); + PostMsg(ext_ASCII_task,MSG_KEY_DOWN_UP,i,A2ScanCode(i)); +} + +U0 CtrlAltA(I64) +{ + if (ext_ASCII_task=sys_focus_task) + Spawn(&ExtendedASCII); +} +SetCtrlAltLetCB('A',&CtrlAltA,"Sys/Extended ASCII"); + + +Bool win_grab_scroll=FALSE,win_grab_scroll_closed=FALSE; +public U0 WinScrollNull(CTask *task,CD3I64 *s) +{ + s->x=task->win_scroll_x; + s->y=task->win_scroll_y; + s->z=task->win_scroll_z; + task->win_scroll_x=0; + task->win_scroll_y=0; + task->win_scroll_z=0; +} + +public U0 WinScrollRestore(CTask *task,CD3I64 *s) +{ + task->win_scroll_x=s->x; + task->win_scroll_y=s->y; + task->win_scroll_z=s->z; +} + +U0 DrawInputPtr(CDC *dc) +{ + I64 x,y; + PushFD; + Cli; + x=ipx; + y=ipy; + PopFD; + if (ip_on && ip_dev!=IP_NULL) { + if (text_mode) + gr_text_base[iptx+ipty*TEXT_COLS]^=0x7F00; + else { + if (fp_draw_input_ptr) { + if (ip_lb) + dc->color=ROP_XOR+LTPURPLE^COLOR_TRANSPARENT; + else if (ip_rb) + dc->color=ROP_XOR+LTCYAN^COLOR_TRANSPARENT; + else + dc->color=ROP_XOR+BLACK^COLOR_TRANSPARENT; + if (win_grab_scroll && fp_draw_grab_input_ptr) + (*fp_draw_grab_input_ptr)(dc,x,y,win_grab_scroll_closed); + else + (*fp_draw_input_ptr)(dc,x,y); + } + } + } +} + +Bool win_show_menu=FALSE; +U0 WinFinalUpdate(CDC *dc) +{ + if (win_show_grid) + DrawWinGrid(dc); + DrawProgressBars(dc); + if (win_show_menu) + DrawMenu(dc); + else + sys_cur_submenu_entry=NULL; + DrawInputPtr(dc); +} + +fp_final_screen_update=&WinFinalUpdate; + +U0 WinIPUpdate() +{ + I64 dd; + F64 temp,temp2; + Bool set=FALSE,old_preempt=Preempt(OFF); + + if (ip_dev==IP_MOUSE) { + ip_has_wheel=mouse_has_wheel; + if (mouse_evt) { + ip_throttle+=ipz_scale*(mzz-ipz)*0x10000000; + IPVarsUpdate(mxx,myy,mzz,mouse_buttons[0],ip_cb,mouse_buttons[1]); + mouse_evt=FALSE; + set=TRUE; + } + } else if (ip_dev==IP_NULL && mouse_installed) + ip_dev=IP_MOUSE; + + if (set) { + if (ip_dev==IP_MOUSE) { + ip_speed=mouse_speed; + ip_last_move_time=mouse_evt_time; + } else { + if (dd=SqrI64(old_ipx_presnap-ipx_presnap)+ + SqrI64(old_ipy_presnap-ipy_presnap)) { + temp2=tS; + temp=temp2-ip_last_move_time; + ip_last_move_time=temp2; + if (!temp) temp=1; + ip_speed=Sqrt(dd)/temp; + } else + ip_speed=0.0; + } + } else + ip_speed*=0.95; + if (gr_screen_zoom!=1) { + if (gr_continuous_scroll) + GrScaleZoom(1.0); + else { + dd=(ipx-grsx)*gr_screen_zoom; + if (dd<8 || dd>=GR_WIDTH-8) + GrScaleZoom(1.0); + else { + dd=(ipy-grsy)*gr_screen_zoom; + if (dd<8 || dd>=GR_HEIGHT-8) + GrScaleZoom(1.0); + } + } + } + Preempt(old_preempt); +} + +I64 last_total_jiffies, + last_idle_pt_hits[MP_MAX_PROCESSORS], + last_swap_cnter[MP_MAX_PROCESSORS]; +F64 last_refresh_time=tNP, + last_refresh_start_time=0, + last_refresh_end_time=0, + refresh_time,refresh_delta_time; +I64 win_calc_refresh_cnt=0, + win_calc_refresh_skips=0; + +I64 WinCalcRefreshTimeout(Bool was_forced) +{ + F64 d,d1; + I64 i,k,total, + total_jiffies,idle_pt_hits[MP_MAX_PROCESSORS]; + CCPU *c; + + win_calc_refresh_skips++; + if ((refresh_time=tNP)-last_refresh_time>.25) { + PushFD; + Cli; + total_jiffies=cpu_structs[0].total_jiffies; + for (i=0;i0) { + if (total) { + if ((k=idle_pt_hits[i]-last_idle_pt_hits[i])>=0) { + d1=ToF64(k)/total; + d=ToF64(k*time_stamp_freq) + /(JIFFY_FREQ*refresh_delta_time); + if (d=0) + d1=ToF64(k*time_stamp_freq) + /(JIFFY_FREQ*refresh_delta_time); + } + } + last_idle_pt_hits[i]=idle_pt_hits[i]; + c->idle_factor=Limit(d1,0.01,0.99); + } + last_total_jiffies=total_jiffies; + last_refresh_time=refresh_time; + if (!was_forced) { + if (win_first_after_startup_complete) { + d=Gs->idle_factor; + d1=(last_refresh_end_time-last_refresh_start_time)/ + (refresh_delta_time/win_calc_refresh_skips); + if (d1<0.2) + win_desired_refresh*=1.25; + else if (d<=0.0) + win_desired_refresh=win_min_refresh; + else if (d<0.02) { + d=win_min_refresh/win_actual_refresh; + win_desired_refresh=d*win_min_refresh+0.5*(1.0-d)*win_desired_refresh; + } else if (d<0.99) { + if (d=(1.0-d)`0.25) + win_desired_refresh*= 0.8`0.25/d; + } else + win_desired_refresh=WinMaxRefresh; + win_calc_refresh_cnt++; + win_calc_refresh_skips=0; + } else { + win_desired_refresh=WinMaxRefresh; + win_first_after_startup_complete=TRUE; + } + } + } + win_desired_refresh=Limit(win_desired_refresh,win_min_refresh,WinMaxRefresh); + return sys_jiffies+JIFFY_FREQ/win_desired_refresh; +} + +I64 WinQueIPMsgs(Bool que) +{ + static I64 single_ipx=0,single_ipy=0; + F64 time=tNP; + I64 msg_code=0,p1,p2,single_p1,single_p2; + CTask *task_focus=sys_focus_task; + + if (task_focus && !win_grab_scroll) { + p1=ipx-task_focus->win_pixel_left-task_focus->win_scroll_x; + p2=ipy-task_focus->win_pixel_top-task_focus->win_scroll_y; + single_p1=single_ipx-task_focus->win_pixel_left-task_focus->win_scroll_x; + single_p2=single_ipy-task_focus->win_pixel_top-task_focus->win_scroll_y; + if (old_ipx_presnap!=ipx_presnap || old_ipy_presnap!=ipy_presnap) { + if (que) + QueMsg(task_focus,0, + MSG_IP_MOVE,p1,p2,0); + msg_code=MSG_IP_MOVE; + } + //TODO que msg for ipz? + if (left_ip_dbl_time) { + if (time>left_ip_dbl_time) { + if (left_dbl) { + if (!left_down_sent) { + if (que) + QueMsg(task_focus,0, + MSG_IP_L_D_DOWN,p1,p2,0); + left_down_sent=TRUE; + msg_code=MSG_IP_L_D_DOWN; + } + if (!ip_lb) { + if (que) + QueMsg(task_focus,0, + MSG_IP_L_D_UP,p1,p2,0); + left_ip_dbl_time=0; + msg_code=MSG_IP_L_D_UP; + } + } else { + if (!left_down_sent) { + if (que) + QueMsg(task_focus,0, + MSG_IP_L_DOWN,single_p1,single_p2,0); + left_down_sent=TRUE; + msg_code=MSG_IP_L_DOWN; + } + if (!ip_lb) { + if (que) + QueMsg(task_focus,0, + MSG_IP_L_UP,p1,p2,0); + left_ip_dbl_time=0; + msg_code=MSG_IP_L_UP; + } + } + } else { + if (ip_lb && !ip_lb_last) { + left_ip_dbl_time=time; + left_dbl=TRUE; + } + } + } else { + if (WinInhibit(WIf_DBL_CLICK)) { + if (ip_lb && !ip_lb_last) { + if (que) + QueMsg(task_focus,0, + MSG_IP_L_DOWN,p1,p2,0); + msg_code=MSG_IP_L_DOWN; + } else if (!ip_lb && ip_lb_last) { + if (que) + QueMsg(task_focus,0, + MSG_IP_L_UP,p1,p2,0); + msg_code=MSG_IP_L_UP; + } + } else { + if (ip_lb && !ip_lb_last) { + left_dbl=FALSE; + left_down_sent=FALSE; + left_ip_dbl_time=time+dbl_click_time; + single_ipx=ipx; + single_ipy=ipy; + } + } + } + + if (right_ip_dbl_time) { + if (time>right_ip_dbl_time) { + if (right_dbl) { + if (!right_down_sent) { + if (que) + QueMsg(task_focus,0, + MSG_IP_R_D_DOWN,p1,p2,0); + right_down_sent=TRUE; + msg_code=MSG_IP_R_D_DOWN; + } + if (!ip_rb) { + if (que) + QueMsg(task_focus,0, + MSG_IP_R_D_UP,p1,p2,0); + right_ip_dbl_time=0; + msg_code=MSG_IP_R_D_UP; + } + } else { + if (!right_down_sent) { + if (que) + QueMsg(task_focus,0, + MSG_IP_R_DOWN,single_p1,single_p2,0); + right_down_sent=TRUE; + msg_code=MSG_IP_R_DOWN; + } + if (!ip_rb) { + if (que) + QueMsg(task_focus,0, + MSG_IP_R_UP,p1,p2,0); + right_ip_dbl_time=0; + msg_code=MSG_IP_R_UP; + } + } + } else { + if (ip_rb && !ip_rb_last) { + right_ip_dbl_time=time; + right_dbl=TRUE; + } + } + } else { + if (WinInhibit(WIf_DBL_CLICK)) { + if (ip_rb && !ip_rb_last) { + if (que) + QueMsg(task_focus,0, + MSG_IP_R_DOWN,p1,p2,0); + msg_code=MSG_IP_R_DOWN; + } else if (!ip_rb && ip_rb_last) { + if (que) + QueMsg(task_focus,0, + MSG_IP_R_UP,p1,p2,0); + msg_code=MSG_IP_R_UP; + } + } else { + if (ip_rb && !ip_rb_last) { + right_dbl=FALSE; + right_down_sent=FALSE; + right_ip_dbl_time=time+dbl_click_time; + single_ipx=ipx; + single_ipy=ipy; + } + } + } + + ip_lb_last=ip_lb; + ip_rb_last=ip_rb; + old_ip_lb=ip_lb; + old_ip_rb=ip_rb; + old_ipx=ipx; + old_ipy=ipy; + old_ipz=ipz; + old_ipx_presnap=ipx_presnap; + old_ipy_presnap=ipy_presnap; + old_ipz_presnap=ipz_presnap; + } + return msg_code; +} + +CTask *WinRefocus() +{ + CTask *task; + Cli; + PushFD; + task=sys_focus_task; + if (!task) { + task=sys_winmgr_task->last_task; + while (TaskValidate(task) && task!=sys_winmgr_task) { + if (Bt(&task->task_flags,TASKf_USER)) { + sys_focus_task=task; + break; + } + task=task->last_task; + } + } + PopFD; + return sys_focus_task; +} + +CTask *old_sys_focus_task=NULL; + +I64 WinMgrSleep(Bool flush_msgs=FALSE) +{ + static Bool was_forced=FALSE; + I64 timeout_val,timeout_val2,msg_code=0; + CCtrl *c; + Bool que; + + TimeStampFreqCal; + + if (!flush_msgs && old_sys_focus_task!=sys_focus_task) { + QueMsg(old_sys_focus_task,0, + MSG_FOCUS,FALSE,0,0); + QueMsg(sys_focus_task,0, + MSG_FOCUS,TRUE,0,0); + old_sys_focus_task=sys_focus_task; + } + + if (flush_msgs) + FifoI64Flush(scan_code_fifo); + else if (TaskValidate(sys_focus_task)) { + KbdQueMsgs; + + que=TRUE; + if (!WinInhibit(WIf_CTRLS)) { + c=sys_focus_task->next_ctrl; + while (c!=&sys_focus_task->next_ctrl) { + if (CtrlInside(c,ipx,ipy)) { + que=FALSE; + break; + } + c=c->next; + } + } + msg_code=WinQueIPMsgs(que); + } else { + WinRefocus; + if (!TaskValidate(sys_focus_task)) + FifoI64Flush(scan_code_fifo); + } + + if (sys_focus_task) + LBtr(&sys_focus_task->task_flags,TASKf_HAS_SONG); + + timeout_val=WinCalcRefreshTimeout(was_forced); + WinIPUpdate; + LBts(&sys_semas[SYS_SEMA_REFRESH_IN_PROGRESS],0); + last_refresh_start_time=tNP; + GrUpdateScreen; + last_refresh_end_time=tNP; + LBtr(&sys_semas[SYS_SEMA_REFRESH_IN_PROGRESS],0); + + if (sys_focus_task) { + if (!Bt(&sys_focus_task->task_flags,TASKf_HAS_SONG)) { + Free(cur_song); + cur_song=NULL; + } + } + if (cur_song) { + if (!cur_song_task) + cur_song_task=Spawn(&CurSongTask,NULL,"Song"); + } else { + if (cur_song_task) { + Kill(cur_song_task); + cur_song_task=NULL; + } + } + win_updates++; + + if (!mouse_install_attempts) + SleepUntil(timeout_val); + else { + do { + KbdMouseHandler(FALSE,TRUE); + timeout_val2=sys_jiffies+JIFFY_FREQ/500; + if (timeout_val2>timeout_val) + timeout_val2=timeout_val; + SleepUntil(timeout_val2); + } while (!Bt(&sys_semas[SYS_SEMA_FORCE_WINMGR],0)&&sys_jiffiestask_flags,TASKf_IDLE); + CDoc *old_doc=DocCur; + I64 update_cnt; + while (Bt(&sys_semas[SYS_SEMA_REFRESH_IN_PROGRESS],0)) { + if (force) { + LBts(&sys_semas[SYS_SEMA_FORCE_WINMGR],0); + if (sys_winmgr_task) sys_winmgr_task->wake_jiffy=sys_jiffies; + } + Yield; + } + if (cnt>1 && old_doc) + old_full_refresh=LBts(&old_doc->flags,DOCf_DO_FULL_REFRESH); + update_cnt=win_updates+cnt; + while (win_updateswake_jiffy=sys_jiffies; + } + Yield; + } + if (old_doc) + LBEqu(&old_doc->flags,DOCf_DO_FULL_REFRESH,old_full_refresh); + LBEqu(&Fs->task_flags,TASKf_IDLE,old_idle); + Preempt(old_preempt); +} + +#help_index "Windows" +I64 WinOnTopWindows() +{ + CTask *task,*task1,*first_moved_fwd=NULL; + I64 result=0; + PushFD; + Cli; //TODO Multiprocessor safe + task=sys_winmgr_task->next_task; + while (task!=sys_winmgr_task && task!=first_moved_fwd) { + task1=task->next_task; + if (!TaskValidate(task)) { + PopFD; + return result; + } + if (Bt(&task->display_flags,DISPLAYf_WIN_ON_TOP) && + task!=sys_winmgr_task->last_task) { + TaskQueRem(task); + TaskQueIns(task,sys_winmgr_task); + result++; + if (!first_moved_fwd) + first_moved_fwd=task; + } + task=task1; + } + PopFD; + return result; +} + +public I64 WinToTop(CTask *task=NULL,Bool update_z_buf=TRUE) +{ + CTask *task1; + I64 result=0; + if (!task) task=Fs; + if (!TaskValidate(task) || task->gs->num) + return 0; + TaskDerivedValsUpdate(task,FALSE); + if (!sys_winmgr_task || task==sys_winmgr_task) + return 0; + PushFD; + Cli; + if (!TaskValidate(task)) { + PopFD; + return 0; + } + if (task!=sys_winmgr_task->last_task) { + TaskQueRem(task); + TaskQueIns(task,sys_winmgr_task); + result++; + } + if (Bt(&task->task_flags,TASKf_USER)) + sys_focus_task=task; + if (result && !Bt(&task->display_flags,DISPLAYf_CHILDREN_NOT_ON_TOP)) { + task1=task->next_child_task; + while (task1!=&task->next_child_task) { + if (!TaskValidate(task1)) + break; + result+=WinToTop(task1,FALSE); + task1=task1->next_sibling_task; + } + if (task->popup_task && + task->popup_task->parent_task==task) + result+=WinToTop(task->popup_task,FALSE); + } + PopFD; + result+=WinOnTopWindows; + if (result && update_z_buf) + WinZBufUpdate; + return result; +} +ext[EXT_WIN_TO_TOP]=&WinToTop; + +public U0 WinFocus(CTask *task=NULL) +{ + Cli; + PushFD; + if (!TaskValidate(task)||!Bt(&task->task_flags,TASKf_USER)) + task=WinRefocus; + WinToTop(sys_focus_task=task); + PopFD; +} + +public Bool SetWinHorz(I64 left,I64 right,CTask *task=NULL) +{ + I64 d=right-left; + if (!task) task=Fs; + if (!TaskValidate(task)) return FALSE; + if (d<0) d=0; + if (left>=TEXT_COLS) { + left=TEXT_COLS-1; + right=left+d; + } + if (right<0) { + right=0; + left=right-d; + } + if (left>right) { + if (left>0) + right=left; + else + left=right; + } + PushFD; + Cli; //TODO Multiprocessor safe + if (task->win_left!=left || task->win_right!=right) { + LBts(&task->display_flags,DISPLAYf_HAS_BEEN_RESIZED); + LBts(&task->display_flags,DISPLAYf_USER_HAS_BEEN_RESIZED); + task->win_left=left; + task->win_right=right; + TaskDerivedValsUpdate(task); + PopFD; + return TRUE; + } else { + PopFD; + return FALSE; + } +} + +public Bool SetWinVert(I64 top,I64 bottom,CTask *task=NULL) +{ + I64 d=bottom-top; + if (!task) task=Fs; + if (!TaskValidate(task)) return FALSE; + if (d<0) d=0; + if (top>=TEXT_ROWS) { + top=TEXT_ROWS-1; + bottom=top+d; + } + if (bottom<=0) { + bottom=1; + top=bottom-d; + } + if (top>bottom) { + if (top>=0) + bottom=top; + else + top=bottom; + } + PushFD; + Cli; //TODO Multiprocessor safe + if (task->win_top!=top || task->win_bottom!=bottom) { + LBts(&task->display_flags,DISPLAYf_HAS_BEEN_RESIZED); + LBts(&task->display_flags,DISPLAYf_USER_HAS_BEEN_RESIZED); + task->win_top=top; + task->win_bottom=bottom; + TaskDerivedValsUpdate(task); + PopFD; + return TRUE; + } else { + PopFD; + return FALSE; + } +} + +Bool SetCursorPos(CTask *task,I64 iptx,I64 ipty,Bool set_cursor=TRUE) +{ + CDoc *doc; + Bool unlock; + I64 x0,y0; + if (!task) task=Fs; + if (!TaskValidate(task)) return FALSE; + if (task->win_top<=ipty<=task->win_bottom && + task->win_left <=iptx<=task->win_right) { + doc=task->next_doc; + while (doc!=(&task->next_doc)(U8 *)-offset(CDoc.next_doc) && + doc->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL) { + if (set_cursor) { + unlock=DocLock(doc); + if (doc->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL) { + if (doc->flags&DOCF_AUX_DOC) { + doc->x=iptx-task->win_left; + doc->y=ipty-task->win_top; + DocRecalc(doc,FALSE,DOC_RECALC_FIND_CURSOR); + } else { + x0=doc->line_start_col; + y0=doc->cur_top_line_num; + DocRecalc(doc,TRUE); + + doc->x=iptx-task->win_left-task->win_scroll_x/FONT_WIDTH +x0; + doc->y=ipty-task->win_top -task->win_scroll_y/FONT_HEIGHT+y0; + DocRecalc(doc,FALSE,DOC_RECALC_FIND_CURSOR); + task->win_scroll_x=0; + task->win_scroll_y=0; + task->win_scroll_z=0; + } + if (!(doc->flags&DOCF_DONT_SHOW) && + (!doc->best_d || !(doc->flags&DOCF_AUX_DOC))) { + if (unlock) + DocUnlock(doc); + break; + } + if (unlock) + DocUnlock(doc); + } else { + if (unlock) + DocUnlock(doc); + break; + } + } + doc=doc->next_doc; + } + WinToTop(task); + return TRUE; + } + return FALSE; +} + +public U0 WinTileHorz() +{ + CTask *task,*last_task=Fs; + I64 cnt,c,i,vert_size,no_border; + + PushFD; + Cli; //TODO Multiprocessor safe + task=sys_winmgr_task; + cnt=0; + do { + if (Bt(&task->task_flags,TASKf_USER)) + cnt++; + task=task->last_task; + } while (task!=sys_winmgr_task); + + + task=sys_winmgr_task; + i=0; + do { + if (Bt(&task->task_flags,TASKf_USER)) { + no_border=Bt(&task->display_flags,DISPLAYf_NO_BORDER); + c=cnt- i&~3; + if (!c) + c=1; + else if (c>4) + c=4; + vert_size=(TEXT_ROWS-1)/c; + + task->win_right=TEXT_COLS-2+no_border; + task->win_left=1-no_border; + task->win_top=(i&3)*vert_size+2-no_border; + task->win_bottom=(i&3+1)*vert_size+no_border; + last_task=task; + if (i&3==3) + task->win_bottom=TEXT_ROWS-2; + i++; + TaskDerivedValsUpdate(task); + } + task=task->last_task; + } while (task!=sys_winmgr_task); + last_task->win_bottom=TEXT_ROWS-2; + PopFD; +} + +public U0 WinTileVert() +{ + CTask *task,*last_task=Fs; + I64 cnt,c,i,horz_size,no_border; + PushFD; + Cli; //TODO Multiprocessor safe + task=sys_winmgr_task; + cnt=0; + do { + if (Bt(&task->task_flags,TASKf_USER)) + cnt++; + task=task->last_task; + } while (task!=sys_winmgr_task); + + task=sys_winmgr_task; + i=0; + do { + if (Bt(&task->task_flags,TASKf_USER)) { + no_border=Bt(&task->display_flags,DISPLAYf_NO_BORDER); + c=cnt- i&~3; + if (!c) + c=1; + else if (c>4) + c=4; + horz_size=TEXT_COLS/c; + + task->win_top=2-no_border; + task->win_bottom=TEXT_ROWS-2+no_border; + task->win_left=(i&3)*horz_size+1-no_border; + task->win_right=(i&3+1)*horz_size-1+no_border; + last_task=task; + if (i&3==3) + task->win_right=TEXT_COLS-2; + i++; + TaskDerivedValsUpdate(task); + } + task=task->last_task; + } while (task!=sys_winmgr_task); + last_task->win_right=TEXT_COLS-2; + PopFD; +} + + +public U0 WinMax(CTask *task=NULL) +{ + I64 no_border; + if (!task) task=Fs; + if (!TaskValidate(task)) return; + PushFD; + Cli; //TODO Multiprocessor safe + no_border=Bt(&task->display_flags,DISPLAYf_NO_BORDER); + task->win_right=TEXT_COLS-2+no_border; + task->win_left=1-no_border; + task->win_top=2-no_border; + task->win_bottom=TEXT_ROWS-2+no_border; + TaskDerivedValsUpdate(task); + WinToTop(task); + PopFD; +} + +public Bool WinBorder(Bool val=OFF,CTask *task=NULL) +{ + Bool old_has_border; + if (!task) task=Fs; + if (!TaskValidate(task)) return FALSE; + PushFD; + Cli; //TODO Multiprocessor safe + old_has_border=!Bt(&task->display_flags,DISPLAYf_NO_BORDER); + if (val) { + if (!old_has_border) { + LBtr(&task->display_flags,DISPLAYf_NO_BORDER); + task->win_right--; + task->win_left++; + task->win_top++; + task->win_bottom--; + TaskDerivedValsUpdate(task,FALSE); + } + } else { + if (old_has_border) { + LBts(&task->display_flags,DISPLAYf_NO_BORDER); + task->win_right++; + task->win_left--; + task->win_top--; + task->win_bottom++; + TaskDerivedValsUpdate(task,FALSE); + } + } + PopFD; + return old_has_border; +} + +U0 WinChkMoveSize(CTask *task) +{ + if (task->win_left!=task->win_old_left || + task->win_top!=task->win_old_top) + QueMsg(task,0, + MSG_MOVE,task->win_left,task->win_top,0); + if (task->win_right-task->win_left!=task->win_old_right-task->win_old_left || + task->win_bottom-task->win_top!=task->win_old_bottom-task->win_old_top) + QueMsg(task,0, + MSG_RESIZE,task->win_right-task->win_left+1,task->win_bottom-task->win_top+1,0); + task->win_old_left =task->win_left; + task->win_old_right =task->win_right; + task->win_old_top =task->win_top; + task->win_old_bottom=task->win_bottom; +} + +Bool WinKeyNavMenu() +{ + I64 i,old_key_cnt, + old_ipx,old_ipy, + new_ipx,new_ipy; + CMenu *m; + CMenuEntry *tempme; + if (Bt(key_down_bitmap,SC_GUI) && + sys_focus_task && + (m=sys_focus_task->cur_menu)) { + win_show_menu=TRUE; + sys_cur_submenu_entry=NULL; + old_ipx=ipx; old_ipy=ipy; + ipx=new_ipx=ipy=new_ipy=0; + while (m->mu_signature==MENU_SIGNATURE_VAL && + Bt(key_down_bitmap,SC_GUI)) { + old_key_cnt=sys_key_cnt; + if (Bt(key_down_bitmap,SC_CURSOR_LEFT)) { + while (Bt(key_down_bitmap,SC_CURSOR_LEFT) + && sys_key_cnt==old_key_cnt) + WinMgrSleep(TRUE); + if (new_ipx) { + i=0; + tempme=m->sub; + while (tempme) { + if (i+MenuEntryWidth(tempme)*FONT_WIDTH==new_ipx) { + new_ipx=i; + break; + } + i+=MenuEntryWidth(tempme)*FONT_WIDTH; + tempme=tempme->next; + } + } + new_ipy=0; + } else if (Bt(key_down_bitmap,SC_CURSOR_RIGHT)) { + while (Bt(key_down_bitmap,SC_CURSOR_RIGHT) + && sys_key_cnt==old_key_cnt) + WinMgrSleep(TRUE); + i=0; + tempme=m->sub; + while (tempme) { + if (i==new_ipx) { + if (tempme->next) + new_ipx=i+MenuEntryWidth(tempme)*FONT_WIDTH; + break; + } + i+=MenuEntryWidth(tempme)*FONT_WIDTH; + tempme=tempme->next; + } + new_ipy=0; + } else if (Bt(key_down_bitmap,SC_CURSOR_UP)) { + while (Bt(key_down_bitmap,SC_CURSOR_UP) + && sys_key_cnt==old_key_cnt) + WinMgrSleep(TRUE); + new_ipy-=FONT_HEIGHT; + } else if (Bt(key_down_bitmap,SC_CURSOR_DOWN)) { + while (Bt(key_down_bitmap,SC_CURSOR_DOWN) + && sys_key_cnt==old_key_cnt) + WinMgrSleep(TRUE); + new_ipy+=FONT_HEIGHT; + } + new_ipx=LimitI64(new_ipx,0,GR_WIDTH-1); + new_ipy=LimitI64(new_ipy,0,GR_HEIGHT-1); + ipx=new_ipx; ipy=new_ipy; + WinMgrSleep(TRUE); + if (!sys_cur_submenu_entry) + ipy=new_ipy=0; + } + if (sys_cur_submenu_entry) { + QueMsg(sys_focus_task,0, + sys_cur_submenu_entry->msg_code, + sys_cur_submenu_entry->p1, + sys_cur_submenu_entry->p2,0); + Noise(30,6000,8000); + } + win_show_menu=FALSE; + ipx=old_ipx; ipy=old_ipy; + return TRUE; + } + return FALSE; +} + +U0 WinMgrTask(I64) +{ + CTask *task=Fs; + CDoc *doc; + CDocEntry *doc_e; + I64 x,y,z,msg_code, + my_ipz=0,left,top, + old_flags=GetFlags; + Bool has_border; + CCtrl *c; + TaskInitExt; + last_total_jiffies=0; + MemSet(last_idle_pt_hits,0,sizeof(I64)*MP_MAX_PROCESSORS); + MemSet(last_swap_cnter,0,sizeof(I64)*MP_MAX_PROCESSORS); + + Fs->win_left=0; + Fs->win_right=TEXT_COLS-1; + Fs->win_top=0; + Fs->win_bottom=TEXT_ROWS-1; + TaskDerivedValsUpdate; + LBts(&Fs->display_flags,DISPLAYf_NO_BORDER); + LBts(&Fs->display_flags,DISPLAYf_SHOW); + GrInit; + LBts(&sys_run_level,RLf_WINMGR); + while (TRUE) { + try { +wmt_start: + WinMgrSleep; + //We delay freeing in case lingering + //references are made to task's. + TaskFinishOffDying; + + task=Fs->last_task; + while (TRUE) { + Cli; + if (!TaskValidate(task)) { + SetFlags(old_flags); + goto wmt_start; + } + WinChkMoveSize(task); + TaskDerivedValsUpdate(task,FALSE); + task=task->last_task; + SetFlags(old_flags); + if (task==Fs) + break; + } + + task=Fs->last_task; + while (TRUE) { + Cli; + if (!TaskValidate(task)) { + SetFlags(old_flags); + goto wmt_start; + } + if (Bt(&task->display_flags,DISPLAYf_SHOW) && + task->win_border_pixel_left<=ipx<=task->win_border_pixel_right && + task->win_border_pixel_top<=ipy<=task->win_border_pixel_bottom) { + SetFlags(old_flags); + break; + } + if (task==Fs) { //Shouldn't happen + SetFlags(old_flags); + goto wmt_start; + } + task=task->last_task; + SetFlags(old_flags); + } + + if (Bt(&task->display_flags,DISPLAYf_NO_BORDER)) + has_border=FALSE; + else + has_border=TRUE; + + win_show_menu=FALSE; + sys_cur_submenu_entry=NULL; + if (!WinInhibit(WIf_MENU)) { + if (WinKeyNavMenu) + goto wmt_start; + if (task==Fs && 0<=ipymsg_code, + sys_cur_submenu_entry->p1, + sys_cur_submenu_entry->p2,0); + Noise(30,6000,8000); + } + win_show_menu=FALSE; + old_ip_lb=FALSE; + goto wmt_start; + } + } + } + + //grab scroll + if (!WinInhibit(WIf_GRAB_SCROLL) && + sys_cur_scan_code&SCF_CTRL && TaskValidate(sys_focus_task)) { + win_grab_scroll_closed=FALSE; + win_grab_scroll=TRUE; + while (sys_cur_scan_code&SCF_CTRL && TaskValidate(sys_focus_task)) { + if (ip_lb) { + win_grab_scroll_closed=TRUE; + x=ipx-sys_focus_task->win_scroll_x; + y=ipy-sys_focus_task->win_scroll_y; + z=ipz-sys_focus_task->win_scroll_z; + while (ip_lb && sys_cur_scan_code&SCF_CTRL && TaskValidate(sys_focus_task)) { + sys_focus_task->win_scroll_x=(ipx-x)&~7; + sys_focus_task->win_scroll_y=(ipy-y)&~7; + sys_focus_task->win_scroll_z=ipz-z; + WinMgrSleep(TRUE); + } + win_grab_scroll_closed=FALSE; + goto wmt_start; + } else if (ip_rb) { + sys_focus_task->win_scroll_x=0; + sys_focus_task->win_scroll_y=0; + sys_focus_task->win_scroll_z=0; + WinMgrSleep(TRUE); + } else + WinMgrSleep; + } + goto wmt_start; + } else + win_grab_scroll=FALSE; + + if (!WinInhibit(WIf_CTRLS)) { + if (ip_lb && !old_ip_lb) { + c=task->next_ctrl; + while (c!=&task->next_ctrl) { + if (CtrlInside(c,ipx,ipy)) { + left=task->win_pixel_left; + top =task->win_pixel_top; + if (c->flags&CTRLF_BORDER) { + left-=FONT_WIDTH; + top -=FONT_HEIGHT; + } + if (c->flags&CTRLF_CAPTURE_LEFT_IP) { + while (ip_lb && TaskValidate(task)) { + if (c->left_click) + (*c->left_click)(c,ipx-left,ipy-top,TRUE); + WinMgrSleep; + } + if (c->left_click) + (*c->left_click)(c,ipx-left,ipy-top,FALSE); + old_ip_lb=FALSE; + goto wmt_start; + } else { + if (c->left_click) + (*c->left_click)(c,ipx-left,ipy-top,TRUE); + old_ip_lb=TRUE; + goto wmt_start; + } + } + c=c->next; + } + } + if (old_ip_lb && !ip_lb) { + c=task->next_ctrl; + while (c!=&task->next_ctrl) { + if (CtrlInside(c,ipx,ipy)) { + left=task->win_pixel_left; + top =task->win_pixel_top; + if (c->flags&CTRLF_BORDER) { + left-=FONT_WIDTH; + top -=FONT_HEIGHT; + } + if (c->left_click) + (*c->left_click)(c,ipx-left,ipy-top,FALSE); + old_ip_lb=FALSE; + goto wmt_start; + } + c=c->next; + } + } + if (ip_rb && !old_ip_rb) { + c=task->next_ctrl; + while (c!=&task->next_ctrl) { + if (CtrlInside(c,ipx,ipy)) { + left=task->win_pixel_left; + top =task->win_pixel_top; + if (c->flags&CTRLF_BORDER) { + left-=FONT_WIDTH; + top -=FONT_HEIGHT; + } + if (c->flags&CTRLF_CAPTURE_RIGHT_IP) { + while (ip_rb && TaskValidate(task)) { + if (c->right_click) + (*c->right_click)(c,ipx-left,ipy-top,TRUE); + WinMgrSleep; + } + if (c->right_click) + (*c->right_click)(c,ipx-left,ipy-top,FALSE); + old_ip_rb=FALSE; + goto wmt_start; + } else { + if (c->right_click) + (*c->right_click)(c,ipx-left,ipy-top,TRUE); + old_ip_rb=TRUE; + goto wmt_start; + } + } + c=c->next; + } + } + if (old_ip_rb && !ip_rb) { + c=task->next_ctrl; + while (c!=&task->next_ctrl) { + if (CtrlInside(c,ipx,ipy)) { + left=task->win_pixel_left; + top =task->win_pixel_top; + if (c->flags&CTRLF_BORDER) { + left-=FONT_WIDTH; + top -=FONT_HEIGHT; + } + if (c->right_click) + (*c->right_click)(c,ipx-left,ipy-top,FALSE); + old_ip_rb=FALSE; + goto wmt_start; + } + c=c->next; + } + } + if (ip_has_wheel && my_ipz!=ipz) { + if (task==sys_focus_task) { + c=task->next_ctrl; + while (c!=&task->next_ctrl) { + if (c->wheel_chg) { + (*c->wheel_chg)(c,ipz-my_ipz); + my_ipz=ipz; + goto wmt_start; + } + c=c->next; + } + my_ipz=ipz; + } else if (!sys_focus_task) + my_ipz=ipz; + } + } + + if (task==Fs) + goto wmt_start; + + if (!WinInhibit(WIf_IP_L)) { + if (!old_ip_lb && ip_lb) { + if (SetCursorPos(task,iptx,ipty)) { + doc=task->next_doc; + while (doc!=(&task->next_doc)(U8 *)-offset(CDoc.next_doc) && + doc->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL) { + DocLock(doc); + if (!(doc->flags&DOCF_DONT_SHOW) && + (!doc->best_d || !(doc->flags&DOCF_AUX_DOC))) { + if (doc->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL) { + doc_e=doc->cur_entry; + if (doc_e!=doc) { + if (doc_e->flags1 & DOCEF1_HAS_BORDER) + doc_e->flags1|=DOCEF1_SOLID_BORDER; + } + } + DocUnlock(doc); + break; + } + DocUnlock(doc); + doc=doc->next_doc; + } + old_ip_lb=TRUE; + goto wmt_start; + } + } + } + if (!WinInhibit(WIf_IP_R)) { + if (!old_ip_rb && ip_rb) { + if (SetCursorPos(task,iptx,ipty)) { + old_ip_rb=TRUE; + goto wmt_start; + } + } + } + if (!WinInhibit(WIf_BORDER) && has_border) { + if (old_ip_lb && !ip_lb) { + if (ipty==task->win_top-1) { + if (task->win_left<=iptxwin_left+4) { + QueMsg(task,0,MSG_KEY_DOWN,CH_CTRLM,0x43200000432,0); + old_ip_lb=FALSE; + goto wmt_start; + } else if (task->win_right-2<=iptx<=task->win_right) { + if (Bt(&task->display_flags,DISPLAYf_HAS_CLOSE_WIN)) { + if (DocCur(task)) + QueMsg(task,0,MSG_KEY_DOWN,CH_SHIFT_ESC,0,0); + else + Kill(task,FALSE); + old_ip_lb=FALSE; + goto wmt_start; + } + } + } + } + } + if (!WinInhibit(WIf_IP_L)) { + if (old_ip_lb && !ip_lb) { + if (SetCursorPos(task,iptx,ipty,FALSE)) { + doc=task->next_doc; + while (doc!=(&task->next_doc)(U8 *)-offset(CDoc.next_doc) && + doc->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL) { + if (!(doc->flags&DOCF_DONT_SHOW) && + (!doc->best_d || !(doc->flags&DOCF_AUX_DOC))) { + do msg_code=WinMgrSleep; + while (TaskValidate(task) && + (ip_lb || left_ip_dbl_time)); + if (TaskValidate(task)) { + if (msg_code==MSG_IP_L_UP) { + if (doc->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL) { + DocLock(doc); + if (TaskValidate(task)) { + if (doc->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL) { + doc_e=doc->cur_entry; + if (doc_e!=doc) { + if (doc_e->flags1 & DOCEF1_HAS_BORDER) + doc_e->flags1&=~DOCEF1_SOLID_BORDER; + if (doc_e->flags1 & (DOCEF1_TREE|DOCEF1_LINK|DOCEF1_CHECK_COLLAPSABLE| + DOCEF1_LEFT_CB|DOCEF1_LEFT_MACRO|DOCEF1_LEFT_EXP)) + QueMsg(task,0,MSG_KEY_DOWN,CH_SPACE,0,0); + } + } + DocUnlock(doc); + } + } + } else if (msg_code==MSG_IP_L_D_UP) + QueMsg(task,0,MSG_KEY_DOWN,CH_ESC,0,0); + } + break; + } + doc=doc->next_doc; + } + old_ip_lb=FALSE; + goto wmt_start; + } + } + } + + if (!WinInhibit(WIf_IP_R)) { + if (old_ip_rb && !ip_rb) { + if (SetCursorPos(task,iptx,ipty,FALSE)) { + doc=task->next_doc; + while (doc!=(&task->next_doc)(U8 *)-offset(CDoc.next_doc) && + doc->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL) { + if (!(doc->flags&DOCF_DONT_SHOW) && + (!doc->best_d || !(doc->flags&DOCF_AUX_DOC))) { + do msg_code=WinMgrSleep; + while (TaskValidate(task) && + (ip_rb || right_ip_dbl_time)); + if (TaskValidate(task)) { + if (msg_code==MSG_IP_R_UP) { + if (doc->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL) { + DocLock(doc); + if (TaskValidate(task)) { + if (doc->doc_in_que_signature==DOC_IN_QUE_SIGNATURE_VAL) { + doc_e=doc->cur_entry; + if (doc_e!=doc) { + if (doc_e->flags1&(DOCEF1_LINK| + DOCEF1_RIGHT_CB|DOCEF1_RIGHT_MACRO|DOCEF1_RIGHT_EXP)) + QueMsg(task,0,MSG_KEY_DOWN,CH_NEW_LINE,0,0); + } + } + DocUnlock(doc); + } + } + } else if (msg_code==MSG_IP_R_D_UP) + QueMsg(task,0,MSG_KEY_DOWN,CH_SHIFT_ESC,0,0); + } + break; + } + doc=doc->next_doc; + } + old_ip_rb=FALSE; + goto wmt_start; + } + } + } + + if (!WinInhibit(WIf_BORDER) && has_border) { + if (ip_lb && !old_ip_lb) { + if (task->win_top==ipty+1 && + task->win_left-1<=iptx<=task->win_right+1) { + if (task->win_left<=iptxwin_left+4) { + old_ip_lb=TRUE; + goto wmt_start; + } + if (task->win_right-2<=iptx<=task->win_right && + Bt(&task->display_flags,DISPLAYf_HAS_CLOSE_WIN)) { + old_ip_lb=TRUE; + goto wmt_start; + } + x=iptx-task->win_left; + if (ip_lb) { + WinToTop(task); + while (ip_lb && TaskValidate(task)) { + SetWinHorz(iptx-x,task->win_width-1+iptx-x,task); + SetWinVert(ipty+1,task->win_height+ipty,task); + WinChkMoveSize(task); + WinMgrSleep; + } + } + old_ip_lb=FALSE; + goto wmt_start; + } + if (task->win_left==iptx+1 && + task->win_top-1<=ipty<=task->win_bottom+1) { + y=ipty-task->win_top; + if (ip_lb) { + WinToTop(task); + while (ip_lb && TaskValidate(task)) { + SetWinHorz(iptx+1,task->win_width+iptx,task); + SetWinVert(ipty-y,task->win_height-1+ipty-y,task); + WinChkMoveSize(task); + WinMgrSleep; + } + } + old_ip_lb=FALSE; + goto wmt_start; + } + if (task->win_right+1==iptx && task->win_bottom+1==ipty) { + if (ip_lb) { + WinToTop(task); + while (ip_lb && TaskValidate(task)) { + SetWinHorz(task->win_left,iptx-1,task); + SetWinVert(task->win_top,ipty-1,task); + WinChkMoveSize(task); + WinMgrSleep; + } + } + old_ip_lb=FALSE; + goto wmt_start; + } + if (task->win_bottom==ipty-1 && + task->win_left<=iptx<=task->win_right) { + if (ip_lb) { + WinToTop(task); + while (ip_lb && TaskValidate(task)) { + SetWinVert(task->win_top,ipty-1,task); + WinChkMoveSize(task); + WinMgrSleep; + } + } + old_ip_lb=FALSE; + goto wmt_start; + } + if (task->win_right==iptx-1 && + task->win_top<=ipty<=task->win_bottom) { + if (ip_lb) { + WinToTop(task); + while (ip_lb && TaskValidate(task)) { + SetWinHorz(task->win_left,iptx-1,task); + WinChkMoveSize(task); + WinMgrSleep; + } + } + old_ip_lb=FALSE; + goto wmt_start; + } + } + } + } catch { + Beep; + Fs->catch_except=TRUE; + task=Fs; + } + } +} +#help_index "" diff --git a/LT/Adam/WordStat/WsDefs.DAT b/SparrowOS/Adam/WordStat/WSDefs.DAT similarity index 72% rename from LT/Adam/WordStat/WsDefs.DAT rename to SparrowOS/Adam/WordStat/WSDefs.DAT index ce7cc05efb1ce851eedaf695eb25244cc1ef3323..a19d99caca90160498533985006e3a5c05c25da1 100644 GIT binary patch delta 1886145 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 #TK!H2LVe;rVFkY5T1U1 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

    uA!4cGv^jcQ+bz#Z zBrE_+pC`u43?B@QrdFS{<0#yI`%4GE9wYBwd^r{~?2 z@SeWwrbM%Nv`1=^ov0qGr4JT?sBm z%!Z8dJ&Ebl_ln(6ng0Hsgwu4R`x2(pGww@hPM>sNB5?YX`x1+%cRY}=nSS(vME-Qs zhZ5D(H$Idwnf~mdg!y#2M-p?V?|CHQF#Yc%i4t(b13H%!sr`g|`n<;yjnfsLNT^Tu zcp_msz3z!b^z>U#B(kQvK9z`>zUZmM(&--0B$}t6c_uMwdi-+RZnzLL;qoZkCd;^1`uHxiSkKYAmv0&=XFcJD;4?Q7mj)G$uhd@tcR zJ^Q_c=Ju)YC1e=EX=VGd4-#rj(*suqNpK`8Bqb(+_9gIrmMCJJ-uOkrefr5S604_Q zTqi6%z2mEd%k;BfB^;+aZaXSFUFVyGJY@f4@;3?D>5bncG^elrCec6L`nyDzNVFSd zTb2`OA}&#(EU_e(VfyXw5)RX4en5)Gr5~lC^DG|bHc)bm2b|%G1sNNJK%#@;xA@UF0U_RVpN<78PZJPrF$A zN5X0P2armUzY<#0?f*)IOrP>sqG~$-KM8$CTIlcel) zHzvuB>F1dwYrvH)SVd-Ou|h#AeEl-_bROyH^~{pRpvElHxk%HQSR|vT$FWEzOyAEU z88=;yRZ?}nK78PdS<}CWNvcnm5tmGx-YhPu$qhPM z4OFsZ=A}>n_SOB=x6TNJ!4&bj!~#NlMJgVVHhbLNax_v!rCy^m&q! zwbNy!Bx9#nNlEHWUnwPNGX0*Eqz|GRG?A9vin1y?Rg+=+FKNjI;9?A1q%M|~dP|OPkUTd1uYzRq^h8C;tMFZa+Z~i7b(we| z>xeRoLH7?&@Aup$KK)Lj8OQWlDv}e0H2e}vK~;B2zCsbG4l7QbUg#q$JUvKNGHm)v zRY@C2E9T;p>B7_hsY*tHi;L-TYLY?QH>ydhGfuy$F6lj8RYS5@B04xDzo;Y?G`x@o zx}!1?G`IjN{m*DfI!_nSl)O3pm8N9I^k6MXmFX2)lDgBEX-Phu-k~k2J$;L|Wb$+g z9m($LOLQdlw_nkbRACf|Hp)v;02!hH9aG`bldPZKr6+lQdX&E8nd#~Vk}(o+MLG(3 zdZ63J@k%VrJtFVy_pWY~UL1g+98_6Bh=h{kIO}}9)`FQ#sJIVU#HujR1 z)6487ou==!m$aV#)n3wjyQ71o0ORx^N6E7J2G5Hb#iu`Tlr#k`XcC^T=_Khtz0yh2 zfCV()JAJ*AWQ%MxxD?V+NYn%M;u2HJK%UOZ&&&hwnFw;0tdNE)fk@^g7K8dM;3nJj z^HbC0x3jrOrZ7&=c9ry>zS~vu?DkGKNdv~|yWByU9%Q@@X!t@;K|xzVL7_MmY_PwF zq}lW~5V6-o^5pb(Psy<9_dF$Qrbl~8c1(ZbB^fx~%v*Bl^gG^?64SqWOa7Yv!ADYK zyQHtAEaP-@Kgs^>$NePLnHU|XD+Wr6PiGI5j1>jD6Y3N2pc%LZtO=ByFr7C@GIn}) zkfhD_6+x03jOdZ{AXrjqI&+BR1#y@e5U(OSMsGqS9T|-#7fK3GcM6p>o?aFzsXKj1 zsHFe&FQJm|(`~{egQrgjldPN0A1>)XJw9C0a{A10Nwet}!X>9oPmho^m_8#yGHLqn z2ubDX@{y9s)0-nD+oy9!NlG(nOkeQ(q3CqmD9Q8Fd7~v&#K02=0jWi0sYS)9pffii z_sMuhOWvQZ86zn--6KYF9;4CpLfyln)Bnau+D^BQm2BR=KNggJp2kUfO*e>_JdAu4 z)V2gkO~&b3iIUaR85MJ7ryod?WS>4KS(1DD)kMj}>E=n2YSZJAB>#zlybszd3^`Z{ zyc16$mSK8HvSj4+bIFob(>+rpGtg8OC+8Pbf>fPMkzB(EI&x1(0W`kvUZlq`ecsgb z;@jt>N-8l;-=8iiI{!n@Bu0_xFViKPrsrfx8nH&ZfpYZH3`x`Jw=*Pjr+a2f>P|1u zlw3AlE=#g!x?%P)x$UR2B+D76JLO3FPM?q?d1`ueuB6TM8M%@%Lb;_yIhlFI3>o=( zsg>o4MX3zaIrAhNr+4Q`=1%{aCs_~Koe(^|VXuq$^lAB$!qZpfOBzkTn=kpCDcXO2 zqx>XBiRt$XB!5i5Q7D-@-L6RTC|godesVU$bnaqFQ{*t5?prLWh}m*#D3&yxzO7g? zWIA_=Wa#w75=pV?6(y4H(-RA1q}Wr^Q;R_LVc;AE;ptyXBwq+d2bF?WU?qWW0Zj+r z4)LK>QfazynWXx3>oQ5L>4C2WMW^S0`yW{Xm`Mj_H;4l10*#Uu(>)s{ou>CRN=j~D z)+qUkar(q&$)(fHTO?hk*R)6mOh4Nqxp;bEt7Q1}ldY0UkiO{0R>}V9jct;Fn4$Kh zO;U3@U%RBs^x$?$yXlkKC9S8QYnP0juG1kYH{H8K(rkKDhotrNeI1gC(-k@;HK%)Z zN`TeNvaC-SmrHlGmoM=$2eB1S-myLW&ZLGb$BI5_7Wk7^Y|UNXky{?2**j zzO6^npK&@{pQQS9y*|mAkY<(h^bJW;;?o~Y;9_A*N=ygE&xbxqD@Nn_6J!z@#iu*> zOG?duI2W|+rleo8lX3dL36kp5)h0>?Pp_INIb(j}#SBJ??b?$hi;)6p#bn9Ve9=yc z=?dBkMX8XhRFkJjW`M3e0kvj9C+f#COuscna)lhI0hpASUYc4`lB%OnP?TSwr;w;n zl%K)?F0sy?l98Ccd#a=sq^>;h-dAkC-`-|M_URncB(F|4yj3T?{pU1EZpP`XGbEd* zcg~Q!IX!u%Wa#vrGbMYcyU&vJ!3^-Fvn0c&|CuE@b^4^)l2Oy&&X!D?9xz8zc6#0% zNr&m{=SbcG&#P^pKUXr4Y5K?clAe&Bj&o^oNq$PDwL*4kY5`B5U8{iY`^mQ0*}WU-{e^rwp@ofwU#Z&)d* zHr;=Tr1A9TC6a2>S1pk=f+UqkOC(Df4d=%=$T3Pxe|_W)*YxV8k{;8KER{5v{&lHj z*mR#|l9#5-FPAi*ZqQXDHJ#tpm2G<(MUzSU@Os`xasW5%k3Q5`NJ61?mPFGCU z7M||9QZjS;`jwIz({HSl^qQ``N^;ipeXAtbPtRK|sWg4!YEbfBBUwCs^%}{z?Obam z`xvLsTqmhAecw9CdhlXNCa1*AoXoT|J%;JN>m`jL?clcclKRuPt(VN7uC_sP>-0Mt zBs(BsG2gI-iBWiZ?M6x0>3fr3N>9JHQPOj|#wN))rf9eMAF?ADC8saiB)MUF@Mg)q z(*?Ik=1#BQA{jUR-WJKw=_Xqx!=`s{m8_fo@O^>Ebh&MknxJEyGmnZ*kKZO4HhtSR zNd7 zd@D6QbcdwW^nx9d+osFUxNSB)cBiEK^rbr`pHA=IB{^}r>~6{6>4m!`=S>&bBdIdo zbdO}z^h8b%+39QdNS1F`-7D$DC;{DSrjU_Xl#-gKkW{IV3|jHVFuie~Wa;z`F@fUK z`SweiOn2TdxqbTY{gS(TsW;vAprj64q5>$} z&aa&bx-f9ULCOEqCmfQLp1$Ugr1SKH``Bft^B$J8o9=U1(s6p$zZt zYBEeuIVZV_TO%Mp2Xu^mu_nWI>GP8QjC|mWn4sB1lVN++1xYg|UXU_91=r+!@V3PL zmn1crroX%*nTnY+6Rt{%Fd9yu7?>CgXPcObD88ZC@h>*Q488*G- zwxrMYgSRC`8K+;r11nG1?@Go^PrECb2T9Sl?n+Lco_9}j2Bfs%xi8s0ea3ys=;>eX zOR7R{Y1VrnX^kw74V_ zu|xjKBgymAmpqotn9ln|^2GFOPb8fnZb`T^Rb;x+Q^|+ZMV?7IPmg#e**^WjGs*SS zCp?$zn=bzX)NXnq=|27R3s}JcK7CQ*rKAG5mj^zpRC0RwOG!_7b^(ne-aD@&A*rjY z;FOq?qL7@QU!s7rDDlBd$>!-PuOyF5*L*DrUEaTNwzKH;Sak~0f$=c~lze@UV z|N2#ugK_%5Z<2E0p@`{*-zA-=mwuO2gOp9anZ>C^m7qzR)!!xOO!xR9*+2cp4@tG@ z|9?o@ZMXX=sm(Y&>zAb3^ohSDi>9;umQ0cS8eq$zeCT6LL)2A>?DNNtWETuR7 z35Z+9A{8|KB#V^QbQV^rz0(h|N|}QXx0+b(COln$O-f<9A)D09>8IJGZcks%F0~4B zYn@RFC@!<7JNE6DnqI*nCAEDrhg34-^zWQfInz_Pq!One`rJ6Oxjj{!d6s0TMgL!cy&!Bz!O?Q=)x&hInEG5-DeWR3=_w>I~Qc=?*q@{cqO{c$4 z(~z2eKw8RvnvB#-P&q%HM^?&hda$fi=JdU?Qkv7B%Swezw~>>2JzYayN@segywt|& z>5={l-X2Ge6zrCg>jQk6OePPo(a)TCk{UH1!W zQjl4Q=@IHuij1byKTNO`7f4jdNi0fFRmjXsV=x1aLoQL5N}0~7A!Wv);hb1h0Lqk} z8d5)|J84R(P0!Snx<6e}lv`?gUHUDK>DgLRTc;~(OF6TGdP30dQG>Qr_4Ys7QVopL zYjvf}Koz*~^y9ixLDQx5q#C9dgshXCzC}+;n9+Fp9KS4y=@0d!yr%2uOPPQ}u32Ad z>vT&4scF+M7)V)f=P{IWXJi5OJ*FEZsmM<+Hv9TFdcJFiMj-(@T%HvOWp zl&cK5+H=gSR7fjIOfO2zD^bYL%qz)F%>&(kWnv;_h*H)RnMfJIhnUuyNS$YzUTZFu zJN>n}l*x1j3n_=`i561E)2CWU#Y~@Q%ON|R-%`qDdWfZz*Yx?8Qhw9lSxN;=x3`jt zm_EZwDq}jMwN%jb4c1a3(=)84+(E3;>1sAoEh3D6QW?|D9Hb1Ur#ndb!5lmNAm>%F=~o=2 zcEUuqPji&o#I)VhMXH5yx?uJ);pq=urDUcb5dJJZUD8d;cY3;;)LQmvr^KA%#N6o{ zW2Q(&fCj8q=FcypY)VkJH6aXN@w~KFR7U6 zjNVdPr*HR`a+vFNEi-W(&5V5HM5fET zEMc7<7bi7+`nNc#C)01oORb*Xo*-p7ecc@yvFYa%q)spz&o2xPWt5zL&UriU^!H3auX-RT1r3*LK0G?a>1GHL#mXb6j)10zCvzd zQMN*PW=VzuXaqeEv@%FHP0AQCVwsgDb#=N!y3~Z}7t^Jbr+-bC3ZL%(v`uPydWKZy z^oto%@zXzS^cS7(mMQg26jE_1B*myFrRJq%ee4{dgDp<;&QcFh8* zYR2hH3#DdHcPx@RJDtB+>hpBw5~-}|c_mT@rt6nVrA?n!D)n-DLzz_B^zUU-q0@cK zr9!4JDwlday{|$lZu;8_src!>l~MuI=T%AtW2PJCDk+QUHdRvH(@#`MnN0s%CADGt zx@xHh)B9_r3Z~UcIZSt~m6DtuT`N^S{c^2T)^xi%shaJ(>!j2er$4Hf0v~`i-J(IN zZ2I~Jso?F*jZ#|~r|)c%(whFHN$TA6&COB=rkAux?VoPaD&;@DrB&+U^sqLmkm;-2 zr1GXqwM$t~4{MjQfRx}<+ND%DVB@ya54B5ez;tg*hg8w@?;TQc)5AKYf~T+Ql$tc% zwo9sv2Rw!91}cH_@}@I#EEAu8y-P}aI&-&F>GaBOsjTf!x}~HTr~mJfikKeJE45-e zW1m$0^u|7^j_F+eQnMlT^6Gx6gW|A;ww@+KNk*zdehFyzo&v-4wh2--m<|$|C>1lk zaH5p<^tltIg_Okexaj&u6zxl$U_ugsNFnErLH)W+${=SgKu7nm;<3El%Zy=}hK z7SP7&`BGxjgBC~`Zf{v2#Rgq;IANhw&h)6?n{5c>2mkQq9|S7faPLPG7x5 zs(-rmQmKsTOO{G$PrtBKDv1?T4VO=EIM*yQ-~C4+Bj5ISTj;QmNCYt&?h+F1cRn({!ERNVCHty0d@ z_ivTzp6;$wr&nYplurw8RrZl*$65K9T3oh)ZPuVWjzg=aAls@D1keyPt z;C#P**-j}@=ryh9cS%_bMk_F|pdRxlaIHghy3uZ_yy**fOYNJUut)0DbnU%TbGM(| zE5*jR{lY#eJI3k!2c#ZO|9C(ub3UU;3ZwM&vV&4CeBkX*PKkM$iJ*DN=?kCF6Wjja zpp+!`B?NqjrRt~m9hQ2rz5Iw&0ORx%N2MI5a~_lG0Ig9}NJ=ay$t(t+o&+k49e1-x zPTzM-$_2cH^t<{Ewdp#?rPge}d0griBY08`sv)%q(Z$++=A@JYI^Er1zN{JDE*67chQYnaPBmI_C4D3XS)3>CgVeEIeq$;MT z-v zsq52YA4;8)fwnV}GD|?yWeSN38Tm!Usd|uB@x|lcrKjsMzUQ2t^+*bO-@=whQvHx# ziRWV}2h5Uh_G2m4=?5Q6i7^^aznJVRGX3pisp#pRPo$iu_db!5n!e(RR1_o^ESPai ze7gKoDbMYhPo>)7^PbaxK9eeDhwOx4*k1ZvikoqI;|nSA?K59UnK3FulX6i~BJ|=K zus0n+u1^J>uL2s?|N2sD>h$hcQYO<6ypmFx{`8g9tLYbBOQ}!)@meZnvg1dI=>g4& z?9&gdFXf%y`9>;F6trbCDG_95W-;vOC5GvIZ>1`ycf6G{pMK!2)Vb;X@1&MbH-9hX zH@)q>l;-pe@1-iIYkiRN03}}a>9apbNloAOL8@iC^+&16)6ajDvYO8INh$`K1wdwl zPN@KI^8oMXsQ)C@IGypcl=gJp&r&Yai#|(Dp3e3~N^QID7b#`N>49IRCL$MP)8BuU z+8_ifUce45E&;8n*NbJCe_=OhlHl|=DbMMm-=z$uyM32RpT6$9l*jb%-=zwtXa11# znf`0nb?ND~{B|7EZ~l-fnC|sc${XZrmFc^GN?A<*@>8m1dgU)E_vr_JN$r_l_gkuZ z`mf(o!I0j@y!*Oh(=-1_=|W=dU>J|c^bLQc3a2ammCA=KH8U(OQE*BuN&?N5EdDE% zHl6FAl<)M2e^TeCYy6jb2=0SUm6LXynjoD!^_;ZY^a(u&WVZ`3N~u)=Z{?EqnEsDTx)rp=K_MxzD5*3j5uz2uNmNJzHB%4tEOA=N~cd(;O>)}zK2)Zc=`uk>GjhW z@JR- z$71C3?cL(iXBnqQN=j>OZ;_Oq#<*QtT6#6(^y4zp3e#W6NUI5h+u^>cMc^sI{5;Tw zeA|^}r7IYx&ykbfJH7Bgqsa6;dFiO>C*`FdZC|4x&CED`gQ9fKbXg_o6Vsn5NxM$h zQI>Xt6`YFob>iD6Dof8}oNk~h?K-_oRoZR(URCKI)3>Qfdw`SJbYXSr$mzN2(zm92 zXh`c$FVm2|J>T(4JfryZe;U&4(+f1EOQt{7l+K$Tq9q+NeWjLk)^rhVY0c?&+R`4= z+qI>Ar(e~Ut`LHSczS9Qbas7vqK@R-||l9G?0dthM5M^m*Gpf zTn(jTr!O{?Hkf|JP`ZD6ijg!EfS>9;JUO}7hJNn0^a_qLYym_Ef?dKDk2`vhx~Gda$m=sS^7YuUfN}PtG%=#Byl(@6l4~c*Au;`ly>#Ms zHwS4K#_8RT(&p0-J4&Za-?&v)cHToTM)qm$lewmcIZ5kIZ*h|TxxLOA6fTV}($kPj z%Izwy(x(}xe{hq|h`E1bbQ zOx}h_ub#e8%~E3e#!zW{SgHhVB%kIb#4`VX-(*I?>Gz}A*r#iSNjrgdDR2&1!JZEOy`S}R+z3IC%t0&jW}tw?f>JXyBW84CrC>&ZeN-xeVcK5 zW3sf(_I=6HUX0T@Q>ERf2c}AEOs`6n_Md(#Rr=cWg=x}n=1+)BV-(xIBwczL<8<## zX~pRZdydIW@643mFx@Ik+GKiumbBmYeOb~njN;L5de#cbX?hBtC7@ngQGRlAJ}8@g z&X)GrZj&Rum2vy0Txm_F?J@<@_KeeG3Z;V}VYQ`D+J8Gsk#q#(^w?tQ#nTx}q_;t2 z7@w(0Out$p?Kxe(RC?xo#)&12GSjb?N=HvOER)up9$hBAYC2oFbkOw3a%q|AW#!W9 z)8~~-FQ4vKAssq>PKC4+#F!@)((d3YaJylpbQdEFsC=7#uu8goI;cvV|G%G!k#l-j zwRGL|tJTuh(*^k22oUINg@R#svWw1E{~CvCv4;S65AJbgl) zbRM6EV-a|0H&G#_C^2(7|7d1-9PHU1jo^H}4-8_9qlXM<<&1yPmVAG&k8g(pZYO{0;N`h2t zk9;$i4W{#SO4on~TUK{U@0y<0CH-u=Z@08FSk?4t-O|~Rl@E^7J!Mp7r>piz zJ4{dOkq(%?y+?ZLbl+ZSqwNj7(yffs+4`mRrf-~@BD&qHUs{lHd&~rBO~&bM6Q$j! zpPMKRofFELB<(kS_ay1A>28yyJEvcmEbR}DsOb&)S45^;PLVd8-spB&c6!GY>BU0P zE}6OD9a%}B^CiILf@6ZW%=GA~()QD5PnC|D{$r}N*L3G;(mOCp%I&<gvO8=i8X#Plk`pJ3H64M{elZGF&tTT7D(rcL^~xGRhA?wXe%Tq<|ISc z>w@k{pD!om#mF|j;EF2m^rH);r$e_GgIdwkGZ#ujw{b66DBYw2ZERMSfG%msrESC^a=(Vg7|Hjf|qx6BkQovw;@d#4=33vRFEKdTx8P_;mjz z(!6{c&PA2QC5bsX`QYT3vqU;_y5WOBk?FUVNc&FLSSp5hnl2p*z=K|0bc;FWI z_D3tFB^amwUL~D2J!!S{<>_W?q|2tST_Zhpy7OA;{^^(3N(ab;Dm5mb{BniNJcWXs z#ANWmYe9Z-CV1aG!*rK*(nizE*Ga2RpSw=Fak~6^X^-g{>!lY>=iVSKKV5r+v<-BC zGH-+Q*6Au6r4xlgLjjO0jD1r}5_9ypxEQ9-+9(|}{rg5~+3BL2q$f;Ywn;hxT$pU< z*(@y%-Kng(MLHZj__V!ki?jhFxHCI_&sJ#z4$vg9hD&AYe1je-M)B#q+obs*-7&>& z(sg{G`BvC=2&Rzff*VbQrytrT?Fw}m-*)L7Xs5SvyR;^|2Dl~6Fn#lOY3u3lw@V*} z_IP*hkXD8EcojQ7NKXH^L)wAW5LA54Pn6GK6rLWjQ(B7E5Y)wd$_I67 z-|v!6oF2Ga+HiXFZt2I<)AvZLsudJv7U$=s7O592BqbK7GC=qcc2Z(dF@q7vRnxcc zk@lO;wpUsS(E~R^;l=Hh&XG+6T|ofev8a%o4;oo#&~QpDP6aJv)nu6dYOnO<>2>?0 zJ*S`8C%u?k!@npc4|IK&Cd2fK{nFSrUr-E8KpyByl2c!+Azdj%xGTq^z zwA=LdgVM{V>mQPKoL+cH`qlK9!_rbR;DqLsUz7(5nwFmWY7F;tcRqP5EhQ+v!_RODlrY=KO^T3XGD|zn+%vfV8QcAge5=cb}0~oWAyq z^p@#KXQekx7d|H)Jw5-N^sen%=cNlEBZJ!)T#$B!9uD;SqI41m{0QRkOVW!#i;{{n zLA%Ys8FjuQj}@c%bcM^(&eH|UZmUo4zASwaRGJloFUSR5v09K1IlQFkinNa~sEE-~ zNP(8=U?Zkqz9M~X{)BufMv>|Ju1Y&|M}s0+2Qn7VcTGA2Y$bSiMH+Yum*3^*lJgIk z>oT%VUvf>_7`=@>{lzuunP5E#XHK7ZUAjOJWH4APqcT4e-0qThxFI@S^Mo_UX*Gr4LR&dRtm&e&bhbM$!3q7Bn() zP8YZ%%{N{Cj&$tw+B?#b@C25blbH;TnHP7Yp;rWbd>Ac0UF)v&`sugsNsx zNsBQ}zxP18V|w~SX(v$E7nEB-y7Tj3M=k7sDBU>S@sYIX^zcX0o2GL;mNuHc;fATm zbhiVS`KHG|mNuL|@v-!!=_ya7Cr$tUM0)b{?x)hB(;q&S)|k%qO!^R`$@IkVxx&+b z@30b>{_&Z#F1W0kF8EbdWV*$3>DS=$YP;qOX*)*HvR6p_<|ij-7G#1-!B~dr3!f}h znI6*0D>^;WP?3B3p_kH=VKrRrE9oLGc+fITzx_%&9wSb?UrVn<7!5j5wlW zuKh{cbb8_^Y1BKCcYcySGrjGzv<(l^q(tI;#gcwT(dqu{`uMhg{w#f(asI~cK1QkS zH@`|pF=B)t`1Z@_@6yw!fBr7*!wQ;fW|;2wLppW(njg~o(;0ui7M}k8hxFX(y+5UU zr%V5mKE|DtSX^9`nv|d}_+5XP=f?oRL}#8O>yHPRz+n&IcvVVg_cX#NuLb4vltHNX{=RDlGt2 zx}fqgDX|#T?EzI5({KKjw&p6&$Sg@M&(BX`n6B_o+H`u@KWX*pb^l*_zGHtM) ze{nHn9aUwBIX~s;=m|7U4T<&{`L)=GE$7wPjkt5!jCTnn^y$Aq*seu=E3y0#kGnc z9rb`OS7*F>Vlqs5iKu{)Nx}cCu-}D7S zG8-XtR^h@jF^F1sudvKCq$O~1A~Go5<>@a(Wd300k8h$fCEK&bWV9F|vpws?Wn#gx zq9-8}1zvA+z&u@=Be^ssJr#5{_XY`>?CCO+GLh3A*_ecePLdO#BL`Vm!`%IS=1#uC%R)MT!sWG^dqnT+X+)n(MDpH`Q-DhFr5|a`kd-;-e zWFn{U)sd;6ZmTPkHGPGyOyYDdJ(=9;6?!t6(;w-{=uH>Ymzg+yvA#^=bXEfyjqQ2{ zGUANW-3(=pZ|5_T;bNRFX)I%gNC}a~GOOl;4sBEc4Rvu(H#U)}o4(0J=Ed~crZQ8Z zJ)szNOGAd~7k$blr-zxz9Dwu+!{=XQ?O+t;P0KG*NJ=cpfUN6vFqa8o15Ls(IZmG# z=PNpWgSm|D^mpbmQPVvwWRk&E&h$+dGMU?DEM<(Dw+GnBC^K#^v6T^ElE9c+@plD{ zE-*}=Z!cp%{l2}7?{r-U8LjCN4l>85D>%x8Pp@#4F`mB0QO0=t14kJ?#_8{!WKMyG zNtCDGb(V>nZsQ^o4~_BZi(O>uG0NBVxyF*)eOzUpGETpDpi6eTzq^e4^y%(0*3&P$ z%gmgf>mhS{x~Hd1m}pXBNlt1J1Be2(mBFcuVfuDY8I9==JY`-@KkX$GgJJr@*Gw|g z#Ts5nP0#a|(PRU6)EK7E_m=6JuH_@6H$BovX3q3)J~BzuBYkB;F|)MeC#)@{H2WUfrV;4d?6dU}A&_v!J0GSjDj50pus9vvj( zJbiwUO#O8EV42qGOM_)Br{4#$QbS}WPyZPrV?13qR0et!Q%$JMrs?`&G7{50!ep#v z!xPg%N6n^zqP8S82UPTzD1jKDDti8V6*ord>3hRu7EezMmx-CaFI=Wzx_*SrJvodx z1of?)5=+ubL8lN+*Nc=fnw}UbQ!)Kkq|DywGooZnxmyeUNg4D(FaWcizFUQIFPFIYV zDVshcUPcBYu`6C?I&5{?^nwJLlIc$qWDbGGazXpqwr@z3$!DCdkSr5Ay)0QqZ~D?? z88t|$a4}hCKiG)v(^6z~8HFGoDoO&ayVq0D)m32Femzx2hiN)XhK%WSs|=ZC+aG4g z6th8+dQ`ql;q){4GA@wrpICv67id#Q!1PT8GSjAe7RtPvZc!xDG<|oGjLGy5MKaT- zw-?KN++JBCqs=(o(-+sA5h7UCG zaj{{c@bqt$G7BL-m|G>|IsJK+Ox660KUx_@wwG1Qm@-aZQzLV0dV8(RyytyahmR4FQYO&r(R~)boB-q_3i!*ppw6;QKoYGmqwY==~+!O zGqwachYuWgq}pZ>I6#%Q`khs@^bXF6mSZO`wN`NKFpr(4E>(Qtl!R0*T#^uygU zdec93%cxJ6>XEUV9@!(KHoc)o=09doOzf2@n9kHEQ#QS_Pv-CR@_rf3=?nX1!lwV| zm(iQ9K0&5n`iu!OuOKJTI4UG1f_ByDF-)I4QO0um*@-fJ(_<#dOh+!sr%je|L*~zi z3?ipbmeH6#VY1A8NDXE>MJ8^#qKuO8_T^J#PBKm}oF-$iebF=-Hb!PsJ%#y-Q@R+1 zr|+LGV>12AbQ#m>S~Fx4rgzVfnJ`^uri|8f_n9&Wr*qDdiJG1=OC}xDS9fR0G*3^Q zEwc&M=&1yCV9WFrK)c1&=g2@Vhu9uC2UPkc%$4bx{&ud+4*qCA)SJf67@5gTzcf!K zf;ZZ+2vnw4CW4wW;4!=De)DAtryrOv(*m_4wMy494^-TN<}D!|z5E3-&JgeJSRk`x zdh9|O?dhEhWjZ0J6zMFIStFR7n3s~1nv_~pR0-MWKmGM08UN|li)EfqS6(8M4W8)M z@XgH8)0|(pixD&^!YRWsediLHis?p6WhPEPvQ(yHy6-ZXsi1mK7F=V7Jv_VqIG>z^by$TVQ6S~$yGV)~&CGC9)?KbmW8kJ>21%s4%6lZ?&w*_&j7 zn5MtmBI7V!f2)ku_N=Wk580;s?2(b4p0P*f&UV+mGVDy#efP__PM^GAMs@nm{W2BE z330mJ0h#IW<(2mi$jC84nkIsWWv)RsR6FGtrKA?6rhv9rfTu%2C+gFTDVY<~&z+K)GCldU%yam9-T5+a zOc^Do=bn+dHQnQ^Ob7?`bl=432lt*4oxc05Oh0(Me0sq-nU?8a&&jldSE|G60w&+- z2HmFO>`AGKDWDx!tIx|+PglPnvv2yd3o?~ri3J6TMW7SR8H!7DLF=fBK<%vg2bME3 z%1obfQO0Kb#fvgK8K-w&mU#|o#5hi0eOX3*`hqJm?b9``%52?!@2X4&<8=4yGL_p8 zUY8MKoPOnojOlc)n=&S#`>OTliB1o_DPugn^QKJh^zS!idZ)MEl5w1V{FaQLAW}CE z)aYb#oWJl$2&3?H>)SFm;0k1V?QK|dobhpy#Pkho6wcZ^vl=Xk!gig8kTou z(jogumfe+6hOK0oe(A1^<#e8VGNzm$^EI3@^K<4K+V+9Qaqr1!@gv!vsF0jGJ#hYG zk?9-m$=FSQe@~`idcl1e|LF(r%glykg zjzXeBNoj6A=q7LIIuB;2)WjSH7HIKvvBODudh{cip6M?h$plQdd@PeRea>SUm+225 z%bb|L>WPfc^zTn(rcUpDDkD36^;4Of(_5d(=uO}9OlBfY%uAWo@Fn-# z8(+z+X5>Osv)%8F%mm1x4AWg>bNQz;y^~3sp7~BDboxS-b8^$~zLQz7z3#nCIHLr( z`0>jxQOJOtf&k7#xq1xK-+z$FnjZC0MqzsOM;Wi_$3Ds!O#l8-#%Q|MCmH|gRi9*R zr|3vhRK4o zl)XLu5|eBqqv8C-Rql);(>ewjsf*7Q79S^w$#SY_o9%Nm}s$}XAS z%_b{1eHELmDnk4wn{4rPUv^o)>2ug+%cqNQ$j+R;jzhL(x-qA$$MhOb*|_PqIc5E( zYjMd2O|RvWZJW-*EgQ;cK0ooa6QkJlLT*`^>3!U?ho=Ye$hr%{5=BWqbdlxsK=q@d z(+~2<&PQ08#VebD;9cRB^+ND8_+)jbhw&jRIKU?hS_}oM+!(go@XO9%oPJe6wh^2P zrZ+x6p*p=$P_}IQ4?$TW#_11hxWuL_3d=S_3WZg|vQg7nMPw}@rGSfwY}xePBC;>1 zFBO$lgOmanMP*UbiMp7qHA=F`7nAjvzC%oQ!gNn@+1V2C2`tDUj#FY$PAYg1^`E%x z&FK%AMtV z7fj#it|2$QQb|^3`bHK9;pr=tWbLQFRFXBEF0CwU0SU@TW!Vg{TjxJ~D8?wd{f@G1 zAmjA;Yp2Oh_g0m)nBJl)8!`Q^s_fb6tJP$uPj^D!HE3#MzB$XYU*PH#+6muJn%&(~v^-eDpe#|>KEoRgUk&fK3(WYV|#pz4TWT#EHHkS>bKG|G0Xu4vbyz+D|3t9W=UKX+^r;Aw1&YHg7Qnq=z zv6XDW^d(lZ5!3%#$U2gI z*-$pnJQP#N{Es#sj3UzuU1VjrK+{psCgCc^az^RteL?AL(|5VZxm;Zd3gI#X1WVfq<2*`17r^Ve}?Gm1^0=PtVnl4$)rWWTY1Mj*C(dCKN9PT%Dv z>pPvpTUK|vnYU~V2gE*x#OZZG>0;A2dCM-I9_Ax^a=L=AZ20sFUs<#1>wRTar9tZk zm|QC|5=)CqQd6uIN-{yMsr*t<>+_?ptkHB8KUqU?B4kTVECIDes{LfWryuu|ZJh4u zFZ+1AZh&ksmNSwj1OZ)CBToPIr6)@(Xo zh^!?>GI*Sp3^hKW%o>1i;#_&ULPUbwVf+c zHkEODL6mIq^e0iW`mlCg8fZ%kXuYONw5-YY$Y@ysrs-L+vYFGb#LCuU_E?hRWV5HA zkCQc;&J-_uboz;S+4kuH39_x*uO-M{W1PM=N!D=s{Uq6_=~l_I_ohpx$m(zROpz6U zOhQeMPn9*_K0Q^ok8!$Mx~%W?l62Wtlrn-XLw51@RT;8-n5JJ86c*iHlPzn=G<{vJ zti<%=xw5v?S@UF{PM`Q-v+Q(-Ttn9R4T7DF?9)Z^Wj&_H=F3V?ugsVAg6t~s%u@ij zkrhfZ5=*SXq#ncc`}wkU)8h(c6Q=JkkPVtHR46-d`o=<8_347P(xTJf70Pa!zOYEv zar)yT*~ICt#j?fIcNWX`Nk+Tr=_ur6mgs>t=@+Lag68;BKqo0rPb!hspFXKXR&Baq zXRg%r%O$cY(=AG6gQxeD%7%f4F_ah?rn8sHu9&`|Otx#fb-AqH^bgxoq^B<}m-STv zPo}$o)*@ts)--18C?w{kD1b)AQWLXbm!L~l$eK>~uaGr|bOL5q$a+nGRw27$dVi&C z0A>Vztdz}~zfdlRQEmQ*3*C&Y)7z_LwWn{ck_`cMR7B^?9aCczn66hXy9P9*JOAJ* zHAczl>#8U7PiL!v5TgEuuu~qiyboMscIn$T4$p%gT-XGvkd zT2GgnEE@{qhHgJLSvHGty5UsW*zNsOWj8Y_Kx^Zal+3(z9fhP+5Dl%E!7~ceQ>M#8 zFX%ouUDkWL)C^gt>F=u3B&L_nkW~U1Dms1b3|Zyr7iY-kZFiU{yPk3Shgq_iD_^E7 zro;(PKRa8tWV+KF*?S--icB}1D?4fWiMg`prca+ITRxqCzN{ZaqG-Ns;r1uKW^o`HzM5mW7lr@;nzgu2%`u>Ho!rLz|lyzmCF1c8C z*7hxnWpiOC)G8Dt=7AP@E0iY|k+(ptx`x%V zI{Kh~5K~Zoey#!{Dx*C?H`8PmD-@^Z6{ji`6s4x6g04odRA88XZ?$apbgwnC(|JH1 zgtY{xe^?`Xbo#cnveUQwt&>$_oL;(Kws$)72HBs}|89_lUh|{alrA#8|8FhZbc>C$ zKHFP2%BF)|EIe(qY$fPAMA7LDy7Da3CvTR0g2bJ;MK%(|RhvHHi5DwxC3v+;G3b&M zJ%;HjTV*4r*KU>7gESO3Zk6rd?zm01ifQ_u9kQO&*>=h*PuJQhTP>E9nyQeLlb@Vj zjI!l?-%eR4l+uxRmuxC0tV^9Yf8&fgM&aobcFC3@cTN)(O3L#UrqA9ZE4kfhx2!m$ z2R@^Hai=v`?uWSg4z?;3Y`6vPz`($-xoIt)wO)beu zWeCYvNJ>>m&dAS6Ey_#=byT+OlU3V(d!K9sBlJXy)Z~m*9R=`;EC$e?7#ViA#B}ia zaM=fBU%;E3F$ZPikgeK&{GhA_=HB8<}$yR{Xjn;wx}IsN_-S)J)TM`hPe-*r^h zbNWT6W|Qgmh3ah6?T*QYGDc5-_|-vpe!{t2M%L+TkI7D)Zhu_XYkJpl*`VonkIR}* z7d;_s2&t15-ro?PF7^F}(Du?3vNcTGKb?~0WZeGeG^l_pJ}VnF{oGmEnbR}Q$$C!T zbWYZK`nz+o6QS7cW}ix$Y_7igbkDrklfd~8}lVrCJj z(Ro$YZu;7*vP#o0T$Od0E_hA0b^7#cvTBet`ShBs(sYjNvUStjugmU64!-$`a{7$o z)6;IqPMZGnhHT{Y;G42L8E!n*3fwyI)m_e6seDqfqogO2V!pR1i)S5o= z#wpSHYiz6-`KRx^E&FHswmY)P)1~gp+D?zSD?1ZZ$7oHLy(eosJ^G$(<@BrfWWzus zJ{r?Y>tqF{r`(qn++KEHHi;4Jz-b{&tkYQ^$~sN=01=7T+0~|RdMK+p{l-ICx9Rea zWG7DF_((Q!y6|J!gy|)ZW$$hedID;6);^W3nf~jk?3U^4pUEzs9{gN3ZT{*?7Dn0W z*PqMkAexlCFJuegy!nQ$prgYB1gco3FMc6wGyTB}*|_QUFJ;}Qx4)Ftn7-kqY}E91 zlb&i$H+dzyPB7XjH7&mgv_J(kFAJ*ezP^%;njY|4_V9F(H?k9_FMA`KFrEFaY{B%3 zx3X?v{|JIBbZ}ZuO=AFWF!}LTR%W{BJJ~2uD5y@K`cBq<`_*@{=HLK;mMLl;sINkNHY|Hdhe`PhcfBq{g$+(^Ozib}k z)EYU3sdMFmr+$=^n$E*0XEWWCQ7&ux7DhS0>C8-WebYbws1%>Rl1c72$WUm|>|>Tw z0&&Hrb7ymkg42r-i`<6khgsyprx#8v7M`xhDtB`_2b-LiJSbCvP8?6oD*?@I`c?!7#m;O|ESED>k{5>Hh3;x29`x$hl1~h$ZJav9Sdxa3@> zw{pp4fzmOott7@R=QiDdFHdB8A-9|)c%R5dmwbuo%edv%PY>gfTMZgX1)XB9$H1at zuL)XPFkOUK&VPCeuN?F|+0(pop3_D73ITj z4?(_Eo4(+TJnQsoK{>POn*`++z{Oam*9yrwL%1)5B_vOfF;lCNVi5#_9jX<&I20A|dx}`))}&EpWV`oFk}( zH9b*5?%{N2MY-zf`xWJarwc2|?VWy6Nltw_==#*@Jj!ww(_NM2+@|*^%N^#2jxa;c zc-Lc?o}eO^3c0)*)J7}H&&@1O1;MH-_tF0<*KG{)|GPswOS;m3+Ty7P1n|wyD^E`Bg=F{`d<$`(CKu)n%a7qQ8_!;;_OL+SubGa8x(@$H;c}*9ymis+j z$VRSr`T`rdwCU`&a-G{J+RCXyWAwocOV;U+?Bp7jC)>+G#kw8j45sgKkW-v~&p|GD zx{;$?3CLxl)Au^cX@HZm?8_WUHc)d}k6}8elbqvpZznk$4e(@kYK}r;ZhmQzLRw;G zkwQ*>8K}zx&Sj2Z9;gD^5E5^`8meYgXmsk(&q-gO(>nzH*izuG;*Dcqc~I>DPVbX0w5|aVRisukw@o4-Ph{ z+Q|WOcGE8f$a!v;36yJq_FxwU$wf^69VC}AJtbH!4bpAD5G)rkT`@#%#q?7lavI=c zQv^cgvbI-;%1JR!pB5(9FkL)c&V0ImxLn%wZQ*jEU>AT2GcicHo0*ddK9wsoClkE< zYPx@foXhkn5pspo*&^lArsqb=g-<^kDQ7(WXQZ438zc(mANbtID7M`%O3t2fdSA3$ z!u0pia+cFIW8_+=uaA*CHN7fU?&|b_IJswF>$b#OVgfat_lAljWX)2$AVIDRTG0tnCS@a=eVw^U~xp zz+;Ki@1)5+oqi}?E_gcV5bEu^8FF@v({nQA+^28Jlmpid(4Z90l5+vOV*Z2s(u|zb zyR+m9r~l28bD!>-EvGxZI9pDC`r>T4Rone?oYM5z5;y>izr`%I4MR(*0x;1a*S zPj2>f>3%u$>B0SS8q;g~<#M;b>X$QM+%7#)ZV}`5eUm^1A9zs1Vv1ZgZ%I*UZb52^ z0%(~b!}Lv4bTfc})+QCg(YQ-ZVMW>5fu9($n8h zlk=W#Jzeg_bjIXfvFUtqI&9M&X2=z6-#9~#n{oQynR2$%f6tV=I{o4-Ig{yZv*n^W z6BSbOOOtX^OQt`V8ZI`yakgCFbb&c?G2mF5pD;6rk$3unIdUS?x6YAknqO!Z#b`P` zcdlIG^z(D&(x#iulQV}j_>1SsJ)IsoUoK(#uK9A8w)ZZOvxJrfcNfZ~PIs_Wke(j5 zNNxw%-060U<=UnnT`U(rU3H0E^7PIna(kz{FO^f@p1)L1n{oQ=Wpee?rI*VEibp%= zgJvpoDnUJ1(3oxkXq}AVbou(%veOqWmouL}QN>Ag`upW_Uem2s$SF^cTOrpEE0Dgf zkW*otF11Qddb-&vIk)MxtK{US&sincG+lnRTmmG9>|GKzp_@&Vmj|Sx$x*Ru`?_4L> zI^BM~T=(?T>*W%s>u!+qonE~`E@S$W4RQ(7T{p_bPhYxG?i?g5R&J7$fn>nho8%x9 zn)A8EeHf*uJ8qWqWdV)(PM@+_P8%}5b9A#@%XF_Ta&pr%x5#Bqzr01x2UJHWO?TQV z=QO=_tK5OZtveF=fXJs%67R))6;jznNOd;Lr#18=^b)M zrcc-@_i%dAE;;|{2|PE%rmsy_ML*b$a?E{p0nNDXtELT0f z@vxlz^n-`xHiCu`L8sDK80F^YfO4N6gr~r;z4r(xr*1zg*EQYgm|W2GsmJ6L*dQJK z>Hoxhq^9TP269h-cudZ2y25d}+UfI-%k7;Wb3)E~`iv8Dh10oC$~jE;J}K8V{n|-6 z&1t9PW-yvgzi8niGJV}CxvJ@!r{zkyHGERbQgbr%(lr^TH#YAO-oEd&Tr4BJq?@jK zRu0mCn9ex4T9h*hG~|{F8u-3RoM(I+}R^D@RhSLqs%PE77puB7& zJU!#QoFJpg^nc4=Nll-6Ue0Cut@Co{A>ncHf?Uvam5Xv)r{B6LXFpx)lH9cE8!yQ% zfTW`E%W`GY&s~-anyz?7&T4wh6}iyqo36;EPM5eU*EoIFRk^t7Kd;K!ibKb+@=`$4 zMrC>mC3?`R@|xV@>7TF3sZW=_E@wYI`np^sB%um+>WEH1e_hT1Vh`&LIkoLNH{_TZ zryJaqGZF+vIq0~eM9^_Vpn<08WjEzCrq91Aw+w!ogx@W>+0aRVJkU7Te9(pG!qb+% z@M+7$S zm6rkw-hSx0oEYQun=j;kF-7}KuM?D)pZ@iw+}Y`eU&%$y zpBP`yC_LTpwVW`d1L-)wak~to$n^Nvax&9vUdsheKlfU$V7mPqIp68MZ{$L!KYk-O zNfsI}X^Ca|MGBy`r>S|VX_+O^(TAyT<+QdRcq=!PaeLHzklopktr^|ejGnpRvNpAl1kDug>K`hbfR-fe#P5=8@PItQY7degTAz$Pir%(GLSIP~J zLvP6HR*A22|3Qkxr|W-{lbr7PO>XJ*_uu3irx$*g3kJ28=NtHjGm1>V^IfiYde#rQ zzUe=I$mvX1`ze<*eezGa>C?4;$>~g&acl9KzUY@+#{9Qyco`L^>-?6x4OuhmG`-*M zx)`XeQvV}oCIvnpmmxScRROX)%{eEvD7_NAJ+11GoExa1oU%RaFQ`#9^`BhPbdLXW z7SkR7%Q?wF0;vQPJ}IT3Q-c)>a#9nEON&6sZ{dHrq^T_Ow$njjGc`=!Y3fXQ6Gp@N zflV2VB2ypB=S>e{luw<$gHe9*^cW`j;O!fj2ulT zTc#^<$oEg*#34U_dJw1lqUm2bamn{gzsx0{GTnk({^0aq-14#0BY5N^A(wZa z;gQ#p2IWR3-^`qpywu`iYlZYw&~h~pTaRJ7Ft7aD=?8h`&8Pq5mG_Nv0<_VGQHUjeOjMH5N0ls|XHTCX zE^j;ioVdL2bQuYG=jjI*MGH@#A05fIy;4GcKhtzeX?eHl4bt*4)9*^ln?MRrOBwmI z+u3F1B^akG$jOUMpDib^J3U2CUP(CGDK)PuKQm83TOlzw6EYn&TTcF*0KBLH$%1OT z#6{7f+b77&8!*CmeQiIbAfLsEp>%$Kx*DVC^k^md6%y#iz&DJ^Da&uLEJ!UW%FjtH z%~dEa$Sle%VL%9gF73(8O9idXVqgk}E?5CM7Ic#j!*p&H`8~qmfilp-evls$A&cMt zUssiz-_WSb$T^)^Ro-Q~hpN2O_HI>qai-~u)#aB;Mms0wOv)6XG0SYLnD7922lQ<-k~Y4$qI5;{&d052Ex-% zY04W;|D!2iGQChsUTS)emVCzauUhhlr|;C3_Yi=FY_fv30%R}S#{FldnROHxrW@(V zD}lxhKmiYu)~y6J=cdEu+jQjPr$5t?2R9kOeIHjyG)~Ys!aluvX0GUT4n299>8g72 zbr6YwJy~qqFX+ji0k<~Qq#$K^W??C)FwcVyjHf1-r!q{xZy+Bx-Of-xcKRF;@yk%Y zVtcWXyaVI(EynWR(@f;U<|;}sif_*|k!OXNHvPfl9M< z51szqOkQO=c#zxJT;6Vbk-2;tBWT7|cKSC9`8CrQTgnGc|7t1k2^#(onSO>zU3hxB zmAvWnxmNNC)Bjn?S52?9mQS62-&+3m_T4t}PK?w4*~$k@_qUUGoj%o0-ksG@0W{hV zI^$~kPdoX&)3@8p8&7|2FE2Hn%|YI1x}}5s1H??m^oOPA#im<1%DYUjca--A&5(*u zf8;3dJYCI6K45yelYIK}`%dyqpray1r+;&i_W=hUxJkx7y}(soWBN>2d5`IjT;+dF zzw0JnBL%*cD>)Io(+#wLDWIsdxHvO0mcej(Vbf&M`R|ju8QG>!aF@@V{>xq7Z@Z_5 zygSqMiC*&l;8xD`XCM}+9GY(JEx&U91Mx|W;?w_l%P-?CPA)A;&QM4%0_~NWzR^cM zd|I8H#CAnr`I(HMqa$`97mC}P{N?8}PFD()SD$VuuPiz}K2Sb#`_4d+U}Ug-&-7=( z@;=};=X8q@`7TI<0<>#48MKuo6*MUfDu-@`$g59h3YFJ_c>BS1UPkumQK9lm(`!TJ z&&fo4g0Ck_N-Zi*Ey@Nh=mXUc8o|klc`4I>H{6k#-WDdGF#UO$eEIbFaCsMq7gvVM zubUnbA@4YSR)l=>bh$`*+vyt;%&5`nT(~Y9!v!~CCl0P{; zBU)Z=XJw}UkC%4_Wuv0X9MJVz`QUAv8uKqi$}&n$&r6WsHC;1NJ_>Sq ztfNADQEFm|ZhBE-UJ7in0w`v-FG-YdV-y2<6*THwoSXRlJ zTs~X~92)+43i)}d3dNvGfnoZ=a{2P@mKE{^jMGo*z`qs`qW1GhUsEW^6t~)n&j6` z=V_L&04tk5VYWQ$^!d&5;?uV`%O9Fv)gm7={d$Xh3P@HBI*OFtDsR1gd8@oP)Tsj5 zO`Ow}+T{bL7q`pDgH=xd)h=H#y|_bOYx=wn`GxZZJvtdRre}7_$4)=qDPK3;txLXt z`n4|kp6SWm@-wFY>6ZTn)(5tMZM%H0JR{?D#Xk9VB+=>ez4Bbs@At`Dg5pwbx_!UA z==9Kj`K0MP`sKGzFPI=d3#@uN*gaMg zX358ay(6ReAcE`SP68ug#bD1N#CT5}eaR7RZ}S?_40? z1QwjO*_wU25CW2cY%dKBVwG>V;9M%Oh2?pel0|7`eJ#L>1P(p2Tqq;B40aw z&Jua4>D!mcn@@kgM80l%-ctG2>0g%0XHAb^CVy=D!*j*r(`}c_YfMjDE}u62>~i__ z(`#4AuLaG;h)lO%DenuK%F>;_d!@YD^iM10W48yak`DxDD7EP)R?C-6w_PJYefrfk z^8diLPupzGHf^1}-E{kP@`t7~t(P~MZoXb#eZC-@8l$wZjskcS*iNaVcoCpdQ0?+s*Qg z)Aw(dH-`+9@obTQG5zZnd9~>>TjhUGm)Is>I=ye3d_M>D_CAK`>f7bDqdgI|t>1rt2S)R|l=) zF3!&@s+_;TEtye#df6fQHPe+3%iBQ)IqMJ03vHitSY8d9${Td$S*Kq{D$cQC*>DU-*QrZ-Sp&B z@^hy%o|aGFo_Shc0BkCFo((cYI9=teyx#QSv+}jmFP@b@uzk`w`7EaCe=o?pZg;*Y zFV6_duX59y1QbN4PrD@VH~r})`GwQlFUzl;ZhA#NV0zmX`Q-WURJ|F+wliLp?_!+Z zb4|Wr`rm8v3De`Q%NI?*cwPSV^tm_WcTNw#DIYw2^-cNS>6W+TTc_{8CBF#b`p(<( zHq(#YmUo)Yc}IT7^h0;#i>I62m7h3$*4;C)j11G&@5w)y&T(H}4-#88_vH^m`bts{ z&NnICBUb&q?VNCBq}6j z7A0qZH}!yu0MI>~)5V|2PoBQ|2_(wF?O2xiV)1H>!qYjP%JWVadn)e_ay&$4di_&* zlj&QY%CDK8_)I=_`u=C~ant3V%g0TxeJ+1{d*lmwb;jw9FXeNmzkexjKVAQoeC+hz zSMn0um%Wmo$~fKTjeG}4qdF_-8dHYppWeuaP4|2&zirw(dCBQg@8tcbXT6j6-oEXf zJR>7y1ZMjBRfT->;;b1traycyKYM!Z2YJcq(?7`TOg{o5K7NqD09gVz{l!Q5g6WZ; zoDjzVN z@0)z@^f}+;i>C{Gm$%@B4ndWr=70h!{JVU?^b_CZd#8u}kUtBXl(Ao;$|ySB{-?a* z^unL=&>7qh=bo}nxBDe;KfUgkeCYNozvNFcPM`Nj-hBGCKk_ZpqyNe`Zom6i{u1N# z4gckvK_RO)HCmwnwVUwoP{sP?$XZihzPAY@wg3pu)H5GC~S|&~tPvs}l1{K=Du|q;Lch zu`a?2{?n%jD@>WLDWZ@(y;nrx!}K~)h2HHvVhT$cr*9HhSb*F(pB^uv&@ugmgu;R8 zD8K)8|Sn{Km*)fqso*)A!3LgijZjRY;v)E344Y z2P%_cy<{fO>5LJlMYkKuDcCViFOXLdnI6ayBQkxayu$S9h6)Oj)4dfGyr)lBP-vJg zp{Ni%Jx5U?Wcoox1=;EM6%|~iU=>iNE~tNBRFauo3R+bM^00%Fg75S`C56c8FO(Fz zrWY$Ke4n1JqVQ#Uf~tbW^qHy(0g%M#IbE@QrSNoSH3jkM(rOCRK=GtDeZqZDj_D87 z6ym2ls4Fa&N42L^p$K6Ss0A{eQ$qpTK~b!}COp4iC6AGPdZ~s&#`Jp{3ewYmX(;$i zch^*iVl&Hff1k;gJ90|L@fpL=`*zy z9H-ybQiz>ysjc8Typ2DH& zXY~}Sr+exvsPKZE3L4DK&(GFl*j}TraEWn#pe-+>_;d#c9=7Q@h6;P9YZ)nQ-hR(W zA%Stby@`SboxZ_Ffn|E7jl#6)0=5da)BS7}Dz+cD zRmfzVZfLL2F@2Z4g755JY#?wQc6#SHs zE(!tD!(9~Wr(btb(4Efest_lEFcx$eSy57c9>mn`wXO=0jHt;iIk70Iv?#R%yn1zh zqD2g&$n*^>lUSyGk7k|D@2=oKJ>FeGVtR$ULgw^G?h0|!9X%Ah7^A26uTU19zQ{vC za{3+*1^4MJo(lTYO*|C}xxj;mNtwy14AVDyDy*Cy?WJ&Wx~{i^)bxu}u8K^L@m3I; zp6{)&V7h>hLiF?;9|iO2OMDcjV`MrXUxm3yK2gwCNX`IngaS3srW;=85SgFl9>d5t z{lbk{mg$;)3clPanJ^^`)0_PiG^VfdQ_z8}Uw+`HU_D*NUqNEJslP(Q^lknM`=^%$ zD40R2%}oIciy^5vI#A)@blD(<1V|QI8l+G-T|8L9Y`R~tLgDlS!3y)ICxj^YOkW$K zAV2+Vh=SR4mQaOO5ooF`&dw~#%`AqVpfEpFA#*xsn8M8Ii^CKwr*CY#E3L(>{MJP<0t{bT^b^75* zg&@?Flbl~vkY5CeO}C8?6vG zohL>iXL@Cf!p!N8%Y{Xz2c-A0OxKQ8IJ5mntb!pEsG+VkJv2eVclzQ4g+udWm!~mG zPj5_AsGR;gQDNfr-XsOX>HCuuj!$n-R+v9sJw+jB`;-&~M@9um&6=5lnA-t|9e9;c zBIw?TAE^q#(|ytuK2LW@R|uUxEnVTx^x_N!BSxd?jC~H$(;o=lVV{07Lm?g#b$Xc! zevqhZ%2cSC-niUYbh=2Eg2i;-EQN4zhxB-sLeO-nYz4jPp4kdVr}O71L`=`fQCK}) zBv)bobfmKGU9N)9bn85Yj_F786e6d~Dqr&u8g$n8rsf#^%V$*et6tbYBd!X|+Qb8-l!Hey{%LN&xZ!S^@hbR{) zR>+)QRje?1I$w!`^Yow+h3x73N)%$J%ake@P4_QVfb0sNURkPeWV&6MLL5JMG}S3J zu{13ce3s(cG6ntVcgqw`OR4b@Y_o!BIo!(cikb;^L((-dMp=pJ?M!^p?oq;6tVKq}pjY8=3Q#A^< z)4_>KrdB~`x@WC|lA9H)hjHUzPw%`XSzs(LhkgY28F59B^niyrdKyA z_=`j{uq5Z_7JyFXWGOB!NG$>#GxMNP;m`EDO$q_i^_mruwohzU5Mrk-W&eN&T!8Cnpw}STcgWU@IrZ@B`NKBvEqp*IuXRm_V^nzXmU&xI^es7f6 zw%_Yj5M`YHrB9(_du_jh1mpB+6BKf$Gf!0bIQ{EHg$NF4lZIh>_#}lyNKEdVq~HOW zGUJ)7ux0we$qK>KMW-kPOi!DluxL8xR0YN9A8fx$Zg-igAjHT5n(v*iyXlqW^ae3? zf$8sg^aZEee+=ZEzG#|)+4h^$6pR_C^UhE(-tIU6}dLdo>q^ArlE>&#a$2F0o8^i}f}?5Dq)ub|En?OKvC-Ox}~c)I2S z1;^>x3ltRQ?>o-QC^3D>0)>9mB$Shw1WQ6b3l);4uV1KeXL`>f1RV3cAzHmMG**U%W)2WxB>v1)b@kOBF&OK?%B&c7DUE6h_wV7ndpsGfscHOu-kL z*$s|}P4`=_;4yvXgBfPi&n;I_n*MRQg2i;L6$(?QA6TJ~FkNw_g4lG6l?s~E6wr%SC?@SC2w zS|M@z>D3DEtl-r}^BKRhFp5ssU87Jwed!v7aHeR-=?ZSI#ixs{RWO_GyH){uQXp(M zc$z$DGJ?q|GbcS&p*#_EcL{u-b8$(2dFu3hjjfW?1J@~Z@WM7PfR#<(FX=13{r@@z z9`K$76^OshHYh|+pRhqe7Q)@UK_PrP_eO>M>D3z*l%~(ys1OS~z<)Z+CWXxDd7Bh^ zrvKigAU|Dtv%E+uL{!cI8 zu5f6&)eeQ2>C<;8$b(k4u_b{*hGF{c9SUowckWcsoW6OdLdkTET?$Imy>}@TOy9Fh zL3aABT?!kvckfn^WSqWqkAmLxD|-}jA$4cwUWNVBHTNlaT7g>2phJ@~Qb8NE5*12{ zGLy5d6+nknCRXTy=WUq$^7FvkJggPU5;OA@%JYjr)9};R?^B4L&b?pZ48+X;`xPXo zOCC@#o$h}?p=J7&0}8g&g$^o2PR}{0ux7gCA%zdqxehB-$eTdMObRlSvlAvd8AYcX-ce|uzVnVk z&3s$$4n~RXes>l87^ly@r(iSv);$HC>FoCvsz8+)Y^p9ZCnvQ8w5>lgIU8~g#@_o1 z4b$x&DA-T0d!Ud${n-Nr-RU9^70jpmJXC;Q0avIfB|3ffLj@P`jQ;ee4;A7d3nn}t zDI`o^^+>^K`rAheq43T2Opep#ADt4Lp8Qy$eR^%_9J%STz85&A3qDa;Fn!Y#1-6Nb) zN~XVitq?Zd^^HOSI6~(yXi8;doBrsH!tv>=-YWc_zU&>WD!u$p;nehb?-jzQe|xXs zJl*Pp!r|%vJ}7ie@BFA>Jbmv+g_!A5pA_OmK(h@BpqX{2%-qDh{8I3OJ43sAk?D&* zDU?hX|EwT8J#f0B_;jDo3YOE`J}aaNp|p>{^M2F5C`7;)Sb;lYxv43ciQwLU!54*j z)A_$DC{8#0st`84Fd8MoSa_yL*W5xlQp-r7}S>o zP18V}(DhTndi$}T3bL@VsTpgyri=VmsGmONw}R*Nd%qQ=rvLn{kTyNxkHYTlGJh3x zkmhlN{wee_!jF)B@n69mRCJW+!FJ0{wNnh{)Nm}yECKBsojOO+flI@&xCC_8t0u$L z7m8^dupaC52u8(QpoM`7Ntt<>;7vq{c_|o-d3s!2pfhr(PvKDfG`*cu@#geIE=9lT8@LoT=O4K1z^F3)AD3dm^n7l`i0LP| z6>X+JG*T6vF2$qBHC>fQ(G^mq7Vs!KLDK9F9z~DojJ%2o(;0;-g}0aTDvB{q@8MI_ zp1y-maUNocQv$yt($Q!O_!W(&U*=a#oqlj1yY&3G=K>fd*po8B3w^)_O>Y-aY~}TMH}tP45y`te(y$qNoPWxYLb96hk2u)egT+wLy198R6)3-<{Dnn+MJRm1h zfc9{uR)QB`Z3NxEXpp~~bvnDGqUCl+NkwbM>9tad-qUrQeo0J^?^-1={iBp(D5Nv> zPD+tuda|^l0mKx+F3!-etNTlqBbPuA5&0_gh{C@D$e7Ctj5!D%A9|2 zArGU-^e2jnrZ5GHN{XQ{cAb*q?fHt`lNrUP7bq)M3BdK`gHHQm3YlJbmQ7^4fQsS- zMwpfrs*1YXuc<0>F>ZgTrl0^LYADuCf1#mhIeo)XKC$T*nu-B@ z5Yt&eTRcEZ-e+hk?wcO2rRW7S`r!L)QP7PiEYlBZDON&7w>xVqy1;Ge*HK(P-CS4E z2r4_hP*)Lt)+&!4g1uZ%5q`?}3q8d;nEL(U=R~JB>nqw$Kd7&$H2sOb;yTnORzYG; zF0_@t+CVXRI=`W!#Po}sI2EUR8Y;$3Uty@2GhNh3v2c33k>c~|`NoRw)3+NdPTB5b zqUg$q8hr(+$t9Vv&fgkSMbGKqOciscCz~nOO@CyjXarfKg_Ka!Qd3K;6_PRwzDA3#QEPgkxnl41|K^IB(=#m;lct}sP?P|*B1NYEv{2NUu4bvIIX%Eqapv?_mWoBw zW33dWq(N<9(EfH8(4yW-g@VjH(A|4!nV>5Hr&uZOogQSZIDh&lYsIV6PuM6nP4~7{ zoId@rt)kNOjSjQKrpwqVwohMTr?_W&qP?QT^eTJB1t6BlbbSX!>FM|P$I4C5bWl`a zhh~WB3zZLw%>OCC$;h*PlY^oW zqEr(_p#2e`x&?e%kDlgy#(oDznd#S@6}6@_x+w16zSl)jo^k&Fm4S@%?BH>BJ%;Hl zZi=SUt=tqJPM2|4bVnJHEO1w>oBrNiv3+{Ehhp*c*B*)v({(%*%cd{(RIHpX>!ldL zXgq)8c{4`g=}lgWveOrUh<#p)D@0IE2P)6ZOV3Fyo_?|Ih}iT=-io;>mhku}qVD{( z_ED@sQ896g>sH%Uqw5{=@a}E^B@EB z+lBlUBzPB#lw^qJlqsQ7hyWsu_h?UKQY@{H3hLlhrQmkw3@IGs04@yYa0 zVTzZg9}QQ$FnwBtB6x}2bis^cBGYA83UN>8iB$BM-Z(=`bb3~#;;ZSQQHo{L&qOKe zPX8697&kpKTG1X-#?6aXoHN}zM)4-3Vvvee4BcK3tH{GRy*5tq=JfD*#n$O};}u^| zKbfGYHGQGVIoaugiHcU!eG(NvO}9@{%!Umq>*geaS5NOsQd~SeE?F^X`o?5M@Jxr= zbd40n8PgA@DC$rDn4)O8T{~5ggK@e^nxX-ui&&qgs6Tyunxf2fg(nWu)1Rj)#!q)o zSM*_Z%}GrznVulzEHQm!y5ijF{uzp;^B<~5F^WvTnW1PkT_jWSu&72zMk=`IDoRaH z%}Xr;AL}qb@!cdw>FJzVibB(6vJ`WscV;PiPQRR`cy9WlY{j$F3vv|0rXSBy+%vr; zSMkmE!aT)SjMHNZ6en$eU!cg$xczgXqB7%j@nS{u>Hfuv;?vWM757e8Em3TmzM@2N z*>wL>#g^??N)<&Jr@tyw%z;#;G3AQ+)6bME?nW(KK#N|Wh0DUs4&mvWD-_MAzphZ6 zKfSwB(FoKAo&KOwQFFe0Q!%5AXn8*9EcKFN$lNIOB>d^~Lt>St$5$yTPH(JI?3vD2 ztvGf1l4`~L=^{0X<X$b5p?_t+zVr>RfLYTgw`sSOg~kt7(89BPB9!& zXMw7$;?#;#NCU06PVvcDLdw77gFbyy**`^@&X1*Q0oC`qW;rpq}aU-@S^y z(>?nX&8Ii^DT+fgLZ4#%^nZPdWz$Rh6+Nc!>sQpAe$iN3W;@FS#WKe2)e{x>FhZ_L z3Z1Ojx&8iRMN7u%l2a8+1Ry=&V$gBB;HK~VfRf3K;@h`PRcvBJO9};9q?LXUrE|9?K{(zkW_EBiD3`MT+Iq zH!M<=oPKJNqR#a1ixl0a+bve?n|^jNEKV29Si>M76rGt3^%Ukaeg{o-)U8s~p1x|8VmPSDtuziv zYZdFJUslFK^-&>~`%BA620y@_?U6WzE{d!Q#({F=f!}RkT6uYKJ zZB$I2zHg)Ay6L%_6rHAT*rZrHf4&G0qr`N#&5FyXzuT;Mb^4JliV4$IwN+6xE;;rkN!rpek~D>n_E&(~Ea2hMzUcu?`;_Q{7785vol-9bH@*@qQdrz;*&beKNT%0p^;%@IXM$nojZ zZyr(HCs7Pq{h^yulv$Qq#E_esn37+vkdd0lFkNvMzsUUezkL`vryqEv#ykDaQAI8d z&?@W_g``Z-QnWmV;?g`go7pK7bi!^C^g3d}V~WDlRgWo7n7-|p;*{y$#}##_CmJ>= zPoHyKar^X;6N>Yue?Fl&eR}sv#oFndrxf$ISDsQl$;4Y!HN`m4a#5A(iPseireC_QShC&yhT>1g>5jJ)MW!G0 zTBtpJ0=F;c^sZZqm7r@S#3nEJ#4%mzwxZ^ApWBLx)AMdC7EXU~TTu(#mD(k4X3ZYujoDf=Y7RD)1N(1 zbeyj7P%&b9<3mNQ>1!S;Zl0d-NU>r1!$*p-D_<6eMGsP2_ zs@^|S{5Ad6bH(}7yIv^jOyB-O(RBLT7mDrEOJ6GPpKkg}@!E8r*NUs>+nOdYYD|Cd zT5FEE8ayBc=$naIf}s4kBXb7dwfzv~ zq!{xpA`*ZLfdOUD+)8Bm^Jr{;yDz7!c-ZF z=@Y&xE}m}kP0?+7^*2SO>GQrRq8>TI@mrpgDy+-7+?WBUH_+|JgaY>zY)Xq(4S};H~&=B zh1s_K>d`+1Qam^a@(SCmm~ z`l^45Jkz)TQ``&MKrb@A^S@&GR7R!TsrgFHQ$H(ZZI5GAVrHD4#H8f6eIt|7Qbte? z6ogEdff55~!YombVR|=lJN-77lE-!xZlw^$?Ug)AYE07?@F^Xip24rQ6gro#DxkD- z`gsAR=;_*mN^_^56jVAleTI;d-gLw5;o{Tp2`QZh=Uhk&`;4$sE2LEtE}|4PeU*sP z-uZHNqKs9-1cTb`V$+}glHs4eSz5^uGU)lQtWtbBql}U~ z=*;JH(?7^4SxOZYrKV&iC+3wf6cnW<%vB_&g)=?yAMwbTEpC>0}3 zV)9L&qpIW%4#xTK_pvjIPXDK>Bj1x=-}?dn=e7a92>Zp_InE`gj&!l|QlVEQQ? zCB^A)bd>H*Kdq}Y4P1*%PuEkbn*K;nDFhNlpruROll7JEF-~_fR9d$ErJ>R-#_30l zm3&3v{w~PR$x+Big`7F9VWPBR`$ZEaC&uX_W=g@+Gt87srq4A~>YT1_t|U9%)m-U3 z8${>y`rZ7Z(+wluOwfodxRWsPg@?p+ej6n|NHUmsb zaWGDQVXJfk9JbT9*(q5}e{ZK0wB5;GX$j->=MGA85E*Vqr8m=mI4Xrgf+N^TNq2gq zlae+p_fOyIq~wJ-*El~fNOZcKvyvHHKGs1$n- z6d-~8)kVpCx~{8I*!C7zC27X#3*3|fr+;!&nmN74UFj;L@$~tBo{LYf@=&syzSBcV z1(H0rK{8VgOuW?=LIRHPQMbQ)HOXmSjl_( z>R_dk=?WoAveWHClrBvd3{_gPeOstf7UOiqaHZ)Ge?JIU@|dm}p_B!Qu9*=^br8qO zMk@WBE*_;6Ha#y&$!Pk*D5a3;-=dW4rkh49bxz+Otz->t&g7)#C1-$Iaa=J<*4y1; zlmr>4N5m?*Zl4#cq{%q_M4Zx_>09HKx~4lMD9xIFJ3+}|x=f{&YrF`W&50TP+7eoLutWu$4n)??FE@ijEvKZvXnHY&(2b+nJ$s7 zbbb1VY^BcWRXIwP&`F``zjKs&xk1O&EAgm;8LCcn%HU)MU{3{`4F9N(OvRIiO=rO7inT+kF|POB5)jOs_3a>e|jxsFcdM zJ+DYfm2vx&VkJJt>5EI03Z{#cD)~=ODOLIoY2zoBDdj@W z2F580PC1E?P&b?|Zy_NC+Ryl-T*-gBM}?CA^cfXO=ci{>Dy@ga=|X2^(dkB2O8(QE zs+4rMZ>Umo0@q>FKmM91%$=x^l#`eTnyg}&Zc?KZGQG1#Y0`9=S|!KnakWa4(<^F~ zOs21`RjQe;Rj1@Ty`oO3cKWwECFSW-^-7M@W9pTpAcw7X*DHa~HBsBH-k>DRINiEY zY1Q;+jY^%<3!0Strtfc30&gn-uYO~jp3d)5)1%}w-Lh9{9S7tjupEZzAA6N#xAXTYWioEB>{nXF$Y?TuqGdLt z*mUcOO77E}Co0|Do;V2NEs>IJY{lzq;>gg%dl{Qb8n4#o4J#L1Q%Jk+LN-2;n8cyK-o1o)P z%QH(dKbp_S`v2a_}+l$#a#$xxi`|K*OWc zCq{l2p3XT>$rozL^tgFSPDpIA>HFp>-GvD(p05-={o*!e@#$gDw18DNJWt ztOOsJw^^)I1rl|GD%;MwM9G{{7&M`Xe#KqjQl+KSzb{oXovyn~NnyI*GNqlg%L-R`wsNtJPW!3L#;(}gxFf%;|aYSZI3DmhPI zv{A`>`n!!ve$#C?DJ__OZDT z8Fe~QGfFAbkDpPhnC@^^Y3B4>XO-SeKYmW>|McVMm7Jz?T~O)( zdj-08KPNQ>bN~=|DOe7}^z#>#x~4~6R0^EF=Au&Ce8ny|M)m1dmz12Q*IrVpoc{fi zQtb55%Sw*Zr(ag`n*QjrlIe7bD@vPKKAq6TbpHoR9@A$$P;#Gt@w5-4-1L7BlyatL zKU4~te&C^!Da07rM@kE(?|Y=Qe|p_xrLO6mPn5QAKlnt6m2vv0-+yi?Mf{{NlQy6x-UD|s+Z|NcQ~@$}grl~zr6`=q2Y zJ^PcA8R&cf$?3a4DHTlD`K%PYz2URc5=O?v>1R?NN=~=`sx*K4{jW+>rk8wE@|}L@ zo6@T3x!;vmP8a{7ls>)whf=fz@?bUW9BA;o+m|0o=F@e4Dm72v@Kb5m^z2_sQ>Qcj zR(de~(QhRs(5*z0)8+msaWEQ9UuelJJl*<_QtkAef0PbQulcKFC!pb!nFN}7b5uyr zOamQ*ede!{?R2hxNU*^0w)ne98e5pe9PTLP~yq5xDR~bi}{#Dc9;l3$v8e#1w_R z)RK~%R6X!w5e6582!n=uXB5<;LxdBFZL=)6GPcyQUu$RW1-W)>B{r zH?zRa%gnr#)M6cl0*2|{V#-R>^Td?15j*EWHYBElBjcTz@>KAsEH_9HI`6W5y|{7& zq^+eTsk~CZilN{k)8F!}b7KWgW)pwQ|Za({ITshk-UJZC<;BDestGqO2S@{j##M+Vo$_%JS2tRFtKr zo2n>BPVZMyHk^J?MY&26RQ9ug7EXZu1Imrb8L8k^FX5`nsi6D`YNcu`=t4Tp)6c0Y z8%|SGegpOhdroFvHfST8u)6Ys>08v5?@gbqp=>$*tcLQ;>FJuvmfIIDdu+REpqPt{RAK0Q`fIcEDVUFB{@fh16e7u3*EC@x7&&0(0{|4UPJdXBy_ zKRD0M2kmWRo4!I{*>UEnX(1b^lcW( zS<@9Qm6ds5^$qwOq99A<0%$u~ice(v2Gd}k>Hb+4Sf{_WRQ8x|W~Hn-J;6$OH7od* z!RbQQ%2CsEt(7-S{~zWhI^Ebt`Neb@TjfvF`R$aKY~Nz1EXg?ioV{}Vc0C8>UM9#< zOb4Bm&8Po#QqG*7?5u3gYG|ORz%YHGvvM=LA*jd9EBtKuK<)S-7v&^5 zC(u#E3dNPhC8@a#8o{6yatf{$$r+%D3r&XUS6!5&ryIH|FWY{@Re2JmmYF`uUDxTkW(bO$eGwdv_z%Imj_dn+$toW93LSsffiY`)6Jrl0jy zHkkg;S2=TfhM#i8^n-rN65#OIe&0`-iIF23;uP)a3j%EvrgH@-t8X_7PzKK}D=UNh z>)Yc4l`9#i-waYVpDq}z95y{8SUGum;q?mf?T>?%SsACl3{jSy|A!BBo}6l^a@q7b zp~`;KUxzBkPWKE`{tpdV|8QmKE|-Pj%2m^4B9u=`LVE=HDLSCDnL!k^dY%@kd~o}r zNafR@WA~I(VEr>49Q{i zpMEf2Ieoikg0eW%bjKv+JKN=wl`R?hG+dLDbKuLiwx_2k+n|myZb(($!>tjJQCXY` zo+{p6nWp>#wDc=A1vKFJZZ4PD_J#~)Lnfq46t?fpQVs@}0gy&oNWMZ+PAa&zaL!TI zoSvJbJbgNAu5!`zid^No`R6~iGfGVt%v0`~J||B(YWnv)<>k}o=PR$A?pdI$F#X{@ zM&a$X1`6JSHdveKz60v^xjJ4xb1H$l}#C^ zD^)9Rn0~ohdG_@D8s+xs-)od}r>E8`7f!!ktK0@oH`9~rlvBW)-R4#)OHO}Mr))P} zxnB7wXo0Zg^b031b5G}OP*$F9*q}TE(S5tzpge1OUZb+(_6?27rHtFvnw1q85z+xI z%1P5VwOAenr1uQFui zh_o^%4&?$o2M#=O}{l&xnp|rH07k} z$EGQlPq&+{oF)s)CdD8hB<186mw*`1tTO%ZbmeQ)9eB+or`Kz^32Z++L-`To^kuV@ z=S_E=t!xf1gn5vAI@34KR(75KeYSG?^!Pc-55Nkhr_WVZnBFm0*h#1uA@S);Rw$pHZurq$Yx>-k z%4XBAtW?gO?zBqTZ~DYl$`R9Ftx^u1?yy=pb^5Z^%E{BY)+nFbesc||rE`0&vN=Sb z-8yBN>Cx+yv!@?lr`$B%YrV4J^qTd`h11`yS5BKAxKpR&XDJ^Pf+89_lL$CZ;`4sCZ#mphS)S=Ib-^}qsrpb*^Viz zP1il9ym

    Ssd;+93a5_gH&-}?Pd8lYWHvoxrBl=P*DIY& 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�eXI>jPYx=ykfhpUW*9FdI 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 z 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

    A|FEBo((BWG96}{ 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%0DR&)quRX2sm_>37BFN>5+E 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

    BjRH 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�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

    ch!v3r; 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�~3s z6r=3V6B(z2bItUF)el6b-wBT8n1A4TBI62(^YdOLGVTF8f4;%XM8@d- zJued(dzry`e7@V;M8+a$VV#?sT2hpm2#vV;=iVkV-T<3Bf6co@#vA)v-zPGPGtHm- zF%h(&)IBvHbnxkXmrtOY>g6X;yN2g8C?A=9291gA{R~Qx{7T`BqWihNBr=vU!jHh3 z-}N<-QI!L}S7hhcM8>IH8jd;18L7FT9dc3M5*fE3uMLy>p2&C*u3`Vv?}?0kOb{O| z_ysCB5B^GIwA=SP5j4eN^9NLq-}nQ{yWjpKGPcaG{tI&5yuXQzyY@%^11p;PKanwL z{)_*KjDBp8MQGFSXIY8P*I8G^$h9{niE%d5{2xq7j1}_>nUfgJ=C5E*Vl!G~;pzW&>aowi$CAWo4r$~DSLPOE(T$v6=99#zykCtk z3A6y*j6aFdYJMSq661;aRsu({Z#CUMNq-YYO`TRi9B*qCCwtW&!Vmvf|t5_0a|9n^RB*ybFlVv257#GgpCy~S$ zfM))DImskO&FPF=XNk>^lT2bu6Xe~J73i-L9d%}w=^AgkZ)8V;plVTEM{(L2+ zBu2mag-S_`{Zj5lptHb(A?iv~8G;k@GE!5DGV>Vb%PJ=^8qW_@PGVd-|GRP$quhM| z#3V+k`35RUjB8*neWH@YSj!DrXASo6^o?!T#iyU+;$fTLt(wGGGoM2(iO~Vwweus@ zk{El$Ve6qQ^FXOQF%L8Z4N9ktJ5v}%=I6yFF^bGrQ%_>_!O-8Vp2V0ZjH(}O|9m!$ zB*v!sof=7u`qL+>oi&;NRwIeA8{L5EpyN=d_y4Wsn7>jpiE$pxKmJ-tjGdyOq^qNl zl9{Uqx%2^S^7M<_n1!dG-?fW#KDTxf=_fJTVD%v= z4U0~XZL?*cuWXRS7{L<_cAp0LPVnguO*ctQ7l<+9n!nm0i7^k|al&W}L*B15-WA7?cmM8YeNvfJ^`V<|avuQ=rY9AEuy^L(MFS zv2*?gvn0mc`EuqkZ;H>qV4lQiH=o}EBsDz;`D`_XC>xO zv&0dr`z5VFISA$uZR;e)C`j$mZ4Jt_(l$wqGv>dy0cDTtHc5=)V0JaS&*oR#CNcg4 z_b?aQB{6zJ`Z^!%k{BmKOl!AKVtfu3oj$SNMPxp&V-h3p{HYE}jPVc!iLbmEMdtH4 zCNW-?hqU|hlJg5vbrgy#K@3<<1LgYp%uY#+ovNTp8F~^46YSQTV2I)p@FHOFjNn!$ zP|5t%DTz^iKCg2Ude>o zNn$iZcMZ5uubltE2NeDBzDbO;p>2b_l+5H3Q1cF)j^_*bB{8Nz9989)#8|igr(Y6d z6XX1v08sQU2uNb|VKkb4@T860exAT2MoY%|Zb3p96Lj5SEW`X&!JuG05e&+2uY;2qXNW?hF*P|QKRF{6+CTw?obdj&AxVrA z8Ry%FB{AMa_sw)cgIO}u>mS@>ou5!s#K<*2Bs__+5M33x%ru?P9g)PS4okgO5lM_~ z7z!^&Br$G;Dd~z#V%##{J}QYZ3EIxD%u6jwPlfi>K!##zB6w45Rq`chO0V3qbV`HX>wIk5~Ixg z<4H-3ztC!}r-M#K02K!LDewdhc3@XZ5@W#r+bKzmF--F<(m@RY z$&4h%*!krdNsQLuB4_@N3{VTFF*AvAmjpCb=BH#PqZl+jw%kB|erZ+`V<_0W`!8fA zG45xaKOrZHu@zhPov)Rf#5iaE@!TZF#{HgoNsMZY`wQ}u82g##6(unqoqwz-iBV<# z>!Kva5A*L7Co#ItS1L(jOr6fyaNb~g-mF(_^Y@h`G5XHuDNSNL$_h>z^B1ONFiOt< zP@2S;G(Wg3iE;ma;c`$dIDbKH5~IlUk5`SQ=AW-kVpNhDN{D~sv%Nx!7$>((VP zhRtuOOJdwL-@ZPHarOMy^+}9N_D^U?0v$s(uPKSK5+jy0nv)o-<}YqeVzionuNhRj ze``)+oDEqJ2ksu_<(FkbTgaO@WuZ}dyd{ZIV*i7dBt}O@DNu|mfCum@!HRVhbTdo9 zNpZU2W&xS`k!|1-D*$r6C?vTu%r|^!&L};9cUux;1fod}Zmbli7Jw}Tm(XJK9os=A z^t|>Y#!6vm)RiPwWWolg=IeAMF(&Nq?MPxQWz+$=1=L7`j@y9J2WZS6G&>SdlwXih znFG=a&925>NsNWCa$!wZ5~Kh8KV3fm^rzk5;=Ns7|RzrAx!L%es!}*J*B{5FeZ#+E- z)Wgc30g7Qro?JX5iLqn8&P-53>z|p#IDNkQtRzM+DagoSWkE(}4k(O4%iUa3i@>?C zcUBT(;(W07=@*)Avd$Nnoy6!S932c*4LXT8KQjfiX^1hZR(O8h>?Fp@`9EeSF+SRV zdrlIg4~c}bvkyh8Jn7)#I-<8(&>Vd?ps<|i>W?>AeJ#5jjh9+axw6Tv5Ya&a** z2Uiv;f#wTf3-my}EA9F6i$IwucTo~!*z}G6A1cj%wkV0wVfw*FOVQ~E-fZTbUYm1( zXMX77B*w`3>lcGd*x<^d%)APCmr35?hQWN5B}t5`^SzdU+6hHVl0dg4L!toEq1xWX zF`s8?5~HCAERCU5_Xn;xFiOqOTbjhED^!q}my(*8r%;etkXj7Bm}UNkrJ$nV>e3{} zf9SoP$IFr!JEl)OD5x@j!gA0M#**bpj5hNhE>B|A1h2@RFWa5X$Ti<#MH1ul`5G&e z7&pz&-RsIIHUHbnB*upM<*Skyz0t#R{^eDmo~X`hkZ(d(gPL$}S0^!sg9>zNZ z)LdA}KRqBpR%Cz9nk2>#jQeBPfxCsd>ysE0xIkk(koMJd!JG46(G9bc0&@QE#ywE>4LAlCFalA2`Y>;n(lC>TXcTTt|UhL`4?a1GK$a7iI8RFn16a#5~Cw8xSi;jmsp~w zpr$ZiaYHMk@_f79NsJrjJHB>f6rJBG;?2l2UtmuXV++LmgL{$~w?R(wf}ExXT4j)5 zS^^C@Xz?*~ZxW*yBqP7vo5Xlc7?v=Q3ZLomkKLr_f7qAAC=4z`_H*tBm6_0jthl5y zCm&Xj?Te-qv(92LrIKfVBPcA9ZF(M1Y0>>kf&dIzQN%n z#_LF@tj-rclEk#OOG``6#F;1I6n6=SPzmd*+uMOJdZX zzu;IBPGS^b6at^u2r6zJ6-p8zhm1WtlLWd+{%jJX=zh1e zNuV2z&Yw$S)SUnG94J%Bod@+?R-8{_)S7?!JSe^XKA*&x58jb5zu-a=<6MrM{HoNv z^i+oV;uk^VCcPJv7)>Doa^hkVV+J@t=9^tgV$=}@`HsmcKd~sqTA{eKpdh~pv@)df z5@?KN<)tJ>Nyy=Y^WRQ3OWpI{;8`V zw|=>r#JEm2+9fj=yqBdUF)6=DPXV;1AtW)WC>6Xn`QSCsxX+JkNsPAh&8{agx=;W3 zqf%_T4YvTt{5jW?7(dPLzmddf1RYv}uD%NanUo50Nf!{-dX$4sO7+ zB*s`+)x7mt65|Q<5)M){?tGra*fTwFJG1)q0?An%`%7OWG0HJbS5SE*H~+#5(3r}Z zSD>K;k=IF#kr+l8F6Wb)KjSs1`VD=P#8}P@8qqEk>y@7W`b`pJ0L*^px1iCM18+fr zx#S%vk|f`QYPQMmLAmPc`y|HD`Pv_n7>~{W^dX7SLK+%j#U+WEd5{Q81}zW=6+`nq zJ|;1G?VtQHiP4F1{h3|=6!|N7@7Mh_b?|(sYKJ6c9l(*sWDb1)jsm;V83-4rt?Gy2Xy$ehfWHD8A% znepCyZq{Vba0o1j8d;MWz2~20O=dKj$Ck|4G2LFVR(Ad}wq!=b`8U{-8GGlau_rUO z&VR$6%=mZyD~@Ew2-u3Oi{Gn-=f`j+Gjh&P<4k7kpZ|?BnNelFG*>d?!u@->k{PEn zP7gGHBtO02L?`R~N}goK-1*OWk{K(ZDQSA+hU=p9Yk89yAI(qT136<2Uozu!VTEGQ zMqUL5$bfc!4k%Bq9(s#W zVE$s!WJYU94u2w=%$Nm9#vx+Kj9svSH^FZ?jH2^@izPFf&NmcKW|W^FD4xu?bw0ZU zC>Zy?$$2{`p3d$&72kji%{Wr|#mPFD#YJ zs3II40y?xLFB3EqrweI`&i9c@W>g0|Yx=>WSf%;1rIH!Vr!RcXBs2fLR5D`+XOlCBnudI~Js53u6DVfo8|170sMjptBAQ!lV3CUMT%bdS)Ef=E* zf1*N3VmjzD){?~ZVm*fWj4H{Dt3f9t%r_LRWE7cyL?xMV$NXB=WX7rUh1HT7ji+yP z*N~l`qL$34K0R=AsL1>UYRQbk^S7uaGv?1%QBP(poJ<|h!P7s^_ z-z*taT$v{`ra|@|a9boZMsOG!fYw_3mQFwTfKPaSg9RwQ&RQfhO0gP(%k_5_$&7xQ z;5`T$u&WEeCy|FFW`Y(jL2E-;^JsprRWhTrNOFEzYEels$|~;pvn-Ptm(O>yN@jHA zKvA!b+|oN>mCQI9URX|lIKx+Xet~r|<8%%UH&CNTlVQG~O)}$c-jvkD6ouk~%)FGG zREGJ#Z9v|eZJW%PGS4oVaXrF@opzvr0Hv(?>h{Tuh2T6hf1Z6ZV>K_V-T?K-80Kp_ zfa2NT0hHgt>M#CiWfYme#37k+;(Rm5WX7=ly^hI@5sdSnIVCf?Kw`(hIhoNFVrI2- zGNTNm@$|Y=JH$Yz0d8_mW{iL=KoW3CX52RaxJxplyaZ_02V`MLVopw_jshqk^Fb}L zd9KNfCi6{QLCGw~HJLGN{$bZ-#_RKEyCpL&o^S7-%xE#c!abRB@pQ*OixuVv{0e7e zneX5MQaIfsnK5YoD-Tev68B7IRD={#cAm+MQmRO6Z%Q&!6_RpFQ`0hwK__@2$?R|R zOlJHJX+%zcqxg<<{u=LOMyvVHy^|SV&A;RWD{SUN!bI3Nnb8|!Ns2G1N;>bG%(!%Z zsb4Z<801(akPm|rlVL~bfD+UGXMV|y4vh2F13>N!2>_K4j{=ezC(JJnOopuwcARgZ zm;<_4J2071ZT`!^WX50Mr6KeAfsM8RyT)NoLI5 z&z76axRGi9j{IasM#lNO3X&N$=07e-X7rk`R|qOlI|`E-6+kUsQ0=;ZV_`DmQbzHR ze1*)s3TE^NW)i&Df!LTu)~V@fV+eq!?5n|0zyp)Ss_YlFVo)8j=s% zN1>2ZsgRtXS6G@_Tmm}mt+6DT(RTj+l4Qox`KG0yP^c_TX1uiDr!1L~l@W9@Tv2Ln zep#xHLSpgs#0}}f^NY%p8RNM^@)eRxLEA>s<~vq^%C}GD$&5ntSt~%%qFIs5=sG{Y z0#wD!u1IFon}4bT)QZxtOlEYOUsegqk8>(P1@*_uWY9t-mg;0i6;9aUt0B{Ujy_hN zA6A{rC^$c(8k9j6RwpyY&u6RwWg?53WJb&RMKz#=G_wX&+8(J%W=xu|UYiWMN5CyH zCpkZ_2sFW;U7O4pFn>>NGH73pZzd=x=fAE6HB^?@B{RxNh2$&bWTt_R$jetKO3W-y z)l=}u&rbn`%fmWQELhirLb13$nK45}Be=9ET~CvtBwryd5p-MyWHEoDLQZCSBIuk3 zkT#}D3n-2#e(g)Pa97NFh_WS#8emSo0t(;pspm7c%0HJMRa3^sAZ5R$I|+VZ84Sd?4L zF#lyMsE+n-OJ+PaU#K0F^ft67Gd|frwIdmHJm8#8P;v6PGnvtMzGGK1W61nzUCE3Q z^WS$RGwzzdsymr+jaW#&LUBocft~`$=%UoL{GwctkMetx8Q;v0=>^qiHNDAeYpg_1X6O^?zW+gMK zFz)xAoy@4tIQ?RrhVcB3Imw{88b2S9O^$OxF}Qs$D8YW1o6Pu+Q$@v4$I!w+k753| zdC82A=ii#2%&5DcV?i=w7~}l-g`jG{d{Hvvbnr=R`(G|f2HneYX$dIBd|Lu)&u=^; z$S6Nwcv&)|KPR}WTwI!*G5?|(8>8_2hGn3p!|r9tjEflO$E^S*wzVsg8Pn#AtW0LC z(}1N{CeS{t6mWcImQ*SvC+6g&rYJBZ=aeR;<>!|$%-_2bq?Kn?GNbl>i&e>t8I1E6 zu1;q3+W%&CGUz^sy!VqBrRS%u1*I+Bb;*ny!JRO+^~sDE=3if*%-A+RZUd;6{%6$>}F zfLh1%t=H+z-?}xKarOMfZJ@rv!)?io3+Fd)2N`s2dop9$e%~F*pmkB1J3;02vYp9{ z3iFTeOlGWy>}N^bmCSfzzSiz!#+%bOXcQUEH`|lUD7Qa!Pcmp*P1D|FM*sPj_JWet z|GmkK1^Wy3B{NQ8oX>h7nXza7qyx!}CHvVAf{SC$L&=Qx(?6EViA~?2ugf_<<4`i= zRQRe|w!_JcYr$b~`*1R&>VC!}$&4{f^W%;sGe*tdc`TW6$MlJ-B}L}99ZzOlx?kr+ zGUGF*`NF3`MVHrUP@Ch<>10L;Zg4w6p*SPIfMGx5nPkR^kOjlL&VusJ3>N^H(2Gj2mj{W%ZH+JP59K3#YrnbA@VR6m0UV{&pT zGeB4CCMJV6kbk<6%;-Mfad!@*@OPgWX6;87hFna zT(sZ$ax$Yl)BNPC$&54R|G5fkpzgf}YC`<(&WTPBJ4mr2dz?3u+)ZYDp;D5Vo0ykUn#ce> zS0gd6L>GKbRa$;&QEp~VW@-_`{DynUjGFUT-AiV)oL+A=Rcijfd&!J1=0Cp=YAyvm zNM@V>>KVYg5q};eGjf5}b863j;1tftHs9hQsH|W9Fqv^Jmj>iS4MRPJ>4Lkii0m(U zl+38bIDh`*WX8VvdQU(K=RN@yCfA-MGbX^&-*iLE2a@w6o+dMHn9unPRF^D$mdyBc z{>1Z>7)9pKe-5g*em+lTG=el_4PSuTSIIAu8NUmbB<3dNmli3M=NDyz_Cqnu&wB~# z8iU47=1+K;%(xKTtle+^Dw&ZR(rBEY`#PD?N(a%n1)GqW2Z}3DV1pAETny4Dzy2DO zx4qsZGd`T|p#NQJzS~<+kv{QlGGpU>;djZ5cOV&->pduu=e!41mLJ}ODhT-x$&Ayc zufKFgZ2p-K$&B*gTqgW6nX#PFaQ^#w9E_s#71H?_x#q9_n9P{GpZ`-b<1>ua&(j@m z7|6|6`I5|7CxyDkIV3T+6ttZSnC`rvNfQ;`Tv0&Y4i`2 z80Y>2)xTW-lNn>dnPGnJ|71qb>468#h3D`8ZN-pFmnpyV$KrK{cedx*$nd!GN&*a%>Trk!WhG$;Q{UFMX;nWF5z}cEXoG8ILcBP z=5w;9Fs9EhWKCg&?E2Wvn!>2Q|1oO{qXFZ75%v_u&y4dOi(DDy=c{w3Fv`q#;Y?xF zpMP)@E2GZ*1)M32ujV%%&S6xYzkw@-QA;Q~Brz`$bUU230&H029ajpY(R@Yj6vp=X zE4fn`b?0B_PGS7b1-g?pw;;bXFJ=D5OdCeg`77m08F}Xa;{kctnm2_pbpAx%6vnXm zFL+ZJO;E;}H2G2(rRTfyr7$MUU&fch*gM~ZKZVg@ekp$nV+~Vu!2Ab%y^JdRB?M9! zKZ3?Veo4(&5lUffp8jzCHSPHyE_5?;%)c#^!YDs~y)ei(TEZ!eEns%wd`6KJ##{66 zh@>#O>{k>`VPt2Ve$li;a=x=z3gZs=rkVY$;whkx7f7Ad`~-;|^qZGyk^B)?eFbdCqc*v4bcs_@53ZwG$1HzxB=erxHFcu(IM;|m!VRTe-HZ<`t zH1M}%C`ruA%gkd)2OVeyW+y8of-cE*ntp!XLy7qgCMk@2=l?TFVboIw&zV4N2cKID zUj7f7MT7TF<_DRAQZuN#EjItHDX7TcF-u{LheTqeTj1iWu0s5YRSkg_6v?WN=q2mH|?IU$jVJG@cIjyM$#5qu%^PsWe8p z`KgvEjHl-tTBR_~o`2RVg)vhEYzV~7C5btikoj64>lDT>pot{y`MEYJj5p@H*@9Bp zEZY>uEA#X1QWzWef3!q}CHh-=s zD5sQqr7&jAf8dqEXgpuU8|1?b?-a)D`B%JC7@fg2{(M;zI!kV)Zz?X@EHdRsi`?&H4NpMIVlRssX3`dl??Okf>Rie%x4Y( z<#~&c6h`m)Eg>n4OXh2arZ8>?k2FnRkhz6@dadPAuKhA$DU4l=`% z5#i*Fv>B44?)-2uN0fY_?l@xUqTAwV(9eB{GAD)^7nfJsFb%!Okosf zl!q9nP?A_ssa}+5rI4JarvOg11(~3+MDX@?{r!uRKo#SBd96-Hx%sgwEsPxdeGhZV$g;7@^IwY|mvk0-)Wqx`psFc~3n!@Nd|8FX&5Z{^xN)w#vDU3Dq+tO1Q zSIpPXNMSrU|6@i9140^a+WS_EqXGqq0*N7tQ~h zox*r`{_Px4(aV>c!uVkR``i@9y7_r|DUAK||K)+yEX)VF`bB;Uqs4y3f)qv%#_1O` zm8C>{GxJi5KnFA>7AY`*2DCwy)vUr4#)}%mJN1ADigWTyGEhY3H`ao3)5h8qMyL5- zYEz(>@_{Fq=6ltFN?XR>B1Vb%jddxE|K>N;r!bbx|5~5IXbbh&e5(dfKsGj{faZ4^ zQW$l?EpjeU`>zD#;3Y6QC&JH zy>3uB26EK?^6nHy4aWTodQw0mzfXEo7^lv!>Pulf&H+8!B4ql)pG~6k&&=1E zkiu9vzfnkoQGfo~2`P-`kQ4Ohb58^%LeN04`25g`DU4$5C7@(o!Z5#NBB&gGF)@YF ze7?e@6vjAE4`u(dNhyqT8Rxr9Nnxy*zZXn4_M|eZ%#WIy!l=Lk>V(g4n3}@)Vt(c{ zQ1caZK8x@)M>CH33#X+p{+&O6Iw*v1PETP}0CgTE<_pgNwVujmfIPi@2B;>rnVG^E zHGld{P`SE)Ca4qz)vcoQBW8h0SMVm?`IBd*Fn(4pNh~VJ&toV~OiIkjXDCiAOU%p6 z$w_1=&de!GEdosuFw9>!JB4wFB&b)cP?A`bn4X`PsH5Om1X@T^l%2sazj00qTrTauV}W6iO0HN)n6mle0l3AZP+ta=L){ zQd^&u?D}E(}2{V8G>R5#%K5V@p#QP5Glk z5{rsUQTHUxS6i0CcyRxVWhso2jPspVq%hhFA?NDiQqbyU@PzXGRVz{$>tu2hb8-{Y z8Hx*1lS@E_QBG=ZX%Ry~eo9s*!+ejGDUAE(8*1<~s?FD3mBKg|>e~5+E!m6`^Ixq> zVVr~Rj``D9r!Y=M7lrJYIxDx|M|buB2(`mF=CflJq=fUXW+m%r)uL8TZ$1 zNC7Rf*tQYWY-`;FYQ3M|1ga-0Hm5Lpf!lQZPizL2u!4z2>G?SfpaYvgeY?C=hWQV+ zq%f8tnw<$-Qy7)`!11X7+BFK=^D&<>T%J*6y0)MO=ll&@Qy5o*jhr99ErsztTS#I_ zViCjquTtXu*%x0G<9YSzKg( z@QjI!LiGjh*gHNBXTYktq+ z6h=uoXA4l1-_VdDB@^n%WKhZ|Day>rOlFvW{4l7y25M7JU$9bV^P#!7C z*HzF~NX&)o5)V9*!Z-!g*)D>Mr+|iqrZ1SgQ)d3EBPonx^Ri<$f!&yO00qmIL%)$A%jtT`frc( zobzjrfdUHb&-oyi7;xu-lxBh}+W95NQy7oI?O>T7bOO{wZ8(v_C<<1sKYxJ{Go#e} z`zKNu>xIGg73Jq;CWG2Zm7pP_`HkCR7!~JFIf*0>@_ZTSR&`K+>tn?oz4;63Di}HD z$DINVeSA8V!gytBql&`(=chsKmb5dV@@eUr6vilMgKzrB3*55P8-zZy%)cNk%gDB0 z?`#U=ea88G=TjK#=l7il<-7amQyAyYue|{3dfow%;PNx+B50sx_r(;(g84d^QW!Po zhg|}-*;ZXjVU%SCU1jKa`;_qfdzV0A`12B|9kS(e3gemmjaO0_y%^zHAhC>%QDpv$ zt0{~MC}SC-*HRc&gpr!Si3*^KBRzHg1JyQ0vH2<2QW%A}t5TDS5*5nxbJ7^*H(vvF zJeFMp^#a(hgW8E}uY)Sh2iH>=edg=lNMU?DU+^ZVojm%QsUP-+~v0&3}*> z$tW`a)~ytz13wCHr!YVEbRM^P80*z$kzXG*X=e$Z`G}?du z6{yF+0UM5sPBIDZ3?5+e1UfMu*iTT4 z$Nm>6FxLM9Rq-ExftocTzf%~K_HX~4!YIKw|H7XX#z;sPJnU}@W61o~e?bBE^KS~{ z+4;x+r7(KT7xKV?;F$mPe+uJu$CA{XoRY+xR0bFWynY0U z3u>n1q!uw$rh?8F%SlZyhBAvY67#Z)8Rj!HrZR4vzm+kS(SH6{##F}j^OrKEGOB>` z-u{nFsf^P_Ebh6@HHLF*;5%e%#YwmWz?U(dgdkB`Aa!c8LQ_ja;7q#nE#41m2ubnrCh0u z0rS6cr7{{!51g(jJl~2tmC|f<@}A@sf;D_)p$}F^`;Bv9@m;*&y&ii#uz=n ze?=gp#Qgm{AcGaNrb_MSGeuGvbyz^7@$+Ykq%wwUfKz#JXrPT#)|pt#8Vk7=l@SGW)z!mCy~my zPb~>_1|7H=oDbSq0KJQ>I5DS07c#(*oKc#@FkekFl`(OChh!>a{`?=3sf@coiBy07 zBPmei7)z%zrhxYgmL!&z$beQj{n##C)KC4GRDuh)k$Uao8P08%D8gA znQkiM{QcK-QyIM(=PT)_GB(U#te?slDhBFnF*#=>7Nw_JDMQnb}s~kq|`6h;-ys*JAl`&_& ztWhds7Nha>!o|yk=g%=pWvtvUW}M1s%sBm{ov7IS1d~+Q#@_=bsf-JtAqn1eKEK{H zm9cX^r&%ha*YpLu|BKJhHcMqZ2kD2|o2N3Gi-We>GKC~ofL7h-DrDvs!ImfD(;d2FIp$khq%t}~PWyzNE>@CQkqTPRILRWF z@hj9x^ZPA9S(e2rmC+b-hTZfF|M#-b@2t0GV6>$~bNQB*#?7 zi21J_QyC5B%Q&SnZr^{!DV6aoE1!F5UO|32XyC3SHIZTeMvqiRex~^cy;2!#=i7UO ziqLxRR7NFuqhpnKDq}R9$L9k|rwe^j8AawN`=m13&Ihr(;qs=wsf_AyUaD^@V;!9L z21QQBFO{(jr5R%w*3Bq3ec$459P{`3r82&iMQzdKCg$WQ6qY7}F7yMf>Nw?}%IFO@ zTrMD$aUqPi|3pA4<3B{h>3mQsqu%^~L8*-E=C2J-Wi$b$?D?D_sf-%?jY3ixSs3@5 zho&;}GR}7mOJ&U7zcDP8aU!JdSCg=?u`hHalT<%Dx>fG`m|KWsQI_jQW-bw?@mu;T*3$*6rTQ3p;LxC zr8GIaSdRg8vfuu=%v8qtjPw6xr7~Wce=$3i(PzF~PAX$DIA`sjo|DSx!Z`m_CDotffoxh?KREeG~O=a}jFHx2XT3M1>4yt2!m!~pr+@D*K$~cvAK66zn z<4sW0dwSmCx7^e3|6^jC&sUwwm_5I$I+allbR3oN{5937jLo2EV+S9cU&1gyz9yAX zeSUjQDx)i;J$9)kl`(R@PA$kSyJ}Mzv*xSTr7|Y$Z>vjX)L`V&@X7~`GgfLc%->a? z%D6%-+TT@Ap(M39HAhDQbQpgLxFVb`=o}OW>UV^Otw0GTxjI8oaUvZS)YH zf2k*x(Ph7QZz`h}^L(cXsf?@UznuVz{sR+J8Q1R5o0Q6^#JGRr_@nJ92>b)Rv?smrQSv?^oKtXJ#s+ z1ET;;Fuy1hIxMq^Q+B@g>{Q0a`Dk$+sf_0s=g(Y_%9uHyd0{H!viYkPrZV=;w_F4Y zwW*6z8QtdJS(M6{FyD4@D&yV#(o0f7qmJ=QQyFFE*DM7UoNJeYvKGfOP%ENhSt_Fg zI0onMTLwy;TFX-zb-=EvTb{}&1CDD$%^foHcP$55AhsfvamM`hD^eM+&Tn0r%D547 zbZkITYI+{{V$y=5{G80R%w#==`GKoIO~k%csf?57E3Hmt+%o_AYEVN(V-3ju<~6B| z3+Jn@O=X-ofBRZcOS54eNcQ5oRK~*j&g)Yd^@SmWfuMWz5)JhrSDt}OkLeGLr?AZ5 zzCM-lltw{jUUEh%LrG>yCPQ&zW^QItCPQ#xX=YJTYK}r~eqMGebXUgu4XKPtV4qoT zOl5pAUujb+V=4Gh!1)_Cr7}i<0$Xdp@#a)UHm3bnTT?;nu+DD-m6i8htr$h;Z`uxW zn92@N=J(u@$|%bYY8h%ckdq*mx9XQKQ-&l1}V*c|Tsf=cj&Lw0#&~j%g zqt1*g&&S>}81Pi5qtKWS$wV;!i11+DM^FJ_0H_NlTfm2m-RwZHQG7rRm! z|IdH18&ph-?MY?S08cbdf2FpQYkusWRK|k+=k}z6hWj=5r81h&PuvGeF!@Q+jH2@w z>`Mi0&)c8M_>0Z{9+^FS)2^!%jNRjS9%j ze|<2Oar^wmhd?FL=|iAuk@GO9d<{Dcs!*pLPGxkSf9o(PJpLa}W%NXEmduYl0xG&T zA4z4*m@jiQ6?Cz@2xzGJ@X=Jp*8;^QnR(fu^GTBuQ_?}Jm<}8Rm1xn^d#!aP<})2n zWmMj;c084F2IKnuCsG+1_a8W!$|%XY|JJ!w#se&{N^yFCn1;yw?Uz#-+d++C?fKbP zQW>xBcfOj+n8-MP=`~Q9{;_|d+x)4khrqC32N0oSi!_7F@M?3R7PF!M%n2JKb_d-zrUHvD88TlRw`ovBP`?!L3jHW z-%e#Tf{M&vdpngeaQ^?>sf@SKEuGHzb&A}4j=QOh*)Y|R@@n$kR7O|m0+N4sQyD!l zbQYLpE6ksrrpw4Zzv*5oV{OE_NjE?)~J_I#T=jS|2Wz?BJ^BE}h76w|&?tl0!6?D@H zq%52-@gkKm38p)+qEmYQ+!v{ga~Y$jADAC2Jzf8LAlv-dm#K^<`zO6jW&Fo7f8x7T zM$!4p-=#8Y?!Wjhl`)THzQgBKMrXD}g_6{q)ai=o zC{3y_pHtCp%F_6f${50j+_K86oW9_zqU`*YUs4&nQFJ?gO=V0K(QwNwN=+=vE!Jd6 zR4C3#1x@Wt5s;Xca3xf65O~4Y%t@ zDx>SXpQ(&_j3)CFgIgFS=68U2`@jE8Wt3!`FZer^@d-3k=KuYj%D4)~S^p=Mv2DKD z-&DpB#^~wu)^dx@U-UN>e(2G3-*2B}roZ-|DlmOd;X|J3>ltUV&QJT7%9sK(;L^WT z#EDQ9|DipaxdLg7r{>;HW2~7U!I;LlbpAiaG{%|pXE3EPPM)vBoW__ve+F|JQsM#>4X;u%|H^O)t!e5}U8d zk;Z5}Kb0emv2^}zjx2H3NDo)=gIGJO< zF;^O6`g}tZ(0%UfxY8H{=W(Yoo<>ij(-Rlmk(+)Y>?QmB19Q9>Ip%Znq%pn#*Ew++ zIui4FdD9qkA+=KjZyMubaPhidlP`^tixE<^TJonc{sy-U=UWM+F}lug5J+Q8nEy~9 zjZqmq)H+{6FpW`fzPn%=qt$$c02fBJ`6~p|7{!%f>q9^TwE5|&d7#9XQ(6QWtMxDn zNoAP-6r^eT$BH{T^YahIGIGuj6-r~w09#={|F2LQqtJW-;WS2B@S-{K>D%2c`KD)_ zisql6Bn%2FkW*yle-Tb&6q|lASX^OxfPN;+e0`BLM(O$9B592J;K6>&`3qjPF!Ibl zAd<#-0JOORyeg_wG!1lXhHoaAw^=leQD?g0bq>+_Uq#axJ?Gntr7^w)w`9Sd6aft~ zm4YwI0IiRKZmtg(Ph+g+hIPO4a~0+{3V;@(fR>La?^lpWV`OK9TWBDe2D%3YYGJG- z$dQ$jX^bZGL9+y#_Jh{2=rB${xF}k5eqMwuBm4YS(rJtr#X-hHCY4ij@=J>HlQSR( zkK}vWGm6h&EtAGr22HrrH!@!lnQto#N}{`D(-;f5Atea-xaIj5J;fNs=KIQ}G1~6$ zmP=#g!B~F+-kc^m|Db#tW6OLug*3+X^S>#8Qu-XlG{)xn3QB2=q4Ud>(imOl?^a4< zygh%qavG!k{_DzVjE5nEwue;H7`x~DsiiR<*)Ob~#`u_V{&$Tu#`5|3nrVyy^ABjI zF-Fdp(n@1I1KBzMMk|dmX1=F(8l%JfF6}hN4fCya(io>PhRo;JO=Fap|5_)F@yq-N zx@n9L<{#8cV?4-cHvK}yX_5Ie^wStS=PMbcF>25EGe~2+IA6gqjWKh6mth*??D=X& zX^i3X>x@7ta;H%mW5|3y<21$=*fjVo<1|K-{pXF-7?~O8Up7f&Oq*|In#Nc*f1_y{ zW5s+evoyxN`(K!)F`6>Ym$Lx*Xq818gVSlo6~#2u45Xb`TVPn zX^igkWu4L({rBfOrGXYn7dWRe#?C+IoW|(R0b1CX4qDtG?~=xNa{fz~G{(mL*{*4z z+h9xF(ir3CUvW!g44SX*p2ldnKhiyoQJ-;sr$-uN`u>j|pqQTj&l41!;$CTt0Z2=f z<`;XVF=``Urn-N%R~n-ZBaa67>SXXH-;(LN%il}v|LYAZ&!*p>tSq_zi*Fj^561m( z{nHpvGS1%~n8vtZene0jW8eJeL1~PK7>(!4u25x^ntwDnjZtI%yWlj&CG#hTfYQy4 zkTgcG`O2YbjI-wN3r%Cpo39%NN*_zZ(ior3?+H%>-AxgZ2EJrOaA%wN{+Ng~Mq|eP z6C%?XgPEi~^YT)Q6hcyS3vyB!d^1y0a#CTu`HV4XjA!Sck4a;!hmK~0m6d>c&GE5m zjEVCP#->3}cbmU1E{(BazJ7cfF9~Uk zQ|EUjf}B^Fl*TxHKWB0pV-Dl|vXnH&l=-()K#D|D(-;>)O3}TkX^ivd$EKw*s&YdU z2WTtCe8b92M&bDj)6y8#V9D@&8mRurOiyEsf=qfpO$X&o<%~4Y2^&i@(-;>{PRx;- zpO}@#n8Fm2G5w>KobdeHS!s-q=kL!>V-%hKFtJ>C{)_B1M!xyqv(p&c=3h|q2VH@a z0}5)k+%!ht>7a|T=a=WEF{;j=n+qyQcjtm~OK)Bp<3GsVA)wIAF9NNO0}cGoUyz^1 zs4)Lvei~!&e$j$7MnlH=?uBWLN9OYsr7_wdZ|)2!N@H}IKfMT49sDRtV+@5f537pP z7}e)5Do$gZINzisjj?h5wvsf)J^PDG(-`M4LMOxbmZvfD&vz|PV+=$Ru|s0>&u2^X zXXKl2Uy;TbjU>)K|3pO^qb)}?=mZQk1-JPLX`rO7R++{a4jOCUzn~ISdCgy41*%5x zR)GqYzG@I@Uz5f-Z~ncSG)9a4;(Ur4=BLzw3X1u4po-kMK8>+%|EBsh z#$v|#YK>`(ALffUfy%CorZh&=`SY4UC4_i0s2nS7PGjtt|EoET(Q>~@OB(3NpauV3 z8Kvh(wx%)K&!5?v#`t7^U0WKX0^|Pq?O^$p9chdc=38~9F`k>x*#)Xi{kzf_>*t^E z0+j;n-JnF-(G3ceTit1lYV#R;(ijWp7x$zwnt{9Ls`JnHfRc-$UxVm;``$Fhm5j#I z18NtDfH}PLx%<)>ZNT;Re&4<{(D?1l{xn9T`GScOjN;SRuPPLn|G6LJgPaMV3~_Ek z8l(Swxru3v{lcI{K;S{z)V##Z9PqA;`8rRf8D-|*n+OWM{z++!I`j8TN@FaTuR9sk z_Lw?3jnNHUMect%IgK%ealYGBP>SfBn#LG4|H;%eMuYvL(?9_^{oo%t)%okDr!lJS zzd9Y1q33hX1f@~GnQ4s1iXo|a`FRS(iRBE8A*p%E84S!23O>L&f5}WxYvaSV6p8r{ zW`Y7KaaJ0m`25OQX^gI*NT2_3RvKg6e23YfGAN*{nbBrG_nb7w`}1GVNn=b$Y?X+{bqPGdYhfA$iPProezG%DVrRTRUO=HZT|8;2^ zV=}l)+^{SSx@cnlg=J}sJ@aFir!gAOpSV1Yu>c&1^VwIVG5*}oxH1jYuS#A8N*9k; zr7@~PPnVuAusV%#CU|^*{*l$76vna!q^4yJC}Hke11d~H)`IFw&vj{x%jbVw2MVa7 z^&mB$)~7K(pMPsZ8lxZdf;#<;pcVeK6m7FQ`Phx;Kq+;r{Y{X`n&0L?K^B@#+6OtU2Z%-JizjIG_DM8sh@c z42_OLL5`k|LP}y$c3x^RXwA<4eFwl<{?b8E_EI?nY9Z7dN@HBRU+XY9MaCTgH3W_x z0of9MG!1%j@%%$a(->ESgJ6E~u{6d9QfZ*eh1BwktQFFV67#YZN>cMub5rw5iW&Cj zA5UYHXPn=EB8^dF|Be%BpfyB7r_vaI%;!E0YUpH~2BnmM-Xcb&{h%4R5XSkeXF*k@ z-q|!pAIPC)^QWIpV{}1p$IpLrHjQ!5{FUcG6{OsG5c~FdP$y#k1yG@8cQK7IY5u~C zpm1cr1Zq>-TuNh{#S5N<2}vx^0~hU2FQqY_pTG5T8soeDORl6b$}-MBbQPpM@md_xpd|OJfXSobUG_jd2aS zM#u!0ZN-T!0;RGKP#{4pkQ4umP?>zmW@(JPjb}vDdg#N2EM!)GB zS?q=9+spAXa?hXh3e*y{cnyl!*4Jr_Q^CdZe1$h@jO*r~f0M@825v~skA9oRcpY-e zgT=cv#$QPLE^ObYF{UH<``5ouW3*?S|NaB0W$61cjWH0pbC6dI*}G$?r@$~hQ6g4+ z{`rq-&{IX`|M>{&#et;e|NR8Y`L3TqA>8#DRP!DEoW^)srzAD61hiKiG}4z>k_aw@ zOCa-0poxCR5|9GW5Hjezqyt|-A$tD{D1P0(g8B=mzk+&!zrLn1%Fmbjmd5yEKJ#}_ zThH%1sHb-1dm7`>`CUKK7>%d@_dlsH|K1N!t^NH+8lw-&*a7G!X}SG*KS9-{CTPw! zwWv}dIk6Q2D$n9&83g*NwP}Ak*FHnQn^EW6l-}_&}C_R7c z?=;3WD7NJNNn^}~jMjYk19G?g-!w+?=@SnMDu9O$S?9<6O=Gl&t=0<^PiAzO|M+hj zV-i9W$NZ#!X^i18H3$EtF$PLRhot6}Bqo>Ul;(mK6{V$ux{RO}=tD1iMzQ&SgR&X9 z=llLoV>FxI_?S^*{+$1yn&tfeG{*IF>(d!U!Nu&{HR+6Ib04QOTALts{y^q}t7T9u zA`QfV_Tqsp%}IrHOTkMa=VvpfGftb&#FWmMFh7|oozYMRq>m}2C=;}J7qq{uBoVaR z45DZLW~Ow;y!lGZ>5LuoS2L$GHh{+nF2+p|pYO(!4jaMlVM%Ay+P|G89n{!4$ePYr zG~a|RoiPqPvO9k-TRNlQ{PS$-jOXXiXHREToql0ct?c|q?CFe((*=z0D9u;nNN03l zG@PHfw2V<bWmFbCp5@qL~;Id{En?H*) zov|BIglKc6Gj7~}mn)somT|r`PdX#UDbLdb6C=gv@8d~loIO8^H=QwH{%YQIM#cGO zdD9suLk>0s4TR-^dIr-!URWqRznL$carJzC{&dF3`TtnV871Z~2$_8 zSexOvbULHed?uN6#`gJLGU<%1^95wn8Sl)0E1S-!F<(qBozaj*!zsUHx*)TG$ovGk zbjDebR=m1=I^)FYjsl#b^Y?G`W@MXxMLwM|5jxN?-&P@=u?tp07GxCV7iT7ds_Vux z8^z{-P)KKV!YJ1t-eVM=?vOr}dw!x~I^*K`tV-#OkLJHnN@v^!sir_{1!B}KjHVx4 zwN`unZRK=E&;6<@>7eV`qC--PQj@^z^pZ16iV~ASi}pbFftET>59mJ1F+E|!L;m@P zRnr;6MM0_yQu9EoUJ{dwDj~~W=7a9~`9I%KJ)QCWd_|3PMw|I@8tIHaun8yM)RgH5 z73Yc0Kdq6@s5$?uMmpm($nf+^&2&Z|sK=*&oSiK-UtBAlv2*@Ht#r&m5TfI!8g764W&hl9PFTxEgc1h`8`JIj2fU;ltM{rQBr1JNe27~;`yhI(ixrSJAN!> zRG6=C400-`Njl>U&{>h7>6IktfrOy420ZpSEp{{K{0;t9jNJ2Inxr#22_%++_GlJo zq~_#6)*{=PrZdLPpKF@VC^vtPX*y#&EDIG*vtv}7AHTVYk!M=zFP7;aQe1fE_nM_M zW`i#NQJ9_(^igEKpm{oD6{P(<(L5b?O#3(UbjCi=(Fq_Qq$W)-Jm(-Xe~|?!&po$D zXVjbiutij2zMf?|^$)LE!%GgiU6??vgUxtV$S;3?4gMGonV(euwaq%%&PpW>L#=mML@nZMC7oiTa(ef|LP z`8rOZl37f|x{aZP7T22HW*pxA%V6%=N9 zZt08xkQUZuw{*rpY0wJkJW%%yQZpCjB37r&cXUr@^q$}A4$2J=+(DJY29I>cHGH7u zM4*u^&`mE)j`Js`r!xxAulEGSFX;Hz{U1Ej8ABQOyLqQGGBVHi@Jnax+JD(Eow0&> zzE2RSMExkw!6-a`e^5GOrbtO@Q7&j-ib7gudTCKAxZN_}E;yZW!TkHd>5O`E(6g~p zQ}i?$KqE2=xuE0hiuD-4cfror4@qa70X-(`Tu3^j?S7unbVhc@`GMY!j3VXEvzbVdVM0lO_MopBy$b8SfmXn-y*Je~2%eB+38#u#wzu{{EmUj9X-gYIAQ z^U;G2C_A4mKAq8FzI#0AqBHO| z#VPUWjG6QQ#iuiR&i6=2XY8MUBLP$nTnrYMo3ECb&S(qKo|%}=m^@$6-H%aZ{=>v{ zM*aDMN$HGc^F5N%8H*SVr`H}nAT|G5QaYm|SpELLN$HIGjF6K(=NqS_GtQiUHYJ@A zyj5m?aB4cE-u$LiP&S$G8qO#+Up5U?l|`qeGy2b8otDmcbbeuaI%C)TKk1-=Hpob4 zY?{A01C$*lGt(J+<}b?xv3au68MEe>XQeaBnSs&>lTTuCi9$hX5ojeBXy1HFYH?uGYs1FXp`4bD%8DGw?E&^5W zhl|n~n*>3H5M)pW8s(4!MVpJ$8H2bW_dqA+l`!moSe(vS!Z<&y6cnoqO4Av)&yOer z1$lcJDCV}8fr_}od)Kw+f4EY}$TDBLJe@Iqe|32}qZt#oTViHWr2_ck-TnJ2(?KV} zs8^>mHo;4dP1Wg)R&d_e>U73*I4`v(ozWdWz%u>Avr`iD&()+e^3K0glg{{M{>55Q zn%1ZTRjNUC>5Nk#UQM)!VHBSKzb>6|_x#=Updw4W0o3{`Y)EI^Fkh)LopJK~ZH?)S zO_1vkLQ0DYQu9h6`vInZT$C&}Jz@SVuK77l>5MPthc>4(TF&opPG=McFY`BM2GwHs zn$sCISwNFe)Bit-m7K5IlFn#8f8l;ijdU>5Mz(x3;A-YDnonC^7OrI0&^9Tk$mr(jjiUsz$s zC^}!Y2UMb3_M|f=&7aeg&X@^lL38(}Gp5cj>`iA}#0x5aK?h`k5*fpMw z{`4OP3wh=@^rbVV%zxSkDhUcEr!$JpkMB=s44=QfAJitj-4ANV)lW!gRD&eTixbir z1LrGGOlRCFQIKC!l3K)2oRgW7TEtM4nvw>d0A|?#V`4g^BjbFl$?1%y^FfAY%)dDq z)Nb{h0;-<-rhuAer>CSdPM@DV6;vJZP6O3ti>HC|6ljuf{)O4;jI8s2O-pB#lLF;e zCRb1tR9b_o%c9g`&^2Q@dJOwbrl&I&GR|K%1JsJXJOflZ{+t174QbCzXRM#UdS*J~ zy!l?UKtbF%3)EMToee5Yt7n7q3fv;w`FwLgjVHyeXJqG>&Piu9*}rNIsN1st!dwtF z|J%HD##!?x&QE9DIp2FhI-@0{#{9&NGDflaa~7mC`ptj6Af2&ge!;?YM!Wgz7lK6o zElg)TGXL-*P;2koqIAaI`7Mjn88xSac7IRrEi&Mqe_yzik!yaztzt&b`Og-EY7pHe zpd_BYB%Lu5(%3n+B%SdRWMS$4bxYGh*JSNmmd?0ez%9Q591x&mYe1nhf5P%~#>x9t zR-}Wr3pKAyXLJM4ylc<@whENv0#<{PXU6Ju#u@V&*MO33)*4XZ&9XL~Q3E{x;Jy|V zF+FS38U3a!ZapJ8|I6BR#x0O;!qs)4)&t}EbjG*y->(O?AuKkeGrI3@*pSXx#Rxjv zbGoDFGl~6To6;HU8Rt*i3~D{z+6?Nbm=Va984^B5TbcH%*^l@>X)*v2?};fsl;Mq7()HB2exGCzHv?Kz%{b3Tf~d z#Qbheen$TJAC9Fn7SB&P4(g=rm;Nh0|J?C(=qd5@pC38Izulb`?j z1gLQEJ_)LFs!ygfuA8rQ3e=I^UF=qa?Q|XMm#gK+Iii=ZoKpPW5-ML1G zchd8ZoK9zK2RELI&!jWv%ztnO6nFk-L0y)qXVV$OAR+kiY&zqa{rk?PGb%C7e|RCC z(HJZ~{p>D(iTOqsK@GK#i=ZBN^Tl+=XhyLA=RdgwD$qPHgWUGxGAP<~uYgLI!&lN7 z_s(y;3K}eVbTyqZalgwoP~zeS9fG2#;FDOc$uPg>iaDd={wLQ#BM+P!{skqO$)GEZ zb#A6JUWe~=+|PR}ol%An);u)4ozA!gE;;}G?R3UG5l7H*2PvhAC8;S2C8bHJdZ1KZ zd?%gJdH?o1>5O8GpeYTAgTLNQXN;KdcP||@!+k%Uv1I<#`=C)5jt8J5ZuJ1fUJE7_ z9;P$Kf;COg@j59vf6haY_bxsJCBNcF>5M6`?s{=aB51f86yBgU_46L5GYU;_v|J`O zy;dlibGnCQw9tH)$Do9r`4}{Ku;g(%WBGiUC+Up-^K+hns%P1!>5Pr@=RZwn)B}x) zPIox%#4-Q;I#$UficSvsRJ%FtWWvvkH%e(2z8aS3!^;QI%wMCZ#s z2PL+N&(j&3z#f?|`68Wh!v0k+(itTfh5SnMl1mE`OESw+6+k!KGZ;-btT-sV|K-bc z(4`$>uhSV>8RyHq0pJRbVl9zZXj}h$=h_scZ~Cs-={Nb zO>ZdLD?Wee`*g3mNp|J=wg1x@7tWQ>VB9?Sat7n<`5WH1GKx(9zd?*+em7$VqvL$J z0~w6w^I4cOK&R?3WiZ~DFU*|5m<&0y+;MtgNQlJzsmvLSIrEuVG8lX3PhiPlET7N8 zn!%VfzwRG1qxAe4znK~N=1*bGV6@(Ufi(j(J0ZcI!Kggnh8?7|O(>Hw4br}WOy8Su zWH5@)_u&3<1s~*ylj#>1`H0Rx!j-{j zg&1(3&&i#^co`bOkGV4#ljpnhWH2t6|AHrjaVa7Vm!{-{TJqp|o%siNGZ@`KBgrcB zwfQnY6RUnXux?**2}J31&~2;JD~>(kpI&v4k9R*ae+KBx5G8>O#sl*o3uG`x&bJlJ zU~~rO0?20bxq=ytcflpx{sy58#u(_mK97Vm7`H>_1h3`Tvh z?)i{2*loo!7(?by63bv*J>O0|gK_?}o=qb2KZ$2B{s-UQGu_|sHrIRs$qdG?^Z!Yk zFv?8de)Syxd_$=WM(z2rQW=aBgrY-IOA_-+LHp%l=W8)aXE6HB50K7a?1ZeZh2Oml z8vmL9PCA3}j(ARfa&~HpZdPJBLr!LLHi!m=`~2MHMT~OunPoE=r%nI3Y_atGt+E-Q zYtiL07-Q#8lFMK;h7GzkoO>cR|FK*KW9|Gz`3y$?`5Wak7~AJtDr7KL@qjP91Z6LU zlKlCO3ZND6cN8)h1?Rt0$YAuDZ>^ZYSTcWuVg}<0$RTfFrTJ+Ji3&+YnJMX@t;_Q# zDP=Iu0#7K--)rT>$T5A_%E?^wgOxKFW9DyA&S1OgF{#?SK&v@;mR zAW1e`JA*Mo92C_MyOI-&3PAO95qJU-bn~Rh{14h0jE3Tn#rL4W*o^$5l>9s$$hCs= zt#mRN??Yp5zM^ghW1|4XIM5#QWbnmHNDddDp789a$UMCa#{BsOdKrvHkgJ_SQcH>w zb#)X#r%gELCntjot@(;^9E>9KFX?44n!_v*)X!jSfcnlEw2CDMau-`*4rsZ}G5rii zQ^?SsxIqSEF~+@a;5PUCZ3Y>PdGl2bGZ=M2g+2HJ?8IUn1>M9H(Ct#-y^iy93^N!V zA^9>MydJfMj7x8ebXJ36eQ+fFv?(z;D`7b6kQPQmc|*3D)ZxvLB$|A zGUl%~&S2!84qnWB+Bkzzce>v|>A~GZ+)+zp~C?w4c85Sb@lVJDUu~D;O?)*cc)@UBL7`|MUg(W^>HUnLHB9rf>XjAUfZ{E`yN=?2_pX=bng9@2$Jc zJ-@^*gRv9bMh1;5&S$sJU|a$^ckAG@ygRr^hclDK?+aA%k(1M0!yo=w$4I zg47~~{GwEbw8V@Y5Iz60Lk4IYAS5Be@8Fs+eU`+0ZO05o_4%NC#^vW1Ic6|sAZ&Z$ z2r8IzoH7^_=AU)SU=(N6n13NsmQif}AEyk&t+^YVGeC>^Q4ODOxS@zqa=wa72BRh{ zqC;IW7|+jFb#D(I4I)f=d*ifFzU@W^Uh#Y zo1WOMEj+)#JA-jOQh^4)1G_N3R(QUfPX^=s`OkbZ7ZRrIam0YR7z*3N-$G}ny+A6{@ zzt}H>@ie%Yk%tr+2KD)jQu8PKXE3gV&H+XRWH9PN<8AuJt+HbCmj+}o7R(n5%wS9v zL8Rq^5?IX5pBR|I7zot@jttrP>_Hifs))!aD9JB@XV3XAK^cr5^Lv9b7$xWH?cHNCsm(Qne_?nAquBf%;Teo4=Ql-w z#MvS<7^{(Dw=4JAYD4 z2BRZVz$8{=f~VubF()zqe@q5rwg{39RrxXM$!Va5A*dQRoWC(PgK;)^>~el`9H^yx zAufZ_cfMSF24mm+wecB@&G1G=QKBxmdj@hjcxrBbSwaRQKfAN3hnc@I!~DL44A5n! z@Bjo?G1Ck0UDuxfHz9+uetvCY2IJcKjo{N!1ClZrO_72vDK)POoGB3bmqSN^!P&&a zgkk>iqzpzaq(M~8gE4LXo0JU3w)w@W8H~1Wp!}+*$&i*qeoQu~ zNw_6DgVADgVvg*5uAB@;-N}w0rRE3aWH5T{pPiGz7{d%6`H(LFneADS!RS1{w;+SD zXTDTn2IKVk3$Hpbip@V!n8CPeesNI-W8wU#MH!6x^F@m@7_Ff$sxHo8RGYu3ID_%T z{Opnp#-jQ6N-`K%K-~Y)#7TJm{L&0Y!}%9WGZ>5KyOw1zo|-REp23)JjkM?+GziBK zo?n!rkd%{|mjYTt$B?Ly1KRozy1*wnu^_V~F-IXM6%@XpUDf-`GZ>f5PpJTTWNk$T zV-VxKstm@%$X);a7pgKC6&dG$ss<&|qM8iGiPF*j;JvgJC8eO1raL@Ox&0sW`Uss#KsI`A(Z3d$QBhtddijvaAOh^Ipzb=DOb-rqS2BQUb1;zCl zj8^kOcQuO6KU|-|STog?6Mz{F_jTwvz^9>t8RZ&7?2IKqv0Zkc<@{oEq@7gjLcTe9Kby9x5Wjm-%yRtol zQHB$=!U8ny=rq0YL%;C+N9`Gmiv^=YG7@t@rz$CED>$d?DKJb|NPa3Ze@#aQV+KZx z3EWJy?95;^nxE5|!6*%Bko9(EFs2FTgGQnhO2DR-La*}V?8;zF=8kql++bYUl>u7N z1Su*mN_#5Kf7q45*a&GI*L7zwcFpJP0VUAHo(#rn$TAstcW(Zho(#s>NK=p*i8+vN z#6eJJXM1l3<7x0dnfcTDG8nC=C%T*$pZ~HigRu&{14nK?_tXr=()j|Spq)$wPjVPp z=F3e0mDYw*1rqbCCuA_nLNg@zu&31dY!gA{km1A(&^a@HkYiY(l?`Yug~Id+J6>?? zUobI)(UB3hgafpUh2L_!)PDBK8H_fJLf`<-LFup>#b9tNEOG~K@8judGBbrsCqrWqNG zrt?8(Pm9k#KLgZ|7nqsBsJ!1~W(MOerv3bLGC-FaXwS`H+&=&D+zdwVsSZLS^PT5` zvV8lz492+q&*o(?sxnQ_z1u0VUu9ti<8sFRXBK5JPGa02za#^6LFJ33prIA5Wf_c} z^S3O^U~~eP9dgS-jgqs=GZ-_G`8H{z)3qiMg$ZyGD z+&KT@mJCL#{XAPUKwDwXNn|m~Gb?B??9bbl!5GD||KzR=#>q_cWA|n-F5S<(FN4vM zZNKZ04A7}6eMdp2S|7_`yft6!I7oia@eD={#`#ZAWH5&Bw>_D`c!Y62)9DPxEAy|P z&S2Ev&weHYv_wttYzFk4g85x%GZ-`He>t1Ms06LyS} z^QWH&1S3waSbS;B1WB%@I8H_pmHLhncN;1uN zx|zXvWIy|@48~NZ{keBCKzou3?`AMUu9t(Z7XUA=3S1y8HDCE2sAllJm%$i2{UMjH z`2IupGC=2h9J!ytSO-me(-R#T#pWkG$YA8%pZ5UN3z^^c5L79weF&wWz$i0c@Cm59S@{H1Yd?6B!T56isizr?@;n+rdJ4{Z3eKQq z4%6Seq)Y7Qf0n_>$GBhaIVg^%8&2IKI{&>%C>E{f_snC)N+!=E`6e}`c z`%4C+8Kh>O@N$vz{H`yc)`Y>+T(SB4zGN_3z$S_ReaT?#$8Z3oE3)$|Xv8n#TLz=? z{GM+ajMCE|c1@C;fAAY9scC%&H4M_eXE3_VU;RCUQEC3U@1S8Z=^q)4@$;*HWH9cW zZ~8NX(H~Nwbp6a=Tsog|Wg4UCe%D_ajQ))Cr~b}hY??3eCxcOzQDeSAh!msve!o8% zpe<^Fe?e8;!M_=dI`iNC1=WAT|1ucW_FMhS0G)_X_a9V`uKl0EST$E8lQDPiv`j`< z*e-7H)TP{fMy5>0a%i%h4_PBSjVY7SbN&OSOvbJIr!i+Ty1@!~aIhJ=FIAk+#hM9S zb~4|PHIva0u?>$klkwPmBeqP?qBpio#=QBL*)kcY&d+4ege|~k;mBm%!e}}@&UT&5 z{A(PUjLML8*#9{)8N<+$%Jhe&mqn(>yU*m9-^iKCxO4tRLuW?W`4L>1jDqvCxH1{N z=5OW7WIQ;(oI8`TV*Us2OvXkfr%F&IQKC?inVYJozyRi^f_Y$ZP-AHtPbTC3`C+`7 zjGMVZzG4c=NCd5_7URog44j|Am&uqv{{~+s<4W|p2(nLXGk+$d^Zf7pnT!vn8%8=w z%>N*e$tX3STQHNce15ZFCgbb*`9hhDV*5dZ;`)s9w+Ux5CeHusQ_JW)KUyS{v3CDW zkxa%;jQyX}6`RsUrY~4{fOUS4SSF(xxF29L|GQWwf#(P}=wL?)vZED{4HG8q@n|16QoSS|u7HNie~RLIS&03G5!JyB?d@chY= znT(qA_ey3m=I_^)%47^>oZl=B3SnEBOh%dcQ8Jl~G1EU3m5R+jE0f7MaeBg=&rG3BJ=(%#Z1sXl|rRV##QrWlrtGG@Bg5j3A=)FzNTs>W7hsD zs+o*(jN0ICvJa>VPtDKCPcMbtX$^H>31}TpetIT2CLX9|GM?SPPCb*cpK-sPCMXr| zZ`I0VoXIp_UN;lI<97aB-AqQ``LA^|88zmM=w&kcPIs_Wke*+wm&tf$zL$O`<6c&9 zAk0^+Vqp~BuVj!3+WAm!2y&3d^og%_OU>VCn8{cNh|PazlF4{{{x;K0M$`FkOfwnPK-6%A zQgdNvl1*=XU??(w?fqOv?)h$JnT(e68_Y5pW#`W`%Vg}EuWO#kXt6)dJd-hikwXJ| z@ACWu7MYB72(E`^CZnGQOcvZJa8AuDDaua*pVJ8%4a!epfXUB4Y?;Y;kSW@Edf>5H za{HHBWiqldPETADAiDp6btY)D>PeeS#tZXj*=B+cO&2I(l$(FYHWReS!4{OFwd^t( zbLLOC%VdnfNcbBB#6;&y+GjE@n7_+DlX2SoK!;4ml>OTrG8tu{>lyw#W-?x%f88mQ zQE~oHr%cA){q4?~jP^|PkGp0vM$K1p%VeB2f3I66quTr@ZlDaf#66QSZ9cb0CS%e5 zI*&|7Ey&^2kQ)>4cxE!{?&tE#WOQaicg_AdpG-zmMrqLUtdb1Ss7p~|L27A9W?^Y6 zbSxFJnP>U~aWJzCgVIQaQgGi1NEyC zOTcA>LP1Vqa;hG~e&N7O#umo;GlDW1JNGLEXEOFM&tD&w$(S%-AUu=NZoYqbCZpK= zv~WwMl=P=a!f1r=s{VnK%T#eod+jLT$&d?usee8q%JM$h@#37L$W_sb_{GV(Fb*GtM|Or3weI-XH^{`RCy#%c+0OO%1h zKTn|~Be4YJ*OH7((4lEQ$(f81kTCEEUoD8P;6QRFW5ayMluSl33DCq5lT&JOW=d+Y zwL)%wQ7Y(eQay(Kg(;bgUX1hiq=F*np=EOES=nl}*oNRGsgf zp2^rW|5!RGf4xu7WXzl&nUTr3aXxouCZpqg-^@(Ltob`KGZ}3l_2aM1OvVSwB^jwj znTg4X3XXXxMc~sCGa15C^D>iD6+kV34JxO-%;1=@8c++%5v8O|Ifh#=WpYeZd6K(8ec_(EJT0nT+DoKSB?+ z<(dDn1eChnNFR??$*A%9|KbtK#|4msYW8VJg@=Qi^ zMgdTJt0)(IwlJhqdRA$b#QZ%KnT+>Dk>rv~i$KT1gMw{iWhP?>vRq1K9;gEi8Y?sW zVI(#`ttykzmla%0&EHj($+(_TV>x9)=b7FjPqsNGZ|&3gHKoqZO>#hp5NJ?$@m4sQjoc_ z(`!Sdx#n-{$Ygv!e_3ZHV}K-5AQfchq$(tWmNXRT#WL&{?8;<3$|!=QK({zKzW_9# z3pQ&%XHO=hB;)jVXS3z!H>^rwWS!67pUKEJ-?ulDF$=@~{U>`f85J>6wf!^DSp&GA5$6H|MXKk;zyyUwtO1&ANAHCgaKZ?Xxl& zy}<`ekP+dct9GmnAZL~CnLxF{P~%TW#DdBNk(dEQTlX7 z9!rJ!0t+%3h2|?S0Og(71(}TLum(qIQ95EG;pPHRt5INKCgZ93w-;tIZe)sfo?n=k z#waPS5R#EvUaY{tqQL+e^UFvr2d&aQxG0mcbiVoGOvYF9m6l{OE@CvCez9tv@cf%g zG8wg`!3Dk}Xacw-KNoa|Q*L5jUTRTliXOv!g{7H{yZ7H&n#q{WxZh)WCgU>3`R`YN zYBuhbpqk2jC8(;8TbaqIG{13WCZh_cvyq3XrctmF!~P8`GZ~jdmJ13&-IJM|oeDY7 zk70i6>P*H}`wiBB67GDjwV>wnnzfmX^XL1l%Vf-*ziVA4-)K0oAwFdomei_s`su$@rgf{>*)upferi*cip;d+*O=Y@B~~Kd6>^x<8ZA zX}-pROvb7E_Z`S&Jk2=2>kz2(vh+|U;~nwnkc`Y2bqmY9${Yo4h3wRleDF-;{8@)H z8N=s)It;3q6pv&w3Qrew`>e#sFhBB0Cgg-%$nlQpsq-(~Vq;X8fBpz4jNTo|WHgzt zd=zB=(xaeu%a5a=l27MYCgY^}`;TQZ*73t)Uq^uf)DWBRe>{^h3fv{1zy5e8qaI?% z^Yi1GjOz3GPk`DA7AGVkTmvhjA@MXgRf*V7R^6)1r#2US3$XZ@>NjJC-GV)XqEQj>zRy@Lr?!-&t!bQ z|M`tf#xIQf@7w~l=J!9noynNNG~e%DCgY6#&+lb2>NCz4e*kJz*F6CBf4m=pa?!Vk zpf1|}zmGB*vl!=RJOMQ*7eC2l44wb;NhYJamIiorCA|3&kXlrnpO=`UP*9X#kXlqy z$pDv{pZ_$IQ3EubwtxTAOvZ(b^An$gvfYvAnV@YKFJ5FauAD#VWhP_We#uvvj3SKl z^^-PWUH(3kv2Fgp_nC}| zpewLbGK*6ZGxI>3M)E#nGJa#+pZY12@gaN!!|zKb<9ApK2{gy&Gk@k+P`1AH71Wqk z_?F2iGQaLyCZoiB-*1_q`HOFvjIN+z=}d5|C%G~)4^owY6iLtj^bMT6zk^CJ+wY)u zLc#Y;MrD`{3q`#c<>m|Qie==OfAD)I{Dfcdh`IRu`9DB8&iZF2qaMVHJjlV{y5PCK z`L#bmG2- ze`hjkfwr|NPA^EA$v6M>?@Y!*h@GJIE+AcCJEuR)^A(+cf_*Y0FE?m{(aghCFW7@& ze*GU%ak1kMs9e7N2ULbK{mo?5hs+^06;LWHk$cHS(E=gsWU-LJU@eQaJhByl> zQ3_q&1iA!5fBw3EnT!JL9!9}Npy|=$|1udZgh6EqIGjuJb4sBe096A@+@QHm<6u2! z4`YV;&i^w(^VuO8nfV}xgEoy;ROUdGPiM4$FE)L`ZXK5SOaFu0fZ*9G(8_68exGZd z#h3%$+dTJF7Nh@sDaI_ujQP!sS&VilBc}7uGiEWq=Fo62N(3)UIl`0$I`7!Gv>3E& z>a%i%}4=v}QeX7NZfQA@H0zi?NLpx-m2{ zZ+d)stJwTLmMlgg_(0f7mMli!`QKTx7~SXFvt}{=n{UUK#kdBPcjgPRXE9pL_h!#x zjNk*;79kl$iIBO0&Foo>xA*sRWHG8U?%&Rt#VEqK{|r|aqYrpVG8d#12Rd?kz8g;# zW5N9GJXwsv^SODm7!&vB@@6rbK&n(^g~$1_7>njx@n$M#khQaoIn<1)_llO zIZp(#7~SSyXia03neQ%`#poyrnX>{dPcKPL&9ee8yaiWh(*sgk<>o60XECzPKQ5TX z7zYma`5r1_j7tUfd zf|zwfIEyh0VoIt=7UPorT%uWw8I1Fb#j+SZ=I;^9Vw?vH(CM0s!`0?@if1ue?msM^ z#mL1tA2flnY=5a_7HE^=X{jtmS?2jKWwRJ3v1ov1q8RVRh)=I~v*egRUoMNWbHAp1 z7Gn+L{$&bTjLJ;NcSDxU@8g=pC^i41QWoPRU91dZ5d9`-pfQy(72+VN)}_JII0?j^!%KZw9LHZ`4|5MF-lJVu*95q{xy{> zMuGXyRk9cZ=3A&{F&fR!R?T9xo4-mmi*ecfK(#E!*7?`fvKW=;|5nRl+&zE0I!Mhc z^(;oE`Mergj4jiB&&`pYzg{DY@$CFs%`C?B`A;>o7}Z$7Rj8m=7NgVr5UngmZ;Vdv z2CXc{{`n5tAlvG-vlyl3&(h9fjGg~O8)Qg=4v0LVlf|er|Eo?GqdX|V?zhp+VpL$9 zAFG$exM{wCeiq~F=@(eG$j_HH$YPA1-spB&cK#HDEJn-u=M1tKUFVA!W-*#gztG|@ zHb2oYi?MwEO+!$|Vm8WRJO&w-ng7fvi?McpiZM7M^G!gxudu>`QEL7wlPty>_T1Fs z{G3#V`TC|H4+oiMF>agBX_mzpiV{89W?78x(9(H2_~?jRW}q@a%RGxwb$)<(7Gna2 z_Yaz9F-}5U7L<`+l$Z<}H3D^E!E3g=EwUJe5N(d-7Fmo-u&W1;po>m#2tLL+zrivK zH2VV{U4YCAC|G4Nu9>cwdrf5iL#r%EahP9}SfQW|8eA$a0k7xOv(92XGyk_W$i0d- zS&Wr1-#q-PFExLU4JaD_+hj5NV_Drh-O*-_==23T87%W_Y_k~e?T@z0V&r3-&R2C# zeE#l}<&1p$`|YzBS(qTj*G$JO#wPIM3dodJMt%|WI!*(pEXLIN)0{v-4LSo+ZvJ(r zEJm;SO3qn~&hr=Uc4L&BU+XP?5zG5^568b+b{F)mq* zGv|ME0Y$91YZl{|`8;k}jOmaDR;61O<77tT`T144jNl*{C@u| z#>Dv_{j(VD;oh?h$YPv7|7HNFaAXPunQa-E#kfcil$Du6GV+V^OVcxQD)kuVzYEM_ zY?z-Pl*QP+|94Op=z8Y&Az6%K^VveP80XAi9Gb-#Hvd;>7GvZ5nlMngemE?Pv2MRp zI4Hd5UyI0MjGn*ne+#4N^b0q>v+nna%wl}RIA1?Hi!pinM$PHw^G`)*F<#xjASR3P z1LOROaiCOiCoYR|Avj3)H^*l&GC^({nctlNinTKdS&TmWB@?qiTiYsaUTPL&D&zDWf&yCm_0qE#(;4Sa%gAD!GG9A0i}5&kc~1R{7}5FMSy_z!^P{t} z7+20`&CX(cxc_-}7Gn|P{-|7V<(HqA#khfSzCuA3mRFX=s0le($YVO=1Y@!J6Xd-aS*PFaxW_U7U|AMp*?f!g zEJpMB1t1c1vWn#VgXJKLqbjl(OZQ)>09DhxkcEaB`8nXOqIOjlqtbrAsw~ES#`*WE zK>?~+lf^h+4cZAQ0v`$wj%i1Q;+(`X@cxvf{JfN0@HEKB8c^BnUz^3abw6ue7NZ;E ze4qL(MmJ9Iqy~eAd(rf`WdUOIH`jyw&fSp3SPUw$*}%p#%wOA(#dvCdMPnA@tog!C zpu{t!3DovD+myxl3bOfn{TMip?zoc>VKRC2y#OBUl*r?mVEh2jj*W#YxDi3*7Y zsSF@GEx&@HI47|<1GKZWJQH-Svu;UZW)4G1MiE#Pst2@-Z9adW8>7thfHz$%^CMcb z7%fpU(Y)3yMr9O{bFEp7e)DD9vKVL2-`SSMxMzM@dlqBT{G07rj3zJ-iFSaJOKL|J zW5oP@9a)UEd|;oJWE7>QrhtYsygRcPugq8I0=00uyRsOA=HKfA6>l!xS&Z8A3%auy zAE4M8+mpp;gd#GhCyVj-{29GjjEbObVDsj$O!!~I#H ziG-^YvKWo$b4~-lq^Q^`NyYZF|LsW1s!PMASpGmLg6hWUL{vlv6?Kbe{Z zx?FQw7Gv@Jchj;M7tNnI9h9u@OwR&c2pm5p8AX|(i4-uc03wr96*NHg2Y4)mDFl?R!Bf|u znVR%%S&WPKb8iQgkMrwxWI^w?db=ZwQJfuIhJ@tLSJZ1{6rIl5@Rw)4?#?Vm$Nl*` z!Hu^GyRsO2Iifw2Q*%HqRrTFjjPdi^cV{tfoo~A*i!m6|vndd;VU(Qj;BLjpHGk)x zEJkBk=+6JTCyP;u6I2KkWaecv%vai*#TYriW-q7(Iel*yquTy`d$SnDA^nf}ANFN2 z=I>9~pT#K4IKS>d7Nht4QwKm5+~)&XjFaZK9RvmRu7jY=%ykG<*;*aSVhjW&Tmg8% zxp`&i~)i z&&WExwy%+UzTinvy~r=TQ(}Ja$t=bd(Wxfg004Ph~N#-M{>F z7Gn()^m3AnqWltA7ZnsUNR747b6Jc_=KngE#n=UDnHe}IGm6h&cs`3U1riC|7qS?) zfXA7qD^C6&L9|`jFM-<4 z`z~cM+Ry)Y3Dh8)aT!#BUAUaZ=s92N3MlR`T*+d*3kvu7SFeIpZBU`5cqfbT+kA<;S&Z-Iv){{N^ak6mcm>qh>b;l6D9LCvePMiw$oxI`vKSrK z|Gk&R$hiOC{VdSQdv*`A81v?@eF&=D?>_`ptxS)y7{wSt+rzZyyF3PUiMKumHCul^ z&SH$1AM^y&KT>!KN+QpmW-;cA!%|m%F=)LjJg3dif0o6lJAESmY2p1Fo@Id+bZvSL zYKpylp2fI$e(#GcM!ETGUSu)qKx#^Xzq>@_OF*$)l9Q@XmY7opx+X2SBsDQt!8I>E zGcQ$>VZQLoEXE{$4K&fVmszlFovE*~7|r+3eU$}Tt@H3TC{d@s0hNp=-()ccLhEPC zw^@v$U|Z*hyv<^?g4KAXMd=x!>@n|c7USRfbKZgU{d)&$WM;k3V*E8f^+Oh8%lua# zKpn88kDxyKs*hQWR`Z{J%wmk*@AxT;@ipUq-7laT!PF%+IUBkik0DVZB{j7`w>TBN zJvuo*Cq++zAyFYMC$R*yZMrPA7(6Jfz%ak%E2z(|`3+pYczw@ed^lg{2Pp6het>f3 z;vZRzPSXuPnrop|M)E&FE?e?5i}B<9X}_`<{UFKy)h|$ME$BC>8L;p-sJcG;8&rWS z`~it~{K;Z8oxkr7$eRj(LCHAcZx-Xk{jdIli}Y{*K=pIke~{**|Fam?Btr5Pic+&u zlS`~Y_vIC(rj-_hmIH;%|L7ybC_GmpoADG#O=ccQjgCTMu>#1GrI{e_&i#|k*fYPA zF`F@Y{#(XuMu+)&Od$3orff!)`P-SY8Dj)O@)gn&b8-|)3-Uojlp)i-o32XFcVNzD z44OZgIh%1EM@YUxDQJ22bpG?gV)GMNvKiCopJ2&m)R_N~C7aQ1z5#1CqtEdk-0p3RszKY$~fv1I;Hj%>!( z`QDt_i~;lKaAq?q&fmwG&FHP|6O@9>Q}q}uK~=&{?rg?w^C$3RGal#C2mr6xuhe9ipUj)h_>j9eGbbBVL8T_9 zOh0%dR(Sq{&MZd0{e^tljE5QLn+jwzHq759kjAC$^wtmQ~bOiBV> zUb){xIvcds_o7TTqZpH8-t>#!e}(7&mC0t*nXe_A%?P=NdHUR_+cNW~$!0T_fV1lK zkN=fKrZ>oDvCP+y%Vzul@*=Dxb(aSvt}F7OCghHe=lUV5MwE z&H1%T*^FiUCHV?PrNtSrG&Y|_Ih!$Re!OxvUEQ z3F`d!M=}{j=l{{pW^BYN zpr+Opvuwsw^XHpqGiJ;eFyUYnpD%Bb&DcGEwFSt}2Ya&_<>%*GW-}_ypJ18I7(4%+ zWj5ov`FpLh8IwUxLGAfI*4d1{^JiISGwz)qVUx|c9TxlIw%LrC^BZlm8I9&|u>}RY zzFjt>+59xSY{o2ug*P-bAY&t~*M5s$LZW|W&>X`jtl#tmw}C=}-U z=id&@X1q0jTTnJ*_kO3~Y|t8^;*e}c)%g!w>KJ9_Zw<+2oS_2g-GLqIr~n!fuvSRS z1NEhgKuhGxU>e$6P#giHfG56xy&02d_ldBZ>zPhl9yk!!-T8I|W>2+L-i zG(R~URC#O&2ZiaK@NCBN`5_V6jJsjYXVBtGaO-BiVkAh3Z)7&(?fIHfpiDe3Dx1-8 zx+2$p(fJL|wu}PvzeZ&SJ(Ba!Wo9$F!3>qj%4YP1 zECTM%%4SrUza}diG|C*3QJD*xx`Iyj$!2FWYH~Rn8h98Q>-l>y%nt$yU^I>=8v8LC z%-@rp&8WKnQFb|()aK1n>sOGaR29(0r_aga7M$N*3d%x^y+w=?^Y2$?GqTQ)ssJS| z!Ln>dHO$Jwa5@w6nwJB{EZdaj8ErJugqrD zN7CpHnj}z}?_C8-yMP+8%SC@Uh zKvOnj`}`SApwjOGUpY0Kap&}niX!6sy{2U|eq)^PI3t^}dH>NF*^G-B*MNwC<|ve8mVgdXhaCGoUvFVHV~aevehA4- z&d$j!&ahTUO)Sm?ZMFpofLB>vUI=RVGcC$yJhK1zqHIQA#`&U4vKd1m-9rwrI#82k z(h^Yk2HNs6O3uHu1XM6fEd@1pikE^KF8`N;itU1B*^F)Tzc0&X?494b92CGOmuEBj zLsGEZifqRE`SVtQx+Zs5WHTDi7hIXm=sG`qWj13Ef3zRuiqrdvKf=W$1XF4Wag$?D-@&_W#*@Vt|Ct?&d<|h*l)K! zn=zVs{;W-)Mzs3oY(~H78@{&0&A+la8#YMtc{3;^q_$);9-JSj&C4jc|Lc})#$ZMP zpTu;~8Kt1(d`mJ@QW@q)Z3B65!M1G14e(Kv{ZZSq8P7BFrfxbx@l$!7es zf6m@)#w(2b3-@P(F3syckj)sk|J8wP#u<$Bn-78NVfh)i&E~&81d0s(!=R8XI}9p5 zJ{`_xRAVd2Oi8I^n6Gdon{h69hH3tdBcPnCb`(_m7az@L{4qc07$}WyKbFndz-Tmo z!X8UTvHAYTvl#_IEm5uMe7_ag=1(}D&6qX+_i<1m9C`v&&fhGf>Jd605+`a{K+qVqrW6*02SH@%U~SigVkjcm}}B3EyM zvQW&eY(~lXWw){!ttG*m5K@bhQ%m$9gJKYNEW`XWw?IAjg4@}QtM*IZ0hf$l?}7?6 z#e3O|CiBDYWi!TuBWeDFd)bV<^WWVAHJSDAgLGZK4{FnSKgeb*-GA@_s4Y65=@BSD zM?cDD?3n-L5vUU5dJM`syB=pVDoQL-q%G7(fXrKc7#IHl&L!#VS1pJg-Z&i8%>ijj@a zKn-Wc=h=)VVn_=dLNZbn3Q9re1Tf6^d!EfGhg>%AuY8`(xRFtzB)_O6KeIShw>Tp; z2WAzLA@hA-W;4nn>ztnG_eFmGw3pe8?dnJh!39WgX`Vt7_*{WJ?&GQ#%b~1|3|Nl0d zv0kDi6Lk1`a(;PHW-5viGv8%1u9%+BJYRBt^!seaBl8tLWHY{=+NdHqU-cuX$JqZ7 zlvoTWTT9O8{FKdTIp6scsFIoW2~-`Ge+E^|r#^#5r`~_gW?VUc=9g^7viSmEL1mK8 z*K9^57VsEP$X8G^610VWzS_5JM%(!*-?ACALCcfDBM0+ue#>T@xIg=QHe&)Kc=s9P zC|~BEpwy=MGn-L81kdmJcDr}NVi}V=gGyVpZc^4X0+gh9^{*tH^1?sAfxd7@BgzIOXue1Fp7g3B-20snkYPXe-5L} z+&ejp>hoC`a~RJ}-#9fzbh_Vs8IJiM7;_j)=ch5{Fn(u>_MiUn&2*9ZCCoXDCG%f0 z=P*tJ4>ZkhWXWMnpZ}62htWy_((A~~$xH-o4^sdg<^Z~hvnUl*i)uLK&p)`Jkx_bn z0&5QAVc2PWh8Fo^^Bvf77-i?jvE?vk%smdatQ-~U=Fhp`4@ zljQsgnH)x)`AcPT7?;iWk47VQB<827<}fN$)F^EayJFy5Tst&zj158ds2K_iDTZvMl0IgCp412uCPWu^<}9@m;bLo;sDEW`YD+BuAg^96Kr7(dQu(#>JKIRA=n4rBRzAH5t#_5CG!IiTAYAL{2YP6Rgt z=2sZxFm5o?2+qhXNGi?DNy*Gh*F>xt4$9BZRRA3$S6q;oj9TU;HkdOi%&#}hVJt*0 zcjx~#%wd#35m7SAVeEy+>i(TZIgCb(3P^=4e2H>MW^Phy5$N3cT!#7lCOM2cCoa-~)d_J0p_w^Gb>`%Rr5GQ2UR`H?g=lvn*9dAty5%y#F{U6;$BG zndLCfoB!7=hp}jWfq4$&{P_YFIgG9xpmGTmbn_KuCNPT3FS5vCoH?JzGKVn*l9xcy zq6#Sl7g~a}Ia=i~YR%8F0ww9SRymBm`+r;IFsd@nSG37tte8K`CWo<07*s!(Waffe z+{GoSB^e6Q4Err@a~PEw_s81hFuF6&UuqA^-2d!z82jh-) zOJOqm&wJ)D1~bDuT-v@ljMbvBhy%6ubxRVHazJx5`}g|hFn(o3KKyt8e*YZCBu4&_ ze1-JH%slX%ILHk~fuO`XB`}Ba(){$G97cWQ3o;i4sGdzdUV!u;(4r2!6{M8YljQltvhjIS?=ExjI zALz{XtEe1CxA}(Apdzg{I)`z?e!Z9+#zl<#FUICDsxgbgmsO2&s{74q{FGjkZX z%ooebVGN!BKztIT`26Oq97adEjMSnO^l6 zbnlKQc==jRb`E3y{5#n>&@+zr+vnskvNO$h&&y#n6NRMr{JhjkJjj4G# zj2ESn5{nc{GV>TT{Bu$ioHJ5E%df%hIJfzAaUq~ZBfhCn4J-0<7!^4+Tq;vR8G&K` zmHZsWTn@+%MootK-UT^~JHYifM4GQKhfxnnxqD#_BApRZM#!#HLB{?Z)A9rG*7au`8a80DwGZ`i;(zp6ink$=8Kc@Cr0 zeB<&QM(z3Wte+oUnZsxgNeBxna~Q3s7c6uZ-T$#N zhf$mvGF8S`o5MJJ`kB@kiRmk@yYTJ5P@BV8#5mu%K8G=6{*3w@#*N^FUD%Mrm@@xb z11Qr~H0CfS&A;84!+06&x%o$$au|i@-)I6Uv2D&_w3uJkoWuBkepw4BL7ZvHVYHji z-3m%mrmZ=QF7vBea~R#{A8G{^AJ%Q4(j~1ehw*_Ncr+{#T&RK;PUPm7WavRgz(C_k z(--XH5SyPM5x~eXzqLJw(GB9Si|sj##o*J8_9t}YfR+`3&TJQ*-`bhOs4@SbLNcT9 z{DYl2jFR(jcjhpb%@69zVa%O>peu**9(Z77|LN`=#+i)sQ+sn5)8?P)&0)Mde^nnS z1Bdj3>hGofIgINdm0#V297ZK*6oXF)n{Ix|Uue3l-Dj@(4=3a>W`PZyUojEXqM9}_ zhtX^P!-+YJmGh$~f%4h2NuV&bo}9zDVg8%RpmMNgN)DsV{GC&B7%d=K^!tf%Fjg|oPuw2NC_aB)FDE0<{7KVu z7-iFWU`MEQ57G;kNM{=_eZ z`E_$ah061}IgI}E&F6tU9y$-ya@aBt)OrH7A6n<9&j)GTJwJ!>+5ANdau~PGk6f6; zxENeNPOtec%RS#{Q4XW?{<1~j)?>|LP?A`_IEV4c{+=b^_R)l;IgAnP;6vIq8Rman zn!}h0xeBmh8K|{)Y#FFQ2pZN9o1e8jhcROR;pI7uJ&gMUR^~7oKugrwt8y5Fr$1og z)tfK78nmIxXf>!!*0(x`v1h*YnjFT{kT`g=2ILo;wK5oTe&`lZRPEoA!`MCFdutA(>HNm6IgH*YEsC34 za~S>R@L3-^M`GH}1}(%u}#U@mZ5#tBq{P8U=$mzeLdFNd*U{?2`%9>m*yIgHiwGxvkM zb$NddW5fKA1E4;|fde^=OXmkBH8P6LuQ>>6c-}pj!?<{U;~`KBUy!F?eExwwR*VAE z4VU{BIIgGZ`1ysL_?9V)w!zj-<{SQZ?17}Dk>;|cav(gwv=0884 z!>A+%_L*ZzNoEmf@j^jCVo_?29>aXa6QGjT_e2h3%lu0xav0UX`4Zd~7N0MAGKX>7 z{xc_Y71vN1xg*9%B3&jeScpmPhw=l{Bz!x#V=YnmT;Er(Hu7t$gxPAp0R zjpO%R19d7HujerCn}6VX4&&kZEjMx)gG3>LpirJ)mYS!KmY4+EhQ%=d?TsA93G?f2 z<}g-GKlnadWP09yP4@XBw{jSF>_2-8)Oy)3bti|B8*;$L{D8YTjPmmf?&dHqm@jxQ zhcON2yW(8Xl9r78qT*CNhWWksK)Gb&y&Og{NTqc4UJm0-&{_$f`2lD282RQOyr07u zsDj)OPfb-|2rmM4aWhMhM>xPEI@5hUw}{Tqe~`myhmvI$O6xJI%)j>_hcRfr;X_bL zO?{ZdsEw=!uAgK6k%u{qtLGOy%3+L$>{)yKD2H($Qc^5Q%!BUffSxON^>GepZ!fg< zF@NHd97buCkW4)de-BL)hP?cuT=1Y5NMEu-Vsa+vNR>?RF;-WefNBE4r=WUb&Qnl@ zdHX3Sf0jH0^%y~oAockNpXD&V0G}0ZGXKJySVpe-f4^rka?JnmJcn@}`UKVf`7d%n zvs&+8g32esSD*@Q_bX5<^z*A6MoY&1x^FsE2&~dk*7%>FAKm z5`{zsNa_MzbfusTI?FN}wCkqu-gW4*%lRjNOW7f35LXr9Ezj7F@<|qBi zVVnS|0)G4gne6c!)J&Q1JBLw}(RBL5r2-=JcmDPmRv>!@DR-W6|A|87V{sn<}yZr4liZ#W)zw4&z8%mFu#B;m$7s@WB5jy z`3fiU7+L1CvF9>+frA({JtjLpft`nuef}KwT*mtSG90;}&2Q?Qxr_$$BRF#zFU{BH z%4Iw-{|#3zWAJ9h@9^X@ zhR-+Q&1Ec~zlJxL@xcCEzFbBx#`!z=a~YS-j~B>gRGq#t(nWgy0)bpcpZRYEav2xR zpCAa*^+FKj8AYL7Mg!161fWw?U~{FQzT$L4jU?&mdY`UwPPad1$UT3mP%dNLei7kZ zQ1{eIB$sjG{4*lCjJNl%5Y1)0z_`CsJeTn<)BbR&TtTql=N6GbFfCznx5AE_)$RLICL0xxmNPfP(% zo`>WorYIDE=5QIHgUj=G>EtrT!UvHRbaNRUT#?KG%{77cCMYD8g04>k9W#m~3+@Lw zmnLWD=PMK!pca_(*XZUl8t;Fgn+v*GE>u64aqfIQ%>YL6`CJCMj7NF$D~mzL^`>PO zXE4maYmm!mKVQ}`m$5}M3B2eKJm!*`o?gt5mXlafo|>A%Fn_OME~EPV^HTkc;?p!Bxf!l@i zXPM?Qt^_B}Y%@@b+i#Z3=s2Iz9F!i7%ySuQ=Wj62Wwf0C$~>2G`u--1Tt;Tb{cV=H zpdrT#R=JENkSfeSFIAyDBVVB;Ke4z3G=CXwoy!=tf17nKXwU0un_NaK=$%20Q-T>q z=F8jVGG3joD5E4iz29(;(0o0nc1G^`30ry@S*CwrpUJvk&pww?gApZ089VtIMdp_~ z+?a z#`*i#xaNXdJ%N{|YR~`fmdm(z{#JKTRDN~OW%Qcw;E~H1Fn^*)E~Cc$T^^uZndq6z z7&d>0XD*}5{J);LjMdX0sws-i@At}OEar?3038gLlv6pqp~XvVzLGacpSO1|W5fJ2 z-nool<{$LQW%Qdb;G4^sJHO61mr;BED&JhjN-l8!-BBSezhb_^QP9n@etx-(JoBUd zKn078e=eiz{3L&ngVy@zGR8oPOtXMo#xs)9Zuv#IsVNF+po4BbGV@aO6iQ;$lTsPx z%Land!bcqsM&bGE0&^MV=bsDAWvq}uO8$uo<*A8fsYT$s52rgy2?@{lzg@`4I=><) zm(d?3V6Oy$LPaDvm(g>6TyQRg7(V#MQUvw_x{P}S)xr}1- zOJi~w)gX1)!kApf9kSpqbxCO&=wMN3(Oi&GS`1wjRu!Ae=)nV4lb8(}?aH4oaF>}; zoFgN#Bsl}rJbbuNo>6!{Q(P|NDd_z;m*a97d!X#J_*}-x^MA$XGESdADIu4!W5~u)vo0QAgGQTJ}mobtbylpY0G#%Qj-+wnbmyrj$)9-ysE~Djs&D2~* zE+$s+=J5Fw_k;4)0^wjrj`?Bfxs2xX`_e&4{Zx7`GR|W1t(^bxdD;M)CQP`MHew^H1i3(g$ZjF5|a(g`kYJ zpfDG-9&}$(E@RAm>Ec|*n@Z7siIAkKrx22#omi=mnWx}UnwJi`?hP`WF<-I-WV~NV zE~EGUStYrkvu_`l<}$9EKdCI2v2nggc`oCI{YT4lL05>2RDu&@WiDgF{QZ?6Yh`-K~F8CNmR-`AMS zXgVEqr`UY1rd&q5{hm#^jHRIQ%Unh^$lOxM^ukmP(fN!mxs1B=^;>coA98^5K6n^s z!+kf2`9`g|jD^A)&iR>niRr0GxuAn)PIlxnPMROn z32F~a?aXCVnZK(umoZ@a!KZtL=gW2FGEQMMo-e~A%_uSdOjj;rmkj6t*^>O6oK*PC zLw-(b5#$=O`6b=CjP^W`J(SQbln1+W8TBAJ4KlqU*aNDaPW9w6=FB(m&1Ec@zoHjZ z5Q584|2|Nff8Li1x*4xOmvQ&}oC&#%TOs<@CxVK7dru zq^Y@#%KNuX1=Z&I(INRcIiN`f@P6>5e8_-Wba)YHT02i6F{c<*G3LM|=07}S$tXNO ze|j#X@%+Wpa~b!~Po4qt%BC5)jA{ENXM(cX{I*%Sj7sxY&dO!{K7ZkCP&ssFb}nPh zbio%zBGWf`=&;UDnv=^oU(6{nr#LYev=9cAz~BuTskym~>mdE9J9Bdxt%N|1ELG4} zNJ`DCf}F>%^?TWBT+&tEp1+E0^Rl z9)*nEWi8ER?4SQ@Dacy6Wx0%h=gTYyRnUpca~ZqDa`MYk6%q>ya!?x&EGu#u-=WlT z|5xNPCdicJ=O&iqD`X^=XDfh4T9G@^^Fi&4E%S|6~*X1%EnZIQ{sOVMMkjt0`zKeXi zLqq`k{AC+*8K=&-*_g{1!44kN$j_Z_s9h~SfAdCA-t^v-%lL1;*XCSC_vwn&*Mz6@ zOq|0zf79k%#zmr_vH{d44#@}IkeCnJuoKHLKYI(PI(@t)m$4hYH$A_8Yc6Bp{EJ(2 z8GGl)Z_8y&pMQKCsJX(s9aLWTZ_j0vfwXToZU>c3*S6;}I-?r`x!~<(ss6jHPt+?C7d zG@oU6E~D@KpxwEQ$@91E&SgxSFS`enC>;0XGIl_QfkI02^1x?5K*opP?*X;ZB=&+D zSIK)p{hC*Ma~b!uL6#*>{}??}bpFwOxs1lsd3lQ^<_qozmwo$l8E5ZLI{@w<9Xy!J zxLFKbgM+Sb03F?wSpqr|71T`VIh4!zaDLw5T*fW)m5<~yw$ERE1Qd%mkATVtmZQ0h zGv?1d3Mxstj^#3@?k_l&3)$CvzFsvCQ9lHkYwu`o)VfBGcb} zbzqyHa1InHH_m}FGSm57My36#=W`ij8Rs`&$Ys312A&~gnqC;}EkD2VVlLw%*g-Dy zRW9W+W`Syu`GNATjKcFzUdm+@nt$g~E~5vefuwaAlr4KM=Q28QY6O6mb%2`T*DvQX z?%hB2N-pC*#`z)Fav3koSG}Ig*fW3A^<2hH`%`b^f)?RVy9w&y?7Io7d_m2s`QEp3 z8FTjUxRuN3#5n)=?OevF`C)fJjfb6gav6`#ufGdwRIA+sHHdcH1GQnk+{;rUKaav8VI|M3LW+HiWB%h(9n`vBdtk_W0O^3qE|bTt*hg=?k*g%FnlY2?~R`FF_^9g_pUE5#WiM z`7W<=8B3AVQf4~hK;4V4av9CwXY0)ue4Wdf42iL-*SVnE${}luA&2fsyvb!0ov-&M zmr)*)|AOD-GTK1$%G5Wxj7DIc(;bVACFVbUlgsD;OCS67-sUpyWSsxvT`ps{V01uH zYJr|YNxpU-Xlfpm=icWss?A^f9yIb|{vnq!AMV`zyyQe3g_8WdY*3?m{=N^nj4S4+ zf6N6PF9p7bBLqCLpPQOkTnf3ZWc|lnMzi_PKISq`nP2@Wm+|rZ_|LhFDf^Fn&Sf-W zhOBfF{SJy`!|%C_xyYx-7x*#DO>YqTEHMA(_gqFV>c4Xt)gkNq3x0!YwMD-{rJKqhP}4i+PcEbE^uU}Cvh%0^$z?R< zj}FPtE6xO+-v?g1KVR^gG^6zVe;aBUdFQkK&1EzIujZd0@E250PWuZ=0w@3GGA^8- z{STBqj{VDJ%mDjmzsdhxMh>R=wv2g<0sH$H^FW;G%z2EjK{JA&@x1)fycBSdr$QHz zK#vPt#FEG8H~%9`9;4cP3D!Kur1{mXd5o&_7qaFt*3DO7%VUh)U&odQnpmB|p2z4X z8Vx?!D?dl4BtJh#PXV-ZrG#Pn#+~)T`vo}i7@ZiWPvk!>JwJ~#k5P>`H!(Q_bha8u zEyMi9oOz6T^DlAcF;>p^;mTvYFkhBC4|)|xJ9i$V&ipOhAlESSUpu*wQGEVQ z9*~FzZyux1{8HXL#`*I_`SKVQ=bQ88F)o^aiw|TXCx0HJ#e66JJVurI>HK+&3iCVo z^B99cnR-97Kpvwi<9unV2{#na5Z#-%KixF$A)JW`a~6ro6fXJc zC7>pwjskck&-`e)JVf@J|4c5A@dwD2;4PKxC8?<;8F~!!l@;Q7KaXL4xpE%k)%m_Ed5oIilmxEm=l84Rp)SYSe?ldX zQJHai;?-E0`5bC_jLKlu^9|MV80YLirVcA*h(0J$Jk`%*ESVo=kjGdw z|ExhCW8r*z!#qZ>`CW#2jCUa&wOk`m#N0E=W0aWx-6)SSL)y>~v~xBjzd#q%6ff3e zfHY1OLh=iyFO2b!nl5lnL~{Om<2=S@akK?ci3$avgCJ6;AKaBJJU`APk8w6iV~@== zk8v6(n&uxd&0`FmFJ+d;s6F4!43tfB%s>fnwpkuy(EN91pyb(Sp2yfdU&G z9%JVGw-$Mfsq=#^^B5!NueHo$Ts=S13Y5|ISmiN>%@?-LV>~+lrZq^!#wL%^YJRy* z9wYRU3D6!j`T4JH@)*xSLe6l$7o+BUUYmYK_WAE^^BBYDyW8b4eitdpFG#FX$S4J` z9)pgDL5lYbdyosK+k;%Y*FKNYdq1Z`9_ZehSjRlZ_45P09T`RTD>~&d)sFYwM|jGq6;JCD(1zoAbaV>ILZUf(>%8T-}z@)$dr=5GkdV>F%r zEFh233GBW3dVzV2Um;fXV~k`3k6%qUbSxB^-yD(0m^c4ZL>{9$WDTxq zWFBKA#I`Asd5lr>-$&*#X3dX^%42*q-!?jrv1R_D=sd>Y=?hiPNzFHi$z!}SpEWj* zF;EiZbtXu|yP!BXF;7Rq2s#o~6r0EBIDboQ9^;w$jd6L5G4t=mKzcLLJBQMfGxxg&tr_*@1K#!$j6A#m!6r&cw)XmRvu&d z{1sWCIKP+$(vy^($7nr&UUnYiR1VN8hRi%Y&FL3)xJ2d$*w^FX7{^X-a3nXIcgkFkq!zG!J4qXw+}-tSflN+$E?mgO<7o9|Pe$2fKR!8NBv z=6@^CV~k)c$uCOIV3;3Pk;kab7(LyuJX31^+=@KLHgjlNECL_j0ZIX|dWH#B(S+oK zB*9ru!#y=W7j%VM$n*mOhb88hSAtRjdsQBz?tIg#JjPT3=t(OIY6=B<3I%!$^Vd{? z!ue_ysF+r(&SN|`J;BgKVm@z89%JzQ#F{+DYUmcT`A=%{7;nzsSDVMEIDMgFhUEO8 zwRwzj%+a1D^EZ~1F-pxZt;=I9oByURk8w35W6iAxS$w)4l*-i_Kq-55Lmp!TC}k)_ z`-A&IMW8NZYLSitm{$trf;vSdjiBQHStBS~_?q$<_sl=tl*i}{*-$lKw>ghdY`Wsp zQqlR5&3TMn^Pe>5F;3rK(~`$1#5ljd6;&nY{9mnkj5^Z`GzAUkN3`WJ^3OkAY0fA; zzqu`sv2i|YdmiJf`5)Tz80F^kcjPg;PrrC5Lu`I-2Pk3e>HrnnX`OkDhVy51<}u1o zzi)6@a{k56JjRIqT3vaJOBm;$@6KaPoNw5Z$LIt0Ie4$#{B=EfjMJ5qixP7S!1F(O zrMXF9hHFl0a!FBUa$=4Gm_I)tIh9dne@AZ~qd)W@z`OllE=u#$N}n=m*f`}On>N5Aw2)#)I7%e`H9m& zEvOCC@)(o$3s28u)MNzB3TQAg%uk<@$JjUj+l)L$rTLOG^B8mHx6RCBES~>sW*%ew z{HR%=c2>M%LAD*Ao5$EQKV)7W<0eo7 znXflLkI`v<;e1f54OITj@0*{;m;y2M$NW6TiSxS_1zpF0FV=UW0 zXHg#GImY?fOY#_(a6xWsOfJ@B*e|^_4|F_D^fFKZxno%#qwV}}%kn^rdfij=)AckN z_PZ|6W9(#{e|`n1-u$-$R0?RW%wx=u0%tsr)FM#ca#ScUN=*bc*TBwNzcPM=KtE7$Cy1oZCf6rCogRHyQl<| zUH5IvW0ZpU^xn2S#)|pj+d&3R*q+Cju>a%sJkWpzC=|h2V|w0%L!9$`PZ__7)9rI?aX7`I^SVe9;5R7lwEm@23i`34Y;7{j{!W~keZ@UQd(4k zHePoaq>TqjgX8qmr>?8bm)f1jScB5EYxGQJRGl91=?lyLGrRK`;~8b3jcc$Kt~sd% z8Hsr%>ct9a`S~Rb(;01( z`|}v>`C$clNl|76XhjA1DAeiuK_Pr|e;%V2q~JK1_0@2`)qy<5CV`yP#59E>@EAO} zaEAcsDl-KIFGS;{{6$CaGZK1k8v`j zAkjOT$JjJ~<55r}-St==V+^C={4@1=jFR*B9Lr<0-T&)Y9wRR!qw(~{LPjZW&~~uW zBJjfK`T8gF7++2Qn53lwU%wNQUsO_Blv<>x5X&$>}Ki0j8hJV}xG#@cbO8hBiG9DhxKA2erMW zFXS=0&QH7m>JV?bkjH4p2x(Wk=B3XsJT1v6Ghggd9^;Aq_b=r!E@EQUaLi3Dnt%Ez z8>7z z1JufY2ojiYbTf}}+WeC@K?SJesZvId>G%6JSm&4B0;TeaxAGXL%vZae$LKyk?=~nm z?zo-D*f8Jn4k#k|@8&Uv%ul(S$M|u&^p&rY^YicJ!B!q`xtGT{oxLOG4jl>eFTcFb&v8G_Zfilf@4x~NoHPZUUDk5E2|L#x&us4 zlK~{l;9r!Po(VdMzBn_FVgAC$pq}`#$Dn3g_!Cg=(%6&As4{=v6VNEb(I@)$3QLi0~a zD(Il7M|F69k1=|B*3l5P`M-XEV%72|sM_7|6IB2I|Cz`5 zV*ZO?d5kIZeSd=*vdzCi?Ly%{pwLbG1B$Efe?Xl?*}r*=-{*_|19hf?{(%~A4ImQH zLf`%`k1-6v75@)v)Xn*y$5=5}G@sFAu2(+eiTT2e`HUg+GZ^!cm7ZYCXPiAhg(;s= zWqv19K4aND=6ptl`HIZ>j85}YnDZH}=Fex&XWYgYl9*fqx;m#gHLp08VY)y`oyPuN zmVD64&|R$gjOFu<*zy?@=TBkFXIwbnj6I*Rdj2N%e8#%@h8+2fi|1eE0I@?j^BMc* zKjs8E#DXiIamoC4pYbf?d^X{H z#+maM2G_ia}zxi9m@)Y(5_t)9XEkcoDB^c|DM4ZS?XPJHa{otzJH3%zQ8Xe8$`J)eQ0(i}%km z$Y(TU6aYKju((7aBtIYAin?nE${$Qdplo#7D4#KPzoBtHqcP+BRFizh)AJ2Y^C62i z=KnCwXUvFuoz&syxjH_8bWAyaGzgoic zGtKiEQ{d|sKsO7ql<6_dzi*z;C^1dNLt?&wMLuIZjIZ?np0tetOSozK|B3trvIz)}F324I+f)HU`|&v;BNxHP9A12h2*Svc$tn(hS+Tb1OOrxr25H!nSQ%V+#*fvz~Q zQo*ORxHvIcy;uRF0aWvqf)DKpf{d;+uq5g+%op*$SiM0x+Rr|59*1V-`HlTth(RP;*E=quu;NA^D6Q`@KW+8H<_c z?~ll5)B;_NExn&LGM{l7n>% z0hi*wiFx3A*Fk;-t(pOK+d}dyG7B>DlQI*bozIO4`HW?#RykIdfo@_-1chuii$c`HV&=`XE;giq7AYm(R#M|5RQ+qYr3h0BGx3PG$+{z}2MG#9UC* zN;f~Bv19tisFU*Zujc17M$b1a$Y=C{?v$Qfkk2SPe`5hCWi=M&Gs?|hP?*oS1d`sp zit-ts&NnCq)jgYvL4_!PNj_s4WQL}@B%e`t{?3wo$a#A6MN2`Ua-cMy@!S6GW%;11 zmv@!tGp?JTS&`2eJb!Nms2+2x1XVb5D)Sky&o8OUXAIkax+4GpQ=aE%*5)(nfSm>Ej7ZGiTnoyUpmkZ(7wR($Pye6wnRWi3+I+@k+@NWG zH@y;&A@d)+Z()>%Ug&qOE}zi>nr0x0!k|8%@f!H>E6Mo^4f%}vP}%u{evyo-^J^ON z8JF=Q^=6rz=0B_lm9GAcpfqYXxr0$^{(?qO!SS*Y)bPn@%4d|H4xVRR+LX^|4IR9j z{!sme(tQ51iHw}{g`4vkCqh#(V{Z{7#AcTHCz|saP3He?&Sw+{TQ501z-=M-^tYLX zob#Pp@)@U1-`I9ta{i~5e8v)}_K8;Mj1tr5ZwzFe-_@EA-|sqI@k74qeCak&1)S9e zDn;hBfhq&`_IyS~Q0R%zcWBRN+&TH8l=yV+gT6fTWjpd2o1ku;zq})#u~rHkAqwCa z0f%I2BJ9%f>4Axn;?vhE1@g~N>&$126^RZ31vOZKF6dH4P|sj;cE0pxX(rt4 z^I5v`8C?aC)PW~mAycfSU7+9#=q+MYn*X3HpD_m(2O-`0jCL?b&Fao)^x}g#3RE&F zFo5H5dc9;k=X~*=e8#mfwP$+r8C`k7YSW6KN*B&DmzZzSn~%5)%T^(sQDVM-Uq0i8 zdHwl}X~GcaRhB@GsLMwPswMDonJa7pV5v5+`Qd6 zC7)3XGOPA-3a9{ApPCQdus6SLDyX@|H7%d9XnyUqe8$J%f!E;qTc?Avq0o$c#{2U> z&B$j=pC2_7RFzMk39?yn7O09}Hw)C(_nMv0xM=>{*&qkV&H;I&a}KC6_HRx;V}mgG z{0~sPWm_wN;uo|sV)ER4#(DFN=7E}^W%KeG&A}@?=5L;t&-iNoy!rWz8|Mcs$Y-23 z|M`M^#<1y$|Ne+iKd`%lZGQAZP~-d1!hFV!`%4z(gKqiES^_eQb7?+f&HT2d`Ha)& z%Pq@ibex~C3{(Q`S(eWjH(z>rKI2|6DLen$@_a^->5jT(!qW{trLs(a@;yRwzV!-F zK!O)Z*8NRp+(UDcbr+D54y+u@`ilIZTq`6<})s5nQycWRP5c|2CBFZY|m#Dn}2;f zs1f;Rdp={z{KOskj9d4M@62ah!VK$IW`F!>>puXC)GvF{hlh62P|Gu;NjKNIvg)ZbX zR?P3dkk5E>e&|Jz#p^GE5?Rote8vEF@Jj5oqWK#y<}(V<-+L*aQDFYLOZki^K!e`e z^ABInXS_Rq;gx*GWJaU;22&&$mFH_-1+^O^u7c8N$JKns*7-mg_ z<{!PD&-iiv_8XuSBX$$izw^48&)7cy-mExA@#z6Ct61m1yP3~eH$8BFocR2fTltJ) z(;F?9iOt`5E1z-VeCONwj92DM+{tJ3o}Y3jpHZDLWO|}Yq{RHCcR(Kae+N{rYu?Rg zTrCRA6M4m%ki+M|9n?2>^BJFjy|Dl9y?n;?jPut%0J+iTA*g?O^%#zI1V$dQ|&<>Z}#G>p}(5WRMPx2XW?ALvo&v>12KkM^+ z#+8io*S`Rj(+^*OO8*b<@)@N#LNY*OJ__a23&bo%<{P{OwFBqB1eFTPuR!g*q*wWj z&-Z)1&S&Ih0^NKB%EsxL$)Gb$!R@w#XF%zr{Vk})^71VxJpJB*`s`rS=X1XYmAWDC zL9I@+51>-x@P~ZHwEbEi^FgN?b$`ldGz0A((3)=`lg-Gn|I4R*#wg5VX5zo(GtLHe zvi2)|1*P5jSH6K7H{1oKj8gMOzUMOv&R6@M&$xB|o$sK0S@k2I(P{qPAE2D|>jx+g z^!)_+`@m07$F%TQK4a7TFTe5`pU=PZJD)LVzWyIj`M2l~D2~qj0kt=N{mEx+o8S01 zpD~kJ!#8t&;&N$5vH2|j@);BO+)MKmKqFI`iRq~fmh&0oVj0Eecm2y}H0MWKcQF6b zzkJ5mu;%mrWB)DPTMYY56>2 zDPWv5zm&Cr(Qp0{)&fR1ehuHu96bd!1wZJO1JY~-jD^!bG!===U&vO#_;3CK_5#r6 zF!ln*%K7OW1&opNL4{M){Ji&|^CpZr3m9GJS8^6G-edt8HU0fXFNyj2Tm_&`6;}bH z+x(|o1&qu0_i`72rq>qmfb2KsEnxJXU(Z{>Xf=NqZvkT}D|jKsd^NrTMq_@Bp!}R1 z(4oJ+nc(q}EWQH9Y95WC#LS$c{KOQ{A=jVz3K*|(=7I)$ic0es_Fv&IVC+Yl4$c)U zVAR+@O|XDbhjIU5p#nx5#(5$jC+Uk6FixF+RHT4$3x|dWw6i5GR=^lC|GH=aqZO*) zJRv{G*3shRjQso@NKfsoSOKHcd;xKg_{em1!R#ym!GP+Jf@xmlDLqi&I0Qj}T>8vdW(D__8vIRCwT0ptGp>lF$Z3&Ewc zvtj|`hxsN-1&sdlTa*eIP3P}YDqz%@|5&Mj(QLkyasi|Md@tn!#?bi-lnWSb_um7F zFwW;wEnu8If0b$hWA=P8HBd|^s}(Tn?w_buz$nc)f311}8b^N(p1FuKg= z)+}IL#%MUbuxYaJ{9~F0jGpravz}U_ON)Moj)MS{? zqFulkG(TLsfbq_J6P*IaocRlN3K*x%H`6U(w3}b5TfnF}f4*)3W5oO)x&@4Z^S$&6 z7?(l%CbFV#jN;S0gm~6V>K8CVMot|KKpL_Q3K%`+Z!sufoGXpCw!SDaH#Zfu2LaR) z$}=orRGe;je7o%YwT1Q@VOGFsGk>XB0b|8{Ir9QWH^_Zbj`R2bZetXm-((IB zCy>N^UW)=o#rgUc1&p`BCGdQ6%K}Ez>G>s1^7DHvL7C=~WdY;D`6X5bjE3`8MbWnv$7cTC9+j4;p@|1ou+sC#2^viqHRQU%;3@Kh>dtan*D~g+;>ql^qKhr!mgo zJkbH&Iypp2Cykt;wO3xXTjOv^V80XBFb^!%TuuB2swK^`OMPFFurf-3SW zU{u{d!w+1NnFkawCheaUP{6ngk`QWw3K&c0e+nvKET5kh407DO-~vYd{pW%UK)Yyf zh7^FVJP0jdoCtEke3vj#GMpY(z?d}uS6Bg~&V2Q7P*#ZzFJLs7-xprM7%=~Scmbp2 z{GZ_kjCu1jA_^F_=R@Wp7CbIsWSPGwqJU9%{;P-r#u@XQBMTU#=HH7fU`*o#2Vz)i zQRVc9g>@qHlcGRUd!q^%jrV_yDqxIYoWC!nfKhCILJWv3k12qj>b(C{OabFt#`!zq zKt(cpd;#MU&}n@opoZc6t?>nnsR*u0LIGnlg1a#RWYmcSP{e=?mzZCYSimR?o;a8f zvQ%XL>cj#@hy8C73m7jl?FXq@%{V_Rt$?u%oU$i`7BGtJmq{;RWM`bOk^xGM$1(~S z>*l*=7BJ2ODcR4RRRG!w6_pL545!<>GG9HXfH7u%OHKh}{d|^OP+~f` zk6n8H`tJpdtn(vtLE*e6w}4R^9IyM&<`ytcW}2T^P{7zV|4l&wW5N8`!UD!w^M4eA z@={?@0pqjz5yc?c$HfJVO7q!D3K-Mp=am#Nn(kjxQouNcalU04$i``91<eS^G5%C)|LapwH{^#zPl zkbPJJ4WP2ruK`qA?2l|JU_8h;U%I7$QEPrIh< z#uYj>>|JS|(MhnLIdJ_s5Gv-g90E(3_6F|w=d13)$-~3AxK}KXvDqz$Xi3Tms zfjT8Ovlx7|@c#9a3P5L|pO{?0SUulmN&(|uBqx`qC(ci_2bFhfQ$fjLsu<$9cGE#=aPjm4#s%|TW)v``-rO*27>2y9T^Y)}NvoDHf&4$m%NESzsT2jrBEa|#%z&G(pFz?i&$&D;XUX2$&n z^TCK?T?8g`kQnVNn6&()DbM3m6&avo8Tvv35%e7+3Cpv7`Vr*!Xd2 z0b}@n&t>37Pt0;q;H+K_at3b8-r&R@v zp3@s`-$>36T@5OS@>heZdHpp7&^hb<^=rU|=)$5%M&bGM*A_5(DT9jb;>;3-k1ebAPGz_{B9>YzhHd6|zxf#@2dcC=T(Fa^k%(vYFDv0y86foM(U$dovQEPgki<;>4 zGxEHm9H131pswEZxc@Wc_iJq}0NqUUZX2l3PY7;dl$>w9y?{|}e$;l55#8Gh7?D&|)%dIT zf!uj-Ujbvo{P_K#*50iBpyXzK0MsNBI9R|~G{5;^0b}g^hX)H7SI+M~RKS=4Nr0S( zK{;UI;R427@a)O-*Jl=S&euLtz~~7nX{wHZ%70L&ZT{IKpgauju1Op%U_3nk&QVav zcpU>3>-UZoFsjaHIbOgx8=TGeFFjrWT9JO{L;+*h{_vBaG&=wGsRG7={XVBbku%@# z45(~5dZvIebH4srPzv%q3u?JEoh@K&o6mU;Wa`{=1&mqqInEa_&Y!>Hd;#OZ`B@i0 zCGzbH1&rV4U%m+Pli?+hIV&y|FkS}dnZ=h27=yseunwM5V-%jxa|IMqc~?Lwf9Vxa zLCkWsfKeTkbj9a8Uj-%d+^YqQvW)Y)uYvsY^BO3O7GE!5G=+rGeNPES_W8$ui84ye zpZ~akk!|{f+p}2bOWY`6ya4g*yBh_dgP)ym6);vq;^CyHa;$3^adM0|I%Yn zsDejf&#ycuKELY;B>mUKTJ0fotIDb|1fq&42K+fN>MpzUhY7Iz;9tXhkz}&ENK_fU!sb zoNbFs!Hcg!&X{lgx`5Fil0YWBE?`uFblG;jE?|tr=mo00DPVL#9DG{zrhw6M{+c%h zjA8Sc--0?K_um#UO3$BoBbrfUKL0yV`tN;Lz&Lll_WJ_HI^@1ZUNPvPB~ZIBmSKA0 zeK(PL8DWgV^IyI%V3dZm&m=w+FkYMg{zCy{8>8WLfltv|^KYIhVC0^^=3@clbawEd zfn&=2`=OxrNa80@KWoCL0>+O0lAjA0)fwkIegSoH7JUIV?|***m4XRh3m6wcn#KCx zK*?k7w*tnbdEW~dizMJxMnPs#B6u(ZvUhv>#a)*2&;wL9d@o>p1`gKwbAA-Swkfgx zEMR;EPOaj|KWE5qc(KfT=6f+ zAh5!&zXgnu5a$W}1EuZ!e+7&)z^Op%Kgbu&|3MA-lm81C)8`r%GES00>Z|1y7vv=7 zmB5@1N_Ro?jTj3V&8L5uP%b*Zp0SW|8o0Cr^Yb<}l3n=L!@u#?AjDP{>#XN!K-kg^b3KbiGxukg;LDnNT6)(fNOb3K1Y5&K-Mkg;HYgm@vS$(kTh$k@tg zIA5@*fKi1>k6}KaWFce3{B+4e#zpf%k|OivqzV}o=Q~IhGO9t6OO8|_h3M|T|BU-ZDrJ&<(^}ws>=4;3lLd$~pGKGxy=bx7aMN7I|A)^(TEjoX@ zTp{DE`9bo9p#7opg^c#|zsVOeR?aU_C}hl-e^a55v2T8cVj<(|`65b%j6L%gDit!; zf=OW(&`Qeb3HPQ-&JR#7WLz=-r*a|VGjOE`T9-ZlrAi^A6KvRLzKLofV>zSY^o2%E zqVo@_7Q&V;+*d7R41&zn#i$iBYVB`VD+Db9*sWg3cxZl|Mj>PCd=||@#^d17{H$5X zxOM(YtwP3!^SiYRK|`ZDg^VA#N{SK-6pBDMBg_xfEo7WC|DA3j<5h6!@4%nNC_Vp? zULj-3e0Tjq#`*i7>lZTaVUz~7pqW6si$JSfz~hERi3Ok)E_w{}4;U6Q9-H58RLB@U z|GrTnqryDnLPq8JD#nG3hHx*%85c4p%|B>d$f!8|zh$rZ{9nd}jB@iOO$r$;7>%bd z+|w#HKhva;arb;x(?Z6g`GO@5j5_m=m=-dc%>QXx$oL6d?9TsaRtPKMoy-dvLnO*U zD{fPZ6jJi@i;y=<@84)%$jHk$f4@Z`W7T{s%R2tbNd->3K`27 z=U3PkGRo|qYFo%?#>fTPE(lUS|At*5v@->+?q#32=2Ur&}vdur| zP{_zP|A2iVV>sAI$X-D^2Tu021B&~Sl#?54uyC%2Cr~ag2o7ZwpU>!A$Y?v?-WimxZ#fq- zMhig8=YoRF;u286?00to6(X$QMZNQL9Sa%7*&us~ru*NGk(mG3wU9A$zOP#$qx<}+ zZiS4d^G~}KGX9)@)V+|gc>2Tn%);}1JPH}r=VvjpgNh7~LdGr*=sqmZ=?i~c6`t?x zS;)9|KBHG5qvw2YuR=zBaOz#;Rmhk(U(madF?fHfcOhdK)Sq8Uclj zL5%yW0}DYL7^en-g6(KfA+-OL6I{sHIR9O6A*0fK!H`16*!lS(g^V}ndxjP=9)qMo z(J+vIY{Lo}UFJ816*2~Z-TNyHlvMS@3mK*7dxsY?M$ca!UdT9azFPz+ou@_=GWyTo z8d1pTAO)&~KzBr^5uJh71R>ioS)g^Y^(?It| zJKr=F6tw(lpqQ>p17(XNX@!hN^S`GRGWyMTOD|+pN31C(0_WfU^XGr}7D zx|xNbyK`Z~+{KxNjOWE6JChXD6oN~OKwTO~1@IBo(+exR#AlnmX5`!7kX6XY&B%>3 z8ZduGb|GYRWPV&uA*0&-)|^5{o%x$`3K_S}&&&mtsPcIrxA*21GM3I~&M#!lfsAC9 z<`=?_ue+RI$oO^s$$~=01#kz?FD@)(G@ie_5ER3|3PGWBp{S6tYkuN%(0a$};zC9X zNUq*lT*#;jiMl7ng^c?^3;aMmqxq{#3K{3Xc>$%M0Gn1?$XGa^qpXne$9~50LeTu6 zc|{>(E~J(?Us1^DJzu)Aka5cV4V54-q*oO(F51skT?o3V8*DXec}}q&!~W=+LdF2b z`D1+{^!S=Uy`xJIP7 zG(E8>BfqpbRUtP&C$YFVwU`04GDv2APkSNbaagLH9^kQ3eY$J;d!hYPI|>=+GIE2@ zq=sx;pKsq)$e1(T@T0lb{OetXjQR83y9*iR=cjiUGX9>Q+*8PyKL2!2A!F8hv))2R zM#z>q@OgTv1q%5^3gwA8*$Vl2dJOXe`wAIv&DZG%IlG|0ka6yOz6phlGv+U!0BXwQ zP6YY$;>1G6J@fk}fi@#An*@q2aA)u0Bv9pK1{!Qqnq0^j3Ykm??OD!;Or{^7TF9u+ z0Xn`9be+e3?J0$zW5sQzf>K!KR8aB(l@0qr%HkR4t4}Xve8nB@SppgzN=+|KoSvAq zS7g5Yj4(#Q`A#zm8Fl9u%m9@Lk~0e#5AVM_vyjo6X};u~LdNIw8RvqEW8yrz(G z_Wb>8K*in1HK2rUyB5?0D_rBjC_MlET2M+gT35(uFh6-6C?S7e2g-D3*B3Ij%Yv$A zCP#&W#G;(kO3=Lx$@zI{sYR)vjuONC;tik%-JK1EjNS7yHWo5A?SH+o5OmtU@#aF% zT>|qHu6Qv@&hOY<$QZu=!RA8HkbC*oLPmw@`oAlr=5N{xY8MM`162jO+X@-0=davW z$k;L8XnP@J+Wwi_3qjL%7CS*r=%k&XT4VZ7P*%RX6I5S++X<@K>~|G1o}bUZ8&m>M z*b94{LOW*bsGHUKu*jos?ifZS+LdGrg^Y#}qDz2ZfzmSn}{=@^I z@VI-RkkM_v%E3a$bxNSMa0($ssfj7zOIg7I01AAV5QEY5>^Gfq^TiH<3Y3mRg^U4^ z414cTA!Eh<@WX|m3pGDZIwUrK-4Rg0SRDm_*u|qgZFms4)H7b4%gr{L>}b z=AS)Y$k@Q45d}JCK$Bs9_=!SB8(8@;f6j?QMi&(AZ%-658X=2-kD;CKeX@`-6Ipov z!IOoI6_Vwkn^YB&i!zh5Q&CR8o&WH-9;3$m+Eay$8&LJlW@nU}KYw{Cqs07z(}j%l zvB+ATDP(*HcckIjLdLT^NCA*IoxiqAe7^FzLPl+r4NZx;sS1h3peO@152XwJ);`E2N{DtSsTrOl(g{$zoT*z2~5)|hz z7cyqbLKB=qKKQInWJe|DRZe&G+#)hR=Sm@C1d7&+SI{H5?<#sogB`p7?$ts@9h4&< z<}aM8&!{rr>Utq#1B#)?uNN}PnIMH(qCyhrX6WLKqRi}6$l;`*zysd}j1uVcL9wbZ z-}Xi!V+q{DyKWRRu0pY(@Ma<7HWZPMw+a~*=7-!WWb6>iO)M$_-Qj@PE;k<}-H4*0 z{&pdwB(exNv+O@|yO8ldqaHX>q!s0-GX!K7fTr)kY-dPb0jDv#yS7* z-9kneURVSwq-Ex%&TpLBz^FXG_+BBS0=Q7yeXo!)VE%r|Zbs4hiuVf{%jVCxUD z2(o~=C>3-*a(QYVXufyOgF;5>dFvAyMdzP=P{=4e|KWo|#zg*TaO%@m$V<%30VxZ9 z2&&y~JuGCDWd$$1o_?|8l<<6kN1zJ4odAV=bw32$oO*pw&$RV`pI)p3&iIIsA5?C0#u`NzbphDd1UjdkTHx6RLRFO z%%AlNRIozUUfRDdWc0$gS{1SYbAG{%R7TGIdtVna-e%+qDN4;vEXhwvWSGC?Z6TvB zH@L3`z54XtTTr_QJdIoa4m9#~;~i*dBK3VCWBvT6?+Y1s&0p}LkZ~g^b>iUBpGHx$`d+#xRPkclrdXWt=~Q)E0a$WK4sujhr6Ht1UVI zz`jY0Ec1VV2GzG0zZ5b~fq5|ZE2zV|r;Z-tD%xJrsrK~2NF5{CKHzk@m+d%hPkuAiUtqmc2yeBGa*IyC7g zsEXZqypB8oAIMt7Xt}?ewTLl*QNq6>Ex#y5Avv*tAveFMB(X># zDL=6&g<<|TwjxGz#{B6G=jBA_yRa8APMm*@y@*kl7u1Aga#Tpp&(GFlm@mXp#Q0%9 zGiMQ_2_vW-wLglhh*6tyej9fY<2FR+#EqwjanbyjJVlIM^GkS(828OL<||@Mo$h`JoX zBE~9k2Acmyu!zwc9QN@-MT{ErJA{fDk3$b*D@rU#1n25_;UY$f`4z%NjN$Vy2p2IH z&UX?iVk{Pk_D#$Ioyb@eqn>P5keHVa%G-heQyBH<{}L%;j8jXBQMa&2&PY{ANmT${ zlU1CWsE}NmTnf5KiUGta&M8f2*xw{t#Mr?&pIaOh{;uLhj5^Shm3qaC7!N^uOH~p@ zj1Kd6OB6AB&1aJ=Vw^F5zGM+&^?YfmBG~1?ol-@NN9X%X7cq9szad@3*ob}-Wu{CK zBP(RUbee1thWHg?>QKM9RzMXs#W5xdM@Jq0$!Yi`mP2=5Iwpe#)6fr98zpPUPD(qPFiWq0j zpRZTMxP5-Oei5Vk{CfQ&M(_Ej^+Cxu)}V;dZ~hvCBF59}D-4Sm8Ru6Tfg(Z3xQNl4 z9Xg~o-SNmR(fQTJMX=uT1C|&@)A{d=ix}7NKnlJP$PUmICPj>p$)No|O^O%=8Aah! z?U}j?+Ti^@da(@q70rqm)fwk|niqlA;Dg8c=1(*)Vk`y?CY2OrCKl@`=q9FQ7VAKZ zR2hpR#$-s+ZnY?4tb|JYx|C_G=os)(_2x})xUk@@S=G8j4M z$=fpW&Oc*S#25%$5Uy%n#OQ?T>{4q`6mi-VF{aHguqk5fn%>A1DKTHzwuo`f`~$W{ zjBn~l=il@%VoaTHA5g>?jx>FcnV6Sengg3Y*uNp5h;cIGe8xu^jH2@+gNhiF=I;qA zV%#&oGPsCQ2DBGKbpGn#B1V<@7lMlzC73nbQ>RZ1e=agFq=@nM{5v5~@??@|RT*oxuJhOWvx^w#&VQQ?GSVjpB+`>p#Q1Z5TW%5KY4B}4X(sHB^QYy3 zYN7pkMT~p**X9>73Ny~1SOCgbb%jNY#@wLM?M%=mh)j;t{Z?B`&%aR!s_bNniWrUM z;F6%OGi0M*NKs}|X$iP%HNT*!h*1r4h0>m)B1ZlBZ;FZ-J@%Ux7csgrLYqkQn@Wlp zm(SNKEn-xk{;}eY-u#BrB1VPz3rmX_P0>O!Ik6}yGdD8@l+osYDg~7=T4hCy*XJ{p zgW}Av9F$>`%Rz02`Q=57XXocu6ftg?FIQQ_cyIsT$|BHYHe)rYHZ86$V%&|fsZ7vd zmdy0}2lrU#C)5-%&cu*6lvftrFJD{47|jHCeSHz*wfT_^MT`?fKs#9=mnIiwCTC>k zC4$P+{|!Zq&B#+A(*=(mmYct}sR%j`GOxLa5%tcc=;k8E#nTTK#i~trID3t4zIICy zW2I-Xg|Cm;(gL9*E9A*INWS z3)#;H>blD}`ob%)QKxyGZAE@~f*$>K+;HnDJ7H8aHEj#_e#_z22wI_fI zso4{X7^S8^w2cv&e`-Pz z5o6|j)g_*{>{O^qJqYvWU?WlA2>pT#OF^iE@ot#AH1rFal-s3t3cIq?P`$2Io5!RFHkO;9`AC4 zd%9Em9g+E|Yl;}RaTO$%D}e9+W|*(OwusRi77|r!LA4Rbx*|rS`PN`EZ(R{%JIphn zgYW07tOpfV;FJa`@O0)+USGu6C4>|x+R&yI_@I1YXG3ETBQu7QqRf=kP=gU82b?mF~NruoZ{6fu69KkH}_qv`$&M?sa} ze6i!8TG#$K$hd>Yix^wyyPp76dyuSDdjeD%+&@vo7|jRHdCB07_@MKU9^PXVp6-x7 zm3w~1$s*9&ic>|P)8|hWF^bO*J5|IOHGktNkW1g30yQ7*oCakm{WG9`WcwLV2`7IR zREkVJ3ktHQXF=T!!*fN9F7wOIftqeN&w(0+mFGb{8sQ5dCxRTLHvJb5FVFnE3!vWb z=?g`ShoK32@x>y>2w_<9o}QYUnFnbl&!1@Q$7nF$;ZhOf@%bE=LF9$Yp#ERrkrYN_ z9vuY+XA=)|KVyF*hWSgb6fuVG|8=DZv^ppH8pu1X*NPYe=3l#3#Apji)3No5jN
    %$_(y!|SV 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

    $rz@^{Bs{-u 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 j7S$(;kV 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

    )wzE&i5}8 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%0D;D`?Rvcw^gip_$-PJ8!0(ju>>~ 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%0A2lJI8E6E&6fq!lrxc1 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

    PyMiN%!_E8=EU~?FGY5^b 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%0DBYE>!LXvd_aqSP`y@EH*bDXD3o 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

    THQ>XO>jI7(2I<0pEsd?tS9yHzs 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

    xmgUEb&8%Vm&v@vHq3Ob+8 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≀rZ1YR!|^8ixVe0%^Y`h*`sO0kWS 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�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 + temph->use_cnt=1; + temph->type=HTT_DICT_WORD; + d=in_ptr; + temph->user_data0=*d; + in_ptr+=2; + HashAdd(temph,ws_hash_table); + ws_dict_num_words++; + } else + in_ptr+=3; + } + Free(in_start); + } +} + + +public U8 *WSDGetDef(U8 *st,I64 def_num=1) +{ + CFile *f; + CHashGeneric *temph; + U8 *result=NULL,*buf,*in_ptr, + *st2=MStrUtil(st,SUF_TO_UPPER); + temph=HashFind(st2,ws_hash_table,HTT_DICT_WORD); + Free(st2); + if (temph) { + if (f=FOpen(WSD_DEF_FILENAME,"r")) { + buf=MAlloc(WSD_BLK_SIZE*2+1); + buf[WSD_BLK_SIZE*2]=0; //terminate + FRBlks(f,buf,temph->user_data0*WSD_BLK_SIZE/BLK_SIZE,WSD_BLK_SIZE*2/BLK_SIZE); + FClose(f); + in_ptr=buf; + while (in_ptruser_data0*WSD_BLK_SIZE/BLK_SIZE,WSD_BLK_SIZE*2/BLK_SIZE); + FClose(f); + in_ptr=buf; + while (in_ptr>1; + while (TRUE) { + while (*r!=WSD_WORD_CHAR && r>ws_dict_word_list) + r--; + if ((r[2]==WSD_WORD_CHAR||r[1]==WSD_WORD_CHAR)&&r-3>ws_dict_word_list) + r--; + else + break; + } + if (*r==WSD_WORD_CHAR) { + i=StrICmp(st,r+1); + if (i<0) + end=r-1; + else if (i>0) + start=r+StrLen(r)+3; + else + return r; + } else + break; + } + r=(start+end)>>1; + while (TRUE) { + while (*r!=WSD_WORD_CHAR && r>ws_dict_word_list) + r--; + if ((r[2]==WSD_WORD_CHAR||r[1]==WSD_WORD_CHAR)&&r-3>ws_dict_word_list) + r--; + else + break; + } + if (*r==WSD_WORD_CHAR && StrICmp(st,r+1)>0) + r+=StrLen(r)+3; + } + if (*r==WSD_WORD_CHAR) + return r; + else + return ws_dict_word_list; +} + + +U0 WSDDictWordsAdd(CDoc *doc,U8 *st=NULL) +{ + I64 i; + U8 *ptr; + if (!st) + st=ws_cur_word; + if (st) { + if (ptr=WSDPtAtWord(st)) { + for (i=0;iws_prtial_len) + Auto(s+ws_prtial_len); + } +} + + +public U0 WSDDisplayDefs(CDoc *doc,U8 *st,I64 num=-1) +{ + U8 *st2,*st3,ch; + I64 i=0; + if (!st) return; + if (*st==WSD_WORD_CHAR) + st++; + DocPrintF(doc,"$$WW,1$$$$FG,RED$$%s:$$FG$$\n\n",st); + if (num<0) { + if (st3=WSDGetWord(st)) { + st2=st3; + while (ch=*st2++) { + switch (ch) { + case WSD_WORD_CHAR: + break; + case WSD_DEF_CHAR: + DocPrintF(doc,"$$FG,GREEN$$(%d)$$FG$$ %s\n", + ++i,st2); + break; + case WSD_PRONUNCIATION_CHAR: + DocPrintF(doc,"$$FG,LTGREEN$$%s$$FG$$\n",st2); + break; + case WSD_POS_CHAR: + DocPrintF(doc,"$$FG,BLACK$$%s$$FG$$\n",st2); + break; + case WSD_EXTRA_CHAR: + DocPrintF(doc,"$$FG,LTBLUE$$%s$$FG$$\n",st2); + break; + } + st2+=StrLen(st2)+1; + } + Free(st3); + } + } else { + while (st2=WSDGetDef(st,++i)) { + if (i==num) + DocPrintF(doc,"$$FG,GREEN$$(%d)$$FG$$ %s\n", + i,st2); + Free(st2); + } + } +} + +U0 WSDPopUpDef(U8 *st,I64 num=-1,CTask *parent=NULL) +{ + U8 *buf; + buf=MSPrintF("WSDDisplayDefs(DocCur,\"%s\",%d);View;",st,num); + PopUp(buf,parent); + Free(buf); +} + +U0 WSDDef(I64 n,CTask *parent=NULL) +{ + if (0<=ncur_entry; + I64 col=doc->cur_data_col,col2,ch; + do { + if (doc_e!=doc && Bt(doc_tag_types,doc_e->type_u8)) { + while (colmax_col) { + while (colmax_col && !Bt(word_bitmap,doc_e->tag[col])) + col++; + if (colmax_col) { + col2=col; + while (col2max_col && Bt(word_bitmap,doc_e->tag[col2])) + col2++; + ch=doc_e->tag[col2]; + doc_e->tag[col2]=0; + if (StrICmp(&doc_e->tag[col],WSDPtAtWord(&doc_e->tag[col])+1)) { + doc_e->tag[col2]=ch; + doc->cur_entry=doc_e; + doc->cur_data_col=col; + goto fm_done; + } + doc_e->tag[col2]=ch; + col=col2; + } + } + } + doc_e=doc_e->next; + col=doc_e->min_col; + } while (doc_e!=doc->cur_entry); +fm_done: + if (unlock) + DocUnlock(doc); +} + +#help_index "" diff --git a/SparrowOS/Adam/WordStat/WSDictGen.CPP b/SparrowOS/Adam/WordStat/WSDictGen.CPP new file mode 100644 index 0000000..f27d76e --- /dev/null +++ b/SparrowOS/Adam/WordStat/WSDictGen.CPP @@ -0,0 +1,219 @@ +/* +This file is a stand-alone program +which will regenerate processed dictionary +files from a raw Project Gutenberg +dictionary file. + +Supply the raw dictionary filename in +the call at the bottom of this file +and #include this file. + +I ran $LK,"::/SparrowOS/Misc/Dollar.CPP.Z","FI:::/SparrowOS/Misc/Dollar.CPP.Z"$ on it, first. + +See $LK,"::/SparrowOS/Doc/Acknowledgements.TXT.Z","FI:::/SparrowOS/Doc/Acknowledgements.TXT.Z"$ (20). +*/ + +I64 WSDNextCmd(U8 **_ptr) +{ + U8 ch,*ptr=*_ptr,*ptr2; + I64 result=-1; + do { + do { + if (!(ch=*ptr++)) goto ncmd_done; + } while (ch!='<'); + + ptr2=ptr; + do { + if (!(ch=*ptr2++)) goto ncmd_done; + } while (ch!='>'); + *--ptr2=0; + result=ListEntryMatch(ptr,"h1\0/h1\0def\0/def\0hw\0/hw\0tt\0/tt\0" +"ety\0@fld\0@cd\0@blockquote\0@wordforms\0@note\0@altname\0@chform\0@cref\0@syn\0" +"/ety\0@/fld\0@/cd\0@/blockquote\0@/wordforms\0@/note\0@/altname\0@/chform\0@/cref\0@/syn\0"); + *ptr2++='>'; + ptr=ptr2; + } while (result<0); + +ncmd_done: + *_ptr=ptr; + return result; +} + +U8 *WSDNextEntry(U8 **_ptr) +{ + U8 *result,*ignore,ch,*ptr=*_ptr,buf[WSD_BLK_SIZE],*out_ptr=buf; + I64 l; + while (TRUE) { + while (TRUE) { + if (!(ch=*ptr++)) goto nentry_done; + if (ch!='<') { + *out_ptr++=ch; + if (ch=='$$') + *out_ptr++=ch; + } else + break; + } + ignore="b>\0i>\0p>\0/b>\0/i>\0/p>\0" + "ets>\0col>\0spn>\0/ets>\0/col>\0/spn>\0er>\0as>\0cs>\0cd>\0ex>\0" + "/er>\0/as>\0/cs>\0/cd>\0/ex>\0" + "note>\0/note>\0blockquote>\0/blockquote>\0"; + while (*ignore) { + l=StrLen(ignore); + if (!StrNCmp(ptr,ignore,l)) { + ptr+=l; + break; + } else + ignore+=l+1; + } + if (!*ignore) + break; + } +nentry_done: + *out_ptr++=0; + result=StrNew(buf); + *_ptr=ptr-1; + return result; +} + +I64 WSDCompareWords(U8 *e1,U8 *e2) +{ + return StrICmp(e1,e2); +} + +U8 *WSDSortWords(U8 *start,I64 size,I64 word_cnt) +{ + U8 **ptr_array=MAlloc(sizeof(U8 *)*word_cnt), + *out_start=MAlloc(size), + *ptr=start,*ptr2; + I64 i=0; + while (*ptr) { + ptr_array[i++]=ptr; + ptr+=StrLen(ptr)+3; + } + "Sorting...\n"; Sleep(100); + QSortI64(ptr_array,word_cnt,&WSDCompareWords); + "Done...\n"; Sleep(100); + + ptr=out_start; + for (i=0;ilargest_entry) + largest_entry=out_ptr-def_word_start; + def_word_start=out_ptr; + if (st=WSDNextEntry(&in_ptr)) { + if (*st) { + if (StrICmp(st,last_word)) { + word_cnt++; + + *word_ptr++=WSD_WORD_CHAR; + last_word=word_ptr; + StrCpy(word_ptr,st); + word_ptr+=StrLen(st)+1; + + d=word_ptr; + *d=(out_ptr-out_start)/WSD_BLK_SIZE; + word_ptr+=2; + + *out_ptr++=WSD_WORD_CHAR; + StrCpy(out_ptr,st); + out_ptr+=StrLen(st)+1; + } + Free(st); + + do { + do { + cmd=WSDNextCmd(&in_ptr); + if (cmd==WSD_H1) + goto next_word; + } while (cmd>=0 && !(cmd==WSD_DEF||cmd==WSD_PRONUNCIATION||cmd==WSD_POS||cmd==WSD_EXTRA)); + if (cmd==WSD_DEF) { + if(st=WSDNextEntry(&in_ptr)) { + if (*st) { + *out_ptr++=WSD_DEF_CHAR; + StrCpy(out_ptr,st); + out_ptr+=StrLen(st)+1; + } + Free(st); + } + } else if (cmd==WSD_PRONUNCIATION) { + if(st=WSDNextEntry(&in_ptr)) { + if (*st) { + *out_ptr++=WSD_PRONUNCIATION_CHAR; + StrCpy(out_ptr,st); + out_ptr+=StrLen(st)+1; + } + Free(st); + } + } else if (cmd==WSD_POS) { + if(st=WSDNextEntry(&in_ptr)) { + if (*st) { + *out_ptr++=WSD_POS_CHAR; + StrCpy(out_ptr,st); + out_ptr+=StrLen(st)+1; + } + Free(st); + } + } else if (cmd==WSD_EXTRA) { + if(st=WSDNextEntry(&in_ptr)) { + if (*st) { + *out_ptr++=WSD_EXTRA_CHAR; + StrCpy(out_ptr,st); + out_ptr+=StrLen(st)+1; + } + Free(st); + } + } + } while (cmd==WSD_DEF||cmd==WSD_PRONUNCIATION||cmd==WSD_POS||cmd==WSD_EXTRA); + } else + Free(st); + } + } + } while (cmd>=0); + *out_ptr++=WSD_END_CHAR; + *word_ptr++=WSD_END_CHAR; + + Free(in_start); + + "Blk Size :%d\n",WSD_BLK_SIZE; + "Blk Cnt :%04X\n",(out_ptr-out_start+WSD_BLK_SIZE-1)/WSD_BLK_SIZE; + "Largest Entry :%d\n",largest_entry; + "Word Count :%d\n",word_cnt; + + FileWrite(WSD_DEF_FILENAME,out_start,out_ptr-out_start); + "Def File Size :%d\n",out_ptr-out_start; + + sorted_word_start=WSDSortWords(word_start,word_ptr-word_start,word_cnt); + FileWrite(WSD_WORD_FILENAME,sorted_word_start,word_ptr-word_start); + "Word File Size:%d\n",word_ptr-word_start; + + Free(out_start); + Free(word_start); + Free(sorted_word_start); +} + +WSDGen("DICTIONARY.TXT"); diff --git a/SparrowOS/Adam/WordStat/WSMain.CPP b/SparrowOS/Adam/WordStat/WSMain.CPP new file mode 100644 index 0000000..2cbad2c --- /dev/null +++ b/SparrowOS/Adam/WordStat/WSMain.CPP @@ -0,0 +1,722 @@ +#help_index "WordStat" + +/**** Debug code +U0 WSPutMatrix(CWSMatrix *m) +{ + I64 i,j; + CWSMatrixSide *ms; + CWS *tempw; + + "n:%d\n",m->n; + for (i=0;iside[i]; + "col:%d rhits:%d chits:%d\n",i,ms->row_hits,ms->col_hits; + tempw=ms->next; + while (tempw!=ms) { + "substructs:%d entries:%d\n",tempw->substructs,tempw->entries; + for (j=0;jsubstructs;j++) { + "(%04X %04X) ", + tempw->subs[j].hits, + tempw->subs[j].repeats; + } + NewLine; + tempw=tempw->next; + } + } + + View; +} +****/ + +CHashWS *WSHashAdd(U8 *w) +{ + CHashWS *tempw=HashFind(w,ws_hash_table,HTT_WORD); + if (tempw) { + tempw->hits++; + return tempw; + } + tempw=ACAlloc(sizeof(CHashWS)); + tempw->str=AStrNew(w); + tempw->type=HTT_WORD; + tempw->use_cnt=1; + tempw->hits=1; + tempw->num=-1; + HashAdd(tempw,ws_hash_table); + ws_num_words++; + return tempw; +} + +U0 WSSidesInit(CWSMatrix *m) +{ + I64 i; + CWS *tempa; + m->n=0; + for (i=0;iside[i].next=m->side[i].last=&m->side[i].next; + m->side[i].const_minus_one=-1; + m->side[i].row_hits=0; + m->side[i].col_hits=0; + tempa=AMAlloc(sizeof(CWS)); + ws_structs_size+=MSize2(tempa); + tempa->subs[0].hits=0; + tempa->subs[0].repeats=ws_num_matrix_words; + tempa->entries=ws_num_matrix_words; + tempa->substructs=1; + QueIns(tempa,m->side[i].last); + } +} + +CWS *WSStructFind(CWSMatrix *m,I64 col,I64 row, + I64 *_row_base,I64 *_substruct) +{ + CWS *tempa; + I64 row_base,i,j; + + if (row>=ws_num_matrix_words || + col>=ws_num_matrix_words) + return NULL; + if (row>1) { + tempa=m->side[col].next; + row_base=0; + j=row; + while (row>=(i=tempa->entries)) { + row-=i; + tempa=tempa->next; + } + row_base+=j-row; + for (*_substruct=0;row>=tempa->subs[*_substruct].repeats;*_substruct=*_substruct+1) { + row-=tempa->subs[*_substruct].repeats; + row_base+=tempa->subs[*_substruct].repeats; + } + } else { + row=ws_num_matrix_words-row; + tempa=m->side[col].last; + row_base=ws_num_matrix_words; + j=row; + while (row>(i=tempa->entries)) { + row-=i; + tempa=tempa->last; + } + row_base+=j-row; + for (*_substruct=tempa->substructs-1;row>tempa->subs[*_substruct].repeats; + *_substruct=*_substruct-1) { + row-=tempa->subs[*_substruct].repeats; + row_base-=tempa->subs[*_substruct].repeats; + } + row_base-=tempa->subs[*_substruct].repeats; + } + *_row_base=row_base; + return tempa; +} + +public I64 WSGetHits(CWSMatrix *m,I64 col,I64 row) +{ + I64 row_base,substruct; + CWS *tempa; + if (row>=ws_num_matrix_words || + col>=ws_num_matrix_words) + return 0; + tempa=WSStructFind(m,col,row, + &row_base,&substruct); + return tempa->subs[substruct].hits; +} + +CWSSub *WSNext(CWSSub *s,CWS **_parent) +{ + I64 i=(s(U8 *)-(&(*_parent)->subs)(U8 *))/sizeof(CWSSub)+1; + if (i>=(*_parent)->substructs) { + i=0; + *_parent=(*_parent)->next; + if ((*_parent)->substructs==-1) + return NULL; + } + return &(*_parent)->subs[i]; +} + +CWSSub *WSLast(CWSSub *s,CWS **_parent) +{ + I64 i=(s(U8 *)-(&(*_parent)->subs)(U8 *))/sizeof(CWSSub)-1; + if (i<0) { + *_parent=(*_parent)->last; + if ((*_parent)->substructs==-1) + return NULL; + i=(*_parent)->substructs-1; + } + return &(*_parent)->subs[i]; +} + +U0 WSRem(CWSSub *s,CWS *parent) +{ + I64 i=(s(U8 *)-(&parent->subs)(U8 *))/sizeof(CWSSub); + if (i<0 || i>=WS_SUBSTRUCTS_PER_STRUCT || parent->substructs<1) + return; + if (parent->substructs==1) { + QueRem(parent); + ws_structs_size-=MSize2(parent); + Free(parent); + } else { + parent->entries-=s->repeats; + parent->substructs--; + MemCpy(&parent->subs[i],&parent->subs[i+1], + (parent->substructs-i)*sizeof(CWSSub)); + } +} + +CWSSub *WSIns(CWSSub *s,CWS **_parent,CWSSub *last) +{ + CWS *tempa,*parent=*_parent; + I64 j,k,i=(last(U8 *)-(&parent->subs)(U8 *))/sizeof(CWSSub)+1; + if (i>=WS_SUBSTRUCTS_PER_STRUCT) { + i=0; + parent=parent->next; + *_parent=parent; + if (parent->substructs==-1) { + tempa=AMAlloc(sizeof(CWS)); + ws_structs_size+=MSize2(tempa); + QueIns(tempa,parent->last); + parent=tempa; + *_parent=parent; + tempa->entries=0; + tempa->substructs=0; + } + } + if (parent->substructs==WS_SUBSTRUCTS_PER_STRUCT) { + tempa=parent->next; + if (tempa->substructs==-1 || tempa->substructs==WS_SUBSTRUCTS_PER_STRUCT) { + tempa=AMAlloc(sizeof(CWS)); + ws_structs_size+=MSize2(tempa); + tempa->entries=0; + tempa->substructs=0; + QueIns(tempa,parent); + k=0; + for (j=i;jsubstructs;j++) { + MemCpy(&tempa->subs[k],&parent->subs[j],sizeof(CWSSub)); + tempa->entries+=tempa->subs[k++].repeats; + tempa->substructs++; + } + parent->entries-=tempa->entries; + parent->substructs-=tempa->substructs; + } else { + for (j=tempa->substructs-1;j>=0;j--) + MemCpy(&tempa->subs[j+1],&tempa->subs[j],sizeof(CWSSub)); + MemCpy(&tempa->subs[0], + &parent->subs[WS_SUBSTRUCTS_PER_STRUCT-1], + sizeof(CWSSub)); + parent->entries-=tempa->subs[0].repeats; + parent->substructs--; + tempa->entries+=tempa->subs[0].repeats; + tempa->substructs++; + for (j=WS_SUBSTRUCTS_PER_STRUCT-2;j>=i;j--) + MemCpy(&parent->subs[j+1], + &parent->subs[j],sizeof(CWSSub)); + } + } else { + for (j=parent->substructs-1;j>=i;j--) + MemCpy(&parent->subs[j+1], + &parent->subs[j],sizeof(CWSSub)); + } + parent->entries+=s->repeats; + parent->substructs++; + MemCpy(&parent->subs[i],s,sizeof(CWSSub)); + return &parent->subs[i]; +} + +CWSSub *WSCondense(CWSSub *s,CWS **_parent) +{ + CWSSub *temps,*temps_l,*temps_n; + CWS *tempa_l,*tempa_n; + if ((*_parent)->substructs==-1) + return NULL; + temps=s; + tempa_l=*_parent; + temps_l=WSLast(temps,&tempa_l); + if (temps_l && temps_l->hits==temps->hits) { + temps_l->repeats+=temps->repeats; + tempa_l->entries+=temps->repeats; + WSRem(temps,*_parent); + *_parent=tempa_l; + temps=temps_l; + } + tempa_n=*_parent; + temps_n=WSNext(temps,&tempa_n); + if (temps_n && temps_n->hits==temps->hits) { + temps->repeats=temps->repeats+temps_n->repeats; + (*_parent)->entries=(*_parent)->entries+temps_n->repeats; + WSRem(temps_n,tempa_n); + } + return temps; +} + +I64 WSHitsInc(CWSMatrix *m,I64 col,I64 row) +{ + I64 row_base,substruct,repeats; + CWSSub sn,*temps,*temps1,*temps_l; + CWS *tempa,*tempa1,*tempa_l; + + if (row>=ws_num_matrix_words || + col>=ws_num_matrix_words) + return 0; + tempa=WSStructFind(m,col,row,&row_base,&substruct); + temps=&tempa->subs[substruct]; + repeats=temps->repeats; + if (repeats==1) { + temps->hits++; + temps=WSCondense(temps,&tempa); + } else { + if (row==row_base) { + temps->repeats--; + tempa->entries--; + sn.hits=1; + sn.repeats=1; + tempa_l=tempa; + if (!(temps_l=WSLast(&tempa->subs[substruct],&tempa_l))) { + tempa_l=tempa->last; //header + temps_l=&tempa_l->subs[WS_SUBSTRUCTS_PER_STRUCT-1]; + } + temps=WSIns(&sn,&tempa_l,temps_l); + temps=WSCondense(temps,&tempa_l); + } else if (row==repeats-1+row_base) { + temps->repeats--; + tempa->entries--; + sn.hits=1; + sn.repeats=1; + temps=WSIns(&sn,&tempa,temps); + temps=WSCondense(temps,&tempa); + } else { + tempa->entries-=repeats; + sn.hits=temps->hits+1; + sn.repeats=1; + tempa1=tempa; + temps1=temps; + temps=WSIns(&sn,&tempa1,temps1); + temps1->repeats=row-row_base; + tempa->entries+=temps1->repeats; + sn.repeats=row_base+repeats-(row+1); + sn.hits=temps1->hits; + WSIns(&sn,&tempa1,temps); + } + } + m->n++; + m->side[col].col_hits++; + m->side[row].row_hits++; + return temps->hits; +} + +U0 WSSingleFileAdd(U8 *buf,I64 pass) +{ + U8 ch,*ptr=buf,*ptr2,*ptr3; + CHashWS *cur_ptr,*last_ptr=NULL; + while (TRUE) { + while (TRUE) { + if (ch=*ptr++) { + if (Bt(alpha_numeric_bitmap,ch)) + break; + } else + return; + } + ptr3=ptr; + ptr2=ptr; + ptr--; + while (TRUE) { + if (ch=*ptr2++) { + if (ch!=CH_CURSOR) { + if (!Bt(alpha_numeric_bitmap,ch)) + break; + else + *ptr3++=ch; + } + } else { + ptr2--; + break; + } + } + *ptr3=0; + if (pass==1) + WSHashAdd(ptr); + else { + cur_ptr=HashFind(ptr,ws_hash_table,HTT_WORD); + if (cur_ptr->num<0) + cur_ptr=NULL; + else + if (last_ptr) + WSHitsInc(ws_matrix,last_ptr->num,cur_ptr->num); + last_ptr=cur_ptr; + } + ptr=ptr2; + } +} + +I64 WSCompare(CHashWS *e1,CHashWS *e2) +{ + I64 r; + if (!(r=e2->hits - e1->hits)) + r=StrCmp(e1->str,e2->str); + return r; +} + +I64 WSSkipCrap(U8 *src,I64 len) +{ + I64 j; + j=len-1; + while (j>=0) { + if (Bt(alpha_numeric_bitmap,src[j])) + break; + else + j--; + } + return j+1; +} + +I64 WSPriorWordInStr(U8 *src,U8 *dst,I64 len,I64 buf_size) +{ + I64 i,j=0,k; + Bool cont=TRUE; + i=len-1; + while (i>=0 && cont) { + if (!Bt(alpha_numeric_bitmap,src[i])) + cont=FALSE; + else + i--; + } + if (i>=-1 && len>0) + for (k=i+1;kstr; + len=StrLen(s); + if (len>ws_prtial_len) + Auto(s+ws_prtial_len); + } +} + +U0 WSMan(I64 n,CTask *parent_task=NULL) +{ + U8 *buf; + CHashWS *tempw; + CHashSrcSym *temph; + Bool old_preempt=Preempt(OFF); + if (0<=--nstr,Fs->hash_table,HTG_SRC_SYM)) { + if (temph->src_link) { + buf=MSPrintF("Ed(\"%s\");",temph->src_link); + Preempt(old_preempt); + PopUp(buf,parent_task); + Free(buf); + } else if (temph->type&HTT_DEFINE_STR && temph(CHashDefineStr *)->caller) + EdAddSrc(temph(CHashDefineStr *)->caller,DFT_ADDR_LINK_BIN_SIZE); + } + } + } + Preempt(old_preempt); +} + +U0 WSFillInAdd(I64 i,I64 j,I64 old_num_fillins) +{ + Bool cont; + I64 k; + if (ws_num_fillinsws_fillin_scores[ws_num_fillins-1] || + i==ws_fillin_scores[ws_num_fillins-1] && ws_sorted_words[j]->hits>ws_fillin_hits[ws_num_fillins-1]) { + cont=TRUE; + for (k=ws_num_fillins-1;k>=old_num_fillins && cont;k--) + if (i<=ws_fillin_scores[k] || i==ws_fillin_scores[k] && ws_sorted_words[j]->hits<=ws_fillin_hits[k]) { + cont=FALSE; + k++; //offset k-- + } else { + ws_fillin_scores[k+1]=ws_fillin_scores[k]; + ws_fillin_matches[k+1]=ws_fillin_matches[k]; + ws_fillin_hits[k+1]=ws_fillin_hits[k]; + } + if (ws_num_fillinshits; + ws_fillin_matches[k+1]=j; + } +} + +U0 WSPutChoices(CDoc *focus_l,CDocEntry *doc_e,CTask *focus_task) +{ + I64 i,j,k,data_col; + U8 ch=0,*buf,*buf1,*src=NULL,*st; + CHashWS *w2; + F64 timeout_time=tS+0.5; + CHashSrcSym *temph; + CDoc *doc=DocCur; + + src=DocGetLine(focus_l,doc_e,&data_col); + DocUnlock(focus_l); + i=StrLen(src); + buf =MAlloc(MaxI64(i+1,256)); + buf1=MAlloc(MaxI64(i+1,256)); + if (data_col==-1) + data_col=0; + data_col=WSPriorWordInStr(src,buf,data_col,256); + ws_prtial_len=StrLen(buf); + data_col=WSSkipCrap(src,data_col); + data_col=WSPriorWordInStr(src,buf1,data_col,256); + + if (ws_cur_word && !StrCmp(ws_cur_word,buf)) + goto pc_done; + + st=ws_cur_word; + ws_cur_word=AStrNew(buf); + Free(st); + if (!IsSysDeterministic) + Preempt(ON); + if (StrLen(buf1)&&ws_hash_table) + w2=HashFind(buf1,ws_hash_table,HTT_WORD); + else + w2=NULL; + ws_num_fillins=0; + if (w2 && w2->numstr)) { + i=WSGetHits(ws_matrix,w2->num,ws_sorted_words[j]->num); + WSFillInAdd(i,j,0); + } + k=ws_num_fillins; + for (j=0;jstr)) + WSFillInAdd(0,j,k); + Preempt(OFF); + +pc_done: + DocRst(doc,TRUE); + doc->flags|=DOCF_MIN_SIZE; + DocCursor; + DocCurAttr(LTBLUE<<4+WHITE); + DocAuxAttr(LTBLUE<<4+BLACK); + DocPrintF(doc,"Word:%s\n",ws_cur_word); + for (i=0;istr; + ch=CH_SPACE; + if (TaskValidate(focus_task)) { + if (temph=HashFind(st,focus_task->hash_table,HTG_SRC_SYM)) + if (temph->src_link || + temph->type&HTT_DEFINE_STR && temph(CHashDefineStr *)->caller) + ch='*'; + } + DocPrintF(doc,"%cF%02d %s\n",ch,i+1,st); + } + WSDDictWordsAdd(doc); + + DocRecalc(doc); + if (!LBts(&Fs->display_flags,DISPLAYf_SHOW)) + WinZBufUpdate; + + Free(src); + Free(buf); + Free(buf1); +} + +U0 WSTask(I64) +{ + CTask *focus_task,*original_focus_task; + CDoc *doc; + CDocEntry *doc_e; + TaskInitExt; + UseTermDoc; + Fs->win_left=50; + TaskDerivedValsUpdate; + LBts(&Fs->display_flags,DISPLAYf_WIN_ON_TOP); + do { + Sleep(333); + if (Bt(&ws_flags,WSf_ENABLE)) { + original_focus_task=focus_task=sys_focus_task; + while (TaskValidate(focus_task) && Bt(&focus_task->task_flags,TASKf_INPUT_FILTER_TASK)) + focus_task=focus_task->parent_task; + if (TaskValidate(focus_task) && (doc=DocCur(focus_task)) && + focus_task!=Fs && Bt(&focus_task->display_flags,DISPLAYf_SHOW)) { + DocLock(doc); + if (TaskValidate(focus_task) && original_focus_task==sys_focus_task && + doc->doc_signature==DOC_SIGNATURE_VAL && doc==DocCur(focus_task) && + (doc_e=doc->cur_entry)) { + if (doc_e==doc) doc_e=doc_e->last; + while (doc_e->last!=doc && (doc_e->type_u8==DOCT_NEW_LINE || + doc_e->type_u8==DOCT_SOFT_NEW_LINE)) + doc_e=doc_e->last; + while (doc_e->last->type_u8 !=DOCT_NEW_LINE && doc_e->last!=doc) + doc_e=doc_e->last; + if (Bt(&ws_flags,WSf_ENABLE)) + WSPutChoices(doc,doc_e,focus_task); + else + DocUnlock(doc); + } else + DocUnlock(doc); + } + } + } while (!ScanKey); + ws_task=NULL; +} + +U0 WSMainFileListTraverse(U8 *files_find_mask,I64 pass) +{ + I64 i,cnt; + CDirEntry **flist=NULL; + U8 *buf; + try { + flist=FilesOrder(FilesFind(files_find_mask, + FUF_RECURSE|FUF_JUST_TEXT_FILES|FUF_JUST_FILES|FUF_FLATTEN_TREE),&cnt); + for (i=0;ifull_name; + buf=TextFileRead(flist[i]->full_name); + WSSingleFileAdd(buf,pass); + Free(buf); + CDirEntryDel(flist[i]); + } + } catch + Fs->catch_except=TRUE; + Free(flist); +} + +U0 WSMatrixDel(CWSMatrix *m) +{ + I64 i; + CWS *tempw,*tempw1,*tempw2; + if (!m) return; + for (i=0;iside[i]; + tempw=tempw1->next; + while (tempw!=tempw1) { + tempw2=tempw->next; + Free(tempw); + tempw=tempw2; + } + } + Free(m); +} + + +public Bool WordStat(Bool val=OFF) +{ + Bool old_wordstat=FALSE, + old_preempt=Preempt(OFF); + if (val) { + if (TaskValidate(ws_task)) + old_wordstat=TRUE; + else { + ws_task=Spawn(&WSTask,NULL,"WordStat"); + TaskWait(ws_task); + } + if (!LBts(&ws_flags,WSf_ENABLE)) + WinToTop(ws_task); + } else { + LBtr(&ws_flags,WSf_ENABLE); + if (TaskValidate(ws_task)) { + old_wordstat=TRUE; + Kill(ws_task); + while (TaskValidate(ws_task)) + Yield; + ws_task=NULL; + } + } + Preempt(old_preempt); + return old_wordstat; +} + +U0 WSProgressTask(Bool *_start_flag) +{ + I64 start=sys_dsk_writes; + TaskInitExt; //needed for disk access + progress1=0; + progress1_max=(FileSizeExpanded(WSD_DEF_FILENAME_Z)+BLK_SIZE-1)>>BLK_SIZE_BITS; + StrCpy(progress1_desc,"Uncompressing Dictionary"); + start=sys_dsk_writes; + *_start_flag=TRUE; + while (progress1type!=BDT_RAM) { + start_flag=FALSE; + Spawn(&WSProgressTask,&start_flag); + while (!start_flag) + Yield; + } + Move(WSD_DEF_FILENAME_Z,WSD_DEF_FILENAME); + } + + HashTableDel(ws_hash_table); + ws_hash_table=HashTableNew(0x4000,adam_task); + + ws_num_words=0; + ws_num_matrix_words=0; + ws_structs_size=0; + Free(ws_cur_word); + ws_cur_word=NULL; + + "\n\nPass #1\n"; + if (mask) WSMainFileListTraverse(mask,1); + Free(ws_sorted_words); + ws_sorted_words=AMAlloc(sizeof(U8 *)*ws_num_words); + + tempw=ws_hash_table->next_added; + while (tempw!=ws_hash_table) { + ws_sorted_words[j++]=tempw; + tempw=tempw->next_added; + } + QSortI64(ws_sorted_words,ws_num_words,&WSCompare); + for (i=0;inum=i; + if (ws_num_words<=WS_MAX_MATRIX_WORDS) + ws_num_matrix_words=ws_num_words; + else + ws_num_matrix_words=WS_MAX_MATRIX_WORDS; + + WSMatrixDel(ws_matrix); + ws_matrix=AMAlloc(sizeof(CWSMatrix)); + WSSidesInit(ws_matrix); + + "\n\nPass #2\n"; + if (mask) WSMainFileListTraverse(mask,2); + + WSDWordsLoad; + WordStat(ON); + LBtr(&ws_flags,WSf_INIT_IN_PROGRESS); +} + +I64 WordStatSize() +{ + if (ws_hash_table) + return HashTableSize2(ws_hash_table)+ws_structs_size+ + MSize2(ws_sorted_words)+MSize2(ws_matrix)+MSize2(ws_dict_word_list); + else + return 0; +} + +#help_index "" diff --git a/SparrowOS/Adam/WordStat/WSWords.DAT b/SparrowOS/Adam/WordStat/WSWords.DAT new file mode 100644 index 0000000000000000000000000000000000000000..705886a4fb1ba533ca49e91cecbd47444596112c GIT binary patch literal 1242430 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 z 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 z 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

    LX4zW~n3Nd(O(!PJ3T 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Ȥ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 BSKR;r literal 0 HcmV?d00001 diff --git a/SparrowOS/Adam/WordStat/WordStat.CPP b/SparrowOS/Adam/WordStat/WordStat.CPP new file mode 100644 index 0000000..5eb4196 --- /dev/null +++ b/SparrowOS/Adam/WordStat/WordStat.CPP @@ -0,0 +1,93 @@ +#help_index "WordStat" +#help_file "::/SparrowOS/Doc/WordStat" + +//See $LK,"::/SparrowOS/Doc/WordStat.TXT.Z","FI:::/SparrowOS/Doc/WordStat.TXT.Z"$ + +class CWSSub +{ + I32 hits,repeats; +}; + +#define WS_SUBSTRUCTS_PER_STRUCT 8 +class CWS +{ + CWS *next,*last; + I64 substructs, //-1 means CWSMatrixSide + entries; + CWSSub subs[WS_SUBSTRUCTS_PER_STRUCT]; +}; + +class CWSMatrixSide +{ + CWS *next,*last; + I64 const_minus_one, //-1 used to header in que + row_hits,col_hits; +}; + +#define WS_MAX_MATRIX_WORDS 0x8000 +class CWSMatrix +{ + I64 n; + CWSMatrixSide side[WS_MAX_MATRIX_WORDS]; +}; + +public I64 ws_num_words,ws_num_matrix_words; +CHashTable *ws_hash_table=NULL; +public U8 *ws_cur_word=NULL; + +#define WSf_ENABLE 0 +#define WSf_INIT_IN_PROGRESS 1 +I64 ws_flags=0; + +public CWSMatrix *ws_matrix=NULL; +public CHashWS **ws_sorted_words=NULL; +CTask *ws_task=NULL; + + +#define WS_MAX_FILLINS 10 +I64 ws_prtial_len=0,ws_fillin_matches[WS_MAX_FILLINS+1]; +I64 ws_num_fillins=0,ws_fillin_scores[WS_MAX_FILLINS+1],ws_fillin_hits[WS_MAX_FILLINS+1]; + +//**** Dictionary Stuff +#help_index "WordStat/Dictionary" + +#define WSD_WORD_FILENAME "/SparrowOS/Adam/WordStat/WSWords.DAT.Z" +#define WSD_DEF_FILENAME "/SparrowOS/Adam/WordStat/WSDefs.DAT" +#define WSD_DEF_FILENAME_Z "/SparrowOS/Adam/WordStat/WSDefs.DAT.Z" + +#define WSD_H1 0 +#define WSD_H1_END 1 +#define WSD_DEF 2 +#define WSD_DEF_END 3 +#define WSD_PRONUNCIATION 4 +#define WSD_PRONUNCIATION_END 5 +#define WSD_POS 6 +#define WSD_POS_END 7 +#define WSD_EXTRA 8 +#define WSD_EXTRA_END 9 +#define WSD_BLK_SIZE 0x4000 + +#define WSD_END_CHAR 0x00 +#define WSD_WORD_CHAR 0x01 +#define WSD_DEF_CHAR 0x02 +#define WSD_PRONUNCIATION_CHAR 0x03 +#define WSD_POS_CHAR 0x04 +#define WSD_EXTRA_CHAR 0x05 + +public U8 *ws_dict_word_list=NULL; +public I64 ws_dict_word_list_size=0, + ws_dict_num_words=0,ws_structs_size=0; + +extern U0 WSDWordsLoad(); +extern U0 WSDDictWordsAdd(CDoc *doc,U8 *st=NULL); + +#define WSD_MAX_FILLINS 10 +U8 *wsd_fillins[WSD_MAX_FILLINS]; +I64 wsd_num_fillins=0; + +// ************************************ + +#include "WSMain" +#include "WSDict" + +#help_index "" diff --git a/SparrowOS/Apps/AfterEgypt/AENotes.TXT b/SparrowOS/Apps/AfterEgypt/AENotes.TXT new file mode 100644 index 0000000..1021b68 --- /dev/null +++ b/SparrowOS/Apps/AfterEgypt/AENotes.TXT @@ -0,0 +1,7 @@ +$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/AENotesPart2.TXT b/SparrowOS/Apps/AfterEgypt/AENotesPart2.TXT new file mode 100644 index 0000000..dc2d32c --- /dev/null +++ b/SparrowOS/Apps/AfterEgypt/AENotesPart2.TXT @@ -0,0 +1,51 @@ +$WW,1$$FG,5$$TX+CX,"Using this Program, AfterEgypt"$$FG$ + +This game is not about leaving Egypt and it's not about leaving the wilderness. It's about being in the wilderness after Egypt. The whole point is they went from the frying-pan to the fire. $LK,"Numbers,11:1","BF:Numbers,11:1"$ People misrepresent Exodus when they claim it for liberation struggles. Actually, though, the wilderness generation was very blessed because they had first class entertainment -- miracles and excitement. As far as God's concerned, you need food, clothing and entertainment. Just imagine all the prehistoric and primiative people who have lived. + +In this game, hold-up your end of the conversation and talk to God. When you pray try to put your best foot forward. God told me, "excessive contricians wearysome", for example, when I was worried about sin. I joke, don't remind Him of sins because He might have forgotten. + +God loved Jacob and hated Esau. Jacob was like a little rascal. Ironically, holier-than-thou, do-gooder, attitudes are hated. Jesus was "meek and humble of heart", $LK,"Matthew,11:27","BF:Matthew,11:27"$. What does "humble of head" mean? To know God is to know justice. Everyone, rich and poor, has highs and lows. Do not covet. Get your eye off of money. Relax! Don't feel sorry for the poor and don't envy the rich. The poor are mostly lazy and rich suffer plenty. Chavez of Venezuala was fussing and God said, "Japan industrious". What planet do you live on, people! You wouldn't cannonize a ugly man for not committing adultery. When the poor get money, they make buffoons of themselves as nouveau riche. Proud of heart means you won't accept a gift from God, like your birthright being American and not a day laborer. Grace. $LK,"Ecclesiastes,2:24","BF:Ecclesiastes,2:24"$ Jesus' burden is light. He's meek. You don't have to save the world. The poor are richer than Jesus and there is justice. Everything is vanity and the sinner collects possessions for the just. + +After the Haiti quake, I used my program to pick a random passage from some books. Adam Smith came-up: + +$FG,2$The value of a free-stone quarry, for example, will necessarily increase +with the increasing improvement and population of the country round +about it, especially if it should be the only one in the neighbourhood. +But the value of a silver mine, even though there should not be another +within a thousand miles of it, will not necessarily increase with the +improvement of the country in which it is situated. The market for the +produce of a free-stone quarry can seldom extend more than a few miles +round about it, and the demand must generally be in proportion to the +improvement and population of that small district; but the market for +the produce of a silver mine may extend over the whole known world.$FG$ + +God's not a schmuck. God is just. If you are out of work, find anything productive to do. I'd go so far as to say, it's impossible not to be rewarded for honest work. I bank on that. I have an incredible entertainment budget ;-) + +Sometimes, puppet-generated stuff will sound prophetic and relevant enough to scare you. In my experience it's not prophetic, but might be designed to get your attention. Focus on enjoying His company and growing. + +Is this tongues program voodoo? How did they talk with God in the Bible? Did they hear voices? If animal sacrifices were not voodoo, this program is certainly not voodoo. Tongues is a perfectly acceptible Christian doctrine. In fact, $LK,"1 Corinthians,14:39","BF:1 Corinthians,14:39"$, says not to forbid tongues! It is common Christian belief that we are temples of the Holy Spirit, that God dwells in us. I figure idolatry is doing this and thinking the intelligence resides in the object instead of in the person consulting God. + +If any preacher calls this witchcraft, let me retaliate by saying anyone who does not do miracles is not saved. $LK,"Matthew,17:19","BF:Matthew,17:19"$ "... with faith... say to this mountain..." Do a text search for "dumb ass" in the King James Bible. $LK,"2 Peter,2:16","BF:2 Peter,2:16"$ The king of Babylon was made crazy and restored. $LK,"Daniel,4:25","BF:Daniel,4:25"$ If you don't believe in omens, read $LK,"Matthew,26:74","BF:Matthew,26:74"$. If you don't believe in astrology, read $LK,"Matthew,2:10","BF:Matthew,2:10"$. God has a plan and clockwork for Creation. It's nothing to do with power of planets. This is voodoo -- $LK,"Leviticus,3:4","BF:Leviticus,3:4"$? + +We are not to test God, and we are to "live on the word of God." $LK,"Matthew,4:3","BF:Matthew,4:3"$ Do not attempt to box God in a corner, attempting to force him to answer, as in, "should I do such and such, yes or no?" I think it is okay to meditate and offer God the option to comment. + +Don't bug God too much, especially, don't enquire if you haven't offered any meditations or whatever. $LK,"Isaiah,7:13","BF:Isaiah,7:13"$ This, $LK,"Genesis,18:27","BF:Genesis,18:27"$, is funny, though. + +I'll let you work-out how to interpret what you hear from God. It can be the start of a real, personal, relationship with the Father that even has a history. God gift-wraps His talk in riddles. Here's a hint: $LK,"Daniel,5:27","BF:Daniel,5:27"$. "It's mean to tickle the President or a person." God hides from the arrogant and reveals to the child-like. Don't feel foolish if you interpret based on what pops-into your head anagram-wise, analogy-wise or whatever. $LK,"1 Corinthians,2:13","BF:1 Corinthians,2:13"$ + +When God gives me a response in a random passage, it's like He picked a greeting card for me. That's love. I try to return love by being just as thoughtful. + + +$FG,5$$TX+CX,"This Game"$$FG$ + +This $FG,2$AfterEgypt$FG$ game is not really done. + +I thought about a sucker option to $WW,1$take a census -- God say's "why have you done this? You want to battle... Fine. You must pick a penalty..." This is based on something king David did. $LK,"2 Samuel,24:10","BF:2 Samuel,24:10"$ My thinking is that God punished because the act of taking a census reflected a military inclination. Instead of census, you see a crowd of people and must guess how many. I wish not to turn this into another conquest game. + +$FG,5$$TX+CX,"Parting Wisdom"$$FG$ + +The story of God asking Abraham to sacrifice his son, Issac, is deceptive. It turns-out that was actually God imposing justice on Abraham because he almost killed his other son, Ishmael. $LK,"Genesis,21:16","BF:Genesis,21:16"$ + +I just heard in the news that some woman starved her kids because she expected God to provide food. That's testing God. If you find yourself in need, God promises to help, but if you place yourself in need voluntarily, that's attempting to force God and is putting Him to the test. $LK,"Matthew,4:3","BF:Matthew,4:3"$ I gave all my possessions away, once, in 1996, quit my job and expected some mission from God to turn-up. Nothing happened and I was depressed. $LK,"Matthew,19:21","BF:Matthew,19:21"$ I just went back to doing my thing. I guess it eventually paid-off. + + diff --git a/SparrowOS/Apps/AfterEgypt/AESplash.TXT b/SparrowOS/Apps/AfterEgypt/AESplash.TXT new file mode 100644 index 0000000000000000000000000000000000000000..677d06c4ff8623950949e9d02a44f9f93dc86f7f GIT binary patch literal 302128 zcmY!h4$x6j(lJzFU}9ikU}S&*p*bvIwrB$r1H%oNC<6ln_b3<*fq@Hw(eyWPVLxg! zH}`1z8%+fR83Lo}Zy-Z|)b7#rH<|_pG6Y7`-#~``sNJLKZ!`@IWC)C=zkv+>QM*Ue z-)I^b$PgG!e*+o%qjry`ztJ=>kRdRd{suDiN9`U>f1_z&AVXj@{S9R3kJ>$&{zlWl zK!(6*`Wwj5AGLcl{f(x9feeAs^f!>9KWg`A`WsCH0~rFN>2DxIf7I^L^f#IY1~LRj z)89ab{;1uf>2EX*3}gt5roVv<{ZYF|)8A+s7|0M9O@9L!`lEJ_roYiNFpwcIn*Ihd z^arEe><~aFr;VmRItBC~w+52vkVrbYcQpOcDWC_nHAv}>ot>SZpP!wbojwj8O@H(W z=fP|XIQ8+P0(vFD(eyW%QwCk!21+CmVbjb{)V>0h)R8Q7zZ3J|AuxtBGdImCO_IIz|r(aW(*E# zZIDS0yfrUOlEzKI(eyW@6B1dDC%W(hr$O2_0Y}pxSy4EYHIbJ5_(#*

    $?D=XMfP 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 L5Eu;snuY)XbZihQ literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/AfterEgypt.CPP b/SparrowOS/Apps/AfterEgypt/AfterEgypt.CPP new file mode 100644 index 0000000000000000000000000000000000000000..5b30f530f05d6c7ac93cfbcb969b5c8c9b2a108c GIT binary patch literal 5803 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 + FileExtRem(st); + tempm1->user_data=DocPrintF(doc,"$$MU-UL,\"%-10ts\",%d$$ ",st,tempm1); + Free(st); + tempm1=tempm1->next; + } + while (TRUE) { + if ((tempm1=PopUpMenu(doc))>0) + Ed(tempm1->full_name); + else + break; + } + DocDel(doc); + CDirListDel(tempm); +} + diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses01.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses01.TXT new file mode 100644 index 0000000000000000000000000000000000000000..792d7d1bf262061428262ea3c954a199c297dfbc GIT binary patch literal 521 zcmY!h57#kN;o{;_zyQwqr8y}ImHDL#>6vAz3Z=ygx%ow@3MGk2IjJSZSTq#pE0m`y zBq!!6WF(fQDkLf-B_?OLmjaPAV*D+D?RL{wQn3-9kP?E1ul938iip5m0 zM!ZBpYJNdZsvZ{zs00V-C@Dd_#KpkGz`(%B00Eke5H^U<%fP@;$;80G$H2hA#K-|s zwwi%~fs28GVFO4Ai9XH1z`)7CzyPD4LFHleZYcjb)G97Ui29chTNyYR8Nki}@j+H| zFfuUw{r~?zjOJ%#VBlb2V1UuGj0_Ba{{R0EGUxyQ|NlYazmRAFMh1rW|NsAo(JYJ% q3?Kjh{|}>~+W8n67=Hi%|DOkm{sQHLXep>OVNS8z?QEGW_AQcws_RWC|aC@x7XD$C4E zS5&|PKn7qDR!~p~$w*ZwD9X>xEKW^P$VtpgQ7F&M$x%p3RmjQAPE~MCNzGFz&n(GM zNX*Gm$W6@4FXF;(kb**fnnFoNW?p(R$aSfSV7K8?tDvC31qLd?0Xj-bU_Wwkae1Ux zD&*wnXDfmoR+Oq<%%za1P@I>TovH{@j%1uis(P_PZf0JpBC>-#6^awf6*4k&71A<` ziV;o#X@+2^g+?k2ObiSRj0_Oq&W>POlHH;voCdp>YA?gX{s(PyYY^529h}K<0z=b1^V5fYgJGgwY@$!^A-$1JVcb zCpryM2NDO-ApNln3=F^i|Njr7LH2|r@!vtkL1`hHfq?+m zAa}uNko!O>2}Xm$>C*rI|3Ng!evmlG9FTb+b3yJu@&EsS7!49X26ZQl2I&L2myLme z0b~v+9*}96IEV)62jy814N?d42PmC@Xi)fr+z*O(7!7g{NE~E8hz99Hr$Od`#6dJj zAIN-=|3Ntoq@RO85kH~rh`Ho#s<0YBvcK^S688I9*{Q{GcYjRgbM6Oa?)`I1_qeHp-c=6 z+o5WrnHU)MBC*dy*~Ux^4A-G-P~mkE%HGMqzyM>IZQ_Y-13Efq|iefq}sq z%CAH;^)YX?oQAZ0!b4B#>p#OC2)U|@)1U|;|hh9H3i1_lOD0R&=aFfcHH3JDPV z0uuWPG$DY*L2OWzfY{d<7#Khv2eCsK7#Qq93NrR1!_oQ>T>pcTC9EEV(V!FpD(67uA&3UmAE4w2qA8S2&yqa^&gBzt_MNlAU>!f0o5`n^&t}|C4yQUpaKgNqR2F;%?jd!Xi!TO I)Usdz0QvF+n*aa+ literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses04.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses04.TXT new file mode 100644 index 0000000000000000000000000000000000000000..162848b7d931c784253f854bbc71ea87e3e19dbd GIT binary patch literal 454 zcmY!h57#kN;o{;_zyjR!Qxp{xLNZc|Qq_wU67v)ib28KOa#Qn4uqw~YQz*$uRq#kn zEKAKR*5l;lRB?0HF;Vf)&{3#NP0UbK2+2q+Q7B5y&CE+FR={co7FS>h<)-R!!GKC| zfR2)qj-d(z69WSSBLf6{Lt_8?|NnnI69WT?<^U;TVw}yu!0_Y$|Njda7#Q9l(OVf9 z7{2}g{~tzQW?*1=_y7NY7`>W-f#DUD57PIMfq~%{ln+w(nSp`f)BpefFGAIU4KN%Pp?)?A%A4b1tU|_iM|Nnm& O{g#1&;o1NH{}}*XgseaS literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses05.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses05.TXT new file mode 100644 index 0000000000000000000000000000000000000000..54f62791eac5d3595a4b196834710feb58516cfa GIT binary patch literal 660 zcmY!h57#kN;o?#t4yd@f>zJr`DwHSYl_+>5<|XE4CMqQ6r6^=%7AqJUDHP}D6)TkF z6Kh;fYGR5)Nk*zdYDGb6N@huBex4o{x2U+et9Ya;WF!_V7(=W8S(&Jil31FaQIcAu zN34AyPhv42B#en6euasLXC#)SmVxZz;^I;X4$x6j0tXxy$Z;A@nMpaB$%#1%8Kt@T zMOF$bKHfS?h6>IZMfrJ|$vLUTI!2~emP$HGPHtA1!YY~!ObiSRj0_OK&WK=hF)%Qc zF)=WJXeLGukg`<_3}EH!7#JA7{r~?TMxTS|W`NNj7#J9S{Qv(SM(<)^VEFR?|Nl== zeNv1Nb3pPSb3puGNb(Yl3=ALs|Njr86`<;2v=$=+!@K|g|AX{>`v3nwNF1adnSKNn d2hk#o3=GJ$5F-NvNS_QN1H+5||Np~i1_1Kcv(^9r literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses06.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses06.TXT new file mode 100644 index 0000000000000000000000000000000000000000..5f4c776099d798c5fba415fe42e0a10ca655f77f GIT binary patch literal 651 zcmY!h57#kN;o{=rQXl}rQx)=3Q&SWw^Gg*<@)ZcGPf1PAOi5KpR7lAzE+{QY)kB!C z;^wYnq7t5wuTY+ulcP|STAW;(s*syX&`g987_79S{9J|NoW!!!qDp&^f4I1~RDuI^ zl$0R;QwjD5v6TuP9aDqc3KbPyQ%juPTnpV(OI(8#6VjKLZ29-~a#r!)R$nh&YV4Wn^IZ_5c5W7|q5AQ4iy% zFfuT(F)%RLFfuUw{Qv)d5+eh{AE^2t|NsAwXJlabj6`QZ&4JumMA2Hbfj`}s<^r9n5abNmntL{r7GlBDx@Wr0x*tu%-d<4=q!5ImnvGPrxWJY( zFflMNFfu^EHz*s#=VoAFsAghd0MSg093W+_3=9k$3=9k%3=9l^{{R0Eqc=mvVf1qb z28O@?|Nn>4Gok8Xd|5__IZqiF7=Hi%{~yHv|NsAg5FeyZijjfg`~Uy{VYCt>0|O@m z0|SgUVq{?W4AlqHugu86@a_Nq|H$+kC?7-%Gcqu|{{R0!G7VA>_B+U9Am5KPzXJdW Cb?q7e literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses08.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses08.TXT new file mode 100644 index 0000000000000000000000000000000000000000..707a82b50ad77ae70f263bec6be011ab575aafc8 GIT binary patch literal 503 zcmY!h57#kN;o?$2fRK#LVui}o#3CJqhj1B~rQ+tUW1`}eS`IQbKTRRIC^fY}j|&D=f&+Av zlynSL7?>Cs7#JBKK!Op$=44=CsApne0MSg093W-t3=9m+3=9nV3=9mP|Ns9Fqa&f> zFuIq4f#K`_|NmjMB?AM)M<^ep?;ryM13Lo)LqAj;#Q**O|9=qw{r~^}4>K?@yhWl< zL)F9R`$+O2^Ugx~F!~|`1H< z52MY|_=ln9^h3o#{2%}S{|E6w=7RXI{{R0Eqt8OspN7&m85kIz{Qv*|C<6n-oB#j+ zpJ!lTc!oruWME*p@&EsS7`>l?f#KHw|Nmk1ZUzPhkoin393Y>=oDH%bP4vv#U+_}>6Ln@k}7WQIwmS^MX9OwTri*#9H6751U8C+ ziGhKEkpTjX7$Izs7$*Y*Lk$xH1Bhl~VEFO>|9=?W0nrVm z)<9)fL+NS;28M6{|Nmdhz`*eR|NsA&85kJY7#J8fK*d4)fB*mg-^jqg@a6yi|CbmT z7`{Sj5dQ|mbSU+lfq~)E|NsB5Ky}|`U|{(C|Ns9xP#VO4{Qv)d7=3|(f#K=@|NqZJ p>2nMW3?Kjh|IY#PGZRZE)Jq^ogB%B=Cqo^}#0PR7$oWwF831{7h2#JL literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses13.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses13.TXT new file mode 100644 index 0000000000000000000000000000000000000000..df63311624bea5d7549ee985bcfbef2d5e49e481 GIT binary patch literal 377 zcmd<$Qa}YB`Q-|^iFuU@iFxU%ImHT<`K1c!`6c!!s#M(Ebxc$u!BTm7i3%C1IRy%7 znduoN3Mr|%`FX|mTu`7A9H675q+_VU#l^+I#K6G7$N&NCj0iRd0|P@n69WT?=3r)E zU|?cg!@$76!oa|=iGhLP*Z=?jVe~PmIE;P-m50%L7#J9S{Qv*|36y4IWME)pU|<08 z|NQ^|pM{Zu0YroNAagz{rqa_#_7{2}g|DS`AfdM3sPJ`6F`Tzevj0V~F e<&j0}0uYI@x literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses14.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses14.TXT new file mode 100644 index 0000000000000000000000000000000000000000..8b1e3216c201e99bbb3cbd5463e5ae139bddf609 GIT binary patch literal 627 zcmY!h57#kN;o?#NgOGfME%RbcIBPvc#gy#FEVXJcax`g_P3dY+W#so}XWw3RRw*n3I#5qM+oIn5Y27IeJQ9 z8_@|BH+LNqmGF$roK%I%{8IIzRE6@yyp+@;kY$;9AcsH=Mc0XkpORXfT2un@g=>0c zK}lv}Ua>-A5zKvfw4zHDhVk(yYNnU}5yHxsU$D297xS*k*A zs)C_`LP2S9hHhy=u|iR1dPWJE=H=y=>v6$=N^pRVk`g!|xm0|-b(CBy@>5ESbqvj| z3=NfZl$_kGP()O?xEPoi7#J8CAV7iI@7F%nS?+`V0&V zpa1{=52GWY;xM|Gfq~)c|NsACv?T)r!$&9|r0*aD0|Pq)14BPl9K`?q|Nnmw|NZ~} z{|_@TFuX;gPeawi==(_WAoI>b`7rt-0|UeD|NsBP=>1SWjNT1Z4>IrZ|NsAy>DT}N M|3AsVzyP8d0B-xnzyJUM literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses16.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses16.TXT new file mode 100644 index 0000000000000000000000000000000000000000..2014e0769fd97aa8b89c590ec9adedff3b2b36f6 GIT binary patch literal 1238 zcmY!h57#kN;o?#N0Y?R+ycC6`{GvRC?93E}4 zG=-9kRE3R zC`beuubW?%TBMMeS6QA|2{#35h>;4&RFLBo!ZRurQZiG(7AJyD18G+PX@;1Vn3tkZ zo{?ChP@Iupnv;M1%VYDR!1H(rsAEfUf z0|Ns)0|P@pR2;R!v-8CC}9Ii45MKKPCuaZ H0uLJibV;-X literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses17.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses17.TXT new file mode 100644 index 0000000000000000000000000000000000000000..9a264c84d56a11016d3b3ee95a6b54008e4bd712 GIT binary patch literal 530 zcmY!h57#kN;o?%j3LNt?a}#rl6%vb56_Qdj63a64(s3v)E-6aPOHa+I)WbAM#m!yE zM8zjHH#b#BA-y!UxL8k5Pa!hDRJ|w_hjEyOAVgB~GxO3Fa`TH)6^av+i!#$PlT(ZB zxnMvgI6y~9Nykuyfr){Efsp|Mj2IE@fB*mgFK1$40MSg09Lx+13~3Au3_t$=|DVOc z!0-x*o&ptz(PyCYFuII^f#KQz|NlY!7ytkNXJLex1LD8=|NlP|BLf47J_pqYl79qM z2co&4>S445BLf3SoQ;uz;mQC1{{kk4^Bdl3Tz P1IW2dd@u*W9KZkoZwtMc literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses18.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses18.TXT new file mode 100644 index 0000000000000000000000000000000000000000..5711da27b3407b04ae99481c55aa989861810d4b GIT binary patch literal 573 zcmY!h57#kN;o?$&fbdj>y!>*7jKs231w#V^9RmXch4RFrqRjlFVjY;G(gKCFqWoM1 z3saE1o`OPnszP~YP7X}IxU?uWr&6JyD77pxGe-|%G6t#Q=B{I+5}8<@r>CF*(~6-A zt3YsSUW!6SVosVuMt*Lp9v2L#1PACSDd`xhsQ7s6D0!8pq^B0^m|Gbs=_on5St0RN z7?>Cs7#JBKz?l)j{`dd?|2ifHhCf(n4rT@h1|~)&1_p*7|NsA2V_;x-gG9SAFfjc3 z|NlRX&S79+`0)S#e;927RS)97`~Uy{B&d22AEa&yl6si@GpITcJqxNHMz3LDV0iKW z|Nm)FdJY2v!-N0-|HJ4R3=9m{{{R0EqkEuyWEx~H6AK3@BvPQ(dqAy$@%}Q6-qKP^U@W{6N?p+ z^Ye3b(A6ZBmMCPFD3l}?m!zgB2Diq`-X6B)*%g;%H*r$l<5M-W;o4byQil=(6 zLVA8)UZO&AZent_LS=rb9v1|t1PACSDS`c?;^VEOIQ<0|Ub!BzX`Yq#i~eXMi{ZMqg!M jVEFX^|9_A?$h?zK^O5N%|Ns97@j*1mK4f|~R6PR#f5)8s literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses20.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses20.TXT new file mode 100644 index 0000000000000000000000000000000000000000..cae729e0e94a2d73aaf85a74a51162b1038dd865 GIT binary patch literal 1040 zcmY!h57#kN;o?#NgOH3=g@V-lf}B)^#G+J%oc!X`ti3=mSp zV?M;4A*nezV3QRxOVo=Ml2VfsON&z#^3y;rC*7$f8L5@vfJ#aQ1rfyMsVRCWt~OHP z;^JapVqjokWPku?Mg*ISfq|i(iGcw`Gcj^7GcYjdGB7Z(F)%O~GB7aw`v3nwjP{0# z!{}_NJd8GHU|{(6|Nnmw|HuFT|0gp*j0N#Q=1gT^U;v3{Le+ufK@OS-<{vc91L?1I1oVr33BylAR-4ID2_pVA_5TrBxgVM literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses21.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses21.TXT new file mode 100644 index 0000000000000000000000000000000000000000..948e69bab2820d973e7a64009410a23778b9511f GIT binary patch literal 373 zcmY!h57#kN;ZlGB&pd^aj8uixyc8XU@>KPrRE3n%;u3|-JcJUEe0e5FK}KnYJxn7C zt>WgcW1`|(kz87ws*sz?1qUj@0Xj-bI)*9?ObiSRj0_O)4a(+VhVU8w{Qv*Io{0fW zGck%YFfe@i|Np-%0|UbgB-)aJf#Jvh|NmihJOcy6tN;K1!)Q$g28L%y{CWlkhHpsx zW(Ed^cmMzYkA|uP@gMyE{~tzoLd}QK(-{~TK=Q2&3=EI{|Nq|)<-_P+1_p);|NsAo T(X|W=4Cns;|Bp9fh>aqT&*)F2|~!3l*pY2k0m%fkRBi$6H6qwIV;Iv{=X3 z%FskfN6E>}3Rysfi;IDYfq{XM0Rk2_v`74dyxa^73?+;V3`J0ZEF^XYBLhPXl6V)CoyW+) z&DeAbJS{1H-fb|Nq12c?=8;um1o4zlec> z0VEI7zvTb_|0|&U1q=)fAU?<(5Dii{>;M1%Yd}c`YR{qn|Nn#3E&Kof{~QJehAl`m ZC>nSD|Nozf4a8dT|NnnbLIByw006BsR?7eY literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses23.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses23.TXT new file mode 100644 index 0000000000000000000000000000000000000000..b048887326ef39bc467b3e7135abb575e2603ce4 GIT binary patch literal 473 zcmY!h57#kN;o?$22A&Ef`8g>HB^jx?3VHb@3MKgp<@rTLm8hypG7?J^%2U;gQWf$` zOLX%}bCXhwQd1PrRF&t0^ylZLDkP;QCzckcDn#a&su!iADl5+{$xtXQ)^OzwjKre!R2_w)%=C;BdoCzY2@cRvQqnP0VPIllU|?i`fNxMX z2Q!4vz{SA8P|w7`z`?-4z{Kdpz`(%5z`)?fz`*e7|Ns9mI*);YfsKKI0Y&m^T0b literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses24.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses24.TXT new file mode 100644 index 0000000000000000000000000000000000000000..4a4262196e553127ab3c091b720a6a11dbabaa1c GIT binary patch literal 527 zcmY!h57#kN;o?$2fbdlHvQ&li{1Sykg`&)|)FOqFe1+tq{NiFggd!C;cO4TI=ltAM z-TXX71%;4|#1i#lg+ztqqSVxEJ!JC`n((k9^Gnr>QWZ)vQWbLZi%S%W3-U8_Qd3Aa zC#fj0q*zBGwJfzrkqZh`f&+Avl)&Cp@$uGC^2#sHC{5Hcu`;w!(ou49vqBb7VPIll zU|?i`fNxMX2Q!4vz{SA8P|w5wrkNNG7#J8>7#J8#7#JA7{Qv(SMh8K~VRQvl9!5Jb zFfe@k|NnmpRD2!-0|Ofa149`D1H-5P|Nn#dFnJJv0RscWyZ`_H!{`-I^)PxH0|UdW n|Ns9lVqjqS@c;jRkT^2Eih+UQ!T?W6jT-^=4Pf8>v6$=N^pRVk`marDn8yi zO0E_8DW%0ah89+a#!5O$PHt8xA}U-AObiSRj0_MU!H8gUGB7aIGchoLXeLGukTP`! z1_ovZ1_pfw28Pf7|Nn>4kx+3M-OIqh@b&-y|1jE;fq~&8ln>H(kb!}Loq>U&A1V&w z|Nj5~KZyVS|NsAo85kJeBGIRz>S6SKBzcf|XQ6x;eUX8I;r9Rk|6%lgC?7`ehN=gd W_xS(+|H$;~|NsA=WME(b(F_2bS+xlO literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses26.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses26.TXT new file mode 100644 index 0000000000000000000000000000000000000000..ea678f983d982d94c0872f5575b4887df55d4117 GIT binary patch literal 452 zcmY!h57#kN;o{;_KnL#mDLM+}8I=mTrNt!*<*5p}si`Fj`FRSt`K5U!iJ5uD_L!PH z)pHfnQ%g!R^U@Vc^79q)b5ius4OUQbbJsCZiOermD9Omo%T}n&FI6u}1*ui!f&-P{ z039VIklPrT7#J8B86ZH05yA$EF)(m3Ffi0JL1+$;5EEl20|Udq|NsBzGBAKO!uZ(? z3=FUS|Njr8(-{~TuKfT1A4aD#FfhFM|NlRXPG(?W`1Ak&e;5ri2jm2h`fE^g_CeKy z_#kx$p!{7>bGJa%?Say#km!5{28J6@^&t6p1_p+6|NsAo(IER^@-Xv2>X_I-K7iQ- HauEXnhsv5k literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses27.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses27.TXT new file mode 100644 index 0000000000000000000000000000000000000000..fbd9f1fc97de0b3395c1bc18957b1febd37239f4 GIT binary patch literal 603 zcmY!h57#kN;o?#N1NZzC9fi`|Ts=KK1;@mq{564pg_4X^g`&)|)S_aA%seo!peR2# zvp6+H0cKocUW!6mPJX#Ud1gt5LT+YGwgN~fBR?+{WFFXMU_!;sUB^Vlu|y#!HLUYnSp^ppMinl^Z)<< zVRR%^97gvtFfe@m|NlRXwq#&n_z2~L^c`eiU|?rpVCaX6gZRJy|Njr-zyJUL|6v9O zhPO!cX{dS_eIH34WZqdQA4XqfU|_iY|Nnm&y&uYl(YvAQLFPUF|NlQS{rdm^|0fw3 I7(g@w05GJ)Q2+n{ literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses28.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses28.TXT new file mode 100644 index 0000000000000000000000000000000000000000..58e4bd7c74ed0c1d5411d3f5e7d633596f3f5fea GIT binary patch literal 1138 zcmY!h57#kN;o?$&06jfD1^?{CN*#r~{BniJ{8ELI)SMiJM1`#U>{J~E_xuz+h(Z-N zcO4TIM}?xqq@+w8g+zsdqRiCd5{1OP6oo{EjLd?9N|>1t4MdRTsd*&|nRzAo3W*9y ziA8#PdR%az5*(nTqy%;<+_AWgRB>}x2~Slh&o3&fR7gz9FD+51%r8|aE=bKw$;?Yv zD9O)P$SqCIP$2BalFZyxg~Xivyi^?p-~8g#Vm-JXxZ}8>t}{}B2r)1*FfcGOKtLQL zg3Zamz);V`zyP9|7&$=7)EO8Um>C!t^cff!KL7v!A4W$)#bI#`{~u;xV0eo}pN6W3(f5($LFS!>@?rEv z1_p-P|NsAo(fgr%7`+>+9%SC*|Ns9Z)35*k|9_H!fdND_v3WBvFueNz|Nlk?28KsS z^mYaYh6n%u|3{{8LHQthGXnzyhz5r)DCj`pdju(T`JkZ-qM@O?6{LoNfdS;YXaE2I zhtWG37#L3c|NkFG?}e&^@j;=t3Mzl@|Ns9WbJjrlAR4584%EDLQ2Ap>G$>SV{Qv*| zH3I{~pa1{=zhz)xxQ9f4WME)8^Z);U82uG$|9hzTPX-2t6;Sz8|Ns97iG%o`85kIr zLB(hN|NkGv2Z@8s2dVoGl?RyzQumaBf#Jvh|NkE|Fff4RVKgYVfBpae{~=WTB?AM) z2B+fY6zTtMLg@;}HNCN@w= Mf?NoaVFURR0MDVdv%shpXj8uih%p$04N@-DMUOHGXDY2v^CsmJ=Q^n0)$3!JOqf#LyU!gL;RG}mz zGcQ}gQz0cYMIkT0L?I)wEEOaHH3RGtyhK`NdPWJ@64&&~f|AU{ykdJU2v7+Q&{0wX zdr8H|TSv*YB0r_HSjW)Z%Fs|rN6E>}3PnVPi-C!Ofq{_$0wfp_Y)%FShI%Fj1`y4} z$N^HO&cMLH%)r2)&%nU&`Tzg_Fgg+{4x@V+7#P0(|NkFGTQV>(e1!5r`VKNMFt9T) zF!V#kLHytU|NjT^-~a#r|1bjs!&@Z!G*mr|zK@?kAZ=qo{510L^CmR zfRt^8sAAa7z`*eA|Ns9mdM5(|!-@a@|HJ6LP<1f=K?VkfRZ#hJ|Ns97nX?AU2hkw) zbD-v}gUTO6qW3c}Fx>e6|Nmz`$@1iT=pIz;NdO|Nk)hE7bn?Q1PD( z3=Auv@~8g){|^!e@jo*#Ff4WzyAOK{}3wvl7WF?15_QzT_AaoKSBCIG)N!FzaSc46sJ9RviV_B`1X8N?c%| z5*(nTqy%ya0}}%S10w?j$S^|KATb68E(QjMdL{_X0TNkEDqEm26!%P+}DE#gv804w55&M(a?DXLT`$yZ3pSI8`}=Yj&2 z-~b&ZC9v%bObiSRj0_MU!H8gUGB7aIGchoLXeLGukTP`!1_ovZ1_pfw28Pf7|Nn>4 zkx+3M-OIqh@b&-y|1jE;fq~&8ln>H(kb!}Loq>U&A1V&w|Nj5~KZyVS|NsAo85kJe zBGIRz>S6SKBzcf|XQ6x;eUX8I;r9Rk|6%lgC?7`ehN=gd_xS(+|H$;~|NsA=WME(b G(F_34WR&m# literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses34.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses34.TXT new file mode 100644 index 0000000000000000000000000000000000000000..81ee853a7bd2194c343329856625a52dfb90f093 GIT binary patch literal 475 zcmY!h57#kN;o{=-R4B>F%*$3NPgTfCO)F7IR7lP*Eyzjb;w;WcEyzeMN-0)IO3ld3 zOVLqCN=(jH$jsy7bWN`;DAD8OTyAUN^pRVk`mZ4Tq-`^I!f-Td8x&j#X2U2 zR)$7OI!aD%R;WTMTntPM3=E765Fo*bU~@7sFw`?KFo0+#Mh=iNbp{3oW(EcZeFg@G z&;S4bhtZKxaTwjpz`*eJ|Ns9m+LD2R;Ukm}(sz)7fq|WYfuSEN4&wj*|NlRT|Nj5~ z|A!eE7~Ue$r=jX$^nE0Gka=gJd>DO^fq~)n|NsAC^nNHGM(>8I2buTy|NsBU^y~ls M|DR-FU;xn!0C04sssI20 literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses35.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses35.TXT new file mode 100644 index 0000000000000000000000000000000000000000..f1e5d24df412d81b8d11ecd2372fc8f3f017c70a GIT binary patch literal 433 zcmY!h57#kN;o{;9PgN*RELTWWC@D%!EG{idRVdELEKtbLQz*$uRY=M&Dap^};>=G2 zbAwV-6oOL|^%NAG6Y~@z^Gg*95{pU{GD~z664Mhi^X$2}IKe>0&0WVtB_tzN!L_im zpd>RfuNZ6%NM%WWz8)70s00V-C@F!R!o|SEz`(%B009z=2sS4J14BI%0|SU=V&niR zQ)ggcU}j)o&}U#^`27F>e;6GJ6^GHi3=9lk|Ns9Fqb(U27(PPzAbkfJ7#P?Y7#RAY z;voL-|NsAk`0xM!|9_Z)f#EF@eHyABM&C!02bp&k%7@Vx85kID|Ns9VM(>C6Vf1dO ZdXRaK|NsAwOuzpB|Nlt_1_lt#004m{nk4`L literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses36.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses36.TXT new file mode 100644 index 0000000000000000000000000000000000000000..a1dd99cebe5a3299b6cad5ab82edb4886567e0bd GIT binary patch literal 408 zcmY!h57#kN;o{=-tyCz^&r>K$%u`4#Ppni(E6UGR$jHx4RVdF$&Ew+qR4B>MNm0ni z%vEsDPf;jI%*jqo(c^*xmEZs!B_*&~Tq-`^I!f-Td8x&j#X3etRz^xXN=|N8C?YCc z3``6R42%pAAi;=Wb22b6)H5+KfM_O04v;c+1_lOZ1_lOw1_p-D|NsAo(UDMb7~RXj z!0`3||Nk)Bl7WHYBa{!)caVXBft`VYp&u#^;{X2t|38TT{{R2~hZz_c-XhVbq3U7u zeI$91d1s+~7=4j}f#LT5|Nmk1ekdPC?}n-enfLhr|NqGJ>;M1%pJZTQ0MQHp#@vzX literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses37.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses37.TXT new file mode 100644 index 0000000000000000000000000000000000000000..8160a7ae50e39cc6491b3df9a99d3da5de752124 GIT binary patch literal 473 zcmY!h57#kN;o{=r)YH>b2+ycgNXgGrFHxw>FIC7*%uZD($w*ZQF3scOEG|jROHn8; z$;`=7D9KkS&d4tZN#^Qta;mtw>zJtcXXq#-=jW#C=I1FYD1_&i=A?j(;o<~?;?$Co zoK%Ih{33-!h4R!Ag`}LsyzJBxdoCDI2@cRvQi8Zf#m8Gm$*VLaJ+)ZJ%*xnYNk_@a z%?epSg^P=UiGhKEkpTiE7!hnv1_p+DCI$u&&BVw7Ql`$pz`)GFz@X2-!0`G1|Nk&L z5-JX(dl?uQzW)FJA4Xd;Ffe?C@FT|J&eAOBo8w0ER+wUFETJN-2VUnKaAcF<-_RRQ1u}59{>OUADMpr|NsA!3=9k) GngIZeWu!g; literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses38.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses38.TXT new file mode 100644 index 0000000000000000000000000000000000000000..f9926aff16fa88daee4fc13ea66cfe634c463298 GIT binary patch literal 435 zcmY!h57#kN;o{=r49`d`QOHbFD9+DK&Cg3!C@x7&%qdnV$w*ajEXua$;sgT~H+LNq z70(j&Vukel5(S_9a$T>)nwq0yW@VzJqvYgf zg(9M&pyKAPqT!L6n_pCvk)N4TtjWd2z{J47z{mgr5{w8oCj$dRJre^1h-PBs04Y;v zU|?WoU|`T^U|{(C|Nnm&9SIeO(Y*`|3}65M{|}=r85kHoLir$l2N@U`*cliY`k~?= z{_p?)|AYAN|NsAgn1O-eEfReisvbt)N0JAbcNWTr(H9vQ7;gXn{~t#0hw@?cZm4>Y Xd5{19|Bp<+{{R2~Nd^W65X}Gp!{V1% literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses39.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses39.TXT new file mode 100644 index 0000000000000000000000000000000000000000..4c8c52857a24f75c176f32949879b85b19145eb0 GIT binary patch literal 950 zcmY!h57#kN;o{=t^i4B@7GpF literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses40.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses40.TXT new file mode 100644 index 0000000000000000000000000000000000000000..7a15bb73f4c83ac1b2cde7a8b443d4b02837f4a6 GIT binary patch literal 396 zcmY!h57#kN;o{;9PgTfBEK5~LR4BSkVm(eyP8BzI9TS!C%;Hqt#NuK-E+|k54$x6j0^7pHz{J47 zz{mgr5{w8oCj$dRJre^1h-PBs04Y;vU|?WoU|`T^U|{(C|Nnm&9SIeO(Y*`|3}65M z{|}=r85kHoLir$l2N@U`*cliY`k~?={_p?)|AYAN|NsAgn1O-eEfReisvbt)N0JAb vcNWTr(H9vQ7;gXn{~t#0hw@?cZm4>Yd5{19|Bp<+{{R2~Nd^W65X}Gpz`T!4 literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses42.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses42.TXT new file mode 100644 index 0000000000000000000000000000000000000000..fcf669746295b8fa2c42d5ce2e6f50b625c356d2 GIT binary patch literal 417 zcmY!h57#kN;o{=r;gN$>-waEY3+ROD(EY$jnnH z$w*a5%PcA`Q7FhsOis1uRB?0HF;NN0S13tMOwLfK1nJJtO;yNE%*#tHD%Rsd0F~eX z9VI1*eOz1&ObiSRj0_N<$cSKbGB7aIGchoLXeLGukTOm`1_p+I|NsA2XJBApW?*2@ zXJBCX{Qv)d7##@}hta(Z3=CiY|Njr8Eg2XXK0^5*eFqsB7}yyY82X{&ApY^)|NoCn QzyAOK|49Z01`y2v0O}K$X8-^I literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses43.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses43.TXT new file mode 100644 index 0000000000000000000000000000000000000000..872fc4bc9f14681e6c16c4d80e3dfd6692761fc1 GIT binary patch literal 435 zcmY!h57#kN;o{=r#{B6eU)s78UDp zApw=(039VIhzq#57?>Cs7#JBKK#>u_=44=CsApne0MSg093W+!ehdr@|Nj5~ug<{0 zz|6qFpwGa-@cIA$|1dfdDh{K285kJ8{{R0UMq4s4FnomaLHZ6dFfgz)FfjB(#XIp8ln^)|NoCnzyAOK|49Z01`y2v0QTsfUH||9 literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses45.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses45.TXT new file mode 100644 index 0000000000000000000000000000000000000000..537390470bbc5649ed944cd0c651dc7f825907d1 GIT binary patch literal 422 zcmY!h57#kN;o{=rFuIq4f#K`_|NmjMB?AM)M<^ep?;ryM13Lo)LqAj;#Q**O|9=qw{r~^}4>K?@ zyhWl;dQQ7Fwz&Ph$o(@`kOOwTB>=j2pzbJsCZ2?Fu- zxS&8KI6y~939KDtfQp;DN=Qa(o{mC!Mx{bZermBoN@Ar#eol%)F34;yPR`uK>{Nx) zVuj+&Cc`5njdG;V(@^y=`aY68 z$h@;qK8(J|z`$_(|Ns9mdOws8qjy8qgUoyU|Nnnv`t|?+|4%Y7Fo0-qAb~;v6ilOm W#J~UxEKuN}1QIA!j0O^(lmq}8khpvR literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses47.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses47.TXT new file mode 100644 index 0000000000000000000000000000000000000000..851ad33bfd72fcf27a8ace226b820b27ef88d62f GIT binary patch literal 384 zcmY!h57#kN;o{=t49`d`Q7F#LQ%FxODOM=SNL47$FDfokC@9U#EY8SH%`4I4RB?0H zF;VeN%+Ab9SIA9ONX$zws?_5`0F~eX9VI2Oi405(3=E765TMA2U~@7sFw`?KFo0+# zMh=iNPCo_)hJXM6|5s;VU|?ooV9;k^VEFw1|9==A2^ELYy$lQtU;qFA52Gy^7#Kc6 z`5=7<85kJY85kJ)q2eI^@Bjb*gZS_N|NnoOfq~&I5`7w~9!B3sk_VZ07Rraw7a15B mZvX%PA4czo@?rFDsCtljkN^Mwk4(S*|Ns9<1_lNY%>V%Xx{dAt literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses48.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses48.TXT new file mode 100644 index 0000000000000000000000000000000000000000..b5f350071bab70b7673b15f5c19b551071a66727 GIT binary patch literal 387 zcmY!h57#kN;o{=r9SgRY=UqQAkOwwC7ZDbJsCZ ziOerm&&g3JE=epZQAo>4%+1V8*W*F}mEZs!B_*(-3``6R42%pApvZ_|b22b6)H5+K zfM_O04v;cVKL!SdfB*mgS7%^gU}j)o&}U#^`27F>e;6GJ6^GHi3=9lk|Ns9Fqb(U2 z7(PPzAbkfJ7#P?Y7#RAY;voL-|NsAk`0xM!|9_Z)f#EF@eHyABM&C!02bp&k%7@Vx p85kID|Ns9VM(>C6Vf1dOdXRaK|NsAwOuzpB|Nlt_1_lt#006k~jky2- literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses49.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses49.TXT new file mode 100644 index 0000000000000000000000000000000000000000..88be8980798f745292abd9f6cd18e5faa25f80c4 GIT binary patch literal 731 zcmY!h57#kN;o{=rv16gmEZs!B_)V?U?WxB+*Kk|6Ek!aN-`2l6v`8e6^io}lJoO(6p^%X zLG>A_aB(p(F)%PNGC+VLBZAGzz`#(?#J~WenHV`h$~gTP7#RNj|Nmc|fq{XUfq_Av zfq~)k|NsACbR<+9M)xu>Fns<0|38ejWME+U2<3zH9b{l&U}s=p=!c4f_`m=E{}1B7 z|NsC0VFm_JuU=L2@cRvQUaULz{J47z{mgrii`+0 zCj$dRJre^1h-PBs04d}2V_;zT_y7NYbp{3oW(EcZeFg@G&;S4bhtZKxaTwjpz`*eJ z|Ns9m+LD2R;Ukm}(sz)7fq|WYfuSEN4&wj*|NlRT|Nj5~|A!eE7~Ue$r=jX$^nE0G wka=gJd>DO^fq~)n|NsAC^nNHGM(>8I2buTy|NsBU^y~ls|DR-FU;xn!0D!@dQ~&?~ literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses52.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses52.TXT new file mode 100644 index 0000000000000000000000000000000000000000..d82b30eab18c1f61cbdcea256452dbca729ab866 GIT binary patch literal 459 zcmY!h57#kN;o{=r;ta`1RmjdvDON~MEJ@B#D9%gFPAyg_$yZ2AO-nOQazG>^8Y$^0Ik{OO3#f2$F)%SOFfcMefFdJ;&B?&PP|w7` z0HT=~IY7!d{TLV+{{8>|U!8%0fti7UL7#zv;q(9h|6z0_R2)Y4GB7ZF{r~?zjJ9N8 zVE72-gY+F_U|?WpU|{Hnii7yS|Ns9F;=lj@|NmhI28Opt^l7Mi7=0f}9%SBGC?7^& pWME*p{r~@e7`-3Lhta#C>Otl`{{R0!GX47h|Nkc$7#Kh_0{~gHqM85z literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses53.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses53.TXT new file mode 100644 index 0000000000000000000000000000000000000000..2dbdd6664a4d768db738ba87611ccdd9eb14a7c4 GIT binary patch literal 441 zcmY!h57#kN;o{=r^sQ9LNX$!7D9_JRFHtBdEy`2KNi8VKFD>TcEYC>IQ}9$MF3C*J zR>&+-$jnp7tyDv zFHOoxRVW5?@{71Q!2rZnNX$zCi|cVgfJ$(Hj*=3@bS|(dD&eUL#TogfIVlQBsS3sU z3OS|8*_AN$AYD*BMj#h)F)%SOFfcMefFdJ;&B?&PP|w7`0HT=~IY7!d{TLV+{{8>| zU!8%0fti7UL7#zv;q(9h|6z0_R2)Y4GB7ZF{r~?zjJ9N8VE72-gY+F_U|?WpU|{Hn zii7yS|Ns9F;=lj@|NmhI28Opt^l7Mi7=0f}9%SBGC?7^&WME*p{r~@e7`-3Lhta#C r>Otl`{{R0!GX47h|Nkc$7#Kh_IFLXg01BqjKw@Bk1r{i9;DH1Hq+AfF literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses55.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses55.TXT new file mode 100644 index 0000000000000000000000000000000000000000..23b42dd7d83a8a2e5298da9d457b4d11d9ec1e27 GIT binary patch literal 390 zcmY!h57#kN;o{=rI@7F%nS?+`V0&Vpa1{=52GWY;xM|Gfq~)c|NsACv?T)r z!$&9|r0*aD0|Pq)14BPl9K`?q|Nnmw|NZ~}{|_@TFuX;gPeawi==(_WAoI>b`7rt- o0|UeD|NsBP=>1SWjNT1Z4>IrZ|NsAy>DT}N|3AsVzyP8d0Kr?0nE(I) literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses56.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses56.TXT new file mode 100644 index 0000000000000000000000000000000000000000..0eb4062a266c3217c95a1f3b2468a1ac69cc9421 GIT binary patch literal 800 zcmY!h57#kN;o{=rYd5{19|Bp<+{{R2~Nd^W65Dg9_PzZp6X*7@+7+`?~3LJPK0RS}NA!Gmm literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses57.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses57.TXT new file mode 100644 index 0000000000000000000000000000000000000000..17b93e9503e60e93224e40227079d72d61234379 GIT binary patch literal 1234 zcmY!h57#kN;o{=t49`d`Q7FksRmez9&Q>T-ELJGVNG##vC$iG==2+ z(xT#2JuVnf2@cRvQUY5K5`vhdVs8&J6k=vbMyf(`YF85t<)C^@-VAq#+1 zF)%SOFfcMefFdJ;&B?&PP|w7`0HT=~IY7!d{TLV+{{8>|U!8%0fti7UL7#zv;q(9h z|6z0_R2)Y4GB7ZF{r~?zjJ9N8VE72-gY+F_U|?WpU|{Hnii7yS|Ns9F;=lj@|NmhI z28Opt^l7Mi7=0f}9%SBGC?7^&WME*p{r~@e7`-3Lhta#C>Otl`{{R0!GX47h|Nkc$ j7#Kh_IFLXg01BqjKw@Bk1r{i9Pyz{*Dn;p&D9=bO$w)0y$S+dJ%P-;LwOIEh)-ROfJbR zOV#6o1C`(a9VI1*rC@tK;ntR<=H!5^Ey+mD)lpFL%hywaYXdW&dW}F1R`K!HQF5)w zPbn?dF|sl=Qqoa!a(@^y=`aY68$h@;qK8(J|z`$_(|Ns9mdOws8 uqjy8qgUoyU|Nnnv`t|?+|4%Y7Fo0-qAb~;v6ilOm#J~UxEKuOU0|@|wUM4yK literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses59.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses59.TXT new file mode 100644 index 0000000000000000000000000000000000000000..4ad3c1817b0f33d51a7e0cd4b4c1f567ec8db6c2 GIT binary patch literal 484 zcmY!h57#kN;o{;9PgTfBO)OF<$w*ajO|L8{$xO^ER>(*!OI1ipP0i!tEGR80$;?Yv z$VtpiQZH6W%E`}9QOM5&X~-<%;!MfUFDh0@ElVw`RLILr&nQtS&df_rRVYtY;Nr|l zO)Jsk1OXK{cO4TIb*I$SJcXS6{A`ek`DLj^3YGb#MO+{ioSelO`K382sYN;v>nrn1 z?YTI)pg<)!Ku1Xl>}D=51||ju21W)5P-H}~IT;uj>X{fAKr|C02S^#G9|Hr!zyJUL zt1~b#Ff%YP=rb@deE$FcKa7rqio@t$1_p+&|NsAo(UuGh3?HF#`&E#l%#%*m-#NK8-6 z%quQYD9K1wa80i)D9KFBE7nm+DlJjq;w;HXt%PgK&dVurn|) z^h3o#{NMlo{|E8k|NsC0Fara_TO|54R6UHok0cK=?<|xLqc1WrFx>wC|38f059Pz? b-B9%)^B({I{~wut{r~^}lMDRVYZTR4C5RP0i0s1?f-8SI8`}=RyFL-~b&Z zC9rJ_ObiSRj0_N<$cSKbGB7aIGchoLXeLGukTOm`1_p+I|NsA2XJBApW?*2@XJBCX z{Qv)d7##@}hta(Z3=CiY|Njr8Eg2XXK0^5*eFqsB7}yyY82X{&ApY^)|NoCnzyAOK M|49Z01`y2v0038(RsaA1 literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses62.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses62.TXT new file mode 100644 index 0000000000000000000000000000000000000000..3c5f1a8dc9a503d6e49dba23814876d247c9e8a5 GIT binary patch literal 531 zcmd<$;^gGybk9%GQSekROI1iJ$}dgNC{akv$3v9G!r8SNZCUM1_l-e z28JgL3=IGN|Njr8zcDZ{{QCd@KaBpuz`*eE|Ns9m`W*uU!}tIH|HJ4;M1%pJZTQ0MXz;0)+r5m_`GM NfdLj+pum9#5&$we1U>)& literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses64.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses64.TXT new file mode 100644 index 0000000000000000000000000000000000000000..9ad9e0d6d535905257cc87e9a39098c5879b7983 GIT binary patch literal 846 zcmY!h57#kN;o{=rQa}YE8L3673W-Ij3Q75Ssl^J3IXUP`5{vRn^HLN_GBS%53UU&Y zQ}s}dP;qnDF;NN0NGwq=Rw&6xRme#!E>S2c%1lZ{HwslFCeKqLsVKiRJ)=Y+zqCXl zKTW|ky|SQ0PsPn0>~@g*xwuq<19X&>px(jokYA~8X$C|gn1re}Qej|XU|?WmfB;2C z1e=qAfuWv>fdND_F>-*Ear!YZF#P-f|Gzo|0|PSy1A{&T1Hu_=44=CsApne z0MSg093W+!ehdr@|Nj5~ug<{0z|6qFpwGa-@cIA$|1dfdDh{K285kJ8{{R0UMq4s4 zFnomaLHZ6dFfgz)FfjB(#XIp8lnS2>tSsi@FuIq4f#K`_|NmjMB?AM)M<^ep z?;ryM13Lo)LqAj;#Q**O|9=qw{r~^}4>K?@yhWl2EQ^|Dlj7%1Bhl~FxrxVf#D;R57Kv#fq{XYfq|hPDh}fR z{{R0!i2wfo|Nn;>7#Q9n(Wjy6Vf1|@d60Q$p?ny9k%58X_W%F?Vf20|A4cznst1|( z`2YX^$n@*~|Noz4U|;~z;6MU}04SK=Km!aKC^H!t7?cCnFSK&eeD!~CdN=jg(xfqxj7#J8CAV853!RBOOV5nzeU;xofj2s|k zoPG=p4FCTB|F6!#z`)GFz@X2-!0`G1|Nk&L5-JX(dl?uQzW)FJA4Xd;Ffe?C@FT|J&eAOBo8w0ER+wUFETJN-2VUn iKaAcF<-_RRQ1u}59{>OUADMpr|NsA!3=9k)ngIYKKaUas literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Comics/Moses73.TXT b/SparrowOS/Apps/AfterEgypt/Comics/Moses73.TXT new file mode 100644 index 0000000000000000000000000000000000000000..3aeed9d7b82fad92a8a75190028d5f9e4a3c354d GIT binary patch literal 455 zcmY!h57#kN;o{^BPgN*RELTWWNXait)l*Oi$w(|wFXrOpOjIb&OwUs&PgO5URY=Uq z%`Yxd$S*BX$WK!!$w=kmV-~a#r)fpHVm>C!t^cff!KL7v!A4W$)#bI#`{~u;xV0eo}pN6W3 z(f5($LFS!>@?rEv1_p-P|NsAo(fgr%7`+>+9%SC*|Ns9Z)35*k|9_H!fdND_008w> Bpiuw- literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Horeb.CPP b/SparrowOS/Apps/AfterEgypt/Horeb.CPP new file mode 100644 index 0000000000000000000000000000000000000000..d224156d8b043a250e3448fa0ea59bf2d0498956 GIT binary patch literal 13077 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 literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Quail.CPP b/SparrowOS/Apps/AfterEgypt/Quail.CPP new file mode 100644 index 0000000000000000000000000000000000000000..f803870f19c97a4755184bcccea496d829b4d135 GIT binary patch literal 2815 zcmY#!a@R35RN+zy4$x7uF|BDJgWC0fq_KuAAaP@Te2;tN)&@Pi&L$+6cn8D^K%qZQWH~j3KCPI&10>( zY848j;daJab8&%mmKf-i#OEXymsoRgg&HWh6eX5}EzocdNi5D*&?-qR&em~uaaPbu zN!A40=V@l5kO{IO)IvckGp{7I2*d%KRiaa3Xj>AX0n((YTVeo`NXsu$(8#nku+FrB zTW+1Ht*xm5a=d~|<(W~?6A{W^wv2AUwv3JRHN3L0PukXK-O6coTh z7238MC5E~X_iJi_#ZoFD`k+cGwQWrew2)N6WZ~vk+95(5WIiX@m`YoOs5KWvETzI0 z>>~vQ1%+BJ5UHTx99&S8S&|x%lV4)2k&>(f)?5LhDs>EWR6Lz@lx!f;5A{*4LTXNN zD%AH-XAF-b2*>Lh8E7KBl~QS|3s#a+3G-DYwm^iN3-c#9 zo^7GN^#nzFL4HnRNva0KgODr$^(`dz>y(s0Jxn;1z^21hyA`FTYM=_iW2?f>KtWAS z0Uqmih6Y+eiFqlSusBLhOtB3K3U!4949NK)3`rukC5F~qwcvCPN#ke&hg^j% z$UaX)GgbGX_;62`5D$n|V983bWT>H;Dk27uq*E$DsS%`K+Yp+Rz}iwOZH)}HG(Zx% z270E@kN``8^8?saWOG2ibaV6x2743a!Qj-AlFYpH;(*fP3=OwposeL+_+Uq0*Z5$6 zKX*-Q1%3VC)Kmo(A8#EcWTi?vO1^$pC?YCc3JT$wdA^Ai)?8c)3NHD{PWdGz`MDtL zl~h!meNVgtB;R=xQdDrSXn@6iBo1$PHI?cQE{qQ_I0l z!s&9K5a&ooKd{Rc6#P=leKPY>H4yQo@8<6p0xNStj#WbUFG82GCfKSH1KW}SkWy$m z1IMjfv94W8QDS*~W{IsDyj%sT3Mfh~E_U=z1?MuC{AA~x)I@M03Xh2V0xXfprJw+I zii%21o)Rb_GcYkQFfcMeKq?~xn9sz{0TO=m|Nnmu1_p+o|Ns97DFM+e3=9l^{{R1v zj2Rdhe*gdfA4+jCFfjc4|NlRX=7(AUqXifk7(k}LXpjxe3=9k)4ARHLz`(%Az`y{b zLFR}tFfhPqm>L)jatVkHqCsYS|NsBLAOiyfj0U+{9O?@Y{r~^}{~))3#6kLAK%CC- z{Qv*|Ab0%$Dfs{YKa76$|Nnn>NcezBkb6P;IY2?e#K#8pE-%!ZOne}RgXBOmAhRGr z3f9ZOfEL6c%R%bDLL332K<0z&25ErNAmczr!Dx`tpcsPD+#tma3{VPWAjlLL4e}Mp z2OtwbxXcv8>Ambg8~+$ z7e<4e4GIpB&q4aY&Szj?0O^N17vwvTH$cijAqX-K#0H6ji~?x`(I7F9Jjh2NHprPE zV?kDfXizQy(IDr7yaUn)3Sp2rpb!R`0rD~^hF~-(gh6USYCssI2V^!<2!n(`R)CxZ z31Tpdfq?;J5EBoG1UU<&?E|zp09gfc<~wL&0EvS#9f$^rgJ_U5LGmEeK0(!i_zVDM CQP`^h literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/AfterEgypt/Run.CPP b/SparrowOS/Apps/AfterEgypt/Run.CPP new file mode 100644 index 0000000..07cfb66 --- /dev/null +++ b/SparrowOS/Apps/AfterEgypt/Run.CPP @@ -0,0 +1,3 @@ +Cd("/SparrowOS/Apps/AfterEgypt");; +#include "Load" +AfterEgypt; diff --git a/SparrowOS/Apps/AfterEgypt/WaterRock.CPP b/SparrowOS/Apps/AfterEgypt/WaterRock.CPP new file mode 100644 index 0000000000000000000000000000000000000000..12223616db4783d08efa4868029901c0079db5aa GIT binary patch literal 3504 zcmY#!a@R35QQ<-W1qGGh039V8LpvoMLu3hv5}34+osy0bhBQpp*iK2u7^kd>oste# zJ5BABbWGveRGi#ZxVV&4QqwZ?QWg9{edFDN9DQAbIZfb#F8<+u@gbhRuAByX2Ii)4 z@z4N>D5rs*5nM1hAjs9xB|gY8#Ff*Oi!0PZK`S#iy*L_Sa;$B&il-CY^Ewa?#H&ya z#Ai?r#3QxVTwHEuCJH46@hSP`c{(Kq@udaUTu%A*FT%l`ZsFPf& zZDgcVqzO|2a!Zk&t&t`dr+blGPJVuhTV_rUntG_}S}p|z5C-W%iW8XgvHDma?g5C6 zAiX6eb_RNumX?;9piqJ^L9(?9sX4`|IKr>AKvN%@B0*{);eg8|aPS-I8R(XPqX+D0 zTMa}S)iu=Af=Fe8BGcA6xS%MrB-IndDag-BEJ@V>r|QgD9SE&$7^{P!UpEsRFi_0_ zIr$~Vkbu)kuGBHm0UM211te=gGAvl3TTyDN225WqIH@C&IU-Hx7N^H2=clCVBxmRp zCtGuIDJTS|mXu`Xr56X37H4R<73+iqyTu1P`ntvk`}?_TS}W-52dAbgsQ7s6C?P9V z(oypDvqBM3;Zjg2DXN4&^#pJ1|IC<+Bs;Jlm2RJ&rDmXa?*@1-& zR8(T}U}iyciY++*+ZsTk8Y!{ax;gp;L({igv94W8QDS*~W{IsDN|6B52K9u30xZOA z-BU|^i_g*=HgU9F2!s^fCk$vj zA|=NB0xW5ftCov_iGhKEkpTjJFff4mOpF{LVKoK@1}!XDgMooTih+RvMuXIFK-Gb0 zJq88_IR*v>7;OMm3!_2eAUz-qQ~%-r|NkKK*cccXK=y+8Ao({?@h4FF)Bpefl^7Tp zej(8^3=9mf{{R0E(+84=sRPjWE|Ns9S92{UN2mw-nY6OZj z)DpN6VC4{<5E3i^Hvqze$bd>@NC=7{`oZ!b5ikSldk`P&0%*`dDMS>26o7&VDgm<{T|2}IkYb4GNb(@v VkhlR!V_>K>ltPt;3jY7k006mgtqK4D literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/GrModels/BallGen.CPP b/SparrowOS/Apps/GrModels/BallGen.CPP new file mode 100644 index 0000000..0d10688 --- /dev/null +++ b/SparrowOS/Apps/GrModels/BallGen.CPP @@ -0,0 +1,132 @@ +/* +This makes a mesh ball. +*/ + + +#define MAX_VERTICES 1024 +#define MAX_TRIANGLES 1024 + +class Ball +{ + I32 vertex_cnt; + I32 triangle_cnt; + CD3I32 v[MAX_VERTICES]; + CMeshTri t[MAX_TRIANGLES]; +} *b; + + +class BallDefineStruct +{ + F64 radius fmtstr "$$DA-T,32,\"Radius :%8.3f\"$$\n"; + I64 n_longitude fmtstr "$$DA-T,32,\"Longitude Faces:%5d\"$$\n"; + I64 n_lattitude fmtstr "$$DA-T,32,\"Lattitude Rings:%5d\"$$\n"; +}; + +U0 BDInit(BallDefineStruct *bd) +{ + MemSet(bd,0,sizeof(BallDefineStruct)); + bd->n_longitude=16; + bd->n_lattitude=8; + bd->radius =20.0; +} + +U0 BDCorrect(BallDefineStruct *bd) +{ + bd->n_longitude=(bd->n_longitude+1)/2; + bd->n_lattitude=(bd->n_lattitude+1)/2; +} + + +I64 AddVertex(BallDefineStruct *,I64 x,I64 y,I64 z) +{ + I64 i; + for (i=0;ivertex_cnt;i++) + if (b->v[i].x==x && b->v[i].y==y && b->v[i].z==z) + return i; + i=b->vertex_cnt++; + b->v[i].x=x; + b->v[i].y=y; + b->v[i].z=z; + return i; +} + +I64 AddTriangle(BallDefineStruct *,I64 c,I64 n0,I64 n1,I64 n2) +{ + I64 result=b->triangle_cnt++; + b->t[result].color=c; + b->t[result].nums[0]=n0; + b->t[result].nums[1]=n1; + b->t[result].nums[2]=n2; + return result; +} + +U8 *Ball2CSprite() +{ +//See $LK,"::/SparrowOS/Adam/Gr/GrSpritePlot.CPP.Z","FL:::/SparrowOS/Adam/Gr/GrSpritePlot.CPP.Z,1"$ for how CSprite are stored. + U8 *result=MAlloc(sizeof(U8)+2*sizeof(I32)+ + b->vertex_cnt*sizeof(CD3I32)+b->triangle_cnt*sizeof(CMeshTri)+gr_sprite_base_size[GRST_END]), + *dst=result; + *dst(U8 *)++ =GRST_MESH; + *dst(I32 *)++ =b->vertex_cnt; + *dst(I32 *)++ =b->triangle_cnt; + MemCpy(dst,&b->v,b->vertex_cnt*sizeof(CD3I32)); + dst+=b->vertex_cnt*sizeof(CD3I32); + MemCpy(dst,&b->t,b->triangle_cnt*sizeof(CMeshTri)); + dst+=b->triangle_cnt*sizeof(CMeshTri); + *dst(U8 *)++ =GRST_END; + return result; +} + +public U8 *BallGen() +{ + U8 *result; + I64 i,j,n,m,c,p1,p2,p3,p4; + BallDefineStruct bd1,bd2; + F64 r,r1,r2,z1,z2,d_a1,d_a2; + + BDInit(&bd1); + + while (TRUE) { + if (!DocFormDo(&bd1,"BallDefineStruct")) + return NULL; + MemCpy(&bd2,&bd1,sizeof(BallDefineStruct)); + BDCorrect(&bd2); + + c=PopUpLightingColor; + if (c<0) return NULL; + + b=CAlloc(sizeof(Ball)); + r=bd2.radius; + n=bd2.n_lattitude; + m=bd2.n_longitude; + d_a1=2*ã/n/4; + d_a2=2*ã/m/2; + for (j=-n;j\",%d$$"); + NewLine(7); + "Vertices:%d\n",b->vertex_cnt; + Free(b); + "Do another"; + if (YorN) + Free(result); + else + break; + } + return result; +} diff --git a/SparrowOS/Apps/GrModels/Load.CPP b/SparrowOS/Apps/GrModels/Load.CPP new file mode 100644 index 0000000..4e9b985 --- /dev/null +++ b/SparrowOS/Apps/GrModels/Load.CPP @@ -0,0 +1,3 @@ +#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/ManGen.CPP b/SparrowOS/Apps/GrModels/ManGen.CPP new file mode 100644 index 0000000..0f37ee3 --- /dev/null +++ b/SparrowOS/Apps/GrModels/ManGen.CPP @@ -0,0 +1,295 @@ +/* +This makes a mesh man. +*/ + + +#define MAX_VERTICES 1024 +#define MAX_TRIANGLES 1024 + +class Man +{ + I32 vertex_cnt; + I32 triangle_cnt; + CD3I32 v[MAX_VERTICES]; + CMeshTri t[MAX_TRIANGLES]; +} *m; + + +class ManDefineStruct +{ + F64 head_rad fmtstr "$$DA-T,32,\"Head Radius :%8.3f\"$$\n"; + + F64 torso_len fmtstr "$$DA-T,32,\"Torso Length :%8.3f\"$$\n"; + F64 arm_len fmtstr "$$DA-T,32,\"Arm Length :%8.3f\"$$\n"; + F64 hand_len fmtstr "$$DA-T,32,\"Hand Length :%8.3f\"$$\n"; + F64 leg_len fmtstr "$$DA-T,32,\"Leg Length :%8.3f\"$$\n"; + F64 foot_len fmtstr "$$DA-T,32,\"Foot Length :%8.3f\"$$\n"; + F64 torso_width fmtstr "$$DA-T,32,\"Torso Width :%8.3f\"$$\n"; + F64 torso_depth fmtstr "$$DA-T,32,\"Torso Depth :%8.3f\"$$\n"; + F64 arm_rad fmtstr "$$DA-T,32,\"Arm Radius :%8.3f\"$$\n"; + F64 hand_rad fmtstr "$$DA-T,32,\"Hand Radius :%8.3f\"$$\n"; + F64 leg_rad fmtstr "$$DA-T,32,\"Leg Radius :%8.3f\"$$\n"; + F64 foot_rad fmtstr "$$DA-T,32,\"Foot Radius :%8.3f\"$$\n\n"; + + F64 r_shoulder_a1 fmtstr "$$DA-T,32,\"R.Shoulder Front/Back Angle:%8.3f\"$$\n"; + F64 l_shoulder_a1 fmtstr "$$DA-T,32,\"L.Shoulder Front/Back Angle:%8.3f\"$$\n"; + F64 r_hip_a1 fmtstr "$$DA-T,32,\"R.Hip Front/Back Angle :%8.3f\"$$\n"; + F64 l_hip_a1 fmtstr "$$DA-T,32,\"L.Hip Front/Back Angle :%8.3f\"$$\n"; + + F64 r_shoulder_a2 fmtstr "$$DA-T,32,\"R.Shoulder Side Angle :%8.3f\"$$\n"; + F64 l_shoulder_a2 fmtstr "$$DA-T,32,\"L.Shoulder Side Angle :%8.3f\"$$\n"; + F64 r_hip_a2 fmtstr "$$DA-T,32,\"R.Hip Side Angle :%8.3f\"$$\n"; + F64 l_hip_a2 fmtstr "$$DA-T,32,\"L.Hip Side Angle :%8.3f\"$$\n"; + + F64 r_elbow_a fmtstr "$$DA-T,32,\"R.Elbow Angle :%8.3f\"$$\n"; + F64 l_elbow_a fmtstr "$$DA-T,32,\"L.Elbow Angle :%8.3f\"$$\n"; + F64 r_knee_a fmtstr "$$DA-T,32,\"R.Knee Angle :%8.3f\"$$\n"; + F64 l_knee_a fmtstr "$$DA-T,32,\"L.Knee Angle :%8.3f\"$$\n"; + + F64 r_wrist_a fmtstr "$$DA-T,32,\"R.Wrist Angle :%8.3f\"$$\n"; + F64 l_wrist_a fmtstr "$$DA-T,32,\"L.Wrist Angle :%8.3f\"$$\n"; + F64 r_ankle_a fmtstr "$$DA-T,32,\"R.Ankle Angle :%8.3f\"$$\n"; + F64 l_ankle_a fmtstr "$$DA-T,32,\"L.Ankle Angle :%8.3f\"$$\n"; + +}; + +U0 MDInit(ManDefineStruct *md) +{ + MemSet(md,0,sizeof(ManDefineStruct)); + + md->head_rad =5.0; + + md->torso_len =35.0; + md->arm_len =30.0; + md->hand_len =8.0; + md->leg_len =32.0; + md->foot_len =16.0; + md->torso_width=20.0; + md->torso_depth=10.0; + md->arm_rad =3.5; + md->hand_rad =2.0; + md->leg_rad =4.0; + md->foot_rad =3.0; + + md->r_shoulder_a1 =30; + md->l_shoulder_a1 =-30; + md->r_hip_a1 =-45; + md->l_hip_a1 =45; + + md->r_shoulder_a2 =10; + md->l_shoulder_a2 =10; + md->r_hip_a2 =-5; + md->l_hip_a2 =-5; + + md->r_elbow_a =30; + md->l_elbow_a =0; + md->r_knee_a =0; + md->l_knee_a =30; + + md->r_wrist_a =0; + md->l_wrist_a =0; + md->r_ankle_a =0; + md->l_ankle_a =0; +} + +U0 MDCorrect(ManDefineStruct *md) +{ + md->r_ankle_a =-md->r_ankle_a; + md->l_ankle_a =-md->l_ankle_a; + md->r_knee_a =-md->r_knee_a; + md->l_knee_a =-md->l_knee_a; + md->r_hip_a2 =-md->r_hip_a2; + md->r_shoulder_a2=-md->r_shoulder_a2; + md->r_ankle_a+=90; + md->l_ankle_a+=90; + + md->foot_len-=md->leg_rad; + + md->r_elbow_a+=md->r_shoulder_a1; + md->l_elbow_a+=md->l_shoulder_a1; + md->r_knee_a+=md->r_hip_a1; + md->l_knee_a+=md->l_hip_a1; + + md->r_wrist_a+=md->r_elbow_a; + md->l_wrist_a+=md->l_elbow_a; + md->r_ankle_a+=md->r_knee_a; + md->l_ankle_a+=md->l_knee_a; +} + + +I64 AddVertex(ManDefineStruct *md,I64 x,I64 y,I64 z) +{ + I64 result=m->vertex_cnt++; + m->v[result].x=-x; + m->v[result].y=-y-md->leg_len-md->foot_rad*2; + m->v[result].z=-z; + return result; +} + +I64 AddTriangle(ManDefineStruct *,I64 c,I64 n0,I64 n1,I64 n2) +{ + I64 result=m->triangle_cnt++; + m->t[result].color=c; + m->t[result].nums[0]=n1; + m->t[result].nums[1]=n0; + m->t[result].nums[2]=n2; + return result; +} + +U0 AddBox(ManDefineStruct *md,I64 c,I64 x1,I64 y1,I64 z1,F64 w,F64 h,F64 d,F64 h2,F64 h3,F64 az,F64 ay,F64 ax, + I64 *ox,I64 *oy,I64 *oz) +{ + I64 *r; + I64 p1a,p2a,p3a,p4a; + I64 p1b,p2b,p3b,p4b; + I64 wx=w/2,wy=0,wz=0,hx=0,hy=h,hz=0,h2x=0,h2y=h2,h2z=0,h3x=0,h3y=h3,h3z=0,dx=0,dy=0,dz=d/2; + + r=GrIdent; + GrRotZEqu(r,az*ã/180.0); + GrRotYEqu(r,ay*ã/180.0); + GrRotXEqu(r,ax*ã/180.0); + GrRot(r,&wx,&wy,&wz); + GrRot(r,&hx,&hy,&hz); + GrRot(r,&h2x,&h2y,&h2z); + GrRot(r,&h3x,&h3y,&h3z); + GrRot(r,&dx,&dy,&dz); + + p1a=AddVertex(md,x1+dx -wx+h2x,y1+dy -wy+h2y,z1+dz -wz+h2z); + p2a=AddVertex(md,x1+dx +wx+h2x,y1+dy +wy+h2y,z1+dz +wz+h2z); + p3a=AddVertex(md,x1+dx+hx-wx ,y1+dy+hy-wy ,z1+dz+hz-wz); + p4a=AddVertex(md,x1+dx+hx+wx ,y1+dy+hy+wy ,z1+dz+hz+wz); + AddTriangle(md,c,p1a,p2a,p3a); + AddTriangle(md,c,p4a,p3a,p2a); + + p1b=AddVertex(md,x1-dx -wx+h2x,y1-dy -wy+h2y,z1-dz -wz+h2z); + p2b=AddVertex(md,x1-dx +wx+h2x,y1-dy +wy+h2y,z1-dz +wz+h2z); + p3b=AddVertex(md,x1-dx+hx-wx ,y1-dy+hy-wy ,z1-dz+hz-wz); + p4b=AddVertex(md,x1-dx+hx+wx ,y1-dy+hy+wy ,z1-dz+hz+wz); + AddTriangle(md,c,p1b,p2b,p3b); + AddTriangle(md,c,p4b,p3b,p2b); + + AddTriangle(md,c,p1a,p2a,p1b); + AddTriangle(md,c,p2b,p1b,p2a); + AddTriangle(md,c,p3a,p4a,p3b); + AddTriangle(md,c,p4b,p3b,p4a); + AddTriangle(md,c,p1a,p3a,p1b); + AddTriangle(md,c,p3b,p1b,p3a); + AddTriangle(md,c,p2a,p4a,p2b); + AddTriangle(md,c,p4b,p2b,p4a); + + *ox=x1+hx-h3x; + *oy=y1+hy-h3y; + *oz=z1+hz-h3z; + + Free(r); +} + + +U8 *Man2CSprite() +{ +//See $LK,"::/SparrowOS/Adam/Gr/GrSpritePlot.CPP.Z","FL:::/SparrowOS/Adam/Gr/GrSpritePlot.CPP.Z,1"$ for how CSprite are stored. + U8 *result=MAlloc(sizeof(U8)+2*sizeof(I32)+ + m->vertex_cnt*sizeof(CD3I32)+m->triangle_cnt*sizeof(CMeshTri)+gr_sprite_base_size[GRST_END]), + *dst=result; + *dst(U8 *)++ =GRST_MESH; + *dst(I32 *)++ =m->vertex_cnt; + *dst(I32 *)++ =m->triangle_cnt; + MemCpy(dst,&m->v,m->vertex_cnt*sizeof(CD3I32)); + dst+=m->vertex_cnt*sizeof(CD3I32); + MemCpy(dst,&m->t,m->triangle_cnt*sizeof(CMeshTri)); + dst+=m->triangle_cnt*sizeof(CMeshTri); + *dst(U8 *)++ =GRST_END; + return result; +} + +public U8 *ManGen() +{ + U8 *result; + I64 x,y,z,c1,c2,c3,c4; + ManDefineStruct md1,md2; + MDInit(&md1); + + while (TRUE) { + if (!DocFormDo(&md1,"ManDefineStruct")) + return NULL; + MemCpy(&md2,&md1,sizeof(ManDefineStruct)); + MDCorrect(&md2); + + c1=PopUpLightingColor("$$BK,1$$Shirt$$BK,0$$\n"); + if (c1<0) return NULL; + c2=PopUpLightingColor("$$BK,1$$Pants$$BK,0$$\n"); + if (c2<0) return NULL; + c3=PopUpLightingColor("$$BK,1$$Skin$$BK,0$$\n"); + if (c3<0) return NULL; + c4=PopUpLightingColor("$$BK,1$$Shoes$$BK,0$$\n"); + if (c4<0) return NULL; + + m=CAlloc(sizeof(Man)); + + //Head + AddBox(&md2,c3,0,md2.torso_len+md2.head_rad*2,0, + md2.head_rad*2,-md2.head_rad*2,md2.head_rad*2,0,0, 0,0,0, + &x,&y,&z); + + //Torso + AddBox(&md2,c1,0,md2.torso_len,0, + md2.torso_width,-md2.torso_len,md2.torso_depth,0,0, 0,0,0, + &x,&y,&z); + + //Right Arm + AddBox(&md2,c1,-md2.torso_width/2-md2.arm_rad,md2.torso_len-md2.arm_rad,0, + md2.arm_rad*2,-md2.arm_len/2,md2.arm_rad*2,md2.arm_rad,0, + md2.r_shoulder_a2,0,md2.r_shoulder_a1,&x,&y,&z); + AddBox(&md2,c3,x,y,z, + md2.arm_rad*2,-md2.arm_len/2,md2.arm_rad*2,0,0, + md2.r_shoulder_a2,0,md2.r_elbow_a,&x,&y,&z); + AddBox(&md2,c3,x,y,z, + md2.arm_rad*2,-md2.hand_len,md2.hand_rad*2,0,0, + md2.r_shoulder_a2,0,md2.r_wrist_a,&x,&y,&z); + + //Left Arm + AddBox(&md2,c1,md2.torso_width/2+md2.arm_rad,md2.torso_len-md2.arm_rad,0, + md2.arm_rad*2,-md2.arm_len/2,md2.arm_rad*2,md2.arm_rad,0, + md2.l_shoulder_a2,0,md2.l_shoulder_a1,&x,&y,&z); + AddBox(&md2,c3,x,y,z, + md2.arm_rad*2,-md2.arm_len/2,md2.arm_rad*2,0,0, + md2.l_shoulder_a2,0,md2.l_elbow_a,&x,&y,&z); + AddBox(&md2,c3,x,y,z, + md2.arm_rad*2,-md2.hand_len,md2.hand_rad*2,0,0, + md2.l_shoulder_a2,0,md2.l_wrist_a,&x,&y,&z); + + //Right Leg + AddBox(&md2,c2,-md2.torso_width/2+md2.leg_rad,0,0, + md2.leg_rad*2,-md2.leg_len/2,md2.leg_rad*2,0,0, + md2.r_hip_a2,0,md2.r_hip_a1,&x,&y,&z); + AddBox(&md2,c3,x,y,z, + md2.leg_rad*2,-md2.leg_len/2,md2.leg_rad*2,0,md2.foot_rad, + md2.r_hip_a2,0,md2.r_knee_a,&x,&y,&z); + AddBox(&md2,c4,x,y,z, + md2.leg_rad*2,-md2.foot_len,md2.foot_rad*2,md2.leg_rad,0, + md2.r_hip_a2,0,md2.r_ankle_a,&x,&y,&z); + + //Left Leg + AddBox(&md2,c2,md2.torso_width/2-md2.leg_rad,0,0, + md2.leg_rad*2,-md2.leg_len/2,md2.leg_rad*2,0,0, + md2.l_hip_a2,0,md2.l_hip_a1,&x,&y,&z); + AddBox(&md2,c3,x,y,z, + md2.leg_rad*2,-md2.leg_len/2,md2.leg_rad*2,0,md2.foot_rad, + md2.l_hip_a2,0,md2.l_knee_a,&x,&y,&z); + AddBox(&md2,c4,x,y,z, + md2.leg_rad*2,-md2.foot_len,md2.foot_rad*2,md2.leg_rad,0, + md2.l_hip_a2,0,md2.l_ankle_a,&x,&y,&z); + + result=Man2CSprite; + NewLine(7); + PutSprite(result,"\t\t$$SP,\"<1>\",%d$$"); + NewLine(7); + Free(m); + "Do another"; + if (YorN) + Free(result); + else + break; + } + return result; +} diff --git a/SparrowOS/Apps/GrModels/Models.CPP b/SparrowOS/Apps/GrModels/Models.CPP new file mode 100644 index 0000000..93e6c75 --- /dev/null +++ b/SparrowOS/Apps/GrModels/Models.CPP @@ -0,0 +1,25 @@ +#define T_MAN 0 +#define T_BALL 1 + +U0 Models() +{ + I64 i; + Bool old_form=LBts(&(DocCur)->flags,DOCf_FORM); + DocClear; + "Make a CSprite model. Then, cut-and-Paste it.\n\n"; + "$$LM,4$$"; + "\n\n$$BT,\"Man\",T_MAN$$\n\n"; + "\n\n$$BT,\"Ball\",T_BALL$$\n\n"; + "$$LM,0$$"; + i=DocMenuDo(DocCur); + LBEqu(&(DocCur)->flags,DOCf_FORM,old_form); + DocBottom; + switch (i) { + case T_MAN: + ManGen; + break; + case T_BALL: + BallGen; + break; + } +} diff --git a/SparrowOS/Apps/GrModels/Run.CPP b/SparrowOS/Apps/GrModels/Run.CPP new file mode 100644 index 0000000..2baa7ef --- /dev/null +++ b/SparrowOS/Apps/GrModels/Run.CPP @@ -0,0 +1,2 @@ +#include "/SparrowOS/Apps/GrModels/Load" +Models; \ No newline at end of file diff --git a/SparrowOS/Apps/HolySpirit/HSNotes.TXT b/SparrowOS/Apps/HolySpirit/HSNotes.TXT new file mode 100644 index 0000000..d32845b --- /dev/null +++ b/SparrowOS/Apps/HolySpirit/HSNotes.TXT @@ -0,0 +1,41 @@ +$FG,5$$TX+CX,"The Purpose of Life"$$FG$ + +$WW,1$The purpose of life is to know God, love God and obey God.$FG$ Modern Christianity focuses on loving neighbor, not God. That is secular humanism. Loving God is more important than loving neighbor if you read $LK,"Matthew,22:37","BF:Matthew,22:37"$. Note: It does not say with half your mind behind your back. + +$FG,5$$TX+CX,"Knowing God"$$FG$ + +Most people don't know God. $LK,"1 Chronicles,28:9","BF:1 Chronicles,28:9"$, $LK,"Matthew,11:27","BF:Matthew,11:27"$, $LK,"Luke,13:25","BF:Luke,13:25"$ You must talk with Him to know Him. $LK,"Matthew,6:6","BF:Matthew,6:6"$ You must seek Him by taking the initiative. $LK,"Luke,11:9","BF:Luke,11:9"$, $LK,"Isaiah,30:2","BF:Isaiah,30:2"$ + +Have you heard of "tongues?" Read $LK,"1 Corinthians,14:1","BF:1 Corinthians,14:1"$. Basically, when you follow impulses, you can be puppeted by spirits. "Promptings of the Holy Spirit" Some people say strange words when they speak in tongues. $LK,"Acts,2:1","BF:Acts,2:1"$ I use a different technique -- in this program, I read a nanosecond-range stop-watch when a button is pressed and use the high-speed time as a random number for words or passages. I can also just randomly crack-open a book and get a response. + +Since seeking the word of the Holy Spirit, I have come to know God much better than I've heard others explain. God said, for example, that war was, "servicemen competing." That sounds more like the immutable God of our planet than what you hear from most religious people. God is not Venus (god of love) and not Mars (god of war), He's the God of Earth. (There is a book, $UL,1$Men are from Mars, Women from Venus$UL,0$. If Mammon is a false god of money, Mars or Venus might be useful words to describe other false gods.) I figure the greatest challenge for the Creator is boredom, ours and His. + +God's ways are far above man's ways. Mom said Heaven was a never-ending family reunion. Yikes! A friend said, "Most guy's idea of Heaven would be running around doing things they'd get locked up for on Earth." Most people are like King Midas. When you realize how silly most notions of Heaven are, you come to appreciate that Earth is not that bad. This is the first step in loving God, the Creator -- praising Creation. + +Just remember, "Little boys are made of snakes and snails and puppy-dog tails." $LK,"Luke,11:11","BF:Luke,11:11"$ God gives toys on Christmas, not just cloths, or at least the Holy Spirit! What does it mean that God gives the Holy Spirit? Basically, it means you get lucky because you're puppeted. "Puppeted" is a pagan word, but I'm putting it in terms everyone can understand. You act with God-like intellect when you accidentally say stuff more clever than you know you are. You'll know it when it happens. You'll be, like, "I know I'm not that smart." Basically, being puppeted affects chance on random things. God does not play with dice. The world is not random. How is being full of the Holy Spirit any different from what people call "luck"? Why else is it such a good thing? Be warned -- it can also lead to blessings in disguise or causing you to stupidly give away secrets you'd rather keep, for example. + + + +$FG,5$$TX+CX,"Loving God"$$FG$ + +Imagine a billionare. Everyone around him can't forget his money even for a moment. The truth is, most people are after God's, "money." They fear for salvation. Here's a test -- would you pray to and praise God even if there were no salvation? + +Love God and don't be a "user". Asking for stuff is annoying. $LK,"Luke,11:5","BF:Luke,11:5"$. Instead, offer Him praise. Make-up songs. You get out of prayer what you put into it. He knows better than you about the poor suffering people on the planet. It's silly and holier-than-thou praying for them. Since He does know, there's a good chance He might be doing it! "Thy will be done" means such prayers are wrong and annoying. Helping in a meaningful way is different, but don't fill your prayers with stupid requests for others. + +The book of $LK,"Job,1:5","BF:Job,1:5"$ begins with God hanging-out on the porch with Satan, chatting. I hope God doesn't play me like He played Job! I decided Job's problem was being so holier-than-thou that he did offerings for his kids, in case they sinned. I think highs and lows balance -- $LK,"Luke,6:20","BF:Luke,6:20"$. + +A simple rule of thumb for prayer should be, "Would I want to hear this prayer?" If you are not honestly pondering what pleases God, you're not even close to loving Him. $LK,"Ephesians,5:10","BF:Ephesians,5:10"$ and $LK,"Genesis,4:7","BF:Genesis,4:7"$ suggests experimenting to find what pleases God. God liked Abel's offering and not Cain's. Is it just me or is the entire planet brain dead! These people in the Bible obviously got feedback! I do hymns and I do comics, a little like parables. Praise, thanks and love are better than sacrifice. $LK,"Psalms,50:14","BF:Psalms,50:14"$, $LK,"Hosea,6:6","BF:Hosea,6:6"$ Obviously, animal sacrifices are really stupid. The whole notion of sacrifice is a little warped if you think about it. A loving God who wants you to hurt and deny yourself is bat-shit crazy! That's a demon! How would you feel if your wife abused herself to please you? Wha? If I were God, I might feel merciful to someone groveling, but I'd begin to get pissed if they were being emotionally manipulative. People become brain dead forgetting God is a thinking, emotional, being and not some sadistic accountant. + +All those sophisticated theological "infinity" things such as omnicient, omnipotent, omnipresent, etc. will mess you up and you do far worse than a simple person. Trust me -- anthropomorphic is far better, in practice. Christ suggested thinking of God as "Abba" which is Aramaic for "Daddy." + +Do a text search for "new song" in the Bible. It's mentioned nine times. You get out of prayer what you put into it and people are very lazy. The first commandment is to love God. You better be able to count the ways. + +You have, basically, two things you can praise God for -- Creation and Exodus. Am I right? You could do other historic events or maybe evidence of justice. I crack-up laughing because the New Testament has Egypt mentioned several time. Jesus praised God for flowers. $LK,"Matthew,6:29","BF:Matthew,6:29"$ + + + +$FG,5$$TX+CX,"Obeying God"$$FG$ + +Just as ego cause most to love neighbor, not God, people skip knowing and loving God and cowardly get stuck on obeying Him. This command hardly needs more encouragement. + +God does not want pawns to push around. God will talk, but won't tell you what to do, even if you want Him to. diff --git a/SparrowOS/Apps/HolySpirit/HolySpirit.CPP b/SparrowOS/Apps/HolySpirit/HolySpirit.CPP new file mode 100644 index 0000000..07d6794 --- /dev/null +++ b/SparrowOS/Apps/HolySpirit/HolySpirit.CPP @@ -0,0 +1,74 @@ +#define CLK_DIVISOR 16 + +U8 *TimeStampCB(CDoc *,CDocEntry *,CTask *mem_task) +{ + U8 *st=MAlloc(64,mem_task); + SPrintF(st,"%X",GetTimeStamp/CLK_DIVISOR); + return st; +} + +U8 *KbdMouseTimeCB(CDoc *,CDocEntry *,CTask *mem_task) +{ + U8 *st=MAlloc(64,mem_task); + SPrintF(st,"%X",KbdMouseEvtTime/CLK_DIVISOR); + return st; +} + +I64 PopUpTimerOk(U8 *header=NULL,U8 *footer=NULL) +{ + I64 i; + CDocEntry *doc_e; + CDoc *doc=DocNew; + if (header) DocPutS(doc,header); + doc_e=DocPutS(doc,"\nTimer:$$TX+TC,\" \"$$"); + doc_e->tag_cb=&TimeStampCB; + doc_e=DocPutS(doc,"\nLatch:$$TX+TC,\" \"$$"); + doc_e->tag_cb=&KbdMouseTimeCB; + DocPutS(doc,"\n$$CM+CX,0,4$$$$BT,\"OKAY\",0$$\n"); + if (footer) DocPutS(doc,footer); + i=PopUpMenu(doc); + DocDel(doc); + return i; +} + +I64 TimerPickedU16(U8 *msg=NULL) +{ + U8 *st; + if (msg) { + st=MAlloc(StrLen(msg)+256); + StrCpy(st,msg); + } else + st=CAlloc(256); + StrCat(st,"\n\nPress $$FG,GREEN$$OKAY$$FG$$ to generate \n" + "a random num from a timer.\n"); + PopUpTimerOk(st,"\n\nThe $WW,1$$LK,"Holy Spirit","FI:::/SparrowOS/Apps/HolySpirit/HSNotes.TXT.Z"$ can puppet you.\n\n"); + Free(st); + return KbdMouseEvtTime/CLK_DIVISOR; +} + +I64 TimerPickedU32(U8 *msg=NULL) +{ + I64 result=0; + result.u16[0]=TimerPickedU16(msg); + result.u16[1]=TimerPickedU16(msg); + return result; +} + + +CFifoU8 *rnd_nibble_fifo=FifoU8New(16); + +I64 TimerPickedNibble(U8 *msg=NULL) +{ + I64 result=0; + if (FifoU8Rem(rnd_nibble_fifo,&result)) + return result; + else { + result=TimerPickedU16(msg); + FifoU8Ins(rnd_nibble_fifo,result.u8[0]>>4); + FifoU8Ins(rnd_nibble_fifo,result.u8[1]&15); + FifoU8Ins(rnd_nibble_fifo,result.u8[1]>>4); + FifoU8Ins(rnd_nibble_fifo,result.u8[2]&15); + FifoU8Ins(rnd_nibble_fifo,result.u8[2]>>4); + return result&15; + } +} diff --git a/SparrowOS/Apps/KeepAway/KeepAway.CPP b/SparrowOS/Apps/KeepAway/KeepAway.CPP new file mode 100644 index 0000000..54b0055 --- /dev/null +++ b/SparrowOS/Apps/KeepAway/KeepAway.CPP @@ -0,0 +1,1196 @@ +//The ball and men were generated +//with $LK,"::/SparrowOS/Apps/GrModels/Run.CPP.Z","FI:::/SparrowOS/Apps/GrModels/Run.CPP.Z"$. +//They were cut-and-pasted here. + + + +$BG,14$ + $SP,"<1>",1$ + + + + + + $SP,"<2>",2$ + + + + + + + + + $SP,"<3>",3$ + + + + + + + + + $SP,"<4>",4$ + + + + + + + + + $SP,"<5>",5$ + + + + + + + + + $SP,"<6>",6$ + + + + + + + + + $SP,"<7>",7$ + + + + + + + + + $SP,"<8>",8$ + + + + + + + + + $SP,"<9>",9$ + + + + + + + + + $SP,"<10>",10$ + + + + + + + + + $SP,"<11>",11$ + + + + + + + + + + $SP,"<12>",12$ + + + + + + + + + + $SP,"<13>",13$ + + + + + + + + + $SP,"<14>",14$ + + + + + + + + $SP,"<15>",15$ + + + + + + + + $SP,"<16>",16$ + + + + + + + + + $SP,"<17>",17$ + + + + + + + + + $SP,"<18>",18$ + + + + + + + + + $SP,"<19>",19$ + + + + + + + + + $SP,"<20>",20$ + + + + + + + + + $SP,"<21>",21$ + + + + + + + + + $SP,"<22>",22$ + + + + + + + + + $SP,"<23>",23$ + + + + + +$BG$ + +class Frame +{ + U8 *img[2]; + F64 dt; +}; + +#define COURT_BORDER 10 +#define COLLISION_DAMP 0.8 + +/* This viscosity is way bigger than +real air viscosity. In reality +air is approximated by V and V$SY,-3$2$SY,0$ +terms and is smaller. However, I use +this to produce a rolling friction +value, too. If you want to see my +best attempt at realistic physics +download SimStructure. + +http://www.sparrowos.com/files/SimStrSetUp.ZIP +Product Key: L00-W10-M70 + +This is just a video game. Relax. +*/ +#define AIR_VISCOSITY 0.1 + +#define GRAVITY_ACCELERATION 500 +#define SHOT_VELOCITY 400 +#define DRIBBLE_T 0.25 +#define MAN_VELOCITY 150 +#define MAN_SQR_RADIUS (20*20) +#define FOUL_VELOCITY_THRESHOLD 50 +#define JUMP_VELOCITY 250 +#define ROLL_VELOCITY_THRESHOLD 100 +#define RANDOM_MAN_ACCELERATION 30 + +#define HEAD_Z_OFFSET 200 +#define HAND_X_OFFSET 30 +#define HAND_Y_OFFSET 20 +#define HAND_SQR_OFFSET (HAND_X_OFFSET*HAND_X_OFFSET+HAND_Y_OFFSET*HAND_Y_OFFSET) +#define HAND_Z_OFFSET 110 + +#define FIRST_STANDING 0 + +#define NUM_RUNNING_IMGS 4 +#define FIRST_RUNNING 0 +#define LAST_RUNNING (FIRST_RUNNING+NUM_RUNNING_IMGS-1) + +#define NUM_SHOOTING_IMGS 5 +#define FIRST_SHOOTING (LAST_RUNNING+1) +#define LAST_SHOOTING (FIRST_SHOOTING+NUM_SHOOTING_IMGS-1) + +#define NUM_DRIBBLING_IMGS 4 +#define FIRST_DRIBBLING (LAST_SHOOTING+1) +#define LAST_DRIBBLING (FIRST_DRIBBLING+NUM_DRIBBLING_IMGS-1) + +#define NUM_STOPPED_DRIBBLING_IMGS 2 +#define FIRST_STOPPED_DRIBBLING (LAST_DRIBBLING+1) +#define LAST_STOPPED_DRIBBLING (FIRST_STOPPED_DRIBBLING+NUM_STOPPED_DRIBBLING_IMGS-1) + +Frame man_imgs[LAST_STOPPED_DRIBBLING+1]={ +{{$IB,"<6>",6$,$IB,"<7>",7$},2*DRIBBLE_T/NUM_RUNNING_IMGS},{{$IB,"<2>",2$,$IB,"<3>",3$},2*DRIBBLE_T/NUM_RUNNING_IMGS}, +{{$IB,"<6>",6$,$IB,"<7>",7$},2*DRIBBLE_T/NUM_RUNNING_IMGS},{{$IB,"<4>",4$,$IB,"<5>",5$},2*DRIBBLE_T/NUM_RUNNING_IMGS}, +{{$IB,"<8>",8$,$IB,"<9>",9$},0.1},{{$IB,"<10>",10$,$IB,"<11>",11$},0.2},{{$IB,"<12>",12$,$IB,"<13>",13$},0.2},{{$IB,"<12>",12$,$IB,"<13>",13$},0.1},{{$IB,"<14>",14$,$IB,"<15>",15$},0.1}, +{{$IB,"<20>",20$,$IB,"<21>",21$},2*DRIBBLE_T/NUM_DRIBBLING_IMGS},{{$IB,"<16>",16$,$IB,"<17>",17$},2*DRIBBLE_T/NUM_DRIBBLING_IMGS}, +{{$IB,"<20>",20$,$IB,"<21>",21$},2*DRIBBLE_T/NUM_DRIBBLING_IMGS},{{$IB,"<18>",18$,$IB,"<19>",19$},2*DRIBBLE_T/NUM_DRIBBLING_IMGS}, +{{$IB,"<20>",20$,$IB,"<21>",21$},DRIBBLE_T/NUM_STOPPED_DRIBBLING_IMGS},{{$IB,"<22>",22$,$IB,"<23>",23$},DRIBBLE_T/NUM_STOPPED_DRIBBLING_IMGS}, +}; + +AcctRegSetDftEntry("SparrowOS/KeepAway","I64 best_score0=0,best_score1=9999;\n"); +AcctRegExecuteBranch("SparrowOS/KeepAway"); + +F64 game_t_end,foul_t_end; +I64 score0,score1; + +#define NUM_PER_SIDE 3 +#define NUM_OBJS (NUM_PER_SIDE*2+1) +Bool someone_shooting; + +class Obj +{ + I64 team; //-1 is ball + F64 x,y,z,DxDt,DyDt,DzDt,ay,radius,stolen_t0; + F64 last_t0,next_t0,foul_t0; + I64 last_img,next_img; + Bool stopped,shooting,has_ball,pad[5]; +} objs[NUM_OBJS],*ball,*human; + + +/* +Just to be different, I didn't use the built-in +DCF_TRANSFORMATION flag in this game. +Instead, I chose a 45 degree angle +between Y and Z as the view point. +If I had used the transform, I would +have to make all my men taller. +This is a little simpler, and faster, +but adds lots of factor 2 vals. + +I also didn't use the $LK,"CMathODE","MN:CMathODE"$ feat, +just to be different. +*/ + +U0 DrawObj(CDC *dc,Obj *o,F64 tt) +{ + U8 *inter; + F64 r1=Max(9-0.1*o->z,1),r2=Max(r1/4,1); + + if (o==human) + dc->color=LTRED; + else + dc->color=BLACK; + GrEllipse(dc,o->x,o->y/2,r1,r2); + GrFloodFill(dc,o->x,o->y/2); + + if (o==ball) + CSpritePlot3(dc,o->x,(o->y-o->z)/2,GR_Z_ALL-o->y,$IB,"<1>",1$); + else { + inter=CSpriteInterpolate(man_imgs[o->last_img].img[o->team], + man_imgs[o->next_img].img[o->team], + (tt-o->last_t0)/(o->next_t0-o->last_t0)); + CSpritePlotRotY3b(dc,o->x,(o->y-o->z)/2,GR_Z_ALL-o->y,inter,o->ay); + Free(inter); + } +} + +I64 ObjCompare(Obj *o1,Obj *o2) +{ + return o1->y-o2->y; +} + + +U0 DrawIt(CTask *task,CDC *dc) +{ + F64 tt=tP(task),d,d_down,d_up; + I64 i; + Obj *o_sort[NUM_OBJS],*o; + + DCAllocDepthBuf(dc); + dc->ls.x=10000; + dc->ls.y=60000; + dc->ls.z=10000; + d=65535/P3I32Norm(&dc->ls); + dc->ls.x*=d; + dc->ls.y*=d; + dc->ls.z*=d; + + dc->pen_width=2; + dc->color=RED; + GrLineRect4(dc,COURT_BORDER,COURT_BORDER, + task->win_pixel_width -1-COURT_BORDER, + task->win_pixel_height-1-COURT_BORDER); + for (i=0;ihas_ball) { + ball->x=o->x+HAND_X_OFFSET*Cos(o->ay-ã/2)+HAND_Y_OFFSET*Cos(o->ay); + //The factor 2 is because the man is not transformed. + ball->y=o->y+HAND_X_OFFSET*Sin(o->ay-ã/2)/2+HAND_Y_OFFSET*Sin(o->ay)/2; + if (ball->z+ball->radius*2>o->z+HAND_Z_OFFSET) + ball->z=o->z+HAND_Z_OFFSET-ball->radius*2; + } else if (o->shooting) { + ball->x=o->x; + ball->y=o->y; + ball->z=o->z+HEAD_Z_OFFSET; + } + if (tt>o->next_t0) { + if (o->has_ball && (ball->z+ball->radius*2>=o->z+HAND_Z_OFFSET || Abs(ball->DzDt)<30)) { + //This is an approximation. My instinct tells me the viscosity term needs an $LK,"Exp","MN:Exp"$(). + //However, we should be syncronized to img frames, so we don't have to be perfect. + d_down=1.0; + d_up =1.0/COLLISION_DAMP; //Up bounce takes higher percentage because speed lost in collision. + ball->DzDt=-((d_down+d_up)*(o->z+HAND_Z_OFFSET-ball->radius*4)/(1.0-AIR_VISCOSITY)+ + 0.5*GRAVITY_ACCELERATION*( + Sqr(DRIBBLE_T*d_up/(d_down+d_up))- + Sqr(DRIBBLE_T*d_down/(d_down+d_up)) ))/DRIBBLE_T; + } + o->last_t0=tt; + o->last_img=o->next_img++; + if (o->stopped) { + if (o->has_ball) { + if (!(FIRST_STOPPED_DRIBBLING<=o->next_img<=LAST_STOPPED_DRIBBLING)) + o->next_img=FIRST_STOPPED_DRIBBLING; + } else + o->next_img=FIRST_STANDING; + o->stopped=FALSE; + } else if (o->shooting) { + if (!(FIRST_SHOOTING<=o->last_img<=LAST_SHOOTING)) + o->next_img=FIRST_SHOOTING; + if (o->next_img>LAST_SHOOTING) { + o->next_img=FIRST_STANDING; + someone_shooting=o->has_ball=o->shooting=FALSE; + ball->DxDt=o->DxDt+SHOT_VELOCITY/sqrt2*Cos(o->ay-ã/2); + ball->DyDt=o->DyDt+SHOT_VELOCITY/sqrt2*Sin(o->ay-ã/2); + ball->DzDt=o->DzDt+SHOT_VELOCITY/sqrt2; + } else { + ball->DxDt=0; + ball->DyDt=0; + ball->DzDt=0; + } + } else if (o->has_ball) { + if (FIRST_RUNNING<=o->next_img<=LAST_RUNNING) + o->next_img+=FIRST_DRIBBLING-FIRST_RUNNING; + if (!(FIRST_DRIBBLING<=o->next_img<=LAST_DRIBBLING)) + o->next_img=FIRST_DRIBBLING; + } else { + if (FIRST_DRIBBLING<=o->next_img<=LAST_DRIBBLING) + o->next_img+=FIRST_RUNNING-FIRST_DRIBBLING; + if (!(FIRST_RUNNING<=o->next_img<=LAST_RUNNING)) + o->next_img=FIRST_RUNNING; + } + o->next_t0+=man_imgs[o->last_img].dt; + if (o->next_t0<=tt) + o->next_t0=tt+man_imgs[o->last_img].dt; + } + } + } + + QSortI64(o_sort,NUM_OBJS,&ObjCompare); + for (i=0;icolor=RED; + tt=0; + if (Blink(,tP(task))) + GrPrintF(dc,(task->win_pixel_width-FONT_WIDTH*9)>>1, + (task->win_pixel_height-FONT_HEIGHT)>>1,"Game Over"); + } else { + if (tP(task)color=LTRED; + if (Blink(,tP(task))) + GrPrintF(dc,(task->win_pixel_width-FONT_WIDTH*4)>>1, + (task->win_pixel_height-FONT_HEIGHT)>>1,"Foul"); + } + dc->color=BLACK; + } + GrPrintF(dc,0,0,"Time:%d:%04.1f Score:",ToI64(tt),(tt-ToI64(tt))*60); + GrPutS (dc,FONT_WIDTH*27,0,"Best Score:"); + + dc->color=LTCYAN; + GrPrintF(dc,FONT_WIDTH*20,0,"%02d",score0); + dc->color=LTPURPLE; + GrPrintF(dc,FONT_WIDTH*23,0,"%02d",score1); + + dc->color=LTCYAN; + GrPrintF(dc,FONT_WIDTH*39,0,"%02d",best_score0); + dc->color=LTPURPLE; + GrPrintF(dc,FONT_WIDTH*42,0,"%02d",best_score1); +} + + +U0 Shoot(Obj *o) +{ + if (!someone_shooting && o->has_ball) { + someone_shooting=o->stopped=o->shooting=TRUE; + o->has_ball=FALSE; + } +} + + +U0 AnimateTask(CTask *parent_task) +{ + F64 d,dx,dy,dt,dx2,dy2,t0=tP(parent_task); + I64 i,j,team; + Bool gets_ball,ball_stolen; + Obj *o; + while (TRUE) { + dt=tP(parent_task)-t0; + t0=tP(parent_task); + + if (game_t_end && game_t_endbest_score0-best_score1) { + best_score0=score0; + best_score1=score1; + Snd(2000);Sleep(100); Snd(0);Sleep(100); + Snd(2000);Sleep(100); Snd(0);Sleep(100); + } + } + + if (game_t_end) + for (i=0;ix+=dt*o->DxDt; + o->y+=dt*o->DyDt; + if (!someone_shooting) + o->z+=dt*(o->DzDt-0.5*GRAVITY_ACCELERATION*dt); + } else { + if (!o->has_ball) { + if (t0-o->stolen_t0>2.0 && !someone_shooting) { + dx=ball->x-o->x; + dy=ball->y-o->y; + if (dx*dx+dy*dyzz+HAND_Z_OFFSET) { + gets_ball=TRUE; + ball_stolen=FALSE; + for (j=0;jhas_ball=TRUE; + if (o==human) { + if (ball_stolen && team) { + Noise(250,2000,2000,WF_SQUARE); + score0+=2; + } + } else { + if (o->team) { + Noise(250,1000,1000,WF_SQUARE); + score1+=2; + } else { + Noise(250,2000,2000,WF_SQUARE); + score0+=2; + } + } + } + } + } + } else if (o!=human && Rand<0.25*dt) + Shoot(o); + if (!o->shooting) { + if (o==human) { + dx=(ipx-parent_task->win_pixel_left-parent_task->win_scroll_x)-o->x; + dy=(ipy-parent_task->win_pixel_top-parent_task->win_scroll_y)*2-o->y; + } else { + dx=o->DxDt+=RANDOM_MAN_ACCELERATION/sqrt2*RandI16/MAX_I16*dt; + dy=o->DyDt+=RANDOM_MAN_ACCELERATION/sqrt2*RandI16/MAX_I16*dt; + } + d=Sqrt(dx*dx+dy*dy); + if (d>=1.0) { + o->ay=Arg(dx,dy)+ã/2; + dx*=MAN_VELOCITY/sqrt2*dt/d; + dy*=MAN_VELOCITY/sqrt2*dt/d; + for (j=0;jx; + dy2=objs[j].y-o->y; + if ((d=Sqr(dx2)+Sqr(dy2))o->foul_t0+0.15) { + d=(dx-objs[j].DxDt)*dx2+(dy-objs[j].DyDt)*dy2; + if (o==human && t0>o->foul_t0+1.0 && + dt && d/dt>FOUL_VELOCITY_THRESHOLD && objs[j].team) { + Noise(250,500,500,WF_SQUARE); + score1+=1; + foul_t_end=t0+1.0; + } + o->foul_t0=t0; + } + } + } + if (t0foul_t0+0.15) { + dx=-dx; + dy=-dy; + } + o->x+=dx; + o->y+=dy; + o->stopped=FALSE; + } else + o->stopped=TRUE; + } + if (o->DzDt) + o->z+=dt*(o->DzDt-0.5*GRAVITY_ACCELERATION*dt); + } + + if (o->x+o->radius>=parent_task->win_pixel_width-COURT_BORDER) { + o->x=parent_task->win_pixel_width-COURT_BORDER-1-o->radius; + o->DxDt=-COLLISION_DAMP*o->DxDt; + if (o==ball) + Noise(10,1000,2000); + } + if (o->x-o->radiusx=COURT_BORDER+o->radius; + o->DxDt=-COLLISION_DAMP*o->DxDt; + if (o==ball) + Noise(10,1000,2000); + } + + if (o->y+o->radius*2>=(parent_task->win_pixel_height-COURT_BORDER)*2) { + o->y=(parent_task->win_pixel_height-COURT_BORDER)*2-1-o->radius*2; + o->DyDt=-COLLISION_DAMP*o->DyDt; + if (o==ball) + Noise(10,1000,2000); + } + if (o->y-o->radius*2<2*COURT_BORDER) { + o->y=COURT_BORDER*2+o->radius*2; + o->DyDt=-COLLISION_DAMP*o->DyDt; + if (o==ball) + Noise(10,1000,2000); + } + + if (o->z-o->radius*2<0) { + o->z=o->radius*2; + o->DzDt=-COLLISION_DAMP*o->DzDt; + if (o->DzDt>ROLL_VELOCITY_THRESHOLD) + Noise(10,1000,2000); + if (o!=ball) + o->DzDt=0; + } else if (o->z-o->radius*2>0) + o->DzDt-=GRAVITY_ACCELERATION*dt; + if (o==ball) { + d=Exp(-AIR_VISCOSITY*dt); + o->DxDt*=d; + o->DyDt*=d; + o->DzDt*=d; + } + } + + WinMgrSync; + } +} + +U0 Init() +{ + I64 i; + someone_shooting=FALSE; + MemSet(&objs,0,sizeof(objs)); + for (i=0;iwin_pixel_width/2; + objs[i].y=2*Fs->win_pixel_height/2; + objs[i].next_img=objs[i].last_img=FIRST_RUNNING; + } + human=&objs[0]; + ball =&objs[i]; + ball->team=-1; + ball->x=0.5*Fs->win_pixel_width/2; + ball->y=0.5*2*Fs->win_pixel_height/2; + ball->radius=11; + ball->z=ball->radius; + score0=score1=0; + game_t_end=tP+3*60; + foul_t_end=0; +} + +U0 CleanUp() +{ +} + +U0 KeepAway() +{ + I64 msg_code,p1,p2; + + PopUpOk( + "$$FG,RED$$Pass or hand-off to score points.$$FG$$\n\n" + "Left-Click to pass.\n" + "Right-Click to jump.\n"); + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WinMax; + WinBorder; + Preempt(OFF); + DocCurAttr(BLACK+YELLOW<<4); + + Fs->win_inhibit|=WIF_DBL_CLICK; + WordStat; + + MenuPush( +"File {" +" Abort(,CH_SHIFT_ESC);" +" Exit(,CH_ESC);" +"}" +"Play {" +" Restart(,CH_NEW_LINE);" +" Shoot(,CH_SPACE);" +" Jump(,'j');" +"}" + ); + + Init; + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + Fs->animate_task=Spawn(&AnimateTask,Fs,"Animate",Fs); + + try { + while (TRUE) { + msg_code=GetMsg(&p1,&p2,1<DzDt=JUMP_VELOCITY; + break; + case MSG_KEY_DOWN: + switch (p1) { + case CH_NEW_LINE: + CleanUp; + Init; + break; + case 'j': + goto ka_jump; + case CH_SPACE: + goto ka_shoot; + case CH_SHIFT_ESC: + case CH_ESC: + goto ka_done; + } + break; + } + } +ka_done: //Don't goto out of try + } catch + CatchAll; + SettingsPop; + AcctRegWriteBranch("SparrowOS/KeepAway","I64 best_score0=%d,best_score1=%d;\n", + best_score0,best_score1); + CleanUp; + MenuPop; +} + +//This is so I can use this file stand alone +//or as a component of a program. +#if IncludeDepth<2 +KeepAway; +#endif + +Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿºÿÿÿüÿÿÿ ¼ÿÿÿþÿÿÿÉÿÿÿËÿÿÿ¶ÿÿÿ ¸ÿÿÿÅÿÿÿ Çÿÿÿ ÊÿÿÿÌÿÿÿÒÿÿÿÔÿÿÿÄÿÿÿÆÿÿÿ +ÌÿÿÿÎÿÿÿÑÿÿÿÓÿÿÿÕÿÿÿ×ÿÿÿÍÿÿÿÏÿÿÿÑÿÿÿÓÿÿÿöÿÿÿ¸ÿÿÿÿÿÿÿòÿÿÿ¸ÿÿÿóÿÿÿÇÿÿÿöÿÿÿïÿÿÿÇÿÿÿøÿÿÿöÿÿÿºÿÿÿòÿÿÿºÿÿÿóÿÿÿÉÿÿÿúÿÿÿïÿÿÿÉÿÿÿüÿÿÿóÿÿÿÇÿÿÿöÿÿÿïÿÿÿÇÿÿÿøÿÿÿñÿÿÿÔÿÿÿïÿÿÿíÿÿÿÔÿÿÿñÿÿÿóÿÿÿÉÿÿÿúÿÿÿïÿÿÿÉÿÿÿüÿÿÿñÿÿÿÖÿÿÿóÿÿÿíÿÿÿÖÿÿÿõÿÿÿñÿÿÿÔÿÿÿðÿÿÿíÿÿÿÔÿÿÿòÿÿÿðÿÿÿÛÿÿÿíÿÿÿìÿÿÿÛÿÿÿïÿÿÿñÿÿÿÖÿÿÿòÿÿÿíÿÿÿÖÿÿÿôÿÿÿðÿÿÿÝÿÿÿïÿÿÿìÿÿÿÝÿÿÿñÿÿÿ ØÿÿÿýÿÿÿØÿÿÿÿÿÿÿäÿÿÿòÿÿÿäÿÿÿôÿÿÿ ÜÿÿÿÜÿÿÿèÿÿÿöÿÿÿèÿÿÿøÿÿÿäÿÿÿòÿÿÿäÿÿÿôÿÿÿðÿÿÿçÿÿÿðÿÿÿéÿÿÿèÿÿÿöÿÿÿèÿÿÿøÿÿÿôÿÿÿëÿÿÿôÿÿÿíÿÿÿõÿÿÿãÿÿÿõÿÿÿãÿÿÿîÿÿÿÿÿÿÿîÿÿÿïÿÿÿçÿÿÿïÿÿÿçÿÿÿúÿÿÿòÿÿÿÿÿÿÿúÿÿÿòÿÿÿýÿÿÿÜÿÿÿýÿÿÿ÷ÿÿÿÞÿÿÿÿÿÿÿÿÿÿÿèÿÿÿ ùÿÿÿêÿÿÿ ýÿÿÿÖÿÿÿ÷ÿÿÿØÿÿÿÿÿÿÿâÿÿÿ ùÿÿÿäÿÿÿÿÿÿÿçÿÿÿùÿÿÿéÿÿÿ +÷ÿÿÿ ûÿÿÿùÿÿÿÿÿÿÿãÿÿÿùÿÿÿåÿÿÿóÿÿÿûÿÿÿõÿÿÿýÿÿÿûÿÿÿýÿÿÿøÿÿÿýÿÿÿøÿÿÿ ÷ÿÿÿ ûÿÿÿ÷ÿÿÿòÿÿÿýÿÿÿòÿÿÿ  + +       +  +   +      ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿºÿÿÿüÿÿÿ ¼ÿÿÿþÿÿÿÉÿÿÿËÿÿÿ¶ÿÿÿ ¸ÿÿÿÅÿÿÿ Çÿÿÿ ÊÿÿÿÌÿÿÿÒÿÿÿÔÿÿÿÄÿÿÿÆÿÿÿ +ÌÿÿÿÎÿÿÿÑÿÿÿÓÿÿÿÕÿÿÿ×ÿÿÿÍÿÿÿÏÿÿÿÑÿÿÿÓÿÿÿöÿÿÿ¸ÿÿÿÿÿÿÿòÿÿÿ¸ÿÿÿóÿÿÿÇÿÿÿöÿÿÿïÿÿÿÇÿÿÿøÿÿÿöÿÿÿºÿÿÿòÿÿÿºÿÿÿóÿÿÿÉÿÿÿúÿÿÿïÿÿÿÉÿÿÿüÿÿÿóÿÿÿÇÿÿÿöÿÿÿïÿÿÿÇÿÿÿøÿÿÿñÿÿÿÔÿÿÿïÿÿÿíÿÿÿÔÿÿÿñÿÿÿóÿÿÿÉÿÿÿúÿÿÿïÿÿÿÉÿÿÿüÿÿÿñÿÿÿÖÿÿÿóÿÿÿíÿÿÿÖÿÿÿõÿÿÿñÿÿÿÔÿÿÿðÿÿÿíÿÿÿÔÿÿÿòÿÿÿðÿÿÿÛÿÿÿíÿÿÿìÿÿÿÛÿÿÿïÿÿÿñÿÿÿÖÿÿÿòÿÿÿíÿÿÿÖÿÿÿôÿÿÿðÿÿÿÝÿÿÿïÿÿÿìÿÿÿÝÿÿÿñÿÿÿ ØÿÿÿýÿÿÿØÿÿÿÿÿÿÿäÿÿÿòÿÿÿäÿÿÿôÿÿÿ ÜÿÿÿÜÿÿÿèÿÿÿöÿÿÿèÿÿÿøÿÿÿäÿÿÿòÿÿÿäÿÿÿôÿÿÿðÿÿÿçÿÿÿðÿÿÿéÿÿÿèÿÿÿöÿÿÿèÿÿÿøÿÿÿôÿÿÿëÿÿÿôÿÿÿíÿÿÿõÿÿÿãÿÿÿõÿÿÿãÿÿÿîÿÿÿÿÿÿÿîÿÿÿïÿÿÿçÿÿÿïÿÿÿçÿÿÿúÿÿÿòÿÿÿÿÿÿÿúÿÿÿòÿÿÿýÿÿÿÜÿÿÿýÿÿÿ÷ÿÿÿÞÿÿÿÿÿÿÿÿÿÿÿèÿÿÿ ùÿÿÿêÿÿÿ ýÿÿÿÖÿÿÿ÷ÿÿÿØÿÿÿÿÿÿÿâÿÿÿ ùÿÿÿäÿÿÿÿÿÿÿçÿÿÿùÿÿÿéÿÿÿ +÷ÿÿÿ ûÿÿÿùÿÿÿÿÿÿÿãÿÿÿùÿÿÿåÿÿÿóÿÿÿûÿÿÿõÿÿÿýÿÿÿûÿÿÿýÿÿÿøÿÿÿýÿÿÿøÿÿÿ ÷ÿÿÿ ûÿÿÿ÷ÿÿÿòÿÿÿýÿÿÿòÿÿÿ  + +   + +  +     ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ·ÿÿÿ ¹ÿÿÿÆÿÿÿ÷ÿÿÿÈÿÿÿ÷ÿÿÿ¹ÿÿÿ »ÿÿÿÈÿÿÿûÿÿÿÊÿÿÿûÿÿÿÆÿÿÿ÷ÿÿÿÈÿÿÿ÷ÿÿÿÓÿÿÿðÿÿÿÕÿÿÿðÿÿÿÈÿÿÿûÿÿÿÊÿÿÿûÿÿÿÕÿÿÿôÿÿÿ×ÿÿÿôÿÿÿÓÿÿÿñÿÿÿÕÿÿÿñÿÿÿÚÿÿÿîÿÿÿÜÿÿÿîÿÿÿÕÿÿÿóÿÿÿ×ÿÿÿóÿÿÿÜÿÿÿðÿÿÿÞÿÿÿðÿÿÿöÿÿÿ»ÿÿÿýÿÿÿòÿÿÿ»ÿÿÿýÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿöÿÿÿ·ÿÿÿòÿÿÿ·ÿÿÿóÿÿÿÆÿÿÿ +ïÿÿÿÆÿÿÿ +óÿÿÿËÿÿÿïÿÿÿËÿÿÿñÿÿÿÓÿÿÿíÿÿÿÓÿÿÿóÿÿÿÅÿÿÿ ïÿÿÿÅÿÿÿ ñÿÿÿÍÿÿÿíÿÿÿÍÿÿÿñÿÿÿÒÿÿÿíÿÿÿÒÿÿÿðÿÿÿÖÿÿÿìÿÿÿÖÿÿÿñÿÿÿÎÿÿÿíÿÿÿÎÿÿÿðÿÿÿÒÿÿÿìÿÿÿÒÿÿÿ ÝÿÿÿþÿÿÿÝÿÿÿþÿÿÿéÿÿÿ +éÿÿÿ + ×ÿÿÿ×ÿÿÿãÿÿÿãÿÿÿèÿÿÿ èÿÿÿ øÿÿÿøÿÿÿäÿÿÿäÿÿÿôÿÿÿôÿÿÿüÿÿÿþÿÿÿ÷ÿÿÿÿÿÿÿùÿÿÿöÿÿÿ øÿÿÿ ñÿÿÿÿÿÿÿóÿÿÿýÿÿÿ×ÿÿÿþÿÿÿ÷ÿÿÿÙÿÿÿþÿÿÿÿÿÿÿãÿÿÿóÿÿÿùÿÿÿåÿÿÿóÿÿÿýÿÿÿÛÿÿÿ÷ÿÿÿÝÿÿÿÿÿÿÿçÿÿÿ÷ÿÿÿùÿÿÿéÿÿÿ÷ÿÿÿÿÿÿÿãÿÿÿóÿÿÿùÿÿÿåÿÿÿóÿÿÿïÿÿÿèÿÿÿûÿÿÿñÿÿÿèÿÿÿÿÿÿÿçÿÿÿ÷ÿÿÿùÿÿÿéÿÿÿ÷ÿÿÿóÿÿÿìÿÿÿûÿÿÿõÿÿÿìÿÿÿôÿÿÿâÿÿÿûÿÿÿöÿÿÿäÿÿÿÿÿÿÿíÿÿÿýÿÿÿïÿÿÿîÿÿÿæÿÿÿûÿÿÿðÿÿÿèÿÿÿùÿÿÿñÿÿÿýÿÿÿûÿÿÿóÿÿÿ  + +       +  +   +      ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ·ÿÿÿ ¹ÿÿÿÆÿÿÿ÷ÿÿÿÈÿÿÿ÷ÿÿÿ¹ÿÿÿ »ÿÿÿÈÿÿÿûÿÿÿÊÿÿÿûÿÿÿÆÿÿÿ÷ÿÿÿÈÿÿÿ÷ÿÿÿÓÿÿÿðÿÿÿÕÿÿÿðÿÿÿÈÿÿÿûÿÿÿÊÿÿÿûÿÿÿÕÿÿÿôÿÿÿ×ÿÿÿôÿÿÿÓÿÿÿñÿÿÿÕÿÿÿñÿÿÿÚÿÿÿîÿÿÿÜÿÿÿîÿÿÿÕÿÿÿóÿÿÿ×ÿÿÿóÿÿÿÜÿÿÿðÿÿÿÞÿÿÿðÿÿÿöÿÿÿ»ÿÿÿýÿÿÿòÿÿÿ»ÿÿÿýÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿöÿÿÿ·ÿÿÿòÿÿÿ·ÿÿÿóÿÿÿÆÿÿÿ +ïÿÿÿÆÿÿÿ +óÿÿÿËÿÿÿïÿÿÿËÿÿÿñÿÿÿÓÿÿÿíÿÿÿÓÿÿÿóÿÿÿÅÿÿÿ ïÿÿÿÅÿÿÿ ñÿÿÿÍÿÿÿíÿÿÿÍÿÿÿñÿÿÿÒÿÿÿíÿÿÿÒÿÿÿðÿÿÿÖÿÿÿìÿÿÿÖÿÿÿñÿÿÿÎÿÿÿíÿÿÿÎÿÿÿðÿÿÿÒÿÿÿìÿÿÿÒÿÿÿ ÝÿÿÿþÿÿÿÝÿÿÿþÿÿÿéÿÿÿ +éÿÿÿ + ×ÿÿÿ×ÿÿÿãÿÿÿãÿÿÿèÿÿÿ èÿÿÿ øÿÿÿøÿÿÿäÿÿÿäÿÿÿôÿÿÿôÿÿÿüÿÿÿþÿÿÿ÷ÿÿÿÿÿÿÿùÿÿÿöÿÿÿ øÿÿÿ ñÿÿÿÿÿÿÿóÿÿÿýÿÿÿ×ÿÿÿþÿÿÿ÷ÿÿÿÙÿÿÿþÿÿÿÿÿÿÿãÿÿÿóÿÿÿùÿÿÿåÿÿÿóÿÿÿýÿÿÿÛÿÿÿ÷ÿÿÿÝÿÿÿÿÿÿÿçÿÿÿ÷ÿÿÿùÿÿÿéÿÿÿ÷ÿÿÿÿÿÿÿãÿÿÿóÿÿÿùÿÿÿåÿÿÿóÿÿÿïÿÿÿèÿÿÿûÿÿÿñÿÿÿèÿÿÿÿÿÿÿçÿÿÿ÷ÿÿÿùÿÿÿéÿÿÿ÷ÿÿÿóÿÿÿìÿÿÿûÿÿÿõÿÿÿìÿÿÿôÿÿÿâÿÿÿûÿÿÿöÿÿÿäÿÿÿÿÿÿÿíÿÿÿýÿÿÿïÿÿÿîÿÿÿæÿÿÿûÿÿÿðÿÿÿèÿÿÿùÿÿÿñÿÿÿýÿÿÿûÿÿÿóÿÿÿ  + +   + +  +     ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ¸ÿÿÿýÿÿÿ ºÿÿÿýÿÿÿÉÿÿÿýÿÿÿËÿÿÿýÿÿÿ¸ÿÿÿ ºÿÿÿÉÿÿÿËÿÿÿÉÿÿÿýÿÿÿËÿÿÿýÿÿÿØÿÿÿýÿÿÿÚÿÿÿýÿÿÿÉÿÿÿËÿÿÿØÿÿÿÚÿÿÿØÿÿÿþÿÿÿÚÿÿÿþÿÿÿàÿÿÿþÿÿÿâÿÿÿþÿÿÿØÿÿÿÚÿÿÿàÿÿÿâÿÿÿöÿÿÿ¹ÿÿÿýÿÿÿòÿÿÿ¹ÿÿÿýÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿöÿÿÿ¹ÿÿÿòÿÿÿ¹ÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿñÿÿÿÙÿÿÿýÿÿÿíÿÿÿÙÿÿÿýÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿñÿÿÿÙÿÿÿþÿÿÿíÿÿÿÙÿÿÿþÿÿÿðÿÿÿáÿÿÿþÿÿÿìÿÿÿáÿÿÿþÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿðÿÿÿáÿÿÿìÿÿÿáÿÿÿ +ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +ÚÿÿÿÚÿÿÿ +êÿÿÿêÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +êÿÿÿêÿÿÿ +úÿÿÿúÿÿÿ +üÿÿÿüÿÿÿ +  +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +úÿÿÿ úÿÿÿ þÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿ öÿÿÿ þÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ öÿÿÿúÿÿÿ   + +       +  +   +      ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ¸ÿÿÿýÿÿÿ ºÿÿÿýÿÿÿÉÿÿÿýÿÿÿËÿÿÿýÿÿÿ¸ÿÿÿ ºÿÿÿÉÿÿÿËÿÿÿÉÿÿÿýÿÿÿËÿÿÿýÿÿÿØÿÿÿýÿÿÿÚÿÿÿýÿÿÿÉÿÿÿËÿÿÿØÿÿÿÚÿÿÿØÿÿÿþÿÿÿÚÿÿÿþÿÿÿàÿÿÿþÿÿÿâÿÿÿþÿÿÿØÿÿÿÚÿÿÿàÿÿÿâÿÿÿöÿÿÿ¹ÿÿÿýÿÿÿòÿÿÿ¹ÿÿÿýÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿöÿÿÿ¹ÿÿÿòÿÿÿ¹ÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿñÿÿÿÙÿÿÿýÿÿÿíÿÿÿÙÿÿÿýÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿñÿÿÿÙÿÿÿþÿÿÿíÿÿÿÙÿÿÿþÿÿÿðÿÿÿáÿÿÿþÿÿÿìÿÿÿáÿÿÿþÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿðÿÿÿáÿÿÿìÿÿÿáÿÿÿ +ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +ÚÿÿÿÚÿÿÿ +êÿÿÿêÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +êÿÿÿêÿÿÿ +úÿÿÿúÿÿÿ +üÿÿÿüÿÿÿ +  +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +úÿÿÿ úÿÿÿ þÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿ öÿÿÿ þÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ öÿÿÿúÿÿÿ   + +   + +  +     ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ¾ÿÿÿýÿÿÿ +¾ÿÿÿýÿÿÿ¾ÿÿÿ +¾ÿÿÿ¸ÿÿÿýÿÿÿ +¸ÿÿÿýÿÿÿ¸ÿÿÿ +¸ÿÿÿ»ÿÿÿ +»ÿÿÿ¬ÿÿÿ +¬ÿÿÿ»ÿÿÿ +»ÿÿÿ ¬ÿÿÿ +¬ÿÿÿ ¬ÿÿÿ +¬ÿÿÿ¤ÿÿÿ +¤ÿÿÿ¬ÿÿÿ +¬ÿÿÿ ¤ÿÿÿ +¤ÿÿÿ öÿÿÿ¾ÿÿÿýÿÿÿðÿÿÿ¾ÿÿÿýÿÿÿöÿÿÿ¾ÿÿÿðÿÿÿ¾ÿÿÿöÿÿÿ¸ÿÿÿýÿÿÿðÿÿÿ¸ÿÿÿýÿÿÿöÿÿÿ¸ÿÿÿðÿÿÿ¸ÿÿÿöÿÿÿ»ÿÿÿðÿÿÿ»ÿÿÿöÿÿÿ¬ÿÿÿðÿÿÿ¬ÿÿÿöÿÿÿ»ÿÿÿ ðÿÿÿ»ÿÿÿ öÿÿÿ¬ÿÿÿ ðÿÿÿ¬ÿÿÿ öÿÿÿ¬ÿÿÿðÿÿÿ¬ÿÿÿöÿÿÿ¤ÿÿÿðÿÿÿ¤ÿÿÿöÿÿÿ¬ÿÿÿ ðÿÿÿ¬ÿÿÿ öÿÿÿ¤ÿÿÿ ðÿÿÿ¤ÿÿÿ +ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +ÚÿÿÿÚÿÿÿ +êÿÿÿêÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +êÿÿÿêÿÿÿ +úÿÿÿúÿÿÿ +üÿÿÿüÿÿÿ +  +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +úÿÿÿ úÿÿÿ þÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿ öÿÿÿ þÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ öÿÿÿúÿÿÿ   + +       +  +   +      ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmok Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ¾ÿÿÿýÿÿÿ +¾ÿÿÿýÿÿÿ¾ÿÿÿ +¾ÿÿÿ¸ÿÿÿýÿÿÿ +¸ÿÿÿýÿÿÿ¸ÿÿÿ +¸ÿÿÿ»ÿÿÿ +»ÿÿÿ¬ÿÿÿ +¬ÿÿÿ»ÿÿÿ +»ÿÿÿ ¬ÿÿÿ +¬ÿÿÿ ¬ÿÿÿ +¬ÿÿÿ¤ÿÿÿ +¤ÿÿÿ¬ÿÿÿ +¬ÿÿÿ ¤ÿÿÿ +¤ÿÿÿ öÿÿÿ¾ÿÿÿýÿÿÿðÿÿÿ¾ÿÿÿýÿÿÿöÿÿÿ¾ÿÿÿðÿÿÿ¾ÿÿÿöÿÿÿ¸ÿÿÿýÿÿÿðÿÿÿ¸ÿÿÿýÿÿÿöÿÿÿ¸ÿÿÿðÿÿÿ¸ÿÿÿöÿÿÿ»ÿÿÿðÿÿÿ»ÿÿÿöÿÿÿ¬ÿÿÿðÿÿÿ¬ÿÿÿöÿÿÿ»ÿÿÿ ðÿÿÿ»ÿÿÿ öÿÿÿ¬ÿÿÿ ðÿÿÿ¬ÿÿÿ öÿÿÿ¬ÿÿÿðÿÿÿ¬ÿÿÿöÿÿÿ¤ÿÿÿðÿÿÿ¤ÿÿÿöÿÿÿ¬ÿÿÿ ðÿÿÿ¬ÿÿÿ öÿÿÿ¤ÿÿÿ ðÿÿÿ¤ÿÿÿ +ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +ÚÿÿÿÚÿÿÿ +êÿÿÿêÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +êÿÿÿêÿÿÿ +úÿÿÿúÿÿÿ +üÿÿÿüÿÿÿ +  +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +úÿÿÿ úÿÿÿ þÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿ öÿÿÿ þÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ öÿÿÿúÿÿÿ   + +   + +  +     ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmok +Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ¿ÿÿÿ Áÿÿÿ ¶ÿÿÿ ¸ÿÿÿ¹ÿÿÿüÿÿÿ »ÿÿÿüÿÿÿ °ÿÿÿ ²ÿÿÿ ²ÿÿÿ ´ÿÿÿ ¦ÿÿÿ¨ÿÿÿ + ´ÿÿÿ ¶ÿÿÿ ¨ÿÿÿªÿÿÿ ¦ÿÿÿ¨ÿÿÿ + ÿÿÿ¢ÿÿÿ ¨ÿÿÿªÿÿÿ +¢ÿÿÿ¤ÿÿÿõÿÿÿÀÿÿÿÿÿÿÿñÿÿÿÀÿÿÿøÿÿÿ·ÿÿÿôÿÿÿ·ÿÿÿõÿÿÿºÿÿÿûÿÿÿñÿÿÿºÿÿÿýÿÿÿøÿÿÿ±ÿÿÿ +ôÿÿÿ±ÿÿÿ øÿÿÿ³ÿÿÿôÿÿÿ³ÿÿÿûÿÿÿ§ÿÿÿ ÷ÿÿÿ§ÿÿÿ øÿÿÿµÿÿÿ +ôÿÿÿµÿÿÿ +ûÿÿÿ©ÿÿÿ÷ÿÿÿ©ÿÿÿûÿÿÿ§ÿÿÿ÷ÿÿÿ§ÿÿÿýÿÿÿ¡ÿÿÿùÿÿÿ¡ÿÿÿûÿÿÿ©ÿÿÿ÷ÿÿÿ©ÿÿÿýÿÿÿ£ÿÿÿùÿÿÿ£ÿÿÿ +ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +ÚÿÿÿÚÿÿÿ +êÿÿÿêÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +êÿÿÿêÿÿÿ +úÿÿÿúÿÿÿ +üÿÿÿüÿÿÿ +  +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +úÿÿÿ úÿÿÿ þÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿ öÿÿÿ þÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ öÿÿÿúÿÿÿ   + +       +  +   +      ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmok Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ¿ÿÿÿ Áÿÿÿ ¶ÿÿÿ ¸ÿÿÿ¹ÿÿÿüÿÿÿ »ÿÿÿüÿÿÿ °ÿÿÿ ²ÿÿÿ ²ÿÿÿ ´ÿÿÿ ¦ÿÿÿ¨ÿÿÿ + ´ÿÿÿ ¶ÿÿÿ ¨ÿÿÿªÿÿÿ ¦ÿÿÿ¨ÿÿÿ + ÿÿÿ¢ÿÿÿ ¨ÿÿÿªÿÿÿ +¢ÿÿÿ¤ÿÿÿõÿÿÿÀÿÿÿÿÿÿÿñÿÿÿÀÿÿÿøÿÿÿ·ÿÿÿôÿÿÿ·ÿÿÿõÿÿÿºÿÿÿûÿÿÿñÿÿÿºÿÿÿýÿÿÿøÿÿÿ±ÿÿÿ +ôÿÿÿ±ÿÿÿ øÿÿÿ³ÿÿÿôÿÿÿ³ÿÿÿûÿÿÿ§ÿÿÿ ÷ÿÿÿ§ÿÿÿ øÿÿÿµÿÿÿ +ôÿÿÿµÿÿÿ +ûÿÿÿ©ÿÿÿ÷ÿÿÿ©ÿÿÿûÿÿÿ§ÿÿÿ÷ÿÿÿ§ÿÿÿýÿÿÿ¡ÿÿÿùÿÿÿ¡ÿÿÿûÿÿÿ©ÿÿÿ÷ÿÿÿ©ÿÿÿýÿÿÿ£ÿÿÿùÿÿÿ£ÿÿÿ +ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +ÚÿÿÿÚÿÿÿ +êÿÿÿêÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +êÿÿÿêÿÿÿ +úÿÿÿúÿÿÿ +üÿÿÿüÿÿÿ +  +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +úÿÿÿ úÿÿÿ þÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿ öÿÿÿ þÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ öÿÿÿúÿÿÿ   + +   + +  +     ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ¾ÿÿÿþÿÿÿ ¾ÿÿÿþÿÿÿ ¾ÿÿÿ ¾ÿÿÿ¸ÿÿÿþÿÿÿ ¸ÿÿÿþÿÿÿ ¸ÿÿÿ ¸ÿÿÿ ¾ÿÿÿ ¾ÿÿÿ ¾ÿÿÿ¾ÿÿÿ ¸ÿÿÿ ¸ÿÿÿ ¸ÿÿÿ¸ÿÿÿ ½ÿÿÿ½ÿÿÿ +½ÿÿÿ&½ÿÿÿ& ¹ÿÿÿ¹ÿÿÿ +¹ÿÿÿ&¹ÿÿÿ&õÿÿÿ¾ÿÿÿýÿÿÿñÿÿÿ¾ÿÿÿÿÿÿÿøÿÿÿ¾ÿÿÿôÿÿÿ¾ÿÿÿõÿÿÿ¸ÿÿÿýÿÿÿñÿÿÿ¸ÿÿÿÿÿÿÿøÿÿÿ¸ÿÿÿôÿÿÿ¸ÿÿÿøÿÿÿ¾ÿÿÿôÿÿÿ¾ÿÿÿûÿÿÿ¾ÿÿÿ÷ÿÿÿ¾ÿÿÿ øÿÿÿ¸ÿÿÿôÿÿÿ¸ÿÿÿûÿÿÿ¸ÿÿÿ÷ÿÿÿ¸ÿÿÿ ûÿÿÿ½ÿÿÿ÷ÿÿÿ½ÿÿÿ ýÿÿÿ½ÿÿÿ%ùÿÿÿ½ÿÿÿ'ûÿÿÿ¹ÿÿÿ÷ÿÿÿ¹ÿÿÿ ýÿÿÿ¹ÿÿÿ%ùÿÿÿ¹ÿÿÿ' +ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +ÚÿÿÿÚÿÿÿ +êÿÿÿêÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +êÿÿÿêÿÿÿ +úÿÿÿúÿÿÿ +üÿÿÿüÿÿÿ +  +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +úÿÿÿ úÿÿÿ þÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿ öÿÿÿ þÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ öÿÿÿúÿÿÿ   + +       +  +   +      ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ¾ÿÿÿþÿÿÿ ¾ÿÿÿþÿÿÿ ¾ÿÿÿ ¾ÿÿÿ¸ÿÿÿþÿÿÿ ¸ÿÿÿþÿÿÿ ¸ÿÿÿ ¸ÿÿÿ ¾ÿÿÿ ¾ÿÿÿ ¾ÿÿÿ¾ÿÿÿ ¸ÿÿÿ ¸ÿÿÿ ¸ÿÿÿ¸ÿÿÿ ½ÿÿÿ½ÿÿÿ +½ÿÿÿ&½ÿÿÿ& ¹ÿÿÿ¹ÿÿÿ +¹ÿÿÿ&¹ÿÿÿ&õÿÿÿ¾ÿÿÿýÿÿÿñÿÿÿ¾ÿÿÿÿÿÿÿøÿÿÿ¾ÿÿÿôÿÿÿ¾ÿÿÿõÿÿÿ¸ÿÿÿýÿÿÿñÿÿÿ¸ÿÿÿÿÿÿÿøÿÿÿ¸ÿÿÿôÿÿÿ¸ÿÿÿøÿÿÿ¾ÿÿÿôÿÿÿ¾ÿÿÿûÿÿÿ¾ÿÿÿ÷ÿÿÿ¾ÿÿÿ øÿÿÿ¸ÿÿÿôÿÿÿ¸ÿÿÿûÿÿÿ¸ÿÿÿ÷ÿÿÿ¸ÿÿÿ ûÿÿÿ½ÿÿÿ÷ÿÿÿ½ÿÿÿ ýÿÿÿ½ÿÿÿ%ùÿÿÿ½ÿÿÿ'ûÿÿÿ¹ÿÿÿ÷ÿÿÿ¹ÿÿÿ ýÿÿÿ¹ÿÿÿ%ùÿÿÿ¹ÿÿÿ' +ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +ÚÿÿÿÚÿÿÿ +êÿÿÿêÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +êÿÿÿêÿÿÿ +úÿÿÿúÿÿÿ +üÿÿÿüÿÿÿ +  +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +úÿÿÿ úÿÿÿ þÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿ öÿÿÿ þÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ öÿÿÿúÿÿÿ   + +   + +  +     ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmok Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ¿ÿÿÿ Áÿÿÿ ¯ÿÿÿ ±ÿÿÿ »ÿÿÿüÿÿÿ ½ÿÿÿüÿÿÿ «ÿÿÿ ­ÿÿÿ «ÿÿÿ ­ÿÿÿ ¢ÿÿÿüÿÿÿ¤ÿÿÿþÿÿÿ ¯ÿÿÿ ±ÿÿÿ ¦ÿÿÿøÿÿÿ¨ÿÿÿúÿÿÿ £ÿÿÿüÿÿÿ¥ÿÿÿþÿÿÿ +žÿÿÿöÿÿÿ ÿÿÿøÿÿÿ ¥ÿÿÿøÿÿÿ§ÿÿÿúÿÿÿ + ÿÿÿòÿÿÿ¢ÿÿÿôÿÿÿõÿÿÿÀÿÿÿñÿÿÿÀÿÿÿøÿÿÿ°ÿÿÿôÿÿÿ°ÿÿÿ +õÿÿÿ¼ÿÿÿûÿÿÿñÿÿÿ¼ÿÿÿýÿÿÿøÿÿÿ¬ÿÿÿôÿÿÿ¬ÿÿÿøÿÿÿ¬ÿÿÿôÿÿÿ¬ÿÿÿûÿÿÿ£ÿÿÿýÿÿÿ÷ÿÿÿ£ÿÿÿýÿÿÿøÿÿÿ°ÿÿÿôÿÿÿ°ÿÿÿûÿÿÿ§ÿÿÿùÿÿÿ÷ÿÿÿ§ÿÿÿùÿÿÿûÿÿÿ¤ÿÿÿýÿÿÿ÷ÿÿÿ¤ÿÿÿýÿÿÿýÿÿÿŸÿÿÿ÷ÿÿÿùÿÿÿŸÿÿÿ÷ÿÿÿûÿÿÿ¦ÿÿÿùÿÿÿ÷ÿÿÿ¦ÿÿÿùÿÿÿýÿÿÿ¡ÿÿÿóÿÿÿùÿÿÿ¡ÿÿÿóÿÿÿ +ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +ÚÿÿÿÚÿÿÿ +êÿÿÿêÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +êÿÿÿêÿÿÿ +úÿÿÿúÿÿÿ +üÿÿÿüÿÿÿ +  +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +úÿÿÿ úÿÿÿ þÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿ öÿÿÿ þÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ öÿÿÿúÿÿÿ   + +       +  +   +      ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmok Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ¿ÿÿÿ Áÿÿÿ ¯ÿÿÿ ±ÿÿÿ »ÿÿÿüÿÿÿ ½ÿÿÿüÿÿÿ «ÿÿÿ ­ÿÿÿ «ÿÿÿ ­ÿÿÿ ¢ÿÿÿüÿÿÿ¤ÿÿÿþÿÿÿ ¯ÿÿÿ ±ÿÿÿ ¦ÿÿÿøÿÿÿ¨ÿÿÿúÿÿÿ £ÿÿÿüÿÿÿ¥ÿÿÿþÿÿÿ +žÿÿÿöÿÿÿ ÿÿÿøÿÿÿ ¥ÿÿÿøÿÿÿ§ÿÿÿúÿÿÿ + ÿÿÿòÿÿÿ¢ÿÿÿôÿÿÿõÿÿÿÀÿÿÿñÿÿÿÀÿÿÿøÿÿÿ°ÿÿÿôÿÿÿ°ÿÿÿ +õÿÿÿ¼ÿÿÿûÿÿÿñÿÿÿ¼ÿÿÿýÿÿÿøÿÿÿ¬ÿÿÿôÿÿÿ¬ÿÿÿøÿÿÿ¬ÿÿÿôÿÿÿ¬ÿÿÿûÿÿÿ£ÿÿÿýÿÿÿ÷ÿÿÿ£ÿÿÿýÿÿÿøÿÿÿ°ÿÿÿôÿÿÿ°ÿÿÿûÿÿÿ§ÿÿÿùÿÿÿ÷ÿÿÿ§ÿÿÿùÿÿÿûÿÿÿ¤ÿÿÿýÿÿÿ÷ÿÿÿ¤ÿÿÿýÿÿÿýÿÿÿŸÿÿÿ÷ÿÿÿùÿÿÿŸÿÿÿ÷ÿÿÿûÿÿÿ¦ÿÿÿùÿÿÿ÷ÿÿÿ¦ÿÿÿùÿÿÿýÿÿÿ¡ÿÿÿóÿÿÿùÿÿÿ¡ÿÿÿóÿÿÿ +ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +ÚÿÿÿÚÿÿÿ +êÿÿÿêÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +êÿÿÿêÿÿÿ +úÿÿÿúÿÿÿ +üÿÿÿüÿÿÿ +  +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +úÿÿÿ úÿÿÿ þÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿ öÿÿÿ þÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ öÿÿÿúÿÿÿ   + +   + +  +     ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÎ +;€öÿÿÿýÿÿÿ÷ÿÿÿÿÿÿÿ÷ÿÿÿ÷ÿÿÿ÷ÿÿÿÿÿÿÿ÷ÿÿÿýÿÿÿ÷ÿÿÿýÿÿÿÿÿÿÿ÷ÿÿÿÿÿÿÿýÿÿÿ÷ÿÿÿüÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿüÿÿÿùÿÿÿùÿÿÿùÿÿÿûÿÿÿüÿÿÿùÿÿÿùÿÿÿùÿÿÿûÿÿÿùÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿøÿÿÿýÿÿÿøÿÿÿýÿÿÿýÿÿÿýÿÿÿøÿÿÿýÿÿÿøÿÿÿýÿÿÿ + +ùÿÿÿöÿÿÿùÿÿÿùÿÿÿöÿÿÿùÿÿÿýÿÿÿøÿÿÿøÿÿÿýÿÿÿýÿÿÿøÿÿÿøÿÿÿýÿÿÿüÿÿÿùÿÿÿûÿÿÿüÿÿÿùÿÿÿûÿÿÿ ÿÿÿÿ ýÿÿÿ ýÿÿÿÿÿÿÿ ÿÿÿÿýÿÿÿ ýÿÿÿ ÿÿÿÿ  +   + + +         + + +             !!!""###$$$%%%& && ' '' ( !((!)!))""#**#+#$++$,$%,,%-%&--&.&'..'/'(//(0()00)1)"11"**+22+3+,33,4,-44-5-.55.6./66/7/077080188191*99*223::3:34::4:45::5:56::6:67::7:78::8:89::9:92::2:Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ»ÿÿÿûÿÿÿ ½ÿÿÿýÿÿÿÈÿÿÿÊÿÿÿ +µÿÿÿÿÿÿÿ ·ÿÿÿÂÿÿÿ ÄÿÿÿÈÿÿÿ Êÿÿÿ ÐÿÿÿÒÿÿÿÂÿÿÿ Äÿÿÿ ÊÿÿÿÌÿÿÿÐÿÿÿÐÿÿÿÎÿÿÿ Îÿÿÿ"ÌÿÿÿÌÿÿÿÊÿÿÿÊÿÿÿ öÿÿÿ¸ÿÿÿÿÿÿÿòÿÿÿ¸ÿÿÿóÿÿÿÇÿÿÿöÿÿÿïÿÿÿÇÿÿÿøÿÿÿöÿÿÿºÿÿÿòÿÿÿºÿÿÿóÿÿÿÉÿÿÿúÿÿÿïÿÿÿÉÿÿÿüÿÿÿóÿÿÿÇÿÿÿöÿÿÿïÿÿÿÇÿÿÿøÿÿÿñÿÿÿÔÿÿÿïÿÿÿíÿÿÿÔÿÿÿñÿÿÿóÿÿÿÉÿÿÿúÿÿÿïÿÿÿÉÿÿÿüÿÿÿñÿÿÿÖÿÿÿóÿÿÿíÿÿÿÖÿÿÿõÿÿÿñÿÿÿÔÿÿÿðÿÿÿíÿÿÿÔÿÿÿòÿÿÿðÿÿÿÛÿÿÿíÿÿÿìÿÿÿÛÿÿÿïÿÿÿñÿÿÿÖÿÿÿòÿÿÿíÿÿÿÖÿÿÿôÿÿÿðÿÿÿÝÿÿÿïÿÿÿìÿÿÿÝÿÿÿñÿÿÿ ØÿÿÿýÿÿÿØÿÿÿÿÿÿÿäÿÿÿòÿÿÿäÿÿÿôÿÿÿ ÜÿÿÿÜÿÿÿèÿÿÿöÿÿÿèÿÿÿøÿÿÿäÿÿÿòÿÿÿäÿÿÿôÿÿÿðÿÿÿçÿÿÿðÿÿÿéÿÿÿèÿÿÿöÿÿÿèÿÿÿøÿÿÿôÿÿÿëÿÿÿôÿÿÿíÿÿÿõÿÿÿãÿÿÿõÿÿÿãÿÿÿîÿÿÿÿÿÿÿîÿÿÿïÿÿÿçÿÿÿïÿÿÿçÿÿÿúÿÿÿòÿÿÿÿÿÿÿúÿÿÿòÿÿÿýÿÿÿÜÿÿÿýÿÿÿ÷ÿÿÿÞÿÿÿÿÿÿÿÿÿÿÿèÿÿÿ ùÿÿÿêÿÿÿ ýÿÿÿÖÿÿÿ÷ÿÿÿØÿÿÿÿÿÿÿâÿÿÿ ùÿÿÿäÿÿÿÿÿÿÿçÿÿÿùÿÿÿéÿÿÿ +÷ÿÿÿ ûÿÿÿùÿÿÿÿÿÿÿãÿÿÿùÿÿÿåÿÿÿóÿÿÿûÿÿÿõÿÿÿýÿÿÿûÿÿÿýÿÿÿøÿÿÿýÿÿÿøÿÿÿ ÷ÿÿÿ ûÿÿÿ÷ÿÿÿòÿÿÿýÿÿÿòÿÿÿ  + +       +  +   +      ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ»ÿÿÿûÿÿÿ ½ÿÿÿýÿÿÿÈÿÿÿÊÿÿÿ +µÿÿÿÿÿÿÿ ·ÿÿÿÂÿÿÿ ÄÿÿÿÈÿÿÿ Êÿÿÿ ÐÿÿÿÒÿÿÿÂÿÿÿ Äÿÿÿ ÊÿÿÿÌÿÿÿÐÿÿÿÐÿÿÿÎÿÿÿ Îÿÿÿ"ÌÿÿÿÌÿÿÿÊÿÿÿÊÿÿÿ öÿÿÿ¸ÿÿÿÿÿÿÿòÿÿÿ¸ÿÿÿóÿÿÿÇÿÿÿöÿÿÿïÿÿÿÇÿÿÿøÿÿÿöÿÿÿºÿÿÿòÿÿÿºÿÿÿóÿÿÿÉÿÿÿúÿÿÿïÿÿÿÉÿÿÿüÿÿÿóÿÿÿÇÿÿÿöÿÿÿïÿÿÿÇÿÿÿøÿÿÿñÿÿÿÔÿÿÿïÿÿÿíÿÿÿÔÿÿÿñÿÿÿóÿÿÿÉÿÿÿúÿÿÿïÿÿÿÉÿÿÿüÿÿÿñÿÿÿÖÿÿÿóÿÿÿíÿÿÿÖÿÿÿõÿÿÿñÿÿÿÔÿÿÿðÿÿÿíÿÿÿÔÿÿÿòÿÿÿðÿÿÿÛÿÿÿíÿÿÿìÿÿÿÛÿÿÿïÿÿÿñÿÿÿÖÿÿÿòÿÿÿíÿÿÿÖÿÿÿôÿÿÿðÿÿÿÝÿÿÿïÿÿÿìÿÿÿÝÿÿÿñÿÿÿ ØÿÿÿýÿÿÿØÿÿÿÿÿÿÿäÿÿÿòÿÿÿäÿÿÿôÿÿÿ ÜÿÿÿÜÿÿÿèÿÿÿöÿÿÿèÿÿÿøÿÿÿäÿÿÿòÿÿÿäÿÿÿôÿÿÿðÿÿÿçÿÿÿðÿÿÿéÿÿÿèÿÿÿöÿÿÿèÿÿÿøÿÿÿôÿÿÿëÿÿÿôÿÿÿíÿÿÿõÿÿÿãÿÿÿõÿÿÿãÿÿÿîÿÿÿÿÿÿÿîÿÿÿïÿÿÿçÿÿÿïÿÿÿçÿÿÿúÿÿÿòÿÿÿÿÿÿÿúÿÿÿòÿÿÿýÿÿÿÜÿÿÿýÿÿÿ÷ÿÿÿÞÿÿÿÿÿÿÿÿÿÿÿèÿÿÿ ùÿÿÿêÿÿÿ ýÿÿÿÖÿÿÿ÷ÿÿÿØÿÿÿÿÿÿÿâÿÿÿ ùÿÿÿäÿÿÿÿÿÿÿçÿÿÿùÿÿÿéÿÿÿ +÷ÿÿÿ ûÿÿÿùÿÿÿÿÿÿÿãÿÿÿùÿÿÿåÿÿÿóÿÿÿûÿÿÿõÿÿÿýÿÿÿûÿÿÿýÿÿÿøÿÿÿýÿÿÿøÿÿÿ ÷ÿÿÿ ûÿÿÿ÷ÿÿÿòÿÿÿýÿÿÿòÿÿÿ  + +   + +  +     ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ»ÿÿÿûÿÿÿ ½ÿÿÿýÿÿÿÈÿÿÿÊÿÿÿ +µÿÿÿÿÿÿÿ ·ÿÿÿÂÿÿÿ ÄÿÿÿÈÿÿÿ Êÿÿÿ ÐÿÿÿÒÿÿÿÂÿÿÿ Äÿÿÿ ÊÿÿÿÌÿÿÿÐÿÿÿÐÿÿÿÎÿÿÿ Îÿÿÿ"ÌÿÿÿÌÿÿÿÊÿÿÿÊÿÿÿ öÿÿÿ»ÿÿÿýÿÿÿòÿÿÿ»ÿÿÿýÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿöÿÿÿ·ÿÿÿòÿÿÿ·ÿÿÿóÿÿÿÆÿÿÿ +ïÿÿÿÆÿÿÿ +óÿÿÿËÿÿÿïÿÿÿËÿÿÿñÿÿÿÓÿÿÿíÿÿÿÓÿÿÿóÿÿÿÅÿÿÿ ïÿÿÿÅÿÿÿ ñÿÿÿÍÿÿÿíÿÿÿÍÿÿÿñÿÿÿÒÿÿÿíÿÿÿÒÿÿÿðÿÿÿÖÿÿÿìÿÿÿÖÿÿÿñÿÿÿÎÿÿÿíÿÿÿÎÿÿÿðÿÿÿÒÿÿÿìÿÿÿÒÿÿÿ ÝÿÿÿþÿÿÿÝÿÿÿþÿÿÿéÿÿÿ +éÿÿÿ + ×ÿÿÿ×ÿÿÿãÿÿÿãÿÿÿèÿÿÿ èÿÿÿ øÿÿÿøÿÿÿäÿÿÿäÿÿÿôÿÿÿôÿÿÿüÿÿÿþÿÿÿ÷ÿÿÿÿÿÿÿùÿÿÿöÿÿÿ øÿÿÿ ñÿÿÿÿÿÿÿóÿÿÿýÿÿÿ×ÿÿÿþÿÿÿ÷ÿÿÿÙÿÿÿþÿÿÿÿÿÿÿãÿÿÿóÿÿÿùÿÿÿåÿÿÿóÿÿÿýÿÿÿÛÿÿÿ÷ÿÿÿÝÿÿÿÿÿÿÿçÿÿÿ÷ÿÿÿùÿÿÿéÿÿÿ÷ÿÿÿÿÿÿÿãÿÿÿóÿÿÿùÿÿÿåÿÿÿóÿÿÿïÿÿÿèÿÿÿûÿÿÿñÿÿÿèÿÿÿÿÿÿÿçÿÿÿ÷ÿÿÿùÿÿÿéÿÿÿ÷ÿÿÿóÿÿÿìÿÿÿûÿÿÿõÿÿÿìÿÿÿôÿÿÿâÿÿÿûÿÿÿöÿÿÿäÿÿÿÿÿÿÿíÿÿÿýÿÿÿïÿÿÿîÿÿÿæÿÿÿûÿÿÿðÿÿÿèÿÿÿùÿÿÿñÿÿÿýÿÿÿûÿÿÿóÿÿÿ  + +       +  +   +      ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ»ÿÿÿûÿÿÿ ½ÿÿÿýÿÿÿÈÿÿÿÊÿÿÿ +µÿÿÿÿÿÿÿ ·ÿÿÿÂÿÿÿ ÄÿÿÿÈÿÿÿ Êÿÿÿ ÐÿÿÿÒÿÿÿÂÿÿÿ Äÿÿÿ ÊÿÿÿÌÿÿÿÐÿÿÿÐÿÿÿÎÿÿÿ Îÿÿÿ"ÌÿÿÿÌÿÿÿÊÿÿÿÊÿÿÿ öÿÿÿ»ÿÿÿýÿÿÿòÿÿÿ»ÿÿÿýÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿöÿÿÿ·ÿÿÿòÿÿÿ·ÿÿÿóÿÿÿÆÿÿÿ +ïÿÿÿÆÿÿÿ +óÿÿÿËÿÿÿïÿÿÿËÿÿÿñÿÿÿÓÿÿÿíÿÿÿÓÿÿÿóÿÿÿÅÿÿÿ ïÿÿÿÅÿÿÿ ñÿÿÿÍÿÿÿíÿÿÿÍÿÿÿñÿÿÿÒÿÿÿíÿÿÿÒÿÿÿðÿÿÿÖÿÿÿìÿÿÿÖÿÿÿñÿÿÿÎÿÿÿíÿÿÿÎÿÿÿðÿÿÿÒÿÿÿìÿÿÿÒÿÿÿ ÝÿÿÿþÿÿÿÝÿÿÿþÿÿÿéÿÿÿ +éÿÿÿ + ×ÿÿÿ×ÿÿÿãÿÿÿãÿÿÿèÿÿÿ èÿÿÿ øÿÿÿøÿÿÿäÿÿÿäÿÿÿôÿÿÿôÿÿÿüÿÿÿþÿÿÿ÷ÿÿÿÿÿÿÿùÿÿÿöÿÿÿ øÿÿÿ ñÿÿÿÿÿÿÿóÿÿÿýÿÿÿ×ÿÿÿþÿÿÿ÷ÿÿÿÙÿÿÿþÿÿÿÿÿÿÿãÿÿÿóÿÿÿùÿÿÿåÿÿÿóÿÿÿýÿÿÿÛÿÿÿ÷ÿÿÿÝÿÿÿÿÿÿÿçÿÿÿ÷ÿÿÿùÿÿÿéÿÿÿ÷ÿÿÿÿÿÿÿãÿÿÿóÿÿÿùÿÿÿåÿÿÿóÿÿÿïÿÿÿèÿÿÿûÿÿÿñÿÿÿèÿÿÿÿÿÿÿçÿÿÿ÷ÿÿÿùÿÿÿéÿÿÿ÷ÿÿÿóÿÿÿìÿÿÿûÿÿÿõÿÿÿìÿÿÿôÿÿÿâÿÿÿûÿÿÿöÿÿÿäÿÿÿÿÿÿÿíÿÿÿýÿÿÿïÿÿÿîÿÿÿæÿÿÿûÿÿÿðÿÿÿèÿÿÿùÿÿÿñÿÿÿýÿÿÿûÿÿÿóÿÿÿ  + +   + +  +     ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ»ÿÿÿûÿÿÿ ½ÿÿÿýÿÿÿÈÿÿÿÊÿÿÿ +µÿÿÿÿÿÿÿ ·ÿÿÿÂÿÿÿ ÄÿÿÿÈÿÿÿ Êÿÿÿ ÐÿÿÿÒÿÿÿÂÿÿÿ Äÿÿÿ ÊÿÿÿÌÿÿÿÎÿÿÿÐÿÿÿÕÿÿÿ×ÿÿÿÌÿÿÿÎÿÿÿÓÿÿÿÕÿÿÿöÿÿÿ¹ÿÿÿýÿÿÿòÿÿÿ¹ÿÿÿýÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿöÿÿÿ¹ÿÿÿòÿÿÿ¹ÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿñÿÿÿÙÿÿÿýÿÿÿíÿÿÿÙÿÿÿýÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿñÿÿÿÙÿÿÿþÿÿÿíÿÿÿÙÿÿÿþÿÿÿðÿÿÿáÿÿÿþÿÿÿìÿÿÿáÿÿÿþÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿðÿÿÿáÿÿÿìÿÿÿáÿÿÿ +ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +ÚÿÿÿÚÿÿÿ +êÿÿÿêÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +êÿÿÿêÿÿÿ +úÿÿÿúÿÿÿ +üÿÿÿüÿÿÿ +  +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +úÿÿÿ úÿÿÿ þÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿ öÿÿÿ þÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ öÿÿÿúÿÿÿ   + +       +  +   +      ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ»ÿÿÿûÿÿÿ ½ÿÿÿýÿÿÿÈÿÿÿÊÿÿÿ +µÿÿÿÿÿÿÿ ·ÿÿÿÂÿÿÿ ÄÿÿÿÈÿÿÿ Êÿÿÿ ÐÿÿÿÒÿÿÿÂÿÿÿ Äÿÿÿ ÊÿÿÿÌÿÿÿÎÿÿÿÐÿÿÿÕÿÿÿ×ÿÿÿÌÿÿÿÎÿÿÿÓÿÿÿÕÿÿÿöÿÿÿ¹ÿÿÿýÿÿÿòÿÿÿ¹ÿÿÿýÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿöÿÿÿ¹ÿÿÿòÿÿÿ¹ÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿñÿÿÿÙÿÿÿýÿÿÿíÿÿÿÙÿÿÿýÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿñÿÿÿÙÿÿÿþÿÿÿíÿÿÿÙÿÿÿþÿÿÿðÿÿÿáÿÿÿþÿÿÿìÿÿÿáÿÿÿþÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿðÿÿÿáÿÿÿìÿÿÿáÿÿÿ +ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +ÚÿÿÿÚÿÿÿ +êÿÿÿêÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +êÿÿÿêÿÿÿ +úÿÿÿúÿÿÿ +üÿÿÿüÿÿÿ +  +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +úÿÿÿ úÿÿÿ þÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿ öÿÿÿ þÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ öÿÿÿúÿÿÿ   + +   + +  +     ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ»ÿÿÿûÿÿÿ ½ÿÿÿýÿÿÿÈÿÿÿÊÿÿÿ +µÿÿÿÿÿÿÿ ·ÿÿÿÂÿÿÿ ÄÿÿÿÈÿÿÿ Êÿÿÿ ÐÿÿÿÒÿÿÿÂÿÿÿ Äÿÿÿ ÊÿÿÿÌÿÿÿÐÿÿÿÐÿÿÿÎÿÿÿ Îÿÿÿ"ÌÿÿÿÌÿÿÿÊÿÿÿÊÿÿÿ öÿÿÿ¹ÿÿÿýÿÿÿòÿÿÿ¹ÿÿÿýÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿöÿÿÿ¹ÿÿÿòÿÿÿ¹ÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿñÿÿÿÙÿÿÿýÿÿÿíÿÿÿÙÿÿÿýÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿñÿÿÿÙÿÿÿþÿÿÿíÿÿÿÙÿÿÿþÿÿÿðÿÿÿáÿÿÿþÿÿÿìÿÿÿáÿÿÿþÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿðÿÿÿáÿÿÿìÿÿÿáÿÿÿ +ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +ÚÿÿÿÚÿÿÿ +êÿÿÿêÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +êÿÿÿêÿÿÿ +úÿÿÿúÿÿÿ +üÿÿÿüÿÿÿ +  +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +úÿÿÿ úÿÿÿ þÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿ öÿÿÿ þÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ öÿÿÿúÿÿÿ   + +       +  +   +      ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmokÊp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ +·ÿÿÿûÿÿÿöÿÿÿ·ÿÿÿûÿÿÿ +ÚÿÿÿûÿÿÿöÿÿÿÚÿÿÿûÿÿÿ +·ÿÿÿöÿÿÿ·ÿÿÿ +ÚÿÿÿöÿÿÿÚÿÿÿ»ÿÿÿûÿÿÿ ½ÿÿÿýÿÿÿÈÿÿÿÊÿÿÿ +µÿÿÿÿÿÿÿ ·ÿÿÿÂÿÿÿ ÄÿÿÿÈÿÿÿ Êÿÿÿ ÐÿÿÿÒÿÿÿÂÿÿÿ Äÿÿÿ ÊÿÿÿÌÿÿÿÐÿÿÿÐÿÿÿÎÿÿÿ Îÿÿÿ"ÌÿÿÿÌÿÿÿÊÿÿÿÊÿÿÿ öÿÿÿ¹ÿÿÿýÿÿÿòÿÿÿ¹ÿÿÿýÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿöÿÿÿ¹ÿÿÿòÿÿÿ¹ÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿóÿÿÿÊÿÿÿýÿÿÿïÿÿÿÊÿÿÿýÿÿÿñÿÿÿÙÿÿÿýÿÿÿíÿÿÿÙÿÿÿýÿÿÿóÿÿÿÊÿÿÿïÿÿÿÊÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿñÿÿÿÙÿÿÿþÿÿÿíÿÿÿÙÿÿÿþÿÿÿðÿÿÿáÿÿÿþÿÿÿìÿÿÿáÿÿÿþÿÿÿñÿÿÿÙÿÿÿíÿÿÿÙÿÿÿðÿÿÿáÿÿÿìÿÿÿáÿÿÿ +ÚÿÿÿüÿÿÿÚÿÿÿüÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +ÚÿÿÿÚÿÿÿ +êÿÿÿêÿÿÿ +êÿÿÿüÿÿÿêÿÿÿüÿÿÿ +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +êÿÿÿêÿÿÿ +úÿÿÿúÿÿÿ +üÿÿÿüÿÿÿ +  +úÿÿÿüÿÿÿúÿÿÿüÿÿÿ +úÿÿÿ úÿÿÿ þÿÿÿÚÿÿÿüÿÿÿöÿÿÿÚÿÿÿüÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿÚÿÿÿöÿÿÿÚÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿêÿÿÿüÿÿÿöÿÿÿêÿÿÿüÿÿÿþÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿêÿÿÿöÿÿÿêÿÿÿþÿÿÿúÿÿÿöÿÿÿúÿÿÿþÿÿÿüÿÿÿöÿÿÿüÿÿÿþÿÿÿ öÿÿÿ þÿÿÿúÿÿÿüÿÿÿöÿÿÿúÿÿÿüÿÿÿþÿÿÿúÿÿÿ öÿÿÿúÿÿÿ   + +   + +  +     ! ""#!%$&&'%! $$%!#"&&'#" $$&"#!%%'#)(**+)-,../-)(,,-)+*../+*(,,.*+)--/+10223154667510445132667320446231557398::;9=<>>?=98<<=9;:>>?;:8<<>:;9==?;A@BBCAEDFFGEA@DDEACBFFGCB@DDFBCAEEGCIHJJKIMLNNOMIHLLMIKJNNOKJHLLNJKIMMOKQPRRSQUTVVWUQPTTUQSRVVWSRPTTVRSQUUWSYXZZ[Y]\^^_]YX\\]Y[Z^^_[ZX\\^Z[Y]]_[a`bbcaedffgea`ddeacbffgcb`ddfbcaeegcihjjkimlnnomihllmikjnnokjhllnjkimmok \ No newline at end of file diff --git a/SparrowOS/Apps/KeepAway/Load.CPP b/SparrowOS/Apps/KeepAway/Load.CPP new file mode 100644 index 0000000..423e96c --- /dev/null +++ b/SparrowOS/Apps/KeepAway/Load.CPP @@ -0,0 +1 @@ +#include "/SparrowOS/Apps/KeepAway/KeepAway.CPP.Z" diff --git a/SparrowOS/Apps/KeepAway/Run.CPP b/SparrowOS/Apps/KeepAway/Run.CPP new file mode 100644 index 0000000..78ba0dc --- /dev/null +++ b/SparrowOS/Apps/KeepAway/Run.CPP @@ -0,0 +1,2 @@ +#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 new file mode 100644 index 0000000..9deccf1 --- /dev/null +++ b/SparrowOS/Apps/Logic/Load.CPP @@ -0,0 +1 @@ +#include "/SparrowOS/Apps/Logic/Logic.CPP.Z" diff --git a/SparrowOS/Apps/Logic/Logic.CPP b/SparrowOS/Apps/Logic/Logic.CPP new file mode 100644 index 0000000..7bee944 --- /dev/null +++ b/SparrowOS/Apps/Logic/Logic.CPP @@ -0,0 +1,613 @@ +#define MAX_TABLE_SIZE 0x10000 + +I64 output_found,passes,table_size; + +U8 *gate_type_table =NULL, + *displayed_design=NULL, + *added_this_pass =NULL; + +U16 *input1_table=NULL, + *input2_table=NULL, + *input3_table=NULL; + +#define CONNECT_WIDTH 16 +#define GATE_WIDTH 37 + +$ID,6$ +$SP,"",1$ + + + +$SP,"",2$ + + + +$SP,"",3$ + + + +$SP,"",4$ + + + +$SP,"",5$ + + + +$SP,"",6$ + + + +$SP,"",7$ + + + +$SP,"",8$ + + + + +$SP,"",9$ + + + +$SP,"",10$ + +$ID,-6$ + +U8 *gate_type_list="NULL\0OUTPUT\0INPUT\0" + "NOT\0AND\0OR\0NAND\0NOR\0XOR\0AND3\0OR3\0NAND3\0NOR3\0"; + +#define GT_NULL 0 //Specifies that table entry has not been filled-in +#define GT_OUTPUT 1 //Specifies the table entry is a desired output +#define GT_INPUT 2 //Specifies that table entry comes from an input signal + +#define GT_FIRST_REAL_GATE 3 +#define GT_NOT 3 +#define GT_AND 4 +#define GT_OR 5 +#define GT_NAND 6 +#define GT_NOR 7 +#define GT_XOR 8 +#define GT_AND3 9 +#define GT_OR3 10 +#define GT_NAND3 11 +#define GT_NOR3 12 +#define GT_NUM_ENTRIES 13 + +#define MAX_SELECTED_GATES 128 + +CSprite *imgs[GT_NUM_ENTRIES]={NULL,NULL,NULL, +$IB,"",1$,$IB,"",2$,$IB,"",3$,$IB,"",4$,$IB,"",5$,$IB,"",6$,$IB,"",7$,$IB,"",8$,$IB,"",9$,$IB,"",10$}; + +I64 num_inputs_entered,num_outputs_entered; +I64 num_selected_gates, + selected_gates[MAX_SELECTED_GATES]; + +U0 PmtGates() +{ + I64 i; + U8 *st; + + "\nEnter the available gate types in the order you prefer them to be used.\n" + "Your choices are:\n"; + for (i=GT_FIRST_REAL_GATE;iMAX_TABLE_SIZE) + "Too large\n"; + else if (table_size<1) { + "No table specified, aborting.\n"; + ThrowBreak; + } + } while (table_size>MAX_TABLE_SIZE); + + gate_type_table =CAlloc(table_size*sizeof(U8)); + displayed_design=MAlloc((table_size+7)/8); + added_this_pass =MAlloc((table_size+7)/8); + input1_table =MAlloc(table_size*sizeof(U16)); + input2_table =MAlloc(table_size*sizeof(U16)); + input3_table =MAlloc(table_size*sizeof(U16)); + + "\nEnter the hex truth table column values of inputs.\n"; + if (table_size<=0x100) + "For example, enter A=0xF0, B=0xCC and C=0xAA.\n"; + else + "For example, enter A=0xFF00, B=0xF0F0, C=0xCCCC and D=0xAAAA.\n"; + num_inputs_entered=0; + while (TRUE) { + "Input %C: ",'A'+num_inputs_entered; + i=PmtI64("",-1); + if (i<0) break; + if (i>table_size) + "Too large\n"; + else { + if (gate_type_table[i]) + "Duplicate\n"; + else { + gate_type_table[i]=GT_INPUT; + input1_table[i]=num_inputs_entered++; + } + } + } + if (!num_inputs_entered) { + "No inputs specified, aborting.\n"; + ThrowBreak; + } + + "\nEnter the hex truth table columns values of the outputs.\n"; + num_outputs_entered=0; + while (TRUE) { + "Output %C: ",'A'+num_outputs_entered; + i=PmtI64("",-1); + if (i<0) break; + if (i>table_size) + "Too large\n"; + else { + if (gate_type_table[i]==GT_INPUT) + "To produce this output, connect to input %C\n", + 'A'+input1_table[i]; + else if (gate_type_table[i]==GT_OUTPUT) + "Duplicate\n"; + else { + gate_type_table[i]=GT_OUTPUT; + input1_table[i]=num_outputs_entered++; + } + } + } + + if (!num_outputs_entered) { + "No output specified, aborting.\n"; + ThrowBreak; + } +} + +U0 DrawDesign(CDC *dc,I64 *_y,I64 output,I64 depth,I64 *_x_out,I64 *_y_out) +{ + I64 y=*_y,type=gate_type_table[output], + xx=(passes-depth)*(GATE_WIDTH+CONNECT_WIDTH),yy=y, + x1,y1,x2,y2,x3,y3; + if (_x_out) *_x_out=xx; + if (_y_out) *_y_out=yy; + if (Bt(displayed_design,output) && type!=GT_INPUT) { + dc->color=GREEN; + GrPutS(dc,xx-FONT_WIDTH*3,y-4,"Dup"); + y+=10; + } else + switch (type) { + case GT_INPUT: + dc->color=GREEN; + GrPrintF(dc,xx-FONT_WIDTH-4,y-4,"%C",'A'+input1_table[output]); + y+=10; + break; + case GT_NOT: + if (!Bt(displayed_design,output)) { + y+=16; + DrawDesign(dc,&y,input1_table[output],depth+1,&x1,&y1); + yy=y1; + + dc->color=BLUE; + CSpritePlot3(dc,xx,yy,0, + imgs[type]); + + dc->color=RED; + GrLine(dc,xx-GATE_WIDTH,yy,x1,y1); + if (_y_out) *_y_out=yy; + } + break; + case GT_AND: + case GT_OR: + case GT_NAND: + case GT_NOR: + case GT_XOR: + if (!Bt(displayed_design,output)) { + y+=24; + DrawDesign(dc,&y,input1_table[output],depth+1,&x1,&y1); + DrawDesign(dc,&y,input2_table[output],depth+1,&x2,&y2); + yy=(y1+y2)/2; + + dc->color=BLUE; + CSpritePlot3(dc,xx,yy,0,imgs[type]); + + dc->color=RED; + GrLine(dc,xx-GATE_WIDTH,yy-4,x1,y1); + GrLine(dc,xx-GATE_WIDTH,yy+4,x2,y2); + if (_y_out) *_y_out=yy; + } + break; + case GT_AND3: + case GT_OR3: + case GT_NAND3: + case GT_NOR3: + if (!Bt(displayed_design,output)) { + y+=32; + DrawDesign(dc,&y,input1_table[output],depth+1,&x1,&y1); + DrawDesign(dc,&y,input2_table[output],depth+1,&x2,&y2); + DrawDesign(dc,&y,input3_table[output],depth+1,&x3,&y3); + yy=(y1+y2+y3)/3; + + dc->color=BLUE; + CSpritePlot3(dc,xx,yy,0,imgs[type]); + + dc->color=RED; + GrLine(dc,xx-GATE_WIDTH,yy-8,x1,y1); + GrLine(dc,xx-GATE_WIDTH,yy ,x2,y2); + GrLine(dc,xx-GATE_WIDTH,yy+8,x3,y3); + if (_y_out) *_y_out=yy; + } + break; + } + dc->color=BLACK; + GrPrintF(dc,xx,yy+3,"%04X",output); + Bts(displayed_design,output); + if (_y) *_y=y; +} + +U0 DrawIt(CTask *,CDC *dc) +{ + I64 y=0; + MemSet(displayed_design,0,(table_size+7)/8*sizeof(Bool)); + DrawDesign(dc,&y,output_found,0,NULL,NULL); +} + +U0 FillNot(Bool *chged,I64 *num_outputs_found) +{ + I64 i,j; + U8 old_type; + for (i=0;iGT_OUTPUT && !Bt(added_this_pass,i)) { + progress1=i; + j= (~i) & (table_size-1); + old_type=gate_type_table[j]; + if (old_typeGT_OUTPUT && !Bt(added_this_pass,i)) + for (k=0;kGT_OUTPUT && !Bt(added_this_pass,k)) { + progress1=i; + j= (i & k) & (table_size-1); + old_type=gate_type_table[j]; + if (old_typeGT_OUTPUT && !Bt(added_this_pass,i)) + for (k=0;kGT_OUTPUT && !Bt(added_this_pass,k)) { + progress1=i; + j= (i | k) & (table_size-1); + old_type=gate_type_table[j]; + if (old_typeGT_OUTPUT && !Bt(added_this_pass,i)) + for (k=0;kGT_OUTPUT && !Bt(added_this_pass,k)) { + progress1=i; + j= (~ (i & k)) & (table_size-1); + old_type=gate_type_table[j]; + if (old_typeGT_OUTPUT && !Bt(added_this_pass,i)) + for (k=0;kGT_OUTPUT && !Bt(added_this_pass,k)) { + progress1=i; + j= (~ (i | k)) & (table_size-1); + old_type=gate_type_table[j]; + if (old_typeGT_OUTPUT && !Bt(added_this_pass,i)) + for (k=0;kGT_OUTPUT && !Bt(added_this_pass,k)) { + progress1=i; + j= (i ^ k) & (table_size-1); + old_type=gate_type_table[j]; + if (old_typeGT_OUTPUT && !Bt(added_this_pass,i)) + for (k=0;kGT_OUTPUT && !Bt(added_this_pass,k)) + for (l=0;lGT_OUTPUT && !Bt(added_this_pass,l)) { + progress1=i; + j= (i & k & l) & (table_size-1); + old_type=gate_type_table[j]; + if (old_typeGT_OUTPUT && !Bt(added_this_pass,i)) + for (k=0;kGT_OUTPUT && !Bt(added_this_pass,k)) + for (l=0;lGT_OUTPUT && !Bt(added_this_pass,l)) { + progress1=i; + j= (i | k | l) & (table_size-1); + old_type=gate_type_table[j]; + if (old_typeGT_OUTPUT && !Bt(added_this_pass,i)) + for (k=0;kGT_OUTPUT && !Bt(added_this_pass,k)) + for (l=0;lGT_OUTPUT && !Bt(added_this_pass,l)) { + progress1=i; + j= (~(i & k & l)) & (table_size-1); + old_type=gate_type_table[j]; + if (old_typeGT_OUTPUT && !Bt(added_this_pass,i)) + for (k=0;kGT_OUTPUT && !Bt(added_this_pass,k)) + for (l=0;lGT_OUTPUT && !Bt(added_this_pass,l)) { + progress1=i; + j= (~(i | k | l)) & (table_size-1); + old_type=gate_type_table[j]; + if (old_typedraw_it=&DrawIt; + GetChar; + DocClear; + WinMgrSync(2,TRUE); + DocBottom; + } + } catch + CatchAll; + SettingsPop; + CleanUp; +} +º%Üÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿº%Üÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿº%Üÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâ%Üÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâ%Üÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâ%Üÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿª&ÜÿÿÿõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒ%Üÿÿÿôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ª%Üÿÿÿõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +Ò%Üÿÿÿôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/SparrowOS/Apps/Logic/Run.CPP b/SparrowOS/Apps/Logic/Run.CPP new file mode 100644 index 0000000..cfb2c9e --- /dev/null +++ b/SparrowOS/Apps/Logic/Run.CPP @@ -0,0 +1,2 @@ +#include "/SparrowOS/Apps/Logic/Load" +DigitalLogic; \ No newline at end of file diff --git a/SparrowOS/Apps/MusicOrgan/Examples/abiding.CPP b/SparrowOS/Apps/MusicOrgan/Examples/abiding.CPP new file mode 100644 index 0000000..f0e67a9 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/abiding.CPP @@ -0,0 +1,75 @@ +//9 has graphics + +#define X 330 +#define Y 15 + +#define NUM_BEAMS 256 + +F64 beams_r[NUM_BEAMS],beams_é[NUM_BEAMS]; + +U0 DrawIt(CTask *,CDC *dc) +{ + I64 i; + F64 r,x1,y1,x2,y2; + dc->color=YELLOW; + GrCircle(dc,X,Y,10); + GrFloodFill(dc,X,Y,10); + dc->color=BROWN; + GrCircle(dc,X,Y,10); + dc->color=YELLOW; + for (i=0;idraw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + for (i=0;iwin_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); + "$$BD+H,LTCYAN$$$$FD+H,BLACK$$"; + while (!ScanKey) { + "$$FG,WHITE$$To God...\n$$FG$$"; + Play("W13etCFE!!sDDDDD2G!3D2G!!3qC2eG3EqEetAA!F2qG", + "I \0am \0a\0biding \0 \0 \0 \0in \0 \0Your \0 \0presence.\n\0 \0 \0 \0 \0 \0 \0 \0"); + Play("3etCFE!!sDDDDD2G!3D2G!!3qC2eG3EqEetAA!F2qG", + "I \0am \0a\0biding \0 \0 \0 \0in \0 \0Your \0 \0presence.\n\0 \0 \0 \0 \0 \0 \0 \0"); + Play("!3DBsFGF!G2eG!!3FRDqEGeB!E", + "What \0a \0joy!\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("!qDBsFGF!G2eG!!3FRDqEGeB!E", + "I'm \0so \0coy!\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/abyss.CPP b/SparrowOS/Apps/MusicOrgan/Examples/abyss.CPP new file mode 100644 index 0000000..204f25d --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/abyss.CPP @@ -0,0 +1,44 @@ +//7 has words +U0 Song() +{ + CTask *task; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.736; + try { + task=PopUpViewStr( + "There are myths about the River\n" + "Styx separating the land of the\n" + "living from dead. Jesus' told a story\n" + "about the land of living separate from\n" + "land of dead. ($LK,"Luke,16:22","BF:Luke,16:22"$) In the Old\n" + "Testament, the River Jordan was a special\n" + "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); + while (!ScanKey) { + Play("W13sBBBBqCq.BeAqBh.A", + "Can't \0 \0 \0 \0get \0there, \0from \0he\0re.\n\0"); + Play("M2/4"); + Play("eECqAM4/4"); + Play("sBBBBqCq.BeAqBh.A", + "Can't \0 \0 \0 \0get \0there, \0from \0he\0re.\n\0"); + Play("M2/4"); + Play("eDDqDM4/4"); + Play("DeEDqG!CeF2G3qG!!sFGFG!!eD!C", + "Oh, \0my \0 \0God, \0some\0thing's... \0 \0 \0ver\0 \0y \0 \0wrong!\n\0 \0"); + Play("qDeEDqG!CeF2G3qG!!sFGFG!!eD!C", + "Oh, \0my \0 \0God, \0some\0thing's... \0 \0 \0ver\0 \0y \0 \0wrong!\n\0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/almighty.CPP b/SparrowOS/Apps/MusicOrgan/Examples/almighty.CPP new file mode 100644 index 0000000..3014b15 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/almighty.CPP @@ -0,0 +1,22 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + while (!ScanKey) { + Play("2qG3etC2GG3qARR2etG3FBqEeFE", + "All \0righ\0 \0 \0ty.\n\0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("2qG3etC2GG3qARR2etG3FBqEeFE", + "All \0migh\0 \0 \0ty.\n\0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("qFFEEeEBqFCB", + "Al\0read\0y, \0 \0I've \0 \0seen \0en\0ough.\n\0"); + Play("FFEEeEBqFCB", + "Oh \0bo\0y, \0 \0was \0 \0that \0rough.\n\0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/appreciate.CPP b/SparrowOS/Apps/MusicOrgan/Examples/appreciate.CPP new file mode 100644 index 0000000..d3e2e79 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/appreciate.CPP @@ -0,0 +1,22 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + while (!ScanKey) { + Play("3etDGDqGeCGetAE2G3eEFsGBGBqEG", + "Thanks, \0 \0 \0God! \0 \0 \0You \0 \0are \0might\0y \0 \0good \0 \0to \0me.\n\0 \0"); + Play("etDGDqGeCGetAE2G3eEFsGBGBqEG", + "Thanks, \0 \0 \0God! \0 \0 \0You \0 \0are \0might\0y \0 \0good \0 \0to \0me.\n\0 \0"); + Play("EsBGBGeEC2G3AqF2G3sC2G3C2GqG", + " \0 \0 \0 \0 \0 \0 \0I \0won't \0tell.\n\0 \0 \0 \0 \0 \0 \0"); + Play("3EsBGBGeEC2G3AqF2G3sC2G3C2GqG", + " \0 \0 \0 \0 \0 \0 \0I \0won't \0tell.\n\0 \0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/awake.CPP b/SparrowOS/Apps/MusicOrgan/Examples/awake.CPP new file mode 100644 index 0000000..aef5327 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/awake.CPP @@ -0,0 +1,77 @@ +//8 has graphics + +#define R1 13 +#define R2 21 + +U0 DrawIt(CTask *,CDC *dc) +{ + static F64 é=0; + I64 x1=200,y1=20,x2=x1,y2=y1+R2; + F64 tt=tMBeat%16.0,è; + é+=1/(tt*tt+1); + dc->color=BLACK; + dc->pen_width=4; + GrCircle3(dc,x2,y2,0,R2+10); + for (è=é;è<é+2*ã;è+=ã/3) { + dc->color=BLACK; + dc->pen_width=2; + GrCircle3(dc,x2+R2*Cos(è),y2-R2*Sin(è),0,8); + dc->color=WHITE; + dc->pen_width=2; + GrCircle3(dc,x2+(R2+15)*Cos(è+ã/6),y2-(R2+15)*Sin(è+ã/6),0,3); + } + dc->color=BROWN; + GrFloodFill(dc,x2+R2*Cos(è),y2-R2*Sin(è)); + dc->color=DKGRAY; + GrFloodFill(dc,x2,y2); + dc->pen_width=6; + dc->color=RED; + GrCircle3(dc,x1,y1,0,R1-6); + dc->color=DKGRAY; + GrCircle3(dc,x1,y1,0,R1-2); + dc->color=LTGRAY; + GrRect(dc,x1-2,y1-R2-1,4,10); + GrCircle3(dc,x1,y1,0,R1); + dc->color=RED; + GrFloodFill(dc,x1,y1,TRUE); + dc->color=BLACK; + GrFloodFill(dc,x1,y1); +} + + +U0 Song() +{ + CTask *task; + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->draw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + task=PopUpViewStr( + "$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); + while (!ScanKey) { + "$$FG,GREEN$$Jesus talking...$$FG$$\n"; + Play("W13eBC!qB2sG3D2G3DetC!!GFsCBCB!etCGBeB!!GsBCB!C", + "Stay \0a\0wake.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("eBC!qB2sG3D2G3DetC!!GFsCBCB!etCGBeB!!GsBCB!C", + "Stay \0a\0wake.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("qD!sD!BD!BetA2G3GqB2G3sAD!ADqD!etGF!D", + " \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0am \0a \0dead \0 \0man.\n\0"); + Play("qD!sD!BD!BetA2G3GqB2G3sAD!ADqD!etGF!D", + " \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0am \0a \0dead \0 \0man.\n\0"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/battlehymnsolo.CPP b/SparrowOS/Apps/MusicOrgan/Examples/battlehymnsolo.CPP new file mode 100644 index 0000000000000000000000000000000000000000..4e9cba6b703cb6cf31c3f1368493c209f6aa5524 GIT binary patch literal 12886 zcmdPbH&@6=ELKP_N-W68OfKf);^I;X4$x6j(lJy4ao{-AKp{9kFI_{EtC~we!L3-= zt|YNIJ3cipB|bUHRxLO$B_y#p+chu6*~ywqLBY4QI5RmowWK67FTFUZxCA7Y3lfVj zNzEp1y1I(viIZtgna9-bktDk?E~Fc_YgS)!1ZU!+iy zk*biIm!hYqr)15=>6cpWlbM&QVXA4(#Ti_Xn4DUyVQ3EG1eBHp7Zhcdq-v;mI_W6c z7}|lt11yu1SgE08oT}$u><%K_QuSPm-Az*UoQqvROji)$Qs@j4a8d&4fZAfs#TfwB zo2utn>N%%kH=|Gkm|EiM>R#wv?BeX=?B?v| zT>EPqH#IuO;gbPp&PuoXMt zgaVd?v)~Mxy9bgih%SFIqbPs7s z8KRn&?jbQLgG)$Sx`(u+3{g!>_drrHJjq}(up}ayy9bgiM$1F=f(%r@gCY!)EQV}( zi0&<_@j>B(nS$XWSdubWj%xO!8^nOEM*&aVL#DsXPAkBGtw#Y*+*rC65ILHcKe!SK zDDPpBqq%$FNd}XFB@vDGPmz)pmPAB{@Bt?jH~}3I0=Wt`4Alon*SdubW z5qdF3HU2Ou52+R&=mwEl9-z7yv^+#F0a5v*;e#3;=)BSJK@SmB{%CnfpghDcO?TPR_`)CLgD!kfv)h34M$1F| SQ7{@lqv3-;1n|o;FaQ9kJznGh literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/bedewed.CPP b/SparrowOS/Apps/MusicOrgan/Examples/bedewed.CPP new file mode 100644 index 0000000000000000000000000000000000000000..6f2fb23e972bb7afd91994f5c413817a15ad42e7 GIT binary patch literal 2044 zcmdPbw@}DPELKP_N-W68OfKe92@cRvvN5z%(lJ!wLIR-%3c>k#=^C0`)m#b+&LN4# z*$P@EiN)F0TnY+q#kzJNc6@4HN_=vXty*wi3P^=(UW&65NI`CCab|LSNosCEzO9j- zDM+ZKs8RuB6iA1JL0D#Ld2mUQ2A6_@f`XEYkGGCeKt^UxW0k0!`mkiFrFnI#$^gTW#ohOS+CW?p|0TH!Dm{^iuplxUbQUr3COKMSOS!zmHVoq^rK}upt zD#DdYDk|aO+8#QFDk@4K<>eWfIjIU7iowZ=dETj&nhMoioB=tBl^ROMsjlvYj?Sqi z&Tj6hu5N|ysU_}iu7!?DI$WHbN!i;DGP@?s2>G_7HF(Z{ONlHh`(%#u_M6;CI4>H|4KNkzrkSI0od92_W6 z|EIdR7P>mRx;cY_z|jTb?SP`xk{E-MN`)AM@{ClF&%pjq1qmc4mLz9DxC$`_IiN%U z_9r|fkUdNr!G}C7d8x(4dYUnLAp60AsGv~GrJzu&01gyzws8gp zk7G^_DAfh$rDzyvT65KMae=bCH5UUD0|Nsi0|cC8W&rb71mJc&LSwlU#yT>>h?%fP@Ovh>L3Jt{rXx7k@37#Nfp7#IXVdKuV3T0rK5 zggk{@J!iCZ3b_T&Xz>(c=Yy&gV_;z5eslAQ5EDBm0|SE&0|Ns{N@a2`8#@C z+gxLIkg<9U3=Ex0NXNt>NQzLtCUmZ|3? z5lyYz+t%LRv-a+`+}mIzy)E~4Tkh>?s-By2Z{L|@e}3|Em_;g?la@f(u9H+wdQ4iP za(i3u-EF+Lw^gcDPEzrlsC0Pew(Q*?XMl}@7ziU1nHh38g(iwPPg=4!_jB5IGtW<7 zGTA*D7#KkDDhmoojlfAFlT=R5U$TAO?A>{uQzk@PpI?_dS;@JLiM<>eC!plpxuiwK z^Y%B5t|cxPX)mLHr5LB@lyClfdkx-u{@sDaY8 z=Oi0Vw=N+ykY~-9xWGXVifK?#r_4C}nFky>pfn3gYd({1g5whuIiM_%vgiyOI4OW4 zREB|pfk#+vc5JoZA`KC6wgDvtkb9L>-EQqFg(P50XckoQoTvg$SfG>&Qk1thH<|%# cya)pWgET0II=M2kvokO-*g`Xxil-0*0Jt|H7ytkO literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/blinded.CPP b/SparrowOS/Apps/MusicOrgan/Examples/blinded.CPP new file mode 100644 index 0000000..e9bb360 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/blinded.CPP @@ -0,0 +1,51 @@ +//7 has words + +F64 t0=tMBeat; + +U0 DrawIt(CTask *task,CDC *dc) +{ + static I64 i=0; + F64 dt=tMBeat-t0; + if (dt>16.0 && i++&1) { + dc->color=WHITE; + GrRect(dc,0,0,task->win_pixel_width,task->win_pixel_height); + } +} + +U0 Song() +{ + CTask *task; + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->task_end_cb=&SndTaskEndCB; + + task=PopUpViewStr( + "$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); + music_tempo=2.5; + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + try { + while (!ScanKey) { + t0=tMBeat; + Play("3qEeACA2G3qCEC2G3E", + "Now... \0 \0 \0 \0 \0I \0see \0the \0light.\n\0 \0"); + Play("EeACA2G3qCEC2G3E", + "Now... \0 \0 \0 \0 \0I \0see \0the \0light.\n\0 \0"); + Play("GCGBEeDFCAqD", + "It's \0 \0quite \0 \0bright.\n\0 \0 \0 \0 \0 \0"); + Play("GCGBEeDFCAqD", + "It's \0 \0quite \0 \0bright.\n\0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/born.CPP b/SparrowOS/Apps/MusicOrgan/Examples/born.CPP new file mode 100644 index 0000000..934c46e --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/born.CPP @@ -0,0 +1,54 @@ +//9 has graphics + +F64 t0; +#define HORIZON_Y 50 +#define LEFT_EDGE 200 + +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 i; + F64 dt=tMBeat-t0,d=Limit(0.1*dt,0,2),d2; + + dc->color=ROPF_PROBABILITY_DITHER+LTCYAN<<16+CYAN; + for (i=HORIZON_Y;i>=0;i--) { + d2=ToF64(HORIZON_Y-i)/HORIZON_Y; + dc->dither_probability=1<<16*Limit((4.0-d2)/4.0*d*d-0.15,0,1.0); + GrLine(dc,LEFT_EDGE,i,task->win_pixel_width-1,i); + } + + d=(task->win_pixel_width-LEFT_EDGE)/2+LEFT_EDGE; + dc->color=YELLOW; + GrCircle(dc,d,HORIZON_Y+50-dt,40); + GrFloodFill(dc,d,HORIZON_Y+15-dt,TRUE); + + dc->color=GREEN; + GrRect(dc,200,HORIZON_Y,task->win_pixel_width-200,task->win_pixel_height-HORIZON_Y); +} + +U0 Song() +{ + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->draw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + + MusicSettingsRst; + music_tempo= 2.500; + music_stacatto_factor= 0.900; + try { + while (!ScanKey) { + t0=tMBeat; + Play("3qB!eB2G!3qA!!eF!!AsF!AFA!!qC2sG!3A!2G3ARBRB", + "New \0day \0is \0born.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("qB!eB2G!3qA!!eF!!AsF!AFA!!qC2sG!3A!2G3ARBRB", + "Though \0it's \0the \0mourn',\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("!eDDR!!CqG!2eGR3qE!!etEA!!FqCsDGDG", + "cheer-\0up \0 \0the \0heart\n\0 \0 \0 \0 \0 \0 \0 \0 \0as \0 \0you \0"); + Play("!eDDR!!CqG!2eGR3qE!!etEA!!FqCsDGDG", + "hitch-\0up \0 \0the \0cart.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/childish.CPP b/SparrowOS/Apps/MusicOrgan/Examples/childish.CPP new file mode 100644 index 0000000..07f418c --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/childish.CPP @@ -0,0 +1,22 @@ +//8 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13qEsCDCDqCDeEGsEBEBeCBsDADA", + "Be \0like \0 \0a \0 \0child \0 \0 \0 \0some \0 \0re\0 \0spect.\n\0 \0 \0 \0 \0 \0"); + Play("qEsCDCDqCDeEGsEBEBeCBsDADA", + "Ma\0tur\0 \0i\0 \0ty \0 \0 \0 \0don't \0 \0ne\0 \0glect.\n\0 \0 \0 \0 \0 \0"); + Play("eBDqF2sG3A2G3AqAAAetDAAsDBDB"); + Play("eBDqF2sG3A2G3AqAAAetDAAsDBDB"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/compassions.CPP b/SparrowOS/Apps/MusicOrgan/Examples/compassions.CPP new file mode 100644 index 0000000..681af72 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/compassions.CPP @@ -0,0 +1,24 @@ +//8 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13qBAeEE!qAeA!EDB!2qG3F", + "$$FG,RED$$You \0need \0help!\n\0 \0 \0 \0Po\0-o\0-o\0r \0dear.\n\0"); + Play("BAeEE!qAeA!EDB!2qG3F", + "You \0need \0help!\n\0 \0 \0 \0Po\0-o\0-o\0r \0dear.\n$$FG$$\0"); + Play("!4eFG!!qDetF!E!D!eD!EetADEC3G4GqD3G", + "Pat\0ron\0ize? \0No, \0 \0thank \0you!\n\0 \0Too \0 \0man\0y \0strings \0a\0ttach\0ed.\n\0"); + Play("!4eFG!!qDetF!E!D!eD!EetADEC3G4GqD3G", + "Pat\0ron\0ize? \0No, \0 \0thank \0you!\n\0 \0Too \0 \0man\0y \0strings \0a\0ttach\0ed.\n\0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/completed.CPP b/SparrowOS/Apps/MusicOrgan/Examples/completed.CPP new file mode 100644 index 0000000000000000000000000000000000000000..450f5347880003a8c244f327b7793ec95df88ba7 GIT binary patch literal 924 zcmdPbH&@6=ELKP_N-W68OfKf);^I;X4$x7uF|*?u%anD4UJMu+!Ym#otzaF3*A#)oC=+d+>MLf6&>9jQ(fJP-4)&4-Ia8>I60L( zOB7-ZGK&>r3>0Dv(lYZhi!)MF^kVYBe26GPQc2UAi_`GU}9ikU}S)RAO;37 vpNTtask_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 3.966; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13qABeCCqABAAR", + "What \0makes \0You \0 \0 \0think \0You're \0God?\n\0 \0"); + Play("ABeCCqABAAR", + "What \0makes \0You \0 \0 \0think \0You're \0God?\n\0 \0"); + Play("DeCCCCqCDCCR", + "Do \0You \0 \0think \0 \0 \0I'll \0app\0laud?\n\0 \0"); + Play("ABeCCqABAAR", + "What \0makes \0You \0 \0 \0think \0You're \0God?\n\0 \0"); + Play("GD!G!!eGA2G3FqF!!eDRqB", + "$$FG,RED$$Be\0-e-\0cause \0 \0 \0 \0I \0 \0a\0 \0m.\n\0"); + Play("GD!G!!eGA2G3FqF!!eDRqB", + "Are \0 \0you \0 \0 \0 \0a \0 \0fan?\n$$FG$$\0 \0 \0"); + "$$FG,GREEN$$(If God talks, how can you be sure it's not Him?\n" + "You can't, so harden not your heart.)\n$$FG$$"; + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/depending.CPP b/SparrowOS/Apps/MusicOrgan/Examples/depending.CPP new file mode 100644 index 0000000..3443335 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/depending.CPP @@ -0,0 +1,32 @@ +//7 has words +U0 Song() +{ + CTask *task; + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + task=PopUpViewStr( + "$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); + while (!ScanKey) { + Play("3etGREqDDBRGCB", + "It \0 \0de\0pends \0 \0on \0 \0the \0wea\0ther.\n\0"); + Play("etGREqDDBRGCB", + "If \0 \0we \0reach \0 \0the \0 \0end \0ev\0er.\n\0"); + Play("2sG3E2G3EqGsGBGBqDsFCFCqBRsCBCB", + "Hand \0 \0of \0 \0God, \0 \0just \0 \0might, \0 \0in\0 \0ter\0 \0cedes.\n\0 \0 \0 \0 \0 \0"); + Play("2G3E2G3EqGsGBGBqDsFCFCqBRsCBCB", + "If \0 \0it's \0 \0not \0 \0deemed \0 \0right, \0 \0won't \0 \0suc\0 \0ceed.\n\0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/despairing.CPP b/SparrowOS/Apps/MusicOrgan/Examples/despairing.CPP new file mode 100644 index 0000000..f2bd6cd --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/despairing.CPP @@ -0,0 +1,24 @@ +//8 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("M9/8"); + Play("W13hDeFhDeFhDC"); + Play("FeDhFeDhFE"); + Play("M4/4"); + Play("qD!!2G3AeBF!FE2qG!!3D!!A", + " \0 \0 \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"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/determination.CPP b/SparrowOS/Apps/MusicOrgan/Examples/determination.CPP new file mode 100644 index 0000000..e029b84 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/determination.CPP @@ -0,0 +1,20 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + while (!ScanKey) { + Play("3sEAEAeFFsA2G3A2G3FGFGqCCBA", + "All \0 \0 \0 \0hell \0 \0breaks \0 \0 \0 \0loose.\n\0 \0 \0 \0I \0will \0get \0through.\n\0"); + Play("sEAEAeFFsA2G3A2G3FGFGqCCBA", + "All \0 \0 \0 \0hell \0 \0breaks \0 \0 \0 \0loose.\n\0 \0 \0 \0I \0will \0get \0through.\n\0"); + Play("ACeCCsBBBBqEsCCCCqAE"); + Play("ACeCCsBBBBqEsCCCCqAE"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/dialogue.CPP b/SparrowOS/Apps/MusicOrgan/Examples/dialogue.CPP new file mode 100644 index 0000000000000000000000000000000000000000..13af13e0c0f961539dfb18f2a961e475bf737e20 GIT binary patch literal 3382 zcmdPbw^YbTELKP_N-W68OfKf);^I;X4$x7uF|B3F>mKVH+1Mt=SK8PbYdzLC(gfS73v~~w;U*>s!z&Sn zL+yd8g*hB5if+4w_G5h`5*)y#ppcTRYnPUjm|k3C>*DMd9}?u~7wqOAF)>f zp?gtKeo2IDVW|d4X%Q$u!9fESk3<%)1dD@IRoEIEnSwNfIF+`>V77B`K~ZK&YCukY ziLpjXvW@{5s(3oVV_egktCkBC!@>D^=^Bs-4Nfg7$;?YH4k#_ouvXC54^B;0Q1S8B zQ9_nb(oypDvqBM30VRfFUAvT`#Paye5?eJ$ssTC5tytHtB(XR2Ps!DuraED#RE#7p2A+D8v{f#u$|37b(OTcr&57$|94b3u*6ZkSVQPG)Ku$Uv|m3NZ$G`6W6EF$U$S>O~;oy!;Y~Ejjsl zsd{K;7CNUoIf4v!G;(*#aD}+fJwFAcKd~gnAUPuyfdwnulLYpRox zyK$jov8$20qN1@Yh~t`C;^gL9=;8)qztask_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("M3/4"); + Play("W13eECqAAeECqAA", + "I \0hate \0you.\n\0 \0I \0hate \0you.\n\0 \0"); + Play("eDCqAAeECqAR", + " \0 \0 \0 \0I \0hate \0you.\n\0 \0"); + Play("M6/8"); + Play("etAB!GqCsGEGE!!etGBDqCsCD!CD", + "$$FG,RED$$Don't \0 \0 \0smile.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("etAB!GqCsGEGE!!etGBDqCsCD!CD", + "Don't \0 \0 \0smile.$$FG$$\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/doing.CPP b/SparrowOS/Apps/MusicOrgan/Examples/doing.CPP new file mode 100644 index 0000000000000000000000000000000000000000..af7c86cdb4d4b12456a084cbcffaf519c44fae26 GIT binary patch literal 2589 zcmdPbw^YbTELKP_N-W68OfI(OLIRu$3JNO00Xj-HhIUFihAJ>AH!~B35(C>3U#HZ> z5^Jtd0|l3&#B$FP4d;-=;%o&i9cLG31+A21O|EJ#1qG1mloF_F-4X+9E(L{@WL>+o zoW%6v8e114CN55b<{~%w-5Kn(UkOCKH$DEw}WS7)}k_@NPG>w#GO^`51Uxlr) z5!{eUTO)IrM3t?3P<&LpqmK_r#Jwmeza+x7uv7!2sYu5_&(Op`>oM3Euv`?foRO)4 z)?=;U%sh?9S}7%(2vw0Ns*GVKI0qLLWtOA{GDansdOH3}wFS1oI(6cl!0_iF#s#E|)Xn96v zPO5^2VsLU|o_A`crb0CrCsK0YR8moKbJuYXa&`4nQ3=UcaL-TC)6)Y9s;I=|DOq!I z2IM4GYAA&p8W*}dITpLRD7v~R7CO5-DJnWE>2Ps!D!C=b7?fnB7U?L&7%0RTlxHNC zKv)nmGQU(I#vmy*HBTYNASFM>ATuxBJ|-{5KuHsBIu4V=6HAgaVhnUMOB59#hWW#6 zfpAMQQY+PSa=_**#26Hpf=$;$Gd|G)hI|DPMm2B`wEK{QMpM1wF${MG;e|3MhUK841HsR40%fP?@5{L2mp<*CDSRASc#0RBhkXvBx1%)n%4-yB- zgZQA}0*Qh6AU4Qu7#|v%AR&-60|Nty33Cn9Auui|;6M%lxyOKk0mKD`A4mwQ8SHMb z9}FNl4CHoXK8Ov{15yuiBgh@Fumz<8kQj^)qG4h%^)N9IAI1iy4j3O44xsn}@j*05 z4ix_|K8OvA3lI(BgW?Ay528VQPzb>IAT}tzKzxv2K7xAgZu{) z2e}8N4kQNhH;fNrgWLq-gUklG7v_HuAEX|n4+KiGkFCne*$0wm004*{_2mEn literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/downfall.CPP b/SparrowOS/Apps/MusicOrgan/Examples/downfall.CPP new file mode 100644 index 0000000..704e5c4 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/downfall.CPP @@ -0,0 +1,16 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + while (TRUE) { + Play("et2G32G3Gq2G3qCq2G3sFAFAq2G3etGDAqA", + "Don't \0 \0need \0 \0help. \0 \0Got \0 \0it \0 \0all \0figured \0 \0 \0out.\n\0"); + Play("et2G32G3Gq2G3qCq2G3sFAFAq2G3etGDAqA", + "Don't \0 \0need \0 \0help. \0 \0Got \0 \0it \0 \0all \0figured \0 \0 \0out.\n\0"); + Play("etCCCq2G3qDeDFetCF2G3qBeGFsAGAG"); + Play("etCCCq2G3qDeDFetCF2G3qBeGFsAGAG"); + } +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/dream.CPP b/SparrowOS/Apps/MusicOrgan/Examples/dream.CPP new file mode 100644 index 0000000..cebd934 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/dream.CPP @@ -0,0 +1,24 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13qA!!sDGD!!GqAsCA!CAeCBsFDF!D!!etCGAsAD!A!!D", + " \0I\0mag\0 \0ine.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("qA!!sDGD!!GqAsCA!CAeCBsFDF!D!!etCGAsAD!A!!D", + " \0 \0Fa\0 \0thom.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + 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"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/efforts.CPP b/SparrowOS/Apps/MusicOrgan/Examples/efforts.CPP new file mode 100644 index 0000000..84248d0 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/efforts.CPP @@ -0,0 +1,20 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + while (!ScanKey) { + Play("2qG3sDADAeF2G3etFDCBA2G3qAetGFC2eG3E", + " \0Let's \0 \0try. \0 \0 \0 \0O\0oh\0 \0h. \0 \0 \0 \0Didn't \0 \0 \0work.\n\0 \0"); + Play("2qG3sDADAeF2G3etFDCBA2G3qAetGFC2eG3E", + " \0Let's \0 \0try. \0 \0 \0 \0O\0oh\0 \0h. \0 \0 \0 \0Didn't \0 \0 \0work.\n\0 \0"); + Play("sA2G3A2G3eBCsE2G3E2G3qGsFEFEDBDBeAG2etG3B2G"); + Play("3sA2G3A2G3eBCsE2G3E2G3qGsFEFEDBDBeAG2etG3B2G"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/elijah.CPP b/SparrowOS/Apps/MusicOrgan/Examples/elijah.CPP new file mode 100644 index 0000000000000000000000000000000000000000..fb3e58b4507e92eb3f700d72b79b617b64853a62 GIT binary patch literal 17661 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 + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + "$$FG,GREEN$$To God...$$FG$$\n"; + Play("M5/4"); + Play("W13eEqCeEFEDCqBeEqCeEFEDCqB", + "Fa\0ther, \0for\0give \0them \0if \0you \0must.\n\0I'd \0like \0to \0see \0them \0turn \0to \0dust.\n\0"); + Play("M4/4"); + Play("sGBGBetAF!2G3eEF!sEGEGqDsB!!D!BDGFGF2etG3GB"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/epicurus.CPP b/SparrowOS/Apps/MusicOrgan/Examples/epicurus.CPP new file mode 100644 index 0000000..8698e56 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/epicurus.CPP @@ -0,0 +1,42 @@ +//7 has words +U0 Song() +{ + CTask *task; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.500; + music_stacatto_factor= 0.900; + try { + task=PopUpViewStr( + "$$WW+H,1$$You get what you pray for. " + "Most people are fools like King Midas. People have laughable notions of Heaven. " + "You'd be surprised -- I can't imagine things being much better than Earth " + "because we need a sense of purpose. " + "Don't ask for stuff, let God pick, but He might get annoyed at that. " + "God wants us to be happy. He tries hard. If you do get what you pray for, you damn " + "well better be happy, lil' sonfabitch!\n\n" + "$LK,"Ecclesiastes,3:13","BF:Ecclesiastes,3:13"$\n" + "$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); + while (!ScanKey) { + Play("W13qBeCDqCAetAACeECsF2G3F2GqG", + "I'm \0on \0a \0mis\0sion \0from \0 \0 \0my \0 \0God.\n\0 \0 \0 \0 \0"); + Play("3BeCDqCAetAACeECsF2G3F2GqG", + "I'm \0on \0a \0mis\0sion \0from \0 \0 \0my \0 \0God.\n\0 \0 \0 \0 \0"); + Play("3etEDDDGABG2GeG3E2G3GqF2G3etGCD", + "He \0 \0 \0told \0 \0 \0me \0 \0 \0 \0to \0 \0be \0hap\0py.\n\0 \0 \0 \0"); + Play("EDDDGABG2GeG3E2G3GqF2G3etGCD", + "He \0 \0 \0said \0 \0 \0to \0 \0 \0 \0make \0 \0it \0snap\0py.\n\0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/exalt.CPP b/SparrowOS/Apps/MusicOrgan/Examples/exalt.CPP new file mode 100644 index 0000000..10c4f7c --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/exalt.CPP @@ -0,0 +1,39 @@ +//9 has graphics + + +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 i,cx=0.85*task->win_pixel_width,cy=task->win_pixel_height+10; + dc->pen_width=5; + for (i=2;i<=7;i++) { + dc->color=gr_rainbow_10[9-i]; + GrCircle3(dc,cx,cy,0,(i+5)*5); + } +} + +U0 Song() +{ + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->draw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + + music_tempo=2.5; + try { + while (!ScanKey) { + DocClear; + "$$BG,LTCYAN$$$$FG,BLACK$$"; + Play("3eEDsBABA2qG3etGECFDBECFCBReBE", + "Come \0and \0sing \0 \0a\0 \0long. \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0\n\0 \0 \0 \0"); + Play("EDsBABA2qG3etGECFDBECFCBReBE", + "Of\0fer \0praise \0 \0to \0 \0God. \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0\n\0 \0 \0 \0"); + Play("qBeDF2qG3eFRqBetFFGeACDF", + "Up \0in \0His \0hea\0ven \0 \0He \0is \0 \0 \0glor\0i\0ous.\n\0 \0"); + Play("qBeDF2qG3eFRqBetFFGeACDF", + "Break \0in\0to \0song. \0 \0 \0Strike-\0up \0 \0 \0the \0chor\0us.\n\0 \0"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/exiled.CPP b/SparrowOS/Apps/MusicOrgan/Examples/exiled.CPP new file mode 100644 index 0000000..9f9e266 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/exiled.CPP @@ -0,0 +1,62 @@ +//8 has graphics + +U0 DrawIt(CTask *,CDC *dc) +{ + I64 i; + F64 dt=tMBeat%8.0,z,w,x1,y1,z1,x2,y2,z2; + Bool first=TRUE; + DCAllocDepthBuf(dc); + dc->flags|=DCF_TRANSFORMATION; + dc->x=30*dt+20.0*Sin(dt)+25; + dc->y=10*dt-15; + dc->z=GR_Z_ALL; + GrRotXEqu(dc->r,0.75*dt); + GrRotYEqu(dc->r,0.45*dt); + GrRotZEqu(dc->r,0.50*dt); + GrScaleMatEqu(dc->r,0.5); + for (i=-50;i<40;i+=2) { + if (i&2) + dc->color=LTGRAY; + else + dc->color=DKGRAY; + z=10*Cos(i/10.0*ã/8.0)*Cos(dt); + w=Tri(100+i,200); + x1=i-3;y1=0;z1=z; + if (-30<=i<=40) { + GrLine3(dc,i,-10*w,z,i-3,0,z); + GrLine3(dc,i,+10*w,z,i-3,0,z); + } + if (!first) { + dc->color=DKGRAY; + GrLine3(dc,x1,y1,z1,x2,y2,z2); + } + x2=x1;y2=y1;z2=z1; + first=FALSE; + } +} + +U0 Song() +{ + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->draw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + "$$BG+H,LTCYAN$$"; + while (!ScanKey) { + Play("W13qE!AA!etF2G3G!qDF!!etFE!D2eG!3G", + "A\0dam... \0 \0no \0 \0 \0long\0er \0sees \0Your \0face.\n\0 \0 \0"); + Play("qE!AA!etF2G3G!qDF!!etFE!D2eG!3G", + "Oh! \0 \0 \0What \0 \0a \0wretch\0ed \0bar\0ren \0waste!\n\0 \0 \0"); + Play("qACFeB!CB2GqG3E!D", + " \0 \0 \0 \0 \0 \0 \0 \0Ex\0iled.\n\0"); + Play("ACFeB!CB2GqG3E!D"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/expedition.CPP b/SparrowOS/Apps/MusicOrgan/Examples/expedition.CPP new file mode 100644 index 0000000000000000000000000000000000000000..35e1e6b8efb08990cb6b942dc3a38878c3d04bbb GIT binary patch literal 1558 zcmdPbw@}DPELKP_N-W68OfKf);^I}wd~%YlT5w)UNMdoeYhH@8lQoxuLT+hsW^#NtFRY5~BI5{!TJGD|%p_+>`ASba>L&-R`#M#Z+sLE zb}>T2N}AR%4J4>9EeS3t$}CCMQ1NuqQL-s6Ni4Dhc@<=sl8TD6ua1F^g^G$2+-#8L zu8yvbE^f|BI$WHbN(wOs{%L6nF$M}T1||6rx-vg6#vmoNNFl}mWTIY7UW@^f`;6R; z(T#9P%*|7TX!a~oFNUznQj1~?DivZ3(h`f{W+*7saw#a(DkLYCBxiu4N5L7ya?HsA zg=TPGiiUxvHCHVc7bsq=xfqxj7#J8CAV8Oe0nBG&6od#cF!V7nFxW6KFo=pWFfeE{ zFfdp%Ffed{^e|!pDB^qw1%pBy;T({E5j-lnlMjbExWy3~;Nimu1yI*9Fff1x7{Mfn zfUw}|89{tTxIswbUtask_end_cb=&SndTaskEndCB; + task=PopUpViewStr( + "$LK-A,"BF:Luke,7:42"$\n" + "\n" + "Prodigal Son\n" + "$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); + music_tempo=2.5; + try { + "$$WW+H,1$$"; + while (!ScanKey) { + Play("3qGGsEAEAqAsF2G3F2G3qCeEFqD", + "Life, \0life, \0isn't \0 \0 \0 \0fair. \0Isn't \0 \0 \0 \0fair.\n\0 \0 \0 \0"); + Play("GGsEAEAqAsF2G3F2G3qCeEFqD", + "Waaa, \0waaa, \0isn't \0 \0 \0 \0fair. \0Isn't \0 \0 \0 \0fair.\n\0 \0 \0 \0"); + Play("eFCqEBDBE2eG3EsFEFE", + " \0 \0I \0 \0ne\0ver \0sin.\n\0 \0 \0 \0 \0 \0 \0"); + Play("eFCqEBDBE2eG3EsFEFE", + " \0 \0I \0 \0ne\0ver \0win.\n\0 \0 \0 \0 \0 \0 \0"); + "$$FG,GREEN$$(A warning on presumption. 'Who loves more man -- forgiven big debt or little?' See prodigal son.)$$FG$$\n"; + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/feigned.CPP b/SparrowOS/Apps/MusicOrgan/Examples/feigned.CPP new file mode 100644 index 0000000..0be6455 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/feigned.CPP @@ -0,0 +1,20 @@ +//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/finger.CPP b/SparrowOS/Apps/MusicOrgan/Examples/finger.CPP new file mode 100644 index 0000000000000000000000000000000000000000..d4a7d29dc12e9b250cff62c01d9afdbab3bbd443 GIT binary patch literal 3968 zcmdPbw@}DPELKP_N-W68OfKdE1C`(a9VHt>J0%@M6_5agZ)B&WV+7(m<>%)pR3#R~ z=jZ99W#*-)7RBf1S#xoP8Ys9FC6;@ZXgG%?7H2DH={UPMD`=%8YjRa{DJW#7DQLiz zYjPY;6(I=R;Mw&vcNB9D2XD!&b!TEXV8W4X5r)NFhC6>o$me{I6Viy!pAmNh4;_Ud;yp;Il zBwMxMycAI2y5^-gJAoABmKJ9w$Csq$7UbI+>6wCr5DtX~EY!UU3MECA3ZN8Ho{^c8 zs-U45oSc~Fom#1>P|d{|kds)cp=4a>TI}rP>{RF&6qM>7ROo0_>~8FCbWbgDH+C{|H!gN_adRnjG)i?hb}w{+c*Zd&2j+>AjLc$%7=z-H zqRg~Z0)BzGMc$MZBfUQj|Dp80r$gNa}F~}j&1quqa zTnY-c3dxBj$r+H`4q`dx9e= zE{t$2vJwB`ZbA_Saj+YMUGzT=)1m$a8Ha|kn}c0+(3y_anOFtEzQ!tpRgiq;XvU#& z!RA5NxLNF381!v%jYp@QODx}PTI}sq8gwOyp0&E@{fg}fG!e}&=U@jIp zEJ9$VAOhqDP`LnN!!XY51WA=(M=fJB0fhj8Jl;0%a33W-n-4?!Z8!_?zb z{vTEtf$W4RgpeRU7R&%DDq!MZm0$uUf=(kj9u!chTy(`C6)-o0KY)!x5Fmvxj1c|Lzy|@Ke2HW?R2U=*jtiI$h&WUs zlmaCOkRcGoARe-6xG0i2417qU2yx^r1Tq3@K1ek-^-#Akz~vz7A;QQG0*fPr`M`Xb zJ3(OrQp^VzhNmS^B0&;Hi2nx#8_X1h`_Y6E>KTwtK~m3vuoKC@sD{Jb38GPz!^}qy zHn=##g&@;m_F^c9s)q+7L@~%d5DQZntRB-8i1}EQgVbXa28)BNK*uO$Ba$RGJ3-P| X4F|a&Jpe$8LE=yvox-8~KLY~*Sj3p; literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/first.CPP b/SparrowOS/Apps/MusicOrgan/Examples/first.CPP new file mode 100644 index 0000000000000000000000000000000000000000..0934f6323d4b0db0c361a1f38c2d14359aeed0d8 GIT binary patch literal 1885 zcmdPbw@}DPELKP_N-W68OfKf)QV9;wQL@QMO)M(0Q_?Y1;X(qT1`5IXdFdLOT-96( z3eF*k#n}p4C5gq^)?5k-ZpFHGAa;CeUP^p&lC4^BUJ6KsYhH@86G%aBX>n$9d`W6< zLB6e#o+(JEq^ME>WE4oBZ9slOXhB$JYI$%;kp`E7f`WpQib{C6wug?Pii(Plx2~g( zl9QX2Z(>PFMryf^k&%_Lsgg=eUQC`6M72kLxk7GYUZp}oYJNdZsshLp3NcDP`DLjJ z?)fPS<(VZJ3W+&6V2Kh1sIJ`1ycC7RycC7v{L&n2Fe@)LGd&|IzepjmSfMyICru|t zNg=7UM4>z}CmW_Mu{^O-p(G4 z3$zW5K#D*Pb4e}AEK5xZOUx+_El5c$NkzD_JR>tFRY5~BI5{!TJGD|%p_+>`ASba> zL&><%E!EM;-MG*x)!nJkHMPXW8AQ3cDd})=D!FAA6_@BJ#2Dn{#~75QD#RFo;wZ)d z9CR@T3NZ$bK0XRD1}Z9U?m9uPE-EUZ_$&c&Ra8Lwz!4W?0E)U815o7Y#pHqYDa05k zXKG_6iWLr$UTDN`9Vti9(D) zc3yrtQeZ+9z)48hf`cn{U~E@VsO3^ns8vW#EJ@A)=Y3}o%P}VhlwO1LQZx)St+{Hs zxIm?qH5UUD0|Nsi0|az1F)%PQFfcGNaDaq(85kJEp;#M*dq6=4 zas$YGkbC497#KvL803Bs2B`s=&BOyz0g?r&0+|j92$&B+DnX`zd;>CF3L4lTpMY!z z*$N6QkUo%FkX{fUM1$l&z6G&Cp#ZWC6qq3UKr~1UWG{?{yNCs3639l7A7HvcDnTv) H`IP|xjYW26 literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/fishermen.CPP b/SparrowOS/Apps/MusicOrgan/Examples/fishermen.CPP new file mode 100644 index 0000000000000000000000000000000000000000..4f60a63f77e6c6c63553a29aa76a3fe32fd04ba7 GIT binary patch literal 2038 zcmdPbw@}DPELKP_N-W68OfKf);!+6?&{486v{TYCRN(@HPy>bF{JeAxO|EJ#1qJ7j z#NuoPt&+szY-=tB1-D{dI}kfQH7_MTImuQnI4=dH!Zk0&*$Jc|x3oAjIld${w;Y^U4c(&cB+o4l?g&p6J!I(1>uRAB^n?rz#<@qu3dR%UVKqzdPa#Y$lY)r zNDD$iPHGxL9>hVFF3B%|>rToqDap^(Hbzwe5w%5_Sdw3$ZD<5i1ag>5YEfocYD!pQ zPH|{KN@7VW%#~aU3gsD@IjIU7iowZ=dETj&nhMoioB=tBl^ROMg|5Z!uI{d>Zbt6L zPR@nSsV=UCPQ|W4u0cvVT%4RrDk^U7Dk?ttMJYN8F$SIrF$M}T28p>4IxRIdC&nN% zFI^$VAgi>v1SF*pV~~^yVwL8Bq+$$;3o?sRQ}kl;VhqAFOEMrjA*7O~HOwJ|+>w_G zGBdvjqOlxqP!W<7pbpGVO)XG}F-T7>i7_aFI4&3N1c-hJiEO<~YDtizTcL}4YKfb( zk-KrRle3d^p^FjxK~Ad7F9kU&FSP{hMTitG63IsV7WyV; zr$P*=%rAunD+yMVmIN0RWtOCBsCYWTGae|k{Zh+)GV@Y3Ou^~5mPOL?7qyfwjWnf@n0eMv%#0Z9lDGSJx(jbv=mN_vfWjHfaD`dn%)r0^Rt#c*tpG6uK+XUu1_cgS z7uZse2*~>^?$CH(@qk7c3&=pQzd#I7kgzyF!pq@3ih%KG~s|1 zgI#C`Guf7bfdT9<5Cg2;24*0L!3}b%B`h>R5y=M<{9 literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/fixing.CPP b/SparrowOS/Apps/MusicOrgan/Examples/fixing.CPP new file mode 100644 index 0000000..f3a19f0 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/fixing.CPP @@ -0,0 +1,20 @@ +//7 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.758; + try { + while (!ScanKey) { + Play("W13sDDeBCsAAeB2G3A2F3sCCeDsFFeEsFFEEeDE"); + Play("sDDeBCsAAeB2G3A2F3sCCeDsFFeEsFFEEeDE"); + Play("sGBGB2etG3EGqF!!ED2G3eBA!DG"); + Play("sGBGB2etG3EGqF!!ED2G3eBA!DG"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/flung.CPP b/SparrowOS/Apps/MusicOrgan/Examples/flung.CPP new file mode 100644 index 0000000..b7671ec --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/flung.CPP @@ -0,0 +1,20 @@ +//8 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.714; + try { + while (!ScanKey) { + Play("W13sBBBBEBDBeEBqDeBBEDEBqD"); + Play("sFEFEeFEDBqDeEFEBABqD"); + Play("eDGqEeBAABqF!eBD!qE!A"); + Play("eDGqEeBAABqF!eBD!qE!A"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/fog.CPP b/SparrowOS/Apps/MusicOrgan/Examples/fog.CPP new file mode 100644 index 0000000000000000000000000000000000000000..f7f0a988995bbc288a9a28f9b932b9bbfbce11df GIT binary patch literal 1572 zcmdPbH&@6=ELKP_N-W68OfKf);!+6?&{486v{TYCRN+DZ<&@O4%)C?uACLG51tT*9 zE+m0S1tSA4E;ln1g%ShX5?`m(#1d;Ru22I7m!iaS&k_yiki_C_1uY$C7iR^nlw?h= zYAyu@kn)rgsB+yB1D#51E(HbW;DVyelGK2l{1Ri0lw=){bs!>A$3REL(+Tb}O_1Wu zGzE>65<4RkO$CsN3JNL7x^~I=Ir&Alk*+>I{^1}+3JPiYMG6{~wz|d!)|ECOLfh6< zlS=^%+>3lN^HNc50@j$T%DyaB)>nI^hDCsEq`dOifsDJ{YSl2G4D6u>~v&2>n5?UZPyA|u& zl_VBt$EW6{#3v`&ss-nzfWpuL&-R`#L?NM*wxk5HMPXu-N?PrJ+;K$*vYZbDYYcX$=%t}T}g+FlT*o4 zA;zFQF(+Fg#y}y)ASqur#sGwKQeq5pDj|Z%WJyMTX?li2j6q38szQuGT7J4-OdeP( zvMPlb10_vsE~s0GcSw4E3B;J3%o4DnB{?8l6k-gLGx9T&p=^kfq*9RDl6;U`ib{(? z9QXVb!ma@YfU~o6p|f+Uv$L~Hp=)Z1s}nRZ6k-fq^7GU|W+}uNWaoiGBEKABAA~H= zNCe4(txd^CwGGM31S|>9NG$?+1{C<|U`uo$#zRO?^)irb9>{OWIi;zX)+i{{aw#a( zDkLYCBxiuLh%<=gn3DraO0e`6kY8X8$_SuLV9mwA#K6G7$N&K^7#YBPCWb%%|NsB_ z|Ns9V|NsBjWnf_V`~Uy{U;qFAXJKGqK&Cku7#MUI7#LtQNDqh)(x=A2z`(}9z#z%M zzyJ~#gIL1Nz`*eP|NsA-3=9m+P$eMaK}LfdgG__uL26+%NFB&&$TUbj$a-xC1_nL` z1_pBm1_qGzdJGHP?UnLFz%y0)+~QW@6-J zU|;|_ESrIW0c63q|NsAk9QNS<|NkIyVFm^UQ22x7^%)o#1fYB_1_lNV1_p-j|Ns97 S(VzeS{|^dx82uO;Zwvqq6~!e0 literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/forasmuch.CPP b/SparrowOS/Apps/MusicOrgan/Examples/forasmuch.CPP new file mode 100644 index 0000000000000000000000000000000000000000..0ef7eaaa44f328b8426cebfee056b7f8d1e47964 GIT binary patch literal 2276 zcmdPbH&@6=ELKP_N-W68OfKf);!+6?&{486v{TYCRN;bvPy>bF{JeAxO|EJ#1qHWa zUAvOR;_Ud;yp;IlBwMxMyp)i{;%wKv6lW)EE-nQH-_qjDuRGbdF+ zLoqlxG0!`-Qd6Oti!-3KB)Fg`vm{kR#nTDyWKC->PQTQ0pUk{e4KolYASba>L#Z$* z+)&XtwZuhH(a7E1UD4RtvCu`)HPubgUC~+5wa`ULhl`U_Ng>9-Ex$-1#vrj+A;uuL zG&uvtuFNl0h%rddEKAio3#$|(o zLM@kqLajn_Vo7oamx6+Vf-{Kan3DraJHdG=8U~uyT(w+Wpwwy2#lXbCz`)1=0ZeQR zV7{ml0|SE^0|NsW0|NsK0|Uc<5MY4;5a&OP!@>gQLJau-A4!~rg$0!dQi-gN2LfQ~ zAUqxr_y2#GIu;fds5lQu28|0>hb#_J2-gMX!puWe2Qm>!9S;i&LLIU=50WE5;&63n z#)0IJF$)VQ@IYaRW&pAx9F_^19Y7Kwnn_?T#5ja`ASZ$)Pzk6qRCSnP1GN>| zUXXzp3Sq_}n+H;eYAGlkf^!k7d6<5N8;5EhdaNLnVW>lKAx?FuHX|uRGY{1((4qkB z6IeO`b5LUi**FaIkZeXa4v#t%<1p314MZ^xw>nhgu&9F?h-w@Tbu36R3keDIZ~=*e may^=H*vtc2jOIGD^a3&rgyE?Z#DQRJ_JR$BNW)2pItBox(!*5% literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/freaks.CPP b/SparrowOS/Apps/MusicOrgan/Examples/freaks.CPP new file mode 100644 index 0000000..a5911af --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/freaks.CPP @@ -0,0 +1,24 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 1.930; + music_stacatto_factor= 0.604; + try { + while (!ScanKey) { + Play("W13sEqAsDeCqAsEqAsDeCqAsDeEqEsE", + "Jes\0us \0kind \0of \0freaks,\n\0Jes\0us \0kind \0of \0freaks,\n\0are \0dif\0ferent \0 \0"); + Play("eDqCsDeCqBsBeBqAetBED!qBeC!B", + "from \0 \0oth\0er\n\0 \0 \0peo\0ple.\n\0 \0 \0 \0 \0They \0don't \0"); + Play("2qGeG!3FsCDC!!DqFetB!ACBED!qBeC!B", + "care,\n\0for \0God \0 \0is \0their \0 \0joy!\n\0 \0 \0 \0 \0 \0 \0 \0They \0don't \0"); + Play("2qGeG!3FsCDC!!DqFetB!AC", + "care,\n\0for \0God \0 \0is \0their \0 \0joy!\n\0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/free.CPP b/SparrowOS/Apps/MusicOrgan/Examples/free.CPP new file mode 100644 index 0000000..0f6ed66 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/free.CPP @@ -0,0 +1,34 @@ +//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/furnishing.CPP b/SparrowOS/Apps/MusicOrgan/Examples/furnishing.CPP new file mode 100644 index 0000000000000000000000000000000000000000..c1be26ced7eaf694b33657456e8f4799a76bd58a GIT binary patch literal 5274 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 K2BkNUI0FF0!@-FF literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/good.CPP b/SparrowOS/Apps/MusicOrgan/Examples/good.CPP new file mode 100644 index 0000000000000000000000000000000000000000..d6e52475562e6fb1d253b78628dbd06adb6ccf3a GIT binary patch literal 1149 zcmdPbw@}DPELKP_N-W68OfKf);!+6?&{486v{TYCRDpAi?38qjRJgd@%uEzY3~Wn$ zol+A^thu;C4HR6863abHG@L^ci?bE9bevtB6|_>4HMy#}6cj+pQ%a!9bxRC%N=mG` z6cj=&6tpt)N>YnJoXj)@jg%4_Lo+=CO)dom1%;9lTLX|pYEE&g0!-EdNmfH6r9{`z zOjF-TQ`Hcr5~kHq53Ct%ysdL^K~ZK&swc>9PbawdbRZmv=X6R+G(m}wd~%YlT5w(pD7;2c% zjDdT8ilU-sOdeRL5;#;5_R-rq_hM&PXV+9`Blp4}W4BaSmqJ%JsPEtoMq_xSD#RFo zy^H2okeAT?Lo4%ZxfB#?6_OK6k~6@`-xI8FCS*P-`v*CI$uu zMg|BlW?%sGIY5GJ3=9k|3=9m+3=9n3P&yDwM?&dDC=J#H(gZRG!xUEr28O@?|Nn=X O5(3o~1ErIo@(ch-9vYhf literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/gutenberg.CPP b/SparrowOS/Apps/MusicOrgan/Examples/gutenberg.CPP new file mode 100644 index 0000000000000000000000000000000000000000..c310a2c91804da8ffe22cc0131cf580d72aef0c9 GIT binary patch literal 2093 zcmdPbw@}DPELKP_N-W68OfKdE0hQnY9VHt>J0%@M6$IbNPD#f|g^SD0%tWEYz_!HK zDK)Xgnu{ycK*6ObvD~vn!#O0eI9owW$JxbMK`SL$ldGCbK>?)vrA|r-RD*7bfi;(c zLS~wRMoNjDp^>ISN{OwZ5lHN%t%07AmRo5~PDoLvMoNi}i6%(cIk=!Gvm`YjC%+^p zza+{yNh2j$$I!$;+t@%WI5STpr9@N5#6ZVDN5#_#?rfcx=z5L8+RP1f3{Bx`Azsq7 z=Bnia`y)6%FI@xTY^YyK5{t7zjsVfN0r>@?1!0+~<-sLI8e9qr3JOXpKHfS?L8)b_ zIf*5i`FT1b}FUm~M zD6w@bM&iMo01?VbO+(0oIH=Mk`2}#@N%$Dzf_z&ABRx|CaMFN?7MCO@Czh1t z$EPJGm*f}ODj4WlLgbZHRKmlxJ#-9JRFpubloVAefD&4HMrKZ`f`(#na$=r$YNe(^ zH5VsRI^_(=NvzaRQZz1f3UW0nb~kobG;&uoc20G6Q!I2%byrk$EDkbq4^nhj(&6Id zR0_#RRfsWAh%qQE&CJP($pfFXf#;GMPM()OLicW5dM()NgL2eMAL9BAmPf>^3st{vPo?n!r5Mz**U!)LYkeHJL zQIi34S4Lt1*#8BU5Q&1+{1^iykD}PEh|ltZoK!s$0uy2#*d`?v6*qSs_aIkSKNS`C z(vsA?q|~Bxh0MIN)Vz|^6orzERE2_~%sfyEQz$4(EiP6_%u7+oO-xBuaLP=|NiEh> zPzcQ{$;<&M&C^j(;^I{DR4C8SOGzzK$jC2O$W6?v1QEI!`K3k03ZTHq&r4MRhfQW4 zNEgH)#h5&hTcGK$mPBY2qG13jUqEGxH5UUD0|Nsi z0|Xc`F@X7^+zbp1N(>APfB*mgfB!!mFfjc84^{~gVIauoV?a{R@Sg#d&+wlQBFz9Y z4tOOApMZP;;e(We0taS41JpAJK1@4IJvb~u27s&w*$&kXkq4;;yAEzY zs`~#h)i8O8TjAz`f(OKb*-vdgIMsks63F#Q4A4}>#=yY91x-aiK-Pm~K~9Cz5N|So N0tY05n}*0@k^mzdrda?0 literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/happy.CPP b/SparrowOS/Apps/MusicOrgan/Examples/happy.CPP new file mode 100644 index 0000000000000000000000000000000000000000..5bc464eb9e93c4af36586c85b3477b58480b5ed6 GIT binary patch literal 1676 zcmdPbw@}DPELKP_N-W68OfKf)Qcg)t%gjqv2oCj&kKi;iF+dTCmS{MKBo=2YXz4h+I4fwS zBx`b2b15i*%y?;Qpp#MpHAlC^z?w@z!PCq{p~BYCz(CJH%Q?STBc(*kNb9k_g`RFVR-9}W_8FLKMt&rfm7%*jF5<>u%U?5YX2D>F?&Bc;U7&`gs{K|w*` zrL9IviLRlUCdj2AQ=EefiZV-519I|9g7QnEjFUiSRcM3VplfWTQwe59>KN##csjwu zP3NViHCHVc7bxU{^YhX*AORJeT2hjkmtGuDTAX36psydCnyR4UMJnK`Kn8j8WmiFw|sm6}jt z1>|G`3MvJKfSkli4JG43r_>V1Ah$x-AR~9zN%*g>IBv?`l$S(kA0Z{U{=3-!CU|?WmfPh~tT9CyVn80F8jEqc7 zU=2|93?M!eBUqdfqya@7Yz!lkILKCrNg#tjPJ*jv1X}task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.758; + try { + while (!ScanKey) { + Play("W13qBeABqA2G3AB2hG"); + Play("3sCCCCqBsAAAA2qG3sCCCCqE2GR"); + Play("!!3sBDB!!DA2G!3A2G!!3etAA!EsGCGCetFFEqDFeE2G"); + Play("!!3sBDB!!DA2G!3A2G!!3etAA!EsGCGCetFFEqDFeE2G"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/hope.CPP b/SparrowOS/Apps/MusicOrgan/Examples/hope.CPP new file mode 100644 index 0000000000000000000000000000000000000000..c69d0c73115f51f3a4f2d9d9ed31af0734236a8a GIT binary patch literal 1668 zcmdPbw^YbTELKP_N-W68OfKdE15O1nPzesuQL-_#Q_?Y10gJntnJAPP*p~QOb8&?l zD7X|QmV1_HIEN$_XDevwIJ-D2Xr&};a#eFFD0rHgC}iqX=u}#BDJWFf8XIVv8fa-~ zl=$kF7-*^*Yl4I;ZA}b7v~zGlQD#YMKu&&%u|`TVNSBU*j*6!f+;*_?lw@7IIaBVkV(%Hb+7|-aui|=NVho=tgk%3C|e=MAitDIOW_WHSy;=Z zpirxjoLG{a0nSm*AeLiJ4k&WrNi)B|nyZ$J3zWdExfqxj7#J8CAV7nO0nBG&XMe=N zz;NmR|Nrm*|NpPztQDx?xx{1Mf8YDtb0;TF(olK%ds+SM+2+6h`%gCU{kF zA*8}FfrVX$fq_Amfq~&S*a6$`?m2sV5ASU@b_oUs22BPAhBsjG`^$1~zus2LF2%sW zAjiPKz{|kEux@+RY>?Ht%wUgQgLrIT{x2KPNi0Gj2mky3|35ne0|OJE2#EXV|Ns9? z{30*^|NjqSih!g+@gl+u^&}HJyAYJg!@$5`mOF2se;X&*bdaT>5EVJxA>`W0%r4Eq z!0`9~|NkI!Ro+hy+?IRyTIpQ|c5Y~R{{R2~|LqC7oDA%o3=9mHq4Dso{vHbxyU5%B e|Nn!0Aad^i|Nndp3=AS5--?4=$`59OT?PPk3I^!_ literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/image.CPP b/SparrowOS/Apps/MusicOrgan/Examples/image.CPP new file mode 100644 index 0000000..5215337 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/image.CPP @@ -0,0 +1,35 @@ +//7 has words +U0 Song() +{ + CTask *task; + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + task=PopUpViewStr( + "Asking God for stuff is like knocking on the door\n" + "of a neighbor in the middle of the night.\n" + "It's annoying! We're supposed to love God!\n" + "$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); + while (!ScanKey) { + Play("3qBBE2GG3FFC", + "We \0are \0in \0the \0image \0of \0God.\n\0 \0"); + Play("BBE2GG3FFC", + "Some \0people's \0prayer \0is \0ver\0y \0odd.\n\0 \0"); + Play("eGDqCB2G3eGEqEC2G", + "They \0don't \0love \0Him.\n\0 \0They \0love \0their \0neigh\0bor.\n\0"); + Play("3eGDqCB2G3eGEqEC2G", + "Pest\0er\0ing \0Him.\n\0 \0Ask\0ing \0for \0fav\0ors.\n\0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/inwardly.CPP b/SparrowOS/Apps/MusicOrgan/Examples/inwardly.CPP new file mode 100644 index 0000000..3e4c82c --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/inwardly.CPP @@ -0,0 +1,20 @@ +//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 new file mode 100644 index 0000000..31f97d6 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/keeping.CPP @@ -0,0 +1,22 @@ +//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/kept.CPP b/SparrowOS/Apps/MusicOrgan/Examples/kept.CPP new file mode 100644 index 0000000..5ec5bde --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/kept.CPP @@ -0,0 +1,33 @@ +//8 has words +U0 Song() +{ + CTask *task; + Fs->task_end_cb=&SndTaskEndCB; + try { + task=PopUpViewStr( + "$LK-A,"BF:Matthew,19: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); + "$$WW+H,1$$"; + while (!ScanKey) { + Play("3eGAetCCCFFDqAeAAFAAFqG", + "I \0 \0have \0 \0 \0kept \0 \0 \0 \0 \0 \0the \0 \0 \0com\0mands.\n\0"); + Play("eGAetCCCFFDqAeAAFAAFqG", + "I \0 \0have \0 \0 \0kept \0 \0 \0 \0 \0 \0the \0 \0 \0com\0mands.\n\0"); + Play("EeEGqEeEEqDBetCCGqC", + "What \0 \0 \0else \0 \0 \0must \0I \0do?\n\0 \0 \0 \0"); + Play("EeEGqEeEEqDBetCCGqC", + "What \0 \0 \0else \0 \0 \0must \0I \0do?\n\0 \0 \0 \0"); + "$$FG,GREEN$$(Christ said sell all and follow me.)\n$$FG$$"; + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/limit.CPP b/SparrowOS/Apps/MusicOrgan/Examples/limit.CPP new file mode 100644 index 0000000000000000000000000000000000000000..280eab205de95659504b7b654319889c942a0b28 GIT binary patch literal 1464 zcmdPbw^YbTELKP_N-W68OfKf)ax*hgC^4`t@pVc~EV1U|QV9;wQL-_#Q_?Y1;o=H4 zP;eL%Eitg>;!;pZN!GPX&d}wd~%YlT5w(pD9l{*QkW6Wxj2#Hk~1JDu~I`R+|ant$;Hv#%`Mf*vDn4P-Ppy*T}g+FlT*nhUm?aIFTX?~ z#-O0II71=EpfbO-NFl}`r!+ZRFD5U>Kmi*91uN8Wni}oy=A7#6Ug(xu;^^pB=;{V> zw0nMvLX1IXG2H12F$ReWF$TrS8M!!|jpShR%v3-Q2futpXwZPo#SC#Ap&gTl6y7DN zIXMb31|=D(3NZ#g`9&#EBatnFu)&r|B(ZSdw3)7n2vBs*qTe zs*sbJovM&tnp#|?2QpMeMG2G-Yq=B@Y88?bOOi9drIs^@ z<(QKLl7nUBfcye$Q27EXT&%emm>3us7#SeIoq++&X9A1-{r~?zGXn#|&;S4bvp{J! V1_lO@xFD1khKh?oX)&lc0|0rZp&kGL literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/mary.CPP b/SparrowOS/Apps/MusicOrgan/Examples/mary.CPP new file mode 100644 index 0000000..73c41d2 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/mary.CPP @@ -0,0 +1,59 @@ +//8 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.976; + music_stacatto_factor= 0.538; + try { + while (!ScanKey) { + Play("W13qEDCDeEEqEeDDqD"); + Play("EDCDeEEqEeDDqD"); + Play("eD!!AsFDF!DqFsFBFB2qG3etBB!BqFC"); + Play("eD!!AsFDF!DqFsFBFB2qG3etBB!BqFC"); + } + } catch + CatchAll; + Snd(0); +} + +Song; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SparrowOS/Apps/MusicOrgan/Examples/mightest.CPP b/SparrowOS/Apps/MusicOrgan/Examples/mightest.CPP new file mode 100644 index 0000000..414c288 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/mightest.CPP @@ -0,0 +1,52 @@ +//8 has graphics + +U0 DrawIt(CTask *task,CDC *dc) +{ + F64 x1,x2,y1,y2,x3,y3,radius,pedals,é,t=tMBeat, + cx=335,cy=task->win_pixel_height>>1; + Bool first=TRUE; + + radius=cy*(1.0+Sin(2*ã*t)); + pedals=8; + + dc->color=BLACK; + for (é=0;é<2*ã;é+=2*ã/100) { + P2R(&x2,&y2,radius*Abs(Sin(pedals/2*é))+5,é+t); + if (!first) + GrLine(dc,x1+cx,cy-y1,x2+cx,cy-y2); + else { + first=FALSE; + x3=x2; y3=y2; + } + x1=x2; y1=y2; + } + GrLine(dc,x1+cx,cy-y1,x3+cx,cy-y3); + + dc->color=(2*t)%16; + GrFloodFill(dc,cx,cy); +} + +U0 Song() +{ + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->draw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + + music_tempo=2.5; + try { + while (TRUE) { + Play("qBq2G3sGAGAetCBBqAq2G3sBBBBeFE", + "I \0am \0feeling \0 \0 \0 \0 \0 \0brave.\n\0"); + Play("qBq2G3sGAGAetCBBqAq2G3sBBBBeFE", + "I \0am \0feeling \0 \0 \0 \0 \0 \0brave.\n\0"); + Play("qCsDEDEq2G3qDqBqAqGq2G3", + "Test \0me \0 \0 \0 \0Lord. \0See \0if \0I'm \0wor\0thy.\n\0"); + Play("qCsDEDEq2G3qDqBqAqGq2G3", + "Test \0me \0 \0 \0 \0Lord. \0See \0if \0I'm \0wor\0thy.\n\0"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/mildly.CPP b/SparrowOS/Apps/MusicOrgan/Examples/mildly.CPP new file mode 100644 index 0000000000000000000000000000000000000000..a9a950758a319b412af62bc868af5daff9225ddf GIT binary patch literal 1905 zcmdPbH&@6=ELKP_N-W68OfKf);!+6?&{0y-F;w9~0H~M|vKUy_&CEoh#K5-1*C{oz z#F~pM)Ih(jj8rs18dGzM zQx!nwDkxOi2507J7->D$(kSs&HPkcEHPAEF)Hl>K0IS4iq^X{PR;7-C4#ZePJCL7o zD%M3+jpT@0u3E6agY)y!H6Y#$PAw_P%u6p0C@s#gR?ycEPEA!%@$uGCLY7d{QS$Y( zLJ?5`1yQlCT}n}6d3uxnn5vy(L! zmx2N`z(I;^1M&+(3&Ju}%Y#dbG{7OMprEAU5{8atNFUav4HFPHGxL9>hVFF3B%|>rToq zDap^(Hbzwe5w%5_Sdw3$ZD<5i1ag>5YEfocYD!pQPH|{KN@7VW!j-wD#hJs(P_PjDbRoK_Y}IF3B&-RfsVt1q(vN3i9(H zsv%qmS)7`v7n288r38)}kP{*H53KF(uFgj8#;GMvM()OL?(VKGPEM&#u28QBrN$WK zBvvTI7^J1S}knUor1keryCst{w4o|9NytfvVLFkH4k z#9?;Taw#a(DkLYCBxitgg)@ldn3DsFYc~E}0=3-!CU|?WmfPg;?3}8MJ zHwQ?VeK7+ALnZ?QgDL|9!#Ce~&nsuCc}_C%ysY9mNyT%LqUR(P%}FYrYC@Wml)xeo zahvm#O*}6>shniyIY}jRl3M+|XN>HXP@|L?7#Nth@!sB+8y9OK`cQheJ4Gu1Ub;Aex6$8Jc#TP50EoK zY({o31_lN_Mu_)R{O3LQoNVJcS;cdb8r0zvLCQQQsX+V>2@VEvMg|6EP?&Il!{hJ& z|NnIu7#O4&7#K8==miW645kbW3^2Nek%7URfq}u2fq_Abfq}t-fq}sqi9W!O1 Sfx!(Va)N<@0c0T)GXnrhoa0jf literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/nay.CPP b/SparrowOS/Apps/MusicOrgan/Examples/nay.CPP new file mode 100644 index 0000000..5f888d4 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/nay.CPP @@ -0,0 +1,23 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + "$$WW+H,1$$"; + while (!ScanKey) { + Play("3qAAsG2G3G2G3qGF2eG3FqEetCBA", + "Let's \0ask \0Mike\0 \0 \0 \0y; \0Hates \0 \0every\0thing.\n\0 \0 \0 \0"); + Play("qAAsG2G3G2G3qGF2eG3FqEetCBA", + "Let's \0ask \0Mike\0 \0 \0 \0y; \0Hates \0 \0every\0thing.\n\0 \0 \0 \0"); + Play("2eG3GqE2eG3FqF2sG3G2G3GqAetGEBqD", + "What \0do \0YOU \0 \0 \0know. \0 \0 \0 \0 \0 \0It's \0 \0kosh\0er!\n\0"); + Play("2eG3GqE2eG3FqF2sG3G2G3GqAetGEBqD", + "What \0do \0YOU \0 \0 \0know. \0 \0 \0 \0 \0 \0It's \0 \0kosh\0er!\n\0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/night.CPP b/SparrowOS/Apps/MusicOrgan/Examples/night.CPP new file mode 100644 index 0000000000000000000000000000000000000000..f3977a4dfe165746ae6aeb45f4c55ef071073fc6 GIT binary patch literal 3355 zcmdPbw^YbTELKP_N-W68OfKe9adOu&P~qZKPzesuQL-_#Q_?Y1;er4aCwCPt<&@O4 z%)C^E2u@>T12`{|)7X@Y%gxM0p~S$p#Mdb`vBa8-E7U;2r6{r7vqZx=B(XSKK}*Nk z#aTfsC0UcJnoB{!)67I6)0#^`0i>@&r&1@S1gclJ!~i7j99&S8S&|x%lV4)2k&>(v zp%bZNprhjH1b3MxNLgl@f(FD+-4X*EBNI&pkm(8vAn~BYyc8P)J#(0tflhl1qB5K_acxzU~6;@jdUWl4Z((El`_IEWvCOWZGufo+t2`~lnG85 zQ=BqpIAzRrBDGDiI>7=-rj`rjt+f0i1&vHw1M5s1Q$r)`Ol@sMC{@@R>KW*QLNCEs z4;&dF9hJ5q5m<;-*qZ7YXa#5HX*|{nE-Wh1sMOTds({H>+8TkRD`9+CY-njzXjNz% z=^1FkG})Nw8Gvl&gekEx&@UB=O+Xl9J54^x}Zh;tXpAef{9nR0S0uZyhCM2_+pRUq34p5fxCb zDAu)0DM~Dl&n&T3gXANSE8L28?Mf1hv*T0qQsR@7Y}JDEQb4)OH7~{438Wymv^X<4 zz9cobAm7#q5_csFuI-`YI#Y%NYEl>Y>0r8ii(@NPPm6>h^vZ_5E!Ewv&<*T* zCnUEk#27dhXMmiRucxP{5Mz*-m!c43pb%q_Qd(RB7KgI+V)8KEO?{KW2~#0Cu_QSI z9KOyVmSav1D5l{_F2BGUly*T0*P4rgiGhKEkpTieu`z)8qH+uj4CV|B3?Kgg|NrYh zA;7?ZUj>Fd2M3ACU3b5+u;OB>kv$L}^utNaI z^#A|C_Oo;FgA}l{vvcsXGw?$I#6>W9upCGNE)TI0BG1kaGk_m#K1d-yKRXA+d=8K- zKbYW$nGe zJ3l`MI21sNIM^Yk!0ZQwFUU%;W{^Vs@*t%k-=NwL5(OIzXN=0j;tv|Ia0(nm=W6|6P$}u3_5X({XCs;4c^`L+NWfnC3;5-O2fP({4 zVxY@|4F)NIU{v>mYye@19EfD+-~g9Dpxh7j5l9%0sVfgM7N7ltT^task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13sC!G!CG!!etA!DD2sG!3G2G3G!F!A!!FADD!!DD!qGsB2G3B2G3qG"); + Play("sC!G!CG!!etA!DD2sG!3G2G3G!F!A!!FADD!!DD!qGsB2G3B2G3qG"); + Play("eG!2G3qEeAsA2G3qAsEAEAD!E!!DEqFeA!2G"); + Play("3G!2G3qEeAsA2G3qAsEAEAD!E!!DEqFeA!2G"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/partake.CPP b/SparrowOS/Apps/MusicOrgan/Examples/partake.CPP new file mode 100644 index 0000000000000000000000000000000000000000..a1afa99e2ca9cf7b32972c0780293da441c955fd GIT binary patch literal 2194 zcmdPbw@}DPELKP_N-W68OfKf);!+6?&{486v{TYCRN;bxPy>bF{JeAxO|EJ#1qHWa zUAvOR;_Ud;yp;IlBwMxMyp)i{;%wKv6lW)EE(L|$(&EhI_>$Dzf_z&eJyVcSNl~Q& zNN;&YW=^VthGKAXVxD(ur6yQVK_MU~u~I|HIMv0y&^^`F-PNhk(J|H4DYeAe%}Ggz zi&H5iBQY;qA;v%<#vn4kR7WAkz&$?&!cWUDQiw4~j4?ye)Nz6-5)r)~}AZiq1 z43soM?odz&C@l#tD9S8J)ll(tg8LLI>6cpWlbM&QVFBes+%;&NWsc%3Cnu*uw^T>> zLYGu07Z*1d=R#L-Si!vCzd2==4N1EkcP;pASgBl z1_pfw1_pL0&C9^RV8Xz_0Hehj7#NHh7#Lu*0s{ks76StVj8tUS`Mlg zMoTa-Fo-fRFu-U*s631Yxl)FKfk6z4H5eEeKyo1cAb09P?S|2&P|@G&qjs53AyfNa!3qWKvZ7>pPg7+|yrlnhdm3=A+Dl(s-VXJB9eIUkf5LB=z2fh0f)g%j!wCI$|W zouH5dr8!WDg3N)@Am4%f4WmKf0}5#v4T>>kXb6L7P|SkV!)TB^$Xpl=iUCl_gWL&9 z^C0(w90sF#pfLoaLH-4WGK>agE>I}LXi(Avg)$NiN|vDL0vRg>^(Bl3C3BE=5DkiU zkUEg@FdF1-5FbW^oC^weXnqFy5Tp$`gg{C`J^}?Ohz6y6P|Scr3`Q$La}X%tLFoe| z4hnHl41;J{X!>Ac1Nj?d3n*QJ@*j)_IS}M%7!5K7WGYAutask_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + while (!ScanKey) { + Play("2eG3DGDqGetA2G3B2qG3GCE", + " \0 \0 \0 \0 \0 \0 \0 \0 \0It's \0ko\0sher.\n\0"); + Play("2eG3DGDqGetA2G3B2qG3GCE", + " \0 \0 \0 \0 \0 \0 \0 \0 \0It's \0ko\0sher.\n\0"); + Play("C2G3sGFGFDCDCetE2G3CGFAqDeFC"); + Play("qC2G3sGFGFDCDCetE2G3CGFAqDeFC"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/personal.CPP b/SparrowOS/Apps/MusicOrgan/Examples/personal.CPP new file mode 100644 index 0000000..3bb78b4 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/personal.CPP @@ -0,0 +1,22 @@ +//8 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + while (!ScanKey) { + Play("qRsR2GRGeGR3qA2etG3EEqEeDCB2G", + " \0 \0He \0 \0is \0 \0 \0our \0 \0 \0 \0per\0son\0al \0sav\0ior.\n\0"); + Play("qRsRGRGeGR3qA2etG3EEqEeDCB2G", + " \0 \0We \0 \0can \0ne\0 \0ver \0 \0 \0 \0re\0turn \0the \0fav\0or.\n\0"); + Play("3CBBGsF2G3F2G3qBsBBBB2eG3AetBBGeBF", + " \0 \0 \0That's \0 \0O.\0 \0K. \0 \0 \0 \0 \0 \0 \0 \0works \0 \0 \0for \0me.\n\0"); + Play("CBBGsF2G3F2G3qBsBBBB2eG3AetBBGeBF", + " \0 \0 \0That's \0 \0O.\0 \0K. \0 \0 \0 \0 \0 \0It's \0 \0works \0 \0 \0for \0me.\n\0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/population.CPP b/SparrowOS/Apps/MusicOrgan/Examples/population.CPP new file mode 100644 index 0000000..09620c1 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/population.CPP @@ -0,0 +1,20 @@ +//7 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.780; + try { + while (!ScanKey) { + Play("W13eCDBCA2FFF3C2F3E2F3A2F3sEEeD"); + Play("F2FFF3qCeF2F3F2FFF3qCeF2F"); + Play("!3qG!sEAEAqB!etDC!F2qG3D!sGDGDetCRC"); + Play("!qG!sEAEAqB!etDC!F2qG3D!sGDGDetCRC"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/proponent.CPP b/SparrowOS/Apps/MusicOrgan/Examples/proponent.CPP new file mode 100644 index 0000000..0b7d07c --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/proponent.CPP @@ -0,0 +1,16 @@ +//8 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + while (TRUE) { + Play("qCqAqAsEDEDqBqBetGGEs2G3C2G3C"); + Play("qCqAqAsEDEDqBqBetGGEs2G3C2G3C"); + Play("etCD2G3etEE2G3qFqFqAsACACsAFAFetECC", + "In \0my \0 \0corn\0 \0 \0er? \0 \0 \0 \0 \0 \0 \0Hope \0we're \0right.\n\0"); + Play("etCD2G3etEE2G3qFqFqAsACACsAFAFetECC", + "In \0my \0 \0corn\0 \0 \0er? \0 \0 \0 \0 \0 \0 \0Hope \0we're \0right.\n\0"); + } +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/prosper.CPP b/SparrowOS/Apps/MusicOrgan/Examples/prosper.CPP new file mode 100644 index 0000000000000000000000000000000000000000..a03b42c717de05ed32618cfbc7b806e83689d2c8 GIT binary patch literal 5575 zcmdPbw^YbTELKP_N-W68OfKf)($^2qNX=6yEzZnKS4hjr&ri`!%go79$jnnngel|F z*H6t!%}vcK(NU<(FI6Zg%1=s6%BfT+Ps}S(D9Pv2*H6yRD@!dZQOE@G6%rMaGD~t3 z3!ui9WTbNG>!+nAmVk^c$w*bOaSjRc(G9Xw$W6^F)#Kt)P*6|_4$x7uF|x18JTJYXXa@bX+72|@zvCXC<;za%t`f4EI}wV)HBsK(1WN& zQkPm1lwabTSfY`VtOGU?Y(Qq3f`(I0W?r_2fu5-j#8aA@ppZ~-4lXFlEJ+Q>$uBWZ z0_id|(lgLXDNzM^P}ilabBa?bGz}8; zn$}#k;J^;f&r8>UgllkWNl9j2dT~H$afY>mzJ73Os)CA-w~i9Bgp!Vuub&l)hzcl9 zigoQ$iW1A?GfQmMAQ1=(P`6@TJCOh4Q}a^dlap-Kg7Z>9(dwF);_PG%N)WlF#hJ6zK{I(EP+~XCD<66%{9U9ZMCJn7o)gFxvnfdQoC=u|kYNCWuHcN=?nvi^+>IP{2S+;K)%>fVl;` zOF}Zh2IZC(mng&-B&90E7$hph7^D=XCgu`puxqNjTcMMai=$DhyL({})Qce*iFw(@ zAb00hLL66|ky;RAkda!HqNkt`V-T5N3bL#SWMz7OehQLp=uS7LofWlQ3JSFf$%!S& z8IUv#VmapIfZ`mUpz;gADHD_|t+^PO7#J8B86Y5tivi3RwPavm&}3j>c>e$Y{}2Bu z01$H-$TneAKR5*F7=Ea61-6|5RSdslP}Snp50!vW$R?s%29ZZK6Retn9|<7oVL)R4 z|NkGCeiZHe{QNK*K;keq$Q~T}LCTQq2N?j;#Q+vZb^;dt4FCUwm7(efIRPOI_XMVX z1_tcf`S}sr`T1c6VCZMyhd2`5b`(BLH)i-TfQ&{_i_QVr2nsm}2Jw)?<3Az$LBR;o z3MMi1|HtoqH0{{pA32yHjt5x+VZqY@*mCUY2UR~v@Bja>I6=1_xBVb}U<|g20qQFv z^n-T>=D5SaQQ zic$1~(jQn05&j3OgCuMi6CaIXKR(4+HNc4kSm7ta; z$UQ}D&{n1%0|SE+0|UdG|NsAggFBg62C1P!U-cl5A}}^Tp|}TBtU;?FaAN{9C;vxM z53MZ_8bGx&k{w{(2=%Cj!*oFk5|A#ia)kNVl|!5b@e)WATs=W#hfYVTMoD{@4 zF!Ko+4{A6ey9ZQ=;?n~!IU()=hXSnnMRpRXpofGrihIBuupE+NP^f^y2i#tQIS67t z*lFOp4dy7QjWA`PDh8|wSv{zN;|G}v!XQ}&xU<1!H$(_T!Z655Fg8dDKe7g}1e*D% zbsYm~>Op~wY5>UVU~9kx$Ti6F1k{6q2F1OQ_6#_z!RCPoB=>`i2L%yG7>x0&2OIzY zKf*y^qfjga1sU8ru<@X(8YV)VdV~cq^)US~H-c$|Rd5$T)Ims?8d&-V^C41TW5IlE N1b$ge9V1UY0|0@+_U`}y literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/psalm.CPP b/SparrowOS/Apps/MusicOrgan/Examples/psalm.CPP new file mode 100644 index 0000000..05426f7 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/psalm.CPP @@ -0,0 +1,21 @@ +//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/purpose.CPP b/SparrowOS/Apps/MusicOrgan/Examples/purpose.CPP new file mode 100644 index 0000000000000000000000000000000000000000..6cf873ef4af5ac7c0083dc870345787948bbc6b4 GIT binary patch literal 4622 zcmdPbH&@6=ELKP_N-W68OfKf);!+6?&{486v{TYCRN;bwPy>bF{JeAxO|EJ#1qHWa zUAvOR;_Ud;yp;IlBwMxMyp)i{;%wKv6lW)EE(L|$(&EhI_>$Dzf_z&eJyVcSNl~Q& zNN;&YW=^VthGKAXVxD(urKUnP7iU0eNpL|?W=X1sil-CYa!qS4PQTQ0pUk{e4Kol& zNkzrYUB^Ah)zwc$B_v@omi=(5MuyAF(^;W0|_a_7?gtK6=DoZ@*$Eb`Svk+Fk>J>N+3r=oJ72fAX*`$Pb$>1 z+*E}agY?qW;$nnTL9PJ_E5sNi7C{*>$0TRu=NG5y;d79aTcL|{s*_WYduoYmkXxa< zDbVLr2E|aXCg4McK=vtV1}nrEwOk4cwF=3JCCM3F3JMAe&LEa!P7Ww-1?Qz`7-(8^)pBuxQmHi;0}}%S10w?j zDDyLb`BD}P3=I4X3=AMzm4SglG?syZL4$#TfeWJWKMH_|fk_l`{2Z`)2!X1Qfq?-@ z0K{Ye4}(xCkl=riUQ~q)|3QLaF$M;>9(K4OSO$fMq6};a$ZiG(kRpcv><|vvw*L%Z zb3iix|ARPS)o@Fo4g=W$Q4V6kl!06d#vtV&2G|64c6JaOY8e9qJ4gT|!@$4*G8`fa zG7ZE7y9Ht>%r3YxkWMfLi!l5Lvq6Uc2m9~;e~{BbUV=z~odvNEEC96vVJyho|NnzS z5J?$GEyx0pnIHqf?)wk+1UoVxY$+Cf?Ej(WLM(z91u_&FLqtI?V)zdUYmhc}P{e}x zAWwkoM>8H2a-iq}TL97wb3L-r5H?5|$TYC)K?FNH#19}g2!kUR92pP|FcK0ckoWrV>C^|t7WBAVi5(E1XSp$p>_7})xQ22ms!{P{#M?n^Y%w-2@ zfW|TdI0o23i3B8yQzt|L$R+>Tu`6N+xgQiFkW>V63)oFySN;dv!w#ard^7^=XiyY^ z(hd&e*+KaToM`@o-3(6Bpa_9*89;u()WDq+f4&Y)S1~kw>Ml*15a9{*8$WKtc zAmunQR1L@nsA?G4!RCT20GW^ON>I80JD*_sgsQ?&$ADr!s^y>}2I4aGaKlgsF&!A0(N!=a@~)SEWpMh2xu}R*L*_8 zgWDFM!i!Az)7X3hp$`fsNDSZ!A5ccaa3%vd|6&M(48*{oD8Oz$sL{%R+k7Hi53&s8 z1H9%V*KQyUpnQW_WJ6`JQJ}&Y!>^#C8PsqBHJ>pwF>qk96hjqEfPn#v`@!boG=<2p aLD&Feq0%_bhxR{ERpaJigbq|GD3AcEIK9sR literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/reasoning.CPP b/SparrowOS/Apps/MusicOrgan/Examples/reasoning.CPP new file mode 100644 index 0000000..5a3bcdf --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/reasoning.CPP @@ -0,0 +1,22 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + while (!ScanKey) { + Play("3sF2G3F2G3eGDA2GqG3eEDsAAAA2eG3FsFGFG", + "In \0 \0the \0 \0twi\0light \0zone,\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("F2G3F2G3eGDA2GqG3eEDsAAAA2eG3FsFGFG", + "keep \0 \0a \0 \0friend\0ly \0tone.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("C2G3C2G3qFG2GG3sGDGDqGsDCDC", + "Mind \0 \0in \0 \0knots? \0 \0 \0 \0Skip \0 \0de \0 \0bait.\n\0 \0 \0 \0 \0"); + Play("C2G3C2G3qFG2GG3sGDGDqGsDCDC", + "Watch \0 \0those \0 \0thoughts. \0 \0 \0 \0Head \0 \0on \0 \0straight.\n\0 \0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/reliance.CPP b/SparrowOS/Apps/MusicOrgan/Examples/reliance.CPP new file mode 100644 index 0000000..2ebe687 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/reliance.CPP @@ -0,0 +1,39 @@ +//8 has words +U0 Song() +{ + CTask *task; + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + task=PopUpViewStr( + "$$WW+H,1$$$LK-A,"BF:Matthew,6:11"$\n\n" + "I find two things interesting. Jesus asks for " + "the bare minimum... can't ask for less than daily bread. " + "Also, He actually demands it. I find that funny.\n\n" + "$LK-A,"BF:Matthew,10:31"$\n\n" + "I have a funny story. I used to shoot birds with a BB-gun. " + "That passage didn't snd so comforting!! How many sparrows " + "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); + try { + while (!ScanKey) { + Play("3qGsB2G3B2G3eF2G3sGGGGeRFC2G3qFC", + "Where's \0my \0 \0 \0next \0 \0 \0meal!!\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("GsB2G3B2G3eF2G3sGGGGeRFC2G3qFC", + "God, \0we \0 \0 \0had \0 \0a \0deal!!\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("B2GsG3A2G3AeCCsCECEqACsGFGF", + "Day \0old \0bread?\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("qB2GsG3A2G3AeCCsCECEqACsGFGF", + "'Dai\0ly' \0I \0 \0 \0 \0said.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/reposes.CPP b/SparrowOS/Apps/MusicOrgan/Examples/reposes.CPP new file mode 100644 index 0000000..43cc569 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/reposes.CPP @@ -0,0 +1,24 @@ +//9 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 1.820; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13eC2G3DDEDqCeEEGFGFqE", + "Sit\0ting \0 \0 \0on \0the \0fence,\n\0is \0 \0 \0 \0no \0de\0fence.\n\0"); + Play("sFFeGFEFEqDsCCeDCBqBB", + "Is \0this \0seat \0 \0 \0tak\0 \0en?\n\0An\0 \0y\0one \0op\0 \0pose?\n\0"); + Play("etB2GG!3qE!2eG3F!EEetFBA!qFDetF!CC", + "Take \0 \0a \0step.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("B2GG!3qE!2eG3F!EEetFBA!qFDetF!CC", + "Take \0 \0the \0step,\n\0 \0 \0 \0 \0 \0 \0 \0not \0back.\n\0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/restless.CPP b/SparrowOS/Apps/MusicOrgan/Examples/restless.CPP new file mode 100644 index 0000000..f54fc5d --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/restless.CPP @@ -0,0 +1,19 @@ +//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/rifled.CPP b/SparrowOS/Apps/MusicOrgan/Examples/rifled.CPP new file mode 100644 index 0000000..b4f18c9 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/rifled.CPP @@ -0,0 +1,21 @@ +//7 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 1.930; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("M9/8"); + Play("W13qAeCBAq.CsAAqAeCBA2q.G3sBC"); + Play("qAeDCAhBeFsEEeDq.CM4/4"); + Play("sAFAFeF!!2GsG3B2G!!3BqGeA!sAAetEGDE2G!3DeGsGG"); + Play("AFAFeF!!2GsG3B2G!!3BqGeA!sAAetEGDE2G!3DeGsGG"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/risen.CPP b/SparrowOS/Apps/MusicOrgan/Examples/risen.CPP new file mode 100644 index 0000000..3f09ea9 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/risen.CPP @@ -0,0 +1,89 @@ +//9 has graphics + +/* +This is one of the oldest songs. I picked +the random name "risen" and said to God +"Oh, you're ambitious," thinking it was +an epic name. He laughed and gave an +epic song! +*/ + +F64 t0=tMBeat; + +#define WING 6 +#define BODY 2 + +U0 Bird(CDC *dc,F64 wing_é) +{ + CD3I32 p[3]; + dc->color=WHITE; + + p[0].x=0; p[0].y=0; p[0].z=-BODY; + p[1].x=0; p[1].y=0; p[1].z=BODY; + p[2].x=-WING*Cos(wing_é); p[2].y=-WING*Sin(wing_é); p[2].z=0; + GrFillPoly3(dc,3,p); + + p[0].x=0; p[0].y=0; p[0].z=-BODY; + p[1].x=0; p[1].y=0; p[1].z=BODY; + p[2].x=WING*Cos(wing_é); p[2].y=-WING*Sin(wing_é); p[2].z=0; + GrFillPoly3(dc,3,p); + + dc->color=ROPF_DITHER+WHITE<<16+LTGRAY; + GrLine3(dc,0,0,-BODY,0,0,BODY); +} + +#define NUM_BIRDS 7 +#define RANGE 5 + +F64 bx[NUM_BIRDS],by[NUM_BIRDS]; + +U0 DrawIt(CTask *,CDC *dc) +{ + I64 i; + F64 é,dt=tMBeat-t0; + DCAllocDepthBuf(dc); + dc->x=325; + dc->y=95; + dc->z=GR_Z_ALL; + dc->flags|=DCF_TRANSFORMATION; + for (i=0;ir); + GrRotXEqu(dc->r,ã/2); + GrRotZEqu(dc->r,é); + GrSetTranslation(dc->r,50*Cos(é)+bx[i],50*Sin(é)+by[i],30*i/NUM_BIRDS+4*dt); + GrRotXEqu(dc->r,0.35*ã); + Bird(dc,Sin(2*ã*dt+i*2*ã/NUM_BIRDS)); + } +} + +U0 Song() +{ + I64 i; + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->draw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + for (i=0;iRB+T&a7ir7Earj$mEZs! zB^yIKB^^T*hzJ)KM9j!eNyi8-1`{>5Q_?YpiMpAYD3lo3miRiQCYD%paVe*yre)@( zDg<~q2D=(^TI!ji3K?-48t56IiW!5%(A1f58k(W2GX;s6BJA*W^ox(+G%`gP2NH?o zG&bPk3N=u0DM~E&EYWZdNi5D*(9&^saaPbuN!H}5=2B1qIXk5U>TKN-18Xh?g-{Cx zt<1cV)FNvxPKC@g1&x#v8;CbFxfB!>6r6(#iZV-519I|9j5Sh{bwHLyfXPT5105Al zCwM4of{aVeDNaQ(#z<2EWVM0<*b-Z)ah@O>3-WUkOHwtE&43yRi2@ysloDO2Tl6)+ z3?mpHY#AZffvtq9bSp|t)j$Z;Dqy(Om`ImG9S3nXBv~L_YNQEusWHT*Mw(Fjp&rK( zjtGY-C=hn33Gq<_aUa+X7#=ny(!&rlpiu+KF$fQvz&vaU@vsSA59=Bl7-+$x)kG7L zkaSH^#0+!@1_$n>39$j3Sl})~*n%dGk$`K#c_=tPFI@wYWuW<}B(XRfl)QaQi!+mh zQ%g!R^U{lhic3IZxgfFllGNOSd|L%0J!4aFzJiDrmn0@9mXzejrzIwr+G#OhN8e`D}7KUg7rw#=LP>B(qm|3C$au8Gu#MHGb&&-Q2%1qBF zv2`m(;(AG<1rjyp;IlBwMxMycCdIT=P<#oghleGct2h6*LrslN0m2 zQ!8OvO98o_0F|c-3IREZl^ROErurt~hQ@`ij;Ss#&d!BSV1|+o7pH=PQfPrfj6q_I zK~jEMszQu`2Z%^d&5JQ8$*EL`F(}T>%taELMmyCh@n0-*|@=HOw%kzt}LH1>& z7J*F21i3#CWOiCB7gIJC^IiL`SM_+z{HCHVc z7bwqKb1^V6FfcGOK)_)L#Q_pyVhm+qU=U|uUA|Ve*@(|`~UxcG*lf(|Ih#b|HEjIILJzvK9GAr z@-RAxfq~)w|NsBNUI95Bq!{ECW(EcZG{5*WFfa%(FfhPqkefitVKm4tZUzPh7@fet zz#zuJzyR|L$PJ&6`~ouP%m4rXL2dx~$(MnF;T6@GKv>*cm1I!~(X)gu_ zhF|~x|A*;vVPIhR`~UxcHwFfVAOHXVw`E{p0EID3oeu*80~Z4W1B?c#1KEzOkDY;m Q0VEEh?HCvsL_w|x00zLzEdT%j literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/scriptures.CPP b/SparrowOS/Apps/MusicOrgan/Examples/scriptures.CPP new file mode 100644 index 0000000000000000000000000000000000000000..d4d4ca2e23843f4d63fc1d6b71eb4e948b077ed6 GIT binary patch literal 1075 zcmdPbw@}DPELKP_N-W68OfKf)QV9;wQBu+|RN;bvPy>bF{JeAxO|EJ#1qHWaUAvOR z;_Ud;yp;IlBwMxMyp)i{;%wKv6lW)EE(L|$(&EhI_>$Dzf_z&eJyVcSNl~Q&NUxHL zN_e=ohmN6&iV{e?JR>tFRY5~BI5{!TJGD|1tVls2ASba>L&><%)!9AO)w$5g$Y#vrjMRUyVeA;uuLQX$45B{jw%Co?^xL@y=}EUKgl zvPD55ptK~opeVB>RYS$oNk_@X&<^B1sH9(Nxld+Zs)i|)53wEHZohmTg%|@*g&2eK z{5y$fhVLC@3i5Gs!;#YLFr*03im|aw#a(DkLYCBxi7e3~&aq9CLC& zAsd{RqG6zE%~i|A1xg{-TntPM3=E765b%kSfq|KUfq{vQ10?Loz`&rvz`&5qz`&rz zz`&r#0FgF<(jakd1_p*~1_lNYodZ=rg@J)VnSp`9fq{WR6G>ki#1@8W3=9lP3=9lT z3=9nF3=9m05OF5BfDuH11LQ7es3KPe1_lKN1_l@nvRoDFI1oLVfq_Aqfq?;;R)q4U z7#J9u85kJ;{{R0UM#q8t$-uw>qfHqY82#`Kg?Q?b3lGegE}h{ zN>5;5V31>AU`U0A0Z2W_Suh%84g&*&3)B}-E(6FokTOt^GB7Y?FfcHvF)%Ppgen7> rrozC$5Ce5A6AL(EN}zF8&A`CG$-uw>qd@`8&%nR{qd@^J3i1a4Y|P2i literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/service.CPP b/SparrowOS/Apps/MusicOrgan/Examples/service.CPP new file mode 100644 index 0000000..0a31128 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/service.CPP @@ -0,0 +1,35 @@ +//7 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,"Matthew,20:28","BF:Matthew,20:28"$\n" + "$LK,"Mark,10:45","BF:Mark,10:45"$\n" + "$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); + while (!ScanKey) { + "$$FG,GREEN$$Jesus talking...\n$$FG$$"; + Play("M6/8"); + Play("W13eAACADAADACAR", + " \0 \0I \0 \0came \0 \0 \0to \0 \0serve.\n\0 \0 \0"); + Play("AACADAADACAR", + " \0 \0I \0 \0give \0 \0 \0my \0 \0word.\n\0 \0 \0"); + Play("FG!etFEGA!!B!C!DA!C2qG!3sECEC"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/shield.CPP b/SparrowOS/Apps/MusicOrgan/Examples/shield.CPP new file mode 100644 index 0000000000000000000000000000000000000000..e0afa2422069b260a5e5b64784508573411d7312 GIT binary patch literal 2852 zcmdPbH&@6=ELKP_N-W68OfKev0hQnY9VHt>J0%@M6{uLKfkJS8Ub==RS2dS{f^$e> zakhe1Nn&xfHJ5^dTd}Skh#jArmlB_xWUCgOmjY7ZnwR421X7S&TAZ02Uy_43$zW5K#D*Pb4e}AEK5xZOUx+_El5c$NkzD_JR>tFRY5~BI5{!T zJGD|%p_+>`ASba>L&><%#n~m*)!oS@wZzHEtV^E%-rw$TJN(D)jf|w=w3NZ%78Hu^6dNFx11`05wq-o8? z>6cpWlbM%l&BYl|S`u7Plv$Fhq2lQTPj5(SG)zGphyw?^``jE;OB~%?QeE5%9aBqO z+?-Nf+)_*2TwDuXz~ShdpPZeV0uPErg&2dJ%#s*`k{nn-f&w@(B^?xu3NZ%xX>hg4 z`K3j$AWTe$gef>EAt94Wz-n-AqJi}a3bkAc3bhK!i6zMy;2h`-VmapIfKp;`UW$f+ zrZrbB7Z<49u;yZ5VqjokWPpH0Yzz#{3=9mSN(>APS_}*fY77hvzy1>gAO`%0Pz1^U z42<{z)C8KSW5)#;8DRkdwilN&cFNW9@i8zUjK^)>P*=x?0YLu7^e=`oaQNU;2TdRh z*v*55Ehzk8D%tVG8%P~Y&!{>?NQ{OHB=vyH14bglg%P0;CHz1o9>h3?|NlW8ghG%o z%yh5}NPvNX;s1Y#%`g)|!ccV(WzYf_R6;|FRH!VRf+|B&hiW2JAxs&vI;cXh6fyyF g6^c6S3c<=y)nQWzQHG`ttPtc`Bntask_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/Examples/silver.CPP b/SparrowOS/Apps/MusicOrgan/Examples/silver.CPP new file mode 100644 index 0000000..0c815f8 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/silver.CPP @@ -0,0 +1,25 @@ +//8 has words + +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13qF!2GsGG!!GG3GFG!FqAeD!2G!3etDBEsFCFC", + "Love \0 \0 \0 \0 \0 \0ev\0 \0ery \0 \0sec\0ond.\n\0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("qF!2GsGG!!GG3GFG!FqAeD!2G!3etDBEsFCFC", + "World -- \0 \0 \0 \0 \0 \0all \0 \0that \0 \0beck\0ons.\n\0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("qBG!!FsEAEAqEFGeF!C", + " \0Life \0is \0too \0 \0 \0 \0prec\0i\0ous.\n\0 \0 \0"); + Play("qBG!!FsEAEAqEFGeF!C", + " \0Can \0be \0 \0 \0 \0 \0worr\0i\0ous.\n\0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/small.CPP b/SparrowOS/Apps/MusicOrgan/Examples/small.CPP new file mode 100644 index 0000000000000000000000000000000000000000..a30233f5bf8870684477e4fbce7e2b635b13a96e GIT binary patch literal 10740 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 literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/struggles.CPP b/SparrowOS/Apps/MusicOrgan/Examples/struggles.CPP new file mode 100644 index 0000000000000000000000000000000000000000..4e7ddc77882481678a8542be17fef22f529da735 GIT binary patch literal 3081 zcmdPbw^YbTELKP_N-W68OfKdE0hQnY9VHt>J0%@M6)r9}GZTdp1KSc`r_{s}YcA!K z)U?dJR0U^OzYy1;_y|rT0|PFuPy+>*qQr8~5)J2&#NuoPEgfeUX9ca4WKFJWE(HaU z87U=DGjvM~thp2vQj&G;(sB~hi)(CMoZaGsBYk~cLxLhfQtm~;sU^Xcxw)w&MU@&U z$vQC0bPNzoLrsuU=iq{(%#zfAoct1FWR0x^^i=iRJN` zCAMmiAOJbbtytHtB(XR2Pr>C@8t-r|2le7{F0MPHJLtDx8~ftgj1AI@4-=~npBeb%7yxNg->?7x literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/sustain.CPP b/SparrowOS/Apps/MusicOrgan/Examples/sustain.CPP new file mode 100644 index 0000000000000000000000000000000000000000..8a21ddb495eec2cf0567d0b7f0a713d0a8163706 GIT binary patch literal 2832 zcmdPbH&@6=ELKP_N-W68OfKf);!+6?&{486v{TYCRN>;{3N=u0DM~E&EYWZdNi5D* z(9&^saaPbuN!H}5=2B2_Gc!>rDX|SNN-WSQ@zpWVwB}M!NJ-YUOUp@2FRrn5adwLj z33BuccJmMNbqw+J_X8<#FAB;piEu3})c`3i(lOOC(t50KXaUilnWmueSl`ITwxq!MYzL6%#j>ozsC2-A=2+buWa7!y}jg3q}YCy(T+8Tq|&cOvmnI)+KIr$~V8Y#&- z24JY-=>+$trZrbB7sRi@`FZIY5U&NNmXu`Xr56X37H3#1=<5fkrYflTcamiQ%l_3jogik9i1JWUEE#Vot>SXom`w;T%25-3SHclbhtPb z6qGy_Vhj{w3{vv*)Jq`D?7aMP2n!Eco{?IV3X%6z&&h$X(o>;Elw?5Va`W?I3{org zV)9}Pl)&+%pa65=pm(2}OQB1#qobo^s+(JCiIcmdi=$Jji;=r=p$jzdR8-vDb%I=7 zR8%|?%RpYv%U6goNJ~vD(o=v02^#61pQ2t25lhd9238`3pOK%Fq7Y+{pQjLGP?=wf zJ;(?kH6%8}Mw3``6R z42%pA5X8m+=8I}DFff4d*Z=?jzxj_9uwfNN7GwhhJ}`+#H5(r?V8fx34XTWbiwmlp z4U1BkDn34hIzB!=bTgr5feb=bhpG@^8k%{iCL)=Jp$^Gv6lJLH133g{HL|6AVDmsF zD9qCcn^BAdD*+QAqaYY!Ad)h$JdA*-0g*V>fh`BAfMT#hEaqWTholVRRd6_i38-n1 zXu+-yp#;og`~RQH>X3~CxepvFV7rhBHWX{&>JV`ORg6m=$W*8j2!$56NYRU8CYpc2 zdO>D^Fqi`+aHvC%4^SFJ@i0g`I4ZydhzG$`HV;dB0Xq%k4P^h4qz)-cz~;aRhz~#{ z*tq{lNd{91vND8$1k}M5f odH4!IBz5S9ft(0366{QvI&7sWL?KuySS_d|hl$~$v8!PK03|URBme*a literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/teachings.CPP b/SparrowOS/Apps/MusicOrgan/Examples/teachings.CPP new file mode 100644 index 0000000..738fe28 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/teachings.CPP @@ -0,0 +1,35 @@ +//7 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,"Proverbs,11:25","BF:Proverbs,11:25"$\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("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"); + Play("2eG3CD!AqE!!sACACG!EGEqDsAAA!AetCDD", + "Wa\0ter \0thi\0s \0tree.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("2qG!G3eEBqAGeFE!!sF!GFG!etD!BD", + " \0 \0$$FG,RED$$I \0will \0teach \0thee.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("2qG!G3eEBqAGeFE!!sF!GFG!etD!BD", + " \0 \0Wat\0er \0that \0tree.$$FG$$\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/thereupon.CPP b/SparrowOS/Apps/MusicOrgan/Examples/thereupon.CPP new file mode 100644 index 0000000..94ab3da --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/thereupon.CPP @@ -0,0 +1,76 @@ +//7 has graphics + +#define X 330 +#define Y 15 + +#define NUM_BEAMS 256 + +F64 beams_r[NUM_BEAMS],beams_é[NUM_BEAMS]; + +U0 DrawIt(CTask *,CDC *dc) +{ + I64 i; + F64 r,x1,y1,x2,y2; + dc->color=YELLOW; + GrCircle(dc,X,Y,10); + GrFloodFill(dc,X,Y,10); + dc->color=BROWN; + GrCircle(dc,X,Y,10); + dc->color=YELLOW; + for (i=0;idraw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + for (i=0;iwin_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); + "$$BD+H,LTCYAN$$$$FD+H,BLACK$$"; + while (!ScanKey) { + Play("W12qG3eCB2hGqG3eCB2qG3A", + "Umm... \0God?\n\0 \0 \0Let \0Your \0 \0 \0 \0"); + Play("CeBA2G3DqEeDCBA2qG3A", + "face \0shine \0on \0down\n\0on \0us, \0Your \0 \0luck\0y \0 \0peo\0"); + Play("eBA2h.G3qE!!CAF", + " \0ple.\n\0 \0Fath\0e\0r \0a\0"); + Play("FD!A!eEDqE!!CAF", + "bove,\n\0 \0 \0I \0 \0feel \0 \0 \0Your \0"); + Play("FD!A!eED", + "love.\n\0 \0 \0 \0 \0"); + } + } catch + CatchAll; + SettingsPop; +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/thither.CPP b/SparrowOS/Apps/MusicOrgan/Examples/thither.CPP new file mode 100644 index 0000000..ee38d04 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/thither.CPP @@ -0,0 +1,24 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13sC#C#D#D#C#C#CCC#C#D#D#C#C#CCEEDDC#C#DDEEDDC#C#DD", + "Still \0 \0 \0 \0there.\n\0 \0 \0 \0Still \0 \0 \0 \0there.\n\0 \0 \0 \0Not \0 \0 \0 \0fair.\n\0 \0 \0 \0Not \0 \0 \0 \0fair.\n\0 \0 \0 \0"); + Play("C#C#D#D#C#C#CCC#C#D#D#C#C#CCEEDDC#C#DDEEDDC#C#DD", + "Un\0 \0 \0 \0aware!\n\0 \0 \0 \0Un\0 \0 \0 \0aware!\n\0 \0 \0 \0Every\0 \0 \0 \0where!\n\0 \0 \0 \0Every\0 \0 \0 \0where!\n\0 \0 \0 \0"); + Play("eB!!DetFGAeF!EBE!etE!FEqCeFEDA", + "$$FG,RED$$Running \0 \0 \0a\0way \0 \0 \0 \0 \0 \0from \0the \0Lord \0won't \0 \0work.\n\0 \0"); + Play("B!!DetFGAeF!EBE!etE!FEqCeFEDA", + "Running \0 \0 \0a\0way \0 \0 \0 \0 \0 \0from \0the \0Lord \0won't \0 \0work.$$FG$$\n\0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/twins.CPP b/SparrowOS/Apps/MusicOrgan/Examples/twins.CPP new file mode 100644 index 0000000..00b7f02 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/twins.CPP @@ -0,0 +1,25 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.260; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + "$$FG,GREEN$$As I look back on my sinful past...$$FG$$\n"; + Play("W13qCAABAeAECEqB", + "Who \0was \0that \0per\0son? \0 \0It \0wasn't \0 \0me?\n\0"); + Play("CAABAeAECEqB", + "Who \0was \0that \0per\0son? \0 \0It \0wasn't \0 \0me?\n\0"); + Play("etDEDqFetBEDeAFGEqFDE", + "Sad \0to \0say, \0 \0I \0guess \0 \0it \0 \0was \0 \0 \0me.\n\0 \0"); + Play("etDEDqFetBEDeAFGEqFDE", + "Sad \0to \0say, \0 \0I \0guess \0 \0it \0 \0was \0 \0 \0me.\n\0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/valued.CPP b/SparrowOS/Apps/MusicOrgan/Examples/valued.CPP new file mode 100644 index 0000000000000000000000000000000000000000..ed5406640866c754da8d27fe11e852d569f6edd9 GIT binary patch literal 1509 zcmdPbw^YbTELKP_N-W68OfKf);tDlTa4AYG_bkzH4oNJ|R?yOMc5znFN=eq_s^(Hq zC@x7X$xK#oGc!@hNh~gjFR?B0)hQ{lHL&JVP$((Uw$&){)rH7tYB?qqYXoQJX_WYC zYJ%h;;)qXknmTQle8*qGfEL zW1yqr>7=7%V`!(OW2mBIpl4*N1va@vQ`LmWzu^B{%@C2JDmI{JeAxh{JNmk~Uf+!>>U>K5Lo(FNdLX1IretwD`!ub$!kY)u11%+BJ1%+CL3us7#Seo5fcNLFDlHyz#zxK!0`S5|Nrm) zlMNWL>tw_!j$MKghXzI*68OZi*#J_HMI0=Q#cGf^KW=dhlR)YjF*SgN8Tm0JAmW%3 zaB+TA8=&GCHbBMs(E|w~juty$2@K``|HH)5ltUyioc|vpjwO7c5*Wq|fB*vk+aL^D literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/vengeance.CPP b/SparrowOS/Apps/MusicOrgan/Examples/vengeance.CPP new file mode 100644 index 0000000000000000000000000000000000000000..04a55b93e1cf5b242194f1edb39b0a9831c348f1 GIT binary patch literal 6567 zcmdPbw@}DPELKP_N-W68OfKd^00j_G2@cRvvN5z%(lJy4OSzeuD3lo38d!62g&HWh z6eX5>mS{MKBo=2YXz4h+I4fwSBx`b2b15i*RHl^JmiRiQCYI=y80ebm8CY{EC}gH7 zXp|TzsHrI!*x06&*cj>=Xexj-C@7>P>)NH|B&HYF*t$5o#fJnr`USiB2l+aNc>4Q+ z^eQO07X{^)M7b80YJe0M>6q#nXlbOB=o;vmYHA`Wi9jeZ)HBsJ(lgLXDS;~pPAv(_ zFY!$*(MUHL+^e8~P?D3HhEM_GpercJFMyknlwVSkpQ~+*t_C7*i!ik$zd+m2 z2%-$+M3>Z}%(B#!u*96=(1Mi2l2l~(mS<$udM(TmB8F;IdA z2DMBnF|dVXHHfER#umC1x)r(?Iv2VYI;WPnxI3mgIzrv15MuyG!6k`#DGD(LNr}nX zXwIXh!QcWxL7|pQL7`S5Ik6-;g9}vZID=S@IXNJ&z%xdEfi)<{fwG%57XuRm0|O%i z1l$r~0P{r^85kH^85kH?7#J89{U-uI^fM4ti9;O+x<>5kIEYopj;;`^c^vFSt3y|a z%{&fvb_@e?szWmni#o7z=mz3ehiV|EI;e4I1`bhmAkUygF%Ex>s)Ga!QuYD`2|I`w z4L=6t@(L6rqu~NcE~DXsUXqW7%OKAmVCRAJFG@v-5pSdFz;(fBxPTgKqv>Td9gL;} zP=PR-4#4REOdvOmafAzX)Nx<~pxF5TAH`k{C=Z!}Iua@b(KO=J5gC5a(BXpsXvjeX zQNj-*!~s#pH>wV$fAoL&gbTsize-LEN) start=size-LEN; + ch=bible[start+LEN-1]; + bible[start+LEN-1]=0; + "" bible+start; + bible[start+LEN-1]=ch; +} + +U0 Song() +{ + U8 *bible_filename=Define("ST_BIBLE_FILE"); + Fs->task_end_cb=&TaskEndCB; + music_tempo=2.5; + bible=FileRead(bible_filename,&size); + "$$WW+H,1$$"; + try { + while (!ScanKey) { + PutVerse; + Play("3qAeABCBqCetABBqCetAAREE2G"); + Play("3qAeABCBqCetABBqCetAAREE2G"); + Play("3eDRRRqGReRRGGGGqE"); + Play("eDRRRqGReRRGGGGqE"); + } + } catch + CatchAll; + Snd(0); + Free(bible); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/villa.CPP b/SparrowOS/Apps/MusicOrgan/Examples/villa.CPP new file mode 100644 index 0000000..8fe51a7 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/villa.CPP @@ -0,0 +1,22 @@ +//8 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W14etEEEqBetDDqtDqBetCCqtCqBhB"); + Play("etEEEqBetDDqtDqBetCCqtCqBhB"); + Play("etABCqDetBCCqDetDCBqAhA"); + Play("etABCqDetBCCqDetDCBqAhA"); + Play("!qAetC!!AEsG!!CGCetBC3G4ADAqAGetDAD"); + Play("!qAetC!!AEsG!!CGCetBC3G4ADAqAGetDAD"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/wisdom.CPP b/SparrowOS/Apps/MusicOrgan/Examples/wisdom.CPP new file mode 100644 index 0000000000000000000000000000000000000000..c20d7622e827782d2ecb72ad286edfd7914713f4 GIT binary patch literal 1671 zcmdPbH&@6=ELKP_N-W68OfKf);!+6?&{486v{TYCRDtn~?38qjRJg#v&CEoh#K6`- z&%m0CE7U;2r6{r7vqZx=B(XSKK}*Nk#aTfsC0UcJnoB{!Ik=!Gvm`YjC%?p4BPChK z$Uw(J$3REL(+O^crZty>LS~wRMu~x@0!R;5T}CEwZ4kGBwJ9hB=cQ<9l=$kF7-(u4 z8W=!D!N&R8l^AFn=oy)6aw&iT%+U%8wOqAerw8ZfrE5T38k|~El9`uY98g-EVXdIA zADo)1pyK1Lql7G>q@(2PXN4l7!lj_#R;+86Qj}O8pIKt71_=(3r$E9biN)FRsd*{! z$w{_q!Feg5KyuAXadxui;!;q^EiKMWjxR~gEy%Yu(lZ5VDk-XjhC+EpW=^VthGKAX zVxD(uB`k0h6asP*D>amiQ=OcP9o-$>Qym>sOWYkDi=CXDoKl@#3SClN9hG#rI29C> z{PN3n6k-fK6=DpEOJfWaVho^UQK|x%3n9z%^VCZeVhmF9V+^23A;zF2BM~H+7-Nv0 zn3<;-lLynGqzQICC{RlbY)gDW?gnun4jWKsft&#gA)`Wfx}=b1R{AW^s%`Nn&!5^g&BegPzyQV!3=9m`P&N}E z2S`|zfq{XMfq_Ahfq_8)i3W)aGB7Z}Xe9;)1`r0D1JVF8%ZdqNE)xU$5e5bYsL9c> zx3}d^Qdz3uxoPXR*xS!NCz*H#iD(+$Fvz*F?d;avc`BZhQe0X+7pdIbmV0~KSv&tr zDkoVS+H!Ai%l&*U_ifH?Gyi!ilT|z?fkd)nZ*TiMU&V8hil^`qimRa~lfvz7YuDw@R`HzVIf>;4*l>{EXSv(Xe^&9F zv_z!y(6-#$X6tY7Ia``LS>-&)z9oxNBn)z-K~{jQe*G*rF8BWz&rcw`MAdv2<=o!0 zOAX`_u!)@`}-)IBGu zoK*4LmODFrwhhdvkVz^h&2m7_+jj1D&h2lWvp_a_PEyef@|>h13G&Eo72io9y_#yC z8$fQm`)roFr;+ERgqz!PvvVgu2YHj{#@nnH96(>w!F=+Z>jlDQd(>fG)V;{zNhr_w!C}KuCBEO1&fNOAt%K9KA?C9`D?O@ O=Z39ct*)E$GXMa(G#{$~ literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Examples/witherto.CPP b/SparrowOS/Apps/MusicOrgan/Examples/witherto.CPP new file mode 100644 index 0000000..4f547f7 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/witherto.CPP @@ -0,0 +1,35 @@ +//7 has words +U0 Song() +{ + CTask *task; + Fs->task_end_cb=&SndTaskEndCB; + music_tempo=2.5; + try { + task=PopUpViewStr( + "$LK,"Mark,11:12","BF:Mark,11:12"$\n" + "$LK,"Matthew,3:10","BF:Matthew,3:10"$\n" + "$LK,"Matthew,25:18","BF:Matthew,25:18"$\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("2qG3sFEFEqDBEetCB2G3qFsBDBD", + " \0Damn \0 \0 \0 \0 \0 \0fig \0 \0 \0 \0tree.\n\0 \0 \0 \0 \0"); + Play("2qG3sFEFEqDBEetCB2G3qFsBDBD", + " \0On\0ly \0 \0 \0good \0 \0for \0a \0 \0 \0pee.\n\0 \0 \0 \0 \0"); + Play("qC2G3eFC2G3EqACDA", + "Has \0no \0fruit.\n\0 \0 \0 \0 \0 \0 \0 \0"); + Play("C2G3eFC2G3EqACDA", + "Kill \0the \0root.\n\0 \0 \0 \0 \0 \0 \0 \0"); + "$$FG,GREEN$$Be sure to bear 'fruit'.$$FG$$\n\n"; + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/worship.CPP b/SparrowOS/Apps/MusicOrgan/Examples/worship.CPP new file mode 100644 index 0000000..2ef0800 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/worship.CPP @@ -0,0 +1,20 @@ +//7 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13qEDeCC!etEAAqEetCDCA!!GFqG"); + Play("EDeCC!etEAAqEetCDCA!!GFqG"); + Play("eGEetFDAqF!sGF!GF!G!!FG!F!etBGFqGeDE"); + Play("GEetFDAqF!sGF!GF!G!!FG!F!etBGFqGeDE"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/you.CPP b/SparrowOS/Apps/MusicOrgan/Examples/you.CPP new file mode 100644 index 0000000..e0e1910 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Examples/you.CPP @@ -0,0 +1,26 @@ +//8 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.802; + try { + while (!ScanKey) { + DocClear; + Play("W13qDsCCCCeBBCCqDsCCCCeBBCC", + "I'm \0 \0 \0 \0 \0on \0my \0way.\n\0 \0Got \0a \0 \0 \0 \0bus\0y \0day.\n\0 \0"); + Play("sBBBBeAAsBA2G3AqAsBBBBeAAsBA2G3AqA", + "Woe, \0 \0 \0 \0I \0for\0got \0 \0to \0 \0pray.\n\0What's \0 \0 \0 \0God \0 \0have \0 \0to \0 \0say?\n\0"); + "$$FG,GREEN$$God talking...\n$$FG$$"; + Play("AeB2G3GGqE2etG3F!B!eFGqFeEC", + "$$FG,RED$$Oh, \0 \0 \0hi-\0a \0you!\n\0What\0ch\0u \0been \0 \0do\0ing?\n\0 \0"); + Play("qAeB2G3GGqE2etG3F!B!eFGqFeEC", + "Oh, \0 \0 \0hi-\0a \0you!\n\0What\0ch\0u \0been \0 \0do\0ing?$$FG$$\n\0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/zip.CPP b/SparrowOS/Apps/MusicOrgan/Examples/zip.CPP new file mode 100644 index 0000000000000000000000000000000000000000..593d501c96a0a77d4049a2f647d5eb57ef6a0780 GIT binary patch literal 2508 zcmdPbw@}DPELKP_N-W68OfKf);!+6?&{486v{TYCRN;aEh>($;l8zBX$j!_|p~S$p z#Mdb`vBa8-E7U;2r6{r7vqZx=B(XSKK}*Nk#aTfsC0UcJnoB_eq&%ers$93kz?w@z zA=E-aD>JVowFtz?OjFQEDY3IPG}ANCQ~+sFPykEXItLdNWtOCRf>ajd=OmV-YN&WR z!5ydr;Xs_G}R~#kzJN^W#(VQsR@7Y}JDE zQb0lKnwR421hzD{v^X<4z9cobAm7$V&lIGoq^J@aXdtb&0r>@?1!0+~<-sLI8e9qr z3JOXpKHj>HI!aD%Rslu%WvN9;#X5!tR)&^JDlvIVxRsb%84*xnZe?TvQNoGM5+h41 zLqn)MG?+oY2~W%{(Ezy>Dh6We+LdSK#TR9!XO!52LIKVL`A|Utp(H0Y4WR?RbO%za3625< zh4PHdoKyu3#o*+`Jnz&>SejKp&K015S5OGZNvzaRGA?v?HA;0ib}DpFEpc&jNp*2G z0x{ib?6lN!g&2eK{Gya%y_mch0|nej2^x|x z3+ZiNs;gtMo2#2^p_?PfgRYK_M()Oi&W=#ex#j2Q6hoY!otc-C2w@_VC5buNaDHM= zjzWwP-P&KKv;xG2jme@ zq<}02Ng>l9zk>K68l(>77-Slx9vWP{(7*@z6%+{|KFAM33=9k)8j?gn?q^_Nz>;J@ zajXLJC+(9A$QRI*2#Ot0c!6RIlr%t|1JNKCgJ_T(hz9wJ0g+@to&%)~kmo=&Gz>t= z1mt&+ZV($rgMts5&_Jp|5d#WU7>%A}K#l-K8c6$~Ofn$vgZu~b1dIlS6o?OsM;HzA h2#61(LHa-e01Yk>SB`;!0ThZL8pH<$A4oem$N)`|4j%vj literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/MusicOrgan/Help.TXT b/SparrowOS/Apps/MusicOrgan/Help.TXT new file mode 100644 index 0000000..2024a1f --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Help.TXT @@ -0,0 +1,26 @@ +$WW,1$$FG,5$$TX+CX,"Music Organ Help"$$FG$ + +* The keyboard can be used as an organ by typing letter keys or clicking the mouse on the keyboard diagram$FG$. You can "record" notes by pressing the red button and typing letters. They will appear on the musical staff. You can edit and save them. + +* The clipboard can be used to cut and paste. + +* $FG,2$MusicOrgan$FG$ uses $FG,2$C+$FG$ files as it's fmt! See $LK,"::/SparrowOS/Apps/MusicOrgan/Examples/personal.CPP.Z","FI:::/SparrowOS/Apps/MusicOrgan/Examples/personal.CPP.Z"$. It does not fully parse them when loading back in, so changes made outside $FG,2$MusicOrgan$FG$ can be lost. + +* The first line of the $FG,2$C+$FG$ files has a comment with a category recognized by $LK,"JukeBox","FF:::/SparrowOS/Apps/MusicOrgan/JukeBox.CPP.Z,JukeBox"$(). The categories are $FG,2$"no nothing"$FG$, $FG,2$"has words"$FG$, $FG,2$"has graphics"$FG$, or $FG,2$"special"$FG$. The third character in the comment is a digit rating number. + +* You can take the $LK,"Play","MN:Play"$() statements out of a song file and place them in your programs. You can also add a song to a document with $FG,2$$FG$, but you should do it after pressing $FG,2$$FG$ because the clipboard-insert in $FG,2$$FG$ is screwy. See this $SO,"","2qG3ECB2eGG3qCeFDsBGBG2qG3ECB2eGG3qCeFDsBGBGqEeEFqEB2eG3FetCAGqFCEeEFqEB2eG3FetCAGqFC"$ after pressing $FG,2$$FG$, now. + +* You can call $LK,"JukeBox","FF:::/SparrowOS/Apps/MusicOrgan/JukeBox.CPP.Z,JukeBox"$("HOME/MusicOrgan"); to play your songs. + +* To create a $FG,2$.SND$FG$ file which can be exported and played under Windows, set the $FG,2$Bool$FG$ $LK,"snd_record","MN:snd_record"$ to $FG,2$TRUE$FG$, play music, and set it to $FG,2$FALSE$FG$. Then, call $LK,"SndFileCreate","MN:SndFileCreate"$(). You might wish to make a $FG,2$$FG$ to toggle this system level recording feat. See $LK,"Snd","MN:Snd"$(). Add this code to your $LK,"HOME/Adam3dKeyPlugIns.CPP.Z","FI:HOME/Adam3dKeyPlugIns.CPP.Z"$ file. + + +$FG,5$U0 CtrlAltR(I64) +{ + snd_record=!snd_record; +} +SetCtrlAltLetCB('R',&CtrlAltR,"Toggle snd_record");$FG$ + + +* The note accent feat only works when exporting songs. When calling $LK,"SndFileCreate","MN:SndFileCreate"$() you can set a waveform. The PC speaker is $LK,"WF_SQUARE","MN:WF_SQUARE"$. You can select reverb and averaging, also. + diff --git a/SparrowOS/Apps/MusicOrgan/Install.CPP b/SparrowOS/Apps/MusicOrgan/Install.CPP new file mode 100644 index 0000000..3f80b4b --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Install.CPP @@ -0,0 +1 @@ +MkDir("HOME/MusicOrgan"); diff --git a/SparrowOS/Apps/MusicOrgan/JukeBox.CPP b/SparrowOS/Apps/MusicOrgan/JukeBox.CPP new file mode 100644 index 0000000..7b5261c --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/JukeBox.CPP @@ -0,0 +1,148 @@ +CTask *SingleSong(U8 *msg,U8 *name) +{ + Bool old_preempt=Preempt(OFF); + CTask *task=Spawn(&ServantUserCmdLine,NULL,name,Fs); + LBts(&task->task_flags,TASKf_LOCK_TITLE); + StrCpy(task->task_title,name); + TaskRqstQue(task,Fs,";",1<win_top=2; +task->win_bottom=task->win_top+8; + task->win_right=task->win_left+50; + TaskDerivedValsUpdate(task); + Preempt(old_preempt); + TaskRqstQue(task,NULL,msg,1<max_entries=100; + return task; +} + +#define JB_RUN_LEVEL_NULL 0 +#define JB_RUN_LEVEL_ONE 1 +#define JB_RUN_LEVEL_TWO 2 + +Bool JBPutKey(CDoc *doc,U8 *,I64 ch,I64 sc) +{ //ch=ASCII; sc=scancode + CDocEntry *doc_ce=doc->cur_entry,*doc_e; + CDirEntry *tempm; + CDoc *s; + if (!(sc&(SCF_ALT|SCF_CTRL|SCF_SHIFT)) + && doc_ce->type_u8==DOCT_MENU_VAL && doc_ce->left_exp>=0) { + tempm=doc_ce->left_exp; + if (sc.u8[0]==SC_DELETE ) { + Beep; + Silent(ON); + Del(tempm->full_name); + Silent(OFF); + } else if ('0'<=ch<='9') { + if (StrLen(doc_ce->tag)>1) + doc_ce->tag[0]=ch; + s=DocRead(tempm->full_name); + doc_e=s->root.next; + while (doc_e!=s && doc_e->type_u8!=DOCT_TEXT) + doc_e=doc_e->next; + if (doc_e!=s && doc_e->type_u8==DOCT_TEXT && StrLen(doc_e->tag)>=3) { + doc_e->tag[2]=ch; + DocWrite(s); + } + DocDel(s); + return TRUE; + } else if (ch==CH_SPACE||ch==CH_ESC) + tempm->user_data++; //JB_RUN_LEVEL++ + // is followed by --> JB_RUN_LEVEL_TWO + //Actual just exits --> JB_RUN_LEVEL_ONE + } + return FALSE; +} + +public U0 JukeBox(U8 *dirname=NULL,U8 **_filename=NULL) +{ +//_filename is for using this as a song-chooser program. + I64 i=0,rating; + U8 *st,*st2; + CDirEntry *tempm,*tempm1; + CDoc *doc=DocNew,*s; + CDocEntry *doc_e; + StrCpy(doc->desc,"JukeBox"); + CTask *task=NULL; + if (_filename) + *_filename=NULL; + if (!dirname) + dirname=StrNew("HOME/MusicOrgan"); + else + dirname=StrNew(dirname); + st=MSPrintF("%s/*.CPP.Z",dirname); + tempm=FilesFind(st); + Free(st); + Free(dirname); + doc->user_put_key=&JBPutKey; + tempm1=tempm; + DocPutS(doc, + "Key: $$FG,GREEN$$Graphics $$FG,BLUE$$Words $$FG,RED$$No Nothing " + "$$FG,BLACK$$Incomplete $$FG,CYAN$$Special$$FG$$\n\n" + "$$FG,GREEN$$$$FG$$ to delete a song.\n" + "Press a number to rate a song.\n"); + while (tempm1) { + if (!(i++%5)) + DocPutS(doc,"\n"); + if (FileOcc("Play(",tempm1->full_name,"")) { + st=StrNew(tempm1->name); + FileExtRem(st); + s=DocRead(tempm1->full_name); + doc_e=s->root.next; + while (doc_e!=s && doc_e->type_u8!=DOCT_TEXT) + doc_e=doc_e->next; + rating='0'; + if (doc_e!=s && doc_e->type_u8==DOCT_TEXT) { + if ('0'<=doc_e->tag[2]<='9') + rating=doc_e->tag[2]; + if (StrStr(doc_e->tag,"incomplete")) + DocPutS(doc,"$$FM,BLACK$$"); + else if (StrStr(doc_e->tag,"has graphics")) + DocPutS(doc,"$$FM,GREEN$$"); + else if (StrStr(doc_e->tag,"has words")) + DocPutS(doc,"$$FM,BLUE$$"); + else if (StrStr(doc_e->tag,"special")) + DocPutS(doc,"$$FM,CYAN$$"); + else if (StrStr(doc_e->tag,"no nothing")) { + DocPutS(doc,"$$FM,RED$$"); + if (FileOcc("\\0",tempm1->full_name,"")) { + s->cur_entry=doc_e->next; + s->cur_data_col=0; + DocEntryDel(s,doc_e); + DocPutS(s,"//0 has words\n"); + DocWrite(s); + } + } + DocPrintF(doc,"$$MU-UL,\"%c%-8ts\",%d$$ ",rating,st,tempm1); + tempm1->user_data=JB_RUN_LEVEL_NULL; + } + DocDel(s); + Free(st); + } + tempm1=tempm1->next; + } + DocPrintF(doc,"\n$$FM,CYAN$$$$MU-UL,\"DONE\",%d$$\n",DOCM_CANCEL); + while (TRUE) { + if (_filename) + tempm1=PopUpMenu(doc,DOF_INTERCEPT_TASK_END); + else + tempm1=PopUpMenu(doc); + if (task) + Kill(task); + if (tempm1<0) break; + st2=StrNew(tempm1->name); + if (_filename) { + Free(*_filename); + *_filename=StrNew(tempm1->full_name); + } + if (tempm1->user_data==JB_RUN_LEVEL_ONE) break; // + tempm1->user_data=JB_RUN_LEVEL_NULL; //Rst from + FileExtRem(st2); + st=MSPrintF("ExeFile(\"%s\");",tempm1->full_name); + MusicSettingsRst; + task=SingleSong(st,st2); + Free(st2); + Free(st); + } + DocDel(doc); + CDirListDel(tempm); +} diff --git a/SparrowOS/Apps/MusicOrgan/Load.CPP b/SparrowOS/Apps/MusicOrgan/Load.CPP new file mode 100644 index 0000000..428f80e --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Load.CPP @@ -0,0 +1,7 @@ +#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/MakeSong.CPP b/SparrowOS/Apps/MusicOrgan/MakeSong.CPP new file mode 100644 index 0000000..9765f1f --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/MakeSong.CPP @@ -0,0 +1,155 @@ +class MakeSongSettings +{ + Bool simple_rhythms fmtstr "$$CB,\"Simple Rhythms\"$$\n"; + Bool rests fmtstr "$$CB,\"Rests\"$$\n"; + Bool change_waveforms fmtstr "$$CB,\"Change Waveforms\"$$\n"; + Bool six_eight fmtstr "$$CB,\"Six Eight\"$$\n"; + I64 octave fmtstr "$$DA-T,32,\"Octave:%d\"$$\n"; +}; + +U0 InsNote(MakeSongSettings *mss,U8 *buf,I64 k,I64 *j) +{ //k is a random note nibble + I64 a=TimerPickedNibble; //accent + if (!a) { + buf[*j]='!'; + *j+=1; + } + if (a<4) { + buf[*j]='!'; + *j+=1; + } + if (!k && mss->rests) { + buf[*j]='R'; + *j+=1; + } else { + k/=2; + if (!k) { + if (music_octave) { + buf[*j]=music_octave-1+'0'; + *j+=1; + buf[*j]='G'; + *j+=1; + buf[*j]=music_octave+'0'; + *j+=1; + } else { + buf[*j]='G'; + *j+=1; + } + } else { + buf[*j]=k-1+'A'; + *j+=1; + } + } +} + +#define DUR_QUARTER 0 +#define DUR_EIGHTH 1 +#define DUR_TRIPLET 2 +#define DUR_SIXTEENTH 3 + +U8 simple_songs [5]={DUR_EIGHTH,DUR_QUARTER,DUR_QUARTER,DUR_QUARTER,DUR_QUARTER}; +U8 complex_songs[6]={DUR_EIGHTH,DUR_TRIPLET,DUR_SIXTEENTH,DUR_QUARTER,DUR_QUARTER,DUR_QUARTER}; + +U8 *MakeSong() +{ + MakeSongSettings mss; + U8 *buf; + I64 i,j=0,k,n,k2,duration,last_duration=-1, + wf[2],w=0,len; + + mss.simple_rhythms=FALSE; + mss.rests=FALSE; + mss.change_waveforms=FALSE; + mss.octave=music_octave; + + if (!PopUpForm(&mss,"MakeSongSettings")) + return NULL; + + buf=CAlloc(256); + music_octave=LimitI64(mss.octave,0,6); + progress4=0; + if (mss.six_eight) + progress4_max=6; + else + progress4_max=8; + + n=TimerPickedNi$WW,0$bble/2; + if (WF_NULLdraw_it() for the staff region, drawn every refresh. + + 3) The gr_dc2 persistent layer for the note chooser, meter chooser. The persistent layer is used during drag-and-drop. + + 4) The Fs->next_ctrl for the tempo/stacatto sliders. + + +See $LK,"GrUpdateWins","MN:GrUpdateWins"$() and $LK,"GrUpdateScreen","MN:GrUpdateScreen"$(). +$WW,1$ + +$WW,0$*/ + +#define NOTE_REST MIN_I64 +#define OCTAVE_REST MIN_I64 + +#define OT_ROOT 0 +#define OT_NOTE 1 +#define OT_METER 2 + + +#define Of_SELECTED 0 +#define Of_SHARP 1 +#define Of_FLAT 2 +#define Of_TIE 3 + +#define OF_SELECTED 1 +#define OF_SHARP 2 +#define OF_FLAT 4 +#define OF_TIE 8 + +class OrgNote +{ + OrgNote *next,*last; + I64 x,y; + U8 *word; + I64 type,flags; + union { + I64 note; + I64 meter_top; + }; + union { + I64 octave; + I64 meter_bottom; + } + I64 duration,accent,width,waveform; + U8 ascii[32]; +}; + +//Tool types +#define OTT_PTR_TOOL 0 +#define OTT_BOX_TOOL 1 + +class OrgCtrl +{ + OrgNote root; + OrgNote clipboard; + CMenuEntry *incomplete_entry,*record_entry; + I64 screen_x, + tool; + OrgNote *cur_note; + CDC *dc2; + Bool playing; +} oc; + +U8 *org_note_list="A\0A#\0B\0C\0C#\0D\0D#\0E\0F\0F#\0G\0G#\0"; +U8 org_note_map[12]={6,6,5,4,4,3,3,2,1,1,0,0}; +U8 org_note_inverse_map[7]={10,8,7,5,3,2,0}; + + + $SP,"<1>",1$ + + + + $SP,"<2>",2$ + + + + $SP,"<3>",3$ + + + + $SP,"<4>",4$ + + + + $SP,"<5>",5$ + + + $SP,"<6>",6$ + + + $SP,"<7>",7$ + + + $SP,"<8>",8$ + + + $SP,"<9>",9$ + + + $SP,"<10>",10$ + + + $SP,"<11>",11$ + + + + + + + + $SP,"<12>",12$ + + + + + + + $SP,"<13>",13$ + + + $SP,"<14>",14$ + + + $SP,"<15>",15$ + + + $SP,"<16>",16$ + + + $SP,"<17>",17$ + + + + + $SP,"<18>",18$ + +#define ORG_NOTE_SPACING 9 +#define ORG_NUM_DURATIONS 12 + +F64 org_durations[ORG_NUM_DURATIONS+1]={ +2*.25/3,.25,2*.5/3,.5,2.0/3.0,0.5*1.5,1.0,1.5,2.0,3.0,4.0,6.0,1000000.0}; +U8 *org_duration_list="st\0s\0et\0e\0qt\0e.\0q\0q.\0h\0h.\0w\0w.\0"; +U8 *org_duration_imgs[ORG_NUM_DURATIONS]={$IB,"<1>",1$,$IB,"<1>",1$,$IB,"<2>",2$, + $IB,"<2>",2$,$IB,"<3>",3$,$IB,"<2>",2$,$IB,"<3>",3$,$IB,"<3>",3$, + $IB,"<4>",4$,$IB,"<4>",4$,$IB,"<5>",5$,$IB,"<5>",5$}; +Bool org_triplet_durations[ORG_NUM_DURATIONS]={TRUE,FALSE,TRUE, + FALSE,TRUE,FALSE,FALSE,FALSE, + FALSE,FALSE,FALSE,FALSE}; + +Bool OrgHasWords(U8 *st) +{ + if (st && *st && (StrLen(st)>1 || *st!=CH_SPACE && *st!=CH_SHIFT_SPACE)) + return TRUE; + else + return FALSE; +} + +Bool OrgIsDotted(I64 duration) +{ + U8 *st=ListEntryPt(duration,org_duration_list); + if (st[1]=='.') + return TRUE; + else + return FALSE; +} + +U0 OrgSetWidth(OrgNote *tempo) +{ + if (tempo->type==OT_METER) + tempo->width=12; + else { + tempo->width=ORG_NOTE_SPACING; + if (OrgIsDotted(tempo->duration)) + tempo->width+=ORG_NOTE_SPACING/2; + if (Bt(&tempo->flags,Of_SHARP) || Bt(&tempo->flags,Of_FLAT)) + tempo->width+=ORG_NOTE_SPACING; + } +} + +U0 OrgRecalcNoteXY() +{ + F64 measure_len=4,measure_left=measure_len; + OrgNote *tempo=oc.root.next; + I64 x=8-oc.screen_x,note,octave; + while (TRUE) { + tempo->x=x; + tempo->y=50; + if (tempo==&oc.root) + break; + else { + if (tempo->type!=OT_METER) { + octave=tempo->octave; + if (octave!=OCTAVE_REST) { + note=tempo->note; + if (Bt(&tempo->flags,Of_SHARP)) + note--; + if (Bt(&tempo->flags,Of_FLAT)) + note++; + if (note<0) { + note=11; + octave--; + } else if (note>11) { + note=0; + octave++; + } + note=music_note_map[*ListEntryPt(note,org_note_list)-'A']; + tempo->y=(15+(org_note_map[note]-7*(octave-2)))*4; + } + } + x+=tempo->width; + if (tempo->type==OT_METER) { + measure_len=tempo->meter_top*4.0/tempo->meter_bottom; + measure_left=0; + } else + measure_left-=org_durations[tempo->duration]; + if (measure_left<0.001) { + x+=ORG_NOTE_SPACING; + measure_left=measure_len; + } + } + tempo=tempo->next; + } +} + +U0 OrgMarkSelected(I64 x1,I64 x2,Bool sel) +{ + OrgNote *tempo=oc.root.next; + while (tempo!=&oc.root) { + if (sel) { + if (x1<=tempo->x<=x2) + tempo->flags|=OF_SELECTED; + } else + tempo->flags&=~OF_SELECTED; + tempo=tempo->next; + } +} + +OrgNote *OrgNoteCopy(OrgNote *tempo) +{ + OrgNote *tempo1=MAllocIdentical(tempo); + if (tempo->word) + tempo1->word=StrNew(tempo->word); + else + tempo1->word=NULL; + return tempo1; +} + +U0 OrgNoteDel(OrgNote *tempo) +{ + Free(tempo->word); + Free(tempo); +} + +U0 OrgSongDel(OrgNote *root) +{ + OrgNote *tempo,*tempo1; + tempo=root->next; + while (tempo!=root) { + tempo1=tempo->next; + OrgNoteDel(tempo); + tempo=tempo1; + } + root->next=root->last=root; +} + +U0 OrgCutToClipboard() +{ + OrgNote *tempo,*tempo1; + OrgSongDel(&oc.clipboard); + tempo=oc.root.next; + while (tempo!=&oc.root) { + tempo1=tempo->next; + if (tempo->flags&OF_SELECTED) { + if (oc.cur_note==tempo) + oc.cur_note=tempo->next; + QueRem(tempo); + tempo->flags&=~OF_SELECTED; + QueIns(tempo,oc.clipboard.last); + } + tempo=tempo1; + } +} + +U0 OrgPasteClipboard() +{ + OrgNote *tempo,*tempo1; + tempo=oc.clipboard.next; + while (tempo!=&oc.clipboard) { + tempo1=OrgNoteCopy(tempo); + QueIns(tempo1,oc.cur_note->last); + tempo=tempo->next; + } +} + +U0 OrgCopyToClipboard() +{ + OrgNote *tempo,*tempo1; + OrgSongDel(&oc.clipboard); + tempo=oc.root.next; + while (tempo!=&oc.root) { + if (tempo->flags&OF_SELECTED) { + tempo->flags&=~OF_SELECTED; + tempo1=OrgNoteCopy(tempo); + QueIns(tempo1,oc.clipboard.last); + } + tempo=tempo->next; + } +} + +OrgNote *OrgFindNote(I64 x,I64) +{ + OrgNote *tempo=oc.root.next; + OrgRecalcNoteXY; + x+=ORG_NOTE_SPACING/2; + while (x>tempo->next->x && tempo!=&oc.root) + tempo=tempo->next; + return tempo; +} + +Bool OrgBlink(F64 t) +{ + if (Blink(,t) || oc.playing) + return TRUE; + else + return FALSE; +} + +U0 DrawNote(CDC *dc,I64 x,I64 y,I64 duration) +{ + if (0<=duration<=ORG_NUM_DURATIONS) { + CSpritePlot3(dc,x,y,0,org_duration_imgs[duration]); + if (org_triplet_durations[duration]) + CSpritePlot3(dc,x,y,0,$IB,"<18>",18$); + if (OrgIsDotted(duration)) + CSpritePlot3(dc,x,y,0,$IB,"<19>",19$); + } +} + +U0 DrawTimeSignature(CDC *dc,I64 x,I64 y,I64 top,I64 bottom) +{ + GrPrintF(dc,x,y,"%d",top); + GrPrintF(dc,x,y+FONT_HEIGHT,"%d",bottom); +} + +U0 DrawIt(CTask *task,CDC *dc) +{ + OrgNote *tempo; + I64 i,x,y, + w=task->win_pixel_width; + F64 measure_len=4,measure_left=measure_len; + Bool old_preempt=Preempt(OFF); + + dc->color=BLACK; + for (i=1;i<6;i++) + GrLine(dc,0,i*8,w,i*8); + for (i=7;i<12;i++) + GrLine(dc,0,i*8,w,i*8); + + OrgRecalcNoteXY; + if (oc.cur_note->x<64) { + oc.screen_x-=128; + OrgRecalcNoteXY; + } + if (oc.cur_note->x>=GR_WIDTH-64) { + oc.screen_x+=128; + OrgRecalcNoteXY; + } + + tempo=oc.root.next; + while (tempo!=&oc.root) { + x=tempo->x; + y=tempo->y; + if (measure_left<0.001) { + dc->color=BLACK; + GrLine(dc,x-ORG_NOTE_SPACING,8,x-ORG_NOTE_SPACING,11*8); + measure_left=measure_len; + } + if (tempo->type==OT_METER) { + if (tempo==oc.cur_note && OrgBlink(tP(task))) + dc->color=BROWN; + else + dc->color=BLACK; + DrawTimeSignature(dc,x,5*8,tempo->meter_top,tempo->meter_bottom); + measure_len=tempo->meter_top*4.0/tempo->meter_bottom; + measure_left=0; + } else { + if (tempo==oc.cur_note && OrgBlink(tP(task))) { + dc->color=BROWN; + GrPutS(dc,x+8,y,tempo->word); + } else if (tempo->flags&OF_SELECTED) + dc->color=RED; + else { + if (tempo->note!=NOTE_REST) + dc->color=BLACK; + else + dc->color=LTGRAY; + if (OrgHasWords(tempo->word)) + dc->color=GREEN; + } + if (tempo->accent==1) + CSpritePlot3(dc,x,y,0,$IB,"<20>",20$); + else if (tempo->accent==2) + CSpritePlot3(dc,x,y,0,$IB,"<21>",21$); + DrawNote(dc,x,y,tempo->duration); + if (OrgIsDotted(tempo->duration)) + x+=ORG_NOTE_SPACING/2; + + if (Bt(&tempo->flags,Of_SHARP)) + CSpritePlot3(dc,x,y,0,$IB,"<22>",22$); + else if (Bt(&tempo->flags,Of_FLAT)) + CSpritePlot3(dc,x,y,0,$IB,"<23>",23$); + measure_left-=org_durations[tempo->duration]; + } + tempo=tempo->next; + } + + if (oc.cur_note==&oc.root && OrgBlink(tP(task))) + dc->color=BROWN; + else + dc->color=BLACK; + CSpritePlot3(dc,oc.root.x,50,0,$IB,"<24>",24$); + Preempt(old_preempt); +} + +#define ORGR_STRONG_ACCENT -11 +#define ORGR_ACCENT -10 +#define ORGR_NO_ACCENT -9 +#define ORGR_FLAT -8 +#define ORGR_SHARP -7 +#define ORGR_TIE -6 +#define ORGR_REST -5 +#define ORGR_INS_NOTE -4 +#define ORGR_DELETE_NOTE -3 +#define ORGR_SET_WORD -2 + +F64 PopUpDuration() +{ + I64 i; + CDoc *doc=DocNew; + DocPutS(doc,"$$FM,GREEN$$$$MU,\"Set Word\",ORGR_SET_WORD$$\n" + "$$MU,\"Toggle Sharp\",ORGR_SHARP$$\n" + "$$MU,\"Toggle Flat\",ORGR_FLAT$$\n" + "$$MU,\"Toggle Tie\",ORGR_TIE$$\n" + "$$MU,\"Make Rest\",ORGR_REST$$\n" + "$$MU,\"Insert Note\",ORGR_INS_NOTE$$\n" + "$$MU,\"Delete Note\",ORGR_DELETE_NOTE$$\n" + "$$MU,\"No Accent\",ORGR_NO_ACCENT$$\n" + "$$MU,\"Accent\",ORGR_ACCENT$$\n" + "$$MU,\"Strong Accent\",ORGR_STRONG_ACCENT$$\n\n"); + for (i=0;iflags; + oc.cur_note=tempo=OrgFindNote(x,y); + if (tempo!=&oc.root) { + Fs->win_inhibit=0; + i=PopUpDuration; + if (0<=itype==OT_NOTE) + tempo->duration=i; + } else { + switch (i) { + case ORGR_REST: + if (tempo->type==OT_NOTE) { + tempo->octave=OCTAVE_REST; + tempo->note=NOTE_REST; + tempo->accent=0; + tempo->waveform=WF_SQUARE; + } + break; + case ORGR_SHARP: + if (tempo->type==OT_NOTE && tempo->octave!=OCTAVE_REST) { + if (Btr(&tempo->flags,Of_FLAT)) + tempo->note++; + if (Btc(&tempo->flags,Of_SHARP)) + tempo->note--; + else + tempo->note++; + if (tempo->note<0) { + tempo->note=11; + tempo->octave--; + } else if (tempo->note>11) { + tempo->note=0; + tempo->octave++; + } + } + break; + case ORGR_FLAT: + if (tempo->type==OT_NOTE && tempo->octave!=OCTAVE_REST) { + if (Btr(&tempo->flags,Of_SHARP)) + tempo->note--; + if (Btc(&tempo->flags,Of_FLAT)) + tempo->note++; + else + tempo->note--; + if (tempo->note<0) { + tempo->note=11; + tempo->octave--; + } else if (tempo->note>11) { + tempo->note=0; + tempo->octave++; + } + } + break; + case ORGR_TIE: + if (tempo->type==OT_NOTE) + Btc(&tempo->flags,Of_TIE); + break; + case ORGR_SET_WORD: + if (tempo->type==OT_NOTE) { + if (DocCur) DocCur->flags&=~DOCF_FORM; + if (OrgHasWords(tempo->word)) + st2=MSPrintF("\nWord(\"%Q\"):",tempo->word); + else + st2=MSPrintF("\nWord(\"\"):"); + DocBottom; + st=PmtStr(st2); + Free(st2); + Free(tempo->word); + if (*st) { + tempo->word=MSPrintF("%q",st); + Free(st); + } else + tempo->word=StrNew(" "); + if (DocCur) DocCur->flags=DocCur->flags&~DOCF_FORM|old_doc_flags&DOCF_FORM; + } + break; + case ORGR_INS_NOTE: + tempo1=OrgNoteCopy(tempo); + QueIns(tempo1,tempo); + break; + case ORGR_DELETE_NOTE: + oc.cur_note=tempo->next; + QueRem(tempo); + OrgNoteDel(tempo); + break; + case ORGR_NO_ACCENT: + if (tempo->type==OT_NOTE && tempo->octave!=OCTAVE_REST) + tempo->accent=0; + break; + case ORGR_ACCENT: + if (tempo->type==OT_NOTE && tempo->octave!=OCTAVE_REST) + tempo->accent=1; + break; + case ORGR_STRONG_ACCENT: + if (tempo->type==OT_NOTE && tempo->octave!=OCTAVE_REST) + tempo->accent=2; + break; + } + } + OrgSetWidth(oc.cur_note); + Fs->win_inhibit=WIF_ALL-WIF_BORDER-WIF_MENU-WIF_CTRLS; + } +} + +#define ORG_NOTE_BOX_X 220 +#define ORG_NOTE_BOX_Y (13*FONT_HEIGHT+14) + +U0 OrgSetPickNoteBoxX(I64 duration,I64 *x) +{ + I64 i; + *x=ORG_NOTE_BOX_X; + for (i=0;icolor=RED; + else if (org_triplet_durations[i]) + oc.dc2->color=LTRED; + else + oc.dc2->color=BLACK; + DrawNote(oc.dc2,x,ORG_NOTE_BOX_Y,i); + } +} + +#define ORG_TOOLS_X 450 +#define ORG_TOOLS_Y 13*FONT_HEIGHT + +U0 DrawPickTools() +{ + if (oc.tool==OTT_BOX_TOOL) + oc.dc2->color=ROPF_DITHER+WHITE<<16+ROP_EQU+RED; + else + oc.dc2->color=ROPF_DITHER+WHITE<<16+ROP_EQU+BLACK; + GrLineRect4(oc.dc2,ORG_TOOLS_X,ORG_TOOLS_Y, + ORG_TOOLS_X+10,ORG_TOOLS_Y+10); + + if (oc.tool==OTT_PTR_TOOL) + oc.dc2->color=ROP_EQU+RED; + else + oc.dc2->color=ROP_EQU+BLACK; + (*fp_draw_input_ptr)(oc.dc2,ORG_TOOLS_X+15,ORG_TOOLS_Y); + oc.dc2->color=BLACK; +} + + +Bool OrgGetPickToolBox(I64 xx,I64 yy) +{ + if (ORG_TOOLS_X<=xxcolor=BLACK; + for (i=0;ioc.root.last->x) + tempo1=oc.root.last; + else if (p1x) + tempo1=&oc.root; + else + tempo1=OrgFindNote(p1-ORG_NOTE_SPACING/2,p2); + tempo=CAlloc(sizeof(OrgNote)); + tempo->type=OT_NOTE; + p2=p2/4-15; + n=-p2%7; + o=2+p2/-7; + n=-n; + if (n<0) { + n+=7; + o++; + } + n=org_note_inverse_map[n]; + tempo->note=n; + tempo->octave=o; + tempo->duration=duration; + tempo->waveform=tempo1->waveform; + OrgSetWidth(tempo); + QueIns(tempo,tempo1); + oc.cur_note=tempo->next; + } + DrawDC2; +} + +U0 OrgLeftClickPickMeterBox(I64 top,I64 bottom) +{ + I64 msg_code,p1,p2; + OrgNote *tempo,*tempo1; + do { + msg_code=GetMsg(&p1,&p2,1<=oc.root.x) + tempo1=oc.root.last; + else if (p1x) + tempo1=&oc.root; + else + tempo1=OrgFindNote(p1-ORG_NOTE_SPACING/2,p2); + tempo=CAlloc(sizeof(OrgNote)); + tempo->type=OT_METER; + tempo->meter_top=top; + tempo->meter_bottom=bottom; + tempo->waveform=tempo1->waveform; + OrgSetWidth(tempo); + QueIns(tempo,tempo1); + oc.cur_note=tempo->next; + } + DrawDC2; +} + +U0 OrgLeftClickStaffPtr(I64 x,I64 y) +{ + OrgNote *tempo,*tempo1; + I64 o,n,msg_code,p1,p2,n_original,o_original,a_original,wf_original; + oc.cur_note=tempo=OrgFindNote(x,y); + if (tempo!=&oc.root) { + if (tempo->type==OT_NOTE) { + n_original=tempo->note; + o_original=tempo->octave; + a_original=tempo->accent; + wf_original=tempo->waveform; + do { + msg_code=GetMsg(&p1,&p2,1<word); + tempo1->word=tempo->word; + tempo->word=NULL; + tempo->note=n_original; + tempo->octave=o_original; + tempo->accent=a_original; + tempo->waveform=wf_original; + } + } else { +move_note: + p2=p2/4-15; + n=-p2%7; + o=2+p2/-7; + n=-n; + if (n<0) { + n+=7; + o++; + } + n=org_note_inverse_map[n]; + tempo->note=n; + tempo->octave=o; + } + } while (msg_code!=MSG_IP_L_UP); + OrgSetWidth(tempo); + } + } +} + +U0 OrgLeftClickStaffBox(I64 x,I64 y) +{ + I64 msg_code,p1,p2; + do { + msg_code=GetMsg(&p1,&p2,1<color=ROPF_DITHER+WHITE<<16+ROP_EQU+BLACK; + GrLineRect4(oc.dc2,x,y,p1,p2); + if (msg_code==MSG_IP_L_UP) { + if (x>p1) SwapU64(&x,&p1); + OrgMarkSelected(x,p1,TRUE); + } + } while (msg_code!=MSG_IP_L_UP); + DrawDC2; +} + +U0 OrgLeftClick(I64 x,I64 y) +{ + I64 duration,top,bottom; + if (y<13*FONT_HEIGHT) { + if (oc.tool==OTT_PTR_TOOL) + OrgLeftClickStaffPtr(x,y); + else + OrgLeftClickStaffBox(x,y); + } else { + duration=OrgGetPickNoteBoxDuration(x,y); + if (0<=durationtask_end_cb=&SndTaskEndCB; + while (TRUE) { + i++; + switch (org_play_mode) { + case ORGPM_NORMAL: + if (org_play_f!=f) { + f=org_play_f; + Snd(f,music_waveform); + } + break; + case ORGPM_REVERB1: + if (org_play_f!=f) { + if (f>0) + f2=f; + f=org_play_f; + } + if (!(i&15)) { + if (i&16) + Snd(f,music_waveform); + else + Snd(f2,music_waveform); + } + break; + } + Sleep(1); + } +} + + +U8 OrgCvtDuration(F64 d) +{ + F64 d1,d2; + I64 j; + for (j=0;jwaveform=WF_SQUARE; + while (*st && !('A'<=*st<='G') && *st!='R') { + if (*st=='M') { + tempo1=CAlloc(sizeof(OrgNote)); + tempo1->type=OT_METER; + tempo1->waveform=tempo->waveform; + st++; + if ('1'<=*st<='9') + tempo1->meter_top=*st++-'0'; + else + tempo1->meter_top=4; + if (*st=='/') + st++; + if ('1'<=*st<='9') + tempo1->meter_bottom=*st++-'0'; + else + tempo1->meter_bottom=4; + OrgSetWidth(tempo1); + QueIns(tempo1,oc.root.last); + } + if (*st=='W') { + st++; + tempo->waveform=*st++-'0'; + waveform=tempo->waveform; + } + while (*st=='!') { + tempo->accent++; + st++; + } + while (*st=='(') { + Bts(&tempo->flags,Of_TIE); + st++; + } + st=OrgMusicSetOctave(st,org_octave); + st=OrgMusicSetNoteLen(st,org_duration); + } + if (!*st) { + OrgNoteDel(tempo); + break; + } + note=*st++-'A'; + if (note<7) { + note=music_note_map[note]; + if (*st=='b') { + Bts(&tempo->flags,Of_FLAT); + note--; + st++; + } else if (*st=='#') { + Bts(&tempo->flags,Of_SHARP); + note++; + st++; + } + if (note<0) { + note=11; + *org_octave-=1; + } else if (note>11) { + note=0; + *org_octave+=1; + } + tempo->note=note; + tempo->octave=*org_octave; + } else { + tempo->note=NOTE_REST; + tempo->octave=OCTAVE_REST; + tempo->accent=0; + tempo->waveform=WF_SQUARE; + } + if (*org_duration<=2*.25/3) + i=0; + else if (*org_duration<=.25) + i=1; + else if (*org_duration<=2*.5/3) + i=2; + else if (*org_duration<=.5) + i=3; + else if (*org_duration<=2.0/3) + i=4; + else if (*org_duration<=.5*1.5) + i=5; + else if (*org_duration<=1.0) + i=6; + else if (*org_duration<=1.5) + i=7; + else if (*org_duration<=2.0) + i=8; + else if (*org_duration<=3.0) + i=9; + else if (*org_duration<=4.0) + i=10; + else + i=11; + tempo->duration=i; + tempo->type=OT_NOTE; + OrgSetWidth(tempo); + QueIns(tempo,oc.cur_note->last); + } +} + +U0 OrgLoadSong(U8 *filename,I64 *org_octave,F64 *org_duration) +{ + U8 *st; + OrgNote *tempo; + CLex *lx=LexNew(TextFileRead(filename),0,StrNew(filename)); + Lex(lx); + if (FileOcc("incomplete",filename,"")) + oc.incomplete_entry->checked=TRUE; + else + oc.incomplete_entry->checked=FALSE; + while (lx->token) { + if (lx->token==TK_IDENT) + if (!StrCmp(lx->ident,"Play")) { + if (Lex(lx)=='(') + if (Lex(lx)==TK_STR) { + tempo=oc.root.last; + st=LexExtStr(lx); + OrgLoadSongStr(st,org_octave,org_duration); + if (lx->token==',') { + if (Lex(lx)==TK_STR) { + st=LexExtStr(lx); + do { + do tempo=tempo->next; + while (tempo!=&oc.root && tempo->type==OT_METER); + if (tempo!=&oc.root) + tempo->word=StrNew(st); + st+=StrLen(st)+1; + } while (*st); + } + } + } + } else if (!StrCmp(lx->ident,"music_tempo")) { + if (Lex(lx)=='=' && Lex(lx)==TK_F64) { + music_tempo=lx->cur_f-0.0005; + tempo_state.tempo=Round(TEMPO_RANGE*(music_tempo-0.5)/4.4); + } + } else if (!StrCmp(lx->ident,"music_stacatto_factor")) { + if (Lex(lx)=='=' && Lex(lx)==TK_F64) { + music_stacatto_factor=lx->cur_f-0.0005; + tempo_state.stacatto=Round(TEMPO_RANGE*(music_stacatto_factor-0.12)/0.88); + } + } + Lex(lx); + } + LexDel(lx); +} + +U8 *OrgCvtSong() +{ + OrgNote *tempo; + U8 *st,*src,*dst; + I64 i,note,octave,last_octave,last_duration,accent,waveform,last_waveform; + + i=0; + tempo=oc.root.next; + last_octave=OCTAVE_REST; + last_duration=-1; + last_waveform=-1; + while (tempo!=&oc.root) { + dst=&tempo->ascii; + if (tempo->type==OT_METER) { + *dst++='M'; + *dst++=tempo->meter_top+'0'; + *dst++='/'; + *dst++=tempo->meter_bottom+'0'; + } else { + octave=tempo->octave; + note=tempo->note; + if (note!=NOTE_REST) { + if (Bt(&tempo->flags,Of_SHARP)) + note--; + if (Bt(&tempo->flags,Of_FLAT)) + note++; + if (note<0) { + note=11; + octave--; + } else if (note>11) { + note=0; + octave++; + } + note=music_note_map[*ListEntryPt(note,org_note_list)-'A']; + } + accent=tempo->accent; + waveform=tempo->waveform; + if (waveform!=last_waveform && note!=NOTE_REST) { + *dst++='W'; + *dst++=waveform+'0'; + last_waveform=waveform; + } + if (Bt(&tempo->flags,Of_TIE)) + *dst++='('; + while (accent--) + *dst++='!'; + if (octave!=last_octave && note!=NOTE_REST) { + *dst++=octave+'0'; + last_octave=octave; + } + if (tempo->duration!=last_duration) { + src=ListEntryPt(tempo->duration,org_duration_list); + *dst++=src[0]; + if (src[1]) + *dst++=src[1]; + last_duration=tempo->duration; + } + if (note!=NOTE_REST) { + src=ListEntryPt(note,org_note_list); + *dst++=src[0]; + if (src[1]) + *dst++=src[1]; + else if (Bt(&tempo->flags,Of_FLAT)) + *dst++='b'; + else if (Bt(&tempo->flags,Of_SHARP)) + *dst++='#'; + } else + *dst++='R'; + } + *dst++=0; + i+=StrLen(tempo->ascii); + tempo=tempo->next; + } + + st=MAlloc(i+1); + dst=st; + tempo=oc.root.next; + while (tempo!=&oc.root) { + StrCpy(dst,tempo->ascii); + dst+=StrLen(tempo->ascii); + tempo=tempo->next; + } + *dst++=0; + return st; +} + +U8 *OrgSaveSong(U8 *dirname,U8 *full_filename) +{ + CDoc *doc=DocNew; + Bool has_words; + OrgNote *tempo,*tempo1; + F64 measure_len=4,two_measure_left=2*measure_len; + U8 *ptr,ch; + + Free(OrgCvtSong); //set tempo->ascii; + + music_tempo=4.4*tempo_state.tempo/TEMPO_RANGE+0.5; + music_stacatto_factor=0.88*tempo_state.stacatto/TEMPO_RANGE+0.12; + + has_words=FALSE; + tempo=oc.root.next; + while (tempo!=&oc.root) { + if (OrgHasWords(tempo->word)) has_words=TRUE; + tempo=tempo->next; + } + if (oc.incomplete_entry->checked) + DocPutS(doc,"//0 incomplete\n"); + else if (has_words) + DocPutS(doc,"//0 has words\n"); + else + DocPutS(doc,"//0 no nothing\n"); + + DocPrintF(doc, +"U0 Song()\n" +"{\n" +" Fs->task_end_cb=&SndTaskEndCB;\n" +" MusicSettingsRst;\n" +" music_tempo=%6.3f;\n" +" music_stacatto_factor=%6.3f;\n" +" try {\n" +" while (!ScanKey) {\n" +"\tPlay(\"",music_tempo+0.0005,music_stacatto_factor+0.0005); + + tempo=oc.root.next; + tempo1=tempo; + has_words=FALSE; + while (tempo!=&oc.root) { + DocPutS(doc,tempo->ascii); + if (OrgHasWords(tempo->word)) has_words=TRUE; + if (tempo->type==OT_METER) { + measure_len=tempo->meter_top*4.0/tempo->meter_bottom; + two_measure_left=0; + } else + two_measure_left-=org_durations[tempo->duration]; + tempo=tempo->next; + if (two_measure_left<0.001 && tempo!=&oc.root) { + if (has_words) { + DocPutS(doc,"\",\n\t\t\""); + while (tempo1!=tempo) { + if (tempo1->type!=OT_METER) { + if (ptr=tempo1->word) { + while (ch=*ptr) { + if (ch==CH_SPACE) + *ptr=CH_SHIFT_SPACE; + ptr++; + } + DocPrintF(doc,"%Q\\0",tempo1->word); + } else + DocPrintF(doc,"%c\\0",CH_SHIFT_SPACE); + } + tempo1=tempo1->next; + } + } + DocPutS(doc,"\");\n" + "\tPlay(\""); + two_measure_left=2*measure_len; + tempo1=tempo; + has_words=FALSE; + } + } + if (has_words) { + DocPutS(doc,"\",\n\t\t\""); + while (tempo1!=tempo) { + if (tempo1->type!=OT_METER) { + if (ptr=tempo1->word) { + while (ch=*ptr) { + if (ch==CH_SPACE) + *ptr=CH_SHIFT_SPACE; + ptr++; + } + DocPrintF(doc,"%Q\\0",tempo1->word); + } else + DocPrintF(doc,"%c\\0",CH_SHIFT_SPACE); + } + tempo1=tempo1->next; + } + } + DocPutS(doc,"\");\n" +" }\n" +" } catch\n" +" CatchAll;\n" +" Snd(0);\n" +"}\n" +"\n" +"Song;\n"); + DocRecalc(doc); + if (full_filename) { + StrCpy(doc->filename.name,full_filename); + Free(full_filename); + } else + SPrintF(doc->filename.name,"%s/Temp.CPP.Z",dirname); + DocWrite(doc,TRUE); + full_filename=StrNew(doc->filename.name); + DocDel(doc); + return full_filename; +} + + +U0 OrgSetOctave(I64 octave) +{ + I64 i; + U8 buf[136]; + CMenuEntry *tempse; + for (i=0;i<=6;i++) { + SPrintF(buf,"Snd/Octave%d",i); + if (tempse=MenuEntryFind(Fs->cur_menu,buf)) { + if (i==octave) + tempse->checked=TRUE; + else + tempse->checked=FALSE; + } + } + if (tempse=MenuEntryFind(Fs->cur_menu,"Snd/Reverb")) + tempse->checked=org_play_mode==1; +} + +U0 OrgSetWaveform(I64 waveform) +{ + CMenuEntry *tempse; + if (tempse=MenuEntryFind(Fs->cur_menu,"Snd/Square")) + tempse->checked=waveform==WF_SQUARE; + if (tempse=MenuEntryFind(Fs->cur_menu,"Snd/Sine")) + tempse->checked=waveform==WF_SINE; + if (tempse=MenuEntryFind(Fs->cur_menu,"Snd/Triangle")) + tempse->checked=waveform==WF_TRIANGLE; + if (tempse=MenuEntryFind(Fs->cur_menu,"Snd/Sawtooth")) + tempse->checked=waveform==WF_SAWTOOTH; + if (tempse=MenuEntryFind(Fs->cur_menu,"Snd/Noise")) + tempse->checked=waveform==WF_NOISE; +} + + + + +$SP,"<25>",25$ + + + + + +#define ORG_NUM_KEYS 20 +class OrgKey +{ + U8 x,w,h,ascii; +}; + +#define ORG_W_W 16 +#define ORG_W_H 36 +#define ORG_B_W 8 +#define ORG_B_H 20 + +OrgKey org_kbd[ORG_NUM_KEYS]= +{ + +{ 2*ORG_W_W-4,ORG_B_W,ORG_B_H,'e' }, +{ 3*ORG_W_W-4,ORG_B_W,ORG_B_H,'r' }, +{ 4*ORG_W_W-4,ORG_B_W,ORG_B_H,'t' }, +{ 6*ORG_W_W-4,ORG_B_W,ORG_B_H,'u' }, +{ 7*ORG_W_W-4,ORG_B_W,ORG_B_H,'i' }, +{ 9*ORG_W_W-4,ORG_B_W,ORG_B_H,'p' }, +{10*ORG_W_W-4,ORG_B_W,ORG_B_H,'[' }, +{11*ORG_W_W-4,ORG_B_W,ORG_B_H,']' }, + +{ 0*ORG_W_W,ORG_W_W,ORG_W_H,'a' }, +{ 1*ORG_W_W,ORG_W_W,ORG_W_H,'s' }, +{ 2*ORG_W_W,ORG_W_W,ORG_W_H,'d' }, +{ 3*ORG_W_W,ORG_W_W,ORG_W_H,'f' }, +{ 4*ORG_W_W,ORG_W_W,ORG_W_H,'g' }, +{ 5*ORG_W_W,ORG_W_W,ORG_W_H,'h' }, +{ 6*ORG_W_W,ORG_W_W,ORG_W_H,'j' }, +{ 7*ORG_W_W,ORG_W_W,ORG_W_H,'k' }, +{ 8*ORG_W_W,ORG_W_W,ORG_W_H,'l' }, +{ 9*ORG_W_W,ORG_W_W,ORG_W_H,';' }, +{10*ORG_W_W,ORG_W_W,ORG_W_H,'\'' }, +{11*ORG_W_W,ORG_W_W,ORG_W_H,CH_NEW_LINE}, + +}; + + +U0 OrgDownKey(I64 x,I64 y) +{ + I64 i; + OrgKey *o; + y-=FONT_HEIGHT*13; + if (0<=yx<=xx+o->w && yh) { + Msg(MSG_KEY_DOWN,o->ascii,0); + return; + } + } + } +} + +U0 OrgUpKey(I64 x,I64 y) +{ + I64 i; + OrgKey *o; + y-=FONT_HEIGHT*13; + if (0<=yx<=xx+o->w && yh) { + Msg(MSG_KEY_UP,o->ascii,0); + return; + } + } + } +} + +U0 OrgMenu(I64 org_octave,I64 org_waveform) +{ + DocClear; + "$$BD,WHITE$$$$FD,GREEN$$$$FU,GREEN$$$$FM,GREEN$$$$CM,0,12$$\n"; + PutSprite($IB,"<25>",25$); + NewLine(5); + + DrawDC2; + + "$$FG,LTGREEN$$$$FG$$\tRest\n" + "$$FG,LTGREEN$$$$FG$$\tDeletes Last Note\n" + "$$FG,LTGREEN$$Left Mouse$$FG$$\tDrag note or shift word\n" + "$$FG,LTGREEN$$Right Mouse$$FG$$\tChange duration or set word\n"; + PutSprite($IB,"<6>",6$,"$$SP+LM+LA,\"\",\"Msg(MSG_KEY_DOWN,0,SCF_CTRL|SC_CURSOR_LEFT);\",%d$$"); + " "; + if (oc.playing) + PutSprite($IB,"<9>",9$,"$$SP+LM,\"\",\"x\",%d$$"); + else + PutSprite($IB,"<8>",8$,"$$SP+LM,\"\",\"x\",%d$$"); + " "; + if (oc.record_entry->checked) { + oc.record_entry->checked=TRUE; + PutSprite($IB,"<10>",10$,"$$SP+LM,\"\",\"z\",%d$$"); + } else + PutSprite($IB,"<11>",11$,"$$SP+LM,\"\",\"z\",%d$$"); + " "; + PutSprite($IB,"<7>",7$,"$$SP+LM+LA,\"\",\"Msg(MSG_KEY_DOWN,0,SCF_CTRL|SC_CURSOR_RIGHT);\",%d$$"); + "$$CM+LX,0,6$$"; + OrgSetOctave(org_octave); + OrgSetWaveform(org_waveform); + WinMgrSync(2); +} + + +U0 OrgPushMode(I64 org_octave,I64 org_waveform) +{ + Fs->win_inhibit=WIF_ALL-WIF_BORDER-WIF_MENU-WIF_CTRLS; + OrgMenu(org_octave,org_waveform); +} + +U0 OrgPopMode() +{ + Fs->win_inhibit=0; + DCFill; +} + +#define ORGF_CD 1 +#define ORGF_INCOMPLETE 2 + +U0 MusicOrgan(U8 *dirname=NULL) +{ + Bool is_note,was_playing; + I64 p1,p2,ch,sc,msg_code=0,col; + I64 note=NOTE_REST,octave=OCTAVE_REST,accent=0,org_waveform=WF_SQUARE,org_octave=3,timeout_val,timeout_val2; + F64 f=0,last_f=0,org_duration=1.0; + U8 *filename=NULL,*st,*st2; + CTask *play_task=Spawn(&OrgPlayTask,NULL,"Organ Play",Fs); + OrgNote *tempo; + I64 old_doc_flags; + F64 d,evt_time=tP,note_down_time=tP; + CCtrl *c=TempoNew; + + if (DocCur) old_doc_flags=DocCur->flags; + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WinBorder; + WordStat; + Preempt(OFF); + + MkDir("HOME/MusicOrgan"); + MusicSettingsRst; + tempo_state.tempo=Round(TEMPO_RANGE*(music_tempo-0.5)/4.4); + tempo_state.stacatto=Round(TEMPO_RANGE*(music_stacatto_factor-0.12)/0.88); + + if (DocCur) DocCur->flags|=DOCF_FORM; + + MemSet(&oc,0,sizeof(OrgCtrl)); + oc.screen_x=0; + oc.root.next=oc.root.last=&oc.root; + oc.clipboard.next=oc.clipboard.last=&oc.clipboard; + oc.root.waveform=WF_SQUARE; + oc.cur_note=&oc.root; + oc.dc2=DCAlias; + + MenuPush( + "File {" + " New(,'.');" + " ChgDir(MSG_CMD,ORGF_CD);" + " Open(,CH_CTRLO);" + " SaveAs(,CH_CTRLA);" + " Abort(,CH_SHIFT_ESC);" + " Exit(,CH_ESC);" + "}" + "Edit {" + " Cut(,CH_CTRLX);" + " Copy(,CH_CTRLC);" + " Paste(,CH_CTRLV);" + " RightMenu(,CH_NEW_LINE);" + " BackSpace(,CH_BACKSPACE);" + " DeleteNote(,,SC_DELETE);" + " ClearSong(,'.');" + " Left(,,SC_CURSOR_LEFT);" + " Right(,,SC_CURSOR_RIGHT);" + " GoBegin(,,0x4CB0000044B);" + " GoEnd(,,0x4CD0000044D);" + "}" + "Song {" + " Play(,'x');" + " Record(,'z');" + " Random(,',');" + " MarkIncomplete(MSG_CMD,ORGF_INCOMPLETE);" + "}" + "Snd {" + " Square(,'!');" + " Sine(,'@');" + " Triangle(,'#');" + " Sawtooth(,'$$');" + " Noise(,'%');" + " Reverb(,'c');" + " Octave0(,'0');" + " Octave1(,'1');" + " Octave2(,'2');" + " Octave3(,'3');" + " Octave4(,'4');" + " Octave5(,'5');" + " Octave6(,'6');" + "}" + "Help {" + " Help(,,SC_F1);" + "}" + ); + oc.incomplete_entry=MenuEntryFind(Fs->cur_menu,"Song/MarkIncomplete"); + oc.record_entry=MenuEntryFind(Fs->cur_menu,"Song/Record"); + + WinMax; + + if (!dirname) + dirname=StrNew("HOME/MusicOrgan"); + else + dirname=StrNew(dirname); + OrgPushMode(org_octave,org_waveform); + col=0; + Fs->draw_it=&DrawIt; + + try { + do { + was_playing=FALSE; +start: + if (ipty-Fs->win_top<18) + msg_code=GetMsg(&p1,&p2,1< when the Doc Buttons are clicked. + //This is so that kbd and mouse are the same for Doc's. + //We must now pass the onto the Doc handler. + PutKey(p1,p2); + goto start; + } + if (msg_code!=MSG_IP_MOVE) { + DocBottom; + if (was_playing || DocCur->cur_entry->y>=Fs->win_height-2) { + OrgMenu(org_octave,org_waveform); + col=0; + } + } + octave=org_octave; + switch (msg_code) { + case MSG_CMD: + OrgPopMode; + switch (p1) { + case ORGF_CD: + st2=dirname; + if (dirname=PopUpPickDir) { + Free(st2); + Free(filename); + filename=NULL; + } else + dirname=st2; + break; + case ORGF_INCOMPLETE: + oc.incomplete_entry->checked=!oc.incomplete_entry->checked; + break; + } + OrgPushMode(org_octave,org_waveform); + is_note=FALSE; + col=0; + break; + case MSG_KEY_DOWN: + evt_time=tP; + ch=p1; + sc=p2; + if ('0'<=ch<='9') { + org_octave=ch-'0'; + OrgMenu(org_octave,org_waveform); + col=0; + } else { + is_note=TRUE; + switch (ch) { + case 0: + switch (sc.u8[0]) { + case SC_CURSOR_LEFT: + if (sc&SCF_CTRL) { + while (oc.cur_note->last!=&oc.root) { + oc.cur_note=oc.cur_note->last; + if (oc.cur_note!=&oc.root) + LBEqu(&oc.cur_note->flags,Of_SELECTED,sc&SCF_SHIFT); + } + } else { + if (oc.cur_note->last!=&oc.root) { + oc.cur_note=oc.cur_note->last; + if (oc.cur_note!=&oc.root) + LBEqu(&oc.cur_note->flags,Of_SELECTED,sc&SCF_SHIFT); + } + } + break; + case SC_CURSOR_RIGHT: + if (sc&SCF_CTRL) { + while (oc.cur_note!=&oc.root) { + if (oc.cur_note!=&oc.root) + LBEqu(&oc.cur_note->flags,Of_SELECTED,sc&SCF_SHIFT); + oc.cur_note=oc.cur_note->next; + } + } else { + if (oc.cur_note!=&oc.root) { + if (oc.cur_note!=&oc.root) + LBEqu(&oc.cur_note->flags,Of_SELECTED,sc&SCF_SHIFT); + oc.cur_note=oc.cur_note->next; + } + } + break; + case SC_DELETE: + if (sc&SCF_SHIFT) + OrgCutToClipboard; + else { + tempo=oc.cur_note; + oc.cur_note=tempo->next; + if (tempo!=&oc.root) { + QueRem(tempo); + OrgNoteDel(tempo); + } + } + break; + case SC_INS: + if (sc&SCF_SHIFT) + OrgPasteClipboard; + else if (sc&SCF_CTRL) + OrgCopyToClipboard; + break; + case SC_F1: + OrgPopMode; + PopUp("Ed(\"::/SparrowOS/Apps/MusicOrgan/Help.TXT.Z\");",Fs); + OrgPushMode(org_octave,org_waveform); + col=0; + is_note=FALSE; + break; + } + is_note=FALSE; + break; + case 'a': note=7; octave--; break; + case 's': note=8; octave--; break; + case 'e': note=9; octave--; break; + case 'd': note=10; octave--; break; + case 'r': note=11; octave--; break; + case 'f': note=0; break; + case 't': note=1; break; + case 'g': note=2; break; + case 'h': note=3; break; + case 'u': note=4; break; + case 'j': note=5; break; + case 'i': note=6; break; + case 'k': note=7; break; + case 'l': note=8; break; + case 'p': note=9; break; + case ';': note=10; break; + case '[': note=11; break; + case '\'': note=0; octave++; break; + case ']': note=1; octave++; break; + case CH_SPACE: + note=NOTE_REST; + octave=OCTAVE_REST; + break; + case ',': + Free(filename); + filename=NULL; + OrgPopMode; + music_octave=org_octave; + if (st2=CallExtStr("MakeSong")) { + OrgLoadSongStr(st2,&org_octave,&org_duration); + Free(st2); + } + OrgPushMode(org_octave,org_waveform); + is_note=FALSE; + col=0; + break; + case CH_CTRLO: + OrgPopMode; + AcctOneTimePopUp(ARf_MUSIC_ORGAN_JUKEBOX, + "Select a song and preview it.\n" + "$$FG,GREEN$$$$FG$$ to load it into MusicOrgan.\n\n" + ST_WARN_ST " Graphics and other embelishments\n" + "will be lost because MusicOrgan can't\n" + "parse C/C++ programs completely.\n"); + Free(filename); + filename=NULL; + JukeBox(dirname,&filename); + if (filename) { + oc.screen_x=0; + org_duration=1.0; + org_octave=3; + OrgSongDel(&oc.root); + oc.cur_note=&oc.root; + OrgLoadSong(filename,&org_octave,&org_duration); + oc.record_entry->checked=FALSE; + oc.cur_note=oc.root.next; + } + OrgPushMode(org_octave,org_waveform); + is_note=FALSE; + col=0; + break; + case CH_CTRLA: + OrgPopMode; + filename=OrgSaveSong(dirname,filename); + OrgPushMode(org_octave,org_waveform); + is_note=FALSE; + break; + case CH_CTRLC: + OrgCopyToClipboard; + is_note=FALSE; + break; + case CH_CTRLV: + OrgPasteClipboard; + is_note=FALSE; + break; + case CH_CTRLX: + OrgCutToClipboard; + is_note=FALSE; + break; + case '.': + OrgMenu(org_octave,org_waveform); + col=0; + Free(filename); + filename=NULL; + org_duration=1.0; + org_octave=3; + OrgSongDel(&oc.root); + oc.cur_note=&oc.root; + oc.screen_x=0; + is_note=FALSE; + break; + case CH_NEW_LINE: + if (oc.cur_note!=&oc.root) + OrgRightClick(oc.cur_note->x,oc.cur_note->y); + is_note=FALSE; + break; + case 'x': + if (was_playing) { + is_note=FALSE; + break; + } + col=0; + oc.playing=TRUE; + OrgMenu(org_octave,org_waveform); + tempo=oc.cur_note; + while (tempo!=&oc.root) { + if (tempo->type!=OT_METER) { + timeout_val=sys_jiffies; + if (ipty-Fs->win_top<18) + msg_code=ScanMsg(&p1,&p2,1<win_top>=18 && msg_code==MSG_IP_L_DOWN) + goto start; + else + goto got_msg; + } + oc.cur_note=tempo; + oc.screen_x+=tempo->x-0.33*GR_WIDTH; + if (OrgHasWords(tempo->word)) + "" tempo->word; + note=tempo->note; + octave=tempo->octave; + accent=tempo->accent; + org_waveform=tempo->waveform; + if (note!=NOTE_REST) + f=Note2Freq(note,octave); + else + f=-1; //rest + if (f>0) + org_play_f=f; + else + org_play_f=0; + + + music_tempo=4.4*tempo_state.tempo/TEMPO_RANGE+0.5; + music_stacatto_factor=0.88*tempo_state.stacatto/TEMPO_RANGE+0.12; + music_waveform=org_waveform; + d=JIFFY_FREQ*org_durations[tempo->duration]/music_tempo; + if (Bt(&tempo->flags,Of_TIE)) { + timeout_val+=d; + timeout_val2=timeout_val; + } else { + timeout_val+=d*music_stacatto_factor; + timeout_val2=timeout_val+ + d*(1.0-music_stacatto_factor); + } + SleepUntil(timeout_val); + org_play_f=0; + SleepUntil(timeout_val2); + } + tempo=tempo->next; + } + oc.cur_note=&oc.root; + oc.screen_x+=oc.cur_note->x-GR_WIDTH/2; + oc.playing=FALSE; + OrgMenu(org_octave,org_waveform); + col=0; + f=0; + org_play_f=0; + is_note=FALSE; + break; + case CH_BACKSPACE: + tempo=oc.cur_note->last; + if (tempo!=&oc.root) { + QueRem(tempo); + OrgNoteDel(tempo); + } + is_note=FALSE; + if (col) { + '' CH_BACKSPACE; + col--; + } + break; + case 'c': + org_play_mode++; + if (org_play_mode>=ORGPM_NUM_PLAY_MODES) org_play_mode=0; + is_note=FALSE; + OrgMenu(org_octave,org_waveform); + col=0; + break; + case 'z': + if (oc.record_entry->checked) + oc.record_entry->checked=FALSE; + else { + oc.record_entry->checked=TRUE; + org_duration=1.0; + org_octave=3; + oc.screen_x=0; + } + OrgMenu(org_octave,org_waveform); + col=0; + is_note=FALSE; + break; + case CH_ESC: + OrgPopMode; + filename=OrgSaveSong(dirname,filename); + OrgPushMode(org_octave,org_waveform); + break; + case '!': + music_waveform=org_waveform=WF_SQUARE; + OrgMenu(org_octave,org_waveform); + col=0; + is_note=FALSE; + break; + case '@': + music_waveform=org_waveform=WF_SINE; + OrgMenu(org_octave,org_waveform); + col=0; + is_note=FALSE; + break; + case '#': + music_waveform=org_waveform=WF_TRIANGLE; + OrgMenu(org_octave,org_waveform); + col=0; + is_note=FALSE; + break; + case '$$': + music_waveform=org_waveform=WF_SAWTOOTH; + OrgMenu(org_octave,org_waveform); + col=0; + is_note=FALSE; + break; + case '%': + music_waveform=org_waveform=WF_NOISE; + OrgMenu(org_octave,org_waveform); + col=0; + is_note=FALSE; + break; + default: + is_note=FALSE; + } + if (is_note) { + if (note!=NOTE_REST) + f=Note2Freq(note,octave); + else + f=-1; //rest + } + } + break; + case MSG_KEY_UP: + evt_time=tP; + f=0; + break; + case MSG_IP_MOVE: + if (p2>18*FONT_HEIGHT) + Fs->win_inhibit=0; + else + Fs->win_inhibit=WIF_ALL-WIF_BORDER-WIF_MENU-WIF_CTRLS; + break; + case MSG_IP_L_DOWN: + OrgDownKey(p1,p2); + OrgLeftClick(p1,p2); + break; + case MSG_IP_L_UP: + OrgUpKey(p1,p2); + break; + default: + OrgRightClick(p1,p2); + } + if (f!=last_f) { + if (f>0) { + st=ListEntryPt(note,org_note_list); + org_play_f=f; + } else { + if (f<0) + st="R"; + else + st=""; + org_play_f=0; + } + if (oc.record_entry->checked) { + if (last_f) { + music_tempo=4.4*tempo_state.tempo/TEMPO_RANGE+0.5; + music_stacatto_factor=0.88*tempo_state.stacatto/TEMPO_RANGE+0.12; + + tempo->duration=OrgCvtDuration(music_tempo*(evt_time-note_down_time)); + OrgSetWidth(tempo); + QueIns(tempo,oc.cur_note->last); + } + if (f) { + note_down_time=tP; + tempo=CAlloc(sizeof(OrgNote)); + tempo->type=OT_NOTE; + tempo->note=note; + tempo->octave=octave; + tempo->accent=0; + tempo->waveform=org_waveform; + if (st[1]=='#') + Bts(&tempo->flags,Of_SHARP); + } + } + last_f=f; + "" st; + col+=StrLen(st); + if (col>=Fs->win_width-1) { + NewLine; + col=0; + } + } + } while (ch!=CH_ESC && ch!=CH_SHIFT_ESC); + } catch + CatchAll; + OrgPopMode; + OrgSongDel(&oc.root); + OrgSongDel(&oc.clipboard); + TempoDel(c); + Kill(play_task); + DCFill; + DCDel(oc.dc2); + SettingsPop; + if (DocCur) DocCur->flags=DocCur->flags&~DOCF_FORM|old_doc_flags&DOCF_FORM; + Free(dirname); + "$$CL$$\n"; + MenuPop; +} +"òÿÿÿñÿÿÿñÿÿÿ +ñÿÿÿõÿÿÿ +õÿÿÿóÿÿÿ òÿÿÿöÿÿÿ +÷ÿÿÿÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿòÿÿÿþÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿóÿÿÿ +óÿÿÿóÿÿÿóÿÿÿòÿÿÿ òÿÿÿÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿòÿÿÿþÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÍÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿòÿÿÿþÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿVÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿòÿÿÿEÿÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿýÿÿÿa + a +  Õ + + + + + + +     + +       + +  + + +  + + +   + +  +  + +   + + + + + + + + ? + + +  #þÿÿÿÖÿÿÿþÿÿÿ&Öÿÿÿ& Eúÿÿÿ úÿÿÿ + ýÿÿÿ V ýÿÿÿ + +   + +#ýÿÿÿýÿÿÿúÿÿÿúÿÿÿýÿÿÿEýÿÿÿýÿÿÿúÿÿÿúÿÿÿýÿÿÿýÿÿÿúÿÿÿ÷ÿÿÿ÷ÿÿÿúÿÿÿEþÿÿÿöÿÿÿöÿÿÿöÿÿÿòÿÿÿòÿÿÿþÿÿÿòÿÿÿôÿÿÿÿÿÿÿôÿÿÿò$ $ 0$0,444,,@$@<DDD<<|„„„||ltttll$À$ÄA$S4DDFTGdHtJ„K”L¤;´',E<RLTlU|IœP¬[¼]PPLTTTLL`$`p$p€$€�$� $ °$°À$Àœ¤¤¤œœ¬´´´¬¬¼ÄÄļ¼P$P0@Pp€ °À@ +~   +#ýÿÿÿýÿÿÿúÿÿÿúÿÿÿýÿÿÿEýÿÿÿýÿÿÿúÿÿÿúÿÿÿýÿÿÿýÿÿÿúÿÿÿ÷ÿÿÿ÷ÿÿÿúÿÿÿEúÿÿÿ úÿÿÿ + ýÿÿÿ V ýÿÿÿ + +   + +#þÿÿÿÖÿÿÿþÿÿÿ&Öÿÿÿ& P + +   \ No newline at end of file diff --git a/SparrowOS/Apps/MusicOrgan/OrganCtrls.CPP b/SparrowOS/Apps/MusicOrgan/OrganCtrls.CPP new file mode 100644 index 0000000..fa4c077 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/OrganCtrls.CPP @@ -0,0 +1,87 @@ +#define TEMPO_SPACING 15 +#define TEMPO_RANGE 80 +#define TEMPO_BORDER 2 + +class TempoState +{ + I64 tempo,stacatto; +} tempo_state; + +U0 DrawTempoCtrl(CDC *dc,CCtrl *c) +{ + TempoState *s=c->state; + + dc->color=LTGREEN; + GrRect(dc, c->left,c->top,TEMPO_SPACING*3+2,TEMPO_SPACING*2+TEMPO_RANGE); + dc->color=BLACK; + GrRect(dc, c->left+TEMPO_BORDER,c->top+TEMPO_BORDER, + TEMPO_SPACING*3+2-2*TEMPO_BORDER,TEMPO_SPACING*2+TEMPO_RANGE-2*TEMPO_BORDER); + dc->color=WHITE; + GrLine(dc,c->left+TEMPO_SPACING,c->top+TEMPO_SPACING, + c->left+TEMPO_SPACING,c->top+TEMPO_SPACING+TEMPO_RANGE-1); + GrLine(dc,c->left+2*TEMPO_SPACING+1,c->top+TEMPO_SPACING, + c->left+2*TEMPO_SPACING+1,c->top+TEMPO_SPACING+TEMPO_RANGE-1); + + dc->color=LTGREEN; + GrPrintF(dc,c->left+TEMPO_SPACING-FONT_WIDTH/2, + c->top+TEMPO_SPACING+TEMPO_RANGE+3,"%d",s->tempo*10/TEMPO_RANGE); + GrPrintF(dc,c->left+2*TEMPO_SPACING+1-FONT_WIDTH/2, + c->top+TEMPO_SPACING+TEMPO_RANGE+3,"%d",s->stacatto*10/TEMPO_RANGE); + GrRect(dc,c->left+TEMPO_SPACING-3, c->top+TEMPO_SPACING+TEMPO_RANGE-1-s->tempo-2 ,7,5); + GrRect(dc,c->left+2*TEMPO_SPACING+1-3,c->top+TEMPO_SPACING+TEMPO_RANGE-1-s->stacatto-2,7,5); + dc->color=YELLOW; + GrRect(dc,c->left+TEMPO_SPACING-2, c->top+TEMPO_SPACING+TEMPO_RANGE-1-s->tempo-1 ,5,3); + GrRect(dc,c->left+2*TEMPO_SPACING+1-2,c->top+TEMPO_SPACING+TEMPO_RANGE-1-s->stacatto-1,5,3); + + dc->color=GREEN; + GrVPutS(dc,c->left+TEMPO_BORDER+2,c->top+TEMPO_SPACING+2,"Tempo"); + GrVPutS(dc,c->right-TEMPO_BORDER-2-FONT_WIDTH,c->top+TEMPO_SPACING+2,"Stacatto"); +} + +U0 UpdateDerivedTempoCtrl(CCtrl *c) +{ + TempoState *s=c->state; + c->right=c->left+TEMPO_SPACING*3+2; + c->bottom=c->top+TEMPO_SPACING*2+TEMPO_RANGE; + s->tempo =LimitI64(s->tempo,0,TEMPO_RANGE-1); + s->stacatto=LimitI64(s->stacatto,0,TEMPO_RANGE-1); +} + +U0 LeftClickTempo(CCtrl *c,I64 x,I64 y,Bool) +{ + TempoState *s=c->state; + if (x<(c->right+c->left)/2) + s->tempo=TEMPO_RANGE-1-(y-(c->top+TEMPO_SPACING)); + else + s->stacatto=TEMPO_RANGE-1-(y-(c->top+TEMPO_SPACING)); + if (c->update_derived_vals) + (*c->update_derived_vals)(c); +} + +CCtrl *TempoNew() +{ + Bool old_preempt; + CCtrl *c=CAlloc(sizeof(CCtrl)); + c->win_task=Fs; + c->flags=CTRLF_SHOW|CTRLF_CAPTURE_LEFT_IP; + c->type=CTRLT_GENERIC; + c->state=&tempo_state; + c->draw_it=&DrawTempoCtrl; + c->left_click=&LeftClickTempo; + c->update_derived_vals=&UpdateDerivedTempoCtrl; + c->left=396; + c->top=96; + old_preempt=Preempt(OFF); + QueIns(c,Fs->last_ctrl); + TaskDerivedValsUpdate; + Preempt(old_preempt); + return c; +} + +U0 TempoDel(CCtrl *c) +{ + Bool old_preempt=Preempt(OFF); + QueRem(c); + Preempt(old_preempt); + Free(c); +} diff --git a/SparrowOS/Apps/MusicOrgan/Run.CPP b/SparrowOS/Apps/MusicOrgan/Run.CPP new file mode 100644 index 0000000..56f5e94 --- /dev/null +++ b/SparrowOS/Apps/MusicOrgan/Run.CPP @@ -0,0 +1,3 @@ +#include "/SparrowOS/Apps/MusicOrgan/Load" +MusicOrgan; + diff --git a/SparrowOS/Apps/Pilgrims/Load.CPP b/SparrowOS/Apps/Pilgrims/Load.CPP new file mode 100644 index 0000000..2d15394 --- /dev/null +++ b/SparrowOS/Apps/Pilgrims/Load.CPP @@ -0,0 +1,7 @@ +#help_index "Games" + +Cd("/SparrowOS/Apps/Pilgrims");; + +#include "Pilgrims.CPP.Z" + +#help_index "" diff --git a/SparrowOS/Apps/Pilgrims/NewEngland.GRA b/SparrowOS/Apps/Pilgrims/NewEngland.GRA new file mode 100644 index 0000000000000000000000000000000000000000..d5bf162492718a03c20643f82902c3319df0fe9b GIT binary patch literal 14375 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 literal 0 HcmV?d00001 diff --git a/SparrowOS/Apps/Pilgrims/Pilgrims.CPP b/SparrowOS/Apps/Pilgrims/Pilgrims.CPP new file mode 100644 index 0000000..407a59f --- /dev/null +++ b/SparrowOS/Apps/Pilgrims/Pilgrims.CPP @@ -0,0 +1,773 @@ +/* +Ideas? + +How about clouds and rain for crops? + +How about achievement of Ben Franklin Almanac. + +How about a shipping company office. + +How about something like M.U.L.E. + +How about turkey shoot. + +Witch trials? Maybe, have God talk? + +Seven Cities of Gold or the game, Civilization, +is what's expected but that's dull. + +Rivals Spanish and French? + +*/ + + +$SP,"<1>",1$ + + + +$BG,14$ + + + + + + +$SP,"<2>",2$ + + + + + + + + +$SP,"<3>",3$ + + + + + +$SP,"<4>",4$ + + + +$SP,"<5>",5$ + +$BG,9$ + + + + + $SP,"<6>",6$ + + + + +$SP,"<7>",7$ + +$BG$ +#define AFT_MAST 16 +#define BOW_MAST 14 +#define MAST_HEIGHT 20 +#define AFT_LEN 36 +#define BOW_LEN 43 +#define BERTH 28 + +F64 screen_x,screen_y,d_screen_x,d_screen_y, + wind_speed, + + //This is on a wave close to ship + //in world coordinates. + ship_wave_x,ship_wave_y, + + church_x,church_y, + + wave_speed,wave_é,d_wave_é,wave_period, + wave_amplitude; + +Bool wave_sound,ship_landed; +F64 song_time,game_over_time; + +F64 view_scale,new_view_scale; +CDC *master_map; +U8 *vm; +F64 men; + +#define NUM_DOLPHINS 5 +#define NUM_PIGRAIMS 10 + +class Obj +{ + F64 x,y,radius, + é,d_é, + speed; +} ship,dolphins[NUM_DOLPHINS],pilgrims[NUM_PIGRAIMS]; + +#define MAX_BUBBLES 1024 +class Bubble +{ + I32 x,y; +} bubbles[MAX_BUBBLES]; + +#define MAX_GARDENS 128 +class Garden +{ + I32 x,y; +} gardens[MAX_GARDENS]; +I64 num_gardens; + + +F64 WaterHeight(F64 x,F64 y) +{ //Returns wave height at world coordinate pt + F64 dxn=Cos(wave_é), + dyn=Sin(wave_é),é; + é=2*ã*((x-ship_wave_x)*dxn+(y-ship_wave_y)*dyn)/wave_period; + return wave_amplitude*Cos(é); +} + +I64 *ShipMat() +{ //Returns rotation matrix for ship bobbing on waves + F64 x1,y1,z1,x2,y2,z2,a; + I64 *result; + + x1=ship.x-AFT_LEN/2*Cos(ship.é)/view_scale; + y1=ship.y-AFT_LEN/2*Sin(ship.é)/view_scale; + z1=WaterHeight(x1,y1); + x2=ship.x+BOW_LEN/2*Cos(ship.é)/view_scale; + y2=ship.y+BOW_LEN/2*Sin(ship.é)/view_scale; + z2=WaterHeight(x2,y2); + a=ASin((z2-z1)/((AFT_LEN/2+BOW_LEN/2)/view_scale)); + result=GrRotY(a); + + z1=WaterHeight(ship.x,ship.y); + x2=ship.x-BERTH/2*Sin(ship.é)/view_scale; + y2=ship.y+BERTH/2*Cos(ship.é)/view_scale; + z2=WaterHeight(x2,y2); + a=ASin((z2-z1)/(BERTH/view_scale)); + GrRotXEqu(result,a); + + GrRotZEqu(result,ship.é); + return result; +} + +U0 BubbleAdd(I64 x,I64 y) +{ + I64 i=RandU16&(MAX_BUBBLES-1); + bubbles[i].x=x; + bubbles[i].y=y; +} + +U0 PosChurch(F64 x,F64 y) +{ + I64 i; + CDC *dc=DCAlias(master_map,Fs); + dc->color =ROP_COLLISION; + dc->bkcolor=BLACK; + while (x>0) { + dc->collision_cnt=0; + CSpritePlot3(dc,x,y,0,$IB,"<2>",2$); + if (dc->collision_cnt>2000) + break; + x--; + } + church_x=x; church_y=y; + DCDel(dc); + for (i=0;iwin_pixel_width, cx=w>>1, + h=task->win_pixel_height,cy=h>>1, + c=1.05*(MaxI64(cx,cy)+wave_period), + *ship_r,x,y,z; + F64 d,xx,yy,dx,dy,dx2,dy2,wave_x,wave_y; + Bool bow_down; + + task->text_attr=LTBLUE<<4; + + //Draw Bubbles + dc->color=BLUE; + for (i=0;icolor=BLUE; + if (Abs(dx)>Abs(dy)) { + xx=wave_x; yy=wave_y; + while (xx>-c) { + GrLine(dc,xx-dx2,yy-dy2,xx+dx2,yy+dy2); + if (dx>0) { xx-=dx; yy-=dy; + } else { xx+=dx; yy+=dy; } + } + xx=wave_x; yy=wave_y; + while (xx-c) { + GrLine(dc,xx-dx2,yy-dy2,xx+dx2,yy+dy2); + if (dy>0) { xx-=dx; yy-=dy; + } else { xx+=dx; yy+=dy; } + } + xx=wave_x; yy=wave_y; + while (yy",7$,dolphins[i].é); + + //Draw Land + dc->color=ROP_MONO+YELLOW; + GrVectMapBlotMP(dc,-screen_x,-screen_y,vm,view_scale); + + //Draw Ship + dc->color=ROP_EQU; + ship_r=ShipMat; + CSpritePlotRotMat3b(dc,ship.x*view_scale-screen_x,ship.y*view_scale-screen_y,0,$IB,"<6>",6$,ship_r); + + //Rudder + x=-AFT_LEN; y=0; z=0; + GrRot(ship_r,&x,&y,&z); + x+=ship.x*view_scale; y+=ship.y*view_scale; + dc->color=BLACK; + dc->pen_width=2; + GrLine3(dc,x-screen_x,y-screen_y,0,x-8*Cos(ship.é-2.5*ship.d_é)-screen_x,y-8*Sin(ship.é-2.5*ship.d_é)-screen_y,0); + dc->pen_width=1; + + //Wake + x=(-(AFT_LEN+2)+RandU16%13-6)/view_scale; y=(RandU16%13-6)/view_scale; z=0; + GrRot(ship_r,&x,&y,&z); + x+=ship.x; y+=ship.y; + BubbleAdd(x,y); + for (i=0;icolor=BLACK; + GrLine3(dc,x-dx-screen_x,y-dy-screen_y,0,x+dx-screen_x,y+dy-screen_y,0); + + xx=x-screen_x; yy=y-screen_y; + + if (!bow_down) { + x=-AFT_MAST; y=0; z=MAST_HEIGHT; + GrRot(ship_r,&x,&y,&z); + x+=ship.x*view_scale; y+=ship.y*view_scale; + dc->color=DKGRAY; + dc->pen_width=4; + GrLine3(dc,x-screen_x,y-screen_y,0,xx,yy,0); + } + + dc->pen_width=2; + for (d=0;dcolor=WHITE; + GrLine3(dc,x-dx-screen_x,y-dy-screen_y,0,x+dx-screen_x,y+dy-screen_y,0); + } + dc->pen_width=1; + + x=-AFT_MAST; y=0; z=MAST_HEIGHT; + GrRot(ship_r,&x,&y,&z); + x+=ship.x*view_scale; y+=ship.y*view_scale; + dc->color=BLACK; + GrLine3(dc,x-dx-screen_x,y-dy-screen_y,0,x+dx-screen_x,y+dy-screen_y,0); + + if (bow_down) { + x=-AFT_MAST; y=0; z=MAST_HEIGHT; + GrRot(ship_r,&x,&y,&z); + x+=ship.x*view_scale; y+=ship.y*view_scale; + dc->color=DKGRAY; + dc->pen_width=4; + GrLine3(dc,x-screen_x,y-screen_y,0,xx,yy,0); + } + + dc->color=BLACK; + dc->pen_width=1; + GrCircle3(dc,x-screen_x,y-screen_y,0,2); + + //Bow Sail + x=BOW_MAST; y=0; z=0; + GrRot(ship_r,&x,&y,&z); + x+=ship.x*view_scale; y+=ship.y*view_scale; + dc->color=BLACK; + GrLine3(dc,x-dx-screen_x,y-dy-screen_y,0,x+dx-screen_x,y+dy-screen_y,0); + + xx=x-screen_x; yy=y-screen_y; + + if (!bow_down) { + x=BOW_MAST; y=0; z=MAST_HEIGHT; + GrRot(ship_r,&x,&y,&z); + x+=ship.x*view_scale; y+=ship.y*view_scale; + dc->color=DKGRAY; + dc->pen_width=4; + GrLine3(dc,x-screen_x,y-screen_y,0,xx,yy,0); + } + + dc->pen_width=2; + for (d=0;dcolor=WHITE; + GrLine3(dc,x-dx-screen_x,y-dy-screen_y,0,x+dx-screen_x,y+dy-screen_y,0); + } + dc->pen_width=1; + + x=BOW_MAST; y=0; z=MAST_HEIGHT; + GrRot(ship_r,&x,&y,&z); + x+=ship.x*view_scale; y+=ship.y*view_scale; + dc->color=BLACK; + GrLine3(dc,x-dx-screen_x,y-dy-screen_y,0,x+dx-screen_x,y+dy-screen_y,0); + + if (bow_down) { + x=BOW_MAST; y=0; z=MAST_HEIGHT; + GrRot(ship_r,&x,&y,&z); + x+=ship.x*view_scale; y+=ship.y*view_scale; + dc->color=DKGRAY; + dc->pen_width=4; + GrLine3(dc,x-screen_x,y-screen_y,0,xx,yy,0); + } + + dc->color=BLACK; + dc->pen_width=1; + GrCircle3(dc,x-screen_x,y-screen_y,0,2); + + dc->color=BLACK; + GrPrintF(dc,0,0,"Speed:%5.1f Knots",ship.speed); + GrPrintF(dc,0,FONT_HEIGHT,"Men:%f",men); + + //Check for wreck + x=BOW_LEN; y=0; z=0; + GrRot(ship_r,&x,&y,&z); + x+=ship.x*view_scale; y+=ship.y*view_scale; + if (!ship_landed && GrPeek(dc,x-screen_x,y-screen_y)==YELLOW) { + Noise(500,500,1000); + song_time =tNP+0.5; + game_over_time=tNP+1.0; + wave_sound=FALSE; + ship_landed=TRUE; + PosChurch(x/view_scale,y/view_scale); + } + + if (ship_landed) { + //Draw Gardens + for (i=0;i",5$); + + //Draw Church + CSpritePlot3(dc,church_x*view_scale-screen_x,church_y*view_scale-screen_y,0,$IB,"<2>",2$); + //Draw Pilgrims + for (i=0;i",3$:$IB,"<4>",4$); + if (tNP>game_over_time && Blink(,tP(task))) { + dc->color=LTRED; + GrPrintF(dc,(task->win_pixel_width-14*FONT_WIDTH)/2, + (task->win_pixel_height-FONT_HEIGHT)/2,"Game Completed"); + } + } + Free(ship_r); +} + + +CColorROPU32 pray_colors[1]={RED}; +CTask *pray_task; + +U0 LeftClickPrayButton(CCtrl *,I64,I64,Bool down) +{ //$LK,"::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z","FI:::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z"$ + I64 i,size,l=512; + U8 *bible_filename,*buf; + if (down && !TaskValidate(pray_task)) { + bible_filename=Define("ST_BIBLE_FILE"); + if (buf=FileRead(bible_filename,&size)) { + i=GetTimeStamp>>4%(size-l); + buf[i+l]=0; + pray_task=PopUpViewStr(buf+i); + Free(buf); + } + } +} + +U0 Init() +{ + I64 i; + Fs->draw_it=NULL; + Kill(Fs->song_task); + Fs->song_task=NULL; + WinMgrSync; + + men=102.0; + pray_task=NULL; + + screen_x=400; d_screen_x=0; + screen_y=500; d_screen_y=0; + view_scale=1.0; new_view_scale=1.0; + MemSetU32(&bubbles,MAX_I32,sizeof(bubbles)/sizeof(U32)); + + num_gardens=0; + MemSetU32(&gardens,MAX_I32,sizeof(gardens)/sizeof(U32)); + + MemSet(&dolphins,0,sizeof(dolphins)); + for (i=0;idraw_it=&DrawIt; +} + + +U0 AnimateObj(Obj *tempo,F64 dt) +{ + tempo->x+=tempo->speed*dt*Cos(tempo->é); + tempo->y+=tempo->speed*dt*Sin(tempo->é); + tempo->é=Wrap(tempo->é+tempo->d_é*dt); + tempo->d_é=LowPass1(0.5,tempo->d_é,0,dt); +} + +U0 SongTask(I64) +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + Play("M3/4"); + Play("hRW13qDhG4eB3G"); + Play("4hBqA3hGqE"); + Play("hDqDhG4eB3G"); + Play("4hBqAh.DhD"); + Fs->parent_task->song_task=NULL; +} + +#define SCREEN_BUMP 100 + +U0 AnimateTask(I64) +{ + I64 i,j, + w=Fs->parent_task->win_pixel_width, cx=w/2, + h=Fs->parent_task->win_pixel_height, cy=h/2; + F64 die_timer=0,d,dx,dy,dx2,dy2,dxn,dyn,t0=tP(Fs->parent_task),dt,old_view_scale; + + while (TRUE) { + if (TaskValidate(pray_task)) { + while (TaskValidate(pray_task)) + WinMgrSync; + pray_task=NULL; + t0=tP(Fs->parent_task); + } + + dt=tP(Fs->parent_task)-t0; + t0=tP(Fs->parent_task); + + for (die_timer+=dt;die_timer>0.1;die_timer-=0.1) + if (Rand<0.05) + men*=Exp(-0.05*(Rand+0.05)`20); + + old_view_scale=view_scale; + view_scale=Exp(0.5*dt*(Ln(new_view_scale)-Ln(view_scale))+Ln(view_scale)); + screen_x=(screen_x+cx)*view_scale/old_view_scale-cx; + screen_y=(screen_y+cy)*view_scale/old_view_scale-cy; + + for (i=0;iw-1-dolphins[i].radius) + dolphins[i].x-=(w-2*dolphins[i].radius)/view_scale; + if (dolphins[i].y-screen_yh-1-dolphins[i].radius) + dolphins[i].y-=(h-2*dolphins[i].radius)/view_scale; + } + + if (ship_landed) { + for (i=0;iw-1-w/4) + d_screen_x+=SCREEN_BUMP; + if (church_y*view_scale-screen_y-0.9*d_screen_yh-1-h/4) + d_screen_y+=SCREEN_BUMP; + } else { + d=Wrap(ship.é-Wrap(wave_é,ship.é-ã)); + if (Abs(d)<ã) + d=(Abs(d)-ã)*Sign(-d); + d=wind_speed*Cos(d/2); + ship.speed=LowPass1(0.25,ship.speed,d,dt); + AnimateObj(&ship,dt); + if (ship.x*view_scale-screen_x-0.9*d_screen_xw-1-w/4) + d_screen_x+=SCREEN_BUMP; + if (ship.y*view_scale-screen_y-0.9*d_screen_yh-1-h/4) + d_screen_y+=SCREEN_BUMP; + if (ship.x<0) ship.x=0; + if (ship.y<0) ship.y=0; + } + + if (screen_x<0) { + screen_x=0; + d_screen_x=0; + } + if (screen_y<0) { + screen_y=0; + d_screen_x=0; + } + + wave_é=Wrap(wave_é+d_wave_é*dt); + d_wave_é=Limit(LowPass1(1.0,d_wave_é, + d_wave_é+1.0*(Rand-0.5),dt),-0.05,0.05); + + screen_x+=0.9*d_screen_x*dt; + d_screen_x-=0.9*d_screen_x*dt; + screen_y+=0.9*d_screen_y*dt; + d_screen_y-=0.9*d_screen_y*dt; + + dxn=Cos(wave_é); + dyn=Sin(wave_é); + dx=wave_period*dxn; + dy=wave_period*dyn; + ship_wave_x-=wave_speed*dt/(2*ã)*dx; + ship_wave_y-=wave_speed*dt/(2*ã)*dy; + if (Abs(dx)>Abs(dy)) { + i=(ship_wave_x-ship.x)/dx; + ship_wave_x-=i*dx; + ship_wave_y-=i*dy; + dx2=ship_wave_x-ship.x; + dy2=ship_wave_y-ship.y; + d=dyn*dx2-dxn*dy2; + ship_wave_x-=dyn*d; + ship_wave_y+=dxn*d; + } else { + i=(ship_wave_y-ship.y)/dy; + ship_wave_x-=i*dx; + ship_wave_y-=i*dy; + dx2=ship_wave_x-ship.x; + dy2=ship_wave_y-ship.y; + d=dyn*dx2-dxn*dy2; + ship_wave_x-=dyn*d; + ship_wave_y+=dxn*d; + } + + if (wave_sound) + Snd(200+8*WaterHeight(ship.x,ship.y)); + else if (song_time && tNP>song_time) { + Kill(Fs->parent_task->song_task); + Fs->parent_task->song_task=Spawn(&SongTask,NULL,"Song",Fs->parent_task); + song_time=0; + } + WinMgrSync; + } +} + +U0 Pilgrims() +{ + I64 msg_code,ch,sc; + CCtrl *bt_pray; + + "Initializing Maps...\n"; + master_map=GRARead("NewEngland"); //See $LK,"Acknowledgements","FF:::/SparrowOS/Doc/Acknowledgements.TXT.Z,US Geological"$ (7). + + vm=DC2VectMap(master_map); + PopUpOk("This is about the pilgrims who fled\n" + "religious persecution in England.\n" + "They sailed in 1620 on the Mayflower\n" + "and landed at Plymouth, Massachusetts.\n" + "\n" + "This game is comic, mostly. Be sure\n" + "to try 'z' or 'Z' for zooming.\n"); + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + + MenuPush( + "File {" + " Abort(,CH_SHIFT_ESC);" + " Exit(,CH_ESC);" + "}" + "Play {" + " Restart(,CH_NEW_LINE);" + " Pray(,'p');" + " Port(,,SC_CURSOR_LEFT);" + " Starboard(,,SC_CURSOR_RIGHT);" + "}" + "View {" + " ZoomIn(,'z');" + " ZoomOut(,'Z');" + "}" + ); + + WordStat; + Preempt(OFF); + + bt_pray=CtrlButtonNew(0,2.5*FONT_HEIGHT,,,,"Pray\0",pray_colors), + bt_pray->left_click=&LeftClickPrayButton; + + WinMax; + DocCursor; + DocClear; + Fs->song_task=NULL; + Init; + Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",Fs); + try { + while (TRUE) { + switch (msg_code=GetMsg(&ch,&sc,1<0.1) + new_view_scale/=1.5; + break; + case CH_NEW_LINE: + Init; + break; + case CH_ESC: + case CH_SHIFT_ESC: + goto pilgrim_done; + } + break; + } + } +pilgrim_done: + } catch + CatchAll; + MenuPop; + SettingsPop; + CtrlButtonDel(bt_pray); + GrVectMapDel(vm); + DCDel(master_map); +} + X#Õÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +øÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿB/! êÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿJ1Aõÿÿÿ½ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"!øÿÿÿâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ øÿÿÿâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ² ôÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ + + + + +ÿÿÿÿÿÿÿÿÿÿÿ + + + + +ÿÿÿÿÿÿÿÿÿÿÿ + + + + +ÿÿÿÿÿÿÿÿÿÿÿ + + + + +ÿÿÿÿÿÿÿÿÿÿÿ + + + +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/SparrowOS/Apps/Pilgrims/Run.CPP b/SparrowOS/Apps/Pilgrims/Run.CPP new file mode 100644 index 0000000..3b77114 --- /dev/null +++ b/SparrowOS/Apps/Pilgrims/Run.CPP @@ -0,0 +1,2 @@ +#include "/SparrowOS/Apps/Pilgrims/Load" +Pilgrims; diff --git a/SparrowOS/Apps/Span/Install.CPP b/SparrowOS/Apps/Span/Install.CPP new file mode 100644 index 0000000..659fce7 --- /dev/null +++ b/SparrowOS/Apps/Span/Install.CPP @@ -0,0 +1 @@ +MkDir("HOME/Span"); diff --git a/SparrowOS/Apps/Span/Load.CPP b/SparrowOS/Apps/Span/Load.CPP new file mode 100644 index 0000000..f56b419 --- /dev/null +++ b/SparrowOS/Apps/Span/Load.CPP @@ -0,0 +1,10 @@ +#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 new file mode 100644 index 0000000..3d9cf96 --- /dev/null +++ b/SparrowOS/Apps/Span/Run.CPP @@ -0,0 +1,3 @@ +Cd("/SparrowOS/Apps/Span");; +#include "Load" +Span; diff --git a/SparrowOS/Apps/Span/Span.HPP b/SparrowOS/Apps/Span/Span.HPP new file mode 100644 index 0000000..93bf6aa --- /dev/null +++ b/SparrowOS/Apps/Span/Span.HPP @@ -0,0 +1,54 @@ +#define SPAN_VERSION 1.0 + +class SpanHeader +{ + F64 version; + I32 num_masses,num_springs; +}; + +class MyMass:CMass +{ + F64 radius,cost,load_t; + CColorROPU32 color; +} *cursor_mass; + +class MySpring:CSpring +{ + F64 compression_strength,tensile_strength,cost; + F64 base_compression_strength,base_tensile_strength, + base_constant,base_cost; + + CColorROPU32 color; + I32 pen_width; +}; + + +CMathODE *ode=NULL; + +CCtrlButtonState snap_button,run_button,mode_button; + +CColorROPU32 run_colors[2]={RED,GREEN}; +CColorROPU32 snap_colors[2]={RED,GREEN}; + +#define SNAP_SIZE 4 + +#define MD_MASS 0 +#define MD_CONCRETE 1 +#define MD_STEEL 2 +#define MD_WIRE 3 +#define MD_MOVE 4 +#define MD_DELETE 5 +#define MD_NUM_MODES 6 +CColorROPU32 mode_colors[MD_NUM_MODES]= +{BROWN,LTGRAY,DKGRAY,RED,PURPLE,RED}; +DefineListLoad("ST_SPAN_MODES","Mass\0Concrete\0Steel\0Wire\0Move\0Delete\0"); + +class SpanAnimateStruct +{ + U8 *saved_ode; + F64 elapsed_t,start_wall_t; +} a; + + +extern MyMass PlaceMass(I64 x, I64 y); +extern F64 SpanTime(CTask *task); diff --git a/SparrowOS/Apps/Span/SpanBridge1.CPP b/SparrowOS/Apps/Span/SpanBridge1.CPP new file mode 100644 index 0000000..56e900a --- /dev/null +++ b/SparrowOS/Apps/Span/SpanBridge1.CPP @@ -0,0 +1,90 @@ +#define STRENGTH_SCALE 1.5e7 +#define SPRING_SCALE 6.0e6 +#define COST_SCALE 375.0 +#define MASS_RADIUS 3.0 +#define MASS_WEIGHT 10.0 +#define WIRE_PERCENT 0.99 + +#define RIVER_BANK_COLS 5 +#define SKY_LINES 40 + +#define FIXED_X1 ((RIVER_BANK_COLS-1)*FONT_WIDTH) +#define FIXED_X2 ((RIVER_BANK_COLS-4)*FONT_WIDTH) +#define FIXED_X3 (TEXT_COLS*FONT_WIDTH>>1) +#define FIXED_Y1 ((SKY_LINES+1)*FONT_HEIGHT) +#define FIXED_Y2 ((SKY_LINES+5)*FONT_HEIGHT) +#define FIXED_Y3 ((TEXT_ROWS-8)*FONT_HEIGHT) + +#define LOAD_WEIGHTS 8 + +U0 SpanBridge1Init(CMathODE *) +{ + I64 i; + + MyMass *tempm; + tempm=PlaceMass(GR_WIDTH-FIXED_X1,FIXED_Y1); + tempm->flags|=MSF_FIXED; + tempm=PlaceMass(GR_WIDTH-FIXED_X2,FIXED_Y1); + tempm->flags|=MSF_FIXED; + tempm=PlaceMass(GR_WIDTH-FIXED_X1,FIXED_Y2); + tempm->flags|=MSF_FIXED; + tempm=PlaceMass(FIXED_X1,FIXED_Y1); + tempm->flags|=MSF_FIXED; + tempm=PlaceMass(FIXED_X2,FIXED_Y1); + tempm->flags|=MSF_FIXED; + tempm=PlaceMass(FIXED_X1,FIXED_Y2); + tempm->flags|=MSF_FIXED; + tempm=PlaceMass(FIXED_X3,FIXED_Y3); + tempm->flags|=MSF_FIXED; + + for (i=0;iload_t=(i+1.0)/LOAD_WEIGHTS; + tempm->color=RED; + } + + "$$CL$$$$BG,LTCYAN$$"; + NewLine(SKY_LINES); + for (i=0;i<10;i++) { + "$$BG,BROWN$$"; + Spaces(RIVER_BANK_COLS); + "$$BG,LTCYAN$$"; + Spaces(TEXT_COLS-2*RIVER_BANK_COLS); + "$$BG,BROWN$$"; + Spaces(RIVER_BANK_COLS); + NewLine; + } + for (i=0;i<5;i++) { + "$$BG,BROWN$$"; + Spaces(RIVER_BANK_COLS+i); + "$$BG,BLUE$$"; + Spaces(TEXT_COLS/2-RIVER_BANK_COLS-2*i); + "$$BG,BROWN$$"; + Spaces(2*i); + "$$BG,BLUE$$"; + Spaces(TEXT_COLS/2-RIVER_BANK_COLS-2*i); + "$$BG,BROWN$$"; + Spaces(RIVER_BANK_COLS+i); + NewLine; + } +} + +U0 AdjustLoads(CTask *task,CMathODE *ode) +{ + MyMass *tempm=ode->next_mass; + F64 d,tt=SpanTime(task)/10.0; + while (tempm!=&ode->next_mass) { + if (tempm->load_t) { + if (tt) { + d=Abs(Sin(tempm->load_t*ã+tt)); //0.0<=d<=1.0 + tempm->mass=100.0*Sqr(Sqr(d+1.0)); + tempm->radius=7.0*d+2.0; + } else { + tempm->mass=MASS_WEIGHT; + tempm->radius=MASS_RADIUS; + } + } + tempm=tempm->next; + } +} diff --git a/SparrowOS/Apps/Span/SpanDerive.CPP b/SparrowOS/Apps/Span/SpanDerive.CPP new file mode 100644 index 0000000..dfe5b1e --- /dev/null +++ b/SparrowOS/Apps/Span/SpanDerive.CPP @@ -0,0 +1,47 @@ +U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *) +{ +//The forces due to springs and drag are +//automatically handled by the +//ode code. We can add new forces +//here. + CTask *task=ode->win_task; + F64 d,dd; + CD3 p,p2; + MyMass *tempm1,*tempm2; + + //Collisions + tempm1=ode->next_mass; + while (tempm1!=&ode->next_mass) { + tempm2=tempm1->next; + while (tempm2!=&ode->next_mass) { + D3Sub(&tempm2->state->x,&tempm1->state->x,&p); + dd=D3SqrNorm(&p); + if (dd<=Sqr(tempm1->radius+tempm2->radius)) { + d=Sqrt(dd)+0.0001; + dd=10.0*Sqr(Sqr(Sqr(tempm1->radius+tempm2->radius)-dd)); + D3MulEqu(&p,dd/d); + D3AddEqu(&tempm2->DstateDt->DxDt,&p); + D3SubEqu(&tempm1->DstateDt->DxDt,&p); + } + tempm2=tempm2->next; + } + tempm1=tempm1->next; + } + + tempm1=ode->next_mass; + while (tempm1!=&ode->next_mass) { + if (!(tempm1->flags&MSF_FIXED)) + tempm1->DstateDt->DyDt+=10.0*tempm1->mass; //Gravity + tempm1=tempm1->next; + } + + if (cursor_mass) { + p2.x=ipx-task->win_pixel_left-task->win_scroll_x; + p2.y=ipy-task->win_pixel_top-task->win_scroll_y; + p2.z=0; + D3Sub(&p2,&cursor_mass->state->x,&p); + d=10.0*D3SqrNorm(&p); + D3MulEqu(&p,d); + D3AddEqu(&cursor_mass->DstateDt->DxDt,&p); + } +} diff --git a/SparrowOS/Apps/Span/SpanMain.CPP b/SparrowOS/Apps/Span/SpanMain.CPP new file mode 100644 index 0000000..b5030fe --- /dev/null +++ b/SparrowOS/Apps/Span/SpanMain.CPP @@ -0,0 +1,504 @@ +F64 SpanTime(CTask *task) +{ + if (run_button.state) + return a.elapsed_t+tP(task)-a.start_wall_t; + else + return a.elapsed_t; +} + +F64 Cost(CMathODE *ode) +{ + MyMass *tempm; + MySpring *temps; + F64 result=0; + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + result+=tempm->cost; + tempm=tempm->next; + } + temps=ode->next_spring; + while (temps!=&ode->next_spring) { + result+=temps->cost; + temps=temps->next; + } + return result; +} + + +U0 DrawIt(CTask *task,CDC *dc) +{ + Bool old_suspend1,old_suspend2; + I64 i,j; + MyMass *tempm; + MySpring *temps; + + old_suspend1=Suspend(task); + old_suspend2=Suspend(task->animate_task); + temps=ode->next_spring; + while (temps!=&ode->next_spring) { + if (!(temps->flags&SSF_INACTIVE)) { + dc->color=temps->color; + dc->pen_width=temps->pen_width; + GrLine3(dc,temps->end1->x,temps->end1->y,0, + temps->end2->x,temps->end2->y,0); + } + temps=temps->next; + } + + if (cursor_mass) { + dc->color=RED; + dc->pen_width=2; + GrLine3(dc,ipx-task->win_pixel_left-task->win_scroll_x,ipy-task->win_pixel_top-task->win_scroll_y,0, + cursor_mass->x,cursor_mass->y,0); + } + + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + if (!(tempm->flags&MSF_INACTIVE)) { + dc->color=BLACK; + GrCircle(dc,tempm->x,tempm->y,tempm->radius); + GrFloodFill(dc,tempm->x,tempm->y,TRUE); + dc->color=tempm->color; + GrCircle(dc,tempm->x,tempm->y,tempm->radius); + GrFloodFill(dc,tempm->x,tempm->y,TRUE); + dc->color=BLACK; + GrCircle(dc,tempm->x,tempm->y,tempm->radius); + } + tempm=tempm->next; + } + + dc->color=BLACK; + if (snap_button.state) + for (j=0;jcolor=BLACK; + GrPrintF(dc,90,0,"Cost:%12.2,f",Cost(ode)); + GrPrintF(dc,90,FONT_HEIGHT,"Time:%12.2f",SpanTime(task)); + Suspend(task,old_suspend1); + Suspend(task->animate_task,old_suspend2); +} + +MyMass PlaceMass(I64 x, I64 y) +{ + MyMass *tempm=CAlloc(sizeof(MyMass)); + tempm->drag_profile_factor=1.0; + tempm->x=x; + tempm->y=y; + tempm->mass=MASS_WEIGHT; + tempm->radius=MASS_RADIUS; + tempm->cost=25.0*COST_SCALE; + tempm->color=YELLOW; + QueIns(tempm,ode->last_mass); + return tempm; +} + +U0 NullSpring(MySpring *temps,F64 scale) +{ + F64 d=D3Dist(&temps->end1->x,&temps->end2->x); + temps->rest_len=d*scale; + temps->compression_strength=temps->base_compression_strength/(temps->rest_len+1.0); + temps->tensile_strength=temps->base_tensile_strength/(temps->rest_len+1.0); + temps->constant=temps->base_constant/(temps->rest_len+1.0); + temps->cost=temps->base_cost*temps->rest_len; +} + +U0 MoveMass(MyMass *tempm,I64 x, I64 y) +{ + MySpring *temps; + tempm->x=x; + tempm->y=y; + tempm->DxDt=0; + tempm->DyDt=0; + temps=ode->next_spring; + while (temps!=&ode->next_spring) { + if (temps->end1==tempm || temps->end2==tempm) { + if (temps->flags&SSF_NO_COMPRESSION) + NullSpring(temps,WIRE_PERCENT); + else + NullSpring(temps,1.0); + } + temps=temps->next; + } +} + +U0 DelSpring(MySpring *temps) +{ + QueRem(temps); + Free(temps); +} + +U0 DelMass(MyMass *tempm) +{ + MySpring *temps,*temps1; + temps=ode->next_spring; + while (temps!=&ode->next_spring) { + temps1=temps->next; + if (temps->end1==tempm || temps->end2==tempm) + DelSpring(temps); + temps=temps1; + } + QueRem(tempm); + Free(tempm); +} + +U0 DrawSpring(CDC *dc,MyMass *tempm,I64 x,I64 y) +{ + switch (mode_button.state) { + case MD_CONCRETE: + dc->color=LTGRAY; + dc->pen_width=2; + break; + case MD_STEEL: + dc->color=DKGRAY; + dc->pen_width=2; + break; + case MD_WIRE: + dc->color=RED; + dc->pen_width=1; + break; + } + GrLine3(dc,tempm->x,tempm->y,0,x,y,0); +} + +U0 PlaceSpring(MyMass *tempm1,MyMass *tempm2) +{ + MySpring *temps=CAlloc(sizeof(MySpring)); + temps->end1=tempm1; + temps->end2=tempm2; + switch (mode_button.state) { + case MD_CONCRETE: + temps->base_constant = 3.00*SPRING_SCALE; + temps->base_compression_strength=10.00*STRENGTH_SCALE; + temps->base_tensile_strength = 0.35*STRENGTH_SCALE; + temps->base_cost = 0.30*COST_SCALE; + NullSpring(temps,1.0); + temps->color=LTGRAY; + temps->pen_width=2; + break; + case MD_STEEL: + temps->base_constant = 1.00*SPRING_SCALE; + temps->base_compression_strength= 1.00*STRENGTH_SCALE; + temps->base_tensile_strength = 1.00*STRENGTH_SCALE; + temps->base_cost = 1.00*COST_SCALE; + NullSpring(temps,1.0); + temps->color=DKGRAY; + temps->pen_width=2; + break; + case MD_WIRE: + temps->base_constant = 0.25*SPRING_SCALE; + temps->base_compression_strength= 0.00; + temps->base_tensile_strength = 0.50*STRENGTH_SCALE; + temps->base_cost = 0.10*COST_SCALE; + NullSpring(temps,WIRE_PERCENT); + temps->color=RED; + temps->pen_width=1; + temps->flags|=SSF_NO_COMPRESSION; + break; + } + QueIns(temps,ode->last_spring); +} + +U0 AnimateTask(SpanAnimateStruct *a) +{ //Preemption is off by default. + MySpring *temps,*temps1; + U8 old_run=FALSE,old_snap_state=OFF; + F64 f; + while (TRUE) { + temps=ode->next_spring; + while (temps!=&ode->next_spring) { + temps1=temps->next; + f=temps->f; + if (f>0 && f>temps->compression_strength && !(temps->flags&SSF_NO_COMPRESSION)|| + f<0 && -f>temps->tensile_strength && !(temps->flags&SSF_NO_TENSION)) + temps->flags|=SSF_INACTIVE; + temps=temps1; + } + AdjustLoads(Fs->parent_task,ode); + WinMgrSync; //CMathODE updated once per refresh. + if (old_run!=run_button.state) { + if (run_button.state) { + if (!a->elapsed_t || !a->saved_ode) { + Free(a->saved_ode); + a->saved_ode=SpanSave(ode); + } + a->start_wall_t=tP(Fs->parent_task); + ode->flags&=~ODEF_PAUSED; + } else { + ode->flags|=ODEF_PAUSED; + a->elapsed_t+=tP(Fs->parent_task)-a->start_wall_t; + } + old_run=run_button.state; + } + if (old_snap_state!=snap_button.state) { + if (snap_button.state) + SetSnap(&Fs->parent_task->snap,SNAP_SIZE,1.0); + else + SetSnap(&Fs->parent_task->snap,1,1.0); + old_snap_state=snap_button.state; + } + } +} + +U0 Init(SpanAnimateStruct *a) +{ + ode=SpanNew; + + run_button.state=0; + WinMgrSync; //Allow stop to register in animate task. + WinMgrSync; + + if (a->saved_ode) + SpanLoad(ode,a->saved_ode); + else + SpanBridge1Init(ode); + a->elapsed_t=0; + cursor_mass=NULL; +} + +U0 SongTask(I64) +{ //Song by Terry A. Davis + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 3.636; + music_stacatto_factor= 0.902; + while (TRUE) { + Play("W13q.EeDqED2G3DhE"); + Play("q.EeDqED2G3DhE"); + Play("q.FeEFEqF2G3EhF"); + Play("q.FeEFEqF2G3EhF"); + } +} + +U0 Span() +{ + I64 msg_code,p1,p2; + MyMass *tempm1=NULL,*tempm2=NULL; + MySpring *temps; + CCtrl *bt_run,*bt_mode,*bt_snap; + U8 *src; + CDC *dc=DCAlias; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WinMax; + Fs->song_task=Spawn(&SongTask,NULL,"Song",Fs); + + bt_run =CtrlButtonNew(0,0, 80,,2,"Stopped\0Running\0",run_colors,&run_button), + bt_snap=CtrlButtonNew(0,2.5*FONT_HEIGHT,80,,2,"Snap Off\0Snap On\0",snap_colors,&snap_button), + bt_mode=CtrlButtonNew(0,5.0*FONT_HEIGHT,80,,MD_NUM_MODES,Define("ST_SPAN_MODES"),mode_colors,&mode_button); + a.saved_ode=NULL; + +//This Preempt() eliminates a lot of hassles. +//The concern is about changing +//que links while the winmgr task +//is updating the ode or screen. + +//The Window mgr suspends this +//task while updating the ode. It +//will not be interrupted and with this +//preempt, we will not be interrupted. +//There is little downside to Preempt() +//since we will yield during GetMsg(). + Preempt(OFF); + + + DocCursor; + WinBorder; + WordStat; + Fs->win_inhibit|=WIF_DBL_CLICK; + + MenuPush( +"File {" +" New(,CH_CTRLN);" +" Open(,CH_CTRLO);" +" SaveAs(,CH_CTRLA);" +" Abort(,CH_SHIFT_ESC);" +" Exit(,CH_ESC);" +"}" +"Play {" +" Restart(,CH_NEW_LINE);" +" RunStop(,CH_SPACE);" +" SnapGrid(,'g');" +" Mass(,'m');" +" Concrete(,'c');" +" Steel(,'s');" +" Wire(,'w');" +" Move(,'v');" +" Delete(,'d');" +"}" + ); + + Init(&a); + Fs->animate_task=Spawn(&AnimateTask,&a,"Animate",Fs); + Fs->draw_it=&DrawIt; + + PopUpOk( + "Build a bridge to hold-up the\n" + "red masses. Test your design\n" + "by pressing run/stop.\n\n" + "The lowest cost bridge that\n" + "stays standing wins.\n\n" + "For a variation, try without\n" + "using the center base point.\n" + "\n" + "Use\n" + "\t$$FG,GREEN$$'m'$$FG$$ass\n" + "\t$$FG,GREEN$$'c'$$FG$$oncrete\n" + "\t$$FG,GREEN$$'s'$$FG$$teel\n" + "\t$$FG,GREEN$$'w'$$FG$$ire\n" + "\nto select materials.\n"); + + try { + while (TRUE) { + msg_code=GetMsg(&p1,&p2,1<=MD_NUM_MODES) + mode_button.state=0; + cursor_mass=tempm1=tempm2=NULL; + break; + case MSG_KEY_DOWN: + switch (p1) { + case CH_NEW_LINE: + if (!SpanTime(Fs) || !a.saved_ode) { + Free(a.saved_ode); + a.saved_ode=SpanSave(ode); + } + SpanDel(ode); + Init(&a); + break; + case CH_CTRLN: + SpanDel(ode); + Free(a.saved_ode); + a.saved_ode=NULL; + Init(&a); + break; + case CH_CTRLO: + if (src=SpanRead) { + Free(a.saved_ode); + a.saved_ode=src; + SpanDel(ode); + Init(&a); + } + break; + case CH_CTRLA: + if (!SpanTime(Fs) || !a.saved_ode) { + Free(a.saved_ode); + a.saved_ode=SpanSave(ode); + } + SpanDel(ode); + Init(&a); + SpanWrite(ode); + break; + case CH_SPACE: + run_button.state=!run_button.state; + break; + case 'g': + snap_button.state=!snap_button.state; + break; + case 'c': + mode_button.state=MD_CONCRETE; + break; + case 's': + mode_button.state=MD_STEEL; + break; + case 'w': + mode_button.state=MD_WIRE; + break; + case 'm': + mode_button.state=MD_MASS; + break; + case 'v': + mode_button.state=MD_MOVE; + break; + case 'd': + mode_button.state=MD_DELETE; + break; + case CH_ESC: + if (!SpanTime(Fs) || !a.saved_ode) { + Free(a.saved_ode); + a.saved_ode=SpanSave(ode); + } + SpanDel(ode); + Init(&a); + SpanWrite(ode); + case CH_SHIFT_ESC: + goto span_done; + } + break; + } + } +span_done: //Don't goto out of try + } catch + CatchAll; + SettingsPop; + CtrlButtonDel(bt_run); + CtrlButtonDel(bt_mode); + CtrlButtonDel(bt_snap); + SpanDel(ode); + DCFill(dc); + DCDel(dc); + MenuPop; + DocBottom; + "$$CL$$$$BG$$\n"; +} diff --git a/SparrowOS/Apps/Span/SpanNew.CPP b/SparrowOS/Apps/Span/SpanNew.CPP new file mode 100644 index 0000000..d2ac432 --- /dev/null +++ b/SparrowOS/Apps/Span/SpanNew.CPP @@ -0,0 +1,127 @@ +CMathODE *SpanNew() +{ + + ode=ODENew(0,1e-4,ODEF_HAS_MASSES|ODEF_PAUSED); + ode->derivative=&MyDerivative; + ode->drag_v2=0.002; + ode->drag_v3=0.00001; + ode->acceleration_limit=5e3; + + QueIns(ode,Fs->last_ode); + return ode; +} + +U0 SpanDel(CMathODE *ode) +{ + QueRem(ode); + QueDel(&ode->next_mass,TRUE); + QueDel(&ode->next_spring,TRUE); + ODEDel(ode); +} + + +#define M_SIZE (sizeof(MyMass)-offset(CMass.start_saved_area)) +#define S_SIZE (sizeof(MySpring)-offset(CSpring.start_saved_area)) + +U8 *SpanSave(CMathODE *ode,I64 *_size=NULL) +{ + I64 cnt; + U8 *result,*ptr; + MyMass *tempm; + MySpring *temps; + SpanHeader h; + + ODERenum(ode); + h.version=SPAN_VERSION; + if (ode->next_mass!=&ode->next_mass) + h.num_masses=ode->last_mass->num+1; + else + h.num_masses=0; + if (ode->next_spring!=&ode->next_spring) + h.num_springs=ode->last_spring->num+1; + else + h.num_springs=0; + + cnt=sizeof(SpanHeader)+h.num_masses*M_SIZE+h.num_springs*S_SIZE; + + ptr=result=MAlloc(cnt); + MemCpy(ptr,&h,sizeof(SpanHeader)); + ptr+=sizeof(SpanHeader); + + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + MemCpy(ptr,&tempm->start_saved_area,M_SIZE); + ptr+=M_SIZE; + tempm=tempm->next; + } + + temps=ode->next_spring; + while (temps!=&ode->next_spring) { + MemCpy(ptr,&temps->start_saved_area,S_SIZE); + ptr+=S_SIZE; + temps=temps->next; + } + if (_size) *_size=cnt; + return result; +} + +Bool SpanWrite(CMathODE *ode) +{ + U8 *name,*buf; + I64 size; + Bool result=FALSE,old_silent=Silent(ON); + MkDir("HOME/Span"); + Silent(old_silent); + if (name=PopUpFileName("HOME/Span/Game.DAT.Z")) { + if (buf=SpanSave(ode,&size)) { + FileWrite(name,buf,size); + Free(buf); + result=TRUE; + } + Free(name); + } + return result; +} + +U0 SpanLoad(CMathODE *ode,U8 *src) +{ + I64 i; + MyMass *tempm; + MySpring *temps; + SpanHeader h; + + if (!src) return; + + MemCpy(&h,src,sizeof(SpanHeader)); + src+=sizeof(SpanHeader); + + for (i=0;istart_saved_area,src,M_SIZE); + src+=M_SIZE; + QueIns(tempm,ode->last_mass); + } + + for (i=0;istart_saved_area,src,S_SIZE); + src+=S_SIZE; + QueIns(temps,ode->last_spring); + temps->end1=MassFindNum(ode,temps->end1_num); + temps->end2=MassFindNum(ode,temps->end2_num); + } +} + +U8 *SpanRead() +{ + U8 *src=NULL,*name; + Bool old_silent=Silent(ON); + MkDir("HOME/Span"); + Silent(old_silent); + if (name=PopUpPickFile("HOME/Span")) { + src=FileRead(name); + Free(name); + } + return src; +} + diff --git a/SparrowOS/Apps/Tanks/AIs/Human.CPP b/SparrowOS/Apps/Tanks/AIs/Human.CPP new file mode 100644 index 0000000..bfc21df --- /dev/null +++ b/SparrowOS/Apps/Tanks/AIs/Human.CPP @@ -0,0 +1,156 @@ +U0 TanksPlot() +{ + Unit *tempu=NULL; + I64 msg_code,p1,p2; + F64 target_x,target_y; + SetViewPlayer(cur_player); + while (TRUE) { + if (!alive_cnt[0] || !alive_cnt[1]) + throw (EXCEPT_LOCAL,T_GAME_OVER); + msg_code=GetMsg(&p1,&p2,1<player==enemy_player || tempu->fired || !tempu->indirect_fire) + tempu=NULL; + else { + RowCol2XY(fire_radius_x,fire_radius_y,tempu->row,tempu->col); + fire_radius=tempu->range*2*HEX_RADIUS; + } + } + } + break; + case MSG_IP_L_UP: + if (CursorInWindow(Fs,p1,p2)) { + UpdateCursor(Fs,p1,p2); + RowCol2XY(target_x,target_y,cursor_row,cursor_col); + if (!tempu) + Beep; + else { + if (Sqrt(Sqr(fire_radius_x-target_x)+Sqr(fire_radius_y-target_y))>fire_radius) + Beep; + else + PlotShot(tempu,cursor_row,cursor_col); + } + } + tempu=NULL; + fire_radius=0; + break; + case MSG_IP_R_UP: + if (CursorInWindow(Fs,p1,p2)) + throw (EXCEPT_LOCAL,T_TURN_OVER); + break; + } + } +} + +U0 TanksMove() +{ + Unit *tempu=NULL,*target; + I64 msg_code,p1,p2; + SetViewPlayer(cur_player); + while (TRUE) { + if (!alive_cnt[0] || !alive_cnt[1]) + throw (EXCEPT_LOCAL,T_GAME_OVER); + msg_code=GetMsg(&p1,&p2,1<player==enemy_player || !tempu->remaining_movement) + tempu=NULL; + } + } + break; + case MSG_IP_L_UP: + if (CursorInWindow(Fs,p1,p2)) { + UpdateCursor(Fs,p1,p2); + target=FindUnit(cursor_row,cursor_col); + if (!tempu) + Beep; + else { + if (target) + Beep; + else + MoveUnit(tempu,p1+Fs->horz_scroll.pos, + p2+Fs->vert_scroll.pos); + break; + } + } + tempu=NULL; + break; + case MSG_IP_R_UP: + if (CursorInWindow(Fs,p1,p2)) + throw (EXCEPT_LOCAL,T_TURN_OVER); + break; + } + } +} + +U0 TanksFire() +{ + Unit *tempu=NULL,*target; + I64 msg_code,p1,p2; + SetViewPlayer(cur_player); + while (TRUE) { + if (!alive_cnt[0] || !alive_cnt[1]) + throw (EXCEPT_LOCAL,T_GAME_OVER); + msg_code=GetMsg(&p1,&p2,1<player==enemy_player || tempu->fired || tempu->indirect_fire) + tempu=NULL; + else { + RVSetUp(cur_player); + RowCol2XY(fire_radius_x,fire_radius_y,tempu->row,tempu->col); + fire_radius=tempu->range*2*HEX_RADIUS; + RecalcVisible(RV_ONE_FRIENDLY_UNIT,tempu); + } + } + } + break; + case MSG_IP_L_UP: + if (CursorInWindow(Fs,p1,p2)) { + UpdateCursor(Fs,p1,p2); + target=FindUnit(cursor_row,cursor_col); + if (!tempu) + Beep; + else { + if (!target || target->player!=enemy_player || !Bt(&target->visible,0)) + Beep; + else + FireShot(tempu,target); + RecalcVisible(RV_UPDATE_FRIENDLY_UNIT,tempu); + } + } + tempu=NULL; + fire_radius=0; + break; + case MSG_IP_R_UP: + if (CursorInWindow(Fs,p1,p2)) + throw (EXCEPT_LOCAL,T_TURN_OVER); + break; + } + } +} diff --git a/SparrowOS/Apps/Tanks/AIs/SimpleAI.CPP b/SparrowOS/Apps/Tanks/AIs/SimpleAI.CPP new file mode 100644 index 0000000..5a014d6 --- /dev/null +++ b/SparrowOS/Apps/Tanks/AIs/SimpleAI.CPP @@ -0,0 +1,76 @@ +Unit *FindNearestUnit(I64 row,I64 col,I64 player,Bool in_LOS,F64 range=-1) +{ + I64 i; + F64 d,best_d=MAX_F64,x1,y1,x2,y2; + Unit *best=NULL; +//$LK,"Sqrt","MN:Sqrt"$() is slow, so work with squared distances. + if (range<0) + range=MAX_F64; + else + range*=range; + RowCol2XY(x1,y1,row,col); + for (i=0;i0) { + if (!in_LOS || LOS(row,col,units[player][i].row,units[player][i].col)) { + RowCol2XY(x2,y2,units[player][i].row,units[player][i].col); + d=Sqr(x2-x1)+Sqr(y2-y1); + if (d<=range && dlife>0 && tempu->indirect_fire && + (target=FindNearestUnit(tempu->row,tempu->col,enemy_player,TRUE,tempu->range*2*HEX_RADIUS))) + PlotShot(tempu,target->row,target->col); + } + throw (EXCEPT_LOCAL,T_TURN_OVER); +} + +U0 TanksMove() +{ + Unit *target,*tempu; + I64 i; + F64 x,y; + for (i=0;ilife>0) { + //This cheats because it violates Line-of-Sight + if (target=FindNearestUnit(tempu->row,tempu->col,enemy_player,FALSE)) { + RowCol2XY(x,y,target->row,target->col); + if (!MoveUnit(tempu,x,y)) { + RowCol2XY(x,y,tempu->row,tempu->col); + MoveUnit(tempu,x+RandI16,y+RandI16); + } + } + } + } + throw (EXCEPT_LOCAL,T_TURN_OVER); +} + +U0 TanksFire() +{ + Unit *target,*tempu; + I64 i; + for (i=0;ilife>0 && !tempu->indirect_fire && + (target=FindNearestUnit(tempu->row,tempu->col,enemy_player,TRUE,tempu->range*2*HEX_RADIUS))) { + FireShot(tempu,target); + Sleep(250*ANIMATION_DELAY); + } + } + throw (EXCEPT_LOCAL,T_TURN_OVER); +} diff --git a/SparrowOS/Apps/Tanks/Install.CPP b/SparrowOS/Apps/Tanks/Install.CPP new file mode 100644 index 0000000..42dabf0 --- /dev/null +++ b/SparrowOS/Apps/Tanks/Install.CPP @@ -0,0 +1,2 @@ +MkDir("HOME/Tanks"); + diff --git a/SparrowOS/Apps/Tanks/Load.CPP b/SparrowOS/Apps/Tanks/Load.CPP new file mode 100644 index 0000000..2d27493 --- /dev/null +++ b/SparrowOS/Apps/Tanks/Load.CPP @@ -0,0 +1 @@ +#include "/SparrowOS/Apps/Tanks/Tanks.CPP.Z" diff --git a/SparrowOS/Apps/Tanks/Run.CPP b/SparrowOS/Apps/Tanks/Run.CPP new file mode 100644 index 0000000..d8d982d --- /dev/null +++ b/SparrowOS/Apps/Tanks/Run.CPP @@ -0,0 +1,2 @@ +#include "/SparrowOS/Apps/Tanks/Load" +Tanks; \ No newline at end of file diff --git a/SparrowOS/Apps/Tanks/Tanks.CPP b/SparrowOS/Apps/Tanks/Tanks.CPP new file mode 100644 index 0000000..5382e44 --- /dev/null +++ b/SparrowOS/Apps/Tanks/Tanks.CPP @@ -0,0 +1,1727 @@ +/* +Alteration Ideas: + * Add another fire phase + * Add opportunity fire + * Add overruns + * Add close assaults + * Add more unit types + * Add artillery + * Add aircraft + * Add troop transport + * Add land mines + * Add buildings + * Adjust terrain cost + * Adjust terrain defense bonuses + * Add bridges + * Add amphibious scenareos + * Add vehicle wreckage + * Add scoring + * Add game turn limit +*/ + +#define MAP_WIDTH 603 +#define MAP_HEIGHT 452 +#define MAX_UNITS 32 +#define P1_TO_P2_ODDS 1.0 +#define PLAYER_1_ARMOR_PERCENT 50 +#define PLAYER_2_ARMOR_PERCENT 50 + +/*Constants are often faster when compiled. +This is an advantage of just-in-time compilation. +You can't change them when you start a +game over, however. A down-side of this +is you can't use the auto-indent feature. +*/ + +#define HEX_SIDE 11 +#exe { + CTask *task; + PopUpFile("/SparrowOS/Demo/Graphics/RotateTank.CPP.Z",FALSE,NULL,&task); + F64 d; + PopUpOk("This aspires to be a rip-off of\n" + "the Perfect General, but has tank\n" + "facing like in the board game,\n" + "Stalin's Tanks.\n"); + if (!PopUpNoYes("Tournament Settings")) { + d=PopUpRangeF64Log(300,2000,20,"%4f","Map Width In Pixels\n"); + DefinePrintF("MAP_WIDTH","%f",d); + DefinePrintF("MAP_HEIGHT","%f",480.0/640.0*d); + d=PopUpRangeF64Exp(8,512,2,"%3f","Player 2 Units\n"); + DefinePrintF("MAX_UNITS","%f",d); + d=PopUpRangeF64(0.2,1.01,0.05,"%4.2f to 1.00","Player1:Player2 Odds\n"); + DefinePrintF("P1_TO_P2_ODDS","%4.2f",d); + d=PopUpRangeF64(0,100,10,"%3f% %%","Player 1 Armor Percent\n"); + DefinePrintF("PLAYER_1_ARMOR_PERCENT","%f",d); + d=PopUpRangeF64(0,100,10,"%3f% %%","Player 2 Armor Percent\n"); + DefinePrintF("PLAYER_2_ARMOR_PERCENT","%f",d); + } + DefinePrintF("DCOS","%12.9f",HEX_SIDE*Cos(60.0/180*ã)); + DefinePrintF("DSIN","%12.9f",HEX_SIDE*Sin(60.0/180*ã)); + DefinePrintF("HEX_RADIUS","%12.9f",DSIN+0.01); //slop + d=PopUpRangeF64(0,100,25,"%3f% %%","Animation Delay\n"); + DefinePrintF("ANIMATION_DELAY","%5.3f",d/100.0); + XTalk(task," "); + TaskWait(task); + Kill(task); +}; + + +I64 map_cols=(MAP_WIDTH-DCOS)/(2*HEX_SIDE+2*DCOS), + map_rows=ToI64((MAP_HEIGHT-DSIN)/DSIN)&~1, + map_width=map_cols*(2*HEX_SIDE+2*DCOS)+DCOS, + map_height=map_rows*DSIN+DSIN+1; + +CDC *map; +U8 terrain[map_rows][map_cols]; + + +//Centers of hexes +class Pt +{ + F64 x,y; +}; +Pt hex_centers[map_rows][map_cols]; + +I64 show_visible_row,show_visible_col; +Bool roads[map_rows][map_cols], + rivers[map_rows][map_cols], + visible_map[map_rows][map_cols]; + +//Other options for PLAINS are WHITE or YELLOW +#define PLAINS LTGREEN +#define TREES GREEN +#define MOUNTAINS DKGRAY + +U8 movement_costs[16]; +movement_costs[PLAINS]=2; +movement_costs[TREES]=6; +movement_costs[MOUNTAINS]=10; + +//These are used to display a range circle when they player +//is firing. +F64 fire_radius,fire_radius_x,fire_radius_y; + +//These display "phase", "turn" and "game over". +U8 msg_buf[136]; +I64 msg_off_timeout; //Jiffies. Goes away after a time. + +/*I got tricky by not defining a color +right away in these $LK,"CSprite","MN:CSprite"$s so they can +work for both players by setting dc->color +before drawing them. I actually made these +graphics by defining a color in the +menu, drawing the unit and deleting the color. + +I had to leave a gap between the tank tread +and body because of how it is rendered when rotated. +*/ + + + + +$SP,"<1>",1$ + + +$SP,"<2>",2$ + + +//This is an infantry. + +$SP,"<3>",3$ + +$SP,"<4>",4$ + + +$SP,"<5>",5$ + + + +//Unit types +#define UT_INFANTRY 0 +#define UT_ARTILLERY 1 +#define UT_LT_TANK 2 +#define UT_MD_TANK 3 + +class Unit +{ + U8 *img; + I64 num,row,col, + armored_attack,unarmored_attack,armor; + I8 type,player,facing,movement,life, + range,remaining_movement,accuracy; + Bool visible[2],fired,infantry,indirect_fire,pad[3]; +}; + +Unit units[2][MAX_UNITS]; + +// Bt(visible_unit_bitmap,p1+p0*MAX_UNITS) +U8 visible_unit_bitmap[2][MAX_UNITS*MAX_UNITS>>3]; + +#define PHASE_START 0 +#define PHASE_PLOT 0 +#define PHASE_PLOT0 0 +#define PHASE_PLOT1 1 +#define PHASE_MOVE 2 +#define PHASE_MOVE0 2 +#define PHASE_MOVE1 3 +#define PHASE_FIRE 4 +#define PHASE_FIRE0 4 +#define PHASE_FIRE1 5 +#define PHASE_END 6 + +I64 phase,cur_player,enemy_player,view_player,turn,cursor_row,cursor_col,alive_cnt[2], + plot_routines[2],move_routines[2],fire_routines[2]; + + +U0 Toward(I64 &row,I64 &col,I64 direction) +{ + switch (direction) { + case 0: + row-=2; + break; + case 1: + if (row&1) + col++; + row--; + break; + case 2: + if (row&1) + col++; + row++; + break; + case 3: + row+=2; + break; + case 4: + if (!(row&1)) + col--; + row++; + break; + case 5: + if (!(row&1)) + col--; + row--; + break; + } +} + +I64 FacingChg(I64 f1,I64 f2) +{ + I64 result=(f1+6-f2)%6; + if (result>=3) + return 6-result; + else + return result; +} + +U0 RowCol2XY(F64 &x,F64 &y,I64 row,I64 col) +{ + Pt *c; + row=LimitI64(row,0,map_rows); + col=LimitI64(col,0,map_cols); + c=&hex_centers[row][col]; + x=c->x; + y=c->y; +} + +U0 XY2RowCol(I64 &row,I64 &col,F64 x,F64 y) +{ + col=(x-DCOS/2)/(HEX_SIDE+DCOS); + if (col&1) + row=ToI64((y-DSIN)/(2*DSIN))*2+1; + else + row=ToI64(y/(2*DSIN))*2; + col>>=1; + row=LimitI64(row,0,map_rows-1); + col=LimitI64(col,0,map_cols-1); +} + +Unit *FindUnit(I64 row,I64 col) +{//Finds unit in a hexagon. + I64 i,j; + for (j=0;j<2;j++) + for (i=0;i0 && + units[j][i].row==row && + units[j][i].col==col) + return &units[j][i]; + return NULL; +} + +Bool CursorInWindow(CTask *task,I64 x,I64 y) +{ + if (0<=x+task->win_scroll_xwin_pixel_width && + 0<=y+task->win_scroll_ywin_pixel_height) + return TRUE; + else + return FALSE; +} + +U0 UpdateCursor(CTask *task,I64 x,I64 y) +{ + if (CursorInWindow(task,x,y)) + XY2RowCol(cursor_row,cursor_col,x+task->horz_scroll.pos,y+task->vert_scroll.pos); +} + +class LOSCtrl +{ + I64 r1,c1,r2,c2,distance; +}; + +Bool LOSPlot(LOSCtrl *l,I64 x,I64 y,I64 z) +{ //We got tricky and used z as the distance from the start of the line. + I64 row,col; + XY2RowCol(row,col,x,y); + if ((row!=l->r1 || col!=l->c1) && + (row!=l->r2 || col!=l->c2) && + terrain[row][col]!=PLAINS) { + if (terrain[l->r1][l->c1]==MOUNTAINS) { + if (terrain[row][col]==MOUNTAINS || z>l->distance>>1) + return FALSE; + } else if (terrain[l->r2][l->c2]==MOUNTAINS) { + if (terrain[row][col]==MOUNTAINS || z<=l->distance>>1) + return FALSE; + } else + return FALSE; + } + return TRUE; +} + +Bool LOS(I64 r1,I64 c1,I64 r2,I64 c2) +{ + F64 x1,y1,x2,y2; + LOSCtrl l; + RowCol2XY(x1,y1,r1,c1); + RowCol2XY(x2,y2,r2,c2); + l.r1=r1; l.c1=c1; + l.r2=r2; l.c2=c2; + l.distance=Sqrt(SqrI64(x1-x2)+SqrI64(y1-y2)); + return Line(&l,x1,y1,0,x2,y2,l.distance,&LOSPlot); +} + +#define RV_ONE_FRIENDLY_UNIT 0 +#define RV_UPDATE_FRIENDLY_UNIT 1 +#define RV_FRIENDLY_UNIT_DIED 3 +#define RV_ONE_ENEMY_UNIT 4 +#define RV_ALL_UNITS 5 + +class MPCtrl1 +{ + I64 mode,lo,hi; + Unit *tempu; +}; + +U0 RVSetUp(I64 player) +{ + I64 i; + Unit *ut0,*ut1; + ut0=&units[player][0]; + ut1=&units[player^1][0]; + for (i=0;ivisible[player],0); + LBEqu(&ut0->visible[player],0,ut0->life>0); + } +} + +U0 RVMerge(I64 player) +{ + I64 i,j; + Unit *ut1; + U8 *dst,*src,*mask=CAlloc(MAX_UNITS>>3); + src=&visible_unit_bitmap[player]; + for (j=0;j>3;i++) //p1 + *dst++|=*src++; + } + ut1=&units[player^1][0]; + for (j=0;jvisible[player],0,Bt(mask,j) && ut1->life>0); + Free(mask); +} + + +Bool MPRecalcVisible(MPCtrl1 *job) +{ + Bool result=FALSE,seen; + I64 i,j,row,col; + F64 x1,y1,x2,y2,d,range; + Unit *ut0,*ut1; + ut0=&units[cur_player][job->lo]; + ut1=&units[enemy_player][job->lo]; + if (job->tempu) { + row=job->tempu->row; + col=job->tempu->col; + range=job->tempu->range*2*HEX_RADIUS; + range*=range; + } + switch (job->mode) { + case RV_UPDATE_FRIENDLY_UNIT: + case RV_ONE_FRIENDLY_UNIT: + if (job->mode==RV_UPDATE_FRIENDLY_UNIT) + range=MAX_F64; + RowCol2XY(x1,y1,row,col); + for (i=job->lo;ihi;i++,ut1++) { + seen=FALSE; + if (ut1->life>0 && + LOS(row,col,ut1->row,ut1->col)) { + RowCol2XY(x2,y2,ut1->row,ut1->col); + d=Sqr(x2-x1)+Sqr(y2-y1); + if (dvisible[cur_player],0); + } + } + if (job->mode==RV_UPDATE_FRIENDLY_UNIT) + LBEqu(&visible_unit_bitmap[cur_player],i+job->tempu->num*MAX_UNITS,seen); + } + break; + case RV_ONE_ENEMY_UNIT: + RowCol2XY(x1,y1,row,col); + for (i=job->lo;ihi;i++,ut1++) + if (ut1->life>0 && + LOS(row,col,ut1->row,ut1->col)) { + LBts(&visible_unit_bitmap[enemy_player],job->tempu->num+i*MAX_UNITS); + result=TRUE; + } else + LBtr(&visible_unit_bitmap[enemy_player],job->tempu->num+i*MAX_UNITS); + break; + case RV_ALL_UNITS: + ut0=&units[cur_player][0]; + for (i=0;ilife>0) { + RowCol2XY(x1,y1,ut0->row,ut0->col); + ut1=&units[enemy_player][job->lo]; + for (j=job->lo;jhi;j++,ut1++) { + if (ut1->life>0 && + LOS(ut0->row,ut0->col,ut1->row,ut1->col)) { + LBts(&ut1->visible[cur_player],0); + LBts(&visible_unit_bitmap[cur_player],j+i*MAX_UNITS); + } else + LBtr(&visible_unit_bitmap[cur_player],j+i*MAX_UNITS); + } + } else + for (j=job->lo;jhi;j++) + LBtr(&visible_unit_bitmap[cur_player],j+i*MAX_UNITS); + ut0=&units[enemy_player][0]; + for (i=0;ilife>0) { + RowCol2XY(x1,y1,ut0->row,ut0->col); + ut1=&units[cur_player][job->lo]; + for (j=job->lo;jhi;j++,ut1++) { + if (ut1->life>0 && + LOS(ut0->row,ut0->col,ut1->row,ut1->col)) { + LBts(&ut1->visible[enemy_player],0); + LBts(&visible_unit_bitmap[enemy_player],j+i*MAX_UNITS); + } else + LBtr(&visible_unit_bitmap[enemy_player],j+i*MAX_UNITS); + } + } else + for (j=job->lo;jhi;j++) + LBtr(&visible_unit_bitmap[enemy_player],j+i*MAX_UNITS); + break; + } + return result; +} + +Bool RecalcVisible(I64 mode,Unit *tempu=NULL) +{ + I64 i,hi,k,cnt; + Bool result; + +/*The compiler doesn't go out of it's way +to know if something is constant.;-) This +just compiles with the val at compile +time, an advantage of just-in-time over +static binaries. SparrowOS has a limited +stk size, so don't get in the habit. +$LK,"MAlloc","MN:MAlloc"$() would probably be the better choice. +*/ + MPCtrl1 job[mp_cnt]; + CMPCmd *cmd[mp_cnt]; + + + if (mode==RV_FRIENDLY_UNIT_DIED) { + MemSet(&visible_unit_bitmap[enemy_player]+tempu->num*MAX_UNITS>>3,0,MAX_UNITS>>3); + RVMerge(enemy_player); + return 0; //return any value--don't care + } + + cnt=mp_cnt; //cores + hi=MAX_UNITS; + if (mode==RV_ONE_ENEMY_UNIT) { + for (hi--;hi>=0;hi--) + if (units[enemy_player][hi].life>0) + break; + hi++; + } + k=hi; + if (hi/mp_cnt<2) + cnt=1; + for (i=0;i0;i--) + cmd[i]=MPJob(&MPRecalcVisible,&job[i],i,0); + result=MPRecalcVisible(&job[0]); + for (i=cnt-1;i>0;i--) + if (MPJobResult(cmd[i])) + result=TRUE; + if (mode==RV_UPDATE_FRIENDLY_UNIT) + RVMerge(cur_player); + return result; +} + +class MPCtrl2 +{ + I64 lo,hi,row,col; +}; + +U0 MPRecalcVisibleMap(MPCtrl2 *job) +{ + I64 i,j; + for (j=job->lo;jhi;j++) + for (i=0;irow,job->col,j,i)) + visible_map[j][i]=TRUE; + else + visible_map[j][i]=FALSE; +} + +U0 RecalcVisibleMap(I64 row,I64 col) +{ + I64 i,hi,k,cnt; + MPCtrl2 job[mp_cnt]; + CMPCmd *cmd[mp_cnt]; + + cnt=mp_cnt; //cores + hi=map_rows; + k=hi; + if (hi/mp_cnt<2) + cnt=1; + for (i=0;i0;i--) + cmd[i]=MPJob(&MPRecalcVisibleMap,&job[i],i,0); + MPRecalcVisibleMap(&job[0]); + for (i=cnt-1;i>0;i--) + MPJobResult(cmd[i]); +} + +I64 MoveCost(Unit *tempu,I64 r,I64 c,I64 facing) +{ + I64 result; + if (tempu->infantry) + result=0; + else { + result=FacingChg(facing,tempu->facing); + if (result>0) result--; + } + if (roads[r][c] && roads[tempu->row][tempu->col]) + result+=1; + else { + if (tempu->infantry) + result+=2; + else { + result+=movement_costs[terrain[r][c]]; + if (rivers[r][c]) + result=tempu->movement; + } + } + return result; +} + +I64 MoveOneHex(I64 &row,I64 &col,F64 x,F64 y) +{ + I64 direction,best_direction=-1,r,c; + F64 d,best_d,x1,y1; + RowCol2XY(x1,y1,row,col); + best_d=Sqr(x1-x)+Sqr(y1-y); + for (direction=0;direction<6;direction++) { + r=row; c=col; + Toward(r,c,direction); + RowCol2XY(x1,y1,r,c); + d=Sqr(x1-x)+Sqr(y1-y); + if (0<=r=0) { + Toward(row,col,best_direction); + return best_direction; + } else + return -1; +} + +Bool moving=FALSE; +I64 move_x,move_y; +F64 move_facing; +Unit *moving_unit; + +Bool MovePlot(U0,I64 x,I64 y,I64) +{ + move_x=x; move_y=y; + Sleep(5*ANIMATION_DELAY); + return TRUE; +} + +U0 MoveUnitAnimation(Unit *tempu,I64 r,I64 c,I64 facing) +{ + F64 x1,y1,x2,y2,f=facing*60.0*ã/180.0; + moving_unit=tempu; + RowCol2XY(x1,y1,tempu->row,tempu->col); + move_x=x1; move_y=y1; + moving=TRUE; + if (tempu->infantry) + Snd(300); + else { + move_facing=tempu->facing*60.0*ã/180.0; + Snd(150); + while (Wrap(f-move_facing,-ã)<=0) { + move_facing-=0.03; + Sleep(5*ANIMATION_DELAY); + } + while (Wrap(f-move_facing,-ã)>0) { + move_facing+=0.03; + Sleep(5*ANIMATION_DELAY); + } + Snd(100); + } + move_facing=f; + RowCol2XY(x2,y2,r,c); + Line(NULL,x1,y1,0,x2,y2,0,&MovePlot); + Snd(0); + moving_unit=NULL; + moving=FALSE; +} + +Bool MoveUnit(Unit *tempu,I64 x,I64 y) +{ + I64 r,c,r0=tempu->row,c0=tempu->col,i,facing; + while (tempu->remaining_movement>0) { + r=tempu->row; + c=tempu->col; + if ((facing=MoveOneHex(r,c,x,y))<0) + break; + else { + i=MoveCost(tempu,r,c,facing); + if (i>tempu->movement) + i=tempu->movement; + if (tempu->remaining_movement>=i && !FindUnit(r,c)) { + MoveUnitAnimation(tempu,r,c,facing); + tempu->facing=facing; + tempu->remaining_movement-=i; + tempu->row=r; + tempu->col=c; + RecalcVisible(RV_UPDATE_FRIENDLY_UNIT,tempu); + LBEqu(&tempu->visible[enemy_player],0,RecalcVisible(RV_ONE_ENEMY_UNIT,tempu)); + } else + break; + } + } + if (tempu->row!=r0 || tempu->col!=c0) + return TRUE; + else + return FALSE; +} + +class IndirectOrders +{ + IndirectOrders *next,*last; + Unit *attacker; + I64 row,col; +} indirect_root; + +U0 PlotShot(Unit *tempu,I64 row,I64 col) +{ + IndirectOrders *tempi; + if (tempu->life<=0 || tempu->range<=0) + return; + tempu->fired=TRUE; + tempi=CAlloc(sizeof(IndirectOrders)); + tempi->attacker=tempu; + tempi->row=row; + tempi->col=col; + QueIns(tempi,indirect_root.last); +} + +Bool firing=FALSE; +I64 fire_x,fire_y; +Unit *target_unit; +Bool target_hit; +Bool indirect_explosion=FALSE; +I64 indirect_row,indirect_col; + +Bool FirePlot(U0,I64 x,I64 y,I64) +{ + fire_x=x; fire_y=y; + firing=TRUE; + Sleep(3*ANIMATION_DELAY); + return TRUE; +} + +U0 FireShot(Unit *tempu,Unit *target) +{ + I64 r,c,facing, + t1=terrain[tempu->row][tempu->col], + t2=terrain[target->row][target->col]; + F64 x1,y1,x2,y2,d,a,dammage=0,range_factor; + Bool hit; + + if (tempu->life<=0 || target->life<=0 || tempu->range<=0) + return; + RowCol2XY(x1,y1,tempu->row,tempu->col); + RowCol2XY(x2,y2,target->row,target->col); + + NewLine(2); + + d=100*Rand; + "+%5.2f Roll\n",d; + d+=tempu->accuracy; + "+%2d.00 Accuracy\n",tempu->accuracy; + + range_factor=Sqrt(Sqr(x2-x1)+Sqr(y2-y1))/(tempu->range*2*DSIN); + "-%5.2f%% of Range\n",100*range_factor; + d-=100*range_factor; + if (t2==TREES) { + "-30.00 Target in trees\n"; + d-=30; + } + if (t1==MOUNTAINS && t2!=MOUNTAINS) { + "+30.00 Down from mountains\n"; + d+=30; + } + "_______\n"; + if (d>=0) { + "+%5.2f Hit\n",d; + hit=TRUE; + } else { + "-%5.2f Miss\n",-d; + hit=FALSE; + } + + target_unit=target; + if (hit) { + target_hit=TRUE; + Noise(500*ANIMATION_DELAY,100,150); + Sleep(500*ANIMATION_DELAY); + } else { + target_hit=FALSE; + Noise(1000*ANIMATION_DELAY,750,1000); + Sleep(1000*ANIMATION_DELAY); + } + + if (hit) + Line(NULL,x1,y1,0,x2,y2,0,&FirePlot); + else { + a=ã*2*Rand; + d=(0.5-d/100)*HEX_SIDE; + Line(NULL,x1,y1,0,x2+d*Cos(a),y2+d*Sin(a),0,&FirePlot); + } + firing=FALSE; + tempu->fired=TRUE; + + if (hit) { + r=target->row;c=target->col; + if ((facing=MoveOneHex(r,c,x1,y1))>=0) + facing=FacingChg(facing,target->facing); + else + facing=0; + dammage=200.0*Rand; + "Raw dammage roll out of 200: %3f\n",dammage; + if (target->armor) { + d=target->armor/100.0*(5-facing)/5.0; + "Armor:%d-FacingAdjustment(%z) Yields:%5.2f Defense\n", + target->armor,facing,"Front\0Side\0Rear\0",100*d; + if (d>=0) { + dammage*=(tempu->armored_attack/100.0)/d; + "Armored Attack:%d\nRaw*Attack/Defense=%5.2f Dammage\n", + tempu->armored_attack,dammage; + } else + dammage=0; + } else { + d=1.0-range_factor; + if (d>0) { + "Range:%5.2f%% --> %5.2f%% Remaining\n", + 100*range_factor,100*d; + dammage*=(tempu->unarmored_attack/100.0)*d; + "Unarmored Attack:%d\nRaw*Attack*Remaining=%5.2f Dammage\n", + tempu->unarmored_attack,dammage; + } else + dammage=0; + } + dammage=Round(dammage); + if (dammage>0) { + "Life:%3d - Dammage:%3f =",target->life,dammage; + if (dammage>=target->life) { + "Killed\n"; + Noise(1000*ANIMATION_DELAY,1000,4000); + Sleep(1000*ANIMATION_DELAY); + target->life=0; + RecalcVisible(RV_FRIENDLY_UNIT_DIED,target); + alive_cnt[target->player]--; + } else { + if (target->armor) { + if (dammage>0.6*target->life) { + target->movement=0; + "Immobilized\n"; + } else + "No Penetration\n"; + } else { + target->life-=dammage; + "%d\n",target->life; + } + } + } + } + while (snd_freq) //see $LK,"Snd","MN:Snd"$() + Yield; + target_unit=NULL; +} + +I64 row_offsets[7]={-1,-2,-1,1,2,1,0}; +I64 col_offsets_even[7]={-1, 0, 0,0,0,-1,0}; +I64 col_offsets_odd [7]={ 0, 0, 1,1,0, 0,0}; + +U0 IndirectFireResolve() +{ + I64 i,r,c,facing; + F64 x1,y1,x2,y2,d,dammage=0,range_factor; + Unit *tempu,*target; + Bool hit; + IndirectOrders *tempi=indirect_root.next,*tempi1; + while (tempi!=*indirect_root) { + tempi1=tempi->next; + tempu=tempi->attacker; + RowCol2XY(x1,y1,tempu->row,tempu->col); + RowCol2XY(x2,y2,tempi->row,tempi->col); + + NewLine(2); + + d=100*Rand; + "+%5.2f Roll\n",d; + d+=tempu->accuracy; + "+%2d.00 Accuracy\n",tempu->accuracy; + + range_factor=Sqrt(Sqr(x2-x1)+Sqr(y2-y1))/(tempu->range*2*DSIN); + "-%5.2f%% of Range\n",100*range_factor; + d-=100*range_factor; + + "_______\n"; + if (d>=0) { + "+%5.2f Hit\n",d; + hit=TRUE; + } else { + "-%5.2f Miss\n",-d; + hit=FALSE; + } + + if (hit) { + Noise(500*ANIMATION_DELAY,100,150); + Sleep(500*ANIMATION_DELAY); + } else { + Noise(1000*ANIMATION_DELAY,750,1000); + Sleep(1000*ANIMATION_DELAY); + } + + if (!hit) { + i=RandU16%6; + if (tempi->row&1) + tempi->col+=col_offsets_odd[i]; + else + tempi->col+=col_offsets_even[i]; + tempi->row+=row_offsets[i]; + RowCol2XY(x2,y2,tempi->row,tempi->col); + } + Line(NULL,x1,y1,0,x2,y2,0,&FirePlot); + firing=FALSE; + tempu->fired=TRUE; + indirect_row=tempi->row; + indirect_col=tempi->col; + indirect_explosion=TRUE; + for (i=0;i<7;i++) { + if (tempi->row&1) + c=tempi->col+col_offsets_odd[i]; + else + c=tempi->col+col_offsets_even[i]; + r=tempi->row+row_offsets[i]; + if (0<=rarmor) { + d=target->armor/100.0*(5-facing)/5.0; + "Armor:%d-FacingAdjustment(%z) Yields:%5.2f Defense\n", + target->armor,facing,"Front\0Side\0Rear\0",100*d; + if (d>=0) { + dammage*=(tempu->armored_attack/100.0)/d; + "Armored Attack:%d\nRaw*Attack/Defense=%5.2f Dammage\n", + tempu->armored_attack,dammage; + } else + dammage=0; + } else { + d=1.0-range_factor; + if (d>0) { + "Range:%5.2f%% --> %5.2f%% Remaining\n", + 100*range_factor,100*d; + dammage*=(tempu->unarmored_attack/100.0)*d; + "Unarmored Attack:%d\nRaw*Attack*Remaining=%5.2f Dammage\n", + tempu->unarmored_attack,dammage; + } else + dammage=0; + } + dammage=Round(dammage); + if (dammage>0) { + "Life:%3d - Dammage:%3f =",target->life,dammage; + if (dammage>=target->life) { + "Killed\n"; + target->life=0; + RecalcVisible(RV_FRIENDLY_UNIT_DIED,target); + alive_cnt[target->player]--; + } else { + if (target->armor) { + if (dammage>0.6*target->life) { + target->movement=0; + "Immobilized\n"; + } else + "No Penetration\n"; + } else { + target->life-=dammage; + "%d\n",target->life; + } + } + } + } + } + Noise(2000*ANIMATION_DELAY,800,1000); + Sleep(2000*ANIMATION_DELAY); + while (snd_freq) //see $LK,"Snd","MN:Snd"$() + Yield; + indirect_explosion=FALSE; + + QueRem(tempi); + Free(tempi); + tempi=tempi1; + } +} + +U0 DrawHexes() +{ + F64 dx=2*HEX_SIDE+2*DCOS,dy=2*DSIN, + x,y,x1,y1,x2,y2; + I64 i,j; + map->color=WHITE; + GrRect(map,0,0,map->width,map->height); + map->color=BLACK; + y=0; + for (j=0;jcolor=terrain[j][i]; + RowCol2XY(x,y,j,i); + GrFloodFill(map,x,y); + } +} + +U0 DrawRivers() +{ + I64 i,j,k,r,c; + F64 x1,y1,x2,y2; + for (j=0;jcolor=LTBLUE; + map->pen_width=4; + GrLine3(map,x1,y1,0,x2,y2,0); + map->color=BLUE; + map->pen_width=2; + GrLine3(map,x1,y1,0,x2,y2,0); + } + } + } + } +} + +U0 DrawRoads() +{ + I64 i,j,k,r,c; + F64 x1,y1,x2,y2; + map->color=RED; + map->pen_width=3; + for (j=0;jcolor=BLACK; + for (j=0;jplayer=j; + tempu->num=i; + tempu->life=100; + tempu->facing=RandU16%6; + if (!j) { + if (i>=Round(MAX_UNITS*P1_TO_P2_ODDS*PLAYER_1_ARMOR_PERCENT/100.0)) { + if (Round(i-MAX_UNITS*P1_TO_P2_ODDS*PLAYER_1_ARMOR_PERCENT/100.0)>=Round(0.85*(MAX_UNITS-MAX_UNITS*P1_TO_P2_ODDS*PLAYER_1_ARMOR_PERCENT/100.0))) + type=UT_ARTILLERY; + else + type=UT_INFANTRY; + } else { + if (i>=Round(0.5*MAX_UNITS*P1_TO_P2_ODDS*PLAYER_1_ARMOR_PERCENT/100.0)) + type=UT_MD_TANK; + else + type=UT_LT_TANK; + } + } else { + if (i>=Round(MAX_UNITS*PLAYER_2_ARMOR_PERCENT/100.0)) { + if (Round(i-MAX_UNITS*PLAYER_2_ARMOR_PERCENT/100.0)>=Round(0.85*(MAX_UNITS-MAX_UNITS*PLAYER_2_ARMOR_PERCENT/100.0))) + type=UT_ARTILLERY; + else + type=UT_INFANTRY; + } else { + if (i>=Round(0.5*MAX_UNITS*PLAYER_2_ARMOR_PERCENT/100.0)) + type=UT_MD_TANK; + else + type=UT_LT_TANK; + } + } + tempu->type=type; + switch (type) { + case UT_INFANTRY: + tempu->infantry=TRUE; + tempu->indirect_fire=FALSE; + tempu->armor =0; + tempu->armored_attack =15; + tempu->unarmored_attack=180; + tempu->accuracy=45; + tempu->range =5; + tempu->movement=4; + tempu->img =$IB,"<3>",3$; + break; + case UT_ARTILLERY: + tempu->infantry=TRUE; + tempu->indirect_fire=TRUE; + tempu->armor =0; + tempu->armored_attack =75; + tempu->unarmored_attack=180; + tempu->accuracy=25; + tempu->range =20; + tempu->movement=2; + tempu->img =$IB,"<4>",4$; + break; + case UT_LT_TANK: + tempu->infantry=FALSE; + tempu->indirect_fire=FALSE; + tempu->armor =30; + tempu->armored_attack =40; + tempu->unarmored_attack=60; + tempu->accuracy=25; + tempu->range =8; + tempu->movement=24; + tempu->img =$IB,"<2>",2$; + break; + case UT_MD_TANK: + tempu->infantry=FALSE; + tempu->indirect_fire=FALSE; + tempu->armor =60; + tempu->armored_attack =60; + tempu->unarmored_attack=80; + tempu->accuracy=25; + tempu->range =12; + tempu->movement=16; + tempu->img =$IB,"<1>",1$; + break; + } + do { + row=RandU32%map_rows; + col=RandU32%(map_cols/3); + if (j) + col+=2*map_cols/3; + } while (FindUnit(row,col)); + tempu->row=row; + tempu->col=col; + LBts(&tempu->visible[cur_player],0); + } +} + +U0 NewTurn() +{ + I64 i,j; + for (j=0;j<2;j++) + for (i=0;i=PHASE_END) { + IndirectFireResolve; + NewTurn; + } + + if (phase&~1==PHASE_PLOT) + Fs->border_attr=WHITE<<4+PURPLE; + else if (phase&~1==PHASE_MOVE) + Fs->border_attr=WHITE<<4+GREEN; + else + Fs->border_attr=WHITE<<4+RED; + SleepUntil(msg_off_timeout); + msg_off_timeout=sys_jiffies+JIFFY_FREQ*2*ANIMATION_DELAY+1; + Snd(1000); + switch (phase) { + case PHASE_PLOT0: + case PHASE_PLOT1: + SPrintF(msg_buf,"Player %d Artillery Plot",cur_player+1); + break; + case PHASE_MOVE0: + case PHASE_MOVE1: + SPrintF(msg_buf,"Player %d Move",cur_player+1); + break; + case PHASE_FIRE0: + case PHASE_FIRE1: + SPrintF(msg_buf,"Player %d Fire",cur_player+1); + break; + } +} + +U0 SetViewPlayer(I8 p) +{ + CMenuEntry *tempse; + view_player=p; + if (tempse=MenuEntryFind(Fs->cur_menu,"View/Player1")) + tempse->checked= view_player==0; + if (tempse=MenuEntryFind(Fs->cur_menu,"View/Player2")) + tempse->checked= view_player==1; +} + +U0 Init() +{ + moving_unit=NULL; + InitMap; + SetViewPlayer(cur_player=0); + enemy_player=1; + Fs->horz_scroll.pos=0; + Fs->vert_scroll.pos=0; + InitUnits; + QueInit(&indirect_root); + turn=0; + fire_radius=0; + show_visible_row=-1; + show_visible_col=-1; + *msg_buf=0; + msg_off_timeout=0; + phase=PHASE_END; +} + +U0 CleanUp() +{ + QueDel(&indirect_root,TRUE); +} + +#define T_TURN_OVER 0 +#define T_GAME_OVER 1 +#define T_NEW_GAME 2 +#define T_EXIT_GAME 3 + +extern U0 DrawIt(CTask *task,CDC *dc); + +U0 HandleChar(U8 ch) +{ + switch (ch) { + case CH_ESC: + case CH_SHIFT_ESC: + if (Fs->draw_it==&DrawIt) + throw(EXCEPT_LOCAL,T_EXIT_GAME); + else + Fs->draw_it=&DrawIt; + break; + case CH_SPACE: + throw(EXCEPT_LOCAL,T_TURN_OVER); + case CH_NEW_LINE: + throw(EXCEPT_LOCAL,T_NEW_GAME); + case '1': + SetViewPlayer(0); + break; + case '2': + SetViewPlayer(1); + break; + case '3': + if (Fs->draw_it==&DrawIt) { + Fs->draw_it=Fs->next_settings->draw_it; + View; + } + Fs->draw_it=&DrawIt; + break; + } +} + +U0 CheckUser() +{ + U8 ch; + if (!alive_cnt[0] || !alive_cnt[1]) + throw (EXCEPT_LOCAL,T_GAME_OVER); + if (ch=ScanChar) + HandleChar(ch); +} + +U0 PickAI(U8 *dirname,I64 player) +{ + I64 i=0; + U8 *st; + CDirEntry *tempm,*tempm1,*tempm2; + CDoc *doc=DocNew; + Bool *old_silent=Silent(ON); + st=MSPrintF("%s/*.CPP.Z",dirname); + tempm=FilesFind(st); + Free(st); + tempm2=FilesFind("HOME/Tanks/*.CPP.Z"); + tempm1=tempm; + Silent(old_silent); + + DocPrintF(doc,"Player %d Type\n\n",player+1); + while (tempm1) { + if (!(i++&3)) + DocPutS(doc,"\n"); + st=StrNew(tempm1->name); + FileExtRem(st); + tempm1->user_data=DocPrintF(doc,"$$MU-UL,\"%-10ts\",%d$$ ",st,tempm1); + Free(st); + tempm1=tempm1->next; + } + tempm1=tempm2; + while (tempm1) { + if (!(i++&3)) + DocPutS(doc,"\n"); + st=StrNew(tempm1->name); + FileExtRem(st); + tempm1->user_data=DocPrintF(doc,"$$MU-UL,\"%-10ts\",%d$$ ",st,tempm1); + Free(st); + tempm1=tempm1->next; + } + DocPutS(doc,"\n\n\nCreate your own AI in HOME/Tanks."); + while ((tempm1=PopUpMenu(doc))<0); + ExeFile(tempm1->full_name); + DocDel(doc); + CDirListDel(tempm); + CDirListDel(tempm2); + ExePrintF("plot_routines[%d]=&TanksPlot;move_routines[%d]=&TanksMove;fire_routines[%d]=&TanksFire;",player,player,player); +} + + +U0 DrawUnit(CTask *task,CDC *dc,Unit *tempu,I64 x,I64 y,F64 f) +{ + if (tempu->infantry) + CSpritePlot3(dc,x-task->horz_scroll.pos,y-task->vert_scroll.pos,0,tempu->img); + else + CSpritePlotRotZ3b(dc,x-task->horz_scroll.pos,y-task->vert_scroll.pos,0,tempu->img,f); +} + +U0 DrawUnits(CTask *task,CDC *dc) +{ + I64 i,j; + F64 x,y; + Unit *tempu; + for (j=0;j<2;j++) { + for (i=0;icolor=RED; + else + dc->color=GREEN; + } else { + if (j) + dc->color=LTPURPLE; + else + dc->color=LTCYAN; + } + if (tempu->life>0 && Bt(&tempu->visible[view_player],0) && tempu!=moving_unit) { + RowCol2XY(x,y,tempu->row,tempu->col); + if (phase&~1==PHASE_MOVE && tempu->remaining_movement || + (phase&~1==PHASE_PLOT&& tempu->indirect_fire|| + phase&~1==PHASE_FIRE&&!tempu->indirect_fire) && !tempu->fired || + Blink(5,tP(task))) + DrawUnit(task,dc,tempu,x,y,tempu->facing*60.0*ã/180.0); + } + } + } +} + +U0 DrawIt(CTask *task,CDC *dc) +{ + F64 x,y; + I64 h,v,i,j,r,c; + U8 buf[128]; + IndirectOrders *tempi; + Bool old_preempt=Preempt(OFF); + + task->horz_scroll.min=0; + task->horz_scroll.max=map_width-task->win_pixel_width; + task->vert_scroll.min=-FONT_HEIGHT; + task->vert_scroll.max=map_height-task->win_pixel_height; + TaskDerivedValsUpdate(task); + h=task->horz_scroll.pos; + v=task->vert_scroll.pos; + + map->flags|=DCF_NO_TRANSPARENTS; + GrBlot(dc,-h,-v,map); + + i=ipx-task->win_pixel_left-task->win_scroll_x; + j=ipy-task->win_pixel_top -task->win_scroll_y; + if (CursorInWindow(task,i,j)) + UpdateCursor(task,i,j); + RowCol2XY(x,y,cursor_row,cursor_col); + +//Roads require multiple cursor fills + dc->color=YELLOW; + c=terrain[cursor_row][cursor_col]; + for (i=-(HEX_SIDE+DCOS)/2;i<=(HEX_SIDE+DCOS)/2;i++) { + if (GrPeek(dc,x+i-h,y-v)==c) + GrFloodFill(dc,x+i-h,y-v); + for (j=-HEX_SIDE/2;j<=HEX_SIDE/2;j++) + if (GrPeek(dc,x+j-h,y+i-v)==c) + GrFloodFill(dc,x+j-h,y+i-v); + } + + DrawUnits(task,dc); + if (firing) { + dc->color=BLACK; + GrCircle(dc,fire_x-h,fire_y-v,2); + } + if (indirect_explosion) { + for (i=0;i<7;i++) { + if (indirect_row&1) + c=indirect_col+col_offsets_odd[i]; + else + c=indirect_col+col_offsets_even[i]; + r=indirect_row+row_offsets[i]; + if (0<=rcolor=LTRED; + else + dc->color=YELLOW; + GrCircle(dc,x+RandU16%HEX_SIDE-HEX_SIDE/2-h,y+RandU16%HEX_SIDE-HEX_SIDE/2-v,2); + } + } + } + } + if (moving_unit && moving_unit->visible[view_player]) { + dc->color=YELLOW; + DrawUnit(task,dc,moving_unit,move_x,move_y,move_facing); + } + ProgressBarsRst; + if (moving_unit) { + if (ipymovement; + progress4=moving_unit->remaining_movement; + } else { + progress1_max=moving_unit->movement; + progress1=moving_unit->remaining_movement; + } + } + if (fire_radius) { + dc->color=YELLOW; + GrCircle(dc,fire_radius_x-h,fire_radius_y-v,fire_radius-1); + GrCircle(dc,fire_radius_x-h,fire_radius_y-v,fire_radius+1); + dc->color=RED; + GrCircle(dc,fire_radius_x-h,fire_radius_y-v,fire_radius); + } + if (Blink(10,tP(task))) { + tempi=indirect_root.next; + while (tempi!=&indirect_root) { + if (tempi->attacker->player==view_player) { + RowCol2XY(x,y,tempi->row,tempi->col); + CSpritePlot3(dc,x-task->horz_scroll.pos,y-task->vert_scroll.pos,0,$IB,"<5>",5$); + } + tempi=tempi->next; + } + } + if (Bt(key_down_bitmap,SC_SHIFT)) { + if (show_visible_row!=cursor_row || show_visible_col!=cursor_col) { + show_visible_row=cursor_row; + show_visible_col=cursor_col; + RecalcVisibleMap(show_visible_row,show_visible_col); + } + + dc->color=LTGRAY; + for (j=0;jcolor=BLACK; + GrRect(dc,(task->win_pixel_width-i)>>1-10-task->win_scroll_x, + (task->win_pixel_height-FONT_HEIGHT)>>1-10-task->win_scroll_y, + i+20,FONT_HEIGHT+20); + + dc->color=YELLOW; + GrRect(dc,(task->win_pixel_width-i)>>1-7-task->win_scroll_x, + (task->win_pixel_height-FONT_HEIGHT)>>1-7-task->win_scroll_y, + i+14,FONT_HEIGHT+14); + + dc->color=RED; + GrPutS(dc,(task->win_pixel_width-i)>>1-task->win_scroll_x, + (task->win_pixel_height-FONT_HEIGHT)>>1-task->win_scroll_y, + msg_buf); + if (msg_off_timeout) { + if (msg_off_timeout-sys_jiffies<3*JIFFY_FREQ/2*ANIMATION_DELAY) + Snd(0); + if (sys_jiffies>msg_off_timeout) + *msg_buf=0; + } + } + + dc->color=WHITE; + GrRect(dc,-task->win_scroll_x,-task->win_scroll_y,(13+7+10+10)*FONT_WIDTH,FONT_HEIGHT); + + if (phase&~1==PHASE_PLOT) { + dc->color=PURPLE; + SPrintF(buf,"Turn:%2d Artillery",turn); + } else if (phase&~1==PHASE_MOVE) { + dc->color=GREEN; + SPrintF(buf,"Turn:%2d Move",turn); + } else { + dc->color=RED; + SPrintF(buf,"Turn:%2d Fire",turn); + } + GrPutS(dc,-task->win_scroll_x,-task->win_scroll_y,buf); + + SPrintF(buf,"%3d Units",alive_cnt[0]); + if (cur_player || Blink(,tP(task))) + dc->color=CYAN; + else + dc->color=LTCYAN; + GrPutS(dc,-task->win_scroll_x+(13+7)*FONT_WIDTH,-task->win_scroll_y,buf); + + SPrintF(buf,"%3d Units",alive_cnt[1]); + if (!cur_player || Blink(,tP(task))) + dc->color=PURPLE; + else + dc->color=LTPURPLE; + GrPutS(dc,-task->win_scroll_x+(13+7+10)*FONT_WIDTH,-task->win_scroll_y,buf); + Preempt(old_preempt); +} + +U0 TaskEndCB() +{ + Snd(0); + progress4=progress4_max=progress1=progress1_max=0; + Exit; +} + +U0 Tanks() +{ + I64 result,ch; + map=DCNew(DCT_COLOR8,MAP_WIDTH,MAP_HEIGHT); + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->win_inhibit|=WIF_DBL_CLICK|WIF_IP_L|WIF_IP_R; + + MenuPush( +"File {" +" Abort(,CH_SHIFT_ESC);" +" Exit(,CH_ESC);" +"}" +"Play {" +" EndPhase(,CH_SPACE);" +" Restart(,CH_NEW_LINE);" +"}" +"View {" +" Player1(,'1');" +" Player2(,'2');" +" ShowOdds(,'3');" +" LOS(,0,SCF_SHIFT);" +"}" +); + + WinMax; + WordStat; + WinBorder(ON); + Preempt(OFF); + Init; + PickAI("/SparrowOS/Apps/Tanks/AIs",0); + PickAI("/SparrowOS/Apps/Tanks/AIs",1); + + PopUpOk("Left-click to move or fire units.\n" + "$$FG,GREEN$$$$FG$$ or right-click to end phase.\n" + "$$FG,GREEN$$\t $$FG$$ to show line-of-sight.\n" + "$$FG,GREEN$$\t $$FG$$ to start new game.\n" + "$$FG,GREEN$$ 1\t $$FG$$ Player 1 view.\n" + "$$FG,GREEN$$ 2\t $$FG$$ Player 2 view.\n" + "$$FG,GREEN$$ 3\t $$FG$$ View odds calculations."); + Fs->task_end_cb=&TaskEndCB; // + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + "$$FG,GREEN$$$$FG$$ to return to game.\n"; + + NewPhase; + try { + do { + try { + result=T_EXIT_GAME; + if (phase&~1==PHASE_PLOT) + CallInd(plot_routines[cur_player]); + else if (phase&~1==PHASE_MOVE) + CallInd(move_routines[cur_player]); + else + CallInd(fire_routines[cur_player]); + } catch { + if (Fs->except_argc==2 && Fs->except_argv[0]==EXCEPT_LOCAL) { + Fs->catch_except=TRUE; + result=Fs->except_argv[1]; + } + } + switch (result) { + case T_TURN_OVER: + NewPhase; + break; + case T_GAME_OVER: + while (TRUE) { + msg_off_timeout=0; + StrCpy(msg_buf,"Game Over"); + Snd(0); + ch=GetChar(NULL,FALSE); + if (ch==CH_NEW_LINE) { + Init; + NewPhase; + break; + } else if (ch==CH_ESC || ch==CH_SHIFT_ESC) { + result=T_EXIT_GAME; + break; + } else if (ch=='1') + SetViewPlayer(0); + else if (ch=='2') + SetViewPlayer(1); + } + break; + case T_NEW_GAME: + CleanUp; + Init; + NewPhase; + break; + } + } while (result!=T_EXIT_GAME); + } catch + CatchAll; + ProgressBarsRst; + + SettingsPop; + MenuPop; + DCDel(map); + CleanUp; +} +LÿÿÿÿüÿÿÿúÿÿÿüÿÿÿúÿÿÿþÿÿÿøÿÿÿüÿÿÿüÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿGÿÿÿÿýÿÿÿüÿÿÿþÿÿÿüÿÿÿþÿÿÿúÿÿÿÏþÿÿÿþÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿüÿÿÿüÿÿÿüÿÿÿýÿÿÿþÿÿÿûÿÿÿûÿÿÿýÿÿÿüÿÿÿþÿÿÿýÿÿÿþÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿ<þÿÿÿþÿÿÿ \ No newline at end of file diff --git a/SparrowOS/Apps/TimeClock/Install.CPP b/SparrowOS/Apps/TimeClock/Install.CPP new file mode 100644 index 0000000..0102d5b --- /dev/null +++ b/SparrowOS/Apps/TimeClock/Install.CPP @@ -0,0 +1,5 @@ +MkDir("HOME/TimeClock"); +"$$CL$$After Loading, type $$FG,GREEN$$PunchIn;$$FG$$, " +"$$FG,GREEN$$PunchOut;$$FG$$ or $$FG,GREEN$$TimeRep;$$FG$$" +" You might want to make PLUGINS for hot keys.\n\n\n"; + diff --git a/SparrowOS/Apps/TimeClock/Load.CPP b/SparrowOS/Apps/TimeClock/Load.CPP new file mode 100644 index 0000000..c27f1d9 --- /dev/null +++ b/SparrowOS/Apps/TimeClock/Load.CPP @@ -0,0 +1 @@ +#include "/SparrowOS/Apps/TimeClock/TimeClk.CPP.Z" diff --git a/SparrowOS/Apps/TimeClock/TimeClk.CPP b/SparrowOS/Apps/TimeClock/TimeClk.CPP new file mode 100644 index 0000000..319f8d9 --- /dev/null +++ b/SparrowOS/Apps/TimeClock/TimeClk.CPP @@ -0,0 +1,156 @@ +#define TIME_FILENAME "HOME/TimeClock/TimeFile.DAT.Z" + +#define TET_EOF 0 +#define TET_PUNCH_IN 1 +#define TET_PUNCH_OUT 2 + +class TimeEntry +{ + TimeEntry *next,*last; + U8 type; + CDate datetime; + U8 *desc; +}; + + +U0 TimeFileRead(TimeEntry *header) +{ + U8 *buf,*ptr,type; + TimeEntry *tempt; + buf=FileRead(TIME_FILENAME); + if (!buf) + buf=CAlloc(1); + header->next=header->last=header; + ptr=buf; + while (type=*ptr++) { + tempt=CAlloc(sizeof(TimeEntry)); + tempt->type=type; + tempt->datetime=*ptr(CDate *)++; + tempt->desc=StrNew(ptr); + ptr+=StrLen(ptr)+1; + QueIns(tempt,header->last); + } + Free(buf); +} + +U0 TimeFileWrite(TimeEntry *header) +{ + U8 *buf,*ptr; + TimeEntry *tempt; + I64 size=1; //for eof + + tempt=header->next; + while (tempt!=header) { + size+=sizeof(U8)+sizeof(CDate)+StrLen(tempt->desc)+1; + tempt=tempt->next; + } + buf=MAlloc(size); + + ptr=buf; + tempt=header->next; + while (tempt!=header) { + *ptr++=tempt->type; + *ptr(CDate *)++=tempt->datetime; + StrCpy(ptr,tempt->desc); + ptr+=StrLen(tempt->desc)+1; + tempt=tempt->next; + } + *ptr=TET_EOF; + FileWrite(TIME_FILENAME,buf,size); + Free(buf); +} + +U0 TimeEntriesDel(TimeEntry *header) +{ + TimeEntry *tempt=header->next,*tempt1; + while (tempt!=header) { + tempt1=tempt->next; + Free(tempt->desc); + Free(tempt); + tempt=tempt1; + } + Free(header); +} + +public Bool TimeRep(TimeEntry **_header=NULL) +{ + Bool is_in=FALSE,first=TRUE; + TimeEntry *tempt; + I64 week,cur_week=-1,week_total; + TimeEntry *header=MAlloc(sizeof(TimeEntry)); + if (_header) *_header=header; + TimeFileRead(header); + tempt=header->next; + while (tempt!=header) { + week=tempt->datetime.date/7; //TODO + if (week!=cur_week) { + if (!first) { + if (is_in) + week_total+=GetCurTimeCDate; + "Week Total:%h7T\n",week_total; + } else + first=FALSE; + cur_week=week; + week_total=0; + } + if (tempt->type==TET_PUNCH_IN) { + "$$FG,RED$$IN "; + if (!is_in) + week_total-=tempt->datetime; + is_in=TRUE; + } else { + "$$FG,RED$$OUT"; + if (is_in) + week_total+=tempt->datetime; + is_in=FALSE; + } + " %h2D %T:$$FG$$\n%s\n",tempt->datetime,tempt->datetime,tempt->desc; + tempt=tempt->next; + } + if (is_in) + week_total+=GetCurTimeCDate; + "$$FG,RED$$Week Total:%h7T$$FG$$\n",week_total; + if (!_header) + TimeEntriesDel(header); + return is_in; +} + +public U0 PunchOut() +{ + Bool is_in; + TimeEntry *tempt,*header; + is_in=TimeRep(&header); + if (!is_in) + "$$BK,1$$Already Punched-Out$$BK,0$$\n"; + else { + tempt=MAlloc(sizeof(TimeEntry)); + tempt->type=TET_PUNCH_OUT; + tempt->datetime=GetCurTimeCDate; + "\nEnter Description.\nPress when done.\n"; + if (!(tempt->desc=MGetS(GETSF_WITH_NEW_LINE))) + tempt->desc=CAlloc(1); + QueIns(tempt,header->last); + TimeFileWrite(header); + } + TimeEntriesDel(header); +} + +public U0 PunchIn() +{ + Bool is_in; + TimeEntry *tempt,*header; + is_in=TimeRep(&header); + if (is_in) + "$$BK,1$$Already Punched-In$$BK,0$$\n"; + else { + tempt=MAlloc(sizeof(TimeEntry)); + tempt->type=TET_PUNCH_IN; + tempt->datetime=GetCurTimeCDate; + "\nEnter Description.\nPress when done.\n"; + if (!(tempt->desc=MGetS(GETSF_WITH_NEW_LINE))) + tempt->desc=CAlloc(1); + QueIns(tempt,header->last); + TimeFileWrite(header); + } + TimeEntriesDel(header); +} diff --git a/SparrowOS/Apps/Timeout/Load.CPP b/SparrowOS/Apps/Timeout/Load.CPP new file mode 100644 index 0000000..65c095a --- /dev/null +++ b/SparrowOS/Apps/Timeout/Load.CPP @@ -0,0 +1,5 @@ +#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 new file mode 100644 index 0000000..86490ea --- /dev/null +++ b/SparrowOS/Apps/Timeout/Run.CPP @@ -0,0 +1,2 @@ +#include "/SparrowOS/Apps/Timeout/Load" +Timeout; \ No newline at end of file diff --git a/SparrowOS/Apps/Timeout/Timeout.CPP b/SparrowOS/Apps/Timeout/Timeout.CPP new file mode 100644 index 0000000..2fcedff --- /dev/null +++ b/SparrowOS/Apps/Timeout/Timeout.CPP @@ -0,0 +1,800 @@ +AcctRegSetDftEntry("SparrowOS/Timeout","I64 best_score=0;\n"); +AcctRegExecuteBranch("SparrowOS/Timeout"); + +#define MAP_HEIGHT 4096 +#define SHOT_LEN 10 +#define SHOT_SPEED 5 + +#define MAX_SHOTS 128 +class Shot +{ + I64 x,y,dx,dy,dx2,dy2; + Bool dead,pad[7]; +} s[MAX_SHOTS]; +I64 shots_fired; + + +I64 x,y,dx,dy,scroll_y,finish_line; +F64 é; +F64 t0,tf,snd_shot_timeout,snd_death_timeout; + +#define PHASES_GROUPS 10 +#define MAX_ENEMY (PHASES_GROUPS*100) +#define MAX_FRIENDLY (PHASES_GROUPS*20) +#define MAX_MAN (MAX_FRIENDLY+MAX_ENEMY) +class Man +{ + I64 x,y; + F64 corpse_timeout; + Bool friendly,dead,pad[6]; +} m[MAX_MAN]; + +I64 total_score,friendly_fire,enemy_by_friendly,friendly_left,enemy_left, + main_loop_pass; +Bool game_over; +$BG,14$$FB,1$ + + + + +$SP,"fighter",1$ + + + + + +$SP,"friendly",2$ + + + +$SP,"enemy",3$ + + + +$SP,"dead friendly",4$ + + +$SP,"dead enemy",5$ + + + + + + +#define LANDSCAPE_TYPES 4 + + + + +$SP,"Tree",6$ + + + + +$SP,"rock",7$ + + + + + +$SP,"mountain",8$ + + + + + + + +$SP,"castle",9$ + + + + + + + + + + + + + + + +$BG$ + +CSprite *l_imgs[LANDSCAPE_TYPES]= + {$IB,"",6$,$IB,"",7$,$IB,"",8$,$IB,"",9$}; + +#define MAX_LANDSCAPE 64 +class LandScapeItem +{ + I64 x,y; + U8 *img; +} ls[MAX_LANDSCAPE]; + + +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 i,yy; + F64 t1; + Man *tempm; + Shot *temps; + + task->text_attr=YELLOW<<4; + for (i=0;iwin_pixel_bottom+32) + CSpritePlot3(dc,ls[i].x,yy,0,ls[i].img); + } + + dc->pen_width=3; + dc->color=BROWN; + GrLine3(dc,0, (finish_line-scroll_y)&(MAP_HEIGHT-1),0, + GR_WIDTH,(finish_line-scroll_y)&(MAP_HEIGHT-1),0); + + dc->color=LTRED; + for (i=0,temps=s;idead) + GrLine(dc,temps->x>>32,temps->y>>32, + (temps->x+temps->dx*SHOT_LEN)>>32, + (temps->y+temps->dy*SHOT_LEN)>>32); + for (i=0,tempm=m;iy-scroll_y)&(MAP_HEIGHT-1); + if (-32<=yy<=Fs->win_pixel_bottom+32) { + if (tempm->dead && + tP(task)corpse_timeout) + if (!(RandU16&15)) { + if (tempm->friendly) + CSpritePlot3(dc,tempm->x,yy,0,$IB,"",4$); + else + CSpritePlot3(dc,tempm->x,yy,0,$IB,"",5$); + } + } + } + for (i=0,tempm=m;iy-scroll_y)&(MAP_HEIGHT-1); + if (-32<=yy<=Fs->win_pixel_bottom+32) { + if (!tempm->dead) { + if (tempm->friendly) + CSpritePlot3(dc,tempm->x,yy,0,$IB,"",2$); + else + CSpritePlot3(dc,tempm->x,yy,0,$IB,"",3$); + } + } + } + CSpritePlotRotZ3b(dc,x,y,0,$IB,"",1$,é); + + if (tf) { + t1=tf; + dc->color=RED; + if (game_over && Blink(,tP(task))) + GrPutS(dc,task->win_pixel_width/2-9*FONT_WIDTH/2, + task->win_pixel_height/2,"Game Over"); + } else { + t1=tP(task); + if (!enemy_left || !friendly_left) + game_over=TRUE; + } + dc->color=BROWN; + GrPrintF(dc,0,0,"Enemy:%d Friends:%d Friendly Fire:%d Time:%6.2f Shots:%d", + enemy_left,friendly_left,friendly_fire,t1-t0,shots_fired); + GrPrintF(dc,0,8,"Total Score:%,d High Score:%,d", + total_score,best_score); +} + +#define MONO_MAN_WIDTH 32 +#define MONO_MAN_HEIGHT 32 + +U0 CheckCollisions() +{ + I64 i,x,y; + Man *tempm; + Shot *temps; + CDC *dc2 =DCNew(DCT_COLOR8,GR_WIDTH,GR_HEIGHT), + *friend=DCNew(DCT_COLOR8,MONO_MAN_WIDTH,MONO_MAN_HEIGHT), + *enemy =DCNew(DCT_COLOR8,MONO_MAN_WIDTH,MONO_MAN_HEIGHT); + DCFill(friend); + CSpritePlot3(friend,MONO_MAN_WIDTH/2,MONO_MAN_HEIGHT/2,0,$IB,"",2$); + DCFill(enemy); + CSpritePlot3(enemy ,MONO_MAN_WIDTH/2,MONO_MAN_HEIGHT/2,0,$IB,"",3$); + + dc2->color=WHITE; + for (i=0,temps=s;idead) + GrLine(dc2,temps->x>>32,temps->y>>32, + (temps->x+temps->dx*SHOT_LEN)>>32, + (temps->y+temps->dy*SHOT_LEN)>>32); + + dc2->color =ROP_COLLISION; + dc2->bkcolor=BLACK; + for (i=0,tempm=m;idead) { + x=tempm->x; + y=(tempm->y-scroll_y)&(MAP_HEIGHT-1); + if (0<=xcollision_cnt=0; + if (tempm->friendly) + GrBlot(dc2,x-MONO_MAN_WIDTH/2,y-MONO_MAN_HEIGHT/2,friend); + else + GrBlot(dc2,x-MONO_MAN_WIDTH/2,y-MONO_MAN_HEIGHT/2,enemy); + if (dc2->collision_cnt) { + tempm->dead=TRUE; + tempm->corpse_timeout=tP+30.0; + if (tempm->friendly) { + friendly_fire++; + friendly_left--; + Snd(200); + } else { + enemy_left--; + Snd(50); + } + snd_death_timeout=tP+0.01; + } + } + } + } + DCDel(friend); + DCDel(enemy); + DCDel(dc2); +} + +U0 Init() +{ + I64 i,xx,yy; + Man *tempm; + + snd_shot_timeout=snd_death_timeout=0; + Snd(0); + + total_score=0; + game_over=FALSE; + main_loop_pass=0; + + scroll_y=MAP_HEIGHT-100; + x=Fs->win_pixel_width>>1; + y=0.9*Fs->win_pixel_height; + finish_line=scroll_y+y; + dx=0; + dy=0; + é=0; + + for (i=0;iwin_pixel_width-100)*RandU32/MAX_U32+50; + ls[i].y=(MAP_HEIGHT-100)*RandU32/MAX_U32+50; + ls[i].img=l_imgs[RandU16%(LANDSCAPE_TYPES-2)]; + } + ls[0].img=l_imgs[LANDSCAPE_TYPES-2]; //mountain + ls[1].img=l_imgs[LANDSCAPE_TYPES-2]; //mountain + ls[2].img=l_imgs[LANDSCAPE_TYPES-1]; //castle + + for (i=0,tempm=m;ifriendly=TRUE; + if (!(i&7)) { + xx=(Fs->win_pixel_width-200)*RandU32/MAX_U32; + yy=(MAP_HEIGHT-200)*RandU32/MAX_U32; + } + } else { + tempm->friendly=FALSE; + if (!(i&31)) { + xx=(Fs->win_pixel_width-200)*RandU32/MAX_U32; + yy=(MAP_HEIGHT-200)*RandU32/MAX_U32; + } + } + tempm->dead=FALSE; + tempm->x=xx+64*RandI32/MAX_I32+100; + tempm->y=yy+64*RandU32/MAX_I32-64+100; + tempm->corpse_timeout=0; + } + for (i=0;ix=j<<32; + + j=y-24.0*Cos(é); + temps->y=j<<32; + + temps->dx2=(SHOT_SPEED*Sin(é)+dx)*0x100000000; + temps->dy2=-SHOT_SPEED*Cos(é)*0x100000000; + a=Arg(temps->dx2,temps->dy2); + temps->dx=Cos(a)*0x100000000; + temps->dy=Sin(a)*0x100000000; + shots_fired++; + temps->dead=FALSE; + if (!snd_death_timeout) { + Snd(1000); + snd_shot_timeout=tP+0.0005; + } +} + +U0 MenMove(I64 phase_group) +{ + I64 i,j,d,closest,closest_d; + for (i=phase_group;idraw_it=&DrawIt; + + gun_on=FALSE; + + try { + while (TRUE) { + next_update_jiffy=sys_jiffies+JIFFY_FREQ/100; + while (msg_code=ScanMsg(&p1,&p2, + 1<snd_death_timeout) { + snd_death_timeout=0; + Snd(0); + } + } else if (snd_shot_timeout && tP>snd_shot_timeout) { + snd_shot_timeout=0; + Snd(0); + } + + for (i=0;i>32>=Fs->win_pixel_width|| + s[i].y>>32>=Fs->win_pixel_height) + s[i].dead=TRUE; + } + } + + dx=0; + if (Bt(key_down_bitmap,SC_CURSOR_LEFT)) { + é=-15.0*ã/180.0; + dx=-2; + } else if (Bt(key_down_bitmap,SC_CURSOR_RIGHT)) { + é=15.0*ã/180.0; + dx=2; + } + x+=dx; + while (x>=Fs->win_pixel_width) + x-=Fs->win_pixel_width; + while (x<0) + x+=Fs->win_pixel_width; + + //It takes too much CPU do do all these all the time. + nobound_switch (main_loop_pass&7) { + case 0: + nobound_switch (main_loop_pass>>3&7) { + case 0: + if (--y<20) + game_over=TRUE; + case 2: + case 4: + case 6: + MenFight(main_loop_pass>>4%PHASES_GROUPS); + break; + case 1: + case 3: + case 5: + case 7: + MenMove (main_loop_pass>>4%PHASES_GROUPS); + break; + } + case 4: + break; + case 2: + case 6: + if (gun_on) + FireShot; + break; + case 1: + case 3: + case 5: + case 7: + CheckCollisions; + break; + } + main_loop_pass++; + + scroll_y--; + SleepUntil(next_update_jiffy); + + total_score=5*(MAX_ENEMY-enemy_left) + +10*enemy_by_friendly + -200*friendly_fire + -10*(tP-t0) + -shots_fired; + if (game_over) { + tf=tP; + Sleep(500); + FlushMsgs; + while (!ScanKey(&p1)&&friendly_left) { + total_score+=500; + Snd(2000); Sleep(150); + Snd(0); Sleep(50); + friendly_left--; + } + total_score+=500*friendly_left; + if (total_score>best_score) + best_score=total_score; + if (!p1) p1=GetChar(,FALSE); + if (p1==CH_ESC||p1==CH_SHIFT_ESC) + goto to_done; + gun_on=FALSE; + Init; + } + } +to_done: + GetMsg(,,1<",1$ + +$SP,"",2$ + +$SP,"",3$ + + +$SP,"",4$ + + +$SP,"",5$ + + +$SP,"",6$ + +$BG$ +// ********************************** Ship +Bool CheckOverlap() +{ + CD3 p; + MyMass *tempm,*tempm1; + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + tempm1=ode->next_mass; + while (tempm1!=&ode->next_mass) { + if (tempm!=tempm1) { + D3Sub(&tempm->x,&tempm1->x,&p); + if (D3SqrNorm(&p)<=Sqr(tempm->radius+tempm1->radius)) + return TRUE; + } + tempm1=tempm1->next; + } + tempm=tempm->next; + } + return FALSE; +} + +Ship *ShipNew(I64 x,I64 y,I64 type) +{ + I64 i; + Ship *temps=CAlloc(sizeof(Ship)); + + switch (temps->type=type) { + case ST_HUMAN1: + temps->fire_rate=25; + temps->masses=5; + temps->p[0].x=x; + temps->p[0].y=y; + temps->p[1].x=x+3; + temps->p[1].y=y+10; + temps->p[2].x=x-3; + temps->p[2].y=y+10; + temps->p[3].x=x+20; + temps->p[3].y=y+20; + temps->p[4].x=x-20; + temps->p[4].y=y+20; + + for (i=0;imasses;i++) { + temps->p[i].mass=1; + if (i<3) + temps->p[i].radius=2.5; + else + temps->p[i].radius=4; + temps->p[i].drag_profile_factor=3; + QueIns(&temps->p[i],ode->last_mass); + } + temps->p[3].mass/=10.0; + temps->p[4].mass/=10.0; + + temps->springs=7; + temps->s[0].end1=&temps->p[0]; + temps->s[0].end2=&temps->p[1]; + temps->s[1].end1=&temps->p[2]; + temps->s[1].end2=&temps->p[0]; + temps->s[2].end1=&temps->p[1]; + temps->s[2].end2=&temps->p[2]; + temps->s[3].end1=&temps->p[1]; + temps->s[3].end2=&temps->p[3]; + temps->s[4].end1=&temps->p[0]; + temps->s[4].end2=&temps->p[3]; + temps->s[5].end1=&temps->p[2]; + temps->s[5].end2=&temps->p[4]; + temps->s[6].end1=&temps->p[0]; + temps->s[6].end2=&temps->p[4]; + + for (i=0;isprings;i++) { + temps->s[i].rest_len=D3Dist(&temps->s[i].end1->x,&temps->s[i].end2->x); + temps->s[i].constant=10000; + temps->s[i].strength =30000; + if (i<=2) + temps->s[i].color=LTCYAN; + else + temps->s[i].color=LTGRAY; + QueIns(&temps->s[i],ode->last_spring); + } + remaining=0; + + break; + case ST_ENEMY1: + temps->fire_rate=2.5; + temps->masses=3; + temps->p[0].x=x; + temps->p[0].y=y; + temps->p[1].x=x+15; + temps->p[1].y=y; + temps->p[2].x=x; + temps->p[2].y=y+15; + + for (i=0;imasses;i++) { + temps->p[i].mass=1; + temps->p[i].radius=7; + temps->p[i].drag_profile_factor=3; + QueIns(&temps->p[i],ode->last_mass); + } + + temps->springs=3; + temps->s[0].end1=&temps->p[0]; + temps->s[0].end2=&temps->p[1]; + temps->s[1].end1=&temps->p[1]; + temps->s[1].end2=&temps->p[2]; + temps->s[2].end1=&temps->p[2]; + temps->s[2].end2=&temps->p[0]; + + for (i=0;isprings;i++) { + temps->s[i].rest_len=D3Dist(&temps->s[i].end1->x,&temps->s[i].end2->x); + temps->s[i].constant=10000; + temps->s[i].strength =20000; + temps->s[i].color=BLACK; + QueIns(&temps->s[i],ode->last_spring); + } + remaining++; + break; + case ST_ENEMY2: + temps->fire_rate=5.0; + temps->masses=5; + temps->p[0].x=x; + temps->p[0].y=y; + temps->p[1].x=x-7; + temps->p[1].y=y+10; + temps->p[2].x=x+7; + temps->p[2].y=y+10; + temps->p[3].x=x-14; + temps->p[3].y=y+20; + temps->p[4].x=x+14; + temps->p[4].y=y+20; + + for (i=0;imasses;i++) { + temps->p[i].mass=1; + temps->p[i].radius=6; + temps->p[i].drag_profile_factor=5; + temps->p[i].color=PURPLE; + QueIns(&temps->p[i],ode->last_mass); + } + + temps->springs=7; + temps->s[0].end1=&temps->p[0]; + temps->s[0].end2=&temps->p[1]; + temps->s[1].end1=&temps->p[0]; + temps->s[1].end2=&temps->p[2]; + temps->s[2].end1=&temps->p[1]; + temps->s[2].end2=&temps->p[2]; + temps->s[3].end1=&temps->p[1]; + temps->s[3].end2=&temps->p[3]; + temps->s[4].end1=&temps->p[2]; + temps->s[4].end2=&temps->p[4]; + temps->s[5].end1=&temps->p[2]; + temps->s[5].end2=&temps->p[3]; + temps->s[6].end1=&temps->p[1]; + temps->s[6].end2=&temps->p[4]; + + for (i=0;isprings;i++) { + temps->s[i].rest_len=D3Dist(&temps->s[i].end1->x,&temps->s[i].end2->x); + temps->s[i].constant= 40000; + temps->s[i].strength =75000; + if (i>=3) + temps->s[i].color=LTPURPLE; + else + temps->s[i].color=BLACK; + QueIns(&temps->s[i],ode->last_spring); + } + remaining++; + break; + } + QueIns(temps,ship_root.last); + return temps; +} + +U0 ShipDel(Ship *temps) +{ + I64 i; + if (!temps) return; + for (i=0;imasses;i++) + QueRem(&temps->p[i]); + for (i=0;isprings;i++) + QueRem(&temps->s[i]); + QueRem(temps); + Free(temps); + remaining--; +} + +U0 PlaceShip(I64 type) +{ + Ship *ee; + if (CheckOverlap) + return; + while (TRUE) { + ee=ShipNew(RandU16%(Fs->win_pixel_width-20)+10,RandU16%(Fs->win_pixel_height-20)+10,type); + if (CheckOverlap) + ShipDel(ee); + else + break; + } +} + +// ********************************** Human Ship + +I64 Tweaked() +{ + CD3 p,p1,p2; + if (human) { + D3Sub(&human->p[0].x,&human->p[1].x,&p1); + D3Sub(&human->p[0].x,&human->p[2].x,&p2); + D3Add(&p1,&p2,&p); + D3Unit(&p); + D3Sub(&human->p[0].x,&human->p[3].x,&p1); + D3Sub(&human->p[0].x,&human->p[4].x,&p2); + D3Unit(&p1); + D3Unit(&p2); + if (!(human->s[3].flags&SSF_INACTIVE) && D3Dot(&p,&p1)>Cos(20*ã/180)) + return 3; + if (!(human->s[5].flags&SSF_INACTIVE) && D3Dot(&p,&p2)>Cos(20*ã/180)) + return 4; + return 0; + } +} + +U0 AllDel(CMathODE *ode) +{ + Ship *temps,*temps1; + QueRem(ode); + temps=ship_root.next; + while (temps!=&ship_root) { + temps1=temps->next; + ShipDel(temps); + temps=temps1; + } + human=NULL; + QueDel(&bullet_root,TRUE); + ODEDel(ode); +} + +Bool LaserPlot(CDC *dc,I64 x,I64 y,I64) +{ + I64 c; + c=GrPeek(dc,x,y); + if (c!=BLACK && c!=WHITE) + return FALSE; + else { + GrPlot(dc,x,y); + return TRUE; + } +} + +// ********************************** +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 i,j; + F64 arg; + Ship *temps; + Bullet *tempb; + CD3 p,p1,p2; + F64 t_left,t_right,spin,d,x,y; + MySpring *tempss; + U8 *img; + Bool draw_laser_line=FALSE; + + task->text_attr=BLACK<<4+WHITE; + if (ode!=task->last_ode) return; + + dc->color=WHITE; + GrPrintF(dc,0,0,"Level:%d Score:%d High Score:%d",level,score,best_score); + if (game_over) { + if (Blink(,tP(task))) + GrPutS(dc,(task->win_pixel_width-9*FONT_WIDTH)/2, + (task->win_pixel_height-FONT_HEIGHT)/2,"Game Over"); + } else if (show_level_msg) { + if (Blink(,tP(task))) + GrPrintF(dc,(task->win_pixel_width-8*FONT_WIDTH)/2, + (task->win_pixel_height-FONT_HEIGHT)/2+50,"Level %d",level); + } + + for (i=0;inext_spring; + while (tempss!=&ode->next_spring) { + if (!(tempss->flags&SSF_INACTIVE)) { + dc->color=tempss->color; + GrLine(dc,tempss->end1->x,tempss->end1->y, + tempss->end2->x,tempss->end2->y); + } + tempss=tempss->next; + } + + temps=ship_root.next; + while (temps!=&ship_root) { + if (!temps->exploding) + switch (temps->type) { + case ST_HUMAN1: + if (temps->spacewalk_side) { + t_left=0; + t_right=0; + } else { + if (d=D3Norm(D3Sub(&temps->p[0].x,&temps->p[1].x,&p1))) { + D3Sub(&temps->p[0].DxDt,&temps->p[1].DxDt,&p2); + D3Cross(&p1,&p2,&p); + spin=p.z/d; + } else + spin=0; + t_left =Limit(human_t_left+SPIN_GAIN*spin*human_antispin,0,MAX_THRUST); + + if (d=D3Norm(D3Sub(&temps->p[0].x,&temps->p[2].x,&p1))) { + D3Sub(&temps->p[0].DxDt,&temps->p[2].DxDt,&p2); + D3Cross(&p1,&p2,&p); + spin=p.z/d; + } else + spin=0; + t_right=Limit(human_t_right-SPIN_GAIN*spin*human_antispin,0,MAX_THRUST); + } + + + D3Sub(&temps->p[1].x,&temps->p[0].x,&p1); + D3Sub(&temps->p[2].x,&temps->p[0].x,&p2); + D3Unit(D3Add(&p1,&p2,&p)); + + if (!(temps->s[3].flags&SSF_INACTIVE)) { + dc->color=YELLOW; + D3AddEqu(D3Mul(t_left/25,&p,&p1),&temps->p[3].x); + GrLine(dc,temps->p[1].x,temps->p[1].y,p1.x,p1.y); + arg=Arg(p.x,p.y); + CSpritePlotRotZ3b(dc,temps->p[3].x,temps->p[3].y,0,$IB,"",1$,arg); + } + + if (!(temps->s[5].flags&SSF_INACTIVE)) { + dc->color=YELLOW; + D3AddEqu(D3Mul(t_right/25,&p,&p2),&temps->p[4].x); + GrLine(dc,temps->p[2].x,temps->p[2].y,p2.x,p2.y); + arg=Arg(p.x,p.y); + CSpritePlotRotZ3b(dc,temps->p[4].x,temps->p[4].y,0,$IB,"",1$,arg); + } + + if (tP(task)>temps->reload_timeout) + img=$IB,"",2$; + else + img=$IB,"",3$; + arg=Arg(p.x,p.y); + switch (level) { + case 3: + if (!(temps->s[3].flags&SSF_INACTIVE)) + CSpritePlotRotZ3b(dc,temps->p[3].x,temps->p[3].y,0,img,arg); + if (!(temps->s[5].flags&SSF_INACTIVE)) + CSpritePlotRotZ3b(dc,temps->p[4].x,temps->p[4].y,0,img,arg); + case 2: + if (!(temps->s[1].flags&SSF_INACTIVE)) + CSpritePlotRotZ3b(dc,temps->p[1].x,temps->p[1].y,0,img,arg); + if (!(temps->s[2].flags&SSF_INACTIVE)) + CSpritePlotRotZ3b(dc,temps->p[2].x,temps->p[2].y,0,img,arg); + case 1: + CSpritePlotRotZ3b(dc,temps->p[0].x,temps->p[0].y,0,img,arg); + break; + default: + CSpritePlotRotZ3b(dc,temps->p[0].x,temps->p[0].y,0,$IB,"",6$,arg); + if (temps->lasering && !temps->laser_overheat) { + draw_laser_line=TRUE; + Snd(1000); + } + break; + } + + ctrl_panel.laser_temperature=temps->laser_temperature; + + if (temps->spacewalk_side) { + d=1.0-(temps->spacewalk_timeout-tP(task))/SPACEWALK_TIME; + if (d>1.0) { + temps->spacewalk_side=0; + ctrl_panel.spacewalk=FALSE; + } else { + if (d<0.5) { + d=d*2; + x=temps->p[0].x*(1.0-d)+temps->p[temps->spacewalk_side].x*(d); + y=temps->p[0].y*(1.0-d)+temps->p[temps->spacewalk_side].y*(d); + } else { + d=(d-0.5)*2; + x=temps->p[temps->spacewalk_side].x*(1.0-d)+temps->p[0].x*(d); + y=temps->p[temps->spacewalk_side].y*(1.0-d)+temps->p[0].y*(d); + } + CSpritePlotRotZ3b(dc,x,y,0,$IB,"",4$,arg+0.75*Sin(tP(task)*2)); + } + } else { + if (ctrl_panel.spacewalk) { + if (temps->spacewalk_side=Tweaked) + temps->spacewalk_timeout=tP(task)+SPACEWALK_TIME; + else + ctrl_panel.spacewalk=FALSE; + } + } + break; + case ST_ENEMY2: + for (i=3;imasses;i++) { + dc->color=temps->p[i].color; + GrCircle(dc,temps->p[i].x,temps->p[i].y,temps->p[i].radius); + GrFloodFill(dc,temps->p[i].x,temps->p[i].y+2,TRUE); + dc->color=WHITE; + GrCircle(dc,temps->p[i].x,temps->p[i].y,temps->p[i].radius); + } + case ST_ENEMY1: + D3DivEqu(D3Sub(&temps->p[1].x,&temps->p[0].x,&p1),2.0); + D3DivEqu(D3Sub(&temps->p[2].x,&temps->p[0].x,&p2),2.0); + D3Unit(D3Add(&p1,&p2,&p)); + if (tP(task)>temps->reload_timeout) + img=$IB,"",2$; + else + img=$IB,"",3$; + arg=Arg(p.x,p.y); + CSpritePlotRotZ3b(dc,temps->p[0].x,temps->p[0].y,0,img,arg); + arg=Arg(p1.x,p1.y); + CSpritePlotRotZ3b(dc,temps->p[0].x+p1.x,temps->p[0].y+p1.y,0,$IB,"",5$,arg); + arg=Arg(p2.x,p2.y); + CSpritePlotRotZ3b(dc,temps->p[0].x+p2.x,temps->p[0].y+p2.y,0,$IB,"",5$,arg); + for (i=0;imasses;i++) { + dc->color=YELLOW; + if (temps->p[i].temperature>=1.0) + GrCircle(dc,temps->p[i].x,temps->p[i].y,temps->p[i].temperature); + } + break; + } + else if (temps->die_time<=tP(task)<=temps->die_timeout) + for (j=0;jmasses;j++) { + d=(tP(task)-temps->die_time)/(temps->die_timeout-temps->die_time); + d=7*Sin(ã*d)*(6+j)+1; + for (i=1;icolor=YELLOW; + else + dc->color=LTRED; + GrCircle(dc,temps->p[j].x,temps->p[j].y,i); + } + } + temps=temps->next; + } + + tempb=bullet_root.next; + while (tempb!=&bullet_root) { + if (tP(task)>tempb->fuse_time) { + d=(tP(task)-tempb->fuse_time)/(tempb->die_timeout-tempb->fuse_time); + d=7*Sin(ã*d)*tempb->radius+1; + for (i=1;icolor=YELLOW; + else + dc->color=LTRED; + GrCircle(dc,tempb->p.x,tempb->p.y,i); + } + } else { + if (tempb->radius<1.0) { + dc->color=LTGREEN; + GrPlot(dc,tempb->p.x,tempb->p.y); + } else { + dc->color=YELLOW; + GrCircle(dc,tempb->p.x,tempb->p.y,tempb->radius); + if (tempb->radius>=2.0) + GrFloodFill(dc,tempb->p.x,tempb->p.y,TRUE); + dc->color=LTGREEN; + GrCircle(dc,tempb->p.x,tempb->p.y,tempb->radius); + } + } + tempb=tempb->next; + } + + if (human && draw_laser_line) { + D3Sub(&human->p[1].x,&human->p[0].x,&p1); + D3Sub(&human->p[2].x,&human->p[0].x,&p2); + D3Unit(D3Add(&p1,&p2,&p)); + dc->color=LTBLUE; + Line(dc,human->p[0].x-10*p.x,human->p[0].y-10*p.y,0,human->p[0].x-800*p.x,human->p[0].y-800*p.y,0,&LaserPlot); + } +} + +U0 Explosion(MyMass *tempm1,F64 r) +{ + MyMass *tempm; + CD3 p1; + F64 d; + + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + if (tempm!=tempm1) { + D3Sub(&tempm->state->x,&tempm1->state->x,&p1); + d=D3SqrNorm(&p1)-tempm->radius*tempm->radius; + if (d<100.0*100.0) { + if (d<1) + d=1; + else + d=Sqrt(d); + d=2e8*r`7/d`6; + if (d>1e5) d=1e5; + D3MulEqu(&p1,d); + D3AddEqu(&tempm->DstateDt->DxDt,&p1); + } + } + tempm=tempm->next; + } +} + +U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *) +{ + I64 i; + F64 d,dd,dd2,spin,t_left,t_right; + CTask *task=ode->win_task; + CD3 p,p1,p2; + Bullet *tempb; + Ship *temps; + MyMass *tempm,*tempm1; + + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + d=tempm->state->x; + if (d-tempm->radius<0) + tempm->DstateDt->DxDt+=Sqr(Sqr(Sqr(d-tempm->radius))); + if (d+tempm->radius>task->win_pixel_width) + tempm->DstateDt->DxDt-=Sqr(Sqr(Sqr((d+tempm->radius)-task->win_pixel_width))); + + d=tempm->state->y; + if (d-tempm->radius<0) + tempm->DstateDt->DyDt+=Sqr(Sqr(Sqr(d-tempm->radius))); + if (d+tempm->radius>task->win_pixel_height) + tempm->DstateDt->DyDt-=Sqr(Sqr(Sqr((d+tempm->radius)-task->win_pixel_height))); + tempm1=ode->next_mass; + while (tempm1!=&ode->next_mass) { + if (tempm!=tempm1) { + D3Sub(&tempm->state->x,&tempm1->state->x,&p); + dd=D3SqrNorm(&p); + dd2=Sqr(tempm->radius+tempm1->radius); + if (dd<=dd2) { + d=Sqrt(dd)+0.0001; + D3MulEqu(&p,Sqr(Sqr(dd2-dd))/d); + D3AddEqu(&tempm ->DstateDt->DxDt,&p); + D3SubEqu(&tempm1->DstateDt->DxDt,&p); + } + } + tempm1=tempm1->next; + } + tempm=tempm->next; + } + + + temps=ship_root.next; + while (temps!=&ship_root) { + if (temps->exploding && temps->die_time<=tP(ode->win_task)<=temps->die_timeout) + for (i=0;imasses;i++) + Explosion(&temps->p[i],temps->p[i].radius/3.0); + switch (temps->type) { + case ST_HUMAN1: + if (!temps->exploding) { + if (temps->spacewalk_side) { + t_left=0; + t_right=0; + d=1.0-(temps->spacewalk_timeout-tP(ode->win_task))/SPACEWALK_TIME; + if (0.485p[2].state->x,&temps->p[1].state->x,&p)); + if (temps->spacewalk_side==3) { + temps->p[3].DstateDt->DxDt-=10*MAX_THRUST*p.x; + temps->p[3].DstateDt->DyDt-=10*MAX_THRUST*p.y; + temps->p[1].DstateDt->DxDt+=10*MAX_THRUST*p.x; + temps->p[1].DstateDt->DyDt+=10*MAX_THRUST*p.y; + } else { + temps->p[4].DstateDt->DxDt+=10*MAX_THRUST*p.x; + temps->p[4].DstateDt->DyDt+=10*MAX_THRUST*p.y; + temps->p[2].DstateDt->DxDt-=10*MAX_THRUST*p.x; + temps->p[2].DstateDt->DyDt-=10*MAX_THRUST*p.y; + } + } + } else { + if (d=D3Norm(D3Sub(&temps->p[0].state->x,&temps->p[1].state->x,&p1))) { + D3Sub(&temps->p[0].state->DxDt,&temps->p[1].state->DxDt,&p2); + D3Cross(&p1,&p2,&p); + spin=p.z/d; + } else + spin=0; + t_left =Limit(human_t_left+SPIN_GAIN*spin*human_antispin,0,MAX_THRUST); + + if (d=D3Norm(D3Sub(&temps->p[0].state->x,&temps->p[2].state->x,&p1))) { + D3Sub(&temps->p[0].state->DxDt,&temps->p[2].state->DxDt,&p2); + D3Cross(&p1,&p2,&p); + spin=p.z/d; + } else + spin=0; + t_right=Limit(human_t_right-SPIN_GAIN*spin*human_antispin,0,MAX_THRUST); + + D3Sub(&temps->p[0].state->x,&temps->p[1].state->x,&p1); + D3Sub(&temps->p[0].state->x,&temps->p[2].state->x,&p2); + D3Unit(D3Add(&p1,&p2,&p)); + if (!(temps->s[3].flags&SSF_INACTIVE)) { + D3Mul(t_left,&p,&p1); + D3AddEqu(&temps->p[3].DstateDt->DxDt,&p1); + } + if (!(temps->s[5].flags&SSF_INACTIVE)) { + D3Mul(t_right,&p,&p2); + D3AddEqu(&temps->p[4].DstateDt->DxDt,&p2); + } + } + } + break; + } + temps=temps->next; + } + + tempb=bullet_root.next; + while (tempb!=&bullet_root) { + if (tempb->fuse_time<=tP(ode->win_task)<=tempb->die_timeout) + Explosion(&tempb->p,tempb->radius); + tempb=tempb->next; + } +} + + +U0 CheckDamage() +{ + I64 i,j,k; + Ship *temps,*temps1; + MyMass *tempm,*best_mass; + CD3 p,p1,p2; + F64 d,best_distance; + + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + tempm->temperature*=0.9; + tempm=tempm->next; + } + if (human) { + human->laser_temperature*=0.975; + + if (human->laser_overheat) { + if (human->laser_temperaturelaser_overheat=FALSE; + } + if (!human->laser_overheat && human->lasering) { + if (human->laser_temperature>=LASER_MAX_TEMP) { + human->laser_overheat=TRUE; + Snd(0); + } else { + human->laser_temperature+=1.0; + D3Sub(&human->p[0].x,&human->p[1].x,&p1); + D3Sub(&human->p[0].x,&human->p[2].x,&p2); + D3Unit(D3Add(&p1,&p2,&p)); + p2.x=p.y; + p2.y=-p.x; + p2.z=0; + best_mass=NULL; + best_distance=MAX_F64; + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + D3Sub(&human->p[0].x,&tempm->x,&p1); + if (Abs(D3Dot(&p1,&p2))radius && + D3Dot(&p1,&p)<0.0) { + d=D3SqrNorm(&p1); + if (dnext; + } + if (best_mass) + best_mass->temperature+=1.0; + } + } + } + + temps=ship_root.next; + while (temps!=&ship_root) { + temps1=temps->next; + switch (temps->type) { + case ST_HUMAN1: + if (temps->exploding) { + if (tP>temps->die_timeout) { + ShipDel(temps); + human=NULL; + } + } else + for (i=0;isprings;i++) { + if (Abs(temps->s[i].f)>temps->s[i].strength) + temps->s[i].flags|=SSF_INACTIVE; + if (temps->s[i].flags&SSF_INACTIVE) { + if (i<3) { + if (!temps->exploding) { + temps->exploding=TRUE; + temps->die_time=tP; + temps->die_timeout=tP+0.75; + game_over=TRUE; + Noise(750,1000,2000); + break; + } + } + } + } + break; + default: + if (temps->exploding) { + if (tP>temps->die_timeout) { + ShipDel(temps); + score+=level; + if (score>best_score) + best_score=score; + } + } else { + j=0; + for (i=0;isprings;i++) { + if (temps->s[i].flags&SSF_INACTIVE) + j++; + else if (Abs(temps->s[i].f)>temps->s[i].strength) { + temps->s[i].flags|=SSF_INACTIVE; + j++; + } + } + k=0; + for (i=0;imasses;i++) { + if (temps->p[i].temperature>MASS_MAX_TEMP) + k++; + } + if (j>1 || k) { + temps->exploding=TRUE; + temps->die_time=tP; + temps->die_timeout=tP+0.75; + Noise(750,1000,3000); + } + } + break; + } + temps=temps1; + } +} + +// ********************************** Bullets + +U0 FireOneGun(Ship *temps,I64 g,F64 r,F64 fuse_time) +{ + CD3 p,p1,p2; + Bullet *tempb; + + tempb=CAlloc(sizeof(Bullet)); + D3Copy(&tempb->p.x,&temps->p[g].x); + tempb->radius=r; + tempb->fuse_time=tP+1.5*fuse_time; + tempb->die_timeout=tempb->fuse_time+0.125; + tempb->p.mass=0.3*r*r*r; + D3Sub(&temps->p[0].x,&temps->p[1].x,&p1); + D3Sub(&temps->p[0].x,&temps->p[2].x,&p2); + D3Add(&p1,&p2,&p); + D3AddEqu(&tempb->p.x,D3MulEqu(D3Copy(&p1,D3Unit(&p)),r+temps->p[0].radius+5)); + D3AddEqu(D3MulEqu(&p,1000/(r+1)),&temps->p[g].DxDt); + D3Copy(&tempb->p.DxDt,&p); + D3MulEqu(&p,tempb->p.mass/temps->p[g].mass/100.0); + D3SubEqu(&temps->p[g].DxDt,&p); + QueIns(&tempb->p,ode->last_mass); + QueIns(tempb,bullet_root.last); + temps->reload_timeout=tP+r/temps->fire_rate; + Noise(100,r*200,r*400); +} + +U0 HumanFireBegin() +{ + + F64 r=3.0*ctrl_panel.bullet_radius/CTRL_PANEL_RANGE+0.5, + fuse_time=ToF64(ctrl_panel.fuse_time+1)/CTRL_PANEL_RANGE; + if (human) { + if (!human->exploding && !human->spacewalk_side && tP>human->reload_timeout) + switch (level) { + case 3: + if (!(human->s[3].flags&SSF_INACTIVE)) + FireOneGun(human,3,r,fuse_time); + if (!(human->s[5].flags&SSF_INACTIVE)) + FireOneGun(human,4,r,fuse_time); + case 2: + if (!(human->s[1].flags&SSF_INACTIVE)) + FireOneGun(human,1,r,fuse_time); + if (!(human->s[2].flags&SSF_INACTIVE)) + FireOneGun(human,2,r,fuse_time); + case 1: + FireOneGun(human,0,r,fuse_time); + break; + default: + human->lasering=TRUE; + break; + } + } +} + +U0 HumanFireEnd() +{ + if (human && !human->exploding) + switch (level) { + case 3: + case 2: + case 1: + break; + default: + human->lasering=FALSE; + Snd(0); + break; + } +} + +U0 ExpireShots() +{ + Bullet *tempb=bullet_root.next,*tempb1; + while (tempb!=&bullet_root) { + tempb1=tempb->next; + if (tP>tempb->fuse_time && !tempb->exploding) { + tempb->exploding=TRUE; + Noise(50,3000,6000); + } + if (tP>tempb->die_timeout) { + QueRem(tempb); + QueRem(&tempb->p); + Free(tempb); + } + tempb=tempb1; + } +} + +// ********************************** AI + +U0 AI() +{ + CD3 p,p1,p2; + Ship *temps=ship_root.next; + if (human && !human->exploding) { + while (temps!=&ship_root) { + D3Sub(&temps->p[0].x,&temps->p[1].x,&p1); + D3Sub(&temps->p[0].x,&temps->p[2].x,&p2); + D3Add(&p1,&p2,&p); + D3Sub(&human->p[0].x,&temps->p[0].x,&p1); + if (D3Dot(D3Unit(&p),D3Unit(&p1))>0.995 && + tP>temps->reload_timeout) { + FireOneGun(temps,0,1.5+.5,.4); + } + temps=temps->next; + } + } +} + +// ********************************** Init + + +U0 InitLevel() +{ + I64 i; + human=ShipNew(Fs->win_pixel_width/2,Fs->win_pixel_height/2,ST_HUMAN1); + for (i=0;iflags|=ODEF_PAUSED; +} + +U0 Init() +{ + I64 i; + game_over=FALSE; + score=0; + level=1; + + ship_root.next=ship_root.last=&ship_root; + bullet_root.next=bullet_root.last=&bullet_root; + + for (i=0;iwin_inhibit=WIF_ALL-WIF_BORDER-WIF_MENU-WIF_CTRLS; + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + do { + ode=ODENew(0,0.01,ODEF_HAS_MASSES); + ode->derivative=&MyDerivative; + ode->min_tolerance=1e-9; + ode->drag_v3=0.00001; + Init; + QueIns(ode,Fs->last_ode); + ch=0; + do { + while (!game_over && !show_level_msg && + (msg_code=ScanMsg(&p1,&p2,1<flags&=~ODEF_PAUSED; + show_level_msg=FALSE; + } else if (game_over) { + ch=ScanChar; + } else { + if (!remaining) { + level++; + ShipDel(human); + human=NULL; + InitLevel; + } + } + } while (ch!=CH_ESC && ch!=CH_NEW_LINE && ch!=CH_SHIFT_ESC); + AllDel(ode); + } while (ch!=CH_ESC && ch!=CH_SHIFT_ESC); + SettingsPop; + CtrlPanelDel(cp); + MenuPop; + AcctRegWriteBranch("SparrowOS/XCaliber","I64 best_score=%d;\n",best_score); +} + +žÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿ ÿÿÿÿþÿÿÿþÿÿÿ‚ øÿÿÿýÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿ + ÿÿÿÿÿÿÿÿ + + + + ÿÿÿÿÿÿÿ + + + + ÿÿÿÿÿÿÿÿÿÿ + ÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿ‚ øÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀýÿÿÿüÿÿÿýÿÿÿþÿÿÿÿÿÿÿüÿÿÿþÿÿÿýÿÿÿþÿÿÿýÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿýÿÿÿüÿÿÿûÿÿÿÿÿÿÿüÿÿÿúÿÿÿâýÿÿÿ  ÷ÿÿÿÿÿÿÿ +ùÿÿÿ + +ýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿýÿÿÿ ÷ÿÿÿÿÿÿÿþÿÿÿ úÿÿÿÿÿÿÿ õÿÿÿ õÿÿÿúÿÿÿþÿÿÿ + + ùÿÿÿ ùÿÿÿþÿÿÿ– úÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿ úÿÿÿüÿÿÿþÿÿÿúÿÿÿýÿÿÿùÿÿÿùÿÿÿùÿÿÿÿÿÿÿùÿÿÿÿÿÿÿýÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/SparrowOS/Apps/X-Caliber/XCCtrls.CPP b/SparrowOS/Apps/X-Caliber/XCCtrls.CPP new file mode 100644 index 0000000..7923463 --- /dev/null +++ b/SparrowOS/Apps/X-Caliber/XCCtrls.CPP @@ -0,0 +1,140 @@ +#define LASER_MAX_TEMP 30.0 +#define LASER_THRESHOLD_TEMP 10.0 +#define MASS_MAX_TEMP 5.0 + +class CtrlPanelState +{ + I64 bullet_radius,fuse_time; + F64 laser_temperature; + Bool spacewalk; +} ctrl_panel; + + +#define CTRL_PANEL_SPACING 33 +#define CTRL_PANEL_RANGE 30 +#define CTRL_PANEL_BORDER 2 +#define CTRL_PANEL_BUTTON_SIZE 12 + +#define TMP_Y (+2) + +U0 DrawCtrlPanelCtrl(CDC *dc,CCtrl *c) +{ + CtrlPanelState *s=c->state; + F64 d,d_range; + + dc->color=LTRED; + GrRect(dc, c->left,c->top,CTRL_PANEL_SPACING*3+2,CTRL_PANEL_SPACING*2+CTRL_PANEL_RANGE+CTRL_PANEL_BUTTON_SIZE); + dc->color=DKGRAY; + GrRect(dc, c->left+CTRL_PANEL_BORDER,c->top+CTRL_PANEL_BORDER, + CTRL_PANEL_SPACING*3+2-2*CTRL_PANEL_BORDER, + CTRL_PANEL_SPACING*2+CTRL_PANEL_RANGE+CTRL_PANEL_BUTTON_SIZE-2*CTRL_PANEL_BORDER); + dc->color=BLACK; + GrLine(dc,c->left+CTRL_PANEL_SPACING,(c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING, + c->left+CTRL_PANEL_SPACING,(c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING+CTRL_PANEL_RANGE-1); + GrLine(dc,c->left+2*CTRL_PANEL_SPACING+1,(c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING, + c->left+2*CTRL_PANEL_SPACING+1,(c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING+CTRL_PANEL_RANGE-1); + + dc->color=BLACK; + GrRect(dc,(c->left+c->right+1)/2-9*FONT_WIDTH/2-3, + c->top+CTRL_PANEL_BORDER+(CTRL_PANEL_SPACING-FONT_HEIGHT)/2, + 9*FONT_WIDTH+6,FONT_HEIGHT+6); + + if (s->spacewalk) + dc->color=YELLOW; + else + dc->color=DKGRAY; + GrRect(dc,(c->left+c->right+1)/2-9*FONT_WIDTH/2-2, + c->top+CTRL_PANEL_BORDER+1+(CTRL_PANEL_SPACING-FONT_HEIGHT)/2, + 9*FONT_WIDTH+4,FONT_HEIGHT+4); + + dc->color=RED; + GrPutS(dc,(c->left+c->right+1)/2-9*FONT_WIDTH/2, + c->top+CTRL_PANEL_BORDER+3+(CTRL_PANEL_SPACING-FONT_HEIGHT)/2,"SpaceWalk"); + GrPutS(dc,c->left+CTRL_PANEL_SPACING-4*FONT_WIDTH/2, + (c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING-FONT_HEIGHT-2,"Size"); + GrPutS(dc,c->left+2*CTRL_PANEL_SPACING+1-4*FONT_WIDTH/2, + (c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING-FONT_HEIGHT-2,"Fuse"); + dc->color=LTRED; + GrPrintF(dc,c->left+CTRL_PANEL_SPACING-FONT_WIDTH/2, + (c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING+CTRL_PANEL_RANGE+3, + "%d",s->bullet_radius*10/CTRL_PANEL_RANGE); + GrPrintF(dc,c->left+2*CTRL_PANEL_SPACING+1-FONT_WIDTH/2, + (c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING+CTRL_PANEL_RANGE+3, + "%d",s->fuse_time*10/CTRL_PANEL_RANGE); + GrRect(dc,c->left+CTRL_PANEL_SPACING-3, (c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING+CTRL_PANEL_RANGE-1-s->bullet_radius-2 ,7,5); + GrRect(dc,c->left+2*CTRL_PANEL_SPACING+1-3,(c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING+CTRL_PANEL_RANGE-1-s->fuse_time-2,7,5); + dc->color=YELLOW; + GrRect(dc,c->left+CTRL_PANEL_SPACING-2, (c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING+CTRL_PANEL_RANGE-1-s->bullet_radius-1 ,5,3); + GrRect(dc,c->left+2*CTRL_PANEL_SPACING+1-2,(c->top+CTRL_PANEL_BUTTON_SIZE)+CTRL_PANEL_SPACING+CTRL_PANEL_RANGE-1-s->fuse_time-1,5,3); + + d_range=c->right-c->left-5-5; + d=s->laser_temperature*d_range/LASER_MAX_TEMP; + dc->color=BLACK; + GrRect(dc,c->left+5-1,c->bottom+TMP_Y-2,d_range+2,2+1+1); + if (d>1.0) { + dc->color=GREEN; + GrRect(dc,c->left+5,c->bottom+TMP_Y-1,Min(d,d_range/3),2); + if (d>=d_range/3) { + dc->color=YELLOW; + GrRect(dc,c->left+5+d_range/3,c->bottom+TMP_Y-1,Min(d,2*d_range/3)-d_range/3,2); + if (d>=2*d_range/3) { + dc->color=RED; + GrRect(dc,c->left+5+2*d_range/3,c->bottom+TMP_Y-1,d-2*d_range/3,2); + } + } + } +} + +U0 UpdateDerivedCtrlPanelCtrl(CCtrl *c) +{ + CtrlPanelState *s=c->state; + c->left=c->win_task->win_pixel_width-(CTRL_PANEL_SPACING*3+2); + c->right=c->left+CTRL_PANEL_SPACING*3+2; + c->top=c->win_task->win_pixel_height-(CTRL_PANEL_SPACING*2+CTRL_PANEL_RANGE+CTRL_PANEL_BUTTON_SIZE); + c->bottom=c->top+CTRL_PANEL_SPACING*2+CTRL_PANEL_RANGE; + + s->bullet_radius =LimitI64(s->bullet_radius,0,CTRL_PANEL_RANGE-1); + s->fuse_time=LimitI64(s->fuse_time,0,CTRL_PANEL_RANGE-1); +} + +U0 LeftClickCtrlPanel(CCtrl *c,I64 x,I64 y,Bool) +{ + CtrlPanelState *s=c->state; + if (ytop+CTRL_PANEL_BORDER+(CTRL_PANEL_SPACING-FONT_HEIGHT)/2+FONT_HEIGHT+6) + s->spacewalk=TRUE; + else { + if (x<(c->right+c->left)/2) + s->bullet_radius=CTRL_PANEL_RANGE-1-(y-(c->top+CTRL_PANEL_SPACING+CTRL_PANEL_BUTTON_SIZE)); + else + s->fuse_time=CTRL_PANEL_RANGE-1-(y-(c->top+CTRL_PANEL_SPACING+CTRL_PANEL_BUTTON_SIZE)); + } + if (c->update_derived_vals) + (*c->update_derived_vals)(c); +} + +CCtrl *CtrlPanelNew() +{ + Bool old_preempt; + CCtrl *c=CAlloc(sizeof(CCtrl)); + MemSet(&ctrl_panel,0,sizeof(ctrl_panel)); + c->win_task=Fs; + c->flags=CTRLF_SHOW|CTRLF_CAPTURE_LEFT_IP; + c->type=CTRLT_GENERIC; + c->state=&ctrl_panel; + c->draw_it=&DrawCtrlPanelCtrl; + c->left_click=&LeftClickCtrlPanel; + c->update_derived_vals=&UpdateDerivedCtrlPanelCtrl; + old_preempt=Preempt(OFF); + QueIns(c,Fs->last_ctrl); + TaskDerivedValsUpdate; + Preempt(old_preempt); + return c; +} + +U0 CtrlPanelDel(CCtrl *c) +{ + Bool old_preempt=Preempt(OFF); + QueRem(c); + Preempt(old_preempt); + Free(c); +} diff --git a/SparrowOS/Compiler/Assembler.CPP b/SparrowOS/Compiler/Assembler.CPP new file mode 100644 index 0000000..e21015f --- /dev/null +++ b/SparrowOS/Compiler/Assembler.CPP @@ -0,0 +1,1487 @@ +U0 AsmUnresolvedAdd(CAsmCtrl *a,U8 *exp,I64 type,I64 ip,I64 rel_ip, + CLexUndef *undef_hash,I64 line_num,Bool U8_avail,Bool glbl) +{ + CAsmUnresolvedRef *tempu=MAlloc(sizeof(CAsmUnresolvedRef)); + tempu->exp=exp; + tempu->type=type; + tempu->ip=ip; + tempu->rel_ip=rel_ip; + tempu->undef_hash=undef_hash; + tempu->lit=FALSE; + tempu->line_num=line_num; + tempu->U8_avail=U8_avail; + tempu->str=NULL; + if (glbl) { + tempu->next=a->glbl_unresolved; + a->glbl_unresolved=tempu; + if (undef_hash->hash->type & HTF_IMPORT) { + tempu->str=StrNew(undef_hash->hash->str); + if (undef_hash->hash->type & HTF_LIT) + tempu->lit=TRUE; + } + } else { + tempu->next=a->local_unresolved; + a->local_unresolved=tempu; + a->has_locals=TRUE; + } +} + +U0 AsmLineList(CLex *lx) +{ + CAsmCtrl *a=lx->a; + CLexFile *tempf=lx->cur_lfn; + CDocEntry *doc_e=tempf->line_start,*doc_e2; + if (a->list && a->last_lfn==tempf && doc_e) { + if (doc_e2=a->last_line_listed) { + if (tempf->flags& LFSF_IS_DOC) { + while (doc_e2->yy) { + Spaces(24-a->display_col); + a->display_col=0; + "%08X ",a->last_ip; + doc_e2=LexPutLine(lx,doc_e2); + } + } else { + while (*doc_e2(U8 *) && doc_e2!=doc_e) { + Spaces(24-a->display_col); + a->display_col=0; + "%08X ",a->last_ip; + doc_e2=LexPutLine(lx,doc_e2); + } + } + a->last_line_listed=doc_e2; + } else + a->last_line_listed=doc_e; + } else { + a->last_line_listed=NULL; + a->last_lfn=tempf; + } + a->last_ip=a->ip; +} + +U0 AsmStoreCodeU8(CLex *lx,U8 b) +{ + CAsmCtrl *a=lx->a; + I64 i=a->ip>>ASM_CODE_BLK_BITS; + CAsmCodeBlk *tempc=a->code; + while (i--) + if (!(tempc=tempc->next)) { + i=a->ip>>ASM_CODE_BLK_BITS+1; + tempc=&a->code; + while (i--) { + if (!tempc->next) + tempc->next=CAlloc(sizeof(CAsmCodeBlk)); + tempc=tempc->next; + } + break; + } + tempc->body[a->ip++ & (ASM_CODE_BLK_SIZE-1)]=b; + if (a->list) { + if (a->display_col>=24) { + NewLine; + a->display_col=0; + } + "%02X ",b; + a->display_col+=3; + } + if (a->ip>a->num_code_U8s) + a->num_code_U8s=a->ip; +} + +U0 AsmStoreCodeU32(CLex *lx,U32 d) +{ + CAsmCtrl *a=lx->a; + I64 i=a->ip>>ASM_CODE_BLK_BITS, + j=(a->ip+sizeof(U32))>>ASM_CODE_BLK_BITS; + U32 *_d; + CAsmCodeBlk *tempc=a->code; + if (i!=j) { + for (i=0;icode; + while (i--) + if (!(tempc=tempc->next)) { + i=a->ip>>ASM_CODE_BLK_BITS+1; + tempc=&a->code; + while (i--) { + if (!tempc->next) + tempc->next=CAlloc(sizeof(CAsmCodeBlk)); + tempc=tempc->next; + } + break; + } + _d=tempc->body+ a->ip&(ASM_CODE_BLK_SIZE-1); + *_d=d; + a->ip+=sizeof(U32); + if (a->list) { + if (a->display_col>=24) { + NewLine; + a->display_col=0; + } + "%08X ",d; + a->display_col+=9; + } + if (a->ip>a->num_code_U8s) + a->num_code_U8s=a->ip; +} + +U0 AsmStoreCodeU64(CLex *lx,U64 d) +{ + CAsmCtrl *a=lx->a; + I64 i=a->ip>>ASM_CODE_BLK_BITS, + j=(a->ip+sizeof(I64))>>ASM_CODE_BLK_BITS, + *qq; + CAsmCodeBlk *tempc=a->code; + if (i!=j) { + for (i=0;icode; + while (i--) + if (!(tempc=tempc->next)) { + i=a->ip>>ASM_CODE_BLK_BITS+1; + tempc=&a->code; + while (i--) { + if (!tempc->next) + tempc->next=CAlloc(sizeof(CAsmCodeBlk)); + tempc=tempc->next; + } + break; + } + qq=tempc->body+ a->ip&(ASM_CODE_BLK_SIZE-1); + *qq=d; + a->ip+=sizeof(I64); + if (a->list) { + if (a->display_col>=24) { + NewLine; + a->display_col=0; + } + "%016X ",d; + a->display_col+=17; + } + if (a->ip>a->num_code_U8s) + a->num_code_U8s=a->ip; +} + +U0 AsmStoreCodeU8At(CLex *lx,U8 b,I64 ip) +{ + CAsmCtrl *a=lx->a; + I64 i=ip>>ASM_CODE_BLK_BITS+1; + CAsmCodeBlk *tempc=&a->code; + while (i--) { + if (!tempc->next) { + tempc->next=CAlloc(sizeof(CAsmCodeBlk)); + tempc->next->next=NULL; + } + tempc=tempc->next; + } + tempc->body[ip & (ASM_CODE_BLK_SIZE-1)]=b; + if (ip+1>a->num_code_U8s) + a->num_code_U8s=ip+1; +} + +U0 AsmReserveCodeTo(CLex *lx,I64 ip) +{ + CAsmCtrl *a=lx->a; + I64 i=ip>>ASM_CODE_BLK_BITS+1; + CAsmCodeBlk *tempc=&a->code; + while (i--) { + if (!tempc->next) { + tempc->next=CAlloc(sizeof(CAsmCodeBlk)); + tempc->next->next=NULL; + } + tempc=tempc->next; + } + if (ip>a->num_code_U8s) + a->num_code_U8s=ip; +} + + +I64 AsmExpressionEval(CLex *lx) +{ + U8 *exp; + I64 result=0; + lx->undef_hash_entry=NULL; + lx->flags&=~(LF_UNRESOLVED+LF_LOCAL); + lx->abs_cnts=0; + if (!GetExpression(lx,&exp)) + LexSkipEol(lx); + else { + if (lx->abs_cnts.externs) + LexExcept(lx,"ST_EXTERNS_NOT_ALLOWED"); + if (lx->flags & LF_UNRESOLVED) + LexExcept(lx,"ST_UNDEFINED_SYM"); + else { + result=Call(exp); + ExpressionDel(exp); + } + } + return result; +} + +U0 AsmLocalsResolve(CLex *lx) +{ + CAsmCtrl *a=lx->a; + CAsmUnresolvedRef *tempu=a->local_unresolved,*tempu1; + I64 r=0; + CLexUndef *templu; + Bool undefined; + U8 *label=NULL; + + if (!a->has_locals) + return; + while (tempu) { + undefined=FALSE; + tempu1=tempu->next; + templu=tempu->undef_hash; + while (templu) { + if (templu->hash->type & HTF_UNRESOLVED) { + PrintFErr("%S%04d %s %s\n","ST_UNDEFINED_SYM_LINE", + tempu->line_num,a->last_label,templu->hash->str); + LexExcept(lx); + } + label=templu->hash->str; + templu=templu->next; + } + if (!undefined) { + r=Call(tempu->exp); + if (!(tempu->type & 1)) { + r-=tempu->rel_ip; + if (tempu->type==EIE_REL_U8 && !(MIN_I8<=r<=MAX_I8) || + tempu->type==EIE_REL_U16 && !(MIN_I16<=r<=MAX_I16) ) { + PrintFErr("%S%04d %s %s\n","ST_BRANCH_OUT_OF_RANGE_LINE", + tempu->line_num,a->last_label,label); + LexExcept(lx); + } + if (tempu->U8_avail && tempu->type>EIE_LIT_U8 && -124<=r<=123) + PrintFWarn("%S%04d %s %s\n","ST_COULD_USE_I8_DISP_LINE", + tempu->line_num,a->last_label,label); + } + AsmStoreCodeU8At(lx,r.u8[0],tempu->ip); + if (tempu->type>=EIE_REL_U16) { + AsmStoreCodeU8At(lx,r.u8[1],tempu->ip+1); + if (tempu->type>=EIE_REL_U32) { + AsmStoreCodeU8At(lx,r.u8[2],tempu->ip+2); + AsmStoreCodeU8At(lx,r.u8[3],tempu->ip+3); + if (tempu->type>=EIE_REL_U64) { + AsmStoreCodeU8At(lx,r.u8[4],tempu->ip+4); + AsmStoreCodeU8At(lx,r.u8[5],tempu->ip+5); + AsmStoreCodeU8At(lx,r.u8[6],tempu->ip+6); + AsmStoreCodeU8At(lx,r.u8[7],tempu->ip+7); + } + } + } + } + ExpressionDel(tempu->exp); + LinkedListDel(tempu->undef_hash); + Free(tempu); + tempu=tempu1; + } + HashTableDel(lx->local_hash_table); + lx->local_hash_table=lx->hash_table_list->next= + HashTableNew(16); + lx->local_hash_table->next=lx->glbl_hash_table; + a->local_unresolved=NULL; + a->has_locals=FALSE; +} + +U0 AsmGlblsResolve(CLex *lx,CExe *ex) +{ + CAsmCtrl *a=lx->a; + CHashFun *tempf; + CAsmUnresolvedRef *tempu=a->glbl_unresolved,*tempu1; + I64 j,r=0; + CExeImportExport *tempe,*tempe1; + CLexUndef *templu; + CHashExport *tempess; + U8 *label; + Bool undefined; + CExternUsage *tempeu,*tempeu8; + + while (tempu) { + label=NULL; + undefined=FALSE; + tempu1=tempu->next; + templu=tempu->undef_hash; + while (templu) { + if (templu->hash->type & HTF_UNRESOLVED) { + tempess=templu->hash; + if (tempess->type & HTT_EXPORT_SYS_SYM && + tempess->type & HTF_UNRESOLVED && + !(tempess->type & HTF_IMPORT) && + (tempf=HashFind(tempess->str,lx->hash_table_list,HTT_FUN)) && + !Bt(tempf->flags,Cf_EXTERN)) { + tempess->val=tempf->executable_addr; + tempess->type&=~HTF_UNRESOLVED; + label=templu->hash->str; + } else { + if (!(tempess->type & HTF_IMPORT)) { + PrintFErr("%S%04d %s\n", + "ST_UNDEFINED_SYM_LINE",tempu->line_num,tempess->str); + LexExcept(lx); + } + undefined=TRUE; + } + } else + label=templu->hash->str; + templu=templu->next; + } + r=Call(tempu->exp); + if (!(tempu->type & 1)) + r-=tempu->rel_ip; + if (undefined) { + templu=tempu->undef_hash; + if (templu->hash->type & HTF_IMPORT) { + tempe=CAlloc(sizeof(CExeImportExport)); + tempe->next=templu->hash->list; + templu->hash->list=tempe; + tempe->ip=tempu->ip; + tempe->type=tempu->type; + } + } else { + if (!(tempu->type & 1)) { //Rel? + if (tempu->type==EIE_REL_U8 && !(MIN_I8<=r<=MAX_I8) || + tempu->type==EIE_REL_U16 && !(MIN_I16<=r<=MAX_I16)) { + PrintFErr("%S%04d %s\n","ST_BRANCH_OUT_OF_RANGE_LINE", + tempu->line_num,label); + LexExcept(lx); + } + if (tempu->U8_avail && tempu->type>EIE_LIT_U8 && -124<=r<=123) + PrintFWarn("%S%04d %s %s\n","ST_COULD_USE_I8_DISP_LINE", + tempu->line_num,a->last_label,label); + } + } + AsmStoreCodeU8At(lx,r.u8[0],tempu->ip); + if (tempu->type>=EIE_REL_U16) { + AsmStoreCodeU8At(lx,r.u8[1],tempu->ip+1); + if (tempu->type>=EIE_REL_U32) { + AsmStoreCodeU8At(lx,r.u8[2],tempu->ip+2); + AsmStoreCodeU8At(lx,r.u8[3],tempu->ip+3); + if (tempu->type>=EIE_REL_U64) { + AsmStoreCodeU8At(lx,r.u8[4],tempu->ip+4); + AsmStoreCodeU8At(lx,r.u8[5],tempu->ip+5); + AsmStoreCodeU8At(lx,r.u8[6],tempu->ip+6); + AsmStoreCodeU8At(lx,r.u8[7],tempu->ip+7); + } + } + } + ExpressionDel(tempu->exp); + LinkedListDel(tempu->undef_hash); + Free(tempu); + tempu=tempu1; + } + + tempess=lx->glbl_hash_table->next_added; + while (tempess!=lx->glbl_hash_table) { + if (tempess->type & HTF_IMPORT && tempess->use_cnt) { + if (tempe=tempess->list) { + if (tempess->import_name) + tempe->str=StrNew(tempess->import_name); + else + tempe->str=StrNew(tempess->str); + do { + tempe1=tempe->next; + QueIns(tempe,ex->last_ie); + } while (tempe=tempe1); + tempess->list=NULL; + } + } else if (tempess->type & HTF_EXPORT) { + if (tempess->type & HTF_UNRESOLVED) { + PrintFErr("%S%s\n","ST_UNDEFINED_SYM",tempess->str); + LexExcept(lx); + } + tempe=CAlloc(sizeof(CExeImportExport)); + tempe->type=EIE_REL_EXPORT; + if (tempess->type & HTT_FUN) { + tempf=tempess; + tempe->ip=tempf->executable_addr; + tempeu=tempf->ext_list; + while (tempeu) { + tempeu8=tempeu->next; + j=tempf->executable_addr-(tempeu->ip+4); + AsmStoreCodeU8At(lx,j.u8[0],tempeu->ip); + AsmStoreCodeU8At(lx,j.u8[1],tempeu->ip+1); + AsmStoreCodeU8At(lx,j.u8[2],tempeu->ip+2); + AsmStoreCodeU8At(lx,j.u8[3],tempeu->ip+3); + Free(tempeu); + tempeu=tempeu8; + } + } else if (tempess->type & HTT_GLBL_VAR) + tempe->ip=tempess(CHashGlblVar *)->data_addr_ip; + else + tempe->ip=tempess->val; + if (tempess->type & HTF_LIT) + tempe->type++; + tempe->str=StrNew(tempess->str); + tempe->src_link=StrNew(tempess->src_link); + QueIns(tempe,ex->last_ie); + } + tempess=tempess->next_added; + } +} + +Bool PrsAsmImm(CLex *lx,CAsmArg *arg) +{ + if (arg->imm_or_off_present) + LexExcept(lx,"ST_ALREADY_ONE_IMMEDIATE"); + arg->imm_or_off_present=TRUE; + arg->num.undef_local=NULL; + arg->num.undef_glbl=NULL; + lx->undef_hash_entry=NULL; + lx->abs_cnts=0; + lx->flags&=~(LF_UNRESOLVED+LF_LOCAL); + if (!GetExpression(lx,&arg->num.exp)) + LexSkipEol(lx); + else { + if (lx->abs_cnts.externs) + LexExcept(lx,"ST_EXTERNS_NOT_ALLOWED"); + if (lx->flags & LF_UNRESOLVED) { + if (lx->flags & LF_LOCAL) { + arg->num.undef_local=lx->undef_hash_entry; + lx->undef_hash_entry=NULL; + } else { + arg->num.undef_glbl=lx->undef_hash_entry; + lx->undef_hash_entry=NULL; + lx->a->has_locals=TRUE; + } + } else { + arg->num.i=Call(arg->num.exp); + arg->num.undef_glbl=lx->undef_hash_entry; + lx->undef_hash_entry=NULL; + ExpressionDel(arg->num.exp); + arg->num.exp=NULL; + } + } + return TRUE; +} + +U0 PrsAsmArg(CLex *lx,CAsmArg *arg) +{ + CHashGeneric *temph; + CHashReg *tempr; + MemSet(arg,0,sizeof(CAsmArg)); + arg->seg=CREG_NONE; + arg->reg1=CREG_NONE; + arg->reg2=CREG_NONE; + arg->fstk=CREG_NONE; + arg->scale=1; + while (TRUE) { + if (lx->token==TK_IDENT) { + if (temph=lx->hash_entry) { + if (temph->type&HTT_TYPE_MASK==HTT_REG) { + tempr=temph; + switch (tempr->reg_type) { + case REGT_R8: + arg->size=1; + arg->reg1=tempr->reg_num; + Lex(lx); + return; + case REGT_R16: + arg->size=2; + arg->reg1=tempr->reg_num; + Lex(lx); + return; + case REGT_R32: + arg->size=4; + arg->reg1=tempr->reg_num; + Lex(lx); + return; + case REGT_R64: + arg->size=8; + arg->reg1=tempr->reg_num; + Lex(lx); + return; + case REGT_SEG: + arg->seg=tempr->reg_num; + if (Lex(lx)!=':') { + arg->just_seg=TRUE; + return; + } else + Lex(lx); //skip ":" + break; + case REGT_FSTK: + arg->size=8; + arg->fstk=tempr->reg_num; + Lex(lx); + return; + } + } else if (temph->type&HTT_TYPE_MASK==HTT_ASM_KEYWORD) { + switch (temph->user_data0) { + case AKW_I8: + case AKW_U8: + arg->size=1; + break; + case AKW_I16: + case AKW_U16: + arg->size=2; + break; + case AKW_I32: + case AKW_U32: + arg->size=4; + break; + case AKW_I64: + case AKW_U64: + arg->size=8; + break; + default: + LexExcept(lx,"ST_SYNTAX_ERROR"); + } + Lex(lx); //skip keyword + } else { + PrsAsmImm(lx,arg); + arg->num.abs_cnts=lx->abs_cnts; + if (lx->token!='[') + return; + } + } else { + PrsAsmImm(lx,arg); + arg->num.abs_cnts=lx->abs_cnts; + if (lx->token!='[') + return; + } + } else if (lx->token=='[') { + arg->indirect=TRUE; + Lex(lx); // skip [ + while (lx->token && lx->token!=']') { + if (lx->token==TK_IDENT) { + if (temph=lx->hash_entry) { + if (temph->type&HTT_TYPE_MASK==HTT_REG && + REGT_R16<=temph(CHashReg *)->reg_type<=REGT_R64) { + tempr=temph; + if (arg->reg1==CREG_NONE) { + if (tempr->reg_num&7==CREG_RSP) { + arg->reg1=4; + arg->reg2=tempr->reg_num; + } else + arg->reg1=tempr->reg_num; + } else + arg->reg2=tempr->reg_num; + Lex(lx); + } else { + PrsAsmImm(lx,arg); + arg->num.abs_cnts=lx->abs_cnts; + } + } else { + PrsAsmImm(lx,arg); + arg->num.abs_cnts=lx->abs_cnts; + } + } else if (lx->token=='*') { + Lex(lx); + if (lx->token!=TK_INTEGER) + LexExcept(lx,"ST_EXPECTING_SCALE_FACTOR"); + arg->scale=lx->cur_i; + Lex(lx); //skip scale + if (arg->reg2!=CREG_NONE) + SwapU64(&arg->reg1,&arg->reg2); + } else if (lx->token=='+') { + Lex(lx); //skip '+' + } else { + PrsAsmImm(lx,arg); + arg->num.abs_cnts=lx->abs_cnts; + } + } + if (lx->token!=']') + LexExcept(lx,"ST_MISSING_RIGHT_BRACKET"); + else { + Lex(lx); //skip ] + return; + } + } else { + PrsAsmImm(lx,arg); + arg->num.abs_cnts=lx->abs_cnts; + if (lx->token!='[') + return; + } + } +} + + +U0 AsmMakeArgMask(CLex *lx,CAsmArg *arg,I64 *mask) +{ + CAsmCtrl *a=lx->a; + if (arg->just_seg) { + switch (arg->seg) { + case 0: *mask=1<fstk!=CREG_NONE) { + if (arg->fstk) + *mask=1<size) { + case 0: *mask=0x3FF0FFFFFE; break; + case 1: *mask=0x1110111112; break; + case 2: *mask=0x2220222224; break; + case 4: *mask=0x0440444448; break; + case 8: *mask=0x0880888880; break; + } + if (a->seg_size==64) + *mask&= 0xFF0FFFFFFF; + + if (arg->reg1!=CREG_NONE && arg->imm_or_off_present && !arg->num.i) { + if (!arg->num.undef_glbl && !arg->num.undef_local) + arg->imm_or_off_present=FALSE; //Zero displacement + } + + if (arg->reg2!=CREG_NONE || arg->scale!=1) { + *mask&= 0x0000FF0000; + return; + } + + if (arg->indirect) { + if (arg->imm_or_off_present) + *mask&=0x00FFFF0000; + else + *mask&=0x000FFF0000; + } else { + if (arg->imm_or_off_present) + *mask&=0x000F00F0FE; + else + *mask&=0x3F0FFF0F00; + } + if (arg->seg!=CREG_NONE) + *mask&= 0x00FFFF0000; + if (arg->reg1==CREG_NONE) { + if (arg->indirect) + *mask&=0x00FFFF0000; + else if (MIN_I8<=arg->num.i<=MAX_I8) + *mask&=0x000000F0FE; + else if (MIN_I8<=arg->num.i<=MAX_U8) + *mask&=0x000000E0FE; + else if (MIN_I16<=arg->num.i<=MAX_I16) + *mask&=0x000000E0EE; + else if (MIN_I16<=arg->num.i<=MAX_U16) + *mask&=0x000000C0EE; + else if (MIN_I32<=arg->num.i<=MAX_I32) + *mask&=0x000000C0CE; + else if (MIN_I32<=arg->num.i<=MAX_U32) + *mask&=0x00000080CE; + else + *mask&=0x000000808E; + } else { + *mask&= 0x3F00FF0F00; + if (!arg->indirect) //M8-M64 + *mask&= 0xFFFF0FFFFF; + } + if (arg->reg1) + *mask&= 0x30FFFFFFFF; + if (arg->reg1!=1) + *mask&= 0x2FFFFFFFFF; + if (arg->reg1!=2) + *mask&= 0x1FFFFFFFFF; +} + +Bool AsmStoreNum(CLex *lx,CAsmNum2 *num2,I64 cnt,Bool U8_avail) +{ + CAsmCtrl *a=lx->a; + I64 i; + CExeAbsAddr *tempa; + + if (!num2->lit) + num2->num.i-=num2->rel; + for (i=0;iU8_cnt==1) { + if (num2->num.undef_local) + AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U8+num2->lit,a->ip,num2->rel, + num2->num.undef_local,lx->cur_lfn->line_num,U8_avail,FALSE); + else if (num2->num.undef_glbl) + AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U8+num2->lit,a->ip,num2->rel, + num2->num.undef_glbl,lx->cur_lfn->line_num,U8_avail,TRUE); + else { + if (!num2->lit && !(MIN_I8<=num2->num.i<=MAX_I8)) + LexExcept(lx,"ST_BRANCH_OUT_OF_RANGE"); + } + if (num2->lit) { + if (num2->num.abs_cnts.abs_addres & 1) { + tempa=CAlloc(sizeof(CExeAbsAddr)); + tempa->next=a->abss; + a->abss=tempa; + tempa->ip=a->ip; + tempa->type=EAA_ADD_U8; + } + } else { + if (num2->num.abs_cnts.c_addres & 1) { + tempa=CAlloc(sizeof(CExeAbsAddr)); + tempa->next=a->abss; + a->abss=tempa; + tempa->ip=a->ip; + tempa->type=EAA_SUB_U8; + } + } + AsmStoreCodeU8(lx,num2->num.i.u8[0]); + } else if (num2->U8_cnt==2) { + if (num2->num.undef_local) + AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U16+num2->lit,a->ip,num2->rel, + num2->num.undef_local,lx->cur_lfn->line_num,U8_avail,FALSE); + else if (num2->num.undef_glbl) + AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U16+num2->lit,a->ip,num2->rel, + num2->num.undef_glbl,lx->cur_lfn->line_num,U8_avail,TRUE); + else if (!num2->lit && !(MIN_I16<=num2->num.i<=MAX_I16)) + LexExcept(lx,"ST_BRANCH_OUT_OF_RANGE"); + if (num2->lit) { + if (num2->num.abs_cnts.abs_addres & 1) { + tempa=CAlloc(sizeof(CExeAbsAddr)); + tempa->next=a->abss; + a->abss=tempa; + tempa->ip=a->ip; + tempa->type=EAA_ADD_U16; + } + } else { + if (num2->num.abs_cnts.c_addres & 1) { + tempa=CAlloc(sizeof(CExeAbsAddr)); + tempa->next=a->abss; + a->abss=tempa; + tempa->ip=a->ip; + tempa->type=EAA_SUB_U16; + } + } + AsmStoreCodeU8(lx,num2->num.i.u8[0]); + AsmStoreCodeU8(lx,num2->num.i.u8[1]); + if (U8_avail && !num2->num.undef_local && !num2->num.undef_glbl && + !num2->lit && -124<=num2->num.i<=123) { + LexPutWarn(lx,"ST_COULD_USE_I8_DISP"); + return FALSE; + } + } else if (num2->U8_cnt==4) { + if (num2->num.undef_local) + AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U32+num2->lit,a->ip,num2->rel, + num2->num.undef_local,lx->cur_lfn->line_num,U8_avail,FALSE); + else if (num2->num.undef_glbl) + AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U32+num2->lit,a->ip,num2->rel, + num2->num.undef_glbl,lx->cur_lfn->line_num,U8_avail,TRUE); + if (num2->lit) { + if (num2->num.abs_cnts.abs_addres & 1) { + tempa=CAlloc(sizeof(CExeAbsAddr)); + tempa->next=a->abss; + a->abss=tempa; + tempa->ip=a->ip; + tempa->type=EAA_ADD_U32; + } + } else { + if (num2->num.abs_cnts.c_addres & 1) { + tempa=CAlloc(sizeof(CExeAbsAddr)); + tempa->next=a->abss; + a->abss=tempa; + tempa->ip=a->ip; + tempa->type=EAA_SUB_U32; + } + } + AsmStoreCodeU32(lx,num2->num.i.u32[0]); + if (U8_avail && !num2->num.undef_local && !num2->num.undef_glbl && + !num2->lit && -124<=num2->num.i<=123) { + LexPutWarn(lx,"ST_COULD_USE_I8_DISP"); + return FALSE; + } + } else if (num2->U8_cnt==8) { +//TODO + if (num2->num.undef_local) + AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U32+num2->lit,a->ip,num2->rel, + num2->num.undef_local,lx->cur_lfn->line_num,U8_avail,FALSE); + else if (num2->num.undef_glbl) + AsmUnresolvedAdd(a,num2->num.exp,EIE_REL_U32+num2->lit,a->ip,num2->rel, + num2->num.undef_glbl,lx->cur_lfn->line_num,U8_avail,TRUE); + if (num2->lit) { + if (num2->num.abs_cnts.abs_addres & 1) { + tempa=CAlloc(sizeof(CExeAbsAddr)); + tempa->next=a->abss; + a->abss=tempa; + tempa->ip=a->ip; + tempa->type=EAA_ADD_U64; + } + } else { + if (num2->num.abs_cnts.c_addres & 1) { + tempa=CAlloc(sizeof(CExeAbsAddr)); + tempa->next=a->abss; + a->abss=tempa; + tempa->ip=a->ip; + tempa->type=EAA_SUB_U64; + } + } + AsmStoreCodeU64(lx,num2->num.i); + if (U8_avail && !num2->num.undef_local && !num2->num.undef_glbl && + !num2->lit && -124<=num2->num.i<=123) { + LexPutWarn(lx,"ST_COULD_USE_I8_DISP"); + return FALSE; + } + } + } + return TRUE; +} + +U8 asm_seg_prefixes[6]={0x26,0x2E,0x36,0x3E,0x64,0x65}; + +Bool AsmCodeInstruction(CLex *lx, + CHashOpcode *tempo,I64 argcnt) +{ + CAsmCtrl *a=lx->a; + I64 i,j,a1,a2,om,seg,arg1mask,arg2mask; + CAsmArg *tempa1,*tempa2; + Bool ModrM_complete,U8_avail=FALSE,found_second_possible=FALSE; + CInstruction *tempi; + + CAsmIns cur,best; + best.U8_cnt=255; + + if (argcnt>0) + AsmMakeArgMask(lx,&a->arg1,&arg1mask); + else + arg1mask=1; + if (argcnt>1) + AsmMakeArgMask(lx,&a->arg2,&arg2mask); + else + arg2mask=1; + for (i=0;iinstruction_entry_cnt;i++) { + tempi=&tempo->ins[i]; + if (tempi->arg1==ARGT_REL8 || tempi->arg2==ARGT_REL8) + U8_avail=TRUE; + if (Bt(&arg1mask,tempi->arg1) && Bt(&arg2mask,tempi->arg2)) { + MemSet(&cur,0,sizeof(CAsmIns)); + cur.tempi=tempi; + ModrM_complete=FALSE; + cur.is_dft=ToBool(tempi->flags & IEF_DFT); + if (a->seg_size==64) { + if (tempi->flags & IEF_48_REX) + cur.REX=0x48; + else if (!(tempi->flags & IEF_NO_REX)) + cur.REX=0x40; + } + cur.disp.lit=1; + cur.imm.lit=1; + om=tempi->opcode_modifier; + a1=tempi->arg1; + a2=tempi->arg2; + tempa1=&a->arg1; + tempa2=&a->arg2; + cur.last_opcode_U8=tempi->opcode[tempi->opcode_cnt-1]; + + if (tempi->slash_val<8) { + cur.ModrM|=tempi->slash_val<<3; + cur.has_ModrM=TRUE; + } + + if (a->seg_size==16 && tempi->flags & IEF_OP_SIZE32 || + a->seg_size!=16 && tempi->flags & IEF_OP_SIZE16) + cur.has_operand_prefix=TRUE; + + if (om==OM_IB) cur.imm.U8_cnt=1; + else if (om==OM_IW) cur.imm.U8_cnt=2; + else if (om==OM_ID) cur.imm.U8_cnt=4; + + if (om==OM_CB) { + cur.imm.U8_cnt=1; + cur.imm.lit=0; + } else if (om==OM_CW) { + cur.imm.U8_cnt=2; + cur.imm.lit=0; + } else if (om==OM_CD) { + cur.imm.U8_cnt=4; + cur.imm.lit=0; + } + + if (argcnt==1) { + if (best.U8_cnt!=255 && !found_second_possible && !best.is_dft) { + found_second_possible=TRUE; + if (!a->arg1.size) + PrintFWarn("%S%s,%04d\n","ST_NO_SIZE_SPECIFIED", + lx->cur_lfn->name,lx->cur_lfn->line_num-1); + } + if (tempi->flags & IEF_PLUS_OPCODE) { + if (tempi->slash_val==SV_R_REGISTER) { + cur.last_opcode_U8|=tempa1->reg1&7; + if (tempa1->reg1&15>7) + cur.REX|=1; + if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + cur.has_REX=TRUE; + } else { //SV_I_REGISTER + if (tempa1->fstk!=CREG_NONE) + cur.last_opcode_U8+=tempa1->fstk; + } + } + if (a1==ARGT_R64 || a1==ARGT_RM64 || a1==ARGT_M64) + cur.REX|=8; + if (ARGT_RM8<=a1<=ARGT_RM64 || ARGT_M8<=a1<=ARGT_M64) { + if (a->seg_size==16) + cur.has_addr_prefix=TRUE; + + cur.has_ModrM=TRUE; + if (tempa1->imm_or_off_present && tempa1->indirect && tempa1->reg1==CREG_NONE) { + cur.ModrM=cur.ModrM+5; + MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum)); + cur.disp.U8_cnt=4; + if (a->seg_size==64) + cur.disp.lit=0; + } else { + if (tempa1->reg2==CREG_NONE && tempa1->scale==1) { + cur.ModrM|=tempa1->reg1&7; + if (tempa1->reg1&15>7) + cur.REX|=1; + if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + cur.has_REX=TRUE; + } else { + cur.ModrM|=4; + cur.has_SIB=TRUE; + if (tempa1->scale==1) + cur.SIB=0; + else if (tempa1->scale==2) + cur.SIB=0x40; + else if (tempa1->scale==4) + cur.SIB=0x80; + else if (tempa1->scale==8) + cur.SIB=0xC0; + if (tempa1->reg2==CREG_NONE) { + ModrM_complete=TRUE; + cur.SIB|=(tempa1->reg1&7)<<3+CREG_RBP; + if (tempa1->reg1&15>7) + cur.REX|=2; + if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + cur.has_REX=TRUE; + MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum)); + cur.disp.U8_cnt=4; + } else { + cur.SIB|=(tempa1->reg1&7)<<3+tempa1->reg2&7; + if (tempa1->reg1&15>7) + cur.REX|=2; + if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + cur.has_REX=TRUE; + if (tempa1->reg2&15>7) + cur.REX|=1; + if (tempa1->reg2>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + cur.has_REX=TRUE; + if (tempa1->reg2&7==CREG_RBP && !tempa1->imm_or_off_present && tempa1->indirect) { + cur.ModrM|=0x40; + cur.disp.U8_cnt=1; + ModrM_complete=TRUE; + } + } + } + if (!ModrM_complete) { + if (tempa1->imm_or_off_present) { + MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum)); + if (!cur.disp.num.exp && MIN_I8<=cur.disp.num.i<=MAX_I8) { + cur.ModrM|=0x40; + cur.disp.U8_cnt=1; + } else if (a->seg_size==16) { + cur.ModrM|=0x80; + cur.disp.U8_cnt=2; + } else { + cur.ModrM|=0x80; + cur.disp.U8_cnt=4; + } + } else if (!tempa1->indirect) { + cur.has_addr_prefix=FALSE; + cur.ModrM|=0xC0; + } else { + if (tempa1->reg1&7==CREG_RBP) { + cur.ModrM|=0x40; + cur.disp.U8_cnt=1; + } + } + } + } + } else if (ARGT_REL8<=a1<=ARGT_REL32 || + ARGT_IMM8<=a1<=ARGT_IMM64 || + ARGT_UIMM8<=a1<=ARGT_UIMM64) { + if (a1==ARGT_IMM64 || a2==ARGT_UIMM64) + cur.REX|=8; + MemCpy(&cur.imm.num,&tempa1->num,sizeof(CAsmNum)); + } + } else if (argcnt==2) { + if (best.U8_cnt!=255 && !found_second_possible && !best.is_dft) { + found_second_possible=TRUE; + if (!a->arg1.size && !a->arg2.size) + PrintFWarn("%S%s,%04d\n","ST_NO_SIZE_SPECIFIED", + lx->cur_lfn->name,lx->cur_lfn->line_num-1); + } + if (tempi->flags & IEF_PLUS_OPCODE) { + if (tempi->slash_val==SV_R_REGISTER) { + if (ARGT_AL<=a1<=ARGT_RAX) { + cur.last_opcode_U8|=tempa2->reg1&7; + if (tempa2->reg1&15>7) + cur.REX|=1; + if (tempa2->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + cur.has_REX=TRUE; + } else { + cur.last_opcode_U8|=tempa1->reg1&7; + if (tempa1->reg1&15>7) + cur.REX|=1; + if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + cur.has_REX=TRUE; + } + } else { //SV_I_REGISTER + if (tempa1->fstk!=CREG_NONE) + cur.last_opcode_U8|=tempa1->fstk; + if (tempa2->fstk!=CREG_NONE) + cur.last_opcode_U8|=tempa2->fstk; + } + } + if (a1==ARGT_RM64 || a2==ARGT_RM64 || + a1==ARGT_M64 || a2==ARGT_M64 || + a1==ARGT_R64 || a2==ARGT_R64) + cur.REX|=8; + if (ARGT_RM8<=a1<=ARGT_RM64 || ARGT_RM8<=a2<=ARGT_RM64 || + ARGT_M8 <=a1<=ARGT_M64 || ARGT_M8 <=a2<=ARGT_M64) { + if (a->seg_size==16) + cur.has_addr_prefix=TRUE; + cur.has_ModrM=TRUE; + if (ARGT_RM8<=a2<=ARGT_RM64 || ARGT_M8<=a2<=ARGT_M64) { + tempa1=&a->arg2; + tempa2=&a->arg1; + } + if (tempi->slash_val==SV_R_REGISTER) { + if (tempa2->just_seg) + cur.ModrM|=tempa2->seg<<3; + else { + if (tempa2->reg1==CREG_NONE) { + cur.ModrM|=(tempa1->reg1&7)<<3; + if (tempa1->reg1&15>7) + cur.REX|=4; + if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + cur.has_REX=TRUE; + } else { + cur.ModrM|=(tempa2->reg1&7)<<3; + if (tempa2->reg1&15>7) + cur.REX|=4; + if (tempa2->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + cur.has_REX=TRUE; + } + } + } + if (tempa1->reg2==CREG_NONE && tempa1->scale==1) { + if (tempa1->reg1!=CREG_NONE) { + cur.ModrM|=tempa1->reg1&7; + if (tempa1->reg1&15>7) + cur.REX|=1; + if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + cur.has_REX=TRUE; + } + } else { + cur.ModrM|=4; + cur.has_SIB=TRUE; + if (tempa1->scale==1) + cur.SIB=0; + else if (tempa1->scale==2) + cur.SIB=0x40; + else if (tempa1->scale==4) + cur.SIB=0x80; + else if (tempa1->scale==8) + cur.SIB=0xC0; + if (tempa1->reg2==CREG_NONE) { + ModrM_complete=TRUE; + cur.SIB|=(tempa1->reg1&7)<<3+5; + if (tempa1->reg1&15>7) + cur.REX|=2; + if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + cur.has_REX=TRUE; + MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum)); + cur.disp.U8_cnt=4; + } else { + cur.SIB|=(tempa1->reg1&7)<<3+tempa1->reg2&7; + if (tempa1->reg1&15>7) + cur.REX|=2; + if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + cur.has_REX=TRUE; + if (tempa1->reg2&15>7) + cur.REX|=1; + if (tempa1->reg2>=20) //RBPu8,RSPu8,RSIu8,RDIu8? + cur.has_REX=TRUE; + if (tempa1->reg2&7==CREG_RBP && !tempa1->imm_or_off_present && tempa1->indirect) { + cur.ModrM|=0x40; + cur.disp.U8_cnt=1; + ModrM_complete=TRUE; + } + } + } + if (!ModrM_complete) { + if (tempa1->imm_or_off_present && tempa1->indirect && tempa1->reg1==CREG_NONE) { + cur.ModrM=cur.ModrM&0xF8+5; + MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum)); + cur.disp.U8_cnt=4; + if (a->seg_size==64) + cur.disp.lit=0; + } else { + if (tempa1->imm_or_off_present) { + MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum)); + if (!cur.disp.num.exp && MIN_I8<=cur.disp.num.i<=MAX_I8) { + cur.ModrM|=0x40; + cur.disp.U8_cnt=1; + } else if (a->seg_size==16) { + cur.ModrM|=0x80; + cur.disp.U8_cnt=2; + } else { + cur.ModrM|=0x80; + cur.disp.U8_cnt=4; + } + } else if (!tempa1->indirect) { + cur.has_addr_prefix=FALSE; + cur.ModrM|=0xC0; + } else { + if (tempa1->reg1&7==CREG_RBP) { + cur.ModrM|=0x40; + cur.disp.U8_cnt=1; + } + } + } + } + } else if (ARGT_MOFFS8<=a1<=ARGT_MOFFS64) { + MemCpy(&cur.disp.num,&tempa1->num,sizeof(CAsmNum)); + if (a->seg_size==16) + cur.disp.U8_cnt=2; + else + cur.disp.U8_cnt=4; + cur.has_addr_prefix=FALSE; + } else if (ARGT_MOFFS8<=a2<=ARGT_MOFFS64) { + MemCpy(&cur.disp.num,&tempa2->num,sizeof(CAsmNum)); + if (a->seg_size==16) + cur.disp.U8_cnt=2; + else + cur.disp.U8_cnt=4; + cur.has_addr_prefix=FALSE; + } else if (ARGT_IMM8<=a1<=ARGT_IMM64 || + ARGT_UIMM8<=a1<=ARGT_UIMM64) { + MemCpy(&cur.imm.num,&tempa1->num,sizeof(CAsmNum)); + if (a1==ARGT_IMM8 || a1==ARGT_UIMM8) cur.imm.U8_cnt=1; + else if (a1==ARGT_IMM16 || a1==ARGT_UIMM16) cur.imm.U8_cnt=2; + else if (a1==ARGT_IMM32 || a1==ARGT_UIMM32) cur.imm.U8_cnt=4; + else { + cur.imm.U8_cnt=8; + cur.REX|=8; + } + } + if (ARGT_IMM8<=a2<=ARGT_IMM64 || + ARGT_UIMM8<=a2<=ARGT_UIMM64) { + MemCpy(&cur.imm.num,&tempa2->num,sizeof(CAsmNum)); + if (a2==ARGT_IMM8 || a2==ARGT_UIMM8) cur.imm.U8_cnt=1; + else if (a2==ARGT_IMM16 || a2==ARGT_UIMM16) cur.imm.U8_cnt=2; + else if (a2==ARGT_IMM32 || a2==ARGT_UIMM32) cur.imm.U8_cnt=4; + else { + cur.imm.U8_cnt=8; + cur.REX|=8; + } + } + } + cur.U8_cnt=tempi->opcode_cnt+cur.disp.U8_cnt+cur.imm.U8_cnt; + if (cur.has_ModrM) cur.U8_cnt++; + if (cur.has_SIB) cur.U8_cnt++; + if (a->seg_size==64 && cur.REX&0x40==0x40 && + (cur.REX!=0x40 || tempi->flags&IEF_40_REX || cur.has_REX) && + (cur.REX&7 || !(tempi->flags&IEF_REX_ONLY_R8_R15 || + tempi->flags&IEF_REX_XOR_LIKE && tempa1->reg1==tempa2->reg1 && cur.ModrM&0xC0==0xC0))) + cur.U8_cnt++; + if (cur.U8_cntflags & IEF_DONT_SWITCH_MODES && + (cur.has_addr_prefix || cur.has_operand_prefix))) + MemCpy(&best,&cur,sizeof(CAsmIns)); + } + } + if (best.U8_cnt<255) { + tempi=best.tempi; + seg=CREG_NONE; + if (argcnt>1 && a->arg2.seg!=CREG_NONE && !a->arg2.just_seg) + seg=a->arg2.seg; + else if (argcnt>0 && a->arg1.seg!=CREG_NONE && !a->arg1.just_seg) + seg=a->arg1.seg; + if (seg!=CREG_NONE) + AsmStoreCodeU8(lx,asm_seg_prefixes[seg]); + if (best.has_operand_prefix) + AsmStoreCodeU8(lx,OC_OP_SIZE_PREFIX); //Operand size override + if (best.has_addr_prefix || a->seg_size==16 && cur.has_SIB) + AsmStoreCodeU8(lx,OC_ADDR_SIZE_PREFIX); //Operand size override + if (a->seg_size==64 && best.REX&0x40==0x40 && + (best.REX!=0x40 || tempi->flags&IEF_40_REX || best.has_REX) && + (best.REX&7||!(tempi->flags&IEF_REX_ONLY_R8_R15 || + tempi->flags&IEF_REX_XOR_LIKE && tempa1->reg1==tempa2->reg1 && best.ModrM&0xC0==0xC0))) + AsmStoreCodeU8(lx,best.REX); + for (j=0;jopcode_cnt-1;j++) + AsmStoreCodeU8(lx,tempi->opcode[j]); + AsmStoreCodeU8(lx,best.last_opcode_U8); + + if (best.has_ModrM) + AsmStoreCodeU8(lx,best.ModrM); + if (best.has_SIB) + AsmStoreCodeU8(lx,best.SIB); + + if (best.disp.U8_cnt) { + best.disp.rel=a->ip+best.disp.U8_cnt+best.imm.U8_cnt; + if (!AsmStoreNum(lx,&best.disp,1,U8_avail)) + return FALSE; + } + + if (best.imm.U8_cnt) { + best.imm.rel=a->ip+best.imm.U8_cnt; + if (!AsmStoreNum(lx,&best.imm,1,U8_avail)) + return FALSE; + } + if (tempi->flags&IEF_ENDING_ZERO) //ENTER instruction + AsmStoreCodeU8(lx,0); + return TRUE; + } + LexExcept(lx,"ST_INVALID_INSTRUCTION"); +} + + +U0 DefineU8s(CLex *lx,I64 U8_cnt) +{ + CAsmCtrl *a=lx->a; + Bool is_dup; + I64 i,dup_val; + U8 *ptr; + CAsmNum2 num2; + num2.U8_cnt=U8_cnt; + + while (lx->token && lx->token!=';') { + num2.num.undef_local=NULL; + num2.num.undef_glbl=NULL; + if (lx->token==TK_STR) { + ptr=lx->ident; + i=lx->ident_len-1; + while (i--) + AsmStoreCodeU8(lx,*ptr++); + Lex(lx); //Skip Str + } else { + is_dup=FALSE; + lx->abs_cnts=0; + lx->undef_hash_entry=NULL; + lx->flags&=~(LF_UNRESOLVED+LF_LOCAL); + if (!GetExpression(lx,&num2.num.exp)) + LexSkipEol(lx); + else { + if (lx->abs_cnts.externs) + LexExcept(lx,"ST_EXTERNS_NOT_ALLOWED"); + if (lx->flags & LF_UNRESOLVED) { + if (lx->flags & LF_LOCAL) { + num2.num.undef_local=lx->undef_hash_entry; + lx->undef_hash_entry=NULL; + a->has_locals=TRUE; + } else { + num2.num.undef_glbl=lx->undef_hash_entry; + lx->undef_hash_entry=NULL; + } + } else { + i=Call(num2.num.exp); + ExpressionDel(num2.num.exp); + } + } + if (lx->token==TK_IDENT && lx->hash_entry) { + if (lx->hash_entry->type & HTT_ASM_KEYWORD && lx->hash_entry->user_data0==AKW_DUP) { + is_dup=TRUE; + if (Lex(lx)!='(') + LexExcept(lx,"ST_EXPECTING_LEFT_PAREN"); + Lex(lx); //skip ( + dup_val=AsmExpressionEval(lx); + if (lx->token!=')') + LexExcept(lx,"ST_EXPECTING_RIGHT_PAREN"); + Lex(lx); //SKIP ) + } + } + num2.rel=0; + num2.lit=1; + num2.num.abs_cnts=lx->abs_cnts; + if (is_dup) { + if (num2.num.undef_local || num2.num.undef_glbl) + LexExcept(lx,"ST_UNDEFINED_DUP_CNT"); + num2.num.i=dup_val; + AsmStoreNum(lx,&num2,i,FALSE); + } else { + num2.num.i=i; + AsmStoreNum(lx,&num2,1,FALSE); + } + } + if (lx->token==',') + Lex(lx); + } + if (lx->token!=';') + LexExcept(lx,"ST_MISSING_SEMICOLON"); + else + Lex(lx); +} + +U0 PrsAsmBlk(CLex *lx) +{ + CAsmCtrl *a=lx->a; + I64 i,j,k,argcnt, + old_hash_mask=lx->hash_mask, + old_flags=lx->flags & LF_ASM_EXPRESSIONS; + CHashOpcode *tempo; + CHashExport *tempess; + U8 *next_last_label; + + a->seg_size=64; + lx->flags|=LF_ASM_EXPRESSIONS; + lx->hash_mask=lx->hash_mask&~(HTF_FLAGS_MASK|HTT_FILE|HTT_INTERNAL_TYPE|HTT_MODULE)|HTT_ASM_KEYWORD; + if (lx->token!='{') + LexExcept(lx,"ST_MISSING_RIGHT_BRACE"); + else + Lex(lx); + while (lx->token && lx->token!='}') { + AsmLineList(lx); + if (lx->token==TK_IDENT && lx->hash_entry) { + if (lx->hash_entry->type&HTT_ASM_KEYWORD) { + i=lx->hash_entry->user_data0; + Lex(lx); //skip keyword + switch (i) { + case AKW_IMPORT: + while (lx->token && lx->token!=';') { + if (lx->token!=TK_IDENT) + LexExcept(lx,"ST_EXPECTING_IDENTIFIER"); + else { + tempess=NULL; + tempess=CAlloc(sizeof(CHashExport)); + tempess->str=lx->ident; + lx->ident=0; + tempess->type=HTT_EXPORT_SYS_SYM|HTF_UNRESOLVED; + HashAdd(tempess,lx->glbl_hash_table); + tempess->type|=HTF_IMPORT; + if (Lex(lx)==',') + Lex(lx); //skip ',' + } + } + if (lx->token!=';') + LexExcept(lx,"ST_MISSING_SEMICOLON"); + else + Lex(lx); //skip ';'; + break; + case AKW_ALIGN: + if (lx->local_var_list) + LexExcept(lx,"ST_NO_FUN_ASM_ALIGN"); + i=AsmExpressionEval(lx); + if (Bsf(i)!=Bsr(i)) + LexExcept(lx,"ST_ALIGN_MUST_BE_POWER_OF_TWO"); + if (!(lx->flags&LF_STATIC_COMPILE) && i>8) + LexExcept(lx,"ST_ALIGN_TOO_LARGE"); + if (i>a->max_align) a->max_align=i; + i=CeilU64(a->ip,i); + if (lx->token==',') + Lex(lx); + k=AsmExpressionEval(lx); + for (j=a->ip;jlist=TRUE; + break; + case AKW_NOLIST: + a->list=FALSE; + break; + case AKW_USE16: + a->seg_size=16; + break; + case AKW_USE32: + a->seg_size=32; + break; + case AKW_USE64: + a->seg_size=64; + break; + default: + LexExcept(lx,"ST_SYNTAX_ERROR"); + } + } else if (lx->hash_entry->type & HTT_OPCODE) { + tempo=lx->hash_entry; + Lex(lx); //skip opcode + argcnt=0; + if (tempo->ins[0].arg1) { + argcnt++; + PrsAsmArg(lx,&a->arg1); + if (tempo->ins[0].arg2) { + argcnt++; + if (lx->token!=',') + LexExcept(lx,"ST_EXPECTING_COMMA"); + else { + Lex(lx); //skip ',' + PrsAsmArg(lx,&a->arg2); + } + } + } + AsmCodeInstruction(lx,tempo,argcnt); + } else if (lx->hash_entry->type & HTT_EXPORT_SYS_SYM) { + if (Btr(&lx->hash_entry->type,HTf_UNRESOLVED)) { + if (lx->hash_entry->type & HTF_LOCAL) { + lx->hash_entry(CHashExport *)->val=a->ip; + if (Lex(lx)!=':') + LexExcept(lx,"ST_EXPECTING_COLON"); + Lex(lx); + } else { + if (lx->hash_entry->type & HTF_IMPORT) + LexExcept(lx,"ST_ATTEMPT_DEFINE_IMPORT"); + lx->hash_entry(CHashExport *)->val=a->ip; + next_last_label=lx->hash_entry->str; + Lex(lx); //Skip ident + if (lx->token!=':' && lx->token!=TK_DBL_COLON) + LexExcept(lx,"ST_EXPECTING_COLON"); + if (lx->token==TK_DBL_COLON) { + lx->hash_entry->type|=HTF_EXPORT; + SetSrcFileInfo(lx,lx->hash_entry); + AsmLocalsResolve(lx); + a->last_label=next_last_label; + } + Lex(lx); + } + } else if (lx->hash_entry(CHashExport *)->val==a->ip) { + Lex(lx); //Skip ident + if (lx->token!=':' && lx->token!=TK_DBL_COLON) + LexExcept(lx,"ST_EXPECTING_COLON"); + Lex(lx); + } else + LexExcept(lx,"ST_REDEFINITION"); + } else + LexExcept(lx,"ST_SYNTAX_ERROR"); + } else { + if (lx->token==TK_IDENT) { + tempess=CAlloc(sizeof(CHashExport)); + tempess->str=lx->ident; + lx->ident=0; + tempess->type=HTT_EXPORT_SYS_SYM; + tempess->val=a->ip; + Lex(lx); //Skip ident + if (lx->token!=':' && lx->token!=TK_DBL_COLON) + LexExcept(lx,"ST_EXPECTING_COLON"); + else { + if (*tempess->str=='@' && tempess->str[1]=='@') { + if (lx->token==TK_DBL_COLON) + LexExcept(lx,"ST_NO_LOCAL_GLBL_EXPORT"); + HashAdd(tempess,lx->local_hash_table); + a->has_locals=TRUE; + } else + HashAdd(tempess,lx->glbl_hash_table); + if (lx->token==TK_DBL_COLON) { + tempess->type|=HTF_EXPORT; + SetSrcFileInfo(lx,tempess); + AsmLocalsResolve(lx); + a->last_label=tempess->str; + } + Lex(lx); + } + } else if (lx->token==';') + Lex(lx); + else + LexExcept(lx,"ST_SYNTAX_ERROR"); + } + } + AsmLocalsResolve(lx); + AsmReserveCodeTo(lx,a->ip); + lx->flags&=lx->flags&~LF_ASM_EXPRESSIONS|old_flags; + lx->hash_mask=old_hash_mask; +} + diff --git a/SparrowOS/Compiler/BackEnd.CPP b/SparrowOS/Compiler/BackEnd.CPP new file mode 100644 index 0000000..6ff7a1a --- /dev/null +++ b/SparrowOS/Compiler/BackEnd.CPP @@ -0,0 +1,5120 @@ +/*Intermediate Code +To +Machine Code + +RAX,RBX,RCX and RDX can be clobbered by +each intermediate code's output code. +However, intermediate codes must be +coupled together based on the arg and +result type specifications in the +$LK,"CICArg","MN:CICArg"$. RAX is the most common register +for coupling intermediate codes. + +Internal calculations take place on +64-bit vals, so anything which has +found it's way into a register has been +sign or zero extended to 64-bits. + +*/ + +U0 ICU8(CIntermediateCode *tempi,U8 b) +{ + if (tempi->ic_cnt>=IC_BODY_SIZE-1|| tempi->ic_ext_body) { + if (!tempi->ic_ext_body) { + tempi->ic_ext_body=MAlloc(256); + MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); + } + tempi->ic_ext_body[tempi->ic_cnt++]=b; + } else + tempi->ic_body[tempi->ic_cnt++]=b; +} + +U0 ICRex(CIntermediateCode *tempi,U8 b) +{ + if (b) { + if (tempi->ic_cnt>=IC_BODY_SIZE-1|| tempi->ic_ext_body) { + if (!tempi->ic_ext_body) { + tempi->ic_ext_body=MAlloc(256); + MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); + } + tempi->ic_ext_body[tempi->ic_cnt++]=b; + } else + tempi->ic_body[tempi->ic_cnt++]=b; + } +} + +U0 ICOpSizeRex(CIntermediateCode *tempi,U8 b) +{ + if (!b) { + if (tempi->ic_cnt>=IC_BODY_SIZE-1|| tempi->ic_ext_body) { + if (!tempi->ic_ext_body) { + tempi->ic_ext_body=MAlloc(256); + MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); + } + tempi->ic_ext_body[tempi->ic_cnt++]=OC_OP_SIZE_PREFIX; + } else + tempi->ic_body[tempi->ic_cnt++]=OC_OP_SIZE_PREFIX; + } else { + if (tempi->ic_cnt>=IC_BODY_SIZE-2|| tempi->ic_ext_body) { + if (!tempi->ic_ext_body) { + tempi->ic_ext_body=MAlloc(256); + MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); + } + tempi->ic_ext_body[tempi->ic_cnt++]=OC_OP_SIZE_PREFIX; + tempi->ic_ext_body[tempi->ic_cnt++]=b; + } else { + tempi->ic_body[tempi->ic_cnt++]=OC_OP_SIZE_PREFIX; + tempi->ic_body[tempi->ic_cnt++]=b; + } + } +} + +U0 ICU16(CIntermediateCode *tempi,U16 w) +{ + if (tempi->ic_cnt>=IC_BODY_SIZE-2|| tempi->ic_ext_body) { + if (!tempi->ic_ext_body) { + tempi->ic_ext_body=MAlloc(256); + MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); + } + tempi->ic_ext_body[tempi->ic_cnt++]=w.u8[0]; + tempi->ic_ext_body[tempi->ic_cnt++]=w.u8[1]; + } else { + tempi->ic_body[tempi->ic_cnt++]=w.u8[0]; + tempi->ic_body[tempi->ic_cnt++]=w.u8[1]; + } +} + +U0 ICU24(CIntermediateCode *tempi,U32 d) +{ + if (tempi->ic_cnt>=IC_BODY_SIZE-3|| tempi->ic_ext_body) { + if (!tempi->ic_ext_body) { + tempi->ic_ext_body=MAlloc(256); + MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); + } + tempi->ic_ext_body[tempi->ic_cnt++]=d.u8[0]; + tempi->ic_ext_body[tempi->ic_cnt++]=d.u8[1]; + tempi->ic_ext_body[tempi->ic_cnt++]=d.u8[2]; + } else { + tempi->ic_body[tempi->ic_cnt++]=d.u8[0]; + tempi->ic_body[tempi->ic_cnt++]=d.u8[1]; + tempi->ic_body[tempi->ic_cnt++]=d.u8[2]; + } +} + +U0 ICU32(CIntermediateCode *tempi,U32 d) +{ + U32 *_d; + if (tempi->ic_cnt>=IC_BODY_SIZE-4|| tempi->ic_ext_body) { + if (!tempi->ic_ext_body) { + tempi->ic_ext_body=MAlloc(256); + MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); + } + _d=&tempi->ic_ext_body[tempi->ic_cnt]; + } else { + _d=&tempi->ic_body[tempi->ic_cnt]; + } + *_d=d; + tempi->ic_cnt+=4; +} + +U0 ICU64(CIntermediateCode *tempi,I64 q) +{ + I64 *qq; + if (tempi->ic_cnt>=IC_BODY_SIZE-8 || tempi->ic_ext_body) { + if (!tempi->ic_ext_body) { + tempi->ic_ext_body=MAlloc(256); + MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); + } + qq=&tempi->ic_ext_body[tempi->ic_cnt]; + } else + qq=&tempi->ic_body[tempi->ic_cnt]; + *qq=q; + tempi->ic_cnt+=8; +} + +Bool ICLastIns(CIntermediateCode *tempi,CIntermediateCode **_tempi1,U8 **_body) +{ + CIntermediateCode *tempil1; + if (tempi->ic_last_cnt>=0) { + if (tempi->ic_ext_body) + *_body=tempi->ic_ext_body; + else + *_body=tempi->ic_body; + *_tempi1=tempi; + return TRUE; + } else { + if (!tempi->ic_cnt && + (tempil1=OptLag1(tempi)) && tempil1->ic_last_cnt>=0) { + if (tempil1->ic_ext_body) + *_body=tempil1->ic_ext_body; + else + *_body=tempil1->ic_body; + *_tempi1=tempil1; + return TRUE; + } else { + *_body=NULL; + *_tempi1=NULL; + return FALSE; + } + } +} + + +U0 ICAddRSP(CIntermediateCode *tempi,I64 i,Bool optimize=TRUE) +{ + I64 j,last_cnt; + U8 *body; + CIntermediateCode *tempil1; + if (optimize && ICLastIns(tempi,&tempil1,&body)) { + j=tempil1->ic_cnt; + if (tempil1->ic_last_cnt==j-4 && body[j-3]==0x83 && body[j-4]==0x48) { + if (body[j-2]==0xEC) + j=-body[j-1](I8); + else if (body[j-2]==0xC4) + j=body[j-1](I8); + else + j=0; + } else if (tempil1->ic_last_cnt==j-7 && body[j-6]==0x81 && body[j-7]==0x48) { + if (body[j-5]==0xEC) + j=-body[j-4](I32); + else if (body[j-5]==0xC4) + j=body[j-4](I32); + else + j=0; + } else + j=0; + if (j) { + if (tempi==tempil1) { + tempi->ic_cnt=tempi->ic_last_cnt; + i+=j; + } else if (!(tempi->ic_flags&ICF_PREVIOUS_DELETED)) { + tempil1->ic_flags|=ICF_DEL_PREVIOUS_INS; + tempi->ic_flags=tempi->ic_flags&~ICF_CODE_FINAL|ICF_PREVIOUS_DELETED; + i+=j; + } + } + } + last_cnt=tempi->ic_cnt; + if (i>0) { + if (i<=MAX_I8) + ICU32(tempi,0xC48348+i<<24); + else if (i<=MAX_I32) { + ICU24(tempi,0xC48148); + ICU32(tempi,i); + } else + throw(EXCEPT_COMPILER,20); + } else if (i<0) { + i=-i; + if (i<=MAX_I8) + ICU32(tempi,0xEC8348+i<<24); + else if (i<=MAX_I32) { + ICU24(tempi,0xEC8148); + ICU32(tempi,i); + } else + throw(EXCEPT_COMPILER,20); + } + if (optimize && tempi->ic_cnt>last_cnt) + tempi->ic_last_cnt=last_cnt; +} + +#define CN_MAIN 0 +#define CN_P1 1 +#define CN_P2 2 +#define CN_P3 3 +#define CN_R 4 + +U0 CmpNoteFloatOp(CLex *lx,CIntermediateCode *tempi,Bool dont_pushable,Bool dont_popable,I64 pos) +{ + Bool link=FALSE; + if (lx->pass==7 && lx->last_float_op_ic && lx->last_dont_popable && dont_pushable) { + nobound_switch (pos) { + case CN_P3: + if (lx->last_float_op_ic!=tempi && lx->dont_push_float) + link=TRUE; + break; + case CN_P2: + if (lx->last_float_op_ic!=tempi && lx->dont_push_float) + link=TRUE; + break; + case CN_P1: + if (lx->last_float_op_ic!=tempi && lx->dont_push_float) + link=TRUE; + break; + case CN_MAIN: + if (lx->last_float_op_ic!=tempi) { + if (lx->dont_push_float) { + if (!(tempi->ic_flags & ICF_P1_FIRST)) + tempi->ic_flags|=ICF_ALTERNATE_TEMPLATE; + else + tempi->ic_flags&=~ICF_ALTERNATE_TEMPLATE; + link=TRUE; + } + } else { + if (lx->last_float_op_pos==CN_P1 ^^ !(tempi->ic_flags & ICF_P1_FIRST)) + tempi->ic_flags|=ICF_ALTERNATE_TEMPLATE; + else + tempi->ic_flags&=~ICF_ALTERNATE_TEMPLATE; + link=TRUE; + } + break; + case CN_R: + if (lx->last_float_op_ic==tempi && lx->last_float_op_pos==CN_MAIN) + link=TRUE; + break; + } + if (link) { + if (!Bts(&lx->last_float_op_ic->ic_flags,ICf_DONT_POP_FLOAT0+lx->last_ic_float_op_num)) + lx->last_float_op_ic->ic_flags&=~ICF_CODE_FINAL; + if (!Bts(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0+lx->cur_ic_float_op_num)) + tempi->ic_flags&=~ICF_CODE_FINAL; + } + } + lx->last_float_op_ic=tempi; + lx->last_dont_pushable=dont_pushable; + lx->last_dont_popable=dont_popable; + lx->last_ic_float_op_num=lx->cur_ic_float_op_num++; + lx->last_float_op_pos=pos; + if (lx->cur_ic_float_op_num>4) + throw(EXCEPT_COMPILER,21); +} + +U0 CmpSetFloatOpPushPop(CLex *lx,CIntermediateCode *tempi,Bool *dont_push_float,Bool *dont_pop_float) +{ + if (lx->pass==7) { + *dont_push_float=FALSE; + *dont_pop_float =FALSE; + tempi->ic_flags&=~ICF_CODE_FINAL; + } else { + *dont_push_float=Bt(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0+lx->cur_ic_float_op_num); + *dont_pop_float=Bt(&tempi->ic_flags,ICf_DONT_POP_FLOAT0+lx->cur_ic_float_op_num); + } +} + +U0 ICCopyTemplate(CLex *lx,CIntermediateCode *tempi,I64 op, + Bool off_the_record,Bool dont_pushable,Bool dont_popable,I64 pos) +{ + Bool dont_push_float,dont_pop_float,alt; + U8 *ptr; + I64 i=0; + if (!off_the_record) { + if (tempi->ic_flags&ICF_ALTERNATE_TEMPLATE) + alt=TRUE; + else + alt=FALSE; + CmpSetFloatOpPushPop(lx,tempi,&dont_push_float,&dont_pop_float); + } else { + dont_push_float=FALSE; + dont_pop_float=FALSE; + alt=FALSE; + } + if (alt && dont_push_float && !dont_pop_float) { + ptr=cmp_templates_dont_push2[op]; + i=cmp_templates_dont_push2[op+1]-ptr; + } + if (!i) { + if (dont_push_float) { + if (dont_pop_float) { + ptr=cmp_templates_dont_push_pop[op]; + i=cmp_templates_dont_push_pop[op+1]-ptr; + } else { + ptr=cmp_templates_dont_push[op]; + i=cmp_templates_dont_push[op+1]-ptr; + } + } else { + if (dont_pop_float) { + ptr=cmp_templates_dont_pop[op]; + i=cmp_templates_dont_pop[op+1]-ptr; + } else { + ptr=cmp_templates[op]; + i=cmp_templates[op+1]-ptr; + } + } + } + if (tempi->ic_cnt+i>=IC_BODY_SIZE) { + if (!tempi->ic_ext_body) { + tempi->ic_ext_body=MAlloc(256); + MemCpy(tempi->ic_ext_body,tempi->ic_body,tempi->ic_cnt); + } + MemCpy(&tempi->ic_ext_body[tempi->ic_cnt],ptr,i); + } else + MemCpy(&tempi->ic_body[tempi->ic_cnt],ptr,i); + if (!off_the_record) + CmpNoteFloatOp(lx,tempi,dont_pushable,dont_popable,pos); + tempi->ic_cnt+=i; +} + +extern U0 ICMov(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,I64 t2,I64 r2,I64 d2,I64 ip); + +I64 ICModr(I64 r,I64 t2,I64 r2,I64 d2) +{ + //result.u[0] is type 0=[REG],1=disp8[REG],2=disp32[REG],3=REG,4=RIP_REL + //result.u[1] is REX + //result.u[2] is ModR + //result.u[3] is SIB + I64 result=0; + if (t2&TY_MASK>TY_RIP_DISP32) { + "Callers:%P;%P\n",Caller,Caller(2); + throw(EXCEPT_COMPILER,22); + } + if (t2&IT_MASK7) { + result.u8[1]+=4; + r&=7; + } + switch (t2>>4) { + case TY_RIP_DISP32>>4: + result.u8[2]=0x05+r<<3; + result.u8[0]=4; + if (result.u8[1]==0x40 && + (t2&IT_MASK>=IT_I16 || + r<4)) + result.u8[1]=0; + break; + case TY_REG>>4: + if (r2>7) { + result.u8[1]++; + r2&=7; + } + result.u8[2]=0xC0+r<<3+r2; + result.u8[0]=3; + if (result.u8[1]==0x40 && + (t2&IT_MASK>=IT_I16 || + r<4 && r2<4)) + result.u8[1]=0; + break; + case TY_DISP>>4: + if (r2>7) { + result.u8[1]++; + r2&=7; + } + if (!d2 && r2!=CREG_RBP) { + result.u8[2]=r<<3+r2; + result.u8[0]=0; + } else if (MIN_I8<=d2<=MAX_I8) { + result.u8[2]=0x40+r<<3+r2; + result.u8[0]=1; + } else { + result.u8[2]=0x80+r<<3+r2; + result.u8[0]=2; + } + if (result.u8[1]==0x40 && + (t2&IT_MASK>=IT_I16 || + r<4)) + result.u8[1]=0; + break; + case TY_SIB>>4: + if (77) + result.u8[1]+=2; + if (r2.u8[0]==CREG_NONE) { + result.u8[3]=5+(r2.u8[1]&7)<<3+r2.u8[1]&0xC0; + result.u8[2]=4+r<<3; + result.u8[0]=2; + } else { + result.u8[3]=r2.u8[0]&7+(r2.u8[1]&7)<<3+r2.u8[1]&0xC0; + if (!d2 && r2.u8[0]&7!=CREG_RBP) { + result.u8[2]=4+r<<3; + result.u8[0]=0; + } else if (MIN_I8<=d2<=MAX_I8) { + result.u8[2]=0x44+r<<3; + result.u8[0]=1; + } else { + result.u8[2]=0x84+r<<3; + result.u8[0]=2; + } + } + if (result.u8[1]==0x40 && + (t2&IT_MASK>=IT_I16 || + r<4)) + result.u8[1]=0; + break; + } + return result; +} + +#define SLASH_OP_INC 0x00000000FFFE00 +#define SLASH_OP_DEC 0x00000000FFFE01 +#define SLASH_OP_NOT 0x00000000F7F602 +#define SLASH_OP_NEG 0x00000000F7F603 +#define SLASH_OP_MUL 0x00000000F7F604 +#define SLASH_OP_IMUL 0x00000000F7F605 +#define SLASH_OP_DIV 0x00000000F7F606 +#define SLASH_OP_MOV 0x00000000898800 +#define SLASH_OP_PUSH 0x00000000FFFF06 +#define SLASH_OP_POP 0x000000008F8F00 +#define SLASH_OP_FADD 0x01C1DE00DCDC00 +#define SLASH_OP_FSUB 0x01E9DE00DCDC04 +#define SLASH_OP_FSUBR 0x01E1DE00DCDC05 +#define SLASH_OP_FMUL 0x01C9DE00DCDC01 +#define SLASH_OP_FDIV 0x01F9DE00DCDC06 +#define SLASH_OP_FDIVR 0x01F1DE00DCDC07 +#define SLASH_OP_FLD 0x01000000DDDD00 +#define SLASH_OP_FSTP 0x01000000DDDD03 +#define SLASH_OP_FISTTP 0x01000000DDDD01 +#define SLASH_OP_FILD 0x01000000DFDF05 + +U0 ICSlashOp(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,I64 op,I64 ip) +{ + I64 i; + if (t1&TY_MASK==TY_REG && !op.u8[6]) + t1=t1&(TY_MASK|1)+IT_I64; //Set to 64 bit, preserving signed/unsigned + i=ICModr(op.u8[0],t1,r1,d1); + + if (tempi->ic_flags&ICF_LOCK && op!=SLASH_OP_MOV && t1&TY_MASK!=TY_REG) + ICU8(tempi,OC_LOCK_PREFIX); + switch (t1&IT_MASK) { + case IT_I8: + case IT_U8: + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+op.u8[1]); + break; + case IT_I16: + case IT_U16: + ICOpSizeRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+op.u8[2]); + break; + default: + if (i.u8[1]!=0x48 || !op.u8[6]) + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+op.u8[2]); + } + if (t1&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,d1); + else if (i.u8[0]==2) + ICU32(tempi,d1); + else if (i.u8[0]==4) { + ICU32(tempi,d1-(ip+tempi->ic_cnt+4)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } +} + +U0 ICPush(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,I64 ip) +{ + switch (t1>>4) { + case TY_REG>>4: + if (r1>7) + ICU16(tempi,0x5049+(r1&7)<<8); + else + ICU8(tempi,0x50+r1); + return; + case TY_IMM>>4: + if (MIN_I8<=d1<=MAX_I8) + ICU16(tempi,0x6A+d1<<8); + else if (MIN_I32<=d1<=MAX_I32) { + ICU8(tempi,0x68); + ICU32(tempi,d1); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RBX,0,t1,r1,d1,ip); + ICU8(tempi,0x50+CREG_RBX); + } + return; + case TY_STK>>4: + return; + case TY_DISP>>4: + case TY_SIB>>4: + case TY_RIP_DISP32>>4: + switch (t1&IT_MASK) { + case IT_I64: + case IT_U64: + case IT_F64: + ICSlashOp(tempi,t1,r1,d1,SLASH_OP_PUSH,ip); + return; + } + break; + } + ICMov(tempi,TY_REG+IT_I64,CREG_RBX,0,t1,r1,d1,ip); + ICU16(tempi,0x5048+CREG_RBX<<8); +} + +U0 ICPushRegs(CIntermediateCode *tempi,I64 mask) +{ + I64 i; + for (i=0;i7) + ICU16(tempi,0x5049+(i&7)<<8); + else + ICU8(tempi,0x50+i); + } + } +} + +U0 ICPop(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,I64 ip) +{ + switch (t1>>4) { + case TY_NULL>>4: + ICAddRSP(tempi,8); + break; + case TY_REG>>4: + if (r1>7) + ICU16(tempi,0x5849+(r1&7)<<8); + else + ICU8(tempi,0x58+r1); + break; + case TY_DISP>>4: + case TY_RIP_DISP32>>4: + case TY_SIB>>4: + if (t1&IT_MASK=0;i--) { + if (Bt(&mask,i)) { + if (i>7) + ICU16(tempi,0x5849+(i&7)<<8); + else + ICU8(tempi,0x58+i); + } + } +} + +U0 ICZero(CIntermediateCode *tempi,I64 r) +{ + if (r>7) { + r&=7; + ICU24(tempi,0xC0334D+r<<16+r<<19); + } else + ICU16(tempi,0xC033+r<<8+r<<11); +} + +U0 ICOr(CIntermediateCode *tempi,I64 r) +{ + I64 i=0xC00B48; //OR R,R + if (r>7) { + i+=5; + r&=7; + } + ICU24(tempi,i+r<<16+r<<19); +} + +I64 ICBuiltInFloatConst(F64 d) +{ //Returns 2-byte opcode for FLD const or zero + if (!d) + return 0xEED9; + else if (d==1.0) + return 0xE8D9; + else if (GetOpt(OPTf_NO_BUILTIN_CONST)) + return 0; + else if (d==ã) + return 0xEBD9; + else if (d==log2_10) + return 0xE9D9; + else if (d==log2_e) + return 0xEAD9; + else if (d==log10_2) + return 0xECD9; + else if (d==loge_2) + return 0xEDD9; + else + return 0; +} + + +U0 ICMov(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,I64 t2,I64 r2,I64 d2,I64 ip) +{ + I64 i,last_cnt=tempi->ic_cnt; + CIntermediateCode *tempil1; + U8 *body; + Bool old_lock=Btr(&tempi->ic_flags,ICf_LOCK); + switch (t1>>4) { + case TY_REG>>4: + if (t2&TY_MASK==TY_IMM) { + if (!d2) + ICZero(tempi,r1); + else if (0<=d2<=MAX_U8) { + ICZero(tempi,r1); + if (r1>7) + ICU24(tempi,d2<<16+(0xB0+r1&7)<<8+0x41); + else if (r1>3) + ICU24(tempi,d2<<16+(0xB0+r1)<<8+0x40); + else + ICU16(tempi,d2<<8+0xB0+r1); + } else if (MIN_I8<=d2<0) { + if (r1>7) { + r1&=7; + ICU24(tempi,d2<<16+(0xB0+r1)<<8+0x41); + ICU32(tempi,0xC0BE0F4D+r1<<24+r1<<27); + } else { + if (r1>3) + ICU24(tempi,d2<<16+(0xB0+r1)<<8+0x40); + else + ICU16(tempi,d2<<8+0xB0+r1); + ICU32(tempi,0xC0BE0F48+r1<<24+r1<<27); + } + } else if (0<=d2<=MAX_U32) { + if (r1>7) { + r1&=7; + ICU16(tempi,(0xB8+r1)<<8+0x41); + ICU32(tempi,d2); + } else { + ICU8(tempi,0xB8+r1); + ICU32(tempi,d2); + } + } else if (MIN_I32<=d2<0) { + if (r1>7) { + r1&=7; + ICU16(tempi,(0xB8+r1)<<8+0x41); + ICU32(tempi,d2); + ICU24(tempi,0xC0634D+r1<<16+r1<<19); + } else { + ICU8(tempi,0xB8+r1); + ICU32(tempi,d2); + ICU24(tempi,0xC06348+r1<<16+r1<<19); + } + } else { + i=0xB848; + if (r1>7) { + i++; + r1&=7; + } + ICU16(tempi,i+r1<<8); + ICU64(tempi,d2); + } + } else if (t2&TY_MASK==TY_STK) + ICPop(tempi,t1,r1,d1,ip); + else { + if (r1==r2 && t2&TY_MASK==TY_REG) + goto move_done; + if (t2&TY_MASK==TY_REG) { + t2=TY_REG+IT_I64; + if (ICLastIns(tempi,&tempil1,&body)) { + i=tempil1->ic_cnt; + if (tempil1->ic_last_cnt==i-3 && + body[i-2]==0x8B && + body[i-1]==0xC0+r1&7+(r2&7)<<3 && + body[i-3]==0x48+ (r2>7 ? 4:0)+(r1>7) ) { + goto move_done; + } + } + } + i=ICModr(r1,t2,r2,d2); + if (t2&IT_MASK!=IT_U32) + i|=0x4800; + ICRex(tempi,i.u8[1]); + switch (t2&IT_MASK) { + case IT_I8: + ICU24(tempi,i.u8[2]<<16+0xBE0F); + break; + case IT_I16: + ICU24(tempi,i.u8[2]<<16+0xBF0F); + break; + case IT_I32: + ICU16(tempi,i.u8[2]<<8+0x63); + break; + + case IT_U8: + ICU24(tempi,i.u8[2]<<16+0xB60F); + break; + case IT_U16: + ICU24(tempi,i.u8[2]<<16+0xB70F); + break; + default: + ICU16(tempi,i.u8[2]<<8+0x8B); + } + if (t2&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,d2); + else if (i.u8[0]==2) + ICU32(tempi,d2); + else if (i.u8[0]==4) { + ICU32(tempi,d2-(ip+tempi->ic_cnt+4)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + } + break; + case TY_STK>>4: + if (t1&IT_MASK>4: + case TY_RIP_DISP32>>4: + case TY_SIB>>4: + if (t2&TY_MASK==TY_IMM && + (t1&IT_MASKic_cnt+4); + switch (t1&IT_MASK) { + case IT_I8: + case IT_U8: + i--; + break; + case IT_I16: + case IT_U16: + i-=2; + break; + default: + i-=4; + } + ICU32(tempi,i); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + switch (t1&IT_MASK) { + case IT_I8: + case IT_U8: + ICU8(tempi,d2); + break; + case IT_I16: + case IT_U16: + ICU16(tempi,d2); + break; + default: + ICU32(tempi,d2); + } + } else { + if (t2&TY_MASK==TY_REG) + ICSlashOp(tempi,t1,r1,d1,r2+SLASH_OP_MOV,ip); + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RBX,0,t2,r2,d2,ip); + ICMov(tempi,t1,r1,d1,TY_REG+IT_I64,CREG_RBX,0,ip); + } + } + break; + } +move_done: + BEqu(&tempi->ic_flags,ICf_LOCK,old_lock); + if (tempi->ic_cnt>last_cnt>tempi->ic_last_cnt) + tempi->ic_last_cnt=last_cnt; +} + +U0 ICLea(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,I64 t2,I64 r2,I64 d2,CLex *lx,U8 *buf,I64 ip) +{ + I64 i; + CExeAbsAddr *tempa; + switch (t1>>4) { + case TY_REG>>4: + i=ICModr(r1,t2,r2,d2); + i.u8[1]|=0x48; + ICU24(tempi,i.u8[2]<<16+0x8D00+i.u8[1]); + if (t2&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,d2); + else if (i.u8[0]==2) + ICU32(tempi,d2); + else if (i.u8[0]==4) { + ICU32(tempi,d2-(ip+tempi->ic_cnt+4)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + break; + case TY_STK>>4: + if (t2&TY_MASK==TY_RIP_DISP32) { + ICU8(tempi,0x68); + ICU32(tempi,d2); + if (lx->flags&LF_STATIC_COMPILE && buf && !(lx->flags&LF_NO_ABSS)) { + tempa=CAlloc(sizeof(CExeAbsAddr)); + tempa->next=lx->a->abss; + tempa->type=EAA_ADD_U32; + lx->a->abss=tempa; + tempa->ip=ip+tempi->ic_cnt-4; + } + tempi->ic_flags&=~ICF_CODE_FINAL; + } else { + ICLea(tempi,TY_REG+IT_I64,CREG_RCX,0,t2,r2,d2,lx,buf,ip); + ICMov(tempi,t1,r1,d1,TY_REG+IT_I64,CREG_RCX,0,ip); + } + break; + default: + ICLea(tempi,TY_REG+IT_I64,CREG_RCX,0,t2,r2,d2,lx,buf,ip); + ICMov(tempi,t1,r1,d1,TY_REG+IT_I64,CREG_RCX,0,ip); + } +} + +U0 ICDeref(CIntermediateCode *tempi,I64 ip) +{ + I64 ty; + ty=tempi->r.type&IT_MASK; + if (ty>tempi->p1.ptype) + ty=tempi->p1.ptype; + + if (tempi->p1.type&TY_MASK==TY_REG) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_DISP+ty,tempi->p1.reg,tempi->p1.disp,ip); + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_DISP+ty,CREG_RCX,0,ip); + } +} + +U0 ICAddEct(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, + I64 t2,I64 r2,I64 d2,I64 t3,I64 r3,I64 d3,I64 op,I64 ip) +{ + I64 i,temp,result_reg=CREG_RAX; + Bool swap=FALSE; + if (r3!=result_reg) { + swap^=TRUE; + SwapU64(&t2,&t3); + SwapU64(&r2,&r3); + SwapU64(&d2,&d3); + } + if (t2&IT_MASK>=IT_I64 && r2!=result_reg && + TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) { + if (t1&TY_MASK==TY_REG && !(r2==r1 && TY_REG<=t2&TY_MASK<=TY_SIB)) + result_reg=r1; + ICMov(tempi,TY_REG+IT_I64,result_reg,0,t3,r3,d3,ip); + i=ICModr(result_reg,t2,r2,d2); + if (tempi->ic_flags&ICF_LOCK) + ICU8(tempi,OC_LOCK_PREFIX); + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+op); + if (t2&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,d2); + else if (i.u8[0]==2) + ICU32(tempi,d2); + else if (i.u8[0]==4) { + ICU32(tempi,d2-(ip+tempi->ic_cnt+4)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + } else { + if (t2&TY_MASK==TY_REG) + temp=r2; + else + temp=CREG_RCX; + + if (t1&TY_MASK==TY_REG) + result_reg=r1; + + if (temp==result_reg) + result_reg=CREG_RDX; + if (swap ^^ tempi->ic_flags & ICF_P1_FIRST) { + if (r3==temp && TY_REG<=t3&TY_MASK<=TY_SIB) + temp=CREG_RCX; + ICMov(tempi,TY_REG+IT_I64,temp,0,t2,r2,d2,ip); + ICMov(tempi,TY_REG+IT_I64,result_reg,0,t3,r3,d3,ip); + } else { + if (r2==result_reg && TY_REG<=t2&TY_MASK<=TY_SIB) + result_reg=CREG_RDX; + ICMov(tempi,TY_REG+IT_I64,result_reg,0,t3,r3,d3,ip); + ICMov(tempi,TY_REG+IT_I64,temp,0,t2,r2,d2,ip); + } + i=0x48; + if (result_reg>7) + i+=4; + if (temp>7) + i++; + if (tempi->ic_flags&ICF_LOCK) + ICU8(tempi,OC_LOCK_PREFIX); + ICU24(tempi,0xC00000+i+(temp&7)<<16+(result_reg&7)<<19+op<<8); + } + ICMov(tempi,t1,r1,d1,TY_REG+IT_I64,result_reg,0,ip); +} + +U0 ICAddConst(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, + I64 t2,I64 r2,I64 d2,I64 disp,I64 op,I64 ip) +{ + I64 i,r; + if (op.u8[0]==0x2B) { + op=0x0003; + disp=-disp; + } + if (t1&TY_MASK==TY_REG) { + if (t2&TY_MASK!=TY_REG) { + ICMov(tempi,t1,r1,d1,t2,r2,d2,ip); + t2=t1; + r2=r1; + d2=d1; + } + if (r1==r2) { + if (r1>7) + i=0x49; + else + i=0x48; + if (!disp && + (op.u8[0]==0x03||op.u8[0]==0x2B|| + op.u8[0]==0x33||op.u8[0]==0x0B)) + return; + else if (disp==1 && op.u8[0]==0x03) { + ICU24(tempi,0xC0FF00+op.u8[1]<<19+i+(r1&7)<<16); + return; + } else if (disp==-1 && op.u8[0]==0x03) { + ICU24(tempi,0xC8FF00+i+(r1&7)<<16); + return; + } else if (MIN_I8<=disp<=MAX_I8) { + ICU24(tempi,0xC08300+op.u8[1]<<19+i+(r1&7)<<16); + ICU8(tempi,disp); + return; + } else if (MIN_I32<=disp<=MAX_I32) { + ICU24(tempi,0xC08100+op.u8[1]<<19+i+(r1&7)<<16); + ICU32(tempi,disp); + return; + } + } + if (op.u8[0]==0x03 && MIN_I32<=disp<=MAX_I32 && + !Bt(&non_ptr_vars_mask,r2)) { + i=ICModr(r1,TY_DISP+IT_I64,r2,disp); + i.u8[1]|=0x48; + ICU24(tempi,i.u8[2]<<16+0x8D00+i.u8[1]); + if (i.u8[0]==1) + ICU8(tempi,disp); + else if (i.u8[0]==2) + ICU32(tempi,disp); + else if (i.u8[0]==4) { + ICU32(tempi,disp-(ip+tempi->ic_cnt+4)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + return; + } + } + switch (t1>>4) { + case TY_REG>>4: + case TY_DISP>>4: + case TY_SIB>>4: + case TY_RIP_DISP32>>4: + if (t1!=t2 || r1!=r2 || d1!=d2) { + ICMov(tempi,t1,r1,d1,t2,r2,d2,ip); + t2=t1; + r2=r1; + d2=d1; + } + + if (!disp && + (op.u8[0]==0x03||op.u8[0]==0x2B|| + op.u8[0]==0x33||op.u8[0]==0x0B)) + return; + r=op.u8[1]; //not a register but a slash val + if (op.u8[0]==0x03 && disp==-1) //add -1 + r=1; //Decrement slash val + + if (op.u8[0]==0x03 && (disp==1 || disp==-1)) { //Add + i=ICModr(r,t1,r1,d1); + if (t1!=TY_REG && tempi->ic_flags&ICF_LOCK) + ICU8(tempi,OC_LOCK_PREFIX); + switch (t1&IT_MASK) { + case IT_I8: + case IT_U8: + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0xFE); + break; + case IT_I16: + case IT_U16: + ICOpSizeRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0xFF); + break; + default: + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0xFF); + } + if (t1&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,d1); + else if (i.u8[0]==2) + ICU32(tempi,d1); + else if (i.u8[0]==4) { + ICU32(tempi,d1-(ip+tempi->ic_cnt+4)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + return; + } + if (MIN_I8<=disp<=MAX_I8 || + t1&(IT_MASK-1)==IT_I8) { + i=ICModr(r,t1,r1,d1); + if (tempi->ic_flags&ICF_LOCK) + ICU8(tempi,OC_LOCK_PREFIX); + switch (t1&IT_MASK) { + case IT_I8: + case IT_U8: + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0x80); + break; + case IT_I16: + case IT_U16: + ICOpSizeRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0x83); + break; + default: + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0x83); + } + if (t1&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,d1); + else if (i.u8[0]==2) + ICU32(tempi,d1); + else if (i.u8[0]==4) { + ICU32(tempi,d1-(ip+tempi->ic_cnt+5)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + ICU8(tempi,disp); + return; + } + if (MIN_I32<=disp<=MAX_I32 || + t1&IT_MASKic_flags&ICF_LOCK) + ICU8(tempi,OC_LOCK_PREFIX); + switch (t1&IT_MASK) { + case IT_I16: + case IT_U16: + ICOpSizeRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0x81); + break; + default: + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0x81); + } + if (t1&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,d1); + else if (i.u8[0]==2) + ICU32(tempi,d1); + else if (i.u8[0]==4) { + if (t1&(IT_MASK-1)==IT_I16) + ICU32(tempi,d1-(ip+tempi->ic_cnt+6)); + else + ICU32(tempi,d1-(ip+tempi->ic_cnt+8)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + if (t1&(IT_MASK-1)==IT_I16) + ICU16(tempi,disp); + else + ICU32(tempi,disp); + return; + } + break; + case TY_STK>>4: + ICAddConst(tempi,TY_REG+IT_I64,CREG_RAX,0,t2,r2,d2,disp,op,ip); + ICPushRegs(tempi,1<=IT_I64 && r2.u8[0]!=CREG_RAX && (t2&TY_MASK!=TY_SIB || r2.u8[1]&15!=CREG_RAX) && + TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,t3,r3,d3,ip); + if (!swap) { + op=0x03; + ICU24(tempi,0xD8F748); + } + i=ICModr(CREG_RAX,t2,r2,d2); + if (tempi->ic_flags&ICF_LOCK) + ICU8(tempi,OC_LOCK_PREFIX); + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+op); + if (t2&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,d2); + else if (i.u8[0]==2) + ICU32(tempi,d2); + else if (i.u8[0]==4) { + ICU32(tempi,d2-(ip+tempi->ic_cnt+4)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + ICMov(tempi,t1,r1,d1,TY_REG+IT_I64,CREG_RAX,0,ip); + } else { + if (tempi->ic_flags & ICF_P1_FIRST) { + if (t3&TY_MASK!=TY_REG || t3&IT_MASK7) + i++; + if (r2>7) + i+=4; + if (tempi->ic_flags&ICF_LOCK) + ICU8(tempi,OC_LOCK_PREFIX); + ICU24(tempi,0xC00000+i+(r3&7)<<16+(r2&7)<<19+op<<8); + ICMov(tempi,t1,r1,d1,TY_REG+IT_I64,r2,0,ip); + } +} + +U0 ICFCvt(CLex *lx,CIntermediateCode *tempi,I64 r1,I64 t2,I64 r2,I64 d2,Bool to_int,I64 pos,I64 ip) +{ + I64 rsp_size=0,op1,op2; + Bool dont_push_float,dont_pop_float; + + if (to_int) { + op1=SLASH_OP_FLD; + op2=SLASH_OP_FISTTP; + } else { + op1=SLASH_OP_FILD; + op2=SLASH_OP_FSTP; + } + + CmpSetFloatOpPushPop(lx,tempi,&dont_push_float,&dont_pop_float); + if (!dont_push_float) { + if (!(t2&IT_MASK>=IT_I64 && + (t2&TY_MASK==TY_DISP || + t2&TY_MASK==TY_RIP_DISP32 || + t2&TY_MASK==TY_SIB))) { + ICPush(tempi,t2,r2,d2,ip); + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + rsp_size=8; + } else { + if (!dont_pop_float) { + rsp_size=8; + ICAddRSP(tempi,-8); + } + } + ICSlashOp(tempi,t2,r2,d2,op1,ip); + } else { + if (!dont_pop_float) { + rsp_size=8; + ICAddRSP(tempi,-8); + } + } + if (to_int) + CmpNoteFloatOp(lx,tempi,TRUE,FALSE,pos); + else + CmpNoteFloatOp(lx,tempi,FALSE,TRUE,pos); + if (dont_pop_float) { + if (rsp_size) + ICAddRSP(tempi,rsp_size); + } else { + ICSlashOp(tempi,TY_SIB+IT_I64,CREG_RSP+CREG_RSP<<8,0,op2,ip); + ICPop(tempi,TY_REG+IT_I64,r1,0,ip); + } +} + +U0 ICFCvt2(CLex *lx,CIntermediateCode *tempi,I64 r1,I64 t2,I64 r2,I64 d2,Bool to_int,I64 ip) +{ + I64 rsp_size=0,op1,op2; + if (to_int) { + op1=SLASH_OP_FLD; + op2=SLASH_OP_FISTTP; + } else { + op1=SLASH_OP_FILD; + op2=SLASH_OP_FSTP; + } + if (!(t2&IT_MASK>=IT_I64 && + (t2&TY_MASK==TY_DISP || + t2&TY_MASK==TY_RIP_DISP32 || + t2&TY_MASK==TY_SIB))) { + ICPush(tempi,t2,r2,d2,ip); + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + rsp_size=8; + } else { + rsp_size=8; + ICAddRSP(tempi,-8); + } + ICSlashOp(tempi,t2,r2,d2,op1,ip); + ICSlashOp(tempi,TY_SIB+IT_I64,CREG_RSP+CREG_RSP<<8,0,op2,ip); + ICPop(tempi,TY_REG+IT_I64,r1,0,ip); + lx->last_dont_pushable=lx->last_dont_popable=FALSE; //TODO: might improve this +} + +U0 ICFUnaryMinus(CLex *lx,CIntermediateCode *tempi,U8 *buf2,I64 ip) +{ + CICArg *p1=&tempi->p1; + I64 rsp_size=0,builtin1=0,t1,r1,d1; + Bool dont_push_float,dont_pop_float; + + if (lx->flags&LF_STATIC_COMPILE) + buf2=lx->a->ip; + + CmpSetFloatOpPushPop(lx,tempi,&dont_push_float,&dont_pop_float); + if (!dont_push_float) { + if (p1->type&IT_MASK>=IT_I64 && + (p1->type&TY_MASK==TY_DISP || + p1->type&TY_MASK==TY_RIP_DISP32 || + p1->type&TY_MASK==TY_SIB)) { + t1=p1->type; + r1=p1->reg; + d1=p1->disp; + } else { + if (p1->type&TY_MASK==TY_IMM) { + if (!(builtin1=ICBuiltInFloatConst(p1->disp(F64)))) { + t1=TY_RIP_DISP32+IT_I64; + r1=CREG_RIP; + d1=CBFloatConstFind(lx,p1->disp(F64))+buf2; + } + } else { + ICPush(tempi,p1->type,p1->reg,p1->disp,ip); + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=0; + rsp_size+=8; + } + } + if (builtin1) + ICU16(tempi,builtin1); + else + ICSlashOp(tempi,t1,r1,d1,SLASH_OP_FLD,ip); + } + if (!dont_pop_float && !rsp_size) { + rsp_size=8; + ICAddRSP(tempi,-8); + } + ICU16(tempi,0xE0D9); //FCHS + CmpNoteFloatOp(lx,tempi,TRUE,TRUE,CN_MAIN); + if (dont_pop_float) { + if (rsp_size) + ICAddRSP(tempi,rsp_size); + } else { + ICSlashOp(tempi,TY_SIB+IT_I64,CREG_RSP+CREG_RSP<<8,0,SLASH_OP_FSTP,ip); + ICPop(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,ip); + } +} + +U0 ICFMod(CLex *lx,CIntermediateCode *tempi,I64 ip) +{ //for MOD + Bool dont_push_float,dont_pop_float; + CmpSetFloatOpPushPop(lx,tempi,&dont_push_float,&dont_pop_float); + if (dont_push_float) { + if (tempi->ic_flags&ICF_ALTERNATE_TEMPLATE) + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + else + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else { + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + } + } + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN); //TODO: unpushable,unpop? Not sure + if (!dont_pop_float) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); +} + +U0 ICFPow(CLex *lx,CIntermediateCode *tempi,U8 *buf,I64 ip) +{ //for POW + I64 i; + CExeImportExport *tempe; + CHashExport *tempess=HashFind("SYS_POW",lx->hash_table_list,HTT_EXPORT_SYS_SYM); + + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + } + if (lx->flags&LF_STATIC_COMPILE) { + if (!tempess) { + tempess=CAlloc(sizeof(CHashExport)); + tempess->str=StrNew("SYS_POW"); + tempess->type=HTT_EXPORT_SYS_SYM|HTF_UNRESOLVED|HTF_IMPORT; + HashAdd(tempess,lx->glbl_hash_table); + } + if (tempess->type&HTF_IMPORT) { + if (GetOpt(OPTf_USE_LIT64)) { + ICU16(tempi,0xBB48); + ICU64(tempi,0); + if (buf) { + tempe=CAlloc(sizeof(CExeImportExport)); + tempe->type=EIE_LIT_U64; + tempe->ip=ip+tempi->ic_cnt-8; + tempe->next=tempess->list; + tempess->list=tempe; + } + ICU16(tempi,0xD3FF); + } else { + ICU8(tempi,0xE8); + ICU32(tempi,-(ip+tempi->ic_cnt+4)); + if (buf) { + tempe=CAlloc(sizeof(CExeImportExport)); + tempe->type=EIE_REL_U32; + tempe->ip=ip+tempi->ic_cnt-4; + tempe->next=tempess->list; + tempess->list=tempe; + } + } + } else { //OSMain + if (tempess->type&HTF_UNRESOLVED) + throw(EXCEPT_COMPILER,23); + else { + i=tempess->val-(ip+tempi->ic_cnt+5); + if (!(MIN_I32<=i<=MAX_I32)) { + throw(EXCEPT_COMPILER,23); +// ICU16(tempi,0xBB48); +// ICU64(tempi,tempess->val); +// ICU16(tempi,0xD3FF); + } else { + ICU8(tempi,0xE8); + ICU32(tempi,i); + } + } + } + } else { + i=tempess->val-(ip+tempi->ic_cnt+5); + if (!(MIN_I32<=i<=MAX_I32)) { + ICU16(tempi,0xBB48); + ICU64(tempi,tempess->val); + ICU16(tempi,0xD3FF); + } else { + ICU8(tempi,0xE8); + ICU32(tempi,i); + } + } + tempi->ic_flags&=~ICF_CODE_FINAL; + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); +} + +U0 ICFOp(CLex *lx,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) +{ //for ADD,SUB,DIV,MUL + CICArg *p1,*p2; + Bool dont_push_float,dont_pop_float,alt; + I64 rsp_size=0,builtin1=0,builtin2=0, + t1,r1,d1,t2,r2,d2; + + if (tempi->ic_flags&ICF_ALTERNATE_TEMPLATE) { + p1=&tempi->p2; + p2=&tempi->p1; + alt=TRUE; + } else { + p1=&tempi->p1; + p2=&tempi->p2; + alt=FALSE; + } + + if (lx->flags&LF_STATIC_COMPILE) + buf2=lx->a->ip; + + CmpSetFloatOpPushPop(lx,tempi,&dont_push_float,&dont_pop_float); + if (dont_push_float) { + if (p2->type&IT_MASK>=IT_I64 && + (p2->type&TY_MASK==TY_DISP || + p2->type&TY_MASK==TY_RIP_DISP32 || + p2->type&TY_MASK==TY_SIB)) { + t2=p2->type; + r2=p2->reg; + d2=p2->disp; + } else { + if (p2->type&TY_MASK==TY_IMM) { + if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64)))) { + t2=TY_RIP_DISP32+IT_I64; + r2=CREG_RIP; + d2=CBFloatConstFind(lx,p2->disp(F64))+buf2; + } + } else { + ICPush(tempi,p2->type,p2->reg,p2->disp,ip); + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + rsp_size+=8; + } + } + } else { + if (tempi->ic_flags & ICF_P1_FIRST^^alt) { + if (p2->type&TY_MASK!=TY_STK) { + if (p1->type&IT_MASK>=IT_I64 && + (p1->type&TY_MASK==TY_DISP || + p1->type&TY_MASK==TY_RIP_DISP32 || + p1->type&TY_MASK==TY_SIB)) { + t1=p1->type; + r1=p1->reg; + d1=p1->disp; + } else { + if (p1->type&TY_MASK==TY_IMM) { + if (!(builtin1=ICBuiltInFloatConst(p1->disp(F64)))) { + t1=TY_RIP_DISP32+IT_I64; + r1=CREG_RIP; + d1=CBFloatConstFind(lx,p1->disp(F64))+buf2; + } + } else { + ICPush(tempi,p1->type,p1->reg,p1->disp,ip); + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=0; + rsp_size+=8; + } + } + if (p2->type&IT_MASK>=IT_I64 && + (p2->type&TY_MASK==TY_DISP || + p2->type&TY_MASK==TY_RIP_DISP32 || + p2->type&TY_MASK==TY_SIB)) { + t2=p2->type; + r2=p2->reg; + d2=p2->disp; + } else { + if (p2->type&TY_MASK==TY_IMM) { + if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64)))) { + t2=TY_RIP_DISP32+IT_I64; + r2=CREG_RIP; + d2=CBFloatConstFind(lx,p2->disp(F64))+buf2; + } + } else { + ICPush(tempi,p2->type,p2->reg,p2->disp,ip); + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + rsp_size+=8; + if (r1==CREG_RSP+CREG_RSP<<8) + d1+=8; + } + } + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + p1->type,p1->reg,p1->disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + p2->type,p2->reg,p2->disp,ip); + ICU16(tempi,0x5052); //PUSH EDX PUSH EAX + rsp_size=16; + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=8; + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + } + } else { + if (p1->type&TY_MASK!=TY_STK) { + if (p2->type&IT_MASK>=IT_I64 && + (p2->type&TY_MASK==TY_DISP || + p2->type&TY_MASK==TY_RIP_DISP32 || + p2->type&TY_MASK==TY_SIB)) { + t2=p2->type; + r2=p2->reg; + d2=p2->disp; + } else { + if (p2->type&TY_MASK==TY_IMM) { + if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64)))) { + t2=TY_RIP_DISP32+IT_I64; + r2=CREG_RIP; + d2=CBFloatConstFind(lx,p2->disp(F64))+buf2; + } + } else { + ICPush(tempi,p2->type,p2->reg,p2->disp,ip); + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + rsp_size+=8; + } + } + if (p1->type&IT_MASK>=IT_I64 && + (p1->type&TY_MASK==TY_DISP || + p1->type&TY_MASK==TY_RIP_DISP32 || + p1->type&TY_MASK==TY_SIB)) { + t1=p1->type; + r1=p1->reg; + d1=p1->disp; + } else { + if (p1->type&TY_MASK==TY_IMM) { + if (!(builtin1=ICBuiltInFloatConst(p1->disp(F64)))) { + t1=TY_RIP_DISP32+IT_I64; + r1=CREG_RIP; + d1=CBFloatConstFind(lx,p1->disp(F64))+buf2; + } + } else { + ICPush(tempi,p1->type,p1->reg,p1->disp,ip); + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=0; + rsp_size+=8; + if (r2==CREG_RSP+CREG_RSP<<8) + d2+=8; + } + } + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + p2->type,p2->reg,p2->disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + p1->type,p1->reg,p1->disp,ip); + ICU16(tempi,0x5052); //PUSH EDX PUSH EAX + rsp_size=16; + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=8; + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + } + } + } + if (!dont_pop_float && !rsp_size) { + rsp_size=8; + ICAddRSP(tempi,-8); + } + if (!dont_push_float) { + if (builtin2 && !builtin1) { + alt=!alt; + SwapU64(&t1,&t2); + SwapU64(&r1,&r2); + SwapU64(&d1,&d2); + SwapU64(&builtin1,&builtin2); + } + if (builtin1) + ICU16(tempi,builtin1); + else + ICSlashOp(tempi,t1,r1,d1,SLASH_OP_FLD,ip); + } + if (alt) + switch (op.u8[0]) { + case 4: //FSUB + op=SLASH_OP_FSUBR; + break; + case 6: //FDIV + op=SLASH_OP_FDIVR; + break; + } + if (builtin2) { + ICU16(tempi,builtin2); + ICU16(tempi,op.u16[2]); + } else + ICSlashOp(tempi,t2,r2,d2,op,ip); + CmpNoteFloatOp(lx,tempi,TRUE,TRUE,CN_MAIN); + if (dont_pop_float) { + if (rsp_size) + ICAddRSP(tempi,rsp_size); + } else { + if (rsp_size==8) + ICSlashOp(tempi,TY_SIB+IT_I64,CREG_RSP+CREG_RSP<<8,0,SLASH_OP_FSTP,ip); + else if (rsp_size>8) { + ICSlashOp(tempi,TY_SIB+IT_I64,CREG_RSP+CREG_RSP<<8,rsp_size-8,SLASH_OP_FSTP,ip); + ICAddRSP(tempi,rsp_size-8); + } + ICPop(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,ip); + } +} + +U0 ICFCmp(CLex *lx,CIntermediateCode *tempi,I64 op,I64 ip) +{ + Bool dont_push_float,dont_pop_float; + CmpSetFloatOpPushPop(lx,tempi,&dont_push_float,&dont_pop_float); + if (dont_push_float) { + if (tempi->ic_flags&ICF_ALTERNATE_TEMPLATE) { + if (tempi->ic_flags&ICF_POP_CMP) + ICPopRegs(tempi,1<p1.type,tempi->p1.reg,tempi->p1.disp,ip); + } else + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else { + if (tempi->ic_flags & ICF_P1_FIRST) { + if (tempi->ic_flags&ICF_POP_CMP) + ICPopRegs(tempi,1<p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + if (tempi->ic_flags&ICF_POP_CMP) + ICPopRegs(tempi,1<p1.type,tempi->p1.reg,tempi->p1.disp,ip); + } + } + if (tempi->ic_flags&ICF_PUSH_CMP) + ICPushRegs(tempi,1<r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); +} + +U0 ICFModEqual(CLex *lx,CIntermediateCode *tempi,I64 ip) +{ + Bool dont_push_float,dont_pop_float; + CmpSetFloatOpPushPop(lx,tempi,&dont_push_float,&dont_pop_float); + if (tempi->ic_flags & ICF_NOT_ADDR) { + if (dont_push_float) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); + if (tempi->p1.ptype!=IT_F64) + ICFCvt2(lx,tempi,CREG_RAX,TY_REG+IT_I64,CREG_RAX,0,FALSE,ip); + } else if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); + if (tempi->p1.ptype!=IT_F64) + ICFCvt2(lx,tempi,CREG_RDX,TY_REG+IT_I64,CREG_RDX,0,FALSE,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); + if (tempi->p1.ptype!=IT_F64) + ICFCvt2(lx,tempi,CREG_RDX,TY_REG+IT_I64,CREG_RDX,0,FALSE,ip); + } + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN); //TODO: unpushable,unpop? Not sure + if (tempi->p1.ptype!=IT_F64) + ICFCvt2(lx,tempi,CREG_RAX,TY_REG+IT_I64,CREG_RAX,0,TRUE,ip); + ICMov(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + if (tempi->r.type&TY_MASK) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); + } else { + if (dont_push_float) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + TY_DISP+tempi->p1.ptype,CREG_RCX,0,ip); + if (tempi->p1.ptype!=IT_F64) + ICFCvt2(lx,tempi,CREG_RAX,TY_REG+IT_I64,CREG_RAX,0,FALSE,ip); + } else if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + TY_DISP+tempi->p1.ptype,CREG_RCX,0,ip); + if (tempi->p1.ptype!=IT_F64) + ICFCvt2(lx,tempi,CREG_RDX,TY_REG+IT_I64,CREG_RDX,0,FALSE,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + TY_DISP+tempi->p1.ptype,CREG_RCX,0,ip); + if (tempi->p1.ptype!=IT_F64) + ICFCvt2(lx,tempi,CREG_RDX,TY_REG+IT_I64,CREG_RDX,0,FALSE,ip); + } + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN); //TODO: unpushable,unpop? Not sure + if (tempi->p1.ptype!=IT_F64) + ICFCvt2(lx,tempi,CREG_RAX,TY_REG+IT_I64,CREG_RAX,0,TRUE,ip); + ICMov(tempi,TY_DISP+tempi->p1.ptype,CREG_RCX,0,TY_REG+IT_I64,CREG_RAX,0,ip); + if (tempi->r.type&TY_MASK) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + } +} + +U0 ICFOpEqual(CLex *lx,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) +{ //for ADD,SUB,DIV,MUL + CICArg *p1=&tempi->p1, + *p2=&tempi->p2; + Bool dont_push_float,dont_pop_float,p1_mem; + I64 rsp_size=0,builtin2=0, + t1,r1,d1,t2,r2,d2; + + if (lx->flags&LF_STATIC_COMPILE) + buf2=lx->a->ip; + + CmpSetFloatOpPushPop(lx,tempi,&dont_push_float,&dont_pop_float); + if (dont_pop_float) + throw(EXCEPT_COMPILER,24); + + if (tempi->ic_flags & ICF_NOT_ADDR) { + p1_mem=FALSE; + if (dont_push_float) { + if (p1->ptype!=IT_F64) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + p1->type&TY_MASK+p1->ptype,p1->reg,p1->disp,ip); + ICFCvt2(lx,tempi,CREG_RAX,TY_REG+IT_I64,CREG_RAX,0,FALSE,ip); + ICPush(tempi,TY_REG+IT_I64,CREG_RAX,0,ip); + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=0; + rsp_size+=8; + } else { + if (p1->ptype>=IT_I64 && + (p1->type&TY_MASK==TY_DISP || + p1->type&TY_MASK==TY_RIP_DISP32 || + p1->type&TY_MASK==TY_SIB)) { + t1=p1->ptype+p1->type&TY_MASK; + r1=p1->reg; + d1=p1->disp; + p1_mem=TRUE; + } else { + ICPush(tempi,p1->ptype+p1->type&TY_MASK,p1->reg,p1->disp,ip); + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=0; + rsp_size+=8; + } + } + } else if (tempi->ic_flags & ICF_P1_FIRST) { + if (p1->ptype!=IT_F64 || p2->type&TY_MASK==TY_STK) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + p1->type&TY_MASK+p1->ptype,p1->reg,p1->disp,ip); + if (p1->ptype!=IT_F64) + ICFCvt2(lx,tempi,CREG_RDX,TY_REG+IT_I64,CREG_RDX,0,FALSE,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + p2->type,p2->reg,p2->disp,ip); + + ICU16(tempi,0x5052); //PUSH EDX PUSH EAX + rsp_size=16; + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=8; + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + } else { + if (p1->ptype>=IT_I64 && + (p1->type&TY_MASK==TY_DISP || + p1->type&TY_MASK==TY_RIP_DISP32 || + p1->type&TY_MASK==TY_SIB)) { + t1=p1->ptype+p1->type&TY_MASK; + r1=p1->reg; + d1=p1->disp; + p1_mem=TRUE; + } else { + ICPush(tempi,p1->ptype+p1->type&TY_MASK,p1->reg,p1->disp,ip); + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=0; + rsp_size+=8; + } + if (p2->type&IT_MASK>=IT_I64 && + (p2->type&TY_MASK==TY_DISP || + p2->type&TY_MASK==TY_RIP_DISP32 || + p2->type&TY_MASK==TY_SIB)) { + t2=p2->type; + r2=p2->reg; + d2=p2->disp; + } else { + if (p2->type&TY_MASK==TY_IMM) { + if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64)))) { + t2=TY_RIP_DISP32+IT_I64; + r2=CREG_RIP; + d2=CBFloatConstFind(lx,p2->disp(F64))+buf2; + } + } else { + ICPush(tempi,p2->type,p2->reg,p2->disp,ip); + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + rsp_size+=8; + if (r1==CREG_RSP+CREG_RSP<<8) + d1+=8; + } + } + } + } else { + if (p1->ptype!=IT_F64 || p1->type&TY_MASK==TY_STK) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + p2->type,p2->reg,p2->disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + p1->type&TY_MASK+p1->ptype,p1->reg,p1->disp,ip); + if (p1->ptype!=IT_F64) + ICFCvt2(lx,tempi,CREG_RDX,TY_REG+IT_I64,CREG_RDX,0,FALSE,ip); + ICU16(tempi,0x5052); //PUSH EDX PUSH EAX + rsp_size=16; + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=8; + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + } else { + if (p2->type&IT_MASK>=IT_I64 && + (p2->type&TY_MASK==TY_DISP || + p2->type&TY_MASK==TY_RIP_DISP32 || + p2->type&TY_MASK==TY_SIB)) { + t2=p2->type; + r2=p2->reg; + d2=p2->disp; + } else { + if (p2->type&TY_MASK==TY_IMM) { + if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64)))) { + t2=TY_RIP_DISP32+IT_I64; + r2=CREG_RIP; + d2=CBFloatConstFind(lx,p2->disp(F64))+buf2; + } + } else { + ICPush(tempi,p2->type,p2->reg,p2->disp,ip); + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + rsp_size+=8; + } + } + if (p1->ptype>=IT_I64 && + (p1->type&TY_MASK==TY_DISP || + p1->type&TY_MASK==TY_RIP_DISP32 || + p1->type&TY_MASK==TY_SIB)) { + t1=p1->ptype+p1->type&TY_MASK; + r1=p1->reg; + d1=p1->disp; + p1_mem=TRUE; + } else { + ICPush(tempi,p1->ptype+p1->type&TY_MASK,p1->reg,p1->disp,ip); + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=0; + rsp_size+=8; + if (r2==CREG_RSP+CREG_RSP<<8) + d2+=8; + } + } + } + if (!rsp_size && !(p1_mem && p1->ptype==IT_F64)) { + rsp_size=8; + ICAddRSP(tempi,-8); + } + if (!dont_push_float) { + if (builtin2) + ICU16(tempi,builtin2); + else + ICSlashOp(tempi,t2,r2,d2,SLASH_OP_FLD,ip); + } + switch (op.u8[0]) { + case 4: //FSUB + op=SLASH_OP_FSUBR; + break; + case 6: //FDIV + op=SLASH_OP_FDIVR; + break; + } + ICSlashOp(tempi,t1,r1,d1,op,ip); + CmpNoteFloatOp(lx,tempi,TRUE,FALSE,CN_MAIN); + if (p1_mem && p1->ptype==IT_F64) { + ICSlashOp(tempi,t1,r1,d1,SLASH_OP_FSTP,ip); + if (rsp_size) + ICAddRSP(tempi,rsp_size); + } else { + if (rsp_size==8) + ICSlashOp(tempi,TY_SIB+IT_I64,CREG_RSP+CREG_RSP<<8,0,SLASH_OP_FSTP,ip); + else if (rsp_size>8) { + ICSlashOp(tempi,TY_SIB+IT_I64,CREG_RSP+CREG_RSP<<8,rsp_size-8,SLASH_OP_FSTP,ip); + ICAddRSP(tempi,rsp_size-8); + } + if (p1->ptype!=IT_F64) { + ICPop(tempi,TY_REG+IT_I64,CREG_RAX,0,ip); + ICFCvt2(lx,tempi,CREG_RAX,TY_REG+IT_I64,CREG_RAX,0,TRUE,ip); + ICMov(tempi,p1->type&TY_MASK+p1->ptype,p1->reg,p1->disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + } else + ICPop(tempi,p1->ptype+p1->type&TY_MASK,p1->reg,p1->disp,ip); + } + if (tempi->r.type&TY_MASK) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + p1->type&TY_MASK+p1->ptype,p1->reg,p1->disp,ip); + } else { + if (p1->ptype>=IT_I64) + p1_mem=TRUE; + else + p1_mem=FALSE; + if (dont_push_float) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,p1->type,p1->reg,p1->disp,ip); + if (p1->ptype!=IT_F64) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + TY_DISP+p1->ptype,CREG_RCX,0,ip); + ICFCvt2(lx,tempi,CREG_RAX,TY_REG+IT_I64,CREG_RAX,0,FALSE,ip); + ICPush(tempi,TY_REG+IT_I64,CREG_RAX,0,ip); + } else + ICPush(tempi,p1->ptype+TY_DISP,CREG_RCX,0,ip); + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=0; + rsp_size+=8; + } else if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,p1->type,p1->reg,p1->disp,ip); + if (p1->ptype!=IT_F64 || p2->type&TY_MASK==TY_STK) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + TY_DISP+p1->ptype,CREG_RCX,0,ip); + if (p1->ptype!=IT_F64) + ICFCvt2(lx,tempi,CREG_RDX,TY_REG+IT_I64,CREG_RDX,0,FALSE,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + p2->type,p2->reg,p2->disp,ip); + + ICU16(tempi,0x5052); //PUSH EDX PUSH EAX + rsp_size=16; + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=8; + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + } else { + ICPush(tempi,TY_DISP+p1->ptype,CREG_RCX,0,ip); + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=0; + rsp_size+=8; + if (p2->type&IT_MASK>=IT_I64 && + (p2->type&TY_MASK==TY_DISP || + p2->type&TY_MASK==TY_RIP_DISP32 || + p2->type&TY_MASK==TY_SIB)) { + t2=p2->type; + r2=p2->reg; + d2=p2->disp; + } else { + if (p2->type&TY_MASK==TY_IMM) { + if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64)))) { + t2=TY_RIP_DISP32+IT_I64; + r2=CREG_RIP; + d2=CBFloatConstFind(lx,p2->disp(F64))+buf2; + } + } else { + ICPush(tempi,p2->type,p2->reg,p2->disp,ip); + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + rsp_size+=8; + if (r1==CREG_RSP+CREG_RSP<<8) + d1+=8; + } + } + } + } else { + if (p1->ptype!=IT_F64 || p1->type&TY_MASK==TY_STK) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + p2->type,p2->reg,p2->disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,p1->type,p1->reg,p1->disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + TY_DISP+p1->ptype,CREG_RCX,0,ip); + if (p1->ptype!=IT_F64) + ICFCvt2(lx,tempi,CREG_RDX,TY_REG+IT_I64,CREG_RDX,0,FALSE,ip); + ICU16(tempi,0x5052); //PUSH EDX PUSH EAX + rsp_size=16; + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=8; + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + } else { + if (p2->type&IT_MASK>=IT_I64 && + (p2->type&TY_MASK==TY_DISP || + p2->type&TY_MASK==TY_RIP_DISP32 || + p2->type&TY_MASK==TY_SIB)) { + t2=p2->type; + r2=p2->reg; + d2=p2->disp; + } else { + if (p2->type&TY_MASK==TY_IMM) { + if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64)))) { + t2=TY_RIP_DISP32+IT_I64; + r2=CREG_RIP; + d2=CBFloatConstFind(lx,p2->disp(F64))+buf2; + } + } else { + ICPush(tempi,p2->type,p2->reg,p2->disp,ip); + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + rsp_size+=8; + } + } + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,p1->type,p1->reg,p1->disp,ip); + ICPush(tempi,TY_DISP+p1->ptype,CREG_RCX,0,ip); + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=0; + rsp_size+=8; + if (r2==CREG_RSP+CREG_RSP<<8) + d2+=8; + } + } + if (!rsp_size && !(p1_mem && p1->ptype==IT_F64)) { + rsp_size=8; + ICAddRSP(tempi,-8); + } + if (!dont_push_float) { + if (builtin2) + ICU16(tempi,builtin2); + else + ICSlashOp(tempi,t2,r2,d2,SLASH_OP_FLD,ip); + } + + switch (op.u8[0]) { + case 4: //FSUB + op=SLASH_OP_FSUBR; + break; + case 6: //FDIV + op=SLASH_OP_FDIVR; + break; + } + ICSlashOp(tempi,t1,r1,d1,op,ip); + CmpNoteFloatOp(lx,tempi,TRUE,FALSE,CN_MAIN); + if (p1_mem && p1->ptype==IT_F64) { + ICSlashOp(tempi,TY_DISP+p1->ptype,CREG_RCX,0,SLASH_OP_FSTP,ip); + if (rsp_size) + ICAddRSP(tempi,rsp_size); + } else { + if (rsp_size==8) + ICSlashOp(tempi,TY_SIB+IT_I64,CREG_RSP+CREG_RSP<<8,0,SLASH_OP_FSTP,ip); + else if (rsp_size>8) { + ICSlashOp(tempi,TY_SIB+IT_I64,CREG_RSP+CREG_RSP<<8,rsp_size-8,SLASH_OP_FSTP,ip); + ICAddRSP(tempi,rsp_size-8); + } + ICPop(tempi,TY_REG+IT_I64,CREG_RAX,0,ip); + if (p1->ptype!=IT_F64) + ICFCvt2(lx,tempi,CREG_RAX,TY_REG+IT_I64,CREG_RAX,0,TRUE,ip); + ICMov(tempi,TY_DISP+p1->ptype,CREG_RCX,0,TY_REG+IT_I64,CREG_RAX,0,ip); + } + if (tempi->r.type&TY_MASK) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + } +} + +U0 ICFCmpAndBranch(CLex *lx,CIntermediateCode *tempi,I64 ip, + I64 us,I64 not_us,U8 *buf,I64 ip2) +{ + CICArg *p1,*p2; + Bool dont_push_float,dont_pop_float,alt,short_jmp=FALSE; + I64 i,rsp_size=0,builtin1=0,builtin2=0, + t1,r1,d1,t2,r2,d2; + CCodeBlkMisc *lb,*lb1; + U8 *buf2; + + if (tempi->ic_flags&ICF_ALTERNATE_TEMPLATE) { + p1=&tempi->p2; + p2=&tempi->p1; + alt=TRUE; + } else { + p1=&tempi->p1; + p2=&tempi->p2; + alt=FALSE; + } + + if (lx->flags&LF_STATIC_COMPILE) + buf2=lx->a->ip; + else + buf2=buf; + + CmpSetFloatOpPushPop(lx,tempi,&dont_push_float,&dont_pop_float); + if (dont_push_float) { + if (tempi->ic_flags&ICF_POP_CMP && alt) { + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + rsp_size+=8; + } else { + if (p2->type&IT_MASK>=IT_I64 && + (p2->type&TY_MASK==TY_DISP || + p2->type&TY_MASK==TY_RIP_DISP32 || + p2->type&TY_MASK==TY_SIB)) { + t2=p2->type; + r2=p2->reg; + d2=p2->disp; + } else { + if (p2->type&TY_MASK==TY_IMM) { + if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64))) || + tempi->ic_flags&ICF_PUSH_CMP) { + t2=TY_RIP_DISP32+IT_I64; + r2=CREG_RIP; + d2=CBFloatConstFind(lx,p2->disp(F64))+buf2; + } + } else { + ICPush(tempi,p2->type,p2->reg,p2->disp,ip2); + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + rsp_size+=8; + } + } + } + } else { + if (tempi->ic_flags & ICF_P1_FIRST^^alt) { + if (p2->type&TY_MASK!=TY_STK) { + if (tempi->ic_flags&ICF_POP_CMP) { + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=0; + rsp_size+=8; + } else { + if (p1->type&IT_MASK>=IT_I64 && + (p1->type&TY_MASK==TY_DISP || + p1->type&TY_MASK==TY_RIP_DISP32 || + p1->type&TY_MASK==TY_SIB)) { + t1=p1->type; + r1=p1->reg; + d1=p1->disp; + } else { + if (p1->type&TY_MASK==TY_IMM) { + if (!(builtin1=ICBuiltInFloatConst(p1->disp(F64)))) { + t1=TY_RIP_DISP32+IT_I64; + r1=CREG_RIP; + d1=CBFloatConstFind(lx,p1->disp(F64))+buf2; + } + } else { + ICPush(tempi,p1->type,p1->reg,p1->disp,ip2); + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=0; + rsp_size+=8; + } + } + } + if (p2->type&IT_MASK>=IT_I64 && + (p2->type&TY_MASK==TY_DISP || + p2->type&TY_MASK==TY_RIP_DISP32 || + p2->type&TY_MASK==TY_SIB)) { + t2=p2->type; + r2=p2->reg; + d2=p2->disp; + } else { + if (p2->type&TY_MASK==TY_IMM) { + if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64))) || + tempi->ic_flags&ICF_PUSH_CMP) { + t2=TY_RIP_DISP32+IT_I64; + r2=CREG_RIP; + d2=CBFloatConstFind(lx,p2->disp(F64))+buf2; + } + } else { + ICPush(tempi,p2->type,p2->reg,p2->disp,ip2); + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + rsp_size+=8; + if (r1==CREG_RSP+CREG_RSP<<8) + d1+=8; + } + } + } else { + if (tempi->ic_flags&ICF_POP_CMP) + ICPopRegs(tempi,1<type,p1->reg,p1->disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + p2->type,p2->reg,p2->disp,ip2); + ICU16(tempi,0x5052); //PUSH EDX PUSH EAX + rsp_size=16; + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=8; + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + } + } else { + if (p1->type&TY_MASK!=TY_STK) { + if (p2->type&IT_MASK>=IT_I64 && + (p2->type&TY_MASK==TY_DISP || + p2->type&TY_MASK==TY_RIP_DISP32 || + p2->type&TY_MASK==TY_SIB)) { + t2=p2->type; + r2=p2->reg; + d2=p2->disp; + } else { + if (p2->type&TY_MASK==TY_IMM) { + if (!(builtin2=ICBuiltInFloatConst(p2->disp(F64))) || + tempi->ic_flags&ICF_PUSH_CMP) { + t2=TY_RIP_DISP32+IT_I64; + r2=CREG_RIP; + d2=CBFloatConstFind(lx,p2->disp(F64))+buf2; + } + } else { + ICPush(tempi,p2->type,p2->reg,p2->disp,ip2); + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + rsp_size+=8; + } + } + if (tempi->ic_flags&ICF_POP_CMP) { + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=0; + rsp_size+=8; + if (r2==CREG_RSP+CREG_RSP<<8) + d2+=8; + } else { + if (p1->type&IT_MASK>=IT_I64 && + (p1->type&TY_MASK==TY_DISP || + p1->type&TY_MASK==TY_RIP_DISP32 || + p1->type&TY_MASK==TY_SIB)) { + t1=p1->type; + r1=p1->reg; + d1=p1->disp; + } else { + if (p1->type&TY_MASK==TY_IMM) { + if (!(builtin1=ICBuiltInFloatConst(p1->disp(F64)))) { + t1=TY_RIP_DISP32+IT_I64; + r1=CREG_RIP; + d1=CBFloatConstFind(lx,p1->disp(F64))+buf2; + } + } else { + ICPush(tempi,p1->type,p1->reg,p1->disp,ip2); + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=0; + rsp_size+=8; + if (r2==CREG_RSP+CREG_RSP<<8) + d2+=8; + } + } + } + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + p2->type,p2->reg,p2->disp,ip2); + if (tempi->ic_flags&ICF_POP_CMP) + ICPopRegs(tempi,1<type,p1->reg,p1->disp,ip2); + ICU16(tempi,0x5052); //PUSH EDX PUSH EAX + rsp_size=16; + t1=TY_SIB+IT_I64; r1=CREG_RSP+CREG_RSP<<8; d1=8; + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + } + } + } + if (!dont_push_float) { + if (builtin1) + ICU16(tempi,builtin1); + else + ICSlashOp(tempi,t1,r1,d1,SLASH_OP_FLD,ip2); + } + if (!alt) + us=not_us; + if (builtin2) + ICU16(tempi,builtin2); + else + ICSlashOp(tempi,t2,r2,d2,SLASH_OP_FLD,ip2); + if (tempi->ic_flags&ICF_PUSH_CMP) { + t2=TY_SIB+IT_I64; r2=CREG_RSP+CREG_RSP<<8; d2=0; + if (!rsp_size) { + rsp_size=8; + ICAddRSP(tempi,-8); + } else if (rsp_size==16) + d2=8; + } + if (tempi->ic_flags&ICF_PUSH_CMP) { + if (alt) { + ICU16(tempi,0xF1DF); //FCOMIP + ICSlashOp(tempi,t2,r2,d2,SLASH_OP_FSTP,ip2); + } else { + ICU16(tempi,0xF1DB); //FCOMI + ICSlashOp(tempi,t2,r2,d2,SLASH_OP_FSTP,ip2); + ICU32(tempi,0xF7D9C0DD); //FFREE,FINCSTP + } + } else { + ICU16(tempi,0xF1DF); //FCOMIP + ICU32(tempi,0xF7D9C0DD); //FFREE,FINCSTP + } + CmpNoteFloatOp(lx,tempi,TRUE,FALSE,CN_MAIN); + + if (tempi->ic_flags&ICF_PUSH_CMP) { + if (r2.u8[0]==CREG_RSP) { + while (d2 && rsp_size) { + ICU8(tempi,0x5B); //POP RBX (Dont change flags) + rsp_size-=8; + d2-=8; + } + } else { + while (rsp_size) { + ICU8(tempi,0x5B); //POP RBX (Dont change flags) + rsp_size-=8; + } + ICPush(tempi,t2,r2,d2,ip2); + } + } else { + while (rsp_size) { + ICU8(tempi,0x5B); //POP RBX (Dont change flags) + rsp_size-=8; + } + } + + ip+=tempi->ic_cnt; + lb=tempi->ic_data; + while (lb1=lb->fwd) + lb=lb1; + if (lb->addr!=INVALID_PTR) { + i=lb->addr-ip; + if (lb->flags&CBMF_POP_CMP) + if(tempi->ic_flags&ICF_PUSH_CMP) + i+=4; + else + i+=8; + if (MIN_I8+2ic_flags&ICF_SHORT_JMP); + + if (short_jmp) { + tempi->ic_flags|=ICF_SHORT_JMP; + i=lb->addr-(ip+2); + if (lb->flags&CBMF_POP_CMP) + if(tempi->ic_flags&ICF_PUSH_CMP) + i+=4; + else + i+=8; + ICU16(tempi,i<<8+us.u8[2]); + } else { + tempi->ic_flags&=~ICF_SHORT_JMP; + i=lb->addr-(ip+6); + if (lb->flags&CBMF_POP_CMP) + if(tempi->ic_flags&ICF_PUSH_CMP) + i+=4; + else + i+=8; + ICU16(tempi,us.u16[0]); + ICU32(tempi,i); + } +} + +U0 ICFPreIncDec(CLex *lx,CIntermediateCode *tempi,I64 op,I64 ip) +{ + if (tempi->ic_flags & ICF_NOT_ADDR) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type&TY_MASK+IT_I64,tempi->p1.reg,tempi->p1.disp,ip); + ICCopyTemplate(lx,tempi,op,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + TY_DISP+IT_I64,CREG_RCX,0,ip); + ICCopyTemplate(lx,tempi,op,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tempi,TY_DISP+IT_I64,CREG_RCX,0, + TY_REG+IT_I64,CREG_RAX,0,ip); + } + if (tempi->r.type&TY_MASK) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); +} + +U0 ICFPostIncDec(CLex *lx,CIntermediateCode *tempi,I64 op,I64 ip) +{ + if (tempi->ic_flags & ICF_NOT_ADDR) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type&TY_MASK+IT_I64,tempi->p1.reg,tempi->p1.disp,ip); + if (tempi->r.type&TY_MASK) + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + TY_REG+IT_I64,CREG_RAX,0,ip); + ICCopyTemplate(lx,tempi,op,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + TY_DISP+IT_I64,CREG_RCX,0,ip); + if (tempi->r.type&TY_MASK) + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + TY_REG+IT_I64,CREG_RAX,0,ip); + ICCopyTemplate(lx,tempi,op,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tempi,TY_DISP+IT_I64,CREG_RCX,0, + TY_REG+IT_I64,CREG_RAX,0,ip); + } + if (tempi->r.type&TY_MASK) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RDX,0,ip); +} + +U0 ICMul(CIntermediateCode *tempi,I64 ip) +{ + I64 i,r2,r=CREG_RAX,j; + CICArg *p1,*p2; + if (tempi->p1.type&TY_MASK==TY_IMM) { + p1=&tempi->p2; + p2=&tempi->p1; + tempi->ic_flags|=ICF_P1_FIRST; + } else { + p1=&tempi->p1; + p2=&tempi->p2; + } + i=p2->disp; + if (!(tempi->ic_class->sub_type&1) && + p2->type&TY_MASK==TY_IMM && MIN_I32<=i<=MAX_I32) { + if (tempi->r.type==TY_REG+IT_I64) { + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,p1->type,p1->reg,p1->disp,ip); + r=tempi->r.reg; + } else + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,p1->type,p1->reg,p1->disp,ip); + if (r>7) + j=0xC0004D; + else + j=0xC00048; + if (MIN_I8<=i<=MAX_I8) + ICU32(tempi,i<<24+0x6B00+j+(r&7)<<16+(r&7)<<19); + else { + ICU24(tempi,0x6900+j+(r&7)<<16+(r&7)<<19); + ICU32(tempi,i); + } + } else { + if (tempi->ic_class->sub_type&1) + i=0xE0F748; + else + i=0xE8F748; + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,p1->type,p1->reg,p1->disp,ip); + r2=CREG_RCX; + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,p2->type,p2->reg,p2->disp,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,p2->type,p2->reg,p2->disp,ip); + if (p1->type&TY_MASK!=TY_REG || + p1->type&IT_MASKtype,p1->reg,p1->disp,ip); + r2=CREG_RCX; + } else + r2=p1->reg; + } + if (r2>7) { + i++; + r2&=7; + } + ICU24(tempi,i+r2<<16); + } + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I64,r,0,ip); +} + + +U0 ICFMul(CLex *lx,CIntermediateCode *tempi,U8 *buf,I64 ip) +{ + Bool dont_push_float,dont_pop_float; + CmpSetFloatOpPushPop(lx,tempi,&dont_push_float,&dont_pop_float); + if (tempi->p1.type&TY_MASK==TY_IMM && + tempi->p1.ptype&IT_MASK==IT_F64 && + tempi->p1.disp(F64)==1.0) { + if (dont_push_float) { + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_FSTP,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + } else if (dont_pop_float) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_FLD,FALSE,TRUE,TRUE,CN_MAIN); + } else { + CmpNoteFloatOp(lx,tempi,TRUE,TRUE,CN_MAIN); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } + } else if (tempi->p2.type&TY_MASK==TY_IMM && + tempi->p2.ptype&IT_MASK==IT_F64 && + tempi->p2.disp(F64)==1.0) { + if (dont_push_float) { + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_FSTP,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + } else if (dont_pop_float) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_FLD,FALSE,TRUE,TRUE,CN_MAIN); + } else { + CmpNoteFloatOp(lx,tempi,TRUE,TRUE,CN_MAIN); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + } + } else + ICFOp(lx,tempi,SLASH_OP_FMUL,buf,ip); +} + +U0 ICFDiv(CLex *lx,CIntermediateCode *tempi,U8 *buf,I64 ip) +{ + Bool dont_push_float,dont_pop_float; + if (tempi->p2.type&TY_MASK==TY_IMM && + tempi->p2.ptype&IT_MASK==IT_F64 && + tempi->p2.disp(F64)==1.0) { + CmpSetFloatOpPushPop(lx,tempi,&dont_push_float,&dont_pop_float); + if (dont_push_float) { + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_FSTP,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + } else if (dont_pop_float) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_FLD,FALSE,TRUE,TRUE,CN_MAIN); + } else { + CmpNoteFloatOp(lx,tempi,TRUE,TRUE,CN_MAIN); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + } + } else + ICFOp(lx,tempi,SLASH_OP_FDIV,buf,ip); +} + +U0 ICFAdd(CLex *lx,CIntermediateCode *tempi,U8 *buf,I64 ip) +{ + Bool dont_push_float,dont_pop_float; + CmpSetFloatOpPushPop(lx,tempi,&dont_push_float,&dont_pop_float); + if (tempi->p1.type&TY_MASK==TY_IMM && + !tempi->p1.disp) { + if (dont_push_float) { + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_FSTP,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + } else if (dont_pop_float) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_FLD,FALSE,TRUE,TRUE,CN_MAIN); + } else { + CmpNoteFloatOp(lx,tempi,TRUE,TRUE,CN_MAIN); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } + } else if (tempi->p2.type&TY_MASK==TY_IMM && + !tempi->p2.disp) { + if (dont_push_float) { + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_FSTP,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + } else if (dont_pop_float) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_FLD,FALSE,TRUE,TRUE,CN_MAIN); + } else { + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + CmpNoteFloatOp(lx,tempi,TRUE,TRUE,CN_MAIN); + } + } else + ICFOp(lx,tempi,SLASH_OP_FADD,buf,ip); +} + +U0 ICFSub(CLex *lx,CIntermediateCode *tempi,U8 *buf,I64 ip) +{ + Bool dont_push_float,dont_pop_float; + if (tempi->p2.type&TY_MASK==TY_IMM && + !tempi->p2.disp) { + CmpSetFloatOpPushPop(lx,tempi,&dont_push_float,&dont_pop_float); + if (dont_push_float) { + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_FSTP,FALSE,TRUE,TRUE,CN_MAIN); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + } else if (dont_pop_float) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_FLD,FALSE,TRUE,TRUE,CN_MAIN); + } else { + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + CmpNoteFloatOp(lx,tempi,TRUE,TRUE,CN_MAIN); + } + } else + ICFOp(lx,tempi,SLASH_OP_FSUB,buf,ip); +} + +U0 ICMulEqual(CIntermediateCode *tempi,I64 ip) +{ + I64 i=tempi->p2.disp,r=CREG_RAX,j; + if (!(tempi->ic_class->sub_type&1) && + tempi->p2.type&TY_MASK==TY_IMM && MIN_I32<=i<=MAX_I32) { + if (tempi->ic_flags & ICF_NOT_ADDR) { + if (tempi->p1.type==TY_REG+IT_I64) + r=tempi->p1.reg; + else + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); + if (r>7) + j=0xC0004D; + else + j=0xC00048; + if (MIN_I8<=i<=MAX_I8) + ICU32(tempi,i<<24+0x6B00+j+(r&7)<<16+(r&7)<<19); + else { + ICU24(tempi,0x6900+j+(r&7)<<16+(r&7)<<19); + ICU32(tempi,i); + } + ICMov(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, + TY_REG+IT_I64,r,0,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RBX,0,TY_DISP+tempi->p1.ptype,CREG_RCX,0,ip); + r=CREG_RBX; + if (MIN_I8<=i<=MAX_I8) + ICU32(tempi,i<<24+0xDB6B48); + else { + ICU24(tempi,0xDB6948); + ICU32(tempi,i); + } + ICMov(tempi,TY_DISP+tempi->p1.ptype,CREG_RCX,0,TY_REG+IT_I64,CREG_RBX,0,ip); + } + } else { + if (tempi->ic_class->sub_type&1) + i=0xE3F748; + else + i=0xEBF748; + if (tempi->ic_flags & ICF_NOT_ADDR) { + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RBX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RBX,0,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); + } + ICU24(tempi,i); + ICMov(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + } else { + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + } + ICMov(tempi,TY_REG+IT_I64,CREG_RBX,0,TY_DISP+tempi->p1.ptype,CREG_RCX,0,ip); + ICU24(tempi,i); + ICMov(tempi,TY_DISP+tempi->p1.ptype,CREG_RCX,0,TY_REG+IT_I64,CREG_RAX,0,ip); + } + } + if (tempi->r.type&TY_MASK) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I64,r,0,ip); +} + + +U0 ICDiv(CIntermediateCode *tempi,I64 ip) +{ + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + } + if (tempi->ic_class->sub_type&1) { + ICZero(tempi,CREG_RDX); + ICU24(tempi,0xF1F748); + } else { + ICU16(tempi,0x9948); + ICU24(tempi,0xF9F748); + } + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I64,CREG_RAX,0,ip); +} + +U0 ICDivEqual(CIntermediateCode *tempi,Bool is_mod,I64 ip) +{ + if (tempi->ic_flags & ICF_NOT_ADDR) { + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); + } + if (tempi->ic_class->sub_type&1) { + ICZero(tempi,CREG_RDX); + ICU24(tempi,0xF1F748); + } else { + ICU16(tempi,0x9948); + ICU24(tempi,0xF9F748); + } + if (is_mod) + ICMov(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, + TY_REG+IT_I64,CREG_RDX,0,ip); + else + ICMov(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + } else { + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RBX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + ICU24(tempi,0xD98748); //xchg bx,cx + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RBX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + } + //dangerous might clobber RBX in Mov, but it doesn't + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,TY_DISP+tempi->p1.ptype,CREG_RBX,0,ip); + if (tempi->ic_class->sub_type&1) { + ICZero(tempi,CREG_RDX); + ICU24(tempi,0xF1F748); + } else { + ICU16(tempi,0x9948); + ICU24(tempi,0xF9F748); + } + if (is_mod) + ICMov(tempi,TY_DISP+tempi->p1.ptype,CREG_RBX,0,TY_REG+IT_I64,CREG_RDX,0,ip); + else + ICMov(tempi,TY_DISP+tempi->p1.ptype,CREG_RBX,0,TY_REG+IT_I64,CREG_RAX,0,ip); + } + if (tempi->r.type&TY_MASK) { + if (is_mod) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I64,CREG_RDX,0,ip); + else + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I64,CREG_RAX,0,ip); + } +} + +U0 ICMod(CIntermediateCode *tempi,I64 ip) +{ + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + } + if (tempi->ic_class->sub_type&1) { + ICZero(tempi,CREG_RDX); + ICU24(tempi,0xF1F748); + } else { + ICU16(tempi,0x9948); + ICU24(tempi,0xF9F748); + } + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I64,CREG_RDX,0,ip); +} + +U0 ICAddSubEctEqual(CIntermediateCode *tempi,I64 ptype,I64 t1,I64 r1,I64 d1, + I64 t2,I64 r2,I64 d2,I64 t3,I64 r3,I64 d3,I64 op,I64 ip) +{ + Bool done; + I64 result_reg,temp,i; + if (tempi->ic_flags & ICF_NOT_ADDR) { + if (t3&TY_MASK==TY_IMM) { + ICAddConst(tempi, + t2&TY_MASK+ptype,r2,d2,t2&TY_MASK+ptype,r2,d2,d3,op,ip); + if (t1&TY_MASK) + ICMov(tempi,t1,r1,d1,t2&TY_MASK+ptype,r2,d2,ip); + return; + } else { + done=FALSE; + if (ptype>=IT_I64) { + if (!(t1&TY_MASK) && + TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) { + if (t3&TY_MASK==TY_REG) + temp=r3; + else { + temp=CREG_RCX; + ICMov(tempi,TY_REG+IT_I64,temp,0,t3,r3,d3,ip); + } + i=ICModr(temp,t2&TY_MASK+ptype,r2,d2); + if (tempi->ic_flags&ICF_LOCK) + ICU8(tempi,OC_LOCK_PREFIX); + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+op.u8[5]); + if (t2&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,d2); + else if (i.u8[0]==2) + ICU32(tempi,d2); + else if (i.u8[0]==4) { + ICU32(tempi,d2-(ip+tempi->ic_cnt+4)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + return; + } + if (t3&IT_MASK>=IT_I64 && + TY_REG<=t3&TY_MASK<=TY_RIP_DISP32) { + if (t2&TY_MASK==TY_REG) + result_reg=r2; + else { + result_reg=CREG_RCX; + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,t2,r2,d2,ip); + } + i=ICModr(result_reg,t3&TY_MASK+ptype,r3,d3); + if (tempi->ic_flags&ICF_LOCK) + ICU8(tempi,OC_LOCK_PREFIX); + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+op.u8[0]); + if (t3&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,d3); + else if (i.u8[0]==2) + ICU32(tempi,d3); + else if (i.u8[0]==4) { + ICU32(tempi,d3-(ip+tempi->ic_cnt+4)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + ICMov(tempi,t2&TY_MASK+ptype,r2,d2,TY_REG+IT_I64,result_reg,0,ip); + done=TRUE; + } + } + if (!done) { + if (tempi->ic_flags & ICF_P1_FIRST) { + if (t2&TY_MASK==TY_REG && r2!=CREG_RAX) + result_reg=r2; + else { + result_reg=CREG_RCX; + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,t2&TY_MASK+ptype,r2,d2,ip); + } + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,t3,r3,d3,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,t3,r3,d3,ip); + if (t2&TY_MASK==TY_REG && r2!=CREG_RAX) + result_reg=r2; + else { + result_reg=CREG_RCX; + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,t2&TY_MASK+ptype,r2,d2,ip); + } + } + if (tempi->ic_flags&ICF_LOCK) + ICU8(tempi,OC_LOCK_PREFIX); + if (result_reg>7) + ICU8(tempi,0x4C); + else + ICU8(tempi,0x48); + ICU16(tempi,0xC000+op.u8[0]+(result_reg&7)<<11); + ICMov(tempi,t2&TY_MASK+ptype,r2,d2,TY_REG+IT_I64,result_reg,0,ip); + } + } + } else { + done=FALSE; + if (t3&TY_MASK==TY_IMM && op.u8[2]) { + if (!d3.u32[1]) { + if (tempi->ic_flags&ICF_NO_DEPEND_RESULT && + t2&TY_MASK==TY_REG && d3(U64)<=MAX_I8) { + ICSlashOp(tempi,TY_DISP+ptype,r2,0,0x838000+op.u8[4],ip); + ICU8(tempi,d3); + done=TRUE; + } else if (op.u8[2]==0x24) { //AND + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,t2,r2,d2,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,TY_DISP+ptype,CREG_RCX,0,ip); + result_reg=CREG_RAX; + if (tempi->ic_flags&ICF_LOCK) + ICU8(tempi,OC_LOCK_PREFIX); + ICU16(tempi,op.u8[3]<<8+0x40); + ICU32(tempi,d3); + ICMov(tempi,TY_DISP+ptype,CREG_RCX,0,TY_REG+IT_I64,result_reg,0,ip); + done=TRUE; + } else if (ptype&IT_MASKic_flags&ICF_LOCK) + ICU8(tempi,OC_LOCK_PREFIX); + if (d3.u16[1]) { + ICU16(tempi,op.u8[3]<<8+0x40); + ICU32(tempi,d3); + } else if (d3.u8[1]) { + ICU24(tempi,op.u8[3]<<16+0x4000+OC_OP_SIZE_PREFIX); + ICU16(tempi,d3); + } else { + ICU16(tempi,op.u8[2]<<8+0x40); + ICU8(tempi,d3); + } + ICMov(tempi,TY_DISP+ptype,CREG_RCX,0,TY_REG+IT_I64,result_reg,0,ip); + done=TRUE; + } + } + } + if (!done) { + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,t2,r2,d2,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,t3,r3,d3,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,t3,r3,d3,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,t2,r2,d2,ip); + } + ICMov(tempi,TY_REG+IT_I64,CREG_RBX,0,TY_DISP+ptype,CREG_RCX,0,ip); + result_reg=CREG_RBX; + if (tempi->ic_flags&ICF_LOCK) + ICU8(tempi,OC_LOCK_PREFIX); + ICU8(tempi,0x48); + ICU16(tempi,0xC000+op.u8[0]+(result_reg&7)<<11); + ICMov(tempi,TY_DISP+ptype,CREG_RCX,0,TY_REG+IT_I64,result_reg,0,ip); + } + } + if (t1&TY_MASK) + ICMov(tempi,t1,r1,d1,TY_REG+IT_I64,result_reg,0,ip); +} + +U0 ICShift(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, + I64 t2,I64 r2,I64 d2,I64 t3,I64 r3,I64 d3,I64 us,I64 is,I64 ip) +{ + I64 i=0x48,result_reg; + if (tempi->ic_class->sub_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) + is=us; + if (t3&TY_MASK==TY_IMM) { + if (t1&TY_MASK==TY_REG) { + result_reg=r1; + if (result_reg>7) + i++; + } else + result_reg=CREG_RAX; + ICMov(tempi,TY_REG+IT_I64,result_reg,0,t2,r2,d2,ip); + if (d3==1) + ICU24(tempi,i+is.u16[2]<<8+(result_reg&7)<<16); + else { + ICU24(tempi,i+is.u16[0]<<8+(result_reg&7)<<16); + ICU8(tempi,d3); + } + } else { + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,t2,r2,d2,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,t3,r3,d3,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,t3,r3,d3,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,t2,r2,d2,ip); + } + result_reg=CREG_RAX; + ICU24(tempi,i+is.u16[1]<<8); + } + ICMov(tempi,t1,r1,d1,TY_REG+IT_I64,result_reg,0,ip); +} + +U0 ICShiftEqual(CIntermediateCode *tempi,I64 ptype,I64 t1,I64 r1,I64 d1, + I64 t2,I64 r2,I64 d2,I64 t3,I64 r3,I64 d3,I64 us,I64 is,I64 ip) +{ + I64 result_reg; + if (tempi->ic_class->sub_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) + is=us; + if (tempi->ic_flags & ICF_NOT_ADDR) { + if (tempi->ic_flags & ICF_P1_FIRST) { + if (t2&TY_MASK==TY_REG) + result_reg=r2; + else { + result_reg=CREG_RAX; + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,t2&TY_MASK+ptype,r2,d2,ip); + } + if (t3&TY_MASK!=TY_IMM) + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,t3,r3,d3,ip); + } else { + if (t3&TY_MASK!=TY_IMM) + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,t3,r3,d3,ip); + if (t2&TY_MASK==TY_REG) + result_reg=r2; + else { + result_reg=CREG_RAX; + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,t2&TY_MASK+ptype,r2,d2,ip); + } + } + if (result_reg>7) + ICU8(tempi,0x49); + else + ICU8(tempi,0x48); + if (t3&TY_MASK==TY_IMM) { + if (d3==1) + ICU16(tempi,is.u16[2]+(result_reg&7)<<8); + else { + ICU16(tempi,is.u16[0]+(result_reg&7)<<8); + ICU8(tempi,d3); + } + } else + ICU16(tempi,is.u16[1]+(result_reg&7)<<8); + ICMov(tempi,t2&TY_MASK+ptype,r2,d2,TY_REG+IT_I64,result_reg,0,ip); + } else { + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,t2,r2,d2,ip); + if (t3&TY_MASK!=TY_IMM) + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,t3,r3,d3,ip); + } else { + if (t3&TY_MASK!=TY_IMM) + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,t3,r3,d3,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,t2,r2,d2,ip); + } + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,TY_DISP+ptype,CREG_RDX,0,ip); + result_reg=CREG_RAX; + ICU8(tempi,0x48); + if (t3&TY_MASK==TY_IMM) { + if (d3==1) + ICU16(tempi,is.u16[2]+(result_reg&7)<<8); + else { + ICU16(tempi,is.u16[0]+(result_reg&7)<<8); + ICU8(tempi,d3); + } + } else + ICU16(tempi,is.u16[1]+(result_reg&7)<<8); + ICMov(tempi,TY_DISP+ptype,CREG_RDX,0,TY_REG+IT_I64,result_reg,0,ip); + } + if (t1&TY_MASK) + ICMov(tempi,t1,r1,d1,TY_REG+IT_I64,result_reg,0,ip); +} + +U0 ICUnaries(CIntermediateCode *tempi,I64 op,I64 ip) +{ + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICSlashOp(tempi,TY_REG+IT_I64,CREG_RAX,0,op,ip); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); +} + +U0 ICNot(CIntermediateCode *tempi,I64 ip) +{ + I64 i; + if (tempi->p1.type&IT_MASK<=IT_U8 && + TY_DISP<=tempi->p1.type&TY_MASK<=TY_RIP_DISP32) { + i=ICModr(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp); + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0xF6); //TEST ?,0xFF + if (tempi->p1.type&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,tempi->p1.disp); + else if (i.u8[0]==2) + ICU32(tempi,tempi->p1.disp); + else if (i.u8[0]==4) { + ICU32(tempi,tempi->p1.disp-(ip+tempi->ic_cnt+5)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + ICU8(tempi,0xFF); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICOr(tempi,CREG_RAX); + } + ICU24(tempi,0xC0940F); //SETZ AL + ICU32(tempi,0xC0B60F48); //MOVZX RAX,AL + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_U64,CREG_RAX,0,ip); +} + +U0 ICAndAnd(CIntermediateCode *tempi,I64 ip) +{ + I64 r2; + if (tempi->ic_flags & ICF_P1_FIRST) { + if (tempi->p1.type&TY_MASK!=TY_REG || + tempi->p1.reg==CREG_RAX) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + r2=CREG_RDX; + } else + r2=tempi->p1.reg; + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + if (tempi->p1.type&TY_MASK!=TY_REG || + tempi->p1.reg==CREG_RAX) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + r2=CREG_RDX; + } else + r2=tempi->p1.reg; + } + ICZero(tempi,CREG_RAX); + ICOr(tempi,r2); + ICU16(tempi,0x0874); + ICOr(tempi,CREG_RCX); + ICU16(tempi,0x0374); + ICU24(tempi,0xC0FF48); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I64,CREG_RAX,0,ip); +} + +U0 ICOrOr(CIntermediateCode *tempi,I64 ip) +{ + I64 i=0x48,r2; + if (tempi->ic_flags & ICF_P1_FIRST) { + if (tempi->p1.type&TY_MASK!=TY_REG || + tempi->p1.reg==CREG_RAX) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + r2=CREG_RDX; + } else + r2=tempi->p1.reg; + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + if (tempi->p1.type&TY_MASK!=TY_REG || + tempi->p1.reg==CREG_RAX) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + r2=CREG_RDX; + } else + r2=tempi->p1.reg; + } + + if (r2>7) { + i++; + r2&=7; + } + ICZero(tempi,CREG_RAX); + ICU24(tempi,0xC80B00+i+r2<<16); + ICU16(tempi,0x0374); + ICU24(tempi,0xC0FF48); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I64,CREG_RAX,0,ip); +} + +U0 ICXorXor(CIntermediateCode *tempi,I64 ip) +{ + I64 r2; + if (tempi->ic_flags & ICF_P1_FIRST) { + if (tempi->p1.type&TY_MASK!=TY_REG) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + r2=CREG_RDX; + } else + r2=tempi->p1.reg; + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + if (tempi->p1.type&TY_MASK!=TY_REG) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + r2=CREG_RDX; + } else + r2=tempi->p1.reg; + } + ICZero(tempi,CREG_RBX); + ICOr(tempi,r2); + ICU16(tempi,0x0374); + ICU24(tempi,0xC3FF48); + + ICZero(tempi,CREG_RAX); + ICOr(tempi,CREG_RCX); + ICU16(tempi,0x0374); + ICU24(tempi,0xC0FF48); + + ICU24(tempi,0xC33348); + + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I64,CREG_RAX,0,ip); +} + +U0 ICColon(CIntermediateCode *tempi,I64 ip) +{ + I64 r2; + if (tempi->p1.type&TY_MASK==TY_REG && + tempi->p1.reg==CREG_RAX) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + r2=CREG_RDX; + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else if (tempi->p2.type&TY_MASK==TY_REG && + tempi->p2.reg==CREG_RAX) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip); + if (tempi->p1.type&TY_MASK!=TY_REG) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + r2=CREG_RDX; + } else + r2=tempi->p1.reg; + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + if (tempi->p1.type&TY_MASK!=TY_REG || + tempi->p1.type&IT_MASKp1.type,tempi->p1.reg,tempi->p1.disp,ip); + r2=CREG_RDX; + } else + r2=tempi->p1.reg; + } + ICOr(tempi,r2); + ICU16(tempi,0x0374); + ICU24(tempi,0xC18B48); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I64,CREG_RAX,0,ip); +} + +U0 ICCmp(CIntermediateCode *tempi,I64 us,I64 is,I64 ip) +{ + I64 r1,d1,r2,i=0x48,j=tempi->p2.disp; + if (tempi->p2.type&TY_MASK==TY_IMM && MIN_I32<=j<=MAX_I32) { + if (!(tempi->ic_flags&(ICF_POP_CMP|ICF_PUSH_CMP)) && + tempi->p1.type&TY_MASK==TY_DISP && //TODO + tempi->p1.type&IT_MASK>=IT_I64 && tempi->p1.reg!=CREG_RAX) { + r1=tempi->p1.reg; + d1=tempi->p1.disp; + ICZero(tempi,CREG_RAX); + if (r1>7) + i++; + if (MIN_I8<=j<=MAX_I8) + i+=0x388300; + else + i+=0x388100; + if (!d1) { + ICU24(tempi,0x000000+i+(r1&7)<<16); + } else if (MIN_I8<=d1<=MAX_I8) { + ICU24(tempi,0x400000+i+(r1&7)<<16); + ICU8(tempi,d1); + } else { + ICU24(tempi,0x800000+i+(r1&7)<<16); + ICU32(tempi,d1); + } + if (MIN_I8<=j<=MAX_I8) + ICU8(tempi,j); + else + ICU32(tempi,j); + } else { + if (tempi->ic_flags & ICF_POP_CMP) { + ICPopRegs(tempi,1<p1.type&TY_MASK==TY_REG && + tempi->p1.reg!=CREG_RAX) + r1=tempi->p1.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + r1=CREG_RCX; + } + } + ICZero(tempi,CREG_RAX); + if (r1>7) + i++; + if (MIN_I8<=j<=MAX_I8) { + ICU24(tempi,0xF88300+i+(r1&7)<<16); + ICU8(tempi,j); + } else { + ICU24(tempi,0xF88100+i+(r1&7)<<16); + ICU32(tempi,j); + } + } + if (tempi->ic_flags & ICF_PUSH_CMP) + ICPush(tempi,TY_IMM+IT_I64,0,j,ip); + if (tempi->ic_class->sub_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) + is=us; + ICU16(tempi,0x300+is); + ICU24(tempi,0xC0FF48); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + } else { + if (tempi->ic_flags & ICF_P1_FIRST) { + if (tempi->ic_flags & ICF_POP_CMP) { + ICPopRegs(tempi,1<p1.type&TY_MASK==TY_REG && + tempi->p1.reg!=CREG_RAX) + r1=tempi->p1.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + r1=CREG_RCX; + } + } + if (tempi->p2.type&TY_MASK==TY_REG && + tempi->p2.reg!=CREG_RAX) + r2=tempi->p2.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + r2=CREG_RDX; + } + } else { + if (tempi->p2.type&TY_MASK==TY_REG && + tempi->p2.reg!=CREG_RAX) + r2=tempi->p2.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + r2=CREG_RCX; + } + if (tempi->ic_flags & ICF_POP_CMP) { + ICPopRegs(tempi,1<p1.type&TY_MASK==TY_REG && + tempi->p1.reg!=CREG_RAX) + r1=tempi->p1.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + r1=CREG_RDX; + } + } + } + ICZero(tempi,CREG_RAX); + if (r2>7) + i++; + if (r1>7) + i+=4; + if (tempi->ic_flags & ICF_PUSH_CMP) + ICPushRegs(tempi,1<ic_class->sub_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) + is=us; + ICU16(tempi,0x300+is); + ICU24(tempi,0xC0FF48); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); + } +} + +U0 ICBitOps(CIntermediateCode *tempi,CICArg *p1,CICArg *p2,CIntermediateCode *tempi2, + I64 op,I64 op_imm,I64 ip) +{ //TODO:not fully utilizing Modr + Bool no_depend=ToBool(tempi2->ic_flags&ICF_NO_DEPEND_RESULT); + I64 r1,t2,r2,d2,i=0x48; + if (tempi->ic_flags & ICF_NOT_ADDR) { + t2=p2->type&TY_MASK+IT_I64; //TODO: check overflow + r2=p2->reg; + d2=p2->disp; + if (tempi->ic_flags & ICF_P1_FIRST) { + if (p1->type&TY_MASK==TY_REG && + (p1->reg!=CREG_RAX||no_depend)) + r1=p1->reg; + else if (p1->type&TY_MASK!=TY_IMM || p1->disp>63) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,p1->type,p1->reg,p1->disp,ip); + r1=CREG_RCX; + } else + r1=0; + if (!(TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) || + !(r2.u8[0]!=CREG_RAX&&(t2&TY_MASK!=TY_SIB||r2.u8[1]&15!=CREG_RAX)||no_depend)) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,t2,r2,d2,ip); + t2=TY_REG+IT_I64; + r2=CREG_RDX; + d2=0; + } + } else { + if (!(TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) || + !(r2.u8[0]!=CREG_RAX&&(t2&TY_MASK!=TY_SIB||r2.u8[1]&15!=CREG_RAX)||no_depend)) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,t2,r2,d2,ip); + t2=TY_REG+IT_I64; + r2=CREG_RCX; + d2=0; + } + if (p1->type&TY_MASK==TY_REG && + (p1->reg!=CREG_RAX||no_depend)) + r1=p1->reg; + else if (p1->type&TY_MASK!=TY_IMM || p1->disp>63) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,p1->type,p1->reg,p1->disp,ip); + r1=CREG_RDX; + } else + r1=0; + } + } else { + t2=TY_DISP+IT_I64; + d2=0; + if (tempi->ic_flags & ICF_P1_FIRST) { + if (p1->type&TY_MASK==TY_REG && + (p1->reg!=CREG_RAX||no_depend)) + r1=p1->reg; + else if (p1->type&TY_MASK!=TY_IMM || p1->disp>63) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,p1->type,p1->reg,p1->disp,ip); + r1=CREG_RCX; + } else + r1=0; + if (p2->type&TY_MASK==TY_REG && + (p2->reg!=CREG_RAX||no_depend)) + r2=p2->reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,p2->type,p2->reg,p2->disp,ip); + r2=CREG_RDX; + } + } else { + if (p2->type&TY_MASK==TY_REG && + (p2->reg!=CREG_RAX||no_depend)) + r2=p2->reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,p2->type,p2->reg,p2->disp,ip); + r2=CREG_RCX; + } + if (p1->type&TY_MASK==TY_REG && + (p1->reg!=CREG_RAX||no_depend)) + r1=p1->reg; + else if (p1->type&TY_MASK!=TY_IMM || p1->disp>63) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,p1->type,p1->reg,p1->disp,ip); + r1=CREG_RDX; + } else + r1=0; + } + } + if (!no_depend) + ICZero(tempi,CREG_RAX); + if (tempi->ic_flags&ICF_LOCK) { + if (op!=0xA30F) + ICU8(tempi,OC_LOCK_PREFIX); + } + if ((p1->type&TY_MASK!=TY_IMM || p1->disp<32) && t2&TY_MASK!=TY_REG) + t2=t2&TY_MASK+IT_U32; + i=ICModr(r1,t2,r2,d2); + ICRex(tempi,i.u8[1]); + if (p1->type&TY_MASK==TY_IMM && p1->disp<64) { + ICU24(tempi,i.u8[2]<<16+op_imm); + if (t2&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,d2); + else if (i.u8[0]==2) + ICU32(tempi,d2); + else if (i.u8[0]==4) { + ICU32(tempi,d2-(ip+tempi->ic_cnt+5)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + ICU8(tempi,p1->disp); + } else { + ICU24(tempi,i.u8[2]<<16+op); + if (t2&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,d2); + else if (i.u8[0]==2) + ICU32(tempi,d2); + else if (i.u8[0]==4) { + ICU32(tempi,d2-(ip+tempi->ic_cnt+4)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + } + if (!no_depend) { + ICU32(tempi,0xD08348); + if (tempi->r.type&TY_MASK) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I64,CREG_RAX,0,ip); + } +} + +U0 ICBEqu(CIntermediateCode *tempi,CIntermediateCode *tempi2,I64 ip) +{ + I64 i,cnt; + +//This might be paranoid. + if (tempi->p2.type&TY_MASK==TY_REG && + tempi->p2.reg==CREG_RAX) + tempi->ic_flags|=ICF_P1_FIRST; //p2 is the p1 of Bts or Btr + + if (tempi->p1.type&TY_MASK==TY_REG) + ICOr(tempi,tempi->p1.reg); + else { + if (tempi->p1.type&IT_MASK<=IT_U8 && + TY_DISP<=tempi->p1.type&TY_MASK<=TY_RIP_DISP32) { + i=ICModr(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp); + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0xF6); + if (tempi->p1.type&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,tempi->p1.disp); + else if (i.u8[0]==2) + ICU32(tempi,tempi->p1.disp); + else if (i.u8[0]==4) { + ICU32(tempi,tempi->p1.disp-(ip+tempi->ic_cnt+5)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + ICU8(tempi,0xFF); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICOr(tempi,CREG_RDX); + } + } + //Perform trial op, to get byte cnt + cnt=tempi->ic_cnt; + ICBitOps(tempi,&tempi->p2,&tempi->p3,tempi2, + 0xAB0F,0x28BA0F,ip); + i=tempi->ic_cnt+2-cnt; + + //back-up + tempi->ic_cnt=cnt; + ICU16(tempi,i<<8+0x74); + ICBitOps(tempi,&tempi->p2,&tempi->p3,tempi2, + 0xAB0F,0x28BA0F,ip); + cnt=tempi->ic_cnt; + ICBitOps(tempi,&tempi->p2,&tempi->p3,tempi2, + 0xB30F,0x30BA0F,ip); + i=tempi->ic_cnt-cnt; + tempi->ic_cnt=cnt; + ICU16(tempi,i<<8+0xEB); + ICBitOps(tempi,&tempi->p2,&tempi->p3,tempi2, + 0xB30F,0x30BA0F,ip); +} + +U0 ICPreempt(CIntermediateCode *tempi,I64 ip) +{ + CIntermediateCode *tempi2=tempi+1; + if (tempi->p1.type&TY_MASK==TY_IMM) { + ICZero(tempi,CREG_RBX); + ICU32(tempi,0x1B8B4864); + if (!(tempi2->ic_flags&ICF_NO_DEPEND_RESULT)) + ICZero(tempi,CREG_RAX); + if (tempi->p1.disp) + ICU24(tempi,0x6BBA0F); + else + ICU24(tempi,0x73BA0F); + ICU16(tempi,CTask.task_flags+TASKf_PREEMPT<<8); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + if (!(tempi2->ic_flags&ICF_NO_DEPEND_RESULT)) + ICZero(tempi,CREG_RAX); + ICZero(tempi,CREG_RBX); + ICU32(tempi,0x1B8B4864); + ICOr(tempi,CREG_RCX); + ICU16(tempi,0x0774); + ICU24(tempi,0x6BBA0F); + ICU16(tempi,CTask.task_flags+TASKf_PREEMPT<<8); + ICU16(tempi,0x05EB); + ICU24(tempi,0x73BA0F); + ICU16(tempi,CTask.task_flags+TASKf_PREEMPT<<8); + } + if (!(tempi2->ic_flags&ICF_NO_DEPEND_RESULT)) + ICU32(tempi,0xD08348); +} + +U0 ICToUpper(CIntermediateCode *tempi,I64 ip) +{ + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICU32(tempi,0x61F88348); + ICU16(tempi,0x0A7C); + ICU32(tempi,0x7AF88348); + ICU16(tempi,0x047F); + ICU32(tempi,0xE0C08348); +} + +U0 ICToI64(CLex *lx,CIntermediateCode *tempi,I64 ip) +{ + ICFCvt(lx,tempi,CREG_RAX,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,TRUE,CN_MAIN,ip); +} + +U0 ICToF64(CLex *lx,CIntermediateCode *tempi,I64 ip) +{ + ICFCvt(lx,tempi,CREG_RAX,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,FALSE,CN_MAIN,ip); +} + +U0 ICToBool(CLex *,CIntermediateCode *tempi,I64 ip) +{ + I64 r; + if (tempi->p1.type&TY_MASK==TY_REG) + r=tempi->p1.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + r=CREG_RAX; + } + ICOr(tempi,r); + ICU24(tempi,0xC0950F); //SETNZ AL + ICU32(tempi,0xC0B60F48); //MOVZX RAX,AL +} + +U0 ICFTemplateFun(CLex *lx,CIntermediateCode *tempi,I64 op,I64 ip) +{ + Bool dont_push_float,dont_pop_float; + + CmpSetFloatOpPushPop(lx,tempi,&dont_push_float,&dont_pop_float); + if (!dont_push_float) + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + + ICCopyTemplate(lx,tempi,op,FALSE,TRUE,TRUE,CN_MAIN); + if (tempi->r.type&TY_MASK && !(tempi->ic_flags & ICF_R_TO_F64) && + !(tempi->ic_flags & ICF_R_TO_INT)) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip); +} + +U0 ICPreIncDec(CIntermediateCode *tempi,I64 op,I64 ip) +{ + I64 r; + CHashClass *tempc=tempi->ic_class,*tempc1=tempc-1; + if (tempi->ic_flags & ICF_NOT_ADDR) { + if (tempc->ptr_cnt && tempc1->size!=1) { + ICAddConst(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, + tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, + tempc1->size,op==SLASH_OP_INC ? 0x0003:0x052B,ip); + } else + ICSlashOp(tempi, + tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,op,ip); + if (tempi->r.type&TY_MASK) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); + } else { + if (tempi->p1.type&TY_MASK==TY_REG) + r=tempi->p1.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + r=CREG_RCX; + } + if (tempc->ptr_cnt && + tempc1->size!=1) { + ICAddConst(tempi,TY_DISP+tempi->p1.ptype,r,0, + TY_DISP+tempi->p1.ptype,r,0, + tempc1->size,op==SLASH_OP_INC ? 0x0003:0x052B,ip); + } else + ICSlashOp(tempi, + TY_DISP+tempi->p1.ptype,r,0,op,ip); + if (tempi->r.type&TY_MASK) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_DISP+tempi->p1.ptype,r,0,ip); + } +} + + +U0 ICPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) +{ + I64 r; + CHashClass *tempc=tempi->ic_class,*tempc1=tempc-1; + if (tempi->ic_flags & ICF_NOT_ADDR) { + if (tempi->r.type&TY_MASK) { + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); + } + if (tempc->ptr_cnt && + tempc1->size!=1) { + ICAddConst(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, + tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, + tempc1->size,op==SLASH_OP_INC ? 0x0003:0x052B,ip); + } else + ICSlashOp(tempi, + tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,op,ip); + } else { + if (tempi->p1.type&TY_MASK==TY_REG && + !(tempi->r.type&TY_MASK==TY_REG && tempi->r.reg==tempi->p1.reg)) + r=tempi->p1.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + r=CREG_RCX; + } + if (tempi->r.type&TY_MASK) { + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_DISP+tempi->p1.ptype,r,0,ip); + } + if (tempc->ptr_cnt && + tempc1->size!=1) { + ICAddConst(tempi,TY_DISP+tempi->p1.ptype,r,0, + TY_DISP+tempi->p1.ptype,r,0, + tempc1->size,op==SLASH_OP_INC ? 0x0003:0x052B,ip); + } else + ICSlashOp(tempi, + TY_DISP+tempi->p1.ptype,r,0,op,ip); + } +} + +U0 ICDerefPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) +{ + I64 ty,r; + CHashClass *tempc1=tempi->ic_class; + ty=tempi->r.type&IT_MASK; + if (ty>tempi->p1.ptype) + ty=tempi->p1.ptype; + if (tempi->ic_flags & ICF_NOT_ADDR) { + if (tempi->p1.type&TY_MASK==TY_REG) + r=tempi->p1.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,tempi->p1.type&TY_MASK+IT_I64,tempi->p1.reg,tempi->p1.disp,ip); + r=CREG_RDX; + } + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_DISP+ty,r,0,ip); + if (tempc1->size!=1) { + ICAddConst(tempi,tempi->p1.type&TY_MASK+IT_I64,tempi->p1.reg,tempi->p1.disp, + tempi->p1.type&TY_MASK+IT_I64,tempi->p1.reg,tempi->p1.disp, + tempc1->size,op==SLASH_OP_INC ? 0x0003:0x052B,ip); + } else + ICSlashOp(tempi, + tempi->p1.type&TY_MASK+IT_I64,tempi->p1.reg,tempi->p1.disp,op,ip); + } else { + if (tempi->p1.type&TY_MASK==TY_REG) + r=tempi->p1.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,tempi->p1.type&TY_MASK+IT_I64,tempi->p1.reg,tempi->p1.disp,ip); + r=CREG_RCX; + } + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + TY_DISP+IT_I64,r,0,ip); + if (tempc1->size!=1) { + ICAddConst(tempi,TY_DISP+IT_I64,r,0, + TY_DISP+IT_I64,r,0, + tempc1->size,op==SLASH_OP_INC ? 0x0003:0x052B,ip); + } else + ICSlashOp(tempi,TY_DISP+IT_I64,r,0,op,ip); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_DISP+ty,CREG_RDX,0,ip); + } +} + +U0 ICAssignPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) +{ + CHashClass *tempc1=tempi->ic_class2-1; + I64 r; + if (tempi->ic_flags & ICF_NOT_ADDR) { + if (tempi->p1.type&TY_MASK==TY_REG) + r=tempi->p1.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,tempi->p1.type&TY_MASK+IT_I64,tempi->p1.reg,tempi->p1.disp,ip); + r=CREG_RDX; + } + ICMov(tempi,TY_DISP+tempi->p1.ptype,r,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + if (tempi->r.type&TY_MASK) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + if (tempc1->size!=1 || tempi->p1.type&TY_MASK==TY_STK) { + ICAddConst(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + TY_REG+IT_I64,r,0, + tempc1->size,op==SLASH_OP_INC ? 0x0003:0x052B,ip); + } else + ICSlashOp(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,op,ip); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + TY_DISP+IT_I64,CREG_RDX,0,ip); + ICMov(tempi,TY_DISP+tempi->p1.ptype,CREG_RCX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + if (tempi->r.type&TY_MASK) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + if (tempc1->size!=1) { + ICAddConst(tempi,TY_DISP+IT_I64,CREG_RDX,0, + TY_REG+IT_I64,CREG_RCX,0, + tempc1->size,op==SLASH_OP_INC ? 0x0003:0x052B,ip); + } else + ICSlashOp(tempi,TY_DISP+IT_I64,CREG_RDX,0,op,ip); + } +} + + +U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_result,I64 ip, + I64 us,I64 is,I64 not_us,I64 not_is, + U8 *buf,I64 ip2) +{ + I64 r1,d1,r2,i=0x48,j,t1,t2,result_reg; + Bool short_jmp=FALSE,done; + CCodeBlkMisc *lb,*lb1; + CICArg *p1=&tempi->p1,*p2=&tempi->p2,*swap; + + j=p1->disp; + if (p1->type&TY_MASK==TY_IMM && MIN_I32<=j<=MAX_I32) { + swap=p1; p1=p2; p2=swap; + us=not_us; + is=not_is; + } + if (tempi->ic_class->sub_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) + is=us; + + j=p2->disp; + if (p2->type&TY_MASK==TY_IMM && MIN_I32<=j<=MAX_I32) { + if (!has_result && + p1->type&TY_MASK==TY_DISP && //TODO, other modes + p1->type&IT_MASK>=IT_I64) { + r1=p1->reg; + d1=p1->disp; + if (r1>7) { + i++; + r1&=7; + } + if (MIN_I8<=j<=MAX_I8) + i+=0x388300; + else + i+=0x388100; + if (!d1) { + ICU24(tempi,0x000000+i+r1<<16); + } else if (MIN_I8<=d1<=MAX_I8) { + ICU24(tempi,0x400000+i+r1<<16); + ICU8(tempi,d1); + } else { + ICU24(tempi,0x800000+i+r1<<16); + ICU32(tempi,d1); + } + if (MIN_I8<=j<=MAX_I8) + ICU8(tempi,j); + else + ICU32(tempi,j); + } else { + if (p1->type&TY_MASK==TY_REG) + r1=p1->reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,p1->type,p1->reg,p1->disp,ip2); + r1=CREG_RDX; + } + if (!j) { + if (is.u8[2]==0x7C) { + ICOr(tempi,r1); + is=0x78880F; + } else if (is.u8[2]==0x7D) { + ICOr(tempi,r1); + is=0x79890F; + } else if (is.u8[2]==0x74 || is.u8[2]==0x75) + ICOr(tempi,r1); + else { + if (r1>7) + i++; + ICU24(tempi,0xF88300+i+(r1&7)<<16); + ICU8(tempi,j); + } + } else { + if (r1>7) + i++; + if (MIN_I8<=j<=MAX_I8) { + ICU24(tempi,0xF88300+i+(r1&7)<<16); + ICU8(tempi,j); + } else { + ICU24(tempi,0xF88100+i+(r1&7)<<16); + ICU32(tempi,j); + } + } + } + if (has_result) { + if (!swap) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,TY_IMM+IT_I64,0,j,ip2); + result_reg=CREG_RCX; + } else + result_reg=r1; + } + } else { + done=FALSE; + t1=p1->type; + r1=p1->reg; + r2=p2->reg; + t2=p2->type; + if (t2&IT_MASK>=IT_I64 && !has_result && + TY_DISP<=t2&TY_MASK<=TY_RIP_DISP32) { + if (t1&TY_MASK!=TY_REG || t1&IT_MASKtype,p1->reg,p1->disp,ip2); + r1=CREG_RAX; + } + i=ICModr(r1,t2,r2,p2->disp); + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0x3B); + if (t2&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,p2->disp); + else if (i.u8[0]==2) + ICU32(tempi,p2->disp); + else if (i.u8[0]==4) { + ICU32(tempi,p2->disp-(ip2+tempi->ic_cnt+4)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + done=TRUE; + } else if (t1&IT_MASK>=IT_I64 && + TY_REG<=t1&TY_MASK<=TY_RIP_DISP32) { + if (t2&TY_MASK!=TY_REG || t2&IT_MASKtype,p2->reg,p2->disp,ip2); + r2=CREG_RCX; + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,p2->type,p2->reg,p2->disp,ip2); + r2=CREG_RAX; + } + } + i=ICModr(r2,t1,r1,p1->disp); + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0x39); + if (t1&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,p1->disp); + else if (i.u8[0]==2) + ICU32(tempi,p1->disp); + else if (i.u8[0]==4) { + ICU32(tempi,p1->disp-(ip2+tempi->ic_cnt+4)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + if (has_result) + result_reg=r2; + done=TRUE; + } + if (!done) { + if (tempi->ic_flags & ICF_P1_FIRST) { + if (p1->type&TY_MASK==TY_REG) + r1=p1->reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,p1->type,p1->reg,p1->disp,ip2); + r1=CREG_RAX; + } + if (p2->type&TY_MASK==TY_REG) + r2=p2->reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,p2->type,p2->reg,p2->disp,ip2); + r2=CREG_RCX; + } + } else { + if (p2->type&TY_MASK==TY_REG) + r2=p2->reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,p2->type,p2->reg,p2->disp,ip2); + r2=CREG_RAX; + } + if (p1->type&TY_MASK==TY_REG) + r1=p1->reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,p1->type,p1->reg,p1->disp,ip2); + r1=CREG_RCX; + } + } + if (r2>7) + i++; + if (r1>7) + i+=4; + ICU24(tempi,0xC03B00+i+(r2&7)<<16+(r1&7)<<19); + if (has_result) + result_reg=r2; + } + } + ip+=tempi->ic_cnt; + lb=tempi->ic_data; + while (lb1=lb->fwd) + lb=lb1; + if (lb->addr!=INVALID_PTR) { + i=lb->addr-ip; + if (lb->flags&CBMF_POP_CMP) + if(tempi->ic_flags&ICF_PUSH_CMP) + i+=4; + else + i+=8; + if (MIN_I8+2ic_flags&ICF_SHORT_JMP); + + if (short_jmp) { + tempi->ic_flags|=ICF_SHORT_JMP; + i=lb->addr-(ip+2); + if (lb->flags&CBMF_POP_CMP) + if(tempi->ic_flags&ICF_PUSH_CMP) + i+=4; + else + i+=8; + ICU16(tempi,i<<8+is.u8[2]); + } else { + tempi->ic_flags&=~ICF_SHORT_JMP; + i=lb->addr-(ip+6); + if (lb->flags&CBMF_POP_CMP) + if(tempi->ic_flags&ICF_PUSH_CMP) + i+=4; + else + i+=8; + ICU16(tempi,is.u16[0]); + ICU32(tempi,i); + } + if (has_result) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+IT_I64,result_reg,0,ip2); +} + +U0 ICTestAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) +{ + I64 i; + Bool short_jmp=FALSE; + CCodeBlkMisc *lb,*lb1; + + if (tempi->p1.type&TY_MASK!=TY_REG) { + if (tempi->p1.type&IT_MASK<=IT_U8 && + TY_DISP<=tempi->p1.type&TY_MASK<=TY_RIP_DISP32) { + i=ICModr(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp); + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0xF6); + if (tempi->p1.type&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,tempi->p1.disp); + else if (i.u8[0]==2) + ICU32(tempi,tempi->p1.disp); + else if (i.u8[0]==4) { + ICU32(tempi,tempi->p1.disp-(ip2+tempi->ic_cnt+5)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + ICU8(tempi,0xFF); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICOr(tempi,CREG_RAX); + } + } else + ICOr(tempi,tempi->p1.reg); + ip+=tempi->ic_cnt; + + lb=tempi->ic_data; + while (lb1=lb->fwd) + lb=lb1; + if (lb->addr!=INVALID_PTR) { + i=lb->addr-ip; + if (lb->flags&CBMF_POP_CMP) + i+=8; + if (MIN_I8+2ic_flags&ICF_SHORT_JMP); + if (short_jmp) { + tempi->ic_flags|=ICF_SHORT_JMP; + i=lb->addr-(ip+2); + if (lb->flags&CBMF_POP_CMP) + i+=8; + ICU16(tempi,i<<8+is.u8[2]); + } else { + tempi->ic_flags&=~ICF_SHORT_JMP; + i=lb->addr-(ip+6); + if (lb->flags&CBMF_POP_CMP) + i+=8; + ICU16(tempi,is.u16[0]); + ICU32(tempi,i); + } +} + +U0 ICZFlagBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf) +{ + I64 i; + Bool short_jmp=FALSE; + CCodeBlkMisc *lb,*lb1; + + ip+=tempi->ic_cnt; + + lb=tempi->ic_data; + while (lb1=lb->fwd) + lb=lb1; + if (lb->addr!=INVALID_PTR) { + i=lb->addr-ip; + if (lb->flags&CBMF_POP_CMP) + i+=8; + if (MIN_I8+2ic_flags&ICF_SHORT_JMP); + if (short_jmp) { + tempi->ic_flags|=ICF_SHORT_JMP; + i=lb->addr-(ip+2); + if (lb->flags&CBMF_POP_CMP) + i+=8; + ICU16(tempi,i<<8+is.u8[2]); + } else { + tempi->ic_flags&=~ICF_SHORT_JMP; + i=lb->addr-(ip+6); + if (lb->flags&CBMF_POP_CMP) + i+=8; + ICU16(tempi,is.u16[0]); + ICU32(tempi,i); + } +} + +U0 ICAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) +{ + U64 i; + I64 it,t1,r1,d1,r2; + Bool short_jmp=FALSE,swap,override; + CCodeBlkMisc *lb,*lb1; + CICArg *p1,*p2; + + if (tempi->p1.type&TY_MASK==TY_IMM) { + swap=TRUE; + p1=&tempi->p2; + p2=&tempi->p1; + } else { + swap=FALSE; + p1=&tempi->p1; + p2=&tempi->p2; + } + + if (p2->type&TY_MASK==TY_IMM && p2->disp>MAX_U32) + override=TRUE; + else + override=FALSE; + + if (p1->type&IT_MASKtype&IT_MASK) + it=p1->type&IT_MASK; + else + it=p2->type&IT_MASK; + + i=p2->disp; + if (p2->type&TY_MASK==TY_IMM && i<=MAX_U32) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,p1->type,p1->reg,p1->disp,ip2); + if (i<=MAX_U8) + ICU16(tempi,i<<8+0xA8); + else if (i<=MAX_U16) + ICU32(tempi,i<<16+0xA900+OC_OP_SIZE_PREFIX); + else { + ICU8(tempi,0xA9); + ICU32(tempi,i); + } + } else { + t1=TY_REG+it; + d1=0; + if ((tempi->ic_flags&ICF_P1_FIRST ^^swap)&&!override) { + if (p1->type&TY_MASK==TY_REG) { + r1=p1->reg; + swap=TRUE; + } else { + r1=CREG_RCX; + swap=FALSE; + } + if (p2->type&TY_MASK==TY_REG) { + r2=p2->reg; + swap=FALSE; + } else + r2=CREG_RDX; + if (swap) { + if (p1->type&TY_MASK!=TY_REG || r1!=p1->reg) + ICMov(tempi,TY_REG+IT_I64,r1,0,p1->type,p1->reg,p1->disp,ip2); + if (TY_REG<=p2->type&TY_MASK<=TY_RIP_DISP32) { + t1=p2->type&TY_MASK+it; + r2=p2->reg; + d1=p2->disp; + } else + ICMov(tempi,TY_REG+IT_I64,r2,0,p2->type,p2->reg,p2->disp,ip2); + i=ICModr(r1,t1,r2,d1); + } else { + if (TY_REG<=p1->type&TY_MASK<=TY_RIP_DISP32) { + t1=p1->type&TY_MASK+it; + r1=p1->reg; + d1=p1->disp; + } else + ICMov(tempi,TY_REG+IT_I64,r1,0,p1->type,p1->reg,p1->disp,ip2); + if (p2->type&TY_MASK!=TY_REG || r2!=p2->reg) + ICMov(tempi,TY_REG+IT_I64,r2,0,p2->type,p2->reg,p2->disp,ip2); + i=ICModr(r2,t1,r1,d1); + } + } else { + if (p2->type&TY_MASK==TY_REG) { + r2=p2->reg; + swap=FALSE; + } else { + r2=CREG_RDX; + swap=TRUE; + } + if (p1->type&TY_MASK==TY_REG) { + r1=p1->reg; + swap=TRUE; + } else + r1=CREG_RCX; + if (override) + swap=FALSE; + if (swap) { + if (TY_REG<=p2->type&TY_MASK<=TY_RIP_DISP32) { + t1=p2->type&TY_MASK+it; + r2=p2->reg; + d1=p2->disp; + } else + ICMov(tempi,TY_REG+IT_I64,r2,0,p2->type,p2->reg,p2->disp,ip2); + if (p1->type&TY_MASK!=TY_REG || r1!=p1->reg) + ICMov(tempi,TY_REG+IT_I64,r1,0,p1->type,p1->reg,p1->disp,ip2); + i=ICModr(r1,t1,r2,d1); + } else { + if (p2->type&TY_MASK!=TY_REG || r2!=p2->reg) + ICMov(tempi,TY_REG+IT_I64,r2,0,p2->type,p2->reg,p2->disp,ip2); + if (TY_REG<=p1->type&TY_MASK<=TY_RIP_DISP32) { + t1=p1->type&TY_MASK+it; + r1=p1->reg; + d1=p1->disp; + } else + ICMov(tempi,TY_REG+IT_I64,r1,0,p1->type,p1->reg,p1->disp,ip2); + i=ICModr(r2,t1,r1,d1); + } + } + switch (it) { + case IT_I8: + case IT_U8: + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0x84); + break; + case IT_U16: + case IT_I16: + ICOpSizeRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0x85); + break; + default: + ICRex(tempi,i.u8[1]); + ICU16(tempi,i.u8[2]<<8+0x85); + } + if (t1&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,d1); + else if (i.u8[0]==2) + ICU32(tempi,d1); + else if (i.u8[0]==4) { + ICU32(tempi,d1-(ip2+tempi->ic_cnt+4)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + } + ip+=tempi->ic_cnt; + + lb=tempi->ic_data; + while (lb1=lb->fwd) + lb=lb1; + if (lb->addr!=INVALID_PTR) { + i=lb->addr-ip; + if (lb->flags&CBMF_POP_CMP) + i+=8; + if (MIN_I8+2ic_flags&ICF_SHORT_JMP); + if (short_jmp) { + tempi->ic_flags|=ICF_SHORT_JMP; + i=lb->addr-(ip+2); + if (lb->flags&CBMF_POP_CMP) + i+=8; + ICU16(tempi,i<<8+is.u8[2]); + } else { + tempi->ic_flags&=~ICF_SHORT_JMP; + i=lb->addr-(ip+6); + if (lb->flags&CBMF_POP_CMP) + i+=8; + ICU16(tempi,is.u16[0]); + ICU32(tempi,i); + } +} + +U0 ICAssign(CIntermediateCode *tempi,I64 ip) +{ + CIntermediateCode *tempi1; + if (tempi->ic_flags & ICF_NOT_ADDR) { + ICMov(tempi,tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + if (tempi->r.type&TY_MASK) { + if (tempi->p1.type&TY_MASK==TY_REG) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type&TY_MASK+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp,ip); + else + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } + } else { + if (tempi->p1.type&TY_MASK==TY_REG) { + if (!(tempi1=OptLag1(tempi)) || + tempi1->ic_opcode!=IC_ADD_CONST || + tempi1->r.type!=TY_REG+IT_I64 || tempi1->r.reg!=tempi->p1.reg || + tempi1->p1.type!=TY_REG+IT_I64 || tempi1->p1.reg!=tempi->p1.reg || + (tempi->p2.type&TY_MASK==TY_REG||tempi->p2.type&TY_MASK==TY_DISP) && + tempi->p2.reg==tempi->p1.reg || + tempi->r.type&TY_MASK || + tempi1->ic_flags&~ICF_NO_CVT_MASK) { + ICMov(tempi,TY_DISP+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + if (tempi->r.type&TY_MASK) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } else { + tempi->ic_flags=(tempi->ic_flags|tempi1->ic_flags)&~ICF_CODE_FINAL|ICF_DONT_RESTORE; + tempi1->ic_opcode=IC_NOP; //This better not be last pass! + tempi1->ic_flags=0; + tempi->p1.disp=tempi1->ic_data; + ICMov(tempi,TY_DISP+tempi->p1.ptype,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip); + ICMov(tempi,TY_DISP+tempi->p1.ptype,CREG_RCX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + if (tempi->r.type&TY_MASK) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip); + } + } +} + + +U0 ICBrBitOps(CIntermediateCode *tempi,I64 ip,I64 op,I64 op_imm,I64 is,U8 *buf,I64 ip2) +{ + I64 i,ty,r1,r2,d1,d2,t1,t2; + CICArg *p1=&tempi->p1,*p2=&tempi->p2; + Bool short_jmp=FALSE; + CCodeBlkMisc *lb,*lb1; + + if (tempi->ic_flags & ICF_NOT_ADDR) { + if (tempi->ic_flags & ICF_P1_FIRST) { + if (!(tempi->ic_flags&ICF_SWAP) && p1->type&TY_MASK!=TY_REG && (p1->type&TY_MASK!=TY_IMM || p1->disp>63) || + tempi->ic_flags&ICF_SWAP && p1->type&TY_MASK==TY_IMM && p1->disp<64 || + p1->type&TY_MASK==TY_STK) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,p1->type,p1->reg,p1->disp,ip2); + t1=TY_REG+IT_I64; + r1=CREG_RCX; + d1=0; + } else { + t1=p1->type; + if (t1&TY_MASK==TY_IMM && p1->disp<64) + r1=0; + else + r1=p1->reg; + d1=p1->disp; + } + if (tempi->ic_flags&ICF_SWAP && p2->type&TY_MASK!=TY_REG && (p2->type&TY_MASK!=TY_IMM || p2->disp>63) || + !(tempi->ic_flags&ICF_SWAP) && p2->type&TY_MASK==TY_IMM && p2->disp<64 || + p2->type&TY_MASK==TY_STK) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,p2->type,p2->reg,p2->disp,ip2); + t2=TY_REG+IT_I64; + r2=CREG_RDX; + d2=0; + } else { + t2=p2->type; + if (t2&TY_MASK==TY_IMM && p2->disp<64) + r2=0; + else + r2=p2->reg; + d2=p2->disp; + } + } else { + if (tempi->ic_flags&ICF_SWAP && p2->type&TY_MASK!=TY_REG && (p2->type&TY_MASK!=TY_IMM ||p2->disp>63)|| + !(tempi->ic_flags&ICF_SWAP) && p2->type&TY_MASK==TY_IMM && p2->disp<64 || + p2->type&TY_MASK==TY_STK) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,p2->type,p2->reg,p2->disp,ip2); + t2=TY_REG+IT_I64; + r2=CREG_RCX; + d2=0; + } else { + t2=p2->type; + if (t2&TY_MASK==TY_IMM && p2->disp<64) + r2=0; + else + r2=p2->reg; + d2=p2->disp; + } + if (!(tempi->ic_flags&ICF_SWAP) && p1->type&TY_MASK!=TY_REG && (p1->type&TY_MASK!=TY_IMM || p1->disp>63) || + tempi->ic_flags&ICF_SWAP && p1->type&TY_MASK==TY_IMM && p1->disp<64|| + p1->type&TY_MASK==TY_STK) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,p1->type,p1->reg,p1->disp,ip2); + t1=TY_REG+IT_I64; + r1=CREG_RDX; + d1=0; + } else { + t1=p1->type; + if (t1&TY_MASK==TY_IMM && p1->disp<64) + r1=0; + else + r1=p1->reg; + d1=p1->disp; + } + } + } else { + t1=TY_DISP+IT_I64; + t2=TY_DISP+IT_I64; + d1=0; + d2=0; + if (tempi->ic_flags & ICF_P1_FIRST) { + if (p1->type&TY_MASK==TY_REG) + r1=p1->reg; + else if (tempi->ic_flags&ICF_SWAP || p1->type&TY_MASK!=TY_IMM || p1->disp>63) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,p1->type,p1->reg,p1->disp,ip2); + r1=CREG_RCX; + } else + r1=0; + if (p2->type&TY_MASK==TY_REG) + r2=p2->reg; + else if (!(tempi->ic_flags&ICF_SWAP) || p2->type&TY_MASK!=TY_IMM || p2->disp>63) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,p2->type,p2->reg,p2->disp,ip2); + r2=CREG_RDX; + } else + r2=0; + } else { + if (p2->type&TY_MASK==TY_REG) + r2=p2->reg; + else if (!(tempi->ic_flags&ICF_SWAP) || p2->type&TY_MASK!=TY_IMM || p2->disp>63) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,p2->type,p2->reg,p2->disp,ip2); + r2=CREG_RCX; + } else + r2=0; + if (p1->type&TY_MASK==TY_REG) + r1=p1->reg; + else if (tempi->ic_flags&ICF_SWAP || p1->type&TY_MASK!=TY_IMM || p1->disp>63) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,p1->type,p1->reg,p1->disp,ip2); + r1=CREG_RDX; + } else + r1=0; + } + } + if (tempi->ic_flags&ICF_LOCK) { + if (op!=0xA30F) + ICU8(tempi,OC_LOCK_PREFIX); + } + if (tempi->ic_flags&ICF_SWAP) { + if ((p2->type&TY_MASK!=TY_IMM || p2->disp<32) && t1&TY_MASK!=TY_REG) + ty=t1&TY_MASK+IT_U32; + else + ty=t1; + i=ICModr(r2,ty,r1,d1); + SwapU64(&p1,&p2); + } else { + if ((p1->type&TY_MASK!=TY_IMM || p1->disp<32) && t2&TY_MASK!=TY_REG) + ty=t2&TY_MASK+IT_U32; + else + ty=t2; + i=ICModr(r1,ty,r2,d2); + } + ICRex(tempi,i.u8[1]); + if (p1->type&TY_MASK==TY_IMM && p1->disp<64) { + ICU24(tempi,i.u8[2]<<16+op_imm); + if (ty&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,p2->disp); + else if (i.u8[0]==2) + ICU32(tempi,p2->disp); + else if (i.u8[0]==4) { + ICU32(tempi,p2->disp-(ip2+tempi->ic_cnt+5)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + ICU8(tempi,p1->disp); + } else { + ICU24(tempi,i.u8[2]<<16+op); + if (ty&TY_MASK==TY_SIB) + ICU8(tempi,i.u8[3]); + if (i.u8[0]==1) + ICU8(tempi,p2->disp); + else if (i.u8[0]==2) + ICU32(tempi,p2->disp); + else if (i.u8[0]==4) { + ICU32(tempi,p2->disp-(ip2+tempi->ic_cnt+4)); + tempi->ic_flags&=~ICF_CODE_FINAL; + } + } + + ip+=tempi->ic_cnt; + lb=tempi->ic_data; + while (lb1=lb->fwd) + lb=lb1; + if (lb->addr!=INVALID_PTR) { + i=lb->addr-ip; + if (lb->flags&CBMF_POP_CMP) + i+=8; + if (MIN_I8+2ic_flags&ICF_SHORT_JMP); + if (short_jmp) { + tempi->ic_flags|=ICF_SHORT_JMP; + i=lb->addr-(ip+2); + if (lb->flags&CBMF_POP_CMP) + i+=8; + ICU16(tempi,i<<8+is.u8[2]); + } else { + tempi->ic_flags&=~ICF_SHORT_JMP; + i=lb->addr-(ip+6); + if (lb->flags&CBMF_POP_CMP) + i+=8; + ICU16(tempi,is.u16[0]); + ICU32(tempi,i); + } +} + +U0 ICQueInit(CIntermediateCode *tempi,I64 ip2) +{ + I64 r1; + if (tempi->p1.type==TY_REG+IT_I64) + r1=tempi->p1.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + r1=CREG_RAX; + } + ICMov(tempi,TY_DISP+IT_I64,r1,0,TY_REG+IT_I64,r1,0,ip2); + ICMov(tempi,TY_DISP+IT_I64,r1,sizeof(U8 *),TY_REG+IT_I64,r1,0,ip2); +} + +U0 ICQueIns(CIntermediateCode *tempi,I64 ip2) +{ + I64 r1,r2; + if (tempi->ic_flags & ICF_P1_FIRST) { + if (tempi->p1.type==TY_REG+IT_I64 && tempi->p1.reg!=CREG_RAX) + r1=tempi->p1.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + r1=CREG_RDX; + } + if (tempi->p2.type==TY_REG+IT_I64) + r2=tempi->p2.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + r2=CREG_RAX; + } + } else { + if (tempi->p2.type==TY_REG+IT_I64 && tempi->p2.reg!=CREG_RDX) + r2=tempi->p2.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + r2=CREG_RAX; + } + if (tempi->p1.type==TY_REG+IT_I64) + r1=tempi->p1.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + r1=CREG_RDX; + } + } + ICMov(tempi,TY_REG+IT_I64,CREG_RBX,0,TY_DISP+IT_I64,r1,0,ip2); + ICMov(tempi,TY_DISP+IT_I64,r1,0,TY_REG+IT_I64,r2,0,ip2); + ICMov(tempi,TY_DISP+IT_I64,r2,0,TY_REG+IT_I64,CREG_RBX,0,ip2); + ICMov(tempi,TY_DISP+IT_I64,r2,sizeof(U8 *),TY_REG+IT_I64,r1,0,ip2); + ICMov(tempi,TY_DISP+IT_I64,CREG_RBX,sizeof(U8 *),TY_REG+IT_I64,r2,0,ip2); +} + +U0 ICQueInsRev(CIntermediateCode *tempi,I64 ip2) +{ + I64 r1,r2; + if (tempi->ic_flags & ICF_P1_FIRST) { + if (tempi->p1.type==TY_REG+IT_I64 && tempi->p1.reg!=CREG_RAX) + r1=tempi->p1.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + r1=CREG_RDX; + } + if (tempi->p2.type==TY_REG+IT_I64) + r2=tempi->p2.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + r2=CREG_RAX; + } + } else { + if (tempi->p2.type==TY_REG+IT_I64 && tempi->p2.reg!=CREG_RDX) + r2=tempi->p2.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + r2=CREG_RAX; + } + if (tempi->p1.type==TY_REG+IT_I64) + r1=tempi->p1.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + r1=CREG_RDX; + } + } + ICMov(tempi,TY_REG+IT_I64,CREG_RBX,0,TY_DISP+IT_I64,r1,sizeof(U8 *),ip2); + ICMov(tempi,TY_DISP+IT_I64,CREG_RBX,0,TY_REG+IT_I64,r2,0,ip2); + ICMov(tempi,TY_DISP+IT_I64,r2,0,TY_REG+IT_I64,r1,0,ip2); + ICMov(tempi,TY_DISP+IT_I64,r2,sizeof(U8 *),TY_REG+IT_I64,CREG_RBX,0,ip2); + ICMov(tempi,TY_DISP+IT_I64,r1,sizeof(U8 *),TY_REG+IT_I64,r2,0,ip2); +} + +U0 ICQueRem(CIntermediateCode *tempi,I64 ip2) +{ + I64 r1; + if (tempi->p1.type==TY_REG+IT_I64) + r1=tempi->p1.reg; + else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + r1=CREG_RAX; + } + ICMov(tempi,TY_REG+IT_I64,CREG_RBX,0,TY_DISP+IT_I64,r1,0,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,TY_DISP+IT_I64,r1,sizeof(U8 *),ip2); + ICU24(tempi,0x1A8948); + ICU32(tempi,sizeof(U8 *)<<24+0x538948); +} + +U0 ICLimit(CIntermediateCode *tempi,I64 op,I64 ip2) +{ + I64 r2,r1,i2=0x48,i1=0x48; + if (tempi->ic_flags & ICF_P1_FIRST) { //TODO--does this come-up? checks for only 2 param before setting flag + if (tempi->p1.type==TY_REG+IT_I64 && tempi->p1.reg!=CREG_RAX) { + r1=tempi->p1.reg; + if (r1>7) { + i1++; + r1&=7; + } + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + r1=CREG_RDX; + } + if (tempi->p2.type==TY_REG+IT_I64 && tempi->p2.reg!=CREG_RAX) { + r2=tempi->p2.reg; + if (r2>7) { + i2++; + r2&=7; + } + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + r2=CREG_RCX; + } + } else { + if (tempi->p2.type==TY_REG+IT_I64 && tempi->p2.reg!=CREG_RAX) { + r2=tempi->p2.reg; + if (r2>7) { + i2++; + r2&=7; + } + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + r2=CREG_RCX; + } + if (tempi->p1.type==TY_REG+IT_I64 && tempi->p1.reg!=CREG_RAX) { + r1=tempi->p1.reg; + if (r1>7) { + i1++; + r1&=7; + } + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + r1=CREG_RDX; + } + } + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); + ICU24(tempi,0xC03B00+r2<<16+i2); + ICU32(tempi,0xC0000F00+op.u8[0]<<16+r2<<24+i2); + ICU24(tempi,0xC03B00+r1<<16+i1); + ICU32(tempi,0xC0000F00+op.u8[1]<<16+r1<<24+i1); +} + +U0 ICMinMax(CIntermediateCode *tempi,I64 op,I64 ip2) +{ + I64 r1,i1=0x48; + if (tempi->ic_flags & ICF_P1_FIRST) { + if (tempi->p1.type==TY_REG+IT_I64 && tempi->p1.reg!=CREG_RAX) { + r1=tempi->p1.reg; + if (r1>7) { + i1++; + r1&=7; + } + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + } else { + if (tempi->p2.reg==CREG_RAX && TY_REG<=tempi->p2.type&TY_MASK<=TY_SIB) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + r1=CREG_RDX; + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + if (tempi->p2.type==TY_REG+IT_I64) { + r1=tempi->p2.reg; + if (r1>7) { + i1++; + r1&=7; + } + } else { + r1=CREG_RDX; + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + } + } + } + } else { + if (tempi->p2.type==TY_REG+IT_I64 && tempi->p2.reg!=CREG_RAX) { + r1=tempi->p2.reg; + if (r1>7) { + i1++; + r1&=7; + } + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + } else { + if (tempi->p1.reg==CREG_RAX && TY_REG<=tempi->p1.type&TY_MASK<=TY_SIB) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + r1=CREG_RDX; + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + if (tempi->p1.type==TY_REG+IT_I64) { + r1=tempi->p1.reg; + if (r1>7) { + i1++; + r1&=7; + } + } else { + r1=CREG_RDX; + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + } + } + } + } + ICU24(tempi,0xC03B00+r1<<16+i1); + ICU32(tempi,0xC0000F00+op<<16+r1<<24+i1); +} + +U0 ICSqr(CIntermediateCode *tempi,I64 op,I64 ip2) +{ + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICSlashOp(tempi,TY_REG+IT_I64,CREG_RAX,0,op,ip2); +} + +U0 ICModU64(CIntermediateCode *tempi,I64 ip2) +{ + I64 t1,r1,d1; + if (tempi->ic_flags & ICF_P1_FIRST) { + if (tempi->p1.reg!=CREG_RAX && tempi->p1.reg!=CREG_RDX && TY_REG<=tempi->p1.type&TY_MASK<=TY_SIB && + tempi->p1.type&IT_MASK>=IT_I64) { + t1=tempi->p1.type; + r1=tempi->p1.reg; + d1=tempi->p1.disp; + } else { + t1=TY_REG+IT_I64; + r1=CREG_RBX; + d1=0; + ICMov(tempi,TY_REG+IT_I64,CREG_RBX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + } + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + if (tempi->p1.reg!=CREG_RAX && tempi->p1.reg!=CREG_RDX && TY_REG<=tempi->p1.type&TY_MASK<=TY_SIB && + tempi->p1.type&IT_MASK>=IT_I64) { + t1=tempi->p1.type; + r1=tempi->p1.reg; + d1=tempi->p1.disp; + } else { + t1=TY_REG+IT_I64; + r1=CREG_RBX; + d1=0; + ICMov(tempi,TY_REG+IT_I64,CREG_RBX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + } + } + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,TY_DISP+IT_I64,CREG_RCX,0,ip2); + ICZero(tempi,CREG_RDX); + ICSlashOp(tempi,t1,r1,d1,SLASH_OP_DIV,ip2); + ICMov(tempi,TY_DISP+IT_I64,CREG_RCX,0,TY_REG+IT_I64,CREG_RAX,0,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + TY_REG+IT_I64,CREG_RDX,0,ip2); +} + +U0 ICSwap(CIntermediateCode *tempi,I64 ip2) +{ + I64 r1,r2; + if (tempi->p1.type&TY_MASK==TY_REG) + r1=tempi->p1.reg; + else + r1=CREG_RAX; + if (tempi->p2.type&TY_MASK==TY_REG) + r2=tempi->p2.reg; + else + r2=CREG_RAX; + if (tempi->ic_flags & ICF_P1_FIRST) { + if (r1==r2) { + if (r2==CREG_RAX) + r2=CREG_RBX; + else + r1=CREG_RAX; + } + ICMov(tempi,TY_REG+IT_I64,r1,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,r2,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + } else { + if (r1==r2) { + if (r1==CREG_RAX) + r1=CREG_RBX; + else + r2=CREG_RAX; + } + ICMov(tempi,TY_REG+IT_I64,r2,0,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,r1,0,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + } + switch (tempi->ic_opcode) { + case IC_SWAP_U8: + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,TY_DISP+IT_U8,r1,0,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,TY_DISP+IT_U8,r2,0,ip2); + ICMov(tempi,TY_DISP+IT_U8,r2,0,TY_REG+IT_I64,CREG_RCX,0,ip2); + ICMov(tempi,TY_DISP+IT_U8,r1,0,TY_REG+IT_I64,CREG_RDX,0,ip2); + break; + case IC_SWAP_U16: + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,TY_DISP+IT_U16,r1,0,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,TY_DISP+IT_U16,r2,0,ip2); + ICMov(tempi,TY_DISP+IT_U16,r2,0,TY_REG+IT_I64,CREG_RCX,0,ip2); + ICMov(tempi,TY_DISP+IT_U16,r1,0,TY_REG+IT_I64,CREG_RDX,0,ip2); + break; + case IC_SWAP_U32: + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,TY_DISP+IT_U32,r1,0,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,TY_DISP+IT_U32,r2,0,ip2); + ICMov(tempi,TY_DISP+IT_U32,r2,0,TY_REG+IT_I64,CREG_RCX,0,ip2); + ICMov(tempi,TY_DISP+IT_U32,r1,0,TY_REG+IT_I64,CREG_RDX,0,ip2); + break; + case IC_SWAP_U64: + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,TY_DISP+IT_U64,r1,0,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0,TY_DISP+IT_U64,r2,0,ip2); + ICMov(tempi,TY_DISP+IT_U64,r2,0,TY_REG+IT_I64,CREG_RCX,0,ip2); + ICMov(tempi,TY_DISP+IT_U64,r1,0,TY_REG+IT_I64,CREG_RDX,0,ip2); + break; + } +} + +U0 ICAndEqual(CIntermediateCode *tempi,I64 ip2) +{ + I64 i,bit; + if (tempi->p2.type&TY_MASK==TY_IMM && + tempi->p1.type&TY_MASK!=TY_STK && + tempi->ic_flags&ICF_NO_DEPEND_RESULT) { + i=~tempi->p2.disp; + bit=Bsf(i); + if (0<=bit==Bsr(i)) { + tempi->p2.disp=bit; + tempi->p2.reg=0; + tempi->p1.type=tempi->p1.type&TY_MASK+IT_I64; + ICBitOps(tempi,&tempi->p2,&tempi->p1,tempi, + 0xB30F,0x30BA0F,ip2); + return; + } + } + ICAddSubEctEqual(tempi,tempi->p1.ptype, + tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x210425240423,ip2); +} + +U0 ICOrEqual(CIntermediateCode *tempi,I64 ip2) +{ + I64 i,bit; + if (tempi->p2.type&TY_MASK==TY_IMM && + tempi->p1.type&TY_MASK!=TY_STK && + tempi->ic_flags&ICF_NO_DEPEND_RESULT) { + i=tempi->p2.disp; + bit=Bsf(i); + if (0<=bit==Bsr(i) && i>MAX_I8) { + tempi->p2.disp=bit; + tempi->p2.reg=0; + tempi->p1.type=tempi->p1.type&TY_MASK+IT_I64; + ICBitOps(tempi,&tempi->p2,&tempi->p1,tempi, + 0xAB0F,0x28BA0F,ip2); + return; + } + } + ICAddSubEctEqual(tempi,tempi->p1.ptype, + tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x09010D0C010B,ip2); +} + +U0 ICXorEqual(CIntermediateCode *tempi,I64 ip2) +{ + I64 i,bit; + if (tempi->p2.type&TY_MASK==TY_IMM && + tempi->p1.type&TY_MASK!=TY_STK && + tempi->ic_flags&ICF_NO_DEPEND_RESULT) { + i=tempi->p2.disp; + bit=Bsf(i); + if (0<=bit==Bsr(i)) { + tempi->p2.disp=bit; + tempi->p2.reg=0; + tempi->p1.type=tempi->p1.type&TY_MASK+IT_I64; + ICBitOps(tempi,&tempi->p2,&tempi->p1,tempi, + 0xBB0F,0x38BA0F,ip2); + return; + } + } + ICAddSubEctEqual(tempi,tempi->p1.ptype, + tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x310635340633,ip2); +} + + +U0 ICSwitch(CIntermediateCode *tempi,I64 ip,Bool fast,CLex *lx,U8 *buf,I64 ip2) +{ + I64 i,j,r; + CCodeBlkMisc *lb,*lb1; + Bool short_jmp=FALSE; + CExeAbsAddr *tempa; + if (tempi->p1.type&TY_MASK==TY_REG) + r=tempi->p1.reg; + else + r=CREG_RDX; + if (fast) + ICMov(tempi,TY_REG+IT_I64,r,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + else { + if (tempi->p2.type&TY_MASK==TY_IMM) { + j=tempi->p2.disp; + ICMov(tempi,TY_REG+IT_I64,r,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + if (MIN_I8<=j<=MAX_I8) { + ICU24(tempi,0xF88348+(r&7)<<16+(r>7?1:0)); + ICU8(tempi,j); + } else if (MIN_I32<=j<=MAX_I32) { + ICU24(tempi,0xF88148+(r&7)<<16+(r>7?1:0)); + ICU32(tempi,j); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + ICU24(tempi,0xC13B48+(r&7)<<19+(r>7?4:0)); + } + } else { + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,r,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,r,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + } + ICU24(tempi,0xC13B48+(r&7)<<19+(r>7?4:0)); + } + + lb=tempi->ic_data; + lb=lb->dft; + ip+=tempi->ic_cnt; + while (lb1=lb->fwd) + lb=lb1; + if (lb->addr!=INVALID_PTR) { + i=lb->addr-ip; + if (MIN_I8+2ic_flags&ICF_SHORT_JMP); + if (short_jmp) { + tempi->ic_flags|=ICF_SHORT_JMP; + i=lb->addr-(ip+2); + ICU16(tempi,i<<8+0x73); + } else { + tempi->ic_flags&=~ICF_SHORT_JMP; + i=lb->addr-(ip+6); + ICU16(tempi,0x830F); + ICU32(tempi,i); + } + } + + lb=tempi->ic_data; + ICU32(tempi,0xC524FF48+(r&7)<<27+(r>7?2:0)); + if (lx->flags&LF_STATIC_COMPILE) + i=lb->addr+lx->a->ip; + else + i=lb->addr+buf; + if (lx->flags&LF_STATIC_COMPILE) + j=ip2+tempi->ic_cnt; + ICU32(tempi,i); + if (buf && lx->flags&LF_STATIC_COMPILE) { + tempa=CAlloc(sizeof(CExeAbsAddr)); + tempa->next=lx->a->abss; + tempa->type=EAA_ADD_U32; + lx->a->abss=tempa; + tempa->ip=j; + } + tempi->ic_flags&=~ICF_CODE_FINAL; +} + +U0 ICLocalVarInit(CIntermediateCode *tempi) +{ + ICU24(tempi,0xC48B48); + ICU16(tempi,0x5748); + ICU24(tempi,0xF88B48); + ICU24(tempi,0xC1C748); + ICU32(tempi,tempi->ic_data); + ICU16(tempi,sys_var_init_val<<8+0xB0); + ICU16(tempi,0xAAF3); + ICU16(tempi,0x5F48); +} + +U0 ICMemCpy(CIntermediateCode *tempi,I64 ip2) +{ + I64 i,j,cnt; + if (tempi->p1.type&TY_MASK==TY_IMM) { + if (!(cnt=tempi->p1.disp)) return; + if (tempi->p2.type&TY_MASK==TY_REG && + tempi->p2.reg==CREG_RAX) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + } + if (!(cnt&7)) + i=3; + else if (!(cnt&3)) + i=2; + else if (!(cnt&1)) + i=1; + else + i=0; + cnt>>=i; + + if (cnt<=2) { + j=0; + while (cnt--) { + switch (i) { + case 0: + ICMov(tempi,TY_REG+IT_I8,CREG_RCX,0,TY_DISP+IT_I8,CREG_RDX,j,ip2); + ICMov(tempi,TY_DISP+IT_I8,CREG_RAX,j,TY_REG+IT_I64,CREG_RCX,0,ip2); + break; + case 1: + ICMov(tempi,TY_REG+IT_I16,CREG_RCX,0,TY_DISP+IT_I16,CREG_RDX,j,ip2); + ICMov(tempi,TY_DISP+IT_I16,CREG_RAX,j,TY_REG+IT_I64,CREG_RCX,0,ip2); + break; + case 2: + ICMov(tempi,TY_REG+IT_I32,CREG_RCX,0,TY_DISP+IT_I32,CREG_RDX,j,ip2); + ICMov(tempi,TY_DISP+IT_I32,CREG_RAX,j,TY_REG+IT_I64,CREG_RCX,0,ip2); + break; + case 3: + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0,TY_DISP+IT_I64,CREG_RDX,j,ip2); + ICMov(tempi,TY_DISP+IT_I64,CREG_RAX,j,TY_REG+IT_I64,CREG_RCX,0,ip2); + break; + } + j+=1<p1.type,tempi->p1.reg,cnt,ip2); + + ICPushRegs(tempi,1<p1.type&TY_MASK==TY_REG && + tempi->p1.reg==CREG_RAX) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + } else if (tempi->p2.type&TY_MASK==TY_REG && + tempi->p2.reg==CREG_RAX) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + } + ICPushRegs(tempi,1<p1.type&TY_MASK==TY_IMM && + tempi->p2.type&TY_MASK==TY_IMM && !tempi->p2.disp ) { //Set to zero + if (!(cnt=tempi->p1.disp)) return; + cnt<<=op; + if (!(cnt&7)) + op=3; + else if (!(cnt&3)) + op=2; + else if (!(cnt&1)) + op=1; + else + op=0; + cnt>>=op; + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p1.type,tempi->p1.reg,cnt,ip2); + ICPushRegs(tempi,1<p1.type&TY_MASK==TY_REG && + tempi->p1.reg==CREG_RAX) { + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + } else if (tempi->p2.type&TY_MASK==TY_REG && + tempi->p2.reg==CREG_RAX) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p3.type,tempi->p3.reg,tempi->p3.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RCX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + } + ICPushRegs(tempi,1<r.type&TY_MASK) + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0,TY_REG+IT_I64,CREG_RDI,0,ip2); + ICPopRegs(tempi,1<token) { + case TK_IDENT: + if ((i=DefineMatch(lx->ident,"ST_OPCODE_MODIFIERS"))>=0) { + tempi->opcode_modifier=i; + break; + } else + return; + case TK_INTEGER: + if (lx->cur_i==16) + tempi->flags|=IEF_OP_SIZE16; + else if (lx->cur_i==32) + tempi->flags|=IEF_OP_SIZE32; + else + return; + break; + case '+': + tempi->flags|=IEF_PLUS_OPCODE; + case '/': + if (Lex(lx)==TK_INTEGER && lx->cur_i<8) + tempi->slash_val=lx->cur_i; + else if (lx->token==TK_IDENT) { + if (!StrCmp(lx->ident,"R")) + tempi->slash_val=SV_R_REGISTER; + else if (!StrCmp(lx->ident,"I")) + tempi->slash_val=SV_I_REGISTER; + else + return; + } else + return; + break; + case '!': tempi->flags|=IEF_DONT_SWITCH_MODES; break; + case '&': tempi->flags|=IEF_DFT; break; + case ':': tempi->flags|=IEF_STI; break; + case '-': tempi->flags|=IEF_NO_REX; break; + case '~': tempi->flags|=IEF_40_REX; break; + case '=': tempi->flags|=IEF_48_REX; break; + case '`': tempi->flags|=IEF_REX_ONLY_R8_R15; break; + case '^': tempi->flags|=IEF_REX_XOR_LIKE; break; + case '$$': tempi->flags|=IEF_ENDING_ZERO; break; + default: + return; + } + Lex(lx); + } +} + +U0 AsmHashLoad(Bool first) +{ + I64 i,j,size,size1; + CInternalType *tempit; + CLex *lx; + CHashGeneric *temph; + CHashReg *tempr; + CHashOpcode *tempo,*tempo1; + CInstruction *tempi; + CHashClass *tempc; + + asm_hash=HashTableNew(2048); + size1=offset(CHashOpcode.ins)+sizeof(CInstruction)<<5; + tempo=MAlloc(size1); + + lx=LexNew(TextFileRead("OpCodes.TXT.Z"),0,StrNew("OpCodes.TXT.Z")); + lx->hash_table_list=NULL; + Lex(lx); + while (lx->token) { + if (lx->token!=TK_IDENT) + LexExcept(lx,"ST_EXPECTING_IDENTIFIER"); + i=ListEntryMatch(lx->ident,"R8\0R16\0R32\0R64\0SEG\0FSTK\0MM\0XMM\0OPCODE\0KEYWORD\0ASM_KEYWORD\0"); + if (i<0) + LexExcept(lx,"Unknown Statement"); + Lex(lx); //skip keyword + if (lx->token!=TK_IDENT) + LexExcept(lx,"ST_EXPECTING_IDENTIFIER"); + switch (i) { + case 8: //OPCODE + MemSet(tempo,0,size1); + tempo->type=HTT_OPCODE; + tempo->instruction_entry_cnt=0; + tempo->str=lx->ident; + lx->ident=0; + Lex(lx); //Skip OPCODE + while (lx->token && lx->token!=';') { + tempi=&tempo->ins[tempo->instruction_entry_cnt]; + tempi->ins_entry_num=tempo->instruction_entry_cnt++; + tempi->slash_val=SV_NONE; //Not zero!! + while (lx->token==TK_INTEGER) { + tempi->opcode[tempi->opcode_cnt++]=lx->cur_i; + Lex(lx); + } + if (lx->token==',') + Lex(lx); + else if (lx->token!=';') + LexExcept(lx,"ST_EXPECTING_COMMA"); + + AsmPrsInsFlags(lx,tempi); + + tempi->arg1=0; + tempi->arg2=0; + if (lx->token==TK_IDENT) { + j=DefineMatch(lx->ident,"ST_ARG_TYPES"); + tempi->arg1=j; + if (ARGT_REL8<=j<=ARGT_REL32 || + ARGT_MOFFS8<=j<=ARGT_MOFFS64) + tempi|=IEF_NO_REX; + + if (Lex(lx)==TK_IDENT) { + j=DefineMatch(lx->ident,"ST_ARG_TYPES"); + Lex(lx); + tempi->arg2=j; + if (ARGT_REL8<=j<=ARGT_REL32 || + ARGT_MOFFS8<=j<=ARGT_MOFFS64) + tempi|=IEF_NO_REX; + } + } + } + size=offset(CHashOpcode.ins)+ + sizeof(CInstruction)*tempo->instruction_entry_cnt; + tempo1=MAlloc(size); + MemCpy(tempo1,tempo,size); + tempo1->use_cnt=0; + if (HashFind(tempo1->str,asm_hash,HTT_OPCODE)) + LexExcept(lx,"ST_DUP_OPCODE_ENTRY"); + HashAdd(tempo1,asm_hash); + break; + case 9: //KEYWORD + case 10: //ASM_KEYWORD + temph=CAlloc(sizeof(CHashGeneric)); + temph->str=lx->ident; + lx->ident=NULL; + Lex(lx); //skip keyword name + if (lx->token!=TK_INTEGER) + LexExcept(lx,"ST_EXPECTING_INTEGER"); + temph->user_data0=lx->cur_i; + if (i==9) {//KEYWORD + temph->type=HTT_KEYWORD; + HashAdd(temph,asm_hash); + if (first) { + temph=MAllocIdentical(temph); + HashAdd(temph,adam_task->hash_table); + } + } else { + temph->type=HTT_ASM_KEYWORD; + HashAdd(temph,asm_hash); + } + Lex(lx); //Skip INT + break; + case REGT_R8: + case REGT_R16: + case REGT_R32: + case REGT_R64: + case REGT_SEG: + case REGT_FSTK: + case REGT_MM: + case REGT_XMM: + tempr=CAlloc(sizeof(CHashReg)); + tempr->str=lx->ident; + lx->ident=NULL; + Lex(lx); //skip keyword name + if (lx->token!=TK_INTEGER) + LexExcept(lx,"ST_EXPECTING_INTEGER"); + tempr->type=HTT_REG; + tempr->reg_type=i; + tempr->reg_num=lx->cur_i; + HashAdd(tempr,asm_hash); + Lex(lx); //Skip INT + break; + } + if (lx->token!=';') + LexExcept(lx,"ST_MISSING_SEMICOLON"); + Lex(lx); //Skip ';' + } + Free(tempo); + LexDel(lx); + for (i=0;itype=HTT_INTERNAL_TYPE; + tempc->sub_type=tempit->type; + Bts(&tempc->flags,Cf_INTERNAL_TYPE); + tempc->size=tempit->size; + tempc->str=AStrNew(tempit->name); + HashAdd(tempc,asm_hash); + sys_internal_types[tempc->sub_type]=tempc; + if (first) { + tempc=MAllocIdentical(tempc); + HashAdd(tempc,adam_task->hash_table); + } + } +} + + +U0 CmpLoadDefines() +{ + DefineLoad("ST_ERR",ST_ERR_ST); + DefineLoad("ST_WARN",ST_WARN_ST); + DefineLoad("ST_MISSING_SEMICOLON","missing ';' at"); + DefineLoad("ST_MISSING_EXPRESSION","missing Expression at "); + DefineLoad("ST_MISSING_RIGHT_PAREN","missing ')' at "); + DefineLoad("ST_MISSING_RIGHT_BRACKET","missing ']' at "); + DefineLoad("ST_MISSING_COLON","missing ':' at"); + DefineLoad("ST_UNDEFINED_SYM","undefined sym at "); + DefineLoad("ST_UNDEFINED_SYM_LINE","undefined sym at line:"); + DefineLoad("ST_UNDEFINED_IDENTIFIER","undefined identifier at "); + DefineLoad("ST_INVALID_CLASS","invalid class at "); + DefineLoad("ST_INVALID_MEMBER","invalid member at "); + DefineLoad("ST_EXPECTING_TYPE","expecting type at "); + DefineLoad("ST_EXPECTING_IDENTIFIER","expecting identifier at "); + DefineLoad("ST_EXPECTING_RIGHT_PAREN","expecting ')' at "); + DefineLoad("ST_EXPECTING_LEFT_BRACE","expecting '{' at "); + DefineLoad("ST_EXPECTING_EQUAL","expecting '=' at "); + DefineLoad("ST_MISSING_RIGHT_BRACE","missing '}' at "); + DefineLoad("ST_INVALID_LVAL","invalid lval at "); + DefineLoad("ST_EXPECTING_COMMA","expecting ',' at "); + DefineLoad("ST_EXPECTING_SYS_SYM","expecting System sym at "); + DefineLoad("ST_MISSING_WHILE","missing 'while' at"); + DefineLoad("ST_ALREADY_ONE_IMMEDIATE","already one immediate at "); + DefineLoad("ST_SYNTAX_ERROR","syntax error at "); + DefineLoad("ST_EXPECTING_SCALE_FACTOR","expecting scale factor at "); + DefineLoad("ST_EXPECTING_LEFT_PAREN","expecting '(' at "); + DefineLoad("ST_UNDEFINED_DUP_CNT","undefined DUP cnt at "); + DefineLoad("ST_NO_LOCAL_GLBL_EXPORT","no local glbl exports at "); + DefineLoad("ST_EXPECTING_COLON","expecting ':' at "); + DefineLoad("ST_EXPECTING_DOT","expecting '.' at "); + DefineLoad("ST_EXPECTING_LOCAL_VAR","expecting local var at "); + DefineLoad("ST_REDEFINITION","redefinition at "); + DefineLoad("ST_INVALID_INSTRUCTION","invalid instruction at "); + DefineLoad("ST_BRANCH_OUT_OF_RANGE","branch out of range at "); + DefineLoad("ST_BRANCH_OUT_OF_RANGE_LINE","branch out of range at line:"); + DefineLoad("ST_ATTEMPT_DEFINE_IMPORT","attempt to define import at "); + DefineLoad("ST_COULD_USE_I8_DISP","could use I8 displacement at "); + DefineLoad("ST_COULD_USE_I8_DISP_LINE","could use I8 displacement at line:"); + DefineLoad("ST_PTR_TO_U0","use \"U8 *\" instead of \"U0 *\" at "); + DefineLoad("ST_NO_SIZE_SPECIFIED","no size specified at "); + DefineListLoad("ST_IT_TYPES","I0\0U0\0I8\0U8\0I16\0U16\0I32\0U32\0I64\0U64\0F64\0uF64\0"); + DefineListLoad("ST_TY_TYPES","NULL\0IMM\0REG\0DISP\0SIB\0RIP\0STK\0"); + DefineListLoad("ST_U8_REGS","AL\0CL\0DL\0BL\0AH\0CH\0DH\0BH\0" + "R8u8\0R9u8\0R10u8\0R11u8\0R12u8\0R13u8\0R14u8\0R15u8\0"); + DefineListLoad("ST_U8_REX_REGS","AL\0CL\0DL\0BL\0RSPu8\0RBPu8\0RSIu8\0RDIu8\0" + "R8u8\0R9u8\0R10u8\0R11u8\0R12u8\0R13u8\0R14u8\0R15u8\0"); + DefineListLoad("ST_U16_REGS","AX\0CX\0DX\0BX\0SP\0BP\0SI\0DI\0" + "R8u16\0R9u16\0R10u16\0R11u16\0R12u16\0R13u16\0R14u16\0R15u16\0"); + DefineListLoad("ST_U32_REGS","EAX\0ECX\0EDX\0EBX\0ESP\0EBP\0ESI\0EDI\0" + "R8u32\0R9u32\0R10u32\0R11u32\0R12u32\0R13u32\0R14u32\0R15u32\0"); + DefineListLoad("ST_U64_REGS","RAX\0RCX\0RDX\0RBX\0RSP\0RBP\0RSI\0RDI\0" + "R8\0R9\0R10\0R11\0R12\0R13\0R14\0R15\0"); + DefineListLoad("ST_MM_REGS","MM0\0MM1\0MM2\0MM3\0MM4\0MM5\0MM6\0MM7\0"); + DefineListLoad("ST_XMM_REGS","XMM0\0XMM1\0XMM2\0XMM3\0XMM4\0XMM5\0XMM6\0XMM7\0"); + DefineListLoad("ST_OPCODE_MODIFIERS","NO\0CB\0CW\0CD\0CP\0IB\0IW\0ID\0"); + DefineListLoad("ST_ARG_TYPES", + "NO\0REL8\0REL16\0REL32\0UIMM8\0UIMM16\0UIMM32\0UIMM64\0" + "R8\0R16\0R32\0R64\0" + "IMM8\0IMM16\0IMM32\0IMM64\0RM8\0RM16\0RM32\0RM64\0" + "M8\0M16\0M32\0M64\0" + "M1632\0M16N32\0M16N16\0M32N32\0" + "MOFFS8\0MOFFS16\0MOFFS32\0MOFFS64\0" + "AL\0AX\0EAX\0RAX\0CL\0DX\0 \0SREG\0" + "SS\0DS\0ES\0FS\0GS\0CS\0ST0\0STI\0" + "MM\0MM32\0MM64\0XMM\0XMM32\0XMM64\0XMM128\0XMM0\0"); + DefineListLoad("ST_SEG_REGS","ES\0CS\0SS\0DS\0FS\0GS\0"); + DefineListLoad("ST_FSTK_REGS","ST0\0ST1\0ST2\0ST3\0ST4\0ST5\0ST6\0ST7\0"); + DefineLoad("ST_EXPECTING_INTEGER","expecting integer at "); + DefineLoad("ST_USE_POSTFIX_CAST","Use SparrowOS postfix typecasting at "); + DefineLoad("ST_PRS_INTERNAL_ERROR","Compiler Parse Error at "); + DefineLoad("ST_OPT_INTERNAL_ERROR","Compiler Optimization Error at "); + DefineLoad("ST_UNRESOLVED_REFERENCE","Unresolved Reference:"); + DefineLoad("ST_SCANNING_DIR","Scanning Directory:"); + DefineLoad("ST_UNUSED_VAR","Unused var "); + DefineLoad("ST_UNNEEDED_NOUNUSEDWARN","Unneeded nounusedwarn "); + DefineLoad("ST_UNUSED_EXTERN","Unused extern "); + DefineLoad("ST_UNUSED_LABEL","Unused label "); + DefineLoad("ST_UNUSED_LABEL_AT","Unused label at "); + DefineLoad("ST_NOT_ALLOWED_IN_FUN","Not allowed in fun"); + DefineLoad("ST_MISSING_CATCH","missing 'catch' at"); + DefineLoad("ST_UNDEFINED_GOTO_LABEL","Undefined goto label "); + DefineLoad("ST_UNDEFINED_GOTO_LABEL_AT","Undefined goto label at "); + DefineLoad("ST_DUP_GOTO_LABEL","Duplicate goto label at "); + DefineLoad("ST_BREAK_NOT_ALLOWED","'break' not allowed\n"); + DefineLoad("ST_ERRORS_WARNINGS","Errs:%d Warns:%d Code:%X Size:%X\n"); + DefineLoad("ST_IMPORT_NOT_NEEDED","import not needed at "); + DefineLoad("ST_CASE_RANGE_ERROR","switch range error at "); + DefineLoad("ST_LEX_STK_OVERFLOW","Lex Stk overflow"); + DefineLoad("ST_ASSERT_FAILED","Assert Failed "); + DefineLoad("ST_ADDR_EXTERN","Can't take addr of extern fun"); + DefineLoad("ST_EXTERNS_NOT_ALLOWED","Extern Not Allowed at "); + DefineLoad("ST_UNNECESSARY_PARENTHESIS","Unnecessary parenthesis"); + DefineLoad("ST_STATIC_UNION","Static unions are not implemented"); + DefineLoad("ST_IMPORT_HASH_TABLE_NOT_ALLOWED","import_hash_table only allowed in static compiled #exe{} mode."); + DefineLoad("ST_CANT_INIT_GLBL_ON_HEAP","Can't init glbl var on data heap in static module"); + DefineLoad("ST_INVALID_ARRAY_SIZE","Invalid array size at "); + DefineLoad("ST_NO_FUN_ASM_ALIGN","ALIGN not allowed in fun asm blk "); + DefineLoad("ST_ALIGN_MUST_BE_POWER_OF_TWO","ALIGN must be power of two at "); + DefineLoad("ST_ALIGN_TOO_LARGE","In JIT mode, max ALIGN is 8 "); + DefineLoad("ST_FUN_SIZE_NOT_DEFINED","Function size not defined at "); + DefineLoad("ST_DUP_MEMBER","Duplicate member at "); + DefineLoad("ST_DUP_TYPE","Duplicate type at "); + DefineLoad("ST_FUN_PTR_FUN_PTR","Duplicate fun pointer at "); + DefineLoad("ST_EXPECTING_STAR","Expecting '*' at "); + DefineLoad("ST_EXPECTING_AMPERSAND","Expecting '&' at "); + DefineLoad("ST_NOT_IMPLEMENTED","Feat not implemented"); + DefineLoad("ST_DUP_CASE","Duplicate case at "); + DefineLoad("ST_DEREF_U0","Dereference U0 "); + DefineLoad("ST_ASSIGN_U0","Assign U0 "); + DefineLoad("ST_NO_GLBL_LABELS","No global labels at "); + DefineLoad("ST_SHOULD_RETURN_VAL","Function should return val "); + DefineLoad("ST_CANT_RETURN_VAL","Not in fun. Can't return a val "); + DefineLoad("ST_SHOULD_NOT_RETURN_VAL","Function should NOT return val "); + DefineLoad("ST_DUP_OPCODE_ENTRY","Duplicate OPCODE entry "); + DefineLoad("ST_IN_FUN","in fun "); + DefineLoad("ST_NOT_ARRAY_OR_PTR","not array or ptr "); + DefineLoad("ST_16BIT_UNASM","16-bit unassembly is not well supported.\n"); + DefineLoad("ST_CANT_REG_VAR","Can't reg var "); + DefineLoad("ST_ILLEGAL_FWD_REF","Illegal fwd ref at "); + DefineLoad("ST_REG_IN_USE","Register in use "); + DefineLoad("ST_ONE_BASE_CLASS","Only one base class allowed at this time at "); + DefineLoad("ST_ADD_NOT_VAL","Must be address, not value "); + DefineLoad("ST_HEADER_FOR_PRINTF","Missing header for PrintF(), PutS() and PutChar() at "); + DefineLoad("ST_HEADER_FOR_SYSTRY","Missing header for SysTry() and SysUntry() at "); +$AN,"Anchor for inserting Compiler Defines","COMPILE_DEFINE"$ + + + DefineListLoad("ST_INTERMEDIATE_CODE", +// '*' means it is a dereference instruction +// '=' means it is an assignment instruction +// '^' means it is a compare instruction + +// '9' arg cnt means var + +// 'N' means not constant. Sets LF_NOT_CONSTANT +// which means an expression contains mem +// accesses or things which might change. + +// arg cnt,result cnt,deref/assign/cmp,nonconst,might not fill result +"00..END\0" +"00..START\0" +"00..NOP\0" +"10..END_EXP\0" +"00..NOP1\0" +"00..LABEL\0" +"00..CALL_START\0" +"01..CALL_END\0" +"00..CALL_END2\0" +"10..RETURN_VAL\0" +"00..RETURN_VAL2\0" +"01..IMM\0" +"01..F64\0" +"01.NSTR_CONST\0" +"01.NABS_ADDR\0" +"01.NADDR_IMPORT\0" +"01.NHEAP_GLBL\0" +"01..SIZEOF\0" +"01..TYPE\0" +"01.NGET_LABEL\0" +"01.NRBP\0" +"01.NREG\0" +"00.NFS\0" +"01.NMOV_FS\0" +"00.NGS\0" +"01.NMOV_GS\0" +"01.NLEA\0" +"01.NMOV\0" +"10..TO_I64\0" +"10..TO_F64\0" +"10..TO_BOOL\0" +"10..TOUPPER\0" +"11..NATIVE_TYPECAST\0" +"11.NADDR\0" +"11..COM\0" +"11..NOT\0" +"11..UNARY_MINUS\0" +"11*NDEREF\0" +"11*NDEREF_PP\0" +"11*NDEREF_MM\0" +"11*N_PP\0" +"11*N_MM\0" +"11*NPP_\0" +"11*NMM_\0" +"21..SHL\0" +"21..SHR\0" +"11=.SHL_CONST\0" +"11=.SHR_CONST\0" +"21..POWER\0" +"21..MUL\0" +"21..DIV\0" +"21..MOD\0" +"21..AND\0" +"21..OR\0" +"21..XOR\0" +"21..ADD\0" +"21..SUB\0" +"11=.ADD_CONST\0" +"11=.SUB_CONST\0" +"21^.EQUAL_EQUAL\0" +"21^.NOT_EQUAL\0" +"21^.LESS\0" +"21^.GREATER\0" +"21^.LESS_EQUAL\0" +"21^.GREATER_EQUAL\0" +"01..PUSH_CMP\0" +"21..AND_AND\0" +"21..OR_OR\0" +"21..XOR_XOR\0" +"31..COLON\0" +"00..QUESTION\0" +"21=NASSIGN\0" +"21=NASSIGN_PP\0" +"21=NASSIGN_MM\0" +"21=NSHL_EQUAL\0" +"21=NSHR_EQUAL\0" +"21=NMUL_EQUAL\0" +"21=NDIV_EQUAL\0" +"21=NMOD_EQUAL\0" +"21=NAND_EQUAL\0" +"21=NOR_EQUAL\0" +"21=NXOR_EQUAL\0" +"21=NADD_EQUAL\0" +"21=NSUB_EQUAL\0" +"00..JMP\0" +"20..SWITCH\0" +"20..NOBOUND_SWITCH\0" +"90..ADD_RSP\0" +"90..ADD_RSP1\0" +"00..ENTER\0" +"00=.PUSH_REGS\0" +"00=.POP_REGS\0" +"00..LEAVE\0" +"00..RET\0" +"00.NCALL\0" +"00.NCALL_INDIRECT\0" +"00.NCALL_INDIRECT2\0" +"00.NCALL_IMPORT\0" +"00.NCALL_EXTERN\0" +"00.NIRQ\0" +"00.NASM\0" +"00.NCLI\0" +"00.NSTI\0" +"10.NPREEMPT\0" +"00.NCLD\0" +"00.NSTD\0" +"00.NHLT\0" +"10.NPUSH\0" +"00.NPOP\0" +"00.NPUSHFD\0" +"00.NPOPFD\0" +"00.NPAUSE\0" +"10.NCLFLUSH\0" +"10.NINVLPG\0" +"10.NINU8\0" +"10.NINU16\0" +"10.NINU32\0" +"20.NOUTU8\0" +"20.NOUTU16\0" +"20.NOUTU32\0" +"00.NGET_FLAGS\0" +"10.NSET_FLAGS\0" +"00.NGET_RAX\0" +"10.NSET_RAX\0" +"00.NGET_BASE_PTR\0" +"10.NSET_BASE_PTR\0" +"00.NGET_STK_PTR\0" +"10.NSET_STK_PTR\0" +"01.NRIP\0" +"00.NRDTSC\0" +"00.NHPET\0" +"20.NBT\0" +"20.NBTS\0" +"20.NBTR\0" +"20.NBTC\0" +"30.NBEQU\0" +"20.NLBTS\0" +"20.NLBTR\0" +"20.NLBTC\0" +"30.NLBEQU\0" +"10.NBSF\0" +"10.NBSR\0" +"10.NQUE_INIT\0" +"20.NQUE_INS\0" +"20.NQUE_INS_REV\0" +"10.NQUE_REM\0" +"10.NSTRLEN\0" +"30.NMEMCPY\0" +"30.NMEMSET\0" +"30.NMEMSET_U16\0" +"30.NMEMSET_U32\0" +"30.NMEMSET_U64\0" +"10..BR_ZERO\0" +"10..BR_NOT_ZERO\0" +"20..BR_NOT_EQUAL\0" +"20..BR_EQUAL_EQUAL\0" +"20..BR_GREATER_EQUAL\0" +"20..BR_LESS_EQUAL\0" +"20..BR_GREATER\0" +"20..BR_LESS\0" +"21..BR_2NOT_EQUAL\0" +"21..BR_2EQUAL_EQUAL\0" +"21..BR_2GREATER_EQUAL\0" +"21..BR_2LESS_EQUAL\0" +"21..BR_2GREATER\0" +"21..BR_2LESS\0" +"20..BR_AND_ZERO\0" +"20..BR_AND_NOT_ZERO\0" +"10.NBR_MM_ZERO\0" +"10.NBR_MM_NOT_ZERO\0" +"20..BR_AND_AND_ZERO\0" +"20..BR_AND_AND_NOT_ZERO\0" +"20..BR_OR_OR_ZERO\0" +"20..BR_OR_OR_NOT_ZERO\0" +"20.NBR_BT\0" +"20.NBR_BTS\0" +"20.NBR_BTR\0" +"20.NBR_BTC\0" +"20.NBR_LBTS\0" +"20.NBR_LBTR\0" +"20.NBR_LBTC\0" +"20.NBR_NOT_BT\0" +"20.NBR_NOT_BTS\0" +"20.NBR_NOT_BTR\0" +"20.NBR_NOT_BTC\0" +"20.NBR_NOT_LBTS\0" +"20.NBR_NOT_LBTR\0" +"20.NBR_NOT_LBTC\0" +"20.NSWAP_U8\0" +"20.NSWAP_U16\0" +"20.NSWAP_U32\0" +"20.NSWAP_U64\0" +"10..ABS_I64\0" +"10..SIGN_I64\0" +"20..MIN_I64\0" +"20..MIN_U64\0" +"20..MAX_I64\0" +"20..MAX_U64\0" +"30..LIMIT_I64\0" +"30..LIMIT_U64\0" +"20..MOD_U64\0" +"10..SQRI64\0" +"10..SQRU64\0" +"11..SQR\0" +"11..ABS\0" +"11..SQRT\0" +"11..SIN\0" +"11..COS\0" +"11..TAN\0" +"11..ATAN\0" +);$AN,"Anchor for adding intermediate codes","IC_INIT_TABLE"$ + +} + +U0 CmpFillTables() +{ + U8 *st; + I64 i,k; + U32 *u,*d4; + + assign_bitmap=CAlloc((IC_NUM_ENTRIES+7)>>3); + deref_bitmap=CAlloc((IC_NUM_ENTRIES+7)>>3); + cmp_bitmap=CAlloc((IC_NUM_ENTRIES+7)>>3); + not_constant_bitmap=CAlloc((IC_NUM_ENTRIES+7)>>3); + fpop_bitmap=CAlloc((IC_NUM_ENTRIES+7)>>3); + cmp_arg_cnt=CAlloc(IC_NUM_ENTRIES); + cmp_result_cnt=CAlloc(IC_NUM_ENTRIES); + st=Define("ST_INTERMEDIATE_CODE"); + for (i=0;i'; + u['/']='*'; + u[':']=TK_DBL_COLON<<16+':'; + u['<']=TK_LESS_EQUAL<<16+'='; + u['=']=TK_EQUAL_EQUAL<<16+'='; + u['>']=TK_GREATER_EQUAL<<16+'='; + u['^']=TK_XOR_EQUAL<<16+'='; + u['|']=TK_OR_OR<<16+'|'; + u['%']=TK_MOD_EQUAL<<16+'='; + + u=CAlloc(sizeof(U32)*TK_NUM_TK); + dual_U16_tokens2=u; + u['&']=TK_AND_EQUAL<<16+'='; + u['+']=TK_ADD_EQUAL<<16+'='; + u['-']=TK_MINUS_MINUS<<16+'-'; + u['/']='/'; + u['<']=TK_SHL<<16+'<'; + u['>']=TK_SHR<<16+'>'; + u['^']=TK_XOR_XOR<<16+'^'; + u['|']=TK_OR_EQUAL<<16+'='; + + u=CAlloc(sizeof(U32)*TK_NUM_TK); + dual_U16_tokens3=u; + u['-']=TK_SUB_EQUAL<<16+'='; + u['/']=TK_DIV_EQUAL<<16+'='; + +//$AN,"","OP_precedence"$Here the operator precedences are +//defined. + d4=CAlloc(sizeof(U32)*TK_NUM_TK); + unary_ops_table=d4; + d4['~']=PREC_UNARY_PRE<<16+IC_COM; + d4['!']=PREC_UNARY_PRE<<16+IC_NOT; + d4['-']=PREC_UNARY_PRE<<16+IC_UNARY_MINUS; + d4['&']=PREC_UNARY_PRE<<16+IC_ADDR; + d4['*']=PREC_UNARY_PRE<<16+IC_DEREF; + + + d4=CAlloc(sizeof(U32)*TK_NUM_TK); + binary_ops_table=d4; + + d4['`'] =(PREC_EXP+ASSOCF_RIGHT)<<16+IC_POWER; + d4[TK_SHL] =(PREC_EXP+ASSOCF_LEFT)<<16+IC_SHL; + d4[TK_SHR] =(PREC_EXP+ASSOCF_LEFT)<<16+IC_SHR; + + d4['*'] =PREC_MUL<<16+IC_MUL; + d4['/'] =(PREC_MUL+ASSOCF_LEFT)<<16+IC_DIV; + d4['%'] =(PREC_MUL+ASSOCF_LEFT)<<16+IC_MOD; + + d4['&'] =PREC_AND<<16+IC_AND; + + d4['^'] =PREC_XOR<<16+IC_XOR; + + d4['|'] =PREC_OR<<16+IC_OR; + + d4['+'] =PREC_ADD<<16+IC_ADD; + d4['-'] =(PREC_ADD+ASSOCF_LEFT)<<16+IC_SUB; + + d4['<'] =PREC_CMP<<16+IC_LESS; + d4['>'] =PREC_CMP<<16+IC_GREATER; + d4[TK_LESS_EQUAL] =PREC_CMP<<16+IC_LESS_EQUAL; + d4[TK_GREATER_EQUAL] =PREC_CMP<<16+IC_GREATER_EQUAL; + + d4[TK_EQUAL_EQUAL] =PREC_CMP2<<16+IC_EQUAL_EQUAL; + d4[TK_NOT_EQUAL] =PREC_CMP2<<16+IC_NOT_EQUAL; + + d4[TK_AND_AND] =PREC_AND_AND<<16+IC_AND_AND; + + d4[TK_XOR_XOR]=PREC_XOR_XOR<<16+IC_XOR_XOR; + + d4[TK_OR_OR] =PREC_OR_OR<<16+IC_OR_OR; + + d4[':'] =(PREC_QUEST+ASSOCF_LEFT)<<16+IC_COLON; + d4['?'] =(PREC_QUEST+ASSOCF_LEFT)<<16+IC_QUESTION; + + d4['='] =(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_ASSIGN; + d4[TK_SHL_EQUAL]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_SHL_EQUAL; + d4[TK_SHR_EQUAL]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_SHR_EQUAL; + d4[TK_MUL_EQUAL]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_MUL_EQUAL; + d4[TK_DIV_EQUAL]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_DIV_EQUAL; + d4[TK_MOD_EQUAL]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_MOD_EQUAL; + d4[TK_AND_EQUAL]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_AND_EQUAL; + d4[TK_OR_EQUAL] =(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_OR_EQUAL; + d4[TK_XOR_EQUAL]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_XOR_EQUAL; + d4[TK_ADD_EQUAL]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_ADD_EQUAL; + d4[TK_SUB_EQUAL]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_SUB_EQUAL; +} diff --git a/SparrowOS/Compiler/CmpMain.CPP b/SparrowOS/Compiler/CmpMain.CPP new file mode 100644 index 0000000..ebb1b3c --- /dev/null +++ b/SparrowOS/Compiler/CmpMain.CPP @@ -0,0 +1,688 @@ +U0 StreamPutS(U8 *st) +//Inss text into the stream of +//characters being compiled. Called +//from withing #exe{} block. +{ + CLex *lx=Fs->last_lex; + CStreamBlk *tempe=lx->last_stream_blk; + if (tempe!=&lx->next_stream_blk) + tempe->body=StrAdd(tempe->body,st); + else + PrintFErr("No exe{} blk\n"); +} + +U0 StreamPrintF(U8 *src,...) +//Inss text into the stream of +//characters being compiled. Called +//from withing #exe{} block. +{ + U8 *buf=SPrintFJoin(NULL,src,argc,argv); + StreamPutS(buf); + Free(buf); +} + +U8 *CmpStatement(CLex *lx,I64 *type) +{ + I64 size,i,j,k,*result=INVALID_PTR; + CIntermediateCode *tempi; + if (type) *type=IT_I64; + Btr(&lx->flags,Lf_OPT_TRACE_PRESENT); + if (lx->a_depth==2) + CBPush(lx); + CBOutPtrsInit(lx); + CBICAdd(lx,IC_START,0,0); //So we can scan back an instruction + tempi=lx->cbh.cb_last_out_ptr; + if (!PrsStatement(lx,NULL)) { + if (tempi!=lx->cbh.cb_last_out_ptr) { + CBICAdd(lx,IC_RETURN_VAL2,0,NULL); + CBICAdd(lx,IC_RET,0,0); + CBICAdd(lx,IC_END,0,0); + if (result=CBCompile(lx,NULL,&size,NULL,NULL,type)) { + if (lx->flags&LF_STATIC_COMPILE) { + j=lx->a->ip; + k=(size+7)>>3; + for (i=0;icbh.cb_out_first); + } else + LinkedListDel(lx->cbh.cb_out_first); + if (lx->a_depth==2) + CBPop(lx); + return result; +} + + +CExe *CmpJoin(CLex *lx,CHashFun *locals,Bool first_lex,Bool asm_blk=FALSE, + U8 *map_name=NULL,U8 mapfile_drv=0) +{ + CAsmCtrl *a,*old_a=lx->a; + I64 i,j,l; + CAsmCodeBlk *tempc; + CExeImportExport *tempe; + Bool okay=TRUE; + CHashTable *ht1=lx->hash_table_list, + *ht2=lx->define_hash_table, + *ht3=lx->glbl_hash_table, + *ht4=lx->local_hash_table, + *asm_hash_alias=MAllocIdentical(asm_hash); + CHashFun *old_var_list=lx->local_var_list; + CExe *result=CAlloc(sizeof(CExe)); + result->parent_exe=lx->exe_struct; + lx->exe_struct=result; + + result->next_ie=result->last_ie=&result->next_ie; + lx->a=a=CAlloc(sizeof(CAsmCtrl)); + lx->a_depth++; + + a->code=CAlloc(sizeof(CAsmCodeBlk)); + a->max_align=1; + + lx->local_hash_table=HashTableNew(16); + lx->glbl_hash_table =HashTableNew(2048); + + asm_hash_alias->next=lx->local_hash_table; + lx->local_hash_table->next=lx->glbl_hash_table; + + if (lx->flags&LF_STATIC_COMPILE) + lx->define_hash_table=lx->glbl_hash_table; + else + lx->glbl_hash_table->next=Fs->hash_table; + lx->hash_table_list =asm_hash_alias; + + lx->local_var_list=locals; //C+ local vars + try { + if (first_lex) + Lex(lx); + if (lx->flags&LF_STATIC_COMPILE) { + while (lx->token!=TK_EOF) { + i=CmpStatement(lx,NULL); + if (i!=INVALID_PTR) { + tempe=CAlloc(sizeof(CExeImportExport)); + tempe->type=EIE_MAIN; + tempe->ip=i; + QueIns(tempe,result->last_ie); + } + if (asm_blk) + break; + } + } else + PrsStatement(lx,NULL); + AsmGlblsResolve(lx,result); + } catch { + if (Fs->except_argc>0 && Fs->except_argv[0]==EXCEPT_COMPILER && + !asm_blk) { + if (Fs->except_argc>1 && Fs->except_argv[1]) { + "Compiler exception #%d\n",Fs->except_argv[1]; + LexPutPos(lx); + } + Fs->catch_except=TRUE; + } + okay=FALSE; + } + if (!okay) { + if (lx->error_cnt<1) + lx->error_cnt=1; + lx->exe_struct=result->parent_exe; + Free(result); + LinkedListDel(a->code); + result=NULL; + } else { + if (map_name && !cmp_do_not_write_to_dsk) + HashRep(lx->glbl_hash_table,HTG_ALL,map_name,"-r-p",mapfile_drv); + HashTableDel(lx->local_hash_table); + HashTableDel(lx->glbl_hash_table); + + if (!a->num_code_U8s) + result->code=NULL; + else { + if (lx->flags&LF_STATIC_COMPILE) + result->code=MAlloc(a->num_code_U8s); + else + result->code=MAlloc(a->num_code_U8s,Fs->code_heap); + result->code_U8s=a->num_code_U8s; + tempc=a->code; + j=0; + l=a->num_code_U8s; + while (tempc) { + i=l; + if (i>ASM_CODE_BLK_SIZE) + i=ASM_CODE_BLK_SIZE; + MemCpy(result->code+j,tempc->body,i); + j+=i; + l-=i; + tempc=tempc->next; + } + } + LinkedListDel(a->code); + result->abss=a->abss; + result->heap_glbls=a->heap_glbls; + result->max_align=a->max_align; + lx->exe_struct=result->parent_exe; + } + lx->hash_table_list =ht1, + lx->define_hash_table=ht2; + lx->glbl_hash_table =ht3; + lx->local_hash_table =ht4; + lx->local_var_list=old_var_list; + Free(asm_hash_alias); + Free(a); + lx->a=old_a; + lx->a_depth--; + return result; +} + +CExe *CmpBuf(U8 *buf,U8 *map_name=NULL, + I64 *error_cnt=NULL, I64 *warning_cnt=NULL,U8 mapfile_drv=0) +{ + CLex *lx; + CExe *result=NULL; + if (!is_first_compiler) + "$$FG,PURPLE$$**** Not First Compiler ****$$FG$$\n"; + lx=LexNew(buf,LF_DONT_FREE_BUF,NULL); + lx->flags|=LF_STATIC_COMPILE; + QueIns(lx,Fs->last_lex); + result=CmpJoin(lx,NULL,TRUE,FALSE,map_name,mapfile_drv); + if (error_cnt) *error_cnt=lx->error_cnt; + if (warning_cnt) *warning_cnt=lx->warning_cnt; + QueRem(lx); + if (result) + LexDel(lx); + return result; +} + +U0 CmpFixUpJITAsm(CLex *lx,CExe *ex,I64 ip2) +{ + I64 i,*str=NULL; + U8 *ptr; + CExeAbsAddr *tempa,*tempa1; + CExeImportExport *tempe,*tempe1; + CHashExport *tempess; + CHashFun *tempf; + CHashGlblVar *tempg; + + tempa=ex->abss; + while (tempa) { + tempa1=tempa->next; + nobound_switch (tempa->type) { + case EAA_ADD_U8: + *(ex->code(U8 *)+tempa->ip)(U8 *)+=ip2; + break; + case EAA_SUB_U8: + *(ex->code(U8 *)+tempa->ip)(U8 *)-=ip2; + break; + case EAA_ADD_U16: + *(ex->code(U8 *)+tempa->ip)(U16 *)+=ip2; + break; + case EAA_SUB_U16: + *(ex->code(U8 *)+tempa->ip)(U16 *)-=ip2; + break; + case EAA_ADD_U32: + *(ex->code(U8 *)+tempa->ip)(U32 *)+=ip2; + break; + case EAA_SUB_U32: + *(ex->code(U8 *)+tempa->ip)(U32 *)-=ip2; + break; + case EAA_ADD_U64: + *(ex->code(U8 *)+tempa->ip)(I64 *)+=ip2; + break; + case EAA_SUB_U64: + *(ex->code(U8 *)+tempa->ip)(I64 *)-=ip2; + break; + } + Free(tempa); + tempa=tempa1; + } + tempe=ex->next_ie; + while (tempe!=&ex->next_ie) { + tempe1=tempe->next; + if (tempe->str) { + Free(str); + str=tempe->str; + } + if (tempe->type<=EIE_LIT_EXPORT) { + tempess=CAlloc(sizeof(CHashExport)); + tempess->str=str; + str=NULL; + tempess->type=HTT_EXPORT_SYS_SYM|HTF_LIT; + if (tempe->type==EIE_LIT_EXPORT) + tempess->val=tempe->ip; + else + tempess->val=tempe->ip+ip2; + tempess->src_link=tempe->src_link; + tempe->src_link=NULL; + if (IsReplaceSyms) + HashReplace(tempess,Fs->hash_table); + else + HashAdd(tempess,Fs->hash_table); + SysSymImportsResolve(tempess->str); + } else if (tempe->typestr && !(tempess=HashFind(str,Fs->hash_table,HTG_ALL-HTT_IMPORT_SYS_SYM))) + "%S%s\n","ST_UNRESOLVED_REFERENCE",str; + else { + ptr=tempe->ip+ip2; + if (tempess->type & HTT_FUN) { + tempf=tempess; + if (tempe->type & 1) + i=tempf->executable_addr; + else + i=tempf->executable_addr-ex->code; + } else if (tempess->type & HTT_GLBL_VAR) { + tempg=tempess; + if (tempe->type & 1) + i=tempg->data_addr; + else + i=tempg->data_addr-ex->code; + } else { + if (tempe->type & 1) + i=tempess->val; + else + i=tempess->val(U8 *)-ex->code; + } + if (tempe->type<=EIE_LIT_U8) + *ptr(U8 *)+=i; + else if (tempe->type<=EIE_LIT_U16) + *ptr(U16 *)+=i; + else if (tempe->type<=EIE_LIT_U32) + *ptr(U32 *)+=i; + else if (tempe->type<=EIE_LIT_U64) + *ptr(I64 *)+=i; + } + } + Free(tempe->src_link); + Free(tempe); + tempe=tempe1; + } + Free(str); + if (!lx->a_depth && Bt(&lx->opts,OPTf_COMPILE_TRACE)) + Un(ex->code,ex->code_U8s,64); + Free(ex); +} + +U0 CmpFixUpStaticAsm(CLex *lx,CExe *ex,I64 ip2) +{ + CAsmCtrl *a=lx->a; + U8 *ptr; + CExeAbsAddr *tempa,*tempa1; + CExeImportExport *tempe,*tempe1; + + tempa=ex->abss; + while (tempa) { + tempa1=tempa->next; + tempa->next=a->abss; + nobound_switch (tempa->type) { + case EAA_ADD_U8: + *(ex->code(U8 *)+tempa->ip)(U8 *)+=ip2; + break; + case EAA_SUB_U8: + *(ex->code(U8 *)+tempa->ip)(U8 *)-=ip2; + break; + case EAA_ADD_U16: + *(ex->code(U8 *)+tempa->ip)(U16 *)+=ip2; + break; + case EAA_SUB_U16: + *(ex->code(U8 *)+tempa->ip)(U16 *)-=ip2; + break; + case EAA_ADD_U32: + *(ex->code(U8 *)+tempa->ip)(U32 *)+=ip2; + break; + case EAA_SUB_U32: + *(ex->code(U8 *)+tempa->ip)(U32 *)-=ip2; + break; + case EAA_ADD_U64: + *(ex->code(U8 *)+tempa->ip)(I64 *)+=ip2; + break; + case EAA_SUB_U64: + *(ex->code(U8 *)+tempa->ip)(I64 *)-=ip2; + break; + } + a->abss=tempa; + tempa->ip+=ip2; + tempa=tempa1; + } + + tempe=ex->next_ie; + while (tempe!=&ex->next_ie) { + tempe1=tempe->next; + QueRem(tempe); + if (tempe->type<=EIE_LIT_EXPORT) + tempe->ip+=ip2; + else if (tempe->typecode(U8 *)+tempe->ip; + if (tempe->type<=EIE_LIT_U8) + *ptr(U8 *)-=ip2; + else if (tempe->type<=EIE_LIT_U16) + *ptr(U16 *)-=ip2; + else if (tempe->type<=EIE_LIT_U32) + *ptr(U32 *)-=ip2; + else if (tempe->type<=EIE_LIT_U64) + *ptr(I64 *)-=ip2; + tempe->ip+=ip2; + } + QueIns(tempe,ex->parent_exe->last_ie); + tempe=tempe1; + } + Free(ex); +} + +I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0) +{ //Compile file + U8 *ptr,*fbuf=NULL,*fbuf2=NULL,*fbuf3=NULL, + *patch_table=MAlloc(0x20000); + CExe *ex; + I64 i,cnt,size=0,error_cnt=0,warning_cnt=0,code_U8s=0; + CBinFile *bfh; + CExeImportExport *tempe,*tempe1; + CExeAbsAddr *tempa,*tempa1; + CExeHeapGlblRef *temphgr,*temphgr1; + CExeHeapGlbl *temphg,*temphg1; + + fbuf=DftExt(filename,"PRJ.Z"); + fbuf2=MSPrintF("#include \"%s\"",fbuf); + if (map_name) + fbuf3=DftExt(map_name,"MAP.Z"); + ex=CmpBuf(fbuf2,fbuf3,&error_cnt,&warning_cnt,mapfile_drv); + + if (ex) { + code_U8s=ex->code_U8s; + ptr=patch_table; + *ptr++=EIE_MODULE_ALIGNMENT; //See $LK,"Load","MN:Load"$() and $LK,"BinRep","MN:BinRep"$() + *ptr(U32 *)++=ex->max_align; + *ptr++=0; + cnt=0; + tempa=ex->abss; + while (tempa) { + if (!(tempa->type&1)) + cnt++; + tempa=tempa->next; + } + if (cnt) { + *ptr++=EIE_ABS_ADDR; + *ptr(U32 *)++=cnt; + *ptr++=0; + tempa=ex->abss; + while (tempa) { + tempa1=tempa->next; + if (!(tempa->type&1)) + *ptr(U32 *)++ =tempa->ip; + Free(tempa); + tempa=tempa1; + } + } + temphg=ex->heap_glbls; + while (temphg) { + temphg1=temphg->next; + cnt=0; + temphgr=temphg->references; + while (temphgr) { + cnt++; + temphgr=temphgr->next; + } + if (cnt) { + *ptr++=EIE_HEAP_GLBL; + *ptr(U32 *)++=cnt; + if (temphg->str) { + i=StrLen(temphg->str); + MemCpy(ptr,temphg->str,i+1); + Free(temphg->str); + ptr+=i+1; + } else + *ptr++=0; + *ptr(I64 *)++=temphg->size; + temphgr=temphg->references; + while (temphgr) { + temphgr1=temphgr->next; + *ptr(U32 *)++=temphgr->ip; + Free(temphgr); + temphgr=temphgr1; + } + } + Free(temphg); + temphg=temphg1; + } + +//Do exports first + tempe=ex->next_ie; + while (tempe!=&ex->next_ie) { + tempe1=tempe->next; + if (tempe->type<=EIE_LIT_EXPORT) { + QueRem(tempe); + *ptr++=tempe->type; + *ptr(U32 *)++=tempe->ip; + if (tempe->str) { + i=StrLen(tempe->str); + MemCpy(ptr,tempe->str,i+1); + Free(tempe->str); + ptr+=i+1; + } else + *ptr++=0; + Free(tempe->src_link); + Free(tempe); + } + tempe=tempe1; + } + +//Do imports second + tempe=ex->next_ie; + while (tempe!=&ex->next_ie) { + tempe1=tempe->next; + QueRem(tempe); + *ptr++=tempe->type; + *ptr(U32 *)++=tempe->ip; + if (tempe->str) { + i=StrLen(tempe->str); + MemCpy(ptr,tempe->str,i+1); + Free(tempe->str); + ptr+=i+1; + } else + *ptr++=0; + Free(tempe->src_link); + Free(tempe); + tempe=tempe1; + } + + *ptr++=EIE_END; + MemSet(ptr,0,16); + i=ptr-patch_table; + //$LK,"NATIVE_XSUM","FF:::/SparrowOS/OSMain/OSStart.CPP.Z,NATIVE_XSUM"$ needs 16 ALIGN + size=(sizeof(CBinFile)+code_U8s+i+15)&-16; + bfh=MAlloc(size); + bfh->jmp=0xEB+256*(sizeof(CBinFile)-2); +#assert sizeof(CBinFile)-2<=MAX_I8 + bfh->type=0; + bfh->loader_patch_table_offset=sizeof(CBinFile)+code_U8s; + bfh->file_size=size; + bfh->xsum=NATIVE_XSUM; + MemCpy(bfh(U8 *)+sizeof(CBinFile),ex->code,code_U8s); + MemCpy(bfh(U8 *)+sizeof(CBinFile)+code_U8s,patch_table, + size-code_U8s-sizeof(CBinFile)); + bfh->xsum=ArcXSum(bfh,size); + Free(fbuf2); + if (out_name) + fbuf2=DftExt(out_name,"BIN.Z"); + else + fbuf2=ChgExt(fbuf,"BIN.Z"); + if (!cmp_do_not_write_to_dsk) + FileWrite(fbuf2,bfh,size); + Free(bfh); + Free(ex->code); + Free(ex); + } + Free(patch_table); + Free(fbuf); + Free(fbuf2); + Free(fbuf3); + PrintF(Define("ST_ERRORS_WARNINGS"),error_cnt,warning_cnt,code_U8s,size); + return error_cnt; +} + +I64 ExePutS(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE) +{ + I64 result; + Bool okay=TRUE; + CLex *lx; + if (!filename) + filename=sys_temp_filename; + lx=LexNew(buf,LF_DONT_FREE_BUF,FileNameAbs(filename)); + if (just_load) + lx->flags|=LF_JUST_LOAD; + if (Fs->last_lex!=&Fs->next_lex) + lx->opts=Fs->last_lex->opts; + QueIns(lx,Fs->last_lex); + try { + Lex(lx); + result=ExeCmdLine(lx); + } catch { + if (Fs->except_argc>0) { + if (Fs->except_argv[0]==EXCEPT_COMPILER || + Fs->except_argv[0]==EXCEPT_BREAK) { + Fs->catch_except=TRUE; + okay=FALSE; + result=0; + } + } + } + QueRem(lx); + if (okay) + LexDel(lx); //TODO: can crash + return result; +} + +I64 ExePrintF(U8 *fmt,...) +{ + I64 result; + U8 *buf=SPrintFJoin(NULL,fmt,argc,argv); + result=ExePutS(buf); + Free(buf); + return result; +} + +I64 ExeFile(U8 *name,Bool just_load=FALSE) +{ + I64 result; + U8 *name2=DftExt(name,"CPP.Z"), + *st=MSPrintF("#include \"%s\";",name2); + result=ExePutS(st,name,just_load); + Free(st); + Free(name2); + return result; +} + +I64 ExePutS2(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE) +{ //with REPLACE_SYMS + I64 result; + Bool okay=TRUE; + CLex *lx; + if (!filename) + filename=sys_temp_filename; + lx=LexNew(buf,LF_DONT_FREE_BUF,FileNameAbs(filename)); + if (just_load) + lx->flags|=LF_JUST_LOAD; + if (Fs->last_lex!=&Fs->next_lex) + lx->opts=Fs->last_lex->opts|1<last_lex); + try { + Lex(lx); + result=ExeCmdLine(lx); + } catch { + if (Fs->except_argc>0) { + if (Fs->except_argv[0]==EXCEPT_COMPILER || + Fs->except_argv[0]==EXCEPT_BREAK) { + Fs->catch_except=TRUE; + okay=FALSE; + result=0; + } + } + } + QueRem(lx); + if (okay) + LexDel(lx); //TODO: can crash + return result; +} + +I64 ExePrintF2(U8 *fmt,...) +{ //with REPLACE_SYMS + I64 result; + U8 *buf=SPrintFJoin(NULL,fmt,argc,argv); + result=ExePutS2(buf); + Free(buf); + return result; +} + +I64 ExeFile2(U8 *name,Bool just_load=FALSE) +{ //with REPLACE_SYMS + I64 result; + U8 *name2=DftExt(name,"CPP.Z"), + *st=MSPrintF("#include \"%s\";",name2); + result=ExePutS2(st,name,just_load); + Free(st); + Free(name2); + return result; +} + +I64 ExePutS3(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE) +{ //throws exceptions + I64 result; + CLex *lx; + if (!filename) + filename=sys_temp_filename; + lx=LexNew(buf,LF_DONT_FREE_BUF,FileNameAbs(filename)); + if (just_load) + lx->flags|=LF_JUST_LOAD; + if (Fs->last_lex!=&Fs->next_lex) + lx->opts=Fs->last_lex->opts; + QueIns(lx,Fs->last_lex); + Lex(lx); + result=ExeCmdLine(lx); + QueRem(lx); + LexDel(lx); + return result; +} + +I64 ExePrintF3(U8 *fmt,...) +{ //throws exceptions + I64 result; + U8 *buf=SPrintFJoin(NULL,fmt,argc,argv); + result=ExePutS3(buf); + Free(buf); + return result; +} + + +I64 ExeFile3(U8 *name,Bool just_load=FALSE) +{ //throws exceptions + I64 result; + U8 *name2=DftExt(name,"CPP.Z"), + *st=MSPrintF("#include \"%s\";",name2); + result=ExePutS3(st,name,just_load); + Free(st); + Free(name2); + return result; +} + +U0 CmpInit() +{ + if (!sys_num_installed_compilers++) { + is_first_compiler=TRUE; + fp_prs_stream_blk=&PrsStreamBlk; + } else + is_first_compiler=FALSE; + compiled_lines=0; + compiled_funs=0; + compiled_bytes=0; + cmp_do_not_write_to_dsk=FALSE; + CmpLoadDefines; + CmpFillTables; + MemSet(&opt_nop,0,sizeof(CIntermediateCode)); + opt_nop.ic_class=sys_internal_types[IT_I64]; + + opt_nop.ic_opcode=IC_NOP; + AsmHashLoad(is_first_compiler); + UnasmHashLoad; +} + +CmpInit; diff --git a/SparrowOS/Compiler/CmpQueVect.CPP b/SparrowOS/Compiler/CmpQueVect.CPP new file mode 100644 index 0000000..01aecb7 --- /dev/null +++ b/SparrowOS/Compiler/CmpQueVect.CPP @@ -0,0 +1,67 @@ +CQueVectU8 *QueVectU8New(I64 min_index=0) +{ + CQueVectU8 *result=MAlloc(sizeof(CQueVectU8)); + result->next=result->last=result; + result->total_cnt=result->node_cnt=0; + result->min_index=min_index; + return result; +} + +U0 QueVectU8Put(CQueVectU8 *v,I64 index,U8 ch) +{ + CQueVectU8 *tempv; + index-=v->min_index; + if (index<0) return; + if (indextotal_cnt) { + tempv=v; + do { + index-=tempv->node_cnt; + if (index<0) { + tempv->body[index+tempv->node_cnt]=ch; + return; + } + tempv=tempv->next; + } while (tempv!=v); + } else + index-=v->total_cnt; + + while (TRUE) { + tempv=v->last; + if (tempv->node_cnt>=QUE_VECT_U8_CNT) { + tempv=MAlloc(sizeof(CQueVectU8)); + tempv->node_cnt=0; + QueIns(tempv,v->last); + } + if (index--) { + tempv->body[tempv->node_cnt++]=0; + v->total_cnt++; + } else { + tempv->body[tempv->node_cnt++]=ch; + v->total_cnt++; + break; + } + } +} + +U0 QueVectU8Del(CQueVectU8 *v) +{ + if (v) { + QueDel(v); + Free(v); + } +} + +I64 QueVectU8Get(CQueVectU8 *v,I64 index) +{ + CQueVectU8 *tempv; + index-=v->min_index; + if (!(0<=indextotal_cnt)) return 0; + tempv=v; + do { + index-=tempv->node_cnt; + if (index<0) + return tempv->body[index+tempv->node_cnt]; + tempv=tempv->next; + } while (tempv!=v); + return 0; +} diff --git a/SparrowOS/Compiler/CodeGen.CPP b/SparrowOS/Compiler/CodeGen.CPP new file mode 100644 index 0000000..c3c6a01 --- /dev/null +++ b/SparrowOS/Compiler/CodeGen.CPP @@ -0,0 +1,509 @@ +U0 CBPutClass(CHashClass *c) +{ + I64 i; + if (!c) return; + if (c->ptr_cnt>4) { + PrintFErr("put_class ptrcnt=%d\n",c->ptr_cnt); + while (TRUE) +//TODO: + Yield; + } + for (i=0;iptr_cnt;i++) + '*'; + c-=c->ptr_cnt; + if (c->str) + "" c->str; + else { + PrintFErr("put_class str=NULL\n"); + while (TRUE) +//TODO: + Yield; + } + '' CH_SPACE; +} + + +U0 CBPutICArg(CICArg *p) +{ + if (p->ptype) + "%Z %Z %Z ", + p->type&IT_MASK,"ST_IT_TYPES", + p->ptype&IT_MASK,"ST_IT_TYPES", + p->type>>4,"ST_TY_TYPES"; + else + "%Z %Z ", + p->type&IT_MASK,"ST_IT_TYPES", + p->type>>4,"ST_TY_TYPES"; + switch (p->type>>4) { + case TY_STK>>4: + "STK"; + break; + case TY_IMM>>4: + "#%X",p->disp; + break; + case TY_REG>>4: + "%Z",p->reg,"ST_U64_REGS"; + break; + case TY_DISP>>4: + "%X[%Z]",p->disp,p->reg,"ST_U64_REGS"; + break; + case TY_RIP_DISP32>>4: + "[%X]",p->disp; + break; + case TY_SIB>>4: + if (p->disp) + "%X",p->disp; + if (p->reg==CREG_RIP) + '['; + else + "[%Z+",p->reg&7,"ST_U64_REGS"; + "%Z",p->reg>>8&7,"ST_U64_REGS"; + switch (p->reg>>14) { + case 0: "]"; break; + case 1: "*2]"; break; + case 2: "*4]"; break; + case 3: "*8]"; break; + } + break; + } +} + +U0 CBPutIC(CIntermediateCode *tempi) +{ + I64 opcode=tempi->ic_opcode,i; + if (opcode>=IC_END_EXP && opcode!=IC_NOP1) { + "%15ts %016X ", + DefineSub(opcode,"ST_INTERMEDIATE_CODE")+4, + tempi->ic_data; + if (tempi->r.type&TY_MASK) { + CBPutICArg(&tempi->r); + "<-"; + } + if (tempi->p1.type&TY_MASK) + CBPutICArg(&tempi->p1); + ','; + if (tempi->p2.type&TY_MASK) + CBPutICArg(&tempi->p2); + ','; + if (tempi->p3.type&TY_MASK) + CBPutICArg(&tempi->p3); + '' CH_SPACE; + CBPutClass(tempi->ic_class); + if (tempi->ic_flags & ICF_LOCK) + "$$FG,BROWN$$lock$$FG$$ "; + if (tempi->ic_flags & ICF_P3_TO_F64) + "$$FG,LTBLUE$$p3d$$FG$$ "; + if (tempi->ic_flags & ICF_P3_TO_INT) + "$$FG,GREEN$$p3i$$FG$$ "; + if (tempi->ic_flags & ICF_P2_TO_F64) + "$$FG,LTBLUE$$p2d$$FG$$ "; + if (tempi->ic_flags & ICF_P2_TO_INT) + "$$FG,GREEN$$p2i$$FG$$ "; + if (tempi->ic_flags & ICF_P1_TO_F64) + "$$FG,LTBLUE$$p1d$$FG$$ "; + if (tempi->ic_flags & ICF_P1_TO_INT) + "$$FG,GREEN$$p1i$$FG$$ "; + if (tempi->ic_flags & ICF_R_TO_F64) + "$$FG,LTBLUE$$rd$$FG$$ "; + if (tempi->ic_flags & ICF_R_TO_INT) + "$$FG,GREEN$$ri$$FG$$ "; + if (tempi->ic_flags & ICF_USE_F64) + "[F64] "; + if (tempi->ic_flags & ICF_USE_UNSIGNED) + "[unsigned] "; + if (tempi->ic_flags & ICF_USE_INT) + "[int] "; + if (tempi->ic_flags & ICF_NO_DEPEND_RESULT) + "-DEP "; + if (tempi->ic_flags & ICF_DEPEND_RESULT) + "+DEP "; + if (tempi->ic_flags & ICF_NOT_ADDR) + "NOT_ADDR "; + if (tempi->ic_flags & ICF_PUSH_RESULT) + "PUSH "; + if (tempi->ic_flags & ICF_PUSH_CMP) + "PUSH_CMP "; + if (tempi->ic_flags & ICF_POP_CMP) + "POP_CMP "; + if (tempi->ic_flags & ICF_DEL_PREVIOUS_INS) + "DELINS "; + for (i=0;i<4;i++) { + if (Bt(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0+i)) + "DONT_PUSH#%d ",i; + if (Bt(&tempi->ic_flags,ICf_DONT_POP_FLOAT0+i)) + "DONT_POP#%d ",i; + } + if (tempi->ic_flags & ICF_ALTERNATE_TEMPLATE) + "ALT_TEMP "; + NewLine; + } +} + +CIntermediateCode *CBICAdd(CLex *lx, + I64 opcode_and_precedence,I64 arg, CHashClass *c,I64 flags=0) +{ + CIntermediateCode *tempi=lx->cbh.cb_out_ptr; + CCodeBlk *cb,*cb1; + lx->cbh.cb_last_out_ptr=tempi; + tempi->ic_opcode=opcode_and_precedence.u16[0]; + tempi->ic_precedence=opcode_and_precedence.u16[1]; + tempi->ic_data=arg; + tempi->ic_class=c; + if (Bt(&lx->opts,OPTf_OPT_TRACE)) { + Bts(&lx->flags,Lf_OPT_TRACE_PRESENT); + flags|=ICF_TRACE; + } + if (lx->lock_cnt) + flags|=ICF_LOCK; + tempi->ic_flags=flags; + tempi->ic_line=lx->last_line_num; + tempi->ic_indent_level=lx->indent_level; + if (lx->opts & OPTF_PARSE_TRACE) + CBPutIC(tempi); + tempi++; + if (tempi>=lx->cbh.cb_out_end) { + cb=MAlloc(sizeof(CCodeBlk)); + cb->next=NULL; + cb1=lx->cbh.cb_out_last; + cb1->next=lx->cbh.cb_out_last=cb; + tempi=&cb->data; + lx->cbh.cb_out_end=tempi+CB_IC_CNT; + } + lx->cbh.cb_out_ptr=tempi; + return lx->cbh.cb_last_out_ptr; +} + +U0 CBOutPtrsInit(CLex *lx) +{ + CLexCodeBlkCtrl *tempcbh=&lx->cbh; + CCodeBlk *cb=MAlloc(sizeof(CCodeBlk)); + cb->next=NULL; + tempcbh->cb_out_first=tempcbh->cb_out_last=cb; + tempcbh->cb_misc_list=NULL; + tempcbh->cb_misc_list_end=&tempcbh->cb_misc_list; + tempcbh->cb_out_ptr=&cb->data; + tempcbh->cb_out_end=tempcbh->cb_out_ptr+CB_IC_CNT; + tempcbh->cb_last_out_ptr=&cb->data; +} + +U0 CBInPtrsInit(CLexCodeBlkCtrl *tempcbh) +{ + CCodeBlk *cb=tempcbh->cb_out_first; + tempcbh->cb_in_first=cb; + tempcbh->cb_in_ptr=&cb->data; + tempcbh->cb_in_end=tempcbh->cb_in_ptr+CB_IC_CNT; +} + +U0 CBPutAllIC(CLex *lx) +{ + CIntermediateCode *tempi; + CBInPtrsInit(&lx->cbh); + tempi=lx->cbh.cb_in_ptr; + while (tempi->ic_opcode) { + if (tempi->ic_flags&ICF_TRACE) + CBPutIC(tempi); + tempi++; + } +} + +CIntermediateCode *CBGetIC1(CLexCodeBlkCtrl *lx) +{ + CIntermediateCode *tempi=lx->cb_in_ptr, + *tempi1=tempi+1; + CCodeBlk *cb; + if (tempi1>=lx->cb_in_end) { + cb=tempi1(U8 *)-sizeof(CIntermediateCode)*CB_IC_CNT-offset(CCodeBlk.data); + cb=cb->next; + tempi1=&cb->data; + lx->cb_in_end=tempi1+CB_IC_CNT; + } + lx->cb_in_ptr=tempi1; + return tempi; +} + +U0 CBPush(CLex *lx) +{ + CLexCodeBlkCtrl *tempcbh=MAlloc(sizeof(CLexCodeBlkCtrl)); + MemCpy(tempcbh,&lx->cbh,sizeof(CLexCodeBlkCtrl)); + if (lx->cbh.cb_misc_list_end==&lx->cbh.cb_misc_list) + tempcbh->cb_misc_list_end=&tempcbh->cb_misc_list; + lx->cbh.cb_next=tempcbh; +} + +U0 CBPop(CLex *lx) +{ + CLexCodeBlkCtrl *tempcbh=lx->cbh.cb_next; + MemCpy(&lx->cbh,tempcbh,sizeof(CLexCodeBlkCtrl)); + if (tempcbh->cb_misc_list_end==&tempcbh->cb_misc_list) + lx->cbh.cb_misc_list_end=&lx->cbh.cb_misc_list; + Free(tempcbh); +} + +CCodeBlkMisc *CBGoToLabelFind(CLex *lx,U8 *name) +{ + CCodeBlkMisc *mc=lx->cbh.cb_misc_list; + while (mc) { + if (mc->type==CBMT_GOTO_LABEL) { + if (!StrCmp(mc->str,name)) + return mc; + } + mc=mc->next; + } + return NULL; +} + +CCodeBlkMisc *CBMiscNew(CLex *lx,I64 ty) +{ + CCodeBlkMisc *result=CAlloc(sizeof(CCodeBlkMisc)); + lx->cbh.cb_misc_list_end->next=result; + lx->cbh.cb_misc_list_end=result; + result->addr=INVALID_PTR; + result->type=ty; + return result; +} + +I64 CBFloatConstFind(CLex *lx,F64 d) +{ + I64 i; + CCodeBlkMisc *mc=lx->cbh.cb_misc_list; + while (mc) { + if (mc->type==CBMT_FLOAT_CONSTS) { + for (i=0;inum_consts;i++) + if (mc->float_consts[i]==d) + return mc->addr+i*sizeof(F64); + if (mc->num_constsfloat_consts[mc->num_consts++]=d; + return mc->addr+i*sizeof(F64); + } + } + mc=mc->next; + } + mc=CBMiscNew(lx,CBMT_FLOAT_CONSTS); + mc->float_consts=MAlloc(CBM_MAX_CONSTS*sizeof(F64)); + mc->float_consts[mc->num_consts++]=d; + return mc->addr; +} + +U0 CBMiscListDel(CLex *lx) +{ + CCodeBlkMisc *mc=lx->cbh.cb_misc_list,*mc1; + U8 *undef=NULL; + while (mc) { + mc1=mc->next; + switch (mc->type) { + case CBMT_GOTO_LABEL: + if (!(mc->flags&CBMF_DEFINED)) { + undef=mc->str; + mc->str=NULL; + } else if (!(mc->flags&CBMF_USED)) { + PrintFWarn("%S%s\n","ST_UNUSED_LABEL",mc->str); + LexPutWarn(lx,"ST_UNUSED_LABEL_AT"); + } + break; + case CBMT_JMP_TABLE: + Free(mc->jmp_table); + break; + case CBMT_FLOAT_CONSTS: + Free(mc->float_consts); + break; + case CBMT_ARRAY_DIM: + LinkedListDel(mc->dim); + break; + case CBMT_HASH_ENTRY: + HashDel(mc->h); + break; + } + Free(mc->str); + Free(mc); + mc=mc1; + } + if (undef) { + PrintFErr("%S%s\n","ST_UNDEFINED_GOTO_LABEL",undef); + Free(undef); + LexExcept(lx,"ST_UNDEFINED_GOTO_LABEL_AT"); + } +} + +CLex *CBPopNoFree(CLex *lx) +{ + CLexCodeBlkCtrl *tempcbh=lx->cbh.cb_next; + MemCpy(&lx->cbh,tempcbh,sizeof(CLexCodeBlkCtrl)); + if (tempcbh->cb_misc_list_end==&tempcbh->cb_misc_list) + lx->cbh.cb_misc_list_end=&lx->cbh.cb_misc_list; + return tempcbh; +} + +U0 CBAppend(CLex *lx, CLexCodeBlkCtrl *tempcbh) +{ + CIntermediateCode *tempi,*tempi1; + CBInPtrsInit(tempcbh); + do { + tempi=CBGetIC1(tempcbh); + if (tempi->ic_opcode) { + tempi1=CBICAdd(lx,tempi->ic_opcode+tempi->ic_precedence<<16,tempi->ic_data, + tempi->ic_class,tempi->ic_flags); + tempi1->ic_line=tempi->ic_line; + } + } while (tempi->ic_opcode); + LinkedListDel(tempcbh->cb_out_first); + + if (tempcbh->cb_misc_list_end!=&tempcbh->cb_misc_list) { + lx->cbh.cb_misc_list_end->next=tempcbh->cb_misc_list; + lx->cbh.cb_misc_list_end=tempcbh->cb_misc_list_end; + } + Free(tempcbh); +} + +U0 CBCombine(CLex *lx) +{ + CCodeBlk *cb=lx->cbh.cb_out_first,*cb1,*cb2; + I64 i=0,j=sizeof(CIntermediateCode)*CB_IC_CNT; + U8 *ptr; + while (cb) { + i++; + cb=cb->next; + } + if (i>1) { + cb1=MAlloc(i*j+offset(CCodeBlk.data)); + cb1->next=NULL; + cb=lx->cbh.cb_out_first; + ptr=&cb1->data; + i--; + while (i--) { + cb2=cb->next; + MemCpy(ptr,&cb->data,j); + ptr+=j; + Free(cb); + cb=cb2; + } + MemCpy(ptr,&cb->data,lx->cbh.cb_out_ptr(I64)-(&cb->data)(I64)); + Free(cb); + lx->cbh.cb_out_first=cb1; + } +} + +CIndentInfo *CBIndents(CLex *lx) +{ + CIndentInfo *result; + I64 i,num_lines=lx->max_line-lx->min_line+1; + result=CAlloc(offset(CIndentInfo.body)+sizeof(U8)*(num_lines+1)); + result->min_line=lx->min_line; + result->max_line=lx->max_line; + for (i=0;ibody[i]=QueVectU8Get(lx->indent_que_vect,i+lx->min_line); + return result; +} + +U8 *CBCompile(CLex *lx,CHashFun *fun_class, + I64 *code_size,CDbgInfo **_dbg,CIndentInfo **_indent,I64 *type=NULL) +{ + U8 *result; + COptReg register_offsets[NUM_REGS]; + if (_dbg) + *_dbg=NULL; + if (_indent) + *_indent=NULL; + + CBCombine(lx); + if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) { + if (Bt(&lx->pass_trace_mask,0)) { + "$$IV,1$$Before Pass 1:$$IV,0$$\n"; + CBPutAllIC(lx); + } + } + lx->pass=1; + OptPass012(lx,fun_class,TRUE); + if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) { + if (Bt(&lx->pass_trace_mask,1)) { + "$$IV,1$$After Pass 1:$$IV,0$$\n"; + CBPutAllIC(lx); + } + } + lx->pass=2; + OptPass012(lx,fun_class,TRUE); + if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) { + if (Bt(&lx->pass_trace_mask,2)) { + "$$IV,1$$After Pass 2:$$IV,0$$\n"; + CBPutAllIC(lx); + } + } + lx->pass=3; + OptPass3(lx,fun_class,register_offsets); + if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) { + if (Bt(&lx->pass_trace_mask,3)) { + "$$IV,1$$After Pass 3:$$IV,0$$\n"; + CBPutAllIC(lx); + } + } + lx->pass=4; + OptPass4(lx,register_offsets,type); + if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) { + if (Bt(&lx->pass_trace_mask,4)) { + "$$IV,1$$After Pass 4:$$IV,0$$\n"; + CBPutAllIC(lx); + } + } + lx->pass=5; + OptPass5(lx); + if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) { + if (Bt(&lx->pass_trace_mask,5)) { + "$$IV,1$$After Pass 5:$$IV,0$$\n"; + CBPutAllIC(lx); + } + } + lx->pass=6; + OptPass6(lx,fun_class); + if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) { + if (Bt(&lx->pass_trace_mask,6)) { + "$$IV,1$$After Pass 6:$$IV,0$$\n"; + CBPutAllIC(lx); + } + } + + if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) + if (Bt(&lx->pass_trace_mask,7)) + "$$IV,1$$Pass 7:$$IV,0$$\n"; + lx->pass=7; + OptPass789A(lx,fun_class,register_offsets,NULL,NULL); + + if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) + if (Bt(&lx->pass_trace_mask,8)) + "$$IV,1$$Pass 8:$$IV,0$$\n"; + lx->pass=8; + OptPass789A(lx,fun_class,register_offsets,NULL,NULL); + + if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) + if (Bt(&lx->pass_trace_mask,9)) + "$$IV,1$$Pass 9:$$IV,0$$\n"; + lx->pass=9; + *code_size=OptPass789A(lx,fun_class,register_offsets,NULL,NULL); + if (lx->flags&LF_STATIC_COMPILE) + result=MAlloc(*code_size); + else + result=MAlloc(*code_size,Fs->code_heap); + + if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) + if (Bt(&lx->pass_trace_mask,0xA)) + "$$IV,1$$Pass A:$$IV,0$$\n"; + lx->pass=0xA; + *code_size=OptPass789A(lx,fun_class,register_offsets,result,_dbg); + compiled_bytes+=*code_size; + + if (_indent && lx->indent_que_vect) + *_indent=CBIndents(lx); + + LinkedListDel(lx->cbh.cb_out_first); + CBMiscListDel(lx); + if (Bt(&lx->opts,OPTf_COMPILE_TRACE)) { + if (lx->flags&LF_STATIC_COMPILE) { + if (lx->a->seg_size==16) + Un(result,*code_size,16); + else if (lx->a->seg_size==64) + Un(result,*code_size,64); + else + Un(result,*code_size,32); + } else + Un(result,*code_size,64); + } + return result; +} diff --git a/SparrowOS/Compiler/Compiler.BIN b/SparrowOS/Compiler/Compiler.BIN new file mode 100644 index 0000000000000000000000000000000000000000..9b5f473c201c0effe424e53da3046381204f677b GIT binary patch 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 zgpQA8ss(?G9;E*I0F_hV?~wte;N~9z{QW{uIZx$dpuy2nSs%+#i&7DAkV1@7sA2PH z{^3x^?A!ealu{x*{+9-T?pn)Y@C*S3(n0W9`=t(`{0TaZ&NJl2wil2F4ruv2hjKA& zgiif7xVnK}vQ;Q)!mbn3?QXqpo zlwCbQpY2o%w9GeHSJ0bwS{ZCJH( zK+VLk?EMGO-dWclpq2jMhAgPMW&xc;Q^x}83ZO-+|4q<>Th||+jRzPQ4uE>L?4HU; zJq|t)05yKW!`b}8s6y#UaV3aGaP znxlUJi389Kjskyc0c7^%gC}^DT%kk(yf?`K+>HtK1YKcr{XNK^|9!hZ`E=$w_*#DA zZ_NNT_&@`mT%cJYPtXyzpc_uXA?M5eq|_EPWDByMnZHE@e5l|yh->&;ka))YE#E+! zYxp6O+@&v{LAtz*r8aN_N)17EU7*Lo2f`kW2N?bz0L@YQF#Ceqm+YXX9XPx}!`Vwg z*vJOXZkF9%J#@-H^63jgkU@FyK#erWZB__j7XDUk5D(lkKpB|_wG3Y0gq1L$ z(YWJ?R?a0*cl*D}QJZay3_h0sOSye5Kb5liSm!!mNrT?tdy?R35G{$V1Q`X5Zf*XS zSx8)C{+4beE_dn6Y6v$r5IlGV)x})O=h^({e<>&xgLcY;I-0P6w+AQoKa3?@ASL{* z`XD|iYk)TFzSsfkd~~}0@M!+8P$G<0L?~Ycm+a8KEE}XBRI?4-kA+kRouKU}Nd2IH z4B!r@(sh)6&}%eRpb3G1uor)>{r~?O(GRl4uIkz~up^)yJLKA> zqVUT9|1Tpz2LbRy(gLVK7#j9M5wsP~0ZE*Nzts@T#f)}PANAvPShRD4MgW@sG}Lf{ zGDP!_`Z_`50~`1t0{~3?t?DSjnF(qkf`XHOR~k|kdh0US52yjT200)dAbx?=s~(L9 zK=Y>oVJ~i8MG447XsSRX^Z{WnHiJ|l0`kjcaJazDf~x9;#3q)2w1#Ma1|*kfXxIyl z%jol2pgCY#~d=_{*3lw^ru0cZ&)M&nY>Hq(iM?j$j$^A9pb50;73pgyHp~Au6 z3)<%Zx?dMm?|pb7^8k|b(Gq3vCDgFg19dv@Acti-{RgBHC7guUpwf|A_MUP28e zsH(IpVB@ibk_bctG?c(YAB-Tsl_7Pnp~-FIRnSg8Bykr0R)0v(0-AC#CIi{vp;rRZ z47v3LIdO8p6$D>}1}`EZvOxMnD=&kRKd5jG345UfGRGUl0d3a}0Cy#Wm7*S79D?2v81Ee0T(lZ3qvjIm**o!k*yA2$mH3SR{3^3YmBc$7a zi-xJYzZIgcW)muH0OiBzFeo2JAKeU552Gugd>B0+%7@W!wm{V5qK`r4VKl>j?B@)E z4(*SX@aaxX0G~Ao8fXPY=zoXp+P=nbJ(_C+7)rb$txbAKz#<#su%u#(E2}cYCvk1W-)+L#KLFb zU00<7pne;3hR63C3}G)=K@S^b!)~xyI95_oss)pS2U=B1Ff_n;F7h!n| z>?q{2d^`<`v;)n8NGj?c?p_R zzzLZlO9ONk0BE{+2PnyhgD(V2~v% zx`+%O$6W(JGhg5poZ!gBFz5=X<#gN?to-FQ0v-e%2oLh0C(MHw-e?8gGKJN}*-(o> z?g6t6Ev_2^%}_4@br3~-M25L!**bOzKjKhwRSV`4PWE8F5g@o{+Eb(?q|3Q zx&n}q!E+xYl=WJ~bN~JO44{iNJ@+v~1wDFQpMmCFo(F_^{4W)FaqBAhbd2Z!`CCD) z2vE@g>c@e`z|}!T0)%5wVu#=alz@k0ATkamD&S)WL6!HkyWp*(j$1q&cd>xxf{bs2 z%Q%kL;x6A@pZy0N0{GT(D@PV%){n3k4Hy3Z5BG#?o_PEJf2`^vE`VL=@V`U^G9;13 z2yyyxP|g+ti-FDp1bb)mC9vXW|4RfxQLUTB2x^~*Uikn2wIb-SABGH&!?HZWUMNEP zq@bHFK!w>a(5M~S5U&U7l`OD3HbBwf;nN*z0lk>Tz}NUTEE@J=jfTA#(Li1}2Z6@B z!(QlucN;$eh4X%pcR&kWjc+?{=6EgO3#K6fEO#Chz@eT{U7*ezY7ofY0(Z+{LGbM^ zIE4#%HXZQH*lxB5E#w6q6;`X^(F?jg^aH5k zgC1_<2{}@M&lBl(jaUVbUe|M=qIf3X8dDW-8upghcb4?KWYhQp+HcmMx?Z3ohiL&4d*5dAoeUw0QA-k>wH z7_yi^zLkOa_TT?f1<X^TsG{=t zkIRPTAbD^G=5Ge=N%!FXUkW-3CE>+=Td*s$7&5d$j=limcDhR(cUNF!UoZG-qUB$N-(G z751X$2&k0_?k62V%<2S$z0f`Zwurw4H1Ctekfr%T7-1O)7R&x1S@!ZOXwkv0bOpI$ zkt}i0BJis=kVW7xLEDp%bbB-(0BzP{c8>tv3Itgq0_x$yW|!-r`X|HmgQohSZr^(t zG^G>vqW1WI&~-te{eJL9EPg|kprN`6bfU%o@`$h(CyxLB4-KNZNB{qSEey3I0&0iE zakQ2&wq!jUG#D7?iPUsaU;ynj5AY9%)1cwp1oYKbps608ZqO!=Tmw+|$k+IZ$8lHC zsgaoEtSw=aYSWVz~6Eg(rpBV6F;od zg@qGT01-}50Ys$>6>um8g_D9uXY2_N{_XLga5~`89S>U9v*RV`{wQcbL6r-XntA*$ zXL(U`9UM?MKy`4G$8pya&`>%638iut&)^rIuEIiT$7?gsP>?=|6`(Lu0Ef|EP+#=8 zE9k&IP*@*;h7oAV76T}Z(AyL+??KZA!h28wg!iBV5bxng2Gf~At)>k~O%PZ*n0pQE zJxDqz01Yf2cg2XG zmc@|8l%?Sr^kVllP+5av8DuEPGw8+aYybae1OgOu)|Hh|Mz8OsZ1(4casD=1=0LFo=#q*PvprMm@?bXUfL zo;O=Afalh5#t1asLH&&I9#jC4?w|sQbO#lHq&pnhN)D27LFo>v9GvdTSzf4s%8X7| zP`2W4{SF#%#GbXLU4nUW$IA<#AwkTf;u-W}9;oMxCCXtXkVj+f3Q&&YZw0M;^k{Zn z!11yPY8qOY!4sC#6-dG>2Zd=oq)n{=ZVN&ZCaBbdCA@q4$W3@I-(27QFBJn#-U))+ z_TV0=XV8ns2VvDjD|8tmC@Ju_fN$FboiGnNsVN8K2k-%k{E%&?KHWb&dR;d_X6sKN z&(?eNx~_l-A3zgc01@7SCVT-Rd;>)oVsQzt$N$nBo3em7E6MP+EUQvkPAHim#*;mU%J6F=*7v? zpavVb*&5^-{6gt4I2_;oFOdWv>;&30mBk3^+`Oni@c%!!=Boe7FM&+a20%?Ex2K>PBZK`%T(_A|o7J%e6I8~`OG&;Lacp8VUR z!aRaK`L{)dfW2`ZvuC5h@ZvOR1c?DBeF{zf7L?Dx;0RmA0y@Z`6x1yO?V%Cy=>~Ub zk-A1HN5Fyd|9?pev}3Z5M&2Jn;L~>GBGkRfFql~ z88m!~$F5Y6UAQxs8%P?w3JtvO4eAtdjA)}er5{uPfSn0XAf6znl!L@^Tk!M@BoV<9 z0a{QT14(1Ie>LcKB3QZy#V|PTVTtqXEA$lcdp}apfz+d>kSCP6A|KpeJ<59MaKDHGuRNKR`Q^ka0*zcM~+k z+3f(jrTT$#v5*It+W_i9dUQ*8bjE^qD8Rds;PK`8`@n_xyZ^1#e;ua7$d06C@BSxyMWp@aZDb;&|Cm+gYs|lV+1W} zg?QLA=!NNN&?pR;3l1sJ62?-27jdAy9iVwu(DYQ$3vtlpEyrCiKzo5FKNo;o-Os6fwTWw_m;k^}*l~l8Ee9;vz&3Sqn5waYo2%7lH}S zGw8*I!{F`;&P0UXU2%mv0ouDjBqOK*A{jvi97=_J__x{n@NX|?^68FedHDjP<0nvR z4GQuXHOIkSV@Ma}Ab7{ef5+_+zQ*4iw+Vn$fOFx8qo9#M&=|bN%Q>LFEM|Op2EF)k z2oyX29k(OGACxCN8f(G%gugWrl(d>%4{*E$P42?8DLj!ua{*E!!|azp@?q<7P;MnQ z5r%_22~7lCCD;;S=~F}^`?wM04N?+WC!`06GIT?Eq=7b!pvJsFsR<}bUK|JIXGp)Y z)E}JU(Id?M2t2}G>w?lGT0nXRz3>8$BVfiBG@Lm2n-U=-ccAPKjTuDJg9;#$9#p`g zl(Y;J2yz^u@@xJ9{29ix@gFF^m$G;^ALanf;3&I%bA9_Cd|NBDCJ=;7jDjZWJcC}O zZ3fpW??Ed$(RzEI*Z=?jTFNs7ska9@cEK~;Gw6l?K5$`%+{K&oh(H$)y2{UCcsN4CLzXh~n4>bMc8T6uS z6SQ07+58vO-3#&94c88zi1G}2(X^_Rt-3!?ZT8jh|_Y8WWya^l< zkig|{0q-3`)RMdhLAf&v-VA~IlJ5~%7}S~pH8Jp2%br0m799Tn|Fs4v_y{GBd7!>0 z|28LZGsYFPBbQM1gteclfB66Zmu!$F#9)tc6tRJ7SpXC~i_rtx%!CwT`wqdw1G&lZ`~h4TRR1jijRHW*EF?ofC-8v= z3$Rp!kny0S952<8YISC4sSOWHGzyBl60L+g_Q{?@r*f5Y0VaF0MniM}30N)1@c zS7ET9K!q2|m@&MP-+T~J{^qYCwfwaMjn#sZA8G)l?ZIDcpw+YdJ)pJbs3ooej?{M!5h|e42r(1z3E7uFl3|xx2l8I`GYG? zP)i0}1ak4WfXi_>=f(EETl`4NLXhi{a#foCQ`xe8j`a@2T2>lCN}F)eE`AO3A}kh!nU z*abe_X)G`Afel7#p$n9{fOoAjE&!4T2i@6iprHHU!(7_%+5i-AAQ{jc2orb?L<+RH>-uJJL*xL4ub?#+ zG#IFrD2`&82#2JKHc-inmMTEg=HO(DnJhkT1^EqL5uNCAUHrs(`}50~#-& zOX4`hibKH8#f+2KE$}#jq&F-XH61*HfhD7Y3Ig$B9Z*unNQ)kgwF@Az)e2hu4qDOz z+VKNQqKKTqfoLQn1j)>Iuz7QYK?0?=pxpD~{uX$?gU_2Ez>@a@H-o|gocF-<=2#O_ z_=|`QII*H|DLNIW2e!*4a!j1z+3(PoRDCNlKvLG3`<#*eo$< zA?tqD@+D$D>ps@@H$2tWp$2!FwW)d0}u zfd!ty;V%-`LVPI3-wbNKfYTvzwgC;W2q9X8;V%Rh{r~@($Fupb0Cd|n2PmD1@i*te z8kGDkpcZe&{g0q!w4L)n2eOqqAdO6bn{{BzpRD=+|D`Vj14G7bu;Lheinp)%|9|)0 z12?}1hrc)s@{~B#3blC%iB#v9=b@nUM!Dbe zxA=hCf6?JD7R?473U>5|XY-LCukU~sx$|X3hrj5C3cr2}iV1`VUatkM?}IB#K_~+s zi_7S%;L#l~;L#Zix_y0uN4EoqN2hBCsG8>T=#K3GNxXjQ(d`P7((nKumIXSL(Zlit ze+#H@0hiKtRq*I^eE{NjJE-vQdcervEDTu~$stzE?$PY}fCY3W%mWUO?$8Gw&A*!X z`@ofc_aTqQAE5nopyNv4FnV;mT7VYFwTLl*YHFTeSm)|=xEjh9j+Ha(w%4`ioLw}Xa9x2u9j^8qIC-nRo7t^pYcP6@?aVAs3^wZ)rVK@M_#06yr8 zf19rsXci{?MbVu9|6hUz96{$^qgw#keTQiQsD}ZzfWMgwYBmeP68`P68lc)&Yz{cR zJqUj>XD;Sa1Pca!=+!Hrg^SQL0pTkOKvRvp#WBd!jGzj`1Aa2b0S@>K=CcjpgvJPJ znnR}3Lzcj&-jF6^p%Z~&FSc&@|NnJ3ve{56P^Sd6zIw_AhgV})Crl>)qvFQVJ|kVM-MXvgmyWu|G_ObWb4s_Ep|O5M392bi-0?{Fx)X? z5yTLrU_~|qbbTDiFHG2%px<1F9I8r?W#}giF#9v09UHk4zQ(svgYbtysi;S<8)z-A zN3WZKPxl4>U3nb*ulYbc577E2H&8Ffw>t@RGl_%;|2BtI{#_3k_?ti{HG|ATs#W=0 zML{(>WP>k%4|szi()Ruzpsd5cEiA;N`Ikni5oo;;+7J-7S^w{A|Nr;l-yRnRUK;fu zO$RKwUR(<*Jb$y-aX9YxWjMg_n$2;)2g3o-nTZWG9^myuKkDo4K@7;14h-4g!_Ep_F@u9Culv1 zN4Fay@QOJc_jr7N0CMCWkMA!a>kNwBumlJ!gMI=JRep2a1{x>$U&Mma?uUiJ*){+F zzs~gx1vPE3Dp<1yy77{K8+3F@p%k>42Gn1K3UJh_<8ekd+!?RIbAFznL(kbg{~z&e ze#Qpk%=SIqcTWfxq=IsL+DnMFFyR4!GHi5q@Xqfcyl>i`e|3yYm14mqdmi z<4UyfE0}{4ew{Nxb`ckTTUQ{$j|~)lKOy0#3fi^`4?iWuVZxZbJi+wTE`tkT%gh1G{^$JfB*4kt$WMSg2;FF|Nk#F85uzB7sf2cu<#ej zphB3)tku8#|NocJ9VDQBvmYXBf$#C?c5?uG4Oi|t4^Gjzy`~Q`pUBu}M)z9LEKuxY z%W&8d+L2|jkO>Qa5kDOf`wXDiKM09^b~^WoaV!e3ZTLj)2FD3D%40*MKUjbTMe; z_>Feae;h= z*%E-9k018pHE8t12V@$K)xf7fJqe^r0c!xmOq;t15;wek5D!CII|Sk;W6}TrFG1NI z)IGzwWfy!9hAq@FINT}+@(jK$yMGtrUDbLIBn@g$fR>d)VhHB5!wVrkGwy}^3{_#+ zivP8AAk1ntNJ+VOr1%zGw3wp2iF`aN&0x?4Nef@h2u-1k%-P zs8N_UfsLvGNrSQ!N(KW5W+G^)6s124PI9;AfI|%wnA|;fsLr`Kt2VE8Tbi?n<2mlp#y!_1~(E9=)$88FfCV_{g zGd%v6CV-CW24zL?LG6bF(70hQ&a4LIL{|mSPLQ>rgC;}Jlz>j51)U`dI=m$8#aB?P zzLgEM^!`7CXY+3k{vOcgQqX|#iVu)u_n@|c&SK^70bOwkIo=91XAY49pAlLL8ugCw z=!|{wTFK+M>kH5t1F)+TJpPwPc!q<|?|A_l3~d7SQo=k#A({_)G9Lz=nET>I(M0fM z(F5=vFT}aHkDI~CGWH?pRN}Z6Fvs-~Y}7dyH0m7o;#(`E(*!!|v-t<~#H+_39ZMkE z!2{=vrM#f?Qzth6|Nn9#=rGD{U}4Z{a$#XF9NYi@e_4qTX5nwm0`bsKJ@8~c20C57 z9W?t;#=-N_1w3HI4~Z)d{vHEp>l7lOz~2Kp!~qg!py4~Hw?V;K>e>DGwIt{eFwho1 z&^h}-pqdmEND;HZW8L7ugXlO83aIcG?h~+v(vBu@z(7LD7~*F{C}luG>2wP$lt592 z97>fC?cm^GECo$3C4{|5X@Z>#2AXwXf(eVZ!OjH(3FA5!EFmE5#p_mR7=cz!hJ(*; zLXP#Y7ezDw|3BvXpAkGv#NT=uJgE$7)Pc8nKq6D2lnXQo0}3i7q@aQX3OMz^!b};| z{Q=E>fkO?H`Bwc|Np_)HF0J6guPI2 z{Qv(o2k5jU*+$Ut>NeL5&;h^)z)6K2bgJdS2jKgL!d{p(gN8D*7_fy;z>NR@U+xB9 zQTU$$;$u+E3Gla`f%M|D{`0qh&Uo&2O#yeGL8twJ$`I~i@UnGS2wHeF*Cy1L8+wL- z4y?@q9g*A6%n$%NKiRX_+aNIPg&HXH{Vz=jdy&%siIbO^kd9JlmPhk175-Mx(mBv^ zv7m)iun^w>8ifR{Rbm7i1L=8&y_h-u|9|8EX!%&A0TgE2T(iMhxA_3*U}+0bvIE+W-gM+^pG~kHt8YS$m;l}2gwtA3jw!0>QChQbI zp@QtL1)#_TyGyP4|Nqw>F5g@e|CcDklnHn=9!PTlAHk{y_dyOQ%0Y)VxMm^wFbr;z zNIg8Bk$jjp4dO#+4mc0**65-8&Se@%Kd1_T6{wKZtpn;@>!2335E&t`4p8y$2`^Xv zO$C_(cL1n?04i>tPX)!8!**u0NQ;Oyf(J^cv4|a%2{?;E6XyvY zov|69yaPREP=LP`bP69-L;_q6^ZRtCDu563=J5D`9CSbK6VOrrpbHfshi`|yI64K? z@BhVEs_DVM-8Bak#XjImzaYJO&;j1iv!aC?{{Mfu0yJL7zuh$hkHS}=6cH5m;#UoH zDh%Xk{$f3Z)sT4f0$Cjj8lHlkEe|;h(P#?j-a}A+M4UPgk&%Gt2!nV4VhYO?P{;iV z$n}r}3O*|`4djMUh$msK0?3UAS0-c5AY_1!rGd{Lz;+8ldn}*>_7Z%$V?lRTR6tJ{ z#~m#h9-XlTAP@8MH%G(U=HZ}dfgK_5+x_^pB53JdDCn>|m<+S41bn7ee=?-}1{J8y zKLkp0pn(wqYPEu!fxMId|9=gxbYN;kG1R=A1Tlqpd$&yjC5AujbzE7VVJ|GIVTHY3 zHN+&SU8QcG&A%8+We`b(!-IdjZwaI}wyXv9AkgFrAab&`kUsX^D$phtG&MyKH9u>h zQ$QhE8t4HO_Ck2l|Nk$Q;Q?#m2@XWhFxZ6c=ZPpzE%C(&mWvZXC!m3X9qOGD%%EF4 z5#$Dt?Ff@+g2h1gcyzl;zy^=Nt?s&s;4}y-QJAYx?8hHed^Na(>Qgl&s5VvN4ytn? zHPBR!;;^t6uR-mpZb*9>v<$%$stmP^IywO}GZZjf;(&H*AUAP%bk~9oc9X!~zXS(B zEoh_;TpEM9>pCHQ3CQ3O#?XjA$X00o2|R=hn?!)-IM7Y6;2A0KNM-X6X8!)?kck)Y z&?r>YfWHT{<`U8Z1>JgtG=v51{)WAH(+X}@{(xVX^tu96LBg(UZ9MP|a^!dmEZX1; zCt$5@@RhB)5M7A#Wy?&$UPx5H+L7?{WkJFxLD>f5d|A-ZpWyRl!AEnsnFNHrm|qQT zMrMHaM}@sOUjG08Yjr%KEY=SiyAFHtulN7|4E`wx7{XpuSN;FL+k=1Gf#9$g{?)Kh z*Tgn3bE6N|gHwW!*@FTcv?&@?VDT4cfindn1QbfSJovYV8G$amR|l2TxK4np?SoXa zOs_rox7Qhgm0}JxfD5j`zW@JUXW&zz4>AmNm@XL(`P_@*kSvC<7x|#!s<0O)dj9{< zC;^r6FQ!(2*0YDb*a{Y61`TgDRe<`z|3M+DUJ1%~kR~6tVC?UO?K2l(XaMyFk*joA zc>01)-2}HeCmfV(0VY~aVoH| zg{0L4^t4)nH-%pBMoAd>!g4ieNG}ebicXMWXekuG_2D2Lh!D(T4tsGKR7Qrq&;gAZ zmVm?PXDK)l9%cx8F|Q1g(?JC(=p+<2gsRIBRiLC=Q3ldr4APKWhCfiRb|F$NxX48g zRnV>l^x!Nlf@l2<>_rk2sDWJz8s{{=5YdHq%*(Rt z|Noa}(9s2?t)OMEAa~e-4lZv6-Et1H21n8I5fq{x|I2W=;!-DO4k*zAnTI)+ z2KL)R(5NHWZ!bZYcKU#d!k2xZ)oQpc$%VQBhZFswky9%_H zCd>$Q+2%9QFdifkZ7v3-iSC08VJ{*|VD$lLFd3s3KG=bjB(PtB>(d>o0lJ~h7jzAh zhevmv11y;!rn$jaH$pDy=I_a4VgMHbkoy_<`{TfTH;$E{JAxp~ykI84Yw=c4?FZ@v zgQ6ZP%E8|QUMC3(a!}N_fab+OC-oZnbeEZc%ACn<(55Q0=l`P~psU1%KxGeT%8t{s z@hC&H1;cB05Tnt8!I%46sW_ssDd5Qrx@N+%7<4_RXY;>?8Y9peB#>53&}FlY2N@U~ zK*JL3pcAdZr5Wgk9nNCV?SWx0Bnv>*G)!RwrosnB5QRI6!9ynvHKH(=@q~xHxRw9^ z|4Yz~r{Q5QrWODH{}ObMI;cz&FBSmJz$CST+meo37+-_8k06DLLa87qGl1&j63_&1 zn$c@Da5;sUfWdX`{Wh3Upb$%JMGrAUn7hE212-OIX#Roe8=)fbJ?qN(|Np;MgZjD= zi@H~ZV0DL!K#iI-4zXfh&md5DMI!7)JZP{0c~BbGk7e=cu9fiY?Pp+SUmTYO1MDN z?RGD(fW`u_tQ-Ng%|WH5AK0whj+>dlha6)V2##K`fuQJ(vx7!2j>3ciW*Q?b`LKk& zP;Q3$oQV>jgG-tPus~!2B_AcwNEY}4T+jbU!D9+6p3O&DKvs(t3wm~+Ha@U{(c|(1 z&^@M&|Nlc%iZ$$NFwklM&_Duwog`>v0lH3deLiS71!*o4NBX#)2Tvb0`S{bv6Oe1s z2455y{{KILZHX&r1ubx(|VdAR%kbK_~k`x2%HJ zb@TE!KZe#@(B-T?y%`*kHI$vP4?w%OK+2GBh=8A1u23olN> zxG$BcAtW96Tem}Yx`Fyyz7IjG|3JqXE&^@%=Kjy$Iuo?1JJ=I+w*CW9_Yrg!X!wgx zuw`!@w`zDCcYVMF+KpiR?PV^+qz^EAjluSUdqH4(<&f+xwS|`UFgr_ie7XOZs)LTP z@c3T}v5OJpFaiX>&d@8 z2%c*A;EC-esEh0wjBODw*lXuNLHgu`LlR-L+_gdZ*Msk5dOkG z8&vt0bMS!n+=ai$0GSACup+z5ARzpOIZk((V!BHSWD00E9%v^LlDjTt{r~^c0NGvq zt)Q*j9-w_haJPZ3+XT%lhQC;p1$CS+sBi(@W0T?0d;t`VS>Uj62Op230IEVk$CZG` zjxg^bV5!3#v9e$|kahxoNhGMB2pO`91xGZf0R^wJ`9XyRsD>>C?^giDJxCtf>{KWf z0`*{wKohK8pwVmSJxHJe61G;Hg25<%P=gSBy&LqlcfT~S&!Lwb!3U$Br$dqrlFOiJ z2Rs-xAr-6(bug+r73*M>P9|(p6EsEzo74og`_KlXm@+}JQ^vsq9gNZfnTM|*Qd#r= zKd8N$SPhy&*&oIdp25FMgCT=|H3NfZut%?(M*wJpNI=+&`X37`J_Ncf zJk6yujK!nd^#^Dk!K3*=NkG_(_i6wC<21zT2a+`g3>o~J(XEkyS%cMz#si>Lx&dJ? zI-#~;HRH;6#Mpxb(xd<=O@YSAJbL$mx`JrQMxZnp)T94i`Tu`LibuC}*o!UcpwLX` z;4b0-wVm!(f*UxXRn8^68T`Al8Nyy{O#A=;HFpO8u40C;7faIq|IZKrj{>|*{r~?Z z=zwH=E&D%JDCXBz{{IhhK`FuoM(L12u0tT95_ZraSAQyK*br>F3BtZgkmzfWd>)7e zagQ)UJ|Y!n6*oA)hP}9!hSYI{3??vu7K4BS2{e>|y-N)q32?3gwcwh6B!<110J5Tn z3uN)v6o_b5*o!KVXgv!^^nMCxXtVjigW#|i$!Y(gi^`Df1CLIF+HRoHX#r4QgAsEG z7;+A4Gib^XG2)E0CJjYD11|l}X!=3ph~W_XL03GZr3ZylcJMgpYb6|U2o4MLO3;v0 zc-RX$(BLEgRM3ddY_Ojp!@2pXuwVwIM2Nqk_QIE1!}kFqEw%RydT}Qkx{$gQ$7#D@ z2W$h4gMtp%Wd!ZF0UcMXk^{=A(0zHJ9kHO+JwuTih+-_lwZTp3+ zc?7ktC49Q;Bz$|f7yJh$D)6%9PYetUuHW2K{+E<{HrGWkmK1~=AMkAa&G7F(Ln*Vz zf6xly9oh^G#wRy2`*I&BVfN@g7~l!I*&A^o2}=0GRyHHWC06;c7cuSs|G(A@2e$`d zU1%IiPZl7Bj3Q{29wFngjU79e|NsB;F|_T4RJtpag8F-5Mz2+|=N)iwo~<0z3cBRD zi4hW9!I0qcAu_nK7(9cJ*W@Ad!d?V`7Qcvxdj_K_3wv=M)Hj1|)dU^D1G=^u$slar zj0O!xf;wN&HSiJ)c}iRiB&7=Q-Zz-Fme4Ubym5rhA(u-3|Az!t6(q2VF#_uZB5j?d zX4?AK^8f!!BTzyiCV6G#{r~@x1=^KFNf;Wi1Q`PApMm;2peBr)kq7^Fzc3H$6X1R$ zfs}Kq1eS6@2>{&8A~Gf?l)wTIXKKS9fT+m`l^6En0ciCJw$v7%3vJ!OQx29?11fQS zx=ST|y5l6khn;|%XCXeyKSACz^t3!)=EJ|O&Ja{;@$xq#Z+wHd^PmN^K1u-%3u=fe z$j)i-NJx7zsHk?>&IFp`4EOByHweU*+!8<|gw53vj3qgqL7+nHAAv%wI09EG(tLm; z0H0jgi&;(o|Gxz73h@jAbz9(5a~Pfod%>Rb|Nl$S5*$>yAMkpLa4>*Np!y<6Fff9H z0leoM96afu0Z*{Mt%>zFXuXUDmc~aw&`&W=M&mpb(U+zBz6KPkmsF(Rqe} zQzLktK-dfCLZtdb8(N;B>A{wyxIzAGu8Lp;&k`U{e;1T`6IGZMMPxB}hN0}BfzOVI zfR^+yV-!+w`7@c&`U*Kfpt7(r&5Q!bECUlbJ%H0mC`btV)&=A+(L=6NNeGi~ps_zt zn3UKM9Ri^BLtqzMguRHZ2c5k3gpur8vq*e z0(FItx$b8`-RbVrUCshcD$p&_0;L9?ji4LN8*0=+^9ztUk$P#5&e{o{-M@UgLnnB2 z$AXUV((vexb@1qnHNd&pO9Lbe8cqaRff%$A;BVar8l;0*!{4(J#OXff0kMj|e<2eC z=-hFM|NO1Ii1ZG1p8XlFfiEDkEj!QTUFpZM@^PiKPO%k%*}*vsMZ-}QlK^AmRP zgo!Z7L!b#0E{{gn2jIyT4lt|Hg2AKP^#kahCK1S{dC*u0Xi#{2uym%^s-Wr`^RNIW(C~dtE-1%8 zaoob>%l(bNbry8&!^orgS52uX=)zMkPy_n7s{wyU1;fjyNbI)mxaTIYCyuUp&GP-G$)pTuophzpx#p%2hTCreT*-Y zAc+~VP(KhN@B!j!1^ylf(28ep;J|0uAx>2Q*D8oG?u|wZJRQ)LNVvy;!(L=&fdcKV z<5tGkO4tXV!C~tJQ3g6t)HB30+%xorMFLvLnnQvL9Y42wvM?&Jy-Q3RHqXXCpvIDZ%dih7O>D1}Qz5-9cgdAru<6F5g@w z{+F=$bmkra1+&XH*M0x_TR}IegW8q+kTYgL#jyv{sTiOJL^=~FC_pYkIXe}yqA2Wz zc_t{to`7^B3UbgAeNf7O2^vtw9**Fe^;ZT+Gbp%UR>7hQX>NcWoP9vngOU_v1Rr$K zkrZMr#tw)HAnTDG4w^PeXL_j$Dma3%xgBhMHCXc#$1RMW&3~bV61a8%AD;v(F5q*1 zM?pj3keja&v+vM7zRQE5Iy zbkK57uwQYVI%NPF-!2XWSFaDkUi=J#Mg`<7Y0ww|=pgqjtgA*!K!bmvhBwkRpB@aE z#V64AgMkJEAvcq!N)f?OtxSnD|@ z5L&E2hu8P`{{R2l9HsY(Xjg-aOs-VO60lFn|Np<{g-=U7P6qi2w0Dc~j7N8!fKPWk z2dIwVK2YM>{rmNMj~)LZpx(pMU8BUQ~L;L%$*4V(yd>DPXzm~#ViJLkddrh#T^H)!PphX*Wd!e2ZFr3GW~xpJPp zPLO~>*X02Tm+%+cd_fyh!e7|=qlbzDgAzlo5<@2FZdA~QYw+da;4A8VxXeGBB zlc(j;5(V&Z5$tjc*cthrq2P;N`xD@0BQ&NJYE-~$IlwD8pt0$}?E1l@)Aa?on+UqV z=QY?+jBb-BXbVTs3#)|x|3RtIgYk#sk)=8YXxl-0o}s}Qm2McSBhpHOdYQWGzOGiUwDA_Zu5ck{06&Wrz_ZO zXcL3aGuSie#Zp(K&I_n=W-8?dON4m-|NmMKwD-qouE&dGP zd)>0YZQBDr-5#JLTS0rPKy{}l^FbVzqBSo(gI>&a0}bmyOe?}L4OFM%G!0U-dIr6S z0LA40Qc&@J*Bv?!fzs-5b_6YVV_<;MpB*547%dHzhtYa^PA8xSTN@#%uk%k$AZKQb;XkaV^G=PX@0V_5Q zi69NiSX{v0+QSH%z@MbgzyLZ5l=}dG3+Q?t5B}}q9?icj`CCCZR(kMn3kRR*$=?dP zDAR*~J9tvdKg`4WL}?*N7IKnR8eGN*Bohwv5Nt_Li4dBIK`CN}%nmd|rUDvt2F-f4 zg080U*ad19F#HFt$nfXzXg$T>l1n%?Kt{k06v+S$IKt*8LFcc41DuG#eErD(|6hW} zr#!kr4QqFfUH{+z|L>7}$wL{u%ybv1T?-Bj?h78BVH|14*_jwTj=O{I4P@{DpUNC( zg2OV{+$gd`_ecEy{}ObNGFT6iia4YzPiKLK{IEnhXy6Xnu%Za0ga=xV1~!xkUt5AK z0I$6eU|=|rfo*8rqr27tJe=O?x&yRm$fMJB!!g(OutTxzSwM&Kr*ZJ}H;X}+d`lMD zd35{k@ZjIZXnbkY2WS8`|4=AV!zwON8tl>Sy2GQ}fyJZwhkd;(sDmt7j7u@-fM=Lu zhZ+g2Mi!JhgoDleUjSOkw8MjcdjzO03UQVsxIGFUHL(Z>4cc6C+@t|+DKL5*cLiTI z`q~y`t`GkK<02B%v zaD)P;I3yH6gD1$LPy`AEY>Gjl08HXz#a4Xt(gAe~UNl;dXoP_`h2)OOFzQ%9C0kOe{e|rWfAT~e) z;=;>TX!4LO9t5EQP7`=T1Dqy61MJ{Uf{@Svr3uj4hz#H~L3U7p(?pRQC|O}i6M9(1 z1^8RTAyqvr!Q1oqgN{i88%ALc0jG@}(6oUyhk(If@%Rlz~eWnbc>$5@Qql9v5OAyFCZymQXz0`m#et!uK9|G>m0uO_xaggLLBVybI z4yQMPPZ9+y>ifA7o>Vn;BVnY z2>A3Cu)k*Z?f&HPzw`#=T$LB+L5)~YH>lTjgHQJfk6zaup52@t-2xt+9G;zm;53Xi zSJdKuzbm~{^P zy$3-e{E)sGXx>;OAnZk+HKZQ}ImN<(zZDb!(5_V2iwp~Js|3=M;%^lO82}2u{{<{z zFT5@O|9=?;65`(mR>6d>;-mHd|1UvH(c#@I{#NjHZ{48K^I(BYOLQNH59fL^gSG}vJiay*KHar5UcW>PDSKMFYw)*# zF4gnwc8B*09kC27W4p>@J*ZQNag_(CC5*VrW4+5a*Y*D)_mYAKnxSWHK>CA_k!FZ} z{LP?^0UzMw-{uRQH)#XKyaTv6g3OzM`jn7fAPzJ5x5t8~ML=oB13d10(Gs%{ z2udmp>uF% z$`2pd0$>58Q-eS~Nzf{5P-(-@-wZmw3Sl{T10j5WXdKQ3rQq^wh7YJb1?@%z8DIlG zHyAXa7-shp)LjFu`9W*m!{#vKz&bCzECWRW|F$rQUeMl&FguUtUrdliiFU7*@R%V5 zF#}{ZG~hscDDk`anK#VEpjD{B;1x&Apt<|A-rz+@oaTFwH6S35OohKr{fo`e+r z?8RpjFf*7V?8OOFq3c$qeXWMi zOi#F(Ambou3Tzy>JR;fOzuZA_23m6)jQhBStDteZ?nB_}w($Ui^#KOZUbC^H4WHNUqGYc zl3>5Vsu^%NfxKA)4kxh5btvJ4!&xgpW}O9BSy0HEjfqh=5A$vUr9K?eXbfz80Q1spopTtKaB)Uhk}8IH(;1Ig78&7FJS9FieHin-cKxKG=e6@EABhfAd15m?&|DBz{oa!3rZ%G{BLf z1f4C03}rX};HVMs;olZ!0B$ybjs0@v#;?t><$MP{&SrF{|8B9COdHX zSnK@%|I0bxp6P#FWoV=`sDOZ^B)Yr*juW`T%|g0D?4%Q9LuQ~OXd5Nlx9<#|po0>F z!d|?$hA4&{j?D;a0e0OCi^tGK1tUfnow9g@M`xVJ|*|e1kbr0@|?#YWQ7o z{Qv)TFx1dXAVV)XZUP&68)PU(^n%)cVK3%E4aH$+y(2hg**qE#xPayfnt!lB&Z_tL zuX1!!91{bm^%<093>qQ_Il>=g9N0x5A#l#Lfe1mCoqGmn8Hc^lgbIO!+%pIyB<2Xc zJqBW+Da^os4&Vs$49)@xfem~O5rP|N8usD_R0w9EY1oUS4*&nZ1g%Sk7-$YNa4kfs zXK)rs2yEaih!EUB^RO4~P$8Is=3y^N9RB}*?E^8*5@uRFM4e}F7Dxzenh!(>ZklD- z3rnaF%rwie7itd3O*@}h$n@DcZ3~+(d;bzd_X29VYoWZ{fx^*}VG-UzX3_&ZP5ePiGi`@PO|6MhTDXU9j-rX5`^zt`dX4-w6wN zJsSc(XEz*FgZp&nTKII=Y8-RD4qo_$ltUmJ9@30p3x{03xhniGQ3YM%huISWt>X!M zkzoTmxe95*7h22<@VA04IrQl+bHJxv(+0Xb!w=Ln0d4&No#hQXW6P(v!2`Un0lc0V zvhVkV@d4wL8yS7MAv-f6+d`t$AsY{}RQ~^eSpjNKLUzB@1cHo(?0l(5H@OjXU=<;g z8K5TLQ2+n`CFt^Juy4?^FsuxWh73zWoi7Y>zV$%{;{zC$u%J4Bw%Y&yFG1s+p!COI z>;$$0vmOco)hpkv{{IKd<8Z@utN;IBL&6+~imfmcaM&;vGB`=HFRrSB8lH6m9^Lf< zkTFt5UkMM$@Zk*)*zlo8ckK=2;Y09>R7KE=R1a-e2~d&T{HqBx?1+5f?{&~9p#fs) zh=(%j2;p^?Z?4z>muRDp4uTewf{X{|Bhw z(#`18eZhx0T;nx|Pj|S64|AviR0%gY;;bsXqY1$v|J-l8N}@V!4UT18<=?vmLp!zX07TEY`b8ru91v`H$Xmtjp%kf&(v-{WzW+Wk|*Fv8ByPh!=L0Y@uiL2Y5 z-KRY-|MP7A$HdyP$G0*?!Kr5tL7?~MB7nZOxAO4y5yXi81OUd%HCEp>yagIwmR z7WSeOO`TcTi!zWpHHbRUuo<{(l!&IzBJ72q87MGd2f%qU9(t+sAJi`l11--rf*c2m zwBkg;?En9a1E3>AUOX{^_ygQV%whu-dW=x>A)OU=kkC8O09^BLmSSsAaNNpbV#xTs z1eCnyDu6ZyW~6;y$`JO#LGl0p*OD2Zmx5%PK{7nMJwAIZ4Gw#u1h?>(@&ErX=YmEa z(9Uly%>gAV(C|xX5-3?<6qul}4ttSgiZ@v~L#1(~8WmH}x?`l~Dm+nVf@}vT>Ufat zIP^a;!E5_bs5B0@FEjc7|8*?LcpPcI6{;VH?P*YH9LBqYMob~m%43KTt(qXskP)ja zhAeQjih(phBJ#2vJccZcP`jb~K~wk)3=FTJv`_}5cVGpj&q3+iQ2GUw{tBfz*g4n` zy$Hx?9OQVYPzj&jZPYn7lm&Mlt7*mKo!qyPUi zK#Rx1Ui9cgf*&ahtu%t{CNVVp|Nmt>`RP9qlwom?$2vi!aikz+Bg)eMV^F%nZTk_Z zG>!zi)Q~{>Z-MH^;rdjlG!En44B-*Lt%nf-8X(PC44^X`Tzg5M8@aUpaN|JNQOJ(vj<2fSO(P2fS%I>n)3!7 ze#DL#%GqrIcghPrCJj(4j?=e$Hi-TDHK@f4)+l-u zsxgfNtP#SO^yv*^@%c0-_AG*-|pY9*?l|1 zBz(JndGc=yPxWa2#l_!x6EdaGZndvwN2 zq#bAHVF2y8VR$Xz$-gZati8me*`I^agMYi2NAoY3_B^O|H;{H2u=Y5KwBu|b?PVMg z?Ljc@eqik&+j&Yopa$`j+Ie=vPe9fOIS|}FcH{8mbVFU@nRc8FwBFN=1JuegKCpr5 zC1^3Z@qw41B_qDZ2OKvrfy( zT?!gkg?Psr$rU=JxPtLDlkov?Qxe+w1|87{ngWLp4T1)VeY#@>JiDzuyFn+@K|7fQc!IQ@iin3phRNWG*B8qjYQCLW7J3lY3C`G_UQKG@Z|L3 zz=)dHR>lWjn}NLM!N1KP6b+6YY;Zr~)Cch^(ujKoVud(l_nPrHkLG^@wK5*v$2<-` zVDV%=w<{y~V42OT9R;L&WyRHyFo-^}Cxc5oChWh^gdVt7#ovb*_+LKZ{D z&SEBp@E4-8|Ne))i0}D}76rj2*;c9s77;iD9^Qq6rZ&b>7UKi2MLZghWq<~&A;lMS z*+Y-+W00;FsHF`~7!WCldO1|}OeGJY#<7%Khv{sBOaVakOL#OM1GSdG>bNg~Z50P| zK(jWFpe&Y>8xZXR40oaW(WlHMKxIYP3lorQyMI7;1-S4xgQqb6t6Y6t!NibuoNXp( z$-9I{XPksbw?Bsmryqw$cYKCNXIzFy_k2)8$D?x|h(cKE8FY>lXrO_)nu#IJ@i@~~29NGI0ng4T zfwbf793YP{fzH)`3G$TVai(oJq@OY|fVFSOA%7GqzXOLnXg>+a`kf4({JXL^l(9Ra z9%{-iys9Fhs&?a5Wei&23rd%bzd&h=zeNEg&>fE>-s1~AI^zmZ=$r?l zP*MY^#UWOl0#2HZzd-XMMd6T*O7j^Q7|Ojt@*G7j#s@aAd32xi;NLFk!F(gFQxY_K zA_hI{6Pi99OE^6mkAvL!`Ymir2E?w;?VwcX(_JP2wPzJ*-C1ir131|sDs+$TeISKU zQ+zth1w6XJ3D~0(lAOEaGCVrtGt!Q;&tM4m41RIw4``5WAIMiwO&;A~KO!^~fHZ)N zf@|spYx?nW0jP?H1ne5Hdq78ug661RD69PY@6-Jw?Km5Q$8kto!>1E8l!xp*>`wFP ztOq5?nPBI=0>>1I&U^bCQUW5}%$0ft3okP@0yx~r5teWcnmQ0ljWZoFk+AUk|Qs1!b4WSa8} z>V6ieem*EI0i~6ov<{Spg|h>cZw93|K%q0y403C+!$1E2ht*=U;kDQ-cr7*`UW?6x*J5+wwb&eZEw&b3 zi>-#&V#~>@#a6;=2Y4XedA;E;#aVjFSD!)mcjcxxV5 zEw&l2Dp)PH1+OZkS`2gy{IICS)`Dvd0<{>fYN8xbO^{fNLFyJPwb*K~d*HQLv@E5y z7^ISo`UjYy?~YRJ<^syzdxz7}-B6axd<_RCNye1ym}=MdEW zXQ1>oDE$CRzkB$93LuxTlUk-9` zxd3bs9NcPc{$;Dofs1o>NgK@CZWVA^p;ZU&F;Hn4)`0}>vc7M`6| z5-#A=yHz|IkAu!v^=Ph-U@T>NErL)e;L#l);n6Aa+QrlIQz?qXaR$(VfUmVt##f+j zNIT95>h-{^-fN{{IK>_4erXZ3y%X ze{m1A+q$zA)J+DRWW?#&z5M|r185Adw;eJfutogee~<1D&>&$fl>@7Tc6?t8c*4~6 zz}3llbjE`Eux#MTyBTH-3}D;BUP#u01{>leJUU|^cyz};@aT+F@aet>S~FyPawA)~ zNB0lo1D`!s$9r^tZT|b;gV_~ya1{fn7ihc-9?)B)F^w7TH(JA?I zGAKU&Zv_dy=*sx_AACSsx9bXz?g)@wCp@}iS9o;Jn}DP&8LZ5$!UL);I0IC6UhwRW z0_nKm(>Vi0T5EYE=-w`-ca(Qxih66n~{ZWSl zeY)?zoC-3s+f4v8GU@2q?F=3SfZSbQWz4_;69Eqkl!AtmPc;7h@7Wox@G=^#Q+5T6 z?+xY?uujdGfx(yiEq{wFNOkW%14af0pWbOFKqC;neF>nRS*Py`m>>CDzZo$wc=B%- z@@W2L&fogN2y`$5SRT~nQsr;G1{MJ&A_oqn0}@&f@we_a0`+6rAuT#ky7XNE$(W$d zW%DmFP&l!PGrUea&L#k4>u#tDFyfOv8{ad>dLalm@Zp2wZQ1KS?(#0nbO0ofU$ z0LmO5z576k+NXCKsFw}yTZ6_TKvueQ;4r-3jyJ%U+O5$T1h(rK%p?$a+Aj2r`a^q6d~VAc@7t5L;rIRS!)px*+qrWvgI( zSuh{j+4cx$Gk_)CL1~hI3TVm30T2AHKW~7@7o|F2*K;30)k>5n+6}OI;%Xh#6B!_D zx@EV*_z@s}uj~7O@UR!(o`bp;4?x*S*R%N#BWM>hC=hQzozBhhTJ)~F0I0OM`QWaM zibp>@K3s2fJ1Fq)dQfcU(d~KzJP60X>j6Wty2lO)@E9)x19$~IRL4>B=$ zhQF|31JyAo!-SzA^^jzvQL2!3oK1}Zl15+ypU^WvUg{teYVx4UN+n>r4~|MfsC zNnqveM?Gi?hq#Hq^#MrWf2l-<0>oWQ{{4S>8YBjdip*#5s0aZ^g`Ued*Z2QR1UVsL<2bgyjF)MRJ~GJSYCo0S`t$ zP#=N`UUWk8hZe|B(Bc(Qm{!z4qk$Xb{%+X_82`5}s6K`yt(i|@{^4%{op=EDlOcwm zUZDHw2S@tai73#*~tG68v`TecC#R{`@~ zZ}{+U^GNmRb_Ly1=8)=ReWDC>OzI8LnE7iCkM7tDAeKirs0;)(LSQMs`3Dztt`nve zRN<9)HhXb^7T+NX!4eLSMn4WF(115I%ptL`NC%s9KU6`T+pGghYO)t#{9+Ivl&U;~ z!oyzlKSabs2xuK!^B+e3Rzn8xQRSfY<=O3pn!eBkAaUUa(u%4QoUmT%f+Qey9e1g+ zXSWx4?f_Di!0I5#u~>1SqFj#wHRB)C#^yH>m|vD_gZ=iU66)9KAU@o0n;#JEH)uLT z_zjkbxEWr0fxH0s8%%Hx!2EMu3+z7;7=Js6 z5BJ~Y`w0KR@(^0wISGKX@ArqGZ1bAmvl}Mx5+neLyCcld2A{it=N&K53_H9Wf4KrA z2Pq4=`CIpbya+E>*MryGqziz~t6j%pudVtAPc(g{6T$&=Fw&)m94 zcbtM}XOx0(_pO%}p!Ig$M?4S<;!l8#=Z7zZKgi!I0yY^^d3$unfhHk9!}OrBeaPWV zU>&d(p^$);mQUGe?wzOkKv^nsQCzq0Ym;)36Kr&7~lfQb@zh@<{@1~ zZvIxt$;*Bmpq8;mcRN_J`G9~&_X$YsOL}~N?a|3dq?eY18nNB|;4TT=3eYW_u*NrR z5disCxPVGDNW}2)w}K8uM|3E_n=--cTp1WX*n3(!3GlZedzEnNs64}VJy$V2dw$?`U$WCESj1FGHmTS12yf@^qw@FCu?!q)hb$M=t*1piVH zWF)Mlo$2xYCrA`hNSy+i-~5K-E~t;F0$rFwbgo9P1RkoOMHPQ5sDI?qEvsD&jjnwv(CFfCfl6_}q!z1y zqwGTwROw`}X;`BSbZ96vpm_LOrh({w8RURF~Ch!{uXdDhPI$m!JQIb-_9ff&;MQ^hnt|)&@Rfj zBB!qq8sdt|=#i5RlVVc_M@}$||4j+n1O_+0gl-_h9DG@8x4VF+vXcNPI6z6Zlnavh zA(PiUXf9i+gv({03!pA*Q$lyy1(;Me$R*vfJ7D~15Fefz%C93_2D*j-)M4=CM!1Z> zl?&o1Zibf-2DqU3cRe7S|b*;<{`_Tw%90 z9~yQZ7_OTHlhOsbrdzfO#+L>0;jXhpavdoDfMSxrRScBdK=I2AaVI2Z`Pq=#UQVdR z+GlwGpO3%Q8B11b(d>($Auia_hApgnbSesJ(Yc^3Sw`@zj(k{g4} zpmA&>8-p5G?1GhVZy`T3Ystg zcO)oC#v&jOL81*B%7|nPx&_SxyL_jGI_eiFlfjzaNvL(yJ(T|F1rQICQm9nm)q(8Bky4UC zawsW93c#v4#vof#C4KMOZYFRVat!8qXLjeVW5SCIb^I2H85d$5@s)+JV{znftn}v z#Bt@xid1OE;}%EHlc6xF4`SdvX$#{&0P*2@^3Uo2|3NLU7En@xbdJLXj1PENUj*O0 z4eAs?8jT|0z;Xl6YJv-fQqcBm@GfIUROfnvYXEFT$cYrFbJbu&z3`spQkWDs*dEzl zDBqEPS2Bkfe>3>V&u-ADSDeI48ITvcWiwNtlfpb8KHN(hIK2ef9s?Pi<7RjXT0np{ z9SB-sv@4H;G;e)K#_6rIFe#|FwnF(>z2zbbj;V>sP;Z%l_;7CpoI;eIkPa(o(A*Ib zlAz3v5`)Fy-9Vjg0xv;_IipC`!lgjR;zA0IaDkwJyDTbqT~s*kfAlyG+Q-S@(R_gc z)M55$J_7C_Lec{0_9f_;3N*ktsS%FLl5mD&GfWB^j@eK?)^PkK3=T*4BxpFk0`cMD z$aa#{a4drd7DhPM!KKi`(M5&hE{n>*gkwx1&TzDZNkPL=5z5CJjvIu);rKTJ8jcG< ze0VtSIZkRgmcs)JBOL4DQn7w8TX|U4iE78G5=w!AGpy5wQ$#1yioVN#B}4t%;CH0R9^y8Q_@?+q~+ zBFqDBh`6rsXgT3^1Os4xNU}* z^20W*06M)MdFsKl(+M<2?Zx2P?SyFlK~7=c0dB2>=EOSPK&NmcIj1#;2jqX~$^?jW zB6&dTQM@=9U;2Ytu$3t!1V#iTFdjb|(7^B}H8A42F#^Mf8x|N&U=|sHkqQZnYY&kF zBOQ_qkfNdmw8#RSwh;RgK@CUblmT8>Kww@2l-ZDGE&NFhgeWeIKyc@R1%fS@MMfYL zK?338gTMbtOrfVZG2FAA6Xu?^U=|tfsfW17@d0S{FVez1{#MY~7+N%d2h>2TZlJvp z|4`VT6Zm=Gi9;$Rn}tQ=zj2|@bO8vL#5kcklw>w5d zR;h;bw~B*BTsu6v9RxfWK_@bR*^pJH-M$@=b*bI19pF+MvReG*BX*Eycja*?zr4;4 zT{U|SEC#-fjEBD!G%~m0FKA1>hq61^F!aH8ZpiXvclh#Tk8as}p^*B?qg(begsI@u zyB)NG)f2KZmW{uK6I9?r_GQ0*ndS&O-T`{#3{(v}Tn%W=D@@JHDWFUYiB)d?);0zP zh7JD+xDRqW7-(kQ72+BRk8W8j2$O0KgKTte?q_3Q*zxcGzyF|&~ z(4ag92}+1Tpn!v^g3Nir4FYGc|7RdG#;{0fWd=nG*f5aR*M}g6z1#s!8|y*I1)Mav zp-BU8(DQ(k2K{BYISiCE82OtESQr>~{3V<;)&zlq2%Iz)LYPD)4J3mEs(KB zs8|FCRMqPnpu-3}I_E|}v_L2a4v)^(0FVf1-3?^fKr2`Z)Nb#FnBOVk(LEQe2%`J- z0iW*D4ye0B_*+3Y?09yA-2>Lz4Kbk`)jbd?uzNsEkb5BNtiev@Z!HF$8UZfjJ;5_N zejG2sqveo-hrcxlJamrBnpRN5+XHGfisOB{OD7;4%Y)YxSm1$N=+TYGu}48I1ysjw z0#!PYV1UF2yz1p|1uxtoI-Wqaas()PAV~oWBK>)v<;LxT6P3$B%Y^ zwr)=KL)ttAS`-RixUk_5sJ;Z9mc#@)A*uO?1AnU&*n{p89*qY;8`T0lLD%jcJMsVj zOG$8*P$c0Q9R6bK3DAL;LkZEffF=r#pgbI^l-8v}U696SN{zf1wPOKP*x zzyF@WFy2xl&>DX?39wQVu)Row=a8i=;Jrzpr7R!@qepY?4`%*8&_)H1&aI%GYvBDo z;C?9N+?AIZC;$J4??8J3ZeV_R8GI7t+^wL350tfcf`SCR@eO=N0@C%h5)9cbke#Bo zP?{e~-)M%2!{iCkyP@iRcR=+0fzoN)AbgnkJScw`l!l3;)3TtouM7+fF!~DAUA<8H zNgKpmm^?a-OCBZ;bKkvIh&eEEbUsWSjMjy^%V#r0U;b7I4YOYwY97o#2JH~}=TLf0 z2ZUeP387);!e~%A%D}*Ym73TC(UaQ?p)H}RIJ+VI2TJA152J=-A{zE7Y3#0J$5OJ7&Fgj}kL>xx1SPkKCT?3&Ht%cAqd35^tI*2@s z4uYmhSX{yA+faL8{NqqQ%zZE#T^y#K5Dn8$NZnAEhvgx1{hPk7#3KU`Wzqc!Z))%jKI}%Ks8}kH%x5)(R1(Fo5-g&g+DnMAyx`*!Ay!&|Y@_ z#ezlbpyQSpia9)b-8uMoX-LJ#ojfFfWH01Y0MJRF&_eVnxL(~MDP^9G1 z&Fkd~8FK^~%;CttD~W@lmM>o5NHXFow zosbjg4xsPy_c#u2C4!FY^XT>M2=w@0D)8d!`v3nuI$J&dgYIYYHGbmR{70bH05q6= z@Bs_xHcpS-{~@5>qf-J|{I~;X@_@nf|B=_Hz~{t+dJ{`P%T&5uC0x1-62OAZ2h#X= zDR33Dcs3tn%3=T=QhxA3z>8cP(7@IYU*m5eRX*JT8NS??_*>G!+kK)8upWi#$-ghi z&x89Ce+T#$%kD!S%|8Tct2}za-U7?=uNEk_2bt*czd*wCf02eqx2u3hcLR8T%KriZ zRIWnC?JG{FfqKiWeq;=(ZZ8|pOYWx5J`~dJ-edx|E(aw7l+iq=Q8X7 zUk?lF_(0bDdvwb#as+ksV;{U$L6&1I=Jn{7ErZE%cyz~AfX|KiU;5z1^56gecer^p zxOo(KfcWRZd{0nkThs$;VIai910LP32Ru+LG=v!X0&F2%4q_op3S?h_M`!E{kN>4F zUYLQ+w`p**0onKBMI4xK3$jlHX5Rx~ukM4CKP0X&4NZ>wDqU9OfKH#7colm31gHRGhXRyw zFoIMw@HbxujXEQ3`t5|AP60Vq;^kJz=(#9E+Hp4{hL=k@z&94~gKk<0@lZb4;b!R3 z?R&xlvN&9dzjY_LGYAbe(CG->z9(Sg)*xjOMroaKMv!ogF!AV&Gl5-u1~Cp4Oa`Dk zf9&_&cVRoYy8C5@(X{jG-$ZK`-sQE2cVn^N)py?CZ*<( zQV%2qT4Vm71H$*|KHvFJ&>k6N4571m7=;m<_Pws=@6Ck=_XGV1UZh(0fbUFphv!Fo{!XAC; z01-!9)21=&;A;9|rub*|1>e-|k@K(fp${ z1`<%UA&?LN6;cp~gVL-C=prZ+xQqvJVf7kRe=J9hF2k2yY@q!K&?Bb#TdP6aFaDPv z@c3VPBJ4#z=#aMzWEG{t9&p(}kgOL-L$B+B0FPeR69F%rmqBOhjX>hC?1!3=AjcTQ< zg&b^x-~a!A$pvz)?*VAW+i(&BtDM<`HKv^m6D>y5?yaFEIzRllq8nhppALcbsH3iDbh^c?j`46re zz%y*k9E>mLAS>r@=>?6BgDzn2c0g$1Z!LofgGM%+IhbCiqG)Rk1IdGPgxJ^r|6hVO zcz`Y>_wBA1fL})L+g;D``lDmBzY60^HIRBlxyoH4gj5#r@VA17wm~A`2tMX!zyOYg z<^v(eK*h61V{HSdfdF3Q3ON%5l$ zP6be1#+!DWZ7aje@1S-?H*!jbY|a3uWC8e|P>AXL9iStCAU1$1dja^ic2CQL{H?3O zX1N{!6=*)43ZTOs7!(+oAQtt3C28V~bqp^-Clq<0cms697PP&B=?z9k1_qqocmfGt zEZ$hh@Deob3yOMZ&X?kE1<$5}N=j_GupD9*sOp85b16u zI9ToQ2|2jIv;3efKbdHvkZB^&5%eD2U?U)A`}BH1J9VJuO}B%DC&=*-1^*!wxH06@ z>j7={K-6(~b~3)qLbF4{gMXicpGWf#MgCUEjzL!ma7PT57(74)-2VbXy)wl+px%q& z9VUhsB6^VCi|79%FF`X_&3nP#=kEgzZNhwFea7_ffBrrXQ1Ul^3!1{TUJ6pi-wQfj z+{apX3rM~f)Cq*AJfH3W(ESJ4dz!A_oKybux4r}W&k1xI5r6AL&@md;x*1@jRKOWv zvgzOdp3Fym__u)?Z=fj>Q0j2uU(HeM`Tywa^FG$P=3wRE4c*;GJ^vr|V2&{b4KM7I zaO{Zk^Mv&)!L_!p0^D_=?ty0~BU~QT7X|e@!Ts0f0}}kZ6gc^tEkN#r839t_@!tT{ z>CFhe!^Ggpzc0$qBN&ucL2;0kkq8RUJvz|vghvUY8~<`2xO<2afOd=w3_jMnDJFma z^YhV+tr}BelUn zYXC~BTmSw4AO6A}Bm(Jdg3Fib^PpFrqs%Y`hr|cDy2pF^#fJvFGN=Y~DX92(>pJQv zx%pVB7VD^{D5)r@s}`#(WafcsF3?z=v!fqGTbN@IQF=ZfgN)%dL1{rKy#RDDFarYv zOr8+k3{|fQ+C&E0Ndcu{d>E~VLmVa#qpQw9+y$evk3;yjP5WN_x4n~uz9+nQ+ zq3H%jqlY7m4|5+b8m5jA4bx9Z-B6c@#rsh8hXyoVz-U-{fze;jL-H#w8m5j|dMnhv znsX3youTH#XjuNkMH6cewbTt%yuO6i2c*)$A@L;FiNPW9p=Kta+BcZNtu)U{wU{d? zHC;h9N+B$iLt;^S8K~-oYr&(I0rP5U(DBNi&?Rui?8XOP zz6A{ucK;85p)eiP)%XB9^AaR}l^xXG-T=Nt9W?0R(fp%;zqN`TGPEMV-;@s;(Sw*| z$=`Y%aWA1iXbcIW{2-`b3Ry%YTEYh%<(KAf1zl@`c7?10e=BHPuTOWmfG6ZuX#Soi za5L_h2jpgG{{A9}abZUMi$x2y{{H800(Wh8Fo33pKy6{reZ!zLzCf#WVIw9W*L1iU zz_=j4bhw429cPz<4Wxk`+~ID};BH_5zMwI!Gv3Ijvm7*h%lPsPXs{0A2R;7Q_ei%( zf=u>k{-FT5yAH+WplLDCWDCsYphL+(*Mx!wds+BfR)QSc9VP&p^Wg894d#L7k(l}W z`#>Bj`UrF(qMH%u!r!z`ccZjscOwOl<~jk!Qg;4b`9^%NML;|z2#^0YTUw*P5yJtv z=g)&z)Pm*^rQz`>%HL|n0#6+N9*{*^1^lgUjF7~^SgeH>xdNqvkU@JB=poT2ug&;( z<#VvV)(7>J8HzQqYq+0h0=WUu&Ez%chCc`JWxb%mPk#>|<(t07mmD{Nczy;x$`?VG ze{uL)-l}Ex?Y@PO3PG1bw#t+FaEH5x5C67&PapnmX@I7{3|d=Q(Aq(R)`9Y%{m+C*wV)V)lu;S*R0}F2 zz~voOQlL}>E!DmRA7{|)&%yB$bi@)k?eaG}V3r92rJxyi1BPO7x<^jNVjv@t1wfI- zf(U#A>IJ?5DDVx*2z*0W;2S{$--PnOZ-kWHpyS$A`CIiMJW#;`nvuc`Kn4C*&~ODb zuYyZxNOXbjGyq-L1+OGPX9*$~wK<>ylz%(8lJHOgRT7{@!k|-kK06O8D+oRi8!Q(h1Xz>MjI0(l? zz7PL)JYnQQ< z`gH$5+~(-heF4Go0Nri?UI4Jer@M59Pj~DBkM8%1;PD#R-2czdD0BZH-+(4b!AHBi zcJ=tb6(sVagAH`E!Vgc#T?r3h!i8XA*o6x(V8T)0lfYp&D}3+y*#=|<#L3d7+#dW8M{0nZnxL9Ol)tqA)Cb@PUw5D_W(QyD_Dr!wR^4al)g;7RvmZU!F5 z+zdIOM)-l6dL3>yFSS6MS0Ucj<8PG#^PpblZ{-DXo2vwv`TLnbOqiefTRwvpxQK8jQC!v{{R0UB)|j_;D0Id|NsBAMn5Bl11~v2^Ba&Tk>YQi4OtTd zY88R=k_WhqY6aN_%Ln4{d{Ed1Uf)phG8wdh1>y;mIOBrFS!tXn%rQ1L7z7NoSDSG^^H$dH6es~C;1aToDxDUjHxq`oC zJ*YbiH5jW)Kmi61!H0j*Lh!<0cnBW-`~UyT1h8?SrC@QO>$5?LS&F~a1hbcHz~5s6 zQVZJV(yxW+bRz}#GDwRC90dHW(?L8~IsK;vUi3KOD0&PSh$((vg8QA&+@5xv9g)aE zx{tXVU@5>1K*c8L-WYKC``XXf_@v`TNK)}pJ_$?NpcalN^T7@`0~`(vVE`HL!M`0_ zp(Y0DeS^XerBM6FzyK>QB*49L4_J}*2()?xQKEs?!axhOV;~vmN$`*qj;lOF_#WyD zaBN^!B%rW?ssLBv9d1a~38aV%09gvzO$6Sp3~fO1x0Hh7v9olC$N$nDFZx?S4K3Fl z;C50pNT%C$2YBL&`#{NEtH|Hl2whsk z%imN6?WlsTvIoU6qInK#X@EpQwJk&xG*j;x^kOAAwStD2N^GFp;`mCmpe*T94Nv}U zVW84oqEyziI}Fq$s1N}y1A~mB)N^=(I$SEn9KOciUV@HyhU(-i<%R44jB|JiTE5{4 z?u^GdytD^b43Nw(!QTqLU7|Y(Y_1BDxe}hBRnRI$0>0g!e2p)`w7+KdHU8$y{f)n+ z8@#~g5`PQmlw0fvcY{&^$j_jVaO`jbw>Ut2P#8FNIECzB03B!x+HB3~#sS&3>Iys)OEDbu@1`%KU{h+lwp5ROkinIH^#{WILA;y5>?6xoWZT=R}fTS z4n>GoXION5L$o@>;|w%723Y_MiZd?(hL`rBo-cT19e9T;D8j_}n>E3r;N7Sm%?DJP zIhZ`4TQ)(fu0T`L3=A(pv)Yi(1z0OoMYn?rXo)g^^HT-}252wsq;3Nzw0~Nq^18Cq2+!pic_TAyxd@uxDBJpo?02#~=U9Qr6K*6yCv{q$@NArQO zG>~V(%9;;EK(7r1tq5d*ERON1`~N@eg}_U2OQVG8^=D8A)1&*FFrvrDeV~LFw3Zm; z*%#G6{=yg2#D4_uw*-lUd$*PK*e1dioQMLDLg^qV4bzWK!|aFYgUQ465lfrC zfw&`_fPLuZqw~@2+XXf6&2xzP#L_VLP@9f>32_I^TvurL!)TZ|u{6xTgw(^r$q5?H zR%kR#oLcljX!?TL3!`EFM5kf$xM+0sxcKP$(bd7^(Zwm{!^|a?rqn)IyrY}L4J{XN z(aS$T(jOstV*Np`x@c(npcjqqPV{mBR*vDKafKJH#L?Y5*!i^z$%!S&87Dl@hkdgc zz_sG%a!^C?17uKl2XuE9sEG;Qopl_vw$Oury8?L65&w2}aDy=hbT38i3l{!9SI`t- zI)`Af7TAEs1CZ$zg5rqHHJxrpi4o$25y6)PHTo4f~H3Kd@WxgrZr#r@NWwX#Uf6VX-)8;0I2^0 zX<|adoasH4!W=Y(M)7%dKfQYBX46QOuxg}+4zw0*$x6@M@I@HglJfLAUZ`P82f1qCm7 zIs%d-K%L5P&#)IqUxT_U;6nCg|F8f5Jt4iG6GfOk6%GbfqZBKK%o75Tg50M&Q~)}@ z$_-xG11h&XyMKkh&?-h**`o^TYeE*ZSn{`uLU^D8UX{O<9bDF>a|rV{|AF-Dzz&5b zBL)7}X9!X700m_I%LQO$VN`1@+ZoN}*#UATFrC4Oz{DW2zR?Uye8NIPN9@o$_UTtp=U| z0?)&O=2YPGyWnnlJb2j;Xn#Lsk2?oLVtQ(^9+tIK9^Iv&J@*Da-JuRX-LVoL-M$(= z-HIOFz80WLt26cjbQ|*xkLKDNEcGvgnL)K<8i!!9CTi`-RxIHelEs*Dl$qg0)!#q= zJ(`b5guPfW2~tc_5mGr)a&}eg?}{zXb->xr~+w^ZguPmz*Fko$3RoNTAsabpxyEu#au9J zUW++)_ss#tsiN-(7?acYf=74k2hg42o*|yWFPL8b{SVp{>>2#x`-{K-UmJmZ&0Z?* z8T^7DB-QCA;2Hda<>lZ1KHU#M>yBz~aFp_T{^#}#e(~-FSk$9i4AeAW2H$qe-~nn1 zaD%tX9Q?uTsd)re#eqguK>4OL!1MnZPs=~G9CyazA9U092+6@Hh2)f()d%!ws|{8|o$Su?zoCcrd?a0_|V`hgukDj|E8V8q?qZ(A0GSl)7H) z!DJ3&QN0dLwa0Nc(6%gwuoou3;UhT64)FlpZ_ER7F-H+-{G1D%r#hi|3UpeuB>Lf4 z7Lam~i@~jcoAE>iq%iah_6+e1^$hb2_vwxm@HPJL(d&C4&@=eO?;P+z`v#BWt}8$p z$m6){1kf>+lvoQVr@7dc7UTp~4NL2(nI3rm? zu-Mo5?Q3?QZrv_M&>6P7v9^|d__wQr0tvLaBoegQ3gndV7r%e~`R~zP3fjFU=F$9% zxir?Z`43k~xM%YprjkJLX|vr994na_7#aCn?Lc`CbmMdL0niB`+&xGDdc1D5{g#drkUPjPH`Ag6VX?O744+Cf{n3um9ytxokv$6BHTmyv}gvY_( z0$Py?U8+;f-?9rN*X_=+!hpXObRnomw;RU_X8zVi3=9n6p205^bN>JL=?2YI@V9_w z#yrD3gJ1A~1uuYmJe8o_1TmbsGzVJma+M^(Cc{DH2xRCTwz$VF1X9<;g?d1zy279{ zpAn8b|9}7e-#7WBkFp=fj{oT|}?t>tgGJ0@d@aPQV@HPGq8sNSJI;5l(bYUhm zj{QO5*Wqr{;BEto20KtFyTeKx0@09*ln6kj4=BJ(qtQ!}Qt;G^K#>#7Mvzj-l39?A zMqnGkBfU@s;K;)o@u0X8C{}{1gSLSV6nJ!l&TtP8L0n)%(c2CRLyzw15uhgLVu50=jBVD;3@_3_wjXbw09q~! z&ZOI+g(|3!WGodP|xstAUwf%UK&JvQc=Uo!*gs)>fPa^v6zE=_j`rE0nCNvg@aaC_(F;BV)wBD8 z@yU&xVc{O#pFFyMd|nzK=h6KOR7Ehmg31z5V~D9#5tc7O*$>q8F69Tesy(JhRItCuWSxjN!FI?CC z`+v;MKm#<31G*|5vZ4%h+9m&MdyoOl#TH-#7(px3uo%FC+W^q{SvDZYI6xFjA2(4h(81T3BgK|DB z&5A<2!uUCnqi(cV>{K!W%P$p|*6bBK;B zP&Oz8n+1t0P;Cv#1_a{@q}3FwR!}wu2M8>+Fo9DGBRKJ*2QDZ;-mS#u8;A>-!N~=C z#DMf}!m8J!JM;tSkSIm?}Ys4uj58ik$#U)EmV{?9 zWC^@5dJC?tJ3vhr@PeUk-wtrC?K;7u`GAB+cWj48r-Vv~HyUy?goy>&doIjqO3?ALBAdMc~4gntBzB9l+frvC82!I^% zCXwNhe1IYBMO@jx|M*;gtPAG)?@9~|paBlBE0v3d5w*Ne_YGg>IE~lrzTI&ezRb5g zLp+1RJ%h6tvLdj>;pxdRBbR_KKnHs?c7;c`>k80O3E&jr!F(dE(~kuliQugW-Jo-| z95_HHH2HLMdiSzud3Im)>^=dn>X(43dfycu{|#THzW(zcqynTE?XFK#~5P&U6 z5<36=e>n|m#N+mV|FcrVUfeE3GeQTS5waj7f)(MJ;%f1~|KPBMR zogwT+`S*YSU&ew(!d~10aRL;;8v@`RHqc;5sQ@TRhK0XKSpM(-OFgji3}&zaW*|K> zU=hq35t|#fw*UM8@-%lkrI%|E(K7+ zO5@-v7V->%DpeNz|NrGeuu^av%li7i|1T$^D1?~sOW^{`>#Z9z`L<#0emUY7m7W6E}bqih=o_LE*#&1j~ef|6e|mV_<-W zt;x!N|6g7L^F4MSd~o@}#Rm)w!N|=2WoV5U;w*ao;otw4l`w;UT>f$K2gKkPmtS0b z0b-JA@FbAI3UaWR;q?p&d%*_^TOP1woYvL%1BJgCRF8t1&E%T55@g%admeW9FJ z-~Ro7=>X-J{`mL*r7@JVLH+;#mug@Rv@H4uDq=(+B9J2D4M>CuEP|Yek#aU!$r#i> zHUzcg*1Y@o|K%dked{3}yAM(=SHsQs0h#Y41&bSS=I*!yD*nNCdIovyX1sHU;oeC` zhTyR97gx9b`~OlHuACp#CJK8I{_x-bmwzQe5f0M82GZ~oqG1V0!y`$U`5+C9VK3A` z8qR<x`IT>X0La-Fh^d$i5Q4m*29C`Kc|H~klaoCd+3C5LzjAI5Hm&FWf#S!NU zyZ(RwU!DP7SRRt0%>e3S3lOJ~1*CD3I0J)6W1YbNdIpAiX~>k_0}hYI1E68|fUp<+ z+5i5(1TQ29^^icrIXYFKCSn#t7E6{!7DEY%Y!56Ds8oczs@RpG7@&@=E3{AXZ*tSB}s z{%s7P)zZb>zTCG<*uq|XafOT)!wmTYHY6zQMR4`M|GvhzJ)3_E@b_*M1D$<(7l9Vj)A{#251(b8%2C4XkhUF|Nr$KmM8dIz#AWs6@WSd5e6Qeb3unqdvt?OJoo5s z0L?vt=M}_34O*D+46ran?dwaPA)ZJk{Wr*hX@}emdB7kbi@`G(6p+Vi|NZy;fB2;x zs0#)ffe{FMaS0RyFGNB9IO5TKz~lQ34`w$3pY9u;jlV&2_B8?^(;+)8`1=gO&TyAl zq0HY3x|%7&V>hUGZIS`&U3+Ey`=9auGDuJ%162Ni4pV!<0ODUy1zo2T_F{S_tf5>W z%D|8Tk=&IE={;6uLVJ(#V4J`_MhB2{L4Dfrd!Qa;s{v?uwYwE0?9tr-ny&Nc?ga~i zMx`O*jRzp&b0OjqKHXq#puR4s_wfIKXD0)s*Zo=qv=aw>=0*d559qo@(3XPcANBnG zpxcEq{)ec5I^u923Z#M>J|YYZ8ULq%WL~7h{Jsz5;W;1~NT|qxWI&w|Ya05cVQF9gm|tFdW5! z-BHl-1F#cN#t*IYznmomsv9uN$gmf_pk8&g5CcP2MA(ZHAhmfQy`Tj(VJ~)o_;Dcq zU$EILKzu(C{|lHu1H`w(VK!uRDeT4L%76be_!%u2!d?V`f|ief`psbV>pdKM(X43@yEnFZvZ6(B|T1hBgi=8R^LqMcwx8T`8x7&7=5gD%_#m-c}k zy>2!E9=&b`0bwt?Kn>UlFohZn8T_lUD@+6_Oou5nV94O#j9sAxNTD4}p#?(*|8DFG z`9TUr!3sTkAubDhaqH*5|1Uu!o8TS?`WP&DWHRi<((-@*cYE;fIS?H7;$!l^{~4vs zpmY$H^zVO$$M*{iVK07zlHg8${DBk)F=j8wm{ka4_z}iz0U1+7z!>pzP_YCKdB!Zx zu<#dcS^xgOv;pf1dyxq0wdg}RHGls7f2joFgul24;)%d`0)PMgf5`^pIe~aT_&^@W z;tdObu?ob00pat7g};~u;@^Pq`NP6rbbHPoy(f}gjLwhh#a0y~qJ^AAz}HFVYSF|9^QE%*gDQ zFlvAr{ZLK{h|>k-T-W^n|79(d=daEG|1Xol9FK0-4<3yNa{mAS9}xB; z1=P3jf=K+wn2Us_+4m(#sf0Z&{6!q73KoGJf&rQy1<#0sR;og-gv>AoT|4ulA^zWg zkH$Ka|DgFSQ16t%qub2{bQYFJ;{niixqz@2G4Y_XA9S_^L<)3Za@sBihJdga7eR6J z7F;U-i~0Be-aDCgCmuG+-m^XoHEc1jJDU8uoxWABUpHu(5R< z<@@2nfB!Qe?(+b-?;R&1K8X*c+Cm(G1P+Pk;PiMAl(PFlXJ}vq(lk&^rM(BG$KRls z%H$+EkeFfq!{z@1A_8e&0jL#&J0|88fD%2}ebFHIokW~-0bBhkz~4$JB}EkA2qaKW zcm_#He?W1N1wOR`JtY;!{QI8)I^8?$#k`1r|6jUr5FJSO@}d625lH*;i3p^bFhg*p zq{@7_`~HQ4%0JMF8K4QWEJn}JuoqpRI$;7_i~%H81`?}*ie>P(lz>GqaQuf(eI~-C zT1&xFTj5e}V5tnq5Z=6R|NeUh!3|*Nh8duMtf~U43ToCvE|{ucplew|pay_VK@gsy zpb6Liu)gUz{7MKHQk!3uh7VX8pB(t{iM9n|;%8G}_RW7rEO zxYE;*REJ`Db1}pM&rndq9yAt+upDM(20zSfh~L-$g@scE%yO(s8N*&Q! zA%nlY9O83-RLgs67&7?53i|6|sz5$BfSdRebYKNI?y;(6412)>S9=z^0tvuP{9(g|T$TGm8U z1np*k6fK4;VnI^`?P7ow)xj0r2VL9(4jG7b(C!6DQ6yZ^F1R9a8bEfF30x8AMs?8K z890Gv@b5x$6F*!L=tgy9MM!RXB?R-GH=1=wZaNBA1iCT?ViL4K;ewYM+;IKSLf}0+ z%xKX5S@4J?F8Zb0+BD z|Cdsru^i~wn|B1Lw1#$IT|uKoAeVrg1WI|f`ZOk z04eWom;f5R0hs_^(E>6KGA_!^-y{T*LWuD2H=Co1@bWi-$MgzAOJ`&Q7c5gy=Gl%T;8lKum zK?9S`zgzkHK;Z!znQZ=1Rm*-1Y&4_GH!%I5zXfzN0%)~6ALxw1<^xO~-*0#_yJ>)Q zgU3oi74d6GMVuS_@Bd4P4M!mZpiq?=po_f2UWf!jhAppzz_RjM&`l8CWdgpPc^Z!V zyV6t``I|vE+-EUl{Rn$e5(e&*aD=_c3WMpW1|i z^aeEG0=@wS%ymus_aC&BDg?A5(i&XQfP2GO*AP8O|M&l;7$`QudO6en{eKC%c04Tn z#a}DXIa%A>z~Vw}Mnd7OFe)w;F;R=+S+LA?yWDFsSEwUz;K91tXYw zSDGR0#kZh;|1&@b5{JED2Dy6@#6>LNr66c)n!r>4EzqRRkcHL7x*!+(K%K+L-|Pr8 z50o{qnYX1Gzkzqa;k7G`LlqJk9{l^`*gz{_JV3*GsxLuX_dsIcRWTmjt`EQip`cM_ zP_kTp#iku8I&VI$J%teX?R$=XYjX!7NvMtyBF}c+cGdPfP}T(Gkm&lz*bFzlJ>y| z%%02#K$8lfD|19a)%myc%->u9_88Q=pu>?eW;!u5y!e0Y z4`dY_$k;3gkN>3)ynA`H0$+$R{QdtDlpH)@p#e_XU=6_UFIHF3?~TXic$4YZwQAs~pJbkoC-<5i(C~Ynpu@cru=S$-@9% z!;QX@`=!JsP|30V1!$88=;Wn(Mg|7Q?l1+=VVKRCpmmS`Rjw{~VrBs4NpOTpK;zJ} zJ50i}+s^9YD1Sw3N`J+jWCa zw}S>k88~_P-tg#Td-G@L$pJ#WN1=>0^PlR^gZnKvaptJX2$r?1Z3!bP@=5N*pMKm;xf_Ex` zOl3X*TF#DGK+k;CvyfP%i$^cq{*nJdzQ-lVCij%jFp^A!|yN*vtkgJP| zif5RPp-M5A@_V54Oep;iN^?Wamxa>$P&xuiH$v%EP+D99Vt)aY_K<_{r$cFWsQ5`J z{T50KNLh0vF+Fb@>&vGbz4N9}iLd3P9v;~xQh0;M#`Ye== zHif8<)Q8ZnQ2GPZpMRiqIFyE^&&yDE{xpW@^M;zks0iWzgVMfA5dI@5T?rM>gX(vM zrZ0XKh&lx*y%w5&s-gUDC_NiW`$OqGD6J2r?V&WcD#X0oQ2uHtt*s3aZ_t9!S2ZED zf*yqatplO2LDfk^%}IsQ+R*$5%a8p~@fA?|ER=o*rKdsjjU|-t52X#D=0rm2CMdlc zN?(D}gyg|DTQV>(7(m0z73!ZLC>;-_bD;EmC|wDq+X&FP(Dcv&rQHo6;qxBKpAY5B z8A8P8LTMQz2)`IAFAb$XLFq!Mx(`q~AFBQ^G(Fve(u<+?oP^S_ataqc8*0u0DE$;l zb3x6+C9V&Z4}sE^P!Y*`el( zKxs87{Sj&&BUGIrlvae&hEUoON(Vw|P~`@y+897J6@$4o#C0(Gnk9tKZUv$LLTS*^ zx(1mHwG6ckj0~Y*7HA){rvU?848&q!U}E&NfT#npAY#mnp-?dp3nIqCo*1W-%~uakzn5wGbA_9SkQpAe$0Bx=STM z+Yvpw-32_F58U@?{P76X4QS?owBn8~bzuh0?l5F*^=4-9_+M`DB5)6=5e42~+W}JR z(h{kB!-=pyd6C(pd zsjx?Ly#hxqk4JaBLPs3OOYrf9jr9VcrD^=Fp#9GoCtUPj>!^&= zFo|7IiJ)U{9GtHmLDsOmwgOQCuZ{V4<*{+S)&cPpUaNvAhu3l-LH5_;Ad2I)0Epsz z%?YBoUo*Yt4u2t`{P+LM$DnhHqvGRE9ui;(bb&^`f^K=agW(Z>N1TEb?kpO95AWnG6V#r|NU|@J5v<0+yQ5aNP zA9sCVzyw;f1{&{r@nbWnU2!9eA>&v8GsBCQoB#X|0FAL`Tmf-!fw(VtK7meS`QUN9 z4YW=b)RGB%Q6LREE6q&+JXSc78M49|)O0A}&0@%S6u`_7_QJ>IFKCw|L&mQFP%Ea) z;6)eMwimwKZ!1B{Oanp6R9*i54||~iGO)1@-24EW;SQGMaQXY+v-vMKe={#L0|V$P znfO3v2G8!p#+N{YjN#xrZVr8374LZ5Spno#$79YK3?AKa2A-YK5+29hK%?LcVJ{9y zA-NYc<^{Ui&6>Xjbl{h7ud{(C|2Ah0&>Cj&aMBMj*YTgTMhE*bcMdMl@@;UVN!F*= zoe6YE4C6m{MzGR2g${|Z7l~4T|G&NoGE=9NBkV;Ghzq_w&Km5O?O?yyIRE`09`@qv z*Z=>IxpOfbbLR%H3kQW7e``EsfiFYGsX%C8#cl#c%>$Q?bS}^4Ka4e;;8meNnCtjG zoBznv@Itr>^(-FE=M}->i?I5NJ!c4mkGmRf&TG)$il7IiZbfj~mnkf!4lfUOC zsNvOp1ay1?fBzZK5Lfegg_nmxqObt+=yZMI(d_!d05t4f`r^g5ji99Ex&bsY=h=PP zqucid@;D<%7<6nm=;&$&hAc*Kdi3~j+P(vns9ZOIZoYm|1Tq73Hgy(5#uIQ@2{?fc z%rZ>`srp~K;YGm4KmT8HF@n-7AT@AA!6;D3p27K3Ndi+dZu zcI*J9chKtiZU&G48(x5>)Pi0d+VJQ9Yca4HpnC!So9={|v1-Gg|6wmeB>w(?otVXt zrS)Pa*pMF(hsGm0)BxR~yg{J6AnEw`zvFRt1<=^BYe&AOM|YfpV@JG($A8l>kQL!C z+`(3S6bBuDRwn>SUP@rScO5|a=(_md|1XpN{QvJ6{6ZS6cIx{-|9y?$dN%(R;P2f7 z>LKj706Jj-JWhE4G&z)gfD4qCJ6&(QP}>c>FhAz3tC`&#)JB*8lnMu|onh z2?Mo@f16t>cnFsHfKR6ZB(znt7(ByX6s!k@_6IDX9rhvwWb*%`FReg>xEQx|`4>3n zr=%9^g+zqtMKPfAf`b5rw5Ko^c; zwIt3TQs9$I@A84@-|B}-qj<{M-`Cd>0WHDsSjbvuX*dNKv@M81YKmS2B2uR=s zNMI2}-~&kDKS*FAL_j2pnIS_vikaa>14O_PBoGJ^$cG4IfCMT)0&x(5i6DUmAOT;9 zz($b3VUU0gMBoZY;5A4<8zR6M&CHM?70t}>LJA^a1QKuo32;ILLO}u}5tsxLSOOB@f(YyZ30wjR{9Fz8{&SE3V;nQXix&_9$v99% zfdsBY1nfWp0U&{65P?LHKqW|ED@0%dNMIpIU0{#$zjUa(5AOSmwz&nrte*!bZ3tfnSOae1Q zh7m|W1|r}N5-0@;a6<$dK>`av0>4&)y}t$|@EIiV5+d*qBoLU$%<$p{L?9uNnIU66 zNZ>d`U^hrWD2bWj#Wsk5ToN-wMl48RDMTO>B+vyCm;w=)3KG}{5@?19oB|0v1_=~F z1ipg=*i)DpUL-;UL{gX;GSoo=0T2OWkU$7Xz#bxy2ofj<3FtutdO!l3KmxK5fny+n z`yc@xh`?8nfM_Z+!;9Z5!QR(SWoF251PQ!?2t}|;0w*B?e?bD$8O#hXc0dHQGC&~+5?Brq zhyV!`fCQ#N1iC>2Ye5375P`iQfj=OD5{Q6oCNo2ZeDwEvX~iOC_n@(K?30*0X~R8K1iSiB=C1R*!z<}0!u*x zZy*92K?0{i0=FRo_do(4Kmw;A0!-P=3>hNX%nUDfLIkuy0uCU76%c`7kU$zpU^+yg z2qe%15@>@6^nnCsf&@w-0?R-GyFmge5P`EGftMhGV2Hp!kbpuCGs6ofh=5TJGebrY zNWc&xkPQ-O1_>xY1g3)o=7R+IAp$Ew0=q#1|CWKhe;y?86D05!BEXT$%#b0T%gpfN z4n#m5Bw!5^I1Lf-0|~@~1a?6LazO&KKmscv0&745CqM!-AOhDx0=#+53@_Rt0!n$z z3>kqSfij3d8b~0#f|=n(>asuoPaXyhfcrpZcfqs0u0cWmK~|vAaLA0U0=U8s3IYv~ z>wreeLBfVA;f_Imo__A=3PHjQxtYbqnR)37>elKCiQr}nX59``<62Qrlv-SznV+YS zSOT^Srq(qgAjma1*wfz+VW1|+KonI$p6(tY@d1uOu1LyaaVT>Na&-1~4MCV^1yTs| zAk0!o!=p4WB{eNGFEvG>xH1>!u24T0S2s^TSC{zUNM8mFB{`XSsa7DPP}Ifyc>1{_ zDb7qu%`3@F%LL7nL%fSnj?`?-%qvUG$xKm5&PgmThB?5~FU--$(7$1ymV0j4B3 zH8%-i8cdC^tFM!55JPH3L27adC@xAW3sPYQA=+dikpZqqiZES=P>SR_gsJL?2tlYs zjuIrL)u6Bj#~nhckE>fqJSbL>U7>D^MWt(CsG|=e;%ebaU@-@=6=D`FY;wvHb6}o^ zg^W*_qYsjo)pg(|A)Ezi>muA9Tv=R_nv0wm5Nd-XgTV;`mY~(kGct2hL56}71I%^d z9-cm~42d~Ksfj6-3i)}d3YodNsVSL>CGc2r^a*lxbcu}j_j8T+^!0Uh@pKGvWhk!9 zD@m+SNG&SLFM@d`IMOe~F(MwEQ<1ztS)Li$AhC5C@bc!ovy?01)fL z9D^8&Qo-3fvjnNs333JJZqE=_y7nR&$}MWxBe>R`#p(=RwADAXCOJgF!#FF8XY zzqCXlKTV-1F)tk+sZK$Te$F28{-Gi9{%-L>j(+a03^xNl9vML5V_1 zz5>_-phN@;WLT6qhJ?8K286_eeF92E0iZxm&M(bLQ7A1=Rq(V>NXaZN$Vp5F_a|Z6 zoc%+6T;fB6UE@71;$1w00~qjXfx8n!AH25l|Z< z7@Q**Tp}2pA{c@L7@Ptaf;|~rJV9;-jXhYFf=ELH2xSPNj3AUTgff9prXULJc0)6W z(XNgW46e=*46ZH_46aTQ46eZe46aTA46ebR46YC>Ktmgrr6AJK074l;C?g1E453UQ zlqrY;TVZSju_DMZf+5H`f+5Hyf+5H$f*~k4fFZ~!fFUT@lOYIf1w)V}Ly(~XLy(~% zLy(~nLy(~{Ly(~fLy(~!GdMdjIEOPhyD&HhFnBsK zc!o20x_}LajO8GWmHYWK1iAWHfCx|oxcY$7s;9571w*K(uP-P8d;0o9#mr35hl;=o zA?hH?JbisZs(dXNf^jhx7APc*K%-k`CLq$#$O1$efWrtecH{~%1Z*tCOi-c-c6EouPH+gw zbVG*V5F>`*5Mzem5EF*r5L1TW5Hp705J*gd2GSs^5miKHUP)>?qB(>p{XLVSs;dh?{3byt89)2!nHeZb4>F zYLP-fVo`Cbf-7>391s*753(W1&(Q~3FT<7l7nEe?W>zJFYY`M({sAHAxr==F9<|V^gl|in-{yt%@F7ZLGZmvPDe$K88!O4kvd7##vOJ-3jsM@atw?KoP z9sNL!^LQ7}AcoMqQqa-Xpehj*!l8bl!LBaxplUEQFE2GUB{fAMFTWJ5s64SK4_pO@ z`uVxKy12T;`}srEgPZkGlTs^6QsL^rhPg(BxCZ&bY|2SYO3i^91D5u2baM4Um4$^d z#4%t6@s1%3e)%N|i8(p><*6wOnRyCnrFkGH`}v2&JNo$ehr7DOd-}z@g(9`|!MA9E zS_L45u*R0NV~Dc{LnyovpPpZmuYl|rz^flbH-^ z!XeoJ)dOl2AsMfpRFs;St*(%V@F5q-$xcD8j^6P|K4fq$Dk`>8O;HF>EXo5jK!eU! zsu2ponN_J)su5sq;HF=2JSbW`{oI2YGIPQ00Fdd>IE6aH(-+hR09ycwQikI4%#!2` zXe$M!S?TN;>Ol3T}y+IjJe&Xm<<_b`1)NcXRagadlyEPRvs;Q7B2wPE|-uNht!g1)wPi8oiD# zE@)ZnpcvMTAW!7awaGR zJG%x4I|fBUI)@=1uECzc44}dE%w&bqyv+Q(Vui$_RB()B<`(3Dn?$K8AkD!cjv=1T z@u7a;wjelY<1-SAGvZ4UlX6lO^7C>kk&|h0Nn%N6vO+SXd`MAHPOV6-u2sm*Pf67S z83&C65657S_z*`YA6FDlK*A?8FS7*FZU$x4{5*w}#F9jXjMT&eP)2~-kei=Unv)7L z(%I1uRCIWTK$_G3e(@fzjsXmw&~9U5QBh*00=QiT4L(@2)iEf@F%sOcVsP~FboT>$ zA2rJL`l;7e(6BA(dP+hsD#U%PL;v@syu_#I{DJ{xV z0QIy%DKppu+?xn;4G9hMiwE_!L75p+nCmGhKvFwYPa<3wI6WijK}0;n5J0?R?G6;KL;6u&%Bch;V35}G)SMiJ;?e?8Sq$3z016L7GbhiG_)tH`U|(oa zSd^Ns0LtVbS*X9=!S%6cPEKliVva&ud5S_&Y8ot6diwadx;y&ByM=?Reukjb^vvRt z)FM#90P1Uj%n5RJ2UU%s!LAJcpwbC6z>ow=7|;PEL|Iw_+PqPcnF~)dpy385P{|J& zR`P}BY*1O9T3oCHPK;%VIi;!Kz;JW{H3~w&5$g*b=F3P;Oi3+LNXsu$2q?VpMQtaY#`mNK;;l zLU3hqC@3O9TnsaUBZEPcjRppKdaiyh3?Lem=|aFPKmPy*Lx>D$)Bz@D2xfqjG??Y= z=;IR))n%xs2j;>IgK><&1|cOjkWC1#5rcuDo*t-|38F!LPy<6f&?rH?v%g<(2uRk? z(J43{RNp~3po$MtIe__~A{<XsG80_6|tW+20qU$Ug*3hx&mkUtdqZ&|n5bLoGjW z0fb=12LvE-d_j7({9uCdP<}u_JXn#hZ#;vMp`Ko_hYyqnImi~ohlZ}9A&3_Q<$=_K zYaXy_-%yAy7tb&V-`@pHg9==bO8+1*Hv&pKxaeC zbBRZ|Gal;12>+mXkaLYeX%#$I4oZuGp{~K;0VyLxTR%v_&VXQo!WN0=>kF0(_V9sP z4U!A?2twldh9b+kc!nX%`MV(TK(2&&+t$w?*$|LZ5mKPAMDRdi3E_d9?*;O*fu3G) zxF@LnZe*aR=jZR_AL{244;8XB(9;8%02(4dVnZ@BsA3FaFfg#y0|y{@>;=s84}kO% zL3a4KI)=G|a*JM&E4YC01Lbaz0GJW)>F44ZwmeqlZV?oei^1&m>624fi;F&G)>`T2*2gj&E^ zhGuZ4F~pyslE%%)(LETfFW5CC9>N3p2_y#^v;o--k^!+{;^3MDTuB<}`GF+i0x%W9 zA>NQ$6siEm2NhJH5jl{$AeWF}XRy~j0$fADZgYZB!BB1xly+t?Hqi5Pat#ax3-~yN zKveiRg+P?}IE6se_<$9GT2KJXza1fXd40Vn7^z(#R0pUOlfwJR+T*KfBgIs;V z?BI|fA6GxH?Y^$Q&H<4yX0U4r5;Gn&ObK$Lud6R8KtQ9F$XqiMkZF2OLGe+pLH;l{ zs2lC%QIJ8{6~YYzDS_DwDl(9L2;zgR2aACtDJb687ak~nPGBxv1=M>W zT_6nBg(ils);}oT9~#O~l@JkRbs%eCNi8TImX@4AOh{@1Go3-604as1Hm9I?c!Gnl z;c7s}BaDRbAgK!)udsv)=b~suwgRLX*%~MxqCPm>F(4kAsUd7=wuW$^86U!dCOS}a z1Xlfny8$2$C~SN^{lM)47#lRS4rV(>AjBOb;z8oZ26}ovp1z(TU>O7tBnQ^x?*di_ zYFGpZ27#=AGC?XpEr;MhP;IWK=ja4#Dd_112L?f!5W${);HHGLKSUzL5yE!_F+lBJ z@R%EPsw^I~RGA^wNYna+27GmLSQbN;^o#0t(8^Jre$YgGmh_8kFjoY|jRtdNU|er7 zmj%YPM&f2%Vqjo+p#c^-*atEVA|eVF+1B^xf5!4UW`-9m?VvS=H;n&#H2w!^;qP4r zUYFS2_vgP4^Kno9ZJ=A;E;x2D_;lC7#he*Enh$^kJ^8ltjJpLc>WIXKg|M*K^@JYYCqJ4kcY-kVUirbjpLStwh}qnr02l&$U2&AYYt&wt}fn@)T1uNL&^=3NHio`G_w zL%3(5+ztr$9F$uL;hu+bvmo3HP;NAYdlAG1U&~X~3X1n`kmbicdjEjVnq%-d9@_io z|A8|M495RGKv&qS@h`S@>;3b;Si+-Q6{PgP9EfE0@BQ=Np~J%C|MAyXz^18zO|u6{ z9{7m*?rD(P;~j9r zr-E3_D2BH|4NnCr{T~M+nfrSXPW98R|ARPjp|Ic}LAM;?2La4oy z#gMUpg@NIPT?;6^UhwG@UDN&NzvJO6Gm0jQv0hw#dAO%tj zGS`+t6t4Dv6KH|?2aitE-mX9YkGFwtcvNEGVL09f3Pxox3#45I%mO)E5zGPwrz!&v z1I&lp;pW(a&1qm{U@%}1VmRKW!ot9y!yw3TyiJ3Jfk79{0_iqn5Memp26B%PgDAuC zHc*%ugIOS3Oc*2>j<$*TJ9To-#YX%*L<81~k3=B44mJJI7gA;=R!|^s376t|v z1`~$kZJ>Jvof#|`AbUAn8EhGjw}B2{b_26ODZ!n=iQ#yg2MYs(7ntS4!oc7SW(BY? zF!+F3AuJ3GzF<}d3j>26m=(doz~B#N#jr3i1b|ryEDQ{RU{(qX149s)mBGTm5X|7j z;2Gx`4ZcPEa4=}lG{iLsrN;2|3uZvRzTNmhibwYj3D9!;?(H6+eX_mn4j{_%Sc#x# z5a>Yh7d(xi%7q_O)$*bC6TonbFFHT?MxHsdhp7@`vf@R|&Kld?y5sQ~zr^Zl>` z?m;K$vwI$A2Hjon(d#C`zsrErqj?`_#{p9*TiA zw}I~S1qpz5;ebwW^ZgDvu)K9KsIsyK%k#H@PQQn!$l?ln!7T|lC^qcHUkNymA?(F_ ziNF8Bw{|gj^t%2C02#@n2-*(u19Zu0tOx(DGzsP6P>=3DP!93w23^1Y!=w2CyHEE8 z&x601eT|>^T3)H;_xf-0JnRLd!QcO$|Bt+W6aHde{h$Ay-G5(8dHmnDf{}sYMQ{C| z|F3yqy!v`j&?CIe4%*<;ecUt7GuAT(8uf=jXXr36fNrMt=ynzG=$-*`gGXoVhhwhC zK^qM~LZCv+qce5~RK)?%wuH`D(0&t;>;(uHbkP`y3tF4*(HXk{v^m9;rR~rE7vJkZ zi2{6XJ4gX|i*;x0ge-n-T=}FwNe0lQy%}W2g=2=P``kJ9OO@sF))>{LDvI=OaTdi zGiSpKW|U9^$6I&o43AC;s5#)U?~ax5=#z$U(KKYFF^;ApuSc z|4Tbw?5GAu#t&$6d9eb-hu#PO@(RdQ=xxacF5hN1{rUgDR1H)tdGK$GweSeec-jWq z%vNfU^&f2S{|%tj@*)Xj2q-!sY4Al5f)AE=g7ANMbb}M72ls(e0T0mKjmN>a4Zj4P zS_d|-8=69jrNMVKgIozVfDvo}__D{>a-gvJUtr+T?FyHFSOxMGSRR_8IY3^ASqSz$ zNO|`Ra31N5z2I@&^#OP%7(^Iki$`bd4e$X^+y_cxJi23Vcyz|T@Mx@k!N9=CPzSo# z8O#DJX+8k5z_-Jro6&>W^+6QoE;-*99*n*ZK;j;nzBfF&eJ^-)OL}z1UU)ql>T-}% zUZ{gz4laWXU`_@#qo7U(6-gE_aZrl^Nn8LX4k}Qf;-EqUGvYx}(|7=ye|LZ~14IN= z4tR9OZa|2D!=XEN1wsVmN{{Z?1qcynuAcxB`CmHYMM@>8{ayOwMKp*3F&R`^dUVHr z0I7k9K*~oBQ1qNUWPn)aky??QS^!?Op{$z1#h_cHTfhKXk{Ry|Yb}6xzlM2+`*epY z_;kl=`0#H_HSp;!mGJ4V6)^th^6g_iD4lX;>}qFbcyYDj4``DrlV|t~rtP3q@xz0E zSH6TYDAjZ~K-wD@JV2#_l}D$7M`t*PM`tyMXNV`L56hUv5dOmY=l}m6-5-3pFO_h4 zbk7InEYD6UPzwOW1vT_MJEc9k6+F5@dZj!%gE>67zm>3szqkpu@EG`nFL;%x0bbG_ z5E>NV1-zMq7e4|71<#Nzbgx%;; z+90VOOsVZ4U1^iRs(qtV^0gj{C@2>&-|*;^ zd@Y6{t_>3R41OV44(f!&-gpVx_UhSPq~O`>q~KwBjK75ow8gVq&Z9H-gh#iV1gOQs z?HTssK^aIxnS=-bwlEEk=3mVG?a&5Q!iyti;8ft#SuWvg{O!2A0wV*10$d@e;|{uz zCqCjeH|RDdPv)Z@o$e8!eVQJf@fse--9XzW8D6Y|?r0UsVg#im$j;I57wKhx{=XJL z76~l_r9Y4VjZq6|MKrjS70mF_UNqL!M`g_gQ1w$quX_d zPxpca3=9mfV?Z2_?gkLYQ=7@B`@w5ZkPc?BjtvMM8+^JKfX-Nbtp(oP+YLT&6{u9f0@FIKP7+uhrRe#0*cJi6E9!>{SVrb`V7nmwJjRJ1q}CrQU!2L(s&>N zeEGBjOEF)TgXjMu4$uEaFP^UjZw=m1^5;J|lOnZTB^cB?Ap0^Mp>zzCE``#4PcAW2(Wb#as+1eT*>AaF6a<37_s%uxov~H$V!^asv<0Nsyp!n+G_R zKk)3H2dWM{I^{s&1J35Rdzl$Ly4gLL-5}Zg2t4e;*&I^}p3Tvu;IUGSDFMyqC=#%! zazPh`WOEczc;vkn!w`pL^UiG`kNGgBad>o>K6uIeA9NaKxPnKoyMm|XA^sLnRpi@k z<=HLe*&W2;(FrbSJ^8lHily-sAu~51UO7}qNMNoPd zlm<0p7*4D}uQfc5yMh9k!Q;3qsOAUJ;1&<)2nhxzh8L>}!A-lFyR?tHZU7nO zaoiO&=mAm>DmfT3>L-KSd;%{jAUZyH{4f2G#hB4LnVI253P=ppas{>6K?gB&A1D#Z zm<-V(@xm1(-Rb%O)PB_P2=?f8T@m2X>$)KTbXbMQ|I!yPgnxkI{f962fBqIT(8=E2 z@t|{*7kG4+-Z;i4=<)xUXLr0nr<_OgF_vR&3?BcF`5M3V?JhU)<^EP806MBzfT4)l z^Z!xbZnM{~eYxM3cpPI>@c4hsrBe?{4^)GWCn#IZ1q}i~wQ_+DZiX1|8TMjo0jMI` z3X*?)-nTp40(^|>b#N6a<q8V^c)f z?b+=FZuNVD85m>2KHU#|yN`JOKj6`Q43x&v4=DX##PNcq0Mscz;_?502jj8VY>*J} z?2Zxul?ctpIAAVO0XGKbW`MTTcSmzTJrw-nNIu9zVDZ=2J%e6s0rRJV{P9u&thipm zv)5h0!}2(P3n<<}4V%u`4iElq;oywM-`)x8uc9`0__xJtbjW%9Kjs0C8*uvPK2YKb zX5jU!M|ZdcnqR^7r9?g!zk2*HS9tL+@6Z467eDeqg@0|wOK)_C&xAS=i_@$kT~<`K4yG!BNOO=6XOG)JyyqibRYB3cD>=#{lKH!b%96o0Rc~D z&~1hMn?88(@4E!L-mx=u2WZ@*bjORox!}w?1JvP9JI?r;4|>5oQySn5`(W}fL;`Xlcyh?1Rdl6+SZA*V)%pv z1H&=b@1UVCP-C@}2U64~AMogO1@-nNUMPXA&td}i{QXveWBG;4H&=!KB|IM8pp#h+ zNO&}JK%1DL?hB~F*v;V4ctC&!G(2N{qC^p_5Ypla082yrISrsT5U6K}EC?DFc>(SK zArFgWv`t}V$mpHI%O0I$eLfD9!%!|25PK=r9LEojt^K$S?=! zvd|J?bP>iU*YYmkT)#s`k6yfJ1cgbr>yML% zBpBcW$ezJI-Jy^nTJR8WuxC&f!;5QKpz`4ZDD8l590B#>euTX^02VzC9iapr@z1~j zik7f&&mhlW&oHn_{QF8JGB!+Q1|1aB57zJ@EQ>K?+f-(T7xf@MsEX_U;Th%`6#hc( zAE?T@5&j}I3)Ci!&jJ+&hvDPjhXfd$13+m5CB1;gnZfqrPYyy^paYvA$-!;~S;@f= z9H6+8gU2pVB@Z6Q=Dy(3eTc~9v1}SML&n-^%nUCIGNGwL{34VQ2ND4#kI+oICyzu> z7!j8|wq+nCk3!H{NZmieUMv8M5|cbGOa~{Ae6R*^^0+pgnc+n|h>x5+#9+z8H3O79 z>@$c@9s=-2To|N(5G&xrzpqrmgZqCeH@xWR{t^D-WjZ*Wcm}@^Uk3ITs5#`(>?Z*# zDSWy+FiHwf%Y!8n;7kZD9AnVbA-LnIuG(mNjj)4 zaRJmb=?2Mw^J>_OyURcxJcLO9pkwMmi3~A-1I}ZhfnucGs+JCRHzc<*f+xj)guM^| zixLwZ2{XabaX$@g3@Epz&17bHaUR4+j*exp=-8SD^2GWykZXy{tqcqdh(JF98tePd z2 zFP3fm|Nn(x5$KeG-dgZ^*)OdB|NnoOfk6=LB!!)V3=9nKW->D@o5{?eF_W1=Y$h|q zjOok_ZPS?<+NUuyG)-e>sF=#kkT#W>A$XFP0(vi#zVv)=YT#?KSk<1J~BbXV!L@+bFh+t-T9KpFAt8d9 zAv%JY!9RkT!7GB9!7hTC!7_rGK{tY#K_h~hK_-HkK|F$)fjfekfh~fW;a4~_!`EY3{S$D8E%9#Gh7a5W;h{nHi>pGc)vuGcz=Y zGc(kMGcy#0Gc)9dGczQHGc&}5GcyE)Gc$OHGc(wSGc#C)Gc)LgGc#z0Gc(ABGc!np zGc)jnGc&M^%;%rGsKnPFlmGec`AGebitGeb!zGedqTGedGH zGecY`Geb})GlOp^GlOF&GlNYiGlM}WGlO<0GlN1XGlNtpGXq~JGXrNRGsE8yW`-Xj z%nWZrm>HgjFf-f^VP?1%!pv|ggqh)J2s6XZ5N3ugAum62i<7AHvKK9Ky`t7sAZo6vE748^X+B7{bh;6T-}(5W>tL z9m34OAHvMQ6~fH$FPNF(XD~Cv+hAsf7s1R7cY>K2t_L$SoDODYI2O#zuq&9EVQVlm z!^&W0h9$ww3^Rh6872oaGqeXYGc*M=Gn550GZY3hGo%JHGb98vGlT>)Gx!HHGdKq` zGuQ<)GZ+OkGw230Gbjc#GspxpGYAATGjInpGyD%?X80Av%G@-F*EEAVrJMD#LTcNh?!w&5HrKfAZCUsLCg#tLCg%zLCg&0LCg$ALCg$k zLCg$^LCg%HLCg#RLCg#;LCg&HLCg&61DP3?2Qo9v4`gPT9>~nlAIQwm9>~m4AIQv5 z9>~m)AIQv*9>~l9I=L||fSKW!KQqHge`bbWe`ba!e#{Kh{FoV@_%bt0^JQkp@?~b& z=EKY|&xe_z(TABK(}$TM%7>Xj)`yva&xe^|tv55nQg3F4x!%kSQ@xoPdcBz$TD_SW zYQ32mO1+sGa=n=uQoWfOV!fFeLcN(8e7%_&T)mkYY`vKoOud;IbiJ7wRK1xQWWAXg zM7^0Ac)gh!yqOvPdNDJ6^&49Q)Qg$nt`{@IRWD|SvtG;$N4=OC_IfchZ1rMh zSnI{iu+)p0VXhZ5!&EP3hF&jbhE^|ThFULXhEgwPhFmXZhEy+RhFC9VhEOkN2462` z23Id;23s#?22(F)23;>^230R+23ap=22n3&23{{_1}|oYzn;ttUp<)_-g+`KJoRK| zxa-NxaMhEU;jAY!!%!8P<9-Gc5IFW|-^A%rMoHnW5K{nW5E_nW5H` znW5B^nIYGcnIYAanIYDbnIY7ZnZehSnZebQnZeeRnZeYPnL*c+nL*W)nL*Z*nL*T( znSs}nnZc8p;jafX!&eVxhPNKf3{O3n8SZ*8GhFpxW;pA?%y86$nPIO7Gs9L7W`?yM z%nVCCm>K4JFf&Z`U}os`U}k9bU}mWGU}h-wU}nhmU}i}5U}lK*U}gyQU}o_3U}kXj zU}muOU}iA&U}n(uU}jMDU}li@U}g~YU}oU;U}o@OX87yQ%<$Ennc=NFGs9DNW`?`& z%nVoEnHkQyGcz1@XJ**z&djjYota^+J2S&lcV>pU?#v8R-I*DB-I*C$-I*C`-I*Cm z-I*D3-I*Cu-I*C;-I*Ce-I*DD-I*C&-I*C|-I*Co-I*D5-I*Cw-I*C=-I*Cg-I*D9 z-I*EOnHm1NF*AI1V`g~k#?0{4jhW%D8#BXIH)e*jZp;iv-Iy8nx-m0sbz^2&>&DEm z)Qy>8t{XGMR5xaZUN>fjRySsbS~q5fQa5IXTsLNhR5xaZST|;dP&Z}e2H)e*vuFMQyU6~o)x-v67b!BF_>&nb< z)s>mytSd9aQCDV$y{^m*TV0tM*19q?EOljOnCr^SFx8crq1Tm}q1Ba{q1Kg|q12U` zA=j0eA=QI6RFf*KWVP-h$!pyMOg_&Wi3p2x77iI>~vGkTM z%nS-H%nXa1nHgp}Gcz1_VrJOy#LTeWiJ4)&6Eg$o0-}jd%nY4Q%nXfA%nX%I%nXH2 z%nX@M%nXT6%nXrE%nX4}%nY7R%nXiB%nX)J%nXK3%nX`N%nXW7%nXuF%nX7~%nY1P z%nXc9%nUyrnHfGhGBdn%WM+8i$jorlk(uG5BQwKEM`nhDj?4@@9hn(6Ix;h?bYx~& z=*Y}4(~+5Bq9Zdyrz0~%qa!mzr6V&#p(8UxrXw>$q9Zdyq$4v!pd&Mbrz10iqa!ne zr6V(gp(8VcrXw?hq9Zedq$4wfpd&K_rz0~1qa!oJPX}g(j}FWXFCCZ}9y%~H+;m`O zxah#laMFR9;h+OE!%hcghK&x)3@aU&85TM)Gt6{gW|-)}%+Tq;%+Tn-%uwmT%uwjS z%#i88%#i57%n<3o%n<0n%;4$3%;4z2%wXxj%wXui%%JJO%%JGN%pmE&%pmB%%)sfu z%)sct%<$8mnc<^7Gs8=JW`>9M%nUc}nHetHGc%mDXJ$BP&&;sXo|$2zJu|~fduE1( z_RI`3?U@-S+A}kB+A}jW+A}j$+A}j0+A}j`+A}jG+A}jm+A}i*+A}kF+A}ja+A}j) z+A}j4+A}j~+A}jK+A}jq+A}i<+A}k7+A}jS+A}l!v}0!YXvfU((vF$op&c{BO*>|W zi+0QmC+(OS4%#s@?6hNM*l5Shu+om1VWAx}!%RD7hKY8}44rn&42^co43&1w425>g z44HP!42gEk43T!s41spc44!t(432ip43>7x42E{h44QV#42pKl43c)t41#vd44ih% z42*Wn3_op|89v%FGrY8AW_W1J%y83|nc<=>Gs8(+W`={d%nUninHe_PGBd2SWoB4t z%giv-mYHFqEi*%>Ei*%-Ei*%jR^3?W?147E(m3{k(C7%u)|VmSGWiQ(WcCWf8A zm>4$xVq#eNi-}?3FD8bWznB;%{$gV2{Kdr3_=}05@)r|B;V&kJ%wJ3liNBZ_B7ZS4 z1pZ=T@chNZ;P{J)!SWXqgW)eG2F+hg42r*)7$ko&F$n%*V&MG6#K8EAiQ(r@CWenc znHXOFWMX*ulZoNxPbP+oKbaU#{$ye}_>+lY=T9bvjX#+fR{msSSoo8PVdhUJhKWC! z7&?D4F*N>UVyOJd#8CK?i6QeR6GP%pCWgqLObmfPnHW5OGBG&*WMZ)V$;4pzlZip| zCliC>PbLP*pG*vbKbaUfe=;#J{$yhK`Gbk!;}0f=mp_;o9{ylrxcP&L;o=V_hLb;- z7!LkmV%YhEiDBapCWe(im>3rRU}Bj0gNb3{44F0V`Aw1#>CM0jftW18xup} zHztP6Z%hn{-GCd@*5L_;Ws7*&2LN$ir<(RB)>5+2!3N? z;QYqK!1#@c;pbN-hL2yF7+!v5VtDwKiQ(o~CWeb&nHWxfWnwt^m5E{JS0;vyUzr$I zeq~}<_?3xa=2s?$iC>u*I=?b8G=61bsQk*rQ23RJA@eH}L*iE^hRCl>41r&n7(Bl+ zF*tr@VzB(m#9;W9i9z!#6NBPcCI-o`ObmiwnHV^~GBGfIWn%dGg^A(g7bb?6Uzivk zeqmy``Gtw$;uj`{lV6w^4t`-`*!hKtVdEDjhLvBK7#4nEVwm}biDBXwCWg*0Obm@* zm>4R*FfkNVdiZnhKaYC7&>n=F*M$0VyL{$#87yfi6Qeg6GP%{CWgq{ObmgynHW58Gch>c zW@50s&BS1Mn~6d5HWP#5Z6*fE+e{3Cx0x6?Z!d5ekR<1HqJm$#T09^PVN zxOt0-;o>bOhLg9L7!KZIV%T|$iDBa{CWe)_m>3q`Vq%zii-}?4EhdJ}TTBd%x0o0z zZ!s|x-eO|Nyv4+jc#DZ4@)i?A;4LNw&s$6kj<=W?EN?L}7~W!H(7eUOpm>XkLGl(8 zgWxSD2F_bd42-v!7=GSlV)%HIiQ(l*hRT~v423tD7&31%F(lq(Vu-xS#1MFs ziNW(G6NBSTCI-u!ObmuMnHV&0GBGILWMYuK$;2RdlZk=zCKChWO(uq)H<%bc-e6*Q zd4q}J;SDB+n>UykF5X~bIC+DK;ouD>hMhN<7&hKuVpw^DiDBUlCWe_em>4GBU}EUJ z!NkybgNdQ?1`|W!4JL-n8%zv|H<%bAZ!j?g-e6+zyurlac!P<-@&*%w;SDAR%^OS% ziZ_@TByTV=2;N{~;Jm@az<7g+;pcTGhL6{o7+zjyVt9C+iQ(pTCWedGnHWx9XJR;b zorz)RbtZ<5*O?erUT0!hc%6x1=5;29iPxDJIFS4qjto*m;eKVdFI>hLzWt7#3b*Vwic2 ziDBY3CWg*yObm_Jm>4RrF)#>9|#jfo-h8WTg{H6{knYfKD|*O(YAuQ4$g zUSnd=yvD?!c#Vlc@){F^;58-&&TC8zjMtbLeqLo__;{6x;pJ5(hKE;~7;au=Vz_vf ziQ(i`CWeDonHY9nWn$QPm5E{HRVIdoSD6@QUS(pKc$JBv^C}ZV<5ebx%BxHag;$vv zGOsc*Bwl4=h`h?g5O|e|!SgB;gX2{uhIv<*7$#g{VmNo1iNX3Z6NBnyCWglsnHcU| zWMbHVfr-KLI1@wtQ6`3;N0=Bs9bsaSJ;KBwc7%z+`5+U6^+6^E3QpU}D&PfQe!A0Vamk2bdTZ zA7EmbeSnE!@&P7>?gLB=%?Fqmst+(R6dzz>$UeZtkbHoNA^HFlL+}A62JZt*49*9b z7_1L4F&H0UV$eRo#GrhDi9z}R6NB&pCI;>UObpBim>7QVXJYugpNZl1ekO*;`4$i zV`5mnkBMRNJ|>3Q`49`9jdxV?vo;qo3PhSPhP7!L1Y zV%WWhiDB~|CWh5}m>3rCVPcrQhlyeG9wvtFJxmPEdzcui_b@RO?_pxd-owO@yoZS) zdJhvr@E#@x?>$Tm&U=^`toJZ681G?X(B8wupuC5PL3$4pgYX_E2JSsf49t6&7=G_& zV)(q9iQ)BbCWgnmnHX;GW@5O!n~CA{ZYGAqyO|hv?`C4yyqk$(^=>AH#k-jpX76TV zn7o^bp?fzIL-TGXhU(o+48^;d7_xUWF(mJ1Vu;?OojiNSj}6NB?^CI;)>Obo`m znHaQpGchRdW@3=u&BP$Qn~8yYHxmQ%ZYGA`yOVpzS4iDB_BCWhI&m>4GSVq)mt#l+COi;1Cn7ZXGAE+&TT zT}%wgyOB{8`7u@O>>4!>ct+ z40l&EF|6rlVtC)j#Gu*5#4xdwiGjP5iJ`NFiD7#)69aP-6T|ODCWgMjZ6%y8<`juH!?BIZe(JZ+{nbx-N?ky+{naG z-N?jH+{na`-N?j{+{nZb-N?ic+{nb>-N?k?+{naW-N?jX+{nbB-N?kC+{nZr-N?is z+{nbh-N?ki+{nc6yMc+}a|08@>jox<#|=yjw;PxkE;leSoNi!ZINZR*u)BeYVRHi$ z!|DbmhQ$p`46_@U7$!F`F?2UDF*G+YF;q7&F%&m2F=RI|F(fxIF+?{oF$6a-F?csH zF*r9cF<3V+F&H;6F=#h1F(@}MF-SKsF$gy>F>p69F)%kUG5oG)V)$Io#PGVFiQ#cQ z6T|I#CWg!PObn;%nHUb&GcoM0XJXh~&&060o{6EPhKZrFnu)=>nu)=sIzW>+yWOs-;L=&oX7Xs%*nsIFpSD6V2+$gW~yNUmaHh^}H{ z2(Dsc@UCKFaIRuvu&!caFs@=^(5_-)P_ANPkgj545Uyfk;I3j~V6I|f_+81w@VSzS z;dLbw!{bUOhTD})43{gJ7*1C*F&wUBV%S~D#IU)NiD7jm6T{+4CWhISObnANnHah& znHZWYnHZ`onHY*InHaJwnHZ8QnHZugnHYjAnHan)nHZcanHa1qnHY>KnHaPynHZES znHZ!inHYpCnHab$nHZQWnHYXoFfn|tU}AV(!Nl;mf{9^GDHFrS5+;U;#Y_y1#Y_zL z#Y_w$MNAC;3Yi#`@|YN;@|YNe@|YO7@|YOr<}xvS%3@-8mBqyHD2s{VRu&V(r7R|f zQ&~(5hq9O$c7fO#ObolznHW~ZF)=KPV`7*U$HXuxj)}n|mWd(RnTa9VnTa9TnTf&M znTf&KnTf&LnTg@O0}}(wV@8HQj~E%gJYr;c^N5k*$ss5$4)acs2^fvC_2cSoZMuscf7#YrN zV`Mn8jgeu`Hb#am+ZY+vY-40tvW<~p&NfDdDccwsdbTk#v}|K!sM*HIP_m7YA!i#S zL&`QrhL~-P3?bVX8GN=eGPrDGWU$%B$Z%*2BSYzCMh2Ztj0{#A85s;$F*0bbVq{QU z#mFGJijhHZ6(a-ZDnvBehx62tBo-Su(xVxN@;p%cm zhO^5V8ICSzWZ1i$kzwm{MuxS^85x!?XJnYWoRMMbaz=*U<%|ri%NZGJmoqYyE@x!O zUCzjmx}1?Ab~z(M=yFB|-{p)9uFDx2Y?m`Km@a2z&|S{Rpt_uqL3TMKgXnTb2Hxe2 z49giA{w`x=a9GC3z_pB#L3}AAL-=Aw2I2XP3^(U6GF+U)$Z&EFBg4Ttj0`*HFfweM z!^prrhmj$FHX}p&Y(|Fo*^CU~vl$uuXEQRm&t_z>pUuc%KAVw2e>Nk7`fNr9h1rY@ z;_&A~&17V#ox#X(e>x+>_34ZZ=ch9=9G}j}uzxxu!}jTn3?5S%89q&6 zWVkVzkzxO2Muypw85x=;GctrsW@NCQ%*Y@znUUf5Bu0jPlNcG6PGV%3Kar7P`b0*C z{)vnX?GqUp>L)TXZ0l!aNNZ(eh-+nJ2y10z@M~pcaBF2`uxn*xFl%LG&}(I6P-|sm zkZWaR5Nl;*;A>@MU~6S$_}9Y7@U4ZB;av+O!?PAfhI=iH4A)v18P2sZG8}7RWZ2ij z$gr)2kzrj6Bg3*5MuvGUj11FS7#aFn7#Z4H7#ZqX7#Yf17#Z?f7#Y%97#ZSP7#YG^ z7#aLp7#ZAJ7#ZwZ7#Yl37#Z|h7#Y-B7#ZYR7#YM`7#a9l7#Y}F7#aRGGctT@W@LER z%*gPpnUUdMGb6*bW=4i{&5R7kni(1PH8V17Yi49v*UZSUteKHvUNa-Zv}Q(zzGg;- zwq{0#x@Ja(vSvnxykJ zxn@QNv1UdFzGg-Swq{0#e@%=G-79GHh>TWLVnB$dJ^?$nc zMh3weMuyYXj0}m@j0`T-j12tMj11?h7#Sv1F*0~nF*4{@F*5w9WMo)d$;c32$;c31 z!N_1z#>ik&!pI<9!pOi}!pKln%*gPhh>^jxh>@YOkdYyzkdZ;OfRSNxJ|ly3J|jbG z9wS3p9wUQVE+YePE+d0}4kLqYHY3B`EJlX-EJlV+nT!n8nT!mMnT!k?nT!n98H@}s z(is^}r7<#0NMmGRPh({GpUTMaJ(ZE+eJUfv^HfHL`>Bi!hf*0CcBL{hY)WNhSe44i zuqc(0VOA<5Ls=>#gG3@D187yj)p$mR?080o32}@JjB$(%CNYc*x-pCluc8?l9!E1W ztczx3u!&-1_z}*?&>F_bkQ2tpa5;pLp&*2jAv1)LK_P^Zfjfke;ZZOn!>wROhD*VW z45xw_84d+AGVBUwWY`qU$gnDykzr9VBg3pj0{@Aj0{S_j0{r2j0{4-j0{}Cj0{Y{ zj10em7#ThVF*3XgVq|y}#K>?fh>_t^5F^8>AV!8mL5vK$f*2V#1u-(L3Swkf6vW6d zD~OR{QV=6UR}dpZQxGFVRS+XXQ4k|TRuCgYQV=6UR1hOWP!J=7R}dqEQxGGARS+YC zQ4k}8RuChDQV=79R1hPBP!J;nR}douQxGG=uRunIPl1dKuL2nv9tAQo+zMo5xD?39 za4L|I;ZPtW!>&L^hE0Kt466be85RXHGRz8OWSA7l$j}wY$j}tX$WRr?$WRo>$dDDt z$dDAs$Pg9C$Pg6B$lw*o$lw&n$e+k-^r3k>Qs+BSWq`BLlxXBf~W}MurGiMuzDwj0|-yj0~wRj0_$wj0{Jd z85!<4F*1lbF*00sWMnXPWMnwuz{v2}jFF+zjFDlAAtOVNAtOVJAtOVLAtOVHAtOVM zAtOVIAtOVKAtOVGAtQs2AtQr}AtQs0AtQr{AtQs1AtQr|AtQr~AtQr`AtM8iAtM8e zAtS>d14f1~28;}E3>X=n7%(#2F<@l4V!+67#((Ee4DXYYZ3}mKZQH z%rRhOm}0=l&||>J&|<*IP-DQzP-4KykYm8ekYd2d5M#i|5Msc{;A6nZ;9|hYU}M0@ zU}C_?pku(upklztAY;JDAY#DCz+=G3z+%A2@JFAK;fp>a!yA1@h9~-r40rSy8LsFv zGMv$8WH_SF$goGBkztEIBf}bfMusK&j0|)185ySNGcxq(GcvU3GcwfZGcuIuGcx4p zGcu&;Gcv^JGctteGcx$-Gcvg7GcwrdGcuUyGcxGtGcu^?Gcw5NGct(iGcxe#GcvH~ zGcx?qV`TWE$H?$TkCEYt9wWmYJw}ErdW;Nb^cWeA=rJ*B6^GrJbH`_EP9L#e{>lczUVSCywPQ3c%sY5a7UMs;fgLJ z!x>#hh9kO+4107L8Mf#$GOW>MWLToh$S_BjkztB1BSViaBSVWWBSVcYBSVQUBSVfZ zBSVTVBSVZXBSVNTBZH4FBZG@BBZG}DBZG-9BZH1EBZG=ABZG`CBZG)8BLj~vBLj;r zBf}pZMusmsj0|sd7#W`EFf!cHVPv?X!^m((hmqlk4kN=J9Y%&NI*bf!bQl?y=rA(O z(P3nmqQl70qr=G1qQl5gqr=EhqQl6Lqr=FMqQl4#qr=D$qQl7Gqr=GHqQl5wqr=Ex zqQl6bqr=FcqQl4_qr=D`qQl6*qr=F+qQl7WN1Ku1i#8*}8*N60C)$h*ceEK9u4pqd zoY7`vIHJwSut%GbVT(2+!y0Wyh9%mJ40E&@8K!76GW2LOGPGzjGSp}@GL&dDGURA8 zGNfoTGQ?;zGK6R|GWcjSGPr0nGT3M{GMH#HGU#YCGN@=XGRSB%GKgq1GVo|KGO%bf zGW^kEWcZ@R$nZvsk>QCJBf}jnMusa|j0|VA7#WUeF*5AYVr1B&#mKNmi;-c879+zP zEk=gtnv4u)nv4v!8jK8D8jK9P)fpM)s4+53RAppHP-SE=S7l`QtHQ{zQJIlpr7|PK zLS;sVnaYd|6O|bmI+Yn28kHFtDwP=-3Y8fdGL;z_5|tSlB9$2#0+ksVJe3(49F-Xv zER`7<43!xfG?f_{6qOknB$XK%1eF;XIF%V07?l|rekw6Cd{km&c&Wt5@KA}7;ieKJ z!$l=VhLcK+3n< zJQW!k92FTEEEO3U3>6s}G!+>c6crg6Bo!GM1Qi(>I29Qg7!?^Aekw3Bd{kg$c&Wh1 z@KAw~;idv3!$k!~hLZ}63kzu9+Bf~@mMutuWMutWO zMutiSMutKKMutoUMutQMMutcQMutEIMg~s>Mg~U(Mg~g-Mg~I#Mg~m?Ko3e}y7iAe4PRcSe9F%2b*eT1%uu+zgVWli1!$Mg`hMBUA3=?G;89HSd85(67 z87gHN846_?88T%V84_g~86ssF83JV)89Zef860I987yTP84P6^88l@X85Ct186;&H z83bh+88~Gb85m_58GgzzGJKR_WOymV$na2xk>REcBf~`*Muw9zj0^{57#ViTFfweE zVPse-!^p5uhLK^W3?sut8AgUq8AgUi8AgUm8AgUe8AgUo8AgUg8AgUk8AgUc8Ab+A z8Ab+28Ab+68Ab*}8Ab+88Ab+08Ab+48Ab*{8Ab+98Ab+18AgVm(u@orr5PDsN;5J% zlxAeODb2`mQJRtAq%JZ;R!TE6ER<$sm?_Q3Fj1P3p;MZXp;4NV zp;DTWp-`HUAyb->AyJx3s$Z$}KkzuD4Bf~~1 zMuwGAj0_8<7#U_tF)~b)Vr1x)Vq|EPVq~b4Vq_?kVr0maVq{2^Vq}PvVq^%EVr1}? zVq|cXVq~zCVq`FsVr0;iVq{R1Vq}n%Vq_4MVr1ZyVq{>HVr2L!$;j|gl9A!1BqPH^ zNk)d7l8g)&B^en`N-{DWlw@SsDapvNQIe5ir6eOmuOuTwz9b{V3JFFAI|)XH*W!!} z=fxQrmWVMjh=?*Wd=qA5s1#;oFcxNH&=6u|n9a|~P|nB5z`)1Ipuoe(kj%lz@PVC? zA)B3%;XNB8!)-Q3hTklV4Ch%G8G4u*87i0=89bR88BCcO83LIY85Ecp8GbP`G8|-N zWVpn@$S|FOk-?OKkwKJ!kzx0L28O)<3=C=i85rXJGcbhxXJGLA&%ogJpMk;dKLdl= ze+CA<{|pRj{}~wM{xdL${byj{`_I6@_Md^_-#-S1Z~qt=-u+`>c=nHh;od(6hHL*A z7|#7;U^w=Vfnnc228M0_7#P<5V_;bJkAY#{KL&qh{xLAL{bOLL`^Ugg_K$%f z?;it0+CK({xPJ@`VgDEy{Qfa8xcy^bu=~frVD^uJLGK>}gW5j^2DyI>3}XKn82J7% zFtGh&VEFf!f#KU<28MTk85o}ZWnj4Xmx1BhUj~MAe;F8#{bgX-_m_cT+g}ETb$=Nc zmi=X5nD>`~VcK5?hQ7ZH3~hfI80!8qFqHjeV95K+z>xNrfg$cM14Gzf1_r;s3=D36 z85r#TGBB9^Wnj?z%fO)amw`dE*4+BHn9|nfH zKMV|Ie;63@{xC44{b68;`@_Hx_J@JN?+*im+aCr7yFUyJW`7tM^!_j~sQqDJko&{H zAohoWf$t9k1KS@4hJU{q7{2{xV0ibNf#KS328MIL85oZJW?o z{bpd8_nU!X+HVGizTXTCZNC{9>V7jYl>KI4$otK}koKE_A?`N=!`ojB4C{U|Fr4|$ zz>xoifnn`u28PU!3=H<~7#OVHF)&EJVPKg5ih*JJD+Y%CR}2j8uNWBWUokM0zhYp> zf5pI%{)&Mi{uKj5_$vkm|5pqQ?ynda>|Zf3n7?9R(0|3ip#F-1LE#kxgZL{32L4wJ z4D7EM82-OxVEF!$f#Lm228Pa;3=D!V85nN7U|=YF!N8F6f`P&31p~va=L`(9o-;5M zJ!fEe`;38M>N5t0y-yh!7CmKP$a%`Z;QW+<;ocJlhP_W17)+lqFc>^$V7T{)fnnw& z28Oan3=9V!GBA`rU|_Ji$G~86g@Hl$3IoH`^9&4q=NTB(&M+{%JjK8;`y>Oy{u2xg zGmbMbEIr1+F!vY(!_;F8486w~7+Q}pFw`DnU?@Gtz>s^4fg$x614HaF28PgM3=F=< z7#LiSF)-L3V_+~n#=u~6n1P||5Ca4AAqIxu2N@VXA7o&7eUO3S@j(WL+XopKE+1rI zIDL?T;qXBQhTR7l7&aedU|4;Sfno7M28P)O85kxXWMBwB$iVRM00Tqyeg+1g{R|B0 z`xqG5_cAan*u%iEa2Er^tX&KYk9IIH+}^>!(6@tup?wDf!;I|=3=_9AFg)GDz;JI1 z1H+6h3=9*uFfjbt%)sz=1_qUt3=C&iFfbIXU|?Wg!oVT28Iih7#P-0VqlmxiGiVK5(7ic zBnF1eNem3(lNcC0CowR*p2)y3b0Px+=R^jE=MxwhVkR&!cuZhmFq*)?AToi0fp-D} z!?%70hWY&r3{m|I46VHk47I%s45hsc47t4w45_^g46(fo457UY4DP)Q4EDVY4CcKI z4Entc4C=iM3<|vr4C1{E4E((e4D7uO4F7u=7{2!~Fudw4+BGg4+BGc4+BGe4+BGa4+BGf4+BGb z4+BGd4+BGZ4+DdL4+DdH4+DdJ4+DdF4+DdK4+DdG4+Dcj4+DdE4+8^#4+8^x4+F#h zZU%<$-3$!xyBQdscQY{D?`B}Q-p#;pzMFyJcsB#X{%!__?cEFv>$@2kmUlBS%VY!}~4`cQP>S?_^-u-pRnQzLSArc_#zI{7wdj z>75J={hbU9puMj3oeT`+oeT{5oeT`=oeT`|oeT`&oeT{AoeT`_oeT{2oeT`-oeT{6 zoeT`>oeT^LoeT`(oeT{8oeT`@oeT{BI~W+gcQ7!#?_gkf-oe0dzk`9{dItl;`3?q# z;~fkP`#TsIws$ZvtnXl8Sl+?FFu#L=VR{DxLw^SY1L)L>`VIz$@(u=u{0;_&^bQ7w z_znh!@D2tB{|*KQ_YMXI`wj*M^9}|E{SF2O^$rFGg$@P=@eT$C{tgBP_6`Py|LqJ6 z-`g1&-nTO_Ja1=UxZlpeaJ`*@;e0y-!|`?ohW+gf4BOio7}mElFf4CpV3^;|z%ad? zfuX;hfuX&ffuX*gfuX#efg!)0fg!z}fg!$~fg!w|fx*9>fx*3hNN*IOAF&bKl!9B*Y{*x$;)u)URmVSOtD!}3-JhWV`w4AWZ~ z82Vco7}{GI80uRY7|L5281h>g7}8rA7~)$Q7{Xf_82noq7~ESK80=da7|dH481!2i z7}Q%C7!+C=7{pr{82DQm7}#4G82+~~Fnn)eV0hoc!0^0py_tdGd@}>X@n!~w{ml#v+nX5});BXSEN^CDnBUC6Fuj?9 zp}(1dp}m=bp}v`cp}d)aA-|b{A-$P_A-S+!MvG)LBE-S zLA{xQL7|y}LA;rPfxnr7fxVf5;eQhY!}lfzhWAYj49}Yw816SQFkEk9U^w5zz;L{Y zfnk3W1H<+v28Q)b3=GSg7#QX^F)&PTVqoZRVqj=*VqmCmVqhq5VqnN`Vqi#bVql1G zVqgewVqoxZVqkD@VqmauVqh?DVqnm3Vqj2jVqj2cVqg$&VqoBJVqjozVqo~+$iVQu zk%8fTBLlKhpt${QIN@*5c#(i<5V;u{$l!W$VF{2Lh<+#4Af>>C*v%o`aP^cxu% z)EgNX6dD;A#2XnH_!}7**c%xb{x>i%d~aZ2c;CRl@VtS6;eG=H!}SIRhVu;!496Q7 z81^?XFl=vNU|8S4z_7f5fnk0F1H<$N28R9y28Q+q28Q|u28Qwm28R3w28Q$o28Q?s z28Qqk1_u8I1_t*A1_t{E1_tv61_u2G1_t#81_p%&1_tp41_s3%28PaR28Io#3=HQB z7#KDcFfiojF)(OnFfc4hXJD9<&cHAwoq?ezoq?exoq?eyoq?ewoq-`Ioq-`Goq-`H zoq-`Foq@q8oq@q6oq@q7oq@q5oq<6ooq<6moq<6noq<6loq>TToq>TRoq^#`8Uw?Z zGzNw@X$%Zc(ij--q%kmDNn>C*lg7YsB#nV#PZ|TmmNW*2HE9eCOVSt^=AXh~yWs7YgBC`n^r$Vp>hNJ(R0h)H8$2uWjL@JVA}a7kleut{TJFiB%z&`D!p zP)TE8kV#`;5J_WT;7Ma(U`b;=O@FkUj;Y}(7!;@47hC8VY3|CSa7|x_JFdRu` zVAzw&z_2BifniN51H+P328KDQ3=C6J85nv}85mkp85n9(85l}Z85nX>85mMh85m+x z85lxR85n$085mqr85nF*85m4b85nd@85mSj85m?z85l%T85np{85men85sVgFfe>c zVPIfNW?)zx$G{L0$H3qi$G~6^$H1Tv$H4GCnt`D-nt?$&nt_2Ynt@?^6azy`6a&Mh z2nL2z5ey86A{ZEUMKCaIieO+^6~Vx;D1w1uRs;jXqzDFvt_TK(rU(Xxst5*#q6h|t ztOy2%qzDFvs0apzpa=#AuLuUvErbkK5ey7Q5ey7k5ey7U5ey7c5ey7M5ey7m5ey7W z5ey8!!WkGog)=a`3TI$=6wbhKE1ZGhQaA&{sc;5{L*WbzyTTb5Hia`VtO{pfSQO5{ zFe{vaVNy5)LsvKhLsK{dLsd8fLs2*bLsmEgLsB>cLsU2eLr^#agI72MgHt#IgH<>K zgHbpGgH|{LgHkvHgH$*JgHSjF16Mc$15-Ey!>=#~hEHJ(46ni%7#@W&Fx(1bV7L^< zz;G&zf#FaX1H-N`28K;x3=FHn7#J3XF)+*uV_=vR#=y`O#=y`N#=uY&#=uY%#=wvj z#=wvi#=sC2#=sC1#=zhe#=zhd#=u||#=u|{#=xKz#=xKy#=syI#=syH#=yW8#=yW7 z#=!6^l!4(>CteohD#v~ z45vaE7!HLnFzgCpVAvGGz_2QWfniYy1H-Hk28Kx?3=CZ%3=B;n3=CBv3=Bmf3=CNz z3=Byj3=B~r3=Bab3=Cc&3=B>o3=CEw3=Bpg3=CQ!3=B#k3=C2s3=Bdc3=CW$3=B*m z3=F@585lkVGcddgW?*;}%)oFfn1SI^FayJ>U{QZNHUS1>| za4Lv_;ZP6*!>%9(hD|{X46A||7#0OFFw6>KV3-udz|a-Mz|a)Lz)%&$z)%##z>pQh zz>pNgzz`M0zz`I~z~B|cz~B_bz+e@`z+e=_z@Qbxz@QYwz#tXGz#tUFz`zy6z`zv5 z!0;=Of#Fji1H-F828Kt03=Fpd85k}FGBBJ9WMDWH$iT2Gkbz-SAOpjyKn8|IfeZ|@ z0vQ-41u`&n1u`%+1u`&H1u`%c1u`&X1u`%s1u`&11u`%M1u`&r1u`%=1u`&L1u`%g z1u`&b1u`%w1u`&51u`%Q1u`&j1u`%&1u`)F3SeOP6u`jnDu99EQ2+zOtpEmwO92cF zrvexl4h1kU>j-XhDiYo3|#>X3{3$H3{?RP3`GG93|RpT z3`qeD3{e3L3_$@53|;{Y3{C+I3|0XQ3`PMA3|avU3`zkE3{n9M3_<}63|s*W3`_wG z48Qyt7(V$kFud|-V0h%uz;Mf-f#H%r1H&nQ28Kia3=F&c85lPCGcc_3XJA<5&%iLt zpMhbLKLbOTKLbOPKLbORKLbONKLbOSKLbOOKLbOQKLbOMKLdl8KLdl4KLdl6KLdl2 zKLdl7KLdl3KLdl5KLdl1KLZ1oKLZ1kKLf)rKL&`7tou@?&7QR6(B;R#(B#L!Q02$KP~^wJkmbj~ zkmSd}5aq|f5ah?e;N{1_;N-`^VCBcaVC2WZpykKFpybEEAmzuvAmqouz~#rlz~slk z@XMEh;gc@|!z*6~hDW{(47Yq47%urTFr4ybU^wKGB5=BGB9}gGB7y#GB8;AGB6nV zGB9ZQGB7ClGB8N_GB61FGB9xYGB7atGBEt|VPN>=!@%&$hk@ad4+Fz39|nd?J`4<} zd>9xG`7ki-@?l`u9yvd>9zCd>9y%d>9y{d>9ynd>9zGd>9y*d>9yh zc{4D4@@8Oo<;}qG$eV%TmNx^#C2t0XQ{D^=hrAgWc6l=}Z1QGcSmn*Yu*jQ%VU{-o z!z6D8hAwXgh9++YhAM9ch9YkUhAeLeh9qwWhA3|ah9GYS1}|?01}AR@1}kp{1|x3< z1}$#}1|@F>1}Sd_1|e?-1}<*~1}1L?hF@L`44=Fh7+!fXFg)^NV7TSQz;MZnf#H-F z1H&ON28LZ;3=EsR7#LQ0F)%FhVqlo%#lSGhi-Dobi-DoZi-Doai-DoYi-94_i-94@ zi-94^i-94?i-Ez*i-Ez(i-Ez)i-Ez&i-AGQi-AGOi-AGPi-AGNi-Cd5i-Cd3i-F;n zCj-MLPX>lpo(v3+JQ)~nc``6u@?>B*<;lQs$diF#mnQ?mCQk;2Rh|qCi#!<^W_dC& zO!8!4=<;M>X!2xWsPbfBDDq@r$ns=hNb+Q0i1K7$2=ZiL@bY9}aPnkeu<~SJF!E$z z(DGzpQ1WD8kn&_;5b|VT;PPZ(VDe;O_~pUC@X3RL;gtsi!y^v{hFcyC42#?t7QPf;j`j33CR91Lh12JIomvHkdOotT1O_SYXb;FvFaIVS+gWLx(v7LxVX3Lxnj5 zLxDL1Lxwp6LxMR2Lxed4Lx4F0gNHc-gM&E(gM~Q*gMm2%gN8W+gMv8&gM>K)gMc{$ z1BW>S1A{pO!w)kCh7V>83@^+W7#^50Fx)U>V7Oq$z;MEhf#HA|1H%q81_n1X1_nDb z1_m=T1_nJd1_m`V1_n7Z1_m)R1_nMe1_m}W28Ms83=H2)85rJ~GB7+dWnj2x%D`~V zl!4)#DFeeXQwD~8rVI?*Oc@x~nKCdeGi6|yXUf1Z&6I(m&y<0o&6I(m&Xj?n%#?v4 z&y;~7&6I&5&Xj>6%#?w_&y<0|&6I(`&Xj?{%#?va&y;~d&6I&b&Xj>c%#?wF&y<0I z&6I)Rp9urQHxmYicP0!B&rBE??wK$!Tr*){IA_AZ@Ys-n;kF?I!(~GThSP=&42KOF z7oYLi)@NXtsn5WWtk1x(PLF}1 zQICPaPLF{>Opk%#k1hklQ(XpzbGi%++jSWj7U(iCbm}rN6zMWBMC&pzxacx4=;|^s zi0Lvg{MTV%c%j3BI48rvuvCVDVU7#~ zL$M44LzWB!gTD*|gPRNk!+&W8hHugg3}>Yo7>-CYFwB-_V3;J$z>q1;z>px#z~Cy) zz+fZIz_37yfuUN8fgweTfx%vifk8uxfq_|yf#HoL1H*Ai28Ioi3=G|p3=Acb3=IB~ z3=9^M3=G1O3=DrH7#OZgFfeSBU|?7x!NAZa!N8C&!NA}v!N6c9!N4FQ!NBlWoPpuC zI0M5GaR!D(;tUMk;tUL#;tUKy;tUKX;tUM3;tUM`#TXdwi7_yw2rw}C3NSF32{14y z2rw{k2rw{wsMq zAR7aNFB=1cCmREUD;ooYBO3#QEgJ*FUj~Ms3=Cfx7(OyEyk%f`$-wZGf#D$o!(9f3 zn+yzB85k}yFq~yzILW|pl!4(O1H)bhhMf!yTNxNOGBB)VVA#&Wz_6Kxfnhxh1H)<- z28QJ<3=E4|7#QZWFfhz!VPKff!oV<@g@K`;g@K`)g@K`+g@K`&g@K`-g@K`(g@K`* zg@K`%g@GZTg@GZPg@GZRg@NHUGXukOW(J1G%nS_onHd;vGczz;XJ%ly%*?=Wo|%E+ zG&2Lkab^aF!^{i}`87-lmw zFoZENFa$9%F!(VsFnBRBFt{->FgP(WFxW9MFjz4$FqknhFc>j0Fz7KcFlaF`FsLyx zFeouGFvu}6Fi0^mFo-cRFbFX*Fz_)kFmN$3Ft9N(Fo3SpNMmGR0G)}-G=qVGA>KbA z#LqP%gn@~R5y3NJV5&jl8Z$6~G&}nS#D}>02KYFJxCS#Yf!v596z}5i7ZMM;0FDV1 zCfMXaSH3Z=WnjP|2hj|QV;l;M7?}PUGlH(BElMpe&dkqaU^-{a$l#t@;#yGv7rMsH z$PiFe9GaI{R2h<5l*_;*rh*Xh%}>cp%SQj;XKrEX z$iQ^X6l|?`YGrtSQ3?aoj+G1y9*M;nuAoayK^J)&F)-ce2Zv5TX-RluQ62*m!!jf_ zp1Gh)WS#R1DjAqEmO~^$K(|jrBp`_>IkzCbBsI4nC$S{87?OxkgyK{3^Gf0i@(UQi zi3poqX>kSvC=ub1gJ=dNA{+{g7??QN85k0abHO)cGcXCTGcaTp$ESf#5s!yniCx6N zB*@Od05T#aKRz$NB)+^Tvm`aXBtJf-IGceTQ zDW!=y@u7xh@g@1$sd>eQ3``A}qDBl%9hjoV3``T)85oi>L1{NWzn~a$e>Vfu40Z;F zQgp!uP!}c^rN<}dl`t@^fC?0)7MJFfK*TnHY)LIjO^Z*;EXhqQU|`w-_C4rEWw_7* zb_NEJCzJE@ic1pnO5hSFpeDlfUSMZnNGr%MfGfBG(pj1tUtE$6j@V)brUy`=qSW;G zvc#fd2BsHKk-Yr8_=1umsOSe!7{av0=O%)}^#?lx156)O2y|ZuvPP&d2L}T~Nj}2f z_}s*T`23U<1||V)GO1;$c??Vv5Gf=Z3K*CaAcAOi6fiJpa4;}H(?d#pPG%k`f(?+x z(n|A+8JH}Pg_0`43EP1K9ACw`un6=(6^I92@|+1WFaRV0N{pF##bzc@&qcrlL9vvY z5)X=DNB||kWO7q;p^7s&7#IReQ^Qh|OF}LDQp*{bRv?Q6l$J0sP2faQ2BsMxHBj~j5F1oZf%(4Rgz>_Pfx#KfXJBHmW?=AvvL&n;7+jMx@)?*6 ztQiuHfv<0@wT;1}2tB2Bhi_>@t~1uo6#*mx4=*7?^fMGBBj%C&w3;fO0Cd zXgUB<=aQcslnRc+C}e#u`N<4SJEFlt0pKFmBL>0&mBlAw7#Mt0bCXhwd{avjT@p(Y z8JIX?k;U9H^HLa?Jm6vw{st62sJ4O&ID)e3f_Ru2KAFWOVDHRGKo){jCmRxx#UOFe zkOX#~XCBzc8$gpSsTB-ND|*4gt`#L<@s2()H=wk{Co?aVfk^{ig9U&hrC=fhgR>Lp zwr@yHZ7~VT_jGnFN@rj)m;QA!a`F>PoIyo4M3Ki_m?C&+-T*CUaSF&U@XL2AN(BYLe2^N)f`U{~ ze4POEobz*&z@f8a0Z7s_FC{gvq?mz8V?IaFBZ%O zxd?7rS{hi)GmU}iSUQ*)o&nA`=Q6-NmwYH+Eep(d%P(SJdY27m2bX7-Bxf)%=@o*x ze)*w!AQyn_W?%xHh8j>*99&YAnwSet0N0Aa%0h}N!Cbp`Mg~u3PzE{%W(9!?Lcb1> zpnm}w$fbxcVC z-D1uZ)(?(kzx=IbO zzW~bTdkp3~=N35Tr8pHO=7G{s-CM9=KvAk^Ub0JSG6PfJJBUbraS2T5*?W+XZ)pw# z)3Q$>rW=@j?+cjil3B*UB=-%>2AAG)Kfr9ThwXlX*uJGXP)E4^1@XaJ?EXQSP$@Y^ zCI(Muuy@6nKupJ!l;F}N*W?nYf-p{yXmCbm8YuL*;2fy*KVFasC zf$1JUi0PP@;s~n7^aMdX{~}OK_X&a65&11}pw$fmHaW<_3d$L3(-MF%!4UiqZlna6jC?z>t9{ ztN>Hkh=FMxk}xQpR)X^Iyh0{WEeNS5je=6s8JM0Gg0=f*78ipnY|!!4`2{8Md7u*P zLlIaqxFoTtgn=oc7|e48CF~0jwohU@1Cs-E6eu+@#gKu?qZ+KrsmL$C1X9>FK;)f@ zAY1{+IFVas1*ir9Rn`j*f}I5!hPnaa1VDHahrm*9hM>|GTx;SSghp3Wu=OdA-$<4K;*W(-UcOkg&s2WJL$`UTJ#mwBN26*f`=>lPO{GlLq7 z0iZT?F(`Q!GcaB728($l7H2?un-)RfK{gP_1zcGdGcXlYfW_Q0b8^6q&te9q19i*{ zkV-P3v?Q2;NueIjFUrg-absYLs0V8TwHu&AYaiOcB2J}g3``1rU^WBOj>*gnt`(^e zQ#htVI8Y-3AY4$tkAdj~gacA&#K5F69Z97T15*Kn4^nEx!1Myb1F1D;VA?SQNv$yh z6T?g}AEefpfvI99*d^esCSWm(nSp`x^$G@t;K<;3Cx8EtcqhkTR|Zb)i4dWnP``K| z*DzNf2G0GUtH(G$7BDa{aDG!@2I~lO42t*k^9+f1^Ko=%;OtCcWMJSl2a{)$Kr7VPNt;*pydbQ~tJ8boqv z`7tuYJ3IRLFmRYyF)}c4$eMsiu}2IH3>>L@LFC2lAW{!>y)%dXW{?l21TZrsrX+&K zP>Qn|IMw`_85lTzLVX?V80H%9?C%%i8W9p7>FMg@!oab7BFKnWQy3XQ&C%2%298Hl zK-P$dfJpm^3=A$w=?omVCNMArC6+UAe4W4m8ZrPel|UiKVbKpVAc7A>3V_CNOG_Xr z&b6qBfg^D;GeZC*9dP{b1UcqbGlp<)kYe8fzm~5C1Vkd&h!l@wknaLn>8JH{plYU^* z6if<$$@h~$YBqt%Mlk6M_MJJHlmwIUV4wbQ1gYE%CMSc*0x*tsYj9w(2a4qtkSVjygUIJ#n_huUUkSPuisLuf>2a1I+0CGdcMhM83=Dp$<)F?b z1IO?6Ac<|@uv`QVIRUVSG#8L~*IEXK;DW^D)M5q>dvF+MS~D;Nl$L-!_hBlS?VOQV z#K3V09N=5PWE(hOnZSX$2kfu)U_<}+febz50U}?6Em#32pMitX1WX#*f@Ia(nL*YB zGjN1if|AHz3lKS#8$@y}0jZb+y2P3z229F;$*+q*;=93QGnljolYbY2#1DeWRxmjm z>`^-~sRJgZ!6X-${5cJz{sox44knL*$*o{=37DJ=CY!)yA(%`6lm1}R4ovETNf|K7 z4JN07Lq~K9$b3#P`4=2gAHn1;aCkiehZma@NX;p5hy;R3WpKC@TZ6eL987-G z0Euh^lX774f;vcKDwy;GllRm>B8$Of44C|&3KH1|CVRkS6qqyvllN6Xvb(`#514cU zlWbsewK7Py2~6sM$v;XUkxgK-SP{ft2)bmGBMVF#gULT&@-mo=0h6EQKq@zYNiooz zHOCVfkjN%5*#IVEz$6ctyd@2iT>&P`z+@1ZT*MC&cL9@3U~( zD&K<1J7DrOnA`;>SAxkIV6q)dmVwDsFc|_Sox!9Lm{bIl0$}ogILPF8VDc`QJOd_o zgUMB3aweGU0F&ilG7U_If=L%JX$&Tnz@#9UWB`-z!$9WW1CwXLg5!11F3>_B7&xCS}P17a(2g2*b+Wn3J-GnpCU-GW?Q893Z$f`aM|=t4D) zz2I_aJD7|ClXJmk(sVFs119Y!gVdXWNnJ3h0w$%wqzIVg0h602fmE)W2qIU2$v!a2 z0w(`~u5{yg0wz7cqy?D#(GOCe4knNHg4jOYAW{rWvVlnkFew9WVZQDF$u4XIku$)g z3pgRfHGo9Cz*X5paKqRd+@P2)0utW}Zh6iHCy*^wps1Kw3?jS1q-6n!%?@sGbw_~M zEnu=5ObUd7MA*UPBv5mngWVM*au6KV0bnu<9M$i^QT@OiBzxc&DEKRPgUCxeLFC!3 zAaXi5s^h`r_W2+Y1#lDb8#wYmfXRzs@)(%B4^9rT;3N4Q6RPynB)1e3|&T(ApVK&D!OOxU6f zBIUs3G9?gusUnEHD+(fWghAvfArL7FCdI*x@&3c0uF0NM5c%>DC~en(Nm(#ywGt$f z0`|2Tm~;Yld^z;N$LAsWM$$Bt(#U3Ow#S%moLvoNQh|LKm z1HrvxUJ;PUj2ECN`t$@u9ykpm`@v-1DG=KhObVO?vG1P%kuO2Fm~!j@ll#D(HFj_p zYVszK>@RSClL1U_SPv4Z0QZz`fpe(u9FT}4ILCQ`^H)wZNJJT&JKVr2xsjQ{7aY}| zplQO)vZ}mRrE2JvgTHz+@G;!W0FU zVAnH2;TQyt1!pkX2QH%uz~n!0rqlt)%Lj1T;upZo;22y|1a>FiL84 z5nlrCw#r^+WGKlf$}eZ&$UF>kiaMBNn+jrQP6UxU{UGvEABdD|0+D5PAaY_3h}@6` zA~Q2Vq-F+)+yPox$YBWXzsrJs-QWun*8~suh=3FNPEC*q2bc^69U{Xa#Q_qT$_^r* zfCw*eXR&7*GedA?aY#`m14qsjP}*A71R`DDfkI3 znRznALE)fbJsg8Q;@v#`To^dIzy)XdK~N;js0EPU@Pd|4b*Z2@eCm&a+RTII+EQdS5(Zz*< zV+FVfNdS{u!39YWn6v_ud|+}7*o`jW+_xziWOEw0$?^wmpd6Sy4K6gRz@*JfP;yWO zlhRK?Y&~!l+W-!{suGaM91)mH9bH`F9o<4)gBUob!rd0+8sOvT?8?Bg7;IlS*uJ-5 zoA|-xZm>=1U{V=udM?=Xbg=1h&@~gFVRq0u0FHl+%;05};6ZC}CVd319bb8a()TNH zLH2wuWK{*Y+~EM1RJ&S`w1LG}flI`PU=5o(!PzCaG8eMe626>);|$o<>EN;`2h`x> ztepu->3OBO@tL62emOa*Dez^F#SEOYW->FR6~q@56~`BYr<~)Ha_rVGe7*TEy7+d;JR zLHcsQ~j2uwzUNf$7w3nsZRDe4zj+Hlx6# zGnmu?lcHeqA9x6CH<;80lj2~q1~e$f`NNKZAu*>QBQZX&G&i*O#=+-@N$L{G51f@@qX97z#iWAE4#j@yQv9Ma6Kv7abWGQZkDRauO@C$et}i zn2f5gw+Q5-4-ug7RGY}a;FeQboZ(xXUd+JJ0ht_g&P{=g=+B!5DoyIZ^*jT(2b;+U zu6cutk|7nZWfTL0OMWtBu;*$dm;)|clia~O@OHOVO\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/Compiler/Compiler.PRJ b/SparrowOS/Compiler/Compiler.PRJ new file mode 100644 index 0000000..397935f --- /dev/null +++ b/SparrowOS/Compiler/Compiler.PRJ @@ -0,0 +1,25 @@ +#exe {OptOn(OPTf_WARN_PAREN);}; +#exe {OptOn(OPTf_WARN_DUP_TYPES);}; + +#include "/SparrowOS/OSMain/Static.HPP.Z" +#include "CmpAsm" +#include "CmpExts" +#include "CmpGlbls" +#include "CmpQueVect" +#include "Unassembler" +#include "Directives" +#include "Lex" +#include "CodeGen" +#include "Hash1b" +#include "Assembler" +#include "ExpParser" +#include "StmtParser" +#include "BackEnd" +#include "OptPass012" +#include "OptPass3" +#include "OptPass4" +#include "OptPass5" +#include "OptPass6" +#include "OptPass789A" +#include "CmpInit" +#include "CmpMain" diff --git a/SparrowOS/Compiler/Directives.CPP b/SparrowOS/Compiler/Directives.CPP new file mode 100644 index 0000000..4ca3a13 --- /dev/null +++ b/SparrowOS/Compiler/Directives.CPP @@ -0,0 +1,79 @@ +Bool OptEqu(I64 num,Bool val) { + return BEqu(&Fs->last_lex->opts,num,val); +} + +//Turn on compiler option +Bool OptOn(I64 num) { + return OptEqu(num,ON); +} + +//Turn off compiler option +Bool OptOff(I64 num) { + return OptEqu(num,OFF); +} + +//Get state of compiler option +Bool GetOpt(I64 num) { + return Bt(&Fs->last_lex->opts,num); +} + +//Displays intermediate code as it is being added +Bool PTrace(Bool val) { + return OptEqu(OPTf_PARSE_TRACE,val); +} + +//Displays intermediate code after passes through optimization +Bool OTrace(Bool val) { + return OptEqu(OPTf_OPT_TRACE,val); +} + +//Ctrls which optimizer passes are displayed +I64 OPassTraceMask(I64 i=0b1001111101) { + I64 old=Fs->last_lex->pass_trace_mask; + Fs->last_lex->pass_trace_mask=i; + return old; +} + +//Displays assembly code output +Bool CTrace(Bool val) { + return OptEqu(OPTf_COMPILE_TRACE,val); +} + +//Displays lexical analyser's output +Bool LTrace(Bool val) { + return OptEqu(OPTf_LEX_TRACE,val); +} + +//Displays text as it is being compiled +Bool Echo(Bool val) { + return OptEqu(OPTf_ECHO,val); +} + +Bool IsReplaceSyms() { + return GetOpt(OPTf_REPLACE_SYMS); +} + +U0 ImportHashTable(CHashTable *src) +{ //called from #exe {} in static modules +// See $LK,"::/SparrowOS/OSMain/StaticAdam.HPP.Z","FI:::/SparrowOS/OSMain/StaticAdam.HPP.Z"$. + CLex *lx=Fs->last_lex; + if (lx==&Fs->next_lex) { + PutErr; + "Not Compiling\n"; + } + if (!(lx->flags&LF_EXE_BLK)) + LexExcept(lx,"ST_IMPORT_HASH_TABLE_NOT_ALLOWED"); + while (src) { + if (lx->stream_parent_glbl_hash_table) + HashTableImport(src,lx->stream_parent_glbl_hash_table); + else + HashTableImport(src,lx->glbl_hash_table); + src=src->next; + } +} + +I64 IncludeDepth() +{ + CLex *lx=Fs->last_lex; + return lx->cur_lfn-&lx->lfns; +} diff --git a/SparrowOS/Compiler/ExpParser.CPP b/SparrowOS/Compiler/ExpParser.CPP new file mode 100644 index 0000000..017c12f --- /dev/null +++ b/SparrowOS/Compiler/ExpParser.CPP @@ -0,0 +1,1297 @@ +U0 ParenWarning(CLex *lx) +{ + if (Bt(&lx->opts,OPTf_WARN_PAREN) && + !(lx->cur_lfn->flags&LFSF_IS_DEFINE)) + LexPutWarn(lx,"ST_UNNECESSARY_PARENTHESIS"); +} + +U0 PrsPush(CPrsStk *ps,I64 val) +{ + ps->stk[++ps->ptr]=val; +} + +I64 PrsPop(CPrsStk *ps) +{ + return ps->stk[ps->ptr--]; +} + +U0 PrsPush2(CPrsStk *ps,I64 val) +{ + ps->stk2[++ps->ptr2]=val; +} + +I64 PrsPop2(CPrsStk *ps) +{ + return ps->stk2[ps->ptr2--]; +} + +U0 PrsPopDeref(CPrsStk *ps) +{ + I64 i=PrsPop(ps); + CHashClass *tempc=PrsPop(ps); + if (i.u16[0]!=IC_DEREF) { + PrsPush(ps,tempc); + PrsPush(ps,i); + } +} + +#define PRST_UNARY_TERM 0 +#define PRST_MAYBE_MODIFIERS 1 +#define PRST_UNARY_MODIFIERS 2 +#define PRST_DEREFERENCE 3 +#define PRST_CHECK_BINARY_OPS 4 + +Bool PrsExpression(CLex *lx,I64 *_max_prec,Bool end_exp,CPrsStk *_ps=NULL) +{ + Bool result=TRUE,cont_unary,cont_check_binary_ops,is_lower,div_sizeof; + I64 i,k,old_flags=lx->flags,old_expression_start_line_num=lx->expression_start_line_num, + max_prec=PREC_NULL,unary_pre_prec,paren_prec,unary_post_prec, + left_prec=PREC_MAX,quest=0; + CIntermediateCode *tempi,*tempi2; + CHashClass *tempc,*tempc1; + CPrsStk *ps; + CMemberList *local_var; + CArrayDim *tempad=NULL; + if (!(lx->flags&LF_INSIDE_EXPRESSION)) { + if (lx->fun_lfn) + lx->expression_start_line_num=lx->fun_lfn->line_num; + else + lx->expression_start_line_num=1; + } + lx->flags|=LF_INSIDE_EXPRESSION; + if (_ps) + ps=_ps; + else { + ps=MAlloc(sizeof(CPrsStk)); + ps->ptr=0; + ps->ptr2=0; + } + PrsPush(ps,0); //terminate + PrsPush(ps,0); //terminate + try { + do { + unary_pre_prec=PREC_NULL; + lx->flags&=~(LF_PAREN+LF_PREINC+LF_PREDEC+LF_POSTINC+LF_POSTDEC+LF_FUN_EXP); + do i=PrsUnaryTerm(lx,ps,&local_var,&tempad,&max_prec,&unary_pre_prec,&paren_prec); + while (i==PRST_UNARY_TERM); + + unary_post_prec=PREC_NULL; + while (TRUE) { + if (i==PRST_UNARY_MODIFIERS) + i=PrsUnaryModifier(lx,ps,&local_var,&tempad,&unary_post_prec); + else if (i==PRST_MAYBE_MODIFIERS) { + if (lx->token=='(') { + lx->flags|=LF_RAX; + i=PrsUnaryModifier(lx,ps,&local_var,&tempad,&unary_post_prec); + } else { + i=PRST_CHECK_BINARY_OPS; + break; + } + } else + break; + } + + if (paren_prec) { + if (unary_pre_prec || unary_post_prec) { + if (paren_prec<=unary_pre_prec && !unary_post_prec) + ParenWarning(lx); + paren_prec=PREC_NULL; + } else if (paren_prec<=PREC_UNARY_PRE+ASSOC_MASK) + ParenWarning(lx); + } + + if (i==PRST_DEREFERENCE) + PrsDereference(lx); + + //Check for binary Ops + do { + i=PrsPop(ps); + tempc=PrsPop(ps); + if (0token]; + if (k.u16[0]==IC_POWER && + i.u16[0]==IC_UNARY_MINUS) { + Lex(lx); //skip ` op + left_prec=k.i8[2]; + PrsPush(ps,tempc); + PrsPush(ps,i); + PrsPush(ps,lx->cbh.cb_last_out_ptr->ic_class); + PrsPush(ps,k); + cont_check_binary_ops=FALSE; + cont_unary=TRUE; + } else { + tempi=lx->cbh.cb_last_out_ptr; + tempc=tempi->ic_class; + if (i.u16[0]==IC_DEREF && tempc->ptr_cnt) + tempc--; + else if (i.u16[0]==IC_ADDR) { + lx->abs_cnts.c_addres++; + if (Bt(deref_bitmap,tempi->ic_opcode)) + tempi->ic_opcode=IC_NOP; + tempc++; + } + while (tempc->fwd_class) + tempc=tempc->fwd_class; + if (i) + CBICAdd(lx,i,0,tempc); + cont_check_binary_ops=TRUE; + } + } else { + PrsPush(ps,tempc); + PrsPush(ps,i); + i=lx->token; + k=binary_ops_table[i]; + switch (k.u16[0]) { + case IC_ADD: + case IC_SUB: + tempi=lx->cbh.cb_last_out_ptr; + if (!tempi->ic_class->ptr_cnt && + tempi->ic_class->sub_type!=IT_F64) { + CBICAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]); + CBICAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]); + } + break; + case IC_AND_AND: + case IC_OR_OR: + CBICAdd(lx,IC_NOP,0,sys_internal_types[IT_I64]); + break; + case IC_QUESTION: + quest++; + break; + case IC_COLON: + if (!quest) //case statement colons or labels + k=0; + else + quest--; + break; + } + if (!k.u8[2]) { + if (paren_prec>PREC_UNARY_PRE+ASSOC_MASK && + paren_prec&~ASSOC_MASK<=left_prec&~ASSOC_MASK- + paren_prec&ASSOCF_LEFT-left_prec&ASSOCF_LEFT) + ParenWarning(lx); + cont_check_binary_ops=FALSE; + cont_unary=FALSE; //DONE + } else { + if (lx->flags & LF_FUN_EXP) { + ps->ptr2--; + lx->flags&=~LF_FUN_EXP; + } + Lex(lx); //skip op + if (paren_prec>PREC_UNARY_PRE+ASSOC_MASK && + paren_prec&~ASSOC_MASKmax_prec) + max_prec=k.u8[2]; + left_prec=k.u8[2]; + if (Bt(assign_bitmap,k.u16[0])) { + tempi=lx->cbh.cb_last_out_ptr; + tempc=tempi->ic_class; + while (tempc->fwd_class) + tempc=tempc->fwd_class; + if (!Bt(deref_bitmap,tempi->ic_opcode) || + !tempc->ptr_cnt && !Bt(&tempc->flags,Cf_INTERNAL_TYPE)) + LexExcept(lx,"ST_INVALID_LVAL"); + tempi->ic_opcode=IC_NOP; + k.u8[2]=PREC_ASSIGN|ASSOCF_RIGHT; + } + while (TRUE) { + i=PrsPop(ps); //pop ops of higher prec + tempc=PrsPop(ps); + is_lower=FALSE; + if (i) { + if (k.u8[2]&~ASSOC_MASK==i.u8[2]&~ASSOC_MASK) { + if (!(k.u8[2]&ASSOCF_RIGHT)) + is_lower=TRUE; + } else if (k.u8[2]&~ASSOC_MASK>i.u8[2]&~ASSOC_MASK) + is_lower=TRUE; + } + div_sizeof=FALSE; + if (is_lower) { + switch (i.u16[0]) { + case IC_ADD: + if (tempc->ptr_cnt) { + tempi=lx->cbh.cb_last_out_ptr; + if (!tempi->ic_class->ptr_cnt && + tempi->ic_class->sub_type!=IT_F64) { + CBICAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]); + CBICAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]); + } + } + break; + case IC_SUB: + if (tempc->ptr_cnt) { + tempi=lx->cbh.cb_last_out_ptr; + if (!tempi->ic_class->ptr_cnt && + tempi->ic_class->sub_type!=IT_F64) { + CBICAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]); + CBICAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]); + } else + div_sizeof=TRUE; + } + break; + case IC_AND_AND: + case IC_OR_OR: + CBICAdd(lx,IC_NOP,0,sys_internal_types[IT_I64]); + break; + case IC_ADD_EQUAL: + case IC_SUB_EQUAL: + if (tempc->ptr_cnt) { + CBICAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]); + CBICAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]); + } + break; + } + tempi2=CBICAdd(lx,i,0,tempc); + if (i.u8[3]&ECF_HAS_PUSH_CMP) { + tempi2->ic_flags|=ICF_POP_CMP; + CBICAdd(lx,IC_NOP,0,sys_internal_types[IT_I64]); + CBICAdd(lx,IC_AND_AND,0,sys_internal_types[IT_I64],ICF_POP_CMP); + } + if (Bt(cmp_bitmap,k.u16[0]) && Bt(cmp_bitmap,i.u16[0])) { + tempi2->ic_flags|=ICF_PUSH_CMP; + CBICAdd(lx,IC_NOP,0,sys_internal_types[IT_I64]); + CBICAdd(lx,IC_PUSH_CMP,0,tempc); + k.u8[3]|=ECF_HAS_PUSH_CMP; + } else if (k.u16[0]==IC_AND_AND || k.u16[0]==IC_OR_OR) + CBICAdd(lx,IC_NOP,0,sys_internal_types[IT_I64]); + if (div_sizeof) { + tempc1=tempc-1; + if (tempc1->size!=1) { + CBICAdd(lx,IC_IMM,tempc1->size,sys_internal_types[IT_I64]); + CBICAdd(lx,IC_DIV,0,sys_internal_types[IT_I64]); + tempc=sys_internal_types[IT_I64]; + } + } + } else { + PrsPush(ps,tempc); + PrsPush(ps,i); + PrsPush(ps,lx->cbh.cb_last_out_ptr->ic_class); + PrsPush(ps,k); + cont_check_binary_ops=FALSE; + cont_unary=TRUE; + break; + } + } + } + } + } while (cont_check_binary_ops); + } while (cont_unary); + while (TRUE) { + i=PrsPop(ps); + tempc=PrsPop(ps); + div_sizeof=FALSE; + tempi=lx->cbh.cb_last_out_ptr; + switch (i.u16[0]) { + case 0: + goto done3; + case IC_ADD: + if (tempc->ptr_cnt && !tempi->ic_class->ptr_cnt && + tempi->ic_class->sub_type!=IT_F64) { + CBICAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]); + CBICAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]); + } + break; + case IC_SUB: + if (tempc->ptr_cnt && tempi->ic_class->sub_type!=IT_F64) { + if (!tempi->ic_class->ptr_cnt) { + CBICAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]); + CBICAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]); + } else + div_sizeof=TRUE; + } + break; + case IC_AND_AND: + case IC_OR_OR: + CBICAdd(lx,IC_NOP,0,sys_internal_types[IT_I64]); + break; + case IC_ADD_EQUAL: + case IC_SUB_EQUAL: + if (tempc->ptr_cnt) { + CBICAdd(lx,IC_SIZEOF,1,sys_internal_types[IT_I64]); + CBICAdd(lx,IC_MUL,0,sys_internal_types[IT_I64]); + } + break; + } + tempi=CBICAdd(lx,i,0,tempc); + if (i.u8[3]&ECF_HAS_PUSH_CMP) { + tempi->ic_flags|=ICF_POP_CMP; + CBICAdd(lx,IC_NOP,0,sys_internal_types[IT_I64]); + CBICAdd(lx,IC_AND_AND,0,sys_internal_types[IT_I64],ICF_POP_CMP); + } + if (div_sizeof) { + tempc1=tempc-1; + if (tempc1->size!=1) { + CBICAdd(lx,IC_IMM,tempc1->size,sys_internal_types[IT_I64]); + CBICAdd(lx,IC_DIV,0,sys_internal_types[IT_I64]); + tempc=sys_internal_types[IT_I64]; + } + } + } +done3: + } catch { + if (Fs->except_argc>0) { + if (Fs->except_argv[0]==EXCEPT_COMPILER) { + lx->statement_cnt=0; + lx->braces_cnt=0; + lx->temp_indent_level=lx->indent_level=0; + QueVectU8Del(lx->indent_que_vect); + lx->indent_que_vect=NULL; + result=FALSE; + Fs->catch_except=TRUE; + } + } + } + if (!_ps) { + if (ps->ptr) + LexExcept(lx,"ST_PRS_INTERNAL_ERROR"); + Free(ps); + } + if (end_exp && result) + CBICAdd(lx,IC_END_EXP,0,0); + if (quest>0) + LexExcept(lx,"ST_MISSING_COLON"); + if (_max_prec) + *_max_prec=max_prec; + lx->flags=lx->flags&~LF_INSIDE_EXPRESSION | + old_flags&(LF_INSIDE_EXPRESSION|LF_PREINC|LF_PREDEC); + lx->expression_start_line_num=old_expression_start_line_num; + return result; +} + +U0 PrsSizeOf(CLex *lx) +{ + CHashClass *tempc; + CMemberList *tempm; + CDbgInfo *dbg; + I64 i; + if (lx->token!=TK_IDENT) + LexExcept(lx,"ST_INVALID_CLASS"); + if (tempm=lx->local_var_entry) { + tempc=tempm->member_class; + i=tempc->size*tempm->dim.total_cnt; + if (Lex(lx)=='.') + goto pu_sizeof_member; + } else { + tempc=lx->hash_entry; + if (!tempc || !(tempc->type & (HTT_CLASS|HTT_INTERNAL_TYPE|HTT_GLBL_VAR|HTT_FUN))) + LexExcept(lx,"ST_INVALID_CLASS"); + if (tempc->type&HTT_FUN) { + if (!(dbg=tempc(CHashFun *)->debug)) + LexExcept(lx,"ST_FUN_SIZE_NOT_DEFINED"); + i=dbg->body[dbg->max_line+1-dbg->min_line]-tempc(CHashFun *)->executable_addr; + Lex(lx); + } else { + i=tempc->size; + while (Lex(lx)=='.') { +pu_sizeof_member: + if (!(tempc->type & (HTT_CLASS|HTT_GLBL_VAR))) + LexExcept(lx,"ST_INVALID_CLASS"); + else if (tempc->type & HTT_GLBL_VAR) + tempc=tempc(CHashGlblVar *)->var_class; + if (Lex(lx)!=TK_IDENT || !(tempm=MemberFind(lx->ident,tempc))) + LexExcept(lx,"ST_INVALID_MEMBER"); + else if (lx->local_var_entry) + lx->local_var_entry->use_cnt--; + tempc=tempm->member_class; +//Probably others like this: +#assert offset(CHashClass.size)==offset(CHashGlblVar.size) + i=tempc->size*tempm->dim.total_cnt; + } + } + } + if (lx->token=='*') { + while (Lex(lx)=='*'); + i=sizeof(U8 *); + } + CBICAdd(lx,IC_IMM,i,sys_internal_types[IT_I64]); +} + +U0 PrsOffsetOf(CLex *lx) +{ + CHashClass *tempc; + CMemberList *tempm; + I64 i; + if (lx->token!=TK_IDENT) + LexExcept(lx,"ST_INVALID_CLASS"); + if (tempm=lx->local_var_entry) + tempc=tempm->member_class; + else { + tempc=lx->hash_entry; + if (!tempc || !(tempc->type & (HTT_CLASS|HTT_GLBL_VAR))) + LexExcept(lx,"ST_INVALID_CLASS"); + else if (tempc->type & HTT_GLBL_VAR) + tempc=tempc(CHashGlblVar *)->var_class; + } + if (Lex(lx)!='.') + LexExcept(lx,"ST_EXPECTING_DOT"); + + i=0; + do { + if (Lex(lx)!=TK_IDENT || !(tempm=MemberFind(lx->ident,tempc))) + LexExcept(lx,"ST_INVALID_MEMBER"); + else if (lx->local_var_entry) + lx->local_var_entry->use_cnt--; + i+=tempm->offset; + tempc=tempm->member_class; + } while (Lex(lx)=='.'); + CBICAdd(lx,IC_IMM,i,sys_internal_types[IT_I64]); +} + +I64 PrsFunCall(CLex *lx,CPrsStk *ps,Bool indirect,CHashFun *tempf) +{ + I64 i,argc_cnt; + Bool is_first_arg=TRUE,needs_right_paren,is_str_out,is_putchar,is_template_fun; + CHashClass *tempc1,*tempc2; + CMemberList *tempm; + CLexCodeBlkCtrl *tempcbh,*tempcbh1; + CCodeBlkMisc *mc; + CIntermediateCode *tempi; + + if (!tempf) { + if (lx->token==TK_U8) { + if (!(tempf=HashFind("PutChar",lx->hash_table_list,HTT_FUN))) + LexExcept(lx,"ST_HEADER_FOR_PRINTF"); + if (!lx->cur_i) //empty char signals PutChar with variable + Lex(lx); + is_str_out=FALSE; + is_putchar=TRUE; + } else { + if (!(tempf=HashFind("PrintF",lx->hash_table_list,HTT_FUN))) + LexExcept(lx,"ST_HEADER_FOR_PRINTF"); + if (!*lx->ident) //empty string signals PrintF with variable fmt_str + Lex(lx); + is_putchar=FALSE; + is_str_out=TRUE; + } + } else { + is_str_out=FALSE; + is_putchar=FALSE; + } + + if (Bt(tempf->flags,Ff_INTERNAL)&& IC_SQR<=tempf->executable_addr<=IC_ATAN) + is_template_fun=TRUE; + else + is_template_fun=FALSE; + + if (indirect) { + if (!(lx->flags & (LF_RAX | LF_ARRAY))) + CBICAdd(lx,IC_DEREF,0,sys_internal_types[IT_PTR]); + lx->cbh.cb_last_out_ptr->ic_class=sys_internal_types[IT_PTR]; + CBICAdd(lx,IC_SET_RAX,0,sys_internal_types[IT_PTR]); + CBICAdd(lx,IC_NOP1,1,sys_internal_types[IT_PTR]); //balance the books + } + CBPush(lx); + tempcbh=lx->cbh.cb_next; + lx->cbh.cb_next=NULL; + i=tempf->arg_cnt; + tempm=tempf->member_list; + argc_cnt=0; + if (lx->token=='(') { + Lex(lx); + needs_right_paren=TRUE; + } else + needs_right_paren=FALSE; + while (i--) { + CBOutPtrsInit(lx); + if (!is_first_arg) { + if (is_str_out) { + if (lx->token==',') + Lex(lx); + else if (lx->token!=';') + LexExcept(lx,"ST_EXPECTING_COMMA"); + } else { + if (needs_right_paren) { + if (lx->token==',') + Lex(lx); + else if (lx->token!=')') + LexExcept(lx,"ST_EXPECTING_COMMA"); + } + } + } + if (tempm->flags & MLF_DFT_AVAILABLE && + (lx->token==')' || lx->token==',' || !needs_right_paren)) { + if (tempm->flags & MLF_STR_DFT_AVAILABLE && + lx->flags&LF_STATIC_COMPILE) { + mc=CBMiscNew(lx,CBMT_STR_CONST); + CBICAdd(lx,IC_STR_CONST,mc,sys_internal_types[IT_U8]+1); + mc->st_len=StrLen(tempm->dft_val)+1; + mc->str=StrNew(tempm->dft_val); + lx->flags|=LF_HAS_MISC_DATA; + } else + CBICAdd(lx,IC_IMM,tempm->dft_val,tempm->member_class); + } else { + if (!PrsExpression(lx,NULL,FALSE,ps)) + throw(EXCEPT_COMPILER,3); + else { + CBPush(lx); + CBICAdd(lx,IC_END,0,0); + lx->pass=0; + OptPass012(lx,NULL,FALSE); + lx->pass=1; + tempi=OptPass012(lx,NULL,FALSE); + CBPop(lx); + tempc1=tempi->ic_class; + while (tempc1->fwd_class) + tempc1=tempc1->fwd_class; + tempc2=tempm->member_class; + while (tempc2->fwd_class) + tempc2=tempc2->fwd_class; + if (tempc2->sub_type==IT_F64 && + tempc1->sub_type!=IT_F64) + tempi->ic_flags|=ICF_R_TO_F64; + else + if (tempc2->sub_type!=IT_F64 && + tempc1->sub_type==IT_F64) + tempi->ic_flags|=ICF_R_TO_INT; + } + } + CBICAdd(lx,IC_END,0,0); + CBPush(lx); + is_first_arg=FALSE; + tempm=tempm->next; + } + if (is_str_out && lx->token==';') { + if (!(tempf=HashFind("PutS",lx->hash_table_list,HTT_FUN))) + LexExcept(lx,"ST_HEADER_FOR_PRINTF"); + tempm=NULL; + } + if (tempm && tempm->flags & MLF_DOT_DOT_DOT) { + CBOutPtrsInit(lx); + tempi=CBICAdd(lx,IC_IMM,0,tempm->member_class); + CBICAdd(lx,IC_END,0,0); + CBPush(lx); + if (is_str_out) { + if (lx->token!=';') { + do { + if (!is_first_arg) { + if (lx->token==',') + Lex(lx); + else + LexExcept(lx,"ST_EXPECTING_COMMA"); + } + CBOutPtrsInit(lx); + if (!PrsExpression(lx,NULL,FALSE,ps)) + throw(EXCEPT_COMPILER,4); + CBICAdd(lx,IC_END,0,0); + CBPush(lx); + is_first_arg=FALSE; + argc_cnt++; + } while (lx->token==','); + } + } else if (needs_right_paren) { + if (lx->token!=')') { + do { + if (!is_first_arg) { + if (lx->token==',') + Lex(lx); + else + LexExcept(lx,"ST_EXPECTING_COMMA"); + } + CBOutPtrsInit(lx); + if (!PrsExpression(lx,NULL,FALSE,ps)) + throw(EXCEPT_COMPILER,4); + CBICAdd(lx,IC_END,0,0); + CBPush(lx); + is_first_arg=FALSE; + argc_cnt++; + } while (lx->token==','); + } + } + tempi->ic_data=argc_cnt++; //++ so add_esp latter works + } + if (needs_right_paren) { + if (lx->token==')') + Lex(lx); + else + LexExcept(lx,"ST_MISSING_RIGHT_PAREN"); + } + tempcbh1=tempcbh->cb_next; + tempcbh->cb_next=lx->cbh.cb_next; + lx->cbh.cb_next=tempcbh; + CBPop(lx); + tempcbh=lx->cbh.cb_next; + lx->cbh.cb_next=tempcbh1; + if (!is_template_fun) + CBICAdd(lx,IC_CALL_START,tempf,0); + if (indirect) + CBICAdd(lx,IC_PUSH_REGS,1<return_class); + while (tempcbh) { + tempcbh1=tempcbh->cb_next; + CBAppend(lx,tempcbh); + if (!Bt(tempf->flags,Ff_INTERNAL)) + lx->cbh.cb_last_out_ptr->ic_flags|=ICF_PUSH_RESULT; + tempcbh=tempcbh1; + } + if (Bt(tempf->flags,Ff_INTERNAL)) + CBICAdd(lx,tempf->executable_addr,0,tempf->return_class); + else { + if (indirect) + CBICAdd(lx,IC_CALL_INDIRECT,(argc_cnt+tempf->arg_cnt)<<3,tempf->return_class); + else if (Bt(tempf->flags,Cf_EXTERN)) { + lx->abs_cnts.externs++; + if (lx->flags&LF_STATIC_COMPILE) { + if (tempf->type&HTF_IMPORT) + CBICAdd(lx,IC_CALL_IMPORT,tempf,tempf->return_class); + else + CBICAdd(lx,IC_CALL_EXTERN,tempf,tempf->return_class); + } else + CBICAdd(lx,IC_CALL_INDIRECT2,&tempf->executable_addr,tempf->return_class); + } else { + CBICAdd(lx,IC_CALL,tempf->executable_addr,tempf->return_class); + } + if ((Bt(tempf->flags,Ff_RET1) || Bt(tempf->flags,Ff_ARGPOP)) && !Bt(tempf->flags,Ff_NOARGPOP)) { + if (indirect) { + CBICAdd(lx,IC_ADD_RSP1,(argc_cnt+tempf->arg_cnt)<<3,tempf->return_class); + CBICAdd(lx,IC_ADD_RSP,8,tempf->return_class); + } else + CBICAdd(lx,IC_ADD_RSP1,(argc_cnt+tempf->arg_cnt)<<3,tempf->return_class); + } else { + if (indirect) + argc_cnt++; + CBICAdd(lx,IC_ADD_RSP,(argc_cnt+tempf->arg_cnt)<<3,tempf->return_class); + } + } + if (!is_template_fun) + CBICAdd(lx,IC_CALL_END,tempf,tempf->return_class); + if (is_str_out||is_putchar) + CBICAdd(lx,IC_END_EXP,0,0); + lx->flags=(lx->flags|LF_RAX) & ~(LF_ARRAY|LF_FUN_EXP); + return PRST_UNARY_MODIFIERS; +} + +I64 PrsUnaryTerm(CLex *lx,CPrsStk *ps,CMemberList **_local_var,CArrayDim **_tempad, + I64 *max_prec,I64 *unary_pre_prec,I64 *paren_prec) +{ + I64 i,*i_ptr,j,d,size; + CHashExport *tempess; + CHashClass *tempc; + CHashFun *tempf; + CHashGlblVar *tempg; + CMemberList *tempm; + CLexUndef *templu; + CCodeBlkMisc *mc; + Bool paren_warn; + + *_local_var=NULL; + *paren_prec=PREC_NULL; + switch (lx->token) { + case TK_INTEGER: + case TK_U8: + if (PREC_TERM>*max_prec) + *max_prec=PREC_TERM; + if (lx->cur_i<0) + CBICAdd(lx,IC_IMM,lx->cur_i,sys_internal_types[IT_U64]); + else + CBICAdd(lx,IC_IMM,lx->cur_i,sys_internal_types[IT_I64]); + Lex(lx); + return PRST_MAYBE_MODIFIERS; + case TK_F64: + if (PREC_TERM>*max_prec) + *max_prec=PREC_TERM; + i_ptr=&lx->cur_f; + CBICAdd(lx,IC_F64,*i_ptr,sys_internal_types[IT_F64]); + Lex(lx); + return PRST_MAYBE_MODIFIERS; + case TK_STR: + if (PREC_TERM>*max_prec) + *max_prec=PREC_TERM; + d=LexExtStr(lx,&size); + mc=CBMiscNew(lx,CBMT_STR_CONST); + CBICAdd(lx,IC_STR_CONST,mc,sys_internal_types[IT_U8]+1); + mc->st_len=size; + mc->str=d; + lx->flags|=LF_HAS_MISC_DATA; + return PRST_MAYBE_MODIFIERS; + case TK_INS_BINARY: + if (PREC_TERM>*max_prec) + *max_prec=PREC_TERM; + d=lx->ident; + size=lx->ident_len; + lx->ident=NULL; + mc=CBMiscNew(lx,CBMT_STR_CONST); + CBICAdd(lx,IC_STR_CONST,mc,sys_internal_types[IT_U8]+1); + mc->st_len=size; + mc->str=d; + lx->flags|=LF_HAS_MISC_DATA; + Lex(lx); + return PRST_MAYBE_MODIFIERS; + case TK_INS_BINARY_TYPE: + case TK_INS_BINARY_SIZE: + if (PREC_TERM>*max_prec) + *max_prec=PREC_TERM; + CBICAdd(lx,IC_IMM,lx->cur_i,sys_internal_types[IT_U64]); + Lex(lx); + return PRST_MAYBE_MODIFIERS; + case '(': + if (Lex(lx)==TK_IDENT && lx->hash_entry && lx->hash_entry->type & (HTT_CLASS|HTT_INTERNAL_TYPE)) + LexExcept(lx,"ST_USE_POSTFIX_CAST"); + else { + if (PREC_TERM>*max_prec) + *max_prec=PREC_TERM; + if (lx->cur_lfn->flags&LFSF_IS_DEFINE) + paren_warn=FALSE; + else + paren_warn=TRUE; + if (!PrsExpression(lx,paren_prec,FALSE,ps)) + throw(EXCEPT_COMPILER,2); + if (!paren_warn) + *paren_prec=PREC_NULL; + if (lx->token!=')') + LexExcept(lx,"ST_MISSING_RIGHT_PAREN"); + Lex(lx); //skip ) + lx->flags= lx->flags & ~LF_ARRAY | LF_RAX | LF_PAREN; + return PRST_UNARY_MODIFIERS; + } + } + i=unary_ops_table[lx->token]; + if (i.u8[2]) { + if (i.u8[2]>*max_prec) + *max_prec=i.u8[2]; + *unary_pre_prec=i.u8[2]; + Lex(lx); //Skip op + if (i.u16[0]==IC_ADDR && lx->token==TK_IDENT) { + if (tempc=lx->hash_entry) { + if (tempc->type & HTT_FUN) { + tempf=tempc; + if (!Bt(tempf->flags,Ff_INTERNAL)) { + if (Bt(tempf->flags,Cf_EXTERN)) { + if (lx->flags&LF_STATIC_COMPILE) { + if (lx->flags&LF_ASM_EXPRESSIONS) { + if (tempess=HashFind(tempf->str,lx->hash_table_list,HTT_EXPORT_SYS_SYM)) + goto pu_export_sys_sym; + else + goto pu_new_sys_sym; + } + LexExcept(lx,"ST_ADDR_EXTERN"); + } + lx->abs_cnts.externs++; + CBICAdd(lx,IC_IMM, + &tempf->executable_addr,sys_internal_types[IT_PTR]); + CBICAdd(lx,IC_DEREF,0, + sys_internal_types[IT_PTR]); + } else { + if (lx->flags&LF_STATIC_COMPILE) { + CBICAdd(lx,IC_ABS_ADDR, + tempf->executable_addr,sys_internal_types[IT_PTR]); + if (lx->flags&LF_ASM_EXPRESSIONS) + lx->abs_cnts.abs_addres++; + } else + CBICAdd(lx,IC_IMM, + tempf->executable_addr,sys_internal_types[IT_PTR]); + } + lx->abs_cnts.c_addres++; + Lex(lx); + return PRST_MAYBE_MODIFIERS; + } + } else if (tempc->type & HTT_EXPORT_SYS_SYM) { + tempess=tempc; + if (lx->flags&LF_ASM_EXPRESSIONS && !(lx->flags&LF_STATIC_COMPILE) && + tempess->type&HTF_LIT) { + lx->abs_cnts.c_addres++; + CBICAdd(lx,IC_IMM, + tempess->val,sys_internal_types[IT_PTR]); + Lex(lx); + return PRST_MAYBE_MODIFIERS; + } else + goto pu_export_sys_sym; + } + } else if (lx->flags&LF_ASM_EXPRESSIONS && !lx->local_var_entry) + goto pu_ident_but_not_local_var; + } + PrsPush(ps,tempc); + PrsPush(ps,i); + return PRST_UNARY_TERM; + } + if (lx->token=='+') { + if (PREC_UNARY_PRE>*max_prec) + *max_prec=PREC_UNARY_PRE; + *unary_pre_prec=PREC_UNARY_PRE; + Lex(lx); + return PRST_UNARY_TERM; + } + + if (lx->token!=TK_IDENT) { + if (lx->token==TK_PLUS_PLUS) { + if (PREC_UNARY_PRE>*max_prec) + *max_prec=PREC_UNARY_PRE; + *unary_pre_prec=PREC_UNARY_PRE; + Lex(lx); + lx->flags|=LF_PREINC; + return PRST_UNARY_TERM; + } + if (lx->token==TK_MINUS_MINUS) { + if (PREC_UNARY_PRE>*max_prec) + *max_prec=PREC_UNARY_PRE; + *unary_pre_prec=PREC_UNARY_PRE; + Lex(lx); + lx->flags|=LF_PREDEC; + return PRST_UNARY_TERM; + } + if (lx->token=='$$') { + if (PREC_TERM>*max_prec) + *max_prec=PREC_TERM; + if (lx->flags & LF_ASM_EXPRESSIONS) { + lx->abs_cnts.abs_addres++; + if (lx->flags&LF_STATIC_COMPILE) + CBICAdd(lx,IC_ABS_ADDR,lx->a->ip,sys_internal_types[IT_PTR]); + else + CBICAdd(lx,IC_IMM,lx->a->ip,sys_internal_types[IT_PTR]); + } else { + if (lx->flags&LF_CLASS_IP) + CBICAdd(lx,IC_IMM,lx->class_ip,sys_internal_types[IT_I64]); + else + CBICAdd(lx,IC_RIP,0,sys_internal_types[IT_PTR]); + } + Lex(lx); + return PRST_MAYBE_MODIFIERS; + } + LexExcept(lx,"ST_MISSING_EXPRESSION"); + } + + if (tempm=lx->local_var_entry) { + if (PREC_TERM>*max_prec) + *max_prec=PREC_TERM; + lx->flags&=~(LF_RAX|LF_ARRAY|LF_FUN_EXP); + tempc=tempm->member_class+1; + if (tempm->flags & MLF_FUN && !(lx->flags&LF_ASM_EXPRESSIONS)) { + PrsPopDeref(ps); + lx->flags|=LF_FUN_EXP; + PrsPush2(ps,tempm->fun_ptr-tempm->fun_ptr->ptr_cnt); + } + if (tempm->dim.next) { + *_tempad=tempm->dim.next; + lx->flags|=LF_ARRAY; + } + if (tempm->flags&MLF_STATIC) { + if (lx->flags&LF_STATIC_COMPILE) { + // if (tempg->flags&GVAF_DATA_HEAP) //TODO + // CBICAdd(lx,IC_HEAP_GLBL,tempm->static_data,tempc); + // else + CBICAdd(lx,IC_ABS_ADDR,tempm->static_data_ip,tempc); + } else + CBICAdd(lx,IC_IMM,tempm->static_data,tempc); + } else { + if (lx->flags&LF_ASM_EXPRESSIONS) { + i=PrsPop(ps); + ps->ptr--; + if (i.u16[0]!=IC_ADDR) + LexExcept(lx,"ST_EXPECTING_AMPERSAND"); + CBICAdd(lx,IC_IMM,tempm->offset,sys_internal_types[IT_PTR]); + *_local_var=tempm; + Lex(lx); + return PRST_MAYBE_MODIFIERS; + } else { + if (tempm->dim.next && tempm->offset>0 && StrCmp(tempm->str,"argv")) { + tempc++; + lx->flags&=~LF_ARRAY; + } + CBICAdd(lx,IC_RBP,0,tempc); + CBICAdd(lx,IC_IMM,tempm->offset,tempc); + CBICAdd(lx,IC_ADD,0,tempc); + } + } + Lex(lx); //skip var name + *_local_var=tempm; + return PRST_UNARY_MODIFIERS; + } + +pu_ident_but_not_local_var: + if (!(tempess=lx->hash_entry)) { + if (!(lx->flags & LF_ASM_EXPRESSIONS)) + LexExcept(lx,"ST_INVALID_LVAL"); + tempc=NULL; +pu_new_sys_sym: + tempess=CAlloc(sizeof(CHashExport),Fs->code_heap); + tempess->str=lx->ident; + lx->ident=NULL; + if (*tempess->str=='@' && + tempess->str[1]=='@') { + tempess->type=HTT_EXPORT_SYS_SYM | HTF_UNRESOLVED | HTF_LOCAL; + if (IsReplaceSyms) + HashReplace(tempess,lx->local_hash_table); + else + HashAdd(tempess,lx->local_hash_table); + } else { + tempess->type=HTT_EXPORT_SYS_SYM | HTF_UNRESOLVED; + if (tempc) + HashAddAfter(tempess,tempc,lx->glbl_hash_table); + else if (IsReplaceSyms) + HashReplace(tempess,lx->glbl_hash_table); + else + HashAdd(tempess,lx->glbl_hash_table); + } + } + + if (tempess->type & HTT_EXPORT_SYS_SYM) { +pu_export_sys_sym: + if (PREC_TERM>*max_prec) + *max_prec=PREC_TERM; + if (!(tempess->type & (HTF_LIT|HTF_IMPORT))) + lx->abs_cnts.abs_addres++; + if (tempess->type & HTF_UNRESOLVED) { + if (!(lx->flags&LF_ASM_EXPRESSIONS)) + LexExcept(lx,"ST_ILLEGAL_FWD_REF"); + templu=MAlloc(sizeof(CLexUndef)); + templu->hash=tempess; + templu->next=lx->undef_hash_entry; + lx->undef_hash_entry=templu; + if (tempess->type & HTF_LOCAL) + lx->flags|=LF_UNRESOLVED|LF_LOCAL; + else + lx->flags|=LF_UNRESOLVED; + CBICAdd(lx,IC_IMM,&tempess->val,sys_internal_types[IT_PTR],ICF_NO_RIP); + CBICAdd(lx,IC_DEREF,0,sys_internal_types[IT_PTR]); + } else { + if (lx->flags&LF_STATIC_COMPILE && !(tempess->type & HTF_LIT)) + CBICAdd(lx,IC_ABS_ADDR,tempess->val,sys_internal_types[IT_PTR]); + else { + if (tempess->type&HTF_LIT) + lx->abs_cnts.c_addres++; + CBICAdd(lx,IC_IMM,tempess->val,sys_internal_types[IT_PTR]); + } + } + Lex(lx); + return PRST_MAYBE_MODIFIERS; + } + + if (tempess->type & HTT_FUN) { + if (PREC_TERM>*max_prec) + *max_prec=PREC_TERM; + Lex(lx); //skip fun name + return PrsFunCall(lx,ps,FALSE,tempess); + } + if (tempess->type & HTT_GLBL_VAR) { + if (PREC_TERM>*max_prec) + *max_prec=PREC_TERM; + tempg=tempess; + tempc=tempg->var_class+1; + lx->flags&=~(LF_RAX|LF_ARRAY|LF_FUN_EXP); + if (tempg->flags&GVAF_ARRAY) { + *_tempad=tempg->dim.next; + lx->flags|=LF_ARRAY; + } + if (lx->flags&LF_STATIC_COMPILE) { + if (tempg->flags & GVAF_EXTERN) //TODO + LexExcept(lx,"ST_NOT_IMPLEMENTED"); + else { + if (tempg->flags & GVAF_IMPORT) + CBICAdd(lx,IC_ADDR_IMPORT,tempg,tempc); + else { + if (tempg->flags&GVAF_DATA_HEAP) + CBICAdd(lx,IC_HEAP_GLBL,tempg->heap_glbl,tempc); + else + CBICAdd(lx,IC_ABS_ADDR,tempg->data_addr_ip,tempc); + } + } + } else { + if (tempg->flags & GVAF_EXTERN) { + lx->abs_cnts.externs++; + CBICAdd(lx,IC_IMM,&tempg->data_addr,tempc); + CBICAdd(lx,IC_DEREF,0,tempc); + } else + CBICAdd(lx,IC_IMM,tempg->data_addr,tempc); + } + Lex(lx); + if (tempg->flags & GVAF_FUN) { + PrsPopDeref(ps); + lx->flags|=LF_FUN_EXP; + PrsPush2(ps,tempg->fun_ptr-tempg->fun_ptr->ptr_cnt); + } + return PRST_UNARY_MODIFIERS; + } else if (tempess->type & HTT_CLASS) { + PrsOffsetOf(lx); + return PRST_MAYBE_MODIFIERS; + } + + if (!(tempess->type & HTT_KEYWORD)) + LexExcept(lx,"ST_MISSING_EXPRESSION"); + switch (tempess(CHashGeneric *)->user_data0) { + case KW_SIZEOF: + if (PREC_TERM>*max_prec) + *max_prec=PREC_TERM; + Lex(lx); //skip sizeof + j=0; + while (lx->token=='(') { + Lex(lx); + j++; + } + PrsSizeOf(lx); + while (j--) { + if (lx->token!=')') + LexExcept(lx,"ST_MISSING_RIGHT_PAREN"); + Lex(lx); + } + return PRST_MAYBE_MODIFIERS; + case KW_OFFSET: + if (PREC_TERM>*max_prec) + *max_prec=PREC_TERM; + Lex(lx); //skip offset + j=0; + while (lx->token=='(') { + Lex(lx); + j++; + } + PrsOffsetOf(lx); + while (j--) { + if (lx->token!=')') + LexExcept(lx,"ST_MISSING_RIGHT_PAREN"); + Lex(lx); + } + return PRST_MAYBE_MODIFIERS; + case KW_DEFINED: + if (PREC_TERM>*max_prec) + *max_prec=PREC_TERM; + Lex(lx); //skip defined + j=0; + while (lx->token=='(') { + Lex(lx); + j++; + } + if (lx->token==TK_IDENT && + (lx->hash_entry || lx->local_var_entry)) + CBICAdd(lx,IC_IMM,TRUE,sys_internal_types[IT_I64]); + else + CBICAdd(lx,IC_IMM,FALSE,sys_internal_types[IT_I64]); + Lex(lx); + while (j--) { + if (lx->token!=')') + LexExcept(lx,"ST_MISSING_RIGHT_PAREN"); + Lex(lx); + } + return PRST_MAYBE_MODIFIERS; + } + LexExcept(lx,"ST_MISSING_EXPRESSION"); +} + +I64 PrsUnaryModifier(CLex *lx,CPrsStk *ps,CMemberList **_local_var,CArrayDim **_tempad,I64 *unary_post_prec) +{ + CHashClass *tempc,*tempc1; + CHashFun *fun_ptr; + CMemberList *tempm=*_local_var; + CIntermediateCode *tempi,*tempi1; + CArrayDim *tempad1,tempad2; + CCodeBlkMisc *mc; + I64 mode,old_flags; + Bool was_paren=Btr(&lx->flags,Lf_PAREN); + if (lx->token==TK_DEREFERENCE) { + if (!*unary_post_prec) + *unary_post_prec=PREC_TERM; + tempi=lx->cbh.cb_last_out_ptr; + if (!(lx->flags & (LF_RAX | LF_ARRAY))) + CBICAdd(lx,IC_DEREF+PREC_UNARY_PRE<<16,0,tempi->ic_class-1); + else + tempi->ic_class--; + } else if (lx->token=='.') { + if (!*unary_post_prec) + *unary_post_prec=PREC_TERM; + if (tempm) + tempm->register=CREG_NONE; + } + *_local_var=NULL; + switch (lx->token) { + case '.': + case TK_DEREFERENCE: + if (!*unary_post_prec) + *unary_post_prec=PREC_TERM; + tempc=lx->cbh.cb_last_out_ptr->ic_class; + if (!tempc->ptr_cnt && lx->token=='.') + LexExcept(lx,"ST_ADD_NOT_VAL"); + if (!(lx->flags & LF_RAX)) + tempc--; + if (!(tempc->type & HTT_CLASS)) + LexExcept(lx,"ST_INVALID_CLASS"); + if (Lex(lx)!=TK_IDENT || + !(tempm=MemberFind(lx->ident,tempc))) + LexExcept(lx,"ST_INVALID_MEMBER"); + else if (lx->local_var_entry) + lx->local_var_entry->use_cnt--; + Lex(lx); //skip member name + tempc1=tempm->member_class+1; + CBICAdd(lx,IC_IMM,tempm->offset,tempc1); + lx->flags&=~(LF_RAX|LF_ARRAY|LF_FUN_EXP); + if (tempm->dim.next) { + *_tempad=tempm->dim.next; + lx->flags|=LF_ARRAY; + } + if(tempm->flags & MLF_FUN) { + PrsPopDeref(ps); + PrsPush2(ps,tempm->fun_ptr-tempm->fun_ptr->ptr_cnt); + lx->flags|=LF_FUN_EXP; + } + CBICAdd(lx,IC_ADD,0,tempc1); + return PRST_UNARY_MODIFIERS; + case '(': + if (lx->flags & LF_FUN_EXP) { + if (!*unary_post_prec) + *unary_post_prec=PREC_TERM; + return PrsFunCall(lx,ps,TRUE,PrsPop2(ps)); + } + if (!*unary_post_prec) + *unary_post_prec=PREC_TERM; + if (Lex(lx)!=TK_IDENT) + LexExcept(lx,"ST_INVALID_CLASS"); + if (Btr(&lx->flags,Lf_FUN_EXP)) + ps->ptr2--; + lx->flags&=~LF_ARRAY; + tempc=lx->hash_entry; + Lex(lx); + mode=PRS0_TYPECAST|PRS1_NULL; + tempc=PrsType(lx,&tempc,&mode,NULL,NULL,&fun_ptr,NULL,&tempad2,0); + if (fun_ptr) { + PrsPopDeref(ps); + Bts(&lx->flags,Lf_FUN_EXP); + PrsPush2(ps,fun_ptr); + mc=CBMiscNew(lx,CBMT_HASH_ENTRY); + mc->h=fun_ptr; + } + if (*_tempad=tempad2.next) { + lx->flags|=LF_ARRAY; + tempc++; + mc=CBMiscNew(lx,CBMT_ARRAY_DIM); + mc->dim=*_tempad; + } + if (!(lx->flags&(LF_RAX|LF_ARRAY))) + tempc++; + tempi=lx->cbh.cb_last_out_ptr; + tempi->ic_class=tempc; + CBICAdd(lx,IC_NATIVE_TYPECAST,was_paren,tempc); + if (lx->token!=')') + LexExcept(lx,"ST_MISSING_RIGHT_PAREN"); + Lex(lx); + return PRST_UNARY_MODIFIERS; + case '[': + if (!*unary_post_prec) + *unary_post_prec=PREC_TERM; + Lex(lx); + tempc=lx->cbh.cb_last_out_ptr->ic_class; + while (tempc->fwd_class) + tempc=tempc->fwd_class; + if (!tempc->ptr_cnt) + LexExcept(lx,"ST_NOT_ARRAY_OR_PTR"); + if (!(lx->flags & (LF_ARRAY | LF_RAX))) { + tempc--; + while (tempc->fwd_class) + tempc=tempc->fwd_class; + if (!tempc->ptr_cnt) + LexExcept(lx,"ST_NOT_ARRAY_OR_PTR"); + CBICAdd(lx,IC_DEREF+PREC_UNARY_PRE<<16,0,tempc); + } + tempc1=tempc-1; + if (tempad1=*_tempad) { + CBICAdd(lx,IC_IMM,tempad1->total_cnt*tempc1->size,tempc); + if (*_tempad=tempad1->next) { + old_flags=lx->flags; + if (!PrsExpression(lx,NULL,FALSE,ps)) + throw(EXCEPT_COMPILER,5); + lx->flags=lx->flags&~LF_FUN_EXP|old_flags&LF_FUN_EXP; + if (lx->token!=']') + LexExcept(lx,"ST_MISSING_RIGHT_BRACKET"); + Lex(lx); //skip ] + tempi1=lx->cbh.cb_last_out_ptr; + tempi1->ic_flags|=ICF_R_TO_INT; + CBICAdd(lx,IC_MUL,0,tempc); + CBICAdd(lx,IC_ADD,0,tempc); + lx->flags|=LF_RAX; + return PRST_UNARY_MODIFIERS; + } + } else + CBICAdd(lx,IC_IMM,tempc1->size,tempc); + old_flags=lx->flags; + if (!PrsExpression(lx,NULL,FALSE,ps)) + throw(EXCEPT_COMPILER,5); + lx->flags=lx->flags&~LF_FUN_EXP|old_flags&LF_FUN_EXP; + if (lx->token!=']') + LexExcept(lx,"ST_MISSING_RIGHT_BRACKET"); + Lex(lx); //skip ] + tempi1=lx->cbh.cb_last_out_ptr; + tempi1->ic_flags|=ICF_R_TO_INT; + CBICAdd(lx,IC_MUL,0,tempc); + CBICAdd(lx,IC_ADD,0,tempc); + lx->flags&=~(LF_RAX|LF_ARRAY); + return PRST_UNARY_MODIFIERS; + case TK_PLUS_PLUS: + if (!*unary_post_prec) + *unary_post_prec=PREC_UNARY_POST; + Lex(lx); + lx->flags|=LF_POSTINC; + return PRST_DEREFERENCE; + case TK_MINUS_MINUS: + if (!*unary_post_prec) + *unary_post_prec=PREC_UNARY_POST; + Lex(lx); + lx->flags|=LF_POSTDEC; + return PRST_DEREFERENCE; + } + return PRST_DEREFERENCE; +} + +U0 PrsDereference(CLex *lx) +{ + I64 i; + CHashClass *tempc; + CIntermediateCode *tempi; + if (!(lx->flags&(LF_PREINC|LF_PREDEC|LF_POSTINC|LF_POSTDEC))) + i=IC_DEREF+PREC_UNARY_PRE<<16; + else { + if (lx->flags & LF_PREINC) + i=IC_PP_+PREC_UNARY_PRE<<16; + else if (lx->flags & LF_PREDEC) + i=IC_MM_+PREC_UNARY_PRE<<16; + else if (lx->flags & LF_POSTINC) + i=IC__PP+PREC_UNARY_POST<<16; + else + i=IC__MM+PREC_UNARY_POST<<16; + lx->flags&=~(LF_PREINC|LF_PREDEC|LF_POSTINC|LF_POSTDEC); + } + tempi=lx->cbh.cb_last_out_ptr; + if (lx->flags & (LF_RAX|LF_ARRAY)) { + if (tempi->ic_opcode==IC_DEREF) + tempi->ic_opcode=i; + } else { + tempc=tempi->ic_class-1; + while (tempc->fwd_class) + tempc=tempc->fwd_class; + CBICAdd(lx,i,0,tempc); + } +} + +U8 *CmpExpression(CLex *lx,I64 *type=NULL) +{ + U8 *result; + I64 size; + Bool old_trace=Btr(&lx->flags,Lf_OPT_TRACE_PRESENT); + CBPush(lx); + CBOutPtrsInit(lx); + CBICAdd(lx,IC_START,0,0); //So we can scan back an instruction + if (PrsExpression(lx,NULL,FALSE)) { + CBICAdd(lx,IC_RETURN_VAL,0,NULL); + CBICAdd(lx,IC_RET,0,0); + CBICAdd(lx,IC_END,0,0); + result=CBCompile(lx,NULL,&size,NULL,NULL,type); + } else + result=NULL; + CBPop(lx); + BEqu(&lx->flags,Lf_OPT_TRACE_PRESENT,old_trace); + return result; +} + +Bool GetExpression(CLex *lx,U8 **_ex) +{ + return ToBool(*_ex=CmpExpression(lx)); +} + +I64 Expression(CLex *lx) +{ + I64 result; + U8 *ex=CmpExpression(lx); + if (ex) { + result=Call(ex); + ExpressionDel(ex); + } else + result=0; + return result; +} diff --git a/SparrowOS/Compiler/Hash1b.CPP b/SparrowOS/Compiler/Hash1b.CPP new file mode 100644 index 0000000..67334fb --- /dev/null +++ b/SparrowOS/Compiler/Hash1b.CPP @@ -0,0 +1,158 @@ +CHashSrcSym *HashEntryImportCopy(CHashSrcSym *temph) +{ //Actually this imports, not copies!! + CHashSrcSym *result=MAllocIdentical(temph); + result->str=MAllocIdentical(temph->str); + result->use_cnt=0; + result->src_link=NULL; + result->index=NULL; + result->list=NULL; + result->debug=NULL; + result->indent=NULL; + if (temph->type & (HTT_FUN | HTT_CLASS)) { + result(CHashClass *)->member_list =MemberListCopy(temph); + result(CHashClass *)->member_list2=temph(CHashClass *)->member_list2; + if (temph->type & HTT_FUN) { + if (Bt(temph(CHashFun *)->flags,Ff_INTERNAL)) { + result->import_name=NULL; + LBtr(result(CHashFun *)->flags,Cf_EXTERN); + } else { + result->import_name=MAllocIdentical(temph->import_name); + result->type|=HTF_IMPORT; + LBts(result(CHashFun *)->flags,Cf_EXTERN); + } + } + } else if (temph->type & (HTT_EXPORT_SYS_SYM | HTT_GLBL_VAR)) { + result->import_name=MAllocIdentical(temph->import_name); + result->type|=HTF_IMPORT; + if (temph->type&HTT_EXPORT_SYS_SYM) { + result->type|=HTF_UNRESOLVED; + result(CHashExport *)->val=0; + } else { + result(CHashGlblVar *)->dim.next=LinkedListCopy(temph(CHashGlblVar *)->dim.next); + result(CHashGlblVar *)->flags|=GVAF_IMPORT|GVAF_ALIAS; + if (temph(CHashGlblVar *)->fun_ptr) + result(CHashGlblVar *)->fun_ptr=HashEntryImportCopy(temph(CHashGlblVar *)->fun_ptr-temph(CHashGlblVar *)->fun_ptr->ptr_cnt)(CHashFun *)+temph(CHashGlblVar *)->fun_ptr->ptr_cnt; + } + } else if (temph->type&HTT_DEFINE_STR) + result(CHashDefineStr *)->data=MAllocIdentical(temph(CHashDefineStr *)->data); + return result; +} + +U0 HashTableImport(CHashTable *src,CHashTable *dst) +{ + I64 i; + CHashSrcSym *temph,*temph1,*temph2; + if (!src) return; + for (i=0;i<=src->mask;i++) { + temph=src->body[i]; + while (temph) { + if (temph->type & HTG_SRC_SYM) { + //Only add first in list + temph2=src->body[i]; + while (temph2!=temph) + if (!StrCmp(temph->str,temph2->str) && + temph2->type & temph->type & HTG_SRC_SYM || + temph->type & HTT_EXPORT_SYS_SYM) + break; + else + temph2=temph2->next; + + if (temph2==temph && (temph1=HashEntryImportCopy(temph))) { + if (IsReplaceSyms) + HashReplace(temph1,dst); + else + HashAdd(temph1,dst); + } + } + temph=temph->next; + } + } +} + +I64 HashEntrySize(CHashSrcSym *temph) +{ + CDbgInfo *dbg; + CBinFile *bfh; + switch (HashTypeNum(temph)) { + case HTt_DEFINE_STR: + return MSize(temph(CHashDefineStr *)->data); + case HTt_GLBL_VAR: + case HTt_CLASS: + case HTt_INTERNAL_TYPE: + return temph(CHashClass *)->size; + case HTt_FUN: + if (dbg=temph->debug) + return dbg->body[dbg->max_line-dbg->min_line+1]-temph(CHashFun *)->executable_addr; + else + return -1; + case HTt_FILE: + return MSize(temph(CHashGeneric *)->user_data0); + case HTt_MODULE: + if (StrCmp(temph->str,OSMAIN_MODULE_NAME)) + return MSize(temph(CHashGeneric *)->user_data0); + else { + bfh=sys_boot_base-sizeof(CBinFile); + return bfh->file_size; + } + case HTt_WORD: + return StrLen(temph->str); + } + return -1; +} + +I64 HashEntrySize2(CHashSrcSym *temph) +{ + CDbgInfo *dbg; + I64 result=MSize2(temph); + if (!(temph->type&HTT_DICT_WORD)) + result+=MSize2(temph->str); + if (temph->type & HTG_SRC_SYM) { + result+=MSize2(temph->src_link); + result+=MSize2(temph->index); + result+=MSize2(temph->import_name); + result+=LinkedListSize(temph->list); + if (temph->type & (HTT_FUN | HTT_EXPORT_SYS_SYM)) { + result+=MSize2(temph->debug); + result+=MSize2(temph->indent); + } + if (temph->type & HTT_CLASS) + result+=MemberListSize(temph); + else if (temph->type & HTT_FUN) { + result+=MemberListSize(temph); + if (dbg=temph->debug) + //This should be $LK,"MSize","MN:MSize"$() but it would crash on static .BIN.Z file funs. + result+=dbg->body[dbg->max_line-dbg->min_line+1]-temph(CHashFun *)->executable_addr; + } else if (temph->type&HTT_DEFINE_STR) + result+=MSize2(temph(CHashDefineStr *)->data); + else if (temph->type & HTT_GLBL_VAR) { + result+=LinkedListSize(temph(CHashGlblVar *)->dim.next); + if (!(temph(CHashGlblVar *)->flags&GVAF_ALIAS)) + result+=MSize2(temph(CHashGlblVar *)->data_addr); + if (temph(CHashGlblVar *)->fun_ptr) + result+=HashEntrySize2(temph(CHashGlblVar *)->fun_ptr-temph(CHashGlblVar *)->fun_ptr->ptr_cnt); + } + } else if (temph->type & HTT_FILE) + result+=MSize2(temph(CHashGeneric *)->user_data0); + else if (temph->type & HTT_MODULE && + StrCmp(temph->str,OSMAIN_MODULE_NAME)) + result+=MSize2(temph(CHashGeneric *)->user_data0); + return result; +} + +I64 HashTableSize2(CHashTable *tempht) +{ + I64 i,result=0; + CHashSrcSym *temph; + if (!tempht) + return 0; + for (i=0;i<=tempht->mask;i++) { + temph=tempht->body[i]; + while (temph) { + result+=HashEntrySize2(temph); + temph=temph->next; + } + } + result+=MSize2(tempht->body); + result+=MSize2(tempht); + return result; +} diff --git a/SparrowOS/Compiler/Lex.CPP b/SparrowOS/Compiler/Lex.CPP new file mode 100644 index 0000000..cc15947 --- /dev/null +++ b/SparrowOS/Compiler/Lex.CPP @@ -0,0 +1,1699 @@ +U8 *CmpPmt(Bool dbl_semicolon=FALSE) +{ + I64 i; + U8 *result,*st; + for (i=MinI64(3,Fs->answers_displayed-1);i>=0;i--) { + if (Fs->answer_types[i]==IT_F64) + "ansf%d=%15.7g=%15e\n",i,Fs->answers[i],Fs->answers[i]; + else + "ans%d=0x%016X=%d\n",i,Fs->answers[i],Fs->answers[i]; + } + if (st=CurDir) { + "" st; + Free(st); + } + '>'; + st=MGetS(GETSF_SHIFT_ESC_EXIT); + if (dbl_semicolon) { + i=StrLen(st); + result=MAlloc(i+4); + MemCpy(result,st,i+1); + i--; + while (i>=0 && Bt(white_space_bitmap,result[i])) + i--; + i++; + if (i>0 && result[i-1]==';') + result[i++]=';'; //The Lex goes one beyond + result[i++]=13;//#define goes to + result[i++]=10; + result[i]=0; + } else + result=StrNew(st); + Free(st); + return result; +} + +CLex *LexNew(U8 *buf,I64 flags,U8 *filename=NULL) +{ + CLex *lx=MAlloc(sizeof(CLex)); + CLexFile *tempf=&lx->lfns[0]; + MemSet(lx,0,offset(CLex.end_of_zeroed_members)+sizeof(CLexFile)); + QueInit(lx); + lx->flags=flags; + lx->opts=1<expression_start_line_num=lx->last_line_num=1; + lx->pass_trace_mask=0b10001111101; + lx->hash_mask=HTG_ALL-HTT_IMPORT_SYS_SYM-HTT_ASM_KEYWORD; + lx->define_hash_table=lx->hash_table_list=lx->glbl_hash_table=lx->local_hash_table=Fs->hash_table; + if (flags&LF_KEEP_AT_SIGN) + lx->alpha_numeric_bitmap=alpha_numeric_no_at_bitmap; + else + lx->alpha_numeric_bitmap=alpha_numeric_bitmap; + lx->cur_lfn=tempf; + QueInit(&lx->next_stream_blk); + if (!filename) + tempf->name=StrNew(sys_temp_filename); + else + tempf->name=filename; + if (flags & LF_PROMPT) + buf=CAlloc(4); + tempf->buf=tempf->buf_ptr=tempf->line_start=lx->cur_buf_ptr=buf; + tempf->line_num=1; + return lx; +} + +U0 LexDel(CLex *lx) +{ + CLexFile *tempf=lx->cur_lfn; + CDoc *doc; + while (tempf!=&lx->lfns[0]) { + if (doc=tempf->doc) + DocDel(doc); + Free(tempf->buf); + Free(tempf->name); + tempf--; + } + Free(tempf->name); + if (!(lx->flags & LF_DONT_FREE_BUF)) + Free(tempf->buf); + Free(lx->ident); + QueVectU8Del(lx->indent_que_vect); + Free(lx->dollar); + Free(lx); +} + +I64 LexSize(CLex *lx) +{ + CLexFile *tempf=lx->cur_lfn; + CDoc *doc; + I64 result=0; + while (tempf!=&lx->lfns[0]) { + if (doc=tempf->doc) + result+=DocSize(doc); + result+=MSize2(tempf->buf); + result+=MSize2(tempf->name); + tempf--; + } + result+=MSize2(tempf->name); + if (!(lx->flags & LF_DONT_FREE_BUF)) + result+=MSize2(tempf->buf); + result+=MSize2(lx->ident); + result+=MSize2(lx); + return result; +} + +U0 SetSrcFileInfo(CLex *lx,CHashSrcSym *h) +{ + CLexFile *tempf=lx->cur_lfn; + h->src_link=MSPrintF("FL:%s,%d",tempf->name,tempf->line_num); + if (Bt(&lx->opts,OPTf_KEEP_PRIVATE)) + h->type|=HTF_PRIVATE; + if (lx->cur_index) + h->index=StrNew(lx->cur_index); + else + h->index=NULL; +} + +U0 LexPutToken(CLex *lx) +{ + '"'; + if (lx->token==TK_IDENT || lx->token==TK_STR) + "" lx->ident; + else if (lx->token==TK_INTEGER) + "INT:%X",lx->cur_i; + else if (lx->token==TK_U8) + "U8:%X",lx->cur_i; + else if (lx->token==TK_F64) + "FLOAT:%e",lx->cur_f; + else if (lx->token==CH_NEW_LINE) + ""; + else if (Bt(displayable_chars_bitmap,lx->token)) + '' lx->token; + else { + "T:%X",lx->token; + } + "\" "; +} + +U32 lex_zeros=0; + +U0 LexBackupLastChar(CLex *lx) +{ + CLexFile *tempf=lx->cur_lfn; + tempf->buf_ptr=lx->cur_buf_ptr; + if (lx->flags & LF_USE_LAST_U16) { + tempf->last_U16=lx->last_U16; + lx->flags&=~LF_USE_LAST_U16; + } else + tempf->last_U16=0; +} + +Bool LexDollar(CLex *lx,CDoc *doc,CDocEntry *doc_e) +{ + U8 *st; + if (lx->flags&LF_IN_QUOTES) { + Free(lx->dollar); + st=Doc2PlainText(doc,doc_e); + lx->dollar=MSPrintF("$$%Q$$",st); + lx->dollar_cnt=2; + Free(st); + return TRUE; + } else + return FALSE; +} + +I64 LexGetChar(CLex *lx) +{ + U8 *ptr,*src; + CLexFile *tempf,*tempf1; + Bool cont; + CDoc *doc; + CDocEntry *doc_e; + if (lx->flags & LF_USE_LAST_U16) { + lx->flags&=~LF_USE_LAST_U16; + goto lgc_done; + } + while (TRUE) { +lex_getchar_start: + if (!(src=lx->cur_buf_ptr++)) { + lx->cur_buf_ptr--; + goto lgc_here2; + } + nobound_switch (lx->last_U16=*src++) { + case 0: +lgc_here2: + tempf=lx->cur_lfn; + if (tempf->flags & LFSF_IS_DOC) { + doc=tempf->doc; + doc_e=tempf->cur_entry; + doc_e=doc_e->next; + while (doc_e!=doc) { + cont=FALSE; + tempf->cur_entry=doc_e; + nobound_switch (doc_e->type_u8) { + case DOCT_TEXT: + 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) && + LexDollar(lx,doc,doc_e) && *(src=lx->dollar)) { + tempf->line_num=doc_e->y+1; + tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=src; + } else if (*(src=doc_e->tag)) + tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=src; + else { + cont=TRUE; + doc_e=doc_e->next; + } + break; + case DOCT_NEW_LINE: + tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=&lex_zeros; + tempf->line_start=doc_e->next; + tempf->line_num=doc_e->y+2; //+1 because NEW_LINE is on previous line, +1 because doc y starts at zero + compiled_lines++; + if (tempf==lx->fun_lfn && tempf->line_num>lx->max_line) + lx->max_line=tempf->line_num; + if (lx->opts & OPTF_ECHO) + NewLine; + lx->last_U16=CH_NEW_LINE; + goto lgc_done; + case DOCT_TAB: + tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=&lex_zeros; + tempf->line_num=doc_e->y+1; + if (lx->opts & OPTF_ECHO) + '' CH_TAB; + lx->last_U16=CH_TAB; + goto lgc_done; + case DOCT_PAGE_BREAK: + tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=&lex_zeros; + tempf->line_num=doc_e->y+2; //TODO: should be a page down + if (lx->opts & OPTF_ECHO) + '' CH_FORM_FEED; + lx->last_U16=CH_FORM_FEED; + goto lgc_done; + case DOCT_INS_BINARY: + tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=&lex_zeros; + tempf->line_num=doc_e->y+1; + Free(lx->ident); + lx->ident=NULL; + lx->ident_len=0; + if (doc_e->bin_data) { + ptr=MAlloc(doc_e->bin_data->size); + if (doc_e->bin_data->data) + MemCpy(ptr,doc_e->bin_data->data,doc_e->bin_data->size); + lx->ident=ptr; + lx->ident_len=doc_e->bin_data->size; + } + lx->last_U16=TK_INS_BINARY; + goto lgc_done; + case DOCT_INS_BINARY_TYPE: + tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=&lex_zeros; + if (doc_e->bin_data) + lx->cur_i=doc_e->bin_data->type; + else + lx->cur_i=0; + tempf->line_num=doc_e->y+1; + lx->last_U16=TK_INS_BINARY_TYPE; + goto lgc_done; + case DOCT_INS_BINARY_SIZE: + tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=&lex_zeros; + if (doc_e->bin_data) + lx->cur_i=doc_e->bin_data->size; + else + lx->cur_i=0; + tempf->line_num=doc_e->y+1; + lx->last_U16=TK_INS_BINARY_SIZE; + goto lgc_done; + case DOCT_SHIFTED_Y: + if (LexDollar(lx,doc,doc_e) && *(src=lx->dollar)) { + tempf->line_num=doc_e->y+1; + tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=src; + } else { + tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=&lex_zeros; + tempf->line_num=doc_e->y+1; + if (doc_e->attr<0) { + lx->last_U16=TK_SUPERSCRIPT; + goto lgc_done; + } else if (doc_e->attr>0) { + lx->last_U16=TK_SUBSCRIPT; + goto lgc_done; + } else { + lx->last_U16=TK_NORMALSCRIPT; + goto lgc_done; + } + } + break; + case DOCT_CURSOR: + cont=TRUE; + doc_e=doc_e->next; + break; + case 0xFF: //nobound_switch + default: + if (LexDollar(lx,doc,doc_e) && *(src=lx->dollar)) { + tempf->line_num=doc_e->y+1; + tempf->buf=tempf->buf_ptr=lx->cur_buf_ptr=src; + } else { + cont=TRUE; + doc_e=doc_e->next; + } + } + if (!cont) break; + } + if (doc_e==doc) { + DocDel(doc); + tempf->doc=tempf->buf=NULL; + Free(tempf->name); + tempf->name=NULL; + goto lgc_here; + } + } else { +lgc_here: + tempf=lx->cur_lfn; + if (tempf!=&lx->lfns[0]) { + Free(tempf->name); + tempf->name=NULL; + Free(tempf->buf); + tempf->buf=NULL; + tempf1=tempf; + lx->cur_lfn=--tempf; + lx->cur_buf_ptr=tempf->buf_ptr; + if (lx->last_U16=tempf->last_U16) { + lx->flags&=~LF_USE_LAST_U16; + goto lgc_done; + } else + lx->flags&=~LF_USE_LAST_U16; + } else { + if (lx->flags & LF_PROMPT) { + Free(tempf->buf); + lx->cur_buf_ptr=tempf->line_start= + tempf->buf_ptr=tempf->buf=CmpPmt(TRUE); + } else { + lx->cur_buf_ptr=src-1; + lx->last_U16=TK_EOF; + goto lgc_done; + } + } + } + break; + case CH_CURSOR: + case CH_FORM_FEED: + goto lex_getchar_start; + case CH_NEW_LINE: + tempf=lx->cur_lfn; + if (tempf->flags & LFSF_IS_DOC) + goto lgc_done; + else { + tempf->line_num++; + compiled_lines++; + tempf->line_start=src; + if (tempf==lx->fun_lfn && tempf->line_num>lx->max_line) + lx->max_line=tempf->line_num; + } + case 0xFF: //nobound_switch + default: + goto lgc_done; + } + } +lgc_done: + if (lx->last_U16==CH_SHIFT_SPACE) + lx->last_U16=CH_SPACE; + if (lx->opts & OPTF_ECHO && + lx->last_U16<256 && Bt(printable_chars_bitmap,lx->last_U16)) + '' lx->last_U16; + return lx->last_U16; +} + +U0 LexSkipEol(CLex *lx) +{ + U8 ch; + do ch=$WW,0$LexGetChar(lx); + while (Bt(non_eol_chars_bitmap,ch)); +} + +U0 ExpressionDel(U8 *code) +{ + Free(code); +} + +U0 LexIncludeStr(CLex *lx,U8 *abs_fname, + U8 *src,Bool actual_file) +{ + CLexFile *tempf; + LexBackupLastChar(lx); + tempf=++lx->cur_lfn; + tempf->buf=src; + tempf->buf_ptr=src; + tempf->line_num=1; + tempf->line_start=src; + tempf->last_U16=0; + if (actual_file) { + tempf->name=StrNew(abs_fname); + tempf->flags=LFSF_IS_INCLUDED; + } else { + tempf->name=StrNew(sys_temp_filename); + tempf->flags=0; + } + lx->cur_buf_ptr=src; +} + +I64 doc_stop_btypes[(DOCT_NUM_TYPES+63)/64]= +{ +1<flags|=flags; + StrCpy(doc->filename.name,abs_fname); + src=FileRead(abs_fname,&size); + if (!src || !size) { + Free(src); + src=CAlloc(1); + size=0; + } + DocLoad(doc,src,size); + Free(src); + return doc; +} + +U0 LexIncludeDoc(CLex *lx,U8 *abs_fname,CDoc *_doc) +{ //If doc==null load + Bool is_null; + CDocEntry *doc_e; + CLexFile *tempf; + CDoc *doc; + LexBackupLastChar(lx); + tempf=++lx->cur_lfn; + tempf->line_start=&lex_zeros; + if (_doc) + doc=_doc; + else + doc=LexDocRead(abs_fname,DOCF_DBL_DOLLARS); + tempf->doc=doc; + doc_e=doc->root.next; + while (doc_e!=doc) { + if (Bt(doc_stop_btypes,doc_e->type_u8)) + break; + doc_e=doc_e->next; + } + if (doc_e!=doc) { + tempf->line_start=doc_e; + tempf->line_num=doc_e->y+1; + if (doc_e->type_u8==DOCT_TEXT) { + tempf->cur_entry=doc_e; + tempf->buf=doc_e->tag; + tempf->buf_ptr=doc_e->tag; + } else { + tempf->cur_entry=doc_e->last; //TODO might be problem at begining of file + tempf->buf=&lex_zeros; + tempf->buf_ptr=&lex_zeros; + } + is_null=FALSE; + } else + is_null=TRUE; + if (!abs_fname) + tempf->name=StrNew(sys_temp_filename); + else + tempf->name=StrNew(abs_fname); + if (is_null) { +// DocDel(lx); TODO + tempf->flags=LFSF_IS_INCLUDED; + tempf->buf=CAlloc(1); + tempf->buf_ptr=&lex_zeros; + tempf->line_num=1; + } else + tempf->flags=LFSF_IS_INCLUDED|LFSF_IS_DOC; + tempf->last_U16=0; + lx->cur_buf_ptr=tempf->buf_ptr; +} + +U0 LexPush(CLex *lx) +{ + CLexFile *tempf=lx->cur_lfn, + *tempf1=&lx->stk[lx->stk_ptr++]; + if (lx->stk_ptr>=LFN_STK_CNT) + LexExcept(lx,"ST_LEX_STK_OVERFLOW"); + LexBackupLastChar(lx); + if (tempf->last_U16) + lx->flags|=LF_USE_LAST_U16; + MemCpy(tempf1,tempf,sizeof(CLexFile)); +} + +U0 LexPop(CLex *lx) +{ + CLexFile *tempf=lx->cur_lfn, + *tempf1=&lx->stk[--lx->stk_ptr]; + lx->cur_buf_ptr=tempf1->buf_ptr; + if (lx->last_U16=tempf1->last_U16) + lx->flags|=LF_USE_LAST_U16; + else + lx->flags&=~LF_USE_LAST_U16; + MemCpy(tempf,tempf1,sizeof(CLexFile)); +} + +I64 MemberMetaData(U8 *st,CMemberList *tempm) +{ + CMemberListMeta *meta=tempm->meta; + while (meta) { + if (!StrCmp(meta->str,st)) + return meta->user_data; + meta=meta->next; + } + return 0; +} + +CMemberListMeta *MemberMetaFind(U8 *st,CMemberList *tempm) +{ + CMemberListMeta *meta=tempm->meta; + while (meta) { + if (!StrCmp(meta->str,st)) + return meta; + meta=meta->next; + } + return NULL; +} + +CMemberList *MemberFind(U8 *st,CHashClass *tempc) +{ + I64 i; + CMemberList *tempm; + do { + tempm=tempc->member_list; + while (tempm) { + if (!(i=StrCmp(tempm->str,st))) { + tempm->use_cnt++; + return tempm; + } + if (i<=0) + tempm=tempm->left; + else + tempm=tempm->right; + } + } while (tempc=tempc->base_class); + return NULL; +} + +CMemberList *MemberFind2(CHashClass *pattern,CHashClass *tempc) +{//just offset<0 + CMemberList *tempm; + tempm=tempc->member_list2; + while (tempm) { + if (pattern==tempm->member_class2) + return tempm; + if (patternmember_class2) + tempm=tempm->left2; + else + tempm=tempm->right2; + } + return NULL; +} + +U0 MemberAdd(CLex *lx,CMemberList *tempm,CHashClass *tempc,I64 mode) +{ + U8 *st=tempm->str; + CMemberList **tempm1,*tempm2; + CHashClass *tempc2; + if (MemberFind(st,tempc) && StrCmp(st,"pad") && StrCmp(st,"reserved") && StrCmp(st,"_anon_")) + LexExcept(lx,"ST_DUP_MEMBER"); + if (mode==PRS1B_LOCAL_VAR) { + tempc2=tempm->member_class-tempm->member_class->ptr_cnt; + if (Bt(&lx->opts,OPTf_WARN_DUP_TYPES) && MemberFind2(tempc2,tempc)) + LexPutWarn(lx,"ST_DUP_TYPE"); + } else + tempc2=NULL; + tempm->member_class2=tempc2; + + tempm1=&tempc->member_list; + while (tempm2=*tempm1) { + if (StrCmp(tempm2->str,st)<=0) + tempm1=&tempm2->left; + else + tempm1=&tempm2->right; + } + *tempm1=tempm; + + if (tempc2) { + tempm1=&tempc->member_list2; + while (tempm2=*tempm1) { + if (tempc2member_class2) + tempm1=&tempm2->left2; + else if (tempc2>tempm2->member_class2) + tempm1=&tempm2->right2; + else { + tempm1=NULL; + break; + } + } + if (tempm1) + *tempm1=tempm; + } + + tempm->left=NULL; + tempm->right=NULL; + tempm->left2=NULL; + tempm->right2=NULL; + tempm2=tempc->last_in_member_list; + tempm2->next=tempc->last_in_member_list=tempm; +} + +U0 MemberListDel(CHashClass *tempc) +{ + CMemberList *tempm,*tempm1; + CMemberListMeta *temp_meta,*temp_meta1; + tempm=tempc->member_list; + while (tempm) { + tempm1=tempm->next; + Free(tempm->str); + LinkedListDel(tempm->dim.next); + if (tempm->flags & MLF_STR_DFT_AVAILABLE) + Free(tempm->dft_val); + if (tempm->flags & MLF_FUN) + HashDel(tempm->fun_ptr-tempm->fun_ptr->ptr_cnt); + temp_meta=tempm->meta; + while (temp_meta) { + temp_meta1=temp_meta->next; + Free(temp_meta->str); + if (temp_meta->flags&MLMF_IS_STR) + Free(temp_meta->user_data); + Free(temp_meta); + temp_meta=temp_meta1; + } + Free(tempm); + tempm=tempm1; + } + tempc->size=0; + tempc->last_in_member_list=&tempc->member_list; + tempc->member_list=NULL; + tempc->member_list2=NULL; + tempc->member_cnt=0; + if (tempc->type&HTT_FUN) + tempc(CHashFun *)->arg_cnt=0; +} + +#assert !offset(CMemberList.next) +#assert !offset(CMemberListMeta.next) + +CMemberList *MemberListCopy(CHashClass *tempc) +{ + CMemberList *result=NULL,*tempm,*tempm1=&result; + CMemberListMeta *temp_meta,*temp_meta1; + tempm=tempc->member_list; + while (tempm) { + tempm1=tempm1->next=MAllocIdentical(tempm); + tempm1->str=MAllocIdentical(tempm->str); + tempm1->dim.next=LinkedListCopy(tempm->dim.next); + if (tempm->flags & MLF_STR_DFT_AVAILABLE) + tempm1->dft_val=MAllocIdentical(tempm->dft_val); + if (tempm->flags & MLF_FUN) + tempm1->fun_ptr=HashEntryImportCopy(tempm->fun_ptr-tempm->fun_ptr->ptr_cnt)(CHashFun *)+tempm->fun_ptr->ptr_cnt; + + temp_meta=tempm->meta; + temp_meta1=&tempm1->meta; + while (temp_meta) { + temp_meta1=temp_meta1->next=MAllocIdentical(temp_meta); + temp_meta1->str=MAllocIdentical(temp_meta->str); + if (temp_meta->flags&MLMF_IS_STR) + temp_meta1->user_data=MAllocIdentical(temp_meta->user_data); + temp_meta=temp_meta->next; + } + tempm=tempm->next; + } + return result; +} + +I64 MemberListSize(CHashClass *tempc) +{ + CMemberList *tempm; + CMemberListMeta *temp_meta; + I64 result=0; + tempm=tempc->member_list; + while (tempm) { + result+=MSize2(tempm->str); + result+=LinkedListSize(tempm->dim.next); + if (tempm->flags & MLF_STR_DFT_AVAILABLE) + result+=MSize2(tempm->dft_val); + if (tempm->flags & MLF_FUN) + result+=HashEntrySize2(tempm->fun_ptr-tempm->fun_ptr->ptr_cnt); + temp_meta=tempm->meta; + while (temp_meta) { + result+=MSize2(temp_meta->str); + if (temp_meta->flags&MLMF_IS_STR) + result+=MSize2(temp_meta->user_data); + result+=MSize2(temp_meta); + temp_meta=temp_meta->next; + } + result+=MSize2(tempm); + tempm=tempm->next; + } + return result; +} + +I64 LexInStr(CLex *lx, + U8 *buf,I64 size,Bool *done) +{ + I64 i=0,j,ch; + *done=TRUE; + while (iflags|=LF_USE_LAST_U16; + break; + case 'b': + case 'B': + j=0; + while (TRUE) { + ch=LexGetChar(lx); + if ('0'<=ch<='1') + j=j<<1+ch-'0'; + else + break; + } + buf[i++]=j; + lx->flags|=LF_USE_LAST_U16; + break; + case 'o': + case 'O': + j=0; + goto lis_octal; + case '0'...'7': + j=ch-'0'; +lis_octal: + while (TRUE) { + ch=LexGetChar(lx); + if ('0'<=ch<='7') + j=j<<3+ch-'0'; + else + break; + } + buf[i++]=j; + lx->flags|=LF_USE_LAST_U16; + break; + default: + lx->flags|=LF_USE_LAST_U16; + buf[i++]='\\'; + } + } else if (ch=='$$') { + buf[i++]='$$'; + if (lx->dollar_cnt) + lx->dollar_cnt--; + else if (LexGetChar(lx)!='$$') { + lx->dollar_cnt=1; + lx->flags|=LF_USE_LAST_U16; + } + } else + buf[i++]=ch; + } + *done=FALSE; + return i; +} + +I64 Lex(CLex *lx) +{ + I64 i,j,k,ch; + CHash *temph; + Bool str_done,neg_e; + U8 *fbuf,*buf2,*buf3,buf[LEX_MAX_IDENT]; + if (lx->cur_lfn==lx->fun_lfn && lx->indent_que_vect) { + i=lx->temp_indent_level; +// if (lx->flags&LF_INSIDE_EXPRESSION && +// lx->fun_lfn->line_num>lx->expression_start_line_num) +// i+=2; + QueVectU8Put(lx->indent_que_vect,lx->last_line_num,i); + } + lx->temp_indent_level=lx->indent_level; + lx->last_line_num=lx->cur_lfn->line_num; + while (TRUE) { +lex_cont: + nobound_switch (ch=LexGetChar(lx)) { + case 0: + return lx->token=TK_EOF; + case TK_SUPERSCRIPT: + ch='>'; + goto lex_ident; + case TK_SUBSCRIPT: + ch='<'; + goto lex_ident; + case TK_NORMALSCRIPT: + ch='='; + goto lex_ident; + case '@': + if (lx->flags&LF_KEEP_AT_SIGN) { + lx->token=ch; + goto lex_end; + } + case 'A'...'Z': + case 'a'...'z': + case '_': + case 128...255: +lex_ident: + i=0; + buf[i++]=ch; + while (TRUE) { + if (i>=LEX_MAX_IDENT-1) //1 for terminator + break; + else if (!(ch=LexGetChar(lx))) + break; + else if (Bt(lx->alpha_numeric_bitmap,ch)) + buf[i++]=ch; + else if (ch==TK_SUPERSCRIPT) + buf[i++]='>'; + else if (ch==TK_SUBSCRIPT) + buf[i++]='<'; + else if (ch==TK_NORMALSCRIPT) + buf[i++]='='; + else { + lx->flags|=LF_USE_LAST_U16; + break; + } + } + buf[i++]=0; + temph=NULL; + if (lx->local_var_list) + lx->local_var_entry=MemberFind(buf,lx->local_var_list); + else + lx->local_var_entry=NULL; + if (!lx->local_var_entry && lx->hash_table_list) + temph=HashFind(buf, + lx->hash_table_list,lx->hash_mask); + if (temph) + j=temph->type; + else + j=0; + if (j & HTT_DEFINE_STR && !(lx->flags & LF_NO_DEFINES)) { + LexIncludeStr(lx, + temph->str,StrNew(temph(CHashDefineStr *)->data),FALSE); + lx->cur_lfn->flags|=LFSF_IS_DEFINE; + } else { + lx->hash_entry=temph; + Free(lx->ident); + lx->ident=StrNew(buf); + lx->ident_len=i; + lx->token=TK_IDENT; + goto lex_end; + } + break; + case '0'...'9': + i=ch-'0'; + ch=ToUpper(LexGetChar(lx)); + if (ch=='X') { + while (TRUE) { + ch=ToUpper(LexGetChar(lx)); + if (Bt(hex_numeric_bitmap,ch)) { + if (ch<='9') + i=i<<4+ch-'0'; + else + i=i<<4+ch-'A'+10; + } else { + lx->cur_i=i; + lx->flags|=LF_USE_LAST_U16; + lx->token=TK_INTEGER; + goto lex_end; + } + } + } else if (ch=='B') { + while (TRUE) { + ch=LexGetChar(lx); + if (ch=='0') + i=i<<1; + else if (ch=='1') + i=i<<1+1; + else { + lx->cur_i=i; + lx->flags|=LF_USE_LAST_U16; + lx->token=TK_INTEGER; + goto lex_end; + } + } + } else if (ch=='O') { + while (TRUE) { + ch=LexGetChar(lx); + if ('0'<=ch<='7') + i=i<<3+ch-'0'; + else { + lx->cur_i=i; + lx->flags|=LF_USE_LAST_U16; + lx->token=TK_INTEGER; + goto lex_end; + } + } + } + while (TRUE) { + if (Bt(dec_numeric_bitmap,ch)) + i=i*10+ch-'0'; + else { + if (ch=='.' || ch=='e' || ch=='E') break; +lex_is_int: + lx->cur_i=i; + lx->flags|=LF_USE_LAST_U16; + lx->token=TK_INTEGER; + goto lex_end; + } + ch=LexGetChar(lx); + } + if (ch=='.') { + ch=LexGetChar(lx); + if (ch=='.') { + lx->flags|=LF_LAST_WAS_DOT; + goto lex_is_int; + } + } +lex_float_start: + k=0; + while (TRUE) { + if (Bt(dec_numeric_bitmap,ch)) { + i=i*10+ch-'0'; + k++; + } else { + if (ch=='e' || ch=='E') + break; + lx->cur_f=i*Pow10I64(-k); + lx->flags|=LF_USE_LAST_U16; + lx->token=TK_F64; + goto lex_end; + } + ch=LexGetChar(lx); + } + ch=LexGetChar(lx); + neg_e=FALSE; + if (ch=='-') { + neg_e=TRUE; + ch=LexGetChar(lx); + } + j=0; + while (TRUE) { + if (Bt(dec_numeric_bitmap,ch)) + j=j*10+ch-'0'; + else { + if (neg_e) + lx->cur_f=i*Pow10I64(-j-k); + else + lx->cur_f=i*Pow10I64(j-k); + lx->flags|=LF_USE_LAST_U16; + lx->token=TK_F64; + goto lex_end; + } + ch=LexGetChar(lx); + } + break; + case '"': + lx->flags|=LF_IN_QUOTES; + buf2=NULL; + i=0; + do { + j=LexInStr(lx,buf,LEX_MAX_IDENT,&str_done); + buf3=MAlloc(i+j); + if (buf2) { + MemCpy(buf3,buf2,i); + Free(buf2); + buf2=buf3; + MemCpy(buf2+i,buf,j); + } else { + buf2=buf3; + MemCpy(buf2,buf,j); + } + i+=j; + } while (!str_done); + Free(lx->ident); + lx->ident=MAlloc(i); + MemCpy(lx->ident,buf2,i); + Free(buf2); + lx->ident_len=i; + lx->flags&=~LF_IN_QUOTES; + lx->token=TK_STR; + goto lex_end; + case '\'': + if (!(ch=LexGetChar(lx))) + k='\''; + else { + k=0; + if (ch!='\'') + for (j=0;j<8;j++) { + if (ch=='\\') { + switch (ch=LexGetChar(lx)) { + case 'n': + k.u8[j]=CH_NEW_LINE; + break; + case 'r': + k.u8[j]=CH_CARRIAGE_RETURN; + break; + case '"': + k.u8[j]='"'; + break; + case '\'': + k.u8[j]='\''; + break; + case '\`': + k.u8[j]='\`'; + break; + case '\\': + k.u8[j]='\\'; + break; + case 't': + k.u8[j]=CH_TAB; + break; + case 'x': + case 'X': + i=0; + while (TRUE) { + ch=ToUpper(LexGetChar(lx)); + if (Bt(hex_numeric_bitmap,ch)) { + if (ch<='9') + i=i<<4+ch-'0'; + else + i=i<<4+ch-'A'+10; + } else + break; + } + k.u8[j]=i; + lx->flags|=LF_USE_LAST_U16; + break; + case 'b': + case 'B': + i=0; + while (TRUE) { + ch=LexGetChar(lx); + if ('0'<=ch<='1') + i=i<<1+ch-'0'; + else + break; + } + k.u8[j]=i; + lx->flags|=LF_USE_LAST_U16; + break; + case 'o': + case 'O': + i=0; + goto lex_octal; + case '0'...'7': + i=ch-'0'; +lex_octal: + while (TRUE) { + ch=LexGetChar(lx); + if ('0'<=ch<='7') + i=i<<3+ch-'0'; + else + break; + } + k.u8[j]=i; + lx->flags|=LF_USE_LAST_U16; + break; + default: + lx->flags|=LF_USE_LAST_U16; + k.u8[j]='\\'; + break; + } + } else if (ch=='$$') { + ch=LexGetChar(lx); + k.u8[j]='$$'; + if (ch!='$$') + lx->flags|=LF_USE_LAST_U16; + } else + k.u8[j]=ch; + if (!(ch=LexGetChar(lx)) || ch=='\'') + break; + } + } + lx->cur_i=k; + lx->token=TK_U8; + goto lex_end; + case '#': + if (lx->flags&LF_KEEP_NUM_SIGN) { + lx->token=ch; + goto lex_end; + } + if (Lex(lx)!=TK_IDENT) //skip '#' + goto lex_end; + if (!(temph=lx->hash_entry)) + goto lex_end; + if (!(temph->type & HTT_KEYWORD)) + goto lex_end; + switch (i=temph(CHashGeneric *)->user_data0) { + case KW_INCLUDE: + if (Lex(lx)!=TK_STR) + goto lex_end; + fbuf=DftExt(lx->ident,"CPP.Z"); + buf2=FileNameAbs(fbuf); + Free(fbuf); + if (Bt(&sys_run_level,RLf_DOC)) + LexIncludeDoc(lx,buf2,NULL); + else + LexIncludeStr(lx,buf2,TextFileRead(buf2),TRUE); + Free(buf2); + break; + case KW_DEFINE: + lx->flags|=LF_NO_DEFINES; + if (Lex(lx)==TK_IDENT) { + temph=CAlloc(sizeof(CHashDefineStr)); + temph->str=lx->ident; + lx->ident=0; + temph->type=HTT_DEFINE_STR; + SetSrcFileInfo(lx,temph); + + do ch=LexGetChar(lx); //skip space between define name and start + while (Bt(non_eol_white_space_bitmap,ch)); + + i=j=0; + buf2=NULL; + if (ch) { + do { + if (ch=='\\') { + if (ch=LexGetChar(lx)) { + if (ch!=CH_CARRIAGE_RETURN && ch!=CH_NEW_LINE) { + buf[j++]='\\'; + buf[j++]=ch; + } else if (ch==CH_CARRIAGE_RETURN && LexGetChar(lx)!=CH_NEW_LINE) + lx->flags|=LF_USE_LAST_U16; + } else { + buf[j++]='\\'; + break; + } + } else if (ch!=CH_NEW_LINE) + buf[j++]=ch; + else + break; + while (ch=LexGetChar(lx)) { + if (ch=='/') { + ch=LexGetChar(lx); + if (ch=='/') { + do ch=LexGetChar(lx); + while (Bt(non_eol_chars_bitmap,ch)); + break; + } else { + buf[j++]='/'; + lx->flags|=LF_USE_LAST_U16; + } + } else if (ch=='\\') + break; + else if (Bt(non_eol_chars_bitmap,ch)) + buf[j++]=ch; + else + break; + if (j>=LEX_MAX_IDENT-4) { //spare spot for '\\' next loop + buf[j++]=0; + buf3=MAlloc(i+j); + if (buf2) { + MemCpy(buf3,buf2,i); + Free(buf2); + buf2=buf3; + MemCpy(buf2+i,buf,j); + } else { + buf2=buf3; + MemCpy(buf2,buf,j); + } + i+=j-1; + j=0; + } + } + } while (ch=='\\'); + } + buf[j++]=0; + buf3=MAlloc(i+j); + if (buf2) { + MemCpy(buf3,buf2,i); + Free(buf2); + buf2=buf3; + MemCpy(buf2+i,buf,j); + } else { + buf2=buf3; + MemCpy(buf2,buf,j); + } + temph(CHashDefineStr *)->data=buf2; + temph(CHashDefineStr *)->cnt=-1; + if (IsReplaceSyms) + HashReplace(temph,lx->define_hash_table); + else + HashAdd(temph,lx->define_hash_table); + } + lx->flags&=~LF_NO_DEFINES; + break; + case KW_ELSE: + if (lx->flags & LF_IN_IF) { + lx->token=TK_ELSE; + goto lex_end; + } +lex_else: + j=1; + do { + if (ch=LexGetChar(lx)) { + if (ch=='#') { + if (!Lex(lx)) + goto lex_end; + i=PrsKeyWord(lx); + if (i==KW_IF || i==KW_IFDEF || i==KW_IFNDEF || i==KW_IFSTATIC || i==KW_IFNSTATIC) + j++; + else if (i==KW_ENDIF) + j--; + } + } else { + lx->token=TK_EOF; + goto lex_end; + } + } while (j); + break; + case KW_IF: + if (lx->flags & LF_IN_IF) { + lx->token=TK_IF; + goto lex_end; + } +lex_if: + lx->flags|=LF_IN_IF; + if (!Lex(lx)) { + lx->flags&=~LF_IN_IF; + goto lex_end; + } + if (Expression(lx)) { + lx->flags&=~LF_IN_IF; + switch (lx->token) { + case TK_IF: goto lex_if; + case TK_IFDEF: goto lex_ifdef; + case TK_IFNDEF: goto lex_ifndef; + case TK_IFSTATIC: goto lex_ifstatic; + case TK_IFNSTATIC: goto lex_ifnstatic; + case TK_ELSE: goto lex_else; + case TK_ENDIF: goto lex_cont; + default: goto lex_end; + } + } else { + lx->flags&=~LF_IN_IF; + if (lx->token!=TK_ENDIF && lx->token!=TK_ELSE) { + if (lx->token==TK_IF || lx->token==TK_IFDEF || lx->token==TK_IFNDEF|| lx->token==TK_IFSTATIC || lx->token==TK_IFNSTATIC) + j=2; + else + j=1; + do { + if (ch=LexGetChar(lx)) { + if (ch=='#') { + if (!Lex(lx)) + goto lex_end; + i=PrsKeyWord(lx); + if (i==KW_IF || i==KW_IFDEF || i==KW_IFNDEF || i==KW_IFSTATIC || i==KW_IFNSTATIC) + j++; + else if (i==KW_ENDIF) + j--; + else if (i==KW_ELSE && j==1) + break; + } + } else { + lx->token=TK_EOF; + goto lex_end; + } + } while (j); + } + } + break; + case KW_IFDEF: + if (lx->flags & LF_IN_IF) { + lx->token=TK_IFDEF; + goto lex_end; + } +lex_ifdef: + lx->flags|=LF_NO_DEFINES; + if (!Lex(lx)) { + lx->flags&=~LF_NO_DEFINES; + goto lex_end; + } + lx->flags&=~LF_NO_DEFINES; + if (lx->token!=TK_IDENT) + goto lex_end; + if (lx->hash_entry) + goto lex_cont; + j=1; + do { + if (ch=LexGetChar(lx)) { + if (ch=='#') { + if (!Lex(lx)) + goto lex_end; + i=PrsKeyWord(lx); + if (i==KW_IF || i==KW_IFDEF || i==KW_IFNDEF || i==KW_IFSTATIC || i==KW_IFNSTATIC) + j++; + else if (i==KW_ENDIF) + j--; + else if (i==KW_ELSE && j==1) + break; + } + } else { + lx->token=TK_EOF; + goto lex_end; + } + } while (j); + break; + case KW_IFNDEF: + if (lx->flags & LF_IN_IF) { + lx->token=TK_IFNDEF; + goto lex_end; + } +lex_ifndef: + lx->flags|=LF_NO_DEFINES; + if (!Lex(lx)) { + lx->flags&=~LF_NO_DEFINES; + goto lex_end; + } + lx->flags&=~LF_NO_DEFINES; + if (lx->token!=TK_IDENT) + goto lex_end; + if (!lx->hash_entry) + goto lex_cont; + j=1; + do { + if (ch=LexGetChar(lx)) { + if (ch=='#') { + if (!Lex(lx)) + goto lex_end; + i=PrsKeyWord(lx); + if (i==KW_IF || i==KW_IFDEF || i==KW_IFNDEF || i==KW_IFSTATIC || i==KW_IFNSTATIC) + j++; + else if (i==KW_ENDIF) + j--; + else if (i==KW_ELSE && j==1) + break; + } + } else { + lx->token=TK_EOF; + goto lex_end; + } + } while (j); + break; + case KW_IFSTATIC: + if (lx->flags & LF_IN_IF) { + lx->token=TK_IFSTATIC; + goto lex_end; + } +lex_ifstatic: + if (lx->flags & LF_STATIC_COMPILE) + goto lex_cont; + j=1; + do { + if (ch=LexGetChar(lx)) { + if (ch=='#') { + if (!Lex(lx)) + goto lex_end; + i=PrsKeyWord(lx); + if (i==KW_IF || i==KW_IFDEF || i==KW_IFNDEF || i==KW_IFSTATIC || i==KW_IFNSTATIC) + j++; + else if (i==KW_ENDIF) + j--; + else if (i==KW_ELSE && j==1) + break; + } + } else { + lx->token=TK_EOF; + goto lex_end; + } + } while (j); + break; + case KW_IFNSTATIC: + if (lx->flags & LF_IN_IF) { + lx->token=TK_IFSTATIC; + goto lex_end; + } +lex_ifnstatic: + if (!(lx->flags & LF_STATIC_COMPILE)) + goto lex_cont; + j=1; + do { + if (ch=LexGetChar(lx)) { + if (ch=='#') { + if (!Lex(lx)) + goto lex_end; + i=PrsKeyWord(lx); + if (i==KW_IF || i==KW_IFDEF || i==KW_IFNDEF || i==KW_IFSTATIC || i==KW_IFNSTATIC) + j++; + else if (i==KW_ENDIF) + j--; + else if (i==KW_ELSE && j==1) + break; + } + } else { + lx->token=TK_EOF; + goto lex_end; + } + } while (j); + break; + case KW_ENDIF: + if (lx->flags & LF_IN_IF) { + lx->token=TK_ENDIF; + goto lex_end; + } + break; + case KW_ASSERT: + if (!Lex(lx)) + goto lex_end; + if (!Expression(lx)) + LexPutWarn(lx,"ST_ASSERT_FAILED"); + goto lex_end; + case KW_EXE: + if (!Lex(lx)) + goto lex_end; + (*fp_prs_stream_blk)(lx); + goto lex_end; + case KW_HELP_INDEX: + if (Lex(lx)!=TK_STR) + goto lex_end; + Free(lx->cur_index); + lx->cur_index=lx->ident; + lx->ident=NULL; + break; + case KW_HELP_FILE: + if (Lex(lx)!=TK_STR) + goto lex_end; + temph=CAlloc(sizeof(CHashSrcSym)); + fbuf=DftExt(lx->ident,"TXT.Z"); + temph->str=FileNameAbs(fbuf); + Free(fbuf); + temph->type=HTT_HELP_FILE|HTF_PUBLIC; + SetSrcFileInfo(lx,temph); + if (IsReplaceSyms) + HashReplace(temph,lx->glbl_hash_table); + else + HashAdd(temph,lx->glbl_hash_table); + break; + } + break; + case CH_NEW_LINE: + if (!(lx->flags&LF_KEEP_NEW_LINES)) + break; //else fall through + case TK_INS_BINARY: + case TK_INS_BINARY_TYPE: + case TK_INS_BINARY_SIZE: + lx->token=ch; + goto lex_end; + case '.': + if (lx->flags&LF_KEEP_DOT) { + lx->token=ch; + goto lex_end; + } + if (lx->flags&LF_LAST_WAS_DOT) { + lx->flags&=~LF_LAST_WAS_DOT; + goto lex_dot_dot; + } + ch=LexGetChar(lx); + if ('0'<=ch<='9') { + i=0; + goto lex_float_start; + } else if (ch=='.') { +lex_dot_dot: + lx->token=TK_DOT_DOT; + if (LexGetChar(lx)=='.') + lx->token=TK_DOT_DOT_DOT; + else + lx->flags|=LF_USE_LAST_U16; + goto lex_end; + } + lx->flags|=LF_USE_LAST_U16; + lx->token='.'; + goto lex_end; + case '!': + case '$$'...'&': + case '('...'-': + case '/': + case ':'...'?': + case '[': + case ']'...'^': + case '{'...'~': + case '`': + if (!(i=dual_U16_tokens1[ch])) { + if (ch=='$$') { + ch=LexGetChar(lx); + if (ch=='$$') { + lx->token='$$'; + goto lex_end; + } else if (ch) { + do ch=LexGetChar(lx); + while (ch && ch!='$$'); + if (!ch) { + lx->token=TK_EOF; + goto lex_end; + } else + goto lex_cont; + } else { + lx->flags|=LF_USE_LAST_U16; + lx->token='$$'; + goto lex_end; + } + } else { + lx->token=ch; + goto lex_end; + } + } else { + j=LexGetChar(lx); + if (i.u16[0]==j) { + i>>=16; + if (!i) { // "/*" + j=1; + do { + if (!(ch=LexGetChar(lx))) + return lx->token=TK_EOF; +lex_check_comment: + if (ch=='*') { + if (!(ch=LexGetChar(lx))) + return lx->token=TK_EOF; + if (ch=='/') + j--; + else + goto lex_check_comment; + } else if (ch=='/') { + if (!(ch=LexGetChar(lx))) + return lx->token=TK_EOF; + if (ch=='*') + j++; + else + goto lex_check_comment; + } + } while (j); + goto lex_cont; + } else { + lx->token=i; + goto lex_end; + } + } + if (i=dual_U16_tokens2[ch]) { + if (i.u16[0]==j) { + i>>=16; + if (!i) { // "//" + LexSkipEol(lx); + if (lx->flags&LF_KEEP_NEW_LINES) { + lx->token=CH_NEW_LINE; + goto lex_end; + } else + goto lex_cont; + } else { + if (i==TK_SHL || i==TK_SHR) { + j=LexGetChar(lx); + if (j=='=') { + if (i==TK_SHL) + i=TK_SHL_EQUAL; + else + i=TK_SHR_EQUAL; + } else + lx->flags|=LF_USE_LAST_U16; + } + lx->token=i; + goto lex_end; + } + } + if (i=dual_U16_tokens3[ch]) { + if (i.u16[0]==j) { + lx->token=i.u16[1]; + goto lex_end; + } + } + } + lx->flags|=LF_USE_LAST_U16; + lx->token=ch; + goto lex_end; + } + case TK_NUM_TK: + default: + break; + } + } +lex_end: + LexGetChar(lx); //Do this so WAS_NEW_LINE is right + lx->flags|=LF_USE_LAST_U16; + if (Bt(&lx->opts,OPTf_LEX_TRACE)) + LexPutToken(lx); + return lx->token; +} + +U8 *LexExtStr(CLex *lx,I64 *_size=NULL) +{ //_size includes terminator + I64 len=lx->ident_len,len1,len2; + U8 *st=lx->ident,*st1,*st2; + lx->ident=NULL; + while (lx->token==TK_STR) { + st1=st; + len1=len; + if (Lex(lx)==TK_STR) { + len2=lx->ident_len; + st2=lx->ident; + lx->ident=NULL; + len=len1+len2-1; + st=MAlloc(len); + if (len1>1) + MemCpy(st,st1,len1-1); + MemCpy(st+len1-1,st2,len2); + Free(st1); + Free(st2); + } + } + if (_size) *_size=len; + return st; +} + +U8 *LexPutLine(CLex *lx,U8 *start) +{ + U8 *ptr,ch; + if (!start) return NULL; + if (lx->cur_lfn->flags&LFSF_IS_DOC) + return DocPutLine(start); + else { + ptr=start; + while (ch=*ptr++) { + if (ch==CH_NEW_LINE) { + if (*ptr==CH_CARRIAGE_RETURN) + ptr++; + break; + } else if (ch==CH_CARRIAGE_RETURN) { + if (*ptr==CH_NEW_LINE) + ptr++; + break; + } + '' ch; + } + if (!ch) ptr--; + NewLine; + return ptr; + } + return NULL; +} + +U0 LexPutPos(CLex *lx) +{ + LexPutToken(lx); + if (IsRaw) + "%s,%d ",lx->cur_lfn->name,lx->cur_lfn->line_num; + else { + PutFileLink(lx->cur_lfn->name,lx->cur_lfn->line_num); + AdamErr("%s,%d\n",lx->cur_lfn->name,lx->cur_lfn->line_num); + '' CH_SPACE; + } + LexPutLine(lx,lx->cur_lfn->line_start); +} + +U0 LexPutWarn(CLex *lx,U8 *name=NULL,CHashFun *fun_class=NULL) +{ + if (name) PrintFWarn("%S",name); + if (fun_class) { + "%S'%s'.\n","ST_IN_FUN",fun_class->str; + if (IsRaw) + "%s\n",fun_class->src_link; + else { + "$$LK-A,\"%s\"$$\n",fun_class->src_link; + AdamErr("%s\n",fun_class->src_link); + } + } else + LexPutPos(lx); + lx->warning_cnt++; +} + +U0 LexExcept(CLex *lx,U8 *name=NULL,CHashFun *fun_class=NULL) +{ + nounusedwarn fun_class; + if (!Bt(&sys_run_level,RLf_ADAM_SERVER)) { + Preempt(OFF); + Raw(ON); + } + if (name) PrintFErr("%S",name); + if (!IsRaw) + AdamErr("Task:%08X %S\n",Fs,name); + LexPutPos(lx); + lx->error_cnt++; + FlushMsgs; + if (!Bt(&sys_run_level,RLf_ADAM_SERVER)) + Dbg; + throw(EXCEPT_COMPILER,0); +} diff --git a/SparrowOS/Compiler/OpCodes.TXT b/SparrowOS/Compiler/OpCodes.TXT new file mode 100644 index 0000000..1fe3578 --- /dev/null +++ b/SparrowOS/Compiler/OpCodes.TXT @@ -0,0 +1,1330 @@ +/* + '!'= don't switch modes + '&'= default + '-'= NoRex + '='= Rex 0x48 only if 64-bit code segment + '~'= Rex 0x40 + '`'= Rex only R8-R15 + '^'= Rex xor-like + ':'= floating sti-like for disassembly + '$$'= ending zero (ENTER) + + $FG,4$Note:$FG$ SparrowOS uses nonstandard opcodes. + Asm is kind-of a bonus and I made changes + to make the assembler simpler. For opcodes + which can have different numbers of + args, I separated them out -- Like IMUL and IMUL2. + The assembler will not report certain invalid + forms. Get an Intel datasheet and learn + which forms are valid. + +*/ +R8 AL 0; +R8 CL 1; +R8 DL 2; +R8 BL 3; +R8 AH 4; +R8 CH 5; +R8 DH 6; +R8 BH 7; +R8 R8u8 8; +R8 R9u8 9; +R8 R10u8 10; +R8 R11u8 11; +R8 R12u8 12; +R8 R13u8 13; +R8 R14u8 14; +R8 R15u8 15; +R8 RSPu8 20; +R8 RBPu8 21; +R8 RSIu8 22; +R8 RDIu8 23; + +R16 AX 0; +R16 CX 1; +R16 DX 2; +R16 BX 3; +R16 SP 4; +R16 BP 5; +R16 SI 6; +R16 DI 7; +R16 R8u16 8; +R16 R9u16 9; +R16 R10u16 10; +R16 R11u16 11; +R16 R12u16 12; +R16 R13u16 13; +R16 R14u16 14; +R16 R15u16 15; + +R32 EAX 0; +R32 ECX 1; +R32 EDX 2; +R32 EBX 3; +R32 ESP 4; +R32 EBP 5; +R32 ESI 6; +R32 EDI 7; +R32 R8u32 8; +R32 R9u32 9; +R32 R10u32 10; +R32 R11u32 11; +R32 R12u32 12; +R32 R13u32 13; +R32 R14u32 14; +R32 R15u32 15; + +R64 RAX 0; +R64 RCX 1; +R64 RDX 2; +R64 RBX 3; +R64 RSP 4; +R64 RBP 5; +R64 RSI 6; +R64 RDI 7; +R64 R8 8; +R64 R9 9; +R64 R10 10; +R64 R11 11; +R64 R12 12; +R64 R13 13; +R64 R14 14; +R64 R15 15; +R64 R8u64 8; +R64 R9u64 9; +R64 R10u64 10; +R64 R11u64 11; +R64 R12u64 12; +R64 R13u64 13; +R64 R14u64 14; +R64 R15u64 15; + +SEG ES 0; +SEG CS 1; +SEG SS 2; +SEG DS 3; +SEG FS 4; +SEG GS 5; + +FSTK ST0 0; +FSTK ST1 1; +FSTK ST2 2; +FSTK ST3 3; +FSTK ST4 4; +FSTK ST5 5; +FSTK ST6 6; +FSTK ST7 7; + +MM MM0 0; +MM MM1 1; +MM MM2 2; +MM MM3 3; +MM MM4 4; +MM MM5 5; +MM MM6 6; +MM MM7 7; + +XMM XMM0 0; +XMM XMM1 1; +XMM XMM2 2; +XMM XMM3 3; +XMM XMM4 4; +XMM XMM5 5; +XMM XMM6 6; +XMM XMM7 7; + +KEYWORD include 0; +KEYWORD define 1; +KEYWORD union 2; +KEYWORD catch 3; +KEYWORD class 4; +KEYWORD struct 4; +KEYWORD try 5; +KEYWORD if 6; +KEYWORD else 7; +KEYWORD for 8; +KEYWORD while 9; +KEYWORD extern 10; +KEYWORD _extern 11; +KEYWORD return 12; +KEYWORD sizeof 13; +KEYWORD _intern 14; +KEYWORD do 15; +KEYWORD asm 16; +KEYWORD goto 17; +KEYWORD exe 18; +KEYWORD break 19; +KEYWORD switch 20; +KEYWORD nobound_switch 21; +KEYWORD case 22; +KEYWORD default 23; +KEYWORD public 24; +KEYWORD offset 25; +KEYWORD import 26; +KEYWORD _import 27; +KEYWORD ifdef 28; +KEYWORD ifndef 29; +KEYWORD ifstatic 30; +KEYWORD ifnstatic 31; +KEYWORD endif 32; +KEYWORD assert 33; +KEYWORD reg 34; +KEYWORD noreg 35; +KEYWORD nounusedwarn 36; +KEYWORD help_index 37; +KEYWORD help_file 38; +KEYWORD static 39; +KEYWORD interrupt 40; +KEYWORD lock 41; +KEYWORD defined 42; +KEYWORD argpop 43; +KEYWORD noargpop 44; + +ASM_KEYWORD ALIGN 64; +ASM_KEYWORD I0 65; +ASM_KEYWORD I8 66; +ASM_KEYWORD char 66; +ASM_KEYWORD I16 67; +ASM_KEYWORD short 67; +ASM_KEYWORD I32 68; +ASM_KEYWORD int 68; +ASM_KEYWORD I64 69; +ASM_KEYWORD long 69; +ASM_KEYWORD U0 70; +ASM_KEYWORD void 70; +ASM_KEYWORD U8 71; +ASM_KEYWORD U16 72; +ASM_KEYWORD U32 73; +ASM_KEYWORD U64 74; +ASM_KEYWORD F64 75; +ASM_KEYWORD double 75; +ASM_KEYWORD DU8 76; +ASM_KEYWORD DU16 77; +ASM_KEYWORD DU32 78; +ASM_KEYWORD DU64 79; +ASM_KEYWORD DUP 80; +ASM_KEYWORD USE16 81; +ASM_KEYWORD USE32 82; +ASM_KEYWORD USE64 83; +ASM_KEYWORD IMPORT 84; +ASM_KEYWORD LIST 85; +ASM_KEYWORD NOLIST 86; + +OPCODE PUSH + 0x0E, CS + 0x16, SS + 0x1E, DS + 0x06, ES + 0x0F 0xA0, FS + 0x0F 0xA8, GS + 0x6A, &IB IMM8 + 0x68, 16 !IW IMM16 + 0x68, 32 !ID IMM32 + 0x50,+R 16 R16 + 0x50,+R 32 R32 + 0x50,+R 32 ` R64 + 0xFF,/6 16 RM16 + 0xFF,/6 32 RM32 + 0xFF,/6 32 RM64; +OPCODE PUSHAW 0x60, 16; +OPCODE PUSHAD 0x60, 32; +OPCODE PUSHFW 0x9C, 16; +OPCODE PUSHFD 0x9C, 32; +OPCODE POP + 0x1F, DS + 0x07, ES + 0x17, SS + 0x0F 0xA1, FS + 0x0F 0xA9, GS + 0x58,+R 16 R16 + 0x58,+R 32 R32 + 0x58,+R 32 ` R64 + 0x8F,/0 16 RM16 + 0x8F,/0 32 RM32 + 0x8F,/0 32 RM64; +OPCODE POPAW 0x61, 16; +OPCODE POPAD 0x61, 32; +OPCODE POPFW 0x9D, 16; +OPCODE POPFD 0x9D, 32; +OPCODE MOV +// 0xA0, AL MOFFS8 + 0xA1, 16 AX MOFFS16 + 0xA1, 32 EAX MOFFS32 +// 0xA2, MOFFS8 AL + 0xA3, 16 MOFFS16 AX + 0xA3, 32 MOFFS32 EAX + 0x8A,/R R8 RM8 + 0x8B,/R 16 R16 RM16 + 0x8B,/R 32 R32 RM32 + 0x8B,/R 32 R64 RM64 + 0x88,/R RM8 R8 + 0x89,/R 16 RM16 R16 + 0x89,/R 32 RM32 R32 + 0x89,/R 32 RM64 R64 + 0x8C,/R 32 RM16 SREG + 0x8E,/R 32 SREG RM16 + 0xB0,+R R8 UIMM8 + 0xB8,+R 16 R16 UIMM16 + 0xB8,+R 32 R32 UIMM32 + 0xB8,+R 32 R64 UIMM64 + 0xC6, RM8 UIMM8 + 0xC7, 16 RM16 UIMM16 + 0xC7, 32 RM32 UIMM32 + 0xC7, 32 RM64 IMM32; + +OPCODE ADC + 0x14, IB AL UIMM8 + 0x15, 16 IW AX UIMM16 + 0x15, 32 ID EAX UIMM32 + 0x80,/2 IB RM8 IMM8 + 0x83,/2 16 IB RM16 IMM8 + 0x83,/2 32 IB RM32 IMM8 + 0x83,/2 32 IB RM64 IMM8 + 0x81,/2 16 IW RM16 IMM16 + 0x81,/2 32 ID RM32 IMM32 + 0x81,/2 32 ID RM64 IMM32 + 0x12,/R R8 RM8 + 0x13,/R 16 R16 RM16 + 0x13,/R 32 R32 RM32 + 0x13,/R 32 R64 RM64 + 0x10,/R RM8 R8 + 0x11,/R 16 RM16 R16 + 0x11,/R 32 RM32 R32 + 0x11,/R 32 RM64 R64; +OPCODE ADD + 0x04, IB AL UIMM8 + 0x05, 16 IW AX UIMM16 + 0x05, 32 ID EAX UIMM32 + 0x80,/0 IB RM8 UIMM8 + 0x83,/0 16 IB RM16 IMM8 + 0x83,/0 32 IB RM32 IMM8 + 0x83,/0 32 IB RM64 IMM8 + 0x81,/0 16 IW RM16 IMM16 + 0x81,/0 32 ID RM32 IMM32 + 0x81,/0 32 ID RM64 IMM32 + 0x02,/R R8 RM8 + 0x03,/R 16 R16 RM16 + 0x03,/R 32 R32 RM32 + 0x03,/R 32 R64 RM64 + 0x00,/R RM8 R8 + 0x01,/R 16 RM16 R16 + 0x01,/R 32 RM32 R32 + 0x01,/R 32 RM64 R64; +OPCODE AND + 0x24, IB AL UIMM8 + 0x25, 16 IW AX UIMM16 + 0x25, 32 ID EAX UIMM32 + 0x80,/4 IB RM8 UIMM8 + 0x83,/4 16 IB RM16 IMM8 + 0x83,/4 32 IB RM32 IMM8 + 0x83,/4 32 IB RM64 IMM8 + 0x81,/4 16 IW RM16 IMM16 + 0x81,/4 32 ID RM32 IMM32 + 0x81,/4 32 ID RM64 IMM32 + 0x22,/R R8 RM8 + 0x23,/R 16 R16 RM16 + 0x23,/R 32 R32 RM32 + 0x23,/R 32 R64 RM64 + 0x20,/R RM8 R8 + 0x21,/R 16 RM16 R16 + 0x21,/R 32 RM32 R32 + 0x21,/R 32 RM64 R64; +OPCODE CMP + 0x3C, IB AL UIMM8 + 0x3D, 16 IW AX UIMM16 + 0x3D, 32 ID EAX UIMM32 + 0x80,/7 IB RM8 UIMM8 + 0x83,/7 16 IB RM16 IMM8 + 0x83,/7 32 IB RM32 IMM8 + 0x83,/7 32 IB RM64 IMM8 + 0x81,/7 16 IW RM16 IMM16 + 0x81,/7 32 ID RM32 IMM32 + 0x81,/7 32 ID RM64 IMM32 + 0x3A,/R R8 RM8 + 0x3B,/R 16 R16 RM16 //ERROR? + 0x3B,/R 32 R32 RM32 + 0x3B,/R 32 R64 RM64 + 0x38,/R RM8 R8 + 0x39,/R 16 RM16 R16 + 0x39,/R 32 RM32 R32 + 0x39,/R 32 RM64 R64; +OPCODE OR + 0x0C, IB AL UIMM8 + 0x0D, 16 IW AX UIMM16 + 0x0D, 32 ID EAX UIMM32 + 0x80,/1 IB RM8 UIMM8 + 0x83,/1 16 IB RM16 IMM8 + 0x83,/1 32 IB RM32 IMM8 + 0x83,/1 32 IB RM64 IMM8 + 0x81,/1 16 IW RM16 IMM16 + 0x81,/1 32 ID RM32 IMM32 + 0x81,/1 32 ID RM64 IMM32 + 0x0A,/R R8 RM8 + 0x0B,/R 16 R16 RM16 + 0x0B,/R 32 R32 RM32 + 0x0B,/R 32 R64 RM64 + 0x08,/R RM8 R8 + 0x09,/R 16 RM16 R16 + 0x09,/R 32 RM32 R32 + 0x09,/R 32 RM64 R64; +OPCODE SBB + 0x1C, IB AL UIMM8 + 0x1D, 16 IW AX UIMM16 + 0x1D, 32 ID EAX UIMM32 + 0x80,/3 IB RM8 UIMM8 + 0x83,/3 16 IB RM16 IMM8 + 0x83,/3 32 IB RM32 IMM8 + 0x83,/3 32 IB RM64 IMM8 + 0x81,/3 16 IW RM16 IMM16 + 0x81,/3 32 ID RM32 IMM32 + 0x81,/3 32 ID RM64 IMM32 + 0x1A,/R R8 RM8 + 0x1B,/R 16 R16 RM16 + 0x1B,/R 32 R32 RM32 + 0x1B,/R 32 R64 RM64 + 0x18,/R RM8 R8 + 0x19,/R 16 RM16 R16 + 0x19,/R 32 RM32 R32 + 0x19,/R 32 RM64 R64; +OPCODE SUB + 0x2C, IB AL UIMM8 + 0x2D, 16 IW AX UIMM16 + 0x2D, 32 ID EAX UIMM32 + 0x80,/5 IB RM8 UIMM8 + 0x83,/5 16 IB RM16 IMM8 + 0x83,/5 32 IB RM32 IMM8 + 0x83,/5 32 IB RM64 IMM8 + 0x81,/5 16 IW RM16 IMM16 + 0x81,/5 32 ID RM32 IMM32 + 0x81,/5 32 ID RM64 IMM32 + 0x2A,/R R8 RM8 + 0x2B,/R 16 R16 RM16 + 0x2B,/R 32 R32 RM32 + 0x2B,/R 32 R64 RM64 + 0x28,/R RM8 R8 + 0x29,/R 16 RM16 R16 + 0x29,/R 32 RM32 R32 + 0x29,/R 32 RM64 R64; +OPCODE TEST + 0xA8, IB AL UIMM8 + 0xA9, 16 IW AX UIMM16 + 0xA9, 32 ID EAX UIMM32 + 0xF6,/0 IB RM8 UIMM8 + 0xF7,/0 16 IW RM16 IMM16 + 0xF7,/0 32 ID RM32 IMM32 + 0xF7,/0 32 ID RM64 IMM32 + 0x84,/R RM8 R8 + 0x85,/R 16 RM16 R16 + 0x85,/R 32 RM32 R32 + 0x85,/R 32 RM64 R64; +OPCODE NOP 0x90; +OPCODE XCHG + 0x90,+R 16 R16 AX + 0x90,+R 16 AX R16 + 0x90,+R 32 R32 EAX + 0x90,+R 32 EAX R32 + 0x90,+R 32 R64 RAX + 0x90,+R 32 RAX R64 + 0x86,/R R8 RM8 + 0x87,/R 16 R16 RM16 + 0x87,/R 32 R32 RM32 + 0x87,/R 32 R64 RM64 + 0x86,/R RM8 R8 + 0x87,/R 16 RM16 R16 + 0x87,/R 32 RM32 R32 + 0x87,/R 32 RM64 R64; +OPCODE XOR + 0x34, IB AL UIMM8 + 0x35, 16 IW AX UIMM16 + 0x35, 32 ID EAX UIMM32 + 0x80,/6 IB RM8 UIMM8 + 0x83,/6 16 IB RM16 IMM8 + 0x83,/6 32 IB RM32 IMM8 + 0x83,/6 32 IB RM64 IMM8 + 0x81,/6 16 IW RM16 IMM16 + 0x81,/6 32 ID RM32 IMM32 + 0x81,/6 32 ID RM64 IMM32 + 0x32,/R R8 RM8 + 0x33,/R 16 R16 RM16 + 0x33,/R 32 R32 RM32 + 0x33,/R 32 ^ R64 RM64 + 0x30,/R RM8 R8 + 0x31,/R 16 RM16 R16 + 0x31,/R 32 RM32 R32 + 0x31,/R 32 ^ RM64 R64; + +OPCODE CMOVA + 0x0F 0x47,/R 16 R16 RM16 + 0x0F 0x47,/R 32 R32 RM32 + 0x0F 0x47,/R 32 R64 RM64; +OPCODE CMOVAE + 0x0F 0x43,/R 16 R16 RM16 + 0x0F 0x43,/R 32 R32 RM32 + 0x0F 0x43,/R 32 R64 RM64; +OPCODE CMOVB + 0x0F 0x42,/R 16 R16 RM16 + 0x0F 0x42,/R 32 R32 RM32 + 0x0F 0x42,/R 32 R64 RM64; +OPCODE CMOVBE + 0x0F 0x46,/R 16 R16 RM16 + 0x0F 0x46,/R 32 R32 RM32 + 0x0F 0x46,/R 32 R64 RM64; +OPCODE CMOVC + 0x0F 0x42,/R 16 R16 RM16 + 0x0F 0x42,/R 32 R32 RM32 + 0x0F 0x42,/R 32 R64 RM64; +OPCODE CMOVE + 0x0F 0x44,/R 16 R16 RM16 + 0x0F 0x44,/R 32 R32 RM32 + 0x0F 0x44,/R 32 R64 RM64; +OPCODE CMOVG + 0x0F 0x4F,/R 16 R16 RM16 + 0x0F 0x4F,/R 32 R32 RM32 + 0x0F 0x4F,/R 32 R64 RM64; +OPCODE CMOVGE + 0x0F 0x4D,/R 16 R16 RM16 + 0x0F 0x4D,/R 32 R32 RM32 + 0x0F 0x4D,/R 32 R64 RM64; +OPCODE CMOVL + 0x0F 0x4C,/R 16 R16 RM16 + 0x0F 0x4C,/R 32 R32 RM32 + 0x0F 0x4C,/R 32 R64 RM64; +OPCODE CMOVLE + 0x0F 0x4E,/R 16 R16 RM16 + 0x0F 0x4E,/R 32 R32 RM32 + 0x0F 0x4E,/R 32 R64 RM64; +OPCODE CMOVNA + 0x0F 0x46,/R 16 R16 RM16 + 0x0F 0x46,/R 32 R32 RM32 + 0x0F 0x46,/R 32 R64 RM64; +OPCODE CMOVNAE + 0x0F 0x42,/R 16 R16 RM16 + 0x0F 0x42,/R 32 R32 RM32 + 0x0F 0x42,/R 32 R64 RM64; +OPCODE CMOVNB + 0x0F 0x43,/R 16 R16 RM16 + 0x0F 0x43,/R 32 R32 RM32 + 0x0F 0x43,/R 32 R64 RM64; +OPCODE CMOVNBE + 0x0F 0x47,/R 16 R16 RM16 + 0x0F 0x47,/R 32 R32 RM32 + 0x0F 0x47,/R 32 R64 RM64; +OPCODE CMOVNC + 0x0F 0x43,/R 16 R16 RM16 + 0x0F 0x43,/R 32 R32 RM32 + 0x0F 0x43,/R 32 R64 RM64; +OPCODE CMOVNE + 0x0F 0x45,/R 16 R16 RM16 + 0x0F 0x45,/R 32 R32 RM32 + 0x0F 0x45,/R 32 R64 RM64; +OPCODE CMOVNG + 0x0F 0x4E,/R 16 R16 RM16 + 0x0F 0x4E,/R 32 R32 RM32 + 0x0F 0x4E,/R 32 R64 RM64; +OPCODE CMOVNGE + 0x0F 0x4C,/R 16 R16 RM16 + 0x0F 0x4C,/R 32 R32 RM32 + 0x0F 0x4C,/R 32 R64 RM64; +OPCODE CMOVNL + 0x0F 0x4D,/R 16 R16 RM16 + 0x0F 0x4D,/R 32 R32 RM32 + 0x0F 0x4D,/R 32 R64 RM64; +OPCODE CMOVNLE + 0x0F 0x4F,/R 16 R16 RM16 + 0x0F 0x4F,/R 32 R32 RM32 + 0x0F 0x4F,/R 32 R64 RM64; +OPCODE CMOVNO + 0x0F 0x41,/R 16 R16 RM16 + 0x0F 0x41,/R 32 R32 RM32 + 0x0F 0x41,/R 32 R64 RM64; +OPCODE CMOVNP + 0x0F 0x4B,/R 16 R16 RM16 + 0x0F 0x4B,/R 32 R32 RM32 + 0x0F 0x4B,/R 32 R64 RM64; +OPCODE CMOVNS + 0x0F 0x49,/R 16 R16 RM16 + 0x0F 0x49,/R 32 R32 RM32 + 0x0F 0x49,/R 32 R64 RM64; +OPCODE CMOVNZ + 0x0F 0x45,/R 16 R16 RM16 + 0x0F 0x45,/R 32 R32 RM32 + 0x0F 0x45,/R 32 R64 RM64; +OPCODE CMOVO + 0x0F 0x40,/R 16 R16 RM16 + 0x0F 0x40,/R 32 R32 RM32 + 0x0F 0x40,/R 32 R64 RM64; +OPCODE CMOVP + 0x0F 0x4A,/R 16 R16 RM16 + 0x0F 0x4A,/R 32 R32 RM32 + 0x0F 0x4A,/R 32 R64 RM64; +OPCODE CMOVPE + 0x0F 0x4A,/R 16 R16 RM16 + 0x0F 0x4A,/R 32 R32 RM32 + 0x0F 0x4A,/R 32 R64 RM64; +OPCODE CMOVPO + 0x0F 0x4B,/R 16 R16 RM16 + 0x0F 0x4B,/R 32 R32 RM32 + 0x0F 0x4B,/R 32 R64 RM64; +OPCODE CMOVS + 0x0F 0x48,/R 16 R16 RM16 + 0x0F 0x48,/R 32 R32 RM32 + 0x0F 0x48,/R 32 R64 RM64; +OPCODE CMOVZ + 0x0F 0x44,/R 16 R16 RM16 + 0x0F 0x44,/R 32 R32 RM32 + 0x0F 0x44,/R 32 R64 RM64; + +OPCODE CALL + 0xE8, 16 !&CW REL16 + 0xFF,/2 16 ! RM16 + 0xE8, 32 !&CD REL32 + 0xFF,/2 32 ! RM32 + 0xFF,/2 32 !` RM64 +// 0x9A, CD PTR1616 +// 0xFF,/3 16 M1616 +// 0x9A, 16 CP PTR1632 +// 0x9A, 32 CP PTR3232 +// 0xFF,/3 32 M1632 +; + +OPCODE JMP + 0xEB, &CB REL8 + 0xE9, 16 !CW REL16 + 0xE9, 32 !CD REL32 + 0xFF,/4 16 ! RM16 + 0xFF,/4 32 ! RM32 + 0xFF,/4 32 ! RM64; +OPCODE JA + 0x77, &CB REL8 + 0x0F 0x87, 16 !CW REL16 + 0x0F 0x87, 32 !CD REL32; +OPCODE JAE + 0x73, &CB REL8 + 0x0F 0x83, 16 !CW REL16 + 0x0F 0x83, 32 !CD REL32; +OPCODE JB + 0x72, &CB REL8 + 0x0F 0x82, 16 !CW REL16 + 0x0F 0x82, 32 !CD REL32; +OPCODE JBE + 0x76, &CB REL8 + 0x0F 0x86, 16 !CW REL16 + 0x0F 0x86, 32 !CD REL32; +OPCODE JC + 0x72, &CB REL8 + 0x0F 0x82, 16 !CW REL16 + 0x0F 0x82, 32 !CD REL32; +OPCODE JCXZ + 0xE3, CB REL8; +OPCODE JECXZ + 0xE3, CB REL8; +OPCODE JRCXZ + 0xE3, CB REL8; +OPCODE JE + 0x74, &CB REL8 + 0x0F 0x84, 16 !CW REL16 + 0x0F 0x84, 32 !CD REL32; +OPCODE JG + 0x7F, &CB REL8 + 0x0F 0x8F, 16 !CW REL16 + 0x0F 0x8F, 32 !CD REL32; +OPCODE JGE + 0x7D, &CB REL8 + 0x0F 0x8D, 16 !CW REL16 + 0x0F 0x8D, 32 !CD REL32; +OPCODE JL + 0x7C, &CB REL8 + 0x0F 0x8C, 16 !CW REL16 + 0x0F 0x8C, 32 !CD REL32; +OPCODE JLE + 0x7E, &CB REL8 + 0x0F 0x8E, 16 !CW REL16 + 0x0F 0x8E, 32 !CD REL32; +OPCODE JNA + 0x76, &CB REL8 + 0x0F 0x86, 16 !CW REL16 + 0x0F 0x86, 32 !CD REL32; +OPCODE JNAE + 0x72, &CB REL8 + 0x0F 0x82, 16 !CW REL16 + 0x0F 0x82, 32 !CD REL32; +OPCODE JNB + 0x73, &CB REL8 + 0x0F 0x83, 16 !CW REL16 + 0x0F 0x83, 32 !CD REL32; +OPCODE JNBE + 0x77, &CB REL8 + 0x0F 0x87, 16 !CW REL16 + 0x0F 0x87, 32 !CD REL32; +OPCODE JNC + 0x73, &CB REL8 + 0x0F 0x83, 16 !CW REL16 + 0x0F 0x83, 32 !CD REL32; +OPCODE JNE + 0x75, &CB REL8 + 0x0F 0x85, 16 !CW REL16 + 0x0F 0x85, 32 !CD REL32; +OPCODE JNG + 0x7E, &CB REL8 + 0x0F 0x8E, 16 !CW REL16 + 0x0F 0x8E, 32 !CD REL32; +OPCODE JNGE + 0x7C, &CB REL8 + 0x0F 0x8C, 16 !CW REL16 + 0x0F 0x8C, 32 !CD REL32; +OPCODE JNL + 0x7D, &CB REL8 + 0x0F 0x8D, 16 !CW REL16 + 0x0F 0x8D, 32 !CD REL32; +OPCODE JNLE + 0x7F, &CB REL8 + 0x0F 0x8F, 16 !CW REL16 + 0x0F 0x8F, 32 !CD REL32; +OPCODE JNO + 0x71, &CB REL8 + 0x0F 0x81, 16 !CW REL16 + 0x0F 0x81, 32 !CD REL32; +OPCODE JNP + 0x7B, &CB REL8 + 0x0F 0x8B, 16 !CW REL16 + 0x0F 0x8B, 32 !CD REL32; +OPCODE JNS + 0x79, &CB REL8 + 0x0F 0x89, 16 !CW REL16 + 0x0F 0x89, 32 !CD REL32; +OPCODE JNZ + 0x75, &CB REL8 + 0x0F 0x85, 16 !CW REL16 + 0x0F 0x85, 32 !CD REL32; +OPCODE JO + 0x70, &CB REL8 + 0x0F 0x80, 16 !CW REL16 + 0x0F 0x80, 32 !CD REL32; +OPCODE JP + 0x7A, &CB REL8 + 0x0F 0x8A, 16 !CW REL16 + 0x0F 0x8A, 32 !CD REL32; +OPCODE JPE + 0x7A, &CB REL8 + 0x0F 0x8A, 16 !CW REL16 + 0x0F 0x8A, 32 !CD REL32; +OPCODE JPO + 0x7B, &CB REL8 + 0x0F 0x8B, 16 !CW REL16 + 0x0F 0x8B, 32 !CD REL32; +OPCODE JS + 0x78, &CB REL8 + 0x0F 0x88, 16 !CW REL16 + 0x0F 0x88, 32 !CD REL32; +OPCODE JZ + 0x74, &CB REL8 + 0x0F 0x84, 16 !CW REL16 + 0x0F 0x84, 32 !CD REL32; + + +OPCODE INC +// 0x40,+R 16 R16 +// 0x40,+R 32 R32 + 0xFE,/0 RM8 + 0xFF,/0 16 RM16 + 0xFF,/0 32 RM32 + 0xFF,/0 32 RM64; +OPCODE DEC +// 0x48,+R 16 R16 +// 0x48,+R 32 R32 + 0xFE,/1 RM8 + 0xFF,/1 16 RM16 + 0xFF,/1 32 RM32 + 0xFF,/1 32 RM64; +OPCODE NOT + 0xF6,/2 RM8 + 0xF7,/2 16 RM16 + 0xF7,/2 32 RM32 + 0xF7,/2 32 RM64; +OPCODE NEG + 0xF6,/3 RM8 + 0xF7,/3 16 RM16 + 0xF7,/3 32 RM32 + 0xF7,/3 32 RM64; +OPCODE MUL + 0xF6,/4 RM8 + 0xF7,/4 16 RM16 + 0xF7,/4 32 RM32 + 0xF7,/4 32 RM64; +OPCODE IMUL + 0xF6,/5 RM8 + 0xF7,/5 16 RM16 + 0xF7,/5 32 RM32 + 0xF7,/5 32 RM64; +OPCODE IMUL2 + 0x0F 0xAF,/R 16 R16 RM16 + 0x0F 0xAF,/R 32 R32 RM32 + 0x0F 0xAF,/R 32 R64 RM64 + 0x6B,/R 16 IB RM16 IMM8 + 0x6B,/R 32 IB RM32 IMM8 + 0x6B,/R 32 IB RM64 IMM8 + 0x69,/R 16 IW RM16 UIMM16 + 0x69,/R 32 ID RM32 UIMM32 + 0x69,/R 32 ID RM64 UIMM32; +OPCODE DIV + 0xF6,/6 RM8 + 0xF7,/6 16 RM16 + 0xF7,/6 32 RM32 + 0xF7,/6 32 RM64; +OPCODE IDIV + 0xF6,/7 RM8 + 0xF7,/7 16 RM16 + 0xF7,/7 32 RM32 + 0xF7,/7 32 RM64; + +OPCODE AAA 0x37; +OPCODE AAD 0xD5 0x0A; +OPCODE AAM 0xD4 0x0A; +OPCODE AAS 0x3F; +OPCODE ARPL 0x63,/R RM16 R16; +OPCODE BOUND + 0x62,/R 16 RM16 R16 + 0x62,/R 32 RM32 R32 + 0x62,/R 32 RM64 R64; +OPCODE BSF + 0x0F 0xBC,/R 16 R16 RM16 + 0x0F 0xBC,/R 32 R32 RM32 + 0x0F 0xBC,/R 32 R64 RM64; +OPCODE BSR + 0x0F 0xBD,/R 16 R16 RM16 + 0x0F 0xBD,/R 32 R32 RM32 + 0x0F 0xBD,/R 32 R64 RM64; +OPCODE BSWAP + 0x0F 0xC8,/R 32 R32 + 0x0F 0xC8,/R 32 R64; +OPCODE BT + 0x0F 0xA3,/R 16 RM16 R16 + 0x0F 0xA3,/R 32 RM32 R32 + 0x0F 0xA3,/R 32 RM64 R64 + 0x0F 0xBA,/4 16 IB RM16 UIMM8 + 0x0F 0xBA,/4 32 IB RM32 UIMM8 + 0x0F 0xBA,/4 32 IB RM64 UIMM8; +OPCODE BTC + 0x0F 0xBB,/R 16 RM16 R16 + 0x0F 0xBB,/R 32 RM32 R32 + 0x0F 0xBB,/R 32 RM64 R64 + 0x0F 0xBA,/7 16 IB RM16 UIMM8 + 0x0F 0xBA,/7 32 IB RM32 UIMM8 + 0x0F 0xBA,/7 32 IB RM64 UIMM8; +OPCODE BTR + 0x0F 0xB3,/R 16 RM16 R16 + 0x0F 0xB3,/R 32 RM32 R32 + 0x0F 0xB3,/R 32 RM64 R64 + 0x0F 0xBA,/6 16 IB RM16 UIMM8 + 0x0F 0xBA,/6 32 IB RM32 UIMM8 + 0x0F 0xBA,/6 32 IB RM64 UIMM8; +OPCODE BTS + 0x0F 0xAB,/R 16 RM16 R16 + 0x0F 0xAB,/R 32 RM32 R32 + 0x0F 0xAB,/R 32 RM64 R64 + 0x0F 0xBA,/5 16 IB RM16 UIMM8 + 0x0F 0xBA,/5 32 IB RM32 UIMM8 + 0x0F 0xBA,/5 32 IB RM64 UIMM8; +OPCODE CBW 0x98, 16; +OPCODE CWDE 0x98, 32; +OPCODE CDQE 0x98, 32=; +OPCODE CWD 0x99, 16; +OPCODE CDQ 0x99, 32; +OPCODE CQO 0x99, 32=; +OPCODE CLC 0xF8; +OPCODE CLD 0xFC; +OPCODE CLI 0xFA; +OPCODE CLTS 0x0F 0x06; +OPCODE CMC 0xF5; +OPCODE CMPSB 0xA6; +OPCODE CMPSW 0xA7, 16; +OPCODE CMPSD 0xA7, 32; +OPCODE CMPSQ 0xA7, 32=; +OPCODE CMPXCHG + 0x0F 0xB0,/R RM8 R8 + 0x0F 0xB1,/R 16 RM16 R16 + 0x0F 0xB1,/R 32 RM32 R32 + 0x0F 0xB1,/R 32 RM64 R64; +OPCODE CHPXCHG8B 0x0F 0xC7, RM64; +OPCODE DAA 0x27; +OPCODE DAS 0x2F; +OPCODE ENTER 0xC8, $$IW IMM16; +OPCODE HLT 0xF4; +OPCODE IN + 0xE4, IB AL UIMM8 + 0xE5, 16 IB AX UIMM8 + 0xE5, 32 IB EAX UIMM8 + 0xEC, AL DX + 0xED, 16 AX DX + 0xED, 32 EAX DX; +OPCODE INS + 0x6C, RM8 DX + 0x6D, 16 RM16 DX + 0x6D, 32 RM32 DX; +OPCODE INSB 0x6C; +OPCODE INSW 0x6D, 16; +OPCODE INSD 0x6D, 32; +OPCODE INTO 0xCE; +OPCODE INT3 0xCC; +OPCODE INT 0xCD, IB UIMM8; +OPCODE INVD 0x0F 0x08; +OPCODE IRET 0xCF, 32=; +OPCODE LAHF 0x9F; +OPCODE LAR + 0x0F 0x02,/R 16 R16 RM16 + 0x0F 0x02,/R 32 R32 RM32 + 0x0F 0x02,/R 32 R64 RM64; +OPCODE LEA + 0x8D,/R 16 R16 RM16 + 0x8D,/R 32 R32 RM32 + 0x8D,/R 32 R64 RM64; +OPCODE LEAVE 0xC9; +OPCODE LGDT + 0x0F 0x01,/2 16 M16 + 0x0F 0x01,/2 32 M32 + 0x0F 0x01,/2 32 M64; +OPCODE SGDT + 0x0F 0x01,/0 16 M16 + 0x0F 0x01,/0 32 M32 + 0x0F 0x01,/0 32 M64; +OPCODE LIDT + 0x0F 0x01,/3 16 M16 + 0x0F 0x01,/3 32 M32 + 0x0F 0x01,/3 32 M64; +OPCODE SIDT + 0x0F 0x01,/1 16 M16 + 0x0F 0x01,/1 32 M32 + 0x0F 0x01,/1 32 M64; +OPCODE LLDT + 0x0F 0x00,/2 RM16; +OPCODE SLDT + 0x0F 0x00,/0 16 RM16 + 0x0F 0x00,/0 32 RM32 + 0x0F 0x00,/0 32 RM64; +OPCODE LMSW + 0x0F 0x01,/6 RM16; +OPCODE SMSW + 0x0F 0x01,/4 16 RM16 + 0x0F 0x01,/4 32 RM32 + 0x0F 0x01,/4 32 RM64; +//OPCODE LGS LSS LFS LDS LES +OPCODE LOCK 0xF0; +OPCODE LODSB 0xAC; +OPCODE LODSW 0xAD, 16; +OPCODE LODSD 0xAD, 32; +OPCODE LODSQ 0xAD, 32=; +OPCODE LOOP 0xE2, CB REL8; +OPCODE LOOPE 0xE1, CB REL8; +OPCODE LOOPZ 0xE1, CB REL8; +OPCODE LOOPNE 0xE0, CB REL8; +OPCODE LOOPNZ 0xE0, CB REL8; +OPCODE LSL + 0x0F 0x03,/R 16 R16 RM16 + 0x0F 0x03,/R 32 R32 RM32 + 0x0F 0x03,/R 32 R64 RM64; +OPCODE LTR + 0x0F 0x00,/3 RM16; +OPCODE MOVSB 0xA4; +OPCODE MOVSW 0xA5, 16; +OPCODE MOVSD 0xA5, 32; +OPCODE MOVSQ 0xA5, 32=; +OPCODE MOVSX + 0x0F 0xBE,/R 16 R16 RM8 + 0x0F 0xBE,/R 32 R32 RM8 + 0x0F 0xBE,/R 32 R64 RM8 + 0x0F 0xBF,/R 32 R32 RM16 + 0x0F 0xBF,/R 32 R64 RM16; +OPCODE MOVSXD + 0x63,/R 32 R64 RM32; +OPCODE MOVZX + 0x0F 0xB6,/R 16 R16 RM8 + 0x0F 0xB6,/R 32 R32 RM8 + 0x0F 0xB6,/R 32 R64 RM8 + 0x0F 0xB7,/R 32 R32 RM16 + 0x0F 0xB7,/R 32 R64 RM16; +OPCODE OUT + 0xE6, IB UIMM8 AL + 0xE7, 16 IB UIMM8 AX + 0xE7, 32 IB UIMM8 EAX + 0xEE, DX AL + 0xEF, 16 DX AX + 0xEF, 32 DX EAX; +OPCODE OUTSB 0x6E; +OPCODE OUTSW 0x6F, 16; +OPCODE OUTSD 0x6F, 32; +OPCODE REP_INSB 0xF3 0x6C; +OPCODE REP_INSW 0xF3 0x6D, 16; +OPCODE REP_INSD 0xF3 0x6D, 32; +OPCODE REP_MOVSB 0xF3 0xA4; +OPCODE REP_MOVSW 0xF3 0xA5, 16; +OPCODE REP_MOVSD 0xF3 0xA5, 32; +OPCODE REP_MOVSQ 0xF3 0x48 0xA5, 32=; +OPCODE REP_OUTSB 0xF3 0x6E; +OPCODE REP_OUTSW 0xF3 0x6F, 16; +OPCODE REP_OUTSD 0xF3 0x6F, 32; +OPCODE REP_LODSB 0xF2 0xAC; +OPCODE REP_LODSW 0xF2 0xAD, 16; +OPCODE REP_LODSD 0xF2 0xAD, 32; +OPCODE REP_LODSQ 0xF2 0x48 0xAD, 32=; +OPCODE REP_STOSB 0xF3 0xAA; +OPCODE REP_STOSW 0xF3 0xAB, 16; +OPCODE REP_STOSD 0xF3 0xAB, 32; +OPCODE REP_STOSQ 0xF3 0x48 0xAB, 32=; +OPCODE REPE_CMPSB 0xF3 0xA6; +OPCODE REPE_CMPSW 0xF3 0xA7, 16; +OPCODE REPE_CMPSD 0xF3 0xA7, 32; +OPCODE REPE_CMPSQ 0xF3 0x48 0xA7, 32=; +OPCODE REPE_SCASB 0xF3 0xAE; +OPCODE REPE_SCASW 0xF3 0xAF, 16; +OPCODE REPE_SCASD 0xF3 0xAF, 32; +OPCODE REPE_SCASQ 0xF3 0x48 0xAF, 32=; +OPCODE REPNE_CMPSB 0xF2 0x48 0xA6; +OPCODE REPNE_CMPSW 0xF2 0xA7, 16; +OPCODE REPNE_CMPSD 0xF2 0xA7, 32; +OPCODE REPNE_CMPSQ 0xF2 0x48 0xA7, 32=; +OPCODE REPNE_SCASB 0xF2 0xAE; +OPCODE REPNE_SCASW 0xF2 0xAF, 16; +OPCODE REPNE_SCASD 0xF2 0xAF, 32; +OPCODE REPNE_SCASQ 0xF2 0x48 0xAF, 32=; +OPCODE RET 0xC3; +OPCODE RET1 0xC2, IW IMM16; +OPCODE RETF 0xCB; +OPCODE RETF1 0xCA, IW IMM16; +OPCODE REX 0x48; +OPCODE REX2 0x40; +OPCODE RSM 0x0F 0xAA; +OPCODE SAHF 0x9E; +OPCODE SCASB 0xAE; +OPCODE SCASW 0xAF, 16; +OPCODE SCASD 0xAF, 32; +OPCODE SCASQ 0xAF, 32=; +OPCODE SEGCS 0x2E; +OPCODE SEGSS 0x36; +OPCODE SEGDS 0x3E; +OPCODE SEGES 0x26; +OPCODE SEGFS 0x64; +OPCODE SEGGS 0x65; +OPCODE SETA 0x0F 0x97, RM8; +OPCODE SETAE 0x0F 0x93, RM8; +OPCODE SETB 0x0F 0x92, RM8; +OPCODE SETBE 0x0F 0x96, RM8; +OPCODE SETC 0x0F 0x92, RM8; +OPCODE SETE 0x0F 0x94, RM8; +OPCODE SETG 0x0F 0x9F, RM8; +OPCODE SETGE 0x0F 0x9D, RM8; +OPCODE SETL 0x0F 0x9C, RM8; +OPCODE SETLE 0x0F 0x9E, RM8; +OPCODE SETNA 0x0F 0x96, RM8; +OPCODE SETNAE 0x0F 0x92, RM8; +OPCODE SETNB 0x0F 0x93, RM8; +OPCODE SETNBE 0x0F 0x97, RM8; +OPCODE SETNC 0x0F 0x93, RM8; +OPCODE SETNE 0x0F 0x95, RM8; +OPCODE SETNG 0x0F 0x9E, RM8; +OPCODE SETNGE 0x0F 0x9C, RM8; +OPCODE SETNL 0x0F 0x9D, RM8; +OPCODE SETNLE 0x0F 0x9F, RM8; +OPCODE SETNO 0x0F 0x91, RM8; +OPCODE SETNP 0x0F 0x9B, RM8; +OPCODE SETNS 0x0F 0x99, RM8; +OPCODE SETNZ 0x0F 0x95, RM8; +OPCODE SETO 0x0F 0x90, RM8; +OPCODE SETP 0x0F 0x9A, RM8; +OPCODE SETPE 0x0F 0x9A, RM8; +OPCODE SETPO 0x0F 0x9B, RM8; +OPCODE SETS 0x0F 0x98, RM8; +OPCODE SETZ 0x0F 0x94, RM8; +OPCODE SHLD + 0x0F 0xA5,/R 16 RM16 R16 + 0x0F 0xA5,/R 32 RM32 R32 + 0x0F 0xA5,/R 32 RM64 R64; +OPCODE SHRD + 0x0F 0xAD,/R 16 RM16 R16 + 0x0F 0xAD,/R 32 RM32 R32 + 0x0F 0xAD,/R 32 RM64 R64; +OPCODE STC 0xF9; +OPCODE STD 0xFD; +OPCODE STI 0xFB; +OPCODE STOSB 0xAA; +OPCODE STOSW 0xAB, 16; +OPCODE STOSD $MA+A+LA,"","NO;"$0xAB, 32; +OPCODE STOSQ 0xAB, 32=; +OPCODE STR + 0x0F 0x00,/1 16 RM16 + 0x0F 0x00,/1 32 RM32 + 0x0F 0x00,/1 32 RM64; +OPCODE VERR + 0x0F 0x00,/4 16 RM16 + 0x0F 0x00,/4 32 RM32 + 0x0F 0x00,/4 32 RM64; +OPCODE VERW + 0x0F 0x00,/5 16 RM16 + 0x0F 0x00,/5 32 RM32 + 0x0F 0x00,/5 32 RM64; +OPCODE WAIT 0x9B; +OPCODE FWAIT 0x9B; +OPCODE XADD + 0x0F 0xC0,/R RM8 R8 + 0x0F 0xC1,/R 16 RM16 R16 + 0x0F 0xC1,/R 32 RM32 R32 + 0x0F 0xC1,/R 32 RM64 R64; +OPCODE XLATB 0xD7; + + +OPCODE RCL + 0xD2,/2 RM8 CL + 0xD3,/2 16 RM16 CL + 0xD3,/2 32 RM32 CL + 0xD3,/2 32 RM64 CL + 0xC0,/2 IB RM8 UIMM8 + 0xC1,/2 16 IB RM16 UIMM8 + 0xC1,/2 32 IB RM32 UIMM8 + 0xC1,/2 32 IB RM64 UIMM8; +OPCODE RCL1 + 0xD0,/2 RM8 + 0xD1,/2 16 RM16 + 0xD1,/2 32 RM32 + 0xD1,/2 32 RM64; +OPCODE RCR + 0xD2,/3 RM8 CL + 0xD3,/3 16 RM16 CL + 0xD3,/3 32 RM32 CL + 0xD3,/3 32 RM64 CL + 0xC0,/3 IB RM8 UIMM8 + 0xC1,/3 16 IB RM16 UIMM8 + 0xC1,/3 32 IB RM32 UIMM8 + 0xC1,/3 32 IB RM64 UIMM8; +OPCODE RCR1 + 0xD0,/3 RM8 + 0xD1,/3 16 RM16 + 0xD1,/3 32 RM32 + 0xD1,/3 32 RM64; +OPCODE ROL + 0xD2,/0 RM8 CL + 0xD3,/0 16 RM16 CL + 0xD3,/0 32 RM32 CL + 0xD3,/0 32 RM64 CL + 0xC0,/0 IB RM8 UIMM8 + 0xC1,/0 16 IB RM16 UIMM8 + 0xC1,/0 32 IB RM32 UIMM8 + 0xC1,/0 32 IB RM64 UIMM8; +OPCODE ROL1 + 0xD0,/0 RM8 + 0xD1,/0 16 RM16 + 0xD1,/0 32 RM32 + 0xD1,/0 32 RM64; +OPCODE ROR + 0xD2,/1 RM8 CL + 0xD3,/1 16 RM16 CL + 0xD3,/1 32 RM32 CL + 0xD3,/1 32 RM64 CL + 0xC0,/1 IB RM8 UIMM8 + 0xC1,/1 16 IB RM16 UIMM8 + 0xC1,/1 32 IB RM32 UIMM8 + 0xC1,/1 32 IB RM64 UIMM8; +OPCODE ROR1 + 0xD0,/1 RM8 + 0xD1,/1 16 RM16 + 0xD1,/1 32 RM32 + 0xD1,/1 32 RM64; + +OPCODE SAL + 0xD2,/4 RM8 CL + 0xD3,/4 16 RM16 CL + 0xD3,/4 32 RM32 CL + 0xD3,/4 32 RM64 CL + 0xC0,/4 IB RM8 UIMM8 + 0xC1,/4 16 IB RM16 UIMM8 + 0xC1,/4 32 IB RM32 UIMM8 + 0xC1,/4 32 IB RM64 UIMM8; +OPCODE SAL1 + 0xD0,/4 RM8 + 0xD1,/4 16 RM16 + 0xD1,/4 32 RM32 + 0xD1,/4 32 RM64; + +OPCODE SAR + 0xD2,/7 RM8 CL + 0xD3,/7 16 RM16 CL + 0xD3,/7 32 RM32 CL + 0xD3,/7 32 RM64 CL + 0xC0,/7 IB RM8 UIMM8 + 0xC1,/7 16 IB RM16 UIMM8 + 0xC1,/7 32 IB RM32 UIMM8 + 0xC1,/7 32 IB RM64 UIMM8; +OPCODE SAR1 + 0xD0,/7 RM8 + 0xD1,/7 16 RM16 + 0xD1,/7 32 RM32 + 0xD1,/7 32 RM64; + +OPCODE SHL + 0xD2,/4 RM8 CL + 0xD3,/4 16 RM16 CL + 0xD3,/4 32 RM32 CL + 0xD3,/4 32 RM64 CL + 0xC0,/4 IB RM8 UIMM8 + 0xC1,/4 16 IB RM16 UIMM8 + 0xC1,/4 32 IB RM32 UIMM8 + 0xC1,/4 32 IB RM64 UIMM8; +OPCODE SHL1 + 0xD0,/4 RM8 + 0xD1,/4 16 RM16 + 0xD1,/4 32 RM32 + 0xD1,/4 32 RM64; + +OPCODE SHR + 0xD2,/5 RM8 CL + 0xD3,/5 16 RM16 CL + 0xD3,/5 32 RM32 CL + 0xD3,/5 32 RM64 CL + 0xC0,/5 IB RM8 UIMM8 + 0xC1,/5 16 IB RM16 UIMM8 + 0xC1,/5 32 IB RM32 UIMM8 + 0xC1,/5 32 IB RM64 UIMM8; +OPCODE SHR1 + 0xD0,/5 RM8 + 0xD1,/5 16 RM16 + 0xD1,/5 32 RM32 + 0xD1,/5 32 RM64; + +OPCODE FILD + 0xDF,/0 M16 //Load I16 + 0xDB,/0 M32 //Load I32 + 0xDF,/5 ` M64; //Load I64 +OPCODE FISTP + 0xDF,/7 ` M64; //Store I64 +OPCODE FISTTP + 0xDD,/1 ` M64; //Store I64 +OPCODE FLD + 0xD9,/0 M32 //Load F32 + 0xDD,/0 ` M64 //Load F64 + 0xD9 0xC0,+I: STI; +OPCODE FSTP + 0xD9,/3 M32 //Store F32 + 0xDD,/3 ` M64 //Store F64 + 0xDD 0xD8,+I: STI; +OPCODE FST + 0xD9,/2 M32 //Store F32 + 0xDD,/2 ` M64 //Store F64 + 0xDD 0xD0,+I: STI; +OPCODE FRSTOR + 0xDD,/4 M32 + 0xDD,/4 M64; +OPCODE FSAVE + 0xDD,/6 M32 + 0xDD,/6 M64; + +OPCODE FYL2X 0xD9 0xF1,:; +OPCODE FYL2XP1 0xD9 0xF9,:; +OPCODE F2XM1 0xD9 0xF0,:; +OPCODE FABS 0xD9 0xE1,:; +OPCODE FCHS 0xD9 0xE0,:; +OPCODE FSIN 0xD9 0xFE,:; +OPCODE FCOS 0xD9 0xFF,:; +OPCODE FPTAN 0xD9 0xF2,:; +OPCODE FPATAN 0xD9 0xF3,:; +OPCODE FSQRT 0xD9 0xFA,:; +OPCODE FMULP 0xDE 0xC8,+I: STI ST0; +OPCODE FMUL + 0xD8,/1 ST0 M32 + 0xDC,/1 ` ST0 M64 + 0xD8 0xC8,+I: ST0 STI + 0xDC 0xC8,+I: STI ST0; +OPCODE FIMUL + 0xDA,/1 ST0 M32 + 0xDE,/1 ST0 M16; +OPCODE FDIVP 0xDE 0xF8,+I: STI ST0; +OPCODE FDIV + 0xD8,/6 ST0 M32 + 0xDC,/6 ` ST0 M64 + 0xD8 0xF0,+I: ST0 STI + 0xDC 0xF8,+I: STI ST0; +OPCODE FDIVRP 0xDE 0xF0,+I: STI ST0; +OPCODE FDIVR + 0xD8,/7 ST0 M32 + 0xDC,/7 ` ST0 M64 + 0xD8 0xF8,+I: ST0 STI + 0xDC 0xF0,+I: STI ST0; +OPCODE FPREM 0xD9 0xF8,:; +OPCODE FADDP 0xDE 0xC0,+I: STI ST0; +OPCODE FADD + 0xD8,/0 ST0 M32 + 0xDC,/0 ` ST0 M64 + 0xD8 0xC0,+I: ST0 STI + 0xDC 0xC0,+I: STI ST0; +OPCODE FSUBP 0xDE 0xE8,+I: STI ST0; +OPCODE FSUB + 0xD8,/4 ST0 M32 + 0xDC,/4 ` ST0 M64 + 0xD8 0xE0,+I: ST0 STI + 0xDC 0xE8,+I: STI ST0; +OPCODE FSUBRP 0xDE 0xE0,+I: STI ST0; +OPCODE FSUBR + 0xD8,/5 ST0 M32 + 0xDC,/5 ` ST0 M64 + 0xD8 0xE8,+I: ST0 STI + 0xDC 0xE0,+I: STI ST0; +OPCODE FCOMIP 0xDF 0xF0,+I: ST0 STI; +OPCODE FCOMI 0xDB 0xF0,+I: ST0 STI; +OPCODE FCLEX 0x9B 0xDB 0xE2,:; +OPCODE FNCLEX 0xDB 0xE2,:; +OPCODE FSTSW 0xDF 0xE0,:; +OPCODE FDECSTP 0xD9 0xF6,:; +OPCODE FINCSTP 0xD9 0xF7,:; +OPCODE FFREE 0xDD 0xC0,+I: STI; +OPCODE FRNDINT 0xD9 0xFC,:; +OPCODE FSCALE 0xD9 0xFD,:; +OPCODE FXTRACT 0xD9 0xF4,:; + +OPCODE FLD1 0xD9 0xE8,:; +OPCODE FLDL2T 0xD9 0xE9,:; +OPCODE FLDL2E 0xD9 0xEA,:; +OPCODE FLDPI 0xD9 0xEB,:; +OPCODE FLDLG2 0xD9 0xEC,:; +OPCODE FLDLN2 0xD9 0xED,:; +OPCODE FLDZ 0xD9 0xEE,:; + +OPCODE FXCH 0xD9 0xC8,+I: STI; +OPCODE FTST 0xD9 0xE4,:; +OPCODE FXAM 0xD9 0xE5,:; +OPCODE FINIT 0x9B 0xDB 0xE3; +OPCODE FNINIT 0xDB 0xE3; + +OPCODE FSTCW + 0xD9,/7 M16; +OPCODE FLDCW + 0xD9,/5 M16; +OPCODE FXSAVE //512 byte + 0x0F 0xAE,/0 32 M32 + 0x0F 0xAE,/0 32 M64; +OPCODE FXRSTOR //512 byte + 0x0F 0xAE,/1 32 M32 + 0x0F 0xAE,/1 32 M64; + +OPCODE WBINVD 0x0F 0x09; +OPCODE CLFLUSH 0x0F 0xAE,/7 RM8; +OPCODE INVLPG 0x0F 0x01,/7 RM8; +OPCODE CPUID 0x0F 0xA2, 32=; +OPCODE WRMSR 0x0F 0x30, 32=; +OPCODE RDTSC 0x0F 0x31; +OPCODE RDMSR 0x0F 0x32, 32=; +OPCODE PAUSE 0xF3 0x90; + +OPCODE MOV_CR0_EAX 0x0F 0x22 0xC0; +OPCODE MOV_EAX_CR0 0x0F 0x20 0xC0; +OPCODE MOV_CR2_EAX 0x0F 0x22 0xD0; +OPCODE MOV_EAX_CR2 0x0F 0x20 0xD0; +OPCODE MOV_CR3_EAX 0x0F 0x22 0xD8; +OPCODE MOV_EAX_CR3 0x0F 0x20 0xD8; +OPCODE MOV_CR4_EAX 0x0F 0x22 0xE0; +OPCODE MOV_EAX_CR4 0x0F 0x20 0xE0; + +OPCODE MOV_CR0_RAX 0x0F 0x22 0xC0, 32=; +OPCODE MOV_RAX_CR0 0x0F 0x20 0xC0, 32=; +OPCODE MOV_CR2_RAX 0x0F 0x22 0xD0, 32=; +OPCODE MOV_RAX_CR2 0x0F 0x20 0xD0, 32=; +OPCODE MOV_CR3_RAX 0x0F 0x22 0xD8, 32=; +OPCODE MOV_RAX_CR3 0x0F 0x20 0xD8, 32=; +OPCODE MOV_CR4_RAX 0x0F 0x22 0xE0, 32=; +OPCODE MOV_RAX_CR4 0x0F 0x20 0xE0, 32=; diff --git a/SparrowOS/Compiler/OptPass012.CPP b/SparrowOS/Compiler/OptPass012.CPP new file mode 100644 index 0000000..604d776 --- /dev/null +++ b/SparrowOS/Compiler/OptPass012.CPP @@ -0,0 +1,2209 @@ +#define FBO1_NOT_CONST 0 +#define FBO1_INT 1 +#define FBO1_F64 2 + + +Bool OptFixupBinaryOp1(CIntermediateCode *tempi, + CIntermediateCode *tempi1,CIntermediateCode *tempi2, + Bool *is_unsigned) +{ + CHashClass *tempc=tempi->ic_class,*tempc1,*tempc2; + + if (tempi1->ic_flags&ICF_R_TO_INT) + tempc1=sys_internal_types[IT_I64]; + else if (tempi1->ic_flags&ICF_R_TO_F64) + tempc1=sys_internal_types[IT_F64]; + else { + tempc1=tempi1->ic_class; + while (tempc1->fwd_class) + tempc1=tempc1->fwd_class; + } + + if (tempi2->ic_flags&ICF_R_TO_INT) + tempc2=sys_internal_types[IT_I64]; + else if (tempi2->ic_flags&ICF_R_TO_F64) + tempc2=sys_internal_types[IT_F64]; + else { + tempc2=tempi2->ic_class; + while (tempc2->fwd_class) + tempc2=tempc2->fwd_class; + } + + if (tempc1->sub_type>tempc2->sub_type) + tempc=tempi->ic_class=tempc1; + else + tempc=tempi->ic_class=tempc2; + + if (tempc->sub_type==IT_F64) { + if (tempi1->ic_opcode==IC_IMM) { + tempi1->ic_data(F64)=tempi1->ic_data; + tempi1->ic_class=sys_internal_types[IT_F64]; + tempi1->ic_opcode=IC_F64; + tempi1->ic_flags&=~ICF_R_TO_F64; + } else + if (tempc1->sub_type!=IT_F64) + tempi1->ic_flags|=ICF_R_TO_F64; + if (tempi2->ic_opcode==IC_IMM) { + tempi2->ic_data(F64)=tempi2->ic_data; + tempi2->ic_class=sys_internal_types[IT_F64]; + tempi2->ic_opcode=IC_F64; + tempi2->ic_flags&=~ICF_R_TO_F64; + } else + if (tempc2->sub_type!=IT_F64) + tempi2->ic_flags|=ICF_R_TO_F64; + if (tempi1->ic_opcode==IC_F64 && + tempi2->ic_opcode==IC_F64 && + !(tempi->ic_flags&(ICF_PUSH_CMP|ICF_POP_CMP))) { + tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + return FBO1_F64; + } else + return FBO1_NOT_CONST; + } + *is_unsigned=tempc1->sub_type&1 || tempc2->sub_type&1; + if (tempi1->ic_opcode==IC_IMM && + tempi2->ic_opcode==IC_IMM && + !(tempi->ic_flags&(ICF_PUSH_CMP|ICF_POP_CMP))) { + tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + return FBO1_INT; + } else + return FBO1_NOT_CONST; +} + +Bool OptFixupBinaryOp2(CIntermediateCode **tempi1,CIntermediateCode **tempi2) +{ + CIntermediateCode *tempii1=*tempi1, + *tempii2=*tempi2; + if (tempii1->ic_opcode==IC_IMM && + !(tempii1->ic_flags & ICF_R_TO_F64)) + return TRUE; + if (tempii2->ic_opcode==IC_IMM && + !(tempii2->ic_flags & ICF_R_TO_F64)) { + *tempi1=tempii2; + *tempi2=tempii1; + return TRUE; + } + return FALSE; +} + +Bool OptFixupUnaryOp(CIntermediateCode *tempi, + CIntermediateCode *tempi1, + Bool *is_unsigned) +{ + CHashClass *tempc,*tempc1; + tempc1=tempi1->ic_class; + while (tempc1->fwd_class) + tempc1=tempc1->fwd_class; + tempi->ic_class=tempc1; + tempc=tempi->ic_class; + if (tempc->sub_type==IT_F64) { + if (tempi1->ic_opcode==IC_IMM) { + tempi1->ic_data(F64)=tempi1->ic_data; + tempi1->ic_class=sys_internal_types[IT_F64]; + tempi1->ic_opcode=IC_F64; + tempi1->ic_flags&=~ICF_R_TO_F64; + } else + if (tempc1->sub_type!=IT_F64) + tempi1->ic_flags|=ICF_R_TO_F64; + if (tempi1->ic_opcode==IC_F64) { + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + return FBO1_F64; + } else + return FBO1_NOT_CONST; + } + *is_unsigned=tempc1->sub_type&1; + if (tempi1->ic_opcode==IC_IMM) { + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + return FBO1_INT; + } else + return FBO1_NOT_CONST; +} + +I64 CmpOffset2Reg(I64 offset,COptReg *register_offsets) +{ + I64 i; + for (i=0;ipass; + CBPutIC(tempi); + LexExcept(lx,"ST_OPT_INTERNAL_ERROR"); +} + +CIntermediateCode opt_nop; + + +CPrsStk *OptStart(CLex *lx,CIntermediateCode **temp_lag=NULL) +{ + I64 i; + CPrsStk *ps=MAlloc(sizeof(CPrsStk)); + CBInPtrsInit(&lx->cbh); + ps->ptr=0; + ps->ptr2=0; + if (temp_lag) + for (i=0;i<4;i++) + temp_lag[i]=&opt_nop; + return ps; +} + +U0 OptEnd(CLex *lx,CPrsStk *ps) +{ + if (ps->ptr>2) { + "Pass:%d Stk:%08X\n",lx->pass,ps->ptr; + LexExcept(lx,"ST_OPT_INTERNAL_ERROR"); + } + Free(ps); +} + + +CIntermediateCode *OptLag(CIntermediateCode *tempi) +{ + do { + if (tempi->ic_opcode==IC_START) + return NULL; + else + tempi--; + } while (tempi->ic_opcode<=IC_END_EXP); + return tempi; +} + +CIntermediateCode *OptLag1(CIntermediateCode *tempi) +{ + do { + if (tempi->ic_opcode==IC_START) + return NULL; + else + tempi--; + } while (tempi->ic_opcode==IC_NOP||tempi->ic_opcode==IC_NOP1); + return tempi; +} + +CIntermediateCode *OptLead1(CLex *,CIntermediateCode *tempi) +{ + do { + tempi++; + if (tempi->ic_opcode==IC_END) + return NULL; + } while (tempi->ic_opcode==IC_NOP||tempi->ic_opcode==IC_NOP1); + return tempi; +} + +extern U0 OptBrNotZero(CLex *lx,CIntermediateCode *tempi); + +CIntermediateCode *OptBrZero(CLex *lx,CIntermediateCode *tempi) +{ + CCodeBlkMisc *lb_true,*lb_false; + CIntermediateCode *tempii=OptLag(tempi),*tempii2; + switch (tempii->ic_opcode) { + case IC_NOT: + tempi->ic_opcode=IC_BR_NOT_ZERO; + tempi->ic_class=tempii->ic_class; + tempi->ic_flags|=tempii->ic_flags; + tempi->t.p1c=tempii->t.p1c; + tempi->t.p1t=tempii->t.p1t; + tempii->ic_opcode=IC_NOP; + tempii->ic_flags=0; + return OptBrNotZero(lx,tempi); + case IC_EQUAL_EQUAL: + tempi->ic_opcode=IC_BR_NOT_EQUAL; + break; + case IC_NOT_EQUAL: + tempi->ic_opcode=IC_BR_EQUAL_EQUAL; + break; + case IC_LESS: + tempi->ic_opcode=IC_BR_GREATER_EQUAL; + break; + case IC_GREATER: + tempi->ic_opcode=IC_BR_LESS_EQUAL; + break; + case IC_LESS_EQUAL: + tempi->ic_opcode=IC_BR_GREATER; + break; + case IC_GREATER_EQUAL: + tempi->ic_opcode=IC_BR_LESS; + break; + case IC_OR_OR: + tempi->ic_opcode=IC_BR_OR_OR_ZERO; + break; + case IC_AND_AND: + tempi->ic_opcode=IC_BR_AND_AND_ZERO; + break; + case IC_AND: + tempi->ic_opcode=IC_BR_AND_ZERO; + break; + case IC_MM_: + if (lx->pass==2 && !(tempii->ic_flags&ICF_R_TO_F64) && + tempii->ic_class->sub_type!=IT_F64) + tempi->ic_opcode=IC_BR_MM_ZERO; + break; + case IC_CALL_END: + tempii2=OptLag(tempii); + switch (tempii2->ic_opcode) { + case IC_BT: + tempii2->ic_opcode=IC_BR_NOT_BT; + tempii2->ic_data=tempi->ic_data; + tempii->ic_opcode=IC_CALL_END2; + tempi->ic_opcode=IC_NOP; + return tempii; + case IC_BTS: + tempii2->ic_opcode=IC_BR_NOT_BTS; + tempii2->ic_data=tempi->ic_data; + tempii->ic_opcode=IC_CALL_END2; + tempi->ic_opcode=IC_NOP; + return tempii; + case IC_BTR: + tempii2->ic_opcode=IC_BR_NOT_BTR; + tempii2->ic_data=tempi->ic_data; + tempii->ic_opcode=IC_CALL_END2; + tempi->ic_opcode=IC_NOP; + return tempii; + case IC_BTC: + tempii2->ic_opcode=IC_BR_NOT_BTC; + tempii2->ic_data=tempi->ic_data; + tempii->ic_opcode=IC_CALL_END2; + tempi->ic_opcode=IC_NOP; + return tempii; + case IC_LBTS: + tempii2->ic_opcode=IC_BR_NOT_LBTS; + tempii2->ic_flags|=ICF_LOCK; + tempii2->ic_data=tempi->ic_data; + tempii->ic_opcode=IC_CALL_END2; + tempi->ic_opcode=IC_NOP; + return tempii; + case IC_LBTR: + tempii2->ic_opcode=IC_BR_NOT_LBTR; + tempii2->ic_flags|=ICF_LOCK; + tempii2->ic_data=tempi->ic_data; + tempii->ic_opcode=IC_CALL_END2; + tempi->ic_opcode=IC_NOP; + return tempii; + case IC_LBTC: + tempii2->ic_opcode=IC_BR_NOT_LBTC; + tempii2->ic_flags|=ICF_LOCK; + tempii2->ic_data=tempi->ic_data; + tempii->ic_opcode=IC_CALL_END2; + tempi->ic_opcode=IC_NOP; + return tempii; + } + break; + } + if (tempi->ic_opcode!=IC_BR_ZERO) { + tempi->ic_class=tempii->ic_class; + tempi->ic_flags|=tempii->ic_flags; + tempi->t.p1c=tempii->t.p1c; + tempi->t.p2c=tempii->t.p2c; + tempi->t.p1t=tempii->t.p1t; + tempi->t.p2t=tempii->t.p2t; + tempii->ic_opcode=IC_NOP; + tempii->ic_flags=0; + + if (tempi->ic_flags&ICF_PUSH_CMP && + IC_BR_NOT_EQUAL<=tempi->ic_opcode<=IC_BR_LESS && + !(tempi->ic_flags&ICF_USE_F64)) { + tempi->ic_opcode+=IC_BR_NOT_EQUAL2-IC_BR_NOT_EQUAL; + tempi->ic_flags&=~ICF_PUSH_CMP; + tempii =tempi+1; //IC_PUSH_CMP instruction + while (tempii->ic_opcode!=IC_PUSH_CMP) + tempii++; + tempii->ic_flags=0; + tempii->ic_opcode=IC_NOP; + tempii->t.p1t=tempi; + } + + lb_true=tempi->ic_data; + if (tempi->ic_opcode==IC_BR_AND_AND_ZERO) { + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempii=tempi->t.p1t+1; + tempii->ic_data=lb_true; + tempii->t.p1t=tempi->t.p1t; + tempii->t.p1c=tempi->t.p1c; + tempii->ic_opcode=IC_BR_ZERO; + OptBrZero(lx,tempii); + tempii=tempi->t.p2t+1; + tempii->t.p1t=tempi->t.p2t; + tempii->t.p1c=tempi->t.p2c; + tempii->ic_data=lb_true; + tempii->ic_opcode=IC_BR_ZERO; + tempii=OptBrZero(lx,tempii); + } else if (tempi->ic_opcode==IC_BR_OR_OR_ZERO) { + lb_false=CBMiscNew(lx,CBMT_LABEL); + tempi->ic_opcode=IC_LABEL; + tempi->ic_flags=0; + tempi->ic_data=lb_false; + tempii=tempi->t.p1t+1; + tempii->t.p1t=tempi->t.p1t; + tempii->t.p1c=tempi->t.p1c; + tempii->ic_data=lb_false; + tempii->ic_opcode=IC_BR_NOT_ZERO; + OptBrNotZero(lx,tempii); + tempii=tempi->t.p2t+1; + tempii->t.p1t=tempi->t.p2t; + tempii->t.p1c=tempi->t.p2c; + tempii->ic_data=lb_true; + tempii->ic_opcode=IC_BR_ZERO; + tempii=OptBrZero(lx,tempii); + } else + tempii=tempi; + if (tempi->ic_flags&ICF_POP_CMP && tempi->t.p1t->ic_opcode==IC_NOP) { + tempi->t.p1t=tempi->t.p1t->t.p1t; + tempi->ic_flags&=~ICF_POP_CMP; + } + return tempii; + } + return tempi; +} + + +CIntermediateCode *OptBrNotZero(CLex *lx,CIntermediateCode *tempi) +{ + CCodeBlkMisc *lb_true,*lb_false; + CIntermediateCode *tempii=OptLag(tempi),*tempii2; + switch (tempii->ic_opcode) { + case IC_NOT: + tempi->ic_opcode=IC_BR_ZERO; + tempi->ic_class=tempii->ic_class; + tempi->ic_flags|=tempii->ic_flags; + tempi->t.p1c=tempii->t.p1c; + tempi->t.p1t=tempii->t.p1t; + tempii->ic_opcode=IC_NOP; + tempii->ic_flags=0; + return OptBrZero(lx,tempi); + case IC_EQUAL_EQUAL: + tempi->ic_opcode=IC_BR_EQUAL_EQUAL; + break; + case IC_NOT_EQUAL: + tempi->ic_opcode=IC_BR_NOT_EQUAL; + break; + case IC_LESS: + tempi->ic_opcode=IC_BR_LESS; + break; + case IC_GREATER: + tempi->ic_opcode=IC_BR_GREATER; + break; + case IC_LESS_EQUAL: + tempi->ic_opcode=IC_BR_LESS_EQUAL; + break; + case IC_GREATER_EQUAL: + tempi->ic_opcode=IC_BR_GREATER_EQUAL; + break; + case IC_OR_OR: + tempi->ic_opcode=IC_BR_OR_OR_NOT_ZERO; + break; + case IC_AND_AND: + tempi->ic_opcode=IC_BR_AND_AND_NOT_ZERO; + break; + case IC_AND: + tempi->ic_opcode=IC_BR_AND_NOT_ZERO; + break; + case IC_MM_: + if (lx->pass==2 && !(tempii->ic_flags&ICF_R_TO_F64) && + tempii->ic_class->sub_type!=IT_F64) + tempi->ic_opcode=IC_BR_MM_NOT_ZERO; + break; + case IC_CALL_END: + tempii2=OptLag(tempii); + switch (tempii2->ic_opcode) { + case IC_BT: + tempii2->ic_opcode=IC_BR_BT; + tempii2->ic_data=tempi->ic_data; + tempii->ic_opcode=IC_CALL_END2; + tempi->ic_opcode=IC_NOP; + return tempii; + case IC_BTS: + tempii2->ic_opcode=IC_BR_BTS; + tempii2->ic_data=tempi->ic_data; + tempii->ic_opcode=IC_CALL_END2; + tempi->ic_opcode=IC_NOP; + return tempii; + case IC_BTR: + tempii2->ic_opcode=IC_BR_BTR; + tempii2->ic_data=tempi->ic_data; + tempii->ic_opcode=IC_CALL_END2; + tempi->ic_opcode=IC_NOP; + return tempii; + case IC_BTC: + tempii2->ic_opcode=IC_BR_BTC; + tempii2->ic_data=tempi->ic_data; + tempii->ic_opcode=IC_CALL_END2; + tempi->ic_opcode=IC_NOP; + return tempii; + case IC_LBTS: + tempii2->ic_opcode=IC_BR_LBTS; + tempii2->ic_flags|=ICF_LOCK; + tempii2->ic_data=tempi->ic_data; + tempii->ic_opcode=IC_CALL_END2; + tempi->ic_opcode=IC_NOP; + return tempii; + case IC_LBTR: + tempii2->ic_opcode=IC_BR_LBTR; + tempii2->ic_flags|=ICF_LOCK; + tempii2->ic_data=tempi->ic_data; + tempii->ic_opcode=IC_CALL_END2; + tempi->ic_opcode=IC_NOP; + return tempii; + case IC_LBTC: + tempii2->ic_opcode=IC_BR_LBTC; + tempii2->ic_flags|=ICF_LOCK; + tempii2->ic_data=tempi->ic_data; + tempii->ic_opcode=IC_CALL_END2; + tempi->ic_opcode=IC_NOP; + return tempii; + } + break; + } + if (tempi->ic_opcode!=IC_BR_NOT_ZERO) { + tempi->ic_class=tempii->ic_class; + tempi->ic_flags|=tempii->ic_flags; + tempi->t.p1c=tempii->t.p1c; + tempi->t.p2c=tempii->t.p2c; + tempi->t.p1t=tempii->t.p1t; + tempi->t.p2t=tempii->t.p2t; + tempii->ic_opcode=IC_NOP; + tempii->ic_flags=0; + + if (tempi->ic_flags&ICF_PUSH_CMP && + IC_BR_NOT_EQUAL<=tempi->ic_opcode<=IC_BR_LESS && + !(tempi->ic_flags&ICF_USE_F64)) { + tempi->ic_opcode+=IC_BR_NOT_EQUAL2-IC_BR_NOT_EQUAL; + tempi->ic_flags&=~ICF_PUSH_CMP; + tempii =tempi+1; //IC_PUSH_CMP instruction + while (tempii->ic_opcode!=IC_PUSH_CMP) + tempii++; + tempii->ic_flags=0; + tempii->ic_opcode=IC_NOP; + tempii->t.p1t=tempi; + } + + lb_true=tempi->ic_data; + if (tempi->ic_opcode==IC_BR_OR_OR_NOT_ZERO) { + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempii=tempi->t.p1t+1; + tempii->t.p1t=tempi->t.p1t; + tempii->t.p1c=tempi->t.p1c; + tempii->ic_data=lb_true; + tempii->ic_opcode=IC_BR_NOT_ZERO; + OptBrNotZero(lx,tempii); + tempii=tempi->t.p2t+1; + tempii->t.p1t=tempi->t.p2t; + tempii->t.p1c=tempi->t.p2c; + tempii->ic_data=lb_true; + tempii->ic_opcode=IC_BR_NOT_ZERO; + tempii=OptBrNotZero(lx,tempii); + } else if (tempi->ic_opcode==IC_BR_AND_AND_NOT_ZERO) { + lb_false=CBMiscNew(lx,CBMT_LABEL); + tempi->ic_opcode=IC_LABEL; + tempi->ic_flags=0; + tempi->ic_data=lb_false; + tempii=tempi->t.p1t+1; + tempii->t.p1t=tempi->t.p1t; + tempii->t.p1c=tempi->t.p1c; + tempii->ic_data=lb_false; + tempii->ic_opcode=IC_BR_ZERO; + OptBrZero(lx,tempii); + tempii=tempi->t.p2t+1; + tempii->t.p1t=tempi->t.p2t; + tempii->t.p1c=tempi->t.p2c; + tempii->ic_data=lb_true; + tempii->ic_opcode=IC_BR_NOT_ZERO; + tempii=OptBrNotZero(lx,tempii); + } else + tempii=tempi; + if (tempi->ic_flags&ICF_POP_CMP && tempi->t.p1t->ic_opcode==IC_NOP) { + tempi->t.p1t=tempi->t.p1t->t.p1t; + tempi->ic_flags&=~ICF_POP_CMP; + } + return tempii; + } + return tempi; +} + +U0 OptFixSizeOf(CIntermediateCode *tempi1,CIntermediateCode *tempi_push,CHashClass *tempcc) +{ + if (tempi1->ic_opcode==IC_MUL && + tempi1->t.p2t->ic_opcode==IC_SIZEOF) { + tempi1->t.p2t->ic_opcode=IC_IMM; + tempi1->t.p2t->ic_class=tempcc; + tempi_push->ic_class=tempcc; + if (tempcc->ptr_cnt) { + tempcc--; + if (tempcc->size==1) + goto here; + tempi1->t.p2t->ic_data=tempcc->size; + } else { +here: + if (tempi_push==tempi1) + tempi1->t.p2t->ic_data=1; + else { + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi1->t.p2t->ic_opcode=IC_NOP; + tempi1->t.p2t->ic_flags=0; + } + } + } +} + +CIntermediateCode *OptPass012(CLex *lx,CHashFun *fun_class,Bool combined) +{ +/* +Simplify CONST arithmetic. +Sets the class throughout Expression trees. +Returns the type of an Expression for use +in int<-->F64 conversions of fun +args. +*/ + I64 code,i; + Bool is_unsigned; + CHashClass *tempc,*tempc1,*tempc2,*tempc3; + CIntermediateCode *tempi,*tempi1,*tempi2,*tempi3,*tempi_push, + *temp_lag[4],*last_with_class=NULL,*tempii; + CPrsStk *ps=OptStart(lx,temp_lag); + CCodeBlkMisc *lb,*lb1,*lb2; + if (combined) + tempi=lx->cbh.cb_in_ptr; + else + tempi=CBGetIC1(&lx->cbh); + if (tempi->ic_opcode==IC_START) { + if (combined) + tempi++; + else + tempi=CBGetIC1(&lx->cbh); + } + #assert !IC_END + while (code=tempi->ic_opcode) { + OptNext(tempi,temp_lag); + tempc=tempi->ic_class; + tempi->ic_class2=tempc; + tempi_push=tempi; + MemSet(&tempi->p1,0,sizeof(CICArg)*4); + nobound_switch (cmp_arg_cnt[code]) { + case 9: + ps->ptr-=tempi->ic_data>>2; + break; + case 3: + tempi3=PrsPop(ps); + tempc3=tempi3->ic_class; + tempi->t.p3t=tempi3; + tempi->t.p3c=PrsPop(ps); + case 2: + tempi2=PrsPop(ps); + tempc2=tempi2->ic_class; + tempi->t.p2t=tempi2; + tempi->t.p2c=PrsPop(ps); + case 1: + tempi1=PrsPop(ps); + tempc1=tempi1->ic_class; + tempi->t.p1t=tempi1; + tempi->t.p1c=PrsPop(ps); + break; + case 0: //nobound_switch + break; + } + if (Bt(not_constant_bitmap,code)) + lx->flags|=LF_NOT_CONSTANT; + nobound_switch (code) { + case IC_F64: + tempi->ic_flags&=~ICF_R_TO_F64; + if (lx->pass==2 && tempi->ic_flags&ICF_R_TO_INT) { + tempi->ic_data=ToI64(tempi->ic_data(F64)); + tempi->ic_flags&=~ICF_R_TO_INT; + tempi->ic_opcode=IC_IMM; + tempi->ic_class=sys_internal_types[IT_I64]; + } + break; + case IC_IMM: + tempi->ic_flags&=~ICF_R_TO_INT; + if (lx->pass==2 && tempi->ic_flags&ICF_R_TO_F64) { + tempi->ic_data(F64)=ToF64(tempi->ic_data); + tempi->ic_flags&=~ICF_R_TO_F64; + tempi->ic_opcode=IC_F64; + tempi->ic_class=sys_internal_types[IT_F64]; + } + break; + case IC_NATIVE_TYPECAST: + if (tempi1->ic_opcode==IC_IMM || tempi1->ic_opcode==IC_F64) { + if (tempi->ic_class->sub_type==IT_F64) + tempi1->ic_opcode=IC_F64; + else + tempi1->ic_opcode=IC_IMM; + tempi1->ic_class=tempi->ic_class; + tempi1->ic_flags|=tempi->ic_flags; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi_push=tempi1; + } else { + if (tempi->ic_data) { //was paren + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + } else { + tempi1->ic_class=tempi->ic_class; + tempi1->ic_flags|=tempi->ic_flags; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi_push=tempi1; + } + } + break; + case IC_FS: + case IC_GS: + //CALL,FS/GS,CALL_END,IMM,ADD,DEREF-->MOV_FS/GS + if (combined) { + tempi1=tempi+2; //IMM + tempi2=tempi+3; //ADD + tempi3=tempi+4; //DEREF + if (tempi1->ic_opcode==IC_IMM && tempi2->ic_opcode==IC_ADD && + tempi3->ic_opcode==IC_DEREF && !(tempi3->ic_flags&~ICF_NO_CVT_MASK)) { + tempi1->ic_opcode=IC_NOP; + tempi2->ic_opcode=IC_NOP; + tempi3->ic_opcode=IC_NOP; + if (tempi->ic_opcode==IC_FS) + tempi->ic_opcode=IC_MOV_FS; + else + tempi->ic_opcode=IC_MOV_GS; + tempi->ic_data=tempi1->ic_data; + tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags; + tempi1->ic_flags=0; + tempi2->ic_flags=0; + tempi->ic_class =tempi3->ic_class; + tempi->ic_class2=tempi3->ic_class2; + + tempi1=tempi-1; //CALL + tempi2=tempi+1; //CALL_END + tempi1->ic_opcode=IC_NOP; + tempi2->ic_opcode=IC_NOP; + tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags; + tempi1->ic_flags=0; + tempi2->ic_flags=0; + } + } + break; + case IC_STR_CONST: + case IC_RBP: + case IC_MOV_FS: + case IC_MOV_GS: + case IC_RIP: + case IC_SIZEOF: + break; + case IC_PUSH_CMP: + tempi1=temp_lag[1]; + if (tempi1->ic_opcode==IC_AND_AND) + tempi1=temp_lag[2]; + tempi->ic_class=tempi1->ic_class; + tempi->ic_class2=tempi->ic_class; + tempi->ic_data=0; + if (tempi->ic_class->sub_type==IT_F64) + tempi->ic_flags|=ICF_USE_F64; + break; + case IC_COM: + if (tempc->sub_type==IT_F64) { + if (tempi1->ic_opcode==IC_F64) { + tempi->ic_data(F64)=~tempi1->ic_data(F64); + tempi->ic_opcode=IC_F64; + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + } + break; + } + if (tempi1->ic_opcode==IC_IMM) { + tempi->ic_data=~tempi1->ic_data; + tempi->ic_opcode=IC_IMM; + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_NOT: + if (tempc->sub_type==IT_F64) { + if (tempi1->ic_opcode==IC_F64) { + tempi->ic_data(F64)=!tempi1->ic_data(F64); + tempi->ic_opcode=IC_F64; + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + } + break; + } + if (tempi1->ic_opcode==IC_IMM) { + tempi->ic_data=!tempi1->ic_data; + tempi->ic_opcode=IC_IMM; + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_UNARY_MINUS: + if (i=OptFixupUnaryOp(tempi,tempi1,&is_unsigned)) { + if (i==FBO1_INT) { + tempi->ic_data=-tempi1->ic_data(I64); + tempi->ic_opcode=IC_IMM; + } else { + tempi->ic_data(F64)=-tempi1->ic_data(F64); + tempi->ic_opcode=IC_F64; + } + } + if (tempc1->type&HTT_INTERNAL_TYPE && tempc1->sub_type& 1) + tempi->ic_class=sys_internal_types[tempc1->sub_type-1]; + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_DEREF: + if (lx->pass==2) { + if (!tempc->size) + LexPutWarn(lx,"ST_DEREF_U0",fun_class); + if (tempi1->ic_class->sub_type!=IT_F64) { + if (tempi1->ic_opcode==IC__PP) { + tempi->ic_opcode=IC_DEREF_PP; + tempi1->ic_opcode=IC_NOP; + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_flags=0; + } else if (tempi1->ic_opcode==IC__MM) { + tempi->ic_opcode=IC_DEREF_MM; + tempi1->ic_opcode=IC_NOP; + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_flags=0; + } + } + } + break; + case IC__PP: + case IC__MM: + case IC_PP_: + case IC_MM_: + if (lx->pass==2 && !tempc->size) + LexPutWarn(lx,"ST_DEREF_U0",fun_class); + break; + case IC_SHL_CONST: + if (i=OptFixupUnaryOp(tempi,tempi1,&is_unsigned)) { + if (i==FBO1_INT) { + if (is_unsigned) + tempi->ic_data=tempi1->ic_data(U64)<ic_data(U64); + else + tempi->ic_data=tempi1->ic_data(I64)<ic_data(I64); + tempi->ic_opcode=IC_IMM; + } else { + tempi->ic_data(F64)=tempi1->ic_data(F64)<ic_data; + tempi->ic_opcode=IC_F64; + } + } else if (tempi1->ic_opcode==IC_SHL_CONST) { + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_flags=0; + tempi->ic_data+=tempi1->ic_data; + tempi1->ic_opcode=IC_NOP; + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_SHR_CONST: + if (i=OptFixupUnaryOp(tempi,tempi1,&is_unsigned)) { + if (i==FBO1_INT) { + if (is_unsigned) + tempi->ic_data=tempi1->ic_data(U64)>>tempi->ic_data(U64); + else + tempi->ic_data=tempi1->ic_data(I64)>>tempi->ic_data(I64); + tempi->ic_opcode=IC_IMM; + } else { + tempi->ic_data(F64)=tempi1->ic_data(F64)>>tempi->ic_data; + tempi->ic_opcode=IC_F64; + } + } else if (tempi1->ic_opcode==IC_SHR_CONST) { + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_flags=0; + tempi->ic_data+=tempi1->ic_data; + tempi1->ic_opcode=IC_NOP; + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + + case IC_POWER: + if (tempc1->sub_type>tempc2->sub_type) + tempi->ic_class=tempc1; + else + tempi->ic_class=tempc2; + tempc=tempi->ic_class; + if (tempc1->sub_type!=IT_F64) + tempi1->ic_flags|=ICF_R_TO_F64; + if (tempc2->sub_type!=IT_F64) + tempi2->ic_flags|=ICF_R_TO_F64; + if (tempc->sub_type!=IT_F64) + tempi->ic_flags|=ICF_R_TO_INT|ICF_USE_F64; + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_SHL: + if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i==FBO1_INT) { + if (is_unsigned) + tempi->ic_data=tempi1->ic_data(U64)<ic_data(U64); + else + tempi->ic_data=tempi1->ic_data(I64)<ic_data(I64); + tempi->ic_opcode=IC_IMM; + } else { + tempi->ic_data(F64)=tempi1->ic_data(F64) << tempi2->ic_data(F64); + tempi->ic_opcode=IC_F64; + } + } else if (tempi2->ic_opcode==IC_IMM) { + tempi->ic_flags|=tempi2->ic_flags; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_data=tempi2->ic_data; + tempi->ic_opcode=IC_SHL_CONST; + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_SHR: + if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i==FBO1_INT) { + if (is_unsigned) + tempi->ic_data=tempi1->ic_data(U64)>>tempi2->ic_data(U64); + else + tempi->ic_data=tempi1->ic_data(I64)>>tempi2->ic_data(I64); + tempi->ic_opcode=IC_IMM; + } else { + tempi->ic_data(F64)=tempi1->ic_data(F64) >> tempi2->ic_data(F64); + tempi->ic_opcode=IC_F64; + } + } else if (tempi2->ic_opcode==IC_IMM) { + tempi->ic_flags|=tempi2->ic_flags; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_data=tempi2->ic_data; + tempi->ic_opcode=IC_SHR_CONST; + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_MUL: + if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i==FBO1_INT) { + if (is_unsigned) + tempi->ic_data=tempi1->ic_data(U64)*tempi2->ic_data(U64); + else + tempi->ic_data=tempi1->ic_data(I64)*tempi2->ic_data(I64); + tempi->ic_opcode=IC_IMM; + } else { + tempi->ic_data(F64)=tempi1->ic_data(F64)* + tempi2->ic_data(F64); + tempi->ic_opcode=IC_F64; + } + } else { + if (tempi1->ic_opcode==IC_IMM && lx->pass==2) { + switch (i=tempi1->ic_data) { + case 0: + break; + case 1: + tempi2->ic_flags|=tempi->ic_flags|tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi2->ic_class2=tempi->ic_class2; + tempi_push=tempi2; + break; + default: + if (Bsf(i)==Bsr(i)) { + tempi->ic_flags|=tempi1->ic_flags; + tempi->t.p1c=tempi->t.p2c; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi->ic_data=Bsf(i); + tempi->ic_opcode=IC_SHL_CONST; + } + } + } else if (tempi2->ic_opcode==IC_IMM) { + switch (i=tempi2->ic_data) { + case 0: + break; + case 1: + tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + break; + default: + if (Bsf(i)==Bsr(i)) { + tempi->ic_flags|=tempi2->ic_flags; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_data=Bsf(i); + tempi->ic_opcode=IC_SHL_CONST; + } else if (tempi1->ic_opcode==IC_MUL && lx->pass==2) { + if (tempi1->t.p1t->ic_opcode==IC_IMM) { + tempi1->ic_flags|=tempi->ic_flags; + tempi1->t.p1t->ic_data*=tempi2->ic_data; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } else if (tempi1->t.p2t->ic_opcode==IC_IMM) { + tempi1->ic_flags|=tempi->ic_flags; + tempi1->t.p2t->ic_data*=tempi2->ic_data; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } + } + } + } else if (tempi2->ic_opcode==IC_F64 && lx->pass==2) { + if (tempi2->ic_data(F64)==1.0) { + tempi1->ic_flags|=tempi2->ic_flags|tempi->ic_flags; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } else if (tempi1->ic_opcode==IC_MUL) { + if (tempi1->t.p1t->ic_opcode==IC_F64) { + tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags; + tempi1->t.p1t->ic_data(F64)*=tempi2->ic_data(F64); + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } else if (tempi1->t.p2t->ic_opcode==IC_F64) { + tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags; + tempi1->t.p2t->ic_data(F64)*=tempi2->ic_data(F64); + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } + } + } + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_DIV: + if ((tempi2->ic_data || tempi2->ic_opcode!=IC_IMM && tempi2->ic_opcode!=IC_F64) && + (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned))) { + if (i==FBO1_INT) { + if (is_unsigned) + tempi->ic_data=tempi1->ic_data(U64)/tempi2->ic_data(U64); + else + tempi->ic_data=tempi1->ic_data(I64)/tempi2->ic_data(I64); + tempi->ic_opcode=IC_IMM; + } else { + tempi->ic_data(F64)=tempi1->ic_data(F64)/ + tempi2->ic_data(F64); + tempi->ic_opcode=IC_F64; + } + } else { + if (tempi2->ic_opcode==IC_IMM && (i=tempi2->ic_data)) { + if (i==1) { + tempi1->ic_flags|=tempi2->ic_flags|tempi->ic_flags; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } else if (Bsf(i)==Bsr(i)) { + tempi->ic_flags|=tempi2->ic_flags; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_data=Bsf(i); + tempi->ic_opcode=IC_SHR_CONST; + } + } + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_MOD: + if ((tempi2->ic_data || tempi2->ic_opcode!=IC_IMM && tempi2->ic_opcode!=IC_F64) && + (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned))) { + if (i==FBO1_INT) { + if (is_unsigned) + tempi->ic_data=tempi1->ic_data(U64)%tempi2->ic_data(U64); + else + tempi->ic_data=tempi1->ic_data(I64)%tempi2->ic_data(I64); + tempi->ic_opcode=IC_IMM; + } else { + tempi->ic_data(F64)=tempi1->ic_data(F64)% + tempi2->ic_data(F64); + tempi->ic_opcode=IC_F64; + } + } else if (lx->pass==2 && tempi2->ic_opcode==IC_IMM && + (i=tempi2->ic_data) && Bsf(i)==Bsr(i) && tempi_push->ic_class->sub_type!=IT_F64 && + tempi_push->ic_class->sub_type&1) { //do only unsigned + tempi2->ic_data=i-1; + tempi->ic_opcode=IC_AND; + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_AND: + if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + tempi->ic_data=tempi1->ic_data&tempi2->ic_data; + if (i==FBO1_INT) + tempi->ic_opcode=IC_IMM; + else + tempi->ic_opcode=IC_F64; + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_OR: + if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + tempi->ic_data=tempi1->ic_data|tempi2->ic_data; + if (i==FBO1_INT) + tempi->ic_opcode=IC_IMM; + else + tempi->ic_opcode=IC_F64; + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_XOR: + if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + tempi->ic_data=tempi1->ic_data^tempi2->ic_data; + if (i==FBO1_INT) + tempi->ic_opcode=IC_IMM; + else + tempi->ic_opcode=IC_F64; + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_ADD: + if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i==FBO1_INT) { + tempi->ic_data=tempi1->ic_data+tempi2->ic_data; + tempi->ic_opcode=IC_IMM; + } else { + tempi->ic_data(F64)=tempi1->ic_data(F64)+ + tempi2->ic_data(F64); + tempi->ic_opcode=IC_F64; + } + } else { + if (tempi1->ic_opcode==IC_ABS_ADDR&&tempi2->ic_opcode==IC_IMM) { + tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_data=tempi1->ic_data+tempi2->ic_data; + tempi->ic_opcode=IC_ABS_ADDR; + } else if (lx->pass==2) { + if (tempi1->ic_opcode==IC_IMM) { + if (!tempi1->ic_data) { + tempi2->ic_flags|=tempi1->ic_flags|tempi->ic_flags; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi2->ic_class2=tempi->ic_class2; + tempi_push=tempi2; + } else if (tempi2->ic_opcode==IC_ADD|| + tempi2->ic_opcode==IC_SUB) { + if (tempi2->t.p1t->ic_opcode==IC_IMM) { + tempi2->ic_flags|=tempi->ic_flags; + tempi2->t.p1t->ic_data+=tempi1->ic_data; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi2->ic_class2=tempi->ic_class2; + tempi_push=tempi2; + } else if (tempi2->t.p2t->ic_opcode==IC_IMM) { + tempi2->ic_flags|=tempi->ic_flags; + if (tempi2->ic_opcode==IC_ADD) + tempi2->t.p2t->ic_data+=tempi1->ic_data; + else + tempi2->t.p2t->ic_data-=tempi1->ic_data; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi2->ic_class2=tempi->ic_class2; + tempi_push=tempi2; + } + } + } else if (tempi2->ic_opcode==IC_IMM) { + if (!tempi2->ic_data) { + tempi1->ic_flags|=tempi2->ic_flags|tempi->ic_flags; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } else if (tempi1->ic_opcode==IC_ADD || + tempi1->ic_opcode==IC_SUB) { + if (tempi1->t.p1t->ic_opcode==IC_IMM) { + tempi1->ic_flags|=tempi->ic_flags; + tempi1->t.p1t->ic_data+=tempi2->ic_data; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } else if (tempi1->t.p2t->ic_opcode==IC_IMM) { + tempi1->ic_flags|=tempi->ic_flags; + if (tempi1->ic_opcode==IC_ADD) + tempi1->t.p2t->ic_data+=tempi2->ic_data; + else + tempi1->t.p2t->ic_data-=tempi2->ic_data; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } + } + } else if (tempi1->ic_opcode==IC_F64) { + if (!tempi1->ic_data) { + tempi2->ic_flags|=tempi1->ic_flags|tempi->ic_flags; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi2->ic_class2=tempi->ic_class2; + tempi_push=tempi2; + } else if (tempi2->ic_opcode==IC_ADD|| + tempi2->ic_opcode==IC_SUB) { + if (tempi2->t.p1t->ic_opcode==IC_F64) { + tempi2->ic_flags|=tempi->ic_flags; + tempi2->t.p1t->ic_data(F64)+=tempi1->ic_data(F64); + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi2->ic_class2=tempi->ic_class2; + tempi_push=tempi2; + } else if (tempi2->t.p2t->ic_opcode==IC_F64) { + tempi2->ic_flags|=tempi->ic_flags; + if (tempi2->ic_opcode==IC_ADD) + tempi2->t.p2t->ic_data(F64)+=tempi1->ic_data(F64); + else + tempi2->t.p2t->ic_data(F64)-=tempi1->ic_data(F64); + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi2->ic_class2=tempi->ic_class2; + tempi_push=tempi2; + } + } + } else if (tempi2->ic_opcode==IC_F64) { + if (!tempi2->ic_data) { + tempi1->ic_flags|=tempi2->ic_flags|tempi->ic_flags; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } else if (tempi1->ic_opcode==IC_ADD || + tempi1->ic_opcode==IC_SUB) { + if (tempi1->t.p1t->ic_opcode==IC_F64) { + tempi1->ic_flags|=tempi->ic_flags; + tempi1->t.p1t->ic_data(F64)+=tempi2->ic_data(F64); + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } else if (tempi1->t.p2t->ic_opcode==IC_F64) { + tempi1->ic_flags|=tempi->ic_flags; + if (tempi1->ic_opcode==IC_ADD) + tempi1->t.p2t->ic_data(F64)+=tempi2->ic_data(F64); + else + tempi1->t.p2t->ic_data(F64)-=tempi2->ic_data(F64); + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } + } + } + } + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_SUB: + if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i==FBO1_INT) { + tempi->ic_data=tempi1->ic_data-tempi2->ic_data; + tempi->ic_opcode=IC_IMM; + } else { + tempi->ic_data(F64)=tempi1->ic_data(F64)- + tempi2->ic_data(F64); + tempi->ic_opcode=IC_F64; + } + } else { + if (lx->pass==2) { + if (tempi2->ic_opcode==IC_IMM) { + if (!tempi2->ic_data) { + tempi1->ic_flags|=tempi2->ic_flags|tempi->ic_flags; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } else + if (tempi1->ic_opcode==IC_ADD || + tempi1->ic_opcode==IC_SUB) { + if (tempi1->t.p1t->ic_opcode==IC_IMM) { + tempi1->ic_flags|=tempi->ic_flags; + tempi1->t.p1t->ic_data-=tempi2->ic_data; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } else if (tempi1->t.p2t->ic_opcode==IC_IMM) { + tempi1->ic_flags|=tempi->ic_flags; + if (tempi1->ic_opcode==IC_ADD) + tempi1->t.p2t->ic_data-=tempi2->ic_data; + else + tempi1->t.p2t->ic_data+=tempi2->ic_data; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } + } + } else + if (tempi2->ic_opcode==IC_F64) { + if (!tempi2->ic_data) { + tempi1->ic_flags|=tempi2->ic_flags|tempi->ic_flags; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } else + if (tempi1->ic_opcode==IC_ADD || + tempi1->ic_opcode==IC_SUB) { + if (tempi1->t.p1t->ic_opcode==IC_F64) { + tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags; + tempi1->t.p1t->ic_data(F64)-=tempi2->ic_data(F64); + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } else if (tempi1->t.p2t->ic_opcode==IC_F64) { + tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags; + if (tempi1->ic_opcode==IC_ADD) + tempi1->t.p2t->ic_data(F64)-=tempi2->ic_data(F64); + else + tempi1->t.p2t->ic_data(F64)+=tempi2->ic_data(F64); + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi->ic_flags=0; + tempi1->ic_class2=tempi->ic_class2; + tempi_push=tempi1; + } + } + } + } + + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_EQUAL_EQUAL: + if (OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + tempi->ic_data=tempi1->ic_data==tempi2->ic_data; + tempi->ic_opcode=IC_IMM; + } else + if (tempi->ic_class->sub_type==IT_F64) + tempi->ic_flags|=ICF_USE_F64; + tempi->ic_flags&=~ICF_R_TO_INT; + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + if (tempi_push->ic_flags & ICF_PUSH_CMP) + tempi->ic_class=tempi->ic_class2; + else + tempi->ic_class=sys_internal_types[IT_I64]; + break; + case IC_NOT_EQUAL: + if (OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + tempi->ic_data=tempi1->ic_data!=tempi2->ic_data; + tempi->ic_opcode=IC_IMM; + } else + if (tempi->ic_class->sub_type==IT_F64) + tempi->ic_flags|=ICF_USE_F64; + tempi->ic_flags&=~ICF_R_TO_INT; + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + if (tempi_push->ic_flags & ICF_PUSH_CMP) + tempi->ic_class=tempi->ic_class2; + else + tempi->ic_class=sys_internal_types[IT_I64]; + break; + case IC_LESS: + if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i==FBO1_INT) { + if (is_unsigned) + tempi->ic_data=tempi1->ic_data(U64)ic_data(U64); + else + tempi->ic_data=tempi1->ic_data(I64)ic_data(I64); + } else { + tempi->ic_data=tempi1->ic_data(F64)< + tempi2->ic_data(F64); + } + tempi->ic_opcode=IC_IMM; + } else { + if (is_unsigned) + tempi->ic_flags|=ICF_USE_UNSIGNED; + if (tempi->ic_class->sub_type==IT_F64) + tempi->ic_flags|=ICF_USE_F64; + } + tempi->ic_flags&=~ICF_R_TO_INT; + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + if (tempi_push->ic_flags & ICF_PUSH_CMP) + tempi->ic_class=tempi->ic_class2; + else + tempi->ic_class=sys_internal_types[IT_I64]; + break; + case IC_GREATER: + if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i==FBO1_INT) { + if (is_unsigned) + tempi->ic_data=tempi1->ic_data(U64)>tempi2->ic_data(U64); + else + tempi->ic_data=tempi1->ic_data(I64)>tempi2->ic_data(I64); + } else { + tempi->ic_data=tempi1->ic_data(F64)> + tempi2->ic_data(F64); + } + tempi->ic_opcode=IC_IMM; + } else { + if (is_unsigned) + tempi->ic_flags|=ICF_USE_UNSIGNED; + if (tempi->ic_class->sub_type==IT_F64) + tempi->ic_flags|=ICF_USE_F64; + } + tempi->ic_flags&=~ICF_R_TO_INT; + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + if (tempi_push->ic_flags & ICF_PUSH_CMP) + tempi->ic_class=tempi->ic_class2; + else + tempi->ic_class=sys_internal_types[IT_I64]; + break; + case IC_LESS_EQUAL: + if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i==FBO1_INT) { + if (is_unsigned) + tempi->ic_data=tempi1->ic_data(U64)<=tempi2->ic_data(U64); + else + tempi->ic_data=tempi1->ic_data(I64)<=tempi2->ic_data(I64); + } else { + tempi->ic_data=tempi1->ic_data(F64)<= + tempi2->ic_data(F64); + } + tempi->ic_opcode=IC_IMM; + } else { + if (is_unsigned) + tempi->ic_flags|=ICF_USE_UNSIGNED; + if (tempi->ic_class->sub_type==IT_F64) + tempi->ic_flags|=ICF_USE_F64; + } + tempi->ic_flags&=~ICF_R_TO_INT; + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + if (tempi_push->ic_flags & ICF_PUSH_CMP) + tempi->ic_class=tempi->ic_class2; + else + tempi->ic_class=sys_internal_types[IT_I64]; + break; + case IC_GREATER_EQUAL: + if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + if (i==FBO1_INT) { + if (is_unsigned) + tempi->ic_data=tempi1->ic_data(U64)>=tempi2->ic_data(U64); + else + tempi->ic_data=tempi1->ic_data(I64)>=tempi2->ic_data(I64); + } else { + tempi->ic_data=tempi1->ic_data(F64)>= + tempi2->ic_data(F64); + } + tempi->ic_opcode=IC_IMM; + } else { + if (is_unsigned) + tempi->ic_flags|=ICF_USE_UNSIGNED; + if (tempi->ic_class->sub_type==IT_F64) + tempi->ic_flags|=ICF_USE_F64; + } + tempi->ic_flags&=~ICF_R_TO_INT; + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + if (tempi_push->ic_flags & ICF_PUSH_CMP) + tempi->ic_class=tempi->ic_class2; + else + tempi->ic_class=sys_internal_types[IT_I64]; + break; + case IC_AND_AND: + if (OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + tempi->ic_data=tempi1->ic_data&&tempi2->ic_data; + tempi->ic_opcode=IC_IMM; + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + tempi->ic_class=sys_internal_types[IT_I64]; + break; + case IC_OR_OR: + if (OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + tempi->ic_data=tempi1->ic_data||tempi2->ic_data; + tempi->ic_opcode=IC_IMM; + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + tempi->ic_class=sys_internal_types[IT_I64]; + break; + case IC_XOR_XOR: + if (OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { + tempi->ic_data=tempi1->ic_data^^tempi2->ic_data; + tempi->ic_opcode=IC_IMM; + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else if (is_unsigned) + tempi_push->ic_class2=sys_internal_types[IT_U64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + tempi->ic_class=sys_internal_types[IT_I64]; + break; + case IC_COLON: + if (tempc2->sub_type>tempc3->sub_type) + tempi->ic_class=tempc2; + else + tempi->ic_class=tempc3; + tempc=tempi->ic_class; + if (tempc->sub_type==IT_F64) { + if (tempc2->sub_type!=IT_F64) + tempi2->ic_flags|=ICF_R_TO_F64; + if (tempc3->sub_type!=IT_F64) + tempi3->ic_flags|=ICF_R_TO_F64; + } + if (!tempi_push->ic_class->ptr_cnt) { + if (tempi_push->ic_class->sub_type==IT_F64) + tempi_push->ic_class2=sys_internal_types[IT_F64]; + else + tempi_push->ic_class2=sys_internal_types[IT_I64]; + } + break; + case IC_MUL_EQUAL: + if (lx->pass==2 && (!tempc->size||!tempc2->size)) LexPutWarn(lx,"ST_ASSIGN_U0",fun_class); + + if (tempi2->ic_opcode==IC_IMM && + tempc->sub_type!=IT_F64 && + tempc2->sub_type!=IT_F64) { + if (i=tempi2->ic_data) { + if (Bsf(i)==Bsr(i)) { + tempi2->ic_data=Bsf(i); + tempi->ic_opcode=IC_SHL_EQUAL; + } + } + } + if (tempi2->ic_class->sub_type==IT_F64) + tempi->ic_flags=tempi->ic_flags|ICF_USE_F64; + if (tempc->sub_type==IT_F64) { + if (tempc2->sub_type!=IT_F64) + tempi2->ic_flags|=ICF_R_TO_F64; + } + break; + case IC_DIV_EQUAL: + if (lx->pass==2 && (!tempc->size||!tempc2->size)) LexPutWarn(lx,"ST_ASSIGN_U0",fun_class); + + if (tempi2->ic_opcode==IC_IMM && + tempc->sub_type!=IT_F64 && + tempc2->sub_type!=IT_F64 && + (i=tempi2->ic_data) && Bsf(i)==Bsr(i)) { + tempi2->ic_data=Bsf(i); + tempi->ic_opcode=IC_SHR_EQUAL; + } + if (tempi2->ic_class->sub_type==IT_F64) + tempi->ic_flags=tempi->ic_flags|ICF_USE_F64; + if (tempc->sub_type==IT_F64) { + if (tempc2->sub_type!=IT_F64) + tempi2->ic_flags|=ICF_R_TO_F64; + } + break; + case IC_MOD_EQUAL: + if (lx->pass==2 && (!tempc->size||!tempc2->size)) LexPutWarn(lx,"ST_ASSIGN_U0",fun_class); + + if (tempi2->ic_opcode==IC_IMM && + tempc->sub_type!=IT_F64 && + tempc2->sub_type!=IT_F64 && + (i=tempi2->ic_data) && Bsf(i)==Bsr(i)) { + tempi2->ic_data=i-1; + tempi->ic_opcode=IC_AND_EQUAL; + } + if (tempi2->ic_class->sub_type==IT_F64) + tempi->ic_flags=tempi->ic_flags|ICF_USE_F64; + if (tempc->sub_type==IT_F64) { + if (tempc2->sub_type!=IT_F64) + tempi2->ic_flags|=ICF_R_TO_F64; + } + break; + case IC_ADD_EQUAL: + case IC_SUB_EQUAL: + if (lx->pass==2 && (!tempc->size||!tempc2->size)) LexPutWarn(lx,"ST_ASSIGN_U0",fun_class); + + if (tempi2->ic_class->sub_type==IT_F64) + tempi->ic_flags=tempi->ic_flags|ICF_USE_F64; + if (tempc->sub_type==IT_F64) { + if (tempc2->sub_type!=IT_F64) + tempi2->ic_flags|=ICF_R_TO_F64; + } + break; + case IC_ASSIGN: + if (lx->pass==2 && (!tempc->size||!tempc2->size)) LexPutWarn(lx,"ST_ASSIGN_U0",fun_class); + + if (tempc->sub_type==IT_F64) { + if (tempc2->sub_type!=IT_F64) + tempi2->ic_flags|=ICF_R_TO_F64; + } else { + if (tempc2->sub_type==IT_F64) + tempi2->ic_flags|=ICF_R_TO_INT; + } + if (lx->pass==2 && tempi1->ic_class->sub_type!=IT_F64) { + if (tempi1->ic_opcode==IC__PP) { + tempi->ic_opcode=IC_ASSIGN_PP; + tempi1->ic_opcode=IC_NOP; + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_flags=0; + tempi->t.p3c=tempi1->ic_class; + } else if (tempi1->ic_opcode==IC__MM) { + tempi->ic_opcode=IC_ASSIGN_MM; + tempi1->ic_opcode=IC_NOP; + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_flags=0; + tempi->t.p3c=tempi1->ic_class; + } + } + break; + case IC_SHL_EQUAL: + case IC_SHR_EQUAL: + case IC_AND_EQUAL: + case IC_OR_EQUAL: + case IC_XOR_EQUAL: + if (lx->pass==2 && (!tempc->size||!tempc2->size)) LexPutWarn(lx,"ST_ASSIGN_U0",fun_class); + + if (tempc2->sub_type==IT_F64) + tempi2->ic_flags|=ICF_R_TO_INT; + break; + case IC_ENTER: + case IC_LEAVE: + tempi->ic_data=-fun_class->size; + break; + case IC_ADD_RSP: + if (temp_lag[1]->ic_opcode==IC_ADD_RSP) { + tempi->ic_data+=temp_lag[1]->ic_data; + tempi->ic_flags|=temp_lag[1]->ic_flags; + temp_lag[1]->ic_opcode=IC_NOP; + temp_lag[1]->ic_flags=0; + } + case IC_ADD_RSP1: + break; + + case IC_CALL: + case IC_CALL_INDIRECT: + case IC_CALL_INDIRECT2: + case IC_CALL_EXTERN: + case IC_CALL_IMPORT: + case IC_CLI: + case IC_STI: + case IC_HLT: + case IC_PUSHFD: + case IC_POPFD: + case IC_PUSH: + case IC_POP: + case IC_CLD: + case IC_STD: + case IC_INVLPG: + case IC_CLFLUSH: + case IC_PAUSE: + case IC_GET_FLAGS: + case IC_GET_BASE_PTR: + case IC_GET_STK_PTR: + case IC_GET_RAX: + case IC_RETURN_VAL: + case IC_RETURN_VAL2: + case IC_ABS_ADDR: + case IC_HEAP_GLBL: + case IC_ADDR_IMPORT: + case IC_GET_LABEL: + case IC_TYPE: + case IC_RDTSC: + case IC_HPET: + case IC_SET_FLAGS: + case IC_SET_BASE_PTR: + case IC_SET_STK_PTR: + case IC_SET_RAX: + case IC_BSF: + case IC_BSR: + case IC_PREEMPT: + case IC_SIGN_I64: + case IC_TOUPPER: + case IC_ABS_I64: + case IC_LIMIT_I64: + case IC_LIMIT_U64: + case IC_MIN_I64: + case IC_MAX_I64: + case IC_MIN_U64: + case IC_MAX_U64: + case IC_MOD_U64: + case IC_SQR_I64: + case IC_SQR_U64: + case IC_SWAP_U8: + case IC_SWAP_U16: + case IC_SWAP_U32: + case IC_SWAP_U64: + case IC_INU32: + case IC_INU16: + case IC_INU8: + case IC_STRLEN: + case IC_BT: + case IC_BTS: + case IC_BTR: + case IC_BTC: + case IC_BEQU: + case IC_QUE_INIT: + case IC_QUE_REM: + case IC_QUE_INS: + case IC_QUE_INS_REV: + case IC_OUTU32: + case IC_OUTU16: + case IC_OUTU8: + case IC_NOBOUND_SWITCH: + case IC_SWITCH: + case IC_MEMCPY: + case IC_MEMSET: + case IC_MEMSET_U16: + case IC_MEMSET_U32: + case IC_MEMSET_U64: + case IC_ASM: + break; + case IC_LBEQU: + case IC_LBTS: + case IC_LBTR: + case IC_LBTC: + tempi->ic_flags|=ICF_LOCK; + break; + case IC_TO_I64: + if (combined) { + if (tempi1->ic_opcode==IC_F64) { + tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_INT; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi->ic_opcode=IC_IMM; + tempi->ic_data=ToI64(tempi1->ic_data(F64)); + tempi->ic_class=sys_internal_types[IT_I64]; + tempi->ic_class2=sys_internal_types[IT_I64]; + + tempii=tempi1-1; + while (tempii->ic_opcode!=IC_CALL_START) + tempii--; + tempii->ic_opcode=IC_NOP; + + tempii=tempi+1; + while (tempii->ic_opcode!=IC_CALL_END) + tempii++; + tempii->ic_opcode=IC_NOP; + + } else if (tempi1->ic_opcode==IC_IMM) { + tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_F64; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi->ic_opcode=IC_IMM; + tempi->ic_data=tempi1->ic_data; + tempi->ic_class=sys_internal_types[IT_I64]; + tempi->ic_class2=sys_internal_types[IT_I64]; + + tempii=tempi1-1; + while (tempii->ic_opcode!=IC_CALL_START) + tempii--; + tempii->ic_opcode=IC_NOP; + + tempii=tempi+1; + while (tempii->ic_opcode!=IC_CALL_END) + tempii++; + tempii->ic_opcode=IC_NOP; + + } + if (tempi1->ic_flags&ICF_R_TO_F64) { + tempi1->ic_flags=tempi->ic_flags|tempi1->ic_flags&~(ICF_R_TO_F64|ICF_PUSH_RESULT); + tempi->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi1->ic_class=sys_internal_types[IT_I64]; + tempi1->ic_class2=sys_internal_types[IT_I64]; + tempi_push=tempi1; + + i=0; + tempii=tempi1-1; + while (TRUE) { + if (tempii->ic_opcode==IC_CALL_START) { + if (!i) break; + i--; + } else if (tempii->ic_opcode==IC_CALL_END) + i++; + tempii--; + } + tempii->ic_opcode=IC_NOP; + + i=0; + tempii=tempi1+1; + while (TRUE) { + if (tempii->ic_opcode==IC_CALL_END) { + if (!i) break; + i--; + } else if (tempii->ic_opcode==IC_CALL_START) + i++; + tempii++; + } + tempii->ic_opcode=IC_NOP; + } + } + break; + case IC_TO_F64: + if (combined) { + if (tempi1->ic_opcode==IC_IMM) { + tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_F64; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi->ic_opcode=IC_F64; + tempi->ic_data(F64)=ToF64(tempi1->ic_data); + tempi->ic_class=sys_internal_types[IT_F64]; + tempi->ic_class2=sys_internal_types[IT_F64]; + + tempii=tempi1-1; + while (tempii->ic_opcode!=IC_CALL_START) + tempii--; + tempii->ic_opcode=IC_NOP; + + tempii=tempi+1; + while (tempii->ic_opcode!=IC_CALL_END) + tempii++; + tempii->ic_opcode=IC_NOP; + } else if (tempi1->ic_opcode==IC_F64) { + tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_INT; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi->ic_opcode=IC_F64; + tempi->ic_data=tempi1->ic_data; + tempi->ic_class=sys_internal_types[IT_F64]; + tempi->ic_class2=sys_internal_types[IT_F64]; + + tempii=tempi1-1; + while (tempii->ic_opcode!=IC_CALL_START) + tempii--; + tempii->ic_opcode=IC_NOP; + + tempii=tempi+1; + while (tempii->ic_opcode!=IC_CALL_END) + tempii++; + tempii->ic_opcode=IC_NOP; + } + if (tempi1->ic_flags&ICF_R_TO_INT) { + tempi1->ic_flags=tempi->ic_flags|tempi1->ic_flags&~(ICF_R_TO_INT|ICF_PUSH_RESULT); + tempi->ic_flags=0; + tempi->ic_opcode=IC_NOP; + tempi1->ic_class=sys_internal_types[IT_F64]; + tempi1->ic_class2=sys_internal_types[IT_F64]; + tempi_push=tempi1; + + i=0; + tempii=tempi1-1; + while (TRUE) { + if (tempii->ic_opcode==IC_CALL_START) { + if (!i) break; + i--; + } else if (tempii->ic_opcode==IC_CALL_END) + i++; + tempii--; + } + tempii->ic_opcode=IC_NOP; + + i=0; + tempii=tempi1+1; + while (TRUE) { + if (tempii->ic_opcode==IC_CALL_END) { + if (!i) break; + i--; + } else if (tempii->ic_opcode==IC_CALL_START) + i++; + tempii++; + } + tempii->ic_opcode=IC_NOP; + } + } + break; + case IC_TO_BOOL: + if (combined) { + if (tempi1->ic_opcode==IC_IMM || tempi1->ic_opcode==IC_F64) { + tempi->ic_flags|=tempi1->ic_flags&~ICF_R_TO_F64; + tempi1->ic_opcode=IC_NOP; + tempi1->ic_flags=0; + tempi->ic_opcode=IC_IMM; + tempi->ic_data=ToBool(tempi1->ic_data); + tempi->ic_class=sys_internal_types[IT_I64]; + tempi->ic_class2=sys_internal_types[IT_I64]; + + tempii=tempi1-1; + while (tempii->ic_opcode!=IC_CALL_START) + tempii--; + tempii->ic_opcode=IC_NOP; + + tempii=tempi+1; + while (tempii->ic_opcode!=IC_CALL_END) + tempii++; + tempii->ic_opcode=IC_NOP; + + } + } + break; + + case IC_SQR: + case IC_ABS: + case IC_SQRT: + case IC_SIN: + case IC_COS: + case IC_TAN: + case IC_ATAN: + break; + + case IC_BR_ZERO: + if (combined) + tempi_push=OptBrZero(lx,tempi); + break; + case IC_BR_NOT_ZERO: + if (combined) + tempi_push=OptBrNotZero(lx,tempi); + break; + case IC_BR_NOT_EQUAL: + case IC_BR_EQUAL_EQUAL: + case IC_BR_GREATER_EQUAL: + case IC_BR_LESS_EQUAL: + case IC_BR_GREATER: + case IC_BR_LESS: + case IC_BR_NOT_EQUAL2: + case IC_BR_EQUAL_EQUAL2: + case IC_BR_GREATER_EQUAL2: + case IC_BR_LESS_EQUAL2: + case IC_BR_GREATER2: + case IC_BR_LESS2: + case IC_BR_OR_OR_NOT_ZERO: + case IC_BR_OR_OR_ZERO: + case IC_BR_AND_AND_NOT_ZERO: + case IC_BR_AND_AND_ZERO: + case IC_BR_AND_NOT_ZERO: + case IC_BR_AND_ZERO: + case IC_BR_MM_NOT_ZERO: + case IC_BR_MM_ZERO: + case IC_BR_BT: + case IC_BR_BTS: + case IC_BR_BTR: + case IC_BR_BTC: + case IC_BR_NOT_BT: + case IC_BR_NOT_BTS: + case IC_BR_NOT_BTR: + case IC_BR_NOT_BTC: + break; + case IC_BR_LBTS: + case IC_BR_LBTR: + case IC_BR_LBTC: + case IC_BR_NOT_LBTS: + case IC_BR_NOT_LBTR: + case IC_BR_NOT_LBTC: + tempi->ic_flags|=ICF_LOCK; + break; + + case IC_NOP: + if (combined && tempi->ic_flags&ICF_PUSH_RESULT) { + tempii=tempi; + do tempii--; + while (tempii->ic_opcode==IC_NOP); + tempii->ic_flags|=ICF_PUSH_RESULT; + tempi->ic_flags&=~ICF_PUSH_RESULT; + } + break; + case IC_NOP1: + ps->ptr+=tempi->ic_data<<1; + break; + case IC_LABEL: + lb=tempi->ic_data; + while (lb->fwd) + lb=lb->fwd; + lb1=tempi->ic_data; + while (lb2=lb1->fwd) { + lb1->fwd=lb; + lb1=lb2; + } + tempii=temp_lag[1]; + if (tempii->ic_opcode==IC_JMP) { + lb1=tempii->ic_data; + while (lb1->fwd) + lb1=lb1->fwd; + if (lb1==lb) { + tempii->ic_opcode=IC_NOP; + tempi->ic_flags|=tempii->ic_flags; + } + } else if (tempii->ic_opcode==IC_LABEL) { + lb1=tempii->ic_data; + if (!lb1->fwd) + lb1->fwd=lb; + tempii=temp_lag[2]; + if (tempii->ic_opcode==IC_JMP) { + lb1=tempii->ic_data; + while (lb1->fwd) + lb1=lb1->fwd; + if (lb1==lb) { + tempii->ic_opcode=IC_NOP; + tempi->ic_flags|=tempii->ic_flags; + } + } + } + break; + case IC_END: + case IC_ADDR: + case IC_QUESTION: + case IC_RET: + case IC_END_EXP: + case IC_CALL_START: + case IC_CALL_END: + case IC_CALL_END2: + case IC_PUSH_REGS: + case IC_POP_REGS: + case IC_IRQ: + break; + case IC_JMP: + lb=tempi->ic_data; + if (temp_lag[1]->ic_opcode==IC_LABEL) { + while (lb->fwd) + lb=lb->fwd; + lb1=temp_lag[1]->ic_data; + while (lb1->fwd) + lb1=lb1->fwd; + if (lb!=lb1) + lb1->fwd=lb; + } + break; + default: + OptMissing(lx,tempi); + } + if (cmp_arg_cnt[code]==2) { + if (tempi_push->ic_precedence.u8[0]&~ASSOC_MASK==PREC_ASSIGN) + OptFixSizeOf(tempi2,tempi_push,tempi1->ic_class-1); + else { + OptFixSizeOf(tempi1,tempi_push,tempi2->ic_class); + OptFixSizeOf(tempi2,tempi_push,tempi1->ic_class); + } + } + if (cmp_result_cnt[tempi_push->ic_opcode]) { + PrsPush(ps,tempi->ic_class2); + PrsPush(ps,tempi_push); + } + if (tempi->ic_class) { + if (tempi->ic_class->sub_type==IT_F64) + tempi->ic_flags&=~ICF_R_TO_F64; + else + tempi->ic_flags&=~ICF_R_TO_INT; + if (code>IC_END_EXP) + last_with_class=tempi; + } + if (combined) + tempi++; + else + tempi=CBGetIC1(&lx->cbh); + } + OptEnd(lx,ps); + + /* + This is for determining type conversions + for passing args to funs. + */ + return last_with_class; +} + diff --git a/SparrowOS/Compiler/OptPass3.CPP b/SparrowOS/Compiler/OptPass3.CPP new file mode 100644 index 0000000..2751989 --- /dev/null +++ b/SparrowOS/Compiler/OptPass3.CPP @@ -0,0 +1,650 @@ +I64 CmpType(CHashClass *tempc) +{ + if (tempc) { + while (tempc->fwd_class) + tempc=tempc->fwd_class; + return tempc->sub_type; + } + return 0; +} + +I64 CmpPType(CHashClass *tempc) +{ + if (tempc) { + if (tempc->ptr_cnt) + tempc--; + while (tempc->fwd_class) + tempc=tempc->fwd_class; + return tempc->sub_type; + } + return 0; +} + +U0 CmpF1PushPop(CIntermediateCode *tempi,CIntermediateCode *tempi2) +{ + if (Bt(fpop_bitmap,tempi2->ic_opcode)|| tempi2->ic_flags&ICF_R_TO_F64) + Bts(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0); +} + +U0 CmpF2PushPop(CIntermediateCode *tempi,CIntermediateCode *tempi1,CIntermediateCode *tempi2) +{ + if ((tempi2->ic_opcode==IC_MOV || tempi2->ic_opcode==IC_F64) && + !(tempi2->ic_flags&ICF_R_TO_F64) && + (Bt(fpop_bitmap,tempi1->ic_opcode) || tempi1->ic_flags&ICF_R_TO_F64)) + Bts(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0); + else if ((Bt(fpop_bitmap,tempi2->ic_opcode) || tempi2->ic_flags&ICF_R_TO_F64)&& + !(tempi1->ic_flags&ICF_R_TO_F64)) + Bts(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0); +} + +class OptMemberVar +{ + I64 score,offset,lea_balance; + CMemberList *m; +}; + +I64 OptMVCompare(OptMemberVar *mv1,OptMemberVar *mv2) +{ + return mv2->score-mv1->score; +} + +U0 OptPass3(CLex *lx,CHashFun *fun_class,COptReg *register_offsets) +{ + CHashClass *tempc,*tempc1,*tempc2,*tempc3; + CCodeBlkMisc *lb; + CIntermediateCode *tempi,*tempi1,*tempi2,*tempi3, + *tempil1,*tempil2, + *temp_lag[4]; + I64 code,i,j,l,member_cnt,used_reg_mask=0; + CMemberList *tempm; + CPrsStk *ps=OptStart(lx,temp_lag); + OptMemberVar *mv=NULL; + for (i=0;imember_cnt; + if (Bt(&fun_class->flags,Ff_DOT_DOT_DOT)) + member_cnt+=2; + mv=CAlloc(member_cnt*sizeof(OptMemberVar)); + member_cnt=0; + tempm=fun_class->member_list; + while (tempm) { + tempc=tempm->member_class; + while (tempc->fwd_class) + tempc=tempc->fwd_class; + if (0<=tempm->registerregister)) + PrintFWarn("%S\n $$LK-A,\"FL:%s,%d\"$$ '%s' in '%s'\n","ST_REG_IN_USE", + lx->cur_lfn->name,lx->cur_lfn->line_num,tempm->str,fun_class->str); + register_offsets[tempm->register].offset=tempm->offset; + register_offsets[tempm->register].m=tempm; + } else if (tempc->sub_type!=IT_F64 && tempm->register!=CREG_NONE || + tempm->register==CREG_ALLOC) { + if (tempm->register==CREG_ALLOC) + mv[member_cnt].score=MAX_I64/2; //big but not too big + mv[member_cnt].offset=tempm->offset; + mv[member_cnt++].m=tempm; + } else { + if (tempm->register==CREG_ALLOC) + PrintFWarn("%S\n $$LK-A,\"FL:%s,%d\"$$ '%s' in '%s'\n","ST_CANT_REG_VAR", + lx->cur_lfn->name,lx->cur_lfn->line_num,tempm->str,fun_class->str); + } + tempm=tempm->next; + } + } else + member_cnt=0; + + tempi=lx->cbh.cb_in_ptr; + if (tempi->ic_opcode==IC_START) + tempi++; + while (code=tempi->ic_opcode) { + if (code!=IC_NOP) { + OptNext(tempi,temp_lag); + tempil1=temp_lag[1]; + tempil2=temp_lag[2]; + tempc=tempi->ic_class; + nobound_switch (cmp_arg_cnt[code]) { + case 9: + ps->ptr-=tempi->ic_data>>3; + break; + case 3: + tempi3=PrsPop(ps); + if (tempi3->ic_flags&ICF_R_TO_F64) + tempc3=sys_internal_types[IT_F64]; + else if (tempi3->ic_flags & ICF_R_TO_INT) + tempc3=sys_internal_types[IT_I64]; + else + tempc3=tempi->t.p3c; + tempi->p3.type=TY_STK+CmpType(tempc3); + tempi->p3.ptype=CmpPType(tempc3); + tempi->ic_flags|=ICF_P3_WAS_STK; + case 2: + tempi2=PrsPop(ps); + if (tempi2->ic_flags&ICF_R_TO_F64) + tempc2=sys_internal_types[IT_F64]; + else if (tempi2->ic_flags & ICF_R_TO_INT) + tempc2=sys_internal_types[IT_I64]; + else + tempc2=tempi->t.p2c; + tempi->p2.type=TY_STK+CmpType(tempc2); + tempi->p2.ptype=CmpPType(tempc2); + tempi->ic_flags|=ICF_P2_WAS_STK; + case 1: + tempi1=PrsPop(ps); + if (tempi1->ic_flags&ICF_R_TO_F64) + tempc1=sys_internal_types[IT_F64]; + else if (tempi1->ic_flags & ICF_R_TO_INT) + tempc1=sys_internal_types[IT_I64]; + else + tempc1=tempi->t.p1c; + tempi->p1.type=TY_STK+CmpType(tempc1); + tempi->p1.ptype=CmpPType(tempc1); + tempi->ic_flags|=ICF_P1_WAS_STK; + break; + case 0: //nobound_switch + break; + } + if (cmp_result_cnt[code]) { + tempi->r.type=TY_STK+CmpType(tempc); + tempi->r.ptype=CmpPType(tempc); + tempi->ic_flags|=ICF_R_WAS_STK; + PrsPush(ps,tempi); + } + nobound_switch (code) { + case IC_F64: + tempi->ic_flags&=~ICF_R_TO_F64; + if (tempi->ic_flags&ICF_R_TO_INT) { + tempi->ic_data=ToI64(tempi->ic_data(F64)); + tempi->ic_flags&=~ICF_R_TO_INT; + tempi->ic_opcode=IC_IMM; + } + break; + case IC_IMM: + tempi->ic_flags&=~ICF_R_TO_INT; + if (tempi->ic_flags&ICF_R_TO_F64) { + tempi->ic_data(F64)=ToF64(tempi->ic_data); + tempi->ic_flags&=~ICF_R_TO_F64; + tempi->ic_opcode=IC_F64; + } + break; + case IC_STR_CONST: + case IC_FS: + case IC_GS: + case IC_MOV_FS: + case IC_MOV_GS: + case IC_RIP: + case IC_PUSH_CMP: + break; + case IC_RBP: + tempi->ic_opcode=IC_REG; + tempi->p1.reg=CREG_RBP; + break; + case IC_REG: + case IC_COM: + case IC_NATIVE_TYPECAST: + case IC_NOT: + case IC_UNARY_MINUS: + break; + case IC_DEREF: + tempi->p1.ptype=tempi->r.type&IT_MASK; + if (tempi1->ic_opcode==IC_LEA) { + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP; + tempi->p1.reg=tempi1->p1.reg; + tempi->p1.disp=tempi1->p1.disp; + tempi->p1.type=TY_DISP+tempi->r.type&IT_MASK; + tempi->p1.ptype=tempi->r.ptype; + tempi->ic_opcode=IC_MOV; + if (tempi->p1.reg==CREG_RBP) + for (i=0;ip1.disp) { + mv[i].lea_balance--; + mv[i].score+=1+tempi->ic_indent_level; + break; + } + } else if (tempil1->ic_opcode==IC_ADD_CONST) { + if (tempil2->ic_opcode==IC_REG) { + tempi->ic_flags|=tempil2->ic_flags|tempil1->ic_flags; + tempil2->ic_opcode=IC_NOP; + tempil1->ic_opcode=IC_NOP; + tempi->p1.reg=tempil2->p1.reg; + tempi->p1.disp=tempi->ic_data; + tempi->p1.type=TY_DISP+tempi->r.type&IT_MASK; + tempi->p1.ptype=tempi->r.ptype; + tempi->ic_opcode=IC_MOV; + } + } + break; + case IC__PP: + case IC__MM: + case IC_PP_: + case IC_MM_: + tempi->r.ptype=CmpPType(tempi->t.p1c); + case IC_DEREF_PP: + case IC_DEREF_MM: + if (tempi1->ic_opcode==IC_LEA && + tempi1->p1.type&TY_MASK==TY_DISP && + tempi1->p1.reg==CREG_RBP) + for (i=0;ip1.disp) { + mv[i].lea_balance--; + mv[i].score+=1+tempi->ic_indent_level; + break; + } + tempi->p1.ptype=tempi->r.type&IT_MASK; + break; + case IC_POWER: + case IC_SHL: + case IC_SHR: + case IC_MOD: + case IC_AND: + case IC_OR: + case IC_XOR: + break; + + case IC_MUL: + case IC_DIV: + if (tempc->sub_type==IT_F64) { + CmpF2PushPop(tempi,tempi1,tempi2); + break; + } + break; + case IC_ADD: + if (tempc->sub_type==IT_F64) { + CmpF2PushPop(tempi,tempi1,tempi2); + break; + } + if (OptFixupBinaryOp2(&tempi1,&tempi2)) { + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP; + if (tempi->t.p1t!=tempi2) + tempi->t.p1c=tempi->t.p2c; + tempi->ic_data=tempi1->ic_data; + tempi->ic_opcode=IC_ADD_CONST; + tempi->p1.ptype=tempi->r.type&IT_MASK; + tempi->p2.type=TY_NULL; + if (tempil2->ic_opcode==IC_REG && + tempil2->p1.reg==CREG_RBP) { + tempi->ic_flags|=tempil2->ic_flags; + tempil2->ic_opcode=IC_NOP; + tempi->ic_opcode=IC_LEA; + tempi->p1.reg=CREG_RBP; + tempi->p1.type=TY_DISP+tempi->p1.type&IT_MASK; + tempi->p1.disp=tempi->ic_data; + for (i=0;iic_data) { + mv[i].lea_balance++; + mv[i].score+=1+tempi->ic_indent_level; + break; + } + } + } + break; + case IC_SUB: + if (tempc->sub_type==IT_F64) { + CmpF2PushPop(tempi,tempi1,tempi2); + break; + } + if (tempi2->ic_opcode==IC_IMM) { + tempi->ic_flags|=tempi2->ic_flags; + tempi2->ic_opcode=IC_NOP; + tempi->ic_data=tempi2->ic_data; + tempi->ic_opcode=IC_SUB_CONST; + tempi->p2.type=TY_NULL; + } + break; + case IC_LESS: + case IC_GREATER: + case IC_LESS_EQUAL: + case IC_GREATER_EQUAL: + if (tempi->ic_flags&ICF_USE_F64) + CmpF2PushPop(tempi,tempi1,tempi2); + break; + case IC_EQUAL_EQUAL: + case IC_NOT_EQUAL: + case IC_AND_AND: + case IC_OR_OR: + case IC_XOR_XOR: + case IC_COLON: + break; + + case IC_MUL_EQUAL: + case IC_DIV_EQUAL: + case IC_ADD_EQUAL: + case IC_SUB_EQUAL: + if (tempc->sub_type==IT_F64) + CmpF1PushPop(tempi,tempi2); + case IC_ASSIGN_PP: + case IC_ASSIGN_MM: + case IC_ASSIGN: + case IC_SHL_EQUAL: + case IC_SHR_EQUAL: + case IC_MOD_EQUAL: + case IC_AND_EQUAL: + case IC_OR_EQUAL: + case IC_XOR_EQUAL: + if (tempi1->ic_opcode==IC_LEA && + tempi1->p1.type&TY_MASK==TY_DISP && + tempi1->p1.reg==CREG_RBP) + for (i=0;ip1.disp) { + mv[i].lea_balance--; + mv[i].score+=1+tempi->ic_indent_level; + break; + } + tempi->p1.ptype=tempi->r.type&IT_MASK; + tempi->r.ptype=CmpPType(tempi->t.p1c); + break; + case IC_RETURN_VAL: + case IC_RETURN_VAL2: + if (tempc) { + if (tempc->sub_type==IT_F64 && tempil1->ic_class->sub_type!=IT_F64) + tempil1->ic_flags|=ICF_R_TO_F64; + else if (tempc->sub_type!=IT_F64 && tempil1->ic_class->sub_type==IT_F64) + tempil1->ic_flags|=ICF_R_TO_INT; + } + break; + case IC_SQR: + case IC_ABS: + case IC_SQRT: + case IC_SIN: + case IC_COS: + case IC_TAN: + case IC_ATAN: + if (tempc->sub_type==IT_F64) + CmpF1PushPop(tempi,tempi1); + break; + case IC_SHL_CONST: + case IC_SHR_CONST: + case IC_ENTER: + case IC_ADD_RSP: + case IC_ADD_RSP1: + case IC_CALL: + case IC_CALL_INDIRECT: + case IC_CALL_INDIRECT2: + case IC_CALL_EXTERN: + case IC_CALL_IMPORT: + case IC_CLI: + case IC_STI: + case IC_HLT: + case IC_PUSHFD: + case IC_POPFD: + case IC_PUSH: + case IC_POP: + case IC_CLD: + case IC_STD: + case IC_INVLPG: + case IC_CLFLUSH: + case IC_PAUSE: + case IC_GET_FLAGS: + case IC_RDTSC: + case IC_HPET: + case IC_SET_FLAGS: + case IC_GET_BASE_PTR: + case IC_SET_BASE_PTR: + case IC_GET_STK_PTR: + case IC_GET_RAX: + case IC_SET_STK_PTR: + case IC_SET_RAX: + case IC_ABS_ADDR: + case IC_HEAP_GLBL: + case IC_ADDR_IMPORT: + case IC_TYPE: + case IC_BT: + case IC_BTS: + case IC_BTR: + case IC_BTC: + case IC_BEQU: + case IC_LBTS: + case IC_LBTR: + case IC_LBTC: + case IC_LBEQU: + case IC_BSF: + case IC_BSR: + case IC_PREEMPT: + case IC_SIGN_I64: + case IC_TOUPPER: + case IC_TO_I64: + case IC_TO_F64: + case IC_TO_BOOL: + case IC_ABS_I64: + case IC_LIMIT_I64: + case IC_LIMIT_U64: + case IC_MIN_I64: + case IC_MAX_I64: + case IC_MIN_U64: + case IC_MAX_U64: + case IC_MOD_U64: + case IC_SQR_I64: + case IC_SQR_U64: + case IC_SWAP_U8: + case IC_SWAP_U16: + case IC_SWAP_U32: + case IC_SWAP_U64: + case IC_QUE_INIT: + case IC_QUE_INS: + case IC_QUE_INS_REV: + case IC_QUE_REM: + case IC_MEMCPY: + case IC_MEMSET: + case IC_MEMSET_U16: + case IC_MEMSET_U32: + case IC_MEMSET_U64: + case IC_INU32: + case IC_INU16: + case IC_INU8: + case IC_STRLEN: + case IC_OUTU32: + case IC_OUTU16: + case IC_OUTU8: + case IC_ASM: + break; + case IC_NOBOUND_SWITCH: + case IC_SWITCH: + lb=tempi->ic_data; + lb=lb->dft; + while (lb->fwd) + lb=lb->fwd; + lb->flags|=CBMF_USED; + break; + case IC_BR_ZERO: + case IC_BR_NOT_ZERO: + if (tempi1->ic_opcode==IC_IMM || + tempi1->ic_opcode==IC_F64) { + tempi1->ic_opcode=IC_NOP; + tempi->p1.type=TY_NULL; + tempi1->r.type=TY_NULL; + if (code==IC_BR_ZERO ^^ tempi1->ic_data) + tempi->ic_opcode=IC_JMP; + else { + tempi->ic_opcode=IC_NOP; + tempi->ic_class=NULL; + break; + } + } + goto here1; + case IC_BR_AND_ZERO: + if (tempi1->ic_opcode==IC_IMM) { + i=Bsr(tempi1->ic_data); + if (0<=i==Bsf(tempi1->ic_data)) { + tempi1->ic_data=i; + tempi->ic_flags|=ICF_NOT_ADDR; + tempi->ic_opcode=IC_BR_NOT_BT; + goto here1; + } + } + if (tempi2->ic_opcode==IC_IMM) { + i=Bsr(tempi2->ic_data); + if (0<=i==Bsf(tempi2->ic_data)) { + tempi2->ic_data=i; + tempi->ic_flags|=ICF_SWAP|ICF_NOT_ADDR; + tempi->ic_opcode=IC_BR_NOT_BT; + } + } + goto here1; + case IC_BR_AND_NOT_ZERO: + if (tempi1->ic_opcode==IC_IMM) { + i=Bsr(tempi1->ic_data); + if (0<=i==Bsf(tempi1->ic_data)) { + tempi1->ic_data=i; + tempi->ic_flags|=ICF_NOT_ADDR; + tempi->ic_opcode=IC_BR_BT; + goto here1; + } + } + if (tempi2->ic_opcode==IC_IMM) { + i=Bsr(tempi2->ic_data); + if (0<=i==Bsf(tempi2->ic_data)) { + tempi2->ic_data=i; + tempi->ic_flags|=ICF_SWAP|ICF_NOT_ADDR; + tempi->ic_opcode=IC_BR_BT; + } + } + goto here1; + case IC_BR_MM_ZERO: + case IC_BR_MM_NOT_ZERO: + if (tempi1->ic_opcode==IC_LEA && + tempi1->p1.type&TY_MASK==TY_DISP && + tempi1->p1.reg==CREG_RBP) + for (i=0;ip1.disp) { + mv[i].lea_balance--; + mv[i].score+=1+tempi->ic_indent_level; + break; + } + tempi->p1.ptype=CmpType(tempc); + goto here1; + case IC_BR_GREATER_EQUAL: + case IC_BR_LESS_EQUAL: + case IC_BR_GREATER: + case IC_BR_LESS: + if (tempi->ic_flags&ICF_USE_F64) + CmpF2PushPop(tempi,tempi1,tempi2); + case IC_BR_GREATER_EQUAL2: + case IC_BR_LESS_EQUAL2: + case IC_BR_GREATER2: + case IC_BR_LESS2: + case IC_BR_NOT_EQUAL2: + case IC_BR_EQUAL_EQUAL2: + case IC_BR_NOT_EQUAL: + case IC_BR_EQUAL_EQUAL: + case IC_GET_LABEL: + case IC_BR_BT: + case IC_BR_BTS: + case IC_BR_BTR: + case IC_BR_BTC: + case IC_BR_NOT_BT: + case IC_BR_NOT_BTS: + case IC_BR_NOT_BTR: + case IC_BR_NOT_BTC: + case IC_BR_LBTS: + case IC_BR_LBTR: + case IC_BR_LBTC: + case IC_BR_NOT_LBTS: + case IC_BR_NOT_LBTR: + case IC_BR_NOT_LBTC: + case IC_JMP: +here1: + lb=tempi->ic_data; + if (!(tempi->ic_flags&ICF_PUSH_CMP)) + while (lb->fwd) + lb=lb->fwd; + lb->flags|=CBMF_USED; + break; + case IC_LEAVE: + case IC_RET: + break; + case IC_ADDR: + case IC_NOP: + case IC_END: + case IC_QUESTION: + case IC_IRQ: + case IC_END_EXP: + case IC_CALL_END: + case IC_CALL_END2: + case IC_CALL_START: + case IC_PUSH_REGS: + case IC_POP_REGS: + case IC_LABEL: + break; + case IC_NOP1: + ps->ptr+=tempi->ic_data; + break; + + default: + OptMissing(lx,tempi); + } + } + tempi++; + } + if (fun_class) { + fun_class->used_reg_mask=fun_class->used_reg_mask&~(CREG_VARS_MASK|CREG_NON_PTR_MASK)|used_reg_mask; + if (!Bt(&lx->opts,OPTf_NO_REG_VAR) && + !(lx->flags & LF_NO_REG_OPT)) { + QSort(mv,member_cnt,sizeof(OptMemberVar),&OptMVCompare); + while (member_cnt && !mv[member_cnt-1].score) + member_cnt--; + j=0; + for (i=0;iregister==CREG_ALLOC) + PrintFWarn("%S\n $$LK-A,\"FL:%s,%d\"$$ '%s' in '%s'\n","ST_CANT_REG_VAR", + lx->cur_lfn->name,lx->cur_lfn->line_num,mv[i].m->str,fun_class->str); + } + } + if (j>0) { + if (j>num_reg_vars) { + l=0; + for (i=0;imember_class; + while (tempc->fwd_class) + tempc=tempc->fwd_class; + if (!tempc->ptr_cnt && !tempm->dim.next) { + while (lused_reg_mask,to_non_ptr_vars_map[l])) + l++; + if (lregister=to_non_ptr_vars_map[l++]; + register_offsets[tempm->register].offset=mv[i].offset; + register_offsets[tempm->register].m=tempm; + if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) + "Fun:%s\nReg %Z Var \"%s\" %08X[RBP]\n", + fun_class->str,tempm->register,"ST_U64_REGS", + tempm->str,register_offsets[tempm->register].offset; + mv[i].offset=0; //flag as reg var + } + } + } + } + l=0; + for (i=0;idim.next|| + tempm->offset>0 && StrCmp(tempm->str,"argv"))) { + while (lused_reg_mask,to_reg_vars_map[l])) + l++; + if (lregister=to_reg_vars_map[l++]; + register_offsets[tempm->register].offset=mv[i].offset; + register_offsets[tempm->register].m=tempm; + if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT)) + "Reg %Z Var \"%s\" %08X[RBP]\n",tempm->register,"ST_U64_REGS", + tempm->str,register_offsets[tempm->register].offset; + } + } + } + } + } + Free(mv); + } + OptEnd(lx,ps); +} + diff --git a/SparrowOS/Compiler/OptPass4.CPP b/SparrowOS/Compiler/OptPass4.CPP new file mode 100644 index 0000000..8b39f20 --- /dev/null +++ b/SparrowOS/Compiler/OptPass4.CPP @@ -0,0 +1,851 @@ +Bool OptIC4(CIntermediateCode *tempi) +{ + I64 i,ty,pt,ty1,pt1; + CIntermediateCode *tempil1,*tempil2; + + if (tempi->ic_opcoder.type&TY_MASK==TY_STK && + !(tempil2->ic_flags&ICF_PUSH_RESULT)) { + if (tempil1->ic_opcode==IC_ADD_CONST && + tempil1->p1.type&TY_MASK==TY_STK) { + if ((tempil2->ic_opcode==IC_REG || + tempil2->ic_opcode==IC_MOV) && + tempil2->p1.type&TY_MASK==TY_REG) { + i=tempil1->ic_data; + if (MIN_I32<=i<=MAX_I32 && + !Bt(&non_ptr_vars_mask,tempil2->p1.reg)) { + tempil1->ic_flags|=tempil2->ic_flags&ICF_NO_CVT_MASK; + tempil2->ic_opcode=IC_NOP; + tempil2->p1.type=TY_NULL+tempil2->p1.type&IT_MASK; + tempil2->r.type=TY_NULL+tempil2->r.type&IT_MASK; + tempil1->ic_opcode=IC_LEA; + tempil1->p1.type=TY_DISP+tempil1->p1.type&IT_MASK; + tempil1->p1.reg=tempil2->p1.reg; + tempil1->p1.disp=i; + return TRUE; + } + } else if (tempil2->ic_opcode==IC_SHL_CONST && + tempil2->p1.type&TY_MASK==TY_REG) { + i=tempil1->ic_data; + if (MIN_I32<=i<=MAX_I32 && + tempil2->p1.reg!=CREG_RSP && + 1<=tempil2->ic_data<=3) { + tempil1->ic_flags|=tempil2->ic_flags&ICF_NO_CVT_MASK; + tempil2->ic_opcode=IC_NOP; + tempil2->p1.type=TY_NULL+tempil2->p1.type&IT_MASK; + tempil2->r.type=TY_NULL+tempil2->r.type&IT_MASK; + tempil1->ic_opcode=IC_LEA; + tempil1->p1.type=TY_SIB+tempil1->p1.type&IT_MASK; + tempil1->p1.reg=tempil2->p1.reg<<8+CREG_NONE; + if (tempil2->ic_data==1) + tempil1->p1.reg|=0x4000; + else if (tempil2->ic_data==2) + tempil1->p1.reg|=0x8000; + else + tempil1->p1.reg|=0xC000; + tempil1->p1.disp=i; + return TRUE; + } + } + } + if (tempil2->ic_opcode==IC_MOV || + tempil2->ic_opcode==IC_REG) { + if (tempil1->p3.type&TY_MASK==TY_STK) { + if (tempil2->ic_flags & ICF_R_TO_INT) { + if (tempil2->p1.type&TY_MASK==TY_IMM) + tempil2->p1.disp=tempil2->p1.disp(F64); + else + tempil1->ic_flags|=ICF_P3_TO_INT; + } else if (tempil2->ic_flags&ICF_R_TO_F64) { + if (tempil2->p1.type&TY_MASK==TY_IMM) + tempil2->p1.disp(F64)=tempil2->p1.disp; + else + tempil1->ic_flags|=ICF_P3_TO_F64; + } + + ty=tempil1->p3.type&IT_MASK; + ty1=tempil2->p1.type&IT_MASK; + if (ty1 && ty1r.type&IT_MASK; + if (ty1 && ty1p3.type=tempil2->p1.type&TY_MASK+ty; + + pt=tempil1->p3.ptype; + pt1=tempil2->p1.ptype; + if (pt1 && pt1r.ptype; + if (pt1 && pt1p3.ptype=pt; + + tempil1->p3.reg=tempil2->p1.reg; + tempil1->p3.disp=tempil2->p1.disp; + tempil1->ic_flags|=tempil2->ic_flags&ICF_NO_CVT_MASK; + tempil2->ic_opcode=IC_NOP1; + tempil2->ic_data=1; + tempil2->p1.type=TY_NULL+tempil2->p1.type&IT_MASK; + tempil2->r.type=TY_NULL+tempil2->r.type&IT_MASK; + return TRUE; + } + if (tempil1->p2.type&TY_MASK==TY_STK) { + if (tempil2->ic_flags & ICF_R_TO_INT) { + if (tempil2->p1.type&TY_MASK==TY_IMM) + tempil2->p1.disp=tempil2->p1.disp(F64); + else + tempil1->ic_flags|=ICF_P2_TO_INT; + } else if (tempil2->ic_flags&ICF_R_TO_F64) { + if (tempil2->p1.type&TY_MASK==TY_IMM) + tempil2->p1.disp(F64)=tempil2->p1.disp; + else + tempil1->ic_flags|=ICF_P2_TO_F64; + } + + ty=tempil1->p2.type&IT_MASK; + ty1=tempil2->p1.type&IT_MASK; + if (ty1 && ty1r.type&IT_MASK; + if (ty1 && ty1p2.type=tempil2->p1.type&TY_MASK+ty; + + pt=tempil1->p2.ptype; + pt1=tempil2->p1.ptype; + if (pt1 && pt1r.ptype; + if (pt1 && pt1p2.ptype=pt; + + tempil1->p2.reg=tempil2->p1.reg; + tempil1->p2.disp=tempil2->p1.disp; + tempil1->ic_flags|=tempil2->ic_flags&ICF_NO_CVT_MASK; + tempil2->ic_opcode=IC_NOP1; + tempil2->ic_data=1; + tempil2->p1.type=TY_NULL+tempil2->p1.type&IT_MASK; + tempil2->r.type=TY_NULL+tempil2->r.type&IT_MASK; + return TRUE; + } + if (tempil1->p1.type&TY_MASK==TY_STK) { + if (tempil2->ic_flags & ICF_R_TO_INT) { + if (tempil2->p1.type&TY_MASK==TY_IMM) + tempil2->p1.disp=tempil2->p1.disp(F64); + else + tempil1->ic_flags|=ICF_P1_TO_INT; + } else if (tempil2->ic_flags&ICF_R_TO_F64) { + if (tempil2->p1.type&TY_MASK==TY_IMM) { + if (tempil2->p1.type&1) //signed/unsigned + tempil2->p1.disp(F64)=tempil2->p1.disp(U64); + else + tempil2->p1.disp(F64)=tempil2->p1.disp(I64); + } else + tempil1->ic_flags|=ICF_P1_TO_F64; + } + + ty=tempil1->p1.type&IT_MASK; + ty1=tempil2->p1.type&IT_MASK; + if (ty1 && ty1r.type&IT_MASK; + if (ty1 && ty1p1.type=tempil2->p1.type&TY_MASK+ty; + + pt=tempil1->p1.ptype; + pt1=tempil2->p1.ptype; + if (pt1 && pt1r.ptype; + if (pt1 && pt1p1.ptype=pt; + + tempil1->p1.reg=tempil2->p1.reg; + tempil1->p1.disp=tempil2->p1.disp; + tempil1->ic_flags|=tempil2->ic_flags&ICF_NO_CVT_MASK; + tempil2->ic_opcode=IC_NOP1; + tempil2->ic_data=1; + tempil2->p1.type=TY_NULL+tempil2->p1.type&IT_MASK; + tempil2->r.type=TY_NULL+tempil2->r.type&IT_MASK; + return TRUE; + } + } + if (tempil1->ic_opcode==IC_DEREF) { + if (tempil2->ic_opcode==IC_ADD_CONST && + tempil2->p1.type&TY_MASK==TY_REG && + tempil1->p1.type&TY_MASK==TY_STK) { + i=tempil2->ic_data; + if (MIN_I32<=i<=MAX_I32 && + !Bt(&non_ptr_vars_mask,tempil2->p1.reg)) { + tempil1->ic_flags|=tempil2->ic_flags; + tempil2->ic_opcode=IC_NOP1; + tempil2->ic_data=-1; + tempil2->p1.type=TY_NULL+tempil2->p1.type&IT_MASK; + tempil2->r.type=TY_NULL+tempil2->r.type&IT_MASK; + tempil1->ic_opcode=IC_MOV; + tempil1->p1.type=TY_DISP+tempil1->p1.ptype; + tempil1->p1.reg=tempil2->p1.reg; + tempil1->p1.disp=i; + return TRUE; + } + } + if (tempil2->ic_opcode==IC_LEA && + tempil1->p1.type&TY_MASK==TY_STK) { + tempil1->ic_flags|=tempil2->ic_flags; + tempil2->ic_opcode=IC_NOP; + tempil1->ic_opcode=IC_MOV; + tempil1->p1.type=tempil2->p1.type&TY_MASK+tempil1->p1.ptype; + tempil1->p1.reg=tempil2->p1.reg; + tempil1->p1.disp=tempil2->p1.disp; + return TRUE; + } + } + } + if (tempil1->ic_opcode==IC_DEREF) { + if (tempil1->p1.type&TY_MASK==TY_REG) { + tempil1->p1.type=TY_DISP+tempil1->p1.ptype; + tempil1->p1.disp=0; + tempil1->ic_opcode=IC_MOV; + return TRUE; + } + } + return FALSE; +} + +U0 OptPass4(CLex *lx,COptReg *register_offsets,I64 *_type) +{ + CHashClass *tempc,*tempc1,*tempc2,*tempc3; + CIntermediateCode *tempi,*tempi1,*tempi2,*tempi3,*tempil1,*tempil2,*tempil3, + *temp_lag[4]; + I64 code,i; + CPrsStk *ps=OptStart(lx,temp_lag); + Bool dead_code=FALSE; + CCodeBlkMisc *lb; + + if (_type) + *_type=IT_I64; + + tempi=lx->cbh.cb_in_ptr; + if (tempi->ic_opcode==IC_START) + tempi++; + while (code=tempi->ic_opcode) { + OptNext2(tempi,temp_lag); + if (dead_code&&code!=IC_LABEL) + tempi->ic_opcode=IC_NOP; + else { + tempc=tempi->ic_class; + + tempi3=&opt_nop; + tempi2=&opt_nop; + tempi1=&opt_nop; + + tempil1=temp_lag[1]; + tempil2=temp_lag[2]; + tempil3=temp_lag[3]; + nobound_switch (cmp_arg_cnt[code]) { + case 9: + ps->ptr-=tempi->ic_data>>3; + break; + case 3: + tempi3=PrsPop(ps); + tempc3=tempi3->ic_class; + case 2: + tempi2=PrsPop(ps); + tempc2=tempi2->ic_class; + case 1: + tempi1=PrsPop(ps); + tempc1=tempi1->ic_class; + break; + case 0: //nobound_switch + break; + } + nobound_switch (code) { + case IC_IMM: + case IC_TYPE: + tempi->p1.type=TY_IMM+IT_I64; + tempi->p1.disp=tempi->ic_data; + tempi->ic_opcode=IC_MOV; + break; + case IC_F64: + tempi->p1.type=TY_IMM+IT_I64; + tempi->p1.disp=tempi->ic_data; + tempi->p1.ptype=IT_F64; + tempi->ic_opcode=IC_MOV; + break; + case IC_STR_CONST: + case IC_FS: + case IC_GS: + case IC_MOV_FS: + case IC_MOV_GS: + case IC_RIP: + case IC_RBP: + case IC_REG: + case IC_COM: + case IC_NATIVE_TYPECAST: + case IC_NOT: + case IC_UNARY_MINUS: + case IC_PUSH_CMP: + break; + case IC_MOV: + if (tempi->p1.type&TY_MASK==TY_DISP && + tempi->p1.reg==CREG_RBP) { + i=CmpOffset2Reg(tempi->p1.disp,register_offsets); + if (i>=0) { + tempi->p1.type=TY_REG+tempi->p1.type&IT_MASK; + tempi->p1.reg=i; + tempi->p1.disp=0; + } + } + break; + case IC_DEREF: + if (tempi1->ic_opcode==IC_LEA) { + if (tempi1->p1.type&TY_MASK==TY_DISP && + tempi1->p1.reg==CREG_RBP) { + i=CmpOffset2Reg(tempi1->p1.disp,register_offsets); + if (i>=0) { + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP; + tempi->ic_opcode=IC_REG; + tempi->p1.type=TY_REG+tempi->p1.type&IT_MASK; + tempi->p1.reg=i; + tempi->p1.disp=0; + } + } + } else if ((tempi1->ic_opcode==IC_ABS_ADDR || + tempi1->ic_opcode==IC_MOV && + tempi1->p1.type==TY_IMM+IT_I64 && + 0<=tempi1->p1.disp<=MAX_I32) && + !(tempi1->ic_flags&ICF_NO_RIP)) { + if (tempi1->ic_opcode==IC_ABS_ADDR) + tempi->p1.disp=tempi1->ic_data; + else + tempi->p1.disp=tempi1->p1.disp; + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP; + tempi1->p1.type=TY_NULL+tempi1->p1.type&IT_MASK; + tempi1->r.type=TY_NULL+tempi1->r.type&IT_MASK; + tempi->ic_opcode=IC_MOV; + tempi->p1.type=TY_RIP_DISP32+tempi->p1.ptype; + tempi->p1.reg=CREG_RIP; + } + break; + case IC_BR_MM_ZERO: + case IC_BR_MM_NOT_ZERO: + //(branch ++ to zero is unlikely) + case IC_DEREF_PP: + case IC_DEREF_MM: + case IC__PP: + case IC__MM: + case IC_PP_: + case IC_MM_: + if (tempi1->ic_opcode==IC_LEA) { + if (tempi1->p1.type&TY_MASK==TY_DISP && + tempi1->p1.reg==CREG_RBP) { + i=CmpOffset2Reg(tempi1->p1.disp,register_offsets); + if (i>=0) { + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP1; + tempi1->ic_data=1; + tempi1->r.type=TY_NULL; + tempi->p1.type=TY_REG+tempi->p1.type&IT_MASK; + tempi->p1.reg=i; + tempi->p1.disp=0; + tempi->ic_flags|=ICF_NOT_ADDR; + } else + goto lea_gone; + } else { + lea_gone: + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP1; + tempi1->ic_data=1; + tempi1->r.type=TY_NULL; + tempi->p1.type=tempi1->p1.type; + tempi->p1.reg=tempi1->p1.reg; + tempi->p1.disp=tempi1->p1.disp; + tempi->ic_flags|=ICF_NOT_ADDR; + } + } else if ((tempi1->ic_opcode==IC_ABS_ADDR || + tempi1->ic_opcode==IC_MOV && + tempi1->p1.type==TY_IMM+IT_I64 && + 0<=tempi1->p1.disp<=MAX_I32) && + !(tempi1->ic_flags&ICF_NO_RIP)) { + tempi->ic_flags|=tempi1->ic_flags; + if (tempi1->ic_opcode==IC_ABS_ADDR) + tempi->p1.disp=tempi1->ic_data; + else + tempi->p1.disp=tempi1->p1.disp; + tempi1->ic_opcode=IC_NOP; + tempi1->p1.type=TY_NULL+tempi1->p1.type&IT_MASK; + tempi1->r.type=TY_NULL+tempi1->r.type&IT_MASK; + tempi->p1.type=TY_RIP_DISP32+tempi->p1.ptype; + tempi->p1.reg=CREG_RIP; + tempi->ic_flags|=ICF_NOT_ADDR; + } + break; + case IC_ADD: + if (tempi1->ic_opcode==IC_MOV && tempi1->p1.type==TY_REG+IT_I64 || + tempi1->ic_opcode==IC_REG) { + if (tempi2->ic_opcode==IC_MOV && tempi2->p1.type==TY_REG+IT_I64 || + tempi2->ic_opcode==IC_REG) { + if (tempi2->p1.reg!=CREG_RSP) { + tempi->p1.disp=0; + tempi->p1.reg=tempi1->p1.reg+tempi2->p1.reg<<8; + goto sib; + } else if (tempi1->p1.reg!=CREG_RSP) { + tempi->p1.disp=0; + tempi->p1.reg=tempi2->p1.reg+tempi1->p1.reg<<8; +sib: + tempi->ic_flags|=tempi1->ic_flags&ICF_NO_CVT_MASK; + tempi1->ic_opcode=IC_NOP1; + tempi1->ic_data=1; + tempi1->p1.type=TY_NULL+tempi1->p1.type&IT_MASK; + tempi1->r.type=TY_NULL+tempi1->r.type&IT_MASK; + + tempi->ic_flags|=tempi2->ic_flags&ICF_NO_CVT_MASK; + tempi2->ic_opcode=IC_NOP; + + tempi->ic_opcode=IC_LEA; + tempi->p1.type=TY_SIB+IT_I64; + tempi->p1.ptype=IT_I64; + + tempi->p2.type=TY_NULL+tempi->p2.type&IT_MASK; + } + } else if (tempi2->ic_opcode==IC_SHL_CONST && tempi2->p1.type==TY_REG+IT_I64 && + tempi2->ic_data<=3) { + if (tempi2->p1.reg!=CREG_RSP) { + tempi->p1.disp=0; + tempi->p1.reg=tempi1->p1.reg+tempi2->p1.reg<<8; + if (tempi2->ic_data==1) + tempi->p1.reg|=0x4000; + else if (tempi2->ic_data==2) + tempi->p1.reg|=0x8000; + else + tempi->p1.reg|=0xC000; + goto sib; + } + } + } else if (tempi1->ic_opcode==IC_LEA && tempi1->p1.type&TY_MASK==TY_DISP) { + if (tempi1->p1.reg==CREG_RBP && CmpOffset2Reg(tempi1->p1.disp,register_offsets)>=0) + break; + if (tempi2->ic_opcode==IC_MOV && tempi2->p1.type==TY_REG+IT_I64 || + tempi2->ic_opcode==IC_REG) { + if (tempi2->p1.reg!=CREG_RSP) { + tempi->p1.disp=tempi1->p1.disp; + tempi->p1.reg=tempi1->p1.reg+tempi2->p1.reg<<8; + goto sib; + } else if (tempi1->p1.reg!=CREG_RSP) { + tempi->p1.disp=tempi1->p1.disp; + tempi->p1.reg=tempi2->p1.reg+tempi1->p1.reg<<8; + goto sib; + } + } else if (tempi2->ic_opcode==IC_SHL_CONST && tempi2->p1.type==TY_REG+IT_I64 && + tempi2->ic_data<=3) { + if (tempi2->p1.reg!=CREG_RSP) { + tempi->p1.disp=tempi1->p1.disp; + tempi->p1.reg=tempi1->p1.reg+tempi2->p1.reg<<8; + if (tempi2->ic_data==1) + tempi->p1.reg|=0x4000; + else if (tempi2->ic_data==2) + tempi->p1.reg|=0x8000; + else + tempi->p1.reg|=0xC000; + goto sib; + } + } + } + break; + case IC_SHL_CONST: + case IC_LEA: + case IC_SHR_CONST: + case IC_POWER: + case IC_SHL: + case IC_SHR: + case IC_MUL: + case IC_DIV: + case IC_MOD: + case IC_AND: + case IC_OR: + case IC_XOR: + case IC_SUB: + case IC_EQUAL_EQUAL: + case IC_NOT_EQUAL: + case IC_LESS: + case IC_GREATER: + case IC_LESS_EQUAL: + case IC_GREATER_EQUAL: + case IC_AND_AND: + case IC_OR_OR: + case IC_XOR_XOR: + case IC_COLON: + break; + case IC_ASSIGN_PP: + case IC_ASSIGN_MM: + //this val was stashed during pass012 for pointer arithmetic + tempi->ic_class2=tempi->t.p3c; + case IC_ASSIGN: + case IC_SHL_EQUAL: + case IC_SHR_EQUAL: + case IC_MUL_EQUAL: + case IC_DIV_EQUAL: + case IC_MOD_EQUAL: + case IC_AND_EQUAL: + case IC_OR_EQUAL: + case IC_XOR_EQUAL: + case IC_ADD_EQUAL: + case IC_SUB_EQUAL: + if (tempi1->ic_opcode==IC_LEA) { + if (TY_DISP<=tempi1->p1.type&TY_MASK<=TY_SIB) { + if (tempi1->p1.type&TY_MASK==TY_DISP && tempi1->p1.reg==CREG_RBP) { + i=CmpOffset2Reg(tempi1->p1.disp,register_offsets); + if (i>=0) { + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP1; + tempi1->ic_data=1; + tempi1->p1.type=TY_NULL; + tempi1->r.type=TY_NULL; + tempi->p1.type=TY_REG+tempi->p1.type&IT_MASK; + tempi->p1.reg=i; + tempi->p1.disp=0; + } else { + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP1; + tempi1->ic_data=1; + tempi1->r.type=TY_NULL; + tempi1->p1.type=TY_NULL; + tempi->p1.type=TY_DISP+tempi->p1.type&IT_MASK; + tempi->p1.reg=CREG_RBP; + tempi->p1.disp=tempi1->p1.disp; + } + } else { + tempi->p1.type=tempi1->p1.type&TY_MASK+tempi->p1.type&IT_MASK; + tempi->ic_flags|=tempi1->ic_flags; + tempi1->ic_opcode=IC_NOP1; + tempi1->ic_data=1; + tempi1->r.type=TY_NULL; + tempi1->p1.type=TY_NULL; + tempi->p1.reg=tempi1->p1.reg; + tempi->p1.disp=tempi1->p1.disp; + } + tempi->ic_flags|=ICF_NOT_ADDR; + } + } else if ((tempi1->ic_opcode==IC_ABS_ADDR || + tempi1->ic_opcode==IC_MOV && + tempi1->p1.type==TY_IMM+IT_I64 && + 0<=tempi1->p1.disp<=MAX_I32) && + !(tempi1->ic_flags&ICF_NO_RIP)) { + tempi->ic_flags|=tempi1->ic_flags; + if (tempi1->ic_opcode==IC_ABS_ADDR) + tempi->p1.disp=tempi1->ic_data; + else + tempi->p1.disp=tempi1->p1.disp; + tempi1->ic_opcode=IC_NOP1; + tempi1->ic_data=1; + tempi1->p1.type=TY_NULL+tempi1->p1.type&IT_MASK; + tempi1->r.type=TY_NULL+tempi1->r.type&IT_MASK; + tempi1->r.type=TY_NULL; + tempi->p1.type=TY_RIP_DISP32+tempi->p1.type&IT_MASK; + tempi->p1.reg=CREG_RIP; + tempi->ic_flags|=ICF_NOT_ADDR; + } + break; + case IC_ADD_CONST: + case IC_SUB_CONST: + case IC_ENTER: + case IC_ADD_RSP: + case IC_ADD_RSP1: + case IC_CALL: + case IC_CALL_INDIRECT: + case IC_CALL_INDIRECT2: + case IC_CALL_EXTERN: + case IC_CALL_IMPORT: + case IC_CLI: + case IC_STI: + case IC_HLT: + case IC_PUSHFD: + case IC_POPFD: + case IC_PUSH: + case IC_POP: + case IC_CLD: + case IC_STD: + case IC_INVLPG: + case IC_CLFLUSH: + case IC_PAUSE: + case IC_GET_FLAGS: + case IC_RDTSC: + case IC_HPET: + case IC_SET_FLAGS: + case IC_GET_BASE_PTR: + case IC_SET_BASE_PTR: + case IC_GET_STK_PTR: + case IC_GET_RAX: + case IC_SET_STK_PTR: + case IC_SET_RAX: + break; + case IC_RETURN_VAL: + case IC_RETURN_VAL2: + if (!tempi->ic_class) { + if (_type) { + tempil1=tempi; + while (tempil1=OptLag1(tempil1)) + if (tempil1->ic_class) { + if (tempil1->ic_flags & ICF_R_TO_F64) + *_type=IT_F64; + else if (tempil1->ic_flags & ICF_R_TO_INT) + *_type=IT_I64; + else + *_type=tempil1->ic_class->sub_type; + break; + } + } + tempi->ic_class=sys_internal_types[IT_I64]; + } else if (_type) + *_type=tempi->ic_class->sub_type; + break; + case IC_GET_LABEL: + case IC_ABS_ADDR: + case IC_HEAP_GLBL: + case IC_ADDR_IMPORT: + case IC_BSF: + case IC_BSR: + case IC_PREEMPT: + case IC_SIGN_I64: + case IC_TOUPPER: + case IC_TO_I64: + case IC_TO_F64: + case IC_TO_BOOL: + case IC_SQR: + case IC_ABS: + case IC_SQRT: + case IC_SIN: + case IC_COS: + case IC_TAN: + case IC_ATAN: + case IC_ABS_I64: + case IC_LIMIT_I64: + case IC_LIMIT_U64: + case IC_MIN_I64: + case IC_MAX_I64: + case IC_MIN_U64: + case IC_MAX_U64: + case IC_MOD_U64: + case IC_SQR_I64: + case IC_SQR_U64: + case IC_SWAP_U8: + case IC_SWAP_U16: + case IC_SWAP_U32: + case IC_SWAP_U64: + case IC_QUE_INIT: + case IC_QUE_INS: + case IC_QUE_INS_REV: + case IC_QUE_REM: + case IC_MEMCPY: + case IC_MEMSET: + case IC_MEMSET_U16: + case IC_MEMSET_U32: + case IC_MEMSET_U64: + case IC_INU32: + case IC_INU16: + case IC_INU8: + case IC_STRLEN: + case IC_OUTU32: + case IC_OUTU16: + case IC_OUTU8: + case IC_NOBOUND_SWITCH: + case IC_SWITCH: + case IC_RET: + case IC_END: + case IC_ADDR: + case IC_QUESTION: + case IC_IRQ: + case IC_NOP: + case IC_CALL_START: + case IC_LEAVE: + case IC_PUSH_REGS: + case IC_POP_REGS: + case IC_ASM: + case IC_BR_AND_NOT_ZERO: + case IC_BR_AND_ZERO: + break; + case IC_BR_BT: + case IC_BR_BTS: + case IC_BR_BTR: + case IC_BR_BTC: + case IC_BR_NOT_BT: + case IC_BR_NOT_BTS: + case IC_BR_NOT_BTR: + case IC_BR_NOT_BTC: + case IC_BR_LBTS: + case IC_BR_LBTR: + case IC_BR_LBTC: + case IC_BR_NOT_LBTS: + case IC_BR_NOT_LBTR: + case IC_BR_NOT_LBTC: + case IC_BT: + case IC_BTS: + case IC_BTR: + case IC_BTC: + case IC_LBTS: + case IC_LBTR: + case IC_LBTC: + if (tempi2->ic_opcode==IC_ADDR && + !(tempi->ic_flags&ICF_NOT_ADDR)) { + if (tempi2->p1.type&TY_MASK==TY_STK && + tempi2->r.type&TY_MASK==TY_STK) { + if (!(tempil2=OptLag1(tempi2)) || + tempil2->ic_opcode!=IC_ABS_ADDR && + !(tempil2->ic_opcode==IC_MOV && + tempil2->p1.type==TY_IMM+IT_I64 && + 0<=tempil2->p1.disp<=MAX_I32) || + tempil2->ic_flags&ICF_NO_RIP) + tempil2=NULL; + else { + if (tempil2->ic_opcode==IC_ABS_ADDR) + tempi->p2.disp=tempil2->ic_data; + else + tempi->p2.disp=tempil2->p1.disp; + } + } else { + if (tempi2->p1.type==TY_IMM+IT_I64 && + 0<=tempi2->p1.disp<=MAX_I32 && + !(tempi2->ic_flags&ICF_NO_RIP)) { + tempil2=tempi2; + tempi2=NULL; + tempi->p2.disp=tempil2->p1.disp; + } else + tempil2=NULL; + } + if (tempil2) { + if (tempi2) { + tempi->ic_flags|=tempi2->ic_flags; + tempi2->ic_opcode=IC_NOP; + tempi2->ic_flags=0; + tempi2 ->p1.type=TY_NULL+tempi2 ->p1.type&IT_MASK; + tempi2 ->r .type=TY_NULL+tempi2 ->r .type&IT_MASK; + } + tempi->ic_flags|=tempil2->ic_flags|ICF_NOT_ADDR; + tempil2->ic_opcode=IC_NOP; + tempil2->ic_flags=0; + tempil2->p1.type=TY_NULL+tempil2->p1.type&IT_MASK; + tempil2->r .type=TY_NULL+tempil2->r .type&IT_MASK; + tempi->p2.type=TY_RIP_DISP32+tempi->p2.type&IT_MASK; + tempi->p2.reg=CREG_RIP; + } + } + break; + case IC_BEQU: + case IC_LBEQU: + if (tempi3->ic_opcode==IC_ADDR && + !(tempi->ic_flags&ICF_NOT_ADDR)) { + if (tempi3->p1.type&TY_MASK==TY_STK && + tempi3->r.type&TY_MASK==TY_STK) { + if (!(tempil3=OptLag1(tempi3)) || + tempil3->ic_opcode!=IC_ABS_ADDR && + !(tempil3->ic_opcode==IC_MOV && + tempil3->p1.type==TY_IMM+IT_I64 && + 0<=tempil3->p1.disp<=MAX_I32) || + tempil3->ic_flags&ICF_NO_RIP) + tempil3=NULL; + else { + if (tempil3->ic_opcode==IC_ABS_ADDR) + tempi->p3.disp=tempil3->ic_data; + else + tempi->p3.disp=tempil3->p1.disp; + } + } else { + if (tempi3->p1.type==TY_IMM+IT_I64 && + 0<=tempi3->p1.disp<=MAX_I32 && + !(tempi3->ic_flags&ICF_NO_RIP)) { + tempil3=tempi3; + tempi3=NULL; + tempi->p3.disp=tempil3->p1.disp; + } else + tempil3=NULL; + } + if (tempil3) { + if (tempi3) { + tempi->ic_flags|=tempi3->ic_flags; + tempi3->ic_opcode=IC_NOP; + tempi3->ic_flags=0; + tempi3 ->p1.type=TY_NULL+tempi3 ->p1.type&IT_MASK; + tempi3 ->r .type=TY_NULL+tempi3 ->r .type&IT_MASK; + } + tempi->ic_flags|=tempil3->ic_flags|ICF_NOT_ADDR; + tempil3->ic_opcode=IC_NOP; + tempil3->ic_flags=0; + tempil3->p1.type=TY_NULL+tempil3->p1.type&IT_MASK; + tempil3->r .type=TY_NULL+tempil3->r .type&IT_MASK; + tempi->p3.type=TY_RIP_DISP32+tempi->p3.type&IT_MASK; + tempi->p3.reg=CREG_RIP; + } + } + break; + case IC_BR_NOT_EQUAL2: + case IC_BR_EQUAL_EQUAL2: + case IC_BR_GREATER_EQUAL2: + case IC_BR_LESS_EQUAL2: + case IC_BR_GREATER2: + case IC_BR_LESS2: + + case IC_BR_ZERO: + case IC_BR_NOT_ZERO: + case IC_BR_NOT_EQUAL: + case IC_BR_EQUAL_EQUAL: + case IC_BR_GREATER_EQUAL: + case IC_BR_LESS_EQUAL: + case IC_BR_GREATER: + case IC_BR_LESS: + lb=tempi->ic_data; + if (tempi->ic_flags&ICF_PUSH_CMP) { + lb->flags|=CBMF_POP_CMP; + lb->fwd=NULL; + } + break; + case IC_LABEL: + lb=tempi->ic_data; + if (lb->flags&CBMF_USED) + dead_code=FALSE; + break; + case IC_JMP: + dead_code=TRUE; + break; + case IC_NOP1: + ps->ptr+=tempi->ic_data; + break; + case IC_CALL_END2: + break; + case IC_CALL_END: + case IC_END_EXP: + if (tempi->p1.type&TY_MASK==TY_STK) { + if (tempil1->r.type&TY_MASK==TY_STK && + !(tempil1->ic_flags&ICF_PUSH_RESULT)) { + tempi->p1.type=TY_REG+tempi->p1.type&IT_MASK; + tempi->p1.reg=CREG_RAX; + tempi->p1.disp=0; + tempil1->r.type=TY_REG+tempil1->r.type&IT_MASK; + tempil1->r.reg=CREG_RAX; + tempil1->r.disp=0; + } + } + break; + default: + OptMissing(lx,tempi); + } + + while (OptIC4(tempi)); + code=tempi->ic_opcode; + if (cmp_result_cnt[code]) + PrsPush(ps,tempi); + } + tempi++; + } + OptEnd(lx,ps); +} diff --git a/SparrowOS/Compiler/OptPass5.CPP b/SparrowOS/Compiler/OptPass5.CPP new file mode 100644 index 0000000..8ad5100 --- /dev/null +++ b/SparrowOS/Compiler/OptPass5.CPP @@ -0,0 +1,171 @@ +U0 OptPass5(CLex *lx) +{ + CIntermediateCode *tempi,*tempi1; + I64 code,i,ty,pt,ty1,pt1; + CPrsStk *ps=OptStart(lx); + + tempi=lx->cbh.cb_in_ptr; + if (tempi->ic_opcode==IC_START) + tempi++; + while (code=tempi->ic_opcode) { + if (code>IC_NOP1) { + if (tempi->ic_flags&ICF_TRACE) { + if (Bt(&lx->pass_trace_mask,5)) { + "%2d:",ps->ptr; + CBPutIC(tempi); + } + } + + if (cmp_arg_cnt[code]==9) + ps->ptr-=tempi->ic_data>>3; + if (code==IC_PUSH_REGS) { + for (i=0;iic_data,i)) + ps->ptr++; + } else if (code==IC_POP_REGS) { + for (i=0;iic_data,i)) + ps->ptr--; + } + + if (tempi->p3.type&TY_MASK==TY_STK) { + tempi1=PrsPop(ps); + if (tempi1->ic_opcode==IC_MOV || + tempi1->ic_opcode==IC_REG) { + if (tempi1->ic_flags & ICF_R_TO_INT) { + if (tempi1->p1.type&TY_MASK==TY_IMM) + tempi1->p1.disp=tempi1->p1.disp(F64); + else + tempi->ic_flags|=ICF_P3_TO_INT; + } else if (tempi1->ic_flags&ICF_R_TO_F64) { + if (tempi1->p1.type&TY_MASK==TY_IMM) + tempi1->p1.disp(F64)=tempi1->p1.disp; + else + tempi->ic_flags|=ICF_P3_TO_F64; + } + + ty=tempi->p3.type&IT_MASK; + ty1=tempi1->p1.type&IT_MASK; + if (ty1 && ty1r.type&IT_MASK; + if (ty1 && ty1p3.type=tempi1->p1.type&TY_MASK+ty; + + pt=tempi->p3.ptype; + pt1=tempi1->p1.ptype; + if (pt1 && pt1r.ptype; + if (pt1 && pt1p3.ptype=pt; + + tempi->p3.reg=tempi1->p1.reg; + tempi->p3.disp=tempi1->p1.disp; + tempi->ic_flags|=tempi1->ic_flags&ICF_NO_CVT_MASK; + tempi1->ic_opcode=IC_NOP1; + tempi1->ic_data=1; + tempi1->p1.type=TY_NULL+tempi1->p1.type&IT_MASK; + tempi1->r.type=TY_NULL+tempi1->r.type&IT_MASK; + } + } + + if (tempi->p2.type&TY_MASK==TY_STK) { + tempi1=PrsPop(ps); + if (tempi1->ic_opcode==IC_MOV || + tempi1->ic_opcode==IC_REG) { + if (tempi1->ic_flags & ICF_R_TO_INT) { + if (tempi1->p1.type&TY_MASK==TY_IMM) + tempi1->p1.disp=tempi1->p1.disp(F64); + else + tempi->ic_flags|=ICF_P2_TO_INT; + } else if (tempi1->ic_flags&ICF_R_TO_F64) { + if (tempi1->p1.type&TY_MASK==TY_IMM) + tempi1->p1.disp(F64)=tempi1->p1.disp; + else + tempi->ic_flags|=ICF_P2_TO_F64; + } + + ty=tempi->p2.type&IT_MASK; + ty1=tempi1->p1.type&IT_MASK; + if (ty1 && ty1r.type&IT_MASK; + if (ty1 && ty1p2.type=tempi1->p1.type&TY_MASK+ty; + + pt=tempi->p2.ptype; + pt1=tempi1->p1.ptype; + if (pt1 && pt1r.ptype; + if (pt1 && pt1p2.ptype=pt; + + tempi->p2.reg=tempi1->p1.reg; + tempi->p2.disp=tempi1->p1.disp; + tempi->ic_flags|=tempi1->ic_flags&ICF_NO_CVT_MASK; + tempi1->ic_opcode=IC_NOP1; + tempi1->ic_data=1; + tempi1->p1.type=TY_NULL+tempi1->p1.type&IT_MASK; + tempi1->r.type=TY_NULL+tempi1->r.type&IT_MASK; + } + } + + if (tempi->p1.type&TY_MASK==TY_STK) { + tempi1=PrsPop(ps); + if (tempi1->ic_opcode==IC_MOV || + tempi1->ic_opcode==IC_REG) { + if (tempi1->ic_flags & ICF_R_TO_INT) { + if (tempi1->p1.type&TY_MASK==TY_IMM) + tempi1->p1.disp=tempi1->p1.disp(F64); + else + tempi->ic_flags|=ICF_P1_TO_INT; + } else if (tempi1->ic_flags&ICF_R_TO_F64) { + if (tempi1->p1.type&TY_MASK==TY_IMM) { + if (tempi1->p1.type & 1) //signed/unsigned + tempi1->p1.disp(F64)=tempi1->p1.disp(U64); + else + tempi1->p1.disp(F64)=tempi1->p1.disp(I64); + } else + tempi->ic_flags|=ICF_P1_TO_F64; + } + + ty=tempi->p1.type&IT_MASK; + ty1=tempi1->p1.type&IT_MASK; + if (ty1 && ty1r.type&IT_MASK; + if (ty1 && ty1p1.type=tempi1->p1.type&TY_MASK+ty; + + pt=tempi->p1.ptype; + pt1=tempi1->p1.ptype; + if (pt1 && pt1r.ptype; + if (pt1 && pt1p1.ptype=pt; + + tempi->p1.reg=tempi1->p1.reg; + tempi->p1.disp=tempi1->p1.disp; + tempi->ic_flags|=tempi1->ic_flags&ICF_NO_CVT_MASK; + tempi1->ic_opcode=IC_NOP1; + tempi1->ic_data=1; + tempi1->p1.type=TY_NULL+tempi1->p1.type&IT_MASK; + tempi1->r.type=TY_NULL+tempi1->r.type&IT_MASK; + } + } + if (tempi->r.type&TY_MASK==TY_STK) + PrsPush(ps,tempi); + } + tempi++; + } + OptEnd(lx,ps); +} diff --git a/SparrowOS/Compiler/OptPass6.CPP b/SparrowOS/Compiler/OptPass6.CPP new file mode 100644 index 0000000..55586ad --- /dev/null +++ b/SparrowOS/Compiler/OptPass6.CPP @@ -0,0 +1,266 @@ +Bool OptIC6(CIntermediateCode *tempi) +{ + CIntermediateCode *tempil1,*tempil2; + if (tempi->ic_opcodeic_opcode==IC_ADD_CONST && + tempil1->ic_opcode==IC_DEREF && + tempil1->ic_flags&ICF_P1_WAS_STK && + tempil1->p1.type&TY_MASK==TY_REG && + tempil2->r.type&TY_MASK==TY_REG && + MIN_I32<=tempil2->ic_data<=MAX_I32 && + !Bt(&non_ptr_vars_mask,tempil2->p1.reg)) + if (tempil2->p1.type&TY_MASK==TY_REG) { + tempil1->ic_flags= tempil1->ic_flags & ~ICF_P1_WAS_STK | + tempil2->ic_flags; + tempil2->ic_opcode=IC_NOP1; + tempil2->p1.type=TY_NULL+tempil2->p1.type&IT_MASK; + tempil2->r.type=TY_NULL+tempil2->r.type&IT_MASK; + tempil1->ic_opcode=IC_MOV; + tempil1->p1.type=TY_DISP+tempil1->p1.ptype; + tempil1->p1.reg=tempil2->p1.reg; + tempil1->p1.disp=tempil2->ic_data; + tempil2->ic_data=-1; + return TRUE; + } else { + tempil2->ic_opcode=IC_MOV; + tempil1->ic_opcode=IC_MOV; + tempil1->p1.type=TY_DISP+tempil1->p1.ptype; + tempil1->p1.disp=tempil2->ic_data; + return TRUE; + } + return FALSE; +} + +U0 OptPass6Lag(CLex *lx, + CPrsStk *ps,CIntermediateCode *tempi,I64 *i_,I64 num_stk, + I64 *_clobbered_reg_mask,I64 fun_num) +{ + I64 i=*i_,j,k,l,code,clobbered_reg_mask=*_clobbered_reg_mask; + CHashFun *tempf; + code=tempi->ic_opcode; + if (code<=IC_NOP1) + return; + else { + if (tempi->ic_flags&ICF_TRACE) { + if (Bt(&lx->pass_trace_mask,6)) { + "%2d:",i; + CBPutIC(tempi); + } + } + if (code==IC_CALL_START) { + if (iic_data) { + if (Bt(tempf->flags,Ff_INTERNAL)) + j=0; + else { + j&=tempf->clobbered_reg_mask; + clobbered_reg_mask|=tempf->clobbered_reg_mask; + } + } + tempi->ic_data=j; + PrsPush(ps,i); + PrsPush(ps,j); + } else if (code==IC_CALL_END) { + tempi->ic_data=PrsPop(ps); + i=PrsPop(ps); + } + // else if (code==IC_LEAVE) + // i=0; + else if (code==IC_CALL_END2) { + ps->ptr--; + i=PrsPop(ps); + } + if (cmp_arg_cnt[code]==9) + i-=tempi->ic_data>>3; + if (tempi->p3.type&TY_MASK==TY_STK) { + i--; + if (ip3.type=TY_REG+tempi->p3.type&IT_MASK; + if (fun_num&1) + tempi->p3.reg=to_stk_temps_map_odd[i]; + else + tempi->p3.reg=to_stk_temps_map_even[i]; + tempi->p3.disp=0; + } + } + + if (tempi->p2.type&TY_MASK==TY_STK) { + i--; + if (ip2.type=TY_REG+tempi->p2.type&IT_MASK; + if (fun_num&1) + tempi->p2.reg=to_stk_temps_map_odd[i]; + else + tempi->p2.reg=to_stk_temps_map_even[i]; + tempi->p2.disp=0; + } + } + if (tempi->p1.type&TY_MASK==TY_STK) { + i--; + if (ip1.type=TY_REG+tempi->p1.type&IT_MASK; + if (fun_num&1) + tempi->p1.reg=to_stk_temps_map_odd[i]; + else + tempi->p1.reg=to_stk_temps_map_even[i]; + tempi->p1.disp=0; + } + } + if (tempi->r.type&TY_MASK==TY_STK && + !(tempi->ic_flags & ICF_PUSH_RESULT)) { + i++; + if (i<=num_stk) { + tempi->r.type=TY_REG+tempi->r.type&IT_MASK; + if (fun_num&1) { + tempi->r.reg=to_stk_temps_map_odd[i-1]; + Bts(&clobbered_reg_mask,to_stk_temps_map_odd[i-1]); + } else { + tempi->r.reg=to_stk_temps_map_even[i-1]; + Bts(&clobbered_reg_mask,to_stk_temps_map_even[i-1]); + } + tempi->r.disp=0; + } + } + while (OptIC6(tempi)); + if (tempi->r.type&IT_MASK!=IT_F64 && + !(tempi->ic_flags&ICF_USE_F64)) + tempi->ic_flags|=ICF_USE_INT; + } + *i_=i; + *_clobbered_reg_mask=clobbered_reg_mask; +} + +U0 OptPass6(CLex *lx,CHashFun *fun_class) +{ + CIntermediateCode *tempi,*tempil1,*tempif1,*tempif2, + *temp_lag[4],*old_tempil1=NULL; + CPrsStk *ps=OptStart(lx,temp_lag); + I64 i=0,code,num_stk,clobbered_reg_mask=CALWAYS_CLOBBERED_MASK, + fun_num=0; + + if (fun_class) + fun_num=compiled_funs++; + + if (Bt(&lx->opts,OPTf_NO_REG_VAR) || + lx->flags&LF_NO_REG_OPT) + num_stk=0; + else + num_stk=num_stk_temps; + + tempi=lx->cbh.cb_in_ptr; + if (tempi->ic_opcode==IC_START) + tempi++; + while (code=tempi->ic_opcode) { + OptNext3(tempi,temp_lag); + tempil1=temp_lag[1]; + if (tempil1->ic_opcode==IC_END_EXP) { + if (code!=IC_RETURN_VAL2 && code!=IC_NOP) { + if (!(temp_lag[2]->ic_flags& + (ICF_R_TO_F64|ICF_R_TO_INT|ICF_PUSH_RESULT|ICF_DEPEND_RESULT))) { + temp_lag[2]->ic_flags|=ICF_NO_DEPEND_RESULT; + temp_lag[2]->r.type=TY_NULL+temp_lag[2]->r.type&IT_MASK; + tempil1->ic_flags|=ICF_NO_DEPEND_RESULT; + tempil1->r.type=TY_NULL+tempil1->r.type&IT_MASK; + } + } + } + if (code<=IC_NOP1) { + } else { + if (tempi->p3.type&TY_MASK) { + if (tempi->p3.type&TY_MASK==TY_STK) { + if (tempil1->r.type&TY_MASK==TY_STK && + !(tempil1->ic_flags&ICF_PUSH_RESULT)) { + tempi->p3.type=TY_REG+tempi->p3.type&IT_MASK; + tempi->p3.reg=CREG_RAX; + tempi->p3.disp=0; + tempil1->r.type=TY_REG+tempil1->r.type&IT_MASK; + tempil1->r.reg=CREG_RAX; + tempil1->r.disp=0; + } + } + } else { + if (tempi->p2.type&TY_MASK==TY_STK) { + if (tempil1->r.type&TY_MASK==TY_STK && + !(tempil1->ic_flags&ICF_PUSH_RESULT)) { + tempif2=NULL; + if (tempi->ic_opcode==IC_ASSIGN && + tempi->ic_flags&ICF_NOT_ADDR && + tempil1->ic_opcode!=IC_CALL_END && + tempil1->ic_opcode!=IC_CALL_END2 && + tempil1->ic_opcode!=IC_SET_RAX && + !(tempi->ic_flags& + (ICF_P2_TO_F64|ICF_P2_TO_INT)) && + !(tempil1->ic_flags& + (ICF_R_TO_F64|ICF_R_TO_INT))) { + if (tempif1=OptLead1(lx,tempi)) //predict NO_DEPEND + if (tempif2=OptLead1(lx,tempif1)) + if (tempif1->ic_opcode==IC_END_EXP && + tempif2->ic_opcode!=IC_RETURN_VAL2) { + tempi->ic_opcode=IC_NOP; + tempil1->r.type =tempi->p1.type&TY_MASK+tempi->p1.ptype; + tempil1->r.ptype=tempi->p1.ptype; + tempil1->r.reg =tempi->p1.reg; + tempil1->r.disp =tempi->p1.disp; + tempil1->ic_flags=tempil1->ic_flags&~(ICF_NO_DEPEND_RESULT|ICF_R_WAS_STK)| + tempi->ic_flags&~(ICF_NOT_ADDR|ICF_P1_WAS_STK|ICF_P2_WAS_STK)|ICF_DEPEND_RESULT; + old_tempil1=NULL; + } else + tempif2=NULL; + } + if (!tempif2) { + tempi->p2.type=TY_REG+tempi->p2.type&IT_MASK; + tempi->p2.reg=CREG_RAX; + tempi->p2.disp=0; + tempil1->r.type=TY_REG+tempil1->r.type&IT_MASK; + tempil1->r.reg=CREG_RAX; + tempil1->r.disp=0; + } + } + } else if (tempi->p1.type&TY_MASK==TY_STK) { + if (tempil1->r.type&TY_MASK==TY_STK && + !(tempil1->ic_flags&ICF_PUSH_RESULT)) { + tempi->p1.type=TY_REG+tempi->p1.type&IT_MASK; + tempi->p1.reg=CREG_RAX; + tempi->p1.disp=0; + tempil1->r.type=TY_REG+tempil1->r.type&IT_MASK; + tempil1->r.reg=CREG_RAX; + tempil1->r.disp=0; + } + } + } + if (tempi->ic_flags & ICF_PUSH_RESULT) + tempi->r.type==TY_STK+tempi->r.type&IT_MASK; + + } + if (old_tempil1!=tempil1) { + OptPass6Lag(lx,ps,tempil1,&i,num_stk,&clobbered_reg_mask,fun_num); + old_tempil1=tempil1; + } + tempi++; + } + OptEnd(lx,ps); + + if (fun_class) { + fun_class->used_reg_mask&=~CSTK_TEMPS_MASK; + fun_class->used_reg_mask|=clobbered_reg_mask; + fun_class->clobbered_reg_mask=clobbered_reg_mask; + if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT) && + Bt(&lx->pass_trace_mask,6)) { + "Used Reg Mask:%04X\n",fun_class->used_reg_mask; + "Clobbered Reg Mask:%04X\n",clobbered_reg_mask; + } + } +} diff --git a/SparrowOS/Compiler/OptPass789A.CPP b/SparrowOS/Compiler/OptPass789A.CPP new file mode 100644 index 0000000..ccbb782 --- /dev/null +++ b/SparrowOS/Compiler/OptPass789A.CPP @@ -0,0 +1,1335 @@ +I64 OptPass789A(CLex *lx,CHashFun *fun_class, + COptReg *register_offsets,U8 *buf,CDbgInfo **_dbg) +{ + CIntermediateCode *tempi; + I64 code,i,cnt,*qq,num_lines=lx->max_line-lx->min_line+1,ip=0,ip2; + CCodeBlkMisc *lb,*lb1; + CExe *tempex; + CExeAbsAddr *tempa; + CExeImportExport *tempe; + CExeHeapGlbl *temphg; + CExeHeapGlblRef *temphgr; + CDbgInfo *dbg; + CAsmCtrl *a=lx->a; + Bool short_jmp; + CICArg saved_p123[3]; + CHashClass *tempc; + CHashFun *tempf; + CHashGlblVar *tempg; + CExternUsage *tempeu; + + if (_dbg) { + *_dbg=dbg=CAlloc(offset(CDbgInfo.body)+sizeof(U8 *)*(num_lines+1)); + dbg->min_line=lx->min_line; + dbg->max_line=lx->max_line; + if (lx->flags&LF_STATIC_COMPILE) + dbg->body[0]=a->ip; + else + dbg->body[0]=buf; + } else + dbg=NULL; + + if (Bt(&lx->flags,Lf_OPT_TRACE_PRESENT) && + Bt(&lx->pass_trace_mask,lx->pass)) + "$$BK,1$$$$FG,LTRED$$$$IV,1$$This code gets merged together and patched.\n$$FG$$$$IV,0$$$$BK,0$$"; + + lx->last_float_op_ic=NULL; + + tempi=lx->cbh.cb_in_ptr; + if (tempi->ic_opcode==IC_START) { + tempi->ic_cnt=0; + tempi->ic_last_cnt=-1; + tempi++; + } + while (code=tempi->ic_opcode) { + if (code>IC_END_EXP) { + if (tempi->ic_flags&ICF_TRACE && Bt(&lx->pass_trace_mask,lx->pass)) + CBPutIC(tempi); + ip2=ip; + if (lx->flags&LF_STATIC_COMPILE) + ip2+=a->ip; + else + ip2+=buf; + lx->cur_ic_float_op_num=0; + if (!(tempi->ic_flags &ICF_CODE_FINAL)) { + tempi->ic_flags=tempi->ic_flags&~(ICF_PREVIOUS_DELETED|ICF_DONT_RESTORE)|ICF_CODE_FINAL; + if (lx->pass==7) { + tempi->ic_ext_body=NULL; + lx->dont_push_float=Btr(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0); + } + MemCpy(saved_p123,&tempi->p1,3*sizeof(CICArg)); + if (cmp_arg_cnt[code]==2) { + if (tempi->p1.type&TY_MASK==TY_REG && + tempi->p1.reg==CREG_RAX) + tempi->ic_flags|=ICF_P1_FIRST; + } + tempi->ic_cnt=0; + tempi->ic_last_cnt=-1; + if (tempi->ic_flags & ICF_P1_FIRST) { + if (tempi->p1.type&TY_MASK) { + if (tempi->ic_flags & ICF_P1_TO_F64) { + ICFCvt(lx,tempi,CREG_RDX,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,FALSE,CN_P1,ip2); + tempi->p1.type=TY_REG+IT_I64; + tempi->p1.reg=CREG_RDX; + tempi->p1.disp=0; + tempi->ic_flags&=~ICF_P1_FIRST; + } else if (tempi->ic_flags & ICF_P1_TO_INT) { + ICFCvt(lx,tempi,CREG_RDX,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,TRUE,CN_P1,ip2); + tempi->p1.type=TY_REG+IT_I64; + tempi->p1.reg=CREG_RDX; + tempi->p1.disp=0; + tempi->ic_flags&=~ICF_P1_FIRST; + } + } + if (tempi->p2.type&TY_MASK) { + if (tempi->ic_flags & ICF_P2_TO_F64) { + if (tempi->ic_flags&ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + tempi->p1.type=TY_REG+IT_I64; + tempi->p1.reg=CREG_RDX; + tempi->p1.disp=0; + tempi->ic_flags&=~ICF_P1_FIRST; + } + ICFCvt(lx,tempi,CREG_RAX,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,FALSE,CN_P2,ip2); + tempi->p2.type=TY_REG+IT_I64; + tempi->p2.reg=CREG_RAX; + tempi->p2.disp=0; + } else if (tempi->ic_flags & ICF_P2_TO_INT) { + if (tempi->ic_flags&ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + tempi->p1.type=TY_REG+IT_I64; + tempi->p1.reg=CREG_RDX; + tempi->p1.disp=0; + tempi->ic_flags&=~ICF_P1_FIRST; + } + ICFCvt(lx,tempi,CREG_RAX,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,TRUE,CN_P2,ip2); + tempi->p2.type=TY_REG+IT_I64; + tempi->p2.reg=CREG_RAX; + tempi->p2.disp=0; + } + } + } else { + if (tempi->p3.type&TY_MASK) { + if (tempi->ic_flags & ICF_P3_TO_F64) { + ICFCvt(lx,tempi,CREG_RAX,tempi->p3.type,tempi->p3.reg,tempi->p3.disp,FALSE,CN_P3,ip2); + tempi->p3.type=TY_REG+IT_I64; + tempi->p3.reg=CREG_RAX; + tempi->p3.disp=0; + } else if (tempi->ic_flags & ICF_P3_TO_INT) { + ICFCvt(lx,tempi,CREG_RAX,tempi->p3.type,tempi->p3.reg,tempi->p3.disp,TRUE,CN_P3,ip2); + tempi->p3.type=TY_REG+IT_I64; + tempi->p3.reg=CREG_RAX; + tempi->p3.disp=0; + } + if (tempi->ic_flags & (ICF_P3_TO_F64 | ICF_P3_TO_INT)) { + if (tempi->p2.type&TY_MASK) { + if (tempi->ic_flags & ICF_P2_TO_F64) { + ICFCvt(lx,tempi,CREG_RDX,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,FALSE,CN_P2,ip2); + tempi->p2.type=TY_REG+IT_I64; + tempi->p2.reg=CREG_RDX; + tempi->p2.disp=0; + } else if (tempi->ic_flags & ICF_P2_TO_INT) { + ICFCvt(lx,tempi,CREG_RDX,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,TRUE,CN_P2,ip2); + tempi->p2.type=TY_REG+IT_I64; + tempi->p2.reg=CREG_RDX; + tempi->p2.disp=0; + } + } + if (tempi->ic_flags & (ICF_P2_TO_F64 | ICF_P2_TO_INT)) { + if (tempi->p1.type&TY_MASK) { //TODO: RCX might cause problems + if (tempi->ic_flags & ICF_P1_TO_F64) { + ICFCvt(lx,tempi,CREG_RCX,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,FALSE,CN_P1,ip2); + tempi->p1.type=TY_REG+IT_I64; + tempi->p1.reg=CREG_RCX; + tempi->p1.disp=0; + } else if (tempi->ic_flags & ICF_P1_TO_INT) { + ICFCvt(lx,tempi,CREG_RCX,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,TRUE,CN_P1,ip2); + tempi->p1.type=TY_REG+IT_I64; + tempi->p1.reg=CREG_RCX; + tempi->p1.disp=0; + } + } + } else { + if (tempi->p1.type&TY_MASK) { + if (tempi->ic_flags & ICF_P1_TO_F64) { + ICFCvt(lx,tempi,CREG_RDX,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,FALSE,CN_P1,ip2); + tempi->p1.type=TY_REG+IT_I64; + tempi->p1.reg=CREG_RDX; + tempi->p1.disp=0; + } else if (tempi->ic_flags & ICF_P1_TO_INT) { + ICFCvt(lx,tempi,CREG_RDX,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,TRUE,CN_P1,ip2); + tempi->p1.type=TY_REG+IT_I64; + tempi->p1.reg=CREG_RDX; + tempi->p1.disp=0; + } + } + } + } else + goto p2_RAX_p1_RDX; + } else { + p2_RAX_p1_RDX: + if (tempi->p2.type&TY_MASK) { + if (tempi->ic_flags & ICF_P2_TO_F64) { + ICFCvt(lx,tempi,CREG_RAX,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,FALSE,CN_P2,ip2); + tempi->p2.type=TY_REG+IT_I64; + tempi->p2.reg=CREG_RAX; + tempi->p2.disp=0; + } else if (tempi->ic_flags & ICF_P2_TO_INT) { + ICFCvt(lx,tempi,CREG_RAX,tempi->p2.type,tempi->p2.reg,tempi->p2.disp,TRUE,CN_P2,ip2); + tempi->p2.type=TY_REG+IT_I64; + tempi->p2.reg=CREG_RAX; + tempi->p2.disp=0; + } + } + if (tempi->p1.type&TY_MASK) { + if (tempi->ic_flags & ICF_P1_TO_F64) { + ICFCvt(lx,tempi,CREG_RDX,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,FALSE,CN_P1,ip2); + tempi->p1.type=TY_REG+IT_I64; + tempi->p1.reg=CREG_RDX; + tempi->p1.disp=0; + } else if (tempi->ic_flags & ICF_P1_TO_INT) { + ICFCvt(lx,tempi,CREG_RDX,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,TRUE,CN_P1,ip2); + tempi->p1.type=TY_REG+IT_I64; + tempi->p1.reg=CREG_RDX; + tempi->p1.disp=0; + } + } + } + } + nobound_switch (code) { + case IC_ABS_ADDR: + ICU16(tempi,0xB848); + ICU64(tempi,tempi->ic_data); + if (buf && lx->flags&LF_STATIC_COMPILE && + !(lx->flags&(LF_NO_ABSS|LF_ASM_EXPRESSIONS))) { + tempa=CAlloc(sizeof(CExeAbsAddr)); + tempa->next=a->abss; + tempa->type=EAA_ADD_U64; + a->abss=tempa; + tempa->ip=ip2+tempi->ic_cnt-8; + } + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_HEAP_GLBL: + ICU16(tempi,0xB848); + ICU64(tempi,0); + temphg=tempi->ic_data; + if (buf && lx->flags&LF_STATIC_COMPILE && + !(lx->flags&(LF_NO_ABSS|LF_ASM_EXPRESSIONS))) { //is this necessary--flags? + temphgr=CAlloc(sizeof(CExeHeapGlblRef)); + temphgr->next=temphg->references; + temphg->references=temphgr; + temphgr->ip=ip2+tempi->ic_cnt-8; + } + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_ADDR_IMPORT: + ICU8(tempi,0xB8); + ICU32(tempi,0); + if (buf && !(lx->flags&LF_NO_ABSS)) { + tempg=tempi->ic_data; + tempe=CAlloc(sizeof(CExeImportExport)); + tempe->type=EIE_LIT_U32; + tempe->ip=ip2+tempi->ic_cnt-4; + tempe->next=tempg->list; + tempg->list=tempe; + } + ICU24(tempi,0xC06348); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_STR_CONST: + case IC_GET_LABEL: + lb=tempi->ic_data; + if (lx->flags&LF_STATIC_COMPILE) + i=lb->addr+a->ip; + else + i=lb->addr+buf; + ICLea(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_RIP_DISP32+IT_PTR,0,i,lx,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_ASM: + tempex=tempi->ic_data; + tempi->ic_cnt+=tempex->code_U8s; + if (buf) { + MemCpy(buf+ip,tempex->code,tempex->code_U8s); + Free(tempex->code); + tempex->code=buf+ip; + if (lx->flags&LF_STATIC_COMPILE) + CmpFixUpStaticAsm(lx,tempex,ip2); + else + CmpFixUpJITAsm(lx,tempex,ip2); + cnt=tempi->ic_cnt; + goto skip_copy; + } + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_FS: + ICZero(tempi,CREG_RAX); + ICU32(tempi,0x8B4864); + break; + case IC_GS: + ICZero(tempi,CREG_RAX); + ICU32(tempi,0x8B4865); + break; + case IC_MOV_FS: + ICZero(tempi,CREG_RAX); + ICU8(tempi,0x64); + //It's ugly to use ic_class here + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_DISP+CmpType(tempi->ic_class),CREG_RAX,tempi->ic_data,ip2); + break; + case IC_MOV_GS: + ICZero(tempi,CREG_RAX); + ICU8(tempi,0x65); + //It's ugly to use ic_class here + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_DISP+CmpType(tempi->ic_class),CREG_RAX,tempi->ic_data,ip2); + break; + case IC_RIP: + ICU16(tempi,0xB848); + ICU64(tempi,ip2+tempi->ic_cnt-2); + if (lx->flags&LF_STATIC_COMPILE && buf && !(lx->flags&LF_NO_ABSS)) { + tempa=CAlloc(sizeof(CExeAbsAddr)); + tempa->next=a->abss; + tempa->type=EAA_ADD_U64; + a->abss=tempa; + tempa->ip=ip2+tempi->ic_cnt-8; + } + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_NATIVE_TYPECAST: + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + break; + case IC_COM: + ICUnaries(tempi,SLASH_OP_NOT,ip2); + break; + case IC_NOT: + ICNot(tempi,ip2); + break; + case IC_UNARY_MINUS: + if (tempi->r.type&IT_MASK==IT_F64) + ICFUnaryMinus(lx,tempi,buf,ip2); + else + ICUnaries(tempi,SLASH_OP_NEG,ip2); + break; + case IC_ADDR: + case IC_MOV: + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + break; + case IC_DEREF: + ICDeref(tempi,ip2); + break; + case IC_DEREF_PP: + ICDerefPostIncDec(tempi,SLASH_OP_INC,ip2); + break; + case IC_DEREF_MM: + ICDerefPostIncDec(tempi,SLASH_OP_DEC,ip2); + break; + case IC__PP: + if (tempi->ic_flags&ICF_USE_INT) + ICPostIncDec(tempi,SLASH_OP_INC,ip2); + else + ICFPostIncDec(lx,tempi,CMP_TEMPLATE_INC,ip2); + break; + case IC__MM: + if (tempi->ic_flags&ICF_USE_INT) + ICPostIncDec(tempi,SLASH_OP_DEC,ip2); + else + ICFPostIncDec(lx,tempi,CMP_TEMPLATE_DEC,ip2); + break; + case IC_PP_: + if (tempi->ic_flags&ICF_USE_INT) + ICPreIncDec(tempi,SLASH_OP_INC,ip2); + else + ICFPreIncDec(lx,tempi,CMP_TEMPLATE_INC,ip2); + break; + case IC_MM_: + if (tempi->ic_flags&ICF_USE_INT) + ICPreIncDec(tempi,SLASH_OP_DEC,ip2); + else + ICFPreIncDec(lx,tempi,CMP_TEMPLATE_DEC,ip2); + break; + case IC_LEA: + ICLea(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,lx,buf,ip2); + break; + case IC_POWER: + ICFPow(lx,tempi,buf,ip2); + break; + case IC_SHL: + ICShift(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0xE0D1E0D3E0C1,0xE0D1E0D3E0C1,ip2); + break; + case IC_SHR: + ICShift(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0xE8D1E8D3E8C1,0xF8D1F8D3F8C1,ip2); + break; + case IC_MUL: + if (tempi->ic_flags&ICF_USE_INT) + ICMul(tempi,ip2); + else + ICFMul(lx,tempi,buf,ip2); + break; + case IC_DIV: + if (tempi->ic_flags&ICF_USE_INT) + ICDiv(tempi,ip2); + else + ICFDiv(lx,tempi,buf,ip2); + break; + case IC_MOD: + if (tempi->ic_flags&ICF_USE_INT) + ICMod(tempi,ip2); + else + ICFMod(lx,tempi,ip2); + break; + case IC_AND: + ICAddEct(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x23,ip2); + break; + case IC_OR: + ICAddEct(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x0B,ip2); + break; + case IC_XOR: + ICAddEct(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x33,ip2); + break; + case IC_ADD: + if (tempi->ic_flags&ICF_USE_INT) + ICAddEct(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x03,ip2); + else + ICFAdd(lx,tempi,buf,ip2); + break; + case IC_SUB: + if (tempi->ic_flags&ICF_USE_INT) + ICSub(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + else + ICFSub(lx,tempi,buf,ip2); + break; + case IC_EQUAL_EQUAL: + ICCmp(tempi,0x75,0x75,ip2); + break; + case IC_NOT_EQUAL: + ICCmp(tempi,0x74,0x74,ip2); + break; + case IC_LESS: + if (tempi->ic_flags&ICF_USE_INT) + ICCmp(tempi,0x73,0x7D,ip2); + else + ICFCmp(lx,tempi,CMP_TEMPLATE_LESS,ip2); + break; + case IC_GREATER: + if (tempi->ic_flags&ICF_USE_INT) + ICCmp(tempi,0x76,0x7E,ip2); + else + ICFCmp(lx,tempi,CMP_TEMPLATE_GREATER,ip2); + break; + case IC_LESS_EQUAL: + if (tempi->ic_flags&ICF_USE_INT) + ICCmp(tempi,0x77,0x7F,ip2); + else + ICFCmp(lx,tempi,CMP_TEMPLATE_LESS_EQUAL,ip2); + break; + case IC_GREATER_EQUAL: + if (tempi->ic_flags&ICF_USE_INT) + ICCmp(tempi,0x72,0x7C,ip2); + else + ICFCmp(lx,tempi,CMP_TEMPLATE_GREATER_EQUAL,ip2); + break; + case IC_AND_AND: + ICAndAnd(tempi,ip2); + break; + case IC_OR_OR: + ICOrOr(tempi,ip2); + break; + case IC_XOR_XOR: + ICXorXor(tempi,ip2); + break; + case IC_COLON: + ICColon(tempi,ip2); + break; + case IC_ASSIGN: + ICAssign(tempi,ip2); + break; + case IC_ASSIGN_PP: + ICAssignPostIncDec(tempi,SLASH_OP_INC,ip2); + break; + case IC_ASSIGN_MM: + ICAssignPostIncDec(tempi,SLASH_OP_DEC,ip2); + break; + case IC_SHL_EQUAL: + ICShiftEqual(tempi,tempi->p1.ptype, + tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0xE0D1E0D3E0C1,0xE0D1E0D3E0C1,ip2); + break; + case IC_SHR_EQUAL: + ICShiftEqual(tempi,tempi->p1.ptype, + tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0xE8D1E8D3E8C1,0xF8D1F8D3F8C1,ip2); + break; + case IC_MUL_EQUAL: + if (tempi->ic_flags&ICF_USE_INT) + ICMulEqual(tempi,ip2); + else + ICFOpEqual(lx,tempi,SLASH_OP_FMUL,buf,ip2); + break; + case IC_DIV_EQUAL: + if (tempi->ic_flags&ICF_USE_INT) + ICDivEqual(tempi,FALSE,ip2); + else + ICFOpEqual(lx,tempi,SLASH_OP_FDIV,buf,ip2); + break; + case IC_MOD_EQUAL: + if (tempi->ic_flags&ICF_USE_INT) + ICDivEqual(tempi,TRUE,ip2); + else + ICFModEqual(lx,tempi,ip2); + break; + case IC_AND_EQUAL: + ICAndEqual(tempi,ip2); + break; + case IC_OR_EQUAL: + ICOrEqual(tempi,ip2); + break; + case IC_XOR_EQUAL: + ICXorEqual(tempi,ip2); + break; + case IC_ADD_EQUAL: + if (tempi->ic_flags&ICF_USE_INT) + ICAddSubEctEqual(tempi,tempi->p1.ptype, + tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x010000000003,ip2); + else + ICFOpEqual(lx,tempi,SLASH_OP_FADD,buf,ip2); + break; + case IC_SUB_EQUAL: + if (tempi->ic_flags&ICF_USE_INT) + ICAddSubEctEqual(tempi,tempi->p1.ptype, + tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,0x29000000052B,ip2); + else + ICFOpEqual(lx,tempi,SLASH_OP_FSUB,buf,ip2); + break; + case IC_SHL_CONST: + ICShift(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + TY_IMM+IT_I64,0,tempi->ic_data,0xE0D1E0D3E0C1,0xE0D1E0D3E0C1,ip2); + break; + case IC_SHR_CONST: + ICShift(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp, + TY_IMM+IT_I64,0,tempi->ic_data,0xE8D1E8D3E8C1,0xF8D1F8D3F8C1,ip2); + break; + case IC_ADD_CONST: + ICAddConst(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,tempi->ic_data,0x0003,ip2); + break; + case IC_SUB_CONST: + ICAddConst(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,tempi->ic_data,0x052B,ip2); + break; + case IC_ENTER: + if (tempi->ic_data<=MAX_I16) + ICU32(tempi,tempi->ic_data<<8+0xC8); + else { + ICPush(tempi,TY_REG+IT_I64,CREG_RBP,0,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RBP,0, + TY_REG+IT_I64,CREG_RSP,0,ip2); + ICAddRSP(tempi,-tempi->ic_data); + } + if (fun_class) { + if (Bt(fun_class->flags,Ff_INTERRUPT)) + ICPushRegs(tempi,CALWAYS_CLOBBERED_MASK&~(1<used_reg_mask&(CREG_VARS_MASK|CREG_NON_PTR_MASK|CSTK_TEMPS_MASK)); + else { + if (sys_var_init_flag&1 && i) + ICLocalVarInit(tempi); + ICPushRegs(tempi,fun_class->used_reg_mask&(CREG_VARS_MASK|CREG_NON_PTR_MASK)); + } + for (i=0;i0 && register_offsets[i].offset!=MAX_I64) { + tempc=register_offsets[i].m->member_class; + while (tempc->fwd_class) + tempc=tempc->fwd_class; + ICMov(tempi,TY_REG+IT_I64,i,0, + TY_DISP+tempc->sub_type,CREG_RBP,register_offsets[i].offset,ip2); + } + } + break; + case IC_ADD_RSP: + ICAddRSP(tempi,tempi->ic_data); + case IC_ADD_RSP1: + break; + case IC_CALL: + i=tempi->ic_data-(ip2+5); + if (!(MIN_I32<=i<=MAX_I32) && !(lx->flags&Lf_STATIC_COMPILE)) { + ICU16(tempi,0xBB48); + ICU64(tempi,tempi->ic_data); + ICU16(tempi,0xD3FF); + } else { + ICU8(tempi,0xE8); + ICU32(tempi,i); + } + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_CALL_EXTERN: //Only for static modules + ICU8(tempi,0xE8); + ICU32(tempi,0); + if (buf) { + tempf=tempi->ic_data; + tempeu=CAlloc(sizeof(CExternUsage)); + tempeu->next=tempf->ext_list; + tempf->ext_list=tempeu; + tempeu->ip=ip2+1; + } + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_CALL_INDIRECT: + if (MIN_I8<=tempi->ic_data<=MAX_I8) { + ICU24(tempi,0x2454FF); //CALL disp[RSP] + ICU8(tempi,tempi->ic_data); + } else { + ICU24(tempi,0x2494FF); //CALL disp[RSP] + ICU32(tempi,tempi->ic_data); + } + break; + case IC_CALL_INDIRECT2: + ICU16(tempi,0xBB48); + if (lx->flags&LF_STATIC_COMPILE) i=ip2+tempi->ic_cnt; + ICU64(tempi,tempi->ic_data); + ICU16(tempi,0x13FF); + if (buf && lx->flags&LF_STATIC_COMPILE&& !(lx->flags&LF_NO_ABSS)) { + tempa=CAlloc(sizeof(CExeAbsAddr)); + tempa->next=a->abss; + tempa->type=EAA_ADD_U64; + a->abss=tempa; + tempa->ip=i; + } + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_CALL_IMPORT: + if (GetOpt(OPTf_USE_LIT64)) { + ICU16(tempi,0xBB48); + ICU64(tempi,0); + if (buf) { + tempf=tempi->ic_data; + tempe=CAlloc(sizeof(CExeImportExport)); + tempe->type=EIE_LIT_U64; + tempe->ip=ip2+tempi->ic_cnt-8; + tempe->next=tempf->list; + tempf->list=tempe; + } + ICU16(tempi,0xD3FF); + } else { + ICU8(tempi,0xE8); + ICU32(tempi,-(ip2+5)); + if (buf) { + tempf=tempi->ic_data; + tempe=CAlloc(sizeof(CExeImportExport)); + tempe->type=EIE_REL_U32; + tempe->ip=ip2+tempi->ic_cnt-4; + tempe->next=tempf->list; + tempf->list=tempe; + } + } + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_CLI: + ICU8(tempi,0xFA); + break; + case IC_STI: + ICU8(tempi,0xFB); + break; + case IC_PUSHFD: + ICU8(tempi,0x9C); + break; + case IC_POPFD: + ICU8(tempi,0x9D); + break; + case IC_PUSH: + ICPush(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + break; + case IC_POP: + ICU8(tempi,0x58); + break; + case IC_CLD: + ICU8(tempi,0xFC); + break; + case IC_STD: + ICU8(tempi,0xFD); + break; + case IC_HLT: + ICU8(tempi,0xF4); + break; + case IC_INVLPG: + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICU24(tempi,0x38010F); + break; + case IC_CLFLUSH: + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICU24(tempi,0x38AE0F); + break; + case IC_PAUSE: + ICU16(tempi,0x90F3); + break; + case IC_GET_FLAGS: + ICU8(tempi,0x9C); + ICPop(tempi,TY_REG+IT_I64,CREG_RAX,0,ip2); + break; + case IC_RDTSC: + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_RDTSC,TRUE,FALSE,FALSE,CN_MAIN); + break; + case IC_HPET: + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_HPET,TRUE,FALSE,FALSE,CN_MAIN); + break; + case IC_SET_FLAGS: + ICPush(tempi,tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICU8(tempi,0x9D); + break; + case IC_GET_BASE_PTR: + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + TY_REG+IT_I64,CREG_RBP,0,ip2); + break; + case IC_SET_BASE_PTR: + ICMov(tempi,TY_REG+IT_I64,CREG_RBP,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + break; + case IC_GET_STK_PTR: + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + TY_REG+IT_I64,CREG_RSP,0,ip2); + break; + case IC_SET_STK_PTR: + ICMov(tempi,TY_REG+IT_I64,CREG_RSP,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + break; + case IC_RETURN_VAL2: + break; + case IC_RETURN_VAL: + case IC_SET_RAX: + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + break; + case IC_GET_RAX: + break; + case IC_BT: + ICBitOps(tempi,&tempi->p1,&tempi->p2,tempi+1, + 0xA30F,0x20BA0F,ip2); + break; + case IC_BTS: + case IC_LBTS: + ICBitOps(tempi,&tempi->p1,&tempi->p2,tempi+1, + 0xAB0F,0x28BA0F,ip2); + break; + case IC_BTR: + case IC_LBTR: + ICBitOps(tempi,&tempi->p1,&tempi->p2,tempi+1, + 0xB30F,0x30BA0F,ip2); + break; + case IC_BTC: + case IC_LBTC: + ICBitOps(tempi,&tempi->p1,&tempi->p2,tempi+1, + 0xBB0F,0x38BA0F,ip2); + break; + case IC_BEQU: + case IC_LBEQU: + ICBEqu(tempi,tempi+1,ip2); + break; + case IC_BSF: + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICU32(tempi,0xC0BC0F48); + ICU16(tempi,0x0375); + ICU24(tempi,0xD0F748); + break; + case IC_BSR: + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICU32(tempi,0xC0BD0F48); + ICU16(tempi,0x0375); + ICU24(tempi,0xD0F748); + break; + case IC_SIGN_I64: + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_SIGN_I64,TRUE,FALSE,FALSE,CN_MAIN); + break; + case IC_PREEMPT: + ICPreempt(tempi,ip2); + break; + case IC_TOUPPER: + ICToUpper(tempi,ip2); + break; + case IC_TO_I64: + ICToI64(lx,tempi,ip2); + break; + case IC_TO_F64: + ICToF64(lx,tempi,ip2); + break; + case IC_TO_BOOL: + ICToBool(lx,tempi,ip2); + break; + case IC_SQR: + ICFTemplateFun(lx,tempi,CMP_TEMPLATE_SQR,ip2); + break; + case IC_ABS: + ICFTemplateFun(lx,tempi,CMP_TEMPLATE_ABS,ip2); + break; + case IC_SQRT: + ICFTemplateFun(lx,tempi,CMP_TEMPLATE_SQRT,ip2); + break; + case IC_SIN: + ICFTemplateFun(lx,tempi,CMP_TEMPLATE_SIN,ip2); + break; + case IC_COS: + ICFTemplateFun(lx,tempi,CMP_TEMPLATE_COS,ip2); + break; + case IC_TAN: + ICFTemplateFun(lx,tempi,CMP_TEMPLATE_TAN,ip2); + break; + case IC_ATAN: + ICFTemplateFun(lx,tempi,CMP_TEMPLATE_ATAN,ip2); + break; + case IC_ABS_I64: + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICU24(tempi,0xC00B48); + ICU16(tempi,0x0379); + ICU24(tempi,0xD8F748); + break; + case IC_LIMIT_I64: + ICLimit(tempi,0x4F4C,ip2); + break; + case IC_LIMIT_U64: + ICLimit(tempi,0x4742,ip2); + break; + case IC_MIN_I64: + ICMinMax(tempi,0x4F,ip2); + break; + case IC_MAX_I64: + ICMinMax(tempi,0x4C,ip2); + break; + case IC_MIN_U64: + ICMinMax(tempi,0x47,ip2); + break; + case IC_MAX_U64: + ICMinMax(tempi,0x42,ip2); + break; + case IC_MOD_U64: + ICModU64(tempi,ip2); + break; + case IC_SQR_I64: + ICSqr(tempi,SLASH_OP_IMUL,ip2); + break; + case IC_SQR_U64: + ICSqr(tempi,SLASH_OP_MUL,ip2); + break; + case IC_SWAP_U8: + case IC_SWAP_U16: + case IC_SWAP_U32: + case IC_SWAP_U64: + ICSwap(tempi,ip2); + break; + case IC_QUE_INIT: + ICQueInit(tempi,ip2); + break; + case IC_QUE_INS: + ICQueIns(tempi,ip2); + break; + case IC_QUE_INS_REV: + ICQueInsRev(tempi,ip2); + break; + case IC_QUE_REM: + ICQueRem(tempi,ip2); + break; + case IC_MEMCPY: + ICMemCpy(tempi,ip2); + break; + case IC_MEMSET: + case IC_MEMSET_U16: + case IC_MEMSET_U32: + case IC_MEMSET_U64: + ICMemSet(tempi,code-IC_MEMSET,ip2); + break; + case IC_STRLEN: + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICCopyTemplate(lx,tempi,CMP_TEMPLATE_STRLEN,TRUE,FALSE,FALSE,CN_MAIN); + break; + case IC_INU32: + if (tempi->p1.type&TY_MASK==TY_IMM) { + ICU16(tempi,0xC033); + if (tempi->p1.disp<=MAX_U8) + ICU16(tempi,0xE5+tempi->p1.disp<<8); + else { + ICU32(tempi,0xBA00+OC_OP_SIZE_PREFIX+tempi->p1.disp<<16); + ICU8(tempi,0xED); + } + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICU16(tempi,0xC033); + ICU8(tempi,0xED); + } + break; + case IC_INU16: + if (tempi->p1.type&TY_MASK==TY_IMM) { + ICU16(tempi,0xC033); + if (tempi->p1.disp<=MAX_U8) + ICU24(tempi,0xE500+OC_OP_SIZE_PREFIX+tempi->p1.disp<<16); + else { + ICU32(tempi,0xBA00+OC_OP_SIZE_PREFIX+tempi->p1.disp<<16); + ICU16(tempi,0xED00+OC_OP_SIZE_PREFIX); + } + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICU16(tempi,0xC033); + ICU16(tempi,0xED00+OC_OP_SIZE_PREFIX); + } + break; + case IC_INU8: + if (tempi->p1.type&TY_MASK==TY_IMM) { + ICU16(tempi,0xC033); + if (tempi->p1.disp<=MAX_U8) + ICU16(tempi,0xE4+tempi->p1.disp<<8); + else { + ICU32(tempi,0xBA00+OC_OP_SIZE_PREFIX+tempi->p1.disp<<16); + ICU8(tempi,0xEC); + } + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICU16(tempi,0xC033); + ICU8(tempi,0xEC); + } + break; + case IC_OUTU32: + if (tempi->p2.type&TY_MASK==TY_IMM) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + if (tempi->p2.disp<=MAX_U8) + ICU16(tempi,0xE7+tempi->p2.disp<<8); + else { + ICU32(tempi,0xBA00+OC_OP_SIZE_PREFIX+tempi->p2.disp<<16); + ICU8(tempi,0xEF); + } + } else { + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + } + ICU8(tempi,0xEF); + } + break; + case IC_OUTU16: + if (tempi->p2.type&TY_MASK==TY_IMM) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + if (tempi->p2.disp<=MAX_U8) + ICU24(tempi,0xE700+OC_OP_SIZE_PREFIX+tempi->p2.disp<<16); + else { + ICU32(tempi,0xBA00+OC_OP_SIZE_PREFIX+tempi->p2.disp<<16); + ICU16(tempi,0xEF00+OC_OP_SIZE_PREFIX); + } + } else { + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + } + ICU16(tempi,0xEF00+OC_OP_SIZE_PREFIX); + } + break; + case IC_OUTU8: + if (tempi->p2.type&TY_MASK==TY_IMM) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + if (tempi->p2.disp<=MAX_U8) + ICU16(tempi,0xE6+tempi->p2.disp<<8); + else { + ICU32(tempi,0xBA00+OC_OP_SIZE_PREFIX+tempi->p2.disp<<16); + ICU8(tempi,0xEE); + } + } else { + if (tempi->ic_flags & ICF_P1_FIRST) { + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + } else { + ICMov(tempi,TY_REG+IT_I64,CREG_RDX,0, + tempi->p2.type,tempi->p2.reg,tempi->p2.disp,ip2); + ICMov(tempi,TY_REG+IT_I64,CREG_RAX,0, + tempi->p1.type,tempi->p1.reg,tempi->p1.disp,ip2); + } + ICU8(tempi,0xEE); + } + break; + case IC_NOBOUND_SWITCH: + ICSwitch(tempi,ip,TRUE,lx,buf,ip2); + break; + case IC_SWITCH: + ICSwitch(tempi,ip,FALSE,lx,buf,ip2); + break; + case IC_BR_ZERO: + ICTestAndBranch(tempi,ip,0x74840F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_NOT_ZERO: + ICTestAndBranch(tempi,ip,0x75850F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_MM_ZERO: + ICPreIncDec(tempi,SLASH_OP_DEC,ip2); + ICZFlagBranch(tempi,ip,0x74840F,buf); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_MM_NOT_ZERO: + ICPreIncDec(tempi,SLASH_OP_DEC,ip2); + ICZFlagBranch(tempi,ip,0x75850F,buf); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_EQUAL_EQUAL: + ICCmpAndBranch(tempi,FALSE,ip,0x74840F,0x74840F,0x74840F,0x74840F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_EQUAL_EQUAL2: + ICCmpAndBranch(tempi,TRUE,ip,0x74840F,0x74840F,0x74840F,0x74840F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_NOT_EQUAL: + ICCmpAndBranch(tempi,FALSE,ip,0x75850F,0x75850F,0x75850F,0x75850F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_NOT_EQUAL2: + ICCmpAndBranch(tempi,TRUE,ip,0x75850F,0x75850F,0x75850F,0x75850F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_GREATER_EQUAL: + if (tempi->ic_flags&ICF_USE_F64) + ICFCmpAndBranch(lx,tempi, ip,0x73830F,0x76860F,buf,ip2); + else + ICCmpAndBranch(tempi,FALSE,ip,0x73830F,0x7D8D0F,0x76860F,0x7E8E0F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_GREATER_EQUAL2: + ICCmpAndBranch(tempi,TRUE,ip,0x73830F,0x7D8D0F,0x76860F,0x7E8E0F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_LESS_EQUAL: + if (tempi->ic_flags&ICF_USE_F64) + ICFCmpAndBranch(lx,tempi, ip,0x76860F,0x73830F,buf,ip2); + else + ICCmpAndBranch(tempi,FALSE,ip,0x76860F,0x7E8E0F,0x73830F,0x7D8D0F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_LESS_EQUAL2: + ICCmpAndBranch(tempi,TRUE,ip,0x76860F,0x7E8E0F,0x73830F,0x7D8D0F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_GREATER: + if (tempi->ic_flags&ICF_USE_F64) + ICFCmpAndBranch(lx,tempi, ip,0x77870F,0x72820F,buf,ip2); + else + ICCmpAndBranch(tempi,FALSE,ip,0x77870F,0x7F8F0F,0x72820F,0x7C8C0F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_GREATER2: + ICCmpAndBranch(tempi,TRUE,ip,0x77870F,0x7F8F0F,0x72820F,0x7C8C0F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_LESS: + if (tempi->ic_flags&ICF_USE_F64) + ICFCmpAndBranch(lx,tempi, ip,0x72820F,0x77870F,buf,ip2); + else + ICCmpAndBranch(tempi,FALSE,ip,0x72820F,0x7C8C0F,0x77870F,0x7F8F0F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_LESS2: + ICCmpAndBranch(tempi,TRUE,ip,0x72820F,0x7C8C0F,0x77870F,0x7F8F0F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_BT: + ICBrBitOps(tempi,ip,0xA30F,0x20BA0F,0x72820F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_BTS: + case IC_BR_LBTS: + ICBrBitOps(tempi,ip,0xAB0F,0x28BA0F,0x72820F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_BTR: + case IC_BR_LBTR: + ICBrBitOps(tempi,ip,0xB30F,0x30BA0F,0x72820F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_BTC: + case IC_BR_LBTC: + ICBrBitOps(tempi,ip,0xBB0F,0x38BA0F,0x72820F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_NOT_BT: + ICBrBitOps(tempi,ip,0xA30F,0x20BA0F,0x73830F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_NOT_BTS: + case IC_BR_NOT_LBTS: + ICBrBitOps(tempi,ip,0xAB0F,0x28BA0F,0x73830F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_NOT_BTR: + case IC_BR_NOT_LBTR: + ICBrBitOps(tempi,ip,0xB30F,0x30BA0F,0x73830F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_NOT_BTC: + case IC_BR_NOT_LBTC: + ICBrBitOps(tempi,ip,0xBB0F,0x38BA0F,0x73830F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_AND_ZERO: + ICAndBranch(tempi,ip,0x74840F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_BR_AND_NOT_ZERO: + ICAndBranch(tempi,ip,0x75850F,buf,ip2); + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_LEAVE: + if (fun_class) { + if (Bt(fun_class->flags,Ff_INTERRUPT)) + ICPopRegs(tempi,CALWAYS_CLOBBERED_MASK&~(1<used_reg_mask&(CREG_VARS_MASK|CREG_NON_PTR_MASK|CSTK_TEMPS_MASK)); + else + ICPopRegs(tempi,fun_class->used_reg_mask&(CREG_VARS_MASK|CREG_NON_PTR_MASK)); + } + if (tempi->ic_data<=MAX_I16) + ICU8(tempi,0xC9); + else { + ICAddRSP(tempi,tempi->ic_data); + ICPop(tempi,TY_REG+IT_I64,CREG_RBP,0,ip2); + } + if (fun_class && Bt(fun_class->flags,Ff_INTERRUPT)) + ICU16(tempi,0xCF48); + else if (fun_class && fun_class->arg_cnt && + (Bt(fun_class->flags,Ff_RET1) || Bt(fun_class->flags,Ff_ARGPOP)) && + !Bt(fun_class->flags,Ff_NOARGPOP)) { + ICU8(tempi,0xC2); + ICU16(tempi,fun_class->arg_cnt<<3); + } else + ICU8(tempi,0xC3); + break; + case IC_RET: + ICU8(tempi,0xC3); + break; + case IC_JMP: + short_jmp=ToBool(tempi->ic_flags&ICF_SHORT_JMP); + lb=tempi->ic_data; + while (lb1=lb->fwd) + lb=lb1; + if (!buf) { + if (lb->addr!=INVALID_PTR) { + i=lb->addr-ip; + if (MIN_I8+5ic_flags|=ICF_SHORT_JMP; + i=lb->addr-(ip+2); + ICU16(tempi,i<<8+0xEB); + } else { + i=lb->addr-(ip+5); + ICU8(tempi,0xE9); + ICU32(tempi,i); + } + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_END: + break; + case IC_LABEL: + lb=tempi->ic_data; + lb->addr=ip; + if (lb->flags&CBMF_POP_CMP) { + ICAddRSP(tempi,-8,FALSE); + ICAddRSP(tempi,8,FALSE); + } + tempi->ic_flags&=~ICF_CODE_FINAL; + break; + case IC_QUESTION: + break; + case IC_IRQ: + ICU8(tempi,0xCD); + ICU8(tempi,tempi->ic_data); + break; + case IC_NOP: + case IC_NOP1: + case IC_PUSH_CMP: + break; + case IC_CALL_START: + case IC_PUSH_REGS: + ICPushRegs(tempi,tempi->ic_data); + break; + case IC_CALL_END2: + break; + case IC_CALL_END: + ICPopRegs(tempi,tempi->ic_data); + if (tempi->r.type&TY_MASK) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip2); + break; + case IC_POP_REGS: + ICPopRegs(tempi,tempi->ic_data); + break; + case IC_END_EXP: + break; + + default: + OptMissing(lx,tempi); + } + if (tempi->r.type&TY_MASK) { + if (tempi->ic_flags & ICF_R_TO_F64) { + if (tempi->ic_opcode==IC_PUSH_CMP) { + ICU24(tempi,0xDC8B48); + ICU24(tempi,0x2BDF48); + ICU24(tempi,0x1BDD48); + ICU8(tempi,0x9B); + } else { + ICFCvt(lx,tempi,CREG_RAX,tempi->r.type,tempi->r.reg,tempi->r.disp,FALSE,CN_R,ip2); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip2); + } + } else if (tempi->ic_flags & ICF_R_TO_INT) { + ICFCvt(lx,tempi,CREG_RAX,tempi->r.type,tempi->r.reg,tempi->r.disp,TRUE,CN_R,ip2); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + TY_REG+IT_I64,CREG_RAX,0,ip2); + } + } + } + if (tempi->ic_flags&ICF_DEL_PREVIOUS_INS) { + cnt=tempi->ic_last_cnt; + tempi->ic_flags&=~ICF_DEL_PREVIOUS_INS; + } else + cnt=tempi->ic_cnt; + + if (cnt && buf) { + if (tempi->ic_ext_body) { + MemCpy(buf+ip,tempi->ic_ext_body,cnt); + Free(tempi->ic_ext_body); + tempi->ic_ext_body=NULL; + } else + MemCpy(buf+ip,tempi->ic_body,cnt); + } + +skip_copy: + if (dbg && lx->min_line<=tempi->ic_line<=lx->max_line) { + i=tempi->ic_line-lx->min_line; + if (!dbg->body[i]) + dbg->body[i]=ip2; + } + + if (tempi->ic_flags&ICF_TRACE && Bt(&lx->pass_trace_mask,lx->pass) && cnt) { + "$$FG,RED$$"; + if (buf) + Un(buf+ip,cnt,64); + else if (tempi->ic_ext_body) + Un(tempi->ic_ext_body,cnt,64); + else + Un(tempi->ic_body,cnt,64); + "$$FG$$"; + } + if (!(tempi->ic_flags&(ICF_CODE_FINAL|ICF_DONT_RESTORE))) + MemCpy(&tempi->p1,saved_p123,3*sizeof(CICArg)); + ip+=cnt; + } else { + tempi->ic_cnt=0; + tempi->ic_last_cnt=-1; + } + tempi++; + } + + lb=lx->cbh.cb_misc_list; + while (lb) { + switch (lb->type) { + case CBMT_STR_CONST: + lb->addr=ip; + if (buf) + MemCpy(buf+ip,lb->str,lb->st_len); + ip+=lb->st_len; + break; + case CBMT_JMP_TABLE: + lb->addr=ip; + if (buf) { + for (i=0;irange;i++) { + lb1=lb->jmp_table[i]; + qq(U8 *)=buf+lb->addr+i<<3; + if (lx->flags&LF_STATIC_COMPILE && !(lx->flags&LF_NO_ABSS)) { + tempa=CAlloc(sizeof(CExeAbsAddr)); + tempa->next=a->abss; + tempa->type=EAA_ADD_U64; + a->abss=tempa; + tempa->ip=a->ip+lb->addr+i<<3; + *qq=lb1->addr+a->ip; + } else + *qq=lb1->addr+buf; + } + } + ip+=lb->range*sizeof(U8 *); + break; + case CBMT_FLOAT_CONSTS: + lb->addr=ip; + if (buf) + MemCpy(buf+lb->addr,lb->float_consts,lb->num_consts*sizeof(F64)); + ip+=lb->num_consts*sizeof(F64); + break; + } + lb=lb->next; + } + if (dbg) { + if (lx->flags&LF_STATIC_COMPILE) + dbg->body[num_lines]=ip+a->ip; + else + dbg->body[num_lines]=ip+buf; + } + + return ip; +} diff --git a/SparrowOS/Compiler/StmtParser.CPP b/SparrowOS/Compiler/StmtParser.CPP new file mode 100644 index 0000000..556f9e6 --- /dev/null +++ b/SparrowOS/Compiler/StmtParser.CPP @@ -0,0 +1,2056 @@ +CHashClass *PrsClassNew() +{ +/* +Ptrs to classes are handled by +allocating 5 structures for each +new class and representing a pointer +to a class by advancing 1 struct fwd +for one * and two fwd for two **. +*/ + + CHashClass *result=CAlloc(sizeof(CHashClass)*5,Fs->code_heap), + *tempc=result; + tempc->last_in_member_list=&tempc->member_list; + tempc->type=HTT_CLASS; + tempc->sub_type=IT_PTR; + tempc->ptr_cnt=0; + + tempc++; + tempc->type=HTT_CLASS; + tempc->sub_type=IT_PTR; + tempc->size=sizeof(U8 *); + tempc->ptr_cnt=1; + + tempc++; + tempc->type=HTT_CLASS; + tempc->sub_type=IT_PTR; + tempc->size=sizeof(U8 *); + tempc->ptr_cnt=2; + + tempc++; + tempc->type=HTT_CLASS; + tempc->sub_type=IT_PTR; + tempc->size=sizeof(U8 *); + tempc->ptr_cnt=3; + + tempc++; + tempc->type=HTT_CLASS; + tempc->sub_type=IT_PTR; + tempc->size=sizeof(U8 *); + tempc->ptr_cnt=4; + + return result; +} + +CHashFun *PrsFunNew() +{ + CHashFun *result=CAlloc(sizeof(CHashFun)*5,Fs->code_heap), + *tempf=result; + tempf->last_in_member_list=&tempf->member_list; + tempf->type=HTT_FUN; + tempf->sub_type=IT_PTR; + tempf->ptr_cnt=0; + + tempf++; + tempf->type=HTT_FUN; + tempf->sub_type=IT_PTR; + tempf->size=sizeof(U8 *); + tempf->ptr_cnt=1; + + tempf++; + tempf->type=HTT_FUN; + tempf->sub_type=IT_PTR; + tempf->size=sizeof(U8 *); + tempf->ptr_cnt=2; + + tempf++; + tempf->type=HTT_FUN; + tempf->sub_type=IT_PTR; + tempf->size=sizeof(U8 *); + tempf->ptr_cnt=3; + + tempf++; + tempf->type=HTT_FUN; + tempf->sub_type=IT_PTR; + tempf->size=sizeof(U8 *); + tempf->ptr_cnt=4; + + return result; +} + +CMemberList *MemberListNew(I64 register) +{ + CMemberList *result=CAlloc(sizeof(CMemberList)); + result->register=register; + return result; +} + +I64 PrsKeyWord(CLex *lx) +{ + CHashGeneric *temph; + if (lx->token==TK_IDENT && + (temph=lx->hash_entry) && + temph->type&HTT_KEYWORD) + return temph->user_data0; + else + return -1; +} + +U0 PrsVarInit(CLex *lx,U8 **_dst,CHashClass *tempc,CArrayDim *tempad,U8 *data_addr_ip,U8 **_base,Bool data_heap,I64 pass) +{ + U8 *dst=*_dst,*ex; + I64 i,j,r,old_flags,type,size; + CMemberList *tempm; + CIntermediateCode *tempi; + CAsmCtrl *a=lx->a; + CExeAbsAddr *tempa; + CExeImportExport *tempe; + Bool is_str; + + while (tempc->fwd_class) + tempc=tempc->fwd_class; + if (tempm=tempc->member_list) { + if (lx->token!='{') + LexExcept(lx,"ST_EXPECTING_LEFT_BRACE"); + lx->stk_ptr--; //grows up + LexPush(lx); + Lex(lx); + + while (tempm) { + PrsVarInit2(lx,&dst,tempm->member_class,&tempm->dim,data_addr_ip,_base,data_heap,pass); + if (lx->token==',') + Lex(lx); + tempm=tempm->next; + } + lx->stk_ptr--; //grows up + if (lx->token!='}') + LexExcept(lx,"ST_MISSING_RIGHT_BRACE"); + Lex(lx); + } else { + if (tempc->ptr_cnt==1 && ((tempc-1)->sub_type==IT_I8 || (tempc-1)->sub_type==IT_U8) && + !tempad && lx->token==TK_STR) + is_str=TRUE; + else + is_str=FALSE; + if (lx->flags&LF_STATIC_COMPILE && is_str) { + lx->stk_ptr--; //grows up + ex=LexExtStr(lx,&i); + if (pass==2) { + tempa=CAlloc(sizeof(CExeAbsAddr)); + tempa->next=a->abss; + tempa->type=EAA_ADD_U64; + a->abss=tempa; + tempa->ip=data_addr_ip+dst-*_base; + *dst(I64 *)=a->ip; + for (j=0;jflags; + lx->flags=LF_NO_ABSS | lx->flags & ~(LF_STATIC_COMPILE|LF_HAS_MISC_DATA|LF_NOT_CONSTANT); + ex=CmpExpression(lx,&type); + if (old_flags&LF_STATIC_COMPILE && + lx->flags&LF_NOT_CONSTANT && + !Bt(&lx->opts,OPTf_GLBLS_ON_DATA_HEAP)) { + lx->flags=lx->flags&~LF_NO_ABSS|LF_STATIC_COMPILE; + ExpressionDel(ex); + if (pass==2) { + MemSet(dst,0,tempc->size); + LexPop(lx); + Lex(lx); + CBPush(lx); + CBOutPtrsInit(lx); + CBICAdd(lx,IC_START,0,0); //So we can scan back an instruction + CBICAdd(lx,IC_ABS_ADDR,data_addr_ip,tempc+1); + CBICAdd(lx,IC_IMM,dst-*_base,tempc+1); + CBICAdd(lx,IC_ADD,0,tempc+1); + if (!PrsExpression(lx,NULL,TRUE)) + throw(EXCEPT_COMPILER,10); + tempi=lx->cbh.cb_last_out_ptr; + if (tempi->ic_opcode==IC_END_EXP) + tempi->ic_opcode=IC_NOP; + CBICAdd(lx,IC_ASSIGN,0,tempc); + CBICAdd(lx,IC_END_EXP,0,tempc); + CBICAdd(lx,IC_RET,0,0); + CBICAdd(lx,IC_END,0,0); + if (ex=CBCompile(lx,NULL,&size,NULL,NULL)) { + tempe=CAlloc(sizeof(CExeImportExport)); + tempe->type=EIE_MAIN; + tempe->ip=lx->a->ip; + QueIns(tempe,lx->exe_struct->last_ie); + for (i=0;istk_ptr--; //grows up + } else { + lx->stk_ptr--; //grows up + if (!ex) + throw(EXCEPT_COMPILER,10); + r=Call(ex); + if (!(lx->flags & LF_HAS_MISC_DATA)||pass==1) + ExpressionDel(ex); + + if (type==IT_F64 && + tempc->sub_type!=IT_F64) + r=r(F64); + else if (type!=IT_F64 && + tempc->sub_type==IT_F64) + r(F64)=r; + MemCpy(dst,&r,tempc->size); + } + } + dst+=tempc->size; + lx->flags=lx->flags&~LF_NO_ABSS|old_flags&(LF_HAS_MISC_DATA|LF_STATIC_COMPILE); + } + *_dst=dst; +} + + +class CVI2 +{ + CVI2 *next,*last; + U0 base; +}; + + +U0 PrsVarInit2(CLex *lx,U8 **_dst,CHashClass *tempc,CArrayDim *tempad,U8 *data_addr_ip,U8 **_base,Bool data_heap,I64 pass) +{ + I64 i,j,cnt; + U8 *st,*_b; + CVI2 root,*tempvi,*tempvi1; + CArrayDim *tempad1; + while (tempc->fwd_class) + tempc=tempc->fwd_class; + if (tempad1=tempad->next) { + if (!tempc->ptr_cnt && + (tempc->sub_type==IT_I8 || tempc->sub_type==IT_U8) && + lx->token==TK_STR) { + lx->stk_ptr--; //grows up + st=LexExtStr(lx,&i); + if (tempad1->cnt<0) { //[] + tempad1->cnt=i; + tempad->total_cnt=i*tempad1->total_cnt; + Free(*_base); + if (data_heap) + *_base=MAlloc(i); + else + *_base=MAlloc(i,Fs->code_heap); + MemCpy(*_base,st,i); + *_dst=*_base+i; + } else { + MemCpy(*_dst,st,tempad1->cnt); + *_dst+=tempad1->cnt; + } + Free(st); + LexPush(lx); + } else { + if (lx->token=='{') { + lx->stk_ptr--; //grows up + LexPush(lx); + Lex(lx); + } + if (tempad1->cnt<0) { //[] + QueInit(&root); + cnt=0; + while (lx->token!='}') { + tempvi=MAlloc(offset(CVI2.base)+tempad1->total_cnt*tempc->size); + _b=&tempvi->base; + PrsVarInit2(lx,&_b,tempc,tempad1,data_addr_ip,_base,data_heap,pass); + QueIns(tempvi,root.last); + if (lx->token==',') + Lex(lx); + cnt++; + } + Lex(lx); //skip '}' + tempad1->cnt=cnt; + tempad->total_cnt=cnt*tempad1->total_cnt; + j=tempad1->total_cnt*tempc->size; + i=cnt*j; + Free(*_base); + if (data_heap) + *_base=_b=MAlloc(i); + else + *_base=_b=MAlloc(i,Fs->code_heap); + tempvi=root.next; + while (tempvi!=&root) { + tempvi1=tempvi->next; + MemCpy(_b,&tempvi->base,j); + _b+=j; + Free(tempvi); + tempvi=tempvi1; + } + *_dst=_b; + } else { + for (i=0;icnt;i++) { + PrsVarInit2(lx,_dst,tempc,tempad1,data_addr_ip,_base,data_heap,pass); + if (tempad1->cnt>1 && lx->token==',') + Lex(lx); + } + if (lx->token=='}') + Lex(lx); + } + } + } else { + PrsVarInit(lx,_dst,tempc,tempad1,data_addr_ip,_base,data_heap,pass); + LexPush(lx); + } +} + +U0 PrsGlblInit(CLex *lx,CHashGlblVar *tempg,I64 pass) +{ + U8 *dst=tempg->data_addr; + PrsVarInit2(lx,&dst,tempg->var_class,&tempg->dim, + tempg->data_addr_ip,&tempg->data_addr, + Bt(&lx->opts,OPTf_GLBLS_ON_DATA_HEAP)|| + Bt(&lx->flags,Lf_STATIC_COMPILE),pass); +} + +U0 PrsStaticInit(CLex *lx,CMemberList *tempm,I64 pass) +{ + U8 *ex,*dst=tempm->static_data; + CHashClass *tempc=tempm->member_class; + I64 i,size; + CIntermediateCode *tempi; + CExeImportExport *tempe; + + if (lx->flags&LF_STATIC_COMPILE && pass==2) { + CBPush(lx); + CBOutPtrsInit(lx); + CBICAdd(lx,IC_START,0,0); //So we can scan back an instruction + tempi=lx->cbh.cb_last_out_ptr; + } + PrsVarInit2(lx,&dst,tempc,&tempm->dim,tempm->static_data_ip,&tempm->static_data,Bt(&lx->flags,Lf_STATIC_COMPILE),pass); + if (lx->flags&LF_STATIC_COMPILE && pass==2) { + if (tempi!=lx->cbh.cb_last_out_ptr) { + CBICAdd(lx,IC_RET,0,0); + CBICAdd(lx,IC_END,0,0); + if (ex=CBCompile(lx,NULL,&size,NULL,NULL)) { + if (pass==2) { + tempe=CAlloc(sizeof(CExeImportExport)); + tempe->type=EIE_MAIN; + tempe->ip=lx->a->ip; + QueIns(tempe,lx->exe_struct->last_ie); + for (i=0;icbh.cb_out_first); + CBPop(lx); + } +} + + +Bool PrsArrayDims(CLex *lx,CArrayDim *dim) +{ //returns false on empty [] + //dim->next!=0 for array + CArrayDim *tempad,*tempad1; + I64 j; + Bool result=TRUE; + dim->next=NULL; + dim->cnt=0; + dim->total_cnt=1; + tempad1=&dim->next; + while (lx->token=='[') { + if (Lex(lx)==']' && !dim->next) { + j=-1; + result=FALSE; + } else { + if ((j=Expression(lx))<0) + LexExcept(lx,"ST_INVALID_ARRAY_SIZE"); + } + tempad1=&dim->next; + while (tempad1->next) { + tempad1->next->total_cnt*=j; + tempad1=tempad1->next; + } + tempad=MAlloc(sizeof(CArrayDim)); + tempad1->next=tempad; + tempad1=tempad; + tempad->next=NULL; + tempad->cnt=j; + tempad->total_cnt=1; + dim->total_cnt*=j; + if (lx->token!=']') + LexExcept(lx,"ST_MISSING_RIGHT_BRACKET"); + Lex(lx); + } + return result; +} + + +U0 PrsDotDotDot(CLex *lx,CHashFun *tempf,I64 register) +{ + CMemberList *tempm; + CArrayDim *tempad; + + Bts(&tempf->flags,Ff_DOT_DOT_DOT); + + Lex(lx); + tempm=MemberListNew(register); + tempm->flags=MLF_DOT_DOT_DOT; + tempm->member_class=sys_internal_types[IT_I64]; + tempm->str=StrNew("argc"); + tempm->offset=tempf->size; + tempf->size+=8; + MemberAdd(lx,tempm,tempf,PRS1B_FUN_ARG); + + tempm=MemberListNew(register); + tempm->flags=MLF_DOT_DOT_DOT; + tempm->member_class=sys_internal_types[IT_I64]; + tempm->str=StrNew("argv"); + tempm->dim.total_cnt=127; //arbitrary + tempm->dim.next=tempad=MAlloc(sizeof(CArrayDim)); + tempad->next=NULL; + tempad->cnt=127; //arbitrary + tempad->total_cnt=1; + tempm->offset=tempf->size; + tempf->size+=8; + MemberAdd(lx,tempm,tempf,PRS1B_FUN_ARG); + + if (lx->token==')') + Lex(lx); +} + +CHashClass *PrsType(CLex *lx,CHashClass **_tempc1, + I64 *_mode,CMemberList *tempm,U8 **_ident,CHashFun **_fun_ptr, + CHashExport **_tempess,CArrayDim *tempad,I64 cps_flags) +{ + I64 fun_ptr_cnt,mode=*_mode; + CHashClass *tempc1=*_tempc1,*tempc2; + CHashFun *fun_ptr=NULL; + CHashExport *tempess=NULL; + CArrayDim *tempad2; + +start: + if (!tempc1 || !(tempc1->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) + LexExcept(lx,"ST_INVALID_CLASS"); + + while (lx->token=='*') { + if (mode.u8[1]) { + lx->stk_ptr--; //grows up + LexPush(lx); + } + Lex(lx); + tempc1++; + } + + if (PrsKeyWord(lx)==KW_UNION) { + Lex(lx); + tempc2=PrsClass(lx,TRUE,cps_flags,mode.u8[0]==PRS0_EXTERN); + tempc2->fwd_class=tempc1; + tempc1=tempc2; + if (_tempc1) *_tempc1=tempc1; + mode=PRS0_NULL|PRS1_NULL; + goto start; + } else if (PrsKeyWord(lx)==KW_CLASS) { + Lex(lx); + tempc2=PrsClass(lx,FALSE,cps_flags,mode.u8[0]==PRS0_EXTERN); + tempc2->fwd_class=tempc1; + tempc1=tempc2; + if (_tempc1) *_tempc1=tempc1; + mode=PRS0_NULL|PRS1_NULL; + goto start; + } + + if (lx->token=='(') { + if (Lex(lx)!='*') + LexExcept(lx,"ST_EXPECTING_STAR"); + fun_ptr_cnt=1; + while (Lex(lx)=='*') + fun_ptr_cnt++; + } else + fun_ptr_cnt=-1; + + if (_ident) { + if (lx->token==TK_IDENT) { + tempess=lx->hash_entry; + *_ident=lx->ident; + lx->ident=NULL; + Lex(lx); + } else { + if (!mode.u8[1]) + *_ident=NULL; + else if (lx->token==',' || lx->token==';' || lx->token==')') { + tempess=NULL; + *_ident=StrNew("_anon_"); + tempm->flags|=MLF_NO_UNUSED_WARN; + } else + LexExcept(lx,"ST_EXPECTING_IDENTIFIER"); + } + } + + if (fun_ptr_cnt>=0) { + if (lx->token!=')') + LexExcept(lx,"ST_MISSING_RIGHT_PAREN"); + if (Lex(lx)!='(') + LexExcept(lx,"ST_EXPECTING_LEFT_PAREN"); + fun_ptr=PrsFunJoin(lx,tempc1,NULL,cps_flags)+fun_ptr_cnt; + tempc1=sys_internal_types[IT_PTR]+fun_ptr_cnt; + } + if (!PrsArrayDims(lx,tempad) && lx->token!='=') { + tempc1++; + tempad2=tempad->next->next; + Free(tempad->next); + tempad->next=tempad2; + } + + tempc2=tempc1; + while (tempc2->fwd_class) + tempc2=tempc2->fwd_class; + if (tempc2->ptr_cnt) { + tempc2-=tempc2->ptr_cnt; + if (tempc2->type&HTT_INTERNAL_TYPE && !tempc2->size) + LexPutWarn(lx,"ST_PTR_TO_U0"); + } + + if (_mode) *_mode=mode; + if (_fun_ptr) *_fun_ptr=fun_ptr; + if (_tempess) *_tempess=tempess; + return tempc1; +} + +U0 PrsVarList(CLex *lx,CHashClass *tempc, + I64 mode,I64 union_base=0) +{ + I64 i,k,old_flags=lx->flags,old_flags2,type,register; + CHashClass *tempc1,*tempc2; + CHash *temph; + CMemberList *tempm; + CMemberListMeta *temp_meta; + U8 *ex; + Bool undef_array_size,first; + lx->flags|=LF_DONT_MAKE_RESULT; + if (mode.u8[1]==PRS1B_CLASS) + lx->flags|=LF_CLASS_IP; + if (mode.u8[1]!=PRS1B_LOCAL_VAR && mode.u8[1]!=PRS1B_STATIC_LOCAL_VAR || mode&PRSF_UNION) { + if (lx->token=='(' || lx->token=='{') + Lex(lx); + } + while (TRUE) { + while (lx->token==';') Lex(lx); + if (mode&PRSF_UNION) + lx->class_ip=union_base; + else + lx->class_ip=tempc->size; + while (lx->token=='$$') { + if (Lex(lx)!='=') //skip $$ + LexExcept(lx,"ST_EXPECTING_EQUAL"); + Lex(lx); //skip = + lx->class_ip=Expression(lx); + if (mode&PRSF_UNION) + union_base=lx->class_ip; + else + tempc->size=lx->class_ip; + if (lx->token!=';') + LexExcept(lx,"ST_MISSING_SEMICOLON"); + Lex(lx); //skip ; + } + if (lx->token==')' || lx->token=='}') { + Lex(lx); + goto pvl_done; + } + register=CREG_UNDEF; + k=PrsKeyWord(lx); + if (k==KW_REG) { + register=CREG_ALLOC; + if (Lex(lx)==TK_IDENT) { + k=DefineMatch(lx->ident,"ST_U64_REGS"); + if (k>=0) { + register=k; + Lex(lx); + } + } + } else if (k==KW_NOREG) { + register=CREG_NONE; + Lex(lx); + } + + if (lx->token==TK_DOT_DOT_DOT && mode.u8[1]==PRS1B_FUN_ARG) { + PrsDotDotDot(lx,tempc,register); + goto pvl_done; + } + temph=NULL; + if (lx->token==TK_IDENT) { + temph=lx->hash_entry; + k=PrsKeyWord(lx); + } + if (!temph) + LexExcept(lx,"ST_EXPECTING_TYPE"); + if (k==KW_UNION) { + Lex(lx); + PrsVarList(lx,tempc,mode|PRSF_UNION,tempc->size); + } else { + if (!(temph->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) + LexExcept(lx,"ST_EXPECTING_TYPE"); + first=TRUE; +restart: + tempc1=temph; + LexPush(lx); + if (lx->token!=',' && mode.u8[1]==PRS1B_LOCAL_VAR) { + Lex(lx); //skip type + lx->temp_indent_level=lx->indent_level=1; + lx->flags|=LF_INSIDE_EXPRESSION; + if (lx->fun_lfn) + lx->expression_start_line_num=lx->fun_lfn->line_num; + else + lx->expression_start_line_num=1; + } else + Lex(lx); //skip type or ',' + tempm=MemberListNew(register); + if (mode.u8[1]==PRS1B_STATIC_LOCAL_VAR) { + tempm->flags=MLF_STATIC; + tempm->register=CREG_NONE; + } + if (mode.u8[1]==PRS1B_FUN_ARG || mode.u8[1]==PRS1B_LOCAL_VAR) { + k=PrsKeyWord(lx); + if (k==KW_REG) { + tempm->register=CREG_ALLOC; + lx->stk_ptr--; //grows up + LexPush(lx); + if (Lex(lx)==TK_IDENT) { + k=DefineMatch(lx->ident,"ST_U64_REGS"); + if (k>=0) { + tempm->register=k; + lx->stk_ptr--; //grows up + LexPush(lx); + Lex(lx); + } + } + } else if (k==KW_NOREG) { + tempm->register=CREG_NONE; + lx->stk_ptr--; //grows up + LexPush(lx); + Lex(lx); + } + } + tempm->member_class=PrsType(lx,&tempc1,&mode,tempm,&tempm->str, + &tempm->fun_ptr,NULL,&tempm->dim,0); + if (tempm->fun_ptr) + tempm->flags|=MLF_FUN; + if (first) + MemberAdd(lx,tempm,tempc,mode.u8[1]); + else + MemberAdd(lx,tempm,tempc,PRS1B_NULL); + tempc->member_cnt++; + + tempc2=tempm->member_class; + i=tempc2->size*tempm->dim.total_cnt; + switch (mode.u8[1]) { + case PRS1B_STATIC_LOCAL_VAR: + if (i<0) { + i=0; + undef_array_size=TRUE; + } else + undef_array_size=FALSE; + if (mode&PRSF_UNION) + LexExcept(lx,"ST_STATIC_UNION"); + k=(i+7)&~7; + if (lx->flags&LF_STATIC_COMPILE) + tempm->static_data=MAlloc(k); + else + tempm->static_data=MAlloc(k,Fs->code_heap); + if (lx->flags&LF_STATIC_COMPILE) { + tempm->static_data_ip=lx->a->ip; + k>>=3; + if (sys_var_init_flag&1) { + k<<=3; + while (k--) + AsmStoreCodeU8(lx,sys_var_init_val); + } else + while (k--) + AsmStoreCodeU64(lx,0); + } else + if (sys_var_init_flag&1) + MemSet(tempm->static_data,sys_var_init_val,k); + lx->stk_ptr--; + if (lx->token=='=') { + lx->flags=lx->flags&~LF_DONT_MAKE_RESULT|old_flags&LF_DONT_MAKE_RESULT; + if (undef_array_size) { + LexPush(lx); + LexPush(lx); + Lex(lx); //skip = + PrsStaticInit(lx,tempm,1); + lx->stk_ptr--; + i=tempc2->size*tempm->dim.total_cnt; + k=(i+7)&~7; + if (lx->flags&LF_STATIC_COMPILE) { + k>>=3; + if (sys_var_init_flag&1) { + k<<=3; + while (k--) + AsmStoreCodeU8(lx,sys_var_init_val); + } else + while (k--) + AsmStoreCodeU64(lx,0); + } else + if (sys_var_init_flag&1) + MemSet(tempm->static_data,sys_var_init_val,k); + LexPop(lx); + } + LexPush(lx); + Lex(lx); //skip = + PrsStaticInit(lx,tempm,2); + lx->stk_ptr--; + if (lx->flags&LF_STATIC_COMPILE) + for (k=0;kstatic_data[k],tempm->static_data_ip+k); + tempm->use_cnt=0; + lx->flags|=LF_DONT_MAKE_RESULT; + } + if (lx->flags&LF_STATIC_COMPILE) + Free(tempm->static_data); + break; + case PRS1B_LOCAL_VAR: + if (mode&PRSF_UNION) { + if (union_base-tempc->sizesize; + else + i=0; + } + if (i>=8) + tempc->size=(tempc->size-i)&~7; + else if (i>=4) + tempc->size=(tempc->size-i)&~3; + else if (i>=2) + tempc->size=(tempc->size-i)&~1; + else + tempc->size-=i; + tempm->offset=tempc->size; + if (lx->token=='=') { + lx->flags=lx->flags&~LF_DONT_MAKE_RESULT|old_flags&LF_DONT_MAKE_RESULT; + LexPop(lx); + Lex(lx); + if (!PrsExpression(lx,NULL,TRUE)) + throw(EXCEPT_COMPILER,7); + tempm->use_cnt=0; + lx->flags|=LF_DONT_MAKE_RESULT; + } else + lx->stk_ptr--; + break; + case PRS1B_FUN_ARG: + if (mode&PRSF_UNION) { + tempm->offset=union_base; + if (tempc->size-union_base<8) + tempc->size=8+union_base; + } else { + tempm->offset=tempc->size; + tempc->size+=8; + } + if (lx->token=='=') { + Lex(lx); + old_flags2=lx->flags; + lx->flags&=~LF_HAS_MISC_DATA; + ex=CmpExpression(lx,&type); + if (!ex) + throw(EXCEPT_COMPILER,8); + tempm->dft_val=Call(ex); + while (tempc2->fwd_class) + tempc2=tempc2->fwd_class; + if (tempc2->sub_type==IT_F64) { + if (type!=IT_F64) + tempm->dft_val(F64)=tempm->dft_val; + } else { + if (type==IT_F64) + tempm->dft_val=tempm->dft_val(F64); + } + if (lx->flags & LF_HAS_MISC_DATA) { + tempm->dft_val=StrNew(tempm->dft_val); + tempm->flags|=MLF_STR_DFT_AVAILABLE; + } + ExpressionDel(ex); + tempm->flags|=MLF_DFT_AVAILABLE; + lx->flags|=old_flags2&LF_HAS_MISC_DATA; + } + lx->stk_ptr--; + break; + case PRS1B_CLASS: + if (mode&PRSF_UNION) { + tempm->offset=union_base; + if (tempc->size-union_basesize=i+union_base; + } else { + tempm->offset=tempc->size; + tempc->size+=i; + } + while (lx->token==TK_IDENT) { + temp_meta=MAlloc(sizeof(CMemberListMeta)); + temp_meta->next=tempm->meta; + tempm->meta=temp_meta; + temp_meta->str=lx->ident; + temp_meta->flags=0; + lx->ident=NULL; + if (Lex(lx)==TK_STR) { + temp_meta->user_data=LexExtStr(lx); + temp_meta->flags|=MLMF_IS_STR; + } else + temp_meta->user_data=Expression(lx); + } + lx->stk_ptr--; + break; + } + switch (lx->token) { + case ',': + if (mode.u8[1]==PRS1B_FUN_ARG && !(mode&PRSF_UNION)) + Lex(lx); + else { + first=FALSE; + goto restart; + } + break; + case ')': + case '}': + Lex(lx); + goto pvl_done; + case ';': + lx->flags=lx->flags&~LF_DONT_MAKE_RESULT|old_flags&LF_DONT_MAKE_RESULT; + Lex(lx); + lx->flags|=LF_DONT_MAKE_RESULT; + if ((mode.u8[1]==PRS1B_LOCAL_VAR||mode.u8[1]==PRS1B_STATIC_LOCAL_VAR) && !(mode&PRSF_UNION)) + goto pvl_done; + break; + default: + LexExcept(lx,"ST_MISSING_SEMICOLON"); + } + } + } +pvl_done: + if (mode.u8[1]==PRS1B_LOCAL_VAR) { + lx->flags&=~LF_INSIDE_EXPRESSION; + lx->temp_indent_level=lx->indent_level=1; + } + lx->flags=lx->flags&~(LF_CLASS_IP|LF_DONT_MAKE_RESULT)| + old_flags& (LF_CLASS_IP|LF_DONT_MAKE_RESULT); +} + +U0 UndefinedExtern() +{ + PutDefineErr("ST_UNDEFINED_EXTERN"); + "at %P\n",Caller; + throw(EXCEPT_UNDEF_EXTERN); +} + +U0 UnusedExternWarning(CLex *lx,CHashClass *tempc) +{ + PrintFWarn("%S '%s'\n","ST_UNUSED_EXTERN",tempc->str); + lx->warning_cnt++; +} + +CHashClass *PrsClass(CLex *lx,Bool is_union,I64 cps_flags,Bool is_extern) +{ + CHashClass *tempc,*base_class; + if (lx->token!=TK_IDENT) + LexExcept(lx,"ST_EXPECTING_IDENTIFIER"); + if (is_extern) { + tempc=PrsClassNew; + tempc->str=lx->ident; + lx->ident=NULL; + if (IsReplaceSyms) + HashReplace(tempc,lx->glbl_hash_table); + else + HashAdd(tempc,lx->glbl_hash_table); + LBts(tempc->flags,Cf_EXTERN); + SetSrcFileInfo(lx,tempc); + Lex(lx); + } else { + if (lx->flags&LF_STATIC_COMPILE) { + if (tempc=HashFind(lx->ident,lx->glbl_hash_table,HTT_CLASS)) { + if (!Bt(tempc->flags,Cf_EXTERN)) + tempc=NULL; + else if (tempc->use_cnt<3) + UnusedExternWarning(lx,tempc); + } + } else { + if (tempc=HashSingleTableFind(lx->ident,lx->glbl_hash_table,HTT_CLASS)) { + if (!Bt(tempc->flags,Cf_EXTERN)) + tempc=NULL; + else if (tempc->use_cnt<3) + UnusedExternWarning(lx,tempc); + } + } + if (!tempc) { + tempc=PrsClassNew; + tempc->str=lx->ident; + lx->ident=NULL; + if (IsReplaceSyms) + HashReplace(tempc,lx->glbl_hash_table); + else + HashAdd(tempc,lx->glbl_hash_table); + } else { + Free(tempc->src_link); + Free(tempc->index); + } + LBtr(tempc->flags,Cf_EXTERN); + if (cps_flags&CPS_IS_PUBLIC) + tempc->type|=HTF_PUBLIC; + SetSrcFileInfo(lx,tempc); + tempc->use_cnt=0; + if (Lex(lx)==':') { + if (Lex(lx)!=TK_IDENT || !(base_class=lx->hash_entry) || + !(base_class->type&HTT_CLASS)) + LexExcept(lx,"ST_INVALID_CLASS"); + if (Lex(lx)==',') + LexExcept(lx,"ST_ONE_BASE_CLASS"); + tempc->base_class=base_class; + tempc->size+=base_class->size; + } + if (is_union) + PrsVarList(lx,tempc,PRS0_NULL|PRS1_CLASS|PRSF_UNION); + else + PrsVarList(lx,tempc,PRS0_NULL|PRS1_CLASS); + } + return tempc; +} + +CHashFun *PrsFunJoin(CLex *lx, + CHashClass *temp_return,U8 *name,I64 cps_flags) +{ + CMemberList *tempm; + CAsmCtrl *a=lx->a; + CHashFun *tempf; + if (name) { //if not fun_ptr + if (lx->flags&LF_STATIC_COMPILE) { + if (tempf=HashFind(name,lx->glbl_hash_table,HTT_FUN)) { + if (tempf->type & HTF_IMPORT) + tempf=NULL; + else + if (tempf->use_cnt<3) + UnusedExternWarning(lx,tempf); + } + } else { + if (tempf=HashSingleTableFind(name,lx->glbl_hash_table,HTT_FUN)) { + if (!Bt(tempf->flags,Cf_EXTERN)) + tempf=NULL; + else if (tempf->use_cnt<3) + UnusedExternWarning(lx,tempf); + } + } + } else + tempf=NULL; + if (!tempf) { + tempf=PrsFunNew; + tempf->used_reg_mask=CALWAYS_CLOBBERED_MASK+CSTK_TEMPS_MASK; + tempf->clobbered_reg_mask=CALWAYS_CLOBBERED_MASK+CSTK_TEMPS_MASK; + tempf->str=name; + if (lx->flags&LF_STATIC_COMPILE) + tempf->executable_addr=a->ip; + else + tempf->executable_addr=&UndefinedExtern; + LBts(tempf->flags,Cf_EXTERN); + if (cps_flags&CPS_IS_INTERRUPT) + Bts(tempf->flags,Ff_INTERRUPT); + if (cps_flags&CPS_IS_ARGPOP) + Bts(tempf->flags,Ff_ARGPOP); + if (cps_flags&CPS_IS_NOARGPOP) + Bts(tempf->flags,Ff_NOARGPOP); + if (name) { //if not fun_ptr + if (IsReplaceSyms) + HashReplace(tempf,lx->glbl_hash_table); + else + HashAdd(tempf,lx->glbl_hash_table); + } + } else { + tempf->used_reg_mask=CALWAYS_CLOBBERED_MASK+CSTK_TEMPS_MASK; + Free(tempf->src_link); + Free(tempf->index); + Free(name); + MemberListDel(tempf); + } + BEqu(&tempf->type,HTf_PUBLIC,cps_flags&CPS_IS_PUBLIC); + tempf->return_class=temp_return; + tempf->use_cnt=0; + SetSrcFileInfo(lx,tempf); + PrsVarList(lx,tempf,PRS0_NULL|PRS1_FUN_ARG); + tempf->arg_cnt=tempf->member_cnt; + if (0arg_cnt<<3<=MAX_I16 && !Bt(tempf->flags,Ff_DOT_DOT_DOT)) + LBts(tempf->flags,Ff_RET1); + tempm=tempf->member_list; + while (tempm) { + tempm->offset+=16; //RBP+RETURN + tempm=tempm->next; + } + tempf->size=0; + return tempf; +} + +U0 PrsFun(CLex *lx, + CHashClass *temp_return,U8 *name,I64 cps_flags) +{ + CHashFun *tempf; + CMemberList *tempm; + CCodeBlkMisc *saved_leave_label; + I64 i,j,size,*r; + Bool old_ctrace; + + lx->fun_lfn=lx->cur_lfn; + lx->min_line=lx->max_line=lx->cur_lfn->line_num; + QueVectU8Del(lx->indent_que_vect); + lx->indent_que_vect=QueVectU8New(lx->min_line); + + lx->flags&=~LF_NO_REG_OPT; + tempf=PrsFunJoin(lx,temp_return,name,cps_flags); + lx->local_var_list=tempf; + + CBPush(lx); + Btr(&lx->flags,Lf_OPT_TRACE_PRESENT); + CBOutPtrsInit(lx); + CBICAdd(lx,IC_START,0,0); //So we can scan back an instruction + + lx->temp_indent_level=lx->indent_level=0; + CBICAdd(lx,IC_ENTER,0,0); + saved_leave_label=lx->lb_leave; + lx->lb_leave=CBMiscNew(lx,CBMT_LABEL); + lx->flags&=~LF_HAS_RETURN; + PrsStatement(lx,tempf,0,NULL,FALSE); + if (tempf->return_class->size && !(lx->flags&LF_HAS_RETURN)) + LexPutWarn(lx,"ST_SHOULD_RETURN_VAL"); + lx->temp_indent_level=lx->indent_level=0; + CBICAdd(lx,IC_LABEL,lx->lb_leave,0); + lx->lb_leave=saved_leave_label; + CBICAdd(lx,IC_LEAVE,0,tempf->return_class); + CBICAdd(lx,IC_END,0,0); + tempf->size&=~7; + if (lx->flags&LF_STATIC_COMPILE) { + tempf->executable_addr=lx->a->ip; + tempf->type|=HTF_EXPORT; + r=CBCompile(lx,tempf,&size,&tempf->debug,&tempf->indent); + if (r) { + j=(size+7)>>3; + for (i=0;iopts,OPTf_COMPILE_TRACE); + tempf->executable_addr=CBCompile(lx,tempf,&size,&tempf->debug,&tempf->indent); + if (old_ctrace) { + Bts(&lx->opts,OPTf_COMPILE_TRACE); + Un(tempf->executable_addr,size,64); + } + SysSymImportsResolve(tempf->str); + } + LBtr(tempf->flags,Cf_EXTERN); + CBPop(lx); + lx->local_var_list=NULL; + tempm=tempf->member_list; + while (tempm) { + if (tempm->flags & MLF_NO_UNUSED_WARN) { + if (tempm->use_cnt>1&&StrCmp(tempm->str,"_anon_")) + PrintFWarn("%S\n $$LK-A,\"FL:%s,%d\"$$ '%s' in '%s'\n","ST_UNNEEDED_NOUNUSEDWARN", + lx->cur_lfn->name,lx->cur_lfn->line_num,tempm->str,tempf->str); + } else if (!tempm->use_cnt && GetOpt(OPTf_WARN_UNUSED_VAR)) + PrintFWarn("%S\n $$LK-A,\"FL:%s,%d\"$$ '%s' in '%s'\n","ST_UNUSED_VAR", + lx->cur_lfn->name,lx->cur_lfn->line_num,tempm->str,tempf->str); + tempm=tempm->next; + } + + QueVectU8Del(lx->indent_que_vect); + lx->indent_que_vect=NULL; + lx->fun_lfn=NULL; +} + +U0 PrsGlblVarList(CLex *lx,I64 saved_mode,CHashClass *saved_tempc, + I64 saved_val,I64 cps_flags) +{ + I64 i,j,mode,k,val; + U8 *st; + CHashExport *tempess; + CHashGlblVar *tempg; + CAsmCtrl *a=lx->a; + CExeHeapGlbl *temphg; + CHashClass *tempc; + CHashFun *tempf,*tempf_fun_ptr; + CArrayDim tempad; + Bool has_alias,undef_array_size,is_array; + while (TRUE) { + tempc=PrsType(lx,&saved_tempc,&saved_mode,NULL,&st, + &tempf_fun_ptr,&tempess,&tempad,cps_flags); + if (!st) + return; + + if (tempad.next) + is_array=TRUE; + else if (tempad.total_cnt<0) { + is_array=TRUE; + tempc--; + } else + is_array=FALSE; + + val=saved_val; + mode=saved_mode; + if (tempess && mode.u8[0]==PRS0_EXTERN && !(lx->flags&LF_STATIC_COMPILE)) { + if (tempess->type & HTT_EXPORT_SYS_SYM) { + val=tempess->val; + mode=PRS0__EXTERN|PRS1_NULL; + } + } + if (lx->token=='(') { + switch (mode.u8[0]) { + case PRS0__INTERN: + tempf=PrsFunJoin(lx,tempc,st,cps_flags); + tempf->executable_addr=val; + Bts(tempf->flags,Ff_INTERNAL); + LBtr(tempf->flags,Cf_EXTERN); + return; + case PRS0__EXTERN: + tempf=PrsFunJoin(lx,tempc,st,cps_flags); + tempf->executable_addr=val; + LBtr(tempf->flags,Cf_EXTERN); + SysSymImportsResolve(tempf->str); + return; + case PRS0_EXTERN: + PrsFunJoin(lx,tempc,st,cps_flags); + return; + case PRS0_IMPORT: + case PRS0__IMPORT: + if (!(lx->flags&LF_STATIC_COMPILE)) + LexExcept(lx,"ST_IMPORT_NOT_NEEDED"); + else { + tempf=PrsFunJoin(lx,tempc,st,cps_flags); + tempf->type|=HTF_IMPORT; + if (mode.u8[0]==PRS0__IMPORT) + tempf->import_name=StrNew(val); + else + tempf->import_name=StrNew(st); + } + return; + default: + PrsFun(lx,tempc,st,cps_flags); + return; + } + } else { + if (tempad.total_cnt<0) { + i=0; + undef_array_size=TRUE; + } else { + i=tempad.total_cnt; + undef_array_size=FALSE; + } + if (tempf_fun_ptr) + j=sizeof(U8 *); + else + j=tempc->size; + j*=i; + has_alias=FALSE; + temphg=NULL; + switch (mode.u8[0]) { + case PRS0__EXTERN: + if (lx->flags&LF_STATIC_COMPILE) { + tempg=CAlloc(sizeof(CHashGlblVar)); + tempg->data_addr_ip=val; + tempg->type=HTT_GLBL_VAR | HTF_EXPORT; + } else { + tempg=CAlloc(sizeof(CHashGlblVar),Fs->code_heap); + tempg->data_addr=val; + tempg->type=HTT_GLBL_VAR; + } + tempg->flags|=GVAF_ALIAS; + break; + case PRS0__IMPORT: + case PRS0_IMPORT: + if (!(lx->flags&LF_STATIC_COMPILE)) + LexExcept(lx,"ST_IMPORT_NOT_NEEDED"); + else { + tempg=CAlloc(sizeof(CHashGlblVar)); + tempg->type=HTT_GLBL_VAR | HTF_IMPORT; + if (mode.u8[0]==PRS0__IMPORT) + tempg->import_name=StrNew(val); + else + tempg->import_name=StrNew(st); + } + break; + case PRS0_EXTERN: + if (lx->flags&LF_STATIC_COMPILE) { + tempg=CAlloc(sizeof(CHashGlblVar)); + tempg->type=HTT_GLBL_VAR; + } else { + tempg=CAlloc(sizeof(CHashGlblVar),Fs->code_heap); + tempg->type=HTT_GLBL_VAR|HTF_UNRESOLVED; + } + break; + default: + if (lx->flags&LF_STATIC_COMPILE) { + if (Bt(&lx->opts,OPTf_GLBLS_ON_DATA_HEAP)) { + if (lx->token=='=') + LexExcept(lx,"ST_CANT_INIT_GLBL_ON_HEAP"); + tempg=CAlloc(sizeof(CHashGlblVar)); + temphg=tempg->heap_glbl=CAlloc(sizeof(CExeHeapGlbl)); + temphg->size=j; + temphg->str=StrNew(st); + temphg->next=a->heap_glbls; + a->heap_glbls=temphg; + tempg->flags=GVAF_DATA_HEAP; + tempg->type=HTT_GLBL_VAR; //TODO: HTF_EXPORT + if (tempess && tempess->type & HTT_GLBL_VAR) //TODO!! extern + LexExcept(lx,"ST_NOT_IMPLEMENTED"); + } else { + tempg=CAlloc(sizeof(CHashGlblVar)); + if (lx->token=='=') + tempg->data_addr=CAlloc(j); + if (tempc->size>=8) //align + while (a->ip&7) + AsmStoreCodeU8(lx,0); + else if (tempc->size==4) + while (a->ip&3) + AsmStoreCodeU8(lx,0); + else if (tempc->size==2) + while (a->ip&1) + AsmStoreCodeU8(lx,0); + tempg->data_addr_ip=a->ip; + tempg->type=HTT_GLBL_VAR | HTF_EXPORT; + if (tempess && tempess->type & HTT_GLBL_VAR) + has_alias=TRUE; + if (sys_var_init_flag&1) + for (k=0;kopts,OPTf_GLBLS_ON_DATA_HEAP)) { + tempg=CAlloc(sizeof(CHashGlblVar),Fs->code_heap); + tempg->data_addr=MAlloc(j); + tempg->flags=GVAF_DATA_HEAP; + } else { + tempg=CAlloc(sizeof(CHashGlblVar),Fs->code_heap); + tempg->data_addr=MAlloc(j,Fs->code_heap); + } + tempg->type=HTT_GLBL_VAR; + if (tempess && tempess->type&HTT_GLBL_VAR && + tempess->type&HTF_UNRESOLVED && + MHeapCtrl(tempess)==MHeapCtrl(tempg)) + has_alias=TRUE; + if (sys_var_init_flag&1) + MemSet(tempg->data_addr,sys_var_init_val,j); + } + } + tempg->dim.next=tempad.next; + if (cps_flags&CPS_IS_PUBLIC) + tempg->type|=HTF_PUBLIC; + tempg->var_class=tempc; + tempg->str=st; + tempg->size=j; + tempg->dim.total_cnt=i; + tempg->use_cnt=0; + SetSrcFileInfo(lx,tempg); + if (mode.u8[0]==PRS0_IMPORT || mode.u8[0]==PRS0__IMPORT) + tempg->flags|=GVAF_IMPORT; + if (mode.u8[0]==PRS0_EXTERN) + tempg->flags|=GVAF_EXTERN; + if (tempf_fun_ptr) { + tempg->fun_ptr=tempf_fun_ptr; + tempg->flags|=GVAF_FUN; + } + if (is_array) + tempg->flags|=GVAF_ARRAY; + if (IsReplaceSyms) + HashReplace(tempg,lx->glbl_hash_table); + else + HashAdd(tempg,lx->glbl_hash_table); + if (!(lx->flags&LF_STATIC_COMPILE) && !(tempg->flags&GVAF_EXTERN)) + SysSymImportsResolve(tempg->str); + if (lx->token=='=') { + if (undef_array_size) { + LexPush(lx); + LexPush(lx); + Lex(lx); + PrsGlblInit(lx,tempg,1); + lx->stk_ptr--; //grows up + tempg->size=tempg->dim.total_cnt*tempc->size; + if (temphg) + temphg->size=tempg->size; + if (lx->flags&LF_STATIC_COMPILE) { + if (sys_var_init_flag&1) + for (k=0;ksize;k++) + AsmStoreCodeU8(lx,sys_var_init_val); + else + for (k=0;ksize;k++) + AsmStoreCodeU8(lx,0); + } else + if (sys_var_init_flag&1) + MemSet(tempg->data_addr,sys_var_init_val,k); + LexPop(lx); + } + LexPush(lx); + Lex(lx); + PrsGlblInit(lx,tempg,2); + if (lx->flags&LF_STATIC_COMPILE) + for (k=0;ksize;k++) + AsmStoreCodeU8At(lx,tempg->data_addr[k],tempg->data_addr_ip+k); + lx->stk_ptr--; //grows up + } + if (has_alias) { + tempess(CHashGlblVar *)->flags|=GVAF_ALIAS; + tempess(CHashGlblVar *)->data_addr=tempg->data_addr; + tempess(CHashGlblVar *)->data_addr_ip=tempg->data_addr_ip; + } + if (lx->token==',') + Lex(lx); + else { + if (lx->token!=';') + LexExcept(lx,"ST_MISSING_SEMICOLON"); + Lex(lx); + return; + } + } + } +} + +U0 PrsIf(CLex *lx,CHashFun *locals,I64 try_cnt, + CCodeBlkMisc *lb_break) +{ + CCodeBlkMisc *lb,*lb1; + I64 k; + + if (lx->token!='(') + LexExcept(lx,"ST_EXPECTING_LEFT_PAREN"); + Lex(lx); + if (!PrsExpression(lx,NULL,FALSE)) + throw(EXCEPT_COMPILER,11); + if (lx->token!=')') + LexExcept(lx,"ST_MISSING_RIGHT_PAREN"); + Lex(lx); + lb=CBMiscNew(lx,CBMT_LABEL); + lx->temp_indent_level++; + CBICAdd(lx,IC_BR_ZERO,lb,0); + PrsStatement(lx,locals,try_cnt,lb_break); + k=PrsKeyWord(lx); + if (k==KW_ELSE) { + lx->temp_indent_level--; + Lex(lx); + lx->temp_indent_level++; + lb1=CBMiscNew(lx,CBMT_LABEL); + CBICAdd(lx,IC_JMP,lb1,0); + CBICAdd(lx,IC_LABEL,lb,0); + PrsStatement(lx,locals,try_cnt,lb_break,TRUE,TRUE); + CBICAdd(lx,IC_LABEL,lb1,0); + } else + CBICAdd(lx,IC_LABEL,lb,0); +} + +U0 PrsWhile(CLex *lx,CHashFun *locals,I64 try_cnt) +{ + CCodeBlkMisc *lb,*lb_done; + + if (lx->token!='(') + LexExcept(lx,"ST_EXPECTING_LEFT_PAREN"); + Lex(lx); + lb=CBMiscNew(lx,CBMT_LABEL); + CBICAdd(lx,IC_LABEL,lb,0); + if (!PrsExpression(lx,NULL,FALSE)) + throw(EXCEPT_COMPILER,12); + if (lx->token!=')') + LexExcept(lx,"ST_MISSING_RIGHT_PAREN"); + Lex(lx); + + lb_done=CBMiscNew(lx,CBMT_LABEL); + CBICAdd(lx,IC_BR_ZERO,lb_done,0); + PrsStatement(lx,locals,try_cnt,lb_done); + CBICAdd(lx,IC_JMP,lb,0); + CBICAdd(lx,IC_LABEL,lb_done,0); +} + +U0 PrsDoWhile(CLex *lx,CHashFun *locals,I64 try_cnt) +{ + CCodeBlkMisc *lb,*lb_done; + + lb=CBMiscNew(lx,CBMT_LABEL); + lb_done=CBMiscNew(lx,CBMT_LABEL); + CBICAdd(lx,IC_LABEL,lb,0); + PrsStatement(lx,locals,try_cnt,lb_done); + if (PrsKeyWord(lx)!=KW_WHILE) + LexExcept(lx,"ST_MISSING_WHILE"); + if (Lex(lx)!='(') + LexExcept(lx,"ST_EXPECTING_LEFT_PAREN"); + Lex(lx); + if (!PrsExpression(lx,NULL,FALSE)) + throw(EXCEPT_COMPILER,13); + if (lx->token!=')') + LexExcept(lx,"ST_MISSING_RIGHT_PAREN"); + CBICAdd(lx,IC_BR_NOT_ZERO,lb,0); + CBICAdd(lx,IC_LABEL,lb_done,0); + if (Lex(lx)!=';') + LexExcept(lx,"ST_MISSING_SEMICOLON"); + Lex(lx); +} + +U0 PrsFor(CLex *lx,CHashFun *locals,I64 try_cnt) +{ + CLexCodeBlkCtrl *tempcbh; + CCodeBlkMisc *lb,*lb_done; + + lx->temp_indent_level=lx->indent_level--; + if (lx->token!='(') + LexExcept(lx,"ST_EXPECTING_LEFT_PAREN"); + Lex(lx); + PrsStatement(lx,locals,try_cnt); + + lb=CBMiscNew(lx,CBMT_LABEL); + CBICAdd(lx,IC_LABEL,lb,0); + if (!PrsExpression(lx,NULL,FALSE)) + throw(EXCEPT_COMPILER,14); + lb_done=CBMiscNew(lx,CBMT_LABEL); + CBICAdd(lx,IC_BR_ZERO,lb_done,0); + if (lx->token!=';') + LexExcept(lx,"ST_MISSING_SEMICOLON"); + Lex(lx); + + CBPush(lx); + CBOutPtrsInit(lx); + if (lx->token!=')') + PrsStatement(lx,locals,try_cnt,NULL,FALSE); + CBICAdd(lx,IC_END,0,0); + CBPush(lx); + tempcbh=CBPopNoFree(lx); + CBPop(lx); + if (lx->token!=')') + LexExcept(lx,"ST_MISSING_RIGHT_PAREN"); + Lex(lx); + + lx->temp_indent_level=lx->indent_level++; + PrsStatement(lx,locals,try_cnt,lb_done); + CBAppend(lx,tempcbh); + CBICAdd(lx,IC_JMP,lb,0); + lx->temp_indent_level--; + CBICAdd(lx,IC_LABEL,lb_done,0); +} + +class CSwitchCase { + CSwitchCase *next; + CCodeBlkMisc *label; + I64 val; +}; + +U0 PrsSwitch(CLex *lx,Bool nobound,CHashFun *locals,I64 try_cnt) +{ + CSwitchCase *header=NULL,*temps,*temps1; + CCodeBlkMisc *lb_break,*lb_dft,*mc_jt,*lb_entry,**jmp_table; + CIntermediateCode *tempi_sub,*tempi_cmp; + Bool dft_found=FALSE,first=TRUE; + I64 i,k,k2,lo=MAX_I64,hi=MIN_I64,range; + + if (lx->token!='(') + LexExcept(lx,"ST_EXPECTING_LEFT_PAREN"); + Lex(lx); + lb_break=CBMiscNew(lx,CBMT_LABEL); + lb_break->flags|=CBMF_USED; + lb_dft=CBMiscNew(lx,CBMT_LABEL); + lb_dft->flags|=CBMF_USED; + mc_jt=CBMiscNew(lx,CBMT_JMP_TABLE); + if (!PrsExpression(lx,NULL,FALSE)) + throw(EXCEPT_COMPILER,15); + tempi_sub=CBICAdd(lx,IC_IMM,0,sys_internal_types[IT_I64]); + CBICAdd(lx,IC_SUB,0,sys_internal_types[IT_I64]); + tempi_cmp=CBICAdd(lx,IC_IMM,0,sys_internal_types[IT_I64]); + if (nobound) + CBICAdd(lx,IC_NOBOUND_SWITCH,mc_jt,0); + else + CBICAdd(lx,IC_SWITCH,mc_jt,0); + if (lx->token!=')') + LexExcept(lx,"ST_MISSING_RIGHT_PAREN"); + if (Lex(lx)!='{') + LexExcept(lx,"ST_EXPECTING_LEFT_BRACE"); + Lex(lx); + lx->temp_indent_level=lx->indent_level++; + while (lx->token && lx->token!='}') { + k=PrsKeyWord(lx); + if (k==KW_CASE) { + Lex(lx); + lb_entry=CBMiscNew(lx,CBMT_LABEL); + CBICAdd(lx,IC_LABEL,lb_entry,0); + lb_entry->flags|=CBMF_USED; + k=Expression(lx); + if (khi) hi=k; + if (lx->token==':') { + Lex(lx); + temps=MAlloc(sizeof(CSwitchCase)); + temps->label=lb_entry; + temps->val=k; + temps->next=header; + header=temps; + } else if (lx->token==TK_DOT_DOT_DOT) { + Lex(lx); + k2=Expression(lx); + if (lx->token==':') { + Lex(lx); + if (k2hi) hi=k2; + if (k>k2) + SwapU64(&k,&k2); + for (i=k;i<=k2;i++) { + temps=MAlloc(sizeof(CSwitchCase)); + temps->label=lb_entry; + temps->val=i; + temps->next=header; + header=temps; + } + } else + LexExcept(lx,"ST_EXPECTING_COLON"); + } else + LexExcept(lx,"ST_EXPECTING_COLON"); + first=TRUE; + } else if (k==KW_DFT) { + Lex(lx); + CBICAdd(lx,IC_LABEL,lb_dft,0); + if (lx->token==':') + Lex(lx); + dft_found=TRUE; + first=TRUE; + } else { + if (first) { + lx->temp_indent_level++; + first=FALSE; + } + PrsStatement(lx,locals,try_cnt,lb_break); + } + } + + lx->temp_indent_level=--lx->indent_level; + if (!dft_found) + CBICAdd(lx,IC_LABEL,lb_dft,0); + CBICAdd(lx,IC_LABEL,lb_break,0); + if (lx->token!='}') + LexExcept(lx,"ST_MISSING_RIGHT_BRACE"); + Lex(lx); + + if (00x4000) + LexExcept(lx,"ST_CASE_RANGE_ERROR"); + jmp_table=MAlloc(sizeof(CCodeBlkMisc *)*range); + MemSetU64(jmp_table,lb_dft,range); + tempi_sub->ic_data=lo; + tempi_cmp->ic_data=range; + temps=header; + while (temps) { + temps1=temps->next; + if (jmp_table[temps->val-lo]!=lb_dft) + LexExcept(lx,"ST_DUP_CASE"); + else + jmp_table[temps->val-lo]=temps->label; + Free(temps); + temps=temps1; + } + mc_jt->dft=lb_dft; + mc_jt->jmp_table=jmp_table; + mc_jt->range=range; +} + +U0 PrsNoUnusedWarn(CLex *lx) +{ + CMemberList *tempm; + while (lx->token==TK_IDENT) { + if (!(tempm=lx->local_var_entry)) + LexExcept(lx,"ST_EXPECTING_LOCAL_VAR"); + tempm->flags|=MLF_NO_UNUSED_WARN; + if (Lex(lx)==',') + Lex(lx); + else { + if (lx->token!=';') + LexExcept(lx,"ST_EXPECTING_COMMA"); + } + } +} + +U0 PrsStreamBlk(CLex *lx) +{ + CHashTable *ht1=lx->hash_table_list, + *ht2=lx->define_hash_table, + *ht3=lx->glbl_hash_table, + *ht4=lx->local_hash_table, + *ht5=lx->stream_parent_glbl_hash_table; + I64 old_hash_mask=lx->hash_mask, + old_flags=lx->flags & (LF_ASM_EXPRESSIONS | LF_EXE_BLK|LF_STATIC_COMPILE); + CStreamBlk *tempe=MAlloc(sizeof(CStreamBlk)); + CHashFun *old_var_list=lx->local_var_list; + lx->local_var_list=NULL; + + tempe->body=StrNew(""); + QueIns(tempe,lx->last_stream_blk); + CBPush(lx); + lx->cbh.cb_misc_list=NULL; + lx->cbh.cb_misc_list_end=&lx->cbh.cb_misc_list; + + lx->stream_parent_glbl_hash_table=lx->glbl_hash_table; + lx->hash_mask=HTG_ALL-HTT_IMPORT_SYS_SYM-HTT_ASM_KEYWORD; + lx->define_hash_table=lx->hash_table_list=lx->glbl_hash_table=lx->local_hash_table=Fs->hash_table; + lx->flags=lx->flags & ~(LF_ASM_EXPRESSIONS|LF_STATIC_COMPILE) | LF_EXE_BLK; + if (lx->token=='{') + Lex(lx); + else + LexExcept(lx,"ST_MISSING_RIGHT_BRACE"); + while (lx->token && lx->token!='}') + ExeCmdLine(lx); + + lx->hash_table_list =ht1, + lx->define_hash_table=ht2; + lx->glbl_hash_table =ht3; + lx->local_hash_table =ht4; + lx->stream_parent_glbl_hash_table=ht5; + + lx->local_var_list=old_var_list; + lx->hash_mask=old_hash_mask; + lx->flags= lx->flags&~LF_EXE_BLK | old_flags; + CBPop(lx); + QueRem(tempe); + if (*tempe->body) + LexIncludeStr(lx,"StreamBlk",tempe->body,FALSE); + else + Free(tempe->body); + Free(tempe); + Lex(lx); //Skip "}" +} + + +U0 PrsTryBlk(CLex *lx,CHashFun *locals,I64 try_cnt) +{ + CCodeBlkMisc *lb_catch,*lb_done,*lb_untry; + Bool has_brace; + CHashClass *tempc=sys_internal_types[IT_PTR]; + CHashFun *temp_try=HashFind("SysTry",lx->hash_table_list,HTT_FUN), + *temp_untry=HashFind("SysUntry",lx->hash_table_list,HTT_FUN); + + if (!temp_try || !temp_untry) + LexExcept(lx,"ST_HEADER_FOR_SYSTRY"); + + lx->flags|=LF_NO_REG_OPT; //TODO (Currently no reg vars in funs with try/catch) + + lb_catch=CBMiscNew(lx,CBMT_LABEL); + lb_done =CBMiscNew(lx,CBMT_LABEL); + lb_untry=CBMiscNew(lx,CBMT_LABEL); + + if (lx->token=='{') + has_brace=TRUE; + else { + lx->temp_indent_level=++lx->indent_level; + has_brace=FALSE; + } + + CBICAdd(lx,IC_CALL_START,0,0); + CBICAdd(lx,IC_GET_LABEL,lb_untry,tempc,ICF_PUSH_RESULT); + CBICAdd(lx,IC_GET_LABEL,lb_catch,tempc,ICF_PUSH_RESULT); + if (Bt(temp_try->flags,Cf_EXTERN)) { + lx->abs_cnts.externs++; + if (lx->flags&LF_STATIC_COMPILE) + CBICAdd(lx,IC_CALL_IMPORT,temp_try,tempc); + else + CBICAdd(lx,IC_CALL_INDIRECT2,&temp_try->executable_addr,tempc); + } else + CBICAdd(lx,IC_CALL,temp_try->executable_addr,tempc); + if ((Bt(temp_try->flags,Ff_RET1) || Bt(temp_try->flags,Ff_ARGPOP)) && !Bt(temp_try->flags,Ff_NOARGPOP)) + CBICAdd(lx,IC_ADD_RSP1,16,tempc); + else + CBICAdd(lx,IC_ADD_RSP,16,tempc); + CBICAdd(lx,IC_CALL_END,0,tempc); + CBICAdd(lx,IC_END_EXP,0,0); + + PrsStatement(lx,locals,try_cnt+1); + if (!has_brace) + lx->temp_indent_level=lx->indent_level--; + + CBICAdd(lx,IC_LABEL,lb_untry,0); + CBICAdd(lx,IC_CALL_START,0,0); + if (Bt(temp_untry->flags,Cf_EXTERN)) { + lx->abs_cnts.externs++; + if (lx->flags&LF_STATIC_COMPILE) + CBICAdd(lx,IC_CALL_IMPORT,temp_untry,tempc); + else + CBICAdd(lx,IC_CALL_INDIRECT2,&temp_untry->executable_addr,tempc); + } else + CBICAdd(lx,IC_CALL,temp_untry->executable_addr,tempc); + CBICAdd(lx,IC_CALL_END,0,tempc); + CBICAdd(lx,IC_END_EXP,0,0); + + CBICAdd(lx,IC_JMP,lb_done,0); + + if (PrsKeyWord(lx)!=KW_CATCH) + LexExcept(lx,"ST_MISSING_CATCH"); + + Lex(lx); + if (lx->token=='{') + has_brace=TRUE; + else { + lx->temp_indent_level=++lx->indent_level; + has_brace=FALSE; + } + CBICAdd(lx,IC_LABEL,lb_catch,0); + PrsStatement(lx,locals,try_cnt+1); + if (!has_brace) + lx->temp_indent_level=lx->indent_level--; + CBICAdd(lx,IC_RET,0,tempc); + CBICAdd(lx,IC_LABEL,lb_done,0); +} + +Bool PrsStatement(CLex *lx,CHashFun *locals,I64 try_cnt=0, + CCodeBlkMisc *lb_break=NULL,Bool saved_prs_semicolon=TRUE,Bool if_else=FALSE) +{ + Bool prs_exp,cont,prs_semicolon; + I64 i,cps_flags=0,last_cps_flags=0; + CHashExport *tempess; + CCodeBlkMisc *g_lb; + U8 *import_name; + CHashFun *temp_untry; + CExe *tempex; + + lx->temp_indent_level=lx->indent_level++; + do { + cps_flags&=~CPS_FUN_FLAGS; + cont=FALSE; + prs_exp=FALSE; + prs_semicolon=saved_prs_semicolon; + lx->statement_cnt++; + while (lx->token==',') + Lex(lx); + if (lx->token=='{') { + Lex(lx); + lx->braces_cnt++; + lx->temp_indent_level=lx->indent_level--; + while (lx->token!='}') + PrsStatement(lx,locals,try_cnt,lb_break); + lx->braces_cnt--; + lx->statement_cnt--; + lx->temp_indent_level=lx->indent_level++; + Lex(lx); + } else if (lx->token==TK_EOF) ; + else if (lx->token==';') { + if (prs_semicolon) { + lx->statement_cnt--; + Lex(lx); + } + } else { + if (lx->token==TK_IDENT) { + if (tempess=lx->hash_entry) { + if (tempess->type & HTT_KEYWORD) { + i=tempess(CHashGeneric *)->user_data0; + nobound_switch (i) { + case KW_IF: + Lex(lx); + if (if_else) + lx->temp_indent_level=lx->indent_level--; + PrsIf(lx,locals,try_cnt,lb_break); + if (if_else) + lx->temp_indent_level=lx->indent_level++; + prs_semicolon=FALSE; + break; + case KW_FOR: + Lex(lx); + PrsFor(lx,locals,try_cnt); + prs_semicolon=FALSE; + break; + case KW_WHILE: + Lex(lx); + PrsWhile(lx,locals,try_cnt); + prs_semicolon=FALSE; + break; + case KW_DO: + Lex(lx); + PrsDoWhile(lx,locals,try_cnt); + prs_semicolon=FALSE; + break; + case KW_NOBOUND_SWITCH: + Lex(lx); + PrsSwitch(lx,TRUE,locals,try_cnt); + prs_semicolon=FALSE; + break; + case KW_SWITCH: + Lex(lx); + PrsSwitch(lx,FALSE,locals,try_cnt); + prs_semicolon=FALSE; + break; + case KW_LOCK: + Lex(lx); + lx->lock_cnt++; + PrsStatement(lx,locals,try_cnt); + lx->lock_cnt--; + prs_semicolon=FALSE; + break; + case KW__EXTERN: + if (locals) + LexExcept(lx,"ST_NOT_ALLOWED_IN_FUN"); + Lex(lx); + if (Bt(&lx->opts,OPTf_EXTERNS_TO_IMPORTS)) + goto keyword_LTimport; + if (lx->flags&LF_STATIC_COMPILE) { + if (lx->token!=TK_IDENT || !(tempess=lx->hash_entry) || + !(tempess->type & HTT_EXPORT_SYS_SYM)) + LexExcept(lx,"ST_EXPECTING_SYS_SYM"); + i=tempess->val; + Lex(lx); + } else + i=Expression(lx); + if (lx->token!=TK_IDENT || !(tempess=lx->hash_entry) || + !(tempess->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) + LexExcept(lx,"ST_EXPECTING_TYPE"); + Lex(lx); + PrsGlblVarList(lx,PRS0__EXTERN|PRS1_NULL,tempess,i,last_cps_flags); + prs_semicolon=FALSE; + cont=TRUE; + break; + case KW__IMPORT: + if (locals) + LexExcept(lx,"ST_NOT_ALLOWED_IN_FUN"); + Lex(lx); +keyword_LTimport: + if (lx->token!=TK_IDENT) + LexExcept(lx,"ST_EXPECTING_SYS_SYM"); + import_name=lx->ident; + lx->ident=0; + if (Lex(lx)!=TK_IDENT || !(tempess=lx->hash_entry) || + !(tempess->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) + LexExcept(lx,"ST_EXPECTING_TYPE"); + Lex(lx); + PrsGlblVarList(lx,PRS0__IMPORT|PRS1_NULL,tempess,import_name,FALSE); + Free(import_name); + prs_semicolon=FALSE; + cont=TRUE; + break; + case KW__INTERN: + if (locals) + LexExcept(lx,"ST_NOT_ALLOWED_IN_FUN"); + Lex(lx); + i=Expression(lx); + if (lx->token!=TK_IDENT || !(tempess=lx->hash_entry) || + !(tempess->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) + LexExcept(lx,"ST_EXPECTING_TYPE"); + Lex(lx); + PrsGlblVarList(lx,PRS0__INTERN|PRS1_NULL,tempess,i,last_cps_flags); + prs_semicolon=FALSE; + cont=TRUE; + break; + case KW_EXTERN: + if (locals) + LexExcept(lx,"ST_NOT_ALLOWED_IN_FUN"); + Lex(lx); + if (lx->token!=TK_IDENT) + LexExcept(lx,"ST_EXPECTING_TYPE"); + tempess=lx->hash_entry; + if (PrsKeyWord(lx)==KW_CLASS) { + Lex(lx); + PrsClass(lx,FALSE,last_cps_flags,TRUE); + } else if (PrsKeyWord(lx)==KW_UNION) { + Lex(lx); + PrsClass(lx,TRUE,last_cps_flags,TRUE); + } else { + if (!tempess || !(tempess->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) + LexExcept(lx,"ST_EXPECTING_TYPE"); + if (Bt(&lx->opts,OPTf_EXTERNS_TO_IMPORTS)) + goto keyword_import; + Lex(lx); + PrsGlblVarList(lx,PRS0_EXTERN|PRS1_NULL,tempess,0,last_cps_flags); + prs_semicolon=FALSE; + cont=TRUE; + } + break; + case KW_IMPORT: + if (locals) + LexExcept(lx,"ST_NOT_ALLOWED_IN_FUN"); + Lex(lx); + if (lx->token!=TK_IDENT || !(tempess=lx->hash_entry) || + !(tempess->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) + LexExcept(lx,"ST_EXPECTING_TYPE"); +keyword_import: + Lex(lx); + PrsGlblVarList(lx,PRS0_IMPORT|PRS1_NULL,tempess,0,FALSE); + prs_semicolon=FALSE; + cont=TRUE; + break; + case KW_ASM: + if (locals) { + if (tempex=CmpJoin(lx,locals,FALSE,TRUE)) + CBICAdd(lx,IC_ASM,tempex,0); + Lex(lx); //Skip "}" of asm{} + } else { + if (lx->flags&LF_STATIC_COMPILE || lx->a_depth) { + Lex(lx); + PrsAsmBlk(lx); + if (lx->flags&LF_STATIC_COMPILE && lx->a_depth==1) + Lex(lx); //Skip "}" of asm{} + } else { + if (tempex=CmpJoin(lx,NULL,FALSE,TRUE)) + CmpFixUpJITAsm(lx,tempex,tempex->code); + Lex(lx); //Skip "}" of asm{} + } + cps_flags|=CPS_IS_ASM; + } + prs_semicolon=FALSE; + break; + case KW_TRY: + Lex(lx); + PrsTryBlk(lx,locals,try_cnt); + prs_semicolon=FALSE; + break; + case KW_BREAK: + Lex(lx); + if (!lb_break) + LexExcept(lx,"ST_BREAK_NOT_ALLOWED"); + CBICAdd(lx,IC_JMP,lb_break,0); + break; + case KW_RETURN: + if (!locals) + LexExcept(lx,"ST_CANT_RETURN_VAL"); + if (try_cnt) { + temp_untry=HashFind("SysUntry", + lx->hash_table_list,HTT_FUN); + for (i=0;iflags,Cf_EXTERN)) { + lx->abs_cnts.externs++; + if (lx->flags&LF_STATIC_COMPILE) + CBICAdd(lx,IC_CALL_IMPORT, + temp_untry,sys_internal_types[IT_PTR]); + else + CBICAdd(lx,IC_CALL_INDIRECT2, + &temp_untry->executable_addr,sys_internal_types[IT_PTR]); + } else + CBICAdd(lx,IC_CALL,temp_untry->executable_addr,sys_internal_types[IT_PTR]); + } + } + if (Lex(lx)!=';') { + if (!locals->return_class->size) + LexPutWarn(lx,"ST_SHOULD_NOT_RETURN_VAL"); + if (!PrsExpression(lx,NULL,FALSE)) + throw(EXCEPT_COMPILER,17); + CBICAdd(lx,IC_RETURN_VAL,0,locals->return_class); + lx->flags|=LF_HAS_RETURN; + } else if (locals->return_class->size) + LexPutWarn(lx,"ST_SHOULD_RETURN_VAL"); + CBICAdd(lx,IC_JMP,lx->lb_leave,0); + break; + case KW_GOTO: + Lex(lx); + if (lx->token!=TK_IDENT) + LexExcept(lx,"ST_EXPECTING_IDENTIFIER"); + if (!(g_lb=CBGoToLabelFind(lx,lx->ident))) { + g_lb=CBMiscNew(lx,CBMT_GOTO_LABEL); + g_lb->str=lx->ident; + lx->ident=NULL; + } + g_lb->flags|=CBMF_USED; + CBICAdd(lx,IC_JMP,g_lb,0); + Lex(lx); + break; + case KW_NOUNUSEDWARN: + Lex(lx); + PrsNoUnusedWarn(lx); + break; + case KW_CLASS: + Lex(lx); + tempess=PrsClass(lx,FALSE,last_cps_flags,FALSE); + if (!locals && lx->token!=';') { + PrsGlblVarList(lx,PRS0_NULL|PRS1_NULL,tempess,0,last_cps_flags); + cont=TRUE; + prs_semicolon=FALSE; + } + break; + case KW_UNION: + Lex(lx); + tempess=PrsClass(lx,TRUE,last_cps_flags,FALSE); + if (!locals && lx->token!=';') { + PrsGlblVarList(lx,PRS0_NULL|PRS1_NULL,tempess,0,last_cps_flags); + cont=TRUE; + prs_semicolon=FALSE; + } + break; + case KW_PUBLIC: + Lex(lx); + cps_flags|=CPS_IS_PUBLIC|last_cps_flags&CPS_FUN_FLAGS; + cont=TRUE; + prs_semicolon=FALSE; + break; + case KW_INTERRUPT: + Lex(lx); + cps_flags|=CPS_IS_INTERRUPT|CPS_IS_NOARGPOP|last_cps_flags&CPS_FUN_FLAGS; + cont=TRUE; + prs_semicolon=FALSE; + break; + case KW_ARGPOP: + Lex(lx); + cps_flags|=CPS_IS_ARGPOP|last_cps_flags&CPS_FUN_FLAGS; + cont=TRUE; + prs_semicolon=FALSE; + break; + case KW_NOARGPOP: + Lex(lx); + cps_flags|=CPS_IS_NOARGPOP|last_cps_flags&CPS_FUN_FLAGS; + cont=TRUE; + prs_semicolon=FALSE; + break; + case KW_STATIC: + Lex(lx); + cps_flags|=CPS_IS_STATIC; + cont=TRUE; + prs_semicolon=FALSE; + break; + case KW_NUM_KEYWORDS: //nobound_switch + default: + prs_exp=TRUE; + } + } else if (tempess->type & (HTT_CLASS|HTT_INTERNAL_TYPE)) { + if (locals) { + if (cps_flags&CPS_IS_STATIC) { + PrsVarList(lx,locals,PRS0_NULL|PRS1_STATIC_LOCAL_VAR); + cps_flags&=~CPS_IS_STATIC; + } else + PrsVarList(lx,locals,PRS0_NULL|PRS1_LOCAL_VAR); + if (lx->token=='}') + cont=FALSE; + else + cont=TRUE; + } else { + Lex(lx); + PrsGlblVarList(lx,PRS0_NULL|PRS1_NULL,tempess,0,last_cps_flags); + cont=TRUE; + } + prs_semicolon=FALSE; + } else prs_exp=TRUE; + } else { + if (lx->local_var_entry) + prs_exp=TRUE; + else { + if (!(g_lb=CBGoToLabelFind(lx,lx->ident))) { + g_lb=CBMiscNew(lx,CBMT_GOTO_LABEL); + g_lb->str=lx->ident; + lx->ident=NULL; + } else if (g_lb->flags&CBMF_DEFINED) + LexExcept(lx,"ST_DUP_GOTO_LABEL"); + g_lb->flags|=CBMF_DEFINED; + Lex(lx); //skip ident + lx->temp_indent_level=0; + CBICAdd(lx,IC_LABEL,g_lb,0); + if (lx->token==':') //skip ident + Lex(lx); //skip colon + else + LexExcept(lx,"ST_UNDEFINED_IDENTIFIER"); + if (!locals) + LexExcept(lx,"ST_NO_GLBL_LABELS"); + prs_semicolon=FALSE; + } + } + } else prs_exp=TRUE; + if (prs_exp) { + if (lx->token==TK_STR||lx->token==TK_U8) + PrsFunCall(lx,NULL,FALSE,NULL); + else if (!PrsExpression(lx,NULL,TRUE)) + throw(EXCEPT_COMPILER,18); + } + if (lx->token!=',') + lx->statement_cnt--; + if (prs_semicolon && lx->token!=',') { + if (lx->token==';') + Lex(lx); + else + LexExcept(lx,"ST_MISSING_SEMICOLON"); + } + } + last_cps_flags=cps_flags; + } while (lx->token==',' || cont); + lx->temp_indent_level=lx->indent_level--; + return cps_flags&CPS_IS_ASM; +} diff --git a/SparrowOS/Compiler/Unassembler.CPP b/SparrowOS/Compiler/Unassembler.CPP new file mode 100644 index 0000000..a858f22 --- /dev/null +++ b/SparrowOS/Compiler/Unassembler.CPP @@ -0,0 +1,879 @@ +I64 InstEntriesCompare(CInstruction *tempi1,CInstruction *tempi2) +{ + I64 i1,i2,j=0,result=0,oc_cnt1=tempi1->opcode_cnt,oc_cnt2=tempi2->opcode_cnt; + if (tempi1->flags&IEF_STI) + oc_cnt1--; + if (tempi2->flags&IEF_STI) + oc_cnt2--; + while (TRUE) { + if (jopcode[j]-tempi2->opcode[j]) + return result; + j++; + } else { + if (result=oc_cnt1-oc_cnt2) + return result; + + if (tempi1->flags&IEF_STI) + i1=tempi1->opcode[j]>>3&7; + else + i1=tempi1->slash_val; + if (tempi2->flags&IEF_STI) + i2=tempi2->opcode[j]>>3&7; + else + i2=tempi2->slash_val; + if (result=i1-i2) return result; + + if (tempi1->flags&IEF_STI && tempi2->flags&IEF_STI) { + i1=tempi1->opcode[j]&7; + i2=tempi2->opcode[j]&7; + if (result=i1-i2) return result; + } + + if (tempi1->flags&IEF_STI) + return 1; + + if (tempi2->flags&IEF_STI) + return -1; + + i1=tempi1->flags & IEF_OP_SIZE32; + i2=tempi2->flags & IEF_OP_SIZE32; + if (result=i1-i2) return result; + + i1=Bt(&uasm_ins64_mask,tempi1->arg1) || + Bt(&uasm_ins64_mask,tempi1->arg2); + i2=Bt(&uasm_ins64_mask,tempi2->arg1) || + Bt(&uasm_ins64_mask,tempi2->arg2); + if (result=i1-i2) return result; + + i1=tempi1->flags & IEF_48_REX; + i2=tempi2->flags & IEF_48_REX; + return i1-i2; + } + } +} + +U0 UnasmHashLoad() +{ + CHashTable *h=asm_hash; + CHashOpcode *temph; + CInstruction *tempi; + I64 cnt=0,j,k; + + unasm_table=NULL; + unasm_table_entries=0; + uasm_ins64_mask=0x0880888880+1<next_added; + while (temph!=h) { + if (temph->type==HTT_OPCODE) + cnt+=temph->instruction_entry_cnt; + temph=temph->next_added; + } + unasm_table_entries=cnt; + + j=0; + unasm_table=MAlloc(cnt*sizeof(U8 *)); + temph=h->next_added; + while (temph!=h) { + if (temph->type==HTT_OPCODE) { + tempi=&temph->ins; + for (k=0;kinstruction_entry_cnt;k++) { + unasm_table[j++]=tempi; + tempi++; + } + } + temph=temph->next_added; + } + + QSortI64(unasm_table,cnt,&InstEntriesCompare); +} + +/* +U0 DumpUnasmIns(CInstruction *tempi) +{ + CHashOpcode *tempo=tempi(U8 *)-tempi->ins_entry_num*sizeof(CInstruction)-offset(CHashOpcode.ins); + "%10s:%02d,%02d SV:%02d\n",tempo->str,tempi->arg1,tempi->arg2,tempi->slash_val; +} + +U0 DumpUnasmTable() +{ + I64 k; + for (k=0;k>1; //binary search + tempi=unasm_table[k]; +//DumpUnasmIns(tempi); + m=0; + n=0; + while (TRUE) { + a1=tempi->arg1; + a2=tempi->arg2; + oc_cnt=tempi->opcode_cnt; + if (tempi->flags&IEF_STI) + oc_cnt--; + if (nopcode_cnt-1 && tempi->flags & IEF_PLUS_OPCODE) + o1&=-8; + o2=tempi->opcode[n++]; + if (m=o1-o2) + break; + } else { + if (tempi->flags&IEF_STI) + sv=tempi->opcode[tempi->opcode_cnt-1]>>3&7; + else + sv=tempi->slash_val; + if (sv<8) { + if (!(m=ip[n]>>3&7-sv)) { + if ((Bt(&uasm_mem_mask,a1) || Bt(&uasm_mem_mask,a2)) && + ip[n]&0xC0==0xC0) { + m=1; + break; + } else if (tempi->flags&IEF_STI) { + if (ip[n]&0xC0!=0xC0) { + m=-1; + break; + } + if (a1!=ARGT_STI && a2!=ARGT_STI) + m=ip[n]&0x7-tempi->opcode[tempi->opcode_cnt-1]&7; + break; + } + if (opsize==16) { + if (tempi->flags & IEF_OP_SIZE32) { + m=-1; + break; + } + } else { + if (tempi->flags & IEF_OP_SIZE16) { + m=1; + break; + } + } + if (opsize==64||a1==ARGT_M64||a2==ARGT_M64||tempi->flags&IEF_NO_REX) { + if (!Bt(&uasm_ins64_mask,a1) && !Bt(&uasm_ins64_mask,a2) && !(tempi->flags&IEF_48_REX)) + m=1; + } else { + if (Bt(&uasm_ins64_mask,a1) || Bt(&uasm_ins64_mask,a2) || tempi->flags&IEF_48_REX) + m=-1; + } + } + } else { + m=0; + if (opsize==16) { + if (tempi->flags & IEF_OP_SIZE32) { + m=-1; + break; + } + } else { + if (tempi->flags & IEF_OP_SIZE16) { + m=1; + break; + } + } + if (opsize==64 || a1==ARGT_M64 || a2==ARGT_M64) { + if (!Bt(&uasm_ins64_mask,a1) && !Bt(&uasm_ins64_mask,a2) && !(tempi->flags&IEF_48_REX)&& + !(a2==ARGT_NO && + (ARGT_UIMM8<=a1<=ARGT_UIMM64 || + ARGT_IMM8<=a1<=ARGT_IMM64 ) )) + m=1; + } else { + if (Bt(&uasm_ins64_mask,a1) || Bt(&uasm_ins64_mask,a2) || tempi->flags&IEF_48_REX) + m=-1; + } + } + break; + } + } + + if (m>0) { + if (k==i) { + k=j; + break; + } else + i=k; + } else if (m<0) { + if (k-i<=1) { + k=i; + break; + } else + j=k; + } else + break; + } + + tempi=unasm_table[k]; + ip+=tempi->opcode_cnt; + tempo=tempi(U8 *)-tempi->ins_entry_num*sizeof(CInstruction)-offset(CHashOpcode.ins); + StrCat(buf,tempo->str); + + a1=tempi->arg1; + a2=tempi->arg2; + aa1=a1; + aa2=a2; + + ptr=DefineSub(a1,"ST_ARG_TYPES"); + if (Bt(&uasm_signed_arg_mask,a1)) { + if (StrStr(ptr,"8")) { + arg1_size=1; + StrCat(arg1_st,"I8 "); + } else if (StrStr(ptr,"16")) { + arg1_size=2; + StrCat(arg1_st,"I16 "); + } else if (StrStr(ptr,"32")) { + arg1_size=4; + StrCat(arg1_st,"I32 "); + } else if (StrStr(ptr,"64")) { + arg1_size=8; + StrCat(arg1_st,"I64 "); + } + } else { + if (StrStr(ptr,"8")) { + arg1_size=1; + StrCat(arg1_st,"U8 "); + } else if (StrStr(ptr,"16")) { + arg1_size=2; + StrCat(arg1_st,"U16 "); + } else if (StrStr(ptr,"32")) { + arg1_size=4; + StrCat(arg1_st,"U32 "); + } else if (StrStr(ptr,"64")) { + arg1_size=8; + StrCat(arg1_st,"U64 "); + } + } + + ptr=DefineSub(a2,"ST_ARG_TYPES"); + if (Bt(&uasm_signed_arg_mask,a2)) { + if (StrStr(ptr,"8")) { + arg2_size=1; + StrCat(arg2_st,"I8 "); + } else if (StrStr(ptr,"16")) { + arg2_size=2; + StrCat(arg2_st,"I16 "); + } else if (StrStr(ptr,"32")) { + arg2_size=4; + StrCat(arg2_st,"I32 "); + } else if (StrStr(ptr,"64")) { + arg2_size=8; + StrCat(arg2_st,"I64 "); + } + } else { + if (StrStr(ptr,"8")) { + arg2_size=1; + StrCat(arg2_st,"U8 "); + } else if (StrStr(ptr,"16")) { + arg2_size=2; + StrCat(arg2_st,"U16 "); + } else if (StrStr(ptr,"32")) { + arg2_size=4; + StrCat(arg2_st,"U32 "); + } else if (StrStr(ptr,"64")) { + arg2_size=8; + StrCat(arg2_st,"U64 "); + } + } + + a1_size=arg1_size; + a2_size=arg2_size; + if (tempi->flags & IEF_PLUS_OPCODE) { + ip--; + RM1=*ip++ - tempi->opcode[tempi->opcode_cnt-1]+REX_b; + *buf2=0; + if (ARGT_R8<=a1<=ARGT_R64) { + if (a1_size==1) { + if (REX!=-1) + SPrintF(buf2,"%Z",RM1,"ST_U8_REX_REGS"); + else + SPrintF(buf2,"%Z",RM1,"ST_U8_REGS"); + } else if (a1_size==2) + SPrintF(buf2,"%Z",RM1,"ST_U16_REGS"); + else if (a1_size==4) + SPrintF(buf2,"%Z",RM1,"ST_U32_REGS"); + else if (a1_size==8) + SPrintF(buf2,"%Z",RM1,"ST_U64_REGS"); + StrCat(a1_st,buf2); + } else { + if (a2_size==1) { + if (REX!=-1) + SPrintF(buf2,"%Z",RM1,"ST_U8_REX_REGS"); + else + SPrintF(buf2,"%Z",RM1,"ST_U8_REGS"); + } else if (a2_size==2) + SPrintF(buf2,"%Z",RM1,"ST_U16_REGS"); + else if (a2_size==4) + SPrintF(buf2,"%Z",RM1,"ST_U32_REGS"); + else if (a2_size==8) + SPrintF(buf2,"%Z",RM1,"ST_U64_REGS"); + StrCat(a2_st,buf2); + } + } + if (ARGT_RM8<=a1<=ARGT_RM64 || + ARGT_M8<=a1<=ARGT_M64 || + ARGT_RM8<=a2<=ARGT_RM64 || + ARGT_M8<=a2<=ARGT_M64) { + if (ARGT_RM8<=a2<=ARGT_RM64 || + ARGT_M8<=a2<=ARGT_M64) { + a1_st=arg2_st; + a2_st=arg1_st; + a1_size=arg2_size; + a2_size=arg1_size; + aa1=a2; + aa2=a1; + } + StrCat(a1_st,seg_overrides); + ModrM=*ip++; + Mod=ModrM>>6 & 3; + RM1=ModrM & 7+REX_b; + RM2=ModrM>>3 & 7+REX_r; + if (Mod<3 && RM1&7==4) { + SIB=*ip++; + } + if (Mod==1) { + disp=*ip(U8 *)++; + SPrintF(buf2,"%02X",disp); + StrCat(a1_st,buf2); + } + if (Mod==2) { + disp=*ip(U32 *)++; + SPrintF(buf2,"%08X",disp); + StrCat(a1_st,buf2); + } + if (tempi->slash_val<8) + RM2=-1; + else { + *buf2=0; + if (aa2==ARGT_SREG) + SPrintF(buf2,"%Z",RM2,"ST_SEG_REGS"); + else if (!(ARGT_IMM8<=aa2<=ARGT_IMM64) && + !(ARGT_UIMM8<=aa2<=ARGT_UIMM64)) { + if (a2_size==1) { + if (REX!=-1) + SPrintF(buf2,"%Z",RM2,"ST_U8_REX_REGS"); + else + SPrintF(buf2,"%Z",RM2,"ST_U8_REGS"); + }else if (a2_size==2) + SPrintF(buf2,"%Z",RM2,"ST_U16_REGS"); + else if (a2_size==4) + SPrintF(buf2,"%Z",RM2,"ST_U32_REGS"); + else if (a2_size==8) + SPrintF(buf2,"%Z",RM2,"ST_U64_REGS"); + } + StrCat(a2_st,buf2); + } + if (RM1&7==5 && !Mod) { + disp=*ip(I32 *)++; + if (seg_size==64) { + disp+=ip; + if (aa2==ARGT_IMM8 || aa2==ARGT_UIMM8) + disp++; + else if (aa2==ARGT_IMM16 || aa2==ARGT_UIMM16) + disp+=2; + else if (aa2==ARGT_IMM32 || aa2==ARGT_UIMM32) + disp+=4; + else if (aa2==ARGT_IMM64 || aa2==ARGT_UIMM64) + disp+=8; + } + SPrintF(buf2,"[%X] ",disp); + StrCat(a1_st,buf2); + RM1=-1; + } else { + if (Mod<3) { + if (RM1&7==4) { + RM1=-1; + r1=SIB & 7+REX_b; + r2=SIB>>3 & 7+REX_x; + scale=SIB>>6 &3; + if (scale==3) + scale=8; + else if (scale==2) + scale=4; + else if (scale==1) + scale=2; + else + scale=1; + if (r1==CREG_RBP && !Mod) { + disp=*ip(U32 *)++; + SPrintF(buf2,"%08X",disp); + StrCat(a1_st,buf2); + if (seg_size!=64) + SPrintF(buf2,"[%Z*%d]",r2,"ST_U32_REGS",scale); + else + SPrintF(buf2,"[%Z*%d]",r2,"ST_U64_REGS",scale); + StrCat(a1_st,buf2); + } else if (r2==4) { + if (seg_size!=64) + SPrintF(buf2,"[%Z]",r1,"ST_U32_REGS"); + else + SPrintF(buf2,"[%Z]",r1,"ST_U64_REGS"); + StrCat(a1_st,buf2); + } else { + if (seg_size!=64) + SPrintF(buf2,"[%Z+%Z*%d]",r1,"ST_U32_REGS", + r2,"ST_U32_REGS",scale); + else + SPrintF(buf2,"[%Z+%Z*%d]",r1,"ST_U64_REGS", + r2,"ST_U64_REGS",scale); + StrCat(a1_st,buf2); + } + } else { + *buf2=0; + if (opadd==16) + SPrintF(buf2,"[%Z]",RM1,"ST_U16_REGS"); + else if (opadd==32) + SPrintF(buf2,"[%Z]",RM1,"ST_U32_REGS"); + else + SPrintF(buf2,"[%Z]",RM1,"ST_U64_REGS"); + StrCat(a1_st,buf2); + } + } else { + *buf2=0; + if (a1_size==1) { + if (REX!=-1) + SPrintF(buf2,"%Z",RM1,"ST_U8_REX_REGS"); + else + SPrintF(buf2,"%Z",RM1,"ST_U8_REGS"); + } else if (a1_size==2) + SPrintF(buf2,"%Z",RM1,"ST_U16_REGS"); + else if (a1_size==4) + SPrintF(buf2,"%Z",RM1,"ST_U32_REGS"); + else if (a1_size==8) + SPrintF(buf2,"%Z",RM1,"ST_U64_REGS"); + StrCat(a1_st,buf2); + } + } + } + if (ARGT_MOFFS8<=a1<=ARGT_MOFFS64) { + StrCat(arg1_st,seg_overrides); + if (arg1_size==1) { + disp=*ip(U8 *)++; + SPrintF(buf2,"[%X]",disp); + StrCat(arg1_st,buf2); + } else if (opadd==16) { + disp=*ip(U16 *)++; + SPrintF(buf2,"[%X]",disp); + StrCat(arg1_st,buf2); + } else { + disp=*ip(U32 *)++; + SPrintF(buf2,"[%X]",disp); + StrCat(arg1_st,buf2); + } + } + + if (ARGT_MOFFS8<=a2<=ARGT_MOFFS64) { + StrCat(arg2_st,seg_overrides); + if (arg2_size==1) { + disp=*ip(U8 *)++; + SPrintF(buf2,"[%X]",disp); + StrCat(arg2_st,buf2); + } else if (opadd==16) { + disp=*ip(U16 *)++; + SPrintF(buf2,"[%X]",disp); + StrCat(arg2_st,buf2); + } else { + disp=*ip(U32 *)++; + SPrintF(buf2,"[%X]",disp); + StrCat(arg2_st,buf2); + } + } + + switch (a1) { + case ARGT_IMM8: + case ARGT_UIMM8: + imm=*ip(U8 *)++; + SPrintF(buf2,"%02X",imm); + StrCat(arg1_st,buf2); + if (tempi->opcode[0]==0xCD) { + if (ptr=DefineSub(imm,"ST_INT_NAMES")) { + StrCat(arg1_st," "); + StrCat(arg1_st,ptr); + } + } + break; + case ARGT_IMM16: + case ARGT_UIMM16: + imm=*ip(U16 *)++; + SPrintF(buf2,"%04X",imm); + StrCat(arg1_st,buf2); + break; + case ARGT_IMM32: + case ARGT_UIMM32: + imm=*ip(U32 *)++; + SPrintF(buf2,"%08X",imm); + StrCat(arg1_st,buf2); + break; + case ARGT_IMM64: + case ARGT_UIMM64: + imm=*ip(I64 *)++; + SPrintF(buf2,"%016X",imm); + StrCat(arg1_st,buf2); + break; + case ARGT_REL8: + disp=*ip(I8 *)++; + disp+=ip; + SPrintF(buf2,"%P ",disp); + if (branch) *branch=disp; + StrCat(arg1_st,buf2); + break; + case ARGT_REL16: + disp=*ip(I16 *)++; + disp+=ip; + SPrintF(buf2,"%P ",disp); + if (branch) *branch=disp; + StrCat(arg1_st,buf2); + break; + case ARGT_REL32: + disp=*ip(I32 *)++; + disp+=ip; + SPrintF(buf2,"%P ",disp); + if (branch) *branch=disp; + StrCat(arg1_st,buf2); + break; + case ARGT_CL: + StrCat(arg1_st,"CL"); + break; + case ARGT_AL: + StrCat(arg1_st,"AL"); + break; + case ARGT_AX: + StrCat(arg1_st,"AX"); + break; + case ARGT_EAX: + StrCat(arg1_st,"EAX"); + break; + case ARGT_RAX: + StrCat(arg1_st,"RAX"); + break; + case ARGT_DX: + StrCat(arg1_st,"DX"); + break; + case ARGT_SS: + StrCat(arg1_st,"SS"); + break; + case ARGT_DS: + StrCat(arg1_st,"DS"); + break; + case ARGT_ES: + StrCat(arg1_st,"ES"); + break; + case ARGT_FS: + StrCat(arg1_st,"FS"); + break; + case ARGT_GS: + StrCat(arg1_st,"GS"); + break; + case ARGT_CS: + StrCat(arg1_st,"CS"); + break; + case ARGT_ST0: + StrCat(arg1_st,"ST0"); + break; + case ARGT_STI: + ip--; + SPrintF(buf2,"%Z",*ip++ - tempi->opcode[tempi->opcode_cnt-1],"ST_FSTK_REGS"); + StrCat(arg1_st,buf2); + break; + } + + switch (a2) { + case ARGT_IMM8: + case ARGT_UIMM8: + imm=*ip(U8 *)++; + SPrintF(buf2,"%02X",imm); + StrCat(arg2_st,buf2); + break; + case ARGT_IMM16: + case ARGT_UIMM16: + imm=*ip(U16 *)++; + SPrintF(buf2,"%04X",imm); + StrCat(arg2_st,buf2); + break; + case ARGT_IMM32: + case ARGT_UIMM32: + imm=*ip(U32 *)++; + SPrintF(buf2,"%08X",imm); + StrCat(arg2_st,buf2); + break; + case ARGT_IMM64: + case ARGT_UIMM64: + imm=*ip(I64 *)++; + SPrintF(buf2,"%016X",imm); + StrCat(arg2_st,buf2); + break; + case ARGT_CL: + StrCat(arg2_st,"CL"); + break; + case ARGT_AL: + StrCat(arg2_st,"AL"); + break; + case ARGT_AX: + StrCat(arg2_st,"AX"); + break; + case ARGT_EAX: + StrCat(arg2_st,"EAX"); + break; + case ARGT_RAX: + StrCat(arg2_st,"RAX"); + break; + case ARGT_DX: + StrCat(arg2_st,"DX"); + break; + case ARGT_SS: + StrCat(arg2_st,"SS"); + break; + case ARGT_DS: + StrCat(arg2_st,"DS"); + break; + case ARGT_ES: + StrCat(arg2_st,"ES"); + break; + case ARGT_FS: + StrCat(arg2_st,"FS"); + break; + case ARGT_GS: + StrCat(arg2_st,"GS"); + break; + case ARGT_CS: + StrCat(arg2_st,"CS"); + break; + case ARGT_ST0: + StrCat(arg2_st,"ST0"); + break; + case ARGT_STI: + ip--; + SPrintF(buf2,"%Z",*ip++ - tempi->opcode[tempi->opcode_cnt-1],"ST_FSTK_REGS"); + StrCat(arg2_st,buf2); + break; + } + if (tempi->flags&IEF_ENDING_ZERO) + ip++; + + if (*arg1_st) { + StrCat(buf,"\t"); + StrCat(buf,arg1_st); + } + if (*arg2_st) { + StrCat(buf,","); + StrCat(buf,arg2_st); + } + for (i=ip-(*_ip)(I64);i<6;i++) { + bin_data_area[i<<1]=CH_SPACE; + bin_data_area[i<<1+1]=CH_SPACE; + } + for (i=ip-(*_ip)(I64);i<12;i++) { + bin_data_area2[(i-6)<<1]=CH_SPACE; + bin_data_area2[(i-6)<<1+1]=CH_SPACE; + } + StrCat(buf,"\n"); + if (ip-(*_ip)(I64)>6) { + StrCat(buf,buf3); + StrCat(buf,"\n"); + } + *_ip=ip; +} + + +U8 *U(U8 *ip,I64 cnt=20,I64 seg_size=64) +//Unassembles a num of instructions. +{ + I64 i; + U8 buf[1024]; + if (seg_size==16) + PrintFWarn("%S","ST_16BIT_UNASM"); + "$$HL,1$$"; + for (i=0;ifull_name); + tempm->user_data=doc->root.y; + cnt+=doc->root.y; + DocDel(doc); + tempm=tempm->next; + } + num=num%cnt; + tempm=root; + while (tempm) { + num-=tempm->user_data; + if (num<0) { + st=MSPrintF("FL:%s,%d",tempm->full_name,-num); + break; + } + tempm=tempm->next; + } + CDirListDel(root); + Ed(st); + Free(st); +} + +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"$ + +//You can customize keys. This routine +//is called before the main editor +//key handler $LK,"DocPutKey","MN:DocPutKey"$(). +//You can intercept any key. + +//Return TRUE if you completely +//handled the key. + + I64 i,sc2=sc.u8[0]; + + if (SC_F1<=sc2<=SC_F10 && + sc&SCF_ALT && + !(sc & SCF_CTRL)) { + switch (sc2) { + case SC_F1: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Dollar/LTPURPLE"); + else + SetKeyDesc("Dollar/PURPLE"); + } else { + if (sc & SCF_SHIFT) + "$$FG,LTPURPLE$$"; + else + "$$FG,PURPLE$$"; + } + break; + case SC_F2: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Dollar/LTRED"); + else + SetKeyDesc("Dollar/RED"); + } else { + if (sc & SCF_SHIFT) + "$$FG,LTRED$$"; + else + "$$FG,RED$$"; + } + break; + case SC_F3: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Dollar/LTGREEN"); + else + SetKeyDesc("Dollar/GREEN"); + } else { + if (sc & SCF_SHIFT) + "$$FG,LTGREEN$$"; + else + "$$FG,GREEN$$"; + } + break; + case SC_F4: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Dollar/LTBLUE"); + else + SetKeyDesc("Dollar/Default Color"); + } else { + if (sc & SCF_SHIFT) + "$$FG,LTBLUE$$"; + else + "$$FG$$"; + } + break; + case SC_F5: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("God Passage"); + else + SetKeyDesc("God Word"); + } else { + //$LK,"::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z","FI:::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z"$ + if (sc & SCF_SHIFT) + RandQuote(KbdMouseEvtTime>>4); + else + "%s ",ws_sorted_words[KbdMouseEvtTime>>4%ws_num_words]->str; + } + break; + case SC_F6: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Cmd/Init WordStat Text"); + else + SetKeyDesc("Cmd/Init WordStat LT"); + } else { + if (sc & SCF_SHIFT) + PopUp("WSInit(\"::/SparrowOS/Misc/Bible.TXT.Z\");"); + else + PopUp("WSInit(\"::/SparrowOS/\" TEXT_FILE_MASK \";~*Bible.TXT.Z\");"); + } + break; + case SC_F7: + if (sc&SCF_KEY_DESC) { + if (sc & SCF_SHIFT) + SetKeyDesc("Dollar/Insert Hidden Widget"); + else + SetKeyDesc("Misc/Insert Datetime"); + } else { + if (sc & SCF_SHIFT) + DocInsSafe(DocCur, + "$$HS+C$$$$FG$$$$HE$$"); + else + FillInTime(); + } + break; + } + return TRUE; + } else { + if (!(sc & SCF_CTRL)) { + if (sc & SCF_ALT) { + switch (ch) { + case 'h': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/Tile Horizontally"); + else + WinTileHorz; + return TRUE; + case 'm': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/Maximize"); + else { + WinMax; + WinBorder; + } + return TRUE; + case 'v': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/Tile Vertically"); + else + WinTileVert; + return TRUE; + case 'V': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Sys/Frame Grabber Toggle"); + else + FrameGrabberToggle; + return TRUE; + + case 'l': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Put Link to Cur Pos on Clipboard"); + else { + ClipBoardDel; + DocPrintF(sys_clipboard_doc,"$$LK-A,\"FL:%s,%d\"$$", + DocCur->filename.name,DocCur->cur_entry->y+1); + } + return TRUE; + case 'L': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Edit/Place Anchor, Put Link to Clipboard"); + else { + i=RandU32; + ClipBoardDel; + DocPrintF(sys_clipboard_doc,"$$LK,\"\",\"FA:%s,ANC%d\"$$", + DocCur->filename.name,i); + "$$AN,\"\",\"ANC%d\"$$",i; + } + return TRUE; + + case 'w': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/WordStat(ON);"); + else + WordStat(ON); + return TRUE; + case 'W': + if (sc&SCF_KEY_DESC) + SetKeyDesc("Win/WordStat;"); + else + WordStat; + return TRUE; + +//Ins your own ALT-key plug-ins + 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"$ + BadCodeJump(KbdMouseEvtTime>>4); + return TRUE; + + case 'p': + if (sc&SCF_KEY_DESC) + SetKeyDesc("JukeBox(TAD)"); + else + JukeBox("::/SparrowOS/Accts/TS/TAD/MusicOrgan"); + return TRUE; + case 'P': + if (sc&SCF_KEY_DESC) + SetKeyDesc("JukeBox(Examples)"); + else + JukeBox("::/SparrowOS/Apps/MusicOrgan/Examples"); + return TRUE; + } + } + } + } + return FALSE; +} + +Bool MyPutS(U8 *st) +{ + nounusedwarn st; + return FALSE; +} + +KeyDevAdd(&MyPutKey,&MyPutS,0x20000000,TRUE); diff --git a/SparrowOS/Demo/AcctExample/Adam3eWrappers.CPP b/SparrowOS/Demo/AcctExample/Adam3eWrappers.CPP new file mode 100644 index 0000000..4d4ea2b --- /dev/null +++ b/SparrowOS/Demo/AcctExample/Adam3eWrappers.CPP @@ -0,0 +1,9 @@ +#include "/SparrowOS/Accts/Adam3eWrappers" + +#help_index "Utils;Cmd Line (Typically)" +public U0 M(U8 *src1,U8 *src2,U8 *fu_flags=NULL) +{ + MergeChk(src1,src2,fu_flags); +} +#help_index "" + diff --git a/SparrowOS/Demo/AcctExample/Adam3fSys.CPP b/SparrowOS/Demo/AcctExample/Adam3fSys.CPP new file mode 100644 index 0000000..157cc8a --- /dev/null +++ b/SparrowOS/Demo/AcctExample/Adam3fSys.CPP @@ -0,0 +1,49 @@ +U0 UserStartUp() +{ //Run each time a user a spawned + UseTermDoc; + DocCurAttr(WHITE<<4+BLUE); + Type("::/SparrowOS/Doc/Start.TXT.Z"); + LBts(&Fs->display_flags,DISPLAYf_SHOW); + WinZBufUpdate; + if (!IsSysDeterministic) + Preempt(ON); + Dir; + CPURep; +} + +U0 ServantStartUp() +{ //Run each time a servant task is spawned. + UseTermDoc; + LBts(&Fs->display_flags,DISPLAYf_SHOW); + WinZBufUpdate; + if (!IsSysDeterministic) + Preempt(ON); +} + +CTask *user1,*user2; + +U0 StartUpTasks() +{ + user1=SpawnUser; + user2=SpawnUser; + WinToTop(user1); + WinTileVert; + if (!IsSysDeterministic) + PopUp("#include \"::/SparrowOS/Adam/Start.CPP.Z\";"); + AdamLog("Boot Time:%7.3fs\n",tS); + XTalk(user1,"#include \"DoItOnce.CPP.Z\";\n"); + Silent(ON); + if (!IsSysDeterministic) + WSInit("/SparrowOS/" TEXT_FILE_MASK ";~*Bible.TXT.Z"); + Silent(OFF); + AdamLog("WordStat Time:%7.3fs\n",tS); + if (ts_has_win_drv) + DrvEnable(TS_WIN_DRV_LET,OFF); +} + +DelTree("::/Temp/ScreenShots"); +MkDir("::/Temp/ScreenShots"); + +StartUpTasks; + +"\nOS Compile Time:%D %T\n",sys_compile_time,sys_compile_time; diff --git a/SparrowOS/Demo/AcctExample/DoItOnce.CPP b/SparrowOS/Demo/AcctExample/DoItOnce.CPP new file mode 100644 index 0000000..6fe56f4 --- /dev/null +++ b/SparrowOS/Demo/AcctExample/DoItOnce.CPP @@ -0,0 +1,12 @@ +//This file is executed by the +//first terminal window upon start-up. +//See $LK,"DoItOnce","FF:HOME/Adam3fSys.CPP.Z,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"); + diff --git a/SparrowOS/Demo/AcctExample/PersonalMenu.TXT b/SparrowOS/Demo/AcctExample/PersonalMenu.TXT new file mode 100644 index 0000000000000000000000000000000000000000..a886958024fe6b6f96e2d2b4bc4114bc5f10a9db GIT binary patch literal 51890 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 literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/AcctExample/TAD/Adam3aLocalize.CPP b/SparrowOS/Demo/AcctExample/TAD/Adam3aLocalize.CPP new file mode 100644 index 0000000..54e8d1d --- /dev/null +++ b/SparrowOS/Demo/AcctExample/TAD/Adam3aLocalize.CPP @@ -0,0 +1,20 @@ +//Change anything you want in this +//acct file or others. + +//This makes your keyboard fast +SetTypeMatic(0); + +//Set Time Zone +local_time_offset=-7*60*60*CDATE_FREQ; //Pacific + +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 + +//don't change these +mxx_prescale=mxx/mxx_scale; +myy_prescale=myy/myy_scale; +mzz_prescale=mzz/mzz_scale; diff --git a/SparrowOS/Demo/AcctExample/TAD/Archive/FileSysISO3.CPP b/SparrowOS/Demo/AcctExample/TAD/Archive/FileSysISO3.CPP new file mode 100644 index 0000000..ed59842 --- /dev/null +++ b/SparrowOS/Demo/AcctExample/TAD/Archive/FileSysISO3.CPP @@ -0,0 +1,488 @@ +//ISO1 is ISO9660 +//ISO2 is ISO13490 +//ISO3 is ISO13346 + +//ISO13346 tag id types +#define ISO3T_PRI_VOL_DESC 1 +#define ISO3T_ANCHOR_VOL_DESC_PTR 2 +#define ISO3T_VOL_DESC_PTR 3 +#define ISO3T_IMPLEMENTATION_VOL_DESC 4 +#define ISO3T_PRT_DESC 5 +#define ISO3T_LOG_VOL_DESC 6 +#define ISO3T_UNALLOCATED_SPACE_DESC 7 +#define ISO3T_TERMINATOR_DESC 8 +#define ISO3T_LOG_VOL_INTEGRITY_DESC 9 +#define ISO3T_FILE_SET_DESC 256 +#define ISO3T_FILE_ID_DESC 257 +#define ISO3T_ALLOC_EXTENT_DESC 258 +#define ISO3T_INDIRECT_ENTRY 259 +#define ISO3T_TERMINAL_ENTRY 260 +#define ISO3T_FILE_ENTRY 261 +#define ISO3T_EXT_ATTR_HEADER_DESC 262 +#define ISO3T_UNALLOC_SPACE_ENTRY 263 +#define ISO3T_SPACE_BITMAP_DESC 264 +#define ISO3T_PRT_INTEGRITY_ENTRY 265 +#define ISO3T_EXT_FILE_ENTRY 266 + +class CISO3Tag +{ + U16 id; + U16 version; + U8 xsum; + U8 reserved; + U16 serial_num; + U16 desc_crc; + U16 desc_crc_len; + U32 loc; +}; + +class CISO3Date +{ + U16 time_zone; + I16 year; + U8 mon; + U8 day; + U8 hour; + U8 min; + U8 sec; + U8 sec100; + U8 sec10000; + U8 sec1000000; +}; + + +class CISO3DString32 +{ + U8 body[31]; + U8 len; +}; + +class CISO3DString128 +{ + U8 body[127]; + U8 len; +}; + +class CISO3CharSpec +{ + U8 type; + U8 body[63]; +}; + +class CISO3RegId +{ + U8 flags; + U8 id[23]; + U8 id_suffix[8]; +}; + +class CISO3ExtentAD +{ + U32 len; + U32 loc; +}; + +class CISO3LBAdd +{ + U32 log_blk_num; + U16 prt_ref_num; +}; + +class CISO3LongAD +{ + U32 len; + CISO3LBAdd loc; + U8 implementation_use[6]; +}; + +class CISO3ICBTag +{ + U32 prior_record_direct_entries; + U16 strategy_type; + U16 strategy_param; + U16 max_entries; + U8 reserved; + U8 file_type; + CISO3LBAdd parent_icb_loc; + U16 flags; +}; + +class CISO3PriDesc +{ + CISO3Tag tag; + U32 vol_desc_seq_num; + U32 pri_vol_desc_num; + CISO3DString32 vol_id; + U16 vol_seq_num; + U16 max_vol_seq_num; + U16 interchg_level; + U16 max_interchg_level; + U32 char_set_list; + U32 max_char_set_list; + CISO3DString128 vol_set_id; + CISO3CharSpec desc_char_set; + CISO3CharSpec explanatory_char_set; + CISO3ExtentAD vol_abstract; + CISO3ExtentAD vol_copyright_notice; + CISO3RegId app_id; + CISO3Date recording_date_time; + CISO3RegId implementation_id[32]; + U8 implementation_use[64]; + U32 pred_vol_desc_seq_loc; + U16 flags; + U8 reserved[22]; +}; + +class CISO3PrtMap +{ + U8 type; + U8 len; + U0 mapping; +}; + +class CISO3PrtMap1 +{ + U8 type; + U8 len; + U16 vol_seq_num; + U16 prt_num; +}; + +class CISO3PrtMap2 +{ + U8 type; + U8 len; + U8 prt_id[62]; +}; + +class CISO3LogVolDesc +{ + CISO3Tag tag; + U32 vol_desc_seq_num; + CISO3CharSpec desc_char_set; + CISO3DString128 log_vol_id; + U32 blk_size; + CISO3RegId domain_id; + U8 log_vol_contents_use[16]; + U32 map_table_len; + U32 num_prt_maps; + CISO3RegId implementation_id; + U8 implementation_use[128]; + CISO3ExtentAD integrity_seq_extent; + U0 prt_maps; +}; + +class CISO3Prt +{ + CISO3Tag tag; + U32 vol_desc_seq_num; + U16 flags; + U16 num; + CISO3RegId contents; + U8 contents_use[128]; + U32 access_type; + U32 starting_loc; + U32 len; + CISO3RegId implementation_id; + U8 implementation_use[128]; + U8 reserved[156]; +}; + +class CISO3FileSetDesc +{ + CISO3Tag tag; + CISO3Date recording_date_time; + U16 interchg_level; + U16 max_interchg_level; + U32 char_set_list; + U32 max_char_set_list; + U32 file_set_num; + U32 file_set_desc_num; + CISO3CharSpec log_vol_id_char_set; + CISO3DString128 log_vol_id; + CISO3CharSpec file_set_char_set; + CISO3DString32 file_set_id; + CISO3DString32 copyright_file_id; + CISO3DString32 abstract_file_id; + CISO3LongAD root_dir_icb; + CISO3RegId domain_id; + CISO3LongAD next_extent; + CISO3LongAD sys_stream_dir_icb; + U8 reserved[32]; +}; + +class CISO3FileIdDesc +{ + CISO3Tag tag; + U16 version; + U8 characteristics; + U8 len_of_file_id; + CISO3LongAD icb; + U16 len_of_implementation_use; + U0 implementation_use; + U0 file_id; +}; + +class CISO3File +{ + CISO3Tag tag; + CISO3ICBTag icb_tag; + U32 uid; + U32 gid; + U32 permissions; + U16 file_link_cnt; + U8 record_fmt; + U8 record_display_attr; + U32 record_len; + I64 info_len; + I64 log_blks_recorded; + CISO3Date access_date_time; + CISO3Date modification_date_time; + CISO3Date attr_date_time; + U32 chk_pt; + CISO3LongAD ext_attr_icb; + CISO3RegId implementation_id; + I64 unique_id; + U32 ext_attr_len; + U32 alloc_desc_len; + U0 ext_attr; + U0 alloc_desc; +}; + +class CISO3FileExt +{ + CISO3Tag tag; + CISO3ICBTag icb_tag; + U32 uid; + U32 gid; + U32 permissions; + U16 file_link_cnt; + U8 record_fmt; + U8 record_display_attr; + U32 record_len; + I64 info_len; + I64 object_size; + I64 log_blks_recorded; + CISO3Date access_date_time; + CISO3Date modification_date_time; + CISO3Date creation_date_time; + CISO3Date attr_date_time; + U32 chk_pt; + U32 reserved; + CISO3LongAD ext_attr_icb; + CISO3LongAD stream_dir_icb; + CISO3RegId implementation_id; + I64 unique_id; + U32 ext_attr_len; + U32 alloc_desc_len; + U0 ext_attr; + U0 alloc_desc; +}; + +import U0 ClassRep(U8 *class_name,U8 *d,I64 max_depth=2,Bool fun=FALSE,I64 offset=0); + +Bool ISO3PrtInitPrt(CPrt *p,I64 blk) +{ + CBlkDev *bdev=p->bdev; + I64 spc=bdev->blk_size>>BLK_SIZE_BITS,i=blk/spc; + CISO3FileSetDesc *iso=MAlloc(bdev->blk_size); + Bool unlock,result=FALSE; + try { + unlock=PrtLock(p); + while (TRUE) { + p->size=MaxI64(p->size,(i+1)*spc); + RBlks(p,iso,i*spc,spc); + "%X:%X\n",i,iso->tag.id; + switch (iso->tag.id) { + case ISO3T_FILE_SET_DESC: + ClassRep("CISO3FileSetDesc",iso,3); +// p->offset=blk; +// p->root_cluster=iso->root_dir_icb.loc.log_blk_num+p->offset/spc; + result=TRUE; + break; + case ISO3T_EXT_FILE_ENTRY: + ClassRep("CISO3FileExt",iso,3); + break; + case ISO3T_FILE_ENTRY: + ClassRep("CISO3File",iso,3); + break; + case ISO3T_FILE_ID_DESC: + ClassRep("CISO3FileIdDesc",iso,3); + break; + case ISO3T_ALLOC_EXTENT_DESC: + case ISO3T_INDIRECT_ENTRY: + case ISO3T_TERMINAL_ENTRY: + case ISO3T_EXT_ATTR_HEADER_DESC: + case ISO3T_UNALLOC_SPACE_ENTRY: + case ISO3T_SPACE_BITMAP_DESC: + case ISO3T_PRT_INTEGRITY_ENTRY: + break; + default + goto i3pip_done; + } + i++; + } +i3pip_done: + Free(iso); + if (unlock) + PrtUnlock(p); + } catch { + Free(iso); + if (unlock) + PrtUnlock(p); + } + return result; +} + +Bool ISO3PrtInit(CPrt *p,I64 blk) +{ + CBlkDev *bdev=p->bdev; + I64 spc=bdev->blk_size>>BLK_SIZE_BITS,i=blk/spc,offset=0; + CISO3Prt *iso=MAlloc(bdev->blk_size); + Bool unlock,result=FALSE; + + try { + unlock=PrtLock(p); + while (TRUE) { + p->size=MaxI64(p->size,(i+1)*spc); + RBlks(p,iso,i*spc,spc); +"%X:%X\n",i,iso->tag.id; + switch (iso->tag.id) { + case ISO3T_PRT_DESC: + ClassRep("CISO3Prt",iso,3); + offset=iso->starting_loc*spc; //one partition for now + break; + case ISO3T_PRI_VOL_DESC: + ClassRep("CISO3PriDesc",iso,3); + break; + case ISO3T_LOG_VOL_DESC: + ClassRep("CISO3LogVolDesc",iso,3); + D(&iso(CISO3LogVolDesc *)->prt_maps); + break; + case ISO3T_ANCHOR_VOL_DESC_PTR: + case ISO3T_VOL_DESC_PTR: + case ISO3T_IMPLEMENTATION_VOL_DESC: + case ISO3T_UNALLOCATED_SPACE_DESC: + case ISO3T_LOG_VOL_INTEGRITY_DESC: + break; + case ISO3T_TERMINATOR_DESC: + goto i3pi_done; + default: + PutDefineErr("ST_UNSUPPORTED_FILE_SYSTEM"); + throw(EXCEPT_PRT,8); + } + i++; + } +i3pi_done: + if (offset) + result=ISO3PrtInitPrt(p,offset); + Free(iso); + if (unlock) + PrtUnlock(p); + } catch { + Free(iso); + if (unlock) + PrtUnlock(p); + } + return result; +} + + +/**** +U0 CDate2ISO3(CISO3Date *dst,CDate ltdt) +{ + CDateStruct ds; + CDate2CDateStruct(&ds,ltdt); + MemSet(dst,0,sizeof(CISO3Date)); + dst->year=ds.year; + dst->mon=ds.mon; + dst->day=ds.day_of_mon; + dst->hour=ds.hour; + dst->min=ds.min; + dst->sec=ds.sec; + dst->sec100=ds.sec100; +} + +CDate ISO3Date2CDate(CISO3Date *dt) +{ + CDateStruct ds; + MemSet(&ds,0,sizeof(CDateStruct)); + ds.day_of_mon=dt->day; + ds.mon=dt->mon; + ds.year=dt->year; + ds.sec100=dt->sec100; + ds.sec=dt->sec; + ds.min=dt->min; + ds.hour=dt->hour; + return CDateStruct2CDate(&ds); +} +****/ + + +Bool ISOPrtInit(CPrt *p,I64 blk) +{ + CBlkDev *bdev=p->bdev; + I64 spc=bdev->blk_size>>BLK_SIZE_BITS,i=blk/spc; + CISO1PriDesc *iso=MAlloc(bdev->blk_size); + CISO1DirEntry *de; + Bool unlock,result=FALSE; + U8 buf[8]; + + try { + unlock=PrtLock(p); + p->type=PT_ISO9660; //default + p->spc=spc; + p->offset=p->data=p->root_cluster=p->size=0; + while (TRUE) { + p->size=MaxI64(p->size,(i+1)*spc); + 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)) { + case 0: + p->type=PT_ISO9660; + switch (iso->type) { + case ISO1T_SUPPLEMENTARY_DESC: + p->data=0; + de=&iso->root_dir_record; + p->root_cluster=de->loc.little; + p->size=iso->vol_space_size.little*bdev->blk_size>>BLK_SIZE_BITS; + result=TRUE; + goto ipi_done; + case ISO1T_TERMINATOR: + throw(EXCEPT_PRT,9); + } + break; + case 2...6: + p->type=PT_ISO13346; + break; + case 1: //PT_ISO13490 (Not supported) + default: //Its normal for ISO13346 to read NULL blk as terminator + switch (p->type) { + case PT_ISO13346: + i++; //Terminator is blk after last valid. Advance to next blk + if (ISO3PrtInit(p,i*spc)) { + result=TRUE; + goto ipi_done; + } + break; + } + PutDefineErr("ST_UNSUPPORTED_FILE_SYSTEM"); + throw(EXCEPT_PRT,10); + } + i++; + } +ipi_done: + Free(iso); + if (unlock) + PrtUnlock(p); + } catch { + p->type=PT_ISO9660; + p->spc=spc; + p->offset=p->data=p->root_cluster=0; + Free(iso); + if (unlock) + PrtUnlock(p); + } + return result; +} diff --git a/SparrowOS/Demo/AcctExample/TAD/Archive/Logo.TXT b/SparrowOS/Demo/AcctExample/TAD/Archive/Logo.TXT new file mode 100644 index 0000000000000000000000000000000000000000..efc8df6a9698ce5aa25f592a158ba447c563a4a9 GIT binary patch literal 33188 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 literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/AcctExample/TAD/Archive/USB.CPP b/SparrowOS/Demo/AcctExample/TAD/Archive/USB.CPP new file mode 100644 index 0000000..26214a5 --- /dev/null +++ b/SparrowOS/Demo/AcctExample/TAD/Archive/USB.CPP @@ -0,0 +1,217 @@ +/* +You can play with this if you are +interested in USB. I'm not planning +on doing USB unless the legacy PS2 +keyboard/mouse mode disappears. +There EHCI UHCI in various ICH chips and +others and God knows how many custom packet +formats for different keyboards and mice. Okay, +I suppose if BIOS can make a universal +packet, it is done just one way for +different mice. PS2 is more compatible. + +*/ +#help_index "USB" +extern I64 sys_num_usb; +extern CUSB sys_usb_devs[MAX_USB]; +extern CUSBTD *USBAllocTD(); +extern U0 USBFreeTD(CUSBTD *temptd); +extern U0 USBEndAll(); +extern U0 USBInitAll(); +extern U32 *USBAllocFrameList(I64 usb_num,I64 size); + +U8 *StatCB(CDoc *,CDocEntry *doc_e,CTask *mem_task) +{ //This routine shows the stat of the USB ports + U8 *st=MAlloc(128,mem_task); + U16 w1,w2,w3,w4; + U32 d1; + CUSB *u=doc_e->user_data; + I64 d=u->ports; + w3=InU16(d+USBP_STS); + w1=InU16(d+USBP_PORTSC0); w2=InU16(d+USBP_PORTSC1); + w4=InU16(d+USBP_FRNUM); + d1=InU32(d+USBP_FRBASEADD); + SPrintF(st,"%X:Stat:%04X P0:%04X P1:%04X FRAME:%04X",d1,w3,w1,w2,w4); + return st; +} + +U0 PutStat() +{ + I64 i; + Bool old_preempt=Preempt(OFF); + CDocEntry *doc_e; + CUSB *u; + WinMax; + + "$$FG,GREEN$$Dev Stat Bits\n$$FG$$" + " 0:IRQ\n" + " 1:IRQ err\n" + " 2:Resume\n" + " 3:Host Sys Err\n" + " 4:Host Process Err\n" + " 5:Halted\n" + "$$FG,GREEN$$Port Stat Bits\n$$FG$$" + " 0:Connection Stat\n" + " 1:Connection Stat Change\n" + " 2:Port Enabled\n" + " 3:Port Enabled Change\n" + "4-5:Line Stat\n" + " 6:Resume Detect\n" + " 8:Low Speed\n" + " 9:Port Rst\n" + " 10:Overcurrent Active\n" + " 11:Overcurrent Indicator\n" + " 12:Suspend\n\n"; + + for (i=0;iports; + doc_e=DocPutS(DocCur,"$$TX+TC,\" \"$$"); + doc_e->user_data=&sys_usb_devs[i]; + doc_e->tag_cb=&StatCB; + "$$FG$$\n"; + } + + Preempt(old_preempt); + NewLine; +} + + +extern U0 PutQH(U32 h); + +U32 *P(U32 d) +{ + return d&~3; +} + + +U0 PutTD(U32 t) +{ + "TD:$$FG,GREEN$$%08X$$FG$$\n",t; + "%08X\n",*P(t); + DocDm(t+4,8); + if (*P(t+12)) + DocDm(*P(t+12),16); +// DocDm(*P(t+12),*P(t+4)>>21&0x7FF); + if (!(*P(t)&1)) { + if (*P(t)&2) + PutQH(*P(t)); + else + PutTD(*P(t)); + } +} + +U0 PutQH(U32 h) +{ + "QH:$$FG,RED$$%08X$$FG$$\n",h; + "%08X\n",*P(h); + "%08X\n",*P(h+4); + + if (!(*P(h)&1)) { + if (*P(h)&2) + PutQH(*P(h)); + else + PutTD(*P(h)); + } + + if (!(*P(h+4)&1)) { + if (*P(h+4)&2) + PutQH(*P(h+4)); + else + PutTD(*P(h+4)); + } +} + +U0 PutFrame(U32 f) +{ + PutQH(f); +} + +U0 PutFrames() +{ + I64 i,d,f,w1,w2; + CUSB *u; + for (i=0;iports; + w1=InU16(d+USBP_PORTSC0); w2=InU16(d+USBP_PORTSC1); + if (w1&1 || w2&1) { + f=InU32(d+USBP_FRBASEADD); + PutFrame(f); + } + } + +} + +U0 Main() +{ + USBInitAll; + PutStat; + PutFrames; + "$$FG,RED$$The BIOS sets-up the USB in PS/2 legacy mode.$$FG$$\n"; +} + +Main; + + +/* Not Finished +#define PORT 5 + +#define DEV_ADD_INIT 1 +#define DEV_ADD 1 +#define END_PT0 0 +#define END_PT1 1 +#define END_PT2 2 +#define MAX_LEN 8 +#define TERMINATE 1 + +U0 SetUpTD() +{ + CUSB *u=&sys_usb_devs[PORT]; + I64 i,d=u->ports; + U32 *frm=CAllocAligned(0x1000,0x1000,Fs->code_heap), + *tds=CAllocAligned(256,16,Fs->code_heap), + *buf=CAlloc(128,Fs->code_heap); + DocD(buf,128); + + "<0>\n"; Sleep(100); + OutU16(d+USBP_CMD,2); //Reset + "<1>\n"; Sleep(100); + OutU16(d+USBP_CMD,0); + "<2>\n"; Sleep(100); + OutU16(d+USBP_PORTSC0,4); //Enable + OutU16(d+USBP_PORTSC1,4); + "<3>\n"; Sleep(100); + + tds[0]=&tds[4](U8 *); + tds[1]=0; + tds[2]=PID_SETUP+DEV_ADD_INIT<<8+END_PT0<<15+MAX_LEN<<21; + tds[3]=buf; + buf[0]=0+RQ_SET_ADDR<<8+DEV_ADD<<16; + buf[1]=0+0<<16; + + + tds[4]=TERMINATE; + tds[5]=0; + tds[6]=PID_SETUP+DEV_ADD_INIT<<8+END_PT0<<15+MAX_LEN<<21; + tds[7]=buf(U8 *)+8; + buf[2]=0+RQ_SET_ADDR<<8+DEV_ADD<<16; + buf[3]=0+0<<16; + + frm[0]=&tds[0](U8 *); + for (i=1;i<0x1000/4;i++) + frm[i]=TERMINATE; + + OutU16(d+USBP_FRNUM,frm); + OutU32(d+USBP_FRBASEADD,frm); + "<4>\n"; Sleep(200); + OutU16(d+USBP_CMD,1); + "<5>\n"; Sleep(1000); + OutU16(d+USBP_CMD,0); + "<6>\n"; Sleep(200); +} + +SetUpTD; + +*/ + diff --git a/SparrowOS/Demo/AcctExample/TAD/Archive/USB1a.CPP b/SparrowOS/Demo/AcctExample/TAD/Archive/USB1a.CPP new file mode 100644 index 0000000..02d3990 --- /dev/null +++ b/SparrowOS/Demo/AcctExample/TAD/Archive/USB1a.CPP @@ -0,0 +1,114 @@ +#define USBP_CMD 0x00 +#define USBP_STS 0x02 +#define USBP_INTR 0x04 +#define USBP_FRNUM 0x06 +#define USBP_FRBASEADD 0x08 +#define USBP_SOFMOD 0x0C +#define USBP_PORTSC0 0x10 +#define USBP_PORTSC1 0x12 +#define MAX_USB 16 + +class CUSBTD //Not implemented +{ + U32 td[4]; +}; + +class CUSB //Not implemented +{ + U8 num, //USB dev num + bus,dev,fun; + U16 ports,pad; + U32 *frame_list; +}; + +//USB Pkt ID's +#define PID_OUT 0xE1 +#define PID_IN 0x69 +#define PID_SOF 0xA5 +#define PID_SETUP 0x2D +#define PID_DATA0 0xC3 +#define PID_DATA1 0x4B +#define PID_DATA2 0x87 +#define PID_MDATA 0x0F +#define PID_ACK 0xD2 +#define PID_NAK 0x5A +#define PID_STALL 0x1E +#define PID_NYET 0x96 +#define PID_PRE 0x3C +#define PID_ERR 0x3C +#define PID_SPLIT 0x78 +#define PID_PING 0xB4 + +//USB Std Rqsts +#define RQ_GET_STAT 0x0 +#define RQ_CLR_FEAT 0x1 +#define RQ_SET_FEAT 0x3 +#define RQ_SET_ADDR 0x5 +#define RQ_SET_DESC 0x7 +#define RQ_GET_CFG 0x8 +#define RQ_SET_CFG 0x9 +#define RQ_GET_INTERFACE 0xA +#define RQ_SET_INTERFACE 0xB +#define RQ_SYNC_FRAME 0xC + +I64 sys_num_usb=0; +CUSB sys_usb_devs[MAX_USB]; +MemSet(sys_usb_devs,0,MAX_USB*sizeof(CUSB)); + + +U0 USBInitOne(I64 b,I64 d,I64 f) +{ + CUSB *u; + if (sys_num_usbnum=sys_num_usb; + u->bus=b; + u->dev=d; + u->fun=f; + u->ports=PCIReadU32(b,d,f,0x20)&~0x1F; + } +} + +U0 USBEndAll() +{ + sys_num_usb=0; +} + +U0 USBInitAll() //This is only valid for my ICH10 dev +{ + if (sys_num_usb) + USBEndAll; + USBInitOne(0,29,0); + USBInitOne(0,29,1); + USBInitOne(0,29,2); + USBInitOne(0,29,3); + USBInitOne(0,26,0); + USBInitOne(0,26,1); + USBInitOne(0,26,2); +} + +CUSBTD *USBAllocTD() +{ + return MAllocAligned(sizeof(CUSBTD),0x10,sys_uncached_heap); +} + +U0 USBFreeTD(CUSBTD *temptd) +{ + Free(temptd); +} + +U32 *USBAllocFrameList(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); + 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; + } + return NULL; +} diff --git a/SparrowOS/Demo/AcctExample/TAD/PersonalNotes.TXT b/SparrowOS/Demo/AcctExample/TAD/PersonalNotes.TXT new file mode 100644 index 0000000..0cc69c7 --- /dev/null +++ b/SparrowOS/Demo/AcctExample/TAD/PersonalNotes.TXT @@ -0,0 +1,186 @@ +* Preempt-->cli + +* Why is bitmap different from vector in $LK,"Logo","FI:::/SparrowOS/Accts/TS/TAD/Archive/Logo.TXT.Z"$? + +* Hangs after pressing Compile MAIN in menu. +* 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. + +* $LK,"DocUpdateTaskDocs","MN:DocUpdateTaskDocs"$() skips locked docs. $LK,"WinMgrSync","MN:WinMgrSync"$() needs to check. + +* Why is wordstat so slow on "OldMasterBootWrite" for example. + +* $LK,"Plain","MN:Plain"$() might be better not saving $LK,"CH_CURSOR","MN:CH_CURSOR"$. + +* TRANSPARENT might not work with line ROPF_DITHER + +* It would be nice if $LK,"U","MN:U"$() NOP were better. + +* Autoindent is very bad. + +* Make native file system expanded size set in Copy. + +* unhandled exception on MP message gets overwritten by WinMgr + +* Cmd to enable/disable compiler warnings + +* make aware of ctrl-r side bar + +* fix problem -- remembering 0 terminator in str or not for $$DA +* GetS, crazy putkey code +* editor page formatting + +* $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 + +* CGrVectMap sucks +* 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 +$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 +* EIE_ABS_ADDR 64 + +//After Egypt possible future ideas +//$LK,"Numbers,13:33","BF:Numbers,13:33"$ scouts +//$LK,"Numbers,21:8","BF:Numbers,21:8"$ snakes + +GrEdit: Move sidebar selected elems. + - Be careful of multipt elems. +GrEdit: Strip origin shift cmds. + +GrEditBitMap, grabscroll? +GrEditBitMap, cut/paste boxes. + +extern of fun with dft arg of str? + +* We kinda need a routine to return how much free memory, so that applications can plan a big alloc. + +* 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. +* $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. + +* Window mgr needs to do DOC operations on posted messages from mouse. Works for $LK,"SetIP","MN:SetIP"$(), though. + +* Add local vars to sym table in $LK,"Dbg","MN:Dbg"$()? (maybe) + +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"$ +* get kbd lights working. +* figure-out hyperthread vs nonhyperthread CPU's +* Might have issue with compiler exceptions and restoring lex.hash tables. +* Generates two compiler error messages for expressions in statements. +* release semaphores or break lock sema,usb_td +* Fix Mom's secondary CD-ROM, dad's primary +* pmtstr in install didn't like focus change + +*$FG,2$U0 Main() +{ + U0 (*fp_old_draw_input_ptr)(CDC *dc,I64 x,I64 y)=fp_draw_input_ptr; +}$FG$ + +* Syncronize VGA memory update with the hardware refresh cycle. + +* Demo $LK,"ToHtml","MN:ToHtml"$(). + +* Del short name in FAT32--currently I do not check to see if I have generated a unique short name and one can delete multiple files accidentally. Generating unique short names is a pain in the ass because you have to scan the whole directory. I think I just truncate the name instead of "Program~1" or whatever. S081130-0001.BMP crashed windows--two identical short names. + +* OVERSTRIKE at cmd line with menu macro. + +* $FG,2$lock{}$FG$ warning on invalid modes. +* Local array vars-->reg. +* $LK,"DCF_SYMMETRY","MN:DCF_SYMMETRY"$, before transformation? (Currently it's after) +* all graphics clipping -- screen y+top<0 for top<0 +* Maybe convert graphics to float +* compiler F32 +* preempt(OFF) during graphic clipping? +* compiler optimization heap_glbls with added offset +* static_compile extern glblvar references. +* extern glbl var in static module on data heap. +* Might make FAT32 read in contiguous chunks. +* make Limit(),Min(),Max() asm routines. +* Might make CSprite flood fill operate on a separate bitmap and blotted at the end. +* autofile popup of popup +* delete subsprite in menu near others +* consider changing domenu so a real on menu item doesn't select ( sends followed by or something) +* puts3 with depth buf? might not do this +* make task queins and querem safe for multicore cycling through tasks (fwd). +* make better heapwalk, do something with _CFG_HEAP_DBG. +* log to file--would be inefficient--load-in whole file, modify and write out. Useful, but not very efficient (SparrowOS file system has no grow-file ability. Created when FAT patent was an issue and wanted absly nothing people could sue me for.) +* APIC2 +* import intel datasheets, somehow? +* Might make DskView show drive colors. +* Might do utility to set drive colors, making a tree entry in Adam 3 using registry-like routines... or registry I guess. + +* New Editor widgets + +* Make use of flag potential in SysFilesFind and possibly CFileAccess +* implement fixed pos files + +* new C+ language features +* better debugging + +* Change hardcoded stuff to Define +* Too much preemption turned off? +* Look for mem leaks. +* Move stuff out of OSmain. + +* $LK,"ROP_XOR","MN:ROP_XOR"$ with pen_width>1 is broken. + +* use width and height in line clipping for pen_width>1 or blot. +* SIMD transformation +* test removable media id (critical for resident files) + +* add field overflow U8 "t='*'" +* Implement fmt codes into GetF +* GetF date codes and maybe $FG,2$h$FG$ fmts for nums +* Date Input +* Default date fmt + +* 16 bit Unassembly is bad--very low priority +* more signed int disassembly +* support r4u8 by adding 0x40 byte +* static var off of data heap. +* Might want to use U32*U32 multiplication. +* could add "const" to not set LF_NOT_CONSTANT flag for trig, etc. +* do r,rm ICCmp like ICBrCmp +* could make glblvar imports use TY_RIP_DISP32. +* PUSH_CMP allocs reg R9 or whatever +* Might be problem with NOP in OPT pass1 for NO_PUSH in expressions besides assignments. Is ShiftNoPush fully implemented? +* NOP1 might need to have diff ic_data's +* in divequal, it assumes about ebx +* error/warning line nums +* ASM branch out warning of range off by 1 line--use lx->last_line_num + +* Switch statement with sparse cases (low priority) +* maybe inline functions? +* Use of more floating-point stk? + +* More aggressive in this routine $LK,"CmpF2PushPop","MN:CmpF2PushPop"$() with types besides MOV and F64. +* !dbl ~dbl +* &=, |= can overflow with Bts Btr on small data types + +* num lock comes on with break key +* sort options for findfiles +* recalc_start could be more accurate before recalculating? +* Maybe, get rid of $LK,"0x20000","FF:::/SparrowOS/Compiler/CmpMain.CPP.Z,0x20000"$ in compiler. +* get rid of "$FG,2$$$PI$FG$" alias. diff --git a/SparrowOS/Demo/AcctExample/TAD/Registry.CPP b/SparrowOS/Demo/AcctExample/TAD/Registry.CPP new file mode 100644 index 0000000..9db1424 --- /dev/null +++ b/SparrowOS/Demo/AcctExample/TAD/Registry.CPP @@ -0,0 +1,8 @@ +$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/TSAdam.CPP b/SparrowOS/Demo/AcctExample/TSAdam.CPP new file mode 100644 index 0000000..5b9189d --- /dev/null +++ b/SparrowOS/Demo/AcctExample/TSAdam.CPP @@ -0,0 +1,413 @@ +#define CID_DFT 0 +#define CID_TAD8 1 + +I64 ts_cid=CID_DFT; + +#include "::/SparrowOS/Accts/TS/TSIDComputer" + +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; +} + +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; + switch (ts_cid) { + case CID_TAD8: + 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\""); + 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: + 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); + } 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); + } + DefinePrintF("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\""); + DefinePrintF("TS_HDS","\"DEF\""); + 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\""); + } +} 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)); + +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); +} TSInit2; + +if (ts_has_main_drv) + SetDrvTextAttr(TS_MAIN_DRV_LET, WHITE <<4|BLUE); +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) + SetDrvTextAttr(TS_IMG_DRV_LET, BLUE <<4|LTRED); +if (ts_has_cdrom_drv) + SetDrvTextAttr(TS_CDROM_DRV_LET,LTGRAY<<4|BLUE); + +#define TS_ISO_NAME TS_RAM_DRV ":/SparrowOSCD.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 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" + +//$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"$ + + +U0 CtrlAltR(I64) +{ + snd_record=!snd_record; +} +SetCtrlAltLetCB('R',&CtrlAltR,"Toggle snd_record"); + +Bool frame_grabber_paused=FALSE, + frame_grabber_on=FALSE; + +public U0 MyScreenShot(I64 bits=4) +{ + U8 *st; + CDirEntry *tempm; + I64 cnt=0; + tempm=FilesFind("::/Temp/ScreenShots/*.BMP"); + while (tempm) { + cnt++; + tempm=tempm->next; + } + st=MSPrintF("::/Temp/ScreenShots/SCRN%04d.BMP",cnt); + BMPFileCaptureScreen(st,bits); + Free(st); + 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) +{ + I64 frame_num=0; + I64 buf[136],buf2[136],buf3[136]; + F64 end_time=tNP,f; + TaskInitExt; + Silent(ON); //no output to screen + 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); + BMPFileCaptureScreen(buf); + Suspend(sys_winmgr_task); + StrCpy(buf3,buf); + + f=tNP; + while (end_timetask_flags,TASKf_IDLE); + while (sys_cur_scan_code&SCF_NUM) { + Suspend(sys_winmgr_task,FALSE); + Yield; + end_time=tNP; + } + while (end_time>tNP) { + Suspend(sys_winmgr_task,FALSE); + Yield; + } + LBtr(&Fs->task_flags,TASKf_IDLE); + } + Suspend(sys_winmgr_task,FALSE); +} + +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); + } +} + +U0 ScreenShotTask(I64) +{ + TaskInitExt; + MyScreenShot; +} + +U0 CtrlAltS(I64) +{ + Spawn(&ScreenShotTask); +} +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]; + StrCpy(buf1,word); + StrCpy(buf2,abbr); + + StrUtil(buf1,SUF_TO_LOWER); + StrUtil(buf2,SUF_TO_LOWER); + Grep(buf1,"/SparrowOS/"TEXT_FILE_MASK,"-l-i",buf2); + + *buf1=ToUpper(*buf1); + *buf2=ToUpper(*buf2); + Grep(buf1,"/SparrowOS/"TEXT_FILE_MASK,"-l-i",buf2); + + StrUtil(buf1,SUF_TO_UPPER); + StrUtil(buf2,SUF_TO_UPPER); + Grep(buf1,"/SparrowOS/"TEXT_FILE_MASK,"-l-i",buf2); +} + +public U0 ChkAll() +{ + U8 *ptr=TS_HDS; + while (*ptr) + ChkDsk(*ptr++); +} + +public U0 MyHAllRep(U8 *flags="-p",U8 *index=NULL) +{ + HashRep(Fs->hash_table,HTG_SRC_SYM-HTT_DEFINE_STR-HTT_CLASS,NULL,flags,0,index); +} + +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; + CDoc *doc=DocNew; + + MemSet(st,0,sizeof(st)); + MemSet(byte_bit_cnts,0,sizeof(byte_bit_cnts)); + for (i=0;i<256;i++) + for (j=0;j<7;j++) + if (Bt(&i,j)) + byte_bit_cnts[i]++; + + for (row=0;rowheight/FONT_HEIGHT;row++) { + for (col=0;colwidth/FONT_WIDTH;col++) { + + cur_char_image=0; + for (i=0;ifilename.name,out_name); + DocWrite(doc); + } + DocDel(doc); + } + } + 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/SparrowOS/Demo/AcctExample/TSDistribute.CPP new file mode 100644 index 0000000..247234c --- /dev/null +++ b/SparrowOS/Demo/AcctExample/TSDistribute.CPP @@ -0,0 +1,543 @@ +//The CFG defines are $LK,"Here","FI:::/SparrowOS/Demo/AcctExample/TSAdam.CPP.Z"$. + +U0 ShowBootFileDate(U8 drv_let) +{ + CDirEntry de; + U8 *name=MSPrintF("%c:/OSMain.BIN.C",drv_let); + if (FileFind(name,&de)) + "%s %D %T\n",name,de.datetime,de.datetime; + else + "%s\n",name; + Free(name); +} + +U0 ShowBootFiles() +{ + U8 *ptr=TS_HDS; + while (*ptr) + ShowBootFileDate(*ptr++); +} + +U8 DrvMySelect() +{ + I64 result; + ShowBootFiles; + "Drive:"; + result=ToUpper(GetChar); + NewLine; + return result; +} + +U0 CmpDrv(U8 drv_let) +{ + drv_let=ToUpper(drv_let); + Auto(TS_CFG); + InstallBoot(drv_let); + if (StrOcc(TS_MASTER_BOOT_DRVS,drv_let)) + InstallMasterBoot(drv_let); +} + +U0 QMenuBoot(U8 drv_let=0) +{ + if (!drv_let) + drv_let=Prt2Drv(Fs->cur_prt); + Drv(drv_let); + Cd("/SparrowOS/OSMain"); + Auto(TS_MENU_CFG); + if (!Cmp("OSMain","OSMain",NULL,':')) + Boot("OSMain.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) +{ + U8 buf_s[128],buf_d[128]; + src=ToUpper(src); + dst=ToUpper(dst); + + Fmt(dst,TRUE,FALSE,PT_FAT32); + + SPrintF(buf_s,"%c:/SparrowOS",src); + SPrintF(buf_d,"%c:/SparrowOS",dst); + CopyTree(buf_s,buf_d); + + SPrintF(buf_s,"%c:/Windows",src); + SPrintF(buf_d,"%c:/Windows",dst); + CopyTree(buf_s,buf_d); + + SPrintF(buf_s,"%c:/Linux",src); + SPrintF(buf_d,"%c:/Linux",dst); + CopyTree(buf_s,buf_d); + + SPrintF(buf_s,"%c:/0000Boot",src); + SPrintF(buf_d,"%c:/0000Boot",dst); + CopyTree(buf_s,buf_d); + + SPrintF(buf_d,"%c:/Temp",dst); + MkDir(buf_d); + + SPrintF(buf_d,"%c:/Temp/ScreenShots",dst); + MkDir(buf_d); + + if (ts_has_tra_drv && dst==TS_TRA_DRV_LET) { + SPrintF(buf_d,"%c:/Logs",dst); + MkDir(buf_d); + SPrintF(buf_d,"%c:/Logs/SPARROWOSLogs",dst); + MkDir(buf_d); + } + DocClear; + Drv(dst); + CmpDrv(dst); +} + +U0 PmtMyCopyDrv() +{ + U8 src,dst; + "$$FG,RED$$\nCopy Src Drive:\n$$FG$$"; + src=DrvMySelect; + "$$FG,RED$$\nCopy Dst Drive:\n$$FG$$"; + dst=DrvMySelect; + MyCopyDrv(src,dst); +} + +public U0 FileCursorRem(U8 *filename) +{ + CDoc *doc; + doc=DocRead(filename,DOCF_PLAIN_TEXT|DOCF_NO_CURSOR); + DocWrite(doc); + DocDel(doc); +} + +public U0 FileCursorTop(U8 *filename) +{ + CDoc *doc; + doc=DocRead(filename,DOCF_PLAIN_TEXT); + doc->cur_entry=doc->root.next; + DocWrite(doc); + DocDel(doc); +} + +public U0 FilesCursorRem(U8 *mask="*") +{ + I64 fuf_flags=0; + 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); + CDirEntryDel(tempm); + tempm=tempm1; + } +} + +public U0 FilesCursorTop(U8 *mask="*") +{ + I64 fuf_flags=0; + 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); + CDirEntryDel(tempm); + tempm=tempm1; + } +} + +U0 UncollapseFile(U8 *filename,I64 *) +{ + CDoc *doc=DocRead(filename,DOCF_NO_CURSOR); + DocCollapse(FALSE,doc); + DocWrite(doc); + DocDel(doc); +} + +U0 UncollapseList(CDirEntry *tempm1,I64 *flags) +{ + CDirEntry *tempm2; + while (tempm1 && !Bt(flags,FUf_CANCEL)) { + tempm2=tempm1->next; + if (tempm1->attr & _ATTR_DIR) { + if (tempm1->sub) { + "%S %s\n","ST_SCANNING_DIR",tempm1->full_name; + UncollapseList(tempm1->sub,flags); + } + } else + UncollapseFile(tempm1->full_name,flags); + CDirEntryDel(tempm1); + tempm1=tempm2; + } +} + +U0 Uncollapse(U8 *files_find_mask=TEXT_FILE_MASK,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); +} + +U0 CopySongDir(U8 *files_find_mask,U8 threshold) +{ + CDoc *s; + CDocEntry *doc_e; + CDirEntry *tempm,*tempm1; + tempm1=tempm=FilesFind(files_find_mask); + while (tempm1) { + 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"); + tempm1=tempm1->next; + } + CDirListDel(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); +} + +U0 PrepForDistribution() +{ + Del("/SparrowOS/Demo/WebLogExample/WebLog.TXT.Z"); + Del("/SparrowOS/Demo/GameStarters/EagleDive.BIN.Z"); + DelTree("/SparrowOS/Accts/*Temp.TXT.Z"); + CopySongs; + +//User + Del("/SparrowOS/Accts/User/Registry.CPP.Z"); + +//Install + Del("/SparrowOS/Accts/Install/Registry.CPP.Z"); + +//SafeMode + Del("/SparrowOS/Accts/SafeMode/Registry.CPP.Z"); + + Touch("/SparrowOS/Accts/PersonalMenu.TXT.Z","+T"); +//TS + Touch("/SparrowOS/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*"); + + Cd("/SparrowOS"); + FilesCursorTop; + + DelTree("/SparrowOS/Demo/*.BI?"); + + Cd("/SparrowOS"); + S2T(SRC_FILE_MASK,"+r"); + Move(WSD_DEF_FILENAME,WSD_DEF_FILENAME_Z); +} + +U0 PrepForInHouse() +{ + Drv(TS_MAIN_DRV_LET); + PrepForDistribution; + Auto(TS_CDROM_CFG); + InstallBoot(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 ":/Windows","/Windows"); + CopyTree(TS_MAIN_DRV ":/Linux","/Linux"); + MkDir("/Temp"); + MkDir("/Temp/ScreenShots"); + CopyTree(TS_MAIN_DRV ":/0000Boot","/0000Boot"); +} + +U0 MakeSymbolFiles() +{ + CDoc *doc; + U8 *st; + if (ts_has_tra_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"); + DocWrite(doc); + StrCpy(doc->filename.name,st); + Free(st); + } + DocClear; + DocMax; + 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"); + DocWrite(doc); + StrCpy(doc->filename.name,st); + Free(st); + } + DocClear; + } +} + +I64 MakeLineCntFile() +{ + U8 *st; + CDoc *doc; + I64 result; + CDocEntry *tree_branch,*start_indent,*end_indent; + + DocClear; + Drv(TS_MAIN_DRV_LET); + PrepForDistribution; + + DocMax; + DocClear; + Cd(TS_MAIN_DRV ":/SparrowOS"); + result=LineCntRep; + if (doc=DocCur) { + st=StrNew(doc->filename.name); + StrCpy(doc->filename.name,TS_MAIN_DRV ":/SparrowOS/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"); + 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); + + st=MSPrintF("%,d",result); + DefineLoad("DD_SPARROWOS_LOC",st); + Free(st); + + DocWrite(doc); + DocDel(doc); + + "Total LOC:%12,d\n\n",result; + return result; +} + +U0 PrepForProduction(U8 *auto_cfg) +{ + Drv(TS_MAIN_DRV_LET); + PrepForDistribution; + Auto(auto_cfg); + InstallBoot(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 ":/Windows","/Windows"); + CopyTree(TS_MAIN_DRV ":/Linux","/Linux"); + MkDir("/Temp"); + DelTree("/SparrowOS/Accts/TS"); + CopyTree(TS_MAIN_DRV ":/0000Boot","/0000Boot"); + Del("/0000Boot/OldMBR.BIN.C"); + Del("/0000Boot/BootMHD2.BIN.C"); +} + +U0 MakeInHouseCDImage() +{ + PrepForInHouse; + CDFileCreate(TS_ISO_NAME,TS_IMG_DRV ":/*",NULL,BOOTCD_BIN_Z); + Drv(TS_MAIN_DRV_LET); +} + +U0 MakeProductionCDImage() +{ + PrepForProduction(PROD_CDROM_CFG); + CDFileCreate(TS_ISO_NAME,TS_IMG_DRV ":/*",NULL,BOOTCD_BIN_Z); + Drv(TS_MAIN_DRV_LET); +} + +U0 TSWebFile(U8 *name) +{ + U8 *name2; + CDirEntry de; + if (FileFind(name,&de)) { + "File:%s\n",name; + UncollapseFile(name,NULL); + Touch(name,"",NULL,de.datetime); + name2=ChgExt(name,"html"); + ToHtml(name,name2, + "The Sparrow Operating System\n" + "\n" + ); + Touch(name2,"",NULL,de.datetime); + Free(name2); + } +} + +U0 MakeWebSite() +{ + CDirEntry *tempm,*tempm2; + if (ts_has_tra_drv) { + DocClear; + Cd(TS_TRA_DRV ":/Wb"); + tempm=tempm2=FilesFind(TEXT_FILE_MASK,FUF_RECURSE|FUF_FLATTEN_TREE|FUF_JUST_FILES); + while (tempm) { + TSWebFile(tempm->full_name); + tempm=tempm->next; + } + CDirListDel(tempm2); + Drv(TS_MAIN_DRV_LET); + } +} + +U0 ToWeb(U8 *name) +{ + U8 *st,*st2; + if (ts_has_tra_drv) { + st=FileNameAbs(name); + if (!StrNCmp(st+1,":/SparrowOS/",12)) { + st2=MSPrintF(TS_TRA_DRV":/Wb/%s",st+13); + "%s\n",st2; + Copy(name,st2); + TSWebFile(st2); + Free(st2); + } + Free(st); + } +} + +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); + while (tempm) { + tempm1=tempm->next; + st=StrNew(tempm->full_name); + StrLastRem(st,"."); + Move(tempm->full_name,st); + Free(st); + CDirEntryDel(tempm); + tempm=tempm1; + } + FilesCursorRem(TS_TRA_DRV ":/Uncompressed/" TEXT_FILE_MASK); + } +} + +U0 MakeBack() +{ + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + 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"); + DocClear; + MakeInHouseCDImage; + DocClear; + Copy(TS_ISO_NAME,TS_TRA_DRV ":/Wb/SparrowOSTS.ISO"); + MakeProductionCDImage; + DocClear; + Copy(TS_ISO_NAME,TS_TRA_DRV ":/Wb/SparrowOSCD.ISO"); + Cd(TS_MAIN_DRV ":/SparrowOS"); + if (LinkChk) + throw; + MakeSymbolFiles; + MakeWebSite; + TSUncompress; + } + ChkAll; + SettingsPop; +} + +public U0 TSMount() +{ + 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); + } + 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); + } + Kill(task); +} + + +public U0 TSUpdate() +{ + TSMount; + TSCopy; +} + +public U0 TSInstall() +{ + TSPrtDsk; + TSCopy; +} + diff --git a/SparrowOS/Demo/AcctExample/TSIDComputer.CPP b/SparrowOS/Demo/AcctExample/TSIDComputer.CPP new file mode 100644 index 0000000..3a84230 --- /dev/null +++ b/SparrowOS/Demo/AcctExample/TSIDComputer.CPP @@ -0,0 +1,7 @@ +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 new file mode 100644 index 0000000..3a84230 --- /dev/null +++ b/SparrowOS/Demo/AcctExample/TSIDDft.CPP @@ -0,0 +1,7 @@ +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/Asm/AsmAndC.CPP b/SparrowOS/Demo/Asm/AsmAndC.CPP new file mode 100644 index 0000000..cde8483 --- /dev/null +++ b/SparrowOS/Demo/Asm/AsmAndC.CPP @@ -0,0 +1,83 @@ +/* +This is a JIT file, not static. + +Asm labels can only be defined once +in a task. Hit F5 to spawn a new task +and run it. +*/ + +asm { +//Opcodes are slightly different to make writing my x86_64 assembler easier. +//See $LK,"::/SparrowOS/Compiler/OpCodes.TXT.Z","FI:::/SparrowOS/Compiler/OpCodes.TXT.Z"$. +USE64 //Defaults to 64, but this is a good habit. + IMPORT Beep; + +_BEEPS:: +//You can clobber RAX,RBX,RCX,RDX,R8,R9 in a pure asm subroutine. + ENTER 0 + MOV RCX,U64 SF_ARG1[RBP] //$LK,"SF_ARG1","FF:::/SparrowOS/OSMain/Adam1a.HPP.Z,SF_ARG1"$ + +@@05: PUSH RCX +//U0 Beep(I64 freq=500,Bool busy=FALSE) + PUSH FALSE //Do not busy (spin) wait + PUSH 500 //Hz + CALL Beep + POP RCX + LOOP @@05 + + LEAVE +//Return vals are in RAX if you have one. + RET1 8 +} + + +//_extern binds a asm sym to a function. +//My convention is to put an underscore +//on C callable routines. +_extern _BEEPS U0 Beeps(I64 cnt); + +I64 AsmAndC() +{ + I64 noreg i; //Normally this would be stored in a reg + //Check with $LK,"Uf","MN:Uf"$("AsmAndC"). + + i=PmtI64("Num of beeps 1-5 (%d):",3,1,5); + Beeps(i); + + asm { +//You can clobber RAX,RBX,RCX,RDX, but preserve the rest for code in a C+ routine. +USE64 //Defaults to 64, but this is a good habit. + IMPORT Snd; + MOV RCX,&i[RBP] //You can clobber RAX,RBX,RCX,RDX. + //You better preserve the rest. + +@@05: PUSH RCX +//U0 Snd(F64 freq,I64 waveform=WF_SQUARE,F64 amp=1.0); + MOV RAX,1.0 //amplitude + PUSH RAX + PUSH WF_SQUARE + + MOV RAX,RCX //freq=loop*100.0+100.0 + IMUL2 RAX,100 //SparrowOS uses nonstandard opcodes + //to avoid multiple form of the same one. + //See $LK,"::/SparrowOS/Compiler/OpCodes.TXT.Z","FI:::/SparrowOS/Compiler/OpCodes.TXT.Z"$. + //$BK,1$Asm is kind-of a bonus -- there's no reason$BK,0$ + //$BK,1$to use it, but I need it for the kernel.$BK,0$ + ADD RAX,100 + PUSH RAX + FILD U64 [RSP] //Convert from int to floating + FSTP U64 [RSP] + + CALL Snd + + MOV RCX,0x20000000 //Simple delay loop +@@10: LOOP @@10 + + POP RCX + LOOP @@05 + } + Snd(0); + return i; +} + +"Beeps:%d\n",AsmAndC; diff --git a/SparrowOS/Demo/Asm/AsmAndC2.CPP b/SparrowOS/Demo/Asm/AsmAndC2.CPP new file mode 100644 index 0000000..8681e42 --- /dev/null +++ b/SparrowOS/Demo/Asm/AsmAndC2.CPP @@ -0,0 +1,98 @@ +/* +This is a JIT file, not static. + +Asm labels can only be defined once +in a task. Hit F5 to spawn a new task +and run it. +*/ + +//This is to demo glbl var access. +//Glbs defined elsewhere can accessed too, like sys_jiffies. +I64 glbl_hz=400,glbl_hz_step=100,glbl_hz_base=100; + +asm { +//Opcodes are slightly different to make writing my x86_64 assembler easier. +//See $LK,"::/SparrowOS/Compiler/OpCodes.TXT.Z","FI:::/SparrowOS/Compiler/OpCodes.TXT.Z"$. +USE64 //Defaults to 64, but this is a good habit. + + +//See $LK,"::/SparrowOS/OSMain/Str1a.CPP.Z","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,1"$ and $LK,"::/SparrowOS/OSMain/Utils1a.CPP.Z","FI:::/SparrowOS/OSMain/Utils1a.CPP.Z"$. +//These are asm syms and must be imported to work properly. +//When in doubt, import syms. + IMPORT PUT_STR,PUT_CHAR,PUT_HEX_U64; + +JIFFIES_MSG: DU8 "Jiffies:",0; + +_BEEPS2:: +//You can clobber RAX,RBX,RCX,RDX,R8,R9 in a pure asm subroutine. + ENTER 0 + MOV RCX,U64 SF_ARG1[RBP] //$LK,"SF_ARG1","FF:::/SparrowOS/OSMain/Adam1a.HPP.Z,SF_ARG1"$ + + PUSH U64 [&sys_jiffies] + +@@05: PUSH RCX +//U0 Beep(I64 freq=500,Bool busy=FALSE) + PUSH FALSE //Do not busy (spin) wait + PUSH U64 [&glbl_hz] //evaluated at run time + CALL &Beep + POP RCX + LOOP @@05 + + PUSH RSI //we must preserve this register. + MOV RSI,JIFFIES_MSG + CALL PUT_STR + POP RSI + + POP RAX + SUB RAX,U64 [&sys_jiffies] + NEG RAX + CALL PUT_HEX_U64 + MOV RAX,CH_NEW_LINE + CALL PUT_CHAR + + LEAVE + RET1 8 +} + +//My convention is to put an underscore +//on C callable routines. +_extern _BEEPS2 U0 Beeps2(I64 cnt); + +U0 AsmAndC2() +{ + I64 reg R15 i; + + i=PmtI64("$$FG,PURPLE$$\n\nNum of beeps 1-5 (%d):$$FG$$",3,1,5); + Beeps2(i); + + asm { +LIST +//You can clobber RAX,RBX,RCX,RDX, but preserve the rest for code in a C+ routine. +USE64 //Defaults to 64, but this is a good habit. + MOV RCX,R15 //You can clobber RAX,RBX,RCX,RDX. + //You better preserve the rest. +@@05: PUSH RCX +//U0 Snd(F64 freq,I64 waveform=WF_SQUARE,F64 amp=1.0); + MOV RAX,1.0 //amplitude + PUSH RAX + PUSH WF_SQUARE + + MOV RAX,RCX //freq=loop*100.0+100.0 + IMUL2 RAX,glbl_hz_step //evaluated at compile ttime + ADD RAX,U64 [&glbl_hz_base] //evaluated at run time + PUSH RAX + FILD U64 [RSP] //Convert from int to floating + FSTP U64 [RSP] + + CALL &Snd //We can skip IMPORT for this symbol if JIT. + + MOV RCX,0x20000000 //Simple delay loop +@@10: LOOP @@10 + + POP RCX + LOOP @@05 + } + Snd(0); +} + +AsmAndC2; diff --git a/SparrowOS/Demo/Asm/AsmHelloWorld.CPP b/SparrowOS/Demo/Asm/AsmHelloWorld.CPP new file mode 100644 index 0000000..cdd11bc --- /dev/null +++ b/SparrowOS/Demo/Asm/AsmHelloWorld.CPP @@ -0,0 +1,52 @@ +/* +This is a JIT file, not static. + +Asm labels can only be defined once +in a task. Hit F5 to spawn a new task +and run it. + +These are many useful kernel +routines $LK,"::/SparrowOS/OSMain/Str1a.CPP.Z","FF:::/SparrowOS/OSMain/Str1a.CPP.Z,PUT_CHAR"$ +intended to be called from +asm. Generally, they preserve +regs. + +You can call any routine you +like, C or asm, if you import it. +Be aware that C routines do not +preserve RAX,RBX,RCX,RDX,R8,R9. +When calling from the shell or +from C, preserve all other regs. + +*/ + +asm { +//Opcodes are slightly different to make writing my x86_64 assembler easier. +//See $LK,"::/SparrowOS/Compiler/OpCodes.TXT.Z","FI:::/SparrowOS/Compiler/OpCodes.TXT.Z"$. + +USE64 //Defaults to 64, but this is a good habit. + + IMPORT PUT_HEX_U8,PUT_CHAR; + +MY_MSG: +//Define U8 does not put terminating zeros +//on strings. + DU8 "Hello World\n",0; + +//My convention is to put an underscore +//on C callable routines. +_HELLO_WORLD:: + MOV RCX,10 +@@05: MOV RAX,RCX + CALL PUT_HEX_U8 + MOV RAX,CH_SPACE + CALL PUT_CHAR + MOV RSI,MY_MSG +//Alternatively, if you use an '&', you don't need +//to import a SYS_SYM. This only works for JIT asm. + CALL &PUT_STR + LOOP @@05 + RET +}; + +Call(_HELLO_WORLD); diff --git a/SparrowOS/Demo/Asm/BuzzFizz.CPP b/SparrowOS/Demo/Asm/BuzzFizz.CPP new file mode 100644 index 0000000..d5e9ee8 --- /dev/null +++ b/SparrowOS/Demo/Asm/BuzzFizz.CPP @@ -0,0 +1,48 @@ +#define RANGE_START 1 +#define RANGE_END 100 + +#define FIZZ_SPAN 6 +#define BUZZ_SPAN 7 + +asm { +MSG_BUZZ: DU8 "BUZZ\n\0"; +MSG_FIZZ: DU8 "FIZZ\n\0"; +MSG_BUZZ_FIZZ: DU8 "BUZZ_FIZZ\n\0"; +MSG_NEW_LINE: DU8 "\n\0"; + +_BUZZ_FIZZ:: + ENTER 0 //Always use Enter/Leave + PUSH ESI //RSI must be preserved. This instruction is 64-bit. + MOV RAX,RANGE_START + MOV DX,(FIZZ_SPAN-RANGE_START%FIZZ_SPAN+1)<<8+ + (BUZZ_SPAN-RANGE_START%BUZZ_SPAN+1) + +@@05: DEC DH + JNZ @@10 + MOV DH,FIZZ_SPAN + MOV ESI,MSG_FIZZ + DEC DL + JNZ @@20 + MOV DL,BUZZ_SPAN + MOV ESI,MSG_BUZZ_FIZZ + JMP @@20 + +@@10: DEC DL + JNZ @@15 + MOV DL,BUZZ_SPAN + MOV ESI,MSG_BUZZ + JMP @@20 + +@@15: CALL &PUT_HEX_U64 + MOV ESI,MSG_NEW_LINE +@@20: CALL &PUT_STR + + INC RAX + CMP RAX,RANGE_END //Actually only a 32-bit instruction. + JBE @@05 + POP ESI + LEAVE + RET +} + +Call(_BUZZ_FIZZ); diff --git a/SparrowOS/Demo/Asm/DivByHand.CPP b/SparrowOS/Demo/Asm/DivByHand.CPP new file mode 100644 index 0000000..32fa319 --- /dev/null +++ b/SparrowOS/Demo/Asm/DivByHand.CPP @@ -0,0 +1,23 @@ + + +asm { +DIV_U64_BY_U64:: + ENTER 0 + XOR RDX,RDX + MOV RCX,64 + MOV RAX,SF_ARG1[RBP] + MOV RBX,SF_ARG2[RBP] +@@1: SHL1 RAX + RCL1 RDX + CMP RBX,RDX + JA @@2 + INC RAX + SUB RDX,RBX +@@2: LOOP @@1 + LEAVE + RET1 16 +} + +_extern DIV_U64_BY_U64 I64 DivU64ByU64(I64 dividend,I64 divisor); + +"123456/10=%d\n",DivU64ByU64(123456,10); \ No newline at end of file diff --git a/SparrowOS/Demo/Asm/MulByHand.CPP b/SparrowOS/Demo/Asm/MulByHand.CPP new file mode 100644 index 0000000..fa314e5 --- /dev/null +++ b/SparrowOS/Demo/Asm/MulByHand.CPP @@ -0,0 +1,70 @@ +/* +When I was a kid with a Commodore 64, +the 6502 chip had no multiply instruction +and this is how we had to do it, except, +I used more regs in this example. +*/ +asm { +//Opcodes are slightly different to make writing my x86_64 assembler easier. +//See $LK,"::/SparrowOS/Compiler/OpCodes.TXT.Z","FI:::/SparrowOS/Compiler/OpCodes.TXT.Z"$. + +USE64 //Defaults to 64, but this is a good habit. + +//You can clobber RAX,RBX,RCX,RDX,R8,R9 + +MUL_BY_HAND_U8_U8_TO_U16: //This is only for fun. +//8bit * 8bit-->16bit +//AL*BL-->AX + MOV CL,8 + SHL AX,8 +@@05: SHL1 AX + JNC @@10 + ADD AL,BL +@@10: DEC CL + JNZ @@05 + RET + +_MUL_BY_HAND_U8_U8_TO_U16:: //C callable + ENTER 0 + MOV AL,U8 SF_ARG1[RBP] //$LK,"SF_ARG1","FF:::/SparrowOS/OSMain/Adam1a.HPP.Z,SF_ARG1"$ + MOV BL,U8 SF_ARG2[RBP] + CALL MUL_BY_HAND_U8_U8_TO_U16 + MOVZX RAX,AX + LEAVE + RET1 16 + +_MUL_U64_U64_TO_U128:: +//64bit * 64bit-->128bit + ENTER 0 + MOV RBX,U64 SF_ARG3[RBP] + MOV RAX,U64 SF_ARG1[RBP] //$LK,"SF_ARG1","FF:::/SparrowOS/OSMain/Adam1a.HPP.Z,SF_ARG1"$ + MUL U64 SF_ARG2[RBP] //Result RDX:RAX 128bit + MOV U64 [RBX],RAX + MOV U64 8[RBX],RDX + LEAVE + RET1 24 +}; + +//My convention is to put an underscore +//on C callable routines. +_extern _MUL_BY_HAND_U8_U8_TO_U16 U16 MulU8(U8 n1,U8 n2); + +class U128 +{ + U64 lo,hi; +}; + +_extern _MUL_U64_U64_TO_U128 U0 MulU64(I64 n1,I64 n2,U128 *_prod); + +U0 MulByHand() +{ + U128 p; + "2*7 =0x%X\n",MulU8(2,7); + "100*10=0x%X\n",MulU8(100,10); + + MulU64(0x0123456789ABCDEF,0x1000001,&p); + "0x0123466789ABCDEF*0x1000001=0x%016X%016X\n",p.hi,p.lo; +} + +MulByHand; + diff --git a/SparrowOS/Demo/Asm/PutDec.CPP b/SparrowOS/Demo/Asm/PutDec.CPP new file mode 100644 index 0000000..30d725c --- /dev/null +++ b/SparrowOS/Demo/Asm/PutDec.CPP @@ -0,0 +1,43 @@ +asm { +PUT_DEC_U64:: +//RAX is number to print in decimal. +//Preserves all regs. + ENTER 24 //24 char buffer on stack + PUSH_C_REGS //$LK,"Save regs","FF:::/SparrowOS/OSMain/Adam1a.HPP.Z,PUSH_C_REGS"$ which C code is free to clobber + PUSH RSI //This reg is not saved. + LEA RSI,-1[RBP] //Load addr of end of buffer. + //We picked RSI because of PUT_STR + //We'll move backward + MOV U8 [RSI],0 //Terminator + + OR RAX,RAX //Special case -- zero + JNZ @@05 + DEC RSI + MOV U8 [RSI],'0' + JMP @@15 + +@@05: MOV RBX,10 //Divides by 10 + +@@10: XOR RDX,RDX + DIV RBX //RAX=(RDX:RAX)/RBX with remainder in RDX + ADD RDX,'0' + DEC RSI + MOV U8 [RSI],DL + OR RAX,RAX + JNZ @@10 + +@@15: CALL &PUT_STR + POP RSI + POP_C_REGS + LEAVE + RET + +_DO_IT:: //The convention is C-callable routines have underscores. + MOV RAX,122333221 + CALL PUT_DEC_U64 + PUSH 1 + CALL &NewLine //Print one carriage return + RET +} + +Call(_DO_IT); diff --git a/SparrowOS/Demo/AutoFile/AFDir.AUT b/SparrowOS/Demo/AutoFile/AFDir.AUT new file mode 100644 index 0000000..43d893a --- /dev/null +++ b/SparrowOS/Demo/AutoFile/AFDir.AUT @@ -0,0 +1,15 @@ +/* To run this, do a directory, right click on +this file's name and select "AutoFile". +Or, type $LK,"AutoFile","MN:AutoFile"$(filename); +See $LK,"AutoFile","FF:::/SparrowOS/Doc/Glossary.TXT.Z,AutoFile"$ in the glossary for more info. +*/ + + +I64 i; +for (i=0;i<3;i++) + "Dir;\n"; + +"$$FG,RED$$//Press a letter to complete the mask$$FG$$\n"; +"Dir(\"*."; +I64 ch=GetChar(NULL,FALSE); //Prompt for first digit of mask +"%c*\");\n",ch; \ No newline at end of file diff --git a/SparrowOS/Demo/AutoFile/AFEd.AUT b/SparrowOS/Demo/AutoFile/AFEd.AUT new file mode 100644 index 0000000..0bd2e30 --- /dev/null +++ b/SparrowOS/Demo/AutoFile/AFEd.AUT @@ -0,0 +1,28 @@ +/* To run this, do a directory, right click on +this file's name and select "AutoFile". +Or, type $LK,"AutoFile","MN:AutoFile"$(filename); +See $LK,"AutoFile","FF:::/SparrowOS/Doc/Glossary.TXT.Z,AutoFile"$ in the glossary for more info. + +This autofile will renum the defines in +AFEd.TXT.Z. Test it by numbering a few wrong +and running this demo. + +*/ + +U8 i; + +"Ed(\"AFEd.TXT.Z\");\n"; +//Go to start of file +Msg(MSG_KEY_DOWN,0,SC_CURSOR_UP|SCF_CTRL); +for (i=0;i<=0xC3;i++) { + if (i) + Msg(MSG_KEY_DOWN_UP,0,SC_F3); + else + "%c0x%c",CH_CTRLF,CH_ESC; + Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT); + Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT); + "%02X",i; + Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT); + Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT); + "%c%c",CH_BACKSPACE,CH_BACKSPACE; +} diff --git a/SparrowOS/Demo/AutoFile/AFEd.TXT b/SparrowOS/Demo/AutoFile/AFEd.TXT new file mode 100644 index 0000000..d88dc0b --- /dev/null +++ b/SparrowOS/Demo/AutoFile/AFEd.TXT @@ -0,0 +1,230 @@ +//Intermediate compiler codes +#define IC_END 0x00 +#define IC_START 0x01 +#define IC_NOP 0x02 +#define IC_END_EXP 0x03 +#define IC_NOP1 0x04 +#define IC_LABEL 0x05 +#define IC_CALL_START 0x06 +#define IC_CALL_END 0x07 +#define IC_CALL_END2 0x08 +#define IC_RETURN_VAL 0x09 +#define IC_RETURN_VAL2 0x0A +#define IC_IMM 0x0B +#define IC_F64 0x0C +#define IC_STR_CONST 0x0D +#define IC_ABS_ADDR 0x0E +#define IC_ADDR_IMPORT 0x0F +#define IC_HEAP_GLBL 0x10 +#define IC_SIZEOF 0x11 +#define IC_TYPE 0x12 +#define IC_GET_LABEL 0x13 +#define IC_RBP 0x14 +#define IC_REG 0x15 +#define IC_FS 0x16 +#define IC_GS 0x17 + +#define IC_LEA 0x18 +#define IC_MOV 0x19 + +#define IC_TO_I64 0x1A +#define IC_TO_F64 0x1B +#define IC_TO_BOOL 0x1C +#define IC_TOUPPER 0x1D +#define IC_NATIVE_TYPECAST 0x1E + +#define IC_ADDR 0x1F +#define IC_COM 0x20 +#define IC_NOT 0x21 +#define IC_UNARY_MINUS 0x22 + +#define IC_DEREF 0x23 +#define IC_DEREF_PP 0x24 +#define IC_DEREF_MM 0x25 +#define IC__PP 0x26 +#define IC__MM 0x27 +#define IC_PP_ 0x28 +#define IC_MM_ 0x29 + +#define IC_SHL 0x2A +#define IC_SHR 0x2B +#define IC_SHL_CONST 0x2C +#define IC_SHR_CONST 0x2D +#define IC_POWER 0x2E + +#define IC_MUL 0x2F +#define IC_DIV 0x30 +#define IC_MOD 0x31 + +#define IC_AND 0x32 + +#define IC_OR 0x33 +#define IC_XOR 0x34 + +#define IC_ADD 0x35 +#define IC_SUB 0x36 +#define IC_ADD_CONST 0x37 +#define IC_SUB_CONST 0x38 + +#define IC_EQUAL_EQUAL 0x39 +#define IC_NOT_EQUAL 0x3A +#define IC_LESS 0x3B +#define IC_GREATER 0x3C +#define IC_LESS_EQUAL 0x3D +#define IC_GREATER_EQUAL 0x3E +#define IC_PUSH_CMP 0x3F + +#define IC_AND_AND 0x40 + +#define IC_OR_OR 0x41 +#define IC_XOR_XOR 0x42 + +#define IC_COLON 0x43 +#define IC_QUESTION 0x44 + +#define IC_ASSIGN 0x45 +#define IC_ASSIGN_PP 0x46 +#define IC_ASSIGN_MM 0x47 + +#define IC_SHL_EQUAL 0x48 +#define IC_SHR_EQUAL 0x49 +#define IC_MUL_EQUAL 0x4A +#define IC_DIV_EQUAL 0x4B +#define IC_MOD_EQUAL 0x4C +#define IC_AND_EQUAL 0x4D +#define IC_OR_EQUAL 0x4E +#define IC_XOR_EQUAL 0x4F +#define IC_ADD_EQUAL 0x50 +#define IC_SUB_EQUAL 0x51 + +#define IC_JMP 0x52 +#define IC_SWITCH 0x53 +#define IC_NOBOUND_SWITCH 0x54 + +#define IC_ADD_RSP 0x55 +#define IC_ADD_RSP1 0xC1 +#define IC_ENTER 0x56 +#define IC_PUSH_REGS 0x57 +#define IC_POP_REGS 0x58 +#define IC_LEAVE 0x59 +#define IC_RET 0x5A + +#define IC_CALL 0x5B +#define IC_CALL_INDIRECT 0x5C +#define IC_CALL_INDIRECT2 0x5D +#define IC_CALL_IMPORT 0x5E +#define IC_CALL_EXTERN 0x5F +#define IC_IRQ 0x60 + +#define IC_ASM 0x61 +#define IC_CLI 0x62 +#define IC_STI 0x63 +#define IC_PREEMPT 0x64 +#define IC_CLD 0x65 +#define IC_STD 0x66 +#define IC_HLT 0x67 +#define IC_PUSHFD 0x68 +#define IC_POPFD 0x69 +#define IC_PAUSE 0x6A + +#define IC_CLFLUSH 0x6B +#define IC_INVLPG 0x6C +#define IC_WBINVD 0x6F +#define IC_INVD 0x70 + +#define IC_INU8 0x71 +#define IC_INU16 0x72 +#define IC_INU32 0x73 +#define IC_OUTU8 0x74 +#define IC_OUTU16 0x75 +#define IC_OUTU32 0x76 + +#define IC_GET_FLAGS 0x77 +#define IC_SET_FLAGS 0x78 +#define IC_GET_RAX 0x79 +#define IC_SET_RAX 0x7A +#define IC_GET_BASE_PTR 0x7B +#define IC_SET_BASE_PTR 0x7C +#define IC_GET_STK_PTR 0x7D +#define IC_SET_STK_PTR 0x7E +#define IC_RIP 0x7F + +#define IC_RDTSC 0x80 +#define IC_HPET 0x81 + +#define IC_BT 0x82 +#define IC_BTS 0x83 +#define IC_BTR 0x84 +#define IC_BTC 0x85 +#define IC_BEQU 0x86 +#define IC_LBTS 0x87 +#define IC_LBTR 0x88 +#define IC_LBTC 0x89 +#define IC_LBEQU 0x8A +#define IC_BSF 0x8B +#define IC_BSR 0x8C + +#define IC_QUE_INS 0x8D +#define IC_QUE_INS_REV 0x8E +#define IC_QUE_REM 0x8F + +#define IC_STRLEN 0x90 +#define IC_MEMCPY 0x91 + +#define IC_MEMSET 0x92 +#define IC_MEMSET_U16 0xC2 +#define IC_MEMSET_U32 0xC3 +#define IC_MEMSET_U64 0xC4 + +#define IC_BR_ZERO 0x93 +#define IC_BR_NOT_ZERO 0x94 + +#define IC_BR_NOT_EQUAL 0x95 +#define IC_BR_EQUAL_EQUAL 0x96 +#define IC_BR_GREATER_EQUAL 0x97 +#define IC_BR_LESS_EQUAL 0x98 +#define IC_BR_GREATER 0x99 +#define IC_BR_LESS 0x9A +#define IC_BR_NOT_EQUAL2 0x9B +#define IC_BR_EQUAL_EQUAL2 0x9C +#define IC_BR_GREATER_EQUAL2 0x9D +#define IC_BR_LESS_EQUAL2 0x9E +#define IC_BR_GREATER2 0x9F +#define IC_BR_LESS2 0xA0 +#define IC_BR_AND_ZERO 0xA1 +#define IC_BR_AND_NOT_ZERO 0xA2 +#define IC_BR_AND_AND_ZERO 0xA3 +#define IC_BR_AND_AND_NOT_ZERO 0xA4 +#define IC_BR_OR_OR_ZERO 0xA5 +#define IC_BR_OR_OR_NOT_ZERO 0xA6 + +#define IC_BR_BT 0xA7 +#define IC_BR_BTS 0xA8 +#define IC_BR_BTR 0xA9 +#define IC_BR_BTC 0xAA +#define IC_BR_LBTS 0xAB +#define IC_BR_LBTR 0xAC +#define IC_BR_LBTC 0xAD +#define IC_BR_NOT_BT 0xAE +#define IC_BR_NOT_BTS 0xAF +#define IC_BR_NOT_BTR 0xB0 +#define IC_BR_NOT_BTC 0xB1 +#define IC_BR_NOT_LBTS 0xB2 +#define IC_BR_NOT_LBTR 0xB3 +#define IC_BR_NOT_LBTC 0xB4 + +#define IC_SWAP_U8 0xB5 +#define IC_SWAP_U16 0xB6 +#define IC_SWAP_U32 0xB7 +#define IC_SWAP_U64 0xB8 + +#define IC_ABS_I64 0xB9 +#define IC_SIGN_I64 0xBA +#define IC_MIN_I64 0xBB +#define IC_MIN_U64 0xBC +#define IC_MAX_I64 0xBD +#define IC_MAX_U64 0xBE +#define IC_LIMIT_I64 0xBF +#define IC_LIMIT_U64 0xC0 + +#define IC_NUM_ENTRIES 0xC5 diff --git a/SparrowOS/Demo/AutoFile/AFPopUp.CPP b/SparrowOS/Demo/AutoFile/AFPopUp.CPP new file mode 100644 index 0000000..1aa65ab --- /dev/null +++ b/SparrowOS/Demo/AutoFile/AFPopUp.CPP @@ -0,0 +1,12 @@ +/* This is not an AutoFile. It uses $LK,"AutoStr","MN:AutoStr"$ +to run text as though from an AutoFile. + + This example shows how you can drive pop-up +windows. +*/ + +Auto(" "); +"PopUp #1:%X\n",PopUpNoYes; + +AutoStr("Msg(MSG_KEY_DOWN,0,SC_CURSOR_RIGHT);'' CH_SPACE;"); +"PopUp #2:%X\n",PopUpNoYes; diff --git a/SparrowOS/Demo/AutoFile/AFPopUpWait.AUT b/SparrowOS/Demo/AutoFile/AFPopUpWait.AUT new file mode 100644 index 0000000..1941dcd --- /dev/null +++ b/SparrowOS/Demo/AutoFile/AFPopUpWait.AUT @@ -0,0 +1,26 @@ +U0 DoWait() +{ + I64 i; + for (i=0;i<3;i++) { + "PopUpNoYes;\n "; + +//Necessary after a $LK,"DocEntryRun","MN:DocEntryRun"$() +//which occurs when PopUp's close. + TaskWait; + + "\"%d\\n\\n\";\n",i; + } +} + +U0 DoNoWait() +{ + I64 i; + for (i=0;i<3;i++) + "PopUpNoYes;\n \"%d\\n\\n\";\n",i; +} + +"//With Wait ";PressAKey; +DoWait; +"//With No Wait ";PressAKey; +DoNoWait; + diff --git a/SparrowOS/Demo/AutoFile/AFProfile.AUT b/SparrowOS/Demo/AutoFile/AFProfile.AUT new file mode 100644 index 0000000..ccae52a --- /dev/null +++ b/SparrowOS/Demo/AutoFile/AFProfile.AUT @@ -0,0 +1,11 @@ +/* To run this, do a directory, right click on +this file's name and select "AutoFile". +Or, type $LK,"AutoFile","MN:AutoFile"$(filename); +See $LK,"AutoFile","FF:::/SparrowOS/Doc/Glossary.TXT.Z,AutoFile"$ in the glossary for more info. + +Profiling does not $UL,1$require$UL,0$ autofiles. +*/ +"$$FG,RED$$ProfAll;$$FG$$\n"; +"$$FG,RED$$//Collecting Data$$FG$$"; +PressAKey; +"\n$$FG,RED$$ProfRep;$$FG$$\n"; \ No newline at end of file diff --git a/SparrowOS/Demo/AutoFile/AFSetIP.CPP b/SparrowOS/Demo/AutoFile/AFSetIP.CPP new file mode 100644 index 0000000..985191d --- /dev/null +++ b/SparrowOS/Demo/AutoFile/AFSetIP.CPP @@ -0,0 +1,13 @@ +U0 AFSetIPDemo() +{ + I64 t,l; + WinBorder(ON); + l=Fs->win_pixel_left+Fs->win_scroll_x; + t=Fs->win_pixel_top+Fs->win_scroll_y; + SetIP(,,,FALSE,FALSE,FALSE); //Mouse unclicked + AFSetIP(,l-4,t-4); + AFSetIP(20,l+20,t+20,,TRUE); + SetIP(,,,FALSE,FALSE,FALSE); +} + +AFSetIPDemo; diff --git a/SparrowOS/Demo/ClassMeta.CPP b/SparrowOS/Demo/ClassMeta.CPP new file mode 100644 index 0000000..9964b4c --- /dev/null +++ b/SparrowOS/Demo/ClassMeta.CPP @@ -0,0 +1,81 @@ +//This demonstrates class meta data. +//Basically, we make use of the compiler's +//data about a class. We can add to the +//compilers data arbitrary items, either string or +//or int or F64 (if you typecast). + +//This stuff is not high performance. +//Don't get carried away -- it might be slow. + + +U0 RankOut(I64 i) +{ + " %z",i,"Cadet\0Ensign\0Captain\0Admiral\0President\0"; +} + +class Test1Struct +{ + I64 age printf_str "%2d" dft_val 38; + I64 color dft_val RED; //Accepts expressions + I64 rank printf_str "%1d" dft_val 6/2 output_fun &RankOut; +}; + +class Test2Struct +{ + I64 age printf_str "%2d" dft_val 38 percentile 54.20; + I64 rank printf_str "%1d" dft_val 5; + I64 serial_num printf_str "%6d" dft_val 123456; +}; + + +U0 DumpStruct(U8 *class_name,U8 *data) +{ + CHashClass *tempc=HashFind(class_name,Fs->hash_table,HTT_CLASS); + U8 *printf_str; + I64 *q,dft_val; + U0 (* fp_output_fun)(I64 i); + F64 percentile; + if (!tempc) return; + CMemberList *ml; + ml=tempc->member_list; + while (ml) { + "%s:",ml->str; + +//All our items are I64's. If you want, you can check +//the data type of the member var. See $LK,"ClassRep","MN:ClassRep"$(). + q=data+ml->offset; + + if (printf_str=MemberMetaData("printf_str",ml)) + "" printf_str,*q; + +//This is slightly ambiguous -- if no meta is present it will return zero. + if (dft_val=MemberMetaData("dft_val",ml)) + " default:%d",dft_val; + +//This corrects for the ambiguity, allowing zero percentile. + if (MemberMetaFind("percentile",ml)) { //check if it exists +//We could use the $LK,"CMemberListMeta","MN:CMemberListMeta"$ structure returned by +//$LK,"MemberMetaFind","MN:MemberMetaFind"$() and save a search. + percentile=MemberMetaData("percentile",ml)(F64); + " percentile: %5.2f",percentile; + } + + if (fp_output_fun=MemberMetaData("output_fun",ml)) + (*fp_output_fun)(*q); + NewLine; + ml=ml->next; + } +} + +Test1Struct t1; +t1.age=44; +t1.rank=3; + +DumpStruct("Test1Struct",&t1); + +Test2Struct t2; +t2.age=22; +t2.rank=2; +t2.serial_num=55555; + +DumpStruct("Test2Struct",&t2); diff --git a/SparrowOS/Demo/CompileDemo.CPP b/SparrowOS/Demo/CompileDemo.CPP new file mode 100644 index 0000000..bba0527 --- /dev/null +++ b/SparrowOS/Demo/CompileDemo.CPP @@ -0,0 +1,37 @@ +F64 glbl; + +F64 CompileDemo(U8 *st) +{ + I64 type; + U8 *code; + CLex *lx=LexNew(st,LF_DONT_FREE_BUF); + F64 result=0; + Lex(lx); //Gotta get it started + "Compile \"%s\"\n",st; + do { + if (code=CmpExpression(lx,&type)) { + if (type!=IT_F64) + result=ToF64(Call(code)); + else + result=Call(code)(F64); + ExpressionDel(code); + } + "result=%9.4f\n",result; + if (lx->token==';') + Lex(lx); + } while (lx->token!=TK_EOF); //end of file? + LexDel(lx); + return result; +} + +CompileDemo("2+Cos(ã)"); +CompileDemo("1;2+4"); +CompileDemo("glbl=1;glbl*2;glbl/3;Sin(glbl)"); + +//This is just like you typed-it on +//the cmd line. +ExePutS( +"I64 i;" +"for (i=0;i<10;i++) " +" \"%d\n\",i;" +); diff --git a/SparrowOS/Demo/DateTime.CPP b/SparrowOS/Demo/DateTime.CPP new file mode 100644 index 0000000..13f7cb0 --- /dev/null +++ b/SparrowOS/Demo/DateTime.CPP @@ -0,0 +1,42 @@ +/* + An $LK,"CDate","MN:CDate"$ is a signed 64-bit date/time num + representing how many 49710ths of a second + since Christ. The reason it is this crazy + num is so that 32bits is exactly one day. + + These nums can be subtracted to get time + differences. + + The time of day to the nearest 49710ths of a second + is stored in the lower 32-bits. The upper + 32-bits hold the num of days since Christ. + + $LK,"PrintF","MN:PrintF"$() and the file datetimes use + this format, otherwise you might want to + use $LK,"GetTimeStamp","MN:GetTimeStamp"$() for a higher frequency + timing, divide by $LK,"time_stamp_freq","MN:time_stamp_freq"$, + but this num is tied to your CPU's + clock frequency which is inexact when + converted to real-time. +*/ + + +CDate ltdt=GetCurTimeCDate; + +I64 i; +for (i=0;i to break. + +Rerun Program + +Press to enter Dbg. +> $LK,"Dr","MN:Dr"$; //Dump Registers +> $LK,"BptsR","MN:BptsR"$; //Clear break-points. +> $LK,"Go2","MN:Go2"$; //Cont program + + +Press to enter Dbg. +> $LK,"Uf","MN:Uf"$("DbgDemo"); +> $LK,"U","MN:U"$(RIP); + +See $LK,"Debugging","HI:Debugging"$ + +*/ + +U0 DbgDemo() +{ + I64 i=0; + while (TRUE) + if (!(i++%2000000)) + "."; +} + +DbgDemo; + diff --git a/SparrowOS/Demo/Define.CPP b/SparrowOS/Demo/Define.CPP new file mode 100644 index 0000000..6c97ce5 --- /dev/null +++ b/SparrowOS/Demo/Define.CPP @@ -0,0 +1,40 @@ +/* +See $LK,"Define","HI:Char/Define"$. +*/ + +//These might be in the Adam task. +DefineLoad("ST_YES_NO","(Yes or No)"); +DefineLoad("ST_EXIT","Exit"); +DefineListLoad("ST_NO_YES_LIST","No\0Yes\0"); + + +//New strings might be loaded for each user +//to override. + +"Spanish"; +if (YorN) { + DefineLoad("ST_YES_NO","(Si or No)"); + DefineLoad("ST_EXIT","Salida"); + DefineListLoad("ST_NO_YES_LIST","No\0Si\0"); +} + + +Bool Quit() +{ + Bool result; + U8 *st; + I64 i; + while (TRUE) { + "%S %S?","ST_EXIT","ST_YES_NO"; + st=MGetS; + i=DefineMatch(st,"ST_NO_YES_LIST",LEF_IGNORE_CASE); + if (i>=0) { + result=i; + break; + } + Free(st); + } + return result; +} + +Quit; diff --git a/SparrowOS/Demo/Digits.CPP b/SparrowOS/Demo/Digits.CPP new file mode 100644 index 0000000..ca2609f --- /dev/null +++ b/SparrowOS/Demo/Digits.CPP @@ -0,0 +1,77 @@ +//This loads a list of zero terminated +//strings into the sym table and +//gives a name to it. Strings like +//this are known as Define entries. + +//See $LK,"ST_RAINBOW_10","FF:::/SparrowOS/Adam/Gr/GrScreen.CPP.Z,ST_RAINBOW_10"$ + +U0 ShowDigit(U8 ch) +{ +//The %Z code displays a Define subentry + "$$FG,%Z$$%d$$FG$$",ch-'0',"ST_RAINBOW_10",ch-'0'; +} + +U0 ShowPattern(U8 *st) +{ + U8 ch; + while (ch=*st++) + ShowDigit(ch); + NewLine; +} + +U0 Digits() +{ + I64 num,ch,i; + U8 answer[1024]; + + DocClear; + //Set default background and foreground + "$$WW,1$$$$BD,DKGRAY$$$$FD,WHITE$$" + "\nThis is a mem game. " + "Try to remember the digits and enter them. " + "They are colored based on electrical " + "engineering color codes.\n"; + for (i=0;i<10;i++) { + "$$FG,%Z$$%d: %Z\n",i,"ST_RAINBOW_10",i,i,"ST_RAINBOW_10"; + } + "$$FG$$\n"; //set to default background + if (!PressAKey) goto dg_done; + + while (TRUE) { +restart: + num=0; + //Set to zeros so we have terminators + MemSet(answer,0,sizeof(answer)); + while (TRUE) { + DocClear; + "$$WW,1$$$$BD,DKGRAY$$$$FD,WHITE$$\n"; + "Pattern\nLength:%d\n\n",num+1; + answer[num++]=RandU32%10+'0'; + ShowPattern(answer); + if (!PressAKey) goto dg_done; + + DocClear; + "$$WW,1$$$$BD,DKGRAY$$$$FD,WHITE$$\n"; + "Guess\nLength:%d\n\n",num; + for (i=0;ilast_doc. +A second framework is kept at Fs->next_doc. +Normally, the next_doc is used for updating +the border, primarily. + +See $LK,"UseTermDoc","MN:UseTermDoc"$(). +See $LK,"DocUpdateTaskDocs","MN:DocUpdateTaskDocs"$(). + +Note: the next_doc is not to be confused +with the aux_str, a member of the $LK,"CDocEntry","MN:CDocEntry"$. + +*/ + CDoc *aux=DocAux, //Fetches Fs->next_doc basically. + *cur=DocCur; //Fetches Fs->last_doc basically. + CDocEntry *doc_e; + +// We don't want an update between +// creating the CDocEntry and defining the +// callback, so we turn-off preemption. + + Bool old_preempt=Preempt(OFF); + + DocBottom(aux); //Ins at the bottom + DocPutS(aux,"$$FG,RED$$$$CM+BY+LX,5,-3$$"); + +// The $LK,"DocPutS","MN:DocPutS"$() routine returns the addr of the last entry. + doc_e=DocPutS(aux,"$$TX+TC,\" \"$$"); +// The TC flag is "has tag callback". + +// Flags are explained here: +// $LK,"::/SparrowOS/Doc/CtrlL.TXT.Z","FI:::/SparrowOS/Doc/CtrlL.TXT.Z"$ +// $LK,"::/SparrowOS/Doc/Dollar.TXT.Z","FI:::/SparrowOS/Doc/Dollar.TXT.Z"$ +// $LK,"Dollar Flags","MN:DOCEf1_AUX_STR"$ +// $LK,"ST_DOC_FLAGS","FF:::/SparrowOS/Adam/Doc/Doc.CPP.Z,ST_DOC_FLAGS"$ + + doc_e->tag_cb=&tSCB; + DocPutS(aux,"$$FG$$"); + +//$BK,1$WARNING:$BK,0$ If you use the last_doc you +//run the risk of the user pressing +// or using the clipboard, both +//of which will crash. So, you might want +//to use the next_doc. + + DocPutS(cur,"$$FG,LTRED$$"); + doc_e=DocPutS(cur,"$$TX+TC,\" \"$$"); + doc_e->tag_cb=&CurTimeCB; + DocPutS(cur,"$$FG$$"); + + Preempt(old_preempt); + +//Send carriage return, new line, so +//that the timer string is not part +//of the next cmd on the cmd line. + NewLine; +} + + + +U0 UndoIt() +{ +//Clear-out entries without a +H hold flag. + DocBottom(Fs->next_doc); + DocPutS(Fs->next_doc,"$$CL$$"); +} + + +DoIt; + +// See $LK,"::/SparrowOS/Demo/Doc/CallBackAux2.CPP.Z","FI:::/SparrowOS/Demo/Doc/CallBackAux2.CPP.Z"$ for another way. diff --git a/SparrowOS/Demo/Doc/CallBackAux2.CPP b/SparrowOS/Demo/Doc/CallBackAux2.CPP new file mode 100644 index 0000000..199aac8 --- /dev/null +++ b/SparrowOS/Demo/Doc/CallBackAux2.CPP @@ -0,0 +1,35 @@ +//See $LK,"::/SparrowOS/Demo/Doc/CallBack.CPP.Z","FI:::/SparrowOS/Demo/Doc/CallBack.CPP.Z"$ first. + +U8 *tSCB(CDoc *,CDocEntry *,CTask *mem_task) +{ + U8 *st=MAlloc(64,mem_task); + CDate ltdt=tS*CDATE_FREQ; + SPrintF(st,"%d=%h11T",ltdt,ltdt); + return st; +} + +U0 DoIt() +{ + CDocEntry *doc_e; + CDoc *aux2=DocNew; + + aux2->flags|=DOCF_AUX_DOC; + + DocPutS(aux2,"$$FG,RED$$$$CM+BY+LX,5,-3$$"); + doc_e=DocPutS(aux2,"$$TX+TC,\" \"$$"); + doc_e->tag_cb=&tSCB; + DocPutS(aux2,"$$FG$$"); + + DocQueInsRev(aux2,DocAux); + + NewLine; +} + +U0 UndoIt() +{ + CDoc *aux2=DocAux; + DocQueRem(aux2); + DocDel(aux2); +} + +DoIt; diff --git a/SparrowOS/Demo/Doc/CursorMove.CPP b/SparrowOS/Demo/Doc/CursorMove.CPP new file mode 100644 index 0000000..29a152d --- /dev/null +++ b/SparrowOS/Demo/Doc/CursorMove.CPP @@ -0,0 +1,38 @@ +U0 CursorMovementDemo() +{ + I64 i; + for (i=0;i<100;i++) { + "%03d ",i; + "$$CM,-4,1$$"; + if (i%10==9) + "$$CM,4,-10$$"; + } + +//+LX is relative to left side. +//See with cursor-movement for all the flags. +//Check "Quote" to set-up a cmd for in quotes. + "$$CM+LX,0,+10$$\n"; +} + +CursorMovementDemo; + +//The word-wrap Off and On cmds are +//$$WW,0$$ and $$WW,1$$. + +//You might need $LK,"DocMax","MN:DocMax"$() to adjust +//the cmd line window buf size. +//It counts cmds, not lines. + +//The +H flag will hold-onto an entry +//so it doesn't get pushed-out of the document. +//This is useful for a $$WW+H,1$$ cmd. + +//See $LK,"::/SparrowOS/Doc/Dollar.TXT.Z","FI:::/SparrowOS/Doc/Dollar.TXT.Z"$ for documentation on +//all flags and cmds. + + +//Note: the default page length is 66 lines +//and branching back more than the page length +//will rst the column to 1. So, set page +//length to a large number if you want to +//branch back a long distance. diff --git a/SparrowOS/Demo/Doc/Data.CPP b/SparrowOS/Demo/Doc/Data.CPP new file mode 100644 index 0000000..5285dce --- /dev/null +++ b/SparrowOS/Demo/Doc/Data.CPP @@ -0,0 +1,64 @@ +/* + $$DA is the data widget. + -T flag is for var + width fields with a terminator + character. + +RD refreshes the data. + +UD updates the val when you edit it. + +U32 means the val is 4 bytes. + -I64 I64 is the default so we might + want to turn-it-off. Strings + use I64. + ,32 sets the tag string width. + See $LK,"Data Tag Width","FA:::/SparrowOS/Adam/Doc/DocPlain.CPP.Z,DataTagWidth"$. + -P Means it is a string var, basically. +*/ + + + +I32 i; +U8 buf[8]; + +U0 UpdateGlblTask(I64) +{ + while (TRUE) { + i++; + Sleep(1); + } +} + + +U0 DataDemo() +{ + CDocEntry *doc_e; + +//This is the command line document. + CDoc *doc=DocCur; + +//We do this to prevent access to +//doc_e->data before it is set. + Bool unlock=DocLock(doc); + +//You might set the $LK,"DOCF_FORM","MN:DOCF_FORM"$ flag. +// doc->flags|=DOCF_FORM +//if you wish. + + Spawn(&UpdateGlblTask,NULL,"Update Glbl",Fs); + + "Enter editor overstrike mode\n" + "and you can modify the val.\n" + "However, changes happen immediately,\n" + "so it's tricky.\n\n"; + //Use for the $$DA,$$ format. + doc_e=DocPutS(doc,"$$DA-T+RD+UD-I64+U32,32,\"%12d\"$$\n"); + doc_e->data=&i; + + StrCpy(buf,"Terry"); + doc_e=DocPutS(doc,"$$DA-P+RD+UD,7,\"Str:%s\"$$\n"); + doc_e->data=buf; + + if (unlock) + DocUnlock(doc); +} + +DataDemo; diff --git a/SparrowOS/Demo/Doc/DefineStr.CPP b/SparrowOS/Demo/Doc/DefineStr.CPP new file mode 100644 index 0000000..f8362b8 --- /dev/null +++ b/SparrowOS/Demo/Doc/DefineStr.CPP @@ -0,0 +1,24 @@ +/* +The +D flag causes a define-string +look-up and substitution. + +It is available in the menu +under text entries for use in +documentation. + +*/ + + +DefineLoad("COMPANY","Trivial Solutions"); +"Company: $$TX+D,\"\",\"COMPANY\"$$\n"; + +DefinePrintF("COMPANY_TIME","%T",GetCurTimeCDate); + +#exe { + StreamPrintF( + "#define COMPANY_AGE %h56D\n",GetCurTimeCDate-A2CDate("8/1/2003")); +}; + + +"Age : $$TX+D,\"\",\"COMPANY_AGE\"$$ years\n"; +"Time: $$TX+D,\"\",\"COMPANY_TIME\"$$\n"; diff --git a/LT/Demo/DemoDoc.TXZ b/SparrowOS/Demo/Doc/DemoDoc.TXT similarity index 63% rename from LT/Demo/DemoDoc.TXZ rename to SparrowOS/Demo/Doc/DemoDoc.TXT index d8797e52fd42dd9bb7763d4bcb079747d5f4877c..3c7895f2f03f31070a0b803f1b47bca9b1b2b169 100644 GIT binary patch delta 285 zcmdmCvPpG<9V6G~iEQ0Wf?O&-zB-0RDk{MNI!a19hANW-880w$ZQj5!5Z~y=Qw}Ps3Vqjo+ l^Z)<<5C#T@HUIzrw_{*nSoQz^e;)=0hD}g?AaOmAzW}y!aNYm_ literal 6712 zcmY%KaM3YUQE~GJkv_gU1}Z8+zB)!0Dk|aOI)*AC8JWcjnZ*hPiRq~dhI%|Gd?P(x zE|@@~LP~0GzCucVvYvv%s9>?eXn@c=G4OJ!`1tA=8mXuRcGYWoI7=osjjstiA0^Kx;H7XG7! z|7c49dn0{|E8aw!9UJ|7Zf{OEEAoED2a1k0#DG!)5 zLO=UBT!Qk2g?kozwfQ+*hWdNstlgiq6@4A9K>2K2c)mTj;p%V|%J+@qh~8GK;cyMg zFZ*H9q^6_}=7YkiC~v>7;0|*z9~4dttf#u`1lT!Thq`CyoAsuOd(6OmP&ggmHu-6j zjitj4sDH#x>ggoCH3Em55(5Ln5vV(1;Q-=;%thvd%=sNUr+m+U4F`}sD80QXsdyW% zZvp0m(xc2rz6keKc3?gz{a!QSZrb|a49r(xU|>jjK4;<`X^1?CZ=fiW`K#9vEU(DG zz;KIa*$0C(XD}b+E)U_K8J?21V7@W~1A|VXc={4PQ!pQtd1e4G#D5doM&=X&9{TdYl6bz@zMM0 z#)b}u|NsB5#lXNIF){K^{4pCaUz>q}!Sa{pkB1zNV7?9m14H2UD>|Nr_73=C!3q0=P!^uT-r1_p*1)_yn69<_5g z@c;jRLk0$h&1Px!LHuJcpK9{H({lh7 zLLfdYzK=uYKkz?MkU9)WC!qM;`v3obdzc~y1_n^M0OJ4VvR~m69WT7L+o3r&eQ;hUH||82k{+wQdaoR@Bs6j z85kHe;(}6~3f#cu3W(2dr1<`pkUN;~!oa{Vp+9VT??iWSIRoOC-SvCX|JvOFRL+3- zl4{oPR)25=mm?s)Q2DMiZ`V43%MB3!{&XMVzjgA0XFHw1#TvBv{Vz94lldqBw-#GkeA*5%K?J;2Eq#Gl}99eshp6P$cO{I#VyE^`hzf%zbB z!}NoyMUedI>UA+^ej@bWywl_wx!VbD-V|Q8F#R-paCQNyH|T0KFHmF;{EFqS2;R>vLA^5o4?$4QoR)@rWpVe{tX-e diff --git a/SparrowOS/Demo/Doc/FileRead.CPP b/SparrowOS/Demo/Doc/FileRead.CPP new file mode 100644 index 0000000..2a8478e --- /dev/null +++ b/SparrowOS/Demo/Doc/FileRead.CPP @@ -0,0 +1,68 @@ +public U0 DocProfile(U8 *filename,I64 flags) +{ + I64 i,*cmd_stats=CAlloc(sizeof(I64)*DOCT_NUM_TYPES), + *flags_stats=CAlloc(sizeof(I64)*64), + *type_flags_stats=CAlloc(sizeof(I64)*64); +//Note, word wrap is determined by +//doc->win_task when a $LK,"CDoc","MN:CDoc"$ is recalculated +//use $LK,"DocRecalc","MN:DocRecalc"$(). + CDoc *doc=DocRead(filename,flags); + +//doc->root which is equal to doc is the +//header of the CQue and represents the end-of-file marker. + CDocEntry *doc_e=doc->root.next; + while (doc_e!=doc) { + cmd_stats[doc_e->type_u8]++; + for (i=0;i<64;i++) + if (Bt(&doc_e->flags1,i)) + flags_stats[i]++; + for (i=16;i<32;i++) + if (Bt(&doc_e->type,i)) + type_flags_stats[i]++; + doc_e=doc_e->next; + } + DocDel(doc); + + "$$FG,PURPLE$$-------%s-------\n",filename; + "$$FG,GREEN$$The lowest byte of the 32-bit 'doc_e->type', '$$FG,PURPLE$$doc_e->type.u8[0]$$FG,GREEN$$', is cmd and accessed with the union '$$FG,PURPLE$$doc_e->type_u8$$FG,GREEN$$'. " + "See $$LK,\"CDocEntry\",\"MN:CDocEntry\"$$, " + "$$LK,\"Doc Type Defines\",\"MN:DOCT_TEXT\"$$ and $$LK,\"Doc Type Codes\",\"FF:::/SparrowOS/Adam/Doc/Doc.CPP.Z,ST_DOC_CMDS\"$$.\n$$FG$$"; + for (i=0;itype.u8[1]$$FG,GREEN$$' is the screen color attr of the entry. " + "'$$FG,PURPLE$$doc_e->type.u16[1]$$FG,GREEN$$' is some flags for blinking and stuff. " + "See $$LK,\"Doc Type Flag Defines\",\"MN:DOCET_BLINK\"$$.\n$$FG$$"; + + for (i=16;i<32;i++) + if (type_flags_stats[i]) + "%4d:%d\n",i,type_flags_stats[i]; + + "$$FG,GREEN$$\n'$$FG,PURPLE$$doc_e->flags1$$FG,GREEN$$' is 64-bit. " + "See $$LK,\"Doc Flag Defines\",\"MN:DOCEf1_AUX_STR\"$$ and $$LK,\"Doc Flag Codes\",\"FF:::/SparrowOS/Adam/Doc/Doc.CPP.Z,ST_DOC_FLAGS\"$$.\n$$FG$$"; + for (i=0;i<64;i++) + if (flags_stats[i]) + "%4Z:%d\n",i,"ST_DOC_FLAGS",flags_stats[i]; + + Free(cmd_stats); + Free(flags_stats); + PressAKey; + NewLine; +} + + +//See $LK,"TipOfDay","MN:TipOfDay"$. + +//Note: Not all $LK,"CDocEntry","MN:CDocEntry"$'s are full-sized nodes. +//Some are $LK,"MAlloc","MN:MAlloc"$ed with a smaller size to save +//mem. They all have at least the size $LK,"CDocEntryBase","MN:CDocEntryBase"$. + +//Note: $LK,"CDocEntry","MN:CDocEntry"$'s should be allocated from the +//heap of the owning task, doc->mem_task. + +//The flag arrays $LK,"doc_tag_types","MN:doc_tag_types"$, $LK,"doc_form_types","MN:doc_form_types"$, etc +//are useful. + +DocProfile("::/SparrowOS/Doc/ChangeLog.TXT.Z",0); +DocProfile("::/SparrowOS/Doc/ChangeLog.TXT.Z",DOCF_PLAIN_TEXT); diff --git a/SparrowOS/Demo/Doc/Form.CPP b/SparrowOS/Demo/Doc/Form.CPP new file mode 100644 index 0000000..0d2fb87 --- /dev/null +++ b/SparrowOS/Demo/Doc/Form.CPP @@ -0,0 +1,44 @@ +class DStruct +{ +//Use and select "Data" to generate the fmtstrs + +//The number is the field from after the ':' to the end. +// See $LK,"Data Tag Width","FA:::/SparrowOS/Adam/Doc/DocPlain.CPP.Z,DataTagWidth"$. + + F64 num1 fmtstr "$$DA-T,32,\"F64 1:%12.8f\"$$\n"; + F64 num2 fmtstr "$$DA-T,32,\"F64 2:%12e\"$$\n"; + I64 num3 fmtstr "$$DA-T,32,\"I64 1:0x%016X\"$$\n"; + I64 num4 fmtstr "$$DA-T,32,\"I64 2:%12d\"$$\n"; + U8 name[32] fmtstr "$$DA-P,31,\"Name :%s\"$$\n"; + CDate datetime fmtstr "$$DA-T,32,\"Date :%8D\"$$\n"; +}; + +U0 FormDemo() +{ + DStruct gtl; + CDate ltdt; + + gtl.num1=12.3e-4; //Set defaults + gtl.num2=4.5e3; + gtl.num3=0x1234; + gtl.num4=-567; + StrCpy(>l.name,"John"); + ltdt=GetCurTimeCDate; + gtl.datetime=ltdt; + if (DocFormDo(>l,"DStruct")) { + "#1=%e\n",gtl.num1; + "#2=%e\n",gtl.num2; + "#3=%d\n",gtl.num3; + "#4=%d\n",gtl.num4; + "Name=%s\n",gtl.name; + "Date=%D\n",gtl.datetime; + } else + "Cancel\n"; + + "\n\nClassRep Example\n"; + ClassRep("DStruct",>l); + +//See also $LK,"ClassRepD","MN:ClassRepD"$(). +} + +FormDemo; diff --git a/SparrowOS/Demo/Doc/MenuButton.CPP b/SparrowOS/Demo/Doc/MenuButton.CPP new file mode 100644 index 0000000..008d333 --- /dev/null +++ b/SparrowOS/Demo/Doc/MenuButton.CPP @@ -0,0 +1,76 @@ +//This example shows buttons. Buttons return a menu val +//unless you rig them to send macros. Menu entries are +//about the same as buttons, but don't have a border. + + +I64 PopUpFreq() +{ //See also $LK,"PopUpRangeI64","MN:PopUpRangeI64"$() + I64 i; + CDoc *doc=DocNew; + DocPutS(doc,"$$TX+CX,\"Set Freq\"$$\n" //Centered text + "$$CM+LX,2,4$$$$BT,\"100 Hz\",100$$" + "$$CM+LX,18,0$$$$BT,\"200 Hz\",200$$" + "$$CM+LX,2,4$$$$BT,\"400 Hz\",400$$" + "$$CM+LX,18,0$$$$BT,\"800 Hz\",800$$\n"); + i=PopUpMenu(doc); + if (i<0) i=0; // + DocDel(doc); + return i; +} + +#define MU_NOTHING 0 +#define MU_SET_FREQ 1 +#define MU_SND_ON 2 +#define MU_SND_OFF 3 + +U0 MenuButton() +{ + Bool done=FALSE; + I64 i,j=0,freq=100; + I64 old_flags=DocCur->flags; +//This allows keyboard navigation to skip nonselectible entries. + DocCur->flags|=DOCF_FORM; + do { + DocClear; +//Use to generate cursor movement expressions and check "Quote". + "$$CM+CX-RE,-4$$Menu Demo\n\n"; + "$$LM,8$$"; //Set left margin +//These are buttons that return a val from a menu selection. + if (!j) + "\n$$BT,\"Snd On\",MU_SND_ON$$\n\n\n"; + else + "\n$$BT,\"Snd Off\",MU_SND_OFF$$\n\n\n"; + "\n$$BT,\"Set Freq\",MU_SET_FREQ$$\n\n\n" + "\n$$BT,\"Nothing\",MU_NOTHING$$\n\n\n" + "\n$$BT,\"Done\",DOCM_CANCEL$$\n\n\n"; + i=DocMenuDo(DocCur); + DocBottom; + switch (i) { + case MU_NOTHING: + break; + case MU_SND_ON: + j=freq; + Snd(j); + break; + case MU_SND_OFF: + j=0; + Snd(j); + break; + case MU_SET_FREQ: + freq=PopUpFreq; + if (j) { + j=freq; + Snd(j); + } + break; + default: + done=TRUE; + } + } while (!done); + DocCur->flags=DocCur->flags&~DOCF_FORM | + old_flags & DOCF_FORM; + DocClear; + Snd(0); +} + +MenuButton; diff --git a/SparrowOS/Demo/Doc/MenuSprite.CPP b/SparrowOS/Demo/Doc/MenuSprite.CPP new file mode 100644 index 0000000000000000000000000000000000000000..41bc978c0d811abc0d7baa269bed1673d4a512c5 GIT binary patch literal 1126 zcmd<$;!+6?&{486v{TYCRN(@FPy+?u)V$K*f}+flR1Hn8YAyu@PcsvROlvL$1(*C} z=h7lwyR@9d^x_&@7k_8BcsKtbUuy+@edp4m;`}0oyu`B1^u&_P{5*y7%$yvB;_S=< zh1A@Fl1hb~{A931u^yL#LQ1{@$Y_X}IjM<7AoCRz{8Gz(GV@Y33^lE}xb*cQ&QK`N zEXhy+TdI(jU!;(enpUElT2WAxT3igWC^0WZAu&%OwIZ`b52PtIRYAqaTSqA+KRG@n ztt1|-(@;rA$=A;cO-x0P(=WdyRiPv!RY5gHAu|umDlRF?%u5H`1(GNR2ZlmkX>L+# z5y + "Color : $FG,4$Test$FG$\n\n" + "Blink : $BK,1$Test$BK,0$\n\n" + "Invert : $IV,1$Test$IV,0$\n\n" + "UnderLine: $UL,1$Test$UL,0$\n\n" +// on this link to toggle individual commands. + "Link : $LK,"Genesis,1:1","BF:Genesis,1:1"$\n\n\n" + + + "Button : $BT,"OKAY",1$\n\n\n\n"; diff --git a/SparrowOS/Demo/Doc/TreeDemo.CPP b/SparrowOS/Demo/Doc/TreeDemo.CPP new file mode 100644 index 0000000..0183a45 --- /dev/null +++ b/SparrowOS/Demo/Doc/TreeDemo.CPP @@ -0,0 +1,31 @@ +/* +This uses DocPutS/DocPrintF because updates +to within a tree while a tree is collapsed get +messed-up if "live"(like using ordinary PrintF/PutS.) +The insert point is confused by hiding of +data in collapsed trees. Therefore, the window main +Doc is taken off-line by disabling preemption so there +are no screen updates until all data has been inserted. + +There is a special Doc function which is also +available to take an Doc off-line. See $LK,"DocInsSafe","MN:DocInsSafe"$. +For this example, however, I wanted to use DocPrintF +and disabled Preemption myself. +*/ + +#include "/SparrowOS/Demo/Shared/TreeDemoJoin" + +U0 TreeDemo() +{ + I64 fuf_flags=0; + CDoc *doc=DocNew; + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); + DocPutS(doc,"$$TR-C+AL,\"\"$$\n"); + DocPutS(doc,"$$ID,+2$$"); + TreeSub(doc,FilesFind("/SparrowOS/*",fuf_flags)); + DocPutS(doc,"$$ID,-2$$"); + DocInsDoc(DocCur,doc); + DocDel(doc); +} + +TreeDemo; diff --git a/SparrowOS/Demo/Doc/UnusedDefine.CPP b/SparrowOS/Demo/Doc/UnusedDefine.CPP new file mode 100644 index 0000000..b0f87ec --- /dev/null +++ b/SparrowOS/Demo/Doc/UnusedDefine.CPP @@ -0,0 +1,84 @@ +/* +This scans the sym table and checks +each $LK,"HTT_DEFINE_STR","MN:HTT_DEFINE_STR"$ entry to see if +it only occurs once in files. + +It's a brute force solution, but +gets the job done... slowly. + +$LK,"Grep","MN:Grep"$() returns a count of matches. + +$LK,"FileOcc","MN:FileOcc"$() is $LK,"Grep","MN:Grep"$() with +output $LK,"Silent","MN:Silent"$(). + +*/ + +U0 UnusedDefineScan() +{ + CDoc *old_doc=DocCur,*doc; + I64 cnt=0; + CHashTable *tempht; + CHash *temph; + CDocEntry *doc_e,*doc_e2; + Bool old_silent=IsSilent; + + //Technically, we might want to + //turn-off preemption in case the + //table was modified. + + try { + tempht=Fs->hash_table; + while (tempht) { + temph=tempht->next_added; + while (temph!=tempht) { + if (temph->type&HTT_DEFINE_STR) + cnt++; + temph=temph->next_added; + } + tempht=tempht->next; + } + + progress1=0; + progress1_max=cnt; + StrCpy(progress1_desc,"Define Scan"); + + tempht=Fs->hash_table; + while (tempht) { + temph=tempht->next_added; + while (temph!=tempht) { + if (temph->type&HTT_DEFINE_STR) { + progress1++; + if (FileOcc(temph->str,"/SparrowOS/"TEXT_FILE_MASK,"+l-i")==1) { + doc=DocNew; + DocQueRem(old_doc); + DocQueIns(doc,Fs->last_doc); + Grep(temph->str,"/SparrowOS/"TEXT_FILE_MASK,"+l-i"); + DocQueRem(doc); + DocQueIns(old_doc,Fs->last_doc); + doc_e=doc->root.next; + while (doc_e!=doc) { + if (doc_e->type_u8==DOCT_LINK) { + NewLine; + "" temph->str; + doc_e2=DocEntryCopy(doc,doc_e); + DocIns(old_doc,doc_e2); + NewLine; + } + doc_e=doc_e->next; + } + DocDel(doc); + } + } + temph=temph->next_added; + } + tempht=tempht->next; + } + } catch + CatchAll; + + Silent(old_silent); + NewLine; + ProgressBarsRst; +} + +UnusedDefineScan; diff --git a/SparrowOS/Demo/Dsk/DataBase.CPP b/SparrowOS/Demo/Dsk/DataBase.CPP new file mode 100644 index 0000000..934fe0f --- /dev/null +++ b/SparrowOS/Demo/Dsk/DataBase.CPP @@ -0,0 +1,68 @@ +#define DB_FILENAME "HOME/DataBaseDemo.BIN" +#define DB_MAX_ACCT 100 +#define DB_ACCT_BLKS 1 + +class Acct +{ //Use to help generate fmtstrs. + U8 name[32] fmtstr "$$DA-P,32,\"Name:%s\"$$\n"; + U8 addr[64] fmtstr "$$DA-P,64,\"Addr:%s\"$$\n"; + U8 pad[DB_ACCT_BLKS*BLK_SIZE-64-32]; +}; + + +U0 InitDatabase() +{ + CFile *f; + //Write new contiguous file + f=FOpen(DB_FILENAME,"w",DB_MAX_ACCT*DB_ACCT_BLKS); + FClose(f); +} + + +U0 WriteAcct() +{ + CFile *f; + Acct a; + I64 acctnum; + + acctnum=PmtI64("Acct #",-1); + if (0<=acctnum$$FG$$:"; + ch=ToUpper(GetChar); + NewLine; + if (ch=='R') ReadAcct; + if (ch=='W') WriteAcct; + } while (ch!=CH_SHIFT_ESC && ch!=CH_ESC); +} + +DatabaseDemo; diff --git a/SparrowOS/Demo/Dsk/FPrintF.CPP b/SparrowOS/Demo/Dsk/FPrintF.CPP new file mode 100644 index 0000000..78f1575 --- /dev/null +++ b/SparrowOS/Demo/Dsk/FPrintF.CPP @@ -0,0 +1,27 @@ +/* There is no FPrintF type function and no +way to grow files. Therefore, use mem to +hold the file until you are done. The $LK,"CDoc","MN:CDoc"$ +framework is convenient for this. +*/ + +#include "/SparrowOS/Demo/Shared/TreeDemoJoin" + +U0 FPrintFDemo(U8 *output_filename=NULL) +{ + I64 fuf_flags=0; + CDoc *doc=DocNew; + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); + DocPutS(doc,"$$TR-C+AL,\"\"$$\n"); + DocPutS(doc,"$$ID,+2$$"); + TreeSub(doc,FilesFind("/SparrowOS/*",fuf_flags)); + DocPutS(doc,"$$ID,-2$$"); + DocRecalc(doc); + if (output_filename) { + StrCpy(doc->filename.name,output_filename); + DocWrite(doc,FALSE); + } else + DocWrite(doc,TRUE); + DocDel(doc); +} + +FPrintFDemo; diff --git a/SparrowOS/Demo/Dsk/OrderedIO.CPP b/SparrowOS/Demo/Dsk/OrderedIO.CPP new file mode 100644 index 0000000..7d5a221 --- /dev/null +++ b/SparrowOS/Demo/Dsk/OrderedIO.CPP @@ -0,0 +1,17 @@ +/* +$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/Dsk/Raw.CPP b/SparrowOS/Demo/Dsk/Raw.CPP new file mode 100644 index 0000000..be3cfee --- /dev/null +++ b/SparrowOS/Demo/Dsk/Raw.CPP @@ -0,0 +1,41 @@ +U0 RawAccess(I64 drv_let=0) +{ + CPrt *p=Drv2Prt(drv_let); + CBlkDev *bdev=Drv2BlkDev(drv_let); + I64 blk,old_offset,old_size; + U8 *buf=MAlloc(BLK_SIZE); + + PrtRep; + PressAKey; + + ClassRep("CPrt",p); + PressAKey; + + ClassRep("CBlkDev",bdev); + PressAKey; + + //Temporarily change partition range to full device. + //Normally, you are limited to just your partition. + //This is obviously $BK,1$dangerous$BK,0$! + old_offset=p->offset; + old_size =p->size; + p->offset=bdev->min_blk; + p->size=bdev->max_blk-bdev->min_blk+1; + + try { + blk=PmtI64("Blk to Read: ",old_offset,bdev->min_blk,bdev->max_blk); + RBlks(p,buf,blk,1); + D(buf,BLK_SIZE); + } catch + CatchAll; + + p->offset=old_offset; + p->size =old_size; + + Free(buf); +} + +RawAccess; + +//See $LK,"RBlks","MN:RBlks"$(), $LK,"WBlks","MN:WBlks"$(), $LK,"PrtLock","MN:PrtLock"$(), $LK,"PrtUnlock","MN:PrtUnlock"$() +//$LK,"DBlk","MN:DBlk"$(), $LK,"DCluster","MN:DCluster"$(), $LK,"BlkDevLock","MN:BlkDevLock"$() and $LK,"BlkDevUnlock","MN:BlkDevUnlock"$(). diff --git a/SparrowOS/Demo/Dsk/UnusedSpaceRep.CPP b/SparrowOS/Demo/Dsk/UnusedSpaceRep.CPP new file mode 100644 index 0000000..42453f2 --- /dev/null +++ b/SparrowOS/Demo/Dsk/UnusedSpaceRep.CPP @@ -0,0 +1,16 @@ +U0 UnusedSpaceRep() +{ + I64 i; + CPrt *p; + for (i=0;i<26;i++) { + try { + p=Drv2Prt(i+'A'); + if (p->type==PT_FAT32 || p->type==PT_NATIVE) + "%C: %7.3f%% Free\n", + Prt2Drv(p),UnusedDrvSpace(Prt2Drv(p))*100.0/(p->size*BLK_SIZE); + } catch + Fs->catch_except=TRUE; + } +} + +UnusedSpaceRep; diff --git a/SparrowOS/Demo/Exceptions.CPP b/SparrowOS/Demo/Exceptions.CPP new file mode 100644 index 0000000..5fbcd71 --- /dev/null +++ b/SparrowOS/Demo/Exceptions.CPP @@ -0,0 +1,71 @@ +//$BK,1$WARNING:$BK,0$ Don't return out of a catch{}. This +//might get fixed. + +//You can use $LK,"CatchAll","MN:CatchAll"$() in a catch statement +//and it will report args. + +#define EXCEPT_1 1 +#define EXCEPT_2 2 +#define EXCEPT_3 3 +#define EXCEPT_4 4 + +U0 Show() +{ + I64 i; + "Fs->except_argc=%X\n",Fs->except_argc; + for (i=0;iexcept_argc;i++) + "Fs->except_argv[%d]=%08X\n",i,Fs->except_argv[i]; +} + + + +Bool Pmt(I64 i) +{ + "%d ",i; + return YorN; +} + +U0 D1() +{ + "D1\n"; + if (Pmt(1)) throw(EXCEPT_1); + if (Pmt(2)) throw(EXCEPT_2,33,55,66); + if (Pmt(5)) throw; +} + +U0 D2() +{ + "D2\n"; + try { + D1; + if (Pmt(4)) throw(EXCEPT_4); + } catch { + "D2 handler\n"; + Show; + if (Fs->except_argc>0) { + if (Fs->except_argv[0]==EXCEPT_1) { + "Caught in D2\n"; + Fs->catch_except=TRUE; + } + } + } +} + +U0 Demo() +{ + try { + D2; + if (Pmt(3)) throw; + } catch { + "Demo handler\n"; + Show; + "Ignore Except"; + if (YorN) + Fs->ignore_except=TRUE; + else + Fs->catch_except=TRUE; + } +} + + +Demo; diff --git a/SparrowOS/Demo/ExtendedChars.CPP b/SparrowOS/Demo/ExtendedChars.CPP new file mode 100644 index 0000000..f8fd89e --- /dev/null +++ b/SparrowOS/Demo/ExtendedChars.CPP @@ -0,0 +1,36 @@ +U0 Install() +{ + gr_font[8*255+0]=0b00111100; + gr_font[8*255+1]=0b01000010; + gr_font[8*255+2]=0b10100101; + gr_font[8*255+3]=0b10000001; + gr_font[8*255+4]=0b11000011; + gr_font[8*255+5]=0b10111101; + gr_font[8*255+6]=0b01000010; + gr_font[8*255+7]=0b00111100; +} + +Install; + +"Face:ÿ\n"; + +//Chars 128-255 are treated as letters +//by the compiler and everything else. +//Enter them by holding ALT and +//pressing a 3 digit decimal number or +//press . + +U0 SrcExample() +{ + I64 fÿÿ=12345; + "fÿÿ=%d\n",fÿÿ; +} + +SrcExample; +//See $LK,"::/SparrowOS/Demo/ScreenCodes.CPP.Z","FI:::/SparrowOS/Demo/ScreenCodes.CPP.Z"$ +//$LK,"::/SparrowOS/Demo/Graphics/CharGraphics.CPP.Z","FI:::/SparrowOS/Demo/Graphics/CharGraphics.CPP.Z"$, +//and $LK,"::/SparrowOS/Demo/Graphics/FontEd.CPP.Z","FI:::/SparrowOS/Demo/Graphics/FontEd.CPP.Z"$. + +//See $LK,"alpha_bitmap","MN:alpha_bitmap"$, and +//$LK,"alpha_numeric_bitmap","MN:alpha_numeric_bitmap"$. + diff --git a/SparrowOS/Demo/GameStarters/BigGuns.CPP b/SparrowOS/Demo/GameStarters/BigGuns.CPP new file mode 100644 index 0000000000000000000000000000000000000000..31f89826123f0859fa48317bf8f3dff3a0ad1547 GIT binary patch literal 6533 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 T6^3ddAy8n(Ky<=**k}d-VFyoB literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/GameStarters/Bomber.CPP b/SparrowOS/Demo/GameStarters/Bomber.CPP new file mode 100644 index 0000000000000000000000000000000000000000..805e2c453de6ac64fe084b41a5cbae47e8d71148 GIT binary patch literal 12956 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 T8-t`CDh?4w5(kI%V9#s-2@;J6 literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/GameStarters/Chess.CPP b/SparrowOS/Demo/GameStarters/Chess.CPP new file mode 100644 index 0000000..2b307d3 --- /dev/null +++ b/SparrowOS/Demo/GameStarters/Chess.CPP @@ -0,0 +1,1047 @@ + + + +$SP,"wpawn",1$ + + + +$SP,"wcastle",2$ + + + + +$SP,"wknight",3$ + + + + + +$SP,"wbishop",4$ + + + + + +$SP,"wqueen",5$ + + + + + +$SP,"wking",6$ + + + + +$SP,"bpawn",7$ + + + +$SP,"bcastle",8$ + + + + +$SP,"bknight",9$ + + + + + +$SP,"bbishop",10$ + + + + + +$SP,"bqueen",11$ + + + + + + +$SP,"bking",12$ + +//These are weights for scoring positions. +#define SHIFT_PIECE_SCORE 4 +#define SHIFT_POSSIBLE_MOVES 0 + +#define P_PAWN 0 +#define P_ROOK 1 +#define P_KNIGHT 2 +#define P_BISHOP 3 +#define P_QUEEN 4 +#define P_KING 5 + +U8 *imgs[12]={$IB,"<1>",1$,$IB,"<7>",7$,$IB,"<2>",2$,$IB,"<8>",8$,$IB,"<3>",3$,$IB,"<9>",9$,$IB,"<4>",4$,$IB,"<10>",10$,$IB,"<5>",5$,$IB,"<11>",11$,$IB,"<6>",6$,$IB,"<12>",12$}; + +I64 piece_scores[6]={ +1<pieces,*cur_p=&p[piece_num]; + I64 result=0,i,j,k,x,y,xx=cur_p->x,yy=cur_p->y; + I8 brd[BD_SIDE*BD_SIDE*sizeof(I8)]; + BrdFill(brd,p); + nobound_switch (state->pieces[piece_num].type) { + case P_PAWN: + if (!state->cur_player) { + if (BrdPeek(brd,xx+1,yy)==T_CLR) { + mvs[result].x=xx+1; + mvs[result].y=yy; + result++; + if (xx==1 && BrdPeek(brd,xx+2,yy)==T_CLR) { + mvs[result].x=xx+2; + mvs[result].y=yy; + result++; + } + } + if (BrdPeek(brd,xx+1,yy-1)==T_PLAYER1 || + state->potential_en_passant_victim.x==xx && + state->potential_en_passant_victim.y==yy-1) { + mvs[result].x=xx+1; + mvs[result].y=yy-1; + result++; + } + if (BrdPeek(brd,xx+1,yy+1)==T_PLAYER1 || + state->potential_en_passant_victim.x==xx && + state->potential_en_passant_victim.y==yy+1) { + mvs[result].x=xx+1; + mvs[result].y=yy+1; + result++; + } + } else { + if (BrdPeek(brd,xx-1,yy)==T_CLR) { + mvs[result].x=xx-1; + mvs[result].y=yy; + result++; + if (xx==6 && BrdPeek(brd,xx-2,yy)==T_CLR) { + mvs[result].x=xx-2; + mvs[result].y=yy; + result++; + } + } + if (!BrdPeek(brd,xx-1,yy-1) || + state->potential_en_passant_victim.x==xx && + state->potential_en_passant_victim.y==yy-1) { + mvs[result].x=xx-1; + mvs[result].y=yy-1; + result++; + } + if (!BrdPeek(brd,xx-1,yy+1) || + state->potential_en_passant_victim.x==xx && + state->potential_en_passant_victim.y==yy+1) { + mvs[result].x=xx-1; + mvs[result].y=yy+1; + result++; + } + } + break; + case P_ROOK: + for (j=0;j<4;j++) { + x=xx; y=yy; + for (i=1;i<8;i++) { + x+=gr_x_offsets2[j]; + y+=gr_y_offsets2[j]; + k=BrdPeek(brd,x,y); + if (k==T_CLR || k==cur_p->player^1) { + mvs[result].x=x; + mvs[result].y=y; + result++; + if (k!=T_CLR) + break; + } else + break; + } + } + break; + case P_KNIGHT: + for (j=0;j<8;j++) { + x=xx+knight_x_offsets[j]; + y=yy+knight_y_offsets[j]; + k=BrdPeek(brd,x,y); + if (k==T_CLR || k==cur_p->player^1) { + mvs[result].x=x; + mvs[result].y=y; + result++; + } + } + break; + case P_BISHOP: + for (j=0;j<4;j++) { + x=xx; y=yy; + for (i=1;i<8;i++) { + x+=bishop_x_offsets3[j]; + y+=bishop_y_offsets3[j]; + k=BrdPeek(brd,x,y); + if (k==T_CLR || k==cur_p->player^1) { + mvs[result].x=x; + mvs[result].y=y; + result++; + if (k!=T_CLR) + break; + } else + break; + } + } + break; + case P_QUEEN: + for (j=0;j<8;j++) { + x=xx; y=yy; + for (i=1;i<8;i++) { + x+=gr_x_offsets[j]; + y+=gr_y_offsets[j]; + k=BrdPeek(brd,x,y); + if (k==T_CLR || k==cur_p->player^1) { + mvs[result].x=x; + mvs[result].y=y; + result++; + if (k!=T_CLR) + break; + } else + break; + } + } + break; + case P_KING: + for (j=0;j<8;j++) { + x=xx+gr_x_offsets[j]; + y=yy+gr_y_offsets[j]; + k=BrdPeek(brd,x,y); + if (k==T_CLR || k==cur_p->player^1) { + mvs[result].x=x; + mvs[result].y=y; + result++; + } + } + if (!Bt(&state->moved_mask,piece_num)) { + if (!state->cur_player) { + if (state->pieces[0].player>=0 && + !Bt(&state->moved_mask,0) && + BrdPeek(brd,0,1)==T_CLR && + BrdPeek(brd,0,2)==T_CLR && + BrdPeek(brd,0,3)==T_CLR) { + mvs[result].x=0; + mvs[result].y=2; + result++; + } + if (state->pieces[7].player>=0 && + !Bt(&state->moved_mask,7) && + BrdPeek(brd,0,6)==T_CLR && + BrdPeek(brd,0,5)==T_CLR) { + mvs[result].x=0; + mvs[result].y=6; + result++; + } + } else { + if (state->pieces[24].player>=0 && + !Bt(&state->moved_mask,24) && + BrdPeek(brd,7,1)==T_CLR && + BrdPeek(brd,7,2)==T_CLR && + BrdPeek(brd,7,3)==T_CLR) { + mvs[result].x=7; + mvs[result].y=2; + result++; + } + if (state->pieces[31].player>=0 && + !Bt(&state->moved_mask,31) && + BrdPeek(brd,7,6)==T_CLR && + BrdPeek(brd,7,5)==T_CLR) { + mvs[result].x=7; + mvs[result].y=6; + result++; + } + } + } + break; + } + for (i=0;ipieces[i].player==state->cur_player) { + mv_cnt=PieceMoves(state,i,mvs); + for (j=0;jpieces[piece_num]; + I64 j,ty=-1,score_adjust=0,x1=p->x,y1=p->y; + + j=PieceFind(x2,y2,state->cur_player^1); + if (j>=0) { + state->pieces[j].player-=2; //dead + ty=state->pieces[j].type; + score_adjust=piece_scores[ty]; + } else if (p->type==P_PAWN && AbsI64(y1-y2)==1) { //en passant? + if (!state->cur_player) + j=PieceFind(x2-1,y2,1); + else + j=PieceFind(x2+1,y2,0); + if (j>=0) { + state->pieces[j].player-=2; //dead + ty=state->pieces[j].type; + score_adjust=piece_scores[ty]; + } + } + if (p->type==P_PAWN && AbsI64(x1-x2)==2) { + state->potential_en_passant_victim.x=x2; + state->potential_en_passant_victim.y=y2; + } else { + state->potential_en_passant_victim.x=-1; + state->potential_en_passant_victim.y=-1; + } + if (p->type==P_PAWN && (!x2||x2==7)) { + if (!state->is_human[state->cur_player] || !final) + p->type=P_QUEEN; + else + p->type=PopUpPiece(state->cur_player); + score_adjust+=piece_scores[p->type]-piece_scores[P_PAWN]; + } else if (p->type==P_KING && AbsI64(y1-y2)==2) { //castling? + if (!state->cur_player) { + if (y2-y1<0) + state->pieces[6].y=y2+1; + else + state->pieces[7].y=y2-1; + } else { + if (y2-y1<0) + state->pieces[22].y=y2+1; + else + state->pieces[23].y=y2-1; + } + } + p->x=x2; + p->y=y2; + LBts(&state->moved_mask,piece_num); + if (!state->cur_player) + state->raw_score+=score_adjust; + else + state->raw_score-=score_adjust; + state->cur_player^=1; + state->mv_num++; + if (final) { + last_mv.x=x2; + last_mv.y=y2; + DocPrintF(chess_doc,"%02d)",state->mv_num); + if (state->cur_player) + DocPutS(chess_doc,"$$FG,LTGRAY$$"); + else + DocPutS(chess_doc,"$$FG,BLACK"); + DocPrintF(chess_doc,"%c:%c%c-%c%c",piece_letters[p->type], + y1+'A',x1+'1',y2+'A',x2+'1'); + if (ty>=0) { + if (state->cur_player) + DocPutS(chess_doc,"$$FG$$*$$FG,BLACK$$"); + else + DocPutS(chess_doc,"$$FG$$*$$FG,LTGRAY$$"); + DocPrintF(chess_doc,"%c",piece_letters[ty]); + } + DocPutS(chess_doc,"$$FG$$\n"); + if (!MoveCnt(&cur_state)) { + DocPutS(chess_doc,"$$FG,RED$$Game Over$$FG$$\n"); + game_over=TRUE; + } + GameSnapShot; + } + return ToBool(score_adjust); +} + +I64 MoveFind(I64 x,I64 y,Move *mvs,I64 mv_cnt) +{ + I64 i; + for (i=0;i=0 && MoveFind(x,y,mvs,mv_cnt)>=0) { + MoveDo(state,piece_num,x,y,TRUE); + return TRUE; + } else + return FALSE; +} + +I64 ChkPieceMoves(GameState *state,I64 piece_num,Move *src,I64 mv_cnt) +{ //Goes through moves list for one piece, eliminating invalid moves. + I64 k,cnt=mv_cnt,result=0,x,y,dy; + GameState state2,*tempg; + Move *dst=src; + + if (state->cur_player) //Find King + k=16; + else + k=0; + while (cnt--) { + MemCpy(&state2,state,sizeof(GameState)); + MoveDo(&state2,piece_num,src->x,src->y,FALSE); + + //Don't repeat board position + tempg=cur_state.next; + while (tempg!=&cur_state) { + if (!MemCmp(tempg->pieces,state2.pieces,sizeof(PieceState)*32)) + goto cm_skip; + tempg=tempg->next; + } + + if (piece_num==k) { //If king is moving, check his new location. + x=state2.pieces[k].x; + y=state2.pieces[k].y; + dy=y-state->pieces[k].y; + if (AbsI64(dy)==2 && //castling? + (SqrInChk(&state2,x,y-dy) || SqrInChk(&state2,x,y-SignI64(dy)))) + goto cm_skip; // This really needs to go into PieceMoves + } else { + x=state->pieces[k].x; + y=state->pieces[k].y; + } + if (!SqrInChk(&state2,x,y)) { + MemCpy(dst++,src,sizeof(Move)); + result++; + } +cm_skip: + src++; + } + return result; +} + +I64 MoveCnt(GameState *state) +{ + I64 i,result=0,mv_cnt; + Move mvs[32]; + for (i=0;i<32;i++) + if (state->pieces[i].player==state->cur_player) { + mv_cnt=PieceMoves(state,i,mvs); + mv_cnt=ChkPieceMoves(state,i,mvs,mv_cnt); + result+=mv_cnt; + } + return result; +} + + +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 i,x,y,z,k0,k1; + PieceState *s=cur_state.pieces; + brd_dc->flags|=DCF_NO_TRANSPARENTS; + GrBlot(dc,cx-cx2,cy-cy2,brd_dc); + + task->text_attr=YELLOW<<4; + dc->x=cx; + dc->y=cy; + + dc->flags|=DCF_TRANSFORMATION; + MemCpy(dc->r,w2s,sizeof(I64)*16); + + if (ai_thinking) { + if (cur_state.cur_player) + dc->color=BLACK; + else + dc->color=WHITE; + if (Blink(,tP(task))) + GrPutS(dc,-11*FONT_WIDTH/2,2*FONT_HEIGHT-cy,"Thinking..."); + } + + dc->color=RED; + for (i=0;icolor=LTRED; + dc->pen_width=2; + GrLineRect4(dc,(cursor_x-4)*g+2,(cursor_y-4)*g+2,(cursor_x-3)*g-1,(cursor_y-3)*g-1); + + DCAllocDepthBuf(dc); + k0=k1=0; + for (i=0;i<32;i++,s++) { + if (s->player>=0) { //Alive? + if (s->x!=last_mv.x || s->y!=last_mv.y || Blink(,tP(task))) { + x=g/2+(s->x-4)*g; + y=g/2+(s->y-4)*g; + z=0; + GrTransform(dc,&x,&y,&z); + z=GR_Z_ALL+s->x-s->y; + + dc->flags&=~DCF_TRANSFORMATION; + CSpritePlot3(dc,x,y,z,imgs[s->type*2+s->player]); + dc->flags|=DCF_TRANSFORMATION; + } + } else { //Dead + if (s->player==-2) { + if (k1<8) { + x=cx+100+k1++*g/2; + y=cy-180; + } else { + x=cx+100+(k1++-8)*g/2; + y=cy-130; + } + z=0; + } else { + if (k0<8) { + x=cx+100+k0++*g/2; + y=cy+220; + } else { + x=cx+100+(k0++-8)*g/2; + y=cy+170; + } + z=0; + } + dc->flags&=~DCF_TRANSFORMATION; + CSpritePlot3(dc,x,y,z,imgs[s->type*2+s->player+2]); + dc->flags|=DCF_TRANSFORMATION; + } + } + if (game_over && Blink(,tP(task))) { + dc->color=LTRED; + GrPutS3(dc,-9*FONT_WIDTH/2,-FONT_HEIGHT/2,0,"Game Over"); + } +} + +#define DEPTH -5 + +CDC *BrdNew() +{ + I64 i,j,k,w=Fs->win_pixel_width,h=Fs->win_pixel_height; + CDC *dc; + + g=42; + cx=w/2+40; + cy=h/2; + + w=Sqrt(2.0)*(8*g+2*FONT_WIDTH); + h=8*g+2*FONT_HEIGHT; + cx2=w/2; + cy2=h/2; + + dc=DCNew(DCT_COLOR8,w,h); + dc->x=cx2; + dc->y=cy2; + + dc->flags|=DCF_TRANSFORMATION; + MemCpy(dc->r,w2s,sizeof(I64)*16); + + dc->color=YELLOW; + GrRect(dc,0,0,w,h); + + dc->color=BLACK; + for (i=-4;i<4;i++) { + GrPrintF3(dc,-4*g-4-FONT_WIDTH,i*g+g/2-4,0,"%C",i+4+'A'); + GrPrintF3(dc,4*g+14,i*g+g/2-4,0,"%C",i+4+'A'); + GrPrintF3(dc,i*g+g/2+6,-4*g-12-FONT_HEIGHT,0,"%C",i+4+'1'); + GrPrintF3(dc,i*g+g/2-2,4*g+9,0,"%C",i+4+'1'); + } + + dc->pen_width=1; + dc->color=BLACK; + for (i=-4;i<=4;i++) { + GrLine3(dc,-4*g,i*g,0,4*g,i*g,0); + GrLine3(dc,i*g,-4*g,0,i*g,4*g,0); + GrLine3(dc,-4*g,i*g,0,-4*g,i*g,DEPTH); + GrLine3(dc,i*g,4*g,0,i*g,4*g,DEPTH); + } + GrLine3(dc,-4*g,4*g,DEPTH,-4*g,-4*g,DEPTH); + GrLine3(dc,-4*g,4*g,DEPTH,4*g,4*g,DEPTH); + + k=0; + for (j=-4;j<4;j++) { + for (i=-4;i<4;i++) { + if ((i+j)&1) + dc->color=WHITE; + else + dc->color=DKGRAY; + GrFloodFill3(dc,i*g+g/2,j*g+g/2,0); + } + if (j&1) + dc->color=DKGRAY; + else + dc->color=WHITE; + GrFloodFill3(dc,-4*g,j*g+g/2,DEPTH/2); + if (j&1) + dc->color=WHITE; + else + dc->color=DKGRAY; + GrFloodFill3(dc,j*g+g/2,4*g,DEPTH/2); + } + + return dc; +} + +I64 AIStateScore(GameState *state,I64 player) +{ + if (player) + return -state->raw_score; + else + return state->raw_score; +} + +I64 move_depth,kill_depth; + +I64 AIMove2(GameState *state,I64 depth) +{ + I64 i,possible_moves=0,best_piece,score,best_score=MIN_I64,mv_cnt,score_adjust; + Move best_mv,mvs[32],*ptr; + GameState state2; + Bool first=TRUE; + + if (UnusedStk<0x1000) { //Shouldn't happen + DocPutS(chess_doc,"StkOverflow\n"); + return AIStateScore(state,state->cur_player); + } + + for (i=0;i<32;i++) + if (state->pieces[i].player==state->cur_player) { + mv_cnt=PieceMoves(state,i,mvs); + possible_moves+=mv_cnt; + ptr=mvs; + while (mv_cnt--) { + MemCpy(&state2,state,sizeof(GameState)); + state2.parent=state; + if (MoveDo(&state2,i,ptr->x,ptr->y,FALSE)&&depthcur_player); + if (score_adjust=AbsI64(state2.raw_score-state->raw_score)) + score+=score_adjust-piece_scores[state->pieces[i].type]; + } + if (first || score>best_score) { + best_score=score; + best_piece=i; + MemCpy(&best_mv,ptr,sizeof(Move)); + first=FALSE; + } + ptr++; + } + } + if (!first) + MoveDo(state,best_piece,best_mv.x,best_mv.y,FALSE); + return best_score+possible_moves<mv; + Bool old_preempt=Preempt(ON); + MemCpy(&state2,cj->state,sizeof(GameState)); + state2.parent=cj->state; + MoveDo(&state2,ptr->piece,ptr->x,ptr->y,FALSE); + ptr->score=-AIMove2(&state2,1); + Free(cj); + Preempt(old_preempt); +} + +I64 MoveCmp(Move *e1,Move *e2) +{ + if (e1->scorescore) + return 1; + else if (e1->score==e2->score) + return 0; + else + return -1; +} + +U0 AIMove(GameState *state) +{ + I64 i,cnt=0,mv_cnt,best_score; + Move mvs[32],*ptr,*ptr2; + ChessJob *cj; + + if (cnt=MoveCnt(state)) { + //Collect AI possible valid moves + ptr=ptr2=MAlloc(cnt*sizeof(Move)); + for (i=0;i<32;i++) + if (state->pieces[i].player==state->cur_player) { + mv_cnt=PieceMoves(state,i,mvs); + mv_cnt=ChkPieceMoves(state,i,mvs,mv_cnt); + MemCpy(ptr,mvs,mv_cnt*sizeof(Move)); + ptr+=mv_cnt; + } + + //Dispatch to MP scoring all moves + for (i=0,ptr=ptr2;iscore=-MAX_I32; + cj=MAlloc(sizeof(ChessJob)); + cj->state=state; + cj->mv=ptr; + if (i%mp_cnt==mp_cnt-1) + AIMove1(cj); + else + MPJob(&AIMove1,cj,1+i%(mp_cnt-1)); + } + + //Wait for finish + for (i=0,ptr=ptr2;iscore==-MAX_I32) + Yield; + QSort(ptr2,cnt,sizeof(Move),&MoveCmp); + + //Cnt ties for first + best_score=ptr2->score; + mv_cnt=0; + ptr=ptr2; + while (mv_cntscore==best_score) { + mv_cnt++; + ptr++; + } + + ptr=ptr2+RandU16%mv_cnt; + MoveDo(state,ptr->piece,ptr->x,ptr->y,TRUE); + Free(ptr2); + } +} + +U0 Init() +{ + chess_doc=DocCur; + DocClear; + "$$FD,BLACK$$$$BD,YELLOW$$"; + game_over=FALSE; + ai_thinking=FALSE; + move_depth=3; + kill_depth=5; + cur_mv_cnt=0; + last_mv.x=-1; + last_mv.y=-1; + MemCpy(&cur_state,&setup_state,sizeof(cur_state)); + QueInit(&cur_state); + cur_state.is_human[0]=PopUpNoYes("$$FG,BLACK$$WHITE is human?"); + cur_state.is_human[1]=PopUpNoYes("$$FG,BLACK$$BLACK is human?"); + + GameSnapShot; +} + +U0 CleanUp() +{ + QueDel(&cur_state,TRUE); +} + +U0 SetMouseCursor() +{ + I64 x=(cursor_x-4)*g+g/2, + y=(cursor_y-4)*g+g/2, + z=0; + GrRot(w2s,&x,&y,&z); + x+=cx+Fs->win_pixel_left+Fs->win_scroll_x; + y+=cy+Fs->win_pixel_top +Fs->win_scroll_y; + if (ipx!=x || ipy!=y) + SetIP(x,y); +} + +U0 SetKbdCursor(I64 x,I64 y) +{ + I64 z; + x-=cx; + y-=cy; + z=y; + GrRot(s2w,&x,&y,&z); + cursor_x=LimitI64((x+4*g)/g,0,7); + cursor_y=LimitI64((y+4*g)/g,0,7); +} + +U0 Chess() +{ + I64 p1,p2,cur_piece; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WinMax; + WinBorder; + Preempt(OFF); + Init; + WordStat; + + MenuPush( + "File {" + " Abort(,CH_SHIFT_ESC);" + " Exit(,CH_ESC);" + "}" + "Play {" + " Move(,CH_SPACE);" + " Restart(,CH_NEW_LINE);" + "}"); + + + Fs->win_inhibit=WIF_ALL-WIF_BORDER-WIF_MENU; + + cursor_x=cursor_y=3; + + w2s=GrIdent; //World-to-Screen + GrRotZEqu(w2s,-ã/4); + GrRotXEqu(w2s,ã/4); + + s2w=GrIdent; //Screen-to-World + GrRotXEqu(s2w,-ã/4); + GrRotZEqu(s2w,ã/4); + + brd_dc=BrdNew; + + SetMouseCursor; + Fs->draw_it=&DrawIt; + + try { + while (TRUE) { + switch (ScanMsg(&p1,&p2,1<=0) { + cur_mv_cnt=PieceMoves(&cur_state,cur_piece,cur_mvs); + cur_mv_cnt=ChkPieceMoves(&cur_state,cur_piece,cur_mvs,cur_mv_cnt); + } else + cur_mv_cnt=0; + } + break; + case MSG_IP_L_UP: + SetKbdCursor(p1,p2); +ch_mv_end: + if (!game_over && cur_state.is_human[cur_state.cur_player]) { + if (cur_piece>=0 && + HumanMove(&cur_state,cur_piece,cur_mvs,cur_mv_cnt, + cursor_x,cursor_y)) { + Beep(250); + cur_piece=-1; + cur_mv_cnt=0; + } else { + cur_piece=-1; + cur_mv_cnt=0; + } + } + break; + case MSG_KEY_UP: + if (p1==CH_SPACE) + goto ch_mv_end; + break; + case MSG_KEY_DOWN: + switch (p1) { + case CH_NEW_LINE: + CleanUp; + Init; + break; + case CH_ESC: + case CH_SHIFT_ESC: + goto ch_done; + case CH_SPACE: + goto ch_mv_start; + case 0: + switch (p2.u8[0]) { + case SC_CURSOR_RIGHT: + cursor_y=LimitI64(cursor_y+1,0,7); + SetMouseCursor; + break; + case SC_CURSOR_LEFT: + cursor_y=LimitI64(cursor_y-1,0,7); + SetMouseCursor; + break; + case SC_CURSOR_DOWN: + cursor_x=LimitI64(cursor_x-1,0,7); + SetMouseCursor; + break; + case SC_CURSOR_UP: + cursor_x=LimitI64(cursor_x+1,0,7); + SetMouseCursor; + break; + } + } + break; + } + } +ch_done: + } catch + CatchAll; + DocClear; + SettingsPop; + MenuPop; + DCDel(brd_dc); + Free(s2w); + Free(w2s); + CleanUp; +} + +Chess; +R úÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòúÿÿÿæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"!úÿÿÿâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2"øÿÿÿâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +òúÿÿÿæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 2"øÿÿÿâÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’úÿÿÿìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂúÿÿÿêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿR úÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’úÿÿÿëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ "!øÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Òøÿÿÿêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/SparrowOS/Demo/GameStarters/ChessNet.CPP b/SparrowOS/Demo/GameStarters/ChessNet.CPP new file mode 100644 index 0000000000000000000000000000000000000000..e637e69ca06865ee5f3ad15b54eb6c37cec92374 GIT binary patch literal 6084 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 + MusicSettingsRst; + while (TRUE) + Play("hEDCARCDECR"); +} + +U0 DrawIt(CTask *task,CDC *) +{ + U8 buf[128]; + SPrintF(buf,"Error:%6.3f Time:%6.3f Score:%6.3f Best:%8.3f",avg_error,elapsed_time,score,best_score); + PlotWinStr(task,buf,BLACK<<4+WHITE,0,0); +} + +#define CIRCLE_RADIUS 100 +#define CIRCUMFERENCE (2*ã*CIRCLE_RADIUS) + +Bool CTPlot(CDC *dc,I64 x,I64 y,I64) +{ + F64 rad=Sqrt(Sqr(x-cx)+Sqr(y-cy)); + GrPlot(dc,x,y); + total_error+=Abs(rad-CIRCLE_RADIUS); + return TRUE; +} + +U0 CircleTrace() +{ + I64 msg_code,p1,p2,x1,y1; + F64 rad,t0,total_distance; + CDC *dc=DCAlias; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->song_task=Spawn(&SongTask,NULL,"Song",Fs); + WordStat; + + cx=Fs->win_pixel_width/2; + cy=Fs->win_pixel_height/2; + + Fs->win_inhibit=WIF_ALL-WIF_BORDER; + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + + DCFill; + dc->color=ROP_XOR+BLACK^COLOR_TRANSPARENT; + GrCircle(dc,cx,cy,CIRCLE_RADIUS); + do { + msg_code=GetMsg(&p1,&p2, + 1<color=ROP_XOR+BLACK^COLOR_TRANSPARENT; + GrCircle(dc,cx,cy,CIRCLE_RADIUS); + dc->color=ROP_XOR+RED^COLOR_TRANSPARENT; + t0=tP; + total_distance=0.001; + total_error=0; + x1=p1; y1=p2; + do { + msg_code=ScanMsg(&p1,&p2, + 1<0.95*CIRCUMFERENCE) { + if (scoreJ0%@Mh!9Aaiwh=UWT&KKqyklCY^S7S4C9#CDe0KN zIHq<=I;Jp=nVpi38H{6Yr=(*J<5<`!=~%!xmUc=ymN1T?0muagDqLJDPVOpPT*@h_ zX_As+fhny8YIoSYiQTJAyd9B3KSEwkb zu?e!7AtA0o@gbZBdPb&j!~8;hKf!JH;sp%w~SNr@#TsYUUbx#`8xXewfD zt5rOmbd+o$VWb1$K*9*hfrJs10|}#AYlK6BLjC+)gAC(CI5`dVP+bC(0z1VF?3AL? zyu8#RLxfw9)xaGCu?1=+BqpF7NK6pqK;j6~nMNRI8t9pz1Q^5#M)6>0LP8AUOe1t> zLe#*W39$w07)VNha!_Po$pYjYH!~B35(Ax#%#!#L18Xi2Hz_eEC%!@lOjTNQafKQv zxD+LpdzNT8ha?tfD`=G@7H8`?yErRor6g-|RdXpQfV7pA*p>unfaElFK}IPkc$%3g zWZG(=#jviSrdCObJ~UN?SaT^TfYL-}UP)?^H7JjOjL@|!Nv$Y}Pb?`ZvULw~b@j8c zF#)MeN!GPX&dC+6hU+kkSBb5f)##7ddAZCFi7q z+zbx+3T>##V!6%@eHV+-}ECn&B8@^cbPQZVVy)prC;z8Nkzk zrj|xYiK+%HN$6uytEmZgDp6hpyA`V3ttd5B16cs%Pen*_S5Q+^C@HanTWbUfL0ih~E z6r@f8JFCJrzQP*f!b;otN>FAC&Ph!z&@cw)@1oR_(xNfq{;(fq?mzJ73O zs)CA-w~i9Bgp!Vuub&l)hzgg2LU?ALZ(;?=zVOUEr~IN6P?fBp5Kxqwnp;q!;qT_A z39h2uigoSEGxOpz^D;7%GD~V~!#&;NU7UR4oqar=y}|nPi&BD15=%gAkm^K8w8Vod zciZ5C#PU21HKeH00SBuRR76R~tr%jFZ)#pC$RiqD3JOYYph&D%0x=a79Fy{kN;Gtw zJ>r8sJl#U#U4xx9t)X(R6`2qzgkUXLDj+AZQUPW{aCv54I>dwkM`u^K?x57-l0>N4 zey-v1KAwJ1Nl-#i0-FS4L0kxmH;^Y?@{^rQi;DA$V4R%PL@*oV`;?-@^7zaWTQx{S z3LJ(dMU~JZA4}>~P$(|XEJ@B#&~Q&Jan49Af}}e)N1tFOQAlpEEP}rUVg#ZHs11RiZ>Oigog&hwA1H)xdm@zOgfYdRufn-3g6JuatI1JJW z3OkT>(4YeaBY}to=>S;_!mywNIR@k?SVSEI8O^}J0HZ;U1E~i&f{lTJ0pvJPKwX7; z3M9_N29g1p0CFTq2RP^$p{_H6COdGVV`7j1DF!(OBn>heL^CijG=OLr{{hGuAVna> zAPKba2T6gP4N{Msc7H&f1ri5&5yU?VO)a{a_#ky4U)}lt|3AWYAQ6xZ zDD8nTI08WN1acrK>_AqK=sJ*AkSjoDgKPuQAU?Y5VB#>>fx_?}D1@NN2oiQ669k}n z7wkGtkonNC0|gk=bs$lY4?w2ji&>C5kZV5u|NsBS|NsACu7J4?R7&kZ5(k+F3L#KH zfZPJp&jc=&Kq8BLn5OgKz literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/GameStarters/Collision.CPP b/SparrowOS/Demo/GameStarters/Collision.CPP new file mode 100644 index 0000000000000000000000000000000000000000..cdc2c716487737b3d4ab2eff65d765110d5724f1 GIT binary patch literal 4171 zcmdPb;tI*gELJEjPAyhY@$uGCO3SQBP0=mL&&(@P(ou5rw6e0&4=zY7D#|bS57u`{ z&CS>MNlh*(ElMrccLS*n04ddT4hYbTQc_V!EXpj&$W1NDOy){TO-?K=PF2V(0U4j7 zP?E2Zl&X-HSX`1?q)?KPn5U4Ilb=|UnU~H5woZ>TI5idG2vY1M-I01+Tp<~$3Mr|{ znYoEM3I#cd$*BsN#R^HOCFQB9d0a`ECB+KHh6;&!DGJ6$dR$uiTwGkrDXD3hd8rD1 zp}z4>jy^uYoMt9)L6AUvkfV!dXfUTK7ni4*i9%9hPELG9G+cSC4p^iTS%gbL0iv!f zH77qgv!oJ>2DlWmPHQf%Py+>*qQr8~5)J2&#NuoPEgfeUX9ca4WKFJWE(HaU6Edy2 z6ckdDb?uV#bMlL9gIrxe0%`e03L2TV2G*H2aK~9^YHMqPT%+J#Th zMRaDYUZ$~8v?1IF2mvI2Yg%*Fa)E%pmX?+lh@lc3prfRuW2ge+aB*>Y=4F;-Cgy;H zH7zqQF-HOBH-)m)PQU;%~vGzH)M+|<01(p)Ppt}sKD;7A=~mCOK+SgA=1;US@7$Nh&BUYIvHN zKvE$zX_h1wXWP0J>)I707NzEu#Dn;tqzF!=I$1gyI%PU3nZ+d_tOHJlDVd438b(^k z>C48(*a$8Ok`FE{@-#ESttvIABr(21Ck0Gb>XgNo80wV8=Yfb4BM{37 z!D7~2V3WgB70UCAvK7E}LUCa!xTMc3E=f&H z0hQFng+(P`btU-WlONtdV zLNZb-6+k8y=j4~`X>xIb(>ACS0AU3+HE@XlV%ylJWG1F$CPG4A0W1#kNr?tX7KAme z74-GNL7JKZ4%Ez&VlGYv1!!DU=-Yx+p(;X>uY}5je664WDx+*685t$3fgl+F)%87!5Lb(4uMspSNc6{RMZD1Zv!{Ib-doWugKr$L$5)}X@Bz`(#jTO%biQ6I|D1<7dY z8$rAY4jE8@XoIsmG(ey(151KDjv@(l0ay~`L0#NBvtm&s!8#!|ih=@!hLFKIsi_4T zhMJ(drxw&44>eE#wYoJRtub(O3nT~fB-Snfv}FQyQ)aBKMo?m2N~ockss^a}hSmr| zt}eBVG_}#210buQQ3>)rPQxILCK60T&0`=ZdKw$)n;_W-R{^#dMFlKiobz*XGK(|w z^Pr&~^NT>90C93s6Txhdkts!q",7$ ,$IB,"<5>",5$ ,NULL, + $IB,"<6>",6$ ,NULL,NULL,NULL, + NULL,NULL,NULL,NULL, + NULL,NULL,NULL,NULL}; + +U8 *tiles2[16]= +{NULL,$IB,"<8>",8$ ,$IB,"<5>",5$ ,NULL, + $IB,"<6>",6$ ,NULL,NULL,NULL, + NULL,NULL,NULL,NULL, + NULL,NULL,NULL,NULL}; + + + +#define SCREEN_SCALE 24 +#define SCREEN_WIDTH 24 +#define SCREEN_HEIGHT 24 +I64 screen_x,screen_y; + +#define MAP_SCALE 4 +I64 map_width,map_height; +U8 *map=NULL; + +I64 man_x,man_y,man_dx,man_dy; +Bool man_attack; +F64 man_attack_t0; + +#define NUM_MONSTERS 16 +class Monster +{ + I64 x,y,dx,dy; + Bool dead,pad[7]; +} monsters[NUM_MONSTERS]; + +#define LOS_SCALE 4 + +Bool LOSPlot(U8 *,I64 x,I64 y,I64) +{ + if (!map[(y/LOS_SCALE)*map_width+(x/LOS_SCALE)]) + return FALSE; + else + return TRUE; +} + +Bool LOS(I64 x1,I64 y1,I64 x2,I64 y2) +{ //Line of sight + return Line(NULL,x1*LOS_SCALE+LOS_SCALE/2,y1*LOS_SCALE+LOS_SCALE/2,0, + x2*LOS_SCALE+LOS_SCALE/2,y2*LOS_SCALE+LOS_SCALE/2,0,&LOSPlot); +} + +U0 DrawIt(CTask *task,CDC *dc) +{ + CDC *dc_t=DCAlias(gr_dc,task); + I64 i,x,y,xx,yy,x1,y1,z1,color; + CD3I32 poly[4]; + U8 **_tiles; + + task->text_attr=BLACK<<4; + if (Blink(5,tP(task))) + _tiles=tiles1; + else + _tiles=tiles2; + + GrRotXEqu(dc_t->r,60*2*ã/360); + GrRotZEqu(dc_t->r,15*2*ã/360); + GrSetRotMat(dc_t,dc_t->r); + dc_t->x=task->win_pixel_width/2; + dc_t->y=task->win_pixel_height/2; + dc_t->flags|=DCF_TRANSFORMATION; + + //You could make it much more efficient + //if you did it like $LK,"::/SparrowOS/Demo/GameStarters/BigGuns.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/BigGuns.CPP.Z"$ + //with a $LK,"CDC","MN:CDC"$. + + for (y=-SCREEN_HEIGHT/2;ycolor=color; + GrFillPoly3(dc_t,4,poly); + } + } + } + } + } + + dc_t->color=LTGRAY; + for (x=-SCREEN_WIDTH/2;x<=SCREEN_WIDTH/2;x++) + GrLine3(dc_t,x*SCREEN_SCALE,-SCREEN_HEIGHT/2*SCREEN_SCALE,0,x*SCREEN_SCALE,SCREEN_HEIGHT/2*SCREEN_SCALE-1,0); + for (y=-SCREEN_HEIGHT/2;y<=SCREEN_HEIGHT/2;y++) + GrLine3(dc_t,-SCREEN_WIDTH/2*SCREEN_SCALE,y*SCREEN_SCALE,0,SCREEN_WIDTH/2*SCREEN_SCALE,y*SCREEN_SCALE-1,0); + + for (y=-SCREEN_HEIGHT/2;y",10$); + } + if (xx+1",11$); + } + } + } + } + } + + for (i=0;iflags|=DCF_SYMMETRY|DCF_JUST_MIRROR; + GrSetSymmetry(dc,x1,y1,x1,y1+1); + } else + dc->flags&=~(DCF_SYMMETRY|DCF_JUST_MIRROR); + CSpritePlot3(dc,x1,y1,z1,$IB,"<9>",9$); + } + + x1=(man_x-screen_x)*SCREEN_SCALE+SCREEN_SCALE/2; + y1=(man_y-screen_y)*SCREEN_SCALE+SCREEN_SCALE/2; + z1=0; + if (tP(task)-man_attack_t0<0.2) { + x1+=Tri(tP(task)-man_attack_t0,0.2)*SCREEN_SCALE*man_dx; + y1+=Tri(tP(task)-man_attack_t0,0.2)*SCREEN_SCALE*man_dy; + } + GrTransform(dc_t,&x1,&y1,&z1); + if (man_dx<0) { + dc->flags|=DCF_SYMMETRY|DCF_JUST_MIRROR; + GrSetSymmetry(dc,x1,y1,x1,y1+1); + } else + dc->flags&=~(DCF_SYMMETRY|DCF_JUST_MIRROR); + + if (tP(task)-man_attack_t0<0.2) + CSpritePlot3(dc,x1,y1,z1,$IB,"<3>",3$); + else + CSpritePlot3(dc,x1,y1,z1,$IB,"<2>",2$); + + DCDel(dc_t); +} + + +U0 Attack() +{ + I64 i; + man_attack_t0=tP; + Noise(100,300,1000); + for (i=0;i",1$,&minx,&maxx,&miny,&maxy); + map_width =(maxx-minx+1)/MAP_SCALE; + map_height=(maxy-miny+1)/MAP_SCALE; + Free(map); + map=MAlloc(map_width*map_height*sizeof(U8)); + dc=DCNew(DCT_COLOR8,map_width*MAP_SCALE,map_height*MAP_SCALE); + CSpritePlot3(dc,-minx,-miny,0,$IB,"<1>",1$); + for (y=0;yanimate_task=Spawn(&AnimateTask,NULL,"Animate",Fs); + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + + try { + while (TRUE) { + switch (GetMsg(&ch,&sc,1<SCREEN_WIDTH/2-3) { + screen_x+=SCREEN_WIDTH/2; + if (screen_x+SCREEN_WIDTH/2>map_width) + screen_x=map_width-SCREEN_WIDTH/2; + } + } + break; + case SC_CURSOR_LEFT: + if (man_attack) { + man_dx=-1; + man_dy=0; + Attack; + } else + if (man_x-1>=0 && map[man_y*map_width+(man_x-1)]==RED) { + man_x--; + if (man_x-screen_x<-SCREEN_WIDTH/2+3) { + screen_x-=SCREEN_WIDTH/2; + if (screen_x-SCREEN_WIDTH/2<0) + screen_x=SCREEN_WIDTH/2; + } + } + break; + case SC_CURSOR_UP: + if (man_attack) { + man_dx=0; + man_dy=-1; + Attack; + } else + if (man_y-1>=0 && map[(man_y-1)*map_width+man_x]==RED) { + man_y--; + if (man_y-screen_y<-SCREEN_HEIGHT/2+3) { + screen_y-=SCREEN_HEIGHT/2; + if (screen_y-SCREEN_HEIGHT/2<0) + screen_y=SCREEN_HEIGHT/2; + } + } + break; + case SC_CURSOR_DOWN: + if (man_attack) { + man_dx=0; + man_dy=1; + Attack; + } else + if (man_y+1SCREEN_HEIGHT/2-3) { + screen_y+=SCREEN_HEIGHT/2; + if (screen_y+SCREEN_HEIGHT/2>map_height) + screen_y=map_height-SCREEN_HEIGHT/2; + } + } + break; + } + } + break; + case MSG_KEY_UP: + if (ch==CH_SPACE) + man_attack=FALSE; + break; + } + } +dg_done: + GetMsg(,,1<",1$ + + + + + +I64 critical_section_flag; +U0 CriticalSectionStart() +{ + while (LBts(&critical_section_flag,0)) + Yield; +} +U0 CriticalSectionEnd() +{ + LBtr(&critical_section_flag,0); +} + +//These are $BK,1$NOT$BK,0$ deallocated after the program ends, +//but I did them this way for your benefit +//so 2D array indexing is not done by hand. +//You can type "EagleDive;" at the command line +//to rerun without new allocations. +//Normally, just spawn a popup task, +//run it and kill it using an icon. +#ifstatic +#exe {OptOn(OPTf_GLBLS_ON_DATA_HEAP);}; +#endif +I16 elevations[MAP_HEIGHT][MAP_WIDTH]; +I32 normals[MAP_HEIGHT][MAP_WIDTH*2]; +Panel *panels[MAP_HEIGHT][MAP_WIDTH*2]; +#ifstatic +#exe {OptOff(OPTf_GLBLS_ON_DATA_HEAP);}; +#endif + +I64 num_panels; +Panel *panel_root; +U8 *panels_processed_bitmap; + +F64 game_t0,v_grid_size,span_factor,è,é1,é2,speed; + +I64 x,y,z,game_score; + +Bool game_over; + +class MPCtrl { + I64 mp_cnt; + I64 doc_update; + F64 update_done_t[MP_MAX_PROCESSORS]; + I64 done_flags; + Bool app_done; +} mp; + +U0 FSTransform(CDC *dc,I64 *x,I64 *y,I64 *z) +{ + I64 zz; +//I accidentally made the Z coordinate sign backward +//from the fill-poly depth buf scheme, so it is negated at the end. +//Negative Z coordinates are the ones we want plotted. + GrRot(dc->r,x,y,z); + +//We don't want divide by zero or make too monstrous foreground objects. +//The foreground object boundary is kinda crappy looking when +//you point toward the ground. + *z=-*z; + zz=*z+50; + if (zz>0) { +//The divide causes "foreshortening" which makes the distance go to a vanishing point. + *x = *x * DISPLAY_SCALE/ zz; + *y = *y * DISPLAY_SCALE/ zz; + } + *x+=dc->x; + *y =dc->y-*y; +} + + + +U0 CalcNormals() +{ +/*The idea is that there are two triangles +forming every grid square and we find the normal +vect with a curl. + + i j k + 0 1 dz2 + 1 0 dz1 + +Normal: +dz1*i + dz2*j - k + + i j k + -1 0 -dz3 + 0 -1 -dz4 + +Normal: +-dz3*i - dz4*j + k + + +Basically, we want to combine grid +locations with the same normals. These +are not unit vects for one thing. + +What I came-up with is dz1/dz2 and dz3/dz4. + +It works pretty well. It combines +more than it should, but that's good +because it would result in too many +panels. + +*/ + I64 i,j,k,dz1,dz2; + for (j=0;j0) + normals[j][k++]=MAX_I32; + else + normals[j][k++]=MIN_I32; + } + + dz1=elevations[j+1][i+1]-elevations[j][i+1]; + dz2=elevations[j+1][i+1]-elevations[j+1][i]; + if (dz2) + normals[j][k++]=dz1<<16/dz2; + else { + if (!dz1) + normals[j][k++]=0; + else if (dz1>0) + normals[j][k++]=MAX_I32; + else + normals[j][k++]=MIN_I32; + } + } + normals[j][k++]=0; + normals[j][k++]=0; + } + k=0; + for (i=0;inum*(MAP_HEIGHT-1)/mp.mp_cnt; + hi=(Gs->num+1)*(MAP_HEIGHT-1)/mp.mp_cnt; + for (threshold=8;threshold>=1;threshold--) + for (j=lo;j=threshold || h>=threshold) { + tempp=CAlloc(sizeof(Panel),task); + lock {tempp->num=num_panels++;} + l=elevations[j][i]; + if (l<=WATER_ELEVATION*MAP_SCALE && + elevations[j][i+w-1]<=WATER_ELEVATION*MAP_SCALE && + elevations[j+h-1][i]<=WATER_ELEVATION*MAP_SCALE && + elevations[j+h-1][i+w-1]<=WATER_ELEVATION*MAP_SCALE) { + tempp->color=BLUE; + if (Rand<0.05) { + tempf=MAlloc(sizeof(Fish),task); + tempf->x=(i+w/2)*MAP_SCALE; + tempf->y=(j+h/2)*MAP_SCALE; + tempf->z=l; + CriticalSectionStart; + QueIns(tempf,fish_root.last); + CriticalSectionEnd; + } + } else { + if (RandI16&1) { + if (lcolor=LTGREEN; + else if (lcolor=LTGRAY; + else + tempp->color=LTGREEN; + } else { + if (!(RandU16&3)) + tempp->color=WHITE; + else + tempp->color=LTGRAY; + } + } else { + if (lcolor=GREEN+LTGREEN<<16+ROPF_DITHER; + else if (lcolor=DKGRAY+LTGRAY<<16+ROPF_DITHER; + else + tempp->color=GREEN+LTGREEN<<16+ROPF_DITHER; + } else { + if (!(RandU16&3)) + tempp->color=LTGRAY+WHITE<<16+ROPF_DITHER; + else + tempp->color=DKGRAY+LTGRAY<<16+ROPF_DITHER; + } + } + } + tempp->n=4; + poly=tempp->pts=MAlloc(sizeof(CD3I32)*tempp->n,task); + poly[0].x=MAP_SCALE*i; + poly[0].y=MAP_SCALE*j; + poly[0].z=elevations[j][i]; + poly[1].x=MAP_SCALE*(i+w); + poly[1].y=MAP_SCALE*j; + poly[1].z=elevations[j][i+w]; + poly[2].x=MAP_SCALE*(i+w); + poly[2].y=MAP_SCALE*(j+h); + poly[2].z=elevations[j+h][i+w]; + poly[3].x=MAP_SCALE*i; + poly[3].y=MAP_SCALE*(j+h); + poly[3].z=elevations[j+h][i]; + tempp->next=start_ptr; + start_ptr=tempp; + if (!end_ptr) + end_ptr=tempp; + for (k2=0;k2next=panel_root; + panel_root=start_ptr; + CriticalSectionEnd; + } + LBts(&mp.done_flags,Gs->num); +} + + +U0 InitMap() +{ +//We make a topographic data structure "elevations[][]" +//and convert it to panels. The conversion to panels leaves +//gaps the way I did it, but it looks good, except for sky leaking through +//There is no wrong way to pick colors if it looks good, unless +//you wanted to do lighting. + +//"panels[][]" holds the flat and sloped panels for each spot, while +//"hstep_panels[][]" holds side panels in cases of step-like formations. +//They require a separate array because a single "elevation[][]" spot can +//have a panel on top and a panel on the side like stairs. + + I64 i,j,l,k1,k2,x,y,xx,yy; + MemSet(elevations,0,sizeof(elevations)); + MemSet(panels,0,sizeof(panels)); + for (i=0;i>3); +} + + +CDC *main_dc; + +U0 DrawIt(CTask *,CDC *dc) +{ + main_dc->flags|=DCF_NO_TRANSPARENTS; + GrBlot(dc,0,0,main_dc); +} + + +/*$SP,"",2$ + + + + + + + + + + + + + + + + + + + + + +Cores render strips. The strips are wider toward the horizon by span_factor +and overlap +/- 15%. The cores check the panel map array +and render the panel for each square and mark-it done. + +The depth buf is not locked in the graphic routines +so we get some glitches. + +*/ + +U0 MPDrawIt(CTask *task,CDC *dc) +{ +//This is identical to the previous routine but is run by core#1 + I64 i,j,ww,hh,*s2w,x1,y1,z1, xx,yy, + xh,yh,zh, yh2,xh2, reg x1w, reg y1w, x1h,y1h, + x3,y3,z3, + cx=task->win_pixel_width>>1, + cy=task->win_pixel_height>>1; + F64 h_grid_size,t0=tNP; + Panel reg *tempp; + + xx=x/(MAP_SCALE*COORDINATE_SCALE); + yy=y/(MAP_SCALE*COORDINATE_SCALE); + + //World to screen coordinates + GrIdentEqu(dc->r); + GrRotZEqu(dc->r,é2); + GrRotXEqu(dc->r,è); + GrRotZEqu(dc->r,é1); + GrSetRotMat(dc,dc->r); + + //Screen to world coordinates + +//This gives us the vects for stepping through the grid in +//the direction the plane is facing. we step horizontally and vertically +//and use the reciprocal slope principle y=mx+b and y=(-1/m)x+b are perpendicular. + + s2w=GrIdent; + GrRotZEqu(s2w,-é1); + GrRotXEqu(s2w,-è); + GrRotZEqu(s2w,-é2); + xh=0; + yh=0; + zh=-256; + GrRot(s2w,&xh,&yh,&zh); + +//The layer for core#1 is not cleared automatically +//it is persistent. I have carefully syncronized to the update +//cycle initiated by core#0 to prevent flicker. + + dc->flags|=DCF_TRANSFORMATION; + dc->transform=&FSTransform; + dc->x=cx; + dc->y=cy; + +//dc->x and the translation part of dc->r are identical in effect, +//but we use both to show-off. We could add offsets together and use one or the other. + + x1=-x>>COORDINATE_BITS; + y1=-y>>COORDINATE_BITS; + z1=-z>>COORDINATE_BITS; + GrRot(dc->r,&x1,&y1,&z1); + GrSetTranslation(dc->r,x1,y1,z1); + + //This is a refinement. + if (Abs(è*180/ã)>90) { + x3=0; + y3=-cy; + z3=0; + GrRot(s2w,&x3,&y3,&z3); + xx+=x3; + yy+=y3; + } + + h_grid_size=4.0*v_grid_size*(Gs->num+span_factor)/span_factor; + if (Gs->num&1) { //alternate left-right,right-left + yh2=-yh; + xh2=-xh; + } else { + yh2=yh; + xh2=xh; + } + + ww=h_grid_size; + hh=1.30*v_grid_size; //Cores overlap 15% on each side of strip. + //Calc starting point. + x1h=xx<<8+0.5*yh2*h_grid_size+xh*v_grid_size*(Gs->num+1.15); + y1h=yy<<8-0.5*xh2*h_grid_size+yh*v_grid_size*(Gs->num+1.15); + + xh=-xh; //Back to front to help with depth. + yh=-yh; + + //Take half steps to cover whole grid. + xh>>=1; yh>>=1; + xh2>>=1; yh2>>=1; + ww<<=1; + hh<<=1; + + for (j=0;j>8; y1=y1w>>8; + if (0<=x1num)) { + if (tempp->cnt>8*(1.1-Gs->idle_factor)) { + dc->color=tempp->color; + tempp->cnt=GrFillPoly3(dc,tempp->n,tempp->pts); + } else + tempp->cnt++; + } + } + x1w-=yh2; + y1w+=xh2; + } + x1h+=xh; + y1h+=yh; + } + Free(s2w); + mp.update_done_t[Gs->num]=tNP-t0; +} + +U0 APEagleDiveTask(CTask *master_task) +{ + CDC *dc=DCAlias(main_dc,master_task); + if (!IsSysDeterministic) + Preempt(ON); + while (!mp.app_done) { + LBts(&Fs->task_flags,TASKf_IDLE); + while (!LBtr(&mp.doc_update,Gs->num) && !mp.app_done) + Yield; + LBtr(&Fs->task_flags,TASKf_IDLE); + if (!mp.app_done) + MPDrawIt(master_task,dc); + } + +//We made an alias of this we don't want freed. + dc->depth_buf=NULL; + + DCDel(dc); + LBts(&mp.done_flags,Gs->num); +} + +U0 DrawHorizon(CDC *dc) +{ + I64 x1,y1,z1,x2,y2,z2,xh,yh,zh,*s2w=GrIdent, + cx=Fs->win_pixel_width>>1, + cy=Fs->win_pixel_height>>1; + CD3I32 p[4]; + I32 *old_db=dc->depth_buf; + dc->depth_buf=NULL; + + GrIdentEqu(dc->r); + GrRotZEqu(dc->r,é2); + GrRotXEqu(dc->r,è); + GrRotZEqu(dc->r,é1); + GrSetRotMat(dc,dc->r); + dc->flags&=~DCF_TRANSFORMATION; + dc->transform=&FSTransform; + dc->x=cx; + dc->y=cy; + + GrRotZEqu(s2w,-é1); + GrRotXEqu(s2w,-è); + GrRotZEqu(s2w,-é2); + xh=0; + yh=0; + zh=-256; + GrRot(s2w,&xh,&yh,&zh); + Free(s2w); + + x1=xh+yh*32; y1=yh-xh*32; z1=0; + (*dc->transform)(dc,&x1,&y1,&z1); + x2=xh-yh*32; y2=yh+xh*32; z2=0; + (*dc->transform)(dc,&x2,&y2,&z2); + DCClipLine(dc,&x1,&y1,&x2,&y2); + + MemSet(p,0,sizeof(p)); + if (x2width-1) { + p[0].x=0; + p[0].y=0; + p[1].x=dc->width-1; + p[1].y=0; + p[2].x=dc->width-1; + p[2].y=y2; + p[3].x=0; + p[3].y=y1; + if (-ã/2<=é1<ã/2 ^^ -ã/2<=Wrap(è-ã/2)<ã/2) + dc->color=LTCYAN; + else + dc->color=LTGREEN; + GrFillPoly3(dc,4,p); + p[0].y=dc->height-1; + p[1].y=dc->height-1; + if (-ã/2<=é1<ã/2 ^^ -ã/2<=Wrap(è-ã/2)<ã/2) + dc->color=LTGREEN; + else + dc->color=LTCYAN; + GrFillPoly3(dc,4,p); + } else { + if (y2height-1) { + p[0].x=0; + p[0].y=0; + p[1].x=0; + p[1].y=dc->height-1; + p[2].x=x2; + p[2].y=dc->height-1; + p[3].x=x1; + p[3].y=0; + if (x1color=LTCYAN; + else + dc->color=LTGREEN; + GrFillPoly3(dc,4,p); + p[0].x=dc->width-1; + p[1].x=dc->width-1; + if (x1color=LTGREEN; + else + dc->color=LTCYAN; + GrFillPoly3(dc,4,p); + } + } + dc->depth_buf=old_db; +} + + +U0 BSPEagleDive() +{ + CDC *dc=DCAlias(main_dc,Fs); + F64 last_t; + I64 i,xx,yy,height,bkcolor, + cx=Fs->win_pixel_width>>1, + cy=Fs->win_pixel_height>>1; + Fish *tempf; + + MemSet(panels_processed_bitmap,0,(num_panels+7)>>3); + MemSet(mp.update_done_t,0,sizeof(F64)*MP_MAX_PROCESSORS); + + xx=x/(MAP_SCALE*COORDINATE_SCALE); + yy=y/(MAP_SCALE*COORDINATE_SCALE); + height=z/COORDINATE_SCALE-elevations[yy][xx]; + if (height<0) { + if (elevations[yy][xx]>WATER_ELEVATION*MAP_SCALE) { + dc->color=bkcolor=BLACK; + if (!game_over) { + GrRect(dc,0,0,dc->width,dc->height); + music_mute=TRUE; + Beep; + game_over=TRUE; + music_mute=FALSE; + } + } else + bkcolor=BLUE; + } else + bkcolor=LTCYAN; + + if (height>=0 && !(-ã/4<=Wrap(è-ã)<ã/4)) { + DrawHorizon(dc); + DCDepthBufRst(dc); + + //Signal all cores to start update + mp.doc_update=1<x-xx)+SqrI64(tempf->y-yy)x,tempf->y,tempf->z,$IB,"<1>",1$); + tempf=tempf->next; + } + + //Wait for all cores to complete. + LBts(&Fs->task_flags,TASKf_IDLE); + for (i=1;itask_flags,TASKf_IDLE); + + last_t=mp.update_done_t[0]; + for (i=1;iwin_max_refresh)/last_t; + v_grid_size=Limit(v_grid_size,20,200); + //Regulate how much grid expands in the distance. + if (mp.mp_cnt>1) + span_factor*=0.90+0.10*mp.update_done_t[mp.mp_cnt-1]/mp.update_done_t[0]; + span_factor=Limit(span_factor,.30,3.0); + + } else { + dc->color=bkcolor; + GrRect(dc,0,0,dc->width,dc->height); + } + dc->pen_width=2; + if (bkcolor==BLUE) + dc->color=WHITE; + else + dc->color=BLACK; + dc->flags&=~DCF_TRANSFORMATION; + GrLine3(dc,cx+5,cy,0,cx-5,cy,0); + GrLine3(dc,cx,cy+5,0,cx,cy-5,0); + GrPrintF(dc,0,0,"é1:%5.1f è:%5.1f é2:%5.1f Box:%5.1f", + é1*180/ã,è*180/ã,é2*180/ã,v_grid_size); + GrPrintF(dc,0,FONT_HEIGHT,"x:%5.1f y:%5.1f z:%5.1f height:%3d score:%d high:%d", + ToF64(x)/COORDINATE_SCALE,ToF64(y)/COORDINATE_SCALE,ToF64(z)/COORDINATE_SCALE, + height,game_score,best_score); + + if (game_over && Blink(,tP)) { + dc->color=RED; + GrPutS(dc,(Fs->win_pixel_width-9*FONT_WIDTH)/2, + (Fs->win_pixel_height-FONT_HEIGHT)/2,"Game Over"); + } else if (tP-game_t0<5.0 && Blink(,tP)) { + dc->color=WHITE; + GrPutS(dc,(Fs->win_pixel_width-10*FONT_WIDTH)/2, + (Fs->win_pixel_height-FONT_HEIGHT)/2,"Catch Fish"); + } +//We made an alias of this we don't want freed. + dc->depth_buf=NULL; + DCDel(dc); + WinMgrSync; +} + +#define ANIMATE_MS 10 + +U0 AnimateTask(I64) +{ + //This just steadily moves the airplane fwd. + I64 *s2w,x1,y1,z1; + F64 t0=tP(Fs->parent_task),mS; + Fish *tempf,*tempf1; + while (TRUE) { + mS=1000*(tP(Fs->parent_task)-t0); + t0=tP(Fs->parent_task); + if (!game_over) { + //Screen to world coordinates + s2w=GrIdent; + GrRotZEqu(s2w,-é1); + GrRotXEqu(s2w,-è); + GrRotZEqu(s2w,-é2); + x1=0;y1=0;z1=-speed*mS*COORDINATE_SCALE; + GrRot(s2w,&x1,&y1,&z1); + x+=x1; + y+=y1; + z+=z1; + Free(s2w); + x1=x/COORDINATE_SCALE; y1=y/COORDINATE_SCALE; z1=z/COORDINATE_SCALE; + if (z1next; + if (SqrI64(tempf->x-x1)+SqrI64(tempf->y-y1)best_score) + best_score=game_score; + QueRem(tempf); + Free(tempf); + music_mute=TRUE; + Snd(1000); Sleep(200); Snd(0); + music_mute=FALSE; + } + tempf=tempf1; + } + } else { + if (-ã/4<=è<=ã/4) + speed+=0.0005; + else if (-3*ã/4<=è<=3*ã/4) + speed+=0.0001; + else + speed-=0.0001; + speed=Limit(speed+(0.0005-0.0002*Abs(è)/(ã/4)),0.1,5.0); + } + } + WinMgrSync; + } +} + +U0 MPEnd() +{ + mp.done_flags=0; + mp.app_done=TRUE; + //Wait for all cores to exit + while (mp.done_flags!=1<task_end_cb=ExtFind("SndTaskEndCB");//(Can't take addr of an extern function.) +#else + Fs->task_end_cb=&SndTaskEndCB; +#endif + MusicSettingsRst; + music_stacatto_factor=0.2; + while (TRUE) { + Play("W13eBDEDBDEDFEEDFEED"); + Play("BDEDBDEDFEEDFEED"); + } +} + +U0 Init(I64 _mp_cnt) +{ + I64 i; + main_dc=DCNew(DCT_COLOR8,GR_WIDTH,GR_HEIGHT); + critical_section_flag=0; + game_over=FALSE; + game_score=0; + MemSet(&mp,0,sizeof(MPCtrl)); + if (_mp_cnt<=mp_cnt) + mp.mp_cnt=_mp_cnt; + else + mp.mp_cnt=mp_cnt; + QueInit(&fish_root); + InitMap; + DCAllocDepthBuf(main_dc); + + Fs->win_max_refresh=30.0; + + v_grid_size=64.0; + span_factor=1.0; + è =-90.0*ã/180.0; + é1= 0.0*ã/180.0; + é2= 0.0*ã/180.0; + speed = 2.5; + + x=MAP_WIDTH>>1 *COORDINATE_SCALE*MAP_SCALE; + y=MAP_HEIGHT>>1*COORDINATE_SCALE*MAP_SCALE; + z=64 *COORDINATE_SCALE*MAP_SCALE; + + for (i=1;itask_end_cb=&TaskEndCB; + game_t0=tP; +} + +U0 CleanUp() +{ + Fish *tempf=fish_root.next,*tempf1; + Panel *tempp=panel_root,*tempp1; + + MPEnd; + + while (tempf!=&fish_root) { + tempf1=tempf->next; + QueRem(tempf); + Free(tempf); + tempf=tempf1; + } + while (tempp) { + tempp1=tempp->next; + Free(tempp->pts); + Free(tempp); + tempp=tempp1; + } + Free(panels_processed_bitmap); + DCDel(main_dc); +} + +U0 EagleDive(I64 _mp_cnt=MP_MAX_PROCESSORS) +{ + I64 ch,sc; + F64 pp,tt1,tt2; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + //We really can't afford to run at 60Hz. This is how often VGA + //memory is updated, not related to actual hardware refresh rates. + + WordStat; + MenuPush( + "File {" + " Abort(,CH_SHIFT_ESC);" + " Exit(,CH_ESC);" + "}" + "Play {" + " Restart(,CH_NEW_LINE);" + " Down(,,SC_CURSOR_UP);" + " Up(,,SC_CURSOR_DOWN);" + " Left(,,SC_CURSOR_LEFT);" + " Right(,,SC_CURSOR_RIGHT);" + "}" + ); + WinMax; + WinBorder; + "Initializing...\n"; + Fs->song_task=Spawn(&SongTask,NULL,"Song",Fs); + Init(_mp_cnt); + Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",Fs); + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + try //in case is pressed. + do { + if (ScanKey(&ch,&sc)) { + pp=è; tt1=é1; tt2=é2; + switch (ch) { + case 0: + switch (sc.u8[0]) { + case SC_CURSOR_DOWN: + è +=-CTRLS_SCALE*Cos(tt1); + é2+=-CTRLS_SCALE*Sin(tt1)*Sin(è); + break; + case SC_CURSOR_UP: + è -=-CTRLS_SCALE*Cos(tt1); + é2-=-CTRLS_SCALE*Sin(tt1)*Sin(è); + break; + case SC_CURSOR_RIGHT: + é1+=CTRLS_SCALE; + break; + case SC_CURSOR_LEFT: + é1-=CTRLS_SCALE; + break; + } + break; + case CH_NEW_LINE: + Fs->draw_it=NULL; + CleanUp; + WinMgrSync; + Init(_mp_cnt); + Fs->draw_it=&DrawIt; + break; + } + é1=Wrap(é1); + è =Wrap(è); + é2=Wrap(é2); + } else + BSPEagleDive; + } while (ch!=CH_SHIFT_ESC && ch!=CH_ESC); + catch + CatchAll; + SettingsPop; + CleanUp; +#ifnstatic + AcctRegWriteBranch("SparrowOS/EagleDive","I64 best_score=%d;\n",best_score); +#endif + MenuPop; +} + +EagleDive; +.¨¢¢¨¢¨¢¨˜˜¢ˆ¢ˆxx¢h¢hXX¢H¢H88¢(¢(¢¨¨""2¨2¨BBR¨R¨bbr¨r¨‚‚’¨’!r8P"!t2R!v,T!N*p@!L.lD!L4hH!Tx&!Xz !\|!ZDtLâÿÿÿ%ãÿÿÿ# \ No newline at end of file diff --git a/SparrowOS/Demo/GameStarters/FPS.CPP b/SparrowOS/Demo/GameStarters/FPS.CPP new file mode 100644 index 0000000..fbebfc3 --- /dev/null +++ b/SparrowOS/Demo/GameStarters/FPS.CPP @@ -0,0 +1,659 @@ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + + +AcctRegSetDftEntry("SparrowOS/FPS","F64 best_score=9999;\n"); +AcctRegExecuteBranch("SparrowOS/FPS"); + +//Set snap to 4 and width to 4 +//if you edit this map. + +//Don't forget to change the +//starting pos. +#define MAN_START_X 0 +#define MAN_START_Y 4.5 + +$SP,"<1>",1$ + + + + + + + + + + + + + + + +#define MONSTER_SCALE 2.0 + + + $SP,"<2>",2$ + + + + + + + + + + + $SP,"<3>",3$ + + + + + + + + + + $SP,"<4>",4$ + + + + + + + +#define PLANT_SCALE 2.0 + + + + $SP,"<5>",5$ + + + + + +#define SCREEN_SCALE 512 +#define PLOT_GRID_WIDTH 24 +#define PLOT_GRID_HEIGHT 24 +#define MAN_HEIGHT 125 + +#define MAP_SCALE 4 +I64 map_width,map_height; +U8 *map=NULL, +*panels_processed_bitmap=NULL; + +I64 man_xx,man_yy; +F64 man_é; + +F64 t0,tf; + +#define NUM_MONSTERS 16 +I64 monsters_left; +class Monster +{ + I64 x,y; + Bool dead,pad[7]; +} monsters[NUM_MONSTERS]; + +U0 FPSTransform(CDC *dc,I64 *x,I64 *y,I64 *z) +{ + I64 zz; + GrRot(dc->r,x,y,z); + zz=SCREEN_SCALE/3+*z; + if (zz<1) zz=1; + *x=SCREEN_SCALE/2* *x/zz; + *y=SCREEN_SCALE/2* (*y+MAN_HEIGHT)/zz; + *x+=dc->x; + *y+=dc->y; + *z+=dc->z; +} + +#define LOS_SCALE 4 + +Bool LOSPlot(U8 *,I64 x,I64 y,I64) +{ + if (!map[(y/LOS_SCALE)*map_width+(x/LOS_SCALE)]) + return FALSE; + else + return TRUE; +} + +Bool LOS(I64 x1,I64 y1,I64 x2,I64 y2) +{ //Line of sight + return Line(NULL,x1*LOS_SCALE/SCREEN_SCALE,y1*LOS_SCALE/SCREEN_SCALE,0, + x2*LOS_SCALE/SCREEN_SCALE,y2*LOS_SCALE/SCREEN_SCALE,0,&LOSPlot); +} + +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 i,j,*r1,*r2,*r3,*s2w,xx,yy,zz,x,y,x1,y1,z1, + x1w,y1w,x1h,y1h,xh,yh,zh, + cx=task->win_pixel_width/2, + cy=task->win_pixel_height/2, + _man_xx=man_xx,_man_yy=man_yy; + U8 *inter; + F64 tt,_man_é=man_é; + CD3I32 poly[4]; + + task->text_attr=BLACK<<4; + DCAllocDepthBuf(dc); + MemSet(panels_processed_bitmap,0,(map_width*map_height+7)>>3); + + //World to screen + GrRotZEqu(dc->r,_man_é+ã/2); + GrRotXEqu(dc->r,ã/2); + GrSetRotMat(dc,dc->r); + + xh=-_man_xx/SCREEN_SCALE; yh=-_man_yy/SCREEN_SCALE; zh=0; + GrRot(dc->r,&xh,&yh,&zh); + GrSetTranslation(dc->r,xh,yh,zh); + + //Screen to world + s2w=GrRotX(-ã/2,task); + GrRotZEqu(s2w,-_man_é-ã/2); + xh=0; yh=0; zh=SCREEN_SCALE; + GrRot(s2w,&xh,&yh,&zh); + + //Rotate light source + xx=dc->ls.x; yy=dc->ls.y; zz=-dc->ls.z; + (*dc->transform)(dc,&xx,&yy,&zz); + dc->ls.x=xx; dc->ls.y=yy; dc->ls.z=zz; + + dc->flags|=DCF_TRANSFORMATION; + dc->transform=&FPSTransform; + dc->x=cx; + dc->y=cy; + r1=GrRotX(-ã/2,task); + GrRotZEqu(r1,tP(task)); + GrScaleMatEqu(r1,MONSTER_SCALE); + + r2=GrIdent(task); + GrScaleMatEqu(r2,MONSTER_SCALE); + + r3=GrRotX(-ã/2,task); + GrScaleMatEqu(r3,PLANT_SCALE); + + x1h=_man_xx+yh*PLOT_GRID_WIDTH/2+xh*(PLOT_GRID_HEIGHT-1); + y1h=_man_yy-xh*PLOT_GRID_WIDTH/2+yh*(PLOT_GRID_HEIGHT-1); + xh>>=1; yh>>=1; + for (j=0;jcolor=map[yy*map_width+xx]) && + LOS(xx*SCREEN_SCALE+SCREEN_SCALE/2,yy*SCREEN_SCALE+SCREEN_SCALE/2, + _man_xx,_man_yy)) { + poly[0].x=x; + poly[0].y=y; + poly[0].z=0; + poly[1].x=x+SCREEN_SCALE; + poly[1].y=y; + poly[1].z=0; + poly[2].x=x+SCREEN_SCALE; + poly[2].y=y+SCREEN_SCALE; + poly[2].z=0; + poly[3].x=x; + poly[3].y=y+SCREEN_SCALE; + poly[3].z=0; + GrFillPoly3(dc,4,poly); + if (dc->color==GREEN) { + x1=x+SCREEN_SCALE/2; + y1=y+SCREEN_SCALE/2; + z1=0; + GrTransform(dc,&x1,&y1,&z1); + if (z1>0) + CSpritePlotRotMat3b(dc,x+SCREEN_SCALE/2,y+SCREEN_SCALE/2,0,$IB,"<5>",5$,r3); + } + + if (!map[(yy+1)*map_width+xx]) { + dc->color=LTGRAY; + poly[0].x=x; + poly[0].y=y+SCREEN_SCALE; + poly[0].z=0; + poly[1].x=x+SCREEN_SCALE; + poly[1].y=y+SCREEN_SCALE; + poly[1].z=0; + poly[2].x=x+SCREEN_SCALE; + poly[2].y=y+SCREEN_SCALE; + poly[2].z=SCREEN_SCALE; + poly[3].x=x; + poly[3].y=y+SCREEN_SCALE; + poly[3].z=SCREEN_SCALE; + GrFillPoly3(dc,4,poly); + } + if (!map[yy*map_width+xx+1]) { + dc->color=DKGRAY; + poly[0].x=x+SCREEN_SCALE; + poly[0].y=y; + poly[0].z=0; + poly[1].x=x+SCREEN_SCALE; + poly[1].y=y+SCREEN_SCALE; + poly[1].z=0; + poly[2].x=x+SCREEN_SCALE; + poly[2].y=y+SCREEN_SCALE; + poly[2].z=SCREEN_SCALE; + poly[3].x=x+SCREEN_SCALE; + poly[3].y=y; + poly[3].z=SCREEN_SCALE; + GrFillPoly3(dc,4,poly); + } + if (!map[(yy-1)*map_width+xx]) { + dc->color=LTGRAY; + poly[0].x=x; + poly[0].y=y; + poly[0].z=0; + poly[1].x=x+SCREEN_SCALE; + poly[1].y=y; + poly[1].z=0; + poly[2].x=x+SCREEN_SCALE; + poly[2].y=y; + poly[2].z=SCREEN_SCALE; + poly[3].x=x; + poly[3].y=y; + poly[3].z=SCREEN_SCALE; + GrFillPoly3(dc,4,poly); + } + if (!map[yy*map_width+xx-1]) { + dc->color=DKGRAY; + poly[0].x=x; + poly[0].y=y; + poly[0].z=0; + poly[1].x=x; + poly[1].y=y+SCREEN_SCALE; + poly[1].z=0; + poly[2].x=x; + poly[2].y=y+SCREEN_SCALE; + poly[2].z=SCREEN_SCALE; + poly[3].x=x; + poly[3].y=y; + poly[3].z=SCREEN_SCALE; + GrFillPoly3(dc,4,poly); + } + } + } + x1w-=yh; + y1w+=xh; + } + x1h-=xh; + y1h-=yh; + } + + //Draw Monsters + for (i=0;i0) { + if (monsters[i].dead) + CSpritePlotRotMat3b(dc,x,y,0,$IB,"<2>",2$,r2); + else { + tt=Tri(tP(task),1.0); + inter=CSpriteInterpolate($IB,"<3>",3$,$IB,"<4>",4$,tt); + CSpritePlotRotMat3b(dc,x,y,0,inter,r1); + Free(inter); + } + } + } + } + Free(r1); + Free(r2); + Free(r3); + + //Draw Map heads-up display, scaled 2 pixels + Free(dc->r); + GrSetRotMat(dc,GrIdent(task)); + dc->x=task->win_pixel_width -2*map_width; + dc->y=task->win_pixel_height-2*map_height; + dc->z=0; + dc->transform=&GrTransform; + dc->pen_width=2; + for (i=0;icolor=map[(map_height-1-i)*map_width+j]; + GrPlot3(dc,2*j,2*i,0); + } + + //Draw Things on heads-up Map + dc->color=LTPURPLE; + for (i=0;icolor=LTCYAN; + GrPlot3(dc,2*(_man_xx/SCREEN_SCALE),2*(map_height-1-_man_yy/SCREEN_SCALE),0); + + + if (tf) { + dc->color=LTRED; + if (Blink(,tP(task))) + GrPutS(dc,cx-(FONT_WIDTH*14)/2,cy-FONT_HEIGHT/2,"Game Completed"); + tt=tf; + } else { + dc->color=LTGREEN; + GrLine(dc,cx-5,cy,cx+5,cy); + GrLine(dc,cx,cy-5,cx,cy+5); + tt=tP(task); + } + GrPrintF(dc,0,0,"Enemy:%d Time:%3.2f Best:%3.2f",monsters_left,tt-t0,best_score); + Free(s2w); +} + +U0 Fire() +{ + I64 i,x,y; + F64 d,dx,dy,xx=Cos(man_é),yy=Sin(man_é); + Noise(100,300,1000); + for (i=0;i0.995) { + monsters[i].dead=TRUE; + if (!--monsters_left) { + tf=tP; + if (tf-t0",1$,&min_map_x,&max_map_x,&min_map_y,&max_map_y); + map_width =(max_map_x-min_map_x+1)/MAP_SCALE+2; + map_height=(max_map_y-min_map_y+1)/MAP_SCALE+2; + Free(map); + Free(panels_processed_bitmap); + map=CAlloc(map_width*map_height*sizeof(U8)); + panels_processed_bitmap=MAlloc((map_width*map_height+7)>>3); + dc=DCNew(DCT_COLOR8,map_width*MAP_SCALE,map_height*MAP_SCALE); + CSpritePlot3(dc,-min_map_x+MAP_SCALE,-min_map_y+MAP_SCALE,0,$IB,"<1>",1$); + for (y=1;yparent_task)/2); + for (i=0;iSCREEN_SCALE/2 || + !map[(y/SCREEN_SCALE)*map_width+x/SCREEN_SCALE-1] && + x-RoundI64(x,SCREEN_SCALE)SCREEN_SCALE/2 || + !map[(y/SCREEN_SCALE-1)*map_width+x/SCREEN_SCALE] && + y-RoundI64(y,SCREEN_SCALE)task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + while (TRUE) { + Play("W12q.A#1eG2AeA#qAq.A#1eG2eAeA#qA"); + Play("q.A#1eG2A#A1qG2q.A#1eG2A#A1qG"); + Play("3eA#A2qG3eA#A2qG3eA#A2G3AA#A2qG"); + } +} + +U0 MoveMan(F64 é) +{ + I64 x,y,color,step=SCREEN_SCALE/2; + do { + x=man_xx+step*Cos(é); + y=man_yy-step*Sin(é); + x=Limit(x,0,map_width*SCREEN_SCALE); + y=Limit(y,0,map_height*SCREEN_SCALE); + color=map[y/SCREEN_SCALE*map_width+x/SCREEN_SCALE]; + if (color==RED || color==GREEN) { + man_xx=x; + man_yy=y; + break; + } else + step>>=1; + } while (step); +} + +#define MICRO_STEPS 4 +U0 RotateMan(F64 d) +{ + I64 i; + for (i=0;ianimate_task=Spawn(&AnimateTask,NULL,"Animate",Fs); + Fs->song_task=Spawn(&SongTask,NULL,"Song",Fs); + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + + try { + while (TRUE) { + switch (GetKey(&sc)) { + case CH_SPACE: + Fire; + break; + case CH_NEW_LINE: + Init; + break; + case CH_ESC: + case CH_SHIFT_ESC: + goto fs_done; + case 0: + switch (sc.u8[0]) { + case SC_CURSOR_RIGHT: + Spawn(&RotateMan,(ã/32)(I64)); + break; + case SC_CURSOR_LEFT: + Spawn(&RotateMan,(-ã/32)(I64)); + break; + case SC_CURSOR_UP: + MoveMan(man_é); + break; + case SC_CURSOR_DOWN: + MoveMan(man_é+ã); + break; + } + break; + } + } +fs_done: + } catch + CatchAll; + SettingsPop; + CleanUp; + MenuPop; + AcctRegWriteBranch("SparrowOS/FPS","F64 best_score=%5.4f;\n",best_score); +} + +FPS; +Æ    <<<< ,,,$8888$$$$444 4 ( ( ((0,0T0T0TLTL,L,L,404P4P4PHPH0H0H0808L8L8LDLD4D4D4<4<H<H<H@H@8@T@l@l4lLlLˆLˆLˆ$ˆ$€$€$€0€0l0p4„4„(„H€HpHpDp8p8€8€8€D€DtHtDt<t<|<x@|@|DxD„ „„tppp\\\\llhlll````ddd h hXTPPPLLL(@@8HHHH8888DD D D <Z,u @ ZDD<DDD\D\DdT0T8THL0LLd d hh88x8|8|4x4Z<HñÿÿÿñÿÿÿØÿÿÿìÿÿÿØÿÿÿûÿÿÿ¿ÿÿÿ¿ÿÿÿØÿÿÿØÿÿÿìÿÿÿƒÿÿÿçÿÿÿƒÿÿÿûÿÿÿƒÿÿÿƒÿÿÿ +tÿÿÿöÿÿÿtÿÿÿ +¿ÿÿÿöÿÿÿ¿ÿÿÿƒÿÿÿ + +tÿÿÿ +ƒÿÿÿ +ûÿÿÿƒÿÿÿ +çÿÿÿƒÿÿÿ + +¿ÿÿÿ +¿ÿÿÿ +ûÿÿÿ¿ÿÿÿ +öÿÿÿ¿ÿÿÿ +ìÿÿÿØÿÿÿ +ñÿÿÿØÿÿÿ +Øÿÿÿ +Øÿÿÿ +ûÿÿÿ +ûÿÿÿ +ñÿÿÿûÿÿÿ +ìÿÿÿûÿÿÿ +ƒÿÿÿ +ìÿÿÿƒÿÿÿ +çÿÿÿ«ÿÿÿ-ìÿÿÿ«ÿÿÿ-«ÿÿÿ-«ÿÿÿ-°ÿÿÿ-°ÿÿÿ-ìÿÿÿ°ÿÿÿ-çÿÿÿ°ÿÿÿ-øÿÿÿxÿÿÿ ýÿÿÿ|ÿÿÿ xÿÿÿ xÿÿÿ |ÿÿÿ öÿÿÿtÿÿÿ +ÿÿÿÿxÿÿÿ ìÿÿÿûÿÿÿñÿÿÿûÿÿÿñÿÿÿûÿÿÿûÿÿÿìÿÿÿ +     !!&''"#%$$#       ! + + + $%*$*+'&('()&(( $++ +0/.112-,7 765343! 3 45833!839;:7;766;;1 Z<HñÿÿÿöÿÿÿñÿÿÿØÿÿÿìÿÿÿØÿÿÿûÿÿÿ¿ÿÿÿ¿ÿÿÿØÿÿÿØÿÿÿìÿÿÿöÿÿÿƒÿÿÿçÿÿÿƒÿÿÿûÿÿÿƒÿÿÿƒÿÿÿ +tÿÿÿöÿÿÿtÿÿÿ +¿ÿÿÿöÿÿÿ¿ÿÿÿƒÿÿÿ + +tÿÿÿ +ƒÿÿÿ +ûÿÿÿƒÿÿÿ +çÿÿÿƒÿÿÿ + +¿ÿÿÿ +¿ÿÿÿ +ûÿÿÿ¿ÿÿÿ +öÿÿÿ¿ÿÿÿ +ìÿÿÿØÿÿÿ +ñÿÿÿØÿÿÿ +Øÿÿÿ +Øÿÿÿ +ûÿÿÿûÿÿÿñÿÿÿûÿÿÿìÿÿÿûÿÿÿƒÿÿÿ +ìÿÿÿƒÿÿÿ +çÿÿÿ«ÿÿÿ-ìÿÿÿ«ÿÿÿ-«ÿÿÿÓÿÿÿ«ÿÿÿÓÿÿÿ°ÿÿÿÓÿÿÿ°ÿÿÿÓÿÿÿìÿÿÿ°ÿÿÿ-çÿÿÿ°ÿÿÿ-øÿÿÿxÿÿÿ ýÿÿÿ|ÿÿÿ xÿÿÿ xÿÿÿ |ÿÿÿ öÿÿÿtÿÿÿ +ÿÿÿÿxÿÿÿ ìÿÿÿûÿÿÿñÿÿÿûÿÿÿñÿÿÿûÿÿÿ-ûÿÿÿ-ìÿÿÿ-- +     !!&''"#%$$#       ! + + + $%*$*+'&('()&(( $++ +0/.112-,7 765343! 3 45833!839;:7;766;;1 Z<HñÿÿÿñÿÿÿØÿÿÿìÿÿÿØÿÿÿûÿÿÿ¿ÿÿÿ¿ÿÿÿØÿÿÿØÿÿÿìÿÿÿöÿÿÿƒÿÿÿçÿÿÿƒÿÿÿûÿÿÿƒÿÿÿƒÿÿÿ +tÿÿÿöÿÿÿtÿÿÿ +¿ÿÿÿöÿÿÿ¿ÿÿÿƒÿÿÿ + +tÿÿÿ +ƒÿÿÿ +ûÿÿÿƒÿÿÿ +çÿÿÿƒÿÿÿ + +¿ÿÿÿ +¿ÿÿÿ +ûÿÿÿ¿ÿÿÿ +öÿÿÿ¿ÿÿÿ +ìÿÿÿØÿÿÿ +ñÿÿÿØÿÿÿ +Øÿÿÿ +Øÿÿÿ +ûÿÿÿûÿÿÿñÿÿÿûÿÿÿìÿÿÿûÿÿÿƒÿÿÿ +ìÿÿÿƒÿÿÿ +çÿÿÿ«ÿÿÿÓÿÿÿìÿÿÿ«ÿÿÿÓÿÿÿ«ÿÿÿ-«ÿÿÿ-°ÿÿÿ-°ÿÿÿ-ìÿÿÿ°ÿÿÿÓÿÿÿçÿÿÿ°ÿÿÿÓÿÿÿøÿÿÿxÿÿÿ ýÿÿÿ|ÿÿÿ xÿÿÿ xÿÿÿ |ÿÿÿ öÿÿÿtÿÿÿ +ÿÿÿÿxÿÿÿ ìÿÿÿûÿÿÿ#ñÿÿÿûÿÿÿ#ñÿÿÿ#ûÿÿÿûÿÿÿìÿÿÿ#öÿÿÿ +     !!&''"#%$$#       ! + + + $%*$*+'&('()&(( $++ +0/.112-,7 765343! 3 45833!839;:7;766;;1 ,ÎÿÿÿÎÿÿÿûÿÿÿçÿÿÿûÿÿÿçÿÿÿµÿÿÿ�ÿÿÿƒÿÿÿ�ÿÿÿâÿÿÿµÿÿÿâÿÿÿûÿÿÿÎÿÿÿûÿÿÿÎÿÿÿûÿÿÿûÿÿÿçÿÿÿûÿÿÿûÿÿÿçÿÿÿûÿÿÿµÿÿÿûÿÿÿ�ÿÿÿûÿÿÿ�ÿÿÿâÿÿÿûÿÿÿµÿÿÿâÿÿÿ�ÿÿÿµÿÿÿâÿÿÿµÿÿÿâÿÿÿ�ÿÿÿ�ÿÿÿûÿÿÿµÿÿÿûÿÿÿâÿÿÿµÿÿÿûÿÿÿâÿÿÿ�ÿÿÿûÿÿÿ  +  + +        +  + +   + ÷ÿÿÿ÷ÿÿÿñÿÿÿ÷ÿÿÿ ôÿÿÿ ÷ÿÿÿ øÿÿÿçÿÿÿìÿÿÿçÿÿÿìÿÿÿçÿÿÿøÿÿÿøÿÿÿçÿÿÿðÿÿÿçÿÿÿðÿÿÿçÿÿÿøÿÿÿçÿÿÿçÿÿÿ      +     + + +        \ No newline at end of file diff --git a/SparrowOS/Demo/GameStarters/Halogen.CPP b/SparrowOS/Demo/GameStarters/Halogen.CPP new file mode 100644 index 0000000..dd4fd44 --- /dev/null +++ b/SparrowOS/Demo/GameStarters/Halogen.CPP @@ -0,0 +1,163 @@ +#define NUM_ROAD 512 +#define ROAD_WIDTH_BY_2 200 +#define CAR_WIDTH_BY_2 100 + +I64 road_x[NUM_ROAD],road_trend; +F64 speed,distance; +I64 road_ptr=0,car_x; +F64 t_last; +Bool crash; + +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 h=task->win_pixel_width,v=task->win_pixel_height; + I64 i,x,y,xx; + Bool old_preempt=Preempt(OFF); + xx=h>>1-car_x+road_x[road_ptr&(NUM_ROAD-1)]; + + task->text_attr=BLACK+BLACK<<4; + dc->color=LTGRAY; + for (i=0;i>1-car_x+road_x[(i+road_ptr)&(NUM_ROAD-1)]; + y=v-0.5*i; + if (ycolor=WHITE; + + x=h>>1-CAR_WIDTH_BY_2; + if (x>1+CAR_WIDTH_BY_2; + if (x>xx+ROAD_WIDTH_BY_2) + crash=TRUE; + GrLine(dc,x-10,v,x-40,v-100); + GrLine(dc,x+10,v,x+40,v-100); + + dc->color=YELLOW; + if (crash) + GrPutS(dc,h>>1-FONT_WIDTH*4,(v-FONT_HEIGHT)>>1,"Game Over"); + Preempt(old_preempt); +} + +U0 UpdateRoad() +{ + F64 t0=tP; + distance+=speed*(t0-t_last); + t_last=t0; + while (distance>1.0) { + road_trend=LimitI64(road_trend+SignI64(RandU16%3-1),-5,5); + road_x[road_ptr&(NUM_ROAD-1)]= + road_x[(road_ptr-1)&(NUM_ROAD-1)]+=road_trend/3; + road_ptr++; + distance-=1.0; + } +} + +U0 Init() +{ + I64 i,x=0; + speed=0; + distance=0; + road_trend=0; + road_ptr=0; + car_x=0; + for (i=0;idraw_it=&DrawIt; + try { + while (TRUE) { + switch (ScanMsg(&p1,&p2,1<200) speed=200; + break; + case SC_CURSOR_DOWN: + if (--speed<0) speed=0; + break; + } + if (crash) + Snd(0); + else { + if (speed) + Snd(speed+10); + else + Snd(0); + UpdateRoad; + } + Sleep(10); + } +ha_done: + GetMsg(,,1<color=RED; + temps=ode->next_spring; + while (temps!=&ode->next_spring) { + GrLine(dc,temps->end1->x,temps->end1->y, + temps->end2->x,temps->end2->y); + temps=temps->next; + } + + dc->color=BLACK; + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + GrCircle(dc,tempm->x,tempm->y,tempm->radius); + tempm=tempm->next; + } + Suspend(task,old_suspend); +} + + +U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *) +{ +//The forces due to springs and drag are +//automatically handled by the +//ode code. We can add new forces +//here. + F64 d,dd; + CD3 p; + MyMass *tempm1,*tempm2; + + tempm1=ode->next_mass; + while (tempm1!=&ode->next_mass) { + tempm2=tempm1->next; + while (tempm2!=&ode->next_mass) { + D3Sub(&tempm2->state->x,&tempm1->state->x,&p); + dd=D3SqrNorm(&p); + if (dd<=Sqr(tempm1->radius+tempm2->radius)) { + d=Sqrt(dd)+0.0001; + dd=10.0*Sqr(Sqr(Sqr(tempm1->radius+tempm2->radius)-dd)); + D3MulEqu(&p,dd/d); + D3AddEqu(&tempm2->DstateDt->DxDt,&p); + D3SubEqu(&tempm1->DstateDt->DxDt,&p); + } + tempm2=tempm2->next; + } + tempm1=tempm1->next; + } +} + +U0 PlaceMass(I64 x, I64 y) +{ + MyMass *tempm=CAlloc(sizeof(MyMass)); + tempm->mass=1.0; + tempm->drag_profile_factor=100.0; + tempm->x=x; + tempm->y=y; + tempm->radius=10*(Rand+0.25); + QueIns(tempm,ode->last_mass); +} + +U0 PlaceSpring(MyMass *tempm1,MyMass *tempm2) +{ + MySpring *temps=CAlloc(sizeof(MySpring)); + temps->end1=tempm1; + temps->end2=tempm2; + temps->constant=10000; + temps->rest_len=100; + QueIns(temps,ode->last_spring); +} + +U0 Init() +{ + ode=ODENew(0,1e-4,ODEF_HAS_MASSES); + ode->derivative=&MyDerivative; + ode->drag_v2=0.002; + ode->drag_v3=0.00001; + ode->acceleration_limit=5e3; + + QueIns(ode,Fs->last_ode); +} + +U0 CleanUp() +{ + QueRem(ode); + QueDel(&ode->next_mass,TRUE); + QueDel(&ode->next_spring,TRUE); + ODEDel(ode); +} + +U0 MassSpringDemo() +{ + I64 msg_code,p1,p2; + MyMass *tempm1=NULL,*tempm2=NULL; + + PopUpOk("Left-Click to place mas\n" + "Right-Click and drag to\n" + "connect with spring.\n\n" + "Springs are 100 pixels long.\n"); + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WinMax; + +//This Preempt() eliminates a lot of hassles. +//The concern is about changing +//que links while the winmgr task +//is updating the ode or screen. + +//The Window mgr suspends this +//task while updating the ode. It +//will not be interrupted and with this +//preempt, we will not be interrupted. +//There is little downside to Preempt() +//since we will yield during GetMsg(). + Preempt(OFF); + + + Fs->win_inhibit|=WIF_DBL_CLICK; + WordStat; + + MenuPush( +"File {" +" Abort(,CH_SHIFT_ESC);" +" Exit(,CH_ESC);" +"}" +"Play {" +" Restart(,CH_NEW_LINE);" +"}" + ); + + Init; + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + + try { + while (TRUE) { + msg_code=GetMsg(&p1,&p2,1<-~b&Z8$&xK9YYn62nZ{{gpKT! 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 F1_0)=wcP*! literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/GameStarters/Navy.CPP b/SparrowOS/Demo/GameStarters/Navy.CPP new file mode 100644 index 0000000..cceb253 --- /dev/null +++ b/SparrowOS/Demo/GameStarters/Navy.CPP @@ -0,0 +1,770 @@ +#define GAME_SPEED_SCALE 0.1 + +F64 game_speed, + launch_unit_x1,launch_unit_y1,launch_unit_x2,launch_unit_y2,launch_t, + return_unit_x1,return_unit_y1,return_unit_x2,return_unit_y2,return_t, + set_é_unit_x1,set_é_unit_y1,set_é_unit_x2,set_é_unit_y2,set_é_t; +CTask *main_task; + +#define OT_CARRIER 0 +#define OT_CRUISER 1 +#define OT_FIGHTER 2 +#define OT_NUM_TYPES 3 + +#define OF_SHIP 1 +#define OF_ACTIVE 2 +#define OF_RETURNING 4 +#define OF_SHOOTING 8 + +class Obj +{ + Obj *next,*last; + Obj *next_in_squadron,*last_in_squadron; + Obj *host; + U8 player,type; + U16 flags; + I16 squadron,member_num; + F64 x,y,é,dé, + speed,turn_rate, + life_percent, + target_x,target_y, + ship_guns,ship_guns_range, + air_guns,air_guns_range, + fuel,max_fuel,fuel_burn_rate, + death_time,next_action_time; + I32 torpedos,max_torpedos; + F64 torpedos_range; +} obj_root; + +class Torpedo +{ + Torpedo *next,*last; + Obj *target; + F64 x,y,é,speed,timeout; +} torpedo_root; + +#define SA_PARKED 0 +#define SA_LAUNCHING 1 +#define SA_FLYING 2 +#define SA_SET_é 3 +#define SA_RETURNING 4 +#define SA_DEAD 5 + +class Squadron : Obj +{ + I64 action,dead_mask,total_mask; +} *squadrons; + + +U0 SquadronIns(Obj *o,Obj *pred) +{ + Obj *succ=pred->next_in_squadron; + o->next_in_squadron=succ; + o->last_in_squadron=pred; + pred->next_in_squadron=o; + succ->last_in_squadron=o; +} + +U0 SquadronRem(Obj *o) +{ + Obj *pred=o->last_in_squadron,*succ=o->next_in_squadron; + pred->next_in_squadron=succ; + succ->last_in_squadron=pred; +} + +#define NUM_PLAYERS 2 + +I64 num_carriers[NUM_PLAYERS]={2,3}, + num_cruisers[NUM_PLAYERS]={2,3}, + num_planes_per_squadron[NUM_PLAYERS]={6,5}, + num_squadrons_per_carrier[NUM_PLAYERS]={2,3}, + num_alive[NUM_PLAYERS], + num_squadrons; + +Obj *ObjFind(F64 x,F64 y, + I64 flag_mask=OF_ACTIVE|OF_RETURNING,I64 flag_val=OF_ACTIVE, + I64 type_mask=-1,I64 player_mask=-1,F64 *_d=NULL) +{ + Obj *tempo=obj_root.next,*best=NULL; + F64 dd,best_dd=MAX_F64; + while (tempo!=&obj_root) { + if (tempo->flags&flag_mask==flag_val && + Bt(&type_mask,tempo->type)&&Bt(&player_mask,tempo->player)) { + dd=Sqr(tempo->x-x)+Sqr(tempo->y-y); + if (ddnext; + } + if (_d) *_d=Sqrt(best_dd); + return best; +} + +U0 ObjDel(Obj *tempo) +{ + if (tempo) { + if (tP(main_task)death_time) + tempo->flags&=~OF_ACTIVE; + else { + if (tempo->squadron>=0) + SquadronRem(tempo); + QueRem(tempo); + if (tempo->squadron>=0) + LBts(&squadrons[tempo->squadron].dead_mask,tempo->member_num); + num_alive[tempo->player]--; + Free(tempo); + } + } +} + +$BG,1$ + + +$SP,"<1>",1$ + + + + +$SP,"<2>",2$ + + +$SP,"<3>",3$ + + + +$SP,"<4>",4$ + + + + +$SP,"<5>",5$ + + +$SP,"<6>",6$ +$BG$ +U8 *imgs[NUM_PLAYERS][OT_NUM_TYPES]={{$IB,"<1>",1$,$IB,"<2>",2$,$IB,"<3>",3$},{$IB,"<4>",4$,$IB,"<5>",5$,$IB,"<6>",6$}}; + +U0 DrawIt(CTask *task,CDC *dc) +{ + F64 d,cur_time=tP(task); + Obj *tempo; + Torpedo *tempt; + Bool old_preempt=Preempt(OFF); + task->text_attr=BLUE<<4+WHITE; + + + tempt=torpedo_root.next; + while (tempt!=&torpedo_root) { + dc->color=WHITE; + GrPlot(dc,tempt->x,tempt->y); + tempt=tempt->next; + } + + tempo=obj_root.next; + while (tempo!=&obj_root) { + if (tempo->flags&OF_ACTIVE && tempo->flags&OF_SHIP) { + CSpritePlotRotZ3b(dc,tempo->x,tempo->y,0,imgs[tempo->player][tempo->type],tempo->é+ã/2); + if (Blink(,cur_time)) { + dc->color=BLACK; + GrLine(dc,tempo->x+5,tempo->y,tempo->x+5+10,tempo->y); + + if (tempo->life_percent>0) { + if (tempo->life_percent<33) + dc->color=RED; + else if (tempo->life_percent<66) + dc->color=YELLOW; + else + dc->color=GREEN; + GrLine(dc,tempo->x+5,tempo->y,tempo->x+5+10*tempo->life_percent/100,tempo->y); + } + + dc->color=BLACK; + GrLine(dc,tempo->x+5,tempo->y+2,tempo->x+5+10,tempo->y+2); + d=tempo->fuel*100/tempo->max_fuel; + if (d>0) { + if (d<33) + dc->color=RED; + else if (d<66) + dc->color=YELLOW; + else + dc->color=GREEN; + GrLine(dc,tempo->x+5,tempo->y+2,tempo->x+5+10*d/100,tempo->y+2); + } + } + } + tempo=tempo->next; + } + + tempo=obj_root.next; + while (tempo!=&obj_root) { + if (tempo->flags&OF_ACTIVE && !(tempo->flags&OF_SHIP)) + CSpritePlotRotZ3b(dc,tempo->x,tempo->y,0,imgs[tempo->player][tempo->type],tempo->é+ã/2); + if (tempo->flags&OF_SHOOTING) { + dc->color=LTRED; + GrLine(dc,tempo->x,tempo->y,tempo->target_x,tempo->target_y,3); + } + tempo=tempo->next; + } + + dc->flags|=DCF_TRANSFORMATION; + if (cur_timecolor=LTGREEN; + GrArrow3(dc,launch_unit_x1,launch_unit_y1,0,launch_unit_x2,launch_unit_y2,0); + } + if (cur_timecolor=LTRED; + GrArrow3(dc,return_unit_x1,return_unit_y1,0,return_unit_x2,return_unit_y2,0); + } + if (cur_timecolor=YELLOW; + GrArrow3(dc,set_é_unit_x1,set_é_unit_y1,0,set_é_unit_x2,set_é_unit_y2,0); + } + + dc->color=YELLOW; + GrPrintF(dc,-task->win_scroll_x,-task->win_scroll_y,"Game Speed: %5.2f",game_speed); + dc->color=LTCYAN; + GrPrintF(dc,-task->win_scroll_x,-task->win_scroll_y+ FONT_HEIGHT,"Player 1: %d",num_alive[0]); + dc->color=LTPURPLE; + GrPrintF(dc,-task->win_scroll_x,-task->win_scroll_y+2*FONT_HEIGHT,"Player 2: %d",num_alive[1]); + + if ((!num_alive[0]||!num_alive[1]) && Blink(,cur_time)) { + if (!num_alive[1]) { + dc->color=LTGREEN; + GrPutS(dc,task->win_pixel_width>>1 -(FONT_WIDTH*14)/2-task->win_scroll_x, + task->win_pixel_height>>1-FONT_HEIGHT/2-task->win_scroll_y,"Game Completed"); + } else { + dc->color=LTRED; + GrPutS(dc,task->win_pixel_width>>1 -(FONT_WIDTH*9)/2-task->win_scroll_x, + task->win_pixel_height>>1-FONT_HEIGHT/2-task->win_scroll_y,"Game Over"); + } + } + Preempt(old_preempt); +} + +U0 Init() +{ + I64 i,fighter,ship,player,squadron, + w=Fs->win_pixel_width,h=Fs->win_pixel_height; + Squadron *temps; + Obj *tempo,*tempo1; + QueInit(&obj_root); + QueInit(&torpedo_root); + + Fs->win_scroll_x=0; + Fs->win_scroll_y=0; + game_speed=1.0; + launch_t=return_t=set_é_t=0; + main_task=Fs; + num_squadrons=0; + for (player=0;playertype=OT_CRUISER; tempo1->player=player; + tempo1->squadron=-1; tempo1->member_num=ship; + tempo1->flags=OF_ACTIVE|OF_SHIP; + tempo1->x=0.8*w*(Rand-0.5)+w>>1; tempo1->y=0.8*h*(Rand-0.5)+h>>1; + tempo1->host=NULL; + tempo1->speed=35.0; tempo1->turn_rate=2.5; + tempo1->é=2*ã*(Rand-0.5); tempo1->dé=0; + tempo1->life_percent=100.0; + tempo1->fuel=tempo1->max_fuel=100000; + tempo1->fuel_burn_rate=100.0; + tempo1->air_guns =5000; tempo1->air_guns_range =30.0; + tempo1->ship_guns=10000; tempo1->ship_guns_range=30.0; + tempo1->torpedos =tempo1->max_torpedos=0; + tempo1->torpedos_range =0.0; + tempo1->next_action_time=0; + QueIns(tempo1,obj_root.last); + } + + for (ship=0;shiptype=OT_CARRIER; tempo1->player=player; + tempo1->squadron=-1; tempo1->member_num=ship; + tempo1->flags=OF_ACTIVE|OF_SHIP; + tempo1->x=0.8*w*(Rand-0.5)+w>>1; tempo1->y=0.8*h*(Rand-0.5)+h>>1; + tempo1->host=NULL; + tempo1->speed=28.0; tempo1->turn_rate=1.0; + tempo1->é=2*ã*(Rand-0.5); tempo1->dé=0; + tempo1->life_percent=100.0; + tempo1->fuel=tempo1->max_fuel=750000; + tempo1->fuel_burn_rate=500.0; + tempo1->air_guns =5000; tempo1->air_guns_range =20.0; + tempo1->ship_guns=2000; tempo1->ship_guns_range=30.0; + tempo1->torpedos =tempo1->max_torpedos=0; + tempo1->torpedos_range =0.0; + tempo1->next_action_time=0; + QueIns(tempo1,obj_root.last); + + for (squadron=0;squadrontype=OT_FIGHTER; tempo->player=player; + tempo->squadron=num_squadrons; tempo->member_num=fighter; + tempo->flags=0; + tempo->host=tempo1; + tempo->speed=300.0; tempo->turn_rate=25.0; + tempo->life_percent=100.0; + tempo->fuel=tempo->max_fuel=1000; + tempo->fuel_burn_rate=1.0; + tempo->air_guns =35000; tempo->air_guns_range =8.0; + tempo->ship_guns=0; tempo->ship_guns_range=0.0; + tempo->torpedos =tempo->max_torpedos=1; + tempo->torpedos_range =20.0; + QueIns(tempo,obj_root.last); + } + } + } + } + squadrons=CAlloc(num_squadrons*sizeof(Squadron)); + for (i=0,temps=squadrons;inext_in_squadron=temps->last_in_squadron=temps; + temps->squadron=i; + } + tempo=obj_root.next; + while (tempo!=&obj_root) { + if (tempo->squadron>=0) { + temps=&squadrons[tempo->squadron]; + temps->host =tempo->host; + temps->player=tempo->player; + temps->total_mask=1<player]-1; + SquadronIns(tempo,temps->last_in_squadron); + } + tempo=tempo->next; + } +} + +U0 CleanUp() +{ + QueDel(&obj_root,TRUE); + QueDel(&torpedo_root,TRUE); + Free(squadrons); +} + +Obj *ObjLaunch(I64 player,I64 squadron=-1,Obj *host=NULL,F64 x=MAX_F64,F64 y=MAX_F64,F64 é=MAX_F64) +{ + Obj *tempo; + F64 cur_time=tP(main_task); + if (!host) + host=ObjFind(x,y,,,1<host->next_action_time) { + if (é==MAX_F64) + é=Arg(x-host->x,y-host->y); + tempo=obj_root.next; + while (tempo!=&obj_root) { + if (tempo->host==host && (squadron<0||tempo->squadron==squadron) && !(tempo->flags&OF_ACTIVE) && + (tempo->squadron<0||squadrons[tempo->squadron].action==SA_PARKED||squadrons[tempo->squadron].action==SA_LAUNCHING)) { + if (tempo->fuel<=0.0) //When low on fuel, not zero, gets launched and captured. + LBts(&squadrons[tempo->squadron].dead_mask,tempo->member_num); + else { + tempo->flags=tempo->flags&~OF_RETURNING|OF_ACTIVE; + tempo->é=host->é; + if (x==MAX_F64 || y==MAX_F64 || Sqr(x-host->x)+Sqr(y-host->y)>3*3) + tempo->dé=Wrap(é-tempo->é,-ã); + else + tempo->dé=0; + tempo->x=host->x; + tempo->y=host->y; + host->next_action_time=cur_time+0.25/game_speed; + return tempo; + } + } + tempo=tempo->next; + } + } + return NULL; +} + +Squadron *SquadronLaunch(I64 player,F64 x=MAX_F64,F64 y=MAX_F64) +{ + Squadron *temps; + Obj *tempo; + if (tempo=ObjLaunch(player,,,x,y)) { + if (player==0) { + launch_unit_x1=tempo->x; + launch_unit_y1=tempo->y; + launch_unit_x2=ipx-main_task->win_pixel_left-main_task->win_scroll_x; + launch_unit_y2=ipy-main_task->win_pixel_top -main_task->win_scroll_y; + launch_t=tP(main_task)+0.5; + } + if (tempo->squadron>=0) { + temps=&squadrons[tempo->squadron]; + if (temps->action==SA_PARKED) { + temps->action=SA_LAUNCHING; + temps->é=tempo->é+tempo->dé; + } + return temps; + } + } + return NULL; +} + + +Obj *ObjReturn(I64 player,F64 x,F64 y) +{ + Obj *tempo; + if (tempo=ObjFind(x,y,OF_ACTIVE,OF_ACTIVE,1<flags|=OF_RETURNING; + return tempo; +} + +Squadron *SquadronReturn(I64 player,F64 x,F64 y) +{ + Squadron *temps; + Obj *tempo; + if (tempo=ObjReturn(player,x,y)) { + if (player==0) { + return_unit_x1=tempo->x; + return_unit_y1=tempo->y; + if (tempo->host) { + return_unit_x2=tempo->host->x; + return_unit_y2=tempo->host->y; + return_t=tP(main_task)+0.5; + } + } + if (tempo->squadron>=0) { + temps=&squadrons[tempo->squadron]; + if (temps->action==SA_FLYING) + temps->action=SA_RETURNING; + return temps; + } + } + return NULL; +} + +Obj *ObjSeté(I64 player,F64 x=MAX_F64,F64 y=MAX_F64,F64 é=MAX_F64) +{ + Obj *tempo; + if ((tempo=ObjFind(x,y,,,,1<flags&OF_ACTIVE && !(tempo->flags&OF_RETURNING)) { + if (é==MAX_F64) + é=Arg(x-tempo->x,y-tempo->y); + tempo->dé+=Wrap(é-(tempo->é+tempo->dé),-ã); + return tempo; + } + return NULL; +} + +Squadron *SquadronSeté(I64 player,F64 x=MAX_F64,F64 y=MAX_F64,F64 é=MAX_F64) +{ + Squadron *temps; + Obj *tempo; + if (tempo=ObjSeté(player,x,y,é)) { + if (player==0) { + set_é_unit_x1=tempo->x; + set_é_unit_y1=tempo->y; + set_é_unit_x2=ipx-main_task->win_pixel_left-main_task->win_scroll_x; + set_é_unit_y2=ipy-main_task->win_pixel_top -main_task->win_scroll_y; + set_é_t=tP(main_task)+0.5; + } + if (tempo->squadron>=0) { + temps=&squadrons[tempo->squadron]; + if (temps->action==SA_FLYING) { + temps->action=SA_SET_é; + temps->é=tempo->é+tempo->dé; + } + return temps; + } + } + return NULL; +} + +U0 SquadronActions() +{ + I64 i,completed_mask; + Obj *tempo; + Squadron *temps; + for (i=0,temps=squadrons;iaction) { + case SA_LAUNCHING: + ObjLaunch(temps->player,i,temps->host,,,temps->é); + tempo=temps->next_in_squadron; + while (tempo!=temps) { + LBEqu(&completed_mask,tempo->member_num,tempo->flags&OF_ACTIVE); + tempo=tempo->next_in_squadron; + } + if (completed_mask|temps->dead_mask==temps->total_mask) + temps->action=SA_FLYING; + break; + case SA_FLYING: + tempo=temps->next_in_squadron; + while (tempo!=temps) { + LBEqu(&completed_mask,tempo->member_num,!(tempo->flags&OF_ACTIVE)); + tempo=tempo->next_in_squadron; + } + if (completed_mask|temps->dead_mask==temps->total_mask) + temps->action=SA_PARKED; + break; + case SA_SET_é: + tempo=temps->next_in_squadron; + while (tempo!=temps) { + tempo->dé+=Wrap(temps->é-(tempo->é+tempo->dé),-ã); + tempo=tempo->next_in_squadron; + } + temps->action=SA_FLYING; + break; + case SA_RETURNING: + tempo=temps->next_in_squadron; + while (tempo!=temps) { + tempo->flags|=OF_RETURNING; + LBEqu(&completed_mask,tempo->member_num,!(tempo->flags&OF_ACTIVE)); + tempo=tempo->next_in_squadron; + } + if (completed_mask|temps->dead_mask==temps->total_mask) + temps->action=SA_PARKED; + break; + } + if (temps->dead_mask==temps->total_mask) + temps->action=SA_DEAD; + } +} + +U0 AI(I64 player,F64 period) +{ + Obj *tempo; + tempo=obj_root.next; + while (tempo!=&obj_root) { + if (tempo->player==player) { + if (tempo->type==OT_CARRIER && Rand<5*period) + SquadronLaunch(player,tempo->x,tempo->y); + if (tempo->flags&OF_ACTIVE && !(tempo->flags&OF_RETURNING) && Rand<10.0*period) + SquadronSeté(player,tempo->x,tempo->y,tempo->é+pi/2*(Rand-0.5)); + } + tempo=tempo->next; + } +} + +U0 Combat(F64 period) +{ + F64 d; + Obj *tempo,*tempo1; + Torpedo *tempt; + tempo=obj_root.next; + while (tempo!=&obj_root) { + tempo->flags&=~OF_SHOOTING; + if (tempo->flags&OF_ACTIVE && + (tempo1=ObjFind(tempo->x,tempo->y,OF_ACTIVE,OF_ACTIVE,,1<<(tempo->player^1),&d))) { + tempo->target_x=tempo1->x; + tempo->target_y=tempo1->y; + if (tempo1->flags&OF_SHIP) { + if (tempo->torpedos && dtorpedos_range && Rand<125*period) { + tempo->torpedos--; + tempt=CAlloc(sizeof(Torpedo)); + tempt->x=tempo->x; + tempt->y=tempo->y; + tempt->speed=100; + d/=tempt->speed*(GAME_SPEED_SCALE*game_speed); + tempo1->death_time=tempt->timeout=tP(main_task)+d; + tempt->target=tempo1; + tempt->é=Arg(tempo1->x-tempo->x,tempo1->y-tempo->y); + QueIns(tempt,torpedo_root.last); + Sweep(2000,2000,300); + } else if (tempo->ship_guns>0 && dship_guns_range) { + tempo->flags|=OF_SHOOTING; + if (Rand<125.0*period) { + tempo1->life_percent-=tempo->ship_guns*Rand*period; + if (Rand<10.0*period) + tempo1->fuel*=0.75*Rand+0.25; + } + Noise(100,75,200); + } + } else { + if (tempo->air_guns>0 && dair_guns_range) { + tempo->flags|=OF_SHOOTING; + if (Rand<125.0*period) { + tempo1->life_percent-=tempo->air_guns*Rand*period; + if (Rand<10.0*period) + tempo1->fuel*=0.75*Rand+0.25; + } + Noise(25,500,2000); + } + } + } + tempo=tempo->next; + } + tempo=obj_root.next; + while (tempo!=&obj_root) { + tempo1=tempo->next; + if (tempo->type==OT_FIGHTER && + (tempo->life_percent<=0.0 || tempo->flags&OF_ACTIVE && tempo->fuel<=0.0 || + tempo->host && !(tempo->flags&OF_ACTIVE) && tempo->host->life_percent<=0.0)) + ObjDel(tempo); + tempo=tempo1; + } + tempo=obj_root.next; + while (tempo!=&obj_root) { + tempo1=tempo->next; + if (tempo->life_percent<=0.0) + ObjDel(tempo); + tempo=tempo1; + } +} + +#define ANIMATE_FREQ 50 +U0 AnimateTask(I64) +{ //Preemption is off after Spawn + Obj *tempo; + Torpedo *tempt,*tempt1; + F64 d,period; + + while (TRUE) { + period=GAME_SPEED_SCALE*game_speed/ANIMATE_FREQ; + SquadronActions; + + tempo=obj_root.next; + while (tempo!=&obj_root) { + if (tempo->flags&OF_ACTIVE && tempo->fuel>0) { + if (tempo->dé) { + d=tempo->dé; + if (d> tempo->turn_rate*period) d= tempo->turn_rate*period; + if (d<-tempo->turn_rate*period) d=-tempo->turn_rate*period; + tempo->é +=d; + tempo->dé-=d; + } + tempo->x+=tempo->speed*Cos(tempo->é)*period*tempo->life_percent/100.0; + tempo->y+=tempo->speed*Sin(tempo->é)*period*tempo->life_percent/100.0; + tempo->fuel-=tempo->speed*tempo->fuel_burn_rate*period; + } + tempo=tempo->next; + } + + tempt=torpedo_root.next; + while (tempt!=&torpedo_root) { + tempt1=tempt->next; + if (tP(main_task)>tempt->timeout) { + tempo=tempt->target; + if (Rand<0.333333) { + tempo->life_percent-=150*Rand*Rand; + if (Rand<0.333333) + tempo->fuel*=0.75*Rand+0.25; + } + QueRem(tempt); + Free(tempt); + } else { + tempt->x+=tempt->speed*Cos(tempt->é)*period; + tempt->y+=tempt->speed*Sin(tempt->é)*period; + } + tempt=tempt1; + } + + tempo=obj_root.next; + while (tempo!=&obj_root) { + if (tempo->host && !(tempo->flags&OF_ACTIVE)) { + tempo->x=tempo->host->x; + tempo->y=tempo->host->y; + } + tempo=tempo->next; + } + + tempo=obj_root.next; + while (tempo!=&obj_root) { + if (tempo->flags&OF_ACTIVE) { + if (tempo->host) { + d=Sqrt(Sqr(tempo->x-tempo->host->x)+Sqr(tempo->y-tempo->host->y)); + if (d<8 && tempo->max_fuel-tempo->fuel>30) { + tempo->life_percent=100.0; + if (tempo->host->fuel>0) { + d=tempo->max_fuel-tempo->fuel; + if (d>tempo->host->fuel) d=tempo->host->fuel; + tempo->host->fuel-=d; + tempo->fuel+=d; + } + tempo->torpedos=tempo->max_torpedos; + tempo->x=tempo->host->x; + tempo->y=tempo->host->y; + tempo->flags&=~OF_ACTIVE; + } else if (d>tempo->fuel-250) + tempo->flags|=OF_RETURNING; + if (tempo->flags&OF_RETURNING) + tempo->dé+=Wrap(Arg(tempo->host->x-tempo->x,tempo->host->y-tempo->y)-(tempo->é+tempo->dé),-ã); + } else if (tempo->type==OT_CARRIER) + tempo->life_percent=Min(100.0,tempo->life_percent+2.5*period); + } + tempo=tempo->next; + } + + AI(1,period); + Combat(period); + Sleep(1000/ANIMATE_FREQ); + } +} + + +U0 Navy() +{ + I64 p1,p2; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + PopUpOk("$$FG,GREEN$${Left-Mouse}$$FG$$\t\tChange Course\n" + "$$FG,GREEN$${Right-Mouse}$$FG$$\t\tLaunch Squadron\n" + "$$FG,GREEN$${Right-Double-Mouse}$$FG$$\tReturn Squadron\n" + "$$FG,GREEN$${Ctrl-Left Grab}$$FG$$\tScroll Screen\n"); + Preempt(OFF), + WinBorder; + WordStat; + + MenuPush( +"File {" +" Abort(,CH_SHIFT_ESC);" +" Exit(,CH_ESC);" +"}" +"Play {" +" Restart(,CH_NEW_LINE);" +" Faster(,'+');" +" Slower(,'-');" +"}" +); + WinMax; + Fs->win_inhibit|=WIF_IP_L|WIF_IP_R; + Init; + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",Fs); + try { + while (TRUE) + switch(GetMsg(&p1,&p2,1<win_pixel_width,h=task->win_pixel_height, + cx=w>>1,cy=h>>1; + + dc->color=LTRED; + GrLine(dc,cx-20,cy-50,cx,cy-150); + GrLine(dc,cx+20,cy-50,cx,cy-150); + + dc->color=LTRED; + GrLine(dc,cx-100,cy-100,cx,cy); + GrLine(dc,cx+100,cy-100,cx,cy); + if (Bt(key_down_bitmap,sc_1)) { + dc->color=WHITE; + GrRect(dc,cx-2,cy-2,5,5); + } + dc->color=BLACK; + GrPutS(dc,cx+10,cy,"Press '1'"); + + dc->color=LTRED; + GrRect(dc,cx-20,cy+60,41,21); + + dc->color=LTRED; + GrLine(dc,cx-200,cy,cx,cy+100); + GrLine(dc,cx+200,cy,cx,cy+100); + if (Bt(key_down_bitmap,sc_2)) { + dc->color=WHITE; + GrRect(dc,cx-2,cy+100-2,5,5); + } + dc->color=BLACK; + GrPutS(dc,cx+10,cy+100,"Press '2'"); + + dc->color=LTRED; + GrLine(dc,cx+400,cy+100,cx-250,cy+200); +} + +U0 DrawDrops(CTask *,CDC *dc) +{ + I64 i; + dc->color=BLUE; + for (i=0;i=0 && GrPeek(dc,drops[i].x,drops[i].y)==WHITE) + GrPlot(dc,drops[i].x,drops[i].y); +} + +U0 UpdateCurBase(CTask *task,CDC *dc) +{ + Bool old_preempt=Preempt(OFF); + cur_dc->color=ROP_EQU; + dc->flags|=DCF_NO_TRANSPARENTS; + GrBlot(cur_dc,-task->win_pixel_left-task->win_scroll_x,-task->win_pixel_top-task->win_scroll_y,dc); + dc->flags&=~DCF_NO_TRANSPARENTS; + Preempt(old_preempt); +} + +U0 DrawIt(CTask *task,CDC *dc) +{ + DrawFrame(task,dc); + DrawDrops(task,dc); + UpdateCurBase(task,dc); +} + + +U0 AnimateTask(I64) +{ + I64 i,j,cur_drop=0,c1,c2,x0,y0,x1,y1,w,h; + while (TRUE) { + w=Fs->parent_task->win_pixel_width; + h=Fs->parent_task->win_pixel_height; + + for (i=0;i<2;i++) { + j=0; + do { + if (++cur_drop>=NUM_DROPS) + cur_drop=0; + if (drops[cur_drop].y<0) + break; + j++; + } while (j<=NUM_DROPS); + + drops[cur_drop].x=RandU32%w; + drops[cur_drop].y=0; + } + + for (i=0;i=0) { + if (drops[i].y>=h-1) + drops[i].y=-MAX_I32; + else { + x0=x1=drops[i].x; + y0=y1=drops[i].y; + if (GrPeek(cur_dc,x0,y0+1)==WHITE) + y1++; + else { + c1=GrPeek(cur_dc,x0+1,y0); + c2=GrPeek(cur_dc,x0-1,y0); + if (c1==WHITE && c2!=WHITE) + x1++; + else if (c2==WHITE && c1!=WHITE) + x1--; + else if (c1==WHITE && c2==WHITE) { + c1=GrPeek(cur_dc,x0+1,y0+1); + c2=GrPeek(cur_dc,x0-1,y0+1); + if (c1==WHITE && c2!=WHITE) + x1++; + else if (c2==WHITE && c1!=WHITE) + x1--; + else if (RandI16>=0) + x1++; + else + x1--; + } + if (GrPeek(cur_dc,x1,y1+1)==WHITE) + y1++; + } + if (GrPeek(cur_dc,x0,y0)==BLUE) { + cur_dc->color=WHITE; + GrPlot(cur_dc,x0,y0); + } + cur_dc->color=BLUE; + GrPlot(cur_dc,x1,y1); + drops[i].x=x1; + drops[i].y=y1; + } + } + } + Sleep(10); + } +} + +U0 Init() +{ + I64 i; + MemSet(drops,0,sizeof(drops)); + for (i=0;ianimate_task=Spawn(&AnimateTask,NULL,"Animate",Fs); + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + WordStat; + try { + do { + ch=GetKey(&sc); + switch (ch) { + case CH_NEW_LINE: + Init; + break; + } + } while (ch!=CH_ESC && ch!=CH_SHIFT_ESC); + } catch + CatchAll; + SettingsPop; + MenuPop; + DCDel(cur_dc); +} + +RainDrops; diff --git a/SparrowOS/Demo/GameStarters/RawHide.CPP b/SparrowOS/Demo/GameStarters/RawHide.CPP new file mode 100644 index 0000000..7ae5f68 --- /dev/null +++ b/SparrowOS/Demo/GameStarters/RawHide.CPP @@ -0,0 +1,522 @@ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + +AcctRegSetDftEntry("SparrowOS/RawHide","F64 best_score=9999;\n"); +AcctRegExecuteBranch("SparrowOS/RawHide"); + +F64 t0,tf; + +#define MAP_WIDTH 1500 +#define MAP_HEIGHT 1500 +#define MAP_BORDER 3 +CDC *dc2; + +$BG,10$ +#define GE_COW 0 + + +$SP,"<1>",1$ +#define GE_BULL 1 + + +$SP,"<2>",2$ +#define GE_HORSE 2 + + +$SP,"<3>",3$ +#define GE_NUM 3 +$BG$ + + +class RHCSprite +{ + U8 *img; + I64 min_x,max_x,min_y,max_y; +} rh_sprite[GE_NUM]; + + + +#define NUM_ANIMALS 128 + +class Animal +{ + I64 num,x,y,dx,dy; + RHCSprite *ge; + U32 buddy; + U8 type; + Bool dead,pad[2]; +} *a; + + +// ************************************ +#define COURSE_LEN (MAP_HEIGHT*2) +I32 *rx,*ry,*rw; +I64 river_lo,river_hi; +U0 RiverNew() +{ + rx=MAlloc(COURSE_LEN*sizeof(I32)); + ry=MAlloc(COURSE_LEN*sizeof(I32)); + rw=MAlloc(COURSE_LEN*sizeof(I32)); + river_lo=river_hi=COURSE_LEN/2; +} + +U0 RiverMake() +{ + I64 i,x,y,dx,dy,w,old_x,old_y; + //Plan lower course of river + old_x=-1;old_y=-1; + x=MAP_WIDTH<<32/2; y=MAP_HEIGHT<<32/2; + dx=0; dy=1<<32; + w=20<<32; + i=COURSE_LEN/2; + while (y.i32[1]=MAP_BORDER && i>=0) { + if (old_x.i32[1]!=x.i32[1]||old_y.i32[1]!=y.i32[1]) { + rx[i]=x.i32[1]; ry[i]=y.i32[1]; rw[i]=w.i32[1]; + river_lo=i--; + old_x=x; old_y=y; + } + dx=LimitI64(dx+RandI32/64,-MAX_I32,MAX_I32); + dy=LimitI64(dy+RandI32/64,-MAX_I32,0); + x+=dx; y+=dy; + w=LimitI64(w+RandI32*2,10*MAX_U32,150*MAX_U32); + } + + //Plot sand bar + x=0; y=0; + for (i=river_lo;i<=river_hi;i++) { + dc2->color=YELLOW; + dc2->pen_width=rw[i]+5; + GrPlot3(dc2,rx[i]+x.i32[1],ry[i]+y.i32[1],0); + + x=LimitI64(x+RandI32,-6*MAX_U32,6*MAX_U32); + y=LimitI64(y+RandI32,-6*MAX_U32,6*MAX_U32); + } + + //Plot water + for (i=river_lo;i<=river_hi;i++) { + dc2->color=BLUE; + dc2->pen_width=rw[i]; + GrPlot3(dc2,rx[i],ry[i],0); + } +} + +U0 RiverDel() +{ + Free(rx); + Free(ry); + Free(rw); +} + + +// ************************************ +class RiverDrop +{ + RiverDrop *next,*last; + I64 index,dx,dy; +} rd_root; +Bool rd_lock; + +U0 RiverDropsDel() +{ + while (LBts(&rd_lock,0)) + Yield; + QueDel(&rd_root,TRUE); + QueInit(&rd_root); + LBtr(&rd_lock,0); +} + +U0 RiverDropsNext(CTask *mem_task) +{ + RiverDrop *tempr,*tempr1; + while (LBts(&rd_lock,0)) + Yield; + tempr=rd_root.next; + while (tempr!=&rd_root) { + tempr1=tempr->next; + if (++tempr->index>river_hi) { + QueRem(tempr); + Free(tempr); + } else { + do { + if (RandU16&1 && + GrPeek(dc2,rx[tempr->index]+tempr->dx,ry[tempr->index]+tempr->dy)==BLUE) + break; + tempr->dx=LimitI64(tempr->dx+RandU16%3-1,-rw[tempr->index]/2,rw[tempr->index]/2); + tempr->dy=LimitI64(tempr->dy+RandU16%3-1,-rw[tempr->index]/2,rw[tempr->index]/2); + } while (GrPeek(dc2,rx[tempr->index]+tempr->dx,ry[tempr->index]+tempr->dy)!=BLUE && + GrPeek(dc2,rx[tempr->index] ,ry[tempr->index]) ==BLUE); //Might be reinitializing + } + tempr=tempr1; + } + tempr=MAlloc(sizeof(RiverDrop),mem_task); + tempr->index=river_lo; + tempr->dx=0; + tempr->dy=0; + QueIns(tempr,rd_root.last); + LBtr(&rd_lock,0); +} + +U0 RiverDropsDraw(CDC *dc,I64 cx,I64 cy) +{ + RiverDrop *tempr; + dc->color=LTBLUE; + while (LBts(&rd_lock,0)) + Yield; + tempr=rd_root.next; + while (tempr!=&rd_root) { + GrPlot(dc,rx[tempr->index]+tempr->dx-cx,ry[tempr->index]+tempr->dy-cy); + tempr=tempr->next; + } + LBtr(&rd_lock,0); +} + +// ************************************ +U0 DrawIt(CTask *task,CDC *dc) +{ + static I64 last_ipx=0; + static Bool left=TRUE; + F64 t; + I64 i, + cx=(MAP_WIDTH -task->win_pixel_width)/2, + cy=(MAP_HEIGHT-task->win_pixel_height)/2; + if (task->win_scroll_x+cx<0) + task->win_scroll_x=-cx; + if (task->win_scroll_x+cx>MAP_WIDTH-task->win_pixel_width) + task->win_scroll_x=MAP_WIDTH-task->win_pixel_width-cx; + if (task->win_scroll_y+cy<0) + task->win_scroll_y=-cy; + if (task->win_scroll_y+cy>MAP_HEIGHT-task->win_pixel_height) + task->win_scroll_y=MAP_HEIGHT-task->win_pixel_height-cy; + + dc2->flags|=DCF_NO_TRANSPARENTS; + GrBlot(dc,-cx,-cy,dc2); + + RiverDropsDraw(dc,cx,cy); + + for (i=0;iflags|=DCF_JUST_MIRROR|DCF_SYMMETRY; + GrSetSymmetry(dc,a[i].x.i32[1]-cx,0,a[i].x.i32[1]-cx,1); + } + CSpritePlot3(dc,a[i].x.i32[1]-cx,a[i].y.i32[1]-cy,0,a[i].ge->img); + dc->flags&=~(DCF_JUST_MIRROR|DCF_SYMMETRY); + } + + + if (ipx-last_ipx>0) + left=FALSE; + else if (ipx-last_ipx<0) + left=TRUE; + if (left) { + dc->flags|=DCF_JUST_MIRROR|DCF_SYMMETRY; + GrSetSymmetry(dc,ipx-task->win_pixel_left-task->win_scroll_x,0,ipx-task->win_pixel_left-task->win_scroll_x,1); + } + CSpritePlot3(dc, + ipx-task->win_pixel_left-task->win_scroll_x, + ipy-task->win_pixel_top -task->win_scroll_y,0,rh_sprite[GE_HORSE].img); + dc->flags&=~(DCF_JUST_MIRROR|DCF_SYMMETRY); + last_ipx=ipx; + + if (tf) { + dc->color=RED; + t=tf-t0; + if (Blink(,tP(task))) + GrPutS(dc,(task->win_pixel_width-FONT_WIDTH*9)>>1-task->win_scroll_x, + (task->win_pixel_height-FONT_HEIGHT)>>1-task->win_scroll_y, + "Game Over"); + } else { + dc->color=BLACK; + t=tP(task)-t0; + } + GrPrintF(dc,-task->win_scroll_x,-task->win_scroll_y,"Time:%7.2fs Best:%7.2fs",t,best_score); +} + + +U0 BuddySelect(I64 i) +{ + I64 b,best_b=i,score,best_score=MAX_I64; + for (b=0;bwin_pixel_width)/2, + cy=(MAP_HEIGHT-parent->win_pixel_height)/2; + cursor_x=ipx+cx-parent->win_pixel_left-parent->win_scroll_x; + cursor_y=ipy+cy-parent->win_pixel_top -parent->win_scroll_y; + min_x=max_x=min_y=max_y=cnt=0; + stress=0; + for (i=0;idead) { +//Move away from horse + ddx=tempa->x.i32[1]-cursor_x; + ddy=tempa->y.i32[1]-cursor_y; + if (dd=SqrI64(ddx)+SqrI64(ddy)) { + d=Sqrt(dd); + dx=ddx/d; + dy=ddy/d; + f=2.0e2*MAX_U32/dd; + tempa->dx+=f*dx; + tempa->dy+=f*dy; + } + +//Reselect buddy about every NUM_ANIMALS*10ms=5.12 seconds + tempa1=&a[tempa->buddy]; + if (tempa1->dead || i==updates%NUM_ANIMALS) { + BuddySelect(i); + tempa1=&a[tempa->buddy]; + } + +//Move toward buddy + ddx=tempa->x.i32[1]-tempa1->x.i32[1]; + ddy=tempa->y.i32[1]-tempa1->y.i32[1]; + if (dd=SqrI64(ddx)+SqrI64(ddy)) { + d=Sqrt(dd); + s=d`1.25-80; + stress+=Abs(s); + dx=ddx/d; + dy=ddy/d; + f=-0.001*s*MAX_U32; + tempa->dx+=f*dx; + tempa->dy+=f*dy; + } + +//Make velocity similar to buddy + tempa->dx+=0.1*(tempa1->dx-tempa->dx); + tempa->dy+=0.1*(tempa1->dy-tempa->dy); + + +//Add random movement, limit speed and dampen speed + tempa->dx=0.995*LimitI64(tempa->dx+RandI32/32,-max_speed,max_speed); + tempa->dy=0.995*LimitI64(tempa->dy+RandI32/32,-max_speed,max_speed); + +//Slow in river + if (GrPeek(dc2,tempa->x.i32[1],tempa->y.i32[1])!=LTGREEN) { + tempa->dx/=4; + tempa->dy/=4; + } + + tempa->x+=tempa->dx; + tempa->y+=tempa->dy; + +//Keep on map + if (!(MAP_BORDER-tempa->ge->min_x<=tempa->x.i32[1]ge->max_x)) { + tempa->x -=tempa->dx; + tempa->dx=-tempa->dx; + } + if (!(MAP_BORDER-tempa->ge->min_y<=tempa->y.i32[1]ge->max_y)) { + tempa->y -=tempa->dy; + tempa->dy=-tempa->dy; + } + + if (cnt) { + min_x=MinI64(min_x,tempa->x); + max_x=MaxI64(max_x,tempa->x); + min_y=MinI64(min_y,tempa->y); + max_y=MaxI64(max_y,tempa->y); + } else { + min_x=max_x=tempa->x; + min_y=max_y=tempa->y; + } + + cnt++; + } + } + if (!(updates&15)) + RiverDropsNext(parent); + + if (!tf && (max_x-min_x)>>32>32100.0) { + Yield; + max_speed=stress/5.0*MAX_U32; //Converge faster at start-up + } else { + Sleep(10); + max_speed=0; //Will be set to normal max speed + } + } +} + +U0 SongTask(I64) +{ //Randomly generated (by God :-) + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + while (TRUE) { + Play("W13qC2etG!3DCBDC!!ECFqFC!sADAD!qB"); + Play("C2etG!3DCBDC!!ECFqFC!sADAD!qB"); + Play("!2sG3A!2G3A!qG2etG3GDeBBqBFeBAqE"); + Play("!2sG3A!2G3A!qG2etG3GDeBBqBFeBAqE"); + } +} + + +U0 ReInit() +{ + I64 i; + + RiverDropsDel; + dc2->color=LTGREEN; + GrRect(dc2,2,2,MAP_WIDTH-4,MAP_HEIGHT-4); + + RiverMake; + + dc2->pen_width=MAP_BORDER; + dc2->color=RED; + GrLineRect4(dc2,MAP_BORDER/2,MAP_BORDER/2,MAP_WIDTH-(MAP_BORDER+1)/2,MAP_HEIGHT-(MAP_BORDER+1)/2); + + for (i=river_lo;i<=river_hi;i++) + RiverDropsNext(Fs); + + MemSet(a,0,NUM_ANIMALS*sizeof(Animal)); + for (i=0;i",1$; + rh_sprite[1].img=$IB,"<2>",2$; + rh_sprite[2].img=$IB,"<3>",3$; + for (i=0;iimg,&ge->min_x,&ge->max_x,&ge->min_y,&ge->max_y); + } + + RiverNew; + rd_lock=0; + QueInit(&rd_root); + dc2=DCNew(DCT_COLOR8,MAP_WIDTH,MAP_HEIGHT); + a=MAlloc(NUM_ANIMALS*sizeof(Animal)); + ReInit; +} + +U0 CleanUp() +{ + DCDel(dc2); + Free(a); + RiverDropsDel; + RiverDel; +} + +U0 RawHide() +{ + I64 msg_code,p1,p2; + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + PopUpOk( + "Coral the cattle into an area\n" + "the size of a screen.\n\n" + "Scroll with {CTRL-Left Grab}.\n" + "Center with {CTRL-Right}."); + MenuPush( +"File {" +" Abort(,CH_SHIFT_ESC);" +" Exit(,CH_ESC);" +"}" +"Play {" +" Restart(,CH_NEW_LINE);" +"}" +); + Fs->song_task=Spawn(&SongTask,NULL,"Song",Fs); + Fs->win_inhibit=WIF_ALL-WIF_BORDER-WIF_GRAB_SCROLL-WIF_MENU; + WinMax; + WordStat; + Preempt(OFF); + Init; + Fs->animate_task=Spawn(&AnimateTask,Fs,"Animate",Fs); + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + try { + while (TRUE) { + msg_code=GetMsg(&p1,&p2,1<(OIIki=Hh}`5)cv}9N_53 zX=1>o;^eMlXsE))#igL25*(nTWMgQjq+_T8l2GAtc5znFN=Y`d=HlWCHBfLVN-Xy* z(Qpn)EY4QYDoHHP)`6)MrP=EWCeR;1>{muIGw zWat~|Bv;yMAmlPqGt)ClbWJq1-2DAQ;yqkF-918dp$^nHvgT4y00%>AUV3I;YJ7ek zNW{&|L?JJ~swyWnJ~1ynCspUAtz%KTMy`=wg>J5)UWHDskzOT;RjFwW@>ph?f`(Ix zMs{jtd`fjhS_(wl>Uk1#m!W zWX6F~OKCw$Vo7STrkbH97iUVcu3d6|PJWSXq^pmQe>lV{1#svi%Lci+z@*%Zd@}P= zHBypwk}I?|K+e|Agt%JwvA&U}rVbY;r-DLqr7lRWQae)%>|7MN3hfG=H&q4 zf&y+cwegsVB8O&XEht?oC?JK1p#f@;6qjd~BxfjS1SRIBgc_Qu8G}NLGdZz1Rl&eY zAtl)e7BWHp0r9SZq1xddo*}N*3Q0w&iP_d%5S4~lRr-Xu2RTNfDK)~X)WsW%Qe&)2 zoqQafz2SyJ0Gckdt4ck&oCh`*BnlA(7jh-3AUlHcOQMXEP@*4HE@*;F9%!6{iU*K@fsTr&6THaN(S50D z%~cC7>3l0)Qj0Rn5=%16QZ<}?6H7AuU0fBkbll8Lbe#Q*Qc{bIT#Oa8klBzTkd(rz zxFoS8Ro4z&X2IB?q6^9fmtZjVXh8-qlh6ubE>KECND?T>at-xdz+viAqHE_;;ZmY) z3#oD;MFh5j4OL4ek`{2ufvE+QWZISD4WE+iWVxy5>r7cop0m;H*eD*=wL^%BjmB#K%aL^dqs^uDj zY8)`n$W|>E+*B#nD@rXciO)&RgSiT#COJQ^xFj*J#MaQjz`y`p&AK?dW#;6-${SFN z$~7;=*$Eo4Fj)nK;Jg&LBusS>xXA}qiYT4(Q&MgHU0nTA%QXyi3{!QDbo^ah-QqnQ zgX4W2gM(dzA%#eAYDr0EUV3prX>kT9@dc-*DyaB)>nI^hDCsEq`dOifsBkGLxa220 zmlhT07lHg0o?ny_T#{H~&Bdj!ACi%(ke`yOke8p5TC9**l&VltlvtKpRGgZkkW{Hq zo|&hRn_dJ;gaJjVsksFu8vbr>5C{3D=9PjRqrs)*mYI{PP_4wJq@duKlwVY$q2ufk zAMD}j7836o?5t@GmT|4fgh;@IYL&Q@0&)^7p*n+7!7&Hc>*pFC@8jv`3e_4~prM1> z?t>T^THuqKR)Qi2Zo0u_gFvlR6lqA~3nX8w#0Bw3cxIk&Vg)E?08V7N=~v>LyA!@1qCG)6=xq66%|lh+$Y32($NpZadX#k4{~+&Q&9;m z&`|(6Pe%dl3>6hOcNG;SkimYb<>1B+$O2H?3Er9pNh*O2gtVJfRATZ#I=B=-k)&&v z03U)&lO<o$me{I6dN5#zl@wJ%oBZynCElr(AV(@7x?AvC zMnR!GBQqyeK?BtGhn3_C3b5vxduoYuMq-hMU#O3d4!9Hsx5y#QFK3Thypu$$5 z%0nSJu_QSIT*EknSdO5=M?oR5G&LwSR|67S3JU%%t}dxLa4u5Hgd|B=I#LLR6(acs zAX^dTm5VdTfRtn-aJ+)EHb_Y=7Z;?|vgTr7VqjokWPpGoW(F`{RF8pyL5P8Y;pPAT z|G)qL|DOW|{3i%dlyh(pqn-s0IEc~!SI)vhga#A`v7_*iI7se966N5)sR7|Lka~6w z{1BuDt^;H$e&rxpkQRumI6xXeTucm72*V&*um%tVm%AZ~;ReFgLxk~>AVa~bK`8>C zLXaFtF_L$|Trh#lSxE5?R!4|{xCBgcaFCQ9IFQwontYI)3AP&xf$DNB3ebcY0LV+w A*#H0l literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/GameStarters/RocketScience.CPP b/SparrowOS/Demo/GameStarters/RocketScience.CPP new file mode 100644 index 0000000000000000000000000000000000000000..de291c8d54356264d7f7d170a8053664e6d4841a GIT binary patch literal 12983 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",1$ + + +$SP,"",2$ + + + +$SP,"",3$ + + +$SP,"",4$ + + + +$SP,"",5$ + + +$SP,"",6$ + + +$SP,"",7$ + + +$SP,"",8$ + + + +$SP,"",9$ + + +$SP,"",10$ + + + + +$SP,"",11$ + + +$SP,"",12$ + + +$SP,"",13$ + + + + +$SP,"",14$ + + +$BG$ + + +#define CMD_NULL 0 +#define CMD_SPIN_LEFT 1 +#define CMD_SPIN_RIGHT 2 +#define CMD_THRUST 3 +#define CMD_FIRE 4 +#define CMD_GAME_OVER 5 +I64 cmd_code=CMD_NULL; + +#define NUM_STARS 100 +I64 stars_x[NUM_STARS],stars_y[NUM_STARS]; + +Bool bounce; + +#define OT_SHIP 1 +#define OT_CARGO 2 +#define OT_BULLET 3 +#define OT_TINY_ROCK 4 +#define OT_SMALL_ROCK 5 +#define OT_MEDIUM_ROCK 6 +#define OT_LARGE_ROCK 7 + +#define A_TRANSITION -1 +#define A_INACTIVE 0 +#define A_ACTIVE 1 + +class Order2D2é +{ + F64 x,y,é; + F64 DxDt,DyDt,DéDt; +}; + +class Obj +{ + I32 active; + I32 type; + U8 *img; + F64 mass,radius; + F64 timeout; +}; + +#define NUM_OBJECTS 256 + +CMathODE *ode; +Order2D2é *o_state; +Obj *objs; + +U0 ObjInit(I64 i, I64 type) +{ + objs[i].active=A_ACTIVE; + objs[i].timeout=0; + objs[i].type=type; + switch (type) { + case OT_SHIP: + if (bounce) + objs[i].img=$IB,"",1$; + else + objs[i].img=$IB,"",3$; + objs[i].radius=15; + break; + case OT_CARGO: + objs[i].img=$IB,"",14$; + objs[i].radius=30; + break; + case OT_BULLET: + objs[i].img=$IB,"",15$; + objs[i].radius=7; + break; + case OT_TINY_ROCK: + if (i&1) + objs[i].img=$IB,"",5$; + else + objs[i].img=$IB,"",6$; + objs[i].radius=5; + break; + case OT_SMALL_ROCK: + if (i&1) + objs[i].img=$IB,"",16$; + else + objs[i].img=$IB,"",8$; + objs[i].radius=11; + break; + case OT_MEDIUM_ROCK: + if (i&1) + objs[i].img=$IB,"",17$; + else + objs[i].img=$IB,"",10$; + objs[i].radius=20; + break; + case OT_LARGE_ROCK: + if (i&1) + objs[i].img=$IB,"",18$; + else + objs[i].img=$IB,"",12$; + objs[i].radius=26; + break; + } + objs[i].mass=objs[i].radius*objs[i].radius*objs[i].radius; +} + +I64 ObjAlloc(I64 type) +{ + I64 i; + for (i=0;itext_attr=BLACK<<4+WHITE; + + dc->color=WHITE; + for (i=0;iGR_WIDTH) { + x%=GR_WIDTH; + o_state[i].x=x; + } + if (y<0) { + y=GR_HEIGHT-AbsI64(y)%GR_HEIGHT; + o_state[i].y=y; + } else if (y>GR_HEIGHT) { + y%=GR_HEIGHT; + o_state[i].y=y; + } + switch (objs[i].type) { + case OT_SHIP: + if (bounce) { + if (cmd_code==CMD_THRUST && RandU16&0x8000) + CSpritePlotRotZ3b(dc,x,y,0,$IB,"",2$,o_state[i].é); + else + CSpritePlotRotZ3b(dc,x,y,0,$IB,"",1$,o_state[i].é); + } else { + if (cmd_code==CMD_THRUST && RandU16&0x8000) + CSpritePlotRotZ3b(dc,x,y,0,$IB,"",4$,o_state[i].é); + else + CSpritePlotRotZ3b(dc,x,y,0,$IB,"",3$,o_state[i].é); + } + break; + case OT_BULLET: + case OT_TINY_ROCK: + case OT_SMALL_ROCK: + case OT_MEDIUM_ROCK: + case OT_LARGE_ROCK: + case OT_CARGO: + CSpritePlotRotZ3b(dc,x,y,0,objs[i].img,o_state[i].é); + break; + } + } + } + } + dc->color=WHITE; + GrPutS(dc,0,0,"Escort the cargo ship."); +} + +U0 Init() +{ + I64 i,j; + + cmd_code=CMD_NULL; + + for (i=0;i1000000.0) f=1000000.0; + } + } else + f=-2.5*objs[i].mass*objs[j].mass/(dd+1.0); + + DstateDt[i].DxDt+=f*dx/objs[i].mass; + DstateDt[i].DyDt+=f*dy/objs[i].mass; + } + } + } + } + switch (cmd_code) { + case CMD_SPIN_LEFT: + DstateDt[0].DéDt-=10.0; + break; + case CMD_SPIN_RIGHT: + DstateDt[0].DéDt+=10.0; + break; + case CMD_THRUST: + DstateDt[0].DxDt+=100.0*Cos(state[0].é-ã/2.0); + DstateDt[0].DyDt+=100.0*Sin(state[0].é-ã/2.0); + break; + } + + DstateDt[1].DxDt+=2.0*Cos(state[1].é-ã/2.0); + DstateDt[1].DyDt+=2.0*Sin(state[1].é-ã/2.0); +} + +U0 Collision(I64 i,I64 j) +{ + I64 i2; + switch (objs[i].type) { + case OT_SHIP: + if (!bounce) { + cmd_code=CMD_GAME_OVER; + objs[i].active=A_INACTIVE; + } + break; + case OT_CARGO: + cmd_code=CMD_GAME_OVER; + objs[i].active=A_INACTIVE; + break; + case OT_TINY_ROCK: + if (objs[j].type==OT_BULLET && !bounce) + objs[i].active=A_INACTIVE; + break; + case OT_BULLET: + if (!bounce) + objs[i].active=A_INACTIVE; + break; + case OT_SMALL_ROCK: + case OT_MEDIUM_ROCK: + i2=ObjAlloc(objs[i].type-1); + objs[i2].active=A_TRANSITION; + o_state[i2].x=o_state[i].x+objs[i2].radius+2.0; + o_state[i2].y=o_state[i].y; + o_state[i2].é=o_state[i].é; + o_state[i2].DxDt=o_state[i].DxDt; + o_state[i2].DyDt=o_state[i].DyDt; + o_state[i2].DéDt=o_state[i].DéDt; + + i2=ObjAlloc(objs[i].type-1); + objs[i2].active=A_TRANSITION; + o_state[i2].x=o_state[i].x-objs[i2].radius-2.0; + o_state[i2].y=o_state[i].y; + o_state[i2].é=o_state[i].é; + o_state[i2].DxDt=o_state[i].DxDt; + o_state[i2].DyDt=o_state[i].DyDt; + o_state[i2].DéDt=o_state[i].DéDt; + + objs[i].active=A_INACTIVE; + break; + case OT_LARGE_ROCK: + i2=ObjAlloc(objs[i].type-1); + objs[i2].active=A_TRANSITION; + o_state[i2].x=o_state[i].x+objs[i2].radius+4.0; + o_state[i2].y=o_state[i].y+objs[i2].radius+4.0; + o_state[i2].é=o_state[i].é; + o_state[i2].DxDt=o_state[i].DxDt; + o_state[i2].DyDt=o_state[i].DyDt; + o_state[i2].DéDt=o_state[i].DéDt; + + i2=ObjAlloc(objs[i].type-1); + objs[i2].active=A_TRANSITION; + o_state[i2].x=o_state[i].x-objs[i2].radius-4.0; + o_state[i2].y=o_state[i].y-objs[i2].radius-4.0; + o_state[i2].é=o_state[i].é; + o_state[i2].DxDt=o_state[i].DxDt; + o_state[i2].DyDt=o_state[i].DyDt; + o_state[i2].DéDt=o_state[i].DéDt; + + i2=ObjAlloc(objs[i].type-1); + objs[i2].active=A_TRANSITION; + o_state[i2].x=o_state[i].x-objs[i2].radius-4.0; + o_state[i2].y=o_state[i].y+objs[i2].radius+4.0; + o_state[i2].é=o_state[i].é; + o_state[i2].DxDt=o_state[i].DxDt; + o_state[i2].DyDt=o_state[i].DyDt; + o_state[i2].DéDt=o_state[i].DéDt; + + i2=ObjAlloc(objs[i].type-1); + objs[i2].active=A_TRANSITION; + o_state[i2].x=o_state[i].x+objs[i2].radius+4.0; + o_state[i2].y=o_state[i].y-objs[i2].radius-4.0; + o_state[i2].é=o_state[i].é; + o_state[i2].DxDt=o_state[i].DxDt; + o_state[i2].DyDt=o_state[i].DyDt; + o_state[i2].DéDt=o_state[i].DéDt; + + objs[i].active=A_INACTIVE; + break; + } + + switch (objs[j].type) { + case OT_SHIP: + if (!bounce) { + cmd_code=CMD_GAME_OVER; + objs[j].active=A_INACTIVE; + } + break; + case OT_CARGO: + cmd_code=CMD_GAME_OVER; + objs[j].active=A_INACTIVE; + break; + case OT_TINY_ROCK: + if (objs[i].type==OT_BULLET && !bounce) + objs[j].active=A_INACTIVE; + break; + case OT_BULLET: + if (!bounce) + objs[j].active=A_INACTIVE; + break; + case OT_SMALL_ROCK: + case OT_MEDIUM_ROCK: + i2=ObjAlloc(objs[j].type-1); + objs[i2].active=A_TRANSITION; + o_state[i2].x=o_state[j].x+objs[i2].radius+2.0; + o_state[i2].y=o_state[j].y; + o_state[i2].é=o_state[j].é; + o_state[i2].DxDt=o_state[j].DxDt; + o_state[i2].DyDt=o_state[j].DyDt; + o_state[i2].DéDt=o_state[j].DéDt; + + i2=ObjAlloc(objs[j].type-1); + objs[i2].active=A_TRANSITION; + o_state[i2].x=o_state[j].x-objs[i2].radius-2.0; + o_state[i2].y=o_state[j].y; + o_state[i2].é=o_state[j].é; + o_state[i2].DxDt=o_state[j].DxDt; + o_state[i2].DyDt=o_state[j].DyDt; + o_state[i2].DéDt=o_state[j].DéDt; + + objs[j].active=A_INACTIVE; + break; + + case OT_LARGE_ROCK: + i2=ObjAlloc(objs[j].type-1); + objs[i2].active=A_TRANSITION; + o_state[i2].x=o_state[j].x+objs[i2].radius+4.0; + o_state[i2].y=o_state[j].y+objs[i2].radius+4.0; + o_state[i2].é=o_state[j].é; + o_state[i2].DxDt=o_state[j].DxDt; + o_state[i2].DyDt=o_state[j].DyDt; + o_state[i2].DéDt=o_state[j].DéDt; + + i2=ObjAlloc(objs[j].type-1); + objs[i2].active=A_TRANSITION; + o_state[i2].x=o_state[j].x-objs[i2].radius-4.0; + o_state[i2].y=o_state[j].y-objs[i2].radius-4.0; + o_state[i2].é=o_state[j].é; + o_state[i2].DxDt=o_state[j].DxDt; + o_state[i2].DyDt=o_state[j].DyDt; + o_state[i2].DéDt=o_state[j].DéDt; + + i2=ObjAlloc(objs[j].type-1); + objs[i2].active=A_TRANSITION; + o_state[i2].x=o_state[j].x-objs[i2].radius-4.0; + o_state[i2].y=o_state[j].y+objs[i2].radius+4.0; + o_state[i2].é=o_state[j].é; + o_state[i2].DxDt=o_state[j].DxDt; + o_state[i2].DyDt=o_state[j].DyDt; + o_state[i2].DéDt=o_state[j].DéDt; + + i2=ObjAlloc(objs[j].type-1); + objs[i2].active=A_TRANSITION; + o_state[i2].x=o_state[j].x+objs[i2].radius+4.0; + o_state[i2].y=o_state[j].y-objs[i2].radius-4.0; + o_state[i2].é=o_state[j].é; + o_state[i2].DxDt=o_state[j].DxDt; + o_state[i2].DyDt=o_state[j].DyDt; + o_state[i2].DéDt=o_state[j].DéDt; + + objs[j].active=A_INACTIVE; + break; + } +} + +U0 CheckCollisions() +{ + I64 i,j; + F64 d,d1,dd,dx,dy; + CDC *dc; + for (i=0;icolor=ROP_COLLISION; + dc->bkcolor=BLACK; + CSpritePlotRotZ3b(dc,o_state[j].x-o_state[i].x+32, + o_state[j].y-o_state[i].y+32,0, + objs[j].img,o_state[j].é); + if (dc->collision_cnt>0) + Collision(i,j); + DCDel(dc); + } + } + } + } + } + for (i=0;iMUZZLE_VELOCITY*5.0) + Auto(" "); + } +} + +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 Rocks() +{ + I64 ch,sc,msg_code; + CMenuEntry *tempse; + + PopUpOk( + "I refuse to rip-off the original\n" + "so this is intentionally unplayable\n" + "and included for demonstration\n" + "purposes.\n\n" + "Write games, don't play them.\n"); + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->song_task=Spawn(&SongTask,NULL,"Song",Fs); + Preempt(OFF), + WinBorder; + WordStat; + + MenuPush( +"File {" +" Abort(,CH_SHIFT_ESC);" +" Exit(,CH_ESC);" +"}" +"Play {" +" Restart(,CH_NEW_LINE);" +" Fire(,CH_SPACE);" +" Fwd(,,SC_CURSOR_UP);" +" Left(,,SC_CURSOR_LEFT);" +" Right(,,SC_CURSOR_RIGHT);" +" ToggleBounce(,'b');" +"}" +); + tempse=MenuEntryFind(Fs->cur_menu,"Play/ToggleBounce"); + tempse->checked=bounce=TRUE; + + ode=ODENew(NUM_OBJECTS*6,0.01); + ode->derivative=&MyDerivative; + ode->min_tolerance=0.001*ode->max_tolerance; + o_state=ode->state; + objs=MAlloc(NUM_OBJECTS*sizeof(Obj)); + + WinMax; + + Init; + QueIns(ode,Fs->last_ode); + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + + try { + while (TRUE) { + while (msg_code=ScanMsg(&ch,&sc,1<cur_menu,"Play/ToggleBounce"); + tempse->checked=bounce=!bounce; + break; + } + else //MSG_KEY_UP + cmd_code=CMD_NULL; + } + CheckCollisions; + CheckCrazy; + if (cmd_code==CMD_GAME_OVER) { + Sleep(1000); + Init; + } + WinMgrSync; //msgs are only qued by winmngr + } +rk_done: + GetMsg(,,1<H&BYaJpb!AIB_y#p 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",1$ + + + + + +$SP,"<2>",2$ + + + +$SP,"<3>",3$ + +$BG$ + +#define HOSE_RADIUS 3 +#define LINK_SIZE 6 +#define NOZZLE_START_Y (GR_HEIGHT-15*FONT_HEIGHT) +#define NOZZLE_LEN 18 +#define FAUCET_X (5*HOSE_RADIUS) +#define FAUCET_Y (GR_HEIGHT-12*FONT_HEIGHT) +#define GROUND_Y (GR_HEIGHT-3*FONT_HEIGHT) +MyMass *faucet,*nozzle; +F64 nozzle_é; + +CMathODE *ode=NULL; +F64 start_up_timeout; + + +U0 DrawIt(CTask *task,CDC *dc) +{ + Bool old_suspend,first; + F64 dx,dy,d; + I64 x1b,y1b,x2b,y2b, + x1a,y1a,x2a,y2a; + MyMass *tempm,*tempm1; + MySpring *temps; + CD3I32 poly[4]; + + if (start_up_timeout>tNP) { + ode->drag_v2=0.01; //Let hose settle during start-up + ode->drag_v3=0.0001; + dc->color=RED; + GrPutS(dc,(GR_WIDTH-FONT_WIDTH*6)>>1,GR_HEIGHT>>1,"Squirt"); + return; + } else { + ode->drag_v2=0.0005; + ode->drag_v3=0.0000025; + } + + old_suspend=Suspend(task); + tempm=faucet; + dc->color=BLACK; + GrRect(dc,tempm->x+8,tempm->y,8,GROUND_Y-FAUCET_Y); + CSpritePlot3(dc,tempm->x,tempm->y,0,$IB,"<1>",1$); + dc->color=BLACK; + GrCircle(dc,tempm->x,tempm->y,tempm->radius); + dc->color=GREEN; + GrFloodFill(dc,tempm->x,tempm->y); + + tempm=nozzle; + tempm1=nozzle->last; + dx=tempm->x-tempm1->x; + dy=tempm->y-tempm1->y; + nozzle_é=Wrap(Arg(dx,dy)); + CSpritePlotRotZ3b(dc,tempm->x,tempm->y,0,$IB,"<2>",2$,nozzle_é); + dc->color=BLACK; + GrCircle(dc,tempm->x,tempm->y,tempm->radius); + dc->color=GREEN; + GrFloodFill(dc,tempm->x,tempm->y); + + first=TRUE; + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + if (tempm->type==MT_HOSE) { + tempm1=tempm->last; + dx=tempm->x-tempm1->x; + dy=tempm->y-tempm1->y; + d=HOSE_RADIUS/Max(Sqrt(dx*dx+dy*dy),0.001); + dx*=d; + dy*=d; + x2a=tempm->x-dy; + y2a=tempm->y+dx; + x2b=tempm->x+dy; + y2b=tempm->y-dx; + + if (first) + first=FALSE; + else { + dc->color=GREEN; + poly[0].x=x1a; + poly[0].y=y1a; + poly[0].z=0; + poly[1].x=x2a; + poly[1].y=y2a; + poly[1].z=0; + poly[2].x=x2b; + poly[2].y=y2b; + poly[2].z=0; + poly[3].x=x1b; + poly[3].y=y1b; + poly[3].z=0; + GrFillPoly3(dc,4,poly); + } + + //Fill gaps + GrLine(dc,x2a,y2a,x2b,y2b); + + x1a=x2a; + y1a=y2a; + x1b=x2b; + y1b=y2b; + } else if (tempm->type==MT_DROPLET) + CSpritePlot3(dc,tempm->x,tempm->y,0,$IB,"<3>",3$); + tempm=tempm->next; + } + + temps=ode->next_spring; + while (temps!=&ode->next_spring) { + if (temps->type==ST_HOSE) { + dx=temps->end1->x-temps->end2->x; + dy=temps->end1->y-temps->end2->y; + d=HOSE_RADIUS/Max(Sqrt(dx*dx+dy*dy),0.001); + dx*=d; + dy*=d; + dc->color=BLACK; + GrLine(dc,temps->end1->x-dy,temps->end1->y+dx, + temps->end2->x-dy,temps->end2->y+dx); + GrLine(dc,temps->end1->x+dy,temps->end1->y-dx, + temps->end2->x+dy,temps->end2->y-dx); + } + temps=temps->next; + } + Suspend(task,old_suspend); +} + + +U0 MyDerivative(CMathODE *ode,F64 t,COrder2D3 *state,COrder2D3 *DstateDt) +{ +//The forces due to springs and drag are +//automatically handled by the +//ode code. We can add new forces +//here. + nounusedwarn t,state,DstateDt; +// F64 d,dd; +// CD3 p; + MyMass *tempm1,*tempm2; + nounusedwarn tempm2; + + tempm1=ode->next_mass; + while (tempm1!=&ode->next_mass) { + if (tempm1->type==MT_HOSE) { + if (tempm1->state->y+tempm1->radius>GROUND_Y) + tempm1->DstateDt->DyDt-=Sqr(Sqr(tempm1->state->y+tempm1->radius-GROUND_Y))*tempm1->mass; + else + tempm1->DstateDt->DyDt+=500*tempm1->mass; + if (tempm1==nozzle || tempm1==faucet) { + tempm1->DstateDt->DxDt=0; + tempm1->DstateDt->DyDt=0; + } + } else if (tempm1->type==MT_DROPLET) + tempm1->DstateDt->DyDt=500*tempm1->mass; + tempm1=tempm1->next; + } +} + +MyMass *PlaceMass(I64 type,I64 x, I64 y,F64 r,F64 dx,F64 dy,F64 mass,CTask *mem_task) +{ + MyMass *tempm=CAlloc(sizeof(MyMass),mem_task); + tempm->type=type; + tempm->mass=mass; + tempm->drag_profile_factor=250.0; + tempm->x=x; + tempm->y=y; + tempm->DxDt=dx; + tempm->DyDt=dy; + tempm->radius=r; + QueIns(tempm,ode->last_mass); + return tempm; +} + +MySpring PlaceSpring(MyMass *tempm1,MyMass *tempm2) +{ + MySpring *temps=CAlloc(sizeof(MySpring)); + temps->end1=tempm1; + temps->end2=tempm2; + temps->constant=20000; + QueIns(temps,ode->last_spring); + return temps; +} + +U0 HoseNew() +{ + I64 i; + MyMass *tempm1=NULL,*tempm; + MySpring *temps; + for (i=FAUCET_X;irest_len=LINK_SIZE; + temps->type=ST_HOSE; + nozzle=tempm; + } else + faucet=tempm; + tempm1=tempm; + } + faucet->y=FAUCET_Y; + nozzle->y=NOZZLE_START_Y; + nozzle_é=0; +} + +U0 AnimateTask(I64) +{ +//Preempt is off by default for new task + MyMass *tempm,*tempm1; + F64 dx,dy; + while (TRUE) { + +//The WinMgr task suspends our parent when it +//updates the ODE's. We use this to know when +//the ODE's are being updated. + if (!IsSuspended(Fs->parent_task)) { + dx=Cos(nozzle_é), + dy=Sin(nozzle_é), + PlaceMass(MT_DROPLET, + nozzle->x+NOZZLE_LEN*dx,nozzle->y+NOZZLE_LEN*dy, + HOSE_RADIUS, + 500*dx,500*dy, + 100.0,Fs->parent_task); + if (Rand<0.05) //faucet drip + PlaceMass(MT_DROPLET, + faucet->x,faucet->y, + HOSE_RADIUS, + 0,0, + 100.0,Fs->parent_task); + + tempm=ode->next_mass; + while (tempm!=&ode->next_mass) { + tempm1=tempm->next; + if (tempm->type==MT_DROPLET && + tempm->y+tempm->radius>GROUND_Y) { + QueRem(tempm); + Free(tempm); + } + tempm=tempm1; + } + } + WinMgrSync; + } +} + +#define NOZZLE_MOVE_STEPS 5 +#define NOZZLE_MOVE 15.0 +U0 MoveNozzleTaskX(I64 sign) +{ + I64 i; + for (i=0;ix=Limit(nozzle->x+ + sign*NOZZLE_MOVE/NOZZLE_MOVE_STEPS, + HOSE_RADIUS*3,GR_WIDTH-HOSE_RADIUS*3); + WinMgrSync; + } +} + +U0 MoveNozzleTaskY(I64 sign) +{ + I64 i; + for (i=0;iy=Limit(nozzle->y+ + sign*NOZZLE_MOVE/NOZZLE_MOVE_STEPS, + HOSE_RADIUS*3,GROUND_Y); + WinMgrSync; + } +} + + +U0 DrawBackGroundTextLayer() +{ + DocClear; + "$$BG,LTCYAN$$"; + NewLine(GROUND_Y/FONT_HEIGHT); + "$$BG,YELLOW$$"; +} + +U0 Init() +{ + DrawBackGroundTextLayer; + +//Allow hose to settle. + start_up_timeout=tNP+0.5; + + ode=ODENew(0,5e-2,ODEF_HAS_MASSES); + ode->derivative=&MyDerivative; + ode->acceleration_limit=5e3; + + HoseNew; + QueIns(ode,Fs->last_ode); +} + +U0 CleanUp() +{ + WinMgrSync(NOZZLE_MOVE_STEPS); //Let nozzle move tasks die + QueRem(ode); + QueDel(&ode->next_mass,TRUE); + QueDel(&ode->next_spring,TRUE); + ODEDel(ode); + DocClear; + "$$BG$$"; +} + +U0 SongTask(I64) +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + while (TRUE) { + Play("W13eAM4/4"); + Play("2qGeGqG3eAq.BqBeBqA2eG3qA"); + Play("eB2hG3q.BqBeCq.DD"); + Play("qCeBqCeDhB"); + } +} + +U0 Squirt() +{ + I64 sc; + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->song_task=Spawn(&SongTask,NULL,"Song",Fs); + WinMax; + WinBorder; + Preempt(OFF); + DocCursor; + + Fs->win_inhibit|=WIF_DBL_CLICK; + WordStat; + + MenuPush( + "File {" + " Abort(,CH_SHIFT_ESC);" + " Exit(,CH_ESC);" + "}" + "Play {" + " Restart(,CH_NEW_LINE);" + " Left(,,SC_CURSOR_LEFT);" + " Right(,,SC_CURSOR_RIGHT);" + " Up(,,SC_CURSOR_UP);" + " Down(,,SC_CURSOR_DOWN);" + "}" + ); + + Init; + Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",Fs); + Fs->draw_it=&DrawIt; + + try { + while (TRUE) { + switch (GetKey(&sc)) { + case 0: + switch (sc.u8[0]) { + case SC_CURSOR_LEFT: + Spawn(&MoveNozzleTaskX,-1,"Move Nozzle",Fs); + break; + case SC_CURSOR_RIGHT: + Spawn(&MoveNozzleTaskX,1,"Move Nozzle",Fs); + break; + case SC_CURSOR_UP: + Spawn(&MoveNozzleTaskY,-1,"Move Nozzle",Fs); + break; + case SC_CURSOR_DOWN: + Spawn(&MoveNozzleTaskY,1,"Move Nozzle",Fs); + break; + } + break; + case CH_NEW_LINE: + CleanUp; + Init; + break; + case CH_SHIFT_ESC: + case CH_ESC: + goto sq_done; + } + } +sq_done: //Don't goto out of try + } catch + CatchAll; + SettingsPop; + CleanUp; + MenuPop; +} + +Squirt; +R÷ÿÿÿìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2 ÿÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿJýÿÿÿýÿÿÿÿÿÿ ÿÿ ÿ ÿÿ  ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/SparrowOS/Demo/GameStarters/Stadium/Stadium.CPP b/SparrowOS/Demo/GameStarters/Stadium/Stadium.CPP new file mode 100644 index 0000000000000000000000000000000000000000..63dc915ce62e60a448b5ddc3703d0ce2f7aa1100 GIT binary patch literal 3791 zcmdPb;tI*gELJGa$S*He$jC2OsLU@_NKVXC$W6>nRY>GYN=(j9FUl{?OHn9GEvi&V zO)SpLsnp}r(&qvJmEZs!C7ZOwJUb;FLluyS0vALqDKRIu1^K_S5?!Ro*1ae=IWZ^IHxU$~x^_i65G^_>$+~vAsk!lB zAHs}uD@sk(0Lc`Ag9T)!dr@#IC^R7k=pZCO%8()w9E)!LLB5V5p8kF?1F^>lI9b4A z0~BW9OrcX^0JXK2OF;pIK~^N^=j0dJ2D!R`jC3ywC@l#F#j2aXUr2nor%Q;34w&iT z>gnzgqN5a$nyyfik*eU9m{+W%Y0Xs&PPmSFnYoE2si1VL;b~@qlv+Wiq9@hzjLe)= z1&xrPP*+%T07W&(q46a!5qJ`DE7r9uNGwXtD}jV1uGB*PBmfE`1qEC=0-o}a+|I=b z;sh5KX@GKtZbgNrHi%Ohof)fJS*dAbWMBaDAEyGi0LhHC1%-h%7pH;(D681&KGrv~ z=Hi6d3rYWqppqst7OV?ornYTxW_q5dnTbYFVqS`;p_!&N7bnPktP&toArf%q`bMUD z2G$UVDry+m*n&*8aSwt-wx*^6h;IwygWUu2lcI*9fsHN5A{#>k15Hf@5YyHaVUn(a zp1G-wEyzY25K~hV;wNZcg(Nr_8Jv@vTA*PFNsqOlLXiyTn2I$tk{5rsI8l$Pp~UUDcJr{1BKv{#FWg^TqGCd7N^H2=clCV z6d39h80jQufQ;Z$PzX*fDap)BFAgXz&ahU{*AGrjRZ#Kq)=@&1P|{KI^|L||Q2~|P z#kzLonR)S1r2&OV;b-qu`P3JSidd8HtuHMo@AKslvaiAzaA z!7(Yns6<1@*&{yK!_zG!-Zj`+(;6(}T9FBnfC<$qaVZ7lBvvXwbOxmsmn1^<`niV3 z`*`}fg0pB$nrCs3DaAI)0%(J~~QJ5hWeBVok8O5H*dhdyr#LYGR6pl9iQya6w{GQGU69 zu)a%bZoa;IVs2_M$hoOS#rn`FfzhA>hf6`hB|q7@w5T{A>_`wNCp8hw201RJD6u>~ zv&2>nQkjC>oRSaCtFZXAbx$qvEl$@^D=^eiD=^YAw6XCGc8~XVjf{8k5BJlC@;w9M zeZT_XK!W5)xDmF=6$ScP>s?P%0?YqE=zB z$_r$I0+dr}TVMn;4qlZZXHNx~XeCG#QcS}%KuT2Gk^qPRs9dR4fR?_=8Hylx!PAn0 znwkPs44jNW3DL#bB{fF_5pUpdfT!sE0+6xb#0p~8a&bYU%bJUUiGhKEkpTia7#YC) zpa1{=|Nj5~|8M{Q|9_7}e}VF0G)Vp}R31cw^dQrJpyt46kS!oJ$TY|-5FbSU`~Uy{ zhyVZo!)TDZ-u?goA4W4XFff4lFq(ydfdQl*MuYtF|AU|0B~Nd2pbE91RMHAZAD;h)OarFi0^lFo10Q`k#J)0}8O)$icx61sojMRKTVA zvC4Ds!xV6E@M9VPG99V_L}4fZ3xWuKkV;GgAX5DN9AIe-d9XA;TpC0EKSTjoGnk3) z0I(p$3m_)CG(@*9~5KYu;IWO QJ0NKg#w!U@FcdKZ0E9R(KL7v# literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/GameStarters/Stadium/Stadium.GRA b/SparrowOS/Demo/GameStarters/Stadium/Stadium.GRA new file mode 100644 index 0000000000000000000000000000000000000000..68694eec629fea59ffe5dffa4ce4bc5490657e9e GIT binary patch literal 4624 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 yJzv; zn#TKcy4LrcDD*ma?ah)$IgKyZoV(L=_UX%W@Bb`*v!>-U&pFww^ZXs>pW2-HSTpyp z&w1@#=eaa4{F7New}HL)!ljyXv8OID=Pu-`Z4kVB;rgEo!C4oDdKZZ3Hb~cAJi&9} z4aX(Lxl80^8&uC;{M>oz_wq|>vFDY0=jhKp|Mcdi2#?F!Z|9oxF0ovD`TWVtpPpYf z@V#Kfd%#)tgzMak7F}2D=k`1D*8BQi5zf7`K;vrg-HV~JbHd+Vxx{f*d)n~8QzP(=0d!teJMk6l( DC&Z26 literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/GameStarters/Stadium/Stadium.TXT b/SparrowOS/Demo/GameStarters/Stadium/Stadium.TXT new file mode 100644 index 0000000000000000000000000000000000000000..dd7e87beb3ea4dfbe5b0ae2eafd830654e54596c GIT binary patch literal 302128 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 literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/GameStarters/Stadium/StadiumGen.CPP b/SparrowOS/Demo/GameStarters/Stadium/StadiumGen.CPP new file mode 100644 index 0000000..3be2e6d --- /dev/null +++ b/SparrowOS/Demo/GameStarters/Stadium/StadiumGen.CPP @@ -0,0 +1,30 @@ +//Generate "Stadium.GRA.Z" from "Stadium.TXT.Z" + + +U0 StadiumGen() +{ + U0 (*fp_old_update)(CDC *dc); + CDC *dc; + + WinMax; + WinBorder; + DocClear; + Type("::/SparrowOS/Demo/GameStarters/Stadium/Stadium.TXT.Z"); + "$$CM,0,%d$$",TEXT_ROWS-2; + DocCursor(OFF); + fp_old_update=fp_final_screen_update; //hide mouse cursor + fp_final_screen_update=NULL; + + WinMgrSync(2,TRUE); + dc=DCExtract(gr_screen_image,0,FONT_HEIGHT,GR_WIDTH,GR_HEIGHT); + + GRAWrite("::/SparrowOS/Demo/GameStarters/Stadium/Stadium",dc); + DCDel(dc); + + DocCursor(ON); + fp_final_screen_update=fp_old_update; + DocClear; +} + +StadiumGen; + diff --git a/SparrowOS/Demo/GameStarters/TheDead.CPP b/SparrowOS/Demo/GameStarters/TheDead.CPP new file mode 100644 index 0000000000000000000000000000000000000000..5273895026353d40902e6227c0cb8daff8ed3de7 GIT binary patch literal 7105 zcmdPb56MU^PE|-ON>wPyNL5JA&o4^J%u6guEmp`+0}B=8Bvz&t>2Z0QnJ84)8t7Eo zx(CI3xO%#KgyLE<|!m9n~rLPY) z1!_WSML}j!YB93*{L&H({apI`P!kjsLNZbnGV>G?^HLO`N{bb8^79LH6N~ao^HOva zl0Ysm$>-A72Zdj8Nn%k6$Ri+5Vo_0IWw9QYa!P7iW?rg-uVX}fu!nz0u!6A>I5=TG zur<(uF!M`GK$^3e^lgCz~925?+ff{jQlF3wEPOHJX@*H2W)E6vqYPzV6&SAb{@u~R6@OwTA$ z$jdL+Q7Fk*C{6_>Lr^efWTvE~<|%-qDYGOqKM(Hm;)0^gl2ko#Isip+YDEbsITV)W zmw?hyWqzqba$=rBacT+3#PW>9lGL))A_b6md179P4k#&=mVg5xH7_MIFCFACkQVh4 zg``wac;uz0rs#2cmT>9oXBLAEDhH)}kh5UHm|3g<^({DfGK&>Ti^1N^%u`4!1!X6N zqSUn1qSU+WLa}5D8Ld;h#e@-K><^o3MuBG5nhm3R0394 zo{(r*=A~ME2wF}%LZLTO^^-+1@|JK%)C^PCB+rdS>PfA zM1t75MxX*DD;BJ>7Hl0T@5bksmVopkYy*oDV_9aJf`%fr1jveoIZif_@du4AB+sjUq* z8p9+|#?CD*E>XxyO)ScT8kMSBTA)x=nv+_rhtsTDE>PkP&d*B+C0q?pGZRg&Y6X4$ zpv1hC{M?*Mh4j?C)S|?aR0WNsN(J})6a_0?O)domw_;s8kSF3(^HSoIlWf(3^HM-2 zxaOreJApjwTUwl%9GqHGl9`uY98`=Pt06(5uCVwC$Vsf!P%3mObSZXmc5zNEadLJl zbcRCgqRxd%T$~C@&c)8o&d#YN&dyG$P9Rk1R0!6JOyVQZk1Tbv#b%4#|VhB^gCAb&wBn$o=Z{5)GXN1tF6-B$nrCsKJtzj$f#ckB$3R$!!KXk+6W>>ls!8W|4?8ig7KB$3bnO<3Xt71iOHB^e6du8~gujzKO8 zxy9+wW?D&kK8UA~SdRZiKdm3my9 z#mTk>M%D_+8MXz6)?8eipppviW?N(zf*iyNYR{&EGI()`0;olinUY@i8|P*6Z>bn6;J)YpPbOK`D^&6dyrgdMtQcGw^rOq6Lspys|p zO%2RF$r-k`psW@E$|(@RbVyzW6*|^joJg+23~IRBKt9Iic;c;t77d)B;vW=-wV)~$ z#6YW7K|+Yi4pQSnYCBHs^(rU0D%G|%wT2`ZFc%a#;hrub9^i<9n37*wqOEPs#R;mr z6skdCk!ffPu1&#pET;mfc@D194HY5cPJ z;>zf(SQ}diSKHV^K~0T|lQX>nDhsN1ZEPW2Z4*T7!m4S*SX*ekC@9o&VF|1>1r132 zffG#@yzPPB+JJ0p7HP$1o)B%-L1t)Qx40xmB&Ga-Qp z30y>!f1m`%A(O>}^BT#z)t; z1`uy#LA;Tf2MJ@xM~M6Yq_|f4F_vZeSJ`>Q799JAPkX4mS^H%Vg|{; zFjxhQ!@4;$V30G|*ubuVNiu*W7&t&ONJ1bc%zOqWh<=b5GKR}TjDSiZ`2i~O z|34`1IhdK4n3$MBAqWctBzce{n3zHG@bvN@WNQs|@2fk6=@0>xk*U;-q7 zZaat%N`DMchakd%ftiV!8C33ow835b|33p4D7i8*fZc^G&cwvY1S*Em)q{-3V$Oe1 z*}%la1v3Y#4MZ`4Qap$O#Z1gxOiT17`Sx@-8T;ps5E7feJ4S zaR!F}49v`2XyOpBf!qy~0HqjM?7?%7FrnN7%_m^vKm;h&Kq_ajxga4BhUXqM_3+$- zE)L5*nBt&x4@#vd=EHLjR6SS{LV%McB0n>r<{p@OP~3p?H^>8AARmBrgWV2hLGlXB z9H=);}bq-bq76+LH7G**a2g&`1yk83DqejPRdpen_width=5; + GrLine3(dc,x-20,y-20,0,x+20,y+20,0); + GrLine3(dc,x+20,y-20,0,x-20,y+20,0); +} + +U0 DrawO(CDC *dc,I64 x,I64 y) +{ + dc->pen_width=5; + GrCircle3(dc,x,y,0,25); +} + +U0 DrawBoard(I64 player) +{ + I64 i; + CDC *dc=DCAlias; + DCFill; + dc->pen_width=5; + GrLine3(dc,200,100,0,200,400,0); + GrLine3(dc,300,100,0,300,400,0); + GrLine3(dc,100,200,0,400,200,0); + GrLine3(dc,100,300,0,400,300,0); + for (i=0;i<9;i++) + switch (board[i]) { + case 1: + DrawX(dc,board_x[i],board_y[i]); + break; + case 2: + DrawO(dc,board_x[i],board_y[i]); + break; + + } + if (player==1) + DrawX(dc,ipx-Fs->win_pixel_left,ipy-Fs->win_pixel_top); + else + DrawO(dc,ipx-Fs->win_pixel_left,ipy-Fs->win_pixel_top); + DCDel(dc); +} + + +U0 TakeTurn(I64 player) +{ + I64 i,x=0,y=0; + while (!(100<=x<400) || !(100<=y<400) || board[i]) { + if (player==1) + Beep(500); + else + Beep(1000); + while (!ip_lb) { + DrawBoard(player); + WinMgrSync; + } + while (ip_lb) { + DrawBoard(player); + WinMgrSync; + } + x=ipx-Fs->win_pixel_left; + y=ipy-Fs->win_pixel_top; + i=(x-100)/100+(y-100)/100*3; + } + board[i]=player; +} + +Bool CheckWinner(I64 player) +{ + if ( player==board[0]==board[1]==board[2] || + player==board[3]==board[4]==board[5] || + player==board[6]==board[7]==board[8] || + + player==board[0]==board[3]==board[6] || + player==board[1]==board[4]==board[7] || + player==board[2]==board[5]==board[8] || + + player==board[0]==board[4]==board[8] || + player==board[2]==board[4]==board[6] ) + return TRUE; + else + return FALSE; +} + +U0 DoGame() +{ + I64 moves=0; + MemSet(board,0,sizeof(board)); + while (TRUE) { + TakeTurn(1); + if (CheckWinner(1)) { + Beep(500); + Beep(500); + Beep(500); + break; + } + if (++moves==9) break; + + TakeTurn(2); + if (CheckWinner(2)) { + Beep(1000); + Beep(1000); + Beep(1000); + break; + } + if (++moves==9) break; + } +} + +U0 TicTacToe() +{ + WinMax; //Maximize window + DocClear; //Clear window text. + "$$FG,GREEN$$CTRL-ALT-C$$FG$$ to exit.\n"; + try + while (TRUE) + DoGame; + catch + CatchAll; + DCFill; +} + +TicTacToe; diff --git a/SparrowOS/Demo/GameStarters/Varoom.CPP b/SparrowOS/Demo/GameStarters/Varoom.CPP new file mode 100644 index 0000000000000000000000000000000000000000..a38d76fa5725192893e65c957bd059276f966538 GIT binary patch literal 7651 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 F2msmVAdCP2 literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/GameStarters/WarGame.CPP b/SparrowOS/Demo/GameStarters/WarGame.CPP new file mode 100644 index 0000000000000000000000000000000000000000..d403cc61278206f67ff8cdfcdbaf55cdee0ee1ea GIT binary patch literal 8326 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 E0N|PVO8@`> literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/GameStarters/Wenceslas.CPP b/SparrowOS/Demo/GameStarters/Wenceslas.CPP new file mode 100644 index 0000000..e254435 --- /dev/null +++ b/SparrowOS/Demo/GameStarters/Wenceslas.CPP @@ -0,0 +1,540 @@ +AcctRegSetDftEntry("SparrowOS/Wenceslas","F64 best_score=9999;\n"); +AcctRegExecuteBranch("SparrowOS/Wenceslas"); + +#define BORDER 5 +#define KING_STEP 4 + + + + $SP,"<1>",1$ + + + + + $SP,"<2>",2$ + + + + + + + + + + + + $SP,"<3>",3$ + + + + + $SP,"<4>",4$ + + + + + + + + $SP,"<5>",5$ + + + + + + + + + + + + + + + + + + + + + $SP,"<6>",6$ + + + + + + + + + + $SP,"<7>",7$ + + + +#define NUM_FLAKES 0x8000 +class Flake +{ + U16 x,y; +} flakes[NUM_FLAKES]; + +#define NUM_TREES 8 +class Tree +{ + U16 x,y; + I64 fire_frame_index; +} trees[NUM_TREES]; + +I64 snow_x,snow_y; +I64 king_x,king_y,not_stopped_cnt; +F64 king_é,t0,tf,door_open_t0; + +#define NUM_PEASANTS 16 +class Peasant +{ + Peasant *next,*last; + F64 x,y,é,door_opened_t0; + Bool stopped; +} peasant_root; + +class Step +{ + Step *next,*last; + U16 x,y; + F64 t0; +} step_root,king_step_root; + +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 r[16],i,w=task->win_pixel_width,h=task->win_pixel_height; + U8 *img; + Step *temps; + Peasant *tempp; + F64 tt; + Bool old_preempt=Preempt(OFF); + + dc->pen_width=1; + for (i=0;i",4$; + else + img=$IB,"<5>",5$; + } else + img=$IB,"<3>",3$; + CSpritePlot3(dc,trees[i].x,trees[i].y,0,img); + } + } + + CSpritePlot3(dc,w/2,h/2,0,$IB,"<6>",6$); + if (tP(task)",7$); + + for (i=0;ih/2) { //Draw trees in front of house + if (trees[i].fire_frame_index) { + if (trees[i].fire_frame_index++&1) + img=$IB,"<4>",4$; + else + img=$IB,"<5>",5$; + } else + img=$IB,"<3>",3$; + CSpritePlot3(dc,trees[i].x,trees[i].y,0,img); + } + } + + temps=step_root.next; + while (temps!=&step_root) { + if (tP(task)-temps->t0<2.0) + dc->color=DKGRAY; + else + dc->color=LTGRAY; + dc->pen_width=2; + GrPlot3(dc,temps->x,temps->y,0); + temps=temps->next; + } + + dc->pen_width=1; + tempp=peasant_root.next; + while (tempp!=&peasant_root) { + GrIdentEqu(r); + GrRotYEqu(r,tempp->é+ã/2); + GrRotXEqu(r,ã/6); + if (tempp->stopped) + dc->color=LTCYAN; + else + dc->color=CYAN; + CSpritePlotRotMat3b(dc,tempp->x,tempp->y,0,$IB,"<2>",2$,r); + tempp=tempp->next; + } + + dc->pen_width=1; + GrIdentEqu(r); + GrRotYEqu(r,king_é+ã/2); + GrRotXEqu(r,ã/6); + CSpritePlotRotMat3b(dc,king_x,king_y,0,$IB,"<1>",1$,r); + + dc->pen_width=1; + dc->color=WHITE; + for (i=0;iwin_pixel_width, + (flakes[i].y+snow_y)%task->win_pixel_height); + + if (tf) { + dc->color=LTRED; + if (Blink(,tP(task))) + GrPutS(dc,w/2-(FONT_WIDTH*14)/2,h/2+FONT_HEIGHT,"Game Completed"); + tt=tf; + } else { + tt=tP(task); + } + dc->color=LTBLUE; + GrPrintF(dc,0,0,"Freezing Peasants:%d Time:%3.2f Best:%3.2f", + not_stopped_cnt,tt-t0,best_score); + + Preempt(old_preempt); +} + +U0 StepNew(CTask *task,I64 x,I64 y,F64 é,Bool king) +{ + Step *temps; + + if (king) { + temps=MAlloc(sizeof(Step),task); + temps->x=x; + temps->y=y; + temps->t0=tP(task); + QueIns(temps,king_step_root.last); + } + + temps=MAlloc(sizeof(Step),task); + temps->x=x-3.5*Sin(é)+1.0*Cos(é); + temps->y=y+3.5*Cos(é)+1.0*Sin(é); + temps->t0=tP(task); + QueIns(temps,step_root.last); + + temps=MAlloc(sizeof(Step),task); + temps->x=x+3.5*Sin(é)-1.0*Cos(é); + temps->y=y-3.5*Cos(é)-1.0*Sin(é); + temps->t0=tP(task); + QueIns(temps,step_root.last); +} + +U0 Init() +{ + I64 i,min_x,max_x,min_y,max_y, + w=Fs->win_pixel_width,h=Fs->win_pixel_height; + Peasant *tempp; + snow_x=0; + snow_y=0; + for (i=0;i",3$,&min_x,&max_x,&min_y,&max_y); + for (i=0;i",1$,&min_x,&max_x,&min_y,&max_y); + QueInit(&peasant_root); + for (i=0;ix=RandU16%(w-2*BORDER-(max_x-min_x+1))+BORDER-min_x; + tempp->y=RandU16%(h-2*BORDER-(max_y-min_y+1))+BORDER-min_y; + tempp->é=ã*2*Rand; + tempp->door_opened_t0=0; + tempp->stopped=FALSE; + QueIns(tempp,peasant_root.last); + } + + king_x=w/2; + king_y=h/2; + king_é=-ã/2; + door_open_t0=0; + t0=tP; + tf=0; +} + +U0 CleanUp() +{ + QueDel(&peasant_root,TRUE); + QueDel(&step_root,TRUE); + QueDel(&king_step_root,TRUE); +} + +U0 Follow(CTask *task,Peasant *tempp) +{ + Step *temps=king_step_root.next; + F64 d,best_d=MAX_F64; + while (temps!=&king_step_root) { + if ((d=Sqr(temps->x-tempp->x)+Sqr(temps->y-tempp->y)) && + d<15*15) { + d+=1000*Sqr(tP(task)-temps->t0); + if (dé=Arg(temps->x-tempp->x,temps->y-tempp->y); + } + } + temps=temps->next; + } +} + +U0 AnimateTask(I64) +{//preempt off by default after Spawned + Step *temps,*temps1; + Peasant *tempp; + I64 i,animate_cnt=0,w,h; + while (TRUE) { + w=Fs->parent_task->win_pixel_width; + h=Fs->parent_task->win_pixel_height; + + temps=step_root.next; + while (temps!=&step_root) { + temps1=temps->next; + if (tP(Fs->parent_task)-temps->t0>4.0) { + QueRem(temps); + Free(temps); + } + temps=temps1; + } + + temps=king_step_root.next; + while (temps!=&king_step_root) { + temps1=temps->next; + if (tP(Fs->parent_task)-temps->t0>4.0) { + QueRem(temps); + Free(temps); + } + temps=temps1; + } + + not_stopped_cnt=0; + tempp=peasant_root.next; + while (tempp!=&peasant_root) { + if (tempp->stopped) { + if (tempp->door_opened_t0 && tP(Fs->parent_task)>tempp->door_opened_t0+1.0) { + tempp->door_opened_t0=0; + tempp->y=tempp->x=-9999; + } + } else { + if (Sqr(tempp->x-w/2)+Sqr(tempp->y-h/2)<20*20) { + tempp->stopped=TRUE; + tempp->door_opened_t0=door_open_t0=tP(Fs->parent_task); + } + for (i=0;ix-trees[i].x)+Sqr(tempp->y-trees[i].y)<20*20) { + tempp->stopped=TRUE; + break; + } + if (!tempp->stopped) { + Follow(Fs->parent_task,tempp); + tempp->x+=Cos(tempp->é)/100; + tempp->y+=Sin(tempp->é)/100; + if (!(BORDER/2<=tempp->xyé+=ã; + tempp->x+=3*Cos(tempp->é)/100; + tempp->y+=3*Sin(tempp->é)/100; + } + if (!(animate_cnt&511)) + StepNew(Fs->parent_task,tempp->x,tempp->y,tempp->é,FALSE); + not_stopped_cnt++; + } + } + tempp=tempp->next; + } + if (!not_stopped_cnt && !tf) { + tf=tP(Fs->parent_task); + music_mute=TRUE; + Snd(2000);Sleep(200);Snd(0);Sleep(100); + if (tf-t0task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + while (TRUE) { + Play("W13eCCCDCC2qG3eA2G3ABqCC"); + Play("eCCCDCC2qG3eA2G3ABqCC"); + Play("eGFEDEDqCeA2G3ABqCC"); + } +} + +U0 Wenceslas() +{ + I64 sc; + + MenuPush( + "File {" + " Abort(,CH_SHIFT_ESC);" + " Exit(,CH_ESC);" + "}" + "Play {" + " Restart(,CH_NEW_LINE);" + " BurnTree(,CH_SPACE);" + " Up(,,SC_CURSOR_UP);" + " Down(,,SC_CURSOR_DOWN);" + " Left(,,SC_CURSOR_LEFT);" + " Right(,,SC_CURSOR_RIGHT);" + "}" + ); + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WinMax; + Preempt(OFF); + Fs->song_task=Spawn(&SongTask,NULL,"Song",Fs); + + PopUpOk(" +Good King Wenceslas looked out +On the feast of Stephen +When the snow lay round about +Deep and crisp and even +Brightly shone the moon that night +Though the frost was cruel +When a poor man came in sight +Gath'ring winter fuel + +\"Hither, page, and stand by me +If thou know'st it, telling +Yonder peasant, who is he? +Where and what his dwelling?\" +\"Sire, he lives a good league hence +Underneath the mountain +Right against the forest fence +By Saint Agnes' fountain.\" + +\"Bring me flesh and bring me wine +Bring me pine logs hither +Thou and I will see him dine +When we bear him thither.\" +Page and monarch forth they went +Forth they went together +Through the rude wind's wild lament +And the bitter weather + +"); +PopUpOk(" +\"Sire, the night is darker now +And the wind blows stronger +Fails my heart, I know not how, +I can go no longer.\" +\"Mark my footsteps, my good page +Tread thou in them boldly +Thou shalt find the winter's rage +Freeze thy blood less coldly.\" + +In his master's steps he trod +Where the snow lay dinted +Heat was in the very sod +Which the Saint had printed +Therefore, Christian men, be sure +Wealth or rank possessing +Ye who now will bless the poor +Shall yourselves find blessing + +"); +PopUpOk(" +$$FG,PURPLE$$$$TX+CX,\"Winceslas Game\"$$$$FG$$ + +Start fires by pressing $$FG,GREEN$$$$FG$$ +on trees. (Yule logs) + +Lead peasants to fires. +"); + + Init; + Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",Fs); + WordStat; + + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + try { + while (TRUE) { + switch (GetKey(&sc)) { + case CH_NEW_LINE: + CleanUp; + Init; + break; + case CH_ESC: + case CH_SHIFT_ESC: + goto ws_done; + case CH_SPACE: + BurnTrees; + break; + case 0: + switch (sc.u8[0]) { + case SC_CURSOR_RIGHT: + if (king_x+KING_STEPwin_pixel_width-BORDER) + king_x+=KING_STEP; + king_é=0; + StepNew(Fs,king_x,king_y,king_é,TRUE); + break; + case SC_CURSOR_LEFT: + if (king_x-KING_STEP>=BORDER) + king_x-=KING_STEP; + king_é=ã; + StepNew(Fs,king_x,king_y,king_é,TRUE); + break; + case SC_CURSOR_DOWN: + if (king_y+KING_STEPwin_pixel_height-BORDER) + king_y+=KING_STEP; + king_é=-ã/2; + StepNew(Fs,king_x,king_y,king_é,TRUE); + break; + case SC_CURSOR_UP: + if (king_y-KING_STEP>=BORDER) + king_y-=KING_STEP; + king_é=ã/2; + StepNew(Fs,king_x,king_y,king_é,TRUE); + break; + } + } + } +ws_done: + } catch + CatchAll; + SettingsPop; + MenuPop; + CleanUp; + AcctRegWriteBranch("SparrowOS/Wenceslas","F64 best_score=%5.4f;\n",best_score); +} + +Wenceslas; +yþÿÿÿÚÿÿÿÊÿÿÿþÿÿÿÚÿÿÿ äÿÿÿÖÿÿÿ +ÐÿÿÿúÿÿÿÖÿÿÿôÿÿÿìÿÿÿüÿÿÿØÿÿÿúÿÿÿðÿÿÿüÿÿÿðÿÿÿÖÿÿÿüÿÿÿÔÿÿÿòÿÿÿæÿÿÿÒÿÿÿöÿÿÿÂÿÿÿþÿÿÿÔÿÿÿòÿÿÿ¼ÿÿÿþÿÿÿÎÿÿÿ ¼ÿÿÿþÿÿÿÔÿÿÿÊÿÿÿþÿÿÿØÿÿÿäÿÿÿÚÿÿÿÀÿÿÿþÿÿÿÎÿÿÿ´ÿÿÿÊÿÿÿªÿÿÿ¶ÿÿÿøÿÿÿÈÿÿÿ²ÿÿÿ¬ÿÿÿÆÿÿÿ +¶ÿÿÿÌÿÿÿ ÌÿÿÿüÿÿÿÔÿÿÿèÿÿÿÚÿÿÿÖÿÿÿ* ðÿÿÿüÿÿÿðÿÿÿðÿÿÿèÿÿÿþÿÿÿòÿÿÿüÿÿÿæÿÿÿþÿÿÿæÿÿÿàÿÿÿþÿÿÿèÿÿÿüÿÿÿòÿÿÿæÿÿÿðÿÿÿþÿÿÿâÿÿÿàÿÿÿàÿÿÿÞÿÿÿÞÿÿÿâÿÿÿÞÿÿÿÞÿÿÿýÿÿÿäÿÿÿâÿÿÿþÿÿÿäÿÿÿüÿÿÿèÿÿÿüÿÿÿèÿÿÿüÿÿÿòÿÿÿäÿÿÿêÿÿÿæÿÿÿþÿÿÿîÿÿÿìÿÿÿòÿÿÿxþÿÿÿèÿÿÿüÿÿÿòÿÿÿðÿÿÿèÿÿÿðÿÿÿüÿÿÿðÿÿÿþÿÿÿòÿÿÿüÿÿÿæÿÿÿþÿÿÿæÿÿÿàÿÿÿæÿÿÿðÿÿÿãöÿÿÿðÿÿÿøÿÿÿ +ôÿÿÿðÿÿÿòÿÿÿîÿÿÿêÿÿÿ öÿÿÿæÿÿÿúÿÿÿæÿÿÿöÿÿÿèÿÿÿøÿÿÿæÿÿÿæÿÿÿøÿÿÿîÿÿÿþÿÿÿòÿÿÿ  þÿÿÿöÿÿÿôÿÿÿîÿÿÿðÿÿÿðÿÿÿþÿÿÿ üÿÿÿþÿÿÿäÿÿÿþÿÿÿäÿÿÿîÿÿÿäÿÿÿöÿÿÿöÿÿÿöÿÿÿðÿÿÿøÿÿÿüÿÿÿüÿÿÿðÿÿÿ +ðÿÿÿøÿÿÿúÿÿÿþÿÿÿúÿÿÿúÿÿÿðÿÿÿüÿÿÿúÿÿÿ +üÿÿÿüÿÿÿøÿÿÿúÿÿÿøÿÿÿúÿÿÿðÿÿÿòÿÿÿìÿÿÿôöÿÿÿðÿÿÿøÿÿÿ +ôÿÿÿðÿÿÿòÿÿÿîÿÿÿêÿÿÿ öÿÿÿæÿÿÿúÿÿÿæÿÿÿöÿÿÿèÿÿÿøÿÿÿæÿÿÿæÿÿÿøÿÿÿîÿÿÿþÿÿÿòÿÿÿ  þÿÿÿöÿÿÿôÿÿÿîÿÿÿäÿÿÿúÿÿÿâÿÿÿúÿÿÿèÿÿÿúÿÿÿöÿÿÿòÿÿÿîÿÿÿöÿÿÿúÿÿÿöÿÿÿøÿÿÿðÿÿÿöÿÿÿäÿÿÿôÿÿÿôÿÿÿüÿÿÿêÿÿÿþÿÿÿþÿÿÿüÿÿÿôÿÿÿ ôÿÿÿöÿÿÿòÿÿÿâÿÿÿþÿÿÿúÿÿÿöÿÿÿòÿÿÿüÿÿÿøÿÿÿðÿÿÿøÿÿÿ +ôÿÿÿ +üÿÿÿJ³±»ÿÿÿfÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò/ôÿÿÿÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/SparrowOS/Demo/GameStarters/Whap.CPP b/SparrowOS/Demo/GameStarters/Whap.CPP new file mode 100644 index 0000000..2d3e990 --- /dev/null +++ b/SparrowOS/Demo/GameStarters/Whap.CPP @@ -0,0 +1,173 @@ +#define NUM_BALLS 7 +#define NUM_SPRINGS 3 + +#define STRETCH 500.0 +#define GRAVITY 50.0 //not really gravity +#define BALL_RADIUS 5 +#define BASE_SIZE 10 + +CMass balls[NUM_BALLS]; +CSpring springs[NUM_SPRINGS]; +F64 collision_t; + +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 i, + cx=task->win_pixel_width>>1, + cy=task->win_pixel_height>>1; + Bool snd_on=FALSE; + dc->color=BLACK; + GrPutS(dc,0,0,"Protect your base."); + GrRect(dc,cx-BASE_SIZE,cy-BASE_SIZE,BASE_SIZE*2,BASE_SIZE*2); + dc->color=CYAN; + GrRect(dc,cx-BASE_SIZE+2,cy-BASE_SIZE+2,BASE_SIZE*2-4,BASE_SIZE*2-4); + dc->color=YELLOW; + GrLine(dc,balls[0].x,balls[0].y, + ipx-task->win_pixel_left-task->win_scroll_x, + ipy-task->win_pixel_top-task->win_scroll_y); + for (i=0;ix,springs[i].end1->y, + springs[i].end2->x,springs[i].end2->y); + + dc->color=LTCYAN; + GrCircle(dc,balls[0].x,balls[0].y,BALL_RADIUS); + GrFloodFill(dc,balls[0].x,balls[0].y,TRUE); + dc->color=BLACK; + GrCircle(dc,balls[0].x,balls[0].y,BALL_RADIUS); + + for (i=1;icolor=LTPURPLE; + GrCircle(dc,balls[i].x,balls[i].y,BALL_RADIUS); + GrFloodFill(dc,balls[i].x,balls[i].y,TRUE); + if (cx-BASE_SIZE-BALL_RADIUS<=balls[i].x<=cx+BASE_SIZE+BALL_RADIUS && + cy-BASE_SIZE-BALL_RADIUS<=balls[i].y<=cy+BASE_SIZE+BALL_RADIUS) + snd_on=TRUE; + dc->color=BLACK; + GrCircle(dc,balls[i].x,balls[i].y,BALL_RADIUS); + } + if (snd_on) + Snd(1000); + else + Snd(0); +} + + +U0 MyDerivative(CMathODE *ode,F64 t,COrder2D3 *,COrder2D3 *) +{ + I64 i,j; + F64 d,dd; + CD3 p,p2; + CTask *task=ode->win_task; + + D3SubEqu(D3Equ(&p2,ipx-task->win_pixel_left-task->win_scroll_x,ipy-task->win_pixel_top-task->win_scroll_y,0), + &balls[0].state->x); + D3AddEqu(&balls[0].DstateDt->DxDt,D3MulEqu(&p2,STRETCH)); + + D3Equ(&p2,task->win_pixel_width>>1,task->win_pixel_height>>1,0); + for (i=1;ix,&p); + if (d=D3Norm(&p)) { + //Gravity would be /(d*d*d), but that's too exponential. + D3MulEqu(&p,GRAVITY/d); + D3AddEqu(&balls[i].DstateDt->DxDt,&p); + } + } + + for (i=0;ix,&balls[i].state->x,&p); + dd=D3SqrNorm(&p); + if (dd<=(2*BALL_RADIUS)*(2*BALL_RADIUS)) { + if (t-collision_t>0.05) { + Noise(50,5000,6000); + collision_t=t; + } + d=Sqrt(dd)+0.0001; + dd=10.0*Sqr(Sqr((2*BALL_RADIUS)*(2*BALL_RADIUS)-dd)); + D3MulEqu(&p,dd/d); + D3AddEqu(&balls[j].DstateDt->DxDt,&p); + D3SubEqu(&balls[i].DstateDt->DxDt,&p); + } + } + + d=balls[0].state->x; + if (d-BALL_RADIUS<0) + balls[0].DstateDt->DxDt+=Sqr(Sqr(Sqr(d-BALL_RADIUS))); + if (d+BALL_RADIUS>task->win_pixel_width) + balls[0].DstateDt->DxDt-=Sqr(Sqr(Sqr((d+BALL_RADIUS)-task->win_pixel_width))); + + d=balls[0].state->y; + if (d-BALL_RADIUS<0) + balls[0].DstateDt->DyDt+=Sqr(Sqr(Sqr(d-BALL_RADIUS))); + if (d+BALL_RADIUS>task->win_pixel_height) + balls[0].DstateDt->DyDt-=Sqr(Sqr(Sqr((d+BALL_RADIUS)-task->win_pixel_height))); +} + + +U0 Whap() +{ + I64 i; + CMathODE *ode=ODENew(0,1e-2,ODEF_HAS_MASSES); + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WinMax; + WordStat; + Preempt(OFF); + + MenuPush( +"File {" +" Abort(,CH_SHIFT_ESC);" +" Exit(,CH_ESC);" +"}" +); + ode->derivative=&MyDerivative; + ode->drag_v2=0.002; + ode->drag_v3=0.00001; + ode->acceleration_limit=5e3; + MemSet(balls,0,NUM_BALLS*sizeof(CMass)); + D3Equ(&balls[0].x,100,100,0); + for (i=1;iwin_pixel_width>>1,RandI16%500+Fs->win_pixel_height>>1,0); + balls[0].x=ipx-Fs->win_pixel_left-Fs->win_scroll_x; + balls[0].y=ipy-Fs->win_pixel_top-Fs->win_scroll_y; + for (i=0;ilast_mass); + } + balls[2].x=balls[1].x+15; + balls[2].y=balls[1].y; + balls[3].x=balls[1].x; + balls[3].y=balls[1].y+15; + MemSet(springs,0,NUM_SPRINGS*sizeof(CSpring)); + springs[0].end1=&balls[1]; + springs[0].end2=&balls[2]; + springs[0].rest_len=15; + springs[0].constant=10000; + QueIns(&springs[0],ode->last_spring); + springs[1].end1=&balls[1]; + springs[1].end2=&balls[3]; + springs[1].rest_len=15; + springs[1].constant=10000; + QueIns(&springs[1],ode->last_spring); + springs[2].end1=&balls[2]; + springs[2].end2=&balls[3]; + springs[2].rest_len=sqrt2*15; + springs[2].constant=10000; + QueIns(&springs[2],ode->last_spring); + + collision_t=0; + QueIns(ode,Fs->last_ode); + + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + GetChar; + SettingsPop; + QueRem(ode); + ODEDel(ode); + MenuPop; +} + +Whap; diff --git a/SparrowOS/Demo/GameStarters/Zing.CPP b/SparrowOS/Demo/GameStarters/Zing.CPP new file mode 100644 index 0000000000000000000000000000000000000000..8202d0299275296a2554ee4c469799c8b77b4c97 GIT binary patch literal 4882 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 o2O|Fe{|};}T0n+@L}4@w)Y&W`_k#4ZfCvxK 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 + try { + while (!ScanChar) { + DCDepthBufRst(dc); + GrSetSymmetry(dc,Fs->win_pixel_width/2,Fs->win_pixel_height/2, + ipx-Fs->win_pixel_left-Fs->win_scroll_x, + ipy-Fs->win_pixel_top-Fs->win_scroll_y); + dc->color=LTBLUE; + GrLine(dc,Fs->win_pixel_width/2,Fs->win_pixel_height/2, + ipx-Fs->win_pixel_left-Fs->win_scroll_x, + ipy-Fs->win_pixel_top-Fs->win_scroll_y); + + GrIdentEqu(dc->r); + GrRotXEqu(dc->r,ê); + GrRotYEqu(dc->r,è); + GrRotZEqu(dc->r,é); + GrSetRotMat(dc,dc->r); + + dc->x=Fs->win_pixel_width/2; + dc->y=Fs->win_pixel_height/2; + dc->z=500; + + dc->color=GREEN; + poly[0].x=50; + poly[0].y=150; + poly[0].z=0; + poly[1].x=275; + poly[1].y=100; + poly[1].z=0; + poly[2].x=155; + poly[2].y=200; + poly[2].z=0; + poly[3].x=100; + poly[3].y=200; + poly[3].z=0; + GrFillPoly3(dc,4,poly); + + dc->color=RED; + poly[0].x=50; + poly[0].y=150; + poly[0].z=50; + poly[1].x=275; + poly[1].y=100; + poly[1].z=50; + poly[2].x=155; + poly[2].y=200; + poly[2].z=50; + poly[3].x=100; + poly[3].y=200; + poly[3].z=50; + GrFillPoly3(dc,4,poly); + + dc->color=BLUE; + poly[0].x=50; + poly[0].y=150; + poly[0].z=-50; + poly[1].x=275; + poly[1].y=100; + poly[1].z=-50; + poly[2].x=155; + poly[2].y=200; + poly[2].z=-50; + poly[3].x=100; + poly[3].y=200; + poly[3].z=-50; + GrFillPoly3(dc,4,poly); + + dc->color=RED+GREEN<<16+ROPF_DITHER; + poly[0].x=50; + poly[0].y=150; + poly[0].z=50; + poly[1].x=275; + poly[1].y=100; + poly[1].z=50; + poly[2].x=275; + poly[2].y=100; + poly[2].z=0; + poly[3].x=50; + poly[3].y=150; + poly[3].z=0; + GrFillPoly3(dc,4,poly); + + dc->color=BLUE+GREEN<<16+ROPF_DITHER; + poly[0].x=100; + poly[0].y=200; + poly[0].z=-50; + poly[1].x=155; + poly[1].y=200; + poly[1].z=-50; + poly[2].x=155; + poly[2].y=200; + poly[2].z=0; + poly[3].x=100; + poly[3].y=200; + poly[3].z=0; + GrFillPoly3(dc,4,poly); + + WinMgrSync; + DCFill; + é+=2.1*ã/180.0; + è+=1.1*ã/180.0; + ê+=0.5*ã/180.0; + } + } catch + CatchAll; + + DCFill; + DCDel(dc); +} + +Main; diff --git a/SparrowOS/Demo/Graphics/BSpline.CPP b/SparrowOS/Demo/Graphics/BSpline.CPP new file mode 100644 index 0000000..3132868 --- /dev/null +++ b/SparrowOS/Demo/Graphics/BSpline.CPP @@ -0,0 +1,32 @@ +U0 BSplineDemo() +{ + CDC *dc=DCAlias; + I64 p1,p2,i=0,msg_code; + CD3I32 c[64]; + + SettingsPush; + Fs->win_inhibit=WIF_ALL-WIF_BORDER; + + "$$CL$$Select ctrl points with left mouse. Right when finished.\n"; + DCFill; + do { + msg_code=GetMsg(&p1,&p2,1<color=GREEN; + GrCircle(dc,p1,p2,10); + i++; + } + } while (msg_code!=MSG_IP_R_UP); + dc->color=RED; + Gr2BSpline(dc,c,i,TRUE); + dc->color=BLUE; + Gr3BSpline(dc,c,i,TRUE); + DCDel(dc); + SettingsPop; + + PressAKey; + DCFill; +} + +BSplineDemo; diff --git a/SparrowOS/Demo/Graphics/Bling.CPP b/SparrowOS/Demo/Graphics/Bling.CPP new file mode 100644 index 0000000..2e65f3f --- /dev/null +++ b/SparrowOS/Demo/Graphics/Bling.CPP @@ -0,0 +1,242 @@ +Bool chged; + +#define DAWG_SETTINGS_SPACING 16 +#define DAWG_SETTINGS_RANGE 60 +#define DAWG_SETTINGS_BORDER 2 + +class DawgSettingsState +{ + I64 cnt,n2_amp,color_scale; +} glbl_state; + +U0 DrawDawgSettingsCtrl(CDC *dc,CCtrl *c) +{ + DawgSettingsState *s=c->state; + + dc->color=LTRED; + GrRect(dc, c->left,c->top,DAWG_SETTINGS_SPACING*4+3,DAWG_SETTINGS_SPACING*2+DAWG_SETTINGS_RANGE); + dc->color=BLUE; + GrRect(dc, c->left+DAWG_SETTINGS_BORDER,c->top+DAWG_SETTINGS_BORDER, + DAWG_SETTINGS_SPACING*4+3-2*DAWG_SETTINGS_BORDER,DAWG_SETTINGS_SPACING*2+DAWG_SETTINGS_RANGE-2*DAWG_SETTINGS_BORDER); + dc->color=BLACK; + GrLine(dc,c->left+DAWG_SETTINGS_SPACING,c->top+DAWG_SETTINGS_SPACING, + c->left+DAWG_SETTINGS_SPACING,c->top+DAWG_SETTINGS_SPACING+DAWG_SETTINGS_RANGE-1); + GrLine(dc,c->left+2*DAWG_SETTINGS_SPACING+1,c->top+DAWG_SETTINGS_SPACING, + c->left+2*DAWG_SETTINGS_SPACING+1,c->top+DAWG_SETTINGS_SPACING+DAWG_SETTINGS_RANGE-1); + GrLine(dc,c->left+3*DAWG_SETTINGS_SPACING+1,c->top+DAWG_SETTINGS_SPACING, + c->left+3*DAWG_SETTINGS_SPACING+1,c->top+DAWG_SETTINGS_SPACING+DAWG_SETTINGS_RANGE-1); + + dc->color=LTRED; + GrPrintF(dc,c->left+DAWG_SETTINGS_SPACING-FONT_WIDTH/2, + c->top+DAWG_SETTINGS_SPACING+DAWG_SETTINGS_RANGE+3, + "%d",s->cnt*10/DAWG_SETTINGS_RANGE); + GrPrintF(dc,c->left+2*DAWG_SETTINGS_SPACING+1-FONT_WIDTH/2, + c->top+DAWG_SETTINGS_SPACING+DAWG_SETTINGS_RANGE+3, + "%d",s->n2_amp*10/DAWG_SETTINGS_RANGE); + GrPrintF(dc,c->left+3*DAWG_SETTINGS_SPACING+2-FONT_WIDTH/2, + c->top+DAWG_SETTINGS_SPACING+DAWG_SETTINGS_RANGE+3, + "%d",s->color_scale*10/DAWG_SETTINGS_RANGE); + GrRect(dc,c->left+DAWG_SETTINGS_SPACING-3, c->top+DAWG_SETTINGS_SPACING+DAWG_SETTINGS_RANGE-1-s->cnt-2 ,7,5); + GrRect(dc,c->left+2*DAWG_SETTINGS_SPACING+1-3,c->top+DAWG_SETTINGS_SPACING+DAWG_SETTINGS_RANGE-1-s->n2_amp-2,7,5); + GrRect(dc,c->left+3*DAWG_SETTINGS_SPACING+2-3,c->top+DAWG_SETTINGS_SPACING+DAWG_SETTINGS_RANGE-1-s->color_scale-2,7,5); + dc->color=YELLOW; + GrRect(dc,c->left+DAWG_SETTINGS_SPACING-2, c->top+DAWG_SETTINGS_SPACING+DAWG_SETTINGS_RANGE-1-s->cnt-1 ,5,3); + GrRect(dc,c->left+2*DAWG_SETTINGS_SPACING+1-2,c->top+DAWG_SETTINGS_SPACING+DAWG_SETTINGS_RANGE-1-s->n2_amp-1,5,3); + GrRect(dc,c->left+3*DAWG_SETTINGS_SPACING+2-2,c->top+DAWG_SETTINGS_SPACING+DAWG_SETTINGS_RANGE-1-s->color_scale-1,5,3); +} + +U0 UpdateDerivedDawgSettingsCtrl(CCtrl *c) +{ + DawgSettingsState *s=c->state; + c->left=c->win_task->win_pixel_width-(DAWG_SETTINGS_SPACING*4+3); + c->right=c->left+DAWG_SETTINGS_SPACING*4+3; + c->top=c->win_task->win_pixel_height-(DAWG_SETTINGS_SPACING*2+DAWG_SETTINGS_RANGE); + c->bottom=c->top+DAWG_SETTINGS_SPACING*2+DAWG_SETTINGS_RANGE; + s->cnt =LimitI64(s->cnt,0,DAWG_SETTINGS_RANGE-1); + s->n2_amp=LimitI64(s->n2_amp,0,DAWG_SETTINGS_RANGE-1); + s->color_scale=LimitI64(s->color_scale,0,DAWG_SETTINGS_RANGE-1); +} + +U0 LeftClickDawgSettings(CCtrl *c,I64 x,I64 y,Bool down) +{ + DawgSettingsState *s=c->state; + if (xleft+(c->right-c->left)/3) + s->cnt=DAWG_SETTINGS_RANGE-1-(y-(c->top+DAWG_SETTINGS_SPACING)); + else if (xleft+2*(c->right-c->left)/3) + s->n2_amp=DAWG_SETTINGS_RANGE-1-(y-(c->top+DAWG_SETTINGS_SPACING)); + else + s->color_scale=DAWG_SETTINGS_RANGE-1-(y-(c->top+DAWG_SETTINGS_SPACING)); + if (c->update_derived_vals) + (*c->update_derived_vals)(c); + if (!down) chged=TRUE; +} + +CCtrl *DawgSettingsNew() +{ + Bool old_preempt; + CCtrl *c=CAlloc(sizeof(CCtrl)); + c->win_task=Fs; + c->flags=CTRLF_SHOW|CTRLF_CAPTURE_LEFT_IP; + c->type=CTRLT_GENERIC; +// c->state=CAlloc(sizeof(DawgSettingsState)); + c->state=&glbl_state; + glbl_state.cnt=DAWG_SETTINGS_RANGE/2; + glbl_state.n2_amp=DAWG_SETTINGS_RANGE/2; + glbl_state.color_scale=DAWG_SETTINGS_RANGE/2; + c->draw_it=&DrawDawgSettingsCtrl; + c->left_click=&LeftClickDawgSettings; + c->update_derived_vals=&UpdateDerivedDawgSettingsCtrl; + old_preempt=Preempt(OFF); + QueIns(c,Fs->last_ctrl); + TaskDerivedValsUpdate; + Preempt(old_preempt); + return c; +} + +U0 DawgSettingsDel(CCtrl *c) +{ + Bool old_preempt=Preempt(OFF); + QueRem(c); + Preempt(old_preempt); +// Free(c->state); + Free(c); +} + + + +//This program does a fractel-like thing with +//integer arithmetic. + +class Simplex //This is something I made-up. It's not standard math. +{ + I64 x,y; +}; + +I64 Norm(Simplex *n1) +{ + return AbsI64(n1->x)+AbsI64(n1->y); +} + +Simplex *CopySimplex(Simplex *dst, Simplex *src) +{ + Simplex *result; + MemCpy(dst,src,sizeof(Simplex)); + return dst; +} + + +Simplex *Mix(Simplex *result,Simplex *n1,Simplex *n2) +{ //This is something I made-up. It's not standard math. + result->x=n1->x*n2->x; + result->y=n1->y*n2->y; + return result; +} + +Simplex *Mangle(Simplex *result,Simplex *n1,Simplex *n2) +{ //This is something I made-up. It's not standard math. + result->x=n1->x*n2->y; + result->y=n1->y*n2->x; + return result; +} + +Simplex *Add(Simplex *result,Simplex *n1,Simplex *n2) +{ + result->x=n1->x+n2->x; + result->y=n1->y+n2->y; + return result; +} + +Simplex *Sub(Simplex *result,Simplex *n1,Simplex *n2) +{ + result->x=n1->x-n2->x; + result->y=n1->y-n2->y; + return result; +} + + +U0 Bling() +{ + I64 ch; + I64 x,y,cnt; + I64 d; + F64 color,color_scale; + Simplex n1,n2,n3,n4,n5,n6,n7,n8; + F64 timeout_time; + CCtrl *c=DawgSettingsNew; + CDC *dc=DCAlias; + F64 e=Exp(1); + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + DocCursor; + DocClear; + Fs->win_inhibit=WIF_ALL-WIF_BORDER-WIF_CTRLS; + + chged=FALSE; + WordStat; + WinMax; + while (TRUE) { +next_dotel: + ch=0; + cnt =2e9*(RandU32+0x1000)/MAX_U32*((Exp(ToF64(glbl_state.cnt +10)/DAWG_SETTINGS_RANGE)-1)/e); + n2.x=2e9*Sign(RandI32)*(RandU32+0x1000)/MAX_U32*((Exp(ToF64(glbl_state.n2_amp)/DAWG_SETTINGS_RANGE)-1)/e); + n2.y=2e9*Sign(RandI32)*(RandU32+0x1000)/MAX_U32*((Exp(ToF64(glbl_state.n2_amp)/DAWG_SETTINGS_RANGE)-1)/e); + n8.x=RandI32; + n8.y=RandI32; + color_scale=4.0*(glbl_state.color_scale+1.0)/DAWG_SETTINGS_RANGE+0.5; + timeout_time=tNP+0.1; + for (y=0;ytimeout_time) + goto next_dotel; + if (ScanKey(&ch)) + goto next_dotel; + for (x=0;xtimeout_time) + goto next_dotel; + + n1.x=x; n1.y=y; + CopySimplex(&n3,&n1); + + color=0; + d=Norm(&n3); + +//This doesn't make mathematical sense, but it makes nice results. + while (d.u32[0]timeout_time) + goto next_dotel; + Mangle(&n7,Mix(&n4,&n3,&n1), + Add(&n5,&n3,&n2)); + color++; + d=Norm(Add(&n3,&n7,Mangle(&n6,&n3,&n8))); + } + color-=(cnt-d.u32[0])/cnt; + dc->color=ROP_EQU+ + color=gr_rainbow_10[LimitI64(color_scale*(Ln(color)),0,9)]; + GrPlot(dc,x,y); + } + } + dc->color=COLOR_TRANSPARENT; + GrRect(dc,c->left,c->top,c->right-c->left,c->bottom-c->top); + while (TRUE) { + if (chged) { + chged=FALSE; + break; + } + if (ch=ScanChar) + if (ch==CH_SPACE||ch==CH_NEW_LINE) + break; + else + goto bling_done; + WinMgrSync; + } + } +bling_done: + SettingsPop; + DCDel(dc); + DCFill; + DawgSettingsDel(c); +} + +Bling; //Start when included diff --git a/SparrowOS/Demo/Graphics/Blink.CPP b/SparrowOS/Demo/Graphics/Blink.CPP new file mode 100644 index 0000000..eb17508 --- /dev/null +++ b/SparrowOS/Demo/Graphics/Blink.CPP @@ -0,0 +1,34 @@ +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/Blot.CPP b/SparrowOS/Demo/Graphics/Blot.CPP new file mode 100644 index 0000000..eb7cc49 --- /dev/null +++ b/SparrowOS/Demo/Graphics/Blot.CPP @@ -0,0 +1,41 @@ +CDC *dc=DCAlias; +CDC *img1=DCNew(DCT_COLOR8,64,64); +CDC *img2=DCNew(DCT_COLOR8,512,512); + +img1->color=COLOR_MONO; +img1->pen_width=3; +GrCircle(img1,30,30,20); +GrFloodFill3(img1,30,30,0,TRUE); +GrLine3(img1,60,0,0,0,60,0); + +DCFill(img2); +img2->color=ROP_EQU+RED; +img2->brush=img1; +GrCircle(img2,256-30,256-30,128,67); +img2->color=BLUE; +img2->pen_width=6; +img2->brush=NULL; +GrLine3(img2,128,128,0,256+128,256+128,0); +GrLine3(img2,256+128,128,0,128,256+128,0); + +img2->color=YELLOW; +GrRect(img2,256-20,256-20,40,40); + +I64 i; +for (i=0;i<256;i+=4) { + WinMgrSync; + DCFill; + GrBlot(dc,i-256,i-256,img2); + Sleep(10); +} +U8 *tempg=DC2Sprite(img1); +PutSprite(tempg); +Free(tempg); +NewLine(9); + +DCDel(img1); +DCDel(img2); +DCDel(dc); + +PressAKey; +DCFill; diff --git a/SparrowOS/Demo/Graphics/Bounce.CPP b/SparrowOS/Demo/Graphics/Bounce.CPP new file mode 100644 index 0000000..34a98d8 --- /dev/null +++ b/SparrowOS/Demo/Graphics/Bounce.CPP @@ -0,0 +1,57 @@ +//This uses $LK,"fixed-point-arithmetic","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + +I64 x[16],y[16],dx[16],dy[16]; + +U0 Init() +{ + I64 i; + F64 é; + MemSet(x,0,sizeof(x)); + MemSet(y,0,sizeof(y)); + for (i=0;i<16;i++) { + é=Rand*2*ã; + dx[i]=MAX_I32*Cos(é); + dy[i]=MAX_I32*Sin(é); + } +} + +U0 Bounce() +{ + CDC *dc=DCAlias; + I64 i,msg_code,p1,update; + Init; + try { //Catch + while (TRUE) { + update=win_updates; + do for (i=0;i<16;i++) { + dc->color=i; + GrPlot(dc,x[i].i32[1],y[i].i32[1]); + x[i]+=dx[i]; + y[i]+=dy[i]; + if (!(0<=x[i]win_pixel_width<<32)) { + x[i]-=dx[i]; + dx[i]=-dx[i]; + } + if (!(0<=y[i]win_pixel_height<<32)) { + y[i]-=dy[i]; + dy[i]=-dy[i]; + } + } + while (update==win_updates); + while (msg_code=ScanMsg(&p1,NULL,1<pen_width=2; + dc->color=RED; + GrLine3(dc,-100,-100,-100, -100, 100,-100); + GrLine3(dc,-100, 100,-100, 100, 100,-100); + GrLine3(dc, 100, 100,-100, 100,-100,-100); + GrLine3(dc, 100,-100,-100, -100,-100,-100); + GrLine3(dc,-100,-100, 100, -100, 100, 100); + GrLine3(dc,-100, 100, 100, 100, 100, 100); + GrLine3(dc, 100, 100, 100, 100,-100, 100); + GrLine3(dc, 100,-100, 100, -100,-100, 100); + GrLine3(dc,-100,-100, 100, -100,-100,-100); + GrLine3(dc,-100, 100, 100, -100, 100,-100); + GrLine3(dc, 100, 100, 100, 100, 100,-100); + GrLine3(dc, 100,-100, 100, 100,-100,-100); +} + +U0 Box() +{ + F64 é=0,è=0,ê=0,s=1,s1=1.05; + dc=DCAlias(gr_dc,Fs); + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + DocClear; + Fs->draw_it=&DrawIt; + Preempt(OFF); //We don't want matrix used while we're changing it. + + dc->x=200; + dc->y=200; + dc->flags|=DCF_TRANSFORMATION; + while (!ScanChar) { + GrIdentEqu(dc->r); + GrRotZEqu(dc->r,é); + GrRotXEqu(dc->r,è); + GrRotZEqu(dc->r,ê); + GrScaleMatEqu(dc->r,s); + GrSetRotMat(dc,dc->r); + + Sleep(20); + é+=2*ã/70; + è +=2*ã/90; + ê +=2*ã/110; + s *=s1; + if ( !(0.2win_pixel_width/(NUM_DATA_PTS-1); + x2=i*task->win_pixel_width/(NUM_DATA_PTS-1); + for (j=0;jcolor=gr_rainbow_10[j]; + y1=task->win_pixel_height*CPU_idle[j][i-1]; + y2=task->win_pixel_height*CPU_idle[j][i]; + GrLine(dc,x1,y1,x2,y2); + } + dc->color=LTCYAN; + y1=task->win_pixel_height*mem[i-1]; + y2=task->win_pixel_height*mem[i]; + GrLine(dc,x1,y1,x2,y2); + + dc->color=LTPURPLE; + y1=task->win_pixel_height*refresh[i-1]; + y2=task->win_pixel_height*refresh[i]; + GrLine(dc,x1,y1,x2,y2); + } + for (j=0;jwin_height-4-j); + } + PlotWinStr(task,"Mem %",LTCYAN+WHITE<<4,0,task->win_height-3); + PlotWinStr(task,"Refresh Hz",LTPURPLE+WHITE<<4,0,task->win_height-2); +} + +U0 CPUPlot() +{ + I64 cur_pt=0,j; + MemSet(CPU_idle,0,sizeof(CPU_idle)); + MemSet(mem,0,sizeof(F64)*NUM_DATA_PTS); + MemSet(refresh,0,sizeof(F64)*NUM_DATA_PTS); + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + + while (!ScanChar) { + for (j=0;j6oZ+ae=HVNzE$(S!4?_7a|1; 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 literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Graphics/CaptureScreen.CPP b/SparrowOS/Demo/Graphics/CaptureScreen.CPP new file mode 100644 index 0000000..a64d901 --- /dev/null +++ b/SparrowOS/Demo/Graphics/CaptureScreen.CPP @@ -0,0 +1,27 @@ +//See $LK,"::/SparrowOS/Demo/GameStarters/Stadium/StadiumGen.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Stadium/StadiumGen.CPP.Z"$. + +U0 ViewScreenCapture(U8 *filename) +{ + CDC *dc=DCAlias(gr_dc2,Fs), + *dc2=GRARead(filename); + GrBlot(dc,0,0,dc2); + DCDel(dc2); + DCDel(dc); +} + + +U0 Main() +{ + "Capture screen...\n"; + PressAKey; + GRACaptureScreen("HOME/ScreenShot.GRA.Z"); + + "View captured screen...\n"; + PressAKey; + ViewScreenCapture("HOME/ScreenShot.GRA.Z"); + + PressAKey; + DCFill; +} + +Main; diff --git a/SparrowOS/Demo/Graphics/Cartesian.CPP b/SparrowOS/Demo/Graphics/Cartesian.CPP new file mode 100644 index 0000000..48a6c8d --- /dev/null +++ b/SparrowOS/Demo/Graphics/Cartesian.CPP @@ -0,0 +1,48 @@ +//x must be global. +//Might as well make y global. + +F64 x,y,y_last; + +U0 Cartesian() +{ + U8 *st; + I64 ch=0,h,v; + Bool first; + CDC *dc=DCAlias; + do { + DocClear; + "Enter algebraic equation to graph.\n" + "Example: y=2*x\n" + "y="; + if (st=MGetS) { + if (*st) { + h=Fs->win_pixel_width/2; + v=Fs->win_pixel_height/2; + dc->color=RED; + GrLine(dc,h,0,h,2*v+1); + GrLine(dc,0,v,2*h+1,v); + first=TRUE; + dc->color=BLACK; + for (x=-h;x<=h;x++) { + y=-ExePrintF("ToF64(%s);",st)(F64); + if (!first) + GrLine(dc,x-1+h,y_last+v,x+h,y+v); + y_last=y; + first=FALSE; + } + ch=GetChar; + } else + ch=CH_SHIFT_ESC; + Free(st); + } else + ch=CH_SHIFT_ESC; + DCFill; + } while (ch!=CH_SHIFT_ESC && ch!=CH_ESC); + DCDel(dc); +} + +Cartesian; + +/*$WW,1$ +For better performance, compile the expression entered by the user one time with $LK,"CmpExpression","MN:CmpExpression"$() and use $LK,"Call","MN:Call"$(). See $LK,"::/SparrowOS/Demo/CompileDemo.CPP.Z","FI:::/SparrowOS/Demo/CompileDemo.CPP.Z"$. +*/ diff --git a/SparrowOS/Demo/Graphics/CharGraphics.CPP b/SparrowOS/Demo/Graphics/CharGraphics.CPP new file mode 100644 index 0000000..b29d202 --- /dev/null +++ b/SparrowOS/Demo/Graphics/CharGraphics.CPP @@ -0,0 +1,35 @@ +U8 *old_font=gr_font; + +// See $LK,"::/SparrowOS/OSMain/Font8x8.CPP.Z","FI:::/SparrowOS/OSMain/Font8x8.CPP.Z"$. +// See $LK,"::/SparrowOS/Demo/ScreenCodes.CPP.Z","FI:::/SparrowOS/Demo/ScreenCodes.CPP.Z"$. +// See $LK,"::/SparrowOS/Demo/ExtendedChars.CPP.Z","FI:::/SparrowOS/Demo/ExtendedChars.CPP.Z"$. +// See $LK,"::/SparrowOS/Demo/Graphics/FontEd.CPP.Z","FI:::/SparrowOS/Demo/Graphics/FontEd.CPP.Z"$. + +U8 waves[8*4]={ +0x00,0x11,0xAA,0x44,0x00,0x11,0xAA,0x44, +0x00,0x22,0x55,0x88,0x00,0x22,0x55,0x88, +0x00,0x44,0xAA,0x11,0x00,0x44,0xAA,0x11, +0x00,0x88,0x55,0x22,0x00,0x88,0x55,0x22}; + +U0 AnimateEndCB() +{ + gr_font=old_font; + Exit; +} + +U0 AnimateTask(I64) +{ + I64 i; + U8 *font=MAlloc(256*8); + Fs->task_end_cb=&AnimateEndCB; + MemCpy(font,gr_font,256*8); + gr_font=font; + while (TRUE) { + MemCpy(font+CH_SPACE*FONT_HEIGHT,waves+8*(i++&0x3),8); + Sleep(100); + } +} + + +Spawn(&AnimateTask,NULL,"Animate",Fs); +TaskRep; diff --git a/SparrowOS/Demo/Graphics/Circuit.CPP b/SparrowOS/Demo/Graphics/Circuit.CPP new file mode 100644 index 0000000..0507f13 --- /dev/null +++ b/SparrowOS/Demo/Graphics/Circuit.CPP @@ -0,0 +1,1191 @@ + +$SP,"<1>",1$ + +$SP,"<2>",2$ + +$SP,"<3>",3$ + +$SP,"<4>",4$ + +$SP,"<5>",5$ + +$SP,"<6>",6$ + +#define A_EAST 0 +#define A_NORTH 1 +#define A_WEST 2 +#define A_SOUTH 3 + +U0 OrthRot(I64 *_x,I64 *_y,I64 é) +{ + nobound_switch (é&3) { + case A_EAST: + break; + case A_NORTH: + *_y=-*_y; + SwapU64(_x,_y); + break; + case A_WEST: + *_x=-*_x; + *_y=-*_y; + break; + case A_SOUTH: + *_x=-*_x; + SwapU64(_x,_y); + break; + } +} + +#define MAX_TERMINALS 6 + +#define ET_R 0 +#define ET_L 1 +#define ET_C 2 +#define ET_NUM_TYPES 3 + +class ElementType +{ + U8 *black_img,*red_img; + I64 terminals; + CD2I64 term[MAX_TERMINALS]; + I64 min_x,max_x,min_y,max_y; +}; + +ElementType et[ET_NUM_TYPES] = +{ + {$IB,"<1>",1$,$IB,"<2>",2$,2,{{-12,1},{13,1},{0,0},{0,0},{0,0},{0,0}},0,0,0,0}, + {$IB,"<3>",3$,$IB,"<4>",4$,2,{{-14,0},{15,0},{0,0},{0,0},{0,0},{0,0}},0,0,0,0}, + {$IB,"<5>",5$,$IB,"<6>",6$,2,{{-4 ,0},{6 ,0},{0,0},{0,0},{0,0},{0,0}},0,0,0,0}, +}; + +extern class Element; +class Terminal +{ + Element *e; + I64 terminal; +}; + + +#define Df_PROCESSED 0 +#define Df_JUNCTION 1 +#define Df_TERMINAL 2 +#define Df_TERMINAL_LEFT 3 +#define Df_TERMINAL_RIGHT 4 +#define Df_TERMINAL_TOP 5 +#define Df_TERMINAL_BOTTOM 6 + +class Dot //These are points on a node +{ + Dot *next,*last; + I64 x,y,saved_x,saved_y; + Element *e; + U16 flags[4]; + Dot *left,*right,*top,*bottom; +}; + +class Node +{ + Node *next,*last; + I64 cnt; + Terminal *terms; + Dot *dot_root; +} node_root; + +class Element +{ + Element *next,*last; + ElementType *type; + I64 x,y,é,min_x,max_x,min_y,max_y; + Node *nodes[MAX_TERMINALS]; +} el_root; + + +#define MD_CONNECT 0 +#define MD_MOVE 1 +#define MD_NUM_MODES 2 +I64 mode; + +Element *rubber_band; +I64 rubber_band_terminal,rubber_band_x,rubber_band_y; + +U0 DotDel(Dot *root) +{ + if (root) { + QueDel(root,TRUE); + Free(root); + } +} + +U0 DotRst(Dot *root) +{ + Dot *tempd; + if (root) { + Bts(root->flags,Df_PROCESSED); + tempd=root->next; + while (tempd!=root) { + Btr(tempd->flags,Df_PROCESSED); + tempd=tempd->next; + } + } +} + +#define DIR_LT 0 +#define DIR_CT 1 +#define DIR_RT 2 +#define DIR_LC 3 +#define DIR_CC 4 +#define DIR_RC 5 +#define DIR_LB 6 +#define DIR_CB 7 +#define DIR_RB 8 + +I64 ElementSqrDist(Element *tempe,I64 x,I64 y) +{ + I64 i,dx,dy; + if (xmin_x) + i=0; + else if (x<=tempe->max_x) + i=1; + else + i=2; + if (y>=tempe->min_y) { + if (y<=tempe->max_y) + i+=3; + else + i+=6; + } + switch (i) { + case DIR_LT: + dx=tempe->min_x-x; + dy=tempe->min_y-y; + break; + case DIR_CT: + dx=0; + dy=tempe->min_y-y; + break; + case DIR_RT: + dx=x-tempe->max_x; + dy=tempe->min_y-y; + break; + case DIR_LC: + dx=tempe->min_x-x; + dy=0; + break; + case DIR_CC: + dx=0; + dy=0; + break; + case DIR_RC: + dx=x-tempe->max_x; + dy=0; + break; + case DIR_LB: + dx=tempe->min_x-x; + dy=y-tempe->max_y; + break; + case DIR_CB: + dx=0; + dy=y-tempe->max_y; + break; + case DIR_RB: + dx=x-tempe->max_x; + dy=y-tempe->max_y; + break; + } + return SqrI64(dx)+SqrI64(dy); +} + +#define SPACING 10 + +F64 DotNetScore(Dot *root) +{ //higher is better + F64 d,distdist1=0.1,distdist2=0.1,num=1.0,den=0.1; + I64 dx,dy,nonzero_cnt=1; + Element *tempe; + Dot *tempd,*tempd1; + if (root) { + tempd=root->next; + while (tempd!=root) { + + //Calculate clearance from elements like parallel resistors + tempe=el_root.next; + while (tempe!=&el_root) { + if (tempd->e!=tempe) { + d=Sqrt(ElementSqrDist(tempe,tempd->x,tempd->y))+0.1; + if (d>SPACING) d=SPACING; + num*=d; + den+=d; + } + tempe=tempe->next; + } + + //Calculate clearance from junctions like parallel resistors + if (Bt(tempd->flags,Df_TERMINAL)) { + tempd1=root->next; + while (tempd1!=root) { + if (tempd1!=tempd && Bt(tempd1->flags,Df_JUNCTION)) { + d=Sqrt(SqrI64(tempd->x-tempd1->x)+SqrI64(tempd->y-tempd1->y))+0.1; + if (d>SPACING) d=SPACING; + num*=d; + den+=d; + } + tempd1=tempd1->next; + } + } + + if (tempd1=tempd->left) { + dx=SqrI64(tempd->x-tempd1->x); + dy=SqrI64(tempd->y-tempd1->y); + if (d=dx+dy) { + distdist1+=d; + nonzero_cnt++; + } + distdist2+=dy; + } + if (tempd1=tempd->right) { + dx=SqrI64(tempd->x-tempd1->x); + dy=SqrI64(tempd->y-tempd1->y); + if (d=dx+dy) { + distdist1+=d; + nonzero_cnt++; + } + distdist2+=dy; + } + if (tempd1=tempd->top) { + dx=SqrI64(tempd->x-tempd1->x); + dy=SqrI64(tempd->y-tempd1->y); + if (d=dx+dy) { + distdist1+=d; + nonzero_cnt++; + } + distdist2+=dx; + } + if (tempd1=tempd->bottom) { + dx=SqrI64(tempd->x-tempd1->x); + dy=SqrI64(tempd->y-tempd1->y); + if (d=dx+dy) { + distdist1+=d; + nonzero_cnt++; + } + distdist2+=dx; + } + tempd=tempd->next; + } + } + return num/(nonzero_cnt*nonzero_cnt*nonzero_cnt*distdist1*distdist2); +} + +Bool NodeAdd(Node *tempn,Element *tempe,I64 terminal,CTask *mem_task=NULL) +{ + I64 i; + Terminal *a; + for (i=0;icnt;i++) + if (tempn->terms[i].e==tempe&&tempn->terms[i].terminal==terminal) + return TRUE; + a=MAlloc((tempn->cnt+1)*sizeof(Terminal),mem_task); + if (tempn->terms) { + MemCpy(a,tempn->terms,tempn->cnt*sizeof(Terminal)); + Free(tempn->terms); + } + tempn->terms=a; + i=tempn->cnt++; + tempn->terms[i].e=tempe; + tempn->terms[i].terminal=terminal; + return FALSE; +} + +U0 NodeDel(Node *tempn) +{ + if (tempn) { + QueRem(tempn); + Free(tempn->terms); + if (tempn->dot_root) + DotDel(tempn->dot_root); + Free(tempn); + } +} + +extern Dot *DotNew(Node *tempn,CTask *mem_task=NULL); + +U0 NodeReroute(Node *tempn=NULL,CTask *mem_task=NULL) +{ + if (tempn) { + DotDel(tempn->dot_root); + tempn->dot_root=DotNew(tempn,mem_task); + } else { + tempn=node_root.next; + while (tempn!=&node_root) { + DotDel(tempn->dot_root); + tempn->dot_root=DotNew(tempn,mem_task); + tempn=tempn->next; + } + } +} + +U0 ElementExtents(Element *tempe) +{ + ElementType *tempt=tempe->type; + I64 x,y; + x=tempt->min_x; y=tempt->min_y; + OrthRot(&x,&y,tempe->é); + x+=tempe->x; y+=tempe->y; + tempe->min_x=tempe->max_x=x; + tempe->min_y=tempe->max_y=y; + x=tempt->max_x; y=tempt->max_y; + OrthRot(&x,&y,tempe->é); + x+=tempe->x; y+=tempe->y; + if (xmin_x) tempe->min_x=x; + if (x>tempe->max_x) tempe->max_x=x; + if (ymin_y) tempe->min_y=y; + if (y>tempe->max_y) tempe->max_y=y; + if (tempe==rubber_band) { + tempe->min_x+=ipx-rubber_band_x; + tempe->max_x+=ipx-rubber_band_x; + tempe->min_y+=ipy-rubber_band_y; + tempe->max_y+=ipy-rubber_band_y; + } +} + +U0 ElementReroute(Element *tempe,CTask *mem_task=NULL) +{ + I64 i; + ElementType *tempt; + if (tempe) { + tempt=tempe->type; + for (i=0;iterminals;i++) + if (tempe->nodes[i]) + NodeReroute(tempe->nodes[i],mem_task); + } +} + +U0 ElementDel(Element *tempe,CTask *mem_task=NULL) +{ + I64 i,cnt; + Terminal *src,*dst; + Node *tempn=node_root.next,*tempn1; + while (tempn!=&node_root) { + tempn1=tempn->next; + cnt=0; + dst=src=tempn->terms; + for (i=0;icnt;i++) { + if (src->e!=tempe) { + if (dst!=src) + MemCpy(dst,src,sizeof(Terminal)); + cnt++; + dst++; + } + src++; + } + if (tempn->cnt!=cnt) { + tempn->cnt=cnt; + if (!cnt) + NodeDel(tempn); + else if (cnt==1) { + tempn->terms[0].e->nodes[tempn->terms[0].terminal]=NULL; + NodeDel(tempn); + } else { + DotDel(tempn->dot_root); + tempn->dot_root=NULL; + NodeReroute(tempn,mem_task); + } + } + tempn=tempn1; + } + QueRem(tempe); + Free(tempe); +} + +Node *NodeNew(CTask *mem_task=NULL) +{ + Node *result=CAlloc(sizeof(Node),mem_task); + QueIns(result,node_root.last); + return result; +} + +Node *NodeCat(Node *dst,Node *src,CTask *mem_task=NULL) +{ + I64 i; + if (!dst) dst=NodeNew(mem_task); + if (src && dst!=src) { + for (i=0;icnt;i++) { + NodeAdd(dst,src->terms[i].e,src->terms[i].terminal,mem_task); + src->terms[i].e->nodes[src->terms[i].terminal]=dst; + } + NodeDel(src); + } + return dst; +} + +U0 TerminalXY(Element *tempe,I64 terminal,I64 *_x,I64 *_y) +{ + ElementType *tempt=tempe->type; + I64 x=tempt->term[terminal].x,y=tempt->term[terminal].y; + OrthRot(&x,&y,tempe->é); + if (_x) + *_x=tempe->x+x; + if (_y) + *_y=tempe->y+y; +} + +#define CT_NONE 0 +#define CT_LEFT 1 +#define CT_RIGHT 2 +#define CT_TOP 3 +#define CT_BOTTOM 4 + +I64 DotHVDecideConnect(Dot *tempd,Dot *tempd1) +{ + I64 d; + d=tempd->x-tempd1->x; + if (d<0) { + if (!tempd->right && !tempd1->left || + tempd->right==tempd1 && tempd1->left==tempd) + return CT_RIGHT; + } else if (d>0) { + if (!tempd->left && !tempd1->right || + tempd->left==tempd1 && tempd1->right==tempd) + return CT_LEFT; + } + d=tempd->y-tempd1->y; + if (d<0) { + if (!tempd->bottom && !tempd1->top || + tempd->bottom==tempd1 && tempd1->top==tempd) + return CT_BOTTOM; + } else if (d>0) { + if (!tempd->top && !tempd1->bottom || + tempd->top==tempd1 && tempd->bottom==tempd) + return CT_TOP; + } + return CT_NONE; +} + +Bool DotHVConnect(Dot *tempd,Dot *tempd1) +{ + switch (DotHVDecideConnect(tempd,tempd1)) { + case CT_RIGHT: + tempd ->right=tempd1; + tempd1->left =tempd; + return TRUE; + case CT_LEFT: + tempd ->left =tempd1; + tempd1->right=tempd; + return TRUE; + case CT_BOTTOM: + tempd ->bottom=tempd1; + tempd1->top =tempd; + return TRUE; + case CT_TOP: + tempd ->top =tempd1; + tempd1->bottom=tempd; + return TRUE; + default: + return FALSE; + } +} + +Dot *DotHVInterconnect(Dot *tempd,Dot *tempd1,CTask *mem_task=NULL) +{ + I64 type; + Dot *result=CAlloc(sizeof(Dot),mem_task); + if (Bt(tempd ->flags,Df_TERMINAL_LEFT)|| + Bt(tempd ->flags,Df_TERMINAL_RIGHT)) { //d horizontal + type=0; + if (Bt(tempd1->flags,Df_TERMINAL_TOP)|| + Bt(tempd1->flags,Df_TERMINAL_BOTTOM)) {//d1 vertical + if (tempd->yy && Bt(tempd1->flags,Df_TERMINAL_TOP)|| + tempd->y>tempd1->y && Bt(tempd1->flags,Df_TERMINAL_BOTTOM)) + type=1; + } else { + if (tempd->x>tempd1->x && Bt(tempd1->flags,Df_TERMINAL_LEFT)|| + tempd->xx && Bt(tempd1->flags,Df_TERMINAL_RIGHT)) + type=1; + } + } else { //d vertical + type=1; + if (Bt(tempd1->flags,Df_TERMINAL_LEFT)|| + Bt(tempd1->flags,Df_TERMINAL_RIGHT)) { //d1 horizontal + if (tempd->xx && Bt(tempd1->flags,Df_TERMINAL_LEFT)|| + tempd->x>tempd1->x && Bt(tempd1->flags,Df_TERMINAL_RIGHT)) + type=0; + } else { + if (tempd->y>tempd1->y && Bt(tempd1->flags,Df_TERMINAL_TOP)|| + tempd->yy && Bt(tempd1->flags,Df_TERMINAL_BOTTOM)) + type=0; + } + } + if (type==1) { + result->x=tempd1->x; + result->y=tempd ->y; + } else { + result->x=tempd ->x; + result->y=tempd1->y; + } + return result; +} + +Dot *DotNearest(Dot *root,Dot *tempd,Bool just_processed) +{ + I64 best_dd=MAX_I64,dx,dy,dd; + Dot *result=NULL,*tempd1,*tempd2; + if (root && tempd) { + tempd1=root->next; + while (tempd1!=root) { + if (tempd1!=tempd && (!just_processed||Bt(tempd1->flags,Df_PROCESSED))) { + dx=tempd->x-tempd1->x; + dy=tempd->y-tempd1->y; + dd=SqrI64(dx)+SqrI64(dy); + if (0next; + } + } + return result; +} + +Bool DotMarkConnected(Dot *tempd) +{ + if (tempd && !Bts(tempd->flags,Df_PROCESSED)) { + DotMarkConnected(tempd->left); + DotMarkConnected(tempd->right); + DotMarkConnected(tempd->top); + DotMarkConnected(tempd->bottom); + return TRUE; + } else + return FALSE; +} + +U0 DotSpacersAdd(Dot *root,CTask *mem_task=NULL) +{ + Dot *tempd,*tempd1,*tempd2; + if (root) { + tempd=root->next; + if (tempd!=root) { + tempd2=root->last; + do { + if (Bt(tempd->flags,Df_TERMINAL)) { + tempd1=CAlloc(sizeof(Dot),mem_task); + tempd1->x=tempd->x; + tempd1->y=tempd->y; + tempd1->flags[0]=tempd->flags[0]; + tempd1->e=tempd->e; + if (Bt(tempd->flags,Df_TERMINAL_LEFT)) { + tempd->right=tempd1; + tempd1->left=tempd; + tempd->x--; + } + if (Bt(tempd->flags,Df_TERMINAL_RIGHT)) { + tempd->left=tempd1; + tempd1->right=tempd; + tempd->x++; + } + if (Bt(tempd->flags,Df_TERMINAL_TOP)) { + tempd->bottom=tempd1; + tempd1->top=tempd; + tempd->y--; + } + if (Bt(tempd->flags,Df_TERMINAL_BOTTOM)) { + tempd->top=tempd1; + tempd1->bottom=tempd; + tempd->y++; + } + tempd->flags[0]=0; + tempd->e=NULL; + QueIns(tempd1,root->last); + } + tempd=tempd->next; + } while (tempd!=tempd2); + } + } +} + +U0 DotAddSpace(Dot *root) +{ + F64 score,best_score; + I64 i,x,y,best_x,best_y; + Dot *tempd,*tempd1; + if (root) { + tempd=root->next; + while (tempd!=root) { + tempd->saved_x=tempd->x; + tempd->saved_y=tempd->y; + tempd=tempd->next; + } + best_score=DotNetScore(root); + tempd=root->next; + while (tempd!=root) { + if (!Bt(tempd->flags,Df_TERMINAL)) { + best_x=0; + best_y=0; + for (i=0;i<4*SPACING;i++) { + nobound_switch (i&3) { + case A_EAST: x= i>>2; y=0; break; + case A_NORTH: y= i>>2; x=0; break; + case A_WEST: x=-i>>2; y=0; break; + case A_SOUTH: y=-i>>2; x=0; break; + } + tempd->x=tempd->saved_x+x; + tempd1=tempd->top; + while (tempd1 && !Bt(tempd1->flags,Df_TERMINAL)) { + tempd1->x=tempd1->saved_x+x; + tempd1=tempd1->top; + } + tempd1=tempd->bottom; + while (tempd1 && !Bt(tempd1->flags,Df_TERMINAL)) { + tempd1->x=tempd1->saved_x+x; + tempd1=tempd1->bottom; + } + tempd->y=tempd->saved_y+y; + tempd1=tempd->left; + while (tempd1 && !Bt(tempd1->flags,Df_TERMINAL)) { + tempd1->y=tempd1->saved_y+y; + tempd1=tempd1->left; + } + tempd1=tempd->right; + while (tempd1 && !Bt(tempd1->flags,Df_TERMINAL)) { + tempd1->y=tempd1->saved_y+y; + tempd1=tempd1->right; + } + score=DotNetScore(root); + if (score>best_score) { + best_score=score; + best_x=x; + best_y=y; + } + } + tempd->saved_x=tempd->x=tempd->saved_x+best_x; + tempd1=tempd->top; + while (tempd1 && !Bt(tempd1->flags,Df_TERMINAL)) { + tempd1->saved_x=tempd1->x=tempd1->saved_x+best_x; + tempd1=tempd1->top; + } + tempd1=tempd->bottom; + while (tempd1 && !Bt(tempd1->flags,Df_TERMINAL)) { + tempd1->saved_x=tempd1->x=tempd1->saved_x+best_x; + tempd1=tempd1->bottom; + } + tempd->saved_y=tempd->y=tempd->saved_y+best_y; + tempd1=tempd->left; + while (tempd1 && !Bt(tempd1->flags,Df_TERMINAL)) { + tempd1->saved_y=tempd1->y=tempd1->saved_y+best_y; + tempd1=tempd1->left; + } + tempd1=tempd->right; + while (tempd1 && !Bt(tempd1->flags,Df_TERMINAL)) { + tempd1->saved_y=tempd1->y=tempd1->saved_y+best_y; + tempd1=tempd1->right; + } + } + tempd=tempd->next; + } + } +} + +U0 DotJunctions(Dot *root) +{ + I64 cnt; + Dot *tempd; + tempd=root->next; + while (tempd!=root) { + if (Bt(tempd->flags,Df_TERMINAL)) + cnt=1; + else + cnt=0; + if (tempd->left) cnt++; + if (tempd->right) cnt++; + if (tempd->top) cnt++; + if (tempd->bottom) cnt++; + BEqu(tempd->flags,Df_JUNCTION,cnt>2); + tempd=tempd->next; + } +} + +Dot *DotTerminalsNew(Node *tempn,CTask *mem_task=NULL) +{ + I64 i,min_x,max_x,min_y,max_y,dx,dy,x,y; + Element *tempe; + Dot *result=CAlloc(sizeof(Dot),mem_task),*tempd; + QueInit(result); + for (i=0;icnt;i++) + if (tempe=tempn->terms[i].e) { + tempd=CAlloc(sizeof(Dot),mem_task); + Bts(tempd->flags,Df_TERMINAL); + tempd->e=tempe; + TerminalXY(tempe,tempn->terms[i].terminal,&tempd->x,&tempd->y); + x=tempe->x; + y=tempe->y; + if (mode==MD_MOVE && tempe==rubber_band) { + tempd->x+=ipx-rubber_band_x; + tempd->y+=ipy-rubber_band_y; + x+=ipx-rubber_band_x; + y+=ipy-rubber_band_y; + } + + min_x=AbsI64(tempd->x-tempe->min_x); + max_x=AbsI64(tempd->x-tempe->max_x); + if (min_xy-tempe->min_y); + max_y=AbsI64(tempd->y-tempe->max_y); + if (min_yx<=x) + Bts(tempd->flags,Df_TERMINAL_LEFT); + else + Bts(tempd->flags,Df_TERMINAL_RIGHT); + } else { + if (tempd->y<=y) + Bts(tempd->flags,Df_TERMINAL_TOP); + else + Bts(tempd->flags,Df_TERMINAL_BOTTOM); + } + QueIns(tempd,result->last); + } + return result; +} + +Dot *DotNew(Node *tempn,CTask *mem_task=NULL) +{ + I64 cnt,pass=0,last_cnt=0; + Bool cont; + Dot *tempd,*tempd1,*tempd2,*tempd3; + Dot *result=DotTerminalsNew(tempn,mem_task); + do { + pass++; + tempd=result->next; + while (tempd!=result) { + if (!Bt(tempd->flags,Df_PROCESSED)) { + if (tempd1=DotNearest(result,tempd,pass>1)) { + if (tempd->x==tempd1->x || tempd->y==tempd1->y) { + if (tempd->x!=tempd1->x || tempd->y!=tempd1->y) { + if (DotHVConnect(tempd,tempd1)) + DotMarkConnected(tempd); + } + }else { + tempd2=DotHVInterconnect(tempd,tempd1,mem_task); + tempd3=result->next; + while (tempd3!=result) { + if (tempd2->x==tempd3->x && tempd2->y==tempd3->y) + break; + tempd3=tempd3->next; + } + if (tempd3!=result) { + Free(tempd2); + tempd2=tempd3; + } else + QueIns(tempd2,result->last); + + if (DotHVConnect(tempd,tempd2)) { + DotMarkConnected(tempd); + if (DotHVConnect(tempd2,tempd1)) + DotMarkConnected(tempd1); + } else + DotHVConnect(tempd2,tempd1); + } + } + } + tempd=tempd->next; + } + + tempd=result->next; + while (tempd!=result) { + tempd1=tempd->next; + while (tempd1!=result) { + if (tempd1->y==tempd->y) { + if ((tempd2=tempd->left ) && tempd2->xxx) { + tempd ->left =tempd1; + tempd1->right=tempd ; + tempd1->left =tempd2; + tempd2->right=tempd1; + } + if ((tempd2=tempd->right ) && tempd ->xxx) { + tempd2->left =tempd1; + tempd1->right=tempd2; + tempd1->left =tempd ; + tempd ->right=tempd1; + } + } + if (tempd1->x==tempd->x) { + if ((tempd2=tempd->top ) && tempd2->yyy) { + tempd ->top =tempd1; + tempd1->bottom=tempd ; + tempd1->top =tempd2; + tempd2->bottom=tempd1; + } + if ((tempd2=tempd->bottom) && tempd ->yyy) { + tempd2->top =tempd1; + tempd1->bottom=tempd2; + tempd1->top =tempd ; + tempd ->bottom=tempd1; + } + } + tempd1=tempd1->next; + } + tempd=tempd->next; + } + + cont=FALSE; + DotRst(result); + cnt=0; + tempd=result->next; + if (tempd!=result) { + DotMarkConnected(tempd); + while (tempd!=result) { + if (Bt(tempd->flags,Df_PROCESSED)) + cnt++; + else + cont=TRUE; + tempd=tempd->next; + } + if (last_cnt==cnt) + break; + last_cnt=cnt; + } + } while (cont); + DotJunctions(result); + DotSpacersAdd(result,mem_task); + DotAddSpace(result); + DotJunctions(result); + return result; +} + +U0 DotDraw(CDC *dc,Dot *root) +{ + Dot *tempd,*tempd1; + if (root) { + tempd=root->next; + while (tempd!=root) { + Bts(tempd->flags,Df_PROCESSED); + if ((tempd1=tempd->right) && !Bt(tempd1->flags,Df_PROCESSED)) + GrLine(dc,tempd->x,tempd->y,tempd1->x,tempd1->y); + if ((tempd1=tempd->left) && !Bt(tempd1->flags,Df_PROCESSED)) + GrLine(dc,tempd->x,tempd->y,tempd1->x,tempd1->y); + if ((tempd1=tempd->top) && !Bt(tempd1->flags,Df_PROCESSED)) + GrLine(dc,tempd->x,tempd->y,tempd1->x,tempd1->y); + if ((tempd1=tempd->bottom) && !Bt(tempd1->flags,Df_PROCESSED)) + GrLine(dc,tempd->x,tempd->y,tempd1->x,tempd1->y); + if (Bt(tempd->flags,Df_JUNCTION)) { + dc->pen_width=3; + GrPlot3(dc,tempd->x,tempd->y,0); + dc->pen_width=1; + } + tempd=tempd->next; + } + } +} + +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 i,x1,y1,x2,y2; + U8 *img; + Bool old_preempt=Preempt(OFF); + Node *tempn=node_root.next; + Element *tempe=el_root.next; + while (tempe!=&el_root) { + x1=tempe->x; + y1=tempe->y; + if (mode==MD_MOVE && tempe==rubber_band) { + img=tempe->type->red_img; + x1+=ipx-rubber_band_x; + y1+=ipy-rubber_band_y; + } else + img=tempe->type->black_img; + CSpritePlotRotZ3b(dc,x1,y1,0,img,tempe->é*pi/2); + tempe=tempe->next; + } + while (tempn!=&node_root) { + dc->color=BLUE; + if (mode==MD_MOVE) + for (i=0;icnt;i++) + if (tempn->terms[i].e==rubber_band) { + dc->color=RED; + break; + } + DotRst(tempn->dot_root); + DotDraw(dc,tempn->dot_root); + tempn=tempn->next; + } + if (mode==MD_CONNECT && rubber_band && rubber_band_terminal>=0) { + TerminalXY(rubber_band,rubber_band_terminal,&x1,&y1); + x2=ipx-task->win_pixel_left-task->win_scroll_x; + y2=ipy-task->win_pixel_top -task->win_scroll_y; + dc->color=RED; + GrLine(dc,x1,y1,x2,y2); + } + Preempt(old_preempt); + + dc->color=BLACK; + GrPutS(dc,0,0,"Right Mouse Change Modes"); + switch (mode) { + case MD_CONNECT: + GrPutS(dc,20,FONT_HEIGHT,"Connect Components"); + break; + case MD_MOVE: + GrPutS(dc,20,FONT_HEIGHT,"Move Components"); + break; + } +} + +U0 RubberReset() +{ + rubber_band=NULL; rubber_band_terminal=-1; + rubber_band_x=0; rubber_band_y=0; +} + +U0 Init() +{ + I64 i; + ElementType *tempt; + for (i=0;iblack_img,&tempt->min_x,&tempt->max_x,&tempt->min_y,&tempt->max_y); + } + mode=MD_CONNECT; + RubberReset; + QueInit(&el_root); + QueInit(&node_root); +} + +U0 CleanUp() +{ + Element *tempe=el_root.next,*tempe1; + Node *tempn=node_root.next,*tempn1; + while (tempe!=&el_root) { + tempe1=tempe->next; + QueRem(tempe); + Free(tempe); + tempe=tempe1; + } + while (tempn!=&node_root) { + tempn1=tempn->next; + NodeDel(tempn); + tempn=tempn1; + } +} + +Element *ElementNew(I64 t,CTask *mem_task=NULL) +{ + Element *tempe=CAlloc(sizeof(Element),mem_task); + tempe->type=&et[t]; + tempe->x=ipx-Fs->win_pixel_left-Fs->win_scroll_x; + tempe->y=ipy-Fs->win_pixel_top -Fs->win_scroll_y; + QueIns(tempe,el_root.last); + ElementExtents(tempe); + return tempe; +} + +Element *ElementFind(I64 x,I64 y,I64 *_terminal) +{ + I64 i,x2,y2,best_dd=MAX_I64,dd; + Element *result=NULL,*tempe=el_root.next; + if (_terminal) *_terminal=0; + while (tempe!=&el_root) { + for (i=0;itype->terminals;i++) { + TerminalXY(tempe,i,&x2,&y2); + dd=SqrI64(x-x2)+SqrI64(y-y2); + if (ddnext; + } + return result; +} + +U0 Circuit() +{ + I64 p1,p2,terminal1=-1,terminal2=-1; + Element *tempe1=NULL,*tempe2=NULL; + Node *tempn; + + PopUpOk( + "This is not useful.\n" + "It just lets you draw\n" + "a circuit.\n"); + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Preempt(OFF); + WordStat; + WinMax; + MenuPush( +"File {" +" New(,CH_NEW_LINE);" +" Abort(,CH_SHIFT_ESC);" +" Exit(,CH_ESC);" +"}" +"Edit {" +" Rotate(,CH_SPACE);" +" DelElement(,,SC_DELETE);" +"}" +"Mode {" +" Connect(,0,SC_F2);" +" Move(,0,SC_F3);" +"}" +"PlaceElement {" +" Resistor(,'r');" +" Inductor(,'l');" +" Capacitor(,'c');" +"}" + ); + Init; + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + Fs->win_inhibit=WIF_ALL-WIF_BORDER-WIF_MENU-WIF_GRAB_SCROLL; + try { + while (TRUE) { + switch (GetMsg(&p1,&p2,1<win_pixel_left-Fs->win_scroll_x, + ipy-Fs->win_pixel_top -Fs->win_scroll_y,&terminal1); + ElementDel(tempe1,Fs); + tempe1=NULL; terminal1=-1; + tempe2=NULL; terminal2=-1; + RubberReset; + break; + } + break; + case CH_NEW_LINE: + CleanUp; + Init; + break; + case CH_ESC: + case CH_SHIFT_ESC: + goto cs_done; + case 'r': + tempe1=ElementNew(ET_R); + terminal1=-1; + break; + case 'l': + tempe1=ElementNew(ET_L); + terminal1=-1; + break; + case 'c': + tempe1=ElementNew(ET_C); + terminal1=-1; + break; + case CH_SPACE: + if (tempe1) { + tempe1->é=(tempe1->é+1)&3; + ElementExtents(tempe1); + ElementReroute(tempe1,Fs); + } + break; + } + break; + case MSG_IP_MOVE: + if (tempe1) { + ElementExtents(tempe1); + ElementReroute(tempe1,Fs); + } + break; + case MSG_IP_L_DOWN: + tempe1=ElementFind(p1,p2,&terminal1); + rubber_band=tempe1; rubber_band_terminal=terminal1; + rubber_band_x=ipx; rubber_band_y=ipy; + break; + case MSG_IP_L_UP: + rubber_band=NULL; + switch (mode) { + case MD_CONNECT: + if (tempe1 && terminal1>=0) { + if ((tempe2=ElementFind(p1,p2,&terminal2)) && + (tempe2!=tempe1 || terminal2!=terminal1)) { + if (!(tempn=tempe1->nodes[terminal1]) && + !(tempn=tempe2->nodes[terminal2])) + tempn=NodeNew; + + NodeAdd(tempn,tempe1,terminal1); + NodeAdd(tempn,tempe2,terminal2); + + if (tempe1->nodes[terminal1]) + NodeCat(tempn,tempe1->nodes[terminal1]); + tempe1->nodes[terminal1]=tempn; + + if (tempe2->nodes[terminal2]) + NodeCat(tempn,tempe2->nodes[terminal2]); + tempe2->nodes[terminal2]=tempn; + + NodeReroute(tempn,Fs); + } + } + break; + case MD_MOVE: + if (tempe1 && terminal1>=0) { + tempe1->x+=ipx-rubber_band_x; + tempe1->y+=ipy-rubber_band_y; + ElementExtents(tempe1); + ElementReroute(tempe1,Fs); + } + break; + } + tempe1=NULL; terminal1=-1; + tempe2=NULL; terminal2=-1; + RubberReset; + break; + case MSG_IP_R_DOWN: + if (mode+1==MD_NUM_MODES) + mode=0; + else + mode++; + tempe1=NULL; terminal1=-1; + tempe2=NULL; terminal2=-1; + RubberReset; + break; + } + } +cs_done: + } catch + CatchAll; + SettingsPop; + CleanUp; + MenuPop; +} + +Circuit; +œöÿÿÿùÿÿÿþÿÿÿùÿÿÿþÿÿÿüÿÿÿüÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿýÿÿÿ +þÿÿÿöÿÿÿôÿÿÿ + òÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿXüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿÿÿÿÿÿÿÿÿúÿÿÿœöÿÿÿùÿÿÿþÿÿÿùÿÿÿþÿÿÿüÿÿÿüÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿýÿÿÿ +þÿÿÿöÿÿÿôÿÿÿ + òÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿXüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿÿÿÿÿÿÿÿÿúÿÿÿ \ No newline at end of file diff --git a/SparrowOS/Demo/Graphics/CommonAncestor.CPP b/SparrowOS/Demo/Graphics/CommonAncestor.CPP new file mode 100644 index 0000000..13d83ef --- /dev/null +++ b/SparrowOS/Demo/Graphics/CommonAncestor.CPP @@ -0,0 +1,119 @@ +#define N 32 + +class Node +{ + Node *left,*right; + I64 n; +}; + +I64 n1,n2,common_ancestor; +Node *root; + +#define X_SPACING 16 +#define Y_SPACING 45 +#define ARROW_SPACING 3 + +U0 ShowTree(CDC *dc,Node *tempn,I64 *_node_x,I64 *_tree_x,I64 y) +{ + I64 node_x; + if (tempn) { + if (tempn->left) { + ShowTree(dc,tempn->left,&node_x,_tree_x,y+Y_SPACING); + dc->color=BLUE; + GrArrow3(dc,*_tree_x,y,0,node_x+ARROW_SPACING,y+Y_SPACING-ARROW_SPACING,0); + } + if (tempn->n==n1 || tempn->n==n2) { + if (tempn->n==common_ancestor) + dc->color=YELLOW; + else + dc->color=RED; + } else if (tempn->n==common_ancestor) + dc->color=GREEN; + else + dc->color=BLUE; + + *_node_x=*_tree_x; + GrPrintF(dc,*_node_x,y,"%d",tempn->n); + *_tree_x+=X_SPACING; + + if (tempn->right) { + ShowTree(dc,tempn->right,&node_x,_tree_x,y+Y_SPACING); + dc->color=BLUE; + GrArrow3(dc,*_node_x,y,0,node_x-ARROW_SPACING,y+Y_SPACING-ARROW_SPACING,0); + } + } +} + +U0 DrawIt(CTask *,CDC *dc) +{ + I64 node_x=0,tree_x=0; + ShowTree(dc,root,&node_x,&tree_x,20); +} + +U0 TreeAdd(Node **_root,Node *tempn) +{ + Node *root=*_root; + if (!root) + *_root=tempn; + else if (tempn->n==root->n) + Free(tempn); + else if (tempn->nn) + TreeAdd(&root->left,tempn); + else + TreeAdd(&root->right,tempn); +} + +U0 TreeNew() +{ + I64 i; + Node *tempn; + for (i=0;in=RandU16%N; + + if (i==N-1) + n1=tempn->n; + else if (i==N-2) + n2=tempn->n; + + TreeAdd(&root,tempn); + Sleep(50); + } +} + +U0 TreeCommonAncestorFind(Node *root) +{ + if (root && root->n!=n1 && root->n!=n2) { + common_ancestor=root->n; + if (n1n && n2n) + TreeCommonAncestorFind(root->left); + else if (n1>root->n && n2>root->n) + TreeCommonAncestorFind(root->right); + } +} + +U0 TreeCommonAncestor() +{ //Make tree and find common ancestor to n1 & n2. + root=NULL; + n1=n2=common_ancestor=0; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->draw_it=&DrawIt; + DocClear; + "Scroll with {CTRL-Left Grab}.\n"; + try { + TreeNew; + TreeCommonAncestorFind(root); + PressAKey; + } catch + CatchAll; + SettingsPop; +} + +TreeCommonAncestor; +/* +Be careful with recursive routines in SparrowOS +because the stack does not grow and will overflow. + +See $LK,"::/SparrowOS/Demo/StkGrow.CPP.Z","FI:::/SparrowOS/Demo/StkGrow.CPP.Z"$. +*/ diff --git a/SparrowOS/Demo/Graphics/Dither.CPP b/SparrowOS/Demo/Graphics/Dither.CPP new file mode 100644 index 0000000..709892e --- /dev/null +++ b/SparrowOS/Demo/Graphics/Dither.CPP @@ -0,0 +1,16 @@ +U0 Main() +{ + CDC *dc=DCAlias; + dc->color=RED+BLACK<<16+ROPF_DITHER; + GrCircle(dc,100,100,50); + GrLine(dc,10,10,280,70); + dc->color=RED+BLUE<<16+ROPF_DITHER; + GrFloodFill(dc,100,100); + dc->color=PURPLE+BLUE<<16+ROPF_DITHER; + GrRect(dc,20,20,100,100); + PressAKey; + DCFill; + DCDel(dc); +} + +Main; diff --git a/SparrowOS/Demo/Graphics/Doodle.CPP b/SparrowOS/Demo/Graphics/Doodle.CPP new file mode 100644 index 0000000..63323f7 --- /dev/null +++ b/SparrowOS/Demo/Graphics/Doodle.CPP @@ -0,0 +1,48 @@ +//This is a drawing program + +U0 Doodle() +{ + I64 msg_code,i,x1,y1,x2,y2,p1,p2,color=BLACK; + CDC *dc=DCAlias; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->win_inhibit=WIF_ALL-WIF_BORDER; + + WinMax; + WordStat; + + DCFill; + "$$CL$$"; //$LK,"DocClear","MN:DocClear"$() is better + do { + msg_code=GetMsg(&p1,&p2, + 1<=0) color=i; + break; + case MSG_IP_L_DOWN: + x1=p1; y1=p2; + x2=p1; y2=p2; + dc->color=ROP_XOR+color^COLOR_TRANSPARENT; + dc->pen_width=1; + while (msg_code!=MSG_IP_L_UP) { + GrLine3(dc,x1,y1,0,x2,y2,0); + msg_code=GetMsg(&p1,&p2, + 1<color=RED; + for (i=0;i<480;i+=20) + GrLine(dc,i,0,0,480-i,3); + DCDel(dc); + PressAKey; + DCFill; +} + +DotNet; //Run when #included diff --git a/SparrowOS/Demo/Graphics/EdCSprite.CPP b/SparrowOS/Demo/Graphics/EdCSprite.CPP new file mode 100644 index 0000000000000000000000000000000000000000..e4e6d1d0df1434727569f76e848c38077b5a2083 GIT binary patch literal 6792 zcmdPb;^InRmdzs z7S{pUjAS(2X}P7vB_LZh^DA+iM1o`L&*@4{6m7JefmRbao19=N!lR{Ev zNp506u^tzfmOdAkN^pRVl8vFAl8&JY7Z;3gWT&KKgv2+tQ_?X;;+xnh>6jq#P3@F) zOp*9zc1k*CU_R6Wb2}v+bFcu!LJK=39SbDBrJa(FB@*Az0OTSAWD&3%ksWCWa-|`} znOw>#scE1%^b7UnG&JJk3bjzs%FK(;%uSE>3-yh)<*HWkbb|X-2f_gvV59=&K>P^h zKs*TLKzs+~K)j~Ir2sJk;xVWk#8*%b#7j^P%s((L)H5(H$RUPCDz(;JT%iUE{-q^8 znR%%inq1Xf3JRWPCJK2vxtVztI=P7z6(Ck6h*hamu9KmYsgtFXt&?ocrJw-va(-zE z$j>0Ivx~EWRti`qEx$-XBhS{rI?u*0)Ym#sTU%2BWVC_;G^M*%l%(dB6l*|3EH73^ z4Q!zr*hUb$QU}DY)C8HVpipiLlF$XI(KggJf(T}S1S>&;l?cI)Ivf=j0dJLURekB=@4A)Z`M4lw=(P9RnogP}c_J2Q;lgSzSQ^?Db4r1M5ti4C_p7ZA~r(FaV2Z*&0}9*_2ynfy6m8 z(-bt^ivm(pvq5HO>11l!!kh&PE>5Un*|rAO*)|r|*^p4=1R0lXi={lrKV~i>#60c<>G>-Y-=tCCI$uuMg|CIVq^gGMfn*R z7{nPE7+4_U|4{)0n9B_YASRd(=5ceQ^Fad0@)&&X|NrsI|A)%|hgbkNAH)C|2A2m3 zKrq-m2op?V`*8Hi3Cu@fPx<$DZJ1~0SPjo>S17D067tkaqwYI_z#sw;e#|o1;Fwo^AQ>#`r-Wl zMDn2;Kp_nFAJjFV6awPIxEOqHu=#LlZmfJHX>M)?2Glqqf)CCZ%#g5WSOm)`pg56a zU|?WlU|;}Af@6>yk`2JF`VUDvU~y2WL;0X&1(k<74CZSn7o-5J9>&MvYiO8(RUxTI z*awyYnT8Sz2zjUhAOWy`h0*nSNCXz~y)*aEP6G(L|r2c`6fcyvNfLu&i9$7iKfCklnpkfsirFbG494;U)fpQjv1~~}C z0y~WoM4Auv2S^9lekgx5l0mgHEHEH61EitD4vJw01_pRThnUtUFBpJB z8AO12yu2VLxMc+8g9PyMc|onU|Ns9JQV&%CHy^|R84fCcL2M)pwvP}WY9B}$NIjGb zHW8T*5@0~M4(ve`KG^**-5?s|9}o@4{~6#+Faw>>3$hR74j6_+3I}?mfLc1BE&)Uw zrWj0vN?TrDUQif;F%CZ1dXPG(JPIGA5h?(wL7^O&dV=x@1rYskJ}BRU{0K7;7aytt z6r4mN1%)_B9?s_l+lSy{$K+ysUWoXIe4nXqbUjA*n~$2bKYuh7#%sd8h#(0kD2(TF1kO=zzJG zpn8Y{KrVookH&{`K^Y4ykH&{{dC7`ZaIA4bV~wKLC&(e7K!L^@I1teJAW!0u2WbcS z5gH2+E*_kXS-@FA^VO0Z0IBKZbrZc?cJ50a!g6 zAI63G2hNAOAB~UTLSh*oACz~&u?lX6;%|P!%mIfA$Zrq<5DQd*KmrBq2~cwhmNh|+ zhVsF|08&mSAI&}p7hyh>4-x>o2Nxe4YH;U)9gI~y*tuY79PWi!0P+x6KZbfVc?cJ5 zAXq&bAI1eKU|@h61`!0=4`D$_BKQ!6FcR7_;elpd{LN300}!49MJtF0%4#4QVkC$K p_5{?O2tK-cQu%1+L%5(g1$i1|7(@h?2q8SMlfmwR@keGP0{{ZqOsoI^ literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Graphics/Extents.CPP b/SparrowOS/Demo/Graphics/Extents.CPP new file mode 100644 index 0000000000000000000000000000000000000000..04ee3162651a0250457a8ee3a0eb12eff9f829fb GIT binary patch literal 1182 zcmd<$($^2k$ShXKELKQVC`m0YQOL|qOixuPPgO`PN>xbD&&*5b($_D^S4b&JELTX( zOHoKkElDlP&CE+xD9K1wNUbPI%_}KZ$WPPb;^N{`2@cRvvN5z%(lJy4@wq|`6kH)n zG&H%YxfB$fU7QuPQj%?5oE>vA6N|066cjwoOcZi6^WrOXauX{+WM*D`C74}l4RT?4 zszP~UUWr0+a#3n(o{mCZeu+YPW?o8uxk7S&eo;zhUSdgVu^!Z<3|qHiUAywky!e95 ziqxF=oYb@uZJ1DTa#4OxPJD$<8Jen+`~q}EAj=gLlvGrleN!P0lY$0R;<}zCI#g6v{IaOF$tC55mm6%#vbIux6wxB4|2gQ51db)dr*x4EC80e^YI>F-$VN7y< zPJWTCPe_of3&3lN^HM?9f%JjnRX0Ni#;(*YgRns{ zjVi7QvWrOFpwt4>omdfHsau9kH?kcNRixOBOE*@#xfB#!oLy3LAkm?q5Kxp_T1%U}9ikU}S)RISdR8%nS?+OiW@B0c8dTh9Cd`|A*0r3=9mM z3=9k~T8V*yL7ahs0Yrneh%hiPuz?I<(SjJj0HXOB7~r%t0|Nse0|Nsx{qO(({~$hy a2B`;W761DG|Nk%l|Nr+$&B@7UU;qGpUs=Ea literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Graphics/Flowers.CPP b/SparrowOS/Demo/Graphics/Flowers.CPP new file mode 100644 index 0000000000000000000000000000000000000000..0be7da0e920f348322d6206098f588f2a775dc95 GIT binary patch literal 4609 zcmYe!Nh~f_2rfy@<*MdV05cS{@=_~GbhL^~ldQQE6gmzvN<2cwnu`l; zjC)ajc|cKqQeskOPG(7^21tKFQGSvp*oj4{C8b4q3LpV3EQZ*HrGXCE!C-$wTnExup;M`ooL6FNpi`7uT$)p23pJ=x2NGzY z@Itc7PzPeCkuBJ2kZgHIW=^Vt2AHp@0E$`#h2*>vZEcXGfWqB^5ABDzI7ta;TA3aAta*r18Ba*={UtwL%}ajHT!7hDC%&72h=5~>31_F6751+pG$ zRHYpx1~tJF3JMS&B%XBbDy`8p7{X+VOOs$)AW?1$3V2YQL%d_C1GS(6#;DW*r5Z>= zg2W%x%@7BI+@uKAgOrCA)YKF}CZk5Ffq^kN%3$6tE=__s%+S`^F()TKSp$^+^V7fy zUQ^Q=8ZL&qb`=nHx^@-TT%1ssgKag`wX1~5RcaeTT!m1(ii0M}o40 zts#g7_9BRZ#odOQAPKOAx^_t3v@tZ$jZoYL635~V14Dg{)K?2(*1C}8`?u84Z=8IHayW-L$ zaF$5bwS(l1R9(AD9RnQ$m?*?JI|Ds)Q>_e5gvV0Bfs%>{vRbZME|4EwiW1AgInUX} zSwSl$SqIrGAPI=Kigh4tNbv{uUpbhB`Vv&IXM(ItN!GPX&d23H%Jq$OGIT-l zQVa=fh!qGa7{5}-02<<;6r-R34_c^csW3BPu~@8At^W1ZJ5cijEUuuCoLHQyU|_=iK4Bo(D5W`o&a(+vrl9uOK7;NuF`p#ZLRFf9o8 z@C<>eKr`Qnp!rTdp)kGJosZ%GG~` z)HZ}BCmHrPb8tO+l#oP!IBGD}hea`H>y zP6ic0+K9XXEr?V+o!|{fsN1QPv%xL|`x#OYf)X|;@ggTrc$ou|zzBDcpn?KXc^qUJ zRv$t=g)?_U@;Fk)hD03LJecD_br>k9k;`Du5)J2&#NuoPt&+szY#jw?)IsVHEDd>E zM8`nCJTosoF}b8PF(T~c$v4J&B10`VV61}XrqwlS**Xblf@aZu4x}s<>M(==SO=2B;F$xg z9O5vf`W4M#&?F0r7bJ(JA~_6NLxZgWI}GG11uYQims+lY>>fxf1iiJInwkP?t-_k& z;E+I9Q<9pCss>a;*n&C=p@wE^#vtcG3gunSQkTm0V;yPjRlbB6tuwoyHr~>c=7@{10)5GR=6nG1~|{wFVx2eq!6iM zG=wDxEq^6bT|(bMy&z1qV8)Cj(9S$r*~a z&K~i>9-eL?@vgznpf)~K%r)2G?7 ziGhiMfq{_$0t^@!z literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Graphics/FontEd.CPP b/SparrowOS/Demo/Graphics/FontEd.CPP new file mode 100644 index 0000000..ebb460a --- /dev/null +++ b/SparrowOS/Demo/Graphics/FontEd.CPP @@ -0,0 +1,142 @@ +//After making a font, you can save it as a binary +//file with: +// FileWrite("filename.BIN.Z",gr_font,256*FONT_HEIGHT); +//You can load it with: +// U8 *myfont=FileRead("filename.BIN.Z"); +// gr_font=myfont; //preserve gr_font if you want to go back. + +//If you want to change the system font permanently, +//save to a file with this font editor program +//and cut and paste the code into $LK,"::/SparrowOS/OSMain/Font8x8.CPP.Z","FI:::/SparrowOS/OSMain/Font8x8.CPP.Z"$. +//You will need to recompile OSMain by calling $LK,"InstallBoot","MN:InstallBoot"$(). + +//See $LK,"::/SparrowOS/Demo/ExtendedChars.CPP.Z","FI:::/SparrowOS/Demo/ExtendedChars.CPP.Z"$ and +//$LK,"::/SparrowOS/Demo/ScreenCodes.CPP.Z","FI:::/SparrowOS/Demo/ScreenCodes.CPP.Z"$. + +#define BLOW_UP_CHAR_X (18*FONT_WIDTH) +#define BLOW_UP_CHAR_Y (2*FONT_HEIGHT) + +U8 cur_ch; + +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 i,j,k,c; + k=0; + for (i=0;i<16;i++) + for (j=0;j<16;j++) { + if (k==cur_ch) { + if (Blink(,tP(task))) + c=(BLUE<<4+YELLOW)<<8 + k++; + else + c=(YELLOW<<4+BLUE)<<8 + k++; + } else + c=(BLUE<<4+WHITE)<<8 + k++; + PlotWinU8(task,c,j,i); + } + + k=0; + for (i=0;icolor=YELLOW; + else + dc->color=BLUE; + GrRect(dc,BLOW_UP_CHAR_X+j*FONT_WIDTH, + BLOW_UP_CHAR_Y+i*FONT_HEIGHT, + FONT_WIDTH,FONT_HEIGHT); + } +} + +U0 FESave(Bool pmt) +{ + U8 old_draw_it=Fs->draw_it; + CDoc *doc=DocNew; + I64 i,j,k=0; + for (i=0;i<256;i++) { + for (j=0;jdraw_it=NULL; + DocWrite(doc,pmt); + Fs->draw_it=old_draw_it; + DocDel(doc); +} + +U0 FontEd() +{ + I64 msg_code,p1,p2,k; + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + MenuPush( + "File {" + " SaveAs(,CH_CTRLA);" + " Abort(,CH_SHIFT_ESC);" + " Exit(,CH_ESC);" + "}"); + WordStat; + DocClear; + DocCursor; + Fs->win_inhibit|=WIF_DBL_CLICK; + cur_ch=0; + try { + Fs->draw_it=&DrawIt; + while (TRUE) { + switch (msg_code=GetMsg(&p1,&p2,1<U(+2b30PSS#r32dAbg zsQ7s6C?QKI=_vX7S)quia49Ib73u<*yS0SIjIU70Y$0B#g5*om0)kdP0cR=I}hYGYc2*R1_lO31_)Tez`(%Fz`(%7 z$N>^IV_;yAVPIgeV_;zT_y7NY812Hqz#s<||MUOVmOh8IxzU;qFAw_;#mc=rGQ zedisk;i--) + if (disks_pole[i]==pole) + result++; + return result; +} + +U0 SetDisksRestXY() +{ + I64 i; + for (i=0;iwin_pixel_height-PEDESTAL_HEIGHT-(DISK_HEIGHT+1)/2-1-(DISK_HEIGHT+1)*PosInStk(disks_pole[i],i); + } +} + +U0 DrawIt(CTask *task,CDC *dc) +{ + I64 i; + + for (i=0;i<3;i++) + poles_x[i]=(1+i)*task->win_pixel_width/4; + + dc->color=BLACK; + GrRect(dc,poles_x[0]-50,task->win_pixel_height-PEDESTAL_HEIGHT,poles_x[2]-poles_x[0]+100,PEDESTAL_HEIGHT-FONT_HEIGHT); + dc->color=DKGRAY; + GrRect(dc,poles_x[0]-49,task->win_pixel_height-PEDESTAL_HEIGHT+1,poles_x[2]-poles_x[0]+98,PEDESTAL_HEIGHT-FONT_HEIGHT-2); + + for (i=0;i<3;i++) { + dc->color=BLACK; + GrRect(dc,poles_x[i]-3,task->win_pixel_height-PEDESTAL_HEIGHT-(NUM_DISKS+1)*(DISK_HEIGHT+1),7,(NUM_DISKS+1)*(DISK_HEIGHT+1)); + dc->color=YELLOW; + GrRect(dc,poles_x[i]-2,task->win_pixel_height-PEDESTAL_HEIGHT+1-(NUM_DISKS+1)*(DISK_HEIGHT+1),5,(NUM_DISKS+1)*(DISK_HEIGHT+1)-1); + } + + for (i=0;icolor=BLACK; + GrRect(dc,disks_x[i]-(i+1)*DISK_UNIT_WIDTH,disks_y[i]-DISK_HEIGHT/2,(i+1)*(DISK_UNIT_WIDTH*2)+1,DISK_HEIGHT); + dc->color=gr_rainbow_10[i]; + GrRect(dc,disks_x[i]-(i+1)*DISK_UNIT_WIDTH+1,disks_y[i]-DISK_HEIGHT/2+1,(i+1)*(DISK_UNIT_WIDTH*2)-1,DISK_HEIGHT-2); + } +} + +U0 MySleep() +{ + if (ScanChar) + ThrowBreak; + Sleep(3); +} + +U0 MoveDisks(I64 src_pole,I64 dst_pole,I64 num) +{ + I64 top,x,y; + if (num>1) + MoveDisks(src_pole,OtherPole(src_pole,dst_pole),num-1); + DocClear; + "$$CM+BY,0,0$$Disk:%d from %d to %d\n",TopDisk(src_pole),src_pole,dst_pole; + + top=TopDisk(src_pole); + for (y=disks_y[top];y>Fs->win_pixel_height-PEDESTAL_HEIGHT-(DISK_HEIGHT+1)/2-(DISK_HEIGHT+1)*(NUM_DISKS+2);y--) { + disks_y[top]=y; + MySleep; + } + if (src_pole=poles_x[dst_pole];x--) { + disks_x[top]=x; + MySleep; + } + + disks_pole[top]=dst_pole; + for (y=disks_y[top];ywin_pixel_height-PEDESTAL_HEIGHT-(DISK_HEIGHT+1)/2-1-(DISK_HEIGHT+1)*PosInStk(dst_pole,top);y++) { + disks_y[top]=y; + MySleep; + } + SetDisksRestXY; + if (num>1) + MoveDisks(OtherPole(src_pole,dst_pole),dst_pole,num-1); +} + +U0 Init() +{ + I64 i; + for (i=0;i<3;i++) + poles_x[i]=(1+i)*Fs->win_pixel_width/4; + + for (i=0;idraw_it=&DrawIt; + + Sleep(1000); + try { + MoveDisks(0,2,NUM_DISKS); + Beep; Beep; + DocClear; + "$$CM+BY,0,0$$"; + PressAKey; + } catch + CatchAll; + SettingsPop; + DocClear; +} + +Hanoi; diff --git a/SparrowOS/Demo/Graphics/Life.CPP b/SparrowOS/Demo/Graphics/Life.CPP new file mode 100644 index 0000000..a55e622 --- /dev/null +++ b/SparrowOS/Demo/Graphics/Life.CPP @@ -0,0 +1,97 @@ +CDC *dc[2]; //dbl buf +I64 cur_dc,; +Bool restart; + +U0 DrawIt(CTask *,CDC *dc2) +{ + dc[cur_dc]->flags|=DCF_NO_TRANSPARENTS; + GrBlot(dc2,0,0,dc[cur_dc]); +} + +U0 AnimateTask(I64) +{ + I64 x,y,x1,y1,cnt,next_dc; + while (TRUE) { + next_dc=cur_dc^1; +start_over: + restart=FALSE; + DCClear(dc[next_dc]); + for (y=1;yparent_task->win_pixel_height-1;y++) { + for (x=1;xparent_task->win_pixel_width-1;x++) { + cnt=0; + for (y1=y-1;y1<=y+1;y1++) + for (x1=x-1;x1<=x+1;x1++) + if (GrPeek(dc[cur_dc],x1,y1)==GREEN) + cnt++; + if (restart) goto start_over; + if (GrPeek(dc[cur_dc],x,y)==GREEN) { + if (cnt==3) { + dc[next_dc]->color=GREEN; + GrPlot(dc[next_dc],x,y); + } + } else { +// if (cnt==3) { //Use this for the classic rules + if (cnt==2) { + dc[next_dc]->color=GREEN; + GrPlot(dc[next_dc],x,y); + } + } + } + Yield; + } + Sleep(50); + cur_dc=next_dc; + } +} + +public U0 Life() +{ + I64 msg_code,cnt,x1,y1,x2,y2,p1,p2; + + dc[0]=DCNew(DCT_COLOR8,GR_WIDTH,GR_HEIGHT); + dc[1]=DCNew(DCT_COLOR8,GR_WIDTH,GR_HEIGHT); + cur_dc=0; + restart=FALSE; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WinMax; + DCFill; + "$$CL$$"; + + Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",Fs); + WordStat; + Fs->draw_it=&DrawIt; + Fs->win_inhibit=WIF_ALL-WIF_BORDER; + + do { + msg_code=GetMsg(&p1,&p2, + 1<color=ROP_EQU+GREEN; + dc[cur_dc]->pen_width=0.04*ip_speed; + GrLine3(dc[cur_dc],x1,y1,0,x2,y2,0); + restart=TRUE; + msg_code=GetMsg(&p1,&p2, + 1<color=c++&15; + } + GrLine(dc,x1,y1,x2,y2); + vx1=LimitI64(vx1+SignI64(RandI16),-5,5); + vy1=LimitI64(vy1+SignI64(RandI16),-5,5); + vx2=LimitI64(vx2+SignI64(RandI16),-5,5); + vy2=LimitI64(vy2+SignI64(RandI16),-5,5); + x1=LimitI64(x1+vx1,0,Fs->win_pixel_width-1); + y1=LimitI64(y1+vy1,0,Fs->win_pixel_height-1); + x2=LimitI64(x2+vx2,0,Fs->win_pixel_width-1); + y2=LimitI64(y2+vy2,0,Fs->win_pixel_height-1); + Sleep(1); //Take this out and see what happens! + } + DCFill(dc); + DCDel(dc); +} + +Main; diff --git a/SparrowOS/Demo/Graphics/Logo.CPP b/SparrowOS/Demo/Graphics/Logo.CPP new file mode 100644 index 0000000000000000000000000000000000000000..50eeb24fad7fcded7d771e13e27e482190763d58 GIT binary patch literal 33142 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 NJQM|n6Rj0yJpe6YWGDat literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Graphics/LowPassFilter.CPP b/SparrowOS/Demo/Graphics/LowPassFilter.CPP new file mode 100644 index 0000000..db67042 --- /dev/null +++ b/SparrowOS/Demo/Graphics/LowPassFilter.CPP @@ -0,0 +1,82 @@ +#define STEP_SIZE 400 + +U0 LowPassFilterDemo() +{ + F64 y,y1,t,dt; + CDC *dc=DCAlias; + + WinMax; + DocClear; + + dc->color=BLUE; + GrLine(dc,0,0,0,STEP_SIZE); + GrLine(dc,0,STEP_SIZE,GR_WIDTH/2,STEP_SIZE); + GrLine(dc,GR_WIDTH/2,STEP_SIZE,GR_WIDTH/2,0); + GrLine(dc,GR_WIDTH/2,0,GR_WIDTH,0); + PressAKey; + + dc->color=CYAN; + t=0; + y=0.0; + while (tcolor=BLACK; + t=0; + y=0.0; + while (tcolor=RED; + t=0; + y=0.0; + while (tcolor=GREEN; + t=0; + y=0.0; + while (twin_pixel_width,h=Fs->win_pixel_height; + F64 scale=h/5.0; + for (i=-w/2;i<=w/2;i++) + GrLine(dc,w/2+i,h/2-scale*f(i/scale*2*ã),w/2+i+1,h/2-scale*f((i+1)/scale*2*ã)); +} + +U0 FunDraw2(CDC *dc,F64 (*f)(F64 t,F64 p),F64 T) +{ + I64 i,w=Fs->win_pixel_width,h=Fs->win_pixel_height; + F64 scale=h/5.0; + for (i=-w/2;i<=w/2;i++) + GrLine(dc,w/2+i,h/2-scale*f(i/scale,T),w/2+i+1,h/2-scale*f((i+1)/scale,T)); +} + +U0 Init(CDC *dc) +{ + I64 i,w=Fs->win_pixel_width,h=Fs->win_pixel_height; + F64 scale=h/5.0; + DocClear; + DCFill(dc); + dc->color=BLACK; + GrLine(dc,0,h/2,w-1,h/2); + GrLine(dc,w/2,0,w/2,h-1); + for (i=-2;i<=2;i++) { + dc->color=BLACK; + GrLine(dc,w/2-3,h/2-scale*i,w/2+3,h/2-scale*i); + if (i) { + dc->color=DKGRAY; + GrPrintF(dc,w/2+5,h/2-scale*i-FONT_HEIGHT/2,"%5.1f",ToF64(i)); + } + } + for (i=-4;i<=4;i++) { + dc->color=BLACK; + GrLine(dc,w/2+scale*i,h/2-3,w/2+scale*i,h/2+3); + if (i) { + dc->color=DKGRAY; + GrPrintF(dc,w/2+scale*i-7*FONT_WIDTH/2,h/2+5+FONT_HEIGHT,"%5.1f*T",ToF64(i)); + } + } +} + +U0 SndMathDemo() +{ + CDC *dc=DCAlias; + + Init(dc); + dc->color=RED; + FunDraw1(dc,&MySin); + "$$FG,RED$$Sin$$FG$$\n"; + PressAKey; + dc->color=BLUE; + FunDraw2(dc,&Saw,1.0); + "$$FG,BLUE$$Saw$$FG$$\n"; + PressAKey; + + Init(dc); + dc->color=RED; + FunDraw1(dc,&MyCos); + "$$FG,RED$$Cos$$FG$$\n"; + PressAKey; + dc->color=BLUE; + FunDraw2(dc,&Caw,1.0); + "$$FG,BLUE$$Caw$$FG$$\n"; + PressAKey; + dc->color=GREEN; + FunDraw2(dc,&FullCaw,1.0); + "$$FG,GREEN$$FullCaw$$FG$$\n"; + PressAKey; + + Init(dc); + dc->color=RED; + FunDraw1(dc,&MySin); + "$$FG,RED$$Sin$$FG$$\n"; + PressAKey; + dc->color=BLUE; + FunDraw2(dc,&Tri,1.0); + "$$FG,BLUE$$Tri$$FG$$\n"; + PressAKey; + dc->color=GREEN; + FunDraw2(dc,&FullTri,1.0); + "$$FG,GREEN$$FullTri$$FG$$\n"; + PressAKey; + + DCFill(dc); + DCDel(dc); +} + +SndMathDemo; diff --git a/SparrowOS/Demo/Graphics/Mountain.CPP b/SparrowOS/Demo/Graphics/Mountain.CPP new file mode 100644 index 0000000000000000000000000000000000000000..9a85558efefb9841056bd8efb93f193ea1fb824b GIT binary patch literal 2860 zcmd<$;^I;X4$x7uF|=}sV-+qgE~otb9EHTZ%-qD1 z)cBPAyi{v0=iq{(%#u_Et=z=C_{`k&;%Jjt+iDe0C%Bn95DvslCNzBaCa1Kc<&Q{PWNi5FRadvT5&`L?xM5OIIk#%uQ7&&df_rRY=OuFVRuRNi8l` zC`c?VPA%5sQcwWdnO2mTn`&#K6`WYEQ4*j5vO!bFK+jZDhf4trk}GUMg1UC)nR)RA znH8xy@#UE*B^mlga21spDl$?t(=$r+jjXv86d<}wQY%X06H7{pY$IKLeEh?0Y)n9s zDapEa$@w|?MYc{s{^5Qwp@P&rh%L5YBixI8GV@Z6HBypwk}Gsg3=DLVD|HNXK<-Pf z&^0zt&`GY;H8e8NG0+5=fU4XWq#7ctqmWzy(gap+hE=(?p&3X$+;n_OEg%+K7=TnK zS3tEwtip5%inLC0g*MC|n$}!g3JNHWhWHO;B-pRI*uAE0h>!&Zj3vnBx+YltrHhaR z*=-J1iX#XRk|0wNJWN07A|yekf`d*M6dssLwGomaQ%%7R0C@mgoFU1A%teYqECwUV zf=o6v1;-gQ7`PM^5NXUO#5vLtoXFgZf>M)9KnV&Id5|QEmcVt)O`w*!<>cq5xMk+# zK-8O?LShVIE+q6~%0r7Chz$l$HcT zOxLy0a`X2Ki4XU53GvW30(;ubLPyEBL{GsZzbG|H31SSilnThnF9GME3hm?yol0$R z4uTh4;9@|{I9Ah|tCovPUq2)xvlvvWlw_nT6eN~pDCDOpfY`Z-d3s#VF22Dbg=z}}9bHg*tkpqgf)W!< z7>NzhVrHNN5(8O^!~`h^8xImk;g}fcKr&~o4#WT?foff2a~)knnDdZ1AYD+G!I`zz z&>8_0tiFkP8le^nS~{QtHNFBuRe~r`A+4ZLVH;mztx#zjUkQry;GERd0u4yoDoQOW zEy_~}2?})u2Yjf30<6pjmG~N-W+osb^!0u7i%Vc}kY1Enkdc|JP@Iuikg8CWUs{rx zms+floS3JOl&X-Nn3I#5qEMb$lEI~~pQw;rT3nK!3sa_0lCMyZlV1Xk%!2&Pypm!) zE`9yr)Kmo(A8#EccZk`=`o4)J8A>`z9-daHLMot&!zs8RCo?bANW(AG$45sEmJoCd zEp^nO0RqlC$knASHcx7Re5argoLW+nnU`K1P+FX!;a02@66_Wq?C9$nAMEevu4%1+ z*p6KB!XHL z$@#ej`FW{%;G~zRP*9YgUX+-t$EBQ^rr?>EoKu>T>XKSel3`=S1@omfmvU-eN@f}t z0}}%S10w?j)H5)E`Am!)AmRW2|NjR`fY{&u|Njr8SwMnNrC_#pMqq52*|#6iMb3=9k)Wgz2U{{R2~_y7O@KZB$}>OmM}`~(ID24;{Q5U2bF z$%Dih7#KiK0Wm>VGcYiKv?C~x1PFs9LGA=u2(k!d;lKa?|AY7-d62t6G{{{bdq56h zU|{(2|NnoGT_EmHWOsqofYdJpxe0_J?g9yY|Ns9#$ml;vG)ON<4unBYK{ycVT#y6^ YgCt3DC&>LA&;SHE6vPKv3~~em01ldl@&Et; literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Graphics/MyWallPaper.CPP b/SparrowOS/Demo/Graphics/MyWallPaper.CPP new file mode 100644 index 0000000000000000000000000000000000000000..e9ba20c885b870247b4d295cebc5c46478d23b4f GIT binary patch literal 6387 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 + + GetChar; + SettingsPop; +} + +Main; diff --git a/SparrowOS/Demo/Graphics/Palette.CPP b/SparrowOS/Demo/Graphics/Palette.CPP new file mode 100644 index 0000000..3ab8c24 --- /dev/null +++ b/SparrowOS/Demo/Graphics/Palette.CPP @@ -0,0 +1,27 @@ +U0 PaletteDemo() +{ + I64 i,j; + CBGR bgr; + for (i=0;i<16;i++) + "$$FG,BLACK$$$$BG,%d$$__%-8Z__$$FG$$$$BG$$\n",i,i,"ST_COLORS"; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ +//Alternatively, use $LK,"SetVGAPalette4","MN:SetVGAPalette4"$(vga_palette4_gray); + for (i=0;i<16;i++) { + j=0xFF*i/15; + bgr.b=j; + bgr.g=j; + bgr.r=j; + SetVGAPaletteColor(i,bgr); + } + PressAKey; + + //You can do it this way, too. + SetVGAPaletteColor(WHITE,0xFFFF00); + PressAKey; + +//$LK,"SettingsPop","MN:SettingsPop"$() restores original palette + SettingsPop; +} + +PaletteDemo; diff --git a/SparrowOS/Demo/Graphics/Pic2ASCII.CPP b/SparrowOS/Demo/Graphics/Pic2ASCII.CPP new file mode 100644 index 0000000..c524c9d --- /dev/null +++ b/SparrowOS/Demo/Graphics/Pic2ASCII.CPP @@ -0,0 +1,101 @@ +U0 Convert() +{ + I64 *ptr; + +//Normally, allocate large objects on the heap +//because stk size can't grow. 256 bytes, however, +//is not that bad. + U8 byte_bit_cnts[256]; + + I64 i,j,row,col,ch,best_ch,score,best_score,cur_char_image,diff_image; + CDC *dc=DCAlias; + +//Set-up a table telling how many 1 bits in a val. + MemSet(byte_bit_cnts,0,sizeof(byte_bit_cnts)); + for (i=0;i<256;i++) + for (j=0;j<7;j++) + if (Bt(&i,j)) + byte_bit_cnts[i]++; + + for (row=0;rowwin_height;row++) { + for (col=0;colwin_width;col++) { + + +//The size of one character is 8x8 pixels +//which fits in a 64-bit var. We'll +//fetch the pixels from the screen using $LK,"GrPeek","MN:GrPeek"$(). + cur_char_image=0; + for (i=0;icolor=ROP_EQU+BLACK; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->win_inhibit=WIF_ALL-WIF_BORDER; + + WinMax; + DCFill; + "$$CL$$Draw a picture and hit\na key to convert to ASCII.\n"; + do { + msg_code=GetMsg(&p1,&p2, + 1<pen_width=0.04*ip_speed; + GrLine3(dc,x1,y1,0,x2,y2,0); + msg_code=GetMsg(&p1,&p2, + 1<x<&@O4%)C?uzfj+J$AADI*I)%hBMUArPcsvRifDvr ztWG5gk4r&8A-S|DKCz%6CshZ;DlRC>EJ=+|%}LFT&nwLZi=|{1m*~KhR@fSV1uJb0 zthu;CEfkVU)1nQHEMh@C0|l3&#B$FP4d;-=;%o&i9cLG31+A21O|EJ#1qG06GIf$t zi%a4`M%wy1M#OuXnLtFqPOvqAaL`-Xc6hKN< ze7tp(f(wgElysDQ{j9(&6%9>=%wmPqih|U<;>@yCh2ngL@>GTL{Gx1y^30M91-SW8 z)AXRm!5w3Z?ofyq6coTJAd#AB%>~t_ukV_Znwy$eQml|zl&VmYk*biHmy%hQnNpgV zqmYxCms+flU!+i;kyw&imRh8cp9WR~4L=mi(IW!c9cXe8C)IK(DAaQ4>-*)Gq*^JI zXXd5kmn-C^7b&FVrxq*Z<(DX=rC?w{kaOvxpWMmdABRq7)iKoxE-CU!&C^IKP1DqJ^Y;sh5BGEl@z4P?JzPEA zJwm{V3t^6vkE63U#GHWAl3pC%cYq)d1hd_Wb?s7$63gQ=OKjC3y90~XK(8w1L@p~a~R#mPmfsd);?`T0dDnR$sNsl__rGz(3M8sG@g1ZOjSeQ+>j z7F0ld4`Qf*k~1WDG7BnU;+0A&;Cz^#lb@8BqfnMuRIE^1kdjyeEjIM^p*)48N|bb; zUIZ#|GV*g$K*CU4F`Wp@znOUjr6mdlB}EDvx%s8VshW_S49XT2wwVPL*5FF0(l)c8 z66$GC5eN@BTTnP5!UYCSYD9X$$aRX&N9VJll zrl72vqTrHQT%r&RDT1w3Q7f7R0M}2EVY5^5KaXJxF12WpbL%t5gG!Zhylx1f@LeMxi~?Y5#-`p zh4PHdoKyu3n4?kcQBYG;K$QW!O| literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Graphics/Pick3D.CPP b/SparrowOS/Demo/Graphics/Pick3D.CPP new file mode 100644 index 0000000000000000000000000000000000000000..6db9275b0a7a9149e5686437572da563f923e87b GIT binary patch literal 6591 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 L7)S^t4fX^8?-?*) literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Graphics/PixelCollision.CPP b/SparrowOS/Demo/Graphics/PixelCollision.CPP new file mode 100644 index 0000000000000000000000000000000000000000..55d7419958d36553e976d35a638aa9b9cdb55459 GIT binary patch literal 3388 zcmd<$;!+6?&{486v{TYCRN>;{(%0e&$;d2La1Jgg$}CA$C{HX_NY2kIOD!r%O;ISx zS4dPy$}GuEEa1w_Qz*$uRj_dm3G&emvQx-S%`4SYQ1DDssLU@_NXgGrFM;XgLei%L zmM+iC$x$dM%1=s6%BkckN=?r!E=es?NY2m6$t=#y&ns3)ECw52keQmCTFjMLl&X+Y zlvtjpke{bel3$>ZpQezSn4F=IUy_kpq^F<|nP1A4oS3Ijo?n!$P@Y+mp^&JMm!DUa zT9mI)mYAcEnZ^ZjR&qvuesQWoKFBJtr;xp*$EBsu#l;nBpx{!JSRR~_Sddz*;q2n9 zpp}xW<7sB1Pyr?@!DLZ>fhJcqmx4lOnu11VL3~bI0NLB;M7zF6(4UMC1eRD9VK5sD-;nGE(L|~ z{GycLlEe~FfQD!0`6gC?ST6a=&N-=xMId&0MrKZ`f`(#na$=ryMq-hs0x05<0|FXt z3JQ=w00pvJv94WtW?p;&$Pe-5nJFb1x<&>DI;i3qshQ~+C144Vq>%w6Vik~+U`jHY zCa__4c7|xe5VJtyLH+^pu7RPN;IM(a6Oy&!lk-Y!4M5&PwLPN69ZgPdCWbMIk9MIXk^5zcepJ0qmk; zh5WMAqVl55l9JRsJtc5v!8FVW)i8KME4ETiQPP2COhl-`O@YcFxfmY*pcD{LS`rL# ztud+vPTtP`KK?=KKPN@OCpE1^!8gCOI2BQeqtJ^!cJ631RDyo z23+PM%!ZV>NPHED?Jmx4nK?NcDanvx0TfN}VmZG6Txz*EyQD%@)PkBN@RkKA{iUQP z=49rjLn@}+#Joy{{G_bZRrkbhy#6tHu_A(Whvnw$;NglJ@Nl@@~pz>aot z_Dd~?xEI1y(a?mnE8y)Eh4RF_5>SHyY!p|1UQVS#c}6O@9aIU<7kR0PMM&)uP&)%u ziDu^HaFrxxrz(`>=PQ6hRF4y0L0MVp2Nxt373G)v2kX0}=H~0WC+4OGmn0UIq!tzH z2jwSc7wb6(1n5O6=_t8*T9Ke$1=65FtwgQ47?>Cs7#JBKz=)Xv%omknU|^7BU|{(C z|Ns9l{}F%*4iI8UEVwL)fg}!Lf&`H)K d*?=OAsQ^tHT>*wPiX*VeLc|b(2H}H91^|OROpE{k literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Graphics/PoleZeros.CPP b/SparrowOS/Demo/Graphics/PoleZeros.CPP new file mode 100644 index 0000000..7099e08 --- /dev/null +++ b/SparrowOS/Demo/Graphics/PoleZeros.CPP @@ -0,0 +1,171 @@ +#define NUM_ZEROS 2 +Complex zeros[NUM_ZEROS]={{10.0,0},{-30,0}}; +#define NUM_POLES 2 +Complex poles[NUM_POLES]={{-20.0,-15.0},{-20.0,15.0}}; + +F64 scale; + +Complex *PoleZeroFind(I64 x,I64 y) +{ + I64 i; + F64 d,best_d=MAX_F64; + Complex *result=NULL; + for (i=0;iwin_pixel_width,h=task->win_pixel_height,cx=w/2,cy=h/2, + lo=Gs->num*h/mp_cnt,hi=(Gs->num+1)*h/mp_cnt; + F64 yy,y_total=0; + CDC *dc=DCAlias(gr_dc2,task); + for (y=lo;ycolor=Limit(yy,0,14); + y_total+=Limit(yy,-14,14); + GrPlot(dc,x,y); + } + } + DCDel(dc); + return y_total; +} + +U0 Draw() +{ + CMPCmd *tempm[MP_MAX_PROCESSORS]; + F64 y_total,old_y_total=MAX_F64; + I64 i,w=Fs->win_pixel_width,h=Fs->win_pixel_height,cx=w/2,cy=h/2; + CDC *dc=DCAlias; + while (TRUE) { + + for (i=1;icolor=15; + GrLine(dc,0,cy,w,cy); + GrLine(dc,cx,0,cx,h); + for (i=0;iwin_inhibit=WIF_ALL-WIF_BORDER; + SetVGAPalette4(vga_palette4_gray); + SetVGAPaletteColor(15,0xFF0000); //White is red + + WinMax; + WordStat; + WinBorder; + + DCFill; + DocClear; + scale=1.0; + + try { + Draw; + while (TRUE) { + msg_code=GetMsg(&p1,&p2,1<win_pixel_width/2; + cy=Fs->win_pixel_height/2; + switch (msg_code) { + case MSG_IP_L_DOWN: + tempc=PoleZeroFind(p1-cx,cy-p2); + break; + case MSG_IP_MOVE: + if (tempc) { + p11=p1;p22=p2; + //get to last mouse move + while (msg_code=ScanMsg(&p1,&p2,1<x=p11-cx; + tempc->y=cy-p22; + Draw; + } + break; + case MSG_IP_L_UP: + if (tempc) { + tempc->x=p1-cx; + tempc->y=cy-p2; + tempc=NULL; + Draw; + } + break; + case MSG_IP_R_DOWN: + case MSG_IP_R_UP: + Draw; + break; + case MSG_KEY_DOWN: + if (p1==CH_SHIFT_ESC||p1==CH_ESC) + goto pz_done; + } + WinMgrSync; + } +pz_done: + } catch + CatchAll; + SettingsPop; + DCFill; +} + +PoleZeros; diff --git a/SparrowOS/Demo/Graphics/PredatorPrey.CPP b/SparrowOS/Demo/Graphics/PredatorPrey.CPP new file mode 100644 index 0000000..0e4fa6c --- /dev/null +++ b/SparrowOS/Demo/Graphics/PredatorPrey.CPP @@ -0,0 +1,82 @@ +//This is a classic 2nd order nonlinear ordinary differential equation + +I64 mp_done_flags; + +#define OX 10 +#define OY GR_HEIGHT/2-FONT_HEIGHT + +#define MICRO_STEP 0.000001 + +class State +{ + F64 wabbits,hawks, + d_wabbits,d_hawks; //Technically, these are not part of the state. +}; + +U0 Steps(State *s) +{ + I64 i; + for (i=0;i<10000;i++) { + s->d_wabbits=s->wabbits*(1.0-0.10*s->hawks); + s->d_hawks =-s->hawks *(1.0-0.01*s->wabbits); + s->hawks +=s->d_hawks *MICRO_STEP; + s->wabbits+=s->d_wabbits*MICRO_STEP; + } +} + +U0 PlotTrajectory(CTask *parent) +{ + I64 i; + CDC *dc=DCAlias(gr_dc2,parent); + State s; + + MemSet(&s,0,sizeof(State)); + s.wabbits=RandU16%100 +10; + s.hawks =RandU16%10 +1; + + for (i=0;i<1000;i++) { + dc->color=LTGREEN; + GrPlot(dc,s.wabbits+OX,OY-s.d_wabbits); + dc->color=LTRED; + GrPlot(dc,s.hawks +OX,OY-s.d_hawks); + Steps(&s); + } + DCDel(dc); + LBts(&mp_done_flags,Gs->num); +} + +U0 PredatorPrey() +{ + I64 i; + CDC *dc=DCAlias; + + PopUpOk("This will plot multiple predator-prey\n" + "trajectories. It restarts many times\n" + "with different, random, initial populations.\n"); + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + try { + DocClear; + WinMax; + WinBorder; + WinMgrSync; + WordStat; + + dc->color=BLACK; + GrLine(dc,OX,0,OX,GR_HEIGHT-FONT_HEIGHT-1); + GrLine(dc,0,OY,GR_WIDTH-1,OY); + while (!ScanChar) { + mp_done_flags=0; + for (i=1;idq+zhF22AYaE2Pk%p<0=HsayYkGu_?*&<^f1hA| zBV9uyWa*;J^b8bvZB+S^`~ryXApdYo-AVZ+CHc9?3ZU9U5{t84Qj0RnQd7bbbBaR? zQW8s2t+}`q6iSLJ6+mI2pirKXnUkuZp%|Q;nCG04SfmLRS5RD317g_`bO zLX<*rzCuYxVu?atzCuA_QAx2vVo@rWzJ6YQi9$+IVtJlIQfhKyX>lq@ zQzb}JAu~@QttdaQL?J&7B&blFT$Gxcr-$U$DqHuU_^5bCA0KNj1*o`la6wUKNoqh& zeu=S0O0tdt7^-+W!7~axFv2tQeAA19EAx_J@#Ny{mYI_S;ni{}DAXz>Czd2%f*GrZ`NE4ObiSRj0_O4iJbw=mo;NxU~5(lY)u|ax4-UZnU^E!wP5@%pw05L&EfV9KdAg_biASEz1$m^hB z0EvUxAaPJof!H9cK;j_vatsU%zyJUL4~hX0n}LA=i3tickSIt6h&>HSHHZyW4P_#$ z0I}Ji$rD7gGcYiKXi#zmC0h_1gh7dyg@J*A87dEABXL2}Amt!!Fy$bnATbc1pMima zgMop87pfh^2eJ8}d`<=i25trh1|B3n7gP+SAEXzg1||>UgV-Q5K=M$hz_=h|(QIR2 zU;v4N6oV{>x*x;^nFVq`NC?IUu|di}d=N%<8;B3G8|F7qkRiJj#0RMdsRLn9n1JL# z;xInQFCZ}xA7l>5JecD_d=MKHejs^}+dysv>4EV>GizBmH|gA4-$gETbkKztBe z0?HR-U|;}=A@f0ONvOOE0|SE+0|SFB5+9TVL1G~DK?zHdfq_8*Di7j=*dPp&2k8UJ zgT!HckY11&hz~PM3aTGuA4m+w2e}ob7G@rZ4{{$!45T0AH;^0%!}uUIFh0m{Ff|}~ z5FaE5a}UTYWcPshAismeKDGs0&zi>f&8z_z`y{CBUt=^ z!Ux0$iG$=pd{9_{#Gw8Il_DS)LAf9%$e$p`7&9<1=rb@d=z%y;8dP$D#6dzJHb~A8 z#9?4y0MVw<@(LsbQfI=zz+eF4KxvS9AaRfoNDibPqz}Xg(IB-Tagb|4F%9ww$kiY| Phz9XtzJbYuQUe13tdK!r literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Graphics/ScrollBars.CPP b/SparrowOS/Demo/Graphics/ScrollBars.CPP new file mode 100644 index 0000000000000000000000000000000000000000..9d1f015e71cd661c5257142ee45dbd619da065f8 GIT binary patch literal 4524 zcmd;r0F~eX9i@<>)Kn!MLlrJAF6ETew9LFz1z*R2cn?=kcaIQGBLfo)6!CCRmk8ZHy70~V=760zpu3N=u0DM~E&EYWZd zNi5D*&?-qR&em~uaaPbuN!H}5=2B1q8J4M&p;Knf#igJClGnA%$SJKsYN9?%tVobnh6OW3_~+g zGt)ClK&FEH8f~B|= z6jG9P?UM6z@{4Spg8ak%K*~Wv1*v%u580Z4gxrgKGV@Z6HBypwjC3<}jC9L%40I4d zVGI+~#G)9a4C*^$Ec(!;u^9oe4`eeT)gXCD^uXPO=1!0bWaofFPha0TBQ-f&At}E! zFQr%^Gfkl~zf_?-vp7Q`DYc{|wMd~LwJ0sWC^s=LIaQBKK_M-_NI@gh*1$T`2A(3V zGqtrfxfB!>6r6(#iZV-519I|9z(EF1sTI+gvAP+sRGS$K4hj`dCmkglP>!(!Wf@It zu3B&+_RPyH(LhSCpkT#mrvfNhE5LF{W~^;cVqQw9p_wYktKh%@X@@GPj7C!c2@8;l zTBzm0;EdpuSX2ykLU3wHNoHPpaX@KthP8seesF54f{Kr~juNtjl8%zEpB0LT3Mjkf zWrCBhOMbF*X;E>05y&PGCnq%##)eo3l5i{5wM!{VERWADu~mcQWRP%pW}Z`iQA%o& zhQA*uz7!Nd3XyYdL4GkL*McO_(m6!JJ+;I+Be6)sFVx3J$Ia0v*cF`8;113&0NJFk z?+J9dI(p1?516^2EFng_3+O1qFTm;>5C4g_4X^h5Vw-^vt}(9EIYN#FA8n z{4|g#L3us7#ScSi-!Ts7u8^3VDM*PV0icc|Nn#k zN5Nx016c~f z_yPxRD}IH@#^Lb_nlfB|!BB?XFCb-HTudMe5JQa_r9G0cGq zpee)ViT~ix16c?40F;87fJA}RU>JzaNRUFPDF_P5AS5P8DKX&!ieZpih= zpctFeV9H^3vf(!n?p>%l90?Vn45kj7Lb$V-nAqUzFdYe225}Y}3z9kvBf$zm9^qoc zXC63yLFRF>AghCg1PTo?l7)?pg$=?)kwxdQfDA+z#KH$DW5XhjF2usZ#zK@jHa0e* v)PXEUw*(6xq>M=OSctJ0WF8S7VFQOBL5tZy#u4dbES?(`8VvzbLx2GQ)qr#@ literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Graphics/Shading.CPP b/SparrowOS/Demo/Graphics/Shading.CPP new file mode 100644 index 0000000..ac5caf7 --- /dev/null +++ b/SparrowOS/Demo/Graphics/Shading.CPP @@ -0,0 +1,180 @@ +//"ls" is light source. + +U0 Lighting(CDC *dc,CD3I32 *ls,CD3I32 *poly,I64 color) +{ //color is a color from 0-7 + CD3I32 v1,v2; + I64 *r=dc->r,i,vn_x,vn_y,vn_z; + F64 d; + + v1.x=poly[0].x-poly[1].x; + v1.y=poly[0].y-poly[1].y; + v1.z=poly[0].z-poly[1].z; + + v2.x=poly[2].x-poly[1].x; + v2.y=poly[2].y-poly[1].y; + v2.z=poly[2].z-poly[1].z; + +//V1 and V2 are vects along two sides +//of the polygon joined at point[1]. + + vn_x=v1.y*v2.z-v1.z*v2.y; + vn_y=v1.z*v2.x-v1.x*v2.z; + vn_z=v1.x*v2.y-v1.y*v2.x; + + if (d=Sqrt(SqrI64(vn_x)+SqrI64(vn_y)+SqrI64(vn_z))) + d=1<<16/d; + vn_x*=d; + vn_y*=d; + vn_z*=d; +//Vn is the cross product of V1 and V3 +//which means it is perpendicular. It +//is the normal vect to the surface. +//It has been scaled to length 65536. + GrRot(r,&vn_x,&vn_y,&vn_z); + i=(vn_x*ls->x+vn_y*ls->y+vn_z*ls->z)>>16; +//The dot product of the light source +//vect and the surface normal +//gives an illumination number. + + +//SparrowOS 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. + if (i<0) { + dc->color=ROPF_PROBABILITY_DITHER+BLACK<<16+color; + dc->dither_probability=-i; + } else { + dc->color=ROPF_PROBABILITY_DITHER+(color^8)<<16+color; + dc->dither_probability=i; + } +} + +#define RINGS 8 +#define FACES 32 +#define SLOP 0.03 //Gaps appear without this. + +U0 DrawIt(CTask *task,CDC *dc) +{ + CCtrl *c=CtrlFindUnique(task,CTRLT_VIEWING_ANGLES); + CViewAngles *s=c->state; + F64 tt=0.5*(Sin(ã*2*(tP(task)%10.0)/10.0)+2.0), + é,é2,è,è2,radius,d; + I64 i,j,cx=task->win_pixel_width/2,cy=task->win_pixel_height/2; + CD3I32 poly[3],ls; + + dc->flags|=DCF_TRANSFORMATION; + DCAllocDepthBuf(dc); + + GrIdentEqu(dc->r); + GrRotZEqu(dc->r,s->az); + GrRotYEqu(dc->r,s->ay); + GrRotXEqu(dc->r,s->ax+ã); + GrScaleMatEqu(dc->r,tt); + GrSetRotMat(dc,dc->r); + + ls.x=-(ipx-task->win_pixel_left-task->win_scroll_x-cx); + ls.y=-(ipy-task->win_pixel_top-task->win_scroll_y-cy); + ls.z=GR_WIDTH/8; + d=1<<16/P3I32Norm(&ls); + ls.x*=d; + ls.y*=d; + ls.z*=d; + + + dc->x=cx; + dc->y=cy; + dc->z=MaxI64(cx,cy); + radius =MinI64(cx,cy)/2; + + + for (i=0;istate; + s->sx=2*VIEWANGLES_SNAP; + s->sy=7*VIEWANGLES_SNAP; + s->sz=6*VIEWANGLES_SNAP; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + DocClear; + WinMax; + WinBorder; + WordStat; + Fs->draw_it=&DrawIt; + try { + "\n\nMove mouse to change light source.\n\n"; + PressAKey; + } catch + CatchAll; + SettingsPop; + DocClear; + ViewAnglesDel; +} + +Main; diff --git a/SparrowOS/Demo/Graphics/Shadow.CPP b/SparrowOS/Demo/Graphics/Shadow.CPP new file mode 100644 index 0000000000000000000000000000000000000000..914b86b1e66e5c7d2637674624f9df179ef072c9 GIT binary patch literal 2246 zcmZ=WGf{Y{^Frs9PO&wYvx~EWR!Xvgj#f&tp*0sAaB?cB1PACS*%;a>=@_cO#lehF z0|oaYr<}y(Y@f{ZjFQZ}bPcFEI?gV}p2kKBTG$xQ`8oMTLH+@u#zvZ4)m#b+DapEa z$sj>n18c5YF0N1m1(%}4^5Bfbl>BlH=a9tWYz3{7#Nup-a!)f8g`#Ma*l3ej9jziG zYc4JY1@|J)l+?Tu*TPbblw?C)yCO|%uxLj)l)RK^*#Ju91#FEVXJgD6|Mg|68Y-(U&09FWgQ(8`9dU1`di?dsNNRXpn zu$zC7uVaX(zaPY@!Ko!d`6a%IB_LCDz&b#_;8IZVP0bBXEzu~_G0-W_tV+#K(RE4zsB88HS zRE1)22L?IKQ<^8^uN=X@|JYI5yfCVIOHu=J z@=J_CCh8b~p^B#yJP&9hr%}%mf-E@T2PYVRGJo442n`nLO@BU1_<{e z(kVy~OF9J$W2RHEF!po`mcp4%!Lpzr24SRhYM^UJLOM0jNl6Bo1Wx3cX$l&-1@Xyw zC3c3ITnY*b3cdke`AHgTh|CO*G95#(^3MtJ>{{R2K6)Fy5gXBRNq#i`W^gy-1lz_B= z*dS>TMz=~5q?dt#0b~`74N?y?7Q}`sVStH&%z=u5m@p+Ut3bwp#Q6olia@>w`5wdt zvB8224D1373@k{20^@^}f|SAdpnw92fwY5YHi&*0mxFn_kqlZse$o9av(7V07$ej4gdfE literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Graphics/SliderCtrl.CPP b/SparrowOS/Demo/Graphics/SliderCtrl.CPP new file mode 100644 index 0000000..a24ed20 --- /dev/null +++ b/SparrowOS/Demo/Graphics/SliderCtrl.CPP @@ -0,0 +1,111 @@ +/* +This was done with managed code. +It's conceptually easy to do a ctrl, +but tedious. You have complete freedom. + +See $LK,"CCtrl","MN:CCtrl"$. +*/ + +// Start of autocreated Code +#define SLIDER_RANGE 30 +#define SLIDER_SPACING 20 +#define SLIDER_BORDER 2 + +class CSliderState +{ + I64 left_pos; + I64 right_pos; +} sld; + +U0 DrawSliderCtrl(CDC *dc,CCtrl *c) +{ + CSliderState *s=c->state; + + dc->color=LTRED; + GrRect(dc, c->left,c->top,SLIDER_SPACING*3+2,SLIDER_SPACING*2+SLIDER_RANGE); + dc->color=BLUE; + GrRect(dc, c->left+SLIDER_BORDER,c->top+SLIDER_BORDER, + SLIDER_SPACING*3+2-2*SLIDER_BORDER,SLIDER_SPACING*2+SLIDER_RANGE-2*SLIDER_BORDER); + dc->color=BLACK; + GrLine(dc,c->left+1*SLIDER_SPACING+0,c->top+SLIDER_SPACING, + c->left+1*SLIDER_SPACING+0,c->top+SLIDER_SPACING+SLIDER_RANGE-1); + GrLine(dc,c->left+2*SLIDER_SPACING+1,c->top+SLIDER_SPACING, + c->left+2*SLIDER_SPACING+1,c->top+SLIDER_SPACING+SLIDER_RANGE-1); + dc->color=LTRED; + GrPrintF(dc,c->left+1*SLIDER_SPACING+0-FONT_WIDTH/2, + c->top+SLIDER_SPACING+SLIDER_RANGE+3, + "%d",s->left_pos*10/SLIDER_RANGE); + GrPrintF(dc,c->left+2*SLIDER_SPACING+1-FONT_WIDTH/2, + c->top+SLIDER_SPACING+SLIDER_RANGE+3, + "%d",s->right_pos*10/SLIDER_RANGE); + GrRect(dc,c->left+1*SLIDER_SPACING+0-3,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->left_pos-2,7,5); + GrRect(dc,c->left+2*SLIDER_SPACING+1-3,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->right_pos-2,7,5); + dc->color=YELLOW; + GrRect(dc,c->left+1*SLIDER_SPACING+0-2,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->left_pos-1,5,3); + GrRect(dc,c->left+2*SLIDER_SPACING+1-2,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->right_pos-1,5,3); +} + +U0 UpdateDerivedSliderCtrl(CCtrl *c) +{ + CSliderState *s=c->state; + c->left=c->win_task->win_pixel_width/2-(SLIDER_SPACING*3+2)/2; + c->right=c->left+3*SLIDER_SPACING+2; + c->top=c->win_task->win_pixel_height/2-(SLIDER_SPACING*2+SLIDER_RANGE)/2; + c->bottom=c->top+SLIDER_SPACING*2+SLIDER_RANGE; + s->left_pos=LimitI64(s->left_pos,0,SLIDER_RANGE-1); + s->right_pos=LimitI64(s->right_pos,0,SLIDER_RANGE-1); +} + +U0 LeftClickSlider(CCtrl *c,I64 x,I64 y,Bool) +{ + CSliderState *s=c->state; + if (xleft+1*SLIDER_SPACING+0+SLIDER_SPACING/2) + s->left_pos=SLIDER_RANGE-1-(y-(c->top+SLIDER_SPACING)); + else + s->right_pos=SLIDER_RANGE-1-(y-(c->top+SLIDER_SPACING)); + if (c->update_derived_vals) + (*c->update_derived_vals)(c); +} + +CCtrl *SliderNew() +{ + Bool old_preempt; + CCtrl *c=CAlloc(sizeof(CCtrl)); + c->win_task=Fs; + c->flags=CTRLF_SHOW|CTRLF_CAPTURE_LEFT_IP; + c->type=CTRLT_GENERIC; + c->state=&sld; + MemSet(&sld,0,sizeof(CSliderState)); + c->draw_it=&DrawSliderCtrl; + c->left_click=&LeftClickSlider; + c->update_derived_vals=&UpdateDerivedSliderCtrl; + old_preempt=Preempt(OFF); + QueIns(c,Fs->last_ctrl); + TaskDerivedValsUpdate; + Preempt(old_preempt); + return c; +} + +U0 SliderDel(CCtrl *c) +{ + Bool old_preempt=Preempt(OFF); + QueRem(c); + Preempt(old_preempt); + Free(c); +} + +// End of autocreated Code + +U0 Main() +{ + "This is to demo ctrls.\n"; + CCtrl *c=SliderNew; + PressAKey; + "Left: %d Right: %d\n", + sld.left_pos*10/SLIDER_RANGE, + sld.right_pos*10/SLIDER_RANGE; + SliderDel(c); + DocBottom; +} + +Main; diff --git a/SparrowOS/Demo/Graphics/Speedline.CPP b/SparrowOS/Demo/Graphics/Speedline.CPP new file mode 100644 index 0000000..503407d --- /dev/null +++ b/SparrowOS/Demo/Graphics/Speedline.CPP @@ -0,0 +1,49 @@ +//This is a drawing program + +public U0 SpeedLineDemo() +{ + I64 msg_code,cnt,x1,y1,x2,y2,p1,p2,color=BLACK; + CDC *dc=DCAlias; + dc->color=ROP_EQU+color; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->win_inhibit=WIF_ALL-WIF_BORDER; + + WinMax; + WordStat; + DCFill; + "$$CL$$"; + do { + msg_code=GetMsg(&p1,&p2, + 1<=0) + dc->color=ROP_EQU+color; + break; + case MSG_IP_L_DOWN: + x1=p1; y1=p2; + x2=p1; y2=p2; + cnt=0; + while (msg_code!=MSG_IP_L_UP) { + dc->pen_width=0.04*ip_speed; + GrLine3(dc,x1,y1,0,x2,y2,0); + msg_code=GetMsg(&p1,&p2, + 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 literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Graphics/SpritePlot3D.CPP b/SparrowOS/Demo/Graphics/SpritePlot3D.CPP new file mode 100644 index 0000000000000000000000000000000000000000..cb3a349ff2b96f0b6bdb21f667eaea856e979aff GIT binary patch literal 1210 zcmdPb;tI*gELKQK&CORRElw>~NH2;{N!C#)&R3|+FIC7bEiO?=Oi58lJFRY*!rPAn}>g=kR7ELO+@GMbCPc11{NG(b% zPEAorO-#;EC@n}yEJ;;Js^lukNL47VEG|jS)zjqC(&vH!1u#$v4$x7uF|}DjDE*c=mDk!*_nJB!pHPCrsYXCAVCE3=+*)bf*k#V-TZ@m9YZ|*{XhypKF-NchJ`IGV9PTy zb5a#F6oZo!^PDphi!>Fgxj<>dy~r~qHLt|Auv7zNbP+ff6cpTxg7Qlu;G#M&kj0}A z;xFOi!Ko!d`6a%Ips3V=83nc?I43o=K*PiU67~uTFSTurv>xjlLj0?s@B+#=2K&Dj zIezjBAYO7w&4GBNmWvBH-mSS9m>3us7#SeIf{_8tXJQhA2q-f!F#P!c|38d2WME+6 zWME)`(Mk*q4B`w73?Le$MTCKYfsKKIfr&*>8e#&276Su=00RSq5J(LN0|Ns;0|SFB zND+v0?*IS)APiD$#K6D+W5f6`8YB*rhp}ODAaNFurAR&j@fjExm>C!tKuo9yL0p)B eL2QsPj1N+VWC(~0k^)%*qCv_*Vpy~=FaQ8O-zUBR literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Graphics/SpritePut.CPP b/SparrowOS/Demo/Graphics/SpritePut.CPP new file mode 100644 index 0000000000000000000000000000000000000000..c4cfc3ea25c660d2043d2d5ff03a267e9a8f761b GIT binary patch literal 24857 zcmdPb4=qkruyGCv^3e^lQz*$-NK8pl$S+bzP01`#C@v_r5MC>r8EJO$Cs& zf`U?Lu!37oV!D+QNR@&@KxqlY3=I`eCmkglLpzZ5nh;69)N-H9yi^TCBd|a%7ev2r zVgW=ux@IFgB^@Ibuv)lQ15InLS}rbq{osofbqJ0bu4B;RVDE>dF00YCIa?XDg_i%vR#sLB##(-c{ z_kbJ(at;Rvh&2!nLURuX$A74Mz!d#mgx@_NN72_!DDL?WiYAa7uwa@x3z0t1-Gjv? zNJ2Dn6xarc*(mM-ixWpcbW@20TM03XT=#&Dz#t%Il1zflf#{;Hdyou<7*8At)&?nI zXy6`*!Nj=)q6*?3us&q>K!vG6LF^%xgxUE2KT3T86Q-PoI0Wor2oo;}vk#;QDSTkU zl+z%C|Nke=IS@U_;X}DQpeBHg2DAVF2UR~{K6V1E3Pix9X%IdjC!kh?*h30bD1)2= z#+dE_3saGRgbjA5fNV#x3M2r=@bE#ArVL$Vi~=%G@`(MePHfGvVp zitH2+8zKrLK_UM8fm^{4``{wT7Jfw91w;JfEXaxfCOO}8a^N?T43bpfm(@X4OA3H(a${)8$tOD$weSR zkPwIlW4gHqY#S(ckX!?1LL^`$z1#z_51i4!u7D8`aRfGhOI0VYUa1WizMJ!EKu!{!FJz(20 z2~79UD}XTF0usUE9=g;VAiJ?)tnQ&hvc~2XkQgra&^XpWR%69D-9y`0!|E20ARhP7 z&P5=LabUdep;4saa0*x$zk6ttu)!ANAPBk#5=P*jB&a<{jS38hQ^3N6-2+wzCq~@^ z4+`uIDg+RAgCU}%#uqgT0f^1mNz&Z|N#G;|6Ubr|BF{ZA-N=CfvIs7Yn*mY=PD|L8P}4owZ9o&HmwV8x#m&X;r z(9}Jkqz$qF%}%^rkb0ach{EuJHIVQ+09_K|Aaqd(pE~Y=m_;-Rb`W;e1Lhv=&OwaN zwTB2b`o~#t}>7ETF039&F?6#5xRJ9d+D;ZYufwQTN~v zyV39=6h7b`5sc8y4~O)iyCV7-7#M<~f*^{KEWko5z(AIB7-{7k7La>5U~a->Fk%XU zMQG_B4t}r|jEtBJEJ6@Pv~&+6KP-GO8Mx$V=^l1Qc8G&88H|`h5D{9s2jUpgNPb!Y zPOlWXecnqGqJIdvGOOaM)p{bDFycl1v#Hv7}&ZLNs*` zX-NmHnwIV%E$Kj1gPPVf!JzbvC3%384T!)YN6Yeuw4?)3O-uKHf&p8x15PMlNjMA6 zpt*Y>$%5$ehvx1fvHYRAdmzbz=<;bO;}CLV**|5h0MP;9|%Onx-Fc2?w$blYu2EgB76{V^rf0 zlk$*i;el=tndKq6F;wG&>QhkCArVu}esqHdoqK39ibKAk3^XfA$TN7fKY9NP9b4SZV z^b!!2KN>!$;epN@4IlInLFJE@hXl$){L*xn9gQ#iK|bih2Q|A5IB&E(#2*Et;WHXO L_(K4{ECT}ox;q66 literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Graphics/SpritePutExt.CPP b/SparrowOS/Demo/Graphics/SpritePutExt.CPP new file mode 100644 index 0000000..471a661 --- /dev/null +++ b/SparrowOS/Demo/Graphics/SpritePutExt.CPP @@ -0,0 +1,28 @@ +/* +If you press you will see this: + +$$IB+BP,"<1>",1,"::/SparrowOS/Demo/Graphics/SpritePut.CPP.Z,2"$$ + +That imports an external sprite. It's +called a $LK,"DOCEF2_BIN_PTR_LINK","MN:DOCEF2_BIN_PTR_LINK"$. + +Press and "pointer to sprite". +Then, enter a file and the number of +the sprite in the file. Note: the +number can get messed-up if you change +the order of sprites in the source file. +You can enter a tag instead of a num. + +*/ + +U0 SpritePutExt() +{ + I64 i; + for (i=0;i<3;i++) { + "US Map:"; + PutSprite($IB+BP,"<1>",1,"::/SparrowOS/Demo/Graphics/SpritePut.CPP.Z,2"$); + NewLine(12); + } +} + +SpritePutExt; diff --git a/SparrowOS/Demo/Graphics/SpriteText.CPP b/SparrowOS/Demo/Graphics/SpriteText.CPP new file mode 100644 index 0000000000000000000000000000000000000000..6983c89712d6e84c05e4a1a5f7a014de1a69a01c GIT binary patch literal 867 zcmd;52@cRvvN5z%(lJ!wf`Cv1h2Vms%#zfQ)QS>~PzwdE)ST4ZVok1UE(HZ=h?Ig> zNosCEx-D2nH$N?{IJHCrDyLUml2}xtY0age0McAs0%DbCWagwQXn=L;+Lcrmq-rXF z%u`U%*AFf!O{r8U$;d2LD9SG_$;?YtQ1S8BQG%Lh1agOxj*_pR6^e+8hNd2uf`WoV zafvOm1jG`s{R#?7s>LyRN;(inC@8oUrKV~WLma1|0Co-7hnm_jBV2P*bAvOhQjtul z<*Mc4g7_Qc6b%(mCwQ1?T5~ZlF)%PNGC+V969bsf0TN__iGt-cz$60$h^}CO&>Rd5 z3_J`B3?Nzti56jCU;y!vX^=V)A4G%HgJ>0~ehDlzNG(VlM1$0!(;)Lf;vgEN4n%|8 z1~L~!!}uWD1nM4;ILI6jA4G%rAoUM?(XpqSu z8e~!c0|Ns(4U!Lmst3^^egXpn1IV>78d)4B52HaY0;vPhAax)*1!`Ual!oy^G{}A! k4Uz}(k!g^*AU=o&sRPjwin_inhibit=WIF_ALL-WIF_BORDER; + + WinMax; + DCFill; + "$$CL$$"; + dc->flags|=DCF_SYMMETRY; + GrSetSymmetry(dc,Fs->win_pixel_width/2,0,Fs->win_pixel_width/2,1); + do { + msg_code=GetMsg(&p1,&p2, + 1<flags&=~DCF_SYMMETRY; + dc->color=ROP_XOR+RED^COLOR_TRANSPARENT; + x1=p1; y1=p2; + x2=p1; y2=p2; + while (msg_code!=MSG_IP_R_UP) { + GrLine3(dc,x1,y1,0,x2,y2,0); + msg_code=GetMsg(&p1,&p2, + 1<flags|=DCF_SYMMETRY; + break; + case MSG_IP_L_DOWN: + dc->color=ROP_XOR+BLACK^COLOR_TRANSPARENT; + x1=p1; y1=p2; + x2=p1; y2=p2; + while (msg_code!=MSG_IP_L_UP) { + GrLine3(dc,x1,y1,0,x2,y2,0); + msg_code=GetMsg(&p1,&p2, + 1<;Uq&&bJ4&nPKYD9K1wFe%AUNXg7i%`48#&*Re9&rbsjmlP%D6{qDF zFZ|}E0h+erYNN47bz5%>m&d*KC%u7w-($_D~EXhzvgjtkZnp2Wl zkdv7VHcyX>OJ6@YxhOv;M3v^KZt!1KZj4ouP z4OIgU0Zou`2s@mD{KIkB0MiBu9;kh2f?Ns;3TQzOa)Pdr7Sv9tW+)FDJ6fntLRXFM zL?1_IZ;-3qi+nQkQbBW{orkW#+h;{^KSX0dr z#yA`SD>AU>7F}ZdAlhIq`z5=tbPZLAA3yB1uH zg%+eFmZZ9*7G;*DrXbg6MAl>Q(iT*=m1pL~mn0Tv>)L@>1(_A8Iq~J0DJ2>DM!Fi% z91P9!pvps2-w0INC+pf3f!aYJ6F?OnEJ%=4LY0-|7l0Ij3`e&nBNb!>7JE=@AcU1k z`6VU!xgg^(^95S91+pESHEew{b2Cdk%}g}FTpa^g4Gc}=;M4$;GD1~pgj=OCs!C%W zLmXx%8rnYAH_|iE0-0}!QXWFxmuO^bsAr%BcAJqdG`PVo(>Kz@rUBffv4xpwjHU#V zK73NsN}O{tld~adLj%^n(E+uTD!^o=j#GYq4xt8*f1-9<)VvzpkOKMx`!D2WDJpf&)D@r#KbO0wXPu25`#4YK0LQR>0k7OrmCx-;;Ii zO2N4;J_VB9;>!|qiXnd1(83|Bk*sOWRm;T%4R=T^_@$O>K*Ado@(TGmDe(nGsj0aI zC7`4LRhn$;?3k02pR7@wS(Tcf28lUHXeC23C@2rvx)p=;Bmr@Kc8r;&k)1-#D$5(l@@Ai{8Qzfj-!kRVsr zU```bGcGPrZZ9cHO^vUJhRek2fJG{iM66*QE8hTc{Q>Jz= z7=n9OpgvV@fi)MnI`RzwB?r$E4QEimD`_E{9a#JGM5iZW4 zbd>@vBA}g8)WFk$h8rXhA)%C^QwH)UDC~6YGV+V6;)}t3dcEAtJX_sjJ#f9C1xgu^ z6r&ZKnWs^#mk8+{VbPXYVT-H_oSw9t^NS&xbRjxGwKh_d0O5kN)S?n(7Z~7>Lb62z z$#HOdv_XOpyWtMj#IPLFPyks0N?{mTTLa`+O>qA_!xqFw4WWX3aLHB%l|ptpSc*$Q z!MzAHsNq^z3Qa-qfO9Vj28|*3CYB&ef&&{Io9;!ysh|N7-$Zc#AC$t15E3Dvfgs4R z4%A@X3?1Dv9RsiuXqpA5RJ!k?ow9d4F=MY3P^$qaKPts8H zh2}?aM$^fJ*aa0s3M!D5cyj|t0c5NLJ`MpADoD+PG!Sh~KrsU8cpHOqgpm%Y(FBiC zU1Ja*Y(0u1kOD{|)iu^J&;fD5DL~g4%tlCIY6Y2ZL_ig?c_8)3d=MMO{8~s6=9!mS z0j$T% zDu74kkR>34awsAypb@gXOmIOCswzQQIx{aLGbyvgHr&%K-qFWL7eqUO$JxM4_aH~7 z_+aNCf2fqNt6wNs0@S()207g&KiRpos5rj}#>q)dgs~xGjUWk-btp{+Pp~V(GxMDC zi&9dHH2nP_xfY}lxlAj_FSZ4jC?E;6{0fnPx0fJQwO?vE$iia1Vnc|0v0gE1TM^Q2 zDb_1SZ3TjaxfB#&t)AQhM6(A{9YWeZ@XTfljT&%n49kRA3vmOeSO=Br3JUP>&o2PE zN?+eIO`$TsR3SOBC{+i{$^~_N6v`9xN)$@+xfB%i^@|hBQbFUb3i(Bu>6v+nISSxb znF3@;8KMMS;DZKni}gTB2PNHDb1^V6FfcGOKtL7`1DG$W!N9=a&%nU&?*IS)2mg

    avKDLY(d3Xm0>dyq!3~V5{YUSj0aMRWHC$_g9fPs2Ox-nC-tLw7{eT> z0Gcvvp7;+AJ&<)sp1_)9Kx!}y#AYN&A*x|m%>%g+q?DL&0mU##EyP%mP8=Ad2#T>e z4W managed code +that was modified. + +This is an advanced demo that shows +that you can place ctrls on the +wall paper. + +See $LK,"::/SparrowOS/Demo/Graphics/SliderCtrl.CPP.Z","FI:::/SparrowOS/Demo/Graphics/SliderCtrl.CPP.Z"$ +and $LK,"::/SparrowOS/Demo/Graphics/MyWallPaper.CPP.Z","FI:::/SparrowOS/Demo/Graphics/MyWallPaper.CPP.Z"$ +before messing with this program. + +It must be "Adam Included". +*/ + +#define SLIDER_RANGE 30 +#define SLIDER_SPACING 20 +#define SLIDER_BORDER 2 + +class CSliderState +{ + I64 left_pos; + I64 right_pos; +}; + +U0 DrawSliderCtrl(CDC *dc,CCtrl *c) +{ + CSliderState *s=c->state; + + dc->color=LTRED; + GrRect(dc, c->left,c->top,SLIDER_SPACING*3+2,SLIDER_SPACING*2+SLIDER_RANGE); + dc->color=BLUE; + GrRect(dc, c->left+SLIDER_BORDER,c->top+SLIDER_BORDER, + SLIDER_SPACING*3+2-2*SLIDER_BORDER,SLIDER_SPACING*2+SLIDER_RANGE-2*SLIDER_BORDER); + dc->color=BLACK; + GrLine(dc,c->left+1*SLIDER_SPACING+0,c->top+SLIDER_SPACING, + c->left+1*SLIDER_SPACING+0,c->top+SLIDER_SPACING+SLIDER_RANGE-1); + GrLine(dc,c->left+2*SLIDER_SPACING+1,c->top+SLIDER_SPACING, + c->left+2*SLIDER_SPACING+1,c->top+SLIDER_SPACING+SLIDER_RANGE-1); + dc->color=LTRED; + GrPrintF(dc,c->left+1*SLIDER_SPACING+0-FONT_WIDTH/2, + c->top+SLIDER_SPACING+SLIDER_RANGE+3, + "%d",s->left_pos*10/SLIDER_RANGE); + GrPrintF(dc,c->left+2*SLIDER_SPACING+1-FONT_WIDTH/2, + c->top+SLIDER_SPACING+SLIDER_RANGE+3, + "%d",s->right_pos*10/SLIDER_RANGE); + GrRect(dc,c->left+1*SLIDER_SPACING+0-3,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->left_pos-2,7,5); + GrRect(dc,c->left+2*SLIDER_SPACING+1-3,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->right_pos-2,7,5); + dc->color=YELLOW; + GrRect(dc,c->left+1*SLIDER_SPACING+0-2,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->left_pos-1,5,3); + GrRect(dc,c->left+2*SLIDER_SPACING+1-2,c->top+SLIDER_SPACING+SLIDER_RANGE-1-s->right_pos-1,5,3); +} + +U0 UpdateDerivedSliderCtrl(CCtrl *c) +{ + CSliderState *s=c->state; + c->left=c->win_task->win_pixel_width/2-(SLIDER_SPACING*3+2)/2; + c->right=c->left+3*SLIDER_SPACING+2; + c->top=c->win_task->win_pixel_height/2-(SLIDER_SPACING*2+SLIDER_RANGE)/2; + c->bottom=c->top+SLIDER_SPACING*2+SLIDER_RANGE; + s->left_pos=LimitI64(s->left_pos,0,SLIDER_RANGE-1); + s->right_pos=LimitI64(s->right_pos,0,SLIDER_RANGE-1); +} + +U0 LeftClickSlider(CCtrl *c,I64 x,I64 y,Bool) +{ + CSliderState *s=c->state; + if (xleft+1*SLIDER_SPACING+0+SLIDER_SPACING/2) + s->left_pos=SLIDER_RANGE-1-(y-(c->top+SLIDER_SPACING)); + else + s->right_pos=SLIDER_RANGE-1-(y-(c->top+SLIDER_SPACING)); + if (c->update_derived_vals) + (*c->update_derived_vals)(c); +} + +CCtrl *SliderNew() +{ + Bool old_preempt; + CCtrl *c=ACAlloc(sizeof(CCtrl)); + c->win_task=sys_winmgr_task; + c->flags=CTRLF_SHOW|CTRLF_CAPTURE_LEFT_IP; + c->type=CTRLT_GENERIC; + c->state=ACAlloc(sizeof(CSliderState)); + c->draw_it=&DrawSliderCtrl; + c->left_click=&LeftClickSlider; + c->update_derived_vals=&UpdateDerivedSliderCtrl; + old_preempt=Preempt(OFF); + QueIns(c,sys_winmgr_task->last_ctrl); + TaskDerivedValsUpdate; + Preempt(old_preempt); + return c; +} + +U0 SliderDel(CCtrl *c) +{ + Bool old_preempt=Preempt(OFF); + QueRem(c); + Preempt(old_preempt); + Free(c->state); + Free(c); +} + +SliderNew; diff --git a/SparrowOS/Demo/Graphics/WinZBuf.CPP b/SparrowOS/Demo/Graphics/WinZBuf.CPP new file mode 100644 index 0000000..6a38763 --- /dev/null +++ b/SparrowOS/Demo/Graphics/WinZBuf.CPP @@ -0,0 +1,22 @@ +U0 DrawIt(CTask *,CDC *dc) +{ + I64 i,j; + U16 *ptr=gr_win_z_buf; + dc->color=BLACK; + GrPutS(dc,0,0,"Move the windows around and watch."); + for (i=0;icolor=*ptr++&15; + GrPlot(dc,j,i+FONT_HEIGHT); + } +} + +U0 ScrollBars() +{ + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Fs->draw_it=&DrawIt; + GetChar(NULL,FALSE); + SettingsPop; +} + +ScrollBars; diff --git a/SparrowOS/Demo/KeyBitMap.CPP b/SparrowOS/Demo/KeyBitMap.CPP new file mode 100644 index 0000000000000000000000000000000000000000..8bae608b8b453d8525182d0dcfd25619e12ff99d GIT binary patch literal 927 zcmdPb_f#lKO-{`#$*ELGOi4*iQAo-x$xSRMR!B-LPEAqB&r>K)PRvtC&QD1#=F-XR3p^Dk^$0c}mt?3JT>JnK`Kn z8j4OO8ri9p@hSP`dGU~t)B#zbsmZ0Fpr8<$nVORVHas}Bq$D#hy*Qw>IKx^&Uq3iC zRYAqaTSp05LP_LV0FM1}Ofx^!0O7i_%k55HYT&prDbHnpUDvoROJU0tyN)ef^@$^bD9t za(-@7W?pKFLRx;2LTW`~Zb43}o+b{r7-4mckrFP~q+}MCWacH8ptuJfP|g{NMM^qK z9-dZUmI}yq&>#dQSWsLRLo5t-j`#EnR#MRe#VRzSaK@7YC>bg!RA_61qE$g5I43o= zK*P{L6U43MQc!?LM}7fF$StR|IK#I%y%?M#F;b&77XuRm0|O%i1gJAGfcZ=;f}#uz i48Q;X|8L5`z@PvUW)u`>U|{(7|Nnnu1_lOMkOlxDvk|-i literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Lectures/AndNotMod.CPP b/SparrowOS/Demo/Lectures/AndNotMod.CPP new file mode 100644 index 0000000..d8fdd43 --- /dev/null +++ b/SparrowOS/Demo/Lectures/AndNotMod.CPP @@ -0,0 +1,53 @@ +/* + +$WW,1$You may wonder why I use "&" instead of "%". +$WW,0$ +*/ + +#define SAMPLE_SIZE 100000000 + +U0 TimeIns() +{ + I64 start1,end1,start2,end2,overhead_time,test_time; + I64 reg i,reg temp; + Bool old_preempt=Preempt(OFF); + + CPURep; + +//Measure Loop Overhead + start1=GetTimeStamp; + for (i=0;i>32 =%X\n",i>>32; + +/* + Standard integer types are declared + with a special compiler feature which + allows a structure to be accessed as a + whole. That's why the i variable can + be accessed normally in addition to + structure member access $LK,"I64","MN:I64"$. The actual + intrinsic compiler type is U64i. + +public U64i union I64 +{ + I8i i8[8]; + U8i u8[8]; + I16 i16[4]; + U16 u16[4]; + I32 i32[2]; + U32 u32[2]; +}; + + It's not quite as great as it seems + because the compiler decides it cannot + place i into a register, so there is a + penalty. + +For a complete list of nonstandard compiler +features, see $LK,"::/SparrowOS/Doc/Differences.TXT.Z","FI:::/SparrowOS/Doc/Differences.TXT.Z"$. + +*/ + + "i.u32[0] =%X\n",i.u32[0]; + "i.u32[1] =%X\n",i.u32[1]; +} + +CPURep; +Main; +DoIt2; + +//See $LK,"::/SparrowOS/Demo/Lectures/FixedPointAdvanced.CPP.Z","FI:::/SparrowOS/Demo/Lectures/FixedPointAdvanced.CPP.Z"$ + + +/* Program Output$HL,0$$WW+H,1$$FD,1$ + +8 Cores 2.660GHz +Integer Sum:2000000199.768689408 Time: 0.787s +Float Sum:2000000225.656126208 Time: 3.918s + +i =123456789ABCDEF0 +i&0xFFFFFFFF=9ABCDEF0 +i>>32 =12345678 +i.u32[0] =9ABCDEF0 +i.u32[1] =12345678 + +$HL,1$*/ diff --git a/SparrowOS/Demo/Lectures/FixedPointAdvanced.CPP b/SparrowOS/Demo/Lectures/FixedPointAdvanced.CPP new file mode 100644 index 0000000..27af14e --- /dev/null +++ b/SparrowOS/Demo/Lectures/FixedPointAdvanced.CPP @@ -0,0 +1,164 @@ +/* +"Fixed point" means you use integers +that are scaled by a value. A common +example would be using number of pennies +instead of dollars with a float. + +Fixed-point used to be much faster, +but modern processors do well with +floats. It also depends on the compiler +and my compiler used to do floats poorly. + +I often use 64-bit ints with upper 32-bits +as integer and lower 32-bits as fraction. + +See $LK,"::/SparrowOS/Demo/SubIntAccess.CPP.Z","FI:::/SparrowOS/Demo/SubIntAccess.CPP.Z"$ for how +to access upper or lower 32-bits. + +*/ +#define SAMPLE_SIZE 10000000 + +I32 coordinates[65536]; + +asm { + IMPORT coordinates; + +_ASM_FIXED_POINT:: + ENTER 0 + PUSH RSI + PUSH RDI + MOV RSI,coordinates + MOV RDI,ToI64(Sin(1.0)*0x100000000) + XOR RBX,RBX //SUM + MOV RCX,SAMPLE_SIZE-1 +@@05: XOR RDX,RDX + MOV DX,CX + MOVSXD RAX,U32 [RSI+RDX*4] + IMUL RDI + SAR RAX,32 + ADD RBX,RAX + DEC RCX + JGE @@05 + MOV RAX,RBX + POP RDI + POP RSI + LEAVE + RET + +SINE_VAL: DU64 Sin(1.0); +RET_VAL: DU64 0; + +_ASM_FLOAT:: + ENTER 0 + PUSH RSI + MOV RSI,coordinates + FLD U64 [SINE_VAL] + FLDZ + MOV RCX,SAMPLE_SIZE-1 +@@05: XOR RDX,RDX + MOV DX,CX + FILD U32 [RSI+RDX*4] + FMUL ST0,ST2 + FADDP ST1,ST0 + DEC RCX + JGE @@05 + FISTP U64 [RET_VAL] + MOV RAX,U64 [RET_VAL] + FFREE ST0 + FINCSTP + POP RSI + LEAVE + RET +} + +_extern _ASM_FIXED_POINT I64 AsmFixedPt(); +_extern _ASM_FLOAT I64 AsmFloat(); + +U0 Main() +{ + I64 start,end,overhead_time,test_time; + F64 d1,fsum; + I64 reg i,temp,reg d2,reg sum; + Bool old_preempt=Preempt(OFF); + + CPURep; + + //Set-up some sample coordinates + for (i=0;i<65536;i++) + coordinates[i]=RandU32; + +//Measure Loop Overhead + start=GetTimeStamp; + for (i=SAMPLE_SIZE-1;i>=0;i--) { + } + end=GetTimeStamp; + overhead_time=end-start; + "$$FG,RED$$Overhead Cycles :%10.5f$$FG$$\n", + ToF64(overhead_time)/SAMPLE_SIZE; + +//Measure F64 arithmetic +// (Some of this is due to crappy +// compiler code.) + d1=Sin(1.0); + fsum=0; + start=GetTimeStamp; + for (i=SAMPLE_SIZE-1;i>=0;i--) + fsum+=d1*coordinates[i&65535]; + end=GetTimeStamp; + test_time=end-start; + "Float Sum :%X\n",ToI64(fsum); + "$$FG,RED$$Float Cycles :%10.5f$$FG$$\n", + ToF64(test_time)/SAMPLE_SIZE; + + +//Measure fixed point arithmetic + d2=Sin(1.0)*0x100000000; + sum=0; + start=GetTimeStamp; + for (i=SAMPLE_SIZE-1;i>=0;i--) { + temp=d2*coordinates[i&65535]; + sum+=temp.i32[1]; + } + end=GetTimeStamp; + test_time=end-start; + "Fixed Point Sum :%X\n",sum; + "$$FG,RED$$Fixed Point Cycles :%10.5f$$FG$$\n", + ToF64(test_time)/SAMPLE_SIZE; + +//Measure fixed point arithmetic + start=GetTimeStamp; + sum=AsmFixedPt; + end=GetTimeStamp; + test_time=end-start; + "Asm Fixed Point Sum :%X\n",sum; + "$$FG,RED$$Asm Fixed Point Cycles:%10.5f$$FG$$\n", + ToF64(test_time)/SAMPLE_SIZE; + +//Measure float arithmetic + start=GetTimeStamp; + sum=AsmFloat; + end=GetTimeStamp; + test_time=end-start; + "Asm Float Sum :%X\n",sum; + "$$FG,RED$$Asm Float Cycles :%10.5f$$FG$$\n", + ToF64(test_time)/SAMPLE_SIZE; + + Preempt(old_preempt); +} + +Main; + +/* Program Output$HL,0$$WW+H,1$$FD,1$ + +8 Cores 2.660GHz +$FG,4$Overhead Cycles : 2.00814$FG$ +Float Sum :FFFFE1D361BEED68 +$FG,4$Float Cycles : 10.16076$FG$ +Fixed Point Sum :FFFFE1D361729914 +$FG,4$Fixed Point Cycles : 5.29392$FG$ +Asm Fixed Point Sum :FFFFE1D361729914 +$FG,4$Asm Fixed Point Cycles: 4.20464$FG$ +Asm Float Sum :FFFFE1D361BEED56 +$FG,4$Asm Float Cycles : 3.04635$FG$ + +$HL,1$*/ diff --git a/SparrowOS/Demo/Lectures/GraphicsCPULoad.CPP b/SparrowOS/Demo/Lectures/GraphicsCPULoad.CPP new file mode 100644 index 0000000..d0253ff --- /dev/null +++ b/SparrowOS/Demo/Lectures/GraphicsCPULoad.CPP @@ -0,0 +1,76 @@ +//This is the fastest you can update the whole screen. +//See $LK,"::/SparrowOS/Demo/Lectures/MiniGrLib.CPP.Z","FI:::/SparrowOS/Demo/Lectures/MiniGrLib.CPP.Z"$ if this interests you. + +F64 VGAPattern(I64 p) +{//This returns the time to update in seconds. + F64 start=tP; + I64 i,plane,*ptr; + for (plane=1;plane<0x10;plane<<=1) { + OutU8(VGA_SC_INDEX,VGA_MAP_MASK); + OutU8(VGA_SC_DATA,plane); + ptr=0xA0000; + for (i=0;i<640*480/64;i++) + *ptr++=p; + } + return tP-start; +} + + +U0 GrDemo() +{ + I64 i; + F64 t; + Bool old_preempt=Preempt(OFF); + CPURep; + for (i=0;i<16;i++) { + t=VGAPattern(0x5555555555555555); + "$$FG,GREEN$$Rate:$$FG,RED$$%5.1f FPS$$FG$$" + " $$FG,GREEN$$Load@60Hz:$$FG,RED$$%5.1f%%$$FG$$\n",1/t,100*t*60.0; + t=VGAPattern(0x3333333333333333); + "$$FG,GREEN$$Rate:$$FG,RED$$%5.1f FPS$$FG$$" + " $$FG,GREEN$$Load@60Hz:$$FG,RED$$%5.1f%%$$FG$$\n",1/t,100*t*60.0; + } + Preempt(old_preempt); +// will flush screen VGA cache. + VGAFlush; +} + +GrDemo; + +/* Program Output$HL,0$$WW+H,1$$FD,1$ + +8 Cores 2.660GHz +$FG,2$Rate:$FG,4$369.7 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$370.3 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$361.2 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.6%$FG$ +$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$370.2 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$360.6 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.6%$FG$ +$FG,2$Rate:$FG,4$370.4 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$353.1 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 17.0%$FG$ +$FG,2$Rate:$FG,4$370.3 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$357.0 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.8%$FG$ +$FG,2$Rate:$FG,4$369.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$370.4 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$353.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 17.0%$FG$ +$FG,2$Rate:$FG,4$369.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$370.2 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$370.4 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.7 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.9 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ +$FG,2$Rate:$FG,4$369.8 FPS$FG$ $FG,2$Load@60Hz:$FG,4$ 16.2%$FG$ + +$HL,1$*/ diff --git a/SparrowOS/Demo/Lectures/InterruptDemo.CPP b/SparrowOS/Demo/Lectures/InterruptDemo.CPP new file mode 100644 index 0000000..8a8f634 --- /dev/null +++ b/SparrowOS/Demo/Lectures/InterruptDemo.CPP @@ -0,0 +1,90 @@ +//This is the software interrupt num +//we will use. See $LK,"Software Int's","MN:I_WAKE"$ for +//picking a num. Nums are subject to change. + +#define I_F_UNARY_MINUS I_USER + +asm { + +//This changes the sign of the floating +//point val in RAX +F_UNARY_MINUS_INT:: + PUSH RAX + FLD U64 [RSP] + FCHS + FSTP U64 [RSP] + FWAIT + POP RAX + IRET + +//This does the same thing, but not as +//an interrupt. +F_UNARY_MINUS_CALL:: + PUSH RAX + FLD U64 [RSP] + FCHS + FSTP U64 [RSP] + FWAIT + POP RAX + RET + +//This invokes the interrupt version +//with a C callable function. +_F_UM_INT:: + ENTER 0 + MOV RAX,SF_ARG1[RBP] + INT I_F_UNARY_MINUS + LEAVE + RET1 8 + +//This invokes the call version +//with a C callable function. +_F_UM_CALL:: + ENTER 0 + MOV RAX,SF_ARG1[RBP] + CALL F_UNARY_MINUS_CALL + LEAVE + RET1 8 +} + +_extern _F_UM_INT F64 UnaryMinusInt(F64 d); +_extern _F_UM_CALL F64 UnaryMinusCall(F64 d); + + +#define SAMPLE_SIZE 1000000 +U0 TimeIns() +{ + I64 start,end; + I64 i,old_irq; + Bool old_preempt=Preempt(OFF); + + CPURep; + old_irq=IntEntrySet(I_F_UNARY_MINUS,F_UNARY_MINUS_INT,0,IDTET_TRAP); + +//Measure interrupt time + start=GetTimeStamp; + for (i=0;icode_heap); + + while (TRUE) { + "This will compile an expression\n" + "consisting of integers, parentheses\n" + "and the operators +,-,* and /.\n"; + src=MGetS; + if (*src) { + src2=src; + dst=code; + try { + PrsTerm(&src2,&dst,PREC_PAREN); + if (Parse(&src2,&dst)!=PREC_EOF) + throw; + "$$FG,RED$$This code is not efficient, but the compiler is simple.$$FG$$\n"; + Un(code,dst-code); //Unassemble the code we created. +//$LK,"Call","MN:Call"$() is a function. See $LK,"_CALL","FF:::/SparrowOS/OSMain/Utils1a.CPP.Z,_CALL"$:: +//See also $LK,"CallInd","MN:CallInd"$(). See $LK,"_CALLIND","FF:::/SparrowOS/OSMain/Utils1a.CPP.Z,_CALLIND"$:: + "$$FG,LTBLUE$$Answer:%d$$FG$$\n",Call(code); + } catch { + "$$FG,RED$$Error$$FG$$\n"; + CatchAll; + } + Free(src); + } else { + Free(src); + break; + } + } + Free(code); +} + +Main; + diff --git a/SparrowOS/Demo/Lectures/MiniGrLib.CPP b/SparrowOS/Demo/Lectures/MiniGrLib.CPP new file mode 100644 index 0000000..ee3795d --- /dev/null +++ b/SparrowOS/Demo/Lectures/MiniGrLib.CPP @@ -0,0 +1,135 @@ +//See $LK,"::/SparrowOS/Demo/Lectures/GraphicsCPULoad.CPP.Z","FI:::/SparrowOS/Demo/Lectures/GraphicsCPULoad.CPP.Z"$ +U8 reverse[256], //The VGA bits are backward + + image[640*480/8]; //We need read-modify write. + //0xA0000 memory can't be read. + +U0 MGInit() +{ + I64 i,j; + MemSet(image,0,sizeof(image)); + MemSet(reverse,0,sizeof(reverse)); + for (i=0;i<256;i++) + for (j=0;j<8;j++) + if (Bt(&i,j)) + Bts(&reverse[i],7-j); +} + +U0 MGUpdate() +{ //Copy image to VGA memory + //For better performance we could only write what's changed. + //0xA0000 is slower than normal RAM. + OutU8(VGA_SC_INDEX,VGA_MAP_MASK); + OutU8(VGA_SC_DATA,0xF);//All color planes at once -- Black and White + MemCpy(0xA0000,image,sizeof(image)); +} + +U0 MGPlot(I64 x,I64 y) +{ + if (0<=x<640 && 0<=y<480) + Bts(image,y*640+x^7); +} + +U0 MGHLine(I64 x1,I64 x2,I64 y) +{ //Warning! No clipping + //For performance, we do as many whole-bytes as possible. + U8 *ptr; + I64 i,w,leading,trailing,whole_bytes; + if (x2>3; + w=x2-x1+1; + leading =8-x1&7; + trailing=(x2+1)&7; + if (leading+trailing>w) + *ptr|=reverse[(0xFF00>>leading&(0x00FF<>8)]; + else { + whole_bytes=(w-leading-trailing)>>3; + if (leading) + *ptr++|=reverse[(0xFF00>>leading)&0xFF]; + for (i=0;i>8]; + } +} + +U0 MGLine(I64 x1,I64 y1,I64 x2,I64 y2) +{ //Warning! No clipping + I64 dx=x2-x1,dy=y2-y1; + x1<<=32; x2<<=32; + y1<<=32; y2<<=32; + if (AbsI64(dx)>AbsI64(dy)) { + dy=dy<<32/AbsI64(dx); + dx=SignI64(dx)<<32; + while (x1!=x2) { + MGPlot(x1.i32[1],y1.i32[1]); + x1+=dx; y1+=dy; + } + } else { + dx=dx<<32/AbsI64(dy); + dy=SignI64(dy)<<32; + while (y1!=y2) { + MGPlot(x1.i32[1],y1.i32[1]); + x1+=dx; y1+=dy; + } + } + MGPlot(x1.i32[1],y1.i32[1]); +} + +U0 MGCircle(I64 x,I64 y,F64 r) +{ + F64 s,c,x1,y1,x2,y2; + I64 len; + if (r<0) return; + x1=r; y1=0; + c=Cos(1/r); + s=Sin(1/r); + len=2*r*ã; + MGPlot(x+x1,y+y1); + while (len-->=0) { + +//m1@a1 * m2@a2 = m1*m2@(a1+a2) + +//(x1+y1i)*(x2+y2i) = x1*x2+(x1*y1+x2*y2)i-y1*y2 + +// me$SY,-3$ti$SY,0$=mCos(t)+imSin(t) + + x2=x1; y2=y1; + x1=c*x2-s*y2; + y1=s*x2+c*y2; + MGPlot(x+x1,y+y1); + } +} + + +U0 MiniGrLibDemo() +{ + I64 i; + Bool old_preempt; + MGInit; + + old_preempt=Preempt(OFF); + for (i=0;i<100;i++) + MGHLine(200+i,400+i,300+i); + for (i=0;i<500;i+=10) + MGLine(i,0,0,480-i); + for (i=0;i<300;i+=4) + MGCircle(200,100+i,i); + MGUpdate; + BusyWait(1500000); + Preempt(old_preempt); +/* +We are returning graphics to normal operations under SparrowOS. +It is not normal to by-pass the SparrowOS graphcis routines. +The SparrowOS graphics don't know VGA has changed. +This bit tells SparrowOS to update whole screen. +*/ +// will flush screen VGA cache. + VGAFlush; +} + +MiniGrLibDemo; + +//See $LK,"RawDrawChar","MN:RawDrawChar"$() for text. +//See $LK,"::/SparrowOS/Demo/Lectures/ScreenMemory.CPP.Z","FI:::/SparrowOS/Demo/Lectures/ScreenMemory.CPP.Z"$ for color. +//See $LK,"::/SparrowOS/Demo/Lectures/GraphicsCPULoad.CPP.Z","FI:::/SparrowOS/Demo/Lectures/GraphicsCPULoad.CPP.Z"$. diff --git a/SparrowOS/Demo/Lectures/Optimization.CPP b/SparrowOS/Demo/Lectures/Optimization.CPP new file mode 100644 index 0000000..6c0346b --- /dev/null +++ b/SparrowOS/Demo/Lectures/Optimization.CPP @@ -0,0 +1,115 @@ +/* +The moral of this story is simple +instruction level optimizations +don't matter much on a modern Intel CPU +because they convert complex instructions +to a stream of RISC instructions. + +I learned this the hard way when I thought +I was greatly improving my compiler by +cutting code by a third. No significant +speed-up. Depressing. +*/ + +#define SAMPLES (8*10000000+1) + +asm { + +LIMIT:: DU64 SAMPLES; //Memory reference should suck, right? + +_BADLY_UNOPTIMIZED:: + MOV RAX,0 + MOV RCX,1 +@@05: MOV RDX,RCX + INC RCX //if no dependencies, Free! + ADD RAX,RDX + MOV RDX,LIMIT-16 //added 16 displacement to make it worse + CMP RCX,U64 16[RDX] + JB @@05 + RET + + +_WELL_OPTIMIZED1:: + XOR RAX,RAX + MOV RCX,SAMPLES-1 +@@05: ADD RAX,RCX + DEC RCX + JNZ @@05 + RET + +_WELL_OPTIMIZED2:: //Unrolled + XOR RAX,RAX + MOV RCX,SAMPLES-1 +@@05: ADD RAX,RCX + DEC RCX + ADD RAX,RCX + DEC RCX + ADD RAX,RCX + DEC RCX + ADD RAX,RCX + DEC RCX + ADD RAX,RCX + DEC RCX + ADD RAX,RCX + DEC RCX + ADD RAX,RCX + DEC RCX + ADD RAX,RCX + DEC RCX + JNZ @@05 + RET + +_WELL_OPTIMIZED3:: + XOR RAX,RAX + MOV RCX,SAMPLES-1 +@@05: ADD RAX,RCX + LOOP @@05 //This instruction sucks, speedwise, but it saves code size + RET +} + + + +_extern _BADLY_UNOPTIMIZED I64 Loop1(); +_extern _WELL_OPTIMIZED1 I64 Loop2(); +_extern _WELL_OPTIMIZED2 I64 Loop3(); +_extern _WELL_OPTIMIZED3 I64 Loop4(); + +I64 i; +F64 t0; + +CPURep; + +"Bad Code\n"; +t0=tNP; +i=Loop1; +"Result:%d Time:%9.6f\n",i,tNP-t0; + +"Good Code #1\n"; +t0=tNP; +i=Loop2; +"Result:%d Time:%9.6f\n",i,tNP-t0; + +"Good Code #2\n"; +t0=tNP; +i=Loop3; +"Result:%d Time:%9.6f\n",i,tNP-t0; + +"Good Code #3\n"; +t0=tNP; +i=Loop4; +"Result:%d Time:%9.6f\n",i,tNP-t0; + + +/* Program Output$HL,0$$WW+H,1$$FD,1$ + +8 Cores 2.660GHz +Bad Code +Result:3200000040000000 Time: 0.069966 +Good Code #1 +Result:3200000040000000 Time: 0.062567 +Good Code #2 +Result:3200000040000000 Time: 0.062907 +Good Code #3 +Result:3200000040000000 Time: 0.156359 + +$HL,1$*/ diff --git a/SparrowOS/Demo/Lectures/PCIInterrupts.CPP b/SparrowOS/Demo/Lectures/PCIInterrupts.CPP new file mode 100644 index 0000000..bd50d5f --- /dev/null +++ b/SparrowOS/Demo/Lectures/PCIInterrupts.CPP @@ -0,0 +1,73 @@ +//See $LK,"PCI","HI:PCI"$. + +#if mp_cnt>1 +#define DEST_CPU 1 +#else +#define DEST_CPU 0 +#endif + +#assert I_USER==0x40 + +interrupt U0 MyVect40() +{ + lock {progress1++;} + IntEOI; +} + +interrupt U0 MyVect41() +{ + lock {progress2++;} + IntEOI; +} + +interrupt U0 MyVect42() +{ + lock {progress3++;} + IntEOI; +} + +interrupt U0 MyVect43() +{ + lock {progress4++;} + IntEOI; +} + +I64 vect[4]={&MyVect40,&MyVect41,&MyVect42,&MyVect43}; + +U0 Main() +{ + I64 i; + U8 *da=IOAPIC_REG; + U32 *_d=IOAPIC_DATA; + + ProgressBarsRst; + for (i=I_USER;i will flush screen VGA cache. + VGAFlush; + PressAKey; + + pte[0]=p0; + pte[1]=p1; + InvlPg(VGA_GRAPHIC_MEM_BASE); + InvlPg(VGA_GRAPHIC_MEM_BASE+0x1000); + +// will flush screen VGA cache. + VGAFlush; +} + +PageTableDemo1; + +//See $LK,"MemBlks2MegAlloc","MN:MemBlks2MegAlloc"$(), $LK,"MemBlks2MegFree","MN:MemBlks2MegFree"$() for page aligned allocations. +//See $LK,"CBlkPool","MN:CBlkPool"$, $LK,"CHeapCtrl","MN:CHeapCtrl"$, $LK,"sys_code_bp","MN:sys_code_bp"$, $LK,"sys_data_bp","MN:sys_data_bp"$. +//See $LK,"Memory","HI:Memory"$ diff --git a/SparrowOS/Demo/Lectures/PageTableEntries2.CPP b/SparrowOS/Demo/Lectures/PageTableEntries2.CPP new file mode 100644 index 0000000..35f7558 --- /dev/null +++ b/SparrowOS/Demo/Lectures/PageTableEntries2.CPP @@ -0,0 +1,46 @@ +I64 *addr=VGA_GRAPHIC_MEM_BASE, + *pte_addr=MemPtAtPageTableEntry(addr), + err_code=0, + *reported_fault_addr; + + +/* + 0[RBP]=old base ptr + 8[RBP]=err code + 16[RBP]=RIP + 24[RBP]=RIP_SELECTOR + 32[RBP]=RFLAGS + 40[RBP]=RSP + 48[RBP]=STK_SELECTOR +*/ + +interrupt U0 PageFault() +{ + I64 reg *rbp=GetBasePtr,reg *rsp=GetStkPtr,reg *src=rbp,reg *dst=rbp+1; + *pte_addr|=1; + InvlPg(addr); + err_code=rbp[1]; +asm { MOV_RAX_CR2} + reported_fault_addr=GetRAX; +//Remove err_code from stk +//so IRET works right. + while (src>=rsp) + *dst--=*src--; + SetBasePtr(rbp+1); + SetStkPtr(rsp+1); +} + + +U0 PageTableDemo2() +{ + U8 *old_idte=IntEntrySet(I_PAGE_FAULT,&PageFault,0,IDTET_IRQ); + err_code=0; + *pte_addr &=~1; //Not present + InvlPg(addr); + WinMgrSync; //wait for VGA update + WinMgrSync; + IntEntrySet(I_PAGE_FAULT,old_idte,0,IDTET_IRQ); + "Err Code:%X Addr:%X\n",err_code,reported_fault_addr; +} + +PageTableDemo2; diff --git a/SparrowOS/Demo/Lectures/Ring3.CPP b/SparrowOS/Demo/Lectures/Ring3.CPP new file mode 100644 index 0000000..c83f45f --- /dev/null +++ b/SparrowOS/Demo/Lectures/Ring3.CPP @@ -0,0 +1,83 @@ +/* +SparrowOS runs exclusively in ring 0. +Ring 0 is part of the $LK,"Constitution","FI:::/SparrowOS/Doc/Constitution.TXT.Z"$. +This demo is for you to play around +with ring 3. SparrowOS is for +recreational programming, after all. + +This redirects the general protection +fault, switches to ring 3, and generates +a fault to switch back. +*/ + +U8 *old_stk,*new_rip; + +asm { + IMPORT SYS_PROGRESS1,old_stk,new_rip; +TO_RING0:: //Set to handle general protection 0xD fault temporarily. + INC U64 [SYS_PROGRESS1] + PUSH U32 GDT_ZERO_DS_SEL //STKSEG + MOV RAX,U64 [&old_stk] + PUSH RAX + PUSH U32 0 //FLAGS--interrupts off + PUSH U32 GDT_CS64_SEL + MOV RAX,U64 [&new_rip] + PUSH RAX + IRET +} + + + +U0 Ring3Demo() +{ + U8 *old_pf; + "Progress1 Before:%X\n",progress1; + Cli; + old_pf=IntEntrySet(0x0D,TO_RING0,0,IDTET_TRAP,0); + + TSSBusy(Gs->tss->tr_ring3,OFF); + SetRAX(Gs->tss->tr_ring3+3); +asm { LTR AX} + + +asm { + IMPORT SYS_PROGRESS1,old_stk,new_rip; + + MOV U64 [&old_stk],RSP + + LEA RAX,[R3_CALLBACK] + MOV U64 [&new_rip],RAX + + MOV AX,GDT_ZERO_DS_RING3_SEL+3 + MOV DS,AX + MOV ES,AX + + PUSH U32 GDT_ZERO_DS_RING3_SEL+3 //STKSEG + PUSH U64 [&old_stk] + PUSH U32 0 //FLAGS--interrupts off + PUSH U32 GDT_CS64_RING3_SEL+3 + LEA RAX,[R3_START] + PUSH RAX + IRET + +R3_START: + INC U64 [SYS_PROGRESS1] + CLI //This causes general protection fault #13 + +R3_CALLBACK: + MOV AX,GDT_ZERO_DS_SEL + MOV DS,AX + MOV ES,AX + } + + TSSBusy(Gs->tss->tr,OFF); + SetRAX(Gs->tss->tr); +asm { LTR AX} + + IntEntrySet(0x0D,old_pf,0,IDTET_IRQ,0); + Sti; + "Progress1 After :%X\n",progress1; +} + + +Ring3Demo; diff --git a/SparrowOS/Demo/Lectures/ScreenMemory.CPP b/SparrowOS/Demo/Lectures/ScreenMemory.CPP new file mode 100644 index 0000000..7914284 --- /dev/null +++ b/SparrowOS/Demo/Lectures/ScreenMemory.CPP @@ -0,0 +1,55 @@ +//This just shows how screen memory works. +//See $LK,"::/SparrowOS/Demo/Lectures/MiniGrLib.CPP.Z","FI:::/SparrowOS/Demo/Lectures/MiniGrLib.CPP.Z"$ + +U0 PlotXY(I64 x,I64 y) +{ + //Screen bits are reversed + LBts(VGA_GRAPHIC_MEM_BASE,y*GR_WIDTH+x^7); +} + + + +U0 Main() +{ + I64 i; + Bool old_preempt=Preempt(OFF); + +//This makes all 4 color planes active. + OutU8(VGA_SC_INDEX,VGA_MAP_MASK); + OutU8(VGA_SC_DATA,WHITE); + MemSet(VGA_GRAPHIC_MEM_BASE,0,GR_WIDTH*GR_HEIGHT/8); + + OutU8(VGA_SC_INDEX,VGA_MAP_MASK); + OutU8(VGA_SC_DATA,RED); + for (i=0;i<200;i++) + PlotXY(i,i); + + OutU8(VGA_SC_INDEX,VGA_MAP_MASK); + OutU8(VGA_SC_DATA,GREEN); + for (i=0;i<200;i++) + PlotXY(100,i); + + OutU8(VGA_SC_INDEX,VGA_MAP_MASK); + OutU8(VGA_SC_DATA,BLUE); + for (i=0;i<200;i++) + PlotXY(200-i,i); +/* +If you want a mixed color select multiple planes +but you have to be sure the unselected planes +are zero, so select them and make them zero. +You can't do reads on VGA memory, by the way. +That means no read-modify-writes, too. +*/ + BusyWait(4000000); + + Preempt(old_preempt); + +//SparrowOS has a 4 plane memory duplicate of the screen, $LK,"gr_screen_image","MN:gr_screen_image"$, +//and only writes actual changes. See $LK,"GrUpdateVGAGraphics","MN:GrUpdateVGAGraphics"$(). +// will flush screen VGA cache. + VGAFlush; +} + +Main; + +//See $LK,"::/SparrowOS/Demo/Lectures/GraphicsCPULoad.CPP.Z","FI:::/SparrowOS/Demo/Lectures/GraphicsCPULoad.CPP.Z"$. diff --git a/SparrowOS/Demo/Lectures/Spinning.CPP b/SparrowOS/Demo/Lectures/Spinning.CPP new file mode 100644 index 0000000..402ddb6 --- /dev/null +++ b/SparrowOS/Demo/Lectures/Spinning.CPP @@ -0,0 +1,109 @@ +//This task lets you hear how busy the CPU is. +U0 LoadTask(I64) +{ + I64 i,j=100; +//Preemption is ctrlled on a per task basis. +//Preemption is OFF by default on new tasks. +//It is turned on for user terminal tasks. + Preempt(ON); + while (TRUE) { + for (i=0;i<10000;i++) + InU8(0x21); //Roughly 1 microsecond on all PC's + Snd(j); + j+=20; + if (j>1000) j=100; + } +} + + +U0 SpinningPreempt() +{ + I64 i; + "Spinning with preemption....\n"; + for (i=0;i<3000000;i++) + InU8(0x21); //This is a sample hardware stat read +} + +U0 SpinningNoPreempt() +{ + I64 i; + Bool old_preempt; + "Spinning with no preemption...\n"; + +//Put on screen before it starts. Text lags by one refresh +//and we might catch it in the middle of an update. + WinMgrSync; + WinMgrSync; + WinMgrSync; + + old_preempt=Preempt(OFF); + for (i=0;i<3000000;i++) + InU8(0x21); + Preempt(old_preempt); +} + +U0 SpinningNoInterrupts() +{ + I64 i; +//Interrupts are ctrlled on a per task basis. + "Spinning with no interrupts...\n"; + WinMgrSync; + WinMgrSync; + WinMgrSync; + Cli; + for (i=0;i<3000000;i++) + InU8(0x21); + Sti; +} + + +U0 CooperativeMultitaskingPreempt() +{ + F64 timeout=tNP+3.0; + + "Cooperative multitasking with preemption...\n"; + while (tNPprime=i; + p++; + } + Free(s); + + *_sqrt_primes=sqrt_primes; + *_cbrt_primes=cbrt_primes; + return primes; +} + +PowPrime *PowPrimesNew(I64 N,I64 sqrt_primes,Prime *primes,I64 *_num_powprimes) +{ + I64 i,j,k,sf,num_powprimes=0; + Prime *p; + PowPrime *powprimes,*pp; + + p=primes; + for (i=0;iprime)); + p++; + } + + p=primes; + pp=powprimes=MAlloc(num_powprimes*sizeof(PowPrime)); + for (i=0;ipp=pp; + j=p->prime; + k=1; + sf=1; + while (jn=j; + pp->sumfact=sf; + j*=p->prime; + pp++; + p->pow_cnt++; + } + p++; + } + *_num_powprimes=num_powprimes; + return powprimes; +} + +I64 SumFact(I64 n,I64 sqrt_primes,Prime *p) +{ + I64 i,k,sf=1; + PowPrime *pp; + if (n<2) + return 1; + for (i=0;iprime)) { + n/=p->prime; + k++; + } + if (k) { + pp=p->pp+(k-1); + sf*=pp->sumfact; + if (n==1) + return sf; + } + p++; + } + return sf*(1+n); //Prime +} + +Bool TestSumFact(I64 n,I64 target_sf,I64 sqrt_primes,I64 cbrt_primes,Prime *p) +{ + I64 i=0,k,b,x1,x2; + PowPrime *pp; + F64 disc; + if (n<2) + return FALSE; + while (i++prime)) { + n/=p->prime; + k++; + } + if (k) { + pp=p->pp+(k-1); + if (ModU64(&target_sf,pp->sumfact)) + return FALSE; + if (n==1) { + if (target_sf==1) + return TRUE; + else + return FALSE; + } + } + p++; + } + /* At this point we have three possible cases to test + 1)n==p1 ->sf==(1+p1) ? + 2)n==p1*p1 ->sf==(1+p1+p1^2) ? + 3)n==p1*p2 ->sf==(p1+1)*(p2+1) ? + + */ + if (1+n==target_sf) { + while (i++prime)) { + n/=p->prime; + k++; + } + if (k) { + pp=p->pp+(k-1); + if (ModU64(&target_sf,pp->sumfact)) + return FALSE; + if (n==1) { + if (target_sf==1) + return TRUE; + else + return FALSE; + } + } + p++; + } + if (1+n==target_sf) + return TRUE; + else + return FALSE; + } + + k=Sqrt(n); + if (k*k==n) { + if (1+k+n==target_sf) + return TRUE; + else + return FALSE; + } else { +// n==p1*p2 -> sf==(p1+1)*(p2+1) ? where p1!=1 && p2!=1 +// if p1==1 || p2==1, it is FALSE because we checked a single prime above. + +// sf==(p1+1)*(n/p1+1) +// sf==n+p1+n/p1+1 +// sf*p1==n*p1+p1^2+n+p1 +// p1^2+(n+1-sf)*p1+n=0 +// x=(-b+/-sqrt(b^2-4ac))/2a +// a=1 +// x=(-b+/-sqrt(b^2-4c))/2 +// b=n+1-sf;c=n + b=n+1-target_sf; +// x=(-b+/-sqrt(b^2-4n))/2 + disc=b*b-4*n; + if (disc<0) + return FALSE; + x1=(-b-Sqrt(disc))/2; + if (x1<=1) + return FALSE; + x2=n/x1; + if (x2>1 && x1*x2==n) + return TRUE; + else + return FALSE; + } +} + +U0 PutFactors(I64 n) //For debugging +{ + I64 i,k,sqrt=Ceil(Sqrt(n)); + for (i=2;i<=sqrt;i++) { + k=0; + while (!(n%i)) { + k++; + n/=i; + } + if (k) { + "%d",i; + if (k>1) + "^%d",k; + '' CH_SPACE; + } + } + if (n!=1) + "%d ",n; +} + +class RangeJob +{ + CDoc *doc; + I64 lo,hi,N,sqrt_primes,cbrt_primes; + Prime *primes; + CMPCmd *cmd; +} rj[mp_cnt]; + +I64 TestCoreSubRange(RangeJob *r) +{ + I64 i,j,m,n,n2,sf,result=0,range=r->hi-r->lo, + *sumfacts=MAlloc(range*sizeof(I64)), + *residue =MAlloc(range*sizeof(I64)); + U16 *pow_cnt =MAlloc(range*sizeof(U16)); + Prime *p=r->primes; + PowPrime *pp; + MemSetU64(sumfacts,1,range); + for (n=r->lo;nhi;n++) + residue[n-r->lo]=n; + for (j=0;jsqrt_primes;j++) { + MemSet(pow_cnt,0,range*sizeof(U16)); + m=1; + for (i=0;ipow_cnt;i++) { + m*=p->prime; + n=m-r->lo%m; + while (npp[i-1]; + sumfacts[n]*=pp->sumfact; + residue [n]/=pp->n; + } + p++; + } + + for (n=0;nlo;nhi;n++) { + sf=sumfacts[n-r->lo]; + n2=sf-n-1; + if (nN) { + if (r->lo<=n2hi && sumfacts[n2-r->lo]-n2-1==n || + TestSumFact(n2,sf,r->sqrt_primes,r->cbrt_primes,r->primes)) { + DocPrintF(r->doc,"%u:%u\n",n,sf-n-1); + result++; + } + } + } + Free(pow_cnt); + Free(residue); + Free(sumfacts); + return result; +} + +#define CORE_SUB_RANGE 0x1000 + +I64 TestCoreRange(RangeJob *r) +{ + I64 i,result=0; + RangeJob rj; + MemCpy(&rj,r,sizeof(RangeJob)); + for (i=r->lo;ihi;i+=CORE_SUB_RANGE) { + rj.lo=i; + rj.hi=i+CORE_SUB_RANGE; + if (rj.hi>r->hi) + rj.hi=r->hi; + result+=TestCoreSubRange(&rj); + } + return result; +} + +I64 MagicPairs(I64 N) +{ + F64 t0=tP(Fs); + I64 result; + I64 sqrt_primes,cbrt_primes,num_powprimes, + i,k,n=(N-1)/mp_cnt+1; + Prime *primes=PrimesNew(N,&sqrt_primes,&cbrt_primes); + PowPrime *powprimes=PowPrimesNew(N,sqrt_primes,primes,&num_powprimes); + "N:%u SqrtPrimes:%u CbrtPrimes:%u PowersOfPrimes:%u\n", + N,sqrt_primes,cbrt_primes,num_powprimes; + + k=2; + for (i=0;iN) k=N; + rj[i].hi=k; + rj[i].N=N; + rj[i].sqrt_primes=sqrt_primes; + rj[i].cbrt_primes=cbrt_primes; + rj[i].primes=primes; + if (i==mp_cnt-1) + result=TestCoreRange(&rj[i]); + else + rj[i].cmd=MPJob(&TestCoreRange,&rj[i],mp_cnt-i-1,0); + } + if (mp_cnt>1) + for (i=0;i>8,0,0); + PlotWinStr(task,"Solve maze starting at right click.",ATTR>>8,0,1); +} + +//Four directions: +// 0=Up,1=right,2=down,3=left +I64 dir_x[4]={ 0,+1, 0,-1}, + dir_y[4]={+1, 0,-1, 0}; + +U0 SolveMaze(I64 x,I64 y) +{ + I64 dir=0; + stk_ptr=0; + stk_x[stk_ptr]=x; + stk_y[stk_ptr]=y; + stk_dir[stk_ptr++]=dir; + while (TRUE) { + if (!(0<=xwin_width,TEXT_COLS)) || + !(0<=ywin_height,TEXT_ROWS)) ) { + Beep;Beep; + break; + } + if (!text[y][x].u8[0]) + text[y][x]='.'+ATTR; + x+=dir_x[dir]; + y+=dir_y[dir]; +//u8.[0] is the ASCII + if (text[y][x].u8[0]) { + x-=dir_x[dir]; + y-=dir_y[dir]; + if (++dir==4) { + if (--stk_ptr<0) return; + x=stk_x[stk_ptr]; + y=stk_y[stk_ptr]; + dir=stk_dir[stk_ptr]; + } + } else { + dir=0; + stk_x[stk_ptr]=x; + stk_y[stk_ptr]=y; + stk_dir[stk_ptr++]=dir; + if (stk_ptr==STK_SIZE) return; + Sleep(100); + if (ScanChar) + ThrowBreak; + } + } +} + +U0 Maze() +{ + I64 ch,x,y; + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WinMax; + WordStat; + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + Fs->win_inhibit=WIF_ALL-WIF_BORDER; + +try + do { + MemSet(text,0,sizeof(text)); + while (!(ch=ScanChar)) { +//Input Ptr (mouse) text x,y coordinates. + x=iptx-Fs->win_left-Fs->win_scroll_x/FONT_WIDTH; + y=ipty-Fs->win_top-Fs->win_scroll_y/FONT_HEIGHT; + if (ip_lb&&!win_grab_scroll) + text[y][x]=CH_SPACE+ATTRF_INVERT+ATTR; + if (ip_rb&&!win_grab_scroll) { + text[y][x]='*'+ATTR; + SolveMaze(x,y); + ch=GetChar; + break; + } + WinMgrSync; + } + } while (ch!=CH_SHIFT_ESC && ch!=CH_ESC); +catch + CatchAll; + SettingsPop; +} + +Maze; diff --git a/SparrowOS/Demo/MsgLoop.CPP b/SparrowOS/Demo/MsgLoop.CPP new file mode 100644 index 0000000..cc8586c --- /dev/null +++ b/SparrowOS/Demo/MsgLoop.CPP @@ -0,0 +1,20 @@ +U0 MsgLoop() +{ + I64 p1,p2,msg_code; + "Use $LK,"these","MN:MSG_CMD"$ defines in your programs instead of hardcoded nums.\n" + " to Exit\n"; + + //We don't want the mouse buttons to reposition the cursor, + //so we inhibit the window mgr from processing them. + + Fs->win_inhibit=WIF_IP_L|WIF_IP_R; + + do { + msg_code=GetMsg(&p1,&p2,~(1<win_inhibit=0; +} + +MsgLoop; diff --git a/SparrowOS/Demo/MultiCore/Clouds.CPP b/SparrowOS/Demo/MultiCore/Clouds.CPP new file mode 100644 index 0000000..480ef8c --- /dev/null +++ b/SparrowOS/Demo/MultiCore/Clouds.CPP @@ -0,0 +1,194 @@ +//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + +#define NUM_CLOUDS 16 +#define SKY_LINES 30 +#define CLOUD_PTS 512 +#define CLOUD_PENS 8 +#define CLOUD_PEN_PTS 16 +#define CLOUD_PEN_SIZE 16 + +class Cloud +{ + I64 i,x,y,w,h,dx,dy; + I64 color; + I64 px[CLOUD_PTS],py[CLOUD_PTS],pc[CLOUD_PTS]; +} clouds[NUM_CLOUDS]; + +class CloudPen +{ + CDC *img; + I64 px[CLOUD_PEN_PTS],py[CLOUD_PEN_PTS]; +} cloud_pens[CLOUD_PENS]; + +CDC *cloud_pen; + +I64 mp_done_flags; +U0 MPDrawClouds(CTask *task) +{ + Cloud *c; + CDC *dc=DCAlias(gr_dc,task); + I64 i,j,k,xx,yy, + lo= Gs->num *CLOUD_PTS/mp_cnt, + hi=(Gs->num+1)*CLOUD_PTS/mp_cnt; + + for (j=0,c=clouds;jpc[i]; + if (kcolor) + dc->color=ROP_MONO+LTGRAY; + else + dc->color=ROP_MONO+WHITE; + xx=c->x.i32[1]+c->px[i]; + yy=c->y.i32[1]+c->py[i]; + + k=RandU16&31-16; + if (k==-16) + k=-c->px[i]; + c->px[i]+=SignI64(k); + + k=RandU16&31-16; + if (k==-16) + k=-c->py[i]; + c->py[i]+=SignI64(k); + + GrBlot(dc,xx,yy,cloud_pens[i&(CLOUD_PENS-1)].img); + } + DCDel(dc); + LBts(&mp_done_flags,Gs->num); +} + +U0 DrawIt(CTask *task,CDC *) +{ + I64 i; + mp_done_flags=0; + for (i=1;iimg); + cp->img->color=COLOR_MONO; + for (j=0;jimg,cp->px[j],cp->py[j]); + cp->px[j]=LimitI64(cp->px[j]+RandU16%3-1,0,CLOUD_PEN_SIZE-1); + cp->py[j]=LimitI64(cp->py[j]+RandU16%3-1,0,CLOUD_PEN_SIZE-1); + } + } + + for (i=0,c=clouds;ix+=c->dx; + c->y=LimitI64(c->y+c->dy,0,0.7*(SKY_LINES*FONT_HEIGHT)<<32); + c->color=MAX_U16*c->y.i32[1]/(0.8*(SKY_LINES*FONT_HEIGHT)); + } + + Sleep(20); + } +} + +#define SAMPLES 6 +U0 Init() +{ + Cloud *c=clouds; + CloudPen *cp=cloud_pens; + I64 i,j,k,l, + w=Fs->win_pixel_width, + h=SKY_LINES*FONT_HEIGHT; + + for (i=0;ix=ToI64(w/2+Rand*w/2-w/4)<<32; + c->y=ToI64(h/2+Rand*h/2-h/4)<<32; + c->dx=RandI32; + c->dy=RandI32; + c->w=100; + c->h=50; + c->color=RandU16; + for (l=0;lpx[l]=(k*c->w/MAX_I16)/SAMPLES; + + k=0; + for (j=0;jpy[l]=(k*c->h/MAX_I16)/SAMPLES; + + c->pc[l]=RandU16; + } + } + + for (i=0;iimg=DCNew(DCT_COLOR8,CLOUD_PEN_SIZE,CLOUD_PEN_SIZE); + for (j=0;jpx[j]=RandU16%CLOUD_PEN_SIZE; + cp->py[j]=RandU16%CLOUD_PEN_SIZE; + } + } +} + +U0 CleanUp() +{ + I64 i; + CloudPen *cp=cloud_pens; + for (i=0;iimg); +} + +U0 SongTask(I64) +{ //Song by the Holy Spirit +//This specifies a call-back routine +//to be called when the task dies. + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + while (TRUE) { + Play("W13qBetDA2G3qD2sG!3E2G!3EetCEDqFEeDC"); + Play("qBetDA2G3qD2sG!3E2G!3EetCEDqFEeDC"); + Play("C!GqDeADsDCDCqGEetDAD!2sG3D2G!!3D"); + Play("eC!GqDeADsDCDCqGEetDAD!2sG3D2G!!3D"); + } +} + +U0 CloudScene() +{ + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + try { + Fs->song_task=Spawn(&SongTask,NULL,"Song",Fs); + DocCursor; + WinMax; + WordStat; + Init; + Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",Fs); + + "$$CL$$$$BG,LTCYAN$$"; NewLine(SKY_LINES); + "$$BG,YELLOW$$"; + NewLine(5); + PutBibleVerse("Exodus,14:19",7); + + Preempt(OFF); + Fs->draw_it=&DrawIt; + GetChar; + WinMgrSync; + + "$$BG$$\n"; + } catch + CatchAll; + SettingsPop; + CleanUp; +} + +//This is so I can use this file stand alone +//or as a component of a program. +#if IncludeDepth<2 +CloudScene; +#endif diff --git a/SparrowOS/Demo/MultiCore/Interrupts.CPP b/SparrowOS/Demo/MultiCore/Interrupts.CPP new file mode 100644 index 0000000..95445e1 --- /dev/null +++ b/SparrowOS/Demo/MultiCore/Interrupts.CPP @@ -0,0 +1,24 @@ +interrupt U0 BeepOn() +{ + IntEOI; //signal end of interrupt + Snd(100); +} + +interrupt U0 BeepOff() +{ + IntEOI; + Snd(0); +} + +U0 IntTest() +{ + //Modify interrupt descriptor table + //for CPU #1. + IntEntrySet(I_USER,&BeepOn,1,IDTET_TRAP); + IntEntrySet(I_USER+1,&BeepOff,1,IDTET_TRAP); + MPInt(I_USER,1); + Sleep(1000); + MPInt(I_USER+1,1); +} + +IntTest; diff --git a/SparrowOS/Demo/MultiCore/Layers3DJob.CPP b/SparrowOS/Demo/MultiCore/Layers3DJob.CPP new file mode 100644 index 0000000000000000000000000000000000000000..ab655f72bab075bcbf65460e404fff75d792959c GIT binary patch literal 2391 zcmd<$;^I;X4$x7uF|$u7ng!UW}1RVZh;=iXoxME3Pq_UrA2wxTnY+cWwt5F zx^_h%E{KtwpOar?>*V9;>$ShXKELO@(sl3J7p*2krw;9eA*S`w6B z;+t3kvZBZkY#hiL6}CnO1|YLRoJwR)T25kmagD8uvs-*fkfUF)n}3k6V~D4}AK1Gf zFbfIMQLqvGiVj~z|8R+#TYT|qkCi-J;< zA(~7Lbj(e440H?)40KElz|KUHH8<5U1sQ7!Rsfa-IRs*wdyuQEAH+D*DN~lbKiy(h7D7 zYJx3?T4M{h5Tp>z2StdGBR6HaIJ;%$ zRA_K3C_vL4Bz+*#U8sSAPhw?iQL(X$SALQPB&E5TnJBz8vNh0o0U}-+gILD4;KBrI z45T208iU<%1%)C*TlXT*l+?TuP=iUw5Dg1zEeSgHXnWkF&=`6Uq$A)ObH90C=Mf{MNbiE=3@fP@hSfCM38 za085VUVzFDxG2N`Bb}EZQLq81VejVX6AUh6(Ssi<0oJ0g9{{Q`OEOXwKn00HewqS^ zU7nejl3%WnSgeqeSdyraS(2KoP?E2Zm7k;s*5(@kN(^eS0!hcMSO-+GfaSt7^L*2b zf-CcqLE)?b4Mq(`6xS)#)F{A2AW2RWtXV-JGBY(N1zcMwD7-Y%wl&gvtZxXZs1y`l z7;!>HjKQf*LE)vbE}9Z!PN)b(Ni8TnfD0C|q42blUjTBRTTyB%EV>|UP{`MEaUmso zYc2*R1_lO31_-#rz`(%Fz`(%7BmxyxW?*3W^8f#T7_G;^z`(-5zyPBa7#J9Y7#J8} zv@l3F2(vLTFueKy|365;i-CawWS}Pl1H=3O|Np=I|NsBT|NsBL`v3nwNSuj9f}eqb z0fZHy=D+=`Y8iC!!+r@~1_lNYwuL(A=->C|Ucolor=(mp.i+i)/10&15; + GrEllipse(dc,GR_WIDTH/2,GR_HEIGHT/2, + GR_WIDTH/4*(Sin(t1)+1.0),GR_HEIGHT/4*(Sin(t1)+1.0),t1*2.0); + } + while (!mp.refresh_done) + Yield; +} + +U0 MPDrawIt() +{ + I64 i; + F64 t0=tNP,t1; + CDC *dc=DCAlias; + dc->win_task=mp.win_task; + + while (!mp.refresh_start && !mp.app_done) + Yield; + if (mp.app_done) + goto mp_done; + mp.refresh_start=FALSE; + DCFill; + for (i=32;i<64;i++) { + t1=t0+i*2*ã/64; + dc->color=(mp.i+i)/10&15; + GrEllipse(dc,GR_WIDTH/2,GR_HEIGHT/2, + GR_WIDTH/4*(Sin(t1)+1.0),GR_HEIGHT/4*(Sin(t1)+1.0),t1*2.0); + } +mp_done: + DCDel(dc); + mp.refresh_done=TRUE; +} + +U0 MPTask(I64) +{ + while (!mp.app_done) + MPDrawIt; + mp.app_done_ack=TRUE; + DCFill; +} + + +U0 LayersSpawn() +{ + if (mp_cnt<2) throw(EXCEPT_MULTICORE); + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WinMax; + DocClear; + Fs->draw_it=&DrawIt; + WinBorder; + + mp.i=0; + mp.app_done=FALSE; + mp.win_task=Fs; + MPSpawn(&MPTask); + GetChar; + mp.app_done=TRUE; + while (!mp.app_done_ack) + Yield; + SettingsPop; +} + +LayersSpawn; diff --git a/SparrowOS/Demo/MultiCore/LoadTest.CPP b/SparrowOS/Demo/MultiCore/LoadTest.CPP new file mode 100644 index 0000000..7178c6d --- /dev/null +++ b/SparrowOS/Demo/MultiCore/LoadTest.CPP @@ -0,0 +1,57 @@ +I64 load_test_done; + +U0 Job1(I64) +{ //Compile Compiler + TaskInitExt; //Enable file access + Preempt(ON); //Off by default + Silent(ON); + while (!load_test_done) { + Cd("::/SparrowOS/Compiler"); + Cmp("Compiler"); + } + lock {load_test_done--;} +} + +U0 Job2(I64) +{ //Log a file + TaskInitExt; //Enable file access + Preempt(ON); //Off by default + while (!load_test_done) { + AdamLog("%F","::/SparrowOS/Demo/MultiCore/LoadTest.CPP.Z"); + Yield; + } + lock {load_test_done--;} +} + +U0 Job3(I64) +{ //Log a file + TaskInitExt; //Enable file access + Preempt(ON); //Off by default + while (!load_test_done) { + Cd("::/SparrowOS/Compiler"); + AdamLog("%F","Compiler.PRJ.Z"); + Yield; + } + lock {load_test_done--;} +} + +U0 Main() +{ + load_test_done=0; + "Running MultiCore Test...\n"; + MPSpawn(&Job1); + MPSpawn(&Job2); + MPSpawn(&Job1); + MPSpawn(&Job3); + Spawn(&Job1); + Spawn(&Job2); + Spawn(&Job1); + Spawn(&Job3); + PressAKey; + load_test_done=8; +//We don't want to yank code from under MP cores. + while (load_test_done) + Yield; +} + +Main; diff --git a/SparrowOS/Demo/MultiCore/Lock.CPP b/SparrowOS/Demo/MultiCore/Lock.CPP new file mode 100644 index 0000000..22c7a20 --- /dev/null +++ b/SparrowOS/Demo/MultiCore/Lock.CPP @@ -0,0 +1,64 @@ +/* + lock{} is a compiler statement + which places asm LOCK instruction + prefixes on code. Only use it on + read-modify-write statements. + It will generate invalid instructions + if you misuse it and it will crash. + $LK,"U","MN:U"$() to see what code was generated. +*/ + +#define CNT 0x1000000 + +I64 glbl; + + +U0 MPUnlockedInc(I64) +{ + I64 i; + for (i=0;inum/my_mp_cnt, + hi=mp_n*(Gs->num+1)/my_mp_cnt, + result=0,i; + for (i=lo;iwin_pixel_width, + v=Fs->win_pixel_height; + F64 t1,t2,results[NUM_TESTS]; + CDC *dc=DCAlias; + + for (i=0,n=10;icolor=BLUE; + for (i=0;icolor=RED; + dc->pen_width=2; + GrLine3(dc,i*h/(NUM_TESTS-1),v-results[i ]/MAX_PERCENT*v,0, + (i+1)*h/(NUM_TESTS-1),v-results[i+1]/MAX_PERCENT*v,0); + dc->color=GREEN; + GrPrintF(dc,i*h/(NUM_TESTS-1),v-FONT_HEIGHT,"10e%d",i+1); + GrLine(dc,i*h/(NUM_TESTS-1),0, + i*h/(NUM_TESTS-1),v); + } + PressAKey; + + DCFill; + DCDel(dc); +} + +MPAdd; diff --git a/SparrowOS/Demo/MultiCore/MPPrintF.CPP b/SparrowOS/Demo/MultiCore/MPPrintF.CPP new file mode 100644 index 0000000..996c875 --- /dev/null +++ b/SparrowOS/Demo/MultiCore/MPPrintF.CPP @@ -0,0 +1,18 @@ +U0 Job(CDoc *doc) +{ + I64 i; + for (i=0;i<10;i++) + DocPrintF(doc,"$$FG,%d$$CPU%d ",Gs->num,Gs->num); +} + + +U0 MPPrintFDemo() +{ + I64 i; + for (i=0;i<1000;i++) + MPJob(&Job,DocCur,1+i%(mp_cnt-1)); + Sleep(1000); + "$$FG$$\n"; +} + +MPPrintFDemo; diff --git a/SparrowOS/Demo/MultiCore/Noise.CPP b/SparrowOS/Demo/MultiCore/Noise.CPP new file mode 100644 index 0000000..a3397d3 --- /dev/null +++ b/SparrowOS/Demo/MultiCore/Noise.CPP @@ -0,0 +1,63 @@ +Bool noise_done; +I64 done_ack; +I64 cnt; + +U0 DrawNoise(CTask *task) +{ + I64 i, + h=task->win_pixel_width, + v=task->win_pixel_height; + CDC *dc=DCAlias(gr_dc2,task); + for (i=0;icolor=RandU16&15; + GrPlot(dc,RandU16%h,RandU16%v); + } + dc->color=WHITE; + GrRect(dc,0,Gs->num*FONT_HEIGHT,12*FONT_WIDTH,FONT_HEIGHT); + dc->color=BLACK; + GrPrintF(dc,0,Gs->num*FONT_HEIGHT,"Cnt:%08X",cnt); + DCDel(dc); +} + +U0 MPTask(CTask *task) +{ + while (!noise_done) { + DrawNoise(task); + WinMgrSync; + } + LBts(&done_ack,Gs->num); +} + +U0 NoiseDemo() +{ + I64 i; + F64 t0; + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + WinMax; + WordStat; + cnt=0x1000; + + noise_done=FALSE; + for (i=1;i1.0/80.0) + cnt-=0x100; + else + cnt+=0x100; + WinMgrSync; + } + + done_ack=1; + noise_done=TRUE; + while (done_ack!=1<num,len); + while (len--) + DocPrintF(doc,"%C",*a++); //%C is toupper char + DocPutS(doc,"\n"); + DocUnlock(doc); +} + +U0 MPPalindrome(I64 dummy=0) +{ + nounusedwarn dummy; + U8 *src=buf+BORDER_CHARS+size*Gs->num/mp_cnt, + *f,*b; + I64 len,best=0, + my_size=(size+mp_cnt-1)/mp_cnt; + while (my_size--) { + +//Odd + f=src+1; + b=src-1; + while (*f==*b) { + f++; + b--; + } + len=f-b+1-2; + if (len>best) { + best=len; + PDAnswer(src,len); + } + +//Even + f=src+1; + b=src; + while (*f==*b) { + f++; + b--; + } + len=f-b+1-2; + if (len>best) { + best=len; + PDAnswer(src,len); + } + + src++; + } + LBts(&mp_done_flags,Gs->num); +} + +U0 Palindrome(U8 *filename) +{ + I64 i; + F64 t0=tNP; + + buf=FileRead(filename,&size); + PDNormalize; + + doc=DocCur; + mp_done_flags=0; + for (i=1;ihi2) lo2=hi2; + for (j=2;j<=l;j++) { + if (!Bt(master_bitmap,j)) { + if (j>=lo) + k=j+j; + else { + k=lo-lo%j; + if (k1) { + do { + less=base; + greater=base+num; + pivot=base[num/2]; + while (less1); + } +} + +U0 MPSort(I64 dummy=0) +{ + nounusedwarn dummy; + QSortU32(b[Gs->num],bn[Gs->num]); + LBts(&mp_done_flags,Gs->num); +} + +U0 MPRadixSortDemo(I64 dummy=0) +{ + nounusedwarn dummy; + I64 i,j,k1,k2; + F64 t0; + a1=MAlloc(NUM*sizeof(I32)); + for (i=0;i>k1+k2; //This is a preliminary radix sort. + b[j][bn[j]++]=a1[i]; + } + mp_done_flags=0; + for (i=1;inum]=TRUE; + return tNP-t0; +} + +F64 Sort2(I64 n) +{ + I64 i1=0,i2=n/2,i3=0; + F64 t0=tNP; + MemSet(&mp,0,sizeof(MPCtrl)); + MemCpy(&a2[n/2],&a1[n/2],n/2*sizeof(I32)); + MPJob(&Sort1,n/2,1); + QSort(&a2[n/2],n/2,sizeof(I32),&IntCompare); + while (!mp.done[1]) + Yield; + while (i30) { + for (i=0;i1) { + Routine2(argv[1]); + if (argc>2) + Routine3(argv[2]); + } + } else + PrintF("Pass string parameters for args 1 and 2.\n"); + return argc; +} + diff --git a/SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.HPP b/SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.HPP new file mode 100644 index 0000000..b2ac6da --- /dev/null +++ b/SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.HPP @@ -0,0 +1 @@ +extern I64 ModuleDemo(...); diff --git a/SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.PRJ b/SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.PRJ new file mode 100644 index 0000000..8ca8c62 --- /dev/null +++ b/SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.PRJ @@ -0,0 +1,13 @@ + +// 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/Demo1/ReadMe.TXT b/SparrowOS/Demo/OldSchool/Demo1/ReadMe.TXT new file mode 100644 index 0000000..0286000 --- /dev/null +++ b/SparrowOS/Demo/OldSchool/Demo1/ReadMe.TXT @@ -0,0 +1,11 @@ +1) Do a $LK,"Dir","MN:Dir"$() command + +2) Right-Click on ModuleDemo.PRJ.Z and click $FG,2$COMPILE$FG$. + +3) Right-Click on ModuleDemo.BIN.Z and click $FG,2$LOAD$FG$. + +4) Right-Click on ModuleDemo.HPP.Z and click $FG,2$INCLUDE$FG$. + +5) Type at the command-line: +$ID,2$$FG,2$>ModuleDemo("Param1","Param2"); +$ID,-2$ \ No newline at end of file diff --git a/SparrowOS/Demo/OldSchool/Demo2/MakeFile.CPP b/SparrowOS/Demo/OldSchool/Demo2/MakeFile.CPP new file mode 100644 index 0000000..e05056d --- /dev/null +++ b/SparrowOS/Demo/OldSchool/Demo2/MakeFile.CPP @@ -0,0 +1,24 @@ +Cd("::/SparrowOS/Demo/OldSchool/Demo2");; +Cmp("OD1"); +Cmp("OD2"); +Cmp("ODMain"); +Load("OD1"); +Load("OD2"); +Load("ODMain"); +#include "ObjDemo.HPP.Z" + +ObjDemo("Success"); + +#ifndef BinRep +#include "::/SparrowOS/Adam/BinRep.CPP.Z" +#endif + +PressAKey; +BinRep("OD2"); + +PressAKey; +BinRep("ODMain"); + +PressAKey; +HashRep(Fs->hash_table,HTG_ALL,NULL,"-p-r"); + diff --git a/SparrowOS/Demo/OldSchool/Demo2/OD1.PRJ b/SparrowOS/Demo/OldSchool/Demo2/OD1.PRJ new file mode 100644 index 0000000..fb9cd4c --- /dev/null +++ b/SparrowOS/Demo/OldSchool/Demo2/OD1.PRJ @@ -0,0 +1,12 @@ +// imports all syms from the Adam Task's hash table. +#include "::/SparrowOS/OSMain/StaticAdam.HPP.Z" + +import U0 Routine3(U8 *st); + +U0 Routine1(U8 *st) +{ + PrintF("Routine1:%s\n",st); + Routine3("What the!!!"); +} + + diff --git a/SparrowOS/Demo/OldSchool/Demo2/OD2.PRJ b/SparrowOS/Demo/OldSchool/Demo2/OD2.PRJ new file mode 100644 index 0000000..76920cc --- /dev/null +++ b/SparrowOS/Demo/OldSchool/Demo2/OD2.PRJ @@ -0,0 +1,31 @@ +// imports all syms from the Adam Task's hash table. +#include "::/SparrowOS/OSMain/StaticAdam.HPP.Z" + +asm { +USE64 + IMPORT Beep; +_MY_BEEP:: + ENTER 0 + + PUSH FALSE + PUSH 300 + CALL &Beep + + LEAVE + RET +} + +_extern _MY_BEEP U0 MyBeep(); + +U0 Routine2(U8 *st) +{ + PrintF("Routine2:%s\n",st); + MyBeep(); +} + +PutS("$$BK,1$$Woo-Hoo!$$BK,0$$\n"); +Dir; +PutS("$$BK,1$$Woo-Hoo!$$BK,0$$\n"); + +Routine2("Cool"); + diff --git a/SparrowOS/Demo/OldSchool/Demo2/ODMain.PRJ b/SparrowOS/Demo/OldSchool/Demo2/ODMain.PRJ new file mode 100644 index 0000000..a6303aa --- /dev/null +++ b/SparrowOS/Demo/OldSchool/Demo2/ODMain.PRJ @@ -0,0 +1,37 @@ +// 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" + +import U0 Routine1(U8 *st); +import U0 Routine2(U8 *st); +_import _MY_BEEP U0 MyBeep(); + +U0 Routine3(U8 *st) +{ + PrintF("Routine3:%s\n",st); +} + + +//Any routine with var parameters +//automatically has vars argc and argv[] +//whether it is main or not. +I64 ObjDemo(...) +{ + I64 i; + MyBeep(); + if (argc>0) { + for (i=0;i1) { + Routine2(argv[1]); + if (argc>2) + Routine3(argv[2]); + } + } else + PutS("Pass string parameters for args 1 and 2.\n"); + return argc; +} + diff --git a/SparrowOS/Demo/OldSchool/Demo2/ObjDemo.HPP b/SparrowOS/Demo/OldSchool/Demo2/ObjDemo.HPP new file mode 100644 index 0000000..adf75bd --- /dev/null +++ b/SparrowOS/Demo/OldSchool/Demo2/ObjDemo.HPP @@ -0,0 +1,11 @@ +//This file ties SYMIC EXPORTS +//to functions or global vars. + +extern I64 ObjDemo(...); + +//Uncomment these if you wish +//to call them at the command line. + +//extern U0 Routine1(U8 *st); +//extern U0 Routine2(U8 *st); +//extern U0 Routine3(U8 *st); diff --git a/SparrowOS/Demo/OldSchool/Demo2/ReadMe.TXT b/SparrowOS/Demo/OldSchool/Demo2/ReadMe.TXT new file mode 100644 index 0000000..047dc70 --- /dev/null +++ b/SparrowOS/Demo/OldSchool/Demo2/ReadMe.TXT @@ -0,0 +1,27 @@ +This demonstrates that linking can be done +at $FG,2$LOAD$FG$ time. This is the SparrowOS answer +to $FG,2$OBJ$FG$ files. + +Right-Click $FG,2$MakeFile.CPP.Z$FG$ and click $FG,2$INCLUDE$FG$ or +do the following: + +1) Do a $LK,"Dir","MN:Dir"$() command + +2) Right-Click on OD1.PRJ.Z and click $FG,2$COMPILE$FG$. + Right-Click on OD2.PRJ.Z and click $FG,2$COMPILE$FG$. + Right-Click on ODMain.PRJ.Z and click $FG,2$COMPILE$FG$. + +3) In any order, do the following and ignore warnings. + Right-Click on OD1.BIN.Z and click $FG,2$LOAD$FG$. + Right-Click on ODMain.BIN.Z and click $FG,2$LOAD$FG$. + Right-Click on OD2.BIN.Z and click $FG,2$LOAD$FG$. + +4) Right-Click on ObjDemo.HPP.Z and click $FG,2$INCLUDE$FG$. + +5) Type at the command-line: +$ID,2$$FG,2$>ObjDemo("Param1","Param2"); +$ID,-2$ + + +$FG,2$#include$FG$ the file $LK,"::/SparrowOS/Adam/BinRep.CPP.Z","FI:::/SparrowOS/Adam/BinRep.CPP.Z"$ and +call $LK,"BinRep","MN:BinRep"$() to analyze the $FG,2$.BIN.Z$FG$ files. diff --git a/SparrowOS/Demo/OldSchool/ReadMe.TXT b/SparrowOS/Demo/OldSchool/ReadMe.TXT new file mode 100644 index 0000000..b05004c --- /dev/null +++ b/SparrowOS/Demo/OldSchool/ReadMe.TXT @@ -0,0 +1,11 @@ +$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/ParenWarn.CPP b/SparrowOS/Demo/ParenWarn.CPP new file mode 100644 index 0000000..6f6c922 --- /dev/null +++ b/SparrowOS/Demo/ParenWarn.CPP @@ -0,0 +1,19 @@ +OptOn(OPTf_WARN_PAREN); + + +F64 d,d1=1,d2=1; + +d1=(d2=3.0); + +d1=(d2+3.0); + +d=(d1+d2)+(d1+d2); + +d=(2`3)`2; + +d=2`(3`2); + +d=-d1`(d+d2); + + +OptOff(OPTf_WARN_PAREN); diff --git a/SparrowOS/Demo/PhoneNumWords.CPP b/SparrowOS/Demo/PhoneNumWords.CPP new file mode 100644 index 0000000..b2d5360 --- /dev/null +++ b/SparrowOS/Demo/PhoneNumWords.CPP @@ -0,0 +1,64 @@ +U8 char_map[26]="22233344455566677778889999"; + + +/* +Fmt of word list entry: + U8 WSD_WORD_CHAR + U8 word[] with terminating zero + I16 block; //definition offset in ::/SparrowOS/Adam/WordStat/WSDefs.DAT +*/ +U0 PhoneNumWords(U8 *num) +{ + U8 ch,*_num=StrNew(num),*dst=_num, + *dict=ws_dict_word_list,*st,*src; + while (*num) { + if ('0'<=*num<='9') + *dst++=*num; + num++; + } + *dst=0; + + while (*dict++) { + if (StrLen(dict)>2) { + dst=st=StrNew(dict); + while (ch=ToUpper(*dst)) { + if ('A'<=ch<='Z') + *dst=char_map[ch-'A']; + else + *dst=CH_SPACE; + dst++; + } + *dst=0; + + src=_num; + while (*src) { + if (!StrNCmp(st,src,StrLen(st))) { + ch=*src; + *src=0; + "" _num; + *src=ch; + "$$FG,GREEN$$%s$$FG$$",dict; + "" src+StrLen(st); + NewLine; + } + src++; + } + Free(st); + } + dict+=StrLen(dict)+3; + } + Free(_num); + NewLine; +} + +U0 PNWDemo() +{ + U8 *st; + while ((st=PmtStr("Phone Num:")) && *st) { + PhoneNumWords(st); + Free(st); + } + Free(st); +} + +PNWDemo; diff --git a/SparrowOS/Demo/PrintF.CPP b/SparrowOS/Demo/PrintF.CPP new file mode 100644 index 0000000..9e84a0a --- /dev/null +++ b/SparrowOS/Demo/PrintF.CPP @@ -0,0 +1,33 @@ +//SparrowOS supports standard $LK,"PrintF","MN:PrintF"$() +//codes and extended ones. +//See $LK,"printF codes","FA:::/SparrowOS/Doc/Differences.TXT.Z,PrintF_Codes"$. + +//This file demonstrates $LK,"sub_fmt","FA:::/SparrowOS/Doc/Differences.TXT.Z,sub_fmt"$ codes. + + + +"%10h?d\n",123456789; +"%10h?d\n",12345; + +"%10h3d\n",123456789; +"%10h3d\n",12345; + +"\nWith the 'k' flag:\n"; +"%10kh?d\n",123456789; +"%10kh?d\n",12345; + +"%10kh3d\n",123456789; +"%10kh3d\n",12345; + +"\nWith the ',' flag:\n"; +"%10,kh3d\n",123456789; +"%10,kh3d\n",12345; + +"\nFloating Point:\n"; +"%16h?n\n",.00123456789; +"%16h?n\n",12345.0; + +"%16.2h-6n\n",.00123456789; +"%16.2h-6n\n",12345.0; + + diff --git a/SparrowOS/Demo/Progress.CPP b/SparrowOS/Demo/Progress.CPP new file mode 100644 index 0000000..02afca2 --- /dev/null +++ b/SparrowOS/Demo/Progress.CPP @@ -0,0 +1,36 @@ +/* + $LK,"progress1","MN:progress1"$-$LK,"progress4","MN:progress4"$ are just global vars + shown on the wallpaper. I use them in debugging a lot. + If you set $LK,"progress1_max","MN:progress1_max"$-$LK,"progress4_max","MN:progress4_max"$, + then a bar will display. +*/ + + +U0 Main() +{ + ProgressBarsRst; + StrCpy(progress1_desc,"Progress Demo"); //PROGRESS_DESC_LEN is max + progress1_max=400; + while (progress1++!=progress1_max) + Sleep(10); + progress1_max=0; //hide +} + + +Main; + +"$$FG,LTRED$$Now, from asm... It's handy for debugging.$$FG$$\n" +"$$FG,LTRED$$Watch the progress on the wallpaper.$$FG$$\n"; +PressAKey; + +asm { +_PROGRESS_DEMO:: + MOV RCX,0x80000000 +@@05: MOV U64 [&progress1],RCX + LOOP @@05 + MOV U64 [&progress1],RCX + RET +} + +_extern _PROGRESS_DEMO U0 AsmProgressDemo(); +AsmProgressDemo; diff --git a/SparrowOS/Demo/Prompt.CPP b/SparrowOS/Demo/Prompt.CPP new file mode 100644 index 0000000..376fd41 --- /dev/null +++ b/SparrowOS/Demo/Prompt.CPP @@ -0,0 +1,25 @@ +U0 PromptDemo() +{ + F64 d; + I64 i; + U8 *name; + CDate ltdt; + + "\n\nNow prompting from the cmd line.\n\n" + "$$FG,GREEN$$$$FG$$ keeps default.\n\n"; + + i=PmtI64("Enter int expression(%d):",123); + "Int=%d\n",i; + + d=PmtF64("Enter float expression(%12g):",1.2e3); + "Float=%e\n",d; + + name=PmtStr("Name (%s):","John"); + "Name:%s\n",name; + Free(name); + + ltdt=PmtCDate("Date (%D):",GetCurTimeCDate); + "Date=%D\n",ltdt; +} + +PromptDemo; diff --git a/SparrowOS/Demo/PullDownMenu.CPP b/SparrowOS/Demo/PullDownMenu.CPP new file mode 100644 index 0000000..572a547 --- /dev/null +++ b/SparrowOS/Demo/PullDownMenu.CPP @@ -0,0 +1,89 @@ +//See $LK,"Menus","HI:Menus"$ + +#define M_OPTION1 1 +#define M_OPTION2 2 + +U0 PullDownMenuDemo() +{ + I64 msg_code,p1,p2; + CMenuEntry *tempse; + + MenuPush( + "File {" + " Open(,'O');" + " Save(,'S');" + " Exit(,CH_SHIFT_ESC);" + "}" + "Edit {" + " Cut(,,SC_DELETE|SCF_SHIFT);" + " Paste(,,SC_INS|SCF_SHIFT);" + "}" + "Misc {" + " Beep(,CH_SPACE);" + " Opt1(MSG_CMD,M_OPTION1);" + " Opt2(MSG_CMD,M_OPTION2);" + "}" + "Help {" + " Help(,,0x3B0000003B);" + " About(,,0x23B0000023B);" + "}"); + + "A pull-down menu will appear " + "if you move the mouse to the top " + "of the screen.\n\n"; + + do { + msg_code=GetMsg(&p1,&p2,1<cur_menu,"Misc/Opt1")) + tempse->checked=!tempse->checked; + break; + case M_OPTION2: + "Option # 2\n"; + if (tempse=MenuEntryFind(Fs->cur_menu,"Misc/Opt2")) + tempse->checked=!tempse->checked; + break; + } + break; + } + + } while (msg_code!=MSG_KEY_DOWN||(p1!=CH_SHIFT_ESC && p1!=CH_ESC)); + MenuPop; +} + +PullDownMenuDemo; diff --git a/SparrowOS/Demo/RegistryDemo.CPP b/SparrowOS/Demo/RegistryDemo.CPP new file mode 100644 index 0000000..1f40822 --- /dev/null +++ b/SparrowOS/Demo/RegistryDemo.CPP @@ -0,0 +1,26 @@ +//The HOME/Registry.CPP.Z file is C+ code. +//You can execute a branch of it. The Adam +//branch is executed in the Adam task boot phase. +//Normally, you will place var declarations +//in the branch you make, but since an arthmetic expression +//is valid in C+ you can place simple expressions +//without vars. + +AcctRegSetDftEntry("DemoCompany/Game1","F64 best_score=1.23;\n"); +AcctRegSetDftEntry("DemoCompany/Game1/SimpleVal","1234;\n"); +AcctRegExecuteBranch("DemoCompany/Game1"); + +U0 Game() +{ + I64 i=AcctRegExecuteBranch("DemoCompany/Game1/SimpleVal"); + "High Score:%6.5f\n",best_score; + "Val:%d\n",i; + i++; + best_score=tNP; +//You could combine these into one write by making +//the $$TR$$ and $$ID,2$$, $$ID-2$$, cmds yourself. + AcctRegWriteBranch("DemoCompany/Game1","F64 best_score=%9.5f;\n",best_score); + AcctRegWriteBranch("DemoCompany/Game1/SimpleVal","%d;\n",i); +} + +Game; diff --git a/SparrowOS/Demo/ScreenCodes.CPP b/SparrowOS/Demo/ScreenCodes.CPP new file mode 100644 index 0000000..934acaa --- /dev/null +++ b/SparrowOS/Demo/ScreenCodes.CPP @@ -0,0 +1,25 @@ +//See $LK,"ExtScreenCodes","FA:::/SparrowOS/Adam/Gr/GrScreen.CPP.Z,ExtScreenCodes"$ for the format +//of the U32 you pass to PlotWinU8() + +//See $LK,"::/SparrowOS/Demo/ExtendedChars.CPP.Z","FI:::/SparrowOS/Demo/ExtendedChars.CPP.Z"$ +//and $LK,"::/SparrowOS/Demo/Graphics/FontEd.CPP.Z","FI:::/SparrowOS/Demo/Graphics/FontEd.CPP.Z"$. +//Hold ALT and press a 3 digit decimal number +//or press . + +U0 DrawIt(CTask *task,CDC *) +{ + I64 i; + for (i=0;i<256;i++) + PlotWinU8(task,i+BLACK<<12+WHITE<<8,(i&15)*2,(i/16)*2); +} + +U0 ScreenCodes() +{ + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + DocClear; + Fs->draw_it=&DrawIt; + GetChar(NULL,FALSE); + SettingsPop; +} + +ScreenCodes; diff --git a/SparrowOS/Demo/Shared/TreeDemoJoin.CPP b/SparrowOS/Demo/Shared/TreeDemoJoin.CPP new file mode 100644 index 0000000..2b09894 --- /dev/null +++ b/SparrowOS/Demo/Shared/TreeDemoJoin.CPP @@ -0,0 +1,25 @@ +U0 TreeSub(CDoc *doc,CDirEntry *tempm) +{ + CDirEntry *tempm1; + while (tempm) { + tempm1=tempm->next; + if (tempm->attr & _ATTR_DIR) { + DocPutS(doc,"$$TR,\"\"$$"); + DocPrintF(doc,"$$MA+A,\"%s\",\"Cd(\\\"%s\\\");Dir;\n\"$$\n", + tempm->name,tempm->full_name); + if (tempm->sub) { + DocPutS(doc,"$$ID,+2$$"); + TreeSub(doc,tempm->sub); + DocPutS(doc,"$$ID,-2$$"); + } + } else { + DocPrintF(doc,"$$LK,\"%s\",\"FI:%s\"$$\n", + tempm->name,tempm->full_name); + } + //Note there is also a routine + //to delete an entire CDirEntry tree. + //See $LK,"CDirListDel","MN:CDirListDel"$(). + CDirEntryDel(tempm); + tempm=tempm1; + } +} diff --git a/SparrowOS/Demo/Snd/ASCIIOrgan.CPP b/SparrowOS/Demo/Snd/ASCIIOrgan.CPP new file mode 100644 index 0000000000000000000000000000000000000000..82141af603c678ab94b3a156487f99c0d30e23cf GIT binary patch literal 4180 zcmdPb4=74ZF3C(zRjAA_EmCj{cJ}mC$j-|z&q+;5PgSti)#Ty|HBbl+D9X$$aSJFd zan49A(g?LsNY2pYs^(Hq$V^kvNY1dcb@qr4_V9EIi4P8NbaquxQ&ULJPy~rOIXZiT z#WWQ_>R~!;ZPis&)HS&jz(7gWz$ijNMa9isC&<-B1q$5URa6v|bdocy!OBu|ic`T1 z1qF2Vs>vX|P}NWkwF-DNfbD{+x8|zlf&xyEYgB>*w0(TF144C_Yz*y`bd;1c^OAE) zQ&JUTl&q}ug9{Riit@|-gY_K?3X1i8ON%p;{fp8Q^YnvC^J0{&m2?bMxWJ(X4o$F> z1|+aN%}f+B!Or7SP)N%!Qqah>HL%XKF*dT!)YgUt5L#eoYC^n^F05^AgiFTE1ec7Z z8C1qEwcIB&FBN2TEf<%9f>KOgKv8OOu|jrgWwAm@zCvzdcB(>gUP^IHo)SntF)u}- z0IUKO)H?1#uC9J6DmLIq*L4kcwgU;PsDQMlR%Djw#pEf03{T02M!UX#c&b85ex7=X zLV03di9%{}M!rIRkwS5DVxB^BeoAVwjzV$1LV2n}X>qE8U#O3d0?0}?N1tFtAV`4@SQ6@?;Jg$KjpPhnBMVI}BU7+otwMQ5W=<+7fr68wYp^p?!UVfK z-Zj`6tQMr*K+~FwOJCnFza&+mBqLQpHANva56mhqDay=C2S-_PK~ZK&szP3AZc=Iy z$XU>k)G!B|6Hr`}Vw7}Z zkkVQV5veUEM#(xxNk=tBMMVj0J-VqjumU|?i`fFK?QFkjSyfq?;p zr~Lo_|HS{H4;UE8@dG$eNY)6}#Xzc!FkPf+MAAiqMpRuKM1~EzF5>i|>EhtvASz@~ zv~hp|srta0z_tB6EB ztP-RKH4s1|NV>3U1gSxC0LTCakPDFYVM%jf8#1j8UrAPkB@h!|K2h(NXr#D|&- zQ3X!Cpkxi@{{PRw0ak>m3oSZ8wt+BABPalo(kj>xH~~`xqQTJxVn8uSBgi(8yWkqY z47B*b2vtysVAF-B4;&^ir^3`@q#5k-2+iFfU7(}}!eFOC36Q%X@d)({lmgj?5~?WH zA#{P%LA5|AkN^lncpwsL6UeV1eMl|=$-*&usA9$=L@BD_Apd~M7>FF01Vsl@Jc7kQ z$}ly8tb|E}Rd9gyL0t%z0hK3U1~LIM3520yAP=I3A=m^Y6;OrHvS9EqAXiPHmCMUub3I))9w007(ON(%r0 literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Snd/BeatFreq.CPP b/SparrowOS/Demo/Snd/BeatFreq.CPP new file mode 100644 index 0000000..6685b0a --- /dev/null +++ b/SparrowOS/Demo/Snd/BeatFreq.CPP @@ -0,0 +1,68 @@ +Bool beat_done; +I64 start_buf_num; +U0 (*fp_task_end_cb)(); +U0 (*fp_old_fill_buf)(SND_OUT_CONTAINER *buf,I64 buf_num)=NULL; + +F64 freq1,freq2; + +U0 BeatFillBuf(SND_OUT_CONTAINER *buf,I64 buf_num) +{ //Gets called by HD Audio task -- $LK,"HDAudioTask","MN:HDAudioTask"$(). + I64 j,m; + F64 t; + if (beat_done) return; + t=ToF64((buf_num-start_buf_num)*(SND_BUF_LEN/SND_OCHANNELS))/SND_SAMPLE_RATE; + j=0; + while (jtask_end_cb; + Fs->task_end_cb=&BeatTaskEndCB; //Catch or Kill() task + start_buf_num=snd_obuf_num; + fp_old_fill_buf=fp_snd_fill_buf; + fp_snd_fill_buf=&BeatFillBuf; + try { + "Pick two frequencies within a few Hz of each other to hear beats.\n" + "Pick two frequencies a multiple of two for an octave harmonic.\n" + "$$FG,GREEN$$$$FG$$ to exit.\n"; + while (TRUE) { + freq1=PmtF64("Freq #1 (%0.2fHz):",freq1,20,20000); + freq2=PmtF64("Freq #2 (%0.2fHz):",freq2,20,20000); + } + } catch { //Catch , but pass it on to next higher handler. + fp_snd_fill_buf=fp_old_fill_buf; + Fs->task_end_cb=fp_task_end_cb; + } + beat_done=TRUE; + fp_snd_fill_buf=fp_old_fill_buf; + Fs->task_end_cb=fp_task_end_cb; +} + +BeatFreq; diff --git a/SparrowOS/Demo/Snd/Echo.CPP b/SparrowOS/Demo/Snd/Echo.CPP new file mode 100644 index 0000000..38740ca --- /dev/null +++ b/SparrowOS/Demo/Snd/Echo.CPP @@ -0,0 +1,96 @@ +Bool echo_done; + +U0 (*fp_task_end_cb)(); +U0 (*fp_old_fill_buf)(SND_OUT_CONTAINER *buf,I64 buf_num)=NULL; +U0 (*fp_old_copy_buf)(SND_IN_CONTAINER *buf,I64 buf_num)=NULL; + +#define NUM_BUF 8 +SND_IN_CONTAINER my_buf[SND_BUF_LEN*NUM_BUF]; + +I64 my_ibuf_ptr,my_obuf_ptr; + +U0 EchoFillBuf(SND_OUT_CONTAINER *buf,I64) +{ + I64 j; + if (echo_done) return; + j=0; + while (jistr0_buf[0]; + I64 i,x1,y1,x2=0,y2=0, + cy=task->win_pixel_height>>1; + dc->color=BLUE; + for (i=0;iwin_pixel_width/SND_BUF_LEN; + y1=cy-buf[i]*cy/MAX_I16; + GrLine(dc,x2,y2,x1,y1); + x2=x1; + y2=y1; + } +} + +U0 EchoDemo() +{ + if (snd_dev!=SD_HD_AUDIO) { + "Only works for HD Audio.\n"; + return; + } + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + HDRun(TRUE,TRUE); + echo_done=FALSE; + fp_task_end_cb=Fs->task_end_cb; + Fs->task_end_cb=&EchoTaskEndCB; //Catch or Kill() task + my_ibuf_ptr=(NUM_BUF/2)*SND_BUF_LEN; + my_obuf_ptr=0; + fp_old_fill_buf=fp_snd_fill_buf; + fp_old_copy_buf=fp_snd_copy_buf; + fp_snd_fill_buf=&EchoFillBuf; + fp_snd_copy_buf=&EchoCopyBuf; + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + try + GetChar; + catch { //Catch , but pass it on to next higher handler. + fp_snd_fill_buf=fp_old_fill_buf; + fp_snd_copy_buf=fp_old_copy_buf; + Fs->task_end_cb=fp_task_end_cb; + } + echo_done=TRUE; + HDStop(TRUE,FALSE); + fp_snd_fill_buf=fp_old_fill_buf; + fp_snd_copy_buf=fp_old_copy_buf; + Fs->task_end_cb=fp_task_end_cb; + SettingsPop; +} + +EchoDemo; diff --git a/SparrowOS/Demo/Snd/MorseCode.CPP b/SparrowOS/Demo/Snd/MorseCode.CPP new file mode 100644 index 0000000..c8053da --- /dev/null +++ b/SparrowOS/Demo/Snd/MorseCode.CPP @@ -0,0 +1,181 @@ +#define M_DASH_THRESHOLD 0.140 +#define M_SPACE_THRESHOLD 0.300 + +U8 *morse_list= + +"A.-\0" +"B-...\0" +"C-.-.\0" +"D-..\0" +"E.\0" +"F..-.\0" +"G--.\0" +"H....\0" +"I..\0" +"J.---\0" +"K-.-\0" +"L.-..\0" +"M--\0" +"N-.\0" +"O---\0" +"P.--.\0" +"Q--.-\0" +"R.-.\0" +"S...\0" +"T-\0" +"U..-\0" +"V...-\0" +"W.--\0" +"X-..-\0" +"Y-.--\0" +"Z--..\0" + +"1.----\0" +"2..---\0" +"3...--\0" +"4....-\0" +"5.....\0" +"6-....\0" +"7--...\0" +"8---..\0" +"9----.\0" +"0-----\0" + +"/-..-.\0" +"+.-.-.\0" +"..-.-.-\0" +",--..--\0" +"?..--..\0" +"(-.--.\0" +")-.--.-\0" +"--....-\0" +"\".-..-.\0" +"_..--.-\0" +"'.----.\0" +":---...\0" +";-.-.-.\0" +"=-...-\0"; + +U0 MorseTable() +{ + U8 *st; + I64 i=0; + for (i=0;i<13;i++ ) { + if (st=ListEntryPt(i,morse_list)) + "$$FG,RED$$%C$$FG$$ %-7s ",*st,st+1; + if (st=ListEntryPt(i+13,morse_list)) + "$$FG,RED$$%C$$FG$$ %-7s ",*st,st+1; + if (st=ListEntryPt(i+26,morse_list)) + "$$FG,RED$$%C$$FG$$ %-7s ",*st,st+1; + if (st=ListEntryPt(i+39,morse_list)) + "$$FG,RED$$%C$$FG$$ %-7s ",*st,st+1; + NewLine; + } + NewLine; +} + +F64 m_start,m_end,dt_down,dt_up; +Bool space_sent; + +U8 *MorseTimes(CDoc *,CDocEntry *,CTask *mem_task) +{ + U8 *st=MAlloc(64,mem_task); + SPrintF(st,"Down:%10.6f Up:%10.6f",dt_down,dt_up); + return st; +} + + +I64 MorseWaitKey() +{ + I64 ch; + F64 dt; + while (TRUE) { + if (m_start) { + GetMsg(NULL,NULL,1<=M_SPACE_THRESHOLD) { + space_sent=TRUE; + return CH_SPACE; + } + Yield; + } + } else + ch=GetChar(NULL,FALSE); + m_start=tP; + Snd(1000); + if (ch==CH_SHIFT_ESC || ch==CH_ESC) { + NewLine; + Snd(0); + ThrowBreak; //exit program + } + dt_up=m_start-m_end; + if (!space_sent && dt_up>=M_SPACE_THRESHOLD) { + space_sent=TRUE; + return CH_SPACE; + } + } + } +} + +U0 Morse() +{ + Bool old_preempt; + CDocEntry *doc_e; + U8 buf[8],*dst,ch,*src; + + MorseTable; + m_start=0; + m_end=tP; + dt_down=0; + dt_up=0; + space_sent=TRUE; + + "$$FG,GREEN$$"; + + //We don't want the tag call back + //called before we set it, so preempt off. + old_preempt=Preempt(OFF); + doc_e=DocPutS(DocCur,"$$TX+TC,\" \"$$"); + doc_e->tag_cb=&MorseTimes; + Preempt(old_preempt); + + "$$FG$$\n"; + + dst=buf; + while (TRUE) { + ch=MorseWaitKey; + if (ch==CH_SPACE) { + *dst=0; + src=morse_list; + while (*src) { + if (!StrCmp(src+1,buf)) { + "$$FG,GREEN$$%C$$FG$$",*src; + break; + } else + src+=StrLen(src)+1; + } + '' CH_SPACE; + dst=buf; + } else { + if (dst-buftask_end_cb=&SndTaskEndCB; + MusicSettingsRst; + try //Catch exit + while (!ScanChar) { + Play("4hEqDCBCDhE", + "God \0is \0a \0g\0od \0of \0love.\n\0"); + Play("3GqFEFhG4E", + " \0 \0 \0 \0 \0He \0"); + Play("qDCBCDhE3G", + "wat\0ches \0us \0from \0a\0bove.\n\0 \0"); + Play("qFEFhG4BqC", + " \0 \0 \0 \0Our \0world \0"); + Play("DhCeDChB3G", + "is\0n't \0al\0ways \0nice.\n\0 \0"); + Play("qFEFhG4EqD", + " \0 \0 \0 \0Be\0fore \0"); + Play("CBCDhE3G", + "you \0gr\0ipe \0think \0twice.\n\0 \0"); + Play("qFEFhG4EqD", + " \0 \0 \0 \0He \0wat\0"); + Play("CBCDhE3G", + "ches \0us \0from \0a\0bove.\n\0 \0"); + Play("qFEFhG4EqD", + " \0 \0 \0 \0He'll \0smack \0"); + Play("CBCDhE3G", + "you \0with \0out \0a \0glove.\n\0 \0"); + Play("qFEFhG4BqC", + " \0 \0 \0 \0Our \0world \0"); + Play("DhCeDChB3G", + "is\0n't \0al\0ways \0nice.\n\0 \0"); + Play("qFEFhG"); + } + catch + CatchAll; + NewLine; + Snd(0); +} + +Song; diff --git a/SparrowOS/Demo/Snd/PolyPhonic.CPP b/SparrowOS/Demo/Snd/PolyPhonic.CPP new file mode 100644 index 0000000..2e55f92 --- /dev/null +++ b/SparrowOS/Demo/Snd/PolyPhonic.CPP @@ -0,0 +1,98 @@ +Bool poly_done; +I64 start_buf_num; +U0 (*fp_task_end_cb)(); +U0 (*fp_old_fill_buf)(SND_OUT_CONTAINER *buf,I64 buf_num)=NULL; + +U0 PolyFillBuf(SND_OUT_CONTAINER *buf,I64 buf_num) +{ //Gets called by HD Audio task -- $LK,"HDAudioTask","MN:HDAudioTask"$(). + +//Note: the buffer is in uncached memory +//so you might want to avoid multiple +//accesses due to slow speed. (If you were +//to add a bunch of waveforms together, you +//might want to do it in a cached buffer +//and copy it once.) + + I64 j,m,r; + F64 t,d; + if (poly_done) return; + t=ToF64((buf_num-start_buf_num)*(SND_BUF_LEN/SND_OCHANNELS))/SND_SAMPLE_RATE; + j=0; + while (j4.0) { + if (0.908.0) { + if (0.7012.0) { + if (0.3016.0) + m+=0.3*MAX_I32*Caw(t,1.0/6)*Sin(440.0*(2*ã)*t); + } + } + } + + //Samples are 24-bit, placed in upper 24 bits of an I32. + m*=snd_vol; + buf[j++]=ToI64(m*d)&0xFFFFFF00; //Left + buf[j++]=ToI64(m*(1.0-d))&0xFFFFFF00; //Right + + t+=1.0/SND_SAMPLE_RATE; + } +} + +U0 PolyTaskEndCB() +{ + poly_done=TRUE; + fp_snd_fill_buf=fp_old_fill_buf; + if (fp_task_end_cb) + (*fp_task_end_cb)(); + else + Exit; +} + +U0 PolyPhonic() +{ + if (snd_dev!=SD_HD_AUDIO) { + "Only works for HD Audio.\n"; + return; + } + poly_done=FALSE; + fp_task_end_cb=Fs->task_end_cb; + Fs->task_end_cb=&PolyTaskEndCB; //Catch or Kill() task + start_buf_num=snd_obuf_num; + fp_old_fill_buf=fp_snd_fill_buf; + fp_snd_fill_buf=&PolyFillBuf; + try +#if IncludeDepth<2 + PressAKey; +#else + View; +#endif + catch { //Catch , but pass it on to next higher handler. + fp_snd_fill_buf=fp_old_fill_buf; + Fs->task_end_cb=fp_task_end_cb; + } + poly_done=TRUE; + fp_snd_fill_buf=fp_old_fill_buf; + Fs->task_end_cb=fp_task_end_cb; +} + +//This is so I can use this file stand alone +//or as a component of a program. +#if IncludeDepth<2 +PolyPhonic; +#endif diff --git a/SparrowOS/Demo/Snd/Record.CPP b/SparrowOS/Demo/Snd/Record.CPP new file mode 100644 index 0000000..b40f78a --- /dev/null +++ b/SparrowOS/Demo/Snd/Record.CPP @@ -0,0 +1,120 @@ +Bool record_stop,record_done; + +U0 (*fp_old_copy_buf)(SND_IN_CONTAINER *buf,I64 buf_num)=NULL; + +#define RECORD_BUF_SIZE (SND_BUF_LEN*0x100) + +SND_IN_CONTAINER *record_buf[2]; +I64 record_buf_iptr,record_ibuf_num,record_obuf_num; + +U0 RecordCopyBuf(SND_IN_CONTAINER *buf,I64) +{ + I64 j; + SND_IN_CONTAINER *_s=record_buf[record_ibuf_num&1]; + j=0; + while (j=RECORD_BUF_SIZE) { + record_buf_iptr=0; + record_ibuf_num++; + } +} + +U0 DrawIt(CTask *task,CDC *dc) +{ + SND_IN_CONTAINER *buf=_hda->istr0_buf[0]; + I64 i,x1,y1,x2=0,y2=0, + cy=task->win_pixel_height>>1; + dc->color=BLUE; + for (i=0;iwin_pixel_width/SND_BUF_LEN; + y1=cy-buf[i]*cy/MAX_I16; + GrLine(dc,x2,y2,x1,y1); + x2=x1; + y2=y1; + } + dc->color=RED; +} + +U0 RecordTaskEndCB() +{ + fp_snd_copy_buf=fp_old_copy_buf; + HDStop(TRUE,FALSE); + Free(record_buf[0]); + Free(record_buf[1]); + record_done=TRUE; + Exit; +} + +U0 RecordTask(U8 *filename) +{ + Bool old_io_snd; + U8 *fname=StrNew(filename),*fname2; + TaskInitExt; //needed for disk access + record_buf[0]=CAlloc(RECORD_BUF_SIZE*sizeof(SND_IN_CONTAINER)); + record_buf[1]=CAlloc(RECORD_BUF_SIZE*sizeof(SND_IN_CONTAINER)); + FileExtRem(fname); + record_buf_iptr=0; + record_ibuf_num=0; + record_obuf_num=0; + record_done=FALSE; + Fs->task_end_cb=&RecordTaskEndCB; + fp_old_copy_buf=fp_snd_copy_buf; + fp_snd_copy_buf=&RecordCopyBuf; + HDRun(TRUE,FALSE); + if (!IsSysDeterministic) + Preempt(ON); + old_io_snd=IOSnd(OFF); + while (!record_stop) { + if (record_ibuf_num>record_obuf_num) { + fname2=MSPrintF("%s%04d.SNZ",fname,record_obuf_num); + SndFileWrite(fname2,record_buf[record_obuf_num&1],RECORD_BUF_SIZE); + record_obuf_num++; + Free(fname2); + } + Sleep(1); + } + fname2=MSPrintF("%s%04d.SNZ",fname,record_obuf_num); + SndFileWrite(fname2,record_buf[record_obuf_num&1],record_buf_iptr); + record_obuf_num++; + Free(fname2); + Free(fname); + IOSnd(old_io_snd); + record_done=TRUE; +} + +U0 RecordDemo(U8 *filename="HOME/Record.SNZ") +{ + if (snd_dev!=SD_HD_AUDIO) { + "Only works for HD Audio.\n"; + return; + } + record_done=FALSE; + record_stop=FALSE; + Spawn(&RecordTask,filename,"Record .SNZ",Fs); + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Preempt(OFF); + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + try + GetChar; + catch //Catch , but pass it on to next higher handler. + record_stop=TRUE; + record_stop=TRUE; + while (record_done) + Yield; + SettingsPop; + while (TRUE) { + "\n\nPlay "; + if (YorN) + SndFilePlaySeq(filename,record_obuf_num); + else + break; + } + NewLine(2); +} + +RecordDemo; diff --git a/SparrowOS/Demo/Snd/SndScope.CPP b/SparrowOS/Demo/Snd/SndScope.CPP new file mode 100644 index 0000000..611b7e5 --- /dev/null +++ b/SparrowOS/Demo/Snd/SndScope.CPP @@ -0,0 +1,46 @@ +U0 DrawIt(CTask *task,CDC *dc) +{ + SND_OUT_CONTAINER *buf=_hda->ostr0_buf[0]; + I64 i,x1,y1,x2,y2, + cy=task->win_pixel_height>>1; + + dc->color=BLUE; + x2=0;y2=cy; + for (i=0;iwin_pixel_width/SND_BUF_LEN; + y1=cy-buf[i]*cy/snd_vol/MAX_I32; + GrLine(dc,x2,y2,x1,y1); + x2=x1;y2=y1; + } + + dc->color=GREEN; + x2=0;y2=cy; + for (i=1;iwin_pixel_width/SND_BUF_LEN; + y1=cy-buf[i]*cy/snd_vol/MAX_I32; + GrLine(dc,x2,y2,x1,y1); + x2=x1; y2=y1; + } +} + +U0 SndScope() +{ + if (snd_dev!=SD_HD_AUDIO) { + "Only works for HD Audio.\n"; + return; + } + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + SetWinHorz(1,18); + SetWinVert(15,TEXT_ROWS-2); + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + GetChar; + SettingsPop; +} + +//This is so I can use this file stand alone +//or as a component of a program. +#if IncludeDepth<2 +SndScope; +#endif diff --git a/SparrowOS/Demo/Snd/Synth.CPP b/SparrowOS/Demo/Snd/Synth.CPP new file mode 100644 index 0000000..b2a2b92 --- /dev/null +++ b/SparrowOS/Demo/Snd/Synth.CPP @@ -0,0 +1,280 @@ +#define M_WAVEFORM 0 +#define M_FREQUENCY 1 +#define M_ENVELOPE 2 + +#define M_NUM_MODES 3 + +I64 mode; +Bool my_ip_down; +I64 last_x,last_y; + +Bool synth_done; + +U0 (*fp_task_end_cb)(); +U0 (*fp_old_fill_buf)(SND_OUT_CONTAINER *buf,I64 buf_num)=NULL; + +#define NUM_BUF 8 +SND_OUT_CONTAINER my_buf[SND_BUF_LEN*NUM_BUF]; + +#define WF_BUF_LEN 2048 +#define WF_Y_SCALE 2048.0 +I64 waveform_buf[WF_BUF_LEN]; + +#define FQ_BUF_LEN 2048 +#define FQ_Y_SCALE 2048.0 +I64 frequency_buf[FQ_BUF_LEN]; +F64 fq_scale; + +#define EL_BUF_LEN 2048 +#define EL_Y_SCALE 2048.0 +I64 envelope_buf[EL_BUF_LEN]; +F64 el_scale; + +U0 SynthFillBuf(SND_OUT_CONTAINER *buf,I64 buf_num) +{ + I64 i,j,l,k0,k1,k2,k3; + F64 d; + static F64 k=0; + if (synth_done) return; + j=0; + k0=buf_num*(SND_BUF_LEN/SND_OCHANNELS); + while (jwin_pixel_height>>1, + h_max=task->win_pixel_width-1; + + if (!win_show_menu) { + if (ip_lb) { + if (my_ip_down) + switch (mode) { + case M_WAVEFORM: + Line(NULL, + (last_x-task->win_pixel_left-task->win_scroll_x)*WF_BUF_LEN/h_max, + WF_Y_SCALE*(cy-last_y+task->win_pixel_top+task->win_scroll_y)/cy,0, + ( ipx-task->win_pixel_left-task->win_scroll_x)*WF_BUF_LEN/h_max, + WF_Y_SCALE*(cy-ipy+task->win_pixel_top+task->win_scroll_y)/cy,0, + &WFPlot); + break; + case M_FREQUENCY: + Line(NULL, + (last_x-task->win_pixel_left-task->win_scroll_x)*FQ_BUF_LEN/h_max, + FQ_Y_SCALE*(cy-last_y+task->win_pixel_top+task->win_scroll_y)/cy,0, + ( ipx-task->win_pixel_left-task->win_scroll_x)*FQ_BUF_LEN/h_max, + FQ_Y_SCALE*(cy-ipy+task->win_pixel_top+task->win_scroll_y)/cy,0, + &FQPlot); + break; + case M_ENVELOPE: + Line(NULL, + (last_x-task->win_pixel_left-task->win_scroll_x)*EL_BUF_LEN/h_max, + EL_Y_SCALE*(cy-last_y+task->win_pixel_top+task->win_scroll_y)/cy,0, + ( ipx-task->win_pixel_left-task->win_scroll_x)*EL_BUF_LEN/h_max, + EL_Y_SCALE*(cy-ipy+task->win_pixel_top+task->win_scroll_y)/cy,0, + &ELPlot); + break; + } + my_ip_down=TRUE; + last_x=ipx; + last_y=ipy; + } else + my_ip_down=FALSE; + } + + x2=-1; + if (mode==M_WAVEFORM && Blink(,tNP)) { + dc->color=ROPF_DITHER+WHITE<<16+RED; + GrPutS(dc,0,cy-FONT_HEIGHT,"Set Waveform."); + } else + dc->color=RED; + for (i=0;iwin_pixel_width/WF_BUF_LEN; + y1=cy-cy*waveform_buf[i]/WF_Y_SCALE; + if (x2>=0) + GrLine(dc,x2,y2,x1,y1); + x2=x1; + y2=y1; + } + + x2=-1; + if (mode==M_FREQUENCY && Blink(,tNP)) { + dc->color=ROPF_DITHER+WHITE<<16+BLUE; + GrPutS(dc,0,cy-FONT_HEIGHT,"Set Frequency."); + } else + dc->color=BLUE; + for (i=0;iwin_pixel_width/FQ_BUF_LEN; + y1=cy-cy*frequency_buf[i]/FQ_Y_SCALE; + if (x2>=0) + GrLine(dc,x2,y2,x1,y1); + GrLine(dc,x2,cy-(y2-cy),x1,cy-(y1-cy)); + x2=x1; + y2=y1; + } + + x2=-1; + if (mode==M_ENVELOPE && Blink(,tNP)) { + dc->color=ROPF_DITHER+WHITE<<16+GREEN; + GrPutS(dc,0,cy-FONT_HEIGHT,"Set Envelope."); + } else + dc->color=GREEN; + for (i=0;iwin_pixel_width/EL_BUF_LEN; + y1=cy-cy*envelope_buf[i]/EL_Y_SCALE; + if (x2>=0) + GrLine(dc,x2,y2,x1,y1); + GrLine(dc,x2,cy-(y2-cy),x1,cy-(y1-cy)); + x2=x1; + y2=y1; + } + + dc->color=BLACK; + GrLine(dc,0,cy,task->win_pixel_width,cy); +} + +U0 SetMenu() +{ + MenuEntryFind(Fs->cur_menu,"Mode/Waveform")->checked=mode==M_WAVEFORM; + MenuEntryFind(Fs->cur_menu,"Mode/Frequency")->checked=mode==M_FREQUENCY; + MenuEntryFind(Fs->cur_menu,"Mode/Envelope")->checked=mode==M_ENVELOPE; +} + +U0 Init() +{ + my_ip_down=FALSE; + mode=M_WAVEFORM; + MemSetU64(&waveform_buf[0] ,-0.5 *WF_Y_SCALE,WF_BUF_LEN/2); + MemSetU64(&waveform_buf[WF_BUF_LEN/2] , 0.5 *WF_Y_SCALE,WF_BUF_LEN/2); + MemSetU64(frequency_buf , 0.25*FQ_Y_SCALE,FQ_BUF_LEN); + MemSetU64(envelope_buf , 0.75*EL_Y_SCALE,EL_BUF_LEN); + fq_scale=0.02; + el_scale=0.02; + SetMenu; +} + +U0 Synth() +{ + I64 p1,p2; + if (snd_dev!=SD_HD_AUDIO) { + "Only works for HD Audio.\n"; + return; + } + + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Preempt(OFF); + MenuPush( + "File {" + " New(,CH_NEW_LINE);" + " Abort(,CH_SHIFT_ESC);" + " Exit(,CH_ESC);" + "}" + "Mode {" + " Waveform(,'1');" + " Frequency(,'2');" + " Envelope(,'3');" + "}" + ); + WordStat; + WinMax; + WinBorder; + Fs->win_inhibit=WIF_ALL-WIF_MENU; + + Init; + + synth_done=FALSE; + fp_task_end_cb=Fs->task_end_cb; + Fs->task_end_cb=&SynthTaskEndCB; //Catch or Kill() task + fp_old_fill_buf=fp_snd_fill_buf; + fp_snd_fill_buf=&SynthFillBuf; + DocCursor; + DocClear; + Fs->draw_it=&DrawIt; + try { + while (TRUE) { + switch (GetMsg(&p1,&p2,1<, but pass it on to next higher handler. + fp_snd_fill_buf=fp_old_fill_buf; + Fs->task_end_cb=fp_task_end_cb; + } + synth_done=TRUE; + fp_snd_fill_buf=fp_old_fill_buf; + Fs->task_end_cb=fp_task_end_cb; + SettingsPop; +} + +Synth; diff --git a/SparrowOS/Demo/Snd/WaterFowl.CPP b/SparrowOS/Demo/Snd/WaterFowl.CPP new file mode 100644 index 0000000000000000000000000000000000000000..5709447ec1d60419f9c31f591f453ae1e3e560b5 GIT binary patch literal 3879 zcmWHwP|zyKPtCRE;!+C9S4dO{Pb^6-O3N?Li7`;(Qc9{+2+z#P$xO^ua4yZsNzGGm zDymG(D*;O?fXVQT%#w`MA{_)&;{2Sjppn3-3Snxc@O2U4YwT$GtxoS&yqoDKC0$XRKb>7_-f z3TZj{i6zAfi8=Xs>3T@63riNzU}3Q0wodD&of{%H#3si`TI3OR|{ zsX7YzMIiU4r-A~lD6=fJNTED4B^BZ{|00F*jMSo3uxpC)le0k)l9ZW~lV4t}P?TAm zs*sqMqEHMs8S3ne#59m6l2a4&6pAxbQjtS11Z-Yru|lFkKz=#Mwv7DZRE6ZkB1i~^ zq$Vb3q!xpNuRO65;z5OyjKmU!g2a-HoYdlCh2;Fi;u0NQU9fjTGEx;%Qj1fIO2Cc* zrLx@2lEkE(RE5OMBA6NCqsaf|G?p z9>@-b%wmPS)Wjkbw}QexADmVaOB71-GjkM*GZJ%h6jEVE1%qTkVjwr?mnx)X=A|ek zDioLI=B5@YWaQ_j>VN~SD7Cl*V!0#8%;cif#9W2M-2A+Ba6qJ`f@9oTp(r&q1!_l9 zY91s!z;@)Trxt;g7H6d9l%y7=rYPj4qJ}KUTk1t63hDWIsgMv$OsXsf=T%5n28WeL zVo8QVad{%h!qgOn(gLulY57ID)(VxWB|4z2ky{DM{6&z$!zDGfAg59x1FWw!50vjx z6+o#394`5#3K^hcAw9D!H4n*$;9vs9e=#V8Qc?>Ni%^n*N2-oOc}BjDLRwLNu0jn~6+f`}+iQni``DhIsnAa#|SZ8E|oNsRRe;DA^d=Dd`xhaDf0sz{pNX#|SI{ zv&1jdH{RXVHQ1HY(2&c`%tWEYK&QkYzBn2#5o^umX=b8Ofh3|+iNt|Q8z2ekR3h`N zxwt|N6aq?10`gOHHJn2di?bE9N)n5+b(~$C6|_>4bwK8qgUJj{u4*m?1+YU(Y=aZa zHA(_BKx#F0OAK_tAp-KIrZty>0!UY;PL^#+iIxUf1{_w}CYoAq{(d3x9e`iO=EWCeR;1>{muIGwWawmIh(iiPkWNUXfLIW{C8-r9 z@rflRMYcX6pun-QG0}GNadh?uDS<^dNU2UrvQD{9hNd+amx2N`_zbKwZQx1FI#XL4 z7IY;gwuX8}S|LT5$Wb3(9Gw}fW1wda4Gyq(Y@LG(iZV-5J@ZOZiwg2{5=&AwR6L#F z310`ofh2mJ5?D||bp_<)ml%Vh2$U+cD-5DDW3?+lwq)4Z8ERL8`IR8PfezRK!O_*!dakDAmrIB+e}?}C_s~-f&w`IWyacu)BNvKmPy!57G|v8jJ?119=HXgNz69k!g?|h!3JcP6AmEqCx%wVFnyt c1bLVj$*Ukf$PF+Wk literal 0 HcmV?d00001 diff --git a/SparrowOS/Demo/Spy.CPP b/SparrowOS/Demo/Spy.CPP new file mode 100644 index 0000000..71be0bd --- /dev/null +++ b/SparrowOS/Demo/Spy.CPP @@ -0,0 +1,65 @@ +//Pass the task structure you +//wish to spy upon. + +U0 SpyStkRep(CTask *task) +{ + Bool old_preempt=Preempt(OFF); + CDoc *doc=DocDblBufStart; + while (!ScanChar && TaskValidate(task)) { + StkRep(task); + NewLine; + PutDefine("ST_PRESS_A_KEY"); + DocDblBufSwap; + WinMgrSync; + } + if (DocCur==doc) DocDblBufSwap; + DocDblBufEnd; + Preempt(old_preempt); +} + +U0 SpyCallerRep(CTask *task) +{ + Bool old_preempt=Preempt(OFF); + CDoc *doc=DocDblBufStart; + while (!ScanChar && TaskValidate(task)) { + CallerRep(task->rbp,task); + NewLine; + PutDefine("ST_PRESS_A_KEY"); + DocDblBufSwap; + WinMgrSync; + } + if (DocCur==doc) DocDblBufSwap; + DocDblBufEnd; + Preempt(old_preempt); +} + +U0 Spy() +{ + I64 i; + CTask *task; + + while (TRUE) { + task=Fs->next_task; + while (task!=Fs) { + "$$MA+A+X,\"Task:%08X:%16ts\",\"0x%08X\n\"$$\n",task,task->task_name,task; + task=task->next_task; + } + NewLine; + task=PmtI64("Task Addr: ",0); + if (TaskValidate(task)) { + "\n\n\t$$BT-LE+LM,\"StkRep\",\"1\n\"$$\n\n\n" + "\n\n\t$$BT-LE+LM,\"CallerRep\",\"2\n\"$$\n\n\n"; + i=PmtI64("",0); + if (i==1) + SpyStkRep(task); + else if (i==2) + SpyCallerRep(task); + else + break; + } else + break; + } + NewLine; +} + +Spy; diff --git a/SparrowOS/Demo/StkGrow.CPP b/SparrowOS/Demo/StkGrow.CPP new file mode 100644 index 0000000..1859710 --- /dev/null +++ b/SparrowOS/Demo/StkGrow.CPP @@ -0,0 +1,54 @@ +I64 Recurse(I64 n) +{ + if (n) + return 1+CallStkGrow(0x800,0x1000000,&Recurse,n-1); + else + return 0; +} + +I64 Recurse2(I64 n) +{ + if (n) + return 1+Recurse2(n-1); + else + return 0; +} + +I64 Recurse3(I64 n,I64 lo,I64 hi) +{ + if (lo<=nwin_width/16, + col=0; + while (*dict) { + wf=SuggestMatchForm(dict+1); + if (!StrNCmp(pf,wf,len)) { + "%16s",dict+1; + if (++col==num_cols) { + col=0; + NewLine; + } + } + Free(wf); + dict+=StrLen(dict+1)+4; + } + Free(pf); + NewLine; +} + + +U0 SuggestSpellingDemo() +{ + U8 *w; + while (TRUE) { + w=PmtStr("Word:"); + if (*w) { + SuggestSpelling(w); + Free(w); + } else + break; + } +} + + +/* +If you "Adam Include" this file, it will +install this command as a hot-key. +*/ + +U0 CtrlAltL(I64) +{ +//$LK,"ws_cur_word","MN:ws_cur_word"$ is only set if WordStat +//is running. + PopUp("SuggestSpelling(ws_cur_word);View;"); +} + +if (Fs!=adam_task) + SuggestSpellingDemo; +else { + SetCtrlAltLetCB('L',&CtrlAltL,"Cmd/Suggest Spelling"); +//Appears in the Adam Task Window + " installed\n"; +} + +//Note: It would be more appropriate +//to define a key in $LK,"MyPutKey","MN:MyPutKey"$(). diff --git a/SparrowOS/Demo/TimeIns.CPP b/SparrowOS/Demo/TimeIns.CPP new file mode 100644 index 0000000..dad30f8 --- /dev/null +++ b/SparrowOS/Demo/TimeIns.CPP @@ -0,0 +1,44 @@ +/* +This program allows you to measure the +timing of various instructions. +Don't be surprised by odd results +because the CPU does instructions in +parallel sometimes and a simple +instruction might take place in parallel +with the loop instruction and it will +report zero clock cycles. +*/ + + +#define SAMPLE_SIZE 100000000 + + +U0 TimeIns() +{ + I64 i; + I64 start1,end1,start2,end2,overhead_time,test_time; + F64 reg d=5.0; //Use the reg directive to designate register vars + Bool old_preempt=Preempt(OFF); + +//Measure Loop Overhead + start1=GetTimeStamp; + for (i=0;ifile); + Free(templg->link); + Free(templg); +} + +U0 PrsSingleLogFile(LogStruct *root,U8 *name) +{ + CDoc *doc=DocRead(name,DOCF_PLAIN_TEXT_WITH_TABS|DOCF_DBL_DOLLARS); + CDocEntry *doc_e=doc->root.next; + U8 *src,*src2,*mon_list=Define("ST_MONTHS"); + LogStruct *templg; + CDateStruct ds; + I64 i; + "%Q\n",name; + while (doc_e!=doc) { + if (doc_e->type_u8==DOCT_TEXT) { + templg=CAlloc(sizeof(LogStruct)); + try { + src=doc_e->tag; + templg->ip_num.u8[3]=A2I(src,10,&src); + if (*src++!='.') throw; + templg->ip_num.u8[2]=A2I(src,10,&src); + if (*src++!='.') throw; + templg->ip_num.u8[1]=A2I(src,10,&src); + if (*src++!='.') throw; + templg->ip_num.u8[0]=A2I(src,10,&src); + + do if (!*src) throw; + while (*src++!='['); + MemSet(&ds,0,sizeof(CDateStruct)); + ds.day_of_mon=A2I(src,10,&src); + if (*src++!='/') throw; + src2=src; + do if (!*src2) throw; + while (*src2++!='/'); + * --src2=0; + ds.mon=1+ListEntryMatch(src,mon_list,LEF_IGNORE_CASE); + src=++src2; + ds.year=A2I(src,10,&src); + if (*src++!=':') throw; + ds.hour=A2I(src,10,&src); + if (*src++!=':') throw; + ds.min=A2I(src,10,&src); + if (*src++!=':') throw; + ds.sec=A2I(src,10,&src); + templg->datetime=CDateStruct2CDate(&ds); + if (*src++!=CH_SPACE) throw; + i=A2I(src,10,&src); + templg->datetime-=(i/100+i%100/60.0)*CDATE_FREQ*60*60; + + do if (!*src) throw; + while (*src++!=']'); + + if (*src++!=CH_SPACE) throw; + if (*src++!='\"') throw; + if (!StrNCmp(src,"GET ",4)) { + src2=src+=4; + do if (!*src2) throw; + while (*src2++!=CH_SPACE); + * --src2=0; + templg->file=StrNew(src); + src=++src2; + + do if (!*src) throw; + while (*src++!='\"'); + + templg->code=A2I(src,10,&src); + if (*src++!=CH_SPACE) throw; + templg->size=A2I(src,10,&src); + if (*src++!=CH_SPACE) throw; + + if (*src++!='\"') throw; + src2=src; + do if (!*src2) throw; + while (*src2++!='\"'); + * --src2=0; + templg->link=StrNew(src); + src=++src2; + + QueIns(templg,root->last); + } else if (!StrNCmp(src,"HEAD ",5)) { + LogStructDel(templg); + } else + throw; + } catch { + Fs->catch_except=TRUE; + "%Q\n",doc_e->tag; + LogStructDel(templg); + } + } + doc_e=doc_e->next; + } + DocDel(doc); +} + +LogStruct *PrsLogFiles(U8 *files_find_mask) +{ + LogStruct *root=CAlloc(sizeof(LogStruct)); + CDirEntry *tempm=FilesFind(files_find_mask),*tempm1=tempm; + QueInit(root); + while (tempm) { + PrsSingleLogFile(root,tempm->full_name); + tempm=tempm->next; + } + CDirListDel(tempm1); + return root; +} + +U0 LogListDel(LogStruct *root) +{ + LogStruct *templg=root->next,*templg1; + while (templg!=root) { + templg1=templg->next; + LogStructDel(templg); + templg=templg1; + } +} + +U0 BlockedStructAdd(BlockedStruct *root,U32 ip_num) +{ + BlockedStruct *tempb=CAlloc(sizeof(BlockedStruct)); + tempb->ip_num=ip_num; + QueIns(tempb,root->last); +} + +Bool IsBlocked(BlockedStruct *root,U32 ip_num) +{ + BlockedStruct *tempb=root->next; + while (tempb!=root) { + if (tempb->ip_num==ip_num) + return TRUE; + tempb=tempb->next; + } + return FALSE; +} + +U0 BlockIPNums(LogStruct *root) +{ + BlockedStruct blocked_root; + LogStruct *templg=root->next,*templg1; + + QueInit(&blocked_root); + BlockedStructAdd(&blocked_root,68<<24+224<<16+130<<8+96); //Me 68.224.130.96 + BlockedStructAdd(&blocked_root,68<<24+96<<16+100<<8+126); //Me 68.96.100.126 + + //pass 1: collect robot list + while (templg!=root) { + if (StrIStr(templg->file,"ROBOT") && + !IsBlocked(&blocked_root,templg->ip_num)) + BlockedStructAdd(&blocked_root,templg->ip_num); + templg=templg->next; + } + + //pass 2: removed blocked ip_nums + templg=root->next; + while (templg!=root) { + templg1=templg->next; + if (IsBlocked(&blocked_root,templg->ip_num)) { + QueRem(templg); + LogStructDel(templg); + } + templg=templg1; + } + + QueDel(&blocked_root); +} + +Bool IsDownLoad(LogStruct *templg) +{ + if ( + StrStr(templg->file,DOWNLOAD_FILE1) && templg->size>=DOWNLOAD_FILE1_SIZE || + StrStr(templg->file,DOWNLOAD_FILE2) && templg->size>=DOWNLOAD_FILE2_SIZE ) + return TRUE; + else + return FALSE; +} + +Bool IsIndex(LogStruct *templg) +{ + if (!StrCmp(templg->file,"/index.html") || + !StrNCmp(templg->file,"/v",2) || + !StrCmp(templg->file,"/")) + return TRUE; + else + return FALSE; +} + +Bool IPNumTreeAdd(LogStruct **_root,LogStruct *templg) +{ + LogStruct *root; + if (UnusedStk<0x200) { + PutErr("Stk Overflow"); + ThrowBreak; + } + if (root=*_root) { + if (templg->ip_num==root->ip_num) + return TRUE; + else if (templg->ip_numip_num) + return IPNumTreeAdd(&root->ip_num_left,templg); + else + return IPNumTreeAdd(&root->ip_num_right,templg); + } else { + templg->ip_num_left=NULL; + templg->ip_num_right=NULL; + *_root=templg; + return FALSE; + } +} + +U0 LinkTreeAdd(LinkStruct **_root,LogStruct *templg) +{ + I64 i; + LinkStruct *root,*templk; + if (UnusedStk<0x200) { + PutErr("Stk Overflow"); + ThrowBreak; + } + if (root=*_root) { + if (!(i=StrCmp(templg->link,root->link))) + root->cnt++; + else if (i<0) + LinkTreeAdd(&root->left,templg); + else + LinkTreeAdd(&root->right,templg); + } else { + templk=CAlloc(sizeof(LinkStruct)); + templk->link=templg->link; + templk->cnt=1; + *_root=templk; + } +} + +U0 LinkTreeDel(LinkStruct *root) +{ + if (root) { + LinkTreeDel(root->left); + LinkTreeDel(root->right); + Free(root); + } +} + +U0 LinkTreeTraverse(LinkStruct *root) +{ + if (root) { + LinkTreeTraverse(root->left); + "%3d:%Q\n",root->cnt,root->link; + LinkTreeTraverse(root->right); + } +} + +U0 DownLoadRep(LogStruct *root,CDate start,CDate end) +{ + I64 i,j,cnt,dups, + hours_start,hours_end,*hour_cnts,*dup_cnts, + days_start,days_end,*day_cnts,*day_dup_cnts; + LogStruct *templg=root->next,*dup_root=NULL; + LinkStruct *link_root=NULL; + + i=start*24;hours_start=i.u32[1]; + i=end *24;hours_end =i.u32[1]; + + days_start=(start+local_time_offset)>>32; + days_end =(end+local_time_offset)>>32; + + hour_cnts=CAlloc((hours_end-hours_start+1)*sizeof(I64)); + dup_cnts =CAlloc((hours_end-hours_start+1)*sizeof(I64)); + day_cnts =CAlloc((days_end-days_start+1)*sizeof(I64)); + day_dup_cnts=CAlloc((days_end-days_start+1)*sizeof(I64)); + dups=cnt=0; + while (templg!=root) { + if (start<=templg->datetime<=end && IsDownLoad(templg)) { + i=templg->datetime*24; + hour_cnts[i.u32[1]-hours_start]++; + day_cnts[(templg->datetime+local_time_offset)>>32-days_start]++; + cnt++; + if (IPNumTreeAdd(&dup_root,templg)) { + day_dup_cnts[(templg->datetime+local_time_offset)>>32-days_start]++; + dup_cnts[i.u32[1]-hours_start]++; + dups++; + } + LinkTreeAdd(&link_root,templg); + } + templg=templg->next; + } + + "\n\nDownloads of /SparrowOSCD.ISO\n"; + for (i=start;i<=end;i+=1<<32) + "%D:%5d%5d\n",i,day_dup_cnts[(i+local_time_offset)>>32-days_start], + day_cnts[(i+local_time_offset)>>32-days_start]; + + "\n\nDownloads of /SparrowOSCD.ISO\n" + "'-' is a dup. '+' is not a dup.\n"; + if (hours_end-hours_start>=MAX_HOURS) + i=hours_end-MAX_HOURS+1; + else + i=hours_start; + for (;i<=hours_end;i++) { + "%D %h20T: ",i<<32/24,i<<32/24; + for (j=0;jnext,*dup_root=NULL; + LinkStruct *link_root=NULL; + + i=start*24;hours_start=i.u32[1]; + i=end *24;hours_end =i.u32[1]; + + days_start=(start+local_time_offset)>>32; + days_end =(end+local_time_offset)>>32; + + hour_cnts=CAlloc((hours_end-hours_start+1)*sizeof(I64)); + dup_cnts =CAlloc((hours_end-hours_start+1)*sizeof(I64)); + day_cnts =CAlloc((days_end-days_start+1)*sizeof(I64)); + day_dup_cnts=CAlloc((days_end-days_start+1)*sizeof(I64)); + dups=cnt=0; + while (templg!=root) { + if (start<=templg->datetime<=end && IsIndex(templg)) { + i=templg->datetime*24; + hour_cnts[i.u32[1]-hours_start]++; + day_cnts[(templg->datetime+local_time_offset)>>32-days_start]++; + cnt++; + if (IPNumTreeAdd(&dup_root,templg)) { + day_dup_cnts[(templg->datetime+local_time_offset)>>32-days_start]++; + dup_cnts[i.u32[1]-hours_start]++; + dups++; + } + LinkTreeAdd(&link_root,templg); + } + templg=templg->next; + } + + "\n\nHits on /index.html\n" + "'-' is a dup. '+' is not a dup.\n"; + for (i=start;i<=end;i+=1<<32) + "%D:%5d%5d\n",i,day_dup_cnts[(i+local_time_offset)>>32-days_start], + day_cnts[(i+local_time_offset)>>32-days_start]; + + "\n\nHits on /index.html\n"; + if (hours_end-hours_start>=MAX_HOURS) + i=hours_end-MAX_HOURS+1; + else + i=hours_start; + for (;i<=hours_end;i++) { + "%D %h20T: ",i<<32/24,i<<32/24; + for (j=0;jnext->datetime); + end =PmtCDate("End (%D):",root->last->datetime); + BlockIPNums(root); + + DocClear; + "$$WW,0$$"; + IndexRep(root,start,end); + DownLoadRep(root,start,end); + + StrCpy(DocCur->filename.name,output_filename); + DocWrite(DocCur,TRUE); + + "$$WW,1$$"; + LogListDel(root); +} + +#if IncludeDepth<2 +WebLogRep("::/SparrowOS/Demo/WebLogExample/*.LOG.Z","::/SparrowOS/Demo/WebLogExample/WebLogRep.TXT.Z"); +#endif diff --git a/SparrowOS/Demo/WebLogExample/WebLogRep.TXT b/SparrowOS/Demo/WebLogExample/WebLogRep.TXT new file mode 100644 index 0000000..9828ddb --- /dev/null +++ b/SparrowOS/Demo/WebLogExample/WebLogRep.TXT @@ -0,0 +1,194 @@ +$WW+H,1$$WW,0$ + +Hits on /index.html +'-' is a dup. '+' is not a dup. +05/08/09: 95 159 +05/09/09: 109 163 + + +Hits on /index.html +05/08/09 01: +++++ +05/08/09 02: --+++++ +05/08/09 03: ---++++ +05/08/09 04: ----++++ +05/08/09 05: -----++++ +05/08/09 06: ----++ +05/08/09 07: ----+++ +05/08/09 08: ----+ +05/08/09 09: ----+ +05/08/09 10: ----- +05/08/09 11: -----+++ +05/08/09 12: ----++++ +05/08/09 13: ----+ +05/08/09 14: ----+ +05/08/09 15: ------++++ +05/08/09 16: -----+++ +05/08/09 17: ----+ +05/08/09 18: -----++++ +05/08/09 19: ----- +05/08/09 20: ----++ +05/08/09 21: ----++ +05/08/09 22: -----++++++ +05/08/09 23: -----++++ +05/09/09 00: -----++++ +05/09/09 01: ----+ +05/09/09 02: ------+++++ +05/09/09 03: ---- +05/09/09 04: ----+ +05/09/09 05: ---+++ +05/09/09 06: ----++++++ +05/09/09 07: ----++ +05/09/09 08: ----+++ +05/09/09 09: ----- +05/09/09 10: ----++ +05/09/09 11: ----+ +05/09/09 12: ----++ +05/09/09 13: ----++++ +05/09/09 14: -----++ +05/09/09 15: ----+ +05/09/09 16: ----+ +05/09/09 17: ----++ +05/09/09 18: -----+ +05/09/09 19: ----++++ +05/09/09 20: ---- +05/09/09 21: -----+++ +05/09/09 22: -----------++++ +05/09/09 23: ----++ +05/10/09 00: ----++++ +Total:330 Dups:208 + + +Hits on /index.html + 60:- + 2:http://cplus.about.com/b/2008/11/20/amazing-home-brew-operating-system.htm + 2:http://en.wikipedia.org/wiki/SparrowOS + 2:http://fileforum.betanews.com/detail/SparrowOS/1183618683/1 + 3:http://filext.com/file-extension/iso + 1:http://forum.osdev.org/viewtopic.php?f=1&t=18653&hilit=Multicore + 1:http://qr.cz/index.php?recordStart=7 + 3:http://royal.pingdom.com/2008/09/26/10-amazingly-alternative-operating-systems-and-what-they-could-mean-for-the-future/ + 1: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 + 2:http://sourceforge.net/projects/sparrowos4/ + 1:http://www.addfree100links.com/valuesite/sparrowos.com.html + 1:http://www.cs.toronto.edu/~ad/news/ + 1:http://www.cs.toronto.edu/~ad/news/item?id=116 + 1:http://www.freeware-guide.com/dir/softdev/codeutil/SparrowOS.html + 1: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 + 1:http://www.google.ca/search?rlz=1C1GGLS_enCA322CA324&sourceid=chrome&ie=UTF-8&q=64+bit+OS + 1: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 + 1:http://www.google.co.in/search?hl=en&q=C%2B%2B+for+64+bit+operating+system&btnG=Google+Search&meta=&aq=f&oq= + 1: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 + 1:http://www.google.co.uk/search?q=free+cd+operating+systems&hl=en&start=10&sa=N + 1:http://www.google.co.uk/search?q=operating+systems+free+request+cd&hl=en&start=10&sa=N + 1: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= + 1: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 + 1: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 + 1:http://www.google.com.sg/search?hl=zh-CN&q=64+bit+os+&meta=&aq=f&oq= + 1: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 + 1: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 + 1:http://www.google.com/search?hl=en&client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial&q=operating.system++64.bit&btnG=Search + 1:http://www.google.com/search?hl=en&client=safari&rls=en-us&q=64+bit+operating+systems&btnG=Search + 1: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 + 1:http://www.google.com/search?hl=en&q=64-bit+open+source + 1: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 + 1: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 + 1: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 + 1: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 + 1: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 + 1:http://www.google.com/search?q=free+operating+system&hl=en&start=10&sa=N + 1: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 + 1:http://www.google.com/search?source=ig&hl=en&rlz=&q=64+bit+operating+system&btnG=Google+Search&aq=f&oq= + 1:http://www.google.com/search?source=ig&hl=en&rlz=1G1GGLQ_ENUS274&q=64+bit+operating+system&aq=f&oq= + 1:http://www.google.com/search?sourceid=navclient&ie=UTF-8&rlz=1T4GGLL_enUS323US323&q=64bit+operating+system+free+download + 1: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 + 1: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 + 1: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 + 1:http://www.google.mu/search?hl=en&q=64+bit+operating+system&btnG=Google+Search&meta=&aq=f&oq= + 1:http://www.google.se/search?q=sparrowos&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:sv-SE:official&client=firefox-a + 1:http://www.google.sk/search?hl=sk&q=PC+64bit+operating+system&btnG=H%C4%BEada%C5%A5+v+Google&meta=&aq=o&oq= + 1:http://www.linuxhaxor.net/page/14/ +191:http://www.semantic.hn/ + 2:http://www.sparrowos.com + 16:http://www.sparrowos.com/ + 2:http://www.sparrowos.com/detailedlinfo.html + 3:http://www.sparrowos.com/screenshots.html + 1:http://www.trivialsolutions.biz/ + + + +Downloads of /SparrowOSCD.ISO +05/08/09: 0 23 +05/09/09: 4 29 + + +Downloads of /SparrowOSCD.ISO +'-' is a dup. '+' is not a dup. +05/08/09 01: + +05/08/09 02: +05/08/09 03: +05/08/09 04: + +05/08/09 05: ++ +05/08/09 06: +05/08/09 07: + +05/08/09 08: +05/08/09 09: ++++ +05/08/09 10: +++ +05/08/09 11: +05/08/09 12: + +05/08/09 13: +05/08/09 14: ++ +05/08/09 15: ++ +05/08/09 16: +05/08/09 17: + +05/08/09 18: +05/08/09 19: + +05/08/09 20: + +05/08/09 21: + +05/08/09 22: + +05/08/09 23: + +05/09/09 00: + +05/09/09 01: +++ +05/09/09 02: +05/09/09 03: + +05/09/09 04: + +05/09/09 05: +05/09/09 06: +05/09/09 07: + +05/09/09 08: + +05/09/09 09: - +05/09/09 10: +05/09/09 11: +05/09/09 12: + +05/09/09 13: +05/09/09 14: --++++ +05/09/09 15: + +05/09/09 16: + +05/09/09 17: + +05/09/09 18: ++ +05/09/09 19: -++ +05/09/09 20: +05/09/09 21: ++ +05/09/09 22: + +05/09/09 23: ++ +05/10/09 00: -----++ +Total:59 Dups:9 + + +Downloads of /SparrowOSCD.ISO + 39:- + 1: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 + 1:http://fileforum.betanews.com/sendfile/1183618683/1/1241785810.5c969ec306d9c2484851a1e4f778d66b66f7bae7/ + 1: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 + 3:http://www.brothersoft.com/the-sparrowos-operating-system-download-67591.html + 1:http://www.freewarefree.net/utility/3955/sparrowos-503/ + 1:http://www.globalfreeware.com/ChemBalance-Wizard-32--v10-download.html + 1:http://www.globalfreeware.com/DEV-C-4992-download.html + 1:http://www.globalfreeware.com/DirectX-90c-Redistributable-March-2009-download.html + 1:http://www.globalfreeware.com/OpenOfficeorg-241-Final-download.html + 2:http://www.globalfreeware.com/SparrowOS-503-download.html + 1:http://www.globalfreeware.com/The-GIMP-246-download.html + 1:http://www.globalfreeware.com/Xoology-Coda-v251-download.html + 1:http://www.globalfreeware.com/tb-exe-maker-download.html + 2:http://www.sparrowos.com/ + 2:http://www.sparrowos.com/index.html + diff --git a/SparrowOS/Demo/WebLogExample/WebLogScramble.CPP b/SparrowOS/Demo/WebLogExample/WebLogScramble.CPP new file mode 100644 index 0000000..acf044e --- /dev/null +++ b/SparrowOS/Demo/WebLogExample/WebLogScramble.CPP @@ -0,0 +1,63 @@ +U8 key[4][256]; + +U0 InitKey() +{ + I64 i,j; + for (i=0;i<4;i++) { + for (j=0;j<256;j++) + key[i][j]=j; + for (j=0;j<255;j++) + SwapU8(&key[i][j],&key[i][j+RandU32%(256-j)]); + } +} + +U0 LogScrambleFile(U8 *name) +{ + CDoc *doc=DocRead(name,DOCF_PLAIN_TEXT); + CDocEntry *doc_e=doc->root.next; + I64 i; + U32 num; + U8 *st,*st2; + "Scrambling: %s\n",name; + while (doc_e!=doc) { + if (doc_e->type_u8==DOCT_TEXT) { + st=MAlloc(StrLen(doc_e->tag)+1); + st2=MAlloc(StrLen(doc_e->tag)+1); + StrFirstRem(doc_e->tag," ",st); + + for (i=3;i>=0;i--) { + StrFirstRem(st,".",st2); + num.u8[i]=key[i][A2I(st2)&255]; + } + + Free(st); + Free(st2); + + st=MSPrintF("%d.%d.%d.%d %s",num.u8[3],num.u8[2],num.u8[1],num.u8[0],doc_e->tag); + Free(doc_e->tag); + doc_e->tag=st; + } + doc_e=doc_e->next; + } + DocWrite(doc); + DocDel(doc); +} + +U0 WebLogScramble(U8 *wild) +{ + CDirEntry *tempm=FilesFind(wild,FUF_RECURSE|FUF_JUST_FILES), + *tempm1; + InitKey; + while (tempm) { + tempm1=tempm->next; + LogScrambleFile(tempm->full_name); + CDirEntryDel(tempm); + tempm=tempm1; + } +} + +//Danger scrambles all log files in the /SparrowOS tree + +ST_WARN_ST "This will scramble all .LOG.Z files in the /SparrowOS Tree.\n\n"; +if (AreYouSure) + WebLogScramble("/SparrowOS/*.LOG.Z"); diff --git a/SparrowOS/Demo/WebLogExample/access_090509.LOG b/SparrowOS/Demo/WebLogExample/access_090509.LOG new file mode 100644 index 0000000..ebe5a8c --- /dev/null +++ b/SparrowOS/Demo/WebLogExample/access_090509.LOG @@ -0,0 +1,756 @@ +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 new file mode 100644 index 0000000..06d649d --- /dev/null +++ b/SparrowOS/Demo/WebLogExample/access_090510.LOG @@ -0,0 +1,788 @@ +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/Demo/WinMgr2.CPP b/SparrowOS/Demo/WinMgr2.CPP new file mode 100644 index 0000000..eecac67 --- /dev/null +++ b/SparrowOS/Demo/WinMgr2.CPP @@ -0,0 +1,161 @@ + +/* +You must "Adam Include" this because the Adam task's memory is never freed, +so the code for this file will not be yanked from underneath the task. + + $WW,1$This is a really bad alternative window mgr. It augments the existing +one found in $LK,"::/SparrowOS/Adam/Window.CPP.Z","FI:::/SparrowOS/Adam/Window.CPP.Z"$. It uses the real-time differential equation solver to reposition windows as though they were repulsively charged particles. I find this window mgr to be a novelty, not desirable for actual use. You're welcome to add it, or some variation to your start-up scripts if you like it. It's not fully debugged. + +I had to cheat to make this work. I added $LK,"DISPLAYf_USER_HAS_BEEN_RESIZED","MN:DISPLAYf_USER_HAS_BEEN_RESIZED"$ and modified $LK,"::/SparrowOS/Adam/Window.CPP.Z","FI:::/SparrowOS/Adam/Window.CPP.Z"$. + +The differential equation stuff was overkill and made it overly complicated. Oh, well. +$WW,0$*/ + +U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *state,COrder2D3 *DstateDt) +{ + I64 i,j,task_cnt=ode->n/6; + F64 f,d,dd,dx,dy; + COrder2D3 *tempo; + if (!task_cnt) return; + + MemSet(DstateDt,0,sizeof(COrder2D3)*task_cnt); + + tempo=DstateDt; + for (i=0;ix=state[i].DxDt; + tempo->y=state[i].DyDt; + for (j=0;jDxDt+=f*dx; //Repulsive force like electro-static + tempo->DyDt+=f*dy; + } + } + } + + tempo=DstateDt; //a=-v (Damp-out motion.) + for (i=0;iDxDt-=state[i].DxDt; + tempo->DyDt-=state[i].DyDt; + } +} + +U0 WinMngTask(I64) +{ //Preempt() is off after Spawn() + Bool same=FALSE; + I64 i,j,w,h,x,y,cnt,task_cnt=0; + COrder2D3 *tempo; + CTask *task,**task_map=NULL; + CMathODE *ode=NULL; + + while (TRUE) { +restart: + WinMgrSync; + while (Bt(&sys_semas[SYS_SEMA_REFRESH_IN_PROGRESS],0)) + Yield; + cnt=0; + task=Fs->next_task; + while (task!=Fs) { + if (Bt(&task->display_flags,DISPLAYf_SHOW)) + cnt++; + task=task->next_task; + } + if (!cnt) { + same=FALSE; + goto restart; + } + + if (same && cnt==task_cnt) { + i=0; + task=Fs->next_task; + while (task!=Fs) { + if (Bt(&task->display_flags,DISPLAYf_SHOW)) + if (task_map[i++]!=task) + same=FALSE; + task=task->next_task; + } + } else + same=FALSE; + if (!same) { + task_cnt=cnt; + if (task_map) { + Free(task_map); + QueRem(ode); + ODEDel(ode); + } + task_map=MAlloc(sizeof(U8 *)*task_cnt); + ode=ODENew(task_cnt*6,0.1); + ode->derivative=&MyDerivative; + QueIns(ode,Fs->last_ode); + + i=0; + task=Fs->next_task; + while (task!=Fs) { + if (Bt(&task->display_flags,DISPLAYf_SHOW)) { + tempo=ode->state(U8 *)+sizeof(COrder2D3)*i; + task_map[i++]=task; + w=task->win_width-1; + h=task->win_height-1; + tempo->x=task->win_left+w>>1; + tempo->y=task->win_top+h>>1; + tempo->DxDt=0; + tempo->DyDt=0; + } + task=task->next_task; + } + same=TRUE; + } else { + tempo=ode->state; + for (i=0;iwin_width-1; + h=task->win_height-1; + if (LBtr(&task->display_flags,DISPLAYf_USER_HAS_BEEN_RESIZED)) { + tempo->x=task->win_left+w>>1; + tempo->y=task->win_top+h>>1; + tempo->DxDt=0; + tempo->DyDt=0; + } else { + x=task->win_left+w>>1; + y=task->win_top+h>>1; + tempo->x=Limit(tempo->x,x-2,x+2); //Only move up to 2 chars at a time + tempo->y=Limit(tempo->y,y-2,y+2); + + j=Round(tempo->x-w>>1); + if (Bt(&task->display_flags,DISPLAYf_NO_BORDER)) + j=LimitI64(j,0,TEXT_COLS-1-w); + else + j=LimitI64(j,1,TEXT_COLS-2-w); + SetWinHorz(j,j+w,task); + + j=Round(tempo->y-h>>1); + if (Bt(&task->display_flags,DISPLAYf_NO_BORDER)) + j=LimitI64(j,0,TEXT_ROWS-1-h); + else + j=LimitI64(j,1,TEXT_ROWS-2-h); + SetWinVert(j,j+h,task); + + x=task->win_left+(task->win_width-1)>>1; + y=task->win_top+(task->win_height-1)>>1; + if (LBtr(&task->display_flags,DISPLAYf_USER_HAS_BEEN_RESIZED)) { + tempo->x=x; + tempo->y=y; + } + tempo->DxDt=Limit(tempo->DxDt,-8.0,8.0); //+/- 8 chars/sec + tempo->DyDt=Limit(tempo->DyDt,-8.0,8.0); + } + } + } + } +} + +Spawn(&WinMngTask,NULL,"Window Mgr 2"); diff --git a/SparrowOS/Demo/WordSearch.CPP b/SparrowOS/Demo/WordSearch.CPP new file mode 100644 index 0000000..8caa871 --- /dev/null +++ b/SparrowOS/Demo/WordSearch.CPP @@ -0,0 +1,155 @@ +//This has a simple and fancy way of searching + +//See ::/SparrowOS/Apps/Vocabulary/VocabQuiz.CPP.Z +//for another example of dictionary usage. + +#define NUM_ROWS 20 +#define NUM_COLS 20 +#define MAX_DIMENSION MaxI64(NUM_ROWS,NUM_COLS) + +U8 m[NUM_ROWS][NUM_COLS]; + +U0 Init() +{ + I64 x,y; + for (y=0;y2;i--) { + buf[i]=0; + if ((ptr=WSDPtAtWord(buf)) && *ptr++==WSD_WORD_CHAR && + !StrICmp(ptr,buf)) { + "%s ",buf; + } + } + } +} + +U0 SimpleWordSearch() +{ + Search(1,0); + Search(0,1); + Search(-1,0); + Search(0,-1); + Search(1,1); + Search(-1,-1); + Search(1,-1); + Search(-1,1); + NewLine; +} + + +//////////////////////////////////////// +U8 words[NUM_ROWS*NUM_COLS*8][MAX_DIMENSION+1]; +U8 *word_ptrs[NUM_ROWS*NUM_COLS*8]; + +U0 CollectWords(I64 dx,I64 dy,I64 *_n) +{ + I64 x,y,n=*_n; + for (y=0;y*w1) + break; + if (!*w2) { + if (StrLen(dict+1)>2) { + k=i; + while (k~yy$;?Yva8w9zR#H)Mb64TwQV9>&F;of9NX=8I%r8|a zDJ{y=&CgTNNJ=d!Ni9++NiE7%$ShV+D#$NSEz&J5P*T)XNK{D9&n+kg$>$d-q~t3k zDr6)UrIaTYr79E^m*^;DmM9dLBo>tvD`e&=lw_nTfZSoE;^gTc46;>EK_NIlH?<@) zH?>#?Y;A67afw25Mq*xiDi-w$N%{FD3i(ATAP40`c*P~9X=!>~Tp<{yE9B%SrW7kA zLe-@vmnfta<>x9myXXe_`zquYfgP)ml3AP$;*@73mZX-Y7U?M{fXo70RSeQpRGJ5N zzoD6KQf7%lZhlItLSkNuLVj9FY97QA-ON0NM1|ti_~sX*=qN1)IR!o36-x5K z?glv<6e~rk#U*-NTz;Uy&C96-#U$MO#R?gTWvL+FWmcssVkIO{(WMn~LCFZ@Xt3`=kqNRiv!pmRCrwX5!M76P2mfH-#LPS_zJN&R`v(Vu z@~WP5Kmf=upoCtUlM2f8psWElI|-EkK#3I`oyFiF^;9S+ssuT`ptM9GQ6V=oFEh6^ z7Zih_+@B9g#NhbO$x%qmDNn2{2FE`%?m;n70u7JjgR0VjrKwMaqnw(#hf?}us_7AxdKs<@oQ%KXw2P!5C`=Nas8X=Y{sHV+c=#X1VbsnCMOC9^o& z*~KM{K)AaUXY0G5s#F1$iunq;iP@>3inz46BtIAI#KfeWRH&166ms(OvlTK@i=ftl z{05Z=6$EaW#hF`XPO5Ku5u`-ZaVjm!3n#dq&c9F zQj}Si3UX~mX0bwgKB(5nQ%K6mPtI1TN-fFq^FnRzLR3PqX4*_GhJsWcBiM~D8QOF z`S~Sqcc)|)7vzA-yF`WD)Vxx#i^?-|a=_7~kcgt+H8D8@A)t_vSgeo#xej2zyg9nEmvZGKV49Og5Od-lUgnlkA-%5yEAyyWHS}y7( z3eaK~R^DZT$|iUXo>-z#o?n`i0!f)A8L7DnCHeWFmJrw`P;&cn` z3KXrN#)AU1?uKM4P)f-wE=f&H0eikuAw9K30a7}qfZG#b|NA&Og3^6@W^!TX0H#p*SDZ49U*RFNc&dK2DAh$AarX zkRp(?KsguGR)E+8PRlu!3ZU4?Er2vLQx%|&16c+21E|Ua+XX7D6cRxV$y9~n#N1Q` zP*WR}EI@4Ou~KM&?RDyxq=K3-pymy@WupmBMc_0G zDvdzqL4pFUNdgWLSnh-rgsFKc#h@++M7?rmUUE)pN-9Vp$T47(Kxx9m-`5rFJ7Z+u zVTh`LQ@0)$muCscV+Hxe#hIX5rzBsYC>5OYK&^XFHJFkQG9OYA!1{&Ygq>Lo(wPQM z6?zH^k@=+xxtZx1C7{j+D9tI9gQ5WxQ6K~I^DvV|ei5h&E&`R=MJ0%kEQaU=bz;jC z^T25zR01iKfGWz=w6xUZ5>USrRskcDF_@*Ip$V$!f&+AvlynSLxX1+zObiSRj0_NP zj}gKaf5E`OAi%)D;FDjR8j_J;tl;Yu#2|iwfq}sRO%z<_D;P0|gAAF$z`y`WR1n1= zWAuGO^dVy4_%hUU42WV7zrn!3Ai>DM0FnhIQm~v6Le7DafdMHt!Fo0@Ffh!3iM!-` zmgqSLL@^|QL>U;sv;+eKgE$Ae+aZk^1yHd0-ZldR02TONh5!Hn literal 0 HcmV?d00001 diff --git a/SparrowOS/Doc/ChangeLog.TXT b/SparrowOS/Doc/ChangeLog.TXT new file mode 100644 index 0000000..c3dc42e --- /dev/null +++ b/SparrowOS/Doc/ChangeLog.TXT @@ -0,0 +1,81 @@ +$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 new file mode 100644 index 0000000..722b247 --- /dev/null +++ b/SparrowOS/Doc/Char.TXT @@ -0,0 +1,16 @@ +$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/CmdLine.TXT b/SparrowOS/Doc/CmdLine.TXT new file mode 100644 index 0000000..beab130 --- /dev/null +++ b/SparrowOS/Doc/CmdLine.TXT @@ -0,0 +1,32 @@ +$WW,1$The cmd line feeds into a $FG,2$C+$FG$ compiler as you type. A statement outside a function executes immediately. Remember to add a semicolon.$WW,1$ + +Look-up the function headers with $FG,2$WordStat$FG$ by hitting $FG,2$$FG$ after typing the first few letters. + +$LK,"Click Here","MN:Dir"$ to see the directory cmd header. It accepts default args from $FG,2$C++$FG$. + +$FG,4$Dir("*.TXT.Z");$FG$ + +If you don't have args, you don't need parenthesis. + +$FG,4$Dir;$FG$ + +There is a current directory, but not a path. To run a program, you typically $FG,2$#include $FG$it. There are several shortcuts for $FG,2$#include$FG$ing files. Right-click or hit enter on a directory listing or press $FG,2$F5$FG$ while editing. + +$FG,4$Ed("NewFile.CPP.Z");$FG$ + +Most filenames end in "$FG,2$.Z$FG$" because they are stored compressed. + +Drives are specified with a letter. The boot drive is specified with a '$FG,2$:$FG$'. + +$FG,4$Drv('B'); $FG,2$B$FG$ drive + +The drive can be specified in a $LK,"Cd","MN:Cd"$() command as in: + +$FG,4$Cd("B:/Temp"); $FG,2$B$FG$ drive +$FG,4$Cd("::/SparrowOS/Demo");$FG$ Boot drive + +$FG,4$$FG,4$Cd("HOME/MusicOrgan"); $FG,2$HOME$FG$ is a dir + +You can place macros in your personal menu for $LK,"Cd","MN:Cd"$() commands. $FG,2$$FG$ to access your menu. + +$MA+A-X+PU,"Take Tour","SpawnUser(\"Cd(\\\"::/SparrowOS/Misc/Tour\\\");;AutoFile(\\\"Tour\\\");\n\");"$ diff --git a/SparrowOS/Doc/Confuse.TXT b/SparrowOS/Doc/Confuse.TXT new file mode 100644 index 0000000..a45c676 --- /dev/null +++ b/SparrowOS/Doc/Confuse.TXT @@ -0,0 +1,49 @@ +$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 new file mode 100644 index 0000000..d86490c --- /dev/null +++ b/SparrowOS/Doc/Constitution.TXT @@ -0,0 +1,34 @@ +$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/LT/Doc/CtrlL.MUZ b/SparrowOS/Doc/CtrlL.TXT similarity index 56% rename from LT/Doc/CtrlL.MUZ rename to SparrowOS/Doc/CtrlL.TXT index 08c1c38..12a85c4 100644 --- a/LT/Doc/CtrlL.MUZ +++ b/SparrowOS/Doc/CtrlL.TXT @@ -1,38 +1,41 @@ -$WW,1$See $LK,"::/LT/Doc/Dollar.TXZ","FI:::/LT/Doc/Dollar.TXZ"$ for details on dollar sign cmds. - -$FG,2$"Expression"$FG$ a number or C+ algebraic term with operators and C+ symbols can be entered. -$FG,2$"Macro"$FG$ Most entries can behave like macro entries if you assign them macro strs. -$FG,2$"AutoStr"$FG$ Like a macro except it is an $LK,"AutoFile","FF:::/LT/Doc/OSGlossary.GLZ,AutoFile"$. You cannot have both an autostr and macro text defined. - -$FG,5$Displayed Text$FG$ is the text that will be displayed for the item. For links, you can leave it blank and the details of the link will be shown. -$FG,5$Hide$FG$ means display nothing, making an entry invisible. - -$FG,5$Left X$FG$ relative to the left margin. -$FG,5$Center X$FG$ relative to the horizontal center of the window. -$FG,5$Right X$FG$ relative to the right margin. -$FG,5$Top Y$FG$ relative to the top of the window. -$FG,5$Center Y$FG$ relative to the vertical center of the window. -$FG$$FG,5$Bottom Y$FG$ relative to the bottom of the window. - -$FG,5$Blink$FG$ make the text blink. -$FG,5$Invert$FG$ make the text inverted. -$FG,5$Underline$FG$ make the text underlined. - -$FG,5$Scroll X Length Expression$FG$ if a value is entered, the text will scroll in an area of this width. -$FG,5$Y Offset Expression$FG$ if a value is entered, the text will be shifted vertically by this many pixels, so you can make superscripts or subscripts. -$FG,5$X Offset Expression$FG$ if a value is entered, the text will be shifted horizontally by this many pixels. - -$FG,5$Tree$FG$ The item will behave like a tree widget, with this as the adam. -$FG,5$Collapsed$FG$ The tree or hidden widget will begin collapsed. -$FG,5$Alias$FG$ For tree entries, the text of the subentry the cursor is on will appear here. This is for drop-down lists. - -$FG,5$Quote$FG$ Make the result suitable for including in a program, in quotes, especially $FG,4$format_str$FG$ entries in class definitions. - -$FG,5$X Expression$FG$ For cursor movements, this is the horizontal value. -$FG,5$Y Expression$FG$ For cursor movements, this is the vertical value. - -$FG,5$$BK,1$PopUp$BK,0$$FG$ For macro's, run the macro in a PopUp window. Do this when making a macro to run a program, so it doesn't tie-up memory. - -$FG,5$Escape$FG$ For macro's, send an $FG,2$ESC$FG$ char to exit before running the macro. Without this, the macro runs in the wrong window, usually. - -$FG,5$Refresh Data$FG$ For entries in programs where values are prompted, this flag updates the entry continuously. +$WW,1$See $LK,"::/SparrowOS/Doc/Dollar.TXT.Z","FI:::/SparrowOS/Doc/Dollar.TXT.Z"$ for details on dollar sign cmds. + +$FG,2$"Expression"$FG$ a num or C+ algebraic term with operators and C+ syms can be entered. +$FG,2$"Macro"$FG$ Most entries can behave like macro entries if you assign them macro strs. +$FG,2$"AutoStr"$FG$ Like a macro except it is an $LK,"AutoFile","FF:::/SparrowOS/Doc/Glossary.TXT.Z,AutoFile"$. You can't have both an autostr and macro text defined. + +$FG,5$Tag Text$FG$ is the text that will be displayed for the item. For links, you can leave it blank and the details of the link will be shown. +$FG,5$Hide$FG$ means display nothing, making an entry invisible. + +$FG,5$Left X$FG$ relative to the left margin. +$FG,5$Center X$FG$ relative to the horizontal center of the window. +$FG,5$Right X$FG$ relative to the right margin. +$FG,5$Top Y$FG$ relative to the top of the window. +$FG,5$Center Y$FG$ relative to the vertical center of the window. +$FG$$FG,5$Bottom Y$FG$ relative to the bottom of the window. + +$FG,5$Blink$FG$ make the text blink. +$FG,5$Invert$FG$ make the text inverted. +$FG,5$Underline$FG$ make the text underlined. + +$FG,5$Scroll X Length Expression$FG$ if a value is entered, the text will scroll in an area of this width. +$FG,5$Y Offset Expression$FG$ if a value is entered, the text will be shifted vertically by this many pixels, so you can make superscripts or subscripts. +$FG,5$X Offset Expression$FG$ if a value is entered, the text will be shifted horizontally by this many pixels. + +$FG,5$Tree$FG$ The item will behave like a tree widget, with this as the root. +$FG,5$Collapsed$FG$ The tree or hidden widget will begin collapsed. +$FG,5$Alias$FG$ For tree entries, the text of the subentry the cursor is on will appear here. This is for drop-down lists. +$FG,5$Define Str$FG$ will substitute a $FG,2$#define$FG$ or $LK,"DefineLoad","MN:DefineLoad"$() string for the tag. + +$FG,5$Quote$FG$ Make the result suitable for including in a program, in quotes, especially $FG,4$fmtstr$FG$ entries in class definitions. + +$FG,5$X Expression$FG$ For cursor movements, the horizontal value. +$FG,5$Y Expression$FG$ For cursor movements, the vertical value. + +$FG,5$$BK,1$PopUp$BK,0$$FG$ For macro's, run the macro in a PopUp window. Do this when making a macro to run a program, so it doesn't tie-up memory. + +$FG,5$Escape$FG$ For macro's, send an $FG,2$$FG$ char to exit before running the macro. Without this, the macro runs in the wrong window, usually. + +$FG,5$Refresh Data$FG$ updates $FG,4$$$DA$$$FG$ entry continuously. + +$FG,5$Html Link$FG$ stores a link which will be embedded if you generate a html version of a document with $LK,"ToHtml","MN:ToHtml"$() or $LK,"Doc2Html","MN:Doc2Html"$(). diff --git a/SparrowOS/Doc/Ctrls.TXT b/SparrowOS/Doc/Ctrls.TXT new file mode 100644 index 0000000..4faf2b2 --- /dev/null +++ b/SparrowOS/Doc/Ctrls.TXT @@ -0,0 +1,3 @@ +$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 new file mode 100644 index 0000000..c7b69f1 --- /dev/null +++ b/SparrowOS/Doc/Customize.TXT @@ -0,0 +1,9 @@ + +$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 new file mode 100644 index 0000000..eaf079b --- /dev/null +++ b/SparrowOS/Doc/CutCorners.TXT @@ -0,0 +1,11 @@ +$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 new file mode 100644 index 0000000..61bb671 --- /dev/null +++ b/SparrowOS/Doc/D3.TXT @@ -0,0 +1,4 @@ +$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/Dbg.TXT b/SparrowOS/Doc/Dbg.TXT new file mode 100644 index 0000000..b2f9353 --- /dev/null +++ b/SparrowOS/Doc/Dbg.TXT @@ -0,0 +1,46 @@ +$WW,1$* You can enter the debugger with $FG,2$$FG$. Enter $LK,"BptsR","MN:BptsR"$() follwed by $LK,"Go2","MN:Go2"$() to continue execution. $LK,"Dbg","MN:Dbg"$() will enter debugger or you might enter the debugger through a fault. You might place a call in your code at fatal error points to enter the debugger. If you see a stk dump, record the label+offset and unassemble, $LK,"U","MN:U"$(), possibly when not in the debugger, find the offset and follow the link to source code. $LK,"Go1","MN:Go1"$() might exit the debugger and retain the task or $LK,"Exit","MN:Exit"$() might exit debugger, but you will lose the task. + +* I use $LK,"progress1","MN:progress1"$-$LK,"progress4","MN:progress4"$ for debugging because they show on the wallpaper. They're just global integer vars. + +* While debugging, you specify addresses of assembly routines with just the label, as in $FG,2$_MALLOC+0x20$FG$. You specify $FG,2$C+$FG$ function names with $FG,2$&$FG$ before functions as in $FG,2$&PrintF+0x10$FG$. + +* You can use $LK,"AdamLog","MN:AdamLog"$() to send text to the Adam task window. It works like $LK,"PrintF","MN:PrintF"$(). I never use this. Instead I use $LK,"DbgNum","MN:DbgNum"$(). + +* $LK,"D","MN:D"$() $LK,"DocD","MN:DocD"$() to do 16 column hex dump mem with numbering from zero. With $LK,"DocD","MN:DocD"$ the values are updated continually and you can alter mem by editing. + +* $LK,"Dm","MN:Dm"$() $LK,"DocDm","MN:DocDm"$() to do 16 column hex dump mem with addresses showing. + +* $LK,"Da","MN:Da"$() to do one column address dump (for stk, etc.) with symbolic addresses. + +* $LK,"Dr","MN:Dr"$() dumps registers. You can display and modify registers in the debugger with var-like labels, $FG,4$RAX$FG$, $FG,4$RBX$FG$, etc. See $LK,"DefineRegs","MN:DefineRegs"$(). + +* $LK,"U","MN:U"$(&FunName+offset) to unassemble mem or $LK,"Uf","MN:Uf"$("FunName") to unassemble a function. + +* $LK,"ProfBin","MN:ProfBin"$(),$LK,"ProfAll","MN:ProfAll"$() and $LK,"ProfRep","MN:ProfRep"$() provide code profiling. See $LK,"::/SparrowOS/Demo/AutoFile/AFProfile.AUT.Z","FI:::/SparrowOS/Demo/AutoFile/AFProfile.AUT.Z"$ (This is an $LK,"AutoFile","FF:::/SparrowOS/Doc/Glossary.TXT.Z,AutoFile"$.) + +* If you recompile $FG,2$OSMain$FG$ with $LK,"InstallBoot","MN:InstallBoot"$(), you can modify the handler for faults here: $LK,"Fault2","MN:Fault2"$(). + +* Use $LK,"DbgNum","MN:DbgNum"$(), $LK,"DbgStr","MN:DbgStr"$() and $LK,"DbgAdd","MN:DbgAdd"$() to print debug info bypassing the window framework. You pass these routines a count in milliseconds for how long it should be displayed. You can use $LK,"Raw","MN:Raw"$($FG,2$TRUE$FG$) to make all output bypass the window framework. The WinMgr runs on core0 and will overwrite raw text from other cores when it updates the screen. + +* Use $LK,"SysDbg","MN:SysDbg"$() to set a flag which you can read with $LK,"IsSysDbg","MN:IsSysDbg"$() when you wish to trigger some debug activity. It's just a handy simple flag, nothing fancy. + +* Use $LK,"SysDeterministic","MN:SysDeterministic"$() to set a flag which tries to keep the system deterministic for debugging. $LK,"IsSysDeterministic","MN:IsSysDeterministic"$(). There is a $FG,2$Deterministic$FG$ OSMain config flag. + +* There are flags for various trace options that can help debugging when there are compiler bugs. Often, you place them in $FG,2$#exe{}$FG$ blocks. +$ID,2$ +$LK,"Echo","MN:Echo"$() turns on or off raw data going into the lexical analyzer. + +$LK,"LTrace","MN:LTrace"$() shows the tokens coming out of the lexical analyzer. + +$LK,"CTrace","MN:CTrace"$() unassembles code generated from the C+ compiler. + +$LK,"PTrace","MN:PTrace"$() shows $FG,2$intermediate code$FG$ comming out of the first stage of the compiler (it's not 100% valid because it hasn't been fixed-up). + +$LK,"OTrace","MN:OTrace"$() shows intermediate code coming-out after optimization. $LK,"OPassTraceMask","MN:OPassTraceMask"$() ctrls which passes are displayed. +$ID,-2$ + +* There is a heap check utility which can find leaks. Use $LK,"HeapLog","MN:HeapLog"$(), and $LK,"HeapLogRep","MN:HeapLogRep"$(). It's a really simple program which intercepts $LK,"MAlloc","MN:MAlloc"$() and $LK,"Free","MN:Free"$(). You can customize the code to find other heap issues. + +* You can define functions for $FG,2$$FG$ keys, but they must operate in a interrupt environment or in the window mgr when in ques kbd msgs. You can do $LK,"Raw","MN:Raw"$() output. Search for $LK,"fp_ctrl_alt_let_cbs","MN:fp_ctrl_alt_let_cbs"$[] and look at the code. They take scancode as an arg. + +* If you recompile $FG,2$OSMain$FG,2$$FG$ with $LK,"InstallBoot","MN:InstallBoot"$(), you can set the $FG,4$MemInit$FG$, option to initialize memory to a value at boot, the $FG,4$HeapInit$FG$ option to cause mem allocated off the heap to be initialized or $FG,4$VarInit$FG$ option so both global and local vars will be initialized to a value. Pick a non-zero value to discover uninitialized var bugs. You can set $LK,"sys_var_init_flag","MN:sys_var_init_flag"$, and $LK,"sys_heap_init_flag","MN:sys_heap_init_flag"$ directly after booting. You can also use the $FG,4$ProtectLow$FG$ option to discover $FG,2$NULL$FG$ dereferences. diff --git a/SparrowOS/Doc/Define.TXT b/SparrowOS/Doc/Define.TXT new file mode 100644 index 0000000..d21b241 --- /dev/null +++ b/SparrowOS/Doc/Define.TXT @@ -0,0 +1,6 @@ +$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 new file mode 100644 index 0000000..8bad513 --- /dev/null +++ b/SparrowOS/Doc/DemoIndex.TXT @@ -0,0 +1,198 @@ +$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/Differences.TXT b/SparrowOS/Doc/Differences.TXT new file mode 100644 index 0000000..722caa9 --- /dev/null +++ b/SparrowOS/Doc/Differences.TXT @@ -0,0 +1,226 @@ +$WW,1$$FG,5$$TX+CX,"SparrowOS C+"$$FG$ + +* 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. + +* See $LK,"::/SparrowOS/Doc/Directives.TXT.Z","FI:::/SparrowOS/Doc/Directives.TXT.Z"$. + +* Built-in types include $FG,2$I0,I8,I16,I32,I64$FG$ for signed 0-8 byte ints and $FG,2$U0,U8,U16,U32,I64$FG$ for unsigned 0-8 byte ints and $FG,2$F64$FG$ for 8 byte floats. + +$FG,2$ U0 void + I8 char + U8 unsigned char + I16 short + U16 unsigned short + I32 int + U32 unsigned int + I64 long (64-bit) + I64 unsigned long (64-bit) + F64 double$FG$ + $FG,4$no F32 float.$FG$ + +* Function with no, or just default args can be called without parentheses. + +* Default args don't have to be on the end. This code is valid: +$ID,2$$FG,2$U0 Test(I64 i=4,I64 j,I64 k=5) +{ + PrintF("%X %X %X\n",i,j,k); +} + +Test(,3);$FG$ +$ID,-2$ +* A string or char constant all alone is sent to $LK,"PutS","MN:PutS"$() or $LK,"PutChar","MN:PutChar"$(). A string with args is sent to $LK,"PrintF","MN:PrintF"$(). An empty string literal signals a variable fmt_str follows. + +$ID,2$$FG,2$U0 Demo1(U8 drv,U8 *fmt,U8 *name,I64 age) +{ + PutS("Hello World!\n"); + PrintF("%s age %d\n",name,age); + PrintF(fmt,name,age); + PutChar(drv); + PutChar('*'); +} + +U0 Demo2(U8 drv,U8 *fmt,U8 *name,I64 age) +{ + "Hello World!\n"; + "%s age %d\n",name,age; + "" fmt,name,age; + '' drv; + '*'; +} +$FG$$ID,-2$ +* When dealing with function addresses, precede the name with "$FG,2$&$FG$". + +* There is no $FG,2$main()$FG$ function. Any code outside of functions gets executed on start-up, in order. + +* You can access bytes or words within any int. $FG,2$i.u8[2]$FG$ returns bits 24-27 in the variable, $FG,2$i$FG$. See $LK,"I64 declaration","MN:I64"$. The real feature is that a class can be accessed as a whole, if you put a type in front of the $FG,2$class$FG$ declaration. + +* Variable arg count functions ($FG,2$...$FG$) can access their args with built-in variables similar to '$FG,2$this$FG$' in C++. They are '$FG,2$I64 argc$FG$' and '$FG,2$I64 argv[]$FG$'. +$ID,2$$WW,0$ +$FG,2$U0 GrPrintF(CDC *dc,I64 x,I64 y,U8 *fmt,...) +{ + U8 *buf=SPrintFJoin(NULL,fmt,argc,argv); + GrPutS(dc,x,y,buf); + Free(buf); +} +$WW,1$$FG$$ID,-2$ +* Allows "$FG,2$5int conversion, but sometimes you want to override. These functions are better than multiplying by "1.0" to convert to float.) + +* The "$FG,2$`$FG$" operator raises a base to a power. + +* A single quote can encompass multiple characters. $FG,2$'ABC'$FG$ is equal to $FG,2$0x434241$FG$. + +* $AN,"","OP_precedence"$SparrowOS $LK,"operator precedence","FA:::/SparrowOS/Compiler/CmpInit.CPP.Z,OP_precedence"$ + $FG,2$`$FG$,$FG,2$>>$FG$,$FG,2$<<$FG$ + $FG,2$*$FG$,$FG,2$/$FG$,$FG,2$%$FG$ + $FG,2$&$FG$ + $FG,2$^$FG$ + $FG,2$|$FG$ + $FG,2$+$FG$,$FG,2$-$FG$ + $FG,2$$FG,2$<$FG$,$FG,2$>$FG$,$FG,2$<=$FG$,$FG,2$>=$FG$ + $FG,2$==$FG$,$FG,2$!=$FG$ + $FG,2$&&$FG$ + $FG,2$$FG,2$^^$FG$ + $FG,2$||$FG$$FG$ + $FG,2$:$FG$,$FG,2$?$FG$ + $FG,2$=$FG$,$FG,2$<<=$FG$,$FG,2$>>=$FG$,$FG,2$*=$FG$,$FG,2$/=$FG$,$FG,2$&=$FG$,$FG,2$|=$FG$,$FG,2$^=$FG$,$FG,2$+=$FG$,$FG,2$-=$FG$ + +* You can use $LK,"OptOn","MN:OptOn"$($LK,"OPTf_WARN_PAREN","MN:OPTf_WARN_PAREN"$) to find unnecessary parentheses in code. + +* You can use $LK,"OptOn","MN:OptOn"$($LK,"OPTf_WARN_DUP_TYPES","MN:OPTf_WARN_DUP_TYPES"$) to find dup local var type statements. + +* With the $FG,2$#exe{}$FG$ feature in your src code, you can place programs that insert text into the stream of code being compiled. See $LK,"#exe {}","FF:::/SparrowOS/OSMain/OSEnd.CPP.Z,#exe {"$ for an example where the date/time and compile-time prompting for cfguration data is placed into a program. The $LK,"StreamPrintF","MN:StreamPrintF"$() and $LK,"StreamPutS","MN:StreamPutS"$() place text into a src program stream following the conclusion of the $FG,2$#exe{}$FG$ blk. + +* No $FG,2$#define$FG$ functions exist (I'm not a fan) + +* No $FG,2$typedef$FG$, use $FG,2$class$FG$. + +* No type-checking + +* Can't use $FG,2$<>$FG$ with $FG,2$#include$FG$, use $FG,2$""$FG$. + +* "$FG,2$$$$FG$" is an escape character. Two dollar signs signify an ordinary $$. See $LK,"::/SparrowOS/Doc/Dollar.TXT.Z","FI:::/SparrowOS/Doc/Dollar.TXT.Z"$. In $FG,2$asm$FG$ or $FG,2$C+$FG$ code, it also refers to the instruction's addr. + +* $FG,2$union$FG$ is more like a class, so you don't reference it with a $FG,2$union$FG$ label after you define it. Some common unions are declared in $LK,"Adam1a.HPP.Z","MN:U16"$ for 1,2,4 and 8 byte objects. If you place a type in front of a union declaration, that is the type when used by itself. See $LK,"::/SparrowOS/Demo/SubIntAccess.CPP.Z","FI:::/SparrowOS/Demo/SubIntAccess.CPP.Z"$. + +* $FG,2$class$FG$ member vars can have meta data. $FG,2$fmtstr$FG$ and $FG,2$fmtdata$FG$ are two meta data types now used. All compiler structures are saved and you can access the compiler's info about classes and vars. See $LK,"::/SparrowOS/Demo/ClassMeta.CPP.Z","FI:::/SparrowOS/Demo/ClassMeta.CPP.Z"$ and $LK,"DocFormDo","MN:DocFormDo"$(). + +* See $LK,"::/SparrowOS/Demo/Exceptions.CPP.Z","FI:::/SparrowOS/Demo/Exceptions.CPP.Z"$. $FG,2$try{} catch{}$FG$ and $FG,2$throw$FG$ are different from C++. $FG,2$throw$FG$ is a function with var ("$FG,2$...$FG$") args. The values passed in $FG,2$throw()$FG$ can be accessed from within a $FG,2$catch{}$FG$ using the $FG,2$Fs->except_argc$FG$ and $FG,2$Fs->except_argv[]$FG$ vars. Within a $FG,2$catch {}$FG$ blk, set the var $FG,2$Fs->catch_except$FG$ to $FG,2$TRUE$FG$ if you want to terminate the search for a handler. By convention, the first arg of $FG,2$except_argv[]$FG$ specifies the exception type num. A list of assigned exception types can be found at $LK,"EXCEPT_LOCAL","MN:EXCEPT_LOCAL"$. For a handler that will catch all excepts, you can use $LK,"CatchAll","MN:CatchAll"$(). + +* A function is available similar to $FG,2$sizeof$FG$ which provides the offset of a member of a class. It's called $FG,2$offset$FG$. You place the class name and member inside as in $FG,2$offset(classname.membername)$FG$. It has nothing to do with 16-bit code. Both $FG,2$sizeof$FG$ and $FG,2$offset$FG$ only accept one level of member vars. That is, you can't do $FG,2$sizeof(classname.membername.submembername)$FG$.$FG$ + +* There is no $FG,2$continue$FG$ statement. Use $FG,2$goto$FG$. + +* No bit field support, but there are bit access $LK,"library routines","HI:Bit"$. + +* $FG,2$lock{}$FG$ can be used to apply asm $FG,2$LOCK$FG$ prefixes to code for safe multicore read-modify-write accesses. The code bracked with have $FG,2$LOCK$FG$ asm prefix's applied to relevant instructions within. It's a little shoddy. See $LK,"::/SparrowOS/Demo/MultiCore/Lock.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/Lock.CPP.Z"$. + +* There is a function called $LK,"MSize","MN:MSize"$() which gives the size of an object allocated off the heap. For larger size allocations, the system rounds-up to a power of two, so $FG,2$MSize()$FG$ lets you know the real size and you can take full advantage of it. + +* You can $LK,"Free","MN:Free"$() a $FG,2$NULL$FG$ ptr. Useful variants of $LK,"MAlloc","MN:MAlloc"$() can be found $LK,"Here","MN:CAlloc"$. Each task has a heap and you can $FG,2$MAlloc$FG$ and $FG,2$Free$FG$ off of other task's heaps, or make an independent heap with $LK,"HeapCtrlIndependentInit","MN:HeapCtrlIndependentInit"$(). + +* The stk does not grow because virtual mem is not used. I recommend allocating large local vars from the heap. You can change $LK,"DFT_STK","MN:DFT_STK"$ and recompile $FG,2$OSMain$FG$ or request more when doing a $LK,"Spawn","MN:Spawn"$(). You can use $LK,"CallStkGrow","MN:CallStkGrow"$(), but it's odd. See $LK,"::/SparrowOS/Demo/StkGrow.CPP.Z","FI:::/SparrowOS/Demo/StkGrow.CPP.Z"$. + +* Only one base class is allowed. + +* All values are extended to 64-bit when accessed. Intermediate calculations are done with 64-bit values. + +$ID,2$The follow examples should be inserted in a function, so that register variables are used. (Global vars are never register.) + +$FG,2$I16 i; +I32 j; +j=i=0x12345678; //Resulting i is 0x5678 but j is 0x12345678 + +I64 i=0x8000000000000000; +PrintF("%X\n",i>>1); //Result is 0xC000000000000000 as expected + +I64 u=0x8000000000000000; +PrintF("%X\n",u>>1); //Result is 0x4000000000000000 as expected + +I32 i=0x80000000; //constant is loaded into a 64-bit register var. +PrintF("%X\n",i>>1); //Result is 0x40000000 + +I32 i=-0x80000000; +PrintF("%X\n",i>>1); //Result is 0xC0000000 as expected + +$ID,-2$$FG$ +$FG,5$$TX+CX,"PrintF Family"$$FG$ + +$LK,"MSPrintF","MN:MSPrintF"$() is like $LK,"SPrintF","MN:SPrintF"$() but it returns a $LK+S,"MAlloc","MN:MAlloc"$ated str. It is vary handy because you don't have to worry about overflow. + +$LK,"PutS","MN:PutS"$() doesn't print a new line. + +$LK,"Auto","MN:Auto"$(U8 *fmtstr,...) sends text to the current task's input buffer. +$LK,"AutoStr","MN:AutoStr"$(U8 *fmtstr,...) sends text of an $LK,"AutoFile","FF:::/SparrowOS/Doc/Glossary.TXT.Z,AutoFile"$ to the keyboard stream of the current TASK but can also do mouse cmds. + +$LK,"XTalk","MN:XTalk"$(CTask *task,U8 *fmtstr,...) and text to another task's input buffer. +$LK,"XTalkStr","MN:XTalkStr"$(CTask *task,U8 *fmtstr,...) sends text of an $LK,"AutoFile","FF:::/SparrowOS/Doc/Glossary.TXT.Z,AutoFile"$ to the keyboard stream of another TASK but can also do mouse cmds. + + +$LK,"DocPutS","MN:DocPutS"$(CDoc *doc,U8 *src) and $LK,"DocPrintF","MN:DocPrintF"$(CDoc *doc,U8 *fmtstr,...) send text to a linked text file. You can buffer to a Doc and save it, providing the functionality of $FG,2$fprintf$FG$. See $LK,"::/SparrowOS/Demo/Dsk/FPrintF.CPP.Z","FI:::/SparrowOS/Demo/Dsk/FPrintF.CPP.Z"$. + +$LK,"Adam","MN:Adam"$(U8 *fmtstr,...) send text to the adam task to be compiled and run. +$LK,"AdamLog","MN:AdamLog"$(U8 *fmtstr,...) and $LK,"AdamErr","MN:AdamErr"$(U8 *fmtstr,...) send text to the adam task to be displayed. + +$LK,"StreamPrintF","MN:StreamPrintF"$(U8 *fmtstr,...) and $LK,"StreamPutS","MN:StreamPutS"$(U8 *src) send text to the stream of code being compiled and must reside in a $FG,2$#exe{}$FG$ blk. + +$LK,"GrPrintF","MN:GrPrintF"$(CDC *dc,I64 x,I64 y,U8 *fmtstr,...) and $LK,"GrPutS","MN:GrPutS"$(CDC *dc,I64 x,I64 y,U8 *src) plots text in graphics mode. $LK,"GrVPrintF","MN:GrVPrintF"$() and $LK,"GrVPutS","MN:GrVPutS"$() will print vertically. + +$LK,"ExePrintF","MN:ExePrintF"$(U8 *fmtstr,...) and $LK,"ExePutS","MN:ExePutS"$(U8 *src) compile and execute a string. Note: It returns the result of the last executed expression. + +$BK,1$Note:$BK,0$ If no $FG,2$PutS$FG$ variant is available, you can use $FG,2$PrintF("%s",src)$FG$. + + +$AN,"","PrintF_Codes"$The $LK,"PrintF","MN:PrintF"$() family supports extended format codes. See $LK,"SPrintFJoin","MN:SPrintFJoin"$(). +$ID,2$$FG,2$%$FG$[$FG,2$-$FG$][$FG,2$0$FG$][$FG,5$width$FG$][$FG,2$.$FG,5$decimals$FG$][$FG,5$flags$FG$][$FG,2$h$FG,5$sub_fmt$FG$][$FG,5$main_fmt$FG$] + +$FG,5$flags:$FG$ +$ID,2$* $FG,2$'t'$FG$ is a flag which will truncate to field width. +* $FG,2$','$FG$ is a flag which will add commas every three digits in a $FG,2$%d$FG$, $FG,2$%f$FG$,$FG,2$ %g$FG$,$FG,2$ %e$FG$ and $FG,2$%n$FG$ entries. +* $FG,2$'$$'$FG$ is a flag which affects the $FG,2$%Q$FG$ entry, converting $FG,2$'$$'$FG$ to $FG,2$"\044"$FG$. +* $FG,2$'k'$FG$ is a flag which forces 1000 instead of 1024 on integer with $FG,5$sub_fmts$FG$. +$ID,-2$ +$FG,5$sub_fmt:$FG$ +$ID,2$On date or time entries, the sub_format specifies the format. See $LK,"::/SparrowOS/Demo/DateTime.CPP.Z","FI:::/SparrowOS/Demo/DateTime.CPP.Z"$. + +$AN,"","sub_fmt"$On $FG,2$"%n"$FG$, $FG,2$"%d"$FG$ or $FG,2$"%u"$FG$, the sub_fmt causes thousands mode. + $FG,2$"%h?n"$FG$ will pick a var exponent multiples of three unit, while $FG,2$"%h-3n"$FG$, for example, will display milli units or $FG,2$"%h6n"$FG$ will display mega units. The $FG,2$'k'$FG$ flag is always on for $FG,2$"%n"$FG$. See $LK,"::/SparrowOS/Demo/PrintF.CPP.Z","FI:::/SparrowOS/Demo/PrintF.CPP.Z"$. +$ID,-2$ +* $FG,2$"%n"$FG$ will print a floating point in engineering notation, exponents being multiples of three. If it has a $FG,5$sub_fmt$FG$ code, it will display scientific units letters. + +* $FG,2$"%S"$FG$ will print a Define entry. + +* $FG,2$"%C"$FG$ will print a ToUpper character. + +* $FG,2$"%F"$FG$ will print a text file. + +* $FG,2$"%P"$FG$ will display a PSECT expression which is good for ptrs or addresses. + +* $FG,2$"%T"$FG$ and $FG,2$"%D"$FG$ will display a date or time and the format is selected with a subcode, entered after a "$FG,2$h$FG$". Example: "$FG,2$%20h1D$FG$" uses date format code "1". See $LK,"::/SparrowOS/Demo/DateTime.CPP.Z","FI:::/SparrowOS/Demo/DateTime.CPP.Z"$, $LK,"MSPrintFDate","MN:MSPrintFDate"$() and $LK,"MSPrintFTime","MN:MSPrintFTime"$() for subcodes. + +* $FG,2$"%z"$FG$ will display a subentry of an enumerated list of text entries. It calls $LK+S,"ListEntryPt","MN:ListEntryPt"$(). Pass entry_num first, list second. + +* $FG,2$"%Z"$FG$ will display a Define subentry. Pass entry_num first, list_systext second. + +* $FG,2$"%Q"$FG$ will convert "\" to "\\" and quote to backslash quote. (For use in creating strs in strs.) + +* $FG,2$"%q"$FG$ will reverse a $FG,2$"%Q"$FG$. +$ID,-2$ diff --git a/SparrowOS/Doc/Directives.TXT b/SparrowOS/Doc/Directives.TXT new file mode 100644 index 0000000..c83958f --- /dev/null +++ b/SparrowOS/Doc/Directives.TXT @@ -0,0 +1,59 @@ +$WW,1$The compiler looks-ahead a token most of the time, so you might throw an extra semicolon after the directive if it's not taking affect right away. + +$FG,2$#include ""$FG$ There is no angle bracket <> form of this directive. +$FG,2$#exe {}$FG$ Will execute code at compile-time and can be used to insert code into the stream being compiled using $LK,"StreamPrintF","MN:StreamPrintF"$(). +$FG,2$#define$FG$ Define string constant +$FG,2$#assert$FG$ Print a warning during compilation if an expression is not true. +$FG,2$#if$FG$ Include code if an expresion is true. +$FG,2$#else +#endif +#ifdef,#ifndef $FG$Include code if a sym is defined. +$FG,2$#ifstatic,#ifnstatic $FG$Include code if in static compiler mode. +$FG,2$defined()$FG$ Is a function that can be used in expressions. +$FG,2$#help_index$FG$, $FG,2$#help_file$FG$ See $LK,"Help System","FI:::/SparrowOS/Doc/HelpSystem.TXT.Z"$. + +See $LK,"Scoping and Linkages","FI:::/SparrowOS/Doc/ImportExports.TXT.Z"$, $LK,"preprocessor","FF:::/SparrowOS/Compiler/Lex.CPP.Z,KW_DEFINE"$ and $LK,"Compiler Options","FI:::/SparrowOS/Doc/Options.TXT.Z"$. + + +$FG,5$Assembler Directives$FG$ + +See $LK,"::/SparrowOS/Compiler/OpCodes.TXT.Z","FI:::/SparrowOS/Compiler/OpCodes.TXT.Z"$ for opcodes. They're not standard. Some invalid instructions are not flagged and some valid instructions are not implemented. 16-bit asm support is limited. + +Here are example instruction formats: +$HL,1$ ADD RAX,I64 FS:DISP[RSI+RDI*8] +$HL,0$$HL,1$ ADD RAX,I64 [DISP] +$HL,0$ +$FG,2$$$$FG$ Current compiler output pos (instruction ptr). Even works in C+ expressions. + +$FG,2$$$$FG$ works in $FG,2$class$FG$es. + $FG,2$class MyFun + { + $$=-16; + I64 local1; + I64 local2; + $$=$$+256; + I64 crazy; + };$FG$ + +$FG,4$LABEL$FG,2$:: +$FG$ Defines an exported glbl label. + +$FG,4$LABEL$FG,2$: +$FG$ Defines an non-exported glbl label. + +$FG,2$@@$FG,4$LABEL$FG,2$: +$FG$ Defines a local label with scope valid between two global labels. + +$FG,2$DU8$FG$, $FG,2$DU16$FG$, $FG,2$DU32$FG$, $FG,2$DU64$FG$ + Define BYTE, WORD, DWORD or QWORD. Can be used with $FG,2$DUP()$FG$ and ASCII strings. For your convenience, the ASCII strings do not have terminating zeros. Define cmds must end with a semicolon. + +$FG,2$USE16$FG$, $FG,2$USE32$FG$, $FG,2$USE64$FG$ + +$FG,2$IMPORT$FG$ $FG,4$sym1name$FG$, $FG,4$sym2name$FG$; + +$FG,2$LIST$FG$, $FG,2$NOLIST$FG$ + +$FG,2$ALIGN$FG$ $FG,4$num$FG$, $FG,4$fill_byte$FG$ + Align to $FG,4$num$FG$ boundary and fill with $FG,4$fill_byte$FG$. + +See $LK,"::/SparrowOS/Demo/Asm/AsmAndC.CPP.Z","FI:::/SparrowOS/Demo/Asm/AsmAndC.CPP.Z"$ and $LK,"::/SparrowOS/Demo/Asm/AsmAndC2.CPP.Z","FI:::/SparrowOS/Demo/Asm/AsmAndC2.CPP.Z"$. diff --git a/SparrowOS/Doc/Doc.TXT b/SparrowOS/Doc/Doc.TXT new file mode 100644 index 0000000..4404dc1 --- /dev/null +++ b/SparrowOS/Doc/Doc.TXT @@ -0,0 +1,8 @@ +$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/Dollar.TXT b/SparrowOS/Doc/Dollar.TXT new file mode 100644 index 0000000..1dc8fc1 --- /dev/null +++ b/SparrowOS/Doc/Dollar.TXT @@ -0,0 +1,170 @@ +$WW,1$$FG,5$$TX+CX,"Dollar Sign Cmds"$$FG$ + +SparrowOS supports rich-text type cmds which are bracketed with '$$'. Use $FG,2$$FG$ to experiment with them. Use $FG,2$CTRL-T$FG$ to toggle between plain text and rich text. + +The format of '$$' cmds includes a two character code, +/-flags, a comma and args separated by commas. The flags often determine how many and what args the cmd takes. + +See $LK,"::/SparrowOS/Doc/CtrlL.TXT.Z","FI:::/SparrowOS/Doc/CtrlL.TXT.Z"$ and $LK,"::/SparrowOS/Demo/Doc/DemoDoc.TXT.Z","FI:::/SparrowOS/Demo/Doc/DemoDoc.TXT.Z"$. + +See $LK,"Doc Type Defines","MN:DOCT_TEXT"$ and $LK,"Doc Type Codes","FF:::/SparrowOS/Adam/Doc/Doc.CPP.Z,ST_DOC_CMDS"$ +$TR,"TX Text"$ +$ID,2$Normally, text is not bracketed with "$$", but if you wish to specify flag attr to center text, you can bracket them with "$$" and enter flags such as "$FG,4$+CX$FG$". You can't edit them if they are bracketed by "$$" unless you toggle to plain text mode with . +$ID,-2$$TR,"CR Hard Carriage Return"$ +$ID,2$Carriage returns are normally specified without being bracketed with "$$". +$ID,-2$$TR,"SR Soft Carriage Return"$ +$ID,2$Word wrap uses soft carriage returns which are not saved. You never place soft carriage returns by yourself. +$ID,-2$$TR,"TB Tab"$ +$ID,2$Tabs are normally not bracketed with "$$", but are stored as ASCII#9. +$ID,-2$$TR,"CU Cursor pos"$ +$ID,2$The cursor pos is usually stored as a ASCII#5 character and is not bracketed with "$$". You do not normally enter cursor pos cmds yourself. +$ID,-2$$TR,"ID Indent +/- num"$ +$ID,2$This changes the indention deeper if positive or shallower if negative. It effects the behavior of trees. +$ID,-2$$TR,"DA Data"$ +$ID,2$primarily used for forms that prompt for data. Use $FG,2$$FG$ as a resource editor-type thing to generate the text you'll need in your "$FG,2$fmtstr$FG$" cmd in a $FG,2$class$FG$. If you add it directly with $LK,"DocPutS","MN:DocPutS"$(), you'll need to fill-in the data addr. See $LK,"DocFormDo","MN:DocFormDo"$(),$LK,"::/SparrowOS/Demo/Doc/Form.CPP.Z","FI:::/SparrowOS/Demo/Doc/Form.CPP.Z"$. + +If there is a ':', the space after the first ':' in the format string marks the first valid cursor pos. + +$ID,-2$$TR,"Text Colors"$ +$ID,2$You place an expression(usually a color define--see $LK,"color defines","MN:BLACK"$) to indicate which of the 16 colors to use. If you enter no num, color returns to the default. +$FG,5$FD$FG$ Default Foreground Color +$FG,5$BD$FG$ Default Background Color +$FG,5$FG$FG$ Foreground Color +$FG,5$BG$FG$ Background Color +$FG,5$F2$FG$ Alt Foreground Color (Paren & Brace coloring) +$FG,5$FL$FG$ Foreground of Links +$FG,5$FM$FG$ Foreground of Macros/Menu-Values +$FG,5$FA$FG$ Foreground of Anchors +$FG,5$FH$FG$ Foreground of Hidden widgets +$FG,5$FE$FG$ Foreground of Trees +$FG,5$FU$FG$ Foreground of User Text +$FG,5$FB$FG$ Foreground of Binary Tags +$FG,5$FY$FG$ Foreground of Keywords +$FG,5$FR$FG$ Foreground of Keywords2 +$FG,5$FC$FG$ Foreground of Comments +$FG,5$FQ$FG$ Foreground of Quotes +$ID,-2$$TR,"FU,BU User Prompts"$ +$ID,2$special color changing cmds. They are used when the user is prompted for text at the cmd line. They rst the cursor pos if the cursor is posed before them on the line. They are also used to indicate the start of a prompted str. +$ID,-2$$TR,"CL clear"$ +$ID,2$Clear all previous entries except ones with hold($FG,4$+H$FG$) flags. You might want $FG,4$+H$FG$ on word wrap entries. Alternatively, you can use $LK,"DocClear","MN:DocClear"$(). +$ID,-2$$TR,"WW Word Wrap"$ +$ID,2$Include a 1 or 0. +$ID,-2$$TR,"HL Highlighting"$ +$ID,2$Include a 1 or 0. +$ID,-2$$TR,"UL Underline"$ +$ID,2$Include a 1 or 0. +$ID,-2$$TR,"IV Invert"$ +$ID,2$Include a 1 or 0. +$ID,-2$$TR,"BK Blink"$ +$ID,2$Include a 1 or 0. +$ID,-2$$TR,"SX Shift X pos"$ +$ID,2$* Include a num from -16 to 15. +* Only foreground is shifted. +* Positive right. +$ID,-2$$TR,"SY Shift Y pos"$ +$ID,2$* Include a num from -16 to 15. +* Only foreground is shifted. +* Positive down. +$ID,-2$$TR,"CM Cursor Movement"$ +$ID,2$See $LK,"::/SparrowOS/Demo/Doc/CursorMove.CPP.Z","FI:::/SparrowOS/Demo/Doc/CursorMove.CPP.Z"$. +$ID,-2$$TR,"AN Anchor"$ +$ID,2$ +$ID,-2$$TR,"LK Link"$ +$ID,2$By default, links have a separate tag text from link text, but with the $FG,4$-A$FG$ flag you can make the link displayed as in example 3. + +$LK,"Link Types","MN:LK_FILE"$ + +Examples: to see + +1)$LK,"File link to HelpIndex.TXT.Z","::/SparrowOS/Doc/HelpIndex.TXT.Z"$ +2)$LK,"File link to HelpIndex.TXT.Z with link type file","FI:::/SparrowOS/Doc/HelpIndex.TXT.Z"$ +3)File link without different tag str.$LK-A,"::/SparrowOS/Doc/HelpIndex.TXT.Z"$ +4)$LK,"File find link searching for 'Admin'","FF:::/SparrowOS/Doc/HelpIndex.TXT.Z,Admin"$ +5)$LK,"File find link searching for 5th 'CTRL'","FF:::/SparrowOS/OSMain/Adam1a.HPP.Z,CTRL:5"$ +6)$LK,"Manual page link","MN:PrintF"$ +7)$LK,"File line num link","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,200"$ +8)$LK,"File anchor link -- to see anchor after you click","FA:::/SparrowOS/OSMain/Define1a.CPP.Z,OS_DEFINE"$ +9)$LK,"Bible Link","BF:Acts,2:3"$ The chapter:verse actually just does a text search. +10) $LK,"Help Index Link","HI:Doc"$. +$ID,-2$$TR,"BT Button"$ +$ID,2$See $LK,"::/SparrowOS/Demo/Doc/MenuButton.CPP.Z","FI:::/SparrowOS/Demo/Doc/MenuButton.CPP.Z"$. +$ID,-2$$TR,"CB Check Box"$ +$ID,2$ +$ID,-2$$TR,"MA Macro"$ +$ID,2$Macro's are usually placed into menu/help areas and they have the '$FG,4$+X$FG$' flag set by default. Adding '$FG,4$-X$FG$' prevents the usual $FG,2$$FG$ from being sent (which exits the macro screen). Note that when you output a macro to the cmd line, when the user clicks on it, it will go to the bottom and execute it unless you cancel the $FG,2$$FG$ with a '$FG,4$-X$FG$'. + +$ID,-2$$TR,"MU Menu Value"$ +$ID,2$See $LK,"PopUpRangeI64","MN:PopUpRangeI64"$(). +$ID,-2$$TR,"HX Hex Edit"$ +$ID,2$See $LK,"DocD","MN:DocD"$(). +$ID,-2$$TR,"Hidden Text Widget"$ +$ID,2$$FG,5$HS Start of hidden text$FG$ +$FG,5$HE End of hidden text$FG$ +$FG,5$$FG$Hidden text widgets allow text to be placed in collapsable brackets like this $HS$$FG$This is hidden.$HE$ which can be expanded by clicking them. If you place a '$FG,4$-C$FG$' flag to uncollapse it, it will start expanded like this $HS$$FG$Click to hide$HE$. They can be nestled like this $HS$Click here:$HS$This is nestled.$HE$ okay?$HE$. +$ID,-2$$TR,"TR Tree Widget"$ +$ID,2$A tree widget is a branch in a collapsable tree. The domain of the branch extends from the first +indent until enough -indents bring it back to where it started. Tree's begin collapsed unless a $FG,4$-C$FG$ flag is present. +$ID,-2$$TR,"SP Sprite"$ +$ID,2$You can insert a sprite into text with $FG,2$$FG$. It is critical where the cursor is at the time you enter $FG,2$$FG$ because the sprite will be offset from that location. This is especially important when adding images to programs. Numbers for sprites are automatically chosen because copying to and from the clipboard requires this. You can insert another sprite with the same image by hitting $FG,2$$FG$ and manually adding a $FG,4$$$SP$$$FG$ entry with the same num. You can cause the $FG,4$$$SP$$$FG$ cmd to appear with some text associated with it by manually adding text into the $FG,4$$$SP$$$FG$ cmd, as in $FG,4$$$SP,"pic 2",2$$$FG$. +$ID,-2$$TR,"IB Insert Binary"$ +$ID,2$This cmd is used to tell the compiler to fetch the binary data stored after the end of text. There is basically one type of binary data in DOC's at this point--sprites-- created with $FG,2$$FG$. They have a number associated with them. This number is automatically chosen, because copying to the clip-board and back requires renuming. To use a $FG,4$$$IB$$$FG$ cmd, toggle to plain text ($FG,2$$FG$) after inserting a sprite and check the number in the $FG,4$$$SP$$$FG$ cmd. Create a $FG,4$$$IB$$$FG$ cmd with the same number and the sprite will be inserted into the compiled stream like a string constant. You can optionally include tag text to be displayed for the $FG,4$$$IB$$$FG$ cmd. + +The main reason for the $FG,4$$$IB$$$FG$ cmd at this point is to pass a arg to the $LK,"CSpritePlot3","MN:CSpritePlot3"$() function. See $LK,"::/SparrowOS/Demo/Graphics/SpritePlot.CPP.Z","FI:::/SparrowOS/Demo/Graphics/SpritePlot.CPP.Z"$. + +$ID,-2$$TR,"IT Insert Binary Type"$ +$ID,2$See $FG,4$$$IB$$$FG$. This cmd inserts a number into the compiled stream describing the type of binary data associated with a num. See $LK,"DOCBT_CSPRITE","MN:DOCBT_CSPRITE"$ for the types of binary data in DOC's. +$ID,-2$$TR,"IS Insert Binary Size"$ +$ID,2$See $FG,4$$$IB$$$FG$. This cmd inserts a number into the compiled stream describing the size of binary data associated with a number. +$ID,-2$$TR,"BP Break Point"$ +$ID,2$This is used by the debugger to mark a break point. +$ID,-2$$TR,"HC,HI,HV html"$ +$ID,2$The $LK,"ToHtml","MN:ToHtml"$() or $LK,"Doc2Html","MN:Doc2Html"$() routines will generate a html version of a document. You can cause html code to be injected with $FG,5$HC$FG$. If you happen to have a 640x480 image, you can inject it with $FG,5$HI$FG$. If you happen to have a 640x480 $FG,2$.wmv$FG$ video, you can inject it with $FG,5$HV$FG$. Use the $FG,4$+HTML$FG$ flag to inject a html link. +$ID,-2$$TR,"ER Error"$ +$ID,2$When errors are detected in dollar cmds, an $FG,5$ER$FG$ entry is generated to hold the garbage so it is not lost. +$ID,-2$ +See $LK,"Doc Flag Defines","MN:DOCEf1_AUX_STR"$ and $LK,"Doc Flag Codes","FF:::/SparrowOS/Adam/Doc/Doc.CPP.Z,ST_DOC_FLAGS"$ +$FE,4$See $LK+S,"dft_flags","FF:::/SparrowOS/Adam/Doc/DocPlain.CPP.Z,doc_dft_flags1"$. +$TR,"FLAGS"$ +$ID,2$$TR,"+H Hold"$ +$ID,2$Tells it to not delete it when cleared with $FG,5$CL$FG$ or when the doc->max_entries is exceeded. Word wrap is a good one to hold. +$ID,-2$$TR,"+A Auxilliary Str"$ +$ID,2$Some cmds need other strs. A $FG,4$+A$FG$ means an auxiliary str is present. Links have $FG,4$+A$FG$ by default, so use a $FG,4$-A$FG$ if you wish the tag str and the link str to be the same. +$ID,-2$$TR,"+D Define Str"$ +$ID,2$A $FG,4$+D$FG$ means a define str is present. The tag will be regenerated by substituting the value of a system $FG,2$#define$FG$ or $LK,"DefineLoad","MN:DefineLoad"$() string. See $LK,"::/SparrowOS/Demo/Doc/DefineStr.CPP.Z","FI:::/SparrowOS/Demo/Doc/DefineStr.CPP.Z"$. +$ID,-2$$TR,"+TR Tree"$ +$ID,2$* Make a tree branch. Usually, this is placed on a text($FG,5$TX$FG$) entry. The tree extends from the start until another tree entry or when indentation has been expanded and reduced back to the starting value. +* A $FG,4$+C$FG$ flag on a tree will start it collapsed. +$ID,-2$$TR,"+PU PopUp"$ +$ID,2$A PopUp flag on a macro ($FG,5$MA$FG$) will cause the cmds to run in a new task, a pop-up window. +$ID,-2$$TR,"+C Collapsed"$ +$ID,2$A collapsed flag on a tree $FG,5$TR$FG$ entry or a hide start $FG,5$HS$FG$ will cause it to start collapsed. A $FG,4$-C$FG$ flag will make it start open. +$ID,-2$$TR,"+X (Exit)"$ +$ID,2$* A exit flag will cause a macro to send an $FG,2$$FG$ before running(to exit the personal menu screen and return to the cmd prompt). Actually, the default has an exit flag set so you might add a $FG,4$-X$FG$ to turn-off $FG,2$ESC$FG$. +* If an entry is already at the cmd prompt, the $FG,4$+X$FG$ will cause a movement to the bottom of the window. +$ID,-2$$TR,"+Q (Abort Quit)"$ +$ID,2$A quit flag is similar to a $FG,4$+X$FG$ except a $FG,2$$FG$ instead of an $FG,2$$FG$ to exit. +$ID,-2$$TR,"+Z Zero"$ +$ID,2$A zero flag on a hex edit($FG,5$HX$FG$) entry will cause the offset from zero. A $FG,4$-X$FG$ will show the actual memory addr. By default, $FG,5$HX$FG$ has the zero flag set. +$ID,-2$$TR,"+HTML"$ +$ID,2$The $LK,"ToHtml","MN:ToHtml"$() or $LK,"Doc2Html","MN:Doc2Html"$() routines will generate a html version of a document. You can cause html link on an item with $FG,4$+HTML$FG$. +$ID,-2$$TR,"+BP"$ +$ID,2$The Bin Ptr Link flags lets you specify a file name and bin num to import a bin$FG$. $FG,2$$$SP+BP,"",1,"filename,1"$$$FG$ will import bin num "1" from filename. +$ID,-2$$TR,"+AL Alias"$ +$ID,2$An alias flag on a tree entry ($FG,4$+TR$FG$) will cause the text of the current entry the cursor is on to be copied to this entry. This creates something similar to a drop-down window, but it doesn't work well yet. +$ID,-2$$TR,"+RD Refresh Data"$ +$ID,2$The Refresh Data flag on a $FG,5$DA$FG$ or a $FG,5$CB$FG$ makes the value updated continuously. +$ID,-2$$ID,-2$$FE,5$ + +$FG,5$EXAMPLES: + +$FG$ to see how the following were done. +$UL,1$Underlined$UL,0$ $IV,1$Inverted$IV,0$ $BK,1$Blinking$BK,0$ $SY,-3$super$SY,0$ $SY,0$$SY,3$sub$SY,0$ +$TX+SCX,"This is a big long scrolling msg.",10$ + +$FG,5$Cursor Movements:$FG$ +$CM+LX,3,3$Cursor moved 3 rows down and to 3rd column from left. +$CM+RX,-40,3$Note mandatory comma after flags + +The following may be changed to modes instead of attr with flags. + +$TX+CX,"This is centered"$ + +$TX+RX,"This is right justified"$ diff --git a/SparrowOS/Doc/EdPullDown.TXT b/SparrowOS/Doc/EdPullDown.TXT new file mode 100644 index 0000000..56f8840 --- /dev/null +++ b/SparrowOS/Doc/EdPullDown.TXT @@ -0,0 +1,78 @@ +File +{ + Save(,CH_CTRLS); + SaveAs(,CH_CTRLA); + Abort(,CH_SHIFT_ESC); + Exit(,CH_ESC); +} + +Edit +{ + Undo(,CH_CTRLH,0x80E0000080E); + Cut(,CH_CTRLX); + Copy(,CH_CTRLC); + Paste(,CH_CTRLV); + DelLine(,CH_CTRLY); + FindReplace(,CH_CTRLF); + FindNext(,,0x3D0000003D); + FindLast(,,0x23D0000023D); + GoLine(,CH_CTRLG,0x42200000422); + GoBegin(,,0x4C800000448); + GoEnd(,,0x4D000000450); + GoLeft(,,0x4CB0000044B); + GoRight(,,0x4CD0000044D); + GoLBrace(,0x5B,0x61A0000061A); + GoRBrace(,0x5D,0x61B0000061B); + Macro(,,0x3C0000003C); + PlayMacro(,,0x23C0000023C); +} + +Insert +{ + Widget(,CH_CTRLL,0x42600000426); + Resource(,CH_CTRLR,0x41300000413); + FileName(,,0x3E0000003E); + DirName(,,0x23E0000023E); + IndentIn(,CH_CTRLI,0x41700000417); + IndentOut(,CH_CTRLI,0x61700000617); + WordWrapOn(,CH_CTRLW,0x41100000411); + WordWrapOff(,CH_CTRLW,0x61100000611); + UnderlineOn(,CH_CTRLU,0x41600000416); + UnderlineOff(,CH_CTRLU,0x61600000616); + BlinkOn(,CH_CTRLK,0x42500000425); + BlinkOff(2,CH_CTRLK,0x62500000625); + InvertOn(,CH_CTRLZ,0x42C0000042C); + InvertOff(,CH_CTRLZ,0x62C0000062C); + SuperToggle(,CH_CTRLP,0x41900000419); + SubToggle(,CH_CTRLP,0x61900000619); + PageBreak(,CH_CTRLJ,0x41C0000041C); +} + +Program +{ + CodeTools(,CH_CTRLL,0x62600000626); + Include(,0,0x3F0000003F); + AdamInclude(,0,0x23F0000023F); + Go(,0,0x3F0000003F); + StepOver(,,0x4400000044); + StepInto(,,0x5700000057); + SetBpt(,,0x4300000043); + ClearBpts(,,0x24300000243); +} + +View +{ + PlainText(,CH_CTRLT); + Collapse(,CH_CTRLO,0x61800000618); + Uncollapse(,CH_CTRLO,0x41800000418); + Border(,CH_CTRLB); + FileMgr(,CH_CTRLD,0x42000000420); + Search(,CH_CTRLF,0x62100000621); +} + +Help +{ + Menu(,CH_CTRLM,0x43200000432); + Help(,,0x3B0000003B); + About(,,0x23B0000023B); +} diff --git a/SparrowOS/Doc/Features.TXT b/SparrowOS/Doc/Features.TXT new file mode 100644 index 0000000..a72d6f0 --- /dev/null +++ b/SparrowOS/Doc/Features.TXT @@ -0,0 +1,43 @@ +$WW,1$$FG,5$$TX+CX,"SparrowOS' Features"$$FG$ + +* $FG,4$$TX+HTML,"x86_64","http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$, ring-0-only, single-address-map (identity), multitasking kernel with multicore support. + +* Free, $FG,2$public domain$FG$, and $FG,2$100% open source$FG$. + +* 64-bit $FG,2$compiler/assembler$FG$ that truly compiles, no interpreter. + +* No 32-bit krufty code. + +* 640x480 16 color $FG,2$VGA$FG$ graphics. + +* Keyboard & mouse support. + +* Hard drives, support for $FG,2$FAT32$FG$ and SparrowOS native file systems with file compression. + +* $LK,"Partitionming","MN:PrtDsk"$ tool. + +* $FG,2$Boot loaders$FG$ for CD-ROM and hard disk. + +* $FG,2$CD/DVD$FG$ reading and writing, $FG,2$ISO9660$FG$ file system. Can make bootable $FG,2$ISO9660$FG$ ISO files so you can roll-your-own distributions. + +* Source files and the command line window can have graphics, links, icons, trees, colors, super/sub scripts, margins. Everything is seamless through-out the tool chain. No need for separate resource files. + +* $FG,2$Just-in-time$FG$ compilation. No need for object or exe files. + +* $FG,2$Graphics in source code$FG$. No need for resource files. + +* $FG,2$64-bit pointers$FG$. All memory, even more than 4 Gig, can be directly accessed by all tasks on all cores at all times. + +* $FG,2$Ring-0-only$FG$. Highest CPU privileged mode at all times. No off-limits instructions. No time lost changing modes or address maps. Switches tasks in half a microsecond. + +* $FG,2$2D/3D$FG$ graphics library + +* Real-time fancy differential-equation solver (physics engine) for use in games. (Adaptive step-size Runge-Kutta, interpolated for real-time.) + +* Code $LK,"profiler","MN:ProfAll"$, $LK,"merge","MN:MergeChk"$, $LK,"diff","MN:Diff"$ utils. + +* $FG,2$HD Audio$FG$ and many songs. + +* $LK,"Demos","FI:::/SparrowOS/Doc/DemoIndex.TXT.Z"$ and $LK,"documentation","FI:::/SparrowOS/Doc/HelpIndex.TXT.Z"$. + +* $FG,2$All source code$FG$ included. Only compiles with the included SparrowOS compiler and assembler. diff --git a/SparrowOS/Doc/FileMgr.TXT b/SparrowOS/Doc/FileMgr.TXT new file mode 100644 index 0000000..3f5c276 --- /dev/null +++ b/SparrowOS/Doc/FileMgr.TXT @@ -0,0 +1,110 @@ +$WW,1$$FG,5$$TX+CX,"File Manager"$$FG$ + +$FG,2$SHIFT CURSOR$FG$ +$ID,2$Select files. +$ID,-2$ +$FG,2$CTRL-Y or DELETE KEY$FG$ +$ID,2$Delete file or tree. +$ID,-2$ +$FG,2$CTRL-C or CTRL-INS$FG$ +$ID,2$Copy selected files to clipboard. +$ID,-2$ +$FG,2$CTRL-V or SHIFT-INS$FG$ +$ID,2$Paste clipboard. +$ID,-2$ +$FG,2$LEFT-CLICK,drag-drop$FG$ +$ID,2$Move a file or tree to a directory. +$ID,-2$ +$FG,2$LEFT-CLICK,same file or $FG$ +$ID,2$Edit file. +$ID,-2$ +$FG,2$SHIFT-SPACE KEY$FG$ +$ID,2$Edit Plain Text File. +$ID,-2$ +$FG,2$RIGHT-CLICK or $FG$ +$ID,2$Bring-up menu. +$ID,-2$ +$FG,2$F5$FG$ +$ID,2$#include file. +$ID,-2$ +$FG,2$SHIFT-F5$FG$ +$ID,2$Adam #include file. +$ID,-2$ +$FG,2$'r'$FG$ +$ID,2$Rename file. +$ID,-2$ +$FG,2$'d'$FG$ +$ID,2$Make Directory. +$ID,-2$ +$FG,2$'m'$FG$ +$ID,2$ChgDsk (Remount removable media). Do not do this on blank disks. +$ID,-2$ +$FG,2$'f'$FG$ +$ID,2$Format drive. +$ID,-2$ +$FG,2$'M'$FG$ +$ID,2$Make CD/DVD ISO file. This creates a file image of the directory the cursor is on. The name of the ISO file is $LK,"sys_dft_iso_name","MN:sys_dft_iso_name"$ and can be redefined in your start-up scripts. You may wish to place it on a different drive. +$ID,-2$ +$FG,2$'B'$FG$ +$ID,2$Burn CD/DVD ISO file. This burns a CD/DVD using the image file, $LK,"sys_dft_iso_name","MN:sys_dft_iso_name"$ to the drive the cursor is on. +$ID,-2$ + +$FG,5$Instructions on Using CD/DVD's$FG$ +$ID,2$If you have not recompiled OSMain and defined your CD/DVD drive, exit the file mgr and use $LK,"Mount","MN:Mount"$ to define your CD/DVD drive. Place a CD/DVD in the drive and press $FG,2$'m'$FG$ when on top of the CD/DVD drive letter to mount the drive. It will call $LK,"ChgDsk","MN:ChgDsk"$(), the SparrowOS cmd to mount removable media. +$ID,-2$ + +$FG,5$Instructions on Burning CD/DVD's$FG$ +$ID,2$Create a temporary holding drive in RAM or on disk, copy files into the holding drive. Make an ISO image of the drive by pressing $FG,2$'M'$FG$ when on top of the holding drive. Press $FG,2$'B'$FG$ when on top of the CD/DVD ROM drive to burn the ISO to disk. If you have not recompiled $FG,2$OSMain$FG$ and defined your CD/DVD drive, exit the file mgr and use $LK,"Mount","MN:Mount"$. + + +$FG,5$Making a Bootable CD/DVD$FG$ +$ID,2$ +This is a quick way to make an ISO. +$FG,8$ +$HL,1$$WW,0$#define PROD_CDROM_CFG "b10x20000\nt3 \n\n\n\n\n" + +U0 MakeMyISO() +{ + Fmt('B',TRUE,FALSE); + CopyTree("::/SparrowOS","B:/SparrowOS"); + //Del("B:/SparrowOS/Adam/WordStat/WSDefs.DAT"); + Auto(PROD_CDROM_CFG); + InstallBoot('B','T'); + CDFileCreate(,"B:/*","",BOOTCD_BIN_Z); +} + + + +$WW,1$$HL,0$$FG$ +I have the following code in my start-up script. + +$FG,2$'E'$FG$ is my main hard drive SparrowOS partition + +$FG,2$'T'$FG$ is my CD/DVD drive + +$FG,2$'Z'$FG$ is a RAM temporary drive from which I make an ISO image. You could use a hard drive directory instead of RAM. +$FG,8$ +$HL,1$$WW,0$#define PROD_CDROM_CFG "b10x20000\nt3 \n\n\n\n\n" +U0 BurnProductionCDImage() +{ + Cd("E:/SparrowOS"); + + //This enters my cfg + //for compiling OSMain. + Auto(PROD_CDROM_CFG); + + InstallBoot('E','T'); + Fmt('Z',TRUE,FALSE); + Drv('Z'); + CopyTree("E:/SparrowOS","/SparrowOS"); + MkDir("/Temp"); + CopyTree("E:/0000Boot","/0000Boot"); + CDFileCreate(sys_dft_iso_name,"Z:/*",NULL,BOOTCD_BIN_Z); + CDImageWrite('T', + sys_dft_iso_name); +} +$HL,0$$WW,1$ +$FG$Study my account examples $LK,"Cfg Strs","FL:::/SparrowOS/Demo/AcctExample/TSAdam.CPP.Z,1"$ $LK,"Update Funs","FL:::/SparrowOS/Demo/AcctExample/TSDistribute.CPP.Z,1"$. +$FG$ +$ID,-2$$ID,-2$ + diff --git a/SparrowOS/Doc/FileMgrPullDown.TXT b/SparrowOS/Doc/FileMgrPullDown.TXT new file mode 100644 index 0000000..c7fee3b --- /dev/null +++ b/SparrowOS/Doc/FileMgrPullDown.TXT @@ -0,0 +1,26 @@ +File +{ + ChgDsk(,'m'); + FmtDrv(,'f'); + MakeISOFile(,'M'); + BurnISOFile(,'B'); + Abort(,CH_SHIFT_ESC); + Exit(,CH_ESC); +} + +Edit +{ + Ed(,CH_SPACE); + Plain(,CH_SHIFT_SPACE); + Rename(,'r'); + MkDir(,'d'); + Copy(,CH_CTRLC); + Paste(,CH_CTRLV); + DeleteFile(,CH_CTRLY); +} + +Program +{ + Include(,0,0x3F0000003F); + AdamInclude(,0,0x23F0000023F); +} diff --git a/SparrowOS/Doc/Glossary.TXT b/SparrowOS/Doc/Glossary.TXT new file mode 100644 index 0000000..a93c451 --- /dev/null +++ b/SparrowOS/Doc/Glossary.TXT @@ -0,0 +1,231 @@ +$WW,1$$TR,"Abbreviations"$ +$ID,2$$FG,5$Abs$FG$ Absolute +$FG,5$Acct$FG$ Account +$FG,5$Add/Addr$FG$ Address +$FG,5$AOT$FG$ Ahead-of-Time +$FG,5$AP$FG$ Application Processor (CPU# > 0) +$FG,5$Arg$FG$ Argument +$FG,5$Attr$FG$ Attribute +$FG,5$Aux$FG$ Auxilliary +$FG,5$Blk$FG$ Block +$FG,5$BSP$FG$ Boot-strap Processor (CPU#0) +$FG,5$Buf$FG$ Buffer +$FG,5$CB$FG$ Call-Back or Code Block +$FG,5$Cfg$FG$ Config +$FG,5$Chg$FG$ Change +$FG,5$Chk$FG$ Check +$FG,5$Cmd$FG$ Command +$FG,5$Cmp$FG$ Compiler +$FG,5$Cnt$FG$ Count +$FG,5$Ctrl$FG$ Control. The ctrl key is indicated with "$FG,2$^$FG$" in documentation. +$FG,5$Cur$FG$ Current +$FG,5$Dbg$FG$ Debug +$FG,5$Dbl$FG$ Double +$FG,5$CDC$FG$ Device Context +$FG,5$Del$FG$ Delete +$FG,5$Desc$FG$ Descriptor or Description +$FG,5$Dev$FG$ Device +$FG,5$Dft$FG$ Default +$FG,5$Dir$FG$ Directory +$FG,5$Drv$FG$ Drive +$FG,5$Dsk$FG$ Disk +$FG,5$Dst$FG$ Destination +$FG,5$Ed$FG$ Edit, Editor +$FG,5$Elem$FG$ Element +$FG,5$Evt$FG$ Event +$FG,5$Exe$FG$ Execute +$FG,5$Ext$FG$ Extern or Extended +$FG,5$Feat$FG$ Feature +$FG,5$$FG,5$Fmt$FG$ Format +$FG,5$Fwd$FG$ Forward +$FG,5$fp_$FG$ Function ptr +$FG,5$Fun$FG$ Function +$FG,5$Gen$FG$ Generate +$FG,5$Glbl$FG$ Global +$FG,5$Gr$FG$ Graphic +$FG,5$IDE$FG$ Integrated Development Environment or Integrated Drive Electronics +$FG,5$IDT$FG$ Interrupt Descriptor Table +$FG,5$Init$FG$ Initialize +$FG,5$Ins$FG$ Insert +$FG,5$Int$FG$ Interrupt +$FG,5$ip_$FG$ Input Pointer. See $LK,"InputPointer.CPP.Z","FI:::/SparrowOS/OSMain/KbdMouse/InputPointer.CPP.Z"$. +$FG,5$Irq$FG$ Interrupt (Request) +$FG,5$JIT$FG$ Just-in-Time +$FG,5$Kbd$FG$ Keyboard +$FG,5$Len$FG$ Length +$FG,5$Let$FG$ Letter +$FG,5$Lex$FG$ Lexical Analyser +$FG,5$Lit$FG$ Literal +$FG,5$Loc$FG$ Location, Lines of Code +$FG,5$Log$FG$ Logarithm or Logical +$FG,5$Doc$FG$ Linked-Text-File (doubly-linked-list of rich text and graphic cmds) +$FG,5$Man$FG$ Manual +$FG,5$Mem$FG$ Memory +$FG,5$Mgd$FG$ Managed +$FG,5$Mgr$FG$ Manager +$FG,5$Mon$FG$ Month +$FG,5$MP$FG$ MultiProcessor +$FG,5$Msg$FG$ Message +$FG,5$Num$FG$ Number +$FG,5$Obj$FG$ Object +$FG,5$Occ$FG$ Occurrence +$FG,5$CMathODE$FG$ Ordinary Differential Equation +$FG,5$Paren$FG$ Parenthesis +$FG,5$Pkg$FG$ Package +$FG,5$Pmt$FG$ Prompt +$FG,5$Poly$FG$ Polygon +$FG,5$Pos$FG$ Position +$FG,5$Prec$FG$ Precedence +$FG,5$Prod$FG$ Product or Production +$FG,5$Pri$FG$ Primary +$FG,5$Prt$FG$ Partition +$FG,5$Pt$FG$ Point +$FG,5$Ptr$FG$ Pointer +$FG,5$Que$FG$ Queue +$FG,5$Reg$FG$ Register or Regular +$FG,5$Rem$FG$ Remove +$FG,5$Rep$FG$ Report +$FG,5$Rqst$FG$ Request +$FG,5$Rst$FG$ Reset +$FG,5$Rot$FG$ Rotation +$FG,5$Rx$FG$ Receive +$FG,5$Sec$FG$ Second or Secondary +$FG,5$$FG,5$Sect$FG$ Sector +$FG,5$Seq$FG$ Sequence +$FG,5$Snd$FG$ Sound +$FG,5$Src$FG$ Source +$FG,5$Stat$FG$ Status or Statistic +$FG,5$$FG,5$Stk$FG$ Stack +$FG,5$Str$FG$ String +$FG,5$Sym$FG$ Symbol +$FG,5$Sys$FG$ System +$FG,5$Term$FG$ Terminal +$FG,5$Tx$FG$ Transmit +$FG,5$Val$FG$ Value +$FG,5$Var$FG$ Variable +$FG,5$Vect$FG$ Vector +$FG,5$Vol$FG$ Volume +$FG,5$Win$FG$ Window +$FG,5$Wiz$FG$ Wizard +$FG,5$WS$FG$ WordStat +$FG,5$WSD$FG$ WordStat Dictionary + +$ID,-2$$TR,"Task/Process/Thread"$ +$ID,2$There is no distinction between "task", "process" or "thread." The $FG,2$Fs$FG$ segment register is kept pointing to the current task's $LK,"CTask","MN:CTask"$. There is only one window per task. + +$ID,-2$$TR,"Adam Task"$ +$ID,2$This is Adam, as in Adam and Eve, the parent of all tasks. This task is created at start-up and appears in the small window at the top beneath the user windows. On it's heap are all memory objects which are system wide. When created, it runs the file $LK,"::/SparrowOS/OSMain/Adam1.CPP.Z","FI:::/SparrowOS/OSMain/Adam1.CPP.Z"$ Normally, Adam1.CPP.Z ends by $FG,2$#include$FG$ $LK,"::/SparrowOS/Adam/Adam2.CPP.Z","FI:::/SparrowOS/Adam/Adam2.CPP.Z"$ where the remainder of the operating system is "$FG,2$#include$FG$d". When start-up is finished, the adam task enters a server mode where it accepts requests from other tasks. The $LK,"Adam","MN:Adam"$("") routine will cause the adam task to compile and run text src code. "$FG,2$#include$FG$" statements can be sent to the $LK,"Adam","MN:Adam"$("") routine, creating system-wide code and data which don't disappear when any particular task ends. (The Adam task is immortal.) + +$ID,-2$$TR,"Seth Task"$ +$ID,2$This is Seth, as in Adam and Eve's child. Each CPU core has a special task which is immortal and which is special. The Adam task on CPU#0 is also it's Seth task. + +$ID,-2$$TR,"Code and Data Heaps"$ +$ID,2$SparrowOS uses the asm $FG,2$CALL$FG$ instruction exclusively and it's limited to calling routines +/-2 Gig from the current code location. To prevent out-of-range issues, I decided to separate code and data, placing all code within the lowest 2 Gig of memory. The compiler and $LK,"Load","MN:Load"$()er allocate memory from the code heap to store code and glbl vars, unless the compiler option $LK,"OPTf_GLBLS_ON_DATA_HEAP","MN:OPTf_GLBLS_ON_DATA_HEAP"$ is used. When programs call $LK,"MAlloc","MN:MAlloc"$() is comes from the data heap, which in not limited in size, except by how much physical RAM memory you have. You can allocate from any heap you like, or even make independent heaps. + +$ID,-2$$TR,"Parent/Child Task"$ +$ID,2$Often a task will $LK,"Spawn","MN:Spawn"$() or $LK,"PopUp","MN:PopUp"$() a task as a helper. The helper is known as a Child Task, though you can $FG,2$Spawn$FG$ a task and assign it a different parent... like $FG,2$Adam$FG$. Links are kept as to who spawned what so that when one task is $LK,"Kill","MN:Kill"$()ed the helper tasks disappear, too. You can get a report on current system tasks with $LK+S,"TaskRep","MN:TaskRep"$(). There is just one possible window per task, so child tasks are needed. + +$ID,-2$$TR,"C+"$ +$ID,2$The language used by SparrowOS is more than $FG,2$C$FG$ and less than $FG,2$C++$FG$, so it's just $FG,2$C+$FG$, perhaps. See $LK,"Differences","FI:::/SparrowOS/Doc/Differences.TXT.Z"$. It has the default arg feature of $FG,2$C++$FG$ and uses $FG,2$class$FG$ in place of $FG,2$struct$FG$. It uses $FG,2$U0,U8,U16,U32,I64$FG$ and $FG,2$I0,I8,I16,I32,I64$FG$ for signed and unsigned integers. It has a slightly different operator precedence. See $LK,"OP_precedence","FA:::/SparrowOS/Doc/Differences.TXT.Z,OP_precedence"$ It has the $FG,2$PASCAL$FG$-like feature of function calls with no parens, but requires an "$FG,2$&$FG,2$$FG$" when referring to function addresses. + +$ID,-2$$TR,"Static Compile Mode"$ +$ID,2$I coined this term to refer to conventional AOT compilation mode, but it is not the preferred mode for this operating system and is discouraged. $FG,2$.SP?$FG$ files are compiled to $FG,2$.BI?$FG$ files, skipping $FG,2$.OBJ$FG$ files. After compiling, you do a $LK,"Load","MN:Load"$() cmd which is available from right-clicking on a link (like from $LK,"Dir","MN:Dir"$()). There is no $FG,2$main()$FG$ routine. Instead, statements outside functions are automatically executed upon loading. There is no way to unload except by killing the task. To invoke $FG,2$Static Compiled Mode$FG$, use the $LK,"Cmp","MN:Cmp"$() routine or right-click on a link. The $FG,2$OSMain$FG$ modules and compiler are made in static compiled mode and stored in $FG,2$OSMain.BIN.C$FG$ and $FG,2$Compiler.BIN.Z$FG$, respectively. + +See $LK,"::/SparrowOS/Demo/GameStarters/EagleDive.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/EagleDive.CPP.Z"$ for an example of static module. + +$ID,-2$$TR,"JIT Compile Mode"$ +$ID,2$In just-in-time mode, the compiler allocates objects, code and data, from the heap, incrementally. This mode is used during cmd line operations. When you $FG,2$#include$FG$ a file, it is compiled function by function and objects are placed all over in mem. The $LK,"ExeFile","MN:ExeFile"$() routine is the same as $FG,2$#include$FG$ but can be placed in programs. $LK,"ExePutS","MN:ExePutS"$() routine will compile and run a string. + +$ID,-2$$TR,"Compiler Intermediate Code"$ +$ID,2$The compiler generates instructions one step before making actual assembly(machine) language instructions. This code is reverse polish in nature and can be viewed with $LK,"PTrace","MN:PTrace"$() or $LK,"OTrace","MN:OTrace"$(). The compiler does not "interpret" code, except in the process of optimization. The assembly language can be viewed when it is compiled with the $LK,"CTrace","MN:CTrace"$() routine, or afterward with $LK,"U","MN:U"$(). + +$ID,-2$$TR,"Partition/Drive"$ +$ID,2$There is no distinction between "partition" or "drive." They are specified with a single letter from '$FG,2$A$FG$'-'$FG,2$Z$FG$'. + +'$FG,2$:$FG$' is the boot drive. + +For commands taking a drive letter as an argument, $FG,2$0$FG$ is the current drive. + +$ID,-2$$LK,"AutoFile","HI:AutoFile"$ +$LK,"Sprite","HI:Graphics/CSprite"$ +$LK,"Hash Table","HI:Hash"$ +$LK,"Define","HI:Char/Define"$ +$LK,"Link Types","MN:LK_FILE"$ +$TR,"files_find_mask"$ +$ID,2$$LK,"FilesFindMatch","MN:FilesFindMatch"$(). An optional directory plus a list of file name masks, as in $FG,2$/SparrowOS/Demo/*.TXT.Z;*.CPP.Z$FG$ + +See $LK,"FUF_RECURSE","MN:FUF_RECURSE"$ and $LK,"ST_FILE_UTIL_FLAGS","MN:ST_FILE_UTIL_FLAGS"$. + +Be aware of $LK,"TEXT_FILE_MASK","MN:TEXT_FILE_MASK"$ and $LK,"SRC_FILE_MASK","MN:SRC_FILE_MASK"$. + +$ID,-2$$TR,"Filename Extention Types"$ +$ID,2$ +$FG,5$*.???.Z$FG$ + These files are automatically compressed or uncompresses files when read or written. +$FG,5$*.???.C$FG$ + Contiguous files--NOT compressed. +$FG,5$*.TXT.Z;*.TXT;*.LOG.Z;*.LOG$FG$ + Text Files +$FG,5$*.CPP.Z;*.CPP$FG$ + C+ src files. The default C+ compiler type is "$FG,2$.CPP.Z$FG$". +$FG,5$*.PRJ.Z;*.PRJ$FG$ + C+ src files to be compiled statically. +$FG,5$*.HPP.Z;*.HPP$FG$ + C+ src header files. +$FG,5$*.MAP.Z;*.MAP$FG$ + Compiler "map" files +$FG,5$*.BIN.Z;*.BIN.C;*.BIN$FG$ + Binary executable files, created by $LK,"Cmp","MN:Cmp"$() and read by $LK,"Load","MN:Load"$(). +$FG,5$*.DAT.Z;*.DAT$FG$ + Data files +$FG,5$*.ISO$FG$ + CD-ROM image file--ISO9660. +$FG,5$*.AUT.Z;*.AUT$FG$ + "AutoFile" Basically a C+ program who's stdout goes to the input of a task when $LK,"AutoFile","MN:AutoFile"$() is called. +$FG,5$*.GRA.Z;*.GRA$FG$ + Graphics file + +$LK,"SRC_FILE_MASK","MN:SRC_FILE_MASK"$$FG$ + This $FG,2$#define$FG$ holds a list of src file extensions. +$LK,"TEXT_FILE_MASK","MN:TEXT_FILE_MASK"$$FG$ + This $FG,2$#define$FG$ holds a list of text file extensions. + +$ID,-2$$TR,"Naming Convention"$ +$ID,2$$FG,5$$FG$The following are rules I stick to. If you work on the operating system, it'd be good to stick with them for uniformity, but you can do what you like. Since there are no "$FG,2$namespaces$FG$" and I don't plan to implement name spaces, I highly recommend putting a 2-3 character module code prefix on syms. e.g. "WS","Doc","Lex" + +$FG,5$ALL_CAPS$FG$ + Assembly Language labels are capitalized with underscores between words. So are $FG,2$#define$FG$'s. + +$FG,5$_ALL_CAPS$FG$ + Asm routines which are $FG,2$C+$FG$ callible should have a leading underscore. + +$FG,5$MixedCaps$FG$ + $FG,2$C+$FG$ Functions and class names are MixedCaps. + +$FG,5$lower_case$FG$ + Local function vars and glbl vars are lower case. Class member names are also lower_case. + +$FG,5$DOCf_????$FG$ + Flags bit nums instead of bit values are designated with a lower case "$FG,2$f$FG$". + +$FG,5$DOCG_????$FG$ + Flag groups are designated with "$FG,2$G$FG$". +$ID,-2$ +$AN,"Fs","Fs"$ The CPU FS segment register. This register points to the current task's $LK,"CTask","MN:CTask"$. + +$AN,"Gs","Gs"$ The CPU GS segment register. This register points to the $LK,"CCPU","MN:CCPU"$. + +$AN,"Bt,Bts,Btr,Btc,LBts,LBtr,LBtc","Bt,LBts,LBtr,LBtc"$ + These are bit manipulation functions named after Intel instructions. They stand for "Bit Test", "Bit Test and Set", "Bit Test and Rst" and "Bit Test and Compliment". An $FG,2$'L'$FG$ means locked. + +$AN,"Cli,Sti","Cli,Sti"$ Turn on or off interrupts. They are named after the x86 instructions. "Cli" turns off interrupts. + +$AN,"Heap","Heap"$ Programs can dynamically request chunks of memory allocated from a "heap" using $LK,"MAlloc","MN:MAlloc"$(). They must $LK,"Free","MN:Free"$() it when finished. Ptrs are used to refer to it. The "heap" is dynamically allocated mem. + +$AN,"Root","root"$ The base of a binary tree or the head of a queue. (I don't like the word "head.") + +$AN,"Join","Join"$ When two parts of a program have a common low-level routine, that routine is often labeled SomethingJoin. + +$AN,"user_data","user_data"$ Many operating system structures have space set aside for you to store values. You are on your own managing these with multiple applications and libraries. + +$AN,"BSP/AP","BSP/AP"$ Boot-strap Processor/Application Processor diff --git a/SparrowOS/Doc/GrSprite.TXT b/SparrowOS/Doc/GrSprite.TXT new file mode 100644 index 0000000..f50e3ff --- /dev/null +++ b/SparrowOS/Doc/GrSprite.TXT @@ -0,0 +1,8 @@ +$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/Graphics.TXT b/SparrowOS/Doc/Graphics.TXT new file mode 100644 index 0000000000000000000000000000000000000000..d1e846a11ee8f14acc144ea528edacffa34ab0bb GIT binary patch literal 7219 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 DiT0Co literal 0 HcmV?d00001 diff --git a/SparrowOS/Doc/Grub.TXT b/SparrowOS/Doc/Grub.TXT new file mode 100644 index 0000000..cb934e4 --- /dev/null +++ b/SparrowOS/Doc/Grub.TXT @@ -0,0 +1,24 @@ +$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/GuideLines.TXT b/SparrowOS/Doc/GuideLines.TXT new file mode 100644 index 0000000..315429e --- /dev/null +++ b/SparrowOS/Doc/GuideLines.TXT @@ -0,0 +1,71 @@ +$WW,1$$FG,5$$TX+CX,"ACCT FILES"$$FG$ + +You can add and remove accts by making or removing directories in the $FG,2$::/SparrowOS/Accts$FG$ directory. An empty account directory should be valid because it will get default files from the parent directory. + +See $LK-A,"HOME/PersonalMenu.TXT.Z"$ for a personal menu which can be viewed at the cmd line with the $FG,2$$FG$ key or by clicking "$FG,2$MENU$FG$" in the upper left border area of a window. + +See $LK-A,"HOME/PersonalNotes.TXT.Z"$ for a personal note file which can be viewed with the $FG,2$$FG$ key. + +See $LK-A,"HOME/DoItOnce.CPP.Z"$ for a file which is invoked at the start-up of the first user. + +See $LK-A,"HOME/Adam3.CPP.Z"$ for the user files that get loaded into the adam task at start-up. These are only loaded once. + +$LK-A,"HOME/Registry.CPP.Z"$ can be edited by hand or deleted to rst to defaults. Takes affect next boot. + + + +$FG,5$$TX+CX,"APPLICATION POLICIES"$$FG$ + +* Place applications in their own $FG,2$/SparrowOS/Apps$FG$ subdirectory. + +* Make a file called $FG,2$Load.CPP.Z$FG$ to load the application. + +* Make a file called $FG,2$Run.CPP.Z$FG$ to load and run the application, preferable by $FG,2$#include$FG$ing the $FG,2$Load.CPP.Z$FG$ file. + +* Place user data in a subdirectory of $FG,2$HOME$FG$, preferably naming the subdirectory the same as the $FG,2$/SparrowOS/Apps$FG$ subdirectory. Or, place data in the $FG,2$Registry.CPP.Z$FG$ file. See $LK,"::/SparrowOS/Demo/RegistryDemo.CPP.Z","FI:::/SparrowOS/Demo/RegistryDemo.CPP.Z"$. + +* Make a file called $FG,2$Install.CPP.Z$FG$ or $FG,2$Install.AUT.Z$FG$ to create the $FG,2$HOME$FG$ subdirectory and do similar stuff. + + + +$FG,5$$TX+CX,"OS PROGRAMMING GUIDELINES:"$$FG$ + +* Virtual mem is not used (It is identity mapped in EM64T mode). The stk does not grow, so allocate enough when the task (process) is $LK,"Spawn","MN:Spawn"$ed and use the heap for most things. (The "heap" refers to $LK,"MAlloc","MN:MAlloc"$() and $LK,"Free","MN:Free"$().) + +* See $LK,"Naming convention","FF:::/SparrowOS/Doc/Glossary.TXT.Z,Naming convention"$. + +* There are two modes of compiling $LK,"Static Compiled Mode","FF:::/SparrowOS/Doc/Glossary.TXT.Z,Static Compiled Mode"$ and $LK,"JIT Mode","FF:::/SparrowOS/Doc/Glossary.TXT.Z,JIT"$. Actual compilation is done in both--nothing is "interpreted". + +* $LK,"Differences from C/C++","FI:::/SparrowOS/Doc/Differences.TXT.Z"$ + +* $LK,"System Programming Guidelines","FI:::/SparrowOS/Doc/SysPgmGuide.TXT.Z"$ + +$FG,5$$TX+CX,"Hash sym tables:"$$FG$ + +* See $LK,"::/SparrowOS/Adam/Hash2a.CPP.Z","FI:::/SparrowOS/Adam/Hash2a.CPP.Z"$ for examples of how the hash tables are set-up. Basically, syms are placed into hash tables and child process hash tables are chained to parents. This provides scopes for vars and functions. + +* $FG,2$adam_task->hash_table$FG$ holds the C/C++ syms loaded in on start-up. + +* $FG,2$Fs->hash_table$FG$ holds user C+ syms and if a sym is not found, it checks parents. When a duplicate sym is added to the table, it overshadows the previous sym unless you have done $LK,"OptOn","MN:OptOn"$($LK,"OPTf_REPLACE_SYMS","MN:OPTf_REPLACE_SYMS"$). When developing software, typically you include the file at the cmd prompt, make changes and reinclude it. Old syms are overshadowed but they are still there. Periodically, kill the TASK and start fresh when mem is low. If you wish your applications to free themselves instead of staying in mem, spawn or $LK,"PopUp","MN:PopUp"$() a task to run the application and kill it when it's done. + +* To display the contents of a hash table, use the $LK,"HashRep","MN:HashRep"$() routine or the varients. $LK,"HashDepthRep","MN:HashDepthRep"$() gives a histogram of how long the chains are, in case you wish to make hash table sizes bigger. + +$FG,5$$TX+CX,"Assembly Language Concerns:"$$FG$ + +* $FG,2$FS$FG$ must always point to the $LK,"CTask","MN:CTask"$. + +* $FG,2$GS$FG$ must always point to the $LK,"CCPU","MN:CCPU"$. + +* Don't change the segment registers unless interrupts are off. + +* When interacting with compiled code, preserve $FG,2$RBP, RSI, RDI, R10-R15$FG$ because the compiler uses these for register vars. You are free to clobber $FG,2$RAX, RBX, RCX, RDX$FG$, $FG,2$R8$FG$ and $FG,2$R9$FG$. + +* I recommend using the standard stk frame for functions because $LK,"Caller","MN:Caller"$() is used to display the call stk, such as for the wallpaper. +$FG,2$ ENTER nnnn +... + LEAVE + RET +$FG$ +* The args are removed from the stack with $FG,2$RET1$FG$ statements. + + $FG,2$RET1 16 //remove two args$FG$ diff --git a/SparrowOS/Doc/Hash.TXT b/SparrowOS/Doc/Hash.TXT new file mode 100644 index 0000000..674494e --- /dev/null +++ b/SparrowOS/Doc/Hash.TXT @@ -0,0 +1,4 @@ +$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 new file mode 100644 index 0000000..4a45df0 --- /dev/null +++ b/SparrowOS/Doc/HelpIndex.TXT @@ -0,0 +1,183 @@ +$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/HelpSystem.TXT b/SparrowOS/Doc/HelpSystem.TXT new file mode 100644 index 0000000..3fe2bc2 --- /dev/null +++ b/SparrowOS/Doc/HelpSystem.TXT @@ -0,0 +1,6 @@ +$WW,1$$FG,2$#help_index "Topic/SubTopic;OtherTopic"$FG$ +The help index preprocessor compiler directive sets the topics for syms subsequently defined. You specify subtopics with a '$FG,2$/$FG$' tree hierarchy and multiple topics separated by a '$FG,2$;$FG$'. The index ctrls $FG,4$HI:topic$FG$ links. + +$FG,2$#help_file "filename[.TXT.Z]"$FG$ +The help file preprocessor directive places a file as the heading text in a $FG,4$HI:topic$FG$ link for the current help index. + diff --git a/SparrowOS/Doc/ImportExports.TXT b/SparrowOS/Doc/ImportExports.TXT new file mode 100644 index 0000000..7179744 --- /dev/null +++ b/SparrowOS/Doc/ImportExports.TXT @@ -0,0 +1,109 @@ +$FG,5$$TX+CX,"Details of Scoping and Linkages"$$FG$ +$WW,1$ +$LK,"Just-In-Time Compilation","FF:::/SparrowOS/Doc/Glossary.TXT.Z,JIT"$ makes use of the current task's hash sym table and its parent tasks' tables. It fetches syms from parent tasks' tables if not found locally in the current task's table and it places new syms in the current task's table. Conceptually, syms are at the scope of environment vars in other operating systems. + +$LK,"Statical Compilation","FF:::/SparrowOS/Doc/Glossary.TXT.Z,Static Compiled"$ creates a new, empty, sym table which you must populate by $FG,2$#include$FG$ing $LK,"::/SparrowOS/OSMain/StaticAdam.HPP.Z","FI:::/SparrowOS/OSMain/StaticAdam.HPP.Z"$ or whatever to import syms. + +When a sym is placed into a table, older syms with identical names will be overshadowed if they exist, unless you use the compiler option $LK,"OPTf_REPLACE_SYMS","MN:OPTf_REPLACE_SYMS"$. Duplicates are not allowed in many cases, especially in asm blks. Dupicates are allowed, by design in other cases, so that you can repeatedly $FG,2$#include$FG$ the same file from the cmd line while developing it. Or, so you can repeatedly declare a function with a standard name, like "$FG,2$UpdateWin()$FG$". This case might occur when the $FG,2$adam task$FG$ is starting-up loading-in many little utilities. + +$FG,2$extern$FG$ binds a new $LK,"HTT_FUN","MN:HTT_FUN"$ or $LK,"HTT_GLBL_VAR","MN:HTT_GLBL_VAR"$ sym to an existing sym of the same name if it exists in the sym table (just in just-in-time code). It also can be used to generate a fwd reference. + +$FG,2$import$FG$ binds a new $LK,"HTT_FUN","MN:HTT_FUN"$ or $LK,"HTT_GLBL_VAR","MN:HTT_GLBL_VAR"$ sym to a sym of the same name imported from the task's sym table at $LK,"Load","MN:Load"$() time. If no sym exists to bind to at $LK,"Load","MN:Load"$() time, the code using this sym will be left incomplete until the sym is defined. + +$WW,1$ +$FG,2$_extern$FG$ binds a new $LK,"HTT_FUN","MN:HTT_FUN"$ or $LK,"HTT_GLBL_VAR","MN:HTT_GLBL_VAR"$ sym to an existing sym, of a $BK,1$different$BK,0$ name. It must exists in the sym table. Basically, this binds C to asm. + +$FG,2$_import$FG$ binds a new $LK,"HTT_FUN","MN:HTT_FUN"$ or $LK,"HTT_GLBL_VAR","MN:HTT_GLBL_VAR"$ sym to a sym, of a $BK,1$different$BK,0$ name imported from the task's sym table at $LK,"Load","MN:Load"$() time. If no sym exists to bind to at $LK,"Load","MN:Load"$() time, the code using this sym will be left incomplete until the sym is defined. Basically, this binds C to asm from elsewhere. + + +$WW,0$$FG,2$S$FG$taticModule/$FG,2$J$FG$ustInTime +| Code occurs in $FG,2$G$FG$lobalScope/$FG,2$F$FG$unctionScope +| | $FG,2$C$FG$Code/$FG,2$A$FG$smCodeBlk +| | | $FG,2$extern$FG$/$FG,2$import$FG$/$FG,2$_extern$FG$/$FG,2$_import$FG$/$FG,2$IMPORT$FG$/$FG,2$static$FG$/$FG,2$class$FG$/$FG,2$goto$FG$ +| | | | $FG,2$C$FG$odeHeap/$FG,2$D$FG$ataHeap/$FG,2$S$FG$tack/$FG,2$R$FG$egister +| | | | | TaskHashEntry:Export$FG,2$S$FG$ysSym/$FG,2$M$FG$acro/$FG,2$F$FG$unction/$FG,2$C$FG$lass/$FG,2$T$FG$ypedef +| | | | | | UsageScope: $FG,2$M$FG$odule/$FG,2$A$FG$smLocal/Asm$FG,2$B$FG$lk/$FG,2$T$FG$askAndChildren/$FG,2$F$FG$unction +| | | | | | |UsageScope: $FG,2$G$FG$lbl/Asm$FG,2$L$FG$ocal/$FG,2$R$FG$emainder/$FG,2$g$FG$lblThisBlkAndRemainder +| | | | | | || $FG,2$S$FG$taticVarInit/$FG,2$D$FG$ynamicVarInitAllowed/$FG,2$N$FG$oInitAllowed +| | | | | | || | Are dups allowed within the namespace? A dup overshadows the original. +| | | | | | || | $FG,2$D$FG$upsAllowed/$FG,2$N$FG$oDups/NoDupsBut$FG,2$P$FG$ad/$FG,2$W$FG$arningUnlessClosedOut +S G A C label:: S MG N +S G A C label: MG N +S G A C @@label: AL N +S G A IMPORT C label; MR N +S F A C label:: S BG N +S F A C label: BG N +S F A C @@label: AL N +S F A IMPORT C label; BR N +S x x #define MR D +S G C C function S MR D +S F C R var FR N +S F C S var FR N +S F C static C var FR D N +S F C goto C label: FG N +S G C C var S MR D D +S G C D var MR N D +S G C class MR D +S G C class member MR P +S G C extern class MR D +S G C extern C function MR W +S G C import C function MR D +S G C import C var MR D +S G C _extern C function MR D +S G C _extern C var MR D +S G C _import C function MR D +S G C _import C var MR D +J G A C label:: S Tg N +J G A C label: BG N +J G A C @@label: AL N +J G A IMPORT C label; TR N +J F A C label:: BG N +J F A C label: BG N +J F A C @@label: AL N +J F A IMPORT C label; BR N +J x x #define M TR D +J G C C function F TR D +J F C R var FR N +J F C S var FR N +J F C static C var FR D N +J F C goto C label: FG N +J G C C var G TR D D +J G C D var G TR S D +J G C class C TR D +J G C class member TR P +J G C extern class C TR D +J G C extern C function F TR W +J G C extern C var G TR D +J G C extern D var G TR D +J G C _extern C function F TR D +J G C _extern C var G TR D +$WW,1$ +* GoTo labels must not have the same name as global scope objects. GoTo's are rare and I don't want to slow the compiler and add code to fix this. You will get errors if a collision happens, so it's not very dangerous, but the error message is baffling. + +* The member names "$FG,2$pad$FG$ and "$FG,2$reserved$FG$" are special because multiple instances with the same name are allowed in a class. + +* Use $FG,2$reg$FG$ or $FG,2$noreg$FG$ in front of local var names to override automatic register var allocation. You can, optionally, specify a reg after the "$FG,2$reg$FG$" keyword. + +* Local nonregister function vars can be accessed in asm blks with $FG,2$&i[RBP]$FG$ for example. + +* Glbl vars and functions can be accessed in asm with and $FG,2$&$FG$ as in + $FG,2$MOV RAX,I64 [&glbl_var] + CALL I32 &Fun + CALL I32 &SYS_SYM$FG$ + +* In $FG,2$JIT$FG$ asm code, &SYS_SYM and &Fun don't need $FG,2$IMPORT$FG$. + +* All offspring tasks of a task inherit syms. + +* The $FG,2$sizeof()$FG$ and C+ structure members can be used in asm blks. + +* No register vars are used in functions with a try/catch. They will be force to $FG,2$noreg$FG$. + +* Using $FG,2$&i$FG$ or $FG,2$i.u8[2]$FG$ on a local var, $FG,2$i$FG$, will force it to $FG,2$noreg$FG$. + +* An unused gap on the stk is left for $FG,2$reg$FG$ vars. + +* Note: $FG,2$static$FG$ function vars do not go on the data heap, no matter the setting of the $LK,"OPTf_GLBLS_ON_DATA_HEAP","MN:OPTf_GLBLS_ON_DATA_HEAP"$$FG$. They may in the future. + +* $LK,"OPTf_EXTERNS_TO_IMPORTS","MN:OPTf_EXTERNS_TO_IMPORTS"$ will treat $FG,2$_extern$FG$ as $FG,2$_import$FG$ and $FG,2$extern$FG$ as $FG,2$import$FG$. This allows a header to be used either as a $FG,2$JIT compiled$FG$ or $FG,2$static compiled$FG$ header. +$WW,0$ \ No newline at end of file diff --git a/SparrowOS/Doc/InputPointer.TXT b/SparrowOS/Doc/InputPointer.TXT new file mode 100644 index 0000000..b182d8e --- /dev/null +++ b/SparrowOS/Doc/InputPointer.TXT @@ -0,0 +1,7 @@ +$WW,1$"Input Ptr" is the mouse at this point. + +$LK,"ipx","MN:ipx"$ and $LK,"ipy","MN:ipy"$ can be used to access the x and y coordinates of the input ptr. They are relative to the screen, not window. These can be used if you don't want to use msg passing. $LK,"ipz","MN:ipz"$ is the wheel. + +$LK,"iptx","MN:iptx"$ and $LK,"ipty","MN:ipty"$ are the text column and row of the input ptr. See $LK,"::/SparrowOS/Demo/Maze.CPP.Z","FI:::/SparrowOS/Demo/Maze.CPP.Z"$. + +You can make the input ptr snap to a grid by adjusting $FG,4$Fs->snap$FG$. diff --git a/SparrowOS/Doc/Install.TXT b/SparrowOS/Doc/Install.TXT new file mode 100644 index 0000000..80875e0 --- /dev/null +++ b/SparrowOS/Doc/Install.TXT @@ -0,0 +1,48 @@ +$WW,1$$FG,5$$TX+CX,"Installing SparrowOS"$$FG$ + +Burn a CD with software that supports ISO files. Then, boot it. It's a live CD, so you can look around with or without installing. + +Dual booting with another operating system is the best way to use SparrowOS. You'll need a partition for SparrowOS. Windows often comes with a restore disk that does not allow repartitioning. I recommend connecting a spare additional hard drive and using the $FG,2$BIOS$FG$ to select which drive to boot. + +The CD-ROM "Install" will automate much of this. + +See $LK,"Boot.TXT.Z","FI:::/SparrowOS/Doc/Boot.TXT.Z"$ for an overview of booting. See $LK,"Requirements","FI:::/SparrowOS/Doc/Requirements.TXT.Z"$ for supported hardware. See $LK,"Upgrading","FI:::/SparrowOS/Doc/Upgrade.TXT.Z"$ if you are upgrading. + +Two SparrowOS partitions are highly recommended, so you can boot to a back-up and fix the primary when you work on it. Odds are, you only need a couple gigabytes for your SparrowOS partitions. + +1) +$ID,2$$LK,"Mount","MN:Mount"$() use if the drive is partitioned. +$ID,2$This command mounts a drive making it accessible. For simplicity, select $FG,2$'C'$FG$ as the base drive letter for your hard drive. The first partition will be $FG,2$'C'$FG$, second, $FG,2$'D'$FG$, etc. SparrowOS needs 3 numbers to utilize a hard drive -- base0, base1, and unit. When you enter a hexadecimal number, do it like in $FG,2$C$FG$ with a $FG,2$0x$FG$ prefix. If the probe was successful, you can just enter the number in the probe box instead of base0. +$ID,-2$ +$LK,"PrtDsk","MN:PrtDsk"$($FG,2$'C'$FG$) use if drive is not partitioned + +$ID,2$This will perform a special $LK,"Mount","MN:Mount"$() automatically. + +$BK,1$WARNING:$BK,0$ This command erases everything on a hard drive. It repartitions a whole drive and formats the partitions$FG$. This command should be skipped if you already have your hard drive partitioned. + + +$BK,1$WARNING:$BK,0$ This command doesn't play well with other operating systems. You'll need to do a $LK,"MasterBootZero","MN:MasterBootZero"$() to restore your drive to a state where other operating systems can partition it. +$ID,-2$ +$ID,-2$2) $LK,"Fmt","MN:Fmt"$($FG,2$'D'$FG$,$FG,2$TRUE,FALSE,PT_FAT32$FG$) +$ID,2$This command formats a partition with $FG,2$FAT32$FG$ or the SparrowOS native file system type. Use the drive letter of the partition in place of $FG,2$'D'$FG$. + +$BK,1$WARNING:$BK,0$ If you are upgrading, be sure not to lose the file, $FG,2$/0000Boot/OldMBR.BIN.C$FG$. + +$ID,-2$3) $LK,"CopyTree","MN:CopyTree"$($FG,2$"T:/"$FG$,$FG,2$"D:/"$FG$) +$ID,2$This command is used to copy files onto a hard drive partition from the CD-ROM. Use the drive letter of the partition in place of $FG,2$'D'$FG$. + +$ID,-2$4) $LK,"InstallBoot","MN:InstallBoot"$($FG,2$'D'$FG$) +$ID,2$This command recompiles the source code on a partition and writes to the $UL,1$partition's$UL,0$ boot record. You'll need to reenter the $LK,"Mount","MN:Mount"$ information so it can be stored in the kernel. + +$ID,-2$5) Use Linux's $LK,"Grub","FI:::/SparrowOS/Doc/Grub.TXT.Z"$ or SparrowOS' $LK,"InstallMasterBoot","MN:InstallMasterBoot"$($FG,2$'D'$FG$) +$ID,2$ +The $LK,"InstallMasterBoot","MN:InstallMasterBoot"$() command places a boot loader on a drive to boot partitions. It saves the old master boot record to $FG,2$/0000Boot/OldMBR.BIN.C$FG$ and replaces it. When you boot, you will have the option of booting the old master boot record. This command can be skipped if you already have a boot loader. Be sure not to lose the copy of the old boot record, like if you reformat the partition. + +Delete $FG,2$/0000Boot/OldMBR.BIN.C$FG$ if you want to get a fresh copy of a mbr, like if installing from your own custom CD containing it's own $FG,2$/0000Boot/OldMBR.BIN.C$FG$ onto a system with a non-SparrowOS boot loader. + +If you have anti-virus software, it might object to having a different master boot record. +$ID,-2$ + +$FG,8$ +* "Windows" is a trademark of MicroSoft Corp. +* "Linux" is probably a trademark owned by Linus Torvalds. diff --git a/SparrowOS/Doc/KeyBoard.TXT b/SparrowOS/Doc/KeyBoard.TXT new file mode 100644 index 0000000..9cbdd6e --- /dev/null +++ b/SparrowOS/Doc/KeyBoard.TXT @@ -0,0 +1,69 @@ +$WW,1$$FG,5$$TX+CX,"Keyboard Allocations"$$FG$ + +See $LK,"Char","HI:Char"$ for definition of scan codes. + +When you are at the cmd line, editing documents, browsing documentation and help, entering items in forms or in menu's, the $LK,"CDoc","MN:CDoc"$ editor handles keys. It allows you to define your own key handlers in a $LK,"MyPutKey","MN:MyPutKey"$() function. If you choose, you can catch most keys, overriding the default handlers. See $LK,"DocPutKey","MN:DocPutKey"$(). The following is an overview of key allocations. + +$FG,2$ALT-keys and ALT-SHIFT-keys$FG$ + +Free for user cfgurations in your $LK,"MyPutKey","MN:MyPutKey"$() handler, except for $FG,2$ALT-BACKSPACE$FG$ (undo). There are a few examples pre-defined, but you can change them if you wish. + +$FG,2$ALT-digit keys$FG$ + +Extended ASCII (3 digit decimal number). + + + +$FG,2$CTRL-ALT-keys and CTRL-ALT-SHIFT-keys$FG$ + +Handled at a system level, NOT by the $LK,"CDoc","MN:CDoc"$ editor. I reserve the right to allocate these, but in the mean time, you can make your own by assigning handlers to the $LK,"fp_ctrl_alt_let_cbs","MN:fp_ctrl_alt_let_cbs"$[] array. Be aware that they operate in an interrupt framework, so they are tricky to use. + + +$FG,2$CTRL-function key$FG$ + +Auto-completes wordstat words. + + + +$FG,2$CTRL-digit key$FG$ + +$FG$Auto-completes dictionary words. + + +$FG,2$CTRL-SHIFT-function key$FG$ + +$FG$Jumps to src code. + + +$FG,2$CTRL-SHIFT-digit key$FG$ + +Jumps to dictionary definition. + + +$FG,2$function keys and SHIFT-function keys$FG$ + +$FG$I reserve the right to allocate these, but there are some free now. + + +$FG,2$CTRL-key and CTRL-SHIFT-key$FG$ + +I reserve the right to allocate to these. There are not many free. + + + +$FG,5$$TX+CX,"Behind the Scenes"$$FG$ + +$AN,"","PutKeyHandling"$The editor mostly stays in a $LK,"GetKey","MN:GetKey"$()/$LK,"PutKey","MN:PutKey"$() loop. The putkey portion is where keys are acted-upon. SparrowOS has a chain of putkey handlers in a $LK,"Circular Queue","HI:Circular Queue"$ with priorities. The highest priority handlers can choose to terminate handling, otherwise, the keys get sent on down the chain. + +$LK,"KeyDevAdd","MN:KeyDevAdd"$() defines a putkey device with a priority. "Device" might be a misnomer. Currently, the following are defined: + +Priority Handler +---------- --------- +$FG,2$0x20000000$FG$ $LK,"MyPutKey","MN:MyPutKey"$() user handler +$FG,2$0x40000000$FG$ $LK,"AKDInputFilterPutKey","MN:AKDInputFilterPutKey"$() for $LK,"Auto","MN:Auto"$(), $LK,"AutoStr","MN:AutoStr"$(), and $LK,"AutoFile","MN:AutoFile"$() handling. +$FG,2$0x60000000$FG$ $LK,"AKDRawDisplayPutKey","MN:AKDRawDisplayPutKey"$() direct to video mem debug output. +$FG,2$0x80000000$FG$ $LK,"AKDDocPutKey","MN:AKDDocPutKey"$() standard document cmds + +Since handling individual keys is slow, SparrowOS supports $LK,"PutS","MN:PutS"$() as well. If no puts handler is defined, individual keys are sent. + +$LK,"CDoc","MN:CDoc"$$FG,2$.user_put_key$FG$ and $LK,"CDoc","MN:CDoc"$$FG,2$.user_put_s$FG$ are call back routines which offer some neat tricks. See $LK,"::/SparrowOS/Apps/MusicOrgan/JukeBox.CPP.Z","FI:::/SparrowOS/Apps/MusicOrgan/JukeBox.CPP.Z"$. There is a var $LK,"CDoc","MN:CDoc"$$FG,2$.user_put_data$FG$ which gets passed to them. diff --git a/SparrowOS/Doc/Lex.TXT b/SparrowOS/Doc/Lex.TXT new file mode 100644 index 0000000..fa522fd --- /dev/null +++ b/SparrowOS/Doc/Lex.TXT @@ -0,0 +1,4 @@ +$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/Mem.TXT b/SparrowOS/Doc/Mem.TXT new file mode 100644 index 0000000000000000000000000000000000000000..79246553287ca01d3c0d9e78f5e131d84f0155a0 GIT binary patch literal 6558 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 HVqpLP=05nN literal 0 HcmV?d00001 diff --git a/SparrowOS/Doc/Menus.TXT b/SparrowOS/Doc/Menus.TXT new file mode 100644 index 0000000..78c1f17 --- /dev/null +++ b/SparrowOS/Doc/Menus.TXT @@ -0,0 +1,27 @@ +$WW,1$A menu appears when you move the mouse to the top of the screen. Menus are created with $LK,"MenuPush","MN:MenuPush"$(), $LK,"MenuFilePush","MN:MenuFilePush"$(), $LK,"MenuNew","MN:MenuNew"$() or $LK,"MenuFile","MN:MenuFile"$() and assigned to $FG,4$Fs->cur_menu$FG$. The format is: + +$FG,2$ +File +{ + Open(,'O'); + Save(,'S'); + Exit(,CH_SHIFT_ESC); +} +Edit { + Cut(,,SC_DELETE|SCF_SHIFT); + Paste(,,SC_INS|SCF_SHIFT); +} +Misc { + Opt1(MSG_CMD,M_OPTION1); + Opt2(MSG_CMD,M_OPTION2); +} +Help +{ + Help(,'?'); + About(,'/'); +} +$FG$ +The first arg is the msg code and it is optional with the default being $LK,"MSG_KEY_DOWN_UP","MN:MSG_KEY_DOWN_UP"$. The second arg is the msg $FG,2$p1$FG$ value which is $FG,2$ASCII$FG$ of the key in the case of $LK,"MSG_KEY_DOWN","MN:MSG_KEY_DOWN"$. The third arg is the msg $FG,2$p2$FG$ value which is the $FG,2$Scan Code$FG$ of the key in the case of $LK,"MSG_KEY_DOWN","MN:MSG_KEY_DOWN"$. + +See $LK,"::/SparrowOS/Demo/PullDownMenu.CPP.Z","FI:::/SparrowOS/Demo/PullDownMenu.CPP.Z"$. + diff --git a/SparrowOS/Doc/MultiCore.TXT b/SparrowOS/Doc/MultiCore.TXT new file mode 100644 index 0000000..edb9979 --- /dev/null +++ b/SparrowOS/Doc/MultiCore.TXT @@ -0,0 +1,14 @@ +$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 new file mode 100644 index 0000000..e59baa6 --- /dev/null +++ b/SparrowOS/Doc/MultiTasking.TXT @@ -0,0 +1,22 @@ +$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 new file mode 100644 index 0000000..3c5e15c --- /dev/null +++ b/SparrowOS/Doc/Mysteries.TXT @@ -0,0 +1,67 @@ +$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 new file mode 100644 index 0000000..a5be6f3 --- /dev/null +++ b/SparrowOS/Doc/NamedFrame.TXT @@ -0,0 +1,2 @@ +$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/NewFileSystem.TXT b/SparrowOS/Doc/NewFileSystem.TXT new file mode 100644 index 0000000..4571d48 --- /dev/null +++ b/SparrowOS/Doc/NewFileSystem.TXT @@ -0,0 +1,7 @@ +$FG,5$$WW,1$$TX+CX,"Adding a New File System"$$FG$ + +If you want to add a support for a new file system, do a text search on "PT_FAT32". All the places where that occurs will require new entries for your file system type. $MA+A-X+PU,"Click here for search.","Grep(\"PT_FAT32\",\"/SparrowOS/\" SRC_FILE_MASK);View;"$ + +You will also need to add an entry $LK,"here.","FF:::/SparrowOS/OSMain/Define1a.CPP.Z,ST_PRT_TYPES"$ + + \ No newline at end of file diff --git a/SparrowOS/Doc/ODE.TXT b/SparrowOS/Doc/ODE.TXT new file mode 100644 index 0000000..e47aa5c --- /dev/null +++ b/SparrowOS/Doc/ODE.TXT @@ -0,0 +1,7 @@ +$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/Options.TXT b/SparrowOS/Doc/Options.TXT new file mode 100644 index 0000000..fe6572a --- /dev/null +++ b/SparrowOS/Doc/Options.TXT @@ -0,0 +1,21 @@ +$WW,1$$FG,5$$TX+CX,"Compiler Options"$$FG$ + +Use $LK,"OptOn","MN:OptOn"$() $LK,"OptOff","MN:OptOff"$(). You might need to do $FG,2$#exe {OptOn();}$FG$. + +$LK,"OPTf_REPLACE_SYMS","MN:OPTf_REPLACE_SYMS"$ is to cause new declaritions to replace old, instead of overshadowing them in the hash sym table. + +$LK,"OPTf_GLBLS_ON_DATA_HEAP","MN:OPTf_GLBLS_ON_DATA_HEAP"$ without this option, global vars are placed in the code heap which is limited to 2 Gig. In static modules, global vars take-up room in the $FG,2$.BIN$FG$ file, so you might want to use this option, instead. You might wish to turn it on and off around specific vars. A disadvantage of data heap global vars in static modules is they can't be initialized. + +$LK,"OPTf_EXTERNS_TO_IMPORTS","MN:OPTf_EXTERNS_TO_IMPORTS"$ and $LK,"OPTf_KEEP_PRIVATE","MN:OPTf_KEEP_PRIVATE"$ are strange options, you'll never need. They're to allow the same header file for $FG,2$OSMain$FG$ to act as $FG,2$extern$FG$s when compiling itself and $FG,2$import$FG$s when compiled by static modules. They are used in $LK,"::/SparrowOS/OSMain/Static.HPP.Z","FI:::/SparrowOS/OSMain/Static.HPP.Z"$. + +$LK,"OPTf_WARN_UNUSED_VAR","MN:OPTf_WARN_UNUSED_VAR"$ warning if unused var. It is applied to functions. + +$LK,"OPTf_WARN_PAREN","MN:OPTf_WARN_PAREN"$ warning if parenthesis are not needed. + +$LK,"OPTf_WARN_DUP_TYPES","MN:OPTf_WARN_DUP_TYPES"$ warning if dup local var type statements. + +$LK,"OPTf_NO_REG_VAR","MN:OPTf_NO_REG_VAR"$ forces all function local vars to the stk not registers. Applied to functions. + +$LK,"OPTf_NO_BUILTIN_CONST","MN:OPTf_NO_BUILTIN_CONST"$ Disable 10-byte float consts for ã, log2_10, log10_2, loge_2. Applied to functions. + + diff --git a/SparrowOS/Doc/Profiler.TXT b/SparrowOS/Doc/Profiler.TXT new file mode 100644 index 0000000..dba7edb --- /dev/null +++ b/SparrowOS/Doc/Profiler.TXT @@ -0,0 +1,10 @@ +$WW,1$The SparrowOS profiler records statistics on what code location was executing when a task was preempted. You can learn where most time is wasted. There are two modes, $LK,"ProfBin","MN:ProfBin"$() which monitors a range of buckets and $LK,"ProfAll","MN:ProfAll"$() which records a hit location as well as count. I recommend $LK,"ProfAll","MN:ProfAll"$(). + +You can pass a subroutine depth level argument which records a hit in not only the routine executing, but the routines which called it, as well. + +When done collecting statistics, use $LK,"ProfRep","MN:ProfRep"$() for a report. You might need a $LK,"DocMax","MN:DocMax"$() to expand the command line window buffer to fit it all. + +You can set the CPU to monitor with $LK,"ProfCPUSet","MN:ProfCPUSet"$(). + +Study the code. The profiler is very simple and you might want to enhance it or modify it to debug something in particular. + diff --git a/SparrowOS/Doc/Que.TXT b/SparrowOS/Doc/Que.TXT new file mode 100644 index 0000000..b1df8f2 --- /dev/null +++ b/SparrowOS/Doc/Que.TXT @@ -0,0 +1,6 @@ +$WW,1$A $FG,2$Queue$FG$ is a bunch of $LK,"MAlloc","MN:MAlloc"$()ed chunks of mem linked together in a circle with one ptr to the $FG,2$next$FG$ value and another ptr to the $FG,2$last$FG$ value. These ptrs must be stored in the first locations in the structure. + +Be careful when writing multitasking code not to access $FG,2$Queues$FG$ while in the middle of a change. You might turn-off preemption or interrupts. + + + diff --git a/SparrowOS/Doc/Quirks.TXT b/SparrowOS/Doc/Quirks.TXT new file mode 100644 index 0000000..fb3d7a9 --- /dev/null +++ b/SparrowOS/Doc/Quirks.TXT @@ -0,0 +1,48 @@ +$FG,5$$TX+CX,"SparrowOS Quirks"$$FG$ + +$WW,1$* You run a risk of problems if you do file operations on the same files simultaneously because there is $BK,1$no file sharing/locking mechanism$BK,0$. Generally, the last write wins. + +* When using $FG,2$FAT32$FG$, SparrowOS does not generate unique short-entry names. Not all $FG,2$FAT32$FG$ filenames are valid SparrowOS names and it will complain. Do not access $FG,2$FAT32$FG$ drives not dedicated to SparrowOS. Disable them with $LK,"DrvEnable","MN:DrvEnable"$(OFF), or they will generate error messages. $FG,2$FAT32$FG$ involves a long and short name for each file. SparrowOS isn't so good at making distinct short names, so don't make files with same 11 characters, or you're asking for trouble when accessing from Windows. + +* The stk does not grow because virtual mem is not used. I recommend allocating large local vars from the heap. You can change $LK,"DFT_STK","MN:DFT_STK"$ and recompile $FG,2$OSMain$FG$ or request more when doing a $LK,"Spawn","MN:Spawn"$(). + +* The syntax highlighting occassionally glitches. The compiler doesn't. + +* Call $LK,"ChgDsk","MN:ChgDsk"$() when you insert a new removable media. + +* Accessing CD-ROM's is flacky. Try $LK,"Drv","MN:Drv"$() or $LK,"ChgDsk","MN:ChgDsk"$() twice. + +* You can only $FG,2$extern$FG$ something once. There is a varient called $FG,2$_extern$FG$ which binds a C+ definition to a asm sym. This, too, can only be done once. + +* You must call $LK,"TaskInitExt","MN:TaskInitExt"$() in a task you $LK,"Spawn","MN:Spawn"$() before you can do file I/O. And, preemption is off by default, so use $LK,"Preempt","MN:Preempt"$(ON) if you wish. + +* A terminal task has a $LK,"CDoc","MN:CDoc"$ document structure that remains active even when you change $FG,4$Fs->draw_it$FG$. To prevent links in the $LK,"CDoc","MN:CDoc"$ from being activated when the user clicks in the window, do one of three things: +$ID,2$ +A) $LK,"DocBottom","MN:DocBottom"$() followed by $LK,"DocClear","MN:DocClear"$() to clear the $LK,"CDoc","MN:CDoc"$ so it has no active widgets. + +B) Disable window mgr button click checking with $FG,4$Fs->win_inhibit$FG$ set to mask $LK,"WIF_IP_L","MN:WIF_IP_L"$ and $LK,"WIF_IP_R","MN:WIF_IP_R"$. This inhibits window mgr operations but still generates messages from button clicks. +$ID,-2$ +* $FG,2$switch/case$FG$ statements allocate a single jump table--do not use with wide, sparse ranges of case values. + +* Don't do a $FG,2$goto$FG$ out of a $FG,2$try{}$FG$. + +* A $FG,2$goto$FG$ label name must not match a global scope object's name. (It's not worth slowing-down the compiler to handle this case.) + +* $LK,"MemCpy","MN:MemCpy"$() only goes fwd. + +* Don't attempt to use $FG,2$Fs->ignore_except$FG$ with $FG,2$$FG$. + +* A $LK,"Cd","MN:Cd"$() cmd must be followed by two semicolons if a $FG,2$#include$FG$ is after it. This is because the preprocessor processes the next token ahead. + +* The assembler's error msgs are often off by a line and undefines are cryptic. + +* The last semicolon on the cmd line is converted to a dbl semicolon because the compiler looks ahead before doing a cmd. This normally has no negative effect, but when entering "$FG,2$if$FG$" statements with "$FG,2$else$FG$" clauses it presents problems. + +* You can do a $FG,2$class$FG$ fwd reference by using $FG,2$extern$FG$ on the first declaration, but you can only do ptr references to the $FG,2$class$FG$. + +* When doing something like +$FG,4$$ID,2$$ID,2$U16 *_w=0xF0000000; +*_w|=0x8000; +$ID,-2$$FG$The $FG,2$|=$FG$ will be coded as a $FG,2$U32 Bts$FG$ instruction resulting in a $FG,2$U32$FG$ access instead of a $FG,2$U16$FG$ access. This affects some hardware operations. +$ID,-2$ +* Compiler warning or error message line numbers will be off if you have a block of word-wrapped comments. You might press $FG,2$$FG$ before doing an editor goto-line-number command. diff --git a/SparrowOS/Doc/Requirements.TXT b/SparrowOS/Doc/Requirements.TXT new file mode 100644 index 0000000..aeb9820 --- /dev/null +++ b/SparrowOS/Doc/Requirements.TXT @@ -0,0 +1,32 @@ +$WW,1$$FG,5$$TX+CX,"Requirements for SparrowOS"$$FG$ + +$FG,5$User Skills Required$FG$ +* Knowledge of the $FG,2$C$FG$ programming language. + +$FG,5$Supported Hardware$FG$ +* $FG,4$$TX+HTML,"x86_64","http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$ PC compatible computer. (Obviously, you need 64-bit hardware for a 64-bit operating system.) + +* 640x480 16 color VGA graphics. + +* Most$FG$ keyboards and mice. + +* Minimum 256 Meg RAM; Maximum $TX+D,"128 Gig","DD_MAPPED_MEM_SPACE_GIG"$ RAM (easily increased). + +* HD Audio or internal PC Speakers. + +* CD/DVD-ROMs (not SCSI). ISO9660 file system. + +* ATA and SATA hard drives. + +$FG,5$Unsupported Hardware$FG$ +* No graphics acceleration. + +* No sound cards besides HD Audio. + +* $FG,4$No networking$FG$. + +* No USB devices, except keyboard and mouse in legacy mode. No, you can't use flash memory cards. + +* No printers. + +$FG,8$ diff --git a/SparrowOS/Doc/Snd.TXT b/SparrowOS/Doc/Snd.TXT new file mode 100644 index 0000000..c2110b5 --- /dev/null +++ b/SparrowOS/Doc/Snd.TXT @@ -0,0 +1,6 @@ +$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 new file mode 100644 index 0000000..9275342 --- /dev/null +++ b/SparrowOS/Doc/Splash.TXT @@ -0,0 +1,31 @@ + + 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/Start.TXT b/SparrowOS/Doc/Start.TXT new file mode 100644 index 0000000..2ff0365 --- /dev/null +++ b/SparrowOS/Doc/Start.TXT @@ -0,0 +1,31 @@ +$FG,5$$TX+CX,"SparrowOS"$$FG$ +$LK+CX,"Trivial Solutions","FI:::/SparrowOS/Doc/TrivialSolutions.TXT.Z"$ + +$WW+H,1$$TR-C,"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 +$BK,1$$MA+A+LA-X,"F1","Msg(MSG_KEY_DOWN,0,SC_F1);"$$BK,0$ Help +Other keys: $MA+A-X+PU,"Key Map","KeyMap;View;\n"$ +$ID,-2$ +$TR-C,"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$ +$TR-C,"Keyboard-Mouse Ctrls"$ +$ID,2$$FG,9$Ctrl-LeftDrag$FG$ Grab-Scroll Window +$FG,9$Ctrl-Right$FG$ Null scrolling +$FG,9$Ctrl-Alt-z$FG$ Zoom screen on Mouse +$FG,9$Ctrl-Alt-Z$FG$ Unzoom screen on Mouse +$ID,-2$ +Remember to terminate cmds with a semicolon. + +$LK,"Help Index","FI:::/SparrowOS/Doc/HelpIndex.TXT.Z"$ $LK,"Quick Start--Command Line","HI:Cmd Line (Typically)"$ + + diff --git a/SparrowOS/Doc/Strategy.TXT b/SparrowOS/Doc/Strategy.TXT new file mode 100644 index 0000000..b153fe6 --- /dev/null +++ b/SparrowOS/Doc/Strategy.TXT @@ -0,0 +1,48 @@ +$WW,1$$FG,5$$TX+CX,"Strategic Decisions Making"$ +$TX+CX,"SparrowOS Simple"$ +$FG$ +The $FG,2$$TX+HTML,"trivial solution","http://en.wikipedia.org/wiki/Trivial_solution"$$FG$ in math is the simple, obvious answer. SparrowOS has many examples of using trivial solutions. + +* Everything runs in kernel, $FG,2$ring 0$FG$, mode. + +* $FG,2$One memory map$FG$ for all tasks on all cores with virtual addresses set equal to physical. + +* One platform -- $FG,4$$TX+HTML,"x86_64","http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$ PC's, no 32-bit support. + +* No security. + +* No networking. + +* Least (greatest) common denominator hardware support. Mostly, one driver for each device class. I can't be in the business of different drivers. Compatibility is the greatest challenge for PC operating systems. Disk code does not use interrupts, avoiding compatibility risks. PS/2 keyboard/mouse is used instead of USB, also more compatible. + +* $FG,2$640x480$FG$ 16 colors. Updates whole screen at 60 fps, optimized for full screen games where "invalid rectangles" are counter-productive. + +* One font, 8x8. Text and graphic layers done in software with text normally on an 8x8 grid. It can run in Text mode if graphic initialization fails. + +* Compiler extends all values to 64-bit when fetched and does only 64-bit computations intermediately. Assembler has minimal 16-bit support, good enough for compiling boot loaders. + +* No object files. Linking can be done at $LK,"Load","MN:Load"$() time for static modules, if you insist on not using $FG,2$JIT$FG$. Modules have imports and exports. + +* Whole files are processed almost exclusively, allowing compression. + +* One language and compiler for command-line, scripts, and code. + +* One editor/word processor/browser for the command-line window, source code, documentation browser, dialog forms. + +* No child windows. One window per task. Buttons are widgets, not child windows. There are child tasks, however. + +* No distinction between "thread", "process" or "task". + +* The $LK,"Scheduler","FI:::/SparrowOS/OSMain/Scheduler.CPP.Z"$ is mostly for home systems, not servers or mainframes. The focus task is all important. Disk requests are not broken-up, so sharing is bad, however. + +* $LK,"MultiCore","FI:::/SparrowOS/Doc/MultiCore.TXT.Z"$ is done master/slave, instead of $FG,2$SMP$FG$. Core zero explicitly assigns jobs. Locks are present allowing multicore file, heap, and hardware access, though. + +* $LK,"Music","MN:Play"$ is done with an elegant one-voice notation. + +* All tasks have a heap and a sym table. Scope is that of environment vars in other operating systems. As text is typed at the command line or you run programs by $FG,2$#include$FG$ing them, the syms go in the table. If a sym is not found, the parent task's table is checked. The father of all tasks has the API syms you'll need waiting in it's table. No need to $FG,2$#include$FG$ headers. + +* No need for namespaces -- scoping occurs automatically based on task symbol table hierarchy with the $FG,2$Adam task$FG$'s symbol system-wide global. + +* Sometimes, I $LK,"cut corners","FI:::/SparrowOS/Doc/CutCorners.TXT.Z"$ in the interest of keeping the code beautiful. + +$FG,8$ diff --git a/SparrowOS/Doc/SysPgmGuide.TXT b/SparrowOS/Doc/SysPgmGuide.TXT new file mode 100644 index 0000000..bd42d6b --- /dev/null +++ b/SparrowOS/Doc/SysPgmGuide.TXT @@ -0,0 +1,31 @@ +$WW,1$$FG,5$$TX+CX,"System Programming Guide-Lines"$$FG$ + +* See $LK,"Naming convention","FF:::/SparrowOS/Doc/Glossary.TXT.Z,Naming convention"$. + +* See $LK,"Abbreviations","FF:::/SparrowOS/Doc/Glossary.TXT.Z,Abbreviations"$. + +* I avoid the '$FG,2$?$FG$' operator. It's not very efficient with my compiler since it executes both expressions and I just don't like it. + +* I place "New", "Del", "Init", "Rst", ect. on the end of a function name instead of beginning. "$FG,4$RstMusicSettings$FG$" should be "$FG,4$MusicSettingsRst$FG$". + +* I often use 64-bit values in function args when smaller would be more appropriate because the compiler generally is more efficient with 64-bit values. (All value get promoted to 64-bit by the SparrowOS compiler, when fetched.) + +* Short circuit logic is assumed. + +* I generally avoid boolean expression assignments because $FG,2$TRUE$FG$ is dangerous with different compilers, though, the SparrowOS compiler should use $FG,2$1$FG$ for TRUE values, not just nonzero. Boolean assignments don't have short circuit logic and are not compiled efficiently. The $FG,2$Bool$FG$ type is just an alias for a 1 byte int -- nothing forces it to 1 or 0. There is a $LK,"ToBool","MN:ToBool"$() function. + +* If you use floats in your interrupt routine, save and restore the fpu state with $LK,"Fxsave","MN:Fxsave"$() and $LK,"Fxrstor","MN:Fxrstor"$(). The timer interrupt does this. The keyboard and mouse don't use floats. + +* Bracketing code with $FG,2$$FG,2$PushFD;Cli;$FG$ and $FG,2$PopFD;$FG$ will protect against simultaneous accesses from tasks on $UL,1$one$UL,0$ core. To protect against multiple cores, you need a locked semaphore. + +* I put an '$FG,2$_$FG$' on the front of the name of pass-by-ref fun args. + +* I put an '$FG,2$_$FG$' on the front of C callable ASM routines. + +* $LK,"SysDbg","MN:SysDbg"$() and $LK,"IsSysDbg","MN:IsSysDbg"$() are really handy when working on the compiler or OSMain. It's just a bit you can set and test. + +* I don't use "$FG,2$U0 *$FG$" because the size would be weird for ptr arithmetic. + +* "$FG,2$result$FG$" is reserved for local variable that holds function return val. + +* I use $FG,2$I64$FG$ instead of $FG,2$U64$FG$ unless necessary. diff --git a/SparrowOS/Doc/TSZ.TXT b/SparrowOS/Doc/TSZ.TXT new file mode 100644 index 0000000..977765d --- /dev/null +++ b/SparrowOS/Doc/TSZ.TXT @@ -0,0 +1,38 @@ +$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 new file mode 100644 index 0000000..7fd75c2 --- /dev/null +++ b/SparrowOS/Doc/TimeCycles.TXT @@ -0,0 +1,3 @@ +$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 new file mode 100644 index 0000000..b752109 --- /dev/null +++ b/SparrowOS/Doc/TimeDate.TXT @@ -0,0 +1,5 @@ +$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/TimeHPET.TXT b/SparrowOS/Doc/TimeHPET.TXT new file mode 100644 index 0000000..d1ae4ca --- /dev/null +++ b/SparrowOS/Doc/TimeHPET.TXT @@ -0,0 +1 @@ +$WW,1$The HPET, high precision event timer, is read with $LK,"HPET","MN:HPET"$() and has a frequency of $LK,"HPET_freq","MN:HPET_freq"$. A typical freq value is 14.3 Mhz It might not be available on all systems. diff --git a/SparrowOS/Doc/TimeJiffy.TXT b/SparrowOS/Doc/TimeJiffy.TXT new file mode 100644 index 0000000..3a3c690 --- /dev/null +++ b/SparrowOS/Doc/TimeJiffy.TXT @@ -0,0 +1,9 @@ +$WW,1$One jiffy is one time slice. $LK,"sys_jiffies","MN:sys_jiffies"$ returns time slices since boot. + +$LK,"SysTimerRead","MN:SysTimerRead"$ reads the timer ticks since boot. It's not as fast as $LK,"GetTimeStamp","MN:GetTimeStamp"$. + +Use $LK,"JIFFY_FREQ","MN:JIFFY_FREQ"$ to convert $LK,"sys_jiffies","MN:sys_jiffies"$. + +Use $LK,"SYS_TIMER_FREQ","MN:SYS_TIMER_FREQ"$ to convert $LK,"SysTimerRead","MN:SysTimerRead"$. + + diff --git a/SparrowOS/Doc/Tips.TXT b/SparrowOS/Doc/Tips.TXT new file mode 100644 index 0000000..99abcc9 --- /dev/null +++ b/SparrowOS/Doc/Tips.TXT @@ -0,0 +1,143 @@ +$WW,1$$FG,5$$IV,1$$TX+CX,"TIPS"$$IV,0$$FG$ + +* Turn-off or reboot ($FG,2$$FG$) at any time, except during disk writes. Writes are not cached. + +* 64-bit values are most efficient for the compiler. + +* If you make changes to SparrowOS files in your $FG,2$HOME$FG$ directory, generally you reboot to make them take effect. (You don't compile anything.) You should have two SparrowOS partitions on your hard drive because a syntax error in a start-up file will make the partition unbootable. Boot to the second partition or boot to a standard SparrowOS CD-ROM and use $LK,"Mount","MN:Mount"$() to mount your hard drive. + +* I copy my files to a mirrored identical partition, periodically with $LK,"CopyTree","MN:CopyTree"$() commands in scripts. I do merge commands with a menu entry like this: +$FG,5$M(\"D:/SparrowOS/*\",\"E:/SparrowOS/*\",\"+r+d\");$FG$ to check my changes. + +* $FG,2$$FG$ at the cmd line to access your personal menu. Place macros there with $FG,2$$FG$, or icon-like sprites with $FG,2$$FG$. Use the $FG,2$Pop-Up$FG$ option on macros to $LK,"Spawn","MN:Spawn"$() a task to run a file. It dies when it is finished. This returns mem to the system. Be sure to press $FG,2$$FG$ to save your macro/menu area after making changes. + +* You can adjust the num of answers displayed by setting $FG,2$Fs->answers_displayed$FG$ to a num from 0-3 in your $LK,"UserStartUp","MN:UserStartUp"$ routine. + +* You can use $FG,2$ans0$FG$,$FG,2$ans1$FG$, etc. in cmd line expressions. They hold results from the last cmd line operations. You can use the cmd prompt as a calculator by just entering expressions like $FG,2$1+2*3;$FG$. $FG,2$F64$FG$ results can be accessed with $FG,2$ansf0$FG$ or $FG,2$ansf1$FG$. + +* Use the PullDown menu at the top of the screen to learn commands, like for games. + +* 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"$. + +* If your mouse wheel doesn't work, you might try an actual $FG,2$PS/2$FG$ mouse. My new machine does not have $FG,2$PS/2$FG$ ports. + +* You can set your local time zone by setting the $LK,"local_time_offset","MN:local_time_offset"$ 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"$. + +* Use $LK,"DocCurAttr","MN:DocCurAttr"$() in $LK,"UserStartUp","MN:UserStartUp"$() to set terminal window colors. + +* See $MA+A-X+PU,"Key Map","KeyMap;View;\n"$ for a list of defined keys. Define your own keys in $LK,"MyPutKey","MN:MyPutKey"$(). See $LK,"::/SparrowOS/Doc/KeyBoard.TXT.Z","FI:::/SparrowOS/Doc/KeyBoard.TXT.Z"$. + +* $FG,2$$FG$ in the editor to autoindent a $FG,2$C+$FG$ function or renumber an asm routine's local labels. If it does not have $FG,2$#exe$FG$ config stuff, select "recompile." Otherwise, don't recompile$FG$ and it will use the compiler info collected when it was most recently compiled. $BK,1$$FG,2$$FG$ can be used to test if a file will compile.$BK,0$ + +* While developing applications, keeping everything in one source file allows you to use the $FG,2$$FG$ compile check/autoindent feature. Alternatively, you can $FG,2$#include$FG$ the files in a project a file depends on before entering the editor and $FG,2$$FG$ it. + +* You can use $FG,2$filter_lines$FG$ in the editor text search form ($FG,2$$FG$) to temporarily display just lines near each match. A value of $FG,2$filter lines$FG$ set to $FG,2$5$FG$ will display lines within 5 lines of matches. Then, you can do another find to a different string and achieve a $FG,2$AND$FG$ search. When finished, press $FG,2$$FG$. + +* You can recompile and reinstall the kernel with $LK,"InstallBoot","MN:InstallBoot"$(). You'll probably want to make a function for recompiling that uses the $LK,"Auto","MN:Auto"$() function to answer the cfg questions. See my technique $LK,"Cfg Strs","FL:::/SparrowOS/Demo/AcctExample/TSAdam.CPP.Z,1"$ $LK,"Update Funs","FL:::/SparrowOS/Demo/AcctExample/TSDistribute.CPP.Z,1"$. + +* You can disable $FG,2$WORDSTAT$FG$ commenting-out $LK,"WSInit","FF:HOME/Adam3fSys.CPP.Z,WSInit"$() in $LK,"HOME/Adam3fSys.CPP.Z","FF:HOME/Adam3fSys.CPP.Z,WSInit"$. + +* You can rst MultiCore CPU's if they get hung with $LK,"MPStart","MN:MPStart"$(). HD Audio will get screwed-up, however. + +* Boolean expressions $BK,1$not$BK,0$ in $FG,2$if$FG$ statements don't have short circuit logic and are compiled inefficiently. + +* You can use $LK,"progress1","MN:progress1"$-$LK,"progress4","MN:progress4"$ in your programs for whatever you like. They're just global vars that are shown on the wallpaper. The original intent was to indicate how far along operations were. There's no coordination, so different apps might interfere. I use them most for debugging--just values easily viewed. See $LK,"::/SparrowOS/Demo/Progress.CPP.Z","FI:::/SparrowOS/Demo/Progress.CPP.Z"$. + +* You can save the cmd line doc as text with $FG,2$$FG$. For a bitmap screen capture, use $LK,"BMPFileCaptureScreen","MN:BMPFileCaptureScreen"$(). You might want to make a hot key. See $LK,"BMPFileCaptureScreen","FF:::/SparrowOS/Demo/AcctExample/TSAdam.CPP.Z,BMPFileCaptureScreen"$. + +* Use $LK,"DocMax","MN:DocMax"$() to adjust the size of the cmd line buf. It counts $LK,"CDoc","MN:CDoc"$ entries, not lines. + +* Many data structures have a $FG,2$user_data$FG$ member. Those are available for you to store a data item, for convenience. $LK,"CTask","MN:CTask"$, $LK,"CDocEntry","MN:CDocEntry"$ and $LK,"CDirEntry","MN:CDirEntry"$ have them. You shouldn't encounter conflicts with SparrowOS using them. + +* You can reduce mem usage by making a smaller disk cache when you recompile the kernel; disabling $FG,2$WORDSTAT$FG$; Specifying smaller stk sizes when doing $LK,"Spawn","MN:Spawn"$(), changing $LK,"DFT_STK","MN:DFT_STK"$, and using $LK,"DocMax","MN:DocMax"$() to reduce the cmd line buffer size. + +* Filenames ending in "$FG,2$.Z$FG$" will be automatically compressed and uncompressed when read or written. The compression method is not supported by other operating systems. You can store files uncompressed by $LK,"Move","MN:Move"$()ing them to a filename not ending in "$FG,2$.Z$FG$". See $LK,"::/SparrowOS/Doc/TSZ.TXT.Z","FI:::/SparrowOS/Doc/TSZ.TXT.Z"$ if you want to uncompress while in $FG,2$WINDOWS$FG$. + +* $LK,"MergeChk","MN:MergeChk"$() can be used to see what's changed. The $FG,2$+d$FG$ flag will show differences of files which have changed and allow you to merge code. (The $FG,2$+r$FG$ flag will recurse.) + +* There is a utility $LK,"LinkChk","MN:LinkChk"$() which will check for broken links in documentation. + +* You can use $LK,"OptOn","MN:OptOn"$($LK,"OPTf_WARN_PAREN","MN:OPTf_WARN_PAREN"$) to find unnecessary parentheses in code. + +* You can use $LK,"OptOn","MN:OptOn"$($LK,"OPTf_WARN_DUP_TYPES","MN:OPTf_WARN_DUP_TYPES"$) to find unnecessary local var type statements. + +* $LK,"OptEqu","MN:OptEqu"$($LK,"OPTf_ECHO","MN:OPTf_ECHO"$,ON) can be placed in $LK,"Adam1.CPP.Z","FI:::/SparrowOS/OSMain/Adam1.CPP.Z"$ to echo start-up scripts. + +* Use $LK,"Plain","MN:Plain"$() to edit a plain text file. You'll need this if your file has $FG,2$$$$FG$'s. Use the $LK,"::/SparrowOS/Misc/Dollar.CPP.Z","FI:::/SparrowOS/Misc/Dollar.CPP.Z"$ utility to strip dollar signs in text files. + +* Use $LK,"Silent","MN:Silent"$() to disable screen text output. + +* Use $LK,"IOSnd","MN:IOSnd"$() to disable noise from disk access. + +* Grab-scroll any window at any time with $FG,2${CTRL-LEFT-DRAG}$FG$. Null grab-scrolling with $FG,2${CTRL-RIGHT}$FG$. + +* Use $FG,2$$FG$ to zoom-in and $FG,2$$FG$ to zoom-out. You can scroll by moving to the edge of the window. Set $LK,"gr_continuous_scroll","MN:gr_continuous_scroll"$ to $FG,2$TRUE$FG$ if you want. + +* Use $FG,2$$FG$ and $FG,2$$FG$ to display a grid on the screen. + +* Use $FG,2$$FG$ to enter an extended ASCII char. + +* There are handy functions--$FG,2$F(),R(),FD()$FG$ and $FG,2$RD()$FG$ which are defined in $LK,"HOME/Adam3eWrappers.CPP.Z","FI:HOME/Adam3eWrappers.CPP.Z"$. You're encouraged to change them, since they're in acct files. They will perform find-and-replace operations accross multiple files. The $FG,2$+l$FG$ flag is particularly useful since it limits to whole labels. The $FG,2$+lf$FG$ and $FG,2$+lb$FG$ flags limit to whole labels, just front or back. You are encouraged to add or modify handy wrapper functions to make cmd line operations easier. + +* When using $LK,"Grep","MN:Grep"$() while modifying code, work from the bottom-up so that line numbers are correct. If you work top-down, then inserting or deleting lines causes the lower file links will be incorrect. + +* You can save files after making changes, anytime you are within the editor, like when viewing help/macro files. $FG,2$$FG$ saves as, $FG,2$$FG$ saves with the same name in the scrolling title bar. Hitting $FG,2$$FG$ will exit and save. ($FG,2$$FG$ will abort). You can save the cmd line window to a file, too, since you're actually in the editor when you're at the cmd line. + +* When using $FG,2$$FG$ to insert links in documents, you can usually leave the $FG,2$Tag Text$FG$ blank and it will be filled-in automatically based on other entries. + +* There is a feature of the precompiler that allows code to be executed in the middle of compilation and data inserted into the compilation stream. Click here for an example: $LK,"#exe {","FF:::/SparrowOS/OSMain/OSEnd.CPP.Z,#exe {"$. + +* If you output to the cmd line and wish to allow users to scroll around and view data, you can use $LK,"View","MN:View"$(). + +* Use $LK+S,"View","MN:View"$() in Pop-up macros to linger until the user presses $FG,2$$FG$ or $FG,2$$FG$. + +* You can access the word under the cursor at $LK,"ws_cur_word","MN:ws_cur_word"$, but you should probably turn-off preemption or interrupts momentarily to copy it. + +* You can reactivate $FG,2$WORDSTAT$FG$ after closing it by pressing $FG,2$CTRL-FUN KEY$FG$. + +* If you use consistent var names for items of different classes, you'll usually be able to use $FG,2$WORDSTAT$FG$'s autocomplete for member vars. I always use $FG,2$lx$FG$ for $LK,"CLex","MN:CLex"$ ptrs; $FG,2$doc$FG$ for $LK,"CDoc","MN:CDoc"$ ptrs; $FG,2$doc_e$FG$ or $FG,2$doc_ce$FG$ for $LK,"CDocEntry","MN:CDocEntry"$ ptrs, etc. + + +* $LK,"Preempt","MN:Preempt"$() is used to keep a task from being interrupted and swapped-out. It has a similar effect to turning-off interrupts. Each task has it's own preemption ctrl. A task with preemption turned-off can voluntarily $LK,"Yield","MN:Yield"$() with preemption off. + +* You can set a color for different drives with $LK,"SetDrvTextAttr","MN:SetDrvTextAttr"$(). Place calls to this in $LK,"HOME/Adam3aLocalize.CPP.Z","FI:HOME/Adam3aLocalize.CPP.Z"$. + +* $FG,2$$FG$ to toggle to/from plain text just the $LK,"CDoc","MN:CDoc"$ cmd under the cursor. See $LK,"::/SparrowOS/Demo/Doc/TextDemo.CPP.Z","FI:::/SparrowOS/Demo/Doc/TextDemo.CPP.Z"$. + +* If you toggle to plain text when you are working with graphics in a document, you can add duplicate entries for sprites by entering a $FG,2$SP$FG$ cmd with the same num. + +* If you toggle to plain text when working with graphics, you can add a str to the $FG,2$$$SP$$$FG$ entry to keep track of it. Try $FG,2$$$SP,"<2>",2$$$FG$ where '2' is the sprite num. + +* I use spaces-to-tab operations on all my src files to keep them small. You have to be careful, though, because spaces in strings will be converted. I use $FG,2$$FG$ ' ' in such cases. See $LK,"S2T","MN:S2T"$() for spaces-to-tabs. + +* You can edit an existing sprite by putting the cursor on it and pressing $FG,2$$FG$. + +* When editing a sprite, you can cut and paste the elements in the text list window. + +* I recommend keeping CSprite in vect format until you are done creating them, so you can edit the ctrl points. Then, convert them to bitmaps, so the flood fills work well. If you are doing interpolation, however, they must be vect. + +* $LK,"GrFloodFill","MN:GrFloodFill"$() is slow. $LK,"GrRect","MN:GrRect"$() is fast. + +* You can customize the $FG,2$wallpaper$FG$. See $LK,"::/SparrowOS/Demo/Graphics/MyWallPaper.CPP.Z","FI:::/SparrowOS/Demo/Graphics/MyWallPaper.CPP.Z"$. + +* You can adjust the screen refresh rate (software). It is automatically adjusted based on load. The range is $LK,"win_min_refresh","MN:win_min_refresh"$ - $FG,4$Fs->win_max_refresh$FG$. + +* Your RAM disks will not be reformated when you reboot if the memory location has not changed and it finds the disk intacted. + +* $FG,2$try{} catch{}$FG$ in a function will cause all vars to be non-register. + +* Using a sub-int array, $FG,2$i.u8[3]$FG$, for example, will force a var non-register. + +* You can delete the $FG,4$HOME/Registry.CPP.Z$FG$ file. The policy is that deleting it will restore defaults. It should plain text, if you want to edit it. Be careful of tree indentations. + +* Study $LK,"::/SparrowOS/Adam/MemRep.CPP.Z","FI:::/SparrowOS/Adam/MemRep.CPP.Z"$ and $LK,"WallPaper","MN:WallPaper"$() to learn how the system resources are put together. + +* The editor's select-text mechanism allows for disjoint portions of selected text. This is a feature, not a bug -- you can cut-and-paste disjoint text. + +* $LK,"time_stamp_freq","MN:time_stamp_freq"$ is continuously calibrated, so be careful because expressions involving it might decrease. Take a snap-shot, like this: $FG,2$timeout=$LK,"GetTimeStamp","MN:GetTimeStamp"$+$LK,"time_stamp_freq","MN:time_stamp_freq"$ x seconds;$FG$ and compare against $LK,"GetTimeStamp","MN:GetTimeStamp"$(). + +* Use $LK,"HeapLog","MN:HeapLog"$() and $LK,"HeapLogRep","MN:HeapLogRep"$() to find leaks. Don't be confused by $LK,"CDoc","MN:CDoc"$ allocations. Those are generated when text is written to the cmd line buffer. + +* For advanced heap debugging, play with $LK,"_CFG_HEAP_DBG","MN:_CFG_HEAP_DBG"$. You're on your own. + +* You can use $LK,"Type","MN:Type"$() to display $FG,2$.BMP$FG$ or $FG,2$.GRA$FG$ files. diff --git a/SparrowOS/Doc/Transform.TXT b/SparrowOS/Doc/Transform.TXT new file mode 100644 index 0000000..bfc6545 --- /dev/null +++ b/SparrowOS/Doc/Transform.TXT @@ -0,0 +1,14 @@ +$WW,1$$LK,"CDC","MN:CDC"$'s have a 4x4 matrix for rotating, scaling, skewing and shifting in 3 dimensions. To make the graphics routines respond to the transformation, you must set the $LK,"DCF_TRANSFORMATION","MN:DCF_TRANSFORMATION"$ flag. + +The matrix consists of integers that have been scaled 32 bits ($LK,"gr_scale","MN:gr_scale"$). See $LK,"::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$ to learn why. + +See $LK,"GrRotX","MN:GrRotX"$(), $LK,"GrRotY","MN:GrRotY"$(), $LK,"GrRotZ","MN:GrRotZ"$(), $LK,"GrScaleMat","MN:GrScaleMat"$(), $LK,"GrRotXEqu","MN:GrRotXEqu"$(), $LK,"GrRotYEqu","MN:GrRotYEqu"$(), $LK,"GrRotZEqu","MN:GrRotZEqu"$() and $LK,"GrScaleMatEqu","MN:GrScaleMatEqu"$() to rotate about axes and scale. Combine them with $LK,"GrMulMat","MN:GrMulMat"$() and assign them to the $LK,"CDC","MN:CDC"$.$FG,2$dc$FG$ with $LK,"GrSetRotMat","MN:GrSetRotMat"$(). See $LK,"::/SparrowOS/Demo/Graphics/Box.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Box.CPP.Z"$. + +You can rotate single points using $LK,"GrRot","MN:GrRot"$(). + +The 4th dimension allows a neat trick where you can place pos shifts (translations), into the matrix and $LK,"GrMulMat","MN:GrMulMat"$ them to combine rotation/shift operations. Normally, you can't combine pos shift operations. See $LK,"GrSetTranslation","MN:GrSetTranslation"$() and $LK,"::/SparrowOS/Demo/Graphics/Transform.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Transform.CPP.Z"$. + +Finally, $LK,"CDC","MN:CDC"$'s have an $FG,2$x$FG$, $FG,2$y$FG$ and $FG,2$z$FG$ which is an additional shift (translation). + +The transformation is implemented as a callback on the $LK,"CDC","MN:CDC"$'s $FG,2$transform()$FG$ member. The default $FG,2$transfrom()$FG$ callback is $LK,"GrTransform","MN:GrTransform"$(). See $LK,"::/SparrowOS/Demo/GameStarters/EagleDive.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/EagleDive.CPP.Z"$ or $LK,"::/SparrowOS/Demo/GameStarters/FPS.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/FPS.CPP.Z"$ to see how to change the $FG,2$transfrom()$FG$ callback for foreshortening. + diff --git a/SparrowOS/Doc/TrivialSolutions.TXT b/SparrowOS/Doc/TrivialSolutions.TXT new file mode 100644 index 0000000..2f0e87e --- /dev/null +++ b/SparrowOS/Doc/TrivialSolutions.TXT @@ -0,0 +1,20 @@ +$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 new file mode 100644 index 0000000..0aebcc5 --- /dev/null +++ b/SparrowOS/Doc/Upgrade.TXT @@ -0,0 +1,8 @@ +$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 new file mode 100644 index 0000000..1de23b4 --- /dev/null +++ b/SparrowOS/Doc/Welcome.TXT @@ -0,0 +1,67 @@ +$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/Doc/WordStat.TXT b/SparrowOS/Doc/WordStat.TXT new file mode 100644 index 0000000..4b6559a --- /dev/null +++ b/SparrowOS/Doc/WordStat.TXT @@ -0,0 +1,8 @@ +$FG,2$$WW,1$WordStat$FG$ collects statistics from all text files in subdirectories when you call $LK,"WSInit","MN:WSInit"$(). It counts which words follow which other words with what frequency in a big sparse matrix. + +It provides auto-complete typing and jump-to-code or jump-to-dictionary_definition functionality. + +Tip: If you use consistent var names for items of different classes, you'll usually be able to autocomplete the member vars. I always use $FG,2$lx$FG$ for $LK,"CLex","MN:CLex"$ ptrs; $FG,2$doc$FG$ for $LK,"CDoc","MN:CDoc"$ ptrs; $FG,2$doc_e$FG$ or $FG,2$doc_ce$FG$ for $LK,"CDocEntry","MN:CDocEntry"$ ptrs, etc. + +If you have the raw Project Gutenberg dictionary file, you can generate the SparrowOS processed dictionary files with the stand-alone program $LK,"::/SparrowOS/Adam/WordStat/WSDictGen.CPP.Z","FI:::/SparrowOS/Adam/WordStat/WSDictGen.CPP.Z"$. + diff --git a/LT/Text/Bible.TXZ b/SparrowOS/Misc/Bible.TXT similarity index 97% rename from LT/Text/Bible.TXZ rename to SparrowOS/Misc/Bible.TXT index a413e9e..a303dfd 100644 --- a/LT/Text/Bible.TXZ +++ b/SparrowOS/Misc/Bible.TXT @@ -1,100117 +1,100117 @@ -**Welcome To The World of Free Plain Vanilla Electronic Texts** - -**Etexts Readable By Both Humans and By Computers, Since 1971** - -*These Etexts Prepared By Hundreds of Volunteers and Donations* - - -August, 1989 [Etext #10] - - -******The Project Gutenberg Etext of The King James Bible****** -******This file should be named kjv10.txt or kjv10.zip***** - - -Copyright laws are changing all over the world, be sure to check -the copyright laws for your country before posting these files!! - -Please take a look at the important information in this header. -We encourage you to keep this file on your own disk, keeping an -electronic path open for the next readers. Do not remove this. - - -**Welcome To The World of Free Plain Vanilla Electronic Texts** - -**Etexts Readable By Both Humans and By Computers, Since 1971** - -*These Etexts Prepared By Hundreds of Volunteers and Donations* - -Information on contacting Project Gutenberg to get Etexts, and -further information is included below. We need your donations. - - -The King James Bible - -August, 1989 [Etext #10] - - -******The Project Gutenberg Etext of The King James Bible****** -******This file should be named kjv10.txt or kjv10.zip***** - -Corrected EDITIONS of our etexts get a new NUMBER, kjv11.txt -VERSIONS based on separate sources get new LETTER, kjv10aa.txt - -Warning: also look for our Bible Etext under biblexxx.xxx: as -well as under kjvxxxxx.xxx. - - -Project Gutenberg Etexts are usually created from multiple editions, -all of which are in the Public Domain in the United States, unless a -copyright notice is included. Therefore, we do usually do NOT! keep -these books in compliance with any particular paper edition. - - -We are now trying to release all our books one month in advance -of the official release dates, leaving time for better editing. - -Please note: neither this list nor its contents are final till -midnight of the last day of the month of any such announcement. -The official release date of all Project Gutenberg Etexts is at -Midnight, Central Time, of the last day of the stated month. A -preliminary version may often be posted for suggestion, comment -and editing by those who wish to do so. To be sure you have an -up to date first edition [xxxxx10x.xxx] please check file sizes -in the first week of the next month. Since our ftp program has -a bug in it that scrambles the date [tried to fix and failed] a -look at the file size will have to do, but we will try to see a -new copy has at least one byte more or less. - - -Information about Project Gutenberg (one page) - -We produce about two million dollars for each hour we work. The -time it takes us, a rather conservative estimate, is fifty hours -to get any etext selected, entered, proofread, edited, copyright -searched and analyzed, the copyright letters written, etc. This -projected audience is one hundred million readers. If our value -per text is nominally estimated at one dollar then we produce &2 -million dollars per hour this year as we release thirty-six text -files per month, or 432 more Etexts in 1999 for a total of 2000+ -If these reach just 10% of the computerized population, then the -total should reach over 200 billion Etexts given away this year. - -The Goal of Project Gutenberg is to Give Away One Trillion Etext -Files by December 31, 2001. [10,000 x 100,000,000 = 1 Trillion] -This is ten thousand titles each to one hundred million readers, -which is only ~5% of the present number of computer users. - -At our revised rates of production, we will reach only one-third -of that goal by the end of 2001, or about 3,333 Etexts unless we -manage to get some real funding; currently our funding is mostly -from Michael Hart's salary at Carnegie-Mellon University, and an -assortment of sporadic gifts; this salary is only good for a few -more years, so we are looking for something to replace it, as we -don't want Project Gutenberg to be so dependent on one person. - -We need your donations more than ever! - - -All donations should be made to "Project Gutenberg/CMU": and are -tax deductible to the extent allowable by law. (CMU = Carnegie- -Mellon University). - -For these and other matters, please mail to: - -Project Gutenberg -P. O. Box 2782 -Champaign, IL 61825 - -When all other email fails. . .try our Executive Director: -Michael S. Hart -hart@pobox.com forwards to hart@prairienet.org and archive.org -if your mail bounces from archive.org, I will still see it, if -it bounces from prairienet.org, better resend later on. . . . - -We would prefer to send you this information by email. - -****** - -To access Project Gutenberg etexts, use any Web browser -to view http://promo.net/pg. This site lists Etexts by -author and by title, and includes information about how -to get involved with Project Gutenberg. You could also -download our past Newsletters, or subscribe here. This -is one of our major sites, please email hart@pobox.com, -for a more complete list of our various sites. - -To go directly to the etext collections, use FTP or any -Web browser to visit a Project Gutenberg mirror (mirror -sites are available on 7 continents; mirrors are listed -at http://promo.net/pg). - -Mac users, do NOT point and click, typing works better. - -Example FTP session: - -ftp sunsite.unc.edu -login: anonymous -password: your@login -cd pub/docs/books/gutenberg -cd etext90 through etext99 -dir [to see files] -get or mget [to get files. . .set bin for zip files] -GET GUTINDEX.?? [to get a year's listing of books, e.g., GUTINDEX.99] -GET GUTINDEX.ALL [to get a listing of ALL books] - -*** - -**Information prepared by the Project Gutenberg legal advisor** - -(Three Pages) - - -***START**THE SMALL PRINT!**FOR PUBLIC DOMAIN ETEXTS**START*** -Why is this "Small Print!" statement here? You know: lawyers. -They tell us you might sue us if there is something wrong with -your copy of this etext, even if you got it for free from -someone other than us, and even if what's wrong is not our -fault. So, among other things, this "Small Print!" statement -disclaims most of our liability to you. It also tells you how -you can distribute copies of this etext if you want to. - -*BEFORE!* YOU USE OR READ THIS ETEXT -By using or reading any part of this PROJECT GUTENBERG-tm -etext, you indicate that you understand, agree to and accept -this "Small Print!" statement. If you do not, you can receive -a refund of the money (if any) you paid for this etext by -sending a request within 30 days of receiving it to the person -you got it from. If you received this etext on a physical -medium (such as a disk), you must return it with your request. - -ABOUT PROJECT GUTENBERG-TM ETEXTS -This PROJECT GUTENBERG-tm etext, like most PROJECT GUTENBERG- -tm etexts, is a "public domain" work distributed by Professor -Michael S. Hart through the Project Gutenberg Association at -Carnegie-Mellon University (the "Project"). Among other -things, this means that no one owns a United States copyright -on or for this work, so the Project (and you!) can copy and -distribute it in the United States without permission and -without paying copyright royalties. Special rules, set forth -below, apply if you wish to copy and distribute this etext -under the Project's "PROJECT GUTENBERG" trademark. - -To create these etexts, the Project expends considerable -efforts to identify, transcribe and proofread public domain -works. Despite these efforts, the Project's etexts and any -medium they may be on may contain "Defects". Among other -things, Defects may take the form of incomplete, inaccurate or -corrupt data, transcription errors, a copyright or other -intellectual property infringement, a defective or damaged -disk or other etext medium, a computer virus, or computer -codes that damage or cannot be read by your equipment. - -LIMITED WARRANTY; DISCLAIMER OF DAMAGES -But for the "Right of Replacement or Refund" described below, -[1] the Project (and any other party you may receive this -etext from as a PROJECT GUTENBERG-tm etext) disclaims all -liability to you for damages, costs and expenses, including -legal fees, and [2] YOU HAVE NO REMEDIES FOR NEGLIGENCE OR -UNDER STRICT LIABILITY, OR FOR BREACH OF WARRANTY OR CONTRACT, -INCLUDING BUT NOT LIMITED TO INDIRECT, CONSEQUENTIAL, PUNITIVE -OR INCIDENTAL DAMAGES, EVEN IF YOU GIVE NOTICE OF THE -POSSIBILITY OF SUCH DAMAGES. - -If you discover a Defect in this etext within 90 days of -receiving it, you can receive a refund of the money (if any) -you paid for it by sending an explanatory note within that -time to the person you received it from. If you received it -on a physical medium, you must return it with your note, and -such person may choose to alternatively give you a replacement -copy. If you received it electronically, such person may -choose to alternatively give you a second opportunity to -receive it electronically. - -THIS ETEXT IS OTHERWISE PROVIDED TO YOU "AS-IS". NO OTHER -WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, ARE MADE TO YOU AS -TO THE ETEXT OR ANY MEDIUM IT MAY BE ON, INCLUDING BUT NOT -LIMITED TO WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A -PARTICULAR PURPOSE. - -Some states do not allow disclaimers of implied warranties or -the exclusion or limitation of consequential damages, so the -above disclaimers and exclusions may not apply to you, and you -may have other legal rights. - -INDEMNITY -You will indemnify and hold the Project, its directors, -officers, members and agents harmless from all liability, cost -and expense, including legal fees, that arise directly or -indirectly from any of the following that you do or cause: -[1] distribution of this etext, [2] alteration, modification, -or addition to the etext, or [3] any Defect. - -DISTRIBUTION UNDER "PROJECT GUTENBERG-tm" -You may distribute copies of this etext electronically, or by -disk, book or any other medium if you either delete this -"Small Print!" and all other references to Project Gutenberg, -or: - -[1] Only give exact copies of it. Among other things, this - requires that you do not remove, alter or modify the - etext or this "small print!" statement. You may however, - if you wish, distribute this etext in machine readable - binary, compressed, mark-up, or proprietary form, - including any form resulting from conversion by word pro- - cessing or hypertext software, but only so long as - *EITHER*: - - [*] The etext, when displayed, is clearly readable, and - does *not* contain characters other than those - intended by the author of the work, although tilde - (~), asterisk (*) and underline (_) characters may - be used to convey punctuation intended by the - author, and additional characters may be used to - indicate hypertext links; OR - - [*] The etext may be readily converted by the reader at - no expense into plain ASCII, EBCDIC or equivalent - form by the program that displays the etext (as is - the case, for instance, with most word processors); - OR - - [*] You provide, or agree to also provide on request at - no additional cost, fee or expense, a copy of the - etext in its original plain ASCII form (or in EBCDIC - or other equivalent proprietary form). - -[2] Honor the etext refund and replacement provisions of this - "Small Print!" statement. - -[3] Pay a trademark license fee to the Project of 20% of the - net profits you derive calculated using the method you - already use to calculate your applicable taxes. If you - don't derive profits, no royalty is due. Royalties are - payable to "Project Gutenberg Association/Carnegie-Mellon - University" within the 60 days following each - date you prepare (or were legally required to prepare) - your annual (or equivalent periodic) tax return. - -WHAT IF YOU *WANT* TO SEND MONEY EVEN IF YOU DON'T HAVE TO? -The Project gratefully accepts contributions in money, time, -scanning machines, OCR software, public domain etexts, royalty -free copyright licenses, and every other sort of contribution -you can think of. Money should be paid to "Project Gutenberg -Association / Carnegie-Mellon University". - -*END*THE SMALL PRINT! FOR PUBLIC DOMAIN ETEXTS*Ver.04.29.93*END* - - - - - -The Old Testament of the King James Version of the Bible - - - - -The First Book of Moses: Called Genesis - - -1:1 In the beginning God created the heaven and the earth. - -1:2 And the earth was without form, and void; and darkness was upon -the face of the deep. And the Spirit of God moved upon the face of the -waters. - -1:3 And God said, Let there be light: and there was light. - -1:4 And God saw the light, that it was good: and God divided the light -from the darkness. - -1:5 And God called the light Day, and the darkness he called Night. -And the evening and the morning were the first day. - -1:6 And God said, Let there be a firmament in the midst of the waters, -and let it divide the waters from the waters. - -1:7 And God made the firmament, and divided the waters which were -under the firmament from the waters which were above the firmament: -and it was so. - -1:8 And God called the firmament Heaven. And the evening and the -morning were the second day. - -1:9 And God said, Let the waters under the heaven be gathered together -unto one place, and let the dry land appear: and it was so. - -1:10 And God called the dry land Earth; and the gathering together of -the waters called he Seas: and God saw that it was good. - -1:11 And God said, Let the earth bring forth grass, the herb yielding -seed, and the fruit tree yielding fruit after his kind, whose seed is -in itself, upon the earth: and it was so. - -1:12 And the earth brought forth grass, and herb yielding seed after -his kind, and the tree yielding fruit, whose seed was in itself, after -his kind: and God saw that it was good. - -1:13 And the evening and the morning were the third day. - -1:14 And God said, Let there be lights in the firmament of the heaven -to divide the day from the night; and let them be for signs, and for -seasons, and for days, and years: 1:15 And let them be for lights in -the firmament of the heaven to give light upon the earth: and it was -so. - -1:16 And God made two great lights; the greater light to rule the day, -and the lesser light to rule the night: he made the stars also. - -1:17 And God set them in the firmament of the heaven to give light -upon the earth, 1:18 And to rule over the day and over the night, and -to divide the light from the darkness: and God saw that it was good. - -1:19 And the evening and the morning were the fourth day. - -1:20 And God said, Let the waters bring forth abundantly the moving -creature that hath life, and fowl that may fly above the earth in the -open firmament of heaven. - -1:21 And God created great whales, and every living creature that -moveth, which the waters brought forth abundantly, after their kind, -and every winged fowl after his kind: and God saw that it was good. - -1:22 And God blessed them, saying, Be fruitful, and multiply, and fill -the waters in the seas, and let fowl multiply in the earth. - -1:23 And the evening and the morning were the fifth day. - -1:24 And God said, Let the earth bring forth the living creature after -his kind, cattle, and creeping thing, and beast of the earth after his -kind: and it was so. - -1:25 And God made the beast of the earth after his kind, and cattle -after their kind, and every thing that creepeth upon the earth after -his kind: and God saw that it was good. - -1:26 And God said, Let us make man in our image, after our likeness: -and let them have dominion over the fish of the sea, and over the fowl -of the air, and over the cattle, and over all the earth, and over -every creeping thing that creepeth upon the earth. - -1:27 So God created man in his own image, in the image of God created -he him; male and female created he them. - -1:28 And God blessed them, and God said unto them, Be fruitful, and -multiply, and replenish the earth, and subdue it: and have dominion -over the fish of the sea, and over the fowl of the air, and over every -living thing that moveth upon the earth. - -1:29 And God said, Behold, I have given you every herb bearing seed, -which is upon the face of all the earth, and every tree, in the which -is the fruit of a tree yielding seed; to you it shall be for meat. - -1:30 And to every beast of the earth, and to every fowl of the air, -and to every thing that creepeth upon the earth, wherein there is -life, I have given every green herb for meat: and it was so. - -1:31 And God saw every thing that he had made, and, behold, it was -very good. And the evening and the morning were the sixth day. - -2:1 Thus the heavens and the earth were finished, and all the host of -them. - -2:2 And on the seventh day God ended his work which he had made; and -he rested on the seventh day from all his work which he had made. - -2:3 And God blessed the seventh day, and sanctified it: because that -in it he had rested from all his work which God created and made. - -2:4 These are the generations of the heavens and of the earth when -they were created, in the day that the LORD God made the earth and the -heavens, 2:5 And every plant of the field before it was in the earth, -and every herb of the field before it grew: for the LORD God had not -caused it to rain upon the earth, and there was not a man to till the -ground. - -2:6 But there went up a mist from the earth, and watered the whole -face of the ground. - -2:7 And the LORD God formed man of the dust of the ground, and -breathed into his nostrils the breath of life; and man became a living -soul. - -2:8 And the LORD God planted a garden eastward in Eden; and there he -put the man whom he had formed. - -2:9 And out of the ground made the LORD God to grow every tree that is -pleasant to the sight, and good for food; the tree of life also in the -midst of the garden, and the tree of knowledge of good and evil. - -2:10 And a river went out of Eden to water the garden; and from thence -it was parted, and became into four heads. - -2:11 The name of the first is Pison: that is it which compasseth the -whole land of Havilah, where there is gold; 2:12 And the gold of that -land is good: there is bdellium and the onyx stone. - -2:13 And the name of the second river is Gihon: the same is it that -compasseth the whole land of Ethiopia. - -2:14 And the name of the third river is Hiddekel: that is it which -goeth toward the east of Assyria. And the fourth river is Euphrates. - -2:15 And the LORD God took the man, and put him into the garden of -Eden to dress it and to keep it. - -2:16 And the LORD God commanded the man, saying, Of every tree of the -garden thou mayest freely eat: 2:17 But of the tree of the knowledge -of good and evil, thou shalt not eat of it: for in the day that thou -eatest thereof thou shalt surely die. - -2:18 And the LORD God said, It is not good that the man should be -alone; I will make him an help meet for him. - -2:19 And out of the ground the LORD God formed every beast of the -field, and every fowl of the air; and brought them unto Adam to see -what he would call them: and whatsoever Adam called every living -creature, that was the name thereof. - -2:20 And Adam gave names to all cattle, and to the fowl of the air, -and to every beast of the field; but for Adam there was not found an -help meet for him. - -2:21 And the LORD God caused a deep sleep to fall upon Adam, and he -slept: and he took one of his ribs, and closed up the flesh instead -thereof; 2:22 And the rib, which the LORD God had taken from man, made -he a woman, and brought her unto the man. - -2:23 And Adam said, This is now bone of my bones, and flesh of my -flesh: she shall be called Woman, because she was taken out of Man. - -2:24 Therefore shall a man leave his father and his mother, and shall -cleave unto his wife: and they shall be one flesh. - -2:25 And they were both naked, the man and his wife, and were not -ashamed. - -3:1 Now the serpent was more subtil than any beast of the field which -the LORD God had made. And he said unto the woman, Yea, hath God said, -Ye shall not eat of every tree of the garden? 3:2 And the woman said -unto the serpent, We may eat of the fruit of the trees of the garden: -3:3 But of the fruit of the tree which is in the midst of the garden, -God hath said, Ye shall not eat of it, neither shall ye touch it, lest -ye die. - -3:4 And the serpent said unto the woman, Ye shall not surely die: 3:5 -For God doth know that in the day ye eat thereof, then your eyes shall -be opened, and ye shall be as gods, knowing good and evil. - -3:6 And when the woman saw that the tree was good for food, and that -it was pleasant to the eyes, and a tree to be desired to make one -wise, she took of the fruit thereof, and did eat, and gave also unto -her husband with her; and he did eat. - -3:7 And the eyes of them both were opened, and they knew that they -were naked; and they sewed fig leaves together, and made themselves -aprons. - -3:8 And they heard the voice of the LORD God walking in the garden in -the cool of the day: and Adam and his wife hid themselves from the -presence of the LORD God amongst the trees of the garden. - -3:9 And the LORD God called unto Adam, and said unto him, Where art -thou? 3:10 And he said, I heard thy voice in the garden, and I was -afraid, because I was naked; and I hid myself. - -3:11 And he said, Who told thee that thou wast naked? Hast thou eaten -of the tree, whereof I commanded thee that thou shouldest not eat? -3:12 And the man said, The woman whom thou gavest to be with me, she -gave me of the tree, and I did eat. - -3:13 And the LORD God said unto the woman, What is this that thou hast -done? And the woman said, The serpent beguiled me, and I did eat. - -3:14 And the LORD God said unto the serpent, Because thou hast done -this, thou art cursed above all cattle, and above every beast of the -field; upon thy belly shalt thou go, and dust shalt thou eat all the -days of thy life: 3:15 And I will put enmity between thee and the -woman, and between thy seed and her seed; it shall bruise thy head, -and thou shalt bruise his heel. - -3:16 Unto the woman he said, I will greatly multiply thy sorrow and -thy conception; in sorrow thou shalt bring forth children; and thy -desire shall be to thy husband, and he shall rule over thee. - -3:17 And unto Adam he said, Because thou hast hearkened unto the voice -of thy wife, and hast eaten of the tree, of which I commanded thee, -saying, Thou shalt not eat of it: cursed is the ground for thy sake; -in sorrow shalt thou eat of it all the days of thy life; 3:18 Thorns -also and thistles shall it bring forth to thee; and thou shalt eat the -herb of the field; 3:19 In the sweat of thy face shalt thou eat bread, -till thou return unto the ground; for out of it wast thou taken: for -dust thou art, and unto dust shalt thou return. - -3:20 And Adam called his wife's name Eve; because she was the mother -of all living. - -3:21 Unto Adam also and to his wife did the LORD God make coats of -skins, and clothed them. - -3:22 And the LORD God said, Behold, the man is become as one of us, to -know good and evil: and now, lest he put forth his hand, and take also -of the tree of life, and eat, and live for ever: 3:23 Therefore the -LORD God sent him forth from the garden of Eden, to till the ground -from whence he was taken. - -3:24 So he drove out the man; and he placed at the east of the garden -of Eden Cherubims, and a flaming sword which turned every way, to keep -the way of the tree of life. - -4:1 And Adam knew Eve his wife; and she conceived, and bare Cain, and -said, I have gotten a man from the LORD. - -4:2 And she again bare his brother Abel. And Abel was a keeper of -sheep, but Cain was a tiller of the ground. - -4:3 And in process of time it came to pass, that Cain brought of the -fruit of the ground an offering unto the LORD. - -4:4 And Abel, he also brought of the firstlings of his flock and of -the fat thereof. And the LORD had respect unto Abel and to his -offering: 4:5 But unto Cain and to his offering he had not respect. -And Cain was very wroth, and his countenance fell. - -4:6 And the LORD said unto Cain, Why art thou wroth? and why is thy -countenance fallen? 4:7 If thou doest well, shalt thou not be -accepted? and if thou doest not well, sin lieth at the door. And unto -thee shall be his desire, and thou shalt rule over him. - -4:8 And Cain talked with Abel his brother: and it came to pass, when -they were in the field, that Cain rose up against Abel his brother, -and slew him. - -4:9 And the LORD said unto Cain, Where is Abel thy brother? And he -said, I know not: Am I my brother's keeper? 4:10 And he said, What -hast thou done? the voice of thy brother's blood crieth unto me from -the ground. - -4:11 And now art thou cursed from the earth, which hath opened her -mouth to receive thy brother's blood from thy hand; 4:12 When thou -tillest the ground, it shall not henceforth yield unto thee her -strength; a fugitive and a vagabond shalt thou be in the earth. - -4:13 And Cain said unto the LORD, My punishment is greater than I can -bear. - -4:14 Behold, thou hast driven me out this day from the face of the -earth; and from thy face shall I be hid; and I shall be a fugitive and -a vagabond in the earth; and it shall come to pass, that every one -that findeth me shall slay me. - -4:15 And the LORD said unto him, Therefore whosoever slayeth Cain, -vengeance shall be taken on him sevenfold. And the LORD set a mark -upon Cain, lest any finding him should kill him. - -4:16 And Cain went out from the presence of the LORD, and dwelt in the -land of Nod, on the east of Eden. - -4:17 And Cain knew his wife; and she conceived, and bare Enoch: and he -builded a city, and called the name of the city, after the name of his -son, Enoch. - -4:18 And unto Enoch was born Irad: and Irad begat Mehujael: and -Mehujael begat Methusael: and Methusael begat Lamech. - -4:19 And Lamech took unto him two wives: the name of the one was Adah, -and the name of the other Zillah. - -4:20 And Adah bare Jabal: he was the father of such as dwell in tents, -and of such as have cattle. - -4:21 And his brother's name was Jubal: he was the father of all such -as handle the harp and organ. - -4:22 And Zillah, she also bare Tubalcain, an instructer of every -artificer in brass and iron: and the sister of Tubalcain was Naamah. - -4:23 And Lamech said unto his wives, Adah and Zillah, Hear my voice; -ye wives of Lamech, hearken unto my speech: for I have slain a man to -my wounding, and a young man to my hurt. - -4:24 If Cain shall be avenged sevenfold, truly Lamech seventy and -sevenfold. - -4:25 And Adam knew his wife again; and she bare a son, and called his -name Seth: For God, said she, hath appointed me another seed instead -of Abel, whom Cain slew. - -4:26 And to Seth, to him also there was born a son; and he called his -name Enos: then began men to call upon the name of the LORD. - -5:1 This is the book of the generations of Adam. In the day that God -created man, in the likeness of God made he him; 5:2 Male and female -created he them; and blessed them, and called their name Adam, in the -day when they were created. - -5:3 And Adam lived an hundred and thirty years, and begat a son in his -own likeness, and after his image; and called his name Seth: 5:4 And -the days of Adam after he had begotten Seth were eight hundred years: -and he begat sons and daughters: 5:5 And all the days that Adam lived -were nine hundred and thirty years: and he died. - -5:6 And Seth lived an hundred and five years, and begat Enos: 5:7 And -Seth lived after he begat Enos eight hundred and seven years, and -begat sons and daughters: 5:8 And all the days of Seth were nine -hundred and twelve years: and he died. - -5:9 And Enos lived ninety years, and begat Cainan: 5:10 And Enos lived -after he begat Cainan eight hundred and fifteen years, and begat sons -and daughters: 5:11 And all the days of Enos were nine hundred and -five years: and he died. - -5:12 And Cainan lived seventy years and begat Mahalaleel: 5:13 And -Cainan lived after he begat Mahalaleel eight hundred and forty years, -and begat sons and daughters: 5:14 And all the days of Cainan were -nine hundred and ten years: and he died. - -5:15 And Mahalaleel lived sixty and five years, and begat Jared: 5:16 -And Mahalaleel lived after he begat Jared eight hundred and thirty -years, and begat sons and daughters: 5:17 And all the days of -Mahalaleel were eight hundred ninety and five years: and he died. - -5:18 And Jared lived an hundred sixty and two years, and he begat -Enoch: 5:19 And Jared lived after he begat Enoch eight hundred years, -and begat sons and daughters: 5:20 And all the days of Jared were nine -hundred sixty and two years: and he died. - -5:21 And Enoch lived sixty and five years, and begat Methuselah: 5:22 -And Enoch walked with God after he begat Methuselah three hundred -years, and begat sons and daughters: 5:23 And all the days of Enoch -were three hundred sixty and five years: 5:24 And Enoch walked with -God: and he was not; for God took him. - -5:25 And Methuselah lived an hundred eighty and seven years, and begat -Lamech. - -5:26 And Methuselah lived after he begat Lamech seven hundred eighty -and two years, and begat sons and daughters: 5:27 And all the days of -Methuselah were nine hundred sixty and nine years: and he died. - -5:28 And Lamech lived an hundred eighty and two years, and begat a -son: 5:29 And he called his name Noah, saying, This same shall comfort -us concerning our work and toil of our hands, because of the ground -which the LORD hath cursed. - -5:30 And Lamech lived after he begat Noah five hundred ninety and five -years, and begat sons and daughters: 5:31 And all the days of Lamech -were seven hundred seventy and seven years: and he died. - -5:32 And Noah was five hundred years old: and Noah begat Shem, Ham, -and Japheth. - -6:1 And it came to pass, when men began to multiply on the face of the -earth, and daughters were born unto them, 6:2 That the sons of God saw -the daughters of men that they were fair; and they took them wives of -all which they chose. - -6:3 And the LORD said, My spirit shall not always strive with man, for -that he also is flesh: yet his days shall be an hundred and twenty -years. - -6:4 There were giants in the earth in those days; and also after that, -when the sons of God came in unto the daughters of men, and they bare -children to them, the same became mighty men which were of old, men of -renown. - -6:5 And God saw that the wickedness of man was great in the earth, and -that every imagination of the thoughts of his heart was only evil -continually. - -6:6 And it repented the LORD that he had made man on the earth, and it -grieved him at his heart. - -6:7 And the LORD said, I will destroy man whom I have created from the -face of the earth; both man, and beast, and the creeping thing, and -the fowls of the air; for it repenteth me that I have made them. - -6:8 But Noah found grace in the eyes of the LORD. - -6:9 These are the generations of Noah: Noah was a just man and perfect -in his generations, and Noah walked with God. - -6:10 And Noah begat three sons, Shem, Ham, and Japheth. - -6:11 The earth also was corrupt before God, and the earth was filled -with violence. - -6:12 And God looked upon the earth, and, behold, it was corrupt; for -all flesh had corrupted his way upon the earth. - -6:13 And God said unto Noah, The end of all flesh is come before me; -for the earth is filled with violence through them; and, behold, I -will destroy them with the earth. - -6:14 Make thee an ark of gopher wood; rooms shalt thou make in the -ark, and shalt pitch it within and without with pitch. - -6:15 And this is the fashion which thou shalt make it of: The length -of the ark shall be three hundred cubits, the breadth of it fifty -cubits, and the height of it thirty cubits. - -6:16 A window shalt thou make to the ark, and in a cubit shalt thou -finish it above; and the door of the ark shalt thou set in the side -thereof; with lower, second, and third stories shalt thou make it. - -6:17 And, behold, I, even I, do bring a flood of waters upon the -earth, to destroy all flesh, wherein is the breath of life, from under -heaven; and every thing that is in the earth shall die. - -6:18 But with thee will I establish my covenant; and thou shalt come -into the ark, thou, and thy sons, and thy wife, and thy sons' wives -with thee. - -6:19 And of every living thing of all flesh, two of every sort shalt -thou bring into the ark, to keep them alive with thee; they shall be -male and female. - -6:20 Of fowls after their kind, and of cattle after their kind, of -every creeping thing of the earth after his kind, two of every sort -shall come unto thee, to keep them alive. - -6:21 And take thou unto thee of all food that is eaten, and thou shalt -gather it to thee; and it shall be for food for thee, and for them. - -6:22 Thus did Noah; according to all that God commanded him, so did -he. - -7:1 And the LORD said unto Noah, Come thou and all thy house into the -ark; for thee have I seen righteous before me in this generation. - -7:2 Of every clean beast thou shalt take to thee by sevens, the male -and his female: and of beasts that are not clean by two, the male and -his female. - -7:3 Of fowls also of the air by sevens, the male and the female; to -keep seed alive upon the face of all the earth. - -7:4 For yet seven days, and I will cause it to rain upon the earth -forty days and forty nights; and every living substance that I have -made will I destroy from off the face of the earth. - -7:5 And Noah did according unto all that the LORD commanded him. - -7:6 And Noah was six hundred years old when the flood of waters was -upon the earth. - -7:7 And Noah went in, and his sons, and his wife, and his sons' wives -with him, into the ark, because of the waters of the flood. - -7:8 Of clean beasts, and of beasts that are not clean, and of fowls, -and of every thing that creepeth upon the earth, 7:9 There went in two -and two unto Noah into the ark, the male and the female, as God had -commanded Noah. - -7:10 And it came to pass after seven days, that the waters of the -flood were upon the earth. - -7:11 In the six hundredth year of Noah's life, in the second month, -the seventeenth day of the month, the same day were all the fountains -of the great deep broken up, and the windows of heaven were opened. - -7:12 And the rain was upon the earth forty days and forty nights. - -7:13 In the selfsame day entered Noah, and Shem, and Ham, and Japheth, -the sons of Noah, and Noah's wife, and the three wives of his sons -with them, into the ark; 7:14 They, and every beast after his kind, -and all the cattle after their kind, and every creeping thing that -creepeth upon the earth after his kind, and every fowl after his kind, -every bird of every sort. - -7:15 And they went in unto Noah into the ark, two and two of all -flesh, wherein is the breath of life. - -7:16 And they that went in, went in male and female of all flesh, as -God had commanded him: and the LORD shut him in. - -7:17 And the flood was forty days upon the earth; and the waters -increased, and bare up the ark, and it was lift up above the earth. - -7:18 And the waters prevailed, and were increased greatly upon the -earth; and the ark went upon the face of the waters. - -7:19 And the waters prevailed exceedingly upon the earth; and all the -high hills, that were under the whole heaven, were covered. - -7:20 Fifteen cubits upward did the waters prevail; and the mountains -were covered. - -7:21 And all flesh died that moved upon the earth, both of fowl, and -of cattle, and of beast, and of every creeping thing that creepeth -upon the earth, and every man: 7:22 All in whose nostrils was the -breath of life, of all that was in the dry land, died. - -7:23 And every living substance was destroyed which was upon the face -of the ground, both man, and cattle, and the creeping things, and the -fowl of the heaven; and they were destroyed from the earth: and Noah -only remained alive, and they that were with him in the ark. - -7:24 And the waters prevailed upon the earth an hundred and fifty -days. - -8:1 And God remembered Noah, and every living thing, and all the -cattle that was with him in the ark: and God made a wind to pass over -the earth, and the waters asswaged; 8:2 The fountains also of the deep -and the windows of heaven were stopped, and the rain from heaven was -restrained; 8:3 And the waters returned from off the earth -continually: and after the end of the hundred and fifty days the -waters were abated. - -8:4 And the ark rested in the seventh month, on the seventeenth day of -the month, upon the mountains of Ararat. - -8:5 And the waters decreased continually until the tenth month: in the -tenth month, on the first day of the month, were the tops of the -mountains seen. - -8:6 And it came to pass at the end of forty days, that Noah opened the -window of the ark which he had made: 8:7 And he sent forth a raven, -which went forth to and fro, until the waters were dried up from off -the earth. - -8:8 Also he sent forth a dove from him, to see if the waters were -abated from off the face of the ground; 8:9 But the dove found no rest -for the sole of her foot, and she returned unto him into the ark, for -the waters were on the face of the whole earth: then he put forth his -hand, and took her, and pulled her in unto him into the ark. - -8:10 And he stayed yet other seven days; and again he sent forth the -dove out of the ark; 8:11 And the dove came in to him in the evening; -and, lo, in her mouth was an olive leaf pluckt off: so Noah knew that -the waters were abated from off the earth. - -8:12 And he stayed yet other seven days; and sent forth the dove; -which returned not again unto him any more. - -8:13 And it came to pass in the six hundredth and first year, in the -first month, the first day of the month, the waters were dried up from -off the earth: and Noah removed the covering of the ark, and looked, -and, behold, the face of the ground was dry. - -8:14 And in the second month, on the seven and twentieth day of the -month, was the earth dried. - -8:15 And God spake unto Noah, saying, 8:16 Go forth of the ark, thou, -and thy wife, and thy sons, and thy sons' wives with thee. - -8:17 Bring forth with thee every living thing that is with thee, of -all flesh, both of fowl, and of cattle, and of every creeping thing -that creepeth upon the earth; that they may breed abundantly in the -earth, and be fruitful, and multiply upon the earth. - -8:18 And Noah went forth, and his sons, and his wife, and his sons' -wives with him: 8:19 Every beast, every creeping thing, and every -fowl, and whatsoever creepeth upon the earth, after their kinds, went -forth out of the ark. - -8:20 And Noah builded an altar unto the LORD; and took of every clean -beast, and of every clean fowl, and offered burnt offerings on the -altar. - -8:21 And the LORD smelled a sweet savour; and the LORD said in his -heart, I will not again curse the ground any more for man's sake; for -the imagination of man's heart is evil from his youth; neither will I -again smite any more every thing living, as I have done. - -8:22 While the earth remaineth, seedtime and harvest, and cold and -heat, and summer and winter, and day and night shall not cease. - -9:1 And God blessed Noah and his sons, and said unto them, Be -fruitful, and multiply, and replenish the earth. - -9:2 And the fear of you and the dread of you shall be upon every beast -of the earth, and upon every fowl of the air, upon all that moveth -upon the earth, and upon all the fishes of the sea; into your hand are -they delivered. - -9:3 Every moving thing that liveth shall be meat for you; even as the -green herb have I given you all things. - -9:4 But flesh with the life thereof, which is the blood thereof, shall -ye not eat. - -9:5 And surely your blood of your lives will I require; at the hand of -every beast will I require it, and at the hand of man; at the hand of -every man's brother will I require the life of man. - -9:6 Whoso sheddeth man's blood, by man shall his blood be shed: for in -the image of God made he man. - -9:7 And you, be ye fruitful, and multiply; bring forth abundantly in -the earth, and multiply therein. - -9:8 And God spake unto Noah, and to his sons with him, saying, 9:9 And -I, behold, I establish my covenant with you, and with your seed after -you; 9:10 And with every living creature that is with you, of the -fowl, of the cattle, and of every beast of the earth with you; from -all that go out of the ark, to every beast of the earth. - -9:11 And I will establish my covenant with you, neither shall all -flesh be cut off any more by the waters of a flood; neither shall -there any more be a flood to destroy the earth. - -9:12 And God said, This is the token of the covenant which I make -between me and you and every living creature that is with you, for -perpetual generations: 9:13 I do set my bow in the cloud, and it shall -be for a token of a covenant between me and the earth. - -9:14 And it shall come to pass, when I bring a cloud over the earth, -that the bow shall be seen in the cloud: 9:15 And I will remember my -covenant, which is between me and you and every living creature of all -flesh; and the waters shall no more become a flood to destroy all -flesh. - -9:16 And the bow shall be in the cloud; and I will look upon it, that -I may remember the everlasting covenant between God and every living -creature of all flesh that is upon the earth. - -9:17 And God said unto Noah, This is the token of the covenant, which -I have established between me and all flesh that is upon the earth. - -9:18 And the sons of Noah, that went forth of the ark, were Shem, and -Ham, and Japheth: and Ham is the father of Canaan. - -9:19 These are the three sons of Noah: and of them was the whole earth -overspread. - -9:20 And Noah began to be an husbandman, and he planted a vineyard: -9:21 And he drank of the wine, and was drunken; and he was uncovered -within his tent. - -9:22 And Ham, the father of Canaan, saw the nakedness of his father, -and told his two brethren without. - -9:23 And Shem and Japheth took a garment, and laid it upon both their -shoulders, and went backward, and covered the nakedness of their -father; and their faces were backward, and they saw not their father's -nakedness. - -9:24 And Noah awoke from his wine, and knew what his younger son had -done unto him. - -9:25 And he said, Cursed be Canaan; a servant of servants shall he be -unto his brethren. - -9:26 And he said, Blessed be the LORD God of Shem; and Canaan shall be -his servant. - -9:27 God shall enlarge Japheth, and he shall dwell in the tents of -Shem; and Canaan shall be his servant. - -9:28 And Noah lived after the flood three hundred and fifty years. - -9:29 And all the days of Noah were nine hundred and fifty years: and -he died. - -10:1 Now these are the generations of the sons of Noah, Shem, Ham, and -Japheth: and unto them were sons born after the flood. - -10:2 The sons of Japheth; Gomer, and Magog, and Madai, and Javan, and -Tubal, and Meshech, and Tiras. - -10:3 And the sons of Gomer; Ashkenaz, and Riphath, and Togarmah. - -10:4 And the sons of Javan; Elishah, and Tarshish, Kittim, and -Dodanim. - -10:5 By these were the isles of the Gentiles divided in their lands; -every one after his tongue, after their families, in their nations. - -10:6 And the sons of Ham; Cush, and Mizraim, and Phut, and Canaan. - -10:7 And the sons of Cush; Seba, and Havilah, and Sabtah, and Raamah, -and Sabtechah: and the sons of Raamah; Sheba, and Dedan. - -10:8 And Cush begat Nimrod: he began to be a mighty one in the earth. - -10:9 He was a mighty hunter before the LORD: wherefore it is said, -Even as Nimrod the mighty hunter before the LORD. - -10:10 And the beginning of his kingdom was Babel, and Erech, and -Accad, and Calneh, in the land of Shinar. - -10:11 Out of that land went forth Asshur, and builded Nineveh, and the -city Rehoboth, and Calah, 10:12 And Resen between Nineveh and Calah: -the same is a great city. - -10:13 And Mizraim begat Ludim, and Anamim, and Lehabim, and Naphtuhim, -10:14 And Pathrusim, and Casluhim, (out of whom came Philistim,) and -Caphtorim. - -10:15 And Canaan begat Sidon his first born, and Heth, 10:16 And the -Jebusite, and the Amorite, and the Girgasite, 10:17 And the Hivite, -and the Arkite, and the Sinite, 10:18 And the Arvadite, and the -Zemarite, and the Hamathite: and afterward were the families of the -Canaanites spread abroad. - -10:19 And the border of the Canaanites was from Sidon, as thou comest -to Gerar, unto Gaza; as thou goest, unto Sodom, and Gomorrah, and -Admah, and Zeboim, even unto Lasha. - -10:20 These are the sons of Ham, after their families, after their -tongues, in their countries, and in their nations. - -10:21 Unto Shem also, the father of all the children of Eber, the -brother of Japheth the elder, even to him were children born. - -10:22 The children of Shem; Elam, and Asshur, and Arphaxad, and Lud, -and Aram. - -10:23 And the children of Aram; Uz, and Hul, and Gether, and Mash. - -10:24 And Arphaxad begat Salah; and Salah begat Eber. - -10:25 And unto Eber were born two sons: the name of one was Peleg; for -in his days was the earth divided; and his brother's name was Joktan. - -10:26 And Joktan begat Almodad, and Sheleph, and Hazarmaveth, and -Jerah, 10:27 And Hadoram, and Uzal, and Diklah, 10:28 And Obal, and -Abimael, and Sheba, 10:29 And Ophir, and Havilah, and Jobab: all these -were the sons of Joktan. - -10:30 And their dwelling was from Mesha, as thou goest unto Sephar a -mount of the east. - -10:31 These are the sons of Shem, after their families, after their -tongues, in their lands, after their nations. - -10:32 These are the families of the sons of Noah, after their -generations, in their nations: and by these were the nations divided -in the earth after the flood. - -11:1 And the whole earth was of one language, and of one speech. - -11:2 And it came to pass, as they journeyed from the east, that they -found a plain in the land of Shinar; and they dwelt there. - -11:3 And they said one to another, Go to, let us make brick, and burn -them thoroughly. And they had brick for stone, and slime had they for -morter. - -11:4 And they said, Go to, let us build us a city and a tower, whose -top may reach unto heaven; and let us make us a name, lest we be -scattered abroad upon the face of the whole earth. - -11:5 And the LORD came down to see the city and the tower, which the -children of men builded. - -11:6 And the LORD said, Behold, the people is one, and they have all -one language; and this they begin to do: and now nothing will be -restrained from them, which they have imagined to do. - -11:7 Go to, let us go down, and there confound their language, that -they may not understand one another's speech. - -11:8 So the LORD scattered them abroad from thence upon the face of -all the earth: and they left off to build the city. - -11:9 Therefore is the name of it called Babel; because the LORD did -there confound the language of all the earth: and from thence did the -LORD scatter them abroad upon the face of all the earth. - -11:10 These are the generations of Shem: Shem was an hundred years -old, and begat Arphaxad two years after the flood: 11:11 And Shem -lived after he begat Arphaxad five hundred years, and begat sons and -daughters. - -11:12 And Arphaxad lived five and thirty years, and begat Salah: 11:13 -And Arphaxad lived after he begat Salah four hundred and three years, -and begat sons and daughters. - -11:14 And Salah lived thirty years, and begat Eber: 11:15 And Salah -lived after he begat Eber four hundred and three years, and begat sons -and daughters. - -11:16 And Eber lived four and thirty years, and begat Peleg: 11:17 And -Eber lived after he begat Peleg four hundred and thirty years, and -begat sons and daughters. - -11:18 And Peleg lived thirty years, and begat Reu: 11:19 And Peleg -lived after he begat Reu two hundred and nine years, and begat sons -and daughters. - -11:20 And Reu lived two and thirty years, and begat Serug: 11:21 And -Reu lived after he begat Serug two hundred and seven years, and begat -sons and daughters. - -11:22 And Serug lived thirty years, and begat Nahor: 11:23 And Serug -lived after he begat Nahor two hundred years, and begat sons and -daughters. - -11:24 And Nahor lived nine and twenty years, and begat Terah: 11:25 -And Nahor lived after he begat Terah an hundred and nineteen years, -and begat sons and daughters. - -11:26 And Terah lived seventy years, and begat Abram, Nahor, and -Haran. - -11:27 Now these are the generations of Terah: Terah begat Abram, -Nahor, and Haran; and Haran begat Lot. - -11:28 And Haran died before his father Terah in the land of his -nativity, in Ur of the Chaldees. - -11:29 And Abram and Nahor took them wives: the name of Abram's wife -was Sarai; and the name of Nahor's wife, Milcah, the daughter of -Haran, the father of Milcah, and the father of Iscah. - -11:30 But Sarai was barren; she had no child. - -11:31 And Terah took Abram his son, and Lot the son of Haran his son's -son, and Sarai his daughter in law, his son Abram's wife; and they -went forth with them from Ur of the Chaldees, to go into the land of -Canaan; and they came unto Haran, and dwelt there. - -11:32 And the days of Terah were two hundred and five years: and Terah -died in Haran. - -12:1 Now the LORD had said unto Abram, Get thee out of thy country, -and from thy kindred, and from thy father's house, unto a land that I -will shew thee: 12:2 And I will make of thee a great nation, and I -will bless thee, and make thy name great; and thou shalt be a -blessing: 12:3 And I will bless them that bless thee, and curse him -that curseth thee: and in thee shall all families of the earth be -blessed. - -12:4 So Abram departed, as the LORD had spoken unto him; and Lot went -with him: and Abram was seventy and five years old when he departed -out of Haran. - -12:5 And Abram took Sarai his wife, and Lot his brother's son, and all -their substance that they had gathered, and the souls that they had -gotten in Haran; and they went forth to go into the land of Canaan; -and into the land of Canaan they came. - -12:6 And Abram passed through the land unto the place of Sichem, unto -the plain of Moreh. And the Canaanite was then in the land. - -12:7 And the LORD appeared unto Abram, and said, Unto thy seed will I -give this land: and there builded he an altar unto the LORD, who -appeared unto him. - -12:8 And he removed from thence unto a mountain on the east of Bethel, -and pitched his tent, having Bethel on the west, and Hai on the east: -and there he builded an altar unto the LORD, and called upon the name -of the LORD. - -12:9 And Abram journeyed, going on still toward the south. - -12:10 And there was a famine in the land: and Abram went down into -Egypt to sojourn there; for the famine was grievous in the land. - -12:11 And it came to pass, when he was come near to enter into Egypt, -that he said unto Sarai his wife, Behold now, I know that thou art a -fair woman to look upon: 12:12 Therefore it shall come to pass, when -the Egyptians shall see thee, that they shall say, This is his wife: -and they will kill me, but they will save thee alive. - -12:13 Say, I pray thee, thou art my sister: that it may be well with -me for thy sake; and my soul shall live because of thee. - -12:14 And it came to pass, that, when Abram was come into Egypt, the -Egyptians beheld the woman that she was very fair. - -12:15 The princes also of Pharaoh saw her, and commended her before -Pharaoh: and the woman was taken into Pharaoh's house. - -12:16 And he entreated Abram well for her sake: and he had sheep, and -oxen, and he asses, and menservants, and maidservants, and she asses, -and camels. - -12:17 And the LORD plagued Pharaoh and his house with great plagues -because of Sarai Abram's wife. - -12:18 And Pharaoh called Abram and said, What is this that thou hast -done unto me? why didst thou not tell me that she was thy wife? 12:19 -Why saidst thou, She is my sister? so I might have taken her to me to -wife: now therefore behold thy wife, take her, and go thy way. - -12:20 And Pharaoh commanded his men concerning him: and they sent him -away, and his wife, and all that he had. - -13:1 And Abram went up out of Egypt, he, and his wife, and all that he -had, and Lot with him, into the south. - -13:2 And Abram was very rich in cattle, in silver, and in gold. - -13:3 And he went on his journeys from the south even to Bethel, unto -the place where his tent had been at the beginning, between Bethel and -Hai; 13:4 Unto the place of the altar, which he had make there at the -first: and there Abram called on the name of the LORD. - -13:5 And Lot also, which went with Abram, had flocks, and herds, and -tents. - -13:6 And the land was not able to bear them, that they might dwell -together: for their substance was great, so that they could not dwell -together. - -13:7 And there was a strife between the herdmen of Abram's cattle and -the herdmen of Lot's cattle: and the Canaanite and the Perizzite -dwelled then in the land. - -13:8 And Abram said unto Lot, Let there be no strife, I pray thee, -between me and thee, and between my herdmen and thy herdmen; for we be -brethren. - -13:9 Is not the whole land before thee? separate thyself, I pray thee, -from me: if thou wilt take the left hand, then I will go to the right; -or if thou depart to the right hand, then I will go to the left. - -13:10 And Lot lifted up his eyes, and beheld all the plain of Jordan, -that it was well watered every where, before the LORD destroyed Sodom -and Gomorrah, even as the garden of the LORD, like the land of Egypt, -as thou comest unto Zoar. - -13:11 Then Lot chose him all the plain of Jordan; and Lot journeyed -east: and they separated themselves the one from the other. - -13:12 Abram dwelled in the land of Canaan, and Lot dwelled in the -cities of the plain, and pitched his tent toward Sodom. - -13:13 But the men of Sodom were wicked and sinners before the LORD -exceedingly. - -13:14 And the LORD said unto Abram, after that Lot was separated from -him, Lift up now thine eyes, and look from the place where thou art -northward, and southward, and eastward, and westward: 13:15 For all -the land which thou seest, to thee will I give it, and to thy seed for -ever. - -13:16 And I will make thy seed as the dust of the earth: so that if a -man can number the dust of the earth, then shall thy seed also be -numbered. - -13:17 Arise, walk through the land in the length of it and in the -breadth of it; for I will give it unto thee. - -13:18 Then Abram removed his tent, and came and dwelt in the plain of -Mamre, which is in Hebron, and built there an altar unto the LORD. - -14:1 And it came to pass in the days of Amraphel king of Shinar, -Arioch king of Ellasar, Chedorlaomer king of Elam, and Tidal king of -nations; 14:2 That these made war with Bera king of Sodom, and with -Birsha king of Gomorrah, Shinab king of Admah, and Shemeber king of -Zeboiim, and the king of Bela, which is Zoar. - -14:3 All these were joined together in the vale of Siddim, which is -the salt sea. - -14:4 Twelve years they served Chedorlaomer, and in the thirteenth year -they rebelled. - -14:5 And in the fourteenth year came Chedorlaomer, and the kings that -were with him, and smote the Rephaims in Ashteroth Karnaim, and the -Zuzims in Ham, and the Emins in Shaveh Kiriathaim, 14:6 And the -Horites in their mount Seir, unto Elparan, which is by the wilderness. - -14:7 And they returned, and came to Enmishpat, which is Kadesh, and -smote all the country of the Amalekites, and also the Amorites, that -dwelt in Hazezontamar. - -14:8 And there went out the king of Sodom, and the king of Gomorrah, -and the king of Admah, and the king of Zeboiim, and the king of Bela -(the same is Zoar;) and they joined battle with them in the vale of -Siddim; 14:9 With Chedorlaomer the king of Elam, and with Tidal king -of nations, and Amraphel king of Shinar, and Arioch king of Ellasar; -four kings with five. - -14:10 And the vale of Siddim was full of slimepits; and the kings of -Sodom and Gomorrah fled, and fell there; and they that remained fled -to the mountain. - -14:11 And they took all the goods of Sodom and Gomorrah, and all their -victuals, and went their way. - -14:12 And they took Lot, Abram's brother's son, who dwelt in Sodom, -and his goods, and departed. - -14:13 And there came one that had escaped, and told Abram the Hebrew; -for he dwelt in the plain of Mamre the Amorite, brother of Eshcol, and -brother of Aner: and these were confederate with Abram. - -14:14 And when Abram heard that his brother was taken captive, he -armed his trained servants, born in his own house, three hundred and -eighteen, and pursued them unto Dan. - -14:15 And he divided himself against them, he and his servants, by -night, and smote them, and pursued them unto Hobah, which is on the -left hand of Damascus. - -14:16 And he brought back all the goods, and also brought again his -brother Lot, and his goods, and the women also, and the people. - -14:17 And the king of Sodom went out to meet him after his return from -the slaughter of Chedorlaomer, and of the kings that were with him, at -the valley of Shaveh, which is the king's dale. - -14:18 And Melchizedek king of Salem brought forth bread and wine: and -he was the priest of the most high God. - -14:19 And he blessed him, and said, Blessed be Abram of the most high -God, possessor of heaven and earth: 14:20 And blessed be the most high -God, which hath delivered thine enemies into thy hand. And he gave him -tithes of all. - -14:21 And the king of Sodom said unto Abram, Give me the persons, and -take the goods to thyself. - -14:22 And Abram said to the king of Sodom, I have lift up mine hand -unto the LORD, the most high God, the possessor of heaven and earth, -14:23 That I will not take from a thread even to a shoelatchet, and -that I will not take any thing that is thine, lest thou shouldest say, -I have made Abram rich: 14:24 Save only that which the young men have -eaten, and the portion of the men which went with me, Aner, Eshcol, -and Mamre; let them take their portion. - -15:1 After these things the word of the LORD came unto Abram in a -vision, saying, Fear not, Abram: I am thy shield, and thy exceeding -great reward. - -15:2 And Abram said, LORD God, what wilt thou give me, seeing I go -childless, and the steward of my house is this Eliezer of Damascus? -15:3 And Abram said, Behold, to me thou hast given no seed: and, lo, -one born in my house is mine heir. - -15:4 And, behold, the word of the LORD came unto him, saying, This -shall not be thine heir; but he that shall come forth out of thine own -bowels shall be thine heir. - -15:5 And he brought him forth abroad, and said, Look now toward -heaven, and tell the stars, if thou be able to number them: and he -said unto him, So shall thy seed be. - -15:6 And he believed in the LORD; and he counted it to him for -righteousness. - -15:7 And he said unto him, I am the LORD that brought thee out of Ur -of the Chaldees, to give thee this land to inherit it. - -15:8 And he said, LORD God, whereby shall I know that I shall inherit -it? 15:9 And he said unto him, Take me an heifer of three years old, -and a she goat of three years old, and a ram of three years old, and a -turtledove, and a young pigeon. - -15:10 And he took unto him all these, and divided them in the midst, -and laid each piece one against another: but the birds divided he not. - -15:11 And when the fowls came down upon the carcases, Abram drove them -away. - -15:12 And when the sun was going down, a deep sleep fell upon Abram; -and, lo, an horror of great darkness fell upon him. - -15:13 And he said unto Abram, Know of a surety that thy seed shall be -a stranger in a land that is not their's, and shall serve them; and -they shall afflict them four hundred years; 15:14 And also that -nation, whom they shall serve, will I judge: and afterward shall they -come out with great substance. - -15:15 And thou shalt go to thy fathers in peace; thou shalt be buried -in a good old age. - -15:16 But in the fourth generation they shall come hither again: for -the iniquity of the Amorites is not yet full. - -15:17 And it came to pass, that, when the sun went down, and it was -dark, behold a smoking furnace, and a burning lamp that passed between -those pieces. - -15:18 In the same day the LORD made a covenant with Abram, saying, -Unto thy seed have I given this land, from the river of Egypt unto the -great river, the river Euphrates: 15:19 The Kenites, and the -Kenizzites, and the Kadmonites, 15:20 And the Hittites, and the -Perizzites, and the Rephaims, 15:21 And the Amorites, and the -Canaanites, and the Girgashites, and the Jebusites. - -16:1 Now Sarai Abram's wife bare him no children: and she had an -handmaid, an Egyptian, whose name was Hagar. - -16:2 And Sarai said unto Abram, Behold now, the LORD hath restrained -me from bearing: I pray thee, go in unto my maid; it may be that I may -obtain children by her. And Abram hearkened to the voice of Sarai. - -16:3 And Sarai Abram's wife took Hagar her maid the Egyptian, after -Abram had dwelt ten years in the land of Canaan, and gave her to her -husband Abram to be his wife. - -16:4 And he went in unto Hagar, and she conceived: and when she saw -that she had conceived, her mistress was despised in her eyes. - -16:5 And Sarai said unto Abram, My wrong be upon thee: I have given my -maid into thy bosom; and when she saw that she had conceived, I was -despised in her eyes: the LORD judge between me and thee. - -16:6 But Abram said unto Sarai, Behold, thy maid is in thine hand; do -to her as it pleaseth thee. And when Sarai dealt hardly with her, she -fled from her face. - -16:7 And the angel of the LORD found her by a fountain of water in the -wilderness, by the fountain in the way to Shur. - -16:8 And he said, Hagar, Sarai's maid, whence camest thou? and whither -wilt thou go? And she said, I flee from the face of my mistress Sarai. - -16:9 And the angel of the LORD said unto her, Return to thy mistress, -and submit thyself under her hands. - -16:10 And the angel of the LORD said unto her, I will multiply thy -seed exceedingly, that it shall not be numbered for multitude. - -16:11 And the angel of the LORD said unto her, Behold, thou art with -child and shalt bear a son, and shalt call his name Ishmael; because -the LORD hath heard thy affliction. - -16:12 And he will be a wild man; his hand will be against every man, -and every man's hand against him; and he shall dwell in the presence -of all his brethren. - -16:13 And she called the name of the LORD that spake unto her, Thou -God seest me: for she said, Have I also here looked after him that -seeth me? 16:14 Wherefore the well was called Beerlahairoi; behold, -it is between Kadesh and Bered. - -16:15 And Hagar bare Abram a son: and Abram called his son's name, -which Hagar bare, Ishmael. - -16:16 And Abram was fourscore and six years old, when Hagar bare -Ishmael to Abram. - -17:1 And when Abram was ninety years old and nine, the LORD appeared -to Abram, and said unto him, I am the Almighty God; walk before me, -and be thou perfect. - -17:2 And I will make my covenant between me and thee, and will -multiply thee exceedingly. - -17:3 And Abram fell on his face: and God talked with him, saying, 17:4 -As for me, behold, my covenant is with thee, and thou shalt be a -father of many nations. - -17:5 Neither shall thy name any more be called Abram, but thy name -shall be Abraham; for a father of many nations have I made thee. - -17:6 And I will make thee exceeding fruitful, and I will make nations -of thee, and kings shall come out of thee. - -17:7 And I will establish my covenant between me and thee and thy seed -after thee in their generations for an everlasting covenant, to be a -God unto thee, and to thy seed after thee. - -17:8 And I will give unto thee, and to thy seed after thee, the land -wherein thou art a stranger, all the land of Canaan, for an -everlasting possession; and I will be their God. - -17:9 And God said unto Abraham, Thou shalt keep my covenant therefore, -thou, and thy seed after thee in their generations. - -17:10 This is my covenant, which ye shall keep, between me and you and -thy seed after thee; Every man child among you shall be circumcised. - -17:11 And ye shall circumcise the flesh of your foreskin; and it shall -be a token of the covenant betwixt me and you. - -17:12 And he that is eight days old shall be circumcised among you, -every man child in your generations, he that is born in the house, or -bought with money of any stranger, which is not of thy seed. - -17:13 He that is born in thy house, and he that is bought with thy -money, must needs be circumcised: and my covenant shall be in your -flesh for an everlasting covenant. - -17:14 And the uncircumcised man child whose flesh of his foreskin is -not circumcised, that soul shall be cut off from his people; he hath -broken my covenant. - -17:15 And God said unto Abraham, As for Sarai thy wife, thou shalt not -call her name Sarai, but Sarah shall her name be. - -17:16 And I will bless her, and give thee a son also of her: yea, I -will bless her, and she shall be a mother of nations; kings of people -shall be of her. - -17:17 Then Abraham fell upon his face, and laughed, and said in his -heart, Shall a child be born unto him that is an hundred years old? -and shall Sarah, that is ninety years old, bear? 17:18 And Abraham -said unto God, O that Ishmael might live before thee! 17:19 And God -said, Sarah thy wife shall bear thee a son indeed; and thou shalt call -his name Isaac: and I will establish my covenant with him for an -everlasting covenant, and with his seed after him. - -17:20 And as for Ishmael, I have heard thee: Behold, I have blessed -him, and will make him fruitful, and will multiply him exceedingly; -twelve princes shall he beget, and I will make him a great nation. - -17:21 But my covenant will I establish with Isaac, which Sarah shall -bear unto thee at this set time in the next year. - -17:22 And he left off talking with him, and God went up from Abraham. - -17:23 And Abraham took Ishmael his son, and all that were born in his -house, and all that were bought with his money, every male among the -men of Abraham's house; and circumcised the flesh of their foreskin in -the selfsame day, as God had said unto him. - -17:24 And Abraham was ninety years old and nine, when he was -circumcised in the flesh of his foreskin. - -17:25 And Ishmael his son was thirteen years old, when he was -circumcised in the flesh of his foreskin. - -17:26 In the selfsame day was Abraham circumcised, and Ishmael his -son. - -17:27 And all the men of his house, born in the house, and bought with -money of the stranger, were circumcised with him. - -18:1 And the LORD appeared unto him in the plains of Mamre: and he sat -in the tent door in the heat of the day; 18:2 And he lift up his eyes -and looked, and, lo, three men stood by him: and when he saw them, he -ran to meet them from the tent door, and bowed himself toward the -ground, 18:3 And said, My LORD, if now I have found favour in thy -sight, pass not away, I pray thee, from thy servant: 18:4 Let a little -water, I pray you, be fetched, and wash your feet, and rest yourselves -under the tree: 18:5 And I will fetch a morsel of bread, and comfort -ye your hearts; after that ye shall pass on: for therefore are ye come -to your servant. And they said, So do, as thou hast said. - -18:6 And Abraham hastened into the tent unto Sarah, and said, Make -ready quickly three measures of fine meal, knead it, and make cakes -upon the hearth. - -18:7 And Abraham ran unto the herd, and fetcht a calf tender and good, -and gave it unto a young man; and he hasted to dress it. - -18:8 And he took butter, and milk, and the calf which he had dressed, -and set it before them; and he stood by them under the tree, and they -did eat. - -18:9 And they said unto him, Where is Sarah thy wife? And he said, -Behold, in the tent. - -18:10 And he said, I will certainly return unto thee according to the -time of life; and, lo, Sarah thy wife shall have a son. And Sarah -heard it in the tent door, which was behind him. - -18:11 Now Abraham and Sarah were old and well stricken in age; and it -ceased to be with Sarah after the manner of women. - -18:12 Therefore Sarah laughed within herself, saying, After I am waxed -old shall I have pleasure, my lord being old also? 18:13 And the LORD -said unto Abraham, Wherefore did Sarah laugh, saying, Shall I of a -surety bear a child, which am old? 18:14 Is any thing too hard for -the LORD? At the time appointed I will return unto thee, according to -the time of life, and Sarah shall have a son. - -18:15 Then Sarah denied, saying, I laughed not; for she was afraid. -And he said, Nay; but thou didst laugh. - -18:16 And the men rose up from thence, and looked toward Sodom: and -Abraham went with them to bring them on the way. - -18:17 And the LORD said, Shall I hide from Abraham that thing which I -do; 18:18 Seeing that Abraham shall surely become a great and mighty -nation, and all the nations of the earth shall be blessed in him? -18:19 For I know him, that he will command his children and his -household after him, and they shall keep the way of the LORD, to do -justice and judgment; that the LORD may bring upon Abraham that which -he hath spoken of him. - -18:20 And the LORD said, Because the cry of Sodom and Gomorrah is -great, and because their sin is very grievous; 18:21 I will go down -now, and see whether they have done altogether according to the cry of -it, which is come unto me; and if not, I will know. - -18:22 And the men turned their faces from thence, and went toward -Sodom: but Abraham stood yet before the LORD. - -18:23 And Abraham drew near, and said, Wilt thou also destroy the -righteous with the wicked? 18:24 Peradventure there be fifty -righteous within the city: wilt thou also destroy and not spare the -place for the fifty righteous that are therein? 18:25 That be far -from thee to do after this manner, to slay the righteous with the -wicked: and that the righteous should be as the wicked, that be far -from thee: Shall not the Judge of all the earth do right? 18:26 And -the LORD said, If I find in Sodom fifty righteous within the city, -then I will spare all the place for their sakes. - -18:27 And Abraham answered and said, Behold now, I have taken upon me -to speak unto the LORD, which am but dust and ashes: 18:28 -Peradventure there shall lack five of the fifty righteous: wilt thou -destroy all the city for lack of five? And he said, If I find there -forty and five, I will not destroy it. - -18:29 And he spake unto him yet again, and said, Peradventure there -shall be forty found there. And he said, I will not do it for forty's -sake. - -18:30 And he said unto him, Oh let not the LORD be angry, and I will -speak: Peradventure there shall thirty be found there. And he said, I -will not do it, if I find thirty there. - -18:31 And he said, Behold now, I have taken upon me to speak unto the -LORD: Peradventure there shall be twenty found there. And he said, I -will not destroy it for twenty's sake. - -18:32 And he said, Oh let not the LORD be angry, and I will speak yet -but this once: Peradventure ten shall be found there. And he said, I -will not destroy it for ten's sake. - -18:33 And the LORD went his way, as soon as he had left communing with -Abraham: and Abraham returned unto his place. - -19:1 And there came two angels to Sodom at even; and Lot sat in the -gate of Sodom: and Lot seeing them rose up to meet them; and he bowed -himself with his face toward the ground; 19:2 And he said, Behold now, -my lords, turn in, I pray you, into your servant's house, and tarry -all night, and wash your feet, and ye shall rise up early, and go on -your ways. And they said, Nay; but we will abide in the street all -night. - -19:3 And he pressed upon them greatly; and they turned in unto him, -and entered into his house; and he made them a feast, and did bake -unleavened bread, and they did eat. - -19:4 But before they lay down, the men of the city, even the men of -Sodom, compassed the house round, both old and young, all the people -from every quarter: 19:5 And they called unto Lot, and said unto him, -Where are the men which came in to thee this night? bring them out -unto us, that we may know them. - -19:6 And Lot went out at the door unto them, and shut the door after -him, 19:7 And said, I pray you, brethren, do not so wickedly. - -19:8 Behold now, I have two daughters which have not known man; let -me, I pray you, bring them out unto you, and do ye to them as is good -in your eyes: only unto these men do nothing; for therefore came they -under the shadow of my roof. - -19:9 And they said, Stand back. And they said again, This one fellow -came in to sojourn, and he will needs be a judge: now will we deal -worse with thee, than with them. And they pressed sore upon the man, -even Lot, and came near to break the door. - -19:10 But the men put forth their hand, and pulled Lot into the house -to them, and shut to the door. - -19:11 And they smote the men that were at the door of the house with -blindness, both small and great: so that they wearied themselves to -find the door. - -19:12 And the men said unto Lot, Hast thou here any besides? son in -law, and thy sons, and thy daughters, and whatsoever thou hast in the -city, bring them out of this place: 19:13 For we will destroy this -place, because the cry of them is waxen great before the face of the -LORD; and the LORD hath sent us to destroy it. - -19:14 And Lot went out, and spake unto his sons in law, which married -his daughters, and said, Up, get you out of this place; for the LORD -will destroy this city. But he seemed as one that mocked unto his sons -in law. - -19:15 And when the morning arose, then the angels hastened Lot, -saying, Arise, take thy wife, and thy two daughters, which are here; -lest thou be consumed in the iniquity of the city. - -19:16 And while he lingered, the men laid hold upon his hand, and upon -the hand of his wife, and upon the hand of his two daughters; the LORD -being merciful unto him: and they brought him forth, and set him -without the city. - -19:17 And it came to pass, when they had brought them forth abroad, -that he said, Escape for thy life; look not behind thee, neither stay -thou in all the plain; escape to the mountain, lest thou be consumed. - -19:18 And Lot said unto them, Oh, not so, my LORD: 19:19 Behold now, -thy servant hath found grace in thy sight, and thou hast magnified thy -mercy, which thou hast shewed unto me in saving my life; and I cannot -escape to the mountain, lest some evil take me, and I die: 19:20 -Behold now, this city is near to flee unto, and it is a little one: -Oh, let me escape thither, (is it not a little one?) and my soul shall -live. - -19:21 And he said unto him, See, I have accepted thee concerning this -thing also, that I will not overthrow this city, for the which thou -hast spoken. - -19:22 Haste thee, escape thither; for I cannot do anything till thou -be come thither. Therefore the name of the city was called Zoar. - -19:23 The sun was risen upon the earth when Lot entered into Zoar. - -19:24 Then the LORD rained upon Sodom and upon Gomorrah brimstone and -fire from the LORD out of heaven; 19:25 And he overthrew those cities, -and all the plain, and all the inhabitants of the cities, and that -which grew upon the ground. - -19:26 But his wife looked back from behind him, and she became a -pillar of salt. - -19:27 And Abraham gat up early in the morning to the place where he -stood before the LORD: 19:28 And he looked toward Sodom and Gomorrah, -and toward all the land of the plain, and beheld, and, lo, the smoke -of the country went up as the smoke of a furnace. - -19:29 And it came to pass, when God destroyed the cities of the plain, -that God remembered Abraham, and sent Lot out of the midst of the -overthrow, when he overthrew the cities in the which Lot dwelt. - -19:30 And Lot went up out of Zoar, and dwelt in the mountain, and his -two daughters with him; for he feared to dwell in Zoar: and he dwelt -in a cave, he and his two daughters. - -19:31 And the firstborn said unto the younger, Our father is old, and -there is not a man in the earth to come in unto us after the manner of -all the earth: 19:32 Come, let us make our father drink wine, and we -will lie with him, that we may preserve seed of our father. - -19:33 And they made their father drink wine that night: and the -firstborn went in, and lay with her father; and he perceived not when -she lay down, nor when she arose. - -19:34 And it came to pass on the morrow, that the firstborn said unto -the younger, Behold, I lay yesternight with my father: let us make him -drink wine this night also; and go thou in, and lie with him, that we -may preserve seed of our father. - -19:35 And they made their father drink wine that night also: and the -younger arose, and lay with him; and he perceived not when she lay -down, nor when she arose. - -19:36 Thus were both the daughters of Lot with child by their father. - -19:37 And the first born bare a son, and called his name Moab: the -same is the father of the Moabites unto this day. - -19:38 And the younger, she also bare a son, and called his name -Benammi: the same is the father of the children of Ammon unto this -day. - -20:1 And Abraham journeyed from thence toward the south country, and -dwelled between Kadesh and Shur, and sojourned in Gerar. - -20:2 And Abraham said of Sarah his wife, She is my sister: and -Abimelech king of Gerar sent, and took Sarah. - -20:3 But God came to Abimelech in a dream by night, and said to him, -Behold, thou art but a dead man, for the woman which thou hast taken; -for she is a man's wife. - -20:4 But Abimelech had not come near her: and he said, LORD, wilt thou -slay also a righteous nation? 20:5 Said he not unto me, She is my -sister? and she, even she herself said, He is my brother: in the -integrity of my heart and innocency of my hands have I done this. - -20:6 And God said unto him in a dream, Yea, I know that thou didst -this in the integrity of thy heart; for I also withheld thee from -sinning against me: therefore suffered I thee not to touch her. - -20:7 Now therefore restore the man his wife; for he is a prophet, and -he shall pray for thee, and thou shalt live: and if thou restore her -not, know thou that thou shalt surely die, thou, and all that are -thine. - -20:8 Therefore Abimelech rose early in the morning, and called all his -servants, and told all these things in their ears: and the men were -sore afraid. - -20:9 Then Abimelech called Abraham, and said unto him, What hast thou -done unto us? and what have I offended thee, that thou hast brought on -me and on my kingdom a great sin? thou hast done deeds unto me that -ought not to be done. - -20:10 And Abimelech said unto Abraham, What sawest thou, that thou -hast done this thing? 20:11 And Abraham said, Because I thought, -Surely the fear of God is not in this place; and they will slay me for -my wife's sake. - -20:12 And yet indeed she is my sister; she is the daughter of my -father, but not the daughter of my mother; and she became my wife. - -20:13 And it came to pass, when God caused me to wander from my -father's house, that I said unto her, This is thy kindness which thou -shalt shew unto me; at every place whither we shall come, say of me, -He is my brother. - -20:14 And Abimelech took sheep, and oxen, and menservants, and -womenservants, and gave them unto Abraham, and restored him Sarah his -wife. - -20:15 And Abimelech said, Behold, my land is before thee: dwell where -it pleaseth thee. - -20:16 And unto Sarah he said, Behold, I have given thy brother a -thousand pieces of silver: behold, he is to thee a covering of the -eyes, unto all that are with thee, and with all other: thus she was -reproved. - -20:17 So Abraham prayed unto God: and God healed Abimelech, and his -wife, and his maidservants; and they bare children. - -20:18 For the LORD had fast closed up all the wombs of the house of -Abimelech, because of Sarah Abraham's wife. - -21:1 And the LORD visited Sarah as he had said, and the LORD did unto -Sarah as he had spoken. - -21:2 For Sarah conceived, and bare Abraham a son in his old age, at -the set time of which God had spoken to him. - -21:3 And Abraham called the name of his son that was born unto him, -whom Sarah bare to him, Isaac. - -21:4 And Abraham circumcised his son Isaac being eight days old, as -God had commanded him. - -21:5 And Abraham was an hundred years old, when his son Isaac was born -unto him. - -21:6 And Sarah said, God hath made me to laugh, so that all that hear -will laugh with me. - -21:7 And she said, Who would have said unto Abraham, that Sarah should -have given children suck? for I have born him a son in his old age. - -21:8 And the child grew, and was weaned: and Abraham made a great -feast the same day that Isaac was weaned. - -21:9 And Sarah saw the son of Hagar the Egyptian, which she had born -unto Abraham, mocking. - -21:10 Wherefore she said unto Abraham, Cast out this bondwoman and her -son: for the son of this bondwoman shall not be heir with my son, even -with Isaac. - -21:11 And the thing was very grievous in Abraham's sight because of -his son. - -21:12 And God said unto Abraham, Let it not be grievous in thy sight -because of the lad, and because of thy bondwoman; in all that Sarah -hath said unto thee, hearken unto her voice; for in Isaac shall thy -seed be called. - -21:13 And also of the son of the bondwoman will I make a nation, -because he is thy seed. - -21:14 And Abraham rose up early in the morning, and took bread, and a -bottle of water, and gave it unto Hagar, putting it on her shoulder, -and the child, and sent her away: and she departed, and wandered in -the wilderness of Beersheba. - -21:15 And the water was spent in the bottle, and she cast the child -under one of the shrubs. - -21:16 And she went, and sat her down over against him a good way off, -as it were a bow shot: for she said, Let me not see the death of the -child. And she sat over against him, and lift up her voice, and wept. - -21:17 And God heard the voice of the lad; and the angel of God called -to Hagar out of heaven, and said unto her, What aileth thee, Hagar? -fear not; for God hath heard the voice of the lad where he is. - -21:18 Arise, lift up the lad, and hold him in thine hand; for I will -make him a great nation. - -21:19 And God opened her eyes, and she saw a well of water; and she -went, and filled the bottle with water, and gave the lad drink. - -21:20 And God was with the lad; and he grew, and dwelt in the -wilderness, and became an archer. - -21:21 And he dwelt in the wilderness of Paran: and his mother took him -a wife out of the land of Egypt. - -21:22 And it came to pass at that time, that Abimelech and Phichol the -chief captain of his host spake unto Abraham, saying, God is with thee -in all that thou doest: 21:23 Now therefore swear unto me here by God -that thou wilt not deal falsely with me, nor with my son, nor with my -son's son: but according to the kindness that I have done unto thee, -thou shalt do unto me, and to the land wherein thou hast sojourned. - -21:24 And Abraham said, I will swear. - -21:25 And Abraham reproved Abimelech because of a well of water, which -Abimelech's servants had violently taken away. - -21:26 And Abimelech said, I wot not who hath done this thing; neither -didst thou tell me, neither yet heard I of it, but to day. - -21:27 And Abraham took sheep and oxen, and gave them unto Abimelech; -and both of them made a covenant. - -21:28 And Abraham set seven ewe lambs of the flock by themselves. - -21:29 And Abimelech said unto Abraham, What mean these seven ewe lambs -which thou hast set by themselves? 21:30 And he said, For these seven -ewe lambs shalt thou take of my hand, that they may be a witness unto -me, that I have digged this well. - -21:31 Wherefore he called that place Beersheba; because there they -sware both of them. - -21:32 Thus they made a covenant at Beersheba: then Abimelech rose up, -and Phichol the chief captain of his host, and they returned into the -land of the Philistines. - -21:33 And Abraham planted a grove in Beersheba, and called there on -the name of the LORD, the everlasting God. - -21:34 And Abraham sojourned in the Philistines' land many days. - -22:1 And it came to pass after these things, that God did tempt -Abraham, and said unto him, Abraham: and he said, Behold, here I am. - -22:2 And he said, Take now thy son, thine only son Isaac, whom thou -lovest, and get thee into the land of Moriah; and offer him there for -a burnt offering upon one of the mountains which I will tell thee of. - -22:3 And Abraham rose up early in the morning, and saddled his ass, -and took two of his young men with him, and Isaac his son, and clave -the wood for the burnt offering, and rose up, and went unto the place -of which God had told him. - -22:4 Then on the third day Abraham lifted up his eyes, and saw the -place afar off. - -22:5 And Abraham said unto his young men, Abide ye here with the ass; -and I and the lad will go yonder and worship, and come again to you. - -22:6 And Abraham took the wood of the burnt offering, and laid it upon -Isaac his son; and he took the fire in his hand, and a knife; and they -went both of them together. - -22:7 And Isaac spake unto Abraham his father, and said, My father: and -he said, Here am I, my son. And he said, Behold the fire and the wood: -but where is the lamb for a burnt offering? 22:8 And Abraham said, My -son, God will provide himself a lamb for a burnt offering: so they -went both of them together. - -22:9 And they came to the place which God had told him of; and Abraham -built an altar there, and laid the wood in order, and bound Isaac his -son, and laid him on the altar upon the wood. - -22:10 And Abraham stretched forth his hand, and took the knife to slay -his son. - -22:11 And the angel of the LORD called unto him out of heaven, and -said, Abraham, Abraham: and he said, Here am I. - -22:12 And he said, Lay not thine hand upon the lad, neither do thou -any thing unto him: for now I know that thou fearest God, seeing thou -hast not withheld thy son, thine only son from me. - -22:13 And Abraham lifted up his eyes, and looked, and behold behind -him a ram caught in a thicket by his horns: and Abraham went and took -the ram, and offered him up for a burnt offering in the stead of his -son. - -22:14 And Abraham called the name of that place Jehovahjireh: as it is -said to this day, In the mount of the LORD it shall be seen. - -22:15 And the angel of the LORD called unto Abraham out of heaven the -second time, 22:16 And said, By myself have I sworn, saith the LORD, -for because thou hast done this thing, and hast not withheld thy son, -thine only son: 22:17 That in blessing I will bless thee, and in -multiplying I will multiply thy seed as the stars of the heaven, and -as the sand which is upon the sea shore; and thy seed shall possess -the gate of his enemies; 22:18 And in thy seed shall all the nations -of the earth be blessed; because thou hast obeyed my voice. - -22:19 So Abraham returned unto his young men, and they rose up and -went together to Beersheba; and Abraham dwelt at Beersheba. - -22:20 And it came to pass after these things, that it was told -Abraham, saying, Behold, Milcah, she hath also born children unto thy -brother Nahor; 22:21 Huz his firstborn, and Buz his brother, and -Kemuel the father of Aram, 22:22 And Chesed, and Hazo, and Pildash, -and Jidlaph, and Bethuel. - -22:23 And Bethuel begat Rebekah: these eight Milcah did bear to Nahor, -Abraham's brother. - -22:24 And his concubine, whose name was Reumah, she bare also Tebah, -and Gaham, and Thahash, and Maachah. - -23:1 And Sarah was an hundred and seven and twenty years old: these -were the years of the life of Sarah. - -23:2 And Sarah died in Kirjatharba; the same is Hebron in the land of -Canaan: and Abraham came to mourn for Sarah, and to weep for her. - -23:3 And Abraham stood up from before his dead, and spake unto the -sons of Heth, saying, 23:4 I am a stranger and a sojourner with you: -give me a possession of a buryingplace with you, that I may bury my -dead out of my sight. - -23:5 And the children of Heth answered Abraham, saying unto him, 23:6 -Hear us, my lord: thou art a mighty prince among us: in the choice of -our sepulchres bury thy dead; none of us shall withhold from thee his -sepulchre, but that thou mayest bury thy dead. - -23:7 And Abraham stood up, and bowed himself to the people of the -land, even to the children of Heth. - -23:8 And he communed with them, saying, If it be your mind that I -should bury my dead out of my sight; hear me, and intreat for me to -Ephron the son of Zohar, 23:9 That he may give me the cave of -Machpelah, which he hath, which is in the end of his field; for as -much money as it is worth he shall give it me for a possession of a -buryingplace amongst you. - -23:10 And Ephron dwelt among the children of Heth: and Ephron the -Hittite answered Abraham in the audience of the children of Heth, even -of all that went in at the gate of his city, saying, 23:11 Nay, my -lord, hear me: the field give I thee, and the cave that is therein, I -give it thee; in the presence of the sons of my people give I it thee: -bury thy dead. - -23:12 And Abraham bowed down himself before the people of the land. - -23:13 And he spake unto Ephron in the audience of the people of the -land, saying, But if thou wilt give it, I pray thee, hear me: I will -give thee money for the field; take it of me, and I will bury my dead -there. - -23:14 And Ephron answered Abraham, saying unto him, 23:15 My lord, -hearken unto me: the land is worth four hundred shekels of silver; -what is that betwixt me and thee? bury therefore thy dead. - -23:16 And Abraham hearkened unto Ephron; and Abraham weighed to Ephron -the silver, which he had named in the audience of the sons of Heth, -four hundred shekels of silver, current money with the merchant. - -23:17 And the field of Ephron which was in Machpelah, which was before -Mamre, the field, and the cave which was therein, and all the trees -that were in the field, that were in all the borders round about, were -made sure 23:18 Unto Abraham for a possession in the presence of the -children of Heth, before all that went in at the gate of his city. - -23:19 And after this, Abraham buried Sarah his wife in the cave of the -field of Machpelah before Mamre: the same is Hebron in the land of -Canaan. - -23:20 And the field, and the cave that is therein, were made sure unto -Abraham for a possession of a buryingplace by the sons of Heth. - -24:1 And Abraham was old, and well stricken in age: and the LORD had -blessed Abraham in all things. - -24:2 And Abraham said unto his eldest servant of his house, that ruled -over all that he had, Put, I pray thee, thy hand under my thigh: 24:3 -And I will make thee swear by the LORD, the God of heaven, and the God -of the earth, that thou shalt not take a wife unto my son of the -daughters of the Canaanites, among whom I dwell: 24:4 But thou shalt -go unto my country, and to my kindred, and take a wife unto my son -Isaac. - -24:5 And the servant said unto him, Peradventure the woman will not be -willing to follow me unto this land: must I needs bring thy son again -unto the land from whence thou camest? 24:6 And Abraham said unto -him, Beware thou that thou bring not my son thither again. - -24:7 The LORD God of heaven, which took me from my father's house, and -from the land of my kindred, and which spake unto me, and that sware -unto me, saying, Unto thy seed will I give this land; he shall send -his angel before thee, and thou shalt take a wife unto my son from -thence. - -24:8 And if the woman will not be willing to follow thee, then thou -shalt be clear from this my oath: only bring not my son thither again. - -24:9 And the servant put his hand under the thigh of Abraham his -master, and sware to him concerning that matter. - -24:10 And the servant took ten camels of the camels of his master, and -departed; for all the goods of his master were in his hand: and he -arose, and went to Mesopotamia, unto the city of Nahor. - -24:11 And he made his camels to kneel down without the city by a well -of water at the time of the evening, even the time that women go out -to draw water. - -24:12 And he said O LORD God of my master Abraham, I pray thee, send -me good speed this day, and shew kindness unto my master Abraham. - -24:13 Behold, I stand here by the well of water; and the daughters of -the men of the city come out to draw water: 24:14 And let it come to -pass, that the damsel to whom I shall say, Let down thy pitcher, I -pray thee, that I may drink; and she shall say, Drink, and I will give -thy camels drink also: let the same be she that thou hast appointed -for thy servant Isaac; and thereby shall I know that thou hast shewed -kindness unto my master. - -24:15 And it came to pass, before he had done speaking, that, behold, -Rebekah came out, who was born to Bethuel, son of Milcah, the wife of -Nahor, Abraham's brother, with her pitcher upon her shoulder. - -24:16 And the damsel was very fair to look upon, a virgin, neither had -any man known her: and she went down to the well, and filled her -pitcher, and came up. - -24:17 And the servant ran to meet her, and said, Let me, I pray thee, -drink a little water of thy pitcher. - -24:18 And she said, Drink, my lord: and she hasted, and let down her -pitcher upon her hand, and gave him drink. - -24:19 And when she had done giving him drink, she said, I will draw -water for thy camels also, until they have done drinking. - -24:20 And she hasted, and emptied her pitcher into the trough, and ran -again unto the well to draw water, and drew for all his camels. - -24:21 And the man wondering at her held his peace, to wit whether the -LORD had made his journey prosperous or not. - -24:22 And it came to pass, as the camels had done drinking, that the -man took a golden earring of half a shekel weight, and two bracelets -for her hands of ten shekels weight of gold; 24:23 And said, Whose -daughter art thou? tell me, I pray thee: is there room in thy father's -house for us to lodge in? 24:24 And she said unto him, I am the -daughter of Bethuel the son of Milcah, which she bare unto Nahor. - -24:25 She said moreover unto him, We have both straw and provender -enough, and room to lodge in. - -24:26 And the man bowed down his head, and worshipped the LORD. - -24:27 And he said, Blessed be the LORD God of my master Abraham, who -hath not left destitute my master of his mercy and his truth: I being -in the way, the LORD led me to the house of my master's brethren. - -24:28 And the damsel ran, and told them of her mother's house these -things. - -24:29 And Rebekah had a brother, and his name was Laban: and Laban ran -out unto the man, unto the well. - -24:30 And it came to pass, when he saw the earring and bracelets upon -his sister's hands, and when he heard the words of Rebekah his sister, -saying, Thus spake the man unto me; that he came unto the man; and, -behold, he stood by the camels at the well. - -24:31 And he said, Come in, thou blessed of the LORD; wherefore -standest thou without? for I have prepared the house, and room for the -camels. - -24:32 And the man came into the house: and he ungirded his camels, and -gave straw and provender for the camels, and water to wash his feet, -and the men's feet that were with him. - -24:33 And there was set meat before him to eat: but he said, I will -not eat, until I have told mine errand. And he said, Speak on. - -24:34 And he said, I am Abraham's servant. - -24:35 And the LORD hath blessed my master greatly; and he is become -great: and he hath given him flocks, and herds, and silver, and gold, -and menservants, and maidservants, and camels, and asses. - -24:36 And Sarah my master's wife bare a son to my master when she was -old: and unto him hath he given all that he hath. - -24:37 And my master made me swear, saying, Thou shalt not take a wife -to my son of the daughters of the Canaanites, in whose land I dwell: -24:38 But thou shalt go unto my father's house, and to my kindred, and -take a wife unto my son. - -24:39 And I said unto my master, Peradventure the woman will not -follow me. - -24:40 And he said unto me, The LORD, before whom I walk, will send his -angel with thee, and prosper thy way; and thou shalt take a wife for -my son of my kindred, and of my father's house: 24:41 Then shalt thou -be clear from this my oath, when thou comest to my kindred; and if -they give not thee one, thou shalt be clear from my oath. - -24:42 And I came this day unto the well, and said, O LORD God of my -master Abraham, if now thou do prosper my way which I go: 24:43 -Behold, I stand by the well of water; and it shall come to pass, that -when the virgin cometh forth to draw water, and I say to her, Give me, -I pray thee, a little water of thy pitcher to drink; 24:44 And she say -to me, Both drink thou, and I will also draw for thy camels: let the -same be the woman whom the LORD hath appointed out for my master's -son. - -24:45 And before I had done speaking in mine heart, behold, Rebekah -came forth with her pitcher on her shoulder; and she went down unto -the well, and drew water: and I said unto her, Let me drink, I pray -thee. - -24:46 And she made haste, and let down her pitcher from her shoulder, -and said, Drink, and I will give thy camels drink also: so I drank, -and she made the camels drink also. - -24:47 And I asked her, and said, Whose daughter art thou? And she -said, the daughter of Bethuel, Nahor's son, whom Milcah bare unto him: -and I put the earring upon her face, and the bracelets upon her hands. - -24:48 And I bowed down my head, and worshipped the LORD, and blessed -the LORD God of my master Abraham, which had led me in the right way -to take my master's brother's daughter unto his son. - -24:49 And now if ye will deal kindly and truly with my master, tell -me: and if not, tell me; that I may turn to the right hand, or to the -left. - -24:50 Then Laban and Bethuel answered and said, The thing proceedeth -from the LORD: we cannot speak unto thee bad or good. - -24:51 Behold, Rebekah is before thee, take her, and go, and let her be -thy master's son's wife, as the LORD hath spoken. - -24:52 And it came to pass, that, when Abraham's servant heard their -words, he worshipped the LORD, bowing himself to the earth. - -24:53 And the servant brought forth jewels of silver, and jewels of -gold, and raiment, and gave them to Rebekah: he gave also to her -brother and to her mother precious things. - -24:54 And they did eat and drink, he and the men that were with him, -and tarried all night; and they rose up in the morning, and he said, -Send me away unto my master. - -24:55 And her brother and her mother said, Let the damsel abide with -us a few days, at the least ten; after that she shall go. - -24:56 And he said unto them, Hinder me not, seeing the LORD hath -prospered my way; send me away that I may go to my master. - -24:57 And they said, We will call the damsel, and enquire at her -mouth. - -24:58 And they called Rebekah, and said unto her, Wilt thou go with -this man? And she said, I will go. - -24:59 And they sent away Rebekah their sister, and her nurse, and -Abraham's servant, and his men. - -24:60 And they blessed Rebekah, and said unto her, Thou art our -sister, be thou the mother of thousands of millions, and let thy seed -possess the gate of those which hate them. - -24:61 And Rebekah arose, and her damsels, and they rode upon the -camels, and followed the man: and the servant took Rebekah, and went -his way. - -24:62 And Isaac came from the way of the well Lahairoi; for he dwelt -in the south country. - -24:63 And Isaac went out to meditate in the field at the eventide: and -he lifted up his eyes, and saw, and, behold, the camels were coming. - -24:64 And Rebekah lifted up her eyes, and when she saw Isaac, she -lighted off the camel. - -24:65 For she had said unto the servant, What man is this that walketh -in the field to meet us? And the servant had said, It is my master: -therefore she took a vail, and covered herself. - -24:66 And the servant told Isaac all things that he had done. - -24:67 And Isaac brought her into his mother Sarah's tent, and took -Rebekah, and she became his wife; and he loved her: and Isaac was -comforted after his mother's death. - -25:1 Then again Abraham took a wife, and her name was Keturah. - -25:2 And she bare him Zimran, and Jokshan, and Medan, and Midian, and -Ishbak, and Shuah. - -25:3 And Jokshan begat Sheba, and Dedan. And the sons of Dedan were -Asshurim, and Letushim, and Leummim. - -25:4 And the sons of Midian; Ephah, and Epher, and Hanoch, and Abidah, -and Eldaah. All these were the children of Keturah. - -25:5 And Abraham gave all that he had unto Isaac. - -25:6 But unto the sons of the concubines, which Abraham had, Abraham -gave gifts, and sent them away from Isaac his son, while he yet lived, -eastward, unto the east country. - -25:7 And these are the days of the years of Abraham's life which he -lived, an hundred threescore and fifteen years. - -25:8 Then Abraham gave up the ghost, and died in a good old age, an -old man, and full of years; and was gathered to his people. - -25:9 And his sons Isaac and Ishmael buried him in the cave of -Machpelah, in the field of Ephron the son of Zohar the Hittite, which -is before Mamre; 25:10 The field which Abraham purchased of the sons -of Heth: there was Abraham buried, and Sarah his wife. - -25:11 And it came to pass after the death of Abraham, that God blessed -his son Isaac; and Isaac dwelt by the well Lahairoi. - -25:12 Now these are the generations of Ishmael, Abraham's son, whom -Hagar the Egyptian, Sarah's handmaid, bare unto Abraham: 25:13 And -these are the names of the sons of Ishmael, by their names, according -to their generations: the firstborn of Ishmael, Nebajoth; and Kedar, -and Adbeel, and Mibsam, 25:14 And Mishma, and Dumah, and Massa, 25:15 -Hadar, and Tema, Jetur, Naphish, and Kedemah: 25:16 These are the sons -of Ishmael, and these are their names, by their towns, and by their -castles; twelve princes according to their nations. - -25:17 And these are the years of the life of Ishmael, an hundred and -thirty and seven years: and he gave up the ghost and died; and was -gathered unto his people. - -25:18 And they dwelt from Havilah unto Shur, that is before Egypt, as -thou goest toward Assyria: and he died in the presence of all his -brethren. - -25:19 And these are the generations of Isaac, Abraham's son: Abraham -begat Isaac: 25:20 And Isaac was forty years old when he took Rebekah -to wife, the daughter of Bethuel the Syrian of Padanaram, the sister -to Laban the Syrian. - -25:21 And Isaac intreated the LORD for his wife, because she was -barren: and the LORD was intreated of him, and Rebekah his wife -conceived. - -25:22 And the children struggled together within her; and she said, If -it be so, why am I thus? And she went to enquire of the LORD. - -25:23 And the LORD said unto her, Two nations are in thy womb, and two -manner of people shall be separated from thy bowels; and the one -people shall be stronger than the other people; and the elder shall -serve the younger. - -25:24 And when her days to be delivered were fulfilled, behold, there -were twins in her womb. - -25:25 And the first came out red, all over like an hairy garment; and -they called his name Esau. - -25:26 And after that came his brother out, and his hand took hold on -Esau's heel; and his name was called Jacob: and Isaac was threescore -years old when she bare them. - -25:27 And the boys grew: and Esau was a cunning hunter, a man of the -field; and Jacob was a plain man, dwelling in tents. - -25:28 And Isaac loved Esau, because he did eat of his venison: but -Rebekah loved Jacob. - -25:29 And Jacob sod pottage: and Esau came from the field, and he was -faint: 25:30 And Esau said to Jacob, Feed me, I pray thee, with that -same red pottage; for I am faint: therefore was his name called Edom. - -25:31 And Jacob said, Sell me this day thy birthright. - -25:32 And Esau said, Behold, I am at the point to die: and what profit -shall this birthright do to me? 25:33 And Jacob said, Swear to me -this day; and he sware unto him: and he sold his birthright unto -Jacob. - -25:34 Then Jacob gave Esau bread and pottage of lentiles; and he did -eat and drink, and rose up, and went his way: thus Esau despised his -birthright. - -26:1 And there was a famine in the land, beside the first famine that -was in the days of Abraham. And Isaac went unto Abimelech king of the -Philistines unto Gerar. - -26:2 And the LORD appeared unto him, and said, Go not down into Egypt; -dwell in the land which I shall tell thee of: 26:3 Sojourn in this -land, and I will be with thee, and will bless thee; for unto thee, and -unto thy seed, I will give all these countries, and I will perform the -oath which I sware unto Abraham thy father; 26:4 And I will make thy -seed to multiply as the stars of heaven, and will give unto thy seed -all these countries; and in thy seed shall all the nations of the -earth be blessed; 26:5 Because that Abraham obeyed my voice, and kept -my charge, my commandments, my statutes, and my laws. - -26:6 And Isaac dwelt in Gerar: 26:7 And the men of the place asked him -of his wife; and he said, She is my sister: for he feared to say, She -is my wife; lest, said he, the men of the place should kill me for -Rebekah; because she was fair to look upon. - -26:8 And it came to pass, when he had been there a long time, that -Abimelech king of the Philistines looked out at a window, and saw, -and, behold, Isaac was sporting with Rebekah his wife. - -26:9 And Abimelech called Isaac, and said, Behold, of a surety she is -thy wife; and how saidst thou, She is my sister? And Isaac said unto -him, Because I said, Lest I die for her. - -26:10 And Abimelech said, What is this thou hast done unto us? one of -the people might lightly have lien with thy wife, and thou shouldest -have brought guiltiness upon us. - -26:11 And Abimelech charged all his people, saying, He that toucheth -this man or his wife shall surely be put to death. - -26:12 Then Isaac sowed in that land, and received in the same year an -hundredfold: and the LORD blessed him. - -26:13 And the man waxed great, and went forward, and grew until he -became very great: 26:14 For he had possession of flocks, and -possession of herds, and great store of servants: and the Philistines -envied him. - -26:15 For all the wells which his father's servants had digged in the -days of Abraham his father, the Philistines had stopped them, and -filled them with earth. - -26:16 And Abimelech said unto Isaac, Go from us; for thou art much -mightier than we. - -26:17 And Isaac departed thence, and pitched his tent in the valley of -Gerar, and dwelt there. - -26:18 And Isaac digged again the wells of water, which they had digged -in the days of Abraham his father; for the Philistines had stopped -them after the death of Abraham: and he called their names after the -names by which his father had called them. - -26:19 And Isaac's servants digged in the valley, and found there a -well of springing water. - -26:20 And the herdmen of Gerar did strive with Isaac's herdmen, -saying, The water is ours: and he called the name of the well Esek; -because they strove with him. - -26:21 And they digged another well, and strove for that also: and he -called the name of it Sitnah. - -26:22 And he removed from thence, and digged another well; and for -that they strove not: and he called the name of it Rehoboth; and he -said, For now the LORD hath made room for us, and we shall be fruitful -in the land. - -26:23 And he went up from thence to Beersheba. - -26:24 And the LORD appeared unto him the same night, and said, I am -the God of Abraham thy father: fear not, for I am with thee, and will -bless thee, and multiply thy seed for my servant Abraham's sake. - -26:25 And he builded an altar there, and called upon the name of the -LORD, and pitched his tent there: and there Isaac's servants digged a -well. - -26:26 Then Abimelech went to him from Gerar, and Ahuzzath one of his -friends, and Phichol the chief captain of his army. - -26:27 And Isaac said unto them, Wherefore come ye to me, seeing ye -hate me, and have sent me away from you? 26:28 And they said, We saw -certainly that the LORD was with thee: and we said, Let there be now -an oath betwixt us, even betwixt us and thee, and let us make a -covenant with thee; 26:29 That thou wilt do us no hurt, as we have not -touched thee, and as we have done unto thee nothing but good, and have -sent thee away in peace: thou art now the blessed of the LORD. - -26:30 And he made them a feast, and they did eat and drink. - -26:31 And they rose up betimes in the morning, and sware one to -another: and Isaac sent them away, and they departed from him in -peace. - -26:32 And it came to pass the same day, that Isaac's servants came, -and told him concerning the well which they had digged, and said unto -him, We have found water. - -26:33 And he called it Shebah: therefore the name of the city is -Beersheba unto this day. - -26:34 And Esau was forty years old when he took to wife Judith the -daughter of Beeri the Hittite, and Bashemath the daughter of Elon the -Hittite: 26:35 Which were a grief of mind unto Isaac and to Rebekah. - -27:1 And it came to pass, that when Isaac was old, and his eyes were -dim, so that he could not see, he called Esau his eldest son, and said -unto him, My son: and he said unto him, Behold, here am I. - -27:2 And he said, Behold now, I am old, I know not the day of my -death: 27:3 Now therefore take, I pray thee, thy weapons, thy quiver -and thy bow, and go out to the field, and take me some venison; 27:4 -And make me savoury meat, such as I love, and bring it to me, that I -may eat; that my soul may bless thee before I die. - -27:5 And Rebekah heard when Isaac spake to Esau his son. And Esau went -to the field to hunt for venison, and to bring it. - -27:6 And Rebekah spake unto Jacob her son, saying, Behold, I heard thy -father speak unto Esau thy brother, saying, 27:7 Bring me venison, and -make me savoury meat, that I may eat, and bless thee before the LORD -before my death. - -27:8 Now therefore, my son, obey my voice according to that which I -command thee. - -27:9 Go now to the flock, and fetch me from thence two good kids of -the goats; and I will make them savoury meat for thy father, such as -he loveth: 27:10 And thou shalt bring it to thy father, that he may -eat, and that he may bless thee before his death. - -27:11 And Jacob said to Rebekah his mother, Behold, Esau my brother is -a hairy man, and I am a smooth man: 27:12 My father peradventure will -feel me, and I shall seem to him as a deceiver; and I shall bring a -curse upon me, and not a blessing. - -27:13 And his mother said unto him, Upon me be thy curse, my son: only -obey my voice, and go fetch me them. - -27:14 And he went, and fetched, and brought them to his mother: and -his mother made savoury meat, such as his father loved. - -27:15 And Rebekah took goodly raiment of her eldest son Esau, which -were with her in the house, and put them upon Jacob her younger son: -27:16 And she put the skins of the kids of the goats upon his hands, -and upon the smooth of his neck: 27:17 And she gave the savoury meat -and the bread, which she had prepared, into the hand of her son Jacob. - -27:18 And he came unto his father, and said, My father: and he said, -Here am I; who art thou, my son? 27:19 And Jacob said unto his -father, I am Esau thy first born; I have done according as thou badest -me: arise, I pray thee, sit and eat of my venison, that thy soul may -bless me. - -27:20 And Isaac said unto his son, How is it that thou hast found it -so quickly, my son? And he said, Because the LORD thy God brought it -to me. - -27:21 And Isaac said unto Jacob, Come near, I pray thee, that I may -feel thee, my son, whether thou be my very son Esau or not. - -27:22 And Jacob went near unto Isaac his father; and he felt him, and -said, The voice is Jacob's voice, but the hands are the hands of Esau. - -27:23 And he discerned him not, because his hands were hairy, as his -brother Esau's hands: so he blessed him. - -27:24 And he said, Art thou my very son Esau? And he said, I am. - -27:25 And he said, Bring it near to me, and I will eat of my son's -venison, that my soul may bless thee. And he brought it near to him, -and he did eat: and he brought him wine and he drank. - -27:26 And his father Isaac said unto him, Come near now, and kiss me, -my son. - -27:27 And he came near, and kissed him: and he smelled the smell of -his raiment, and blessed him, and said, See, the smell of my son is as -the smell of a field which the LORD hath blessed: 27:28 Therefore God -give thee of the dew of heaven, and the fatness of the earth, and -plenty of corn and wine: 27:29 Let people serve thee, and nations bow -down to thee: be lord over thy brethren, and let thy mother's sons bow -down to thee: cursed be every one that curseth thee, and blessed be he -that blesseth thee. - -27:30 And it came to pass, as soon as Isaac had made an end of -blessing Jacob, and Jacob was yet scarce gone out from the presence of -Isaac his father, that Esau his brother came in from his hunting. - -27:31 And he also had made savoury meat, and brought it unto his -father, and said unto his father, Let my father arise, and eat of his -son's venison, that thy soul may bless me. - -27:32 And Isaac his father said unto him, Who art thou? And he said, I -am thy son, thy firstborn Esau. - -27:33 And Isaac trembled very exceedingly, and said, Who? where is he -that hath taken venison, and brought it me, and I have eaten of all -before thou camest, and have blessed him? yea, and he shall be -blessed. - -27:34 And when Esau heard the words of his father, he cried with a -great and exceeding bitter cry, and said unto his father, Bless me, -even me also, O my father. - -27:35 And he said, Thy brother came with subtilty, and hath taken away -thy blessing. - -27:36 And he said, Is not he rightly named Jacob? for he hath -supplanted me these two times: he took away my birthright; and, -behold, now he hath taken away my blessing. And he said, Hast thou not -reserved a blessing for me? 27:37 And Isaac answered and said unto -Esau, Behold, I have made him thy lord, and all his brethren have I -given to him for servants; and with corn and wine have I sustained -him: and what shall I do now unto thee, my son? 27:38 And Esau said -unto his father, Hast thou but one blessing, my father? bless me, even -me also, O my father. And Esau lifted up his voice, and wept. - -27:39 And Isaac his father answered and said unto him, Behold, thy -dwelling shall be the fatness of the earth, and of the dew of heaven -from above; 27:40 And by thy sword shalt thou live, and shalt serve -thy brother; and it shall come to pass when thou shalt have the -dominion, that thou shalt break his yoke from off thy neck. - -27:41 And Esau hated Jacob because of the blessing wherewith his -father blessed him: and Esau said in his heart, The days of mourning -for my father are at hand; then will I slay my brother Jacob. - -27:42 And these words of Esau her elder son were told to Rebekah: and -she sent and called Jacob her younger son, and said unto him, Behold, -thy brother Esau, as touching thee, doth comfort himself, purposing to -kill thee. - -27:43 Now therefore, my son, obey my voice; arise, flee thou to Laban -my brother to Haran; 27:44 And tarry with him a few days, until thy -brother's fury turn away; 27:45 Until thy brother's anger turn away -from thee, and he forget that which thou hast done to him: then I will -send, and fetch thee from thence: why should I be deprived also of you -both in one day? 27:46 And Rebekah said to Isaac, I am weary of my -life because of the daughters of Heth: if Jacob take a wife of the -daughters of Heth, such as these which are of the daughters of the -land, what good shall my life do me? 28:1 And Isaac called Jacob, and -blessed him, and charged him, and said unto him, Thou shalt not take a -wife of the daughters of Canaan. - -28:2 Arise, go to Padanaram, to the house of Bethuel thy mother's -father; and take thee a wife from thence of the daughers of Laban thy -mother's brother. - -28:3 And God Almighty bless thee, and make thee fruitful, and multiply -thee, that thou mayest be a multitude of people; 28:4 And give thee -the blessing of Abraham, to thee, and to thy seed with thee; that thou -mayest inherit the land wherein thou art a stranger, which God gave -unto Abraham. - -28:5 And Isaac sent away Jacob: and he went to Padanaram unto Laban, -son of Bethuel the Syrian, the brother of Rebekah, Jacob's and Esau's -mother. - -28:6 When Esau saw that Isaac had blessed Jacob, and sent him away to -Padanaram, to take him a wife from thence; and that as he blessed him -he gave him a charge, saying, Thou shalt not take a wife of the -daughers of Canaan; 28:7 And that Jacob obeyed his father and his -mother, and was gone to Padanaram; 28:8 And Esau seeing that the -daughters of Canaan pleased not Isaac his father; 28:9 Then went Esau -unto Ishmael, and took unto the wives which he had Mahalath the -daughter of Ishmael Abraham's son, the sister of Nebajoth, to be his -wife. - -28:10 And Jacob went out from Beersheba, and went toward Haran. - -28:11 And he lighted upon a certain place, and tarried there all -night, because the sun was set; and he took of the stones of that -place, and put them for his pillows, and lay down in that place to -sleep. - -28:12 And he dreamed, and behold a ladder set up on the earth, and the -top of it reached to heaven: and behold the angels of God ascending -and descending on it. - -28:13 And, behold, the LORD stood above it, and said, I am the LORD -God of Abraham thy father, and the God of Isaac: the land whereon thou -liest, to thee will I give it, and to thy seed; 28:14 And thy seed -shall be as the dust of the earth, and thou shalt spread abroad to the -west, and to the east, and to the north, and to the south: and in thee -and in thy seed shall all the families of the earth be blessed. - -28:15 And, behold, I am with thee, and will keep thee in all places -whither thou goest, and will bring thee again into this land; for I -will not leave thee, until I have done that which I have spoken to -thee of. - -28:16 And Jacob awaked out of his sleep, and he said, Surely the LORD -is in this place; and I knew it not. - -28:17 And he was afraid, and said, How dreadful is this place! this is -none other but the house of God, and this is the gate of heaven. - -28:18 And Jacob rose up early in the morning, and took the stone that -he had put for his pillows, and set it up for a pillar, and poured oil -upon the top of it. - -28:19 And he called the name of that place Bethel: but the name of -that city was called Luz at the first. - -28:20 And Jacob vowed a vow, saying, If God will be with me, and will -keep me in this way that I go, and will give me bread to eat, and -raiment to put on, 28:21 So that I come again to my father's house in -peace; then shall the LORD be my God: 28:22 And this stone, which I -have set for a pillar, shall be God's house: and of all that thou -shalt give me I will surely give the tenth unto thee. - -29:1 Then Jacob went on his journey, and came into the land of the -people of the east. - -29:2 And he looked, and behold a well in the field, and, lo, there -were three flocks of sheep lying by it; for out of that well they -watered the flocks: and a great stone was upon the well's mouth. - -29:3 And thither were all the flocks gathered: and they rolled the -stone from the well's mouth, and watered the sheep, and put the stone -again upon the well's mouth in his place. - -29:4 And Jacob said unto them, My brethren, whence be ye? And they -said, Of Haran are we. - -29:5 And he said unto them, Know ye Laban the son of Nahor? And they -said, We know him. - -29:6 And he said unto them, Is he well? And they said, He is well: -and, behold, Rachel his daughter cometh with the sheep. - -29:7 And he said, Lo, it is yet high day, neither is it time that the -cattle should be gathered together: water ye the sheep, and go and -feed them. - -29:8 And they said, We cannot, until all the flocks be gathered -together, and till they roll the stone from the well's mouth; then we -water the sheep. - -29:9 And while he yet spake with them, Rachel came with her father's -sheep; for she kept them. - -29:10 And it came to pass, when Jacob saw Rachel the daughter of Laban -his mother's brother, and the sheep of Laban his mother's brother, -that Jacob went near, and rolled the stone from the well's mouth, and -watered the flock of Laban his mother's brother. - -29:11 And Jacob kissed Rachel, and lifted up his voice, and wept. - -29:12 And Jacob told Rachel that he was her father's brother, and that -he was Rebekah's son: and she ran and told her father. - -29:13 And it came to pass, when Laban heard the tidings of Jacob his -sister's son, that he ran to meet him, and embraced him, and kissed -him, and brought him to his house. And he told Laban all these things. - -29:14 And Laban said to him, Surely thou art my bone and my flesh. And -he abode with him the space of a month. - -29:15 And Laban said unto Jacob, Because thou art my brother, -shouldest thou therefore serve me for nought? tell me, what shall thy -wages be? 29:16 And Laban had two daughters: the name of the elder -was Leah, and the name of the younger was Rachel. - -29:17 Leah was tender eyed; but Rachel was beautiful and well -favoured. - -29:18 And Jacob loved Rachel; and said, I will serve thee seven years -for Rachel thy younger daughter. - -29:19 And Laban said, It is better that I give her to thee, than that -I should give her to another man: abide with me. - -29:20 And Jacob served seven years for Rachel; and they seemed unto -him but a few days, for the love he had to her. - -29:21 And Jacob said unto Laban, Give me my wife, for my days are -fulfilled, that I may go in unto her. - -29:22 And Laban gathered together all the men of the place, and made a -feast. - -29:23 And it came to pass in the evening, that he took Leah his -daughter, and brought her to him; and he went in unto her. - -29:24 And Laban gave unto his daughter Leah Zilpah his maid for an -handmaid. - -29:25 And it came to pass, that in the morning, behold, it was Leah: -and he said to Laban, What is this thou hast done unto me? did not I -serve with thee for Rachel? wherefore then hast thou beguiled me? -29:26 And Laban said, It must not be so done in our country, to give -the younger before the firstborn. - -29:27 Fulfil her week, and we will give thee this also for the service -which thou shalt serve with me yet seven other years. - -29:28 And Jacob did so, and fulfilled her week: and he gave him Rachel -his daughter to wife also. - -29:29 And Laban gave to Rachel his daughter Bilhah his handmaid to be -her maid. - -29:30 And he went in also unto Rachel, and he loved also Rachel more -than Leah, and served with him yet seven other years. - -29:31 And when the LORD saw that Leah was hated, he opened her womb: -but Rachel was barren. - -29:32 And Leah conceived, and bare a son, and she called his name -Reuben: for she said, Surely the LORD hath looked upon my affliction; -now therefore my husband will love me. - -29:33 And she conceived again, and bare a son; and said, Because the -LORD hath heard I was hated, he hath therefore given me this son also: -and she called his name Simeon. - -29:34 And she conceived again, and bare a son; and said, Now this time -will my husband be joined unto me, because I have born him three sons: -therefore was his name called Levi. - -29:35 And she conceived again, and bare a son: and she said, Now will -I praise the LORD: therefore she called his name Judah; and left -bearing. - -30:1 And when Rachel saw that she bare Jacob no children, Rachel -envied her sister; and said unto Jacob, Give me children, or else I -die. - -30:2 And Jacob's anger was kindled against Rachel: and he said, Am I -in God's stead, who hath withheld from thee the fruit of the womb? -30:3 And she said, Behold my maid Bilhah, go in unto her; and she -shall bear upon my knees, that I may also have children by her. - -30:4 And she gave him Bilhah her handmaid to wife: and Jacob went in -unto her. - -30:5 And Bilhah conceived, and bare Jacob a son. - -30:6 And Rachel said, God hath judged me, and hath also heard my -voice, and hath given me a son: therefore called she his name Dan. - -30:7 And Bilhah Rachel's maid conceived again, and bare Jacob a second -son. - -30:8 And Rachel said, With great wrestlings have I wrestled with my -sister, and I have prevailed: and she called his name Naphtali. - -30:9 When Leah saw that she had left bearing, she took Zilpah her -maid, and gave her Jacob to wife. - -30:10 And Zilpah Leah's maid bare Jacob a son. - -30:11 And Leah said, A troop cometh: and she called his name Gad. - -30:12 And Zilpah Leah's maid bare Jacob a second son. - -30:13 And Leah said, Happy am I, for the daughters will call me -blessed: and she called his name Asher. - -30:14 And Reuben went in the days of wheat harvest, and found -mandrakes in the field, and brought them unto his mother Leah. Then -Rachel said to Leah, Give me, I pray thee, of thy son's mandrakes. - -30:15 And she said unto her, Is it a small matter that thou hast taken -my husband? and wouldest thou take away my son's mandrakes also? And -Rachel said, Therefore he shall lie with thee to night for thy son's -mandrakes. - -30:16 And Jacob came out of the field in the evening, and Leah went -out to meet him, and said, Thou must come in unto me; for surely I -have hired thee with my son's mandrakes. And he lay with her that -night. - -30:17 And God hearkened unto Leah, and she conceived, and bare Jacob -the fifth son. - -30:18 And Leah said, God hath given me my hire, because I have given -my maiden to my husband: and she called his name Issachar. - -30:19 And Leah conceived again, and bare Jacob the sixth son. - -30:20 And Leah said, God hath endued me with a good dowry; now will my -husband dwell with me, because I have born him six sons: and she -called his name Zebulun. - -30:21 And afterwards she bare a daughter, and called her name Dinah. - -30:22 And God remembered Rachel, and God hearkened to her, and opened -her womb. - -30:23 And she conceived, and bare a son; and said, God hath taken away -my reproach: 30:24 And she called his name Joseph; and said, The LORD -shall add to me another son. - -30:25 And it came to pass, when Rachel had born Joseph, that Jacob -said unto Laban, Send me away, that I may go unto mine own place, and -to my country. - -30:26 Give me my wives and my children, for whom I have served thee, -and let me go: for thou knowest my service which I have done thee. - -30:27 And Laban said unto him, I pray thee, if I have found favour in -thine eyes, tarry: for I have learned by experience that the LORD hath -blessed me for thy sake. - -30:28 And he said, Appoint me thy wages, and I will give it. - -30:29 And he said unto him, Thou knowest how I have served thee, and -how thy cattle was with me. - -30:30 For it was little which thou hadst before I came, and it is now -increased unto a multitude; and the LORD hath blessed thee since my -coming: and now when shall I provide for mine own house also? 30:31 -And he said, What shall I give thee? And Jacob said, Thou shalt not -give me any thing: if thou wilt do this thing for me, I will again -feed and keep thy flock. - -30:32 I will pass through all thy flock to day, removing from thence -all the speckled and spotted cattle, and all the brown cattle among -the sheep, and the spotted and speckled among the goats: and of such -shall be my hire. - -30:33 So shall my righteousness answer for me in time to come, when it -shall come for my hire before thy face: every one that is not speckled -and spotted among the goats, and brown among the sheep, that shall be -counted stolen with me. - -30:34 And Laban said, Behold, I would it might be according to thy -word. - -30:35 And he removed that day the he goats that were ringstraked and -spotted, and all the she goats that were speckled and spotted, and -every one that had some white in it, and all the brown among the -sheep, and gave them into the hand of his sons. - -30:36 And he set three days' journey betwixt himself and Jacob: and -Jacob fed the rest of Laban's flocks. - -30:37 And Jacob took him rods of green poplar, and of the hazel and -chesnut tree; and pilled white strakes in them, and made the white -appear which was in the rods. - -30:38 And he set the rods which he had pilled before the flocks in the -gutters in the watering troughs when the flocks came to drink, that -they should conceive when they came to drink. - -30:39 And the flocks conceived before the rods, and brought forth -cattle ringstraked, speckled, and spotted. - -30:40 And Jacob did separate the lambs, and set the faces of the -flocks toward the ringstraked, and all the brown in the flock of -Laban; and he put his own flocks by themselves, and put them not unto -Laban's cattle. - -30:41 And it came to pass, whensoever the stronger cattle did -conceive, that Jacob laid the rods before the eyes of the cattle in -the gutters, that they might conceive among the rods. - -30:42 But when the cattle were feeble, he put them not in: so the -feebler were Laban's, and the stronger Jacob's. - -30:43 And the man increased exceedingly, and had much cattle, and -maidservants, and menservants, and camels, and asses. - -31:1 And he heard the words of Laban's sons, saying, Jacob hath taken -away all that was our father's; and of that which was our father's -hath he gotten all this glory. - -31:2 And Jacob beheld the countenance of Laban, and, behold, it was -not toward him as before. - -31:3 And the LORD said unto Jacob, Return unto the land of thy -fathers, and to thy kindred; and I will be with thee. - -31:4 And Jacob sent and called Rachel and Leah to the field unto his -flock, 31:5 And said unto them, I see your father's countenance, that -it is not toward me as before; but the God of my father hath been with -me. - -31:6 And ye know that with all my power I have served your father. - -31:7 And your father hath deceived me, and changed my wages ten times; -but God suffered him not to hurt me. - -31:8 If he said thus, The speckled shall be thy wages; then all the -cattle bare speckled: and if he said thus, The ringstraked shall be -thy hire; then bare all the cattle ringstraked. - -31:9 Thus God hath taken away the cattle of your father, and given -them to me. - -31:10 And it came to pass at the time that the cattle conceived, that -I lifted up mine eyes, and saw in a dream, and, behold, the rams which -leaped upon the cattle were ringstraked, speckled, and grisled. - -31:11 And the angel of God spake unto me in a dream, saying, Jacob: -And I said, Here am I. - -31:12 And he said, Lift up now thine eyes, and see, all the rams which -leap upon the cattle are ringstraked, speckled, and grisled: for I -have seen all that Laban doeth unto thee. - -31:13 I am the God of Bethel, where thou anointedst the pillar, and -where thou vowedst a vow unto me: now arise, get thee out from this -land, and return unto the land of thy kindred. - -31:14 And Rachel and Leah answered and said unto him, Is there yet any -portion or inheritance for us in our father's house? 31:15 Are we not -counted of him strangers? for he hath sold us, and hath quite devoured -also our money. - -31:16 For all the riches which God hath taken from our father, that is -ours, and our children's: now then, whatsoever God hath said unto -thee, do. - -31:17 Then Jacob rose up, and set his sons and his wives upon camels; -31:18 And he carried away all his cattle, and all his goods which he -had gotten, the cattle of his getting, which he had gotten in -Padanaram, for to go to Isaac his father in the land of Canaan. - -31:19 And Laban went to shear his sheep: and Rachel had stolen the -images that were her father's. - -31:20 And Jacob stole away unawares to Laban the Syrian, in that he -told him not that he fled. - -31:21 So he fled with all that he had; and he rose up, and passed over -the river, and set his face toward the mount Gilead. - -31:22 And it was told Laban on the third day that Jacob was fled. - -31:23 And he took his brethren with him, and pursued after him seven -days' journey; and they overtook him in the mount Gilead. - -31:24 And God came to Laban the Syrian in a dream by night, and said -unto him, Take heed that thou speak not to Jacob either good or bad. - -31:25 Then Laban overtook Jacob. Now Jacob had pitched his tent in the -mount: and Laban with his brethren pitched in the mount of Gilead. - -31:26 And Laban said to Jacob, What hast thou done, that thou hast -stolen away unawares to me, and carried away my daughters, as captives -taken with the sword? 31:27 Wherefore didst thou flee away secretly, -and steal away from me; and didst not tell me, that I might have sent -thee away with mirth, and with songs, with tabret, and with harp? -31:28 And hast not suffered me to kiss my sons and my daughters? thou -hast now done foolishly in so doing. - -31:29 It is in the power of my hand to do you hurt: but the God of -your father spake unto me yesternight, saying, Take thou heed that -thou speak not to Jacob either good or bad. - -31:30 And now, though thou wouldest needs be gone, because thou sore -longedst after thy father's house, yet wherefore hast thou stolen my -gods? 31:31 And Jacob answered and said to Laban, Because I was -afraid: for I said, Peradventure thou wouldest take by force thy -daughters from me. - -31:32 With whomsoever thou findest thy gods, let him not live: before -our brethren discern thou what is thine with me, and take it to thee. -For Jacob knew not that Rachel had stolen them. - -31:33 And Laban went into Jacob's tent, and into Leah's tent, and into -the two maidservants' tents; but he found them not. Then went he out -of Leah's tent, and entered into Rachel's tent. - -31:34 Now Rachel had taken the images, and put them in the camel's -furniture, and sat upon them. And Laban searched all the tent, but -found them not. - -31:35 And she said to her father, Let it not displease my lord that I -cannot rise up before thee; for the custom of women is upon me. And he -searched but found not the images. - -31:36 And Jacob was wroth, and chode with Laban: and Jacob answered -and said to Laban, What is my trespass? what is my sin, that thou hast -so hotly pursued after me? 31:37 Whereas thou hast searched all my -stuff, what hast thou found of all thy household stuff? set it here -before my brethren and thy brethren, that they may judge betwixt us -both. - -31:38 This twenty years have I been with thee; thy ewes and thy she -goats have not cast their young, and the rams of thy flock have I not -eaten. - -31:39 That which was torn of beasts I brought not unto thee; I bare -the loss of it; of my hand didst thou require it, whether stolen by -day, or stolen by night. - -31:40 Thus I was; in the day the drought consumed me, and the frost by -night; and my sleep departed from mine eyes. - -31:41 Thus have I been twenty years in thy house; I served thee -fourteen years for thy two daughters, and six years for thy cattle: -and thou hast changed my wages ten times. - -31:42 Except the God of my father, the God of Abraham, and the fear of -Isaac, had been with me, surely thou hadst sent me away now empty. God -hath seen mine affliction and the labour of my hands, and rebuked thee -yesternight. - -31:43 And Laban answered and said unto Jacob, These daughters are my -daughters, and these children are my children, and these cattle are my -cattle, and all that thou seest is mine: and what can I do this day -unto these my daughters, or unto their children which they have born? -31:44 Now therefore come thou, let us make a covenant, I and thou; and -let it be for a witness between me and thee. - -31:45 And Jacob took a stone, and set it up for a pillar. - -31:46 And Jacob said unto his brethren, Gather stones; and they took -stones, and made an heap: and they did eat there upon the heap. - -31:47 And Laban called it Jegarsahadutha: but Jacob called it Galeed. - -31:48 And Laban said, This heap is a witness between me and thee this -day. - -Therefore was the name of it called Galeed; 31:49 And Mizpah; for he -said, The LORD watch between me and thee, when we are absent one from -another. - -31:50 If thou shalt afflict my daughters, or if thou shalt take other -wives beside my daughters, no man is with us; see, God is witness -betwixt me and thee. - -31:51 And Laban said to Jacob, Behold this heap, and behold this -pillar, which I have cast betwixt me and thee: 31:52 This heap be -witness, and this pillar be witness, that I will not pass over this -heap to thee, and that thou shalt not pass over this heap and this -pillar unto me, for harm. - -31:53 The God of Abraham, and the God of Nahor, the God of their -father, judge betwixt us. And Jacob sware by the fear of his father -Isaac. - -31:54 Then Jacob offered sacrifice upon the mount, and called his -brethren to eat bread: and they did eat bread, and tarried all night -in the mount. - -31:55 And early in the morning Laban rose up, and kissed his sons and -his daughters, and blessed them: and Laban departed, and returned unto -his place. - -32:1 And Jacob went on his way, and the angels of God met him. - -32:2 And when Jacob saw them, he said, This is God's host: and he -called the name of that place Mahanaim. - -32:3 And Jacob sent messengers before him to Esau his brother unto the -land of Seir, the country of Edom. - -32:4 And he commanded them, saying, Thus shall ye speak unto my lord -Esau; Thy servant Jacob saith thus, I have sojourned with Laban, and -stayed there until now: 32:5 And I have oxen, and asses, flocks, and -menservants, and womenservants: and I have sent to tell my lord, that -I may find grace in thy sight. - -32:6 And the messengers returned to Jacob, saying, We came to thy -brother Esau, and also he cometh to meet thee, and four hundred men -with him. - -32:7 Then Jacob was greatly afraid and distressed: and he divided the -people that was with him, and the flocks, and herds, and the camels, -into two bands; 32:8 And said, If Esau come to the one company, and -smite it, then the other company which is left shall escape. - -32:9 And Jacob said, O God of my father Abraham, and God of my father -Isaac, the LORD which saidst unto me, Return unto thy country, and to -thy kindred, and I will deal well with thee: 32:10 I am not worthy of -the least of all the mercies, and of all the truth, which thou hast -shewed unto thy servant; for with my staff I passed over this Jordan; -and now I am become two bands. - -32:11 Deliver me, I pray thee, from the hand of my brother, from the -hand of Esau: for I fear him, lest he will come and smite me, and the -mother with the children. - -32:12 And thou saidst, I will surely do thee good, and make thy seed -as the sand of the sea, which cannot be numbered for multitude. - -32:13 And he lodged there that same night; and took of that which came -to his hand a present for Esau his brother; 32:14 Two hundred she -goats, and twenty he goats, two hundred ewes, and twenty rams, 32:15 -Thirty milch camels with their colts, forty kine, and ten bulls, -twenty she asses, and ten foals. - -32:16 And he delivered them into the hand of his servants, every drove -by themselves; and said unto his servants, Pass over before me, and -put a space betwixt drove and drove. - -32:17 And he commanded the foremost, saying, When Esau my brother -meeteth thee, and asketh thee, saying, Whose art thou? and whither -goest thou? and whose are these before thee? 32:18 Then thou shalt -say, They be thy servant Jacob's; it is a present sent unto my lord -Esau: and, behold, also he is behind us. - -32:19 And so commanded he the second, and the third, and all that -followed the droves, saying, On this manner shall ye speak unto Esau, -when ye find him. - -32:20 And say ye moreover, Behold, thy servant Jacob is behind us. For -he said, I will appease him with the present that goeth before me, and -afterward I will see his face; peradventure he will accept of me. - -32:21 So went the present over before him: and himself lodged that -night in the company. - -32:22 And he rose up that night, and took his two wives, and his two -womenservants, and his eleven sons, and passed over the ford Jabbok. - -32:23 And he took them, and sent them over the brook, and sent over -that he had. - -32:24 And Jacob was left alone; and there wrestled a man with him -until the breaking of the day. - -32:25 And when he saw that he prevailed not against him, he touched -the hollow of his thigh; and the hollow of Jacob's thigh was out of -joint, as he wrestled with him. - -32:26 And he said, Let me go, for the day breaketh. And he said, I -will not let thee go, except thou bless me. - -32:27 And he said unto him, What is thy name? And he said, Jacob. - -32:28 And he said, Thy name shall be called no more Jacob, but Israel: -for as a prince hast thou power with God and with men, and hast -prevailed. - -32:29 And Jacob asked him, and said, Tell me, I pray thee, thy name. -And he said, Wherefore is it that thou dost ask after my name? And he -blessed him there. - -32:30 And Jacob called the name of the place Peniel: for I have seen -God face to face, and my life is preserved. - -32:31 And as he passed over Penuel the sun rose upon him, and he -halted upon his thigh. - -32:32 Therefore the children of Israel eat not of the sinew which -shrank, which is upon the hollow of the thigh, unto this day: because -he touched the hollow of Jacob's thigh in the sinew that shrank. - -33:1 And Jacob lifted up his eyes, and looked, and, behold, Esau came, -and with him four hundred men. And he divided the children unto Leah, -and unto Rachel, and unto the two handmaids. - -33:2 And he put the handmaids and their children foremost, and Leah -and her children after, and Rachel and Joseph hindermost. - -33:3 And he passed over before them, and bowed himself to the ground -seven times, until he came near to his brother. - -33:4 And Esau ran to meet him, and embraced him, and fell on his neck, -and kissed him: and they wept. - -33:5 And he lifted up his eyes, and saw the women and the children; -and said, Who are those with thee? And he said, The children which God -hath graciously given thy servant. - -33:6 Then the handmaidens came near, they and their children, and they -bowed themselves. - -33:7 And Leah also with her children came near, and bowed themselves: -and after came Joseph near and Rachel, and they bowed themselves. - -33:8 And he said, What meanest thou by all this drove which I met? And -he said, These are to find grace in the sight of my lord. - -33:9 And Esau said, I have enough, my brother; keep that thou hast -unto thyself. - -33:10 And Jacob said, Nay, I pray thee, if now I have found grace in -thy sight, then receive my present at my hand: for therefore I have -seen thy face, as though I had seen the face of God, and thou wast -pleased with me. - -33:11 Take, I pray thee, my blessing that is brought to thee; because -God hath dealt graciously with me, and because I have enough. And he -urged him, and he took it. - -33:12 And he said, Let us take our journey, and let us go, and I will -go before thee. - -33:13 And he said unto him, My lord knoweth that the children are -tender, and the flocks and herds with young are with me: and if men -should overdrive them one day, all the flock will die. - -33:14 Let my lord, I pray thee, pass over before his servant: and I -will lead on softly, according as the cattle that goeth before me and -the children be able to endure, until I come unto my lord unto Seir. - -33:15 And Esau said, Let me now leave with thee some of the folk that -are with me. And he said, What needeth it? let me find grace in the -sight of my lord. - -33:16 So Esau returned that day on his way unto Seir. - -33:17 And Jacob journeyed to Succoth, and built him an house, and made -booths for his cattle: therefore the name of the place is called -Succoth. - -33:18 And Jacob came to Shalem, a city of Shechem, which is in the -land of Canaan, when he came from Padanaram; and pitched his tent -before the city. - -33:19 And he bought a parcel of a field, where he had spread his tent, -at the hand of the children of Hamor, Shechem's father, for an hundred -pieces of money. - -33:20 And he erected there an altar, and called it EleloheIsrael. - -34:1 And Dinah the daughter of Leah, which she bare unto Jacob, went -out to see the daughters of the land. - -34:2 And when Shechem the son of Hamor the Hivite, prince of the -country, saw her, he took her, and lay with her, and defiled her. - -34:3 And his soul clave unto Dinah the daughter of Jacob, and he loved -the damsel, and spake kindly unto the damsel. - -34:4 And Shechem spake unto his father Hamor, saying, Get me this -damsel to wife. - -34:5 And Jacob heard that he had defiled Dinah his daughter: now his -sons were with his cattle in the field: and Jacob held his peace until -they were come. - -34:6 And Hamor the father of Shechem went out unto Jacob to commune -with him. - -34:7 And the sons of Jacob came out of the field when they heard it: -and the men were grieved, and they were very wroth, because he had -wrought folly in Israel in lying with Jacob's daughter: which thing -ought not to be done. - -34:8 And Hamor communed with them, saying, The soul of my son Shechem -longeth for your daughter: I pray you give her him to wife. - -34:9 And make ye marriages with us, and give your daughters unto us, -and take our daughters unto you. - -34:10 And ye shall dwell with us: and the land shall be before you; -dwell and trade ye therein, and get you possessions therein. - -34:11 And Shechem said unto her father and unto her brethren, Let me -find grace in your eyes, and what ye shall say unto me I will give. - -34:12 Ask me never so much dowry and gift, and I will give according -as ye shall say unto me: but give me the damsel to wife. - -34:13 And the sons of Jacob answered Shechem and Hamor his father -deceitfully, and said, because he had defiled Dinah their sister: -34:14 And they said unto them, We cannot do this thing, to give our -sister to one that is uncircumcised; for that were a reproach unto us: -34:15 But in this will we consent unto you: If ye will be as we be, -that every male of you be circumcised; 34:16 Then will we give our -daughters unto you, and we will take your daughters to us, and we will -dwell with you, and we will become one people. - -34:17 But if ye will not hearken unto us, to be circumcised; then will -we take our daughter, and we will be gone. - -34:18 And their words pleased Hamor, and Shechem Hamor's son. - -34:19 And the young man deferred not to do the thing, because he had -delight in Jacob's daughter: and he was more honourable than all the -house of his father. - -34:20 And Hamor and Shechem his son came unto the gate of their city, -and communed with the men of their city, saying, 34:21 These men are -peaceable with us; therefore let them dwell in the land, and trade -therein; for the land, behold, it is large enough for them; let us -take their daughters to us for wives, and let us give them our -daughters. - -34:22 Only herein will the men consent unto us for to dwell with us, -to be one people, if every male among us be circumcised, as they are -circumcised. - -34:23 Shall not their cattle and their substance and every beast of -their's be our's? only let us consent unto them, and they will dwell -with us. - -34:24 And unto Hamor and unto Shechem his son hearkened all that went -out of the gate of his city; and every male was circumcised, all that -went out of the gate of his city. - -34:25 And it came to pass on the third day, when they were sore, that -two of the sons of Jacob, Simeon and Levi, Dinah's brethren, took each -man his sword, and came upon the city boldly, and slew all the males. - -34:26 And they slew Hamor and Shechem his son with the edge of the -sword, and took Dinah out of Shechem's house, and went out. - -34:27 The sons of Jacob came upon the slain, and spoiled the city, -because they had defiled their sister. - -34:28 They took their sheep, and their oxen, and their asses, and that -which was in the city, and that which was in the field, 34:29 And all -their wealth, and all their little ones, and their wives took they -captive, and spoiled even all that was in the house. - -34:30 And Jacob said to Simeon and Levi, Ye have troubled me to make -me to stink among the inhabitants of the land, among the Canaanites -and the Perizzites: and I being few in number, they shall gather -themselves together against me, and slay me; and I shall be destroyed, -I and my house. - -34:31 And they said, Should he deal with our sister as with an harlot? -35:1 And God said unto Jacob, Arise, go up to Bethel, and dwell there: -and make there an altar unto God, that appeared unto thee when thou -fleddest from the face of Esau thy brother. - -35:2 Then Jacob said unto his household, and to all that were with -him, Put away the strange gods that are among you, and be clean, and -change your garments: 35:3 And let us arise, and go up to Bethel; and -I will make there an altar unto God, who answered me in the day of my -distress, and was with me in the way which I went. - -35:4 And they gave unto Jacob all the strange gods which were in their -hand, and all their earrings which were in their ears; and Jacob hid -them under the oak which was by Shechem. - -35:5 And they journeyed: and the terror of God was upon the cities -that were round about them, and they did not pursue after the sons of -Jacob. - -35:6 So Jacob came to Luz, which is in the land of Canaan, that is, -Bethel, he and all the people that were with him. - -35:7 And he built there an altar, and called the place Elbethel: -because there God appeared unto him, when he fled from the face of his -brother. - -35:8 But Deborah Rebekah's nurse died, and she was buried beneath -Bethel under an oak: and the name of it was called Allonbachuth. - -35:9 And God appeared unto Jacob again, when he came out of Padanaram, -and blessed him. - -35:10 And God said unto him, Thy name is Jacob: thy name shall not be -called any more Jacob, but Israel shall be thy name: and he called his -name Israel. - -35:11 And God said unto him, I am God Almighty: be fruitful and -multiply; a nation and a company of nations shall be of thee, and -kings shall come out of thy loins; 35:12 And the land which I gave -Abraham and Isaac, to thee I will give it, and to thy seed after thee -will I give the land. - -35:13 And God went up from him in the place where he talked with him. - -35:14 And Jacob set up a pillar in the place where he talked with him, -even a pillar of stone: and he poured a drink offering thereon, and he -poured oil thereon. - -35:15 And Jacob called the name of the place where God spake with him, -Bethel. - -35:16 And they journeyed from Bethel; and there was but a little way -to come to Ephrath: and Rachel travailed, and she had hard labour. - -35:17 And it came to pass, when she was in hard labour, that the -midwife said unto her, Fear not; thou shalt have this son also. - -35:18 And it came to pass, as her soul was in departing, (for she -died) that she called his name Benoni: but his father called him -Benjamin. - -35:19 And Rachel died, and was buried in the way to Ephrath, which is -Bethlehem. - -35:20 And Jacob set a pillar upon her grave: that is the pillar of -Rachel's grave unto this day. - -35:21 And Israel journeyed, and spread his tent beyond the tower of -Edar. - -35:22 And it came to pass, when Israel dwelt in that land, that Reuben -went and lay with Bilhah his father's concubine: and Israel heard it. -Now the sons of Jacob were twelve: 35:23 The sons of Leah; Reuben, -Jacob's firstborn, and Simeon, and Levi, and Judah, and Issachar, and -Zebulun: 35:24 The sons of Rachel; Joseph, and Benjamin: 35:25 And the -sons of Bilhah, Rachel's handmaid; Dan, and Naphtali: 35:26 And the -sons of Zilpah, Leah's handmaid: Gad, and Asher: these are the sons of -Jacob, which were born to him in Padanaram. - -35:27 And Jacob came unto Isaac his father unto Mamre, unto the city -of Arbah, which is Hebron, where Abraham and Isaac sojourned. - -35:28 And the days of Isaac were an hundred and fourscore years. - -35:29 And Isaac gave up the ghost, and died, and was gathered unto his -people, being old and full of days: and his sons Esau and Jacob buried -him. - -36:1 Now these are the generations of Esau, who is Edom. - -36:2 Esau took his wives of the daughters of Canaan; Adah the daughter -of Elon the Hittite, and Aholibamah the daughter of Anah the daughter -of Zibeon the Hivite; 36:3 And Bashemath Ishmael's daughter, sister of -Nebajoth. - -36:4 And Adah bare to Esau Eliphaz; and Bashemath bare Reuel; 36:5 And -Aholibamah bare Jeush, and Jaalam, and Korah: these are the sons of -Esau, which were born unto him in the land of Canaan. - -36:6 And Esau took his wives, and his sons, and his daughters, and all -the persons of his house, and his cattle, and all his beasts, and all -his substance, which he had got in the land of Canaan; and went into -the country from the face of his brother Jacob. - -36:7 For their riches were more than that they might dwell together; -and the land wherein they were strangers could not bear them because -of their cattle. - -36:8 Thus dwelt Esau in mount Seir: Esau is Edom. - -36:9 And these are the generations of Esau the father of the Edomites -in mount Seir: 36:10 These are the names of Esau's sons; Eliphaz the -son of Adah the wife of Esau, Reuel the son of Bashemath the wife of -Esau. - -36:11 And the sons of Eliphaz were Teman, Omar, Zepho, and Gatam, and -Kenaz. - -36:12 And Timna was concubine to Eliphaz Esau's son; and she bare to -Eliphaz Amalek: these were the sons of Adah Esau's wife. - -36:13 And these are the sons of Reuel; Nahath, and Zerah, Shammah, and -Mizzah: these were the sons of Bashemath Esau's wife. - -36:14 And these were the sons of Aholibamah, the daughter of Anah the -daughter of Zibeon, Esau's wife: and she bare to Esau Jeush, and -Jaalam, and Korah. - -36:15 These were dukes of the sons of Esau: the sons of Eliphaz the -firstborn son of Esau; duke Teman, duke Omar, duke Zepho, duke Kenaz, -36:16 Duke Korah, duke Gatam, and duke Amalek: these are the dukes -that came of Eliphaz in the land of Edom; these were the sons of Adah. - -36:17 And these are the sons of Reuel Esau's son; duke Nahath, duke -Zerah, duke Shammah, duke Mizzah: these are the dukes that came of -Reuel in the land of Edom; these are the sons of Bashemath Esau's -wife. - -36:18 And these are the sons of Aholibamah Esau's wife; duke Jeush, -duke Jaalam, duke Korah: these were the dukes that came of Aholibamah -the daughter of Anah, Esau's wife. - -36:19 These are the sons of Esau, who is Edom, and these are their -dukes. - -36:20 These are the sons of Seir the Horite, who inhabited the land; -Lotan, and Shobal, and Zibeon, and Anah, 36:21 And Dishon, and Ezer, -and Dishan: these are the dukes of the Horites, the children of Seir -in the land of Edom. - -36:22 And the children of Lotan were Hori and Hemam; and Lotan's -sister was Timna. - -36:23 And the children of Shobal were these; Alvan, and Manahath, and -Ebal, Shepho, and Onam. - -36:24 And these are the children of Zibeon; both Ajah, and Anah: this -was that Anah that found the mules in the wilderness, as he fed the -asses of Zibeon his father. - -36:25 And the children of Anah were these; Dishon, and Aholibamah the -daughter of Anah. - -36:26 And these are the children of Dishon; Hemdan, and Eshban, and -Ithran, and Cheran. - -36:27 The children of Ezer are these; Bilhan, and Zaavan, and Akan. - -36:28 The children of Dishan are these; Uz, and Aran. - -36:29 These are the dukes that came of the Horites; duke Lotan, duke -Shobal, duke Zibeon, duke Anah, 36:30 Duke Dishon, duke Ezer, duke -Dishan: these are the dukes that came of Hori, among their dukes in -the land of Seir. - -36:31 And these are the kings that reigned in the land of Edom, before -there reigned any king over the children of Israel. - -36:32 And Bela the son of Beor reigned in Edom: and the name of his -city was Dinhabah. - -36:33 And Bela died, and Jobab the son of Zerah of Bozrah reigned in -his stead. - -36:34 And Jobab died, and Husham of the land of Temani reigned in his -stead. - -36:35 And Husham died, and Hadad the son of Bedad, who smote Midian in -the field of Moab, reigned in his stead: and the name of his city was -Avith. - -36:36 And Hadad died, and Samlah of Masrekah reigned in his stead. - -36:37 And Samlah died, and Saul of Rehoboth by the river reigned in -his stead. - -36:38 And Saul died, and Baalhanan the son of Achbor reigned in his -stead. - -36:39 And Baalhanan the son of Achbor died, and Hadar reigned in his -stead: and the name of his city was Pau; and his wife's name was -Mehetabel, the daughter of Matred, the daughter of Mezahab. - -36:40 And these are the names of the dukes that came of Esau, -according to their families, after their places, by their names; duke -Timnah, duke Alvah, duke Jetheth, 36:41 Duke Aholibamah, duke Elah, -duke Pinon, 36:42 Duke Kenaz, duke Teman, duke Mibzar, 36:43 Duke -Magdiel, duke Iram: these be the dukes of Edom, according to their -habitations in the land of their possession: he is Esau the father of -the Edomites. - -37:1 And Jacob dwelt in the land wherein his father was a stranger, in -the land of Canaan. - -37:2 These are the generations of Jacob. Joseph, being seventeen years -old, was feeding the flock with his brethren; and the lad was with the -sons of Bilhah, and with the sons of Zilpah, his father's wives: and -Joseph brought unto his father their evil report. - -37:3 Now Israel loved Joseph more than all his children, because he -was the son of his old age: and he made him a coat of many colours. - -37:4 And when his brethren saw that their father loved him more than -all his brethren, they hated him, and could not speak peaceably unto -him. - -37:5 And Joseph dreamed a dream, and he told it his brethren: and they -hated him yet the more. - -37:6 And he said unto them, Hear, I pray you, this dream which I have -dreamed: 37:7 For, behold, we were binding sheaves in the field, and, -lo, my sheaf arose, and also stood upright; and, behold, your sheaves -stood round about, and made obeisance to my sheaf. - -37:8 And his brethren said to him, Shalt thou indeed reign over us? or -shalt thou indeed have dominion over us? And they hated him yet the -more for his dreams, and for his words. - -37:9 And he dreamed yet another dream, and told it his brethren, and -said, Behold, I have dreamed a dream more; and, behold, the sun and -the moon and the eleven stars made obeisance to me. - -37:10 And he told it to his father, and to his brethren: and his -father rebuked him, and said unto him, What is this dream that thou -hast dreamed? Shall I and thy mother and thy brethren indeed come to -bow down ourselves to thee to the earth? 37:11 And his brethren -envied him; but his father observed the saying. - -37:12 And his brethren went to feed their father's flock in Shechem. - -37:13 And Israel said unto Joseph, Do not thy brethren feed the flock -in Shechem? come, and I will send thee unto them. And he said to him, -Here am I. - -37:14 And he said to him, Go, I pray thee, see whether it be well with -thy brethren, and well with the flocks; and bring me word again. So he -sent him out of the vale of Hebron, and he came to Shechem. - -37:15 And a certain man found him, and, behold, he was wandering in -the field: and the man asked him, saying, What seekest thou? 37:16 -And he said, I seek my brethren: tell me, I pray thee, where they feed -their flocks. - -37:17 And the man said, They are departed hence; for I heard them say, -Let us go to Dothan. And Joseph went after his brethren, and found -them in Dothan. - -37:18 And when they saw him afar off, even before he came near unto -them, they conspired against him to slay him. - -37:19 And they said one to another, Behold, this dreamer cometh. - -37:20 Come now therefore, and let us slay him, and cast him into some -pit, and we will say, Some evil beast hath devoured him: and we shall -see what will become of his dreams. - -37:21 And Reuben heard it, and he delivered him out of their hands; -and said, Let us not kill him. - -37:22 And Reuben said unto them, Shed no blood, but cast him into this -pit that is in the wilderness, and lay no hand upon him; that he might -rid him out of their hands, to deliver him to his father again. - -37:23 And it came to pass, when Joseph was come unto his brethren, -that they stript Joseph out of his coat, his coat of many colours that -was on him; 37:24 And they took him, and cast him into a pit: and the -pit was empty, there was no water in it. - -37:25 And they sat down to eat bread: and they lifted up their eyes -and looked, and, behold, a company of Ishmeelites came from Gilead -with their camels bearing spicery and balm and myrrh, going to carry -it down to Egypt. - -37:26 And Judah said unto his brethren, What profit is it if we slay -our brother, and conceal his blood? 37:27 Come, and let us sell him -to the Ishmeelites, and let not our hand be upon him; for he is our -brother and our flesh. And his brethren were content. - -37:28 Then there passed by Midianites merchantmen; and they drew and -lifted up Joseph out of the pit, and sold Joseph to the Ishmeelites -for twenty pieces of silver: and they brought Joseph into Egypt. - -37:29 And Reuben returned unto the pit; and, behold, Joseph was not in -the pit; and he rent his clothes. - -37:30 And he returned unto his brethren, and said, The child is not; -and I, whither shall I go? 37:31 And they took Joseph's coat, and -killed a kid of the goats, and dipped the coat in the blood; 37:32 And -they sent the coat of many colours, and they brought it to their -father; and said, This have we found: know now whether it be thy son's -coat or no. - -37:33 And he knew it, and said, It is my son's coat; an evil beast -hath devoured him; Joseph is without doubt rent in pieces. - -37:34 And Jacob rent his clothes, and put sackcloth upon his loins, -and mourned for his son many days. - -37:35 And all his sons and all his daughters rose up to comfort him; -but he refused to be comforted; and he said, For I will go down into -the grave unto my son mourning. Thus his father wept for him. - -37:36 And the Midianites sold him into Egypt unto Potiphar, an officer -of Pharaoh's, and captain of the guard. - -38:1 And it came to pass at that time, that Judah went down from his -brethren, and turned in to a certain Adullamite, whose name was Hirah. - -38:2 And Judah saw there a daughter of a certain Canaanite, whose name -was Shuah; and he took her, and went in unto her. - -38:3 And she conceived, and bare a son; and he called his name Er. - -38:4 And she conceived again, and bare a son; and she called his name -Onan. - -38:5 And she yet again conceived, and bare a son; and called his name -Shelah: and he was at Chezib, when she bare him. - -38:6 And Judah took a wife for Er his firstborn, whose name was Tamar. - -38:7 And Er, Judah's firstborn, was wicked in the sight of the LORD; -and the LORD slew him. - -38:8 And Judah said unto Onan, Go in unto thy brother's wife, and -marry her, and raise up seed to thy brother. - -38:9 And Onan knew that the seed should not be his; and it came to -pass, when he went in unto his brother's wife, that he spilled it on -the ground, lest that he should give seed to his brother. - -38:10 And the thing which he did displeased the LORD: wherefore he -slew him also. - -38:11 Then said Judah to Tamar his daughter in law, Remain a widow at -thy father's house, till Shelah my son be grown: for he said, Lest -peradventure he die also, as his brethren did. And Tamar went and -dwelt in her father's house. - -38:12 And in process of time the daughter of Shuah Judah's wife died; -and Judah was comforted, and went up unto his sheepshearers to -Timnath, he and his friend Hirah the Adullamite. - -38:13 And it was told Tamar, saying, Behold thy father in law goeth up -to Timnath to shear his sheep. - -38:14 And she put her widow's garments off from her, and covered her -with a vail, and wrapped herself, and sat in an open place, which is -by the way to Timnath; for she saw that Shelah was grown, and she was -not given unto him to wife. - -38:15 When Judah saw her, he thought her to be an harlot; because she -had covered her face. - -38:16 And he turned unto her by the way, and said, Go to, I pray thee, -let me come in unto thee; (for he knew not that she was his daughter -in law.) And she said, What wilt thou give me, that thou mayest come -in unto me? 38:17 And he said, I will send thee a kid from the flock. -And she said, Wilt thou give me a pledge, till thou send it? 38:18 -And he said, What pledge shall I give thee? And she said, Thy signet, -and thy bracelets, and thy staff that is in thine hand. And he gave it -her, and came in unto her, and she conceived by him. - -38:19 And she arose, and went away, and laid by her vail from her, and -put on the garments of her widowhood. - -38:20 And Judah sent the kid by the hand of his friend the Adullamite, -to receive his pledge from the woman's hand: but he found her not. - -38:21 Then he asked the men of that place, saying, Where is the -harlot, that was openly by the way side? And they said, There was no -harlot in this place. - -38:22 And he returned to Judah, and said, I cannot find her; and also -the men of the place said, that there was no harlot in this place. - -38:23 And Judah said, Let her take it to her, lest we be shamed: -behold, I sent this kid, and thou hast not found her. - -38:24 And it came to pass about three months after, that it was told -Judah, saying, Tamar thy daughter in law hath played the harlot; and -also, behold, she is with child by whoredom. And Judah said, Bring her -forth, and let her be burnt. - -38:25 When she was brought forth, she sent to her father in law, -saying, By the man, whose these are, am I with child: and she said, -Discern, I pray thee, whose are these, the signet, and bracelets, and -staff. - -38:26 And Judah acknowledged them, and said, She hath been more -righteous than I; because that I gave her not to Shelah my son. And he -knew her again no more. - -38:27 And it came to pass in the time of her travail, that, behold, -twins were in her womb. - -38:28 And it came to pass, when she travailed, that the one put out -his hand: and the midwife took and bound upon his hand a scarlet -thread, saying, This came out first. - -38:29 And it came to pass, as he drew back his hand, that, behold, his -brother came out: and she said, How hast thou broken forth? this -breach be upon thee: therefore his name was called Pharez. - -38:30 And afterward came out his brother, that had the scarlet thread -upon his hand: and his name was called Zarah. - -39:1 And Joseph was brought down to Egypt; and Potiphar, an officer of -Pharaoh, captain of the guard, an Egyptian, bought him of the hands of -the Ishmeelites, which had brought him down thither. - -39:2 And the LORD was with Joseph, and he was a prosperous man; and he -was in the house of his master the Egyptian. - -39:3 And his master saw that the LORD was with him, and that the LORD -made all that he did to prosper in his hand. - -39:4 And Joseph found grace in his sight, and he served him: and he -made him overseer over his house, and all that he had he put into his -hand. - -39:5 And it came to pass from the time that he had made him overseer -in his house, and over all that he had, that the LORD blessed the -Egyptian's house for Joseph's sake; and the blessing of the LORD was -upon all that he had in the house, and in the field. - -39:6 And he left all that he had in Joseph's hand; and he knew not -ought he had, save the bread which he did eat. And Joseph was a goodly -person, and well favoured. - -39:7 And it came to pass after these things, that his master's wife -cast her eyes upon Joseph; and she said, Lie with me. - -39:8 But he refused, and said unto his master's wife, Behold, my -master wotteth not what is with me in the house, and he hath committed -all that he hath to my hand; 39:9 There is none greater in this house -than I; neither hath he kept back any thing from me but thee, because -thou art his wife: how then can I do this great wickedness, and sin -against God? 39:10 And it came to pass, as she spake to Joseph day by -day, that he hearkened not unto her, to lie by her, or to be with her. - -39:11 And it came to pass about this time, that Joseph went into the -house to do his business; and there was none of the men of the house -there within. - -39:12 And she caught him by his garment, saying, Lie with me: and he -left his garment in her hand, and fled, and got him out. - -39:13 And it came to pass, when she saw that he had left his garment -in her hand, and was fled forth, 39:14 That she called unto the men of -her house, and spake unto them, saying, See, he hath brought in an -Hebrew unto us to mock us; he came in unto me to lie with me, and I -cried with a loud voice: 39:15 And it came to pass, when he heard that -I lifted up my voice and cried, that he left his garment with me, and -fled, and got him out. - -39:16 And she laid up his garment by her, until his lord came home. - -39:17 And she spake unto him according to these words, saying, The -Hebrew servant, which thou hast brought unto us, came in unto me to -mock me: 39:18 And it came to pass, as I lifted up my voice and cried, -that he left his garment with me, and fled out. - -39:19 And it came to pass, when his master heard the words of his -wife, which she spake unto him, saying, After this manner did thy -servant to me; that his wrath was kindled. - -39:20 And Joseph's master took him, and put him into the prison, a -place where the king's prisoners were bound: and he was there in the -prison. - -39:21 But the LORD was with Joseph, and shewed him mercy, and gave him -favour in the sight of the keeper of the prison. - -39:22 And the keeper of the prison committed to Joseph's hand all the -prisoners that were in the prison; and whatsoever they did there, he -was the doer of it. - -39:23 The keeper of the prison looked not to any thing that was under -his hand; because the LORD was with him, and that which he did, the -LORD made it to prosper. - -40:1 And it came to pass after these things, that the butler of the -king of Egypt and his baker had offended their lord the king of Egypt. - -40:2 And Pharaoh was wroth against two of his officers, against the -chief of the butlers, and against the chief of the bakers. - -40:3 And he put them in ward in the house of the captain of the guard, -into the prison, the place where Joseph was bound. - -40:4 And the captain of the guard charged Joseph with them, and he -served them: and they continued a season in ward. - -40:5 And they dreamed a dream both of them, each man his dream in one -night, each man according to the interpretation of his dream, the -butler and the baker of the king of Egypt, which were bound in the -prison. - -40:6 And Joseph came in unto them in the morning, and looked upon -them, and, behold, they were sad. - -40:7 And he asked Pharaoh's officers that were with him in the ward of -his lord's house, saying, Wherefore look ye so sadly to day? 40:8 And -they said unto him, We have dreamed a dream, and there is no -interpreter of it. And Joseph said unto them, Do not interpretations -belong to God? tell me them, I pray you. - -40:9 And the chief butler told his dream to Joseph, and said to him, -In my dream, behold, a vine was before me; 40:10 And in the vine were -three branches: and it was as though it budded, and her blossoms shot -forth; and the clusters thereof brought forth ripe grapes: 40:11 And -Pharaoh's cup was in my hand: and I took the grapes, and pressed them -into Pharaoh's cup, and I gave the cup into Pharaoh's hand. - -40:12 And Joseph said unto him, This is the interpretation of it: The -three branches are three days: 40:13 Yet within three days shall -Pharaoh lift up thine head, and restore thee unto thy place: and thou -shalt deliver Pharaoh's cup into his hand, after the former manner -when thou wast his butler. - -40:14 But think on me when it shall be well with thee, and shew -kindness, I pray thee, unto me, and make mention of me unto Pharaoh, -and bring me out of this house: 40:15 For indeed I was stolen away out -of the land of the Hebrews: and here also have I done nothing that -they should put me into the dungeon. - -40:16 When the chief baker saw that the interpretation was good, he -said unto Joseph, I also was in my dream, and, behold, I had three -white baskets on my head: 40:17 And in the uppermost basket there was -of all manner of bakemeats for Pharaoh; and the birds did eat them out -of the basket upon my head. - -40:18 And Joseph answered and said, This is the interpretation -thereof: The three baskets are three days: 40:19 Yet within three days -shall Pharaoh lift up thy head from off thee, and shall hang thee on a -tree; and the birds shall eat thy flesh from off thee. - -40:20 And it came to pass the third day, which was Pharaoh's birthday, -that he made a feast unto all his servants: and he lifted up the head -of the chief butler and of the chief baker among his servants. - -40:21 And he restored the chief butler unto his butlership again; and -he gave the cup into Pharaoh's hand: 40:22 But he hanged the chief -baker: as Joseph had interpreted to them. - -40:23 Yet did not the chief butler remember Joseph, but forgat him. - -41:1 And it came to pass at the end of two full years, that Pharaoh -dreamed: and, behold, he stood by the river. - -41:2 And, behold, there came up out of the river seven well favoured -kine and fatfleshed; and they fed in a meadow. - -41:3 And, behold, seven other kine came up after them out of the -river, ill favoured and leanfleshed; and stood by the other kine upon -the brink of the river. - -41:4 And the ill favoured and leanfleshed kine did eat up the seven -well favoured and fat kine. So Pharaoh awoke. - -41:5 And he slept and dreamed the second time: and, behold, seven ears -of corn came up upon one stalk, rank and good. - -41:6 And, behold, seven thin ears and blasted with the east wind -sprung up after them. - -41:7 And the seven thin ears devoured the seven rank and full ears. -And Pharaoh awoke, and, behold, it was a dream. - -41:8 And it came to pass in the morning that his spirit was troubled; -and he sent and called for all the magicians of Egypt, and all the -wise men thereof: and Pharaoh told them his dream; but there was none -that could interpret them unto Pharaoh. - -41:9 Then spake the chief butler unto Pharaoh, saying, I do remember -my faults this day: 41:10 Pharaoh was wroth with his servants, and put -me in ward in the captain of the guard's house, both me and the chief -baker: 41:11 And we dreamed a dream in one night, I and he; we dreamed -each man according to the interpretation of his dream. - -41:12 And there was there with us a young man, an Hebrew, servant to -the captain of the guard; and we told him, and he interpreted to us -our dreams; to each man according to his dream he did interpret. - -41:13 And it came to pass, as he interpreted to us, so it was; me he -restored unto mine office, and him he hanged. - -41:14 Then Pharaoh sent and called Joseph, and they brought him -hastily out of the dungeon: and he shaved himself, and changed his -raiment, and came in unto Pharaoh. - -41:15 And Pharaoh said unto Joseph, I have dreamed a dream, and there -is none that can interpret it: and I have heard say of thee, that thou -canst understand a dream to interpret it. - -41:16 And Joseph answered Pharaoh, saying, It is not in me: God shall -give Pharaoh an answer of peace. - -41:17 And Pharaoh said unto Joseph, In my dream, behold, I stood upon -the bank of the river: 41:18 And, behold, there came up out of the -river seven kine, fatfleshed and well favoured; and they fed in a -meadow: 41:19 And, behold, seven other kine came up after them, poor -and very ill favoured and leanfleshed, such as I never saw in all the -land of Egypt for badness: 41:20 And the lean and the ill favoured -kine did eat up the first seven fat kine: 41:21 And when they had -eaten them up, it could not be known that they had eaten them; but -they were still ill favoured, as at the beginning. So I awoke. - -41:22 And I saw in my dream, and, behold, seven ears came up in one -stalk, full and good: 41:23 And, behold, seven ears, withered, thin, -and blasted with the east wind, sprung up after them: 41:24 And the -thin ears devoured the seven good ears: and I told this unto the -magicians; but there was none that could declare it to me. - -41:25 And Joseph said unto Pharaoh, The dream of Pharaoh is one: God -hath shewed Pharaoh what he is about to do. - -41:26 The seven good kine are seven years; and the seven good ears are -seven years: the dream is one. - -41:27 And the seven thin and ill favoured kine that came up after them -are seven years; and the seven empty ears blasted with the east wind -shall be seven years of famine. - -41:28 This is the thing which I have spoken unto Pharaoh: What God is -about to do he sheweth unto Pharaoh. - -41:29 Behold, there come seven years of great plenty throughout all -the land of Egypt: 41:30 And there shall arise after them seven years -of famine; and all the plenty shall be forgotten in the land of Egypt; -and the famine shall consume the land; 41:31 And the plenty shall not -be known in the land by reason of that famine following; for it shall -be very grievous. - -41:32 And for that the dream was doubled unto Pharaoh twice; it is -because the thing is established by God, and God will shortly bring it -to pass. - -41:33 Now therefore let Pharaoh look out a man discreet and wise, and -set him over the land of Egypt. - -41:34 Let Pharaoh do this, and let him appoint officers over the land, -and take up the fifth part of the land of Egypt in the seven plenteous -years. - -41:35 And let them gather all the food of those good years that come, -and lay up corn under the hand of Pharaoh, and let them keep food in -the cities. - -41:36 And that food shall be for store to the land against the seven -years of famine, which shall be in the land of Egypt; that the land -perish not through the famine. - -41:37 And the thing was good in the eyes of Pharaoh, and in the eyes -of all his servants. - -41:38 And Pharaoh said unto his servants, Can we find such a one as -this is, a man in whom the Spirit of God is? 41:39 And Pharaoh said -unto Joseph, Forasmuch as God hath shewed thee all this, there is none -so discreet and wise as thou art: 41:40 Thou shalt be over my house, -and according unto thy word shall all my people be ruled: only in the -throne will I be greater than thou. - -41:41 And Pharaoh said unto Joseph, See, I have set thee over all the -land of Egypt. - -41:42 And Pharaoh took off his ring from his hand, and put it upon -Joseph's hand, and arrayed him in vestures of fine linen, and put a -gold chain about his neck; 41:43 And he made him to ride in the second -chariot which he had; and they cried before him, Bow the knee: and he -made him ruler over all the land of Egypt. - -41:44 And Pharaoh said unto Joseph, I am Pharaoh, and without thee -shall no man lift up his hand or foot in all the land of Egypt. - -41:45 And Pharaoh called Joseph's name Zaphnathpaaneah; and he gave -him to wife Asenath the daughter of Potipherah priest of On. And -Joseph went out over all the land of Egypt. - -41:46 And Joseph was thirty years old when he stood before Pharaoh -king of Egypt. And Joseph went out from the presence of Pharaoh, and -went throughout all the land of Egypt. - -41:47 And in the seven plenteous years the earth brought forth by -handfuls. - -41:48 And he gathered up all the food of the seven years, which were -in the land of Egypt, and laid up the food in the cities: the food of -the field, which was round about every city, laid he up in the same. - -41:49 And Joseph gathered corn as the sand of the sea, very much, -until he left numbering; for it was without number. - -41:50 And unto Joseph were born two sons before the years of famine -came, which Asenath the daughter of Potipherah priest of On bare unto -him. - -41:51 And Joseph called the name of the firstborn Manasseh: For God, -said he, hath made me forget all my toil, and all my father's house. - -41:52 And the name of the second called he Ephraim: For God hath -caused me to be fruitful in the land of my affliction. - -41:53 And the seven years of plenteousness, that was in the land of -Egypt, were ended. - -41:54 And the seven years of dearth began to come, according as Joseph -had said: and the dearth was in all lands; but in all the land of -Egypt there was bread. - -41:55 And when all the land of Egypt was famished, the people cried to -Pharaoh for bread: and Pharaoh said unto all the Egyptians, Go unto -Joseph; what he saith to you, do. - -41:56 And the famine was over all the face of the earth: and Joseph -opened all the storehouses, and sold unto the Egyptians; and the -famine waxed sore in the land of Egypt. - -41:57 And all countries came into Egypt to Joseph for to buy corn; -because that the famine was so sore in all lands. - -42:1 Now when Jacob saw that there was corn in Egypt, Jacob said unto -his sons, Why do ye look one upon another? 42:2 And he said, Behold, -I have heard that there is corn in Egypt: get you down thither, and -buy for us from thence; that we may live, and not die. - -42:3 And Joseph's ten brethren went down to buy corn in Egypt. - -42:4 But Benjamin, Joseph's brother, Jacob sent not with his brethren; -for he said, Lest peradventure mischief befall him. - -42:5 And the sons of Israel came to buy corn among those that came: -for the famine was in the land of Canaan. - -42:6 And Joseph was the governor over the land, and he it was that -sold to all the people of the land: and Joseph's brethren came, and -bowed down themselves before him with their faces to the earth. - -42:7 And Joseph saw his brethren, and he knew them, but made himself -strange unto them, and spake roughly unto them; and he said unto them, -Whence come ye? And they said, From the land of Canaan to buy food. - -42:8 And Joseph knew his brethren, but they knew not him. - -42:9 And Joseph remembered the dreams which he dreamed of them, and -said unto them, Ye are spies; to see the nakedness of the land ye are -come. - -42:10 And they said unto him, Nay, my lord, but to buy food are thy -servants come. - -42:11 We are all one man's sons; we are true men, thy servants are no -spies. - -42:12 And he said unto them, Nay, but to see the nakedness of the land -ye are come. - -42:13 And they said, Thy servants are twelve brethren, the sons of one -man in the land of Canaan; and, behold, the youngest is this day with -our father, and one is not. - -42:14 And Joseph said unto them, That is it that I spake unto you, -saying, Ye are spies: 42:15 Hereby ye shall be proved: By the life of -Pharaoh ye shall not go forth hence, except your youngest brother come -hither. - -42:16 Send one of you, and let him fetch your brother, and ye shall be -kept in prison, that your words may be proved, whether there be any -truth in you: or else by the life of Pharaoh surely ye are spies. - -42:17 And he put them all together into ward three days. - -42:18 And Joseph said unto them the third day, This do, and live; for -I fear God: 42:19 If ye be true men, let one of your brethren be bound -in the house of your prison: go ye, carry corn for the famine of your -houses: 42:20 But bring your youngest brother unto me; so shall your -words be verified, and ye shall not die. And they did so. - -42:21 And they said one to another, We are verily guilty concerning -our brother, in that we saw the anguish of his soul, when he besought -us, and we would not hear; therefore is this distress come upon us. - -42:22 And Reuben answered them, saying, Spake I not unto you, saying, -Do not sin against the child; and ye would not hear? therefore, -behold, also his blood is required. - -42:23 And they knew not that Joseph understood them; for he spake unto -them by an interpreter. - -42:24 And he turned himself about from them, and wept; and returned to -them again, and communed with them, and took from them Simeon, and -bound him before their eyes. - -42:25 Then Joseph commanded to fill their sacks with corn, and to -restore every man's money into his sack, and to give them provision -for the way: and thus did he unto them. - -42:26 And they laded their asses with the corn, and departed thence. - -42:27 And as one of them opened his sack to give his ass provender in -the inn, he espied his money; for, behold, it was in his sack's mouth. - -42:28 And he said unto his brethren, My money is restored; and, lo, it -is even in my sack: and their heart failed them, and they were afraid, -saying one to another, What is this that God hath done unto us? 42:29 -And they came unto Jacob their father unto the land of Canaan, and -told him all that befell unto them; saying, 42:30 The man, who is the -lord of the land, spake roughly to us, and took us for spies of the -country. - -42:31 And we said unto him, We are true men; we are no spies: 42:32 We -be twelve brethren, sons of our father; one is not, and the youngest -is this day with our father in the land of Canaan. - -42:33 And the man, the lord of the country, said unto us, Hereby shall -I know that ye are true men; leave one of your brethren here with me, -and take food for the famine of your households, and be gone: 42:34 -And bring your youngest brother unto me: then shall I know that ye are -no spies, but that ye are true men: so will I deliver you your -brother, and ye shall traffick in the land. - -42:35 And it came to pass as they emptied their sacks, that, behold, -every man's bundle of money was in his sack: and when both they and -their father saw the bundles of money, they were afraid. - -42:36 And Jacob their father said unto them, Me have ye bereaved of my -children: Joseph is not, and Simeon is not, and ye will take Benjamin -away: all these things are against me. - -42:37 And Reuben spake unto his father, saying, Slay my two sons, if I -bring him not to thee: deliver him into my hand, and I will bring him -to thee again. - -42:38 And he said, My son shall not go down with you; for his brother -is dead, and he is left alone: if mischief befall him by the way in -the which ye go, then shall ye bring down my gray hairs with sorrow to -the grave. - -43:1 And the famine was sore in the land. - -43:2 And it came to pass, when they had eaten up the corn which they -had brought out of Egypt, their father said unto them, Go again, buy -us a little food. - -43:3 And Judah spake unto him, saying, The man did solemnly protest -unto us, saying, Ye shall not see my face, except your brother be with -you. - -43:4 If thou wilt send our brother with us, we will go down and buy -thee food: 43:5 But if thou wilt not send him, we will not go down: -for the man said unto us, Ye shall not see my face, except your -brother be with you. - -43:6 And Israel said, Wherefore dealt ye so ill with me, as to tell -the man whether ye had yet a brother? 43:7 And they said, The man -asked us straitly of our state, and of our kindred, saying, Is your -father yet alive? have ye another brother? and we told him according -to the tenor of these words: could we certainly know that he would -say, Bring your brother down? 43:8 And Judah said unto Israel his -father, Send the lad with me, and we will arise and go; that we may -live, and not die, both we, and thou, and also our little ones. - -43:9 I will be surety for him; of my hand shalt thou require him: if I -bring him not unto thee, and set him before thee, then let me bear the -blame for ever: 43:10 For except we had lingered, surely now we had -returned this second time. - -43:11 And their father Israel said unto them, If it must be so now, do -this; take of the best fruits in the land in your vessels, and carry -down the man a present, a little balm, and a little honey, spices, and -myrrh, nuts, and almonds: 43:12 And take double money in your hand; -and the money that was brought again in the mouth of your sacks, carry -it again in your hand; peradventure it was an oversight: 43:13 Take -also your brother, and arise, go again unto the man: 43:14 And God -Almighty give you mercy before the man, that he may send away your -other brother, and Benjamin. If I be bereaved of my children, I am -bereaved. - -43:15 And the men took that present, and they took double money in -their hand and Benjamin; and rose up, and went down to Egypt, and -stood before Joseph. - -43:16 And when Joseph saw Benjamin with them, he said to the ruler of -his house, Bring these men home, and slay, and make ready; for these -men shall dine with me at noon. - -43:17 And the man did as Joseph bade; and the man brought the men into -Joseph's house. - -43:18 And the men were afraid, because they were brought into Joseph's -house; and they said, Because of the money that was returned in our -sacks at the first time are we brought in; that he may seek occasion -against us, and fall upon us, and take us for bondmen, and our asses. - -43:19 And they came near to the steward of Joseph's house, and they -communed with him at the door of the house, 43:20 And said, O sir, we -came indeed down at the first time to buy food: 43:21 And it came to -pass, when we came to the inn, that we opened our sacks, and, behold, -every man's money was in the mouth of his sack, our money in full -weight: and we have brought it again in our hand. - -43:22 And other money have we brought down in our hands to buy food: -we cannot tell who put our money in our sacks. - -43:23 And he said, Peace be to you, fear not: your God, and the God of -your father, hath given you treasure in your sacks: I had your money. -And he brought Simeon out unto them. - -43:24 And the man brought the men into Joseph's house, and gave them -water, and they washed their feet; and he gave their asses provender. - -43:25 And they made ready the present against Joseph came at noon: for -they heard that they should eat bread there. - -43:26 And when Joseph came home, they brought him the present which -was in their hand into the house, and bowed themselves to him to the -earth. - -43:27 And he asked them of their welfare, and said, Is your father -well, the old man of whom ye spake? Is he yet alive? 43:28 And they -answered, Thy servant our father is in good health, he is yet alive. -And they bowed down their heads, and made obeisance. - -43:29 And he lifted up his eyes, and saw his brother Benjamin, his -mother's son, and said, Is this your younger brother, of whom ye spake -unto me? And he said, God be gracious unto thee, my son. - -43:30 And Joseph made haste; for his bowels did yearn upon his -brother: and he sought where to weep; and he entered into his chamber, -and wept there. - -43:31 And he washed his face, and went out, and refrained himself, and -said, Set on bread. - -43:32 And they set on for him by himself, and for them by themselves, -and for the Egyptians, which did eat with him, by themselves: because -the Egyptians might not eat bread with the Hebrews; for that is an -abomination unto the Egyptians. - -43:33 And they sat before him, the firstborn according to his -birthright, and the youngest according to his youth: and the men -marvelled one at another. - -43:34 And he took and sent messes unto them from before him: but -Benjamin's mess was five times so much as any of their's. And they -drank, and were merry with him. - -44:1 And he commanded the steward of his house, saying, Fill the men's -sacks with food, as much as they can carry, and put every man's money -in his sack's mouth. - -44:2 And put my cup, the silver cup, in the sack's mouth of the -youngest, and his corn money. And he did according to the word that -Joseph had spoken. - -44:3 As soon as the morning was light, the men were sent away, they -and their asses. - -44:4 And when they were gone out of the city, and not yet far off, -Joseph said unto his steward, Up, follow after the men; and when thou -dost overtake them, say unto them, Wherefore have ye rewarded evil for -good? 44:5 Is not this it in which my lord drinketh, and whereby -indeed he divineth? ye have done evil in so doing. - -44:6 And he overtook them, and he spake unto them these same words. - -44:7 And they said unto him, Wherefore saith my lord these words? God -forbid that thy servants should do according to this thing: 44:8 -Behold, the money, which we found in our sacks' mouths, we brought -again unto thee out of the land of Canaan: how then should we steal -out of thy lord's house silver or gold? 44:9 With whomsoever of thy -servants it be found, both let him die, and we also will be my lord's -bondmen. - -44:10 And he said, Now also let it be according unto your words: he -with whom it is found shall be my servant; and ye shall be blameless. - -44:11 Then they speedily took down every man his sack to the ground, -and opened every man his sack. - -44:12 And he searched, and began at the eldest, and left at the -youngest: and the cup was found in Benjamin's sack. - -44:13 Then they rent their clothes, and laded every man his ass, and -returned to the city. - -44:14 And Judah and his brethren came to Joseph's house; for he was -yet there: and they fell before him on the ground. - -44:15 And Joseph said unto them, What deed is this that ye have done? -wot ye not that such a man as I can certainly divine? 44:16 And Judah -said, What shall we say unto my lord? what shall we speak? or how -shall we clear ourselves? God hath found out the iniquity of thy -servants: behold, we are my lord's servants, both we, and he also with -whom the cup is found. - -44:17 And he said, God forbid that I should do so: but the man in -whose hand the cup is found, he shall be my servant; and as for you, -get you up in peace unto your father. - -44:18 Then Judah came near unto him, and said, Oh my lord, let thy -servant, I pray thee, speak a word in my lord's ears, and let not -thine anger burn against thy servant: for thou art even as Pharaoh. - -44:19 My lord asked his servants, saying, Have ye a father, or a -brother? 44:20 And we said unto my lord, We have a father, an old -man, and a child of his old age, a little one; and his brother is -dead, and he alone is left of his mother, and his father loveth him. - -44:21 And thou saidst unto thy servants, Bring him down unto me, that -I may set mine eyes upon him. - -44:22 And we said unto my lord, The lad cannot leave his father: for -if he should leave his father, his father would die. - -44:23 And thou saidst unto thy servants, Except your youngest brother -come down with you, ye shall see my face no more. - -44:24 And it came to pass when we came up unto thy servant my father, -we told him the words of my lord. - -44:25 And our father said, Go again, and buy us a little food. - -44:26 And we said, We cannot go down: if our youngest brother be with -us, then will we go down: for we may not see the man's face, except -our youngest brother be with us. - -44:27 And thy servant my father said unto us, Ye know that my wife -bare me two sons: 44:28 And the one went out from me, and I said, -Surely he is torn in pieces; and I saw him not since: 44:29 And if ye -take this also from me, and mischief befall him, ye shall bring down -my gray hairs with sorrow to the grave. - -44:30 Now therefore when I come to thy servant my father, and the lad -be not with us; seeing that his life is bound up in the lad's life; -44:31 It shall come to pass, when he seeth that the lad is not with -us, that he will die: and thy servants shall bring down the gray hairs -of thy servant our father with sorrow to the grave. - -44:32 For thy servant became surety for the lad unto my father, -saying, If I bring him not unto thee, then I shall bear the blame to -my father for ever. - -44:33 Now therefore, I pray thee, let thy servant abide instead of the -lad a bondman to my lord; and let the lad go up with his brethren. - -44:34 For how shall I go up to my father, and the lad be not with me? -lest peradventure I see the evil that shall come on my father. - -45:1 Then Joseph could not refrain himself before all them that stood -by him; and he cried, Cause every man to go out from me. And there -stood no man with him, while Joseph made himself known unto his -brethren. - -45:2 And he wept aloud: and the Egyptians and the house of Pharaoh -heard. - -45:3 And Joseph said unto his brethren, I am Joseph; doth my father -yet live? And his brethren could not answer him; for they were -troubled at his presence. - -45:4 And Joseph said unto his brethren, Come near to me, I pray you. -And they came near. And he said, I am Joseph your brother, whom ye -sold into Egypt. - -45:5 Now therefore be not grieved, nor angry with yourselves, that ye -sold me hither: for God did send me before you to preserve life. - -45:6 For these two years hath the famine been in the land: and yet -there are five years, in the which there shall neither be earing nor -harvest. - -45:7 And God sent me before you to preserve you a posterity in the -earth, and to save your lives by a great deliverance. - -45:8 So now it was not you that sent me hither, but God: and he hath -made me a father to Pharaoh, and lord of all his house, and a ruler -throughout all the land of Egypt. - -45:9 Haste ye, and go up to my father, and say unto him, Thus saith -thy son Joseph, God hath made me lord of all Egypt: come down unto me, -tarry not: 45:10 And thou shalt dwell in the land of Goshen, and thou -shalt be near unto me, thou, and thy children, and thy children's -children, and thy flocks, and thy herds, and all that thou hast: 45:11 -And there will I nourish thee; for yet there are five years of famine; -lest thou, and thy household, and all that thou hast, come to poverty. - -45:12 And, behold, your eyes see, and the eyes of my brother Benjamin, -that it is my mouth that speaketh unto you. - -45:13 And ye shall tell my father of all my glory in Egypt, and of all -that ye have seen; and ye shall haste and bring down my father hither. - -45:14 And he fell upon his brother Benjamin's neck, and wept; and -Benjamin wept upon his neck. - -45:15 Moreover he kissed all his brethren, and wept upon them: and -after that his brethren talked with him. - -45:16 And the fame thereof was heard in Pharaoh's house, saying, -Joseph's brethren are come: and it pleased Pharaoh well, and his -servants. - -45:17 And Pharaoh said unto Joseph, Say unto thy brethren, This do ye; -lade your beasts, and go, get you unto the land of Canaan; 45:18 And -take your father and your households, and come unto me: and I will -give you the good of the land of Egypt, and ye shall eat the fat of -the land. - -45:19 Now thou art commanded, this do ye; take you wagons out of the -land of Egypt for your little ones, and for your wives, and bring your -father, and come. - -45:20 Also regard not your stuff; for the good of all the land of -Egypt is your's. - -45:21 And the children of Israel did so: and Joseph gave them wagons, -according to the commandment of Pharaoh, and gave them provision for -the way. - -45:22 To all of them he gave each man changes of raiment; but to -Benjamin he gave three hundred pieces of silver, and five changes of -raiment. - -45:23 And to his father he sent after this manner; ten asses laden -with the good things of Egypt, and ten she asses laden with corn and -bread and meat for his father by the way. - -45:24 So he sent his brethren away, and they departed: and he said -unto them, See that ye fall not out by the way. - -45:25 And they went up out of Egypt, and came into the land of Canaan -unto Jacob their father, 45:26 And told him, saying, Joseph is yet -alive, and he is governor over all the land of Egypt. And Jacob's -heart fainted, for he believed them not. - -45:27 And they told him all the words of Joseph, which he had said -unto them: and when he saw the wagons which Joseph had sent to carry -him, the spirit of Jacob their father revived: 45:28 And Israel said, -It is enough; Joseph my son is yet alive: I will go and see him before -I die. - -46:1 And Israel took his journey with all that he had, and came to -Beersheba, and offered sacrifices unto the God of his father Isaac. - -46:2 And God spake unto Israel in the visions of the night, and said, -Jacob, Jacob. And he said, Here am I. - -46:3 And he said, I am God, the God of thy father: fear not to go down -into Egypt; for I will there make of thee a great nation: 46:4 I will -go down with thee into Egypt; and I will also surely bring thee up -again: and Joseph shall put his hand upon thine eyes. - -46:5 And Jacob rose up from Beersheba: and the sons of Israel carried -Jacob their father, and their little ones, and their wives, in the -wagons which Pharaoh had sent to carry him. - -46:6 And they took their cattle, and their goods, which they had -gotten in the land of Canaan, and came into Egypt, Jacob, and all his -seed with him: 46:7 His sons, and his sons' sons with him, his -daughters, and his sons' daughters, and all his seed brought he with -him into Egypt. - -46:8 And these are the names of the children of Israel, which came -into Egypt, Jacob and his sons: Reuben, Jacob's firstborn. - -46:9 And the sons of Reuben; Hanoch, and Phallu, and Hezron, and -Carmi. - -46:10 And the sons of Simeon; Jemuel, and Jamin, and Ohad, and Jachin, -and Zohar, and Shaul the son of a Canaanitish woman. - -46:11 And the sons of Levi; Gershon, Kohath, and Merari. - -46:12 And the sons of Judah; Er, and Onan, and Shelah, and Pharez, and -Zarah: but Er and Onan died in the land of Canaan. And the sons of -Pharez were Hezron and Hamul. - -46:13 And the sons of Issachar; Tola, and Phuvah, and Job, and -Shimron. - -46:14 And the sons of Zebulun; Sered, and Elon, and Jahleel. - -46:15 These be the sons of Leah, which she bare unto Jacob in -Padanaram, with his daughter Dinah: all the souls of his sons and his -daughters were thirty and three. - -46:16 And the sons of Gad; Ziphion, and Haggi, Shuni, and Ezbon, Eri, -and Arodi, and Areli. - -46:17 And the sons of Asher; Jimnah, and Ishuah, and Isui, and Beriah, -and Serah their sister: and the sons of Beriah; Heber, and Malchiel. - -46:18 These are the sons of Zilpah, whom Laban gave to Leah his -daughter, and these she bare unto Jacob, even sixteen souls. - -46:19 The sons of Rachel Jacob's wife; Joseph, and Benjamin. - -46:20 And unto Joseph in the land of Egypt were born Manasseh and -Ephraim, which Asenath the daughter of Potipherah priest of On bare -unto him. - -46:21 And the sons of Benjamin were Belah, and Becher, and Ashbel, -Gera, and Naaman, Ehi, and Rosh, Muppim, and Huppim, and Ard. - -46:22 These are the sons of Rachel, which were born to Jacob: all the -souls were fourteen. - -46:23 And the sons of Dan; Hushim. - -46:24 And the sons of Naphtali; Jahzeel, and Guni, and Jezer, and -Shillem. - -46:25 These are the sons of Bilhah, which Laban gave unto Rachel his -daughter, and she bare these unto Jacob: all the souls were seven. - -46:26 All the souls that came with Jacob into Egypt, which came out of -his loins, besides Jacob's sons' wives, all the souls were threescore -and six; 46:27 And the sons of Joseph, which were born him in Egypt, -were two souls: all the souls of the house of Jacob, which came into -Egypt, were threescore and ten. - -46:28 And he sent Judah before him unto Joseph, to direct his face -unto Goshen; and they came into the land of Goshen. - -46:29 And Joseph made ready his chariot, and went up to meet Israel -his father, to Goshen, and presented himself unto him; and he fell on -his neck, and wept on his neck a good while. - -46:30 And Israel said unto Joseph, Now let me die, since I have seen -thy face, because thou art yet alive. - -46:31 And Joseph said unto his brethren, and unto his father's house, -I will go up, and shew Pharaoh, and say unto him, My brethren, and my -father's house, which were in the land of Canaan, are come unto me; -46:32 And the men are shepherds, for their trade hath been to feed -cattle; and they have brought their flocks, and their herds, and all -that they have. - -46:33 And it shall come to pass, when Pharaoh shall call you, and -shall say, What is your occupation? 46:34 That ye shall say, Thy -servants' trade hath been about cattle from our youth even until now, -both we, and also our fathers: that ye may dwell in the land of -Goshen; for every shepherd is an abomination unto the Egyptians. - -47:1 Then Joseph came and told Pharaoh, and said, My father and my -brethren, and their flocks, and their herds, and all that they have, -are come out of the land of Canaan; and, behold, they are in the land -of Goshen. - -47:2 And he took some of his brethren, even five men, and presented -them unto Pharaoh. - -47:3 And Pharaoh said unto his brethren, What is your occupation? And -they said unto Pharaoh, Thy servants are shepherds, both we, and also -our fathers. - -47:4 They said morever unto Pharaoh, For to sojourn in the land are we -come; for thy servants have no pasture for their flocks; for the -famine is sore in the land of Canaan: now therefore, we pray thee, let -thy servants dwell in the land of Goshen. - -47:5 And Pharaoh spake unto Joseph, saying, Thy father and thy -brethren are come unto thee: 47:6 The land of Egypt is before thee; in -the best of the land make thy father and brethren to dwell; in the -land of Goshen let them dwell: and if thou knowest any men of activity -among them, then make them rulers over my cattle. - -47:7 And Joseph brought in Jacob his father, and set him before -Pharaoh: and Jacob blessed Pharaoh. - -47:8 And Pharaoh said unto Jacob, How old art thou? 47:9 And Jacob -said unto Pharaoh, The days of the years of my pilgrimage are an -hundred and thirty years: few and evil have the days of the years of -my life been, and have not attained unto the days of the years of the -life of my fathers in the days of their pilgrimage. - -47:10 And Jacob blessed Pharaoh, and went out from before Pharaoh. - -47:11 And Joseph placed his father and his brethren, and gave them a -possession in the land of Egypt, in the best of the land, in the land -of Rameses, as Pharaoh had commanded. - -47:12 And Joseph nourished his father, and his brethren, and all his -father's household, with bread, according to their families. - -47:13 And there was no bread in all the land; for the famine was very -sore, so that the land of Egypt and all the land of Canaan fainted by -reason of the famine. - -47:14 And Joseph gathered up all the money that was found in the land -of Egypt, and in the land of Canaan, for the corn which they bought: -and Joseph brought the money into Pharaoh's house. - -47:15 And when money failed in the land of Egypt, and in the land of -Canaan, all the Egyptians came unto Joseph, and said, Give us bread: -for why should we die in thy presence? for the money faileth. - -47:16 And Joseph said, Give your cattle; and I will give you for your -cattle, if money fail. - -47:17 And they brought their cattle unto Joseph: and Joseph gave them -bread in exchange for horses, and for the flocks, and for the cattle -of the herds, and for the asses: and he fed them with bread for all -their cattle for that year. - -47:18 When that year was ended, they came unto him the second year, -and said unto him, We will not hide it from my lord, how that our -money is spent; my lord also hath our herds of cattle; there is not -ought left in the sight of my lord, but our bodies, and our lands: -47:19 Wherefore shall we die before thine eyes, both we and our land? -buy us and our land for bread, and we and our land will be servants -unto Pharaoh: and give us seed, that we may live, and not die, that -the land be not desolate. - -47:20 And Joseph bought all the land of Egypt for Pharaoh; for the -Egyptians sold every man his field, because the famine prevailed over -them: so the land became Pharaoh's. - -47:21 And as for the people, he removed them to cities from one end of -the borders of Egypt even to the other end thereof. - -47:22 Only the land of the priests bought he not; for the priests had -a portion assigned them of Pharaoh, and did eat their portion which -Pharaoh gave them: wherefore they sold not their lands. - -47:23 Then Joseph said unto the people, Behold, I have bought you this -day and your land for Pharaoh: lo, here is seed for you, and ye shall -sow the land. - -47:24 And it shall come to pass in the increase, that ye shall give -the fifth part unto Pharaoh, and four parts shall be your own, for -seed of the field, and for your food, and for them of your households, -and for food for your little ones. - -47:25 And they said, Thou hast saved our lives: let us find grace in -the sight of my lord, and we will be Pharaoh's servants. - -47:26 And Joseph made it a law over the land of Egypt unto this day, -that Pharaoh should have the fifth part, except the land of the -priests only, which became not Pharaoh's. - -47:27 And Israel dwelt in the land of Egypt, in the country of Goshen; -and they had possessions therein, and grew, and multiplied -exceedingly. - -47:28 And Jacob lived in the land of Egypt seventeen years: so the -whole age of Jacob was an hundred forty and seven years. - -47:29 And the time drew nigh that Israel must die: and he called his -son Joseph, and said unto him, If now I have found grace in thy sight, -put, I pray thee, thy hand under my thigh, and deal kindly and truly -with me; bury me not, I pray thee, in Egypt: 47:30 But I will lie with -my fathers, and thou shalt carry me out of Egypt, and bury me in their -buryingplace. And he said, I will do as thou hast said. - -47:31 And he said, Swear unto me. And he sware unto him. And Israel -bowed himself upon the bed's head. - -48:1 And it came to pass after these things, that one told Joseph, -Behold, thy father is sick: and he took with him his two sons, -Manasseh and Ephraim. - -48:2 And one told Jacob, and said, Behold, thy son Joseph cometh unto -thee: and Israel strengthened himself, and sat upon the bed. - -48:3 And Jacob said unto Joseph, God Almighty appeared unto me at Luz -in the land of Canaan, and blessed me, 48:4 And said unto me, Behold, -I will make thee fruitful, and multiply thee, and I will make of thee -a multitude of people; and will give this land to thy seed after thee -for an everlasting possession. - -48:5 And now thy two sons, Ephraim and Manasseh, which were born unto -thee in the land of Egypt before I came unto thee into Egypt, are -mine; as Reuben and Simeon, they shall be mine. - -48:6 And thy issue, which thou begettest after them, shall be thine, -and shall be called after the name of their brethren in their -inheritance. - -48:7 And as for me, when I came from Padan, Rachel died by me in the -land of Canaan in the way, when yet there was but a little way to come -unto Ephrath: and I buried her there in the way of Ephrath; the same -is Bethlehem. - -48:8 And Israel beheld Joseph's sons, and said, Who are these? 48:9 -And Joseph said unto his father, They are my sons, whom God hath given -me in this place. And he said, Bring them, I pray thee, unto me, and I -will bless them. - -48:10 Now the eyes of Israel were dim for age, so that he could not -see. - -And he brought them near unto him; and he kissed them, and embraced -them. - -48:11 And Israel said unto Joseph, I had not thought to see thy face: -and, lo, God hath shewed me also thy seed. - -48:12 And Joseph brought them out from between his knees, and he bowed -himself with his face to the earth. - -48:13 And Joseph took them both, Ephraim in his right hand toward -Israel's left hand, and Manasseh in his left hand toward Israel's -right hand, and brought them near unto him. - -48:14 And Israel stretched out his right hand, and laid it upon -Ephraim's head, who was the younger, and his left hand upon Manasseh's -head, guiding his hands wittingly; for Manasseh was the firstborn. - -48:15 And he blessed Joseph, and said, God, before whom my fathers -Abraham and Isaac did walk, the God which fed me all my life long unto -this day, 48:16 The Angel which redeemed me from all evil, bless the -lads; and let my name be named on them, and the name of my fathers -Abraham and Isaac; and let them grow into a multitude in the midst of -the earth. - -48:17 And when Joseph saw that his father laid his right hand upon the -head of Ephraim, it displeased him: and he held up his father's hand, -to remove it from Ephraim's head unto Manasseh's head. - -48:18 And Joseph said unto his father, Not so, my father: for this is -the firstborn; put thy right hand upon his head. - -48:19 And his father refused, and said, I know it, my son, I know it: -he also shall become a people, and he also shall be great: but truly -his younger brother shall be greater than he, and his seed shall -become a multitude of nations. - -48:20 And he blessed them that day, saying, In thee shall Israel -bless, saying, God make thee as Ephraim and as Manasseh: and he set -Ephraim before Manasseh. - -48:21 And Israel said unto Joseph, Behold, I die: but God shall be -with you, and bring you again unto the land of your fathers. - -48:22 Moreover I have given to thee one portion above thy brethren, -which I took out of the hand of the Amorite with my sword and with my -bow. - -49:1 And Jacob called unto his sons, and said, Gather yourselves -together, that I may tell you that which shall befall you in the last -days. - -49:2 Gather yourselves together, and hear, ye sons of Jacob; and -hearken unto Israel your father. - -49:3 Reuben, thou art my firstborn, my might, and the beginning of my -strength, the excellency of dignity, and the excellency of power: 49:4 -Unstable as water, thou shalt not excel; because thou wentest up to -thy father's bed; then defiledst thou it: he went up to my couch. - -49:5 Simeon and Levi are brethren; instruments of cruelty are in their -habitations. - -49:6 O my soul, come not thou into their secret; unto their assembly, -mine honour, be not thou united: for in their anger they slew a man, -and in their selfwill they digged down a wall. - -49:7 Cursed be their anger, for it was fierce; and their wrath, for it -was cruel: I will divide them in Jacob, and scatter them in Israel. - -49:8 Judah, thou art he whom thy brethren shall praise: thy hand shall -be in the neck of thine enemies; thy father's children shall bow down -before thee. - -49:9 Judah is a lion's whelp: from the prey, my son, thou art gone up: -he stooped down, he couched as a lion, and as an old lion; who shall -rouse him up? 49:10 The sceptre shall not depart from Judah, nor a -lawgiver from between his feet, until Shiloh come; and unto him shall -the gathering of the people be. - -49:11 Binding his foal unto the vine, and his ass's colt unto the -choice vine; he washed his garments in wine, and his clothes in the -blood of grapes: 49:12 His eyes shall be red with wine, and his teeth -white with milk. - -49:13 Zebulun shall dwell at the haven of the sea; and he shall be for -an haven of ships; and his border shall be unto Zidon. - -49:14 Issachar is a strong ass couching down between two burdens: -49:15 And he saw that rest was good, and the land that it was -pleasant; and bowed his shoulder to bear, and became a servant unto -tribute. - -49:16 Dan shall judge his people, as one of the tribes of Israel. - -49:17 Dan shall be a serpent by the way, an adder in the path, that -biteth the horse heels, so that his rider shall fall backward. - -49:18 I have waited for thy salvation, O LORD. - -49:19 Gad, a troop shall overcome him: but he shall overcome at the -last. - -49:20 Out of Asher his bread shall be fat, and he shall yield royal -dainties. - -49:21 Naphtali is a hind let loose: he giveth goodly words. - -49:22 Joseph is a fruitful bough, even a fruitful bough by a well; -whose branches run over the wall: 49:23 The archers have sorely -grieved him, and shot at him, and hated him: 49:24 But his bow abode -in strength, and the arms of his hands were made strong by the hands -of the mighty God of Jacob; (from thence is the shepherd, the stone of -Israel:) 49:25 Even by the God of thy father, who shall help thee; and -by the Almighty, who shall bless thee with blessings of heaven above, -blessings of the deep that lieth under, blessings of the breasts, and -of the womb: 49:26 The blessings of thy father have prevailed above -the blessings of my progenitors unto the utmost bound of the -everlasting hills: they shall be on the head of Joseph, and on the -crown of the head of him that was separate from his brethren. - -49:27 Benjamin shall ravin as a wolf: in the morning he shall devour -the prey, and at night he shall divide the spoil. - -49:28 All these are the twelve tribes of Israel: and this is it that -their father spake unto them, and blessed them; every one according to -his blessing he blessed them. - -49:29 And he charged them, and said unto them, I am to be gathered -unto my people: bury me with my fathers in the cave that is in the -field of Ephron the Hittite, 49:30 In the cave that is in the field of -Machpelah, which is before Mamre, in the land of Canaan, which Abraham -bought with the field of Ephron the Hittite for a possession of a -buryingplace. - -49:31 There they buried Abraham and Sarah his wife; there they buried -Isaac and Rebekah his wife; and there I buried Leah. - -49:32 The purchase of the field and of the cave that is therein was -from the children of Heth. - -49:33 And when Jacob had made an end of commanding his sons, he -gathered up his feet into the bed, and yielded up the ghost, and was -gathered unto his people. - -50:1 And Joseph fell upon his father's face, and wept upon him, and -kissed him. - -50:2 And Joseph commanded his servants the physicians to embalm his -father: and the physicians embalmed Israel. - -50:3 And forty days were fulfilled for him; for so are fulfilled the -days of those which are embalmed: and the Egyptians mourned for him -threescore and ten days. - -50:4 And when the days of his mourning were past, Joseph spake unto -the house of Pharaoh, saying, If now I have found grace in your eyes, -speak, I pray you, in the ears of Pharaoh, saying, 50:5 My father made -me swear, saying, Lo, I die: in my grave which I have digged for me in -the land of Canaan, there shalt thou bury me. Now therefore let me go -up, I pray thee, and bury my father, and I will come again. - -50:6 And Pharaoh said, Go up, and bury thy father, according as he -made thee swear. - -50:7 And Joseph went up to bury his father: and with him went up all -the servants of Pharaoh, the elders of his house, and all the elders -of the land of Egypt, 50:8 And all the house of Joseph, and his -brethren, and his father's house: only their little ones, and their -flocks, and their herds, they left in the land of Goshen. - -50:9 And there went up with him both chariots and horsemen: and it was -a very great company. - -50:10 And they came to the threshingfloor of Atad, which is beyond -Jordan, and there they mourned with a great and very sore lamentation: -and he made a mourning for his father seven days. - -50:11 And when the inhabitants of the land, the Canaanites, saw the -mourning in the floor of Atad, they said, This is a grievous mourning -to the Egyptians: wherefore the name of it was called Abelmizraim, -which is beyond Jordan. - -50:12 And his sons did unto him according as he commanded them: 50:13 -For his sons carried him into the land of Canaan, and buried him in -the cave of the field of Machpelah, which Abraham bought with the -field for a possession of a buryingplace of Ephron the Hittite, before -Mamre. - -50:14 And Joseph returned into Egypt, he, and his brethren, and all -that went up with him to bury his father, after he had buried his -father. - -50:15 And when Joseph's brethren saw that their father was dead, they -said, Joseph will peradventure hate us, and will certainly requite us -all the evil which we did unto him. - -50:16 And they sent a messenger unto Joseph, saying, Thy father did -command before he died, saying, 50:17 So shall ye say unto Joseph, -Forgive, I pray thee now, the trespass of thy brethren, and their sin; -for they did unto thee evil: and now, we pray thee, forgive the -trespass of the servants of the God of thy father. And Joseph wept -when they spake unto him. - -50:18 And his brethren also went and fell down before his face; and -they said, Behold, we be thy servants. - -50:19 And Joseph said unto them, Fear not: for am I in the place of -God? 50:20 But as for you, ye thought evil against me; but God meant -it unto good, to bring to pass, as it is this day, to save much people -alive. - -50:21 Now therefore fear ye not: I will nourish you, and your little -ones. - -And he comforted them, and spake kindly unto them. - -50:22 And Joseph dwelt in Egypt, he, and his father's house: and -Joseph lived an hundred and ten years. - -50:23 And Joseph saw Ephraim's children of the third generation: the -children also of Machir the son of Manasseh were brought up upon -Joseph's knees. - -50:24 And Joseph said unto his brethren, I die: and God will surely -visit you, and bring you out of this land unto the land which he sware -to Abraham, to Isaac, and to Jacob. - -50:25 And Joseph took an oath of the children of Israel, saying, God -will surely visit you, and ye shall carry up my bones from hence. - -50:26 So Joseph died, being an hundred and ten years old: and they -embalmed him, and he was put in a coffin in Egypt. - - - - -The Second Book of Moses: Called Exodus - - -1:1 Now these are the names of the children of Israel, which came -into Egypt; every man and his household came with Jacob. - -1:2 Reuben, Simeon, Levi, and Judah, 1:3 Issachar, Zebulun, and -Benjamin, 1:4 Dan, and Naphtali, Gad, and Asher. - -1:5 And all the souls that came out of the loins of Jacob were seventy -souls: for Joseph was in Egypt already. - -1:6 And Joseph died, and all his brethren, and all that generation. - -1:7 And the children of Israel were fruitful, and increased -abundantly, and multiplied, and waxed exceeding mighty; and the land -was filled with them. - -1:8 Now there arose up a new king over Egypt, which knew not Joseph. - -1:9 And he said unto his people, Behold, the people of the children of -Israel are more and mightier than we: 1:10 Come on, let us deal wisely -with them; lest they multiply, and it come to pass, that, when there -falleth out any war, they join also unto our enemies, and fight -against us, and so get them up out of the land. - -1:11 Therefore they did set over them taskmasters to afflict them with -their burdens. And they built for Pharaoh treasure cities, Pithom and -Raamses. - -1:12 But the more they afflicted them, the more they multiplied and -grew. - -And they were grieved because of the children of Israel. - -1:13 And the Egyptians made the children of Israel to serve with -rigour: 1:14 And they made their lives bitter with hard bondage, in -morter, and in brick, and in all manner of service in the field: all -their service, wherein they made them serve, was with rigour. - -1:15 And the king of Egypt spake to the Hebrew midwives, of which the -name of the one was Shiphrah, and the name of the other Puah: 1:16 And -he said, When ye do the office of a midwife to the Hebrew women, and -see them upon the stools; if it be a son, then ye shall kill him: but -if it be a daughter, then she shall live. - -1:17 But the midwives feared God, and did not as the king of Egypt -commanded them, but saved the men children alive. - -1:18 And the king of Egypt called for the midwives, and said unto -them, Why have ye done this thing, and have saved the men children -alive? 1:19 And the midwives said unto Pharaoh, Because the Hebrew -women are not as the Egyptian women; for they are lively, and are -delivered ere the midwives come in unto them. - -1:20 Therefore God dealt well with the midwives: and the people -multiplied, and waxed very mighty. - -1:21 And it came to pass, because the midwives feared God, that he -made them houses. - -1:22 And Pharaoh charged all his people, saying, Every son that is -born ye shall cast into the river, and every daughter ye shall save -alive. - -2:1 And there went a man of the house of Levi, and took to wife a -daughter of Levi. - -2:2 And the woman conceived, and bare a son: and when she saw him that -he was a goodly child, she hid him three months. - -2:3 And when she could not longer hide him, she took for him an ark of -bulrushes, and daubed it with slime and with pitch, and put the child -therein; and she laid it in the flags by the river's brink. - -2:4 And his sister stood afar off, to wit what would be done to him. - -2:5 And the daughter of Pharaoh came down to wash herself at the -river; and her maidens walked along by the river's side; and when she -saw the ark among the flags, she sent her maid to fetch it. - -2:6 And when she had opened it, she saw the child: and, behold, the -babe wept. And she had compassion on him, and said, This is one of the -Hebrews' children. - -2:7 Then said his sister to Pharaoh's daughter, Shall I go and call to -thee a nurse of the Hebrew women, that she may nurse the child for -thee? 2:8 And Pharaoh's daughter said to her, Go. And the maid went -and called the child's mother. - -2:9 And Pharaoh's daughter said unto her, Take this child away, and -nurse it for me, and I will give thee thy wages. And the women took -the child, and nursed it. - -2:10 And the child grew, and she brought him unto Pharaoh's daughter, -and he became her son. And she called his name Moses: and she said, -Because I drew him out of the water. - -2:11 And it came to pass in those days, when Moses was grown, that he -went out unto his brethren, and looked on their burdens: and he spied -an Egyptian smiting an Hebrew, one of his brethren. - -2:12 And he looked this way and that way, and when he saw that there -was no man, he slew the Egyptian, and hid him in the sand. - -2:13 And when he went out the second day, behold, two men of the -Hebrews strove together: and he said to him that did the wrong, -Wherefore smitest thou thy fellow? 2:14 And he said, Who made thee a -prince and a judge over us? intendest thou to kill me, as thou -killedst the Egyptian? And Moses feared, and said, Surely this thing -is known. - -2:15 Now when Pharaoh heard this thing, he sought to slay Moses. But -Moses fled from the face of Pharaoh, and dwelt in the land of Midian: -and he sat down by a well. - -2:16 Now the priest of Midian had seven daughters: and they came and -drew water, and filled the troughs to water their father's flock. - -2:17 And the shepherds came and drove them away: but Moses stood up -and helped them, and watered their flock. - -2:18 And when they came to Reuel their father, he said, How is it that -ye are come so soon to day? 2:19 And they said, An Egyptian delivered -us out of the hand of the shepherds, and also drew water enough for -us, and watered the flock. - -2:20 And he said unto his daughters, And where is he? why is it that -ye have left the man? call him, that he may eat bread. - -2:21 And Moses was content to dwell with the man: and he gave Moses -Zipporah his daughter. - -2:22 And she bare him a son, and he called his name Gershom: for he -said, I have been a stranger in a strange land. - -2:23 And it came to pass in process of time, that the king of Egypt -died: and the children of Israel sighed by reason of the bondage, and -they cried, and their cry came up unto God by reason of the bondage. - -2:24 And God heard their groaning, and God remembered his covenant -with Abraham, with Isaac, and with Jacob. - -2:25 And God looked upon the children of Israel, and God had respect -unto them. - -3:1 Now Moses kept the flock of Jethro his father in law, the priest -of Midian: and he led the flock to the backside of the desert, and -came to the mountain of God, even to Horeb. - -3:2 And the angel of the LORD appeared unto him in a flame of fire out -of the midst of a bush: and he looked, and, behold, the bush burned -with fire, and the bush was not consumed. - -3:3 And Moses said, I will now turn aside, and see this great sight, -why the bush is not burnt. - -3:4 And when the LORD saw that he turned aside to see, God called unto -him out of the midst of the bush, and said, Moses, Moses. And he said, -Here am I. - -3:5 And he said, Draw not nigh hither: put off thy shoes from off thy -feet, for the place whereon thou standest is holy ground. - -3:6 Moreover he said, I am the God of thy father, the God of Abraham, -the God of Isaac, and the God of Jacob. And Moses hid his face; for he -was afraid to look upon God. - -3:7 And the LORD said, I have surely seen the affliction of my people -which are in Egypt, and have heard their cry by reason of their -taskmasters; for I know their sorrows; 3:8 And I am come down to -deliver them out of the hand of the Egyptians, and to bring them up -out of that land unto a good land and a large, unto a land flowing -with milk and honey; unto the place of the Canaanites, and the -Hittites, and the Amorites, and the Perizzites, and the Hivites, and -the Jebusites. - -3:9 Now therefore, behold, the cry of the children of Israel is come -unto me: and I have also seen the oppression wherewith the Egyptians -oppress them. - -3:10 Come now therefore, and I will send thee unto Pharaoh, that thou -mayest bring forth my people the children of Israel out of Egypt. - -3:11 And Moses said unto God, Who am I, that I should go unto Pharaoh, -and that I should bring forth the children of Israel out of Egypt? -3:12 And he said, Certainly I will be with thee; and this shall be a -token unto thee, that I have sent thee: When thou hast brought forth -the people out of Egypt, ye shall serve God upon this mountain. - -3:13 And Moses said unto God, Behold, when I come unto the children of -Israel, and shall say unto them, The God of your fathers hath sent me -unto you; and they shall say to me, What is his name? what shall I say -unto them? 3:14 And God said unto Moses, I AM THAT I AM: and he said, -Thus shalt thou say unto the children of Israel, I AM hath sent me -unto you. - -3:15 And God said moreover unto Moses, Thus shalt thou say unto the -children of Israel, the LORD God of your fathers, the God of Abraham, -the God of Isaac, and the God of Jacob, hath sent me unto you: this is -my name for ever, and this is my memorial unto all generations. - -3:16 Go, and gather the elders of Israel together, and say unto them, -The LORD God of your fathers, the God of Abraham, of Isaac, and of -Jacob, appeared unto me, saying, I have surely visited you, and seen -that which is done to you in Egypt: 3:17 And I have said, I will bring -you up out of the affliction of Egypt unto the land of the Canaanites, -and the Hittites, and the Amorites, and the Perizzites, and the -Hivites, and the Jebusites, unto a land flowing with milk and honey. - -3:18 And they shall hearken to thy voice: and thou shalt come, thou -and the elders of Israel, unto the king of Egypt, and ye shall say -unto him, The LORD God of the Hebrews hath met with us: and now let us -go, we beseech thee, three days' journey into the wilderness, that we -may sacrifice to the LORD our God. - -3:19 And I am sure that the king of Egypt will not let you go, no, not -by a mighty hand. - -3:20 And I will stretch out my hand, and smite Egypt with all my -wonders which I will do in the midst thereof: and after that he will -let you go. - -3:21 And I will give this people favour in the sight of the Egyptians: -and it shall come to pass, that, when ye go, ye shall not go empty. - -3:22 But every woman shall borrow of her neighbour, and of her that -sojourneth in her house, jewels of silver, and jewels of gold, and -raiment: and ye shall put them upon your sons, and upon your -daughters; and ye shall spoil the Egyptians. - -4:1 And Moses answered and said, But, behold, they will not believe -me, nor hearken unto my voice: for they will say, The LORD hath not -appeared unto thee. - -4:2 And the LORD said unto him, What is that in thine hand? And he -said, A rod. - -4:3 And he said, Cast it on the ground. And he cast it on the ground, -and it became a serpent; and Moses fled from before it. - -4:4 And the LORD said unto Moses, Put forth thine hand, and take it by -the tail. And he put forth his hand, and caught it, and it became a -rod in his hand: 4:5 That they may believe that the LORD God of their -fathers, the God of Abraham, the God of Isaac, and the God of Jacob, -hath appeared unto thee. - -4:6 And the LORD said furthermore unto him, Put now thine hand into -thy bosom. And he put his hand into his bosom: and when he took it -out, behold, his hand was leprous as snow. - -4:7 And he said, Put thine hand into thy bosom again. And he put his -hand into his bosom again; and plucked it out of his bosom, and, -behold, it was turned again as his other flesh. - -4:8 And it shall come to pass, if they will not believe thee, neither -hearken to the voice of the first sign, that they will believe the -voice of the latter sign. - -4:9 And it shall come to pass, if they will not believe also these two -signs, neither hearken unto thy voice, that thou shalt take of the -water of the river, and pour it upon the dry land: and the water which -thou takest out of the river shall become blood upon the dry land. - -4:10 And Moses said unto the LORD, O my LORD, I am not eloquent, -neither heretofore, nor since thou hast spoken unto thy servant: but I -am slow of speech, and of a slow tongue. - -4:11 And the LORD said unto him, Who hath made man's mouth? or who -maketh the dumb, or deaf, or the seeing, or the blind? have not I the -LORD? 4:12 Now therefore go, and I will be with thy mouth, and teach -thee what thou shalt say. - -4:13 And he said, O my LORD, send, I pray thee, by the hand of him -whom thou wilt send. - -4:14 And the anger of the LORD was kindled against Moses, and he said, -Is not Aaron the Levite thy brother? I know that he can speak well. -And also, behold, he cometh forth to meet thee: and when he seeth -thee, he will be glad in his heart. - -4:15 And thou shalt speak unto him, and put words in his mouth: and I -will be with thy mouth, and with his mouth, and will teach you what ye -shall do. - -4:16 And he shall be thy spokesman unto the people: and he shall be, -even he shall be to thee instead of a mouth, and thou shalt be to him -instead of God. - -4:17 And thou shalt take this rod in thine hand, wherewith thou shalt -do signs. - -4:18 And Moses went and returned to Jethro his father in law, and said -unto him, Let me go, I pray thee, and return unto my brethren which -are in Egypt, and see whether they be yet alive. And Jethro said to -Moses, Go in peace. - -4:19 And the LORD said unto Moses in Midian, Go, return into Egypt: -for all the men are dead which sought thy life. - -4:20 And Moses took his wife and his sons, and set them upon an ass, -and he returned to the land of Egypt: and Moses took the rod of God in -his hand. - -4:21 And the LORD said unto Moses, When thou goest to return into -Egypt, see that thou do all those wonders before Pharaoh, which I have -put in thine hand: but I will harden his heart, that he shall not let -the people go. - -4:22 And thou shalt say unto Pharaoh, Thus saith the LORD, Israel is -my son, even my firstborn: 4:23 And I say unto thee, Let my son go, -that he may serve me: and if thou refuse to let him go, behold, I will -slay thy son, even thy firstborn. - -4:24 And it came to pass by the way in the inn, that the LORD met him, -and sought to kill him. - -4:25 Then Zipporah took a sharp stone, and cut off the foreskin of her -son, and cast it at his feet, and said, Surely a bloody husband art -thou to me. - -4:26 So he let him go: then she said, A bloody husband thou art, -because of the circumcision. - -4:27 And the LORD said to Aaron, Go into the wilderness to meet Moses. -And he went, and met him in the mount of God, and kissed him. - -4:28 And Moses told Aaron all the words of the LORD who had sent him, -and all the signs which he had commanded him. - -4:29 And Moses and Aaron went and gathered together all the elders of -the children of Israel: 4:30 And Aaron spake all the words which the -LORD had spoken unto Moses, and did the signs in the sight of the -people. - -4:31 And the people believed: and when they heard that the LORD had -visited the children of Israel, and that he had looked upon their -affliction, then they bowed their heads and worshipped. - -5:1 And afterward Moses and Aaron went in, and told Pharaoh, Thus -saith the LORD God of Israel, Let my people go, that they may hold a -feast unto me in the wilderness. - -5:2 And Pharaoh said, Who is the LORD, that I should obey his voice to -let Israel go? I know not the LORD, neither will I let Israel go. - -5:3 And they said, The God of the Hebrews hath met with us: let us go, -we pray thee, three days' journey into the desert, and sacrifice unto -the LORD our God; lest he fall upon us with pestilence, or with the -sword. - -5:4 And the king of Egypt said unto them, Wherefore do ye, Moses and -Aaron, let the people from their works? get you unto your burdens. - -5:5 And Pharaoh said, Behold, the people of the land now are many, and -ye make them rest from their burdens. - -5:6 And Pharaoh commanded the same day the taskmasters of the people, -and their officers, saying, 5:7 Ye shall no more give the people straw -to make brick, as heretofore: let them go and gather straw for -themselves. - -5:8 And the tale of the bricks, which they did make heretofore, ye -shall lay upon them; ye shall not diminish ought thereof: for they be -idle; therefore they cry, saying, Let us go and sacrifice to our God. - -5:9 Let there more work be laid upon the men, that they may labour -therein; and let them not regard vain words. - -5:10 And the taskmasters of the people went out, and their officers, -and they spake to the people, saying, Thus saith Pharaoh, I will not -give you straw. - -5:11 Go ye, get you straw where ye can find it: yet not ought of your -work shall be diminished. - -5:12 So the people were scattered abroad throughout all the land of -Egypt to gather stubble instead of straw. - -5:13 And the taskmasters hasted them, saying, Fulfil your works, your -daily tasks, as when there was straw. - -5:14 And the officers of the children of Israel, which Pharaoh's -taskmasters had set over them, were beaten, and demanded, Wherefore -have ye not fulfilled your task in making brick both yesterday and to -day, as heretofore? 5:15 Then the officers of the children of Israel -came and cried unto Pharaoh, saying, Wherefore dealest thou thus with -thy servants? 5:16 There is no straw given unto thy servants, and -they say to us, Make brick: and, behold, thy servants are beaten; but -the fault is in thine own people. - -5:17 But he said, Ye are idle, ye are idle: therefore ye say, Let us -go and do sacrifice to the LORD. - -5:18 Go therefore now, and work; for there shall no straw be given -you, yet shall ye deliver the tale of bricks. - -5:19 And the officers of the children of Israel did see that they were -in evil case, after it was said, Ye shall not minish ought from your -bricks of your daily task. - -5:20 And they met Moses and Aaron, who stood in the way, as they came -forth from Pharaoh: 5:21 And they said unto them, The LORD look upon -you, and judge; because ye have made our savour to be abhorred in the -eyes of Pharaoh, and in the eyes of his servants, to put a sword in -their hand to slay us. - -5:22 And Moses returned unto the LORD, and said, LORD, wherefore hast -thou so evil entreated this people? why is it that thou hast sent me? -5:23 For since I came to Pharaoh to speak in thy name, he hath done -evil to this people; neither hast thou delivered thy people at all. - -6:1 Then the LORD said unto Moses, Now shalt thou see what I will do -to Pharaoh: for with a strong hand shall he let them go, and with a -strong hand shall he drive them out of his land. - -6:2 And God spake unto Moses, and said unto him, I am the LORD: 6:3 -And I appeared unto Abraham, unto Isaac, and unto Jacob, by the name -of God Almighty, but by my name JEHOVAH was I not known to them. - -6:4 And I have also established my covenant with them, to give them -the land of Canaan, the land of their pilgrimage, wherein they were -strangers. - -6:5 And I have also heard the groaning of the children of Israel, whom -the Egyptians keep in bondage; and I have remembered my covenant. - -6:6 Wherefore say unto the children of Israel, I am the LORD, and I -will bring you out from under the burdens of the Egyptians, and I will -rid you out of their bondage, and I will redeem you with a stretched -out arm, and with great judgments: 6:7 And I will take you to me for a -people, and I will be to you a God: and ye shall know that I am the -LORD your God, which bringeth you out from under the burdens of the -Egyptians. - -6:8 And I will bring you in unto the land, concerning the which I did -swear to give it to Abraham, to Isaac, and to Jacob; and I will give -it you for an heritage: I am the LORD. - -6:9 And Moses spake so unto the children of Israel: but they hearkened -not unto Moses for anguish of spirit, and for cruel bondage. - -6:10 And the LORD spake unto Moses, saying, 6:11 Go in, speak unto -Pharaoh king of Egypt, that he let the children of Israel go out of -his land. - -6:12 And Moses spake before the LORD, saying, Behold, the children of -Israel have not hearkened unto me; how then shall Pharaoh hear me, who -am of uncircumcised lips? 6:13 And the LORD spake unto Moses and unto -Aaron, and gave them a charge unto the children of Israel, and unto -Pharaoh king of Egypt, to bring the children of Israel out of the land -of Egypt. - -6:14 These be the heads of their fathers' houses: The sons of Reuben -the firstborn of Israel; Hanoch, and Pallu, Hezron, and Carmi: these -be the families of Reuben. - -6:15 And the sons of Simeon; Jemuel, and Jamin, and Ohad, and Jachin, -and Zohar, and Shaul the son of a Canaanitish woman: these are the -families of Simeon. - -6:16 And these are the names of the sons of Levi according to their -generations; Gershon, and Kohath, and Merari: and the years of the -life of Levi were an hundred thirty and seven years. - -6:17 The sons of Gershon; Libni, and Shimi, according to their -families. - -6:18 And the sons of Kohath; Amram, and Izhar, and Hebron, and Uzziel: -and the years of the life of Kohath were an hundred thirty and three -years. - -6:19 And the sons of Merari; Mahali and Mushi: these are the families -of Levi according to their generations. - -6:20 And Amram took him Jochebed his father's sister to wife; and she -bare him Aaron and Moses: and the years of the life of Amram were an -hundred and thirty and seven years. - -6:21 And the sons of Izhar; Korah, and Nepheg, and Zichri. - -6:22 And the sons of Uzziel; Mishael, and Elzaphan, and Zithri. - -6:23 And Aaron took him Elisheba, daughter of Amminadab, sister of -Naashon, to wife; and she bare him Nadab, and Abihu, Eleazar, and -Ithamar. - -6:24 And the sons of Korah; Assir, and Elkanah, and Abiasaph: these -are the families of the Korhites. - -6:25 And Eleazar Aaron's son took him one of the daughters of Putiel -to wife; and she bare him Phinehas: these are the heads of the fathers -of the Levites according to their families. - -6:26 These are that Aaron and Moses, to whom the LORD said, Bring out -the children of Israel from the land of Egypt according to their -armies. - -6:27 These are they which spake to Pharaoh king of Egypt, to bring out -the children of Israel from Egypt: these are that Moses and Aaron. - -6:28 And it came to pass on the day when the LORD spake unto Moses in -the land of Egypt, 6:29 That the LORD spake unto Moses, saying, I am -the LORD: speak thou unto Pharaoh king of Egypt all that I say unto -thee. - -6:30 And Moses said before the LORD, Behold, I am of uncircumcised -lips, and how shall Pharaoh hearken unto me? 7:1 And the LORD said -unto Moses, See, I have made thee a god to Pharaoh: and Aaron thy -brother shall be thy prophet. - -7:2 Thou shalt speak all that I command thee: and Aaron thy brother -shall speak unto Pharaoh, that he send the children of Israel out of -his land. - -7:3 And I will harden Pharaoh's heart, and multiply my signs and my -wonders in the land of Egypt. - -7:4 But Pharaoh shall not hearken unto you, that I may lay my hand -upon Egypt, and bring forth mine armies, and my people the children of -Israel, out of the land of Egypt by great judgments. - -7:5 And the Egyptians shall know that I am the LORD, when I stretch -forth mine hand upon Egypt, and bring out the children of Israel from -among them. - -7:6 And Moses and Aaron did as the LORD commanded them, so did they. - -7:7 And Moses was fourscore years old, and Aaron fourscore and three -years old, when they spake unto Pharaoh. - -7:8 And the LORD spake unto Moses and unto Aaron, saying, 7:9 When -Pharaoh shall speak unto you, saying, Shew a miracle for you: then -thou shalt say unto Aaron, Take thy rod, and cast it before Pharaoh, -and it shall become a serpent. - -7:10 And Moses and Aaron went in unto Pharaoh, and they did so as the -LORD had commanded: and Aaron cast down his rod before Pharaoh, and -before his servants, and it became a serpent. - -7:11 Then Pharaoh also called the wise men and the sorcerers: now the -magicians of Egypt, they also did in like manner with their -enchantments. - -7:12 For they cast down every man his rod, and they became serpents: -but Aaron's rod swallowed up their rods. - -7:13 And he hardened Pharaoh's heart, that he hearkened not unto them; -as the LORD had said. - -7:14 And the LORD said unto Moses, Pharaoh's heart is hardened, he -refuseth to let the people go. - -7:15 Get thee unto Pharaoh in the morning; lo, he goeth out unto the -water; and thou shalt stand by the river's brink against he come; and -the rod which was turned to a serpent shalt thou take in thine hand. - -7:16 And thou shalt say unto him, The LORD God of the Hebrews hath -sent me unto thee, saying, Let my people go, that they may serve me in -the wilderness: and, behold, hitherto thou wouldest not hear. - -7:17 Thus saith the LORD, In this thou shalt know that I am the LORD: -behold, I will smite with the rod that is in mine hand upon the waters -which are in the river, and they shall be turned to blood. - -7:18 And the fish that is in the river shall die, and the river shall -stink; and the Egyptians shall lothe to drink of the water of the -river. - -7:19 And the LORD spake unto Moses, Say unto Aaron, Take thy rod, and -stretch out thine hand upon the waters of Egypt, upon their streams, -upon their rivers, and upon their ponds, and upon all their pools of -water, that they may become blood; and that there may be blood -throughout all the land of Egypt, both in vessels of wood, and in -vessels of stone. - -7:20 And Moses and Aaron did so, as the LORD commanded; and he lifted -up the rod, and smote the waters that were in the river, in the sight -of Pharaoh, and in the sight of his servants; and all the waters that -were in the river were turned to blood. - -7:21 And the fish that was in the river died; and the river stank, and -the Egyptians could not drink of the water of the river; and there was -blood throughout all the land of Egypt. - -7:22 And the magicians of Egypt did so with their enchantments: and -Pharaoh's heart was hardened, neither did he hearken unto them; as the -LORD had said. - -7:23 And Pharaoh turned and went into his house, neither did he set -his heart to this also. - -7:24 And all the Egyptians digged round about the river for water to -drink; for they could not drink of the water of the river. - -7:25 And seven days were fulfilled, after that the LORD had smitten -the river. - -8:1 And the LORD spake unto Moses, Go unto Pharaoh, and say unto him, -Thus saith the LORD, Let my people go, that they may serve me. - -8:2 And if thou refuse to let them go, behold, I will smite all thy -borders with frogs: 8:3 And the river shall bring forth frogs -abundantly, which shall go up and come into thine house, and into thy -bedchamber, and upon thy bed, and into the house of thy servants, and -upon thy people, and into thine ovens, and into thy kneadingtroughs: -8:4 And the frogs shall come up both on thee, and upon thy people, and -upon all thy servants. - -8:5 And the LORD spake unto Moses, Say unto Aaron, Stretch forth thine -hand with thy rod over the streams, over the rivers, and over the -ponds, and cause frogs to come up upon the land of Egypt. - -8:6 And Aaron stretched out his hand over the waters of Egypt; and the -frogs came up, and covered the land of Egypt. - -8:7 And the magicians did so with their enchantments, and brought up -frogs upon the land of Egypt. - -8:8 Then Pharaoh called for Moses and Aaron, and said, Intreat the -LORD, that he may take away the frogs from me, and from my people; and -I will let the people go, that they may do sacrifice unto the LORD. - -8:9 And Moses said unto Pharaoh, Glory over me: when shall I intreat -for thee, and for thy servants, and for thy people, to destroy the -frogs from thee and thy houses, that they may remain in the river -only? 8:10 And he said, To morrow. And he said, Be it according to -thy word: that thou mayest know that there is none like unto the LORD -our God. - -8:11 And the frogs shall depart from thee, and from thy houses, and -from thy servants, and from thy people; they shall remain in the river -only. - -8:12 And Moses and Aaron went out from Pharaoh: and Moses cried unto -the LORD because of the frogs which he had brought against Pharaoh. - -8:13 And the LORD did according to the word of Moses; and the frogs -died out of the houses, out of the villages, and out of the fields. - -8:14 And they gathered them together upon heaps: and the land stank. - -8:15 But when Pharaoh saw that there was respite, he hardened his -heart, and hearkened not unto them; as the LORD had said. - -8:16 And the LORD said unto Moses, Say unto Aaron, Stretch out thy -rod, and smite the dust of the land, that it may become lice -throughout all the land of Egypt. - -8:17 And they did so; for Aaron stretched out his hand with his rod, -and smote the dust of the earth, and it became lice in man, and in -beast; all the dust of the land became lice throughout all the land of -Egypt. - -8:18 And the magicians did so with their enchantments to bring forth -lice, but they could not: so there were lice upon man, and upon beast. - -8:19 Then the magicians said unto Pharaoh, This is the finger of God: -and Pharaoh's heart was hardened, and he hearkened not unto them; as -the LORD had said. - -8:20 And the LORD said unto Moses, Rise up early in the morning, and -stand before Pharaoh; lo, he cometh forth to the water; and say unto -him, Thus saith the LORD, Let my people go, that they may serve me. - -8:21 Else, if thou wilt not let my people go, behold, I will send -swarms of flies upon thee, and upon thy servants, and upon thy people, -and into thy houses: and the houses of the Egyptians shall be full of -swarms of flies, and also the ground whereon they are. - -8:22 And I will sever in that day the land of Goshen, in which my -people dwell, that no swarms of flies shall be there; to the end thou -mayest know that I am the LORD in the midst of the earth. - -8:23 And I will put a division between my people and thy people: to -morrow shall this sign be. - -8:24 And the LORD did so; and there came a grievous swarm of flies -into the house of Pharaoh, and into his servants' houses, and into all -the land of Egypt: the land was corrupted by reason of the swarm of -flies. - -8:25 And Pharaoh called for Moses and for Aaron, and said, Go ye, -sacrifice to your God in the land. - -8:26 And Moses said, It is not meet so to do; for we shall sacrifice -the abomination of the Egyptians to the LORD our God: lo, shall we -sacrifice the abomination of the Egyptians before their eyes, and will -they not stone us? 8:27 We will go three days' journey into the -wilderness, and sacrifice to the LORD our God, as he shall command us. - -8:28 And Pharaoh said, I will let you go, that ye may sacrifice to the -LORD your God in the wilderness; only ye shall not go very far away: -intreat for me. - -8:29 And Moses said, Behold, I go out from thee, and I will intreat -the LORD that the swarms of flies may depart from Pharaoh, from his -servants, and from his people, to morrow: but let not Pharaoh deal -deceitfully any more in not letting the people go to sacrifice to the -LORD. - -8:30 And Moses went out from Pharaoh, and intreated the LORD. - -8:31 And the LORD did according to the word of Moses; and he removed -the swarms of flies from Pharaoh, from his servants, and from his -people; there remained not one. - -8:32 And Pharaoh hardened his heart at this time also, neither would -he let the people go. - -9:1 Then the LORD said unto Moses, Go in unto Pharaoh, and tell him, -Thus saith the LORD God of the Hebrews, Let my people go, that they -may serve me. - -9:2 For if thou refuse to let them go, and wilt hold them still, 9:3 -Behold, the hand of the LORD is upon thy cattle which is in the field, -upon the horses, upon the asses, upon the camels, upon the oxen, and -upon the sheep: there shall be a very grievous murrain. - -9:4 And the LORD shall sever between the cattle of Israel and the -cattle of Egypt: and there shall nothing die of all that is the -children's of Israel. - -9:5 And the LORD appointed a set time, saying, To morrow the LORD -shall do this thing in the land. - -9:6 And the LORD did that thing on the morrow, and all the cattle of -Egypt died: but of the cattle of the children of Israel died not one. - -9:7 And Pharaoh sent, and, behold, there was not one of the cattle of -the Israelites dead. And the heart of Pharaoh was hardened, and he did -not let the people go. - -9:8 And the LORD said unto Moses and unto Aaron, Take to you handfuls -of ashes of the furnace, and let Moses sprinkle it toward the heaven -in the sight of Pharaoh. - -9:9 And it shall become small dust in all the land of Egypt, and shall -be a boil breaking forth with blains upon man, and upon beast, -throughout all the land of Egypt. - -9:10 And they took ashes of the furnace, and stood before Pharaoh; and -Moses sprinkled it up toward heaven; and it became a boil breaking -forth with blains upon man, and upon beast. - -9:11 And the magicians could not stand before Moses because of the -boils; for the boil was upon the magicians, and upon all the -Egyptians. - -9:12 And the LORD hardened the heart of Pharaoh, and he hearkened not -unto them; as the LORD had spoken unto Moses. - -9:13 And the LORD said unto Moses, Rise up early in the morning, and -stand before Pharaoh, and say unto him, Thus saith the LORD God of the -Hebrews, Let my people go, that they may serve me. - -9:14 For I will at this time send all my plagues upon thine heart, and -upon thy servants, and upon thy people; that thou mayest know that -there is none like me in all the earth. - -9:15 For now I will stretch out my hand, that I may smite thee and thy -people with pestilence; and thou shalt be cut off from the earth. - -9:16 And in very deed for this cause have I raised thee up, for to -shew in thee my power; and that my name may be declared throughout all -the earth. - -9:17 As yet exaltest thou thyself against my people, that thou wilt -not let them go? 9:18 Behold, to morrow about this time I will cause -it to rain a very grievous hail, such as hath not been in Egypt since -the foundation thereof even until now. - -9:19 Send therefore now, and gather thy cattle, and all that thou hast -in the field; for upon every man and beast which shall be found in the -field, and shall not be brought home, the hail shall come down upon -them, and they shall die. - -9:20 He that feared the word of the LORD among the servants of Pharaoh -made his servants and his cattle flee into the houses: 9:21 And he -that regarded not the word of the LORD left his servants and his -cattle in the field. - -9:22 And the LORD said unto Moses, Stretch forth thine hand toward -heaven, that there may be hail in all the land of Egypt, upon man, and -upon beast, and upon every herb of the field, throughout the land of -Egypt. - -9:23 And Moses stretched forth his rod toward heaven: and the LORD -sent thunder and hail, and the fire ran along upon the ground; and the -LORD rained hail upon the land of Egypt. - -9:24 So there was hail, and fire mingled with the hail, very grievous, -such as there was none like it in all the land of Egypt since it -became a nation. - -9:25 And the hail smote throughout all the land of Egypt all that was -in the field, both man and beast; and the hail smote every herb of the -field, and brake every tree of the field. - -9:26 Only in the land of Goshen, where the children of Israel were, -was there no hail. - -9:27 And Pharaoh sent, and called for Moses and Aaron, and said unto -them, I have sinned this time: the LORD is righteous, and I and my -people are wicked. - -9:28 Intreat the LORD (for it is enough) that there be no more mighty -thunderings and hail; and I will let you go, and ye shall stay no -longer. - -9:29 And Moses said unto him, As soon as I am gone out of the city, I -will spread abroad my hands unto the LORD; and the thunder shall -cease, neither shall there be any more hail; that thou mayest know how -that the earth is the LORD's. - -9:30 But as for thee and thy servants, I know that ye will not yet -fear the LORD God. - -9:31 And the flax and the barley was smitten: for the barley was in -the ear, and the flax was bolled. - -9:32 But the wheat and the rie were not smitten: for they were not -grown up. - -9:33 And Moses went out of the city from Pharaoh, and spread abroad -his hands unto the LORD: and the thunders and hail ceased, and the -rain was not poured upon the earth. - -9:34 And when Pharaoh saw that the rain and the hail and the thunders -were ceased, he sinned yet more, and hardened his heart, he and his -servants. - -9:35 And the heart of Pharaoh was hardened, neither would he let the -children of Israel go; as the LORD had spoken by Moses. - -10:1 And the LORD said unto Moses, Go in unto Pharaoh: for I have -hardened his heart, and the heart of his servants, that I might shew -these my signs before him: 10:2 And that thou mayest tell in the ears -of thy son, and of thy son's son, what things I have wrought in Egypt, -and my signs which I have done among them; that ye may know how that I -am the LORD. - -10:3 And Moses and Aaron came in unto Pharaoh, and said unto him, Thus -saith the LORD God of the Hebrews, How long wilt thou refuse to humble -thyself before me? let my people go, that they may serve me. - -10:4 Else, if thou refuse to let my people go, behold, to morrow will -I bring the locusts into thy coast: 10:5 And they shall cover the face -of the earth, that one cannot be able to see the earth: and they shall -eat the residue of that which is escaped, which remaineth unto you -from the hail, and shall eat every tree which groweth for you out of -the field: 10:6 And they shall fill thy houses, and the houses of all -thy servants, and the houses of all the Egyptians; which neither thy -fathers, nor thy fathers' fathers have seen, since the day that they -were upon the earth unto this day. And he turned himself, and went out -from Pharaoh. - -10:7 And Pharaoh's servants said unto him, How long shall this man be -a snare unto us? let the men go, that they may serve the LORD their -God: knowest thou not yet that Egypt is destroyed? 10:8 And Moses and -Aaron were brought again unto Pharaoh: and he said unto them, Go, -serve the LORD your God: but who are they that shall go? 10:9 And -Moses said, We will go with our young and with our old, with our sons -and with our daughters, with our flocks and with our herds will we go; -for we must hold a feast unto the LORD. - -10:10 And he said unto them, Let the LORD be so with you, as I will -let you go, and your little ones: look to it; for evil is before you. - -10:11 Not so: go now ye that are men, and serve the LORD; for that ye -did desire. And they were driven out from Pharaoh's presence. - -10:12 And the LORD said unto Moses, Stretch out thine hand over the -land of Egypt for the locusts, that they may come up upon the land of -Egypt, and eat every herb of the land, even all that the hail hath -left. - -10:13 And Moses stretched forth his rod over the land of Egypt, and -the LORD brought an east wind upon the land all that day, and all that -night; and when it was morning, the east wind brought the locusts. - -10:14 And the locust went up over all the land of Egypt, and rested in -all the coasts of Egypt: very grievous were they; before them there -were no such locusts as they, neither after them shall be such. - -10:15 For they covered the face of the whole earth, so that the land -was darkened; and they did eat every herb of the land, and all the -fruit of the trees which the hail had left: and there remained not any -green thing in the trees, or in the herbs of the field, through all -the land of Egypt. - -10:16 Then Pharaoh called for Moses and Aaron in haste; and he said, I -have sinned against the LORD your God, and against you. - -10:17 Now therefore forgive, I pray thee, my sin only this once, and -intreat the LORD your God, that he may take away from me this death -only. - -10:18 And he went out from Pharaoh, and intreated the LORD. - -10:19 And the LORD turned a mighty strong west wind, which took away -the locusts, and cast them into the Red sea; there remained not one -locust in all the coasts of Egypt. - -10:20 But the LORD hardened Pharaoh's heart, so that he would not let -the children of Israel go. - -10:21 And the LORD said unto Moses, Stretch out thine hand toward -heaven, that there may be darkness over the land of Egypt, even -darkness which may be felt. - -10:22 And Moses stretched forth his hand toward heaven; and there was -a thick darkness in all the land of Egypt three days: 10:23 They saw -not one another, neither rose any from his place for three days: but -all the children of Israel had light in their dwellings. - -10:24 And Pharaoh called unto Moses, and said, Go ye, serve the LORD; -only let your flocks and your herds be stayed: let your little ones -also go with you. - -10:25 And Moses said, Thou must give us also sacrifices and burnt -offerings, that we may sacrifice unto the LORD our God. - -10:26 Our cattle also shall go with us; there shall not an hoof be -left behind; for thereof must we take to serve the LORD our God; and -we know not with what we must serve the LORD, until we come thither. - -10:27 But the LORD hardened Pharaoh's heart, and he would not let them -go. - -10:28 And Pharaoh said unto him, Get thee from me, take heed to -thyself, see my face no more; for in that day thou seest my face thou -shalt die. - -10:29 And Moses said, Thou hast spoken well, I will see thy face again -no more. - -11:1 And the LORD said unto Moses, Yet will I bring one plague more -upon Pharaoh, and upon Egypt; afterwards he will let you go hence: -when he shall let you go, he shall surely thrust you out hence -altogether. - -11:2 Speak now in the ears of the people, and let every man borrow of -his neighbour, and every woman of her neighbour, jewels of silver and -jewels of gold. - -11:3 And the LORD gave the people favour in the sight of the -Egyptians. - -Moreover the man Moses was very great in the land of Egypt, in the -sight of Pharaoh's servants, and in the sight of the people. - -11:4 And Moses said, Thus saith the LORD, About midnight will I go out -into the midst of Egypt: 11:5 And all the firstborn in the land of -Egypt shall die, from the first born of Pharaoh that sitteth upon his -throne, even unto the firstborn of the maidservant that is behind the -mill; and all the firstborn of beasts. - -11:6 And there shall be a great cry throughout all the land of Egypt, -such as there was none like it, nor shall be like it any more. - -11:7 But against any of the children of Israel shall not a dog move -his tongue, against man or beast: that ye may know how that the LORD -doth put a difference between the Egyptians and Israel. - -11:8 And all these thy servants shall come down unto me, and bow down -themselves unto me, saying, Get thee out, and all the people that -follow thee: and after that I will go out. And he went out from -Pharaoh in a great anger. - -11:9 And the LORD said unto Moses, Pharaoh shall not hearken unto you; -that my wonders may be multiplied in the land of Egypt. - -11:10 And Moses and Aaron did all these wonders before Pharaoh: and -the LORD hardened Pharaoh's heart, so that he would not let the -children of Israel go out of his land. - -12:1 And the LORD spake unto Moses and Aaron in the land of Egypt -saying, 12:2 This month shall be unto you the beginning of months: it -shall be the first month of the year to you. - -12:3 Speak ye unto all the congregation of Israel, saying, In the -tenth day of this month they shall take to them every man a lamb, -according to the house of their fathers, a lamb for an house: 12:4 And -if the household be too little for the lamb, let him and his neighbour -next unto his house take it according to the number of the souls; -every man according to his eating shall make your count for the lamb. - -12:5 Your lamb shall be without blemish, a male of the first year: ye -shall take it out from the sheep, or from the goats: 12:6 And ye shall -keep it up until the fourteenth day of the same month: and the whole -assembly of the congregation of Israel shall kill it in the evening. - -12:7 And they shall take of the blood, and strike it on the two side -posts and on the upper door post of the houses, wherein they shall eat -it. - -12:8 And they shall eat the flesh in that night, roast with fire, and -unleavened bread; and with bitter herbs they shall eat it. - -12:9 Eat not of it raw, nor sodden at all with water, but roast with -fire; his head with his legs, and with the purtenance thereof. - -12:10 And ye shall let nothing of it remain until the morning; and -that which remaineth of it until the morning ye shall burn with fire. - -12:11 And thus shall ye eat it; with your loins girded, your shoes on -your feet, and your staff in your hand; and ye shall eat it in haste: -it is the LORD's passover. - -12:12 For I will pass through the land of Egypt this night, and will -smite all the firstborn in the land of Egypt, both man and beast; and -against all the gods of Egypt I will execute judgment: I am the LORD. - -12:13 And the blood shall be to you for a token upon the houses where -ye are: and when I see the blood, I will pass over you, and the plague -shall not be upon you to destroy you, when I smite the land of Egypt. - -12:14 And this day shall be unto you for a memorial; and ye shall keep -it a feast to the LORD throughout your generations; ye shall keep it a -feast by an ordinance for ever. - -12:15 Seven days shall ye eat unleavened bread; even the first day ye -shall put away leaven out of your houses: for whosoever eateth -leavened bread from the first day until the seventh day, that soul -shall be cut off from Israel. - -12:16 And in the first day there shall be an holy convocation, and in -the seventh day there shall be an holy convocation to you; no manner -of work shall be done in them, save that which every man must eat, -that only may be done of you. - -12:17 And ye shall observe the feast of unleavened bread; for in this -selfsame day have I brought your armies out of the land of Egypt: -therefore shall ye observe this day in your generations by an -ordinance for ever. - -12:18 In the first month, on the fourteenth day of the month at even, -ye shall eat unleavened bread, until the one and twentieth day of the -month at even. - -12:19 Seven days shall there be no leaven found in your houses: for -whosoever eateth that which is leavened, even that soul shall be cut -off from the congregation of Israel, whether he be a stranger, or born -in the land. - -12:20 Ye shall eat nothing leavened; in all your habitations shall ye -eat unleavened bread. - -12:21 Then Moses called for all the elders of Israel, and said unto -them, Draw out and take you a lamb according to your families, and -kill the passover. - -12:22 And ye shall take a bunch of hyssop, and dip it in the blood -that is in the bason, and strike the lintel and the two side posts -with the blood that is in the bason; and none of you shall go out at -the door of his house until the morning. - -12:23 For the LORD will pass through to smite the Egyptians; and when -he seeth the blood upon the lintel, and on the two side posts, the -LORD will pass over the door, and will not suffer the destroyer to -come in unto your houses to smite you. - -12:24 And ye shall observe this thing for an ordinance to thee and to -thy sons for ever. - -12:25 And it shall come to pass, when ye be come to the land which the -LORD will give you, according as he hath promised, that ye shall keep -this service. - -12:26 And it shall come to pass, when your children shall say unto -you, What mean ye by this service? 12:27 That ye shall say, It is the -sacrifice of the LORD's passover, who passed over the houses of the -children of Israel in Egypt, when he smote the Egyptians, and -delivered our houses. And the people bowed the head and worshipped. - -12:28 And the children of Israel went away, and did as the LORD had -commanded Moses and Aaron, so did they. - -12:29 And it came to pass, that at midnight the LORD smote all the -firstborn in the land of Egypt, from the firstborn of Pharaoh that sat -on his throne unto the firstborn of the captive that was in the -dungeon; and all the firstborn of cattle. - -12:30 And Pharaoh rose up in the night, he, and all his servants, and -all the Egyptians; and there was a great cry in Egypt; for there was -not a house where there was not one dead. - -12:31 And he called for Moses and Aaron by night, and said, Rise up, -and get you forth from among my people, both ye and the children of -Israel; and go, serve the LORD, as ye have said. - -12:32 Also take your flocks and your herds, as ye have said, and be -gone; and bless me also. - -12:33 And the Egyptians were urgent upon the people, that they might -send them out of the land in haste; for they said, We be all dead men. - -12:34 And the people took their dough before it was leavened, their -kneadingtroughs being bound up in their clothes upon their shoulders. - -12:35 And the children of Israel did according to the word of Moses; -and they borrowed of the Egyptians jewels of silver, and jewels of -gold, and raiment: 12:36 And the LORD gave the people favour in the -sight of the Egyptians, so that they lent unto them such things as -they required. And they spoiled the Egyptians. - -12:37 And the children of Israel journeyed from Rameses to Succoth, -about six hundred thousand on foot that were men, beside children. - -12:38 And a mixed multitude went up also with them; and flocks, and -herds, even very much cattle. - -12:39 And they baked unleavened cakes of the dough which they brought -forth out of Egypt, for it was not leavened; because they were thrust -out of Egypt, and could not tarry, neither had they prepared for -themselves any victual. - -12:40 Now the sojourning of the children of Israel, who dwelt in -Egypt, was four hundred and thirty years. - -12:41 And it came to pass at the end of the four hundred and thirty -years, even the selfsame day it came to pass, that all the hosts of -the LORD went out from the land of Egypt. - -12:42 It is a night to be much observed unto the LORD for bringing -them out from the land of Egypt: this is that night of the LORD to be -observed of all the children of Israel in their generations. - -12:43 And the LORD said unto Moses and Aaron, This is the ordinance of -the passover: There shall no stranger eat thereof: 12:44 But every -man's servant that is bought for money, when thou hast circumcised -him, then shall he eat thereof. - -12:45 A foreigner and an hired servant shall not eat thereof. - -12:46 In one house shall it be eaten; thou shalt not carry forth ought -of the flesh abroad out of the house; neither shall ye break a bone -thereof. - -12:47 All the congregation of Israel shall keep it. - -12:48 And when a stranger shall sojourn with thee, and will keep the -passover to the LORD, let all his males be circumcised, and then let -him come near and keep it; and he shall be as one that is born in the -land: for no uncircumcised person shall eat thereof. - -12:49 One law shall be to him that is homeborn, and unto the stranger -that sojourneth among you. - -12:50 Thus did all the children of Israel; as the LORD commanded Moses -and Aaron, so did they. - -12:51 And it came to pass the selfsame day, that the LORD did bring -the children of Israel out of the land of Egypt by their armies. - -13:1 And the LORD spake unto Moses, saying, 13:2 Sanctify unto me all -the firstborn, whatsoever openeth the womb among the children of -Israel, both of man and of beast: it is mine. - -13:3 And Moses said unto the people, Remember this day, in which ye -came out from Egypt, out of the house of bondage; for by strength of -hand the LORD brought you out from this place: there shall no leavened -bread be eaten. - -13:4 This day came ye out in the month Abib. - -13:5 And it shall be when the LORD shall bring thee into the land of -the Canaanites, and the Hittites, and the Amorites, and the Hivites, -and the Jebusites, which he sware unto thy fathers to give thee, a -land flowing with milk and honey, that thou shalt keep this service in -this month. - -13:6 Seven days thou shalt eat unleavened bread, and in the seventh -day shall be a feast to the LORD. - -13:7 Unleavened bread shall be eaten seven days; and there shall no -leavened bread be seen with thee, neither shall there be leaven seen -with thee in all thy quarters. - -13:8 And thou shalt shew thy son in that day, saying, This is done -because of that which the LORD did unto me when I came forth out of -Egypt. - -13:9 And it shall be for a sign unto thee upon thine hand, and for a -memorial between thine eyes, that the LORD's law may be in thy mouth: -for with a strong hand hath the LORD brought thee out of Egypt. - -13:10 Thou shalt therefore keep this ordinance in his season from year -to year. - -13:11 And it shall be when the LORD shall bring thee into the land of -the Canaanites, as he sware unto thee and to thy fathers, and shall -give it thee, 13:12 That thou shalt set apart unto the LORD all that -openeth the matrix, and every firstling that cometh of a beast which -thou hast; the males shall be the LORD's. - -13:13 And every firstling of an ass thou shalt redeem with a lamb; and -if thou wilt not redeem it, then thou shalt break his neck: and all -the firstborn of man among thy children shalt thou redeem. - -13:14 And it shall be when thy son asketh thee in time to come, -saying, What is this? that thou shalt say unto him, By strength of -hand the LORD brought us out from Egypt, from the house of bondage: -13:15 And it came to pass, when Pharaoh would hardly let us go, that -the LORD slew all the firstborn in the land of Egypt, both the -firstborn of man, and the firstborn of beast: therefore I sacrifice to -the LORD all that openeth the matrix, being males; but all the -firstborn of my children I redeem. - -13:16 And it shall be for a token upon thine hand, and for frontlets -between thine eyes: for by strength of hand the LORD brought us forth -out of Egypt. - -13:17 And it came to pass, when Pharaoh had let the people go, that -God led them not through the way of the land of the Philistines, -although that was near; for God said, Lest peradventure the people -repent when they see war, and they return to Egypt: 13:18 But God led -the people about, through the way of the wilderness of the Red sea: -and the children of Israel went up harnessed out of the land of Egypt. - -13:19 And Moses took the bones of Joseph with him: for he had straitly -sworn the children of Israel, saying, God will surely visit you; and -ye shall carry up my bones away hence with you. - -13:20 And they took their journey from Succoth, and encamped in Etham, -in the edge of the wilderness. - -13:21 And the LORD went before them by day in a pillar of a cloud, to -lead them the way; and by night in a pillar of fire, to give them -light; to go by day and night: 13:22 He took not away the pillar of -the cloud by day, nor the pillar of fire by night, from before the -people. - -14:1 And the LORD spake unto Moses, saying, 14:2 Speak unto the -children of Israel, that they turn and encamp before Pihahiroth, -between Migdol and the sea, over against Baalzephon: before it shall -ye encamp by the sea. - -14:3 For Pharaoh will say of the children of Israel, They are -entangled in the land, the wilderness hath shut them in. - -14:4 And I will harden Pharaoh's heart, that he shall follow after -them; and I will be honoured upon Pharaoh, and upon all his host; that -the Egyptians may know that I am the LORD. And they did so. - -14:5 And it was told the king of Egypt that the people fled: and the -heart of Pharaoh and of his servants was turned against the people, -and they said, Why have we done this, that we have let Israel go from -serving us? 14:6 And he made ready his chariot, and took his people -with him: 14:7 And he took six hundred chosen chariots, and all the -chariots of Egypt, and captains over every one of them. - -14:8 And the LORD hardened the heart of Pharaoh king of Egypt, and he -pursued after the children of Israel: and the children of Israel went -out with an high hand. - -14:9 But the Egyptians pursued after them, all the horses and chariots -of Pharaoh, and his horsemen, and his army, and overtook them -encamping by the sea, beside Pihahiroth, before Baalzephon. - -14:10 And when Pharaoh drew nigh, the children of Israel lifted up -their eyes, and, behold, the Egyptians marched after them; and they -were sore afraid: and the children of Israel cried out unto the LORD. - -14:11 And they said unto Moses, Because there were no graves in Egypt, -hast thou taken us away to die in the wilderness? wherefore hast thou -dealt thus with us, to carry us forth out of Egypt? 14:12 Is not this -the word that we did tell thee in Egypt, saying, Let us alone, that we -may serve the Egyptians? For it had been better for us to serve the -Egyptians, than that we should die in the wilderness. - -14:13 And Moses said unto the people, Fear ye not, stand still, and -see the salvation of the LORD, which he will shew to you to day: for -the Egyptians whom ye have seen to day, ye shall see them again no -more for ever. - -14:14 The LORD shall fight for you, and ye shall hold your peace. - -14:15 And the LORD said unto Moses, Wherefore criest thou unto me? -speak unto the children of Israel, that they go forward: 14:16 But -lift thou up thy rod, and stretch out thine hand over the sea, and -divide it: and the children of Israel shall go on dry ground through -the midst of the sea. - -14:17 And I, behold, I will harden the hearts of the Egyptians, and -they shall follow them: and I will get me honour upon Pharaoh, and -upon all his host, upon his chariots, and upon his horsemen. - -14:18 And the Egyptians shall know that I am the LORD, when I have -gotten me honour upon Pharaoh, upon his chariots, and upon his -horsemen. - -14:19 And the angel of God, which went before the camp of Israel, -removed and went behind them; and the pillar of the cloud went from -before their face, and stood behind them: 14:20 And it came between -the camp of the Egyptians and the camp of Israel; and it was a cloud -and darkness to them, but it gave light by night to these: so that the -one came not near the other all the night. - -14:21 And Moses stretched out his hand over the sea; and the LORD -caused the sea to go back by a strong east wind all that night, and -made the sea dry land, and the waters were divided. - -14:22 And the children of Israel went into the midst of the sea upon -the dry ground: and the waters were a wall unto them on their right -hand, and on their left. - -14:23 And the Egyptians pursued, and went in after them to the midst -of the sea, even all Pharaoh's horses, his chariots, and his horsemen. - -14:24 And it came to pass, that in the morning watch the LORD looked -unto the host of the Egyptians through the pillar of fire and of the -cloud, and troubled the host of the Egyptians, 14:25 And took off -their chariot wheels, that they drave them heavily: so that the -Egyptians said, Let us flee from the face of Israel; for the LORD -fighteth for them against the Egyptians. - -14:26 And the LORD said unto Moses, Stretch out thine hand over the -sea, that the waters may come again upon the Egyptians, upon their -chariots, and upon their horsemen. - -14:27 And Moses stretched forth his hand over the sea, and the sea -returned to his strength when the morning appeared; and the Egyptians -fled against it; and the LORD overthrew the Egyptians in the midst of -the sea. - -14:28 And the waters returned, and covered the chariots, and the -horsemen, and all the host of Pharaoh that came into the sea after -them; there remained not so much as one of them. - -14:29 But the children of Israel walked upon dry land in the midst of -the sea; and the waters were a wall unto them on their right hand, and -on their left. - -14:30 Thus the LORD saved Israel that day out of the hand of the -Egyptians; and Israel saw the Egyptians dead upon the sea shore. - -14:31 And Israel saw that great work which the LORD did upon the -Egyptians: and the people feared the LORD, and believed the LORD, and -his servant Moses. - -15:1 Then sang Moses and the children of Israel this song unto the -LORD, and spake, saying, I will sing unto the LORD, for he hath -triumphed gloriously: the horse and his rider hath he thrown into the -sea. - -15:2 The LORD is my strength and song, and he is become my salvation: -he is my God, and I will prepare him an habitation; my father's God, -and I will exalt him. - -15:3 The LORD is a man of war: the LORD is his name. - -15:4 Pharaoh's chariots and his host hath he cast into the sea: his -chosen captains also are drowned in the Red sea. - -15:5 The depths have covered them: they sank into the bottom as a -stone. - -15:6 Thy right hand, O LORD, is become glorious in power: thy right -hand, O LORD, hath dashed in pieces the enemy. - -15:7 And in the greatness of thine excellency thou hast overthrown -them that rose up against thee: thou sentest forth thy wrath, which -consumed them as stubble. - -15:8 And with the blast of thy nostrils the waters were gathered -together, the floods stood upright as an heap, and the depths were -congealed in the heart of the sea. - -15:9 The enemy said, I will pursue, I will overtake, I will divide the -spoil; my lust shall be satisfied upon them; I will draw my sword, my -hand shall destroy them. - -15:10 Thou didst blow with thy wind, the sea covered them: they sank -as lead in the mighty waters. - -15:11 Who is like unto thee, O LORD, among the gods? who is like thee, -glorious in holiness, fearful in praises, doing wonders? 15:12 Thou -stretchedst out thy right hand, the earth swallowed them. - -15:13 Thou in thy mercy hast led forth the people which thou hast -redeemed: thou hast guided them in thy strength unto thy holy -habitation. - -15:14 The people shall hear, and be afraid: sorrow shall take hold on -the inhabitants of Palestina. - -15:15 Then the dukes of Edom shall be amazed; the mighty men of Moab, -trembling shall take hold upon them; all the inhabitants of Canaan -shall melt away. - -15:16 Fear and dread shall fall upon them; by the greatness of thine -arm they shall be as still as a stone; till thy people pass over, O -LORD, till the people pass over, which thou hast purchased. - -15:17 Thou shalt bring them in, and plant them in the mountain of -thine inheritance, in the place, O LORD, which thou hast made for thee -to dwell in, in the Sanctuary, O LORD, which thy hands have -established. - -15:18 The LORD shall reign for ever and ever. - -15:19 For the horse of Pharaoh went in with his chariots and with his -horsemen into the sea, and the LORD brought again the waters of the -sea upon them; but the children of Israel went on dry land in the -midst of the sea. - -15:20 And Miriam the prophetess, the sister of Aaron, took a timbrel -in her hand; and all the women went out after her with timbrels and -with dances. - -15:21 And Miriam answered them, Sing ye to the LORD, for he hath -triumphed gloriously; the horse and his rider hath he thrown into the -sea. - -15:22 So Moses brought Israel from the Red sea, and they went out into -the wilderness of Shur; and they went three days in the wilderness, -and found no water. - -15:23 And when they came to Marah, they could not drink of the waters -of Marah, for they were bitter: therefore the name of it was called -Marah. - -15:24 And the people murmured against Moses, saying, What shall we -drink? 15:25 And he cried unto the LORD; and the LORD shewed him a -tree, which when he had cast into the waters, the waters were made -sweet: there he made for them a statute and an ordinance, and there he -proved them, 15:26 And said, If thou wilt diligently hearken to the -voice of the LORD thy God, and wilt do that which is right in his -sight, and wilt give ear to his commandments, and keep all his -statutes, I will put none of these diseases upon thee, which I have -brought upon the Egyptians: for I am the LORD that healeth thee. - -15:27 And they came to Elim, where were twelve wells of water, and -threescore and ten palm trees: and they encamped there by the waters. - -16:1 And they took their journey from Elim, and all the congregation -of the children of Israel came unto the wilderness of Sin, which is -between Elim and Sinai, on the fifteenth day of the second month after -their departing out of the land of Egypt. - -16:2 And the whole congregation of the children of Israel murmured -against Moses and Aaron in the wilderness: 16:3 And the children of -Israel said unto them, Would to God we had died by the hand of the -LORD in the land of Egypt, when we sat by the flesh pots, and when we -did eat bread to the full; for ye have brought us forth into this -wilderness, to kill this whole assembly with hunger. - -16:4 Then said the LORD unto Moses, Behold, I will rain bread from -heaven for you; and the people shall go out and gather a certain rate -every day, that I may prove them, whether they will walk in my law, or -no. - -16:5 And it shall come to pass, that on the sixth day they shall -prepare that which they bring in; and it shall be twice as much as -they gather daily. - -16:6 And Moses and Aaron said unto all the children of Israel, At -even, then ye shall know that the LORD hath brought you out from the -land of Egypt: 16:7 And in the morning, then ye shall see the glory of -the LORD; for that he heareth your murmurings against the LORD: and -what are we, that ye murmur against us? 16:8 And Moses said, This -shall be, when the LORD shall give you in the evening flesh to eat, -and in the morning bread to the full; for that the LORD heareth your -murmurings which ye murmur against him: and what are we? your -murmurings are not against us, but against the LORD. - -16:9 And Moses spake unto Aaron, Say unto all the congregation of the -children of Israel, Come near before the LORD: for he hath heard your -murmurings. - -16:10 And it came to pass, as Aaron spake unto the whole congregation -of the children of Israel, that they looked toward the wilderness, -and, behold, the glory of the LORD appeared in the cloud. - -16:11 And the LORD spake unto Moses, saying, 16:12 I have heard the -murmurings of the children of Israel: speak unto them, saying, At even -ye shall eat flesh, and in the morning ye shall be filled with bread; -and ye shall know that I am the LORD your God. - -16:13 And it came to pass, that at even the quails came up, and -covered the camp: and in the morning the dew lay round about the host. - -16:14 And when the dew that lay was gone up, behold, upon the face of -the wilderness there lay a small round thing, as small as the hoar -frost on the ground. - -16:15 And when the children of Israel saw it, they said one to -another, It is manna: for they wist not what it was. And Moses said -unto them, This is the bread which the LORD hath given you to eat. - -16:16 This is the thing which the LORD hath commanded, Gather of it -every man according to his eating, an omer for every man, according to -the number of your persons; take ye every man for them which are in -his tents. - -16:17 And the children of Israel did so, and gathered, some more, some -less. - -16:18 And when they did mete it with an omer, he that gathered much -had nothing over, and he that gathered little had no lack; they -gathered every man according to his eating. - -16:19 And Moses said, Let no man leave of it till the morning. - -16:20 Notwithstanding they hearkened not unto Moses; but some of them -left of it until the morning, and it bred worms, and stank: and Moses -was wroth with them. - -16:21 And they gathered it every morning, every man according to his -eating: and when the sun waxed hot, it melted. - -16:22 And it came to pass, that on the sixth day they gathered twice -as much bread, two omers for one man: and all the rulers of the -congregation came and told Moses. - -16:23 And he said unto them, This is that which the LORD hath said, To -morrow is the rest of the holy sabbath unto the LORD: bake that which -ye will bake to day, and seethe that ye will seethe; and that which -remaineth over lay up for you to be kept until the morning. - -16:24 And they laid it up till the morning, as Moses bade: and it did -not stink, neither was there any worm therein. - -16:25 And Moses said, Eat that to day; for to day is a sabbath unto -the LORD: to day ye shall not find it in the field. - -16:26 Six days ye shall gather it; but on the seventh day, which is -the sabbath, in it there shall be none. - -16:27 And it came to pass, that there went out some of the people on -the seventh day for to gather, and they found none. - -16:28 And the LORD said unto Moses, How long refuse ye to keep my -commandments and my laws? 16:29 See, for that the LORD hath given you -the sabbath, therefore he giveth you on the sixth day the bread of two -days; abide ye every man in his place, let no man go out of his place -on the seventh day. - -16:30 So the people rested on the seventh day. - -16:31 And the house of Israel called the name thereof Manna: and it -was like coriander seed, white; and the taste of it was like wafers -made with honey. - -16:32 And Moses said, This is the thing which the LORD commandeth, -Fill an omer of it to be kept for your generations; that they may see -the bread wherewith I have fed you in the wilderness, when I brought -you forth from the land of Egypt. - -16:33 And Moses said unto Aaron, Take a pot, and put an omer full of -manna therein, and lay it up before the LORD, to be kept for your -generations. - -16:34 As the LORD commanded Moses, so Aaron laid it up before the -Testimony, to be kept. - -16:35 And the children of Israel did eat manna forty years, until they -came to a land inhabited; they did eat manna, until they came unto the -borders of the land of Canaan. - -16:36 Now an omer is the tenth part of an ephah. - -17:1 And all the congregation of the children of Israel journeyed from -the wilderness of Sin, after their journeys, according to the -commandment of the LORD, and pitched in Rephidim: and there was no -water for the people to drink. - -17:2 Wherefore the people did chide with Moses, and said, Give us -water that we may drink. And Moses said unto them, Why chide ye with -me? wherefore do ye tempt the LORD? 17:3 And the people thirsted -there for water; and the people murmured against Moses, and said, -Wherefore is this that thou hast brought us up out of Egypt, to kill -us and our children and our cattle with thirst? 17:4 And Moses cried -unto the LORD, saying, What shall I do unto this people? they be -almost ready to stone me. - -17:5 And the LORD said unto Moses, Go on before the people, and take -with thee of the elders of Israel; and thy rod, wherewith thou smotest -the river, take in thine hand, and go. - -17:6 Behold, I will stand before thee there upon the rock in Horeb; -and thou shalt smite the rock, and there shall come water out of it, -that the people may drink. And Moses did so in the sight of the elders -of Israel. - -17:7 And he called the name of the place Massah, and Meribah, because -of the chiding of the children of Israel, and because they tempted the -LORD, saying, Is the LORD among us, or not? 17:8 Then came Amalek, -and fought with Israel in Rephidim. - -17:9 And Moses said unto Joshua, Choose us out men, and go out, fight -with Amalek: to morrow I will stand on the top of the hill with the -rod of God in mine hand. - -17:10 So Joshua did as Moses had said to him, and fought with Amalek: -and Moses, Aaron, and Hur went up to the top of the hill. - -17:11 And it came to pass, when Moses held up his hand, that Israel -prevailed: and when he let down his hand, Amalek prevailed. - -17:12 But Moses hands were heavy; and they took a stone, and put it -under him, and he sat thereon; and Aaron and Hur stayed up his hands, -the one on the one side, and the other on the other side; and his -hands were steady until the going down of the sun. - -17:13 And Joshua discomfited Amalek and his people with the edge of -the sword. - -17:14 And the LORD said unto Moses, Write this for a memorial in a -book, and rehearse it in the ears of Joshua: for I will utterly put -out the remembrance of Amalek from under heaven. - -17:15 And Moses built an altar, and called the name of it -Jehovahnissi: 17:16 For he said, Because the LORD hath sworn that the -LORD will have war with Amalek from generation to generation. - -18:1 When Jethro, the priest of Midian, Moses' father in law, heard of -all that God had done for Moses, and for Israel his people, and that -the LORD had brought Israel out of Egypt; 18:2 Then Jethro, Moses' -father in law, took Zipporah, Moses' wife, after he had sent her back, -18:3 And her two sons; of which the name of the one was Gershom; for -he said, I have been an alien in a strange land: 18:4 And the name of -the other was Eliezer; for the God of my father, said he, was mine -help, and delivered me from the sword of Pharaoh: 18:5 And Jethro, -Moses' father in law, came with his sons and his wife unto Moses into -the wilderness, where he encamped at the mount of God: 18:6 And he -said unto Moses, I thy father in law Jethro am come unto thee, and thy -wife, and her two sons with her. - -18:7 And Moses went out to meet his father in law, and did obeisance, -and kissed him; and they asked each other of their welfare; and they -came into the tent. - -18:8 And Moses told his father in law all that the LORD had done unto -Pharaoh and to the Egyptians for Israel's sake, and all the travail -that had come upon them by the way, and how the LORD delivered them. - -18:9 And Jethro rejoiced for all the goodness which the LORD had done -to Israel, whom he had delivered out of the hand of the Egyptians. - -18:10 And Jethro said, Blessed be the LORD, who hath delivered you out -of the hand of the Egyptians, and out of the hand of Pharaoh, who hath -delivered the people from under the hand of the Egyptians. - -18:11 Now I know that the LORD is greater than all gods: for in the -thing wherein they dealt proudly he was above them. - -18:12 And Jethro, Moses' father in law, took a burnt offering and -sacrifices for God: and Aaron came, and all the elders of Israel, to -eat bread with Moses' father in law before God. - -18:13 And it came to pass on the morrow, that Moses sat to judge the -people: and the people stood by Moses from the morning unto the -evening. - -18:14 And when Moses' father in law saw all that he did to the people, -he said, What is this thing that thou doest to the people? why sittest -thou thyself alone, and all the people stand by thee from morning unto -even? 18:15 And Moses said unto his father in law, Because the people -come unto me to enquire of God: 18:16 When they have a matter, they -come unto me; and I judge between one and another, and I do make them -know the statutes of God, and his laws. - -18:17 And Moses' father in law said unto him, The thing that thou -doest is not good. - -18:18 Thou wilt surely wear away, both thou, and this people that is -with thee: for this thing is too heavy for thee; thou art not able to -perform it thyself alone. - -18:19 Hearken now unto my voice, I will give thee counsel, and God -shall be with thee: Be thou for the people to God-ward, that thou -mayest bring the causes unto God: 18:20 And thou shalt teach them -ordinances and laws, and shalt shew them the way wherein they must -walk, and the work that they must do. - -18:21 Moreover thou shalt provide out of all the people able men, such -as fear God, men of truth, hating covetousness; and place such over -them, to be rulers of thousands, and rulers of hundreds, rulers of -fifties, and rulers of tens: 18:22 And let them judge the people at -all seasons: and it shall be, that every great matter they shall bring -unto thee, but every small matter they shall judge: so shall it be -easier for thyself, and they shall bear the burden with thee. - -18:23 If thou shalt do this thing, and God command thee so, then thou -shalt be able to endure, and all this people shall also go to their -place in peace. - -18:24 So Moses hearkened to the voice of his father in law, and did -all that he had said. - -18:25 And Moses chose able men out of all Israel, and made them heads -over the people, rulers of thousands, rulers of hundreds, rulers of -fifties, and rulers of tens. - -18:26 And they judged the people at all seasons: the hard causes they -brought unto Moses, but every small matter they judged themselves. - -18:27 And Moses let his father in law depart; and he went his way into -his own land. - -19:1 In the third month, when the children of Israel were gone forth -out of the land of Egypt, the same day came they into the wilderness -of Sinai. - -19:2 For they were departed from Rephidim, and were come to the desert -of Sinai, and had pitched in the wilderness; and there Israel camped -before the mount. - -19:3 And Moses went up unto God, and the LORD called unto him out of -the mountain, saying, Thus shalt thou say to the house of Jacob, and -tell the children of Israel; 19:4 Ye have seen what I did unto the -Egyptians, and how I bare you on eagles' wings, and brought you unto -myself. - -19:5 Now therefore, if ye will obey my voice indeed, and keep my -covenant, then ye shall be a peculiar treasure unto me above all -people: for all the earth is mine: 19:6 And ye shall be unto me a -kingdom of priests, and an holy nation. - -These are the words which thou shalt speak unto the children of -Israel. - -19:7 And Moses came and called for the elders of the people, and laid -before their faces all these words which the LORD commanded him. - -19:8 And all the people answered together, and said, All that the LORD -hath spoken we will do. And Moses returned the words of the people -unto the LORD. - -19:9 And the LORD said unto Moses, Lo, I come unto thee in a thick -cloud, that the people may hear when I speak with thee, and believe -thee for ever. - -And Moses told the words of the people unto the LORD. - -19:10 And the LORD said unto Moses, Go unto the people, and sanctify -them to day and to morrow, and let them wash their clothes, 19:11 And -be ready against the third day: for the third day the LORD will come -down in the sight of all the people upon mount Sinai. - -19:12 And thou shalt set bounds unto the people round about, saying, -Take heed to yourselves, that ye go not up into the mount, or touch -the border of it: whosoever toucheth the mount shall be surely put to -death: 19:13 There shall not an hand touch it, but he shall surely be -stoned, or shot through; whether it be beast or man, it shall not -live: when the trumpet soundeth long, they shall come up to the mount. - -19:14 And Moses went down from the mount unto the people, and -sanctified the people; and they washed their clothes. - -19:15 And he said unto the people, Be ready against the third day: -come not at your wives. - -19:16 And it came to pass on the third day in the morning, that there -were thunders and lightnings, and a thick cloud upon the mount, and -the voice of the trumpet exceeding loud; so that all the people that -was in the camp trembled. - -19:17 And Moses brought forth the people out of the camp to meet with -God; and they stood at the nether part of the mount. - -19:18 And mount Sinai was altogether on a smoke, because the LORD -descended upon it in fire: and the smoke thereof ascended as the smoke -of a furnace, and the whole mount quaked greatly. - -19:19 And when the voice of the trumpet sounded long, and waxed louder -and louder, Moses spake, and God answered him by a voice. - -19:20 And the LORD came down upon mount Sinai, on the top of the -mount: and the LORD called Moses up to the top of the mount; and Moses -went up. - -19:21 And the LORD said unto Moses, Go down, charge the people, lest -they break through unto the LORD to gaze, and many of them perish. - -19:22 And let the priests also, which come near to the LORD, sanctify -themselves, lest the LORD break forth upon them. - -19:23 And Moses said unto the LORD, The people cannot come up to mount -Sinai: for thou chargedst us, saying, Set bounds about the mount, and -sanctify it. - -19:24 And the LORD said unto him, Away, get thee down, and thou shalt -come up, thou, and Aaron with thee: but let not the priests and the -people break through to come up unto the LORD, lest he break forth -upon them. - -19:25 So Moses went down unto the people, and spake unto them. - -20:1 And God spake all these words, saying, 20:2 I am the LORD thy -God, which have brought thee out of the land of Egypt, out of the -house of bondage. - -20:3 Thou shalt have no other gods before me. - -20:4 Thou shalt not make unto thee any graven image, or any likeness -of any thing that is in heaven above, or that is in the earth beneath, -or that is in the water under the earth. - -20:5 Thou shalt not bow down thyself to them, nor serve them: for I -the LORD thy God am a jealous God, visiting the iniquity of the -fathers upon the children unto the third and fourth generation of them -that hate me; 20:6 And shewing mercy unto thousands of them that love -me, and keep my commandments. - -20:7 Thou shalt not take the name of the LORD thy God in vain; for the -LORD will not hold him guiltless that taketh his name in vain. - -20:8 Remember the sabbath day, to keep it holy. - -20:9 Six days shalt thou labour, and do all thy work: 20:10 But the -seventh day is the sabbath of the LORD thy God: in it thou shalt not -do any work, thou, nor thy son, nor thy daughter, thy manservant, nor -thy maidservant, nor thy cattle, nor thy stranger that is within thy -gates: 20:11 For in six days the LORD made heaven and earth, the sea, -and all that in them is, and rested the seventh day: wherefore the -LORD blessed the sabbath day, and hallowed it. - -20:12 Honour thy father and thy mother: that thy days may be long upon -the land which the LORD thy God giveth thee. - -20:13 Thou shalt not kill. - -20:14 Thou shalt not commit adultery. - -20:15 Thou shalt not steal. - -20:16 Thou shalt not bear false witness against thy neighbour. - -20:17 Thou shalt not covet thy neighbour's house, thou shalt not covet -thy neighbour's wife, nor his manservant, nor his maidservant, nor his -ox, nor his ass, nor any thing that is thy neighbour's. - -20:18 And all the people saw the thunderings, and the lightnings, and -the noise of the trumpet, and the mountain smoking: and when the -people saw it, they removed, and stood afar off. - -20:19 And they said unto Moses, Speak thou with us, and we will hear: -but let not God speak with us, lest we die. - -20:20 And Moses said unto the people, Fear not: for God is come to -prove you, and that his fear may be before your faces, that ye sin -not. - -20:21 And the people stood afar off, and Moses drew near unto the -thick darkness where God was. - -20:22 And the LORD said unto Moses, Thus thou shalt say unto the -children of Israel, Ye have seen that I have talked with you from -heaven. - -20:23 Ye shall not make with me gods of silver, neither shall ye make -unto you gods of gold. - -20:24 An altar of earth thou shalt make unto me, and shalt sacrifice -thereon thy burnt offerings, and thy peace offerings, thy sheep, and -thine oxen: in all places where I record my name I will come unto -thee, and I will bless thee. - -20:25 And if thou wilt make me an altar of stone, thou shalt not build -it of hewn stone: for if thou lift up thy tool upon it, thou hast -polluted it. - -20:26 Neither shalt thou go up by steps unto mine altar, that thy -nakedness be not discovered thereon. - -21:1 Now these are the judgments which thou shalt set before them. - -21:2 If thou buy an Hebrew servant, six years he shall serve: and in -the seventh he shall go out free for nothing. - -21:3 If he came in by himself, he shall go out by himself: if he were -married, then his wife shall go out with him. - -21:4 If his master have given him a wife, and she have born him sons -or daughters; the wife and her children shall be her master's, and he -shall go out by himself. - -21:5 And if the servant shall plainly say, I love my master, my wife, -and my children; I will not go out free: 21:6 Then his master shall -bring him unto the judges; he shall also bring him to the door, or -unto the door post; and his master shall bore his ear through with an -aul; and he shall serve him for ever. - -21:7 And if a man sell his daughter to be a maidservant, she shall not -go out as the menservants do. - -21:8 If she please not her master, who hath betrothed her to himself, -then shall he let her be redeemed: to sell her unto a strange nation -he shall have no power, seeing he hath dealt deceitfully with her. - -21:9 And if he have betrothed her unto his son, he shall deal with her -after the manner of daughters. - -21:10 If he take him another wife; her food, her raiment, and her duty -of marriage, shall he not diminish. - -21:11 And if he do not these three unto her, then shall she go out -free without money. - -21:12 He that smiteth a man, so that he die, shall be surely put to -death. - -21:13 And if a man lie not in wait, but God deliver him into his hand; -then I will appoint thee a place whither he shall flee. - -21:14 But if a man come presumptuously upon his neighbour, to slay him -with guile; thou shalt take him from mine altar, that he may die. - -21:15 And he that smiteth his father, or his mother, shall be surely -put to death. - -21:16 And he that stealeth a man, and selleth him, or if he be found -in his hand, he shall surely be put to death. - -21:17 And he that curseth his father, or his mother, shall surely be -put to death. - -21:18 And if men strive together, and one smite another with a stone, -or with his fist, and he die not, but keepeth his bed: 21:19 If he -rise again, and walk abroad upon his staff, then shall he that smote -him be quit: only he shall pay for the loss of his time, and shall -cause him to be thoroughly healed. - -21:20 And if a man smite his servant, or his maid, with a rod, and he -die under his hand; he shall be surely punished. - -21:21 Notwithstanding, if he continue a day or two, he shall not be -punished: for he is his money. - -21:22 If men strive, and hurt a woman with child, so that her fruit -depart from her, and yet no mischief follow: he shall be surely -punished, according as the woman's husband will lay upon him; and he -shall pay as the judges determine. - -21:23 And if any mischief follow, then thou shalt give life for life, -21:24 Eye for eye, tooth for tooth, hand for hand, foot for foot, -21:25 Burning for burning, wound for wound, stripe for stripe. - -21:26 And if a man smite the eye of his servant, or the eye of his -maid, that it perish; he shall let him go free for his eye's sake. - -21:27 And if he smite out his manservant's tooth, or his maidservant's -tooth; he shall let him go free for his tooth's sake. - -21:28 If an ox gore a man or a woman, that they die: then the ox shall -be surely stoned, and his flesh shall not be eaten; but the owner of -the ox shall be quit. - -21:29 But if the ox were wont to push with his horn in time past, and -it hath been testified to his owner, and he hath not kept him in, but -that he hath killed a man or a woman; the ox shall be stoned, and his -owner also shall be put to death. - -21:30 If there be laid on him a sum of money, then he shall give for -the ransom of his life whatsoever is laid upon him. - -21:31 Whether he have gored a son, or have gored a daughter, according -to this judgment shall it be done unto him. - -21:32 If the ox shall push a manservant or a maidservant; he shall -give unto their master thirty shekels of silver, and the ox shall be -stoned. - -21:33 And if a man shall open a pit, or if a man shall dig a pit, and -not cover it, and an ox or an ass fall therein; 21:34 The owner of the -pit shall make it good, and give money unto the owner of them; and the -dead beast shall be his. - -21:35 And if one man's ox hurt another's, that he die; then they shall -sell the live ox, and divide the money of it; and the dead ox also -they shall divide. - -21:36 Or if it be known that the ox hath used to push in time past, -and his owner hath not kept him in; he shall surely pay ox for ox; and -the dead shall be his own. - -22:1 If a man shall steal an ox, or a sheep, and kill it, or sell it; -he shall restore five oxen for an ox, and four sheep for a sheep. - -22:2 If a thief be found breaking up, and be smitten that he die, -there shall no blood be shed for him. - -22:3 If the sun be risen upon him, there shall be blood shed for him; -for he should make full restitution; if he have nothing, then he shall -be sold for his theft. - -22:4 If the theft be certainly found in his hand alive, whether it be -ox, or ass, or sheep; he shall restore double. - -22:5 If a man shall cause a field or vineyard to be eaten, and shall -put in his beast, and shall feed in another man's field; of the best -of his own field, and of the best of his own vineyard, shall he make -restitution. - -22:6 If fire break out, and catch in thorns, so that the stacks of -corn, or the standing corn, or the field, be consumed therewith; he -that kindled the fire shall surely make restitution. - -22:7 If a man shall deliver unto his neighbour money or stuff to keep, -and it be stolen out of the man's house; if the thief be found, let -him pay double. - -22:8 If the thief be not found, then the master of the house shall be -brought unto the judges, to see whether he have put his hand unto his -neighbour's goods. - -22:9 For all manner of trespass, whether it be for ox, for ass, for -sheep, for raiment, or for any manner of lost thing which another -challengeth to be his, the cause of both parties shall come before the -judges; and whom the judges shall condemn, he shall pay double unto -his neighbour. - -22:10 If a man deliver unto his neighbour an ass, or an ox, or a -sheep, or any beast, to keep; and it die, or be hurt, or driven away, -no man seeing it: 22:11 Then shall an oath of the LORD be between them -both, that he hath not put his hand unto his neighbour's goods; and -the owner of it shall accept thereof, and he shall not make it good. - -22:12 And if it be stolen from him, he shall make restitution unto the -owner thereof. - -22:13 If it be torn in pieces, then let him bring it for witness, and -he shall not make good that which was torn. - -22:14 And if a man borrow ought of his neighbour, and it be hurt, or -die, the owner thereof being not with it, he shall surely make it -good. - -22:15 But if the owner thereof be with it, he shall not make it good: -if it be an hired thing, it came for his hire. - -22:16 And if a man entice a maid that is not betrothed, and lie with -her, he shall surely endow her to be his wife. - -22:17 If her father utterly refuse to give her unto him, he shall pay -money according to the dowry of virgins. - -22:18 Thou shalt not suffer a witch to live. - -22:19 Whosoever lieth with a beast shall surely be put to death. - -22:20 He that sacrificeth unto any god, save unto the LORD only, he -shall be utterly destroyed. - -22:21 Thou shalt neither vex a stranger, nor oppress him: for ye were -strangers in the land of Egypt. - -22:22 Ye shall not afflict any widow, or fatherless child. - -22:23 If thou afflict them in any wise, and they cry at all unto me, I -will surely hear their cry; 22:24 And my wrath shall wax hot, and I -will kill you with the sword; and your wives shall be widows, and your -children fatherless. - -22:25 If thou lend money to any of my people that is poor by thee, -thou shalt not be to him as an usurer, neither shalt thou lay upon him -usury. - -22:26 If thou at all take thy neighbour's raiment to pledge, thou -shalt deliver it unto him by that the sun goeth down: 22:27 For that -is his covering only, it is his raiment for his skin: wherein shall he -sleep? and it shall come to pass, when he crieth unto me, that I will -hear; for I am gracious. - -22:28 Thou shalt not revile the gods, nor curse the ruler of thy -people. - -22:29 Thou shalt not delay to offer the first of thy ripe fruits, and -of thy liquors: the firstborn of thy sons shalt thou give unto me. - -22:30 Likewise shalt thou do with thine oxen, and with thy sheep: -seven days it shall be with his dam; on the eighth day thou shalt give -it me. - -22:31 And ye shall be holy men unto me: neither shall ye eat any flesh -that is torn of beasts in the field; ye shall cast it to the dogs. - -23:1 Thou shalt not raise a false report: put not thine hand with the -wicked to be an unrighteous witness. - -23:2 Thou shalt not follow a multitude to do evil; neither shalt thou -speak in a cause to decline after many to wrest judgment: 23:3 Neither -shalt thou countenance a poor man in his cause. - -23:4 If thou meet thine enemy's ox or his ass going astray, thou shalt -surely bring it back to him again. - -23:5 If thou see the ass of him that hateth thee lying under his -burden, and wouldest forbear to help him, thou shalt surely help with -him. - -23:6 Thou shalt not wrest the judgment of thy poor in his cause. - -23:7 Keep thee far from a false matter; and the innocent and righteous -slay thou not: for I will not justify the wicked. - -23:8 And thou shalt take no gift: for the gift blindeth the wise, and -perverteth the words of the righteous. - -23:9 Also thou shalt not oppress a stranger: for ye know the heart of -a stranger, seeing ye were strangers in the land of Egypt. - -23:10 And six years thou shalt sow thy land, and shalt gather in the -fruits thereof: 23:11 But the seventh year thou shalt let it rest and -lie still; that the poor of thy people may eat: and what they leave -the beasts of the field shall eat. In like manner thou shalt deal with -thy vineyard, and with thy oliveyard. - -23:12 Six days thou shalt do thy work, and on the seventh day thou -shalt rest: that thine ox and thine ass may rest, and the son of thy -handmaid, and the stranger, may be refreshed. - -23:13 And in all things that I have said unto you be circumspect: and -make no mention of the name of other gods, neither let it be heard out -of thy mouth. - -23:14 Three times thou shalt keep a feast unto me in the year. - -23:15 Thou shalt keep the feast of unleavened bread: (thou shalt eat -unleavened bread seven days, as I commanded thee, in the time -appointed of the month Abib; for in it thou camest out from Egypt: and -none shall appear before me empty:) 23:16 And the feast of harvest, -the firstfruits of thy labours, which thou hast sown in the field: and -the feast of ingathering, which is in the end of the year, when thou -hast gathered in thy labours out of the field. - -23:17 Three items in the year all thy males shall appear before the -LORD God. - -23:18 Thou shalt not offer the blood of my sacrifice with leavened -bread; neither shall the fat of my sacrifice remain until the morning. - -23:19 The first of the firstfruits of thy land thou shalt bring into -the house of the LORD thy God. Thou shalt not seethe a kid in his -mother's milk. - -23:20 Behold, I send an Angel before thee, to keep thee in the way, -and to bring thee into the place which I have prepared. - -23:21 Beware of him, and obey his voice, provoke him not; for he will -not pardon your transgressions: for my name is in him. - -23:22 But if thou shalt indeed obey his voice, and do all that I -speak; then I will be an enemy unto thine enemies, and an adversary -unto thine adversaries. - -23:23 For mine Angel shall go before thee, and bring thee in unto the -Amorites, and the Hittites, and the Perizzites, and the Canaanites, -the Hivites, and the Jebusites: and I will cut them off. - -23:24 Thou shalt not bow down to their gods, nor serve them, nor do -after their works: but thou shalt utterly overthrow them, and quite -break down their images. - -23:25 And ye shall serve the LORD your God, and he shall bless thy -bread, and thy water; and I will take sickness away from the midst of -thee. - -23:26 There shall nothing cast their young, nor be barren, in thy -land: the number of thy days I will fulfil. - -23:27 I will send my fear before thee, and will destroy all the people -to whom thou shalt come, and I will make all thine enemies turn their -backs unto thee. - -23:28 And I will send hornets before thee, which shall drive out the -Hivite, the Canaanite, and the Hittite, from before thee. - -23:29 I will not drive them out from before thee in one year; lest the -land become desolate, and the beast of the field multiply against -thee. - -23:30 By little and little I will drive them out from before thee, -until thou be increased, and inherit the land. - -23:31 And I will set thy bounds from the Red sea even unto the sea of -the Philistines, and from the desert unto the river: for I will -deliver the inhabitants of the land into your hand; and thou shalt -drive them out before thee. - -23:32 Thou shalt make no covenant with them, nor with their gods. - -23:33 They shall not dwell in thy land, lest they make thee sin -against me: for if thou serve their gods, it will surely be a snare -unto thee. - -24:1 And he said unto Moses, Come up unto the LORD, thou, and Aaron, -Nadab, and Abihu, and seventy of the elders of Israel; and worship ye -afar off. - -24:2 And Moses alone shall come near the LORD: but they shall not come -nigh; neither shall the people go up with him. - -24:3 And Moses came and told the people all the words of the LORD, and -all the judgments: and all the people answered with one voice, and -said, All the words which the LORD hath said will we do. - -24:4 And Moses wrote all the words of the LORD, and rose up early in -the morning, and builded an altar under the hill, and twelve pillars, -according to the twelve tribes of Israel. - -24:5 And he sent young men of the children of Israel, which offered -burnt offerings, and sacrificed peace offerings of oxen unto the LORD. - -24:6 And Moses took half of the blood, and put it in basons; and half -of the blood he sprinkled on the altar. - -24:7 And he took the book of the covenant, and read in the audience of -the people: and they said, All that the LORD hath said will we do, and -be obedient. - -24:8 And Moses took the blood, and sprinkled it on the people, and -said, Behold the blood of the covenant, which the LORD hath made with -you concerning all these words. - -24:9 Then went up Moses, and Aaron, Nadab, and Abihu, and seventy of -the elders of Israel: 24:10 And they saw the God of Israel: and there -was under his feet as it were a paved work of a sapphire stone, and as -it were the body of heaven in his clearness. - -24:11 And upon the nobles of the children of Israel he laid not his -hand: also they saw God, and did eat and drink. - -24:12 And the LORD said unto Moses, Come up to me into the mount, and -be there: and I will give thee tables of stone, and a law, and -commandments which I have written; that thou mayest teach them. - -24:13 And Moses rose up, and his minister Joshua: and Moses went up -into the mount of God. - -24:14 And he said unto the elders, Tarry ye here for us, until we come -again unto you: and, behold, Aaron and Hur are with you: if any man -have any matters to do, let him come unto them. - -24:15 And Moses went up into the mount, and a cloud covered the mount. - -24:16 And the glory of the LORD abode upon mount Sinai, and the cloud -covered it six days: and the seventh day he called unto Moses out of -the midst of the cloud. - -24:17 And the sight of the glory of the LORD was like devouring fire -on the top of the mount in the eyes of the children of Israel. - -24:18 And Moses went into the midst of the cloud, and gat him up into -the mount: and Moses was in the mount forty days and forty nights. - -25:1 And the LORD spake unto Moses, saying, 25:2 Speak unto the -children of Israel, that they bring me an offering: of every man that -giveth it willingly with his heart ye shall take my offering. - -25:3 And this is the offering which ye shall take of them; gold, and -silver, and brass, 25:4 And blue, and purple, and scarlet, and fine -linen, and goats' hair, 25:5 And rams' skins dyed red, and badgers' -skins, and shittim wood, 25:6 Oil for the light, spices for anointing -oil, and for sweet incense, 25:7 Onyx stones, and stones to be set in -the ephod, and in the breastplate. - -25:8 And let them make me a sanctuary; that I may dwell among them. - -25:9 According to all that I shew thee, after the pattern of the -tabernacle, and the pattern of all the instruments thereof, even so -shall ye make it. - -25:10 And they shall make an ark of shittim wood: two cubits and a -half shall be the length thereof, and a cubit and a half the breadth -thereof, and a cubit and a half the height thereof. - -25:11 And thou shalt overlay it with pure gold, within and without -shalt thou overlay it, and shalt make upon it a crown of gold round -about. - -25:12 And thou shalt cast four rings of gold for it, and put them in -the four corners thereof; and two rings shall be in the one side of -it, and two rings in the other side of it. - -25:13 And thou shalt make staves of shittim wood, and overlay them -with gold. - -25:14 And thou shalt put the staves into the rings by the sides of the -ark, that the ark may be borne with them. - -25:15 The staves shall be in the rings of the ark: they shall not be -taken from it. - -25:16 And thou shalt put into the ark the testimony which I shall give -thee. - -25:17 And thou shalt make a mercy seat of pure gold: two cubits and a -half shall be the length thereof, and a cubit and a half the breadth -thereof. - -25:18 And thou shalt make two cherubims of gold, of beaten work shalt -thou make them, in the two ends of the mercy seat. - -25:19 And make one cherub on the one end, and the other cherub on the -other end: even of the mercy seat shall ye make the cherubims on the -two ends thereof. - -25:20 And the cherubims shall stretch forth their wings on high, -covering the mercy seat with their wings, and their faces shall look -one to another; toward the mercy seat shall the faces of the cherubims -be. - -25:21 And thou shalt put the mercy seat above upon the ark; and in the -ark thou shalt put the testimony that I shall give thee. - -25:22 And there I will meet with thee, and I will commune with thee -from above the mercy seat, from between the two cherubims which are -upon the ark of the testimony, of all things which I will give thee in -commandment unto the children of Israel. - -25:23 Thou shalt also make a table of shittim wood: two cubits shall -be the length thereof, and a cubit the breadth thereof, and a cubit -and a half the height thereof. - -25:24 And thou shalt overlay it with pure gold, and make thereto a -crown of gold round about. - -25:25 And thou shalt make unto it a border of an hand breadth round -about, and thou shalt make a golden crown to the border thereof round -about. - -25:26 And thou shalt make for it four rings of gold, and put the rings -in the four corners that are on the four feet thereof. - -25:27 Over against the border shall the rings be for places of the -staves to bear the table. - -25:28 And thou shalt make the staves of shittim wood, and overlay them -with gold, that the table may be borne with them. - -25:29 And thou shalt make the dishes thereof, and spoons thereof, and -covers thereof, and bowls thereof, to cover withal: of pure gold shalt -thou make them. - -25:30 And thou shalt set upon the table shewbread before me alway. - -25:31 And thou shalt make a candlestick of pure gold: of beaten work -shall the candlestick be made: his shaft, and his branches, his bowls, -his knops, and his flowers, shall be of the same. - -25:32 And six branches shall come out of the sides of it; three -branches of the candlestick out of the one side, and three branches of -the candlestick out of the other side: 25:33 Three bowls made like -unto almonds, with a knop and a flower in one branch; and three bowls -made like almonds in the other branch, with a knop and a flower: so in -the six branches that come out of the candlestick. - -25:34 And in the candlesticks shall be four bowls made like unto -almonds, with their knops and their flowers. - -25:35 And there shall be a knop under two branches of the same, and a -knop under two branches of the same, and a knop under two branches of -the same, according to the six branches that proceed out of the -candlestick. - -25:36 Their knops and their branches shall be of the same: all it -shall be one beaten work of pure gold. - -25:37 And thou shalt make the seven lamps thereof: and they shall -light the lamps thereof, that they may give light over against it. - -25:38 And the tongs thereof, and the snuffdishes thereof, shall be of -pure gold. - -25:39 Of a talent of pure gold shall he make it, with all these -vessels. - -25:40 And look that thou make them after their pattern, which was -shewed thee in the mount. - -26:1 Moreover thou shalt make the tabernacle with ten curtains of fine -twined linen, and blue, and purple, and scarlet: with cherubims of -cunning work shalt thou make them. - -26:2 The length of one curtain shall be eight and twenty cubits, and -the breadth of one curtain four cubits: and every one of the curtains -shall have one measure. - -26:3 The five curtains shall be coupled together one to another; and -other five curtains shall be coupled one to another. - -26:4 And thou shalt make loops of blue upon the edge of the one -curtain from the selvedge in the coupling; and likewise shalt thou -make in the uttermost edge of another curtain, in the coupling of the -second. - -26:5 Fifty loops shalt thou make in the one curtain, and fifty loops -shalt thou make in the edge of the curtain that is in the coupling of -the second; that the loops may take hold one of another. - -26:6 And thou shalt make fifty taches of gold, and couple the curtains -together with the taches: and it shall be one tabernacle. - -26:7 And thou shalt make curtains of goats' hair to be a covering upon -the tabernacle: eleven curtains shalt thou make. - -26:8 The length of one curtain shall be thirty cubits, and the breadth -of one curtain four cubits: and the eleven curtains shall be all of -one measure. - -26:9 And thou shalt couple five curtains by themselves, and six -curtains by themselves, and shalt double the sixth curtain in the -forefront of the tabernacle. - -26:10 And thou shalt make fifty loops on the edge of the one curtain -that is outmost in the coupling, and fifty loops in the edge of the -curtain which coupleth the second. - -26:11 And thou shalt make fifty taches of brass, and put the taches -into the loops, and couple the tent together, that it may be one. - -26:12 And the remnant that remaineth of the curtains of the tent, the -half curtain that remaineth, shall hang over the backside of the -tabernacle. - -26:13 And a cubit on the one side, and a cubit on the other side of -that which remaineth in the length of the curtains of the tent, it -shall hang over the sides of the tabernacle on this side and on that -side, to cover it. - -26:14 And thou shalt make a covering for the tent of rams' skins dyed -red, and a covering above of badgers' skins. - -26:15 And thou shalt make boards for the tabernacle of shittim wood -standing up. - -26:16 Ten cubits shall be the length of a board, and a cubit and a -half shall be the breadth of one board. - -26:17 Two tenons shall there be in one board, set in order one against -another: thus shalt thou make for all the boards of the tabernacle. - -26:18 And thou shalt make the boards for the tabernacle, twenty boards -on the south side southward. - -26:19 And thou shalt make forty sockets of silver under the twenty -boards; two sockets under one board for his two tenons, and two -sockets under another board for his two tenons. - -26:20 And for the second side of the tabernacle on the north side -there shall be twenty boards: 26:21 And their forty sockets of silver; -two sockets under one board, and two sockets under another board. - -26:22 And for the sides of the tabernacle westward thou shalt make six -boards. - -26:23 And two boards shalt thou make for the corners of the tabernacle -in the two sides. - -26:24 And they shall be coupled together beneath, and they shall be -coupled together above the head of it unto one ring: thus shall it be -for them both; they shall be for the two corners. - -26:25 And they shall be eight boards, and their sockets of silver, -sixteen sockets; two sockets under one board, and two sockets under -another board. - -26:26 And thou shalt make bars of shittim wood; five for the boards of -the one side of the tabernacle, 26:27 And five bars for the boards of -the other side of the tabernacle, and five bars for the boards of the -side of the tabernacle, for the two sides westward. - -26:28 And the middle bar in the midst of the boards shall reach from -end to end. - -26:29 And thou shalt overlay the boards with gold, and make their -rings of gold for places for the bars: and thou shalt overlay the bars -with gold. - -26:30 And thou shalt rear up the tabernacle according to the fashion -thereof which was shewed thee in the mount. - -26:31 And thou shalt make a vail of blue, and purple, and scarlet, and -fine twined linen of cunning work: with cherubims shall it be made: -26:32 And thou shalt hang it upon four pillars of shittim wood -overlaid with gold: their hooks shall be of gold, upon the four -sockets of silver. - -26:33 And thou shalt hang up the vail under the taches, that thou -mayest bring in thither within the vail the ark of the testimony: and -the vail shall divide unto you between the holy place and the most -holy. - -26:34 And thou shalt put the mercy seat upon the ark of the testimony -in the most holy place. - -26:35 And thou shalt set the table without the vail, and the -candlestick over against the table on the side of the tabernacle -toward the south: and thou shalt put the table on the north side. - -26:36 And thou shalt make an hanging for the door of the tent, of -blue, and purple, and scarlet, and fine twined linen, wrought with -needlework. - -26:37 And thou shalt make for the hanging five pillars of shittim -wood, and overlay them with gold, and their hooks shall be of gold: -and thou shalt cast five sockets of brass for them. - -27:1 And thou shalt make an altar of shittim wood, five cubits long, -and five cubits broad; the altar shall be foursquare: and the height -thereof shall be three cubits. - -27:2 And thou shalt make the horns of it upon the four corners -thereof: his horns shall be of the same: and thou shalt overlay it -with brass. - -27:3 And thou shalt make his pans to receive his ashes, and his -shovels, and his basons, and his fleshhooks, and his firepans: all the -vessels thereof thou shalt make of brass. - -27:4 And thou shalt make for it a grate of network of brass; and upon -the net shalt thou make four brasen rings in the four corners thereof. - -27:5 And thou shalt put it under the compass of the altar beneath, -that the net may be even to the midst of the altar. - -27:6 And thou shalt make staves for the altar, staves of shittim wood, -and overlay them with brass. - -27:7 And the staves shall be put into the rings, and the staves shall -be upon the two sides of the altar, to bear it. - -27:8 Hollow with boards shalt thou make it: as it was shewed thee in -the mount, so shall they make it. - -27:9 And thou shalt make the court of the tabernacle: for the south -side southward there shall be hangings for the court of fine twined -linen of an hundred cubits long for one side: 27:10 And the twenty -pillars thereof and their twenty sockets shall be of brass; the hooks -of the pillars and their fillets shall be of silver. - -27:11 And likewise for the north side in length there shall be -hangings of an hundred cubits long, and his twenty pillars and their -twenty sockets of brass; the hooks of the pillars and their fillets of -silver. - -27:12 And for the breadth of the court on the west side shall be -hangings of fifty cubits: their pillars ten, and their sockets ten. - -27:13 And the breadth of the court on the east side eastward shall be -fifty cubits. - -27:14 The hangings of one side of the gate shall be fifteen cubits: -their pillars three, and their sockets three. - -27:15 And on the other side shall be hangings fifteen cubits: their -pillars three, and their sockets three. - -27:16 And for the gate of the court shall be an hanging of twenty -cubits, of blue, and purple, and scarlet, and fine twined linen, -wrought with needlework: and their pillars shall be four, and their -sockets four. - -27:17 All the pillars round about the court shall be filleted with -silver; their hooks shall be of silver, and their sockets of brass. - -27:18 The length of the court shall be an hundred cubits, and the -breadth fifty every where, and the height five cubits of fine twined -linen, and their sockets of brass. - -27:19 All the vessels of the tabernacle in all the service thereof, -and all the pins thereof, and all the pins of the court, shall be of -brass. - -27:20 And thou shalt command the children of Israel, that they bring -thee pure oil olive beaten for the light, to cause the lamp to burn -always. - -27:21 In the tabernacle of the congregation without the vail, which is -before the testimony, Aaron and his sons shall order it from evening -to morning before the LORD: it shall be a statute for ever unto their -generations on the behalf of the children of Israel. - -28:1 And take thou unto thee Aaron thy brother, and his sons with him, -from among the children of Israel, that he may minister unto me in the -priest's office, even Aaron, Nadab and Abihu, Eleazar and Ithamar, -Aaron's sons. - -28:2 And thou shalt make holy garments for Aaron thy brother for glory -and for beauty. - -28:3 And thou shalt speak unto all that are wise hearted, whom I have -filled with the spirit of wisdom, that they may make Aaron's garments -to consecrate him, that he may minister unto me in the priest's -office. - -28:4 And these are the garments which they shall make; a breastplate, -and an ephod, and a robe, and a broidered coat, a mitre, and a girdle: -and they shall make holy garments for Aaron thy brother, and his sons, -that he may minister unto me in the priest's office. - -28:5 And they shall take gold, and blue, and purple, and scarlet, and -fine linen. - -28:6 And they shall make the ephod of gold, of blue, and of purple, of -scarlet, and fine twined linen, with cunning work. - -28:7 It shall have the two shoulderpieces thereof joined at the two -edges thereof; and so it shall be joined together. - -28:8 And the curious girdle of the ephod, which is upon it, shall be -of the same, according to the work thereof; even of gold, of blue, and -purple, and scarlet, and fine twined linen. - -28:9 And thou shalt take two onyx stones, and grave on them the names -of the children of Israel: 28:10 Six of their names on one stone, and -the other six names of the rest on the other stone, according to their -birth. - -28:11 With the work of an engraver in stone, like the engravings of a -signet, shalt thou engrave the two stones with the names of the -children of Israel: thou shalt make them to be set in ouches of gold. - -28:12 And thou shalt put the two stones upon the shoulders of the -ephod for stones of memorial unto the children of Israel: and Aaron -shall bear their names before the LORD upon his two shoulders for a -memorial. - -28:13 And thou shalt make ouches of gold; 28:14 And two chains of pure -gold at the ends; of wreathen work shalt thou make them, and fasten -the wreathen chains to the ouches. - -28:15 And thou shalt make the breastplate of judgment with cunning -work; after the work of the ephod thou shalt make it; of gold, of -blue, and of purple, and of scarlet, and of fine twined linen, shalt -thou make it. - -28:16 Foursquare it shall be being doubled; a span shall be the length -thereof, and a span shall be the breadth thereof. - -28:17 And thou shalt set in it settings of stones, even four rows of -stones: the first row shall be a sardius, a topaz, and a carbuncle: -this shall be the first row. - -28:18 And the second row shall be an emerald, a sapphire, and a -diamond. - -28:19 And the third row a ligure, an agate, and an amethyst. - -28:20 And the fourth row a beryl, and an onyx, and a jasper: they -shall be set in gold in their inclosings. - -28:21 And the stones shall be with the names of the children of -Israel, twelve, according to their names, like the engravings of a -signet; every one with his name shall they be according to the twelve -tribes. - -28:22 And thou shalt make upon the breastplate chains at the ends of -wreathen work of pure gold. - -28:23 And thou shalt make upon the breastplate two rings of gold, and -shalt put the two rings on the two ends of the breastplate. - -28:24 And thou shalt put the two wreathen chains of gold in the two -rings which are on the ends of the breastplate. - -28:25 And the other two ends of the two wreathen chains thou shalt -fasten in the two ouches, and put them on the shoulderpieces of the -ephod before it. - -28:26 And thou shalt make two rings of gold, and thou shalt put them -upon the two ends of the breastplate in the border thereof, which is -in the side of the ephod inward. - -28:27 And two other rings of gold thou shalt make, and shalt put them -on the two sides of the ephod underneath, toward the forepart thereof, -over against the other coupling thereof, above the curious girdle of -the ephod. - -28:28 And they shall bind the breastplate by the rings thereof unto -the rings of the ephod with a lace of blue, that it may be above the -curious girdle of the ephod, and that the breastplate be not loosed -from the ephod. - -28:29 And Aaron shall bear the names of the children of Israel in the -breastplate of judgment upon his heart, when he goeth in unto the holy -place, for a memorial before the LORD continually. - -28:30 And thou shalt put in the breastplate of judgment the Urim and -the Thummim; and they shall be upon Aaron's heart, when he goeth in -before the LORD: and Aaron shall bear the judgment of the children of -Israel upon his heart before the LORD continually. - -28:31 And thou shalt make the robe of the ephod all of blue. - -28:32 And there shall be an hole in the top of it, in the midst -thereof: it shall have a binding of woven work round about the hole of -it, as it were the hole of an habergeon, that it be not rent. - -28:33 And beneath upon the hem of it thou shalt make pomegranates of -blue, and of purple, and of scarlet, round about the hem thereof; and -bells of gold between them round about: 28:34 A golden bell and a -pomegranate, a golden bell and a pomegranate, upon the hem of the robe -round about. - -28:35 And it shall be upon Aaron to minister: and his sound shall be -heard when he goeth in unto the holy place before the LORD, and when -he cometh out, that he die not. - -28:36 And thou shalt make a plate of pure gold, and grave upon it, -like the engravings of a signet, HOLINESS TO THE LORD. - -28:37 And thou shalt put it on a blue lace, that it may be upon the -mitre; upon the forefront of the mitre it shall be. - -28:38 And it shall be upon Aaron's forehead, that Aaron may bear the -iniquity of the holy things, which the children of Israel shall hallow -in all their holy gifts; and it shall be always upon his forehead, -that they may be accepted before the LORD. - -28:39 And thou shalt embroider the coat of fine linen, and thou shalt -make the mitre of fine linen, and thou shalt make the girdle of -needlework. - -28:40 And for Aaron's sons thou shalt make coats, and thou shalt make -for them girdles, and bonnets shalt thou make for them, for glory and -for beauty. - -28:41 And thou shalt put them upon Aaron thy brother, and his sons -with him; and shalt anoint them, and consecrate them, and sanctify -them, that they may minister unto me in the priest's office. - -28:42 And thou shalt make them linen breeches to cover their -nakedness; from the loins even unto the thighs they shall reach: 28:43 -And they shall be upon Aaron, and upon his sons, when they come in -unto the tabernacle of the congregation, or when they come near unto -the altar to minister in the holy place; that they bear not iniquity, -and die: it shall be a statute for ever unto him and his seed after -him. - -29:1 And this is the thing that thou shalt do unto them to hallow -them, to minister unto me in the priest's office: Take one young -bullock, and two rams without blemish, 29:2 And unleavened bread, and -cakes unleavened tempered with oil, and wafers unleavened anointed -with oil: of wheaten flour shalt thou make them. - -29:3 And thou shalt put them into one basket, and bring them in the -basket, with the bullock and the two rams. - -29:4 And Aaron and his sons thou shalt bring unto the door of the -tabernacle of the congregation, and shalt wash them with water. - -29:5 And thou shalt take the garments, and put upon Aaron the coat, -and the robe of the ephod, and the ephod, and the breastplate, and -gird him with the curious girdle of the ephod: 29:6 And thou shalt put -the mitre upon his head, and put the holy crown upon the mitre. - -29:7 Then shalt thou take the anointing oil, and pour it upon his -head, and anoint him. - -29:8 And thou shalt bring his sons, and put coats upon them. - -29:9 And thou shalt gird them with girdles, Aaron and his sons, and -put the bonnets on them: and the priest's office shall be theirs for a -perpetual statute: and thou shalt consecrate Aaron and his sons. - -29:10 And thou shalt cause a bullock to be brought before the -tabernacle of the congregation: and Aaron and his sons shall put their -hands upon the head of the bullock. - -29:11 And thou shalt kill the bullock before the LORD, by the door of -the tabernacle of the congregation. - -29:12 And thou shalt take of the blood of the bullock, and put it upon -the horns of the altar with thy finger, and pour all the blood beside -the bottom of the altar. - -29:13 And thou shalt take all the fat that covereth the inwards, and -the caul that is above the liver, and the two kidneys, and the fat -that is upon them, and burn them upon the altar. - -29:14 But the flesh of the bullock, and his skin, and his dung, shalt -thou burn with fire without the camp: it is a sin offering. - -29:15 Thou shalt also take one ram; and Aaron and his sons shall put -their hands upon the head of the ram. - -29:16 And thou shalt slay the ram, and thou shalt take his blood, and -sprinkle it round about upon the altar. - -29:17 And thou shalt cut the ram in pieces, and wash the inwards of -him, and his legs, and put them unto his pieces, and unto his head. - -29:18 And thou shalt burn the whole ram upon the altar: it is a burnt -offering unto the LORD: it is a sweet savour, an offering made by fire -unto the LORD. - -29:19 And thou shalt take the other ram; and Aaron and his sons shall -put their hands upon the head of the ram. - -29:20 Then shalt thou kill the ram, and take of his blood, and put it -upon the tip of the right ear of Aaron, and upon the tip of the right -ear of his sons, and upon the thumb of their right hand, and upon the -great toe of their right foot, and sprinkle the blood upon the altar -round about. - -29:21 And thou shalt take of the blood that is upon the altar, and of -the anointing oil, and sprinkle it upon Aaron, and upon his garments, -and upon his sons, and upon the garments of his sons with him: and he -shall be hallowed, and his garments, and his sons, and his sons' -garments with him. - -29:22 Also thou shalt take of the ram the fat and the rump, and the -fat that covereth the inwards, and the caul above the liver, and the -two kidneys, and the fat that is upon them, and the right shoulder; -for it is a ram of consecration: 29:23 And one loaf of bread, and one -cake of oiled bread, and one wafer out of the basket of the unleavened -bread that is before the LORD: 29:24 And thou shalt put all in the -hands of Aaron, and in the hands of his sons; and shalt wave them for -a wave offering before the LORD. - -29:25 And thou shalt receive them of their hands, and burn them upon -the altar for a burnt offering, for a sweet savour before the LORD: it -is an offering made by fire unto the LORD. - -29:26 And thou shalt take the breast of the ram of Aaron's -consecration, and wave it for a wave offering before the LORD: and it -shall be thy part. - -29:27 And thou shalt sanctify the breast of the wave offering, and the -shoulder of the heave offering, which is waved, and which is heaved -up, of the ram of the consecration, even of that which is for Aaron, -and of that which is for his sons: 29:28 And it shall be Aaron's and -his sons' by a statute for ever from the children of Israel: for it is -an heave offering: and it shall be an heave offering from the children -of Israel of the sacrifice of their peace offerings, even their heave -offering unto the LORD. - -29:29 And the holy garments of Aaron shall be his sons' after him, to -be anointed therein, and to be consecrated in them. - -29:30 And that son that is priest in his stead shall put them on seven -days, when he cometh into the tabernacle of the congregation to -minister in the holy place. - -29:31 And thou shalt take the ram of the consecration, and seethe his -flesh in the holy place. - -29:32 And Aaron and his sons shall eat the flesh of the ram, and the -bread that is in the basket by the door of the tabernacle of the -congregation. - -29:33 And they shall eat those things wherewith the atonement was -made, to consecrate and to sanctify them: but a stranger shall not eat -thereof, because they are holy. - -29:34 And if ought of the flesh of the consecrations, or of the bread, -remain unto the morning, then thou shalt burn the remainder with fire: -it shall not be eaten, because it is holy. - -29:35 And thus shalt thou do unto Aaron, and to his sons, according to -all things which I have commanded thee: seven days shalt thou -consecrate them. - -29:36 And thou shalt offer every day a bullock for a sin offering for -atonement: and thou shalt cleanse the altar, when thou hast made an -atonement for it, and thou shalt anoint it, to sanctify it. - -29:37 Seven days thou shalt make an atonement for the altar, and -sanctify it; and it shall be an altar most holy: whatsoever toucheth -the altar shall be holy. - -29:38 Now this is that which thou shalt offer upon the altar; two -lambs of the first year day by day continually. - -29:39 The one lamb thou shalt offer in the morning; and the other lamb -thou shalt offer at even: 29:40 And with the one lamb a tenth deal of -flour mingled with the fourth part of an hin of beaten oil; and the -fourth part of an hin of wine for a drink offering. - -29:41 And the other lamb thou shalt offer at even, and shalt do -thereto according to the meat offering of the morning, and according -to the drink offering thereof, for a sweet savour, an offering made by -fire unto the LORD. - -29:42 This shall be a continual burnt offering throughout your -generations at the door of the tabernacle of the congregation before -the LORD: where I will meet you, to speak there unto thee. - -29:43 And there I will meet with the children of Israel, and the -tabernacle shall be sanctified by my glory. - -29:44 And I will sanctify the tabernacle of the congregation, and the -altar: I will sanctify also both Aaron and his sons, to minister to me -in the priest's office. - -29:45 And I will dwell among the children of Israel, and will be their -God. - -29:46 And they shall know that I am the LORD their God, that brought -them forth out of the land of Egypt, that I may dwell among them: I am -the LORD their God. - -30:1 And thou shalt make an altar to burn incense upon: of shittim -wood shalt thou make it. - -30:2 A cubit shall be the length thereof, and a cubit the breadth -thereof; foursquare shall it be: and two cubits shall be the height -thereof: the horns thereof shall be of the same. - -30:3 And thou shalt overlay it with pure gold, the top thereof, and -the sides thereof round about, and the horns thereof; and thou shalt -make unto it a crown of gold round about. - -30:4 And two golden rings shalt thou make to it under the crown of it, -by the two corners thereof, upon the two sides of it shalt thou make -it; and they shall be for places for the staves to bear it withal. - -30:5 And thou shalt make the staves of shittim wood, and overlay them -with gold. - -30:6 And thou shalt put it before the vail that is by the ark of the -testimony, before the mercy seat that is over the testimony, where I -will meet with thee. - -30:7 And Aaron shall burn thereon sweet incense every morning: when he -dresseth the lamps, he shall burn incense upon it. - -30:8 And when Aaron lighteth the lamps at even, he shall burn incense -upon it, a perpetual incense before the LORD throughout your -generations. - -30:9 Ye shall offer no strange incense thereon, nor burnt sacrifice, -nor meat offering; neither shall ye pour drink offering thereon. - -30:10 And Aaron shall make an atonement upon the horns of it once in a -year with the blood of the sin offering of atonements: once in the -year shall he make atonement upon it throughout your generations: it -is most holy unto the LORD. - -30:11 And the LORD spake unto Moses, saying, 30:12 When thou takest -the sum of the children of Israel after their number, then shall they -give every man a ransom for his soul unto the LORD, when thou -numberest them; that there be no plague among them, when thou -numberest them. - -30:13 This they shall give, every one that passeth among them that are -numbered, half a shekel after the shekel of the sanctuary: (a shekel -is twenty gerahs:) an half shekel shall be the offering of the LORD. - -30:14 Every one that passeth among them that are numbered, from twenty -years old and above, shall give an offering unto the LORD. - -30:15 The rich shall not give more, and the poor shall not give less -than half a shekel, when they give an offering unto the LORD, to make -an atonement for your souls. - -30:16 And thou shalt take the atonement money of the children of -Israel, and shalt appoint it for the service of the tabernacle of the -congregation; that it may be a memorial unto the children of Israel -before the LORD, to make an atonement for your souls. - -30:17 And the LORD spake unto Moses, saying, 30:18 Thou shalt also -make a laver of brass, and his foot also of brass, to wash withal: and -thou shalt put it between the tabernacle of the congregation and the -altar, and thou shalt put water therein. - -30:19 For Aaron and his sons shall wash their hands and their feet -thereat: 30:20 When they go into the tabernacle of the congregation, -they shall wash with water, that they die not; or when they come near -to the altar to minister, to burn offering made by fire unto the LORD: -30:21 So they shall wash their hands and their feet, that they die -not: and it shall be a statute for ever to them, even to him and to -his seed throughout their generations. - -30:22 Moreover the LORD spake unto Moses, saying, 30:23 Take thou also -unto thee principal spices, of pure myrrh five hundred shekels, and of -sweet cinnamon half so much, even two hundred and fifty shekels, and -of sweet calamus two hundred and fifty shekels, 30:24 And of cassia -five hundred shekels, after the shekel of the sanctuary, and of oil -olive an hin: 30:25 And thou shalt make it an oil of holy ointment, an -ointment compound after the art of the apothecary: it shall be an holy -anointing oil. - -30:26 And thou shalt anoint the tabernacle of the congregation -therewith, and the ark of the testimony, 30:27 And the table and all -his vessels, and the candlestick and his vessels, and the altar of -incense, 30:28 And the altar of burnt offering with all his vessels, -and the laver and his foot. - -30:29 And thou shalt sanctify them, that they may be most holy: -whatsoever toucheth them shall be holy. - -30:30 And thou shalt anoint Aaron and his sons, and consecrate them, -that they may minister unto me in the priest's office. - -30:31 And thou shalt speak unto the children of Israel, saying, This -shall be an holy anointing oil unto me throughout your generations. - -30:32 Upon man's flesh shall it not be poured, neither shall ye make -any other like it, after the composition of it: it is holy, and it -shall be holy unto you. - -30:33 Whosoever compoundeth any like it, or whosoever putteth any of -it upon a stranger, shall even be cut off from his people. - -30:34 And the LORD said unto Moses, Take unto thee sweet spices, -stacte, and onycha, and galbanum; these sweet spices with pure -frankincense: of each shall there be a like weight: 30:35 And thou -shalt make it a perfume, a confection after the art of the apothecary, -tempered together, pure and holy: 30:36 And thou shalt beat some of it -very small, and put of it before the testimony in the tabernacle of -the congregation, where I will meet with thee: it shall be unto you -most holy. - -30:37 And as for the perfume which thou shalt make, ye shall not make -to yourselves according to the composition thereof: it shall be unto -thee holy for the LORD. - -30:38 Whosoever shall make like unto that, to smell thereto, shall -even be cut off from his people. - -31:1 And the LORD spake unto Moses, saying, 31:2 See, I have called by -name Bezaleel the son of Uri, the son of Hur, of the tribe of Judah: -31:3 And I have filled him with the spirit of God, in wisdom, and in -understanding, and in knowledge, and in all manner of workmanship, -31:4 To devise cunning works, to work in gold, and in silver, and in -brass, 31:5 And in cutting of stones, to set them, and in carving of -timber, to work in all manner of workmanship. - -31:6 And I, behold, I have given with him Aholiab, the son of -Ahisamach, of the tribe of Dan: and in the hearts of all that are wise -hearted I have put wisdom, that they may make all that I have -commanded thee; 31:7 The tabernacle of the congregation, and the ark -of the testimony, and the mercy seat that is thereupon, and all the -furniture of the tabernacle, 31:8 And the table and his furniture, and -the pure candlestick with all his furniture, and the altar of incense, -31:9 And the altar of burnt offering with all his furniture, and the -laver and his foot, 31:10 And the cloths of service, and the holy -garments for Aaron the priest, and the garments of his sons, to -minister in the priest's office, 31:11 And the anointing oil, and -sweet incense for the holy place: according to all that I have -commanded thee shall they do. - -31:12 And the LORD spake unto Moses, saying, 31:13 Speak thou also -unto the children of Israel, saying, Verily my sabbaths ye shall keep: -for it is a sign between me and you throughout your generations; that -ye may know that I am the LORD that doth sanctify you. - -31:14 Ye shall keep the sabbath therefore; for it is holy unto you: -every one that defileth it shall surely be put to death: for whosoever -doeth any work therein, that soul shall be cut off from among his -people. - -31:15 Six days may work be done; but in the seventh is the sabbath of -rest, holy to the LORD: whosoever doeth any work in the sabbath day, -he shall surely be put to death. - -31:16 Wherefore the children of Israel shall keep the sabbath, to -observe the sabbath throughout their generations, for a perpetual -covenant. - -31:17 It is a sign between me and the children of Israel for ever: for -in six days the LORD made heaven and earth, and on the seventh day he -rested, and was refreshed. - -31:18 And he gave unto Moses, when he had made an end of communing -with him upon mount Sinai, two tables of testimony, tables of stone, -written with the finger of God. - -32:1 And when the people saw that Moses delayed to come down out of -the mount, the people gathered themselves together unto Aaron, and -said unto him, Up, make us gods, which shall go before us; for as for -this Moses, the man that brought us up out of the land of Egypt, we -wot not what is become of him. - -32:2 And Aaron said unto them, Break off the golden earrings, which -are in the ears of your wives, of your sons, and of your daughters, -and bring them unto me. - -32:3 And all the people brake off the golden earrings which were in -their ears, and brought them unto Aaron. - -32:4 And he received them at their hand, and fashioned it with a -graving tool, after he had made it a molten calf: and they said, These -be thy gods, O Israel, which brought thee up out of the land of Egypt. - -32:5 And when Aaron saw it, he built an altar before it; and Aaron -made proclamation, and said, To morrow is a feast to the LORD. - -32:6 And they rose up early on the morrow, and offered burnt -offerings, and brought peace offerings; and the people sat down to eat -and to drink, and rose up to play. - -32:7 And the LORD said unto Moses, Go, get thee down; for thy people, -which thou broughtest out of the land of Egypt, have corrupted -themselves: 32:8 They have turned aside quickly out of the way which I -commanded them: they have made them a molten calf, and have worshipped -it, and have sacrificed thereunto, and said, These be thy gods, O -Israel, which have brought thee up out of the land of Egypt. - -32:9 And the LORD said unto Moses, I have seen this people, and, -behold, it is a stiffnecked people: 32:10 Now therefore let me alone, -that my wrath may wax hot against them, and that I may consume them: -and I will make of thee a great nation. - -32:11 And Moses besought the LORD his God, and said, LORD, why doth -thy wrath wax hot against thy people, which thou hast brought forth -out of the land of Egypt with great power, and with a mighty hand? -32:12 Wherefore should the Egyptians speak, and say, For mischief did -he bring them out, to slay them in the mountains, and to consume them -from the face of the earth? Turn from thy fierce wrath, and repent of -this evil against thy people. - -32:13 Remember Abraham, Isaac, and Israel, thy servants, to whom thou -swarest by thine own self, and saidst unto them, I will multiply your -seed as the stars of heaven, and all this land that I have spoken of -will I give unto your seed, and they shall inherit it for ever. - -32:14 And the LORD repented of the evil which he thought to do unto -his people. - -32:15 And Moses turned, and went down from the mount, and the two -tables of the testimony were in his hand: the tables were written on -both their sides; on the one side and on the other were they written. - -32:16 And the tables were the work of God, and the writing was the -writing of God, graven upon the tables. - -32:17 And when Joshua heard the noise of the people as they shouted, -he said unto Moses, There is a noise of war in the camp. - -32:18 And he said, It is not the voice of them that shout for mastery, -neither is it the voice of them that cry for being overcome: but the -noise of them that sing do I hear. - -32:19 And it came to pass, as soon as he came nigh unto the camp, that -he saw the calf, and the dancing: and Moses' anger waxed hot, and he -cast the tables out of his hands, and brake them beneath the mount. - -32:20 And he took the calf which they had made, and burnt it in the -fire, and ground it to powder, and strawed it upon the water, and made -the children of Israel drink of it. - -32:21 And Moses said unto Aaron, What did this people unto thee, that -thou hast brought so great a sin upon them? 32:22 And Aaron said, Let -not the anger of my lord wax hot: thou knowest the people, that they -are set on mischief. - -32:23 For they said unto me, Make us gods, which shall go before us: -for as for this Moses, the man that brought us up out of the land of -Egypt, we wot not what is become of him. - -32:24 And I said unto them, Whosoever hath any gold, let them break it -off. So they gave it me: then I cast it into the fire, and there came -out this calf. - -32:25 And when Moses saw that the people were naked; (for Aaron had -made them naked unto their shame among their enemies:) 32:26 Then -Moses stood in the gate of the camp, and said, Who is on the LORD's -side? let him come unto me. And all the sons of Levi gathered -themselves together unto him. - -32:27 And he said unto them, Thus saith the LORD God of Israel, Put -every man his sword by his side, and go in and out from gate to gate -throughout the camp, and slay every man his brother, and every man his -companion, and every man his neighbour. - -32:28 And the children of Levi did according to the word of Moses: and -there fell of the people that day about three thousand men. - -32:29 For Moses had said, Consecrate yourselves today to the LORD, -even every man upon his son, and upon his brother; that he may bestow -upon you a blessing this day. - -32:30 And it came to pass on the morrow, that Moses said unto the -people, Ye have sinned a great sin: and now I will go up unto the -LORD; peradventure I shall make an atonement for your sin. - -32:31 And Moses returned unto the LORD, and said, Oh, this people have -sinned a great sin, and have made them gods of gold. - -32:32 Yet now, if thou wilt forgive their sin--; and if not, blot me, -I pray thee, out of thy book which thou hast written. - -32:33 And the LORD said unto Moses, Whosoever hath sinned against me, -him will I blot out of my book. - -32:34 Therefore now go, lead the people unto the place of which I have -spoken unto thee: behold, mine Angel shall go before thee: -nevertheless in the day when I visit I will visit their sin upon them. - -32:35 And the LORD plagued the people, because they made the calf, -which Aaron made. - -33:1 And the LORD said unto Moses, Depart, and go up hence, thou and -the people which thou hast brought up out of the land of Egypt, unto -the land which I sware unto Abraham, to Isaac, and to Jacob, saying, -Unto thy seed will I give it: 33:2 And I will send an angel before -thee; and I will drive out the Canaanite, the Amorite, and the -Hittite, and the Perizzite, the Hivite, and the Jebusite: 33:3 Unto a -land flowing with milk and honey: for I will not go up in the midst of -thee; for thou art a stiffnecked people: lest I consume thee in the -way. - -33:4 And when the people heard these evil tidings, they mourned: and -no man did put on him his ornaments. - -33:5 For the LORD had said unto Moses, Say unto the children of -Israel, Ye are a stiffnecked people: I will come up into the midst of -thee in a moment, and consume thee: therefore now put off thy -ornaments from thee, that I may know what to do unto thee. - -33:6 And the children of Israel stripped themselves of their ornaments -by the mount Horeb. - -33:7 And Moses took the tabernacle, and pitched it without the camp, -afar off from the camp, and called it the Tabernacle of the -congregation. And it came to pass, that every one which sought the -LORD went out unto the tabernacle of the congregation, which was -without the camp. - -33:8 And it came to pass, when Moses went out unto the tabernacle, -that all the people rose up, and stood every man at his tent door, and -looked after Moses, until he was gone into the tabernacle. - -33:9 And it came to pass, as Moses entered into the tabernacle, the -cloudy pillar descended, and stood at the door of the tabernacle, and -the Lord talked with Moses. - -33:10 And all the people saw the cloudy pillar stand at the tabernacle -door: and all the people rose up and worshipped, every man in his tent -door. - -33:11 And the LORD spake unto Moses face to face, as a man speaketh -unto his friend. And he turned again into the camp: but his servant -Joshua, the son of Nun, a young man, departed not out of the -tabernacle. - -33:12 And Moses said unto the LORD, See, thou sayest unto me, Bring up -this people: and thou hast not let me know whom thou wilt send with -me. Yet thou hast said, I know thee by name, and thou hast also found -grace in my sight. - -33:13 Now therefore, I pray thee, if I have found grace in thy sight, -shew me now thy way, that I may know thee, that I may find grace in -thy sight: and consider that this nation is thy people. - -33:14 And he said, My presence shall go with thee, and I will give -thee rest. - -33:15 And he said unto him, If thy presence go not with me, carry us -not up hence. - -33:16 For wherein shall it be known here that I and thy people have -found grace in thy sight? is it not in that thou goest with us? so -shall we be separated, I and thy people, from all the people that are -upon the face of the earth. - -33:17 And the LORD said unto Moses, I will do this thing also that -thou hast spoken: for thou hast found grace in my sight, and I know -thee by name. - -33:18 And he said, I beseech thee, shew me thy glory. - -33:19 And he said, I will make all my goodness pass before thee, and I -will proclaim the name of the LORD before thee; and will be gracious -to whom I will be gracious, and will shew mercy on whom I will shew -mercy. - -33:20 And he said, Thou canst not see my face: for there shall no man -see me, and live. - -33:21 And the LORD said, Behold, there is a place by me, and thou -shalt stand upon a rock: 33:22 And it shall come to pass, while my -glory passeth by, that I will put thee in a clift of the rock, and -will cover thee with my hand while I pass by: 33:23 And I will take -away mine hand, and thou shalt see my back parts: but my face shall -not be seen. - -34:1 And the LORD said unto Moses, Hew thee two tables of stone like -unto the first: and I will write upon these tables the words that were -in the first tables, which thou brakest. - -34:2 And be ready in the morning, and come up in the morning unto -mount Sinai, and present thyself there to me in the top of the mount. - -34:3 And no man shall come up with thee, neither let any man be seen -throughout all the mount; neither let the flocks nor herds feed before -that mount. - -34:4 And he hewed two tables of stone like unto the first; and Moses -rose up early in the morning, and went up unto mount Sinai, as the -LORD had commanded him, and took in his hand the two tables of stone. - -34:5 And the LORD descended in the cloud, and stood with him there, -and proclaimed the name of the LORD. - -34:6 And the LORD passed by before him, and proclaimed, The LORD, The -LORD God, merciful and gracious, longsuffering, and abundant in -goodness and truth, 34:7 Keeping mercy for thousands, forgiving -iniquity and transgression and sin, and that will by no means clear -the guilty; visiting the iniquity of the fathers upon the children, -and upon the children's children, unto the third and to the fourth -generation. - -34:8 And Moses made haste, and bowed his head toward the earth, and -worshipped. - -34:9 And he said, If now I have found grace in thy sight, O LORD, let -my LORD, I pray thee, go among us; for it is a stiffnecked people; and -pardon our iniquity and our sin, and take us for thine inheritance. - -34:10 And he said, Behold, I make a covenant: before all thy people I -will do marvels, such as have not been done in all the earth, nor in -any nation: and all the people among which thou art shall see the work -of the LORD: for it is a terrible thing that I will do with thee. - -34:11 Observe thou that which I command thee this day: behold, I drive -out before thee the Amorite, and the Canaanite, and the Hittite, and -the Perizzite, and the Hivite, and the Jebusite. - -34:12 Take heed to thyself, lest thou make a covenant with the -inhabitants of the land whither thou goest, lest it be for a snare in -the midst of thee: 34:13 But ye shall destroy their altars, break -their images, and cut down their groves: 34:14 For thou shalt worship -no other god: for the LORD, whose name is Jealous, is a jealous God: -34:15 Lest thou make a covenant with the inhabitants of the land, and -they go a whoring after their gods, and do sacrifice unto their gods, -and one call thee, and thou eat of his sacrifice; 34:16 And thou take -of their daughters unto thy sons, and their daughters go a whoring -after their gods, and make thy sons go a whoring after their gods. - -34:17 Thou shalt make thee no molten gods. - -34:18 The feast of unleavened bread shalt thou keep. Seven days thou -shalt eat unleavened bread, as I commanded thee, in the time of the -month Abib: for in the month Abib thou camest out from Egypt. - -34:19 All that openeth the matrix is mine; and every firstling among -thy cattle, whether ox or sheep, that is male. - -34:20 But the firstling of an ass thou shalt redeem with a lamb: and -if thou redeem him not, then shalt thou break his neck. All the -firstborn of thy sons thou shalt redeem. And none shall appear before -me empty. - -34:21 Six days thou shalt work, but on the seventh day thou shalt -rest: in earing time and in harvest thou shalt rest. - -34:22 And thou shalt observe the feast of weeks, of the firstfruits of -wheat harvest, and the feast of ingathering at the year's end. - -34:23 Thrice in the year shall all your menchildren appear before the -LORD God, the God of Israel. - -34:24 For I will cast out the nations before thee, and enlarge thy -borders: neither shall any man desire thy land, when thou shalt go up -to appear before the LORD thy God thrice in the year. - -34:25 Thou shalt not offer the blood of my sacrifice with leaven; -neither shall the sacrifice of the feast of the passover be left unto -the morning. - -34:26 The first of the firstfruits of thy land thou shalt bring unto -the house of the LORD thy God. Thou shalt not seethe a kid in his -mother's milk. - -34:27 And the LORD said unto Moses, Write thou these words: for after -the tenor of these words I have made a covenant with thee and with -Israel. - -34:28 And he was there with the LORD forty days and forty nights; he -did neither eat bread, nor drink water. And he wrote upon the tables -the words of the covenant, the ten commandments. - -34:29 And it came to pass, when Moses came down from mount Sinai with -the two tables of testimony in Moses' hand, when he came down from the -mount, that Moses wist not that the skin of his face shone while he -talked with him. - -34:30 And when Aaron and all the children of Israel saw Moses, behold, -the skin of his face shone; and they were afraid to come nigh him. - -34:31 And Moses called unto them; and Aaron and all the rulers of the -congregation returned unto him: and Moses talked with them. - -34:32 And afterward all the children of Israel came nigh: and he gave -them in commandment all that the LORD had spoken with him in mount -Sinai. - -34:33 And till Moses had done speaking with them, he put a vail on his -face. - -34:34 But when Moses went in before the LORD to speak with him, he -took the vail off, until he came out. And he came out, and spake unto -the children of Israel that which he was commanded. - -34:35 And the children of Israel saw the face of Moses, that the skin -of Moses' face shone: and Moses put the vail upon his face again, -until he went in to speak with him. - -35:1 And Moses gathered all the congregation of the children of Israel -together, and said unto them, These are the words which the LORD hath -commanded, that ye should do them. - -35:2 Six days shall work be done, but on the seventh day there shall -be to you an holy day, a sabbath of rest to the LORD: whosoever doeth -work therein shall be put to death. - -35:3 Ye shall kindle no fire throughout your habitations upon the -sabbath day. - -35:4 And Moses spake unto all the congregation of the children of -Israel, saying, This is the thing which the LORD commanded, saying, -35:5 Take ye from among you an offering unto the LORD: whosoever is of -a willing heart, let him bring it, an offering of the LORD; gold, and -silver, and brass, 35:6 And blue, and purple, and scarlet, and fine -linen, and goats' hair, 35:7 And rams' skins dyed red, and badgers' -skins, and shittim wood, 35:8 And oil for the light, and spices for -anointing oil, and for the sweet incense, 35:9 And onyx stones, and -stones to be set for the ephod, and for the breastplate. - -35:10 And every wise hearted among you shall come, and make all that -the LORD hath commanded; 35:11 The tabernacle, his tent, and his -covering, his taches, and his boards, his bars, his pillars, and his -sockets, 35:12 The ark, and the staves thereof, with the mercy seat, -and the vail of the covering, 35:13 The table, and his staves, and all -his vessels, and the shewbread, 35:14 The candlestick also for the -light, and his furniture, and his lamps, with the oil for the light, -35:15 And the incense altar, and his staves, and the anointing oil, -and the sweet incense, and the hanging for the door at the entering in -of the tabernacle, 35:16 The altar of burnt offering, with his brasen -grate, his staves, and all his vessels, the laver and his foot, 35:17 -The hangings of the court, his pillars, and their sockets, and the -hanging for the door of the court, 35:18 The pins of the tabernacle, -and the pins of the court, and their cords, 35:19 The cloths of -service, to do service in the holy place, the holy garments for Aaron -the priest, and the garments of his sons, to minister in the priest's -office. - -35:20 And all the congregation of the children of Israel departed from -the presence of Moses. - -35:21 And they came, every one whose heart stirred him up, and every -one whom his spirit made willing, and they brought the LORD's offering -to the work of the tabernacle of the congregation, and for all his -service, and for the holy garments. - -35:22 And they came, both men and women, as many as were willing -hearted, and brought bracelets, and earrings, and rings, and tablets, -all jewels of gold: and every man that offered offered an offering of -gold unto the LORD. - -35:23 And every man, with whom was found blue, and purple, and -scarlet, and fine linen, and goats' hair, and red skins of rams, and -badgers' skins, brought them. - -35:24 Every one that did offer an offering of silver and brass brought -the LORD's offering: and every man, with whom was found shittim wood -for any work of the service, brought it. - -35:25 And all the women that were wise hearted did spin with their -hands, and brought that which they had spun, both of blue, and of -purple, and of scarlet, and of fine linen. - -35:26 And all the women whose heart stirred them up in wisdom spun -goats' hair. - -35:27 And the rulers brought onyx stones, and stones to be set, for -the ephod, and for the breastplate; 35:28 And spice, and oil for the -light, and for the anointing oil, and for the sweet incense. - -35:29 The children of Israel brought a willing offering unto the LORD, -every man and woman, whose heart made them willing to bring for all -manner of work, which the LORD had commanded to be made by the hand of -Moses. - -35:30 And Moses said unto the children of Israel, See, the LORD hath -called by name Bezaleel the son of Uri, the son of Hur, of the tribe -of Judah; 35:31 And he hath filled him with the spirit of God, in -wisdom, in understanding, and in knowledge, and in all manner of -workmanship; 35:32 And to devise curious works, to work in gold, and -in silver, and in brass, 35:33 And in the cutting of stones, to set -them, and in carving of wood, to make any manner of cunning work. - -35:34 And he hath put in his heart that he may teach, both he, and -Aholiab, the son of Ahisamach, of the tribe of Dan. - -35:35 Them hath he filled with wisdom of heart, to work all manner of -work, of the engraver, and of the cunning workman, and of the -embroiderer, in blue, and in purple, in scarlet, and in fine linen, -and of the weaver, even of them that do any work, and of those that -devise cunning work. - -36:1 Then wrought Bezaleel and Aholiab, and every wise hearted man, in -whom the LORD put wisdom and understanding to know how to work all -manner of work for the service of the sanctuary, according to all that -the LORD had commanded. - -36:2 And Moses called Bezaleel and Aholiab, and every wise hearted -man, in whose heart the LORD had put wisdom, even every one whose -heart stirred him up to come unto the work to do it: 36:3 And they -received of Moses all the offering, which the children of Israel had -brought for the work of the service of the sanctuary, to make it -withal. And they brought yet unto him free offerings every morning. - -36:4 And all the wise men, that wrought all the work of the sanctuary, -came every man from his work which they made; 36:5 And they spake unto -Moses, saying, The people bring much more than enough for the service -of the work, which the LORD commanded to make. - -36:6 And Moses gave commandment, and they caused it to be proclaimed -throughout the camp, saying, Let neither man nor woman make any more -work for the offering of the sanctuary. So the people were restrained -from bringing. - -36:7 For the stuff they had was sufficient for all the work to make -it, and too much. - -36:8 And every wise hearted man among them that wrought the work of -the tabernacle made ten curtains of fine twined linen, and blue, and -purple, and scarlet: with cherubims of cunning work made he them. - -36:9 The length of one curtain was twenty and eight cubits, and the -breadth of one curtain four cubits: the curtains were all of one size. - -36:10 And he coupled the five curtains one unto another: and the other -five curtains he coupled one unto another. - -36:11 And he made loops of blue on the edge of one curtain from the -selvedge in the coupling: likewise he made in the uttermost side of -another curtain, in the coupling of the second. - -36:12 Fifty loops made he in one curtain, and fifty loops made he in -the edge of the curtain which was in the coupling of the second: the -loops held one curtain to another. - -36:13 And he made fifty taches of gold, and coupled the curtains one -unto another with the taches: so it became one tabernacle. - -36:14 And he made curtains of goats' hair for the tent over the -tabernacle: eleven curtains he made them. - -36:15 The length of one curtain was thirty cubits, and four cubits was -the breadth of one curtain: the eleven curtains were of one size. - -36:16 And he coupled five curtains by themselves, and six curtains by -themselves. - -36:17 And he made fifty loops upon the uttermost edge of the curtain -in the coupling, and fifty loops made he upon the edge of the curtain -which coupleth the second. - -36:18 And he made fifty taches of brass to couple the tent together, -that it might be one. - -36:19 And he made a covering for the tent of rams' skins dyed red, and -a covering of badgers' skins above that. - -36:20 And he made boards for the tabernacle of shittim wood, standing -up. - -36:21 The length of a board was ten cubits, and the breadth of a board -one cubit and a half. - -36:22 One board had two tenons, equally distant one from another: thus -did he make for all the boards of the tabernacle. - -36:23 And he made boards for the tabernacle; twenty boards for the -south side southward: 36:24 And forty sockets of silver he made under -the twenty boards; two sockets under one board for his two tenons, and -two sockets under another board for his two tenons. - -36:25 And for the other side of the tabernacle, which is toward the -north corner, he made twenty boards, 36:26 And their forty sockets of -silver; two sockets under one board, and two sockets under another -board. - -36:27 And for the sides of the tabernacle westward he made six boards. - -36:28 And two boards made he for the corners of the tabernacle in the -two sides. - -36:29 And they were coupled beneath, and coupled together at the head -thereof, to one ring: thus he did to both of them in both the corners. - -36:30 And there were eight boards; and their sockets were sixteen -sockets of silver, under every board two sockets. - -36:31 And he made bars of shittim wood; five for the boards of the one -side of the tabernacle, 36:32 And five bars for the boards of the -other side of the tabernacle, and five bars for the boards of the -tabernacle for the sides westward. - -36:33 And he made the middle bar to shoot through the boards from the -one end to the other. - -36:34 And he overlaid the boards with gold, and made their rings of -gold to be places for the bars, and overlaid the bars with gold. - -36:35 And he made a vail of blue, and purple, and scarlet, and fine -twined linen: with cherubims made he it of cunning work. - -36:36 And he made thereunto four pillars of shittim wood, and overlaid -them with gold: their hooks were of gold; and he cast for them four -sockets of silver. - -36:37 And he made an hanging for the tabernacle door of blue, and -purple, and scarlet, and fine twined linen, of needlework; 36:38 And -the five pillars of it with their hooks: and he overlaid their -chapiters and their fillets with gold: but their five sockets were of -brass. - -37:1 And Bezaleel made the ark of shittim wood: two cubits and a half -was the length of it, and a cubit and a half the breadth of it, and a -cubit and a half the height of it: 37:2 And he overlaid it with pure -gold within and without, and made a crown of gold to it round about. - -37:3 And he cast for it four rings of gold, to be set by the four -corners of it; even two rings upon the one side of it, and two rings -upon the other side of it. - -37:4 And he made staves of shittim wood, and overlaid them with gold. - -37:5 And he put the staves into the rings by the sides of the ark, to -bear the ark. - -37:6 And he made the mercy seat of pure gold: two cubits and a half -was the length thereof, and one cubit and a half the breadth thereof. - -37:7 And he made two cherubims of gold, beaten out of one piece made -he them, on the two ends of the mercy seat; 37:8 One cherub on the end -on this side, and another cherub on the other end on that side: out of -the mercy seat made he the cherubims on the two ends thereof. - -37:9 And the cherubims spread out their wings on high, and covered -with their wings over the mercy seat, with their faces one to another; -even to the mercy seatward were the faces of the cherubims. - -37:10 And he made the table of shittim wood: two cubits was the length -thereof, and a cubit the breadth thereof, and a cubit and a half the -height thereof: 37:11 And he overlaid it with pure gold, and made -thereunto a crown of gold round about. - -37:12 Also he made thereunto a border of an handbreadth round about; -and made a crown of gold for the border thereof round about. - -37:13 And he cast for it four rings of gold, and put the rings upon -the four corners that were in the four feet thereof. - -37:14 Over against the border were the rings, the places for the -staves to bear the table. - -37:15 And he made the staves of shittim wood, and overlaid them with -gold, to bear the table. - -37:16 And he made the vessels which were upon the table, his dishes, -and his spoons, and his bowls, and his covers to cover withal, of pure -gold. - -37:17 And he made the candlestick of pure gold: of beaten work made he -the candlestick; his shaft, and his branch, his bowls, his knops, and -his flowers, were of the same: 37:18 And six branches going out of the -sides thereof; three branches of the candlestick out of the one side -thereof, and three branches of the candlestick out of the other side -thereof: 37:19 Three bowls made after the fashion of almonds in one -branch, a knop and a flower; and three bowls made like almonds in -another branch, a knop and a flower: so throughout the six branches -going out of the candlestick. - -37:20 And in the candlestick were four bowls made like almonds, his -knops, and his flowers: 37:21 And a knop under two branches of the -same, and a knop under two branches of the same, and a knop under two -branches of the same, according to the six branches going out of it. - -37:22 Their knops and their branches were of the same: all of it was -one beaten work of pure gold. - -37:23 And he made his seven lamps, and his snuffers, and his -snuffdishes, of pure gold. - -37:24 Of a talent of pure gold made he it, and all the vessels -thereof. - -37:25 And he made the incense altar of shittim wood: the length of it -was a cubit, and the breadth of it a cubit; it was foursquare; and two -cubits was the height of it; the horns thereof were of the same. - -37:26 And he overlaid it with pure gold, both the top of it, and the -sides thereof round about, and the horns of it: also he made unto it a -crown of gold round about. - -37:27 And he made two rings of gold for it under the crown thereof, by -the two corners of it, upon the two sides thereof, to be places for -the staves to bear it withal. - -37:28 And he made the staves of shittim wood, and overlaid them with -gold. - -37:29 And he made the holy anointing oil, and the pure incense of -sweet spices, according to the work of the apothecary. - -38:1 And he made the altar of burnt offering of shittim wood: five -cubits was the length thereof, and five cubits the breadth thereof; it -was foursquare; and three cubits the height thereof. - -38:2 And he made the horns thereof on the four corners of it; the -horns thereof were of the same: and he overlaid it with brass. - -38:3 And he made all the vessels of the altar, the pots, and the -shovels, and the basons, and the fleshhooks, and the firepans: all the -vessels thereof made he of brass. - -38:4 And he made for the altar a brasen grate of network under the -compass thereof beneath unto the midst of it. - -38:5 And he cast four rings for the four ends of the grate of brass, -to be places for the staves. - -38:6 And he made the staves of shittim wood, and overlaid them with -brass. - -38:7 And he put the staves into the rings on the sides of the altar, -to bear it withal; he made the altar hollow with boards. - -38:8 And he made the laver of brass, and the foot of it of brass, of -the lookingglasses of the women assembling, which assembled at the -door of the tabernacle of the congregation. - -38:9 And he made the court: on the south side southward the hangings -of the court were of fine twined linen, an hundred cubits: 38:10 Their -pillars were twenty, and their brasen sockets twenty; the hooks of the -pillars and their fillets were of silver. - -38:11 And for the north side the hangings were an hundred cubits, -their pillars were twenty, and their sockets of brass twenty; the -hooks of the pillars and their fillets of silver. - -38:12 And for the west side were hangings of fifty cubits, their -pillars ten, and their sockets ten; the hooks of the pillars and their -fillets of silver. - -38:13 And for the east side eastward fifty cubits. - -38:14 The hangings of the one side of the gate were fifteen cubits; -their pillars three, and their sockets three. - -38:15 And for the other side of the court gate, on this hand and that -hand, were hangings of fifteen cubits; their pillars three, and their -sockets three. - -38:16 All the hangings of the court round about were of fine twined -linen. - -38:17 And the sockets for the pillars were of brass; the hooks of the -pillars and their fillets of silver; and the overlaying of their -chapiters of silver; and all the pillars of the court were filleted -with silver. - -38:18 And the hanging for the gate of the court was needlework, of -blue, and purple, and scarlet, and fine twined linen: and twenty -cubits was the length, and the height in the breadth was five cubits, -answerable to the hangings of the court. - -38:19 And their pillars were four, and their sockets of brass four; -their hooks of silver, and the overlaying of their chapiters and their -fillets of silver. - -38:20 And all the pins of the tabernacle, and of the court round -about, were of brass. - -38:21 This is the sum of the tabernacle, even of the tabernacle of -testimony, as it was counted, according to the commandment of Moses, -for the service of the Levites, by the hand of Ithamar, son to Aaron -the priest. - -38:22 And Bezaleel the son Uri, the son of Hur, of the tribe of Judah, -made all that the LORD commanded Moses. - -38:23 And with him was Aholiab, son of Ahisamach, of the tribe of Dan, -an engraver, and a cunning workman, and an embroiderer in blue, and in -purple, and in scarlet, and fine linen. - -38:24 All the gold that was occupied for the work in all the work of -the holy place, even the gold of the offering, was twenty and nine -talents, and seven hundred and thirty shekels, after the shekel of the -sanctuary. - -38:25 And the silver of them that were numbered of the congregation -was an hundred talents, and a thousand seven hundred and threescore -and fifteen shekels, after the shekel of the sanctuary: 38:26 A bekah -for every man, that is, half a shekel, after the shekel of the -sanctuary, for every one that went to be numbered, from twenty years -old and upward, for six hundred thousand and three thousand and five -hundred and fifty men. - -38:27 And of the hundred talents of silver were cast the sockets of -the sanctuary, and the sockets of the vail; an hundred sockets of the -hundred talents, a talent for a socket. - -38:28 And of the thousand seven hundred seventy and five shekels he -made hooks for the pillars, and overlaid their chapiters, and filleted -them. - -38:29 And the brass of the offering was seventy talents, and two -thousand and four hundred shekels. - -38:30 And therewith he made the sockets to the door of the tabernacle -of the congregation, and the brasen altar, and the brasen grate for -it, and all the vessels of the altar, 38:31 And the sockets of the -court round about, and the sockets of the court gate, and all the pins -of the tabernacle, and all the pins of the court round about. - -39:1 And of the blue, and purple, and scarlet, they made cloths of -service, to do service in the holy place, and made the holy garments -for Aaron; as the LORD commanded Moses. - -39:2 And he made the ephod of gold, blue, and purple, and scarlet, and -fine twined linen. - -39:3 And they did beat the gold into thin plates, and cut it into -wires, to work it in the blue, and in the purple, and in the scarlet, -and in the fine linen, with cunning work. - -39:4 They made shoulderpieces for it, to couple it together: by the -two edges was it coupled together. - -39:5 And the curious girdle of his ephod, that was upon it, was of the -same, according to the work thereof; of gold, blue, and purple, and -scarlet, and fine twined linen; as the LORD commanded Moses. - -39:6 And they wrought onyx stones inclosed in ouches of gold, graven, -as signets are graven, with the names of the children of Israel. - -39:7 And he put them on the shoulders of the ephod, that they should -be stones for a memorial to the children of Israel; as the LORD -commanded Moses. - -39:8 And he made the breastplate of cunning work, like the work of the -ephod; of gold, blue, and purple, and scarlet, and fine twined linen. - -39:9 It was foursquare; they made the breastplate double: a span was -the length thereof, and a span the breadth thereof, being doubled. - -39:10 And they set in it four rows of stones: the first row was a -sardius, a topaz, and a carbuncle: this was the first row. - -39:11 And the second row, an emerald, a sapphire, and a diamond. - -39:12 And the third row, a ligure, an agate, and an amethyst. - -39:13 And the fourth row, a beryl, an onyx, and a jasper: they were -inclosed in ouches of gold in their inclosings. - -39:14 And the stones were according to the names of the children of -Israel, twelve, according to their names, like the engravings of a -signet, every one with his name, according to the twelve tribes. - -39:15 And they made upon the breastplate chains at the ends, of -wreathen work of pure gold. - -39:16 And they made two ouches of gold, and two gold rings; and put -the two rings in the two ends of the breastplate. - -39:17 And they put the two wreathen chains of gold in the two rings on -the ends of the breastplate. - -39:18 And the two ends of the two wreathen chains they fastened in the -two ouches, and put them on the shoulderpieces of the ephod, before -it. - -39:19 And they made two rings of gold, and put them on the two ends of -the breastplate, upon the border of it, which was on the side of the -ephod inward. - -39:20 And they made two other golden rings, and put them on the two -sides of the ephod underneath, toward the forepart of it, over against -the other coupling thereof, above the curious girdle of the ephod. - -39:21 And they did bind the breastplate by his rings unto the rings of -the ephod with a lace of blue, that it might be above the curious -girdle of the ephod, and that the breastplate might not be loosed from -the ephod; as the LORD commanded Moses. - -39:22 And he made the robe of the ephod of woven work, all of blue. - -39:23 And there was an hole in the midst of the robe, as the hole of -an habergeon, with a band round about the hole, that it should not -rend. - -39:24 And they made upon the hems of the robe pomegranates of blue, -and purple, and scarlet, and twined linen. - -39:25 And they made bells of pure gold, and put the bells between the -pomegranates upon the hem of the robe, round about between the -pomegranates; 39:26 A bell and a pomegranate, a bell and a -pomegranate, round about the hem of the robe to minister in; as the -LORD commanded Moses. - -39:27 And they made coats of fine linen of woven work for Aaron, and -for his sons, 39:28 And a mitre of fine linen, and goodly bonnets of -fine linen, and linen breeches of fine twined linen, 39:29 And a -girdle of fine twined linen, and blue, and purple, and scarlet, of -needlework; as the LORD commanded Moses. - -39:30 And they made the plate of the holy crown of pure gold, and -wrote upon it a writing, like to the engravings of a signet, HOLINESS -TO THE LORD. - -39:31 And they tied unto it a lace of blue, to fasten it on high upon -the mitre; as the LORD commanded Moses. - -39:32 Thus was all the work of the tabernacle of the tent of the -congregation finished: and the children of Israel did according to all -that the LORD commanded Moses, so did they. - -39:33 And they brought the tabernacle unto Moses, the tent, and all -his furniture, his taches, his boards, his bars, and his pillars, and -his sockets, 39:34 And the covering of rams' skins dyed red, and the -covering of badgers' skins, and the vail of the covering, 39:35 The -ark of the testimony, and the staves thereof, and the mercy seat, -39:36 The table, and all the vessels thereof, and the shewbread, 39:37 -The pure candlestick, with the lamps thereof, even with the lamps to -be set in order, and all the vessels thereof, and the oil for light, -39:38 And the golden altar, and the anointing oil, and the sweet -incense, and the hanging for the tabernacle door, 39:39 The brasen -altar, and his grate of brass, his staves, and all his vessels, the -laver and his foot, 39:40 The hangings of the court, his pillars, and -his sockets, and the hanging for the court gate, his cords, and his -pins, and all the vessels of the service of the tabernacle, for the -tent of the congregation, 39:41 The cloths of service to do service in -the holy place, and the holy garments for Aaron the priest, and his -sons' garments, to minister in the priest's office. - -39:42 According to all that the LORD commanded Moses, so the children -of Israel made all the work. - -39:43 And Moses did look upon all the work, and, behold, they had done -it as the LORD had commanded, even so had they done it: and Moses -blessed them. - -40:1 And the LORD spake unto Moses, saying, 40:2 On the first day of -the first month shalt thou set up the tabernacle of the tent of the -congregation. - -40:3 And thou shalt put therein the ark of the testimony, and cover -the ark with the vail. - -40:4 And thou shalt bring in the table, and set in order the things -that are to be set in order upon it; and thou shalt bring in the -candlestick, and light the lamps thereof. - -40:5 And thou shalt set the altar of gold for the incense before the -ark of the testimony, and put the hanging of the door to the -tabernacle. - -40:6 And thou shalt set the altar of the burnt offering before the -door of the tabernacle of the tent of the congregation. - -40:7 And thou shalt set the laver between the tent of the congregation -and the altar, and shalt put water therein. - -40:8 And thou shalt set up the court round about, and hang up the -hanging at the court gate. - -40:9 And thou shalt take the anointing oil, and anoint the tabernacle, -and all that is therein, and shalt hallow it, and all the vessels -thereof: and it shall be holy. - -40:10 And thou shalt anoint the altar of the burnt offering, and all -his vessels, and sanctify the altar: and it shall be an altar most -holy. - -40:11 And thou shalt anoint the laver and his foot, and sanctify it. - -40:12 And thou shalt bring Aaron and his sons unto the door of the -tabernacle of the congregation, and wash them with water. - -40:13 And thou shalt put upon Aaron the holy garments, and anoint him, -and sanctify him; that he may minister unto me in the priest's office. - -40:14 And thou shalt bring his sons, and clothe them with coats: 40:15 -And thou shalt anoint them, as thou didst anoint their father, that -they may minister unto me in the priest's office: for their anointing -shall surely be an everlasting priesthood throughout their -generations. - -40:16 Thus did Moses: according to all that the LORD commanded him, so -did he. - -40:17 And it came to pass in the first month in the second year, on -the first day of the month, that the tabernacle was reared up. - -40:18 And Moses reared up the tabernacle, and fastened his sockets, -and set up the boards thereof, and put in the bars thereof, and reared -up his pillars. - -40:19 And he spread abroad the tent over the tabernacle, and put the -covering of the tent above upon it; as the LORD commanded Moses. - -40:20 And he took and put the testimony into the ark, and set the -staves on the ark, and put the mercy seat above upon the ark: 40:21 -And he brought the ark into the tabernacle, and set up the vail of the -covering, and covered the ark of the testimony; as the LORD commanded -Moses. - -40:22 And he put the table in the tent of the congregation, upon the -side of the tabernacle northward, without the vail. - -40:23 And he set the bread in order upon it before the LORD; as the -LORD had commanded Moses. - -40:24 And he put the candlestick in the tent of the congregation, over -against the table, on the side of the tabernacle southward. - -40:25 And he lighted the lamps before the LORD; as the LORD commanded -Moses. - -40:26 And he put the golden altar in the tent of the congregation -before the vail: 40:27 And he burnt sweet incense thereon; as the LORD -commanded Moses. - -40:28 And he set up the hanging at the door of the tabernacle. - -40:29 And he put the altar of burnt offering by the door of the -tabernacle of the tent of the congregation, and offered upon it the -burnt offering and the meat offering; as the LORD commanded Moses. - -40:30 And he set the laver between the tent of the congregation and -the altar, and put water there, to wash withal. - -40:31 And Moses and Aaron and his sons washed their hands and their -feet thereat: 40:32 When they went into the tent of the congregation, -and when they came near unto the altar, they washed; as the LORD -commanded Moses. - -40:33 And he reared up the court round about the tabernacle and the -altar, and set up the hanging of the court gate. So Moses finished the -work. - -40:34 Then a cloud covered the tent of the congregation, and the glory -of the LORD filled the tabernacle. - -40:35 And Moses was not able to enter into the tent of the -congregation, because the cloud abode thereon, and the glory of the -LORD filled the tabernacle. - -40:36 And when the cloud was taken up from over the tabernacle, the -children of Israel went onward in all their journeys: 40:37 But if the -cloud were not taken up, then they journeyed not till the day that it -was taken up. - -40:38 For the cloud of the LORD was upon the tabernacle by day, and -fire was on it by night, in the sight of all the house of Israel, -throughout all their journeys. - - - - -The Third Book of Moses: Called Leviticus - - -1:1 And the LORD called unto Moses, and spake unto him out of the -tabernacle of the congregation, saying, 1:2 Speak unto the children of -Israel, and say unto them, If any man of you bring an offering unto -the LORD, ye shall bring your offering of the cattle, even of the -herd, and of the flock. - -1:3 If his offering be a burnt sacrifice of the herd, let him offer a -male without blemish: he shall offer it of his own voluntary will at -the door of the tabernacle of the congregation before the LORD. - -1:4 And he shall put his hand upon the head of the burnt offering; and -it shall be accepted for him to make atonement for him. - -1:5 And he shall kill the bullock before the LORD: and the priests, -Aaron's sons, shall bring the blood, and sprinkle the blood round -about upon the altar that is by the door of the tabernacle of the -congregation. - -1:6 And he shall flay the burnt offering, and cut it into his pieces. - -1:7 And the sons of Aaron the priest shall put fire upon the altar, -and lay the wood in order upon the fire: 1:8 And the priests, Aaron's -sons, shall lay the parts, the head, and the fat, in order upon the -wood that is on the fire which is upon the altar: 1:9 But his inwards -and his legs shall he wash in water: and the priest shall burn all on -the altar, to be a burnt sacrifice, an offering made by fire, of a -sweet savour unto the LORD. - -1:10 And if his offering be of the flocks, namely, of the sheep, or of -the goats, for a burnt sacrifice; he shall bring it a male without -blemish. - -1:11 And he shall kill it on the side of the altar northward before -the LORD: and the priests, Aaron's sons, shall sprinkle his blood -round about upon the altar. - -1:12 And he shall cut it into his pieces, with his head and his fat: -and the priest shall lay them in order on the wood that is on the fire -which is upon the altar: 1:13 But he shall wash the inwards and the -legs with water: and the priest shall bring it all, and burn it upon -the altar: it is a burnt sacrifice, an offering made by fire, of a -sweet savour unto the LORD. - -1:14 And if the burnt sacrifice for his offering to the LORD be of -fowls, then he shall bring his offering of turtledoves, or of young -pigeons. - -1:15 And the priest shall bring it unto the altar, and wring off his -head, and burn it on the altar; and the blood thereof shall be wrung -out at the side of the altar: 1:16 And he shall pluck away his crop -with his feathers, and cast it beside the altar on the east part, by -the place of the ashes: 1:17 And he shall cleave it with the wings -thereof, but shall not divide it asunder: and the priest shall burn it -upon the altar, upon the wood that is upon the fire: it is a burnt -sacrifice, an offering made by fire, of a sweet savour unto the LORD. - -2:1 And when any will offer a meat offering unto the LORD, his -offering shall be of fine flour; and he shall pour oil upon it, and -put frankincense thereon: 2:2 And he shall bring it to Aaron's sons -the priests: and he shall take thereout his handful of the flour -thereof, and of the oil thereof, with all the frankincense thereof; -and the priest shall burn the memorial of it upon the altar, to be an -offering made by fire, of a sweet savour unto the LORD: 2:3 And the -remnant of the meat offering shall be Aaron's and his sons': it is a -thing most holy of the offerings of the LORD made by fire. - -2:4 And if thou bring an oblation of a meat offering baken in the -oven, it shall be unleavened cakes of fine flour mingled with oil, or -unleavened wafers anointed with oil. - -2:5 And if thy oblation be a meat offering baken in a pan, it shall be -of fine flour unleavened, mingled with oil. - -2:6 Thou shalt part it in pieces, and pour oil thereon: it is a meat -offering. - -2:7 And if thy oblation be a meat offering baken in the fryingpan, it -shall be made of fine flour with oil. - -2:8 And thou shalt bring the meat offering that is made of these -things unto the LORD: and when it is presented unto the priest, he -shall bring it unto the altar. - -2:9 And the priest shall take from the meat offering a memorial -thereof, and shall burn it upon the altar: it is an offering made by -fire, of a sweet savour unto the LORD. - -2:10 And that which is left of the meat offering shall be Aaron's and -his sons': it is a thing most holy of the offerings of the LORD made -by fire. - -2:11 No meat offering, which ye shall bring unto the LORD, shall be -made with leaven: for ye shall burn no leaven, nor any honey, in any -offering of the LORD made by fire. - -2:12 As for the oblation of the firstfruits, ye shall offer them unto -the LORD: but they shall not be burnt on the altar for a sweet savour. - -2:13 And every oblation of thy meat offering shalt thou season with -salt; neither shalt thou suffer the salt of the covenant of thy God to -be lacking from thy meat offering: with all thine offerings thou shalt -offer salt. - -2:14 And if thou offer a meat offering of thy firstfruits unto the -LORD, thou shalt offer for the meat offering of thy firstfruits green -ears of corn dried by the fire, even corn beaten out of full ears. - -2:15 And thou shalt put oil upon it, and lay frankincense thereon: it -is a meat offering. - -2:16 And the priest shall burn the memorial of it, part of the beaten -corn thereof, and part of the oil thereof, with all the frankincense -thereof: it is an offering made by fire unto the LORD. - -3:1 And if his oblation be a sacrifice of peace offering, if he offer -it of the herd; whether it be a male or female, he shall offer it -without blemish before the LORD. - -3:2 And he shall lay his hand upon the head of his offering, and kill -it at the door of the tabernacle of the congregation: and Aaron's sons -the priests shall sprinkle the blood upon the altar round about. - -3:3 And he shall offer of the sacrifice of the peace offering an -offering made by fire unto the LORD; the fat that covereth the -inwards, and all the fat that is upon the inwards, 3:4 And the two -kidneys, and the fat that is on them, which is by the flanks, and the -caul above the liver, with the kidneys, it shall he take away. - -3:5 And Aaron's sons shall burn it on the altar upon the burnt -sacrifice, which is upon the wood that is on the fire: it is an -offering made by fire, of a sweet savour unto the LORD. - -3:6 And if his offering for a sacrifice of peace offering unto the -LORD be of the flock; male or female, he shall offer it without -blemish. - -3:7 If he offer a lamb for his offering, then shall he offer it before -the LORD. - -3:8 And he shall lay his hand upon the head of his offering, and kill -it before the tabernacle of the congregation: and Aaron's sons shall -sprinkle the blood thereof round about upon the altar. - -3:9 And he shall offer of the sacrifice of the peace offering an -offering made by fire unto the LORD; the fat thereof, and the whole -rump, it shall he take off hard by the backbone; and the fat that -covereth the inwards, and all the fat that is upon the inwards, 3:10 -And the two kidneys, and the fat that is upon them, which is by the -flanks, and the caul above the liver, with the kidneys, it shall he -take away. - -3:11 And the priest shall burn it upon the altar: it is the food of -the offering made by fire unto the LORD. - -3:12 And if his offering be a goat, then he shall offer it before the -LORD. - -3:13 And he shall lay his hand upon the head of it, and kill it before -the tabernacle of the congregation: and the sons of Aaron shall -sprinkle the blood thereof upon the altar round about. - -3:14 And he shall offer thereof his offering, even an offering made by -fire unto the LORD; the fat that covereth the inwards, and all the fat -that is upon the inwards, 3:15 And the two kidneys, and the fat that -is upon them, which is by the flanks, and the caul above the liver, -with the kidneys, it shall he take away. - -3:16 And the priest shall burn them upon the altar: it is the food of -the offering made by fire for a sweet savour: all the fat is the -LORD's. - -3:17 It shall be a perpetual statute for your generations throughout -all your dwellings, that ye eat neither fat nor blood. - -4:1 And the LORD spake unto Moses, saying, 4:2 Speak unto the children -of Israel, saying, If a soul shall sin through ignorance against any -of the commandments of the LORD concerning things which ought not to -be done, and shall do against any of them: 4:3 If the priest that is -anointed do sin according to the sin of the people; then let him bring -for his sin, which he hath sinned, a young bullock without blemish -unto the LORD for a sin offering. - -4:4 And he shall bring the bullock unto the door of the tabernacle of -the congregation before the LORD; and shall lay his hand upon the -bullock's head, and kill the bullock before the LORD. - -4:5 And the priest that is anointed shall take of the bullock's blood, -and bring it to the tabernacle of the congregation: 4:6 And the priest -shall dip his finger in the blood, and sprinkle of the blood seven -times before the LORD, before the vail of the sanctuary. - -4:7 And the priest shall put some of the blood upon the horns of the -altar of sweet incense before the LORD, which is in the tabernacle of -the congregation; and shall pour all the blood of the bullock at the -bottom of the altar of the burnt offering, which is at the door of the -tabernacle of the congregation. - -4:8 And he shall take off from it all the fat of the bullock for the -sin offering; the fat that covereth the inwards, and all the fat that -is upon the inwards, 4:9 And the two kidneys, and the fat that is upon -them, which is by the flanks, and the caul above the liver, with the -kidneys, it shall he take away, 4:10 As it was taken off from the -bullock of the sacrifice of peace offerings: and the priest shall burn -them upon the altar of the burnt offering. - -4:11 And the skin of the bullock, and all his flesh, with his head, -and with his legs, and his inwards, and his dung, 4:12 Even the whole -bullock shall he carry forth without the camp unto a clean place, -where the ashes are poured out, and burn him on the wood with fire: -where the ashes are poured out shall he be burnt. - -4:13 And if the whole congregation of Israel sin through ignorance, -and the thing be hid from the eyes of the assembly, and they have done -somewhat against any of the commandments of the LORD concerning things -which should not be done, and are guilty; 4:14 When the sin, which -they have sinned against it, is known, then the congregation shall -offer a young bullock for the sin, and bring him before the tabernacle -of the congregation. - -4:15 And the elders of the congregation shall lay their hands upon the -head of the bullock before the LORD: and the bullock shall be killed -before the LORD. - -4:16 And the priest that is anointed shall bring of the bullock's -blood to the tabernacle of the congregation: 4:17 And the priest shall -dip his finger in some of the blood, and sprinkle it seven times -before the LORD, even before the vail. - -4:18 And he shall put some of the blood upon the horns of the altar -which is before the LORD, that is in the tabernacle of the -congregation, and shall pour out all the blood at the bottom of the -altar of the burnt offering, which is at the door of the tabernacle of -the congregation. - -4:19 And he shall take all his fat from him, and burn it upon the -altar. - -4:20 And he shall do with the bullock as he did with the bullock for a -sin offering, so shall he do with this: and the priest shall make an -atonement for them, and it shall be forgiven them. - -4:21 And he shall carry forth the bullock without the camp, and burn -him as he burned the first bullock: it is a sin offering for the -congregation. - -4:22 When a ruler hath sinned, and done somewhat through ignorance -against any of the commandments of the LORD his God concerning things -which should not be done, and is guilty; 4:23 Or if his sin, wherein -he hath sinned, come to his knowledge; he shall bring his offering, a -kid of the goats, a male without blemish: 4:24 And he shall lay his -hand upon the head of the goat, and kill it in the place where they -kill the burnt offering before the LORD: it is a sin offering. - -4:25 And the priest shall take of the blood of the sin offering with -his finger, and put it upon the horns of the altar of burnt offering, -and shall pour out his blood at the bottom of the altar of burnt -offering. - -4:26 And he shall burn all his fat upon the altar, as the fat of the -sacrifice of peace offerings: and the priest shall make an atonement -for him as concerning his sin, and it shall be forgiven him. - -4:27 And if any one of the common people sin through ignorance, while -he doeth somewhat against any of the commandments of the LORD -concerning things which ought not to be done, and be guilty; 4:28 Or -if his sin, which he hath sinned, come to his knowledge: then he shall -bring his offering, a kid of the goats, a female without blemish, for -his sin which he hath sinned. - -4:29 And he shall lay his hand upon the head of the sin offering, and -slay the sin offering in the place of the burnt offering. - -4:30 And the priest shall take of the blood thereof with his finger, -and put it upon the horns of the altar of burnt offering, and shall -pour out all the blood thereof at the bottom of the altar. - -4:31 And he shall take away all the fat thereof, as the fat is taken -away from off the sacrifice of peace offerings; and the priest shall -burn it upon the altar for a sweet savour unto the LORD; and the -priest shall make an atonement for him, and it shall be forgiven him. - -4:32 And if he bring a lamb for a sin offering, he shall bring it a -female without blemish. - -4:33 And he shall lay his hand upon the head of the sin offering, and -slay it for a sin offering in the place where they kill the burnt -offering. - -4:34 And the priest shall take of the blood of the sin offering with -his finger, and put it upon the horns of the altar of burnt offering, -and shall pour out all the blood thereof at the bottom of the altar: -4:35 And he shall take away all the fat thereof, as the fat of the -lamb is taken away from the sacrifice of the peace offerings; and the -priest shall burn them upon the altar, according to the offerings made -by fire unto the LORD: and the priest shall make an atonement for his -sin that he hath committed, and it shall be forgiven him. - -5:1 And if a soul sin, and hear the voice of swearing, and is a -witness, whether he hath seen or known of it; if he do not utter it, -then he shall bear his iniquity. - -5:2 Or if a soul touch any unclean thing, whether it be a carcase of -an unclean beast, or a carcase of unclean cattle, or the carcase of -unclean creeping things, and if it be hidden from him; he also shall -be unclean, and guilty. - -5:3 Or if he touch the uncleanness of man, whatsoever uncleanness it -be that a man shall be defiled withal, and it be hid from him; when he -knoweth of it, then he shall be guilty. - -5:4 Or if a soul swear, pronouncing with his lips to do evil, or to do -good, whatsoever it be that a man shall pronounce with an oath, and it -be hid from him; when he knoweth of it, then he shall be guilty in one -of these. - -5:5 And it shall be, when he shall be guilty in one of these things, -that he shall confess that he hath sinned in that thing: 5:6 And he -shall bring his trespass offering unto the LORD for his sin which he -hath sinned, a female from the flock, a lamb or a kid of the goats, -for a sin offering; and the priest shall make an atonement for him -concerning his sin. - -5:7 And if he be not able to bring a lamb, then he shall bring for his -trespass, which he hath committed, two turtledoves, or two young -pigeons, unto the LORD; one for a sin offering, and the other for a -burnt offering. - -5:8 And he shall bring them unto the priest, who shall offer that -which is for the sin offering first, and wring off his head from his -neck, but shall not divide it asunder: 5:9 And he shall sprinkle of -the blood of the sin offering upon the side of the altar; and the rest -of the blood shall be wrung out at the bottom of the altar: it is a -sin offering. - -5:10 And he shall offer the second for a burnt offering, according to -the manner: and the priest shall make an atonement for him for his sin -which he hath sinned, and it shall be forgiven him. - -5:11 But if he be not able to bring two turtledoves, or two young -pigeons, then he that sinned shall bring for his offering the tenth -part of an ephah of fine flour for a sin offering; he shall put no oil -upon it, neither shall he put any frankincense thereon: for it is a -sin offering. - -5:12 Then shall he bring it to the priest, and the priest shall take -his handful of it, even a memorial thereof, and burn it on the altar, -according to the offerings made by fire unto the LORD: it is a sin -offering. - -5:13 And the priest shall make an atonement for him as touching his -sin that he hath sinned in one of these, and it shall be forgiven him: -and the remnant shall be the priest's, as a meat offering. - -5:14 And the LORD spake unto Moses, saying, 5:15 If a soul commit a -trespass, and sin through ignorance, in the holy things of the LORD; -then he shall bring for his trespass unto the LORD a ram without -blemish out of the flocks, with thy estimation by shekels of silver, -after the shekel of the sanctuary, for a trespass offering. - -5:16 And he shall make amends for the harm that he hath done in the -holy thing, and shall add the fifth part thereto, and give it unto the -priest: and the priest shall make an atonement for him with the ram of -the trespass offering, and it shall be forgiven him. - -5:17 And if a soul sin, and commit any of these things which are -forbidden to be done by the commandments of the LORD; though he wist -it not, yet is he guilty, and shall bear his iniquity. - -5:18 And he shall bring a ram without blemish out of the flock, with -thy estimation, for a trespass offering, unto the priest: and the -priest shall make an atonement for him concerning his ignorance -wherein he erred and wist it not, and it shall be forgiven him. - -5:19 It is a trespass offering: he hath certainly trespassed against -the LORD. - -6:1 And the LORD spake unto Moses, saying, 6:2 If a soul sin, and -commit a trespass against the LORD, and lie unto his neighbour in that -which was delivered him to keep, or in fellowship, or in a thing taken -away by violence, or hath deceived his neighbour; 6:3 Or have found -that which was lost, and lieth concerning it, and sweareth falsely; in -any of all these that a man doeth, sinning therein: 6:4 Then it shall -be, because he hath sinned, and is guilty, that he shall restore that -which he took violently away, or the thing which he hath deceitfully -gotten, or that which was delivered him to keep, or the lost thing -which he found, 6:5 Or all that about which he hath sworn falsely; he -shall even restore it in the principal, and shall add the fifth part -more thereto, and give it unto him to whom it appertaineth, in the day -of his trespass offering. - -6:6 And he shall bring his trespass offering unto the LORD, a ram -without blemish out of the flock, with thy estimation, for a trespass -offering, unto the priest: 6:7 And the priest shall make an atonement -for him before the LORD: and it shall be forgiven him for any thing of -all that he hath done in trespassing therein. - -6:8 And the LORD spake unto Moses, saying, 6:9 Command Aaron and his -sons, saying, This is the law of the burnt offering: It is the burnt -offering, because of the burning upon the altar all night unto the -morning, and the fire of the altar shall be burning in it. - -6:10 And the priest shall put on his linen garment, and his linen -breeches shall he put upon his flesh, and take up the ashes which the -fire hath consumed with the burnt offering on the altar, and he shall -put them beside the altar. - -6:11 And he shall put off his garments, and put on other garments, and -carry forth the ashes without the camp unto a clean place. - -6:12 And the fire upon the altar shall be burning in it; it shall not -be put out: and the priest shall burn wood on it every morning, and -lay the burnt offering in order upon it; and he shall burn thereon the -fat of the peace offerings. - -6:13 The fire shall ever be burning upon the altar; it shall never go -out. - -6:14 And this is the law of the meat offering: the sons of Aaron shall -offer it before the LORD, before the altar. - -6:15 And he shall take of it his handful, of the flour of the meat -offering, and of the oil thereof, and all the frankincense which is -upon the meat offering, and shall burn it upon the altar for a sweet -savour, even the memorial of it, unto the LORD. - -6:16 And the remainder thereof shall Aaron and his sons eat: with -unleavened bread shall it be eaten in the holy place; in the court of -the tabernacle of the congregation they shall eat it. - -6:17 It shall not be baken with leaven. I have given it unto them for -their portion of my offerings made by fire; it is most holy, as is the -sin offering, and as the trespass offering. - -6:18 All the males among the children of Aaron shall eat of it. It -shall be a statute for ever in your generations concerning the -offerings of the LORD made by fire: every one that toucheth them shall -be holy. - -6:19 And the LORD spake unto Moses, saying, 6:20 This is the offering -of Aaron and of his sons, which they shall offer unto the LORD in the -day when he is anointed; the tenth part of an ephah of fine flour for -a meat offering perpetual, half of it in the morning, and half thereof -at night. - -6:21 In a pan it shall be made with oil; and when it is baken, thou -shalt bring it in: and the baken pieces of the meat offering shalt -thou offer for a sweet savour unto the LORD. - -6:22 And the priest of his sons that is anointed in his stead shall -offer it: it is a statute for ever unto the LORD; it shall be wholly -burnt. - -6:23 For every meat offering for the priest shall be wholly burnt: it -shall not be eaten. - -6:24 And the LORD spake unto Moses, saying, 6:25 Speak unto Aaron and -to his sons, saying, This is the law of the sin offering: In the place -where the burnt offering is killed shall the sin offering be killed -before the LORD: it is most holy. - -6:26 The priest that offereth it for sin shall eat it: in the holy -place shall it be eaten, in the court of the tabernacle of the -congregation. - -6:27 Whatsoever shall touch the flesh thereof shall be holy: and when -there is sprinkled of the blood thereof upon any garment, thou shalt -wash that whereon it was sprinkled in the holy place. - -6:28 But the earthen vessel wherein it is sodden shall be broken: and -if it be sodden in a brasen pot, it shall be both scoured, and rinsed -in water. - -6:29 All the males among the priests shall eat thereof: it is most -holy. - -6:30 And no sin offering, whereof any of the blood is brought into the -tabernacle of the congregation to reconcile withal in the holy place, -shall be eaten: it shall be burnt in the fire. - -7:1 Likewise this is the law of the trespass offering: it is most -holy. - -7:2 In the place where they kill the burnt offering shall they kill -the trespass offering: and the blood thereof shall he sprinkle round -about upon the altar. - -7:3 And he shall offer of it all the fat thereof; the rump, and the -fat that covereth the inwards, 7:4 And the two kidneys, and the fat -that is on them, which is by the flanks, and the caul that is above -the liver, with the kidneys, it shall he take away: 7:5 And the priest -shall burn them upon the altar for an offering made by fire unto the -LORD: it is a trespass offering. - -7:6 Every male among the priests shall eat thereof: it shall be eaten -in the holy place: it is most holy. - -7:7 As the sin offering is, so is the trespass offering: there is one -law for them: the priest that maketh atonement therewith shall have -it. - -7:8 And the priest that offereth any man's burnt offering, even the -priest shall have to himself the skin of the burnt offering which he -hath offered. - -7:9 And all the meat offering that is baken in the oven, and all that -is dressed in the fryingpan, and in the pan, shall be the priest's -that offereth it. - -7:10 And every meat offering, mingled with oil, and dry, shall all the -sons of Aaron have, one as much as another. - -7:11 And this is the law of the sacrifice of peace offerings, which he -shall offer unto the LORD. - -7:12 If he offer it for a thanksgiving, then he shall offer with the -sacrifice of thanksgiving unleavened cakes mingled with oil, and -unleavened wafers anointed with oil, and cakes mingled with oil, of -fine flour, fried. - -7:13 Besides the cakes, he shall offer for his offering leavened bread -with the sacrifice of thanksgiving of his peace offerings. - -7:14 And of it he shall offer one out of the whole oblation for an -heave offering unto the LORD, and it shall be the priest's that -sprinkleth the blood of the peace offerings. - -7:15 And the flesh of the sacrifice of his peace offerings for -thanksgiving shall be eaten the same day that it is offered; he shall -not leave any of it until the morning. - -7:16 But if the sacrifice of his offering be a vow, or a voluntary -offering, it shall be eaten the same day that he offereth his -sacrifice: and on the morrow also the remainder of it shall be eaten: -7:17 But the remainder of the flesh of the sacrifice on the third day -shall be burnt with fire. - -7:18 And if any of the flesh of the sacrifice of his peace offerings -be eaten at all on the third day, it shall not be accepted, neither -shall it be imputed unto him that offereth it: it shall be an -abomination, and the soul that eateth of it shall bear his iniquity. - -7:19 And the flesh that toucheth any unclean thing shall not be eaten; -it shall be burnt with fire: and as for the flesh, all that be clean -shall eat thereof. - -7:20 But the soul that eateth of the flesh of the sacrifice of peace -offerings, that pertain unto the LORD, having his uncleanness upon -him, even that soul shall be cut off from his people. - -7:21 Moreover the soul that shall touch any unclean thing, as the -uncleanness of man, or any unclean beast, or any abominable unclean -thing, and eat of the flesh of the sacrifice of peace offerings, which -pertain unto the LORD, even that soul shall be cut off from his -people. - -7:22 And the LORD spake unto Moses, saying, 7:23 Speak unto the -children of Israel, saying, Ye shall eat no manner of fat, of ox, or -of sheep, or of goat. - -7:24 And the fat of the beast that dieth of itself, and the fat of -that which is torn with beasts, may be used in any other use: but ye -shall in no wise eat of it. - -7:25 For whosoever eateth the fat of the beast, of which men offer an -offering made by fire unto the LORD, even the soul that eateth it -shall be cut off from his people. - -7:26 Moreover ye shall eat no manner of blood, whether it be of fowl -or of beast, in any of your dwellings. - -7:27 Whatsoever soul it be that eateth any manner of blood, even that -soul shall be cut off from his people. - -7:28 And the LORD spake unto Moses, saying, 7:29 Speak unto the -children of Israel, saying, He that offereth the sacrifice of his -peace offerings unto the LORD shall bring his oblation unto the LORD -of the sacrifice of his peace offerings. - -7:30 His own hands shall bring the offerings of the LORD made by fire, -the fat with the breast, it shall he bring, that the breast may be -waved for a wave offering before the LORD. - -7:31 And the priest shall burn the fat upon the altar: but the breast -shall be Aaron's and his sons'. - -7:32 And the right shoulder shall ye give unto the priest for an heave -offering of the sacrifices of your peace offerings. - -7:33 He among the sons of Aaron, that offereth the blood of the peace -offerings, and the fat, shall have the right shoulder for his part. - -7:34 For the wave breast and the heave shoulder have I taken of the -children of Israel from off the sacrifices of their peace offerings, -and have given them unto Aaron the priest and unto his sons by a -statute for ever from among the children of Israel. - -7:35 This is the portion of the anointing of Aaron, and of the -anointing of his sons, out of the offerings of the LORD made by fire, -in the day when he presented them to minister unto the LORD in the -priest's office; 7:36 Which the LORD commanded to be given them of the -children of Israel, in the day that he anointed them, by a statute for -ever throughout their generations. - -7:37 This is the law of the burnt offering, of the meat offering, and -of the sin offering, and of the trespass offering, and of the -consecrations, and of the sacrifice of the peace offerings; 7:38 Which -the LORD commanded Moses in mount Sinai, in the day that he commanded -the children of Israel to offer their oblations unto the LORD, in the -wilderness of Sinai. - -8:1 And the LORD spake unto Moses, saying, 8:2 Take Aaron and his sons -with him, and the garments, and the anointing oil, and a bullock for -the sin offering, and two rams, and a basket of unleavened bread; 8:3 -And gather thou all the congregation together unto the door of the -tabernacle of the congregation. - -8:4 And Moses did as the LORD commanded him; and the assembly was -gathered together unto the door of the tabernacle of the congregation. - -8:5 And Moses said unto the congregation, This is the thing which the -LORD commanded to be done. - -8:6 And Moses brought Aaron and his sons, and washed them with water. - -8:7 And he put upon him the coat, and girded him with the girdle, and -clothed him with the robe, and put the ephod upon him, and he girded -him with the curious girdle of the ephod, and bound it unto him -therewith. - -8:8 And he put the breastplate upon him: also he put in the -breastplate the Urim and the Thummim. - -8:9 And he put the mitre upon his head; also upon the mitre, even upon -his forefront, did he put the golden plate, the holy crown; as the -LORD commanded Moses. - -8:10 And Moses took the anointing oil, and anointed the tabernacle and -all that was therein, and sanctified them. - -8:11 And he sprinkled thereof upon the altar seven times, and anointed -the altar and all his vessels, both the laver and his foot, to -sanctify them. - -8:12 And he poured of the anointing oil upon Aaron's head, and -anointed him, to sanctify him. - -8:13 And Moses brought Aaron's sons, and put coats upon them, and -girded them with girdles, and put bonnets upon them; as the LORD -commanded Moses. - -8:14 And he brought the bullock for the sin offering: and Aaron and -his sons laid their hands upon the head of the bullock for the sin -offering. - -8:15 And he slew it; and Moses took the blood, and put it upon the -horns of the altar round about with his finger, and purified the -altar, and poured the blood at the bottom of the altar, and sanctified -it, to make reconciliation upon it. - -8:16 And he took all the fat that was upon the inwards, and the caul -above the liver, and the two kidneys, and their fat, and Moses burned -it upon the altar. - -8:17 But the bullock, and his hide, his flesh, and his dung, he burnt -with fire without the camp; as the LORD commanded Moses. - -8:18 And he brought the ram for the burnt offering: and Aaron and his -sons laid their hands upon the head of the ram. - -8:19 And he killed it; and Moses sprinkled the blood upon the altar -round about. - -8:20 And he cut the ram into pieces; and Moses burnt the head, and the -pieces, and the fat. - -8:21 And he washed the inwards and the legs in water; and Moses burnt -the whole ram upon the altar: it was a burnt sacrifice for a sweet -savour, and an offering made by fire unto the LORD; as the LORD -commanded Moses. - -8:22 And he brought the other ram, the ram of consecration: and Aaron -and his sons laid their hands upon the head of the ram. - -8:23 And he slew it; and Moses took of the blood of it, and put it -upon the tip of Aaron's right ear, and upon the thumb of his right -hand, and upon the great toe of his right foot. - -8:24 And he brought Aaron's sons, and Moses put of the blood upon the -tip of their right ear, and upon the thumbs of their right hands, and -upon the great toes of their right feet: and Moses sprinkled the blood -upon the altar round about. - -8:25 And he took the fat, and the rump, and all the fat that was upon -the inwards, and the caul above the liver, and the two kidneys, and -their fat, and the right shoulder: 8:26 And out of the basket of -unleavened bread, that was before the LORD, he took one unleavened -cake, and a cake of oiled bread, and one wafer, and put them on the -fat, and upon the right shoulder: 8:27 And he put all upon Aaron's -hands, and upon his sons' hands, and waved them for a wave offering -before the LORD. - -8:28 And Moses took them from off their hands, and burnt them on the -altar upon the burnt offering: they were consecrations for a sweet -savour: it is an offering made by fire unto the LORD. - -8:29 And Moses took the breast, and waved it for a wave offering -before the LORD: for of the ram of consecration it was Moses' part; as -the LORD commanded Moses. - -8:30 And Moses took of the anointing oil, and of the blood which was -upon the altar, and sprinkled it upon Aaron, and upon his garments, -and upon his sons, and upon his sons' garments with him; and -sanctified Aaron, and his garments, and his sons, and his sons' -garments with him. - -8:31 And Moses said unto Aaron and to his sons, Boil the flesh at the -door of the tabernacle of the congregation: and there eat it with the -bread that is in the basket of consecrations, as I commanded, saying, -Aaron and his sons shall eat it. - -8:32 And that which remaineth of the flesh and of the bread shall ye -burn with fire. - -8:33 And ye shall not go out of the door of the tabernacle of the -congregation in seven days, until the days of your consecration be at -an end: for seven days shall he consecrate you. - -8:34 As he hath done this day, so the LORD hath commanded to do, to -make an atonement for you. - -8:35 Therefore shall ye abide at the door of the tabernacle of the -congregation day and night seven days, and keep the charge of the -LORD, that ye die not: for so I am commanded. - -8:36 So Aaron and his sons did all things which the LORD commanded by -the hand of Moses. - -9:1 And it came to pass on the eighth day, that Moses called Aaron and -his sons, and the elders of Israel; 9:2 And he said unto Aaron, Take -thee a young calf for a sin offering, and a ram for a burnt offering, -without blemish, and offer them before the LORD. - -9:3 And unto the children of Israel thou shalt speak, saying, Take ye -a kid of the goats for a sin offering; and a calf and a lamb, both of -the first year, without blemish, for a burnt offering; 9:4 Also a -bullock and a ram for peace offerings, to sacrifice before the LORD; -and a meat offering mingled with oil: for to day the LORD will appear -unto you. - -9:5 And they brought that which Moses commanded before the tabernacle -of the congregation: and all the congregation drew near and stood -before the LORD. - -9:6 And Moses said, This is the thing which the LORD commanded that ye -should do: and the glory of the LORD shall appear unto you. - -9:7 And Moses said unto Aaron, Go unto the altar, and offer thy sin -offering, and thy burnt offering, and make an atonement for thyself, -and for the people: and offer the offering of the people, and make an -atonement for them; as the LORD commanded. - -9:8 Aaron therefore went unto the altar, and slew the calf of the sin -offering, which was for himself. - -9:9 And the sons of Aaron brought the blood unto him: and he dipped -his finger in the blood, and put it upon the horns of the altar, and -poured out the blood at the bottom of the altar: 9:10 But the fat, and -the kidneys, and the caul above the liver of the sin offering, he -burnt upon the altar; as the LORD commanded Moses. - -9:11 And the flesh and the hide he burnt with fire without the camp. - -9:12 And he slew the burnt offering; and Aaron's sons presented unto -him the blood, which he sprinkled round about upon the altar. - -9:13 And they presented the burnt offering unto him, with the pieces -thereof, and the head: and he burnt them upon the altar. - -9:14 And he did wash the inwards and the legs, and burnt them upon the -burnt offering on the altar. - -9:15 And he brought the people's offering, and took the goat, which -was the sin offering for the people, and slew it, and offered it for -sin, as the first. - -9:16 And he brought the burnt offering, and offered it according to -the manner. - -9:17 And he brought the meat offering, and took an handful thereof, -and burnt it upon the altar, beside the burnt sacrifice of the -morning. - -9:18 He slew also the bullock and the ram for a sacrifice of peace -offerings, which was for the people: and Aaron's sons presented unto -him the blood, which he sprinkled upon the altar round about, 9:19 And -the fat of the bullock and of the ram, the rump, and that which -covereth the inwards, and the kidneys, and the caul above the liver: -9:20 And they put the fat upon the breasts, and he burnt the fat upon -the altar: 9:21 And the breasts and the right shoulder Aaron waved for -a wave offering before the LORD; as Moses commanded. - -9:22 And Aaron lifted up his hand toward the people, and blessed them, -and came down from offering of the sin offering, and the burnt -offering, and peace offerings. - -9:23 And Moses and Aaron went into the tabernacle of the congregation, -and came out, and blessed the people: and the glory of the LORD -appeared unto all the people. - -9:24 And there came a fire out from before the LORD, and consumed upon -the altar the burnt offering and the fat: which when all the people -saw, they shouted, and fell on their faces. - -10:1 And Nadab and Abihu, the sons of Aaron, took either of them his -censer, and put fire therein, and put incense thereon, and offered -strange fire before the LORD, which he commanded them not. - -10:2 And there went out fire from the LORD, and devoured them, and -they died before the LORD. - -10:3 Then Moses said unto Aaron, This is it that the LORD spake, -saying, I will be sanctified in them that come nigh me, and before all -the people I will be glorified. And Aaron held his peace. - -10:4 And Moses called Mishael and Elzaphan, the sons of Uzziel the -uncle of Aaron, and said unto them, Come near, carry your brethren -from before the sanctuary out of the camp. - -10:5 So they went near, and carried them in their coats out of the -camp; as Moses had said. - -10:6 And Moses said unto Aaron, and unto Eleazar and unto Ithamar, his -sons, Uncover not your heads, neither rend your clothes; lest ye die, -and lest wrath come upon all the people: but let your brethren, the -whole house of Israel, bewail the burning which the LORD hath kindled. - -10:7 And ye shall not go out from the door of the tabernacle of the -congregation, lest ye die: for the anointing oil of the LORD is upon -you. And they did according to the word of Moses. - -10:8 And the LORD spake unto Aaron, saying, 10:9 Do not drink wine nor -strong drink, thou, nor thy sons with thee, when ye go into the -tabernacle of the congregation, lest ye die: it shall be a statute for -ever throughout your generations: 10:10 And that ye may put difference -between holy and unholy, and between unclean and clean; 10:11 And that -ye may teach the children of Israel all the statutes which the LORD -hath spoken unto them by the hand of Moses. - -10:12 And Moses spake unto Aaron, and unto Eleazar and unto Ithamar, -his sons that were left, Take the meat offering that remaineth of the -offerings of the LORD made by fire, and eat it without leaven beside -the altar: for it is most holy: 10:13 And ye shall eat it in the holy -place, because it is thy due, and thy sons' due, of the sacrifices of -the LORD made by fire: for so I am commanded. - -10:14 And the wave breast and heave shoulder shall ye eat in a clean -place; thou, and thy sons, and thy daughters with thee: for they be -thy due, and thy sons' due, which are given out of the sacrifices of -peace offerings of the children of Israel. - -10:15 The heave shoulder and the wave breast shall they bring with the -offerings made by fire of the fat, to wave it for a wave offering -before the LORD; and it shall be thine, and thy sons' with thee, by a -statute for ever; as the LORD hath commanded. - -10:16 And Moses diligently sought the goat of the sin offering, and, -behold, it was burnt: and he was angry with Eleazar and Ithamar, the -sons of Aaron which were left alive, saying, 10:17 Wherefore have ye -not eaten the sin offering in the holy place, seeing it is most holy, -and God hath given it you to bear the iniquity of the congregation, to -make atonement for them before the LORD? 10:18 Behold, the blood of -it was not brought in within the holy place: ye should indeed have -eaten it in the holy place, as I commanded. - -10:19 And Aaron said unto Moses, Behold, this day have they offered -their sin offering and their burnt offering before the LORD; and such -things have befallen me: and if I had eaten the sin offering to day, -should it have been accepted in the sight of the LORD? 10:20 And when -Moses heard that, he was content. - -11:1 And the LORD spake unto Moses and to Aaron, saying unto them, -11:2 Speak unto the children of Israel, saying, These are the beasts -which ye shall eat among all the beasts that are on the earth. - -11:3 Whatsoever parteth the hoof, and is clovenfooted, and cheweth the -cud, among the beasts, that shall ye eat. - -11:4 Nevertheless these shall ye not eat of them that chew the cud, or -of them that divide the hoof: as the camel, because he cheweth the -cud, but divideth not the hoof; he is unclean unto you. - -11:5 And the coney, because he cheweth the cud, but divideth not the -hoof; he is unclean unto you. - -11:6 And the hare, because he cheweth the cud, but divideth not the -hoof; he is unclean unto you. - -11:7 And the swine, though he divide the hoof, and be clovenfooted, -yet he cheweth not the cud; he is unclean to you. - -11:8 Of their flesh shall ye not eat, and their carcase shall ye not -touch; they are unclean to you. - -11:9 These shall ye eat of all that are in the waters: whatsoever hath -fins and scales in the waters, in the seas, and in the rivers, them -shall ye eat. - -11:10 And all that have not fins and scales in the seas, and in the -rivers, of all that move in the waters, and of any living thing which -is in the waters, they shall be an abomination unto you: 11:11 They -shall be even an abomination unto you; ye shall not eat of their -flesh, but ye shall have their carcases in abomination. - -11:12 Whatsoever hath no fins nor scales in the waters, that shall be -an abomination unto you. - -11:13 And these are they which ye shall have in abomination among the -fowls; they shall not be eaten, they are an abomination: the eagle, -and the ossifrage, and the ospray, 11:14 And the vulture, and the kite -after his kind; 11:15 Every raven after his kind; 11:16 And the owl, -and the night hawk, and the cuckow, and the hawk after his kind, 11:17 -And the little owl, and the cormorant, and the great owl, 11:18 And -the swan, and the pelican, and the gier eagle, 11:19 And the stork, -the heron after her kind, and the lapwing, and the bat. - -11:20 All fowls that creep, going upon all four, shall be an -abomination unto you. - -11:21 Yet these may ye eat of every flying creeping thing that goeth -upon all four, which have legs above their feet, to leap withal upon -the earth; 11:22 Even these of them ye may eat; the locust after his -kind, and the bald locust after his kind, and the beetle after his -kind, and the grasshopper after his kind. - -11:23 But all other flying creeping things, which have four feet, -shall be an abomination unto you. - -11:24 And for these ye shall be unclean: whosoever toucheth the -carcase of them shall be unclean until the even. - -11:25 And whosoever beareth ought of the carcase of them shall wash -his clothes, and be unclean until the even. - -11:26 The carcases of every beast which divideth the hoof, and is not -clovenfooted, nor cheweth the cud, are unclean unto you: every one -that toucheth them shall be unclean. - -11:27 And whatsoever goeth upon his paws, among all manner of beasts -that go on all four, those are unclean unto you: whoso toucheth their -carcase shall be unclean until the even. - -11:28 And he that beareth the carcase of them shall wash his clothes, -and be unclean until the even: they are unclean unto you. - -11:29 These also shall be unclean unto you among the creeping things -that creep upon the earth; the weasel, and the mouse, and the tortoise -after his kind, 11:30 And the ferret, and the chameleon, and the -lizard, and the snail, and the mole. - -11:31 These are unclean to you among all that creep: whosoever doth -touch them, when they be dead, shall be unclean until the even. - -11:32 And upon whatsoever any of them, when they are dead, doth fall, -it shall be unclean; whether it be any vessel of wood, or raiment, or -skin, or sack, whatsoever vessel it be, wherein any work is done, it -must be put into water, and it shall be unclean until the even; so it -shall be cleansed. - -11:33 And every earthen vessel, whereinto any of them falleth, -whatsoever is in it shall be unclean; and ye shall break it. - -11:34 Of all meat which may be eaten, that on which such water cometh -shall be unclean: and all drink that may be drunk in every such vessel -shall be unclean. - -11:35 And every thing whereupon any part of their carcase falleth -shall be unclean; whether it be oven, or ranges for pots, they shall -be broken down: for they are unclean and shall be unclean unto you. - -11:36 Nevertheless a fountain or pit, wherein there is plenty of -water, shall be clean: but that which toucheth their carcase shall be -unclean. - -11:37 And if any part of their carcase fall upon any sowing seed which -is to be sown, it shall be clean. - -11:38 But if any water be put upon the seed, and any part of their -carcase fall thereon, it shall be unclean unto you. - -11:39 And if any beast, of which ye may eat, die; he that toucheth the -carcase thereof shall be unclean until the even. - -11:40 And he that eateth of the carcase of it shall wash his clothes, -and be unclean until the even: he also that beareth the carcase of it -shall wash his clothes, and be unclean until the even. - -11:41 And every creeping thing that creepeth upon the earth shall be -an abomination; it shall not be eaten. - -11:42 Whatsoever goeth upon the belly, and whatsoever goeth upon all -four, or whatsoever hath more feet among all creeping things that -creep upon the earth, them ye shall not eat; for they are an -abomination. - -11:43 Ye shall not make yourselves abominable with any creeping thing -that creepeth, neither shall ye make yourselves unclean with them, -that ye should be defiled thereby. - -11:44 For I am the LORD your God: ye shall therefore sanctify -yourselves, and ye shall be holy; for I am holy: neither shall ye -defile yourselves with any manner of creeping thing that creepeth upon -the earth. - -11:45 For I am the LORD that bringeth you up out of the land of Egypt, -to be your God: ye shall therefore be holy, for I am holy. - -11:46 This is the law of the beasts, and of the fowl, and of every -living creature that moveth in the waters, and of every creature that -creepeth upon the earth: 11:47 To make a difference between the -unclean and the clean, and between the beast that may be eaten and the -beast that may not be eaten. - -12:1 And the LORD spake unto Moses, saying, 12:2 Speak unto the -children of Israel, saying, If a woman have conceived seed, and born a -man child: then she shall be unclean seven days; according to the days -of the separation for her infirmity shall she be unclean. - -12:3 And in the eighth day the flesh of his foreskin shall be -circumcised. - -12:4 And she shall then continue in the blood of her purifying three -and thirty days; she shall touch no hallowed thing, nor come into the -sanctuary, until the days of her purifying be fulfilled. - -12:5 But if she bear a maid child, then she shall be unclean two -weeks, as in her separation: and she shall continue in the blood of -her purifying threescore and six days. - -12:6 And when the days of her purifying are fulfilled, for a son, or -for a daughter, she shall bring a lamb of the first year for a burnt -offering, and a young pigeon, or a turtledove, for a sin offering, -unto the door of the tabernacle of the congregation, unto the priest: -12:7 Who shall offer it before the LORD, and make an atonement for -her; and she shall be cleansed from the issue of her blood. This is -the law for her that hath born a male or a female. - -12:8 And if she be not able to bring a lamb, then she shall bring two -turtles, or two young pigeons; the one for the burnt offering, and the -other for a sin offering: and the priest shall make an atonement for -her, and she shall be clean. - -13:1 And the LORD spake unto Moses and Aaron, saying, 13:2 When a man -shall have in the skin of his flesh a rising, a scab, or bright spot, -and it be in the skin of his flesh like the plague of leprosy; then he -shall be brought unto Aaron the priest, or unto one of his sons the -priests: 13:3 And the priest shall look on the plague in the skin of -the flesh: and when the hair in the plague is turned white, and the -plague in sight be deeper than the skin of his flesh, it is a plague -of leprosy: and the priest shall look on him, and pronounce him -unclean. - -13:4 If the bright spot be white in the skin of his flesh, and in -sight be not deeper than the skin, and the hair thereof be not turned -white; then the priest shall shut up him that hath the plague seven -days: 13:5 And the priest shall look on him the seventh day: and, -behold, if the plague in his sight be at a stay, and the plague spread -not in the skin; then the priest shall shut him up seven days more: -13:6 And the priest shall look on him again the seventh day: and, -behold, if the plague be somewhat dark, and the plague spread not in -the skin, the priest shall pronounce him clean: it is but a scab: and -he shall wash his clothes, and be clean. - -13:7 But if the scab spread much abroad in the skin, after that he -hath been seen of the priest for his cleansing, he shall be seen of -the priest again. - -13:8 And if the priest see that, behold, the scab spreadeth in the -skin, then the priest shall pronounce him unclean: it is a leprosy. - -13:9 When the plague of leprosy is in a man, then he shall be brought -unto the priest; 13:10 And the priest shall see him: and, behold, if -the rising be white in the skin, and it have turned the hair white, -and there be quick raw flesh in the rising; 13:11 It is an old leprosy -in the skin of his flesh, and the priest shall pronounce him unclean, -and shall not shut him up: for he is unclean. - -13:12 And if a leprosy break out abroad in the skin, and the leprosy -cover all the skin of him that hath the plague from his head even to -his foot, wheresoever the priest looketh; 13:13 Then the priest shall -consider: and, behold, if the leprosy have covered all his flesh, he -shall pronounce him clean that hath the plague: it is all turned -white: he is clean. - -13:14 But when raw flesh appeareth in him, he shall be unclean. - -13:15 And the priest shall see the raw flesh, and pronounce him to be -unclean: for the raw flesh is unclean: it is a leprosy. - -13:16 Or if the raw flesh turn again, and be changed unto white, he -shall come unto the priest; 13:17 And the priest shall see him: and, -behold, if the plague be turned into white; then the priest shall -pronounce him clean that hath the plague: he is clean. - -13:18 The flesh also, in which, even in the skin thereof, was a boil, -and is healed, 13:19 And in the place of the boil there be a white -rising, or a bright spot, white, and somewhat reddish, and it be -shewed to the priest; 13:20 And if, when the priest seeth it, behold, -it be in sight lower than the skin, and the hair thereof be turned -white; the priest shall pronounce him unclean: it is a plague of -leprosy broken out of the boil. - -13:21 But if the priest look on it, and, behold, there be no white -hairs therein, and if it be not lower than the skin, but be somewhat -dark; then the priest shall shut him up seven days: 13:22 And if it -spread much abroad in the skin, then the priest shall pronounce him -unclean: it is a plague. - -13:23 But if the bright spot stay in his place, and spread not, it is -a burning boil; and the priest shall pronounce him clean. - -13:24 Or if there be any flesh, in the skin whereof there is a hot -burning, and the quick flesh that burneth have a white bright spot, -somewhat reddish, or white; 13:25 Then the priest shall look upon it: -and, behold, if the hair in the bright spot be turned white, and it be -in sight deeper than the skin; it is a leprosy broken out of the -burning: wherefore the priest shall pronounce him unclean: it is the -plague of leprosy. - -13:26 But if the priest look on it, and, behold, there be no white -hair in the bright spot, and it be no lower than the other skin, but -be somewhat dark; then the priest shall shut him up seven days: 13:27 -And the priest shall look upon him the seventh day: and if it be -spread much abroad in the skin, then the priest shall pronounce him -unclean: it is the plague of leprosy. - -13:28 And if the bright spot stay in his place, and spread not in the -skin, but it be somewhat dark; it is a rising of the burning, and the -priest shall pronounce him clean: for it is an inflammation of the -burning. - -13:29 If a man or woman have a plague upon the head or the beard; -13:30 Then the priest shall see the plague: and, behold, if it be in -sight deeper than the skin; and there be in it a yellow thin hair; -then the priest shall pronounce him unclean: it is a dry scall, even a -leprosy upon the head or beard. - -13:31 And if the priest look on the plague of the scall, and, behold, -it be not in sight deeper than the skin, and that there is no black -hair in it; then the priest shall shut up him that hath the plague of -the scall seven days: 13:32 And in the seventh day the priest shall -look on the plague: and, behold, if the scall spread not, and there be -in it no yellow hair, and the scall be not in sight deeper than the -skin; 13:33 He shall be shaven, but the scall shall he not shave; and -the priest shall shut up him that hath the scall seven days more: -13:34 And in the seventh day the priest shall look on the scall: and, -behold, if the scall be not spread in the skin, nor be in sight deeper -than the skin; then the priest shall pronounce him clean: and he shall -wash his clothes, and be clean. - -13:35 But if the scall spread much in the skin after his cleansing; -13:36 Then the priest shall look on him: and, behold, if the scall be -spread in the skin, the priest shall not seek for yellow hair; he is -unclean. - -13:37 But if the scall be in his sight at a stay, and that there is -black hair grown up therein; the scall is healed, he is clean: and the -priest shall pronounce him clean. - -13:38 If a man also or a woman have in the skin of their flesh bright -spots, even white bright spots; 13:39 Then the priest shall look: and, -behold, if the bright spots in the skin of their flesh be darkish -white; it is a freckled spot that groweth in the skin; he is clean. - -13:40 And the man whose hair is fallen off his head, he is bald; yet -is he clean. - -13:41 And he that hath his hair fallen off from the part of his head -toward his face, he is forehead bald: yet is he clean. - -13:42 And if there be in the bald head, or bald forehead, a white -reddish sore; it is a leprosy sprung up in his bald head, or his bald -forehead. - -13:43 Then the priest shall look upon it: and, behold, if the rising -of the sore be white reddish in his bald head, or in his bald -forehead, as the leprosy appeareth in the skin of the flesh; 13:44 He -is a leprous man, he is unclean: the priest shall pronounce him -utterly unclean; his plague is in his head. - -13:45 And the leper in whom the plague is, his clothes shall be rent, -and his head bare, and he shall put a covering upon his upper lip, and -shall cry, Unclean, unclean. - -13:46 All the days wherein the plague shall be in him he shall be -defiled; he is unclean: he shall dwell alone; without the camp shall -his habitation be. - -13:47 The garment also that the plague of leprosy is in, whether it be -a woollen garment, or a linen garment; 13:48 Whether it be in the -warp, or woof; of linen, or of woollen; whether in a skin, or in any -thing made of skin; 13:49 And if the plague be greenish or reddish in -the garment, or in the skin, either in the warp, or in the woof, or in -any thing of skin; it is a plague of leprosy, and shall be shewed unto -the priest: 13:50 And the priest shall look upon the plague, and shut -up it that hath the plague seven days: 13:51 And he shall look on the -plague on the seventh day: if the plague be spread in the garment, -either in the warp, or in the woof, or in a skin, or in any work that -is made of skin; the plague is a fretting leprosy; it is unclean. - -13:52 He shall therefore burn that garment, whether warp or woof, in -woollen or in linen, or any thing of skin, wherein the plague is: for -it is a fretting leprosy; it shall be burnt in the fire. - -13:53 And if the priest shall look, and, behold, the plague be not -spread in the garment, either in the warp, or in the woof, or in any -thing of skin; 13:54 Then the priest shall command that they wash the -thing wherein the plague is, and he shall shut it up seven days more: -13:55 And the priest shall look on the plague, after that it is -washed: and, behold, if the plague have not changed his colour, and -the plague be not spread; it is unclean; thou shalt burn it in the -fire; it is fret inward, whether it be bare within or without. - -13:56 And if the priest look, and, behold, the plague be somewhat dark -after the washing of it; then he shall rend it out of the garment, or -out of the skin, or out of the warp, or out of the woof: 13:57 And if -it appear still in the garment, either in the warp, or in the woof, or -in any thing of skin; it is a spreading plague: thou shalt burn that -wherein the plague is with fire. - -13:58 And the garment, either warp, or woof, or whatsoever thing of -skin it be, which thou shalt wash, if the plague be departed from -them, then it shall be washed the second time, and shall be clean. - -13:59 This is the law of the plague of leprosy in a garment of woollen -or linen, either in the warp, or woof, or any thing of skins, to -pronounce it clean, or to pronounce it unclean. - -14:1 And the LORD spake unto Moses, saying, 14:2 This shall be the law -of the leper in the day of his cleansing: He shall be brought unto the -priest: 14:3 And the priest shall go forth out of the camp; and the -priest shall look, and, behold, if the plague of leprosy be healed in -the leper; 14:4 Then shall the priest command to take for him that is -to be cleansed two birds alive and clean, and cedar wood, and scarlet, -and hyssop: 14:5 And the priest shall command that one of the birds be -killed in an earthen vessel over running water: 14:6 As for the living -bird, he shall take it, and the cedar wood, and the scarlet, and the -hyssop, and shall dip them and the living bird in the blood of the -bird that was killed over the running water: 14:7 And he shall -sprinkle upon him that is to be cleansed from the leprosy seven times, -and shall pronounce him clean, and shall let the living bird loose -into the open field. - -14:8 And he that is to be cleansed shall wash his clothes, and shave -off all his hair, and wash himself in water, that he may be clean: and -after that he shall come into the camp, and shall tarry abroad out of -his tent seven days. - -14:9 But it shall be on the seventh day, that he shall shave all his -hair off his head and his beard and his eyebrows, even all his hair he -shall shave off: and he shall wash his clothes, also he shall wash his -flesh in water, and he shall be clean. - -14:10 And on the eighth day he shall take two he lambs without -blemish, and one ewe lamb of the first year without blemish, and three -tenth deals of fine flour for a meat offering, mingled with oil, and -one log of oil. - -14:11 And the priest that maketh him clean shall present the man that -is to be made clean, and those things, before the LORD, at the door of -the tabernacle of the congregation: 14:12 And the priest shall take -one he lamb, and offer him for a trespass offering, and the log of -oil, and wave them for a wave offering before the LORD: 14:13 And he -shall slay the lamb in the place where he shall kill the sin offering -and the burnt offering, in the holy place: for as the sin offering is -the priest's, so is the trespass offering: it is most holy: 14:14 And -the priest shall take some of the blood of the trespass offering, and -the priest shall put it upon the tip of the right ear of him that is -to be cleansed, and upon the thumb of his right hand, and upon the -great toe of his right foot: 14:15 And the priest shall take some of -the log of oil, and pour it into the palm of his own left hand: 14:16 -And the priest shall dip his right finger in the oil that is in his -left hand, and shall sprinkle of the oil with his finger seven times -before the LORD: 14:17 And of the rest of the oil that is in his hand -shall the priest put upon the tip of the right ear of him that is to -be cleansed, and upon the thumb of his right hand, and upon the great -toe of his right foot, upon the blood of the trespass offering: 14:18 -And the remnant of the oil that is in the priest's hand he shall pour -upon the head of him that is to be cleansed: and the priest shall make -an atonement for him before the LORD. - -14:19 And the priest shall offer the sin offering, and make an -atonement for him that is to be cleansed from his uncleanness; and -afterward he shall kill the burnt offering: 14:20 And the priest shall -offer the burnt offering and the meat offering upon the altar: and the -priest shall make an atonement for him, and he shall be clean. - -14:21 And if he be poor, and cannot get so much; then he shall take -one lamb for a trespass offering to be waved, to make an atonement for -him, and one tenth deal of fine flour mingled with oil for a meat -offering, and a log of oil; 14:22 And two turtledoves, or two young -pigeons, such as he is able to get; and the one shall be a sin -offering, and the other a burnt offering. - -14:23 And he shall bring them on the eighth day for his cleansing unto -the priest, unto the door of the tabernacle of the congregation, -before the LORD. - -14:24 And the priest shall take the lamb of the trespass offering, and -the log of oil, and the priest shall wave them for a wave offering -before the LORD: 14:25 And he shall kill the lamb of the trespass -offering, and the priest shall take some of the blood of the trespass -offering, and put it upon the tip of the right ear of him that is to -be cleansed, and upon the thumb of his right hand, and upon the great -toe of his right foot: 14:26 And the priest shall pour of the oil into -the palm of his own left hand: 14:27 And the priest shall sprinkle -with his right finger some of the oil that is in his left hand seven -times before the LORD: 14:28 And the priest shall put of the oil that -is in his hand upon the tip of the right ear of him that is to be -cleansed, and upon the thumb of his right hand, and upon the great toe -of his right foot, upon the place of the blood of the trespass -offering: 14:29 And the rest of the oil that is in the priest's hand -he shall put upon the head of him that is to be cleansed, to make an -atonement for him before the LORD. - -14:30 And he shall offer the one of the turtledoves, or of the young -pigeons, such as he can get; 14:31 Even such as he is able to get, the -one for a sin offering, and the other for a burnt offering, with the -meat offering: and the priest shall make an atonement for him that is -to be cleansed before the LORD. - -14:32 This is the law of him in whom is the plague of leprosy, whose -hand is not able to get that which pertaineth to his cleansing. - -14:33 And the LORD spake unto Moses and unto Aaron, saying, 14:34 When -ye be come into the land of Canaan, which I give to you for a -possession, and I put the plague of leprosy in a house of the land of -your possession; 14:35 And he that owneth the house shall come and -tell the priest, saying, It seemeth to me there is as it were a plague -in the house: 14:36 Then the priest shall command that they empty the -house, before the priest go into it to see the plague, that all that -is in the house be not made unclean: and afterward the priest shall go -in to see the house: 14:37 And he shall look on the plague, and, -behold, if the plague be in the walls of the house with hollow -strakes, greenish or reddish, which in sight are lower than the wall; -14:38 Then the priest shall go out of the house to the door of the -house, and shut up the house seven days: 14:39 And the priest shall -come again the seventh day, and shall look: and, behold, if the plague -be spread in the walls of the house; 14:40 Then the priest shall -command that they take away the stones in which the plague is, and -they shall cast them into an unclean place without the city: 14:41 And -he shall cause the house to be scraped within round about, and they -shall pour out the dust that they scrape off without the city into an -unclean place: 14:42 And they shall take other stones, and put them in -the place of those stones; and he shall take other morter, and shall -plaister the house. - -14:43 And if the plague come again, and break out in the house, after -that he hath taken away the stones, and after he hath scraped the -house, and after it is plaistered; 14:44 Then the priest shall come -and look, and, behold, if the plague be spread in the house, it is a -fretting leprosy in the house; it is unclean. - -14:45 And he shall break down the house, the stones of it, and the -timber thereof, and all the morter of the house; and he shall carry -them forth out of the city into an unclean place. - -14:46 Moreover he that goeth into the house all the while that it is -shut up shall be unclean until the even. - -14:47 And he that lieth in the house shall wash his clothes; and he -that eateth in the house shall wash his clothes. - -14:48 And if the priest shall come in, and look upon it, and, behold, -the plague hath not spread in the house, after the house was -plaistered: then the priest shall pronounce the house clean, because -the plague is healed. - -14:49 And he shall take to cleanse the house two birds, and cedar -wood, and scarlet, and hyssop: 14:50 And he shall kill the one of the -birds in an earthen vessel over running water: 14:51 And he shall take -the cedar wood, and the hyssop, and the scarlet, and the living bird, -and dip them in the blood of the slain bird, and in the running water, -and sprinkle the house seven times: 14:52 And he shall cleanse the -house with the blood of the bird, and with the running water, and with -the living bird, and with the cedar wood, and with the hyssop, and -with the scarlet: 14:53 But he shall let go the living bird out of the -city into the open fields, and make an atonement for the house: and it -shall be clean. - -14:54 This is the law for all manner of plague of leprosy, and scall, -14:55 And for the leprosy of a garment, and of a house, 14:56 And for -a rising, and for a scab, and for a bright spot: 14:57 To teach when -it is unclean, and when it is clean: this is the law of leprosy. - -15:1 And the LORD spake unto Moses and to Aaron, saying, 15:2 Speak -unto the children of Israel, and say unto them, When any man hath a -running issue out of his flesh, because of his issue he is unclean. - -15:3 And this shall be his uncleanness in his issue: whether his flesh -run with his issue, or his flesh be stopped from his issue, it is his -uncleanness. - -15:4 Every bed, whereon he lieth that hath the issue, is unclean: and -every thing, whereon he sitteth, shall be unclean. - -15:5 And whosoever toucheth his bed shall wash his clothes, and bathe -himself in water, and be unclean until the even. - -15:6 And he that sitteth on any thing whereon he sat that hath the -issue shall wash his clothes, and bathe himself in water, and be -unclean until the even. - -15:7 And he that toucheth the flesh of him that hath the issue shall -wash his clothes, and bathe himself in water, and be unclean until the -even. - -15:8 And if he that hath the issue spit upon him that is clean; then -he shall wash his clothes, and bathe himself in water, and be unclean -until the even. - -15:9 And what saddle soever he rideth upon that hath the issue shall -be unclean. - -15:10 And whosoever toucheth any thing that was under him shall be -unclean until the even: and he that beareth any of those things shall -wash his clothes, and bathe himself in water, and be unclean until the -even. - -15:11 And whomsoever he toucheth that hath the issue, and hath not -rinsed his hands in water, he shall wash his clothes, and bathe -himself in water, and be unclean until the even. - -15:12 And the vessel of earth, that he toucheth which hath the issue, -shall be broken: and every vessel of wood shall be rinsed in water. - -15:13 And when he that hath an issue is cleansed of his issue; then he -shall number to himself seven days for his cleansing, and wash his -clothes, and bathe his flesh in running water, and shall be clean. - -15:14 And on the eighth day he shall take to him two turtledoves, or -two young pigeons, and come before the LORD unto the door of the -tabernacle of the congregation, and give them unto the priest: 15:15 -And the priest shall offer them, the one for a sin offering, and the -other for a burnt offering; and the priest shall make an atonement for -him before the LORD for his issue. - -15:16 And if any man's seed of copulation go out from him, then he -shall wash all his flesh in water, and be unclean until the even. - -15:17 And every garment, and every skin, whereon is the seed of -copulation, shall be washed with water, and be unclean until the even. - -15:18 The woman also with whom man shall lie with seed of copulation, -they shall both bathe themselves in water, and be unclean until the -even. - -15:19 And if a woman have an issue, and her issue in her flesh be -blood, she shall be put apart seven days: and whosoever toucheth her -shall be unclean until the even. - -15:20 And every thing that she lieth upon in her separation shall be -unclean: every thing also that she sitteth upon shall be unclean. - -15:21 And whosoever toucheth her bed shall wash his clothes, and bathe -himself in water, and be unclean until the even. - -15:22 And whosoever toucheth any thing that she sat upon shall wash -his clothes, and bathe himself in water, and be unclean until the -even. - -15:23 And if it be on her bed, or on any thing whereon she sitteth, -when he toucheth it, he shall be unclean until the even. - -15:24 And if any man lie with her at all, and her flowers be upon him, -he shall be unclean seven days; and all the bed whereon he lieth shall -be unclean. - -15:25 And if a woman have an issue of her blood many days out of the -time of her separation, or if it run beyond the time of her -separation; all the days of the issue of her uncleanness shall be as -the days of her separation: she shall be unclean. - -15:26 Every bed whereon she lieth all the days of her issue shall be -unto her as the bed of her separation: and whatsoever she sitteth upon -shall be unclean, as the uncleanness of her separation. - -15:27 And whosoever toucheth those things shall be unclean, and shall -wash his clothes, and bathe himself in water, and be unclean until the -even. - -15:28 But if she be cleansed of her issue, then she shall number to -herself seven days, and after that she shall be clean. - -15:29 And on the eighth day she shall take unto her two turtles, or -two young pigeons, and bring them unto the priest, to the door of the -tabernacle of the congregation. - -15:30 And the priest shall offer the one for a sin offering, and the -other for a burnt offering; and the priest shall make an atonement for -her before the LORD for the issue of her uncleanness. - -15:31 Thus shall ye separate the children of Israel from their -uncleanness; that they die not in their uncleanness, when they defile -my tabernacle that is among them. - -15:32 This is the law of him that hath an issue, and of him whose seed -goeth from him, and is defiled therewith; 15:33 And of her that is -sick of her flowers, and of him that hath an issue, of the man, and of -the woman, and of him that lieth with her that is unclean. - -16:1 And the LORD spake unto Moses after the death of the two sons of -Aaron, when they offered before the LORD, and died; 16:2 And the LORD -said unto Moses, Speak unto Aaron thy brother, that he come not at all -times into the holy place within the vail before the mercy seat, which -is upon the ark; that he die not: for I will appear in the cloud upon -the mercy seat. - -16:3 Thus shall Aaron come into the holy place: with a young bullock -for a sin offering, and a ram for a burnt offering. - -16:4 He shall put on the holy linen coat, and he shall have the linen -breeches upon his flesh, and shall be girded with a linen girdle, and -with the linen mitre shall he be attired: these are holy garments; -therefore shall he wash his flesh in water, and so put them on. - -16:5 And he shall take of the congregation of the children of Israel -two kids of the goats for a sin offering, and one ram for a burnt -offering. - -16:6 And Aaron shall offer his bullock of the sin offering, which is -for himself, and make an atonement for himself, and for his house. - -16:7 And he shall take the two goats, and present them before the LORD -at the door of the tabernacle of the congregation. - -16:8 And Aaron shall cast lots upon the two goats; one lot for the -LORD, and the other lot for the scapegoat. - -16:9 And Aaron shall bring the goat upon which the LORD's lot fell, -and offer him for a sin offering. - -16:10 But the goat, on which the lot fell to be the scapegoat, shall -be presented alive before the LORD, to make an atonement with him, and -to let him go for a scapegoat into the wilderness. - -16:11 And Aaron shall bring the bullock of the sin offering, which is -for himself, and shall make an atonement for himself, and for his -house, and shall kill the bullock of the sin offering which is for -himself: 16:12 And he shall take a censer full of burning coals of -fire from off the altar before the LORD, and his hands full of sweet -incense beaten small, and bring it within the vail: 16:13 And he shall -put the incense upon the fire before the LORD, that the cloud of the -incense may cover the mercy seat that is upon the testimony, that he -die not: 16:14 And he shall take of the blood of the bullock, and -sprinkle it with his finger upon the mercy seat eastward; and before -the mercy seat shall he sprinkle of the blood with his finger seven -times. - -16:15 Then shall he kill the goat of the sin offering, that is for the -people, and bring his blood within the vail, and do with that blood as -he did with the blood of the bullock, and sprinkle it upon the mercy -seat, and before the mercy seat: 16:16 And he shall make an atonement -for the holy place, because of the uncleanness of the children of -Israel, and because of their transgressions in all their sins: and so -shall he do for the tabernacle of the congregation, that remaineth -among them in the midst of their uncleanness. - -16:17 And there shall be no man in the tabernacle of the congregation -when he goeth in to make an atonement in the holy place, until he come -out, and have made an atonement for himself, and for his household, -and for all the congregation of Israel. - -16:18 And he shall go out unto the altar that is before the LORD, and -make an atonement for it; and shall take of the blood of the bullock, -and of the blood of the goat, and put it upon the horns of the altar -round about. - -16:19 And he shall sprinkle of the blood upon it with his finger seven -times, and cleanse it, and hallow it from the uncleanness of the -children of Israel. - -16:20 And when he hath made an end of reconciling the holy place, and -the tabernacle of the congregation, and the altar, he shall bring the -live goat: 16:21 And Aaron shall lay both his hands upon the head of -the live goat, and confess over him all the iniquities of the children -of Israel, and all their transgressions in all their sins, putting -them upon the head of the goat, and shall send him away by the hand of -a fit man into the wilderness: 16:22 And the goat shall bear upon him -all their iniquities unto a land not inhabited: and he shall let go -the goat in the wilderness. - -16:23 And Aaron shall come into the tabernacle of the congregation, -and shall put off the linen garments, which he put on when he went -into the holy place, and shall leave them there: 16:24 And he shall -wash his flesh with water in the holy place, and put on his garments, -and come forth, and offer his burnt offering, and the burnt offering -of the people, and make an atonement for himself, and for the people. - -16:25 And the fat of the sin offering shall he burn upon the altar. - -16:26 And he that let go the goat for the scapegoat shall wash his -clothes, and bathe his flesh in water, and afterward come into the -camp. - -16:27 And the bullock for the sin offering, and the goat for the sin -offering, whose blood was brought in to make atonement in the holy -place, shall one carry forth without the camp; and they shall burn in -the fire their skins, and their flesh, and their dung. - -16:28 And he that burneth them shall wash his clothes, and bathe his -flesh in water, and afterward he shall come into the camp. - -16:29 And this shall be a statute for ever unto you: that in the -seventh month, on the tenth day of the month, ye shall afflict your -souls, and do no work at all, whether it be one of your own country, -or a stranger that sojourneth among you: 16:30 For on that day shall -the priest make an atonement for you, to cleanse you, that ye may be -clean from all your sins before the LORD. - -16:31 It shall be a sabbath of rest unto you, and ye shall afflict -your souls, by a statute for ever. - -16:32 And the priest, whom he shall anoint, and whom he shall -consecrate to minister in the priest's office in his father's stead, -shall make the atonement, and shall put on the linen clothes, even the -holy garments: 16:33 And he shall make an atonement for the holy -sanctuary, and he shall make an atonement for the tabernacle of the -congregation, and for the altar, and he shall make an atonement for -the priests, and for all the people of the congregation. - -16:34 And this shall be an everlasting statute unto you, to make an -atonement for the children of Israel for all their sins once a year. -And he did as the LORD commanded Moses. - -17:1 And the LORD spake unto Moses, saying, 17:2 Speak unto Aaron, and -unto his sons, and unto all the children of Israel, and say unto them; -This is the thing which the LORD hath commanded, saying, 17:3 What man -soever there be of the house of Israel, that killeth an ox, or lamb, -or goat, in the camp, or that killeth it out of the camp, 17:4 And -bringeth it not unto the door of the tabernacle of the congregation, -to offer an offering unto the LORD before the tabernacle of the LORD; -blood shall be imputed unto that man; he hath shed blood; and that man -shall be cut off from among his people: 17:5 To the end that the -children of Israel may bring their sacrifices, which they offer in the -open field, even that they may bring them unto the LORD, unto the door -of the tabernacle of the congregation, unto the priest, and offer them -for peace offerings unto the LORD. - -17:6 And the priest shall sprinkle the blood upon the altar of the -LORD at the door of the tabernacle of the congregation, and burn the -fat for a sweet savour unto the LORD. - -17:7 And they shall no more offer their sacrifices unto devils, after -whom they have gone a whoring. This shall be a statute for ever unto -them throughout their generations. - -17:8 And thou shalt say unto them, Whatsoever man there be of the -house of Israel, or of the strangers which sojourn among you, that -offereth a burnt offering or sacrifice, 17:9 And bringeth it not unto -the door of the tabernacle of the congregation, to offer it unto the -LORD; even that man shall be cut off from among his people. - -17:10 And whatsoever man there be of the house of Israel, or of the -strangers that sojourn among you, that eateth any manner of blood; I -will even set my face against that soul that eateth blood, and will -cut him off from among his people. - -17:11 For the life of the flesh is in the blood: and I have given it -to you upon the altar to make an atonement for your souls: for it is -the blood that maketh an atonement for the soul. - -17:12 Therefore I said unto the children of Israel, No soul of you -shall eat blood, neither shall any stranger that sojourneth among you -eat blood. - -17:13 And whatsoever man there be of the children of Israel, or of the -strangers that sojourn among you, which hunteth and catcheth any beast -or fowl that may be eaten; he shall even pour out the blood thereof, -and cover it with dust. - -17:14 For it is the life of all flesh; the blood of it is for the life -thereof: therefore I said unto the children of Israel, Ye shall eat -the blood of no manner of flesh: for the life of all flesh is the -blood thereof: whosoever eateth it shall be cut off. - -17:15 And every soul that eateth that which died of itself, or that -which was torn with beasts, whether it be one of your own country, or -a stranger, he shall both wash his clothes, and bathe himself in -water, and be unclean until the even: then shall he be clean. - -17:16 But if he wash them not, nor bathe his flesh; then he shall bear -his iniquity. - -18:1 And the LORD spake unto Moses, saying, 18:2 Speak unto the -children of Israel, and say unto them, I am the LORD your God. - -18:3 After the doings of the land of Egypt, wherein ye dwelt, shall ye -not do: and after the doings of the land of Canaan, whither I bring -you, shall ye not do: neither shall ye walk in their ordinances. - -18:4 Ye shall do my judgments, and keep mine ordinances, to walk -therein: I am the LORD your God. - -18:5 Ye shall therefore keep my statutes, and my judgments: which if a -man do, he shall live in them: I am the LORD. - -18:6 None of you shall approach to any that is near of kin to him, to -uncover their nakedness: I am the LORD. - -18:7 The nakedness of thy father, or the nakedness of thy mother, -shalt thou not uncover: she is thy mother; thou shalt not uncover her -nakedness. - -18:8 The nakedness of thy father's wife shalt thou not uncover: it is -thy father's nakedness. - -18:9 The nakedness of thy sister, the daughter of thy father, or -daughter of thy mother, whether she be born at home, or born abroad, -even their nakedness thou shalt not uncover. - -18:10 The nakedness of thy son's daughter, or of thy daughter's -daughter, even their nakedness thou shalt not uncover: for theirs is -thine own nakedness. - -18:11 The nakedness of thy father's wife's daughter, begotten of thy -father, she is thy sister, thou shalt not uncover her nakedness. - -18:12 Thou shalt not uncover the nakedness of thy father's sister: she -is thy father's near kinswoman. - -18:13 Thou shalt not uncover the nakedness of thy mother's sister: for -she is thy mother's near kinswoman. - -18:14 Thou shalt not uncover the nakedness of thy father's brother, -thou shalt not approach to his wife: she is thine aunt. - -18:15 Thou shalt not uncover the nakedness of thy daughter in law: she -is thy son's wife; thou shalt not uncover her nakedness. - -18:16 Thou shalt not uncover the nakedness of thy brother's wife: it -is thy brother's nakedness. - -18:17 Thou shalt not uncover the nakedness of a woman and her -daughter, neither shalt thou take her son's daughter, or her -daughter's daughter, to uncover her nakedness; for they are her near -kinswomen: it is wickedness. - -18:18 Neither shalt thou take a wife to her sister, to vex her, to -uncover her nakedness, beside the other in her life time. - -18:19 Also thou shalt not approach unto a woman to uncover her -nakedness, as long as she is put apart for her uncleanness. - -18:20 Moreover thou shalt not lie carnally with thy neighbour's wife, -to defile thyself with her. - -18:21 And thou shalt not let any of thy seed pass through the fire to -Molech, neither shalt thou profane the name of thy God: I am the LORD. - -18:22 Thou shalt not lie with mankind, as with womankind: it is -abomination. - -18:23 Neither shalt thou lie with any beast to defile thyself -therewith: neither shall any woman stand before a beast to lie down -thereto: it is confusion. - -18:24 Defile not ye yourselves in any of these things: for in all -these the nations are defiled which I cast out before you: 18:25 And -the land is defiled: therefore I do visit the iniquity thereof upon -it, and the land itself vomiteth out her inhabitants. - -18:26 Ye shall therefore keep my statutes and my judgments, and shall -not commit any of these abominations; neither any of your own nation, -nor any stranger that sojourneth among you: 18:27 (For all these -abominations have the men of the land done, which were before you, and -the land is defiled;) 18:28 That the land spue not you out also, when -ye defile it, as it spued out the nations that were before you. - -18:29 For whosoever shall commit any of these abominations, even the -souls that commit them shall be cut off from among their people. - -18:30 Therefore shall ye keep mine ordinance, that ye commit not any -one of these abominable customs, which were committed before you, and -that ye defile not yourselves therein: I am the LORD your God. - -19:1 And the LORD spake unto Moses, saying, 19:2 Speak unto all the -congregation of the children of Israel, and say unto them, Ye shall be -holy: for I the LORD your God am holy. - -19:3 Ye shall fear every man his mother, and his father, and keep my -sabbaths: I am the LORD your God. - -19:4 Turn ye not unto idols, nor make to yourselves molten gods: I am -the LORD your God. - -19:5 And if ye offer a sacrifice of peace offerings unto the LORD, ye -shall offer it at your own will. - -19:6 It shall be eaten the same day ye offer it, and on the morrow: -and if ought remain until the third day, it shall be burnt in the -fire. - -19:7 And if it be eaten at all on the third day, it is abominable; it -shall not be accepted. - -19:8 Therefore every one that eateth it shall bear his iniquity, -because he hath profaned the hallowed thing of the LORD: and that soul -shall be cut off from among his people. - -19:9 And when ye reap the harvest of your land, thou shalt not wholly -reap the corners of thy field, neither shalt thou gather the gleanings -of thy harvest. - -19:10 And thou shalt not glean thy vineyard, neither shalt thou gather -every grape of thy vineyard; thou shalt leave them for the poor and -stranger: I am the LORD your God. - -19:11 Ye shall not steal, neither deal falsely, neither lie one to -another. - -19:12 And ye shall not swear by my name falsely, neither shalt thou -profane the name of thy God: I am the LORD. - -19:13 Thou shalt not defraud thy neighbour, neither rob him: the wages -of him that is hired shall not abide with thee all night until the -morning. - -19:14 Thou shalt not curse the deaf, nor put a stumblingblock before -the blind, but shalt fear thy God: I am the LORD. - -19:15 Ye shall do no unrighteousness in judgment: thou shalt not -respect the person of the poor, nor honor the person of the mighty: -but in righteousness shalt thou judge thy neighbour. - -19:16 Thou shalt not go up and down as a talebearer among thy people: -neither shalt thou stand against the blood of thy neighbour; I am the -LORD. - -19:17 Thou shalt not hate thy brother in thine heart: thou shalt in -any wise rebuke thy neighbour, and not suffer sin upon him. - -19:18 Thou shalt not avenge, nor bear any grudge against the children -of thy people, but thou shalt love thy neighbour as thyself: I am the -LORD. - -19:19 Ye shall keep my statutes. Thou shalt not let thy cattle gender -with a diverse kind: thou shalt not sow thy field with mingled seed: -neither shall a garment mingled of linen and woollen come upon thee. - -19:20 And whosoever lieth carnally with a woman, that is a bondmaid, -betrothed to an husband, and not at all redeemed, nor freedom given -her; she shall be scourged; they shall not be put to death, because -she was not free. - -19:21 And he shall bring his trespass offering unto the LORD, unto the -door of the tabernacle of the congregation, even a ram for a trespass -offering. - -19:22 And the priest shall make an atonement for him with the ram of -the trespass offering before the LORD for his sin which he hath done: -and the sin which he hath done shall be forgiven him. - -19:23 And when ye shall come into the land, and shall have planted all -manner of trees for food, then ye shall count the fruit thereof as -uncircumcised: three years shall it be as uncircumcised unto you: it -shall not be eaten of. - -19:24 But in the fourth year all the fruit thereof shall be holy to -praise the LORD withal. - -19:25 And in the fifth year shall ye eat of the fruit thereof, that it -may yield unto you the increase thereof: I am the LORD your God. - -19:26 Ye shall not eat any thing with the blood: neither shall ye use -enchantment, nor observe times. - -19:27 Ye shall not round the corners of your heads, neither shalt thou -mar the corners of thy beard. - -19:28 Ye shall not make any cuttings in your flesh for the dead, nor -print any marks upon you: I am the LORD. - -19:29 Do not prostitute thy daughter, to cause her to be a whore; lest -the land fall to whoredom, and the land become full of wickedness. - -19:30 Ye shall keep my sabbaths, and reverence my sanctuary: I am the -LORD. - -19:31 Regard not them that have familiar spirits, neither seek after -wizards, to be defiled by them: I am the LORD your God. - -19:32 Thou shalt rise up before the hoary head, and honour the face of -the old man, and fear thy God: I am the LORD. - -19:33 And if a stranger sojourn with thee in your land, ye shall not -vex him. - -19:34 But the stranger that dwelleth with you shall be unto you as one -born among you, and thou shalt love him as thyself; for ye were -strangers in the land of Egypt: I am the LORD your God. - -19:35 Ye shall do no unrighteousness in judgment, in meteyard, in -weight, or in measure. - -19:36 Just balances, just weights, a just ephah, and a just hin, shall -ye have: I am the LORD your God, which brought you out of the land of -Egypt. - -19:37 Therefore shall ye observe all my statutes, and all my -judgments, and do them: I am the LORD. - -20:1 And the LORD spake unto Moses, saying, 20:2 Again, thou shalt say -to the children of Israel, Whosoever he be of the children of Israel, -or of the strangers that sojourn in Israel, that giveth any of his -seed unto Molech; he shall surely be put to death: the people of the -land shall stone him with stones. - -20:3 And I will set my face against that man, and will cut him off -from among his people; because he hath given of his seed unto Molech, -to defile my sanctuary, and to profane my holy name. - -20:4 And if the people of the land do any ways hide their eyes from -the man, when he giveth of his seed unto Molech, and kill him not: -20:5 Then I will set my face against that man, and against his family, -and will cut him off, and all that go a whoring after him, to commit -whoredom with Molech, from among their people. - -20:6 And the soul that turneth after such as have familiar spirits, -and after wizards, to go a whoring after them, I will even set my face -against that soul, and will cut him off from among his people. - -20:7 Sanctify yourselves therefore, and be ye holy: for I am the LORD -your God. - -20:8 And ye shall keep my statutes, and do them: I am the LORD which -sanctify you. - -20:9 For every one that curseth his father or his mother shall be -surely put to death: he hath cursed his father or his mother; his -blood shall be upon him. - -20:10 And the man that committeth adultery with another man's wife, -even he that committeth adultery with his neighbour's wife, the -adulterer and the adulteress shall surely be put to death. - -20:11 And the man that lieth with his father's wife hath uncovered his -father's nakedness: both of them shall surely be put to death; their -blood shall be upon them. - -20:12 And if a man lie with his daughter in law, both of them shall -surely be put to death: they have wrought confusion; their blood shall -be upon them. - -20:13 If a man also lie with mankind, as he lieth with a woman, both -of them have committed an abomination: they shall surely be put to -death; their blood shall be upon them. - -20:14 And if a man take a wife and her mother, it is wickedness: they -shall be burnt with fire, both he and they; that there be no -wickedness among you. - -20:15 And if a man lie with a beast, he shall surely be put to death: -and ye shall slay the beast. - -20:16 And if a woman approach unto any beast, and lie down thereto, -thou shalt kill the woman, and the beast: they shall surely be put to -death; their blood shall be upon them. - -20:17 And if a man shall take his sister, his father's daughter, or -his mother's daughter, and see her nakedness, and she see his -nakedness; it is a wicked thing; and they shall be cut off in the -sight of their people: he hath uncovered his sister's nakedness; he -shall bear his iniquity. - -20:18 And if a man shall lie with a woman having her sickness, and -shall uncover her nakedness; he hath discovered her fountain, and she -hath uncovered the fountain of her blood: and both of them shall be -cut off from among their people. - -20:19 And thou shalt not uncover the nakedness of thy mother's sister, -nor of thy father's sister: for he uncovereth his near kin: they shall -bear their iniquity. - -20:20 And if a man shall lie with his uncle's wife, he hath uncovered -his uncle's nakedness: they shall bear their sin; they shall die -childless. - -20:21 And if a man shall take his brother's wife, it is an unclean -thing: he hath uncovered his brother's nakedness; they shall be -childless. - -20:22 Ye shall therefore keep all my statutes, and all my judgments, -and do them: that the land, whither I bring you to dwell therein, spue -you not out. - -20:23 And ye shall not walk in the manners of the nation, which I cast -out before you: for they committed all these things, and therefore I -abhorred them. - -20:24 But I have said unto you, Ye shall inherit their land, and I -will give it unto you to possess it, a land that floweth with milk and -honey: I am the LORD your God, which have separated you from other -people. - -20:25 Ye shall therefore put difference between clean beasts and -unclean, and between unclean fowls and clean: and ye shall not make -your souls abominable by beast, or by fowl, or by any manner of living -thing that creepeth on the ground, which I have separated from you as -unclean. - -20:26 And ye shall be holy unto me: for I the LORD am holy, and have -severed you from other people, that ye should be mine. - -20:27 A man also or woman that hath a familiar spirit, or that is a -wizard, shall surely be put to death: they shall stone them with -stones: their blood shall be upon them. - -21:1 And the LORD said unto Moses, Speak unto the priests the sons of -Aaron, and say unto them, There shall none be defiled for the dead -among his people: 21:2 But for his kin, that is near unto him, that -is, for his mother, and for his father, and for his son, and for his -daughter, and for his brother. - -21:3 And for his sister a virgin, that is nigh unto him, which hath -had no husband; for her may he be defiled. - -21:4 But he shall not defile himself, being a chief man among his -people, to profane himself. - -21:5 They shall not make baldness upon their head, neither shall they -shave off the corner of their beard, nor make any cuttings in their -flesh. - -21:6 They shall be holy unto their God, and not profane the name of -their God: for the offerings of the LORD made by fire, and the bread -of their God, they do offer: therefore they shall be holy. - -21:7 They shall not take a wife that is a whore, or profane; neither -shall they take a woman put away from her husband: for he is holy unto -his God. - -21:8 Thou shalt sanctify him therefore; for he offereth the bread of -thy God: he shall be holy unto thee: for I the LORD, which sanctify -you, am holy. - -21:9 And the daughter of any priest, if she profane herself by playing -the whore, she profaneth her father: she shall be burnt with fire. - -21:10 And he that is the high priest among his brethren, upon whose -head the anointing oil was poured, and that is consecrated to put on -the garments, shall not uncover his head, nor rend his clothes; 21:11 -Neither shall he go in to any dead body, nor defile himself for his -father, or for his mother; 21:12 Neither shall he go out of the -sanctuary, nor profane the sanctuary of his God; for the crown of the -anointing oil of his God is upon him: I am the LORD. - -21:13 And he shall take a wife in her virginity. - -21:14 A widow, or a divorced woman, or profane, or an harlot, these -shall he not take: but he shall take a virgin of his own people to -wife. - -21:15 Neither shall he profane his seed among his people: for I the -LORD do sanctify him. - -21:16 And the LORD spake unto Moses, saying, 21:17 Speak unto Aaron, -saying, Whosoever he be of thy seed in their generations that hath any -blemish, let him not approach to offer the bread of his God. - -21:18 For whatsoever man he be that hath a blemish, he shall not -approach: a blind man, or a lame, or he that hath a flat nose, or any -thing superfluous, 21:19 Or a man that is brokenfooted, or -brokenhanded, 21:20 Or crookbackt, or a dwarf, or that hath a blemish -in his eye, or be scurvy, or scabbed, or hath his stones broken; 21:21 -No man that hath a blemish of the seed of Aaron the priest shall come -nigh to offer the offerings of the LORD made by fire: he hath a -blemish; he shall not come nigh to offer the bread of his God. - -21:22 He shall eat the bread of his God, both of the most holy, and of -the holy. - -21:23 Only he shall not go in unto the vail, nor come nigh unto the -altar, because he hath a blemish; that he profane not my sanctuaries: -for I the LORD do sanctify them. - -21:24 And Moses told it unto Aaron, and to his sons, and unto all the -children of Israel. - -22:1 And the LORD spake unto Moses, saying, 22:2 Speak unto Aaron and -to his sons, that they separate themselves from the holy things of the -children of Israel, and that they profane not my holy name in those -things which they hallow unto me: I am the LORD. - -22:3 Say unto them, Whosoever he be of all your seed among your -generations, that goeth unto the holy things, which the children of -Israel hallow unto the LORD, having his uncleanness upon him, that -soul shall be cut off from my presence: I am the LORD. - -22:4 What man soever of the seed of Aaron is a leper, or hath a -running issue; he shall not eat of the holy things, until he be clean. -And whoso toucheth any thing that is unclean by the dead, or a man -whose seed goeth from him; 22:5 Or whosoever toucheth any creeping -thing, whereby he may be made unclean, or a man of whom he may take -uncleanness, whatsoever uncleanness he hath; 22:6 The soul which hath -touched any such shall be unclean until even, and shall not eat of the -holy things, unless he wash his flesh with water. - -22:7 And when the sun is down, he shall be clean, and shall afterward -eat of the holy things; because it is his food. - -22:8 That which dieth of itself, or is torn with beasts, he shall not -eat to defile himself therewith; I am the LORD. - -22:9 They shall therefore keep mine ordinance, lest they bear sin for -it, and die therefore, if they profane it: I the LORD do sanctify -them. - -22:10 There shall no stranger eat of the holy thing: a sojourner of -the priest, or an hired servant, shall not eat of the holy thing. - -22:11 But if the priest buy any soul with his money, he shall eat of -it, and he that is born in his house: they shall eat of his meat. - -22:12 If the priest's daughter also be married unto a stranger, she -may not eat of an offering of the holy things. - -22:13 But if the priest's daughter be a widow, or divorced, and have -no child, and is returned unto her father's house, as in her youth, -she shall eat of her father's meat: but there shall be no stranger eat -thereof. - -22:14 And if a man eat of the holy thing unwittingly, then he shall -put the fifth part thereof unto it, and shall give it unto the priest -with the holy thing. - -22:15 And they shall not profane the holy things of the children of -Israel, which they offer unto the LORD; 22:16 Or suffer them to bear -the iniquity of trespass, when they eat their holy things: for I the -LORD do sanctify them. - -22:17 And the LORD spake unto Moses, saying, 22:18 Speak unto Aaron, -and to his sons, and unto all the children of Israel, and say unto -them, Whatsoever he be of the house of Israel, or of the strangers in -Israel, that will offer his oblation for all his vows, and for all his -freewill offerings, which they will offer unto the LORD for a burnt -offering; 22:19 Ye shall offer at your own will a male without -blemish, of the beeves, of the sheep, or of the goats. - -22:20 But whatsoever hath a blemish, that shall ye not offer: for it -shall not be acceptable for you. - -22:21 And whosoever offereth a sacrifice of peace offerings unto the -LORD to accomplish his vow, or a freewill offering in beeves or sheep, -it shall be perfect to be accepted; there shall be no blemish therein. - -22:22 Blind, or broken, or maimed, or having a wen, or scurvy, or -scabbed, ye shall not offer these unto the LORD, nor make an offering -by fire of them upon the altar unto the LORD. - -22:23 Either a bullock or a lamb that hath any thing superfluous or -lacking in his parts, that mayest thou offer for a freewill offering; -but for a vow it shall not be accepted. - -22:24 Ye shall not offer unto the LORD that which is bruised, or -crushed, or broken, or cut; neither shall ye make any offering thereof -in your land. - -22:25 Neither from a stranger's hand shall ye offer the bread of your -God of any of these; because their corruption is in them, and -blemishes be in them: they shall not be accepted for you. - -22:26 And the LORD spake unto Moses, saying, 22:27 When a bullock, or -a sheep, or a goat, is brought forth, then it shall be seven days -under the dam; and from the eighth day and thenceforth it shall be -accepted for an offering made by fire unto the LORD. - -22:28 And whether it be cow, or ewe, ye shall not kill it and her -young both in one day. - -22:29 And when ye will offer a sacrifice of thanksgiving unto the -LORD, offer it at your own will. - -22:30 On the same day it shall be eaten up; ye shall leave none of it -until the morrow: I am the LORD. - -22:31 Therefore shall ye keep my commandments, and do them: I am the -LORD. - -22:32 Neither shall ye profane my holy name; but I will be hallowed -among the children of Israel: I am the LORD which hallow you, 22:33 -That brought you out of the land of Egypt, to be your God: I am the -LORD. - -23:1 And the LORD spake unto Moses, saying, 23:2 Speak unto the -children of Israel, and say unto them, Concerning the feasts of the -LORD, which ye shall proclaim to be holy convocations, even these are -my feasts. - -23:3 Six days shall work be done: but the seventh day is the sabbath -of rest, an holy convocation; ye shall do no work therein: it is the -sabbath of the LORD in all your dwellings. - -23:4 These are the feasts of the LORD, even holy convocations, which -ye shall proclaim in their seasons. - -23:5 In the fourteenth day of the first month at even is the LORD's -passover. - -23:6 And on the fifteenth day of the same month is the feast of -unleavened bread unto the LORD: seven days ye must eat unleavened -bread. - -23:7 In the first day ye shall have an holy convocation: ye shall do -no servile work therein. - -23:8 But ye shall offer an offering made by fire unto the LORD seven -days: in the seventh day is an holy convocation: ye shall do no -servile work therein. - -23:9 And the LORD spake unto Moses, saying, 23:10 Speak unto the -children of Israel, and say unto them, When ye be come into the land -which I give unto you, and shall reap the harvest thereof, then ye -shall bring a sheaf of the firstfruits of your harvest unto the -priest: 23:11 And he shall wave the sheaf before the LORD, to be -accepted for you: on the morrow after the sabbath the priest shall -wave it. - -23:12 And ye shall offer that day when ye wave the sheaf an he lamb -without blemish of the first year for a burnt offering unto the LORD. - -23:13 And the meat offering thereof shall be two tenth deals of fine -flour mingled with oil, an offering made by fire unto the LORD for a -sweet savour: and the drink offering thereof shall be of wine, the -fourth part of an hin. - -23:14 And ye shall eat neither bread, nor parched corn, nor green -ears, until the selfsame day that ye have brought an offering unto -your God: it shall be a statute for ever throughout your generations -in all your dwellings. - -23:15 And ye shall count unto you from the morrow after the sabbath, -from the day that ye brought the sheaf of the wave offering; seven -sabbaths shall be complete: 23:16 Even unto the morrow after the -seventh sabbath shall ye number fifty days; and ye shall offer a new -meat offering unto the LORD. - -23:17 Ye shall bring out of your habitations two wave loaves of two -tenth deals; they shall be of fine flour; they shall be baken with -leaven; they are the firstfruits unto the LORD. - -23:18 And ye shall offer with the bread seven lambs without blemish of -the first year, and one young bullock, and two rams: they shall be for -a burnt offering unto the LORD, with their meat offering, and their -drink offerings, even an offering made by fire, of sweet savour unto -the LORD. - -23:19 Then ye shall sacrifice one kid of the goats for a sin offering, -and two lambs of the first year for a sacrifice of peace offerings. - -23:20 And the priest shall wave them with the bread of the firstfruits -for a wave offering before the LORD, with the two lambs: they shall be -holy to the LORD for the priest. - -23:21 And ye shall proclaim on the selfsame day, that it may be an -holy convocation unto you: ye shall do no servile work therein: it -shall be a statute for ever in all your dwellings throughout your -generations. - -23:22 And when ye reap the harvest of your land, thou shalt not make -clean riddance of the corners of thy field when thou reapest, neither -shalt thou gather any gleaning of thy harvest: thou shalt leave them -unto the poor, and to the stranger: I am the LORD your God. - -23:23 And the LORD spake unto Moses, saying, 23:24 Speak unto the -children of Israel, saying, In the seventh month, in the first day of -the month, shall ye have a sabbath, a memorial of blowing of trumpets, -an holy convocation. - -23:25 Ye shall do no servile work therein: but ye shall offer an -offering made by fire unto the LORD. - -23:26 And the LORD spake unto Moses, saying, 23:27 Also on the tenth -day of this seventh month there shall be a day of atonement: it shall -be an holy convocation unto you; and ye shall afflict your souls, and -offer an offering made by fire unto the LORD. - -23:28 And ye shall do no work in that same day: for it is a day of -atonement, to make an atonement for you before the LORD your God. - -23:29 For whatsoever soul it be that shall not be afflicted in that -same day, he shall be cut off from among his people. - -23:30 And whatsoever soul it be that doeth any work in that same day, -the same soul will I destroy from among his people. - -23:31 Ye shall do no manner of work: it shall be a statute for ever -throughout your generations in all your dwellings. - -23:32 It shall be unto you a sabbath of rest, and ye shall afflict -your souls: in the ninth day of the month at even, from even unto -even, shall ye celebrate your sabbath. - -23:33 And the LORD spake unto Moses, saying, 23:34 Speak unto the -children of Israel, saying, The fifteenth day of this seventh month -shall be the feast of tabernacles for seven days unto the LORD. - -23:35 On the first day shall be an holy convocation: ye shall do no -servile work therein. - -23:36 Seven days ye shall offer an offering made by fire unto the -LORD: on the eighth day shall be an holy convocation unto you; and ye -shall offer an offering made by fire unto the LORD: it is a solemn -assembly; and ye shall do no servile work therein. - -23:37 These are the feasts of the LORD, which ye shall proclaim to be -holy convocations, to offer an offering made by fire unto the LORD, a -burnt offering, and a meat offering, a sacrifice, and drink offerings, -every thing upon his day: 23:38 Beside the sabbaths of the LORD, and -beside your gifts, and beside all your vows, and beside all your -freewill offerings, which ye give unto the LORD. - -23:39 Also in the fifteenth day of the seventh month, when ye have -gathered in the fruit of the land, ye shall keep a feast unto the LORD -seven days: on the first day shall be a sabbath, and on the eighth day -shall be a sabbath. - -23:40 And ye shall take you on the first day the boughs of goodly -trees, branches of palm trees, and the boughs of thick trees, and -willows of the brook; and ye shall rejoice before the LORD your God -seven days. - -23:41 And ye shall keep it a feast unto the LORD seven days in the -year. - -It shall be a statute for ever in your generations: ye shall celebrate -it in the seventh month. - -23:42 Ye shall dwell in booths seven days; all that are Israelites -born shall dwell in booths: 23:43 That your generations may know that -I made the children of Israel to dwell in booths, when I brought them -out of the land of Egypt: I am the LORD your God. - -23:44 And Moses declared unto the children of Israel the feasts of the -LORD. - -24:1 And the LORD spake unto Moses, saying, 24:2 Command the children -of Israel, that they bring unto thee pure oil olive beaten for the -light, to cause the lamps to burn continually. - -24:3 Without the vail of the testimony, in the tabernacle of the -congregation, shall Aaron order it from the evening unto the morning -before the LORD continually: it shall be a statute for ever in your -generations. - -24:4 He shall order the lamps upon the pure candlestick before the -LORD continually. - -24:5 And thou shalt take fine flour, and bake twelve cakes thereof: -two tenth deals shall be in one cake. - -24:6 And thou shalt set them in two rows, six on a row, upon the pure -table before the LORD. - -24:7 And thou shalt put pure frankincense upon each row, that it may -be on the bread for a memorial, even an offering made by fire unto the -LORD. - -24:8 Every sabbath he shall set it in order before the LORD -continually, being taken from the children of Israel by an everlasting -covenant. - -24:9 And it shall be Aaron's and his sons'; and they shall eat it in -the holy place: for it is most holy unto him of the offerings of the -LORD made by fire by a perpetual statute. - -24:10 And the son of an Israelitish woman, whose father was an -Egyptian, went out among the children of Israel: and this son of the -Israelitish woman and a man of Israel strove together in the camp; -24:11 And the Israelitish woman's son blasphemed the name of the Lord, -and cursed. And they brought him unto Moses: (and his mother's name -was Shelomith, the daughter of Dibri, of the tribe of Dan:) 24:12 And -they put him in ward, that the mind of the LORD might be shewed them. - -24:13 And the LORD spake unto Moses, saying, 24:14 Bring forth him -that hath cursed without the camp; and let all that heard him lay -their hands upon his head, and let all the congregation stone him. - -24:15 And thou shalt speak unto the children of Israel, saying, -Whosoever curseth his God shall bear his sin. - -24:16 And he that blasphemeth the name of the LORD, he shall surely be -put to death, and all the congregation shall certainly stone him: as -well the stranger, as he that is born in the land, when he blasphemeth -the name of the Lord, shall be put to death. - -24:17 And he that killeth any man shall surely be put to death. - -24:18 And he that killeth a beast shall make it good; beast for beast. - -24:19 And if a man cause a blemish in his neighbour; as he hath done, -so shall it be done to him; 24:20 Breach for breach, eye for eye, -tooth for tooth: as he hath caused a blemish in a man, so shall it be -done to him again. - -24:21 And he that killeth a beast, he shall restore it: and he that -killeth a man, he shall be put to death. - -24:22 Ye shall have one manner of law, as well for the stranger, as -for one of your own country: for I am the LORD your God. - -24:23 And Moses spake to the children of Israel, that they should -bring forth him that had cursed out of the camp, and stone him with -stones. And the children of Israel did as the LORD commanded Moses. - -25:1 And the LORD spake unto Moses in mount Sinai, saying, 25:2 Speak -unto the children of Israel, and say unto them, When ye come into the -land which I give you, then shall the land keep a sabbath unto the -LORD. - -25:3 Six years thou shalt sow thy field, and six years thou shalt -prune thy vineyard, and gather in the fruit thereof; 25:4 But in the -seventh year shall be a sabbath of rest unto the land, a sabbath for -the LORD: thou shalt neither sow thy field, nor prune thy vineyard. - -25:5 That which groweth of its own accord of thy harvest thou shalt -not reap, neither gather the grapes of thy vine undressed: for it is a -year of rest unto the land. - -25:6 And the sabbath of the land shall be meat for you; for thee, and -for thy servant, and for thy maid, and for thy hired servant, and for -thy stranger that sojourneth with thee. - -25:7 And for thy cattle, and for the beast that are in thy land, shall -all the increase thereof be meat. - -25:8 And thou shalt number seven sabbaths of years unto thee, seven -times seven years; and the space of the seven sabbaths of years shall -be unto thee forty and nine years. - -25:9 Then shalt thou cause the trumpet of the jubile to sound on the -tenth day of the seventh month, in the day of atonement shall ye make -the trumpet sound throughout all your land. - -25:10 And ye shall hallow the fiftieth year, and proclaim liberty -throughout all the land unto all the inhabitants thereof: it shall be -a jubile unto you; and ye shall return every man unto his possession, -and ye shall return every man unto his family. - -25:11 A jubile shall that fiftieth year be unto you: ye shall not sow, -neither reap that which groweth of itself in it, nor gather the grapes -in it of thy vine undressed. - -25:12 For it is the jubile; it shall be holy unto you: ye shall eat -the increase thereof out of the field. - -25:13 In the year of this jubile ye shall return every man unto his -possession. - -25:14 And if thou sell ought unto thy neighbour, or buyest ought of -thy neighbour's hand, ye shall not oppress one another: 25:15 -According to the number of years after the jubile thou shalt buy of -thy neighbour, and according unto the number of years of the fruits he -shall sell unto thee: 25:16 According to the multitude of years thou -shalt increase the price thereof, and according to the fewness of -years thou shalt diminish the price of it: for according to the number -of the years of the fruits doth he sell unto thee. - -25:17 Ye shall not therefore oppress one another; but thou shalt fear -thy God:for I am the LORD your God. - -25:18 Wherefore ye shall do my statutes, and keep my judgments, and do -them; and ye shall dwell in the land in safety. - -25:19 And the land shall yield her fruit, and ye shall eat your fill, -and dwell therein in safety. - -25:20 And if ye shall say, What shall we eat the seventh year? behold, -we shall not sow, nor gather in our increase: 25:21 Then I will -command my blessing upon you in the sixth year, and it shall bring -forth fruit for three years. - -25:22 And ye shall sow the eighth year, and eat yet of old fruit until -the ninth year; until her fruits come in ye shall eat of the old -store. - -25:23 The land shall not be sold for ever: for the land is mine, for -ye are strangers and sojourners with me. - -25:24 And in all the land of your possession ye shall grant a -redemption for the land. - -25:25 If thy brother be waxen poor, and hath sold away some of his -possession, and if any of his kin come to redeem it, then shall he -redeem that which his brother sold. - -25:26 And if the man have none to redeem it, and himself be able to -redeem it; 25:27 Then let him count the years of the sale thereof, and -restore the overplus unto the man to whom he sold it; that he may -return unto his possession. - -25:28 But if he be not able to restore it to him, then that which is -sold shall remain in the hand of him that hath bought it until the -year of jubile: and in the jubile it shall go out, and he shall return -unto his possession. - -25:29 And if a man sell a dwelling house in a walled city, then he may -redeem it within a whole year after it is sold; within a full year may -he redeem it. - -25:30 And if it be not redeemed within the space of a full year, then -the house that is in the walled city shall be established for ever to -him that bought it throughout his generations: it shall not go out in -the jubile. - -25:31 But the houses of the villages which have no wall round about -them shall be counted as the fields of the country: they may be -redeemed, and they shall go out in the jubile. - -25:32 Notwithstanding the cities of the Levites, and the houses of the -cities of their possession, may the Levites redeem at any time. - -25:33 And if a man purchase of the Levites, then the house that was -sold, and the city of his possession, shall go out in the year of -jubile: for the houses of the cities of the Levites are their -possession among the children of Israel. - -25:34 But the field of the suburbs of their cities may not be sold; -for it is their perpetual possession. - -25:35 And if thy brother be waxen poor, and fallen in decay with thee; -then thou shalt relieve him: yea, though he be a stranger, or a -sojourner; that he may live with thee. - -25:36 Take thou no usury of him, or increase: but fear thy God; that -thy brother may live with thee. - -25:37 Thou shalt not give him thy money upon usury, nor lend him thy -victuals for increase. - -25:38 I am the LORD your God, which brought you forth out of the land -of Egypt, to give you the land of Canaan, and to be your God. - -25:39 And if thy brother that dwelleth by thee be waxen poor, and be -sold unto thee; thou shalt not compel him to serve as a bondservant: -25:40 But as an hired servant, and as a sojourner, he shall be with -thee, and shall serve thee unto the year of jubile. - -25:41 And then shall he depart from thee, both he and his children -with him, and shall return unto his own family, and unto the -possession of his fathers shall he return. - -25:42 For they are my servants, which I brought forth out of the land -of Egypt: they shall not be sold as bondmen. - -25:43 Thou shalt not rule over him with rigour; but shalt fear thy -God. - -25:44 Both thy bondmen, and thy bondmaids, which thou shalt have, -shall be of the heathen that are round about you; of them shall ye buy -bondmen and bondmaids. - -25:45 Moreover of the children of the strangers that do sojourn among -you, of them shall ye buy, and of their families that are with you, -which they begat in your land: and they shall be your possession. - -25:46 And ye shall take them as an inheritance for your children after -you, to inherit them for a possession; they shall be your bondmen for -ever: but over your brethren the children of Israel, ye shall not rule -one over another with rigour. - -25:47 And if a sojourner or stranger wax rich by thee, and thy brother -that dwelleth by him wax poor, and sell himself unto the stranger or -sojourner by thee, or to the stock of the stranger's family: 25:48 -After that he is sold he may be redeemed again; one of his brethren -may redeem him: 25:49 Either his uncle, or his uncle's son, may redeem -him, or any that is nigh of kin unto him of his family may redeem him; -or if he be able, he may redeem himself. - -25:50 And he shall reckon with him that bought him from the year that -he was sold to him unto the year of jubile: and the price of his sale -shall be according unto the number of years, according to the time of -an hired servant shall it be with him. - -25:51 If there be yet many years behind, according unto them he shall -give again the price of his redemption out of the money that he was -bought for. - -25:52 And if there remain but few years unto the year of jubile, then -he shall count with him, and according unto his years shall he give -him again the price of his redemption. - -25:53 And as a yearly hired servant shall he be with him: and the -other shall not rule with rigour over him in thy sight. - -25:54 And if he be not redeemed in these years, then he shall go out -in the year of jubile, both he, and his children with him. - -25:55 For unto me the children of Israel are servants; they are my -servants whom I brought forth out of the land of Egypt: I am the LORD -your God. - -26:1 Ye shall make you no idols nor graven image, neither rear you up -a standing image, neither shall ye set up any image of stone in your -land, to bow down unto it: for I am the LORD your God. - -26:2 Ye shall keep my sabbaths, and reverence my sanctuary: I am the -LORD. - -26:3 If ye walk in my statutes, and keep my commandments, and do them; -26:4 Then I will give you rain in due season, and the land shall yield -her increase, and the trees of the field shall yield their fruit. - -26:5 And your threshing shall reach unto the vintage, and the vintage -shall reach unto the sowing time: and ye shall eat your bread to the -full, and dwell in your land safely. - -26:6 And I will give peace in the land, and ye shall lie down, and -none shall make you afraid: and I will rid evil beasts out of the -land, neither shall the sword go through your land. - -26:7 And ye shall chase your enemies, and they shall fall before you -by the sword. - -26:8 And five of you shall chase an hundred, and an hundred of you -shall put ten thousand to flight: and your enemies shall fall before -you by the sword. - -26:9 For I will have respect unto you, and make you fruitful, and -multiply you, and establish my covenant with you. - -26:10 And ye shall eat old store, and bring forth the old because of -the new. - -26:11 And I set my tabernacle among you: and my soul shall not abhor -you. - -26:12 And I will walk among you, and will be your God, and ye shall be -my people. - -26:13 I am the LORD your God, which brought you forth out of the land -of Egypt, that ye should not be their bondmen; and I have broken the -bands of your yoke, and made you go upright. - -26:14 But if ye will not hearken unto me, and will not do all these -commandments; 26:15 And if ye shall despise my statutes, or if your -soul abhor my judgments, so that ye will not do all my commandments, -but that ye break my covenant: 26:16 I also will do this unto you; I -will even appoint over you terror, consumption, and the burning ague, -that shall consume the eyes, and cause sorrow of heart: and ye shall -sow your seed in vain, for your enemies shall eat it. - -26:17 And I will set my face against you, and ye shall be slain before -your enemies: they that hate you shall reign over you; and ye shall -flee when none pursueth you. - -26:18 And if ye will not yet for all this hearken unto me, then I will -punish you seven times more for your sins. - -26:19 And I will break the pride of your power; and I will make your -heaven as iron, and your earth as brass: 26:20 And your strength shall -be spent in vain: for your land shall not yield her increase, neither -shall the trees of the land yield their fruits. - -26:21 And if ye walk contrary unto me, and will not hearken unto me; I -will bring seven times more plagues upon you according to your sins. - -26:22 I will also send wild beasts among you, which shall rob you of -your children, and destroy your cattle, and make you few in number; -and your high ways shall be desolate. - -26:23 And if ye will not be reformed by me by these things, but will -walk contrary unto me; 26:24 Then will I also walk contrary unto you, -and will punish you yet seven times for your sins. - -26:25 And I will bring a sword upon you, that shall avenge the quarrel -of my covenant: and when ye are gathered together within your cities, -I will send the pestilence among you; and ye shall be delivered into -the hand of the enemy. - -26:26 And when I have broken the staff of your bread, ten women shall -bake your bread in one oven, and they shall deliver you your bread -again by weight: and ye shall eat, and not be satisfied. - -26:27 And if ye will not for all this hearken unto me, but walk -contrary unto me; 26:28 Then I will walk contrary unto you also in -fury; and I, even I, will chastise you seven times for your sins. - -26:29 And ye shall eat the flesh of your sons, and the flesh of your -daughters shall ye eat. - -26:30 And I will destroy your high places, and cut down your images, -and cast your carcases upon the carcases of your idols, and my soul -shall abhor you. - -26:31 And I will make your cities waste, and bring your sanctuaries -unto desolation, and I will not smell the savour of your sweet odours. - -26:32 And I will bring the land into desolation: and your enemies -which dwell therein shall be astonished at it. - -26:33 And I will scatter you among the heathen, and will draw out a -sword after you: and your land shall be desolate, and your cities -waste. - -26:34 Then shall the land enjoy her sabbaths, as long as it lieth -desolate, and ye be in your enemies' land; even then shall the land -rest, and enjoy her sabbaths. - -26:35 As long as it lieth desolate it shall rest; because it did not -rest in your sabbaths, when ye dwelt upon it. - -26:36 And upon them that are left alive of you I will send a faintness -into their hearts in the lands of their enemies; and the sound of a -shaken leaf shall chase them; and they shall flee, as fleeing from a -sword; and they shall fall when none pursueth. - -26:37 And they shall fall one upon another, as it were before a sword, -when none pursueth: and ye shall have no power to stand before your -enemies. - -26:38 And ye shall perish among the heathen, and the land of your -enemies shall eat you up. - -26:39 And they that are left of you shall pine away in their iniquity -in your enemies' lands; and also in the iniquities of their fathers -shall they pine away with them. - -26:40 If they shall confess their iniquity, and the iniquity of their -fathers, with their trespass which they trespassed against me, and -that also they have walked contrary unto me; 26:41 And that I also -have walked contrary unto them, and have brought them into the land of -their enemies; if then their uncircumcised hearts be humbled, and they -then accept of the punishment of their iniquity: 26:42 Then will I -remember my covenant with Jacob, and also my covenant with Isaac, and -also my covenant with Abraham will I remember; and I will remember the -land. - -26:43 The land also shall be left of them, and shall enjoy her -sabbaths, while she lieth desolate without them: and they shall accept -of the punishment of their iniquity: because, even because they -despised my judgments, and because their soul abhorred my statutes. - -26:44 And yet for all that, when they be in the land of their enemies, -I will not cast them away, neither will I abhor them, to destroy them -utterly, and to break my covenant with them: for I am the LORD their -God. - -26:45 But I will for their sakes remember the covenant of their -ancestors, whom I brought forth out of the land of Egypt in the sight -of the heathen, that I might be their God: I am the LORD. - -26:46 These are the statutes and judgments and laws, which the LORD -made between him and the children of Israel in mount Sinai by the hand -of Moses. - -27:1 And the LORD spake unto Moses, saying, 27:2 Speak unto the -children of Israel, and say unto them, When a man shall make a -singular vow, the persons shall be for the LORD by thy estimation. - -27:3 And thy estimation shall be of the male from twenty years old -even unto sixty years old, even thy estimation shall be fifty shekels -of silver, after the shekel of the sanctuary. - -27:4 And if it be a female, then thy estimation shall be thirty -shekels. - -27:5 And if it be from five years old even unto twenty years old, then -thy estimation shall be of the male twenty shekels, and for the female -ten shekels. - -27:6 And if it be from a month old even unto five years old, then thy -estimation shall be of the male five shekels of silver, and for the -female thy estimation shall be three shekels of silver. - -27:7 And if it be from sixty years old and above; if it be a male, -then thy estimation shall be fifteen shekels, and for the female ten -shekels. - -27:8 But if he be poorer than thy estimation, then he shall present -himself before the priest, and the priest shall value him; according -to his ability that vowed shall the priest value him. - -27:9 And if it be a beast, whereof men bring an offering unto the -LORD, all that any man giveth of such unto the LORD shall be holy. - -27:10 He shall not alter it, nor change it, a good for a bad, or a bad -for a good: and if he shall at all change beast for beast, then it and -the exchange thereof shall be holy. - -27:11 And if it be any unclean beast, of which they do not offer a -sacrifice unto the LORD, then he shall present the beast before the -priest: 27:12 And the priest shall value it, whether it be good or -bad: as thou valuest it, who art the priest, so shall it be. - -27:13 But if he will at all redeem it, then he shall add a fifth part -thereof unto thy estimation. - -27:14 And when a man shall sanctify his house to be holy unto the -LORD, then the priest shall estimate it, whether it be good or bad: as -the priest shall estimate it, so shall it stand. - -27:15 And if he that sanctified it will redeem his house, then he -shall add the fifth part of the money of thy estimation unto it, and -it shall be his. - -27:16 And if a man shall sanctify unto the LORD some part of a field -of his possession, then thy estimation shall be according to the seed -thereof: an homer of barley seed shall be valued at fifty shekels of -silver. - -27:17 If he sanctify his field from the year of jubile, according to -thy estimation it shall stand. - -27:18 But if he sanctify his field after the jubile, then the priest -shall reckon unto him the money according to the years that remain, -even unto the year of the jubile, and it shall be abated from thy -estimation. - -27:19 And if he that sanctified the field will in any wise redeem it, -then he shall add the fifth part of the money of thy estimation unto -it, and it shall be assured to him. - -27:20 And if he will not redeem the field, or if he have sold the -field to another man, it shall not be redeemed any more. - -27:21 But the field, when it goeth out in the jubile, shall be holy -unto the LORD, as a field devoted; the possession thereof shall be the -priest's. - -27:22 And if a man sanctify unto the LORD a field which he hath -bought, which is not of the fields of his possession; 27:23 Then the -priest shall reckon unto him the worth of thy estimation, even unto -the year of the jubile: and he shall give thine estimation in that -day, as a holy thing unto the LORD. - -27:24 In the year of the jubile the field shall return unto him of -whom it was bought, even to him to whom the possession of the land did -belong. - -27:25 And all thy estimations shall be according to the shekel of the -sanctuary: twenty gerahs shall be the shekel. - -27:26 Only the firstling of the beasts, which should be the LORD's -firstling, no man shall sanctify it; whether it be ox, or sheep: it is -the LORD's. - -27:27 And if it be of an unclean beast, then he shall redeem it -according to thine estimation, and shall add a fifth part of it -thereto: or if it be not redeemed, then it shall be sold according to -thy estimation. - -27:28 Notwithstanding no devoted thing, that a man shall devote unto -the LORD of all that he hath, both of man and beast, and of the field -of his possession, shall be sold or redeemed: every devoted thing is -most holy unto the LORD. - -27:29 None devoted, which shall be devoted of men, shall be redeemed; -but shall surely be put to death. - -27:30 And all the tithe of the land, whether of the seed of the land, -or of the fruit of the tree, is the LORD's: it is holy unto the LORD. - -27:31 And if a man will at all redeem ought of his tithes, he shall -add thereto the fifth part thereof. - -27:32 And concerning the tithe of the herd, or of the flock, even of -whatsoever passeth under the rod, the tenth shall be holy unto the -LORD. - -27:33 He shall not search whether it be good or bad, neither shall he -change it: and if he change it at all, then both it and the change -thereof shall be holy; it shall not be redeemed. - -27:34 These are the commandments, which the LORD commanded Moses for -the children of Israel in mount Sinai. - - - - -The Fourth Book of Moses: Called Numbers - - -1:1 And the LORD spake unto Moses in the wilderness of Sinai, in the -tabernacle of the congregation, on the first day of the second month, -in the second year after they were come out of the land of Egypt, -saying, 1:2 Take ye the sum of all the congregation of the children of -Israel, after their families, by the house of their fathers, with the -number of their names, every male by their polls; 1:3 From twenty -years old and upward, all that are able to go forth to war in Israel: -thou and Aaron shall number them by their armies. - -1:4 And with you there shall be a man of every tribe; every one head -of the house of his fathers. - -1:5 And these are the names of the men that shall stand with you: of -the tribe of Reuben; Elizur the son of Shedeur. - -1:6 Of Simeon; Shelumiel the son of Zurishaddai. - -1:7 Of Judah; Nahshon the son of Amminadab. - -1:8 Of Issachar; Nethaneel the son of Zuar. - -1:9 Of Zebulun; Eliab the son of Helon. - -1:10 Of the children of Joseph: of Ephraim; Elishama the son of -Ammihud: of Manasseh; Gamaliel the son of Pedahzur. - -1:11 Of Benjamin; Abidan the son of Gideoni. - -1:12 Of Dan; Ahiezer the son of Ammishaddai. - -1:13 Of Asher; Pagiel the son of Ocran. - -1:14 Of Gad; Eliasaph the son of Deuel. - -1:15 Of Naphtali; Ahira the son of Enan. - -1:16 These were the renowned of the congregation, princes of the -tribes of their fathers, heads of thousands in Israel. - -1:17 And Moses and Aaron took these men which are expressed by their -names: 1:18 And they assembled all the congregation together on the -first day of the second month, and they declared their pedigrees after -their families, by the house of their fathers, according to the number -of the names, from twenty years old and upward, by their polls. - -1:19 As the LORD commanded Moses, so he numbered them in the -wilderness of Sinai. - -1:20 And the children of Reuben, Israel's eldest son, by their -generations, after their families, by the house of their fathers, -according to the number of the names, by their polls, every male from -twenty years old and upward, all that were able to go forth to war; -1:21 Those that were numbered of them, even of the tribe of Reuben, -were forty and six thousand and five hundred. - -1:22 Of the children of Simeon, by their generations, after their -families, by the house of their fathers, those that were numbered of -them, according to the number of the names, by their polls, every male -from twenty years old and upward, all that were able to go forth to -war; 1:23 Those that were numbered of them, even of the tribe of -Simeon, were fifty and nine thousand and three hundred. - -1:24 Of the children of Gad, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:25 Those that were numbered of them, even of the tribe -of Gad, were forty and five thousand six hundred and fifty. - -1:26 Of the children of Judah, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:27 Those that were numbered of them, even of the tribe -of Judah, were threescore and fourteen thousand and six hundred. - -1:28 Of the children of Issachar, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:29 Those that were numbered of them, even of the tribe -of Issachar, were fifty and four thousand and four hundred. - -1:30 Of the children of Zebulun, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:31 Those that were numbered of them, even of the tribe -of Zebulun, were fifty and seven thousand and four hundred. - -1:32 Of the children of Joseph, namely, of the children of Ephraim, by -their generations, after their families, by the house of their -fathers, according to the number of the names, from twenty years old -and upward, all that were able to go forth to war; 1:33 Those that -were numbered of them, even of the tribe of Ephraim, were forty -thousand and five hundred. - -1:34 Of the children of Manasseh, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:35 Those that were numbered of them, even of the tribe -of Manasseh, were thirty and two thousand and two hundred. - -1:36 Of the children of Benjamin, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:37 Those that were numbered of them, even of the tribe -of Benjamin, were thirty and five thousand and four hundred. - -1:38 Of the children of Dan, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:39 Those that were numbered of them, even of the tribe -of Dan, were threescore and two thousand and seven hundred. - -1:40 Of the children of Asher, by their generations, after their -families, by the house of their fathers, according to the number of -the names, from twenty years old and upward, all that were able to go -forth to war; 1:41 Those that were numbered of them, even of the tribe -of Asher, were forty and one thousand and five hundred. - -1:42 Of the children of Naphtali, throughout their generations, after -their families, by the house of their fathers, according to the number -of the names, from twenty years old and upward, all that were able to -go forth to war; 1:43 Those that were numbered of them, even of the -tribe of Naphtali, were fifty and three thousand and four hundred. - -1:44 These are those that were numbered, which Moses and Aaron -numbered, and the princes of Israel, being twelve men: each one was -for the house of his fathers. - -1:45 So were all those that were numbered of the children of Israel, -by the house of their fathers, from twenty years old and upward, all -that were able to go forth to war in Israel; 1:46 Even all they that -were numbered were six hundred thousand and three thousand and five -hundred and fifty. - -1:47 But the Levites after the tribe of their fathers were not -numbered among them. - -1:48 For the LORD had spoken unto Moses, saying, 1:49 Only thou shalt -not number the tribe of Levi, neither take the sum of them among the -children of Israel: 1:50 But thou shalt appoint the Levites over the -tabernacle of testimony, and over all the vessels thereof, and over -all things that belong to it: they shall bear the tabernacle, and all -the vessels thereof; and they shall minister unto it, and shall encamp -round about the tabernacle. - -1:51 And when the tabernacle setteth forward, the Levites shall take -it down: and when the tabernacle is to be pitched, the Levites shall -set it up: and the stranger that cometh nigh shall be put to death. - -1:52 And the children of Israel shall pitch their tents, every man by -his own camp, and every man by his own standard, throughout their -hosts. - -1:53 But the Levites shall pitch round about the tabernacle of -testimony, that there be no wrath upon the congregation of the -children of Israel: and the Levites shall keep the charge of the -tabernacle of testimony. - -1:54 And the children of Israel did according to all that the LORD -commanded Moses, so did they. - -2:1 And the LORD spake unto Moses and unto Aaron, saying, 2:2 Every -man of the children of Israel shall pitch by his own standard, with -the ensign of their father's house: far off about the tabernacle of -the congregation shall they pitch. - -2:3 And on the east side toward the rising of the sun shall they of -the standard of the camp of Judah pitch throughout their armies: and -Nahshon the son of Amminadab shall be captain of the children of -Judah. - -2:4 And his host, and those that were numbered of them, were -threescore and fourteen thousand and six hundred. - -2:5 And those that do pitch next unto him shall be the tribe of -Issachar: and Nethaneel the son of Zuar shall be captain of the -children of Issachar. - -2:6 And his host, and those that were numbered thereof, were fifty and -four thousand and four hundred. - -2:7 Then the tribe of Zebulun: and Eliab the son of Helon shall be -captain of the children of Zebulun. - -2:8 And his host, and those that were numbered thereof, were fifty and -seven thousand and four hundred. - -2:9 All that were numbered in the camp of Judah were an hundred -thousand and fourscore thousand and six thousand and four hundred, -throughout their armies. These shall first set forth. - -2:10 On the south side shall be the standard of the camp of Reuben -according to their armies: and the captain of the children of Reuben -shall be Elizur the son of Shedeur. - -2:11 And his host, and those that were numbered thereof, were forty -and six thousand and five hundred. - -2:12 And those which pitch by him shall be the tribe of Simeon: and -the captain of the children of Simeon shall be Shelumiel the son of -Zurishaddai. - -2:13 And his host, and those that were numbered of them, were fifty -and nine thousand and three hundred. - -2:14 Then the tribe of Gad: and the captain of the sons of Gad shall -be Eliasaph the son of Reuel. - -2:15 And his host, and those that were numbered of them, were forty -and five thousand and six hundred and fifty. - -2:16 All that were numbered in the camp of Reuben were an hundred -thousand and fifty and one thousand and four hundred and fifty, -throughout their armies. And they shall set forth in the second rank. - -2:17 Then the tabernacle of the congregation shall set forward with -the camp of the Levites in the midst of the camp: as they encamp, so -shall they set forward, every man in his place by their standards. - -2:18 On the west side shall be the standard of the camp of Ephraim -according to their armies: and the captain of the sons of Ephraim -shall be Elishama the son of Ammihud. - -2:19 And his host, and those that were numbered of them, were forty -thousand and five hundred. - -2:20 And by him shall be the tribe of Manasseh: and the captain of the -children of Manasseh shall be Gamaliel the son of Pedahzur. - -2:21 And his host, and those that were numbered of them, were thirty -and two thousand and two hundred. - -2:22 Then the tribe of Benjamin: and the captain of the sons of -Benjamin shall be Abidan the son of Gideoni. - -2:23 And his host, and those that were numbered of them, were thirty -and five thousand and four hundred. - -2:24 All that were numbered of the camp of Ephraim were an hundred -thousand and eight thousand and an hundred, throughout their armies. -And they shall go forward in the third rank. - -2:25 The standard of the camp of Dan shall be on the north side by -their armies: and the captain of the children of Dan shall be Ahiezer -the son of Ammishaddai. - -2:26 And his host, and those that were numbered of them, were -threescore and two thousand and seven hundred. - -2:27 And those that encamp by him shall be the tribe of Asher: and the -captain of the children of Asher shall be Pagiel the son of Ocran. - -2:28 And his host, and those that were numbered of them, were forty -and one thousand and five hundred. - -2:29 Then the tribe of Naphtali: and the captain of the children of -Naphtali shall be Ahira the son of Enan. - -2:30 And his host, and those that were numbered of them, were fifty -and three thousand and four hundred. - -2:31 All they that were numbered in the camp of Dan were an hundred -thousand and fifty and seven thousand and six hundred. They shall go -hindmost with their standards. - -2:32 These are those which were numbered of the children of Israel by -the house of their fathers: all those that were numbered of the camps -throughout their hosts were six hundred thousand and three thousand -and five hundred and fifty. - -2:33 But the Levites were not numbered among the children of Israel; -as the LORD commanded Moses. - -2:34 And the children of Israel did according to all that the LORD -commanded Moses: so they pitched by their standards, and so they set -forward, every one after their families, according to the house of -their fathers. - -3:1 These also are the generations of Aaron and Moses in the day that -the LORD spake with Moses in mount Sinai. - -3:2 And these are the names of the sons of Aaron; Nadab the firstborn, -and Abihu, Eleazar, and Ithamar. - -3:3 These are the names of the sons of Aaron, the priests which were -anointed, whom he consecrated to minister in the priest's office. - -3:4 And Nadab and Abihu died before the LORD, when they offered -strange fire before the LORD, in the wilderness of Sinai, and they had -no children: and Eleazar and Ithamar ministered in the priest's office -in the sight of Aaron their father. - -3:5 And the LORD spake unto Moses, saying, 3:6 Bring the tribe of Levi -near, and present them before Aaron the priest, that they may minister -unto him. - -3:7 And they shall keep his charge, and the charge of the whole -congregation before the tabernacle of the congregation, to do the -service of the tabernacle. - -3:8 And they shall keep all the instruments of the tabernacle of the -congregation, and the charge of the children of Israel, to do the -service of the tabernacle. - -3:9 And thou shalt give the Levites unto Aaron and to his sons: they -are wholly given unto him out of the children of Israel. - -3:10 And thou shalt appoint Aaron and his sons, and they shall wait on -their priest's office: and the stranger that cometh nigh shall be put -to death. - -3:11 And the LORD spake unto Moses, saying, 3:12 And I, behold, I have -taken the Levites from among the children of Israel instead of all the -firstborn that openeth the matrix among the children of Israel: -therefore the Levites shall be mine; 3:13 Because all the firstborn -are mine; for on the day that I smote all the firstborn in the land of -Egypt I hallowed unto me all the firstborn in Israel, both man and -beast: mine shall they be: I am the LORD. - -3:14 And the LORD spake unto Moses in the wilderness of Sinai, saying, -3:15 Number the children of Levi after the house of their fathers, by -their families: every male from a month old and upward shalt thou -number them. - -3:16 And Moses numbered them according to the word of the LORD, as he -was commanded. - -3:17 And these were the sons of Levi by their names; Gershon, and -Kohath, and Merari. - -3:18 And these are the names of the sons of Gershon by their families; -Libni, and Shimei. - -3:19 And the sons of Kohath by their families; Amram, and Izehar, -Hebron, and Uzziel. - -3:20 And the sons of Merari by their families; Mahli, and Mushi. These -are the families of the Levites according to the house of their -fathers. - -3:21 Of Gershon was the family of the Libnites, and the family of the -Shimites: these are the families of the Gershonites. - -3:22 Those that were numbered of them, according to the number of all -the males, from a month old and upward, even those that were numbered -of them were seven thousand and five hundred. - -3:23 The families of the Gershonites shall pitch behind the tabernacle -westward. - -3:24 And the chief of the house of the father of the Gershonites shall -be Eliasaph the son of Lael. - -3:25 And the charge of the sons of Gershon in the tabernacle of the -congregation shall be the tabernacle, and the tent, the covering -thereof, and the hanging for the door of the tabernacle of the -congregation, 3:26 And the hangings of the court, and the curtain for -the door of the court, which is by the tabernacle, and by the altar -round about, and the cords of it for all the service thereof. - -3:27 And of Kohath was the family of the Amramites, and the family of -the Izeharites, and the family of the Hebronites, and the family of -the Uzzielites: these are the families of the Kohathites. - -3:28 In the number of all the males, from a month old and upward, were -eight thousand and six hundred, keeping the charge of the sanctuary. - -3:29 The families of the sons of Kohath shall pitch on the side of the -tabernacle southward. - -3:30 And the chief of the house of the father of the families of the -Kohathites shall be Elizaphan the son of Uzziel. - -3:31 And their charge shall be the ark, and the table, and the -candlestick, and the altars, and the vessels of the sanctuary -wherewith they minister, and the hanging, and all the service thereof. - -3:32 And Eleazar the son of Aaron the priest shall be chief over the -chief of the Levites, and have the oversight of them that keep the -charge of the sanctuary. - -3:33 Of Merari was the family of the Mahlites, and the family of the -Mushites: these are the families of Merari. - -3:34 And those that were numbered of them, according to the number of -all the males, from a month old and upward, were six thousand and two -hundred. - -3:35 And the chief of the house of the father of the families of -Merari was Zuriel the son of Abihail: these shall pitch on the side of -the tabernacle northward. - -3:36 And under the custody and charge of the sons of Merari shall be -the boards of the tabernacle, and the bars thereof, and the pillars -thereof, and the sockets thereof, and all the vessels thereof, and all -that serveth thereto, 3:37 And the pillars of the court round about, -and their sockets, and their pins, and their cords. - -3:38 But those that encamp before the tabernacle toward the east, even -before the tabernacle of the congregation eastward, shall be Moses, -and Aaron and his sons, keeping the charge of the sanctuary for the -charge of the children of Israel; and the stranger that cometh nigh -shall be put to death. - -3:39 All that were numbered of the Levites, which Moses and Aaron -numbered at the commandment of the LORD, throughout their families, -all the males from a month old and upward, were twenty and two -thousand. - -3:40 And the LORD said unto Moses, Number all the firstborn of the -males of the children of Israel from a month old and upward, and take -the number of their names. - -3:41 And thou shalt take the Levites for me (I am the LORD) instead of -all the firstborn among the children of Israel; and the cattle of the -Levites instead of all the firstlings among the cattle of the children -of Israel. - -3:42 And Moses numbered, as the LORD commanded him, all the firstborn -among the children of Israel. - -3:43 And all the firstborn males by the number of names, from a month -old and upward, of those that were numbered of them, were twenty and -two thousand two hundred and threescore and thirteen. - -3:44 And the LORD spake unto Moses, saying, 3:45 Take the Levites -instead of all the firstborn among the children of Israel, and the -cattle of the Levites instead of their cattle; and the Levites shall -be mine: I am the LORD. - -3:46 And for those that are to be redeemed of the two hundred and -threescore and thirteen of the firstborn of the children of Israel, -which are more than the Levites; 3:47 Thou shalt even take five -shekels apiece by the poll, after the shekel of the sanctuary shalt -thou take them: (the shekel is twenty gerahs:) 3:48 And thou shalt -give the money, wherewith the odd number of them is to be redeemed, -unto Aaron and to his sons. - -3:49 And Moses took the redemption money of them that were over and -above them that were redeemed by the Levites: 3:50 Of the firstborn of -the children of Israel took he the money; a thousand three hundred and -threescore and five shekels, after the shekel of the sanctuary: 3:51 -And Moses gave the money of them that were redeemed unto Aaron and to -his sons, according to the word of the LORD, as the LORD commanded -Moses. - -4:1 And the LORD spake unto Moses and unto Aaron, saying, 4:2 Take the -sum of the sons of Kohath from among the sons of Levi, after their -families, by the house of their fathers, 4:3 From thirty years old and -upward even until fifty years old, all that enter into the host, to do -the work in the tabernacle of the congregation. - -4:4 This shall be the service of the sons of Kohath in the tabernacle -of the congregation, about the most holy things: 4:5 And when the camp -setteth forward, Aaron shall come, and his sons, and they shall take -down the covering vail, and cover the ark of testimony with it: 4:6 -And shall put thereon the covering of badgers' skins, and shall spread -over it a cloth wholly of blue, and shall put in the staves thereof. - -4:7 And upon the table of shewbread they shall spread a cloth of blue, -and put thereon the dishes, and the spoons, and the bowls, and covers -to cover withal: and the continual bread shall be thereon: 4:8 And -they shall spread upon them a cloth of scarlet, and cover the same -with a covering of badgers' skins, and shall put in the staves -thereof. - -4:9 And they shall take a cloth of blue, and cover the candlestick of -the light, and his lamps, and his tongs, and his snuffdishes, and all -the oil vessels thereof, wherewith they minister unto it: 4:10 And -they shall put it and all the vessels thereof within a covering of -badgers' skins, and shall put it upon a bar. - -4:11 And upon the golden altar they shall spread a cloth of blue, and -cover it with a covering of badgers' skins, and shall put to the -staves thereof: 4:12 And they shall take all the instruments of -ministry, wherewith they minister in the sanctuary, and put them in a -cloth of blue, and cover them with a covering of badgers' skins, and -shall put them on a bar: 4:13 And they shall take away the ashes from -the altar, and spread a purple cloth thereon: 4:14 And they shall put -upon it all the vessels thereof, wherewith they minister about it, -even the censers, the fleshhooks, and the shovels, and the basons, all -the vessels of the altar; and they shall spread upon it a covering of -badgers' skins, and put to the staves of it. - -4:15 And when Aaron and his sons have made an end of covering the -sanctuary, and all the vessels of the sanctuary, as the camp is to set -forward; after that, the sons of Kohath shall come to bear it: but -they shall not touch any holy thing, lest they die. These things are -the burden of the sons of Kohath in the tabernacle of the -congregation. - -4:16 And to the office of Eleazar the son of Aaron the priest -pertaineth the oil for the light, and the sweet incense, and the daily -meat offering, and the anointing oil, and the oversight of all the -tabernacle, and of all that therein is, in the sanctuary, and in the -vessels thereof. - -4:17 And the LORD spake unto Moses and unto Aaron saying, 4:18 Cut ye -not off the tribe of the families of the Kohathites from among the -Levites: 4:19 But thus do unto them, that they may live, and not die, -when they approach unto the most holy things: Aaron and his sons shall -go in, and appoint them every one to his service and to his burden: -4:20 But they shall not go in to see when the holy things are covered, -lest they die. - -4:21 And the LORD spake unto Moses, saying, 4:22 Take also the sum of -the sons of Gershon, throughout the houses of their fathers, by their -families; 4:23 From thirty years old and upward until fifty years old -shalt thou number them; all that enter in to perform the service, to -do the work in the tabernacle of the congregation. - -4:24 This is the service of the families of the Gershonites, to serve, -and for burdens: 4:25 And they shall bear the curtains of the -tabernacle, and the tabernacle of the congregation, his covering, and -the covering of the badgers' skins that is above upon it, and the -hanging for the door of the tabernacle of the congregation, 4:26 And -the hangings of the court, and the hanging for the door of the gate of -the court, which is by the tabernacle and by the altar round about, -and their cords, and all the instruments of their service, and all -that is made for them: so shall they serve. - -4:27 At the appointment of Aaron and his sons shall be all the service -of the sons of the Gershonites, in all their burdens, and in all their -service: and ye shall appoint unto them in charge all their burdens. - -4:28 This is the service of the families of the sons of Gershon in the -tabernacle of the congregation: and their charge shall be under the -hand of Ithamar the son of Aaron the priest. - -4:29 As for the sons of Merari, thou shalt number them after their -families, by the house of their fathers; 4:30 From thirty years old -and upward even unto fifty years old shalt thou number them, every one -that entereth into the service, to do the work of the tabernacle of -the congregation. - -4:31 And this is the charge of their burden, according to all their -service in the tabernacle of the congregation; the boards of the -tabernacle, and the bars thereof, and the pillars thereof, and sockets -thereof, 4:32 And the pillars of the court round about, and their -sockets, and their pins, and their cords, with all their instruments, -and with all their service: and by name ye shall reckon the -instruments of the charge of their burden. - -4:33 This is the service of the families of the sons of Merari, -according to all their service, in the tabernacle of the congregation, -under the hand of Ithamar the son of Aaron the priest. - -4:34 And Moses and Aaron and the chief of the congregation numbered -the sons of the Kohathites after their families, and after the house -of their fathers, 4:35 From thirty years old and upward even unto -fifty years old, every one that entereth into the service, for the -work in the tabernacle of the congregation: 4:36 And those that were -numbered of them by their families were two thousand seven hundred and -fifty. - -4:37 These were they that were numbered of the families of the -Kohathites, all that might do service in the tabernacle of the -congregation, which Moses and Aaron did number according to the -commandment of the LORD by the hand of Moses. - -4:38 And those that were numbered of the sons of Gershon, throughout -their families, and by the house of their fathers, 4:39 From thirty -years old and upward even unto fifty years old, every one that -entereth into the service, for the work in the tabernacle of the -congregation, 4:40 Even those that were numbered of them, throughout -their families, by the house of their fathers, were two thousand and -six hundred and thirty. - -4:41 These are they that were numbered of the families of the sons of -Gershon, of all that might do service in the tabernacle of the -congregation, whom Moses and Aaron did number according to the -commandment of the LORD. - -4:42 And those that were numbered of the families of the sons of -Merari, throughout their families, by the house of their fathers, 4:43 -From thirty years old and upward even unto fifty years old, every one -that entereth into the service, for the work in the tabernacle of the -congregation, 4:44 Even those that were numbered of them after their -families, were three thousand and two hundred. - -4:45 These be those that were numbered of the families of the sons of -Merari, whom Moses and Aaron numbered according to the word of the -LORD by the hand of Moses. - -4:46 All those that were numbered of the Levites, whom Moses and Aaron -and the chief of Israel numbered, after their families, and after the -house of their fathers, 4:47 From thirty years old and upward even -unto fifty years old, every one that came to do the service of the -ministry, and the service of the burden in the tabernacle of the -congregation. - -4:48 Even those that were numbered of them, were eight thousand and -five hundred and fourscore, 4:49 According to the commandment of the -LORD they were numbered by the hand of Moses, every one according to -his service, and according to his burden: thus were they numbered of -him, as the LORD commanded Moses. - -5:1 And the LORD spake unto Moses, saying, 5:2 Command the children of -Israel, that they put out of the camp every leper, and every one that -hath an issue, and whosoever is defiled by the dead: 5:3 Both male and -female shall ye put out, without the camp shall ye put them; that they -defile not their camps, in the midst whereof I dwell. - -5:4 And the children of Israel did so, and put them out without the -camp: as the LORD spake unto Moses, so did the children of Israel. - -5:5 And the LORD spake unto Moses, saying, 5:6 Speak unto the children -of Israel, When a man or woman shall commit any sin that men commit, -to do a trespass against the LORD, and that person be guilty; 5:7 Then -they shall confess their sin which they have done: and he shall -recompense his trespass with the principal thereof, and add unto it -the fifth part thereof, and give it unto him against whom he hath -trespassed. - -5:8 But if the man have no kinsman to recompense the trespass unto, -let the trespass be recompensed unto the LORD, even to the priest; -beside the ram of the atonement, whereby an atonement shall be made -for him. - -5:9 And every offering of all the holy things of the children of -Israel, which they bring unto the priest, shall be his. - -5:10 And every man's hallowed things shall be his: whatsoever any man -giveth the priest, it shall be his. - -5:11 And the LORD spake unto Moses, saying, 5:12 Speak unto the -children of Israel, and say unto them, If any man's wife go aside, and -commit a trespass against him, 5:13 And a man lie with her carnally, -and it be hid from the eyes of her husband, and be kept close, and she -be defiled, and there be no witness against her, neither she be taken -with the manner; 5:14 And the spirit of jealousy come upon him, and he -be jealous of his wife, and she be defiled: or if the spirit of -jealousy come upon him, and he be jealous of his wife, and she be not -defiled: 5:15 Then shall the man bring his wife unto the priest, and -he shall bring her offering for her, the tenth part of an ephah of -barley meal; he shall pour no oil upon it, nor put frankincense -thereon; for it is an offering of jealousy, an offering of memorial, -bringing iniquity to remembrance. - -5:16 And the priest shall bring her near, and set her before the LORD: -5:17 And the priest shall take holy water in an earthen vessel; and of -the dust that is in the floor of the tabernacle the priest shall take, -and put it into the water: 5:18 And the priest shall set the woman -before the LORD, and uncover the woman's head, and put the offering of -memorial in her hands, which is the jealousy offering: and the priest -shall have in his hand the bitter water that causeth the curse: 5:19 -And the priest shall charge her by an oath, and say unto the woman, If -no man have lain with thee, and if thou hast not gone aside to -uncleanness with another instead of thy husband, be thou free from -this bitter water that causeth the curse: 5:20 But if thou hast gone -aside to another instead of thy husband, and if thou be defiled, and -some man have lain with thee beside thine husband: 5:21 Then the -priest shall charge the woman with an oath of cursing, and the priest -shall say unto the woman, The LORD make thee a curse and an oath among -thy people, when the LORD doth make thy thigh to rot, and thy belly to -swell; 5:22 And this water that causeth the curse shall go into thy -bowels, to make thy belly to swell, and thy thigh to rot: And the -woman shall say, Amen, amen. - -5:23 And the priest shall write these curses in a book, and he shall -blot them out with the bitter water: 5:24 And he shall cause the woman -to drink the bitter water that causeth the curse: and the water that -causeth the curse shall enter into her, and become bitter. - -5:25 Then the priest shall take the jealousy offering out of the -woman's hand, and shall wave the offering before the LORD, and offer -it upon the altar: 5:26 And the priest shall take an handful of the -offering, even the memorial thereof, and burn it upon the altar, and -afterward shall cause the woman to drink the water. - -5:27 And when he hath made her to drink the water, then it shall come -to pass, that, if she be defiled, and have done trespass against her -husband, that the water that causeth the curse shall enter into her, -and become bitter, and her belly shall swell, and her thigh shall rot: -and the woman shall be a curse among her people. - -5:28 And if the woman be not defiled, but be clean; then she shall be -free, and shall conceive seed. - -5:29 This is the law of jealousies, when a wife goeth aside to another -instead of her husband, and is defiled; 5:30 Or when the spirit of -jealousy cometh upon him, and he be jealous over his wife, and shall -set the woman before the LORD, and the priest shall execute upon her -all this law. - -5:31 Then shall the man be guiltless from iniquity, and this woman -shall bear her iniquity. - -6:1 And the LORD spake unto Moses, saying, 6:2 Speak unto the children -of Israel, and say unto them, When either man or woman shall separate -themselves to vow a vow of a Nazarite, to separate themselves unto the -LORD: 6:3 He shall separate himself from wine and strong drink, and -shall drink no vinegar of wine, or vinegar of strong drink, neither -shall he drink any liquor of grapes, nor eat moist grapes, or dried. - -6:4 All the days of his separation shall he eat nothing that is made -of the vine tree, from the kernels even to the husk. - -6:5 All the days of the vow of his separation there shall no razor -come upon his head: until the days be fulfilled, in the which he -separateth himself unto the LORD, he shall be holy, and shall let the -locks of the hair of his head grow. - -6:6 All the days that he separateth himself unto the LORD he shall -come at no dead body. - -6:7 He shall not make himself unclean for his father, or for his -mother, for his brother, or for his sister, when they die: because the -consecration of his God is upon his head. - -6:8 All the days of his separation he is holy unto the LORD. - -6:9 And if any man die very suddenly by him, and he hath defiled the -head of his consecration; then he shall shave his head in the day of -his cleansing, on the seventh day shall he shave it. - -6:10 And on the eighth day he shall bring two turtles, or two young -pigeons, to the priest, to the door of the tabernacle of the -congregation: 6:11 And the priest shall offer the one for a sin -offering, and the other for a burnt offering, and make an atonement -for him, for that he sinned by the dead, and shall hallow his head -that same day. - -6:12 And he shall consecrate unto the LORD the days of his separation, -and shall bring a lamb of the first year for a trespass offering: but -the days that were before shall be lost, because his separation was -defiled. - -6:13 And this is the law of the Nazarite, when the days of his -separation are fulfilled: he shall be brought unto the door of the -tabernacle of the congregation: 6:14 And he shall offer his offering -unto the LORD, one he lamb of the first year without blemish for a -burnt offering, and one ewe lamb of the first year without blemish for -a sin offering, and one ram without blemish for peace offerings, 6:15 -And a basket of unleavened bread, cakes of fine flour mingled with -oil, and wafers of unleavened bread anointed with oil, and their meat -offering, and their drink offerings. - -6:16 And the priest shall bring them before the LORD, and shall offer -his sin offering, and his burnt offering: 6:17 And he shall offer the -ram for a sacrifice of peace offerings unto the LORD, with the basket -of unleavened bread: the priest shall offer also his meat offering, -and his drink offering. - -6:18 And the Nazarite shall shave the head of his separation at the -door of the tabernacle of the congregation, and shall take the hair of -the head of his separation, and put it in the fire which is under the -sacrifice of the peace offerings. - -6:19 And the priest shall take the sodden shoulder of the ram, and one -unleavened cake out of the basket, and one unleavened wafer, and shall -put them upon the hands of the Nazarite, after the hair of his -separation is shaven: 6:20 And the priest shall wave them for a wave -offering before the LORD: this is holy for the priest, with the wave -breast and heave shoulder: and after that the Nazarite may drink wine. - -6:21 This is the law of the Nazarite who hath vowed, and of his -offering unto the LORD for his separation, beside that that his hand -shall get: according to the vow which he vowed, so he must do after -the law of his separation. - -6:22 And the LORD spake unto Moses, saying, 6:23 Speak unto Aaron and -unto his sons, saying, On this wise ye shall bless the children of -Israel, saying unto them, 6:24 The LORD bless thee, and keep thee: -6:25 The LORD make his face shine upon thee, and be gracious unto -thee: 6:26 The LORD lift up his countenance upon thee, and give thee -peace. - -6:27 And they shall put my name upon the children of Israel, and I -will bless them. - -7:1 And it came to pass on the day that Moses had fully set up the -tabernacle, and had anointed it, and sanctified it, and all the -instruments thereof, both the altar and all the vessels thereof, and -had anointed them, and sanctified them; 7:2 That the princes of -Israel, heads of the house of their fathers, who were the princes of -the tribes, and were over them that were numbered, offered: 7:3 And -they brought their offering before the LORD, six covered wagons, and -twelve oxen; a wagon for two of the princes, and for each one an ox: -and they brought them before the tabernacle. - -7:4 And the LORD spake unto Moses, saying, 7:5 Take it of them, that -they may be to do the service of the tabernacle of the congregation; -and thou shalt give them unto the Levites, to every man according to -his service. - -7:6 And Moses took the wagons and the oxen, and gave them unto the -Levites. - -7:7 Two wagons and four oxen he gave unto the sons of Gershon, -according to their service: 7:8 And four wagons and eight oxen he gave -unto the sons of Merari, according unto their service, under the hand -of Ithamar the son of Aaron the priest. - -7:9 But unto the sons of Kohath he gave none: because the service of -the sanctuary belonging unto them was that they should bear upon their -shoulders. - -7:10 And the princes offered for dedicating of the altar in the day -that it was anointed, even the princes offered their offering before -the altar. - -7:11 And the LORD said unto Moses, They shall offer their offering, -each prince on his day, for the dedicating of the altar. - -7:12 And he that offered his offering the first day was Nahshon the -son of Amminadab, of the tribe of Judah: 7:13 And his offering was one -silver charger, the weight thereof was an hundred and thirty shekels, -one silver bowl of seventy shekels, after the shekel of the sanctuary; -both of them were full of fine flour mingled with oil for a meat -offering: 7:14 One spoon of ten shekels of gold, full of incense: 7:15 -One young bullock, one ram, one lamb of the first year, for a burnt -offering: 7:16 One kid of the goats for a sin offering: 7:17 And for a -sacrifice of peace offerings, two oxen, five rams, five he goats, five -lambs of the first year: this was the offering of Nahshon the son of -Amminadab. - -7:18 On the second day Nethaneel the son of Zuar, prince of Issachar, -did offer: 7:19 He offered for his offering one silver charger, the -weight whereof was an hundred and thirty shekels, one silver bowl of -seventy shekels, after the shekel of the sanctuary; both of them full -of fine flour mingled with oil for a meat offering: 7:20 One spoon of -gold of ten shekels, full of incense: 7:21 One young bullock, one ram, -one lamb of the first year, for a burnt offering: 7:22 One kid of the -goats for a sin offering: 7:23 And for a sacrifice of peace offerings, -two oxen, five rams, five he goats, five lambs of the first year: this -was the offering of Nethaneel the son of Zuar. - -7:24 On the third day Eliab the son of Helon, prince of the children -of Zebulun, did offer: 7:25 His offering was one silver charger, the -weight whereof was an hundred and thirty shekels, one silver bowl of -seventy shekels, after the shekel of the sanctuary; both of them full -of fine flour mingled with oil for a meat offering: 7:26 One golden -spoon of ten shekels, full of incense: 7:27 One young bullock, one -ram, one lamb of the first year, for a burnt offering: 7:28 One kid of -the goats for a sin offering: 7:29 And for a sacrifice of peace -offerings, two oxen, five rams, five he goats, five lambs of the first -year: this was the offering of Eliab the son of Helon. - -7:30 On the fourth day Elizur the son of Shedeur, prince of the -children of Reuben, did offer: 7:31 His offering was one silver -charger of the weight of an hundred and thirty shekels, one silver -bowl of seventy shekels, after the shekel of the sanctuary; both of -them full of fine flour mingled with oil for a meat offering: 7:32 One -golden spoon of ten shekels, full of incense: 7:33 One young bullock, -one ram, one lamb of the first year, for a burnt offering: 7:34 One -kid of the goats for a sin offering: 7:35 And for a sacrifice of peace -offerings, two oxen, five rams, five he goats, five lambs of the first -year: this was the offering of Elizur the son of Shedeur. - -7:36 On the fifth day Shelumiel the son of Zurishaddai, prince of the -children of Simeon, did offer: 7:37 His offering was one silver -charger, the weight whereof was an hundred and thirty shekels, one -silver bowl of seventy shekels, after the shekel of the sanctuary; -both of them full of fine flour mingled with oil for a meat offering: -7:38 One golden spoon of ten shekels, full of incense: 7:39 One young -bullock, one ram, one lamb of the first year, for a burnt offering: -7:40 One kid of the goats for a sin offering: 7:41 And for a sacrifice -of peace offerings, two oxen, five rams, five he goats, five lambs of -the first year: this was the offering of Shelumiel the son of -Zurishaddai. - -7:42 On the sixth day Eliasaph the son of Deuel, prince of the -children of Gad, offered: 7:43 His offering was one silver charger of -the weight of an hundred and thirty shekels, a silver bowl of seventy -shekels, after the shekel of the sanctuary; both of them full of fine -flour mingled with oil for a meat offering: 7:44 One golden spoon of -ten shekels, full of incense: 7:45 One young bullock, one ram, one -lamb of the first year, for a burnt offering: 7:46 One kid of the -goats for a sin offering: 7:47 And for a sacrifice of peace offerings, -two oxen, five rams, five he goats, five lambs of the first year: this -was the offering of Eliasaph the son of Deuel. - -7:48 On the seventh day Elishama the son of Ammihud, prince of the -children of Ephraim, offered: 7:49 His offering was one silver -charger, the weight whereof was an hundred and thirty shekels, one -silver bowl of seventy shekels, after the shekel of the sanctuary; -both of them full of fine flour mingled with oil for a meat offering: -7:50 One golden spoon of ten shekels, full of incense: 7:51 One young -bullock, one ram, one lamb of the first year, for a burnt offering: -7:52 One kid of the goats for a sin offering: 7:53 And for a sacrifice -of peace offerings, two oxen, five rams, five he goats, five lambs of -the first year: this was the offering of Elishama the son of Ammihud. - -7:54 On the eighth day offered Gamaliel the son of Pedahzur, prince of -the children of Manasseh: 7:55 His offering was one silver charger of -the weight of an hundred and thirty shekels, one silver bowl of -seventy shekels, after the shekel of the sanctuary; both of them full -of fine flour mingled with oil for a meat offering: 7:56 One golden -spoon of ten shekels, full of incense: 7:57 One young bullock, one -ram, one lamb of the first year, for a burnt offering: 7:58 One kid of -the goats for a sin offering: 7:59 And for a sacrifice of peace -offerings, two oxen, five rams, five he goats, five lambs of the first -year: this was the offering of Gamaliel the son of Pedahzur. - -7:60 On the ninth day Abidan the son of Gideoni, prince of the -children of Benjamin, offered: 7:61 His offering was one silver -charger, the weight whereof was an hundred and thirty shekels, one -silver bowl of seventy shekels, after the shekel of the sanctuary; -both of them full of fine flour mingled with oil for a meat offering: -7:62 One golden spoon of ten shekels, full of incense: 7:63 One young -bullock, one ram, one lamb of the first year, for a burnt offering: -7:64 One kid of the goats for a sin offering: 7:65 And for a sacrifice -of peace offerings, two oxen, five rams, five he goats, five lambs of -the first year: this was the offering of Abidan the son of Gideoni. - -7:66 On the tenth day Ahiezer the son of Ammishaddai, prince of the -children of Dan, offered: 7:67 His offering was one silver charger, -the weight whereof was an hundred and thirty shekels, one silver bowl -of seventy shekels, after the shekel of the sanctuary; both of them -full of fine flour mingled with oil for a meat offering: 7:68 One -golden spoon of ten shekels, full of incense: 7:69 One young bullock, -one ram, one lamb of the first year, for a burnt offering: 7:70 One -kid of the goats for a sin offering: 7:71 And for a sacrifice of peace -offerings, two oxen, five rams, five he goats, five lambs of the first -year: this was the offering of Ahiezer the son of Ammishaddai. - -7:72 On the eleventh day Pagiel the son of Ocran, prince of the -children of Asher, offered: 7:73 His offering was one silver charger, -the weight whereof was an hundred and thirty shekels, one silver bowl -of seventy shekels, after the shekel of the sanctuary; both of them -full of fine flour mingled with oil for a meat offering: 7:74 One -golden spoon of ten shekels, full of incense: 7:75 One young bullock, -one ram, one lamb of the first year, for a burnt offering: 7:76 One -kid of the goats for a sin offering: 7:77 And for a sacrifice of peace -offerings, two oxen, five rams, five he goats, five lambs of the first -year: this was the offering of Pagiel the son of Ocran. - -7:78 On the twelfth day Ahira the son of Enan, prince of the children -of Naphtali, offered: 7:79 His offering was one silver charger, the -weight whereof was an hundred and thirty shekels, one silver bowl of -seventy shekels, after the shekel of the sanctuary; both of them full -of fine flour mingled with oil for a meat offering: 7:80 One golden -spoon of ten shekels, full of incense: 7:81 One young bullock, one -ram, one lamb of the first year, for a burnt offering: 7:82 One kid of -the goats for a sin offering: 7:83 And for a sacrifice of peace -offerings, two oxen, five rams, five he goats, five lambs of the first -year: this was the offering of Ahira the son of Enan. - -7:84 This was the dedication of the altar, in the day when it was -anointed, by the princes of Israel: twelve chargers of silver, twelve -silver bowls, twelve spoons of gold: 7:85 Each charger of silver -weighing an hundred and thirty shekels, each bowl seventy: all the -silver vessels weighed two thousand and four hundred shekels, after -the shekel of the sanctuary: 7:86 The golden spoons were twelve, full -of incense, weighing ten shekels apiece, after the shekel of the -sanctuary: all the gold of the spoons was an hundred and twenty -shekels. - -7:87 All the oxen for the burnt offering were twelve bullocks, the -rams twelve, the lambs of the first year twelve, with their meat -offering: and the kids of the goats for sin offering twelve. - -7:88 And all the oxen for the sacrifice of the peace offerings were -twenty and four bullocks, the rams sixty, the he goats sixty, the -lambs of the first year sixty. This was the dedication of the altar, -after that it was anointed. - -7:89 And when Moses was gone into the tabernacle of the congregation -to speak with him, then he heard the voice of one speaking unto him -from off the mercy seat that was upon the ark of testimony, from -between the two cherubims: and he spake unto him. - -8:1 And the LORD spake unto Moses, saying, 8:2 Speak unto Aaron and -say unto him, When thou lightest the lamps, the seven lamps shall give -light over against the candlestick. - -8:3 And Aaron did so; he lighted the lamps thereof over against the -candlestick, as the LORD commanded Moses. - -8:4 And this work of the candlestick was of beaten gold, unto the -shaft thereof, unto the flowers thereof, was beaten work: according -unto the pattern which the LORD had shewed Moses, so he made the -candlestick. - -8:5 And the LORD spake unto Moses, saying, 8:6 Take the Levites from -among the children of Israel, and cleanse them. - -8:7 And thus shalt thou do unto them, to cleanse them: Sprinkle water -of purifying upon them, and let them shave all their flesh, and let -them wash their clothes, and so make themselves clean. - -8:8 Then let them take a young bullock with his meat offering, even -fine flour mingled with oil, and another young bullock shalt thou take -for a sin offering. - -8:9 And thou shalt bring the Levites before the tabernacle of the -congregation: and thou shalt gather the whole assembly of the children -of Israel together: 8:10 And thou shalt bring the Levites before the -LORD: and the children of Israel shall put their hands upon the -Levites: 8:11 And Aaron shall offer the Levites before the LORD for an -offering of the children of Israel, that they may execute the service -of the LORD. - -8:12 And the Levites shall lay their hands upon the heads of the -bullocks: and thou shalt offer the one for a sin offering, and the -other for a burnt offering, unto the LORD, to make an atonement for -the Levites. - -8:13 And thou shalt set the Levites before Aaron, and before his sons, -and offer them for an offering unto the LORD. - -8:14 Thus shalt thou separate the Levites from among the children of -Israel: and the Levites shall be mine. - -8:15 And after that shall the Levites go in to do the service of the -tabernacle of the congregation: and thou shalt cleanse them, and offer -them for an offering. - -8:16 For they are wholly given unto me from among the children of -Israel; instead of such as open every womb, even instead of the -firstborn of all the children of Israel, have I taken them unto me. - -8:17 For all the firstborn of the children of Israel are mine, both -man and beast: on the day that I smote every firstborn in the land of -Egypt I sanctified them for myself. - -8:18 And I have taken the Levites for all the firstborn of the -children of Israel. - -8:19 And I have given the Levites as a gift to Aaron and to his sons -from among the children of Israel, to do the service of the children -of Israel in the tabernacle of the congregation, and to make an -atonement for the children of Israel: that there be no plague among -the children of Israel, when the children of Israel come nigh unto the -sanctuary. - -8:20 And Moses, and Aaron, and all the congregation of the children of -Israel, did to the Levites according unto all that the LORD commanded -Moses concerning the Levites, so did the children of Israel unto them. - -8:21 And the Levites were purified, and they washed their clothes; and -Aaron offered them as an offering before the LORD; and Aaron made an -atonement for them to cleanse them. - -8:22 And after that went the Levites in to do their service in the -tabernacle of the congregation before Aaron, and before his sons: as -the LORD had commanded Moses concerning the Levites, so did they unto -them. - -8:23 And the LORD spake unto Moses, saying, 8:24 This is it that -belongeth unto the Levites: from twenty and five years old and upward -they shall go in to wait upon the service of the tabernacle of the -congregation: 8:25 And from the age of fifty years they shall cease -waiting upon the service thereof, and shall serve no more: 8:26 But -shall minister with their brethren in the tabernacle of the -congregation, to keep the charge, and shall do no service. Thus shalt -thou do unto the Levites touching their charge. - -9:1 And the LORD spake unto Moses in the wilderness of Sinai, in the -first month of the second year after they were come out of the land of -Egypt, saying, 9:2 Let the children of Israel also keep the passover -at his appointed season. - -9:3 In the fourteenth day of this month, at even, ye shall keep it in -his appointed season: according to all the rites of it, and according -to all the ceremonies thereof, shall ye keep it. - -9:4 And Moses spake unto the children of Israel, that they should keep -the passover. - -9:5 And they kept the passover on the fourteenth day of the first -month at even in the wilderness of Sinai: according to all that the -LORD commanded Moses, so did the children of Israel. - -9:6 And there were certain men, who were defiled by the dead body of a -man, that they could not keep the passover on that day: and they came -before Moses and before Aaron on that day: 9:7 And those men said unto -him, We are defiled by the dead body of a man: wherefore are we kept -back, that we may not offer an offering of the LORD in his appointed -season among the children of Israel? 9:8 And Moses said unto them, -Stand still, and I will hear what the LORD will command concerning -you. - -9:9 And the LORD spake unto Moses, saying, 9:10 Speak unto the -children of Israel, saying, If any man of you or of your posterity -shall be unclean by reason of a dead body, or be in a journey afar -off, yet he shall keep the passover unto the LORD. - -9:11 The fourteenth day of the second month at even they shall keep -it, and eat it with unleavened bread and bitter herbs. - -9:12 They shall leave none of it unto the morning, nor break any bone -of it: according to all the ordinances of the passover they shall keep -it. - -9:13 But the man that is clean, and is not in a journey, and -forbeareth to keep the passover, even the same soul shall be cut off -from among his people: because he brought not the offering of the LORD -in his appointed season, that man shall bear his sin. - -9:14 And if a stranger shall sojourn among you, and will keep the -passover unto the LORD; according to the ordinance of the passover, -and according to the manner thereof, so shall he do: ye shall have one -ordinance, both for the stranger, and for him that was born in the -land. - -9:15 And on the day that the tabernacle was reared up the cloud -covered the tabernacle, namely, the tent of the testimony: and at even -there was upon the tabernacle as it were the appearance of fire, until -the morning. - -9:16 So it was alway: the cloud covered it by day, and the appearance -of fire by night. - -9:17 And when the cloud was taken up from the tabernacle, then after -that the children of Israel journeyed: and in the place where the -cloud abode, there the children of Israel pitched their tents. - -9:18 At the commandment of the LORD the children of Israel journeyed, -and at the commandment of the LORD they pitched: as long as the cloud -abode upon the tabernacle they rested in their tents. - -9:19 And when the cloud tarried long upon the tabernacle many days, -then the children of Israel kept the charge of the LORD, and journeyed -not. - -9:20 And so it was, when the cloud was a few days upon the tabernacle; -according to the commandment of the LORD they abode in their tents, -and according to the commandment of the LORD they journeyed. - -9:21 And so it was, when the cloud abode from even unto the morning, -and that the cloud was taken up in the morning, then they journeyed: -whether it was by day or by night that the cloud was taken up, they -journeyed. - -9:22 Or whether it were two days, or a month, or a year, that the -cloud tarried upon the tabernacle, remaining thereon, the children of -Israel abode in their tents, and journeyed not: but when it was taken -up, they journeyed. - -9:23 At the commandment of the LORD they rested in the tents, and at -the commandment of the LORD they journeyed: they kept the charge of -the LORD, at the commandment of the LORD by the hand of Moses. - -10:1 And the LORD spake unto Moses, saying, 10:2 Make thee two -trumpets of silver; of a whole piece shalt thou make them: that thou -mayest use them for the calling of the assembly, and for the -journeying of the camps. - -10:3 And when they shall blow with them, all the assembly shall -assemble themselves to thee at the door of the tabernacle of the -congregation. - -10:4 And if they blow but with one trumpet, then the princes, which -are heads of the thousands of Israel, shall gather themselves unto -thee. - -10:5 When ye blow an alarm, then the camps that lie on the east parts -shall go forward. - -10:6 When ye blow an alarm the second time, then the camps that lie on -the south side shall take their journey: they shall blow an alarm for -their journeys. - -10:7 But when the congregation is to be gathered together, ye shall -blow, but ye shall not sound an alarm. - -10:8 And the sons of Aaron, the priests, shall blow with the trumpets; -and they shall be to you for an ordinance for ever throughout your -generations. - -10:9 And if ye go to war in your land against the enemy that -oppresseth you, then ye shall blow an alarm with the trumpets; and ye -shall be remembered before the LORD your God, and ye shall be saved -from your enemies. - -10:10 Also in the day of your gladness, and in your solemn days, and -in the beginnings of your months, ye shall blow with the trumpets over -your burnt offerings, and over the sacrifices of your peace offerings; -that they may be to you for a memorial before your God: I am the LORD -your God. - -10:11 And it came to pass on the twentieth day of the second month, in -the second year, that the cloud was taken up from off the tabernacle -of the testimony. - -10:12 And the children of Israel took their journeys out of the -wilderness of Sinai; and the cloud rested in the wilderness of Paran. - -10:13 And they first took their journey according to the commandment -of the LORD by the hand of Moses. - -10:14 In the first place went the standard of the camp of the children -of Judah according to their armies: and over his host was Nahshon the -son of Amminadab. - -10:15 And over the host of the tribe of the children of Issachar was -Nethaneel the son of Zuar. - -10:16 And over the host of the tribe of the children of Zebulun was -Eliab the son of Helon. - -10:17 And the tabernacle was taken down; and the sons of Gershon and -the sons of Merari set forward, bearing the tabernacle. - -10:18 And the standard of the camp of Reuben set forward according to -their armies: and over his host was Elizur the son of Shedeur. - -10:19 And over the host of the tribe of the children of Simeon was -Shelumiel the son of Zurishaddai. - -10:20 And over the host of the tribe of the children of Gad was -Eliasaph the son of Deuel. - -10:21 And the Kohathites set forward, bearing the sanctuary: and the -other did set up the tabernacle against they came. - -10:22 And the standard of the camp of the children of Ephraim set -forward according to their armies: and over his host was Elishama the -son of Ammihud. - -10:23 And over the host of the tribe of the children of Manasseh was -Gamaliel the son of Pedahzur. - -10:24 And over the host of the tribe of the children of Benjamin was -Abidan the son of Gideoni. - -10:25 And the standard of the camp of the children of Dan set forward, -which was the rereward of all the camps throughout their hosts: and -over his host was Ahiezer the son of Ammishaddai. - -10:26 And over the host of the tribe of the children of Asher was -Pagiel the son of Ocran. - -10:27 And over the host of the tribe of the children of Naphtali was -Ahira the son of Enan. - -10:28 Thus were the journeyings of the children of Israel according to -their armies, when they set forward. - -10:29 And Moses said unto Hobab, the son of Raguel the Midianite, -Moses' father in law, We are journeying unto the place of which the -LORD said, I will give it you: come thou with us, and we will do thee -good: for the LORD hath spoken good concerning Israel. - -10:30 And he said unto him, I will not go; but I will depart to mine -own land, and to my kindred. - -10:31 And he said, Leave us not, I pray thee; forasmuch as thou -knowest how we are to encamp in the wilderness, and thou mayest be to -us instead of eyes. - -10:32 And it shall be, if thou go with us, yea, it shall be, that what -goodness the LORD shall do unto us, the same will we do unto thee. - -10:33 And they departed from the mount of the LORD three days' -journey: and the ark of the covenant of the LORD went before them in -the three days' journey, to search out a resting place for them. - -10:34 And the cloud of the LORD was upon them by day, when they went -out of the camp. - -10:35 And it came to pass, when the ark set forward, that Moses said, -Rise up, LORD, and let thine enemies be scattered; and let them that -hate thee flee before thee. - -10:36 And when it rested, he said, Return, O LORD, unto the many -thousands of Israel. - -11:1 And when the people complained, it displeased the LORD: and the -LORD heard it; and his anger was kindled; and the fire of the LORD -burnt among them, and consumed them that were in the uttermost parts -of the camp. - -11:2 And the people cried unto Moses; and when Moses prayed unto the -LORD, the fire was quenched. - -11:3 And he called the name of the place Taberah: because the fire of -the LORD burnt among them. - -11:4 And the mixt multitude that was among them fell a lusting: and -the children of Israel also wept again, and said, Who shall give us -flesh to eat? 11:5 We remember the fish, which we did eat in Egypt -freely; the cucumbers, and the melons, and the leeks, and the onions, -and the garlick: 11:6 But now our soul is dried away: there is nothing -at all, beside this manna, before our eyes. - -11:7 And the manna was as coriander seed, and the colour thereof as -the colour of bdellium. - -11:8 And the people went about, and gathered it, and ground it in -mills, or beat it in a mortar, and baked it in pans, and made cakes of -it: and the taste of it was as the taste of fresh oil. - -11:9 And when the dew fell upon the camp in the night, the manna fell -upon it. - -11:10 Then Moses heard the people weep throughout their families, -every man in the door of his tent: and the anger of the LORD was -kindled greatly; Moses also was displeased. - -11:11 And Moses said unto the LORD, Wherefore hast thou afflicted thy -servant? and wherefore have I not found favour in thy sight, that thou -layest the burden of all this people upon me? 11:12 Have I conceived -all this people? have I begotten them, that thou shouldest say unto -me, Carry them in thy bosom, as a nursing father beareth the sucking -child, unto the land which thou swarest unto their fathers? 11:13 -Whence should I have flesh to give unto all this people? for they weep -unto me, saying, Give us flesh, that we may eat. - -11:14 I am not able to bear all this people alone, because it is too -heavy for me. - -11:15 And if thou deal thus with me, kill me, I pray thee, out of -hand, if I have found favour in thy sight; and let me not see my -wretchedness. - -11:16 And the LORD said unto Moses, Gather unto me seventy men of the -elders of Israel, whom thou knowest to be the elders of the people, -and officers over them; and bring them unto the tabernacle of the -congregation, that they may stand there with thee. - -11:17 And I will come down and talk with thee there: and I will take -of the spirit which is upon thee, and will put it upon them; and they -shall bear the burden of the people with thee, that thou bear it not -thyself alone. - -11:18 And say thou unto the people, Sanctify yourselves against to -morrow, and ye shall eat flesh: for ye have wept in the ears of the -LORD, saying, Who shall give us flesh to eat? for it was well with us -in Egypt: therefore the LORD will give you flesh, and ye shall eat. - -11:19 Ye shall not eat one day, nor two days, nor five days, neither -ten days, nor twenty days; 11:20 But even a whole month, until it come -out at your nostrils, and it be loathsome unto you: because that ye -have despised the LORD which is among you, and have wept before him, -saying, Why came we forth out of Egypt? 11:21 And Moses said, The -people, among whom I am, are six hundred thousand footmen; and thou -hast said, I will give them flesh, that they may eat a whole month. - -11:22 Shall the flocks and the herds be slain for them, to suffice -them? or shall all the fish of the sea be gathered together for them, -to suffice them? 11:23 And the LORD said unto Moses, Is the LORD's -hand waxed short? thou shalt see now whether my word shall come to -pass unto thee or not. - -11:24 And Moses went out, and told the people the words of the LORD, -and gathered the seventy men of the elders of the people, and set them -round about the tabernacle. - -11:25 And the LORD came down in a cloud, and spake unto him, and took -of the spirit that was upon him, and gave it unto the seventy elders: -and it came to pass, that, when the spirit rested upon them, they -prophesied, and did not cease. - -11:26 But there remained two of the men in the camp, the name of the -one was Eldad, and the name of the other Medad: and the spirit rested -upon them; and they were of them that were written, but went not out -unto the tabernacle: and they prophesied in the camp. - -11:27 And there ran a young man, and told Moses, and said, Eldad and -Medad do prophesy in the camp. - -11:28 And Joshua the son of Nun, the servant of Moses, one of his -young men, answered and said, My lord Moses, forbid them. - -11:29 And Moses said unto him, Enviest thou for my sake? would God -that all the LORD's people were prophets, and that the LORD would put -his spirit upon them! 11:30 And Moses gat him into the camp, he and -the elders of Israel. - -11:31 And there went forth a wind from the LORD, and brought quails -from the sea, and let them fall by the camp, as it were a day's -journey on this side, and as it were a day's journey on the other -side, round about the camp, and as it were two cubits high upon the -face of the earth. - -11:32 And the people stood up all that day, and all that night, and -all the next day, and they gathered the quails: he that gathered least -gathered ten homers: and they spread them all abroad for themselves -round about the camp. - -11:33 And while the flesh was yet between their teeth, ere it was -chewed, the wrath of the LORD was kindled against the people, and the -LORD smote the people with a very great plague. - -11:34 And he called the name of that place Kibrothhattaavah: because -there they buried the people that lusted. - -11:35 And the people journeyed from Kibrothhattaavah unto Hazeroth; -and abode at Hazeroth. - -12:1 And Miriam and Aaron spake against Moses because of the Ethiopian -woman whom he had married: for he had married an Ethiopian woman. - -12:2 And they said, Hath the LORD indeed spoken only by Moses? hath he -not spoken also by us? And the LORD heard it. - -12:3 (Now the man Moses was very meek, above all the men which were -upon the face of the earth.) 12:4 And the LORD spake suddenly unto -Moses, and unto Aaron, and unto Miriam, Come out ye three unto the -tabernacle of the congregation. And they three came out. - -12:5 And the LORD came down in the pillar of the cloud, and stood in -the door of the tabernacle, and called Aaron and Miriam: and they both -came forth. - -12:6 And he said, Hear now my words: If there be a prophet among you, -I the LORD will make myself known unto him in a vision, and will speak -unto him in a dream. - -12:7 My servant Moses is not so, who is faithful in all mine house. - -12:8 With him will I speak mouth to mouth, even apparently, and not in -dark speeches; and the similitude of the LORD shall he behold: -wherefore then were ye not afraid to speak against my servant Moses? -12:9 And the anger of the LORD was kindled against them; and he -departed. - -12:10 And the cloud departed from off the tabernacle; and, behold, -Miriam became leprous, white as snow: and Aaron looked upon Miriam, -and, behold, she was leprous. - -12:11 And Aaron said unto Moses, Alas, my lord, I beseech thee, lay -not the sin upon us, wherein we have done foolishly, and wherein we -have sinned. - -12:12 Let her not be as one dead, of whom the flesh is half consumed -when he cometh out of his mother's womb. - -12:13 And Moses cried unto the LORD, saying, Heal her now, O God, I -beseech thee. - -12:14 And the LORD said unto Moses, If her father had but spit in her -face, should she not be ashamed seven days? let her be shut out from -the camp seven days, and after that let her be received in again. - -12:15 And Miriam was shut out from the camp seven days: and the people -journeyed not till Miriam was brought in again. - -12:16 And afterward the people removed from Hazeroth, and pitched in -the wilderness of Paran. - -13:1 And the LORD spake unto Moses, saying, 13:2 Send thou men, that -they may search the land of Canaan, which I give unto the children of -Israel: of every tribe of their fathers shall ye send a man, every one -a ruler among them. - -13:3 And Moses by the commandment of the LORD sent them from the -wilderness of Paran: all those men were heads of the children of -Israel. - -13:4 And these were their names: of the tribe of Reuben, Shammua the -son of Zaccur. - -13:5 Of the tribe of Simeon, Shaphat the son of Hori. - -13:6 Of the tribe of Judah, Caleb the son of Jephunneh. - -13:7 Of the tribe of Issachar, Igal the son of Joseph. - -13:8 Of the tribe of Ephraim, Oshea the son of Nun. - -13:9 Of the tribe of Benjamin, Palti the son of Raphu. - -13:10 Of the tribe of Zebulun, Gaddiel the son of Sodi. - -13:11 Of the tribe of Joseph, namely, of the tribe of Manasseh, Gaddi -the son of Susi. - -13:12 Of the tribe of Dan, Ammiel the son of Gemalli. - -13:13 Of the tribe of Asher, Sethur the son of Michael. - -13:14 Of the tribe of Naphtali, Nahbi the son of Vophsi. - -13:15 Of the tribe of Gad, Geuel the son of Machi. - -13:16 These are the names of the men which Moses sent to spy out the -land. - -And Moses called Oshea the son of Nun Jehoshua. - -13:17 And Moses sent them to spy out the land of Canaan, and said unto -them, Get you up this way southward, and go up into the mountain: -13:18 And see the land, what it is, and the people that dwelleth -therein, whether they be strong or weak, few or many; 13:19 And what -the land is that they dwell in, whether it be good or bad; and what -cities they be that they dwell in, whether in tents, or in strong -holds; 13:20 And what the land is, whether it be fat or lean, whether -there be wood therein, or not. And be ye of good courage, and bring of -the fruit of the land. Now the time was the time of the firstripe -grapes. - -13:21 So they went up, and searched the land from the wilderness of -Zin unto Rehob, as men come to Hamath. - -13:22 And they ascended by the south, and came unto Hebron; where -Ahiman, Sheshai, and Talmai, the children of Anak, were. (Now Hebron -was built seven years before Zoan in Egypt.) 13:23 And they came unto -the brook of Eshcol, and cut down from thence a branch with one -cluster of grapes, and they bare it between two upon a staff; and they -brought of the pomegranates, and of the figs. - -13:24 The place was called the brook Eshcol, because of the cluster of -grapes which the children of Israel cut down from thence. - -13:25 And they returned from searching of the land after forty days. - -13:26 And they went and came to Moses, and to Aaron, and to all the -congregation of the children of Israel, unto the wilderness of Paran, -to Kadesh; and brought back word unto them, and unto all the -congregation, and shewed them the fruit of the land. - -13:27 And they told him, and said, We came unto the land whither thou -sentest us, and surely it floweth with milk and honey; and this is the -fruit of it. - -13:28 Nevertheless the people be strong that dwell in the land, and -the cities are walled, and very great: and moreover we saw the -children of Anak there. - -13:29 The Amalekites dwell in the land of the south: and the Hittites, -and the Jebusites, and the Amorites, dwell in the mountains: and the -Canaanites dwell by the sea, and by the coast of Jordan. - -13:30 And Caleb stilled the people before Moses, and said, Let us go -up at once, and possess it; for we are well able to overcome it. - -13:31 But the men that went up with him said, We be not able to go up -against the people; for they are stronger than we. - -13:32 And they brought up an evil report of the land which they had -searched unto the children of Israel, saying, The land, through which -we have gone to search it, is a land that eateth up the inhabitants -thereof; and all the people that we saw in it are men of a great -stature. - -13:33 And there we saw the giants, the sons of Anak, which come of the -giants: and we were in our own sight as grasshoppers, and so we were -in their sight. - -14:1 And all the congregation lifted up their voice, and cried; and -the people wept that night. - -14:2 And all the children of Israel murmured against Moses and against -Aaron: and the whole congregation said unto them, Would God that we -had died in the land of Egypt! or would God we had died in this -wilderness! 14:3 And wherefore hath the LORD brought us unto this -land, to fall by the sword, that our wives and our children should be -a prey? were it not better for us to return into Egypt? 14:4 And they -said one to another, Let us make a captain, and let us return into -Egypt. - -14:5 Then Moses and Aaron fell on their faces before all the assembly -of the congregation of the children of Israel. - -14:6 And Joshua the son of Nun, and Caleb the son of Jephunneh, which -were of them that searched the land, rent their clothes: 14:7 And they -spake unto all the company of the children of Israel, saying, The -land, which we passed through to search it, is an exceeding good land. - -14:8 If the LORD delight in us, then he will bring us into this land, -and give it us; a land which floweth with milk and honey. - -14:9 Only rebel not ye against the LORD, neither fear ye the people of -the land; for they are bread for us: their defence is departed from -them, and the LORD is with us: fear them not. - -14:10 But all the congregation bade stone them with stones. And the -glory of the LORD appeared in the tabernacle of the congregation -before all the children of Israel. - -14:11 And the LORD said unto Moses, How long will this people provoke -me? and how long will it be ere they believe me, for all the signs -which I have shewed among them? 14:12 I will smite them with the -pestilence, and disinherit them, and will make of thee a greater -nation and mightier than they. - -14:13 And Moses said unto the LORD, Then the Egyptians shall hear it, -(for thou broughtest up this people in thy might from among them;) -14:14 And they will tell it to the inhabitants of this land: for they -have heard that thou LORD art among this people, that thou LORD art -seen face to face, and that thy cloud standeth over them, and that -thou goest before them, by day time in a pillar of a cloud, and in a -pillar of fire by night. - -14:15 Now if thou shalt kill all this people as one man, then the -nations which have heard the fame of thee will speak, saying, 14:16 -Because the LORD was not able to bring this people into the land which -he sware unto them, therefore he hath slain them in the wilderness. - -14:17 And now, I beseech thee, let the power of my LORD be great, -according as thou hast spoken, saying, 14:18 The LORD is -longsuffering, and of great mercy, forgiving iniquity and -transgression, and by no means clearing the guilty, visiting the -iniquity of the fathers upon the children unto the third and fourth -generation. - -14:19 Pardon, I beseech thee, the iniquity of this people according -unto the greatness of thy mercy, and as thou hast forgiven this -people, from Egypt even until now. - -14:20 And the LORD said, I have pardoned according to thy word: 14:21 -But as truly as I live, all the earth shall be filled with the glory -of the LORD. - -14:22 Because all those men which have seen my glory, and my miracles, -which I did in Egypt and in the wilderness, and have tempted me now -these ten times, and have not hearkened to my voice; 14:23 Surely they -shall not see the land which I sware unto their fathers, neither shall -any of them that provoked me see it: 14:24 But my servant Caleb, -because he had another spirit with him, and hath followed me fully, -him will I bring into the land whereinto he went; and his seed shall -possess it. - -14:25 (Now the Amalekites and the Canaanites dwelt in the valley.) -Tomorrow turn you, and get you into the wilderness by the way of the -Red sea. - -14:26 And the LORD spake unto Moses and unto Aaron, saying, 14:27 How -long shall I bear with this evil congregation, which murmur against -me? I have heard the murmurings of the children of Israel, which they -murmur against me. - -14:28 Say unto them, As truly as I live, saith the LORD, as ye have -spoken in mine ears, so will I do to you: 14:29 Your carcases shall -fall in this wilderness; and all that were numbered of you, according -to your whole number, from twenty years old and upward which have -murmured against me. - -14:30 Doubtless ye shall not come into the land, concerning which I -sware to make you dwell therein, save Caleb the son of Jephunneh, and -Joshua the son of Nun. - -14:31 But your little ones, which ye said should be a prey, them will -I bring in, and they shall know the land which ye have despised. - -14:32 But as for you, your carcases, they shall fall in this -wilderness. - -14:33 And your children shall wander in the wilderness forty years, -and bear your whoredoms, until your carcases be wasted in the -wilderness. - -14:34 After the number of the days in which ye searched the land, even -forty days, each day for a year, shall ye bear your iniquities, even -forty years, and ye shall know my breach of promise. - -14:35 I the LORD have said, I will surely do it unto all this evil -congregation, that are gathered together against me: in this -wilderness they shall be consumed, and there they shall die. - -14:36 And the men, which Moses sent to search the land, who returned, -and made all the congregation to murmur against him, by bringing up a -slander upon the land, 14:37 Even those men that did bring up the evil -report upon the land, died by the plague before the LORD. - -14:38 But Joshua the son of Nun, and Caleb the son of Jephunneh, which -were of the men that went to search the land, lived still. - -14:39 And Moses told these sayings unto all the children of Israel: -and the people mourned greatly. - -14:40 And they rose up early in the morning, and gat them up into the -top of the mountain, saying, Lo, we be here, and will go up unto the -place which the LORD hath promised: for we have sinned. - -14:41 And Moses said, Wherefore now do ye transgress the commandment -of the LORD? but it shall not prosper. - -14:42 Go not up, for the LORD is not among you; that ye be not smitten -before your enemies. - -14:43 For the Amalekites and the Canaanites are there before you, and -ye shall fall by the sword: because ye are turned away from the LORD, -therefore the LORD will not be with you. - -14:44 But they presumed to go up unto the hill top: nevertheless the -ark of the covenant of the LORD, and Moses, departed not out of the -camp. - -14:45 Then the Amalekites came down, and the Canaanites which dwelt in -that hill, and smote them, and discomfited them, even unto Hormah. - -15:1 And the LORD spake unto Moses, saying, 15:2 Speak unto the -children of Israel, and say unto them, When ye be come into the land -of your habitations, which I give unto you, 15:3 And will make an -offering by fire unto the LORD, a burnt offering, or a sacrifice in -performing a vow, or in a freewill offering, or in your solemn feasts, -to make a sweet savour unto the LORD, of the herd or of the flock: -15:4 Then shall he that offereth his offering unto the LORD bring a -meat offering of a tenth deal of flour mingled with the fourth part of -an hin of oil. - -15:5 And the fourth part of an hin of wine for a drink offering shalt -thou prepare with the burnt offering or sacrifice, for one lamb. - -15:6 Or for a ram, thou shalt prepare for a meat offering two tenth -deals of flour mingled with the third part of an hin of oil. - -15:7 And for a drink offering thou shalt offer the third part of an -hin of wine, for a sweet savour unto the LORD. - -15:8 And when thou preparest a bullock for a burnt offering, or for a -sacrifice in performing a vow, or peace offerings unto the LORD: 15:9 -Then shall he bring with a bullock a meat offering of three tenth -deals of flour mingled with half an hin of oil. - -15:10 And thou shalt bring for a drink offering half an hin of wine, -for an offering made by fire, of a sweet savour unto the LORD. - -15:11 Thus shall it be done for one bullock, or for one ram, or for a -lamb, or a kid. - -15:12 According to the number that ye shall prepare, so shall ye do to -every one according to their number. - -15:13 All that are born of the country shall do these things after -this manner, in offering an offering made by fire, of a sweet savour -unto the LORD. - -15:14 And if a stranger sojourn with you, or whosoever be among you in -your generations, and will offer an offering made by fire, of a sweet -savour unto the LORD; as ye do, so he shall do. - -15:15 One ordinance shall be both for you of the congregation, and -also for the stranger that sojourneth with you, an ordinance for ever -in your generations: as ye are, so shall the stranger be before the -LORD. - -15:16 One law and one manner shall be for you, and for the stranger -that sojourneth with you. - -15:17 And the LORD spake unto Moses, saying, 15:18 Speak unto the -children of Israel, and say unto them, When ye come into the land -whither I bring you, 15:19 Then it shall be, that, when ye eat of the -bread of the land, ye shall offer up an heave offering unto the LORD. - -15:20 Ye shall offer up a cake of the first of your dough for an heave -offering: as ye do the heave offering of the threshingfloor, so shall -ye heave it. - -15:21 Of the first of your dough ye shall give unto the LORD an heave -offering in your generations. - -15:22 And if ye have erred, and not observed all these commandments, -which the LORD hath spoken unto Moses, 15:23 Even all that the LORD -hath commanded you by the hand of Moses, from the day that the LORD -commanded Moses, and henceforward among your generations; 15:24 Then -it shall be, if ought be committed by ignorance without the knowledge -of the congregation, that all the congregation shall offer one young -bullock for a burnt offering, for a sweet savour unto the LORD, with -his meat offering, and his drink offering, according to the manner, -and one kid of the goats for a sin offering. - -15:25 And the priest shall make an atonement for all the congregation -of the children of Israel, and it shall be forgiven them; for it is -ignorance: and they shall bring their offering, a sacrifice made by -fire unto the LORD, and their sin offering before the LORD, for their -ignorance: 15:26 And it shall be forgiven all the congregation of the -children of Israel, and the stranger that sojourneth among them; -seeing all the people were in ignorance. - -15:27 And if any soul sin through ignorance, then he shall bring a she -goat of the first year for a sin offering. - -15:28 And the priest shall make an atonement for the soul that sinneth -ignorantly, when he sinneth by ignorance before the LORD, to make an -atonement for him; and it shall be forgiven him. - -15:29 Ye shall have one law for him that sinneth through ignorance, -both for him that is born among the children of Israel, and for the -stranger that sojourneth among them. - -15:30 But the soul that doeth ought presumptuously, whether he be born -in the land, or a stranger, the same reproacheth the LORD; and that -soul shall be cut off from among his people. - -15:31 Because he hath despised the word of the LORD, and hath broken -his commandment, that soul shall utterly be cut off; his iniquity -shall be upon him. - -15:32 And while the children of Israel were in the wilderness, they -found a man that gathered sticks upon the sabbath day. - -15:33 And they that found him gathering sticks brought him unto Moses -and Aaron, and unto all the congregation. - -15:34 And they put him in ward, because it was not declared what -should be done to him. - -15:35 And the LORD said unto Moses, The man shall be surely put to -death: all the congregation shall stone him with stones without the -camp. - -15:36 And all the congregation brought him without the camp, and -stoned him with stones, and he died; as the LORD commanded Moses. - -15:37 And the LORD spake unto Moses, saying, 15:38 Speak unto the -children of Israel, and bid them that they make them fringes in the -borders of their garments throughout their generations, and that they -put upon the fringe of the borders a ribband of blue: 15:39 And it -shall be unto you for a fringe, that ye may look upon it, and remember -all the commandments of the LORD, and do them; and that ye seek not -after your own heart and your own eyes, after which ye use to go a -whoring: 15:40 That ye may remember, and do all my commandments, and -be holy unto your God. - -15:41 I am the LORD your God, which brought you out of the land of -Egypt, to be your God: I am the LORD your God. - -16:1 Now Korah, the son of Izhar, the son of Kohath, the son of Levi, -and Dathan and Abiram, the sons of Eliab, and On, the son of Peleth, -sons of Reuben, took men: 16:2 And they rose up before Moses, with -certain of the children of Israel, two hundred and fifty princes of -the assembly, famous in the congregation, men of renown: 16:3 And they -gathered themselves together against Moses and against Aaron, and said -unto them, Ye take too much upon you, seeing all the congregation are -holy, every one of them, and the LORD is among them: wherefore then -lift ye up yourselves above the congregation of the LORD? 16:4 And -when Moses heard it, he fell upon his face: 16:5 And he spake unto -Korah and unto all his company, saying, Even to morrow the LORD will -shew who are his, and who is holy; and will cause him to come near -unto him: even him whom he hath chosen will he cause to come near unto -him. - -16:6 This do; Take you censers, Korah, and all his company; 16:7 And -put fire therein, and put incense in them before the LORD to morrow: -and it shall be that the man whom the LORD doth choose, he shall be -holy: ye take too much upon you, ye sons of Levi. - -16:8 And Moses said unto Korah, Hear, I pray you, ye sons of Levi: -16:9 Seemeth it but a small thing unto you, that the God of Israel -hath separated you from the congregation of Israel, to bring you near -to himself to do the service of the tabernacle of the LORD, and to -stand before the congregation to minister unto them? 16:10 And he -hath brought thee near to him, and all thy brethren the sons of Levi -with thee: and seek ye the priesthood also? 16:11 For which cause -both thou and all thy company are gathered together against the LORD: -and what is Aaron, that ye murmur against him? 16:12 And Moses sent -to call Dathan and Abiram, the sons of Eliab: which said, We will not -come up: 16:13 Is it a small thing that thou hast brought us up out of -a land that floweth with milk and honey, to kill us in the wilderness, -except thou make thyself altogether a prince over us? 16:14 Moreover -thou hast not brought us into a land that floweth with milk and honey, -or given us inheritance of fields and vineyards: wilt thou put out the -eyes of these men? we will not come up. - -16:15 And Moses was very wroth, and said unto the LORD, Respect not -thou their offering: I have not taken one ass from them, neither have -I hurt one of them. - -16:16 And Moses said unto Korah, Be thou and all thy company before -the LORD, thou, and they, and Aaron, to morrow: 16:17 And take every -man his censer, and put incense in them, and bring ye before the LORD -every man his censer, two hundred and fifty censers; thou also, and -Aaron, each of you his censer. - -16:18 And they took every man his censer, and put fire in them, and -laid incense thereon, and stood in the door of the tabernacle of the -congregation with Moses and Aaron. - -16:19 And Korah gathered all the congregation against them unto the -door of the tabernacle of the congregation: and the glory of the LORD -appeared unto all the congregation. - -16:20 And the LORD spake unto Moses and unto Aaron, saying, 16:21 -Separate yourselves from among this congregation, that I may consume -them in a moment. - -16:22 And they fell upon their faces, and said, O God, the God of the -spirits of all flesh, shall one man sin, and wilt thou be wroth with -all the congregation? 16:23 And the LORD spake unto Moses, saying, -16:24 Speak unto the congregation, saying, Get you up from about the -tabernacle of Korah, Dathan, and Abiram. - -16:25 And Moses rose up and went unto Dathan and Abiram; and the -elders of Israel followed him. - -16:26 And he spake unto the congregation, saying, Depart, I pray you, -from the tents of these wicked men, and touch nothing of their's, lest -ye be consumed in all their sins. - -16:27 So they gat up from the tabernacle of Korah, Dathan, and Abiram, -on every side: and Dathan and Abiram came out, and stood in the door -of their tents, and their wives, and their sons, and their little -children. - -16:28 And Moses said, Hereby ye shall know that the LORD hath sent me -to do all these works; for I have not done them of mine own mind. - -16:29 If these men die the common death of all men, or if they be -visited after the visitation of all men; then the LORD hath not sent -me. - -16:30 But if the LORD make a new thing, and the earth open her mouth, -and swallow them up, with all that appertain unto them, and they go -down quick into the pit; then ye shall understand that these men have -provoked the LORD. - -16:31 And it came to pass, as he had made an end of speaking all these -words, that the ground clave asunder that was under them: 16:32 And -the earth opened her mouth, and swallowed them up, and their houses, -and all the men that appertained unto Korah, and all their goods. - -16:33 They, and all that appertained to them, went down alive into the -pit, and the earth closed upon them: and they perished from among the -congregation. - -16:34 And all Israel that were round about them fled at the cry of -them: for they said, Lest the earth swallow us up also. - -16:35 And there came out a fire from the LORD, and consumed the two -hundred and fifty men that offered incense. - -16:36 And the LORD spake unto Moses, saying, 16:37 Speak unto Eleazar -the son of Aaron the priest, that he take up the censers out of the -burning, and scatter thou the fire yonder; for they are hallowed. - -16:38 The censers of these sinners against their own souls, let them -make them broad plates for a covering of the altar: for they offered -them before the LORD, therefore they are hallowed: and they shall be a -sign unto the children of Israel. - -16:39 And Eleazar the priest took the brasen censers, wherewith they -that were burnt had offered; and they were made broad plates for a -covering of the altar: 16:40 To be a memorial unto the children of -Israel, that no stranger, which is not of the seed of Aaron, come near -to offer incense before the LORD; that he be not as Korah, and as his -company: as the LORD said to him by the hand of Moses. - -16:41 But on the morrow all the congregation of the children of Israel -murmured against Moses and against Aaron, saying, Ye have killed the -people of the LORD. - -16:42 And it came to pass, when the congregation was gathered against -Moses and against Aaron, that they looked toward the tabernacle of the -congregation: and, behold, the cloud covered it, and the glory of the -LORD appeared. - -16:43 And Moses and Aaron came before the tabernacle of the -congregation. - -16:44 And the LORD spake unto Moses, saying, 16:45 Get you up from -among this congregation, that I may consume them as in a moment. And -they fell upon their faces. - -16:46 And Moses said unto Aaron, Take a censer, and put fire therein -from off the altar, and put on incense, and go quickly unto the -congregation, and make an atonement for them: for there is wrath gone -out from the LORD; the plague is begun. - -16:47 And Aaron took as Moses commanded, and ran into the midst of the -congregation; and, behold, the plague was begun among the people: and -he put on incense, and made an atonement for the people. - -16:48 And he stood between the dead and the living; and the plague was -stayed. - -16:49 Now they that died in the plague were fourteen thousand and -seven hundred, beside them that died about the matter of Korah. - -16:50 And Aaron returned unto Moses unto the door of the tabernacle of -the congregation: and the plague was stayed. - -17:1 And the LORD spake unto Moses, saying, 17:2 Speak unto the -children of Israel, and take of every one of them a rod according to -the house of their fathers, of all their princes according to the -house of their fathers twelve rods: write thou every man's name upon -his rod. - -17:3 And thou shalt write Aaron's name upon the rod of Levi: for one -rod shall be for the head of the house of their fathers. - -17:4 And thou shalt lay them up in the tabernacle of the congregation -before the testimony, where I will meet with you. - -17:5 And it shall come to pass, that the man's rod, whom I shall -choose, shall blossom: and I will make to cease from me the murmurings -of the children of Israel, whereby they murmur against you. - -17:6 And Moses spake unto the children of Israel, and every one of -their princes gave him a rod apiece, for each prince one, according to -their fathers' houses, even twelve rods: and the rod of Aaron was -among their rods. - -17:7 And Moses laid up the rods before the LORD in the tabernacle of -witness. - -17:8 And it came to pass, that on the morrow Moses went into the -tabernacle of witness; and, behold, the rod of Aaron for the house of -Levi was budded, and brought forth buds, and bloomed blossoms, and -yielded almonds. - -17:9 And Moses brought out all the rods from before the LORD unto all -the children of Israel: and they looked, and took every man his rod. - -17:10 And the LORD said unto Moses, Bring Aaron's rod again before the -testimony, to be kept for a token against the rebels; and thou shalt -quite take away their murmurings from me, that they die not. - -17:11 And Moses did so: as the LORD commanded him, so did he. - -17:12 And the children of Israel spake unto Moses, saying, Behold, we -die, we perish, we all perish. - -17:13 Whosoever cometh any thing near unto the tabernacle of the LORD -shall die: shall we be consumed with dying? 18:1 And the LORD said -unto Aaron, Thou and thy sons and thy father's house with thee shall -bear the iniquity of the sanctuary: and thou and thy sons with thee -shall bear the iniquity of your priesthood. - -18:2 And thy brethren also of the tribe of Levi, the tribe of thy -father, bring thou with thee, that they may be joined unto thee, and -minister unto thee: but thou and thy sons with thee shall minister -before the tabernacle of witness. - -18:3 And they shall keep thy charge, and the charge of all the -tabernacle: only they shall not come nigh the vessels of the sanctuary -and the altar, that neither they, nor ye also, die. - -18:4 And they shall be joined unto thee, and keep the charge of the -tabernacle of the congregation, for all the service of the tabernacle: -and a stranger shall not come nigh unto you. - -18:5 And ye shall keep the charge of the sanctuary, and the charge of -the altar: that there be no wrath any more upon the children of -Israel. - -18:6 And I, behold, I have taken your brethren the Levites from among -the children of Israel: to you they are given as a gift for the LORD, -to do the service of the tabernacle of the congregation. - -18:7 Therefore thou and thy sons with thee shall keep your priest's -office for everything of the altar, and within the vail; and ye shall -serve: I have given your priest's office unto you as a service of -gift: and the stranger that cometh nigh shall be put to death. - -18:8 And the LORD spake unto Aaron, Behold, I also have given thee the -charge of mine heave offerings of all the hallowed things of the -children of Israel; unto thee have I given them by reason of the -anointing, and to thy sons, by an ordinance for ever. - -18:9 This shall be thine of the most holy things, reserved from the -fire: every oblation of theirs, every meat offering of theirs, and -every sin offering of theirs, and every trespass offering of theirs -which they shall render unto me, shall be most holy for thee and for -thy sons. - -18:10 In the most holy place shalt thou eat it; every male shall eat -it: it shall be holy unto thee. - -18:11 And this is thine; the heave offering of their gift, with all -the wave offerings of the children of Israel: I have given them unto -thee, and to thy sons and to thy daughters with thee, by a statute for -ever: every one that is clean in thy house shall eat of it. - -18:12 All the best of the oil, and all the best of the wine, and of -the wheat, the firstfruits of them which they shall offer unto the -LORD, them have I given thee. - -18:13 And whatsoever is first ripe in the land, which they shall bring -unto the LORD, shall be thine; every one that is clean in thine house -shall eat of it. - -18:14 Every thing devoted in Israel shall be thine. - -18:15 Every thing that openeth the matrix in all flesh, which they -bring unto the LORD, whether it be of men or beasts, shall be thine: -nevertheless the firstborn of man shalt thou surely redeem, and the -firstling of unclean beasts shalt thou redeem. - -18:16 And those that are to be redeemed from a month old shalt thou -redeem, according to thine estimation, for the money of five shekels, -after the shekel of the sanctuary, which is twenty gerahs. - -18:17 But the firstling of a cow, or the firstling of a sheep, or the -firstling of a goat, thou shalt not redeem; they are holy: thou shalt -sprinkle their blood upon the altar, and shalt burn their fat for an -offering made by fire, for a sweet savour unto the LORD. - -18:18 And the flesh of them shall be thine, as the wave breast and as -the right shoulder are thine. - -18:19 All the heave offerings of the holy things, which the children -of Israel offer unto the LORD, have I given thee, and thy sons and thy -daughters with thee, by a statute for ever: it is a covenant of salt -for ever before the LORD unto thee and to thy seed with thee. - -18:20 And the LORD spake unto Aaron, Thou shalt have no inheritance in -their land, neither shalt thou have any part among them: I am thy part -and thine inheritance among the children of Israel. - -18:21 And, behold, I have given the children of Levi all the tenth in -Israel for an inheritance, for their service which they serve, even -the service of the tabernacle of the congregation. - -18:22 Neither must the children of Israel henceforth come nigh the -tabernacle of the congregation, lest they bear sin, and die. - -18:23 But the Levites shall do the service of the tabernacle of the -congregation, and they shall bear their iniquity: it shall be a -statute for ever throughout your generations, that among the children -of Israel they have no inheritance. - -18:24 But the tithes of the children of Israel, which they offer as an -heave offering unto the LORD, I have given to the Levites to inherit: -therefore I have said unto them, Among the children of Israel they -shall have no inheritance. - -18:25 And the LORD spake unto Moses, saying, 18:26 Thus speak unto the -Levites, and say unto them, When ye take of the children of Israel the -tithes which I have given you from them for your inheritance, then ye -shall offer up an heave offering of it for the LORD, even a tenth part -of the tithe. - -18:27 And this your heave offering shall be reckoned unto you, as -though it were the corn of the threshingfloor, and as the fulness of -the winepress. - -18:28 Thus ye also shall offer an heave offering unto the LORD of all -your tithes, which ye receive of the children of Israel; and ye shall -give thereof the LORD's heave offering to Aaron the priest. - -18:29 Out of all your gifts ye shall offer every heave offering of the -LORD, of all the best thereof, even the hallowed part thereof out of -it. - -18:30 Therefore thou shalt say unto them, When ye have heaved the best -thereof from it, then it shall be counted unto the Levites as the -increase of the threshingfloor, and as the increase of the winepress. - -18:31 And ye shall eat it in every place, ye and your households: for -it is your reward for your service in the tabernacle of the -congregation. - -18:32 And ye shall bear no sin by reason of it, when ye have heaved -from it the best of it: neither shall ye pollute the holy things of -the children of Israel, lest ye die. - -19:1 And the LORD spake unto Moses and unto Aaron, saying, 19:2 This -is the ordinance of the law which the LORD hath commanded, saying, -Speak unto the children of Israel, that they bring thee a red heifer -without spot, wherein is no blemish, and upon which never came yoke: -19:3 And ye shall give her unto Eleazar the priest, that he may bring -her forth without the camp, and one shall slay her before his face: -19:4 And Eleazar the priest shall take of her blood with his finger, -and sprinkle of her blood directly before the tabernacle of the -congregation seven times: 19:5 And one shall burn the heifer in his -sight; her skin, and her flesh, and her blood, with her dung, shall he -burn: 19:6 And the priest shall take cedar wood, and hyssop, and -scarlet, and cast it into the midst of the burning of the heifer. - -19:7 Then the priest shall wash his clothes, and he shall bathe his -flesh in water, and afterward he shall come into the camp, and the -priest shall be unclean until the even. - -19:8 And he that burneth her shall wash his clothes in water, and -bathe his flesh in water, and shall be unclean until the even. - -19:9 And a man that is clean shall gather up the ashes of the heifer, -and lay them up without the camp in a clean place, and it shall be -kept for the congregation of the children of Israel for a water of -separation: it is a purification for sin. - -19:10 And he that gathereth the ashes of the heifer shall wash his -clothes, and be unclean until the even: and it shall be unto the -children of Israel, and unto the stranger that sojourneth among them, -for a statute for ever. - -19:11 He that toucheth the dead body of any man shall be unclean seven -days. - -19:12 He shall purify himself with it on the third day, and on the -seventh day he shall be clean: but if he purify not himself the third -day, then the seventh day he shall not be clean. - -19:13 Whosoever toucheth the dead body of any man that is dead, and -purifieth not himself, defileth the tabernacle of the LORD; and that -soul shall be cut off from Israel: because the water of separation was -not sprinkled upon him, he shall be unclean; his uncleanness is yet -upon him. - -19:14 This is the law, when a man dieth in a tent: all that come into -the tent, and all that is in the tent, shall be unclean seven days. - -19:15 And every open vessel, which hath no covering bound upon it, is -unclean. - -19:16 And whosoever toucheth one that is slain with a sword in the -open fields, or a dead body, or a bone of a man, or a grave, shall be -unclean seven days. - -19:17 And for an unclean person they shall take of the ashes of the -burnt heifer of purification for sin, and running water shall be put -thereto in a vessel: 19:18 And a clean person shall take hyssop, and -dip it in the water, and sprinkle it upon the tent, and upon all the -vessels, and upon the persons that were there, and upon him that -touched a bone, or one slain, or one dead, or a grave: 19:19 And the -clean person shall sprinkle upon the unclean on the third day, and on -the seventh day: and on the seventh day he shall purify himself, and -wash his clothes, and bathe himself in water, and shall be clean at -even. - -19:20 But the man that shall be unclean, and shall not purify himself, -that soul shall be cut off from among the congregation, because he -hath defiled the sanctuary of the LORD: the water of separation hath -not been sprinkled upon him; he is unclean. - -19:21 And it shall be a perpetual statute unto them, that he that -sprinkleth the water of separation shall wash his clothes; and he that -toucheth the water of separation shall be unclean until even. - -19:22 And whatsoever the unclean person toucheth shall be unclean; and -the soul that toucheth it shall be unclean until even. - -20:1 Then came the children of Israel, even the whole congregation, -into the desert of Zin in the first month: and the people abode in -Kadesh; and Miriam died there, and was buried there. - -20:2 And there was no water for the congregation: and they gathered -themselves together against Moses and against Aaron. - -20:3 And the people chode with Moses, and spake, saying, Would God -that we had died when our brethren died before the LORD! 20:4 And why -have ye brought up the congregation of the LORD into this wilderness, -that we and our cattle should die there? 20:5 And wherefore have ye -made us to come up out of Egypt, to bring us in unto this evil place? -it is no place of seed, or of figs, or of vines, or of pomegranates; -neither is there any water to drink. - -20:6 And Moses and Aaron went from the presence of the assembly unto -the door of the tabernacle of the congregation, and they fell upon -their faces: and the glory of the LORD appeared unto them. - -20:7 And the LORD spake unto Moses, saying, 20:8 Take the rod, and -gather thou the assembly together, thou, and Aaron thy brother, and -speak ye unto the rock before their eyes; and it shall give forth his -water, and thou shalt bring forth to them water out of the rock: so -thou shalt give the congregation and their beasts drink. - -20:9 And Moses took the rod from before the LORD, as he commanded him. - -20:10 And Moses and Aaron gathered the congregation together before -the rock, and he said unto them, Hear now, ye rebels; must we fetch -you water out of this rock? 20:11 And Moses lifted up his hand, and -with his rod he smote the rock twice: and the water came out -abundantly, and the congregation drank, and their beasts also. - -20:12 And the LORD spake unto Moses and Aaron, Because ye believed me -not, to sanctify me in the eyes of the children of Israel, therefore -ye shall not bring this congregation into the land which I have given -them. - -20:13 This is the water of Meribah; because the children of Israel -strove with the LORD, and he was sanctified in them. - -20:14 And Moses sent messengers from Kadesh unto the king of Edom, -Thus saith thy brother Israel, Thou knowest all the travail that hath -befallen us: 20:15 How our fathers went down into Egypt, and we have -dwelt in Egypt a long time; and the Egyptians vexed us, and our -fathers: 20:16 And when we cried unto the LORD, he heard our voice, -and sent an angel, and hath brought us forth out of Egypt: and, -behold, we are in Kadesh, a city in the uttermost of thy border: 20:17 -Let us pass, I pray thee, through thy country: we will not pass -through the fields, or through the vineyards, neither will we drink of -the water of the wells: we will go by the king's high way, we will not -turn to the right hand nor to the left, until we have passed thy -borders. - -20:18 And Edom said unto him, Thou shalt not pass by me, lest I come -out against thee with the sword. - -20:19 And the children of Israel said unto him, We will go by the high -way: and if I and my cattle drink of thy water, then I will pay for -it: I will only, without doing anything else, go through on my feet. - -20:20 And he said, Thou shalt not go through. And Edom came out -against him with much people, and with a strong hand. - -20:21 Thus Edom refused to give Israel passage through his border: -wherefore Israel turned away from him. - -20:22 And the children of Israel, even the whole congregation, -journeyed from Kadesh, and came unto mount Hor. - -20:23 And the LORD spake unto Moses and Aaron in mount Hor, by the -coast of the land of Edom, saying, 20:24 Aaron shall be gathered unto -his people: for he shall not enter into the land which I have given -unto the children of Israel, because ye rebelled against my word at -the water of Meribah. - -20:25 Take Aaron and Eleazar his son, and bring them up unto mount -Hor: 20:26 And strip Aaron of his garments, and put them upon Eleazar -his son: and Aaron shall be gathered unto his people, and shall die -there. - -20:27 And Moses did as the LORD commanded: and they went up into mount -Hor in the sight of all the congregation. - -20:28 And Moses stripped Aaron of his garments, and put them upon -Eleazar his son; and Aaron died there in the top of the mount: and -Moses and Eleazar came down from the mount. - -20:29 And when all the congregation saw that Aaron was dead, they -mourned for Aaron thirty days, even all the house of Israel. - -21:1 And when king Arad the Canaanite, which dwelt in the south, heard -tell that Israel came by the way of the spies; then he fought against -Israel, and took some of them prisoners. - -21:2 And Israel vowed a vow unto the LORD, and said, If thou wilt -indeed deliver this people into my hand, then I will utterly destroy -their cities. - -21:3 And the LORD hearkened to the voice of Israel, and delivered up -the Canaanites; and they utterly destroyed them and their cities: and -he called the name of the place Hormah. - -21:4 And they journeyed from mount Hor by the way of the Red sea, to -compass the land of Edom: and the soul of the people was much -discouraged because of the way. - -21:5 And the people spake against God, and against Moses, Wherefore -have ye brought us up out of Egypt to die in the wilderness? for there -is no bread, neither is there any water; and our soul loatheth this -light bread. - -21:6 And the LORD sent fiery serpents among the people, and they bit -the people; and much people of Israel died. - -21:7 Therefore the people came to Moses, and said, We have sinned, for -we have spoken against the LORD, and against thee; pray unto the LORD, -that he take away the serpents from us. And Moses prayed for the -people. - -21:8 And the LORD said unto Moses, Make thee a fiery serpent, and set -it upon a pole: and it shall come to pass, that every one that is -bitten, when he looketh upon it, shall live. - -21:9 And Moses made a serpent of brass, and put it upon a pole, and it -came to pass, that if a serpent had bitten any man, when he beheld the -serpent of brass, he lived. - -21:10 And the children of Israel set forward, and pitched in Oboth. - -21:11 And they journeyed from Oboth, and pitched at Ijeabarim, in the -wilderness which is before Moab, toward the sunrising. - -21:12 From thence they removed, and pitched in the valley of Zared. - -21:13 From thence they removed, and pitched on the other side of -Arnon, which is in the wilderness that cometh out of the coasts of the -Amorites: for Arnon is the border of Moab, between Moab and the -Amorites. - -21:14 Wherefore it is said in the book of the wars of the LORD, What -he did in the Red sea, and in the brooks of Arnon, 21:15 And at the -stream of the brooks that goeth down to the dwelling of Ar, and lieth -upon the border of Moab. - -21:16 And from thence they went to Beer: that is the well whereof the -LORD spake unto Moses, Gather the people together, and I will give -them water. - -21:17 Then Israel sang this song, Spring up, O well; sing ye unto it: -21:18 The princes digged the well, the nobles of the people digged it, -by the direction of the lawgiver, with their staves. And from the -wilderness they went to Mattanah: 21:19 And from Mattanah to Nahaliel: -and from Nahaliel to Bamoth: 21:20 And from Bamoth in the valley, that -is in the country of Moab, to the top of Pisgah, which looketh toward -Jeshimon. - -21:21 And Israel sent messengers unto Sihon king of the Amorites, -saying, 21:22 Let me pass through thy land: we will not turn into the -fields, or into the vineyards; we will not drink of the waters of the -well: but we will go along by the king's high way, until we be past -thy borders. - -21:23 And Sihon would not suffer Israel to pass through his border: -but Sihon gathered all his people together, and went out against -Israel into the wilderness: and he came to Jahaz, and fought against -Israel. - -21:24 And Israel smote him with the edge of the sword, and possessed -his land from Arnon unto Jabbok, even unto the children of Ammon: for -the border of the children of Ammon was strong. - -21:25 And Israel took all these cities: and Israel dwelt in all the -cities of the Amorites, in Heshbon, and in all the villages thereof. - -21:26 For Heshbon was the city of Sihon the king of the Amorites, who -had fought against the former king of Moab, and taken all his land out -of his hand, even unto Arnon. - -21:27 Wherefore they that speak in proverbs say, Come into Heshbon, -let the city of Sihon be built and prepared: 21:28 For there is a fire -gone out of Heshbon, a flame from the city of Sihon: it hath consumed -Ar of Moab, and the lords of the high places of Arnon. - -21:29 Woe to thee, Moab! thou art undone, O people of Chemosh: he hath -given his sons that escaped, and his daughters, into captivity unto -Sihon king of the Amorites. - -21:30 We have shot at them; Heshbon is perished even unto Dibon, and -we have laid them waste even unto Nophah, which reacheth unto Medeba. - -21:31 Thus Israel dwelt in the land of the Amorites. - -21:32 And Moses sent to spy out Jaazer, and they took the villages -thereof, and drove out the Amorites that were there. - -21:33 And they turned and went up by the way of Bashan: and Og the -king of Bashan went out against them, he, and all his people, to the -battle at Edrei. - -21:34 And the LORD said unto Moses, Fear him not: for I have delivered -him into thy hand, and all his people, and his land; and thou shalt do -to him as thou didst unto Sihon king of the Amorites, which dwelt at -Heshbon. - -21:35 So they smote him, and his sons, and all his people, until there -was none left him alive: and they possessed his land. - -22:1 And the children of Israel set forward, and pitched in the plains -of Moab on this side Jordan by Jericho. - -22:2 And Balak the son of Zippor saw all that Israel had done to the -Amorites. - -22:3 And Moab was sore afraid of the people, because they were many: -and Moab was distressed because of the children of Israel. - -22:4 And Moab said unto the elders of Midian, Now shall this company -lick up all that are round about us, as the ox licketh up the grass of -the field. - -And Balak the son of Zippor was king of the Moabites at that time. - -22:5 He sent messengers therefore unto Balaam the son of Beor to -Pethor, which is by the river of the land of the children of his -people, to call him, saying, Behold, there is a people come out from -Egypt: behold, they cover the face of the earth, and they abide over -against me: 22:6 Come now therefore, I pray thee, curse me this -people; for they are too mighty for me: peradventure I shall prevail, -that we may smite them, and that I may drive them out of the land: for -I wot that he whom thou blessest is blessed, and he whom thou cursest -is cursed. - -22:7 And the elders of Moab and the elders of Midian departed with the -rewards of divination in their hand; and they came unto Balaam, and -spake unto him the words of Balak. - -22:8 And he said unto them, Lodge here this night, and I will bring -you word again, as the LORD shall speak unto me: and the princes of -Moab abode with Balaam. - -22:9 And God came unto Balaam, and said, What men are these with thee? -22:10 And Balaam said unto God, Balak the son of Zippor, king of Moab, -hath sent unto me, saying, 22:11 Behold, there is a people come out of -Egypt, which covereth the face of the earth: come now, curse me them; -peradventure I shall be able to overcome them, and drive them out. - -22:12 And God said unto Balaam, Thou shalt not go with them; thou -shalt not curse the people: for they are blessed. - -22:13 And Balaam rose up in the morning, and said unto the princes of -Balak, Get you into your land: for the LORD refuseth to give me leave -to go with you. - -22:14 And the princes of Moab rose up, and they went unto Balak, and -said, Balaam refuseth to come with us. - -22:15 And Balak sent yet again princes, more, and more honourable than -they. - -22:16 And they came to Balaam, and said to him, Thus saith Balak the -son of Zippor, Let nothing, I pray thee, hinder thee from coming unto -me: 22:17 For I will promote thee unto very great honour, and I will -do whatsoever thou sayest unto me: come therefore, I pray thee, curse -me this people. - -22:18 And Balaam answered and said unto the servants of Balak, If -Balak would give me his house full of silver and gold, I cannot go -beyond the word of the LORD my God, to do less or more. - -22:19 Now therefore, I pray you, tarry ye also here this night, that I -may know what the LORD will say unto me more. - -22:20 And God came unto Balaam at night, and said unto him, If the men -come to call thee, rise up, and go with them; but yet the word which I -shall say unto thee, that shalt thou do. - -22:21 And Balaam rose up in the morning, and saddled his ass, and went -with the princes of Moab. - -22:22 And God's anger was kindled because he went: and the angel of -the LORD stood in the way for an adversary against him. Now he was -riding upon his ass, and his two servants were with him. - -22:23 And the ass saw the angel of the LORD standing in the way, and -his sword drawn in his hand: and the ass turned aside out of the way, -and went into the field: and Balaam smote the ass, to turn her into -the way. - -22:24 But the angel of the LORD stood in a path of the vineyards, a -wall being on this side, and a wall on that side. - -22:25 And when the ass saw the angel of the LORD, she thrust herself -unto the wall, and crushed Balaam's foot against the wall: and he -smote her again. - -22:26 And the angel of the LORD went further, and stood in a narrow -place, where was no way to turn either to the right hand or to the -left. - -22:27 And when the ass saw the angel of the LORD, she fell down under -Balaam: and Balaam's anger was kindled, and he smote the ass with a -staff. - -22:28 And the LORD opened the mouth of the ass, and she said unto -Balaam, What have I done unto thee, that thou hast smitten me these -three times? 22:29 And Balaam said unto the ass, Because thou hast -mocked me: I would there were a sword in mine hand, for now would I -kill thee. - -22:30 And the ass said unto Balaam, Am not I thine ass, upon which -thou hast ridden ever since I was thine unto this day? was I ever wont -to do so unto thee? And he said, Nay. - -22:31 Then the LORD opened the eyes of Balaam, and he saw the angel of -the LORD standing in the way, and his sword drawn in his hand: and he -bowed down his head, and fell flat on his face. - -22:32 And the angel of the LORD said unto him, Wherefore hast thou -smitten thine ass these three times? behold, I went out to withstand -thee, because thy way is perverse before me: 22:33 And the ass saw me, -and turned from me these three times: unless she had turned from me, -surely now also I had slain thee, and saved her alive. - -22:34 And Balaam said unto the angel of the LORD, I have sinned; for I -knew not that thou stoodest in the way against me: now therefore, if -it displease thee, I will get me back again. - -22:35 And the angel of the LORD said unto Balaam, Go with the men: but -only the word that I shall speak unto thee, that thou shalt speak. So -Balaam went with the princes of Balak. - -22:36 And when Balak heard that Balaam was come, he went out to meet -him unto a city of Moab, which is in the border of Arnon, which is in -the utmost coast. - -22:37 And Balak said unto Balaam, Did I not earnestly send unto thee -to call thee? wherefore camest thou not unto me? am I not able indeed -to promote thee to honour? 22:38 And Balaam said unto Balak, Lo, I am -come unto thee: have I now any power at all to say any thing? the word -that God putteth in my mouth, that shall I speak. - -22:39 And Balaam went with Balak, and they came unto Kirjathhuzoth. - -22:40 And Balak offered oxen and sheep, and sent to Balaam, and to the -princes that were with him. - -22:41 And it came to pass on the morrow, that Balak took Balaam, and -brought him up into the high places of Baal, that thence he might see -the utmost part of the people. - -23:1 And Balaam said unto Balak, Build me here seven altars, and -prepare me here seven oxen and seven rams. - -23:2 And Balak did as Balaam had spoken; and Balak and Balaam offered -on every altar a bullock and a ram. - -23:3 And Balaam said unto Balak, Stand by thy burnt offering, and I -will go: peradventure the LORD will come to meet me: and whatsoever he -sheweth me I will tell thee. And he went to an high place. - -23:4 And God met Balaam: and he said unto him, I have prepared seven -altars, and I have offered upon every altar a bullock and a ram. - -23:5 And the LORD put a word in Balaam's mouth, and said, Return unto -Balak, and thus thou shalt speak. - -23:6 And he returned unto him, and, lo, he stood by his burnt -sacrifice, he, and all the princes of Moab. - -23:7 And he took up his parable, and said, Balak the king of Moab hath -brought me from Aram, out of the mountains of the east, saying, Come, -curse me Jacob, and come, defy Israel. - -23:8 How shall I curse, whom God hath not cursed? or how shall I defy, -whom the LORD hath not defied? 23:9 For from the top of the rocks I -see him, and from the hills I behold him: lo, the people shall dwell -alone, and shall not be reckoned among the nations. - -23:10 Who can count the dust of Jacob, and the number of the fourth -part of Israel? Let me die the death of the righteous, and let my last -end be like his! 23:11 And Balak said unto Balaam, What hast thou -done unto me? I took thee to curse mine enemies, and, behold, thou -hast blessed them altogether. - -23:12 And he answered and said, Must I not take heed to speak that -which the LORD hath put in my mouth? 23:13 And Balak said unto him, -Come, I pray thee, with me unto another place, from whence thou mayest -see them: thou shalt see but the utmost part of them, and shalt not -see them all: and curse me them from thence. - -23:14 And he brought him into the field of Zophim, to the top of -Pisgah, and built seven altars, and offered a bullock and a ram on -every altar. - -23:15 And he said unto Balak, Stand here by thy burnt offering, while -I meet the LORD yonder. - -23:16 And the LORD met Balaam, and put a word in his mouth, and said, -Go again unto Balak, and say thus. - -23:17 And when he came to him, behold, he stood by his burnt offering, -and the princes of Moab with him. And Balak said unto him, What hath -the LORD spoken? 23:18 And he took up his parable, and said, Rise up, -Balak, and hear; hearken unto me, thou son of Zippor: 23:19 God is not -a man, that he should lie; neither the son of man, that he should -repent: hath he said, and shall he not do it? or hath he spoken, and -shall he not make it good? 23:20 Behold, I have received commandment -to bless: and he hath blessed; and I cannot reverse it. - -23:21 He hath not beheld iniquity in Jacob, neither hath he seen -perverseness in Israel: the LORD his God is with him, and the shout of -a king is among them. - -23:22 God brought them out of Egypt; he hath as it were the strength -of an unicorn. - -23:23 Surely there is no enchantment against Jacob, neither is there -any divination against Israel: according to this time it shall be said -of Jacob and of Israel, What hath God wrought! 23:24 Behold, the -people shall rise up as a great lion, and lift up himself as a young -lion: he shall not lie down until he eat of the prey, and drink the -blood of the slain. - -23:25 And Balak said unto Balaam, Neither curse them at all, nor bless -them at all. - -23:26 But Balaam answered and said unto Balak, Told not I thee, -saying, All that the LORD speaketh, that I must do? 23:27 And Balak -said unto Balaam, Come, I pray thee, I will bring thee unto another -place; peradventure it will please God that thou mayest curse me them -from thence. - -23:28 And Balak brought Balaam unto the top of Peor, that looketh -toward Jeshimon. - -23:29 And Balaam said unto Balak, Build me here seven altars, and -prepare me here seven bullocks and seven rams. - -23:30 And Balak did as Balaam had said, and offered a bullock and a -ram on every altar. - -24:1 And when Balaam saw that it pleased the LORD to bless Israel, he -went not, as at other times, to seek for enchantments, but he set his -face toward the wilderness. - -24:2 And Balaam lifted up his eyes, and he saw Israel abiding in his -tents according to their tribes; and the spirit of God came upon him. - -24:3 And he took up his parable, and said, Balaam the son of Beor hath -said, and the man whose eyes are open hath said: 24:4 He hath said, -which heard the words of God, which saw the vision of the Almighty, -falling into a trance, but having his eyes open: 24:5 How goodly are -thy tents, O Jacob, and thy tabernacles, O Israel! 24:6 As the -valleys are they spread forth, as gardens by the river's side, as the -trees of lign aloes which the LORD hath planted, and as cedar trees -beside the waters. - -24:7 He shall pour the water out of his buckets, and his seed shall be -in many waters, and his king shall be higher than Agag, and his -kingdom shall be exalted. - -24:8 God brought him forth out of Egypt; he hath as it were the -strength of an unicorn: he shall eat up the nations his enemies, and -shall break their bones, and pierce them through with his arrows. - -24:9 He couched, he lay down as a lion, and as a great lion: who shall -stir him up? Blessed is he that blesseth thee, and cursed is he that -curseth thee. - -24:10 And Balak's anger was kindled against Balaam, and he smote his -hands together: and Balak said unto Balaam, I called thee to curse -mine enemies, and, behold, thou hast altogether blessed them these -three times. - -24:11 Therefore now flee thou to thy place: I thought to promote thee -unto great honour; but, lo, the LORD hath kept thee back from honour. - -24:12 And Balaam said unto Balak, Spake I not also to thy messengers -which thou sentest unto me, saying, 24:13 If Balak would give me his -house full of silver and gold, I cannot go beyond the commandment of -the LORD, to do either good or bad of mine own mind; but what the LORD -saith, that will I speak? 24:14 And now, behold, I go unto my people: -come therefore, and I will advertise thee what this people shall do to -thy people in the latter days. - -24:15 And he took up his parable, and said, Balaam the son of Beor -hath said, and the man whose eyes are open hath said: 24:16 He hath -said, which heard the words of God, and knew the knowledge of the most -High, which saw the vision of the Almighty, falling into a trance, but -having his eyes open: 24:17 I shall see him, but not now: I shall -behold him, but not nigh: there shall come a Star out of Jacob, and a -Sceptre shall rise out of Israel, and shall smite the corners of Moab, -and destroy all the children of Sheth. - -24:18 And Edom shall be a possession, Seir also shall be a possession -for his enemies; and Israel shall do valiantly. - -24:19 Out of Jacob shall come he that shall have dominion, and shall -destroy him that remaineth of the city. - -24:20 And when he looked on Amalek, he took up his parable, and said, -Amalek was the first of the nations; but his latter end shall be that -he perish for ever. - -24:21 And he looked on the Kenites, and took up his parable, and said, -Strong is thy dwellingplace, and thou puttest thy nest in a rock. - -24:22 Nevertheless the Kenite shall be wasted, until Asshur shall -carry thee away captive. - -24:23 And he took up his parable, and said, Alas, who shall live when -God doeth this! 24:24 And ships shall come from the coast of Chittim, -and shall afflict Asshur, and shall afflict Eber, and he also shall -perish for ever. - -24:25 And Balaam rose up, and went and returned to his place: and -Balak also went his way. - -25:1 And Israel abode in Shittim, and the people began to commit -whoredom with the daughters of Moab. - -25:2 And they called the people unto the sacrifices of their gods: and -the people did eat, and bowed down to their gods. - -25:3 And Israel joined himself unto Baalpeor: and the anger of the -LORD was kindled against Israel. - -25:4 And the LORD said unto Moses, Take all the heads of the people, -and hang them up before the LORD against the sun, that the fierce -anger of the LORD may be turned away from Israel. - -25:5 And Moses said unto the judges of Israel, Slay ye every one his -men that were joined unto Baalpeor. - -25:6 And, behold, one of the children of Israel came and brought unto -his brethren a Midianitish woman in the sight of Moses, and in the -sight of all the congregation of the children of Israel, who were -weeping before the door of the tabernacle of the congregation. - -25:7 And when Phinehas, the son of Eleazar, the son of Aaron the -priest, saw it, he rose up from among the congregation, and took a -javelin in his hand; 25:8 And he went after the man of Israel into the -tent, and thrust both of them through, the man of Israel, and the -woman through her belly. So the plague was stayed from the children of -Israel. - -25:9 And those that died in the plague were twenty and four thousand. - -25:10 And the LORD spake unto Moses, saying, 25:11 Phinehas, the son -of Eleazar, the son of Aaron the priest, hath turned my wrath away -from the children of Israel, while he was zealous for my sake among -them, that I consumed not the children of Israel in my jealousy. - -25:12 Wherefore say, Behold, I give unto him my covenant of peace: -25:13 And he shall have it, and his seed after him, even the covenant -of an everlasting priesthood; because he was zealous for his God, and -made an atonement for the children of Israel. - -25:14 Now the name of the Israelite that was slain, even that was -slain with the Midianitish woman, was Zimri, the son of Salu, a prince -of a chief house among the Simeonites. - -25:15 And the name of the Midianitish woman that was slain was Cozbi, -the daughter of Zur; he was head over a people, and of a chief house -in Midian. - -25:16 And the LORD spake unto Moses, saying, 25:17 Vex the Midianites, -and smite them: 25:18 For they vex you with their wiles, wherewith -they have beguiled you in the matter of Peor, and in the matter of -Cozbi, the daughter of a prince of Midian, their sister, which was -slain in the day of the plague for Peor's sake. - -26:1 And it came to pass after the plague, that the LORD spake unto -Moses and unto Eleazar the son of Aaron the priest, saying, 26:2 Take -the sum of all the congregation of the children of Israel, from twenty -years old and upward, throughout their fathers' house, all that are -able to go to war in Israel. - -26:3 And Moses and Eleazar the priest spake with them in the plains of -Moab by Jordan near Jericho, saying, 26:4 Take the sum of the people, -from twenty years old and upward; as the LORD commanded Moses and the -children of Israel, which went forth out of the land of Egypt. - -26:5 Reuben, the eldest son of Israel: the children of Reuben; Hanoch, -of whom cometh the family of the Hanochites: of Pallu, the family of -the Palluites: 26:6 Of Hezron, the family of the Hezronites: of Carmi, -the family of the Carmites. - -26:7 These are the families of the Reubenites: and they that were -numbered of them were forty and three thousand and seven hundred and -thirty. - -26:8 And the sons of Pallu; Eliab. - -26:9 And the sons of Eliab; Nemuel, and Dathan, and Abiram. This is -that Dathan and Abiram, which were famous in the congregation, who -strove against Moses and against Aaron in the company of Korah, when -they strove against the LORD: 26:10 And the earth opened her mouth, -and swallowed them up together with Korah, when that company died, -what time the fire devoured two hundred and fifty men: and they became -a sign. - -26:11 Notwithstanding the children of Korah died not. - -26:12 The sons of Simeon after their families: of Nemuel, the family -of the Nemuelites: of Jamin, the family of the Jaminites: of Jachin, -the family of the Jachinites: 26:13 Of Zerah, the family of the -Zarhites: of Shaul, the family of the Shaulites. - -26:14 These are the families of the Simeonites, twenty and two -thousand and two hundred. - -26:15 The children of Gad after their families: of Zephon, the family -of the Zephonites: of Haggi, the family of the Haggites: of Shuni, the -family of the Shunites: 26:16 Of Ozni, the family of the Oznites: of -Eri, the family of the Erites: 26:17 Of Arod, the family of the -Arodites: of Areli, the family of the Arelites. - -26:18 These are the families of the children of Gad according to those -that were numbered of them, forty thousand and five hundred. - -26:19 The sons of Judah were Er and Onan: and Er and Onan died in the -land of Canaan. - -26:20 And the sons of Judah after their families were; of Shelah, the -family of the Shelanites: of Pharez, the family of the Pharzites: of -Zerah, the family of the Zarhites. - -26:21 And the sons of Pharez were; of Hezron, the family of the -Hezronites: of Hamul, the family of the Hamulites. - -26:22 These are the families of Judah according to those that were -numbered of them, threescore and sixteen thousand and five hundred. - -26:23 Of the sons of Issachar after their families: of Tola, the -family of the Tolaites: of Pua, the family of the Punites: 26:24 Of -Jashub, the family of the Jashubites: of Shimron, the family of the -Shimronites. - -26:25 These are the families of Issachar according to those that were -numbered of them, threescore and four thousand and three hundred. - -26:26 Of the sons of Zebulun after their families: of Sered, the -family of the Sardites: of Elon, the family of the Elonites: of -Jahleel, the family of the Jahleelites. - -26:27 These are the families of the Zebulunites according to those -that were numbered of them, threescore thousand and five hundred. - -26:28 The sons of Joseph after their families were Manasseh and -Ephraim. - -26:29 Of the sons of Manasseh: of Machir, the family of the -Machirites: and Machir begat Gilead: of Gilead come the family of the -Gileadites. - -26:30 These are the sons of Gilead: of Jeezer, the family of the -Jeezerites: of Helek, the family of the Helekites: 26:31 And of -Asriel, the family of the Asrielites: and of Shechem, the family of -the Shechemites: 26:32 And of Shemida, the family of the Shemidaites: -and of Hepher, the family of the Hepherites. - -26:33 And Zelophehad the son of Hepher had no sons, but daughters: and -the names of the daughters of Zelophehad were Mahlah, and Noah, -Hoglah, Milcah, and Tirzah. - -26:34 These are the families of Manasseh, and those that were numbered -of them, fifty and two thousand and seven hundred. - -26:35 These are the sons of Ephraim after their families: of -Shuthelah, the family of the Shuthalhites: of Becher, the family of -the Bachrites: of Tahan, the family of the Tahanites. - -26:36 And these are the sons of Shuthelah: of Eran, the family of the -Eranites. - -26:37 These are the families of the sons of Ephraim according to those -that were numbered of them, thirty and two thousand and five hundred. -These are the sons of Joseph after their families. - -26:38 The sons of Benjamin after their families: of Bela, the family -of the Belaites: of Ashbel, the family of the Ashbelites: of Ahiram, -the family of the Ahiramites: 26:39 Of Shupham, the family of the -Shuphamites: of Hupham, the family of the Huphamites. - -26:40 And the sons of Bela were Ard and Naaman: of Ard, the family of -the Ardites: and of Naaman, the family of the Naamites. - -26:41 These are the sons of Benjamin after their families: and they -that were numbered of them were forty and five thousand and six -hundred. - -26:42 These are the sons of Dan after their families: of Shuham, the -family of the Shuhamites. These are the families of Dan after their -families. - -26:43 All the families of the Shuhamites, according to those that were -numbered of them, were threescore and four thousand and four hundred. - -26:44 Of the children of Asher after their families: of Jimna, the -family of the Jimnites: of Jesui, the family of the Jesuites: of -Beriah, the family of the Beriites. - -26:45 Of the sons of Beriah: of Heber, the family of the Heberites: of -Malchiel, the family of the Malchielites. - -26:46 And the name of the daughter of Asher was Sarah. - -26:47 These are the families of the sons of Asher according to those -that were numbered of them; who were fifty and three thousand and four -hundred. - -26:48 Of the sons of Naphtali after their families: of Jahzeel, the -family of the Jahzeelites: of Guni, the family of the Gunites: 26:49 -Of Jezer, the family of the Jezerites: of Shillem, the family of the -Shillemites. - -26:50 These are the families of Naphtali according to their families: -and they that were numbered of them were forty and five thousand and -four hundred. - -26:51 These were the numbered of the children of Israel, six hundred -thousand and a thousand seven hundred and thirty. - -26:52 And the LORD spake unto Moses, saying, 26:53 Unto these the land -shall be divided for an inheritance according to the number of names. - -26:54 To many thou shalt give the more inheritance, and to few thou -shalt give the less inheritance: to every one shall his inheritance be -given according to those that were numbered of him. - -26:55 Notwithstanding the land shall be divided by lot: according to -the names of the tribes of their fathers they shall inherit. - -26:56 According to the lot shall the possession thereof be divided -between many and few. - -26:57 And these are they that were numbered of the Levites after their -families: of Gershon, the family of the Gershonites: of Kohath, the -family of the Kohathites: of Merari, the family of the Merarites. - -26:58 These are the families of the Levites: the family of the -Libnites, the family of the Hebronites, the family of the Mahlites, -the family of the Mushites, the family of the Korathites. And Kohath -begat Amram. - -26:59 And the name of Amram's wife was Jochebed, the daughter of Levi, -whom her mother bare to Levi in Egypt: and she bare unto Amram Aaron -and Moses, and Miriam their sister. - -26:60 And unto Aaron was born Nadab, and Abihu, Eleazar, and Ithamar. - -26:61 And Nadab and Abihu died, when they offered strange fire before -the LORD. - -26:62 And those that were numbered of them were twenty and three -thousand, all males from a month old and upward: for they were not -numbered among the children of Israel, because there was no -inheritance given them among the children of Israel. - -26:63 These are they that were numbered by Moses and Eleazar the -priest, who numbered the children of Israel in the plains of Moab by -Jordan near Jericho. - -26:64 But among these there was not a man of them whom Moses and Aaron -the priest numbered, when they numbered the children of Israel in the -wilderness of Sinai. - -26:65 For the LORD had said of them, They shall surely die in the -wilderness. And there was not left a man of them, save Caleb the son -of Jephunneh, and Joshua the son of Nun. - -27:1 Then came the daughters of Zelophehad, the son of Hepher, the son -of Gilead, the son of Machir, the son of Manasseh, of the families of -Manasseh the son of Joseph: and these are the names of his daughters; -Mahlah, Noah, and Hoglah, and Milcah, and Tirzah. - -27:2 And they stood before Moses, and before Eleazar the priest, and -before the princes and all the congregation, by the door of the -tabernacle of the congregation, saying, 27:3 Our father died in the -wilderness, and he was not in the company of them that gathered -themselves together against the LORD in the company of Korah; but died -in his own sin, and had no sons. - -27:4 Why should the name of our father be done away from among his -family, because he hath no son? Give unto us therefore a possession -among the brethren of our father. - -27:5 And Moses brought their cause before the LORD. - -27:6 And the LORD spake unto Moses, saying, 27:7 The daughters of -Zelophehad speak right: thou shalt surely give them a possession of an -inheritance among their father's brethren; and thou shalt cause the -inheritance of their father to pass unto them. - -27:8 And thou shalt speak unto the children of Israel, saying, If a -man die, and have no son, then ye shall cause his inheritance to pass -unto his daughter. - -27:9 And if he have no daughter, then ye shall give his inheritance -unto his brethren. - -27:10 And if he have no brethren, then ye shall give his inheritance -unto his father's brethren. - -27:11 And if his father have no brethren, then ye shall give his -inheritance unto his kinsman that is next to him of his family, and he -shall possess it: and it shall be unto the children of Israel a -statute of judgment, as the LORD commanded Moses. - -27:12 And the LORD said unto Moses, Get thee up into this mount -Abarim, and see the land which I have given unto the children of -Israel. - -27:13 And when thou hast seen it, thou also shalt be gathered unto thy -people, as Aaron thy brother was gathered. - -27:14 For ye rebelled against my commandment in the desert of Zin, in -the strife of the congregation, to sanctify me at the water before -their eyes: that is the water of Meribah in Kadesh in the wilderness -of Zin. - -27:15 And Moses spake unto the LORD, saying, 27:16 Let the LORD, the -God of the spirits of all flesh, set a man over the congregation, -27:17 Which may go out before them, and which may go in before them, -and which may lead them out, and which may bring them in; that the -congregation of the LORD be not as sheep which have no shepherd. - -27:18 And the LORD said unto Moses, Take thee Joshua the son of Nun, a -man in whom is the spirit, and lay thine hand upon him; 27:19 And set -him before Eleazar the priest, and before all the congregation; and -give him a charge in their sight. - -27:20 And thou shalt put some of thine honour upon him, that all the -congregation of the children of Israel may be obedient. - -27:21 And he shall stand before Eleazar the priest, who shall ask -counsel for him after the judgment of Urim before the LORD: at his -word shall they go out, and at his word they shall come in, both he, -and all the children of Israel with him, even all the congregation. - -27:22 And Moses did as the LORD commanded him: and he took Joshua, and -set him before Eleazar the priest, and before all the congregation: -27:23 And he laid his hands upon him, and gave him a charge, as the -LORD commanded by the hand of Moses. - -28:1 And the LORD spake unto Moses, saying, 28:2 Command the children -of Israel, and say unto them, My offering, and my bread for my -sacrifices made by fire, for a sweet savour unto me, shall ye observe -to offer unto me in their due season. - -28:3 And thou shalt say unto them, This is the offering made by fire -which ye shall offer unto the LORD; two lambs of the first year -without spot day by day, for a continual burnt offering. - -28:4 The one lamb shalt thou offer in the morning, and the other lamb -shalt thou offer at even; 28:5 And a tenth part of an ephah of flour -for a meat offering, mingled with the fourth part of an hin of beaten -oil. - -28:6 It is a continual burnt offering, which was ordained in mount -Sinai for a sweet savour, a sacrifice made by fire unto the LORD. - -28:7 And the drink offering thereof shall be the fourth part of an hin -for the one lamb: in the holy place shalt thou cause the strong wine -to be poured unto the LORD for a drink offering. - -28:8 And the other lamb shalt thou offer at even: as the meat offering -of the morning, and as the drink offering thereof, thou shalt offer -it, a sacrifice made by fire, of a sweet savour unto the LORD. - -28:9 And on the sabbath day two lambs of the first year without spot, -and two tenth deals of flour for a meat offering, mingled with oil, -and the drink offering thereof: 28:10 This is the burnt offering of -every sabbath, beside the continual burnt offering, and his drink -offering. - -28:11 And in the beginnings of your months ye shall offer a burnt -offering unto the LORD; two young bullocks, and one ram, seven lambs -of the first year without spot; 28:12 And three tenth deals of flour -for a meat offering, mingled with oil, for one bullock; and two tenth -deals of flour for a meat offering, mingled with oil, for one ram; -28:13 And a several tenth deal of flour mingled with oil for a meat -offering unto one lamb; for a burnt offering of a sweet savour, a -sacrifice made by fire unto the LORD. - -28:14 And their drink offerings shall be half an hin of wine unto a -bullock, and the third part of an hin unto a ram, and a fourth part of -an hin unto a lamb: this is the burnt offering of every month -throughout the months of the year. - -28:15 And one kid of the goats for a sin offering unto the LORD shall -be offered, beside the continual burnt offering, and his drink -offering. - -28:16 And in the fourteenth day of the first month is the passover of -the LORD. - -28:17 And in the fifteenth day of this month is the feast: seven days -shall unleavened bread be eaten. - -28:18 In the first day shall be an holy convocation; ye shall do no -manner of servile work therein: 28:19 But ye shall offer a sacrifice -made by fire for a burnt offering unto the LORD; two young bullocks, -and one ram, and seven lambs of the first year: they shall be unto you -without blemish: 28:20 And their meat offering shall be of flour -mingled with oil: three tenth deals shall ye offer for a bullock, and -two tenth deals for a ram; 28:21 A several tenth deal shalt thou offer -for every lamb, throughout the seven lambs: 28:22 And one goat for a -sin offering, to make an atonement for you. - -28:23 Ye shall offer these beside the burnt offering in the morning, -which is for a continual burnt offering. - -28:24 After this manner ye shall offer daily, throughout the seven -days, the meat of the sacrifice made by fire, of a sweet savour unto -the LORD: it shall be offered beside the continual burnt offering, and -his drink offering. - -28:25 And on the seventh day ye shall have an holy convocation; ye -shall do no servile work. - -28:26 Also in the day of the firstfruits, when ye bring a new meat -offering unto the LORD, after your weeks be out, ye shall have an holy -convocation; ye shall do no servile work: 28:27 But ye shall offer the -burnt offering for a sweet savour unto the LORD; two young bullocks, -one ram, seven lambs of the first year; 28:28 And their meat offering -of flour mingled with oil, three tenth deals unto one bullock, two -tenth deals unto one ram, 28:29 A several tenth deal unto one lamb, -throughout the seven lambs; 28:30 And one kid of the goats, to make an -atonement for you. - -28:31 Ye shall offer them beside the continual burnt offering, and his -meat offering, (they shall be unto you without blemish) and their -drink offerings. - -29:1 And in the seventh month, on the first day of the month, ye shall -have an holy convocation; ye shall do no servile work: it is a day of -blowing the trumpets unto you. - -29:2 And ye shall offer a burnt offering for a sweet savour unto the -LORD; one young bullock, one ram, and seven lambs of the first year -without blemish: 29:3 And their meat offering shall be of flour -mingled with oil, three tenth deals for a bullock, and two tenth deals -for a ram, 29:4 And one tenth deal for one lamb, throughout the seven -lambs: 29:5 And one kid of the goats for a sin offering, to make an -atonement for you: 29:6 Beside the burnt offering of the month, and -his meat offering, and the daily burnt offering, and his meat -offering, and their drink offerings, according unto their manner, for -a sweet savour, a sacrifice made by fire unto the LORD. - -29:7 And ye shall have on the tenth day of this seventh month an holy -convocation; and ye shall afflict your souls: ye shall not do any work -therein: 29:8 But ye shall offer a burnt offering unto the LORD for a -sweet savour; one young bullock, one ram, and seven lambs of the first -year; they shall be unto you without blemish: 29:9 And their meat -offering shall be of flour mingled with oil, three tenth deals to a -bullock, and two tenth deals to one ram, 29:10 A several tenth deal -for one lamb, throughout the seven lambs: 29:11 One kid of the goats -for a sin offering; beside the sin offering of atonement, and the -continual burnt offering, and the meat offering of it, and their drink -offerings. - -29:12 And on the fifteenth day of the seventh month ye shall have an -holy convocation; ye shall do no servile work, and ye shall keep a -feast unto the LORD seven days: 29:13 And ye shall offer a burnt -offering, a sacrifice made by fire, of a sweet savour unto the LORD; -thirteen young bullocks, two rams, and fourteen lambs of the first -year; they shall be without blemish: 29:14 And their meat offering -shall be of flour mingled with oil, three tenth deals unto every -bullock of the thirteen bullocks, two tenth deals to each ram of the -two rams, 29:15 And a several tenth deal to each lamb of the fourteen -lambs: 29:16 And one kid of the goats for a sin offering; beside the -continual burnt offering, his meat offering, and his drink offering. - -29:17 And on the second day ye shall offer twelve young bullocks, two -rams, fourteen lambs of the first year without spot: 29:18 And their -meat offering and their drink offerings for the bullocks, for the -rams, and for the lambs, shall be according to their number, after the -manner: 29:19 And one kid of the goats for a sin offering; beside the -continual burnt offering, and the meat offering thereof, and their -drink offerings. - -29:20 And on the third day eleven bullocks, two rams, fourteen lambs -of the first year without blemish; 29:21 And their meat offering and -their drink offerings for the bullocks, for the rams, and for the -lambs, shall be according to their number, after the manner: 29:22 And -one goat for a sin offering; beside the continual burnt offering, and -his meat offering, and his drink offering. - -29:23 And on the fourth day ten bullocks, two rams, and fourteen lambs -of the first year without blemish: 29:24 Their meat offering and their -drink offerings for the bullocks, for the rams, and for the lambs, -shall be according to their number, after the manner: 29:25 And one -kid of the goats for a sin offering; beside the continual burnt -offering, his meat offering, and his drink offering. - -29:26 And on the fifth day nine bullocks, two rams, and fourteen lambs -of the first year without spot: 29:27 And their meat offering and -their drink offerings for the bullocks, for the rams, and for the -lambs, shall be according to their number, after the manner: 29:28 And -one goat for a sin offering; beside the continual burnt offering, and -his meat offering, and his drink offering. - -29:29 And on the sixth day eight bullocks, two rams, and fourteen -lambs of the first year without blemish: 29:30 And their meat offering -and their drink offerings for the bullocks, for the rams, and for the -lambs, shall be according to their number, after the manner: 29:31 And -one goat for a sin offering; beside the continual burnt offering, his -meat offering, and his drink offering. - -29:32 And on the seventh day seven bullocks, two rams, and fourteen -lambs of the first year without blemish: 29:33 And their meat offering -and their drink offerings for the bullocks, for the rams, and for the -lambs, shall be according to their number, after the manner: 29:34 And -one goat for a sin offering; beside the continual burnt offering, his -meat offering, and his drink offering. - -29:35 On the eighth day ye shall have a solemn assembly: ye shall do -no servile work therein: 29:36 But ye shall offer a burnt offering, a -sacrifice made by fire, of a sweet savour unto the LORD: one bullock, -one ram, seven lambs of the first year without blemish: 29:37 Their -meat offering and their drink offerings for the bullock, for the ram, -and for the lambs, shall be according to their number, after the -manner: 29:38 And one goat for a sin offering; beside the continual -burnt offering, and his meat offering, and his drink offering. - -29:39 These things ye shall do unto the LORD in your set feasts, -beside your vows, and your freewill offerings, for your burnt -offerings, and for your meat offerings, and for your drink offerings, -and for your peace offerings. - -29:40 And Moses told the children of Israel according to all that the -LORD commanded Moses. - -30:1 And Moses spake unto the heads of the tribes concerning the -children of Israel, saying, This is the thing which the LORD hath -commanded. - -30:2 If a man vow a vow unto the LORD, or swear an oath to bind his -soul with a bond; he shall not break his word, he shall do according -to all that proceedeth out of his mouth. - -30:3 If a woman also vow a vow unto the LORD, and bind herself by a -bond, being in her father's house in her youth; 30:4 And her father -hear her vow, and her bond wherewith she hath bound her soul, and her -father shall hold his peace at her; then all her vows shall stand, and -every bond wherewith she hath bound her soul shall stand. - -30:5 But if her father disallow her in the day that he heareth; not -any of her vows, or of her bonds wherewith she hath bound her soul, -shall stand: and the LORD shall forgive her, because her father -disallowed her. - -30:6 And if she had at all an husband, when she vowed, or uttered -ought out of her lips, wherewith she bound her soul; 30:7 And her -husband heard it, and held his peace at her in the day that he heard -it: then her vows shall stand, and her bonds wherewith she bound her -soul shall stand. - -30:8 But if her husband disallowed her on the day that he heard it; -then he shall make her vow which she vowed, and that which she uttered -with her lips, wherewith she bound her soul, of none effect: and the -LORD shall forgive her. - -30:9 But every vow of a widow, and of her that is divorced, wherewith -they have bound their souls, shall stand against her. - -30:10 And if she vowed in her husband's house, or bound her soul by a -bond with an oath; 30:11 And her husband heard it, and held his peace -at her, and disallowed her not: then all her vows shall stand, and -every bond wherewith she bound her soul shall stand. - -30:12 But if her husband hath utterly made them void on the day he -heard them; then whatsoever proceeded out of her lips concerning her -vows, or concerning the bond of her soul, shall not stand: her husband -hath made them void; and the LORD shall forgive her. - -30:13 Every vow, and every binding oath to afflict the soul, her -husband may establish it, or her husband may make it void. - -30:14 But if her husband altogether hold his peace at her from day to -day; then he establisheth all her vows, or all her bonds, which are -upon her: he confirmeth them, because he held his peace at her in the -day that he heard them. - -30:15 But if he shall any ways make them void after that he hath heard -them; then he shall bear her iniquity. - -30:16 These are the statutes, which the LORD commanded Moses, between -a man and his wife, between the father and his daughter, being yet in -her youth in her father's house. - -31:1 And the LORD spake unto Moses, saying, 31:2 Avenge the children -of Israel of the Midianites: afterward shalt thou be gathered unto thy -people. - -31:3 And Moses spake unto the people, saying, Arm some of yourselves -unto the war, and let them go against the Midianites, and avenge the -LORD of Midian. - -31:4 Of every tribe a thousand, throughout all the tribes of Israel, -shall ye send to the war. - -31:5 So there were delivered out of the thousands of Israel, a -thousand of every tribe, twelve thousand armed for war. - -31:6 And Moses sent them to the war, a thousand of every tribe, them -and Phinehas the son of Eleazar the priest, to the war, with the holy -instruments, and the trumpets to blow in his hand. - -31:7 And they warred against the Midianites, as the LORD commanded -Moses; and they slew all the males. - -31:8 And they slew the kings of Midian, beside the rest of them that -were slain; namely, Evi, and Rekem, and Zur, and Hur, and Reba, five -kings of Midian: Balaam also the son of Beor they slew with the sword. - -31:9 And the children of Israel took all the women of Midian captives, -and their little ones, and took the spoil of all their cattle, and all -their flocks, and all their goods. - -31:10 And they burnt all their cities wherein they dwelt, and all -their goodly castles, with fire. - -31:11 And they took all the spoil, and all the prey, both of men and -of beasts. - -31:12 And they brought the captives, and the prey, and the spoil, unto -Moses, and Eleazar the priest, and unto the congregation of the -children of Israel, unto the camp at the plains of Moab, which are by -Jordan near Jericho. - -31:13 And Moses, and Eleazar the priest, and all the princes of the -congregation, went forth to meet them without the camp. - -31:14 And Moses was wroth with the officers of the host, with the -captains over thousands, and captains over hundreds, which came from -the battle. - -31:15 And Moses said unto them, Have ye saved all the women alive? -31:16 Behold, these caused the children of Israel, through the counsel -of Balaam, to commit trespass against the LORD in the matter of Peor, -and there was a plague among the congregation of the LORD. - -31:17 Now therefore kill every male among the little ones, and kill -every woman that hath known man by lying with him. - -31:18 But all the women children, that have not known a man by lying -with him, keep alive for yourselves. - -31:19 And do ye abide without the camp seven days: whosoever hath -killed any person, and whosoever hath touched any slain, purify both -yourselves and your captives on the third day, and on the seventh day. - -31:20 And purify all your raiment, and all that is made of skins, and -all work of goats' hair, and all things made of wood. - -31:21 And Eleazar the priest said unto the men of war which went to -the battle, This is the ordinance of the law which the LORD commanded -Moses; 31:22 Only the gold, and the silver, the brass, the iron, the -tin, and the lead, 31:23 Every thing that may abide the fire, ye shall -make it go through the fire, and it shall be clean: nevertheless it -shall be purified with the water of separation: and all that abideth -not the fire ye shall make go through the water. - -31:24 And ye shall wash your clothes on the seventh day, and ye shall -be clean, and afterward ye shall come into the camp. - -31:25 And the LORD spake unto Moses, saying, 31:26 Take the sum of the -prey that was taken, both of man and of beast, thou, and Eleazar the -priest, and the chief fathers of the congregation: 31:27 And divide -the prey into two parts; between them that took the war upon them, who -went out to battle, and between all the congregation: 31:28 And levy a -tribute unto the Lord of the men of war which went out to battle: one -soul of five hundred, both of the persons, and of the beeves, and of -the asses, and of the sheep: 31:29 Take it of their half, and give it -unto Eleazar the priest, for an heave offering of the LORD. - -31:30 And of the children of Israel's half, thou shalt take one -portion of fifty, of the persons, of the beeves, of the asses, and of -the flocks, of all manner of beasts, and give them unto the Levites, -which keep the charge of the tabernacle of the LORD. - -31:31 And Moses and Eleazar the priest did as the LORD commanded -Moses. - -31:32 And the booty, being the rest of the prey which the men of war -had caught, was six hundred thousand and seventy thousand and five -thousand sheep, 31:33 And threescore and twelve thousand beeves, 31:34 -And threescore and one thousand asses, 31:35 And thirty and two -thousand persons in all, of women that had not known man by lying with -him. - -31:36 And the half, which was the portion of them that went out to -war, was in number three hundred thousand and seven and thirty -thousand and five hundred sheep: 31:37 And the LORD's tribute of the -sheep was six hundred and threescore and fifteen. - -31:38 And the beeves were thirty and six thousand; of which the LORD's -tribute was threescore and twelve. - -31:39 And the asses were thirty thousand and five hundred; of which -the LORD's tribute was threescore and one. - -31:40 And the persons were sixteen thousand; of which the LORD's -tribute was thirty and two persons. - -31:41 And Moses gave the tribute, which was the LORD's heave offering, -unto Eleazar the priest, as the LORD commanded Moses. - -31:42 And of the children of Israel's half, which Moses divided from -the men that warred, 31:43 (Now the half that pertained unto the -congregation was three hundred thousand and thirty thousand and seven -thousand and five hundred sheep, 31:44 And thirty and six thousand -beeves, 31:45 And thirty thousand asses and five hundred, 31:46 And -sixteen thousand persons;) 31:47 Even of the children of Israel's -half, Moses took one portion of fifty, both of man and of beast, and -gave them unto the Levites, which kept the charge of the tabernacle of -the LORD; as the LORD commanded Moses. - -31:48 And the officers which were over thousands of the host, the -captains of thousands, and captains of hundreds, came near unto Moses: -31:49 And they said unto Moses, Thy servants have taken the sum of the -men of war which are under our charge, and there lacketh not one man -of us. - -31:50 We have therefore brought an oblation for the LORD, what every -man hath gotten, of jewels of gold, chains, and bracelets, rings, -earrings, and tablets, to make an atonement for our souls before the -LORD. - -31:51 And Moses and Eleazar the priest took the gold of them, even all -wrought jewels. - -31:52 And all the gold of the offering that they offered up to the -LORD, of the captains of thousands, and of the captains of hundreds, -was sixteen thousand seven hundred and fifty shekels. - -31:53 (For the men of war had taken spoil, every man for himself.) -31:54 And Moses and Eleazar the priest took the gold of the captains -of thousands and of hundreds, and brought it into the tabernacle of -the congregation, for a memorial for the children of Israel before the -LORD. - -32:1 Now the children of Reuben and the children of Gad had a very -great multitude of cattle: and when they saw the land of Jazer, and -the land of Gilead, that, behold, the place was a place for cattle; -32:2 The children of Gad and the children of Reuben came and spake -unto Moses, and to Eleazar the priest, and unto the princes of the -congregation, saying, 32:3 Ataroth, and Dibon, and Jazer, and Nimrah, -and Heshbon, and Elealeh, and Shebam, and Nebo, and Beon, 32:4 Even -the country which the LORD smote before the congregation of Israel, is -a land for cattle, and thy servants have cattle: 32:5 Wherefore, said -they, if we have found grace in thy sight, let this land be given unto -thy servants for a possession, and bring us not over Jordan. - -32:6 And Moses said unto the children of Gad and to the children of -Reuben, Shall your brethren go to war, and shall ye sit here? 32:7 -And wherefore discourage ye the heart of the children of Israel from -going over into the land which the LORD hath given them? 32:8 Thus -did your fathers, when I sent them from Kadeshbarnea to see the land. - -32:9 For when they went up unto the valley of Eshcol, and saw the -land, they discouraged the heart of the children of Israel, that they -should not go into the land which the LORD had given them. - -32:10 And the LORD's anger was kindled the same time, and he sware, -saying, 32:11 Surely none of the men that came up out of Egypt, from -twenty years old and upward, shall see the land which I sware unto -Abraham, unto Isaac, and unto Jacob; because they have not wholly -followed me: 32:12 Save Caleb the son of Jephunneh the Kenezite, and -Joshua the son of Nun: for they have wholly followed the LORD. - -32:13 And the LORD's anger was kindled against Israel, and he made -them wander in the wilderness forty years, until all the generation, -that had done evil in the sight of the LORD, was consumed. - -32:14 And, behold, ye are risen up in your fathers' stead, an increase -of sinful men, to augment yet the fierce anger of the LORD toward -Israel. - -32:15 For if ye turn away from after him, he will yet again leave them -in the wilderness; and ye shall destroy all this people. - -32:16 And they came near unto him, and said, We will build sheepfolds -here for our cattle, and cities for our little ones: 32:17 But we -ourselves will go ready armed before the children of Israel, until we -have brought them unto their place: and our little ones shall dwell in -the fenced cities because of the inhabitants of the land. - -32:18 We will not return unto our houses, until the children of Israel -have inherited every man his inheritance. - -32:19 For we will not inherit with them on yonder side Jordan, or -forward; because our inheritance is fallen to us on this side Jordan -eastward. - -32:20 And Moses said unto them, If ye will do this thing, if ye will -go armed before the LORD to war, 32:21 And will go all of you armed -over Jordan before the LORD, until he hath driven out his enemies from -before him, 32:22 And the land be subdued before the LORD: then -afterward ye shall return, and be guiltless before the LORD, and -before Israel; and this land shall be your possession before the LORD. - -32:23 But if ye will not do so, behold, ye have sinned against the -LORD: and be sure your sin will find you out. - -32:24 Build you cities for your little ones, and folds for your sheep; -and do that which hath proceeded out of your mouth. - -32:25 And the children of Gad and the children of Reuben spake unto -Moses, saying, Thy servants will do as my lord commandeth. - -32:26 Our little ones, our wives, our flocks, and all our cattle, -shall be there in the cities of Gilead: 32:27 But thy servants will -pass over, every man armed for war, before the LORD to battle, as my -lord saith. - -32:28 So concerning them Moses commanded Eleazar the priest, and -Joshua the son of Nun, and the chief fathers of the tribes of the -children of Israel: 32:29 And Moses said unto them, If the children of -Gad and the children of Reuben will pass with you over Jordan, every -man armed to battle, before the LORD, and the land shall be subdued -before you; then ye shall give them the land of Gilead for a -possession: 32:30 But if they will not pass over with you armed, they -shall have possessions among you in the land of Canaan. - -32:31 And the children of Gad and the children of Reuben answered, -saying, As the LORD hath said unto thy servants, so will we do. - -32:32 We will pass over armed before the LORD into the land of Canaan, -that the possession of our inheritance on this side Jordan may be -ours. - -32:33 And Moses gave unto them, even to the children of Gad, and to -the children of Reuben, and unto half the tribe of Manasseh the son of -Joseph, the kingdom of Sihon king of the Amorites, and the kingdom of -Og king of Bashan, the land, with the cities thereof in the coasts, -even the cities of the country round about. - -32:34 And the children of Gad built Dibon, and Ataroth, and Aroer, -32:35 And Atroth, Shophan, and Jaazer, and Jogbehah, 32:36 And -Bethnimrah, and Bethharan, fenced cities: and folds for sheep. - -32:37 And the children of Reuben built Heshbon, and Elealeh, and -Kirjathaim, 32:38 And Nebo, and Baalmeon, (their names being changed,) -and Shibmah: and gave other names unto the cities which they builded. - -32:39 And the children of Machir the son of Manasseh went to Gilead, -and took it, and dispossessed the Amorite which was in it. - -32:40 And Moses gave Gilead unto Machir the son of Manasseh; and he -dwelt therein. - -32:41 And Jair the son of Manasseh went and took the small towns -thereof, and called them Havothjair. - -32:42 And Nobah went and took Kenath, and the villages thereof, and -called it Nobah, after his own name. - -33:1 These are the journeys of the children of Israel, which went -forth out of the land of Egypt with their armies under the hand of -Moses and Aaron. - -33:2 And Moses wrote their goings out according to their journeys by -the commandment of the LORD: and these are their journeys according to -their goings out. - -33:3 And they departed from Rameses in the first month, on the -fifteenth day of the first month; on the morrow after the passover the -children of Israel went out with an high hand in the sight of all the -Egyptians. - -33:4 For the Egyptians buried all their firstborn, which the LORD had -smitten among them: upon their gods also the LORD executed judgments. - -33:5 And the children of Israel removed from Rameses, and pitched in -Succoth. - -33:6 And they departed from Succoth, and pitched in Etham, which is in -the edge of the wilderness. - -33:7 And they removed from Etham, and turned again unto Pihahiroth, -which is before Baalzephon: and they pitched before Migdol. - -33:8 And they departed from before Pihahiroth, and passed through the -midst of the sea into the wilderness, and went three days' journey in -the wilderness of Etham, and pitched in Marah. - -33:9 And they removed from Marah, and came unto Elim: and in Elim were -twelve fountains of water, and threescore and ten palm trees; and they -pitched there. - -33:10 And they removed from Elim, and encamped by the Red sea. - -33:11 And they removed from the Red sea, and encamped in the -wilderness of Sin. - -33:12 And they took their journey out of the wilderness of Sin, and -encamped in Dophkah. - -33:13 And they departed from Dophkah, and encamped in Alush. - -33:14 And they removed from Alush, and encamped at Rephidim, where was -no water for the people to drink. - -33:15 And they departed from Rephidim, and pitched in the wilderness -of Sinai. - -33:16 And they removed from the desert of Sinai, and pitched at -Kibrothhattaavah. - -33:17 And they departed from Kibrothhattaavah, and encamped at -Hazeroth. - -33:18 And they departed from Hazeroth, and pitched in Rithmah. - -33:19 And they departed from Rithmah, and pitched at Rimmonparez. - -33:20 And they departed from Rimmonparez, and pitched in Libnah. - -33:21 And they removed from Libnah, and pitched at Rissah. - -33:22 And they journeyed from Rissah, and pitched in Kehelathah. - -33:23 And they went from Kehelathah, and pitched in mount Shapher. - -33:24 And they removed from mount Shapher, and encamped in Haradah. - -33:25 And they removed from Haradah, and pitched in Makheloth. - -33:26 And they removed from Makheloth, and encamped at Tahath. - -33:27 And they departed from Tahath, and pitched at Tarah. - -33:28 And they removed from Tarah, and pitched in Mithcah. - -33:29 And they went from Mithcah, and pitched in Hashmonah. - -33:30 And they departed from Hashmonah, and encamped at Moseroth. - -33:31 And they departed from Moseroth, and pitched in Benejaakan. - -33:32 And they removed from Benejaakan, and encamped at Horhagidgad. - -33:33 And they went from Horhagidgad, and pitched in Jotbathah. - -33:34 And they removed from Jotbathah, and encamped at Ebronah. - -33:35 And they departed from Ebronah, and encamped at Eziongaber. - -33:36 And they removed from Eziongaber, and pitched in the wilderness -of Zin, which is Kadesh. - -33:37 And they removed from Kadesh, and pitched in mount Hor, in the -edge of the land of Edom. - -33:38 And Aaron the priest went up into mount Hor at the commandment -of the LORD, and died there, in the fortieth year after the children -of Israel were come out of the land of Egypt, in the first day of the -fifth month. - -33:39 And Aaron was an hundred and twenty and three years old when he -died in mount Hor. - -33:40 And king Arad the Canaanite, which dwelt in the south in the -land of Canaan, heard of the coming of the children of Israel. - -33:41 And they departed from mount Hor, and pitched in Zalmonah. - -33:42 And they departed from Zalmonah, and pitched in Punon. - -33:43 And they departed from Punon, and pitched in Oboth. - -33:44 And they departed from Oboth, and pitched in Ijeabarim, in the -border of Moab. - -33:45 And they departed from Iim, and pitched in Dibongad. - -33:46 And they removed from Dibongad, and encamped in Almondiblathaim. - -33:47 And they removed from Almondiblathaim, and pitched in the -mountains of Abarim, before Nebo. - -33:48 And they departed from the mountains of Abarim, and pitched in -the plains of Moab by Jordan near Jericho. - -33:49 And they pitched by Jordan, from Bethjesimoth even unto -Abelshittim in the plains of Moab. - -33:50 And the LORD spake unto Moses in the plains of Moab by Jordan -near Jericho, saying, 33:51 Speak unto the children of Israel, and say -unto them, When ye are passed over Jordan into the land of Canaan; -33:52 Then ye shall drive out all the inhabitants of the land from -before you, and destroy all their pictures, and destroy all their -molten images, and quite pluck down all their high places: 33:53 And -ye shall dispossess the inhabitants of the land, and dwell therein: -for I have given you the land to possess it. - -33:54 And ye shall divide the land by lot for an inheritance among -your families: and to the more ye shall give the more inheritance, and -to the fewer ye shall give the less inheritance: every man's -inheritance shall be in the place where his lot falleth; according to -the tribes of your fathers ye shall inherit. - -33:55 But if ye will not drive out the inhabitants of the land from -before you; then it shall come to pass, that those which ye let remain -of them shall be pricks in your eyes, and thorns in your sides, and -shall vex you in the land wherein ye dwell. - -33:56 Moreover it shall come to pass, that I shall do unto you, as I -thought to do unto them. - -34:1 And the LORD spake unto Moses, saying, 34:2 Command the children -of Israel, and say unto them, When ye come into the land of Canaan; -(this is the land that shall fall unto you for an inheritance, even -the land of Canaan with the coasts thereof:) 34:3 Then your south -quarter shall be from the wilderness of Zin along by the coast of -Edom, and your south border shall be the outmost coast of the salt sea -eastward: 34:4 And your border shall turn from the south to the ascent -of Akrabbim, and pass on to Zin: and the going forth thereof shall be -from the south to Kadeshbarnea, and shall go on to Hazaraddar, and -pass on to Azmon: 34:5 And the border shall fetch a compass from Azmon -unto the river of Egypt, and the goings out of it shall be at the sea. - -34:6 And as for the western border, ye shall even have the great sea -for a border: this shall be your west border. - -34:7 And this shall be your north border: from the great sea ye shall -point out for you mount Hor: 34:8 From mount Hor ye shall point out -your border unto the entrance of Hamath; and the goings forth of the -border shall be to Zedad: 34:9 And the border shall go on to Ziphron, -and the goings out of it shall be at Hazarenan: this shall be your -north border. - -34:10 And ye shall point out your east border from Hazarenan to -Shepham: 34:11 And the coast shall go down from Shepham to Riblah, on -the east side of Ain; and the border shall descend, and shall reach -unto the side of the sea of Chinnereth eastward: 34:12 And the border -shall go down to Jordan, and the goings out of it shall be at the salt -sea: this shall be your land with the coasts thereof round about. - -34:13 And Moses commanded the children of Israel, saying, This is the -land which ye shall inherit by lot, which the LORD commanded to give -unto the nine tribes, and to the half tribe: 34:14 For the tribe of -the children of Reuben according to the house of their fathers, and -the tribe of the children of Gad according to the house of their -fathers, have received their inheritance; and half the tribe of -Manasseh have received their inheritance: 34:15 The two tribes and the -half tribe have received their inheritance on this side Jordan near -Jericho eastward, toward the sunrising. - -34:16 And the LORD spake unto Moses, saying, 34:17 These are the names -of the men which shall divide the land unto you: Eleazar the priest, -and Joshua the son of Nun. - -34:18 And ye shall take one prince of every tribe, to divide the land -by inheritance. - -34:19 And the names of the men are these: Of the tribe of Judah, Caleb -the son of Jephunneh. - -34:20 And of the tribe of the children of Simeon, Shemuel the son of -Ammihud. - -34:21 Of the tribe of Benjamin, Elidad the son of Chislon. - -34:22 And the prince of the tribe of the children of Dan, Bukki the -son of Jogli. - -34:23 The prince of the children of Joseph, for the tribe of the -children of Manasseh, Hanniel the son of Ephod. - -34:24 And the prince of the tribe of the children of Ephraim, Kemuel -the son of Shiphtan. - -34:25 And the prince of the tribe of the children of Zebulun, -Elizaphan the son of Parnach. - -34:26 And the prince of the tribe of the children of Issachar, Paltiel -the son of Azzan. - -34:27 And the prince of the tribe of the children of Asher, Ahihud the -son of Shelomi. - -34:28 And the prince of the tribe of the children of Naphtali, Pedahel -the son of Ammihud. - -34:29 These are they whom the LORD commanded to divide the inheritance -unto the children of Israel in the land of Canaan. - -35:1 And the LORD spake unto Moses in the plains of Moab by Jordan -near Jericho, saying, 35:2 Command the children of Israel, that they -give unto the Levites of the inheritance of their possession cities to -dwell in; and ye shall give also unto the Levites suburbs for the -cities round about them. - -35:3 And the cities shall they have to dwell in; and the suburbs of -them shall be for their cattle, and for their goods, and for all their -beasts. - -35:4 And the suburbs of the cities, which ye shall give unto the -Levites, shall reach from the wall of the city and outward a thousand -cubits round about. - -35:5 And ye shall measure from without the city on the east side two -thousand cubits, and on the south side two thousand cubits, and on the -west side two thousand cubits, and on the north side two thousand -cubits; and the city shall be in the midst: this shall be to them the -suburbs of the cities. - -35:6 And among the cities which ye shall give unto the Levites there -shall be six cities for refuge, which ye shall appoint for the -manslayer, that he may flee thither: and to them ye shall add forty -and two cities. - -35:7 So all the cities which ye shall give to the Levites shall be -forty and eight cities: them shall ye give with their suburbs. - -35:8 And the cities which ye shall give shall be of the possession of -the children of Israel: from them that have many ye shall give many; -but from them that have few ye shall give few: every one shall give of -his cities unto the Levites according to his inheritance which he -inheriteth. - -35:9 And the LORD spake unto Moses, saying, 35:10 Speak unto the -children of Israel, and say unto them, When ye be come over Jordan -into the land of Canaan; 35:11 Then ye shall appoint you cities to be -cities of refuge for you; that the slayer may flee thither, which -killeth any person at unawares. - -35:12 And they shall be unto you cities for refuge from the avenger; -that the manslayer die not, until he stand before the congregation in -judgment. - -35:13 And of these cities which ye shall give six cities shall ye have -for refuge. - -35:14 Ye shall give three cities on this side Jordan, and three cities -shall ye give in the land of Canaan, which shall be cities of refuge. - -35:15 These six cities shall be a refuge, both for the children of -Israel, and for the stranger, and for the sojourner among them: that -every one that killeth any person unawares may flee thither. - -35:16 And if he smite him with an instrument of iron, so that he die, -he is a murderer: the murderer shall surely be put to death. - -35:17 And if he smite him with throwing a stone, wherewith he may die, -and he die, he is a murderer: the murderer shall surely be put to -death. - -35:18 Or if he smite him with an hand weapon of wood, wherewith he may -die, and he die, he is a murderer: the murderer shall surely be put to -death. - -35:19 The revenger of blood himself shall slay the murderer: when he -meeteth him, he shall slay him. - -35:20 But if he thrust him of hatred, or hurl at him by laying of -wait, that he die; 35:21 Or in enmity smite him with his hand, that he -die: he that smote him shall surely be put to death; for he is a -murderer: the revenger of blood shall slay the murderer, when he -meeteth him. - -35:22 But if he thrust him suddenly without enmity, or have cast upon -him any thing without laying of wait, 35:23 Or with any stone, -wherewith a man may die, seeing him not, and cast it upon him, that he -die, and was not his enemy, neither sought his harm: 35:24 Then the -congregation shall judge between the slayer and the revenger of blood -according to these judgments: 35:25 And the congregation shall deliver -the slayer out of the hand of the revenger of blood, and the -congregation shall restore him to the city of his refuge, whither he -was fled: and he shall abide in it unto the death of the high priest, -which was anointed with the holy oil. - -35:26 But if the slayer shall at any time come without the border of -the city of his refuge, whither he was fled; 35:27 And the revenger of -blood find him without the borders of the city of his refuge, and the -revenger of blood kill the slayer; he shall not be guilty of blood: -35:28 Because he should have remained in the city of his refuge until -the death of the high priest: but after the death of the high priest -the slayer shall return into the land of his possession. - -35:29 So these things shall be for a statute of judgment unto you -throughout your generations in all your dwellings. - -35:30 Whoso killeth any person, the murderer shall be put to death by -the mouth of witnesses: but one witness shall not testify against any -person to cause him to die. - -35:31 Moreover ye shall take no satisfaction for the life of a -murderer, which is guilty of death: but he shall be surely put to -death. - -35:32 And ye shall take no satisfaction for him that is fled to the -city of his refuge, that he should come again to dwell in the land, -until the death of the priest. - -35:33 So ye shall not pollute the land wherein ye are: for blood it -defileth the land: and the land cannot be cleansed of the blood that -is shed therein, but by the blood of him that shed it. - -35:34 Defile not therefore the land which ye shall inhabit, wherein I -dwell: for I the LORD dwell among the children of Israel. - -36:1 And the chief fathers of the families of the children of Gilead, -the son of Machir, the son of Manasseh, of the families of the sons of -Joseph, came near, and spake before Moses, and before the princes, the -chief fathers of the children of Israel: 36:2 And they said, The LORD -commanded my lord to give the land for an inheritance by lot to the -children of Israel: and my lord was commanded by the LORD to give the -inheritance of Zelophehad our brother unto his daughters. - -36:3 And if they be married to any of the sons of the other tribes of -the children of Israel, then shall their inheritance be taken from the -inheritance of our fathers, and shall be put to the inheritance of the -tribe whereunto they are received: so shall it be taken from the lot -of our inheritance. - -36:4 And when the jubile of the children of Israel shall be, then -shall their inheritance be put unto the inheritance of the tribe -whereunto they are received: so shall their inheritance be taken away -from the inheritance of the tribe of our fathers. - -36:5 And Moses commanded the children of Israel according to the word -of the LORD, saying, The tribe of the sons of Joseph hath said well. - -36:6 This is the thing which the LORD doth command concerning the -daughters of Zelophehad, saying, Let them marry to whom they think -best; only to the family of the tribe of their father shall they -marry. - -36:7 So shall not the inheritance of the children of Israel remove -from tribe to tribe: for every one of the children of Israel shall -keep himself to the inheritance of the tribe of his fathers. - -36:8 And every daughter, that possesseth an inheritance in any tribe -of the children of Israel, shall be wife unto one of the family of the -tribe of her father, that the children of Israel may enjoy every man -the inheritance of his fathers. - -36:9 Neither shall the inheritance remove from one tribe to another -tribe; but every one of the tribes of the children of Israel shall -keep himself to his own inheritance. - -36:10 Even as the LORD commanded Moses, so did the daughters of -Zelophehad: 36:11 For Mahlah, Tirzah, and Hoglah, and Milcah, and -Noah, the daughters of Zelophehad, were married unto their father's -brothers' sons: 36:12 And they were married into the families of the -sons of Manasseh the son of Joseph, and their inheritance remained in -the tribe of the family of their father. - -36:13 These are the commandments and the judgments, which the LORD -commanded by the hand of Moses unto the children of Israel in the -plains of Moab by Jordan near Jericho. - - - - -The Fifth Book of Moses: Called Deuteronomy - - -1:1 These be the words which Moses spake unto all Israel on this side -Jordan in the wilderness, in the plain over against the Red sea, -between Paran, and Tophel, and Laban, and Hazeroth, and Dizahab. - -1:2 (There are eleven days' journey from Horeb by the way of mount -Seir unto Kadeshbarnea.) 1:3 And it came to pass in the fortieth -year, in the eleventh month, on the first day of the month, that Moses -spake unto the children of Israel, according unto all that the LORD -had given him in commandment unto them; 1:4 After he had slain Sihon -the king of the Amorites, which dwelt in Heshbon, and Og the king of -Bashan, which dwelt at Astaroth in Edrei: 1:5 On this side Jordan, in -the land of Moab, began Moses to declare this law, saying, 1:6 The -LORD our God spake unto us in Horeb, saying, Ye have dwelt long enough -in this mount: 1:7 Turn you, and take your journey, and go to the -mount of the Amorites, and unto all the places nigh thereunto, in the -plain, in the hills, and in the vale, and in the south, and by the sea -side, to the land of the Canaanites, and unto Lebanon, unto the great -river, the river Euphrates. - -1:8 Behold, I have set the land before you: go in and possess the land -which the LORD sware unto your fathers, Abraham, Isaac, and Jacob, to -give unto them and to their seed after them. - -1:9 And I spake unto you at that time, saying, I am not able to bear -you myself alone: 1:10 The LORD your God hath multiplied you, and, -behold, ye are this day as the stars of heaven for multitude. - -1:11 (The LORD God of your fathers make you a thousand times so many -more as ye are, and bless you, as he hath promised you!) 1:12 How can -I myself alone bear your cumbrance, and your burden, and your strife? -1:13 Take you wise men, and understanding, and known among your -tribes, and I will make them rulers over you. - -1:14 And ye answered me, and said, The thing which thou hast spoken is -good for us to do. - -1:15 So I took the chief of your tribes, wise men, and known, and made -them heads over you, captains over thousands, and captains over -hundreds, and captains over fifties, and captains over tens, and -officers among your tribes. - -1:16 And I charged your judges at that time, saying, Hear the causes -between your brethren, and judge righteously between every man and his -brother, and the stranger that is with him. - -1:17 Ye shall not respect persons in judgment; but ye shall hear the -small as well as the great; ye shall not be afraid of the face of man; -for the judgment is God's: and the cause that is too hard for you, -bring it unto me, and I will hear it. - -1:18 And I commanded you at that time all the things which ye should -do. - -1:19 And when we departed from Horeb, we went through all that great -and terrible wilderness, which ye saw by the way of the mountain of -the Amorites, as the LORD our God commanded us; and we came to -Kadeshbarnea. - -1:20 And I said unto you, Ye are come unto the mountain of the -Amorites, which the LORD our God doth give unto us. - -1:21 Behold, the LORD thy God hath set the land before thee: go up and -possess it, as the LORD God of thy fathers hath said unto thee; fear -not, neither be discouraged. - -1:22 And ye came near unto me every one of you, and said, We will send -men before us, and they shall search us out the land, and bring us -word again by what way we must go up, and into what cities we shall -come. - -1:23 And the saying pleased me well: and I took twelve men of you, one -of a tribe: 1:24 And they turned and went up into the mountain, and -came unto the valley of Eshcol, and searched it out. - -1:25 And they took of the fruit of the land in their hands, and -brought it down unto us, and brought us word again, and said, It is a -good land which the LORD our God doth give us. - -1:26 Notwithstanding ye would not go up, but rebelled against the -commandment of the LORD your God: 1:27 And ye murmured in your tents, -and said, Because the LORD hated us, he hath brought us forth out of -the land of Egypt, to deliver us into the hand of the Amorites, to -destroy us. - -1:28 Whither shall we go up? our brethren have discouraged our heart, -saying, The people is greater and taller than we; the cities are great -and walled up to heaven; and moreover we have seen the sons of the -Anakims there. - -1:29 Then I said unto you, Dread not, neither be afraid of them. - -1:30 The LORD your God which goeth before you, he shall fight for you, -according to all that he did for you in Egypt before your eyes; 1:31 -And in the wilderness, where thou hast seen how that the LORD thy God -bare thee, as a man doth bear his son, in all the way that ye went, -until ye came into this place. - -1:32 Yet in this thing ye did not believe the LORD your God, 1:33 Who -went in the way before you, to search you out a place to pitch your -tents in, in fire by night, to shew you by what way ye should go, and -in a cloud by day. - -1:34 And the LORD heard the voice of your words, and was wroth, and -sware, saying, 1:35 Surely there shall not one of these men of this -evil generation see that good land, which I sware to give unto your -fathers. - -1:36 Save Caleb the son of Jephunneh; he shall see it, and to him will -I give the land that he hath trodden upon, and to his children, -because he hath wholly followed the LORD. - -1:37 Also the LORD was angry with me for your sakes, saying, Thou also -shalt not go in thither. - -1:38 But Joshua the son of Nun, which standeth before thee, he shall -go in thither: encourage him: for he shall cause Israel to inherit it. - -1:39 Moreover your little ones, which ye said should be a prey, and -your children, which in that day had no knowledge between good and -evil, they shall go in thither, and unto them will I give it, and they -shall possess it. - -1:40 But as for you, turn you, and take your journey into the -wilderness by the way of the Red sea. - -1:41 Then ye answered and said unto me, We have sinned against the -LORD, we will go up and fight, according to all that the LORD our God -commanded us. - -And when ye had girded on every man his weapons of war, ye were ready -to go up into the hill. - -1:42 And the LORD said unto me, Say unto them. Go not up, neither -fight; for I am not among you; lest ye be smitten before your enemies. - -1:43 So I spake unto you; and ye would not hear, but rebelled against -the commandment of the LORD, and went presumptuously up into the hill. - -1:44 And the Amorites, which dwelt in that mountain, came out against -you, and chased you, as bees do, and destroyed you in Seir, even unto -Hormah. - -1:45 And ye returned and wept before the LORD; but the LORD would not -hearken to your voice, nor give ear unto you. - -1:46 So ye abode in Kadesh many days, according unto the days that ye -abode there. - -2:1 Then we turned, and took our journey into the wilderness by the -way of the Red sea, as the LORD spake unto me: and we compassed mount -Seir many days. - -2:2 And the LORD spake unto me, saying, 2:3 Ye have compassed this -mountain long enough: turn you northward. - -2:4 And command thou the people, saying, Ye are to pass through the -coast of your brethren the children of Esau, which dwell in Seir; and -they shall be afraid of you: take ye good heed unto yourselves -therefore: 2:5 Meddle not with them; for I will not give you of their -land, no, not so much as a foot breadth; because I have given mount -Seir unto Esau for a possession. - -2:6 Ye shall buy meat of them for money, that ye may eat; and ye shall -also buy water of them for money, that ye may drink. - -2:7 For the LORD thy God hath blessed thee in all the works of thy -hand: he knoweth thy walking through this great wilderness: these -forty years the LORD thy God hath been with thee; thou hast lacked -nothing. - -2:8 And when we passed by from our brethren the children of Esau, -which dwelt in Seir, through the way of the plain from Elath, and from -Eziongaber, we turned and passed by the way of the wilderness of Moab. - -2:9 And the LORD said unto me, Distress not the Moabites, neither -contend with them in battle: for I will not give thee of their land -for a possession; because I have given Ar unto the children of Lot for -a possession. - -2:10 The Emims dwelt therein in times past, a people great, and many, -and tall, as the Anakims; 2:11 Which also were accounted giants, as -the Anakims; but the Moabites called them Emims. - -2:12 The Horims also dwelt in Seir beforetime; but the children of -Esau succeeded them, when they had destroyed them from before them, -and dwelt in their stead; as Israel did unto the land of his -possession, which the LORD gave unto them. - -2:13 Now rise up, said I, and get you over the brook Zered. And we -went over the brook Zered. - -2:14 And the space in which we came from Kadeshbarnea, until we were -come over the brook Zered, was thirty and eight years; until all the -generation of the men of war were wasted out from among the host, as -the LORD sware unto them. - -2:15 For indeed the hand of the LORD was against them, to destroy them -from among the host, until they were consumed. - -2:16 So it came to pass, when all the men of war were consumed and -dead from among the people, 2:17 That the LORD spake unto me, saying, -2:18 Thou art to pass over through Ar, the coast of Moab, this day: -2:19 And when thou comest nigh over against the children of Ammon, -distress them not, nor meddle with them: for I will not give thee of -the land of the children of Ammon any possession; because I have given -it unto the children of Lot for a possession. - -2:20 (That also was accounted a land of giants: giants dwelt therein -in old time; and the Ammonites call them Zamzummims; 2:21 A people -great, and many, and tall, as the Anakims; but the LORD destroyed them -before them; and they succeeded them, and dwelt in their stead: 2:22 -As he did to the children of Esau, which dwelt in Seir, when he -destroyed the Horims from before them; and they succeeded them, and -dwelt in their stead even unto this day: 2:23 And the Avims which -dwelt in Hazerim, even unto Azzah, the Caphtorims, which came forth -out of Caphtor, destroyed them, and dwelt in their stead.) 2:24 Rise -ye up, take your journey, and pass over the river Arnon: behold, I -have given into thine hand Sihon the Amorite, king of Heshbon, and his -land: begin to possess it, and contend with him in battle. - -2:25 This day will I begin to put the dread of thee and the fear of -thee upon the nations that are under the whole heaven, who shall hear -report of thee, and shall tremble, and be in anguish because of thee. - -2:26 And I sent messengers out of the wilderness of Kedemoth unto -Sihon king of Heshbon with words of peace, saying, 2:27 Let me pass -through thy land: I will go along by the high way, I will neither turn -unto the right hand nor to the left. - -2:28 Thou shalt sell me meat for money, that I may eat; and give me -water for money, that I may drink: only I will pass through on my -feet; 2:29 (As the children of Esau which dwell in Seir, and the -Moabites which dwell in Ar, did unto me;) until I shall pass over -Jordan into the land which the LORD our God giveth us. - -2:30 But Sihon king of Heshbon would not let us pass by him: for the -LORD thy God hardened his spirit, and made his heart obstinate, that -he might deliver him into thy hand, as appeareth this day. - -2:31 And the LORD said unto me, Behold, I have begun to give Sihon and -his land before thee: begin to possess, that thou mayest inherit his -land. - -2:32 Then Sihon came out against us, he and all his people, to fight -at Jahaz. - -2:33 And the LORD our God delivered him before us; and we smote him, -and his sons, and all his people. - -2:34 And we took all his cities at that time, and utterly destroyed -the men, and the women, and the little ones, of every city, we left -none to remain: 2:35 Only the cattle we took for a prey unto -ourselves, and the spoil of the cities which we took. - -2:36 From Aroer, which is by the brink of the river of Arnon, and from -the city that is by the river, even unto Gilead, there was not one -city too strong for us: the LORD our God delivered all unto us: 2:37 -Only unto the land of the children of Ammon thou camest not, nor unto -any place of the river Jabbok, nor unto the cities in the mountains, -nor unto whatsoever the LORD our God forbad us. - -3:1 Then we turned, and went up the way to Bashan: and Og the king of -Bashan came out against us, he and all his people, to battle at Edrei. - -3:2 And the LORD said unto me, Fear him not: for I will deliver him, -and all his people, and his land, into thy hand; and thou shalt do -unto him as thou didst unto Sihon king of the Amorites, which dwelt at -Heshbon. - -3:3 So the LORD our God delivered into our hands Og also, the king of -Bashan, and all his people: and we smote him until none was left to -him remaining. - -3:4 And we took all his cities at that time, there was not a city -which we took not from them, threescore cities, all the region of -Argob, the kingdom of Og in Bashan. - -3:5 All these cities were fenced with high walls, gates, and bars; -beside unwalled towns a great many. - -3:6 And we utterly destroyed them, as we did unto Sihon king of -Heshbon, utterly destroying the men, women, and children, of every -city. - -3:7 But all the cattle, and the spoil of the cities, we took for a -prey to ourselves. - -3:8 And we took at that time out of the hand of the two kings of the -Amorites the land that was on this side Jordan, from the river of -Arnon unto mount Hermon; 3:9 (Which Hermon the Sidonians call Sirion; -and the Amorites call it Shenir;) 3:10 All the cities of the plain, -and all Gilead, and all Bashan, unto Salchah and Edrei, cities of the -kingdom of Og in Bashan. - -3:11 For only Og king of Bashan remained of the remnant of giants; -behold his bedstead was a bedstead of iron; is it not in Rabbath of -the children of Ammon? nine cubits was the length thereof, and four -cubits the breadth of it, after the cubit of a man. - -3:12 And this land, which we possessed at that time, from Aroer, which -is by the river Arnon, and half mount Gilead, and the cities thereof, -gave I unto the Reubenites and to the Gadites. - -3:13 And the rest of Gilead, and all Bashan, being the kingdom of Og, -gave I unto the half tribe of Manasseh; all the region of Argob, with -all Bashan, which was called the land of giants. - -3:14 Jair the son of Manasseh took all the country of Argob unto the -coasts of Geshuri and Maachathi; and called them after his own name, -Bashanhavothjair, unto this day. - -3:15 And I gave Gilead unto Machir. - -3:16 And unto the Reubenites and unto the Gadites I gave from Gilead -even unto the river Arnon half the valley, and the border even unto -the river Jabbok, which is the border of the children of Ammon; 3:17 -The plain also, and Jordan, and the coast thereof, from Chinnereth -even unto the sea of the plain, even the salt sea, under Ashdothpisgah -eastward. - -3:18 And I commanded you at that time, saying, The LORD your God hath -given you this land to possess it: ye shall pass over armed before -your brethren the children of Israel, all that are meet for the war. - -3:19 But your wives, and your little ones, and your cattle, (for I -know that ye have much cattle,) shall abide in your cities which I -have given you; 3:20 Until the LORD have given rest unto your -brethren, as well as unto you, and until they also possess the land -which the LORD your God hath given them beyond Jordan: and then shall -ye return every man unto his possession, which I have given you. - -3:21 And I commanded Joshua at that time, saying, Thine eyes have seen -all that the LORD your God hath done unto these two kings: so shall -the LORD do unto all the kingdoms whither thou passest. - -3:22 Ye shall not fear them: for the LORD your God he shall fight for -you. - -3:23 And I besought the LORD at that time, saying, 3:24 O Lord GOD, -thou hast begun to shew thy servant thy greatness, and thy mighty -hand: for what God is there in heaven or in earth, that can do -according to thy works, and according to thy might? 3:25 I pray thee, -let me go over, and see the good land that is beyond Jordan, that -goodly mountain, and Lebanon. - -3:26 But the LORD was wroth with me for your sakes, and would not hear -me: and the LORD said unto me, Let it suffice thee; speak no more unto -me of this matter. - -3:27 Get thee up into the top of Pisgah, and lift up thine eyes -westward, and northward, and southward, and eastward, and behold it -with thine eyes: for thou shalt not go over this Jordan. - -3:28 But charge Joshua, and encourage him, and strengthen him: for he -shall go over before this people, and he shall cause them to inherit -the land which thou shalt see. - -3:29 So we abode in the valley over against Bethpeor. - -4:1 Now therefore hearken, O Israel, unto the statutes and unto the -judgments, which I teach you, for to do them, that ye may live, and go -in and possess the land which the LORD God of your fathers giveth you. - -4:2 Ye shall not add unto the word which I command you, neither shall -ye diminish ought from it, that ye may keep the commandments of the -LORD your God which I command you. - -4:3 Your eyes have seen what the LORD did because of Baalpeor: for all -the men that followed Baalpeor, the LORD thy God hath destroyed them -from among you. - -4:4 But ye that did cleave unto the LORD your God are alive every one -of you this day. - -4:5 Behold, I have taught you statutes and judgments, even as the LORD -my God commanded me, that ye should do so in the land whither ye go to -possess it. - -4:6 Keep therefore and do them; for this is your wisdom and your -understanding in the sight of the nations, which shall hear all these -statutes, and say, Surely this great nation is a wise and -understanding people. - -4:7 For what nation is there so great, who hath God so nigh unto them, -as the LORD our God is in all things that we call upon him for? 4:8 -And what nation is there so great, that hath statutes and judgments so -righteous as all this law, which I set before you this day? 4:9 Only -take heed to thyself, and keep thy soul diligently, lest thou forget -the things which thine eyes have seen, and lest they depart from thy -heart all the days of thy life: but teach them thy sons, and thy sons' -sons; 4:10 Specially the day that thou stoodest before the LORD thy -God in Horeb, when the LORD said unto me, Gather me the people -together, and I will make them hear my words, that they may learn to -fear me all the days that they shall live upon the earth, and that -they may teach their children. - -4:11 And ye came near and stood under the mountain; and the mountain -burned with fire unto the midst of heaven, with darkness, clouds, and -thick darkness. - -4:12 And the LORD spake unto you out of the midst of the fire: ye -heard the voice of the words, but saw no similitude; only ye heard a -voice. - -4:13 And he declared unto you his covenant, which he commanded you to -perform, even ten commandments; and he wrote them upon two tables of -stone. - -4:14 And the LORD commanded me at that time to teach you statutes and -judgments, that ye might do them in the land whither ye go over to -possess it. - -4:15 Take ye therefore good heed unto yourselves; for ye saw no manner -of similitude on the day that the LORD spake unto you in Horeb out of -the midst of the fire: 4:16 Lest ye corrupt yourselves, and make you a -graven image, the similitude of any figure, the likeness of male or -female, 4:17 The likeness of any beast that is on the earth, the -likeness of any winged fowl that flieth in the air, 4:18 The likeness -of any thing that creepeth on the ground, the likeness of any fish -that is in the waters beneath the earth: 4:19 And lest thou lift up -thine eyes unto heaven, and when thou seest the sun, and the moon, and -the stars, even all the host of heaven, shouldest be driven to worship -them, and serve them, which the LORD thy God hath divided unto all -nations under the whole heaven. - -4:20 But the LORD hath taken you, and brought you forth out of the -iron furnace, even out of Egypt, to be unto him a people of -inheritance, as ye are this day. - -4:21 Furthermore the LORD was angry with me for your sakes, and sware -that I should not go over Jordan, and that I should not go in unto -that good land, which the LORD thy God giveth thee for an inheritance: -4:22 But I must die in this land, I must not go over Jordan: but ye -shall go over, and possess that good land. - -4:23 Take heed unto yourselves, lest ye forget the covenant of the -LORD your God, which he made with you, and make you a graven image, or -the likeness of any thing, which the LORD thy God hath forbidden thee. - -4:24 For the LORD thy God is a consuming fire, even a jealous God. - -4:25 When thou shalt beget children, and children's children, and ye -shall have remained long in the land, and shall corrupt yourselves, -and make a graven image, or the likeness of any thing, and shall do -evil in the sight of the LORD thy God, to provoke him to anger: 4:26 I -call heaven and earth to witness against you this day, that ye shall -soon utterly perish from off the land whereunto ye go over Jordan to -possess it; ye shall not prolong your days upon it, but shall utterly -be destroyed. - -4:27 And the LORD shall scatter you among the nations, and ye shall be -left few in number among the heathen, whither the LORD shall lead you. - -4:28 And there ye shall serve gods, the work of men's hands, wood and -stone, which neither see, nor hear, nor eat, nor smell. - -4:29 But if from thence thou shalt seek the LORD thy God, thou shalt -find him, if thou seek him with all thy heart and with all thy soul. - -4:30 When thou art in tribulation, and all these things are come upon -thee, even in the latter days, if thou turn to the LORD thy God, and -shalt be obedient unto his voice; 4:31 (For the LORD thy God is a -merciful God;) he will not forsake thee, neither destroy thee, nor -forget the covenant of thy fathers which he sware unto them. - -4:32 For ask now of the days that are past, which were before thee, -since the day that God created man upon the earth, and ask from the -one side of heaven unto the other, whether there hath been any such -thing as this great thing is, or hath been heard like it? 4:33 Did -ever people hear the voice of God speaking out of the midst of the -fire, as thou hast heard, and live? 4:34 Or hath God assayed to go -and take him a nation from the midst of another nation, by -temptations, by signs, and by wonders, and by war, and by a mighty -hand, and by a stretched out arm, and by great terrors, according to -all that the LORD your God did for you in Egypt before your eyes? -4:35 Unto thee it was shewed, that thou mightest know that the LORD he -is God; there is none else beside him. - -4:36 Out of heaven he made thee to hear his voice, that he might -instruct thee: and upon earth he shewed thee his great fire; and thou -heardest his words out of the midst of the fire. - -4:37 And because he loved thy fathers, therefore he chose their seed -after them, and brought thee out in his sight with his mighty power -out of Egypt; 4:38 To drive out nations from before thee greater and -mightier than thou art, to bring thee in, to give thee their land for -an inheritance, as it is this day. - -4:39 Know therefore this day, and consider it in thine heart, that the -LORD he is God in heaven above, and upon the earth beneath: there is -none else. - -4:40 Thou shalt keep therefore his statutes, and his commandments, -which I command thee this day, that it may go well with thee, and with -thy children after thee, and that thou mayest prolong thy days upon -the earth, which the LORD thy God giveth thee, for ever. - -4:41 Then Moses severed three cities on this side Jordan toward the -sunrising; 4:42 That the slayer might flee thither, which should kill -his neighbour unawares, and hated him not in times past; and that -fleeing unto one of these cities he might live: 4:43 Namely, Bezer in -the wilderness, in the plain country, of the Reubenites; and Ramoth in -Gilead, of the Gadites; and Golan in Bashan, of the Manassites. - -4:44 And this is the law which Moses set before the children of -Israel: 4:45 These are the testimonies, and the statutes, and the -judgments, which Moses spake unto the children of Israel, after they -came forth out of Egypt. - -4:46 On this side Jordan, in the valley over against Bethpeor, in the -land of Sihon king of the Amorites, who dwelt at Heshbon, whom Moses -and the children of Israel smote, after they were come forth out of -Egypt: 4:47 And they possessed his land, and the land of Og king of -Bashan, two kings of the Amorites, which were on this side Jordan -toward the sunrising; 4:48 From Aroer, which is by the bank of the -river Arnon, even unto mount Sion, which is Hermon, 4:49 And all the -plain on this side Jordan eastward, even unto the sea of the plain, -under the springs of Pisgah. - -5:1 And Moses called all Israel, and said unto them, Hear, O Israel, -the statutes and judgments which I speak in your ears this day, that -ye may learn them, and keep, and do them. - -5:2 The LORD our God made a covenant with us in Horeb. - -5:3 The LORD made not this covenant with our fathers, but with us, -even us, who are all of us here alive this day. - -5:4 The LORD talked with you face to face in the mount out of the -midst of the fire, 5:5 (I stood between the LORD and you at that time, -to shew you the word of the LORD: for ye were afraid by reason of the -fire, and went not up into the mount;) saying, 5:6 I am the LORD thy -God, which brought thee out of the land of Egypt, from the house of -bondage. - -5:7 Thou shalt have none other gods before me. - -5:8 Thou shalt not make thee any graven image, or any likeness of any -thing that is in heaven above, or that is in the earth beneath, or -that is in the waters beneath the earth: 5:9 Thou shalt not bow down -thyself unto them, nor serve them: for I the LORD thy God am a jealous -God, visiting the iniquity of the fathers upon the children unto the -third and fourth generation of them that hate me, 5:10 And shewing -mercy unto thousands of them that love me and keep my commandments. - -5:11 Thou shalt not take the name of the LORD thy God in vain: for the -LORD will not hold him guiltless that taketh his name in vain. - -5:12 Keep the sabbath day to sanctify it, as the LORD thy God hath -commanded thee. - -5:13 Six days thou shalt labour, and do all thy work: 5:14 But the -seventh day is the sabbath of the LORD thy God: in it thou shalt not -do any work, thou, nor thy son, nor thy daughter, nor thy manservant, -nor thy maidservant, nor thine ox, nor thine ass, nor any of thy -cattle, nor thy stranger that is within thy gates; that thy manservant -and thy maidservant may rest as well as thou. - -5:15 And remember that thou wast a servant in the land of Egypt, and -that the LORD thy God brought thee out thence through a mighty hand -and by a stretched out arm: therefore the LORD thy God commanded thee -to keep the sabbath day. - -5:16 Honour thy father and thy mother, as the LORD thy God hath -commanded thee; that thy days may be prolonged, and that it may go -well with thee, in the land which the LORD thy God giveth thee. - -5:17 Thou shalt not kill. - -5:18 Neither shalt thou commit adultery. - -5:19 Neither shalt thou steal. - -5:20 Neither shalt thou bear false witness against thy neighbour. - -5:21 Neither shalt thou desire thy neighbour's wife, neither shalt -thou covet thy neighbour's house, his field, or his manservant, or his -maidservant, his ox, or his ass, or any thing that is thy neighbour's. - -5:22 These words the LORD spake unto all your assembly in the mount -out of the midst of the fire, of the cloud, and of the thick darkness, -with a great voice: and he added no more. And he wrote them in two -tables of stone, and delivered them unto me. - -5:23 And it came to pass, when ye heard the voice out of the midst of -the darkness, (for the mountain did burn with fire,) that ye came near -unto me, even all the heads of your tribes, and your elders; 5:24 And -ye said, Behold, the LORD our God hath shewed us his glory and his -greatness, and we have heard his voice out of the midst of the fire: -we have seen this day that God doth talk with man, and he liveth. - -5:25 Now therefore why should we die? for this great fire will consume -us: if we hear the voice of the LORD our God any more, then we shall -die. - -5:26 For who is there of all flesh, that hath heard the voice of the -living God speaking out of the midst of the fire, as we have, and -lived? 5:27 Go thou near, and hear all that the LORD our God shall -say: and speak thou unto us all that the LORD our God shall speak unto -thee; and we will hear it, and do it. - -5:28 And the LORD heard the voice of your words, when ye spake unto -me; and the LORD said unto me, I have heard the voice of the words of -this people, which they have spoken unto thee: they have well said all -that they have spoken. - -5:29 O that there were such an heart in them, that they would fear me, -and keep all my commandments always, that it might be well with them, -and with their children for ever! 5:30 Go say to them, Get you into -your tents again. - -5:31 But as for thee, stand thou here by me, and I will speak unto -thee all the commandments, and the statutes, and the judgments, which -thou shalt teach them, that they may do them in the land which I give -them to possess it. - -5:32 Ye shall observe to do therefore as the LORD your God hath -commanded you: ye shall not turn aside to the right hand or to the -left. - -5:33 Ye shall walk in all the ways which the LORD your God hath -commanded you, that ye may live, and that it may be well with you, and -that ye may prolong your days in the land which ye shall possess. - -6:1 Now these are the commandments, the statutes, and the judgments, -which the LORD your God commanded to teach you, that ye might do them -in the land whither ye go to possess it: 6:2 That thou mightest fear -the LORD thy God, to keep all his statutes and his commandments, which -I command thee, thou, and thy son, and thy son's son, all the days of -thy life; and that thy days may be prolonged. - -6:3 Hear therefore, O Israel, and observe to do it; that it may be -well with thee, and that ye may increase mightily, as the LORD God of -thy fathers hath promised thee, in the land that floweth with milk and -honey. - -6:4 Hear, O Israel: The LORD our God is one LORD: 6:5 And thou shalt -love the LORD thy God with all thine heart, and with all thy soul, and -with all thy might. - -6:6 And these words, which I command thee this day, shall be in thine -heart: 6:7 And thou shalt teach them diligently unto thy children, and -shalt talk of them when thou sittest in thine house, and when thou -walkest by the way, and when thou liest down, and when thou risest up. - -6:8 And thou shalt bind them for a sign upon thine hand, and they -shall be as frontlets between thine eyes. - -6:9 And thou shalt write them upon the posts of thy house, and on thy -gates. - -6:10 And it shall be, when the LORD thy God shall have brought thee -into the land which he sware unto thy fathers, to Abraham, to Isaac, -and to Jacob, to give thee great and goodly cities, which thou -buildedst not, 6:11 And houses full of all good things, which thou -filledst not, and wells digged, which thou diggedst not, vineyards and -olive trees, which thou plantedst not; when thou shalt have eaten and -be full; 6:12 Then beware lest thou forget the LORD, which brought -thee forth out of the land of Egypt, from the house of bondage. - -6:13 Thou shalt fear the LORD thy God, and serve him, and shalt swear -by his name. - -6:14 Ye shall not go after other gods, of the gods of the people which -are round about you; 6:15 (For the LORD thy God is a jealous God among -you) lest the anger of the LORD thy God be kindled against thee, and -destroy thee from off the face of the earth. - -6:16 Ye shall not tempt the LORD your God, as ye tempted him in -Massah. - -6:17 Ye shall diligently keep the commandments of the LORD your God, -and his testimonies, and his statutes, which he hath commanded thee. - -6:18 And thou shalt do that which is right and good in the sight of -the LORD: that it may be well with thee, and that thou mayest go in -and possess the good land which the LORD sware unto thy fathers. - -6:19 To cast out all thine enemies from before thee, as the LORD hath -spoken. - -6:20 And when thy son asketh thee in time to come, saying, What mean -the testimonies, and the statutes, and the judgments, which the LORD -our God hath commanded you? 6:21 Then thou shalt say unto thy son, We -were Pharaoh's bondmen in Egypt; and the LORD brought us out of Egypt -with a mighty hand: 6:22 And the LORD shewed signs and wonders, great -and sore, upon Egypt, upon Pharaoh, and upon all his household, before -our eyes: 6:23 And he brought us out from thence, that he might bring -us in, to give us the land which he sware unto our fathers. - -6:24 And the LORD commanded us to do all these statutes, to fear the -LORD our God, for our good always, that he might preserve us alive, as -it is at this day. - -6:25 And it shall be our righteousness, if we observe to do all these -commandments before the LORD our God, as he hath commanded us. - -7:1 When the LORD thy God shall bring thee into the land whither thou -goest to possess it, and hath cast out many nations before thee, the -Hittites, and the Girgashites, and the Amorites, and the Canaanites, -and the Perizzites, and the Hivites, and the Jebusites, seven nations -greater and mightier than thou; 7:2 And when the LORD thy God shall -deliver them before thee; thou shalt smite them, and utterly destroy -them; thou shalt make no covenant with them, nor shew mercy unto them: -7:3 Neither shalt thou make marriages with them; thy daughter thou -shalt not give unto his son, nor his daughter shalt thou take unto thy -son. - -7:4 For they will turn away thy son from following me, that they may -serve other gods: so will the anger of the LORD be kindled against -you, and destroy thee suddenly. - -7:5 But thus shall ye deal with them; ye shall destroy their altars, -and break down their images, and cut down their groves, and burn their -graven images with fire. - -7:6 For thou art an holy people unto the LORD thy God: the LORD thy -God hath chosen thee to be a special people unto himself, above all -people that are upon the face of the earth. - -7:7 The LORD did not set his love upon you, nor choose you, because ye -were more in number than any people; for ye were the fewest of all -people: 7:8 But because the LORD loved you, and because he would keep -the oath which he had sworn unto your fathers, hath the LORD brought -you out with a mighty hand, and redeemed you out of the house of -bondmen, from the hand of Pharaoh king of Egypt. - -7:9 Know therefore that the LORD thy God, he is God, the faithful God, -which keepeth covenant and mercy with them that love him and keep his -commandments to a thousand generations; 7:10 And repayeth them that -hate him to their face, to destroy them: he will not be slack to him -that hateth him, he will repay him to his face. - -7:11 Thou shalt therefore keep the commandments, and the statutes, and -the judgments, which I command thee this day, to do them. - -7:12 Wherefore it shall come to pass, if ye hearken to these -judgments, and keep, and do them, that the LORD thy God shall keep -unto thee the covenant and the mercy which he sware unto thy fathers: -7:13 And he will love thee, and bless thee, and multiply thee: he will -also bless the fruit of thy womb, and the fruit of thy land, thy corn, -and thy wine, and thine oil, the increase of thy kine, and the flocks -of thy sheep, in the land which he sware unto thy fathers to give -thee. - -7:14 Thou shalt be blessed above all people: there shall not be male -or female barren among you, or among your cattle. - -7:15 And the LORD will take away from thee all sickness, and will put -none of the evil diseases of Egypt, which thou knowest, upon thee; but -will lay them upon all them that hate thee. - -7:16 And thou shalt consume all the people which the LORD thy God -shall deliver thee; thine eye shall have no pity upon them: neither -shalt thou serve their gods; for that will be a snare unto thee. - -7:17 If thou shalt say in thine heart, These nations are more than I; -how can I dispossess them? 7:18 Thou shalt not be afraid of them: but -shalt well remember what the LORD thy God did unto Pharaoh, and unto -all Egypt; 7:19 The great temptations which thine eyes saw, and the -signs, and the wonders, and the mighty hand, and the stretched out -arm, whereby the LORD thy God brought thee out: so shall the LORD thy -God do unto all the people of whom thou art afraid. - -7:20 Moreover the LORD thy God will send the hornet among them, until -they that are left, and hide themselves from thee, be destroyed. - -7:21 Thou shalt not be affrighted at them: for the LORD thy God is -among you, a mighty God and terrible. - -7:22 And the LORD thy God will put out those nations before thee by -little and little: thou mayest not consume them at once, lest the -beasts of the field increase upon thee. - -7:23 But the LORD thy God shall deliver them unto thee, and shall -destroy them with a mighty destruction, until they be destroyed. - -7:24 And he shall deliver their kings into thine hand, and thou shalt -destroy their name from under heaven: there shall no man be able to -stand before thee, until thou have destroyed them. - -7:25 The graven images of their gods shall ye burn with fire: thou -shalt not desire the silver or gold that is on them, nor take it unto -thee, lest thou be snared therin: for it is an abomination to the LORD -thy God. - -7:26 Neither shalt thou bring an abomination into thine house, lest -thou be a cursed thing like it: but thou shalt utterly detest it, and -thou shalt utterly abhor it; for it is a cursed thing. - -8:1 All the commandments which I command thee this day shall ye -observe to do, that ye may live, and multiply, and go in and possess -the land which the LORD sware unto your fathers. - -8:2 And thou shalt remember all the way which the LORD thy God led -thee these forty years in the wilderness, to humble thee, and to prove -thee, to know what was in thine heart, whether thou wouldest keep his -commandments, or no. - -8:3 And he humbled thee, and suffered thee to hunger, and fed thee -with manna, which thou knewest not, neither did thy fathers know; that -he might make thee know that man doth not live by bread only, but by -every word that proceedeth out of the mouth of the LORD doth man live. - -8:4 Thy raiment waxed not old upon thee, neither did thy foot swell, -these forty years. - -8:5 Thou shalt also consider in thine heart, that, as a man chasteneth -his son, so the LORD thy God chasteneth thee. - -8:6 Therefore thou shalt keep the commandments of the LORD thy God, to -walk in his ways, and to fear him. - -8:7 For the LORD thy God bringeth thee into a good land, a land of -brooks of water, of fountains and depths that spring out of valleys -and hills; 8:8 A land of wheat, and barley, and vines, and fig trees, -and pomegranates; a land of oil olive, and honey; 8:9 A land wherein -thou shalt eat bread without scarceness, thou shalt not lack any thing -in it; a land whose stones are iron, and out of whose hills thou -mayest dig brass. - -8:10 When thou hast eaten and art full, then thou shalt bless the LORD -thy God for the good land which he hath given thee. - -8:11 Beware that thou forget not the LORD thy God, in not keeping his -commandments, and his judgments, and his statutes, which I command -thee this day: 8:12 Lest when thou hast eaten and art full, and hast -built goodly houses, and dwelt therein; 8:13 And when thy herds and -thy flocks multiply, and thy silver and thy gold is multiplied, and -all that thou hast is multiplied; 8:14 Then thine heart be lifted up, -and thou forget the LORD thy God, which brought thee forth out of the -land of Egypt, from the house of bondage; 8:15 Who led thee through -that great and terrible wilderness, wherein were fiery serpents, and -scorpions, and drought, where there was no water; who brought thee -forth water out of the rock of flint; 8:16 Who fed thee in the -wilderness with manna, which thy fathers knew not, that he might -humble thee, and that he might prove thee, to do thee good at thy -latter end; 8:17 And thou say in thine heart, My power and the might -of mine hand hath gotten me this wealth. - -8:18 But thou shalt remember the LORD thy God: for it is he that -giveth thee power to get wealth, that he may establish his covenant -which he sware unto thy fathers, as it is this day. - -8:19 And it shall be, if thou do at all forget the LORD thy God, and -walk after other gods, and serve them, and worship them, I testify -against you this day that ye shall surely perish. - -8:20 As the nations which the LORD destroyeth before your face, so -shall ye perish; because ye would not be obedient unto the voice of -the LORD your God. - -9:1 Hear, O Israel: Thou art to pass over Jordan this day, to go in to -possess nations greater and mightier than thyself, cities great and -fenced up to heaven, 9:2 A people great and tall, the children of the -Anakims, whom thou knowest, and of whom thou hast heard say, Who can -stand before the children of Anak! 9:3 Understand therefore this day, -that the LORD thy God is he which goeth over before thee; as a -consuming fire he shall destroy them, and he shall bring them down -before thy face: so shalt thou drive them out, and destroy them -quickly, as the LORD hath said unto thee. - -9:4 Speak not thou in thine heart, after that the LORD thy God hath -cast them out from before thee, saying, For my righteousness the LORD -hath brought me in to possess this land: but for the wickedness of -these nations the LORD doth drive them out from before thee. - -9:5 Not for thy righteousness, or for the uprightness of thine heart, -dost thou go to possess their land: but for the wickedness of these -nations the LORD thy God doth drive them out from before thee, and -that he may perform the word which the LORD sware unto thy fathers, -Abraham, Isaac, and Jacob. - -9:6 Understand therefore, that the LORD thy God giveth thee not this -good land to possess it for thy righteousness; for thou art a -stiffnecked people. - -9:7 Remember, and forget not, how thou provokedst the LORD thy God to -wrath in the wilderness: from the day that thou didst depart out of -the land of Egypt, until ye came unto this place, ye have been -rebellious against the LORD. - -9:8 Also in Horeb ye provoked the LORD to wrath, so that the LORD was -angry with you to have destroyed you. - -9:9 When I was gone up into the mount to receive the tables of stone, -even the tables of the covenant which the LORD made with you, then I -abode in the mount forty days and forty nights, I neither did eat -bread nor drink water: 9:10 And the LORD delivered unto me two tables -of stone written with the finger of God; and on them was written -according to all the words, which the LORD spake with you in the mount -out of the midst of the fire in the day of the assembly. - -9:11 And it came to pass at the end of forty days and forty nights, -that the LORD gave me the two tables of stone, even the tables of the -covenant. - -9:12 And the LORD said unto me, Arise, get thee down quickly from -hence; for thy people which thou hast brought forth out of Egypt have -corrupted themselves; they are quickly turned aside out of the way -which I commanded them; they have made them a molten image. - -9:13 Furthermore the LORD spake unto me, saying, I have seen this -people, and, behold, it is a stiffnecked people: 9:14 Let me alone, -that I may destroy them, and blot out their name from under heaven: -and I will make of thee a nation mightier and greater than they. - -9:15 So I turned and came down from the mount, and the mount burned -with fire: and the two tables of the covenant were in my two hands. - -9:16 And I looked, and, behold, ye had sinned against the LORD your -God, and had made you a molten calf: ye had turned aside quickly out -of the way which the LORD had commanded you. - -9:17 And I took the two tables, and cast them out of my two hands, and -brake them before your eyes. - -9:18 And I fell down before the LORD, as at the first, forty days and -forty nights: I did neither eat bread, nor drink water, because of all -your sins which ye sinned, in doing wickedly in the sight of the LORD, -to provoke him to anger. - -9:19 For I was afraid of the anger and hot displeasure, wherewith the -LORD was wroth against you to destroy you. But the LORD hearkened unto -me at that time also. - -9:20 And the LORD was very angry with Aaron to have destroyed him: and -I prayed for Aaron also the same time. - -9:21 And I took your sin, the calf which ye had made, and burnt it -with fire, and stamped it, and ground it very small, even until it was -as small as dust: and I cast the dust thereof into the brook that -descended out of the mount. - -9:22 And at Taberah, and at Massah, and at Kibrothhattaavah, ye -provoked the LORD to wrath. - -9:23 Likewise when the LORD sent you from Kadeshbarnea, saying, Go up -and possess the land which I have given you; then ye rebelled against -the commandment of the LORD your God, and ye believed him not, nor -hearkened to his voice. - -9:24 Ye have been rebellious against the LORD from the day that I knew -you. - -9:25 Thus I fell down before the LORD forty days and forty nights, as -I fell down at the first; because the LORD had said he would destroy -you. - -9:26 I prayed therefore unto the LORD, and said, O Lord GOD, destroy -not thy people and thine inheritance, which thou hast redeemed through -thy greatness, which thou hast brought forth out of Egypt with a -mighty hand. - -9:27 Remember thy servants, Abraham, Isaac, and Jacob; look not unto -the stubbornness of this people, nor to their wickedness, nor to their -sin: 9:28 Lest the land whence thou broughtest us out say, Because the -LORD was not able to bring them into the land which he promised them, -and because he hated them, he hath brought them out to slay them in -the wilderness. - -9:29 Yet they are thy people and thine inheritance, which thou -broughtest out by thy mighty power and by thy stretched out arm. - -10:1 At that time the LORD said unto me, Hew thee two tables of stone -like unto the first, and come up unto me into the mount, and make thee -an ark of wood. - -10:2 And I will write on the tables the words that were in the first -tables which thou brakest, and thou shalt put them in the ark. - -10:3 And I made an ark of shittim wood, and hewed two tables of stone -like unto the first, and went up into the mount, having the two tables -in mine hand. - -10:4 And he wrote on the tables, according to the first writing, the -ten commandments, which the LORD spake unto you in the mount out of -the midst of the fire in the day of the assembly: and the LORD gave -them unto me. - -10:5 And I turned myself and came down from the mount, and put the -tables in the ark which I had made; and there they be, as the LORD -commanded me. - -10:6 And the children of Israel took their journey from Beeroth of the -children of Jaakan to Mosera: there Aaron died, and there he was -buried; and Eleazar his son ministered in the priest's office in his -stead. - -10:7 From thence they journeyed unto Gudgodah; and from Gudgodah to -Jotbath, a land of rivers of waters. - -10:8 At that time the LORD separated the tribe of Levi, to bear the -ark of the covenant of the LORD, to stand before the LORD to minister -unto him, and to bless in his name, unto this day. - -10:9 Wherefore Levi hath no part nor inheritance with his brethren; -the LORD is his inheritance, according as the LORD thy God promised -him. - -10:10 And I stayed in the mount, according to the first time, forty -days and forty nights; and the LORD hearkened unto me at that time -also, and the LORD would not destroy thee. - -10:11 And the LORD said unto me, Arise, take thy journey before the -people, that they may go in and possess the land, which I sware unto -their fathers to give unto them. - -10:12 And now, Israel, what doth the LORD thy God require of thee, but -to fear the LORD thy God, to walk in all his ways, and to love him, -and to serve the LORD thy God with all thy heart and with all thy -soul, 10:13 To keep the commandments of the LORD, and his statutes, -which I command thee this day for thy good? 10:14 Behold, the heaven -and the heaven of heavens is the LORD's thy God, the earth also, with -all that therein is. - -10:15 Only the LORD had a delight in thy fathers to love them, and he -chose their seed after them, even you above all people, as it is this -day. - -10:16 Circumcise therefore the foreskin of your heart, and be no more -stiffnecked. - -10:17 For the LORD your God is God of gods, and Lord of lords, a great -God, a mighty, and a terrible, which regardeth not persons, nor taketh -reward: 10:18 He doth execute the judgment of the fatherless and -widow, and loveth the stranger, in giving him food and raiment. - -10:19 Love ye therefore the stranger: for ye were strangers in the -land of Egypt. - -10:20 Thou shalt fear the LORD thy God; him shalt thou serve, and to -him shalt thou cleave, and swear by his name. - -10:21 He is thy praise, and he is thy God, that hath done for thee -these great and terrible things, which thine eyes have seen. - -10:22 Thy fathers went down into Egypt with threescore and ten -persons; and now the LORD thy God hath made thee as the stars of -heaven for multitude. - -11:1 Therefore thou shalt love the LORD thy God, and keep his charge, -and his statutes, and his judgments, and his commandments, alway. - -11:2 And know ye this day: for I speak not with your children which -have not known, and which have not seen the chastisement of the LORD -your God, his greatness, his mighty hand, and his stretched out arm, -11:3 And his miracles, and his acts, which he did in the midst of -Egypt unto Pharaoh the king of Egypt, and unto all his land; 11:4 And -what he did unto the army of Egypt, unto their horses, and to their -chariots; how he made the water of the Red sea to overflow them as -they pursued after you, and how the LORD hath destroyed them unto this -day; 11:5 And what he did unto you in the wilderness, until ye came -into this place; 11:6 And what he did unto Dathan and Abiram, the sons -of Eliab, the son of Reuben: how the earth opened her mouth, and -swallowed them up, and their households, and their tents, and all the -substance that was in their possession, in the midst of all Israel: -11:7 But your eyes have seen all the great acts of the LORD which he -did. - -11:8 Therefore shall ye keep all the commandments which I command you -this day, that ye may be strong, and go in and possess the land, -whither ye go to possess it; 11:9 And that ye may prolong your days in -the land, which the LORD sware unto your fathers to give unto them and -to their seed, a land that floweth with milk and honey. - -11:10 For the land, whither thou goest in to possess it, is not as the -land of Egypt, from whence ye came out, where thou sowedst thy seed, -and wateredst it with thy foot, as a garden of herbs: 11:11 But the -land, whither ye go to possess it, is a land of hills and valleys, and -drinketh water of the rain of heaven: 11:12 A land which the LORD thy -God careth for: the eyes of the LORD thy God are always upon it, from -the beginning of the year even unto the end of the year. - -11:13 And it shall come to pass, if ye shall hearken diligently unto -my commandments which I command you this day, to love the LORD your -God, and to serve him with all your heart and with all your soul, -11:14 That I will give you the rain of your land in his due season, -the first rain and the latter rain, that thou mayest gather in thy -corn, and thy wine, and thine oil. - -11:15 And I will send grass in thy fields for thy cattle, that thou -mayest eat and be full. - -11:16 Take heed to yourselves, that your heart be not deceived, and ye -turn aside, and serve other gods, and worship them; 11:17 And then the -LORD's wrath be kindled against you, and he shut up the heaven, that -there be no rain, and that the land yield not her fruit; and lest ye -perish quickly from off the good land which the LORD giveth you. - -11:18 Therefore shall ye lay up these my words in your heart and in -your soul, and bind them for a sign upon your hand, that they may be -as frontlets between your eyes. - -11:19 And ye shall teach them your children, speaking of them when -thou sittest in thine house, and when thou walkest by the way, when -thou liest down, and when thou risest up. - -11:20 And thou shalt write them upon the door posts of thine house, -and upon thy gates: 11:21 That your days may be multiplied, and the -days of your children, in the land which the LORD sware unto your -fathers to give them, as the days of heaven upon the earth. - -11:22 For if ye shall diligently keep all these commandments which I -command you, to do them, to love the LORD your God, to walk in all his -ways, and to cleave unto him; 11:23 Then will the LORD drive out all -these nations from before you, and ye shall possess greater nations -and mightier than yourselves. - -11:24 Every place whereon the soles of your feet shall tread shall be -yours: from the wilderness and Lebanon, from the river, the river -Euphrates, even unto the uttermost sea shall your coast be. - -11:25 There shall no man be able to stand before you: for the LORD -your God shall lay the fear of you and the dread of you upon all the -land that ye shall tread upon, as he hath said unto you. - -11:26 Behold, I set before you this day a blessing and a curse; 11:27 -A blessing, if ye obey the commandments of the LORD your God, which I -command you this day: 11:28 And a curse, if ye will not obey the -commandments of the LORD your God, but turn aside out of the way which -I command you this day, to go after other gods, which ye have not -known. - -11:29 And it shall come to pass, when the LORD thy God hath brought -thee in unto the land whither thou goest to possess it, that thou -shalt put the blessing upon mount Gerizim, and the curse upon mount -Ebal. - -11:30 Are they not on the other side Jordan, by the way where the sun -goeth down, in the land of the Canaanites, which dwell in the -champaign over against Gilgal, beside the plains of Moreh? 11:31 For -ye shall pass over Jordan to go in to possess the land which the LORD -your God giveth you, and ye shall possess it, and dwell therein. - -11:32 And ye shall observe to do all the statutes and judgments which -I set before you this day. - -12:1 These are the statutes and judgments, which ye shall observe to -do in the land, which the LORD God of thy fathers giveth thee to -possess it, all the days that ye live upon the earth. - -12:2 Ye shall utterly destroy all the places, wherein the nations -which ye shall possess served their gods, upon the high mountains, and -upon the hills, and under every green tree: 12:3 And ye shall -overthrow their altars, and break their pillars, and burn their groves -with fire; and ye shall hew down the graven images of their gods, and -destroy the names of them out of that place. - -12:4 Ye shall not do so unto the LORD your God. - -12:5 But unto the place which the LORD your God shall choose out of -all your tribes to put his name there, even unto his habitation shall -ye seek, and thither thou shalt come: 12:6 And thither ye shall bring -your burnt offerings, and your sacrifices, and your tithes, and heave -offerings of your hand, and your vows, and your freewill offerings, -and the firstlings of your herds and of your flocks: 12:7 And there ye -shall eat before the LORD your God, and ye shall rejoice in all that -ye put your hand unto, ye and your households, wherein the LORD thy -God hath blessed thee. - -12:8 Ye shall not do after all the things that we do here this day, -every man whatsoever is right in his own eyes. - -12:9 For ye are not as yet come to the rest and to the inheritance, -which the LORD your God giveth you. - -12:10 But when ye go over Jordan, and dwell in the land which the LORD -your God giveth you to inherit, and when he giveth you rest from all -your enemies round about, so that ye dwell in safety; 12:11 Then there -shall be a place which the LORD your God shall choose to cause his -name to dwell there; thither shall ye bring all that I command you; -your burnt offerings, and your sacrifices, your tithes, and the heave -offering of your hand, and all your choice vows which ye vow unto the -LORD: 12:12 And ye shall rejoice before the LORD your God, ye, and -your sons, and your daughters, and your menservants, and your -maidservants, and the Levite that is within your gates; forasmuch as -he hath no part nor inheritance with you. - -12:13 Take heed to thyself that thou offer not thy burnt offerings in -every place that thou seest: 12:14 But in the place which the LORD -shall choose in one of thy tribes, there thou shalt offer thy burnt -offerings, and there thou shalt do all that I command thee. - -12:15 Notwithstanding thou mayest kill and eat flesh in all thy gates, -whatsoever thy soul lusteth after, according to the blessing of the -LORD thy God which he hath given thee: the unclean and the clean may -eat thereof, as of the roebuck, and as of the hart. - -12:16 Only ye shall not eat the blood; ye shall pour it upon the earth -as water. - -12:17 Thou mayest not eat within thy gates the tithe of thy corn, or -of thy wine, or of thy oil, or the firstlings of thy herds or of thy -flock, nor any of thy vows which thou vowest, nor thy freewill -offerings, or heave offering of thine hand: 12:18 But thou must eat -them before the LORD thy God in the place which the LORD thy God shall -choose, thou, and thy son, and thy daughter, and thy manservant, and -thy maidservant, and the Levite that is within thy gates: and thou -shalt rejoice before the LORD thy God in all that thou puttest thine -hands unto. - -12:19 Take heed to thyself that thou forsake not the Levite as long as -thou livest upon the earth. - -12:20 When the LORD thy God shall enlarge thy border, as he hath -promised thee, and thou shalt say, I will eat flesh, because thy soul -longeth to eat flesh; thou mayest eat flesh, whatsoever thy soul -lusteth after. - -12:21 If the place which the LORD thy God hath chosen to put his name -there be too far from thee, then thou shalt kill of thy herd and of -thy flock, which the LORD hath given thee, as I have commanded thee, -and thou shalt eat in thy gates whatsoever thy soul lusteth after. - -12:22 Even as the roebuck and the hart is eaten, so thou shalt eat -them: the unclean and the clean shall eat of them alike. - -12:23 Only be sure that thou eat not the blood: for the blood is the -life; and thou mayest not eat the life with the flesh. - -12:24 Thou shalt not eat it; thou shalt pour it upon the earth as -water. - -12:25 Thou shalt not eat it; that it may go well with thee, and with -thy children after thee, when thou shalt do that which is right in the -sight of the LORD. - -12:26 Only thy holy things which thou hast, and thy vows, thou shalt -take, and go unto the place which the LORD shall choose: 12:27 And -thou shalt offer thy burnt offerings, the flesh and the blood, upon -the altar of the LORD thy God: and the blood of thy sacrifices shall -be poured out upon the altar of the LORD thy God, and thou shalt eat -the flesh. - -12:28 Observe and hear all these words which I command thee, that it -may go well with thee, and with thy children after thee for ever, when -thou doest that which is good and right in the sight of the LORD thy -God. - -12:29 When the LORD thy God shall cut off the nations from before -thee, whither thou goest to possess them, and thou succeedest them, -and dwellest in their land; 12:30 Take heed to thyself that thou be -not snared by following them, after that they be destroyed from before -thee; and that thou enquire not after their gods, saying, How did -these nations serve their gods? even so will I do likewise. - -12:31 Thou shalt not do so unto the LORD thy God: for every -abomination to the LORD, which he hateth, have they done unto their -gods; for even their sons and their daughters they have burnt in the -fire to their gods. - -12:32 What thing soever I command you, observe to do it: thou shalt -not add thereto, nor diminish from it. - -13:1 If there arise among you a prophet, or a dreamer of dreams, and -giveth thee a sign or a wonder, 13:2 And the sign or the wonder come -to pass, whereof he spake unto thee, saying, Let us go after other -gods, which thou hast not known, and let us serve them; 13:3 Thou -shalt not hearken unto the words of that prophet, or that dreamer of -dreams: for the LORD your God proveth you, to know whether ye love the -LORD your God with all your heart and with all your soul. - -13:4 Ye shall walk after the LORD your God, and fear him, and keep his -commandments, and obey his voice, and ye shall serve him, and cleave -unto him. - -13:5 And that prophet, or that dreamer of dreams, shall be put to -death; because he hath spoken to turn you away from the LORD your God, -which brought you out of the land of Egypt, and redeemed you out of -the house of bondage, to thrust thee out of the way which the LORD thy -God commanded thee to walk in. So shalt thou put the evil away from -the midst of thee. - -13:6 If thy brother, the son of thy mother, or thy son, or thy -daughter, or the wife of thy bosom, or thy friend, which is as thine -own soul, entice thee secretly, saying, Let us go and serve other -gods, which thou hast not known, thou, nor thy fathers; 13:7 Namely, -of the gods of the people which are round about you, nigh unto thee, -or far off from thee, from the one end of the earth even unto the -other end of the earth; 13:8 Thou shalt not consent unto him, nor -hearken unto him; neither shall thine eye pity him, neither shalt thou -spare, neither shalt thou conceal him: 13:9 But thou shalt surely kill -him; thine hand shall be first upon him to put him to death, and -afterwards the hand of all the people. - -13:10 And thou shalt stone him with stones, that he die; because he -hath sought to thrust thee away from the LORD thy God, which brought -thee out of the land of Egypt, from the house of bondage. - -13:11 And all Israel shall hear, and fear, and shall do no more any -such wickedness as this is among you. - -13:12 If thou shalt hear say in one of thy cities, which the LORD thy -God hath given thee to dwell there, saying, 13:13 Certain men, the -children of Belial, are gone out from among you, and have withdrawn -the inhabitants of their city, saying, Let us go and serve other gods, -which ye have not known; 13:14 Then shalt thou enquire, and make -search, and ask diligently; and, behold, if it be truth, and the thing -certain, that such abomination is wrought among you; 13:15 Thou shalt -surely smite the inhabitants of that city with the edge of the sword, -destroying it utterly, and all that is therein, and the cattle -thereof, with the edge of the sword. - -13:16 And thou shalt gather all the spoil of it into the midst of the -street thereof, and shalt burn with fire the city, and all the spoil -thereof every whit, for the LORD thy God: and it shall be an heap for -ever; it shall not be built again. - -13:17 And there shall cleave nought of the cursed thing to thine hand: -that the LORD may turn from the fierceness of his anger, and shew thee -mercy, and have compassion upon thee, and multiply thee, as he hath -sworn unto thy fathers; 13:18 When thou shalt hearken to the voice of -the LORD thy God, to keep all his commandments which I command thee -this day, to do that which is right in the eyes of the LORD thy God. - -14:1 Ye are the children of the LORD your God: ye shall not cut -yourselves, nor make any baldness between your eyes for the dead. - -14:2 For thou art an holy people unto the LORD thy God, and the LORD -hath chosen thee to be a peculiar people unto himself, above all the -nations that are upon the earth. - -14:3 Thou shalt not eat any abominable thing. - -14:4 These are the beasts which ye shall eat: the ox, the sheep, and -the goat, 14:5 The hart, and the roebuck, and the fallow deer, and the -wild goat, and the pygarg, and the wild ox, and the chamois. - -14:6 And every beast that parteth the hoof, and cleaveth the cleft -into two claws, and cheweth the cud among the beasts, that ye shall -eat. - -14:7 Nevertheless these ye shall not eat of them that chew the cud, or -of them that divide the cloven hoof; as the camel, and the hare, and -the coney: for they chew the cud, but divide not the hoof; therefore -they are unclean unto you. - -14:8 And the swine, because it divideth the hoof, yet cheweth not the -cud, it is unclean unto you: ye shall not eat of their flesh, nor -touch their dead carcase. - -14:9 These ye shall eat of all that are in the waters: all that have -fins and scales shall ye eat: 14:10 And whatsoever hath not fins and -scales ye may not eat; it is unclean unto you. - -14:11 Of all clean birds ye shall eat. - -14:12 But these are they of which ye shall not eat: the eagle, and the -ossifrage, and the ospray, 14:13 And the glede, and the kite, and the -vulture after his kind, 14:14 And every raven after his kind, 14:15 -And the owl, and the night hawk, and the cuckow, and the hawk after -his kind, 14:16 The little owl, and the great owl, and the swan, 14:17 -And the pelican, and the gier eagle, and the cormorant, 14:18 And the -stork, and the heron after her kind, and the lapwing, and the bat. - -14:19 And every creeping thing that flieth is unclean unto you: they -shall not be eaten. - -14:20 But of all clean fowls ye may eat. - -14:21 Ye shall not eat of anything that dieth of itself: thou shalt -give it unto the stranger that is in thy gates, that he may eat it; or -thou mayest sell it unto an alien: for thou art an holy people unto -the LORD thy God. - -Thou shalt not seethe a kid in his mother's milk. - -14:22 Thou shalt truly tithe all the increase of thy seed, that the -field bringeth forth year by year. - -14:23 And thou shalt eat before the LORD thy God, in the place which -he shall choose to place his name there, the tithe of thy corn, of thy -wine, and of thine oil, and the firstlings of thy herds and of thy -flocks; that thou mayest learn to fear the LORD thy God always. - -14:24 And if the way be too long for thee, so that thou art not able -to carry it; or if the place be too far from thee, which the LORD thy -God shall choose to set his name there, when the LORD thy God hath -blessed thee: 14:25 Then shalt thou turn it into money, and bind up -the money in thine hand, and shalt go unto the place which the LORD -thy God shall choose: 14:26 And thou shalt bestow that money for -whatsoever thy soul lusteth after, for oxen, or for sheep, or for -wine, or for strong drink, or for whatsoever thy soul desireth: and -thou shalt eat there before the LORD thy God, and thou shalt rejoice, -thou, and thine household, 14:27 And the Levite that is within thy -gates; thou shalt not forsake him; for he hath no part nor inheritance -with thee. - -14:28 At the end of three years thou shalt bring forth all the tithe -of thine increase the same year, and shalt lay it up within thy gates: -14:29 And the Levite, (because he hath no part nor inheritance with -thee,) and the stranger, and the fatherless, and the widow, which are -within thy gates, shall come, and shall eat and be satisfied; that the -LORD thy God may bless thee in all the work of thine hand which thou -doest. - -15:1 At the end of every seven years thou shalt make a release. - -15:2 And this is the manner of the release: Every creditor that -lendeth ought unto his neighbour shall release it; he shall not exact -it of his neighbour, or of his brother; because it is called the -LORD's release. - -15:3 Of a foreigner thou mayest exact it again: but that which is -thine with thy brother thine hand shall release; 15:4 Save when there -shall be no poor among you; for the LORD shall greatly bless thee in -the land which the LORD thy God giveth thee for an inheritance to -possess it: 15:5 Only if thou carefully hearken unto the voice of the -LORD thy God, to observe to do all these commandments which I command -thee this day. - -15:6 For the LORD thy God blesseth thee, as he promised thee: and thou -shalt lend unto many nations, but thou shalt not borrow; and thou -shalt reign over many nations, but they shall not reign over thee. - -15:7 If there be among you a poor man of one of thy brethren within -any of thy gates in thy land which the LORD thy God giveth thee, thou -shalt not harden thine heart, nor shut thine hand from thy poor -brother: 15:8 But thou shalt open thine hand wide unto him, and shalt -surely lend him sufficient for his need, in that which he wanteth. - -15:9 Beware that there be not a thought in thy wicked heart, saying, -The seventh year, the year of release, is at hand; and thine eye be -evil against thy poor brother, and thou givest him nought; and he cry -unto the LORD against thee, and it be sin unto thee. - -15:10 Thou shalt surely give him, and thine heart shall not be grieved -when thou givest unto him: because that for this thing the LORD thy -God shall bless thee in all thy works, and in all that thou puttest -thine hand unto. - -15:11 For the poor shall never cease out of the land: therefore I -command thee, saying, Thou shalt open thine hand wide unto thy -brother, to thy poor, and to thy needy, in thy land. - -15:12 And if thy brother, an Hebrew man, or an Hebrew woman, be sold -unto thee, and serve thee six years; then in the seventh year thou -shalt let him go free from thee. - -15:13 And when thou sendest him out free from thee, thou shalt not let -him go away empty: 15:14 Thou shalt furnish him liberally out of thy -flock, and out of thy floor, and out of thy winepress: of that -wherewith the LORD thy God hath blessed thee thou shalt give unto him. - -15:15 And thou shalt remember that thou wast a bondman in the land of -Egypt, and the LORD thy God redeemed thee: therefore I command thee -this thing to day. - -15:16 And it shall be, if he say unto thee, I will not go away from -thee; because he loveth thee and thine house, because he is well with -thee; 15:17 Then thou shalt take an aul, and thrust it through his ear -unto the door, and he shall be thy servant for ever. And also unto thy -maidservant thou shalt do likewise. - -15:18 It shall not seem hard unto thee, when thou sendest him away -free from thee; for he hath been worth a double hired servant to thee, -in serving thee six years: and the LORD thy God shall bless thee in -all that thou doest. - -15:19 All the firstling males that come of thy herd and of thy flock -thou shalt sanctify unto the LORD thy God: thou shalt do no work with -the firstling of thy bullock, nor shear the firstling of thy sheep. - -15:20 Thou shalt eat it before the LORD thy God year by year in the -place which the LORD shall choose, thou and thy household. - -15:21 And if there be any blemish therein, as if it be lame, or blind, -or have any ill blemish, thou shalt not sacrifice it unto the LORD thy -God. - -15:22 Thou shalt eat it within thy gates: the unclean and the clean -person shall eat it alike, as the roebuck, and as the hart. - -15:23 Only thou shalt not eat the blood thereof; thou shalt pour it -upon the ground as water. - -16:1 Observe the month of Abib, and keep the passover unto the LORD -thy God: for in the month of Abib the LORD thy God brought thee forth -out of Egypt by night. - -16:2 Thou shalt therefore sacrifice the passover unto the LORD thy -God, of the flock and the herd, in the place which the LORD shall -choose to place his name there. - -16:3 Thou shalt eat no leavened bread with it; seven days shalt thou -eat unleavened bread therewith, even the bread of affliction; for thou -camest forth out of the land of Egypt in haste: that thou mayest -remember the day when thou camest forth out of the land of Egypt all -the days of thy life. - -16:4 And there shall be no leavened bread seen with thee in all thy -coast seven days; neither shall there any thing of the flesh, which -thou sacrificedst the first day at even, remain all night until the -morning. - -16:5 Thou mayest not sacrifice the passover within any of thy gates, -which the LORD thy God giveth thee: 16:6 But at the place which the -LORD thy God shall choose to place his name in, there thou shalt -sacrifice the passover at even, at the going down of the sun, at the -season that thou camest forth out of Egypt. - -16:7 And thou shalt roast and eat it in the place which the LORD thy -God shall choose: and thou shalt turn in the morning, and go unto thy -tents. - -16:8 Six days thou shalt eat unleavened bread: and on the seventh day -shall be a solemn assembly to the LORD thy God: thou shalt do no work -therein. - -16:9 Seven weeks shalt thou number unto thee: begin to number the -seven weeks from such time as thou beginnest to put the sickle to the -corn. - -16:10 And thou shalt keep the feast of weeks unto the LORD thy God -with a tribute of a freewill offering of thine hand, which thou shalt -give unto the LORD thy God, according as the LORD thy God hath blessed -thee: 16:11 And thou shalt rejoice before the LORD thy God, thou, and -thy son, and thy daughter, and thy manservant, and thy maidservant, -and the Levite that is within thy gates, and the stranger, and the -fatherless, and the widow, that are among you, in the place which the -LORD thy God hath chosen to place his name there. - -16:12 And thou shalt remember that thou wast a bondman in Egypt: and -thou shalt observe and do these statutes. - -16:13 Thou shalt observe the feast of tabernacles seven days, after -that thou hast gathered in thy corn and thy wine: 16:14 And thou shalt -rejoice in thy feast, thou, and thy son, and thy daughter, and thy -manservant, and thy maidservant, and the Levite, the stranger, and the -fatherless, and the widow, that are within thy gates. - -16:15 Seven days shalt thou keep a solemn feast unto the LORD thy God -in the place which the LORD shall choose: because the LORD thy God -shall bless thee in all thine increase, and in all the works of thine -hands, therefore thou shalt surely rejoice. - -16:16 Three times in a year shall all thy males appear before the LORD -thy God in the place which he shall choose; in the feast of unleavened -bread, and in the feast of weeks, and in the feast of tabernacles: and -they shall not appear before the LORD empty: 16:17 Every man shall -give as he is able, according to the blessing of the LORD thy God -which he hath given thee. - -16:18 Judges and officers shalt thou make thee in all thy gates, which -the LORD thy God giveth thee, throughout thy tribes: and they shall -judge the people with just judgment. - -16:19 Thou shalt not wrest judgment; thou shalt not respect persons, -neither take a gift: for a gift doth blind the eyes of the wise, and -pervert the words of the righteous. - -16:20 That which is altogether just shalt thou follow, that thou -mayest live, and inherit the land which the LORD thy God giveth thee. - -16:21 Thou shalt not plant thee a grove of any trees near unto the -altar of the LORD thy God, which thou shalt make thee. - -16:22 Neither shalt thou set thee up any image; which the LORD thy God -hateth. - -17:1 Thou shalt not sacrifice unto the LORD thy God any bullock, or -sheep, wherein is blemish, or any evilfavouredness: for that is an -abomination unto the LORD thy God. - -17:2 If there be found among you, within any of thy gates which the -LORD thy God giveth thee, man or woman, that hath wrought wickedness -in the sight of the LORD thy God, in transgressing his covenant, 17:3 -And hath gone and served other gods, and worshipped them, either the -sun, or moon, or any of the host of heaven, which I have not -commanded; 17:4 And it be told thee, and thou hast heard of it, and -enquired diligently, and, behold, it be true, and the thing certain, -that such abomination is wrought in Israel: 17:5 Then shalt thou bring -forth that man or that woman, which have committed that wicked thing, -unto thy gates, even that man or that woman, and shalt stone them with -stones, till they die. - -17:6 At the mouth of two witnesses, or three witnesses, shall he that -is worthy of death be put to death; but at the mouth of one witness he -shall not be put to death. - -17:7 The hands of the witnesses shall be first upon him to put him to -death, and afterward the hands of all the people. So thou shalt put -the evil away from among you. - -17:8 If there arise a matter too hard for thee in judgment, between -blood and blood, between plea and plea, and between stroke and stroke, -being matters of controversy within thy gates: then shalt thou arise, -and get thee up into the place which the LORD thy God shall choose; -17:9 And thou shalt come unto the priests the Levites, and unto the -judge that shall be in those days, and enquire; and they shall shew -thee the sentence of judgment: 17:10 And thou shalt do according to -the sentence, which they of that place which the LORD shall choose -shall shew thee; and thou shalt observe to do according to all that -they inform thee: 17:11 According to the sentence of the law which -they shall teach thee, and according to the judgment which they shall -tell thee, thou shalt do: thou shalt not decline from the sentence -which they shall shew thee, to the right hand, nor to the left. - -17:12 And the man that will do presumptuously, and will not hearken -unto the priest that standeth to minister there before the LORD thy -God, or unto the judge, even that man shall die: and thou shalt put -away the evil from Israel. - -17:13 And all the people shall hear, and fear, and do no more -presumptuously. - -17:14 When thou art come unto the land which the LORD thy God giveth -thee, and shalt possess it, and shalt dwell therein, and shalt say, I -will set a king over me, like as all the nations that are about me; -17:15 Thou shalt in any wise set him king over thee, whom the LORD thy -God shall choose: one from among thy brethren shalt thou set king over -thee: thou mayest not set a stranger over thee, which is not thy -brother. - -17:16 But he shall not multiply horses to himself, nor cause the -people to return to Egypt, to the end that he should multiply horses: -forasmuch as the LORD hath said unto you, Ye shall henceforth return -no more that way. - -17:17 Neither shall he multiply wives to himself, that his heart turn -not away: neither shall he greatly multiply to himself silver and -gold. - -17:18 And it shall be, when he sitteth upon the throne of his kingdom, -that he shall write him a copy of this law in a book out of that which -is before the priests the Levites: 17:19 And it shall be with him, and -he shall read therein all the days of his life: that he may learn to -fear the LORD his God, to keep all the words of this law and these -statutes, to do them: 17:20 That his heart be not lifted up above his -brethren, and that he turn not aside from the commandment, to the -right hand, or to the left: to the end that he may prolong his days in -his kingdom, he, and his children, in the midst of Israel. - -18:1 The priests the Levites, and all the tribe of Levi, shall have no -part nor inheritance with Israel: they shall eat the offerings of the -LORD made by fire, and his inheritance. - -18:2 Therefore shall they have no inheritance among their brethren: -the LORD is their inheritance, as he hath said unto them. - -18:3 And this shall be the priest's due from the people, from them -that offer a sacrifice, whether it be ox or sheep; and they shall give -unto the priest the shoulder, and the two cheeks, and the maw. - -18:4 The firstfruit also of thy corn, of thy wine, and of thine oil, -and the first of the fleece of thy sheep, shalt thou give him. - -18:5 For the LORD thy God hath chosen him out of all thy tribes, to -stand to minister in the name of the LORD, him and his sons for ever. - -18:6 And if a Levite come from any of thy gates out of all Israel, -where he sojourned, and come with all the desire of his mind unto the -place which the LORD shall choose; 18:7 Then he shall minister in the -name of the LORD his God, as all his brethren the Levites do, which -stand there before the LORD. - -18:8 They shall have like portions to eat, beside that which cometh of -the sale of his patrimony. - -18:9 When thou art come into the land which the LORD thy God giveth -thee, thou shalt not learn to do after the abominations of those -nations. - -18:10 There shall not be found among you any one that maketh his son -or his daughter to pass through the fire, or that useth divination, or -an observer of times, or an enchanter, or a witch. - -18:11 Or a charmer, or a consulter with familiar spirits, or a wizard, -or a necromancer. - -18:12 For all that do these things are an abomination unto the LORD: -and because of these abominations the LORD thy God doth drive them out -from before thee. - -18:13 Thou shalt be perfect with the LORD thy God. - -18:14 For these nations, which thou shalt possess, hearkened unto -observers of times, and unto diviners: but as for thee, the LORD thy -God hath not suffered thee so to do. - -18:15 The LORD thy God will raise up unto thee a Prophet from the -midst of thee, of thy brethren, like unto me; unto him ye shall -hearken; 18:16 According to all that thou desiredst of the LORD thy -God in Horeb in the day of the assembly, saying, Let me not hear again -the voice of the LORD my God, neither let me see this great fire any -more, that I die not. - -18:17 And the LORD said unto me, They have well spoken that which they -have spoken. - -18:18 I will raise them up a Prophet from among their brethren, like -unto thee, and will put my words in his mouth; and he shall speak unto -them all that I shall command him. - -18:19 And it shall come to pass, that whosoever will not hearken unto -my words which he shall speak in my name, I will require it of him. - -18:20 But the prophet, which shall presume to speak a word in my name, -which I have not commanded him to speak, or that shall speak in the -name of other gods, even that prophet shall die. - -18:21 And if thou say in thine heart, How shall we know the word which -the LORD hath not spoken? 18:22 When a prophet speaketh in the name -of the LORD, if the thing follow not, nor come to pass, that is the -thing which the LORD hath not spoken, but the prophet hath spoken it -presumptuously: thou shalt not be afraid of him. - -19:1 When the LORD thy God hath cut off the nations, whose land the -LORD thy God giveth thee, and thou succeedest them, and dwellest in -their cities, and in their houses; 19:2 Thou shalt separate three -cities for thee in the midst of thy land, which the LORD thy God -giveth thee to possess it. - -19:3 Thou shalt prepare thee a way, and divide the coasts of thy land, -which the LORD thy God giveth thee to inherit, into three parts, that -every slayer may flee thither. - -19:4 And this is the case of the slayer, which shall flee thither, -that he may live: Whoso killeth his neighbour ignorantly, whom he -hated not in time past; 19:5 As when a man goeth into the wood with -his neighbour to hew wood, and his hand fetcheth a stroke with the axe -to cut down the tree, and the head slippeth from the helve, and -lighteth upon his neighbour, that he die; he shall flee unto one of -those cities, and live: 19:6 Lest the avenger of the blood pursue the -slayer, while his heart is hot, and overtake him, because the way is -long, and slay him; whereas he was not worthy of death, inasmuch as he -hated him not in time past. - -19:7 Wherefore I command thee, saying, Thou shalt separate three -cities for thee. - -19:8 And if the LORD thy God enlarge thy coast, as he hath sworn unto -thy fathers, and give thee all the land which he promised to give unto -thy fathers; 19:9 If thou shalt keep all these commandments to do -them, which I command thee this day, to love the LORD thy God, and to -walk ever in his ways; then shalt thou add three cities more for thee, -beside these three: 19:10 That innocent blood be not shed in thy land, -which the LORD thy God giveth thee for an inheritance, and so blood be -upon thee. - -19:11 But if any man hate his neighbour, and lie in wait for him, and -rise up against him, and smite him mortally that he die, and fleeth -into one of these cities: 19:12 Then the elders of his city shall send -and fetch him thence, and deliver him into the hand of the avenger of -blood, that he may die. - -19:13 Thine eye shall not pity him, but thou shalt put away the guilt -of innocent blood from Israel, that it may go well with thee. - -19:14 Thou shalt not remove thy neighbour's landmark, which they of -old time have set in thine inheritance, which thou shalt inherit in -the land that the LORD thy God giveth thee to possess it. - -19:15 One witness shall not rise up against a man for any iniquity, or -for any sin, in any sin that he sinneth: at the mouth of two -witnesses, or at the mouth of three witnesses, shall the matter be -established. - -19:16 If a false witness rise up against any man to testify against -him that which is wrong; 19:17 Then both the men, between whom the -controversy is, shall stand before the LORD, before the priests and -the judges, which shall be in those days; 19:18 And the judges shall -make diligent inquisition: and, behold, if the witness be a false -witness, and hath testified falsely against his brother; 19:19 Then -shall ye do unto him, as he had thought to have done unto his brother: -so shalt thou put the evil away from among you. - -19:20 And those which remain shall hear, and fear, and shall -henceforth commit no more any such evil among you. - -19:21 And thine eye shall not pity; but life shall go for life, eye -for eye, tooth for tooth, hand for hand, foot for foot. - -20:1 When thou goest out to battle against thine enemies, and seest -horses, and chariots, and a people more than thou, be not afraid of -them: for the LORD thy God is with thee, which brought thee up out of -the land of Egypt. - -20:2 And it shall be, when ye are come nigh unto the battle, that the -priest shall approach and speak unto the people, 20:3 And shall say -unto them, Hear, O Israel, ye approach this day unto battle against -your enemies: let not your hearts faint, fear not, and do not tremble, -neither be ye terrified because of them; 20:4 For the LORD your God is -he that goeth with you, to fight for you against your enemies, to save -you. - -20:5 And the officers shall speak unto the people, saying, What man is -there that hath built a new house, and hath not dedicated it? let him -go and return to his house, lest he die in the battle, and another man -dedicate it. - -20:6 And what man is he that hath planted a vineyard, and hath not yet -eaten of it? let him also go and return unto his house, lest he die in -the battle, and another man eat of it. - -20:7 And what man is there that hath betrothed a wife, and hath not -taken her? let him go and return unto his house, lest he die in the -battle, and another man take her. - -20:8 And the officers shall speak further unto the people, and they -shall say, What man is there that is fearful and fainthearted? let him -go and return unto his house, lest his brethren's heart faint as well -as his heart. - -20:9 And it shall be, when the officers have made an end of speaking -unto the people that they shall make captains of the armies to lead -the people. - -20:10 When thou comest nigh unto a city to fight against it, then -proclaim peace unto it. - -20:11 And it shall be, if it make thee answer of peace, and open unto -thee, then it shall be, that all the people that is found therein -shall be tributaries unto thee, and they shall serve thee. - -20:12 And if it will make no peace with thee, but will make war -against thee, then thou shalt besiege it: 20:13 And when the LORD thy -God hath delivered it into thine hands, thou shalt smite every male -thereof with the edge of the sword: 20:14 But the women, and the -little ones, and the cattle, and all that is in the city, even all the -spoil thereof, shalt thou take unto thyself; and thou shalt eat the -spoil of thine enemies, which the LORD thy God hath given thee. - -20:15 Thus shalt thou do unto all the cities which are very far off -from thee, which are not of the cities of these nations. - -20:16 But of the cities of these people, which the LORD thy God doth -give thee for an inheritance, thou shalt save alive nothing that -breatheth: 20:17 But thou shalt utterly destroy them; namely, the -Hittites, and the Amorites, the Canaanites, and the Perizzites, the -Hivites, and the Jebusites; as the LORD thy God hath commanded thee: -20:18 That they teach you not to do after all their abominations, -which they have done unto their gods; so should ye sin against the -LORD your God. - -20:19 When thou shalt besiege a city a long time, in making war -against it to take it, thou shalt not destroy the trees thereof by -forcing an axe against them: for thou mayest eat of them, and thou -shalt not cut them down (for the tree of the field is man's life) to -employ them in the siege: 20:20 Only the trees which thou knowest that -they be not trees for meat, thou shalt destroy and cut them down; and -thou shalt build bulwarks against the city that maketh war with thee, -until it be subdued. - -21:1 If one be found slain in the land which the LORD thy God giveth -thee to possess it, lying in the field, and it be not known who hath -slain him: 21:2 Then thy elders and thy judges shall come forth, and -they shall measure unto the cities which are round about him that is -slain: 21:3 And it shall be, that the city which is next unto the -slain man, even the elders of that city shall take an heifer, which -hath not been wrought with, and which hath not drawn in the yoke; 21:4 -And the elders of that city shall bring down the heifer unto a rough -valley, which is neither eared nor sown, and shall strike off the -heifer's neck there in the valley: 21:5 And the priests the sons of -Levi shall come near; for them the LORD thy God hath chosen to -minister unto him, and to bless in the name of the LORD; and by their -word shall every controversy and every stroke be tried: 21:6 And all -the elders of that city, that are next unto the slain man, shall wash -their hands over the heifer that is beheaded in the valley: 21:7 And -they shall answer and say, Our hands have not shed this blood, neither -have our eyes seen it. - -21:8 Be merciful, O LORD, unto thy people Israel, whom thou hast -redeemed, and lay not innocent blood unto thy people of Israel's -charge. And the blood shall be forgiven them. - -21:9 So shalt thou put away the guilt of innocent blood from among -you, when thou shalt do that which is right in the sight of the LORD. - -21:10 When thou goest forth to war against thine enemies, and the LORD -thy God hath delivered them into thine hands, and thou hast taken them -captive, 21:11 And seest among the captives a beautiful woman, and -hast a desire unto her, that thou wouldest have her to thy wife; 21:12 -Then thou shalt bring her home to thine house, and she shall shave her -head, and pare her nails; 21:13 And she shall put the raiment of her -captivity from off her, and shall remain in thine house, and bewail -her father and her mother a full month: and after that thou shalt go -in unto her, and be her husband, and she shall be thy wife. - -21:14 And it shall be, if thou have no delight in her, then thou shalt -let her go whither she will; but thou shalt not sell her at all for -money, thou shalt not make merchandise of her, because thou hast -humbled her. - -21:15 If a man have two wives, one beloved, and another hated, and -they have born him children, both the beloved and the hated; and if -the firstborn son be hers that was hated: 21:16 Then it shall be, when -he maketh his sons to inherit that which he hath, that he may not make -the son of the beloved firstborn before the son of the hated, which is -indeed the firstborn: 21:17 But he shall acknowledge the son of the -hated for the firstborn, by giving him a double portion of all that he -hath: for he is the beginning of his strength; the right of the -firstborn is his. - -21:18 If a man have a stubborn and rebellious son, which will not obey -the voice of his father, or the voice of his mother, and that, when -they have chastened him, will not hearken unto them: 21:19 Then shall -his father and his mother lay hold on him, and bring him out unto the -elders of his city, and unto the gate of his place; 21:20 And they -shall say unto the elders of his city, This our son is stubborn and -rebellious, he will not obey our voice; he is a glutton, and a -drunkard. - -21:21 And all the men of his city shall stone him with stones, that he -die: so shalt thou put evil away from among you; and all Israel shall -hear, and fear. - -21:22 And if a man have committed a sin worthy of death, and he be to -be put to death, and thou hang him on a tree: 21:23 His body shall not -remain all night upon the tree, but thou shalt in any wise bury him -that day; (for he that is hanged is accursed of God;) that thy land be -not defiled, which the LORD thy God giveth thee for an inheritance. - -22:1 Thou shalt not see thy brother's ox or his sheep go astray, and -hide thyself from them: thou shalt in any case bring them again unto -thy brother. - -22:2 And if thy brother be not nigh unto thee, or if thou know him -not, then thou shalt bring it unto thine own house, and it shall be -with thee until thy brother seek after it, and thou shalt restore it -to him again. - -22:3 In like manner shalt thou do with his ass; and so shalt thou do -with his raiment; and with all lost thing of thy brother's, which he -hath lost, and thou hast found, shalt thou do likewise: thou mayest -not hide thyself. - -22:4 Thou shalt not see thy brother's ass or his ox fall down by the -way, and hide thyself from them: thou shalt surely help him to lift -them up again. - -22:5 The woman shall not wear that which pertaineth unto a man, -neither shall a man put on a woman's garment: for all that do so are -abomination unto the LORD thy God. - -22:6 If a bird's nest chance to be before thee in the way in any tree, -or on the ground, whether they be young ones, or eggs, and the dam -sitting upon the young, or upon the eggs, thou shalt not take the dam -with the young: 22:7 But thou shalt in any wise let the dam go, and -take the young to thee; that it may be well with thee, and that thou -mayest prolong thy days. - -22:8 When thou buildest a new house, then thou shalt make a battlement -for thy roof, that thou bring not blood upon thine house, if any man -fall from thence. - -22:9 Thou shalt not sow thy vineyard with divers seeds: lest the fruit -of thy seed which thou hast sown, and the fruit of thy vineyard, be -defiled. - -22:10 Thou shalt not plow with an ox and an ass together. - -22:11 Thou shalt not wear a garment of divers sorts, as of woollen and -linen together. - -22:12 Thou shalt make thee fringes upon the four quarters of thy -vesture, wherewith thou coverest thyself. - -22:13 If any man take a wife, and go in unto her, and hate her, 22:14 -And give occasions of speech against her, and bring up an evil name -upon her, and say, I took this woman, and when I came to her, I found -her not a maid: 22:15 Then shall the father of the damsel, and her -mother, take and bring forth the tokens of the damsel's virginity unto -the elders of the city in the gate: 22:16 And the damsel's father -shall say unto the elders, I gave my daughter unto this man to wife, -and he hateth her; 22:17 And, lo, he hath given occasions of speech -against her, saying, I found not thy daughter a maid; and yet these -are the tokens of my daughter's virginity. And they shall spread the -cloth before the elders of the city. - -22:18 And the elders of that city shall take that man and chastise -him; 22:19 And they shall amerce him in an hundred shekels of silver, -and give them unto the father of the damsel, because he hath brought -up an evil name upon a virgin of Israel: and she shall be his wife; he -may not put her away all his days. - -22:20 But if this thing be true, and the tokens of virginity be not -found for the damsel: 22:21 Then they shall bring out the damsel to -the door of her father's house, and the men of her city shall stone -her with stones that she die: because she hath wrought folly in -Israel, to play the whore in her father's house: so shalt thou put -evil away from among you. - -22:22 If a man be found lying with a woman married to an husband, then -they shall both of them die, both the man that lay with the woman, and -the woman: so shalt thou put away evil from Israel. - -22:23 If a damsel that is a virgin be betrothed unto an husband, and a -man find her in the city, and lie with her; 22:24 Then ye shall bring -them both out unto the gate of that city, and ye shall stone them with -stones that they die; the damsel, because she cried not, being in the -city; and the man, because he hath humbled his neighbour's wife: so -thou shalt put away evil from among you. - -22:25 But if a man find a betrothed damsel in the field, and the man -force her, and lie with her: then the man only that lay with her shall -die. - -22:26 But unto the damsel thou shalt do nothing; there is in the -damsel no sin worthy of death: for as when a man riseth against his -neighbour, and slayeth him, even so is this matter: 22:27 For he found -her in the field, and the betrothed damsel cried, and there was none -to save her. - -22:28 If a man find a damsel that is a virgin, which is not betrothed, -and lay hold on her, and lie with her, and they be found; 22:29 Then -the man that lay with her shall give unto the damsel's father fifty -shekels of silver, and she shall be his wife; because he hath humbled -her, he may not put her away all his days. - -22:30 A man shall not take his father's wife, nor discover his -father's skirt. - -23:1 He that is wounded in the stones, or hath his privy member cut -off, shall not enter into the congregation of the LORD. - -23:2 A bastard shall not enter into the congregation of the LORD; even -to his tenth generation shall he not enter into the congregation of -the LORD. - -23:3 An Ammonite or Moabite shall not enter into the congregation of -the LORD; even to their tenth generation shall they not enter into the -congregation of the LORD for ever: 23:4 Because they met you not with -bread and with water in the way, when ye came forth out of Egypt; and -because they hired against thee Balaam the son of Beor of Pethor of -Mesopotamia, to curse thee. - -23:5 Nevertheless the LORD thy God would not hearken unto Balaam; but -the LORD thy God turned the curse into a blessing unto thee, because -the LORD thy God loved thee. - -23:6 Thou shalt not seek their peace nor their prosperity all thy days -for ever. - -23:7 Thou shalt not abhor an Edomite; for he is thy brother: thou -shalt not abhor an Egyptian; because thou wast a stranger in his land. - -23:8 The children that are begotten of them shall enter into the -congregation of the LORD in their third generation. - -23:9 When the host goeth forth against thine enemies, then keep thee -from every wicked thing. - -23:10 If there be among you any man, that is not clean by reason of -uncleanness that chanceth him by night, then shall he go abroad out of -the camp, he shall not come within the camp: 23:11 But it shall be, -when evening cometh on, he shall wash himself with water: and when the -sun is down, he shall come into the camp again. - -23:12 Thou shalt have a place also without the camp, whither thou -shalt go forth abroad: 23:13 And thou shalt have a paddle upon thy -weapon; and it shall be, when thou wilt ease thyself abroad, thou -shalt dig therewith, and shalt turn back and cover that which cometh -from thee: 23:14 For the LORD thy God walketh in the midst of thy -camp, to deliver thee, and to give up thine enemies before thee; -therefore shall thy camp be holy: that he see no unclean thing in -thee, and turn away from thee. - -23:15 Thou shalt not deliver unto his master the servant which is -escaped from his master unto thee: 23:16 He shall dwell with thee, -even among you, in that place which he shall choose in one of thy -gates, where it liketh him best: thou shalt not oppress him. - -23:17 There shall be no whore of the daughters of Israel, nor a -sodomite of the sons of Israel. - -23:18 Thou shalt not bring the hire of a whore, or the price of a dog, -into the house of the LORD thy God for any vow: for even both these -are abomination unto the LORD thy God. - -23:19 Thou shalt not lend upon usury to thy brother; usury of money, -usury of victuals, usury of any thing that is lent upon usury: 23:20 -Unto a stranger thou mayest lend upon usury; but unto thy brother thou -shalt not lend upon usury: that the LORD thy God may bless thee in all -that thou settest thine hand to in the land whither thou goest to -possess it. - -23:21 When thou shalt vow a vow unto the LORD thy God, thou shalt not -slack to pay it: for the LORD thy God will surely require it of thee; -and it would be sin in thee. - -23:22 But if thou shalt forbear to vow, it shall be no sin in thee. - -23:23 That which is gone out of thy lips thou shalt keep and perform; -even a freewill offering, according as thou hast vowed unto the LORD -thy God, which thou hast promised with thy mouth. - -23:24 When thou comest into thy neighbour's vineyard, then thou mayest -eat grapes thy fill at thine own pleasure; but thou shalt not put any -in thy vessel. - -23:25 When thou comest into the standing corn of thy neighbour, then -thou mayest pluck the ears with thine hand; but thou shalt not move a -sickle unto thy neighbour's standing corn. - -24:1 When a man hath taken a wife, and married her, and it come to -pass that she find no favour in his eyes, because he hath found some -uncleanness in her: then let him write her a bill of divorcement, and -give it in her hand, and send her out of his house. - -24:2 And when she is departed out of his house, she may go and be -another man's wife. - -24:3 And if the latter husband hate her, and write her a bill of -divorcement, and giveth it in her hand, and sendeth her out of his -house; or if the latter husband die, which took her to be his wife; -24:4 Her former husband, which sent her away, may not take her again -to be his wife, after that she is defiled; for that is abomination -before the LORD: and thou shalt not cause the land to sin, which the -LORD thy God giveth thee for an inheritance. - -24:5 When a man hath taken a new wife, he shall not go out to war, -neither shall he be charged with any business: but he shall be free at -home one year, and shall cheer up his wife which he hath taken. - -24:6 No man shall take the nether or the upper millstone to pledge: -for he taketh a man's life to pledge. - -24:7 If a man be found stealing any of his brethren of the children of -Israel, and maketh merchandise of him, or selleth him; then that thief -shall die; and thou shalt put evil away from among you. - -24:8 Take heed in the plague of leprosy, that thou observe diligently, -and do according to all that the priests the Levites shall teach you: -as I commanded them, so ye shall observe to do. - -24:9 Remember what the LORD thy God did unto Miriam by the way, after -that ye were come forth out of Egypt. - -24:10 When thou dost lend thy brother any thing, thou shalt not go -into his house to fetch his pledge. - -24:11 Thou shalt stand abroad, and the man to whom thou dost lend -shall bring out the pledge abroad unto thee. - -24:12 And if the man be poor, thou shalt not sleep with his pledge: -24:13 In any case thou shalt deliver him the pledge again when the sun -goeth down, that he may sleep in his own raiment, and bless thee: and -it shall be righteousness unto thee before the LORD thy God. - -24:14 Thou shalt not oppress an hired servant that is poor and needy, -whether he be of thy brethren, or of thy strangers that are in thy -land within thy gates: 24:15 At his day thou shalt give him his hire, -neither shall the sun go down upon it; for he is poor, and setteth his -heart upon it: lest he cry against thee unto the LORD, and it be sin -unto thee. - -24:16 The fathers shall not be put to death for the children, neither -shall the children be put to death for the fathers: every man shall be -put to death for his own sin. - -24:17 Thou shalt not pervert the judgment of the stranger, nor of the -fatherless; nor take a widow's raiment to pledge: 24:18 But thou shalt -remember that thou wast a bondman in Egypt, and the LORD thy God -redeemed thee thence: therefore I command thee to do this thing. - -24:19 When thou cuttest down thine harvest in thy field, and hast -forgot a sheaf in the field, thou shalt not go again to fetch it: it -shall be for the stranger, for the fatherless, and for the widow: that -the LORD thy God may bless thee in all the work of thine hands. - -24:20 When thou beatest thine olive tree, thou shalt not go over the -boughs again: it shall be for the stranger, for the fatherless, and -for the widow. - -24:21 When thou gatherest the grapes of thy vineyard, thou shalt not -glean it afterward: it shall be for the stranger, for the fatherless, -and for the widow. - -24:22 And thou shalt remember that thou wast a bondman in the land of -Egypt: therefore I command thee to do this thing. - -25:1 If there be a controversy between men, and they come unto -judgment, that the judges may judge them; then they shall justify the -righteous, and condemn the wicked. - -25:2 And it shall be, if the wicked man be worthy to be beaten, that -the judge shall cause him to lie down, and to be beaten before his -face, according to his fault, by a certain number. - -25:3 Forty stripes he may give him, and not exceed: lest, if he should -exceed, and beat him above these with many stripes, then thy brother -should seem vile unto thee. - -25:4 Thou shalt not muzzle the ox when he treadeth out the corn. - -25:5 If brethren dwell together, and one of them die, and have no -child, the wife of the dead shall not marry without unto a stranger: -her husband's brother shall go in unto her, and take her to him to -wife, and perform the duty of an husband's brother unto her. - -25:6 And it shall be, that the firstborn which she beareth shall -succeed in the name of his brother which is dead, that his name be not -put out of Israel. - -25:7 And if the man like not to take his brother's wife, then let his -brother's wife go up to the gate unto the elders, and say, My -husband's brother refuseth to raise up unto his brother a name in -Israel, he will not perform the duty of my husband's brother. - -25:8 Then the elders of his city shall call him, and speak unto him: -and if he stand to it, and say, I like not to take her; 25:9 Then -shall his brother's wife come unto him in the presence of the elders, -and loose his shoe from off his foot, and spit in his face, and shall -answer and say, So shall it be done unto that man that will not build -up his brother's house. - -25:10 And his name shall be called in Israel, The house of him that -hath his shoe loosed. - -25:11 When men strive together one with another, and the wife of the -one draweth near for to deliver her husband out of the hand of him -that smiteth him, and putteth forth her hand, and taketh him by the -secrets: 25:12 Then thou shalt cut off her hand, thine eye shall not -pity her. - -25:13 Thou shalt not have in thy bag divers weights, a great and a -small. - -25:14 Thou shalt not have in thine house divers measures, a great and -a small. - -25:15 But thou shalt have a perfect and just weight, a perfect and -just measure shalt thou have: that thy days may be lengthened in the -land which the LORD thy God giveth thee. - -25:16 For all that do such things, and all that do unrighteously, are -an abomination unto the LORD thy God. - -25:17 Remember what Amalek did unto thee by the way, when ye were come -forth out of Egypt; 25:18 How he met thee by the way, and smote the -hindmost of thee, even all that were feeble behind thee, when thou -wast faint and weary; and he feared not God. - -25:19 Therefore it shall be, when the LORD thy God hath given thee -rest from all thine enemies round about, in the land which the LORD -thy God giveth thee for an inheritance to possess it, that thou shalt -blot out the remembrance of Amalek from under heaven; thou shalt not -forget it. - -26:1 And it shall be, when thou art come in unto the land which the -LORD thy God giveth thee for an inheritance, and possessest it, and -dwellest therein; 26:2 That thou shalt take of the first of all the -fruit of the earth, which thou shalt bring of thy land that the LORD -thy God giveth thee, and shalt put it in a basket, and shalt go unto -the place which the LORD thy God shall choose to place his name there. - -26:3 And thou shalt go unto the priest that shall be in those days, -and say unto him, I profess this day unto the LORD thy God, that I am -come unto the country which the LORD sware unto our fathers for to -give us. - -26:4 And the priest shall take the basket out of thine hand, and set -it down before the altar of the LORD thy God. - -26:5 And thou shalt speak and say before the LORD thy God, A Syrian -ready to perish was my father, and he went down into Egypt, and -sojourned there with a few, and became there a nation, great, mighty, -and populous: 26:6 And the Egyptians evil entreated us, and afflicted -us, and laid upon us hard bondage: 26:7 And when we cried unto the -LORD God of our fathers, the LORD heard our voice, and looked on our -affliction, and our labour, and our oppression: 26:8 And the LORD -brought us forth out of Egypt with a mighty hand, and with an -outstretched arm, and with great terribleness, and with signs, and -with wonders: 26:9 And he hath brought us into this place, and hath -given us this land, even a land that floweth with milk and honey. - -26:10 And now, behold, I have brought the firstfruits of the land, -which thou, O LORD, hast given me. And thou shalt set it before the -LORD thy God, and worship before the LORD thy God: 26:11 And thou -shalt rejoice in every good thing which the LORD thy God hath given -unto thee, and unto thine house, thou, and the Levite, and the -stranger that is among you. - -26:12 When thou hast made an end of tithing all the tithes of thine -increase the third year, which is the year of tithing, and hast given -it unto the Levite, the stranger, the fatherless, and the widow, that -they may eat within thy gates, and be filled; 26:13 Then thou shalt -say before the LORD thy God, I have brought away the hallowed things -out of mine house, and also have given them unto the Levite, and unto -the stranger, to the fatherless, and to the widow, according to all -thy commandments which thou hast commanded me: I have not transgressed -thy commandments, neither have I forgotten them. - -26:14 I have not eaten thereof in my mourning, neither have I taken -away ought thereof for any unclean use, nor given ought thereof for -the dead: but I have hearkened to the voice of the LORD my God, and -have done according to all that thou hast commanded me. - -26:15 Look down from thy holy habitation, from heaven, and bless thy -people Israel, and the land which thou hast given us, as thou swarest -unto our fathers, a land that floweth with milk and honey. - -26:16 This day the LORD thy God hath commanded thee to do these -statutes and judgments: thou shalt therefore keep and do them with all -thine heart, and with all thy soul. - -26:17 Thou hast avouched the LORD this day to be thy God, and to walk -in his ways, and to keep his statutes, and his commandments, and his -judgments, and to hearken unto his voice: 26:18 And the LORD hath -avouched thee this day to be his peculiar people, as he hath promised -thee, and that thou shouldest keep all his commandments; 26:19 And to -make thee high above all nations which he hath made, in praise, and in -name, and in honour; and that thou mayest be an holy people unto the -LORD thy God, as he hath spoken. - -27:1 And Moses with the elders of Israel commanded the people, saying, -Keep all the commandments which I command you this day. - -27:2 And it shall be on the day when ye shall pass over Jordan unto -the land which the LORD thy God giveth thee, that thou shalt set thee -up great stones, and plaister them with plaister: 27:3 And thou shalt -write upon them all the words of this law, when thou art passed over, -that thou mayest go in unto the land which the LORD thy God giveth -thee, a land that floweth with milk and honey; as the LORD God of thy -fathers hath promised thee. - -27:4 Therefore it shall be when ye be gone over Jordan, that ye shall -set up these stones, which I command you this day, in mount Ebal, and -thou shalt plaister them with plaister. - -27:5 And there shalt thou build an altar unto the LORD thy God, an -altar of stones: thou shalt not lift up any iron tool upon them. - -27:6 Thou shalt build the altar of the LORD thy God of whole stones: -and thou shalt offer burnt offerings thereon unto the LORD thy God: -27:7 And thou shalt offer peace offerings, and shalt eat there, and -rejoice before the LORD thy God. - -27:8 And thou shalt write upon the stones all the words of this law -very plainly. - -27:9 And Moses and the priests the Levites spake unto all Israel, -saying, Take heed, and hearken, O Israel; this day thou art become the -people of the LORD thy God. - -27:10 Thou shalt therefore obey the voice of the LORD thy God, and do -his commandments and his statutes, which I command thee this day. - -27:11 And Moses charged the people the same day, saying, 27:12 These -shall stand upon mount Gerizim to bless the people, when ye are come -over Jordan; Simeon, and Levi, and Judah, and Issachar, and Joseph, -and Benjamin: 27:13 And these shall stand upon mount Ebal to curse; -Reuben, Gad, and Asher, and Zebulun, Dan, and Naphtali. - -27:14 And the Levites shall speak, and say unto all the men of Israel -with a loud voice, 27:15 Cursed be the man that maketh any graven or -molten image, an abomination unto the LORD, the work of the hands of -the craftsman, and putteth it in a secret place. And all the people -shall answer and say, Amen. - -27:16 Cursed be he that setteth light by his father or his mother. And -all the people shall say, Amen. - -27:17 Cursed be he that removeth his neighbour's landmark. And all the -people shall say, Amen. - -27:18 Cursed be he that maketh the blind to wander out of the way. And -all the people shall say, Amen. - -27:19 Cursed be he that perverteth the judgment of the stranger, -fatherless, and widow. And all the people shall say, Amen. - -27:20 Cursed be he that lieth with his father's wife; because he -uncovereth his father's skirt. And all the people shall say, Amen. - -27:21 Cursed be he that lieth with any manner of beast. And all the -people shall say, Amen. - -27:22 Cursed be he that lieth with his sister, the daughter of his -father, or the daughter of his mother. And all the people shall say, -Amen. - -27:23 Cursed be he that lieth with his mother in law. And all the -people shall say, Amen. - -27:24 Cursed be he that smiteth his neighbour secretly. And all the -people shall say, Amen. - -27:25 Cursed be he that taketh reward to slay an innocent person. And -all the people shall say, Amen. - -27:26 Cursed be he that confirmeth not all the words of this law to do -them. And all the people shall say, Amen. - -28:1 And it shall come to pass, if thou shalt hearken diligently unto -the voice of the LORD thy God, to observe and to do all his -commandments which I command thee this day, that the LORD thy God will -set thee on high above all nations of the earth: 28:2 And all these -blessings shall come on thee, and overtake thee, if thou shalt hearken -unto the voice of the LORD thy God. - -28:3 Blessed shalt thou be in the city, and blessed shalt thou be in -the field. - -28:4 Blessed shall be the fruit of thy body, and the fruit of thy -ground, and the fruit of thy cattle, the increase of thy kine, and the -flocks of thy sheep. - -28:5 Blessed shall be thy basket and thy store. - -28:6 Blessed shalt thou be when thou comest in, and blessed shalt thou -be when thou goest out. - -28:7 The LORD shall cause thine enemies that rise up against thee to -be smitten before thy face: they shall come out against thee one way, -and flee before thee seven ways. - -28:8 The LORD shall command the blessing upon thee in thy storehouses, -and in all that thou settest thine hand unto; and he shall bless thee -in the land which the LORD thy God giveth thee. - -28:9 The LORD shall establish thee an holy people unto himself, as he -hath sworn unto thee, if thou shalt keep the commandments of the LORD -thy God, and walk in his ways. - -28:10 And all people of the earth shall see that thou art called by -the name of the LORD; and they shall be afraid of thee. - -28:11 And the LORD shall make thee plenteous in goods, in the fruit of -thy body, and in the fruit of thy cattle, and in the fruit of thy -ground, in the land which the LORD sware unto thy fathers to give -thee. - -28:12 The LORD shall open unto thee his good treasure, the heaven to -give the rain unto thy land in his season, and to bless all the work -of thine hand: and thou shalt lend unto many nations, and thou shalt -not borrow. - -28:13 And the LORD shall make thee the head, and not the tail; and -thou shalt be above only, and thou shalt not be beneath; if that thou -hearken unto the commandments of the LORD thy God, which I command -thee this day, to observe and to do them: 28:14 And thou shalt not go -aside from any of the words which I command thee this day, to the -right hand, or to the left, to go after other gods to serve them. - -28:15 But it shall come to pass, if thou wilt not hearken unto the -voice of the LORD thy God, to observe to do all his commandments and -his statutes which I command thee this day; that all these curses -shall come upon thee, and overtake thee: 28:16 Cursed shalt thou be in -the city, and cursed shalt thou be in the field. - -28:17 Cursed shall be thy basket and thy store. - -28:18 Cursed shall be the fruit of thy body, and the fruit of thy -land, the increase of thy kine, and the flocks of thy sheep. - -28:19 Cursed shalt thou be when thou comest in, and cursed shalt thou -be when thou goest out. - -28:20 The LORD shall send upon thee cursing, vexation, and rebuke, in -all that thou settest thine hand unto for to do, until thou be -destroyed, and until thou perish quickly; because of the wickedness of -thy doings, whereby thou hast forsaken me. - -28:21 The LORD shall make the pestilence cleave unto thee, until he -have consumed thee from off the land, whither thou goest to possess -it. - -28:22 The LORD shall smite thee with a consumption, and with a fever, -and with an inflammation, and with an extreme burning, and with the -sword, and with blasting, and with mildew; and they shall pursue thee -until thou perish. - -28:23 And thy heaven that is over thy head shall be brass, and the -earth that is under thee shall be iron. - -28:24 The LORD shall make the rain of thy land powder and dust: from -heaven shall it come down upon thee, until thou be destroyed. - -28:25 The LORD shall cause thee to be smitten before thine enemies: -thou shalt go out one way against them, and flee seven ways before -them: and shalt be removed into all the kingdoms of the earth. - -28:26 And thy carcase shall be meat unto all fowls of the air, and -unto the beasts of the earth, and no man shall fray them away. - -28:27 The LORD will smite thee with the botch of Egypt, and with the -emerods, and with the scab, and with the itch, whereof thou canst not -be healed. - -28:28 The LORD shall smite thee with madness, and blindness, and -astonishment of heart: 28:29 And thou shalt grope at noonday, as the -blind gropeth in darkness, and thou shalt not prosper in thy ways: and -thou shalt be only oppressed and spoiled evermore, and no man shall -save thee. - -28:30 Thou shalt betroth a wife, and another man shall lie with her: -thou shalt build an house, and thou shalt not dwell therein: thou -shalt plant a vineyard, and shalt not gather the grapes thereof. - -28:31 Thine ox shall be slain before thine eyes, and thou shalt not -eat thereof: thine ass shall be violently taken away from before thy -face, and shall not be restored to thee: thy sheep shall be given unto -thine enemies, and thou shalt have none to rescue them. - -28:32 Thy sons and thy daughters shall be given unto another people, -and thine eyes shall look, and fail with longing for them all the day -long; and there shall be no might in thine hand. - -28:33 The fruit of thy land, and all thy labours, shall a nation which -thou knowest not eat up; and thou shalt be only oppressed and crushed -alway: 28:34 So that thou shalt be mad for the sight of thine eyes -which thou shalt see. - -28:35 The LORD shall smite thee in the knees, and in the legs, with a -sore botch that cannot be healed, from the sole of thy foot unto the -top of thy head. - -28:36 The LORD shall bring thee, and thy king which thou shalt set -over thee, unto a nation which neither thou nor thy fathers have -known; and there shalt thou serve other gods, wood and stone. - -28:37 And thou shalt become an astonishment, a proverb, and a byword, -among all nations whither the LORD shall lead thee. - -28:38 Thou shalt carry much seed out into the field, and shalt gather -but little in; for the locust shall consume it. - -28:39 Thou shalt plant vineyards, and dress them, but shalt neither -drink of the wine, nor gather the grapes; for the worms shall eat -them. - -28:40 Thou shalt have olive trees throughout all thy coasts, but thou -shalt not anoint thyself with the oil; for thine olive shall cast his -fruit. - -28:41 Thou shalt beget sons and daughters, but thou shalt not enjoy -them; for they shall go into captivity. - -28:42 All thy trees and fruit of thy land shall the locust consume. - -28:43 The stranger that is within thee shall get up above thee very -high; and thou shalt come down very low. - -28:44 He shall lend to thee, and thou shalt not lend to him: he shall -be the head, and thou shalt be the tail. - -28:45 Moreover all these curses shall come upon thee, and shall pursue -thee, and overtake thee, till thou be destroyed; because thou -hearkenedst not unto the voice of the LORD thy God, to keep his -commandments and his statutes which he commanded thee: 28:46 And they -shall be upon thee for a sign and for a wonder, and upon thy seed for -ever. - -28:47 Because thou servedst not the LORD thy God with joyfulness, and -with gladness of heart, for the abundance of all things; 28:48 -Therefore shalt thou serve thine enemies which the LORD shall send -against thee, in hunger, and in thirst, and in nakedness, and in want -of all things: and he shall put a yoke of iron upon thy neck, until he -have destroyed thee. - -28:49 The LORD shall bring a nation against thee from far, from the -end of the earth, as swift as the eagle flieth; a nation whose tongue -thou shalt not understand; 28:50 A nation of fierce countenance, which -shall not regard the person of the old, nor shew favour to the young: -28:51 And he shall eat the fruit of thy cattle, and the fruit of thy -land, until thou be destroyed: which also shall not leave thee either -corn, wine, or oil, or the increase of thy kine, or flocks of thy -sheep, until he have destroyed thee. - -28:52 And he shall besiege thee in all thy gates, until thy high and -fenced walls come down, wherein thou trustedst, throughout all thy -land: and he shall besiege thee in all thy gates throughout all thy -land, which the LORD thy God hath given thee. - -28:53 And thou shalt eat the fruit of thine own body, the flesh of thy -sons and of thy daughters, which the LORD thy God hath given thee, in -the siege, and in the straitness, wherewith thine enemies shall -distress thee: 28:54 So that the man that is tender among you, and -very delicate, his eye shall be evil toward his brother, and toward -the wife of his bosom, and toward the remnant of his children which he -shall leave: 28:55 So that he will not give to any of them of the -flesh of his children whom he shall eat: because he hath nothing left -him in the siege, and in the straitness, wherewith thine enemies shall -distress thee in all thy gates. - -28:56 The tender and delicate woman among you, which would not -adventure to set the sole of her foot upon the ground for delicateness -and tenderness, her eye shall be evil toward the husband of her bosom, -and toward her son, and toward her daughter, 28:57 And toward her -young one that cometh out from between her feet, and toward her -children which she shall bear: for she shall eat them for want of all -things secretly in the siege and straitness, wherewith thine enemy -shall distress thee in thy gates. - -28:58 If thou wilt not observe to do all the words of this law that -are written in this book, that thou mayest fear this glorious and -fearful name, THE LORD THY GOD; 28:59 Then the LORD will make thy -plagues wonderful, and the plagues of thy seed, even great plagues, -and of long continuance, and sore sicknesses, and of long continuance. - -28:60 Moreover he will bring upon thee all the diseases of Egypt, -which thou wast afraid of; and they shall cleave unto thee. - -28:61 Also every sickness, and every plague, which is not written in -the book of this law, them will the LORD bring upon thee, until thou -be destroyed. - -28:62 And ye shall be left few in number, whereas ye were as the stars -of heaven for multitude; because thou wouldest not obey the voice of -the LORD thy God. - -28:63 And it shall come to pass, that as the LORD rejoiced over you to -do you good, and to multiply you; so the LORD will rejoice over you to -destroy you, and to bring you to nought; and ye shall be plucked from -off the land whither thou goest to possess it. - -28:64 And the LORD shall scatter thee among all people, from the one -end of the earth even unto the other; and there thou shalt serve other -gods, which neither thou nor thy fathers have known, even wood and -stone. - -28:65 And among these nations shalt thou find no ease, neither shall -the sole of thy foot have rest: but the LORD shall give thee there a -trembling heart, and failing of eyes, and sorrow of mind: 28:66 And -thy life shall hang in doubt before thee; and thou shalt fear day and -night, and shalt have none assurance of thy life: 28:67 In the morning -thou shalt say, Would God it were even! and at even thou shalt say, -Would God it were morning! for the fear of thine heart wherewith thou -shalt fear, and for the sight of thine eyes which thou shalt see. - -28:68 And the LORD shall bring thee into Egypt again with ships, by -the way whereof I spake unto thee, Thou shalt see it no more again: -and there ye shall be sold unto your enemies for bondmen and -bondwomen, and no man shall buy you. - -29:1 These are the words of the covenant, which the LORD commanded -Moses to make with the children of Israel in the land of Moab, beside -the covenant which he made with them in Horeb. - -29:2 And Moses called unto all Israel, and said unto them, Ye have -seen all that the LORD did before your eyes in the land of Egypt unto -Pharaoh, and unto all his servants, and unto all his land; 29:3 The -great temptations which thine eyes have seen, the signs, and those -great miracles: 29:4 Yet the LORD hath not given you an heart to -perceive, and eyes to see, and ears to hear, unto this day. - -29:5 And I have led you forty years in the wilderness: your clothes -are not waxen old upon you, and thy shoe is not waxen old upon thy -foot. - -29:6 Ye have not eaten bread, neither have ye drunk wine or strong -drink: that ye might know that I am the LORD your God. - -29:7 And when ye came unto this place, Sihon the king of Heshbon, and -Og the king of Bashan, came out against us unto battle, and we smote -them: 29:8 And we took their land, and gave it for an inheritance unto -the Reubenites, and to the Gadites, and to the half tribe of Manasseh. - -29:9 Keep therefore the words of this covenant, and do them, that ye -may prosper in all that ye do. - -29:10 Ye stand this day all of you before the LORD your God; your -captains of your tribes, your elders, and your officers, with all the -men of Israel, 29:11 Your little ones, your wives, and thy stranger -that is in thy camp, from the hewer of thy wood unto the drawer of thy -water: 29:12 That thou shouldest enter into covenant with the LORD thy -God, and into his oath, which the LORD thy God maketh with thee this -day: 29:13 That he may establish thee to day for a people unto -himself, and that he may be unto thee a God, as he hath said unto -thee, and as he hath sworn unto thy fathers, to Abraham, to Isaac, and -to Jacob. - -29:14 Neither with you only do I make this covenant and this oath; -29:15 But with him that standeth here with us this day before the LORD -our God, and also with him that is not here with us this day: 29:16 -(For ye know how we have dwelt in the land of Egypt; and how we came -through the nations which ye passed by; 29:17 And ye have seen their -abominations, and their idols, wood and stone, silver and gold, which -were among them:) 29:18 Lest there should be among you man, or woman, -or family, or tribe, whose heart turneth away this day from the LORD -our God, to go and serve the gods of these nations; lest there should -be among you a root that beareth gall and wormwood; 29:19 And it come -to pass, when he heareth the words of this curse, that he bless -himself in his heart, saying, I shall have peace, though I walk in the -imagination of mine heart, to add drunkenness to thirst: 29:20 The -LORD will not spare him, but then the anger of the LORD and his -jealousy shall smoke against that man, and all the curses that are -written in this book shall lie upon him, and the LORD shall blot out -his name from under heaven. - -29:21 And the LORD shall separate him unto evil out of all the tribes -of Israel, according to all the curses of the covenant that are -written in this book of the law: 29:22 So that the generation to come -of your children that shall rise up after you, and the stranger that -shall come from a far land, shall say, when they see the plagues of -that land, and the sicknesses which the LORD hath laid upon it; 29:23 -And that the whole land thereof is brimstone, and salt, and burning, -that it is not sown, nor beareth, nor any grass groweth therein, like -the overthrow of Sodom, and Gomorrah, Admah, and Zeboim, which the -LORD overthrew in his anger, and in his wrath: 29:24 Even all nations -shall say, Wherefore hath the LORD done thus unto this land? what -meaneth the heat of this great anger? 29:25 Then men shall say, -Because they have forsaken the covenant of the LORD God of their -fathers, which he made with them when he brought them forth out of the -land of Egypt: 29:26 For they went and served other gods, and -worshipped them, gods whom they knew not, and whom he had not given -unto them: 29:27 And the anger of the LORD was kindled against this -land, to bring upon it all the curses that are written in this book: -29:28 And the LORD rooted them out of their land in anger, and in -wrath, and in great indignation, and cast them into another land, as -it is this day. - -29:29 The secret things belong unto the LORD our God: but those things -which are revealed belong unto us and to our children for ever, that -we may do all the words of this law. - -30:1 And it shall come to pass, when all these things are come upon -thee, the blessing and the curse, which I have set before thee, and -thou shalt call them to mind among all the nations, whither the LORD -thy God hath driven thee, 30:2 And shalt return unto the LORD thy God, -and shalt obey his voice according to all that I command thee this -day, thou and thy children, with all thine heart, and with all thy -soul; 30:3 That then the LORD thy God will turn thy captivity, and -have compassion upon thee, and will return and gather thee from all -the nations, whither the LORD thy God hath scattered thee. - -30:4 If any of thine be driven out unto the outmost parts of heaven, -from thence will the LORD thy God gather thee, and from thence will he -fetch thee: 30:5 And the LORD thy God will bring thee into the land -which thy fathers possessed, and thou shalt possess it; and he will do -thee good, and multiply thee above thy fathers. - -30:6 And the LORD thy God will circumcise thine heart, and the heart -of thy seed, to love the LORD thy God with all thine heart, and with -all thy soul, that thou mayest live. - -30:7 And the LORD thy God will put all these curses upon thine -enemies, and on them that hate thee, which persecuted thee. - -30:8 And thou shalt return and obey the voice of the LORD, and do all -his commandments which I command thee this day. - -30:9 And the LORD thy God will make thee plenteous in every work of -thine hand, in the fruit of thy body, and in the fruit of thy cattle, -and in the fruit of thy land, for good: for the LORD will again -rejoice over thee for good, as he rejoiced over thy fathers: 30:10 If -thou shalt hearken unto the voice of the LORD thy God, to keep his -commandments and his statutes which are written in this book of the -law, and if thou turn unto the LORD thy God with all thine heart, and -with all thy soul. - -30:11 For this commandment which I command thee this day, it is not -hidden from thee, neither is it far off. - -30:12 It is not in heaven, that thou shouldest say, Who shall go up -for us to heaven, and bring it unto us, that we may hear it, and do -it? 30:13 Neither is it beyond the sea, that thou shouldest say, Who -shall go over the sea for us, and bring it unto us, that we may hear -it, and do it? 30:14 But the word is very nigh unto thee, in thy -mouth, and in thy heart, that thou mayest do it. - -30:15 See, I have set before thee this day life and good, and death -and evil; 30:16 In that I command thee this day to love the LORD thy -God, to walk in his ways, and to keep his commandments and his -statutes and his judgments, that thou mayest live and multiply: and -the LORD thy God shall bless thee in the land whither thou goest to -possess it. - -30:17 But if thine heart turn away, so that thou wilt not hear, but -shalt be drawn away, and worship other gods, and serve them; 30:18 I -denounce unto you this day, that ye shall surely perish, and that ye -shall not prolong your days upon the land, whither thou passest over -Jordan to go to possess it. - -30:19 I call heaven and earth to record this day against you, that I -have set before you life and death, blessing and cursing: therefore -choose life, that both thou and thy seed may live: 30:20 That thou -mayest love the LORD thy God, and that thou mayest obey his voice, and -that thou mayest cleave unto him: for he is thy life, and the length -of thy days: that thou mayest dwell in the land which the LORD sware -unto thy fathers, to Abraham, to Isaac, and to Jacob, to give them. - -31:1 And Moses went and spake these words unto all Israel. - -31:2 And he said unto them, I am an hundred and twenty years old this -day; I can no more go out and come in: also the LORD hath said unto -me, Thou shalt not go over this Jordan. - -31:3 The LORD thy God, he will go over before thee, and he will -destroy these nations from before thee, and thou shalt possess them: -and Joshua, he shall go over before thee, as the LORD hath said. - -31:4 And the LORD shall do unto them as he did to Sihon and to Og, -kings of the Amorites, and unto the land of them, whom he destroyed. - -31:5 And the LORD shall give them up before your face, that ye may do -unto them according unto all the commandments which I have commanded -you. - -31:6 Be strong and of a good courage, fear not, nor be afraid of them: -for the LORD thy God, he it is that doth go with thee; he will not -fail thee, nor forsake thee. - -31:7 And Moses called unto Joshua, and said unto him in the sight of -all Israel, Be strong and of a good courage: for thou must go with -this people unto the land which the LORD hath sworn unto their fathers -to give them; and thou shalt cause them to inherit it. - -31:8 And the LORD, he it is that doth go before thee; he will be with -thee, he will not fail thee, neither forsake thee: fear not, neither -be dismayed. - -31:9 And Moses wrote this law, and delivered it unto the priests the -sons of Levi, which bare the ark of the covenant of the LORD, and unto -all the elders of Israel. - -31:10 And Moses commanded them, saying, At the end of every seven -years, in the solemnity of the year of release, in the feast of -tabernacles, 31:11 When all Israel is come to appear before the LORD -thy God in the place which he shall choose, thou shalt read this law -before all Israel in their hearing. - -31:12 Gather the people together, men and women, and children, and thy -stranger that is within thy gates, that they may hear, and that they -may learn, and fear the LORD your God, and observe to do all the words -of this law: 31:13 And that their children, which have not known any -thing, may hear, and learn to fear the LORD your God, as long as ye -live in the land whither ye go over Jordan to possess it. - -31:14 And the LORD said unto Moses, Behold, thy days approach that -thou must die: call Joshua, and present yourselves in the tabernacle -of the congregation, that I may give him a charge. And Moses and -Joshua went, and presented themselves in the tabernacle of the -congregation. - -31:15 And the LORD appeared in the tabernacle in a pillar of a cloud: -and the pillar of the cloud stood over the door of the tabernacle. - -31:16 And the LORD said unto Moses, Behold, thou shalt sleep with thy -fathers; and this people will rise up, and go a whoring after the gods -of the strangers of the land, whither they go to be among them, and -will forsake me, and break my covenant which I have made with them. - -31:17 Then my anger shall be kindled against them in that day, and I -will forsake them, and I will hide my face from them, and they shall -be devoured, and many evils and troubles shall befall them; so that -they will say in that day, Are not these evils come upon us, because -our God is not among us? 31:18 And I will surely hide my face in that -day for all the evils which they shall have wrought, in that they are -turned unto other gods. - -31:19 Now therefore write ye this song for you, and teach it the -children of Israel: put it in their mouths, that this song may be a -witness for me against the children of Israel. - -31:20 For when I shall have brought them into the land which I sware -unto their fathers, that floweth with milk and honey; and they shall -have eaten and filled themselves, and waxen fat; then will they turn -unto other gods, and serve them, and provoke me, and break my -covenant. - -31:21 And it shall come to pass, when many evils and troubles are -befallen them, that this song shall testify against them as a witness; -for it shall not be forgotten out of the mouths of their seed: for I -know their imagination which they go about, even now, before I have -brought them into the land which I sware. - -31:22 Moses therefore wrote this song the same day, and taught it the -children of Israel. - -31:23 And he gave Joshua the son of Nun a charge, and said, Be strong -and of a good courage: for thou shalt bring the children of Israel -into the land which I sware unto them: and I will be with thee. - -31:24 And it came to pass, when Moses had made an end of writing the -words of this law in a book, until they were finished, 31:25 That -Moses commanded the Levites, which bare the ark of the covenant of the -LORD, saying, 31:26 Take this book of the law, and put it in the side -of the ark of the covenant of the LORD your God, that it may be there -for a witness against thee. - -31:27 For I know thy rebellion, and thy stiff neck: behold, while I am -yet alive with you this day, ye have been rebellious against the LORD; -and how much more after my death? 31:28 Gather unto me all the elders -of your tribes, and your officers, that I may speak these words in -their ears, and call heaven and earth to record against them. - -31:29 For I know that after my death ye will utterly corrupt -yourselves, and turn aside from the way which I have commanded you; -and evil will befall you in the latter days; because ye will do evil -in the sight of the LORD, to provoke him to anger through the work of -your hands. - -31:30 And Moses spake in the ears of all the congregation of Israel -the words of this song, until they were ended. - -32:1 Give ear, O ye heavens, and I will speak; and hear, O earth, the -words of my mouth. - -32:2 My doctrine shall drop as the rain, my speech shall distil as the -dew, as the small rain upon the tender herb, and as the showers upon -the grass: 32:3 Because I will publish the name of the LORD: ascribe -ye greatness unto our God. - -32:4 He is the Rock, his work is perfect: for all his ways are -judgment: a God of truth and without iniquity, just and right is he. - -32:5 They have corrupted themselves, their spot is not the spot of his -children: they are a perverse and crooked generation. - -32:6 Do ye thus requite the LORD, O foolish people and unwise? is not -he thy father that hath bought thee? hath he not made thee, and -established thee? 32:7 Remember the days of old, consider the years -of many generations: ask thy father, and he will shew thee; thy -elders, and they will tell thee. - -32:8 When the Most High divided to the nations their inheritance, when -he separated the sons of Adam, he set the bounds of the people -according to the number of the children of Israel. - -32:9 For the LORD's portion is his people; Jacob is the lot of his -inheritance. - -32:10 He found him in a desert land, and in the waste howling -wilderness; he led him about, he instructed him, he kept him as the -apple of his eye. - -32:11 As an eagle stirreth up her nest, fluttereth over her young, -spreadeth abroad her wings, taketh them, beareth them on her wings: -32:12 So the LORD alone did lead him, and there was no strange god -with him. - -32:13 He made him ride on the high places of the earth, that he might -eat the increase of the fields; and he made him to suck honey out of -the rock, and oil out of the flinty rock; 32:14 Butter of kine, and -milk of sheep, with fat of lambs, and rams of the breed of Bashan, and -goats, with the fat of kidneys of wheat; and thou didst drink the pure -blood of the grape. - -32:15 But Jeshurun waxed fat, and kicked: thou art waxen fat, thou art -grown thick, thou art covered with fatness; then he forsook God which -made him, and lightly esteemed the Rock of his salvation. - -32:16 They provoked him to jealousy with strange gods, with -abominations provoked they him to anger. - -32:17 They sacrificed unto devils, not to God; to gods whom they knew -not, to new gods that came newly up, whom your fathers feared not. - -32:18 Of the Rock that begat thee thou art unmindful, and hast -forgotten God that formed thee. - -32:19 And when the LORD saw it, he abhorred them, because of the -provoking of his sons, and of his daughters. - -32:20 And he said, I will hide my face from them, I will see what -their end shall be: for they are a very froward generation, children -in whom is no faith. - -32:21 They have moved me to jealousy with that which is not God; they -have provoked me to anger with their vanities: and I will move them to -jealousy with those which are not a people; I will provoke them to -anger with a foolish nation. - -32:22 For a fire is kindled in mine anger, and shall burn unto the -lowest hell, and shall consume the earth with her increase, and set on -fire the foundations of the mountains. - -32:23 I will heap mischiefs upon them; I will spend mine arrows upon -them. - -32:24 They shall be burnt with hunger, and devoured with burning heat, -and with bitter destruction: I will also send the teeth of beasts upon -them, with the poison of serpents of the dust. - -32:25 The sword without, and terror within, shall destroy both the -young man and the virgin, the suckling also with the man of gray -hairs. - -32:26 I said, I would scatter them into corners, I would make the -remembrance of them to cease from among men: 32:27 Were it not that I -feared the wrath of the enemy, lest their adversaries should behave -themselves strangely, and lest they should say, Our hand is high, and -the LORD hath not done all this. - -32:28 For they are a nation void of counsel, neither is there any -understanding in them. - -32:29 O that they were wise, that they understood this, that they -would consider their latter end! 32:30 How should one chase a -thousand, and two put ten thousand to flight, except their Rock had -sold them, and the LORD had shut them up? 32:31 For their rock is not -as our Rock, even our enemies themselves being judges. - -32:32 For their vine is of the vine of Sodom, and of the fields of -Gomorrah: their grapes are grapes of gall, their clusters are bitter: -32:33 Their wine is the poison of dragons, and the cruel venom of -asps. - -32:34 Is not this laid up in store with me, and sealed up among my -treasures? 32:35 To me belongeth vengeance and recompence; their foot -shall slide in due time: for the day of their calamity is at hand, and -the things that shall come upon them make haste. - -32:36 For the LORD shall judge his people, and repent himself for his -servants, when he seeth that their power is gone, and there is none -shut up, or left. - -32:37 And he shall say, Where are their gods, their rock in whom they -trusted, 32:38 Which did eat the fat of their sacrifices, and drank -the wine of their drink offerings? let them rise up and help you, and -be your protection. - -32:39 See now that I, even I, am he, and there is no god with me: I -kill, and I make alive; I wound, and I heal: neither is there any that -can deliver out of my hand. - -32:40 For I lift up my hand to heaven, and say, I live for ever. - -32:41 If I whet my glittering sword, and mine hand take hold on -judgment; I will render vengeance to mine enemies, and will reward -them that hate me. - -32:42 I will make mine arrows drunk with blood, and my sword shall -devour flesh; and that with the blood of the slain and of the -captives, from the beginning of revenges upon the enemy. - -32:43 Rejoice, O ye nations, with his people: for he will avenge the -blood of his servants, and will render vengeance to his adversaries, -and will be merciful unto his land, and to his people. - -32:44 And Moses came and spake all the words of this song in the ears -of the people, he, and Hoshea the son of Nun. - -32:45 And Moses made an end of speaking all these words to all Israel: -32:46 And he said unto them, Set your hearts unto all the words which -I testify among you this day, which ye shall command your children to -observe to do, all the words of this law. - -32:47 For it is not a vain thing for you; because it is your life: and -through this thing ye shall prolong your days in the land, whither ye -go over Jordan to possess it. - -32:48 And the LORD spake unto Moses that selfsame day, saying, 32:49 -Get thee up into this mountain Abarim, unto mount Nebo, which is in -the land of Moab, that is over against Jericho; and behold the land of -Canaan, which I give unto the children of Israel for a possession: -32:50 And die in the mount whither thou goest up, and be gathered unto -thy people; as Aaron thy brother died in mount Hor, and was gathered -unto his people: 32:51 Because ye trespassed against me among the -children of Israel at the waters of MeribahKadesh, in the wilderness -of Zin; because ye sanctified me not in the midst of the children of -Israel. - -32:52 Yet thou shalt see the land before thee; but thou shalt not go -thither unto the land which I give the children of Israel. - -33:1 And this is the blessing, wherewith Moses the man of God blessed -the children of Israel before his death. - -33:2 And he said, The LORD came from Sinai, and rose up from Seir unto -them; he shined forth from mount Paran, and he came with ten thousands -of saints: from his right hand went a fiery law for them. - -33:3 Yea, he loved the people; all his saints are in thy hand: and -they sat down at thy feet; every one shall receive of thy words. - -33:4 Moses commanded us a law, even the inheritance of the -congregation of Jacob. - -33:5 And he was king in Jeshurun, when the heads of the people and the -tribes of Israel were gathered together. - -33:6 Let Reuben live, and not die; and let not his men be few. - -33:7 And this is the blessing of Judah: and he said, Hear, LORD, the -voice of Judah, and bring him unto his people: let his hands be -sufficient for him; and be thou an help to him from his enemies. - -33:8 And of Levi he said, Let thy Thummim and thy Urim be with thy -holy one, whom thou didst prove at Massah, and with whom thou didst -strive at the waters of Meribah; 33:9 Who said unto his father and to -his mother, I have not seen him; neither did he acknowledge his -brethren, nor knew his own children: for they have observed thy word, -and kept thy covenant. - -33:10 They shall teach Jacob thy judgments, and Israel thy law: they -shall put incense before thee, and whole burnt sacrifice upon thine -altar. - -33:11 Bless, LORD, his substance, and accept the work of his hands; -smite through the loins of them that rise against him, and of them -that hate him, that they rise not again. - -33:12 And of Benjamin he said, The beloved of the LORD shall dwell in -safety by him; and the Lord shall cover him all the day long, and he -shall dwell between his shoulders. - -33:13 And of Joseph he said, Blessed of the LORD be his land, for the -precious things of heaven, for the dew, and for the deep that coucheth -beneath, 33:14 And for the precious fruits brought forth by the sun, -and for the precious things put forth by the moon, 33:15 And for the -chief things of the ancient mountains, and for the precious things of -the lasting hills, 33:16 And for the precious things of the earth and -fulness thereof, and for the good will of him that dwelt in the bush: -let the blessing come upon the head of Joseph, and upon the top of the -head of him that was separated from his brethren. - -33:17 His glory is like the firstling of his bullock, and his horns -are like the horns of unicorns: with them he shall push the people -together to the ends of the earth: and they are the ten thousands of -Ephraim, and they are the thousands of Manasseh. - -33:18 And of Zebulun he said, Rejoice, Zebulun, in thy going out; and, -Issachar, in thy tents. - -33:19 They shall call the people unto the mountain; there they shall -offer sacrifices of righteousness: for they shall suck of the -abundance of the seas, and of treasures hid in the sand. - -33:20 And of Gad he said, Blessed be he that enlargeth Gad: he -dwelleth as a lion, and teareth the arm with the crown of the head. - -33:21 And he provided the first part for himself, because there, in a -portion of the lawgiver, was he seated; and he came with the heads of -the people, he executed the justice of the LORD, and his judgments -with Israel. - -33:22 And of Dan he said, Dan is a lion's whelp: he shall leap from -Bashan. - -33:23 And of Naphtali he said, O Naphtali, satisfied with favour, and -full with the blessing of the LORD: possess thou the west and the -south. - -33:24 And of Asher he said, Let Asher be blessed with children; let -him be acceptable to his brethren, and let him dip his foot in oil. - -33:25 Thy shoes shall be iron and brass; and as thy days, so shall thy -strength be. - -33:26 There is none like unto the God of Jeshurun, who rideth upon the -heaven in thy help, and in his excellency on the sky. - -33:27 The eternal God is thy refuge, and underneath are the -everlasting arms: and he shall thrust out the enemy from before thee; -and shall say, Destroy them. - -33:28 Israel then shall dwell in safety alone: the fountain of Jacob -shall be upon a land of corn and wine; also his heavens shall drop -down dew. - -33:29 Happy art thou, O Israel: who is like unto thee, O people saved -by the LORD, the shield of thy help, and who is the sword of thy -excellency! and thine enemies shall be found liars unto thee; and thou -shalt tread upon their high places. - -34:1 And Moses went up from the plains of Moab unto the mountain of -Nebo, to the top of Pisgah, that is over against Jericho. And the LORD -shewed him all the land of Gilead, unto Dan, 34:2 And all Naphtali, -and the land of Ephraim, and Manasseh, and all the land of Judah, unto -the utmost sea, 34:3 And the south, and the plain of the valley of -Jericho, the city of palm trees, unto Zoar. - -34:4 And the LORD said unto him, This is the land which I sware unto -Abraham, unto Isaac, and unto Jacob, saying, I will give it unto thy -seed: I have caused thee to see it with thine eyes, but thou shalt not -go over thither. - -34:5 So Moses the servant of the LORD died there in the land of Moab, -according to the word of the LORD. - -34:6 And he buried him in a valley in the land of Moab, over against -Bethpeor: but no man knoweth of his sepulchre unto this day. - -34:7 And Moses was an hundred and twenty years old when he died: his -eye was not dim, nor his natural force abated. - -34:8 And the children of Israel wept for Moses in the plains of Moab -thirty days: so the days of weeping and mourning for Moses were ended. - -34:9 And Joshua the son of Nun was full of the spirit of wisdom; for -Moses had laid his hands upon him: and the children of Israel -hearkened unto him, and did as the LORD commanded Moses. - -34:10 And there arose not a prophet since in Israel like unto Moses, -whom the LORD knew face to face, 34:11 In all the signs and the -wonders, which the LORD sent him to do in the land of Egypt to -Pharaoh, and to all his servants, and to all his land, 34:12 And in -all that mighty hand, and in all the great terror which Moses shewed -in the sight of all Israel. - - - - -The Book of Joshua - - -1:1 Now after the death of Moses the servant of the LORD it came to -pass, that the LORD spake unto Joshua the son of Nun, Moses' minister, -saying, 1:2 Moses my servant is dead; now therefore arise, go over -this Jordan, thou, and all this people, unto the land which I do give -to them, even to the children of Israel. - -1:3 Every place that the sole of your foot shall tread upon, that have -I given unto you, as I said unto Moses. - -1:4 From the wilderness and this Lebanon even unto the great river, -the river Euphrates, all the land of the Hittites, and unto the great -sea toward the going down of the sun, shall be your coast. - -1:5 There shall not any man be able to stand before thee all the days -of thy life: as I was with Moses, so I will be with thee: I will not -fail thee, nor forsake thee. - -1:6 Be strong and of a good courage: for unto this people shalt thou -divide for an inheritance the land, which I sware unto their fathers -to give them. - -1:7 Only be thou strong and very courageous, that thou mayest observe -to do according to all the law, which Moses my servant commanded thee: -turn not from it to the right hand or to the left, that thou mayest -prosper withersoever thou goest. - -1:8 This book of the law shall not depart out of thy mouth; but thou -shalt meditate therein day and night, that thou mayest observe to do -according to all that is written therein: for then thou shalt make thy -way prosperous, and then thou shalt have good success. - -1:9 Have not I commanded thee? Be strong and of a good courage; be not -afraid, neither be thou dismayed: for the LORD thy God is with thee -whithersoever thou goest. - -1:10 Then Joshua commanded the officers of the people, saying, 1:11 -Pass through the host, and command the people, saying, Prepare you -victuals; for within three days ye shall pass over this Jordan, to go -in to possess the land, which the LORD your God giveth you to possess -it. - -1:12 And to the Reubenites, and to the Gadites, and to half the tribe -of Manasseh, spake Joshua, saying, 1:13 Remember the word which Moses -the servant of the LORD commanded you, saying, The LORD your God hath -given you rest, and hath given you this land. - -1:14 Your wives, your little ones, and your cattle, shall remain in -the land which Moses gave you on this side Jordan; but ye shall pass -before your brethren armed, all the mighty men of valour, and help -them; 1:15 Until the LORD have given your brethren rest, as he hath -given you, and they also have possessed the land which the LORD your -God giveth them: then ye shall return unto the land of your -possession, and enjoy it, which Moses the LORD's servant gave you on -this side Jordan toward the sunrising. - -1:16 And they answered Joshua, saying, All that thou commandest us we -will do, and whithersoever thou sendest us, we will go. - -1:17 According as we hearkened unto Moses in all things, so will we -hearken unto thee: only the LORD thy God be with thee, as he was with -Moses. - -1:18 Whosoever he be that doth rebel against thy commandment, and will -not hearken unto thy words in all that thou commandest him, he shall -be put to death: only be strong and of a good courage. - -2:1 And Joshua the son of Nun sent out of Shittim two men to spy -secretly, saying, Go view the land, even Jericho. And they went, and -came into an harlot's house, named Rahab, and lodged there. - -2:2 And it was told the king of Jericho, saying, Behold, there came -men in hither to night of the children of Israel to search out the -country. - -2:3 And the king of Jericho sent unto Rahab, saying, Bring forth the -men that are come to thee, which are entered into thine house: for -they be come to search out all the country. - -2:4 And the woman took the two men, and hid them, and said thus, There -came men unto me, but I wist not whence they were: 2:5 And it came to -pass about the time of shutting of the gate, when it was dark, that -the men went out: whither the men went I wot not: pursue after them -quickly; for ye shall overtake them. - -2:6 But she had brought them up to the roof of the house, and hid them -with the stalks of flax, which she had laid in order upon the roof. - -2:7 And the men pursued after them the way to Jordan unto the fords: -and as soon as they which pursued after them were gone out, they shut -the gate. - -2:8 And before they were laid down, she came up unto them upon the -roof; 2:9 And she said unto the men, I know that the LORD hath given -you the land, and that your terror is fallen upon us, and that all the -inhabitants of the land faint because of you. - -2:10 For we have heard how the LORD dried up the water of the Red sea -for you, when ye came out of Egypt; and what ye did unto the two kings -of the Amorites, that were on the other side Jordan, Sihon and Og, -whom ye utterly destroyed. - -2:11 And as soon as we had heard these things, our hearts did melt, -neither did there remain any more courage in any man, because of you: -for the LORD your God, he is God in heaven above, and in earth -beneath. - -2:12 Now therefore, I pray you, swear unto me by the LORD, since I -have shewed you kindness, that ye will also shew kindness unto my -father's house, and give me a true token: 2:13 And that ye will save -alive my father, and my mother, and my brethren, and my sisters, and -all that they have, and deliver our lives from death. - -2:14 And the men answered her, Our life for yours, if ye utter not -this our business. And it shall be, when the LORD hath given us the -land, that we will deal kindly and truly with thee. - -2:15 Then she let them down by a cord through the window: for her -house was upon the town wall, and she dwelt upon the wall. - -2:16 And she said unto them, Get you to the mountain, lest the -pursuers meet you; and hide yourselves there three days, until the -pursuers be returned: and afterward may ye go your way. - -2:17 And the men said unto her, We will be blameless of this thine -oath which thou hast made us swear. - -2:18 Behold, when we come into the land, thou shalt bind this line of -scarlet thread in the window which thou didst let us down by: and thou -shalt bring thy father, and thy mother, and thy brethren, and all thy -father's household, home unto thee. - -2:19 And it shall be, that whosoever shall go out of the doors of thy -house into the street, his blood shall be upon his head, and we will -be guiltless: and whosoever shall be with thee in the house, his blood -shall be on our head, if any hand be upon him. - -2:20 And if thou utter this our business, then we will be quit of -thine oath which thou hast made us to swear. - -2:21 And she said, According unto your words, so be it. And she sent -them away, and they departed: and she bound the scarlet line in the -window. - -2:22 And they went, and came unto the mountain, and abode there three -days, until the pursuers were returned: and the pursuers sought them -throughout all the way, but found them not. - -2:23 So the two men returned, and descended from the mountain, and -passed over, and came to Joshua the son of Nun, and told him all -things that befell them: 2:24 And they said unto Joshua, Truly the -LORD hath delivered into our hands all the land; for even all the -inhabitants of the country do faint because of us. - -3:1 And Joshua rose early in the morning; and they removed from -Shittim, and came to Jordan, he and all the children of Israel, and -lodged there before they passed over. - -3:2 And it came to pass after three days, that the officers went -through the host; 3:3 And they commanded the people, saying, When ye -see the ark of the covenant of the LORD your God, and the priests the -Levites bearing it, then ye shall remove from your place, and go after -it. - -3:4 Yet there shall be a space between you and it, about two thousand -cubits by measure: come not near unto it, that ye may know the way by -which ye must go: for ye have not passed this way heretofore. - -3:5 And Joshua said unto the people, Sanctify yourselves: for to -morrow the LORD will do wonders among you. - -3:6 And Joshua spake unto the priests, saying, Take up the ark of the -covenant, and pass over before the people. And they took up the ark of -the covenant, and went before the people. - -3:7 And the LORD said unto Joshua, This day will I begin to magnify -thee in the sight of all Israel, that they may know that, as I was -with Moses, so I will be with thee. - -3:8 And thou shalt command the priests that bear the ark of the -covenant, saying, When ye are come to the brink of the water of -Jordan, ye shall stand still in Jordan. - -3:9 And Joshua said unto the children of Israel, Come hither, and hear -the words of the LORD your God. - -3:10 And Joshua said, Hereby ye shall know that the living God is -among you, and that he will without fail drive out from before you the -Canaanites, and the Hittites, and the Hivites, and the Perizzites, and -the Girgashites, and the Amorites, and the Jebusites. - -3:11 Behold, the ark of the covenant of the LORD of all the earth -passeth over before you into Jordan. - -3:12 Now therefore take you twelve men out of the tribes of Israel, -out of every tribe a man. - -3:13 And it shall come to pass, as soon as the soles of the feet of -the priests that bear the ark of the LORD, the LORD of all the earth, -shall rest in the waters of Jordan, that the waters of Jordan shall be -cut off from the waters that come down from above; and they shall -stand upon an heap. - -3:14 And it came to pass, when the people removed from their tents, to -pass over Jordan, and the priests bearing the ark of the covenant -before the people; 3:15 And as they that bare the ark were come unto -Jordan, and the feet of the priests that bare the ark were dipped in -the brim of the water, (for Jordan overfloweth all his banks all the -time of harvest,) 3:16 That the waters which came down from above -stood and rose up upon an heap very far from the city Adam, that is -beside Zaretan: and those that came down toward the sea of the plain, -even the salt sea, failed, and were cut off: and the people passed -over right against Jericho. - -3:17 And the priests that bare the ark of the covenant of the LORD -stood firm on dry ground in the midst of Jordan, and all the -Israelites passed over on dry ground, until all the people were passed -clean over Jordan. - -4:1 And it came to pass, when all the people were clean passed over -Jordan, that the LORD spake unto Joshua, saying, 4:2 Take you twelve -men out of the people, out of every tribe a man, 4:3 And command ye -them, saying, Take you hence out of the midst of Jordan, out of the -place where the priests' feet stood firm, twelve stones, and ye shall -carry them over with you, and leave them in the lodging place, where -ye shall lodge this night. - -4:4 Then Joshua called the twelve men, whom he had prepared of the -children of Israel, out of every tribe a man: 4:5 And Joshua said unto -them, Pass over before the ark of the LORD your God into the midst of -Jordan, and take you up every man of you a stone upon his shoulder, -according unto the number of the tribes of the children of Israel: 4:6 -That this may be a sign among you, that when your children ask their -fathers in time to come, saying, What mean ye by these stones? 4:7 -Then ye shall answer them, That the waters of Jordan were cut off -before the ark of the covenant of the LORD; when it passed over -Jordan, the waters of Jordan were cut off: and these stones shall be -for a memorial unto the children of Israel for ever. - -4:8 And the children of Israel did so as Joshua commanded, and took up -twelve stones out of the midst of Jordan, as the LORD spake unto -Joshua, according to the number of the tribes of the children of -Israel, and carried them over with them unto the place where they -lodged, and laid them down there. - -4:9 And Joshua set up twelve stones in the midst of Jordan, in the -place where the feet of the priests which bare the ark of the covenant -stood: and they are there unto this day. - -4:10 For the priests which bare the ark stood in the midst of Jordan, -until everything was finished that the LORD commanded Joshua to speak -unto the people, according to all that Moses commanded Joshua: and the -people hasted and passed over. - -4:11 And it came to pass, when all the people were clean passed over, -that the ark of the LORD passed over, and the priests, in the presence -of the people. - -4:12 And the children of Reuben, and the children of Gad, and half the -tribe of Manasseh, passed over armed before the children of Israel, as -Moses spake unto them: 4:13 About forty thousand prepared for war -passed over before the LORD unto battle, to the plains of Jericho. - -4:14 On that day the LORD magnified Joshua in the sight of all Israel; -and they feared him, as they feared Moses, all the days of his life. - -4:15 And the LORD spake unto Joshua, saying, 4:16 Command the priests -that bear the ark of the testimony, that they come up out of Jordan. - -4:17 Joshua therefore commanded the priests, saying, Come ye up out of -Jordan. - -4:18 And it came to pass, when the priests that bare the ark of the -covenant of the LORD were come up out of the midst of Jordan, and the -soles of the priests' feet were lifted up unto the dry land, that the -waters of Jordan returned unto their place, and flowed over all his -banks, as they did before. - -4:19 And the people came up out of Jordan on the tenth day of the -first month, and encamped in Gilgal, in the east border of Jericho. - -4:20 And those twelve stones, which they took out of Jordan, did -Joshua pitch in Gilgal. - -4:21 And he spake unto the children of Israel, saying, When your -children shall ask their fathers in time to come, saying, What mean -these stones? 4:22 Then ye shall let your children know, saying, -Israel came over this Jordan on dry land. - -4:23 For the LORD your God dried up the waters of Jordan from before -you, until ye were passed over, as the LORD your God did to the Red -sea, which he dried up from before us, until we were gone over: 4:24 -That all the people of the earth might know the hand of the LORD, that -it is mighty: that ye might fear the LORD your God for ever. - -5:1 And it came to pass, when all the kings of the Amorites, which -were on the side of Jordan westward, and all the kings of the -Canaanites, which were by the sea, heard that the LORD had dried up -the waters of Jordan from before the children of Israel, until we were -passed over, that their heart melted, neither was there spirit in them -any more, because of the children of Israel. - -5:2 At that time the LORD said unto Joshua, Make thee sharp knives, -and circumcise again the children of Israel the second time. - -5:3 And Joshua made him sharp knives, and circumcised the children of -Israel at the hill of the foreskins. - -5:4 And this is the cause why Joshua did circumcise: All the people -that came out of Egypt, that were males, even all the men of war, died -in the wilderness by the way, after they came out of Egypt. - -5:5 Now all the people that came out were circumcised: but all the -people that were born in the wilderness by the way as they came forth -out of Egypt, them they had not circumcised. - -5:6 For the children of Israel walked forty years in the wilderness, -till all the people that were men of war, which came out of Egypt, -were consumed, because they obeyed not the voice of the LORD: unto -whom the LORD sware that he would not shew them the land, which the -LORD sware unto their fathers that he would give us, a land that -floweth with milk and honey. - -5:7 And their children, whom he raised up in their stead, them Joshua -circumcised: for they were uncircumcised, because they had not -circumcised them by the way. - -5:8 And it came to pass, when they had done circumcising all the -people, that they abode in their places in the camp, till they were -whole. - -5:9 And the LORD said unto Joshua, This day have I rolled away the -reproach of Egypt from off you. Wherefore the name of the place is -called Gilgal unto this day. - -5:10 And the children of Israel encamped in Gilgal, and kept the -passover on the fourteenth day of the month at even in the plains of -Jericho. - -5:11 And they did eat of the old corn of the land on the morrow after -the passover, unleavened cakes, and parched corn in the selfsame day. - -5:12 And the manna ceased on the morrow after they had eaten of the -old corn of the land; neither had the children of Israel manna any -more; but they did eat of the fruit of the land of Canaan that year. - -5:13 And it came to pass, when Joshua was by Jericho, that he lifted -up his eyes and looked, and, behold, there stood a man over against -him with his sword drawn in his hand: and Joshua went unto him, and -said unto him, Art thou for us, or for our adversaries? 5:14 And he -said, Nay; but as captain of the host of the LORD am I now come. And -Joshua fell on his face to the earth, and did worship, and said unto -him, What saith my Lord unto his servant? 5:15 And the captain of the -LORD's host said unto Joshua, Loose thy shoe from off thy foot; for -the place whereon thou standest is holy. And Joshua did so. - -6:1 Now Jericho was straitly shut up because of the children of -Israel: none went out, and none came in. - -6:2 And the LORD said unto Joshua, See, I have given into thine hand -Jericho, and the king thereof, and the mighty men of valour. - -6:3 And ye shall compass the city, all ye men of war, and go round -about the city once. Thus shalt thou do six days. - -6:4 And seven priests shall bear before the ark seven trumpets of -rams' horns: and the seventh day ye shall compass the city seven -times, and the priests shall blow with the trumpets. - -6:5 And it shall come to pass, that when they make a long blast with -the ram's horn, and when ye hear the sound of the trumpet, all the -people shall shout with a great shout; and the wall of the city shall -fall down flat, and the people shall ascend up every man straight -before him. - -6:6 And Joshua the son of Nun called the priests, and said unto them, -Take up the ark of the covenant, and let seven priests bear seven -trumpets of rams' horns before the ark of the LORD. - -6:7 And he said unto the people, Pass on, and compass the city, and -let him that is armed pass on before the ark of the LORD. - -6:8 And it came to pass, when Joshua had spoken unto the people, that -the seven priests bearing the seven trumpets of rams' horns passed on -before the LORD, and blew with the trumpets: and the ark of the -covenant of the LORD followed them. - -6:9 And the armed men went before the priests that blew with the -trumpets, and the rereward came after the ark, the priests going on, -and blowing with the trumpets. - -6:10 And Joshua had commanded the people, saying, Ye shall not shout, -nor make any noise with your voice, neither shall any word proceed out -of your mouth, until the day I bid you shout; then shall ye shout. - -6:11 So the ark of the LORD compassed the city, going about it once: -and they came into the camp, and lodged in the camp. - -6:12 And Joshua rose early in the morning, and the priests took up the -ark of the LORD. - -6:13 And seven priests bearing seven trumpets of rams' horns before -the ark of the LORD went on continually, and blew with the trumpets: -and the armed men went before them; but the rereward came after the -ark of the LORD, the priests going on, and blowing with the trumpets. - -6:14 And the second day they compassed the city once, and returned -into the camp: so they did six days. - -6:15 And it came to pass on the seventh day, that they rose early -about the dawning of the day, and compassed the city after the same -manner seven times: only on that day they compassed the city seven -times. - -6:16 And it came to pass at the seventh time, when the priests blew -with the trumpets, Joshua said unto the people, Shout; for the LORD -hath given you the city. - -6:17 And the city shall be accursed, even it, and all that are -therein, to the LORD: only Rahab the harlot shall live, she and all -that are with her in the house, because she hid the messengers that we -sent. - -6:18 And ye, in any wise keep yourselves from the accursed thing, lest -ye make yourselves accursed, when ye take of the accursed thing, and -make the camp of Israel a curse, and trouble it. - -6:19 But all the silver, and gold, and vessels of brass and iron, are -consecrated unto the LORD: they shall come into the treasury of the -LORD. - -6:20 So the people shouted when the priests blew with the trumpets: -and it came to pass, when the people heard the sound of the trumpet, -and the people shouted with a great shout, that the wall fell down -flat, so that the people went up into the city, every man straight -before him, and they took the city. - -6:21 And they utterly destroyed all that was in the city, both man and -woman, young and old, and ox, and sheep, and ass, with the edge of the -sword. - -6:22 But Joshua had said unto the two men that had spied out the -country, Go into the harlot's house, and bring out thence the woman, -and all that she hath, as ye sware unto her. - -6:23 And the young men that were spies went in, and brought out Rahab, -and her father, and her mother, and her brethren, and all that she -had; and they brought out all her kindred, and left them without the -camp of Israel. - -6:24 And they burnt the city with fire, and all that was therein: only -the silver, and the gold, and the vessels of brass and of iron, they -put into the treasury of the house of the LORD. - -6:25 And Joshua saved Rahab the harlot alive, and her father's -household, and all that she had; and she dwelleth in Israel even unto -this day; because she hid the messengers, which Joshua sent to spy out -Jericho. - -6:26 And Joshua adjured them at that time, saying, Cursed be the man -before the LORD, that riseth up and buildeth this city Jericho: he -shall lay the foundation thereof in his firstborn, and in his youngest -son shall he set up the gates of it. - -6:27 So the LORD was with Joshua; and his fame was noised throughout -all the country. - -7:1 But the children of Israel committed a trespass in the accursed -thing: for Achan, the son of Carmi, the son of Zabdi, the son of -Zerah, of the tribe of Judah, took of the accursed thing: and the -anger of the LORD was kindled against the children of Israel. - -7:2 And Joshua sent men from Jericho to Ai, which is beside Bethaven, -on the east of Bethel, and spake unto them, saying, Go up and view the -country. - -And the men went up and viewed Ai. - -7:3 And they returned to Joshua, and said unto him, Let not all the -people go up; but let about two or three thousand men go up and smite -Ai; and make not all the people to labour thither; for they are but -few. - -7:4 So there went up thither of the people about three thousand men: -and they fled before the men of Ai. - -7:5 And the men of Ai smote of them about thirty and six men: for they -chased them from before the gate even unto Shebarim, and smote them in -the going down: wherefore the hearts of the people melted, and became -as water. - -7:6 And Joshua rent his clothes, and fell to the earth upon his face -before the ark of the LORD until the eventide, he and the elders of -Israel, and put dust upon their heads. - -7:7 And Joshua said, Alas, O LORD God, wherefore hast thou at all -brought this people over Jordan, to deliver us into the hand of the -Amorites, to destroy us? would to God we had been content, and dwelt -on the other side Jordan! 7:8 O LORD, what shall I say, when Israel -turneth their backs before their enemies! 7:9 For the Canaanites and -all the inhabitants of the land shall hear of it, and shall environ us -round, and cut off our name from the earth: and what wilt thou do unto -thy great name? 7:10 And the LORD said unto Joshua, Get thee up; -wherefore liest thou thus upon thy face? 7:11 Israel hath sinned, and -they have also transgressed my covenant which I commanded them: for -they have even taken of the accursed thing, and have also stolen, and -dissembled also, and they have put it even among their own stuff. - -7:12 Therefore the children of Israel could not stand before their -enemies, but turned their backs before their enemies, because they -were accursed: neither will I be with you any more, except ye destroy -the accursed from among you. - -7:13 Up, sanctify the people, and say, Sanctify yourselves against to -morrow: for thus saith the LORD God of Israel, There is an accursed -thing in the midst of thee, O Israel: thou canst not stand before -thine enemies, until ye take away the accursed thing from among you. - -7:14 In the morning therefore ye shall be brought according to your -tribes: and it shall be, that the tribe which the LORD taketh shall -come according to the families thereof; and the family which the LORD -shall take shall come by households; and the household which the LORD -shall take shall come man by man. - -7:15 And it shall be, that he that is taken with the accursed thing -shall be burnt with fire, he and all that he hath: because he hath -transgressed the covenant of the LORD, and because he hath wrought -folly in Israel. - -7:16 So Joshua rose up early in the morning, and brought Israel by -their tribes; and the tribe of Judah was taken: 7:17 And he brought -the family of Judah; and he took the family of the Zarhites: and he -brought the family of the Zarhites man by man; and Zabdi was taken: -7:18 And he brought his household man by man; and Achan, the son of -Carmi, the son of Zabdi, the son of Zerah, of the tribe of Judah, was -taken. - -7:19 And Joshua said unto Achan, My son, give, I pray thee, glory to -the LORD God of Israel, and make confession unto him; and tell me now -what thou hast done; hide it not from me. - -7:20 And Achan answered Joshua, and said, Indeed I have sinned against -the LORD God of Israel, and thus and thus have I done: 7:21 When I saw -among the spoils a goodly Babylonish garment, and two hundred shekels -of silver, and a wedge of gold of fifty shekels weight, then I coveted -them, and took them; and, behold, they are hid in the earth in the -midst of my tent, and the silver under it. - -7:22 So Joshua sent messengers, and they ran unto the tent; and, -behold, it was hid in his tent, and the silver under it. - -7:23 And they took them out of the midst of the tent, and brought them -unto Joshua, and unto all the children of Israel, and laid them out -before the LORD. - -7:24 And Joshua, and all Israel with him, took Achan the son of Zerah, -and the silver, and the garment, and the wedge of gold, and his sons, -and his daughters, and his oxen, and his asses, and his sheep, and his -tent, and all that he had: and they brought them unto the valley of -Achor. - -7:25 And Joshua said, Why hast thou troubled us? the LORD shall -trouble thee this day. And all Israel stoned him with stones, and -burned them with fire, after they had stoned them with stones. - -7:26 And they raised over him a great heap of stones unto this day. So -the LORD turned from the fierceness of his anger. Wherefore the name -of that place was called, The valley of Achor, unto this day. - -8:1 And the LORD said unto Joshua, Fear not, neither be thou dismayed: -take all the people of war with thee, and arise, go up to Ai: see, I -have given into thy hand the king of Ai, and his people, and his city, -and his land: 8:2 And thou shalt do to Ai and her king as thou didst -unto Jericho and her king: only the spoil thereof, and the cattle -thereof, shall ye take for a prey unto yourselves: lay thee an ambush -for the city behind it. - -8:3 So Joshua arose, and all the people of war, to go up against Ai: -and Joshua chose out thirty thousand mighty men of valour, and sent -them away by night. - -8:4 And he commanded them, saying, Behold, ye shall lie in wait -against the city, even behind the city: go not very far from the city, -but be ye all ready: 8:5 And I, and all the people that are with me, -will approach unto the city: and it shall come to pass, when they come -out against us, as at the first, that we will flee before them, 8:6 -(For they will come out after us) till we have drawn them from the -city; for they will say, They flee before us, as at the first: -therefore we will flee before them. - -8:7 Then ye shall rise up from the ambush, and seize upon the city: -for the LORD your God will deliver it into your hand. - -8:8 And it shall be, when ye have taken the city, that ye shall set -the city on fire: according to the commandment of the LORD shall ye -do. See, I have commanded you. - -8:9 Joshua therefore sent them forth: and they went to lie in ambush, -and abode between Bethel and Ai, on the west side of Ai: but Joshua -lodged that night among the people. - -8:10 And Joshua rose up early in the morning, and numbered the people, -and went up, he and the elders of Israel, before the people to Ai. - -8:11 And all the people, even the people of war that were with him, -went up, and drew nigh, and came before the city, and pitched on the -north side of Ai: now there was a valley between them and Ai. - -8:12 And he took about five thousand men, and set them to lie in -ambush between Bethel and Ai, on the west side of the city. - -8:13 And when they had set the people, even all the host that was on -the north of the city, and their liers in wait on the west of the -city, Joshua went that night into the midst of the valley. - -8:14 And it came to pass, when the king of Ai saw it, that they hasted -and rose up early, and the men of the city went out against Israel to -battle, he and all his people, at a time appointed, before the plain; -but he wist not that there were liers in ambush against him behind the -city. - -8:15 And Joshua and all Israel made as if they were beaten before -them, and fled by the way of the wilderness. - -8:16 And all the people that were in Ai were called together to pursue -after them: and they pursued after Joshua, and were drawn away from -the city. - -8:17 And there was not a man left in Ai or Bethel, that went not out -after Israel: and they left the city open, and pursued after Israel. - -8:18 And the LORD said unto Joshua, Stretch out the spear that is in -thy hand toward Ai; for I will give it into thine hand. And Joshua -stretched out the spear that he had in his hand toward the city. - -8:19 And the ambush arose quickly out of their place, and they ran as -soon as he had stretched out his hand: and they entered into the city, -and took it, and hasted and set the city on fire. - -8:20 And when the men of Ai looked behind them, they saw, and, behold, -the smoke of the city ascended up to heaven, and they had no power to -flee this way or that way: and the people that fled to the wilderness -turned back upon the pursuers. - -8:21 And when Joshua and all Israel saw that the ambush had taken the -city, and that the smoke of the city ascended, then they turned again, -and slew the men of Ai. - -8:22 And the other issued out of the city against them; so they were -in the midst of Israel, some on this side, and some on that side: and -they smote them, so that they let none of them remain or escape. - -8:23 And the king of Ai they took alive, and brought him to Joshua. - -8:24 And it came to pass, when Israel had made an end of slaying all -the inhabitants of Ai in the field, in the wilderness wherein they -chased them, and when they were all fallen on the edge of the sword, -until they were consumed, that all the Israelites returned unto Ai, -and smote it with the edge of the sword. - -8:25 And so it was, that all that fell that day, both of men and -women, were twelve thousand, even all the men of Ai. - -8:26 For Joshua drew not his hand back, wherewith he stretched out the -spear, until he had utterly destroyed all the inhabitants of Ai. - -8:27 Only the cattle and the spoil of that city Israel took for a prey -unto themselves, according unto the word of the LORD which he -commanded Joshua. - -8:28 And Joshua burnt Ai, and made it an heap for ever, even a -desolation unto this day. - -8:29 And the king of Ai he hanged on a tree until eventide: and as -soon as the sun was down, Joshua commanded that they should take his -carcase down from the tree, and cast it at the entering of the gate of -the city, and raise thereon a great heap of stones, that remaineth -unto this day. - -8:30 Then Joshua built an altar unto the LORD God of Israel in mount -Ebal, 8:31 As Moses the servant of the LORD commanded the children of -Israel, as it is written in the book of the law of Moses, an altar of -whole stones, over which no man hath lift up any iron: and they -offered thereon burnt offerings unto the LORD, and sacrificed peace -offerings. - -8:32 And he wrote there upon the stones a copy of the law of Moses, -which he wrote in the presence of the children of Israel. - -8:33 And all Israel, and their elders, and officers, and their judges, -stood on this side the ark and on that side before the priests the -Levites, which bare the ark of the covenant of the LORD, as well the -stranger, as he that was born among them; half of them over against -mount Gerizim, and half of them over against mount Ebal; as Moses the -servant of the LORD had commanded before, that they should bless the -people of Israel. - -8:34 And afterward he read all the words of the law, the blessings and -cursings, according to all that is written in the book of the law. - -8:35 There was not a word of all that Moses commanded, which Joshua -read not before all the congregation of Israel, with the women, and -the little ones, and the strangers that were conversant among them. - -9:1 And it came to pass, when all the kings which were on this side -Jordan, in the hills, and in the valleys, and in all the coasts of the -great sea over against Lebanon, the Hittite, and the Amorite, the -Canaanite, the Perizzite, the Hivite, and the Jebusite, heard thereof; -9:2 That they gathered themselves together, to fight with Joshua and -with Israel, with one accord. - -9:3 And when the inhabitants of Gibeon heard what Joshua had done unto -Jericho and to Ai, 9:4 They did work wilily, and went and made as if -they had been ambassadors, and took old sacks upon their asses, and -wine bottles, old, and rent, and bound up; 9:5 And old shoes and -clouted upon their feet, and old garments upon them; and all the bread -of their provision was dry and mouldy. - -9:6 And they went to Joshua unto the camp at Gilgal, and said unto -him, and to the men of Israel, We be come from a far country: now -therefore make ye a league with us. - -9:7 And the men of Israel said unto the Hivites, Peradventure ye dwell -among us; and how shall we make a league with you? 9:8 And they said -unto Joshua, We are thy servants. And Joshua said unto them, Who are -ye? and from whence come ye? 9:9 And they said unto him, From a very -far country thy servants are come because of the name of the LORD thy -God: for we have heard the fame of him, and all that he did in Egypt, -9:10 And all that he did to the two kings of the Amorites, that were -beyond Jordan, to Sihon king of Heshbon, and to Og king of Bashan, -which was at Ashtaroth. - -9:11 Wherefore our elders and all the inhabitants of our country spake -to us, saying, Take victuals with you for the journey, and go to meet -them, and say unto them, We are your servants: therefore now make ye a -league with us. - -9:12 This our bread we took hot for our provision out of our houses on -the day we came forth to go unto you; but now, behold, it is dry, and -it is mouldy: 9:13 And these bottles of wine, which we filled, were -new; and, behold, they be rent: and these our garments and our shoes -are become old by reason of the very long journey. - -9:14 And the men took of their victuals, and asked not counsel at the -mouth of the LORD. - -9:15 And Joshua made peace with them, and made a league with them, to -let them live: and the princes of the congregation sware unto them. - -9:16 And it came to pass at the end of three days after they had made -a league with them, that they heard that they were their neighbours, -and that they dwelt among them. - -9:17 And the children of Israel journeyed, and came unto their cities -on the third day. Now their cities were Gibeon, and Chephirah, and -Beeroth, and Kirjathjearim. - -9:18 And the children of Israel smote them not, because the princes of -the congregation had sworn unto them by the LORD God of Israel. And -all the congregation murmured against the princes. - -9:19 But all the princes said unto all the congregation, We have sworn -unto them by the LORD God of Israel: now therefore we may not touch -them. - -9:20 This we will do to them; we will even let them live, lest wrath -be upon us, because of the oath which we sware unto them. - -9:21 And the princes said unto them, Let them live; but let them be -hewers of wood and drawers of water unto all the congregation; as the -princes had promised them. - -9:22 And Joshua called for them, and he spake unto them, saying, -Wherefore have ye beguiled us, saying, We are very far from you; when -ye dwell among us? 9:23 Now therefore ye are cursed, and there shall -none of you be freed from being bondmen, and hewers of wood and -drawers of water for the house of my God. - -9:24 And they answered Joshua, and said, Because it was certainly told -thy servants, how that the LORD thy God commanded his servant Moses to -give you all the land, and to destroy all the inhabitants of the land -from before you, therefore we were sore afraid of our lives because of -you, and have done this thing. - -9:25 And now, behold, we are in thine hand: as it seemeth good and -right unto thee to do unto us, do. - -9:26 And so did he unto them, and delivered them out of the hand of -the children of Israel, that they slew them not. - -9:27 And Joshua made them that day hewers of wood and drawers of water -for the congregation, and for the altar of the LORD, even unto this -day, in the place which he should choose. - -10:1 Now it came to pass, when Adonizedec king of Jerusalem had heard -how Joshua had taken Ai, and had utterly destroyed it; as he had done -to Jericho and her king, so he had done to Ai and her king; and how -the inhabitants of Gibeon had made peace with Israel, and were among -them; 10:2 That they feared greatly, because Gibeon was a great city, -as one of the royal cities, and because it was greater than Ai, and -all the men thereof were mighty. - -10:3 Wherefore Adonizedec king of Jerusalem, sent unto Hoham king of -Hebron, and unto Piram king of Jarmuth, and unto Japhia king of -Lachish, and unto Debir king of Eglon, saying, 10:4 Come up unto me, -and help me, that we may smite Gibeon: for it hath made peace with -Joshua and with the children of Israel. - -10:5 Therefore the five kings of the Amorites, the king of Jerusalem, -the king of Hebron, the king of Jarmuth, the king of Lachish, the king -of Eglon, gathered themselves together, and went up, they and all -their hosts, and encamped before Gibeon, and made war against it. - -10:6 And the men of Gibeon sent unto Joshua to the camp to Gilgal, -saying, Slack not thy hand from thy servants; come up to us quickly, -and save us, and help us: for all the kings of the Amorites that dwell -in the mountains are gathered together against us. - -10:7 So Joshua ascended from Gilgal, he, and all the people of war -with him, and all the mighty men of valour. - -10:8 And the LORD said unto Joshua, Fear them not: for I have -delivered them into thine hand; there shall not a man of them stand -before thee. - -10:9 Joshua therefore came unto them suddenly, and went up from Gilgal -all night. - -10:10 And the LORD discomfited them before Israel, and slew them with -a great slaughter at Gibeon, and chased them along the way that goeth -up to Bethhoron, and smote them to Azekah, and unto Makkedah. - -10:11 And it came to pass, as they fled from before Israel, and were -in the going down to Bethhoron, that the LORD cast down great stones -from heaven upon them unto Azekah, and they died: they were more which -died with hailstones than they whom the children of Israel slew with -the sword. - -10:12 Then spake Joshua to the LORD in the day when the LORD delivered -up the Amorites before the children of Israel, and he said in the -sight of Israel, Sun, stand thou still upon Gibeon; and thou, Moon, in -the valley of Ajalon. - -10:13 And the sun stood still, and the moon stayed, until the people -had avenged themselves upon their enemies. Is not this written in the -book of Jasher? So the sun stood still in the midst of heaven, and -hasted not to go down about a whole day. - -10:14 And there was no day like that before it or after it, that the -LORD hearkened unto the voice of a man: for the LORD fought for -Israel. - -10:15 And Joshua returned, and all Israel with him, unto the camp to -Gilgal. - -10:16 But these five kings fled, and hid themselves in a cave at -Makkedah. - -10:17 And it was told Joshua, saying, The five kings are found hid in -a cave at Makkedah. - -10:18 And Joshua said, Roll great stones upon the mouth of the cave, -and set men by it for to keep them: 10:19 And stay ye not, but pursue -after your enemies, and smite the hindmost of them; suffer them not to -enter into their cities: for the LORD your God hath delivered them -into your hand. - -10:20 And it came to pass, when Joshua and the children of Israel had -made an end of slaying them with a very great slaughter, till they -were consumed, that the rest which remained of them entered into -fenced cities. - -10:21 And all the people returned to the camp to Joshua at Makkedah in -peace: none moved his tongue against any of the children of Israel. - -10:22 Then said Joshua, Open the mouth of the cave, and bring out -those five kings unto me out of the cave. - -10:23 And they did so, and brought forth those five kings unto him out -of the cave, the king of Jerusalem, the king of Hebron, the king of -Jarmuth, the king of Lachish, and the king of Eglon. - -10:24 And it came to pass, when they brought out those kings unto -Joshua, that Joshua called for all the men of Israel, and said unto -the captains of the men of war which went with him, Come near, put -your feet upon the necks of these kings. And they came near, and put -their feet upon the necks of them. - -10:25 And Joshua said unto them, Fear not, nor be dismayed, be strong -and of good courage: for thus shall the LORD do to all your enemies -against whom ye fight. - -10:26 And afterward Joshua smote them, and slew them, and hanged them -on five trees: and they were hanging upon the trees until the evening. - -10:27 And it came to pass at the time of the going down of the sun, -that Joshua commanded, and they took them down off the trees, and cast -them into the cave wherein they had been hid, and laid great stones in -the cave's mouth, which remain until this very day. - -10:28 And that day Joshua took Makkedah, and smote it with the edge of -the sword, and the king thereof he utterly destroyed, them, and all -the souls that were therein; he let none remain: and he did to the -king of Makkedah as he did unto the king of Jericho. - -10:29 Then Joshua passed from Makkedah, and all Israel with him, unto -Libnah, and fought against Libnah: 10:30 And the LORD delivered it -also, and the king thereof, into the hand of Israel; and he smote it -with the edge of the sword, and all the souls that were therein; he -let none remain in it; but did unto the king thereof as he did unto -the king of Jericho. - -10:31 And Joshua passed from Libnah, and all Israel with him, unto -Lachish, and encamped against it, and fought against it: 10:32 And the -LORD delivered Lachish into the hand of Israel, which took it on the -second day, and smote it with the edge of the sword, and all the souls -that were therein, according to all that he had done to Libnah. - -10:33 Then Horam king of Gezer came up to help Lachish; and Joshua -smote him and his people, until he had left him none remaining. - -10:34 And from Lachish Joshua passed unto Eglon, and all Israel with -him; and they encamped against it, and fought against it: 10:35 And -they took it on that day, and smote it with the edge of the sword, and -all the souls that were therein he utterly destroyed that day, -according to all that he had done to Lachish. - -10:36 And Joshua went up from Eglon, and all Israel with him, unto -Hebron; and they fought against it: 10:37 And they took it, and smote -it with the edge of the sword, and the king thereof, and all the -cities thereof, and all the souls that were therein; he left none -remaining, according to all that he had done to Eglon; but destroyed -it utterly, and all the souls that were therein. - -10:38 And Joshua returned, and all Israel with him, to Debir; and -fought against it: 10:39 And he took it, and the king thereof, and all -the cities thereof; and they smote them with the edge of the sword, -and utterly destroyed all the souls that were therein; he left none -remaining: as he had done to Hebron, so he did to Debir, and to the -king thereof; as he had done also to Libnah, and to her king. - -10:40 So Joshua smote all the country of the hills, and of the south, -and of the vale, and of the springs, and all their kings: he left none -remaining, but utterly destroyed all that breathed, as the LORD God of -Israel commanded. - -10:41 And Joshua smote them from Kadeshbarnea even unto Gaza, and all -the country of Goshen, even unto Gibeon. - -10:42 And all these kings and their land did Joshua take at one time, -because the LORD God of Israel fought for Israel. - -10:43 And Joshua returned, and all Israel with him, unto the camp to -Gilgal. - -11:1 And it came to pass, when Jabin king of Hazor had heard those -things, that he sent to Jobab king of Madon, and to the king of -Shimron, and to the king of Achshaph, 11:2 And to the kings that were -on the north of the mountains, and of the plains south of Chinneroth, -and in the valley, and in the borders of Dor on the west, 11:3 And to -the Canaanite on the east and on the west, and to the Amorite, and the -Hittite, and the Perizzite, and the Jebusite in the mountains, and to -the Hivite under Hermon in the land of Mizpeh. - -11:4 And they went out, they and all their hosts with them, much -people, even as the sand that is upon the sea shore in multitude, with -horses and chariots very many. - -11:5 And when all these kings were met together, they came and pitched -together at the waters of Merom, to fight against Israel. - -11:6 And the LORD said unto Joshua, Be not afraid because of them: for -to morrow about this time will I deliver them up all slain before -Israel: thou shalt hough their horses, and burn their chariots with -fire. - -11:7 So Joshua came, and all the people of war with him, against them -by the waters of Merom suddenly; and they fell upon them. - -11:8 And the LORD delivered them into the hand of Israel, who smote -them, and chased them unto great Zidon, and unto Misrephothmaim, and -unto the valley of Mizpeh eastward; and they smote them, until they -left them none remaining. - -11:9 And Joshua did unto them as the LORD bade him: he houghed their -horses, and burnt their chariots with fire. - -11:10 And Joshua at that time turned back, and took Hazor, and smote -the king thereof with the sword: for Hazor beforetime was the head of -all those kingdoms. - -11:11 And they smote all the souls that were therein with the edge of -the sword, utterly destroying them: there was not any left to breathe: -and he burnt Hazor with fire. - -11:12 And all the cities of those kings, and all the kings of them, -did Joshua take, and smote them with the edge of the sword, and he -utterly destroyed them, as Moses the servant of the LORD commanded. - -11:13 But as for the cities that stood still in their strength, Israel -burned none of them, save Hazor only; that did Joshua burn. - -11:14 And all the spoil of these cities, and the cattle, the children -of Israel took for a prey unto themselves; but every man they smote -with the edge of the sword, until they had destroyed them, neither -left they any to breathe. - -11:15 As the LORD commanded Moses his servant, so did Moses command -Joshua, and so did Joshua; he left nothing undone of all that the LORD -commanded Moses. - -11:16 So Joshua took all that land, the hills, and all the south -country, and all the land of Goshen, and the valley, and the plain, -and the mountain of Israel, and the valley of the same; 11:17 Even -from the mount Halak, that goeth up to Seir, even unto Baalgad in the -valley of Lebanon under mount Hermon: and all their kings he took, and -smote them, and slew them. - -11:18 Joshua made war a long time with all those kings. - -11:19 There was not a city that made peace with the children of -Israel, save the Hivites the inhabitants of Gibeon: all other they -took in battle. - -11:20 For it was of the LORD to harden their hearts, that they should -come against Israel in battle, that he might destroy them utterly, and -that they might have no favour, but that he might destroy them, as the -LORD commanded Moses. - -11:21 And at that time came Joshua, and cut off the Anakims from the -mountains, from Hebron, from Debir, from Anab, and from all the -mountains of Judah, and from all the mountains of Israel: Joshua -destroyed them utterly with their cities. - -11:22 There was none of the Anakims left in the land of the children -of Israel: only in Gaza, in Gath, and in Ashdod, there remained. - -11:23 So Joshua took the whole land, according to all that the LORD -said unto Moses; and Joshua gave it for an inheritance unto Israel -according to their divisions by their tribes. And the land rested from -war. - -12:1 Now these are the kings of the land, which the children of Israel -smote, and possessed their land on the other side Jordan toward the -rising of the sun, from the river Arnon unto mount Hermon, and all the -plain on the east: 12:2 Sihon king of the Amorites, who dwelt in -Heshbon, and ruled from Aroer, which is upon the bank of the river -Arnon, and from the middle of the river, and from half Gilead, even -unto the river Jabbok, which is the border of the children of Ammon; -12:3 And from the plain to the sea of Chinneroth on the east, and unto -the sea of the plain, even the salt sea on the east, the way to -Bethjeshimoth; and from the south, under Ashdothpisgah: 12:4 And the -coast of Og king of Bashan, which was of the remnant of the giants, -that dwelt at Ashtaroth and at Edrei, 12:5 And reigned in mount -Hermon, and in Salcah, and in all Bashan, unto the border of the -Geshurites and the Maachathites, and half Gilead, the border of Sihon -king of Heshbon. - -12:6 Them did Moses the servant of the LORD and the children of Israel -smite: and Moses the servant of the LORD gave it for a possession unto -the Reubenites, and the Gadites, and the half tribe of Manasseh. - -12:7 And these are the kings of the country which Joshua and the -children of Israel smote on this side Jordan on the west, from Baalgad -in the valley of Lebanon even unto the mount Halak, that goeth up to -Seir; which Joshua gave unto the tribes of Israel for a possession -according to their divisions; 12:8 In the mountains, and in the -valleys, and in the plains, and in the springs, and in the wilderness, -and in the south country; the Hittites, the Amorites, and the -Canaanites, the Perizzites, the Hivites, and the Jebusites: 12:9 The -king of Jericho, one; the king of Ai, which is beside Bethel, one; -12:10 The king of Jerusalem, one; the king of Hebron, one; 12:11 The -king of Jarmuth, one; the king of Lachish, one; 12:12 The king of -Eglon, one; the king of Gezer, one; 12:13 The king of Debir, one; the -king of Geder, one; 12:14 The king of Hormah, one; the king of Arad, -one; 12:15 The king of Libnah, one; the king of Adullam, one; 12:16 -The king of Makkedah, one; the king of Bethel, one; 12:17 The king of -Tappuah, one; the king of Hepher, one; 12:18 The king of Aphek, one; -the king of Lasharon, one; 12:19 The king of Madon, one; the king of -Hazor, one; 12:20 The king of Shimronmeron, one; the king of Achshaph, -one; 12:21 The king of Taanach, one; the king of Megiddo, one; 12:22 -The king of Kedesh, one; the king of Jokneam of Carmel, one; 12:23 The -king of Dor in the coast of Dor, one; the king of the nations of -Gilgal, one; 12:24 The king of Tirzah, one: all the kings thirty and -one. - -13:1 Now Joshua was old and stricken in years; and the LORD said unto -him, Thou art old and stricken in years, and there remaineth yet very -much land to be possessed. - -13:2 This is the land that yet remaineth: all the borders of the -Philistines, and all Geshuri, 13:3 From Sihor, which is before Egypt, -even unto the borders of Ekron northward, which is counted to the -Canaanite: five lords of the Philistines; the Gazathites, and the -Ashdothites, the Eshkalonites, the Gittites, and the Ekronites; also -the Avites: 13:4 From the south, all the land of the Canaanites, and -Mearah that is beside the Sidonians unto Aphek, to the borders of the -Amorites: 13:5 And the land of the Giblites, and all Lebanon, toward -the sunrising, from Baalgad under mount Hermon unto the entering into -Hamath. - -13:6 All the inhabitants of the hill country from Lebanon unto -Misrephothmaim, and all the Sidonians, them will I drive out from -before the children of Israel: only divide thou it by lot unto the -Israelites for an inheritance, as I have commanded thee. - -13:7 Now therefore divide this land for an inheritance unto the nine -tribes, and the half tribe of Manasseh, 13:8 With whom the Reubenites -and the Gadites have received their inheritance, which Moses gave -them, beyond Jordan eastward, even as Moses the servant of the LORD -gave them; 13:9 From Aroer, that is upon the bank of the river Arnon, -and the city that is in the midst of the river, and all the plain of -Medeba unto Dibon; 13:10 And all the cities of Sihon king of the -Amorites, which reigned in Heshbon, unto the border of the children of -Ammon; 13:11 And Gilead, and the border of the Geshurites and -Maachathites, and all mount Hermon, and all Bashan unto Salcah; 13:12 -All the kingdom of Og in Bashan, which reigned in Ashtaroth and in -Edrei, who remained of the remnant of the giants: for these did Moses -smite, and cast them out. - -13:13 Nevertheless the children of Israel expelled not the Geshurites, -nor the Maachathites: but the Geshurites and the Maachathites dwell -among the Israelites until this day. - -13:14 Only unto the tribes of Levi he gave none inheritance; the -sacrifices of the LORD God of Israel made by fire are their -inheritance, as he said unto them. - -13:15 And Moses gave unto the tribe of the children of Reuben -inheritance according to their families. - -13:16 And their coast was from Aroer, that is on the bank of the river -Arnon, and the city that is in the midst of the river, and all the -plain by Medeba; 13:17 Heshbon, and all her cities that are in the -plain; Dibon, and Bamothbaal, and Bethbaalmeon, 13:18 And Jahaza, and -Kedemoth, and Mephaath, 13:19 And Kirjathaim, and Sibmah, and -Zarethshahar in the mount of the valley, 13:20 And Bethpeor, and -Ashdothpisgah, and Bethjeshimoth, 13:21 And all the cities of the -plain, and all the kingdom of Sihon king of the Amorites, which -reigned in Heshbon, whom Moses smote with the princes of Midian, Evi, -and Rekem, and Zur, and Hur, and Reba, which were dukes of Sihon, -dwelling in the country. - -13:22 Balaam also the son of Beor, the soothsayer, did the children of -Israel slay with the sword among them that were slain by them. - -13:23 And the border of the children of Reuben was Jordan, and the -border thereof. This was the inheritance of the children of Reuben -after their families, the cities and the villages thereof. - -13:24 And Moses gave inheritance unto the tribe of Gad, even unto the -children of Gad according to their families. - -13:25 And their coast was Jazer, and all the cities of Gilead, and -half the land of the children of Ammon, unto Aroer that is before -Rabbah; 13:26 And from Heshbon unto Ramathmizpeh, and Betonim; and -from Mahanaim unto the border of Debir; 13:27 And in the valley, -Betharam, and Bethnimrah, and Succoth, and Zaphon, the rest of the -kingdom of Sihon king of Heshbon, Jordan and his border, even unto the -edge of the sea of Chinnereth on the other side Jordan eastward. - -13:28 This is the inheritance of the children of Gad after their -families, the cities, and their villages. - -13:29 And Moses gave inheritance unto the half tribe of Manasseh: and -this was the possession of the half tribe of the children of Manasseh -by their families. - -13:30 And their coast was from Mahanaim, all Bashan, all the kingdom -of Og king of Bashan, and all the towns of Jair, which are in Bashan, -threescore cities: 13:31 And half Gilead, and Ashtaroth, and Edrei, -cities of the kingdom of Og in Bashan, were pertaining unto the -children of Machir the son of Manasseh, even to the one half of the -children of Machir by their families. - -13:32 These are the countries which Moses did distribute for -inheritance in the plains of Moab, on the other side Jordan, by -Jericho, eastward. - -13:33 But unto the tribe of Levi Moses gave not any inheritance: the -LORD God of Israel was their inheritance, as he said unto them. - -14:1 And these are the countries which the children of Israel -inherited in the land of Canaan, which Eleazar the priest, and Joshua -the son of Nun, and the heads of the fathers of the tribes of the -children of Israel, distributed for inheritance to them. - -14:2 By lot was their inheritance, as the LORD commanded by the hand -of Moses, for the nine tribes, and for the half tribe. - -14:3 For Moses had given the inheritance of two tribes and an half -tribe on the other side Jordan: but unto the Levites he gave none -inheritance among them. - -14:4 For the children of Joseph were two tribes, Manasseh and Ephraim: -therefore they gave no part unto the Levites in the land, save cities -to dwell in, with their suburbs for their cattle and for their -substance. - -14:5 As the LORD commanded Moses, so the children of Israel did, and -they divided the land. - -14:6 Then the children of Judah came unto Joshua in Gilgal: and Caleb -the son of Jephunneh the Kenezite said unto him, Thou knowest the -thing that the LORD said unto Moses the man of God concerning me and -thee in Kadeshbarnea. - -14:7 Forty years old was I when Moses the servant of the LORD sent me -from Kadeshbarnea to espy out the land; and I brought him word again -as it was in mine heart. - -14:8 Nevertheless my brethren that went up with me made the heart of -the people melt: but I wholly followed the LORD my God. - -14:9 And Moses sware on that day, saying, Surely the land whereon thy -feet have trodden shall be thine inheritance, and thy children's for -ever, because thou hast wholly followed the LORD my God. - -14:10 And now, behold, the LORD hath kept me alive, as he said, these -forty and five years, even since the LORD spake this word unto Moses, -while the children of Israel wandered in the wilderness: and now, lo, -I am this day fourscore and five years old. - -14:11 As yet I am as strong this day as I was in the day that Moses -sent me: as my strength was then, even so is my strength now, for war, -both to go out, and to come in. - -14:12 Now therefore give me this mountain, whereof the LORD spake in -that day; for thou heardest in that day how the Anakims were there, -and that the cities were great and fenced: if so be the LORD will be -with me, then I shall be able to drive them out, as the LORD said. - -14:13 And Joshua blessed him, and gave unto Caleb the son of Jephunneh -Hebron for an inheritance. - -14:14 Hebron therefore became the inheritance of Caleb the son of -Jephunneh the Kenezite unto this day, because that he wholly followed -the LORD God of Israel. - -14:15 And the name of Hebron before was Kirjatharba; which Arba was a -great man among the Anakims. And the land had rest from war. - -15:1 This then was the lot of the tribe of the children of Judah by -their families; even to the border of Edom the wilderness of Zin -southward was the uttermost part of the south coast. - -15:2 And their south border was from the shore of the salt sea, from -the bay that looketh southward: 15:3 And it went out to the south side -to Maalehacrabbim, and passed along to Zin, and ascended up on the -south side unto Kadeshbarnea, and passed along to Hezron, and went up -to Adar, and fetched a compass to Karkaa: 15:4 From thence it passed -toward Azmon, and went out unto the river of Egypt; and the goings out -of that coast were at the sea: this shall be your south coast. - -15:5 And the east border was the salt sea, even unto the end of -Jordan. - -And their border in the north quarter was from the bay of the sea at -the uttermost part of Jordan: 15:6 And the border went up to -Bethhogla, and passed along by the north of Betharabah; and the border -went up to the stone of Bohan the son of Reuben: 15:7 And the border -went up toward Debir from the valley of Achor, and so northward, -looking toward Gilgal, that is before the going up to Adummim, which -is on the south side of the river: and the border passed toward the -waters of Enshemesh, and the goings out thereof were at Enrogel: 15:8 -And the border went up by the valley of the son of Hinnom unto the -south side of the Jebusite; the same is Jerusalem: and the border went -up to the top of the mountain that lieth before the valley of Hinnom -westward, which is at the end of the valley of the giants northward: -15:9 And the border was drawn from the top of the hill unto the -fountain of the water of Nephtoah, and went out to the cities of mount -Ephron; and the border was drawn to Baalah, which is Kirjathjearim: -15:10 And the border compassed from Baalah westward unto mount Seir, -and passed along unto the side of mount Jearim, which is Chesalon, on -the north side, and went down to Bethshemesh, and passed on to Timnah: -15:11 And the border went out unto the side of Ekron northward: and -the border was drawn to Shicron, and passed along to mount Baalah, and -went out unto Jabneel; and the goings out of the border were at the -sea. - -15:12 And the west border was to the great sea, and the coast thereof. - -This is the coast of the children of Judah round about according to -their families. - -15:13 And unto Caleb the son of Jephunneh he gave a part among the -children of Judah, according to the commandment of the LORD to Joshua, -even the city of Arba the father of Anak, which city is Hebron. - -15:14 And Caleb drove thence the three sons of Anak, Sheshai, and -Ahiman, and Talmai, the children of Anak. - -15:15 And he went up thence to the inhabitants of Debir: and the name -of Debir before was Kirjathsepher. - -15:16 And Caleb said, He that smiteth Kirjathsepher, and taketh it, to -him will I give Achsah my daughter to wife. - -15:17 And Othniel the son of Kenaz, the brother of Caleb, took it: and -he gave him Achsah his daughter to wife. - -15:18 And it came to pass, as she came unto him, that she moved him to -ask of her father a field: and she lighted off her ass; and Caleb said -unto her, What wouldest thou? 15:19 Who answered, Give me a blessing; -for thou hast given me a south land; give me also springs of water. -And he gave her the upper springs, and the nether springs. - -15:20 This is the inheritance of the tribe of the children of Judah -according to their families. - -15:21 And the uttermost cities of the tribe of the children of Judah -toward the coast of Edom southward were Kabzeel, and Eder, and Jagur, -15:22 And Kinah, and Dimonah, and Adadah, 15:23 And Kedesh, and Hazor, -and Ithnan, 15:24 Ziph, and Telem, and Bealoth, 15:25 And Hazor, -Hadattah, and Kerioth, and Hezron, which is Hazor, 15:26 Amam, and -Shema, and Moladah, 15:27 And Hazargaddah, and Heshmon, and Bethpalet, -15:28 And Hazarshual, and Beersheba, and Bizjothjah, 15:29 Baalah, and -Iim, and Azem, 15:30 And Eltolad, and Chesil, and Hormah, 15:31 And -Ziklag, and Madmannah, and Sansannah, 15:32 And Lebaoth, and Shilhim, -and Ain, and Rimmon: all the cities are twenty and nine, with their -villages: 15:33 And in the valley, Eshtaol, and Zoreah, and Ashnah, -15:34 And Zanoah, and Engannim, Tappuah, and Enam, 15:35 Jarmuth, and -Adullam, Socoh, and Azekah, 15:36 And Sharaim, and Adithaim, and -Gederah, and Gederothaim; fourteen cities with their villages: 15:37 -Zenan, and Hadashah, and Migdalgad, 15:38 And Dilean, and Mizpeh, and -Joktheel, 15:39 Lachish, and Bozkath, and Eglon, 15:40 And Cabbon, and -Lahmam, and Kithlish, 15:41 And Gederoth, Bethdagon, and Naamah, and -Makkedah; sixteen cities with their villages: 15:42 Libnah, and Ether, -and Ashan, 15:43 And Jiphtah, and Ashnah, and Nezib, 15:44 And Keilah, -and Achzib, and Mareshah; nine cities with their villages: 15:45 -Ekron, with her towns and her villages: 15:46 From Ekron even unto the -sea, all that lay near Ashdod, with their villages: 15:47 Ashdod with -her towns and her villages, Gaza with her towns and her villages, unto -the river of Egypt, and the great sea, and the border thereof: 15:48 -And in the mountains, Shamir, and Jattir, and Socoh, 15:49 And Dannah, -and Kirjathsannah, which is Debir, 15:50 And Anab, and Eshtemoh, and -Anim, 15:51 And Goshen, and Holon, and Giloh; eleven cities with their -villages: 15:52 Arab, and Dumah, and Eshean, 15:53 And Janum, and -Bethtappuah, and Aphekah, 15:54 And Humtah, and Kirjatharba, which is -Hebron, and Zior; nine cities with their villages: 15:55 Maon, Carmel, -and Ziph, and Juttah, 15:56 And Jezreel, and Jokdeam, and Zanoah, -15:57 Cain, Gibeah, and Timnah; ten cities with their villages: 15:58 -Halhul, Bethzur, and Gedor, 15:59 And Maarath, and Bethanoth, and -Eltekon; six cities with their villages: 15:60 Kirjathbaal, which is -Kirjathjearim, and Rabbah; two cities with their villages: 15:61 In -the wilderness, Betharabah, Middin, and Secacah, 15:62 And Nibshan, -and the city of Salt, and Engedi; six cities with their villages. - -15:63 As for the Jebusites the inhabitants of Jerusalem, the children -of Judah could not drive them out; but the Jebusites dwell with the -children of Judah at Jerusalem unto this day. - -16:1 And the lot of the children of Joseph fell from Jordan by -Jericho, unto the water of Jericho on the east, to the wilderness that -goeth up from Jericho throughout mount Bethel, 16:2 And goeth out from -Bethel to Luz, and passeth along unto the borders of Archi to Ataroth, -16:3 And goeth down westward to the coast of Japhleti, unto the coast -of Bethhoron the nether, and to Gezer; and the goings out thereof are -at the sea. - -16:4 So the children of Joseph, Manasseh and Ephraim, took their -inheritance. - -16:5 And the border of the children of Ephraim according to their -families was thus: even the border of their inheritance on the east -side was Atarothaddar, unto Bethhoron the upper; 16:6 And the border -went out toward the sea to Michmethah on the north side; and the -border went about eastward unto Taanathshiloh, and passed by it on the -east to Janohah; 16:7 And it went down from Janohah to Ataroth, and to -Naarath, and came to Jericho, and went out at Jordan. - -16:8 The border went out from Tappuah westward unto the river Kanah; -and the goings out thereof were at the sea. This is the inheritance of -the tribe of the children of Ephraim by their families. - -16:9 And the separate cities for the children of Ephraim were among -the inheritance of the children of Manasseh, all the cities with their -villages. - -16:10 And they drave not out the Canaanites that dwelt in Gezer: but -the Canaanites dwell among the Ephraimites unto this day, and serve -under tribute. - -17:1 There was also a lot for the tribe of Manasseh; for he was the -firstborn of Joseph; to wit, for Machir the firstborn of Manasseh, the -father of Gilead: because he was a man of war, therefore he had Gilead -and Bashan. - -17:2 There was also a lot for the rest of the children of Manasseh by -their families; for the children of Abiezer, and for the children of -Helek, and for the children of Asriel, and for the children of -Shechem, and for the children of Hepher, and for the children of -Shemida: these were the male children of Manasseh the son of Joseph by -their families. - -17:3 But Zelophehad, the son of Hepher, the son of Gilead, the son of -Machir, the son of Manasseh, had no sons, but daughters: and these are -the names of his daughters, Mahlah, and Noah, Hoglah, Milcah, and -Tirzah. - -17:4 And they came near before Eleazar the priest, and before Joshua -the son of Nun, and before the princes, saying, The LORD commanded -Moses to give us an inheritance among our brethren. Therefore -according to the commandment of the LORD he gave them an inheritance -among the brethren of their father. - -17:5 And there fell ten portions to Manasseh, beside the land of -Gilead and Bashan, which were on the other side Jordan; 17:6 Because -the daughters of Manasseh had an inheritance among his sons: and the -rest of Manasseh's sons had the land of Gilead. - -17:7 And the coast of Manasseh was from Asher to Michmethah, that -lieth before Shechem; and the border went along on the right hand unto -the inhabitants of Entappuah. - -17:8 Now Manasseh had the land of Tappuah: but Tappuah on the border -of Manasseh belonged to the children of Ephraim; 17:9 And the coast -descended unto the river Kanah, southward of the river: these cities -of Ephraim are among the cities of Manasseh: the coast of Manasseh -also was on the north side of the river, and the outgoings of it were -at the sea: 17:10 Southward it was Ephraim's, and northward it was -Manasseh's, and the sea is his border; and they met together in Asher -on the north, and in Issachar on the east. - -17:11 And Manasseh had in Issachar and in Asher Bethshean and her -towns, and Ibleam and her towns, and the inhabitants of Dor and her -towns, and the inhabitants of Endor and her towns, and the inhabitants -of Taanach and her towns, and the inhabitants of Megiddo and her -towns, even three countries. - -17:12 Yet the children of Manasseh could not drive out the inhabitants -of those cities; but the Canaanites would dwell in that land. - -17:13 Yet it came to pass, when the children of Israel were waxen -strong, that they put the Canaanites to tribute, but did not utterly -drive them out. - -17:14 And the children of Joseph spake unto Joshua, saying, Why hast -thou given me but one lot and one portion to inherit, seeing I am a -great people, forasmuch as the LORD hath blessed me hitherto? 17:15 -And Joshua answered them, If thou be a great people, then get thee up -to the wood country, and cut down for thyself there in the land of the -Perizzites and of the giants, if mount Ephraim be too narrow for thee. - -17:16 And the children of Joseph said, The hill is not enough for us: -and all the Canaanites that dwell in the land of the valley have -chariots of iron, both they who are of Bethshean and her towns, and -they who are of the valley of Jezreel. - -17:17 And Joshua spake unto the house of Joseph, even to Ephraim and -to Manasseh, saying, Thou art a great people, and hast great power: -thou shalt not have one lot only: 17:18 But the mountain shall be -thine; for it is a wood, and thou shalt cut it down: and the outgoings -of it shall be thine: for thou shalt drive out the Canaanites, though -they have iron chariots, and though they be strong. - -18:1 And the whole congregation of the children of Israel assembled -together at Shiloh, and set up the tabernacle of the congregation -there. And the land was subdued before them. - -18:2 And there remained among the children of Israel seven tribes, -which had not yet received their inheritance. - -18:3 And Joshua said unto the children of Israel, How long are ye -slack to go to possess the land, which the LORD God of your fathers -hath given you? 18:4 Give out from among you three men for each -tribe: and I will send them, and they shall rise, and go through the -land, and describe it according to the inheritance of them; and they -shall come again to me. - -18:5 And they shall divide it into seven parts: Judah shall abide in -their coast on the south, and the house of Joseph shall abide in their -coasts on the north. - -18:6 Ye shall therefore describe the land into seven parts, and bring -the description hither to me, that I may cast lots for you here before -the LORD our God. - -18:7 But the Levites have no part among you; for the priesthood of the -LORD is their inheritance: and Gad, and Reuben, and half the tribe of -Manasseh, have received their inheritance beyond Jordan on the east, -which Moses the servant of the LORD gave them. - -18:8 And the men arose, and went away: and Joshua charged them that -went to describe the land, saying, Go and walk through the land, and -describe it, and come again to me, that I may here cast lots for you -before the LORD in Shiloh. - -18:9 And the men went and passed through the land, and described it by -cities into seven parts in a book, and came again to Joshua to the -host at Shiloh. - -18:10 And Joshua cast lots for them in Shiloh before the LORD: and -there Joshua divided the land unto the children of Israel according to -their divisions. - -18:11 And the lot of the tribe of the children of Benjamin came up -according to their families: and the coast of their lot came forth -between the children of Judah and the children of Joseph. - -18:12 And their border on the north side was from Jordan; and the -border went up to the side of Jericho on the north side, and went up -through the mountains westward; and the goings out thereof were at the -wilderness of Bethaven. - -18:13 And the border went over from thence toward Luz, to the side of -Luz, which is Bethel, southward; and the border descended to -Atarothadar, near the hill that lieth on the south side of the nether -Bethhoron. - -18:14 And the border was drawn thence, and compassed the corner of the -sea southward, from the hill that lieth before Bethhoron southward; -and the goings out thereof were at Kirjathbaal, which is -Kirjathjearim, a city of the children of Judah: this was the west -quarter. - -18:15 And the south quarter was from the end of Kirjathjearim, and the -border went out on the west, and went out to the well of waters of -Nephtoah: 18:16 And the border came down to the end of the mountain -that lieth before the valley of the son of Hinnom, and which is in the -valley of the giants on the north, and descended to the valley of -Hinnom, to the side of Jebusi on the south, and descended to Enrogel, -18:17 And was drawn from the north, and went forth to Enshemesh, and -went forth toward Geliloth, which is over against the going up of -Adummim, and descended to the stone of Bohan the son of Reuben, 18:18 -And passed along toward the side over against Arabah northward, and -went down unto Arabah: 18:19 And the border passed along to the side -of Bethhoglah northward: and the outgoings of the border were at the -north bay of the salt sea at the south end of Jordan: this was the -south coast. - -18:20 And Jordan was the border of it on the east side. This was the -inheritance of the children of Benjamin, by the coasts thereof round -about, according to their families. - -18:21 Now the cities of the tribe of the children of Benjamin -according to their families were Jericho, and Bethhoglah, and the -valley of Keziz, 18:22 And Betharabah, and Zemaraim, and Bethel, 18:23 -And Avim, and Pharah, and Ophrah, 18:24 And Chepharhaammonai, and -Ophni, and Gaba; twelve cities with their villages: 18:25 Gibeon, and -Ramah, and Beeroth, 18:26 And Mizpeh, and Chephirah, and Mozah, 18:27 -And Rekem, and Irpeel, and Taralah, 18:28 And Zelah, Eleph, and -Jebusi, which is Jerusalem, Gibeath, and Kirjath; fourteen cities with -their villages. This is the inheritance of the children of Benjamin -according to their families. - -19:1 And the second lot came forth to Simeon, even for the tribe of -the children of Simeon according to their families: and their -inheritance was within the inheritance of the children of Judah. - -19:2 And they had in their inheritance Beersheba, and Sheba, and -Moladah, 19:3 And Hazarshual, and Balah, and Azem, 19:4 And Eltolad, -and Bethul, and Hormah, 19:5 And Ziklag, and Bethmarcaboth, and -Hazarsusah, 19:6 And Bethlebaoth, and Sharuhen; thirteen cities and -their villages: 19:7 Ain, Remmon, and Ether, and Ashan; four cities -and their villages: 19:8 And all the villages that were round about -these cities to Baalathbeer, Ramath of the south. This is the -inheritance of the tribe of the children of Simeon according to their -families. - -19:9 Out of the portion of the children of Judah was the inheritance -of the children of Simeon: for the part of the children of Judah was -too much for them: therefore the children of Simeon had their -inheritance within the inheritance of them. - -19:10 And the third lot came up for the children of Zebulun according -to their families: and the border of their inheritance was unto Sarid: -19:11 And their border went up toward the sea, and Maralah, and -reached to Dabbasheth, and reached to the river that is before -Jokneam; 19:12 And turned from Sarid eastward toward the sunrising -unto the border of Chislothtabor, and then goeth out to Daberath, and -goeth up to Japhia, 19:13 And from thence passeth on along on the east -to Gittahhepher, to Ittahkazin, and goeth out to Remmonmethoar to -Neah; 19:14 And the border compasseth it on the north side to -Hannathon: and the outgoings thereof are in the valley of Jiphthahel: -19:15 And Kattath, and Nahallal, and Shimron, and Idalah, and -Bethlehem: twelve cities with their villages. - -19:16 This is the inheritance of the children of Zebulun according to -their families, these cities with their villages. - -19:17 And the fourth lot came out to Issachar, for the children of -Issachar according to their families. - -19:18 And their border was toward Jezreel, and Chesulloth, and Shunem, -19:19 And Haphraim, and Shihon, and Anaharath, 19:20 And Rabbith, and -Kishion, and Abez, 19:21 And Remeth, and Engannim, and Enhaddah, and -Bethpazzez; 19:22 And the coast reacheth to Tabor, and Shahazimah, and -Bethshemesh; and the outgoings of their border were at Jordan: sixteen -cities with their villages. - -19:23 This is the inheritance of the tribe of the children of Issachar -according to their families, the cities and their villages. - -19:24 And the fifth lot came out for the tribe of the children of -Asher according to their families. - -19:25 And their border was Helkath, and Hali, and Beten, and Achshaph, -19:26 And Alammelech, and Amad, and Misheal; and reacheth to Carmel -westward, and to Shihorlibnath; 19:27 And turneth toward the sunrising -to Bethdagon, and reacheth to Zebulun, and to the valley of Jiphthahel -toward the north side of Bethemek, and Neiel, and goeth out to Cabul -on the left hand, 19:28 And Hebron, and Rehob, and Hammon, and Kanah, -even unto great Zidon; 19:29 And then the coast turneth to Ramah, and -to the strong city Tyre; and the coast turneth to Hosah; and the -outgoings thereof are at the sea from the coast to Achzib: 19:30 Ummah -also, and Aphek, and Rehob: twenty and two cities with their villages. - -19:31 This is the inheritance of the tribe of the children of Asher -according to their families, these cities with their villages. - -19:32 The sixth lot came out to the children of Naphtali, even for the -children of Naphtali according to their families. - -19:33 And their coast was from Heleph, from Allon to Zaanannim, and -Adami, Nekeb, and Jabneel, unto Lakum; and the outgoings thereof were -at Jordan: 19:34 And then the coast turneth westward to Aznothtabor, -and goeth out from thence to Hukkok, and reacheth to Zebulun on the -south side, and reacheth to Asher on the west side, and to Judah upon -Jordan toward the sunrising. - -19:35 And the fenced cities are Ziddim, Zer, and Hammath, Rakkath, and -Chinnereth, 19:36 And Adamah, and Ramah, and Hazor, 19:37 And Kedesh, -and Edrei, and Enhazor, 19:38 And Iron, and Migdalel, Horem, and -Bethanath, and Bethshemesh; nineteen cities with their villages. - -19:39 This is the inheritance of the tribe of the children of Naphtali -according to their families, the cities and their villages. - -19:40 And the seventh lot came out for the tribe of the children of -Dan according to their families. - -19:41 And the coast of their inheritance was Zorah, and Eshtaol, and -Irshemesh, 19:42 And Shaalabbin, and Ajalon, and Jethlah, 19:43 And -Elon, and Thimnathah, and Ekron, 19:44 And Eltekeh, and Gibbethon, and -Baalath, 19:45 And Jehud, and Beneberak, and Gathrimmon, 19:46 And -Mejarkon, and Rakkon, with the border before Japho. - -19:47 And the coast of the children of Dan went out too little for -them: therefore the children of Dan went up to fight against Leshem, -and took it, and smote it with the edge of the sword, and possessed -it, and dwelt therein, and called Leshem, Dan, after the name of Dan -their father. - -19:48 This is the inheritance of the tribe of the children of Dan -according to their families, these cities with their villages. - -19:49 When they had made an end of dividing the land for inheritance -by their coasts, the children of Israel gave an inheritance to Joshua -the son of Nun among them: 19:50 According to the word of the LORD -they gave him the city which he asked, even Timnathserah in mount -Ephraim: and he built the city, and dwelt therein. - -19:51 These are the inheritances, which Eleazar the priest, and Joshua -the son of Nun, and the heads of the fathers of the tribes of the -children of Israel, divided for an inheritance by lot in Shiloh before -the LORD, at the door of the tabernacle of the congregation. So they -made an end of dividing the country. - -20:1 The LORD also spake unto Joshua, saying, 20:2 Speak to the -children of Israel, saying, Appoint out for you cities of refuge, -whereof I spake unto you by the hand of Moses: 20:3 That the slayer -that killeth any person unawares and unwittingly may flee thither: and -they shall be your refuge from the avenger of blood. - -20:4 And when he that doth flee unto one of those cities shall stand -at the entering of the gate of the city, and shall declare his cause -in the ears of the elders of that city, they shall take him into the -city unto them, and give him a place, that he may dwell among them. - -20:5 And if the avenger of blood pursue after him, then they shall not -deliver the slayer up into his hand; because he smote his neighbour -unwittingly, and hated him not beforetime. - -20:6 And he shall dwell in that city, until he stand before the -congregation for judgment, and until the death of the high priest that -shall be in those days: then shall the slayer return, and come unto -his own city, and unto his own house, unto the city from whence he -fled. - -20:7 And they appointed Kedesh in Galilee in mount Naphtali, and -Shechem in mount Ephraim, and Kirjatharba, which is Hebron, in the -mountain of Judah. - -20:8 And on the other side Jordan by Jericho eastward, they assigned -Bezer in the wilderness upon the plain out of the tribe of Reuben, and -Ramoth in Gilead out of the tribe of Gad, and Golan in Bashan out of -the tribe of Manasseh. - -20:9 These were the cities appointed for all the children of Israel, -and for the stranger that sojourneth among them, that whosoever -killeth any person at unawares might flee thither, and not die by the -hand of the avenger of blood, until he stood before the congregation. - -21:1 Then came near the heads of the fathers of the Levites unto -Eleazar the priest, and unto Joshua the son of Nun, and unto the heads -of the fathers of the tribes of the children of Israel; 21:2 And they -spake unto them at Shiloh in the land of Canaan, saying, The LORD -commanded by the hand of Moses to give us cities to dwell in, with the -suburbs thereof for our cattle. - -21:3 And the children of Israel gave unto the Levites out of their -inheritance, at the commandment of the LORD, these cities and their -suburbs. - -21:4 And the lot came out for the families of the Kohathites: and the -children of Aaron the priest, which were of the Levites, had by lot -out of the tribe of Judah, and out of the tribe of Simeon, and out of -the tribe of Benjamin, thirteen cities. - -21:5 And the rest of the children of Kohath had by lot out of the -families of the tribe of Ephraim, and out of the tribe of Dan, and out -of the half tribe of Manasseh, ten cities. - -21:6 And the children of Gershon had by lot out of the families of the -tribe of Issachar, and out of the tribe of Asher, and out of the tribe -of Naphtali, and out of the half tribe of Manasseh in Bashan, thirteen -cities. - -21:7 The children of Merari by their families had out of the tribe of -Reuben, and out of the tribe of Gad, and out of the tribe of Zebulun, -twelve cities. - -21:8 And the children of Israel gave by lot unto the Levites these -cities with their suburbs, as the LORD commanded by the hand of Moses. - -21:9 And they gave out of the tribe of the children of Judah, and out -of the tribe of the children of Simeon, these cities which are here -mentioned by name. - -21:10 Which the children of Aaron, being of the families of the -Kohathites, who were of the children of Levi, had: for theirs was the -first lot. - -21:11 And they gave them the city of Arba the father of Anak, which -city is Hebron, in the hill country of Judah, with the suburbs thereof -round about it. - -21:12 But the fields of the city, and the villages thereof, gave they -to Caleb the son of Jephunneh for his possession. - -21:13 Thus they gave to the children of Aaron the priest Hebron with -her suburbs, to be a city of refuge for the slayer; and Libnah with -her suburbs, 21:14 And Jattir with her suburbs, and Eshtemoa with her -suburbs, 21:15 And Holon with her suburbs, and Debir with her suburbs, -21:16 And Ain with her suburbs, and Juttah with her suburbs, and -Bethshemesh with her suburbs; nine cities out of those two tribes. - -21:17 And out of the tribe of Benjamin, Gibeon with her suburbs, Geba -with her suburbs, 21:18 Anathoth with her suburbs, and Almon with her -suburbs; four cities. - -21:19 All the cities of the children of Aaron, the priests, were -thirteen cities with their suburbs. - -21:20 And the families of the children of Kohath, the Levites which -remained of the children of Kohath, even they had the cities of their -lot out of the tribe of Ephraim. - -21:21 For they gave them Shechem with her suburbs in mount Ephraim, to -be a city of refuge for the slayer; and Gezer with her suburbs, 21:22 -And Kibzaim with her suburbs, and Bethhoron with her suburbs; four -cities. - -21:23 And out of the tribe of Dan, Eltekeh with her suburbs, Gibbethon -with her suburbs, 21:24 Aijalon with her suburbs, Gathrimmon with her -suburbs; four cities. - -21:25 And out of the half tribe of Manasseh, Tanach with her suburbs, -and Gathrimmon with her suburbs; two cities. - -21:26 All the cities were ten with their suburbs for the families of -the children of Kohath that remained. - -21:27 And unto the children of Gershon, of the families of the -Levites, out of the other half tribe of Manasseh they gave Golan in -Bashan with her suburbs, to be a city of refuge for the slayer; and -Beeshterah with her suburbs; two cities. - -21:28 And out of the tribe of Issachar, Kishon with her suburbs, -Dabareh with her suburbs, 21:29 Jarmuth with her suburbs, Engannim -with her suburbs; four cities. - -21:30 And out of the tribe of Asher, Mishal with her suburbs, Abdon -with her suburbs, 21:31 Helkath with her suburbs, and Rehob with her -suburbs; four cities. - -21:32 And out of the tribe of Naphtali, Kedesh in Galilee with her -suburbs, to be a city of refuge for the slayer; and Hammothdor with -her suburbs, and Kartan with her suburbs; three cities. - -21:33 All the cities of the Gershonites according to their families -were thirteen cities with their suburbs. - -21:34 And unto the families of the children of Merari, the rest of the -Levites, out of the tribe of Zebulun, Jokneam with her suburbs, and -Kartah with her suburbs, 21:35 Dimnah with her suburbs, Nahalal with -her suburbs; four cities. - -21:36 And out of the tribe of Reuben, Bezer with her suburbs, and -Jahazah with her suburbs, 21:37 Kedemoth with her suburbs, and -Mephaath with her suburbs; four cities. - -21:38 And out of the tribe of Gad, Ramoth in Gilead with her suburbs, -to be a city of refuge for the slayer; and Mahanaim with her suburbs, -21:39 Heshbon with her suburbs, Jazer with her suburbs; four cities in -all. - -21:40 So all the cities for the children of Merari by their families, -which were remaining of the families of the Levites, were by their lot -twelve cities. - -21:41 All the cities of the Levites within the possession of the -children of Israel were forty and eight cities with their suburbs. - -21:42 These cities were every one with their suburbs round about them: -thus were all these cities. - -21:43 And the LORD gave unto Israel all the land which he sware to -give unto their fathers; and they possessed it, and dwelt therein. - -21:44 And the LORD gave them rest round about, according to all that -he sware unto their fathers: and there stood not a man of all their -enemies before them; the LORD delivered all their enemies into their -hand. - -21:45 There failed not ought of any good thing which the LORD had -spoken unto the house of Israel; all came to pass. - -22:1 Then Joshua called the Reubenites, and the Gadites, and the half -tribe of Manasseh, 22:2 And said unto them, Ye have kept all that -Moses the servant of the LORD commanded you, and have obeyed my voice -in all that I commanded you: 22:3 Ye have not left your brethren these -many days unto this day, but have kept the charge of the commandment -of the LORD your God. - -22:4 And now the LORD your God hath given rest unto your brethren, as -he promised them: therefore now return ye, and get you unto your -tents, and unto the land of your possession, which Moses the servant -of the LORD gave you on the other side Jordan. - -22:5 But take diligent heed to do the commandment and the law, which -Moses the servant of the LORD charged you, to love the LORD your God, -and to walk in all his ways, and to keep his commandments, and to -cleave unto him, and to serve him with all your heart and with all -your soul. - -22:6 So Joshua blessed them, and sent them away: and they went unto -their tents. - -22:7 Now to the one half of the tribe of Manasseh Moses had given -possession in Bashan: but unto the other half thereof gave Joshua -among their brethren on this side Jordan westward. And when Joshua -sent them away also unto their tents, then he blessed them, 22:8 And -he spake unto them, saying, Return with much riches unto your tents, -and with very much cattle, with silver, and with gold, and with brass, -and with iron, and with very much raiment: divide the spoil of your -enemies with your brethren. - -22:9 And the children of Reuben and the children of Gad and the half -tribe of Manasseh returned, and departed from the children of Israel -out of Shiloh, which is in the land of Canaan, to go unto the country -of Gilead, to the land of their possession, whereof they were -possessed, according to the word of the LORD by the hand of Moses. - -22:10 And when they came unto the borders of Jordan, that are in the -land of Canaan, the children of Reuben and the children of Gad and the -half tribe of Manasseh built there an altar by Jordan, a great altar -to see to. - -22:11 And the children of Israel heard say, Behold, the children of -Reuben and the children of Gad and the half tribe of Manasseh have -built an altar over against the land of Canaan, in the borders of -Jordan, at the passage of the children of Israel. - -22:12 And when the children of Israel heard of it, the whole -congregation of the children of Israel gathered themselves together at -Shiloh, to go up to war against them. - -22:13 And the children of Israel sent unto the children of Reuben, and -to the children of Gad, and to the half tribe of Manasseh, into the -land of Gilead, Phinehas the son of Eleazar the priest, 22:14 And with -him ten princes, of each chief house a prince throughout all the -tribes of Israel; and each one was an head of the house of their -fathers among the thousands of Israel. - -22:15 And they came unto the children of Reuben, and to the children -of Gad, and to the half tribe of Manasseh, unto the land of Gilead, -and they spake with them, saying, 22:16 Thus saith the whole -congregation of the LORD, What trespass is this that ye have committed -against the God of Israel, to turn away this day from following the -LORD, in that ye have builded you an altar, that ye might rebel this -day against the LORD? 22:17 Is the iniquity of Peor too little for -us, from which we are not cleansed until this day, although there was -a plague in the congregation of the LORD, 22:18 But that ye must turn -away this day from following the LORD? and it will be, seeing ye rebel -to day against the LORD, that to morrow he will be wroth with the -whole congregation of Israel. - -22:19 Notwithstanding, if the land of your possession be unclean, then -pass ye over unto the land of the possession of the LORD, wherein the -LORD's tabernacle dwelleth, and take possession among us: but rebel -not against the LORD, nor rebel against us, in building you an altar -beside the altar of the LORD our God. - -22:20 Did not Achan the son of Zerah commit a trespass in the accursed -thing, and wrath fell on all the congregation of Israel? and that man -perished not alone in his iniquity. - -22:21 Then the children of Reuben and the children of Gad and the half -tribe of Manasseh answered, and said unto the heads of the thousands -of Israel, 22:22 The LORD God of gods, the LORD God of gods, he -knoweth, and Israel he shall know; if it be in rebellion, or if in -transgression against the LORD, (save us not this day,) 22:23 That we -have built us an altar to turn from following the LORD, or if to offer -thereon burnt offering or meat offering, or if to offer peace -offerings thereon, let the LORD himself require it; 22:24 And if we -have not rather done it for fear of this thing, saying, In time to -come your children might speak unto our children, saying, What have ye -to do with the LORD God of Israel? 22:25 For the LORD hath made -Jordan a border between us and you, ye children of Reuben and children -of Gad; ye have no part in the LORD: so shall your children make our -children cease from fearing the LORD. - -22:26 Therefore we said, Let us now prepare to build us an altar, not -for burnt offering, nor for sacrifice: 22:27 But that it may be a -witness between us, and you, and our generations after us, that we -might do the service of the LORD before him with our burnt offerings, -and with our sacrifices, and with our peace offerings; that your -children may not say to our children in time to come, Ye have no part -in the LORD. - -22:28 Therefore said we, that it shall be, when they should so say to -us or to our generations in time to come, that we may say again, -Behold the pattern of the altar of the LORD, which our fathers made, -not for burnt offerings, nor for sacrifices; but it is a witness -between us and you. - -22:29 God forbid that we should rebel against the LORD, and turn this -day from following the LORD, to build an altar for burnt offerings, -for meat offerings, or for sacrifices, beside the altar of the LORD -our God that is before his tabernacle. - -22:30 And when Phinehas the priest, and the princes of the -congregation and heads of the thousands of Israel which were with him, -heard the words that the children of Reuben and the children of Gad -and the children of Manasseh spake, it pleased them. - -22:31 And Phinehas the son of Eleazar the priest said unto the -children of Reuben, and to the children of Gad, and to the children of -Manasseh, This day we perceive that the LORD is among us, because ye -have not committed this trespass against the LORD: now ye have -delivered the children of Israel out of the hand of the LORD. - -22:32 And Phinehas the son of Eleazar the priest, and the princes, -returned from the children of Reuben, and from the children of Gad, -out of the land of Gilead, unto the land of Canaan, to the children of -Israel, and brought them word again. - -22:33 And the thing pleased the children of Israel; and the children -of Israel blessed God, and did not intend to go up against them in -battle, to destroy the land wherein the children of Reuben and Gad -dwelt. - -22:34 And the children of Reuben and the children of Gad called the -altar Ed: for it shall be a witness between us that the LORD is God. - -23:1 And it came to pass a long time after that the LORD had given -rest unto Israel from all their enemies round about, that Joshua waxed -old and stricken in age. - -23:2 And Joshua called for all Israel, and for their elders, and for -their heads, and for their judges, and for their officers, and said -unto them, I am old and stricken in age: 23:3 And ye have seen all -that the LORD your God hath done unto all these nations because of -you; for the LORD your God is he that hath fought for you. - -23:4 Behold, I have divided unto you by lot these nations that remain, -to be an inheritance for your tribes, from Jordan, with all the -nations that I have cut off, even unto the great sea westward. - -23:5 And the LORD your God, he shall expel them from before you, and -drive them from out of your sight; and ye shall possess their land, as -the LORD your God hath promised unto you. - -23:6 Be ye therefore very courageous to keep and to do all that is -written in the book of the law of Moses, that ye turn not aside -therefrom to the right hand or to the left; 23:7 That ye come not -among these nations, these that remain among you; neither make mention -of the name of their gods, nor cause to swear by them, neither serve -them, nor bow yourselves unto them: 23:8 But cleave unto the LORD your -God, as ye have done unto this day. - -23:9 For the LORD hath driven out from before you great nations and -strong: but as for you, no man hath been able to stand before you unto -this day. - -23:10 One man of you shall chase a thousand: for the LORD your God, he -it is that fighteth for you, as he hath promised you. - -23:11 Take good heed therefore unto yourselves, that ye love the LORD -your God. - -23:12 Else if ye do in any wise go back, and cleave unto the remnant -of these nations, even these that remain among you, and shall make -marriages with them, and go in unto them, and they to you: 23:13 Know -for a certainty that the LORD your God will no more drive out any of -these nations from before you; but they shall be snares and traps unto -you, and scourges in your sides, and thorns in your eyes, until ye -perish from off this good land which the LORD your God hath given you. - -23:14 And, behold, this day I am going the way of all the earth: and -ye know in all your hearts and in all your souls, that not one thing -hath failed of all the good things which the LORD your God spake -concerning you; all are come to pass unto you, and not one thing hath -failed thereof. - -23:15 Therefore it shall come to pass, that as all good things are -come upon you, which the LORD your God promised you; so shall the LORD -bring upon you all evil things, until he have destroyed you from off -this good land which the LORD your God hath given you. - -23:16 When ye have transgressed the covenant of the LORD your God, -which he commanded you, and have gone and served other gods, and bowed -yourselves to them; then shall the anger of the LORD be kindled -against you, and ye shall perish quickly from off the good land which -he hath given unto you. - -24:1 And Joshua gathered all the tribes of Israel to Shechem, and -called for the elders of Israel, and for their heads, and for their -judges, and for their officers; and they presented themselves before -God. - -24:2 And Joshua said unto all the people, Thus saith the LORD God of -Israel, Your fathers dwelt on the other side of the flood in old time, -even Terah, the father of Abraham, and the father of Nachor: and they -served other gods. - -24:3 And I took your father Abraham from the other side of the flood, -and led him throughout all the land of Canaan, and multiplied his -seed, and gave him Isaac. - -24:4 And I gave unto Isaac Jacob and Esau: and I gave unto Esau mount -Seir, to possess it; but Jacob and his children went down into Egypt. - -24:5 I sent Moses also and Aaron, and I plagued Egypt, according to -that which I did among them: and afterward I brought you out. - -24:6 And I brought your fathers out of Egypt: and ye came unto the -sea; and the Egyptians pursued after your fathers with chariots and -horsemen unto the Red sea. - -24:7 And when they cried unto the LORD, he put darkness between you -and the Egyptians, and brought the sea upon them, and covered them; -and your eyes have seen what I have done in Egypt: and ye dwelt in the -wilderness a long season. - -24:8 And I brought you into the land of the Amorites, which dwelt on -the other side Jordan; and they fought with you: and I gave them into -your hand, that ye might possess their land; and I destroyed them from -before you. - -24:9 Then Balak the son of Zippor, king of Moab, arose and warred -against Israel, and sent and called Balaam the son of Beor to curse -you: 24:10 But I would not hearken unto Balaam; therefore he blessed -you still: so I delivered you out of his hand. - -24:11 And you went over Jordan, and came unto Jericho: and the men of -Jericho fought against you, the Amorites, and the Perizzites, and the -Canaanites, and the Hittites, and the Girgashites, the Hivites, and -the Jebusites; and I delivered them into your hand. - -24:12 And I sent the hornet before you, which drave them out from -before you, even the two kings of the Amorites; but not with thy -sword, nor with thy bow. - -24:13 And I have given you a land for which ye did not labour, and -cities which ye built not, and ye dwell in them; of the vineyards and -oliveyards which ye planted not do ye eat. - -24:14 Now therefore fear the LORD, and serve him in sincerity and in -truth: and put away the gods which your fathers served on the other -side of the flood, and in Egypt; and serve ye the LORD. - -24:15 And if it seem evil unto you to serve the LORD, choose you this -day whom ye will serve; whether the gods which your fathers served -that were on the other side of the flood, or the gods of the Amorites, -in whose land ye dwell: but as for me and my house, we will serve the -LORD. - -24:16 And the people answered and said, God forbid that we should -forsake the LORD, to serve other gods; 24:17 For the LORD our God, he -it is that brought us up and our fathers out of the land of Egypt, -from the house of bondage, and which did those great signs in our -sight, and preserved us in all the way wherein we went, and among all -the people through whom we passed: 24:18 And the LORD drave out from -before us all the people, even the Amorites which dwelt in the land: -therefore will we also serve the LORD; for he is our God. - -24:19 And Joshua said unto the people, Ye cannot serve the LORD: for -he is an holy God; he is a jealous God; he will not forgive your -transgressions nor your sins. - -24:20 If ye forsake the LORD, and serve strange gods, then he will -turn and do you hurt, and consume you, after that he hath done you -good. - -24:21 And the people said unto Joshua, Nay; but we will serve the -LORD. - -24:22 And Joshua said unto the people, Ye are witnesses against -yourselves that ye have chosen you the LORD, to serve him. And they -said, We are witnesses. - -24:23 Now therefore put away, said he, the strange gods which are -among you, and incline your heart unto the LORD God of Israel. - -24:24 And the people said unto Joshua, The LORD our God will we serve, -and his voice will we obey. - -24:25 So Joshua made a covenant with the people that day, and set them -a statute and an ordinance in Shechem. - -24:26 And Joshua wrote these words in the book of the law of God, and -took a great stone, and set it up there under an oak, that was by the -sanctuary of the LORD. - -24:27 And Joshua said unto all the people, Behold, this stone shall be -a witness unto us; for it hath heard all the words of the LORD which -he spake unto us: it shall be therefore a witness unto you, lest ye -deny your God. - -24:28 So Joshua let the people depart, every man unto his inheritance. - -24:29 And it came to pass after these things, that Joshua the son of -Nun, the servant of the LORD, died, being an hundred and ten years -old. - -24:30 And they buried him in the border of his inheritance in -Timnathserah, which is in mount Ephraim, on the north side of the hill -of Gaash. - -24:31 And Israel served the LORD all the days of Joshua, and all the -days of the elders that overlived Joshua, and which had known all the -works of the LORD, that he had done for Israel. - -24:32 And the bones of Joseph, which the children of Israel brought up -out of Egypt, buried they in Shechem, in a parcel of ground which -Jacob bought of the sons of Hamor the father of Shechem for an hundred -pieces of silver: and it became the inheritance of the children of -Joseph. - -24:33 And Eleazar the son of Aaron died; and they buried him in a hill -that pertained to Phinehas his son, which was given him in mount -Ephraim. - - - - -The Book of Judges - - -1:1 Now after the death of Joshua it came to pass, that the children -of Israel asked the LORD, saying, Who shall go up for us against the -Canaanites first, to fight against them? 1:2 And the LORD said, Judah -shall go up: behold, I have delivered the land into his hand. - -1:3 And Judah said unto Simeon his brother, Come up with me into my -lot, that we may fight against the Canaanites; and I likewise will go -with thee into thy lot. So Simeon went with him. - -1:4 And Judah went up; and the LORD delivered the Canaanites and the -Perizzites into their hand: and they slew of them in Bezek ten -thousand men. - -1:5 And they found Adonibezek in Bezek: and they fought against him, -and they slew the Canaanites and the Perizzites. - -1:6 But Adonibezek fled; and they pursued after him, and caught him, -and cut off his thumbs and his great toes. - -1:7 And Adonibezek said, Threescore and ten kings, having their thumbs -and their great toes cut off, gathered their meat under my table: as I -have done, so God hath requited me. And they brought him to Jerusalem, -and there he died. - -1:8 Now the children of Judah had fought against Jerusalem, and had -taken it, and smitten it with the edge of the sword, and set the city -on fire. - -1:9 And afterward the children of Judah went down to fight against the -Canaanites, that dwelt in the mountain, and in the south, and in the -valley. - -1:10 And Judah went against the Canaanites that dwelt in Hebron: (now -the name of Hebron before was Kirjatharba:) and they slew Sheshai, and -Ahiman, and Talmai. - -1:11 And from thence he went against the inhabitants of Debir: and the -name of Debir before was Kirjathsepher: 1:12 And Caleb said, He that -smiteth Kirjathsepher, and taketh it, to him will I give Achsah my -daughter to wife. - -1:13 And Othniel the son of Kenaz, Caleb's younger brother, took it: -and he gave him Achsah his daughter to wife. - -1:14 And it came to pass, when she came to him, that she moved him to -ask of her father a field: and she lighted from off her ass; and Caleb -said unto her, What wilt thou? 1:15 And she said unto him, Give me a -blessing: for thou hast given me a south land; give me also springs of -water. And Caleb gave her the upper springs and the nether springs. - -1:16 And the children of the Kenite, Moses' father in law, went up out -of the city of palm trees with the children of Judah into the -wilderness of Judah, which lieth in the south of Arad; and they went -and dwelt among the people. - -1:17 And Judah went with Simeon his brother, and they slew the -Canaanites that inhabited Zephath, and utterly destroyed it. And the -name of the city was called Hormah. - -1:18 Also Judah took Gaza with the coast thereof, and Askelon with the -coast thereof, and Ekron with the coast thereof. - -1:19 And the LORD was with Judah; and he drave out the inhabitants of -the mountain; but could not drive out the inhabitants of the valley, -because they had chariots of iron. - -1:20 And they gave Hebron unto Caleb, as Moses said: and he expelled -thence the three sons of Anak. - -1:21 And the children of Benjamin did not drive out the Jebusites that -inhabited Jerusalem; but the Jebusites dwell with the children of -Benjamin in Jerusalem unto this day. - -1:22 And the house of Joseph, they also went up against Bethel: and -the LORD was with them. - -1:23 And the house of Joseph sent to descry Bethel. (Now the name of -the city before was Luz.) 1:24 And the spies saw a man come forth out -of the city, and they said unto him, Shew us, we pray thee, the -entrance into the city, and we will shew thee mercy. - -1:25 And when he shewed them the entrance into the city, they smote -the city with the edge of the sword; but they let go the man and all -his family. - -1:26 And the man went into the land of the Hittites, and built a city, -and called the name thereof Luz: which is the name thereof unto this -day. - -1:27 Neither did Manasseh drive out the inhabitants of Bethshean and -her towns, nor Taanach and her towns, nor the inhabitants of Dor and -her towns, nor the inhabitants of Ibleam and her towns, nor the -inhabitants of Megiddo and her towns: but the Canaanites would dwell -in that land. - -1:28 And it came to pass, when Israel was strong, that they put the -Canaanites to tribute, and did not utterly drive them out. - -1:29 Neither did Ephraim drive out the Canaanites that dwelt in Gezer; -but the Canaanites dwelt in Gezer among them. - -1:30 Neither did Zebulun drive out the inhabitants of Kitron, nor the -inhabitants of Nahalol; but the Canaanites dwelt among them, and -became tributaries. - -1:31 Neither did Asher drive out the inhabitants of Accho, nor the -inhabitants of Zidon, nor of Ahlab, nor of Achzib, nor of Helbah, nor -of Aphik, nor of Rehob: 1:32 But the Asherites dwelt among the -Canaanites, the inhabitants of the land: for they did not drive them -out. - -1:33 Neither did Naphtali drive out the inhabitants of Bethshemesh, -nor the inhabitants of Bethanath; but he dwelt among the Canaanites, -the inhabitants of the land: nevertheless the inhabitants of -Bethshemesh and of Bethanath became tributaries unto them. - -1:34 And the Amorites forced the children of Dan into the mountain: -for they would not suffer them to come down to the valley: 1:35 But -the Amorites would dwell in mount Heres in Aijalon, and in Shaalbim: -yet the hand of the house of Joseph prevailed, so that they became -tributaries. - -1:36 And the coast of the Amorites was from the going up to Akrabbim, -from the rock, and upward. - -2:1 And an angel of the LORD came up from Gilgal to Bochim, and said, -I made you to go up out of Egypt, and have brought you unto the land -which I sware unto your fathers; and I said, I will never break my -covenant with you. - -2:2 And ye shall make no league with the inhabitants of this land; ye -shall throw down their altars: but ye have not obeyed my voice: why -have ye done this? 2:3 Wherefore I also said, I will not drive them -out from before you; but they shall be as thorns in your sides, and -their gods shall be a snare unto you. - -2:4 And it came to pass, when the angel of the LORD spake these words -unto all the children of Israel, that the people lifted up their -voice, and wept. - -2:5 And they called the name of that place Bochim: and they sacrificed -there unto the LORD. - -2:6 And when Joshua had let the people go, the children of Israel went -every man unto his inheritance to possess the land. - -2:7 And the people served the LORD all the days of Joshua, and all the -days of the elders that outlived Joshua, who had seen all the great -works of the LORD, that he did for Israel. - -2:8 And Joshua the son of Nun, the servant of the LORD, died, being an -hundred and ten years old. - -2:9 And they buried him in the border of his inheritance in -Timnathheres, in the mount of Ephraim, on the north side of the hill -Gaash. - -2:10 And also all that generation were gathered unto their fathers: -and there arose another generation after them, which knew not the -LORD, nor yet the works which he had done for Israel. - -2:11 And the children of Israel did evil in the sight of the LORD, and -served Baalim: 2:12 And they forsook the LORD God of their fathers, -which brought them out of the land of Egypt, and followed other gods, -of the gods of the people that were round about them, and bowed -themselves unto them, and provoked the LORD to anger. - -2:13 And they forsook the LORD, and served Baal and Ashtaroth. - -2:14 And the anger of the LORD was hot against Israel, and he -delivered them into the hands of spoilers that spoiled them, and he -sold them into the hands of their enemies round about, so that they -could not any longer stand before their enemies. - -2:15 Whithersoever they went out, the hand of the LORD was against -them for evil, as the LORD had said, and as the LORD had sworn unto -them: and they were greatly distressed. - -2:16 Nevertheless the LORD raised up judges, which delivered them out -of the hand of those that spoiled them. - -2:17 And yet they would not hearken unto their judges, but they went a -whoring after other gods, and bowed themselves unto them: they turned -quickly out of the way which their fathers walked in, obeying the -commandments of the LORD; but they did not so. - -2:18 And when the LORD raised them up judges, then the LORD was with -the judge, and delivered them out of the hand of their enemies all the -days of the judge: for it repented the LORD because of their groanings -by reason of them that oppressed them and vexed them. - -2:19 And it came to pass, when the judge was dead, that they returned, -and corrupted themselves more than their fathers, in following other -gods to serve them, and to bow down unto them; they ceased not from -their own doings, nor from their stubborn way. - -2:20 And the anger of the LORD was hot against Israel; and he said, -Because that this people hath transgressed my covenant which I -commanded their fathers, and have not hearkened unto my voice; 2:21 I -also will not henceforth drive out any from before them of the nations -which Joshua left when he died: 2:22 That through them I may prove -Israel, whether they will keep the way of the LORD to walk therein, as -their fathers did keep it, or not. - -2:23 Therefore the LORD left those nations, without driving them out -hastily; neither delivered he them into the hand of Joshua. - -3:1 Now these are the nations which the LORD left, to prove Israel by -them, even as many of Israel as had not known all the wars of Canaan; -3:2 Only that the generations of the children of Israel might know, to -teach them war, at the least such as before knew nothing thereof; 3:3 -Namely, five lords of the Philistines, and all the Canaanites, and the -Sidonians, and the Hivites that dwelt in mount Lebanon, from mount -Baalhermon unto the entering in of Hamath. - -3:4 And they were to prove Israel by them, to know whether they would -hearken unto the commandments of the LORD, which he commanded their -fathers by the hand of Moses. - -3:5 And the children of Israel dwelt among the Canaanites, Hittites, -and Amorites, and Perizzites, and Hivites, and Jebusites: 3:6 And they -took their daughters to be their wives, and gave their daughters to -their sons, and served their gods. - -3:7 And the children of Israel did evil in the sight of the LORD, and -forgat the LORD their God, and served Baalim and the groves. - -3:8 Therefore the anger of the LORD was hot against Israel, and he -sold them into the hand of Chushanrishathaim king of Mesopotamia: and -the children of Israel served Chushanrishathaim eight years. - -3:9 And when the children of Israel cried unto the LORD, the LORD -raised up a deliverer to the children of Israel, who delivered them, -even Othniel the son of Kenaz, Caleb's younger brother. - -3:10 And the Spirit of the LORD came upon him, and he judged Israel, -and went out to war: and the LORD delivered Chushanrishathaim king of -Mesopotamia into his hand; and his hand prevailed against -Chushanrishathaim. - -3:11 And the land had rest forty years. And Othniel the son of Kenaz -died. - -3:12 And the children of Israel did evil again in the sight of the -LORD: and the LORD strengthened Eglon the king of Moab against Israel, -because they had done evil in the sight of the LORD. - -3:13 And he gathered unto him the children of Ammon and Amalek, and -went and smote Israel, and possessed the city of palm trees. - -3:14 So the children of Israel served Eglon the king of Moab eighteen -years. - -3:15 But when the children of Israel cried unto the LORD, the LORD -raised them up a deliverer, Ehud the son of Gera, a Benjamite, a man -lefthanded: and by him the children of Israel sent a present unto -Eglon the king of Moab. - -3:16 But Ehud made him a dagger which had two edges, of a cubit -length; and he did gird it under his raiment upon his right thigh. - -3:17 And he brought the present unto Eglon king of Moab: and Eglon was -a very fat man. - -3:18 And when he had made an end to offer the present, he sent away -the people that bare the present. - -3:19 But he himself turned again from the quarries that were by -Gilgal, and said, I have a secret errand unto thee, O king: who said, -Keep silence. And all that stood by him went out from him. - -3:20 And Ehud came unto him; and he was sitting in a summer parlour, -which he had for himself alone. And Ehud said, I have a message from -God unto thee. - -And he arose out of his seat. - -3:21 And Ehud put forth his left hand, and took the dagger from his -right thigh, and thrust it into his belly: 3:22 And the haft also went -in after the blade; and the fat closed upon the blade, so that he -could not draw the dagger out of his belly; and the dirt came out. - -3:23 Then Ehud went forth through the porch, and shut the doors of the -parlour upon him, and locked them. - -3:24 When he was gone out, his servants came; and when they saw that, -behold, the doors of the parlour were locked, they said, Surely he -covereth his feet in his summer chamber. - -3:25 And they tarried till they were ashamed: and, behold, he opened -not the doors of the parlour; therefore they took a key, and opened -them: and, behold, their lord was fallen down dead on the earth. - -3:26 And Ehud escaped while they tarried, and passed beyond the -quarries, and escaped unto Seirath. - -3:27 And it came to pass, when he was come, that he blew a trumpet in -the mountain of Ephraim, and the children of Israel went down with him -from the mount, and he before them. - -3:28 And he said unto them, Follow after me: for the LORD hath -delivered your enemies the Moabites into your hand. And they went down -after him, and took the fords of Jordan toward Moab, and suffered not -a man to pass over. - -3:29 And they slew of Moab at that time about ten thousand men, all -lusty, and all men of valour; and there escaped not a man. - -3:30 So Moab was subdued that day under the hand of Israel. And the -land had rest fourscore years. - -3:31 And after him was Shamgar the son of Anath, which slew of the -Philistines six hundred men with an ox goad: and he also delivered -Israel. - -4:1 And the children of Israel again did evil in the sight of the -LORD, when Ehud was dead. - -4:2 And the LORD sold them into the hand of Jabin king of Canaan, that -reigned in Hazor; the captain of whose host was Sisera, which dwelt in -Harosheth of the Gentiles. - -4:3 And the children of Israel cried unto the LORD: for he had nine -hundred chariots of iron; and twenty years he mightily oppressed the -children of Israel. - -4:4 And Deborah, a prophetess, the wife of Lapidoth, she judged Israel -at that time. - -4:5 And she dwelt under the palm tree of Deborah between Ramah and -Bethel in mount Ephraim: and the children of Israel came up to her for -judgment. - -4:6 And she sent and called Barak the son of Abinoam out of -Kedeshnaphtali, and said unto him, Hath not the LORD God of Israel -commanded, saying, Go and draw toward mount Tabor, and take with thee -ten thousand men of the children of Naphtali and of the children of -Zebulun? 4:7 And I will draw unto thee to the river Kishon Sisera, -the captain of Jabin's army, with his chariots and his multitude; and -I will deliver him into thine hand. - -4:8 And Barak said unto her, If thou wilt go with me, then I will go: -but if thou wilt not go with me, then I will not go. - -4:9 And she said, I will surely go with thee: notwithstanding the -journey that thou takest shall not be for thine honour; for the LORD -shall sell Sisera into the hand of a woman. And Deborah arose, and -went with Barak to Kedesh. - -4:10 And Barak called Zebulun and Naphtali to Kedesh; and he went up -with ten thousand men at his feet: and Deborah went up with him. - -4:11 Now Heber the Kenite, which was of the children of Hobab the -father in law of Moses, had severed himself from the Kenites, and -pitched his tent unto the plain of Zaanaim, which is by Kedesh. - -4:12 And they shewed Sisera that Barak the son of Abinoam was gone up -to mount Tabor. - -4:13 And Sisera gathered together all his chariots, even nine hundred -chariots of iron, and all the people that were with him, from -Harosheth of the Gentiles unto the river of Kishon. - -4:14 And Deborah said unto Barak, Up; for this is the day in which the -LORD hath delivered Sisera into thine hand: is not the LORD gone out -before thee? So Barak went down from mount Tabor, and ten thousand men -after him. - -4:15 And the LORD discomfited Sisera, and all his chariots, and all -his host, with the edge of the sword before Barak; so that Sisera -lighted down off his chariot, and fled away on his feet. - -4:16 But Barak pursued after the chariots, and after the host, unto -Harosheth of the Gentiles: and all the host of Sisera fell upon the -edge of the sword; and there was not a man left. - -4:17 Howbeit Sisera fled away on his feet to the tent of Jael the wife -of Heber the Kenite: for there was peace between Jabin the king of -Hazor and the house of Heber the Kenite. - -4:18 And Jael went out to meet Sisera, and said unto him, Turn in, my -lord, turn in to me; fear not. And when he had turned in unto her into -the tent, she covered him with a mantle. - -4:19 And he said unto her, Give me, I pray thee, a little water to -drink; for I am thirsty. And she opened a bottle of milk, and gave him -drink, and covered him. - -4:20 Again he said unto her, Stand in the door of the tent, and it -shall be, when any man doth come and enquire of thee, and say, Is -there any man here? that thou shalt say, No. - -4:21 Then Jael Heber's wife took a nail of the tent, and took an -hammer in her hand, and went softly unto him, and smote the nail into -his temples, and fastened it into the ground: for he was fast asleep -and weary. So he died. - -4:22 And, behold, as Barak pursued Sisera, Jael came out to meet him, -and said unto him, Come, and I will shew thee the man whom thou -seekest. And when he came into her tent, behold, Sisera lay dead, and -the nail was in his temples. - -4:23 So God subdued on that day Jabin the king of Canaan before the -children of Israel. - -4:24 And the hand of the children of Israel prospered, and prevailed -against Jabin the king of Canaan, until they had destroyed Jabin king -of Canaan. - -5:1 Then sang Deborah and Barak the son of Abinoam on that day, -saying, 5:2 Praise ye the LORD for the avenging of Israel, when the -people willingly offered themselves. - -5:3 Hear, O ye kings; give ear, O ye princes; I, even I, will sing -unto the LORD; I will sing praise to the LORD God of Israel. - -5:4 LORD, when thou wentest out of Seir, when thou marchedst out of -the field of Edom, the earth trembled, and the heavens dropped, the -clouds also dropped water. - -5:5 The mountains melted from before the LORD, even that Sinai from -before the LORD God of Israel. - -5:6 In the days of Shamgar the son of Anath, in the days of Jael, the -highways were unoccupied, and the travellers walked through byways. - -5:7 The inhabitants of the villages ceased, they ceased in Israel, -until that I Deborah arose, that I arose a mother in Israel. - -5:8 They chose new gods; then was war in the gates: was there a shield -or spear seen among forty thousand in Israel? 5:9 My heart is toward -the governors of Israel, that offered themselves willingly among the -people. Bless ye the LORD. - -5:10 Speak, ye that ride on white asses, ye that sit in judgment, and -walk by the way. - -5:11 They that are delivered from the noise of archers in the places -of drawing water, there shall they rehearse the righteous acts of the -LORD, even the righteous acts toward the inhabitants of his villages -in Israel: then shall the people of the LORD go down to the gates. - -5:12 Awake, awake, Deborah: awake, awake, utter a song: arise, Barak, -and lead thy captivity captive, thou son of Abinoam. - -5:13 Then he made him that remaineth have dominion over the nobles -among the people: the LORD made me have dominion over the mighty. - -5:14 Out of Ephraim was there a root of them against Amalek; after -thee, Benjamin, among thy people; out of Machir came down governors, -and out of Zebulun they that handle the pen of the writer. - -5:15 And the princes of Issachar were with Deborah; even Issachar, and -also Barak: he was sent on foot into the valley. For the divisions of -Reuben there were great thoughts of heart. - -5:16 Why abodest thou among the sheepfolds, to hear the bleatings of -the flocks? For the divisions of Reuben there were great searchings of -heart. - -5:17 Gilead abode beyond Jordan: and why did Dan remain in ships? -Asher continued on the sea shore, and abode in his breaches. - -5:18 Zebulun and Naphtali were a people that jeoparded their lives -unto the death in the high places of the field. - -5:19 The kings came and fought, then fought the kings of Canaan in -Taanach by the waters of Megiddo; they took no gain of money. - -5:20 They fought from heaven; the stars in their courses fought -against Sisera. - -5:21 The river of Kishon swept them away, that ancient river, the -river Kishon. O my soul, thou hast trodden down strength. - -5:22 Then were the horsehoofs broken by the means of the pransings, -the pransings of their mighty ones. - -5:23 Curse ye Meroz, said the angel of the LORD, curse ye bitterly the -inhabitants thereof; because they came not to the help of the LORD, to -the help of the LORD against the mighty. - -5:24 Blessed above women shall Jael the wife of Heber the Kenite be, -blessed shall she be above women in the tent. - -5:25 He asked water, and she gave him milk; she brought forth butter -in a lordly dish. - -5:26 She put her hand to the nail, and her right hand to the workmen's -hammer; and with the hammer she smote Sisera, she smote off his head, -when she had pierced and stricken through his temples. - -5:27 At her feet he bowed, he fell, he lay down: at her feet he bowed, -he fell: where he bowed, there he fell down dead. - -5:28 The mother of Sisera looked out at a window, and cried through -the lattice, Why is his chariot so long in coming? why tarry the -wheels of his chariots? 5:29 Her wise ladies answered her, yea, she -returned answer to herself, 5:30 Have they not sped? have they not -divided the prey; to every man a damsel or two; to Sisera a prey of -divers colours, a prey of divers colours of needlework, of divers -colours of needlework on both sides, meet for the necks of them that -take the spoil? 5:31 So let all thine enemies perish, O LORD: but let -them that love him be as the sun when he goeth forth in his might. And -the land had rest forty years. - -6:1 And the children of Israel did evil in the sight of the LORD: and -the LORD delivered them into the hand of Midian seven years. - -6:2 And the hand of Midian prevailed against Israel: and because of -the Midianites the children of Israel made them the dens which are in -the mountains, and caves, and strong holds. - -6:3 And so it was, when Israel had sown, that the Midianites came up, -and the Amalekites, and the children of the east, even they came up -against them; 6:4 And they encamped against them, and destroyed the -increase of the earth, till thou come unto Gaza, and left no -sustenance for Israel, neither sheep, nor ox, nor ass. - -6:5 For they came up with their cattle and their tents, and they came -as grasshoppers for multitude; for both they and their camels were -without number: and they entered into the land to destroy it. - -6:6 And Israel was greatly impoverished because of the Midianites; and -the children of Israel cried unto the LORD. - -6:7 And it came to pass, when the children of Israel cried unto the -LORD because of the Midianites, 6:8 That the LORD sent a prophet unto -the children of Israel, which said unto them, Thus saith the LORD God -of Israel, I brought you up from Egypt, and brought you forth out of -the house of bondage; 6:9 And I delivered you out of the hand of the -Egyptians, and out of the hand of all that oppressed you, and drave -them out from before you, and gave you their land; 6:10 And I said -unto you, I am the LORD your God; fear not the gods of the Amorites, -in whose land ye dwell: but ye have not obeyed my voice. - -6:11 And there came an angel of the LORD, and sat under an oak which -was in Ophrah, that pertained unto Joash the Abiezrite: and his son -Gideon threshed wheat by the winepress, to hide it from the -Midianites. - -6:12 And the angel of the LORD appeared unto him, and said unto him, -The LORD is with thee, thou mighty man of valour. - -6:13 And Gideon said unto him, Oh my Lord, if the LORD be with us, why -then is all this befallen us? and where be all his miracles which our -fathers told us of, saying, Did not the LORD bring us up from Egypt? -but now the LORD hath forsaken us, and delivered us into the hands of -the Midianites. - -6:14 And the LORD looked upon him, and said, Go in this thy might, and -thou shalt save Israel from the hand of the Midianites: have not I -sent thee? 6:15 And he said unto him, Oh my Lord, wherewith shall I -save Israel? behold, my family is poor in Manasseh, and I am the -least in my father's house. - -6:16 And the LORD said unto him, Surely I will be with thee, and thou -shalt smite the Midianites as one man. - -6:17 And he said unto him, If now I have found grace in thy sight, -then shew me a sign that thou talkest with me. - -6:18 Depart not hence, I pray thee, until I come unto thee, and bring -forth my present, and set it before thee. And he said, I will tarry -until thou come again. - -6:19 And Gideon went in, and made ready a kid, and unleavened cakes of -an ephah of flour: the flesh he put in a basket, and he put the broth -in a pot, and brought it out unto him under the oak, and presented it. - -6:20 And the angel of God said unto him, Take the flesh and the -unleavened cakes, and lay them upon this rock, and pour out the broth. -And he did so. - -6:21 Then the angel of the LORD put forth the end of the staff that -was in his hand, and touched the flesh and the unleavened cakes; and -there rose up fire out of the rock, and consumed the flesh and the -unleavened cakes. Then the angel of the LORD departed out of his -sight. - -6:22 And when Gideon perceived that he was an angel of the LORD, -Gideon said, Alas, O LORD God! for because I have seen an angel of the -LORD face to face. - -6:23 And the LORD said unto him, Peace be unto thee; fear not: thou -shalt not die. - -6:24 Then Gideon built an altar there unto the LORD, and called it -Jehovahshalom: unto this day it is yet in Ophrah of the Abiezrites. - -6:25 And it came to pass the same night, that the LORD said unto him, -Take thy father's young bullock, even the second bullock of seven -years old, and throw down the altar of Baal that thy father hath, and -cut down the grove that is by it: 6:26 And build an altar unto the -LORD thy God upon the top of this rock, in the ordered place, and take -the second bullock, and offer a burnt sacrifice with the wood of the -grove which thou shalt cut down. - -6:27 Then Gideon took ten men of his servants, and did as the LORD had -said unto him: and so it was, because he feared his father's -household, and the men of the city, that he could not do it by day, -that he did it by night. - -6:28 And when the men of the city arose early in the morning, behold, -the altar of Baal was cast down, and the grove was cut down that was -by it, and the second bullock was offered upon the altar that was -built. - -6:29 And they said one to another, Who hath done this thing? And when -they enquired and asked, they said, Gideon the son of Joash hath done -this thing. - -6:30 Then the men of the city said unto Joash, Bring out thy son, that -he may die: because he hath cast down the altar of Baal, and because -he hath cut down the grove that was by it. - -6:31 And Joash said unto all that stood against him, Will ye plead for -Baal? will ye save him? he that will plead for him, let him be put to -death whilst it is yet morning: if he be a god, let him plead for -himself, because one hath cast down his altar. - -6:32 Therefore on that day he called him Jerubbaal, saying, Let Baal -plead against him, because he hath thrown down his altar. - -6:33 Then all the Midianites and the Amalekites and the children of -the east were gathered together, and went over, and pitched in the -valley of Jezreel. - -6:34 But the Spirit of the LORD came upon Gideon, and he blew a -trumpet; and Abiezer was gathered after him. - -6:35 And he sent messengers throughout all Manasseh; who also was -gathered after him: and he sent messengers unto Asher, and unto -Zebulun, and unto Naphtali; and they came up to meet them. - -6:36 And Gideon said unto God, If thou wilt save Israel by mine hand, -as thou hast said, 6:37 Behold, I will put a fleece of wool in the -floor; and if the dew be on the fleece only, and it be dry upon all -the earth beside, then shall I know that thou wilt save Israel by mine -hand, as thou hast said. - -6:38 And it was so: for he rose up early on the morrow, and thrust the -fleece together, and wringed the dew out of the fleece, a bowl full of -water. - -6:39 And Gideon said unto God, Let not thine anger be hot against me, -and I will speak but this once: let me prove, I pray thee, but this -once with the fleece; let it now be dry only upon the fleece, and upon -all the ground let there be dew. - -6:40 And God did so that night: for it was dry upon the fleece only, -and there was dew on all the ground. - -7:1 Then Jerubbaal, who is Gideon, and all the people that were with -him, rose up early, and pitched beside the well of Harod: so that the -host of the Midianites were on the north side of them, by the hill of -Moreh, in the valley. - -7:2 And the LORD said unto Gideon, The people that are with thee are -too many for me to give the Midianites into their hands, lest Israel -vaunt themselves against me, saying, Mine own hand hath saved me. - -7:3 Now therefore go to, proclaim in the ears of the people, saying, -Whosoever is fearful and afraid, let him return and depart early from -mount Gilead. And there returned of the people twenty and two -thousand; and there remained ten thousand. - -7:4 And the LORD said unto Gideon, The people are yet too many; bring -them down unto the water, and I will try them for thee there: and it -shall be, that of whom I say unto thee, This shall go with thee, the -same shall go with thee; and of whomsoever I say unto thee, This shall -not go with thee, the same shall not go. - -7:5 So he brought down the people unto the water: and the LORD said -unto Gideon, Every one that lappeth of the water with his tongue, as a -dog lappeth, him shalt thou set by himself; likewise every one that -boweth down upon his knees to drink. - -7:6 And the number of them that lapped, putting their hand to their -mouth, were three hundred men: but all the rest of the people bowed -down upon their knees to drink water. - -7:7 And the LORD said unto Gideon, By the three hundred men that -lapped will I save you, and deliver the Midianites into thine hand: -and let all the other people go every man unto his place. - -7:8 So the people took victuals in their hand, and their trumpets: and -he sent all the rest of Israel every man unto his tent, and retained -those three hundred men: and the host of Midian was beneath him in the -valley. - -7:9 And it came to pass the same night, that the LORD said unto him, -Arise, get thee down unto the host; for I have delivered it into thine -hand. - -7:10 But if thou fear to go down, go thou with Phurah thy servant down -to the host: 7:11 And thou shalt hear what they say; and afterward -shall thine hands be strengthened to go down unto the host. Then went -he down with Phurah his servant unto the outside of the armed men that -were in the host. - -7:12 And the Midianites and the Amalekites and all the children of the -east lay along in the valley like grasshoppers for multitude; and -their camels were without number, as the sand by the sea side for -multitude. - -7:13 And when Gideon was come, behold, there was a man that told a -dream unto his fellow, and said, Behold, I dreamed a dream, and, lo, a -cake of barley bread tumbled into the host of Midian, and came unto a -tent, and smote it that it fell, and overturned it, that the tent lay -along. - -7:14 And his fellow answered and said, This is nothing else save the -sword of Gideon the son of Joash, a man of Israel: for into his hand -hath God delivered Midian, and all the host. - -7:15 And it was so, when Gideon heard the telling of the dream, and -the interpretation thereof, that he worshipped, and returned into the -host of Israel, and said, Arise; for the LORD hath delivered into your -hand the host of Midian. - -7:16 And he divided the three hundred men into three companies, and he -put a trumpet in every man's hand, with empty pitchers, and lamps -within the pitchers. - -7:17 And he said unto them, Look on me, and do likewise: and, behold, -when I come to the outside of the camp, it shall be that, as I do, so -shall ye do. - -7:18 When I blow with a trumpet, I and all that are with me, then blow -ye the trumpets also on every side of all the camp, and say, The sword -of the LORD, and of Gideon. - -7:19 So Gideon, and the hundred men that were with him, came unto the -outside of the camp in the beginning of the middle watch; and they had -but newly set the watch: and they blew the trumpets, and brake the -pitchers that were in their hands. - -7:20 And the three companies blew the trumpets, and brake the -pitchers, and held the lamps in their left hands, and the trumpets in -their right hands to blow withal: and they cried, The sword of the -LORD, and of Gideon. - -7:21 And they stood every man in his place round about the camp; and -all the host ran, and cried, and fled. - -7:22 And the three hundred blew the trumpets, and the LORD set every -man's sword against his fellow, even throughout all the host: and the -host fled to Bethshittah in Zererath, and to the border of -Abelmeholah, unto Tabbath. - -7:23 And the men of Israel gathered themselves together out of -Naphtali, and out of Asher, and out of all Manasseh, and pursued after -the Midianites. - -7:24 And Gideon sent messengers throughout all mount Ephraim, saying, -come down against the Midianites, and take before them the waters unto -Bethbarah and Jordan. Then all the men of Ephraim gathered themselves -together, and took the waters unto Bethbarah and Jordan. - -7:25 And they took two princes of the Midianites, Oreb and Zeeb; and -they slew Oreb upon the rock Oreb, and Zeeb they slew at the winepress -of Zeeb, and pursued Midian, and brought the heads of Oreb and Zeeb to -Gideon on the other side Jordan. - -8:1 And the men of Ephraim said unto him, Why hast thou served us -thus, that thou calledst us not, when thou wentest to fight with the -Midianites? And they did chide with him sharply. - -8:2 And he said unto them, What have I done now in comparison of you? -Is not the gleaning of the grapes of Ephraim better than the vintage -of Abiezer? 8:3 God hath delivered into your hands the princes of -Midian, Oreb and Zeeb: and what was I able to do in comparison of you? -Then their anger was abated toward him, when he had said that. - -8:4 And Gideon came to Jordan, and passed over, he, and the three -hundred men that were with him, faint, yet pursuing them. - -8:5 And he said unto the men of Succoth, Give, I pray you, loaves of -bread unto the people that follow me; for they be faint, and I am -pursuing after Zebah and Zalmunna, kings of Midian. - -8:6 And the princes of Succoth said, Are the hands of Zebah and -Zalmunna now in thine hand, that we should give bread unto thine army? -8:7 And Gideon said, Therefore when the LORD hath delivered Zebah and -Zalmunna into mine hand, then I will tear your flesh with the thorns -of the wilderness and with briers. - -8:8 And he went up thence to Penuel, and spake unto them likewise: and -the men of Penuel answered him as the men of Succoth had answered him. - -8:9 And he spake also unto the men of Penuel, saying, When I come -again in peace, I will break down this tower. - -8:10 Now Zebah and Zalmunna were in Karkor, and their hosts with them, -about fifteen thousand men, all that were left of all the hosts of the -children of the east: for there fell an hundred and twenty thousand -men that drew sword. - -8:11 And Gideon went up by the way of them that dwelt in tents on the -east of Nobah and Jogbehah, and smote the host; for the host was -secure. - -8:12 And when Zebah and Zalmunna fled, he pursued after them, and took -the two kings of Midian, Zebah and Zalmunna, and discomfited all the -host. - -8:13 And Gideon the son of Joash returned from battle before the sun -was up, 8:14 And caught a young man of the men of Succoth, and -enquired of him: and he described unto him the princes of Succoth, and -the elders thereof, even threescore and seventeen men. - -8:15 And he came unto the men of Succoth, and said, Behold Zebah and -Zalmunna, with whom ye did upbraid me, saying, Are the hands of Zebah -and Zalmunna now in thine hand, that we should give bread unto thy men -that are weary? 8:16 And he took the elders of the city, and thorns -of the wilderness and briers, and with them he taught the men of -Succoth. - -8:17 And he beat down the tower of Penuel, and slew the men of the -city. - -8:18 Then said he unto Zebah and Zalmunna, What manner of men were -they whom ye slew at Tabor? And they answered, As thou art, so were -they; each one resembled the children of a king. - -8:19 And he said, They were my brethren, even the sons of my mother: -as the LORD liveth, if ye had saved them alive, I would not slay you. - -8:20 And he said unto Jether his firstborn, Up, and slay them. But the -youth drew not his sword: for he feared, because he was yet a youth. - -8:21 Then Zebah and Zalmunna said, Rise thou, and fall upon us: for as -the man is, so is his strength. And Gideon arose, and slew Zebah and -Zalmunna, and took away the ornaments that were on their camels' -necks. - -8:22 Then the men of Israel said unto Gideon, Rule thou over us, both -thou, and thy son, and thy son's son also: for thou hast delivered us -from the hand of Midian. - -8:23 And Gideon said unto them, I will not rule over you, neither -shall my son rule over you: the LORD shall rule over you. - -8:24 And Gideon said unto them, I would desire a request of you, that -ye would give me every man the earrings of his prey. (For they had -golden earrings, because they were Ishmaelites.) 8:25 And they -answered, We will willingly give them. And they spread a garment, and -did cast therein every man the earrings of his prey. - -8:26 And the weight of the golden earrings that he requested was a -thousand and seven hundred shekels of gold; beside ornaments, and -collars, and purple raiment that was on the kings of Midian, and -beside the chains that were about their camels' necks. - -8:27 And Gideon made an ephod thereof, and put it in his city, even in -Ophrah: and all Israel went thither a whoring after it: which thing -became a snare unto Gideon, and to his house. - -8:28 Thus was Midian subdued before the children of Israel, so that -they lifted up their heads no more. And the country was in quietness -forty years in the days of Gideon. - -8:29 And Jerubbaal the son of Joash went and dwelt in his own house. - -8:30 And Gideon had threescore and ten sons of his body begotten: for -he had many wives. - -8:31 And his concubine that was in Shechem, she also bare him a son, -whose name he called Abimelech. - -8:32 And Gideon the son of Joash died in a good old age, and was -buried in the sepulchre of Joash his father, in Ophrah of the -Abiezrites. - -8:33 And it came to pass, as soon as Gideon was dead, that the -children of Israel turned again, and went a whoring after Baalim, and -made Baalberith their god. - -8:34 And the children of Israel remembered not the LORD their God, who -had delivered them out of the hands of all their enemies on every -side: 8:35 Neither shewed they kindness to the house of Jerubbaal, -namely, Gideon, according to all the goodness which he had shewed unto -Israel. - -9:1 And Abimelech the son of Jerubbaal went to Shechem unto his -mother's brethren, and communed with them, and with all the family of -the house of his mother's father, saying, 9:2 Speak, I pray you, in -the ears of all the men of Shechem, Whether is better for you, either -that all the sons of Jerubbaal, which are threescore and ten persons, -reign over you, or that one reign over you? remember also that I am -your bone and your flesh. - -9:3 And his mother's brethren spake of him in the ears of all the men -of Shechem all these words: and their hearts inclined to follow -Abimelech; for they said, He is our brother. - -9:4 And they gave him threescore and ten pieces of silver out of the -house of Baalberith, wherewith Abimelech hired vain and light persons, -which followed him. - -9:5 And he went unto his father's house at Ophrah, and slew his -brethren the sons of Jerubbaal, being threescore and ten persons, upon -one stone: notwithstanding yet Jotham the youngest son of Jerubbaal -was left; for he hid himself. - -9:6 And all the men of Shechem gathered together, and all the house of -Millo, and went, and made Abimelech king, by the plain of the pillar -that was in Shechem. - -9:7 And when they told it to Jotham, he went and stood in the top of -mount Gerizim, and lifted up his voice, and cried, and said unto them, -Hearken unto me, ye men of Shechem, that God may hearken unto you. - -9:8 The trees went forth on a time to anoint a king over them; and -they said unto the olive tree, Reign thou over us. - -9:9 But the olive tree said unto them, Should I leave my fatness, -wherewith by me they honour God and man, and go to be promoted over -the trees? 9:10 And the trees said to the fig tree, Come thou, and -reign over us. - -9:11 But the fig tree said unto them, Should I forsake my sweetness, -and my good fruit, and go to be promoted over the trees? 9:12 Then -said the trees unto the vine, Come thou, and reign over us. - -9:13 And the vine said unto them, Should I leave my wine, which -cheereth God and man, and go to be promoted over the trees? 9:14 Then -said all the trees unto the bramble, Come thou, and reign over us. - -9:15 And the bramble said unto the trees, If in truth ye anoint me -king over you, then come and put your trust in my shadow: and if not, -let fire come out of the bramble, and devour the cedars of Lebanon. - -9:16 Now therefore, if ye have done truly and sincerely, in that ye -have made Abimelech king, and if ye have dealt well with Jerubbaal and -his house, and have done unto him according to the deserving of his -hands; 9:17 (For my father fought for you, and adventured his life -far, and delivered you out of the hand of Midian: 9:18 And ye are -risen up against my father's house this day, and have slain his sons, -threescore and ten persons, upon one stone, and have made Abimelech, -the son of his maidservant, king over the men of Shechem, because he -is your brother;) 9:19 If ye then have dealt truly and sincerely with -Jerubbaal and with his house this day, then rejoice ye in Abimelech, -and let him also rejoice in you: 9:20 But if not, let fire come out -from Abimelech, and devour the men of Shechem, and the house of Millo; -and let fire come out from the men of Shechem, and from the house of -Millo, and devour Abimelech. - -9:21 And Jotham ran away, and fled, and went to Beer, and dwelt there, -for fear of Abimelech his brother. - -9:22 When Abimelech had reigned three years over Israel, 9:23 Then God -sent an evil spirit between Abimelech and the men of Shechem; and the -men of Shechem dealt treacherously with Abimelech: 9:24 That the -cruelty done to the threescore and ten sons of Jerubbaal might come, -and their blood be laid upon Abimelech their brother, which slew them; -and upon the men of Shechem, which aided him in the killing of his -brethren. - -9:25 And the men of Shechem set liers in wait for him in the top of -the mountains, and they robbed all that came along that way by them: -and it was told Abimelech. - -9:26 And Gaal the son of Ebed came with his brethren, and went over to -Shechem: and the men of Shechem put their confidence in him. - -9:27 And they went out into the fields, and gathered their vineyards, -and trode the grapes, and made merry, and went into the house of their -god, and did eat and drink, and cursed Abimelech. - -9:28 And Gaal the son of Ebed said, Who is Abimelech, and who is -Shechem, that we should serve him? is not he the son of Jerubbaal? and -Zebul his officer? serve the men of Hamor the father of Shechem: for -why should we serve him? 9:29 And would to God this people were under -my hand! then would I remove Abimelech. And he said to Abimelech, -Increase thine army, and come out. - -9:30 And when Zebul the ruler of the city heard the words of Gaal the -son of Ebed, his anger was kindled. - -9:31 And he sent messengers unto Abimelech privily, saying, Behold, -Gaal the son of Ebed and his brethren be come to Shechem; and, behold, -they fortify the city against thee. - -9:32 Now therefore up by night, thou and the people that is with thee, -and lie in wait in the field: 9:33 And it shall be, that in the -morning, as soon as the sun is up, thou shalt rise early, and set upon -the city: and, behold, when he and the people that is with him come -out against thee, then mayest thou do to them as thou shalt find -occasion. - -9:34 And Abimelech rose up, and all the people that were with him, by -night, and they laid wait against Shechem in four companies. - -9:35 And Gaal the son of Ebed went out, and stood in the entering of -the gate of the city: and Abimelech rose up, and the people that were -with him, from lying in wait. - -9:36 And when Gaal saw the people, he said to Zebul, Behold, there -come people down from the top of the mountains. And Zebul said unto -him, Thou seest the shadow of the mountains as if they were men. - -9:37 And Gaal spake again, and said, See there come people down by the -middle of the land, and another company come along by the plain of -Meonenim. - -9:38 Then said Zebul unto him, Where is now thy mouth, wherewith thou -saidst, Who is Abimelech, that we should serve him? is not this the -people that thou hast despised? go out, I pray now, and fight with -them. - -9:39 And Gaal went out before the men of Shechem, and fought with -Abimelech. - -9:40 And Abimelech chased him, and he fled before him, and many were -overthrown and wounded, even unto the entering of the gate. - -9:41 And Abimelech dwelt at Arumah: and Zebul thrust out Gaal and his -brethren, that they should not dwell in Shechem. - -9:42 And it came to pass on the morrow, that the people went out into -the field; and they told Abimelech. - -9:43 And he took the people, and divided them into three companies, -and laid wait in the field, and looked, and, behold, the people were -come forth out of the city; and he rose up against them, and smote -them. - -9:44 And Abimelech, and the company that was with him, rushed forward, -and stood in the entering of the gate of the city: and the two other -companies ran upon all the people that were in the fields, and slew -them. - -9:45 And Abimelech fought against the city all that day; and he took -the city, and slew the people that was therein, and beat down the -city, and sowed it with salt. - -9:46 And when all the men of the tower of Shechem heard that, they -entered into an hold of the house of the god Berith. - -9:47 And it was told Abimelech, that all the men of the tower of -Shechem were gathered together. - -9:48 And Abimelech gat him up to mount Zalmon, he and all the people -that were with him; and Abimelech took an axe in his hand, and cut -down a bough from the trees, and took it, and laid it on his shoulder, -and said unto the people that were with him, What ye have seen me do, -make haste, and do as I have done. - -9:49 And all the people likewise cut down every man his bough, and -followed Abimelech, and put them to the hold, and set the hold on fire -upon them; so that all the men of the tower of Shechem died also, -about a thousand men and women. - -9:50 Then went Abimelech to Thebez, and encamped against Thebez, and -took it. - -9:51 But there was a strong tower within the city, and thither fled -all the men and women, and all they of the city, and shut it to them, -and gat them up to the top of the tower. - -9:52 And Abimelech came unto the tower, and fought against it, and -went hard unto the door of the tower to burn it with fire. - -9:53 And a certain woman cast a piece of a millstone upon Abimelech's -head, and all to brake his skull. - -9:54 Then he called hastily unto the young man his armourbearer, and -said unto him, Draw thy sword, and slay me, that men say not of me, A -women slew him. And his young man thrust him through, and he died. - -9:55 And when the men of Israel saw that Abimelech was dead, they -departed every man unto his place. - -9:56 Thus God rendered the wickedness of Abimelech, which he did unto -his father, in slaying his seventy brethren: 9:57 And all the evil of -the men of Shechem did God render upon their heads: and upon them came -the curse of Jotham the son of Jerubbaal. - -10:1 And after Abimelech there arose to defend Israel Tola the son of -Puah, the son of Dodo, a man of Issachar; and he dwelt in Shamir in -mount Ephraim. - -10:2 And he judged Israel twenty and three years, and died, and was -buried in Shamir. - -10:3 And after him arose Jair, a Gileadite, and judged Israel twenty -and two years. - -10:4 And he had thirty sons that rode on thirty ass colts, and they -had thirty cities, which are called Havothjair unto this day, which -are in the land of Gilead. - -10:5 And Jair died, and was buried in Camon. - -10:6 And the children of Israel did evil again in the sight of the -LORD, and served Baalim, and Ashtaroth, and the gods of Syria, and the -gods of Zidon, and the gods of Moab, and the gods of the children of -Ammon, and the gods of the Philistines, and forsook the LORD, and -served not him. - -10:7 And the anger of the LORD was hot against Israel, and he sold -them into the hands of the Philistines, and into the hands of the -children of Ammon. - -10:8 And that year they vexed and oppressed the children of Israel: -eighteen years, all the children of Israel that were on the other side -Jordan in the land of the Amorites, which is in Gilead. - -10:9 Moreover the children of Ammon passed over Jordan to fight also -against Judah, and against Benjamin, and against the house of Ephraim; -so that Israel was sore distressed. - -10:10 And the children of Israel cried unto the LORD, saying, We have -sinned against thee, both because we have forsaken our God, and also -served Baalim. - -10:11 And the LORD said unto the children of Israel, Did not I deliver -you from the Egyptians, and from the Amorites, from the children of -Ammon, and from the Philistines? 10:12 The Zidonians also, and the -Amalekites, and the Maonites, did oppress you; and ye cried to me, and -I delivered you out of their hand. - -10:13 Yet ye have forsaken me, and served other gods: wherefore I will -deliver you no more. - -10:14 Go and cry unto the gods which ye have chosen; let them deliver -you in the time of your tribulation. - -10:15 And the children of Israel said unto the LORD, We have sinned: -do thou unto us whatsoever seemeth good unto thee; deliver us only, we -pray thee, this day. - -10:16 And they put away the strange gods from among them, and served -the LORD: and his soul was grieved for the misery of Israel. - -10:17 Then the children of Ammon were gathered together, and encamped -in Gilead. And the children of Israel assembled themselves together, -and encamped in Mizpeh. - -10:18 And the people and princes of Gilead said one to another, What -man is he that will begin to fight against the children of Ammon? he -shall be head over all the inhabitants of Gilead. - -11:1 Now Jephthah the Gileadite was a mighty man of valour, and he was -the son of an harlot: and Gilead begat Jephthah. - -11:2 And Gilead's wife bare him sons; and his wife's sons grew up, and -they thrust out Jephthah, and said unto him, Thou shalt not inherit in -our father's house; for thou art the son of a strange woman. - -11:3 Then Jephthah fled from his brethren, and dwelt in the land of -Tob: and there were gathered vain men to Jephthah, and went out with -him. - -11:4 And it came to pass in process of time, that the children of -Ammon made war against Israel. - -11:5 And it was so, that when the children of Ammon made war against -Israel, the elders of Gilead went to fetch Jephthah out of the land of -Tob: 11:6 And they said unto Jephthah, Come, and be our captain, that -we may fight with the children of Ammon. - -11:7 And Jephthah said unto the elders of Gilead, Did not ye hate me, -and expel me out of my father's house? and why are ye come unto me now -when ye are in distress? 11:8 And the elders of Gilead said unto -Jephthah, Therefore we turn again to thee now, that thou mayest go -with us, and fight against the children of Ammon, and be our head over -all the inhabitants of Gilead. - -11:9 And Jephthah said unto the elders of Gilead, If ye bring me home -again to fight against the children of Ammon, and the LORD deliver -them before me, shall I be your head? 11:10 And the elders of Gilead -said unto Jephthah, The LORD be witness between us, if we do not so -according to thy words. - -11:11 Then Jephthah went with the elders of Gilead, and the people -made him head and captain over them: and Jephthah uttered all his -words before the LORD in Mizpeh. - -11:12 And Jephthah sent messengers unto the king of the children of -Ammon, saying, What hast thou to do with me, that thou art come -against me to fight in my land? 11:13 And the king of the children of -Ammon answered unto the messengers of Jephthah, Because Israel took -away my land, when they came up out of Egypt, from Arnon even unto -Jabbok, and unto Jordan: now therefore restore those lands again -peaceably. - -11:14 And Jephthah sent messengers again unto the king of the children -of Ammon: 11:15 And said unto him, Thus saith Jephthah, Israel took -not away the land of Moab, nor the land of the children of Ammon: -11:16 But when Israel came up from Egypt, and walked through the -wilderness unto the Red sea, and came to Kadesh; 11:17 Then Israel -sent messengers unto the king of Edom, saying, Let me, I pray thee, -pass through thy land: but the king of Edom would not hearken thereto. -And in like manner they sent unto the king of Moab: but he would not -consent: and Israel abode in Kadesh. - -11:18 Then they went along through the wilderness, and compassed the -land of Edom, and the land of Moab, and came by the east side of the -land of Moab, and pitched on the other side of Arnon, but came not -within the border of Moab: for Arnon was the border of Moab. - -11:19 And Israel sent messengers unto Sihon king of the Amorites, the -king of Heshbon; and Israel said unto him, Let us pass, we pray thee, -through thy land into my place. - -11:20 But Sihon trusted not Israel to pass through his coast: but -Sihon gathered all his people together, and pitched in Jahaz, and -fought against Israel. - -11:21 And the LORD God of Israel delivered Sihon and all his people -into the hand of Israel, and they smote them: so Israel possessed all -the land of the Amorites, the inhabitants of that country. - -11:22 And they possessed all the coasts of the Amorites, from Arnon -even unto Jabbok, and from the wilderness even unto Jordan. - -11:23 So now the LORD God of Israel hath dispossessed the Amorites -from before his people Israel, and shouldest thou possess it? 11:24 -Wilt not thou possess that which Chemosh thy god giveth thee to -possess? So whomsoever the LORD our God shall drive out from before -us, them will we possess. - -11:25 And now art thou any thing better than Balak the son of Zippor, -king of Moab? did he ever strive against Israel, or did he ever fight -against them, 11:26 While Israel dwelt in Heshbon and her towns, and -in Aroer and her towns, and in all the cities that be along by the -coasts of Arnon, three hundred years? why therefore did ye not recover -them within that time? 11:27 Wherefore I have not sinned against -thee, but thou doest me wrong to war against me: the LORD the Judge be -judge this day between the children of Israel and the children of -Ammon. - -11:28 Howbeit the king of the children of Ammon hearkened not unto the -words of Jephthah which he sent him. - -11:29 Then the Spirit of the LORD came upon Jephthah, and he passed -over Gilead, and Manasseh, and passed over Mizpeh of Gilead, and from -Mizpeh of Gilead he passed over unto the children of Ammon. - -11:30 And Jephthah vowed a vow unto the LORD, and said, If thou shalt -without fail deliver the children of Ammon into mine hands, 11:31 Then -it shall be, that whatsoever cometh forth of the doors of my house to -meet me, when I return in peace from the children of Ammon, shall -surely be the LORD's, and I will offer it up for a burnt offering. - -11:32 So Jephthah passed over unto the children of Ammon to fight -against them; and the LORD delivered them into his hands. - -11:33 And he smote them from Aroer, even till thou come to Minnith, -even twenty cities, and unto the plain of the vineyards, with a very -great slaughter. Thus the children of Ammon were subdued before the -children of Israel. - -11:34 And Jephthah came to Mizpeh unto his house, and, behold, his -daughter came out to meet him with timbrels and with dances: and she -was his only child; beside her he had neither son nor daughter. - -11:35 And it came to pass, when he saw her, that he rent his clothes, -and said, Alas, my daughter! thou hast brought me very low, and thou -art one of them that trouble me: for I have opened my mouth unto the -LORD, and I cannot go back. - -11:36 And she said unto him, My father, if thou hast opened thy mouth -unto the LORD, do to me according to that which hath proceeded out of -thy mouth; forasmuch as the LORD hath taken vengeance for thee of -thine enemies, even of the children of Ammon. - -11:37 And she said unto her father, Let this thing be done for me: let -me alone two months, that I may go up and down upon the mountains, and -bewail my virginity, I and my fellows. - -11:38 And he said, Go. And he sent her away for two months: and she -went with her companions, and bewailed her virginity upon the -mountains. - -11:39 And it came to pass at the end of two months, that she returned -unto her father, who did with her according to his vow which he had -vowed: and she knew no man. And it was a custom in Israel, 11:40 That -the daughters of Israel went yearly to lament the daughter of Jephthah -the Gileadite four days in a year. - -12:1 And the men of Ephraim gathered themselves together, and went -northward, and said unto Jephthah, Wherefore passedst thou over to -fight against the children of Ammon, and didst not call us to go with -thee? we will burn thine house upon thee with fire. - -12:2 And Jephthah said unto them, I and my people were at great strife -with the children of Ammon; and when I called you, ye delivered me not -out of their hands. - -12:3 And when I saw that ye delivered me not, I put my life in my -hands, and passed over against the children of Ammon, and the LORD -delivered them into my hand: wherefore then are ye come up unto me -this day, to fight against me? 12:4 Then Jephthah gathered together -all the men of Gilead, and fought with Ephraim: and the men of Gilead -smote Ephraim, because they said, Ye Gileadites are fugitives of -Ephraim among the Ephraimites, and among the Manassites. - -12:5 And the Gileadites took the passages of Jordan before the -Ephraimites: and it was so, that when those Ephraimites which were -escaped said, Let me go over; that the men of Gilead said unto him, -Art thou an Ephraimite? If he said, Nay; 12:6 Then said they unto him, -Say now Shibboleth: and he said Sibboleth: for he could not frame to -pronounce it right. Then they took him, and slew him at the passages -of Jordan: and there fell at that time of the Ephraimites forty and -two thousand. - -12:7 And Jephthah judged Israel six years. Then died Jephthah the -Gileadite, and was buried in one of the cities of Gilead. - -12:8 And after him Ibzan of Bethlehem judged Israel. - -12:9 And he had thirty sons, and thirty daughters, whom he sent -abroad, and took in thirty daughters from abroad for his sons. And he -judged Israel seven years. - -12:10 Then died Ibzan, and was buried at Bethlehem. - -12:11 And after him Elon, a Zebulonite, judged Israel; and he judged -Israel ten years. - -12:12 And Elon the Zebulonite died, and was buried in Aijalon in the -country of Zebulun. - -12:13 And after him Abdon the son of Hillel, a Pirathonite, judged -Israel. - -12:14 And he had forty sons and thirty nephews, that rode on -threescore and ten ass colts: and he judged Israel eight years. - -12:15 And Abdon the son of Hillel the Pirathonite died, and was buried -in Pirathon in the land of Ephraim, in the mount of the Amalekites. - -13:1 And the children of Israel did evil again in the sight of the -LORD; and the LORD delivered them into the hand of the Philistines -forty years. - -13:2 And there was a certain man of Zorah, of the family of the -Danites, whose name was Manoah; and his wife was barren, and bare not. - -13:3 And the angel of the LORD appeared unto the woman, and said unto -her, Behold now, thou art barren, and bearest not: but thou shalt -conceive, and bear a son. - -13:4 Now therefore beware, I pray thee, and drink not wine nor strong -drink, and eat not any unclean thing: 13:5 For, lo, thou shalt -conceive, and bear a son; and no razor shall come on his head: for the -child shall be a Nazarite unto God from the womb: and he shall begin -to deliver Israel out of the hand of the Philistines. - -13:6 Then the woman came and told her husband, saying, A man of God -came unto me, and his countenance was like the countenance of an angel -of God, very terrible: but I asked him not whence he was, neither told -he me his name: 13:7 But he said unto me, Behold, thou shalt conceive, -and bear a son; and now drink no wine nor strong drink, neither eat -any unclean thing: for the child shall be a Nazarite to God from the -womb to the day of his death. - -13:8 Then Manoah intreated the LORD, and said, O my Lord, let the man -of God which thou didst send come again unto us, and teach us what we -shall do unto the child that shall be born. - -13:9 And God hearkened to the voice of Manoah; and the angel of God -came again unto the woman as she sat in the field: but Manoah her -husband was not with her. - -13:10 And the woman made haste, and ran, and shewed her husband, and -said unto him, Behold, the man hath appeared unto me, that came unto -me the other day. - -13:11 And Manoah arose, and went after his wife, and came to the man, -and said unto him, Art thou the man that spakest unto the woman? And -he said, I am. - -13:12 And Manoah said, Now let thy words come to pass. How shall we -order the child, and how shall we do unto him? 13:13 And the angel of -the LORD said unto Manoah, Of all that I said unto the woman let her -beware. - -13:14 She may not eat of any thing that cometh of the vine, neither -let her drink wine or strong drink, nor eat any unclean thing: all -that I commanded her let her observe. - -13:15 And Manoah said unto the angel of the LORD, I pray thee, let us -detain thee, until we shall have made ready a kid for thee. - -13:16 And the angel of the LORD said unto Manoah, Though thou detain -me, I will not eat of thy bread: and if thou wilt offer a burnt -offering, thou must offer it unto the LORD. For Manoah knew not that -he was an angel of the LORD. - -13:17 And Manoah said unto the angel of the LORD, What is thy name, -that when thy sayings come to pass we may do thee honour? 13:18 And -the angel of the LORD said unto him, Why askest thou thus after my -name, seeing it is secret? 13:19 So Manoah took a kid with a meat -offering, and offered it upon a rock unto the LORD: and the angel did -wonderously; and Manoah and his wife looked on. - -13:20 For it came to pass, when the flame went up toward heaven from -off the altar, that the angel of the LORD ascended in the flame of the -altar. And Manoah and his wife looked on it, and fell on their faces -to the ground. - -13:21 But the angel of the LORD did no more appear to Manoah and to -his wife. Then Manoah knew that he was an angel of the LORD. - -13:22 And Manoah said unto his wife, We shall surely die, because we -have seen God. - -13:23 But his wife said unto him, If the LORD were pleased to kill us, -he would not have received a burnt offering and a meat offering at our -hands, neither would he have shewed us all these things, nor would as -at this time have told us such things as these. - -13:24 And the woman bare a son, and called his name Samson: and the -child grew, and the LORD blessed him. - -13:25 And the Spirit of the LORD began to move him at times in the -camp of Dan between Zorah and Eshtaol. - -14:1 And Samson went down to Timnath, and saw a woman in Timnath of -the daughters of the Philistines. - -14:2 And he came up, and told his father and his mother, and said, I -have seen a woman in Timnath of the daughters of the Philistines: now -therefore get her for me to wife. - -14:3 Then his father and his mother said unto him, Is there never a -woman among the daughters of thy brethren, or among all my people, -that thou goest to take a wife of the uncircumcised Philistines? And -Samson said unto his father, Get her for me; for she pleaseth me well. - -14:4 But his father and his mother knew not that it was of the LORD, -that he sought an occasion against the Philistines: for at that time -the Philistines had dominion over Israel. - -14:5 Then went Samson down, and his father and his mother, to Timnath, -and came to the vineyards of Timnath: and, behold, a young lion roared -against him. - -14:6 And the Spirit of the LORD came mightily upon him, and he rent -him as he would have rent a kid, and he had nothing in his hand: but -he told not his father or his mother what he had done. - -14:7 And he went down, and talked with the woman; and she pleased -Samson well. - -14:8 And after a time he returned to take her, and he turned aside to -see the carcase of the lion: and, behold, there was a swarm of bees -and honey in the carcase of the lion. - -14:9 And he took thereof in his hands, and went on eating, and came to -his father and mother, and he gave them, and they did eat: but he told -not them that he had taken the honey out of the carcase of the lion. - -14:10 So his father went down unto the woman: and Samson made there a -feast; for so used the young men to do. - -14:11 And it came to pass, when they saw him, that they brought thirty -companions to be with him. - -14:12 And Samson said unto them, I will now put forth a riddle unto -you: if ye can certainly declare it me within the seven days of the -feast, and find it out, then I will give you thirty sheets and thirty -change of garments: 14:13 But if ye cannot declare it me, then shall -ye give me thirty sheets and thirty change of garments. And they said -unto him, Put forth thy riddle, that we may hear it. - -14:14 And he said unto them, Out of the eater came forth meat, and out -of the strong came forth sweetness. And they could not in three days -expound the riddle. - -14:15 And it came to pass on the seventh day, that they said unto -Samson's wife, Entice thy husband, that he may declare unto us the -riddle, lest we burn thee and thy father's house with fire: have ye -called us to take that we have? is it not so? 14:16 And Samson's wife -wept before him, and said, Thou dost but hate me, and lovest me not: -thou hast put forth a riddle unto the children of my people, and hast -not told it me. And he said unto her, Behold, I have not told it my -father nor my mother, and shall I tell it thee? 14:17 And she wept -before him the seven days, while their feast lasted: and it came to -pass on the seventh day, that he told her, because she lay sore upon -him: and she told the riddle to the children of her people. - -14:18 And the men of the city said unto him on the seventh day before -the sun went down, What is sweeter than honey? And what is stronger -than a lion? and he said unto them, If ye had not plowed with my -heifer, ye had not found out my riddle. - -14:19 And the Spirit of the LORD came upon him, and he went down to -Ashkelon, and slew thirty men of them, and took their spoil, and gave -change of garments unto them which expounded the riddle. And his anger -was kindled, and he went up to his father's house. - -14:20 But Samson's wife was given to his companion, whom he had used -as his friend. - -15:1 But it came to pass within a while after, in the time of wheat -harvest, that Samson visited his wife with a kid; and he said, I will -go in to my wife into the chamber. But her father would not suffer him -to go in. - -15:2 And her father said, I verily thought that thou hadst utterly -hated her; therefore I gave her to thy companion: is not her younger -sister fairer than she? take her, I pray thee, instead of her. - -15:3 And Samson said concerning them, Now shall I be more blameless -than the Philistines, though I do them a displeasure. - -15:4 And Samson went and caught three hundred foxes, and took -firebrands, and turned tail to tail, and put a firebrand in the midst -between two tails. - -15:5 And when he had set the brands on fire, he let them go into the -standing corn of the Philistines, and burnt up both the shocks, and -also the standing corn, with the vineyards and olives. - -15:6 Then the Philistines said, Who hath done this? And they answered, -Samson, the son in law of the Timnite, because he had taken his wife, -and given her to his companion. And the Philistines came up, and burnt -her and her father with fire. - -15:7 And Samson said unto them, Though ye have done this, yet will I -be avenged of you, and after that I will cease. - -15:8 And he smote them hip and thigh with a great slaughter: and he -went down and dwelt in the top of the rock Etam. - -15:9 Then the Philistines went up, and pitched in Judah, and spread -themselves in Lehi. - -15:10 And the men of Judah said, Why are ye come up against us? And -they answered, To bind Samson are we come up, to do to him as he hath -done to us. - -15:11 Then three thousand men of Judah went to the top of the rock -Etam, and said to Samson, Knowest thou not that the Philistines are -rulers over us? what is this that thou hast done unto us? And he said -unto them, As they did unto me, so have I done unto them. - -15:12 And they said unto him, We are come down to bind thee, that we -may deliver thee into the hand of the Philistines. And Samson said -unto them, Swear unto me, that ye will not fall upon me yourselves. - -15:13 And they spake unto him, saying, No; but we will bind thee fast, -and deliver thee into their hand: but surely we will not kill thee. -And they bound him with two new cords, and brought him up from the -rock. - -15:14 And when he came unto Lehi, the Philistines shouted against him: -and the Spirit of the LORD came mightily upon him, and the cords that -were upon his arms became as flax that was burnt with fire, and his -bands loosed from off his hands. - -15:15 And he found a new jawbone of an ass, and put forth his hand, -and took it, and slew a thousand men therewith. - -15:16 And Samson said, With the jawbone of an ass, heaps upon heaps, -with the jaw of an ass have I slain a thousand men. - -15:17 And it came to pass, when he had made an end of speaking, that -he cast away the jawbone out of his hand, and called that place -Ramathlehi. - -15:18 And he was sore athirst, and called on the LORD, and said, Thou -hast given this great deliverance into the hand of thy servant: and -now shall I die for thirst, and fall into the hand of the -uncircumcised? 15:19 But God clave an hollow place that was in the -jaw, and there came water thereout; and when he had drunk, his spirit -came again, and he revived: wherefore he called the name thereof -Enhakkore, which is in Lehi unto this day. - -15:20 And he judged Israel in the days of the Philistines twenty -years. - -16:1 Then went Samson to Gaza, and saw there an harlot, and went in -unto her. - -16:2 And it was told the Gazites, saying, Samson is come hither. And -they compassed him in, and laid wait for him all night in the gate of -the city, and were quiet all the night, saying, In the morning, when -it is day, we shall kill him. - -16:3 And Samson lay till midnight, and arose at midnight, and took the -doors of the gate of the city, and the two posts, and went away with -them, bar and all, and put them upon his shoulders, and carried them -up to the top of an hill that is before Hebron. - -16:4 And it came to pass afterward, that he loved a woman in the -valley of Sorek, whose name was Delilah. - -16:5 And the lords of the Philistines came up unto her, and said unto -her, Entice him, and see wherein his great strength lieth, and by what -means we may prevail against him, that we may bind him to afflict him; -and we will give thee every one of us eleven hundred pieces of silver. - -16:6 And Delilah said to Samson, Tell me, I pray thee, wherein thy -great strength lieth, and wherewith thou mightest be bound to afflict -thee. - -16:7 And Samson said unto her, If they bind me with seven green withs -that were never dried, then shall I be weak, and be as another man. - -16:8 Then the lords of the Philistines brought up to her seven green -withs which had not been dried, and she bound him with them. - -16:9 Now there were men lying in wait, abiding with her in the -chamber. - -And she said unto him, The Philistines be upon thee, Samson. And he -brake the withs, as a thread of tow is broken when it toucheth the -fire. So his strength was not known. - -16:10 And Delilah said unto Samson, Behold, thou hast mocked me, and -told me lies: now tell me, I pray thee, wherewith thou mightest be -bound. - -16:11 And he said unto her, If they bind me fast with new ropes that -never were occupied, then shall I be weak, and be as another man. - -16:12 Delilah therefore took new ropes, and bound him therewith, and -said unto him, The Philistines be upon thee, Samson. And there were -liers in wait abiding in the chamber. And he brake them from off his -arms like a thread. - -16:13 And Delilah said unto Samson, Hitherto thou hast mocked me, and -told me lies: tell me wherewith thou mightest be bound. And he said -unto her, If thou weavest the seven locks of my head with the web. - -16:14 And she fastened it with the pin, and said unto him, The -Philistines be upon thee, Samson. And he awaked out of his sleep, and -went away with the pin of the beam, and with the web. - -16:15 And she said unto him, How canst thou say, I love thee, when -thine heart is not with me? thou hast mocked me these three times, and -hast not told me wherein thy great strength lieth. - -16:16 And it came to pass, when she pressed him daily with her words, -and urged him, so that his soul was vexed unto death; 16:17 That he -told her all his heart, and said unto her, There hath not come a razor -upon mine head; for I have been a Nazarite unto God from my mother's -womb: if I be shaven, then my strength will go from me, and I shall -become weak, and be like any other man. - -16:18 And when Delilah saw that he had told her all his heart, she -sent and called for the lords of the Philistines, saying, Come up this -once, for he hath shewed me all his heart. Then the lords of the -Philistines came up unto her, and brought money in their hand. - -16:19 And she made him sleep upon her knees; and she called for a man, -and she caused him to shave off the seven locks of his head; and she -began to afflict him, and his strength went from him. - -16:20 And she said, The Philistines be upon thee, Samson. And he awoke -out of his sleep, and said, I will go out as at other times before, -and shake myself. And he wist not that the LORD was departed from him. - -16:21 But the Philistines took him, and put out his eyes, and brought -him down to Gaza, and bound him with fetters of brass; and he did -grind in the prison house. - -16:22 Howbeit the hair of his head began to grow again after he was -shaven. - -16:23 Then the lords of the Philistines gathered them together for to -offer a great sacrifice unto Dagon their god, and to rejoice: for they -said, Our god hath delivered Samson our enemy into our hand. - -16:24 And when the people saw him, they praised their god: for they -said, Our god hath delivered into our hands our enemy, and the -destroyer of our country, which slew many of us. - -16:25 And it came to pass, when their hearts were merry, that they -said, Call for Samson, that he may make us sport. And they called for -Samson out of the prison house; and he made them sport: and they set -him between the pillars. - -16:26 And Samson said unto the lad that held him by the hand, Suffer -me that I may feel the pillars whereupon the house standeth, that I -may lean upon them. - -16:27 Now the house was full of men and women; and all the lords of -the Philistines were there; and there were upon the roof about three -thousand men and women, that beheld while Samson made sport. - -16:28 And Samson called unto the LORD, and said, O Lord God, remember -me, I pray thee, and strengthen me, I pray thee, only this once, O -God, that I may be at once avenged of the Philistines for my two eyes. - -16:29 And Samson took hold of the two middle pillars upon which the -house stood, and on which it was borne up, of the one with his right -hand, and of the other with his left. - -16:30 And Samson said, Let me die with the Philistines. And he bowed -himself with all his might; and the house fell upon the lords, and -upon all the people that were therein. So the dead which he slew at -his death were more than they which he slew in his life. - -16:31 Then his brethren and all the house of his father came down, and -took him, and brought him up, and buried him between Zorah and Eshtaol -in the buryingplace of Manoah his father. And he judged Israel twenty -years. - -17:1 And there was a man of mount Ephraim, whose name was Micah. - -17:2 And he said unto his mother, The eleven hundred shekels of silver -that were taken from thee, about which thou cursedst, and spakest of -also in mine ears, behold, the silver is with me; I took it. And his -mother said, Blessed be thou of the LORD, my son. - -17:3 And when he had restored the eleven hundred shekels of silver to -his mother, his mother said, I had wholly dedicated the silver unto -the LORD from my hand for my son, to make a graven image and a molten -image: now therefore I will restore it unto thee. - -17:4 Yet he restored the money unto his mother; and his mother took -two hundred shekels of silver, and gave them to the founder, who made -thereof a graven image and a molten image: and they were in the house -of Micah. - -17:5 And the man Micah had an house of gods, and made an ephod, and -teraphim, and consecrated one of his sons, who became his priest. - -17:6 In those days there was no king in Israel, but every man did that -which was right in his own eyes. - -17:7 And there was a young man out of Bethlehemjudah of the family of -Judah, who was a Levite, and he sojourned there. - -17:8 And the man departed out of the city from Bethlehemjudah to -sojourn where he could find a place: and he came to mount Ephraim to -the house of Micah, as he journeyed. - -17:9 And Micah said unto him, Whence comest thou? And he said unto -him, I am a Levite of Bethlehemjudah, and I go to sojourn where I may -find a place. - -17:10 And Micah said unto him, Dwell with me, and be unto me a father -and a priest, and I will give thee ten shekels of silver by the year, -and a suit of apparel, and thy victuals. So the Levite went in. - -17:11 And the Levite was content to dwell with the man; and the young -man was unto him as one of his sons. - -17:12 And Micah consecrated the Levite; and the young man became his -priest, and was in the house of Micah. - -17:13 Then said Micah, Now know I that the LORD will do me good, -seeing I have a Levite to my priest. - -18:1 In those days there was no king in Israel: and in those days the -tribe of the Danites sought them an inheritance to dwell in; for unto -that day all their inheritance had not fallen unto them among the -tribes of Israel. - -18:2 And the children of Dan sent of their family five men from their -coasts, men of valour, from Zorah, and from Eshtaol, to spy out the -land, and to search it; and they said unto them, Go, search the land: -who when they came to mount Ephraim, to the house of Micah, they -lodged there. - -18:3 When they were by the house of Micah, they knew the voice of the -young man the Levite: and they turned in thither, and said unto him, -Who brought thee hither? and what makest thou in this place? and what -hast thou here? 18:4 And he said unto them, Thus and thus dealeth -Micah with me, and hath hired me, and I am his priest. - -18:5 And they said unto him, Ask counsel, we pray thee, of God, that -we may know whether our way which we go shall be prosperous. - -18:6 And the priest said unto them, Go in peace: before the LORD is -your way wherein ye go. - -18:7 Then the five men departed, and came to Laish, and saw the people -that were therein, how they dwelt careless, after the manner of the -Zidonians, quiet and secure; and there was no magistrate in the land, -that might put them to shame in any thing; and they were far from the -Zidonians, and had no business with any man. - -18:8 And they came unto their brethren to Zorah and Eshtaol: and their -brethren said unto them, What say ye? 18:9 And they said, Arise, that -we may go up against them: for we have seen the land, and, behold, it -is very good: and are ye still? be not slothful to go, and to enter to -possess the land. - -18:10 When ye go, ye shall come unto a people secure, and to a large -land: for God hath given it into your hands; a place where there is no -want of any thing that is in the earth. - -18:11 And there went from thence of the family of the Danites, out of -Zorah and out of Eshtaol, six hundred men appointed with weapons of -war. - -18:12 And they went up, and pitched in Kirjathjearim, in Judah: -wherefore they called that place Mahanehdan unto this day: behold, it -is behind Kirjathjearim. - -18:13 And they passed thence unto mount Ephraim, and came unto the -house of Micah. - -18:14 Then answered the five men that went to spy out the country of -Laish, and said unto their brethren, Do ye know that there is in these -houses an ephod, and teraphim, and a graven image, and a molten image? -now therefore consider what ye have to do. - -18:15 And they turned thitherward, and came to the house of the young -man the Levite, even unto the house of Micah, and saluted him. - -18:16 And the six hundred men appointed with their weapons of war, -which were of the children of Dan, stood by the entering of the gate. - -18:17 And the five men that went to spy out the land went up, and came -in thither, and took the graven image, and the ephod, and the -teraphim, and the molten image: and the priest stood in the entering -of the gate with the six hundred men that were appointed with weapons -of war. - -18:18 And these went into Micah's house, and fetched the carved image, -the ephod, and the teraphim, and the molten image. Then said the -priest unto them, What do ye? 18:19 And they said unto him, Hold thy -peace, lay thine hand upon thy mouth, and go with us, and be to us a -father and a priest: is it better for thee to be a priest unto the -house of one man, or that thou be a priest unto a tribe and a family -in Israel? 18:20 And the priest's heart was glad, and he took the -ephod, and the teraphim, and the graven image, and went in the midst -of the people. - -18:21 So they turned and departed, and put the little ones and the -cattle and the carriage before them. - -18:22 And when they were a good way from the house of Micah, the men -that were in the houses near to Micah's house were gathered together, -and overtook the children of Dan. - -18:23 And they cried unto the children of Dan. And they turned their -faces, and said unto Micah, What aileth thee, that thou comest with -such a company? 18:24 And he said, Ye have taken away my gods which I -made, and the priest, and ye are gone away: and what have I more? and -what is this that ye say unto me, What aileth thee? 18:25 And the -children of Dan said unto him, Let not thy voice be heard among us, -lest angry fellows run upon thee, and thou lose thy life, with the -lives of thy household. - -18:26 And the children of Dan went their way: and when Micah saw that -they were too strong for him, he turned and went back unto his house. - -18:27 And they took the things which Micah had made, and the priest -which he had, and came unto Laish, unto a people that were at quiet -and secure: and they smote them with the edge of the sword, and burnt -the city with fire. - -18:28 And there was no deliverer, because it was far from Zidon, and -they had no business with any man; and it was in the valley that lieth -by Bethrehob. And they built a city, and dwelt therein. - -18:29 And they called the name of the city Dan, after the name of Dan -their father, who was born unto Israel: howbeit the name of the city -was Laish at the first. - -18:30 And the children of Dan set up the graven image: and Jonathan, -the son of Gershom, the son of Manasseh, he and his sons were priests -to the tribe of Dan until the day of the captivity of the land. - -18:31 And they set them up Micah's graven image, which he made, all -the time that the house of God was in Shiloh. - -19:1 And it came to pass in those days, when there was no king in -Israel, that there was a certain Levite sojourning on the side of -mount Ephraim, who took to him a concubine out of Bethlehemjudah. - -19:2 And his concubine played the whore against him, and went away -from him unto her father's house to Bethlehemjudah, and was there four -whole months. - -19:3 And her husband arose, and went after her, to speak friendly unto -her, and to bring her again, having his servant with him, and a couple -of asses: and she brought him into her father's house: and when the -father of the damsel saw him, he rejoiced to meet him. - -19:4 And his father in law, the damsel's father, retained him; and he -abode with him three days: so they did eat and drink, and lodged -there. - -19:5 And it came to pass on the fourth day, when they arose early in -the morning, that he rose up to depart: and the damsel's father said -unto his son in law, Comfort thine heart with a morsel of bread, and -afterward go your way. - -19:6 And they sat down, and did eat and drink both of them together: -for the damsel's father had said unto the man, Be content, I pray -thee, and tarry all night, and let thine heart be merry. - -19:7 And when the man rose up to depart, his father in law urged him: -therefore he lodged there again. - -19:8 And he arose early in the morning on the fifth day to depart; and -the damsel's father said, Comfort thine heart, I pray thee. And they -tarried until afternoon, and they did eat both of them. - -19:9 And when the man rose up to depart, he, and his concubine, and -his servant, his father in law, the damsel's father, said unto him, -Behold, now the day draweth toward evening, I pray you tarry all -night: behold, the day groweth to an end, lodge here, that thine heart -may be merry; and to morrow get you early on your way, that thou -mayest go home. - -19:10 But the man would not tarry that night, but he rose up and -departed, and came over against Jebus, which is Jerusalem; and there -were with him two asses saddled, his concubine also was with him. - -19:11 And when they were by Jebus, the day was far spent; and the -servant said unto his master, Come, I pray thee, and let us turn in -into this city of the Jebusites, and lodge in it. - -19:12 And his master said unto him, We will not turn aside hither into -the city of a stranger, that is not of the children of Israel; we will -pass over to Gibeah. - -19:13 And he said unto his servant, Come, and let us draw near to one -of these places to lodge all night, in Gibeah, or in Ramah. - -19:14 And they passed on and went their way; and the sun went down -upon them when they were by Gibeah, which belongeth to Benjamin. - -19:15 And they turned aside thither, to go in and to lodge in Gibeah: -and when he went in, he sat him down in a street of the city: for -there was no man that took them into his house to lodging. - -19:16 And, behold, there came an old man from his work out of the -field at even, which was also of mount Ephraim; and he sojourned in -Gibeah: but the men of the place were Benjamites. - -19:17 And when he had lifted up his eyes, he saw a wayfaring man in -the street of the city: and the old man said, Whither goest thou? and -whence comest thou? 19:18 And he said unto him, We are passing from -Bethlehemjudah toward the side of mount Ephraim; from thence am I: and -I went to Bethlehemjudah, but I am now going to the house of the LORD; -and there is no man that receiveth me to house. - -19:19 Yet there is both straw and provender for our asses; and there -is bread and wine also for me, and for thy handmaid, and for the young -man which is with thy servants: there is no want of any thing. - -19:20 And the old man said, Peace be with thee; howsoever let all thy -wants lie upon me; only lodge not in the street. - -19:21 So he brought him into his house, and gave provender unto the -asses: and they washed their feet, and did eat and drink. - -19:22 Now as they were making their hearts merry, behold, the men of -the city, certain sons of Belial, beset the house round about, and -beat at the door, and spake to the master of the house, the old man, -saying, Bring forth the man that came into thine house, that we may -know him. - -19:23 And the man, the master of the house, went out unto them, and -said unto them, Nay, my brethren, nay, I pray you, do not so wickedly; -seeing that this man is come into mine house, do not this folly. - -19:24 Behold, here is my daughter a maiden, and his concubine; them I -will bring out now, and humble ye them, and do with them what seemeth -good unto you: but unto this man do not so vile a thing. - -19:25 But the men would not hearken to him: so the man took his -concubine, and brought her forth unto them; and they knew her, and -abused her all the night until the morning: and when the day began to -spring, they let her go. - -19:26 Then came the woman in the dawning of the day, and fell down at -the door of the man's house where her lord was, till it was light. - -19:27 And her lord rose up in the morning, and opened the doors of the -house, and went out to go his way: and, behold, the woman his -concubine was fallen down at the door of the house, and her hands were -upon the threshold. - -19:28 And he said unto her, Up, and let us be going. But none -answered. - -Then the man took her up upon an ass, and the man rose up, and gat him -unto his place. - -19:29 And when he was come into his house, he took a knife, and laid -hold on his concubine, and divided her, together with her bones, into -twelve pieces, and sent her into all the coasts of Israel. - -19:30 And it was so, that all that saw it said, There was no such deed -done nor seen from the day that the children of Israel came up out of -the land of Egypt unto this day: consider of it, take advice, and -speak your minds. - -20:1 Then all the children of Israel went out, and the congregation -was gathered together as one man, from Dan even to Beersheba, with the -land of Gilead, unto the LORD in Mizpeh. - -20:2 And the chief of all the people, even of all the tribes of -Israel, presented themselves in the assembly of the people of God, -four hundred thousand footmen that drew sword. - -20:3 (Now the children of Benjamin heard that the children of Israel -were gone up to Mizpeh.) Then said the children of Israel, Tell us, -how was this wickedness? 20:4 And the Levite, the husband of the -woman that was slain, answered and said, I came into Gibeah that -belongeth to Benjamin, I and my concubine, to lodge. - -20:5 And the men of Gibeah rose against me, and beset the house round -about upon me by night, and thought to have slain me: and my concubine -have they forced, that she is dead. - -20:6 And I took my concubine, and cut her in pieces, and sent her -throughout all the country of the inheritance of Israel: for they have -committed lewdness and folly in Israel. - -20:7 Behold, ye are all children of Israel; give here your advice and -counsel. - -20:8 And all the people arose as one man, saying, We will not any of -us go to his tent, neither will we any of us turn into his house. - -20:9 But now this shall be the thing which we will do to Gibeah; we -will go up by lot against it; 20:10 And we will take ten men of an -hundred throughout all the tribes of Israel, and an hundred of a -thousand, and a thousand out of ten thousand, to fetch victual for the -people, that they may do, when they come to Gibeah of Benjamin, -according to all the folly that they have wrought in Israel. - -20:11 So all the men of Israel were gathered against the city, knit -together as one man. - -20:12 And the tribes of Israel sent men through all the tribe of -Benjamin, saying, What wickedness is this that is done among you? -20:13 Now therefore deliver us the men, the children of Belial, which -are in Gibeah, that we may put them to death, and put away evil from -Israel. But the children of Benjamin would not hearken to the voice of -their brethren the children of Israel. - -20:14 But the children of Benjamin gathered themselves together out of -the cities unto Gibeah, to go out to battle against the children of -Israel. - -20:15 And the children of Benjamin were numbered at that time out of -the cities twenty and six thousand men that drew sword, beside the -inhabitants of Gibeah, which were numbered seven hundred chosen men. - -20:16 Among all this people there were seven hundred chosen men -lefthanded; every one could sling stones at an hair breadth, and not -miss. - -20:17 And the men of Israel, beside Benjamin, were numbered four -hundred thousand men that drew sword: all these were men of war. - -20:18 And the children of Israel arose, and went up to the house of -God, and asked counsel of God, and said, Which of us shall go up first -to the battle against the children of Benjamin? And the LORD said, -Judah shall go up first. - -20:19 And the children of Israel rose up in the morning, and encamped -against Gibeah. - -20:20 And the men of Israel went out to battle against Benjamin; and -the men of Israel put themselves in array to fight against them at -Gibeah. - -20:21 And the children of Benjamin came forth out of Gibeah, and -destroyed down to the ground of the Israelites that day twenty and two -thousand men. - -20:22 And the people the men of Israel encouraged themselves, and set -their battle again in array in the place where they put themselves in -array the first day. - -20:23 (And the children of Israel went up and wept before the LORD -until even, and asked counsel of the LORD, saying, Shall I go up again -to battle against the children of Benjamin my brother? And the LORD -said, Go up against him.) 20:24 And the children of Israel came near -against the children of Benjamin the second day. - -20:25 And Benjamin went forth against them out of Gibeah the second -day, and destroyed down to the ground of the children of Israel again -eighteen thousand men; all these drew the sword. - -20:26 Then all the children of Israel, and all the people, went up, -and came unto the house of God, and wept, and sat there before the -LORD, and fasted that day until even, and offered burnt offerings and -peace offerings before the LORD. - -20:27 And the children of Israel enquired of the LORD, (for the ark of -the covenant of God was there in those days, 20:28 And Phinehas, the -son of Eleazar, the son of Aaron, stood before it in those days,) -saying, Shall I yet again go out to battle against the children of -Benjamin my brother, or shall I cease? And the LORD said, Go up; for -to morrow I will deliver them into thine hand. - -20:29 And Israel set liers in wait round about Gibeah. - -20:30 And the children of Israel went up against the children of -Benjamin on the third day, and put themselves in array against Gibeah, -as at other times. - -20:31 And the children of Benjamin went out against the people, and -were drawn away from the city; and they began to smite of the people, -and kill, as at other times, in the highways, of which one goeth up to -the house of God, and the other to Gibeah in the field, about thirty -men of Israel. - -20:32 And the children of Benjamin said, They are smitten down before -us, as at the first. But the children of Israel said, Let us flee, and -draw them from the city unto the highways. - -20:33 And all the men of Israel rose up out of their place, and put -themselves in array at Baaltamar: and the liers in wait of Israel came -forth out of their places, even out of the meadows of Gibeah. - -20:34 And there came against Gibeah ten thousand chosen men out of all -Israel, and the battle was sore: but they knew not that evil was near -them. - -20:35 And the LORD smote Benjamin before Israel: and the children of -Israel destroyed of the Benjamites that day twenty and five thousand -and an hundred men: all these drew the sword. - -20:36 So the children of Benjamin saw that they were smitten: for the -men of Israel gave place to the Benjamites, because they trusted unto -the liers in wait which they had set beside Gibeah. - -20:37 And the liers in wait hasted, and rushed upon Gibeah; and the -liers in wait drew themselves along, and smote all the city with the -edge of the sword. - -20:38 Now there was an appointed sign between the men of Israel and -the liers in wait, that they should make a great flame with smoke rise -up out of the city. - -20:39 And when the men of Israel retired in the battle, Benjamin began -to smite and kill of the men of Israel about thirty persons: for they -said, Surely they are smitten down before us, as in the first battle. - -20:40 But when the flame began to arise up out of the city with a -pillar of smoke, the Benjamites looked behind them, and, behold, the -flame of the city ascended up to heaven. - -20:41 And when the men of Israel turned again, the men of Benjamin -were amazed: for they saw that evil was come upon them. - -20:42 Therefore they turned their backs before the men of Israel unto -the way of the wilderness; but the battle overtook them; and them -which came out of the cities they destroyed in the midst of them. - -20:43 Thus they inclosed the Benjamites round about, and chased them, -and trode them down with ease over against Gibeah toward the -sunrising. - -20:44 And there fell of Benjamin eighteen thousand men; all these were -men of valour. - -20:45 And they turned and fled toward the wilderness unto the rock of -Rimmon: and they gleaned of them in the highways five thousand men; -and pursued hard after them unto Gidom, and slew two thousand men of -them. - -20:46 So that all which fell that day of Benjamin were twenty and five -thousand men that drew the sword; all these were men of valour. - -20:47 But six hundred men turned and fled to the wilderness unto the -rock Rimmon, and abode in the rock Rimmon four months. - -20:48 And the men of Israel turned again upon the children of -Benjamin, and smote them with the edge of the sword, as well the men -of every city, as the beast, and all that came to hand: also they set -on fire all the cities that they came to. - -21:1 Now the men of Israel had sworn in Mizpeh, saying, There shall -not any of us give his daughter unto Benjamin to wife. - -21:2 And the people came to the house of God, and abode there till -even before God, and lifted up their voices, and wept sore; 21:3 And -said, O LORD God of Israel, why is this come to pass in Israel, that -there should be to day one tribe lacking in Israel? 21:4 And it came -to pass on the morrow, that the people rose early, and built there an -altar, and offered burnt offerings and peace offerings. - -21:5 And the children of Israel said, Who is there among all the -tribes of Israel that came not up with the congregation unto the LORD? -For they had made a great oath concerning him that came not up to the -LORD to Mizpeh, saying, He shall surely be put to death. - -21:6 And the children of Israel repented them for Benjamin their -brother, and said, There is one tribe cut off from Israel this day. - -21:7 How shall we do for wives for them that remain, seeing we have -sworn by the LORD that we will not give them of our daughters to -wives? 21:8 And they said, What one is there of the tribes of Israel -that came not up to Mizpeh to the LORD? And, behold, there came none -to the camp from Jabeshgilead to the assembly. - -21:9 For the people were numbered, and, behold, there were none of the -inhabitants of Jabeshgilead there. - -21:10 And the congregation sent thither twelve thousand men of the -valiantest, and commanded them, saying, Go and smite the inhabitants -of Jabeshgilead with the edge of the sword, with the women and the -children. - -21:11 And this is the thing that ye shall do, Ye shall utterly destroy -every male, and every woman that hath lain by man. - -21:12 And they found among the inhabitants of Jabeshgilead four -hundred young virgins, that had known no man by lying with any male: -and they brought them unto the camp to Shiloh, which is in the land of -Canaan. - -21:13 And the whole congregation sent some to speak to the children of -Benjamin that were in the rock Rimmon, and to call peaceably unto -them. - -21:14 And Benjamin came again at that time; and they gave them wives -which they had saved alive of the women of Jabeshgilead: and yet so -they sufficed them not. - -21:15 And the people repented them for Benjamin, because that the LORD -had made a breach in the tribes of Israel. - -21:16 Then the elders of the congregation said, How shall we do for -wives for them that remain, seeing the women are destroyed out of -Benjamin? 21:17 And they said, There must be an inheritance for them -that be escaped of Benjamin, that a tribe be not destroyed out of -Israel. - -21:18 Howbeit we may not give them wives of our daughters: for the -children of Israel have sworn, saying, Cursed be he that giveth a wife -to Benjamin. - -21:19 Then they said, Behold, there is a feast of the LORD in Shiloh -yearly in a place which is on the north side of Bethel, on the east -side of the highway that goeth up from Bethel to Shechem, and on the -south of Lebonah. - -21:20 Therefore they commanded the children of Benjamin, saying, Go -and lie in wait in the vineyards; 21:21 And see, and, behold, if the -daughters of Shiloh come out to dance in dances, then come ye out of -the vineyards, and catch you every man his wife of the daughters of -Shiloh, and go to the land of Benjamin. - -21:22 And it shall be, when their fathers or their brethren come unto -us to complain, that we will say unto them, Be favourable unto them -for our sakes: because we reserved not to each man his wife in the -war: for ye did not give unto them at this time, that ye should be -guilty. - -21:23 And the children of Benjamin did so, and took them wives, -according to their number, of them that danced, whom they caught: and -they went and returned unto their inheritance, and repaired the -cities, and dwelt in them. - -21:24 And the children of Israel departed thence at that time, every -man to his tribe and to his family, and they went out from thence -every man to his inheritance. - -21:25 In those days there was no king in Israel: every man did that -which was right in his own eyes. - - - -The Book of Ruth - - -1:1 Now it came to pass in the days when the judges ruled, that there -was a famine in the land. And a certain man of Bethlehemjudah went to -sojourn in the country of Moab, he, and his wife, and his two sons. - -1:2 And the name of the man was Elimelech, and the name of his wife -Naomi, and the name of his two sons Mahlon and Chilion, Ephrathites of -Bethlehemjudah. And they came into the country of Moab, and continued -there. - -1:3 And Elimelech Naomi's husband died; and she was left, and her two -sons. - -1:4 And they took them wives of the women of Moab; the name of the one -was Orpah, and the name of the other Ruth: and they dwelled there -about ten years. - -1:5 And Mahlon and Chilion died also both of them; and the woman was -left of her two sons and her husband. - -1:6 Then she arose with her daughters in law, that she might return -from the country of Moab: for she had heard in the country of Moab how -that the LORD had visited his people in giving them bread. - -1:7 Wherefore she went forth out of the place where she was, and her -two daughters in law with her; and they went on the way to return unto -the land of Judah. - -1:8 And Naomi said unto her two daughters in law, Go, return each to -her mother's house: the LORD deal kindly with you, as ye have dealt -with the dead, and with me. - -1:9 The LORD grant you that ye may find rest, each of you in the house -of her husband. Then she kissed them; and they lifted up their voice, -and wept. - -1:10 And they said unto her, Surely we will return with thee unto thy -people. - -1:11 And Naomi said, Turn again, my daughters: why will ye go with me? -are there yet any more sons in my womb, that they may be your -husbands? 1:12 Turn again, my daughters, go your way; for I am too -old to have an husband. If I should say, I have hope, if I should have -an husband also to night, and should also bear sons; 1:13 Would ye -tarry for them till they were grown? would ye stay for them from -having husbands? nay, my daughters; for it grieveth me much for your -sakes that the hand of the LORD is gone out against me. - -1:14 And they lifted up their voice, and wept again: and Orpah kissed -her mother in law; but Ruth clave unto her. - -1:15 And she said, Behold, thy sister in law is gone back unto her -people, and unto her gods: return thou after thy sister in law. - -1:16 And Ruth said, Intreat me not to leave thee, or to return from -following after thee: for whither thou goest, I will go; and where -thou lodgest, I will lodge: thy people shall be my people, and thy God -my God: 1:17 Where thou diest, will I die, and there will I be buried: -the LORD do so to me, and more also, if ought but death part thee and -me. - -1:18 When she saw that she was stedfastly minded to go with her, then -she left speaking unto her. - -1:19 So they two went until they came to Bethlehem. And it came to -pass, when they were come to Bethlehem, that all the city was moved -about them, and they said, Is this Naomi? 1:20 And she said unto -them, Call me not Naomi, call me Mara: for the Almighty hath dealt -very bitterly with me. - -1:21 I went out full and the LORD hath brought me home again empty: -why then call ye me Naomi, seeing the LORD hath testified against me, -and the Almighty hath afflicted me? 1:22 So Naomi returned, and Ruth -the Moabitess, her daughter in law, with her, which returned out of -the country of Moab: and they came to Bethlehem in the beginning of -barley harvest. - -2:1 And Naomi had a kinsman of her husband's, a mighty man of wealth, -of the family of Elimelech; and his name was Boaz. - -2:2 And Ruth the Moabitess said unto Naomi, Let me now go to the -field, and glean ears of corn after him in whose sight I shall find -grace. - -And she said unto her, Go, my daughter. - -2:3 And she went, and came, and gleaned in the field after the -reapers: and her hap was to light on a part of the field belonging -unto Boaz, who was of the kindred of Elimelech. - -2:4 And, behold, Boaz came from Bethlehem, and said unto the reapers, -The LORD be with you. And they answered him, The LORD bless thee. - -2:5 Then said Boaz unto his servant that was set over the reapers, -Whose damsel is this? 2:6 And the servant that was set over the -reapers answered and said, It is the Moabitish damsel that came back -with Naomi out of the country of Moab: 2:7 And she said, I pray you, -let me glean and gather after the reapers among the sheaves: so she -came, and hath continued even from the morning until now, that she -tarried a little in the house. - -2:8 Then said Boaz unto Ruth, Hearest thou not, my daughter? Go not to -glean in another field, neither go from hence, but abide here fast by -my maidens: 2:9 Let thine eyes be on the field that they do reap, and -go thou after them: have I not charged the young men that they shall -not touch thee? and when thou art athirst, go unto the vessels, and -drink of that which the young men have drawn. - -2:10 Then she fell on her face, and bowed herself to the ground, and -said unto him, Why have I found grace in thine eyes, that thou -shouldest take knowledge of me, seeing I am a stranger? 2:11 And Boaz -answered and said unto her, It hath fully been shewed me, all that -thou hast done unto thy mother in law since the death of thine -husband: and how thou hast left thy father and thy mother, and the -land of thy nativity, and art come unto a people which thou knewest -not heretofore. - -2:12 The LORD recompense thy work, and a full reward be given thee of -the LORD God of Israel, under whose wings thou art come to trust. - -2:13 Then she said, Let me find favour in thy sight, my lord; for that -thou hast comforted me, and for that thou hast spoken friendly unto -thine handmaid, though I be not like unto one of thine handmaidens. - -2:14 And Boaz said unto her, At mealtime come thou hither, and eat of -the bread, and dip thy morsel in the vinegar. And she sat beside the -reapers: and he reached her parched corn, and she did eat, and was -sufficed, and left. - -2:15 And when she was risen up to glean, Boaz commanded his young men, -saying, Let her glean even among the sheaves, and reproach her not: -2:16 And let fall also some of the handfuls of purpose for her, and -leave them, that she may glean them, and rebuke her not. - -2:17 So she gleaned in the field until even, and beat out that she had -gleaned: and it was about an ephah of barley. - -2:18 And she took it up, and went into the city: and her mother in law -saw what she had gleaned: and she brought forth, and gave to her that -she had reserved after she was sufficed. - -2:19 And her mother in law said unto her, Where hast thou gleaned to -day? and where wroughtest thou? blessed be he that did take knowledge -of thee. And she shewed her mother in law with whom she had wrought, -and said, The man's name with whom I wrought to day is Boaz. - -2:20 And Naomi said unto her daughter in law, Blessed be he of the -LORD, who hath not left off his kindness to the living and to the -dead. And Naomi said unto her, The man is near of kin unto us, one of -our next kinsmen. - -2:21 And Ruth the Moabitess said, He said unto me also, Thou shalt -keep fast by my young men, until they have ended all my harvest. - -2:22 And Naomi said unto Ruth her daughter in law, It is good, my -daughter, that thou go out with his maidens, that they meet thee not -in any other field. - -2:23 So she kept fast by the maidens of Boaz to glean unto the end of -barley harvest and of wheat harvest; and dwelt with her mother in law. - -3:1 Then Naomi her mother in law said unto her, My daughter, shall I -not seek rest for thee, that it may be well with thee? 3:2 And now is -not Boaz of our kindred, with whose maidens thou wast? Behold, he -winnoweth barley to night in the threshingfloor. - -3:3 Wash thyself therefore, and anoint thee, and put thy raiment upon -thee, and get thee down to the floor: but make not thyself known unto -the man, until he shall have done eating and drinking. - -3:4 And it shall be, when he lieth down, that thou shalt mark the -place where he shall lie, and thou shalt go in, and uncover his feet, -and lay thee down; and he will tell thee what thou shalt do. - -3:5 And she said unto her, All that thou sayest unto me I will do. - -3:6 And she went down unto the floor, and did according to all that -her mother in law bade her. - -3:7 And when Boaz had eaten and drunk, and his heart was merry, he -went to lie down at the end of the heap of corn: and she came softly, -and uncovered his feet, and laid her down. - -3:8 And it came to pass at midnight, that the man was afraid, and -turned himself: and, behold, a woman lay at his feet. - -3:9 And he said, Who art thou? And she answered, I am Ruth thine -handmaid: spread therefore thy skirt over thine handmaid; for thou art -a near kinsman. - -3:10 And he said, Blessed be thou of the LORD, my daughter: for thou -hast shewed more kindness in the latter end than at the beginning, -inasmuch as thou followedst not young men, whether poor or rich. - -3:11 And now, my daughter, fear not; I will do to thee all that thou -requirest: for all the city of my people doth know that thou art a -virtuous woman. - -3:12 And now it is true that I am thy near kinsman: howbeit there is a -kinsman nearer than I. - -3:13 Tarry this night, and it shall be in the morning, that if he will -perform unto thee the part of a kinsman, well; let him do the -kinsman's part: but if he will not do the part of a kinsman to thee, -then will I do the part of a kinsman to thee, as the LORD liveth: lie -down until the morning. - -3:14 And she lay at his feet until the morning: and she rose up before -one could know another. And he said, Let it not be known that a woman -came into the floor. - -3:15 Also he said, Bring the vail that thou hast upon thee, and hold -it. - -And when she held it, he measured six measures of barley, and laid it -on her: and she went into the city. - -3:16 And when she came to her mother in law, she said, Who art thou, -my daughter? And she told her all that the man had done to her. - -3:17 And she said, These six measures of barley gave he me; for he -said to me, Go not empty unto thy mother in law. - -3:18 Then said she, Sit still, my daughter, until thou know how the -matter will fall: for the man will not be in rest, until he have -finished the thing this day. - -4:1 Then went Boaz up to the gate, and sat him down there: and, -behold, the kinsman of whom Boaz spake came by; unto whom he said, Ho, -such a one! turn aside, sit down here. And he turned aside, and sat -down. - -4:2 And he took ten men of the elders of the city, and said, Sit ye -down here. And they sat down. - -4:3 And he said unto the kinsman, Naomi, that is come again out of the -country of Moab, selleth a parcel of land, which was our brother -Elimelech's: 4:4 And I thought to advertise thee, saying, Buy it -before the inhabitants, and before the elders of my people. If thou -wilt redeem it, redeem it: but if thou wilt not redeem it, then tell -me, that I may know: for there is none to redeem it beside thee; and I -am after thee. And he said, I will redeem it. - -4:5 Then said Boaz, What day thou buyest the field of the hand of -Naomi, thou must buy it also of Ruth the Moabitess, the wife of the -dead, to raise up the name of the dead upon his inheritance. - -4:6 And the kinsman said, I cannot redeem it for myself, lest I mar -mine own inheritance: redeem thou my right to thyself; for I cannot -redeem it. - -4:7 Now this was the manner in former time in Israel concerning -redeeming and concerning changing, for to confirm all things; a man -plucked off his shoe, and gave it to his neighbour: and this was a -testimony in Israel. - -4:8 Therefore the kinsman said unto Boaz, Buy it for thee. So he drew -off his shoe. - -4:9 And Boaz said unto the elders, and unto all the people, Ye are -witnesses this day, that I have bought all that was Elimelech's, and -all that was Chilion's and Mahlon's, of the hand of Naomi. - -4:10 Moreover Ruth the Moabitess, the wife of Mahlon, have I purchased -to be my wife, to raise up the name of the dead upon his inheritance, -that the name of the dead be not cut off from among his brethren, and -from the gate of his place: ye are witnesses this day. - -4:11 And all the people that were in the gate, and the elders, said, -We are witnesses. The LORD make the woman that is come into thine -house like Rachel and like Leah, which two did build the house of -Israel: and do thou worthily in Ephratah, and be famous in Bethlehem: -4:12 And let thy house be like the house of Pharez, whom Tamar bare -unto Judah, of the seed which the LORD shall give thee of this young -woman. - -4:13 So Boaz took Ruth, and she was his wife: and when he went in unto -her, the LORD gave her conception, and she bare a son. - -4:14 And the women said unto Naomi, Blessed be the LORD, which hath -not left thee this day without a kinsman, that his name may be famous -in Israel. - -4:15 And he shall be unto thee a restorer of thy life, and a nourisher -of thine old age: for thy daughter in law, which loveth thee, which is -better to thee than seven sons, hath born him. - -4:16 And Naomi took the child, and laid it in her bosom, and became -nurse unto it. - -4:17 And the women her neighbours gave it a name, saying, There is a -son born to Naomi; and they called his name Obed: he is the father of -Jesse, the father of David. - -4:18 Now these are the generations of Pharez: Pharez begat Hezron, -4:19 And Hezron begat Ram, and Ram begat Amminadab, 4:20 And Amminadab -begat Nahshon, and Nahshon begat Salmon, 4:21 And Salmon begat Boaz, -and Boaz begat Obed, 4:22 And Obed begat Jesse, and Jesse begat David. - - - - -The First Book of Samuel - -Otherwise Called: - -The First Book of the Kings - - -1:1 Now there was a certain man of Ramathaimzophim, of mount Ephraim, -and his name was Elkanah, the son of Jeroham, the son of Elihu, the -son of Tohu, the son of Zuph, an Ephrathite: 1:2 And he had two wives; -the name of the one was Hannah, and the name of the other Peninnah: -and Peninnah had children, but Hannah had no children. - -1:3 And this man went up out of his city yearly to worship and to -sacrifice unto the LORD of hosts in Shiloh. And the two sons of Eli, -Hophni and Phinehas, the priests of the LORD, were there. - -1:4 And when the time was that Elkanah offered, he gave to Peninnah -his wife, and to all her sons and her daughters, portions: 1:5 But -unto Hannah he gave a worthy portion; for he loved Hannah: but the -LORD had shut up her womb. - -1:6 And her adversary also provoked her sore, for to make her fret, -because the LORD had shut up her womb. - -1:7 And as he did so year by year, when she went up to the house of -the LORD, so she provoked her; therefore she wept, and did not eat. - -1:8 Then said Elkanah her husband to her, Hannah, why weepest thou? -and why eatest thou not? and why is thy heart grieved? am not I better -to thee than ten sons? 1:9 So Hannah rose up after they had eaten in -Shiloh, and after they had drunk. Now Eli the priest sat upon a seat -by a post of the temple of the LORD. - -1:10 And she was in bitterness of soul, and prayed unto the LORD, and -wept sore. - -1:11 And she vowed a vow, and said, O LORD of hosts, if thou wilt -indeed look on the affliction of thine handmaid, and remember me, and -not forget thine handmaid, but wilt give unto thine handmaid a man -child, then I will give him unto the LORD all the days of his life, -and there shall no razor come upon his head. - -1:12 And it came to pass, as she continued praying before the LORD, -that Eli marked her mouth. - -1:13 Now Hannah, she spake in her heart; only her lips moved, but her -voice was not heard: therefore Eli thought she had been drunken. - -1:14 And Eli said unto her, How long wilt thou be drunken? put away -thy wine from thee. - -1:15 And Hannah answered and said, No, my lord, I am a woman of a -sorrowful spirit: I have drunk neither wine nor strong drink, but have -poured out my soul before the LORD. - -1:16 Count not thine handmaid for a daughter of Belial: for out of the -abundance of my complaint and grief have I spoken hitherto. - -1:17 Then Eli answered and said, Go in peace: and the God of Israel -grant thee thy petition that thou hast asked of him. - -1:18 And she said, Let thine handmaid find grace in thy sight. So the -woman went her way, and did eat, and her countenance was no more sad. - -1:19 And they rose up in the morning early, and worshipped before the -LORD, and returned, and came to their house to Ramah: and Elkanah knew -Hannah his wife; and the LORD remembered her. - -1:20 Wherefore it came to pass, when the time was come about after -Hannah had conceived, that she bare a son, and called his name Samuel, -saying, Because I have asked him of the LORD. - -1:21 And the man Elkanah, and all his house, went up to offer unto the -LORD the yearly sacrifice, and his vow. - -1:22 But Hannah went not up; for she said unto her husband, I will not -go up until the child be weaned, and then I will bring him, that he -may appear before the LORD, and there abide for ever. - -1:23 And Elkanah her husband said unto her, Do what seemeth thee good; -tarry until thou have weaned him; only the LORD establish his word. So -the woman abode, and gave her son suck until she weaned him. - -1:24 And when she had weaned him, she took him up with her, with three -bullocks, and one ephah of flour, and a bottle of wine, and brought -him unto the house of the LORD in Shiloh: and the child was young. - -1:25 And they slew a bullock, and brought the child to Eli. - -1:26 And she said, Oh my lord, as thy soul liveth, my lord, I am the -woman that stood by thee here, praying unto the LORD. - -1:27 For this child I prayed; and the LORD hath given me my petition -which I asked of him: 1:28 Therefore also I have lent him to the LORD; -as long as he liveth he shall be lent to the LORD. And he worshipped -the LORD there. - -2:1 And Hannah prayed, and said, My heart rejoiceth in the LORD, mine -horn is exalted in the LORD: my mouth is enlarged over mine enemies; -because I rejoice in thy salvation. - -2:2 There is none holy as the LORD: for there is none beside thee: -neither is there any rock like our God. - -2:3 Talk no more so exceeding proudly; let not arrogancy come out of -your mouth: for the LORD is a God of knowledge, and by him actions are -weighed. - -2:4 The bows of the mighty men are broken, and they that stumbled are -girded with strength. - -2:5 They that were full have hired out themselves for bread; and they -that were hungry ceased: so that the barren hath born seven; and she -that hath many children is waxed feeble. - -2:6 The LORD killeth, and maketh alive: he bringeth down to the grave, -and bringeth up. - -2:7 The LORD maketh poor, and maketh rich: he bringeth low, and -lifteth up. - -2:8 He raiseth up the poor out of the dust, and lifteth up the beggar -from the dunghill, to set them among princes, and to make them inherit -the throne of glory: for the pillars of the earth are the LORD's, and -he hath set the world upon them. - -2:9 He will keep the feet of his saints, and the wicked shall be -silent in darkness; for by strength shall no man prevail. - -2:10 The adversaries of the LORD shall be broken to pieces; out of -heaven shall he thunder upon them: the LORD shall judge the ends of -the earth; and he shall give strength unto his king, and exalt the -horn of his anointed. - -2:11 And Elkanah went to Ramah to his house. And the child did -minister unto the LORD before Eli the priest. - -2:12 Now the sons of Eli were sons of Belial; they knew not the LORD. - -2:13 And the priest's custom with the people was, that, when any man -offered sacrifice, the priest's servant came, while the flesh was in -seething, with a fleshhook of three teeth in his hand; 2:14 And he -struck it into the pan, or kettle, or caldron, or pot; all that the -fleshhook brought up the priest took for himself. So they did in -Shiloh unto all the Israelites that came thither. - -2:15 Also before they burnt the fat, the priest's servant came, and -said to the man that sacrificed, Give flesh to roast for the priest; -for he will not have sodden flesh of thee, but raw. - -2:16 And if any man said unto him, Let them not fail to burn the fat -presently, and then take as much as thy soul desireth; then he would -answer him, Nay; but thou shalt give it me now: and if not, I will -take it by force. - -2:17 Wherefore the sin of the young men was very great before the -LORD: for men abhorred the offering of the LORD. - -2:18 But Samuel ministered before the LORD, being a child, girded with -a linen ephod. - -2:19 Moreover his mother made him a little coat, and brought it to him -from year to year, when she came up with her husband to offer the -yearly sacrifice. - -2:20 And Eli blessed Elkanah and his wife, and said, The LORD give -thee seed of this woman for the loan which is lent to the LORD. And -they went unto their own home. - -2:21 And the LORD visited Hannah, so that she conceived, and bare -three sons and two daughters. And the child Samuel grew before the -LORD. - -2:22 Now Eli was very old, and heard all that his sons did unto all -Israel; and how they lay with the women that assembled at the door of -the tabernacle of the congregation. - -2:23 And he said unto them, Why do ye such things? for I hear of your -evil dealings by all this people. - -2:24 Nay, my sons; for it is no good report that I hear: ye make the -LORD's people to transgress. - -2:25 If one man sin against another, the judge shall judge him: but if -a man sin against the LORD, who shall intreat for him? Notwithstanding -they hearkened not unto the voice of their father, because the LORD -would slay them. - -2:26 And the child Samuel grew on, and was in favour both with the -LORD, and also with men. - -2:27 And there came a man of God unto Eli, and said unto him, Thus -saith the LORD, Did I plainly appear unto the house of thy father, -when they were in Egypt in Pharaoh's house? 2:28 And did I choose him -out of all the tribes of Israel to be my priest, to offer upon mine -altar, to burn incense, to wear an ephod before me? and did I give -unto the house of thy father all the offerings made by fire of the -children of Israel? 2:29 Wherefore kick ye at my sacrifice and at -mine offering, which I have commanded in my habitation; and honourest -thy sons above me, to make yourselves fat with the chiefest of all the -offerings of Israel my people? 2:30 Wherefore the LORD God of Israel -saith, I said indeed that thy house, and the house of thy father, -should walk before me for ever: but now the LORD saith, Be it far from -me; for them that honour me I will honour, and they that despise me -shall be lightly esteemed. - -2:31 Behold, the days come, that I will cut off thine arm, and the arm -of thy father's house, that there shall not be an old man in thine -house. - -2:32 And thou shalt see an enemy in my habitation, in all the wealth -which God shall give Israel: and there shall not be an old man in -thine house for ever. - -2:33 And the man of thine, whom I shall not cut off from mine altar, -shall be to consume thine eyes, and to grieve thine heart: and all the -increase of thine house shall die in the flower of their age. - -2:34 And this shall be a sign unto thee, that shall come upon thy two -sons, on Hophni and Phinehas; in one day they shall die both of them. - -2:35 And I will raise me up a faithful priest, that shall do according -to that which is in mine heart and in my mind: and I will build him a -sure house; and he shall walk before mine anointed for ever. - -2:36 And it shall come to pass, that every one that is left in thine -house shall come and crouch to him for a piece of silver and a morsel -of bread, and shall say, Put me, I pray thee, into one of the priests' -offices, that I may eat a piece of bread. - -3:1 And the child Samuel ministered unto the LORD before Eli. And the -word of the LORD was precious in those days; there was no open vision. - -3:2 And it came to pass at that time, when Eli was laid down in his -place, and his eyes began to wax dim, that he could not see; 3:3 And -ere the lamp of God went out in the temple of the LORD, where the ark -of God was, and Samuel was laid down to sleep; 3:4 That the LORD -called Samuel: and he answered, Here am I. - -3:5 And he ran unto Eli, and said, Here am I; for thou calledst me. -And he said, I called not; lie down again. And he went and lay down. - -3:6 And the LORD called yet again, Samuel. And Samuel arose and went -to Eli, and said, Here am I; for thou didst call me. And he answered, -I called not, my son; lie down again. - -3:7 Now Samuel did not yet know the LORD, neither was the word of the -LORD yet revealed unto him. - -3:8 And the LORD called Samuel again the third time. And he arose and -went to Eli, and said, Here am I; for thou didst call me. And Eli -perceived that the LORD had called the child. - -3:9 Therefore Eli said unto Samuel, Go, lie down: and it shall be, if -he call thee, that thou shalt say, Speak, LORD; for thy servant -heareth. So Samuel went and lay down in his place. - -3:10 And the LORD came, and stood, and called as at other times, -Samuel, Samuel. Then Samuel answered, Speak; for thy servant heareth. - -3:11 And the LORD said to Samuel, Behold, I will do a thing in Israel, -at which both the ears of every one that heareth it shall tingle. - -3:12 In that day I will perform against Eli all things which I have -spoken concerning his house: when I begin, I will also make an end. - -3:13 For I have told him that I will judge his house for ever for the -iniquity which he knoweth; because his sons made themselves vile, and -he restrained them not. - -3:14 And therefore I have sworn unto the house of Eli, that the -iniquity of Eli's house shall not be purged with sacrifice nor -offering for ever. - -3:15 And Samuel lay until the morning, and opened the doors of the -house of the LORD. And Samuel feared to shew Eli the vision. - -3:16 Then Eli called Samuel, and said, Samuel, my son. And he -answered, Here am I. - -3:17 And he said, What is the thing that the LORD hath said unto thee? -I pray thee hide it not from me: God do so to thee, and more also, if -thou hide any thing from me of all the things that he said unto thee. - -3:18 And Samuel told him every whit, and hid nothing from him. And he -said, It is the LORD: let him do what seemeth him good. - -3:19 And Samuel grew, and the LORD was with him, and did let none of -his words fall to the ground. - -3:20 And all Israel from Dan even to Beersheba knew that Samuel was -established to be a prophet of the LORD. - -3:21 And the LORD appeared again in Shiloh: for the LORD revealed -himself to Samuel in Shiloh by the word of the LORD. - -4:1 And the word of Samuel came to all Israel. Now Israel went out -against the Philistines to battle, and pitched beside Ebenezer: and -the Philistines pitched in Aphek. - -4:2 And the Philistines put themselves in array against Israel: and -when they joined battle, Israel was smitten before the Philistines: -and they slew of the army in the field about four thousand men. - -4:3 And when the people were come into the camp, the elders of Israel -said, Wherefore hath the LORD smitten us to day before the -Philistines? Let us fetch the ark of the covenant of the LORD out of -Shiloh unto us, that, when it cometh among us, it may save us out of -the hand of our enemies. - -4:4 So the people sent to Shiloh, that they might bring from thence -the ark of the covenant of the LORD of hosts, which dwelleth between -the cherubims: and the two sons of Eli, Hophni and Phinehas, were -there with the ark of the covenant of God. - -4:5 And when the ark of the covenant of the LORD came into the camp, -all Israel shouted with a great shout, so that the earth rang again. - -4:6 And when the Philistines heard the noise of the shout, they said, -What meaneth the noise of this great shout in the camp of the Hebrews? -And they understood that the ark of the LORD was come into the camp. - -4:7 And the Philistines were afraid, for they said, God is come into -the camp. And they said, Woe unto us! for there hath not been such a -thing heretofore. - -4:8 Woe unto us! who shall deliver us out of the hand of these mighty -Gods? these are the Gods that smote the Egyptians with all the plagues -in the wilderness. - -4:9 Be strong and quit yourselves like men, O ye Philistines, that ye -be not servants unto the Hebrews, as they have been to you: quit -yourselves like men, and fight. - -4:10 And the Philistines fought, and Israel was smitten, and they fled -every man into his tent: and there was a very great slaughter; for -there fell of Israel thirty thousand footmen. - -4:11 And the ark of God was taken; and the two sons of Eli, Hophni and -Phinehas, were slain. - -4:12 And there ran a man of Benjamin out of the army, and came to -Shiloh the same day with his clothes rent, and with earth upon his -head. - -4:13 And when he came, lo, Eli sat upon a seat by the wayside -watching: for his heart trembled for the ark of God. And when the man -came into the city, and told it, all the city cried out. - -4:14 And when Eli heard the noise of the crying, he said, What meaneth -the noise of this tumult? And the man came in hastily, and told Eli. - -4:15 Now Eli was ninety and eight years old; and his eyes were dim, -that he could not see. - -4:16 And the man said unto Eli, I am he that came out of the army, and -I fled to day out of the army. And he said, What is there done, my -son? 4:17 And the messenger answered and said, Israel is fled before -the Philistines, and there hath been also a great slaughter among the -people, and thy two sons also, Hophni and Phinehas, are dead, and the -ark of God is taken. - -4:18 And it came to pass, when he made mention of the ark of God, that -he fell from off the seat backward by the side of the gate, and his -neck brake, and he died: for he was an old man, and heavy. And he had -judged Israel forty years. - -4:19 And his daughter in law, Phinehas' wife, was with child, near to -be delivered: and when she heard the tidings that the ark of God was -taken, and that her father in law and her husband were dead, she bowed -herself and travailed; for her pains came upon her. - -4:20 And about the time of her death the women that stood by her said -unto her, Fear not; for thou hast born a son. But she answered not, -neither did she regard it. - -4:21 And she named the child Ichabod, saying, The glory is departed -from Israel: because the ark of God was taken, and because of her -father in law and her husband. - -4:22 And she said, The glory is departed from Israel: for the ark of -God is taken. - -5:1 And the Philistines took the ark of God, and brought it from -Ebenezer unto Ashdod. - -5:2 When the Philistines took the ark of God, they brought it into the -house of Dagon, and set it by Dagon. - -5:3 And when they of Ashdod arose early on the morrow, behold, Dagon -was fallen upon his face to the earth before the ark of the LORD. And -they took Dagon, and set him in his place again. - -5:4 And when they arose early on the morrow morning, behold, Dagon was -fallen upon his face to the ground before the ark of the LORD; and the -head of Dagon and both the palms of his hands were cut off upon the -threshold; only the stump of Dagon was left to him. - -5:5 Therefore neither the priests of Dagon, nor any that come into -Dagon's house, tread on the threshold of Dagon in Ashdod unto this -day. - -5:6 But the hand of the LORD was heavy upon them of Ashdod, and he -destroyed them, and smote them with emerods, even Ashdod and the -coasts thereof. - -5:7 And when the men of Ashdod saw that it was so, they said, The ark -of the God of Israel shall not abide with us: for his hand is sore -upon us, and upon Dagon our god. - -5:8 They sent therefore and gathered all the lords of the Philistines -unto them, and said, What shall we do with the ark of the God of -Israel? And they answered, Let the ark of the God of Israel be carried -about unto Gath. And they carried the ark of the God of Israel about -thither. - -5:9 And it was so, that, after they had carried it about, the hand of -the LORD was against the city with a very great destruction: and he -smote the men of the city, both small and great, and they had emerods -in their secret parts. - -5:10 Therefore they sent the ark of God to Ekron. And it came to pass, -as the ark of God came to Ekron, that the Ekronites cried out, saying, -They have brought about the ark of the God of Israel to us, to slay us -and our people. - -5:11 So they sent and gathered together all the lords of the -Philistines, and said, Send away the ark of the God of Israel, and let -it go again to his own place, that it slay us not, and our people: for -there was a deadly destruction throughout all the city; the hand of -God was very heavy there. - -5:12 And the men that died not were smitten with the emerods: and the -cry of the city went up to heaven. - -6:1 And the ark of the LORD was in the country of the Philistines -seven months. - -6:2 And the Philistines called for the priests and the diviners, -saying, What shall we do to the ark of the LORD? tell us wherewith we -shall send it to his place. - -6:3 And they said, If ye send away the ark of the God of Israel, send -it not empty; but in any wise return him a trespass offering: then ye -shall be healed, and it shall be known to you why his hand is not -removed from you. - -6:4 Then said they, What shall be the trespass offering which we shall -return to him? They answered, Five golden emerods, and five golden -mice, according to the number of the lords of the Philistines: for one -plague was on you all, and on your lords. - -6:5 Wherefore ye shall make images of your emerods, and images of your -mice that mar the land; and ye shall give glory unto the God of -Israel: peradventure he will lighten his hand from off you, and from -off your gods, and from off your land. - -6:6 Wherefore then do ye harden your hearts, as the Egyptians and -Pharaoh hardened their hearts? when he had wrought wonderfully among -them, did they not let the people go, and they departed? 6:7 Now -therefore make a new cart, and take two milch kine, on which there -hath come no yoke, and tie the kine to the cart, and bring their -calves home from them: 6:8 And take the ark of the LORD, and lay it -upon the cart; and put the jewels of gold, which ye return him for a -trespass offering, in a coffer by the side thereof; and send it away, -that it may go. - -6:9 And see, if it goeth up by the way of his own coast to -Bethshemesh, then he hath done us this great evil: but if not, then we -shall know that it is not his hand that smote us: it was a chance that -happened to us. - -6:10 And the men did so; and took two milch kine, and tied them to the -cart, and shut up their calves at home: 6:11 And they laid the ark of -the LORD upon the cart, and the coffer with the mice of gold and the -images of their emerods. - -6:12 And the kine took the straight way to the way of Bethshemesh, and -went along the highway, lowing as they went, and turned not aside to -the right hand or to the left; and the lords of the Philistines went -after them unto the border of Bethshemesh. - -6:13 And they of Bethshemesh were reaping their wheat harvest in the -valley: and they lifted up their eyes, and saw the ark, and rejoiced -to see it. - -6:14 And the cart came into the field of Joshua, a Bethshemite, and -stood there, where there was a great stone: and they clave the wood of -the cart, and offered the kine a burnt offering unto the LORD. - -6:15 And the Levites took down the ark of the LORD, and the coffer -that was with it, wherein the jewels of gold were, and put them on the -great stone: and the men of Bethshemesh offered burnt offerings and -sacrificed sacrifices the same day unto the LORD. - -6:16 And when the five lords of the Philistines had seen it, they -returned to Ekron the same day. - -6:17 And these are the golden emerods which the Philistines returned -for a trespass offering unto the LORD; for Ashdod one, for Gaza one, -for Askelon one, for Gath one, for Ekron one; 6:18 And the golden -mice, according to the number of all the cities of the Philistines -belonging to the five lords, both of fenced cities, and of country -villages, even unto the great stone of Abel, whereon they set down the -ark of the LORD: which stone remaineth unto this day in the field of -Joshua, the Bethshemite. - -6:19 And he smote the men of Bethshemesh, because they had looked into -the ark of the LORD, even he smote of the people fifty thousand and -threescore and ten men: and the people lamented, because the LORD had -smitten many of the people with a great slaughter. - -6:20 And the men of Bethshemesh said, Who is able to stand before this -holy LORD God? and to whom shall he go up from us? 6:21 And they sent -messengers to the inhabitants of Kirjathjearim, saying, The -Philistines have brought again the ark of the LORD; come ye down, and -fetch it up to you. - -7:1 And the men of Kirjathjearim came, and fetched up the ark of the -LORD, and brought it into the house of Abinadab in the hill, and -sanctified Eleazar his son to keep the ark of the LORD. - -7:2 And it came to pass, while the ark abode in Kirjathjearim, that -the time was long; for it was twenty years: and all the house of -Israel lamented after the LORD. - -7:3 And Samuel spake unto all the house of Israel, saying, If ye do -return unto the LORD with all your hearts, then put away the strange -gods and Ashtaroth from among you, and prepare your hearts unto the -LORD, and serve him only: and he will deliver you out of the hand of -the Philistines. - -7:4 Then the children of Israel did put away Baalim and Ashtaroth, and -served the LORD only. - -7:5 And Samuel said, Gather all Israel to Mizpeh, and I will pray for -you unto the LORD. - -7:6 And they gathered together to Mizpeh, and drew water, and poured -it out before the LORD, and fasted on that day, and said there, We -have sinned against the LORD. And Samuel judged the children of Israel -in Mizpeh. - -7:7 And when the Philistines heard that the children of Israel were -gathered together to Mizpeh, the lords of the Philistines went up -against Israel. And when the children of Israel heard it, they were -afraid of the Philistines. - -7:8 And the children of Israel said to Samuel, Cease not to cry unto -the LORD our God for us, that he will save us out of the hand of the -Philistines. - -7:9 And Samuel took a sucking lamb, and offered it for a burnt -offering wholly unto the LORD: and Samuel cried unto the LORD for -Israel; and the LORD heard him. - -7:10 And as Samuel was offering up the burnt offering, the Philistines -drew near to battle against Israel: but the LORD thundered with a -great thunder on that day upon the Philistines, and discomfited them; -and they were smitten before Israel. - -7:11 And the men of Israel went out of Mizpeh, and pursued the -Philistines, and smote them, until they came under Bethcar. - -7:12 Then Samuel took a stone, and set it between Mizpeh and Shen, and -called the name of it Ebenezer, saying, Hitherto hath the LORD helped -us. - -7:13 So the Philistines were subdued, and they came no more into the -coast of Israel: and the hand of the LORD was against the Philistines -all the days of Samuel. - -7:14 And the cities which the Philistines had taken from Israel were -restored to Israel, from Ekron even unto Gath; and the coasts thereof -did Israel deliver out of the hands of the Philistines. And there was -peace between Israel and the Amorites. - -7:15 And Samuel judged Israel all the days of his life. - -7:16 And he went from year to year in circuit to Bethel, and Gilgal, -and Mizpeh, and judged Israel in all those places. - -7:17 And his return was to Ramah; for there was his house; and there -he judged Israel; and there he built an altar unto the LORD. - -8:1 And it came to pass, when Samuel was old, that he made his sons -judges over Israel. - -8:2 Now the name of his firstborn was Joel; and the name of his -second, Abiah: they were judges in Beersheba. - -8:3 And his sons walked not in his ways, but turned aside after lucre, -and took bribes, and perverted judgment. - -8:4 Then all the elders of Israel gathered themselves together, and -came to Samuel unto Ramah, 8:5 And said unto him, Behold, thou art -old, and thy sons walk not in thy ways: now make us a king to judge us -like all the nations. - -8:6 But the thing displeased Samuel, when they said, Give us a king to -judge us. And Samuel prayed unto the LORD. - -8:7 And the LORD said unto Samuel, Hearken unto the voice of the -people in all that they say unto thee: for they have not rejected -thee, but they have rejected me, that I should not reign over them. - -8:8 According to all the works which they have done since the day that -I brought them up out of Egypt even unto this day, wherewith they have -forsaken me, and served other gods, so do they also unto thee. - -8:9 Now therefore hearken unto their voice: howbeit yet protest -solemnly unto them, and shew them the manner of the king that shall -reign over them. - -8:10 And Samuel told all the words of the LORD unto the people that -asked of him a king. - -8:11 And he said, This will be the manner of the king that shall reign -over you: He will take your sons, and appoint them for himself, for -his chariots, and to be his horsemen; and some shall run before his -chariots. - -8:12 And he will appoint him captains over thousands, and captains -over fifties; and will set them to ear his ground, and to reap his -harvest, and to make his instruments of war, and instruments of his -chariots. - -8:13 And he will take your daughters to be confectionaries, and to be -cooks, and to be bakers. - -8:14 And he will take your fields, and your vineyards, and your -oliveyards, even the best of them, and give them to his servants. - -8:15 And he will take the tenth of your seed, and of your vineyards, -and give to his officers, and to his servants. - -8:16 And he will take your menservants, and your maidservants, and -your goodliest young men, and your asses, and put them to his work. - -8:17 He will take the tenth of your sheep: and ye shall be his -servants. - -8:18 And ye shall cry out in that day because of your king which ye -shall have chosen you; and the LORD will not hear you in that day. - -8:19 Nevertheless the people refused to obey the voice of Samuel; and -they said, Nay; but we will have a king over us; 8:20 That we also may -be like all the nations; and that our king may judge us, and go out -before us, and fight our battles. - -8:21 And Samuel heard all the words of the people, and he rehearsed -them in the ears of the LORD. - -8:22 And the LORD said to Samuel, Hearken unto their voice, and make -them a king. And Samuel said unto the men of Israel, Go ye every man -unto his city. - -9:1 Now there was a man of Benjamin, whose name was Kish, the son of -Abiel, the son of Zeror, the son of Bechorath, the son of Aphiah, a -Benjamite, a mighty man of power. - -9:2 And he had a son, whose name was Saul, a choice young man, and a -goodly: and there was not among the children of Israel a goodlier -person than he: from his shoulders and upward he was higher than any -of the people. - -9:3 And the asses of Kish Saul's father were lost. And Kish said to -Saul his son, Take now one of the servants with thee, and arise, go -seek the asses. - -9:4 And he passed through mount Ephraim, and passed through the land -of Shalisha, but they found them not: then they passed through the -land of Shalim, and there they were not: and he passed through the -land of the Benjamites, but they found them not. - -9:5 And when they were come to the land of Zuph, Saul said to his -servant that was with him, Come, and let us return; lest my father -leave caring for the asses, and take thought for us. - -9:6 And he said unto him, Behold now, there is in this city a man of -God, and he is an honourable man; all that he saith cometh surely to -pass: now let us go thither; peradventure he can shew us our way that -we should go. - -9:7 Then said Saul to his servant, But, behold, if we go, what shall -we bring the man? for the bread is spent in our vessels, and there is -not a present to bring to the man of God: what have we? 9:8 And the -servant answered Saul again, and said, Behold, I have here at hand the -fourth part of a shekel of silver: that will I give to the man of God, -to tell us our way. - -9:9 (Beforetime in Israel, when a man went to enquire of God, thus he -spake, Come, and let us go to the seer: for he that is now called a -Prophet was beforetime called a Seer.) 9:10 Then said Saul to his -servant, Well said; come, let us go. So they went unto the city where -the man of God was. - -9:11 And as they went up the hill to the city, they found young -maidens going out to draw water, and said unto them, Is the seer here? -9:12 And they answered them, and said, He is; behold, he is before -you: make haste now, for he came to day to the city; for there is a -sacrifice of the people to day in the high place: 9:13 As soon as ye -be come into the city, ye shall straightway find him, before he go up -to the high place to eat: for the people will not eat until he come, -because he doth bless the sacrifice; and afterwards they eat that be -bidden. Now therefore get you up; for about this time ye shall find -him. - -9:14 And they went up into the city: and when they were come into the -city, behold, Samuel came out against them, for to go up to the high -place. - -9:15 Now the LORD had told Samuel in his ear a day before Saul came, -saying, 9:16 To morrow about this time I will send thee a man out of -the land of Benjamin, and thou shalt anoint him to be captain over my -people Israel, that he may save my people out of the hand of the -Philistines: for I have looked upon my people, because their cry is -come unto me. - -9:17 And when Samuel saw Saul, the LORD said unto him, Behold the man -whom I spake to thee of! this same shall reign over my people. - -9:18 Then Saul drew near to Samuel in the gate, and said, Tell me, I -pray thee, where the seer's house is. - -9:19 And Samuel answered Saul, and said, I am the seer: go up before -me unto the high place; for ye shall eat with me to day, and to morrow -I will let thee go, and will tell thee all that is in thine heart. - -9:20 And as for thine asses that were lost three days ago, set not thy -mind on them; for they are found. And on whom is all the desire of -Israel? Is it not on thee, and on all thy father's house? 9:21 And -Saul answered and said, Am not I a Benjamite, of the smallest of the -tribes of Israel? and my family the least of all the families of the -tribe of Benjamin? wherefore then speakest thou so to me? 9:22 And -Samuel took Saul and his servant, and brought them into the parlour, -and made them sit in the chiefest place among them that were bidden, -which were about thirty persons. - -9:23 And Samuel said unto the cook, Bring the portion which I gave -thee, of which I said unto thee, Set it by thee. - -9:24 And the cook took up the shoulder, and that which was upon it, -and set it before Saul. And Samuel said, Behold that which is left! -set it before thee, and eat: for unto this time hath it been kept for -thee since I said, I have invited the people. So Saul did eat with -Samuel that day. - -9:25 And when they were come down from the high place into the city, -Samuel communed with Saul upon the top of the house. - -9:26 And they arose early: and it came to pass about the spring of the -day, that Samuel called Saul to the top of the house, saying, Up, that -I may send thee away. And Saul arose, and they went out both of them, -he and Samuel, abroad. - -9:27 And as they were going down to the end of the city, Samuel said -to Saul, Bid the servant pass on before us, (and he passed on), but -stand thou still a while, that I may shew thee the word of God. - -10:1 Then Samuel took a vial of oil, and poured it upon his head, and -kissed him, and said, Is it not because the LORD hath anointed thee to -be captain over his inheritance? 10:2 When thou art departed from me -to day, then thou shalt find two men by Rachel's sepulchre in the -border of Benjamin at Zelzah; and they will say unto thee, The asses -which thou wentest to seek are found: and, lo, thy father hath left -the care of the asses, and sorroweth for you, saying, What shall I do -for my son? 10:3 Then shalt thou go on forward from thence, and thou -shalt come to the plain of Tabor, and there shall meet thee three men -going up to God to Bethel, one carrying three kids, and another -carrying three loaves of bread, and another carrying a bottle of wine: -10:4 And they will salute thee, and give thee two loaves of bread; -which thou shalt receive of their hands. - -10:5 After that thou shalt come to the hill of God, where is the -garrison of the Philistines: and it shall come to pass, when thou art -come thither to the city, that thou shalt meet a company of prophets -coming down from the high place with a psaltery, and a tabret, and a -pipe, and a harp, before them; and they shall prophesy: 10:6 And the -Spirit of the LORD will come upon thee, and thou shalt prophesy with -them, and shalt be turned into another man. - -10:7 And let it be, when these signs are come unto thee, that thou do -as occasion serve thee; for God is with thee. - -10:8 And thou shalt go down before me to Gilgal; and, behold, I will -come down unto thee, to offer burnt offerings, and to sacrifice -sacrifices of peace offerings: seven days shalt thou tarry, till I -come to thee, and shew thee what thou shalt do. - -10:9 And it was so, that when he had turned his back to go from -Samuel, God gave him another heart: and all those signs came to pass -that day. - -10:10 And when they came thither to the hill, behold, a company of -prophets met him; and the Spirit of God came upon him, and he -prophesied among them. - -10:11 And it came to pass, when all that knew him beforetime saw that, -behold, he prophesied among the prophets, then the people said one to -another, What is this that is come unto the son of Kish? Is Saul also -among the prophets? 10:12 And one of the same place answered and -said, But who is their father? Therefore it became a proverb, Is Saul -also among the prophets? 10:13 And when he had made an end of -prophesying, he came to the high place. - -10:14 And Saul's uncle said unto him and to his servant, Whither went -ye? And he said, To seek the asses: and when we saw that they were no -where, we came to Samuel. - -10:15 And Saul's uncle said, Tell me, I pray thee, what Samuel said -unto you. - -10:16 And Saul said unto his uncle, He told us plainly that the asses -were found. But of the matter of the kingdom, whereof Samuel spake, he -told him not. - -10:17 And Samuel called the people together unto the LORD to Mizpeh; -10:18 And said unto the children of Israel, Thus saith the LORD God of -Israel, I brought up Israel out of Egypt, and delivered you out of the -hand of the Egyptians, and out of the hand of all kingdoms, and of -them that oppressed you: 10:19 And ye have this day rejected your God, -who himself saved you out of all your adversities and your -tribulations; and ye have said unto him, Nay, but set a king over us. -Now therefore present yourselves before the LORD by your tribes, and -by your thousands. - -10:20 And when Samuel had caused all the tribes of Israel to come -near, the tribe of Benjamin was taken. - -10:21 When he had caused the tribe of Benjamin to come near by their -families, the family of Matri was taken, and Saul the son of Kish was -taken: and when they sought him, he could not be found. - -10:22 Therefore they enquired of the LORD further, if the man should -yet come thither. And the LORD answered, Behold he hath hid himself -among the stuff. - -10:23 And they ran and fetched him thence: and when he stood among the -people, he was higher than any of the people from his shoulders and -upward. - -10:24 And Samuel said to all the people, See ye him whom the LORD hath -chosen, that there is none like him among all the people? And all the -people shouted, and said, God save the king. - -10:25 Then Samuel told the people the manner of the kingdom, and wrote -it in a book, and laid it up before the LORD. And Samuel sent all the -people away, every man to his house. - -10:26 And Saul also went home to Gibeah; and there went with him a -band of men, whose hearts God had touched. - -10:27 But the children of Belial said, How shall this man save us? And -they despised him, and brought no presents. But he held his peace. - -11:1 Then Nahash the Ammonite came up, and encamped against -Jabeshgilead: and all the men of Jabesh said unto Nahash, Make a -covenant with us, and we will serve thee. - -11:2 And Nahash the Ammonite answered them, On this condition will I -make a covenant with you, that I may thrust out all your right eyes, -and lay it for a reproach upon all Israel. - -11:3 And the elders of Jabesh said unto him, Give us seven days' -respite, that we may send messengers unto all the coasts of Israel: -and then, if there be no man to save us, we will come out to thee. - -11:4 Then came the messengers to Gibeah of Saul, and told the tidings -in the ears of the people: and all the people lifted up their voices, -and wept. - -11:5 And, behold, Saul came after the herd out of the field; and Saul -said, What aileth the people that they weep? And they told him the -tidings of the men of Jabesh. - -11:6 And the Spirit of God came upon Saul when he heard those tidings, -and his anger was kindled greatly. - -11:7 And he took a yoke of oxen, and hewed them in pieces, and sent -them throughout all the coasts of Israel by the hands of messengers, -saying, Whosoever cometh not forth after Saul and after Samuel, so -shall it be done unto his oxen. And the fear of the LORD fell on the -people, and they came out with one consent. - -11:8 And when he numbered them in Bezek, the children of Israel were -three hundred thousand, and the men of Judah thirty thousand. - -11:9 And they said unto the messengers that came, Thus shall ye say -unto the men of Jabeshgilead, To morrow, by that time the sun be hot, -ye shall have help. And the messengers came and shewed it to the men -of Jabesh; and they were glad. - -11:10 Therefore the men of Jabesh said, To morrow we will come out -unto you, and ye shall do with us all that seemeth good unto you. - -11:11 And it was so on the morrow, that Saul put the people in three -companies; and they came into the midst of the host in the morning -watch, and slew the Ammonites until the heat of the day: and it came -to pass, that they which remained were scattered, so that two of them -were not left together. - -11:12 And the people said unto Samuel, Who is he that said, Shall Saul -reign over us? bring the men, that we may put them to death. - -11:13 And Saul said, There shall not a man be put to death this day: -for to day the LORD hath wrought salvation in Israel. - -11:14 Then said Samuel to the people, Come, and let us go to Gilgal, -and renew the kingdom there. - -11:15 And all the people went to Gilgal; and there they made Saul king -before the LORD in Gilgal; and there they sacrificed sacrifices of -peace offerings before the LORD; and there Saul and all the men of -Israel rejoiced greatly. - -12:1 And Samuel said unto all Israel, Behold, I have hearkened unto -your voice in all that ye said unto me, and have made a king over you. - -12:2 And now, behold, the king walketh before you: and I am old and -grayheaded; and, behold, my sons are with you: and I have walked -before you from my childhood unto this day. - -12:3 Behold, here I am: witness against me before the LORD, and before -his anointed: whose ox have I taken? or whose ass have I taken? or -whom have I defrauded? whom have I oppressed? or of whose hand have I -received any bribe to blind mine eyes therewith? and I will restore it -you. - -12:4 And they said, Thou hast not defrauded us, nor oppressed us, -neither hast thou taken ought of any man's hand. - -12:5 And he said unto them, The LORD is witness against you, and his -anointed is witness this day, that ye have not found ought in my hand. -And they answered, He is witness. - -12:6 And Samuel said unto the people, It is the LORD that advanced -Moses and Aaron, and that brought your fathers up out of the land of -Egypt. - -12:7 Now therefore stand still, that I may reason with you before the -LORD of all the righteous acts of the LORD, which he did to you and to -your fathers. - -12:8 When Jacob was come into Egypt, and your fathers cried unto the -LORD, then the LORD sent Moses and Aaron, which brought forth your -fathers out of Egypt, and made them dwell in this place. - -12:9 And when they forgat the LORD their God, he sold them into the -hand of Sisera, captain of the host of Hazor, and into the hand of the -Philistines, and into the hand of the king of Moab, and they fought -against them. - -12:10 And they cried unto the LORD, and said, We have sinned, because -we have forsaken the LORD, and have served Baalim and Ashtaroth: but -now deliver us out of the hand of our enemies, and we will serve thee. - -12:11 And the LORD sent Jerubbaal, and Bedan, and Jephthah, and -Samuel, and delivered you out of the hand of your enemies on every -side, and ye dwelled safe. - -12:12 And when ye saw that Nahash the king of the children of Ammon -came against you, ye said unto me, Nay; but a king shall reign over -us: when the LORD your God was your king. - -12:13 Now therefore behold the king whom ye have chosen, and whom ye -have desired! and, behold, the LORD hath set a king over you. - -12:14 If ye will fear the LORD, and serve him, and obey his voice, and -not rebel against the commandment of the LORD, then shall both ye and -also the king that reigneth over you continue following the LORD your -God: 12:15 But if ye will not obey the voice of the LORD, but rebel -against the commandment of the LORD, then shall the hand of the LORD -be against you, as it was against your fathers. - -12:16 Now therefore stand and see this great thing, which the LORD -will do before your eyes. - -12:17 Is it not wheat harvest to day? I will call unto the LORD, and -he shall send thunder and rain; that ye may perceive and see that your -wickedness is great, which ye have done in the sight of the LORD, in -asking you a king. - -12:18 So Samuel called unto the LORD; and the LORD sent thunder and -rain that day: and all the people greatly feared the LORD and Samuel. - -12:19 And all the people said unto Samuel, Pray for thy servants unto -the LORD thy God, that we die not: for we have added unto all our sins -this evil, to ask us a king. - -12:20 And Samuel said unto the people, Fear not: ye have done all this -wickedness: yet turn not aside from following the LORD, but serve the -LORD with all your heart; 12:21 And turn ye not aside: for then should -ye go after vain things, which cannot profit nor deliver; for they are -vain. - -12:22 For the LORD will not forsake his people for his great name's -sake: because it hath pleased the LORD to make you his people. - -12:23 Moreover as for me, God forbid that I should sin against the -LORD in ceasing to pray for you: but I will teach you the good and the -right way: 12:24 Only fear the LORD, and serve him in truth with all -your heart: for consider how great things he hath done for you. - -12:25 But if ye shall still do wickedly, ye shall be consumed, both ye -and your king. - -13:1 Saul reigned one year; and when he had reigned two years over -Israel, 13:2 Saul chose him three thousand men of Israel; whereof two -thousand were with Saul in Michmash and in mount Bethel, and a -thousand were with Jonathan in Gibeah of Benjamin: and the rest of the -people he sent every man to his tent. - -13:3 And Jonathan smote the garrison of the Philistines that was in -Geba, and the Philistines heard of it. And Saul blew the trumpet -throughout all the land, saying, Let the Hebrews hear. - -13:4 And all Israel heard say that Saul had smitten a garrison of the -Philistines, and that Israel also was had in abomination with the -Philistines. And the people were called together after Saul to Gilgal. - -13:5 And the Philistines gathered themselves together to fight with -Israel, thirty thousand chariots, and six thousand horsemen, and -people as the sand which is on the sea shore in multitude: and they -came up, and pitched in Michmash, eastward from Bethaven. - -13:6 When the men of Israel saw that they were in a strait, (for the -people were distressed,) then the people did hide themselves in caves, -and in thickets, and in rocks, and in high places, and in pits. - -13:7 And some of the Hebrews went over Jordan to the land of Gad and -Gilead. As for Saul, he was yet in Gilgal, and all the people followed -him trembling. - -13:8 And he tarried seven days, according to the set time that Samuel -had appointed: but Samuel came not to Gilgal; and the people were -scattered from him. - -13:9 And Saul said, Bring hither a burnt offering to me, and peace -offerings. And he offered the burnt offering. - -13:10 And it came to pass, that as soon as he had made an end of -offering the burnt offering, behold, Samuel came; and Saul went out to -meet him, that he might salute him. - -13:11 And Samuel said, What hast thou done? And Saul said, Because I -saw that the people were scattered from me, and that thou camest not -within the days appointed, and that the Philistines gathered -themselves together at Michmash; 13:12 Therefore said I, The -Philistines will come down now upon me to Gilgal, and I have not made -supplication unto the LORD: I forced myself therefore, and offered a -burnt offering. - -13:13 And Samuel said to Saul, Thou hast done foolishly: thou hast not -kept the commandment of the LORD thy God, which he commanded thee: for -now would the LORD have established thy kingdom upon Israel for ever. - -13:14 But now thy kingdom shall not continue: the LORD hath sought him -a man after his own heart, and the LORD hath commanded him to be -captain over his people, because thou hast not kept that which the -LORD commanded thee. - -13:15 And Samuel arose, and gat him up from Gilgal unto Gibeah of -Benjamin. And Saul numbered the people that were present with him, -about six hundred men. - -13:16 And Saul, and Jonathan his son, and the people that were present -with them, abode in Gibeah of Benjamin: but the Philistines encamped -in Michmash. - -13:17 And the spoilers came out of the camp of the Philistines in -three companies: one company turned unto the way that leadeth to -Ophrah, unto the land of Shual: 13:18 And another company turned the -way to Bethhoron: and another company turned to the way of the border -that looketh to the valley of Zeboim toward the wilderness. - -13:19 Now there was no smith found throughout all the land of Israel: -for the Philistines said, Lest the Hebrews make them swords or spears: -13:20 But all the Israelites went down to the Philistines, to sharpen -every man his share, and his coulter, and his axe, and his mattock. - -13:21 Yet they had a file for the mattocks, and for the coulters, and -for the forks, and for the axes, and to sharpen the goads. - -13:22 So it came to pass in the day of battle, that there was neither -sword nor spear found in the hand of any of the people that were with -Saul and Jonathan: but with Saul and with Jonathan his son was there -found. - -13:23 And the garrison of the Philistines went out to the passage of -Michmash. - -14:1 Now it came to pass upon a day, that Jonathan the son of Saul -said unto the young man that bare his armour, Come, and let us go over -to the Philistines' garrison, that is on the other side. But he told -not his father. - -14:2 And Saul tarried in the uttermost part of Gibeah under a -pomegranate tree which is in Migron: and the people that were with him -were about six hundred men; 14:3 And Ahiah, the son of Ahitub, -Ichabod's brother, the son of Phinehas, the son of Eli, the LORD's -priest in Shiloh, wearing an ephod. And the people knew not that -Jonathan was gone. - -14:4 And between the passages, by which Jonathan sought to go over -unto the Philistines' garrison, there was a sharp rock on the one -side, and a sharp rock on the other side: and the name of the one was -Bozez, and the name of the other Seneh. - -14:5 The forefront of the one was situate northward over against -Michmash, and the other southward over against Gibeah. - -14:6 And Jonathan said to the young man that bare his armour, Come, -and let us go over unto the garrison of these uncircumcised: it may be -that the LORD will work for us: for there is no restraint to the LORD -to save by many or by few. - -14:7 And his armourbearer said unto him, Do all that is in thine -heart: turn thee; behold, I am with thee according to thy heart. - -14:8 Then said Jonathan, Behold, we will pass over unto these men, and -we will discover ourselves unto them. - -14:9 If they say thus unto us, Tarry until we come to you; then we -will stand still in our place, and will not go up unto them. - -14:10 But if they say thus, Come up unto us; then we will go up: for -the LORD hath delivered them into our hand: and this shall be a sign -unto us. - -14:11 And both of them discovered themselves unto the garrison of the -Philistines: and the Philistines said, Behold, the Hebrews come forth -out of the holes where they had hid themselves. - -14:12 And the men of the garrison answered Jonathan and his -armourbearer, and said, Come up to us, and we will shew you a thing. -And Jonathan said unto his armourbearer, Come up after me: for the -LORD hath delivered them into the hand of Israel. - -14:13 And Jonathan climbed up upon his hands and upon his feet, and -his armourbearer after him: and they fell before Jonathan; and his -armourbearer slew after him. - -14:14 And that first slaughter, which Jonathan and his armourbearer -made, was about twenty men, within as it were an half acre of land, -which a yoke of oxen might plow. - -14:15 And there was trembling in the host, in the field, and among all -the people: the garrison, and the spoilers, they also trembled, and -the earth quaked: so it was a very great trembling. - -14:16 And the watchmen of Saul in Gibeah of Benjamin looked; and, -behold, the multitude melted away, and they went on beating down one -another. - -14:17 Then said Saul unto the people that were with him, Number now, -and see who is gone from us. And when they had numbered, behold, -Jonathan and his armourbearer were not there. - -14:18 And Saul said unto Ahiah, Bring hither the ark of God. For the -ark of God was at that time with the children of Israel. - -14:19 And it came to pass, while Saul talked unto the priest, that the -noise that was in the host of the Philistines went on and increased: -and Saul said unto the priest, Withdraw thine hand. - -14:20 And Saul and all the people that were with him assembled -themselves, and they came to the battle: and, behold, every man's -sword was against his fellow, and there was a very great discomfiture. - -14:21 Moreover the Hebrews that were with the Philistines before that -time, which went up with them into the camp from the country round -about, even they also turned to be with the Israelites that were with -Saul and Jonathan. - -14:22 Likewise all the men of Israel which had hid themselves in mount -Ephraim, when they heard that the Philistines fled, even they also -followed hard after them in the battle. - -14:23 So the LORD saved Israel that day: and the battle passed over -unto Bethaven. - -14:24 And the men of Israel were distressed that day: for Saul had -adjured the people, saying, Cursed be the man that eateth any food -until evening, that I may be avenged on mine enemies. So none of the -people tasted any food. - -14:25 And all they of the land came to a wood; and there was honey -upon the ground. - -14:26 And when the people were come into the wood, behold, the honey -dropped; but no man put his hand to his mouth: for the people feared -the oath. - -14:27 But Jonathan heard not when his father charged the people with -the oath: wherefore he put forth the end of the rod that was in his -hand, and dipped it in an honeycomb, and put his hand to his mouth; -and his eyes were enlightened. - -14:28 Then answered one of the people, and said, Thy father straitly -charged the people with an oath, saying, Cursed be the man that eateth -any food this day. And the people were faint. - -14:29 Then said Jonathan, My father hath troubled the land: see, I -pray you, how mine eyes have been enlightened, because I tasted a -little of this honey. - -14:30 How much more, if haply the people had eaten freely to day of -the spoil of their enemies which they found? for had there not been -now a much greater slaughter among the Philistines? 14:31 And they -smote the Philistines that day from Michmash to Aijalon: and the -people were very faint. - -14:32 And the people flew upon the spoil, and took sheep, and oxen, -and calves, and slew them on the ground: and the people did eat them -with the blood. - -14:33 Then they told Saul, saying, Behold, the people sin against the -LORD, in that they eat with the blood. And he said, Ye have -transgressed: roll a great stone unto me this day. - -14:34 And Saul said, Disperse yourselves among the people, and say -unto them, Bring me hither every man his ox, and every man his sheep, -and slay them here, and eat; and sin not against the LORD in eating -with the blood. - -And all the people brought every man his ox with him that night, and -slew them there. - -14:35 And Saul built an altar unto the LORD: the same was the first -altar that he built unto the LORD. - -14:36 And Saul said, Let us go down after the Philistines by night, -and spoil them until the morning light, and let us not leave a man of -them. And they said, Do whatsoever seemeth good unto thee. Then said -the priest, Let us draw near hither unto God. - -14:37 And Saul asked counsel of God, Shall I go down after the -Philistines? wilt thou deliver them into the hand of Israel? But he -answered him not that day. - -14:38 And Saul said, Draw ye near hither, all the chief of the people: -and know and see wherein this sin hath been this day. - -14:39 For, as the LORD liveth, which saveth Israel, though it be in -Jonathan my son, he shall surely die. But there was not a man among -all the people that answered him. - -14:40 Then said he unto all Israel, Be ye on one side, and I and -Jonathan my son will be on the other side. And the people said unto -Saul, Do what seemeth good unto thee. - -14:41 Therefore Saul said unto the LORD God of Israel, Give a perfect -lot. - -And Saul and Jonathan were taken: but the people escaped. - -14:42 And Saul said, Cast lots between me and Jonathan my son. And -Jonathan was taken. - -14:43 Then Saul said to Jonathan, Tell me what thou hast done. And -Jonathan told him, and said, I did but taste a little honey with the -end of the rod that was in mine hand, and, lo, I must die. - -14:44 And Saul answered, God do so and more also: for thou shalt -surely die, Jonathan. - -14:45 And the people said unto Saul, Shall Jonathan die, who hath -wrought this great salvation in Israel? God forbid: as the LORD -liveth, there shall not one hair of his head fall to the ground; for -he hath wrought with God this day. So the people rescued Jonathan, -that he died not. - -14:46 Then Saul went up from following the Philistines: and the -Philistines went to their own place. - -14:47 So Saul took the kingdom over Israel, and fought against all his -enemies on every side, against Moab, and against the children of -Ammon, and against Edom, and against the kings of Zobah, and against -the Philistines: and whithersoever he turned himself, he vexed them. - -14:48 And he gathered an host, and smote the Amalekites, and delivered -Israel out of the hands of them that spoiled them. - -14:49 Now the sons of Saul were Jonathan, and Ishui, and Melchishua: -and the names of his two daughters were these; the name of the -firstborn Merab, and the name of the younger Michal: 14:50 And the -name of Saul's wife was Ahinoam, the daughter of Ahimaaz: and the name -of the captain of his host was Abner, the son of Ner, Saul's uncle. - -14:51 And Kish was the father of Saul; and Ner the father of Abner was -the son of Abiel. - -14:52 And there was sore war against the Philistines all the days of -Saul: and when Saul saw any strong man, or any valiant man, he took -him unto him. - -15:1 Samuel also said unto Saul, The LORD sent me to anoint thee to be -king over his people, over Israel: now therefore hearken thou unto the -voice of the words of the LORD. - -15:2 Thus saith the LORD of hosts, I remember that which Amalek did to -Israel, how he laid wait for him in the way, when he came up from -Egypt. - -15:3 Now go and smite Amalek, and utterly destroy all that they have, -and spare them not; but slay both man and woman, infant and suckling, -ox and sheep, camel and ass. - -15:4 And Saul gathered the people together, and numbered them in -Telaim, two hundred thousand footmen, and ten thousand men of Judah. - -15:5 And Saul came to a city of Amalek, and laid wait in the valley. - -15:6 And Saul said unto the Kenites, Go, depart, get you down from -among the Amalekites, lest I destroy you with them: for ye shewed -kindness to all the children of Israel, when they came up out of -Egypt. So the Kenites departed from among the Amalekites. - -15:7 And Saul smote the Amalekites from Havilah until thou comest to -Shur, that is over against Egypt. - -15:8 And he took Agag the king of the Amalekites alive, and utterly -destroyed all the people with the edge of the sword. - -15:9 But Saul and the people spared Agag, and the best of the sheep, -and of the oxen, and of the fatlings, and the lambs, and all that was -good, and would not utterly destroy them: but every thing that was -vile and refuse, that they destroyed utterly. - -15:10 Then came the word of the LORD unto Samuel, saying, 15:11 It -repenteth me that I have set up Saul to be king: for he is turned back -from following me, and hath not performed my commandments. And it -grieved Samuel; and he cried unto the LORD all night. - -15:12 And when Samuel rose early to meet Saul in the morning, it was -told Samuel, saying, Saul came to Carmel, and, behold, he set him up a -place, and is gone about, and passed on, and gone down to Gilgal. - -15:13 And Samuel came to Saul: and Saul said unto him, Blessed be thou -of the LORD: I have performed the commandment of the LORD. - -15:14 And Samuel said, What meaneth then this bleating of the sheep in -mine ears, and the lowing of the oxen which I hear? 15:15 And Saul -said, They have brought them from the Amalekites: for the people -spared the best of the sheep and of the oxen, to sacrifice unto the -LORD thy God; and the rest we have utterly destroyed. - -15:16 Then Samuel said unto Saul, Stay, and I will tell thee what the -LORD hath said to me this night. And he said unto him, Say on. - -15:17 And Samuel said, When thou wast little in thine own sight, wast -thou not made the head of the tribes of Israel, and the LORD anointed -thee king over Israel? 15:18 And the LORD sent thee on a journey, and -said, Go and utterly destroy the sinners the Amalekites, and fight -against them until they be consumed. - -15:19 Wherefore then didst thou not obey the voice of the LORD, but -didst fly upon the spoil, and didst evil in the sight of the LORD? -15:20 And Saul said unto Samuel, Yea, I have obeyed the voice of the -LORD, and have gone the way which the LORD sent me, and have brought -Agag the king of Amalek, and have utterly destroyed the Amalekites. - -15:21 But the people took of the spoil, sheep and oxen, the chief of -the things which should have been utterly destroyed, to sacrifice unto -the LORD thy God in Gilgal. - -15:22 And Samuel said, Hath the LORD as great delight in burnt -offerings and sacrifices, as in obeying the voice of the LORD? Behold, -to obey is better than sacrifice, and to hearken than the fat of rams. - -15:23 For rebellion is as the sin of witchcraft, and stubbornness is -as iniquity and idolatry. Because thou hast rejected the word of the -LORD, he hath also rejected thee from being king. - -15:24 And Saul said unto Samuel, I have sinned: for I have -transgressed the commandment of the LORD, and thy words: because I -feared the people, and obeyed their voice. - -15:25 Now therefore, I pray thee, pardon my sin, and turn again with -me, that I may worship the LORD. - -15:26 And Samuel said unto Saul, I will not return with thee: for thou -hast rejected the word of the LORD, and the LORD hath rejected thee -from being king over Israel. - -15:27 And as Samuel turned about to go away, he laid hold upon the -skirt of his mantle, and it rent. - -15:28 And Samuel said unto him, The LORD hath rent the kingdom of -Israel from thee this day, and hath given it to a neighbour of thine, -that is better than thou. - -15:29 And also the Strength of Israel will not lie nor repent: for he -is not a man, that he should repent. - -15:30 Then he said, I have sinned: yet honour me now, I pray thee, -before the elders of my people, and before Israel, and turn again with -me, that I may worship the LORD thy God. - -15:31 So Samuel turned again after Saul; and Saul worshipped the LORD. - -15:32 Then said Samuel, Bring ye hither to me Agag the king of the -Amalekites. And Agag came unto him delicately. And Agag said, Surely -the bitterness of death is past. - -15:33 And Samuel said, As the sword hath made women childless, so -shall thy mother be childless among women. And Samuel hewed Agag in -pieces before the LORD in Gilgal. - -15:34 Then Samuel went to Ramah; and Saul went up to his house to -Gibeah of Saul. - -15:35 And Samuel came no more to see Saul until the day of his death: -nevertheless Samuel mourned for Saul: and the LORD repented that he -had made Saul king over Israel. - -16:1 And the LORD said unto Samuel, How long wilt thou mourn for Saul, -seeing I have rejected him from reigning over Israel? fill thine horn -with oil, and go, I will send thee to Jesse the Bethlehemite: for I -have provided me a king among his sons. - -16:2 And Samuel said, How can I go? if Saul hear it, he will kill me. -And the LORD said, Take an heifer with thee, and say, I am come to -sacrifice to the LORD. - -16:3 And call Jesse to the sacrifice, and I will shew thee what thou -shalt do: and thou shalt anoint unto me him whom I name unto thee. - -16:4 And Samuel did that which the LORD spake, and came to Bethlehem. -And the elders of the town trembled at his coming, and said, Comest -thou peaceably? 16:5 And he said, Peaceably: I am come to sacrifice -unto the LORD: sanctify yourselves, and come with me to the sacrifice. -And he sanctified Jesse and his sons, and called them to the -sacrifice. - -16:6 And it came to pass, when they were come, that he looked on -Eliab, and said, Surely the LORD's anointed is before him. - -16:7 But the LORD said unto Samuel, Look not on his countenance, or on -the height of his stature; because I have refused him: for the LORD -seeth not as man seeth; for man looketh on the outward appearance, but -the LORD looketh on the heart. - -16:8 Then Jesse called Abinadab, and made him pass before Samuel. And -he said, Neither hath the LORD chosen this. - -16:9 Then Jesse made Shammah to pass by. And he said, Neither hath the -LORD chosen this. - -16:10 Again, Jesse made seven of his sons to pass before Samuel. And -Samuel said unto Jesse, The LORD hath not chosen these. - -16:11 And Samuel said unto Jesse, Are here all thy children? And he -said, There remaineth yet the youngest, and, behold, he keepeth the -sheep. And Samuel said unto Jesse, Send and fetch him: for we will not -sit down till he come hither. - -16:12 And he sent, and brought him in. Now he was ruddy, and withal of -a beautiful countenance, and goodly to look to. And the LORD said, -Arise, anoint him: for this is he. - -16:13 Then Samuel took the horn of oil, and anointed him in the midst -of his brethren: and the Spirit of the LORD came upon David from that -day forward. So Samuel rose up, and went to Ramah. - -16:14 But the Spirit of the LORD departed from Saul, and an evil -spirit from the LORD troubled him. - -16:15 And Saul's servants said unto him, Behold now, an evil spirit -from God troubleth thee. - -16:16 Let our lord now command thy servants, which are before thee, to -seek out a man, who is a cunning player on an harp: and it shall come -to pass, when the evil spirit from God is upon thee, that he shall -play with his hand, and thou shalt be well. - -16:17 And Saul said unto his servants, Provide me now a man that can -play well, and bring him to me. - -16:18 Then answered one of the servants, and said, Behold, I have seen -a son of Jesse the Bethlehemite, that is cunning in playing, and a -mighty valiant man, and a man of war, and prudent in matters, and a -comely person, and the LORD is with him. - -16:19 Wherefore Saul sent messengers unto Jesse, and said, Send me -David thy son, which is with the sheep. - -16:20 And Jesse took an ass laden with bread, and a bottle of wine, -and a kid, and sent them by David his son unto Saul. - -16:21 And David came to Saul, and stood before him: and he loved him -greatly; and he became his armourbearer. - -16:22 And Saul sent to Jesse, saying, Let David, I pray thee, stand -before me; for he hath found favour in my sight. - -16:23 And it came to pass, when the evil spirit from God was upon -Saul, that David took an harp, and played with his hand: so Saul was -refreshed, and was well, and the evil spirit departed from him. - -17:1 Now the Philistines gathered together their armies to battle, and -were gathered together at Shochoh, which belongeth to Judah, and -pitched between Shochoh and Azekah, in Ephesdammim. - -17:2 And Saul and the men of Israel were gathered together, and -pitched by the valley of Elah, and set the battle in array against the -Philistines. - -17:3 And the Philistines stood on a mountain on the one side, and -Israel stood on a mountain on the other side: and there was a valley -between them. - -17:4 And there went out a champion out of the camp of the Philistines, -named Goliath, of Gath, whose height was six cubits and a span. - -17:5 And he had an helmet of brass upon his head, and he was armed -with a coat of mail; and the weight of the coat was five thousand -shekels of brass. - -17:6 And he had greaves of brass upon his legs, and a target of brass -between his shoulders. - -17:7 And the staff of his spear was like a weaver's beam; and his -spear's head weighed six hundred shekels of iron: and one bearing a -shield went before him. - -17:8 And he stood and cried unto the armies of Israel, and said unto -them, Why are ye come out to set your battle in array? am not I a -Philistine, and ye servants to Saul? choose you a man for you, and let -him come down to me. - -17:9 If he be able to fight with me, and to kill me, then will we be -your servants: but if I prevail against him, and kill him, then shall -ye be our servants, and serve us. - -17:10 And the Philistine said, I defy the armies of Israel this day; -give me a man, that we may fight together. - -17:11 When Saul and all Israel heard those words of the Philistine, -they were dismayed, and greatly afraid. - -17:12 Now David was the son of that Ephrathite of Bethlehemjudah, -whose name was Jesse; and he had eight sons: and the man went among -men for an old man in the days of Saul. - -17:13 And the three eldest sons of Jesse went and followed Saul to the -battle: and the names of his three sons that went to the battle were -Eliab the firstborn, and next unto him Abinadab, and the third -Shammah. - -17:14 And David was the youngest: and the three eldest followed Saul. - -17:15 But David went and returned from Saul to feed his father's sheep -at Bethlehem. - -17:16 And the Philistine drew near morning and evening, and presented -himself forty days. - -17:17 And Jesse said unto David his son, Take now for thy brethren an -ephah of this parched corn, and these ten loaves, and run to the camp -of thy brethren; 17:18 And carry these ten cheeses unto the captain of -their thousand, and look how thy brethren fare, and take their pledge. - -17:19 Now Saul, and they, and all the men of Israel, were in the -valley of Elah, fighting with the Philistines. - -17:20 And David rose up early in the morning, and left the sheep with -a keeper, and took, and went, as Jesse had commanded him; and he came -to the trench, as the host was going forth to the fight, and shouted -for the battle. - -17:21 For Israel and the Philistines had put the battle in array, army -against army. - -17:22 And David left his carriage in the hand of the keeper of the -carriage, and ran into the army, and came and saluted his brethren. - -17:23 And as he talked with them, behold, there came up the champion, -the Philistine of Gath, Goliath by name, out of the armies of the -Philistines, and spake according to the same words: and David heard -them. - -17:24 And all the men of Israel, when they saw the man, fled from him, -and were sore afraid. - -17:25 And the men of Israel said, Have ye seen this man that is come -up? surely to defy Israel is he come up: and it shall be, that the -man who killeth him, the king will enrich him with great riches, and -will give him his daughter, and make his father's house free in -Israel. - -17:26 And David spake to the men that stood by him, saying, What shall -be done to the man that killeth this Philistine, and taketh away the -reproach from Israel? for who is this uncircumcised Philistine, that -he should defy the armies of the living God? 17:27 And the people -answered him after this manner, saying, So shall it be done to the man -that killeth him. - -17:28 And Eliab his eldest brother heard when he spake unto the men; -and Eliab's anger was kindled against David, and he said, Why camest -thou down hither? and with whom hast thou left those few sheep in the -wilderness? I know thy pride, and the naughtiness of thine heart; for -thou art come down that thou mightest see the battle. - -17:29 And David said, What have I now done? Is there not a cause? -17:30 And he turned from him toward another, and spake after the same -manner: and the people answered him again after the former manner. - -17:31 And when the words were heard which David spake, they rehearsed -them before Saul: and he sent for him. - -17:32 And David said to Saul, Let no man's heart fail because of him; -thy servant will go and fight with this Philistine. - -17:33 And Saul said to David, Thou art not able to go against this -Philistine to fight with him: for thou art but a youth, and he a man -of war from his youth. - -17:34 And David said unto Saul, Thy servant kept his father's sheep, -and there came a lion, and a bear, and took a lamb out of the flock: -17:35 And I went out after him, and smote him, and delivered it out of -his mouth: and when he arose against me, I caught him by his beard, -and smote him, and slew him. - -17:36 Thy servant slew both the lion and the bear: and this -uncircumcised Philistine shall be as one of them, seeing he hath -defied the armies of the living God. - -17:37 David said moreover, The LORD that delivered me out of the paw -of the lion, and out of the paw of the bear, he will deliver me out of -the hand of this Philistine. And Saul said unto David, Go, and the -LORD be with thee. - -17:38 And Saul armed David with his armour, and he put an helmet of -brass upon his head; also he armed him with a coat of mail. - -17:39 And David girded his sword upon his armour, and he assayed to -go; for he had not proved it. And David said unto Saul, I cannot go -with these; for I have not proved them. And David put them off him. - -17:40 And he took his staff in his hand, and chose him five smooth -stones out of the brook, and put them in a shepherd's bag which he -had, even in a scrip; and his sling was in his hand: and he drew near -to the Philistine. - -17:41 And the Philistine came on and drew near unto David; and the man -that bare the shield went before him. - -17:42 And when the Philistine looked about, and saw David, he -disdained him: for he was but a youth, and ruddy, and of a fair -countenance. - -17:43 And the Philistine said unto David, Am I a dog, that thou comest -to me with staves? And the Philistine cursed David by his gods. - -17:44 And the Philistine said to David, Come to me, and I will give -thy flesh unto the fowls of the air, and to the beasts of the field. - -17:45 Then said David to the Philistine, Thou comest to me with a -sword, and with a spear, and with a shield: but I come to thee in the -name of the LORD of hosts, the God of the armies of Israel, whom thou -hast defied. - -17:46 This day will the LORD deliver thee into mine hand; and I will -smite thee, and take thine head from thee; and I will give the -carcases of the host of the Philistines this day unto the fowls of the -air, and to the wild beasts of the earth; that all the earth may know -that there is a God in Israel. - -17:47 And all this assembly shall know that the LORD saveth not with -sword and spear: for the battle is the LORD's, and he will give you -into our hands. - -17:48 And it came to pass, when the Philistine arose, and came, and -drew nigh to meet David, that David hastened, and ran toward the army -to meet the Philistine. - -17:49 And David put his hand in his bag, and took thence a stone, and -slang it, and smote the Philistine in his forehead, that the stone -sunk into his forehead; and he fell upon his face to the earth. - -17:50 So David prevailed over the Philistine with a sling and with a -stone, and smote the Philistine, and slew him; but there was no sword -in the hand of David. - -17:51 Therefore David ran, and stood upon the Philistine, and took his -sword, and drew it out of the sheath thereof, and slew him, and cut -off his head therewith. And when the Philistines saw their champion -was dead, they fled. - -17:52 And the men of Israel and of Judah arose, and shouted, and -pursued the Philistines, until thou come to the valley, and to the -gates of Ekron. - -And the wounded of the Philistines fell down by the way to Shaaraim, -even unto Gath, and unto Ekron. - -17:53 And the children of Israel returned from chasing after the -Philistines, and they spoiled their tents. - -17:54 And David took the head of the Philistine, and brought it to -Jerusalem; but he put his armour in his tent. - -17:55 And when Saul saw David go forth against the Philistine, he said -unto Abner, the captain of the host, Abner, whose son is this youth? -And Abner said, As thy soul liveth, O king, I cannot tell. - -17:56 And the king said, Enquire thou whose son the stripling is. - -17:57 And as David returned from the slaughter of the Philistine, -Abner took him, and brought him before Saul with the head of the -Philistine in his hand. - -17:58 And Saul said to him, Whose son art thou, thou young man? And -David answered, I am the son of thy servant Jesse the Bethlehemite. - -18:1 And it came to pass, when he had made an end of speaking unto -Saul, that the soul of Jonathan was knit with the soul of David, and -Jonathan loved him as his own soul. - -18:2 And Saul took him that day, and would let him go no more home to -his father's house. - -18:3 Then Jonathan and David made a covenant, because he loved him as -his own soul. - -18:4 And Jonathan stripped himself of the robe that was upon him, and -gave it to David, and his garments, even to his sword, and to his bow, -and to his girdle. - -18:5 And David went out whithersoever Saul sent him, and behaved -himself wisely: and Saul set him over the men of war, and he was -accepted in the sight of all the people, and also in the sight of -Saul's servants. - -18:6 And it came to pass as they came, when David was returned from -the slaughter of the Philistine, that the women came out of all cities -of Israel, singing and dancing, to meet king Saul, with tabrets, with -joy, and with instruments of musick. - -18:7 And the women answered one another as they played, and said, Saul -hath slain his thousands, and David his ten thousands. - -18:8 And Saul was very wroth, and the saying displeased him; and he -said, They have ascribed unto David ten thousands, and to me they have -ascribed but thousands: and what can he have more but the kingdom? -18:9 And Saul eyed David from that day and forward. - -18:10 And it came to pass on the morrow, that the evil spirit from God -came upon Saul, and he prophesied in the midst of the house: and David -played with his hand, as at other times: and there was a javelin in -Saul's hand. - -18:11 And Saul cast the javelin; for he said, I will smite David even -to the wall with it. And David avoided out of his presence twice. - -18:12 And Saul was afraid of David, because the LORD was with him, and -was departed from Saul. - -18:13 Therefore Saul removed him from him, and made him his captain -over a thousand; and he went out and came in before the people. - -18:14 And David behaved himself wisely in all his ways; and the LORD -was with him. - -18:15 Wherefore when Saul saw that he behaved himself very wisely, he -was afraid of him. - -18:16 But all Israel and Judah loved David, because he went out and -came in before them. - -18:17 And Saul said to David, Behold my elder daughter Merab, her will -I give thee to wife: only be thou valiant for me, and fight the LORD's -battles. - -For Saul said, Let not mine hand be upon him, but let the hand of the -Philistines be upon him. - -18:18 And David said unto Saul, Who am I? and what is my life, or my -father's family in Israel, that I should be son in law to the king? -18:19 But it came to pass at the time when Merab Saul's daughter -should have been given to David, that she was given unto Adriel the -Meholathite to wife. - -18:20 And Michal Saul's daughter loved David: and they told Saul, and -the thing pleased him. - -18:21 And Saul said, I will give him her, that she may be a snare to -him, and that the hand of the Philistines may be against him. -Wherefore Saul said to David, Thou shalt this day be my son in law in -the one of the twain. - -18:22 And Saul commanded his servants, saying, Commune with David -secretly, and say, Behold, the king hath delight in thee, and all his -servants love thee: now therefore be the king's son in law. - -18:23 And Saul's servants spake those words in the ears of David. And -David said, Seemeth it to you a light thing to be a king's son in law, -seeing that I am a poor man, and lightly esteemed? 18:24 And the -servants of Saul told him, saying, On this manner spake David. - -18:25 And Saul said, Thus shall ye say to David, The king desireth not -any dowry, but an hundred foreskins of the Philistines, to be avenged -of the king's enemies. But Saul thought to make David fall by the hand -of the Philistines. - -18:26 And when his servants told David these words, it pleased David -well to be the king's son in law: and the days were not expired. - -18:27 Wherefore David arose and went, he and his men, and slew of the -Philistines two hundred men; and David brought their foreskins, and -they gave them in full tale to the king, that he might be the king's -son in law. And Saul gave him Michal his daughter to wife. - -18:28 And Saul saw and knew that the LORD was with David, and that -Michal Saul's daughter loved him. - -18:29 And Saul was yet the more afraid of David; and Saul became -David's enemy continually. - -18:30 Then the princes of the Philistines went forth: and it came to -pass, after they went forth, that David behaved himself more wisely -than all the servants of Saul; so that his name was much set by. - -19:1 And Saul spake to Jonathan his son, and to all his servants, that -they should kill David. - -19:2 But Jonathan Saul's son delighted much in David: and Jonathan -told David, saying, Saul my father seeketh to kill thee: now -therefore, I pray thee, take heed to thyself until the morning, and -abide in a secret place, and hide thyself: 19:3 And I will go out and -stand beside my father in the field where thou art, and I will commune -with my father of thee; and what I see, that I will tell thee. - -19:4 And Jonathan spake good of David unto Saul his father, and said -unto him, Let not the king sin against his servant, against David; -because he hath not sinned against thee, and because his works have -been to thee-ward very good: 19:5 For he did put his life in his hand, -and slew the Philistine, and the LORD wrought a great salvation for -all Israel: thou sawest it, and didst rejoice: wherefore then wilt -thou sin against innocent blood, to slay David without a cause? 19:6 -And Saul hearkened unto the voice of Jonathan: and Saul sware, As the -LORD liveth, he shall not be slain. - -19:7 And Jonathan called David, and Jonathan shewed him all those -things. - -And Jonathan brought David to Saul, and he was in his presence, as in -times past. - -19:8 And there was war again: and David went out, and fought with the -Philistines, and slew them with a great slaughter; and they fled from -him. - -19:9 And the evil spirit from the LORD was upon Saul, as he sat in his -house with his javelin in his hand: and David played with his hand. - -19:10 And Saul sought to smite David even to the wall with the -javelin: but he slipped away out of Saul's presence, and he smote the -javelin into the wall: and David fled, and escaped that night. - -19:11 Saul also sent messengers unto David's house, to watch him, and -to slay him in the morning: and Michal David's wife told him, saying, -If thou save not thy life to night, to morrow thou shalt be slain. - -19:12 So Michal let David down through a window: and he went, and -fled, and escaped. - -19:13 And Michal took an image, and laid it in the bed, and put a -pillow of goats' hair for his bolster, and covered it with a cloth. - -19:14 And when Saul sent messengers to take David, she said, He is -sick. - -19:15 And Saul sent the messengers again to see David, saying, Bring -him up to me in the bed, that I may slay him. - -19:16 And when the messengers were come in, behold, there was an image -in the bed, with a pillow of goats' hair for his bolster. - -19:17 And Saul said unto Michal, Why hast thou deceived me so, and -sent away mine enemy, that he is escaped? And Michal answered Saul, He -said unto me, Let me go; why should I kill thee? 19:18 So David fled, -and escaped, and came to Samuel to Ramah, and told him all that Saul -had done to him. And he and Samuel went and dwelt in Naioth. - -19:19 And it was told Saul, saying, Behold, David is at Naioth in -Ramah. - -19:20 And Saul sent messengers to take David: and when they saw the -company of the prophets prophesying, and Samuel standing as appointed -over them, the Spirit of God was upon the messengers of Saul, and they -also prophesied. - -19:21 And when it was told Saul, he sent other messengers, and they -prophesied likewise. And Saul sent messengers again the third time, -and they prophesied also. - -19:22 Then went he also to Ramah, and came to a great well that is in -Sechu: and he asked and said, Where are Samuel and David? And one -said, Behold, they be at Naioth in Ramah. - -19:23 And he went thither to Naioth in Ramah: and the Spirit of God -was upon him also, and he went on, and prophesied, until he came to -Naioth in Ramah. - -19:24 And he stripped off his clothes also, and prophesied before -Samuel in like manner, and lay down naked all that day and all that -night. Wherefore they say, Is Saul also among the prophets? 20:1 And -David fled from Naioth in Ramah, and came and said before Jonathan, -What have I done? what is mine iniquity? and what is my sin before thy -father, that he seeketh my life? 20:2 And he said unto him, God -forbid; thou shalt not die: behold, my father will do nothing either -great or small, but that he will shew it me: and why should my father -hide this thing from me? it is not so. - -20:3 And David sware moreover, and said, Thy father certainly knoweth -that I have found grace in thine eyes; and he saith, Let not Jonathan -know this, lest he be grieved: but truly as the LORD liveth, and as -thy soul liveth, there is but a step between me and death. - -20:4 Then said Jonathan unto David, Whatsoever thy soul desireth, I -will even do it for thee. - -20:5 And David said unto Jonathan, Behold, to morrow is the new moon, -and I should not fail to sit with the king at meat: but let me go, -that I may hide myself in the field unto the third day at even. - -20:6 If thy father at all miss me, then say, David earnestly asked -leave of me that he might run to Bethlehem his city: for there is a -yearly sacrifice there for all the family. - -20:7 If he say thus, It is well; thy servant shall have peace: but if -he be very wroth, then be sure that evil is determined by him. - -20:8 Therefore thou shalt deal kindly with thy servant; for thou hast -brought thy servant into a covenant of the LORD with thee: -notwithstanding, if there be in me iniquity, slay me thyself; for why -shouldest thou bring me to thy father? 20:9 And Jonathan said, Far be -it from thee: for if I knew certainly that evil were determined by my -father to come upon thee, then would not I tell it thee? 20:10 Then -said David to Jonathan, Who shall tell me? or what if thy father -answer thee roughly? 20:11 And Jonathan said unto David, Come, and -let us go out into the field. And they went out both of them into the -field. - -20:12 And Jonathan said unto David, O LORD God of Israel, when I have -sounded my father about to morrow any time, or the third day, and, -behold, if there be good toward David, and I then send not unto thee, -and shew it thee; 20:13 The LORD do so and much more to Jonathan: but -if it please my father to do thee evil, then I will shew it thee, and -send thee away, that thou mayest go in peace: and the LORD be with -thee, as he hath been with my father. - -20:14 And thou shalt not only while yet I live shew me the kindness of -the LORD, that I die not: 20:15 But also thou shalt not cut off thy -kindness from my house for ever: no, not when the LORD hath cut off -the enemies of David every one from the face of the earth. - -20:16 So Jonathan made a covenant with the house of David, saying, Let -the LORD even require it at the hand of David's enemies. - -20:17 And Jonathan caused David to swear again, because he loved him: -for he loved him as he loved his own soul. - -20:18 Then Jonathan said to David, To morrow is the new moon: and thou -shalt be missed, because thy seat will be empty. - -20:19 And when thou hast stayed three days, then thou shalt go down -quickly, and come to the place where thou didst hide thyself when the -business was in hand, and shalt remain by the stone Ezel. - -20:20 And I will shoot three arrows on the side thereof, as though I -shot at a mark. - -20:21 And, behold, I will send a lad, saying, Go, find out the arrows. -If I expressly say unto the lad, Behold, the arrows are on this side -of thee, take them; then come thou: for there is peace to thee, and no -hurt; as the LORD liveth. - -20:22 But if I say thus unto the young man, Behold, the arrows are -beyond thee; go thy way: for the LORD hath sent thee away. - -20:23 And as touching the matter which thou and I have spoken of, -behold, the LORD be between thee and me for ever. - -20:24 So David hid himself in the field: and when the new moon was -come, the king sat him down to eat meat. - -20:25 And the king sat upon his seat, as at other times, even upon a -seat by the wall: and Jonathan arose, and Abner sat by Saul's side, -and David's place was empty. - -20:26 Nevertheless Saul spake not any thing that day: for he thought, -Something hath befallen him, he is not clean; surely he is not clean. - -20:27 And it came to pass on the morrow, which was the second day of -the month, that David's place was empty: and Saul said unto Jonathan -his son, Wherefore cometh not the son of Jesse to meat, neither -yesterday, nor to day? 20:28 And Jonathan answered Saul, David -earnestly asked leave of me to go to Bethlehem: 20:29 And he said, Let -me go, I pray thee; for our family hath a sacrifice in the city; and -my brother, he hath commanded me to be there: and now, if I have found -favour in thine eyes, let me get away, I pray thee, and see my -brethren. Therefore he cometh not unto the king's table. - -20:30 Then Saul's anger was kindled against Jonathan, and he said unto -him, Thou son of the perverse rebellious woman, do not I know that -thou hast chosen the son of Jesse to thine own confusion, and unto the -confusion of thy mother's nakedness? 20:31 For as long as the son of -Jesse liveth upon the ground, thou shalt not be established, nor thy -kingdom. Wherefore now send and fetch him unto me, for he shall surely -die. - -20:32 And Jonathan answered Saul his father, and said unto him, -Wherefore shall he be slain? what hath he done? 20:33 And Saul cast a -javelin at him to smite him: whereby Jonathan knew that it was -determined of his father to slay David. - -20:34 So Jonathan arose from the table in fierce anger, and did eat no -meat the second day of the month: for he was grieved for David, -because his father had done him shame. - -20:35 And it came to pass in the morning, that Jonathan went out into -the field at the time appointed with David, and a little lad with him. - -20:36 And he said unto his lad, Run, find out now the arrows which I -shoot. And as the lad ran, he shot an arrow beyond him. - -20:37 And when the lad was come to the place of the arrow which -Jonathan had shot, Jonathan cried after the lad, and said, Is not the -arrow beyond thee? 20:38 And Jonathan cried after the lad, Make -speed, haste, stay not. And Jonathan's lad gathered up the arrows, and -came to his master. - -20:39 But the lad knew not any thing: only Jonathan and David knew the -matter. - -20:40 And Jonathan gave his artillery unto his lad, and said unto him, -Go, carry them to the city. - -20:41 And as soon as the lad was gone, David arose out of a place -toward the south, and fell on his face to the ground, and bowed -himself three times: and they kissed one another, and wept one with -another, until David exceeded. - -20:42 And Jonathan said to David, Go in peace, forasmuch as we have -sworn both of us in the name of the LORD, saying, The LORD be between -me and thee, and between my seed and thy seed for ever. And he arose -and departed: and Jonathan went into the city. - -21:1 Then came David to Nob to Ahimelech the priest: and Ahimelech was -afraid at the meeting of David, and said unto him, Why art thou alone, -and no man with thee? 21:2 And David said unto Ahimelech the priest, -The king hath commanded me a business, and hath said unto me, Let no -man know any thing of the business whereabout I send thee, and what I -have commanded thee: and I have appointed my servants to such and such -a place. - -21:3 Now therefore what is under thine hand? give me five loaves of -bread in mine hand, or what there is present. - -21:4 And the priest answered David, and said, There is no common bread -under mine hand, but there is hallowed bread; if the young men have -kept themselves at least from women. - -21:5 And David answered the priest, and said unto him, Of a truth -women have been kept from us about these three days, since I came out, -and the vessels of the young men are holy, and the bread is in a -manner common, yea, though it were sanctified this day in the vessel. - -21:6 So the priest gave him hallowed bread: for there was no bread -there but the shewbread, that was taken from before the LORD, to put -hot bread in the day when it was taken away. - -21:7 Now a certain man of the servants of Saul was there that day, -detained before the LORD; and his name was Doeg, an Edomite, the -chiefest of the herdmen that belonged to Saul. - -21:8 And David said unto Ahimelech, And is there not here under thine -hand spear or sword? for I have neither brought my sword nor my -weapons with me, because the king's business required haste. - -21:9 And the priest said, The sword of Goliath the Philistine, whom -thou slewest in the valley of Elah, behold, it is here wrapped in a -cloth behind the ephod: if thou wilt take that, take it: for there is -no other save that here. And David said, There is none like that; give -it me. - -21:10 And David arose and fled that day for fear of Saul, and went to -Achish the king of Gath. - -21:11 And the servants of Achish said unto him, Is not this David the -king of the land? did they not sing one to another of him in dances, -saying, Saul hath slain his thousands, and David his ten thousands? -21:12 And David laid up these words in his heart, and was sore afraid -of Achish the king of Gath. - -21:13 And he changed his behaviour before them, and feigned himself -mad in their hands, and scrabbled on the doors of the gate, and let -his spittle fall down upon his beard. - -21:14 Then said Achish unto his servants, Lo, ye see the man is mad: -wherefore then have ye brought him to me? 21:15 Have I need of mad -men, that ye have brought this fellow to play the mad man in my -presence? shall this fellow come into my house? 22:1 David therefore -departed thence, and escaped to the cave Adullam: and when his -brethren and all his father's house heard it, they went down thither -to him. - -22:2 And every one that was in distress, and every one that was in -debt, and every one that was discontented, gathered themselves unto -him; and he became a captain over them: and there were with him about -four hundred men. - -22:3 And David went thence to Mizpeh of Moab: and he said unto the -king of Moab, Let my father and my mother, I pray thee, come forth, -and be with you, till I know what God will do for me. - -22:4 And he brought them before the king of Moab: and they dwelt with -him all the while that David was in the hold. - -22:5 And the prophet Gad said unto David, Abide not in the hold; -depart, and get thee into the land of Judah. Then David departed, and -came into the forest of Hareth. - -22:6 When Saul heard that David was discovered, and the men that were -with him, (now Saul abode in Gibeah under a tree in Ramah, having his -spear in his hand, and all his servants were standing about him;) 22:7 -Then Saul said unto his servants that stood about him, Hear now, ye -Benjamites; will the son of Jesse give every one of you fields and -vineyards, and make you all captains of thousands, and captains of -hundreds; 22:8 That all of you have conspired against me, and there is -none that sheweth me that my son hath made a league with the son of -Jesse, and there is none of you that is sorry for me, or sheweth unto -me that my son hath stirred up my servant against me, to lie in wait, -as at this day? 22:9 Then answered Doeg the Edomite, which was set -over the servants of Saul, and said, I saw the son of Jesse coming to -Nob, to Ahimelech the son of Ahitub. - -22:10 And he enquired of the LORD for him, and gave him victuals, and -gave him the sword of Goliath the Philistine. - -22:11 Then the king sent to call Ahimelech the priest, the son of -Ahitub, and all his father's house, the priests that were in Nob: and -they came all of them to the king. - -22:12 And Saul said, Hear now, thou son of Ahitub. And he answered, -Here I am, my lord. - -22:13 And Saul said unto him, Why have ye conspired against me, thou -and the son of Jesse, in that thou hast given him bread, and a sword, -and hast enquired of God for him, that he should rise against me, to -lie in wait, as at this day? 22:14 Then Ahimelech answered the king, -and said, And who is so faithful among all thy servants as David, -which is the king's son in law, and goeth at thy bidding, and is -honourable in thine house? 22:15 Did I then begin to enquire of God -for him? be it far from me: let not the king impute any thing unto his -servant, nor to all the house of my father: for thy servant knew -nothing of all this, less or more. - -22:16 And the king said, Thou shalt surely die, Ahimelech, thou, and -all thy father's house. - -22:17 And the king said unto the footmen that stood about him, Turn, -and slay the priests of the LORD: because their hand also is with -David, and because they knew when he fled, and did not shew it to me. -But the servants of the king would not put forth their hand to fall -upon the priests of the LORD. - -22:18 And the king said to Doeg, Turn thou, and fall upon the priests. -And Doeg the Edomite turned, and he fell upon the priests, and slew on -that day fourscore and five persons that did wear a linen ephod. - -22:19 And Nob, the city of the priests, smote he with the edge of the -sword, both men and women, children and sucklings, and oxen, and -asses, and sheep, with the edge of the sword. - -22:20 And one of the sons of Ahimelech the son of Ahitub, named -Abiathar, escaped, and fled after David. - -22:21 And Abiathar shewed David that Saul had slain the LORD's -priests. - -22:22 And David said unto Abiathar, I knew it that day, when Doeg the -Edomite was there, that he would surely tell Saul: I have occasioned -the death of all the persons of thy father's house. - -22:23 Abide thou with me, fear not: for he that seeketh my life -seeketh thy life: but with me thou shalt be in safeguard. - -23:1 Then they told David, saying, Behold, the Philistines fight -against Keilah, and they rob the threshingfloors. - -23:2 Therefore David enquired of the LORD, saying, Shall I go and -smite these Philistines? And the LORD said unto David, Go, and smite -the Philistines, and save Keilah. - -23:3 And David's men said unto him, Behold, we be afraid here in -Judah: how much more then if we come to Keilah against the armies of -the Philistines? 23:4 Then David enquired of the LORD yet again. And -the LORD answered him and said, Arise, go down to Keilah; for I will -deliver the Philistines into thine hand. - -23:5 So David and his men went to Keilah, and fought with the -Philistines, and brought away their cattle, and smote them with a -great slaughter. So David saved the inhabitants of Keilah. - -23:6 And it came to pass, when Abiathar the son of Ahimelech fled to -David to Keilah, that he came down with an ephod in his hand. - -23:7 And it was told Saul that David was come to Keilah. And Saul -said, God hath delivered him into mine hand; for he is shut in, by -entering into a town that hath gates and bars. - -23:8 And Saul called all the people together to war, to go down to -Keilah, to besiege David and his men. - -23:9 And David knew that Saul secretly practised mischief against him; -and he said to Abiathar the priest, Bring hither the ephod. - -23:10 Then said David, O LORD God of Israel, thy servant hath -certainly heard that Saul seeketh to come to Keilah, to destroy the -city for my sake. - -23:11 Will the men of Keilah deliver me up into his hand? will Saul -come down, as thy servant hath heard? O LORD God of Israel, I beseech -thee, tell thy servant. And the LORD said, He will come down. - -23:12 Then said David, Will the men of Keilah deliver me and my men -into the hand of Saul? And the LORD said, They will deliver thee up. - -23:13 Then David and his men, which were about six hundred, arose and -departed out of Keilah, and went whithersoever they could go. And it -was told Saul that David was escaped from Keilah; and he forbare to go -forth. - -23:14 And David abode in the wilderness in strong holds, and remained -in a mountain in the wilderness of Ziph. And Saul sought him every -day, but God delivered him not into his hand. - -23:15 And David saw that Saul was come out to seek his life: and David -was in the wilderness of Ziph in a wood. - -23:16 And Jonathan Saul's son arose, and went to David into the wood, -and strengthened his hand in God. - -23:17 And he said unto him, Fear not: for the hand of Saul my father -shall not find thee; and thou shalt be king over Israel, and I shall -be next unto thee; and that also Saul my father knoweth. - -23:18 And they two made a covenant before the LORD: and David abode in -the wood, and Jonathan went to his house. - -23:19 Then came up the Ziphites to Saul to Gibeah, saying, Doth not -David hide himself with us in strong holds in the wood, in the hill of -Hachilah, which is on the south of Jeshimon? 23:20 Now therefore, O -king, come down according to all the desire of thy soul to come down; -and our part shall be to deliver him into the king's hand. - -23:21 And Saul said, Blessed be ye of the LORD; for ye have compassion -on me. - -23:22 Go, I pray you, prepare yet, and know and see his place where -his haunt is, and who hath seen him there: for it is told me that he -dealeth very subtilly. - -23:23 See therefore, and take knowledge of all the lurking places -where he hideth himself, and come ye again to me with the certainty, -and I will go with you: and it shall come to pass, if he be in the -land, that I will search him out throughout all the thousands of -Judah. - -23:24 And they arose, and went to Ziph before Saul: but David and his -men were in the wilderness of Maon, in the plain on the south of -Jeshimon. - -23:25 Saul also and his men went to seek him. And they told David; -wherefore he came down into a rock, and abode in the wilderness of -Maon. And when Saul heard that, he pursued after David in the -wilderness of Maon. - -23:26 And Saul went on this side of the mountain, and David and his -men on that side of the mountain: and David made haste to get away for -fear of Saul; for Saul and his men compassed David and his men round -about to take them. - -23:27 But there came a messenger unto Saul, saying, Haste thee, and -come; for the Philistines have invaded the land. - -23:28 Wherefore Saul returned from pursuing after David, and went -against the Philistines: therefore they called that place -Selahammahlekoth. - -23:29 And David went up from thence, and dwelt in strong holds at -Engedi. - -24:1 And it came to pass, when Saul was returned from following the -Philistines, that it was told him, saying, Behold, David is in the -wilderness of Engedi. - -24:2 Then Saul took three thousand chosen men out of all Israel, and -went to seek David and his men upon the rocks of the wild goats. - -24:3 And he came to the sheepcotes by the way, where was a cave; and -Saul went in to cover his feet: and David and his men remained in the -sides of the cave. - -24:4 And the men of David said unto him, Behold the day of which the -LORD said unto thee, Behold, I will deliver thine enemy into thine -hand, that thou mayest do to him as it shall seem good unto thee. Then -David arose, and cut off the skirt of Saul's robe privily. - -24:5 And it came to pass afterward, that David's heart smote him, -because he had cut off Saul's skirt. - -24:6 And he said unto his men, The LORD forbid that I should do this -thing unto my master, the LORD's anointed, to stretch forth mine hand -against him, seeing he is the anointed of the LORD. - -24:7 So David stayed his servants with these words, and suffered them -not to rise against Saul. But Saul rose up out of the cave, and went -on his way. - -24:8 David also arose afterward, and went out of the cave, and cried -after Saul, saying, My lord the king. And when Saul looked behind him, -David stooped with his face to the earth, and bowed himself. - -24:9 And David said to Saul, Wherefore hearest thou men's words, -saying, Behold, David seeketh thy hurt? 24:10 Behold, this day thine -eyes have seen how that the LORD had delivered thee to day into mine -hand in the cave: and some bade me kill thee: but mine eye spared -thee; and I said, I will not put forth mine hand against my lord; for -he is the LORD's anointed. - -24:11 Moreover, my father, see, yea, see the skirt of thy robe in my -hand: for in that I cut off the skirt of thy robe, and killed thee -not, know thou and see that there is neither evil nor transgression in -mine hand, and I have not sinned against thee; yet thou huntest my -soul to take it. - -24:12 The LORD judge between me and thee, and the LORD avenge me of -thee: but mine hand shall not be upon thee. - -24:13 As saith the proverb of the ancients, Wickedness proceedeth from -the wicked: but mine hand shall not be upon thee. - -24:14 After whom is the king of Israel come out? after whom dost thou -pursue? after a dead dog, after a flea. - -24:15 The LORD therefore be judge, and judge between me and thee, and -see, and plead my cause, and deliver me out of thine hand. - -24:16 And it came to pass, when David had made an end of speaking -these words unto Saul, that Saul said, Is this thy voice, my son -David? And Saul lifted up his voice, and wept. - -24:17 And he said to David, Thou art more righteous than I: for thou -hast rewarded me good, whereas I have rewarded thee evil. - -24:18 And thou hast shewed this day how that thou hast dealt well with -me: forasmuch as when the LORD had delivered me into thine hand, thou -killedst me not. - -24:19 For if a man find his enemy, will he let him go well away? -wherefore the LORD reward thee good for that thou hast done unto me -this day. - -24:20 And now, behold, I know well that thou shalt surely be king, and -that the kingdom of Israel shall be established in thine hand. - -24:21 Swear now therefore unto me by the LORD, that thou wilt not cut -off my seed after me, and that thou wilt not destroy my name out of my -father's house. - -24:22 And David sware unto Saul. And Saul went home; but David and his -men gat them up unto the hold. - -25:1 And Samuel died; and all the Israelites were gathered together, -and lamented him, and buried him in his house at Ramah. And David -arose, and went down to the wilderness of Paran. - -25:2 And there was a man in Maon, whose possessions were in Carmel; -and the man was very great, and he had three thousand sheep, and a -thousand goats: and he was shearing his sheep in Carmel. - -25:3 Now the name of the man was Nabal; and the name of his wife -Abigail: and she was a woman of good understanding, and of a beautiful -countenance: but the man was churlish and evil in his doings; and he -was of the house of Caleb. - -25:4 And David heard in the wilderness that Nabal did shear his sheep. - -25:5 And David sent out ten young men, and David said unto the young -men, Get you up to Carmel, and go to Nabal, and greet him in my name: -25:6 And thus shall ye say to him that liveth in prosperity, Peace be -both to thee, and peace be to thine house, and peace be unto all that -thou hast. - -25:7 And now I have heard that thou hast shearers: now thy shepherds -which were with us, we hurt them not, neither was there ought missing -unto them, all the while they were in Carmel. - -25:8 Ask thy young men, and they will shew thee. Wherefore let the -young men find favour in thine eyes: for we come in a good day: give, -I pray thee, whatsoever cometh to thine hand unto thy servants, and to -thy son David. - -25:9 And when David's young men came, they spake to Nabal according to -all those words in the name of David, and ceased. - -25:10 And Nabal answered David's servants, and said, Who is David? and -who is the son of Jesse? there be many servants now a days that break -away every man from his master. - -25:11 Shall I then take my bread, and my water, and my flesh that I -have killed for my shearers, and give it unto men, whom I know not -whence they be? 25:12 So David's young men turned their way, and went -again, and came and told him all those sayings. - -25:13 And David said unto his men, Gird ye on every man his sword. And -they girded on every man his sword; and David also girded on his -sword: and there went up after David about four hundred men; and two -hundred abode by the stuff. - -25:14 But one of the young men told Abigail, Nabal's wife, saying, -Behold, David sent messengers out of the wilderness to salute our -master; and he railed on them. - -25:15 But the men were very good unto us, and we were not hurt, -neither missed we any thing, as long as we were conversant with them, -when we were in the fields: 25:16 They were a wall unto us both by -night and day, all the while we were with them keeping the sheep. - -25:17 Now therefore know and consider what thou wilt do; for evil is -determined against our master, and against all his household: for he -is such a son of Belial, that a man cannot speak to him. - -25:18 Then Abigail made haste, and took two hundred loaves, and two -bottles of wine, and five sheep ready dressed, and five measures of -parched corn, and an hundred clusters of raisins, and two hundred -cakes of figs, and laid them on asses. - -25:19 And she said unto her servants, Go on before me; behold, I come -after you. But she told not her husband Nabal. - -25:20 And it was so, as she rode on the ass, that she came down by the -covert on the hill, and, behold, David and his men came down against -her; and she met them. - -25:21 Now David had said, Surely in vain have I kept all that this -fellow hath in the wilderness, so that nothing was missed of all that -pertained unto him: and he hath requited me evil for good. - -25:22 So and more also do God unto the enemies of David, if I leave of -all that pertain to him by the morning light any that pisseth against -the wall. - -25:23 And when Abigail saw David, she hasted, and lighted off the ass, -and fell before David on her face, and bowed herself to the ground, -25:24 And fell at his feet, and said, Upon me, my lord, upon me let -this iniquity be: and let thine handmaid, I pray thee, speak in thine -audience, and hear the words of thine handmaid. - -25:25 Let not my lord, I pray thee, regard this man of Belial, even -Nabal: for as his name is, so is he; Nabal is his name, and folly is -with him: but I thine handmaid saw not the young men of my lord, whom -thou didst send. - -25:26 Now therefore, my lord, as the LORD liveth, and as thy soul -liveth, seeing the LORD hath withholden thee from coming to shed -blood, and from avenging thyself with thine own hand, now let thine -enemies, and they that seek evil to my lord, be as Nabal. - -25:27 And now this blessing which thine handmaid hath brought unto my -lord, let it even be given unto the young men that follow my lord. - -25:28 I pray thee, forgive the trespass of thine handmaid: for the -LORD will certainly make my lord a sure house; because my lord -fighteth the battles of the LORD, and evil hath not been found in thee -all thy days. - -25:29 Yet a man is risen to pursue thee, and to seek thy soul: but the -soul of my lord shall be bound in the bundle of life with the LORD thy -God; and the souls of thine enemies, them shall he sling out, as out -of the middle of a sling. - -25:30 And it shall come to pass, when the LORD shall have done to my -lord according to all the good that he hath spoken concerning thee, -and shall have appointed thee ruler over Israel; 25:31 That this shall -be no grief unto thee, nor offence of heart unto my lord, either that -thou hast shed blood causeless, or that my lord hath avenged himself: -but when the LORD shall have dealt well with my lord, then remember -thine handmaid. - -25:32 And David said to Abigail, Blessed be the LORD God of Israel, -which sent thee this day to meet me: 25:33 And blessed be thy advice, -and blessed be thou, which hast kept me this day from coming to shed -blood, and from avenging myself with mine own hand. - -25:34 For in very deed, as the LORD God of Israel liveth, which hath -kept me back from hurting thee, except thou hadst hasted and come to -meet me, surely there had not been left unto Nabal by the morning -light any that pisseth against the wall. - -25:35 So David received of her hand that which she had brought him, -and said unto her, Go up in peace to thine house; see, I have -hearkened to thy voice, and have accepted thy person. - -25:36 And Abigail came to Nabal; and, behold, he held a feast in his -house, like the feast of a king; and Nabal's heart was merry within -him, for he was very drunken: wherefore she told him nothing, less or -more, until the morning light. - -25:37 But it came to pass in the morning, when the wine was gone out -of Nabal, and his wife had told him these things, that his heart died -within him, and he became as a stone. - -25:38 And it came to pass about ten days after, that the LORD smote -Nabal, that he died. - -25:39 And when David heard that Nabal was dead, he said, Blessed be -the LORD, that hath pleaded the cause of my reproach from the hand of -Nabal, and hath kept his servant from evil: for the LORD hath returned -the wickedness of Nabal upon his own head. And David sent and communed -with Abigail, to take her to him to wife. - -25:40 And when the servants of David were come to Abigail to Carmel, -they spake unto her, saying, David sent us unto thee, to take thee to -him to wife. - -25:41 And she arose, and bowed herself on her face to the earth, and -said, Behold, let thine handmaid be a servant to wash the feet of the -servants of my lord. - -25:42 And Abigail hasted, and arose and rode upon an ass, with five -damsels of hers that went after her; and she went after the messengers -of David, and became his wife. - -25:43 David also took Ahinoam of Jezreel; and they were also both of -them his wives. - -25:44 But Saul had given Michal his daughter, David's wife, to Phalti -the son of Laish, which was of Gallim. - -26:1 And the Ziphites came unto Saul to Gibeah, saying, Doth not David -hide himself in the hill of Hachilah, which is before Jeshimon? 26:2 -Then Saul arose, and went down to the wilderness of Ziph, having three -thousand chosen men of Israel with him, to seek David in the -wilderness of Ziph. - -26:3 And Saul pitched in the hill of Hachilah, which is before -Jeshimon, by the way. But David abode in the wilderness, and he saw -that Saul came after him into the wilderness. - -26:4 David therefore sent out spies, and understood that Saul was come -in very deed. - -26:5 And David arose, and came to the place where Saul had pitched: -and David beheld the place where Saul lay, and Abner the son of Ner, -the captain of his host: and Saul lay in the trench, and the people -pitched round about him. - -26:6 Then answered David and said to Ahimelech the Hittite, and to -Abishai the son of Zeruiah, brother to Joab, saying, Who will go down -with me to Saul to the camp? And Abishai said, I will go down with -thee. - -26:7 So David and Abishai came to the people by night: and, behold, -Saul lay sleeping within the trench, and his spear stuck in the ground -at his bolster: but Abner and the people lay round about him. - -26:8 Then said Abishai to David, God hath delivered thine enemy into -thine hand this day: now therefore let me smite him, I pray thee, with -the spear even to the earth at once, and I will not smite him the -second time. - -26:9 And David said to Abishai, Destroy him not: for who can stretch -forth his hand against the LORD's anointed, and be guiltless? 26:10 -David said furthermore, As the LORD liveth, the LORD shall smite him; -or his day shall come to die; or he shall descend into battle, and -perish. - -26:11 The LORD forbid that I should stretch forth mine hand against -the LORD's anointed: but, I pray thee, take thou now the spear that is -at his bolster, and the cruse of water, and let us go. - -26:12 So David took the spear and the cruse of water from Saul's -bolster; and they gat them away, and no man saw it, nor knew it, -neither awaked: for they were all asleep; because a deep sleep from -the LORD was fallen upon them. - -26:13 Then David went over to the other side, and stood on the top of -an hill afar off; a great space being between them: 26:14 And David -cried to the people, and to Abner the son of Ner, saying, Answerest -thou not, Abner? Then Abner answered and said, Who art thou that -criest to the king? 26:15 And David said to Abner, Art not thou a -valiant man? and who is like to thee in Israel? wherefore then hast -thou not kept thy lord the king? for there came one of the people in -to destroy the king thy lord. - -26:16 This thing is not good that thou hast done. As the LORD liveth, -ye are worthy to die, because ye have not kept your master, the LORD's -anointed. - -And now see where the king's spear is, and the cruse of water that was -at his bolster. - -26:17 And Saul knew David's voice, and said, Is this thy voice, my son -David? And David said, It is my voice, my lord, O king. - -26:18 And he said, Wherefore doth my lord thus pursue after his -servant? for what have I done? or what evil is in mine hand? 26:19 -Now therefore, I pray thee, let my lord the king hear the words of his -servant. If the LORD have stirred thee up against me, let him accept -an offering: but if they be the children of men, cursed be they before -the LORD; for they have driven me out this day from abiding in the -inheritance of the LORD, saying, Go, serve other gods. - -26:20 Now therefore, let not my blood fall to the earth before the -face of the LORD: for the king of Israel is come out to seek a flea, -as when one doth hunt a partridge in the mountains. - -26:21 Then said Saul, I have sinned: return, my son David: for I will -no more do thee harm, because my soul was precious in thine eyes this -day: behold, I have played the fool, and have erred exceedingly. - -26:22 And David answered and said, Behold the king's spear! and let -one of the young men come over and fetch it. - -26:23 The LORD render to every man his righteousness and his -faithfulness; for the LORD delivered thee into my hand to day, but I -would not stretch forth mine hand against the LORD's anointed. - -26:24 And, behold, as thy life was much set by this day in mine eyes, -so let my life be much set by in the eyes of the LORD, and let him -deliver me out of all tribulation. - -26:25 Then Saul said to David, Blessed be thou, my son David: thou -shalt both do great things, and also shalt still prevail. So David -went on his way, and Saul returned to his place. - -27:1 And David said in his heart, I shall now perish one day by the -hand of Saul: there is nothing better for me than that I should -speedily escape into the land of the Philistines; and Saul shall -despair of me, to seek me any more in any coast of Israel: so shall I -escape out of his hand. - -27:2 And David arose, and he passed over with the six hundred men that -were with him unto Achish, the son of Maoch, king of Gath. - -27:3 And David dwelt with Achish at Gath, he and his men, every man -with his household, even David with his two wives, Ahinoam the -Jezreelitess, and Abigail the Carmelitess, Nabal's wife. - -27:4 And it was told Saul that David was fled to Gath: and he sought -no more again for him. - -27:5 And David said unto Achish, If I have now found grace in thine -eyes, let them give me a place in some town in the country, that I may -dwell there: for why should thy servant dwell in the royal city with -thee? 27:6 Then Achish gave him Ziklag that day: wherefore Ziklag -pertaineth unto the kings of Judah unto this day. - -27:7 And the time that David dwelt in the country of the Philistines -was a full year and four months. - -27:8 And David and his men went up, and invaded the Geshurites, and -the Gezrites, and the Amalekites: for those nations were of old the -inhabitants of the land, as thou goest to Shur, even unto the land of -Egypt. - -27:9 And David smote the land, and left neither man nor woman alive, -and took away the sheep, and the oxen, and the asses, and the camels, -and the apparel, and returned, and came to Achish. - -27:10 And Achish said, Whither have ye made a road to day? And David -said, Against the south of Judah, and against the south of the -Jerahmeelites, and against the south of the Kenites. - -27:11 And David saved neither man nor woman alive, to bring tidings to -Gath, saying, Lest they should tell on us, saying, So did David, and -so will be his manner all the while he dwelleth in the country of the -Philistines. - -27:12 And Achish believed David, saying, He hath made his people -Israel utterly to abhor him; therefore he shall be my servant for -ever. - -28:1 And it came to pass in those days, that the Philistines gathered -their armies together for warfare, to fight with Israel. And Achish -said unto David, Know thou assuredly, that thou shalt go out with me -to battle, thou and thy men. - -28:2 And David said to Achish, Surely thou shalt know what thy servant -can do. And Achish said to David, Therefore will I make thee keeper of -mine head for ever. - -28:3 Now Samuel was dead, and all Israel had lamented him, and buried -him in Ramah, even in his own city. And Saul had put away those that -had familiar spirits, and the wizards, out of the land. - -28:4 And the Philistines gathered themselves together, and came and -pitched in Shunem: and Saul gathered all Israel together, and they -pitched in Gilboa. - -28:5 And when Saul saw the host of the Philistines, he was afraid, and -his heart greatly trembled. - -28:6 And when Saul enquired of the LORD, the LORD answered him not, -neither by dreams, nor by Urim, nor by prophets. - -28:7 Then said Saul unto his servants, Seek me a woman that hath a -familiar spirit, that I may go to her, and enquire of her. And his -servants said to him, Behold, there is a woman that hath a familiar -spirit at Endor. - -28:8 And Saul disguised himself, and put on other raiment, and he -went, and two men with him, and they came to the woman by night: and -he said, I pray thee, divine unto me by the familiar spirit, and bring -me him up, whom I shall name unto thee. - -28:9 And the woman said unto him, Behold, thou knowest what Saul hath -done, how he hath cut off those that have familiar spirits, and the -wizards, out of the land: wherefore then layest thou a snare for my -life, to cause me to die? 28:10 And Saul sware to her by the LORD, -saying, As the LORD liveth, there shall no punishment happen to thee -for this thing. - -28:11 Then said the woman, Whom shall I bring up unto thee? And he -said, Bring me up Samuel. - -28:12 And when the woman saw Samuel, she cried with a loud voice: and -the woman spake to Saul, saying, Why hast thou deceived me? for thou -art Saul. - -28:13 And the king said unto her, Be not afraid: for what sawest thou? -And the woman said unto Saul, I saw gods ascending out of the earth. - -28:14 And he said unto her, What form is he of? And she said, An old -man cometh up; and he is covered with a mantle. And Saul perceived -that it was Samuel, and he stooped with his face to the ground, and -bowed himself. - -28:15 And Samuel said to Saul, Why hast thou disquieted me, to bring -me up? And Saul answered, I am sore distressed; for the Philistines -make war against me, and God is departed from me, and answereth me no -more, neither by prophets, nor by dreams: therefore I have called -thee, that thou mayest make known unto me what I shall do. - -28:16 Then said Samuel, Wherefore then dost thou ask of me, seeing the -LORD is departed from thee, and is become thine enemy? 28:17 And the -LORD hath done to him, as he spake by me: for the LORD hath rent the -kingdom out of thine hand, and given it to thy neighbour, even to -David: 28:18 Because thou obeyedst not the voice of the LORD, nor -executedst his fierce wrath upon Amalek, therefore hath the LORD done -this thing unto thee this day. - -28:19 Moreover the LORD will also deliver Israel with thee into the -hand of the Philistines: and to morrow shalt thou and thy sons be with -me: the LORD also shall deliver the host of Israel into the hand of -the Philistines. - -28:20 Then Saul fell straightway all along on the earth, and was sore -afraid, because of the words of Samuel: and there was no strength in -him; for he had eaten no bread all the day, nor all the night. - -28:21 And the woman came unto Saul, and saw that he was sore troubled, -and said unto him, Behold, thine handmaid hath obeyed thy voice, and I -have put my life in my hand, and have hearkened unto thy words which -thou spakest unto me. - -28:22 Now therefore, I pray thee, hearken thou also unto the voice of -thine handmaid, and let me set a morsel of bread before thee; and eat, -that thou mayest have strength, when thou goest on thy way. - -28:23 But he refused, and said, I will not eat. But his servants, -together with the woman, compelled him; and he hearkened unto their -voice. So he arose from the earth, and sat upon the bed. - -28:24 And the woman had a fat calf in the house; and she hasted, and -killed it, and took flour, and kneaded it, and did bake unleavened -bread thereof: 28:25 And she brought it before Saul, and before his -servants; and they did eat. Then they rose up, and went away that -night. - -29:1 Now the Philistines gathered together all their armies to Aphek: -and the Israelites pitched by a fountain which is in Jezreel. - -29:2 And the lords of the Philistines passed on by hundreds, and by -thousands: but David and his men passed on in the rereward with -Achish. - -29:3 Then said the princes of the Philistines, What do these Hebrews -here? And Achish said unto the princes of the Philistines, Is not -this David, the servant of Saul the king of Israel, which hath been -with me these days, or these years, and I have found no fault in him -since he fell unto me unto this day? 29:4 And the princes of the -Philistines were wroth with him; and the princes of the Philistines -said unto him, Make this fellow return, that he may go again to his -place which thou hast appointed him, and let him not go down with us -to battle, lest in the battle he be an adversary to us: for wherewith -should he reconcile himself unto his master? should it not be with the -heads of these men? 29:5 Is not this David, of whom they sang one to -another in dances, saying, Saul slew his thousands, and David his ten -thousands? 29:6 Then Achish called David, and said unto him, Surely, -as the LORD liveth, thou hast been upright, and thy going out and thy -coming in with me in the host is good in my sight: for I have not -found evil in thee since the day of thy coming unto me unto this day: -nevertheless the lords favour thee not. - -29:7 Wherefore now return, and go in peace, that thou displease not -the lords of the Philistines. - -29:8 And David said unto Achish, But what have I done? and what hast -thou found in thy servant so long as I have been with thee unto this -day, that I may not go fight against the enemies of my lord the king? -29:9 And Achish answered and said to David, I know that thou art good -in my sight, as an angel of God: notwithstanding the princes of the -Philistines have said, He shall not go up with us to the battle. - -29:10 Wherefore now rise up early in the morning with thy master's -servants that are come with thee: and as soon as ye be up early in the -morning, and have light, depart. - -29:11 So David and his men rose up early to depart in the morning, to -return into the land of the Philistines. And the Philistines went up -to Jezreel. - -30:1 And it came to pass, when David and his men were come to Ziklag -on the third day, that the Amalekites had invaded the south, and -Ziklag, and smitten Ziklag, and burned it with fire; 30:2 And had -taken the women captives, that were therein: they slew not any, either -great or small, but carried them away, and went on their way. - -30:3 So David and his men came to the city, and, behold, it was burned -with fire; and their wives, and their sons, and their daughters, were -taken captives. - -30:4 Then David and the people that were with him lifted up their -voice and wept, until they had no more power to weep. - -30:5 And David's two wives were taken captives, Ahinoam the -Jezreelitess, and Abigail the wife of Nabal the Carmelite. - -30:6 And David was greatly distressed; for the people spake of stoning -him, because the soul of all the people was grieved, every man for his -sons and for his daughters: but David encouraged himself in the LORD -his God. - -30:7 And David said to Abiathar the priest, Ahimelech's son, I pray -thee, bring me hither the ephod. And Abiathar brought thither the -ephod to David. - -30:8 And David enquired at the LORD, saying, Shall I pursue after this -troop? shall I overtake them? And he answered him, Pursue: for thou -shalt surely overtake them, and without fail recover all. - -30:9 So David went, he and the six hundred men that were with him, and -came to the brook Besor, where those that were left behind stayed. - -30:10 But David pursued, he and four hundred men: for two hundred -abode behind, which were so faint that they could not go over the -brook Besor. - -30:11 And they found an Egyptian in the field, and brought him to -David, and gave him bread, and he did eat; and they made him drink -water; 30:12 And they gave him a piece of a cake of figs, and two -clusters of raisins: and when he had eaten, his spirit came again to -him: for he had eaten no bread, nor drunk any water, three days and -three nights. - -30:13 And David said unto him, To whom belongest thou? and whence art -thou? And he said, I am a young man of Egypt, servant to an Amalekite; -and my master left me, because three days agone I fell sick. - -30:14 We made an invasion upon the south of the Cherethites, and upon -the coast which belongeth to Judah, and upon the south of Caleb; and -we burned Ziklag with fire. - -30:15 And David said to him, Canst thou bring me down to this company? -And he said, Swear unto me by God, that thou wilt neither kill me, nor -deliver me into the hands of my master, and I will bring thee down to -this company. - -30:16 And when he had brought him down, behold, they were spread -abroad upon all the earth, eating and drinking, and dancing, because -of all the great spoil that they had taken out of the land of the -Philistines, and out of the land of Judah. - -30:17 And David smote them from the twilight even unto the evening of -the next day: and there escaped not a man of them, save four hundred -young men, which rode upon camels, and fled. - -30:18 And David recovered all that the Amalekites had carried away: -and David rescued his two wives. - -30:19 And there was nothing lacking to them, neither small nor great, -neither sons nor daughters, neither spoil, nor any thing that they had -taken to them: David recovered all. - -30:20 And David took all the flocks and the herds, which they drave -before those other cattle, and said, This is David's spoil. - -30:21 And David came to the two hundred men, which were so faint that -they could not follow David, whom they had made also to abide at the -brook Besor: and they went forth to meet David, and to meet the people -that were with him: and when David came near to the people, he saluted -them. - -30:22 Then answered all the wicked men and men of Belial, of those -that went with David, and said, Because they went not with us, we will -not give them ought of the spoil that we have recovered, save to every -man his wife and his children, that they may lead them away, and -depart. - -30:23 Then said David, Ye shall not do so, my brethren, with that -which the LORD hath given us, who hath preserved us, and delivered the -company that came against us into our hand. - -30:24 For who will hearken unto you in this matter? but as his part is -that goeth down to the battle, so shall his part be that tarrieth by -the stuff: they shall part alike. - -30:25 And it was so from that day forward, that he made it a statute -and an ordinance for Israel unto this day. - -30:26 And when David came to Ziklag, he sent of the spoil unto the -elders of Judah, even to his friends, saying, Behold a present for you -of the spoil of the enemies of the LORD; 30:27 To them which were in -Bethel, and to them which were in south Ramoth, and to them which were -in Jattir, 30:28 And to them which were in Aroer, and to them which -were in Siphmoth, and to them which were in Eshtemoa, 30:29 And to -them which were in Rachal, and to them which were in the cities of the -Jerahmeelites, and to them which were in the cities of the Kenites, -30:30 And to them which were in Hormah, and to them which were in -Chorashan, and to them which were in Athach, 30:31 And to them which -were in Hebron, and to all the places where David himself and his men -were wont to haunt. - -31:1 Now the Philistines fought against Israel: and the men of Israel -fled from before the Philistines, and fell down slain in mount Gilboa. - -31:2 And the Philistines followed hard upon Saul and upon his sons; -and the Philistines slew Jonathan, and Abinadab, and Melchishua, -Saul's sons. - -31:3 And the battle went sore against Saul, and the archers hit him; -and he was sore wounded of the archers. - -31:4 Then said Saul unto his armourbearer, Draw thy sword, and thrust -me through therewith; lest these uncircumcised come and thrust me -through, and abuse me. But his armourbearer would not; for he was sore -afraid. Therefore Saul took a sword, and fell upon it. - -31:5 And when his armourbearer saw that Saul was dead, he fell -likewise upon his sword, and died with him. - -31:6 So Saul died, and his three sons, and his armourbearer, and all -his men, that same day together. - -31:7 And when the men of Israel that were on the other side of the -valley, and they that were on the other side Jordan, saw that the men -of Israel fled, and that Saul and his sons were dead, they forsook the -cities, and fled; and the Philistines came and dwelt in them. - -31:8 And it came to pass on the morrow, when the Philistines came to -strip the slain, that they found Saul and his three sons fallen in -mount Gilboa. - -31:9 And they cut off his head, and stripped off his armour, and sent -into the land of the Philistines round about, to publish it in the -house of their idols, and among the people. - -31:10 And they put his armour in the house of Ashtaroth: and they -fastened his body to the wall of Bethshan. - -31:11 And when the inhabitants of Jabeshgilead heard of that which the -Philistines had done to Saul; 31:12 All the valiant men arose, and -went all night, and took the body of Saul and the bodies of his sons -from the wall of Bethshan, and came to Jabesh, and burnt them there. - -31:13 And they took their bones, and buried them under a tree at -Jabesh, and fasted seven days. - - - - -The Second Book of Samuel - -Otherwise Called: - -The Second Book of the Kings - - -1:1 Now it came to pass after the death of Saul, when David was -returned from the slaughter of the Amalekites, and David had abode two -days in Ziklag; 1:2 It came even to pass on the third day, that, -behold, a man came out of the camp from Saul with his clothes rent, -and earth upon his head: and so it was, when he came to David, that he -fell to the earth, and did obeisance. - -1:3 And David said unto him, From whence comest thou? And he said unto -him, Out of the camp of Israel am I escaped. - -1:4 And David said unto him, How went the matter? I pray thee, tell -me. - -And he answered, That the people are fled from the battle, and many of -the people also are fallen and dead; and Saul and Jonathan his son are -dead also. - -1:5 And David said unto the young man that told him, How knowest thou -that Saul and Jonathan his son be dead? 1:6 And the young man that -told him said, As I happened by chance upon mount Gilboa, behold, Saul -leaned upon his spear; and, lo, the chariots and horsemen followed -hard after him. - -1:7 And when he looked behind him, he saw me, and called unto me. And -I answered, Here am I. - -1:8 And he said unto me, Who art thou? And I answered him, I am an -Amalekite. - -1:9 He said unto me again, Stand, I pray thee, upon me, and slay me: -for anguish is come upon me, because my life is yet whole in me. - -1:10 So I stood upon him, and slew him, because I was sure that he -could not live after that he was fallen: and I took the crown that was -upon his head, and the bracelet that was on his arm, and have brought -them hither unto my lord. - -1:11 Then David took hold on his clothes, and rent them; and likewise -all the men that were with him: 1:12 And they mourned, and wept, and -fasted until even, for Saul, and for Jonathan his son, and for the -people of the LORD, and for the house of Israel; because they were -fallen by the sword. - -1:13 And David said unto the young man that told him, Whence art thou? -And he answered, I am the son of a stranger, an Amalekite. - -1:14 And David said unto him, How wast thou not afraid to stretch -forth thine hand to destroy the LORD's anointed? 1:15 And David -called one of the young men, and said, Go near, and fall upon him. And -he smote him that he died. - -1:16 And David said unto him, Thy blood be upon thy head; for thy -mouth hath testified against thee, saying, I have slain the LORD's -anointed. - -1:17 And David lamented with this lamentation over Saul and over -Jonathan his son: 1:18 (Also he bade them teach the children of Judah -the use of the bow: behold, it is written in the book of Jasher.) -1:19 The beauty of Israel is slain upon thy high places: how are the -mighty fallen! 1:20 Tell it not in Gath, publish it not in the -streets of Askelon; lest the daughters of the Philistines rejoice, -lest the daughters of the uncircumcised triumph. - -1:21 Ye mountains of Gilboa, let there be no dew, neither let there be -rain, upon you, nor fields of offerings: for there the shield of the -mighty is vilely cast away, the shield of Saul, as though he had not -been anointed with oil. - -1:22 From the blood of the slain, from the fat of the mighty, the bow -of Jonathan turned not back, and the sword of Saul returned not empty. - -1:23 Saul and Jonathan were lovely and pleasant in their lives, and in -their death they were not divided: they were swifter than eagles, they -were stronger than lions. - -1:24 Ye daughters of Israel, weep over Saul, who clothed you in -scarlet, with other delights, who put on ornaments of gold upon your -apparel. - -1:25 How are the mighty fallen in the midst of the battle! O Jonathan, -thou wast slain in thine high places. - -1:26 I am distressed for thee, my brother Jonathan: very pleasant hast -thou been unto me: thy love to me was wonderful, passing the love of -women. - -1:27 How are the mighty fallen, and the weapons of war perished! 2:1 -And it came to pass after this, that David enquired of the LORD, -saying, Shall I go up into any of the cities of Judah? And the LORD -said unto him, Go up. And David said, Whither shall I go up? And he -said, Unto Hebron. - -2:2 So David went up thither, and his two wives also, Ahinoam the -Jezreelitess, and Abigail Nabal's wife the Carmelite. - -2:3 And his men that were with him did David bring up, every man with -his household: and they dwelt in the cities of Hebron. - -2:4 And the men of Judah came, and there they anointed David king over -the house of Judah. And they told David, saying, That the men of -Jabeshgilead were they that buried Saul. - -2:5 And David sent messengers unto the men of Jabeshgilead, and said -unto them, Blessed be ye of the LORD, that ye have shewed this -kindness unto your lord, even unto Saul, and have buried him. - -2:6 And now the LORD shew kindness and truth unto you: and I also will -requite you this kindness, because ye have done this thing. - -2:7 Therefore now let your hands be strengthened, and be ye valiant: -for your master Saul is dead, and also the house of Judah have -anointed me king over them. - -2:8 But Abner the son of Ner, captain of Saul's host, took Ishbosheth -the son of Saul, and brought him over to Mahanaim; 2:9 And made him -king over Gilead, and over the Ashurites, and over Jezreel, and over -Ephraim, and over Benjamin, and over all Israel. - -2:10 Ishbosheth Saul's son was forty years old when he began to reign -over Israel, and reigned two years. But the house of Judah followed -David. - -2:11 And the time that David was king in Hebron over the house of -Judah was seven years and six months. - -2:12 And Abner the son of Ner, and the servants of Ishbosheth the son -of Saul, went out from Mahanaim to Gibeon. - -2:13 And Joab the son of Zeruiah, and the servants of David, went out, -and met together by the pool of Gibeon: and they sat down, the one on -the one side of the pool, and the other on the other side of the pool. - -2:14 And Abner said to Joab, Let the young men now arise, and play -before us. And Joab said, Let them arise. - -2:15 Then there arose and went over by number twelve of Benjamin, -which pertained to Ishbosheth the son of Saul, and twelve of the -servants of David. - -2:16 And they caught every one his fellow by the head, and thrust his -sword in his fellow's side; so they fell down together: wherefore that -place was called Helkathhazzurim, which is in Gibeon. - -2:17 And there was a very sore battle that day; and Abner was beaten, -and the men of Israel, before the servants of David. - -2:18 And there were three sons of Zeruiah there, Joab, and Abishai, -and Asahel: and Asahel was as light of foot as a wild roe. - -2:19 And Asahel pursued after Abner; and in going he turned not to the -right hand nor to the left from following Abner. - -2:20 Then Abner looked behind him, and said, Art thou Asahel? And he -answered, I am. - -2:21 And Abner said to him, Turn thee aside to thy right hand or to -thy left, and lay thee hold on one of the young men, and take thee his -armour. - -But Asahel would not turn aside from following of him. - -2:22 And Abner said again to Asahel, Turn thee aside from following -me: wherefore should I smite thee to the ground? how then should I -hold up my face to Joab thy brother? 2:23 Howbeit he refused to turn -aside: wherefore Abner with the hinder end of the spear smote him -under the fifth rib, that the spear came out behind him; and he fell -down there, and died in the same place: and it came to pass, that as -many as came to the place where Asahel fell down and died stood still. - -2:24 Joab also and Abishai pursued after Abner: and the sun went down -when they were come to the hill of Ammah, that lieth before Giah by -the way of the wilderness of Gibeon. - -2:25 And the children of Benjamin gathered themselves together after -Abner, and became one troop, and stood on the top of an hill. - -2:26 Then Abner called to Joab, and said, Shall the sword devour for -ever? knowest thou not that it will be bitterness in the latter end? -how long shall it be then, ere thou bid the people return from -following their brethren? 2:27 And Joab said, As God liveth, unless -thou hadst spoken, surely then in the morning the people had gone up -every one from following his brother. - -2:28 So Joab blew a trumpet, and all the people stood still, and -pursued after Israel no more, neither fought they any more. - -2:29 And Abner and his men walked all that night through the plain, -and passed over Jordan, and went through all Bithron, and they came to -Mahanaim. - -2:30 And Joab returned from following Abner: and when he had gathered -all the people together, there lacked of David's servants nineteen men -and Asahel. - -2:31 But the servants of David had smitten of Benjamin, and of Abner's -men, so that three hundred and threescore men died. - -2:32 And they took up Asahel, and buried him in the sepulchre of his -father, which was in Bethlehem. And Joab and his men went all night, -and they came to Hebron at break of day. - -3:1 Now there was long war between the house of Saul and the house of -David: but David waxed stronger and stronger, and the house of Saul -waxed weaker and weaker. - -3:2 And unto David were sons born in Hebron: and his firstborn was -Amnon, of Ahinoam the Jezreelitess; 3:3 And his second, Chileab, of -Abigail the wife of Nabal the Carmelite; and the third, Absalom the -son of Maacah the daughter of Talmai king of Geshur; 3:4 And the -fourth, Adonijah the son of Haggith; and the fifth, Shephatiah the son -of Abital; 3:5 And the sixth, Ithream, by Eglah David's wife. These -were born to David in Hebron. - -3:6 And it came to pass, while there was war between the house of Saul -and the house of David, that Abner made himself strong for the house -of Saul. - -3:7 And Saul had a concubine, whose name was Rizpah, the daughter of -Aiah: and Ishbosheth said to Abner, Wherefore hast thou gone in unto -my father's concubine? 3:8 Then was Abner very wroth for the words of -Ishbosheth, and said, Am I a dog's head, which against Judah do shew -kindness this day unto the house of Saul thy father, to his brethren, -and to his friends, and have not delivered thee into the hand of -David, that thou chargest me to day with a fault concerning this -woman? 3:9 So do God to Abner, and more also, except, as the LORD -hath sworn to David, even so I do to him; 3:10 To translate the -kingdom from the house of Saul, and to set up the throne of David over -Israel and over Judah, from Dan even to Beersheba. - -3:11 And he could not answer Abner a word again, because he feared -him. - -3:12 And Abner sent messengers to David on his behalf, saying, Whose -is the land? saying also, Make thy league with me, and, behold, my -hand shall be with thee, to bring about all Israel unto thee. - -3:13 And he said, Well; I will make a league with thee: but one thing -I require of thee, that is, Thou shalt not see my face, except thou -first bring Michal Saul's daughter, when thou comest to see my face. - -3:14 And David sent messengers to Ishbosheth Saul's son, saying, -Deliver me my wife Michal, which I espoused to me for an hundred -foreskins of the Philistines. - -3:15 And Ishbosheth sent, and took her from her husband, even from -Phaltiel the son of Laish. - -3:16 And her husband went with her along weeping behind her to -Bahurim. - -Then said Abner unto him, Go, return. And he returned. - -3:17 And Abner had communication with the elders of Israel, saying, Ye -sought for David in times past to be king over you: 3:18 Now then do -it: for the LORD hath spoken of David, saying, By the hand of my -servant David I will save my people Israel out of the hand of the -Philistines, and out of the hand of all their enemies. - -3:19 And Abner also spake in the ears of Benjamin: and Abner went also -to speak in the ears of David in Hebron all that seemed good to -Israel, and that seemed good to the whole house of Benjamin. - -3:20 So Abner came to David to Hebron, and twenty men with him. And -David made Abner and the men that were with him a feast. - -3:21 And Abner said unto David, I will arise and go, and will gather -all Israel unto my lord the king, that they may make a league with -thee, and that thou mayest reign over all that thine heart desireth. -And David sent Abner away; and he went in peace. - -3:22 And, behold, the servants of David and Joab came from pursuing a -troop, and brought in a great spoil with them: but Abner was not with -David in Hebron; for he had sent him away, and he was gone in peace. - -3:23 When Joab and all the host that was with him were come, they told -Joab, saying, Abner the son of Ner came to the king, and he hath sent -him away, and he is gone in peace. - -3:24 Then Joab came to the king, and said, What hast thou done? -behold, Abner came unto thee; why is it that thou hast sent him away, -and he is quite gone? 3:25 Thou knowest Abner the son of Ner, that he -came to deceive thee, and to know thy going out and thy coming in, and -to know all that thou doest. - -3:26 And when Joab was come out from David, he sent messengers after -Abner, which brought him again from the well of Sirah: but David knew -it not. - -3:27 And when Abner was returned to Hebron, Joab took him aside in the -gate to speak with him quietly, and smote him there under the fifth -rib, that he died, for the blood of Asahel his brother. - -3:28 And afterward when David heard it, he said, I and my kingdom are -guiltless before the LORD for ever from the blood of Abner the son of -Ner: 3:29 Let it rest on the head of Joab, and on all his father's -house; and let there not fail from the house of Joab one that hath an -issue, or that is a leper, or that leaneth on a staff, or that falleth -on the sword, or that lacketh bread. - -3:30 So Joab, and Abishai his brother slew Abner, because he had slain -their brother Asahel at Gibeon in the battle. - -3:31 And David said to Joab, and to all the people that were with him, -Rend your clothes, and gird you with sackcloth, and mourn before -Abner. And king David himself followed the bier. - -3:32 And they buried Abner in Hebron: and the king lifted up his -voice, and wept at the grave of Abner; and all the people wept. - -3:33 And the king lamented over Abner, and said, Died Abner as a fool -dieth? 3:34 Thy hands were not bound, nor thy feet put into fetters: -as a man falleth before wicked men, so fellest thou. And all the -people wept again over him. - -3:35 And when all the people came to cause David to eat meat while it -was yet day, David sware, saying, So do God to me, and more also, if I -taste bread, or ought else, till the sun be down. - -3:36 And all the people took notice of it, and it pleased them: as -whatsoever the king did pleased all the people. - -3:37 For all the people and all Israel understood that day that it was -not of the king to slay Abner the son of Ner. - -3:38 And the king said unto his servants, Know ye not that there is a -prince and a great man fallen this day in Israel? 3:39 And I am this -day weak, though anointed king; and these men the sons of Zeruiah be -too hard for me: the LORD shall reward the doer of evil according to -his wickedness. - -4:1 And when Saul's son heard that Abner was dead in Hebron, his hands -were feeble, and all the Israelites were troubled. - -4:2 And Saul's son had two men that were captains of bands: the name -of the one was Baanah, and the name of the other Rechab, the sons of -Rimmon a Beerothite, of the children of Benjamin: (for Beeroth also -was reckoned to Benjamin. - -4:3 And the Beerothites fled to Gittaim, and were sojourners there -until this day.) 4:4 And Jonathan, Saul's son, had a son that was -lame of his feet. He was five years old when the tidings came of Saul -and Jonathan out of Jezreel, and his nurse took him up, and fled: and -it came to pass, as she made haste to flee, that he fell, and became -lame. And his name was Mephibosheth. - -4:5 And the sons of Rimmon the Beerothite, Rechab and Baanah, went, -and came about the heat of the day to the house of Ishbosheth, who lay -on a bed at noon. - -4:6 And they came thither into the midst of the house, as though they -would have fetched wheat; and they smote him under the fifth rib: and -Rechab and Baanah his brother escaped. - -4:7 For when they came into the house, he lay on his bed in his -bedchamber, and they smote him, and slew him, and beheaded him, and -took his head, and gat them away through the plain all night. - -4:8 And they brought the head of Ishbosheth unto David to Hebron, and -said to the king, Behold the head of Ishbosheth the son of Saul thine -enemy, which sought thy life; and the LORD hath avenged my lord the -king this day of Saul, and of his seed. - -4:9 And David answered Rechab and Baanah his brother, the sons of -Rimmon the Beerothite, and said unto them, As the LORD liveth, who -hath redeemed my soul out of all adversity, 4:10 When one told me, -saying, Behold, Saul is dead, thinking to have brought good tidings, I -took hold of him, and slew him in Ziklag, who thought that I would -have given him a reward for his tidings: 4:11 How much more, when -wicked men have slain a righteous person in his own house upon his -bed? shall I not therefore now require his blood of your hand, and -take you away from the earth? 4:12 And David commanded his young men, -and they slew them, and cut off their hands and their feet, and hanged -them up over the pool in Hebron. But they took the head of Ishbosheth, -and buried it in the sepulchre of Abner in Hebron. - -5:1 Then came all the tribes of Israel to David unto Hebron, and -spake, saying, Behold, we are thy bone and thy flesh. - -5:2 Also in time past, when Saul was king over us, thou wast he that -leddest out and broughtest in Israel: and the LORD said to thee, Thou -shalt feed my people Israel, and thou shalt be a captain over Israel. - -5:3 So all the elders of Israel came to the king to Hebron; and king -David made a league with them in Hebron before the LORD: and they -anointed David king over Israel. - -5:4 David was thirty years old when he began to reign, and he reigned -forty years. - -5:5 In Hebron he reigned over Judah seven years and six months: and in -Jerusalem he reigned thirty and three years over all Israel and Judah. - -5:6 And the king and his men went to Jerusalem unto the Jebusites, the -inhabitants of the land: which spake unto David, saying, Except thou -take away the blind and the lame, thou shalt not come in hither: -thinking, David cannot come in hither. - -5:7 Nevertheless David took the strong hold of Zion: the same is the -city of David. - -5:8 And David said on that day, Whosoever getteth up to the gutter, -and smiteth the Jebusites, and the lame and the blind that are hated -of David's soul, he shall be chief and captain. Wherefore they said, -The blind and the lame shall not come into the house. - -5:9 So David dwelt in the fort, and called it the city of David. And -David built round about from Millo and inward. - -5:10 And David went on, and grew great, and the LORD God of hosts was -with him. - -5:11 And Hiram king of Tyre sent messengers to David, and cedar trees, -and carpenters, and masons: and they built David an house. - -5:12 And David perceived that the LORD had established him king over -Israel, and that he had exalted his kingdom for his people Israel's -sake. - -5:13 And David took him more concubines and wives out of Jerusalem, -after he was come from Hebron: and there were yet sons and daughters -born to David. - -5:14 And these be the names of those that were born unto him in -Jerusalem; Shammuah, and Shobab, and Nathan, and Solomon, 5:15 Ibhar -also, and Elishua, and Nepheg, and Japhia, 5:16 And Elishama, and -Eliada, and Eliphalet. - -5:17 But when the Philistines heard that they had anointed David king -over Israel, all the Philistines came up to seek David; and David -heard of it, and went down to the hold. - -5:18 The Philistines also came and spread themselves in the valley of -Rephaim. - -5:19 And David enquired of the LORD, saying, Shall I go up to the -Philistines? wilt thou deliver them into mine hand? And the LORD said -unto David, Go up: for I will doubtless deliver the Philistines into -thine hand. - -5:20 And David came to Baalperazim, and David smote them there, and -said, The LORD hath broken forth upon mine enemies before me, as the -breach of waters. Therefore he called the name of that place -Baalperazim. - -5:21 And there they left their images, and David and his men burned -them. - -5:22 And the Philistines came up yet again, and spread themselves in -the valley of Rephaim. - -5:23 And when David enquired of the LORD, he said, Thou shalt not go -up; but fetch a compass behind them, and come upon them over against -the mulberry trees. - -5:24 And let it be, when thou hearest the sound of a going in the tops -of the mulberry trees, that then thou shalt bestir thyself: for then -shall the LORD go out before thee, to smite the host of the -Philistines. - -5:25 And David did so, as the LORD had commanded him; and smote the -Philistines from Geba until thou come to Gazer. - -6:1 Again, David gathered together all the chosen men of Israel, -thirty thousand. - -6:2 And David arose, and went with all the people that were with him -from Baale of Judah, to bring up from thence the ark of God, whose -name is called by the name of the LORD of hosts that dwelleth between -the cherubims. - -6:3 And they set the ark of God upon a new cart, and brought it out of -the house of Abinadab that was in Gibeah: and Uzzah and Ahio, the sons -of Abinadab, drave the new cart. - -6:4 And they brought it out of the house of Abinadab which was at -Gibeah, accompanying the ark of God: and Ahio went before the ark. - -6:5 And David and all the house of Israel played before the LORD on -all manner of instruments made of fir wood, even on harps, and on -psalteries, and on timbrels, and on cornets, and on cymbals. - -6:6 And when they came to Nachon's threshingfloor, Uzzah put forth his -hand to the ark of God, and took hold of it; for the oxen shook it. - -6:7 And the anger of the LORD was kindled against Uzzah; and God smote -him there for his error; and there he died by the ark of God. - -6:8 And David was displeased, because the LORD had made a breach upon -Uzzah: and he called the name of the place Perezuzzah to this day. - -6:9 And David was afraid of the LORD that day, and said, How shall the -ark of the LORD come to me? 6:10 So David would not remove the ark of -the LORD unto him into the city of David: but David carried it aside -into the house of Obededom the Gittite. - -6:11 And the ark of the LORD continued in the house of Obededom the -Gittite three months: and the LORD blessed Obededom, and all his -household. - -6:12 And it was told king David, saying, The LORD hath blessed the -house of Obededom, and all that pertaineth unto him, because of the -ark of God. So David went and brought up the ark of God from the house -of Obededom into the city of David with gladness. - -6:13 And it was so, that when they that bare the ark of the LORD had -gone six paces, he sacrificed oxen and fatlings. - -6:14 And David danced before the LORD with all his might; and David -was girded with a linen ephod. - -6:15 So David and all the house of Israel brought up the ark of the -LORD with shouting, and with the sound of the trumpet. - -6:16 And as the ark of the LORD came into the city of David, Michal -Saul's daughter looked through a window, and saw king David leaping -and dancing before the LORD; and she despised him in her heart. - -6:17 And they brought in the ark of the LORD, and set it in his place, -in the midst of the tabernacle that David had pitched for it: and -David offered burnt offerings and peace offerings before the LORD. - -6:18 And as soon as David had made an end of offering burnt offerings -and peace offerings, he blessed the people in the name of the LORD of -hosts. - -6:19 And he dealt among all the people, even among the whole multitude -of Israel, as well to the women as men, to every one a cake of bread, -and a good piece of flesh, and a flagon of wine. So all the people -departed every one to his house. - -6:20 Then David returned to bless his household. And Michal the -daughter of Saul came out to meet David, and said, How glorious was -the king of Israel to day, who uncovered himself to day in the eyes of -the handmaids of his servants, as one of the vain fellows shamelessly -uncovereth himself! 6:21 And David said unto Michal, It was before -the LORD, which chose me before thy father, and before all his house, -to appoint me ruler over the people of the LORD, over Israel: -therefore will I play before the LORD. - -6:22 And I will yet be more vile than thus, and will be base in mine -own sight: and of the maidservants which thou hast spoken of, of them -shall I be had in honour. - -6:23 Therefore Michal the daughter of Saul had no child unto the day -of her death. - -7:1 And it came to pass, when the king sat in his house, and the LORD -had given him rest round about from all his enemies; 7:2 That the king -said unto Nathan the prophet, See now, I dwell in an house of cedar, -but the ark of God dwelleth within curtains. - -7:3 And Nathan said to the king, Go, do all that is in thine heart; -for the LORD is with thee. - -7:4 And it came to pass that night, that the word of the LORD came -unto Nathan, saying, 7:5 Go and tell my servant David, Thus saith the -LORD, Shalt thou build me an house for me to dwell in? 7:6 Whereas I -have not dwelt in any house since the time that I brought up the -children of Israel out of Egypt, even to this day, but have walked in -a tent and in a tabernacle. - -7:7 In all the places wherein I have walked with all the children of -Israel spake I a word with any of the tribes of Israel, whom I -commanded to feed my people Israel, saying, Why build ye not me an -house of cedar? 7:8 Now therefore so shalt thou say unto my servant -David, Thus saith the LORD of hosts, I took thee from the sheepcote, -from following the sheep, to be ruler over my people, over Israel: 7:9 -And I was with thee whithersoever thou wentest, and have cut off all -thine enemies out of thy sight, and have made thee a great name, like -unto the name of the great men that are in the earth. - -7:10 Moreover I will appoint a place for my people Israel, and will -plant them, that they may dwell in a place of their own, and move no -more; neither shall the children of wickedness afflict them any more, -as beforetime, 7:11 And as since the time that I commanded judges to -be over my people Israel, and have caused thee to rest from all thine -enemies. Also the LORD telleth thee that he will make thee an house. - -7:12 And when thy days be fulfilled, and thou shalt sleep with thy -fathers, I will set up thy seed after thee, which shall proceed out of -thy bowels, and I will establish his kingdom. - -7:13 He shall build an house for my name, and I will stablish the -throne of his kingdom for ever. - -7:14 I will be his father, and he shall be my son. If he commit -iniquity, I will chasten him with the rod of men, and with the stripes -of the children of men: 7:15 But my mercy shall not depart away from -him, as I took it from Saul, whom I put away before thee. - -7:16 And thine house and thy kingdom shall be established for ever -before thee: thy throne shall be established for ever. - -7:17 According to all these words, and according to all this vision, -so did Nathan speak unto David. - -7:18 Then went king David in, and sat before the LORD, and he said, -Who am I, O Lord GOD? and what is my house, that thou hast brought me -hitherto? 7:19 And this was yet a small thing in thy sight, O Lord -GOD; but thou hast spoken also of thy servant's house for a great -while to come. And is this the manner of man, O Lord GOD? 7:20 And -what can David say more unto thee? for thou, Lord GOD, knowest thy -servant. - -7:21 For thy word's sake, and according to thine own heart, hast thou -done all these great things, to make thy servant know them. - -7:22 Wherefore thou art great, O LORD God: for there is none like -thee, neither is there any God beside thee, according to all that we -have heard with our ears. - -7:23 And what one nation in the earth is like thy people, even like -Israel, whom God went to redeem for a people to himself, and to make -him a name, and to do for you great things and terrible, for thy land, -before thy people, which thou redeemedst to thee from Egypt, from the -nations and their gods? 7:24 For thou hast confirmed to thyself thy -people Israel to be a people unto thee for ever: and thou, LORD, art -become their God. - -7:25 And now, O LORD God, the word that thou hast spoken concerning -thy servant, and concerning his house, establish it for ever, and do -as thou hast said. - -7:26 And let thy name be magnified for ever, saying, The LORD of hosts -is the God over Israel: and let the house of thy servant David be -established before thee. - -7:27 For thou, O LORD of hosts, God of Israel, hast revealed to thy -servant, saying, I will build thee an house: therefore hath thy -servant found in his heart to pray this prayer unto thee. - -7:28 And now, O Lord GOD, thou art that God, and thy words be true, -and thou hast promised this goodness unto thy servant: 7:29 Therefore -now let it please thee to bless the house of thy servant, that it may -continue for ever before thee: for thou, O Lord GOD, hast spoken it: -and with thy blessing let the house of thy servant be blessed for -ever. - -8:1 And after this it came to pass that David smote the Philistines, -and subdued them: and David took Methegammah out of the hand of the -Philistines. - -8:2 And he smote Moab, and measured them with a line, casting them -down to the ground; even with two lines measured he to put to death, -and with one full line to keep alive. And so the Moabites became -David's servants, and brought gifts. - -8:3 David smote also Hadadezer, the son of Rehob, king of Zobah, as he -went to recover his border at the river Euphrates. - -8:4 And David took from him a thousand chariots, and seven hundred -horsemen, and twenty thousand footmen: and David houghed all the -chariot horses, but reserved of them for an hundred chariots. - -8:5 And when the Syrians of Damascus came to succour Hadadezer king of -Zobah, David slew of the Syrians two and twenty thousand men. - -8:6 Then David put garrisons in Syria of Damascus: and the Syrians -became servants to David, and brought gifts. And the LORD preserved -David whithersoever he went. - -8:7 And David took the shields of gold that were on the servants of -Hadadezer, and brought them to Jerusalem. - -8:8 And from Betah, and from Berothai, cities of Hadadezer, king David -took exceeding much brass. - -8:9 When Toi king of Hamath heard that David had smitten all the host -of Hadadezer, 8:10 Then Toi sent Joram his son unto king David, to -salute him, and to bless him, because he had fought against Hadadezer, -and smitten him: for Hadadezer had wars with Toi. And Joram brought -with him vessels of silver, and vessels of gold, and vessels of brass: -8:11 Which also king David did dedicate unto the LORD, with the silver -and gold that he had dedicated of all nations which he subdued; 8:12 -Of Syria, and of Moab, and of the children of Ammon, and of the -Philistines, and of Amalek, and of the spoil of Hadadezer, son of -Rehob, king of Zobah. - -8:13 And David gat him a name when he returned from smiting of the -Syrians in the valley of salt, being eighteen thousand men. - -8:14 And he put garrisons in Edom; throughout all Edom put he -garrisons, and all they of Edom became David's servants. And the LORD -preserved David whithersoever he went. - -8:15 And David reigned over all Israel; and David executed judgment -and justice unto all his people. - -8:16 And Joab the son of Zeruiah was over the host; and Jehoshaphat -the son of Ahilud was recorder; 8:17 And Zadok the son of Ahitub, and -Ahimelech the son of Abiathar, were the priests; and Seraiah was the -scribe; 8:18 And Benaiah the son of Jehoiada was over both the -Cherethites and the Pelethites; and David's sons were chief rulers. - -9:1 And David said, Is there yet any that is left of the house of -Saul, that I may shew him kindness for Jonathan's sake? 9:2 And there -was of the house of Saul a servant whose name was Ziba. And when they -had called him unto David, the king said unto him, Art thou Ziba? And -he said, Thy servant is he. - -9:3 And the king said, Is there not yet any of the house of Saul, that -I may shew the kindness of God unto him? And Ziba said unto the king, -Jonathan hath yet a son, which is lame on his feet. - -9:4 And the king said unto him, Where is he? And Ziba said unto the -king, Behold, he is in the house of Machir, the son of Ammiel, in -Lodebar. - -9:5 Then king David sent, and fetched him out of the house of Machir, -the son of Ammiel, from Lodebar. - -9:6 Now when Mephibosheth, the son of Jonathan, the son of Saul, was -come unto David, he fell on his face, and did reverence. And David -said, Mephibosheth. And he answered, Behold thy servant! 9:7 And -David said unto him, Fear not: for I will surely shew thee kindness -for Jonathan thy father's sake, and will restore thee all the land of -Saul thy father; and thou shalt eat bread at my table continually. - -9:8 And he bowed himself, and said, What is thy servant, that thou -shouldest look upon such a dead dog as I am? 9:9 Then the king called -to Ziba, Saul's servant, and said unto him, I have given unto thy -master's son all that pertained to Saul and to all his house. - -9:10 Thou therefore, and thy sons, and thy servants, shall till the -land for him, and thou shalt bring in the fruits, that thy master's -son may have food to eat: but Mephibosheth thy master's son shall eat -bread alway at my table. Now Ziba had fifteen sons and twenty -servants. - -9:11 Then said Ziba unto the king, According to all that my lord the -king hath commanded his servant, so shall thy servant do. As for -Mephibosheth, said the king, he shall eat at my table, as one of the -king's sons. - -9:12 And Mephibosheth had a young son, whose name was Micha. And all -that dwelt in the house of Ziba were servants unto Mephibosheth. - -9:13 So Mephibosheth dwelt in Jerusalem: for he did eat continually at -the king's table; and was lame on both his feet. - -10:1 And it came to pass after this, that the king of the children of -Ammon died, and Hanun his son reigned in his stead. - -10:2 Then said David, I will shew kindness unto Hanun the son of -Nahash, as his father shewed kindness unto me. And David sent to -comfort him by the hand of his servants for his father. And David's -servants came into the land of the children of Ammon. - -10:3 And the princes of the children of Ammon said unto Hanun their -lord, Thinkest thou that David doth honour thy father, that he hath -sent comforters unto thee? hath not David rather sent his servants -unto thee, to search the city, and to spy it out, and to overthrow it? -10:4 Wherefore Hanun took David's servants, and shaved off the one -half of their beards, and cut off their garments in the middle, even -to their buttocks, and sent them away. - -10:5 When they told it unto David, he sent to meet them, because the -men were greatly ashamed: and the king said, Tarry at Jericho until -your beards be grown, and then return. - -10:6 And when the children of Ammon saw that they stank before David, -the children of Ammon sent and hired the Syrians of Bethrehob and the -Syrians of Zoba, twenty thousand footmen, and of king Maacah a -thousand men, and of Ishtob twelve thousand men. - -10:7 And when David heard of it, he sent Joab, and all the host of the -mighty men. - -10:8 And the children of Ammon came out, and put the battle in array -at the entering in of the gate: and the Syrians of Zoba, and of Rehob, -and Ishtob, and Maacah, were by themselves in the field. - -10:9 When Joab saw that the front of the battle was against him before -and behind, he chose of all the choice men of Israel, and put them in -array against the Syrians: 10:10 And the rest of the people he -delivered into the hand of Abishai his brother, that he might put them -in array against the children of Ammon. - -10:11 And he said, If the Syrians be too strong for me, then thou -shalt help me: but if the children of Ammon be too strong for thee, -then I will come and help thee. - -10:12 Be of good courage, and let us play the men for our people, and -for the cities of our God: and the LORD do that which seemeth him -good. - -10:13 And Joab drew nigh, and the people that were with him, unto the -battle against the Syrians: and they fled before him. - -10:14 And when the children of Ammon saw that the Syrians were fled, -then fled they also before Abishai, and entered into the city. So Joab -returned from the children of Ammon, and came to Jerusalem. - -10:15 And when the Syrians saw that they were smitten before Israel, -they gathered themselves together. - -10:16 And Hadarezer sent, and brought out the Syrians that were beyond -the river: and they came to Helam; and Shobach the captain of the host -of Hadarezer went before them. - -10:17 And when it was told David, he gathered all Israel together, and -passed over Jordan, and came to Helam. And the Syrians set themselves -in array against David, and fought with him. - -10:18 And the Syrians fled before Israel; and David slew the men of -seven hundred chariots of the Syrians, and forty thousand horsemen, -and smote Shobach the captain of their host, who died there. - -10:19 And when all the kings that were servants to Hadarezer saw that -they were smitten before Israel, they made peace with Israel, and -served them. So the Syrians feared to help the children of Ammon any -more. - -11:1 And it came to pass, after the year was expired, at the time when -kings go forth to battle, that David sent Joab, and his servants with -him, and all Israel; and they destroyed the children of Ammon, and -besieged Rabbah. But David tarried still at Jerusalem. - -11:2 And it came to pass in an eveningtide, that David arose from off -his bed, and walked upon the roof of the king's house: and from the -roof he saw a woman washing herself; and the woman was very beautiful -to look upon. - -11:3 And David sent and enquired after the woman. And one said, Is not -this Bathsheba, the daughter of Eliam, the wife of Uriah the Hittite? -11:4 And David sent messengers, and took her; and she came in unto -him, and he lay with her; for she was purified from her uncleanness: -and she returned unto her house. - -11:5 And the woman conceived, and sent and told David, and said, I am -with child. - -11:6 And David sent to Joab, saying, Send me Uriah the Hittite. And -Joab sent Uriah to David. - -11:7 And when Uriah was come unto him, David demanded of him how Joab -did, and how the people did, and how the war prospered. - -11:8 And David said to Uriah, Go down to thy house, and wash thy feet. -And Uriah departed out of the king's house, and there followed him a -mess of meat from the king. - -11:9 But Uriah slept at the door of the king's house with all the -servants of his lord, and went not down to his house. - -11:10 And when they had told David, saying, Uriah went not down unto -his house, David said unto Uriah, Camest thou not from thy journey? -why then didst thou not go down unto thine house? 11:11 And Uriah -said unto David, The ark, and Israel, and Judah, abide in tents; and -my lord Joab, and the servants of my lord, are encamped in the open -fields; shall I then go into mine house, to eat and to drink, and to -lie with my wife? as thou livest, and as thy soul liveth, I will not -do this thing. - -11:12 And David said to Uriah, Tarry here to day also, and to morrow I -will let thee depart. So Uriah abode in Jerusalem that day, and the -morrow. - -11:13 And when David had called him, he did eat and drink before him; -and he made him drunk: and at even he went out to lie on his bed with -the servants of his lord, but went not down to his house. - -11:14 And it came to pass in the morning, that David wrote a letter to -Joab, and sent it by the hand of Uriah. - -11:15 And he wrote in the letter, saying, Set ye Uriah in the -forefront of the hottest battle, and retire ye from him, that he may -be smitten, and die. - -11:16 And it came to pass, when Joab observed the city, that he -assigned Uriah unto a place where he knew that valiant men were. - -11:17 And the men of the city went out, and fought with Joab: and -there fell some of the people of the servants of David; and Uriah the -Hittite died also. - -11:18 Then Joab sent and told David all the things concerning the war; -11:19 And charged the messenger, saying, When thou hast made an end of -telling the matters of the war unto the king, 11:20 And if so be that -the king's wrath arise, and he say unto thee, Wherefore approached ye -so nigh unto the city when ye did fight? knew ye not that they would -shoot from the wall? 11:21 Who smote Abimelech the son of -Jerubbesheth? did not a woman cast a piece of a millstone upon him -from the wall, that he died in Thebez? why went ye nigh the wall? then -say thou, Thy servant Uriah the Hittite is dead also. - -11:22 So the messenger went, and came and shewed David all that Joab -had sent him for. - -11:23 And the messenger said unto David, Surely the men prevailed -against us, and came out unto us into the field, and we were upon them -even unto the entering of the gate. - -11:24 And the shooters shot from off the wall upon thy servants; and -some of the king's servants be dead, and thy servant Uriah the Hittite -is dead also. - -11:25 Then David said unto the messenger, Thus shalt thou say unto -Joab, Let not this thing displease thee, for the sword devoureth one -as well as another: make thy battle more strong against the city, and -overthrow it: and encourage thou him. - -11:26 And when the wife of Uriah heard that Uriah her husband was -dead, she mourned for her husband. - -11:27 And when the mourning was past, David sent and fetched her to -his house, and she became his wife, and bare him a son. But the thing -that David had done displeased the LORD. - -12:1 And the LORD sent Nathan unto David. And he came unto him, and -said unto him, There were two men in one city; the one rich, and the -other poor. - -12:2 The rich man had exceeding many flocks and herds: 12:3 But the -poor man had nothing, save one little ewe lamb, which he had bought -and nourished up: and it grew up together with him, and with his -children; it did eat of his own meat, and drank of his own cup, and -lay in his bosom, and was unto him as a daughter. - -12:4 And there came a traveller unto the rich man, and he spared to -take of his own flock and of his own herd, to dress for the wayfaring -man that was come unto him; but took the poor man's lamb, and dressed -it for the man that was come to him. - -12:5 And David's anger was greatly kindled against the man; and he -said to Nathan, As the LORD liveth, the man that hath done this thing -shall surely die: 12:6 And he shall restore the lamb fourfold, because -he did this thing, and because he had no pity. - -12:7 And Nathan said to David, Thou art the man. Thus saith the LORD -God of Israel, I anointed thee king over Israel, and I delivered thee -out of the hand of Saul; 12:8 And I gave thee thy master's house, and -thy master's wives into thy bosom, and gave thee the house of Israel -and of Judah; and if that had been too little, I would moreover have -given unto thee such and such things. - -12:9 Wherefore hast thou despised the commandment of the LORD, to do -evil in his sight? thou hast killed Uriah the Hittite with the sword, -and hast taken his wife to be thy wife, and hast slain him with the -sword of the children of Ammon. - -12:10 Now therefore the sword shall never depart from thine house; -because thou hast despised me, and hast taken the wife of Uriah the -Hittite to be thy wife. - -12:11 Thus saith the LORD, Behold, I will raise up evil against thee -out of thine own house, and I will take thy wives before thine eyes, -and give them unto thy neighbour, and he shall lie with thy wives in -the sight of this sun. - -12:12 For thou didst it secretly: but I will do this thing before all -Israel, and before the sun. - -12:13 And David said unto Nathan, I have sinned against the LORD. And -Nathan said unto David, The LORD also hath put away thy sin; thou -shalt not die. - -12:14 Howbeit, because by this deed thou hast given great occasion to -the enemies of the LORD to blaspheme, the child also that is born unto -thee shall surely die. - -12:15 And Nathan departed unto his house. And the LORD struck the -child that Uriah's wife bare unto David, and it was very sick. - -12:16 David therefore besought God for the child; and David fasted, -and went in, and lay all night upon the earth. - -12:17 And the elders of his house arose, and went to him, to raise him -up from the earth: but he would not, neither did he eat bread with -them. - -12:18 And it came to pass on the seventh day, that the child died. And -the servants of David feared to tell him that the child was dead: for -they said, Behold, while the child was yet alive, we spake unto him, -and he would not hearken unto our voice: how will he then vex himself, -if we tell him that the child is dead? 12:19 But when David saw that -his servants whispered, David perceived that the child was dead: -therefore David said unto his servants, Is the child dead? And they -said, He is dead. - -12:20 Then David arose from the earth, and washed, and anointed -himself, and changed his apparel, and came into the house of the LORD, -and worshipped: then he came to his own house; and when he required, -they set bread before him, and he did eat. - -12:21 Then said his servants unto him, What thing is this that thou -hast done? thou didst fast and weep for the child, while it was alive; -but when the child was dead, thou didst rise and eat bread. - -12:22 And he said, While the child was yet alive, I fasted and wept: -for I said, Who can tell whether GOD will be gracious to me, that the -child may live? 12:23 But now he is dead, wherefore should I fast? -can I bring him back again? I shall go to him, but he shall not return -to me. - -12:24 And David comforted Bathsheba his wife, and went in unto her, -and lay with her: and she bare a son, and he called his name Solomon: -and the LORD loved him. - -12:25 And he sent by the hand of Nathan the prophet; and he called his -name Jedidiah, because of the LORD. - -12:26 And Joab fought against Rabbah of the children of Ammon, and -took the royal city. - -12:27 And Joab sent messengers to David, and said, I have fought -against Rabbah, and have taken the city of waters. - -12:28 Now therefore gather the rest of the people together, and encamp -against the city, and take it: lest I take the city, and it be called -after my name. - -12:29 And David gathered all the people together, and went to Rabbah, -and fought against it, and took it. - -12:30 And he took their king's crown from off his head, the weight -whereof was a talent of gold with the precious stones: and it was set -on David's head. And he brought forth the spoil of the city in great -abundance. - -12:31 And he brought forth the people that were therein, and put them -under saws, and under harrows of iron, and under axes of iron, and -made them pass through the brick-kiln: and thus did he unto all the -cities of the children of Ammon. So David and all the people returned -unto Jerusalem. - -13:1 And it came to pass after this, that Absalom the son of David had -a fair sister, whose name was Tamar; and Amnon the son of David loved -her. - -13:2 And Amnon was so vexed, that he fell sick for his sister Tamar; -for she was a virgin; and Amnon thought it hard for him to do anything -to her. - -13:3 But Amnon had a friend, whose name was Jonadab, the son of -Shimeah David's brother: and Jonadab was a very subtil man. - -13:4 And he said unto him, Why art thou, being the king's son, lean -from day to day? wilt thou not tell me? And Amnon said unto him, I -love Tamar, my brother Absalom's sister. - -13:5 And Jonadab said unto him, Lay thee down on thy bed, and make -thyself sick: and when thy father cometh to see thee, say unto him, I -pray thee, let my sister Tamar come, and give me meat, and dress the -meat in my sight, that I may see it, and eat it at her hand. - -13:6 So Amnon lay down, and made himself sick: and when the king was -come to see him, Amnon said unto the king, I pray thee, let Tamar my -sister come, and make me a couple of cakes in my sight, that I may eat -at her hand. - -13:7 Then David sent home to Tamar, saying, Go now to thy brother -Amnon's house, and dress him meat. - -13:8 So Tamar went to her brother Amnon's house; and he was laid down. -And she took flour, and kneaded it, and made cakes in his sight, and -did bake the cakes. - -13:9 And she took a pan, and poured them out before him; but he -refused to eat. And Amnon said, Have out all men from me. And they -went out every man from him. - -13:10 And Amnon said unto Tamar, Bring the meat into the chamber, that -I may eat of thine hand. And Tamar took the cakes which she had made, -and brought them into the chamber to Amnon her brother. - -13:11 And when she had brought them unto him to eat, he took hold of -her, and said unto her, Come lie with me, my sister. - -13:12 And she answered him, Nay, my brother, do not force me; for no -such thing ought to be done in Israel: do not thou this folly. - -13:13 And I, whither shall I cause my shame to go? and as for thee, -thou shalt be as one of the fools in Israel. Now therefore, I pray -thee, speak unto the king; for he will not withhold me from thee. - -13:14 Howbeit he would not hearken unto her voice: but, being stronger -than she, forced her, and lay with her. - -13:15 Then Amnon hated her exceedingly; so that the hatred wherewith -he hated her was greater than the love wherewith he had loved her. And -Amnon said unto her, Arise, be gone. - -13:16 And she said unto him, There is no cause: this evil in sending -me away is greater than the other that thou didst unto me. But he -would not hearken unto her. - -13:17 Then he called his servant that ministered unto him, and said, -Put now this woman out from me, and bolt the door after her. - -13:18 And she had a garment of divers colours upon her: for with such -robes were the king's daughters that were virgins apparelled. Then his -servant brought her out, and bolted the door after her. - -13:19 And Tamar put ashes on her head, and rent her garment of divers -colours that was on her, and laid her hand on her head, and went on -crying. - -13:20 And Absalom her brother said unto her, Hath Amnon thy brother -been with thee? but hold now thy peace, my sister: he is thy brother; -regard not this thing. So Tamar remained desolate in her brother -Absalom's house. - -13:21 But when king David heard of all these things, he was very -wroth. - -13:22 And Absalom spake unto his brother Amnon neither good nor bad: -for Absalom hated Amnon, because he had forced his sister Tamar. - -13:23 And it came to pass after two full years, that Absalom had -sheepshearers in Baalhazor, which is beside Ephraim: and Absalom -invited all the king's sons. - -13:24 And Absalom came to the king, and said, Behold now, thy servant -hath sheepshearers; let the king, I beseech thee, and his servants go -with thy servant. - -13:25 And the king said to Absalom, Nay, my son, let us not all now -go, lest we be chargeable unto thee. And he pressed him: howbeit he -would not go, but blessed him. - -13:26 Then said Absalom, If not, I pray thee, let my brother Amnon go -with us. And the king said unto him, Why should he go with thee? -13:27 But Absalom pressed him, that he let Amnon and all the king's -sons go with him. - -13:28 Now Absalom had commanded his servants, saying, Mark ye now when -Amnon's heart is merry with wine, and when I say unto you, Smite -Amnon; then kill him, fear not: have not I commanded you? be -courageous, and be valiant. - -13:29 And the servants of Absalom did unto Amnon as Absalom had -commanded. - -Then all the king's sons arose, and every man gat him up upon his -mule, and fled. - -13:30 And it came to pass, while they were in the way, that tidings -came to David, saying, Absalom hath slain all the king's sons, and -there is not one of them left. - -13:31 Then the king arose, and tare his garments, and lay on the -earth; and all his servants stood by with their clothes rent. - -13:32 And Jonadab, the son of Shimeah David's brother, answered and -said, Let not my lord suppose that they have slain all the young men -the king's sons; for Amnon only is dead: for by the appointment of -Absalom this hath been determined from the day that he forced his -sister Tamar. - -13:33 Now therefore let not my lord the king take the thing to his -heart, to think that all the king's sons are dead: for Amnon only is -dead. - -13:34 But Absalom fled. And the young man that kept the watch lifted -up his eyes, and looked, and, behold, there came much people by the -way of the hill side behind him. - -13:35 And Jonadab said unto the king, Behold, the king's sons come: as -thy servant said, so it is. - -13:36 And it came to pass, as soon as he had made an end of speaking, -that, behold, the king's sons came, and lifted up their voice and -wept: and the king also and all his servants wept very sore. - -13:37 But Absalom fled, and went to Talmai, the son of Ammihud, king -of Geshur. And David mourned for his son every day. - -13:38 So Absalom fled, and went to Geshur, and was there three years. - -13:39 And the soul of king David longed to go forth unto Absalom: for -he was comforted concerning Amnon, seeing he was dead. - -14:1 Now Joab the son of Zeruiah perceived that the king's heart was -toward Absalom. - -14:2 And Joab sent to Tekoah, and fetched thence a wise woman, and -said unto her, I pray thee, feign thyself to be a mourner, and put on -now mourning apparel, and anoint not thyself with oil, but be as a -woman that had a long time mourned for the dead: 14:3 And come to the -king, and speak on this manner unto him. So Joab put the words in her -mouth. - -14:4 And when the woman of Tekoah spake to the king, she fell on her -face to the ground, and did obeisance, and said, Help, O king. - -14:5 And the king said unto her, What aileth thee? And she answered, I -am indeed a widow woman, and mine husband is dead. - -14:6 And thy handmaid had two sons, and they two strove together in -the field, and there was none to part them, but the one smote the -other, and slew him. - -14:7 And, behold, the whole family is risen against thine handmaid, -and they said, Deliver him that smote his brother, that we may kill -him, for the life of his brother whom he slew; and we will destroy the -heir also: and so they shall quench my coal which is left, and shall -not leave to my husband neither name nor remainder upon the earth. - -14:8 And the king said unto the woman, Go to thine house, and I will -give charge concerning thee. - -14:9 And the woman of Tekoah said unto the king, My lord, O king, the -iniquity be on me, and on my father's house: and the king and his -throne be guiltless. - -14:10 And the king said, Whoever saith ought unto thee, bring him to -me, and he shall not touch thee any more. - -14:11 Then said she, I pray thee, let the king remember the LORD thy -God, that thou wouldest not suffer the revengers of blood to destroy -any more, lest they destroy my son. And he said, As the LORD liveth, -there shall not one hair of thy son fall to the earth. - -14:12 Then the woman said, Let thine handmaid, I pray thee, speak one -word unto my lord the king. And he said, Say on. - -14:13 And the woman said, Wherefore then hast thou thought such a -thing against the people of God? for the king doth speak this thing as -one which is faulty, in that the king doth not fetch home again his -banished. - -14:14 For we must needs die, and are as water spilt on the ground, -which cannot be gathered up again; neither doth God respect any -person: yet doth he devise means, that his banished be not expelled -from him. - -14:15 Now therefore that I am come to speak of this thing unto my lord -the king, it is because the people have made me afraid: and thy -handmaid said, I will now speak unto the king; it may be that the king -will perform the request of his handmaid. - -14:16 For the king will hear, to deliver his handmaid out of the hand -of the man that would destroy me and my son together out of the -inheritance of God. - -14:17 Then thine handmaid said, The word of my lord the king shall now -be comfortable: for as an angel of God, so is my lord the king to -discern good and bad: therefore the LORD thy God will be with thee. - -14:18 Then the king answered and said unto the woman, Hide not from -me, I pray thee, the thing that I shall ask thee. And the woman said, -Let my lord the king now speak. - -14:19 And the king said, Is not the hand of Joab with thee in all -this? And the woman answered and said, As thy soul liveth, my lord -the king, none can turn to the right hand or to the left from ought -that my lord the king hath spoken: for thy servant Joab, he bade me, -and he put all these words in the mouth of thine handmaid: 14:20 To -fetch about this form of speech hath thy servant Joab done this thing: -and my lord is wise, according to the wisdom of an angel of God, to -know all things that are in the earth. - -14:21 And the king said unto Joab, Behold now, I have done this thing: -go therefore, bring the young man Absalom again. - -14:22 And Joab fell to the ground on his face, and bowed himself, and -thanked the king: and Joab said, To day thy servant knoweth that I -have found grace in thy sight, my lord, O king, in that the king hath -fulfilled the request of his servant. - -14:23 So Joab arose and went to Geshur, and brought Absalom to -Jerusalem. - -14:24 And the king said, Let him turn to his own house, and let him -not see my face. So Absalom returned to his own house, and saw not the -king's face. - -14:25 But in all Israel there was none to be so much praised as -Absalom for his beauty: from the sole of his foot even to the crown of -his head there was no blemish in him. - -14:26 And when he polled his head, (for it was at every year's end -that he polled it: because the hair was heavy on him, therefore he -polled it:) he weighed the hair of his head at two hundred shekels -after the king's weight. - -14:27 And unto Absalom there were born three sons, and one daughter, -whose name was Tamar: she was a woman of a fair countenance. - -14:28 So Absalom dwelt two full years in Jerusalem, and saw not the -king's face. - -14:29 Therefore Absalom sent for Joab, to have sent him to the king; -but he would not come to him: and when he sent again the second time, -he would not come. - -14:30 Therefore he said unto his servants, See, Joab's field is near -mine, and he hath barley there; go and set it on fire. And Absalom's -servants set the field on fire. - -14:31 Then Joab arose, and came to Absalom unto his house, and said -unto him, Wherefore have thy servants set my field on fire? 14:32 And -Absalom answered Joab, Behold, I sent unto thee, saying, Come hither, -that I may send thee to the king, to say, Wherefore am I come from -Geshur? it had been good for me to have been there still: now -therefore let me see the king's face; and if there be any iniquity in -me, let him kill me. - -14:33 So Joab came to the king, and told him: and when he had called -for Absalom, he came to the king, and bowed himself on his face to the -ground before the king: and the king kissed Absalom. - -15:1 And it came to pass after this, that Absalom prepared him -chariots and horses, and fifty men to run before him. - -15:2 And Absalom rose up early, and stood beside the way of the gate: -and it was so, that when any man that had a controversy came to the -king for judgment, then Absalom called unto him, and said, Of what -city art thou? And he said, Thy servant is of one of the tribes of -Israel. - -15:3 And Absalom said unto him, See, thy matters are good and right; -but there is no man deputed of the king to hear thee. - -15:4 Absalom said moreover, Oh that I were made judge in the land, -that every man which hath any suit or cause might come unto me, and I -would do him justice! 15:5 And it was so, that when any man came nigh -to him to do him obeisance, he put forth his hand, and took him, and -kissed him. - -15:6 And on this manner did Absalom to all Israel that came to the -king for judgment: so Absalom stole the hearts of the men of Israel. - -15:7 And it came to pass after forty years, that Absalom said unto the -king, I pray thee, let me go and pay my vow, which I have vowed unto -the LORD, in Hebron. - -15:8 For thy servant vowed a vow while I abode at Geshur in Syria, -saying, If the LORD shall bring me again indeed to Jerusalem, then I -will serve the LORD. - -15:9 And the king said unto him, Go in peace. So he arose, and went to -Hebron. - -15:10 But Absalom sent spies throughout all the tribes of Israel, -saying, As soon as ye hear the sound of the trumpet, then ye shall -say, Absalom reigneth in Hebron. - -15:11 And with Absalom went two hundred men out of Jerusalem, that -were called; and they went in their simplicity, and they knew not any -thing. - -15:12 And Absalom sent for Ahithophel the Gilonite, David's -counsellor, from his city, even from Giloh, while he offered -sacrifices. And the conspiracy was strong; for the people increased -continually with Absalom. - -15:13 And there came a messenger to David, saying, The hearts of the -men of Israel are after Absalom. - -15:14 And David said unto all his servants that were with him at -Jerusalem, Arise, and let us flee; for we shall not else escape from -Absalom: make speed to depart, lest he overtake us suddenly, and bring -evil upon us, and smite the city with the edge of the sword. - -15:15 And the king's servants said unto the king, Behold, thy servants -are ready to do whatsoever my lord the king shall appoint. - -15:16 And the king went forth, and all his household after him. And -the king left ten women, which were concubines, to keep the house. - -15:17 And the king went forth, and all the people after him, and -tarried in a place that was far off. - -15:18 And all his servants passed on beside him; and all the -Cherethites, and all the Pelethites, and all the Gittites, six hundred -men which came after him from Gath, passed on before the king. - -15:19 Then said the king to Ittai the Gittite, Wherefore goest thou -also with us? return to thy place, and abide with the king: for thou -art a stranger, and also an exile. - -15:20 Whereas thou camest but yesterday, should I this day make thee -go up and down with us? seeing I go whither I may, return thou, and -take back thy brethren: mercy and truth be with thee. - -15:21 And Ittai answered the king, and said, As the LORD liveth, and -as my lord the king liveth, surely in what place my lord the king -shall be, whether in death or life, even there also will thy servant -be. - -15:22 And David said to Ittai, Go and pass over. And Ittai the Gittite -passed over, and all his men, and all the little ones that were with -him. - -15:23 And all the country wept with a loud voice, and all the people -passed over: the king also himself passed over the brook Kidron, and -all the people passed over, toward the way of the wilderness. - -15:24 And lo Zadok also, and all the Levites were with him, bearing -the ark of the covenant of God: and they set down the ark of God; and -Abiathar went up, until all the people had done passing out of the -city. - -15:25 And the king said unto Zadok, Carry back the ark of God into the -city: if I shall find favour in the eyes of the LORD, he will bring me -again, and shew me both it, and his habitation: 15:26 But if he thus -say, I have no delight in thee; behold, here am I, let him do to me as -seemeth good unto him. - -15:27 The king said also unto Zadok the priest, Art not thou a seer? -return into the city in peace, and your two sons with you, Ahimaaz thy -son, and Jonathan the son of Abiathar. - -15:28 See, I will tarry in the plain of the wilderness, until there -come word from you to certify me. - -15:29 Zadok therefore and Abiathar carried the ark of God again to -Jerusalem: and they tarried there. - -15:30 And David went up by the ascent of mount Olivet, and wept as he -went up, and had his head covered, and he went barefoot: and all the -people that was with him covered every man his head, and they went up, -weeping as they went up. - -15:31 And one told David, saying, Ahithophel is among the conspirators -with Absalom. And David said, O LORD, I pray thee, turn the counsel of -Ahithophel into foolishness. - -15:32 And it came to pass, that when David was come to the top of the -mount, where he worshipped God, behold, Hushai the Archite came to -meet him with his coat rent, and earth upon his head: 15:33 Unto whom -David said, If thou passest on with me, then thou shalt be a burden -unto me: 15:34 But if thou return to the city, and say unto Absalom, I -will be thy servant, O king; as I have been thy father's servant -hitherto, so will I now also be thy servant: then mayest thou for me -defeat the counsel of Ahithophel. - -15:35 And hast thou not there with thee Zadok and Abiathar the -priests? therefore it shall be, that what thing soever thou shalt -hear out of the king's house, thou shalt tell it to Zadok and Abiathar -the priests. - -15:36 Behold, they have there with them their two sons, Ahimaaz -Zadok's son, and Jonathan Abiathar's son; and by them ye shall send -unto me every thing that ye can hear. - -15:37 So Hushai David's friend came into the city, and Absalom came -into Jerusalem. - -16:1 And when David was a little past the top of the hill, behold, -Ziba the servant of Mephibosheth met him, with a couple of asses -saddled, and upon them two hundred loaves of bread, and an hundred -bunches of raisins, and an hundred of summer fruits, and a bottle of -wine. - -16:2 And the king said unto Ziba, What meanest thou by these? And Ziba -said, The asses be for the king's household to ride on; and the bread -and summer fruit for the young men to eat; and the wine, that such as -be faint in the wilderness may drink. - -16:3 And the king said, And where is thy master's son? And Ziba said -unto the king, Behold, he abideth at Jerusalem: for he said, To day -shall the house of Israel restore me the kingdom of my father. - -16:4 Then said the king to Ziba, Behold, thine are all that pertained -unto Mephibosheth. And Ziba said, I humbly beseech thee that I may -find grace in thy sight, my lord, O king. - -16:5 And when king David came to Bahurim, behold, thence came out a -man of the family of the house of Saul, whose name was Shimei, the son -of Gera: he came forth, and cursed still as he came. - -16:6 And he cast stones at David, and at all the servants of king -David: and all the people and all the mighty men were on his right -hand and on his left. - -16:7 And thus said Shimei when he cursed, Come out, come out, thou -bloody man, and thou man of Belial: 16:8 The LORD hath returned upon -thee all the blood of the house of Saul, in whose stead thou hast -reigned; and the LORD hath delivered the kingdom into the hand of -Absalom thy son: and, behold, thou art taken in thy mischief, because -thou art a bloody man. - -16:9 Then said Abishai the son of Zeruiah unto the king, Why should -this dead dog curse my lord the king? let me go over, I pray thee, and -take off his head. - -16:10 And the king said, What have I to do with you, ye sons of -Zeruiah? so let him curse, because the LORD hath said unto him, Curse -David. Who shall then say, Wherefore hast thou done so? 16:11 And -David said to Abishai, and to all his servants, Behold, my son, which -came forth of my bowels, seeketh my life: how much more now may this -Benjamite do it? let him alone, and let him curse; for the LORD hath -bidden him. - -16:12 It may be that the LORD will look on mine affliction, and that -the LORD will requite me good for his cursing this day. - -16:13 And as David and his men went by the way, Shimei went along on -the hill's side over against him, and cursed as he went, and threw -stones at him, and cast dust. - -16:14 And the king, and all the people that were with him, came weary, -and refreshed themselves there. - -16:15 And Absalom, and all the people the men of Israel, came to -Jerusalem, and Ahithophel with him. - -16:16 And it came to pass, when Hushai the Archite, David's friend, -was come unto Absalom, that Hushai said unto Absalom, God save the -king, God save the king. - -16:17 And Absalom said to Hushai, Is this thy kindness to thy friend? -why wentest thou not with thy friend? 16:18 And Hushai said unto -Absalom, Nay; but whom the LORD, and this people, and all the men of -Israel, choose, his will I be, and with him will I abide. - -16:19 And again, whom should I serve? should I not serve in the -presence of his son? as I have served in thy father's presence, so -will I be in thy presence. - -16:20 Then said Absalom to Ahithophel, Give counsel among you what we -shall do. - -16:21 And Ahithophel said unto Absalom, Go in unto thy father's -concubines, which he hath left to keep the house; and all Israel shall -hear that thou art abhorred of thy father: then shall the hands of all -that are with thee be strong. - -16:22 So they spread Absalom a tent upon the top of the house; and -Absalom went in unto his father's concubines in the sight of all -Israel. - -16:23 And the counsel of Ahithophel, which he counselled in those -days, was as if a man had enquired at the oracle of God: so was all -the counsel of Ahithophel both with David and with Absalom. - -17:1 Moreover Ahithophel said unto Absalom, Let me now choose out -twelve thousand men, and I will arise and pursue after David this -night: 17:2 And I will come upon him while he is weary and weak -handed, and will make him afraid: and all the people that are with him -shall flee; and I will smite the king only: 17:3 And I will bring back -all the people unto thee: the man whom thou seekest is as if all -returned: so all the people shall be in peace. - -17:4 And the saying pleased Absalom well, and all the elders of -Israel. - -17:5 Then said Absalom, Call now Hushai the Archite also, and let us -hear likewise what he saith. - -17:6 And when Hushai was come to Absalom, Absalom spake unto him, -saying, Ahithophel hath spoken after this manner: shall we do after -his saying? if not; speak thou. - -17:7 And Hushai said unto Absalom, The counsel that Ahithophel hath -given is not good at this time. - -17:8 For, said Hushai, thou knowest thy father and his men, that they -be mighty men, and they be chafed in their minds, as a bear robbed of -her whelps in the field: and thy father is a man of war, and will not -lodge with the people. - -17:9 Behold, he is hid now in some pit, or in some other place: and it -will come to pass, when some of them be overthrown at the first, that -whosoever heareth it will say, There is a slaughter among the people -that follow Absalom. - -17:10 And he also that is valiant, whose heart is as the heart of a -lion, shall utterly melt: for all Israel knoweth that thy father is a -mighty man, and they which be with him are valiant men. - -17:11 Therefore I counsel that all Israel be generally gathered unto -thee, from Dan even to Beersheba, as the sand that is by the sea for -multitude; and that thou go to battle in thine own person. - -17:12 So shall we come upon him in some place where he shall be found, -and we will light upon him as the dew falleth on the ground: and of -him and of all the men that are with him there shall not be left so -much as one. - -17:13 Moreover, if he be gotten into a city, then shall all Israel -bring ropes to that city, and we will draw it into the river, until -there be not one small stone found there. - -17:14 And Absalom and all the men of Israel said, The counsel of -Hushai the Archite is better than the counsel of Ahithophel. For the -LORD had appointed to defeat the good counsel of Ahithophel, to the -intent that the LORD might bring evil upon Absalom. - -17:15 Then said Hushai unto Zadok and to Abiathar the priests, Thus -and thus did Ahithophel counsel Absalom and the elders of Israel; and -thus and thus have I counselled. - -17:16 Now therefore send quickly, and tell David, saying, Lodge not -this night in the plains of the wilderness, but speedily pass over; -lest the king be swallowed up, and all the people that are with him. - -17:17 Now Jonathan and Ahimaaz stayed by Enrogel; for they might not -be seen to come into the city: and a wench went and told them; and -they went and told king David. - -17:18 Nevertheless a lad saw them, and told Absalom: but they went -both of them away quickly, and came to a man's house in Bahurim, which -had a well in his court; whither they went down. - -17:19 And the woman took and spread a covering over the well's mouth, -and spread ground corn thereon; and the thing was not known. - -17:20 And when Absalom's servants came to the woman to the house, they -said, Where is Ahimaaz and Jonathan? And the woman said unto them, -They be gone over the brook of water. And when they had sought and -could not find them, they returned to Jerusalem. - -17:21 And it came to pass, after they were departed, that they came up -out of the well, and went and told king David, and said unto David, -Arise, and pass quickly over the water: for thus hath Ahithophel -counselled against you. - -17:22 Then David arose, and all the people that were with him, and -they passed over Jordan: by the morning light there lacked not one of -them that was not gone over Jordan. - -17:23 And when Ahithophel saw that his counsel was not followed, he -saddled his ass, and arose, and gat him home to his house, to his -city, and put his household in order, and hanged himself, and died, -and was buried in the sepulchre of his father. - -17:24 Then David came to Mahanaim. And Absalom passed over Jordan, he -and all the men of Israel with him. - -17:25 And Absalom made Amasa captain of the host instead of Joab: -which Amasa was a man's son, whose name was Ithra an Israelite, that -went in to Abigail the daughter of Nahash, sister to Zeruiah Joab's -mother. - -17:26 So Israel and Absalom pitched in the land of Gilead. - -17:27 And it came to pass, when David was come to Mahanaim, that Shobi -the son of Nahash of Rabbah of the children of Ammon, and Machir the -son of Ammiel of Lodebar, and Barzillai the Gileadite of Rogelim, -17:28 Brought beds, and basons, and earthen vessels, and wheat, and -barley, and flour, and parched corn, and beans, and lentiles, and -parched pulse, 17:29 And honey, and butter, and sheep, and cheese of -kine, for David, and for the people that were with him, to eat: for -they said, The people is hungry, and weary, and thirsty, in the -wilderness. - -18:1 And David numbered the people that were with him, and set -captains of thousands, and captains of hundreds over them. - -18:2 And David sent forth a third part of the people under the hand of -Joab, and a third part under the hand of Abishai the son of Zeruiah, -Joab's brother, and a third part under the hand of Ittai the Gittite. -And the king said unto the people, I will surely go forth with you -myself also. - -18:3 But the people answered, Thou shalt not go forth: for if we flee -away, they will not care for us; neither if half of us die, will they -care for us: but now thou art worth ten thousand of us: therefore now -it is better that thou succour us out of the city. - -18:4 And the king said unto them, What seemeth you best I will do. And -the king stood by the gate side, and all the people came out by -hundreds and by thousands. - -18:5 And the king commanded Joab and Abishai and Ittai, saying, Deal -gently for my sake with the young man, even with Absalom. And all the -people heard when the king gave all the captains charge concerning -Absalom. - -18:6 So the people went out into the field against Israel: and the -battle was in the wood of Ephraim; 18:7 Where the people of Israel -were slain before the servants of David, and there was there a great -slaughter that day of twenty thousand men. - -18:8 For the battle was there scattered over the face of all the -country: and the wood devoured more people that day than the sword -devoured. - -18:9 And Absalom met the servants of David. And Absalom rode upon a -mule, and the mule went under the thick boughs of a great oak, and his -head caught hold of the oak, and he was taken up between the heaven -and the earth; and the mule that was under him went away. - -18:10 And a certain man saw it, and told Joab, and said, Behold, I saw -Absalom hanged in an oak. - -18:11 And Joab said unto the man that told him, And, behold, thou -sawest him, and why didst thou not smite him there to the ground? and -I would have given thee ten shekels of silver, and a girdle. - -18:12 And the man said unto Joab, Though I should receive a thousand -shekels of silver in mine hand, yet would I not put forth mine hand -against the king's son: for in our hearing the king charged thee and -Abishai and Ittai, saying, Beware that none touch the young man -Absalom. - -18:13 Otherwise I should have wrought falsehood against mine own life: -for there is no matter hid from the king, and thou thyself wouldest -have set thyself against me. - -18:14 Then said Joab, I may not tarry thus with thee. And he took -three darts in his hand, and thrust them through the heart of Absalom, -while he was yet alive in the midst of the oak. - -18:15 And ten young men that bare Joab's armour compassed about and -smote Absalom, and slew him. - -18:16 And Joab blew the trumpet, and the people returned from pursuing -after Israel: for Joab held back the people. - -18:17 And they took Absalom, and cast him into a great pit in the -wood, and laid a very great heap of stones upon him: and all Israel -fled every one to his tent. - -18:18 Now Absalom in his lifetime had taken and reared up for himself -a pillar, which is in the king's dale: for he said, I have no son to -keep my name in remembrance: and he called the pillar after his own -name: and it is called unto this day, Absalom's place. - -18:19 Then said Ahimaaz the son of Zadok, Let me now run, and bear the -king tidings, how that the LORD hath avenged him of his enemies. - -18:20 And Joab said unto him, Thou shalt not bear tidings this day, -but thou shalt bear tidings another day: but this day thou shalt bear -no tidings, because the king's son is dead. - -18:21 Then said Joab to Cushi, Go tell the king what thou hast seen. -And Cushi bowed himself unto Joab, and ran. - -18:22 Then said Ahimaaz the son of Zadok yet again to Joab, But -howsoever, let me, I pray thee, also run after Cushi. And Joab said, -Wherefore wilt thou run, my son, seeing that thou hast no tidings -ready? 18:23 But howsoever, said he, let me run. And he said unto -him, Run. Then Ahimaaz ran by the way of the plain, and overran Cushi. - -18:24 And David sat between the two gates: and the watchman went up to -the roof over the gate unto the wall, and lifted up his eyes, and -looked, and behold a man running alone. - -18:25 And the watchman cried, and told the king. And the king said, If -he be alone, there is tidings in his mouth. And he came apace, and -drew near. - -18:26 And the watchman saw another man running: and the watchman -called unto the porter, and said, Behold another man running alone. -And the king said, He also bringeth tidings. - -18:27 And the watchman said, Me thinketh the running of the foremost -is like the running of Ahimaaz the son of Zadok. And the king said, He -is a good man, and cometh with good tidings. - -18:28 And Ahimaaz called, and said unto the king, All is well. And he -fell down to the earth upon his face before the king, and said, -Blessed be the LORD thy God, which hath delivered up the men that -lifted up their hand against my lord the king. - -18:29 And the king said, Is the young man Absalom safe? And Ahimaaz -answered, When Joab sent the king's servant, and me thy servant, I saw -a great tumult, but I knew not what it was. - -18:30 And the king said unto him, Turn aside, and stand here. And he -turned aside, and stood still. - -18:31 And, behold, Cushi came; and Cushi said, Tidings, my lord the -king: for the LORD hath avenged thee this day of all them that rose up -against thee. - -18:32 And the king said unto Cushi, Is the young man Absalom safe? And -Cushi answered, The enemies of my lord the king, and all that rise -against thee to do thee hurt, be as that young man is. - -18:33 And the king was much moved, and went up to the chamber over the -gate, and wept: and as he went, thus he said, O my son Absalom, my -son, my son Absalom! would God I had died for thee, O Absalom, my son, -my son! 19:1 And it was told Joab, Behold, the king weepeth and -mourneth for Absalom. - -19:2 And the victory that day was turned into mourning unto all the -people: for the people heard say that day how the king was grieved for -his son. - -19:3 And the people gat them by stealth that day into the city, as -people being ashamed steal away when they flee in battle. - -19:4 But the king covered his face, and the king cried with a loud -voice, O my son Absalom, O Absalom, my son, my son! 19:5 And Joab -came into the house to the king, and said, Thou hast shamed this day -the faces of all thy servants, which this day have saved thy life, and -the lives of thy sons and of thy daughters, and the lives of thy -wives, and the lives of thy concubines; 19:6 In that thou lovest thine -enemies, and hatest thy friends. For thou hast declared this day, that -thou regardest neither princes nor servants: for this day I perceive, -that if Absalom had lived, and all we had died this day, then it had -pleased thee well. - -19:7 Now therefore arise, go forth, and speak comfortably unto thy -servants: for I swear by the LORD, if thou go not forth, there will -not tarry one with thee this night: and that will be worse unto thee -than all the evil that befell thee from thy youth until now. - -19:8 Then the king arose, and sat in the gate. And they told unto all -the people, saying, Behold, the king doth sit in the gate. And all the -people came before the king: for Israel had fled every man to his -tent. - -19:9 And all the people were at strife throughout all the tribes of -Israel, saying, The king saved us out of the hand of our enemies, and -he delivered us out of the hand of the Philistines; and now he is fled -out of the land for Absalom. - -19:10 And Absalom, whom we anointed over us, is dead in battle. Now -therefore why speak ye not a word of bringing the king back? 19:11 -And king David sent to Zadok and to Abiathar the priests, saying, -Speak unto the elders of Judah, saying, Why are ye the last to bring -the king back to his house? seeing the speech of all Israel is come to -the king, even to his house. - -19:12 Ye are my brethren, ye are my bones and my flesh: wherefore then -are ye the last to bring back the king? 19:13 And say ye to Amasa, -Art thou not of my bone, and of my flesh? God do so to me, and more -also, if thou be not captain of the host before me continually in the -room of Joab. - -19:14 And he bowed the heart of all the men of Judah, even as the -heart of one man; so that they sent this word unto the king, Return -thou, and all thy servants. - -19:15 So the king returned, and came to Jordan. And Judah came to -Gilgal, to go to meet the king, to conduct the king over Jordan. - -19:16 And Shimei the son of Gera, a Benjamite, which was of Bahurim, -hasted and came down with the men of Judah to meet king David. - -19:17 And there were a thousand men of Benjamin with him, and Ziba the -servant of the house of Saul, and his fifteen sons and his twenty -servants with him; and they went over Jordan before the king. - -19:18 And there went over a ferry boat to carry over the king's -household, and to do what he thought good. And Shimei the son of Gera -fell down before the king, as he was come over Jordan; 19:19 And said -unto the king, Let not my lord impute iniquity unto me, neither do -thou remember that which thy servant did perversely the day that my -lord the king went out of Jerusalem, that the king should take it to -his heart. - -19:20 For thy servant doth know that I have sinned: therefore, behold, -I am come the first this day of all the house of Joseph to go down to -meet my lord the king. - -19:21 But Abishai the son of Zeruiah answered and said, Shall not -Shimei be put to death for this, because he cursed the LORD's -anointed? 19:22 And David said, What have I to do with you, ye sons -of Zeruiah, that ye should this day be adversaries unto me? shall -there any man be put to death this day in Israel? for do not I know -that I am this day king over Israel? 19:23 Therefore the king said -unto Shimei, Thou shalt not die. And the king sware unto him. - -19:24 And Mephibosheth the son of Saul came down to meet the king, and -had neither dressed his feet, nor trimmed his beard, nor washed his -clothes, from the day the king departed until the day he came again in -peace. - -19:25 And it came to pass, when he was come to Jerusalem to meet the -king, that the king said unto him, Wherefore wentest not thou with me, -Mephibosheth? 19:26 And he answered, My lord, O king, my servant -deceived me: for thy servant said, I will saddle me an ass, that I may -ride thereon, and go to the king; because thy servant is lame. - -19:27 And he hath slandered thy servant unto my lord the king; but my -lord the king is as an angel of God: do therefore what is good in -thine eyes. - -19:28 For all of my father's house were but dead men before my lord -the king: yet didst thou set thy servant among them that did eat at -thine own table. What right therefore have I yet to cry any more unto -the king? 19:29 And the king said unto him, Why speakest thou any -more of thy matters? I have said, Thou and Ziba divide the land. - -19:30 And Mephibosheth said unto the king, Yea, let him take all, -forasmuch as my lord the king is come again in peace unto his own -house. - -19:31 And Barzillai the Gileadite came down from Rogelim, and went -over Jordan with the king, to conduct him over Jordan. - -19:32 Now Barzillai was a very aged man, even fourscore years old: and -he had provided the king of sustenance while he lay at Mahanaim; for -he was a very great man. - -19:33 And the king said unto Barzillai, Come thou over with me, and I -will feed thee with me in Jerusalem. - -19:34 And Barzillai said unto the king, How long have I to live, that -I should go up with the king unto Jerusalem? 19:35 I am this day -fourscore years old: and can I discern between good and evil? can thy -servant taste what I eat or what I drink? can I hear any more the -voice of singing men and singing women? wherefore then should thy -servant be yet a burden unto my lord the king? 19:36 Thy servant will -go a little way over Jordan with the king: and why should the king -recompense it me with such a reward? 19:37 Let thy servant, I pray -thee, turn back again, that I may die in mine own city, and be buried -by the grave of my father and of my mother. But behold thy servant -Chimham; let him go over with my lord the king; and do to him what -shall seem good unto thee. - -19:38 And the king answered, Chimham shall go over with me, and I will -do to him that which shall seem good unto thee: and whatsoever thou -shalt require of me, that will I do for thee. - -19:39 And all the people went over Jordan. And when the king was come -over, the king kissed Barzillai, and blessed him; and he returned unto -his own place. - -19:40 Then the king went on to Gilgal, and Chimham went on with him: -and all the people of Judah conducted the king, and also half the -people of Israel. - -19:41 And, behold, all the men of Israel came to the king, and said -unto the king, Why have our brethren the men of Judah stolen thee -away, and have brought the king, and his household, and all David's -men with him, over Jordan? 19:42 And all the men of Judah answered -the men of Israel, Because the king is near of kin to us: wherefore -then be ye angry for this matter? have we eaten at all of the king's -cost? or hath he given us any gift? 19:43 And the men of Israel -answered the men of Judah, and said, We have ten parts in the king, -and we have also more right in David than ye: why then did ye despise -us, that our advice should not be first had in bringing back our king? -And the words of the men of Judah were fiercer than the words of the -men of Israel. - -20:1 And there happened to be there a man of Belial, whose name was -Sheba, the son of Bichri, a Benjamite: and he blew a trumpet, and -said, We have no part in David, neither have we inheritance in the son -of Jesse: every man to his tents, O Israel. - -20:2 So every man of Israel went up from after David, and followed -Sheba the son of Bichri: but the men of Judah clave unto their king, -from Jordan even to Jerusalem. - -20:3 And David came to his house at Jerusalem; and the king took the -ten women his concubines, whom he had left to keep the house, and put -them in ward, and fed them, but went not in unto them. So they were -shut up unto the day of their death, living in widowhood. - -20:4 Then said the king to Amasa, Assemble me the men of Judah within -three days, and be thou here present. - -20:5 So Amasa went to assemble the men of Judah: but he tarried longer -than the set time which he had appointed him. - -20:6 And David said to Abishai, Now shall Sheba the son of Bichri do -us more harm than did Absalom: take thou thy lord's servants, and -pursue after him, lest he get him fenced cities, and escape us. - -20:7 And there went out after him Joab's men, and the Cherethites, and -the Pelethites, and all the mighty men: and they went out of -Jerusalem, to pursue after Sheba the son of Bichri. - -20:8 When they were at the great stone which is in Gibeon, Amasa went -before them. And Joab's garment that he had put on was girded unto -him, and upon it a girdle with a sword fastened upon his loins in the -sheath thereof; and as he went forth it fell out. - -20:9 And Joab said to Amasa, Art thou in health, my brother? And Joab -took Amasa by the beard with the right hand to kiss him. - -20:10 But Amasa took no heed to the sword that was in Joab's hand: so -he smote him therewith in the fifth rib, and shed out his bowels to -the ground, and struck him not again; and he died. So Joab and Abishai -his brother pursued after Sheba the son of Bichri. - -20:11 And one of Joab's men stood by him, and said, He that favoureth -Joab, and he that is for David, let him go after Joab. - -20:12 And Amasa wallowed in blood in the midst of the highway. And -when the man saw that all the people stood still, he removed Amasa out -of the highway into the field, and cast a cloth upon him, when he saw -that every one that came by him stood still. - -20:13 When he was removed out of the highway, all the people went on -after Joab, to pursue after Sheba the son of Bichri. - -20:14 And he went through all the tribes of Israel unto Abel, and to -Bethmaachah, and all the Berites: and they were gathered together, and -went also after him. - -20:15 And they came and besieged him in Abel of Bethmaachah, and they -cast up a bank against the city, and it stood in the trench: and all -the people that were with Joab battered the wall, to throw it down. - -20:16 Then cried a wise woman out of the city, Hear, hear; say, I pray -you, unto Joab, Come near hither, that I may speak with thee. - -20:17 And when he was come near unto her, the woman said, Art thou -Joab? And he answered, I am he. Then she said unto him, Hear the -words of thine handmaid. And he answered, I do hear. - -20:18 Then she spake, saying, They were wont to speak in old time, -saying, They shall surely ask counsel at Abel: and so they ended the -matter. - -20:19 I am one of them that are peaceable and faithful in Israel: thou -seekest to destroy a city and a mother in Israel: why wilt thou -swallow up the inheritance of the LORD? 20:20 And Joab answered and -said, Far be it, far be it from me, that I should swallow up or -destroy. - -20:21 The matter is not so: but a man of mount Ephraim, Sheba the son -of Bichri by name, hath lifted up his hand against the king, even -against David: deliver him only, and I will depart from the city. And -the woman said unto Joab, Behold, his head shall be thrown to thee -over the wall. - -20:22 Then the woman went unto all the people in her wisdom. And they -cut off the head of Sheba the son of Bichri, and cast it out to Joab. -And he blew a trumpet, and they retired from the city, every man to -his tent. And Joab returned to Jerusalem unto the king. - -20:23 Now Joab was over all the host of Israel: and Benaiah the son of -Jehoiada was over the Cherethites and over the Pelethites: 20:24 And -Adoram was over the tribute: and Jehoshaphat the son of Ahilud was -recorder: 20:25 And Sheva was scribe: and Zadok and Abiathar were the -priests: 20:26 And Ira also the Jairite was a chief ruler about David. - -21:1 Then there was a famine in the days of David three years, year -after year; and David enquired of the LORD. And the LORD answered, It -is for Saul, and for his bloody house, because he slew the Gibeonites. - -21:2 And the king called the Gibeonites, and said unto them; (now the -Gibeonites were not of the children of Israel, but of the remnant of -the Amorites; and the children of Israel had sworn unto them: and Saul -sought to slay them in his zeal to the children of Israel and Judah.) -21:3 Wherefore David said unto the Gibeonites, What shall I do for -you? and wherewith shall I make the atonement, that ye may bless the -inheritance of the LORD? 21:4 And the Gibeonites said unto him, We -will have no silver nor gold of Saul, nor of his house; neither for us -shalt thou kill any man in Israel. And he said, What ye shall say, -that will I do for you. - -21:5 And they answered the king, The man that consumed us, and that -devised against us that we should be destroyed from remaining in any -of the coasts of Israel, 21:6 Let seven men of his sons be delivered -unto us, and we will hang them up unto the LORD in Gibeah of Saul, -whom the LORD did choose. And the king said, I will give them. - -21:7 But the king spared Mephibosheth, the son of Jonathan the son of -Saul, because of the LORD's oath that was between them, between David -and Jonathan the son of Saul. - -21:8 But the king took the two sons of Rizpah the daughter of Aiah, -whom she bare unto Saul, Armoni and Mephibosheth; and the five sons of -Michal the daughter of Saul, whom she brought up for Adriel the son of -Barzillai the Meholathite: 21:9 And he delivered them into the hands -of the Gibeonites, and they hanged them in the hill before the LORD: -and they fell all seven together, and were put to death in the days of -harvest, in the first days, in the beginning of barley harvest. - -21:10 And Rizpah the daughter of Aiah took sackcloth, and spread it -for her upon the rock, from the beginning of harvest until water -dropped upon them out of heaven, and suffered neither the birds of the -air to rest on them by day, nor the beasts of the field by night. - -21:11 And it was told David what Rizpah the daughter of Aiah, the -concubine of Saul, had done. - -21:12 And David went and took the bones of Saul and the bones of -Jonathan his son from the men of Jabeshgilead, which had stolen them -from the street of Bethshan, where the Philistines had hanged them, -when the Philistines had slain Saul in Gilboa: 21:13 And he brought up -from thence the bones of Saul and the bones of Jonathan his son; and -they gathered the bones of them that were hanged. - -21:14 And the bones of Saul and Jonathan his son buried they in the -country of Benjamin in Zelah, in the sepulchre of Kish his father: and -they performed all that the king commanded. And after that God was -intreated for the land. - -21:15 Moreover the Philistines had yet war again with Israel; and -David went down, and his servants with him, and fought against the -Philistines: and David waxed faint. - -21:16 And Ishbibenob, which was of the sons of the giant, the weight -of whose spear weighed three hundred shekels of brass in weight, he -being girded with a new sword, thought to have slain David. - -21:17 But Abishai the son of Zeruiah succoured him, and smote the -Philistine, and killed him. Then the men of David sware unto him, -saying, Thou shalt go no more out with us to battle, that thou quench -not the light of Israel. - -21:18 And it came to pass after this, that there was again a battle -with the Philistines at Gob: then Sibbechai the Hushathite slew Saph, -which was of the sons of the giant. - -21:19 And there was again a battle in Gob with the Philistines, where -Elhanan the son of Jaareoregim, a Bethlehemite, slew the brother of -Goliath the Gittite, the staff of whose spear was like a weaver's -beam. - -21:20 And there was yet a battle in Gath, where was a man of great -stature, that had on every hand six fingers, and on every foot six -toes, four and twenty in number; and he also was born to the giant. - -21:21 And when he defied Israel, Jonathan the son of Shimeah the -brother of David slew him. - -21:22 These four were born to the giant in Gath, and fell by the hand -of David, and by the hand of his servants. - -22:1 And David spake unto the LORD the words of this song in the day -that the LORD had delivered him out of the hand of all his enemies, -and out of the hand of Saul: 22:2 And he said, The LORD is my rock, -and my fortress, and my deliverer; 22:3 The God of my rock; in him -will I trust: he is my shield, and the horn of my salvation, my high -tower, and my refuge, my saviour; thou savest me from violence. - -22:4 I will call on the LORD, who is worthy to be praised: so shall I -be saved from mine enemies. - -22:5 When the waves of death compassed me, the floods of ungodly men -made me afraid; 22:6 The sorrows of hell compassed me about; the -snares of death prevented me; 22:7 In my distress I called upon the -LORD, and cried to my God: and he did hear my voice out of his temple, -and my cry did enter into his ears. - -22:8 Then the earth shook and trembled; the foundations of heaven -moved and shook, because he was wroth. - -22:9 There went up a smoke out of his nostrils, and fire out of his -mouth devoured: coals were kindled by it. - -22:10 He bowed the heavens also, and came down; and darkness was under -his feet. - -22:11 And he rode upon a cherub, and did fly: and he was seen upon the -wings of the wind. - -22:12 And he made darkness pavilions round about him, dark waters, and -thick clouds of the skies. - -22:13 Through the brightness before him were coals of fire kindled. - -22:14 The LORD thundered from heaven, and the most High uttered his -voice. - -22:15 And he sent out arrows, and scattered them; lightning, and -discomfited them. - -22:16 And the channels of the sea appeared, the foundations of the -world were discovered, at the rebuking of the LORD, at the blast of -the breath of his nostrils. - -22:17 He sent from above, he took me; he drew me out of many waters; -22:18 He delivered me from my strong enemy, and from them that hated -me: for they were too strong for me. - -22:19 They prevented me in the day of my calamity: but the LORD was my -stay. - -22:20 He brought me forth also into a large place: he delivered me, -because he delighted in me. - -22:21 The LORD rewarded me according to my righteousness: according to -the cleanness of my hands hath he recompensed me. - -22:22 For I have kept the ways of the LORD, and have not wickedly -departed from my God. - -22:23 For all his judgments were before me: and as for his statutes, I -did not depart from them. - -22:24 I was also upright before him, and have kept myself from mine -iniquity. - -22:25 Therefore the LORD hath recompensed me according to my -righteousness; according to my cleanness in his eye sight. - -22:26 With the merciful thou wilt shew thyself merciful, and with the -upright man thou wilt shew thyself upright. - -22:27 With the pure thou wilt shew thyself pure; and with the froward -thou wilt shew thyself unsavoury. - -22:28 And the afflicted people thou wilt save: but thine eyes are upon -the haughty, that thou mayest bring them down. - -22:29 For thou art my lamp, O LORD: and the LORD will lighten my -darkness. - -22:30 For by thee I have run through a troop: by my God have I leaped -over a wall. - -22:31 As for God, his way is perfect; the word of the LORD is tried: -he is a buckler to all them that trust in him. - -22:32 For who is God, save the LORD? and who is a rock, save our God? -22:33 God is my strength and power: and he maketh my way perfect. - -22:34 He maketh my feet like hinds' feet: and setteth me upon my high -places. - -22:35 He teacheth my hands to war; so that a bow of steel is broken by -mine arms. - -22:36 Thou hast also given me the shield of thy salvation: and thy -gentleness hath made me great. - -22:37 Thou hast enlarged my steps under me; so that my feet did not -slip. - -22:38 I have pursued mine enemies, and destroyed them; and turned not -again until I had consumed them. - -22:39 And I have consumed them, and wounded them, that they could not -arise: yea, they are fallen under my feet. - -22:40 For thou hast girded me with strength to battle: them that rose -up against me hast thou subdued under me. - -22:41 Thou hast also given me the necks of mine enemies, that I might -destroy them that hate me. - -22:42 They looked, but there was none to save; even unto the LORD, but -he answered them not. - -22:43 Then did I beat them as small as the dust of the earth, I did -stamp them as the mire of the street, and did spread them abroad. - -22:44 Thou also hast delivered me from the strivings of my people, -thou hast kept me to be head of the heathen: a people which I knew not -shall serve me. - -22:45 Strangers shall submit themselves unto me: as soon as they hear, -they shall be obedient unto me. - -22:46 Strangers shall fade away, and they shall be afraid out of their -close places. - -22:47 The LORD liveth; and blessed be my rock; and exalted be the God -of the rock of my salvation. - -22:48 It is God that avengeth me, and that bringeth down the people -under me. - -22:49 And that bringeth me forth from mine enemies: thou also hast -lifted me up on high above them that rose up against me: thou hast -delivered me from the violent man. - -22:50 Therefore I will give thanks unto thee, O LORD, among the -heathen, and I will sing praises unto thy name. - -22:51 He is the tower of salvation for his king: and sheweth mercy to -his anointed, unto David, and to his seed for evermore. - -23:1 Now these be the last words of David. David the son of Jesse -said, and the man who was raised up on high, the anointed of the God -of Jacob, and the sweet psalmist of Israel, said, 23:2 The Spirit of -the LORD spake by me, and his word was in my tongue. - -23:3 The God of Israel said, the Rock of Israel spake to me, He that -ruleth over men must be just, ruling in the fear of God. - -23:4 And he shall be as the light of the morning, when the sun riseth, -even a morning without clouds; as the tender grass springing out of -the earth by clear shining after rain. - -23:5 Although my house be not so with God; yet he hath made with me an -everlasting covenant, ordered in all things, and sure: for this is all -my salvation, and all my desire, although he make it not to grow. - -23:6 But the sons of Belial shall be all of them as thorns thrust -away, because they cannot be taken with hands: 23:7 But the man that -shall touch them must be fenced with iron and the staff of a spear; -and they shall be utterly burned with fire in the same place. - -23:8 These be the names of the mighty men whom David had: The -Tachmonite that sat in the seat, chief among the captains; the same -was Adino the Eznite: he lift up his spear against eight hundred, whom -he slew at one time. - -23:9 And after him was Eleazar the son of Dodo the Ahohite, one of the -three mighty men with David, when they defied the Philistines that -were there gathered together to battle, and the men of Israel were -gone away: 23:10 He arose, and smote the Philistines until his hand -was weary, and his hand clave unto the sword: and the LORD wrought a -great victory that day; and the people returned after him only to -spoil. - -23:11 And after him was Shammah the son of Agee the Hararite. And the -Philistines were gathered together into a troop, where was a piece of -ground full of lentiles: and the people fled from the Philistines. - -23:12 But he stood in the midst of the ground, and defended it, and -slew the Philistines: and the LORD wrought a great victory. - -23:13 And three of the thirty chief went down, and came to David in -the harvest time unto the cave of Adullam: and the troop of the -Philistines pitched in the valley of Rephaim. - -23:14 And David was then in an hold, and the garrison of the -Philistines was then in Bethlehem. - -23:15 And David longed, and said, Oh that one would give me drink of -the water of the well of Bethlehem, which is by the gate! 23:16 And -the three mighty men brake through the host of the Philistines, and -drew water out of the well of Bethlehem, that was by the gate, and -took it, and brought it to David: nevertheless he would not drink -thereof, but poured it out unto the LORD. - -23:17 And he said, Be it far from me, O LORD, that I should do this: -is not this the blood of the men that went in jeopardy of their lives? -therefore he would not drink it. These things did these three mighty -men. - -23:18 And Abishai, the brother of Joab, the son of Zeruiah, was chief -among three. And he lifted up his spear against three hundred, and -slew them, and had the name among three. - -23:19 Was he not most honourable of three? therefore he was their -captain: howbeit he attained not unto the first three. - -23:20 And Benaiah the son of Jehoiada, the son of a valiant man, of -Kabzeel, who had done many acts, he slew two lionlike men of Moab: he -went down also and slew a lion in the midst of a pit in time of snow: -23:21 And he slew an Egyptian, a goodly man: and the Egyptian had a -spear in his hand; but he went down to him with a staff, and plucked -the spear out of the Egyptian's hand, and slew him with his own spear. - -23:22 These things did Benaiah the son of Jehoiada, and had the name -among three mighty men. - -23:23 He was more honourable than the thirty, but he attained not to -the first three. And David set him over his guard. - -23:24 Asahel the brother of Joab was one of the thirty; Elhanan the -son of Dodo of Bethlehem, 23:25 Shammah the Harodite, Elika the -Harodite, 23:26 Helez the Paltite, Ira the son of Ikkesh the Tekoite, -23:27 Abiezer the Anethothite, Mebunnai the Hushathite, 23:28 Zalmon -the Ahohite, Maharai the Netophathite, 23:29 Heleb the son of Baanah, -a Netophathite, Ittai the son of Ribai out of Gibeah of the children -of Benjamin, 23:30 Benaiah the Pirathonite, Hiddai of the brooks of -Gaash, 23:31 Abialbon the Arbathite, Azmaveth the Barhumite, 23:32 -Eliahba the Shaalbonite, of the sons of Jashen, Jonathan, 23:33 -Shammah the Hararite, Ahiam the son of Sharar the Hararite, 23:34 -Eliphelet the son of Ahasbai, the son of the Maachathite, Eliam the -son of Ahithophel the Gilonite, 23:35 Hezrai the Carmelite, Paarai the -Arbite, 23:36 Igal the son of Nathan of Zobah, Bani the Gadite, 23:37 -Zelek the Ammonite, Nahari the Beerothite, armourbearer to Joab the -son of Zeruiah, 23:38 Ira an Ithrite, Gareb an Ithrite, 23:39 Uriah -the Hittite: thirty and seven in all. - -24:1 And again the anger of the LORD was kindled against Israel, and -he moved David against them to say, Go, number Israel and Judah. - -24:2 For the king said to Joab the captain of the host, which was with -him, Go now through all the tribes of Israel, from Dan even to -Beersheba, and number ye the people, that I may know the number of the -people. - -24:3 And Joab said unto the king, Now the LORD thy God add unto the -people, how many soever they be, an hundredfold, and that the eyes of -my lord the king may see it: but why doth my lord the king delight in -this thing? 24:4 Notwithstanding the king's word prevailed against -Joab, and against the captains of the host. And Joab and the captains -of the host went out from the presence of the king, to number the -people of Israel. - -24:5 And they passed over Jordan, and pitched in Aroer, on the right -side of the city that lieth in the midst of the river of Gad, and -toward Jazer: 24:6 Then they came to Gilead, and to the land of -Tahtimhodshi; and they came to Danjaan, and about to Zidon, 24:7 And -came to the strong hold of Tyre, and to all the cities of the Hivites, -and of the Canaanites: and they went out to the south of Judah, even -to Beersheba. - -24:8 So when they had gone through all the land, they came to -Jerusalem at the end of nine months and twenty days. - -24:9 And Joab gave up the sum of the number of the people unto the -king: and there were in Israel eight hundred thousand valiant men that -drew the sword; and the men of Judah were five hundred thousand men. - -24:10 And David's heart smote him after that he had numbered the -people. - -And David said unto the LORD, I have sinned greatly in that I have -done: and now, I beseech thee, O LORD, take away the iniquity of thy -servant; for I have done very foolishly. - -24:11 For when David was up in the morning, the word of the LORD came -unto the prophet Gad, David's seer, saying, 24:12 Go and say unto -David, Thus saith the LORD, I offer thee three things; choose thee one -of them, that I may do it unto thee. - -24:13 So Gad came to David, and told him, and said unto him, Shall -seven years of famine come unto thee in thy land? or wilt thou flee -three months before thine enemies, while they pursue thee? or that -there be three days' pestilence in thy land? now advise, and see what -answer I shall return to him that sent me. - -24:14 And David said unto Gad, I am in a great strait: let us fall now -into the hand of the LORD; for his mercies are great: and let me not -fall into the hand of man. - -24:15 So the LORD sent a pestilence upon Israel from the morning even -to the time appointed: and there died of the people from Dan even to -Beersheba seventy thousand men. - -24:16 And when the angel stretched out his hand upon Jerusalem to -destroy it, the LORD repented him of the evil, and said to the angel -that destroyed the people, It is enough: stay now thine hand. And the -angel of the LORD was by the threshingplace of Araunah the Jebusite. - -24:17 And David spake unto the LORD when he saw the angel that smote -the people, and said, Lo, I have sinned, and I have done wickedly: but -these sheep, what have they done? let thine hand, I pray thee, be -against me, and against my father's house. - -24:18 And Gad came that day to David, and said unto him, Go up, rear -an altar unto the LORD in the threshingfloor of Araunah the Jebusite. - -24:19 And David, according to the saying of Gad, went up as the LORD -commanded. - -24:20 And Araunah looked, and saw the king and his servants coming on -toward him: and Araunah went out, and bowed himself before the king on -his face upon the ground. - -24:21 And Araunah said, Wherefore is my lord the king come to his -servant? And David said, To buy the threshingfloor of thee, to build -an altar unto the LORD, that the plague may be stayed from the people. - -24:22 And Araunah said unto David, Let my lord the king take and offer -up what seemeth good unto him: behold, here be oxen for burnt -sacrifice, and threshing instruments and other instruments of the oxen -for wood. - -24:23 All these things did Araunah, as a king, give unto the king. And -Araunah said unto the king, The LORD thy God accept thee. - -24:24 And the king said unto Araunah, Nay; but I will surely buy it of -thee at a price: neither will I offer burnt offerings unto the LORD my -God of that which doth cost me nothing. So David bought the -threshingfloor and the oxen for fifty shekels of silver. - -24:25 And David built there an altar unto the LORD, and offered burnt -offerings and peace offerings. So the LORD was intreated for the land, -and the plague was stayed from Israel. - - - - -The First Book of the Kings - -Commonly Called: - -The Third Book of the Kings - - -1:1 Now king David was old and stricken in years; and they covered -him with clothes, but he gat no heat. - -1:2 Wherefore his servants said unto him, Let there be sought for my -lord the king a young virgin: and let her stand before the king, and -let her cherish him, and let her lie in thy bosom, that my lord the -king may get heat. - -1:3 So they sought for a fair damsel throughout all the coasts of -Israel, and found Abishag a Shunammite, and brought her to the king. - -1:4 And the damsel was very fair, and cherished the king, and -ministered to him: but the king knew her not. - -1:5 Then Adonijah the son of Haggith exalted himself, saying, I will -be king: and he prepared him chariots and horsemen, and fifty men to -run before him. - -1:6 And his father had not displeased him at any time in saying, Why -hast thou done so? and he also was a very goodly man; and his mother -bare him after Absalom. - -1:7 And he conferred with Joab the son of Zeruiah, and with Abiathar -the priest: and they following Adonijah helped him. - -1:8 But Zadok the priest, and Benaiah the son of Jehoiada, and Nathan -the prophet, and Shimei, and Rei, and the mighty men which belonged to -David, were not with Adonijah. - -1:9 And Adonijah slew sheep and oxen and fat cattle by the stone of -Zoheleth, which is by Enrogel, and called all his brethren the king's -sons, and all the men of Judah the king's servants: 1:10 But Nathan -the prophet, and Benaiah, and the mighty men, and Solomon his brother, -he called not. - -1:11 Wherefore Nathan spake unto Bathsheba the mother of Solomon, -saying, Hast thou not heard that Adonijah the son of Haggith doth -reign, and David our lord knoweth it not? 1:12 Now therefore come, -let me, I pray thee, give thee counsel, that thou mayest save thine -own life, and the life of thy son Solomon. - -1:13 Go and get thee in unto king David, and say unto him, Didst not -thou, my lord, O king, swear unto thine handmaid, saying, Assuredly -Solomon thy son shall reign after me, and he shall sit upon my throne? -why then doth Adonijah reign? 1:14 Behold, while thou yet talkest -there with the king, I also will come in after thee, and confirm thy -words. - -1:15 And Bathsheba went in unto the king into the chamber: and the -king was very old; and Abishag the Shunammite ministered unto the -king. - -1:16 And Bathsheba bowed, and did obeisance unto the king. And the -king said, What wouldest thou? 1:17 And she said unto him, My lord, -thou swarest by the LORD thy God unto thine handmaid, saying, -Assuredly Solomon thy son shall reign after me, and he shall sit upon -my throne. - -1:18 And now, behold, Adonijah reigneth; and now, my lord the king, -thou knowest it not: 1:19 And he hath slain oxen and fat cattle and -sheep in abundance, and hath called all the sons of the king, and -Abiathar the priest, and Joab the captain of the host: but Solomon thy -servant hath he not called. - -1:20 And thou, my lord, O king, the eyes of all Israel are upon thee, -that thou shouldest tell them who shall sit on the throne of my lord -the king after him. - -1:21 Otherwise it shall come to pass, when my lord the king shall -sleep with his fathers, that I and my son Solomon shall be counted -offenders. - -1:22 And, lo, while she yet talked with the king, Nathan the prophet -also came in. - -1:23 And they told the king, saying, Behold Nathan the prophet. And -when he was come in before the king, he bowed himself before the king -with his face to the ground. - -1:24 And Nathan said, My lord, O king, hast thou said, Adonijah shall -reign after me, and he shall sit upon my throne? 1:25 For he is gone -down this day, and hath slain oxen and fat cattle and sheep in -abundance, and hath called all the king's sons, and the captains of -the host, and Abiathar the priest; and, behold, they eat and drink -before him, and say, God save king Adonijah. - -1:26 But me, even me thy servant, and Zadok the priest, and Benaiah -the son of Jehoiada, and thy servant Solomon, hath he not called. - -1:27 Is this thing done by my lord the king, and thou hast not shewed -it unto thy servant, who should sit on the throne of my lord the king -after him? 1:28 Then king David answered and said, Call me Bathsheba. -And she came into the king's presence, and stood before the king. - -1:29 And the king sware, and said, As the LORD liveth, that hath -redeemed my soul out of all distress, 1:30 Even as I sware unto thee -by the LORD God of Israel, saying, Assuredly Solomon thy son shall -reign after me, and he shall sit upon my throne in my stead; even so -will I certainly do this day. - -1:31 Then Bathsheba bowed with her face to the earth, and did -reverence to the king, and said, Let my lord king David live for ever. - -1:32 And king David said, Call me Zadok the priest, and Nathan the -prophet, and Benaiah the son of Jehoiada. And they came before the -king. - -1:33 The king also said unto them, Take with you the servants of your -lord, and cause Solomon my son to ride upon mine own mule, and bring -him down to Gihon: 1:34 And let Zadok the priest and Nathan the -prophet anoint him there king over Israel: and blow ye with the -trumpet, and say, God save king Solomon. - -1:35 Then ye shall come up after him, that he may come and sit upon my -throne; for he shall be king in my stead: and I have appointed him to -be ruler over Israel and over Judah. - -1:36 And Benaiah the son of Jehoiada answered the king, and said, -Amen: the LORD God of my lord the king say so too. - -1:37 As the LORD hath been with my lord the king, even so be he with -Solomon, and make his throne greater than the throne of my lord king -David. - -1:38 So Zadok the priest, and Nathan the prophet, and Benaiah the son -of Jehoiada, and the Cherethites, and the Pelethites, went down, and -caused Solomon to ride upon king David's mule, and brought him to -Gihon. - -1:39 And Zadok the priest took an horn of oil out of the tabernacle, -and anointed Solomon. And they blew the trumpet; and all the people -said, God save king Solomon. - -1:40 And all the people came up after him, and the people piped with -pipes, and rejoiced with great joy, so that the earth rent with the -sound of them. - -1:41 And Adonijah and all the guests that were with him heard it as -they had made an end of eating. And when Joab heard the sound of the -trumpet, he said, Wherefore is this noise of the city being in an -uproar? 1:42 And while he yet spake, behold, Jonathan the son of -Abiathar the priest came; and Adonijah said unto him, Come in; for -thou art a valiant man, and bringest good tidings. - -1:43 And Jonathan answered and said to Adonijah, Verily our lord king -David hath made Solomon king. - -1:44 And the king hath sent with him Zadok the priest, and Nathan the -prophet, and Benaiah the son of Jehoiada, and the Cherethites, and the -Pelethites, and they have caused him to ride upon the king's mule: -1:45 And Zadok the priest and Nathan the prophet have anointed him -king in Gihon: and they are come up from thence rejoicing, so that the -city rang again. This is the noise that ye have heard. - -1:46 And also Solomon sitteth on the throne of the kingdom. - -1:47 And moreover the king's servants came to bless our lord king -David, saying, God make the name of Solomon better than thy name, and -make his throne greater than thy throne. And the king bowed himself -upon the bed. - -1:48 And also thus said the king, Blessed be the LORD God of Israel, -which hath given one to sit on my throne this day, mine eyes even -seeing it. - -1:49 And all the guests that were with Adonijah were afraid, and rose -up, and went every man his way. - -1:50 And Adonijah feared because of Solomon, and arose, and went, and -caught hold on the horns of the altar. - -1:51 And it was told Solomon, saying, Behold, Adonijah feareth king -Solomon: for, lo, he hath caught hold on the horns of the altar, -saying, Let king Solomon swear unto me today that he will not slay his -servant with the sword. - -1:52 And Solomon said, If he will shew himself a worthy man, there -shall not an hair of him fall to the earth: but if wickedness shall be -found in him, he shall die. - -1:53 So king Solomon sent, and they brought him down from the altar. -And he came and bowed himself to king Solomon: and Solomon said unto -him, Go to thine house. - -2:1 Now the days of David drew nigh that he should die; and he charged -Solomon his son, saying, 2:2 I go the way of all the earth: be thou -strong therefore, and shew thyself a man; 2:3 And keep the charge of -the LORD thy God, to walk in his ways, to keep his statutes, and his -commandments, and his judgments, and his testimonies, as it is written -in the law of Moses, that thou mayest prosper in all that thou doest, -and whithersoever thou turnest thyself: 2:4 That the LORD may continue -his word which he spake concerning me, saying, If thy children take -heed to their way, to walk before me in truth with all their heart and -with all their soul, there shall not fail thee (said he) a man on the -throne of Israel. - -2:5 Moreover thou knowest also what Joab the son of Zeruiah did to me, -and what he did to the two captains of the hosts of Israel, unto Abner -the son of Ner, and unto Amasa the son of Jether, whom he slew, and -shed the blood of war in peace, and put the blood of war upon his -girdle that was about his loins, and in his shoes that were on his -feet. - -2:6 Do therefore according to thy wisdom, and let not his hoar head go -down to the grave in peace. - -2:7 But shew kindness unto the sons of Barzillai the Gileadite, and -let them be of those that eat at thy table: for so they came to me -when I fled because of Absalom thy brother. - -2:8 And, behold, thou hast with thee Shimei the son of Gera, a -Benjamite of Bahurim, which cursed me with a grievous curse in the day -when I went to Mahanaim: but he came down to meet me at Jordan, and I -sware to him by the LORD, saying, I will not put thee to death with -the sword. - -2:9 Now therefore hold him not guiltless: for thou art a wise man, and -knowest what thou oughtest to do unto him; but his hoar head bring -thou down to the grave with blood. - -2:10 So David slept with his fathers, and was buried in the city of -David. - -2:11 And the days that David reigned over Israel were forty years: -seven years reigned he in Hebron, and thirty and three years reigned -he in Jerusalem. - -2:12 Then sat Solomon upon the throne of David his father; and his -kingdom was established greatly. - -2:13 And Adonijah the son of Haggith came to Bathsheba the mother of -Solomon. And she said, Comest thou peaceably? And he said, Peaceably. - -2:14 He said moreover, I have somewhat to say unto thee. And she said, -Say on. - -2:15 And he said, Thou knowest that the kingdom was mine, and that all -Israel set their faces on me, that I should reign: howbeit the kingdom -is turned about, and is become my brother's: for it was his from the -LORD. - -2:16 And now I ask one petition of thee, deny me not. And she said -unto him, Say on. - -2:17 And he said, Speak, I pray thee, unto Solomon the king, (for he -will not say thee nay,) that he give me Abishag the Shunammite to -wife. - -2:18 And Bathsheba said, Well; I will speak for thee unto the king. - -2:19 Bathsheba therefore went unto king Solomon, to speak unto him for -Adonijah. And the king rose up to meet her, and bowed himself unto -her, and sat down on his throne, and caused a seat to be set for the -king's mother; and she sat on his right hand. - -2:20 Then she said, I desire one small petition of thee; I pray thee, -say me not nay. And the king said unto her, Ask on, my mother: for I -will not say thee nay. - -2:21 And she said, Let Abishag the Shunammite be given to Adonijah thy -brother to wife. - -2:22 And king Solomon answered and said unto his mother, And why dost -thou ask Abishag the Shunammite for Adonijah? ask for him the kingdom -also; for he is mine elder brother; even for him, and for Abiathar the -priest, and for Joab the son of Zeruiah. - -2:23 Then king Solomon sware by the LORD, saying, God do so to me, and -more also, if Adonijah have not spoken this word against his own life. - -2:24 Now therefore, as the LORD liveth, which hath established me, and -set me on the throne of David my father, and who hath made me an -house, as he promised, Adonijah shall be put to death this day. - -2:25 And king Solomon sent by the hand of Benaiah the son of Jehoiada; -and he fell upon him that he died. - -2:26 And unto Abiathar the priest said the king, Get thee to Anathoth, -unto thine own fields; for thou art worthy of death: but I will not at -this time put thee to death, because thou barest the ark of the LORD -God before David my father, and because thou hast been afflicted in -all wherein my father was afflicted. - -2:27 So Solomon thrust out Abiathar from being priest unto the LORD; -that he might fulfil the word of the LORD, which he spake concerning -the house of Eli in Shiloh. - -2:28 Then tidings came to Joab: for Joab had turned after Adonijah, -though he turned not after Absalom. And Joab fled unto the tabernacle -of the LORD, and caught hold on the horns of the altar. - -2:29 And it was told king Solomon that Joab was fled unto the -tabernacle of the LORD; and, behold, he is by the altar. Then Solomon -sent Benaiah the son of Jehoiada, saying, Go, fall upon him. - -2:30 And Benaiah came to the tabernacle of the LORD, and said unto -him, Thus saith the king, Come forth. And he said, Nay; but I will die -here. And Benaiah brought the king word again, saying, Thus said Joab, -and thus he answered me. - -2:31 And the king said unto him, Do as he hath said, and fall upon -him, and bury him; that thou mayest take away the innocent blood, -which Joab shed, from me, and from the house of my father. - -2:32 And the LORD shall return his blood upon his own head, who fell -upon two men more righteous and better than he, and slew them with the -sword, my father David not knowing thereof, to wit, Abner the son of -Ner, captain of the host of Israel, and Amasa the son of Jether, -captain of the host of Judah. - -2:33 Their blood shall therefore return upon the head of Joab, and -upon the head of his seed for ever: but upon David, and upon his seed, -and upon his house, and upon his throne, shall there be peace for ever -from the LORD. - -2:34 So Benaiah the son of Jehoiada went up, and fell upon him, and -slew him: and he was buried in his own house in the wilderness. - -2:35 And the king put Benaiah the son of Jehoiada in his room over the -host: and Zadok the priest did the king put in the room of Abiathar. - -2:36 And the king sent and called for Shimei, and said unto him, Build -thee an house in Jerusalem, and dwell there, and go not forth thence -any whither. - -2:37 For it shall be, that on the day thou goest out, and passest over -the brook Kidron, thou shalt know for certain that thou shalt surely -die: thy blood shall be upon thine own head. - -2:38 And Shimei said unto the king, The saying is good: as my lord the -king hath said, so will thy servant do. And Shimei dwelt in Jerusalem -many days. - -2:39 And it came to pass at the end of three years, that two of the -servants of Shimei ran away unto Achish son of Maachah king of Gath. -And they told Shimei, saying, Behold, thy servants be in Gath. - -2:40 And Shimei arose, and saddled his ass, and went to Gath to Achish -to seek his servants: and Shimei went, and brought his servants from -Gath. - -2:41 And it was told Solomon that Shimei had gone from Jerusalem to -Gath, and was come again. - -2:42 And the king sent and called for Shimei, and said unto him, Did I -not make thee to swear by the LORD, and protested unto thee, saying, -Know for a certain, on the day thou goest out, and walkest abroad any -whither, that thou shalt surely die? and thou saidst unto me, The word -that I have heard is good. - -2:43 Why then hast thou not kept the oath of the LORD, and the -commandment that I have charged thee with? 2:44 The king said -moreover to Shimei, Thou knowest all the wickedness which thine heart -is privy to, that thou didst to David my father: therefore the LORD -shall return thy wickedness upon thine own head; 2:45 And king Solomon -shall be blessed, and the throne of David shall be established before -the LORD for ever. - -2:46 So the king commanded Benaiah the son of Jehoiada; which went -out, and fell upon him, that he died. And the kingdom was established -in the hand of Solomon. - -3:1 And Solomon made affinity with Pharaoh king of Egypt, and took -Pharaoh's daughter, and brought her into the city of David, until he -had made an end of building his own house, and the house of the LORD, -and the wall of Jerusalem round about. - -3:2 Only the people sacrificed in high places, because there was no -house built unto the name of the LORD, until those days. - -3:3 And Solomon loved the LORD, walking in the statutes of David his -father: only he sacrificed and burnt incense in high places. - -3:4 And the king went to Gibeon to sacrifice there; for that was the -great high place: a thousand burnt offerings did Solomon offer upon -that altar. - -3:5 In Gibeon the LORD appeared to Solomon in a dream by night: and -God said, Ask what I shall give thee. - -3:6 And Solomon said, Thou hast shewed unto thy servant David my -father great mercy, according as he walked before thee in truth, and -in righteousness, and in uprightness of heart with thee; and thou hast -kept for him this great kindness, that thou hast given him a son to -sit on his throne, as it is this day. - -3:7 And now, O LORD my God, thou hast made thy servant king instead of -David my father: and I am but a little child: I know not how to go out -or come in. - -3:8 And thy servant is in the midst of thy people which thou hast -chosen, a great people, that cannot be numbered nor counted for -multitude. - -3:9 Give therefore thy servant an understanding heart to judge thy -people, that I may discern between good and bad: for who is able to -judge this thy so great a people? 3:10 And the speech pleased the -LORD, that Solomon had asked this thing. - -3:11 And God said unto him, Because thou hast asked this thing, and -hast not asked for thyself long life; neither hast asked riches for -thyself, nor hast asked the life of thine enemies; but hast asked for -thyself understanding to discern judgment; 3:12 Behold, I have done -according to thy words: lo, I have given thee a wise and an -understanding heart; so that there was none like thee before thee, -neither after thee shall any arise like unto thee. - -3:13 And I have also given thee that which thou hast not asked, both -riches, and honour: so that there shall not be any among the kings -like unto thee all thy days. - -3:14 And if thou wilt walk in my ways, to keep my statutes and my -commandments, as thy father David did walk, then I will lengthen thy -days. - -3:15 And Solomon awoke; and, behold, it was a dream. And he came to -Jerusalem, and stood before the ark of the covenant of the LORD, and -offered up burnt offerings, and offered peace offerings, and made a -feast to all his servants. - -3:16 Then came there two women, that were harlots, unto the king, and -stood before him. - -3:17 And the one woman said, O my lord, I and this woman dwell in one -house; and I was delivered of a child with her in the house. - -3:18 And it came to pass the third day after that I was delivered, -that this woman was delivered also: and we were together; there was no -stranger with us in the house, save we two in the house. - -3:19 And this woman's child died in the night; because she overlaid -it. - -3:20 And she arose at midnight, and took my son from beside me, while -thine handmaid slept, and laid it in her bosom, and laid her dead -child in my bosom. - -3:21 And when I rose in the morning to give my child suck, behold, it -was dead: but when I had considered it in the morning, behold, it was -not my son, which I did bear. - -3:22 And the other woman said, Nay; but the living is my son, and the -dead is thy son. And this said, No; but the dead is thy son, and the -living is my son. Thus they spake before the king. - -3:23 Then said the king, The one saith, This is my son that liveth, -and thy son is the dead: and the other saith, Nay; but thy son is the -dead, and my son is the living. - -3:24 And the king said, Bring me a sword. And they brought a sword -before the king. - -3:25 And the king said, Divide the living child in two, and give half -to the one, and half to the other. - -3:26 Then spake the woman whose the living child was unto the king, -for her bowels yearned upon her son, and she said, O my lord, give her -the living child, and in no wise slay it. But the other said, Let it -be neither mine nor thine, but divide it. - -3:27 Then the king answered and said, Give her the living child, and -in no wise slay it: she is the mother thereof. - -3:28 And all Israel heard of the judgment which the king had judged; -and they feared the king: for they saw that the wisdom of God was in -him, to do judgment. - -4:1 So king Solomon was king over all Israel. - -4:2 And these were the princes which he had; Azariah the son of Zadok -the priest, 4:3 Elihoreph and Ahiah, the sons of Shisha, scribes; -Jehoshaphat the son of Ahilud, the recorder. - -4:4 And Benaiah the son of Jehoiada was over the host: and Zadok and -Abiathar were the priests: 4:5 And Azariah the son of Nathan was over -the officers: and Zabud the son of Nathan was principal officer, and -the king's friend: 4:6 And Ahishar was over the household: and -Adoniram the son of Abda was over the tribute. - -4:7 And Solomon had twelve officers over all Israel, which provided -victuals for the king and his household: each man his month in a year -made provision. - -4:8 And these are their names: The son of Hur, in mount Ephraim: 4:9 -The son of Dekar, in Makaz, and in Shaalbim, and Bethshemesh, and -Elonbethhanan: 4:10 The son of Hesed, in Aruboth; to him pertained -Sochoh, and all the land of Hepher: 4:11 The son of Abinadab, in all -the region of Dor; which had Taphath the daughter of Solomon to wife: -4:12 Baana the son of Ahilud; to him pertained Taanach and Megiddo, -and all Bethshean, which is by Zartanah beneath Jezreel, from -Bethshean to Abelmeholah, even unto the place that is beyond Jokneam: -4:13 The son of Geber, in Ramothgilead; to him pertained the towns of -Jair the son of Manasseh, which are in Gilead; to him also pertained -the region of Argob, which is in Bashan, threescore great cities with -walls and brasen bars: 4:14 Ahinadab the son of Iddo had Mahanaim: -4:15 Ahimaaz was in Naphtali; he also took Basmath the daughter of -Solomon to wife: 4:16 Baanah the son of Hushai was in Asher and in -Aloth: 4:17 Jehoshaphat the son of Paruah, in Issachar: 4:18 Shimei -the son of Elah, in Benjamin: 4:19 Geber the son of Uri was in the -country of Gilead, in the country of Sihon king of the Amorites, and -of Og king of Bashan; and he was the only officer which was in the -land. - -4:20 Judah and Israel were many, as the sand which is by the sea in -multitude, eating and drinking, and making merry. - -4:21 And Solomon reigned over all kingdoms from the river unto the -land of the Philistines, and unto the border of Egypt: they brought -presents, and served Solomon all the days of his life. - -4:22 And Solomon's provision for one day was thirty measures of fine -flour, and threescore measures of meal, 4:23 Ten fat oxen, and twenty -oxen out of the pastures, and an hundred sheep, beside harts, and -roebucks, and fallowdeer, and fatted fowl. - -4:24 For he had dominion over all the region on this side the river, -from Tiphsah even to Azzah, over all the kings on this side the river: -and he had peace on all sides round about him. - -4:25 And Judah and Israel dwelt safely, every man under his vine and -under his fig tree, from Dan even to Beersheba, all the days of -Solomon. - -4:26 And Solomon had forty thousand stalls of horses for his chariots, -and twelve thousand horsemen. - -4:27 And those officers provided victual for king Solomon, and for all -that came unto king Solomon's table, every man in his month: they -lacked nothing. - -4:28 Barley also and straw for the horses and dromedaries brought they -unto the place where the officers were, every man according to his -charge. - -4:29 And God gave Solomon wisdom and understanding exceeding much, and -largeness of heart, even as the sand that is on the sea shore. - -4:30 And Solomon's wisdom excelled the wisdom of all the children of -the east country, and all the wisdom of Egypt. - -4:31 For he was wiser than all men; than Ethan the Ezrahite, and -Heman, and Chalcol, and Darda, the sons of Mahol: and his fame was in -all nations round about. - -4:32 And he spake three thousand proverbs: and his songs were a -thousand and five. - -4:33 And he spake of trees, from the cedar tree that is in Lebanon -even unto the hyssop that springeth out of the wall: he spake also of -beasts, and of fowl, and of creeping things, and of fishes. - -4:34 And there came of all people to hear the wisdom of Solomon, from -all kings of the earth, which had heard of his wisdom. - -5:1 And Hiram king of Tyre sent his servants unto Solomon; for he had -heard that they had anointed him king in the room of his father: for -Hiram was ever a lover of David. - -5:2 And Solomon sent to Hiram, saying, 5:3 Thou knowest how that David -my father could not build an house unto the name of the LORD his God -for the wars which were about him on every side, until the LORD put -them under the soles of his feet. - -5:4 But now the LORD my God hath given me rest on every side, so that -there is neither adversary nor evil occurrent. - -5:5 And, behold, I purpose to build an house unto the name of the LORD -my God, as the LORD spake unto David my father, saying, Thy son, whom -I will set upon thy throne in thy room, he shall build an house unto -my name. - -5:6 Now therefore command thou that they hew me cedar trees out of -Lebanon; and my servants shall be with thy servants: and unto thee -will I give hire for thy servants according to all that thou shalt -appoint: for thou knowest that there is not among us any that can -skill to hew timber like unto the Sidonians. - -5:7 And it came to pass, when Hiram heard the words of Solomon, that -he rejoiced greatly, and said, Blessed be the LORD this day, which -hath given unto David a wise son over this great people. - -5:8 And Hiram sent to Solomon, saying, I have considered the things -which thou sentest to me for: and I will do all thy desire concerning -timber of cedar, and concerning timber of fir. - -5:9 My servants shall bring them down from Lebanon unto the sea: and I -will convey them by sea in floats unto the place that thou shalt -appoint me, and will cause them to be discharged there, and thou shalt -receive them: and thou shalt accomplish my desire, in giving food for -my household. - -5:10 So Hiram gave Solomon cedar trees and fir trees according to all -his desire. - -5:11 And Solomon gave Hiram twenty thousand measures of wheat for food -to his household, and twenty measures of pure oil: thus gave Solomon -to Hiram year by year. - -5:12 And the LORD gave Solomon wisdom, as he promised him: and there -was peace between Hiram and Solomon; and they two made a league -together. - -5:13 And king Solomon raised a levy out of all Israel; and the levy -was thirty thousand men. - -5:14 And he sent them to Lebanon, ten thousand a month by courses: a -month they were in Lebanon, and two months at home: and Adoniram was -over the levy. - -5:15 And Solomon had threescore and ten thousand that bare burdens, -and fourscore thousand hewers in the mountains; 5:16 Beside the chief -of Solomon's officers which were over the work, three thousand and -three hundred, which ruled over the people that wrought in the work. - -5:17 And the king commanded, and they brought great stones, costly -stones, and hewed stones, to lay the foundation of the house. - -5:18 And Solomon's builders and Hiram's builders did hew them, and the -stonesquarers: so they prepared timber and stones to build the house. - -6:1 And it came to pass in the four hundred and eightieth year after -the children of Israel were come out of the land of Egypt, in the -fourth year of Solomon's reign over Israel, in the month Zif, which is -the second month, that he began to build the house of the LORD. - -6:2 And the house which king Solomon built for the LORD, the length -thereof was threescore cubits, and the breadth thereof twenty cubits, -and the height thereof thirty cubits. - -6:3 And the porch before the temple of the house, twenty cubits was -the length thereof, according to the breadth of the house; and ten -cubits was the breadth thereof before the house. - -6:4 And for the house he made windows of narrow lights. - -6:5 And against the wall of the house he built chambers round about, -against the walls of the house round about, both of the temple and of -the oracle: and he made chambers round about: 6:6 The nethermost -chamber was five cubits broad, and the middle was six cubits broad, -and the third was seven cubits broad: for without in the wall of the -house he made narrowed rests round about, that the beams should not be -fastened in the walls of the house. - -6:7 And the house, when it was in building, was built of stone made -ready before it was brought thither: so that there was neither hammer -nor axe nor any tool of iron heard in the house, while it was in -building. - -6:8 The door for the middle chamber was in the right side of the -house: and they went up with winding stairs into the middle chamber, -and out of the middle into the third. - -6:9 So he built the house, and finished it; and covered the house with -beams and boards of cedar. - -6:10 And then he built chambers against all the house, five cubits -high: and they rested on the house with timber of cedar. - -6:11 And the word of the LORD came to Solomon, saying, 6:12 Concerning -this house which thou art in building, if thou wilt walk in my -statutes, and execute my judgments, and keep all my commandments to -walk in them; then will I perform my word with thee, which I spake -unto David thy father: 6:13 And I will dwell among the children of -Israel, and will not forsake my people Israel. - -6:14 So Solomon built the house, and finished it. - -6:15 And he built the walls of the house within with boards of cedar, -both the floor of the house, and the walls of the ceiling: and he -covered them on the inside with wood, and covered the floor of the -house with planks of fir. - -6:16 And he built twenty cubits on the sides of the house, both the -floor and the walls with boards of cedar: he even built them for it -within, even for the oracle, even for the most holy place. - -6:17 And the house, that is, the temple before it, was forty cubits -long. - -6:18 And the cedar of the house within was carved with knops and open -flowers: all was cedar; there was no stone seen. - -6:19 And the oracle he prepared in the house within, to set there the -ark of the covenant of the LORD. - -6:20 And the oracle in the forepart was twenty cubits in length, and -twenty cubits in breadth, and twenty cubits in the height thereof: and -he overlaid it with pure gold; and so covered the altar which was of -cedar. - -6:21 So Solomon overlaid the house within with pure gold: and he made -a partition by the chains of gold before the oracle; and he overlaid -it with gold. - -6:22 And the whole house he overlaid with gold, until he had finished -all the house: also the whole altar that was by the oracle he overlaid -with gold. - -6:23 And within the oracle he made two cherubims of olive tree, each -ten cubits high. - -6:24 And five cubits was the one wing of the cherub, and five cubits -the other wing of the cherub: from the uttermost part of the one wing -unto the uttermost part of the other were ten cubits. - -6:25 And the other cherub was ten cubits: both the cherubims were of -one measure and one size. - -6:26 The height of the one cherub was ten cubits, and so was it of the -other cherub. - -6:27 And he set the cherubims within the inner house: and they -stretched forth the wings of the cherubims, so that the wing of the -one touched the one wall, and the wing of the other cherub touched the -other wall; and their wings touched one another in the midst of the -house. - -6:28 And he overlaid the cherubims with gold. - -6:29 And he carved all the walls of the house round about with carved -figures of cherubims and palm trees and open flowers, within and -without. - -6:30 And the floors of the house he overlaid with gold, within and -without. - -6:31 And for the entering of the oracle he made doors of olive tree: -the lintel and side posts were a fifth part of the wall. - -6:32 The two doors also were of olive tree; and he carved upon them -carvings of cherubims and palm trees and open flowers, and overlaid -them with gold, and spread gold upon the cherubims, and upon the palm -trees. - -6:33 So also made he for the door of the temple posts of olive tree, a -fourth part of the wall. - -6:34 And the two doors were of fir tree: the two leaves of the one -door were folding, and the two leaves of the other door were folding. - -6:35 And he carved thereon cherubims and palm trees and open flowers: -and covered them with gold fitted upon the carved work. - -6:36 And he built the inner court with three rows of hewed stone, and -a row of cedar beams. - -6:37 In the fourth year was the foundation of the house of the LORD -laid, in the month Zif: 6:38 And in the eleventh year, in the month -Bul, which is the eighth month, was the house finished throughout all -the parts thereof, and according to all the fashion of it. So was he -seven years in building it. - -7:1 But Solomon was building his own house thirteen years, and he -finished all his house. - -7:2 He built also the house of the forest of Lebanon; the length -thereof was an hundred cubits, and the breadth thereof fifty cubits, -and the height thereof thirty cubits, upon four rows of cedar pillars, -with cedar beams upon the pillars. - -7:3 And it was covered with cedar above upon the beams, that lay on -forty five pillars, fifteen in a row. - -7:4 And there were windows in three rows, and light was against light -in three ranks. - -7:5 And all the doors and posts were square, with the windows: and -light was against light in three ranks. - -7:6 And he made a porch of pillars; the length thereof was fifty -cubits, and the breadth thereof thirty cubits: and the porch was -before them: and the other pillars and the thick beam were before -them. - -7:7 Then he made a porch for the throne where he might judge, even the -porch of judgment: and it was covered with cedar from one side of the -floor to the other. - -7:8 And his house where he dwelt had another court within the porch, -which was of the like work. Solomon made also an house for Pharaoh's -daughter, whom he had taken to wife, like unto this porch. - -7:9 All these were of costly stones, according to the measures of -hewed stones, sawed with saws, within and without, even from the -foundation unto the coping, and so on the outside toward the great -court. - -7:10 And the foundation was of costly stones, even great stones, -stones of ten cubits, and stones of eight cubits. - -7:11 And above were costly stones, after the measures of hewed stones, -and cedars. - -7:12 And the great court round about was with three rows of hewed -stones, and a row of cedar beams, both for the inner court of the -house of the LORD, and for the porch of the house. - -7:13 And king Solomon sent and fetched Hiram out of Tyre. - -7:14 He was a widow's son of the tribe of Naphtali, and his father was -a man of Tyre, a worker in brass: and he was filled with wisdom, and -understanding, and cunning to work all works in brass. And he came to -king Solomon, and wrought all his work. - -7:15 For he cast two pillars of brass, of eighteen cubits high apiece: -and a line of twelve cubits did compass either of them about. - -7:16 And he made two chapiters of molten brass, to set upon the tops -of the pillars: the height of the one chapiter was five cubits, and -the height of the other chapiter was five cubits: 7:17 And nets of -checker work, and wreaths of chain work, for the chapiters which were -upon the top of the pillars; seven for the one chapiter, and seven for -the other chapiter. - -7:18 And he made the pillars, and two rows round about upon the one -network, to cover the chapiters that were upon the top, with -pomegranates: and so did he for the other chapiter. - -7:19 And the chapiters that were upon the top of the pillars were of -lily work in the porch, four cubits. - -7:20 And the chapiters upon the two pillars had pomegranates also -above, over against the belly which was by the network: and the -pomegranates were two hundred in rows round about upon the other -chapiter. - -7:21 And he set up the pillars in the porch of the temple: and he set -up the right pillar, and called the name thereof Jachin: and he set up -the left pillar, and called the name thereof Boaz. - -7:22 And upon the top of the pillars was lily work: so was the work of -the pillars finished. - -7:23 And he made a molten sea, ten cubits from the one brim to the -other: it was round all about, and his height was five cubits: and a -line of thirty cubits did compass it round about. - -7:24 And under the brim of it round about there were knops compassing -it, ten in a cubit, compassing the sea round about: the knops were -cast in two rows, when it was cast. - -7:25 It stood upon twelve oxen, three looking toward the north, and -three looking toward the west, and three looking toward the south, and -three looking toward the east: and the sea was set above upon them, -and all their hinder parts were inward. - -7:26 And it was an hand breadth thick, and the brim thereof was -wrought like the brim of a cup, with flowers of lilies: it contained -two thousand baths. - -7:27 And he made ten bases of brass; four cubits was the length of one -base, and four cubits the breadth thereof, and three cubits the height -of it. - -7:28 And the work of the bases was on this manner: they had borders, -and the borders were between the ledges: 7:29 And on the borders that -were between the ledges were lions, oxen, and cherubims: and upon the -ledges there was a base above: and beneath the lions and oxen were -certain additions made of thin work. - -7:30 And every base had four brasen wheels, and plates of brass: and -the four corners thereof had undersetters: under the laver were -undersetters molten, at the side of every addition. - -7:31 And the mouth of it within the chapiter and above was a cubit: -but the mouth thereof was round after the work of the base, a cubit -and an half: and also upon the mouth of it were gravings with their -borders, foursquare, not round. - -7:32 And under the borders were four wheels; and the axletrees of the -wheels were joined to the base: and the height of a wheel was a cubit -and half a cubit. - -7:33 And the work of the wheels was like the work of a chariot wheel: -their axletrees, and their naves, and their felloes, and their spokes, -were all molten. - -7:34 And there were four undersetters to the four corners of one base: -and the undersetters were of the very base itself. - -7:35 And in the top of the base was there a round compass of half a -cubit high: and on the top of the base the ledges thereof and the -borders thereof were of the same. - -7:36 For on the plates of the ledges thereof, and on the borders -thereof, he graved cherubims, lions, and palm trees, according to the -proportion of every one, and additions round about. - -7:37 After this manner he made the ten bases: all of them had one -casting, one measure, and one size. - -7:38 Then made he ten lavers of brass: one laver contained forty -baths: and every laver was four cubits: and upon every one of the ten -bases one laver. - -7:39 And he put five bases on the right side of the house, and five on -the left side of the house: and he set the sea on the right side of -the house eastward over against the south. - -7:40 And Hiram made the lavers, and the shovels, and the basons. So -Hiram made an end of doing all the work that he made king Solomon for -the house of the LORD: 7:41 The two pillars, and the two bowls of the -chapiters that were on the top of the two pillars; and the two -networks, to cover the two bowls of the chapiters which were upon the -top of the pillars; 7:42 And four hundred pomegranates for the two -networks, even two rows of pomegranates for one network, to cover the -two bowls of the chapiters that were upon the pillars; 7:43 And the -ten bases, and ten lavers on the bases; 7:44 And one sea, and twelve -oxen under the sea; 7:45 And the pots, and the shovels, and the -basons: and all these vessels, which Hiram made to king Solomon for -the house of the LORD, were of bright brass. - -7:46 In the plain of Jordan did the king cast them, in the clay ground -between Succoth and Zarthan. - -7:47 And Solomon left all the vessels unweighed, because they were -exceeding many: neither was the weight of the brass found out. - -7:48 And Solomon made all the vessels that pertained unto the house of -the LORD: the altar of gold, and the table of gold, whereupon the -shewbread was, 7:49 And the candlesticks of pure gold, five on the -right side, and five on the left, before the oracle, with the flowers, -and the lamps, and the tongs of gold, 7:50 And the bowls, and the -snuffers, and the basons, and the spoons, and the censers of pure -gold; and the hinges of gold, both for the doors of the inner house, -the most holy place, and for the doors of the house, to wit, of the -temple. - -7:51 So was ended all the work that king Solomon made for the house of -the LORD. And Solomon brought in the things which David his father had -dedicated; even the silver, and the gold, and the vessels, did he put -among the treasures of the house of the LORD. - -8:1 Then Solomon assembled the elders of Israel, and all the heads of -the tribes, the chief of the fathers of the children of Israel, unto -king Solomon in Jerusalem, that they might bring up the ark of the -covenant of the LORD out of the city of David, which is Zion. - -8:2 And all the men of Israel assembled themselves unto king Solomon -at the feast in the month Ethanim, which is the seventh month. - -8:3 And all the elders of Israel came, and the priests took up the -ark. - -8:4 And they brought up the ark of the LORD, and the tabernacle of the -congregation, and all the holy vessels that were in the tabernacle, -even those did the priests and the Levites bring up. - -8:5 And king Solomon, and all the congregation of Israel, that were -assembled unto him, were with him before the ark, sacrificing sheep -and oxen, that could not be told nor numbered for multitude. - -8:6 And the priests brought in the ark of the covenant of the LORD -unto his place, into the oracle of the house, to the most holy place, -even under the wings of the cherubims. - -8:7 For the cherubims spread forth their two wings over the place of -the ark, and the cherubims covered the ark and the staves thereof -above. - -8:8 And they drew out the staves, that the ends of the staves were -seen out in the holy place before the oracle, and they were not seen -without: and there they are unto this day. - -8:9 There was nothing in the ark save the two tables of stone, which -Moses put there at Horeb, when the LORD made a covenant with the -children of Israel, when they came out of the land of Egypt. - -8:10 And it came to pass, when the priests were come out of the holy -place, that the cloud filled the house of the LORD, 8:11 So that the -priests could not stand to minister because of the cloud: for the -glory of the LORD had filled the house of the LORD. - -8:12 Then spake Solomon, The LORD said that he would dwell in the -thick darkness. - -8:13 I have surely built thee an house to dwell in, a settled place -for thee to abide in for ever. - -8:14 And the king turned his face about, and blessed all the -congregation of Israel: (and all the congregation of Israel stood;) -8:15 And he said, Blessed be the LORD God of Israel, which spake with -his mouth unto David my father, and hath with his hand fulfilled it, -saying, 8:16 Since the day that I brought forth my people Israel out -of Egypt, I chose no city out of all the tribes of Israel to build an -house, that my name might be therein; but I chose David to be over my -people Israel. - -8:17 And it was in the heart of David my father to build an house for -the name of the LORD God of Israel. - -8:18 And the LORD said unto David my father, Whereas it was in thine -heart to build an house unto my name, thou didst well that it was in -thine heart. - -8:19 Nevertheless thou shalt not build the house; but thy son that -shall come forth out of thy loins, he shall build the house unto my -name. - -8:20 And the LORD hath performed his word that he spake, and I am -risen up in the room of David my father, and sit on the throne of -Israel, as the LORD promised, and have built an house for the name of -the LORD God of Israel. - -8:21 And I have set there a place for the ark, wherein is the covenant -of the LORD, which he made with our fathers, when he brought them out -of the land of Egypt. - -8:22 And Solomon stood before the altar of the LORD in the presence of -all the congregation of Israel, and spread forth his hands toward -heaven: 8:23 And he said, LORD God of Israel, there is no God like -thee, in heaven above, or on earth beneath, who keepest covenant and -mercy with thy servants that walk before thee with all their heart: -8:24 Who hast kept with thy servant David my father that thou -promisedst him: thou spakest also with thy mouth, and hast fulfilled -it with thine hand, as it is this day. - -8:25 Therefore now, LORD God of Israel, keep with thy servant David my -father that thou promisedst him, saying, There shall not fail thee a -man in my sight to sit on the throne of Israel; so that thy children -take heed to their way, that they walk before me as thou hast walked -before me. - -8:26 And now, O God of Israel, let thy word, I pray thee, be verified, -which thou spakest unto thy servant David my father. - -8:27 But will God indeed dwell on the earth? behold, the heaven and -heaven of heavens cannot contain thee; how much less this house that I -have builded? 8:28 Yet have thou respect unto the prayer of thy -servant, and to his supplication, O LORD my God, to hearken unto the -cry and to the prayer, which thy servant prayeth before thee to day: -8:29 That thine eyes may be open toward this house night and day, even -toward the place of which thou hast said, My name shall be there: that -thou mayest hearken unto the prayer which thy servant shall make -toward this place. - -8:30 And hearken thou to the supplication of thy servant, and of thy -people Israel, when they shall pray toward this place: and hear thou -in heaven thy dwelling place: and when thou hearest, forgive. - -8:31 If any man trespass against his neighbour, and an oath be laid -upon him to cause him to swear, and the oath come before thine altar -in this house: 8:32 Then hear thou in heaven, and do, and judge thy -servants, condemning the wicked, to bring his way upon his head; and -justifying the righteous, to give him according to his righteousness. - -8:33 When thy people Israel be smitten down before the enemy, because -they have sinned against thee, and shall turn again to thee, and -confess thy name, and pray, and make supplication unto thee in this -house: 8:34 Then hear thou in heaven, and forgive the sin of thy -people Israel, and bring them again unto the land which thou gavest -unto their fathers. - -8:35 When heaven is shut up, and there is no rain, because they have -sinned against thee; if they pray toward this place, and confess thy -name, and turn from their sin, when thou afflictest them: 8:36 Then -hear thou in heaven, and forgive the sin of thy servants, and of thy -people Israel, that thou teach them the good way wherein they should -walk, and give rain upon thy land, which thou hast given to thy people -for an inheritance. - -8:37 If there be in the land famine, if there be pestilence, blasting, -mildew, locust, or if there be caterpiller; if their enemy besiege -them in the land of their cities; whatsoever plague, whatsoever -sickness there be; 8:38 What prayer and supplication soever be made by -any man, or by all thy people Israel, which shall know every man the -plague of his own heart, and spread forth his hands toward this house: -8:39 Then hear thou in heaven thy dwelling place, and forgive, and do, -and give to every man according to his ways, whose heart thou knowest; -(for thou, even thou only, knowest the hearts of all the children of -men;) 8:40 That they may fear thee all the days that they live in the -land which thou gavest unto our fathers. - -8:41 Moreover concerning a stranger, that is not of thy people Israel, -but cometh out of a far country for thy name's sake; 8:42 (For they -shall hear of thy great name, and of thy strong hand, and of thy -stretched out arm;) when he shall come and pray toward this house; -8:43 Hear thou in heaven thy dwelling place, and do according to all -that the stranger calleth to thee for: that all people of the earth -may know thy name, to fear thee, as do thy people Israel; and that -they may know that this house, which I have builded, is called by thy -name. - -8:44 If thy people go out to battle against their enemy, whithersoever -thou shalt send them, and shall pray unto the LORD toward the city -which thou hast chosen, and toward the house that I have built for thy -name: 8:45 Then hear thou in heaven their prayer and their -supplication, and maintain their cause. - -8:46 If they sin against thee, (for there is no man that sinneth not,) -and thou be angry with them, and deliver them to the enemy, so that -they carry them away captives unto the land of the enemy, far or near; -8:47 Yet if they shall bethink themselves in the land whither they -were carried captives, and repent, and make supplication unto thee in -the land of them that carried them captives, saying, We have sinned, -and have done perversely, we have committed wickedness; 8:48 And so -return unto thee with all their heart, and with all their soul, in the -land of their enemies, which led them away captive, and pray unto thee -toward their land, which thou gavest unto their fathers, the city -which thou hast chosen, and the house which I have built for thy name: -8:49 Then hear thou their prayer and their supplication in heaven thy -dwelling place, and maintain their cause, 8:50 And forgive thy people -that have sinned against thee, and all their transgressions wherein -they have transgressed against thee, and give them compassion before -them who carried them captive, that they may have compassion on them: -8:51 For they be thy people, and thine inheritance, which thou -broughtest forth out of Egypt, from the midst of the furnace of iron: -8:52 That thine eyes may be open unto the supplication of thy servant, -and unto the supplication of thy people Israel, to hearken unto them -in all that they call for unto thee. - -8:53 For thou didst separate them from among all the people of the -earth, to be thine inheritance, as thou spakest by the hand of Moses -thy servant, when thou broughtest our fathers out of Egypt, O LORD -God. - -8:54 And it was so, that when Solomon had made an end of praying all -this prayer and supplication unto the LORD, he arose from before the -altar of the LORD, from kneeling on his knees with his hands spread up -to heaven. - -8:55 And he stood, and blessed all the congregation of Israel with a -loud voice, saying, 8:56 Blessed be the LORD, that hath given rest -unto his people Israel, according to all that he promised: there hath -not failed one word of all his good promise, which he promised by the -hand of Moses his servant. - -8:57 The LORD our God be with us, as he was with our fathers: let him -not leave us, nor forsake us: 8:58 That he may incline our hearts unto -him, to walk in all his ways, and to keep his commandments, and his -statutes, and his judgments, which he commanded our fathers. - -8:59 And let these my words, wherewith I have made supplication before -the LORD, be nigh unto the LORD our God day and night, that he -maintain the cause of his servant, and the cause of his people Israel -at all times, as the matter shall require: 8:60 That all the people of -the earth may know that the LORD is God, and that there is none else. - -8:61 Let your heart therefore be perfect with the LORD our God, to -walk in his statutes, and to keep his commandments, as at this day. - -8:62 And the king, and all Israel with him, offered sacrifice before -the LORD. - -8:63 And Solomon offered a sacrifice of peace offerings, which he -offered unto the LORD, two and twenty thousand oxen, and an hundred -and twenty thousand sheep. So the king and all the children of Israel -dedicated the house of the LORD. - -8:64 The same day did the king hallow the middle of the court that was -before the house of the LORD: for there he offered burnt offerings, -and meat offerings, and the fat of the peace offerings: because the -brasen altar that was before the LORD was too little to receive the -burnt offerings, and meat offerings, and the fat of the peace -offerings. - -8:65 And at that time Solomon held a feast, and all Israel with him, a -great congregation, from the entering in of Hamath unto the river of -Egypt, before the LORD our God, seven days and seven days, even -fourteen days. - -8:66 On the eighth day he sent the people away: and they blessed the -king, and went unto their tents joyful and glad of heart for all the -goodness that the LORD had done for David his servant, and for Israel -his people. - -9:1 And it came to pass, when Solomon had finished the building of the -house of the LORD, and the king's house, and all Solomon's desire -which he was pleased to do, 9:2 That the LORD appeared to Solomon the -second time, as he had appeared unto him at Gibeon. - -9:3 And the LORD said unto him, I have heard thy prayer and thy -supplication, that thou hast made before me: I have hallowed this -house, which thou hast built, to put my name there for ever; and mine -eyes and mine heart shall be there perpetually. - -9:4 And if thou wilt walk before me, as David thy father walked, in -integrity of heart, and in uprightness, to do according to all that I -have commanded thee, and wilt keep my statutes and my judgments: 9:5 -Then I will establish the throne of thy kingdom upon Israel for ever, -as I promised to David thy father, saying, There shall not fail thee a -man upon the throne of Israel. - -9:6 But if ye shall at all turn from following me, ye or your -children, and will not keep my commandments and my statutes which I -have set before you, but go and serve other gods, and worship them: -9:7 Then will I cut off Israel out of the land which I have given -them; and this house, which I have hallowed for my name, will I cast -out of my sight; and Israel shall be a proverb and a byword among all -people: 9:8 And at this house, which is high, every one that passeth -by it shall be astonished, and shall hiss; and they shall say, Why -hath the LORD done thus unto this land, and to this house? 9:9 And -they shall answer, Because they forsook the LORD their God, who -brought forth their fathers out of the land of Egypt, and have taken -hold upon other gods, and have worshipped them, and served them: -therefore hath the LORD brought upon them all this evil. - -9:10 And it came to pass at the end of twenty years, when Solomon had -built the two houses, the house of the LORD, and the king's house, -9:11 (Now Hiram the king of Tyre had furnished Solomon with cedar -trees and fir trees, and with gold, according to all his desire,) that -then king Solomon gave Hiram twenty cities in the land of Galilee. - -9:12 And Hiram came out from Tyre to see the cities which Solomon had -given him; and they pleased him not. - -9:13 And he said, What cities are these which thou hast given me, my -brother? And he called them the land of Cabul unto this day. - -9:14 And Hiram sent to the king sixscore talents of gold. - -9:15 And this is the reason of the levy which king Solomon raised; for -to build the house of the LORD, and his own house, and Millo, and the -wall of Jerusalem, and Hazor, and Megiddo, and Gezer. - -9:16 For Pharaoh king of Egypt had gone up, and taken Gezer, and burnt -it with fire, and slain the Canaanites that dwelt in the city, and -given it for a present unto his daughter, Solomon's wife. - -9:17 And Solomon built Gezer, and Bethhoron the nether, 9:18 And -Baalath, and Tadmor in the wilderness, in the land, 9:19 And all the -cities of store that Solomon had, and cities for his chariots, and -cities for his horsemen, and that which Solomon desired to build in -Jerusalem, and in Lebanon, and in all the land of his dominion. - -9:20 And all the people that were left of the Amorites, Hittites, -Perizzites, Hivites, and Jebusites, which were not of the children of -Israel, 9:21 Their children that were left after them in the land, -whom the children of Israel also were not able utterly to destroy, -upon those did Solomon levy a tribute of bondservice unto this day. - -9:22 But of the children of Israel did Solomon make no bondmen: but -they were men of war, and his servants, and his princes, and his -captains, and rulers of his chariots, and his horsemen. - -9:23 These were the chief of the officers that were over Solomon's -work, five hundred and fifty, which bare rule over the people that -wrought in the work. - -9:24 But Pharaoh's daughter came up out of the city of David unto her -house which Solomon had built for her: then did he build Millo. - -9:25 And three times in a year did Solomon offer burnt offerings and -peace offerings upon the altar which he built unto the LORD, and he -burnt incense upon the altar that was before the LORD. So he finished -the house. - -9:26 And king Solomon made a navy of ships in Eziongeber, which is -beside Eloth, on the shore of the Red sea, in the land of Edom. - -9:27 And Hiram sent in the navy his servants, shipmen that had -knowledge of the sea, with the servants of Solomon. - -9:28 And they came to Ophir, and fetched from thence gold, four -hundred and twenty talents, and brought it to king Solomon. - -10:1 And when the queen of Sheba heard of the fame of Solomon -concerning the name of the LORD, she came to prove him with hard -questions. - -10:2 And she came to Jerusalem with a very great train, with camels -that bare spices, and very much gold, and precious stones: and when -she was come to Solomon, she communed with him of all that was in her -heart. - -10:3 And Solomon told her all her questions: there was not any thing -hid from the king, which he told her not. - -10:4 And when the queen of Sheba had seen all Solomon's wisdom, and -the house that he had built, 10:5 And the meat of his table, and the -sitting of his servants, and the attendance of his ministers, and -their apparel, and his cupbearers, and his ascent by which he went up -unto the house of the LORD; there was no more spirit in her. - -10:6 And she said to the king, It was a true report that I heard in -mine own land of thy acts and of thy wisdom. - -10:7 Howbeit I believed not the words, until I came, and mine eyes had -seen it: and, behold, the half was not told me: thy wisdom and -prosperity exceedeth the fame which I heard. - -10:8 Happy are thy men, happy are these thy servants, which stand -continually before thee, and that hear thy wisdom. - -10:9 Blessed be the LORD thy God, which delighted in thee, to set thee -on the throne of Israel: because the LORD loved Israel for ever, -therefore made he thee king, to do judgment and justice. - -10:10 And she gave the king an hundred and twenty talents of gold, and -of spices very great store, and precious stones: there came no more -such abundance of spices as these which the queen of Sheba gave to -king Solomon. - -10:11 And the navy also of Hiram, that brought gold from Ophir, -brought in from Ophir great plenty of almug trees, and precious -stones. - -10:12 And the king made of the almug trees pillars for the house of -the LORD, and for the king's house, harps also and psalteries for -singers: there came no such almug trees, nor were seen unto this day. - -10:13 And king Solomon gave unto the queen of Sheba all her desire, -whatsoever she asked, beside that which Solomon gave her of his royal -bounty. - -So she turned and went to her own country, she and her servants. - -10:14 Now the weight of gold that came to Solomon in one year was six -hundred threescore and six talents of gold, 10:15 Beside that he had -of the merchantmen, and of the traffick of the spice merchants, and of -all the kings of Arabia, and of the governors of the country. - -10:16 And king Solomon made two hundred targets of beaten gold: six -hundred shekels of gold went to one target. - -10:17 And he made three hundred shields of beaten gold; three pound of -gold went to one shield: and the king put them in the house of the -forest of Lebanon. - -10:18 Moreover the king made a great throne of ivory, and overlaid it -with the best gold. - -10:19 The throne had six steps, and the top of the throne was round -behind: and there were stays on either side on the place of the seat, -and two lions stood beside the stays. - -10:20 And twelve lions stood there on the one side and on the other -upon the six steps: there was not the like made in any kingdom. - -10:21 And all king Solomon's drinking vessels were of gold, and all -the vessels of the house of the forest of Lebanon were of pure gold; -none were of silver: it was nothing accounted of in the days of -Solomon. - -10:22 For the king had at sea a navy of Tharshish with the navy of -Hiram: once in three years came the navy of Tharshish, bringing gold, -and silver, ivory, and apes, and peacocks. - -10:23 So king Solomon exceeded all the kings of the earth for riches -and for wisdom. - -10:24 And all the earth sought to Solomon, to hear his wisdom, which -God had put in his heart. - -10:25 And they brought every man his present, vessels of silver, and -vessels of gold, and garments, and armour, and spices, horses, and -mules, a rate year by year. - -10:26 And Solomon gathered together chariots and horsemen: and he had -a thousand and four hundred chariots, and twelve thousand horsemen, -whom he bestowed in the cities for chariots, and with the king at -Jerusalem. - -10:27 And the king made silver to be in Jerusalem as stones, and -cedars made he to be as the sycomore trees that are in the vale, for -abundance. - -10:28 And Solomon had horses brought out of Egypt, and linen yarn: the -king's merchants received the linen yarn at a price. - -10:29 And a chariot came up and went out of Egypt for six hundred -shekels of silver, and an horse for an hundred and fifty: and so for -all the kings of the Hittites, and for the kings of Syria, did they -bring them out by their means. - -11:1 But king Solomon loved many strange women, together with the -daughter of Pharaoh, women of the Moabites, Ammonites, Edomites, -Zidonians, and Hittites: 11:2 Of the nations concerning which the LORD -said unto the children of Israel, Ye shall not go in to them, neither -shall they come in unto you: for surely they will turn away your heart -after their gods: Solomon clave unto these in love. - -11:3 And he had seven hundred wives, princesses, and three hundred -concubines: and his wives turned away his heart. - -11:4 For it came to pass, when Solomon was old, that his wives turned -away his heart after other gods: and his heart was not perfect with -the LORD his God, as was the heart of David his father. - -11:5 For Solomon went after Ashtoreth the goddess of the Zidonians, -and after Milcom the abomination of the Ammonites. - -11:6 And Solomon did evil in the sight of the LORD, and went not fully -after the LORD, as did David his father. - -11:7 Then did Solomon build an high place for Chemosh, the abomination -of Moab, in the hill that is before Jerusalem, and for Molech, the -abomination of the children of Ammon. - -11:8 And likewise did he for all his strange wives, which burnt -incense and sacrificed unto their gods. - -11:9 And the LORD was angry with Solomon, because his heart was turned -from the LORD God of Israel, which had appeared unto him twice, 11:10 -And had commanded him concerning this thing, that he should not go -after other gods: but he kept not that which the LORD commanded. - -11:11 Wherefore the LORD said unto Solomon, Forasmuch as this is done -of thee, and thou hast not kept my covenant and my statutes, which I -have commanded thee, I will surely rend the kingdom from thee, and -will give it to thy servant. - -11:12 Notwithstanding in thy days I will not do it for David thy -father's sake: but I will rend it out of the hand of thy son. - -11:13 Howbeit I will not rend away all the kingdom; but will give one -tribe to thy son for David my servant's sake, and for Jerusalem's sake -which I have chosen. - -11:14 And the LORD stirred up an adversary unto Solomon, Hadad the -Edomite: he was of the king's seed in Edom. - -11:15 For it came to pass, when David was in Edom, and Joab the -captain of the host was gone up to bury the slain, after he had -smitten every male in Edom; 11:16 (For six months did Joab remain -there with all Israel, until he had cut off every male in Edom:) 11:17 -That Hadad fled, he and certain Edomites of his father's servants with -him, to go into Egypt; Hadad being yet a little child. - -11:18 And they arose out of Midian, and came to Paran: and they took -men with them out of Paran, and they came to Egypt, unto Pharaoh king -of Egypt; which gave him an house, and appointed him victuals, and -gave him land. - -11:19 And Hadad found great favour in the sight of Pharaoh, so that he -gave him to wife the sister of his own wife, the sister of Tahpenes -the queen. - -11:20 And the sister of Tahpenes bare him Genubath his son, whom -Tahpenes weaned in Pharaoh's house: and Genubath was in Pharaoh's -household among the sons of Pharaoh. - -11:21 And when Hadad heard in Egypt that David slept with his fathers, -and that Joab the captain of the host was dead, Hadad said to Pharaoh, -Let me depart, that I may go to mine own country. - -11:22 Then Pharaoh said unto him, But what hast thou lacked with me, -that, behold, thou seekest to go to thine own country? And he -answered, Nothing: howbeit let me go in any wise. - -11:23 And God stirred him up another adversary, Rezon the son of -Eliadah, which fled from his lord Hadadezer king of Zobah: 11:24 And -he gathered men unto him, and became captain over a band, when David -slew them of Zobah: and they went to Damascus, and dwelt therein, and -reigned in Damascus. - -11:25 And he was an adversary to Israel all the days of Solomon, -beside the mischief that Hadad did: and he abhorred Israel, and -reigned over Syria. - -11:26 And Jeroboam the son of Nebat, an Ephrathite of Zereda, -Solomon's servant, whose mother's name was Zeruah, a widow woman, even -he lifted up his hand against the king. - -11:27 And this was the cause that he lifted up his hand against the -king: Solomon built Millo, and repaired the breaches of the city of -David his father. - -11:28 And the man Jeroboam was a mighty man of valour: and Solomon -seeing the young man that he was industrious, he made him ruler over -all the charge of the house of Joseph. - -11:29 And it came to pass at that time when Jeroboam went out of -Jerusalem, that the prophet Ahijah the Shilonite found him in the way; -and he had clad himself with a new garment; and they two were alone in -the field: 11:30 And Ahijah caught the new garment that was on him, -and rent it in twelve pieces: 11:31 And he said to Jeroboam, Take thee -ten pieces: for thus saith the LORD, the God of Israel, Behold, I will -rend the kingdom out of the hand of Solomon, and will give ten tribes -to thee: 11:32 (But he shall have one tribe for my servant David's -sake, and for Jerusalem's sake, the city which I have chosen out of -all the tribes of Israel:) 11:33 Because that they have forsaken me, -and have worshipped Ashtoreth the goddess of the Zidonians, Chemosh -the god of the Moabites, and Milcom the god of the children of Ammon, -and have not walked in my ways, to do that which is right in mine -eyes, and to keep my statutes and my judgments, as did David his -father. - -11:34 Howbeit I will not take the whole kingdom out of his hand: but I -will make him prince all the days of his life for David my servant's -sake, whom I chose, because he kept my commandments and my statutes: -11:35 But I will take the kingdom out of his son's hand, and will give -it unto thee, even ten tribes. - -11:36 And unto his son will I give one tribe, that David my servant -may have a light alway before me in Jerusalem, the city which I have -chosen me to put my name there. - -11:37 And I will take thee, and thou shalt reign according to all that -thy soul desireth, and shalt be king over Israel. - -11:38 And it shall be, if thou wilt hearken unto all that I command -thee, and wilt walk in my ways, and do that is right in my sight, to -keep my statutes and my commandments, as David my servant did; that I -will be with thee, and build thee a sure house, as I built for David, -and will give Israel unto thee. - -11:39 And I will for this afflict the seed of David, but not for ever. - -11:40 Solomon sought therefore to kill Jeroboam. And Jeroboam arose, -and fled into Egypt, unto Shishak king of Egypt, and was in Egypt -until the death of Solomon. - -11:41 And the rest of the acts of Solomon, and all that he did, and -his wisdom, are they not written in the book of the acts of Solomon? -11:42 And the time that Solomon reigned in Jerusalem over all Israel -was forty years. - -11:43 And Solomon slept with his fathers, and was buried in the city -of David his father: and Rehoboam his son reigned in his stead. - -12:1 And Rehoboam went to Shechem: for all Israel were come to Shechem -to make him king. - -12:2 And it came to pass, when Jeroboam the son of Nebat, who was yet -in Egypt, heard of it, (for he was fled from the presence of king -Solomon, and Jeroboam dwelt in Egypt;) 12:3 That they sent and called -him. And Jeroboam and all the congregation of Israel came, and spake -unto Rehoboam, saying, 12:4 Thy father made our yoke grievous: now -therefore make thou the grievous service of thy father, and his heavy -yoke which he put upon us, lighter, and we will serve thee. - -12:5 And he said unto them, Depart yet for three days, then come again -to me. And the people departed. - -12:6 And king Rehoboam consulted with the old men, that stood before -Solomon his father while he yet lived, and said, How do ye advise that -I may answer this people? 12:7 And they spake unto him, saying, If -thou wilt be a servant unto this people this day, and wilt serve them, -and answer them, and speak good words to them, then they will be thy -servants for ever. - -12:8 But he forsook the counsel of the old men, which they had given -him, and consulted with the young men that were grown up with him, and -which stood before him: 12:9 And he said unto them, What counsel give -ye that we may answer this people, who have spoken to me, saying, Make -the yoke which thy father did put upon us lighter? 12:10 And the -young men that were grown up with him spake unto him, saying, Thus -shalt thou speak unto this people that spake unto thee, saying, Thy -father made our yoke heavy, but make thou it lighter unto us; thus -shalt thou say unto them, My little finger shall be thicker than my -father's loins. - -12:11 And now whereas my father did lade you with a heavy yoke, I will -add to your yoke: my father hath chastised you with whips, but I will -chastise you with scorpions. - -12:12 So Jeroboam and all the people came to Rehoboam the third day, -as the king had appointed, saying, Come to me again the third day. - -12:13 And the king answered the people roughly, and forsook the old -men's counsel that they gave him; 12:14 And spake to them after the -counsel of the young men, saying, My father made your yoke heavy, and -I will add to your yoke: my father also chastised you with whips, but -I will chastise you with scorpions. - -12:15 Wherefore the king hearkened not unto the people; for the cause -was from the LORD, that he might perform his saying, which the LORD -spake by Ahijah the Shilonite unto Jeroboam the son of Nebat. - -12:16 So when all Israel saw that the king hearkened not unto them, -the people answered the king, saying, What portion have we in David? -neither have we inheritance in the son of Jesse: to your tents, O -Israel: now see to thine own house, David. So Israel departed unto -their tents. - -12:17 But as for the children of Israel which dwelt in the cities of -Judah, Rehoboam reigned over them. - -12:18 Then king Rehoboam sent Adoram, who was over the tribute; and -all Israel stoned him with stones, that he died. Therefore king -Rehoboam made speed to get him up to his chariot, to flee to -Jerusalem. - -12:19 So Israel rebelled against the house of David unto this day. - -12:20 And it came to pass, when all Israel heard that Jeroboam was -come again, that they sent and called him unto the congregation, and -made him king over all Israel: there was none that followed the house -of David, but the tribe of Judah only. - -12:21 And when Rehoboam was come to Jerusalem, he assembled all the -house of Judah, with the tribe of Benjamin, an hundred and fourscore -thousand chosen men, which were warriors, to fight against the house -of Israel, to bring the kingdom again to Rehoboam the son of Solomon. - -12:22 But the word of God came unto Shemaiah the man of God, saying, -12:23 Speak unto Rehoboam, the son of Solomon, king of Judah, and unto -all the house of Judah and Benjamin, and to the remnant of the people, -saying, 12:24 Thus saith the LORD, Ye shall not go up, nor fight -against your brethren the children of Israel: return every man to his -house; for this thing is from me. They hearkened therefore to the word -of the LORD, and returned to depart, according to the word of the -LORD. - -12:25 Then Jeroboam built Shechem in mount Ephraim, and dwelt therein; -and went out from thence, and built Penuel. - -12:26 And Jeroboam said in his heart, Now shall the kingdom return to -the house of David: 12:27 If this people go up to do sacrifice in the -house of the LORD at Jerusalem, then shall the heart of this people -turn again unto their lord, even unto Rehoboam king of Judah, and they -shall kill me, and go again to Rehoboam king of Judah. - -12:28 Whereupon the king took counsel, and made two calves of gold, -and said unto them, It is too much for you to go up to Jerusalem: -behold thy gods, O Israel, which brought thee up out of the land of -Egypt. - -12:29 And he set the one in Bethel, and the other put he in Dan. - -12:30 And this thing became a sin: for the people went to worship -before the one, even unto Dan. - -12:31 And he made an house of high places, and made priests of the -lowest of the people, which were not of the sons of Levi. - -12:32 And Jeroboam ordained a feast in the eighth month, on the -fifteenth day of the month, like unto the feast that is in Judah, and -he offered upon the altar. So did he in Bethel, sacrificing unto the -calves that he had made: and he placed in Bethel the priests of the -high places which he had made. - -12:33 So he offered upon the altar which he had made in Bethel the -fifteenth day of the eighth month, even in the month which he had -devised of his own heart; and ordained a feast unto the children of -Israel: and he offered upon the altar, and burnt incense. - -13:1 And, behold, there came a man of God out of Judah by the word of -the LORD unto Bethel: and Jeroboam stood by the altar to burn incense. - -13:2 And he cried against the altar in the word of the LORD, and said, -O altar, altar, thus saith the LORD; Behold, a child shall be born -unto the house of David, Josiah by name; and upon thee shall he offer -the priests of the high places that burn incense upon thee, and men's -bones shall be burnt upon thee. - -13:3 And he gave a sign the same day, saying, This is the sign which -the LORD hath spoken; Behold, the altar shall be rent, and the ashes -that are upon it shall be poured out. - -13:4 And it came to pass, when king Jeroboam heard the saying of the -man of God, which had cried against the altar in Bethel, that he put -forth his hand from the altar, saying, Lay hold on him. And his hand, -which he put forth against him, dried up, so that he could not pull it -in again to him. - -13:5 The altar also was rent, and the ashes poured out from the altar, -according to the sign which the man of God had given by the word of -the LORD. - -13:6 And the king answered and said unto the man of God, Intreat now -the face of the LORD thy God, and pray for me, that my hand may be -restored me again. And the man of God besought the LORD, and the -king's hand was restored him again, and became as it was before. - -13:7 And the king said unto the man of God, Come home with me, and -refresh thyself, and I will give thee a reward. - -13:8 And the man of God said unto the king, If thou wilt give me half -thine house, I will not go in with thee, neither will I eat bread nor -drink water in this place: 13:9 For so was it charged me by the word -of the LORD, saying, Eat no bread, nor drink water, nor turn again by -the same way that thou camest. - -13:10 So he went another way, and returned not by the way that he came -to Bethel. - -13:11 Now there dwelt an old prophet in Bethel; and his sons came and -told him all the works that the man of God had done that day in -Bethel: the words which he had spoken unto the king, them they told -also to their father. - -13:12 And their father said unto them, What way went he? For his sons -had seen what way the man of God went, which came from Judah. - -13:13 And he said unto his sons, Saddle me the ass. So they saddled -him the ass: and he rode thereon, 13:14 And went after the man of God, -and found him sitting under an oak: and he said unto him, Art thou the -man of God that camest from Judah? And he said, I am. - -13:15 Then he said unto him, Come home with me, and eat bread. - -13:16 And he said, I may not return with thee, nor go in with thee: -neither will I eat bread nor drink water with thee in this place: -13:17 For it was said to me by the word of the LORD, Thou shalt eat no -bread nor drink water there, nor turn again to go by the way that thou -camest. - -13:18 He said unto him, I am a prophet also as thou art; and an angel -spake unto me by the word of the LORD, saying, Bring him back with -thee into thine house, that he may eat bread and drink water. But he -lied unto him. - -13:19 So he went back with him, and did eat bread in his house, and -drank water. - -13:20 And it came to pass, as they sat at the table, that the word of -the LORD came unto the prophet that brought him back: 13:21 And he -cried unto the man of God that came from Judah, saying, Thus saith the -LORD, Forasmuch as thou hast disobeyed the mouth of the LORD, and hast -not kept the commandment which the LORD thy God commanded thee, 13:22 -But camest back, and hast eaten bread and drunk water in the place, of -the which the Lord did say to thee, Eat no bread, and drink no water; -thy carcase shall not come unto the sepulchre of thy fathers. - -13:23 And it came to pass, after he had eaten bread, and after he had -drunk, that he saddled for him the ass, to wit, for the prophet whom -he had brought back. - -13:24 And when he was gone, a lion met him by the way, and slew him: -and his carcase was cast in the way, and the ass stood by it, the lion -also stood by the carcase. - -13:25 And, behold, men passed by, and saw the carcase cast in the way, -and the lion standing by the carcase: and they came and told it in the -city where the old prophet dwelt. - -13:26 And when the prophet that brought him back from the way heard -thereof, he said, It is the man of God, who was disobedient unto the -word of the LORD: therefore the LORD hath delivered him unto the lion, -which hath torn him, and slain him, according to the word of the LORD, -which he spake unto him. - -13:27 And he spake to his sons, saying, Saddle me the ass. And they -saddled him. - -13:28 And he went and found his carcase cast in the way, and the ass -and the lion standing by the carcase: the lion had not eaten the -carcase, nor torn the ass. - -13:29 And the prophet took up the carcase of the man of God, and laid -it upon the ass, and brought it back: and the old prophet came to the -city, to mourn and to bury him. - -13:30 And he laid his carcase in his own grave; and they mourned over -him, saying, Alas, my brother! 13:31 And it came to pass, after he -had buried him, that he spake to his sons, saying, When I am dead, -then bury me in the sepulchre wherein the man of God is buried; lay my -bones beside his bones: 13:32 For the saying which he cried by the -word of the LORD against the altar in Bethel, and against all the -houses of the high places which are in the cities of Samaria, shall -surely come to pass. - -13:33 After this thing Jeroboam returned not from his evil way, but -made again of the lowest of the people priests of the high places: -whosoever would, he consecrated him, and he became one of the priests -of the high places. - -13:34 And this thing became sin unto the house of Jeroboam, even to -cut it off, and to destroy it from off the face of the earth. - -14:1 At that time Abijah the son of Jeroboam fell sick. - -14:2 And Jeroboam said to his wife, Arise, I pray thee, and disguise -thyself, that thou be not known to be the wife of Jeroboam; and get -thee to Shiloh: behold, there is Ahijah the prophet, which told me -that I should be king over this people. - -14:3 And take with thee ten loaves, and cracknels, and a cruse of -honey, and go to him: he shall tell thee what shall become of the -child. - -14:4 And Jeroboam's wife did so, and arose, and went to Shiloh, and -came to the house of Ahijah. But Ahijah could not see; for his eyes -were set by reason of his age. - -14:5 And the LORD said unto Ahijah, Behold, the wife of Jeroboam -cometh to ask a thing of thee for her son; for he is sick: thus and -thus shalt thou say unto her: for it shall be, when she cometh in, -that she shall feign herself to be another woman. - -14:6 And it was so, when Ahijah heard the sound of her feet, as she -came in at the door, that he said, Come in, thou wife of Jeroboam; why -feignest thou thyself to be another? for I am sent to thee with heavy -tidings. - -14:7 Go, tell Jeroboam, Thus saith the LORD God of Israel, Forasmuch -as I exalted thee from among the people, and made thee prince over my -people Israel, 14:8 And rent the kingdom away from the house of David, -and gave it thee: and yet thou hast not been as my servant David, who -kept my commandments, and who followed me with all his heart, to do -that only which was right in mine eyes; 14:9 But hast done evil above -all that were before thee: for thou hast gone and made thee other -gods, and molten images, to provoke me to anger, and hast cast me -behind thy back: 14:10 Therefore, behold, I will bring evil upon the -house of Jeroboam, and will cut off from Jeroboam him that pisseth -against the wall, and him that is shut up and left in Israel, and will -take away the remnant of the house of Jeroboam, as a man taketh away -dung, till it be all gone. - -14:11 Him that dieth of Jeroboam in the city shall the dogs eat; and -him that dieth in the field shall the fowls of the air eat: for the -LORD hath spoken it. - -14:12 Arise thou therefore, get thee to thine own house: and when thy -feet enter into the city, the child shall die. - -14:13 And all Israel shall mourn for him, and bury him: for he only of -Jeroboam shall come to the grave, because in him there is found some -good thing toward the LORD God of Israel in the house of Jeroboam. - -14:14 Moreover the LORD shall raise him up a king over Israel, who -shall cut off the house of Jeroboam that day: but what? even now. - -14:15 For the LORD shall smite Israel, as a reed is shaken in the -water, and he shall root up Israel out of this good land, which he -gave to their fathers, and shall scatter them beyond the river, -because they have made their groves, provoking the LORD to anger. - -14:16 And he shall give Israel up because of the sins of Jeroboam, who -did sin, and who made Israel to sin. - -14:17 And Jeroboam's wife arose, and departed, and came to Tirzah: and -when she came to the threshold of the door, the child died; 14:18 And -they buried him; and all Israel mourned for him, according to the word -of the LORD, which he spake by the hand of his servant Ahijah the -prophet. - -14:19 And the rest of the acts of Jeroboam, how he warred, and how he -reigned, behold, they are written in the book of the chronicles of the -kings of Israel. - -14:20 And the days which Jeroboam reigned were two and twenty years: -and he slept with his fathers, and Nadab his son reigned in his stead. - -14:21 And Rehoboam the son of Solomon reigned in Judah. Rehoboam was -forty and one years old when he began to reign, and he reigned -seventeen years in Jerusalem, the city which the LORD did choose out -of all the tribes of Israel, to put his name there. And his mother's -name was Naamah an Ammonitess. - -14:22 And Judah did evil in the sight of the LORD, and they provoked -him to jealousy with their sins which they had committed, above all -that their fathers had done. - -14:23 For they also built them high places, and images, and groves, on -every high hill, and under every green tree. - -14:24 And there were also sodomites in the land: and they did -according to all the abominations of the nations which the LORD cast -out before the children of Israel. - -14:25 And it came to pass in the fifth year of king Rehoboam, that -Shishak king of Egypt came up against Jerusalem: 14:26 And he took -away the treasures of the house of the LORD, and the treasures of the -king's house; he even took away all: and he took away all the shields -of gold which Solomon had made. - -14:27 And king Rehoboam made in their stead brasen shields, and -committed them unto the hands of the chief of the guard, which kept -the door of the king's house. - -14:28 And it was so, when the king went into the house of the LORD, -that the guard bare them, and brought them back into the guard -chamber. - -14:29 Now the rest of the acts of Rehoboam, and all that he did, are -they not written in the book of the chronicles of the kings of Judah? -14:30 And there was war between Rehoboam and Jeroboam all their days. - -14:31 And Rehoboam slept with his fathers, and was buried with his -fathers in the city of David. And his mother's name was Naamah an -Ammonitess. And Abijam his son reigned in his stead. - -15:1 Now in the eighteenth year of king Jeroboam the son of Nebat -reigned Abijam over Judah. - -15:2 Three years reigned he in Jerusalem. and his mother's name was -Maachah, the daughter of Abishalom. - -15:3 And he walked in all the sins of his father, which he had done -before him: and his heart was not perfect with the LORD his God, as -the heart of David his father. - -15:4 Nevertheless for David's sake did the LORD his God give him a -lamp in Jerusalem, to set up his son after him, and to establish -Jerusalem: 15:5 Because David did that which was right in the eyes of -the LORD, and turned not aside from any thing that he commanded him -all the days of his life, save only in the matter of Uriah the -Hittite. - -15:6 And there was war between Rehoboam and Jeroboam all the days of -his life. - -15:7 Now the rest of the acts of Abijam, and all that he did, are they -not written in the book of the chronicles of the kings of Judah? And -there was war between Abijam and Jeroboam. - -15:8 And Abijam slept with his fathers; and they buried him in the -city of David: and Asa his son reigned in his stead. - -15:9 And in the twentieth year of Jeroboam king of Israel reigned Asa -over Judah. - -15:10 And forty and one years reigned he in Jerusalem. And his -mother's name was Maachah, the daughter of Abishalom. - -15:11 And Asa did that which was right in the eyes of the LORD, as did -David his father. - -15:12 And he took away the sodomites out of the land, and removed all -the idols that his fathers had made. - -15:13 And also Maachah his mother, even her he removed from being -queen, because she had made an idol in a grove; and Asa destroyed her -idol, and burnt it by the brook Kidron. - -15:14 But the high places were not removed: nevertheless Asa's heart -was perfect with the LORD all his days. - -15:15 And he brought in the things which his father had dedicated, and -the things which himself had dedicated, into the house of the LORD, -silver, and gold, and vessels. - -15:16 And there was war between Asa and Baasha king of Israel all -their days. - -15:17 And Baasha king of Israel went up against Judah, and built -Ramah, that he might not suffer any to go out or come in to Asa king -of Judah. - -15:18 Then Asa took all the silver and the gold that were left in the -treasures of the house of the LORD, and the treasures of the king's -house, and delivered them into the hand of his servants: and king Asa -sent them to Benhadad, the son of Tabrimon, the son of Hezion, king of -Syria, that dwelt at Damascus, saying, 15:19 There is a league between -me and thee, and between my father and thy father: behold, I have sent -unto thee a present of silver and gold; come and break thy league with -Baasha king of Israel, that he may depart from me. - -15:20 So Benhadad hearkened unto king Asa, and sent the captains of -the hosts which he had against the cities of Israel, and smote Ijon, -and Dan, and Abelbethmaachah, and all Cinneroth, with all the land of -Naphtali. - -15:21 And it came to pass, when Baasha heard thereof, that he left off -building of Ramah, and dwelt in Tirzah. - -15:22 Then king Asa made a proclamation throughout all Judah; none was -exempted: and they took away the stones of Ramah, and the timber -thereof, wherewith Baasha had builded; and king Asa built with them -Geba of Benjamin, and Mizpah. - -15:23 The rest of all the acts of Asa, and all his might, and all that -he did, and the cities which he built, are they not written in the -book of the chronicles of the kings of Judah? Nevertheless in the time -of his old age he was diseased in his feet. - -15:24 And Asa slept with his fathers, and was buried with his fathers -in the city of David his father: and Jehoshaphat his son reigned in -his stead. - -15:25 And Nadab the son of Jeroboam began to reign over Israel in the -second year of Asa king of Judah, and reigned over Israel two years. - -15:26 And he did evil in the sight of the LORD, and walked in the way -of his father, and in his sin wherewith he made Israel to sin. - -15:27 And Baasha the son of Ahijah, of the house of Issachar, -conspired against him; and Baasha smote him at Gibbethon, which -belonged to the Philistines; for Nadab and all Israel laid siege to -Gibbethon. - -15:28 Even in the third year of Asa king of Judah did Baasha slay him, -and reigned in his stead. - -15:29 And it came to pass, when he reigned, that he smote all the -house of Jeroboam; he left not to Jeroboam any that breathed, until he -had destroyed him, according unto the saying of the LORD, which he -spake by his servant Ahijah the Shilonite: 15:30 Because of the sins -of Jeroboam which he sinned, and which he made Israel sin, by his -provocation wherewith he provoked the LORD God of Israel to anger. - -15:31 Now the rest of the acts of Nadab, and all that he did, are they -not written in the book of the chronicles of the kings of Israel? -15:32 And there was war between Asa and Baasha king of Israel all -their days. - -15:33 In the third year of Asa king of Judah began Baasha the son of -Ahijah to reign over all Israel in Tirzah, twenty and four years. - -15:34 And he did evil in the sight of the LORD, and walked in the way -of Jeroboam, and in his sin wherewith he made Israel to sin. - -16:1 Then the word of the LORD came to Jehu the son of Hanani against -Baasha, saying, 16:2 Forasmuch as I exalted thee out of the dust, and -made thee prince over my people Israel; and thou hast walked in the -way of Jeroboam, and hast made my people Israel to sin, to provoke me -to anger with their sins; 16:3 Behold, I will take away the posterity -of Baasha, and the posterity of his house; and will make thy house -like the house of Jeroboam the son of Nebat. - -16:4 Him that dieth of Baasha in the city shall the dogs eat; and him -that dieth of his in the fields shall the fowls of the air eat. - -16:5 Now the rest of the acts of Baasha, and what he did, and his -might, are they not written in the book of the chronicles of the kings -of Israel? 16:6 So Baasha slept with his fathers, and was buried in -Tirzah: and Elah his son reigned in his stead. - -16:7 And also by the hand of the prophet Jehu the son of Hanani came -the word of the LORD against Baasha, and against his house, even for -all the evil that he did in the sight of the LORD, in provoking him to -anger with the work of his hands, in being like the house of Jeroboam; -and because he killed him. - -16:8 In the twenty and sixth year of Asa king of Judah began Elah the -son of Baasha to reign over Israel in Tirzah, two years. - -16:9 And his servant Zimri, captain of half his chariots, conspired -against him, as he was in Tirzah, drinking himself drunk in the house -of Arza steward of his house in Tirzah. - -16:10 And Zimri went in and smote him, and killed him, in the twenty -and seventh year of Asa king of Judah, and reigned in his stead. - -16:11 And it came to pass, when he began to reign, as soon as he sat -on his throne, that he slew all the house of Baasha: he left him not -one that pisseth against a wall, neither of his kinsfolks, nor of his -friends. - -16:12 Thus did Zimri destroy all the house of Baasha, according to the -word of the LORD, which he spake against Baasha by Jehu the prophet. - -16:13 For all the sins of Baasha, and the sins of Elah his son, by -which they sinned, and by which they made Israel to sin, in provoking -the LORD God of Israel to anger with their vanities. - -16:14 Now the rest of the acts of Elah, and all that he did, are they -not written in the book of the chronicles of the kings of Israel? -16:15 In the twenty and seventh year of Asa king of Judah did Zimri -reign seven days in Tirzah. And the people were encamped against -Gibbethon, which belonged to the Philistines. - -16:16 And the people that were encamped heard say, Zimri hath -conspired, and hath also slain the king: wherefore all Israel made -Omri, the captain of the host, king over Israel that day in the camp. - -16:17 And Omri went up from Gibbethon, and all Israel with him, and -they besieged Tirzah. - -16:18 And it came to pass, when Zimri saw that the city was taken, -that he went into the palace of the king's house, and burnt the king's -house over him with fire, and died. - -16:19 For his sins which he sinned in doing evil in the sight of the -LORD, in walking in the way of Jeroboam, and in his sin which he did, -to make Israel to sin. - -16:20 Now the rest of the acts of Zimri, and his treason that he -wrought, are they not written in the book of the chronicles of the -kings of Israel? 16:21 Then were the people of Israel divided into -two parts: half of the people followed Tibni the son of Ginath, to -make him king; and half followed Omri. - -16:22 But the people that followed Omri prevailed against the people -that followed Tibni the son of Ginath: so Tibni died, and Omri -reigned. - -16:23 In the thirty and first year of Asa king of Judah began Omri to -reign over Israel, twelve years: six years reigned he in Tirzah. - -16:24 And he bought the hill Samaria of Shemer for two talents of -silver, and built on the hill, and called the name of the city which -he built, after the name of Shemer, owner of the hill, Samaria. - -16:25 But Omri wrought evil in the eyes of the LORD, and did worse -than all that were before him. - -16:26 For he walked in all the way of Jeroboam the son of Nebat, and -in his sin wherewith he made Israel to sin, to provoke the LORD God of -Israel to anger with their vanities. - -16:27 Now the rest of the acts of Omri which he did, and his might -that he shewed, are they not written in the book of the chronicles of -the kings of Israel? 16:28 So Omri slept with his fathers, and was -buried in Samaria: and Ahab his son reigned in his stead. - -16:29 And in the thirty and eighth year of Asa king of Judah began -Ahab the son of Omri to reign over Israel: and Ahab the son of Omri -reigned over Israel in Samaria twenty and two years. - -16:30 And Ahab the son of Omri did evil in the sight of the LORD above -all that were before him. - -16:31 And it came to pass, as if it had been a light thing for him to -walk in the sins of Jeroboam the son of Nebat, that he took to wife -Jezebel the daughter of Ethbaal king of the Zidonians, and went and -served Baal, and worshipped him. - -16:32 And he reared up an altar for Baal in the house of Baal, which -he had built in Samaria. - -16:33 And Ahab made a grove; and Ahab did more to provoke the LORD God -of Israel to anger than all the kings of Israel that were before him. - -16:34 In his days did Hiel the Bethelite build Jericho: he laid the -foundation thereof in Abiram his firstborn, and set up the gates -thereof in his youngest son Segub, according to the word of the LORD, -which he spake by Joshua the son of Nun. - -17:1 And Elijah the Tishbite, who was of the inhabitants of Gilead, -said unto Ahab, As the LORD God of Israel liveth, before whom I stand, -there shall not be dew nor rain these years, but according to my word. - -17:2 And the word of the LORD came unto him, saying, 17:3 Get thee -hence, and turn thee eastward, and hide thyself by the brook Cherith, -that is before Jordan. - -17:4 And it shall be, that thou shalt drink of the brook; and I have -commanded the ravens to feed thee there. - -17:5 So he went and did according unto the word of the LORD: for he -went and dwelt by the brook Cherith, that is before Jordan. - -17:6 And the ravens brought him bread and flesh in the morning, and -bread and flesh in the evening; and he drank of the brook. - -17:7 And it came to pass after a while, that the brook dried up, -because there had been no rain in the land. - -17:8 And the word of the LORD came unto him, saying, 17:9 Arise, get -thee to Zarephath, which belongeth to Zidon, and dwell there: behold, -I have commanded a widow woman there to sustain thee. - -17:10 So he arose and went to Zarephath. And when he came to the gate -of the city, behold, the widow woman was there gathering of sticks: -and he called to her, and said, Fetch me, I pray thee, a little water -in a vessel, that I may drink. - -17:11 And as she was going to fetch it, he called to her, and said, -Bring me, I pray thee, a morsel of bread in thine hand. - -17:12 And she said, As the LORD thy God liveth, I have not a cake, but -an handful of meal in a barrel, and a little oil in a cruse: and, -behold, I am gathering two sticks, that I may go in and dress it for -me and my son, that we may eat it, and die. - -17:13 And Elijah said unto her, Fear not; go and do as thou hast said: -but make me thereof a little cake first, and bring it unto me, and -after make for thee and for thy son. - -17:14 For thus saith the LORD God of Israel, The barrel of meal shall -not waste, neither shall the cruse of oil fail, until the day that the -LORD sendeth rain upon the earth. - -17:15 And she went and did according to the saying of Elijah: and she, -and he, and her house, did eat many days. - -17:16 And the barrel of meal wasted not, neither did the cruse of oil -fail, according to the word of the LORD, which he spake by Elijah. - -17:17 And it came to pass after these things, that the son of the -woman, the mistress of the house, fell sick; and his sickness was so -sore, that there was no breath left in him. - -17:18 And she said unto Elijah, What have I to do with thee, O thou -man of God? art thou come unto me to call my sin to remembrance, and -to slay my son? 17:19 And he said unto her, Give me thy son. And he -took him out of her bosom, and carried him up into a loft, where he -abode, and laid him upon his own bed. - -17:20 And he cried unto the LORD, and said, O LORD my God, hast thou -also brought evil upon the widow with whom I sojourn, by slaying her -son? 17:21 And he stretched himself upon the child three times, and -cried unto the LORD, and said, O LORD my God, I pray thee, let this -child's soul come into him again. - -17:22 And the LORD heard the voice of Elijah; and the soul of the -child came into him again, and he revived. - -17:23 And Elijah took the child, and brought him down out of the -chamber into the house, and delivered him unto his mother: and Elijah -said, See, thy son liveth. - -17:24 And the woman said to Elijah, Now by this I know that thou art a -man of God, and that the word of the LORD in thy mouth is truth. - -18:1 And it came to pass after many days, that the word of the LORD -came to Elijah in the third year, saying, Go, shew thyself unto Ahab; -and I will send rain upon the earth. - -18:2 And Elijah went to shew himself unto Ahab. And there was a sore -famine in Samaria. - -18:3 And Ahab called Obadiah, which was the governor of his house. -(Now Obadiah feared the LORD greatly: 18:4 For it was so, when Jezebel -cut off the prophets of the LORD, that Obadiah took an hundred -prophets, and hid them by fifty in a cave, and fed them with bread and -water.) 18:5 And Ahab said unto Obadiah, Go into the land, unto all -fountains of water, and unto all brooks: peradventure we may find -grass to save the horses and mules alive, that we lose not all the -beasts. - -18:6 So they divided the land between them to pass throughout it: Ahab -went one way by himself, and Obadiah went another way by himself. - -18:7 And as Obadiah was in the way, behold, Elijah met him: and he -knew him, and fell on his face, and said, Art thou that my lord -Elijah? 18:8 And he answered him, I am: go, tell thy lord, Behold, -Elijah is here. - -18:9 And he said, What have I sinned, that thou wouldest deliver thy -servant into the hand of Ahab, to slay me? 18:10 As the LORD thy God -liveth, there is no nation or kingdom, whither my lord hath not sent -to seek thee: and when they said, He is not there; he took an oath of -the kingdom and nation, that they found thee not. - -18:11 And now thou sayest, Go, tell thy lord, Behold, Elijah is here. - -18:12 And it shall come to pass, as soon as I am gone from thee, that -the Spirit of the LORD shall carry thee whither I know not; and so -when I come and tell Ahab, and he cannot find thee, he shall slay me: -but I thy servant fear the LORD from my youth. - -18:13 Was it not told my lord what I did when Jezebel slew the -prophets of the LORD, how I hid an hundred men of the LORD's prophets -by fifty in a cave, and fed them with bread and water? 18:14 And now -thou sayest, Go, tell thy lord, Behold, Elijah is here: and he shall -slay me. - -18:15 And Elijah said, As the LORD of hosts liveth, before whom I -stand, I will surely shew myself unto him to day. - -18:16 So Obadiah went to meet Ahab, and told him: and Ahab went to -meet Elijah. - -18:17 And it came to pass, when Ahab saw Elijah, that Ahab said unto -him, Art thou he that troubleth Israel? 18:18 And he answered, I have -not troubled Israel; but thou, and thy father's house, in that ye have -forsaken the commandments of the LORD, and thou hast followed Baalim. - -18:19 Now therefore send, and gather to me all Israel unto mount -Carmel, and the prophets of Baal four hundred and fifty, and the -prophets of the groves four hundred, which eat at Jezebel's table. - -18:20 So Ahab sent unto all the children of Israel, and gathered the -prophets together unto mount Carmel. - -18:21 And Elijah came unto all the people, and said, How long halt ye -between two opinions? if the LORD be God, follow him: but if Baal, -then follow him. And the people answered him not a word. - -18:22 Then said Elijah unto the people, I, even I only, remain a -prophet of the LORD; but Baal's prophets are four hundred and fifty -men. - -18:23 Let them therefore give us two bullocks; and let them choose one -bullock for themselves, and cut it in pieces, and lay it on wood, and -put no fire under: and I will dress the other bullock, and lay it on -wood, and put no fire under: 18:24 And call ye on the name of your -gods, and I will call on the name of the LORD: and the God that -answereth by fire, let him be God. And all the people answered and -said, It is well spoken. - -18:25 And Elijah said unto the prophets of Baal, Choose you one -bullock for yourselves, and dress it first; for ye are many; and call -on the name of your gods, but put no fire under. - -18:26 And they took the bullock which was given them, and they dressed -it, and called on the name of Baal from morning even until noon, -saying, O Baal, hear us. But there was no voice, nor any that -answered. And they leaped upon the altar which was made. - -18:27 And it came to pass at noon, that Elijah mocked them, and said, -Cry aloud: for he is a god; either he is talking, or he is pursuing, -or he is in a journey, or peradventure he sleepeth, and must be -awaked. - -18:28 And they cried aloud, and cut themselves after their manner with -knives and lancets, till the blood gushed out upon them. - -18:29 And it came to pass, when midday was past, and they prophesied -until the time of the offering of the evening sacrifice, that there -was neither voice, nor any to answer, nor any that regarded. - -18:30 And Elijah said unto all the people, Come near unto me. And all -the people came near unto him. And he repaired the altar of the LORD -that was broken down. - -18:31 And Elijah took twelve stones, according to the number of the -tribes of the sons of Jacob, unto whom the word of the LORD came, -saying, Israel shall be thy name: 18:32 And with the stones he built -an altar in the name of the LORD: and he made a trench about the -altar, as great as would contain two measures of seed. - -18:33 And he put the wood in order, and cut the bullock in pieces, and -laid him on the wood, and said, Fill four barrels with water, and pour -it on the burnt sacrifice, and on the wood. - -18:34 And he said, Do it the second time. And they did it the second -time. - -And he said, Do it the third time. And they did it the third time. - -18:35 And the water ran round about the altar; and he filled the -trench also with water. - -18:36 And it came to pass at the time of the offering of the evening -sacrifice, that Elijah the prophet came near, and said, LORD God of -Abraham, Isaac, and of Israel, let it be known this day that thou art -God in Israel, and that I am thy servant, and that I have done all -these things at thy word. - -18:37 Hear me, O LORD, hear me, that this people may know that thou -art the LORD God, and that thou hast turned their heart back again. - -18:38 Then the fire of the LORD fell, and consumed the burnt -sacrifice, and the wood, and the stones, and the dust, and licked up -the water that was in the trench. - -18:39 And when all the people saw it, they fell on their faces: and -they said, The LORD, he is the God; the LORD, he is the God. - -18:40 And Elijah said unto them, Take the prophets of Baal; let not -one of them escape. And they took them: and Elijah brought them down -to the brook Kishon, and slew them there. - -18:41 And Elijah said unto Ahab, Get thee up, eat and drink; for there -is a sound of abundance of rain. - -18:42 So Ahab went up to eat and to drink. And Elijah went up to the -top of Carmel; and he cast himself down upon the earth, and put his -face between his knees, 18:43 And said to his servant, Go up now, look -toward the sea. And he went up, and looked, and said, There is -nothing. And he said, Go again seven times. - -18:44 And it came to pass at the seventh time, that he said, Behold, -there ariseth a little cloud out of the sea, like a man's hand. And he -said, Go up, say unto Ahab, Prepare thy chariot, and get thee down -that the rain stop thee not. - -18:45 And it came to pass in the mean while, that the heaven was black -with clouds and wind, and there was a great rain. And Ahab rode, and -went to Jezreel. - -18:46 And the hand of the LORD was on Elijah; and he girded up his -loins, and ran before Ahab to the entrance of Jezreel. - -19:1 And Ahab told Jezebel all that Elijah had done, and withal how he -had slain all the prophets with the sword. - -19:2 Then Jezebel sent a messenger unto Elijah, saying, So let the -gods do to me, and more also, if I make not thy life as the life of -one of them by to morrow about this time. - -19:3 And when he saw that, he arose, and went for his life, and came -to Beersheba, which belongeth to Judah, and left his servant there. - -19:4 But he himself went a day's journey into the wilderness, and came -and sat down under a juniper tree: and he requested for himself that -he might die; and said, It is enough; now, O LORD, take away my life; -for I am not better than my fathers. - -19:5 And as he lay and slept under a juniper tree, behold, then an -angel touched him, and said unto him, Arise and eat. - -19:6 And he looked, and, behold, there was a cake baken on the coals, -and a cruse of water at his head. And he did eat and drink, and laid -him down again. - -19:7 And the angel of the LORD came again the second time, and touched -him, and said, Arise and eat; because the journey is too great for -thee. - -19:8 And he arose, and did eat and drink, and went in the strength of -that meat forty days and forty nights unto Horeb the mount of God. - -19:9 And he came thither unto a cave, and lodged there; and, behold, -the word of the LORD came to him, and he said unto him, What doest -thou here, Elijah? 19:10 And he said, I have been very jealous for -the LORD God of hosts: for the children of Israel have forsaken thy -covenant, thrown down thine altars, and slain thy prophets with the -sword; and I, even I only, am left; and they seek my life, to take it -away. - -19:11 And he said, Go forth, and stand upon the mount before the LORD. - -And, behold, the LORD passed by, and a great and strong wind rent the -mountains, and brake in pieces the rocks before the LORD; but the LORD -was not in the wind: and after the wind an earthquake; but the LORD -was not in the earthquake: 19:12 And after the earthquake a fire; but -the LORD was not in the fire: and after the fire a still small voice. - -19:13 And it was so, when Elijah heard it, that he wrapped his face in -his mantle, and went out, and stood in the entering in of the cave. -And, behold, there came a voice unto him, and said, What doest thou -here, Elijah? 19:14 And he said, I have been very jealous for the -LORD God of hosts: because the children of Israel have forsaken thy -covenant, thrown down thine altars, and slain thy prophets with the -sword; and I, even I only, am left; and they seek my life, to take it -away. - -19:15 And the LORD said unto him, Go, return on thy way to the -wilderness of Damascus: and when thou comest, anoint Hazael to be king -over Syria: 19:16 And Jehu the son of Nimshi shalt thou anoint to be -king over Israel: and Elisha the son of Shaphat of Abelmeholah shalt -thou anoint to be prophet in thy room. - -19:17 And it shall come to pass, that him that escapeth the sword of -Hazael shall Jehu slay: and him that escapeth from the sword of Jehu -shall Elisha slay. - -19:18 Yet I have left me seven thousand in Israel, all the knees which -have not bowed unto Baal, and every mouth which hath not kissed him. - -19:19 So he departed thence, and found Elisha the son of Shaphat, who -was plowing with twelve yoke of oxen before him, and he with the -twelfth: and Elijah passed by him, and cast his mantle upon him. - -19:20 And he left the oxen, and ran after Elijah, and said, Let me, I -pray thee, kiss my father and my mother, and then I will follow thee. -And he said unto him, Go back again: for what have I done to thee? -19:21 And he returned back from him, and took a yoke of oxen, and slew -them, and boiled their flesh with the instruments of the oxen, and -gave unto the people, and they did eat. Then he arose, and went after -Elijah, and ministered unto him. - -20:1 And Benhadad the king of Syria gathered all his host together: -and there were thirty and two kings with him, and horses, and -chariots; and he went up and besieged Samaria, and warred against it. - -20:2 And he sent messengers to Ahab king of Israel into the city, and -said unto him, Thus saith Benhadad, 20:3 Thy silver and thy gold is -mine; thy wives also and thy children, even the goodliest, are mine. - -20:4 And the king of Israel answered and said, My lord, O king, -according to thy saying, I am thine, and all that I have. - -20:5 And the messengers came again, and said, Thus speaketh Benhadad, -saying, Although I have sent unto thee, saying, Thou shalt deliver me -thy silver, and thy gold, and thy wives, and thy children; 20:6 Yet I -will send my servants unto thee to morrow about this time, and they -shall search thine house, and the houses of thy servants; and it shall -be, that whatsoever is pleasant in thine eyes, they shall put it in -their hand, and take it away. - -20:7 Then the king of Israel called all the elders of the land, and -said, Mark, I pray you, and see how this man seeketh mischief: for he -sent unto me for my wives, and for my children, and for my silver, and -for my gold; and I denied him not. - -20:8 And all the elders and all the people said unto him, Hearken not -unto him, nor consent. - -20:9 Wherefore he said unto the messengers of Benhadad, Tell my lord -the king, All that thou didst send for to thy servant at the first I -will do: but this thing I may not do. And the messengers departed, and -brought him word again. - -20:10 And Benhadad sent unto him, and said, The gods do so unto me, -and more also, if the dust of Samaria shall suffice for handfuls for -all the people that follow me. - -20:11 And the king of Israel answered and said, Tell him, Let not him -that girdeth on his harness boast himself as he that putteth it off. - -20:12 And it came to pass, when Ben-hadad heard this message, as he -was drinking, he and the kings in the pavilions, that he said unto his -servants, Set yourselves in array. And they set themselves in array -against the city. - -20:13 And, behold, there came a prophet unto Ahab king of Israel, -saying, Thus saith the LORD, Hast thou seen all this great multitude? -behold, I will deliver it into thine hand this day; and thou shalt -know that I am the LORD. - -20:14 And Ahab said, By whom? And he said, Thus saith the LORD, Even -by the young men of the princes of the provinces. Then he said, Who -shall order the battle? And he answered, Thou. - -20:15 Then he numbered the young men of the princes of the provinces, -and they were two hundred and thirty two: and after them he numbered -all the people, even all the children of Israel, being seven thousand. - -20:16 And they went out at noon. But Benhadad was drinking himself -drunk in the pavilions, he and the kings, the thirty and two kings -that helped him. - -20:17 And the young men of the princes of the provinces went out -first; and Benhadad sent out, and they told him, saying, There are men -come out of Samaria. - -20:18 And he said, Whether they be come out for peace, take them -alive; or whether they be come out for war, take them alive. - -20:19 So these young men of the princes of the provinces came out of -the city, and the army which followed them. - -20:20 And they slew every one his man: and the Syrians fled; and -Israel pursued them: and Benhadad the king of Syria escaped on an -horse with the horsemen. - -20:21 And the king of Israel went out, and smote the horses and -chariots, and slew the Syrians with a great slaughter. - -20:22 And the prophet came to the king of Israel, and said unto him, -Go, strengthen thyself, and mark, and see what thou doest: for at the -return of the year the king of Syria will come up against thee. - -20:23 And the servants of the king of Syria said unto him, Their gods -are gods of the hills; therefore they were stronger than we; but let -us fight against them in the plain, and surely we shall be stronger -than they. - -20:24 And do this thing, Take the kings away, every man out of his -place, and put captains in their rooms: 20:25 And number thee an army, -like the army that thou hast lost, horse for horse, and chariot for -chariot: and we will fight against them in the plain, and surely we -shall be stronger than they. And he hearkened unto their voice, and -did so. - -20:26 And it came to pass at the return of the year, that Benhadad -numbered the Syrians, and went up to Aphek, to fight against Israel. - -20:27 And the children of Israel were numbered, and were all present, -and went against them: and the children of Israel pitched before them -like two little flocks of kids; but the Syrians filled the country. - -20:28 And there came a man of God, and spake unto the king of Israel, -and said, Thus saith the LORD, Because the Syrians have said, The LORD -is God of the hills, but he is not God of the valleys, therefore will -I deliver all this great multitude into thine hand, and ye shall know -that I am the LORD. - -20:29 And they pitched one over against the other seven days. And so -it was, that in the seventh day the battle was joined: and the -children of Israel slew of the Syrians an hundred thousand footmen in -one day. - -20:30 But the rest fled to Aphek, into the city; and there a wall fell -upon twenty and seven thousand of the men that were left. And Benhadad -fled, and came into the city, into an inner chamber. - -20:31 And his servants said unto him, Behold now, we have heard that -the kings of the house of Israel are merciful kings: let us, I pray -thee, put sackcloth on our loins, and ropes upon our heads, and go out -to the king of Israel: peradventure he will save thy life. - -20:32 So they girded sackcloth on their loins, and put ropes on their -heads, and came to the king of Israel, and said, Thy servant Benhadad -saith, I pray thee, let me live. And he said, Is he yet alive? he is -my brother. - -20:33 Now the men did diligently observe whether any thing would come -from him, and did hastily catch it: and they said, Thy brother -Benhadad. Then he said, Go ye, bring him. Then Benhadad came forth to -him; and he caused him to come up into the chariot. - -20:34 And Ben-hadad said unto him, The cities, which my father took -from thy father, I will restore; and thou shalt make streets for thee -in Damascus, as my father made in Samaria. Then said Ahab, I will send -thee away with this covenant. So he made a covenant with him, and sent -him away. - -20:35 And a certain man of the sons of the prophets said unto his -neighbour in the word of the LORD, Smite me, I pray thee. And the man -refused to smite him. - -20:36 Then said he unto him, Because thou hast not obeyed the voice of -the LORD, behold, as soon as thou art departed from me, a lion shall -slay thee. - -And as soon as he was departed from him, a lion found him, and slew -him. - -20:37 Then he found another man, and said, Smite me, I pray thee. And -the man smote him, so that in smiting he wounded him. - -20:38 So the prophet departed, and waited for the king by the way, and -disguised himself with ashes upon his face. - -20:39 And as the king passed by, he cried unto the king: and he said, -Thy servant went out into the midst of the battle; and, behold, a man -turned aside, and brought a man unto me, and said, Keep this man: if -by any means he be missing, then shall thy life be for his life, or -else thou shalt pay a talent of silver. - -20:40 And as thy servant was busy here and there, he was gone. And the -king of Israel said unto him, So shall thy judgment be; thyself hast -decided it. - -20:41 And he hasted, and took the ashes away from his face; and the -king of Israel discerned him that he was of the prophets. - -20:42 And he said unto him, Thus saith the LORD, Because thou hast let -go out of thy hand a man whom I appointed to utter destruction, -therefore thy life shall go for his life, and thy people for his -people. - -20:43 And the king of Israel went to his house heavy and displeased, -and came to Samaria. - -21:1 And it came to pass after these things, that Naboth the -Jezreelite had a vineyard, which was in Jezreel, hard by the palace of -Ahab king of Samaria. - -21:2 And Ahab spake unto Naboth, saying, Give me thy vineyard, that I -may have it for a garden of herbs, because it is near unto my house: -and I will give thee for it a better vineyard than it; or, if it seem -good to thee, I will give thee the worth of it in money. - -21:3 And Naboth said to Ahab, The LORD forbid it me, that I should -give the inheritance of my fathers unto thee. - -21:4 And Ahab came into his house heavy and displeased because of the -word which Naboth the Jezreelite had spoken to him: for he had said, I -will not give thee the inheritance of my fathers. And he laid him down -upon his bed, and turned away his face, and would eat no bread. - -21:5 But Jezebel his wife came to him, and said unto him, Why is thy -spirit so sad, that thou eatest no bread? 21:6 And he said unto her, -Because I spake unto Naboth the Jezreelite, and said unto him, Give me -thy vineyard for money; or else, if it please thee, I will give thee -another vineyard for it: and he answered, I will not give thee my -vineyard. - -21:7 And Jezebel his wife said unto him, Dost thou now govern the -kingdom of Israel? arise, and eat bread, and let thine heart be merry: -I will give thee the vineyard of Naboth the Jezreelite. - -21:8 So she wrote letters in Ahab's name, and sealed them with his -seal, and sent the letters unto the elders and to the nobles that were -in his city, dwelling with Naboth. - -21:9 And she wrote in the letters, saying, Proclaim a fast, and set -Naboth on high among the people: 21:10 And set two men, sons of -Belial, before him, to bear witness against him, saying, Thou didst -blaspheme God and the king. And then carry him out, and stone him, -that he may die. - -21:11 And the men of his city, even the elders and the nobles who were -the inhabitants in his city, did as Jezebel had sent unto them, and as -it was written in the letters which she had sent unto them. - -21:12 They proclaimed a fast, and set Naboth on high among the people. - -21:13 And there came in two men, children of Belial, and sat before -him: and the men of Belial witnessed against him, even against Naboth, -in the presence of the people, saying, Naboth did blaspheme God and -the king. Then they carried him forth out of the city, and stoned him -with stones, that he died. - -21:14 Then they sent to Jezebel, saying, Naboth is stoned, and is -dead. - -21:15 And it came to pass, when Jezebel heard that Naboth was stoned, -and was dead, that Jezebel said to Ahab, Arise, take possession of the -vineyard of Naboth the Jezreelite, which he refused to give thee for -money: for Naboth is not alive, but dead. - -21:16 And it came to pass, when Ahab heard that Naboth was dead, that -Ahab rose up to go down to the vineyard of Naboth the Jezreelite, to -take possession of it. - -21:17 And the word of the LORD came to Elijah the Tishbite, saying, -21:18 Arise, go down to meet Ahab king of Israel, which is in Samaria: -behold, he is in the vineyard of Naboth, whither he is gone down to -possess it. - -21:19 And thou shalt speak unto him, saying, Thus saith the LORD, Hast -thou killed, and also taken possession? And thou shalt speak unto him, -saying, Thus saith the LORD, In the place where dogs licked the blood -of Naboth shall dogs lick thy blood, even thine. - -21:20 And Ahab said to Elijah, Hast thou found me, O mine enemy? And -he answered, I have found thee: because thou hast sold thyself to work -evil in the sight of the LORD. - -21:21 Behold, I will bring evil upon thee, and will take away thy -posterity, and will cut off from Ahab him that pisseth against the -wall, and him that is shut up and left in Israel, 21:22 And will make -thine house like the house of Jeroboam the son of Nebat, and like the -house of Baasha the son of Ahijah, for the provocation wherewith thou -hast provoked me to anger, and made Israel to sin. - -21:23 And of Jezebel also spake the LORD, saying, The dogs shall eat -Jezebel by the wall of Jezreel. - -21:24 Him that dieth of Ahab in the city the dogs shall eat; and him -that dieth in the field shall the fowls of the air eat. - -21:25 But there was none like unto Ahab, which did sell himself to -work wickedness in the sight of the LORD, whom Jezebel his wife -stirred up. - -21:26 And he did very abominably in following idols, according to all -things as did the Amorites, whom the LORD cast out before the children -of Israel. - -21:27 And it came to pass, when Ahab heard those words, that he rent -his clothes, and put sackcloth upon his flesh, and fasted, and lay in -sackcloth, and went softly. - -21:28 And the word of the LORD came to Elijah the Tishbite, saying, -21:29 Seest thou how Ahab humbleth himself before me? because he -humbleth himself before me, I will not bring the evil in his days: but -in his son's days will I bring the evil upon his house. - -22:1 And they continued three years without war between Syria and -Israel. - -22:2 And it came to pass in the third year, that Jehoshaphat the king -of Judah came down to the king of Israel. - -22:3 And the king of Israel said unto his servants, Know ye that -Ramoth in Gilead is ours, and we be still, and take it not out of the -hand of the king of Syria? 22:4 And he said unto Jehoshaphat, Wilt -thou go with me to battle to Ramothgilead? And Jehoshaphat said to the -king of Israel, I am as thou art, my people as thy people, my horses -as thy horses. - -22:5 And Jehoshaphat said unto the king of Israel, Enquire, I pray -thee, at the word of the LORD to day. - -22:6 Then the king of Israel gathered the prophets together, about -four hundred men, and said unto them, Shall I go against Ramothgilead -to battle, or shall I forbear? And they said, Go up; for the LORD -shall deliver it into the hand of the king. - -22:7 And Jehoshaphat said, Is there not here a prophet of the LORD -besides, that we might enquire of him? 22:8 And the king of Israel -said unto Jehoshaphat, There is yet one man, Micaiah the son of Imlah, -by whom we may enquire of the LORD: but I hate him; for he doth not -prophesy good concerning me, but evil. And Jehoshaphat said, Let not -the king say so. - -22:9 Then the king of Israel called an officer, and said, Hasten -hither Micaiah the son of Imlah. - -22:10 And the king of Israel and Jehoshaphat the king of Judah sat -each on his throne, having put on their robes, in a void place in the -entrance of the gate of Samaria; and all the prophets prophesied -before them. - -22:11 And Zedekiah the son of Chenaanah made him horns of iron: and he -said, Thus saith the LORD, With these shalt thou push the Syrians, -until thou have consumed them. - -22:12 And all the prophets prophesied so, saying, Go up to -Ramothgilead, and prosper: for the LORD shall deliver it into the -king's hand. - -22:13 And the messenger that was gone to call Micaiah spake unto him, -saying, Behold now, the words of the prophets declare good unto the -king with one mouth: let thy word, I pray thee, be like the word of -one of them, and speak that which is good. - -22:14 And Micaiah said, As the LORD liveth, what the LORD saith unto -me, that will I speak. - -22:15 So he came to the king. And the king said unto him, Micaiah, -shall we go against Ramothgilead to battle, or shall we forbear? And -he answered him, Go, and prosper: for the LORD shall deliver it into -the hand of the king. - -22:16 And the king said unto him, How many times shall I adjure thee -that thou tell me nothing but that which is true in the name of the -LORD? 22:17 And he said, I saw all Israel scattered upon the hills, -as sheep that have not a shepherd: and the LORD said, These have no -master: let them return every man to his house in peace. - -22:18 And the king of Israel said unto Jehoshaphat, Did I not tell -thee that he would prophesy no good concerning me, but evil? 22:19 -And he said, Hear thou therefore the word of the LORD: I saw the LORD -sitting on his throne, and all the host of heaven standing by him on -his right hand and on his left. - -22:20 And the LORD said, Who shall persuade Ahab, that he may go up -and fall at Ramothgilead? And one said on this manner, and another -said on that manner. - -22:21 And there came forth a spirit, and stood before the LORD, and -said, I will persuade him. - -22:22 And the LORD said unto him, Wherewith? And he said, I will go -forth, and I will be a lying spirit in the mouth of all his prophets. -And he said, Thou shalt persude him, and prevail also: go forth, and -do so. - -22:23 Now therefore, behold, the LORD hath put a lying spirit in the -mouth of all these thy prophets, and the LORD hath spoken evil -concerning thee. - -22:24 But Zedekiah the son of Chenaanah went near, and smote Micaiah -on the cheek, and said, Which way went the Spirit of the LORD from me -to speak unto thee? 22:25 And Micaiah said, Behold, thou shalt see in -that day, when thou shalt go into an inner chamber to hide thyself. - -22:26 And the king of Israel said, Take Micaiah, and carry him back -unto Amon the governor of the city, and to Joash the king's son; 22:27 -And say, Thus saith the king, Put this fellow in the prison, and feed -him with bread of affliction and with water of affliction, until I -come in peace. - -22:28 And Micaiah said, If thou return at all in peace, the LORD hath -not spoken by me. And he said, Hearken, O people, every one of you. - -22:29 So the king of Israel and Jehoshaphat the king of Judah went up -to Ramothgilead. - -22:30 And the king of Israel said unto Jehoshaphat, I will disguise -myself, and enter into the battle; but put thou on thy robes. And the -king of Israel disguised himself, and went into the battle. - -22:31 But the king of Syria commanded his thirty and two captains that -had rule over his chariots, saying, Fight neither with small nor -great, save only with the king of Israel. - -22:32 And it came to pass, when the captains of the chariots saw -Jehoshaphat, that they said, Surely it is the king of Israel. And they -turned aside to fight against him: and Jehoshaphat cried out. - -22:33 And it came to pass, when the captains of the chariots perceived -that it was not the king of Israel, that they turned back from -pursuing him. - -22:34 And a certain man drew a bow at a venture, and smote the king of -Israel between the joints of the harness: wherefore he said unto the -driver of his chariot, Turn thine hand, and carry me out of the host; -for I am wounded. - -22:35 And the battle increased that day: and the king was stayed up in -his chariot against the Syrians, and died at even: and the blood ran -out of the wound into the midst of the chariot. - -22:36 And there went a proclamation throughout the host about the -going down of the sun, saying, Every man to his city, and every man to -his own country. - -22:37 So the king died, and was brought to Samaria; and they buried -the king in Samaria. - -22:38 And one washed the chariot in the pool of Samaria; and the dogs -licked up his blood; and they washed his armour; according unto the -word of the LORD which he spake. - -22:39 Now the rest of the acts of Ahab, and all that he did, and the -ivory house which he made, and all the cities that he built, are they -not written in the book of the chronicles of the kings of Israel? -22:40 So Ahab slept with his fathers; and Ahaziah his son reigned in -his stead. - -22:41 And Jehoshaphat the son of Asa began to reign over Judah in the -fourth year of Ahab king of Israel. - -22:42 Jehoshaphat was thirty and five years old when he began to -reign; and he reigned twenty and five years in Jerusalem. And his -mother's name was Azubah the daughter of Shilhi. - -22:43 And he walked in all the ways of Asa his father; he turned not -aside from it, doing that which was right in the eyes of the LORD: -nevertheless the high places were not taken away; for the people -offered and burnt incense yet in the high places. - -22:44 And Jehoshaphat made peace with the king of Israel. - -22:45 Now the rest of the acts of Jehoshaphat, and his might that he -shewed, and how he warred, are they not written in the book of the -chronicles of the kings of Judah? 22:46 And the remnant of the -sodomites, which remained in the days of his father Asa, he took out -of the land. - -22:47 There was then no king in Edom: a deputy was king. - -22:48 Jehoshaphat made ships of Tharshish to go to Ophir for gold: but -they went not; for the ships were broken at Eziongeber. - -22:49 Then said Ahaziah the son of Ahab unto Jehoshaphat, Let my -servants go with thy servants in the ships. But Jehoshaphat would not. - -22:50 And Jehoshaphat slept with his fathers, and was buried with his -fathers in the city of David his father: and Jehoram his son reigned -in his stead. - -22:51 Ahaziah the son of Ahab began to reign over Israel in Samaria -the seventeenth year of Jehoshaphat king of Judah, and reigned two -years over Israel. - -22:52 And he did evil in the sight of the LORD, and walked in the way -of his father, and in the way of his mother, and in the way of -Jeroboam the son of Nebat, who made Israel to sin: 22:53 For he served -Baal, and worshipped him, and provoked to anger the LORD God of -Israel, according to all that his father had done. - - - - -The First Book of the Kings - -Commonly Called: - -The Fourth Book of the Kings - - -1:1 Then Moab rebelled against Israel after the death of Ahab. - -1:2 And Ahaziah fell down through a lattice in his upper chamber that -was in Samaria, and was sick: and he sent messengers, and said unto -them, Go, enquire of Baalzebub the god of Ekron whether I shall -recover of this disease. - -1:3 But the angel of the LORD said to Elijah the Tishbite, Arise, go -up to meet the messengers of the king of Samaria, and say unto them, -Is it not because there is not a God in Israel, that ye go to enquire -of Baalzebub the god of Ekron? 1:4 Now therefore thus saith the LORD, -Thou shalt not come down from that bed on which thou art gone up, but -shalt surely die. And Elijah departed. - -1:5 And when the messengers turned back unto him, he said unto them, -Why are ye now turned back? 1:6 And they said unto him, There came a -man up to meet us, and said unto us, Go, turn again unto the king that -sent you, and say unto him, Thus saith the LORD, Is it not because -there is not a God in Israel, that thou sendest to enquire of -Baalzebub the god of Ekron? therefore thou shalt not come down from -that bed on which thou art gone up, but shalt surely die. - -1:7 And he said unto them, What manner of man was he which came up to -meet you, and told you these words? 1:8 And they answered him, He was -an hairy man, and girt with a girdle of leather about his loins. And -he said, It is Elijah the Tishbite. - -1:9 Then the king sent unto him a captain of fifty with his fifty. And -he went up to him: and, behold, he sat on the top of an hill. And he -spake unto him, Thou man of God, the king hath said, Come down. - -1:10 And Elijah answered and said to the captain of fifty, If I be a -man of God, then let fire come down from heaven, and consume thee and -thy fifty. - -And there came down fire from heaven, and consumed him and his fifty. - -1:11 Again also he sent unto him another captain of fifty with his -fifty. - -And he answered and said unto him, O man of God, thus hath the king -said, Come down quickly. - -1:12 And Elijah answered and said unto them, If I be a man of God, let -fire come down from heaven, and consume thee and thy fifty. And the -fire of God came down from heaven, and consumed him and his fifty. - -1:13 And he sent again a captain of the third fifty with his fifty. -And the third captain of fifty went up, and came and fell on his knees -before Elijah, and besought him, and said unto him, O man of God, I -pray thee, let my life, and the life of these fifty thy servants, be -precious in thy sight. - -1:14 Behold, there came fire down from heaven, and burnt up the two -captains of the former fifties with their fifties: therefore let my -life now be precious in thy sight. - -1:15 And the angel of the LORD said unto Elijah, Go down with him: be -not afraid of him. And he arose, and went down with him unto the king. - -1:16 And he said unto him, Thus saith the LORD, Forasmuch as thou hast -sent messengers to enquire of Baalzebub the god of Ekron, is it not -because there is no God in Israel to enquire of his word? therefore -thou shalt not come down off that bed on which thou art gone up, but -shalt surely die. - -1:17 So he died according to the word of the LORD which Elijah had -spoken. - -And Jehoram reigned in his stead in the second year of Jehoram the son -of Jehoshaphat king of Judah; because he had no son. - -1:18 Now the rest of the acts of Ahaziah which he did, are they not -written in the book of the chronicles of the kings of Israel? 2:1 And -it came to pass, when the LORD would take up Elijah into heaven by a -whirlwind, that Elijah went with Elisha from Gilgal. - -2:2 And Elijah said unto Elisha, Tarry here, I pray thee; for the LORD -hath sent me to Bethel. And Elisha said unto him, As the LORD liveth, -and as thy soul liveth, I will not leave thee. So they went down to -Bethel. - -2:3 And the sons of the prophets that were at Bethel came forth to -Elisha, and said unto him, Knowest thou that the LORD will take away -thy master from thy head to day? And he said, Yea, I know it; hold ye -your peace. - -2:4 And Elijah said unto him, Elisha, tarry here, I pray thee; for the -LORD hath sent me to Jericho. And he said, As the LORD liveth, and as -thy soul liveth, I will not leave thee. So they came to Jericho. - -2:5 And the sons of the prophets that were at Jericho came to Elisha, -and said unto him, Knowest thou that the LORD will take away thy -master from thy head to day? And he answered, Yea, I know it; hold ye -your peace. - -2:6 And Elijah said unto him, Tarry, I pray thee, here; for the LORD -hath sent me to Jordan. And he said, As the LORD liveth, and as thy -soul liveth, I will not leave thee. And they two went on. - -2:7 And fifty men of the sons of the prophets went, and stood to view -afar off: and they two stood by Jordan. - -2:8 And Elijah took his mantle, and wrapped it together, and smote the -waters, and they were divided hither and thither, so that they two -went over on dry ground. - -2:9 And it came to pass, when they were gone over, that Elijah said -unto Elisha, Ask what I shall do for thee, before I be taken away from -thee. And Elisha said, I pray thee, let a double portion of thy spirit -be upon me. - -2:10 And he said, Thou hast asked a hard thing: nevertheless, if thou -see me when I am taken from thee, it shall be so unto thee; but if -not, it shall not be so. - -2:11 And it came to pass, as they still went on, and talked, that, -behold, there appeared a chariot of fire, and horses of fire, and -parted them both asunder; and Elijah went up by a whirlwind into -heaven. - -2:12 And Elisha saw it, and he cried, My father, my father, the -chariot of Israel, and the horsemen thereof. And he saw him no more: -and he took hold of his own clothes, and rent them in two pieces. - -2:13 He took up also the mantle of Elijah that fell from him, and went -back, and stood by the bank of Jordan; 2:14 And he took the mantle of -Elijah that fell from him, and smote the waters, and said, Where is -the LORD God of Elijah? and when he also had smitten the waters, they -parted hither and thither: and Elisha went over. - -2:15 And when the sons of the prophets which were to view at Jericho -saw him, they said, The spirit of Elijah doth rest on Elisha. And they -came to meet him, and bowed themselves to the ground before him. - -2:16 And they said unto him, Behold now, there be with thy servants -fifty strong men; let them go, we pray thee, and seek thy master: lest -peradventure the Spirit of the LORD hath taken him up, and cast him -upon some mountain, or into some valley. And he said, Ye shall not -send. - -2:17 And when they urged him till he was ashamed, he said, Send. They -sent therefore fifty men; and they sought three days, but found him -not. - -2:18 And when they came again to him, (for he tarried at Jericho,) he -said unto them, Did I not say unto you, Go not? 2:19 And the men of -the city said unto Elisha, Behold, I pray thee, the situation of this -city is pleasant, as my lord seeth: but the water is naught, and the -ground barren. - -2:20 And he said, Bring me a new cruse, and put salt therein. And they -brought it to him. - -2:21 And he went forth unto the spring of the waters, and cast the -salt in there, and said, Thus saith the LORD, I have healed these -waters; there shall not be from thence any more death or barren land. - -2:22 So the waters were healed unto this day, according to the saying -of Elisha which he spake. - -2:23 And he went up from thence unto Bethel: and as he was going up by -the way, there came forth little children out of the city, and mocked -him, and said unto him, Go up, thou bald head; go up, thou bald head. - -2:24 And he turned back, and looked on them, and cursed them in the -name of the LORD. And there came forth two she bears out of the wood, -and tare forty and two children of them. - -2:25 And he went from thence to mount Carmel, and from thence he -returned to Samaria. - -3:1 Now Jehoram the son of Ahab began to reign over Israel in Samaria -the eighteenth year of Jehoshaphat king of Judah, and reigned twelve -years. - -3:2 And he wrought evil in the sight of the LORD; but not like his -father, and like his mother: for he put away the image of Baal that -his father had made. - -3:3 Nevertheless he cleaved unto the sins of Jeroboam the son of -Nebat, which made Israel to sin; he departed not therefrom. - -3:4 And Mesha king of Moab was a sheepmaster, and rendered unto the -king of Israel an hundred thousand lambs, and an hundred thousand -rams, with the wool. - -3:5 But it came to pass, when Ahab was dead, that the king of Moab -rebelled against the king of Israel. - -3:6 And king Jehoram went out of Samaria the same time, and numbered -all Israel. - -3:7 And he went and sent to Jehoshaphat the king of Judah, saying, The -king of Moab hath rebelled against me: wilt thou go with me against -Moab to battle? And he said, I will go up: I am as thou art, my people -as thy people, and my horses as thy horses. - -3:8 And he said, Which way shall we go up? And he answered, The way -through the wilderness of Edom. - -3:9 So the king of Israel went, and the king of Judah, and the king of -Edom: and they fetched a compass of seven days' journey: and there was -no water for the host, and for the cattle that followed them. - -3:10 And the king of Israel said, Alas! that the LORD hath called -these three kings together, to deliver them into the hand of Moab! -3:11 But Jehoshaphat said, Is there not here a prophet of the LORD, -that we may enquire of the LORD by him? And one of the king of -Israel's servants answered and said, Here is Elisha the son of -Shaphat, which poured water on the hands of Elijah. - -3:12 And Jehoshaphat said, The word of the LORD is with him. So the -king of Israel and Jehoshaphat and the king of Edom went down to him. - -3:13 And Elisha said unto the king of Israel, What have I to do with -thee? get thee to the prophets of thy father, and to the prophets of -thy mother. - -And the king of Israel said unto him, Nay: for the LORD hath called -these three kings together, to deliver them into the hand of Moab. - -3:14 And Elisha said, As the LORD of hosts liveth, before whom I -stand, surely, were it not that I regard the presence of Jehoshaphat -the king of Judah, I would not look toward thee, nor see thee. - -3:15 But now bring me a minstrel. And it came to pass, when the -minstrel played, that the hand of the LORD came upon him. - -3:16 And he said, Thus saith the LORD, Make this valley full of -ditches. - -3:17 For thus saith the LORD, Ye shall not see wind, neither shall ye -see rain; yet that valley shall be filled with water, that ye may -drink, both ye, and your cattle, and your beasts. - -3:18 And this is but a light thing in the sight of the LORD: he will -deliver the Moabites also into your hand. - -3:19 And ye shall smite every fenced city, and every choice city, and -shall fell every good tree, and stop all wells of water, and mar every -good piece of land with stones. - -3:20 And it came to pass in the morning, when the meat offering was -offered, that, behold, there came water by the way of Edom, and the -country was filled with water. - -3:21 And when all the Moabites heard that the kings were come up to -fight against them, they gathered all that were able to put on armour, -and upward, and stood in the border. - -3:22 And they rose up early in the morning, and the sun shone upon the -water, and the Moabites saw the water on the other side as red as -blood: 3:23 And they said, This is blood: the kings are surely slain, -and they have smitten one another: now therefore, Moab, to the spoil. - -3:24 And when they came to the camp of Israel, the Israelites rose up -and smote the Moabites, so that they fled before them: but they went -forward smiting the Moabites, even in their country. - -3:25 And they beat down the cities, and on every good piece of land -cast every man his stone, and filled it; and they stopped all the -wells of water, and felled all the good trees: only in Kirharaseth -left they the stones thereof; howbeit the slingers went about it, and -smote it. - -3:26 And when the king of Moab saw that the battle was too sore for -him, he took with him seven hundred men that drew swords, to break -through even unto the king of Edom: but they could not. - -3:27 Then he took his eldest son that should have reigned in his -stead, and offered him for a burnt offering upon the wall. And there -was great indignation against Israel: and they departed from him, and -returned to their own land. - -4:1 Now there cried a certain woman of the wives of the sons of the -prophets unto Elisha, saying, Thy servant my husband is dead; and thou -knowest that thy servant did fear the LORD: and the creditor is come -to take unto him my two sons to be bondmen. - -4:2 And Elisha said unto her, What shall I do for thee? tell me, what -hast thou in the house? And she said, Thine handmaid hath not any -thing in the house, save a pot of oil. - -4:3 Then he said, Go, borrow thee vessels abroad of all thy -neighbours, even empty vessels; borrow not a few. - -4:4 And when thou art come in, thou shalt shut the door upon thee and -upon thy sons, and shalt pour out into all those vessels, and thou -shalt set aside that which is full. - -4:5 So she went from him, and shut the door upon her and upon her -sons, who brought the vessels to her; and she poured out. - -4:6 And it came to pass, when the vessels were full, that she said -unto her son, Bring me yet a vessel. And he said unto her, There is -not a vessel more. And the oil stayed. - -4:7 Then she came and told the man of God. And he said, Go, sell the -oil, and pay thy debt, and live thou and thy children of the rest. - -4:8 And it fell on a day, that Elisha passed to Shunem, where was a -great woman; and she constrained him to eat bread. And so it was, that -as oft as he passed by, he turned in thither to eat bread. - -4:9 And she said unto her husband, Behold now, I perceive that this is -an holy man of God, which passeth by us continually. - -4:10 Let us make a little chamber, I pray thee, on the wall; and let -us set for him there a bed, and a table, and a stool, and a -candlestick: and it shall be, when he cometh to us, that he shall turn -in thither. - -4:11 And it fell on a day, that he came thither, and he turned into -the chamber, and lay there. - -4:12 And he said to Gehazi his servant, Call this Shunammite. And when -he had called her, she stood before him. - -4:13 And he said unto him, Say now unto her, Behold, thou hast been -careful for us with all this care; what is to be done for thee? -wouldest thou be spoken for to the king, or to the captain of the -host? And she answered, I dwell among mine own people. - -4:14 And he said, What then is to be done for her? And Gehazi -answered, Verily she hath no child, and her husband is old. - -4:15 And he said, Call her. And when he had called her, she stood in -the door. - -4:16 And he said, About this season, according to the time of life, -thou shalt embrace a son. And she said, Nay, my lord, thou man of God, -do not lie unto thine handmaid. - -4:17 And the woman conceived, and bare a son at that season that -Elisha had said unto her, according to the time of life. - -4:18 And when the child was grown, it fell on a day, that he went out -to his father to the reapers. - -4:19 And he said unto his father, My head, my head. And he said to a -lad, Carry him to his mother. - -4:20 And when he had taken him, and brought him to his mother, he sat -on her knees till noon, and then died. - -4:21 And she went up, and laid him on the bed of the man of God, and -shut the door upon him, and went out. - -4:22 And she called unto her husband, and said, Send me, I pray thee, -one of the young men, and one of the asses, that I may run to the man -of God, and come again. - -4:23 And he said, Wherefore wilt thou go to him to day? it is neither -new moon, nor sabbath. And she said, It shall be well. - -4:24 Then she saddled an ass, and said to her servant, Drive, and go -forward; slack not thy riding for me, except I bid thee. - -4:25 So she went and came unto the man of God to mount Carmel. And it -came to pass, when the man of God saw her afar off, that he said to -Gehazi his servant, Behold, yonder is that Shunammite: 4:26 Run now, I -pray thee, to meet her, and say unto her, Is it well with thee? is it -well with thy husband? is it well with the child? And she answered, It -is well: 4:27 And when she came to the man of God to the hill, she -caught him by the feet: but Gehazi came near to thrust her away. And -the man of God said, Let her alone; for her soul is vexed within her: -and the LORD hath hid it from me, and hath not told me. - -4:28 Then she said, Did I desire a son of my lord? did I not say, Do -not deceive me? 4:29 Then he said to Gehazi, Gird up thy loins, and -take my staff in thine hand, and go thy way: if thou meet any man, -salute him not; and if any salute thee, answer him not again: and lay -my staff upon the face of the child. - -4:30 And the mother of the child said, As the LORD liveth, and as thy -soul liveth, I will not leave thee. And he arose, and followed her. - -4:31 And Gehazi passed on before them, and laid the staff upon the -face of the child; but there was neither voice, nor hearing. Wherefore -he went again to meet him, and told him, saying, The child is not -awaked. - -4:32 And when Elisha was come into the house, behold, the child was -dead, and laid upon his bed. - -4:33 He went in therefore, and shut the door upon them twain, and -prayed unto the LORD. - -4:34 And he went up, and lay upon the child, and put his mouth upon -his mouth, and his eyes upon his eyes, and his hands upon his hands: -and stretched himself upon the child; and the flesh of the child waxed -warm. - -4:35 Then he returned, and walked in the house to and fro; and went -up, and stretched himself upon him: and the child sneezed seven times, -and the child opened his eyes. - -4:36 And he called Gehazi, and said, Call this Shunammite. So he -called her. And when she was come in unto him, he said, Take up thy -son. - -4:37 Then she went in, and fell at his feet, and bowed herself to the -ground, and took up her son, and went out. - -4:38 And Elisha came again to Gilgal: and there was a dearth in the -land; and the sons of the prophets were sitting before him: and he -said unto his servant, Set on the great pot, and seethe pottage for -the sons of the prophets. - -4:39 And one went out into the field to gather herbs, and found a wild -vine, and gathered thereof wild gourds his lap full, and came and -shred them into the pot of pottage: for they knew them not. - -4:40 So they poured out for the men to eat. And it came to pass, as -they were eating of the pottage, that they cried out, and said, O thou -man of God, there is death in the pot. And they could not eat thereof. - -4:41 But he said, Then bring meal. And he cast it into the pot; and he -said, Pour out for the people, that they may eat. And there was no -harm in the pot. - -4:42 And there came a man from Baalshalisha, and brought the man of -God bread of the firstfruits, twenty loaves of barley, and full ears -of corn in the husk thereof. And he said, Give unto the people, that -they may eat. - -4:43 And his servitor said, What, should I set this before an hundred -men? He said again, Give the people, that they may eat: for thus -saith the LORD, They shall eat, and shall leave thereof. - -4:44 So he set it before them, and they did eat, and left thereof, -according to the word of the LORD. - -5:1 Now Naaman, captain of the host of the king of Syria, was a great -man with his master, and honourable, because by him the LORD had given -deliverance unto Syria: he was also a mighty man in valour, but he was -a leper. - -5:2 And the Syrians had gone out by companies, and had brought away -captive out of the land of Israel a little maid; and she waited on -Naaman's wife. - -5:3 And she said unto her mistress, Would God my lord were with the -prophet that is in Samaria! for he would recover him of his leprosy. - -5:4 And one went in, and told his lord, saying, Thus and thus said the -maid that is of the land of Israel. - -5:5 And the king of Syria said, Go to, go, and I will send a letter -unto the king of Israel. And he departed, and took with him ten -talents of silver, and six thousand pieces of gold, and ten changes of -raiment. - -5:6 And he brought the letter to the king of Israel, saying, Now when -this letter is come unto thee, behold, I have therewith sent Naaman my -servant to thee, that thou mayest recover him of his leprosy. - -5:7 And it came to pass, when the king of Israel had read the letter, -that he rent his clothes, and said, Am I God, to kill and to make -alive, that this man doth send unto me to recover a man of his -leprosy? wherefore consider, I pray you, and see how he seeketh a -quarrel against me. - -5:8 And it was so, when Elisha the man of God had heard that the king -of Israel had rent his clothes, that he sent to the king, saying, -Wherefore hast thou rent thy clothes? let him come now to me, and he -shall know that there is a prophet in Israel. - -5:9 So Naaman came with his horses and with his chariot, and stood at -the door of the house of Elisha. - -5:10 And Elisha sent a messenger unto him, saying, Go and wash in -Jordan seven times, and thy flesh shall come again to thee, and thou -shalt be clean. - -5:11 But Naaman was wroth, and went away, and said, Behold, I thought, -He will surely come out to me, and stand, and call on the name of the -LORD his God, and strike his hand over the place, and recover the -leper. - -5:12 Are not Abana and Pharpar, rivers of Damascus, better than all -the waters of Israel? may I not wash in them, and be clean? So he -turned and went away in a rage. - -5:13 And his servants came near, and spake unto him, and said, My -father, if the prophet had bid thee do some great thing, wouldest thou -not have done it? how much rather then, when he saith to thee, Wash, -and be clean? 5:14 Then went he down, and dipped himself seven times -in Jordan, according to the saying of the man of God: and his flesh -came again like unto the flesh of a little child, and he was clean. - -5:15 And he returned to the man of God, he and all his company, and -came, and stood before him: and he said, Behold, now I know that there -is no God in all the earth, but in Israel: now therefore, I pray thee, -take a blessing of thy servant. - -5:16 But he said, As the LORD liveth, before whom I stand, I will -receive none. And he urged him to take it; but he refused. - -5:17 And Naaman said, Shall there not then, I pray thee, be given to -thy servant two mules' burden of earth? for thy servant will -henceforth offer neither burnt offering nor sacrifice unto other gods, -but unto the LORD. - -5:18 In this thing the LORD pardon thy servant, that when my master -goeth into the house of Rimmon to worship there, and he leaneth on my -hand, and I bow myself in the house of Rimmon: when I bow down myself -in the house of Rimmon, the LORD pardon thy servant in this thing. - -5:19 And he said unto him, Go in peace. So he departed from him a -little way. - -5:20 But Gehazi, the servant of Elisha the man of God, said, Behold, -my master hath spared Naaman this Syrian, in not receiving at his -hands that which he brought: but, as the LORD liveth, I will run after -him, and take somewhat of him. - -5:21 So Gehazi followed after Naaman. And when Naaman saw him running -after him, he lighted down from the chariot to meet him, and said, Is -all well? 5:22 And he said, All is well. My master hath sent me, -saying, Behold, even now there be come to me from mount Ephraim two -young men of the sons of the prophets: give them, I pray thee, a -talent of silver, and two changes of garments. - -5:23 And Naaman said, Be content, take two talents. And he urged him, -and bound two talents of silver in two bags, with two changes of -garments, and laid them upon two of his servants; and they bare them -before him. - -5:24 And when he came to the tower, he took them from their hand, and -bestowed them in the house: and he let the men go, and they departed. - -5:25 But he went in, and stood before his master. And Elisha said unto -him, Whence comest thou, Gehazi? And he said, Thy servant went no -whither. - -5:26 And he said unto him, Went not mine heart with thee, when the man -turned again from his chariot to meet thee? Is it a time to receive -money, and to receive garments, and oliveyards, and vineyards, and -sheep, and oxen, and menservants, and maidservants? 5:27 The leprosy -therefore of Naaman shall cleave unto thee, and unto thy seed for -ever. And he went out from his presence a leper as white as snow. - -6:1 And the sons of the prophets said unto Elisha, Behold now, the -place where we dwell with thee is too strait for us. - -6:2 Let us go, we pray thee, unto Jordan, and take thence every man a -beam, and let us make us a place there, where we may dwell. And he -answered, Go ye. - -6:3 And one said, Be content, I pray thee, and go with thy servants. -And he answered, I will go. - -6:4 So he went with them. And when they came to Jordan, they cut down -wood. - -6:5 But as one was felling a beam, the axe head fell into the water: -and he cried, and said, Alas, master! for it was borrowed. - -6:6 And the man of God said, Where fell it? And he shewed him the -place. - -And he cut down a stick, and cast it in thither; and the iron did -swim. - -6:7 Therefore said he, Take it up to thee. And he put out his hand, -and took it. - -6:8 Then the king of Syria warred against Israel, and took counsel -with his servants, saying, In such and such a place shall be my camp. - -6:9 And the man of God sent unto the king of Israel, saying, Beware -that thou pass not such a place; for thither the Syrians are come -down. - -6:10 And the king of Israel sent to the place which the man of God -told him and warned him of, and saved himself there, not once nor -twice. - -6:11 Therefore the heart of the king of Syria was sore troubled for -this thing; and he called his servants, and said unto them, Will ye -not shew me which of us is for the king of Israel? 6:12 And one of -his servants said, None, my lord, O king: but Elisha, the prophet that -is in Israel, telleth the king of Israel the words that thou speakest -in thy bedchamber. - -6:13 And he said, Go and spy where he is, that I may send and fetch -him. - -And it was told him, saying, Behold, he is in Dothan. - -6:14 Therefore sent he thither horses, and chariots, and a great host: -and they came by night, and compassed the city about. - -6:15 And when the servant of the man of God was risen early, and gone -forth, behold, an host compassed the city both with horses and -chariots. And his servant said unto him, Alas, my master! how shall we -do? 6:16 And he answered, Fear not: for they that be with us are more -than they that be with them. - -6:17 And Elisha prayed, and said, LORD, I pray thee, open his eyes, -that he may see. And the LORD opened the eyes of the young man; and he -saw: and, behold, the mountain was full of horses and chariots of fire -round about Elisha. - -6:18 And when they came down to him, Elisha prayed unto the LORD, and -said, Smite this people, I pray thee, with blindness. And he smote -them with blindness according to the word of Elisha. - -6:19 And Elisha said unto them, This is not the way, neither is this -the city: follow me, and I will bring you to the man whom ye seek. But -he led them to Samaria. - -6:20 And it came to pass, when they were come into Samaria, that -Elisha said, LORD, open the eyes of these men, that they may see. And -the LORD opened their eyes, and they saw; and, behold, they were in -the midst of Samaria. - -6:21 And the king of Israel said unto Elisha, when he saw them, My -father, shall I smite them? shall I smite them? 6:22 And he answered, -Thou shalt not smite them: wouldest thou smite those whom thou hast -taken captive with thy sword and with thy bow? set bread and water -before them, that they may eat and drink, and go to their master. - -6:23 And he prepared great provision for them: and when they had eaten -and drunk, he sent them away, and they went to their master. So the -bands of Syria came no more into the land of Israel. - -6:24 And it came to pass after this, that Benhadad king of Syria -gathered all his host, and went up, and besieged Samaria. - -6:25 And there was a great famine in Samaria: and, behold, they -besieged it, until an ass's head was sold for fourscore pieces of -silver, and the fourth part of a cab of dove's dung for five pieces of -silver. - -6:26 And as the king of Israel was passing by upon the wall, there -cried a woman unto him, saying, Help, my lord, O king. - -6:27 And he said, If the LORD do not help thee, whence shall I help -thee? out of the barnfloor, or out of the winepress? 6:28 And the -king said unto her, What aileth thee? And she answered, This woman -said unto me, Give thy son, that we may eat him to day, and we will -eat my son to morrow. - -6:29 So we boiled my son, and did eat him: and I said unto her on the -next day, Give thy son, that we may eat him: and she hath hid her son. - -6:30 And it came to pass, when the king heard the words of the woman, -that he rent his clothes; and he passed by upon the wall, and the -people looked, and, behold, he had sackcloth within upon his flesh. - -6:31 Then he said, God do so and more also to me, if the head of -Elisha the son of Shaphat shall stand on him this day. - -6:32 But Elisha sat in his house, and the elders sat with him; and the -king sent a man from before him: but ere the messenger came to him, he -said to the elders, See ye how this son of a murderer hath sent to -take away mine head? look, when the messenger cometh, shut the door, -and hold him fast at the door: is not the sound of his master's feet -behind him? 6:33 And while he yet talked with them, behold, the -messenger came down unto him: and he said, Behold, this evil is of the -LORD; what should I wait for the LORD any longer? 7:1 Then Elisha -said, Hear ye the word of the LORD; Thus saith the LORD, To morrow -about this time shall a measure of fine flour be sold for a shekel, -and two measures of barley for a shekel, in the gate of Samaria. - -7:2 Then a lord on whose hand the king leaned answered the man of God, -and said, Behold, if the LORD would make windows in heaven, might this -thing be? And he said, Behold, thou shalt see it with thine eyes, but -shalt not eat thereof. - -7:3 And there were four leprous men at the entering in of the gate: -and they said one to another, Why sit we here until we die? 7:4 If we -say, We will enter into the city, then the famine is in the city, and -we shall die there: and if we sit still here, we die also. Now -therefore come, and let us fall unto the host of the Syrians: if they -save us alive, we shall live; and if they kill us, we shall but die. - -7:5 And they rose up in the twilight, to go unto the camp of the -Syrians: and when they were come to the uttermost part of the camp of -Syria, behold, there was no man there. - -7:6 For the LORD had made the host of the Syrians to hear a noise of -chariots, and a noise of horses, even the noise of a great host: and -they said one to another, Lo, the king of Israel hath hired against us -the kings of the Hittites, and the kings of the Egyptians, to come -upon us. - -7:7 Wherefore they arose and fled in the twilight, and left their -tents, and their horses, and their asses, even the camp as it was, and -fled for their life. - -7:8 And when these lepers came to the uttermost part of the camp, they -went into one tent, and did eat and drink, and carried thence silver, -and gold, and raiment, and went and hid it; and came again, and -entered into another tent, and carried thence also, and went and hid -it. - -7:9 Then they said one to another, We do not well: this day is a day -of good tidings, and we hold our peace: if we tarry till the morning -light, some mischief will come upon us: now therefore come, that we -may go and tell the king's household. - -7:10 So they came and called unto the porter of the city: and they -told them, saying, We came to the camp of the Syrians, and, behold, -there was no man there, neither voice of man, but horses tied, and -asses tied, and the tents as they were. - -7:11 And he called the porters; and they told it to the king's house -within. - -7:12 And the king arose in the night, and said unto his servants, I -will now shew you what the Syrians have done to us. They know that we -be hungry; therefore are they gone out of the camp to hide themselves -in the field, saying, When they come out of the city, we shall catch -them alive, and get into the city. - -7:13 And one of his servants answered and said, Let some take, I pray -thee, five of the horses that remain, which are left in the city, -(behold, they are as all the multitude of Israel that are left in it: -behold, I say, they are even as all the multitude of the Israelites -that are consumed:) and let us send and see. - -7:14 They took therefore two chariot horses; and the king sent after -the host of the Syrians, saying, Go and see. - -7:15 And they went after them unto Jordan: and, lo, all the way was -full of garments and vessels, which the Syrians had cast away in their -haste. And the messengers returned, and told the king. - -7:16 And the people went out, and spoiled the tents of the Syrians. So -a measure of fine flour was sold for a shekel, and two measures of -barley for a shekel, according to the word of the LORD. - -7:17 And the king appointed the lord on whose hand he leaned to have -the charge of the gate: and the people trode upon him in the gate, and -he died, as the man of God had said, who spake when the king came down -to him. - -7:18 And it came to pass as the man of God had spoken to the king, -saying, Two measures of barley for a shekel, and a measure of fine -flour for a shekel, shall be to morrow about this time in the gate of -Samaria: 7:19 And that lord answered the man of God, and said, Now, -behold, if the LORD should make windows in heaven, might such a thing -be? And he said, Behold, thou shalt see it with thine eyes, but shalt -not eat thereof. - -7:20 And so it fell out unto him: for the people trode upon him in the -gate, and he died. - -8:1 Then spake Elisha unto the woman, whose son he had restored to -life, saying, Arise, and go thou and thine household, and sojourn -wheresoever thou canst sojourn: for the LORD hath called for a famine; -and it shall also come upon the land seven years. - -8:2 And the woman arose, and did after the saying of the man of God: -and she went with her household, and sojourned in the land of the -Philistines seven years. - -8:3 And it came to pass at the seven years' end, that the woman -returned out of the land of the Philistines: and she went forth to cry -unto the king for her house and for her land. - -8:4 And the king talked with Gehazi the servant of the man of God, -saying, Tell me, I pray thee, all the great things that Elisha hath -done. - -8:5 And it came to pass, as he was telling the king how he had -restored a dead body to life, that, behold, the woman, whose son he -had restored to life, cried to the king for her house and for her -land. And Gehazi said, My lord, O king, this is the woman, and this is -her son, whom Elisha restored to life. - -8:6 And when the king asked the woman, she told him. So the king -appointed unto her a certain officer, saying, Restore all that was -hers, and all the fruits of the field since the day that she left the -land, even until now. - -8:7 And Elisha came to Damascus; and Benhadad the king of Syria was -sick; and it was told him, saying, The man of God is come hither. - -8:8 And the king said unto Hazael, Take a present in thine hand, and -go, meet the man of God, and enquire of the LORD by him, saying, Shall -I recover of this disease? 8:9 So Hazael went to meet him, and took a -present with him, even of every good thing of Damascus, forty camels' -burden, and came and stood before him, and said, Thy son Benhadad king -of Syria hath sent me to thee, saying, Shall I recover of this -disease? 8:10 And Elisha said unto him, Go, say unto him, Thou mayest -certainly recover: howbeit the LORD hath shewed me that he shall -surely die. - -8:11 And he settled his countenance stedfastly, until he was ashamed: -and the man of God wept. - -8:12 And Hazael said, Why weepeth my lord? And he answered, Because I -know the evil that thou wilt do unto the children of Israel: their -strong holds wilt thou set on fire, and their young men wilt thou slay -with the sword, and wilt dash their children, and rip up their women -with child. - -8:13 And Hazael said, But what, is thy servant a dog, that he should -do this great thing? And Elisha answered, The LORD hath shewed me that -thou shalt be king over Syria. - -8:14 So he departed from Elisha, and came to his master; who said to -him, What said Elisha to thee? And he answered, He told me that thou -shouldest surely recover. - -8:15 And it came to pass on the morrow, that he took a thick cloth, -and dipped it in water, and spread it on his face, so that he died: -and Hazael reigned in his stead. - -8:16 And in the fifth year of Joram the son of Ahab king of Israel, -Jehoshaphat being then king of Judah, Jehoram the son of Je hoshaphat -king of Judah began to reign. - -8:17 Thirty and two years old was he when he began to reign; and he -reigned eight years in Jerusalem. - -8:18 And he walked in the way of the kings of Israel, as did the house -of Ahab: for the daughter of Ahab was his wife: and he did evil in the -sight of the LORD. - -8:19 Yet the LORD would not destroy Judah for David his servant's -sake, as he promised him to give him alway a light, and to his -children. - -8:20 In his days Edom revolted from under the hand of Judah, and made -a king over themselves. - -8:21 So Joram went over to Zair, and all the chariots with him: and he -rose by night, and smote the Edomites which compassed him about, and -the captains of the chariots: and the people fled into their tents. - -8:22 Yet Edom revolted from under the hand of Judah unto this day. -Then Libnah revolted at the same time. - -8:23 And the rest of the acts of Joram, and all that he did, are they -not written in the book of the chronicles of the kings of Judah? 8:24 -And Joram slept with his fathers, and was buried with his fathers in -the city of David: and Ahaziah his son reigned in his stead. - -8:25 In the twelfth year of Joram the son of Ahab king of Israel did -Ahaziah the son of Jehoram king of Judah begin to reign. - -8:26 Two and twenty years old was Ahaziah when he began to reign; and -he reigned one year in Jerusalem. And his mother's name was Athaliah, -the daughter of Omri king of Israel. - -8:27 And he walked in the way of the house of Ahab, and did evil in -the sight of the LORD, as did the house of Ahab: for he was the son in -law of the house of Ahab. - -8:28 And he went with Joram the son of Ahab to the war against Hazael -king of Syria in Ramothgilead; and the Syrians wounded Joram. - -8:29 And king Joram went back to be healed in Jezreel of the wounds -which the Syrians had given him at Ramah, when he fought against -Hazael king of Syria. And Ahaziah the son of Jehoram king of Judah -went down to see Joram the son of Ahab in Jezreel, because he was -sick. - -9:1 And Elisha the prophet called one of the children of the prophets, -and said unto him, Gird up thy loins, and take this box of oil in -thine hand, and go to Ramothgilead: 9:2 And when thou comest thither, -look out there Jehu the son of Jehoshaphat the son of Nimshi, and go -in, and make him arise up from among his brethren, and carry him to an -inner chamber; 9:3 Then take the box of oil, and pour it on his head, -and say, Thus saith the LORD, I have anointed thee king over Israel. -Then open the door, and flee, and tarry not. - -9:4 So the young man, even the young man the prophet, went to -Ramothgilead. - -9:5 And when he came, behold, the captains of the host were sitting; -and he said, I have an errand to thee, O captain. And Jehu said, Unto -which of all us? And he said, To thee, O captain. - -9:6 And he arose, and went into the house; and he poured the oil on -his head, and said unto him, Thus saith the LORD God of Israel, I have -anointed thee king over the people of the LORD, even over Israel. - -9:7 And thou shalt smite the house of Ahab thy master, that I may -avenge the blood of my servants the prophets, and the blood of all the -servants of the LORD, at the hand of Jezebel. - -9:8 For the whole house of Ahab shall perish: and I will cut off from -Ahab him that pisseth against the wall, and him that is shut up and -left in Israel: 9:9 And I will make the house of Ahab like the house -of Jeroboam the son of Nebat, and like the house of Baasha the son of -Ahijah: 9:10 And the dogs shall eat Jezebel in the portion of Jezreel, -and there shall be none to bury her. And he opened the door, and fled. - -9:11 Then Jehu came forth to the servants of his lord: and one said -unto him, Is all well? wherefore came this mad fellow to thee? And he -said unto them, Ye know the man, and his communication. - -9:12 And they said, It is false; tell us now. And he said, Thus and -thus spake he to me, saying, Thus saith the LORD, I have anointed thee -king over Israel. - -9:13 Then they hasted, and took every man his garment, and put it -under him on the top of the stairs, and blew with trumpets, saying, -Jehu is king. - -9:14 So Jehu the son of Jehoshaphat the son of Nimshi conspired -against Joram. (Now Joram had kept Ramothgilead, he and all Israel, -because of Hazael king of Syria. - -9:15 But king Joram was returned to be healed in Jezreel of the wounds -which the Syrians had given him, when he fought with Hazael king of -Syria.) And Jehu said, If it be your minds, then let none go forth -nor escape out of the city to go to tell it in Jezreel. - -9:16 So Jehu rode in a chariot, and went to Jezreel; for Joram lay -there. - -And Ahaziah king of Judah was come down to see Joram. - -9:17 And there stood a watchman on the tower in Jezreel, and he spied -the company of Jehu as he came, and said, I see a company. And Joram -said, Take an horseman, and send to meet them, and let him say, Is it -peace? 9:18 So there went one on horseback to meet him, and said, -Thus saith the king, Is it peace? And Jehu said, What hast thou to do -with peace? turn thee behind me. And the watchman told, saying, The -messenger came to them, but he cometh not again. - -9:19 Then he sent out a second on horseback, which came to them, and -said, Thus saith the king, Is it peace? And Jehu answered, What hast -thou to do with peace? turn thee behind me. - -9:20 And the watchman told, saying, He came even unto them, and cometh -not again: and the driving is like the driving of Jehu the son of -Nimshi; for he driveth furiously. - -9:21 And Joram said, Make ready. And his chariot was made ready. And -Joram king of Israel and Ahaziah king of Judah went out, each in his -chariot, and they went out against Jehu, and met him in the portion of -Naboth the Jezreelite. - -9:22 And it came to pass, when Joram saw Jehu, that he said, Is it -peace, Jehu? And he answered, What peace, so long as the whoredoms of -thy mother Jezebel and her witchcrafts are so many? 9:23 And Joram -turned his hands, and fled, and said to Ahaziah, There is treachery, O -Ahaziah. - -9:24 And Jehu drew a bow with his full strength, and smote Jehoram -between his arms, and the arrow went out at his heart, and he sunk -down in his chariot. - -9:25 Then said Jehu to Bidkar his captain, Take up, and cast him in -the portion of the field of Naboth the Jezreelite: for remember how -that, when I and thou rode together after Ahab his father, the LORD -laid this burden upon him; 9:26 Surely I have seen yesterday the blood -of Naboth, and the blood of his sons, saith the LORD; and I will -requite thee in this plat, saith the LORD. Now therefore take and cast -him into the plat of ground, according to the word of the LORD. - -9:27 But when Ahaziah the king of Judah saw this, he fled by the way -of the garden house. And Jehu followed after him, and said, Smite him -also in the chariot. And they did so at the going up to Gur, which is -by Ibleam. - -And he fled to Megiddo, and died there. - -9:28 And his servants carried him in a chariot to Jerusalem, and -buried him in his sepulchre with his fathers in the city of David. - -9:29 And in the eleventh year of Joram the son of Ahab began Ahaziah -to reign over Judah. - -9:30 And when Jehu was come to Jezreel, Jezebel heard of it; and she -painted her face, and tired her head, and looked out at a window. - -9:31 And as Jehu entered in at the gate, she said, Had Zimri peace, -who slew his master? 9:32 And he lifted up his face to the window, -and said, Who is on my side? who? And there looked out to him two or -three eunuchs. - -9:33 And he said, Throw her down. So they threw her down: and some of -her blood was sprinkled on the wall, and on the horses: and he trode -her under foot. - -9:34 And when he was come in, he did eat and drink, and said, Go, see -now this cursed woman, and bury her: for she is a king's daughter. - -9:35 And they went to bury her: but they found no more of her than the -skull, and the feet, and the palms of her hands. - -9:36 Wherefore they came again, and told him. And he said, This is the -word of the LORD, which he spake by his servant Elijah the Tishbite, -saying, In the portion of Jezreel shall dogs eat the flesh of Jezebel: -9:37 And the carcase of Jezebel shall be as dung upon the face of the -field in the portion of Jezreel; so that they shall not say, This is -Jezebel. - -10:1 And Ahab had seventy sons in Samaria. And Jehu wrote letters, and -sent to Samaria, unto the rulers of Jezreel, to the elders, and to -them that brought up Ahab's children, saying, 10:2 Now as soon as this -letter cometh to you, seeing your master's sons are with you, and -there are with you chariots and horses, a fenced city also, and -armour; 10:3 Look even out the best and meetest of your master's sons, -and set him on his father's throne, and fight for your master's house. - -10:4 But they were exceedingly afraid, and said, Behold, two kings -stood not before him: how then shall we stand? 10:5 And he that was -over the house, and he that was over the city, the elders also, and -the bringers up of the children, sent to Jehu, saying, We are thy -servants, and will do all that thou shalt bid us; we will not make any -king: do thou that which is good in thine eyes. - -10:6 Then he wrote a letter the second time to them, saying, If ye be -mine, and if ye will hearken unto my voice, take ye the heads of the -men your master's sons, and come to me to Jezreel by to morrow this -time. Now the king's sons, being seventy persons, were with the great -men of the city, which brought them up. - -10:7 And it came to pass, when the letter came to them, that they took -the king's sons, and slew seventy persons, and put their heads in -baskets, and sent him them to Jezreel. - -10:8 And there came a messenger, and told him, saying, They have -brought the heads of the king's sons. And he said, Lay ye them in two -heaps at the entering in of the gate until the morning. - -10:9 And it came to pass in the morning, that he went out, and stood, -and said to all the people, Ye be righteous: behold, I conspired -against my master, and slew him: but who slew all these? 10:10 Know -now that there shall fall unto the earth nothing of the word of the -LORD, which the LORD spake concerning the house of Ahab: for the LORD -hath done that which he spake by his servant Elijah. - -10:11 So Jehu slew all that remained of the house of Ahab in Jezreel, -and all his great men, and his kinsfolks, and his priests, until he -left him none remaining. - -10:12 And he arose and departed, and came to Samaria. And as he was at -the shearing house in the way, 10:13 Jehu met with the brethren of -Ahaziah king of Judah, and said, Who are ye? And they answered, We are -the brethren of Ahaziah; and we go down to salute the children of the -king and the children of the queen. - -10:14 And he said, Take them alive. And they took them alive, and slew -them at the pit of the shearing house, even two and forty men; neither -left he any of them. - -10:15 And when he was departed thence, he lighted on Jehonadab the son -of Rechab coming to meet him: and he saluted him, and said to him, Is -thine heart right, as my heart is with thy heart? And Jehonadab -answered, It is. If it be, give me thine hand. And he gave him his -hand; and he took him up to him into the chariot. - -10:16 And he said, Come with me, and see my zeal for the LORD. So they -made him ride in his chariot. - -10:17 And when he came to Samaria, he slew all that remained unto Ahab -in Samaria, till he had destroyed him, according to the saying of the -LORD, which he spake to Elijah. - -10:18 And Jehu gathered all the people together, and said unto them, -Ahab served Baal a little; but Jehu shall serve him much. - -10:19 Now therefore call unto me all the prophets of Baal, all his -servants, and all his priests; let none be wanting: for I have a great -sacrifice to do to Baal; whosoever shall be wanting, he shall not -live. But Jehu did it in subtilty, to the intent that he might destroy -the worshippers of Baal. - -10:20 And Jehu said, Proclaim a solemn assembly for Baal. And they -proclaimed it. - -10:21 And Jehu sent through all Israel: and all the worshippers of -Baal came, so that there was not a man left that came not. And they -came into the house of Baal; and the house of Baal was full from one -end to another. - -10:22 And he said unto him that was over the vestry, Bring forth -vestments for all the worshippers of Baal. And he brought them forth -vestments. - -10:23 And Jehu went, and Jehonadab the son of Rechab, into the house -of Baal, and said unto the worshippers of Baal, Search, and look that -there be here with you none of the servants of the LORD, but the -worshippers of Baal only. - -10:24 And when they went in to offer sacrifices and burnt offerings, -Jehu appointed fourscore men without, and said, If any of the men whom -I have brought into your hands escape, he that letteth him go, his -life shall be for the life of him. - -10:25 And it came to pass, as soon as he had made an end of offering -the burnt offering, that Jehu said to the guard and to the captains, -Go in, and slay them; let none come forth. And they smote them with -the edge of the sword; and the guard and the captains cast them out, -and went to the city of the house of Baal. - -10:26 And they brought forth the images out of the house of Baal, and -burned them. - -10:27 And they brake down the image of Baal, and brake down the house -of Baal, and made it a draught house unto this day. - -10:28 Thus Jehu destroyed Baal out of Israel. - -10:29 Howbeit from the sins of Jeroboam the son of Nebat, who made -Israel to sin, Jehu departed not from after them, to wit, the golden -calves that were in Bethel, and that were in Dan. - -10:30 And the LORD said unto Jehu, Because thou hast done well in -executing that which is right in mine eyes, and hast done unto the -house of Ahab according to all that was in mine heart, thy children of -the fourth generation shall sit on the throne of Israel. - -10:31 But Jehu took no heed to walk in the law of the LORD God of -Israel with all his heart: for he departed not from the sins of -Jeroboam, which made Israel to sin. - -10:32 In those days the LORD began to cut Israel short: and Hazael -smote them in all the coasts of Israel; 10:33 From Jordan eastward, -all the land of Gilead, the Gadites, and the Reubenites, and the -Manassites, from Aroer, which is by the river Arnon, even Gilead and -Bashan. - -10:34 Now the rest of the acts of Jehu, and all that he did, and all -his might, are they not written in the book of the chronicles of the -kings of Israel? 10:35 And Jehu slept with his fathers: and they -buried him in Samaria. And Jehoahaz his son reigned in his stead. - -10:36 And the time that Jehu reigned over Israel in Samaria was twenty -and eight years. - -11:1 And when Athaliah the mother of Ahaziah saw that her son was -dead, she arose and destroyed all the seed royal. - -11:2 But Jehosheba, the daughter of king Joram, sister of Ahaziah, -took Joash the son of Ahaziah, and stole him from among the king's -sons which were slain; and they hid him, even him and his nurse, in -the bedchamber from Athaliah, so that he was not slain. - -11:3 And he was with her hid in the house of the LORD six years. And -Athaliah did reign over the land. - -11:4 And the seventh year Jehoiada sent and fetched the rulers over -hundreds, with the captains and the guard, and brought them to him -into the house of the LORD, and made a covenant with them, and took an -oath of them in the house of the LORD, and shewed them the king's son. - -11:5 And he commanded them, saying, This is the thing that ye shall -do; A third part of you that enter in on the sabbath shall even be -keepers of the watch of the king's house; 11:6 And a third part shall -be at the gate of Sur; and a third part at the gate behind the guard: -so shall ye keep the watch of the house, that it be not broken down. - -11:7 And two parts of all you that go forth on the sabbath, even they -shall keep the watch of the house of the LORD about the king. - -11:8 And ye shall compass the king round about, every man with his -weapons in his hand: and he that cometh within the ranges, let him be -slain: and be ye with the king as he goeth out and as he cometh in. - -11:9 And the captains over the hundreds did according to all things -that Jehoiada the priest commanded: and they took every man his men -that were to come in on the sabbath, with them that should go out on -the sabbath, and came to Jehoiada the priest. - -11:10 And to the captains over hundreds did the priest give king -David's spears and shields, that were in the temple of the LORD. - -11:11 And the guard stood, every man with his weapons in his hand, -round about the king, from the right corner of the temple to the left -corner of the temple, along by the altar and the temple. - -11:12 And he brought forth the king's son, and put the crown upon him, -and gave him the testimony; and they made him king, and anointed him; -and they clapped their hands, and said, God save the king. - -11:13 And when Athaliah heard the noise of the guard and of the -people, she came to the people into the temple of the LORD. - -11:14 And when she looked, behold, the king stood by a pillar, as the -manner was, and the princes and the trumpeters by the king, and all -the people of the land rejoiced, and blew with trumpets: and Athaliah -rent her clothes, and cried, Treason, Treason. - -11:15 But Jehoiada the priest commanded the captains of the hundreds, -the officers of the host, and said unto them, Have her forth without -the ranges: and him that followeth her kill with the sword. For the -priest had said, Let her not be slain in the house of the LORD. - -11:16 And they laid hands on her; and she went by the way by the which -the horses came into the king's house: and there was she slain. - -11:17 And Jehoiada made a covenant between the LORD and the king and -the people, that they should be the LORD's people; between the king -also and the people. - -11:18 And all the people of the land went into the house of Baal, and -brake it down; his altars and his images brake they in pieces -thoroughly, and slew Mattan the priest of Baal before the altars. And -the priest appointed officers over the house of the LORD. - -11:19 And he took the rulers over hundreds, and the captains, and the -guard, and all the people of the land; and they brought down the king -from the house of the LORD, and came by the way of the gate of the -guard to the king's house. And he sat on the throne of the kings. - -11:20 And all the people of the land rejoiced, and the city was in -quiet: and they slew Athaliah with the sword beside the king's house. - -11:21 Seven years old was Jehoash when he began to reign. - -12:1 In the seventh year of Jehu Jehoash began to reign; and forty -years reigned he in Jerusalem. And his mother's name was Zibiah of -Beersheba. - -12:2 And Jehoash did that which was right in the sight of the LORD all -his days wherein Jehoiada the priest instructed him. - -12:3 But the high places were not taken away: the people still -sacrificed and burnt incense in the high places. - -12:4 And Jehoash said to the priests, All the money of the dedicated -things that is brought into the house of the LORD, even the money of -every one that passeth the account, the money that every man is set -at, and all the money that cometh into any man's heart to bring into -the house of the LORD, 12:5 Let the priests take it to them, every man -of his acquaintance: and let them repair the breaches of the house, -wheresoever any breach shall be found. - -12:6 But it was so, that in the three and twentieth year of king -Jehoash the priests had not repaired the breaches of the house. - -12:7 Then king Jehoash called for Jehoiada the priest, and the other -priests, and said unto them, Why repair ye not the breaches of the -house? now therefore receive no more money of your acquaintance, but -deliver it for the breaches of the house. - -12:8 And the priests consented to receive no more money of the people, -neither to repair the breaches of the house. - -12:9 But Jehoiada the priest took a chest, and bored a hole in the lid -of it, and set it beside the altar, on the right side as one cometh -into the house of the LORD: and the priests that kept the door put -therein all the money that was brought into the house of the LORD. - -12:10 And it was so, when they saw that there was much money in the -chest, that the king's scribe and the high priest came up, and they -put up in bags, and told the money that was found in the house of the -LORD. - -12:11 And they gave the money, being told, into the hands of them that -did the work, that had the oversight of the house of the LORD: and -they laid it out to the carpenters and builders, that wrought upon the -house of the LORD, 12:12 And to masons, and hewers of stone, and to -buy timber and hewed stone to repair the breaches of the house of the -LORD, and for all that was laid out for the house to repair it. - -12:13 Howbeit there were not made for the house of the LORD bowls of -silver, snuffers, basons, trumpets, any vessels of gold, or vessels of -silver, of the money that was brought into the house of the LORD: -12:14 But they gave that to the workmen, and repaired therewith the -house of the LORD. - -12:15 Moreover they reckoned not with the men, into whose hand they -delivered the money to be bestowed on workmen: for they dealt -faithfully. - -12:16 The trespass money and sin money was not brought into the house -of the LORD: it was the priests'. - -12:17 Then Hazael king of Syria went up, and fought against Gath, and -took it: and Hazael set his face to go up to Jerusalem. - -12:18 And Jehoash king of Judah took all the hallowed things that -Jehoshaphat, and Jehoram, and Ahaziah, his fathers, kings of Judah, -had dedicated, and his own hallowed things, and all the gold that was -found in the treasures of the house of the LORD, and in the king's -house, and sent it to Hazael king of Syria: and he went away from -Jerusalem. - -12:19 And the rest of the acts of Joash, and all that he did, are they -not written in the book of the chronicles of the kings of Judah? -12:20 And his servants arose, and made a conspiracy, and slew Joash in -the house of Millo, which goeth down to Silla. - -12:21 For Jozachar the son of Shimeath, and Jehozabad the son of -Shomer, his servants, smote him, and he died; and they buried him with -his fathers in the city of David: and Amaziah his son reigned in his -stead. - -13:1 In the three and twentieth year of Joash the son of Ahaziah king -of Judah Jehoahaz the son of Jehu began to reign over Israel in -Samaria, and reigned seventeen years. - -13:2 And he did that which was evil in the sight of the LORD, and -followed the sins of Jeroboam the son of Nebat, which made Israel to -sin; he departed not therefrom. - -13:3 And the anger of the LORD was kindled against Israel, and he -delivered them into the hand of Hazael king of Syria, and into the -hand of Benhadad the son of Hazael, all their days. - -13:4 And Jehoahaz besought the LORD, and the LORD hearkened unto him: -for he saw the oppression of Israel, because the king of Syria -oppressed them. - -13:5 (And the LORD gave Israel a saviour, so that they went out from -under the hand of the Syrians: and the children of Israel dwelt in -their tents, as beforetime. - -13:6 Nevertheless they departed not from the sins of the house of -Jeroboam, who made Israel sin, but walked therein: and there remained -the grove also in Samaria.) 13:7 Neither did he leave of the people -to Jehoahaz but fifty horsemen, and ten chariots, and ten thousand -footmen; for the king of Syria had destroyed them, and had made them -like the dust by threshing. - -13:8 Now the rest of the acts of Jehoahaz, and all that he did, and -his might, are they not written in the book of the chronicles of the -kings of Israel? 13:9 And Jehoahaz slept with his fathers; and they -buried him in Samaria: and Joash his son reigned in his stead. - -13:10 In the thirty and seventh year of Joash king of Judah began -Jehoash the son of Jehoahaz to reign over Israel in Samaria, and -reigned sixteen years. - -13:11 And he did that which was evil in the sight of the LORD; he -departed not from all the sins of Jeroboam the son of Nebat, who made -Israel sin: but he walked therein. - -13:12 And the rest of the acts of Joash, and all that he did, and his -might wherewith he fought against Amaziah king of Judah, are they not -written in the book of the chronicles of the kings of Israel? 13:13 -And Joash slept with his fathers; and Jeroboam sat upon his throne: -and Joash was buried in Samaria with the kings of Israel. - -13:14 Now Elisha was fallen sick of his sickness whereof he died. And -Joash the king of Israel came down unto him, and wept over his face, -and said, O my father, my father, the chariot of Israel, and the -horsemen thereof. - -13:15 And Elisha said unto him, Take bow and arrows. And he took unto -him bow and arrows. - -13:16 And he said to the king of Israel, Put thine hand upon the bow. -And he put his hand upon it: and Elisha put his hands upon the king's -hands. - -13:17 And he said, Open the window eastward. And he opened it. Then -Elisha said, Shoot. And he shot. And he said, The arrow of the LORD's -deliverance, and the arrow of deliverance from Syria: for thou shalt -smite the Syrians in Aphek, till thou have consumed them. - -13:18 And he said, Take the arrows. And he took them. And he said unto -the king of Israel, Smite upon the ground. And he smote thrice, and -stayed. - -13:19 And the man of God was wroth with him, and said, Thou shouldest -have smitten five or six times; then hadst thou smitten Syria till -thou hadst consumed it: whereas now thou shalt smite Syria but thrice. - -13:20 And Elisha died, and they buried him. And the bands of the -Moabites invaded the land at the coming in of the year. - -13:21 And it came to pass, as they were burying a man, that, behold, -they spied a band of men; and they cast the man into the sepulchre of -Elisha: and when the man was let down, and touched the bones of -Elisha, he revived, and stood up on his feet. - -13:22 But Hazael king of Syria oppressed Israel all the days of -Jehoahaz. - -13:23 And the LORD was gracious unto them, and had compassion on them, -and had respect unto them, because of his covenant with Abraham, -Isaac, and Jacob, and would not destroy them, neither cast he them -from his presence as yet. - -13:24 So Hazael king of Syria died; and Benhadad his son reigned in -his stead. - -13:25 And Jehoash the son of Jehoahaz took again out of the hand of -Benhadad the son of Hazael the cities, which he had taken out of the -hand of Jehoahaz his father by war. Three times did Joash beat him, -and recovered the cities of Israel. - -14:1 In the second year of Joash son of Jehoahaz king of Israel -reigned Amaziah the son of Joash king of Judah. - -14:2 He was twenty and five years old when he began to reign, and -reigned twenty and nine years in Jerusalem. And his mother's name was -Jehoaddan of Jerusalem. - -14:3 And he did that which was right in the sight of the LORD, yet not -like David his father: he did according to all things as Joash his -father did. - -14:4 Howbeit the high places were not taken away: as yet the people -did sacrifice and burnt incense on the high places. - -14:5 And it came to pass, as soon as the kingdom was confirmed in his -hand, that he slew his servants which had slain the king his father. - -14:6 But the children of the murderers he slew not: according unto -that which is written in the book of the law of Moses, wherein the -LORD commanded, saying, The fathers shall not be put to death for the -children, nor the children be put to death for the fathers; but every -man shall be put to death for his own sin. - -14:7 He slew of Edom in the valley of salt ten thousand, and took -Selah by war, and called the name of it Joktheel unto this day. - -14:8 Then Amaziah sent messengers to Jehoash, the son of Jehoahaz son -of Jehu, king of Israel, saying, Come, let us look one another in the -face. - -14:9 And Jehoash the king of Israel sent to Amaziah king of Judah, -saying, The thistle that was in Lebanon sent to the cedar that was in -Lebanon, saying, Give thy daughter to my son to wife: and there passed -by a wild beast that was in Lebanon, and trode down the thistle. - -14:10 Thou hast indeed smitten Edom, and thine heart hath lifted thee -up: glory of this, and tarry at home: for why shouldest thou meddle to -thy hurt, that thou shouldest fall, even thou, and Judah with thee? -14:11 But Amaziah would not hear. Therefore Jehoash king of Israel -went up; and he and Amaziah king of Judah looked one another in the -face at Bethshemesh, which belongeth to Judah. - -14:12 And Judah was put to the worse before Israel; and they fled -every man to their tents. - -14:13 And Jehoash king of Israel took Amaziah king of Judah, the son -of Jehoash the son of Ahaziah, at Bethshemesh, and came to Jerusalem, -and brake down the wall of Jerusalem from the gate of Ephraim unto the -corner gate, four hundred cubits. - -14:14 And he took all the gold and silver, and all the vessels that -were found in the house of the LORD, and in the treasures of the -king's house, and hostages, and returned to Samaria. - -14:15 Now the rest of the acts of Jehoash which he did, and his might, -and how he fought with Amaziah king of Judah, are they not written in -the book of the chronicles of the kings of Israel? 14:16 And Jehoash -slept with his fathers, and was buried in Samaria with the kings of -Israel; and Jeroboam his son reigned in his stead. - -14:17 And Amaziah the son of Joash king of Judah lived after the death -of Jehoash son of Jehoahaz king of Israel fifteen years. - -14:18 And the rest of the acts of Amaziah, are they not written in the -book of the chronicles of the kings of Judah? 14:19 Now they made a -conspiracy against him in Jerusalem: and he fled to Lachish; but they -sent after him to Lachish, and slew him there. - -14:20 And they brought him on horses: and he was buried at Jerusalem -with his fathers in the city of David. - -14:21 And all the people of Judah took Azariah, which was sixteen -years old, and made him king instead of his father Amaziah. - -14:22 He built Elath, and restored it to Judah, after that the king -slept with his fathers. - -14:23 In the fifteenth year of Amaziah the son of Joash king of Judah -Jeroboam the son of Joash king of Israel began to reign in Samaria, -and reigned forty and one years. - -14:24 And he did that which was evil in the sight of the LORD: he -departed not from all the sins of Jeroboam the son of Nebat, who made -Israel to sin. - -14:25 He restored the coast of Israel from the entering of Hamath unto -the sea of the plain, according to the word of the LORD God of Israel, -which he spake by the hand of his servant Jonah, the son of Amittai, -the prophet, which was of Gathhepher. - -14:26 For the LORD saw the affliction of Israel, that it was very -bitter: for there was not any shut up, nor any left, nor any helper -for Israel. - -14:27 And the LORD said not that he would blot out the name of Israel -from under heaven: but he saved them by the hand of Jeroboam the son -of Joash. - -14:28 Now the rest of the acts of Jeroboam, and all that he did, and -his might, how he warred, and how he recovered Damascus, and Hamath, -which belonged to Judah, for Israel, are they not written in the book -of the chronicles of the kings of Israel? 14:29 And Jeroboam slept -with his fathers, even with the kings of Israel; and Zachariah his son -reigned in his stead. - -15:1 In the twenty and seventh year of Jeroboam king of Israel began -Azariah son of Amaziah king of Judah to reign. - -15:2 Sixteen years old was he when he began to reign, and he reigned -two and fifty years in Jerusalem. And his mother's name was Jecholiah -of Jerusalem. - -15:3 And he did that which was right in the sight of the LORD, -according to all that his father Amaziah had done; 15:4 Save that the -high places were not removed: the people sacrificed and burnt incense -still on the high places. - -15:5 And the LORD smote the king, so that he was a leper unto the day -of his death, and dwelt in a several house. And Jotham the king's son -was over the house, judging the people of the land. - -15:6 And the rest of the acts of Azariah, and all that he did, are -they not written in the book of the chronicles of the kings of Judah? -15:7 So Azariah slept with his fathers; and they buried him with his -fathers in the city of David: and Jotham his son reigned in his stead. - -15:8 In the thirty and eighth year of Azariah king of Judah did -Zachariah the son of Jeroboam reign over Israel in Samaria six months. - -15:9 And he did that which was evil in the sight of the LORD, as his -fathers had done: he departed not from the sins of Jeroboam the son of -Nebat, who made Israel to sin. - -15:10 And Shallum the son of Jabesh conspired against him, and smote -him before the people, and slew him, and reigned in his stead. - -15:11 And the rest of the acts of Zachariah, behold, they are written -in the book of the chronicles of the kings of Israel. - -15:12 This was the word of the LORD which he spake unto Jehu, saying, -Thy sons shall sit on the throne of Israel unto the fourth generation. -And so it came to pass. - -15:13 Shallum the son of Jabesh began to reign in the nine and -thirtieth year of Uzziah king of Judah; and he reigned a full month in -Samaria. - -15:14 For Menahem the son of Gadi went up from Tirzah, and came to -Samaria, and smote Shallum the son of Jabesh in Samaria, and slew him, -and reigned in his stead. - -15:15 And the rest of the acts of Shallum, and his conspiracy which he -made, behold, they are written in the book of the chronicles of the -kings of Israel. - -15:16 Then Menahem smote Tiphsah, and all that were therein, and the -coasts thereof from Tirzah: because they opened not to him, therefore -he smote it; and all the women therein that were with child he ripped -up. - -15:17 In the nine and thirtieth year of Azariah king of Judah began -Menahem the son of Gadi to reign over Israel, and reigned ten years in -Samaria. - -15:18 And he did that which was evil in the sight of the LORD: he -departed not all his days from the sins of Jeroboam the son of Nebat, -who made Israel to sin. - -15:19 And Pul the king of Assyria came against the land: and Menahem -gave Pul a thousand talents of silver, that his hand might be with him -to confirm the kingdom in his hand. - -15:20 And Menahem exacted the money of Israel, even of all the mighty -men of wealth, of each man fifty shekels of silver, to give to the -king of Assyria. So the king of Assyria turned back, and stayed not -there in the land. - -15:21 And the rest of the acts of Menahem, and all that he did, are -they not written in the book of the chronicles of the kings of Israel? -15:22 And Menahem slept with his fathers; and Pekahiah his son reigned -in his stead. - -15:23 In the fiftieth year of Azariah king of Judah Pekahiah the son -of Menahem began to reign over Israel in Samaria, and reigned two -years. - -15:24 And he did that which was evil in the sight of the LORD: he -departed not from the sins of Jeroboam the son of Nebat, who made -Israel to sin. - -15:25 But Pekah the son of Remaliah, a captain of his, conspired -against him, and smote him in Samaria, in the palace of the king's -house, with Argob and Arieh, and with him fifty men of the Gileadites: -and he killed him, and reigned in his room. - -15:26 And the rest of the acts of Pekahiah, and all that he did, -behold, they are written in the book of the chronicles of the kings of -Israel. - -15:27 In the two and fiftieth year of Azariah king of Judah Pekah the -son of Remaliah began to reign over Israel in Samaria, and reigned -twenty years. - -15:28 And he did that which was evil in the sight of the LORD: he -departed not from the sins of Jeroboam the son of Nebat, who made -Israel to sin. - -15:29 In the days of Pekah king of Israel came Tiglathpileser king of -Assyria, and took Ijon, and Abelbethmaachah, and Janoah, and Kedesh, -and Hazor, and Gilead, and Galilee, all the land of Naphtali, and -carried them captive to Assyria. - -15:30 And Hoshea the son of Elah made a conspiracy against Pekah the -son of Remaliah, and smote him, and slew him, and reigned in his -stead, in the twentieth year of Jotham the son of Uzziah. - -15:31 And the rest of the acts of Pekah, and all that he did, behold, -they are written in the book of the chronicles of the kings of Israel. - -15:32 In the second year of Pekah the son of Remaliah king of Israel -began Jotham the son of Uzziah king of Judah to reign. - -15:33 Five and twenty years old was he when he began to reign, and he -reigned sixteen years in Jerusalem. And his mother's name was Jerusha, -the daughter of Zadok. - -15:34 And he did that which was right in the sight of the LORD: he did -according to all that his father Uzziah had done. - -15:35 Howbeit the high places were not removed: the people sacrificed -and burned incense still in the high places. He built the higher gate -of the house of the LORD. - -15:36 Now the rest of the acts of Jotham, and all that he did, are -they not written in the book of the chronicles of the kings of Judah? -15:37 In those days the LORD began to send against Judah Rezin the -king of Syria, and Pekah the son of Remaliah. - -15:38 And Jotham slept with his fathers, and was buried with his -fathers in the city of David his father: and Ahaz his son reigned in -his stead. - -16:1 In the seventeenth year of Pekah the son of Remaliah Ahaz the son -of Jotham king of Judah began to reign. - -16:2 Twenty years old was Ahaz when he began to reign, and reigned -sixteen years in Jerusalem, and did not that which was right in the -sight of the LORD his God, like David his father. - -16:3 But he walked in the way of the kings of Israel, yea, and made -his son to pass through the fire, according to the abominations of the -heathen, whom the LORD cast out from before the children of Israel. - -16:4 And he sacrificed and burnt incense in the high places, and on -the hills, and under every green tree. - -16:5 Then Rezin king of Syria and Pekah son of Remaliah king of Israel -came up to Jerusalem to war: and they besieged Ahaz, but could not -overcome him. - -16:6 At that time Rezin king of Syria recovered Elath to Syria, and -drave the Jews from Elath: and the Syrians came to Elath, and dwelt -there unto this day. - -16:7 So Ahaz sent messengers to Tiglathpileser king of Assyria, -saying, I am thy servant and thy son: come up, and save me out of the -hand of the king of Syria, and out of the hand of the king of Israel, -which rise up against me. - -16:8 And Ahaz took the silver and gold that was found in the house of -the LORD, and in the treasures of the king's house, and sent it for a -present to the king of Assyria. - -16:9 And the king of Assyria hearkened unto him: for the king of -Assyria went up against Damascus, and took it, and carried the people -of it captive to Kir, and slew Rezin. - -16:10 And king Ahaz went to Damascus to meet Tiglathpileser king of -Assyria, and saw an altar that was at Damascus: and king Ahaz sent to -Urijah the priest the fashion of the altar, and the pattern of it, -according to all the workmanship thereof. - -16:11 And Urijah the priest built an altar according to all that king -Ahaz had sent from Damascus: so Urijah the priest made it against king -Ahaz came from Damascus. - -16:12 And when the king was come from Damascus, the king saw the -altar: and the king approached to the altar, and offered thereon. - -16:13 And he burnt his burnt offering and his meat offering, and -poured his drink offering, and sprinkled the blood of his peace -offerings, upon the altar. - -16:14 And he brought also the brasen altar, which was before the LORD, -from the forefront of the house, from between the altar and the house -of the LORD, and put it on the north side of the altar. - -16:15 And king Ahaz commanded Urijah the priest, saying, Upon the -great altar burn the morning burnt offering, and the evening meat -offering, and the king's burnt sacrifice, and his meat offering, with -the burnt offering of all the people of the land, and their meat -offering, and their drink offerings; and sprinkle upon it all the -blood of the burnt offering, and all the blood of the sacrifice: and -the brasen altar shall be for me to enquire by. - -16:16 Thus did Urijah the priest, according to all that king Ahaz -commanded. - -16:17 And king Ahaz cut off the borders of the bases, and removed the -laver from off them; and took down the sea from off the brasen oxen -that were under it, and put it upon the pavement of stones. - -16:18 And the covert for the sabbath that they had built in the house, -and the king's entry without, turned he from the house of the LORD for -the king of Assyria. - -16:19 Now the rest of the acts of Ahaz which he did, are they not -written in the book of the chronicles of the kings of Judah? 16:20 -And Ahaz slept with his fathers, and was buried with his fathers in -the city of David: and Hezekiah his son reigned in his stead. - -17:1 In the twelfth year of Ahaz king of Judah began Hoshea the son of -Elah to reign in Samaria over Israel nine years. - -17:2 And he did that which was evil in the sight of the LORD, but not -as the kings of Israel that were before him. - -17:3 Against him came up Shalmaneser king of Assyria; and Hoshea -became his servant, and gave him presents. - -17:4 And the king of Assyria found conspiracy in Hoshea: for he had -sent messengers to So king of Egypt, and brought no present to the -king of Assyria, as he had done year by year: therefore the king of -Assyria shut him up, and bound him in prison. - -17:5 Then the king of Assyria came up throughout all the land, and -went up to Samaria, and besieged it three years. - -17:6 In the ninth year of Hoshea the king of Assyria took Samaria, and -carried Israel away into Assyria, and placed them in Halah and in -Habor by the river of Gozan, and in the cities of the Medes. - -17:7 For so it was, that the children of Israel had sinned against the -LORD their God, which had brought them up out of the land of Egypt, -from under the hand of Pharaoh king of Egypt, and had feared other -gods, 17:8 And walked in the statutes of the heathen, whom the LORD -cast out from before the children of Israel, and of the kings of -Israel, which they had made. - -17:9 And the children of Israel did secretly those things that were -not right against the LORD their God, and they built them high places -in all their cities, from the tower of the watchmen to the fenced -city. - -17:10 And they set them up images and groves in every high hill, and -under every green tree: 17:11 And there they burnt incense in all the -high places, as did the heathen whom the LORD carried away before -them; and wrought wicked things to provoke the LORD to anger: 17:12 -For they served idols, whereof the LORD had said unto them, Ye shall -not do this thing. - -17:13 Yet the LORD testified against Israel, and against Judah, by all -the prophets, and by all the seers, saying, Turn ye from your evil -ways, and keep my commandments and my statutes, according to all the -law which I commanded your fathers, and which I sent to you by my -servants the prophets. - -17:14 Notwithstanding they would not hear, but hardened their necks, -like to the neck of their fathers, that did not believe in the LORD -their God. - -17:15 And they rejected his statutes, and his covenant that he made -with their fathers, and his testimonies which he testified against -them; and they followed vanity, and became vain, and went after the -heathen that were round about them, concerning whom the LORD had -charged them, that they should not do like them. - -17:16 And they left all the commandments of the LORD their God, and -made them molten images, even two calves, and made a grove, and -worshipped all the host of heaven, and served Baal. - -17:17 And they caused their sons and their daughters to pass through -the fire, and used divination and enchantments, and sold themselves to -do evil in the sight of the LORD, to provoke him to anger. - -17:18 Therefore the LORD was very angry with Israel, and removed them -out of his sight: there was none left but the tribe of Judah only. - -17:19 Also Judah kept not the commandments of the LORD their God, but -walked in the statutes of Israel which they made. - -17:20 And the LORD rejected all the seed of Israel, and afflicted -them, and delivered them into the hand of spoilers, until he had cast -them out of his sight. - -17:21 For he rent Israel from the house of David; and they made -Jeroboam the son of Nebat king: and Jeroboam drave Israel from -following the LORD, and made them sin a great sin. - -17:22 For the children of Israel walked in all the sins of Jeroboam -which he did; they departed not from them; 17:23 Until the LORD -removed Israel out of his sight, as he had said by all his servants -the prophets. So was Israel carried away out of their own land to -Assyria unto this day. - -17:24 And the king of Assyria brought men from Babylon, and from -Cuthah, and from Ava, and from Hamath, and from Sepharvaim, and placed -them in the cities of Samaria instead of the children of Israel: and -they possessed Samaria, and dwelt in the cities thereof. - -17:25 And so it was at the beginning of their dwelling there, that -they feared not the LORD: therefore the LORD sent lions among them, -which slew some of them. - -17:26 Wherefore they spake to the king of Assyria, saying, The nations -which thou hast removed, and placed in the cities of Samaria, know not -the manner of the God of the land: therefore he hath sent lions among -them, and, behold, they slay them, because they know not the manner of -the God of the land. - -17:27 Then the king of Assyria commanded, saying, Carry thither one of -the priests whom ye brought from thence; and let them go and dwell -there, and let him teach them the manner of the God of the land. - -17:28 Then one of the priests whom they had carried away from Samaria -came and dwelt in Bethel, and taught them how they should fear the -LORD. - -17:29 Howbeit every nation made gods of their own, and put them in the -houses of the high places which the Samaritans had made, every nation -in their cities wherein they dwelt. - -17:30 And the men of Babylon made Succothbenoth, and the men of Cuth -made Nergal, and the men of Hamath made Ashima, 17:31 And the Avites -made Nibhaz and Tartak, and the Sepharvites burnt their children in -fire to Adrammelech and Anammelech, the gods of Sepharvaim. - -17:32 So they feared the LORD, and made unto themselves of the lowest -of them priests of the high places, which sacrificed for them in the -houses of the high places. - -17:33 They feared the LORD, and served their own gods, after the -manner of the nations whom they carried away from thence. - -17:34 Unto this day they do after the former manners: they fear not -the LORD, neither do they after their statutes, or after their -ordinances, or after the law and commandment which the LORD commanded -the children of Jacob, whom he named Israel; 17:35 With whom the LORD -had made a covenant, and charged them, saying, Ye shall not fear other -gods, nor bow yourselves to them, nor serve them, nor sacrifice to -them: 17:36 But the LORD, who brought you up out of the land of Egypt -with great power and a stretched out arm, him shall ye fear, and him -shall ye worship, and to him shall ye do sacrifice. - -17:37 And the statutes, and the ordinances, and the law, and the -commandment, which he wrote for you, ye shall observe to do for -evermore; and ye shall not fear other gods. - -17:38 And the covenant that I have made with you ye shall not forget; -neither shall ye fear other gods. - -17:39 But the LORD your God ye shall fear; and he shall deliver you -out of the hand of all your enemies. - -17:40 Howbeit they did not hearken, but they did after their former -manner. - -17:41 So these nations feared the LORD, and served their graven -images, both their children, and their children's children: as did -their fathers, so do they unto this day. - -18:1 Now it came to pass in the third year of Hoshea son of Elah king -of Israel, that Hezekiah the son of Ahaz king of Judah began to reign. - -18:2 Twenty and five years old was he when he began to reign; and he -reigned twenty and nine years in Jerusalem. His mother's name also was -Abi, the daughter of Zachariah. - -18:3 And he did that which was right in the sight of the LORD, -according to all that David his father did. - -18:4 He removed the high places, and brake the images, and cut down -the groves, and brake in pieces the brasen serpent that Moses had -made: for unto those days the children of Israel did burn incense to -it: and he called it Nehushtan. - -18:5 He trusted in the LORD God of Israel; so that after him was none -like him among all the kings of Judah, nor any that were before him. - -18:6 For he clave to the LORD, and departed not from following him, -but kept his commandments, which the LORD commanded Moses. - -18:7 And the LORD was with him; and he prospered whithersoever he went -forth: and he rebelled against the king of Assyria, and served him -not. - -18:8 He smote the Philistines, even unto Gaza, and the borders -thereof, from the tower of the watchmen to the fenced city. - -18:9 And it came to pass in the fourth year of king Hezekiah, which -was the seventh year of Hoshea son of Elah king of Israel, that -Shalmaneser king of Assyria came up against Samaria, and besieged it. - -18:10 And at the end of three years they took it: even in the sixth -year of Hezekiah, that is in the ninth year of Hoshea king of Israel, -Samaria was taken. - -18:11 And the king of Assyria did carry away Israel unto Assyria, and -put them in Halah and in Habor by the river of Gozan, and in the -cities of the Medes: 18:12 Because they obeyed not the voice of the -LORD their God, but transgressed his covenant, and all that Moses the -servant of the LORD commanded, and would not hear them, nor do them. - -18:13 Now in the fourteenth year of king Hezekiah did Sennacherib king -of Assyria come up against all the fenced cities of Judah, and took -them. - -18:14 And Hezekiah king of Judah sent to the king of Assyria to -Lachish, saying, I have offended; return from me: that which thou -puttest on me will I bear. And the king of Assyria appointed unto -Hezekiah king of Judah three hundred talents of silver and thirty -talents of gold. - -18:15 And Hezekiah gave him all the silver that was found in the house -of the LORD, and in the treasures of the king's house. - -18:16 At that time did Hezekiah cut off the gold from the doors of the -temple of the LORD, and from the pillars which Hezekiah king of Judah -had overlaid, and gave it to the king of Assyria. - -18:17 And the king of Assyria sent Tartan and Rabsaris and Rabshakeh -from Lachish to king Hezekiah with a great host against Jerusalem. And -they went up and came to Jerusalem. And when they were come up, they -came and stood by the conduit of the upper pool, which is in the -highway of the fuller's field. - -18:18 And when they had called to the king, there came out to them -Eliakim the son of Hilkiah, which was over the household, and Shebna -the scribe, and Joah the son of Asaph the recorder. - -18:19 And Rabshakeh said unto them, Speak ye now to Hezekiah, Thus -saith the great king, the king of Assyria, What confidence is this -wherein thou trustest? 18:20 Thou sayest, (but they are but vain -words,) I have counsel and strength for the war. Now on whom dost thou -trust, that thou rebellest against me? 18:21 Now, behold, thou -trustest upon the staff of this bruised reed, even upon Egypt, on -which if a man lean, it will go into his hand, and pierce it: so is -Pharaoh king of Egypt unto all that trust on him. - -18:22 But if ye say unto me, We trust in the LORD our God: is not that -he, whose high places and whose altars Hezekiah hath taken away, and -hath said to Judah and Jerusalem, Ye shall worship before this altar -in Jerusalem? 18:23 Now therefore, I pray thee, give pledges to my -lord the king of Assyria, and I will deliver thee two thousand horses, -if thou be able on thy part to set riders upon them. - -18:24 How then wilt thou turn away the face of one captain of the -least of my master's servants, and put thy trust on Egypt for chariots -and for horsemen? 18:25 Am I now come up without the LORD against -this place to destroy it? The LORD said to me, Go up against this -land, and destroy it. - -18:26 Then said Eliakim the son of Hilkiah, and Shebna, and Joah, unto -Rabshakeh, Speak, I pray thee, to thy servants in the Syrian language; -for we understand it: and talk not with us in the Jews' language in -the ears of the people that are on the wall. - -18:27 But Rabshakeh said unto them, Hath my master sent me to thy -master, and to thee, to speak these words? hath he not sent me to the -men which sit on the wall, that they may eat their own dung, and drink -their own piss with you? 18:28 Then Rabshakeh stood and cried with a -loud voice in the Jews' language, and spake, saying, Hear the word of -the great king, the king of Assyria: 18:29 Thus saith the king, Let -not Hezekiah deceive you: for he shall not be able to deliver you out -of his hand: 18:30 Neither let Hezekiah make you trust in the LORD, -saying, The LORD will surely deliver us, and this city shall not be -delivered into the hand of the king of Assyria. - -18:31 Hearken not to Hezekiah: for thus saith the king of Assyria, -Make an agreement with me by a present, and come out to me, and then -eat ye every man of his own vine, and every one of his fig tree, and -drink ye every one the waters of his cistern: 18:32 Until I come and -take you away to a land like your own land, a land of corn and wine, a -land of bread and vineyards, a land of oil olive and of honey, that ye -may live, and not die: and hearken not unto Hezekiah, when he -persuadeth you, saying, The LORD will deliver us. - -18:33 Hath any of the gods of the nations delivered at all his land -out of the hand of the king of Assyria? 18:34 Where are the gods of -Hamath, and of Arpad? where are the gods of Sepharvaim, Hena, and -Ivah? have they delivered Samaria out of mine hand? 18:35 Who are -they among all the gods of the countries, that have delivered their -country out of mine hand, that the LORD should deliver Jerusalem out -of mine hand? 18:36 But the people held their peace, and answered him -not a word: for the king's commandment was, saying, Answer him not. - -18:37 Then came Eliakim the son of Hilkiah, which was over the -household, and Shebna the scribe, and Joah the son of Asaph the -recorder, to Hezekiah with their clothes rent, and told him the words -of Rabshakeh. - -19:1 And it came to pass, when king Hezekiah heard it, that he rent -his clothes, and covered himself with sackcloth, and went into the -house of the LORD. - -19:2 And he sent Eliakim, which was over the household, and Shebna the -scribe, and the elders of the priests, covered with sackcloth, to -Isaiah the prophet the son of Amoz. - -19:3 And they said unto him, Thus saith Hezekiah, This day is a day of -trouble, and of rebuke, and blasphemy; for the children are come to -the birth, and there is not strength to bring forth. - -19:4 It may be the LORD thy God will hear all the words of Rabshakeh, -whom the king of Assyria his master hath sent to reproach the living -God; and will reprove the words which the LORD thy God hath heard: -wherefore lift up thy prayer for the remnant that are left. - -19:5 So the servants of king Hezekiah came to Isaiah. - -19:6 And Isaiah said unto them, Thus shall ye say to your master, Thus -saith the LORD, Be not afraid of the words which thou hast heard, with -which the servants of the king of Assyria have blasphemed me. - -19:7 Behold, I will send a blast upon him, and he shall hear a rumour, -and shall return to his own land; and I will cause him to fall by the -sword in his own land. - -19:8 So Rabshakeh returned, and found the king of Assyria warring -against Libnah: for he had heard that he was departed from Lachish. - -19:9 And when he heard say of Tirhakah king of Ethiopia, Behold, he is -come out to fight against thee: he sent messengers again unto -Hezekiah, saying, 19:10 Thus shall ye speak to Hezekiah king of Judah, -saying, Let not thy God in whom thou trustest deceive thee, saying, -Jerusalem shall not be delivered into the hand of the king of Assyria. - -19:11 Behold, thou hast heard what the kings of Assyria have done to -all lands, by destroying them utterly: and shalt thou be delivered? -19:12 Have the gods of the nations delivered them which my fathers -have destroyed; as Gozan, and Haran, and Rezeph, and the children of -Eden which were in Thelasar? 19:13 Where is the king of Hamath, and -the king of Arpad, and the king of the city of Sepharvaim, of Hena, -and Ivah? 19:14 And Hezekiah received the letter of the hand of the -messengers, and read it: and Hezekiah went up into the house of the -LORD, and spread it before the LORD. - -19:15 And Hezekiah prayed before the LORD, and said, O LORD God of -Israel, which dwellest between the cherubims, thou art the God, even -thou alone, of all the kingdoms of the earth; thou hast made heaven -and earth. - -19:16 LORD, bow down thine ear, and hear: open, LORD, thine eyes, and -see: and hear the words of Sennacherib, which hath sent him to -reproach the living God. - -19:17 Of a truth, LORD, the kings of Assyria have destroyed the -nations and their lands, 19:18 And have cast their gods into the fire: -for they were no gods, but the work of men's hands, wood and stone: -therefore they have destroyed them. - -19:19 Now therefore, O LORD our God, I beseech thee, save thou us out -of his hand, that all the kingdoms of the earth may know that thou art -the LORD God, even thou only. - -19:20 Then Isaiah the son of Amoz sent to Hezekiah, saying, Thus saith -the LORD God of Israel, That which thou hast prayed to me against -Sennacherib king of Assyria I have heard. - -19:21 This is the word that the LORD hath spoken concerning him; The -virgin the daughter of Zion hath despised thee, and laughed thee to -scorn; the daughter of Jerusalem hath shaken her head at thee. - -19:22 Whom hast thou reproached and blasphemed? and against whom hast -thou exalted thy voice, and lifted up thine eyes on high? even against -the Holy One of Israel. - -19:23 By thy messengers thou hast reproached the LORD, and hast said, -With the multitude of my chariots I am come up to the height of the -mountains, to the sides of Lebanon, and will cut down the tall cedar -trees thereof, and the choice fir trees thereof: and I will enter into -the lodgings of his borders, and into the forest of his Carmel. - -19:24 I have digged and drunk strange waters, and with the sole of my -feet have I dried up all the rivers of besieged places. - -19:25 Hast thou not heard long ago how I have done it, and of ancient -times that I have formed it? now have I brought it to pass, that thou -shouldest be to lay waste fenced cities into ruinous heaps. - -19:26 Therefore their inhabitants were of small power, they were -dismayed and confounded; they were as the grass of the field, and as -the green herb, as the grass on the house tops, and as corn blasted -before it be grown up. - -19:27 But I know thy abode, and thy going out, and thy coming in, and -thy rage against me. - -19:28 Because thy rage against me and thy tumult is come up into mine -ears, therefore I will put my hook in thy nose, and my bridle in thy -lips, and I will turn thee back by the way by which thou camest. - -19:29 And this shall be a sign unto thee, Ye shall eat this year such -things as grow of themselves, and in the second year that which -springeth of the same; and in the third year sow ye, and reap, and -plant vineyards, and eat the fruits thereof. - -19:30 And the remnant that is escaped of the house of Judah shall yet -again take root downward, and bear fruit upward. - -19:31 For out of Jerusalem shall go forth a remnant, and they that -escape out of mount Zion: the zeal of the LORD of hosts shall do this. - -19:32 Therefore thus saith the LORD concerning the king of Assyria, He -shall not come into this city, nor shoot an arrow there, nor come -before it with shield, nor cast a bank against it. - -19:33 By the way that he came, by the same shall he return, and shall -not come into this city, saith the LORD. - -19:34 For I will defend this city, to save it, for mine own sake, and -for my servant David's sake. - -19:35 And it came to pass that night, that the angel of the LORD went -out, and smote in the camp of the Assyrians an hundred fourscore and -five thousand: and when they arose early in the morning, behold, they -were all dead corpses. - -19:36 So Sennacherib king of Assyria departed, and went and returned, -and dwelt at Nineveh. - -19:37 And it came to pass, as he was worshipping in the house of -Nisroch his god, that Adrammelech and Sharezer his sons smote him with -the sword: and they escaped into the land of Armenia. And Esarhaddon -his son reigned in his stead. - -20:1 In those days was Hezekiah sick unto death. And the prophet -Isaiah the son of Amoz came to him, and said unto him, Thus saith the -LORD, Set thine house in order; for thou shalt die, and not live. - -20:2 Then he turned his face to the wall, and prayed unto the LORD, -saying, 20:3 I beseech thee, O LORD, remember now how I have walked -before thee in truth and with a perfect heart, and have done that -which is good in thy sight. And Hezekiah wept sore. - -20:4 And it came to pass, afore Isaiah was gone out into the middle -court, that the word of the LORD came to him, saying, 20:5 Turn again, -and tell Hezekiah the captain of my people, Thus saith the LORD, the -God of David thy father, I have heard thy prayer, I have seen thy -tears: behold, I will heal thee: on the third day thou shalt go up -unto the house of the LORD. - -20:6 And I will add unto thy days fifteen years; and I will deliver -thee and this city out of the hand of the king of Assyria; and I will -defend this city for mine own sake, and for my servant David's sake. - -20:7 And Isaiah said, Take a lump of figs. And they took and laid it -on the boil, and he recovered. - -20:8 And Hezekiah said unto Isaiah, What shall be the sign that the -LORD will heal me, and that I shall go up into the house of the LORD -the third day? 20:9 And Isaiah said, This sign shalt thou have of the -LORD, that the LORD will do the thing that he hath spoken: shall the -shadow go forward ten degrees, or go back ten degrees? 20:10 And -Hezekiah answered, It is a light thing for the shadow to go down ten -degrees: nay, but let the shadow return backward ten degrees. - -20:11 And Isaiah the prophet cried unto the LORD: and he brought the -shadow ten degrees backward, by which it had gone down in the dial of -Ahaz. - -20:12 At that time Berodachbaladan, the son of Baladan, king of -Babylon, sent letters and a present unto Hezekiah: for he had heard -that Hezekiah had been sick. - -20:13 And Hezekiah hearkened unto them, and shewed them all the house -of his precious things, the silver, and the gold, and the spices, and -the precious ointment, and all the house of his armour, and all that -was found in his treasures: there was nothing in his house, nor in all -his dominion, that Hezekiah shewed them not. - -20:14 Then came Isaiah the prophet unto king Hezekiah, and said unto -him, What said these men? and from whence came they unto thee? And -Hezekiah said, They are come from a far country, even from Babylon. - -20:15 And he said, What have they seen in thine house? And Hezekiah -answered, All the things that are in mine house have they seen: there -is nothing among my treasures that I have not shewed them. - -20:16 And Isaiah said unto Hezekiah, Hear the word of the LORD. - -20:17 Behold, the days come, that all that is in thine house, and that -which thy fathers have laid up in store unto this day, shall be -carried into Babylon: nothing shall be left, saith the LORD. - -20:18 And of thy sons that shall issue from thee, which thou shalt -beget, shall they take away; and they shall be eunuchs in the palace -of the king of Babylon. - -20:19 Then said Hezekiah unto Isaiah, Good is the word of the LORD -which thou hast spoken. And he said, Is it not good, if peace and -truth be in my days? 20:20 And the rest of the acts of Hezekiah, and -all his might, and how he made a pool, and a conduit, and brought -water into the city, are they not written in the book of the -chronicles of the kings of Judah? 20:21 And Hezekiah slept with his -fathers: and Manasseh his son reigned in his stead. - -21:1 Manasseh was twelve years old when he began to reign, and reigned -fifty and five years in Jerusalem. And his mother's name was -Hephzibah. - -21:2 And he did that which was evil in the sight of the LORD, after -the abominations of the heathen, whom the LORD cast out before the -children of Israel. - -21:3 For he built up again the high places which Hezekiah his father -had destroyed; and he reared up altars for Baal, and made a grove, as -did Ahab king of Israel; and worshipped all the host of heaven, and -served them. - -21:4 And he built altars in the house of the LORD, of which the LORD -said, In Jerusalem will I put my name. - -21:5 And he built altars for all the host of heaven in the two courts -of the house of the LORD. - -21:6 And he made his son pass through the fire, and observed times, -and used enchantments, and dealt with familiar spirits and wizards: he -wrought much wickedness in the sight of the LORD, to provoke him to -anger. - -21:7 And he set a graven image of the grove that he had made in the -house, of which the LORD said to David, and to Solomon his son, In -this house, and in Jerusalem, which I have chosen out of all tribes of -Israel, will I put my name for ever: 21:8 Neither will I make the feet -of Israel move any more out of the land which I gave their fathers; -only if they will observe to do according to all that I have commanded -them, and according to all the law that my servant Moses commanded -them. - -21:9 But they hearkened not: and Manasseh seduced them to do more evil -than did the nations whom the LORD destroyed before the children of -Israel. - -21:10 And the LORD spake by his servants the prophets, saying, 21:11 -Because Manasseh king of Judah hath done these abominations, and hath -done wickedly above all that the Amorites did, which were before him, -and hath made Judah also to sin with his idols: 21:12 Therefore thus -saith the LORD God of Israel, Behold, I am bringing such evil upon -Jerusalem and Judah, that whosoever heareth of it, both his ears shall -tingle. - -21:13 And I will stretch over Jerusalem the line of Samaria, and the -plummet of the house of Ahab: and I will wipe Jerusalem as a man -wipeth a dish, wiping it, and turning it upside down. - -21:14 And I will forsake the remnant of mine inheritance, and deliver -them into the hand of their enemies; and they shall become a prey and -a spoil to all their enemies; 21:15 Because they have done that which -was evil in my sight, and have provoked me to anger, since the day -their fathers came forth out of Egypt, even unto this day. - -21:16 Moreover Manasseh shed innocent blood very much, till he had -filled Jerusalem from one end to another; beside his sin wherewith he -made Judah to sin, in doing that which was evil in the sight of the -LORD. - -21:17 Now the rest of the acts of Manasseh, and all that he did, and -his sin that he sinned, are they not written in the book of the -chronicles of the kings of Judah? 21:18 And Manasseh slept with his -fathers, and was buried in the garden of his own house, in the garden -of Uzza: and Amon his son reigned in his stead. - -21:19 Amon was twenty and two years old when he began to reign, and he -reigned two years in Jerusalem. And his mother's name was -Meshullemeth, the daughter of Haruz of Jotbah. - -21:20 And he did that which was evil in the sight of the LORD, as his -father Manasseh did. - -21:21 And he walked in all the way that his father walked in, and -served the idols that his father served, and worshipped them: 21:22 -And he forsook the LORD God of his fathers, and walked not in the way -of the LORD. - -21:23 And the servants of Amon conspired against him, and slew the -king in his own house. - -21:24 And the people of the land slew all them that had conspired -against king Amon; and the people of the land made Josiah his son king -in his stead. - -21:25 Now the rest of the acts of Amon which he did, are they not -written in the book of the chronicles of the kings of Judah? 21:26 -And he was buried in his sepulchre in the garden of Uzza: and Josiah -his son reigned in his stead. - -22:1 Josiah was eight years old when he began to reign, and he reigned -thirty and one years in Jerusalem. And his mother's name was Jedidah, -the daughter of Adaiah of Boscath. - -22:2 And he did that which was right in the sight of the LORD, and -walked in all the way of David his father, and turned not aside to the -right hand or to the left. - -22:3 And it came to pass in the eighteenth year of king Josiah, that -the king sent Shaphan the son of Azaliah, the son of Meshullam, the -scribe, to the house of the LORD, saying, 22:4 Go up to Hilkiah the -high priest, that he may sum the silver which is brought into the -house of the LORD, which the keepers of the door have gathered of the -people: 22:5 And let them deliver it into the hand of the doers of the -work, that have the oversight of the house of the LORD: and let them -give it to the doers of the work which is in the house of the LORD, to -repair the breaches of the house, 22:6 Unto carpenters, and builders, -and masons, and to buy timber and hewn stone to repair the house. - -22:7 Howbeit there was no reckoning made with them of the money that -was delivered into their hand, because they dealt faithfully. - -22:8 And Hilkiah the high priest said unto Shaphan the scribe, I have -found the book of the law in the house of the LORD. And Hilkiah gave -the book to Shaphan, and he read it. - -22:9 And Shaphan the scribe came to the king, and brought the king -word again, and said, Thy servants have gathered the money that was -found in the house, and have delivered it into the hand of them that -do the work, that have the oversight of the house of the LORD. - -22:10 And Shaphan the scribe shewed the king, saying, Hilkiah the -priest hath delivered me a book. And Shaphan read it before the king. - -22:11 And it came to pass, when the king had heard the words of the -book of the law, that he rent his clothes. - -22:12 And the king commanded Hilkiah the priest, and Ahikam the son of -Shaphan, and Achbor the son of Michaiah, and Shaphan the scribe, and -Asahiah a servant of the king's, saying, 22:13 Go ye, enquire of the -LORD for me, and for the people, and for all Judah, concerning the -words of this book that is found: for great is the wrath of the LORD -that is kindled against us, because our fathers have not hearkened -unto the words of this book, to do according unto all that which is -written concerning us. - -22:14 So Hilkiah the priest, and Ahikam, and Achbor, and Shaphan, and -Asahiah, went unto Huldah the prophetess, the wife of Shallum the son -of Tikvah, the son of Harhas, keeper of the wardrobe; (now she dwelt -in Jerusalem in the college;) and they communed with her. - -22:15 And she said unto them, Thus saith the LORD God of Israel, Tell -the man that sent you to me, 22:16 Thus saith the LORD, Behold, I will -bring evil upon this place, and upon the inhabitants thereof, even all -the words of the book which the king of Judah hath read: 22:17 Because -they have forsaken me, and have burned incense unto other gods, that -they might provoke me to anger with all the works of their hands; -therefore my wrath shall be kindled against this place, and shall not -be quenched. - -22:18 But to the king of Judah which sent you to enquire of the LORD, -thus shall ye say to him, Thus saith the LORD God of Israel, As -touching the words which thou hast heard; 22:19 Because thine heart -was tender, and thou hast humbled thyself before the LORD, when thou -heardest what I spake against this place, and against the inhabitants -thereof, that they should become a desolation and a curse, and hast -rent thy clothes, and wept before me; I also have heard thee, saith -the LORD. - -22:20 Behold therefore, I will gather thee unto thy fathers, and thou -shalt be gathered into thy grave in peace; and thine eyes shall not -see all the evil which I will bring upon this place. And they brought -the king word again. - -23:1 And the king sent, and they gathered unto him all the elders of -Judah and of Jerusalem. - -23:2 And the king went up into the house of the LORD, and all the men -of Judah and all the inhabitants of Jerusalem with him, and the -priests, and the prophets, and all the people, both small and great: -and he read in their ears all the words of the book of the covenant -which was found in the house of the LORD. - -23:3 And the king stood by a pillar, and made a covenant before the -LORD, to walk after the LORD, and to keep his commandments and his -testimonies and his statutes with all their heart and all their soul, -to perform the words of this covenant that were written in this book. -And all the people stood to the covenant. - -23:4 And the king commanded Hilkiah the high priest, and the priests -of the second order, and the keepers of the door, to bring forth out -of the temple of the LORD all the vessels that were made for Baal, and -for the grove, and for all the host of heaven: and he burned them -without Jerusalem in the fields of Kidron, and carried the ashes of -them unto Bethel. - -23:5 And he put down the idolatrous priests, whom the kings of Judah -had ordained to burn incense in the high places in the cities of -Judah, and in the places round about Jerusalem; them also that burned -incense unto Baal, to the sun, and to the moon, and to the planets, -and to all the host of heaven. - -23:6 And he brought out the grove from the house of the LORD, without -Jerusalem, unto the brook Kidron, and burned it at the brook Kidron, -and stamped it small to powder, and cast the powder thereof upon the -graves of the children of the people. - -23:7 And he brake down the houses of the sodomites, that were by the -house of the LORD, where the women wove hangings for the grove. - -23:8 And he brought all the priests out of the cities of Judah, and -defiled the high places where the priests had burned incense, from -Geba to Beersheba, and brake down the high places of the gates that -were in the entering in of the gate of Joshua the governor of the -city, which were on a man's left hand at the gate of the city. - -23:9 Nevertheless the priests of the high places came not up to the -altar of the LORD in Jerusalem, but they did eat of the unleavened -bread among their brethren. - -23:10 And he defiled Topheth, which is in the valley of the children -of Hinnom, that no man might make his son or his daughter to pass -through the fire to Molech. - -23:11 And he took away the horses that the kings of Judah had given to -the sun, at the entering in of the house of the LORD, by the chamber -of Nathanmelech the chamberlain, which was in the suburbs, and burned -the chariots of the sun with fire. - -23:12 And the altars that were on the top of the upper chamber of -Ahaz, which the kings of Judah had made, and the altars which Manasseh -had made in the two courts of the house of the LORD, did the king beat -down, and brake them down from thence, and cast the dust of them into -the brook Kidron. - -23:13 And the high places that were before Jerusalem, which were on -the right hand of the mount of corruption, which Solomon the king of -Israel had builded for Ashtoreth the abomination of the Zidonians, and -for Chemosh the abomination of the Moabites, and for Milcom the -abomination of the children of Ammon, did the king defile. - -23:14 And he brake in pieces the images, and cut down the groves, and -filled their places with the bones of men. - -23:15 Moreover the altar that was at Bethel, and the high place which -Jeroboam the son of Nebat, who made Israel to sin, had made, both that -altar and the high place he brake down, and burned the high place, and -stamped it small to powder, and burned the grove. - -23:16 And as Josiah turned himself, he spied the sepulchres that were -there in the mount, and sent, and took the bones out of the -sepulchres, and burned them upon the altar, and polluted it, according -to the word of the LORD which the man of God proclaimed, who -proclaimed these words. - -23:17 Then he said, What title is that that I see? And the men of the -city told him, It is the sepulchre of the man of God, which came from -Judah, and proclaimed these things that thou hast done against the -altar of Bethel. - -23:18 And he said, Let him alone; let no man move his bones. So they -let his bones alone, with the bones of the prophet that came out of -Samaria. - -23:19 And all the houses also of the high places that were in the -cities of Samaria, which the kings of Israel had made to provoke the -Lord to anger, Josiah took away, and did to them according to all the -acts that he had done in Bethel. - -23:20 And he slew all the priests of the high places that were there -upon the altars, and burned men's bones upon them, and returned to -Jerusalem. - -23:21 And the king commanded all the people, saying, Keep the passover -unto the LORD your God, as it is written in the book of this covenant. - -23:22 Surely there was not holden such a passover from the days of the -judges that judged Israel, nor in all the days of the kings of Israel, -nor of the kings of Judah; 23:23 But in the eighteenth year of king -Josiah, wherein this passover was holden to the LORD in Jerusalem. - -23:24 Moreover the workers with familiar spirits, and the wizards, and -the images, and the idols, and all the abominations that were spied in -the land of Judah and in Jerusalem, did Josiah put away, that he might -perform the words of the law which were written in the book that -Hilkiah the priest found in the house of the LORD. - -23:25 And like unto him was there no king before him, that turned to -the LORD with all his heart, and with all his soul, and with all his -might, according to all the law of Moses; neither after him arose -there any like him. - -23:26 Notwithstanding the LORD turned not from the fierceness of his -great wrath, wherewith his anger was kindled against Judah, because of -all the provocations that Manasseh had provoked him withal. - -23:27 And the LORD said, I will remove Judah also out of my sight, as -I have removed Israel, and will cast off this city Jerusalem which I -have chosen, and the house of which I said, My name shall be there. - -23:28 Now the rest of the acts of Josiah, and all that he did, are -they not written in the book of the chronicles of the kings of Judah? -23:29 In his days Pharaohnechoh king of Egypt went up against the king -of Assyria to the river Euphrates: and king Josiah went against him; -and he slew him at Megiddo, when he had seen him. - -23:30 And his servants carried him in a chariot dead from Megiddo, and -brought him to Jerusalem, and buried him in his own sepulchre. And the -people of the land took Jehoahaz the son of Josiah, and anointed him, -and made him king in his father's stead. - -23:31 Jehoahaz was twenty and three years old when he began to reign; -and he reigned three months in Jerusalem. And his mother's name was -Hamutal, the daughter of Jeremiah of Libnah. - -23:32 And he did that which was evil in the sight of the LORD, -according to all that his fathers had done. - -23:33 And Pharaohnechoh put him in bands at Riblah in the land of -Hamath, that he might not reign in Jerusalem; and put the land to a -tribute of an hundred talents of silver, and a talent of gold. - -23:34 And Pharaohnechoh made Eliakim the son of Josiah king in the -room of Josiah his father, and turned his name to Jehoiakim, and took -Jehoahaz away: and he came to Egypt, and died there. - -23:35 And Jehoiakim gave the silver and the gold to Pharaoh; but he -taxed the land to give the money according to the commandment of -Pharaoh: he exacted the silver and the gold of the people of the land, -of every one according to his taxation, to give it unto Pharaohnechoh. - -23:36 Jehoiakim was twenty and five years old when he began to reign; -and he reigned eleven years in Jerusalem. And his mother's name was -Zebudah, the daughter of Pedaiah of Rumah. - -23:37 And he did that which was evil in the sight of the LORD, -according to all that his fathers had done. - -24:1 In his days Nebuchadnezzar king of Babylon came up, and Jehoiakim -became his servant three years: then he turned and rebelled against -him. - -24:2 And the LORD sent against him bands of the Chaldees, and bands of -the Syrians, and bands of the Moabites, and bands of the children of -Ammon, and sent them against Judah to destroy it, according to the -word of the LORD, which he spake by his servants the prophets. - -24:3 Surely at the commandment of the LORD came this upon Judah, to -remove them out of his sight, for the sins of Manasseh, according to -all that he did; 24:4 And also for the innocent blood that he shed: -for he filled Jerusalem with innocent blood; which the LORD would not -pardon. - -24:5 Now the rest of the acts of Jehoiakim, and all that he did, are -they not written in the book of the chronicles of the kings of Judah? -24:6 So Jehoiakim slept with his fathers: and Jehoiachin his son -reigned in his stead. - -24:7 And the king of Egypt came not again any more out of his land: -for the king of Babylon had taken from the river of Egypt unto the -river Euphrates all that pertained to the king of Egypt. - -24:8 Jehoiachin was eighteen years old when he began to reign, and he -reigned in Jerusalem three months. And his mother's name was Nehushta, -the daughter of Elnathan of Jerusalem. - -24:9 And he did that which was evil in the sight of the LORD, -according to all that his father had done. - -24:10 At that time the servants of Nebuchadnezzar king of Babylon came -up against Jerusalem, and the city was besieged. - -24:11 And Nebuchadnezzar king of Babylon came against the city, and -his servants did besiege it. - -24:12 And Jehoiachin the king of Judah went out to the king of -Babylon, he, and his mother, and his servants, and his princes, and -his officers: and the king of Babylon took him in the eighth year of -his reign. - -24:13 And he carried out thence all the treasures of the house of the -LORD, and the treasures of the king's house, and cut in pieces all the -vessels of gold which Solomon king of Israel had made in the temple of -the LORD, as the LORD had said. - -24:14 And he carried away all Jerusalem, and all the princes, and all -the mighty men of valour, even ten thousand captives, and all the -craftsmen and smiths: none remained, save the poorest sort of the -people of the land. - -24:15 And he carried away Jehoiachin to Babylon, and the king's -mother, and the king's wives, and his officers, and the mighty of the -land, those carried he into captivity from Jerusalem to Babylon. - -24:16 And all the men of might, even seven thousand, and craftsmen and -smiths a thousand, all that were strong and apt for war, even them the -king of Babylon brought captive to Babylon. - -24:17 And the king of Babylon made Mattaniah his father's brother king -in his stead, and changed his name to Zedekiah. - -24:18 Zedekiah was twenty and one years old when he began to reign, -and he reigned eleven years in Jerusalem. And his mother's name was -Hamutal, the daughter of Jeremiah of Libnah. - -24:19 And he did that which was evil in the sight of the LORD, -according to all that Jehoiakim had done. - -24:20 For through the anger of the LORD it came to pass in Jerusalem -and Judah, until he had cast them out from his presence, that Zedekiah -rebelled against the king of Babylon. - -25:1 And it came to pass in the ninth year of his reign, in the tenth -month, in the tenth day of the month, that Nebuchadnezzar king of -Babylon came, he, and all his host, against Jerusalem, and pitched -against it; and they built forts against it round about. - -25:2 And the city was besieged unto the eleventh year of king -Zedekiah. - -25:3 And on the ninth day of the fourth month the famine prevailed in -the city, and there was no bread for the people of the land. - -25:4 And the city was broken up, and all the men of war fled by night -by the way of the gate between two walls, which is by the king's -garden: (now the Chaldees were against the city round about:) and the -king went the way toward the plain. - -25:5 And the army of the Chaldees pursued after the king, and overtook -him in the plains of Jericho: and all his army were scattered from -him. - -25:6 So they took the king, and brought him up to the king of Babylon -to Riblah; and they gave judgment upon him. - -25:7 And they slew the sons of Zedekiah before his eyes, and put out -the eyes of Zedekiah, and bound him with fetters of brass, and carried -him to Babylon. - -25:8 And in the fifth month, on the seventh day of the month, which is -the nineteenth year of king Nebuchadnezzar king of Babylon, came -Nebuzaradan, captain of the guard, a servant of the king of Babylon, -unto Jerusalem: 25:9 And he burnt the house of the LORD, and the -king's house, and all the houses of Jerusalem, and every great man's -house burnt he with fire. - -25:10 And all the army of the Chaldees, that were with the captain of -the guard, brake down the walls of Jerusalem round about. - -25:11 Now the rest of the people that were left in the city, and the -fugitives that fell away to the king of Babylon, with the remnant of -the multitude, did Nebuzaradan the captain of the guard carry away. - -25:12 But the captain of the guard left of the door of the poor of the -land to be vinedressers and husbandmen. - -25:13 And the pillars of brass that were in the house of the LORD, and -the bases, and the brasen sea that was in the house of the LORD, did -the Chaldees break in pieces, and carried the brass of them to -Babylon. - -25:14 And the pots, and the shovels, and the snuffers, and the spoons, -and all the vessels of brass wherewith they ministered, took they -away. - -25:15 And the firepans, and the bowls, and such things as were of -gold, in gold, and of silver, in silver, the captain of the guard took -away. - -25:16 The two pillars, one sea, and the bases which Solomon had made -for the house of the LORD; the brass of all these vessels was without -weight. - -25:17 The height of the one pillar was eighteen cubits, and the -chapiter upon it was brass: and the height of the chapiter three -cubits; and the wreathen work, and pomegranates upon the chapiter -round about, all of brass: and like unto these had the second pillar -with wreathen work. - -25:18 And the captain of the guard took Seraiah the chief priest, and -Zephaniah the second priest, and the three keepers of the door: 25:19 -And out of the city he took an officer that was set over the men of -war, and five men of them that were in the king's presence, which were -found in the city, and the principal scribe of the host, which -mustered the people of the land, and threescore men of the people of -the land that were found in the city: 25:20 And Nebuzaradan captain of -the guard took these, and brought them to the king of Babylon to -Riblah: 25:21 And the king of Babylon smote them, and slew them at -Riblah in the land of Hamath. So Judah was carried away out of their -land. - -25:22 And as for the people that remained in the land of Judah, whom -Nebuchadnezzar king of Babylon had left, even over them he made -Gedaliah the son of Ahikam, the son of Shaphan, ruler. - -25:23 And when all the captains of the armies, they and their men, -heard that the king of Babylon had made Gedaliah governor, there came -to Gedaliah to Mizpah, even Ishmael the son of Nethaniah, and Johanan -the son of Careah, and Seraiah the son of Tanhumeth the Netophathite, -and Jaazaniah the son of a Maachathite, they and their men. - -25:24 And Gedaliah sware to them, and to their men, and said unto -them, Fear not to be the servants of the Chaldees: dwell in the land, -and serve the king of Babylon; and it shall be well with you. - -25:25 But it came to pass in the seventh month, that Ishmael the son -of Nethaniah, the son of Elishama, of the seed royal, came, and ten -men with him, and smote Gedaliah, that he died, and the Jews and the -Chaldees that were with him at Mizpah. - -25:26 And all the people, both small and great, and the captains of -the armies, arose, and came to Egypt: for they were afraid of the -Chaldees. - -25:27 And it came to pass in the seven and thirtieth year of the -captivity of Jehoiachin king of Judah, in the twelfth month, on the -seven and twentieth day of the month, that Evilmerodach king of -Babylon in the year that he began to reign did lift up the head of -Jehoiachin king of Judah out of prison; 25:28 And he spake kindly to -him, and set his throne above the throne of the kings that were with -him in Babylon; 25:29 And changed his prison garments: and he did eat -bread continually before him all the days of his life. - -25:30 And his allowance was a continual allowance given him of the -king, a daily rate for every day, all the days of his life. - - - - -The First Book of the Chronicles - - -1:1 Adam, Sheth, Enosh, 1:2 Kenan, Mahalaleel, Jered, 1:3 Henoch, -Methuselah, Lamech, 1:4 Noah, Shem, Ham, and Japheth. - -1:5 The sons of Japheth; Gomer, and Magog, and Madai, and Javan, and -Tubal, and Meshech, and Tiras. - -1:6 And the sons of Gomer; Ashchenaz, and Riphath, and Togarmah. - -1:7 And the sons of Javan; Elishah, and Tarshish, Kittim, and Dodanim. - -1:8 The sons of Ham; Cush, and Mizraim, Put, and Canaan. - -1:9 And the sons of Cush; Seba, and Havilah, and Sabta, and Raamah, -and Sabtecha. And the sons of Raamah; Sheba, and Dedan. - -1:10 And Cush begat Nimrod: he began to be mighty upon the earth. - -1:11 And Mizraim begat Ludim, and Anamim, and Lehabim, and Naphtuhim, -1:12 And Pathrusim, and Casluhim, (of whom came the Philistines,) and -Caphthorim. - -1:13 And Canaan begat Zidon his firstborn, and Heth, 1:14 The Jebusite -also, and the Amorite, and the Girgashite, 1:15 And the Hivite, and -the Arkite, and the Sinite, 1:16 And the Arvadite, and the Zemarite, -and the Hamathite. - -1:17 The sons of Shem; Elam, and Asshur, and Arphaxad, and Lud, and -Aram, and Uz, and Hul, and Gether, and Meshech. - -1:18 And Arphaxad begat Shelah, and Shelah begat Eber. - -1:19 And unto Eber were born two sons: the name of the one was Peleg; -because in his days the earth was divided: and his brother's name was -Joktan. - -1:20 And Joktan begat Almodad, and Sheleph, and Hazarmaveth, and -Jerah, 1:21 Hadoram also, and Uzal, and Diklah, 1:22 And Ebal, and -Abimael, and Sheba, 1:23 And Ophir, and Havilah, and Jobab. All these -were the sons of Joktan. - -1:24 Shem, Arphaxad, Shelah, 1:25 Eber, Peleg, Reu, 1:26 Serug, Nahor, -Terah, 1:27 Abram; the same is Abraham. - -1:28 The sons of Abraham; Isaac, and Ishmael. - -1:29 These are their generations: The firstborn of Ishmael, Nebaioth; -then Kedar, and Adbeel, and Mibsam, 1:30 Mishma, and Dumah, Massa, -Hadad, and Tema, 1:31 Jetur, Naphish, and Kedemah. These are the sons -of Ishmael. - -1:32 Now the sons of Keturah, Abraham's concubine: she bare Zimran, -and Jokshan, and Medan, and Midian, and Ishbak, and Shuah. And the -sons of Jokshan; Sheba, and Dedan. - -1:33 And the sons of Midian; Ephah, and Epher, and Henoch, and Abida, -and Eldaah. All these are the sons of Keturah. - -1:34 And Abraham begat Isaac. The sons of Isaac; Esau and Israel. - -1:35 The sons of Esau; Eliphaz, Reuel, and Jeush, and Jaalam, and -Korah. - -1:36 The sons of Eliphaz; Teman, and Omar, Zephi, and Gatam, Kenaz, -and Timna, and Amalek. - -1:37 The sons of Reuel; Nahath, Zerah, Shammah, and Mizzah. - -1:38 And the sons of Seir; Lotan, and Shobal, and Zibeon, and Anah, -and Dishon, and Ezar, and Dishan. - -1:39 And the sons of Lotan; Hori, and Homam: and Timna was Lotan's -sister. - -1:40 The sons of Shobal; Alian, and Manahath, and Ebal, Shephi, and -Onam. - -and the sons of Zibeon; Aiah, and Anah. - -1:41 The sons of Anah; Dishon. And the sons of Dishon; Amram, and -Eshban, and Ithran, and Cheran. - -1:42 The sons of Ezer; Bilhan, and Zavan, and Jakan. The sons of -Dishan; Uz, and Aran. - -1:43 Now these are the kings that reigned in the land of Edom before -any king reigned over the children of Israel; Bela the son of Beor: -and the name of his city was Dinhabah. - -1:44 And when Bela was dead, Jobab the son of Zerah of Bozrah reigned -in his stead. - -1:45 And when Jobab was dead, Husham of the land of the Temanites -reigned in his stead. - -1:46 And when Husham was dead, Hadad the son of Bedad, which smote -Midian in the field of Moab, reigned in his stead: and the name of his -city was Avith. - -1:47 And when Hadad was dead, Samlah of Masrekah reigned in his stead. - -1:48 And when Samlah was dead, Shaul of Rehoboth by the river reigned -in his stead. - -1:49 And when Shaul was dead, Baalhanan the son of Achbor reigned in -his stead. - -1:50 And when Baalhanan was dead, Hadad reigned in his stead: and the -name of his city was Pai; and his wife's name was Mehetabel, the -daughter of Matred, the daughter of Mezahab. - -1:51 Hadad died also. And the dukes of Edom were; duke Timnah, duke -Aliah, duke Jetheth, 1:52 Duke Aholibamah, duke Elah, duke Pinon, 1:53 -Duke Kenaz, duke Teman, duke Mibzar, 1:54 Duke Magdiel, duke Iram. -These are the dukes of Edom. - -2:1 These are the sons of Israel; Reuben, Simeon, Levi, and Judah, -Issachar, and Zebulun, 2:2 Dan, Joseph, and Benjamin, Naphtali, Gad, -and Asher. - -2:3 The sons of Judah; Er, and Onan, and Shelah: which three were born -unto him of the daughter of Shua the Canaanitess. And Er, the -firstborn of Judah, was evil in the sight of the LORD; and he slew -him. - -2:4 And Tamar his daughter in law bore him Pharez and Zerah. All the -sons of Judah were five. - -2:5 The sons of Pharez; Hezron, and Hamul. - -2:6 And the sons of Zerah; Zimri, and Ethan, and Heman, and Calcol, -and Dara: five of them in all. - -2:7 And the sons of Carmi; Achar, the troubler of Israel, who -transgressed in the thing accursed. - -2:8 And the sons of Ethan; Azariah. - -2:9 The sons also of Hezron, that were born unto him; Jerahmeel, and -Ram, and Chelubai. - -2:10 And Ram begat Amminadab; and Amminadab begat Nahshon, prince of -the children of Judah; 2:11 And Nahshon begat Salma, and Salma begat -Boaz, 2:12 And Boaz begat Obed, and Obed begat Jesse, 2:13 And Jesse -begat his firstborn Eliab, and Abinadab the second, and Shimma the -third, 2:14 Nethaneel the fourth, Raddai the fifth, 2:15 Ozem the -sixth, David the seventh: 2:16 Whose sisters were Zeruiah, and -Abigail. And the sons of Zeruiah; Abishai, and Joab, and Asahel, -three. - -2:17 And Abigail bare Amasa: and the father of Amasa was Jether the -Ishmeelite. - -2:18 And Caleb the son of Hezron begat children of Azubah his wife, -and of Jerioth: her sons are these; Jesher, and Shobab, and Ardon. - -2:19 And when Azubah was dead, Caleb took unto him Ephrath, which bare -him Hur. - -2:20 And Hur begat Uri, and Uri begat Bezaleel. - -2:21 And afterward Hezron went in to the daughter of Machir the father -of Gilead, whom he married when he was threescore years old; and she -bare him Segub. - -2:22 And Segub begat Jair, who had three and twenty cities in the land -of Gilead. - -2:23 And he took Geshur, and Aram, with the towns of Jair, from them, -with Kenath, and the towns thereof, even threescore cities. All these -belonged to the sons of Machir the father of Gilead. - -2:24 And after that Hezron was dead in Calebephratah, then Abiah -Hezron's wife bare him Ashur the father of Tekoa. - -2:25 And the sons of Jerahmeel the firstborn of Hezron were, Ram the -firstborn, and Bunah, and Oren, and Ozem, and Ahijah. - -2:26 Jerahmeel had also another wife, whose name was Atarah; she was -the mother of Onam. - -2:27 And the sons of Ram the firstborn of Jerahmeel were, Maaz, and -Jamin, and Eker. - -2:28 And the sons of Onam were, Shammai, and Jada. And the sons of -Shammai; Nadab and Abishur. - -2:29 And the name of the wife of Abishur was Abihail, and she bare him -Ahban, and Molid. - -2:30 And the sons of Nadab; Seled, and Appaim: but Seled died without -children. - -2:31 And the sons of Appaim; Ishi. And the sons of Ishi; Sheshan. And -the children of Sheshan; Ahlai. - -2:32 And the sons of Jada the brother of Shammai; Jether, and -Jonathan: and Jether died without children. - -2:33 And the sons of Jonathan; Peleth, and Zaza. These were the sons -of Jerahmeel. - -2:34 Now Sheshan had no sons, but daughters. And Sheshan had a -servant, an Egyptian, whose name was Jarha. - -2:35 And Sheshan gave his daughter to Jarha his servant to wife; and -she bare him Attai. - -2:36 And Attai begat Nathan, and Nathan begat Zabad, 2:37 And Zabad -begat Ephlal, and Ephlal begat Obed, 2:38 And Obed begat Jehu, and -Jehu begat Azariah, 2:39 And Azariah begat Helez, and Helez begat -Eleasah, 2:40 And Eleasah begat Sisamai, and Sisamai begat Shallum, -2:41 And Shallum begat Jekamiah, and Jekamiah begat Elishama. - -2:42 Now the sons of Caleb the brother of Jerahmeel were, Mesha his -firstborn, which was the father of Ziph; and the sons of Mareshah the -father of Hebron. - -2:43 And the sons of Hebron; Korah, and Tappuah, and Rekem, and Shema. - -2:44 And Shema begat Raham, the father of Jorkoam: and Rekem begat -Shammai. - -2:45 And the son of Shammai was Maon: and Maon was the father of -Bethzur. - -2:46 And Ephah, Caleb's concubine, bare Haran, and Moza, and Gazez: -and Haran begat Gazez. - -2:47 And the sons of Jahdai; Regem, and Jotham, and Gesham, and Pelet, -and Ephah, and Shaaph. - -2:48 Maachah, Caleb's concubine, bare Sheber, and Tirhanah. - -2:49 She bare also Shaaph the father of Madmannah, Sheva the father of -Machbenah, and the father of Gibea: and the daughter of Caleb was -Achsa. - -2:50 These were the sons of Caleb the son of Hur, the firstborn of -Ephratah; Shobal the father of Kirjathjearim. - -2:51 Salma the father of Bethlehem, Hareph the father of Bethgader. - -2:52 And Shobal the father of Kirjathjearim had sons; Haroeh, and half -of the Manahethites. - -2:53 And the families of Kirjathjearim; the Ithrites, and the Puhites, -and the Shumathites, and the Mishraites; of them came the Zareathites, -and the Eshtaulites, 2:54 The sons of Salma; Bethlehem, and the -Netophathites, Ataroth, the house of Joab, and half of the -Manahethites, the Zorites. - -2:55 And the families of the scribes which dwelt at Jabez; the -Tirathites, the Shimeathites, and Suchathites. These are the Kenites -that came of Hemath, the father of the house of Rechab. - -3:1 Now these were the sons of David, which were born unto him in -Hebron; the firstborn Amnon, of Ahinoam the Jezreelitess; the second -Daniel, of Abigail the Carmelitess: 3:2 The third, Absalom the son of -Maachah the daughter of Talmai king of Geshur: the fourth, Adonijah -the son of Haggith: 3:3 The fifth, Shephatiah of Abital: the sixth, -Ithream by Eglah his wife. - -3:4 These six were born unto him in Hebron; and there he reigned seven -years and six months: and in Jerusalem he reigned thirty and three -years. - -3:5 And these were born unto him in Jerusalem; Shimea, and Shobab, and -Nathan, and Solomon, four, of Bathshua the daughter of Ammiel: 3:6 -Ibhar also, and Elishama, and Eliphelet, 3:7 And Nogah, and Nepheg, -and Japhia, 3:8 And Elishama, and Eliada, and Eliphelet, nine. - -3:9 These were all the sons of David, beside the sons of the -concubines, and Tamar their sister. - -3:10 And Solomon's son was Rehoboam, Abia his son, Asa his son, -Jehoshaphat his son, 3:11 Joram his son, Ahaziah his son, Joash his -son, 3:12 Amaziah his son, Azariah his son, Jotham his son, 3:13 Ahaz -his son, Hezekiah his son, Manasseh his son, 3:14 Amon his son, Josiah -his son. - -3:15 And the sons of Josiah were, the firstborn Johanan, the second -Jehoiakim, the third Zedekiah, the fourth Shallum. - -3:16 And the sons of Jehoiakim: Jeconiah his son, Zedekiah his son. - -3:17 And the sons of Jeconiah; Assir, Salathiel his son, 3:18 -Malchiram also, and Pedaiah, and Shenazar, Jecamiah, Hoshama, and -Nedabiah. - -3:19 And the sons of Pedaiah were, Zerubbabel, and Shimei: and the -sons of Zerubbabel; Meshullam, and Hananiah, and Shelomith their -sister: 3:20 And Hashubah, and Ohel, and Berechiah, and Hasadiah, -Jushabhesed, five. - -3:21 And the sons of Hananiah; Pelatiah, and Jesaiah: the sons of -Rephaiah, the sons of Arnan, the sons of Obadiah, the sons of -Shechaniah. - -3:22 And the sons of Shechaniah; Shemaiah: and the sons of Shemaiah; -Hattush, and Igeal, and Bariah, and Neariah, and Shaphat, six. - -3:23 And the sons of Neariah; Elioenai, and Hezekiah, and Azrikam, -three. - -3:24 And the sons of Elioenai were, Hodaiah, and Eliashib, and -Pelaiah, and Akkub, and Johanan, and Dalaiah, and Anani, seven. - -4:1 The sons of Judah; Pharez, Hezron, and Carmi, and Hur, and Shobal. - -4:2 And Reaiah the son of Shobal begat Jahath; and Jahath begat -Ahumai, and Lahad. These are the families of the Zorathites. - -4:3 And these were of the father of Etam; Jezreel, and Ishma, and -Idbash: and the name of their sister was Hazelelponi: 4:4 And Penuel -the father of Gedor, and Ezer the father of Hushah. These are the sons -of Hur, the firstborn of Ephratah, the father of Bethlehem. - -4:5 And Ashur the father of Tekoa had two wives, Helah and Naarah. - -4:6 And Naarah bare him Ahuzam, and Hepher, and Temeni, and -Haahashtari. - -These were the sons of Naarah. - -4:7 And the sons of Helah were, Zereth, and Jezoar, and Ethnan. - -4:8 And Coz begat Anub, and Zobebah, and the families of Aharhel the -son of Harum. - -4:9 And Jabez was more honourable than his brethren: and his mother -called his name Jabez, saying, Because I bare him with sorrow. - -4:10 And Jabez called on the God of Israel, saying, Oh that thou -wouldest bless me indeed, and enlarge my coast, and that thine hand -might be with me, and that thou wouldest keep me from evil, that it -may not grieve me! And God granted him that which he requested. - -4:11 And Chelub the brother of Shuah begat Mehir, which was the father -of Eshton. - -4:12 And Eshton begat Bethrapha, and Paseah, and Tehinnah the father -of Irnahash. These are the men of Rechah. - -4:13 And the sons of Kenaz; Othniel, and Seraiah: and the sons of -Othniel; Hathath. - -4:14 And Meonothai begat Ophrah: and Seraiah begat Joab, the father of -the valley of Charashim; for they were craftsmen. - -4:15 And the sons of Caleb the son of Jephunneh; Iru, Elah, and Naam: -and the sons of Elah, even Kenaz. - -4:16 And the sons of Jehaleleel; Ziph, and Ziphah, Tiria, and Asareel. - -4:17 And the sons of Ezra were, Jether, and Mered, and Epher, and -Jalon: and she bare Miriam, and Shammai, and Ishbah the father of -Eshtemoa. - -4:18 And his wife Jehudijah bare Jered the father of Gedor, and Heber -the father of Socho, and Jekuthiel the father of Zanoah. And these are -the sons of Bithiah the daughter of Pharaoh, which Mered took. - -4:19 And the sons of his wife Hodiah the sister of Naham, the father -of Keilah the Garmite, and Eshtemoa the Maachathite. - -4:20 And the sons of Shimon were, Amnon, and Rinnah, Benhanan, and -Tilon. - -And the sons of Ishi were, Zoheth, and Benzoheth. - -4:21 The sons of Shelah the son of Judah were, Er the father of Lecah, -and Laadah the father of Mareshah, and the families of the house of -them that wrought fine linen, of the house of Ashbea, 4:22 And Jokim, -and the men of Chozeba, and Joash, and Saraph, who had the dominion in -Moab, and Jashubilehem. And these are ancient things. - -4:23 These were the potters, and those that dwelt among plants and -hedges: there they dwelt with the king for his work. - -4:24 The sons of Simeon were, Nemuel, and Jamin, Jarib, Zerah, and -Shaul: 4:25 Shallum his son, Mibsam his son, Mishma his son. - -4:26 And the sons of Mishma; Hamuel his son, Zacchur his son, Shimei -his son. - -4:27 And Shimei had sixteen sons and six daughters: but his brethren -had not many children, neither did all their family multiply, like to -the children of Judah. - -4:28 And they dwelt at Beersheba, and Moladah, and Hazarshual, 4:29 -And at Bilhah, and at Ezem, and at Tolad, 4:30 And at Bethuel, and at -Hormah, and at Ziklag, 4:31 And at Bethmarcaboth, and Hazarsusim, and -at Bethbirei, and at Shaaraim. These were their cities unto the reign -of David. - -4:32 And their villages were, Etam, and Ain, Rimmon, and Tochen, and -Ashan, five cities: 4:33 And all their villages that were round about -the same cities, unto Baal. These were their habitations, and their -genealogy. - -4:34 And Meshobab, and Jamlech, and Joshah, the son of Amaziah, 4:35 -And Joel, and Jehu the son of Josibiah, the son of Seraiah, the son of -Asiel, 4:36 And Elioenai, and Jaakobah, and Jeshohaiah, and Asaiah, -and Adiel, and Jesimiel, and Benaiah, 4:37 And Ziza the son of Shiphi, -the son of Allon, the son of Jedaiah, the son of Shimri, the son of -Shemaiah; 4:38 These mentioned by their names were princes in their -families: and the house of their fathers increased greatly. - -4:39 And they went to the entrance of Gedor, even unto the east side -of the valley, to seek pasture for their flocks. - -4:40 And they found fat pasture and good, and the land was wide, and -quiet, and peaceable; for they of Ham had dwelt there of old. - -4:41 And these written by name came in the days of Hezekiah king of -Judah, and smote their tents, and the habitations that were found -there, and destroyed them utterly unto this day, and dwelt in their -rooms: because there was pasture there for their flocks. - -4:42 And some of them, even of the sons of Simeon, five hundred men, -went to mount Seir, having for their captains Pelatiah, and Neariah, -and Rephaiah, and Uzziel, the sons of Ishi. - -4:43 And they smote the rest of the Amalekites that were escaped, and -dwelt there unto this day. - -5:1 Now the sons of Reuben the firstborn of Israel, (for he was the -firstborn; but forasmuch as he defiled his father's bed, his -birthright was given unto the sons of Joseph the son of Israel: and -the genealogy is not to be reckoned after the birthright. - -5:2 For Judah prevailed above his brethren, and of him came the chief -ruler; but the birthright was Joseph's:) 5:3 The sons, I say, of -Reuben the firstborn of Israel were, Hanoch, and Pallu, Hezron, and -Carmi. - -5:4 The sons of Joel; Shemaiah his son, Gog his son, Shimei his son, -5:5 Micah his son, Reaia his son, Baal his son, 5:6 Beerah his son, -whom Tilgathpilneser king of Assyria carried away captive: he was -prince of the Reubenites. - -5:7 And his brethren by their families, when the genealogy of their -generations was reckoned, were the chief, Jeiel, and Zechariah, 5:8 -And Bela the son of Azaz, the son of Shema, the son of Joel, who dwelt -in Aroer, even unto Nebo and Baalmeon: 5:9 And eastward he inhabited -unto the entering in of the wilderness from the river Euphrates: -because their cattle were multiplied in the land of Gilead. - -5:10 And in the days of Saul they made war with the Hagarites, who -fell by their hand: and they dwelt in their tents throughout all the -east land of Gilead. - -5:11 And the children of Gad dwelt over against them, in the land of -Bashan unto Salcah: 5:12 Joel the chief, and Shapham the next, and -Jaanai, and Shaphat in Bashan. - -5:13 And their brethren of the house of their fathers were, Michael, -and Meshullam, and Sheba, and Jorai, and Jachan, and Zia, and Heber, -seven. - -5:14 These are the children of Abihail the son of Huri, the son of -Jaroah, the son of Gilead, the son of Michael, the son of Jeshishai, -the son of Jahdo, the son of Buz; 5:15 Ahi the son of Abdiel, the son -of Guni, chief of the house of their fathers. - -5:16 And they dwelt in Gilead in Bashan, and in her towns, and in all -the suburbs of Sharon, upon their borders. - -5:17 All these were reckoned by genealogies in the days of Jotham king -of Judah, and in the days of Jeroboam king of Israel. - -5:18 The sons of Reuben, and the Gadites, and half the tribe of -Manasseh, of valiant men, men able to bear buckler and sword, and to -shoot with bow, and skilful in war, were four and forty thousand seven -hundred and threescore, that went out to the war. - -5:19 And they made war with the Hagarites, with Jetur, and Nephish, -and Nodab. - -5:20 And they were helped against them, and the Hagarites were -delivered into their hand, and all that were with them: for they cried -to God in the battle, and he was intreated of them; because they put -their trust in him. - -5:21 And they took away their cattle; of their camels fifty thousand, -and of sheep two hundred and fifty thousand, and of asses two -thousand, and of men an hundred thousand. - -5:22 For there fell down many slain, because the war was of God. And -they dwelt in their steads until the captivity. - -5:23 And the children of the half tribe of Manasseh dwelt in the land: -they increased from Bashan unto Baalhermon and Senir, and unto mount -Hermon. - -5:24 And these were the heads of the house of their fathers, even -Epher, and Ishi, and Eliel, and Azriel, and Jeremiah, and Hodaviah, -and Jahdiel, mighty men of valour, famous men, and heads of the house -of their fathers. - -5:25 And they transgressed against the God of their fathers, and went -a whoring after the gods of the people of the land, whom God destroyed -before them. - -5:26 And the God of Israel stirred up the spirit of Pul king of -Assyria, and the spirit of Tilgathpilneser king of Assyria, and he -carried them away, even the Reubenites, and the Gadites, and the half -tribe of Manasseh, and brought them unto Halah, and Habor, and Hara, -and to the river Gozan, unto this day. - -6:1 The sons of Levi; Gershon, Kohath, and Merari. - -6:2 And the sons of Kohath; Amram, Izhar, and Hebron, and Uzziel. - -6:3 And the children of Amram; Aaron, and Moses, and Miriam. The sons -also of Aaron; Nadab, and Abihu, Eleazar, and Ithamar. - -6:4 Eleazar begat Phinehas, Phinehas begat Abishua, 6:5 And Abishua -begat Bukki, and Bukki begat Uzzi, 6:6 And Uzzi begat Zerahiah, and -Zerahiah begat Meraioth, 6:7 Meraioth begat Amariah, and Amariah begat -Ahitub, 6:8 And Ahitub begat Zadok, and Zadok begat Ahimaaz, 6:9 And -Ahimaaz begat Azariah, and Azariah begat Johanan, 6:10 And Johanan -begat Azariah, (he it is that executed the priest's office in the -temple that Solomon built in Jerusalem:) 6:11 And Azariah begat -Amariah, and Amariah begat Ahitub, 6:12 And Ahitub begat Zadok, and -Zadok begat Shallum, 6:13 And Shallum begat Hilkiah, and Hilkiah begat -Azariah, 6:14 And Azariah begat Seraiah, and Seraiah begat Jehozadak, -6:15 And Jehozadak went into captivity, when the LORD carried away -Judah and Jerusalem by the hand of Nebuchadnezzar. - -6:16 The sons of Levi; Gershom, Kohath, and Merari. - -6:17 And these be the names of the sons of Gershom; Libni, and Shimei. - -6:18 And the sons of Kohath were, Amram, and Izhar, and Hebron, and -Uzziel. - -6:19 The sons of Merari; Mahli, and Mushi. And these are the families -of the Levites according to their fathers. - -6:20 Of Gershom; Libni his son, Jahath his son, Zimmah his son, 6:21 -Joah his son, Iddo his son, Zerah his son, Jeaterai his son. - -6:22 The sons of Kohath; Amminadab his son, Korah his son, Assir his -son, 6:23 Elkanah his son, and Ebiasaph his son, and Assir his son, -6:24 Tahath his son, Uriel his son, Uzziah his son, and Shaul his son. - -6:25 And the sons of Elkanah; Amasai, and Ahimoth. - -6:26 As for Elkanah: the sons of Elkanah; Zophai his son, and Nahath -his son, 6:27 Eliab his son, Jeroham his son, Elkanah his son. - -6:28 And the sons of Samuel; the firstborn Vashni, and Abiah. - -6:29 The sons of Merari; Mahli, Libni his son, Shimei his son, Uzza -his son, 6:30 Shimea his son, Haggiah his son, Asaiah his son. - -6:31 And these are they whom David set over the service of song in the -house of the LORD, after that the ark had rest. - -6:32 And they ministered before the dwelling place of the tabernacle -of the congregation with singing, until Solomon had built the house of -the LORD in Jerusalem: and then they waited on their office according -to their order. - -6:33 And these are they that waited with their children. Of the sons -of the Kohathites: Heman a singer, the son of Joel, the son of -Shemuel, 6:34 The son of Elkanah, the son of Jeroham, the son of -Eliel, the son of Toah, 6:35 The son of Zuph, the son of Elkanah, the -son of Mahath, the son of Amasai, 6:36 The son of Elkanah, the son of -Joel, the son of Azariah, the son of Zephaniah, 6:37 The son of -Tahath, the son of Assir, the son of Ebiasaph, the son of Korah, 6:38 -The son of Izhar, the son of Kohath, the son of Levi, the son of -Israel. - -6:39 And his brother Asaph, who stood on his right hand, even Asaph -the son of Berachiah, the son of Shimea, 6:40 The son of Michael, the -son of Baaseiah, the son of Malchiah, 6:41 The son of Ethni, the son -of Zerah, the son of Adaiah, 6:42 The son of Ethan, the son of Zimmah, -the son of Shimei, 6:43 The son of Jahath, the son of Gershom, the son -of Levi. - -6:44 And their brethren the sons of Merari stood on the left hand: -Ethan the son of Kishi, the son of Abdi, the son of Malluch, 6:45 The -son of Hashabiah, the son of Amaziah, the son of Hilkiah, 6:46 The son -of Amzi, the son of Bani, the son of Shamer, 6:47 The son of Mahli, -the son of Mushi, the son of Merari, the son of Levi. - -6:48 Their brethren also the Levites were appointed unto all manner of -service of the tabernacle of the house of God. - -6:49 But Aaron and his sons offered upon the altar of the burnt -offering, and on the altar of incense, and were appointed for all the -work of the place most holy, and to make an atonement for Israel, -according to all that Moses the servant of God had commanded. - -6:50 And these are the sons of Aaron; Eleazar his son, Phinehas his -son, Abishua his son, 6:51 Bukki his son, Uzzi his son, Zerahiah his -son, 6:52 Meraioth his son, Amariah his son, Ahitub his son, 6:53 -Zadok his son, Ahimaaz his son. - -6:54 Now these are their dwelling places throughout their castles in -their coasts, of the sons of Aaron, of the families of the Kohathites: -for theirs was the lot. - -6:55 And they gave them Hebron in the land of Judah, and the suburbs -thereof round about it. - -6:56 But the fields of the city, and the villages thereof, they gave -to Caleb the son of Jephunneh. - -6:57 And to the sons of Aaron they gave the cities of Judah, namely, -Hebron, the city of refuge, and Libnah with her suburbs, and Jattir, -and Eshtemoa, with their suburbs, 6:58 And Hilen with her suburbs, -Debir with her suburbs, 6:59 And Ashan with her suburbs, and -Bethshemesh with her suburbs: 6:60 And out of the tribe of Benjamin; -Geba with her suburbs, and Alemeth with her suburbs, and Anathoth with -her suburbs. All their cities throughout their families were thirteen -cities. - -6:61 And unto the sons of Kohath, which were left of the family of -that tribe, were cities given out of the half tribe, namely, out of -the half tribe of Manasseh, by lot, ten cities. - -6:62 And to the sons of Gershom throughout their families out of the -tribe of Issachar, and out of the tribe of Asher, and out of the tribe -of Naphtali, and out of the tribe of Manasseh in Bashan, thirteen -cities. - -6:63 Unto the sons of Merari were given by lot, throughout their -families, out of the tribe of Reuben, and out of the tribe of Gad, and -out of the tribe of Zebulun, twelve cities. - -6:64 And the children of Israel gave to the Levites these cities with -their suburbs. - -6:65 And they gave by lot out of the tribe of the children of Judah, -and out of the tribe of the children of Simeon, and out of the tribe -of the children of Benjamin, these cities, which are called by their -names. - -6:66 And the residue of the families of the sons of Kohath had cities -of their coasts out of the tribe of Ephraim. - -6:67 And they gave unto them, of the cities of refuge, Shechem in -mount Ephraim with her suburbs; they gave also Gezer with her suburbs, -6:68 And Jokmeam with her suburbs, and Bethhoron with her suburbs, -6:69 And Aijalon with her suburbs, and Gathrimmon with her suburbs: -6:70 And out of the half tribe of Manasseh; Aner with her suburbs, and -Bileam with her suburbs, for the family of the remnant of the sons of -Kohath. - -6:71 Unto the sons of Gershom were given out of the family of the half -tribe of Manasseh, Golan in Bashan with her suburbs, and Ashtaroth -with her suburbs: 6:72 And out of the tribe of Issachar; Kedesh with -her suburbs, Daberath with her suburbs, 6:73 And Ramoth with her -suburbs, and Anem with her suburbs: 6:74 And out of the tribe of -Asher; Mashal with her suburbs, and Abdon with her suburbs, 6:75 And -Hukok with her suburbs, and Rehob with her suburbs: 6:76 And out of -the tribe of Naphtali; Kedesh in Galilee with her suburbs, and Hammon -with her suburbs, and Kirjathaim with her suburbs. - -6:77 Unto the rest of the children of Merari were given out of the -tribe of Zebulun, Rimmon with her suburbs, Tabor with her suburbs: -6:78 And on the other side Jordan by Jericho, on the east side of -Jordan, were given them out of the tribe of Reuben, Bezer in the -wilderness with her suburbs, and Jahzah with her suburbs, 6:79 -Kedemoth also with her suburbs, and Mephaath with her suburbs: 6:80 -And out of the tribe of Gad; Ramoth in Gilead with her suburbs, and -Mahanaim with her suburbs, 6:81 And Heshbon with her suburbs, and -Jazer with her suburbs. - -7:1 Now the sons of Issachar were, Tola, and Puah, Jashub, and -Shimrom, four. - -7:2 And the sons of Tola; Uzzi, and Rephaiah, and Jeriel, and Jahmai, -and Jibsam, and Shemuel, heads of their father's house, to wit, of -Tola: they were valiant men of might in their generations; whose -number was in the days of David two and twenty thousand and six -hundred. - -7:3 And the sons of Uzzi; Izrahiah: and the sons of Izrahiah; Michael, -and Obadiah, and Joel, Ishiah, five: all of them chief men. - -7:4 And with them, by their generations, after the house of their -fathers, were bands of soldiers for war, six and thirty thousand men: -for they had many wives and sons. - -7:5 And their brethren among all the families of Issachar were valiant -men of might, reckoned in all by their genealogies fourscore and seven -thousand. - -7:6 The sons of Benjamin; Bela, and Becher, and Jediael, three. - -7:7 And the sons of Bela; Ezbon, and Uzzi, and Uzziel, and Jerimoth, -and Iri, five; heads of the house of their fathers, mighty men of -valour; and were reckoned by their genealogies twenty and two thousand -and thirty and four. - -7:8 And the sons of Becher; Zemira, and Joash, and Eliezer, and -Elioenai, and Omri, and Jerimoth, and Abiah, and Anathoth, and -Alameth. All these are the sons of Becher. - -7:9 And the number of them, after their genealogy by their -generations, heads of the house of their fathers, mighty men of -valour, was twenty thousand and two hundred. - -7:10 The sons also of Jediael; Bilhan: and the sons of Bilhan; Jeush, -and Benjamin, and Ehud, and Chenaanah, and Zethan, and Tharshish, and -Ahishahar. - -7:11 All these the sons of Jediael, by the heads of their fathers, -mighty men of valour, were seventeen thousand and two hundred -soldiers, fit to go out for war and battle. - -7:12 Shuppim also, and Huppim, the children of Ir, and Hushim, the -sons of Aher. - -7:13 The sons of Naphtali; Jahziel, and Guni, and Jezer, and Shallum, -the sons of Bilhah. - -7:14 The sons of Manasseh; Ashriel, whom she bare: (but his concubine -the Aramitess bare Machir the father of Gilead: 7:15 And Machir took -to wife the sister of Huppim and Shuppim, whose sister's name was -Maachah;) and the name of the second was Zelophehad: and Zelophehad -had daughters. - -7:16 And Maachah the wife of Machir bare a son, and she called his -name Peresh; and the name of his brother was Sheresh; and his sons -were Ulam and Rakem. - -7:17 And the sons of Ulam; Bedan. These were the sons of Gilead, the -son of Machir, the son of Manasseh. - -7:18 And his sister Hammoleketh bare Ishod, and Abiezer, and Mahalah. - -7:19 And the sons of Shemidah were, Ahian, and Shechem, and Likhi, and -Aniam. - -7:20 And the sons of Ephraim; Shuthelah, and Bered his son, and Tahath -his son, and Eladah his son, and Tahath his son, 7:21 And Zabad his -son, and Shuthelah his son, and Ezer, and Elead, whom the men of Gath -that were born in that land slew, because they came down to take away -their cattle. - -7:22 And Ephraim their father mourned many days, and his brethren came -to comfort him. - -7:23 And when he went in to his wife, she conceived, and bare a son, -and he called his name Beriah, because it went evil with his house. - -7:24 (And his daughter was Sherah, who built Bethhoron the nether, and -the upper, and Uzzensherah.) 7:25 And Rephah was his son, also -Resheph, and Telah his son, and Tahan his son. - -7:26 Laadan his son, Ammihud his son, Elishama his son. - -7:27 Non his son, Jehoshuah his son. - -7:28 And their possessions and habitations were, Bethel and the towns -thereof, and eastward Naaran, and westward Gezer, with the towns -thereof; Shechem also and the towns thereof, unto Gaza and the towns -thereof: 7:29 And by the borders of the children of Manasseh, -Bethshean and her towns, Taanach and her towns, Megiddo and her towns, -Dor and her towns. In these dwelt the children of Joseph the son of -Israel. - -7:30 The sons of Asher; Imnah, and Isuah, and Ishuai, and Beriah, and -Serah their sister. - -7:31 And the sons of Beriah; Heber, and Malchiel, who is the father of -Birzavith. - -7:32 And Heber begat Japhlet, and Shomer, and Hotham, and Shua their -sister. - -7:33 And the sons of Japhlet; Pasach, and Bimhal, and Ashvath. These -are the children of Japhlet. - -7:34 And the sons of Shamer; Ahi, and Rohgah, Jehubbah, and Aram. - -7:35 And the sons of his brother Helem; Zophah, and Imna, and Shelesh, -and Amal. - -7:36 The sons of Zophah; Suah, and Harnepher, and Shual, and Beri, and -Imrah, 7:37 Bezer, and Hod, and Shamma, and Shilshah, and Ithran, and -Beera. - -7:38 And the sons of Jether; Jephunneh, and Pispah, and Ara. - -7:39 And the sons of Ulla; Arah, and Haniel, and Rezia. - -7:40 All these were the children of Asher, heads of their father's -house, choice and mighty men of valour, chief of the princes. And the -number throughout the genealogy of them that were apt to the war and -to battle was twenty and six thousand men. - -8:1 Now Benjamin begat Bela his firstborn, Ashbel the second, and -Aharah the third, 8:2 Nohah the fourth, and Rapha the fifth. - -8:3 And the sons of Bela were, Addar, and Gera, and Abihud, 8:4 And -Abishua, and Naaman, and Ahoah, 8:5 And Gera, and Shephuphan, and -Huram. - -8:6 And these are the sons of Ehud: these are the heads of the fathers -of the inhabitants of Geba, and they removed them to Manahath: 8:7 And -Naaman, and Ahiah, and Gera, he removed them, and begat Uzza, and -Ahihud. - -8:8 And Shaharaim begat children in the country of Moab, after he had -sent them away; Hushim and Baara were his wives. - -8:9 And he begat of Hodesh his wife, Jobab, and Zibia, and Mesha, and -Malcham, 8:10 And Jeuz, and Shachia, and Mirma. These were his sons, -heads of the fathers. - -8:11 And of Hushim he begat Abitub, and Elpaal. - -8:12 The sons of Elpaal; Eber, and Misham, and Shamed, who built Ono, -and Lod, with the towns thereof: 8:13 Beriah also, and Shema, who were -heads of the fathers of the inhabitants of Aijalon, who drove away the -inhabitants of Gath: 8:14 And Ahio, Shashak, and Jeremoth, 8:15 And -Zebadiah, and Arad, and Ader, 8:16 And Michael, and Ispah, and Joha, -the sons of Beriah; 8:17 And Zebadiah, and Meshullam, and Hezeki, and -Heber, 8:18 Ishmerai also, and Jezliah, and Jobab, the sons of Elpaal; -8:19 And Jakim, and Zichri, and Zabdi, 8:20 And Elienai, and Zilthai, -and Eliel, 8:21 And Adaiah, and Beraiah, and Shimrath, the sons of -Shimhi; 8:22 And Ishpan, and Heber, and Eliel, 8:23 And Abdon, and -Zichri, and Hanan, 8:24 And Hananiah, and Elam, and Antothijah, 8:25 -And Iphedeiah, and Penuel, the sons of Shashak; 8:26 And Shamsherai, -and Shehariah, and Athaliah, 8:27 And Jaresiah, and Eliah, and Zichri, -the sons of Jeroham. - -8:28 These were heads of the fathers, by their generations, chief men. - -These dwelt in Jerusalem. - -8:29 And at Gibeon dwelt the father of Gibeon; whose wife's name was -Maachah: 8:30 And his firstborn son Abdon, and Zur, and Kish, and -Baal, and Nadab, 8:31 And Gedor, and Ahio, and Zacher. - -8:32 And Mikloth begat Shimeah. And these also dwelt with their -brethren in Jerusalem, over against them. - -8:33 And Ner begat Kish, and Kish begat Saul, and Saul begat Jonathan, -and Malchishua, and Abinadab, and Eshbaal. - -8:34 And the son of Jonathan was Meribbaal; and Meribbaal begat Micah. - -8:35 And the sons of Micah were, Pithon, and Melech, and Tarea, and -Ahaz. - -8:36 And Ahaz begat Jehoadah; and Jehoadah begat Alemeth, and -Azmaveth, and Zimri; and Zimri begat Moza, 8:37 And Moza begat Binea: -Rapha was his son, Eleasah his son, Azel his son: 8:38 And Azel had -six sons, whose names are these, Azrikam, Bocheru, and Ishmael, and -Sheariah, and Obadiah, and Hanan. All these were the sons of Azel. - -8:39 And the sons of Eshek his brother were, Ulam his firstborn, -Jehush the second, and Eliphelet the third. - -8:40 And the sons of Ulam were mighty men of valour, archers, and had -many sons, and sons' sons, an hundred and fifty. All these are of the -sons of Benjamin. - -9:1 So all Israel were reckoned by genealogies; and, behold, they were -written in the book of the kings of Israel and Judah, who were carried -away to Babylon for their transgression. - -9:2 Now the first inhabitants that dwelt in their possessions in their -cities were, the Israelites, the priests, Levites, and the Nethinims. - -9:3 And in Jerusalem dwelt of the children of Judah, and of the -children of Benjamin, and of the children of Ephraim, and Manasseh; -9:4 Uthai the son of Ammihud, the son of Omri, the son of Imri, the -son of Bani, of the children of Pharez the son of Judah. - -9:5 And of the Shilonites; Asaiah the firstborn, and his sons. - -9:6 And of the sons of Zerah; Jeuel, and their brethren, six hundred -and ninety. - -9:7 And of the sons of Benjamin; Sallu the son of Meshullam, the son -of Hodaviah, the son of Hasenuah, 9:8 And Ibneiah the son of Jeroham, -and Elah the son of Uzzi, the son of Michri, and Meshullam the son of -Shephathiah, the son of Reuel, the son of Ibnijah; 9:9 And their -brethren, according to their generations, nine hundred and fifty and -six. All these men were chief of the fathers in the house of their -fathers. - -9:10 And of the priests; Jedaiah, and Jehoiarib, and Jachin, 9:11 And -Azariah the son of Hilkiah, the son of Meshullam, the son of Zadok, -the son of Meraioth, the son of Ahitub, the ruler of the house of God; -9:12 And Adaiah the son of Jeroham, the son of Pashur, the son of -Malchijah, and Maasiai the son of Adiel, the son of Jahzerah, the son -of Meshullam, the son of Meshillemith, the son of Immer; 9:13 And -their brethren, heads of the house of their fathers, a thousand and -seven hundred and threescore; very able men for the work of the -service of the house of God. - -9:14 And of the Levites; Shemaiah the son of Hasshub, the son of -Azrikam, the son of Hashabiah, of the sons of Merari; 9:15 And -Bakbakkar, Heresh, and Galal, and Mattaniah the son of Micah, the son -of Zichri, the son of Asaph; 9:16 And Obadiah the son of Shemaiah, the -son of Galal, the son of Jeduthun, and Berechiah the son of Asa, the -son of Elkanah, that dwelt in the villages of the Netophathites. - -9:17 And the porters were, Shallum, and Akkub, and Talmon, and Ahiman, -and their brethren: Shallum was the chief; 9:18 Who hitherto waited in -the king's gate eastward: they were porters in the companies of the -children of Levi. - -9:19 And Shallum the son of Kore, the son of Ebiasaph, the son of -Korah, and his brethren, of the house of his father, the Korahites, -were over the work of the service, keepers of the gates of the -tabernacle: and their fathers, being over the host of the LORD, were -keepers of the entry. - -9:20 And Phinehas the son of Eleazar was the ruler over them in time -past, and the LORD was with him. - -9:21 And Zechariah the son of Meshelemiah was porter of the door of -the tabernacle of the congregation. - -9:22 All these which were chosen to be porters in the gates were two -hundred and twelve. These were reckoned by their genealogy in their -villages, whom David and Samuel the seer did ordain in their set -office. - -9:23 So they and their children had the oversight of the gates of the -house of the LORD, namely, the house of the tabernacle, by wards. - -9:24 In four quarters were the porters, toward the east, west, north, -and south. - -9:25 And their brethren, which were in their villages, were to come -after seven days from time to time with them. - -9:26 For these Levites, the four chief porters, were in their set -office, and were over the chambers and treasuries of the house of God. - -9:27 And they lodged round about the house of God, because the charge -was upon them, and the opening thereof every morning pertained to -them. - -9:28 And certain of them had the charge of the ministering vessels, -that they should bring them in and out by tale. - -9:29 Some of them also were appointed to oversee the vessels, and all -the instruments of the sanctuary, and the fine flour, and the wine, -and the oil, and the frankincense, and the spices. - -9:30 And some of the sons of the priests made the ointment of the -spices. - -9:31 And Mattithiah, one of the Levites, who was the firstborn of -Shallum the Korahite, had the set office over the things that were -made in the pans. - -9:32 And other of their brethren, of the sons of the Kohathites, were -over the shewbread, to prepare it every sabbath. - -9:33 And these are the singers, chief of the fathers of the Levites, -who remaining in the chambers were free: for they were employed in -that work day and night. - -9:34 These chief fathers of the Levites were chief throughout their -generations; these dwelt at Jerusalem. - -9:35 And in Gibeon dwelt the father of Gibeon, Jehiel, whose wife's -name was Maachah: 9:36 And his firstborn son Abdon, then Zur, and -Kish, and Baal, and Ner, and Nadab. - -9:37 And Gedor, and Ahio, and Zechariah, and Mikloth. - -9:38 And Mikloth begat Shimeam. And they also dwelt with their -brethren at Jerusalem, over against their brethren. - -9:39 And Ner begat Kish; and Kish begat Saul; and Saul begat Jonathan, -and Malchishua, and Abinadab, and Eshbaal. - -9:40 And the son of Jonathan was Meribbaal: and Meribbaal begat Micah. - -9:41 And the sons of Micah were, Pithon, and Melech, and Tahrea, and -Ahaz. - -9:42 And Ahaz begat Jarah; and Jarah begat Alemeth, and Azmaveth, and -Zimri; and Zimri begat Moza; 9:43 And Moza begat Binea; and Rephaiah -his son, Eleasah his son, Azel his son. - -9:44 And Azel had six sons, whose names are these, Azrikam, Bocheru, -and Ishmael, and Sheariah, and Obadiah, and Hanan: these were the sons -of Azel. - -10:1 Now the Philistines fought against Israel; and the men of Israel -fled from before the Philistines, and fell down slain in mount Gilboa. - -10:2 And the Philistines followed hard after Saul, and after his sons; -and the Philistines slew Jonathan, and Abinadab, and Malchishua, the -sons of Saul. - -10:3 And the battle went sore against Saul, and the archers hit him, -and he was wounded of the archers. - -10:4 Then said Saul to his armourbearer, Draw thy sword, and thrust me -through therewith; lest these uncircumcised come and abuse me. But his -armourbearer would not; for he was sore afraid. So Saul took a sword, -and fell upon it. - -10:5 And when his armourbearer saw that Saul was dead, he fell -likewise on the sword, and died. - -10:6 So Saul died, and his three sons, and all his house died -together. - -10:7 And when all the men of Israel that were in the valley saw that -they fled, and that Saul and his sons were dead, then they forsook -their cities, and fled: and the Philistines came and dwelt in them. - -10:8 And it came to pass on the morrow, when the Philistines came to -strip the slain, that they found Saul and his sons fallen in mount -Gilboa. - -10:9 And when they had stripped him, they took his head, and his -armour, and sent into the land of the Philistines round about, to -carry tidings unto their idols, and to the people. - -10:10 And they put his armour in the house of their gods, and fastened -his head in the temple of Dagon. - -10:11 And when all Jabeshgilead heard all that the Philistines had -done to Saul, 10:12 They arose, all the valiant men, and took away the -body of Saul, and the bodies of his sons, and brought them to Jabesh, -and buried their bones under the oak in Jabesh, and fasted seven days. - -10:13 So Saul died for his transgression which he committed against -the LORD, even against the word of the LORD, which he kept not, and -also for asking counsel of one that had a familiar spirit, to enquire -of it; 10:14 And enquired not of the LORD: therefore he slew him, and -turned the kingdom unto David the son of Jesse. - -11:1 Then all Israel gathered themselves to David unto Hebron, saying, -Behold, we are thy bone and thy flesh. - -11:2 And moreover in time past, even when Saul was king, thou wast he -that leddest out and broughtest in Israel: and the LORD thy God said -unto thee, Thou shalt feed my people Israel, and thou shalt be ruler -over my people Israel. - -11:3 Therefore came all the elders of Israel to the king to Hebron; -and David made a covenant with them in Hebron before the LORD; and -they anointed David king over Israel, according to the word of the -LORD by Samuel. - -11:4 And David and all Israel went to Jerusalem, which is Jebus; where -the Jebusites were, the inhabitants of the land. - -11:5 And the inhabitants of Jebus said to David, Thou shalt not come -hither. Nevertheless David took the castle of Zion, which is the city -of David. - -11:6 And David said, Whosoever smiteth the Jebusites first shall be -chief and captain. So Joab the son of Zeruiah went first up, and was -chief. - -11:7 And David dwelt in the castle; therefore they called it the city -of David. - -11:8 And he built the city round about, even from Millo round about: -and Joab repaired the rest of the city. - -11:9 So David waxed greater and greater: for the LORD of hosts was -with him. - -11:10 These also are the chief of the mighty men whom David had, who -strengthened themselves with him in his kingdom, and with all Israel, -to make him king, according to the word of the LORD concerning Israel. - -11:11 And this is the number of the mighty men whom David had; -Jashobeam, an Hachmonite, the chief of the captains: he lifted up his -spear against three hundred slain by him at one time. - -11:12 And after him was Eleazar the son of Dodo, the Ahohite, who was -one of the three mighties. - -11:13 He was with David at Pasdammim, and there the Philistines were -gathered together to battle, where was a parcel of ground full of -barley; and the people fled from before the Philistines. - -11:14 And they set themselves in the midst of that parcel, and -delivered it, and slew the Philistines; and the LORD saved them by a -great deliverance. - -11:15 Now three of the thirty captains went down to the rock to David, -into the cave of Adullam; and the host of the Philistines encamped in -the valley of Rephaim. - -11:16 And David was then in the hold, and the Philistines' garrison -was then at Bethlehem. - -11:17 And David longed, and said, Oh that one would give me drink of -the water of the well of Bethlehem, that is at the gate! 11:18 And -the three brake through the host of the Philistines, and drew water -out of the well of Bethlehem, that was by the gate, and took it, and -brought it to David: but David would not drink of it, but poured it -out to the LORD. - -11:19 And said, My God forbid it me, that I should do this thing: -shall I drink the blood of these men that have put their lives in -jeopardy? for with the jeopardy of their lives they brought it. -Therefore he would not drink it. - -These things did these three mightiest. - -11:20 And Abishai the brother of Joab, he was chief of the three: for -lifting up his spear against three hundred, he slew them, and had a -name among the three. - -11:21 Of the three, he was more honourable than the two; for he was -their captain: howbeit he attained not to the first three. - -11:22 Benaiah the son of Jehoiada, the son of a valiant man of -Kabzeel, who had done many acts; he slew two lionlike men of Moab: -also he went down and slew a lion in a pit in a snowy day. - -11:23 And he slew an Egyptian, a man of great stature, five cubits -high; and in the Egyptian's hand was a spear like a weaver's beam; and -he went down to him with a staff, and plucked the spear out of the -Egyptian's hand, and slew him with his own spear. - -11:24 These things did Benaiah the son of Jehoiada, and had the name -among the three mighties. - -11:25 Behold, he was honourable among the thirty, but attained not to -the first three: and David set him over his guard. - -11:26 Also the valiant men of the armies were, Asahel the brother of -Joab, Elhanan the son of Dodo of Bethlehem, 11:27 Shammoth the -Harorite, Helez the Pelonite, 11:28 Ira the son of Ikkesh the Tekoite, -Abiezer the Antothite, 11:29 Sibbecai the Hushathite, Ilai the -Ahohite, 11:30 Maharai the Netophathite, Heled the son of Baanah the -Netophathite, 11:31 Ithai the son of Ribai of Gibeah, that pertained -to the children of Benjamin, Benaiah the Pirathonite, 11:32 Hurai of -the brooks of Gaash, Abiel the Arbathite, 11:33 Azmaveth the -Baharumite, Eliahba the Shaalbonite, 11:34 The sons of Hashem the -Gizonite, Jonathan the son of Shage the Hararite, 11:35 Ahiam the son -of Sacar the Hararite, Eliphal the son of Ur, 11:36 Hepher the -Mecherathite, Ahijah the Pelonite, 11:37 Hezro the Carmelite, Naarai -the son of Ezbai, 11:38 Joel the brother of Nathan, Mibhar the son of -Haggeri, 11:39 Zelek the Ammonite, Naharai the Berothite, the -armourbearer of Joab the son of Zeruiah, 11:40 Ira the Ithrite, Gareb -the Ithrite, 11:41 Uriah the Hittite, Zabad the son of Ahlai, 11:42 -Adina the son of Shiza the Reubenite, a captain of the Reubenites, and -thirty with him, 11:43 Hanan the son of Maachah, and Joshaphat the -Mithnite, 11:44 Uzzia the Ashterathite, Shama and Jehiel the sons of -Hothan the Aroerite, 11:45 Jediael the son of Shimri, and Joha his -brother, the Tizite, 11:46 Eliel the Mahavite, and Jeribai, and -Joshaviah, the sons of Elnaam, and Ithmah the Moabite, 11:47 Eliel, -and Obed, and Jasiel the Mesobaite. - -12:1 Now these are they that came to David to Ziklag, while he yet -kept himself close because of Saul the son of Kish: and they were -among the mighty men, helpers of the war. - -12:2 They were armed with bows, and could use both the right hand and -the left in hurling stones and shooting arrows out of a bow, even of -Saul's brethren of Benjamin. - -12:3 The chief was Ahiezer, then Joash, the sons of Shemaah the -Gibeathite; and Jeziel, and Pelet, the sons of Azmaveth; and Berachah, -and Jehu the Antothite. - -12:4 And Ismaiah the Gibeonite, a mighty man among the thirty, and -over the thirty; and Jeremiah, and Jahaziel, and Johanan, and Josabad -the Gederathite, 12:5 Eluzai, and Jerimoth, and Bealiah, and -Shemariah, and Shephatiah the Haruphite, 12:6 Elkanah, and Jesiah, and -Azareel, and Joezer, and Jashobeam, the Korhites, 12:7 And Joelah, and -Zebadiah, the sons of Jeroham of Gedor. - -12:8 And of the Gadites there separated themselves unto David into the -hold to the wilderness men of might, and men of war fit for the -battle, that could handle shield and buckler, whose faces were like -the faces of lions, and were as swift as the roes upon the mountains; -12:9 Ezer the first, Obadiah the second, Eliab the third, 12:10 -Mishmannah the fourth, Jeremiah the fifth, 12:11 Attai the sixth, -Eliel the seventh, 12:12 Johanan the eighth, Elzabad the ninth, 12:13 -Jeremiah the tenth, Machbanai the eleventh. - -12:14 These were of the sons of Gad, captains of the host: one of the -least was over an hundred, and the greatest over a thousand. - -12:15 These are they that went over Jordan in the first month, when it -had overflown all his banks; and they put to flight all them of the -valleys, both toward the east, and toward the west. - -12:16 And there came of the children of Benjamin and Judah to the hold -unto David. - -12:17 And David went out to meet them, and answered and said unto -them, If ye be come peaceably unto me to help me, mine heart shall be -knit unto you: but if ye be come to betray me to mine enemies, seeing -there is no wrong in mine hands, the God of our fathers look thereon, -and rebuke it. - -12:18 Then the spirit came upon Amasai, who was chief of the captains, -and he said, Thine are we, David, and on thy side, thou son of Jesse: -peace, peace be unto thee, and peace be to thine helpers; for thy God -helpeth thee. - -Then David received them, and made them captains of the band. - -12:19 And there fell some of Manasseh to David, when he came with the -Philistines against Saul to battle: but they helped them not: for the -lords of the Philistines upon advisement sent him away, saying, He -will fall to his master Saul to the jeopardy of our heads. - -12:20 As he went to Ziklag, there fell to him of Manasseh, Adnah, and -Jozabad, and Jediael, and Michael, and Jozabad, and Elihu, and -Zilthai, captains of the thousands that were of Manasseh. - -12:21 And they helped David against the band of the rovers: for they -were all mighty men of valour, and were captains in the host. - -12:22 For at that time day by day there came to David to help him, -until it was a great host, like the host of God. - -12:23 And these are the numbers of the bands that were ready armed to -the war, and came to David to Hebron, to turn the kingdom of Saul to -him, according to the word of the LORD. - -12:24 The children of Judah that bare shield and spear were six -thousand and eight hundred, ready armed to the war. - -12:25 Of the children of Simeon, mighty men of valour for the war, -seven thousand and one hundred. - -12:26 Of the children of Levi four thousand and six hundred. - -12:27 And Jehoiada was the leader of the Aaronites, and with him were -three thousand and seven hundred; 12:28 And Zadok, a young man mighty -of valour, and of his father's house twenty and two captains. - -12:29 And of the children of Benjamin, the kindred of Saul, three -thousand: for hitherto the greatest part of them had kept the ward of -the house of Saul. - -12:30 And of the children of Ephraim twenty thousand and eight -hundred, mighty men of valour, famous throughout the house of their -fathers. - -12:31 And of the half tribe of Manasseh eighteen thousand, which were -expressed by name, to come and make David king. - -12:32 And of the children of Issachar, which were men that had -understanding of the times, to know what Israel ought to do; the heads -of them were two hundred; and all their brethren were at their -commandment. - -12:33 Of Zebulun, such as went forth to battle, expert in war, with -all instruments of war, fifty thousand, which could keep rank: they -were not of double heart. - -12:34 And of Naphtali a thousand captains, and with them with shield -and spear thirty and seven thousand. - -12:35 And of the Danites expert in war twenty and eight thousand and -six hundred. - -12:36 And of Asher, such as went forth to battle, expert in war, forty -thousand. - -12:37 And on the other side of Jordan, of the Reubenites, and the -Gadites, and of the half tribe of Manasseh, with all manner of -instruments of war for the battle, an hundred and twenty thousand. - -12:38 All these men of war, that could keep rank, came with a perfect -heart to Hebron, to make David king over all Israel: and all the rest -also of Israel were of one heart to make David king. - -12:39 And there they were with David three days, eating and drinking: -for their brethren had prepared for them. - -12:40 Moreover they that were nigh them, even unto Issachar and -Zebulun and Naphtali, brought bread on asses, and on camels, and on -mules, and on oxen, and meat, meal, cakes of figs, and bunches of -raisins, and wine, and oil, and oxen, and sheep abundantly: for there -was joy in Israel. - -13:1 And David consulted with the captains of thousands and hundreds, -and with every leader. - -13:2 And David said unto all the congregation of Israel, If it seem -good unto you, and that it be of the LORD our God, let us send abroad -unto our brethren every where, that are left in all the land of -Israel, and with them also to the priests and Levites which are in -their cities and suburbs, that they may gather themselves unto us: -13:3 And let us bring again the ark of our God to us: for we enquired -not at it in the days of Saul. - -13:4 And all the congregation said that they would do so: for the -thing was right in the eyes of all the people. - -13:5 So David gathered all Israel together, from Shihor of Egypt even -unto the entering of Hemath, to bring the ark of God from -Kirjathjearim. - -13:6 And David went up, and all Israel, to Baalah, that is, to -Kirjathjearim, which belonged to Judah, to bring up thence the ark of -God the LORD, that dwelleth between the cherubims, whose name is -called on it. - -13:7 And they carried the ark of God in a new cart out of the house of -Abinadab: and Uzza and Ahio drave the cart. - -13:8 And David and all Israel played before God with all their might, -and with singing, and with harps, and with psalteries, and with -timbrels, and with cymbals, and with trumpets. - -13:9 And when they came unto the threshingfloor of Chidon, Uzza put -forth his hand to hold the ark; for the oxen stumbled. - -13:10 And the anger of the LORD was kindled against Uzza, and he smote -him, because he put his hand to the ark: and there he died before God. - -13:11 And David was displeased, because the LORD had made a breach -upon Uzza: wherefore that place is called Perezuzza to this day. - -13:12 And David was afraid of God that day, saying, How shall I bring -the ark of God home to me? 13:13 So David brought not the ark home to -himself to the city of David, but carried it aside into the house of -Obededom the Gittite. - -13:14 And the ark of God remained with the family of Obededom in his -house three months. And the LORD blessed the house of Obededom, and -all that he had. - -14:1 Now Hiram king of Tyre sent messengers to David, and timber of -cedars, with masons and carpenters, to build him an house. - -14:2 And David perceived that the LORD had confirmed him king over -Israel, for his kingdom was lifted up on high, because of his people -Israel. - -14:3 And David took more wives at Jerusalem: and David begat more sons -and daughters. - -14:4 Now these are the names of his children which he had in -Jerusalem; Shammua, and Shobab, Nathan, and Solomon, 14:5 And Ibhar, -and Elishua, and Elpalet, 14:6 And Nogah, and Nepheg, and Japhia, 14:7 -And Elishama, and Beeliada, and Eliphalet. - -14:8 And when the Philistines heard that David was anointed king over -all Israel, all the Philistines went up to seek David. And David heard -of it, and went out against them. - -14:9 And the Philistines came and spread themselves in the valley of -Rephaim. - -14:10 And David enquired of God, saying, Shall I go up against the -Philistines? And wilt thou deliver them into mine hand? And the LORD -said unto him, Go up; for I will deliver them into thine hand. - -14:11 So they came up to Baalperazim; and David smote them there. Then -David said, God hath broken in upon mine enemies by mine hand like the -breaking forth of waters: therefore they called the name of that place -Baalperazim. - -14:12 And when they had left their gods there, David gave a -commandment, and they were burned with fire. - -14:13 And the Philistines yet again spread themselves abroad in the -valley. - -14:14 Therefore David enquired again of God; and God said unto him, Go -not up after them; turn away from them, and come upon them over -against the mulberry trees. - -14:15 And it shall be, when thou shalt hear a sound of going in the -tops of the mulberry trees, that then thou shalt go out to battle: for -God is gone forth before thee to smite the host of the Philistines. - -14:16 David therefore did as God commanded him: and they smote the -host of the Philistines from Gibeon even to Gazer. - -14:17 And the fame of David went out into all lands; and the LORD -brought the fear of him upon all nations. - -15:1 And David made him houses in the city of David, and prepared a -place for the ark of God, and pitched for it a tent. - -15:2 Then David said, None ought to carry the ark of God but the -Levites: for them hath the LORD chosen to carry the ark of God, and to -minister unto him for ever. - -15:3 And David gathered all Israel together to Jerusalem, to bring up -the ark of the LORD unto his place, which he had prepared for it. - -15:4 And David assembled the children of Aaron, and the Levites: 15:5 -Of the sons of Kohath; Uriel the chief, and his brethren an hundred -and twenty: 15:6 Of the sons of Merari; Asaiah the chief, and his -brethren two hundred and twenty: 15:7 Of the sons of Gershom; Joel the -chief and his brethren an hundred and thirty: 15:8 Of the sons of -Elizaphan; Shemaiah the chief, and his brethren two hundred: 15:9 Of -the sons of Hebron; Eliel the chief, and his brethren fourscore: 15:10 -Of the sons of Uzziel; Amminadab the chief, and his brethren an -hundred and twelve. - -15:11 And David called for Zadok and Abiathar the priests, and for the -Levites, for Uriel, Asaiah, and Joel, Shemaiah, and Eliel, and -Amminadab, 15:12 And said unto them, Ye are the chief of the fathers -of the Levites: sanctify yourselves, both ye and your brethren, that -ye may bring up the ark of the LORD God of Israel unto the place that -I have prepared for it. - -15:13 For because ye did it not at the first, the LORD our God made a -breach upon us, for that we sought him not after the due order. - -15:14 So the priests and the Levites sanctified themselves to bring up -the ark of the LORD God of Israel. - -15:15 And the children of the Levites bare the ark of God upon their -shoulders with the staves thereon, as Moses commanded according to the -word of the LORD. - -15:16 And David spake to the chief of the Levites to appoint their -brethren to be the singers with instruments of musick, psalteries and -harps and cymbals, sounding, by lifting up the voice with joy. - -15:17 So the Levites appointed Heman the son of Joel; and of his -brethren, Asaph the son of Berechiah; and of the sons of Merari their -brethren, Ethan the son of Kushaiah; 15:18 And with them their -brethren of the second degree, Zechariah, Ben, and Jaaziel, and -Shemiramoth, and Jehiel, and Unni, Eliab, and Benaiah, and Maaseiah, -and Mattithiah, and Elipheleh, and Mikneiah, and Obededom, and Jeiel, -the porters. - -15:19 So the singers, Heman, Asaph, and Ethan, were appointed to sound -with cymbals of brass; 15:20 And Zechariah, and Aziel, and -Shemiramoth, and Jehiel, and Unni, and Eliab, and Maaseiah, and -Benaiah, with psalteries on Alamoth; 15:21 And Mattithiah, and -Elipheleh, and Mikneiah, and Obededom, and Jeiel, and Azaziah, with -harps on the Sheminith to excel. - -15:22 And Chenaniah, chief of the Levites, was for song: he instructed -about the song, because he was skilful. - -15:23 And Berechiah and Elkanah were doorkeepers for the ark. - -15:24 And Shebaniah, and Jehoshaphat, and Nethaneel, and Amasai, and -Zechariah, and Benaiah, and Eliezer, the priests, did blow with the -trumpets before the ark of God: and Obededom and Jehiah were -doorkeepers for the ark. - -15:25 So David, and the elders of Israel, and the captains over -thousands, went to bring up the ark of the covenant of the LORD out of -the house of Obededom with joy. - -15:26 And it came to pass, when God helped the Levites that bare the -ark of the covenant of the LORD, that they offered seven bullocks and -seven rams. - -15:27 And David was clothed with a robe of fine linen, and all the -Levites that bare the ark, and the singers, and Chenaniah the master -of the song with the singers: David also had upon him an ephod of -linen. - -15:28 Thus all Israel brought up the ark of the covenant of the LORD -with shouting, and with sound of the cornet, and with trumpets, and -with cymbals, making a noise with psalteries and harps. - -15:29 And it came to pass, as the ark of the covenant of the LORD came -to the city of David, that Michal, the daughter of Saul looking out at -a window saw king David dancing and playing: and she despised him in -her heart. - -16:1 So they brought the ark of God, and set it in the midst of the -tent that David had pitched for it: and they offered burnt sacrifices -and peace offerings before God. - -16:2 And when David had made an end of offering the burnt offerings -and the peace offerings, he blessed the people in the name of the -LORD. - -16:3 And he dealt to every one of Israel, both man and woman, to every -one a loaf of bread, and a good piece of flesh, and a flagon of wine. - -16:4 And he appointed certain of the Levites to minister before the -ark of the LORD, and to record, and to thank and praise the LORD God -of Israel: 16:5 Asaph the chief, and next to him Zechariah, Jeiel, and -Shemiramoth, and Jehiel, and Mattithiah, and Eliab, and Benaiah, and -Obededom: and Jeiel with psalteries and with harps; but Asaph made a -sound with cymbals; 16:6 Benaiah also and Jahaziel the priests with -trumpets continually before the ark of the covenant of God. - -16:7 Then on that day David delivered first this psalm to thank the -LORD into the hand of Asaph and his brethren. - -16:8 Give thanks unto the LORD, call upon his name, make known his -deeds among the people. - -16:9 Sing unto him, sing psalms unto him, talk ye of all his wondrous -works. - -16:10 Glory ye in his holy name: let the heart of them rejoice that -seek the LORD. - -16:11 Seek the LORD and his strength, seek his face continually. - -16:12 Remember his marvellous works that he hath done, his wonders, -and the judgments of his mouth; 16:13 O ye seed of Israel his servant, -ye children of Jacob, his chosen ones. - -16:14 He is the LORD our God; his judgments are in all the earth. - -16:15 Be ye mindful always of his covenant; the word which he -commanded to a thousand generations; 16:16 Even of the covenant which -he made with Abraham, and of his oath unto Isaac; 16:17 And hath -confirmed the same to Jacob for a law, and to Israel for an -everlasting covenant, 16:18 Saying, Unto thee will I give the land of -Canaan, the lot of your inheritance; 16:19 When ye were but few, even -a few, and strangers in it. - -16:20 And when they went from nation to nation, and from one kingdom -to another people; 16:21 He suffered no man to do them wrong: yea, he -reproved kings for their sakes, 16:22 Saying, Touch not mine anointed, -and do my prophets no harm. - -16:23 Sing unto the LORD, all the earth; shew forth from day to day -his salvation. - -16:24 Declare his glory among the heathen; his marvellous works among -all nations. - -16:25 For great is the LORD, and greatly to be praised: he also is to -be feared above all gods. - -16:26 For all the gods of the people are idols: but the LORD made the -heavens. - -16:27 Glory and honour are in his presence; strength and gladness are -in his place. - -16:28 Give unto the LORD, ye kindreds of the people, give unto the -LORD glory and strength. - -16:29 Give unto the LORD the glory due unto his name: bring an -offering, and come before him: worship the LORD in the beauty of -holiness. - -16:30 Fear before him, all the earth: the world also shall be stable, -that it be not moved. - -16:31 Let the heavens be glad, and let the earth rejoice: and let men -say among the nations, The LORD reigneth. - -16:32 Let the sea roar, and the fulness thereof: let the fields -rejoice, and all that is therein. - -16:33 Then shall the trees of the wood sing out at the presence of the -LORD, because he cometh to judge the earth. - -16:34 O give thanks unto the LORD; for he is good; for his mercy -endureth for ever. - -16:35 And say ye, Save us, O God of our salvation, and gather us -together, and deliver us from the heathen, that we may give thanks to -thy holy name, and glory in thy praise. - -16:36 Blessed be the LORD God of Israel for ever and ever. And all the -people said, Amen, and praised the LORD. - -16:37 So he left there before the ark of the covenant of the LORD -Asaph and his brethren, to minister before the ark continually, as -every day's work required: 16:38 And Obededom with their brethren, -threescore and eight; Obededom also the son of Jeduthun and Hosah to -be porters: 16:39 And Zadok the priest, and his brethren the priests, -before the tabernacle of the LORD in the high place that was at -Gibeon, 16:40 To offer burnt offerings unto the LORD upon the altar of -the burnt offering continually morning and evening, and to do -according to all that is written in the law of the LORD, which he -commanded Israel; 16:41 And with them Heman and Jeduthun, and the rest -that were chosen, who were expressed by name, to give thanks to the -LORD, because his mercy endureth for ever; 16:42 And with them Heman -and Jeduthun with trumpets and cymbals for those that should make a -sound, and with musical instruments of God. And the sons of Jeduthun -were porters. - -16:43 And all the people departed every man to his house: and David -returned to bless his house. - -17:1 Now it came to pass, as David sat in his house, that David said -to Nathan the prophet, Lo, I dwell in an house of cedars, but the ark -of the covenant of the LORD remaineth under curtains. - -17:2 Then Nathan said unto David, Do all that is in thine heart; for -God is with thee. - -17:3 And it came to pass the same night, that the word of God came to -Nathan, saying, 17:4 Go and tell David my servant, Thus saith the -LORD, Thou shalt not build me an house to dwell in: 17:5 For I have -not dwelt in an house since the day that I brought up Israel unto this -day; but have gone from tent to tent, and from one tabernacle to -another. - -17:6 Wheresoever I have walked with all Israel, spake I a word to any -of the judges of Israel, whom I commanded to feed my people, saying, -Why have ye not built me an house of cedars? 17:7 Now therefore thus -shalt thou say unto my servant David, Thus saith the LORD of hosts, I -took thee from the sheepcote, even from following the sheep, that thou -shouldest be ruler over my people Israel: 17:8 And I have been with -thee whithersoever thou hast walked, and have cut off all thine -enemies from before thee, and have made thee a name like the name of -the great men that are in the earth. - -17:9 Also I will ordain a place for my people Israel, and will plant -them, and they shall dwell in their place, and shall be moved no more; -neither shall the children of wickedness waste them any more, as at -the beginning, 17:10 And since the time that I commanded judges to be -over my people Israel. Moreover I will subdue all thine enemies. -Furthermore I tell thee that the LORD will build thee an house. - -17:11 And it shall come to pass, when thy days be expired that thou -must go to be with thy fathers, that I will raise up thy seed after -thee, which shall be of thy sons; and I will establish his kingdom. - -17:12 He shall build me an house, and I will stablish his throne for -ever. - -17:13 I will be his father, and he shall be my son: and I will not -take my mercy away from him, as I took it from him that was before -thee: 17:14 But I will settle him in mine house and in my kingdom for -ever: and his throne shall be established for evermore. - -17:15 According to all these words, and according to all this vision, -so did Nathan speak unto David. - -17:16 And David the king came and sat before the LORD, and said, Who -am I, O LORD God, and what is mine house, that thou hast brought me -hitherto? 17:17 And yet this was a small thing in thine eyes, O God; -for thou hast also spoken of thy servant's house for a great while to -come, and hast regarded me according to the estate of a man of high -degree, O LORD God. - -17:18 What can David speak more to thee for the honour of thy servant? -for thou knowest thy servant. - -17:19 O LORD, for thy servant's sake, and according to thine own -heart, hast thou done all this greatness, in making known all these -great things. - -17:20 O LORD, there is none like thee, neither is there any God beside -thee, according to all that we have heard with our ears. - -17:21 And what one nation in the earth is like thy people Israel, whom -God went to redeem to be his own people, to make thee a name of -greatness and terribleness, by driving out nations from before thy -people whom thou hast redeemed out of Egypt? 17:22 For thy people -Israel didst thou make thine own people for ever; and thou, LORD, -becamest their God. - -17:23 Therefore now, LORD, let the thing that thou hast spoken -concerning thy servant and concerning his house be established for -ever, and do as thou hast said. - -17:24 Let it even be established, that thy name may be magnified for -ever, saying, The LORD of hosts is the God of Israel, even a God to -Israel: and let the house of David thy servant be established before -thee. - -17:25 For thou, O my God, hast told thy servant that thou wilt build -him an house: therefore thy servant hath found in his heart to pray -before thee. - -17:26 And now, LORD, thou art God, and hast promised this goodness -unto thy servant: 17:27 Now therefore let it please thee to bless the -house of thy servant, that it may be before thee for ever: for thou -blessest, O LORD, and it shall be blessed for ever. - -18:1 Now after this it came to pass, that David smote the Philistines, -and subdued them, and took Gath and her towns out of the hand of the -Philistines. - -18:2 And he smote Moab; and the Moabites became David's servants, and -brought gifts. - -18:3 And David smote Hadarezer king of Zobah unto Hamath, as he went -to stablish his dominion by the river Euphrates. - -18:4 And David took from him a thousand chariots, and seven thousand -horsemen, and twenty thousand footmen: David also houghed all the -chariot horses, but reserved of them an hundred chariots. - -18:5 And when the Syrians of Damascus came to help Hadarezer king of -Zobah, David slew of the Syrians two and twenty thousand men. - -18:6 Then David put garrisons in Syriadamascus; and the Syrians became -David's servants, and brought gifts. Thus the LORD preserved David -whithersoever he went. - -18:7 And David took the shields of gold that were on the servants of -Hadarezer, and brought them to Jerusalem. - -18:8 Likewise from Tibhath, and from Chun, cities of Hadarezer, -brought David very much brass, wherewith Solomon made the brasen sea, -and the pillars, and the vessels of brass. - -18:9 Now when Tou king of Hamath heard how David had smitten all the -host of Hadarezer king of Zobah; 18:10 He sent Hadoram his son to king -David, to enquire of his welfare, and to congratulate him, because he -had fought against Hadarezer, and smitten him; (for Hadarezer had war -with Tou;) and with him all manner of vessels of gold and silver and -brass. - -18:11 Them also king David dedicated unto the LORD, with the silver -and the gold that he brought from all these nations; from Edom, and -from Moab, and from the children of Ammon, and from the Philistines, -and from Amalek. - -18:12 Moreover Abishai the son of Zeruiah slew of the Edomites in the -valley of salt eighteen thousand. - -18:13 And he put garrisons in Edom; and all the Edomites became -David's servants. Thus the LORD preserved David whithersoever he went. - -18:14 So David reigned over all Israel, and executed judgment and -justice among all his people. - -18:15 And Joab the son of Zeruiah was over the host; and Jehoshaphat -the son of Ahilud, recorder. - -18:16 And Zadok the son of Ahitub, and Abimelech the son of Abiathar, -were the priests; and Shavsha was scribe; 18:17 And Benaiah the son of -Jehoiada was over the Cherethites and the Pelethites; and the sons of -David were chief about the king. - -19:1 Now it came to pass after this, that Nahash the king of the -children of Ammon died, and his son reigned in his stead. - -19:2 And David said, I will shew kindness unto Hanun the son of -Nahash, because his father shewed kindness to me. And David sent -messengers to comfort him concerning his father. So the servants of -David came into the land of the children of Ammon to Hanun, to comfort -him. - -19:3 But the princes of the children of Ammon said to Hanun, Thinkest -thou that David doth honour thy father, that he hath sent comforters -unto thee? are not his servants come unto thee for to search, and to -overthrow, and to spy out the land? 19:4 Wherefore Hanun took David's -servants, and shaved them, and cut off their garments in the midst -hard by their buttocks, and sent them away. - -19:5 Then there went certain, and told David how the men were served. -And he sent to meet them: for the men were greatly ashamed. And the -king said, Tarry at Jericho until your beards be grown, and then -return. - -19:6 And when the children of Ammon saw that they had made themselves -odious to David, Hanun and the children of Ammon sent a thousand -talents of silver to hire them chariots and horsemen out of -Mesopotamia, and out of Syriamaachah, and out of Zobah. - -19:7 So they hired thirty and two thousand chariots, and the king of -Maachah and his people; who came and pitched before Medeba. And the -children of Ammon gathered themselves together from their cities, and -came to battle. - -19:8 And when David heard of it, he sent Joab, and all the host of the -mighty men. - -19:9 And the children of Ammon came out, and put the battle in array -before the gate of the city: and the kings that were come were by -themselves in the field. - -19:10 Now when Joab saw that the battle was set against him before and -behind, he chose out of all the choice of Israel, and put them in -array against the Syrians. - -19:11 And the rest of the people he delivered unto the hand of Abishai -his brother, and they set themselves in array against the children of -Ammon. - -19:12 And he said, If the Syrians be too strong for me, then thou -shalt help me: but if the children of Ammon be too strong for thee, -then I will help thee. - -19:13 Be of good courage, and let us behave ourselves valiantly for -our people, and for the cities of our God: and let the LORD do that -which is good in his sight. - -19:14 So Joab and the people that were with him drew nigh before the -Syrians unto the battle; and they fled before him. - -19:15 And when the children of Ammon saw that the Syrians were fled, -they likewise fled before Abishai his brother, and entered into the -city. Then Joab came to Jerusalem. - -19:16 And when the Syrians saw that they were put to the worse before -Israel, they sent messengers, and drew forth the Syrians that were -beyond the river: and Shophach the captain of the host of Hadarezer -went before them. - -19:17 And it was told David; and he gathered all Israel, and passed -over Jordan, and came upon them, and set the battle in array against -them. So when David had put the battle in array against the Syrians, -they fought with him. - -19:18 But the Syrians fled before Israel; and David slew of the -Syrians seven thousand men which fought in chariots, and forty -thousand footmen, and killed Shophach the captain of the host. - -19:19 And when the servants of Hadarezer saw that they were put to the -worse before Israel, they made peace with David, and became his -servants: neither would the Syrians help the children of Ammon any -more. - -20:1 And it came to pass, that after the year was expired, at the time -that kings go out to battle, Joab led forth the power of the army, and -wasted the country of the children of Ammon, and came and besieged -Rabbah. But David tarried at Jerusalem. And Joab smote Rabbah, and -destroyed it. - -20:2 And David took the crown of their king from off his head, and -found it to weigh a talent of gold, and there were precious stones in -it; and it was set upon David's head: and he brought also exceeding -much spoil out of the city. - -20:3 And he brought out the people that were in it, and cut them with -saws, and with harrows of iron, and with axes. Even so dealt David -with all the cities of the children of Ammon. And David and all the -people returned to Jerusalem. - -20:4 And it came to pass after this, that there arose war at Gezer -with the Philistines; at which time Sibbechai the Hushathite slew -Sippai, that was of the children of the giant: and they were subdued. - -20:5 And there was war again with the Philistines; and Elhanan the son -of Jair slew Lahmi the brother of Goliath the Gittite, whose spear -staff was like a weaver's beam. - -20:6 And yet again there was war at Gath, where was a man of great -stature, whose fingers and toes were four and twenty, six on each -hand, and six on each foot and he also was the son of the giant. - -20:7 But when he defied Israel, Jonathan the son of Shimea David's -brother slew him. - -20:8 These were born unto the giant in Gath; and they fell by the hand -of David, and by the hand of his servants. - -21:1 And Satan stood up against Israel, and provoked David to number -Israel. - -21:2 And David said to Joab and to the rulers of the people, Go, -number Israel from Beersheba even to Dan; and bring the number of them -to me, that I may know it. - -21:3 And Joab answered, The LORD make his people an hundred times so -many more as they be: but, my lord the king, are they not all my -lord's servants? why then doth my lord require this thing? why will -he be a cause of trespass to Israel? 21:4 Nevertheless the king's -word prevailed against Joab. Wherefore Joab departed, and went -throughout all Israel, and came to Jerusalem. - -21:5 And Joab gave the sum of the number of the people unto David. And -all they of Israel were a thousand thousand and an hundred thousand -men that drew sword: and Judah was four hundred threescore and ten -thousand men that drew sword. - -21:6 But Levi and Benjamin counted he not among them: for the king's -word was abominable to Joab. - -21:7 And God was displeased with this thing; therefore he smote -Israel. - -21:8 And David said unto God, I have sinned greatly, because I have -done this thing: but now, I beseech thee, do away the iniquity of thy -servant; for I have done very foolishly. - -21:9 And the LORD spake unto Gad, David's seer, saying, 21:10 Go and -tell David, saying, Thus saith the LORD, I offer thee three things: -choose thee one of them, that I may do it unto thee. - -21:11 So Gad came to David, and said unto him, Thus saith the LORD, -Choose thee 21:12 Either three years' famine; or three months to be -destroyed before thy foes, while that the sword of thine enemies -overtaketh thee; or else three days the sword of the LORD, even the -pestilence, in the land, and the angel of the LORD destroying -throughout all the coasts of Israel. Now therefore advise thyself what -word I shall bring again to him that sent me. - -21:13 And David said unto Gad, I am in a great strait: let me fall now -into the hand of the LORD; for very great are his mercies: but let me -not fall into the hand of man. - -21:14 So the LORD sent pestilence upon Israel: and there fell of -Israel seventy thousand men. - -21:15 And God sent an angel unto Jerusalem to destroy it: and as he -was destroying, the LORD beheld, and he repented him of the evil, and -said to the angel that destroyed, It is enough, stay now thine hand. -And the angel of the LORD stood by the threshingfloor of Ornan the -Jebusite. - -21:16 And David lifted up his eyes, and saw the angel of the LORD -stand between the earth and the heaven, having a drawn sword in his -hand stretched out over Jerusalem. Then David and the elders of -Israel, who were clothed in sackcloth, fell upon their faces. - -21:17 And David said unto God, Is it not I that commanded the people -to be numbered? even I it is that have sinned and done evil indeed; -but as for these sheep, what have they done? let thine hand, I pray -thee, O LORD my God, be on me, and on my father's house; but not on -thy people, that they should be plagued. - -21:18 Then the angel of the LORD commanded Gad to say to David, that -David should go up, and set up an altar unto the LORD in the -threshingfloor of Ornan the Jebusite. - -21:19 And David went up at the saying of Gad, which he spake in the -name of the LORD. - -21:20 And Ornan turned back, and saw the angel; and his four sons with -him hid themselves. Now Ornan was threshing wheat. - -21:21 And as David came to Ornan, Ornan looked and saw David, and went -out of the threshingfloor, and bowed himself to David with his face to -the ground. - -21:22 Then David said to Ornan, Grant me the place of this -threshingfloor, that I may build an altar therein unto the LORD: thou -shalt grant it me for the full price: that the plague may be stayed -from the people. - -21:23 And Ornan said unto David, Take it to thee, and let my lord the -king do that which is good in his eyes: lo, I give thee the oxen also -for burnt offerings, and the threshing instruments for wood, and the -wheat for the meat offering; I give it all. - -21:24 And king David said to Ornan, Nay; but I will verily buy it for -the full price: for I will not take that which is thine for the LORD, -nor offer burnt offerings without cost. - -21:25 So David gave to Ornan for the place six hundred shekels of gold -by weight. - -21:26 And David built there an altar unto the LORD, and offered burnt -offerings and peace offerings, and called upon the LORD; and he -answered him from heaven by fire upon the altar of burnt offering. - -21:27 And the LORD commanded the angel; and he put up his sword again -into the sheath thereof. - -21:28 At that time when David saw that the LORD had answered him in -the threshingfloor of Ornan the Jebusite, then he sacrificed there. - -21:29 For the tabernacle of the LORD, which Moses made in the -wilderness, and the altar of the burnt offering, were at that season -in the high place at Gibeon. - -21:30 But David could not go before it to enquire of God: for he was -afraid because of the sword of the angel of the LORD. - -22:1 Then David said, This is the house of the LORD God, and this is -the altar of the burnt offering for Israel. - -22:2 And David commanded to gather together the strangers that were in -the land of Israel; and he set masons to hew wrought stones to build -the house of God. - -22:3 And David prepared iron in abundance for the nails for the doors -of the gates, and for the joinings; and brass in abundance without -weight; 22:4 Also cedar trees in abundance: for the Zidonians and they -of Tyre brought much cedar wood to David. - -22:5 And David said, Solomon my son is young and tender, and the house -that is to be builded for the LORD must be exceeding magnifical, of -fame and of glory throughout all countries: I will therefore now make -preparation for it. So David prepared abundantly before his death. - -22:6 Then he called for Solomon his son, and charged him to build an -house for the LORD God of Israel. - -22:7 And David said to Solomon, My son, as for me, it was in my mind -to build an house unto the name of the LORD my God: 22:8 But the word -of the LORD came to me, saying, Thou hast shed blood abundantly, and -hast made great wars: thou shalt not build an house unto my name, -because thou hast shed much blood upon the earth in my sight. - -22:9 Behold, a son shall be born to thee, who shall be a man of rest; -and I will give him rest from all his enemies round about: for his -name shall be Solomon, and I will give peace and quietness unto Israel -in his days. - -22:10 He shall build an house for my name; and he shall be my son, and -I will be his father; and I will establish the throne of his kingdom -over Israel for ever. - -22:11 Now, my son, the LORD be with thee; and prosper thou, and build -the house of the LORD thy God, as he hath said of thee. - -22:12 Only the LORD give thee wisdom and understanding, and give thee -charge concerning Israel, that thou mayest keep the law of the LORD -thy God. - -22:13 Then shalt thou prosper, if thou takest heed to fulfil the -statutes and judgments which the LORD charged Moses with concerning -Israel: be strong, and of good courage; dread not, nor be dismayed. - -22:14 Now, behold, in my trouble I have prepared for the house of the -LORD an hundred thousand talents of gold, and a thousand thousand -talents of silver; and of brass and iron without weight; for it is in -abundance: timber also and stone have I prepared; and thou mayest add -thereto. - -22:15 Moreover there are workmen with thee in abundance, hewers and -workers of stone and timber, and all manner of cunning men for every -manner of work. - -22:16 Of the gold, the silver, and the brass, and the iron, there is -no number. Arise therefore, and be doing, and the LORD be with thee. - -22:17 David also commanded all the princes of Israel to help Solomon -his son, saying, 22:18 Is not the LORD your God with you? and hath he -not given you rest on every side? for he hath given the inhabitants of -the land into mine hand; and the land is subdued before the LORD, and -before his people. - -22:19 Now set your heart and your soul to seek the LORD your God; -arise therefore, and build ye the sanctuary of the LORD God, to bring -the ark of the covenant of the LORD, and the holy vessels of God, into -the house that is to be built to the name of the LORD. - -23:1 So when David was old and full of days, he made Solomon his son -king over Israel. - -23:2 And he gathered together all the princes of Israel, with the -priests and the Levites. - -23:3 Now the Levites were numbered from the age of thirty years and -upward: and their number by their polls, man by man, was thirty and -eight thousand. - -23:4 Of which, twenty and four thousand were to set forward the work -of the house of the LORD; and six thousand were officers and judges: -23:5 Moreover four thousand were porters; and four thousand praised -the LORD with the instruments which I made, said David, to praise -therewith. - -23:6 And David divided them into courses among the sons of Levi, -namely, Gershon, Kohath, and Merari. - -23:7 Of the Gershonites were, Laadan, and Shimei. - -23:8 The sons of Laadan; the chief was Jehiel, and Zetham, and Joel, -three. - -23:9 The sons of Shimei; Shelomith, and Haziel, and Haran, three. -These were the chief of the fathers of Laadan. - -23:10 And the sons of Shimei were, Jahath, Zina, and Jeush, and -Beriah. - -These four were the sons of Shimei. - -23:11 And Jahath was the chief, and Zizah the second: but Jeush and -Beriah had not many sons; therefore they were in one reckoning, -according to their father's house. - -23:12 The sons of Kohath; Amram, Izhar, Hebron, and Uzziel, four. - -23:13 The sons of Amram; Aaron and Moses: and Aaron was separated, -that he should sanctify the most holy things, he and his sons for -ever, to burn incense before the LORD, to minister unto him, and to -bless in his name for ever. - -23:14 Now concerning Moses the man of God, his sons were named of the -tribe of Levi. - -23:15 The sons of Moses were, Gershom, and Eliezer. - -23:16 Of the sons of Gershom, Shebuel was the chief. - -23:17 And the sons of Eliezer were, Rehabiah the chief. And Eliezer -had none other sons; but the sons of Rehabiah were very many. - -23:18 Of the sons of Izhar; Shelomith the chief. - -23:19 Of the sons of Hebron; Jeriah the first, Amariah the second, -Jahaziel the third, and Jekameam the fourth. - -23:20 Of the sons of Uzziel; Micah the first and Jesiah the second. - -23:21 The sons of Merari; Mahli, and Mushi. The sons of Mahli; -Eleazar, and Kish. - -23:22 And Eleazar died, and had no sons, but daughters: and their -brethren the sons of Kish took them. - -23:23 The sons of Mushi; Mahli, and Eder, and Jeremoth, three. - -23:24 These were the sons of Levi after the house of their fathers; -even the chief of the fathers, as they were counted by number of names -by their polls, that did the work for the service of the house of the -LORD, from the age of twenty years and upward. - -23:25 For David said, The LORD God of Israel hath given rest unto his -people, that they may dwell in Jerusalem for ever: 23:26 And also unto -the Levites; they shall no more carry the tabernacle, nor any vessels -of it for the service thereof. - -23:27 For by the last words of David the Levites were numbered from -twenty years old and above: 23:28 Because their office was to wait on -the sons of Aaron for the service of the house of the LORD, in the -courts, and in the chambers, and in the purifying of all holy things, -and the work of the service of the house of God; 23:29 Both for the -shewbread, and for the fine flour for meat offering, and for the -unleavened cakes, and for that which is baked in the pan, and for that -which is fried, and for all manner of measure and size; 23:30 And to -stand every morning to thank and praise the LORD, and likewise at -even: 23:31 And to offer all burnt sacrifices unto the LORD in the -sabbaths, in the new moons, and on the set feasts, by number, -according to the order commanded unto them, continually before the -LORD: 23:32 And that they should keep the charge of the tabernacle of -the congregation, and the charge of the holy place, and the charge of -the sons of Aaron their brethren, in the service of the house of the -LORD. - -24:1 Now these are the divisions of the sons of Aaron. The sons of -Aaron; Nadab, and Abihu, Eleazar, and Ithamar. - -24:2 But Nadab and Abihu died before their father, and had no -children: therefore Eleazar and Ithamar executed the priest's office. - -24:3 And David distributed them, both Zadok of the sons of Eleazar, -and Ahimelech of the sons of Ithamar, according to their offices in -their service. - -24:4 And there were more chief men found of the sons of Eleazar than -of the sons of Ithamar, and thus were they divided. Among the sons of -Eleazar there were sixteen chief men of the house of their fathers, -and eight among the sons of Ithamar according to the house of their -fathers. - -24:5 Thus were they divided by lot, one sort with another; for the -governors of the sanctuary, and governors of the house of God, were of -the sons of Eleazar, and of the sons of Ithamar. - -24:6 And Shemaiah the son of Nethaneel the scribe, one of the Levites, -wrote them before the king, and the princes, and Zadok the priest, and -Ahimelech the son of Abiathar, and before the chief of the fathers of -the priests and Levites: one principal household being taken for -Eleazar, and one taken for Ithamar. - -24:7 Now the first lot came forth to Jehoiarib, the second to Jedaiah, -24:8 The third to Harim, the fourth to Seorim, 24:9 The fifth to -Malchijah, the sixth to Mijamin, 24:10 The seventh to Hakkoz, the -eighth to Abijah, 24:11 The ninth to Jeshuah, the tenth to Shecaniah, -24:12 The eleventh to Eliashib, the twelfth to Jakim, 24:13 The -thirteenth to Huppah, the fourteenth to Jeshebeab, 24:14 The fifteenth -to Bilgah, the sixteenth to Immer, 24:15 The seventeenth to Hezir, the -eighteenth to Aphses, 24:16 The nineteenth to Pethahiah, the twentieth -to Jehezekel, 24:17 The one and twentieth to Jachin, the two and -twentieth to Gamul, 24:18 The three and twentieth to Delaiah, the four -and twentieth to Maaziah. - -24:19 These were the orderings of them in their service to come into -the house of the LORD, according to their manner, under Aaron their -father, as the LORD God of Israel had commanded him. - -24:20 And the rest of the sons of Levi were these: Of the sons of -Amram; Shubael: of the sons of Shubael; Jehdeiah. - -24:21 Concerning Rehabiah: of the sons of Rehabiah, the first was -Isshiah. - -24:22 Of the Izharites; Shelomoth: of the sons of Shelomoth; Jahath. - -24:23 And the sons of Hebron; Jeriah the first, Amariah the second, -Jahaziel the third, Jekameam the fourth. - -24:24 Of the sons of Uzziel; Michah: of the sons of Michah; Shamir. - -24:25 The brother of Michah was Isshiah: of the sons of Isshiah; -Zechariah. - -24:26 The sons of Merari were Mahli and Mushi: the sons of Jaaziah; -Beno. - -24:27 The sons of Merari by Jaaziah; Beno, and Shoham, and Zaccur, and -Ibri. - -24:28 Of Mahli came Eleazar, who had no sons. - -24:29 Concerning Kish: the son of Kish was Jerahmeel. - -24:30 The sons also of Mushi; Mahli, and Eder, and Jerimoth. These -were the sons of the Levites after the house of their fathers. - -24:31 These likewise cast lots over against their brethren the sons of -Aaron in the presence of David the king, and Zadok, and Ahimelech, and -the chief of the fathers of the priests and Levites, even the -principal fathers over against their younger brethren. - -25:1 Moreover David and the captains of the host separated to the -service of the sons of Asaph, and of Heman, and of Jeduthun, who -should prophesy with harps, with psalteries, and with cymbals: and the -number of the workmen according to their service was: 25:2 Of the sons -of Asaph; Zaccur, and Joseph, and Nethaniah, and Asarelah, the sons of -Asaph under the hands of Asaph, which prophesied according to the -order of the king. - -25:3 Of Jeduthun: the sons of Jeduthun; Gedaliah, and Zeri, and -Jeshaiah, Hashabiah, and Mattithiah, six, under the hands of their -father Jeduthun, who prophesied with a harp, to give thanks and to -praise the LORD. - -25:4 Of Heman: the sons of Heman: Bukkiah, Mattaniah, Uzziel, Shebuel, -and Jerimoth, Hananiah, Hanani, Eliathah, Giddalti, and Romamtiezer, -Joshbekashah, Mallothi, Hothir, and Mahazioth: 25:5 All these were the -sons of Heman the king's seer in the words of God, to lift up the -horn. And God gave to Heman fourteen sons and three daughters. - -25:6 All these were under the hands of their father for song in the -house of the LORD, with cymbals, psalteries, and harps, for the -service of the house of God, according to the king's order to Asaph, -Jeduthun, and Heman. - -25:7 So the number of them, with their brethren that were instructed -in the songs of the LORD, even all that were cunning, was two hundred -fourscore and eight. - -25:8 And they cast lots, ward against ward, as well the small as the -great, the teacher as the scholar. - -25:9 Now the first lot came forth for Asaph to Joseph: the second to -Gedaliah, who with his brethren and sons were twelve: 25:10 The third -to Zaccur, he, his sons, and his brethren, were twelve: 25:11 The -fourth to Izri, he, his sons, and his brethren, were twelve: 25:12 The -fifth to Nethaniah, he, his sons, and his brethren, were twelve: 25:13 -The sixth to Bukkiah, he, his sons, and his brethren, were twelve: -25:14 The seventh to Jesharelah, he, his sons, and his brethren, were -twelve: 25:15 The eighth to Jeshaiah, he, his sons, and his brethren, -were twelve: 25:16 The ninth to Mattaniah, he, his sons, and his -brethren, were twelve: 25:17 The tenth to Shimei, he, his sons, and -his brethren, were twelve: 25:18 The eleventh to Azareel, he, his -sons, and his brethren, were twelve: 25:19 The twelfth to Hashabiah, -he, his sons, and his brethren, were twelve: 25:20 The thirteenth to -Shubael, he, his sons, and his brethren, were twelve: 25:21 The -fourteenth to Mattithiah, he, his sons, and his brethren, were twelve: -25:22 The fifteenth to Jeremoth, he, his sons, and his brethren, were -twelve: 25:23 The sixteenth to Hananiah, he, his sons, and his -brethren, were twelve: 25:24 The seventeenth to Joshbekashah, he, his -sons, and his brethren, were twelve: 25:25 The eighteenth to Hanani, -he, his sons, and his brethren, were twelve: 25:26 The nineteenth to -Mallothi, he, his sons, and his brethren, were twelve: 25:27 The -twentieth to Eliathah, he, his sons, and his brethren, were twelve: -25:28 The one and twentieth to Hothir, he, his sons, and his brethren, -were twelve: 25:29 The two and twentieth to Giddalti, he, his sons, -and his brethren, were twelve: 25:30 The three and twentieth to -Mahazioth, he, his sons, and his brethren, were twelve: 25:31 The four -and twentieth to Romamtiezer, he, his sons, and his brethren, were -twelve. - -26:1 Concerning the divisions of the porters: Of the Korhites was -Meshelemiah the son of Kore, of the sons of Asaph. - -26:2 And the sons of Meshelemiah were, Zechariah the firstborn, -Jediael the second, Zebadiah the third, Jathniel the fourth, 26:3 Elam -the fifth, Jehohanan the sixth, Elioenai the seventh. - -26:4 Moreover the sons of Obededom were, Shemaiah the firstborn, -Jehozabad the second, Joah the third, and Sacar the fourth, and -Nethaneel the fifth. - -26:5 Ammiel the sixth, Issachar the seventh, Peulthai the eighth: for -God blessed him. - -26:6 Also unto Shemaiah his son were sons born, that ruled throughout -the house of their father: for they were mighty men of valour. - -26:7 The sons of Shemaiah; Othni, and Rephael, and Obed, Elzabad, -whose brethren were strong men, Elihu, and Semachiah. - -26:8 All these of the sons of Obededom: they and their sons and their -brethren, able men for strength for the service, were threescore and -two of Obededom. - -26:9 And Meshelemiah had sons and brethren, strong men, eighteen. - -26:10 Also Hosah, of the children of Merari, had sons; Simri the -chief, (for though he was not the firstborn, yet his father made him -the chief;) 26:11 Hilkiah the second, Tebaliah the third, Zechariah -the fourth: all the sons and brethren of Hosah were thirteen. - -26:12 Among these were the divisions of the porters, even among the -chief men, having wards one against another, to minister in the house -of the LORD. - -26:13 And they cast lots, as well the small as the great, according to -the house of their fathers, for every gate. - -26:14 And the lot eastward fell to Shelemiah. Then for Zechariah his -son, a wise counsellor, they cast lots; and his lot came out -northward. - -26:15 To Obededom southward; and to his sons the house of Asuppim. - -26:16 To Shuppim and Hosah the lot came forth westward, with the gate -Shallecheth, by the causeway of the going up, ward against ward. - -26:17 Eastward were six Levites, northward four a day, southward four -a day, and toward Asuppim two and two. - -26:18 At Parbar westward, four at the causeway, and two at Parbar. - -26:19 These are the divisions of the porters among the sons of Kore, -and among the sons of Merari. - -26:20 And of the Levites, Ahijah was over the treasures of the house -of God, and over the treasures of the dedicated things. - -26:21 As concerning the sons of Laadan; the sons of the Gershonite -Laadan, chief fathers, even of Laadan the Gershonite, were Jehieli. - -26:22 The sons of Jehieli; Zetham, and Joel his brother, which were -over the treasures of the house of the LORD. - -26:23 Of the Amramites, and the Izharites, the Hebronites, and the -Uzzielites: 26:24 And Shebuel the son of Gershom, the son of Moses, -was ruler of the treasures. - -26:25 And his brethren by Eliezer; Rehabiah his son, and Jeshaiah his -son, and Joram his son, and Zichri his son, and Shelomith his son. - -26:26 Which Shelomith and his brethren were over all the treasures of -the dedicated things, which David the king, and the chief fathers, the -captains over thousands and hundreds, and the captains of the host, -had dedicated. - -26:27 Out of the spoils won in battles did they dedicate to maintain -the house of the LORD. - -26:28 And all that Samuel the seer, and Saul the son of Kish, and -Abner the son of Ner, and Joab the son of Zeruiah, had dedicated; and -whosoever had dedicated any thing, it was under the hand of Shelomith, -and of his brethren. - -26:29 Of the Izharites, Chenaniah and his sons were for the outward -business over Israel, for officers and judges. - -26:30 And of the Hebronites, Hashabiah and his brethren, men of -valour, a thousand and seven hundred, were officers among them of -Israel on this side Jordan westward in all the business of the LORD, -and in the service of the king. - -26:31 Among the Hebronites was Jerijah the chief, even among the -Hebronites, according to the generations of his fathers. In the -fortieth year of the reign of David they were sought for, and there -were found among them mighty men of valour at Jazer of Gilead. - -26:32 And his brethren, men of valour, were two thousand and seven -hundred chief fathers, whom king David made rulers over the -Reubenites, the Gadites, and the half tribe of Manasseh, for every -matter pertaining to God, and affairs of the king. - -27:1 Now the children of Israel after their number, to wit, the chief -fathers and captains of thousands and hundreds, and their officers -that served the king in any matter of the courses, which came in and -went out month by month throughout all the months of the year, of -every course were twenty and four thousand. - -27:2 Over the first course for the first month was Jashobeam the son -of Zabdiel: and in his course were twenty and four thousand. - -27:3 Of the children of Perez was the chief of all the captains of the -host for the first month. - -27:4 And over the course of the second month was Dodai an Ahohite, and -of his course was Mikloth also the ruler: in his course likewise were -twenty and four thousand. - -27:5 The third captain of the host for the third month was Benaiah the -son of Jehoiada, a chief priest: and in his course were twenty and -four thousand. - -27:6 This is that Benaiah, who was mighty among the thirty, and above -the thirty: and in his course was Ammizabad his son. - -27:7 The fourth captain for the fourth month was Asahel the brother of -Joab, and Zebadiah his son after him: and in his course were twenty -and four thousand. - -27:8 The fifth captain for the fifth month was Shamhuth the Izrahite: -and in his course were twenty and four thousand. - -27:9 The sixth captain for the sixth month was Ira the son of Ikkesh -the Tekoite: and in his course were twenty and four thousand. - -27:10 The seventh captain for the seventh month was Helez the -Pelonite, of the children of Ephraim: and in his course were twenty -and four thousand. - -27:11 The eighth captain for the eighth month was Sibbecai the -Hushathite, of the Zarhites: and in his course were twenty and four -thousand. - -27:12 The ninth captain for the ninth month was Abiezer the -Anetothite, of the Benjamites: and in his course were twenty and four -thousand. - -27:13 The tenth captain for the tenth month was Maharai the -Netophathite, of the Zarhites: and in his course were twenty and four -thousand. - -27:14 The eleventh captain for the eleventh month was Benaiah the -Pirathonite, of the children of Ephraim: and in his course were twenty -and four thousand. - -27:15 The twelfth captain for the twelfth month was Heldai the -Netophathite, of Othniel: and in his course were twenty and four -thousand. - -27:16 Furthermore over the tribes of Israel: the ruler of the -Reubenites was Eliezer the son of Zichri: of the Simeonites, -Shephatiah the son of Maachah: 27:17 Of the Levites, Hashabiah the son -of Kemuel: of the Aaronites, Zadok: 27:18 Of Judah, Elihu, one of the -brethren of David: of Issachar, Omri the son of Michael: 27:19 Of -Zebulun, Ishmaiah the son of Obadiah: of Naphtali, Jerimoth the son of -Azriel: 27:20 Of the children of Ephraim, Hoshea the son of Azaziah: -of the half tribe of Manasseh, Joel the son of Pedaiah: 27:21 Of the -half tribe of Manasseh in Gilead, Iddo the son of Zechariah: of -Benjamin, Jaasiel the son of Abner: 27:22 Of Dan, Azareel the son of -Jeroham. These were the princes of the tribes of Israel. - -27:23 But David took not the number of them from twenty years old and -under: because the LORD had said he would increase Israel like to the -stars of the heavens. - -27:24 Joab the son of Zeruiah began to number, but he finished not, -because there fell wrath for it against Israel; neither was the number -put in the account of the chronicles of king David. - -27:25 And over the king's treasures was Azmaveth the son of Adiel: and -over the storehouses in the fields, in the cities, and in the -villages, and in the castles, was Jehonathan the son of Uzziah: 27:26 -And over them that did the work of the field for tillage of the ground -was Ezri the son of Chelub: 27:27 And over the vineyards was Shimei -the Ramathite: over the increase of the vineyards for the wine cellars -was Zabdi the Shiphmite: 27:28 And over the olive trees and the -sycomore trees that were in the low plains was Baalhanan the Gederite: -and over the cellars of oil was Joash: 27:29 And over the herds that -fed in Sharon was Shitrai the Sharonite: and over the herds that were -in the valleys was Shaphat the son of Adlai: 27:30 Over the camels -also was Obil the Ishmaelite: and over the asses was Jehdeiah the -Meronothite: 27:31 And over the flocks was Jaziz the Hagerite. All -these were the rulers of the substance which was king David's. - -27:32 Also Jonathan David's uncle was a counsellor, a wise man, and a -scribe: and Jehiel the son of Hachmoni was with the king's sons: 27:33 -And Ahithophel was the king's counsellor: and Hushai the Archite was -the king's companion: 27:34 And after Ahithophel was Jehoiada the son -of Benaiah, and Abiathar: and the general of the king's army was Joab. - -28:1 And David assembled all the princes of Israel, the princes of the -tribes, and the captains of the companies that ministered to the king -by course, and the captains over the thousands, and captains over the -hundreds, and the stewards over all the substance and possession of -the king, and of his sons, with the officers, and with the mighty men, -and with all the valiant men, unto Jerusalem. - -28:2 Then David the king stood up upon his feet, and said, Hear me, my -brethren, and my people: As for me, I had in mine heart to build an -house of rest for the ark of the covenant of the LORD, and for the -footstool of our God, and had made ready for the building: 28:3 But -God said unto me, Thou shalt not build an house for my name, because -thou hast been a man of war, and hast shed blood. - -28:4 Howbeit the LORD God of Israel chose me before all the house of -my father to be king over Israel for ever: for he hath chosen Judah to -be the ruler; and of the house of Judah, the house of my father; and -among the sons of my father he liked me to make me king over all -Israel: 28:5 And of all my sons, (for the LORD hath given me many -sons,) he hath chosen Solomon my son to sit upon the throne of the -kingdom of the LORD over Israel. - -28:6 And he said unto me, Solomon thy son, he shall build my house and -my courts: for I have chosen him to be my son, and I will be his -father. - -28:7 Moreover I will establish his kingdom for ever, if he be constant -to do my commandments and my judgments, as at this day. - -28:8 Now therefore in the sight of all Israel the congregation of the -LORD, and in the audience of our God, keep and seek for all the -commandments of the LORD your God: that ye may possess this good land, -and leave it for an inheritance for your children after you for ever. - -28:9 And thou, Solomon my son, know thou the God of thy father, and -serve him with a perfect heart and with a willing mind: for the LORD -searcheth all hearts, and understandeth all the imaginations of the -thoughts: if thou seek him, he will be found of thee; but if thou -forsake him, he will cast thee off for ever. - -28:10 Take heed now; for the LORD hath chosen thee to build an house -for the sanctuary: be strong, and do it. - -28:11 Then David gave to Solomon his son the pattern of the porch, and -of the houses thereof, and of the treasuries thereof, and of the upper -chambers thereof, and of the inner parlours thereof, and of the place -of the mercy seat, 28:12 And the pattern of all that he had by the -spirit, of the courts of the house of the LORD, and of all the -chambers round about, of the treasuries of the house of God, and of -the treasuries of the dedicated things: 28:13 Also for the courses of -the priests and the Levites, and for all the work of the service of -the house of the LORD, and for all the vessels of service in the house -of the LORD. - -28:14 He gave of gold by weight for things of gold, for all -instruments of all manner of service; silver also for all instruments -of silver by weight, for all instruments of every kind of service: -28:15 Even the weight for the candlesticks of gold, and for their -lamps of gold, by weight for every candlestick, and for the lamps -thereof: and for the candlesticks of silver by weight, both for the -candlestick, and also for the lamps thereof, according to the use of -every candlestick. - -28:16 And by weight he gave gold for the tables of shewbread, for -every table; and likewise silver for the tables of silver: 28:17 Also -pure gold for the fleshhooks, and the bowls, and the cups: and for the -golden basons he gave gold by weight for every bason; and likewise -silver by weight for every bason of silver: 28:18 And for the altar of -incense refined gold by weight; and gold for the pattern of the -chariot of the cherubims, that spread out their wings, and covered the -ark of the covenant of the LORD. - -28:19 All this, said David, the LORD made me understand in writing by -his hand upon me, even all the works of this pattern. - -28:20 And David said to Solomon his son, Be strong and of good -courage, and do it: fear not, nor be dismayed: for the LORD God, even -my God, will be with thee; he will not fail thee, nor forsake thee, -until thou hast finished all the work for the service of the house of -the LORD. - -28:21 And, behold, the courses of the priests and the Levites, even -they shall be with thee for all the service of the house of God: and -there shall be with thee for all manner of workmanship every willing -skilful man, for any manner of service: also the princes and all the -people will be wholly at thy commandment. - -29:1 Furthermore David the king said unto all the congregation, -Solomon my son, whom alone God hath chosen, is yet young and tender, -and the work is great: for the palace is not for man, but for the LORD -God. - -29:2 Now I have prepared with all my might for the house of my God the -gold for things to be made of gold, and the silver for things of -silver, and the brass for things of brass, the iron for things of -iron, and wood for things of wood; onyx stones, and stones to be set, -glistering stones, and of divers colours, and all manner of precious -stones, and marble stones in abundance. - -29:3 Moreover, because I have set my affection to the house of my God, -I have of mine own proper good, of gold and silver, which I have given -to the house of my God, over and above all that I have prepared for -the holy house. - -29:4 Even three thousand talents of gold, of the gold of Ophir, and -seven thousand talents of refined silver, to overlay the walls of the -houses withal: 29:5 The gold for things of gold, and the silver for -things of silver, and for all manner of work to be made by the hands -of artificers. And who then is willing to consecrate his service this -day unto the LORD? 29:6 Then the chief of the fathers and princes of -the tribes of Israel and the captains of thousands and of hundreds, -with the rulers of the king's work, offered willingly, 29:7 And gave -for the service of the house of God of gold five thousand talents and -ten thousand drams, and of silver ten thousand talents, and of brass -eighteen thousand talents, and one hundred thousand talents of iron. - -29:8 And they with whom precious stones were found gave them to the -treasure of the house of the LORD, by the hand of Jehiel the -Gershonite. - -29:9 Then the people rejoiced, for that they offered willingly, -because with perfect heart they offered willingly to the LORD: and -David the king also rejoiced with great joy. - -29:10 Wherefore David blessed the LORD before all the congregation: -and David said, Blessed be thou, LORD God of Israel our father, for -ever and ever. - -29:11 Thine, O LORD is the greatness, and the power, and the glory, -and the victory, and the majesty: for all that is in the heaven and in -the earth is thine; thine is the kingdom, O LORD, and thou art exalted -as head above all. - -29:12 Both riches and honour come of thee, and thou reignest over all; -and in thine hand is power and might; and in thine hand it is to make -great, and to give strength unto all. - -29:13 Now therefore, our God, we thank thee, and praise thy glorious -name. - -29:14 But who am I, and what is my people, that we should be able to -offer so willingly after this sort? for all things come of thee, and -of thine own have we given thee. - -29:15 For we are strangers before thee, and sojourners, as were all -our fathers: our days on the earth are as a shadow, and there is none -abiding. - -29:16 O LORD our God, all this store that we have prepared to build -thee an house for thine holy name cometh of thine hand, and is all -thine own. - -29:17 I know also, my God, that thou triest the heart, and hast -pleasure in uprightness. As for me, in the uprightness of mine heart I -have willingly offered all these things: and now have I seen with joy -thy people, which are present here, to offer willingly unto thee. - -29:18 O LORD God of Abraham, Isaac, and of Israel, our fathers, keep -this for ever in the imagination of the thoughts of the heart of thy -people, and prepare their heart unto thee: 29:19 And give unto Solomon -my son a perfect heart, to keep thy commandments, thy testimonies, and -thy statutes, and to do all these things, and to build the palace, for -the which I have made provision. - -29:20 And David said to all the congregation, Now bless the LORD your -God. - -And all the congregation blessed the LORD God of their fathers, and -bowed down their heads, and worshipped the LORD, and the king. - -29:21 And they sacrificed sacrifices unto the LORD, and offered burnt -offerings unto the LORD, on the morrow after that day, even a thousand -bullocks, a thousand rams, and a thousand lambs, with their drink -offerings, and sacrifices in abundance for all Israel: 29:22 And did -eat and drink before the LORD on that day with great gladness. And -they made Solomon the son of David king the second time, and anointed -him unto the LORD to be the chief governor, and Zadok to be priest. - -29:23 Then Solomon sat on the throne of the LORD as king instead of -David his father, and prospered; and all Israel obeyed him. - -29:24 And all the princes, and the mighty men, and all the sons -likewise of king David, submitted themselves unto Solomon the king. - -29:25 And the LORD magnified Solomon exceedingly in the sight of all -Israel, and bestowed upon him such royal majesty as had not been on -any king before him in Israel. - -29:26 Thus David the son of Jesse reigned over all Israel. - -29:27 And the time that he reigned over Israel was forty years; seven -years reigned he in Hebron, and thirty and three years reigned he in -Jerusalem. - -29:28 And he died in a good old age, full of days, riches, and honour: -and Solomon his son reigned in his stead. - -29:29 Now the acts of David the king, first and last, behold, they are -written in the book of Samuel the seer, and in the book of Nathan the -prophet, and in the book of Gad the seer, 29:30 With all his reign and -his might, and the times that went over him, and over Israel, and over -all the kingdoms of the countries. - - - - -The Second Book of the Chronicles - - -1:1 And Solomon the son of David was strengthened in his kingdom, and -the LORD his God was with him, and magnified him exceedingly. - -1:2 Then Solomon spake unto all Israel, to the captains of thousands -and of hundreds, and to the judges, and to every governor in all -Israel, the chief of the fathers. - -1:3 So Solomon, and all the congregation with him, went to the high -place that was at Gibeon; for there was the tabernacle of the -congregation of God, which Moses the servant of the LORD had made in -the wilderness. - -1:4 But the ark of God had David brought up from Kirjathjearim to the -place which David had prepared for it: for he had pitched a tent for -it at Jerusalem. - -1:5 Moreover the brasen altar, that Bezaleel the son of Uri, the son -of Hur, had made, he put before the tabernacle of the LORD: and -Solomon and the congregation sought unto it. - -1:6 And Solomon went up thither to the brasen altar before the LORD, -which was at the tabernacle of the congregation, and offered a -thousand burnt offerings upon it. - -1:7 In that night did God appear unto Solomon, and said unto him, Ask -what I shall give thee. - -1:8 And Solomon said unto God, Thou hast shewed great mercy unto David -my father, and hast made me to reign in his stead. - -1:9 Now, O LORD God, let thy promise unto David my father be -established: for thou hast made me king over a people like the dust of -the earth in multitude. - -1:10 Give me now wisdom and knowledge, that I may go out and come in -before this people: for who can judge this thy people, that is so -great? 1:11 And God said to Solomon, Because this was in thine heart, -and thou hast not asked riches, wealth, or honour, nor the life of -thine enemies, neither yet hast asked long life; but hast asked wisdom -and knowledge for thyself, that thou mayest judge my people, over whom -I have made thee king: 1:12 Wisdom and knowledge is granted unto thee; -and I will give thee riches, and wealth, and honour, such as none of -the kings have had that have been before thee, neither shall there any -after thee have the like. - -1:13 Then Solomon came from his journey to the high place that was at -Gibeon to Jerusalem, from before the tabernacle of the congregation, -and reigned over Israel. - -1:14 And Solomon gathered chariots and horsemen: and he had a thousand -and four hundred chariots, and twelve thousand horsemen, which he -placed in the chariot cities, and with the king at Jerusalem. - -1:15 And the king made silver and gold at Jerusalem as plenteous as -stones, and cedar trees made he as the sycomore trees that are in the -vale for abundance. - -1:16 And Solomon had horses brought out of Egypt, and linen yarn: the -king's merchants received the linen yarn at a price. - -1:17 And they fetched up, and brought forth out of Egypt a chariot for -six hundred shekels of silver, and an horse for an hundred and fifty: -and so brought they out horses for all the kings of the Hittites, and -for the kings of Syria, by their means. - -2:1 And Solomon determined to build an house for the name of the LORD, -and an house for his kingdom. - -2:2 And Solomon told out threescore and ten thousand men to bear -burdens, and fourscore thousand to hew in the mountain, and three -thousand and six hundred to oversee them. - -2:3 And Solomon sent to Huram the king of Tyre, saying, As thou didst -deal with David my father, and didst send him cedars to build him an -house to dwell therein, even so deal with me. - -2:4 Behold, I build an house to the name of the LORD my God, to -dedicate it to him, and to burn before him sweet incense, and for the -continual shewbread, and for the burnt offerings morning and evening, -on the sabbaths, and on the new moons, and on the solemn feasts of the -LORD our God. This is an ordinance for ever to Israel. - -2:5 And the house which I build is great: for great is our God above -all gods. - -2:6 But who is able to build him an house, seeing the heaven and -heaven of heavens cannot contain him? who am I then, that I should -build him an house, save only to burn sacrifice before him? 2:7 Send -me now therefore a man cunning to work in gold, and in silver, and in -brass, and in iron, and in purple, and crimson, and blue, and that can -skill to grave with the cunning men that are with me in Judah and in -Jerusalem, whom David my father did provide. - -2:8 Send me also cedar trees, fir trees, and algum trees, out of -Lebanon: for I know that thy servants can skill to cut timber in -Lebanon; and, behold, my servants shall be with thy servants, 2:9 Even -to prepare me timber in abundance: for the house which I am about to -build shall be wonderful great. - -2:10 And, behold, I will give to thy servants, the hewers that cut -timber, twenty thousand measures of beaten wheat, and twenty thousand -measures of barley, and twenty thousand baths of wine, and twenty -thousand baths of oil. - -2:11 Then Huram the king of Tyre answered in writing, which he sent to -Solomon, Because the LORD hath loved his people, he hath made thee -king over them. - -2:12 Huram said moreover, Blessed be the LORD God of Israel, that made -heaven and earth, who hath given to David the king a wise son, endued -with prudence and understanding, that might build an house for the -LORD, and an house for his kingdom. - -2:13 And now I have sent a cunning man, endued with understanding, of -Huram my father's, 2:14 The son of a woman of the daughters of Dan, -and his father was a man of Tyre, skilful to work in gold, and in -silver, in brass, in iron, in stone, and in timber, in purple, in -blue, and in fine linen, and in crimson; also to grave any manner of -graving, and to find out every device which shall be put to him, with -thy cunning men, and with the cunning men of my lord David thy father. - -2:15 Now therefore the wheat, and the barley, the oil, and the wine, -which my lord hath spoken of, let him send unto his servants: 2:16 And -we will cut wood out of Lebanon, as much as thou shalt need: and we -will bring it to thee in floats by sea to Joppa; and thou shalt carry -it up to Jerusalem. - -2:17 And Solomon numbered all the strangers that were in the land of -Israel, after the numbering wherewith David his father had numbered -them; and they were found an hundred and fifty thousand and three -thousand and six hundred. - -2:18 And he set threescore and ten thousand of them to be bearers of -burdens, and fourscore thousand to be hewers in the mountain, and -three thousand and six hundred overseers to set the people a work. - -3:1 Then Solomon began to build the house of the LORD at Jerusalem in -mount Moriah, where the Lord appeared unto David his father, in the -place that David had prepared in the threshingfloor of Ornan the -Jebusite. - -3:2 And he began to build in the second day of the second month, in -the fourth year of his reign. - -3:3 Now these are the things wherein Solomon was instructed for the -building of the house of God. The length by cubits after the first -measure was threescore cubits, and the breadth twenty cubits. - -3:4 And the porch that was in the front of the house, the length of it -was according to the breadth of the house, twenty cubits, and the -height was an hundred and twenty: and he overlaid it within with pure -gold. - -3:5 And the greater house he cieled with fir tree, which he overlaid -with fine gold, and set thereon palm trees and chains. - -3:6 And he garnished the house with precious stones for beauty: and -the gold was gold of Parvaim. - -3:7 He overlaid also the house, the beams, the posts, and the walls -thereof, and the doors thereof, with gold; and graved cherubims on the -walls. - -3:8 And he made the most holy house, the length whereof was according -to the breadth of the house, twenty cubits, and the breadth thereof -twenty cubits: and he overlaid it with fine gold, amounting to six -hundred talents. - -3:9 And the weight of the nails was fifty shekels of gold. And he -overlaid the upper chambers with gold. - -3:10 And in the most holy house he made two cherubims of image work, -and overlaid them with gold. - -3:11 And the wings of the cherubims were twenty cubits long: one wing -of the one cherub was five cubits, reaching to the wall of the house: -and the other wing was likewise five cubits, reaching to the wing of -the other cherub. - -3:12 And one wing of the other cherub was five cubits, reaching to the -wall of the house: and the other wing was five cubits also, joining to -the wing of the other cherub. - -3:13 The wings of these cherubims spread themselves forth twenty -cubits: and they stood on their feet, and their faces were inward. - -3:14 And he made the vail of blue, and purple, and crimson, and fine -linen, and wrought cherubims thereon. - -3:15 Also he made before the house two pillars of thirty and five -cubits high, and the chapiter that was on the top of each of them was -five cubits. - -3:16 And he made chains, as in the oracle, and put them on the heads -of the pillars; and made an hundred pomegranates, and put them on the -chains. - -3:17 And he reared up the pillars before the temple, one on the right -hand, and the other on the left; and called the name of that on the -right hand Jachin, and the name of that on the left Boaz. - -4:1 Moreover he made an altar of brass, twenty cubits the length -thereof, and twenty cubits the breadth thereof, and ten cubits the -height thereof. - -4:2 Also he made a molten sea of ten cubits from brim to brim, round -in compass, and five cubits the height thereof; and a line of thirty -cubits did compass it round about. - -4:3 And under it was the similitude of oxen, which did compass it -round about: ten in a cubit, compassing the sea round about. Two rows -of oxen were cast, when it was cast. - -4:4 It stood upon twelve oxen, three looking toward the north, and -three looking toward the west, and three looking toward the south, and -three looking toward the east: and the sea was set above upon them, -and all their hinder parts were inward. - -4:5 And the thickness of it was an handbreadth, and the brim of it -like the work of the brim of a cup, with flowers of lilies; and it -received and held three thousand baths. - -4:6 He made also ten lavers, and put five on the right hand, and five -on the left, to wash in them: such things as they offered for the -burnt offering they washed in them; but the sea was for the priests to -wash in. - -4:7 And he made ten candlesticks of gold according to their form, and -set them in the temple, five on the right hand, and five on the left. - -4:8 He made also ten tables, and placed them in the temple, five on -the right side, and five on the left. And he made an hundred basons of -gold. - -4:9 Furthermore he made the court of the priests, and the great court, -and doors for the court, and overlaid the doors of them with brass. - -4:10 And he set the sea on the right side of the east end, over -against the south. - -4:11 And Huram made the pots, and the shovels, and the basons. And -Huram finished the work that he was to make for king Solomon for the -house of God; 4:12 To wit, the two pillars, and the pommels, and the -chapiters which were on the top of the two pillars, and the two -wreaths to cover the two pommels of the chapiters which were on the -top of the pillars; 4:13 And four hundred pomegranates on the two -wreaths; two rows of pomegranates on each wreath, to cover the two -pommels of the chapiters which were upon the pillars. - -4:14 He made also bases, and lavers made he upon the bases; 4:15 One -sea, and twelve oxen under it. - -4:16 The pots also, and the shovels, and the fleshhooks, and all their -instruments, did Huram his father make to king Solomon for the house -of the LORD of bright brass. - -4:17 In the plain of Jordan did the king cast them, in the clay ground -between Succoth and Zeredathah. - -4:18 Thus Solomon made all these vessels in great abundance: for the -weight of the brass could not be found out. - -4:19 And Solomon made all the vessels that were for the house of God, -the golden altar also, and the tables whereon the shewbread was set; -4:20 Moreover the candlesticks with their lamps, that they should burn -after the manner before the oracle, of pure gold; 4:21 And the -flowers, and the lamps, and the tongs, made he of gold, and that -perfect gold; 4:22 And the snuffers, and the basons, and the spoons, -and the censers, of pure gold: and the entry of the house, the inner -doors thereof for the most holy place, and the doors of the house of -the temple, were of gold. - -5:1 Thus all the work that Solomon made for the house of the LORD was -finished: and Solomon brought in all the things that David his father -had dedicated; and the silver, and the gold, and all the instruments, -put he among the treasures of the house of God. - -5:2 Then Solomon assembled the elders of Israel, and all the heads of -the tribes, the chief of the fathers of the children of Israel, unto -Jerusalem, to bring up the ark of the covenant of the LORD out of the -city of David, which is Zion. - -5:3 Wherefore all the men of Israel assembled themselves unto the king -in the feast which was in the seventh month. - -5:4 And all the elders of Israel came; and the Levites took up the -ark. - -5:5 And they brought up the ark, and the tabernacle of the -congregation, and all the holy vessels that were in the tabernacle, -these did the priests and the Levites bring up. - -5:6 Also king Solomon, and all the congregation of Israel that were -assembled unto him before the ark, sacrificed sheep and oxen, which -could not be told nor numbered for multitude. - -5:7 And the priests brought in the ark of the covenant of the LORD -unto his place, to the oracle of the house, into the most holy place, -even under the wings of the cherubims: 5:8 For the cherubims spread -forth their wings over the place of the ark, and the cherubims covered -the ark and the staves thereof above. - -5:9 And they drew out the staves of the ark, that the ends of the -staves were seen from the ark before the oracle; but they were not -seen without. And there it is unto this day. - -5:10 There was nothing in the ark save the two tables which Moses put -therein at Horeb, when the LORD made a covenant with the children of -Israel, when they came out of Egypt. - -5:11 And it came to pass, when the priests were come out of the holy -place: (for all the priests that were present were sanctified, and did -not then wait by course: 5:12 Also the Levites which were the singers, -all of them of Asaph, of Heman, of Jeduthun, with their sons and their -brethren, being arrayed in white linen, having cymbals and psalteries -and harps, stood at the east end of the altar, and with them an -hundred and twenty priests sounding with trumpets:) 5:13 It came even -to pass, as the trumpeters and singers were as one, to make one sound -to be heard in praising and thanking the LORD; and when they lifted up -their voice with the trumpets and cymbals and instruments of musick, -and praised the LORD, saying, For he is good; for his mercy endureth -for ever: that then the house was filled with a cloud, even the house -of the LORD; 5:14 So that the priests could not stand to minister by -reason of the cloud: for the glory of the LORD had filled the house of -God. - -6:1 Then said Solomon, The LORD hath said that he would dwell in the -thick darkness. - -6:2 But I have built an house of habitation for thee, and a place for -thy dwelling for ever. - -6:3 And the king turned his face, and blessed the whole congregation -of Israel: and all the congregation of Israel stood. - -6:4 And he said, Blessed be the LORD God of Israel, who hath with his -hands fulfilled that which he spake with his mouth to my father David, -saying, 6:5 Since the day that I brought forth my people out of the -land of Egypt I chose no city among all the tribes of Israel to build -an house in, that my name might be there; neither chose I any man to -be a ruler over my people Israel: 6:6 But I have chosen Jerusalem, -that my name might be there; and have chosen David to be over my -people Israel. - -6:7 Now it was in the heart of David my father to build an house for -the name of the LORD God of Israel. - -6:8 But the LORD said to David my father, Forasmuch as it was in thine -heart to build an house for my name, thou didst well in that it was in -thine heart: 6:9 Notwithstanding thou shalt not build the house; but -thy son which shall come forth out of thy loins, he shall build the -house for my name. - -6:10 The LORD therefore hath performed his word that he hath spoken: -for I am risen up in the room of David my father, and am set on the -throne of Israel, as the LORD promised, and have built the house for -the name of the LORD God of Israel. - -6:11 And in it have I put the ark, wherein is the covenant of the -LORD, that he made with the children of Israel. - -6:12 And he stood before the altar of the LORD in the presence of all -the congregation of Israel, and spread forth his hands: 6:13 For -Solomon had made a brasen scaffold of five cubits long, and five -cubits broad, and three cubits high, and had set it in the midst of -the court: and upon it he stood, and kneeled down upon his knees -before all the congregation of Israel, and spread forth his hands -toward heaven. - -6:14 And said, O LORD God of Israel, there is no God like thee in the -heaven, nor in the earth; which keepest covenant, and shewest mercy -unto thy servants, that walk before thee with all their hearts: 6:15 -Thou which hast kept with thy servant David my father that which thou -hast promised him; and spakest with thy mouth, and hast fulfilled it -with thine hand, as it is this day. - -6:16 Now therefore, O LORD God of Israel, keep with thy servant David -my father that which thou hast promised him, saying, There shall not -fail thee a man in my sight to sit upon the throne of Israel; yet so -that thy children take heed to their way to walk in my law, as thou -hast walked before me. - -6:17 Now then, O LORD God of Israel, let thy word be verified, which -thou hast spoken unto thy servant David. - -6:18 But will God in very deed dwell with men on the earth? behold, -heaven and the heaven of heavens cannot contain thee; how much less -this house which I have built! 6:19 Have respect therefore to the -prayer of thy servant, and to his supplication, O LORD my God, to -hearken unto the cry and the prayer which thy servant prayeth before -thee: 6:20 That thine eyes may be open upon this house day and night, -upon the place whereof thou hast said that thou wouldest put thy name -there; to hearken unto the prayer which thy servant prayeth toward -this place. - -6:21 Hearken therefore unto the supplications of thy servant, and of -thy people Israel, which they shall make toward this place: hear thou -from thy dwelling place, even from heaven; and when thou hearest, -forgive. - -6:22 If a man sin against his neighbour, and an oath be laid upon him -to make him swear, and the oath come before thine altar in this house; -6:23 Then hear thou from heaven, and do, and judge thy servants, by -requiting the wicked, by recompensing his way upon his own head; and -by justifying the righteous, by giving him according to his -righteousness. - -6:24 And if thy people Israel be put to the worse before the enemy, -because they have sinned against thee; and shall return and confess -thy name, and pray and make supplication before thee in this house; -6:25 Then hear thou from the heavens, and forgive the sin of thy -people Israel, and bring them again unto the land which thou gavest to -them and to their fathers. - -6:26 When the heaven is shut up, and there is no rain, because they -have sinned against thee; yet if they pray toward this place, and -confess thy name, and turn from their sin, when thou dost afflict -them; 6:27 Then hear thou from heaven, and forgive the sin of thy -servants, and of thy people Israel, when thou hast taught them the -good way, wherein they should walk; and send rain upon thy land, which -thou hast given unto thy people for an inheritance. - -6:28 If there be dearth in the land, if there be pestilence, if there -be blasting, or mildew, locusts, or caterpillers; if their enemies -besiege them in the cities of their land; whatsoever sore or -whatsoever sickness there be: 6:29 Then what prayer or what -supplication soever shall be made of any man, or of all thy people -Israel, when every one shall know his own sore and his own grief, and -shall spread forth his hands in this house: 6:30 Then hear thou from -heaven thy dwelling place, and forgive, and render unto every man -according unto all his ways, whose heart thou knowest; (for thou only -knowest the hearts of the children of men:) 6:31 That they may fear -thee, to walk in thy ways, so long as they live in the land which thou -gavest unto our fathers. - -6:32 Moreover concerning the stranger, which is not of thy people -Israel, but is come from a far country for thy great name's sake, and -thy mighty hand, and thy stretched out arm; if they come and pray in -this house; 6:33 Then hear thou from the heavens, even from thy -dwelling place, and do according to all that the stranger calleth to -thee for; that all people of the earth may know thy name, and fear -thee, as doth thy people Israel, and may know that this house which I -have built is called by thy name. - -6:34 If thy people go out to war against their enemies by the way that -thou shalt send them, and they pray unto thee toward this city which -thou hast chosen, and the house which I have built for thy name; 6:35 -Then hear thou from the heavens their prayer and their supplication, -and maintain their cause. - -6:36 If they sin against thee, (for there is no man which sinneth -not,) and thou be angry with them, and deliver them over before their -enemies, and they carry them away captives unto a land far off or -near; 6:37 Yet if they bethink themselves in the land whither they are -carried captive, and turn and pray unto thee in the land of their -captivity, saying, We have sinned, we have done amiss, and have dealt -wickedly; 6:38 If they return to thee with all their heart and with -all their soul in the land of their captivity, whither they have -carried them captives, and pray toward their land, which thou gavest -unto their fathers, and toward the city which thou hast chosen, and -toward the house which I have built for thy name: 6:39 Then hear thou -from the heavens, even from thy dwelling place, their prayer and their -supplications, and maintain their cause, and forgive thy people which -have sinned against thee. - -6:40 Now, my God, let, I beseech thee, thine eyes be open, and let -thine ears be attent unto the prayer that is made in this place. - -6:41 Now therefore arise, O LORD God, into thy resting place, thou, -and the ark of thy strength: let thy priests, O LORD God, be clothed -with salvation, and let thy saints rejoice in goodness. - -6:42 O LORD God, turn not away the face of thine anointed: remember -the mercies of David thy servant. - -7:1 Now when Solomon had made an end of praying, the fire came down -from heaven, and consumed the burnt offering and the sacrifices; and -the glory of the LORD filled the house. - -7:2 And the priests could not enter into the house of the LORD, -because the glory of the LORD had filled the LORD's house. - -7:3 And when all the children of Israel saw how the fire came down, -and the glory of the LORD upon the house, they bowed themselves with -their faces to the ground upon the pavement, and worshipped, and -praised the LORD, saying, For he is good; for his mercy endureth for -ever. - -7:4 Then the king and all the people offered sacrifices before the -LORD. - -7:5 And king Solomon offered a sacrifice of twenty and two thousand -oxen, and an hundred and twenty thousand sheep: so the king and all -the people dedicated the house of God. - -7:6 And the priests waited on their offices: the Levites also with -instruments of musick of the LORD, which David the king had made to -praise the LORD, because his mercy endureth for ever, when David -praised by their ministry; and the priests sounded trumpets before -them, and all Israel stood. - -7:7 Moreover Solomon hallowed the middle of the court that was before -the house of the LORD: for there he offered burnt offerings, and the -fat of the peace offerings, because the brasen altar which Solomon had -made was not able to receive the burnt offerings, and the meat -offerings, and the fat. - -7:8 Also at the same time Solomon kept the feast seven days, and all -Israel with him, a very great congregation, from the entering in of -Hamath unto the river of Egypt. - -7:9 And in the eighth day they made a solemn assembly: for they kept -the dedication of the altar seven days, and the feast seven days. - -7:10 And on the three and twentieth day of the seventh month he sent -the people away into their tents, glad and merry in heart for the -goodness that the LORD had shewed unto David, and to Solomon, and to -Israel his people. - -7:11 Thus Solomon finished the house of the LORD, and the king's -house: and all that came into Solomon's heart to make in the house of -the LORD, and in his own house, he prosperously effected. - -7:12 And the LORD appeared to Solomon by night, and said unto him, I -have heard thy prayer, and have chosen this place to myself for an -house of sacrifice. - -7:13 If I shut up heaven that there be no rain, or if I command the -locusts to devour the land, or if I send pestilence among my people; -7:14 If my people, which are called by my name, shall humble -themselves, and pray, and seek my face, and turn from their wicked -ways; then will I hear from heaven, and will forgive their sin, and -will heal their land. - -7:15 Now mine eyes shall be open, and mine ears attent unto the prayer -that is made in this place. - -7:16 For now have I chosen and sanctified this house, that my name may -be there for ever: and mine eyes and mine heart shall be there -perpetually. - -7:17 And as for thee, if thou wilt walk before me, as David thy father -walked, and do according to all that I have commanded thee, and shalt -observe my statutes and my judgments; 7:18 Then will I stablish the -throne of thy kingdom, according as I have covenanted with David thy -father, saying, There shall not fail thee a man to be ruler in Israel. - -7:19 But if ye turn away, and forsake my statutes and my commandments, -which I have set before you, and shall go and serve other gods, and -worship them; 7:20 Then will I pluck them up by the roots out of my -land which I have given them; and this house, which I have sanctified -for my name, will I cast out of my sight, and will make it to be a -proverb and a byword among all nations. - -7:21 And this house, which is high, shall be an astonishment to every -one that passeth by it; so that he shall say, Why hath the LORD done -thus unto this land, and unto this house? 7:22 And it shall be -answered, Because they forsook the LORD God of their fathers, which -brought them forth out of the land of Egypt, and laid hold on other -gods, and worshipped them, and served them: therefore hath he brought -all this evil upon them. - -8:1 And it came to pass at the end of twenty years, wherein Solomon -had built the house of the LORD, and his own house, 8:2 That the -cities which Huram had restored to Solomon, Solomon built them, and -caused the children of Israel to dwell there. - -8:3 And Solomon went to Hamathzobah, and prevailed against it. - -8:4 And he built Tadmor in the wilderness, and all the store cities, -which he built in Hamath. - -8:5 Also he built Bethhoron the upper, and Bethhoron the nether, -fenced cities, with walls, gates, and bars; 8:6 And Baalath, and all -the store cities that Solomon had, and all the chariot cities, and the -cities of the horsemen, and all that Solomon desired to build in -Jerusalem, and in Lebanon, and throughout all the land of his -dominion. - -8:7 As for all the people that were left of the Hittites, and the -Amorites, and the Perizzites, and the Hivites, and the Jebusites, -which were not of Israel, 8:8 But of their children, who were left -after them in the land, whom the children of Israel consumed not, them -did Solomon make to pay tribute until this day. - -8:9 But of the children of Israel did Solomon make no servants for his -work; but they were men of war, and chief of his captains, and -captains of his chariots and horsemen. - -8:10 And these were the chief of king Solomon's officers, even two -hundred and fifty, that bare rule over the people. - -8:11 And Solomon brought up the daughter of Pharaoh out of the city of -David unto the house that he had built for her: for he said, My wife -shall not dwell in the house of David king of Israel, because the -places are holy, whereunto the ark of the LORD hath come. - -8:12 Then Solomon offered burnt offerings unto the LORD on the altar -of the LORD, which he had built before the porch, 8:13 Even after a -certain rate every day, offering according to the commandment of -Moses, on the sabbaths, and on the new moons, and on the solemn -feasts, three times in the year, even in the feast of unleavened -bread, and in the feast of weeks, and in the feast of tabernacles. - -8:14 And he appointed, according to the order of David his father, the -courses of the priests to their service, and the Levites to their -charges, to praise and minister before the priests, as the duty of -every day required: the porters also by their courses at every gate: -for so had David the man of God commanded. - -8:15 And they departed not from the commandment of the king unto the -priests and Levites concerning any matter, or concerning the -treasures. - -8:16 Now all the work of Solomon was prepared unto the day of the -foundation of the house of the LORD, and until it was finished. So the -house of the LORD was perfected. - -8:17 Then went Solomon to Eziongeber, and to Eloth, at the sea side in -the land of Edom. - -8:18 And Huram sent him by the hands of his servants ships, and -servants that had knowledge of the sea; and they went with the -servants of Solomon to Ophir, and took thence four hundred and fifty -talents of gold, and brought them to king Solomon. - -9:1 And when the queen of Sheba heard of the fame of Solomon, she came -to prove Solomon with hard questions at Jerusalem, with a very great -company, and camels that bare spices, and gold in abundance, and -precious stones: and when she was come to Solomon, she communed with -him of all that was in her heart. - -9:2 And Solomon told her all her questions: and there was nothing hid -from Solomon which he told her not. - -9:3 And when the queen of Sheba had seen the wisdom of Solomon, and -the house that he had built, 9:4 And the meat of his table, and the -sitting of his servants, and the attendance of his ministers, and -their apparel; his cupbearers also, and their apparel; and his ascent -by which he went up into the house of the LORD; there was no more -spirit in her. - -9:5 And she said to the king, It was a true report which I heard in -mine own land of thine acts, and of thy wisdom: 9:6 Howbeit I believed -not their words, until I came, and mine eyes had seen it: and, behold, -the one half of the greatness of thy wisdom was not told me: for thou -exceedest the fame that I heard. - -9:7 Happy are thy men, and happy are these thy servants, which stand -continually before thee, and hear thy wisdom. - -9:8 Blessed be the LORD thy God, which delighted in thee to set thee -on his throne, to be king for the LORD thy God: because thy God loved -Israel, to establish them for ever, therefore made he thee king over -them, to do judgment and justice. - -9:9 And she gave the king an hundred and twenty talents of gold, and -of spices great abundance, and precious stones: neither was there any -such spice as the queen of Sheba gave king Solomon. - -9:10 And the servants also of Huram, and the servants of Solomon, -which brought gold from Ophir, brought algum trees and precious -stones. - -9:11 And the king made of the algum trees terraces to the house of the -LORD, and to the king's palace, and harps and psalteries for singers: -and there were none such seen before in the land of Judah. - -9:12 And king Solomon gave to the queen of Sheba all her desire, -whatsoever she asked, beside that which she had brought unto the king. -So she turned, and went away to her own land, she and her servants. - -9:13 Now the weight of gold that came to Solomon in one year was six -hundred and threescore and six talents of gold; 9:14 Beside that which -chapmen and merchants brought. And all the kings of Arabia and -governors of the country brought gold and silver to Solomon. - -9:15 And king Solomon made two hundred targets of beaten gold: six -hundred shekels of beaten gold went to one target. - -9:16 And three hundred shields made he of beaten gold: three hundred -shekels of gold went to one shield. And the king put them in the house -of the forest of Lebanon. - -9:17 Moreover the king made a great throne of ivory, and overlaid it -with pure gold. - -9:18 And there were six steps to the throne, with a footstool of gold, -which were fastened to the throne, and stays on each side of the -sitting place, and two lions standing by the stays: 9:19 And twelve -lions stood there on the one side and on the other upon the six steps. -There was not the like made in any kingdom. - -9:20 And all the drinking vessels of king Solomon were of gold, and -all the vessels of the house of the forest of Lebanon were of pure -gold: none were of silver; it was not any thing accounted of in the -days of Solomon. - -9:21 For the king's ships went to Tarshish with the servants of Huram: -every three years once came the ships of Tarshish bringing gold, and -silver, ivory, and apes, and peacocks. - -9:22 And king Solomon passed all the kings of the earth in riches and -wisdom. - -9:23 And all the kings of the earth sought the presence of Solomon, to -hear his wisdom, that God had put in his heart. - -9:24 And they brought every man his present, vessels of silver, and -vessels of gold, and raiment, harness, and spices, horses, and mules, -a rate year by year. - -9:25 And Solomon had four thousand stalls for horses and chariots, and -twelve thousand horsemen; whom he bestowed in the chariot cities, and -with the king at Jerusalem. - -9:26 And he reigned over all the kings from the river even unto the -land of the Philistines, and to the border of Egypt. - -9:27 And the king made silver in Jerusalem as stones, and cedar trees -made he as the sycomore trees that are in the low plains in abundance. - -9:28 And they brought unto Solomon horses out of Egypt, and out of all -lands. - -9:29 Now the rest of the acts of Solomon, first and last, are they not -written in the book of Nathan the prophet, and in the prophecy of -Ahijah the Shilonite, and in the visions of Iddo the seer against -Jeroboam the son of Nebat? 9:30 And Solomon reigned in Jerusalem over -all Israel forty years. - -9:31 And Solomon slept with his fathers, and he was buried in the city -of David his father: and Rehoboam his son reigned in his stead. - -10:1 And Rehoboam went to Shechem: for to Shechem were all Israel come -to make him king. - -10:2 And it came to pass, when Jeroboam the son of Nebat, who was in -Egypt, whither he fled from the presence of Solomon the king, heard -it, that Jeroboam returned out of Egypt. - -10:3 And they sent and called him. So Jeroboam and all Israel came and -spake to Rehoboam, saying, 10:4 Thy father made our yoke grievous: now -therefore ease thou somewhat the grievous servitude of thy father, and -his heavy yoke that he put upon us, and we will serve thee. - -10:5 And he said unto them, Come again unto me after three days. And -the people departed. - -10:6 And king Rehoboam took counsel with the old men that had stood -before Solomon his father while he yet lived, saying, What counsel -give ye me to return answer to this people? 10:7 And they spake unto -him, saying, If thou be kind to this people, and please them, and -speak good words to them, they will be thy servants for ever. - -10:8 But he forsook the counsel which the old men gave him, and took -counsel with the young men that were brought up with him, that stood -before him. - -10:9 And he said unto them, What advice give ye that we may return -answer to this people, which have spoken to me, saying, Ease somewhat -the yoke that thy father did put upon us? 10:10 And the young men -that were brought up with him spake unto him, saying, Thus shalt thou -answer the people that spake unto thee, saying, Thy father made our -yoke heavy, but make thou it somewhat lighter for us; thus shalt thou -say unto them, My little finger shall be thicker than my father's -loins. - -10:11 For whereas my father put a heavy yoke upon you, I will put more -to your yoke: my father chastised you with whips, but I will chastise -you with scorpions. - -10:12 So Jeroboam and all the people came to Rehoboam on the third -day, as the king bade, saying, Come again to me on the third day. - -10:13 And the king answered them roughly; and king Rehoboam forsook -the counsel of the old men, 10:14 And answered them after the advice -of the young men, saying, My father made your yoke heavy, but I will -add thereto: my father chastised you with whips, but I will chastise -you with scorpions. - -10:15 So the king hearkened not unto the people: for the cause was of -God, that the LORD might perform his word, which he spake by the hand -of Ahijah the Shilonite to Jeroboam the son of Nebat. - -10:16 And when all Israel saw that the king would not hearken unto -them, the people answered the king, saying, What portion have we in -David? and we have none inheritance in the son of Jesse: every man to -your tents, O Israel: and now, David, see to thine own house. So all -Israel went to their tents. - -10:17 But as for the children of Israel that dwelt in the cities of -Judah, Rehoboam reigned over them. - -10:18 Then king Rehoboam sent Hadoram that was over the tribute; and -the children of Israel stoned him with stones, that he died. But king -Rehoboam made speed to get him up to his chariot, to flee to -Jerusalem. - -10:19 And Israel rebelled against the house of David unto this day. - -11:1 And when Rehoboam was come to Jerusalem, he gathered of the house -of Judah and Benjamin an hundred and fourscore thousand chosen men, -which were warriors, to fight against Israel, that he might bring the -kingdom again to Rehoboam. - -11:2 But the word of the LORD came to Shemaiah the man of God, saying, -11:3 Speak unto Rehoboam the son of Solomon, king of Judah, and to all -Israel in Judah and Benjamin, saying, 11:4 Thus saith the LORD, Ye -shall not go up, nor fight against your brethren: return every man to -his house: for this thing is done of me. And they obeyed the words of -the LORD, and returned from going against Jeroboam. - -11:5 And Rehoboam dwelt in Jerusalem, and built cities for defence in -Judah. - -11:6 He built even Bethlehem, and Etam, and Tekoa, 11:7 And Bethzur, -and Shoco, and Adullam, 11:8 And Gath, and Mareshah, and Ziph, 11:9 -And Adoraim, and Lachish, and Azekah, 11:10 And Zorah, and Aijalon, -and Hebron, which are in Judah and in Benjamin fenced cities. - -11:11 And he fortified the strong holds, and put captains in them, and -store of victual, and of oil and wine. - -11:12 And in every several city he put shields and spears, and made -them exceeding strong, having Judah and Benjamin on his side. - -11:13 And the priests and the Levites that were in all Israel resorted -to him out of all their coasts. - -11:14 For the Levites left their suburbs and their possession, and -came to Judah and Jerusalem: for Jeroboam and his sons had cast them -off from executing the priest's office unto the LORD: 11:15 And he -ordained him priests for the high places, and for the devils, and for -the calves which he had made. - -11:16 And after them out of all the tribes of Israel such as set their -hearts to seek the LORD God of Israel came to Jerusalem, to sacrifice -unto the LORD God of their fathers. - -11:17 So they strengthened the kingdom of Judah, and made Rehoboam the -son of Solomon strong, three years: for three years they walked in the -way of David and Solomon. - -11:18 And Rehoboam took him Mahalath the daughter of Jerimoth the son -of David to wife, and Abihail the daughter of Eliab the son of Jesse; -11:19 Which bare him children; Jeush, and Shamariah, and Zaham. - -11:20 And after her he took Maachah the daughter of Absalom; which -bare him Abijah, and Attai, and Ziza, and Shelomith. - -11:21 And Rehoboam loved Maachah the daughter of Absalom above all his -wives and his concubines: (for he took eighteen wives, and threescore -concubines; and begat twenty and eight sons, and threescore -daughters.) 11:22 And Rehoboam made Abijah the son of Maachah the -chief, to be ruler among his brethren: for he thought to make him -king. - -11:23 And he dealt wisely, and dispersed of all his children -throughout all the countries of Judah and Benjamin, unto every fenced -city: and he gave them victual in abundance. And he desired many -wives. - -12:1 And it came to pass, when Rehoboam had established the kingdom, -and had strengthened himself, he forsook the law of the LORD, and all -Israel with him. - -12:2 And it came to pass, that in the fifth year of king Rehoboam -Shishak king of Egypt came up against Jerusalem, because they had -transgressed against the LORD, 12:3 With twelve hundred chariots, and -threescore thousand horsemen: and the people were without number that -came with him out of Egypt; the Lubims, the Sukkiims, and the -Ethiopians. - -12:4 And he took the fenced cities which pertained to Judah, and came -to Jerusalem. - -12:5 Then came Shemaiah the prophet to Rehoboam, and to the princes of -Judah, that were gathered together to Jerusalem because of Shishak, -and said unto them, Thus saith the LORD, Ye have forsaken me, and -therefore have I also left you in the hand of Shishak. - -12:6 Whereupon the princes of Israel and the king humbled themselves; -and they said, The LORD is righteous. - -12:7 And when the LORD saw that they humbled themselves, the word of -the LORD came to Shemaiah, saying, They have humbled themselves; -therefore I will not destroy them, but I will grant them some -deliverance; and my wrath shall not be poured out upon Jerusalem by -the hand of Shishak. - -12:8 Nevertheless they shall be his servants; that they may know my -service, and the service of the kingdoms of the countries. - -12:9 So Shishak king of Egypt came up against Jerusalem, and took away -the treasures of the house of the LORD, and the treasures of the -king's house; he took all: he carried away also the shields of gold -which Solomon had made. - -12:10 Instead of which king Rehoboam made shields of brass, and -committed them to the hands of the chief of the guard, that kept the -entrance of the king's house. - -12:11 And when the king entered into the house of the LORD, the guard -came and fetched them, and brought them again into the guard chamber. - -12:12 And when he humbled himself, the wrath of the LORD turned from -him, that he would not destroy him altogether: and also in Judah -things went well. - -12:13 So king Rehoboam strengthened himself in Jerusalem, and reigned: -for Rehoboam was one and forty years old when he began to reign, and -he reigned seventeen years in Jerusalem, the city which the LORD had -chosen out of all the tribes of Israel, to put his name there. And his -mother's name was Naamah an Ammonitess. - -12:14 And he did evil, because he prepared not his heart to seek the -LORD. - -12:15 Now the acts of Rehoboam, first and last, are they not written -in the book of Shemaiah the prophet, and of Iddo the seer concerning -genealogies? And there were wars between Rehoboam and Jeroboam -continually. - -12:16 And Rehoboam slept with his fathers, and was buried in the city -of David: and Abijah his son reigned in his stead. - -13:1 Now in the eighteenth year of king Jeroboam began Abijah to reign -over Judah. - -13:2 He reigned three years in Jerusalem. His mother's name also was -Michaiah the daughter of Uriel of Gibeah. And there was war between -Abijah and Jeroboam. - -13:3 And Abijah set the battle in array with an army of valiant men of -war, even four hundred thousand chosen men: Jeroboam also set the -battle in array against him with eight hundred thousand chosen men, -being mighty men of valour. - -13:4 And Abijah stood up upon mount Zemaraim, which is in mount -Ephraim, and said, Hear me, thou Jeroboam, and all Israel; 13:5 Ought -ye not to know that the LORD God of Israel gave the kingdom over -Israel to David for ever, even to him and to his sons by a covenant of -salt? 13:6 Yet Jeroboam the son of Nebat, the servant of Solomon the -son of David, is risen up, and hath rebelled against his lord. - -13:7 And there are gathered unto him vain men, the children of Belial, -and have strengthened themselves against Rehoboam the son of Solomon, -when Rehoboam was young and tenderhearted, and could not withstand -them. - -13:8 And now ye think to withstand the kingdom of the LORD in the hand -of the sons of David; and ye be a great multitude, and there are with -your golden calves, which Jeroboam made you for gods. - -13:9 Have ye not cast out the priests of the LORD, the sons of Aaron, -and the Levites, and have made you priests after the manner of the -nations of other lands? so that whosoever cometh to consecrate himself -with a young bullock and seven rams, the same may be a priest of them -that are no gods. - -13:10 But as for us, the LORD is our God, and we have not forsaken -him; and the priests, which minister unto the LORD, are the sons of -Aaron, and the Levites wait upon their business: 13:11 And they burn -unto the LORD every morning and every evening burnt sacrifices and -sweet incense: the shewbread also set they in order upon the pure -table; and the candlestick of gold with the lamps thereof, to burn -every evening: for we keep the charge of the LORD our God; but ye have -forsaken him. - -13:12 And, behold, God himself is with us for our captain, and his -priests with sounding trumpets to cry alarm against you. O children of -Israel, fight ye not against the LORD God of your fathers; for ye -shall not prosper. - -13:13 But Jeroboam caused an ambushment to come about behind them: so -they were before Judah, and the ambushment was behind them. - -13:14 And when Judah looked back, behold, the battle was before and -behind: and they cried unto the LORD, and the priests sounded with the -trumpets. - -13:15 Then the men of Judah gave a shout: and as the men of Judah -shouted, it came to pass, that God smote Jeroboam and all Israel -before Abijah and Judah. - -13:16 And the children of Israel fled before Judah: and God delivered -them into their hand. - -13:17 And Abijah and his people slew them with a great slaughter: so -there fell down slain of Israel five hundred thousand chosen men. - -13:18 Thus the children of Israel were brought under at that time, and -the children of Judah prevailed, because they relied upon the LORD God -of their fathers. - -13:19 And Abijah pursued after Jeroboam, and took cities from him, -Bethel with the towns thereof, and Jeshanah with the towns thereof, -and Ephraim with the towns thereof. - -13:20 Neither did Jeroboam recover strength again in the days of -Abijah: and the LORD struck him, and he died. - -13:21 But Abijah waxed mighty, and married fourteen wives, and begat -twenty and two sons, and sixteen daughters. - -13:22 And the rest of the acts of Abijah, and his ways, and his -sayings, are written in the story of the prophet Iddo. - -14:1 So Abijah slept with his fathers, and they buried him in the city -of David: and Asa his son reigned in his stead. In his days the land -was quiet ten years. - -14:2 And Asa did that which was good and right in the eyes of the LORD -his God: 14:3 For he took away the altars of the strange gods, and the -high places, and brake down the images, and cut down the groves: 14:4 -And commanded Judah to seek the LORD God of their fathers, and to do -the law and the commandment. - -14:5 Also he took away out of all the cities of Judah the high places -and the images: and the kingdom was quiet before him. - -14:6 And he built fenced cities in Judah: for the land had rest, and -he had no war in those years; because the LORD had given him rest. - -14:7 Therefore he said unto Judah, Let us build these cities, and make -about them walls, and towers, gates, and bars, while the land is yet -before us; because we have sought the LORD our God, we have sought -him, and he hath given us rest on every side. So they built and -prospered. - -14:8 And Asa had an army of men that bare targets and spears, out of -Judah three hundred thousand; and out of Benjamin, that bare shields -and drew bows, two hundred and fourscore thousand: all these were -mighty men of valour. - -14:9 And there came out against them Zerah the Ethiopian with an host -of a thousand thousand, and three hundred chariots; and came unto -Mareshah. - -14:10 Then Asa went out against him, and they set the battle in array -in the valley of Zephathah at Mareshah. - -14:11 And Asa cried unto the LORD his God, and said, LORD, it is -nothing with thee to help, whether with many, or with them that have -no power: help us, O LORD our God; for we rest on thee, and in thy -name we go against this multitude. O LORD, thou art our God; let no -man prevail against thee. - -14:12 So the LORD smote the Ethiopians before Asa, and before Judah; -and the Ethiopians fled. - -14:13 And Asa and the people that were with him pursued them unto -Gerar: and the Ethiopians were overthrown, that they could not recover -themselves; for they were destroyed before the LORD, and before his -host; and they carried away very much spoil. - -14:14 And they smote all the cities round about Gerar; for the fear of -the LORD came upon them: and they spoiled all the cities; for there -was exceeding much spoil in them. - -14:15 They smote also the tents of cattle, and carried away sheep and -camels in abundance, and returned to Jerusalem. - -15:1 And the Spirit of God came upon Azariah the son of Oded: 15:2 And -he went out to meet Asa, and said unto him, Hear ye me, Asa, and all -Judah and Benjamin; The LORD is with you, while ye be with him; and if -ye seek him, he will be found of you; but if ye forsake him, he will -forsake you. - -15:3 Now for a long season Israel hath been without the true God, and -without a teaching priest, and without law. - -15:4 But when they in their trouble did turn unto the LORD God of -Israel, and sought him, he was found of them. - -15:5 And in those times there was no peace to him that went out, nor -to him that came in, but great vexations were upon all the inhabitants -of the countries. - -15:6 And nation was destroyed of nation, and city of city: for God did -vex them with all adversity. - -15:7 Be ye strong therefore, and let not your hands be weak: for your -work shall be rewarded. - -15:8 And when Asa heard these words, and the prophecy of Oded the -prophet, he took courage, and put away the abominable idols out of all -the land of Judah and Benjamin, and out of the cities which he had -taken from mount Ephraim, and renewed the altar of the LORD, that was -before the porch of the LORD. - -15:9 And he gathered all Judah and Benjamin, and the strangers with -them out of Ephraim and Manasseh, and out of Simeon: for they fell to -him out of Israel in abundance, when they saw that the LORD his God -was with him. - -15:10 So they gathered themselves together at Jerusalem in the third -month, in the fifteenth year of the reign of Asa. - -15:11 And they offered unto the LORD the same time, of the spoil which -they had brought, seven hundred oxen and seven thousand sheep. - -15:12 And they entered into a covenant to seek the LORD God of their -fathers with all their heart and with all their soul; 15:13 That -whosoever would not seek the LORD God of Israel should be put to -death, whether small or great, whether man or woman. - -15:14 And they sware unto the LORD with a loud voice, and with -shouting, and with trumpets, and with cornets. - -15:15 And all Judah rejoiced at the oath: for they had sworn with all -their heart, and sought him with their whole desire; and he was found -of them: and the LORD gave them rest round about. - -15:16 And also concerning Maachah the mother of Asa the king, he -removed her from being queen, because she had made an idol in a grove: -and Asa cut down her idol, and stamped it, and burnt it at the brook -Kidron. - -15:17 But the high places were not taken away out of Israel: -nevertheless the heart of Asa was perfect all his days. - -15:18 And he brought into the house of God the things that his father -had dedicated, and that he himself had dedicated, silver, and gold, -and vessels. - -15:19 And there was no more war unto the five and thirtieth year of -the reign of Asa. - -16:1 In the six and thirtieth year of the reign of Asa Baasha king of -Israel came up against Judah, and built Ramah, to the intent that he -might let none go out or come in to Asa king of Judah. - -16:2 Then Asa brought out silver and gold out of the treasures of the -house of the LORD and of the king's house, and sent to Benhadad king -of Syria, that dwelt at Damascus, saying, 16:3 There is a league -between me and thee, as there was between my father and thy father: -behold, I have sent thee silver and gold; go, break thy league with -Baasha king of Israel, that he may depart from me. - -16:4 And Benhadad hearkened unto king Asa, and sent the captains of -his armies against the cities of Israel; and they smote Ijon, and Dan, -and Abelmaim, and all the store cities of Naphtali. - -16:5 And it came to pass, when Baasha heard it, that he left off -building of Ramah, and let his work cease. - -16:6 Then Asa the king took all Judah; and they carried away the -stones of Ramah, and the timber thereof, wherewith Baasha was -building; and he built therewith Geba and Mizpah. - -16:7 And at that time Hanani the seer came to Asa king of Judah, and -said unto him, Because thou hast relied on the king of Syria, and not -relied on the LORD thy God, therefore is the host of the king of Syria -escaped out of thine hand. - -16:8 Were not the Ethiopians and the Lubims a huge host, with very -many chariots and horsemen? yet, because thou didst rely on the LORD, -he delivered them into thine hand. - -16:9 For the eyes of the LORD run to and fro throughout the whole -earth, to shew himself strong in the behalf of them whose heart is -perfect toward him. Herein thou hast done foolishly: therefore from -henceforth thou shalt have wars. - -16:10 Then Asa was wroth with the seer, and put him in a prison house; -for he was in a rage with him because of this thing. And Asa oppressed -some of the people the same time. - -16:11 And, behold, the acts of Asa, first and last, lo, they are -written in the book of the kings of Judah and Israel. - -16:12 And Asa in the thirty and ninth year of his reign was diseased -in his feet, until his disease was exceeding great: yet in his disease -he sought not to the LORD, but to the physicians. - -16:13 And Asa slept with his fathers, and died in the one and fortieth -year of his reign. - -16:14 And they buried him in his own sepulchres, which he had made for -himself in the city of David, and laid him in the bed which was filled -with sweet odours and divers kinds of spices prepared by the -apothecaries' art: and they made a very great burning for him. - -17:1 And Jehoshaphat his son reigned in his stead, and strengthened -himself against Israel. - -17:2 And he placed forces in all the fenced cities of Judah, and set -garrisons in the land of Judah, and in the cities of Ephraim, which -Asa his father had taken. - -17:3 And the LORD was with Jehoshaphat, because he walked in the first -ways of his father David, and sought not unto Baalim; 17:4 But sought -to the Lord God of his father, and walked in his commandments, and not -after the doings of Israel. - -17:5 Therefore the LORD stablished the kingdom in his hand; and all -Judah brought to Jehoshaphat presents; and he had riches and honour in -abundance. - -17:6 And his heart was lifted up in the ways of the LORD: moreover he -took away the high places and groves out of Judah. - -17:7 Also in the third year of his reign he sent to his princes, even -to Benhail, and to Obadiah, and to Zechariah, and to Nethaneel, and to -Michaiah, to teach in the cities of Judah. - -17:8 And with them he sent Levites, even Shemaiah, and Nethaniah, and -Zebadiah, and Asahel, and Shemiramoth, and Jehonathan, and Adonijah, -and Tobijah, and Tobadonijah, Levites; and with them Elishama and -Jehoram, priests. - -17:9 And they taught in Judah, and had the book of the law of the LORD -with them, and went about throughout all the cities of Judah, and -taught the people. - -17:10 And the fear of the LORD fell upon all the kingdoms of the lands -that were round about Judah, so that they made no war against -Jehoshaphat. - -17:11 Also some of the Philistines brought Jehoshaphat presents, and -tribute silver; and the Arabians brought him flocks, seven thousand -and seven hundred rams, and seven thousand and seven hundred he goats. - -17:12 And Jehoshaphat waxed great exceedingly; and he built in Judah -castles, and cities of store. - -17:13 And he had much business in the cities of Judah: and the men of -war, mighty men of valour, were in Jerusalem. - -17:14 And these are the numbers of them according to the house of -their fathers: Of Judah, the captains of thousands; Adnah the chief, -and with him mighty men of valour three hundred thousand. - -17:15 And next to him was Jehohanan the captain, and with him two -hundred and fourscore thousand. - -17:16 And next him was Amasiah the son of Zichri, who willingly -offered himself unto the LORD; and with him two hundred thousand -mighty men of valour. - -17:17 And of Benjamin; Eliada a mighty man of valour, and with him -armed men with bow and shield two hundred thousand. - -17:18 And next him was Jehozabad, and with him an hundred and -fourscore thousand ready prepared for the war. - -17:19 These waited on the king, beside those whom the king put in the -fenced cities throughout all Judah. - -18:1 Now Jehoshaphat had riches and honour in abundance, and joined -affinity with Ahab. - -18:2 And after certain years he went down to Ahab to Samaria. And Ahab -killed sheep and oxen for him in abundance, and for the people that he -had with him, and persuaded him to go up with him to Ramothgilead. - -18:3 And Ahab king of Israel said unto Jehoshaphat king of Judah, Wilt -thou go with me to Ramothgilead? And he answered him, I am as thou -art, and my people as thy people; and we will be with thee in the war. - -18:4 And Jehoshaphat said unto the king of Israel, Enquire, I pray -thee, at the word of the LORD to day. - -18:5 Therefore the king of Israel gathered together of prophets four -hundred men, and said unto them, Shall we go to Ramothgilead to -battle, or shall I forbear? And they said, Go up; for God will deliver -it into the king's hand. - -18:6 But Jehoshaphat said, Is there not here a prophet of the LORD -besides, that we might enquire of him? 18:7 And the king of Israel -said unto Jehoshaphat, There is yet one man, by whom we may enquire of -the LORD: but I hate him; for he never prophesied good unto me, but -always evil: the same is Micaiah the son of Imla. And Jehoshaphat -said, Let not the king say so. - -18:8 And the king of Israel called for one of his officers, and said, -Fetch quickly Micaiah the son of Imla. - -18:9 And the king of Israel and Jehoshaphat king of Judah sat either -of them on his throne, clothed in their robes, and they sat in a void -place at the entering in of the gate of Samaria; and all the prophets -prophesied before them. - -18:10 And Zedekiah the son of Chenaanah had made him horns of iron, -and said, Thus saith the LORD, With these thou shalt push Syria until -they be consumed. - -18:11 And all the prophets prophesied so, saying, Go up to -Ramothgilead, and prosper: for the LORD shall deliver it into the hand -of the king. - -18:12 And the messenger that went to call Micaiah spake to him, -saying, Behold, the words of the prophets declare good to the king -with one assent; let thy word therefore, I pray thee, be like one of -their's, and speak thou good. - -18:13 And Micaiah said, As the LORD liveth, even what my God saith, -that will I speak. - -18:14 And when he was come to the king, the king said unto him, -Micaiah, shall we go to Ramothgilead to battle, or shall I forbear? -And he said, Go ye up, and prosper, and they shall be delivered into -your hand. - -18:15 And the king said to him, How many times shall I adjure thee -that thou say nothing but the truth to me in the name of the LORD? -18:16 Then he said, I did see all Israel scattered upon the mountains, -as sheep that have no shepherd: and the LORD said, These have no -master; let them return therefore every man to his house in peace. - -18:17 And the king of Israel said to Jehoshaphat, Did I not tell thee -that he would not prophesy good unto me, but evil? 18:18 Again he -said, Therefore hear the word of the LORD; I saw the LORD sitting upon -his throne, and all the host of heaven standing on his right hand and -on his left. - -18:19 And the LORD said, Who shall entice Ahab king of Israel, that he -may go up and fall at Ramothgilead? And one spake saying after this -manner, and another saying after that manner. - -18:20 Then there came out a spirit, and stood before the LORD, and -said, I will entice him. And the LORD said unto him, Wherewith? 18:21 -And he said, I will go out, and be a lying spirit in the mouth of all -his prophets. And the Lord said, Thou shalt entice him, and thou shalt -also prevail: go out, and do even so. - -18:22 Now therefore, behold, the LORD hath put a lying spirit in the -mouth of these thy prophets, and the LORD hath spoken evil against -thee. - -18:23 Then Zedekiah the son of Chenaanah came near, and smote Micaiah -upon the cheek, and said, Which way went the Spirit of the LORD from -me to speak unto thee? 18:24 And Micaiah said, Behold, thou shalt see -on that day when thou shalt go into an inner chamber to hide thyself. - -18:25 Then the king of Israel said, Take ye Micaiah, and carry him -back to Amon the governor of the city, and to Joash the king's son; -18:26 And say, Thus saith the king, Put this fellow in the prison, and -feed him with bread of affliction and with water of affliction, until -I return in peace. - -18:27 And Micaiah said, If thou certainly return in peace, then hath -not the LORD spoken by me. And he said, Hearken, all ye people. - -18:28 So the king of Israel and Jehoshaphat the king of Judah went up -to Ramothgilead. - -18:29 And the king of Israel said unto Jehoshaphat, I will disguise -myself, and I will go to the battle; but put thou on thy robes. So the -king of Israel disguised himself; and they went to the battle. - -18:30 Now the king of Syria had commanded the captains of the chariots -that were with him, saying, Fight ye not with small or great, save -only with the king of Israel. - -18:31 And it came to pass, when the captains of the chariots saw -Jehoshaphat, that they said, It is the king of Israel. Therefore they -compassed about him to fight: but Jehoshaphat cried out, and the LORD -helped him; and God moved them to depart from him. - -18:32 For it came to pass, that, when the captains of the chariots -perceived that it was not the king of Israel, they turned back again -from pursuing him. - -18:33 And a certain man drew a bow at a venture, and smote the king of -Israel between the joints of the harness: therefore he said to his -chariot man, Turn thine hand, that thou mayest carry me out of the -host; for I am wounded. - -18:34 And the battle increased that day: howbeit the king of Israel -stayed himself up in his chariot against the Syrians until the even: -and about the time of the sun going down he died. - -19:1 And Jehoshaphat the king of Judah returned to his house in peace -to Jerusalem. - -19:2 And Jehu the son of Hanani the seer went out to meet him, and -said to king Jehoshaphat, Shouldest thou help the ungodly, and love -them that hate the LORD? therefore is wrath upon thee from before the -LORD. - -19:3 Nevertheless there are good things found in thee, in that thou -hast taken away the groves out of the land, and hast prepared thine -heart to seek God. - -19:4 And Jehoshaphat dwelt at Jerusalem: and he went out again through -the people from Beersheba to mount Ephraim, and brought them back unto -the LORD God of their fathers. - -19:5 And he set judges in the land throughout all the fenced cities of -Judah, city by city, 19:6 And said to the judges, Take heed what ye -do: for ye judge not for man, but for the LORD, who is with you in the -judgment. - -19:7 Wherefore now let the fear of the LORD be upon you; take heed and -do it: for there is no iniquity with the LORD our God, nor respect of -persons, nor taking of gifts. - -19:8 Moreover in Jerusalem did Jehoshaphat set of the Levites, and of -the priests, and of the chief of the fathers of Israel, for the -judgment of the LORD, and for controversies, when they returned to -Jerusalem. - -19:9 And he charged them, saying, Thus shall ye do in the fear of the -LORD, faithfully, and with a perfect heart. - -19:10 And what cause soever shall come to you of your brethren that -dwell in your cities, between blood and blood, between law and -commandment, statutes and judgments, ye shall even warn them that they -trespass not against the LORD, and so wrath come upon you, and upon -your brethren: this do, and ye shall not trespass. - -19:11 And, behold, Amariah the chief priest is over you in all matters -of the LORD; and Zebadiah the son of Ishmael, the ruler of the house -of Judah, for all the king's matters: also the Levites shall be -officers before you. Deal courageously, and the LORD shall be with the -good. - -20:1 It came to pass after this also, that the children of Moab, and -the children of Ammon, and with them other beside the Ammonites, came -against Jehoshaphat to battle. - -20:2 Then there came some that told Jehoshaphat, saying, There cometh -a great multitude against thee from beyond the sea on this side Syria; -and, behold, they be in Hazazontamar, which is Engedi. - -20:3 And Jehoshaphat feared, and set himself to seek the LORD, and -proclaimed a fast throughout all Judah. - -20:4 And Judah gathered themselves together, to ask help of the LORD: -even out of all the cities of Judah they came to seek the LORD. - -20:5 And Jehoshaphat stood in the congregation of Judah and Jerusalem, -in the house of the LORD, before the new court, 20:6 And said, O LORD -God of our fathers, art not thou God in heaven? and rulest not thou -over all the kingdoms of the heathen? and in thine hand is there not -power and might, so that none is able to withstand thee? 20:7 Art not -thou our God, who didst drive out the inhabitants of this land before -thy people Israel, and gavest it to the seed of Abraham thy friend for -ever? 20:8 And they dwelt therein, and have built thee a sanctuary -therein for thy name, saying, 20:9 If, when evil cometh upon us, as -the sword, judgment, or pestilence, or famine, we stand before this -house, and in thy presence, (for thy name is in this house,) and cry -unto thee in our affliction, then thou wilt hear and help. - -20:10 And now, behold, the children of Ammon and Moab and mount Seir, -whom thou wouldest not let Israel invade, when they came out of the -land of Egypt, but they turned from them, and destroyed them not; -20:11 Behold, I say, how they reward us, to come to cast us out of thy -possession, which thou hast given us to inherit. - -20:12 O our God, wilt thou not judge them? for we have no might -against this great company that cometh against us; neither know we -what to do: but our eyes are upon thee. - -20:13 And all Judah stood before the LORD, with their little ones, -their wives, and their children. - -20:14 Then upon Jahaziel the son of Zechariah, the son of Benaiah, the -son of Jeiel, the son of Mattaniah, a Levite of the sons of Asaph, -came the Spirit of the LORD in the midst of the congregation; 20:15 -And he said, Hearken ye, all Judah, and ye inhabitants of Jerusalem, -and thou king Jehoshaphat, Thus saith the LORD unto you, Be not afraid -nor dismayed by reason of this great multitude; for the battle is not -yours, but God's. - -20:16 To morrow go ye down against them: behold, they come up by the -cliff of Ziz; and ye shall find them at the end of the brook, before -the wilderness of Jeruel. - -20:17 Ye shall not need to fight in this battle: set yourselves, stand -ye still, and see the salvation of the LORD with you, O Judah and -Jerusalem: fear not, nor be dismayed; to morrow go out against them: -for the LORD will be with you. - -20:18 And Jehoshaphat bowed his head with his face to the ground: and -all Judah and the inhabitants of Jerusalem fell before the LORD, -worshipping the LORD. - -20:19 And the Levites, of the children of the Kohathites, and of the -children of the Korhites, stood up to praise the LORD God of Israel -with a loud voice on high. - -20:20 And they rose early in the morning, and went forth into the -wilderness of Tekoa: and as they went forth, Jehoshaphat stood and -said, Hear me, O Judah, and ye inhabitants of Jerusalem; Believe in -the LORD your God, so shall ye be established; believe his prophets, -so shall ye prosper. - -20:21 And when he had consulted with the people, he appointed singers -unto the LORD, and that should praise the beauty of holiness, as they -went out before the army, and to say, Praise the LORD; for his mercy -endureth for ever. - -20:22 And when they began to sing and to praise, the LORD set -ambushments against the children of Ammon, Moab, and mount Seir, which -were come against Judah; and they were smitten. - -20:23 For the children of Ammon and Moab stood up against the -inhabitants of mount Seir, utterly to slay and destroy them: and when -they had made an end of the inhabitants of Seir, every one helped to -destroy another. - -20:24 And when Judah came toward the watch tower in the wilderness, -they looked unto the multitude, and, behold, they were dead bodies -fallen to the earth, and none escaped. - -20:25 And when Jehoshaphat and his people came to take away the spoil -of them, they found among them in abundance both riches with the dead -bodies, and precious jewels, which they stripped off for themselves, -more than they could carry away: and they were three days in gathering -of the spoil, it was so much. - -20:26 And on the fourth day they assembled themselves in the valley of -Berachah; for there they blessed the LORD: therefore the name of the -same place was called, The valley of Berachah, unto this day. - -20:27 Then they returned, every man of Judah and Jerusalem, and -Jehoshaphat in the forefront of them, to go again to Jerusalem with -joy; for the LORD had made them to rejoice over their enemies. - -20:28 And they came to Jerusalem with psalteries and harps and -trumpets unto the house of the LORD. - -20:29 And the fear of God was on all the kingdoms of those countries, -when they had heard that the LORD fought against the enemies of -Israel. - -20:30 So the realm of Jehoshaphat was quiet: for his God gave him rest -round about. - -20:31 And Jehoshaphat reigned over Judah: he was thirty and five years -old when he began to reign, and he reigned twenty and five years in -Jerusalem. - -And his mother's name was Azubah the daughter of Shilhi. - -20:32 And he walked in the way of Asa his father, and departed not -from it, doing that which was right in the sight of the LORD. - -20:33 Howbeit the high places were not taken away: for as yet the -people had not prepared their hearts unto the God of their fathers. - -20:34 Now the rest of the acts of Jehoshaphat, first and last, behold, -they are written in the book of Jehu the son of Hanani, who is -mentioned in the book of the kings of Israel. - -20:35 And after this did Jehoshaphat king of Judah join himself with -Ahaziah king of Israel, who did very wickedly: 20:36 And he joined -himself with him to make ships to go to Tarshish: and they made the -ships in Eziongaber. - -20:37 Then Eliezer the son of Dodavah of Mareshah prophesied against -Jehoshaphat, saying, Because thou hast joined thyself with Ahaziah, -the LORD hath broken thy works. And the ships were broken, that they -were not able to go to Tarshish. - -21:1 Now Jehoshaphat slept with his fathers, and was buried with his -fathers in the city of David. And Jehoram his son reigned in his -stead. - -21:2 And he had brethren the sons of Jehoshaphat, Azariah, and Jehiel, -and Zechariah, and Azariah, and Michael, and Shephatiah: all these -were the sons of Jehoshaphat king of Israel. - -21:3 And their father gave them great gifts of silver, and of gold, -and of precious things, with fenced cities in Judah: but the kingdom -gave he to Jehoram; because he was the firstborn. - -21:4 Now when Jehoram was risen up to the kingdom of his father, he -strengthened himself, and slew all his brethren with the sword, and -divers also of the princes of Israel. - -21:5 Jehoram was thirty and two years old when he began to reign, and -he reigned eight years in Jerusalem. - -21:6 And he walked in the way of the kings of Israel, like as did the -house of Ahab: for he had the daughter of Ahab to wife: and he wrought -that which was evil in the eyes of the LORD. - -21:7 Howbeit the LORD would not destroy the house of David, because of -the covenant that he had made with David, and as he promised to give a -light to him and to his sons for ever. - -21:8 In his days the Edomites revolted from under the dominion of -Judah, and made themselves a king. - -21:9 Then Jehoram went forth with his princes, and all his chariots -with him: and he rose up by night, and smote the Edomites which -compassed him in, and the captains of the chariots. - -21:10 So the Edomites revolted from under the hand of Judah unto this -day. - -The same time also did Libnah revolt from under his hand; because he -had forsaken the LORD God of his fathers. - -21:11 Moreover he made high places in the mountains of Judah and -caused the inhabitants of Jerusalem to commit fornication, and -compelled Judah thereto. - -21:12 And there came a writing to him from Elijah the prophet, saying, -Thus saith the LORD God of David thy father, Because thou hast not -walked in the ways of Jehoshaphat thy father, nor in the ways of Asa -king of Judah, 21:13 But hast walked in the way of the kings of -Israel, and hast made Judah and the inhabitants of Jerusalem to go a -whoring, like to the whoredoms of the house of Ahab, and also hast -slain thy brethren of thy father's house, which were better than -thyself: 21:14 Behold, with a great plague will the LORD smite thy -people, and thy children, and thy wives, and all thy goods: 21:15 And -thou shalt have great sickness by disease of thy bowels, until thy -bowels fall out by reason of the sickness day by day. - -21:16 Moreover the LORD stirred up against Jehoram the spirit of the -Philistines, and of the Arabians, that were near the Ethiopians: 21:17 -And they came up into Judah, and brake into it, and carried away all -the substance that was found in the king's house, and his sons also, -and his wives; so that there was never a son left him, save Jehoahaz, -the youngest of his sons. - -21:18 And after all this the LORD smote him in his bowels with an -incurable disease. - -21:19 And it came to pass, that in process of time, after the end of -two years, his bowels fell out by reason of his sickness: so he died -of sore diseases. And his people made no burning for him, like the -burning of his fathers. - -21:20 Thirty and two years old was he when he began to reign, and he -reigned in Jerusalem eight years, and departed without being desired. -Howbeit they buried him in the city of David, but not in the -sepulchres of the kings. - -22:1 And the inhabitants of Jerusalem made Ahaziah his youngest son -king in his stead: for the band of men that came with the Arabians to -the camp had slain all the eldest. So Ahaziah the son of Jehoram king -of Judah reigned. - -22:2 Forty and two years old was Ahaziah when he began to reign, and -he reigned one year in Jerusalem. His mother's name also was Athaliah -the daughter of Omri. - -22:3 He also walked in the ways of the house of Ahab: for his mother -was his counsellor to do wickedly. - -22:4 Wherefore he did evil in the sight of the LORD like the house of -Ahab: for they were his counsellors after the death of his father to -his destruction. - -22:5 He walked also after their counsel, and went with Jehoram the son -of Ahab king of Israel to war against Hazael king of Syria at -Ramothgilead: and the Syrians smote Joram. - -22:6 And he returned to be healed in Jezreel because of the wounds -which were given him at Ramah, when he fought with Hazael king of -Syria. And Azariah the son of Jehoram king of Judah went down to see -Jehoram the son of Ahab at Jezreel, because he was sick. - -22:7 And the destruction of Ahaziah was of God by coming to Joram: for -when he was come, he went out with Jehoram against Jehu the son of -Nimshi, whom the LORD had anointed to cut off the house of Ahab. - -22:8 And it came to pass, that, when Jehu was executing judgment upon -the house of Ahab, and found the princes of Judah, and the sons of the -brethren of Ahaziah, that ministered to Ahaziah, he slew them. - -22:9 And he sought Ahaziah: and they caught him, (for he was hid in -Samaria,) and brought him to Jehu: and when they had slain him, they -buried him: Because, said they, he is the son of Jehoshaphat, who -sought the LORD with all his heart. So the house of Ahaziah had no -power to keep still the kingdom. - -22:10 But when Athaliah the mother of Ahaziah saw that her son was -dead, she arose and destroyed all the seed royal of the house of -Judah. - -22:11 But Jehoshabeath, the daughter of the king, took Joash the son -of Ahaziah, and stole him from among the king's sons that were slain, -and put him and his nurse in a bedchamber. So Jehoshabeath, the -daughter of king Jehoram, the wife of Jehoiada the priest, (for she -was the sister of Ahaziah,) hid him from Athaliah, so that she slew -him not. - -22:12 And he was with them hid in the house of God six years: and -Athaliah reigned over the land. - -23:1 And in the seventh year Jehoiada strengthened himself, and took -the captains of hundreds, Azariah the son of Jeroham, and Ishmael the -son of Jehohanan, and Azariah the son of Obed, and Maaseiah the son of -Adaiah, and Elishaphat the son of Zichri, into covenant with him. - -23:2 And they went about in Judah, and gathered the Levites out of all -the cities of Judah, and the chief of the fathers of Israel, and they -came to Jerusalem. - -23:3 And all the congregation made a covenant with the king in the -house of God. And he said unto them, Behold, the king's son shall -reign, as the LORD hath said of the sons of David. - -23:4 This is the thing that ye shall do; A third part of you entering -on the sabbath, of the priests and of the Levites, shall be porters of -the doors; 23:5 And a third part shall be at the king's house; and a -third part at the gate of the foundation: and all the people shall be -in the courts of the house of the LORD. - -23:6 But let none come into the house of the LORD, save the priests, -and they that minister of the Levites; they shall go in, for they are -holy: but all the people shall keep the watch of the LORD. - -23:7 And the Levites shall compass the king round about, every man -with his weapons in his hand; and whosoever else cometh into the -house, he shall be put to death: but be ye with the king when he -cometh in, and when he goeth out. - -23:8 So the Levites and all Judah did according to all things that -Jehoiada the priest had commanded, and took every man his men that -were to come in on the sabbath, with them that were to go out on the -sabbath: for Jehoiada the priest dismissed not the courses. - -23:9 Moreover Jehoiada the priest delivered to the captains of -hundreds spears, and bucklers, and shields, that had been king -David's, which were in the house of God. - -23:10 And he set all the people, every man having his weapon in his -hand, from the right side of the temple to the left side of the -temple, along by the altar and the temple, by the king round about. - -23:11 Then they brought out the king's son, and put upon him the -crown, and gave him the testimony, and made him king. And Jehoiada and -his sons anointed him, and said, God save the king. - -23:12 Now when Athaliah heard the noise of the people running and -praising the king, she came to the people into the house of the LORD: -23:13 And she looked, and, behold, the king stood at his pillar at the -entering in, and the princes and the trumpets by the king: and all the -people of the land rejoiced, and sounded with trumpets, also the -singers with instruments of musick, and such as taught to sing praise. -Then Athaliah rent her clothes, and said, Treason, Treason. - -23:14 Then Jehoiada the priest brought out the captains of hundreds -that were set over the host, and said unto them, Have her forth of the -ranges: and whoso followeth her, let him be slain with the sword. For -the priest said, Slay her not in the house of the LORD. - -23:15 So they laid hands on her; and when she was come to the entering -of the horse gate by the king's house, they slew her there. - -23:16 And Jehoiada made a covenant between him, and between all the -people, and between the king, that they should be the LORD's people. - -23:17 Then all the people went to the house of Baal, and brake it -down, and brake his altars and his images in pieces, and slew Mattan -the priest of Baal before the altars. - -23:18 Also Jehoiada appointed the offices of the house of the LORD by -the hand of the priests the Levites, whom David had distributed in the -house of the LORD, to offer the burnt offerings of the LORD, as it is -written in the law of Moses, with rejoicing and with singing, as it -was ordained by David. - -23:19 And he set the porters at the gates of the house of the LORD, -that none which was unclean in any thing should enter in. - -23:20 And he took the captains of hundreds, and the nobles, and the -governors of the people, and all the people of the land, and brought -down the king from the house of the LORD: and they came through the -high gate into the king's house, and set the king upon the throne of -the kingdom. - -23:21 And all the people of the land rejoiced: and the city was quiet, -after that they had slain Athaliah with the sword. - -24:1 Joash was seven years old when he began to reign, and he reigned -forty years in Jerusalem. His mother's name also was Zibiah of -Beersheba. - -24:2 And Joash did that which was right in the sight of the LORD all -the days of Jehoiada the priest. - -24:3 And Jehoiada took for him two wives; and he begat sons and -daughters. - -24:4 And it came to pass after this, that Joash was minded to repair -the house of the LORD. - -24:5 And he gathered together the priests and the Levites, and said to -them, Go out unto the cities of Judah, and gather of all Israel money -to repair the house of your God from year to year, and see that ye -hasten the matter. Howbeit the Levites hastened it not. - -24:6 And the king called for Jehoiada the chief, and said unto him, -Why hast thou not required of the Levites to bring in out of Judah and -out of Jerusalem the collection, according to the commandment of Moses -the servant of the LORD, and of the congregation of Israel, for the -tabernacle of witness? 24:7 For the sons of Athaliah, that wicked -woman, had broken up the house of God; and also all the dedicated -things of the house of the LORD did they bestow upon Baalim. - -24:8 And at the king's commandment they made a chest, and set it -without at the gate of the house of the LORD. - -24:9 And they made a proclamation through Judah and Jerusalem, to -bring in to the LORD the collection that Moses the servant of God laid -upon Israel in the wilderness. - -24:10 And all the princes and all the people rejoiced, and brought in, -and cast into the chest, until they had made an end. - -24:11 Now it came to pass, that at what time the chest was brought -unto the king's office by the hand of the Levites, and when they saw -that there was much money, the king's scribe and the high priest's -officer came and emptied the chest, and took it, and carried it to his -place again. Thus they did day by day, and gathered money in -abundance. - -24:12 And the king and Jehoiada gave it to such as did the work of the -service of the house of the LORD, and hired masons and carpenters to -repair the house of the LORD, and also such as wrought iron and brass -to mend the house of the LORD. - -24:13 So the workmen wrought, and the work was perfected by them, and -they set the house of God in his state, and strengthened it. - -24:14 And when they had finished it, they brought the rest of the -money before the king and Jehoiada, whereof were made vessels for the -house of the LORD, even vessels to minister, and to offer withal, and -spoons, and vessels of gold and silver. And they offered burnt -offerings in the house of the LORD continually all the days of -Jehoiada. - -24:15 But Jehoiada waxed old, and was full of days when he died; an -hundred and thirty years old was he when he died. - -24:16 And they buried him in the city of David among the kings, -because he had done good in Israel, both toward God, and toward his -house. - -24:17 Now after the death of Jehoiada came the princes of Judah, and -made obeisance to the king. Then the king hearkened unto them. - -24:18 And they left the house of the LORD God of their fathers, and -served groves and idols: and wrath came upon Judah and Jerusalem for -this their trespass. - -24:19 Yet he sent prophets to them, to bring them again unto the LORD; -and they testified against them: but they would not give ear. - -24:20 And the Spirit of God came upon Zechariah the son of Jehoiada -the priest, which stood above the people, and said unto them, Thus -saith God, Why transgress ye the commandments of the LORD, that ye -cannot prosper? because ye have forsaken the LORD, he hath also -forsaken you. - -24:21 And they conspired against him, and stoned him with stones at -the commandment of the king in the court of the house of the LORD. - -24:22 Thus Joash the king remembered not the kindness which Jehoiada -his father had done to him, but slew his son. And when he died, he -said, The LORD look upon it, and require it. - -24:23 And it came to pass at the end of the year, that the host of -Syria came up against him: and they came to Judah and Jerusalem, and -destroyed all the princes of the people from among the people, and -sent all the spoil of them unto the king of Damascus. - -24:24 For the army of the Syrians came with a small company of men, -and the LORD delivered a very great host into their hand, because they -had forsaken the LORD God of their fathers. So they executed judgment -against Joash. - -24:25 And when they were departed from him, (for they left him in -great diseases,) his own servants conspired against him for the blood -of the sons of Jehoiada the priest, and slew him on his bed, and he -died: and they buried him in the city of David, but they buried him -not in the sepulchres of the kings. - -24:26 And these are they that conspired against him; Zabad the son of -Shimeath an Ammonitess, and Jehozabad the son of Shimrith a Moabitess. - -24:27 Now concerning his sons, and the greatness of the burdens laid -upon him, and the repairing of the house of God, behold, they are -written in the story of the book of the kings. And Amaziah his son -reigned in his stead. - -25:1 Amaziah was twenty and five years old when he began to reign, and -he reigned twenty and nine years in Jerusalem. And his mother's name -was Jehoaddan of Jerusalem. - -25:2 And he did that which was right in the sight of the LORD, but not -with a perfect heart. - -25:3 Now it came to pass, when the kingdom was established to him, -that he slew his servants that had killed the king his father. - -25:4 But he slew not their children, but did as it is written in the -law in the book of Moses, where the LORD commanded, saying, The -fathers shall not die for the children, neither shall the children die -for the fathers, but every man shall die for his own sin. - -25:5 Moreover Amaziah gathered Judah together, and made them captains -over thousands, and captains over hundreds, according to the houses of -their fathers, throughout all Judah and Benjamin: and he numbered them -from twenty years old and above, and found them three hundred thousand -choice men, able to go forth to war, that could handle spear and -shield. - -25:6 He hired also an hundred thousand mighty men of valour out of -Israel for an hundred talents of silver. - -25:7 But there came a man of God to him, saying, O king, let not the -army of Israel go with thee; for the LORD is not with Israel, to wit, -with all the children of Ephraim. - -25:8 But if thou wilt go, do it; be strong for the battle: God shall -make thee fall before the enemy: for God hath power to help, and to -cast down. - -25:9 And Amaziah said to the man of God, But what shall we do for the -hundred talents which I have given to the army of Israel? And the man -of God answered, The LORD is able to give thee much more than this. - -25:10 Then Amaziah separated them, to wit, the army that was come to -him out of Ephraim, to go home again: wherefore their anger was -greatly kindled against Judah, and they returned home in great anger. - -25:11 And Amaziah strengthened himself, and led forth his people, and -went to the valley of salt, and smote of the children of Seir ten -thousand. - -25:12 And other ten thousand left alive did the children of Judah -carry away captive, and brought them unto the top of the rock, and -cast them down from the top of the rock, that they all were broken in -pieces. - -25:13 But the soldiers of the army which Amaziah sent back, that they -should not go with him to battle, fell upon the cities of Judah, from -Samaria even unto Bethhoron, and smote three thousand of them, and -took much spoil. - -25:14 Now it came to pass, after that Amaziah was come from the -slaughter of the Edomites, that he brought the gods of the children of -Seir, and set them up to be his gods, and bowed down himself before -them, and burned incense unto them. - -25:15 Wherefore the anger of the LORD was kindled against Amaziah, and -he sent unto him a prophet, which said unto him, Why hast thou sought -after the gods of the people, which could not deliver their own people -out of thine hand? 25:16 And it came to pass, as he talked with him, -that the king said unto him, Art thou made of the king's counsel? -forbear; why shouldest thou be smitten? Then the prophet forbare, and -said, I know that God hath determined to destroy thee, because thou -hast done this, and hast not hearkened unto my counsel. - -25:17 Then Amaziah king of Judah took advice, and sent to Joash, the -son of Jehoahaz, the son of Jehu, king of Israel, saying, Come, let us -see one another in the face. - -25:18 And Joash king of Israel sent to Amaziah king of Judah, saying, -The thistle that was in Lebanon sent to the cedar that was in Lebanon, -saying, Give thy daughter to my son to wife: and there passed by a -wild beast that was in Lebanon, and trode down the thistle. - -25:19 Thou sayest, Lo, thou hast smitten the Edomites; and thine heart -lifteth thee up to boast: abide now at home; why shouldest thou meddle -to thine hurt, that thou shouldest fall, even thou, and Judah with -thee? 25:20 But Amaziah would not hear; for it came of God, that he -might deliver them into the hand of their enemies, because they sought -after the gods of Edom. - -25:21 So Joash the king of Israel went up; and they saw one another in -the face, both he and Amaziah king of Judah, at Bethshemesh, which -belongeth to Judah. - -25:22 And Judah was put to the worse before Israel, and they fled -every man to his tent. - -25:23 And Joash the king of Israel took Amaziah king of Judah, the son -of Joash, the son of Jehoahaz, at Bethshemesh, and brought him to -Jerusalem, and brake down the wall of Jerusalem from the gate of -Ephraim to the corner gate, four hundred cubits. - -25:24 And he took all the gold and the silver, and all the vessels -that were found in the house of God with Obededom, and the treasures -of the king's house, the hostages also, and returned to Samaria. - -25:25 And Amaziah the son of Joash king of Judah lived after the death -of Joash son of Jehoahaz king of Israel fifteen years. - -25:26 Now the rest of the acts of Amaziah, first and last, behold, are -they not written in the book of the kings of Judah and Israel? 25:27 -Now after the time that Amaziah did turn away from following the LORD -they made a conspiracy against him in Jerusalem; and he fled to -Lachish: but they sent to Lachish after him, and slew him there. - -25:28 And they brought him upon horses, and buried him with his -fathers in the city of Judah. - -26:1 Then all the people of Judah took Uzziah, who was sixteen years -old, and made him king in the room of his father Amaziah. - -26:2 He built Eloth, and restored it to Judah, after that the king -slept with his fathers. - -26:3 Sixteen years old was Uzziah when he began to reign, and he -reigned fifty and two years in Jerusalem. His mother's name also was -Jecoliah of Jerusalem. - -26:4 And he did that which was right in the sight of the LORD, -according to all that his father Amaziah did. - -26:5 And he sought God in the days of Zechariah, who had understanding -in the visions of God: and as long as he sought the LORD, God made him -to prosper. - -26:6 And he went forth and warred against the Philistines, and brake -down the wall of Gath, and the wall of Jabneh, and the wall of Ashdod, -and built cities about Ashdod, and among the Philistines. - -26:7 And God helped him against the Philistines, and against the -Arabians that dwelt in Gurbaal, and the Mehunims. - -26:8 And the Ammonites gave gifts to Uzziah: and his name spread -abroad even to the entering in of Egypt; for he strengthened himself -exceedingly. - -26:9 Moreover Uzziah built towers in Jerusalem at the corner gate, and -at the valley gate, and at the turning of the wall, and fortified -them. - -26:10 Also he built towers in the desert, and digged many wells: for -he had much cattle, both in the low country, and in the plains: -husbandmen also, and vine dressers in the mountains, and in Carmel: -for he loved husbandry. - -26:11 Moreover Uzziah had an host of fighting men, that went out to -war by bands, according to the number of their account by the hand of -Jeiel the scribe and Maaseiah the ruler, under the hand of Hananiah, -one of the king's captains. - -26:12 The whole number of the chief of the fathers of the mighty men -of valour were two thousand and six hundred. - -26:13 And under their hand was an army, three hundred thousand and -seven thousand and five hundred, that made war with mighty power, to -help the king against the enemy. - -26:14 And Uzziah prepared for them throughout all the host shields, -and spears, and helmets, and habergeons, and bows, and slings to cast -stones. - -26:15 And he made in Jerusalem engines, invented by cunning men, to be -on the towers and upon the bulwarks, to shoot arrows and great stones -withal. - -And his name spread far abroad; for he was marvellously helped, till -he was strong. - -26:16 But when he was strong, his heart was lifted up to his -destruction: for he transgressed against the LORD his God, and went -into the temple of the LORD to burn incense upon the altar of incense. - -26:17 And Azariah the priest went in after him, and with him fourscore -priests of the LORD, that were valiant men: 26:18 And they withstood -Uzziah the king, and said unto him, It appertaineth not unto thee, -Uzziah, to burn incense unto the LORD, but to the priests the sons of -Aaron, that are consecrated to burn incense: go out of the sanctuary; -for thou hast trespassed; neither shall it be for thine honour from -the LORD God. - -26:19 Then Uzziah was wroth, and had a censer in his hand to burn -incense: and while he was wroth with the priests, the leprosy even -rose up in his forehead before the priests in the house of the LORD, -from beside the incense altar. - -26:20 And Azariah the chief priest, and all the priests, looked upon -him, and, behold, he was leprous in his forehead, and they thrust him -out from thence; yea, himself hasted also to go out, because the LORD -had smitten him. - -26:21 And Uzziah the king was a leper unto the day of his death, and -dwelt in a several house, being a leper; for he was cut off from the -house of the LORD: and Jotham his son was over the king's house, -judging the people of the land. - -26:22 Now the rest of the acts of Uzziah, first and last, did Isaiah -the prophet, the son of Amoz, write. - -26:23 So Uzziah slept with his fathers, and they buried him with his -fathers in the field of the burial which belonged to the kings; for -they said, He is a leper: and Jotham his son reigned in his stead. - -27:1 Jotham was twenty and five years old when he began to reign, and -he reigned sixteen years in Jerusalem. His mother's name also was -Jerushah, the daughter of Zadok. - -27:2 And he did that which was right in the sight of the LORD, -according to all that his father Uzziah did: howbeit he entered not -into the temple of the LORD. And the people did yet corruptly. - -27:3 He built the high gate of the house of the LORD, and on the wall -of Ophel he built much. - -27:4 Moreover he built cities in the mountains of Judah, and in the -forests he built castles and towers. - -27:5 He fought also with the king of the Ammonites, and prevailed -against them. And the children of Ammon gave him the same year an -hundred talents of silver, and ten thousand measures of wheat, and ten -thousand of barley. So much did the children of Ammon pay unto him, -both the second year, and the third. - -27:6 So Jotham became mighty, because he prepared his ways before the -LORD his God. - -27:7 Now the rest of the acts of Jotham, and all his wars, and his -ways, lo, they are written in the book of the kings of Israel and -Judah. - -27:8 He was five and twenty years old when he began to reign, and -reigned sixteen years in Jerusalem. - -27:9 And Jotham slept with his fathers, and they buried him in the -city of David: and Ahaz his son reigned in his stead. - -28:1 Ahaz was twenty years old when he began to reign, and he reigned -sixteen years in Jerusalem: but he did not that which was right in the -sight of the LORD, like David his father: 28:2 For he walked in the -ways of the kings of Israel, and made also molten images for Baalim. - -28:3 Moreover he burnt incense in the valley of the son of Hinnom, and -burnt his children in the fire, after the abominations of the heathen -whom the LORD had cast out before the children of Israel. - -28:4 He sacrificed also and burnt incense in the high places, and on -the hills, and under every green tree. - -28:5 Wherefore the LORD his God delivered him into the hand of the -king of Syria; and they smote him, and carried away a great multitude -of them captives, and brought them to Damascus. And he was also -delivered into the hand of the king of Israel, who smote him with a -great slaughter. - -28:6 For Pekah the son of Remaliah slew in Judah an hundred and twenty -thousand in one day, which were all valiant men; because they had -forsaken the LORD God of their fathers. - -28:7 And Zichri, a mighty man of Ephraim, slew Maaseiah the king's -son, and Azrikam the governor of the house, and Elkanah that was next -to the king. - -28:8 And the children of Israel carried away captive of their brethren -two hundred thousand, women, sons, and daughters, and took also away -much spoil from them, and brought the spoil to Samaria. - -28:9 But a prophet of the LORD was there, whose name was Oded: and he -went out before the host that came to Samaria, and said unto them, -Behold, because the LORD God of your fathers was wroth with Judah, he -hath delivered them into your hand, and ye have slain them in a rage -that reacheth up unto heaven. - -28:10 And now ye purpose to keep under the children of Judah and -Jerusalem for bondmen and bondwomen unto you: but are there not with -you, even with you, sins against the LORD your God? 28:11 Now hear me -therefore, and deliver the captives again, which ye have taken captive -of your brethren: for the fierce wrath of the LORD is upon you. - -28:12 Then certain of the heads of the children of Ephraim, Azariah -the son of Johanan, Berechiah the son of Meshillemoth, and Jehizkiah -the son of Shallum, and Amasa the son of Hadlai, stood up against them -that came from the war, 28:13 And said unto them, Ye shall not bring -in the captives hither: for whereas we have offended against the LORD -already, ye intend to add more to our sins and to our trespass: for -our trespass is great, and there is fierce wrath against Israel. - -28:14 So the armed men left the captives and the spoil before the -princes and all the congregation. - -28:15 And the men which were expressed by name rose up, and took the -captives, and with the spoil clothed all that were naked among them, -and arrayed them, and shod them, and gave them to eat and to drink, -and anointed them, and carried all the feeble of them upon asses, and -brought them to Jericho, the city of palm trees, to their brethren: -then they returned to Samaria. - -28:16 At that time did king Ahaz send unto the kings of Assyria to -help him. - -28:17 For again the Edomites had come and smitten Judah, and carried -away captives. - -28:18 The Philistines also had invaded the cities of the low country, -and of the south of Judah, and had taken Bethshemesh, and Ajalon, and -Gederoth, and Shocho with the villages thereof, and Timnah with the -villages thereof, Gimzo also and the villages thereof: and they dwelt -there. - -28:19 For the LORD brought Judah low because of Ahaz king of Israel; -for he made Judah naked, and transgressed sore against the LORD. - -28:20 And Tilgathpilneser king of Assyria came unto him, and -distressed him, but strengthened him not. - -28:21 For Ahaz took away a portion out of the house of the LORD, and -out of the house of the king, and of the princes, and gave it unto the -king of Assyria: but he helped him not. - -28:22 And in the time of his distress did he trespass yet more against -the LORD: this is that king Ahaz. - -28:23 For he sacrificed unto the gods of Damascus, which smote him: -and he said, Because the gods of the kings of Syria help them, -therefore will I sacrifice to them, that they may help me. But they -were the ruin of him, and of all Israel. - -28:24 And Ahaz gathered together the vessels of the house of God, and -cut in pieces the vessels of the house of God, and shut up the doors -of the house of the LORD, and he made him altars in every corner of -Jerusalem. - -28:25 And in every several city of Judah he made high places to burn -incense unto other gods, and provoked to anger the LORD God of his -fathers. - -28:26 Now the rest of his acts and of all his ways, first and last, -behold, they are written in the book of the kings of Judah and Israel. - -28:27 And Ahaz slept with his fathers, and they buried him in the -city, even in Jerusalem: but they brought him not into the sepulchres -of the kings of Israel: and Hezekiah his son reigned in his stead. - -29:1 Hezekiah began to reign when he was five and twenty years old, -and he reigned nine and twenty years in Jerusalem. And his mother's -name was Abijah, the daughter of Zechariah. - -29:2 And he did that which was right in the sight of the LORD, -according to all that David his father had done. - -29:3 He in the first year of his reign, in the first month, opened the -doors of the house of the LORD, and repaired them. - -29:4 And he brought in the priests and the Levites, and gathered them -together into the east street, 29:5 And said unto them, Hear me, ye -Levites, sanctify now yourselves, and sanctify the house of the LORD -God of your fathers, and carry forth the filthiness out of the holy -place. - -29:6 For our fathers have trespassed, and done that which was evil in -the eyes of the LORD our God, and have forsaken him, and have turned -away their faces from the habitation of the LORD, and turned their -backs. - -29:7 Also they have shut up the doors of the porch, and put out the -lamps, and have not burned incense nor offered burnt offerings in the -holy place unto the God of Israel. - -29:8 Wherefore the wrath of the LORD was upon Judah and Jerusalem, and -he hath delivered them to trouble, to astonishment, and to hissing, as -ye see with your eyes. - -29:9 For, lo, our fathers have fallen by the sword, and our sons and -our daughters and our wives are in captivity for this. - -29:10 Now it is in mine heart to make a covenant with the LORD God of -Israel, that his fierce wrath may turn away from us. - -29:11 My sons, be not now negligent: for the LORD hath chosen you to -stand before him, to serve him, and that ye should minister unto him, -and burn incense. - -29:12 Then the Levites arose, Mahath the son of Amasai, and Joel the -son of Azariah, of the sons of the Kohathites: and of the sons of -Merari, Kish the son of Abdi, and Azariah the son of Jehalelel: and of -the Gershonites; Joah the son of Zimmah, and Eden the son of Joah: -29:13 And of the sons of Elizaphan; Shimri, and Jeiel: and of the sons -of Asaph; Zechariah, and Mattaniah: 29:14 And of the sons of Heman; -Jehiel, and Shimei: and of the sons of Jeduthun; Shemaiah, and Uzziel. - -29:15 And they gathered their brethren, and sanctified themselves, and -came, according to the commandment of the king, by the words of the -LORD, to cleanse the house of the LORD. - -29:16 And the priests went into the inner part of the house of the -LORD, to cleanse it, and brought out all the uncleanness that they -found in the temple of the LORD into the court of the house of the -LORD. And the Levites took it, to carry it out abroad into the brook -Kidron. - -29:17 Now they began on the first day of the first month to sanctify, -and on the eighth day of the month came they to the porch of the LORD: -so they sanctified the house of the LORD in eight days; and in the -sixteenth day of the first month they made an end. - -29:18 Then they went in to Hezekiah the king, and said, We have -cleansed all the house of the LORD, and the altar of burnt offering, -with all the vessels thereof, and the shewbread table, with all the -vessels thereof. - -29:19 Moreover all the vessels, which king Ahaz in his reign did cast -away in his transgression, have we prepared and sanctified, and, -behold, they are before the altar of the LORD. - -29:20 Then Hezekiah the king rose early, and gathered the rulers of -the city, and went up to the house of the LORD. - -29:21 And they brought seven bullocks, and seven rams, and seven -lambs, and seven he goats, for a sin offering for the kingdom, and for -the sanctuary, and for Judah. And he commanded the priests the sons of -Aaron to offer them on the altar of the LORD. - -29:22 So they killed the bullocks, and the priests received the blood, -and sprinkled it on the altar: likewise, when they had killed the -rams, they sprinkled the blood upon the altar: they killed also the -lambs, and they sprinkled the blood upon the altar. - -29:23 And they brought forth the he goats for the sin offering before -the king and the congregation; and they laid their hands upon them: -29:24 And the priests killed them, and they made reconciliation with -their blood upon the altar, to make an atonement for all Israel: for -the king commanded that the burnt offering and the sin offering should -be made for all Israel. - -29:25 And he set the Levites in the house of the LORD with cymbals, -with psalteries, and with harps, according to the commandment of -David, and of Gad the king's seer, and Nathan the prophet: for so was -the commandment of the LORD by his prophets. - -29:26 And the Levites stood with the instruments of David, and the -priests with the trumpets. - -29:27 And Hezekiah commanded to offer the burnt offering upon the -altar. - -And when the burnt offering began, the song of the LORD began also -with the trumpets, and with the instruments ordained by David king of -Israel. - -29:28 And all the congregation worshipped, and the singers sang, and -the trumpeters sounded: and all this continued until the burnt -offering was finished. - -29:29 And when they had made an end of offering, the king and all that -were present with him bowed themselves, and worshipped. - -29:30 Moreover Hezekiah the king and the princes commanded the Levites -to sing praise unto the LORD with the words of David, and of Asaph the -seer. And they sang praises with gladness, and they bowed their heads -and worshipped. - -29:31 Then Hezekiah answered and said, Now ye have consecrated -yourselves unto the LORD, come near and bring sacrifices and thank -offerings into the house of the LORD. And the congregation brought in -sacrifices and thank offerings; and as many as were of a free heart -burnt offerings. - -29:32 And the number of the burnt offerings, which the congregation -brought, was threescore and ten bullocks, an hundred rams, and two -hundred lambs: all these were for a burnt offering to the LORD. - -29:33 And the consecrated things were six hundred oxen and three -thousand sheep. - -29:34 But the priests were too few, so that they could not flay all -the burnt offerings: wherefore their brethren the Levites did help -them, till the work was ended, and until the other priests had -sanctified themselves: for the Levites were more upright in heart to -sanctify themselves than the priests. - -29:35 And also the burnt offerings were in abundance, with the fat of -the peace offerings, and the drink offerings for every burnt offering. -So the service of the house of the LORD was set in order. - -29:36 And Hezekiah rejoiced, and all the people, that God had prepared -the people: for the thing was done suddenly. - -30:1 And Hezekiah sent to all Israel and Judah, and wrote letters also -to Ephraim and Manasseh, that they should come to the house of the -LORD at Jerusalem, to keep the passover unto the LORD God of Israel. - -30:2 For the king had taken counsel, and his princes, and all the -congregation in Jerusalem, to keep the passover in the second month. - -30:3 For they could not keep it at that time, because the priests had -not sanctified themselves sufficiently, neither had the people -gathered themselves together to Jerusalem. - -30:4 And the thing pleased the king and all the congregation. - -30:5 So they established a decree to make proclamation throughout all -Israel, from Beersheba even to Dan, that they should come to keep the -passover unto the LORD God of Israel at Jerusalem: for they had not -done it of a long time in such sort as it was written. - -30:6 So the posts went with the letters from the king and his princes -throughout all Israel and Judah, and according to the commandment of -the king, saying, Ye children of Israel, turn again unto the LORD God -of Abraham, Isaac, and Israel, and he will return to the remnant of -you, that are escaped out of the hand of the kings of Assyria. - -30:7 And be not ye like your fathers, and like your brethren, which -trespassed against the LORD God of their fathers, who therefore gave -them up to desolation, as ye see. - -30:8 Now be ye not stiffnecked, as your fathers were, but yield -yourselves unto the LORD, and enter into his sanctuary, which he hath -sanctified for ever: and serve the LORD your God, that the fierceness -of his wrath may turn away from you. - -30:9 For if ye turn again unto the LORD, your brethren and your -children shall find compassion before them that lead them captive, so -that they shall come again into this land: for the LORD your God is -gracious and merciful, and will not turn away his face from you, if ye -return unto him. - -30:10 So the posts passed from city to city through the country of -Ephraim and Manasseh even unto Zebulun: but they laughed them to -scorn, and mocked them. - -30:11 Nevertheless divers of Asher and Manasseh and of Zebulun humbled -themselves, and came to Jerusalem. - -30:12 Also in Judah the hand of God was to give them one heart to do -the commandment of the king and of the princes, by the word of the -LORD. - -30:13 And there assembled at Jerusalem much people to keep the feast -of unleavened bread in the second month, a very great congregation. - -30:14 And they arose and took away the altars that were in Jerusalem, -and all the altars for incense took they away, and cast them into the -brook Kidron. - -30:15 Then they killed the passover on the fourteenth day of the -second month: and the priests and the Levites were ashamed, and -sanctified themselves, and brought in the burnt offerings into the -house of the LORD. - -30:16 And they stood in their place after their manner, according to -the law of Moses the man of God: the priests sprinkled the blood, -which they received of the hand of the Levites. - -30:17 For there were many in the congregation that were not -sanctified: therefore the Levites had the charge of the killing of the -passovers for every one that was not clean, to sanctify them unto the -LORD. - -30:18 For a multitude of the people, even many of Ephraim, and -Manasseh, Issachar, and Zebulun, had not cleansed themselves, yet did -they eat the passover otherwise than it was written. But Hezekiah -prayed for them, saying, The good LORD pardon every one 30:19 That -prepareth his heart to seek God, the LORD God of his fathers, though -he be not cleansed according to the purification of the sanctuary. - -30:20 And the LORD hearkened to Hezekiah, and healed the people. - -30:21 And the children of Israel that were present at Jerusalem kept -the feast of unleavened bread seven days with great gladness: and the -Levites and the priests praised the LORD day by day, singing with loud -instruments unto the LORD. - -30:22 And Hezekiah spake comfortably unto all the Levites that taught -the good knowledge of the LORD: and they did eat throughout the feast -seven days, offering peace offerings, and making confession to the -LORD God of their fathers. - -30:23 And the whole assembly took counsel to keep other seven days: -and they kept other seven days with gladness. - -30:24 For Hezekiah king of Judah did give to the congregation a -thousand bullocks and seven thousand sheep; and the princes gave to -the congregation a thousand bullocks and ten thousand sheep: and a -great number of priests sanctified themselves. - -30:25 And all the congregation of Judah, with the priests and the -Levites, and all the congregation that came out of Israel, and the -strangers that came out of the land of Israel, and that dwelt in -Judah, rejoiced. - -30:26 So there was great joy in Jerusalem: for since the time of -Solomon the son of David king of Israel there was not the like in -Jerusalem. - -30:27 Then the priests the Levites arose and blessed the people: and -their voice was heard, and their prayer came up to his holy dwelling -place, even unto heaven. - -31:1 Now when all this was finished, all Israel that were present went -out to the cities of Judah, and brake the images in pieces, and cut -down the groves, and threw down the high places and the altars out of -all Judah and Benjamin, in Ephraim also and Manasseh, until they had -utterly destroyed them all. Then all the children of Israel returned, -every man to his possession, into their own cities. - -31:2 And Hezekiah appointed the courses of the priests and the Levites -after their courses, every man according to his service, the priests -and Levites for burnt offerings and for peace offerings, to minister, -and to give thanks, and to praise in the gates of the tents of the -LORD. - -31:3 He appointed also the king's portion of his substance for the -burnt offerings, to wit, for the morning and evening burnt offerings, -and the burnt offerings for the sabbaths, and for the new moons, and -for the set feasts, as it is written in the law of the LORD. - -31:4 Moreover he commanded the people that dwelt in Jerusalem to give -the portion of the priests and the Levites, that they might be -encouraged in the law of the LORD. - -31:5 And as soon as the commandment came abroad, the children of -Israel brought in abundance the firstfruits of corn, wine, and oil, -and honey, and of all the increase of the field; and the tithe of all -things brought they in abundantly. - -31:6 And concerning the children of Israel and Judah, that dwelt in -the cities of Judah, they also brought in the tithe of oxen and sheep, -and the tithe of holy things which were consecrated unto the LORD -their God, and laid them by heaps. - -31:7 In the third month they began to lay the foundation of the heaps, -and finished them in the seventh month. - -31:8 And when Hezekiah and the princes came and saw the heaps, they -blessed the LORD, and his people Israel. - -31:9 Then Hezekiah questioned with the priests and the Levites -concerning the heaps. - -31:10 And Azariah the chief priest of the house of Zadok answered him, -and said, Since the people began to bring the offerings into the house -of the LORD, we have had enough to eat, and have left plenty: for the -LORD hath blessed his people; and that which is left is this great -store. - -31:11 Then Hezekiah commanded to prepare chambers in the house of the -LORD; and they prepared them, 31:12 And brought in the offerings and -the tithes and the dedicated things faithfully: over which Cononiah -the Levite was ruler, and Shimei his brother was the next. - -31:13 And Jehiel, and Azaziah, and Nahath, and Asahel, and Jerimoth, -and Jozabad, and Eliel, and Ismachiah, and Mahath, and Benaiah, were -overseers under the hand of Cononiah and Shimei his brother, at the -commandment of Hezekiah the king, and Azariah the ruler of the house -of God. - -31:14 And Kore the son of Imnah the Levite, the porter toward the -east, was over the freewill offerings of God, to distribute the -oblations of the LORD, and the most holy things. - -31:15 And next him were Eden, and Miniamin, and Jeshua, and Shemaiah, -Amariah, and Shecaniah, in the cities of the priests, in their set -office, to give to their brethren by courses, as well to the great as -to the small: 31:16 Beside their genealogy of males, from three years -old and upward, even unto every one that entereth into the house of -the LORD, his daily portion for their service in their charges -according to their courses; 31:17 Both to the genealogy of the priests -by the house of their fathers, and the Levites from twenty years old -and upward, in their charges by their courses; 31:18 And to the -genealogy of all their little ones, their wives, and their sons, and -their daughters, through all the congregation: for in their set office -they sanctified themselves in holiness: 31:19 Also of the sons of -Aaron the priests, which were in the fields of the suburbs of their -cities, in every several city, the men that were expressed by name, to -give portions to all the males among the priests, and to all that were -reckoned by genealogies among the Levites. - -31:20 And thus did Hezekiah throughout all Judah, and wrought that -which was good and right and truth before the LORD his God. - -31:21 And in every work that he began in the service of the house of -God, and in the law, and in the commandments, to seek his God, he did -it with all his heart, and prospered. - -32:1 After these things, and the establishment thereof, Sennacherib -king of Assyria came, and entered into Judah, and encamped against the -fenced cities, and thought to win them for himself. - -32:2 And when Hezekiah saw that Sennacherib was come, and that he was -purposed to fight against Jerusalem, 32:3 He took counsel with his -princes and his mighty men to stop the waters of the fountains which -were without the city: and they did help him. - -32:4 So there was gathered much people together, who stopped all the -fountains, and the brook that ran through the midst of the land, -saying, Why should the kings of Assyria come, and find much water? -32:5 Also he strengthened himself, and built up all the wall that was -broken, and raised it up to the towers, and another wall without, and -repaired Millo in the city of David, and made darts and shields in -abundance. - -32:6 And he set captains of war over the people, and gathered them -together to him in the street of the gate of the city, and spake -comfortably to them, saying, 32:7 Be strong and courageous, be not -afraid nor dismayed for the king of Assyria, nor for all the multitude -that is with him: for there be more with us than with him: 32:8 With -him is an arm of flesh; but with us is the LORD our God to help us, -and to fight our battles. And the people rested themselves upon the -words of Hezekiah king of Judah. - -32:9 After this did Sennacherib king of Assyria send his servants to -Jerusalem, (but he himself laid siege against Lachish, and all his -power with him,) unto Hezekiah king of Judah, and unto all Judah that -were at Jerusalem, saying, 32:10 Thus saith Sennacherib king of -Assyria, Whereon do ye trust, that ye abide in the siege in Jerusalem? -32:11 Doth not Hezekiah persuade you to give over yourselves to die by -famine and by thirst, saying, The LORD our God shall deliver us out of -the hand of the king of Assyria? 32:12 Hath not the same Hezekiah -taken away his high places and his altars, and commanded Judah and -Jerusalem, saying, Ye shall worship before one altar, and burn incense -upon it? 32:13 Know ye not what I and my fathers have done unto all -the people of other lands? were the gods of the nations of those lands -any ways able to deliver their lands out of mine hand? 32:14 Who was -there among all the gods of those nations that my fathers utterly -destroyed, that could deliver his people out of mine hand, that your -God should be able to deliver you out of mine hand? 32:15 Now -therefore let not Hezekiah deceive you, nor persuade you on this -manner, neither yet believe him: for no god of any nation or kingdom -was able to deliver his people out of mine hand, and out of the hand -of my fathers: how much less shall your God deliver you out of mine -hand? 32:16 And his servants spake yet more against the LORD God, and -against his servant Hezekiah. - -32:17 He wrote also letters to rail on the LORD God of Israel, and to -speak against him, saying, As the gods of the nations of other lands -have not delivered their people out of mine hand, so shall not the God -of Hezekiah deliver his people out of mine hand. - -32:18 Then they cried with a loud voice in the Jews' speech unto the -people of Jerusalem that were on the wall, to affright them, and to -trouble them; that they might take the city. - -32:19 And they spake against the God of Jerusalem, as against the gods -of the people of the earth, which were the work of the hands of man. - -32:20 And for this cause Hezekiah the king, and the prophet Isaiah the -son of Amoz, prayed and cried to heaven. - -32:21 And the LORD sent an angel, which cut off all the mighty men of -valour, and the leaders and captains in the camp of the king of -Assyria. So he returned with shame of face to his own land. And when -he was come into the house of his god, they that came forth of his own -bowels slew him there with the sword. - -32:22 Thus the LORD saved Hezekiah and the inhabitants of Jerusalem -from the hand of Sennacherib the king of Assyria, and from the hand of -all other, and guided them on every side. - -32:23 And many brought gifts unto the LORD to Jerusalem, and presents -to Hezekiah king of Judah: so that he was magnified in the sight of -all nations from thenceforth. - -32:24 In those days Hezekiah was sick to the death, and prayed unto -the LORD: and he spake unto him, and he gave him a sign. - -32:25 But Hezekiah rendered not again according to the benefit done -unto him; for his heart was lifted up: therefore there was wrath upon -him, and upon Judah and Jerusalem. - -32:26 Notwithstanding Hezekiah humbled himself for the pride of his -heart, both he and the inhabitants of Jerusalem, so that the wrath of -the LORD came not upon them in the days of Hezekiah. - -32:27 And Hezekiah had exceeding much riches and honour: and he made -himself treasuries for silver, and for gold, and for precious stones, -and for spices, and for shields, and for all manner of pleasant -jewels; 32:28 Storehouses also for the increase of corn, and wine, and -oil; and stalls for all manner of beasts, and cotes for flocks. - -32:29 Moreover he provided him cities, and possessions of flocks and -herds in abundance: for God had given him substance very much. - -32:30 This same Hezekiah also stopped the upper watercourse of Gihon, -and brought it straight down to the west side of the city of David. -And Hezekiah prospered in all his works. - -32:31 Howbeit in the business of the ambassadors of the princes of -Babylon, who sent unto him to enquire of the wonder that was done in -the land, God left him, to try him, that he might know all that was in -his heart. - -32:32 Now the rest of the acts of Hezekiah, and his goodness, behold, -they are written in the vision of Isaiah the prophet, the son of Amoz, -and in the book of the kings of Judah and Israel. - -32:33 And Hezekiah slept with his fathers, and they buried him in the -chiefest of the sepulchres of the sons of David: and all Judah and the -inhabitants of Jerusalem did him honour at his death. And Manasseh his -son reigned in his stead. - -33:1 Manasseh was twelve years old when he began to reign, and he -reigned fifty and five years in Jerusalem: 33:2 But did that which was -evil in the sight of the LORD, like unto the abominations of the -heathen, whom the LORD had cast out before the children of Israel. - -33:3 For he built again the high places which Hezekiah his father had -broken down, and he reared up altars for Baalim, and made groves, and -worshipped all the host of heaven, and served them. - -33:4 Also he built altars in the house of the LORD, whereof the LORD -had said, In Jerusalem shall my name be for ever. - -33:5 And he built altars for all the host of heaven in the two courts -of the house of the LORD. - -33:6 And he caused his children to pass through the fire in the valley -of the son of Hinnom: also he observed times, and used enchantments, -and used witchcraft, and dealt with a familiar spirit, and with -wizards: he wrought much evil in the sight of the LORD, to provoke him -to anger. - -33:7 And he set a carved image, the idol which he had made, in the -house of God, of which God had said to David and to Solomon his son, -In this house, and in Jerusalem, which I have chosen before all the -tribes of Israel, will I put my name for ever: 33:8 Neither will I any -more remove the foot of Israel from out of the land which I have -appointed for your fathers; so that they will take heed to do all that -I have commanded them, according to the whole law and the statutes and -the ordinances by the hand of Moses. - -33:9 So Manasseh made Judah and the inhabitants of Jerusalem to err, -and to do worse than the heathen, whom the LORD had destroyed before -the children of Israel. - -33:10 And the LORD spake to Manasseh, and to his people: but they -would not hearken. - -33:11 Wherefore the LORD brought upon them the captains of the host of -the king of Assyria, which took Manasseh among the thorns, and bound -him with fetters, and carried him to Babylon. - -33:12 And when he was in affliction, he besought the LORD his God, and -humbled himself greatly before the God of his fathers, 33:13 And -prayed unto him: and he was intreated of him, and heard his -supplication, and brought him again to Jerusalem into his kingdom. -Then Manasseh knew that the LORD he was God. - -33:14 Now after this he built a wall without the city of David, on the -west side of Gihon, in the valley, even to the entering in at the fish -gate, and compassed about Ophel, and raised it up a very great height, -and put captains of war in all the fenced cities of Judah. - -33:15 And he took away the strange gods, and the idol out of the house -of the LORD, and all the altars that he had built in the mount of the -house of the LORD, and in Jerusalem, and cast them out of the city. - -33:16 And he repaired the altar of the LORD, and sacrificed thereon -peace offerings and thank offerings, and commanded Judah to serve the -LORD God of Israel. - -33:17 Nevertheless the people did sacrifice still in the high places, -yet unto the LORD their God only. - -33:18 Now the rest of the acts of Manasseh, and his prayer unto his -God, and the words of the seers that spake to him in the name of the -LORD God of Israel, behold, they are written in the book of the kings -of Israel. - -33:19 His prayer also, and how God was intreated of him, and all his -sins, and his trespass, and the places wherein he built high places, -and set up groves and graven images, before he was humbled: behold, -they are written among the sayings of the seers. - -33:20 So Manasseh slept with his fathers, and they buried him in his -own house: and Amon his son reigned in his stead. - -33:21 Amon was two and twenty years old when he began to reign, and -reigned two years in Jerusalem. - -33:22 But he did that which was evil in the sight of the LORD, as did -Manasseh his father: for Amon sacrificed unto all the carved images -which Manasseh his father had made, and served them; 33:23 And humbled -not himself before the LORD, as Manasseh his father had humbled -himself; but Amon trespassed more and more. - -33:24 And his servants conspired against him, and slew him in his own -house. - -33:25 But the people of the land slew all them that had conspired -against king Amon; and the people of the land made Josiah his son king -in his stead. - -34:1 Josiah was eight years old when he began to reign, and he reigned -in Jerusalem one and thirty years. - -34:2 And he did that which was right in the sight of the LORD, and -walked in the ways of David his father, and declined neither to the -right hand, nor to the left. - -34:3 For in the eighth year of his reign, while he was yet young, he -began to seek after the God of David his father: and in the twelfth -year he began to purge Judah and Jerusalem from the high places, and -the groves, and the carved images, and the molten images. - -34:4 And they brake down the altars of Baalim in his presence; and the -images, that were on high above them, he cut down; and the groves, and -the carved images, and the molten images, he brake in pieces, and made -dust of them, and strowed it upon the graves of them that had -sacrificed unto them. - -34:5 And he burnt the bones of the priests upon their altars, and -cleansed Judah and Jerusalem. - -34:6 And so did he in the cities of Manasseh, and Ephraim, and Simeon, -even unto Naphtali, with their mattocks round about. - -34:7 And when he had broken down the altars and the groves, and had -beaten the graven images into powder, and cut down all the idols -throughout all the land of Israel, he returned to Jerusalem. - -34:8 Now in the eighteenth year of his reign, when he had purged the -land, and the house, he sent Shaphan the son of Azaliah, and Maaseiah -the governor of the city, and Joah the son of Joahaz the recorder, to -repair the house of the LORD his God. - -34:9 And when they came to Hilkiah the high priest, they delivered the -money that was brought into the house of God, which the Levites that -kept the doors had gathered of the hand of Manasseh and Ephraim, and -of all the remnant of Israel, and of all Judah and Benjamin; and they -returned to Jerusalem. - -34:10 And they put it in the hand of the workmen that had the -oversight of the house of the LORD, and they gave it to the workmen -that wrought in the house of the LORD, to repair and amend the house: -34:11 Even to the artificers and builders gave they it, to buy hewn -stone, and timber for couplings, and to floor the houses which the -kings of Judah had destroyed. - -34:12 And the men did the work faithfully: and the overseers of them -were Jahath and Obadiah, the Levites, of the sons of Merari; and -Zechariah and Meshullam, of the sons of the Kohathites, to set it -forward; and other of the Levites, all that could skill of instruments -of musick. - -34:13 Also they were over the bearers of burdens, and were overseers -of all that wrought the work in any manner of service: and of the -Levites there were scribes, and officers, and porters. - -34:14 And when they brought out the money that was brought into the -house of the LORD, Hilkiah the priest found a book of the law of the -LORD given by Moses. - -34:15 And Hilkiah answered and said to Shaphan the scribe, I have -found the book of the law in the house of the LORD. And Hilkiah -delivered the book to Shaphan. - -34:16 And Shaphan carried the book to the king, and brought the king -word back again, saying, All that was committed to thy servants, they -do it. - -34:17 And they have gathered together the money that was found in the -house of the LORD, and have delivered it into the hand of the -overseers, and to the hand of the workmen. - -34:18 Then Shaphan the scribe told the king, saying, Hilkiah the -priest hath given me a book. And Shaphan read it before the king. - -34:19 And it came to pass, when the king had heard the words of the -law, that he rent his clothes. - -34:20 And the king commanded Hilkiah, and Ahikam the son of Shaphan, -and Abdon the son of Micah, and Shaphan the scribe, and Asaiah a -servant of the king's, saying, 34:21 Go, enquire of the LORD for me, -and for them that are left in Israel and in Judah, concerning the -words of the book that is found: for great is the wrath of the LORD -that is poured out upon us, because our fathers have not kept the word -of the LORD, to do after all that is written in this book. - -34:22 And Hilkiah, and they that the king had appointed, went to -Huldah the prophetess, the wife of Shallum the son of Tikvath, the son -of Hasrah, keeper of the wardrobe; (now she dwelt in Jerusalem in the -college:) and they spake to her to that effect. - -34:23 And she answered them, Thus saith the LORD God of Israel, Tell -ye the man that sent you to me, 34:24 Thus saith the LORD, Behold, I -will bring evil upon this place, and upon the inhabitants thereof, -even all the curses that are written in the book which they have read -before the king of Judah: 34:25 Because they have forsaken me, and -have burned incense unto other gods, that they might provoke me to -anger with all the works of their hands; therefore my wrath shall be -poured out upon this place, and shall not be quenched. - -34:26 And as for the king of Judah, who sent you to enquire of the -LORD, so shall ye say unto him, Thus saith the LORD God of Israel -concerning the words which thou hast heard; 34:27 Because thine heart -was tender, and thou didst humble thyself before God, when thou -heardest his words against this place, and against the inhabitants -thereof, and humbledst thyself before me, and didst rend thy clothes, -and weep before me; I have even heard thee also, saith the LORD. - -34:28 Behold, I will gather thee to thy fathers, and thou shalt be -gathered to thy grave in peace, neither shall thine eyes see all the -evil that I will bring upon this place, and upon the inhabitants of -the same. So they brought the king word again. - -34:29 Then the king sent and gathered together all the elders of Judah -and Jerusalem. - -34:30 And the king went up into the house of the LORD, and all the men -of Judah, and the inhabitants of Jerusalem, and the priests, and the -Levites, and all the people, great and small: and he read in their -ears all the words of the book of the covenant that was found in the -house of the LORD. - -34:31 And the king stood in his place, and made a covenant before the -LORD, to walk after the LORD, and to keep his commandments, and his -testimonies, and his statutes, with all his heart, and with all his -soul, to perform the words of the covenant which are written in this -book. - -34:32 And he caused all that were present in Jerusalem and Benjamin to -stand to it. And the inhabitants of Jerusalem did according to the -covenant of God, the God of their fathers. - -34:33 And Josiah took away all the abominations out of all the -countries that pertained to the children of Israel, and made all that -were present in Israel to serve, even to serve the LORD their God. And -all his days they departed not from following the LORD, the God of -their fathers. - -35:1 Moreover Josiah kept a passover unto the LORD in Jerusalem: and -they killed the passover on the fourteenth day of the first month. - -35:2 And he set the priests in their charges, and encouraged them to -the service of the house of the LORD, 35:3 And said unto the Levites -that taught all Israel, which were holy unto the LORD, Put the holy -ark in the house which Solomon the son of David king of Israel did -build; it shall not be a burden upon your shoulders: serve now the -LORD your God, and his people Israel, 35:4 And prepare yourselves by -the houses of your fathers, after your courses, according to the -writing of David king of Israel, and according to the writing of -Solomon his son. - -35:5 And stand in the holy place according to the divisions of the -families of the fathers of your brethren the people, and after the -division of the families of the Levites. - -35:6 So kill the passover, and sanctify yourselves, and prepare your -brethren, that they may do according to the word of the LORD by the -hand of Moses. - -35:7 And Josiah gave to the people, of the flock, lambs and kids, all -for the passover offerings, for all that were present, to the number -of thirty thousand, and three thousand bullocks: these were of the -king's substance. - -35:8 And his princes gave willingly unto the people, to the priests, -and to the Levites: Hilkiah and Zechariah and Jehiel, rulers of the -house of God, gave unto the priests for the passover offerings two -thousand and six hundred small cattle and three hundred oxen. - -35:9 Conaniah also, and Shemaiah and Nethaneel, his brethren, and -Hashabiah and Jeiel and Jozabad, chief of the Levites, gave unto the -Levites for passover offerings five thousand small cattle, and five -hundred oxen. - -35:10 So the service was prepared, and the priests stood in their -place, and the Levites in their courses, according to the king's -commandment. - -35:11 And they killed the passover, and the priests sprinkled the -blood from their hands, and the Levites flayed them. - -35:12 And they removed the burnt offerings, that they might give -according to the divisions of the families of the people, to offer -unto the LORD, as it is written in the book of Moses. And so did they -with the oxen. - -35:13 And they roasted the passover with fire according to the -ordinance: but the other holy offerings sod they in pots, and in -caldrons, and in pans, and divided them speedily among all the people. - -35:14 And afterward they made ready for themselves, and for the -priests: because the priests the sons of Aaron were busied in offering -of burnt offerings and the fat until night; therefore the Levites -prepared for themselves, and for the priests the sons of Aaron. - -35:15 And the singers the sons of Asaph were in their place, according -to the commandment of David, and Asaph, and Heman, and Jeduthun the -king's seer; and the porters waited at every gate; they might not -depart from their service; for their brethren the Levites prepared for -them. - -35:16 So all the service of the LORD was prepared the same day, to -keep the passover, and to offer burnt offerings upon the altar of the -LORD, according to the commandment of king Josiah. - -35:17 And the children of Israel that were present kept the passover -at that time, and the feast of unleavened bread seven days. - -35:18 And there was no passover like to that kept in Israel from the -days of Samuel the prophet; neither did all the kings of Israel keep -such a passover as Josiah kept, and the priests, and the Levites, and -all Judah and Israel that were present, and the inhabitants of -Jerusalem. - -35:19 In the eighteenth year of the reign of Josiah was this passover -kept. - -35:20 After all this, when Josiah had prepared the temple, Necho king -of Egypt came up to fight against Charchemish by Euphrates: and Josiah -went out against him. - -35:21 But he sent ambassadors to him, saying, What have I to do with -thee, thou king of Judah? I come not against thee this day, but -against the house wherewith I have war: for God commanded me to make -haste: forbear thee from meddling with God, who is with me, that he -destroy thee not. - -35:22 Nevertheless Josiah would not turn his face from him, but -disguised himself, that he might fight with him, and hearkened not -unto the words of Necho from the mouth of God, and came to fight in -the valley of Megiddo. - -35:23 And the archers shot at king Josiah; and the king said to his -servants, Have me away; for I am sore wounded. - -35:24 His servants therefore took him out of that chariot, and put him -in the second chariot that he had; and they brought him to Jerusalem, -and he died, and was buried in one of the sepulchres of his fathers. -And all Judah and Jerusalem mourned for Josiah. - -35:25 And Jeremiah lamented for Josiah: and all the singing men and -the singing women spake of Josiah in their lamentations to this day, -and made them an ordinance in Israel: and, behold, they are written in -the lamentations. - -35:26 Now the rest of the acts of Josiah, and his goodness, according -to that which was written in the law of the LORD, 35:27 And his deeds, -first and last, behold, they are written in the book of the kings of -Israel and Judah. - -36:1 Then the people of the land took Jehoahaz the son of Josiah, and -made him king in his father's stead in Jerusalem. - -36:2 Jehoahaz was twenty and three years old when he began to reign, -and he reigned three months in Jerusalem. - -36:3 And the king of Egypt put him down at Jerusalem, and condemned -the land in an hundred talents of silver and a talent of gold. - -36:4 And the king of Egypt made Eliakim his brother king over Judah -and Jerusalem, and turned his name to Jehoiakim. And Necho took -Jehoahaz his brother, and carried him to Egypt. - -36:5 Jehoiakim was twenty and five years old when he began to reign, -and he reigned eleven years in Jerusalem: and he did that which was -evil in the sight of the LORD his God. - -36:6 Against him came up Nebuchadnezzar king of Babylon, and bound him -in fetters, to carry him to Babylon. - -36:7 Nebuchadnezzar also carried of the vessels of the house of the -LORD to Babylon, and put them in his temple at Babylon. - -36:8 Now the rest of the acts of Jehoiakim, and his abominations which -he did, and that which was found in him, behold, they are written in -the book of the kings of Israel and Judah: and Jehoiachin his son -reigned in his stead. - -36:9 Jehoiachin was eight years old when he began to reign, and he -reigned three months and ten days in Jerusalem: and he did that which -was evil in the sight of the LORD. - -36:10 And when the year was expired, king Nebuchadnezzar sent, and -brought him to Babylon, with the goodly vessels of the house of the -LORD, and made Zedekiah his brother king over Judah and Jerusalem. - -36:11 Zedekiah was one and twenty years old when he began to reign, -and reigned eleven years in Jerusalem. - -36:12 And he did that which was evil in the sight of the LORD his God, -and humbled not himself before Jeremiah the prophet speaking from the -mouth of the LORD. - -36:13 And he also rebelled against king Nebuchadnezzar, who had made -him swear by God: but he stiffened his neck, and hardened his heart -from turning unto the LORD God of Israel. - -36:14 Moreover all the chief of the priests, and the people, -transgressed very much after all the abominations of the heathen; and -polluted the house of the LORD which he had hallowed in Jerusalem. - -36:15 And the LORD God of their fathers sent to them by his -messengers, rising up betimes, and sending; because he had compassion -on his people, and on his dwelling place: 36:16 But they mocked the -messengers of God, and despised his words, and misused his prophets, -until the wrath of the LORD arose against his people, till there was -no remedy. - -36:17 Therefore he brought upon them the king of the Chaldees, who -slew their young men with the sword in the house of their sanctuary, -and had no compassion upon young man or maiden, old man, or him that -stooped for age: he gave them all into his hand. - -36:18 And all the vessels of the house of God, great and small, and -the treasures of the house of the LORD, and the treasures of the king, -and of his princes; all these he brought to Babylon. - -36:19 And they burnt the house of God, and brake down the wall of -Jerusalem, and burnt all the palaces thereof with fire, and destroyed -all the goodly vessels thereof. - -36:20 And them that had escaped from the sword carried he away to -Babylon; where they were servants to him and his sons until the reign -of the kingdom of Persia: 36:21 To fulfil the word of the LORD by the -mouth of Jeremiah, until the land had enjoyed her sabbaths: for as -long as she lay desolate she kept sabbath, to fulfil threescore and -ten years. - -36:22 Now in the first year of Cyrus king of Persia, that the word of -the LORD spoken by the mouth of Jeremiah might be accomplished, the -LORD stirred up the spirit of Cyrus king of Persia, that he made a -proclamation throughout all his kingdom, and put it also in writing, -saying, 36:23 Thus saith Cyrus king of Persia, All the kingdoms of the -earth hath the LORD God of heaven given me; and he hath charged me to -build him an house in Jerusalem, which is in Judah. Who is there among -you of all his people? The LORD his God be with him, and let him go up. - - - -Ezra - - -1:1 Now in the first year of Cyrus king of Persia, that the word of -the LORD by the mouth of Jeremiah might be fulfilled, the LORD stirred -up the spirit of Cyrus king of Persia, that he made a proclamation -throughout all his kingdom, and put it also in writing, saying, 1:2 -Thus saith Cyrus king of Persia, The LORD God of heaven hath given me -all the kingdoms of the earth; and he hath charged me to build him an -house at Jerusalem, which is in Judah. - -1:3 Who is there among you of all his people? his God be with him, and -let him go up to Jerusalem, which is in Judah, and build the house of -the LORD God of Israel, (he is the God,) which is in Jerusalem. - -1:4 And whosoever remaineth in any place where he sojourneth, let the -men of his place help him with silver, and with gold, and with goods, -and with beasts, beside the freewill offering for the house of God -that is in Jerusalem. - -1:5 Then rose up the chief of the fathers of Judah and Benjamin, and -the priests, and the Levites, with all them whose spirit God had -raised, to go up to build the house of the LORD which is in Jerusalem. - -1:6 And all they that were about them strengthened their hands with -vessels of silver, with gold, with goods, and with beasts, and with -precious things, beside all that was willingly offered. - -1:7 Also Cyrus the king brought forth the vessels of the house of the -LORD, which Nebuchadnezzar had brought forth out of Jerusalem, and had -put them in the house of his gods; 1:8 Even those did Cyrus king of -Persia bring forth by the hand of Mithredath the treasurer, and -numbered them unto Sheshbazzar, the prince of Judah. - -1:9 And this is the number of them: thirty chargers of gold, a -thousand chargers of silver, nine and twenty knives, 1:10 Thirty -basons of gold, silver basons of a second sort four hundred and ten, -and other vessels a thousand. - -1:11 All the vessels of gold and of silver were five thousand and four -hundred. All these did Sheshbazzar bring up with them of the captivity -that were brought up from Babylon unto Jerusalem. - -2:1 Now these are the children of the province that went up out of the -captivity, of those which had been carried away, whom Nebuchadnezzar -the king of Babylon had carried away unto Babylon, and came again unto -Jerusalem and Judah, every one unto his city; 2:2 Which came with -Zerubbabel: Jeshua, Nehemiah, Seraiah, Reelaiah, Mordecai, Bilshan, -Mizpar, Bigvai, Rehum, Baanah. The number of the men of the people of -Israel: 2:3 The children of Parosh, two thousand an hundred seventy -and two. - -2:4 The children of Shephatiah, three hundred seventy and two. - -2:5 The children of Arah, seven hundred seventy and five. - -2:6 The children of Pahathmoab, of the children of Jeshua and Joab, -two thousand eight hundred and twelve. - -2:7 The children of Elam, a thousand two hundred fifty and four. - -2:8 The children of Zattu, nine hundred forty and five. - -2:9 The children of Zaccai, seven hundred and threescore. - -2:10 The children of Bani, six hundred forty and two. - -2:11 The children of Bebai, six hundred twenty and three. - -2:12 The children of Azgad, a thousand two hundred twenty and two. - -2:13 The children of Adonikam, six hundred sixty and six. - -2:14 The children of Bigvai, two thousand fifty and six. - -2:15 The children of Adin, four hundred fifty and four. - -2:16 The children of Ater of Hezekiah, ninety and eight. - -2:17 The children of Bezai, three hundred twenty and three. - -2:18 The children of Jorah, an hundred and twelve. - -2:19 The children of Hashum, two hundred twenty and three. - -2:20 The children of Gibbar, ninety and five. - -2:21 The children of Bethlehem, an hundred twenty and three. - -2:22 The men of Netophah, fifty and six. - -2:23 The men of Anathoth, an hundred twenty and eight. - -2:24 The children of Azmaveth, forty and two. - -2:25 The children of Kirjatharim, Chephirah, and Beeroth, seven -hundred and forty and three. - -2:26 The children of Ramah and Gaba, six hundred twenty and one. - -2:27 The men of Michmas, an hundred twenty and two. - -2:28 The men of Bethel and Ai, two hundred twenty and three. - -2:29 The children of Nebo, fifty and two. - -2:30 The children of Magbish, an hundred fifty and six. - -2:31 The children of the other Elam, a thousand two hundred fifty and -four. - -2:32 The children of Harim, three hundred and twenty. - -2:33 The children of Lod, Hadid, and Ono, seven hundred twenty and -five. - -2:34 The children of Jericho, three hundred forty and five. - -2:35 The children of Senaah, three thousand and six hundred and -thirty. - -2:36 The priests: the children of Jedaiah, of the house of Jeshua, -nine hundred seventy and three. - -2:37 The children of Immer, a thousand fifty and two. - -2:38 The children of Pashur, a thousand two hundred forty and seven. - -2:39 The children of Harim, a thousand and seventeen. - -2:40 The Levites: the children of Jeshua and Kadmiel, of the children -of Hodaviah, seventy and four. - -2:41 The singers: the children of Asaph, an hundred twenty and eight. - -2:42 The children of the porters: the children of Shallum, the -children of Ater, the children of Talmon, the children of Akkub, the -children of Hatita, the children of Shobai, in all an hundred thirty -and nine. - -2:43 The Nethinims: the children of Ziha, the children of Hasupha, the -children of Tabbaoth, 2:44 The children of Keros, the children of -Siaha, the children of Padon, 2:45 The children of Lebanah, the -children of Hagabah, the children of Akkub, 2:46 The children of -Hagab, the children of Shalmai, the children of Hanan, 2:47 The -children of Giddel, the children of Gahar, the children of Reaiah, -2:48 The children of Rezin, the children of Nekoda, the children of -Gazzam, 2:49 The children of Uzza, the children of Paseah, the -children of Besai, 2:50 The children of Asnah, the children of -Mehunim, the children of Nephusim, 2:51 The children of Bakbuk, the -children of Hakupha, the children of Harhur, 2:52 The children of -Bazluth, the children of Mehida, the children of Harsha, 2:53 The -children of Barkos, the children of Sisera, the children of Thamah, -2:54 The children of Neziah, the children of Hatipha. - -2:55 The children of Solomon's servants: the children of Sotai, the -children of Sophereth, the children of Peruda, 2:56 The children of -Jaalah, the children of Darkon, the children of Giddel, 2:57 The -children of Shephatiah, the children of Hattil, the children of -Pochereth of Zebaim, the children of Ami. - -2:58 All the Nethinims, and the children of Solomon's servants, were -three hundred ninety and two. - -2:59 And these were they which went up from Telmelah, Telharsa, -Cherub, Addan, and Immer: but they could not shew their father's -house, and their seed, whether they were of Israel: 2:60 The children -of Delaiah, the children of Tobiah, the children of Nekoda, six -hundred fifty and two. - -2:61 And of the children of the priests: the children of Habaiah, the -children of Koz, the children of Barzillai; which took a wife of the -daughters of Barzillai the Gileadite, and was called after their name: -2:62 These sought their register among those that were reckoned by -genealogy, but they were not found: therefore were they, as polluted, -put from the priesthood. - -2:63 And the Tirshatha said unto them, that they should not eat of the -most holy things, till there stood up a priest with Urim and with -Thummim. - -2:64 The whole congregation together was forty and two thousand three -hundred and threescore, 2:65 Beside their servants and their maids, of -whom there were seven thousand three hundred thirty and seven: and -there were among them two hundred singing men and singing women. - -2:66 Their horses were seven hundred thirty and six; their mules, two -hundred forty and five; 2:67 Their camels, four hundred thirty and -five; their asses, six thousand seven hundred and twenty. - -2:68 And some of the chief of the fathers, when they came to the house -of the LORD which is at Jerusalem, offered freely for the house of God -to set it up in his place: 2:69 They gave after their ability unto the -treasure of the work threescore and one thousand drams of gold, and -five thousand pound of silver, and one hundred priests' garments. - -2:70 So the priests, and the Levites, and some of the people, and the -singers, and the porters, and the Nethinims, dwelt in their cities, -and all Israel in their cities. - -3:1 And when the seventh month was come, and the children of Israel -were in the cities, the people gathered themselves together as one man -to Jerusalem. - -3:2 Then stood up Jeshua the son of Jozadak, and his brethren the -priests, and Zerubbabel the son of Shealtiel, and his brethren, and -builded the altar of the God of Israel, to offer burnt offerings -thereon, as it is written in the law of Moses the man of God. - -3:3 And they set the altar upon his bases; for fear was upon them -because of the people of those countries: and they offered burnt -offerings thereon unto the LORD, even burnt offerings morning and -evening. - -3:4 They kept also the feast of tabernacles, as it is written, and -offered the daily burnt offerings by number, according to the custom, -as the duty of every day required; 3:5 And afterward offered the -continual burnt offering, both of the new moons, and of all the set -feasts of the LORD that were consecrated, and of every one that -willingly offered a freewill offering unto the LORD. - -3:6 From the first day of the seventh month began they to offer burnt -offerings unto the LORD. But the foundation of the temple of the LORD -was not yet laid. - -3:7 They gave money also unto the masons, and to the carpenters; and -meat, and drink, and oil, unto them of Zidon, and to them of Tyre, to -bring cedar trees from Lebanon to the sea of Joppa, according to the -grant that they had of Cyrus king of Persia. - -3:8 Now in the second year of their coming unto the house of God at -Jerusalem, in the second month, began Zerubbabel the son of Shealtiel, -and Jeshua the son of Jozadak, and the remnant of their brethren the -priests and the Levites, and all they that were come out of the -captivity unto Jerusalem; and appointed the Levites, from twenty years -old and upward, to set forward the work of the house of the LORD. - -3:9 Then stood Jeshua with his sons and his brethren, Kadmiel and his -sons, the sons of Judah, together, to set forward the workmen in the -house of God: the sons of Henadad, with their sons and their brethren -the Levites. - -3:10 And when the builders laid the foundation of the temple of the -LORD, they set the priests in their apparel with trumpets, and the -Levites the sons of Asaph with cymbals, to praise the LORD, after the -ordinance of David king of Israel. - -3:11 And they sang together by course in praising and giving thanks -unto the LORD; because he is good, for his mercy endureth for ever -toward Israel. - -And all the people shouted with a great shout, when they praised the -LORD, because the foundation of the house of the LORD was laid. - -3:12 But many of the priests and Levites and chief of the fathers, who -were ancient men, that had seen the first house, when the foundation -of this house was laid before their eyes, wept with a loud voice; and -many shouted aloud for joy: 3:13 So that the people could not discern -the noise of the shout of joy from the noise of the weeping of the -people: for the people shouted with a loud shout, and the noise was -heard afar off. - -4:1 Now when the adversaries of Judah and Benjamin heard that the -children of the captivity builded the temple unto the LORD God of -Israel; 4:2 Then they came to Zerubbabel, and to the chief of the -fathers, and said unto them, Let us build with you: for we seek your -God, as ye do; and we do sacrifice unto him since the days of -Esarhaddon king of Assur, which brought us up hither. - -4:3 But Zerubbabel, and Jeshua, and the rest of the chief of the -fathers of Israel, said unto them, Ye have nothing to do with us to -build an house unto our God; but we ourselves together will build unto -the LORD God of Israel, as king Cyrus the king of Persia hath -commanded us. - -4:4 Then the people of the land weakened the hands of the people of -Judah, and troubled them in building, 4:5 And hired counsellors -against them, to frustrate their purpose, all the days of Cyrus king -of Persia, even until the reign of Darius king of Persia. - -4:6 And in the reign of Ahasuerus, in the beginning of his reign, -wrote they unto him an accusation against the inhabitants of Judah and -Jerusalem. - -4:7 And in the days of Artaxerxes wrote Bishlam, Mithredath, Tabeel, -and the rest of their companions, unto Artaxerxes king of Persia; and -the writing of the letter was written in the Syrian tongue, and -interpreted in the Syrian tongue. - -4:8 Rehum the chancellor and Shimshai the scribe wrote a letter -against Jerusalem to Artaxerxes the king in this sort: 4:9 Then wrote -Rehum the chancellor, and Shimshai the scribe, and the rest of their -companions; the Dinaites, the Apharsathchites, the Tarpelites, the -Apharsites, the Archevites, the Babylonians, the Susanchites, the -Dehavites, and the Elamites, 4:10 And the rest of the nations whom the -great and noble Asnapper brought over, and set in the cities of -Samaria, and the rest that are on this side the river, and at such a -time. - -4:11 This is the copy of the letter that they sent unto him, even unto -Artaxerxes the king; Thy servants the men on this side the river, and -at such a time. - -4:12 Be it known unto the king, that the Jews which came up from thee -to us are come unto Jerusalem, building the rebellious and the bad -city, and have set up the walls thereof, and joined the foundations. - -4:13 Be it known now unto the king, that, if this city be builded, and -the walls set up again, then will they not pay toll, tribute, and -custom, and so thou shalt endamage the revenue of the kings. - -4:14 Now because we have maintenance from the king's palace, and it -was not meet for us to see the king's dishonour, therefore have we -sent and certified the king; 4:15 That search may be made in the book -of the records of thy fathers: so shalt thou find in the book of the -records, and know that this city is a rebellious city, and hurtful -unto kings and provinces, and that they have moved sedition within the -same of old time: for which cause was this city destroyed. - -4:16 We certify the king that, if this city be builded again, and the -walls thereof set up, by this means thou shalt have no portion on this -side the river. - -4:17 Then sent the king an answer unto Rehum the chancellor, and to -Shimshai the scribe, and to the rest of their companions that dwell in -Samaria, and unto the rest beyond the river, Peace, and at such a -time. - -4:18 The letter which ye sent unto us hath been plainly read before -me. - -4:19 And I commanded, and search hath been made, and it is found that -this city of old time hath made insurrection against kings, and that -rebellion and sedition have been made therein. - -4:20 There have been mighty kings also over Jerusalem, which have -ruled over all countries beyond the river; and toll, tribute, and -custom, was paid unto them. - -4:21 Give ye now commandment to cause these men to cease, and that -this city be not builded, until another commandment shall be given -from me. - -4:22 Take heed now that ye fail not to do this: why should damage grow -to the hurt of the kings? 4:23 Now when the copy of king Artaxerxes' -letter was read before Rehum, and Shimshai the scribe, and their -companions, they went up in haste to Jerusalem unto the Jews, and made -them to cease by force and power. - -4:24 Then ceased the work of the house of God which is at Jerusalem. -So it ceased unto the second year of the reign of Darius king of -Persia. - -5:1 Then the prophets, Haggai the prophet, and Zechariah the son of -Iddo, prophesied unto the Jews that were in Judah and Jerusalem in the -name of the God of Israel, even unto them. - -5:2 Then rose up Zerubbabel the son of Shealtiel, and Jeshua the son -of Jozadak, and began to build the house of God which is at Jerusalem: -and with them were the prophets of God helping them. - -5:3 At the same time came to them Tatnai, governor on this side the -river, and Shetharboznai and their companions, and said thus unto -them, Who hath commanded you to build this house, and to make up this -wall? 5:4 Then said we unto them after this manner, What are the -names of the men that make this building? 5:5 But the eye of their -God was upon the elders of the Jews, that they could not cause them to -cease, till the matter came to Darius: and then they returned answer -by letter concerning this matter. - -5:6 The copy of the letter that Tatnai, governor on this side the -river, and Shetharboznai and his companions the Apharsachites, which -were on this side the river, sent unto Darius the king: 5:7 They sent -a letter unto him, wherein was written thus; Unto Darius the king, all -peace. - -5:8 Be it known unto the king, that we went into the province of -Judea, to the house of the great God, which is builded with great -stones, and timber is laid in the walls, and this work goeth fast on, -and prospereth in their hands. - -5:9 Then asked we those elders, and said unto them thus, Who commanded -you to build this house, and to make up these walls? 5:10 We asked -their names also, to certify thee, that we might write the names of -the men that were the chief of them. - -5:11 And thus they returned us answer, saying, We are the servants of -the God of heaven and earth, and build the house that was builded -these many years ago, which a great king of Israel builded and set up. - -5:12 But after that our fathers had provoked the God of heaven unto -wrath, he gave them into the hand of Nebuchadnezzar the king of -Babylon, the Chaldean, who destroyed this house, and carried the -people away into Babylon. - -5:13 But in the first year of Cyrus the king of Babylon the same king -Cyrus made a decree to build this house of God. - -5:14 And the vessels also of gold and silver of the house of God, -which Nebuchadnezzar took out of the temple that was in Jerusalem, and -brought them into the temple of Babylon, those did Cyrus the king take -out of the temple of Babylon, and they were delivered unto one, whose -name was Sheshbazzar, whom he had made governor; 5:15 And said unto -him, Take these vessels, go, carry them into the temple that is in -Jerusalem, and let the house of God be builded in his place. - -5:16 Then came the same Sheshbazzar, and laid the foundation of the -house of God which is in Jerusalem: and since that time even until now -hath it been in building, and yet it is not finished. - -5:17 Now therefore, if it seem good to the king, let there be search -made in the king's treasure house, which is there at Babylon, whether -it be so, that a decree was made of Cyrus the king to build this house -of God at Jerusalem, and let the king send his pleasure to us -concerning this matter. - -6:1 Then Darius the king made a decree, and search was made in the -house of the rolls, where the treasures were laid up in Babylon. - -6:2 And there was found at Achmetha, in the palace that is in the -province of the Medes, a roll, and therein was a record thus written: -6:3 In the first year of Cyrus the king the same Cyrus the king made a -decree concerning the house of God at Jerusalem, Let the house be -builded, the place where they offered sacrifices, and let the -foundations thereof be strongly laid; the height thereof threescore -cubits, and the breadth thereof threescore cubits; 6:4 With three rows -of great stones, and a row of new timber: and let the expenses be -given out of the king's house: 6:5 And also let the golden and silver -vessels of the house of God, which Nebuchadnezzar took forth out of -the temple which is at Jerusalem, and brought unto Babylon, be -restored, and brought again unto the temple which is at Jerusalem, -every one to his place, and place them in the house of God. - -6:6 Now therefore, Tatnai, governor beyond the river, Shetharboznai, -and your companions the Apharsachites, which are beyond the river, be -ye far from thence: 6:7 Let the work of this house of God alone; let -the governor of the Jews and the elders of the Jews build this house -of God in his place. - -6:8 Moreover I make a decree what ye shall do to the elders of these -Jews for the building of this house of God: that of the king's goods, -even of the tribute beyond the river, forthwith expenses be given unto -these men, that they be not hindered. - -6:9 And that which they have need of, both young bullocks, and rams, -and lambs, for the burnt offerings of the God of heaven, wheat, salt, -wine, and oil, according to the appointment of the priests which are -at Jerusalem, let it be given them day by day without fail: 6:10 That -they may offer sacrifices of sweet savours unto the God of heaven, and -pray for the life of the king, and of his sons. - -6:11 Also I have made a decree, that whosoever shall alter this word, -let timber be pulled down from his house, and being set up, let him be -hanged thereon; and let his house be made a dunghill for this. - -6:12 And the God that hath caused his name to dwell there destroy all -kings and people, that shall put to their hand to alter and to destroy -this house of God which is at Jerusalem. I Darius have made a decree; -let it be done with speed. - -6:13 Then Tatnai, governor on this side the river, Shetharboznai, and -their companions, according to that which Darius the king had sent, so -they did speedily. - -6:14 And the elders of the Jews builded, and they prospered through -the prophesying of Haggai the prophet and Zechariah the son of Iddo. -And they builded, and finished it, according to the commandment of the -God of Israel, and according to the commandment of Cyrus, and Darius, -and Artaxerxes king of Persia. - -6:15 And this house was finished on the third day of the month Adar, -which was in the sixth year of the reign of Darius the king. - -6:16 And the children of Israel, the priests, and the Levites, and the -rest of the children of the captivity, kept the dedication of this -house of God with joy. - -6:17 And offered at the dedication of this house of God an hundred -bullocks, two hundred rams, four hundred lambs; and for a sin offering -for all Israel, twelve he goats, according to the number of the tribes -of Israel. - -6:18 And they set the priests in their divisions, and the Levites in -their courses, for the service of God, which is at Jerusalem; as it is -written in the book of Moses. - -6:19 And the children of the captivity kept the passover upon the -fourteenth day of the first month. - -6:20 For the priests and the Levites were purified together, all of -them were pure, and killed the passover for all the children of the -captivity, and for their brethren the priests, and for themselves. - -6:21 And the children of Israel, which were come again out of -captivity, and all such as had separated themselves unto them from the -filthiness of the heathen of the land, to seek the LORD God of Israel, -did eat, 6:22 And kept the feast of unleavened bread seven days with -joy: for the LORD had made them joyful, and turned the heart of the -king of Assyria unto them, to strengthen their hands in the work of -the house of God, the God of Israel. - -7:1 Now after these things, in the reign of Artaxerxes king of Persia, -Ezra the son of Seraiah, the son of Azariah, the son of Hilkiah, 7:2 -The son of Shallum, the son of Zadok, the son of Ahitub, 7:3 The son -of Amariah, the son of Azariah, the son of Meraioth, 7:4 The son of -Zerahiah, the son of Uzzi, the son of Bukki, 7:5 The son of Abishua, -the son of Phinehas, the son of Eleazar, the son of Aaron the chief -priest: 7:6 This Ezra went up from Babylon; and he was a ready scribe -in the law of Moses, which the LORD God of Israel had given: and the -king granted him all his request, according to the hand of the LORD -his God upon him. - -7:7 And there went up some of the children of Israel, and of the -priests, and the Levites, and the singers, and the porters, and the -Nethinims, unto Jerusalem, in the seventh year of Artaxerxes the king. - -7:8 And he came to Jerusalem in the fifth month, which was in the -seventh year of the king. - -7:9 For upon the first day of the first month began he to go up from -Babylon, and on the first day of the fifth month came he to Jerusalem, -according to the good hand of his God upon him. - -7:10 For Ezra had prepared his heart to seek the law of the LORD, and -to do it, and to teach in Israel statutes and judgments. - -7:11 Now this is the copy of the letter that the king Artaxerxes gave -unto Ezra the priest, the scribe, even a scribe of the words of the -commandments of the LORD, and of his statutes to Israel. - -7:12 Artaxerxes, king of kings, unto Ezra the priest, a scribe of the -law of the God of heaven, perfect peace, and at such a time. - -7:13 I make a decree, that all they of the people of Israel, and of -his priests and Levites, in my realm, which are minded of their own -freewill to go up to Jerusalem, go with thee. - -7:14 Forasmuch as thou art sent of the king, and of his seven -counsellors, to enquire concerning Judah and Jerusalem, according to -the law of thy God which is in thine hand; 7:15 And to carry the -silver and gold, which the king and his counsellors have freely -offered unto the God of Israel, whose habitation is in Jerusalem, 7:16 -And all the silver and gold that thou canst find in all the province -of Babylon, with the freewill offering of the people, and of the -priests, offering willingly for the house of their God which is in -Jerusalem: 7:17 That thou mayest buy speedily with this money -bullocks, rams, lambs, with their meat offerings and their drink -offerings, and offer them upon the altar of the house of your God -which is in Jerusalem. - -7:18 And whatsoever shall seem good to thee, and to thy brethren, to -do with the rest of the silver and the gold, that do after the will of -your God. - -7:19 The vessels also that are given thee for the service of the house -of thy God, those deliver thou before the God of Jerusalem. - -7:20 And whatsoever more shall be needful for the house of thy God, -which thou shalt have occasion to bestow, bestow it out of the king's -treasure house. - -7:21 And I, even I Artaxerxes the king, do make a decree to all the -treasurers which are beyond the river, that whatsoever Ezra the -priest, the scribe of the law of the God of heaven, shall require of -you, it be done speedily, 7:22 Unto an hundred talents of silver, and -to an hundred measures of wheat, and to an hundred baths of wine, and -to an hundred baths of oil, and salt without prescribing how much. - -7:23 Whatsoever is commanded by the God of heaven, let it be -diligently done for the house of the God of heaven: for why should -there be wrath against the realm of the king and his sons? 7:24 Also -we certify you, that touching any of the priests and Levites, singers, -porters, Nethinims, or ministers of this house of God, it shall not be -lawful to impose toll, tribute, or custom, upon them. - -7:25 And thou, Ezra, after the wisdom of thy God, that is in thine -hand, set magistrates and judges, which may judge all the people that -are beyond the river, all such as know the laws of thy God; and teach -ye them that know them not. - -7:26 And whosoever will not do the law of thy God, and the law of the -king, let judgment be executed speedily upon him, whether it be unto -death, or to banishment, or to confiscation of goods, or to -imprisonment. - -7:27 Blessed be the LORD God of our fathers, which hath put such a -thing as this in the king's heart, to beautify the house of the LORD -which is in Jerusalem: 7:28 And hath extended mercy unto me before the -king, and his counsellors, and before all the king's mighty princes. -And I was strengthened as the hand of the LORD my God was upon me, and -I gathered together out of Israel chief men to go up with me. - -8:1 These are now the chief of their fathers, and this is the -genealogy of them that went up with me from Babylon, in the reign of -Artaxerxes the king. - -8:2 Of the sons of Phinehas; Gershom: of the sons of Ithamar; Daniel: -of the sons of David; Hattush. - -8:3 Of the sons of Shechaniah, of the sons of Pharosh; Zechariah: and -with him were reckoned by genealogy of the males an hundred and fifty. - -8:4 Of the sons of Pahathmoab; Elihoenai the son of Zerahiah, and with -him two hundred males. - -8:5 Of the sons of Shechaniah; the son of Jahaziel, and with him three -hundred males. - -8:6 Of the sons also of Adin; Ebed the son of Jonathan, and with him -fifty males. - -8:7 And of the sons of Elam; Jeshaiah the son of Athaliah, and with -him seventy males. - -8:8 And of the sons of Shephatiah; Zebadiah the son of Michael, and -with him fourscore males. - -8:9 Of the sons of Joab; Obadiah the son of Jehiel, and with him two -hundred and eighteen males. - -8:10 And of the sons of Shelomith; the son of Josiphiah, and with him -an hundred and threescore males. - -8:11 And of the sons of Bebai; Zechariah the son of Bebai, and with -him twenty and eight males. - -8:12 And of the sons of Azgad; Johanan the son of Hakkatan, and with -him an hundred and ten males. - -8:13 And of the last sons of Adonikam, whose names are these, -Eliphelet, Jeiel, and Shemaiah, and with them threescore males. - -8:14 Of the sons also of Bigvai; Uthai, and Zabbud, and with them -seventy males. - -8:15 And I gathered them together to the river that runneth to Ahava; -and there abode we in tents three days: and I viewed the people, and -the priests, and found there none of the sons of Levi. - -8:16 Then sent I for Eliezer, for Ariel, for Shemaiah, and for -Elnathan, and for Jarib, and for Elnathan, and for Nathan, and for -Zechariah, and for Meshullam, chief men; also for Joiarib, and for -Elnathan, men of understanding. - -8:17 And I sent them with commandment unto Iddo the chief at the place -Casiphia, and I told them what they should say unto Iddo, and to his -brethren the Nethinims, at the place Casiphia, that they should bring -unto us ministers for the house of our God. - -8:18 And by the good hand of our God upon us they brought us a man of -understanding, of the sons of Mahli, the son of Levi, the son of -Israel; and Sherebiah, with his sons and his brethren, eighteen; 8:19 -And Hashabiah, and with him Jeshaiah of the sons of Merari, his -brethren and their sons, twenty; 8:20 Also of the Nethinims, whom -David and the princes had appointed for the service of the Levites, -two hundred and twenty Nethinims: all of them were expressed by name. - -8:21 Then I proclaimed a fast there, at the river of Ahava, that we -might afflict ourselves before our God, to seek of him a right way for -us, and for our little ones, and for all our substance. - -8:22 For I was ashamed to require of the king a band of soldiers and -horsemen to help us against the enemy in the way: because we had -spoken unto the king, saying, The hand of our God is upon all them for -good that seek him; but his power and his wrath is against all them -that forsake him. - -8:23 So we fasted and besought our God for this: and he was intreated -of us. - -8:24 Then I separated twelve of the chief of the priests, Sherebiah, -Hashabiah, and ten of their brethren with them, 8:25 And weighed unto -them the silver, and the gold, and the vessels, even the offering of -the house of our God, which the king, and his counsellors, and his -lords, and all Israel there present, had offered: 8:26 I even weighed -unto their hand six hundred and fifty talents of silver, and silver -vessels an hundred talents, and of gold an hundred talents; 8:27 Also -twenty basons of gold, of a thousand drams; and two vessels of fine -copper, precious as gold. - -8:28 And I said unto them, Ye are holy unto the LORD; the vessels are -holy also; and the silver and the gold are a freewill offering unto -the LORD God of your fathers. - -8:29 Watch ye, and keep them, until ye weigh them before the chief of -the priests and the Levites, and chief of the fathers of Israel, at -Jerusalem, in the chambers of the house of the LORD. - -8:30 So took the priests and the Levites the weight of the silver, and -the gold, and the vessels, to bring them to Jerusalem unto the house -of our God. - -8:31 Then we departed from the river of Ahava on the twelfth day of -the first month, to go unto Jerusalem: and the hand of our God was -upon us, and he delivered us from the hand of the enemy, and of such -as lay in wait by the way. - -8:32 And we came to Jerusalem, and abode there three days. - -8:33 Now on the fourth day was the silver and the gold and the vessels -weighed in the house of our God by the hand of Meremoth the son of -Uriah the priest; and with him was Eleazar the son of Phinehas; and -with them was Jozabad the son of Jeshua, and Noadiah the son of -Binnui, Levites; 8:34 By number and by weight of every one: and all -the weight was written at that time. - -8:35 Also the children of those that had been carried away, which were -come out of the captivity, offered burnt offerings unto the God of -Israel, twelve bullocks for all Israel, ninety and six rams, seventy -and seven lambs, twelve he goats for a sin offering: all this was a -burnt offering unto the LORD. - -8:36 And they delivered the king's commissions unto the king's -lieutenants, and to the governors on this side the river: and they -furthered the people, and the house of God. - -9:1 Now when these things were done, the princes came to me, saying, -The people of Israel, and the priests, and the Levites, have not -separated themselves from the people of the lands, doing according to -their abominations, even of the Canaanites, the Hittites, the -Perizzites, the Jebusites, the Ammonites, the Moabites, the Egyptians, -and the Amorites. - -9:2 For they have taken of their daughters for themselves, and for -their sons: so that the holy seed have mingled themselves with the -people of those lands: yea, the hand of the princes and rulers hath -been chief in this trespass. - -9:3 And when I heard this thing, I rent my garment and my mantle, and -plucked off the hair of my head and of my beard, and sat down -astonied. - -9:4 Then were assembled unto me every one that trembled at the words -of the God of Israel, because of the transgression of those that had -been carried away; and I sat astonied until the evening sacrifice. - -9:5 And at the evening sacrifice I arose up from my heaviness; and -having rent my garment and my mantle, I fell upon my knees, and spread -out my hands unto the LORD my God, 9:6 And said, O my God, I am -ashamed and blush to lift up my face to thee, my God: for our -iniquities are increased over our head, and our trespass is grown up -unto the heavens. - -9:7 Since the days of our fathers have we been in a great trespass -unto this day; and for our iniquities have we, our kings, and our -priests, been delivered into the hand of the kings of the lands, to -the sword, to captivity, and to a spoil, and to confusion of face, as -it is this day. - -9:8 And now for a little space grace hath been shewed from the LORD -our God, to leave us a remnant to escape, and to give us a nail in his -holy place, that our God may lighten our eyes, and give us a little -reviving in our bondage. - -9:9 For we were bondmen; yet our God hath not forsaken us in our -bondage, but hath extended mercy unto us in the sight of the kings of -Persia, to give us a reviving, to set up the house of our God, and to -repair the desolations thereof, and to give us a wall in Judah and in -Jerusalem. - -9:10 And now, O our God, what shall we say after this? for we have -forsaken thy commandments, 9:11 Which thou hast commanded by thy -servants the prophets, saying, The land, unto which ye go to possess -it, is an unclean land with the filthiness of the people of the lands, -with their abominations, which have filled it from one end to another -with their uncleanness. - -9:12 Now therefore give not your daughters unto their sons, neither -take their daughters unto your sons, nor seek their peace or their -wealth for ever: that ye may be strong, and eat the good of the land, -and leave it for an inheritance to your children for ever. - -9:13 And after all that is come upon us for our evil deeds, and for -our great trespass, seeing that thou our God hast punished us less -than our iniquities deserve, and hast given us such deliverance as -this; 9:14 Should we again break thy commandments, and join in -affinity with the people of these abominations? wouldest not thou be -angry with us till thou hadst consumed us, so that there should be no -remnant nor escaping? 9:15 O LORD God of Israel, thou art righteous: -for we remain yet escaped, as it is this day: behold, we are before -thee in our trespasses: for we cannot stand before thee because of -this. - -10:1 Now when Ezra had prayed, and when he had confessed, weeping and -casting himself down before the house of God, there assembled unto him -out of Israel a very great congregation of men and women and children: -for the people wept very sore. - -10:2 And Shechaniah the son of Jehiel, one of the sons of Elam, -answered and said unto Ezra, We have trespassed against our God, and -have taken strange wives of the people of the land: yet now there is -hope in Israel concerning this thing. - -10:3 Now therefore let us make a covenant with our God to put away all -the wives, and such as are born of them, according to the counsel of -my lord, and of those that tremble at the commandment of our God; and -let it be done according to the law. - -10:4 Arise; for this matter belongeth unto thee: we also will be with -thee: be of good courage, and do it. - -10:5 Then arose Ezra, and made the chief priests, the Levites, and all -Israel, to swear that they should do according to this word. And they -sware. - -10:6 Then Ezra rose up from before the house of God, and went into the -chamber of Johanan the son of Eliashib: and when he came thither, he -did eat no bread, nor drink water: for he mourned because of the -transgression of them that had been carried away. - -10:7 And they made proclamation throughout Judah and Jerusalem unto -all the children of the captivity, that they should gather themselves -together unto Jerusalem; 10:8 And that whosoever would not come within -three days, according to the counsel of the princes and the elders, -all his substance should be forfeited, and himself separated from the -congregation of those that had been carried away. - -10:9 Then all the men of Judah and Benjamin gathered themselves -together unto Jerusalem within three days. It was the ninth month, on -the twentieth day of the month; and all the people sat in the street -of the house of God, trembling because of this matter, and for the -great rain. - -10:10 And Ezra the priest stood up, and said unto them, Ye have -transgressed, and have taken strange wives, to increase the trespass -of Israel. - -10:11 Now therefore make confession unto the LORD God of your fathers, -and do his pleasure: and separate yourselves from the people of the -land, and from the strange wives. - -10:12 Then all the congregation answered and said with a loud voice, -As thou hast said, so must we do. - -10:13 But the people are many, and it is a time of much rain, and we -are not able to stand without, neither is this a work of one day or -two: for we are many that have transgressed in this thing. - -10:14 Let now our rulers of all the congregation stand, and let all -them which have taken strange wives in our cities come at appointed -times, and with them the elders of every city, and the judges thereof, -until the fierce wrath of our God for this matter be turned from us. - -10:15 Only Jonathan the son of Asahel and Jahaziah the son of Tikvah -were employed about this matter: and Meshullam and Shabbethai the -Levite helped them. - -10:16 And the children of the captivity did so. And Ezra the priest, -with certain chief of the fathers, after the house of their fathers, -and all of them by their names, were separated, and sat down in the -first day of the tenth month to examine the matter. - -10:17 And they made an end with all the men that had taken strange -wives by the first day of the first month. - -10:18 And among the sons of the priests there were found that had -taken strange wives: namely, of the sons of Jeshua the son of Jozadak, -and his brethren; Maaseiah, and Eliezer, and Jarib, and Gedaliah. - -10:19 And they gave their hands that they would put away their wives; -and being guilty, they offered a ram of the flock for their trespass. - -10:20 And of the sons of Immer; Hanani, and Zebadiah. - -10:21 And of the sons of Harim; Maaseiah, and Elijah, and Shemaiah, -and Jehiel, and Uzziah. - -10:22 And of the sons of Pashur; Elioenai, Maaseiah, Ishmael, -Nethaneel, Jozabad, and Elasah. - -10:23 Also of the Levites; Jozabad, and Shimei, and Kelaiah, (the same -is Kelita,) Pethahiah, Judah, and Eliezer. - -10:24 Of the singers also; Eliashib: and of the porters; Shallum, and -Telem, and Uri. - -10:25 Moreover of Israel: of the sons of Parosh; Ramiah, and Jeziah, -and Malchiah, and Miamin, and Eleazar, and Malchijah, and Benaiah. - -10:26 And of the sons of Elam; Mattaniah, Zechariah, and Jehiel, and -Abdi, and Jeremoth, and Eliah. - -10:27 And of the sons of Zattu; Elioenai, Eliashib, Mattaniah, and -Jeremoth, and Zabad, and Aziza. - -10:28 Of the sons also of Bebai; Jehohanan, Hananiah, Zabbai, and -Athlai. - -10:29 And of the sons of Bani; Meshullam, Malluch, and Adaiah, Jashub, -and Sheal, and Ramoth. - -10:30 And of the sons of Pahathmoab; Adna, and Chelal, Benaiah, -Maaseiah, Mattaniah, Bezaleel, and Binnui, and Manasseh. - -10:31 And of the sons of Harim; Eliezer, Ishijah, Malchiah, Shemaiah, -Shimeon, 10:32 Benjamin, Malluch, and Shemariah. - -10:33 Of the sons of Hashum; Mattenai, Mattathah, Zabad, Eliphelet, -Jeremai, Manasseh, and Shimei. - -10:34 Of the sons of Bani; Maadai, Amram, and Uel, 10:35 Benaiah, -Bedeiah, Chelluh, 10:36 Vaniah, Meremoth, Eliashib, 10:37 Mattaniah, -Mattenai, and Jaasau, 10:38 And Bani, and Binnui, Shimei, 10:39 And -Shelemiah, and Nathan, and Adaiah, 10:40 Machnadebai, Shashai, Sharai, -10:41 Azareel, and Shelemiah, Shemariah, 10:42 Shallum, Amariah, and -Joseph. - -10:43 Of the sons of Nebo; Jeiel, Mattithiah, Zabad, Zebina, Jadau, -and Joel, Benaiah. - -10:44 All these had taken strange wives: and some of them had wives by -whom they had children. - - - -The Book of Nehemiah - - -1:1 The words of Nehemiah the son of Hachaliah. And it came to pass -in the month Chisleu, in the twentieth year, as I was in Shushan the -palace, 1:2 That Hanani, one of my brethren, came, he and certain men -of Judah; and I asked them concerning the Jews that had escaped, which -were left of the captivity, and concerning Jerusalem. - -1:3 And they said unto me, The remnant that are left of the captivity -there in the province are in great affliction and reproach: the wall -of Jerusalem also is broken down, and the gates thereof are burned -with fire. - -1:4 And it came to pass, when I heard these words, that I sat down and -wept, and mourned certain days, and fasted, and prayed before the God -of heaven, 1:5 And said, I beseech thee, O LORD God of heaven, the -great and terrible God, that keepeth covenant and mercy for them that -love him and observe his commandments: 1:6 Let thine ear now be -attentive, and thine eyes open, that thou mayest hear the prayer of -thy servant, which I pray before thee now, day and night, for the -children of Israel thy servants, and confess the sins of the children -of Israel, which we have sinned against thee: both I and my father's -house have sinned. - -1:7 We have dealt very corruptly against thee, and have not kept the -commandments, nor the statutes, nor the judgments, which thou -commandedst thy servant Moses. - -1:8 Remember, I beseech thee, the word that thou commandedst thy -servant Moses, saying, If ye transgress, I will scatter you abroad -among the nations: 1:9 But if ye turn unto me, and keep my -commandments, and do them; though there were of you cast out unto the -uttermost part of the heaven, yet will I gather them from thence, and -will bring them unto the place that I have chosen to set my name -there. - -1:10 Now these are thy servants and thy people, whom thou hast -redeemed by thy great power, and by thy strong hand. - -1:11 O LORD, I beseech thee, let now thine ear be attentive to the -prayer of thy servant, and to the prayer of thy servants, who desire -to fear thy name: and prosper, I pray thee, thy servant this day, and -grant him mercy in the sight of this man. For I was the king's -cupbearer. - -2:1 And it came to pass in the month Nisan, in the twentieth year of -Artaxerxes the king, that wine was before him: and I took up the wine, -and gave it unto the king. Now I had not been beforetime sad in his -presence. - -2:2 Wherefore the king said unto me, Why is thy countenance sad, -seeing thou art not sick? this is nothing else but sorrow of heart. -Then I was very sore afraid, 2:3 And said unto the king, Let the king -live for ever: why should not my countenance be sad, when the city, -the place of my fathers' sepulchres, lieth waste, and the gates -thereof are consumed with fire? 2:4 Then the king said unto me, For -what dost thou make request? So I prayed to the God of heaven. - -2:5 And I said unto the king, If it please the king, and if thy -servant have found favour in thy sight, that thou wouldest send me -unto Judah, unto the city of my fathers' sepulchres, that I may build -it. - -2:6 And the king said unto me, (the queen also sitting by him,) For -how long shall thy journey be? and when wilt thou return? So it -pleased the king to send me; and I set him a time. - -2:7 Moreover I said unto the king, If it please the king, let letters -be given me to the governors beyond the river, that they may convey me -over till I come into Judah; 2:8 And a letter unto Asaph the keeper of -the king's forest, that he may give me timber to make beams for the -gates of the palace which appertained to the house, and for the wall -of the city, and for the house that I shall enter into. And the king -granted me, according to the good hand of my God upon me. - -2:9 Then I came to the governors beyond the river, and gave them the -king's letters. Now the king had sent captains of the army and -horsemen with me. - -2:10 When Sanballat the Horonite, and Tobiah the servant, the -Ammonite, heard of it, it grieved them exceedingly that there was come -a man to seek the welfare of the children of Israel. - -2:11 So I came to Jerusalem, and was there three days. - -2:12 And I arose in the night, I and some few men with me; neither -told I any man what my God had put in my heart to do at Jerusalem: -neither was there any beast with me, save the beast that I rode upon. - -2:13 And I went out by night by the gate of the valley, even before -the dragon well, and to the dung port, and viewed the walls of -Jerusalem, which were broken down, and the gates thereof were consumed -with fire. - -2:14 Then I went on to the gate of the fountain, and to the king's -pool: but there was no place for the beast that was under me to pass. - -2:15 Then went I up in the night by the brook, and viewed the wall, -and turned back, and entered by the gate of the valley, and so -returned. - -2:16 And the rulers knew not whither I went, or what I did; neither -had I as yet told it to the Jews, nor to the priests, nor to the -nobles, nor to the rulers, nor to the rest that did the work. - -2:17 Then said I unto them, Ye see the distress that we are in, how -Jerusalem lieth waste, and the gates thereof are burned with fire: -come, and let us build up the wall of Jerusalem, that we be no more a -reproach. - -2:18 Then I told them of the hand of my God which was good upon me; as -also the king's words that he had spoken unto me. And they said, Let -us rise up and build. So they strengthened their hands for this good -work. - -2:19 But when Sanballat the Horonite, and Tobiah the servant, the -Ammonite, and Geshem the Arabian, heard it, they laughed us to scorn, -and despised us, and said, What is this thing that ye do? will ye -rebel against the king? 2:20 Then answered I them, and said unto -them, The God of heaven, he will prosper us; therefore we his servants -will arise and build: but ye have no portion, nor right, nor memorial, -in Jerusalem. - -3:1 Then Eliashib the high priest rose up with his brethren the -priests, and they builded the sheep gate; they sanctified it, and set -up the doors of it; even unto the tower of Meah they sanctified it, -unto the tower of Hananeel. - -3:2 And next unto him builded the men of Jericho. And next to them -builded Zaccur the son of Imri. - -3:3 But the fish gate did the sons of Hassenaah build, who also laid -the beams thereof, and set up the doors thereof, the locks thereof, -and the bars thereof. - -3:4 And next unto them repaired Meremoth the son of Urijah, the son of -Koz. And next unto them repaired Meshullam the son of Berechiah, the -son of Meshezabeel. And next unto them repaired Zadok the son of -Baana. - -3:5 And next unto them the Tekoites repaired; but their nobles put not -their necks to the work of their LORD. - -3:6 Moreover the old gate repaired Jehoiada the son of Paseah, and -Meshullam the son of Besodeiah; they laid the beams thereof, and set -up the doors thereof, and the locks thereof, and the bars thereof. - -3:7 And next unto them repaired Melatiah the Gibeonite, and Jadon the -Meronothite, the men of Gibeon, and of Mizpah, unto the throne of the -governor on this side the river. - -3:8 Next unto him repaired Uzziel the son of Harhaiah, of the -goldsmiths. - -Next unto him also repaired Hananiah the son of one of the -apothecaries, and they fortified Jerusalem unto the broad wall. - -3:9 And next unto them repaired Rephaiah the son of Hur, the ruler of -the half part of Jerusalem. - -3:10 And next unto them repaired Jedaiah the son of Harumaph, even -over against his house. And next unto him repaired Hattush the son of -Hashabniah. - -3:11 Malchijah the son of Harim, and Hashub the son of Pahathmoab, -repaired the other piece, and the tower of the furnaces. - -3:12 And next unto him repaired Shallum the son of Halohesh, the ruler -of the half part of Jerusalem, he and his daughters. - -3:13 The valley gate repaired Hanun, and the inhabitants of Zanoah; -they built it, and set up the doors thereof, the locks thereof, and -the bars thereof, and a thousand cubits on the wall unto the dung -gate. - -3:14 But the dung gate repaired Malchiah the son of Rechab, the ruler -of part of Bethhaccerem; he built it, and set up the doors thereof, -the locks thereof, and the bars thereof. - -3:15 But the gate of the fountain repaired Shallun the son of -Colhozeh, the ruler of part of Mizpah; he built it, and covered it, -and set up the doors thereof, the locks thereof, and the bars thereof, -and the wall of the pool of Siloah by the king's garden, and unto the -stairs that go down from the city of David. - -3:16 After him repaired Nehemiah the son of Azbuk, the ruler of the -half part of Bethzur, unto the place over against the sepulchres of -David, and to the pool that was made, and unto the house of the -mighty. - -3:17 After him repaired the Levites, Rehum the son of Bani. Next unto -him repaired Hashabiah, the ruler of the half part of Keilah, in his -part. - -3:18 After him repaired their brethren, Bavai the son of Henadad, the -ruler of the half part of Keilah. - -3:19 And next to him repaired Ezer the son of Jeshua, the ruler of -Mizpah, another piece over against the going up to the armoury at the -turning of the wall. - -3:20 After him Baruch the son of Zabbai earnestly repaired the other -piece, from the turning of the wall unto the door of the house of -Eliashib the high priest. - -3:21 After him repaired Meremoth the son of Urijah the son of Koz -another piece, from the door of the house of Eliashib even to the end -of the house of Eliashib. - -3:22 And after him repaired the priests, the men of the plain. - -3:23 After him repaired Benjamin and Hashub over against their house. - -After him repaired Azariah the son of Maaseiah the son of Ananiah by -his house. - -3:24 After him repaired Binnui the son of Henadad another piece, from -the house of Azariah unto the turning of the wall, even unto the -corner. - -3:25 Palal the son of Uzai, over against the turning of the wall, and -the tower which lieth out from the king's high house, that was by the -court of the prison. After him Pedaiah the son of Parosh. - -3:26 Moreover the Nethinims dwelt in Ophel, unto the place over -against the water gate toward the east, and the tower that lieth out. - -3:27 After them the Tekoites repaired another piece, over against the -great tower that lieth out, even unto the wall of Ophel. - -3:28 From above the horse gate repaired the priests, every one over -against his house. - -3:29 After them repaired Zadok the son of Immer over against his -house. - -After him repaired also Shemaiah the son of Shechaniah, the keeper of -the east gate. - -3:30 After him repaired Hananiah the son of Shelemiah, and Hanun the -sixth son of Zalaph, another piece. After him repaired Meshullam the -son of Berechiah over against his chamber. - -3:31 After him repaired Malchiah the goldsmith's son unto the place of -the Nethinims, and of the merchants, over against the gate Miphkad, -and to the going up of the corner. - -3:32 And between the going up of the corner unto the sheep gate -repaired the goldsmiths and the merchants. - -4:1 But it came to pass, that when Sanballat heard that we builded the -wall, he was wroth, and took great indignation, and mocked the Jews. - -4:2 And he spake before his brethren and the army of Samaria, and -said, What do these feeble Jews? will they fortify themselves? will -they sacrifice? will they make an end in a day? will they revive the -stones out of the heaps of the rubbish which are burned? 4:3 Now -Tobiah the Ammonite was by him, and he said, Even that which they -build, if a fox go up, he shall even break down their stone wall. - -4:4 Hear, O our God; for we are despised: and turn their reproach upon -their own head, and give them for a prey in the land of captivity: 4:5 -And cover not their iniquity, and let not their sin be blotted out -from before thee: for they have provoked thee to anger before the -builders. - -4:6 So built we the wall; and all the wall was joined together unto -the half thereof: for the people had a mind to work. - -4:7 But it came to pass, that when Sanballat, and Tobiah, and the -Arabians, and the Ammonites, and the Ashdodites, heard that the walls -of Jerusalem were made up, and that the breaches began to be stopped, -then they were very wroth, 4:8 And conspired all of them together to -come and to fight against Jerusalem, and to hinder it. - -4:9 Nevertheless we made our prayer unto our God, and set a watch -against them day and night, because of them. - -4:10 And Judah said, The strength of the bearers of burdens is -decayed, and there is much rubbish; so that we are not able to build -the wall. - -4:11 And our adversaries said, They shall not know, neither see, till -we come in the midst among them, and slay them, and cause the work to -cease. - -4:12 And it came to pass, that when the Jews which dwelt by them came, -they said unto us ten times, From all places whence ye shall return -unto us they will be upon you. - -4:13 Therefore set I in the lower places behind the wall, and on the -higher places, I even set the people after their families with their -swords, their spears, and their bows. - -4:14 And I looked, and rose up, and said unto the nobles, and to the -rulers, and to the rest of the people, Be not ye afraid of them: -remember the LORD, which is great and terrible, and fight for your -brethren, your sons, and your daughters, your wives, and your houses. - -4:15 And it came to pass, when our enemies heard that it was known -unto us, and God had brought their counsel to nought, that we returned -all of us to the wall, every one unto his work. - -4:16 And it came to pass from that time forth, that the half of my -servants wrought in the work, and the other half of them held both the -spears, the shields, and the bows, and the habergeons; and the rulers -were behind all the house of Judah. - -4:17 They which builded on the wall, and they that bare burdens, with -those that laded, every one with one of his hands wrought in the work, -and with the other hand held a weapon. - -4:18 For the builders, every one had his sword girded by his side, and -so builded. And he that sounded the trumpet was by me. - -4:19 And I said unto the nobles, and to the rulers, and to the rest of -the people, The work is great and large, and we are separated upon the -wall, one far from another. - -4:20 In what place therefore ye hear the sound of the trumpet, resort -ye thither unto us: our God shall fight for us. - -4:21 So we laboured in the work: and half of them held the spears from -the rising of the morning till the stars appeared. - -4:22 Likewise at the same time said I unto the people, Let every one -with his servant lodge within Jerusalem, that in the night they may be -a guard to us, and labour on the day. - -4:23 So neither I, nor my brethren, nor my servants, nor the men of -the guard which followed me, none of us put off our clothes, saving -that every one put them off for washing. - -5:1 And there was a great cry of the people and of their wives against -their brethren the Jews. - -5:2 For there were that said, We, our sons, and our daughters, are -many: therefore we take up corn for them, that we may eat, and live. - -5:3 Some also there were that said, We have mortgaged our lands, -vineyards, and houses, that we might buy corn, because of the dearth. - -5:4 There were also that said, We have borrowed money for the king's -tribute, and that upon our lands and vineyards. - -5:5 Yet now our flesh is as the flesh of our brethren, our children as -their children: and, lo, we bring into bondage our sons and our -daughters to be servants, and some of our daughters are brought unto -bondage already: neither is it in our power to redeem them; for other -men have our lands and vineyards. - -5:6 And I was very angry when I heard their cry and these words. - -5:7 Then I consulted with myself, and I rebuked the nobles, and the -rulers, and said unto them, Ye exact usury, every one of his brother. -And I set a great assembly against them. - -5:8 And I said unto them, We after our ability have redeemed our -brethren the Jews, which were sold unto the heathen; and will ye even -sell your brethren? or shall they be sold unto us? Then held they -their peace, and found nothing to answer. - -5:9 Also I said, It is not good that ye do: ought ye not to walk in -the fear of our God because of the reproach of the heathen our -enemies? 5:10 I likewise, and my brethren, and my servants, might -exact of them money and corn: I pray you, let us leave off this usury. - -5:11 Restore, I pray you, to them, even this day, their lands, their -vineyards, their oliveyards, and their houses, also the hundredth part -of the money, and of the corn, the wine, and the oil, that ye exact of -them. - -5:12 Then said they, We will restore them, and will require nothing of -them; so will we do as thou sayest. Then I called the priests, and -took an oath of them, that they should do according to this promise. - -5:13 Also I shook my lap, and said, So God shake out every man from -his house, and from his labour, that performeth not this promise, even -thus be he shaken out, and emptied. And all the congregation said, -Amen, and praised the LORD. And the people did according to this -promise. - -5:14 Moreover from the time that I was appointed to be their governor -in the land of Judah, from the twentieth year even unto the two and -thirtieth year of Artaxerxes the king, that is, twelve years, I and my -brethren have not eaten the bread of the governor. - -5:15 But the former governors that had been before me were chargeable -unto the people, and had taken of them bread and wine, beside forty -shekels of silver; yea, even their servants bare rule over the people: -but so did not I, because of the fear of God. - -5:16 Yea, also I continued in the work of this wall, neither bought we -any land: and all my servants were gathered thither unto the work. - -5:17 Moreover there were at my table an hundred and fifty of the Jews -and rulers, beside those that came unto us from among the heathen that -are about us. - -5:18 Now that which was prepared for me daily was one ox and six -choice sheep; also fowls were prepared for me, and once in ten days -store of all sorts of wine: yet for all this required not I the bread -of the governor, because the bondage was heavy upon this people. - -5:19 Think upon me, my God, for good, according to all that I have -done for this people. - -6:1 Now it came to pass when Sanballat, and Tobiah, and Geshem the -Arabian, and the rest of our enemies, heard that I had builded the -wall, and that there was no breach left therein; (though at that time -I had not set up the doors upon the gates;) 6:2 That Sanballat and -Geshem sent unto me, saying, Come, let us meet together in some one of -the villages in the plain of Ono. But they thought to do me mischief. - -6:3 And I sent messengers unto them, saying, I am doing a great work, -so that I cannot come down: why should the work cease, whilst I leave -it, and come down to you? 6:4 Yet they sent unto me four times after -this sort; and I answered them after the same manner. - -6:5 Then sent Sanballat his servant unto me in like manner the fifth -time with an open letter in his hand; 6:6 Wherein was written, It is -reported among the heathen, and Gashmu saith it, that thou and the -Jews think to rebel: for which cause thou buildest the wall, that thou -mayest be their king, according to these words. - -6:7 And thou hast also appointed prophets to preach of thee at -Jerusalem, saying, There is a king in Judah: and now shall it be -reported to the king according to these words. Come now therefore, and -let us take counsel together. - -6:8 Then I sent unto him, saying, There are no such things done as -thou sayest, but thou feignest them out of thine own heart. - -6:9 For they all made us afraid, saying, Their hands shall be weakened -from the work, that it be not done. Now therefore, O God, strengthen -my hands. - -6:10 Afterward I came unto the house of Shemaiah the son of Delaiah -the son of Mehetabeel, who was shut up; and he said, Let us meet -together in the house of God, within the temple, and let us shut the -doors of the temple: for they will come to slay thee; yea, in the -night will they come to slay thee. - -6:11 And I said, Should such a man as I flee? and who is there, that, -being as I am, would go into the temple to save his life? I will not -go in. - -6:12 And, lo, I perceived that God had not sent him; but that he -pronounced this prophecy against me: for Tobiah and Sanballat had -hired him. - -6:13 Therefore was he hired, that I should be afraid, and do so, and -sin, and that they might have matter for an evil report, that they -might reproach me. - -6:14 My God, think thou upon Tobiah and Sanballat according to these -their works, and on the prophetess Noadiah, and the rest of the -prophets, that would have put me in fear. - -6:15 So the wall was finished in the twenty and fifth day of the month -Elul, in fifty and two days. - -6:16 And it came to pass, that when all our enemies heard thereof, and -all the heathen that were about us saw these things, they were much -cast down in their own eyes: for they perceived that this work was -wrought of our God. - -6:17 Moreover in those days the nobles of Judah sent many letters unto -Tobiah, and the letters of Tobiah came unto them. - -6:18 For there were many in Judah sworn unto him, because he was the -son in law of Shechaniah the son of Arah; and his son Johanan had -taken the daughter of Meshullam the son of Berechiah. - -6:19 Also they reported his good deeds before me, and uttered my words -to him. And Tobiah sent letters to put me in fear. - -7:1 Now it came to pass, when the wall was built, and I had set up the -doors, and the porters and the singers and the Levites were appointed, -7:2 That I gave my brother Hanani, and Hananiah the ruler of the -palace, charge over Jerusalem: for he was a faithful man, and feared -God above many. - -7:3 And I said unto them, Let not the gates of Jerusalem be opened -until the sun be hot; and while they stand by, let them shut the -doors, and bar them: and appoint watches of the inhabitants of -Jerusalem, every one in his watch, and every one to be over against -his house. - -7:4 Now the city was large and great: but the people were few therein, -and the houses were not builded. - -7:5 And my God put into mine heart to gather together the nobles, and -the rulers, and the people, that they might be reckoned by genealogy. -And I found a register of the genealogy of them which came up at the -first, and found written therein, 7:6 These are the children of the -province, that went up out of the captivity, of those that had been -carried away, whom Nebuchadnezzar the king of Babylon had carried -away, and came again to Jerusalem and to Judah, every one unto his -city; 7:7 Who came with Zerubbabel, Jeshua, Nehemiah, Azariah, -Raamiah, Nahamani, Mordecai, Bilshan, Mispereth, Bigvai, Nehum, -Baanah. The number, I say, of the men of the people of Israel was -this; 7:8 The children of Parosh, two thousand an hundred seventy and -two. - -7:9 The children of Shephatiah, three hundred seventy and two. - -7:10 The children of Arah, six hundred fifty and two. - -7:11 The children of Pahathmoab, of the children of Jeshua and Joab, -two thousand and eight hundred and eighteen. - -7:12 The children of Elam, a thousand two hundred fifty and four. - -7:13 The children of Zattu, eight hundred forty and five. - -7:14 The children of Zaccai, seven hundred and threescore. - -7:15 The children of Binnui, six hundred forty and eight. - -7:16 The children of Bebai, six hundred twenty and eight. - -7:17 The children of Azgad, two thousand three hundred twenty and two. - -7:18 The children of Adonikam, six hundred threescore and seven. - -7:19 The children of Bigvai, two thousand threescore and seven. - -7:20 The children of Adin, six hundred fifty and five. - -7:21 The children of Ater of Hezekiah, ninety and eight. - -7:22 The children of Hashum, three hundred twenty and eight. - -7:23 The children of Bezai, three hundred twenty and four. - -7:24 The children of Hariph, an hundred and twelve. - -7:25 The children of Gibeon, ninety and five. - -7:26 The men of Bethlehem and Netophah, an hundred fourscore and -eight. - -7:27 The men of Anathoth, an hundred twenty and eight. - -7:28 The men of Bethazmaveth, forty and two. - -7:29 The men of Kirjathjearim, Chephirah, and Beeroth, seven hundred -forty and three. - -7:30 The men of Ramah and Gaba, six hundred twenty and one. - -7:31 The men of Michmas, an hundred and twenty and two. - -7:32 The men of Bethel and Ai, an hundred twenty and three. - -7:33 The men of the other Nebo, fifty and two. - -7:34 The children of the other Elam, a thousand two hundred fifty and -four. - -7:35 The children of Harim, three hundred and twenty. - -7:36 The children of Jericho, three hundred forty and five. - -7:37 The children of Lod, Hadid, and Ono, seven hundred twenty and -one. - -7:38 The children of Senaah, three thousand nine hundred and thirty. - -7:39 The priests: the children of Jedaiah, of the house of Jeshua, -nine hundred seventy and three. - -7:40 The children of Immer, a thousand fifty and two. - -7:41 The children of Pashur, a thousand two hundred forty and seven. - -7:42 The children of Harim, a thousand and seventeen. - -7:43 The Levites: the children of Jeshua, of Kadmiel, and of the -children of Hodevah, seventy and four. - -7:44 The singers: the children of Asaph, an hundred forty and eight. - -7:45 The porters: the children of Shallum, the children of Ater, the -children of Talmon, the children of Akkub, the children of Hatita, the -children of Shobai, an hundred thirty and eight. - -7:46 The Nethinims: the children of Ziha, the children of Hashupha, -the children of Tabbaoth, 7:47 The children of Keros, the children of -Sia, the children of Padon, 7:48 The children of Lebana, the children -of Hagaba, the children of Shalmai, 7:49 The children of Hanan, the -children of Giddel, the children of Gahar, 7:50 The children of -Reaiah, the children of Rezin, the children of Nekoda, 7:51 The -children of Gazzam, the children of Uzza, the children of Phaseah, -7:52 The children of Besai, the children of Meunim, the children of -Nephishesim, 7:53 The children of Bakbuk, the children of Hakupha, the -children of Harhur, 7:54 The children of Bazlith, the children of -Mehida, the children of Harsha, 7:55 The children of Barkos, the -children of Sisera, the children of Tamah, 7:56 The children of -Neziah, the children of Hatipha. - -7:57 The children of Solomon's servants: the children of Sotai, the -children of Sophereth, the children of Perida, 7:58 The children of -Jaala, the children of Darkon, the children of Giddel, 7:59 The -children of Shephatiah, the children of Hattil, the children of -Pochereth of Zebaim, the children of Amon. - -7:60 All the Nethinims, and the children of Solomon's servants, were -three hundred ninety and two. - -7:61 And these were they which went up also from Telmelah, Telharesha, -Cherub, Addon, and Immer: but they could not shew their father's -house, nor their seed, whether they were of Israel. - -7:62 The children of Delaiah, the children of Tobiah, the children of -Nekoda, six hundred forty and two. - -7:63 And of the priests: the children of Habaiah, the children of Koz, -the children of Barzillai, which took one of the daughters of -Barzillai the Gileadite to wife, and was called after their name. - -7:64 These sought their register among those that were reckoned by -genealogy, but it was not found: therefore were they, as polluted, put -from the priesthood. - -7:65 And the Tirshatha said unto them, that they should not eat of the -most holy things, till there stood up a priest with Urim and Thummim. - -7:66 The whole congregation together was forty and two thousand three -hundred and threescore, 7:67 Beside their manservants and their -maidservants, of whom there were seven thousand three hundred thirty -and seven: and they had two hundred forty and five singing men and -singing women. - -7:68 Their horses, seven hundred thirty and six: their mules, two -hundred forty and five: 7:69 Their camels, four hundred thirty and -five: six thousand seven hundred and twenty asses. - -7:70 And some of the chief of the fathers gave unto the work. The -Tirshatha gave to the treasure a thousand drams of gold, fifty basons, -five hundred and thirty priests' garments. - -7:71 And some of the chief of the fathers gave to the treasure of the -work twenty thousand drams of gold, and two thousand and two hundred -pound of silver. - -7:72 And that which the rest of the people gave was twenty thousand -drams of gold, and two thousand pound of silver, and threescore and -seven priests' garments. - -7:73 So the priests, and the Levites, and the porters, and the -singers, and some of the people, and the Nethinims, and all Israel, -dwelt in their cities; and when the seventh month came, the children -of Israel were in their cities. - -8:1 And all the people gathered themselves together as one man into -the street that was before the water gate; and they spake unto Ezra -the scribe to bring the book of the law of Moses, which the LORD had -commanded to Israel. - -8:2 And Ezra the priest brought the law before the congregation both -of men and women, and all that could hear with understanding, upon the -first day of the seventh month. - -8:3 And he read therein before the street that was before the water -gate from the morning until midday, before the men and the women, and -those that could understand; and the ears of all the people were -attentive unto the book of the law. - -8:4 And Ezra the scribe stood upon a pulpit of wood, which they had -made for the purpose; and beside him stood Mattithiah, and Shema, and -Anaiah, and Urijah, and Hilkiah, and Maaseiah, on his right hand; and -on his left hand, Pedaiah, and Mishael, and Malchiah, and Hashum, and -Hashbadana, Zechariah, and Meshullam. - -8:5 And Ezra opened the book in the sight of all the people; (for he -was above all the people;) and when he opened it, all the people stood -up: 8:6 And Ezra blessed the LORD, the great God. And all the people -answered, Amen, Amen, with lifting up their hands: and they bowed -their heads, and worshipped the LORD with their faces to the ground. - -8:7 Also Jeshua, and Bani, and Sherebiah, Jamin, Akkub, Shabbethai, -Hodijah, Maaseiah, Kelita, Azariah, Jozabad, Hanan, Pelaiah, and the -Levites, caused the people to understand the law: and the people stood -in their place. - -8:8 So they read in the book in the law of God distinctly, and gave -the sense, and caused them to understand the reading. - -8:9 And Nehemiah, which is the Tirshatha, and Ezra the priest the -scribe, and the Levites that taught the people, said unto all the -people, This day is holy unto the LORD your God; mourn not, nor weep. -For all the people wept, when they heard the words of the law. - -8:10 Then he said unto them, Go your way, eat the fat, and drink the -sweet, and send portions unto them for whom nothing is prepared: for -this day is holy unto our LORD: neither be ye sorry; for the joy of -the LORD is your strength. - -8:11 So the Levites stilled all the people, saying, Hold your peace, -for the day is holy; neither be ye grieved. - -8:12 And all the people went their way to eat, and to drink, and to -send portions, and to make great mirth, because they had understood -the words that were declared unto them. - -8:13 And on the second day were gathered together the chief of the -fathers of all the people, the priests, and the Levites, unto Ezra the -scribe, even to understand the words of the law. - -8:14 And they found written in the law which the LORD had commanded by -Moses, that the children of Israel should dwell in booths in the feast -of the seventh month: 8:15 And that they should publish and proclaim -in all their cities, and in Jerusalem, saying, Go forth unto the -mount, and fetch olive branches, and pine branches, and myrtle -branches, and palm branches, and branches of thick trees, to make -booths, as it is written. - -8:16 So the people went forth, and brought them, and made themselves -booths, every one upon the roof of his house, and in their courts, and -in the courts of the house of God, and in the street of the water -gate, and in the street of the gate of Ephraim. - -8:17 And all the congregation of them that were come again out of the -captivity made booths, and sat under the booths: for since the days of -Jeshua the son of Nun unto that day had not the children of Israel -done so. And there was very great gladness. - -8:18 Also day by day, from the first day unto the last day, he read in -the book of the law of God. And they kept the feast seven days; and on -the eighth day was a solemn assembly, according unto the manner. - -9:1 Now in the twenty and fourth day of this month the children of -Israel were assembled with fasting, and with sackclothes, and earth -upon them. - -9:2 And the seed of Israel separated themselves from all strangers, -and stood and confessed their sins, and the iniquities of their -fathers. - -9:3 And they stood up in their place, and read in the book of the law -of the LORD their God one fourth part of the day; and another fourth -part they confessed, and worshipped the LORD their God. - -9:4 Then stood up upon the stairs, of the Levites, Jeshua, and Bani, -Kadmiel, Shebaniah, Bunni, Sherebiah, Bani, and Chenani, and cried -with a loud voice unto the LORD their God. - -9:5 Then the Levites, Jeshua, and Kadmiel, Bani, Hashabniah, -Sherebiah, Hodijah, Shebaniah, and Pethahiah, said, Stand up and bless -the LORD your God for ever and ever: and blessed be thy glorious name, -which is exalted above all blessing and praise. - -9:6 Thou, even thou, art LORD alone; thou hast made heaven, the heaven -of heavens, with all their host, the earth, and all things that are -therein, the seas, and all that is therein, and thou preservest them -all; and the host of heaven worshippeth thee. - -9:7 Thou art the LORD the God, who didst choose Abram, and broughtest -him forth out of Ur of the Chaldees, and gavest him the name of -Abraham; 9:8 And foundest his heart faithful before thee, and madest a -covenant with him to give the land of the Canaanites, the Hittites, -the Amorites, and the Perizzites, and the Jebusites, and the -Girgashites, to give it, I say, to his seed, and hast performed thy -words; for thou art righteous: 9:9 And didst see the affliction of our -fathers in Egypt, and heardest their cry by the Red sea; 9:10 And -shewedst signs and wonders upon Pharaoh, and on all his servants, and -on all the people of his land: for thou knewest that they dealt -proudly against them. So didst thou get thee a name, as it is this -day. - -9:11 And thou didst divide the sea before them, so that they went -through the midst of the sea on the dry land; and their persecutors -thou threwest into the deeps, as a stone into the mighty waters. - -9:12 Moreover thou leddest them in the day by a cloudy pillar; and in -the night by a pillar of fire, to give them light in the way wherein -they should go. - -9:13 Thou camest down also upon mount Sinai, and spakest with them -from heaven, and gavest them right judgments, and true laws, good -statutes and commandments: 9:14 And madest known unto them thy holy -sabbath, and commandedst them precepts, statutes, and laws, by the -hand of Moses thy servant: 9:15 And gavest them bread from heaven for -their hunger, and broughtest forth water for them out of the rock for -their thirst, and promisedst them that they should go in to possess -the land which thou hadst sworn to give them. - -9:16 But they and our fathers dealt proudly, and hardened their necks, -and hearkened not to thy commandments, 9:17 And refused to obey, -neither were mindful of thy wonders that thou didst among them; but -hardened their necks, and in their rebellion appointed a captain to -return to their bondage: but thou art a God ready to pardon, gracious -and merciful, slow to anger, and of great kindness, and forsookest -them not. - -9:18 Yea, when they had made them a molten calf, and said, This is thy -God that brought thee up out of Egypt, and had wrought great -provocations; 9:19 Yet thou in thy manifold mercies forsookest them -not in the wilderness: the pillar of the cloud departed not from them -by day, to lead them in the way; neither the pillar of fire by night, -to shew them light, and the way wherein they should go. - -9:20 Thou gavest also thy good spirit to instruct them, and -withheldest not thy manna from their mouth, and gavest them water for -their thirst. - -9:21 Yea, forty years didst thou sustain them in the wilderness, so -that they lacked nothing; their clothes waxed not old, and their feet -swelled not. - -9:22 Moreover thou gavest them kingdoms and nations, and didst divide -them into corners: so they possessed the land of Sihon, and the land -of the king of Heshbon, and the land of Og king of Bashan. - -9:23 Their children also multipliedst thou as the stars of heaven, and -broughtest them into the land, concerning which thou hadst promised to -their fathers, that they should go in to possess it. - -9:24 So the children went in and possessed the land, and thou -subduedst before them the inhabitants of the land, the Canaanites, and -gavest them into their hands, with their kings, and the people of the -land, that they might do with them as they would. - -9:25 And they took strong cities, and a fat land, and possessed houses -full of all goods, wells digged, vineyards, and oliveyards, and fruit -trees in abundance: so they did eat, and were filled, and became fat, -and delighted themselves in thy great goodness. - -9:26 Nevertheless they were disobedient, and rebelled against thee, -and cast thy law behind their backs, and slew thy prophets which -testified against them to turn them to thee, and they wrought great -provocations. - -9:27 Therefore thou deliveredst them into the hand of their enemies, -who vexed them: and in the time of their trouble, when they cried unto -thee, thou heardest them from heaven; and according to thy manifold -mercies thou gavest them saviours, who saved them out of the hand of -their enemies. - -9:28 But after they had rest, they did evil again before thee: -therefore leftest thou them in the land of their enemies, so that they -had the dominion over them: yet when they returned, and cried unto -thee, thou heardest them from heaven; and many times didst thou -deliver them according to thy mercies; 9:29 And testifiedst against -them, that thou mightest bring them again unto thy law: yet they dealt -proudly, and hearkened not unto thy commandments, but sinned against -thy judgments, (which if a man do, he shall live in them;) and -withdrew the shoulder, and hardened their neck, and would not hear. - -9:30 Yet many years didst thou forbear them, and testifiedst against -them by thy spirit in thy prophets: yet would they not give ear: -therefore gavest thou them into the hand of the people of the lands. - -9:31 Nevertheless for thy great mercies' sake thou didst not utterly -consume them, nor forsake them; for thou art a gracious and merciful -God. - -9:32 Now therefore, our God, the great, the mighty, and the terrible -God, who keepest covenant and mercy, let not all the trouble seem -little before thee, that hath come upon us, on our kings, on our -princes, and on our priests, and on our prophets, and on our fathers, -and on all thy people, since the time of the kings of Assyria unto -this day. - -9:33 Howbeit thou art just in all that is brought upon us; for thou -hast done right, but we have done wickedly: 9:34 Neither have our -kings, our princes, our priests, nor our fathers, kept thy law, nor -hearkened unto thy commandments and thy testimonies, wherewith thou -didst testify against them. - -9:35 For they have not served thee in their kingdom, and in thy great -goodness that thou gavest them, and in the large and fat land which -thou gavest before them, neither turned they from their wicked works. - -9:36 Behold, we are servants this day, and for the land that thou -gavest unto our fathers to eat the fruit thereof and the good thereof, -behold, we are servants in it: 9:37 And it yieldeth much increase unto -the kings whom thou hast set over us because of our sins: also they -have dominion over our bodies, and over our cattle, at their pleasure, -and we are in great distress. - -9:38 And because of all this we make a sure covenant, and write it; -and our princes, Levites, and priests, seal unto it. - -10:1 Now those that sealed were, Nehemiah, the Tirshatha, the son of -Hachaliah, and Zidkijah, 10:2 Seraiah, Azariah, Jeremiah, 10:3 Pashur, -Amariah, Malchijah, 10:4 Hattush, Shebaniah, Malluch, 10:5 Harim, -Meremoth, Obadiah, 10:6 Daniel, Ginnethon, Baruch, 10:7 Meshullam, -Abijah, Mijamin, 10:8 Maaziah, Bilgai, Shemaiah: these were the -priests. - -10:9 And the Levites: both Jeshua the son of Azaniah, Binnui of the -sons of Henadad, Kadmiel; 10:10 And their brethren, Shebaniah, -Hodijah, Kelita, Pelaiah, Hanan, 10:11 Micha, Rehob, Hashabiah, 10:12 -Zaccur, Sherebiah, Shebaniah, 10:13 Hodijah, Bani, Beninu. - -10:14 The chief of the people; Parosh, Pahathmoab, Elam, Zatthu, Bani, -10:15 Bunni, Azgad, Bebai, 10:16 Adonijah, Bigvai, Adin, 10:17 Ater, -Hizkijah, Azzur, 10:18 Hodijah, Hashum, Bezai, 10:19 Hariph, Anathoth, -Nebai, 10:20 Magpiash, Meshullam, Hezir, 10:21 Meshezabeel, Zadok, -Jaddua, 10:22 Pelatiah, Hanan, Anaiah, 10:23 Hoshea, Hananiah, Hashub, -10:24 Hallohesh, Pileha, Shobek, 10:25 Rehum, Hashabnah, Maaseiah, -10:26 And Ahijah, Hanan, Anan, 10:27 Malluch, Harim, Baanah. - -10:28 And the rest of the people, the priests, the Levites, the -porters, the singers, the Nethinims, and all they that had separated -themselves from the people of the lands unto the law of God, their -wives, their sons, and their daughters, every one having knowledge, -and having understanding; 10:29 They clave to their brethren, their -nobles, and entered into a curse, and into an oath, to walk in God's -law, which was given by Moses the servant of God, and to observe and -do all the commandments of the LORD our Lord, and his judgments and -his statutes; 10:30 And that we would not give our daughters unto the -people of the land, not take their daughters for our sons: 10:31 And -if the people of the land bring ware or any victuals on the sabbath -day to sell, that we would not buy it of them on the sabbath, or on -the holy day: and that we would leave the seventh year, and the -exaction of every debt. - -10:32 Also we made ordinances for us, to charge ourselves yearly with -the third part of a shekel for the service of the house of our God; -10:33 For the shewbread, and for the continual meat offering, and for -the continual burnt offering, of the sabbaths, of the new moons, for -the set feasts, and for the holy things, and for the sin offerings to -make an atonement for Israel, and for all the work of the house of our -God. - -10:34 And we cast the lots among the priests, the Levites, and the -people, for the wood offering, to bring it into the house of our God, -after the houses of our fathers, at times appointed year by year, to -burn upon the altar of the LORD our God, as it is written in the law: -10:35 And to bring the firstfruits of our ground, and the firstfruits -of all fruit of all trees, year by year, unto the house of the LORD: -10:36 Also the firstborn of our sons, and of our cattle, as it is -written in the law, and the firstlings of our herds and of our flocks, -to bring to the house of our God, unto the priests that minister in -the house of our God: 10:37 And that we should bring the firstfruits -of our dough, and our offerings, and the fruit of all manner of trees, -of wine and of oil, unto the priests, to the chambers of the house of -our God; and the tithes of our ground unto the Levites, that the same -Levites might have the tithes in all the cities of our tillage. - -10:38 And the priest the son of Aaron shall be with the Levites, when -the Levites take tithes: and the Levites shall bring up the tithe of -the tithes unto the house of our God, to the chambers, into the -treasure house. - -10:39 For the children of Israel and the children of Levi shall bring -the offering of the corn, of the new wine, and the oil, unto the -chambers, where are the vessels of the sanctuary, and the priests that -minister, and the porters, and the singers: and we will not forsake -the house of our God. - -11:1 And the rulers of the people dwelt at Jerusalem: the rest of the -people also cast lots, to bring one of ten to dwell in Jerusalem the -holy city, and nine parts to dwell in other cities. - -11:2 And the people blessed all the men, that willingly offered -themselves to dwell at Jerusalem. - -11:3 Now these are the chief of the province that dwelt in Jerusalem: -but in the cities of Judah dwelt every one in his possession in their -cities, to wit, Israel, the priests, and the Levites, and the -Nethinims, and the children of Solomon's servants. - -11:4 And at Jerusalem dwelt certain of the children of Judah, and of -the children of Benjamin. Of the children of Judah; Athaiah the son of -Uzziah, the son of Zechariah, the son of Amariah, the son of -Shephatiah, the son of Mahalaleel, of the children of Perez; 11:5 And -Maaseiah the son of Baruch, the son of Colhozeh, the son of Hazaiah, -the son of Adaiah, the son of Joiarib, the son of Zechariah, the son -of Shiloni. - -11:6 All the sons of Perez that dwelt at Jerusalem were four hundred -threescore and eight valiant men. - -11:7 And these are the sons of Benjamin; Sallu the son of Meshullam, -the son of Joed, the son of Pedaiah, the son of Kolaiah, the son of -Maaseiah, the son of Ithiel, the son of Jesaiah. - -11:8 And after him Gabbai, Sallai, nine hundred twenty and eight. - -11:9 And Joel the son of Zichri was their overseer: and Judah the son -of Senuah was second over the city. - -11:10 Of the priests: Jedaiah the son of Joiarib, Jachin. - -11:11 Seraiah the son of Hilkiah, the son of Meshullam, the son of -Zadok, the son of Meraioth, the son of Ahitub, was the ruler of the -house of God. - -11:12 And their brethren that did the work of the house were eight -hundred twenty and two: and Adaiah the son of Jeroham, the son of -Pelaliah, the son of Amzi, the son of Zechariah, the son of Pashur, -the son of Malchiah. - -11:13 And his brethren, chief of the fathers, two hundred forty and -two: and Amashai the son of Azareel, the son of Ahasai, the son of -Meshillemoth, the son of Immer, 11:14 And their brethren, mighty men -of valour, an hundred twenty and eight: and their overseer was -Zabdiel, the son of one of the great men. - -11:15 Also of the Levites: Shemaiah the son of Hashub, the son of -Azrikam, the son of Hashabiah, the son of Bunni; 11:16 And Shabbethai -and Jozabad, of the chief of the Levites, had the oversight of the -outward business of the house of God. - -11:17 And Mattaniah the son of Micha, the son of Zabdi, the son of -Asaph, was the principal to begin the thanksgiving in prayer: and -Bakbukiah the second among his brethren, and Abda the son of Shammua, -the son of Galal, the son of Jeduthun. - -11:18 All the Levites in the holy city were two hundred fourscore and -four. - -11:19 Moreover the porters, Akkub, Talmon, and their brethren that -kept the gates, were an hundred seventy and two. - -11:20 And the residue of Israel, of the priests, and the Levites, were -in all the cities of Judah, every one in his inheritance. - -11:21 But the Nethinims dwelt in Ophel: and Ziha and Gispa were over -the Nethinims. - -11:22 The overseer also of the Levites at Jerusalem was Uzzi the son -of Bani, the son of Hashabiah, the son of Mattaniah, the son of Micha. -Of the sons of Asaph, the singers were over the business of the house -of God. - -11:23 For it was the king's commandment concerning them, that a -certain portion should be for the singers, due for every day. - -11:24 And Pethahiah the son of Meshezabeel, of the children of Zerah -the son of Judah, was at the king's hand in all matters concerning the -people. - -11:25 And for the villages, with their fields, some of the children of -Judah dwelt at Kirjatharba, and in the villages thereof, and at Dibon, -and in the villages thereof, and at Jekabzeel, and in the villages -thereof, 11:26 And at Jeshua, and at Moladah, and at Bethphelet, 11:27 -And at Hazarshual, and at Beersheba, and in the villages thereof, -11:28 And at Ziklag, and at Mekonah, and in the villages thereof, -11:29 And at Enrimmon, and at Zareah, and at Jarmuth, 11:30 Zanoah, -Adullam, and in their villages, at Lachish, and the fields thereof, at -Azekah, and in the villages thereof. And they dwelt from Beersheba -unto the valley of Hinnom. - -11:31 The children also of Benjamin from Geba dwelt at Michmash, and -Aija, and Bethel, and in their villages. - -11:32 And at Anathoth, Nob, Ananiah, 11:33 Hazor, Ramah, Gittaim, -11:34 Hadid, Zeboim, Neballat, 11:35 Lod, and Ono, the valley of -craftsmen. - -11:36 And of the Levites were divisions in Judah, and in Benjamin. - -12:1 Now these are the priests and the Levites that went up with -Zerubbabel the son of Shealtiel, and Jeshua: Seraiah, Jeremiah, Ezra, -12:2 Amariah, Malluch, Hattush, 12:3 Shechaniah, Rehum, Meremoth, 12:4 -Iddo, Ginnetho, Abijah, 12:5 Miamin, Maadiah, Bilgah, 12:6 Shemaiah, -and Joiarib, Jedaiah, 12:7 Sallu, Amok, Hilkiah, Jedaiah. These were -the chief of the priests and of their brethren in the days of Jeshua. - -12:8 Moreover the Levites: Jeshua, Binnui, Kadmiel, Sherebiah, Judah, -and Mattaniah, which was over the thanksgiving, he and his brethren. - -12:9 Also Bakbukiah and Unni, their brethren, were over against them -in the watches. - -12:10 And Jeshua begat Joiakim, Joiakim also begat Eliashib, and -Eliashib begat Joiada, 12:11 And Joiada begat Jonathan, and Jonathan -begat Jaddua. - -12:12 And in the days of Joiakim were priests, the chief of the -fathers: of Seraiah, Meraiah; of Jeremiah, Hananiah; 12:13 Of Ezra, -Meshullam; of Amariah, Jehohanan; 12:14 Of Melicu, Jonathan; of -Shebaniah, Joseph; 12:15 Of Harim, Adna; of Meraioth, Helkai; 12:16 Of -Iddo, Zechariah; of Ginnethon, Meshullam; 12:17 Of Abijah, Zichri; of -Miniamin, of Moadiah, Piltai: 12:18 Of Bilgah, Shammua; of Shemaiah, -Jehonathan; 12:19 And of Joiarib, Mattenai; of Jedaiah, Uzzi; 12:20 Of -Sallai, Kallai; of Amok, Eber; 12:21 Of Hilkiah, Hashabiah; of -Jedaiah, Nethaneel. - -12:22 The Levites in the days of Eliashib, Joiada, and Johanan, and -Jaddua, were recorded chief of the fathers: also the priests, to the -reign of Darius the Persian. - -12:23 The sons of Levi, the chief of the fathers, were written in the -book of the chronicles, even until the days of Johanan the son of -Eliashib. - -12:24 And the chief of the Levites: Hashabiah, Sherebiah, and Jeshua -the son of Kadmiel, with their brethren over against them, to praise -and to give thanks, according to the commandment of David the man of -God, ward over against ward. - -12:25 Mattaniah, and Bakbukiah, Obadiah, Meshullam, Talmon, Akkub, -were porters keeping the ward at the thresholds of the gates. - -12:26 These were in the days of Joiakim the son of Jeshua, the son of -Jozadak, and in the days of Nehemiah the governor, and of Ezra the -priest, the scribe. - -12:27 And at the dedication of the wall of Jerusalem they sought the -Levites out of all their places, to bring them to Jerusalem, to keep -the dedication with gladness, both with thanksgivings, and with -singing, with cymbals, psalteries, and with harps. - -12:28 And the sons of the singers gathered themselves together, both -out of the plain country round about Jerusalem, and from the villages -of Netophathi; 12:29 Also from the house of Gilgal, and out of the -fields of Geba and Azmaveth: for the singers had builded them villages -round about Jerusalem. - -12:30 And the priests and the Levites purified themselves, and -purified the people, and the gates, and the wall. - -12:31 Then I brought up the princes of Judah upon the wall, and -appointed two great companies of them that gave thanks, whereof one -went on the right hand upon the wall toward the dung gate: 12:32 And -after them went Hoshaiah, and half of the princes of Judah, 12:33 And -Azariah, Ezra, and Meshullam, 12:34 Judah, and Benjamin, and Shemaiah, -and Jeremiah, 12:35 And certain of the priests' sons with trumpets; -namely, Zechariah the son of Jonathan, the son of Shemaiah, the son of -Mattaniah, the son of Michaiah, the son of Zaccur, the son of Asaph: -12:36 And his brethren, Shemaiah, and Azarael, Milalai, Gilalai, Maai, -Nethaneel, and Judah, Hanani, with the musical instruments of David -the man of God, and Ezra the scribe before them. - -12:37 And at the fountain gate, which was over against them, they went -up by the stairs of the city of David, at the going up of the wall, -above the house of David, even unto the water gate eastward. - -12:38 And the other company of them that gave thanks went over against -them, and I after them, and the half of the people upon the wall, from -beyond the tower of the furnaces even unto the broad wall; 12:39 And -from above the gate of Ephraim, and above the old gate, and above the -fish gate, and the tower of Hananeel, and the tower of Meah, even unto -the sheep gate: and they stood still in the prison gate. - -12:40 So stood the two companies of them that gave thanks in the house -of God, and I, and the half of the rulers with me: 12:41 And the -priests; Eliakim, Maaseiah, Miniamin, Michaiah, Elioenai, Zechariah, -and Hananiah, with trumpets; 12:42 And Maaseiah, and Shemaiah, and -Eleazar, and Uzzi, and Jehohanan, and Malchijah, and Elam, and Ezer. -And the singers sang loud, with Jezrahiah their overseer. - -12:43 Also that day they offered great sacrifices, and rejoiced: for -God had made them rejoice with great joy: the wives also and the -children rejoiced: so that the joy of Jerusalem was heard even afar -off. - -12:44 And at that time were some appointed over the chambers for the -treasures, for the offerings, for the firstfruits, and for the tithes, -to gather into them out of the fields of the cities the portions of -the law for the priests and Levites: for Judah rejoiced for the -priests and for the Levites that waited. - -12:45 And both the singers and the porters kept the ward of their God, -and the ward of the purification, according to the commandment of -David, and of Solomon his son. - -12:46 For in the days of David and Asaph of old there were chief of -the singers, and songs of praise and thanksgiving unto God. - -12:47 And all Israel in the days of Zerubbabel, and in the days of -Nehemiah, gave the portions of the singers and the porters, every day -his portion: and they sanctified holy things unto the Levites; and the -Levites sanctified them unto the children of Aaron. - -13:1 On that day they read in the book of Moses in the audience of the -people; and therein was found written, that the Ammonite and the -Moabite should not come into the congregation of God for ever; 13:2 -Because they met not the children of Israel with bread and with water, -but hired Balaam against them, that he should curse them: howbeit our -God turned the curse into a blessing. - -13:3 Now it came to pass, when they had heard the law, that they -separated from Israel all the mixed multitude. - -13:4 And before this, Eliashib the priest, having the oversight of the -chamber of the house of our God, was allied unto Tobiah: 13:5 And he -had prepared for him a great chamber, where aforetime they laid the -meat offerings, the frankincense, and the vessels, and the tithes of -the corn, the new wine, and the oil, which was commanded to be given -to the Levites, and the singers, and the porters; and the offerings of -the priests. - -13:6 But in all this time was not I at Jerusalem: for in the two and -thirtieth year of Artaxerxes king of Babylon came I unto the king, and -after certain days obtained I leave of the king: 13:7 And I came to -Jerusalem, and understood of the evil that Eliashib did for Tobiah, in -preparing him a chamber in the courts of the house of God. - -13:8 And it grieved me sore: therefore I cast forth all the household -stuff to Tobiah out of the chamber. - -13:9 Then I commanded, and they cleansed the chambers: and thither -brought I again the vessels of the house of God, with the meat -offering and the frankincense. - -13:10 And I perceived that the portions of the Levites had not been -given them: for the Levites and the singers, that did the work, were -fled every one to his field. - -13:11 Then contended I with the rulers, and said, Why is the house of -God forsaken? And I gathered them together, and set them in their -place. - -13:12 Then brought all Judah the tithe of the corn and the new wine -and the oil unto the treasuries. - -13:13 And I made treasurers over the treasuries, Shelemiah the priest, -and Zadok the scribe, and of the Levites, Pedaiah: and next to them -was Hanan the son of Zaccur, the son of Mattaniah: for they were -counted faithful, and their office was to distribute unto their -brethren. - -13:14 Remember me, O my God, concerning this, and wipe not out my good -deeds that I have done for the house of my God, and for the offices -thereof. - -13:15 In those days saw I in Judah some treading wine presses on the -sabbath, and bringing in sheaves, and lading asses; as also wine, -grapes, and figs, and all manner of burdens, which they brought into -Jerusalem on the sabbath day: and I testified against them in the day -wherein they sold victuals. - -13:16 There dwelt men of Tyre also therein, which brought fish, and -all manner of ware, and sold on the sabbath unto the children of -Judah, and in Jerusalem. - -13:17 Then I contended with the nobles of Judah, and said unto them, -What evil thing is this that ye do, and profane the sabbath day? -13:18 Did not your fathers thus, and did not our God bring all this -evil upon us, and upon this city? yet ye bring more wrath upon Israel -by profaning the sabbath. - -13:19 And it came to pass, that when the gates of Jerusalem began to -be dark before the sabbath, I commanded that the gates should be shut, -and charged that they should not be opened till after the sabbath: and -some of my servants set I at the gates, that there should no burden be -brought in on the sabbath day. - -13:20 So the merchants and sellers of all kind of ware lodged without -Jerusalem once or twice. - -13:21 Then I testified against them, and said unto them, Why lodge ye -about the wall? if ye do so again, I will lay hands on you. From that -time forth came they no more on the sabbath. - -13:22 And I commanded the Levites that they should cleanse themselves, -and that they should come and keep the gates, to sanctify the sabbath -day. - -Remember me, O my God, concerning this also, and spare me according to -the greatness of thy mercy. - -13:23 In those days also saw I Jews that had married wives of Ashdod, -of Ammon, and of Moab: 13:24 And their children spake half in the -speech of Ashdod, and could not speak in the Jews' language, but -according to the language of each people. - -13:25 And I contended with them, and cursed them, and smote certain of -them, and plucked off their hair, and made them swear by God, saying, -Ye shall not give your daughters unto their sons, nor take their -daughters unto your sons, or for yourselves. - -13:26 Did not Solomon king of Israel sin by these things? yet among -many nations was there no king like him, who was beloved of his God, -and God made him king over all Israel: nevertheless even him did -outlandish women cause to sin. - -13:27 Shall we then hearken unto you to do all this great evil, to -transgress against our God in marrying strange wives? 13:28 And one -of the sons of Joiada, the son of Eliashib the high priest, was son in -law to Sanballat the Horonite: therefore I chased him from me. - -13:29 Remember them, O my God, because they have defiled the -priesthood, and the covenant of the priesthood, and of the Levites. - -13:30 Thus cleansed I them from all strangers, and appointed the wards -of the priests and the Levites, every one in his business; 13:31 And -for the wood offering, at times appointed, and for the firstfruits. -Remember me, O my God, for good. - - - - -The Book of Esther - - -1:1 Now it came to pass in the days of Ahasuerus, (this is Ahasuerus -which reigned, from India even unto Ethiopia, over an hundred and -seven and twenty provinces:) 1:2 That in those days, when the king -Ahasuerus sat on the throne of his kingdom, which was in Shushan the -palace, 1:3 In the third year of his reign, he made a feast unto all -his princes and his servants; the power of Persia and Media, the -nobles and princes of the provinces, being before him: 1:4 When he -shewed the riches of his glorious kingdom and the honour of his -excellent majesty many days, even an hundred and fourscore days. - -1:5 And when these days were expired, the king made a feast unto all -the people that were present in Shushan the palace, both unto great -and small, seven days, in the court of the garden of the king's -palace; 1:6 Where were white, green, and blue, hangings, fastened with -cords of fine linen and purple to silver rings and pillars of marble: -the beds were of gold and silver, upon a pavement of red, and blue, -and white, and black, marble. - -1:7 And they gave them drink in vessels of gold, (the vessels being -diverse one from another,) and royal wine in abundance, according to -the state of the king. - -1:8 And the drinking was according to the law; none did compel: for so -the king had appointed to all the officers of his house, that they -should do according to every man's pleasure. - -1:9 Also Vashti the queen made a feast for the women in the royal -house which belonged to king Ahasuerus. - -1:10 On the seventh day, when the heart of the king was merry with -wine, he commanded Mehuman, Biztha, Harbona, Bigtha, and Abagtha, -Zethar, and Carcas, the seven chamberlains that served in the presence -of Ahasuerus the king, 1:11 To bring Vashti the queen before the king -with the crown royal, to shew the people and the princes her beauty: -for she was fair to look on. - -1:12 But the queen Vashti refused to come at the king's commandment by -his chamberlains: therefore was the king very wroth, and his anger -burned in him. - -1:13 Then the king said to the wise men, which knew the times, (for so -was the king's manner toward all that knew law and judgment: 1:14 And -the next unto him was Carshena, Shethar, Admatha, Tarshish, Meres, -Marsena, and Memucan, the seven princes of Persia and Media, which saw -the king's face, and which sat the first in the kingdom;) 1:15 What -shall we do unto the queen Vashti according to law, because she hath -not performed the commandment of the king Ahasuerus by the -chamberlains? 1:16 And Memucan answered before the king and the -princes, Vashti the queen hath not done wrong to the king only, but -also to all the princes, and to all the people that are in all the -provinces of the king Ahasuerus. - -1:17 For this deed of the queen shall come abroad unto all women, so -that they shall despise their husbands in their eyes, when it shall be -reported, The king Ahasuerus commanded Vashti the queen to be brought -in before him, but she came not. - -1:18 Likewise shall the ladies of Persia and Media say this day unto -all the king's princes, which have heard of the deed of the queen. -Thus shall there arise too much contempt and wrath. - -1:19 If it please the king, let there go a royal commandment from him, -and let it be written among the laws of the Persians and the Medes, -that it be not altered, That Vashti come no more before king -Ahasuerus; and let the king give her royal estate unto another that is -better than she. - -1:20 And when the king's decree which he shall make shall be published -throughout all his empire, (for it is great,) all the wives shall give -to their husbands honour, both to great and small. - -1:21 And the saying pleased the king and the princes; and the king did -according to the word of Memucan: 1:22 For he sent letters into all -the king's provinces, into every province according to the writing -thereof, and to every people after their language, that every man -should bear rule in his own house, and that it should be published -according to the language of every people. - -2:1 After these things, when the wrath of king Ahasuerus was appeased, -he remembered Vashti, and what she had done, and what was decreed -against her. - -2:2 Then said the king's servants that ministered unto him, Let there -be fair young virgins sought for the king: 2:3 And let the king -appoint officers in all the provinces of his kingdom, that they may -gather together all the fair young virgins unto Shushan the palace, to -the house of the women, unto the custody of Hege the king's -chamberlain, keeper of the women; and let their things for -purification be given them: 2:4 And let the maiden which pleaseth the -king be queen instead of Vashti. - -And the thing pleased the king; and he did so. - -2:5 Now in Shushan the palace there was a certain Jew, whose name was -Mordecai, the son of Jair, the son of Shimei, the son of Kish, a -Benjamite; 2:6 Who had been carried away from Jerusalem with the -captivity which had been carried away with Jeconiah king of Judah, -whom Nebuchadnezzar the king of Babylon had carried away. - -2:7 And he brought up Hadassah, that is, Esther, his uncle's daughter: -for she had neither father nor mother, and the maid was fair and -beautiful; whom Mordecai, when her father and mother were dead, took -for his own daughter. - -2:8 So it came to pass, when the king's commandment and his decree was -heard, and when many maidens were gathered together unto Shushan the -palace, to the custody of Hegai, that Esther was brought also unto the -king's house, to the custody of Hegai, keeper of the women. - -2:9 And the maiden pleased him, and she obtained kindness of him; and -he speedily gave her her things for purification, with such things as -belonged to her, and seven maidens, which were meet to be given her, -out of the king's house: and he preferred her and her maids unto the -best place of the house of the women. - -2:10 Esther had not shewed her people nor her kindred: for Mordecai -had charged her that she should not shew it. - -2:11 And Mordecai walked every day before the court of the women's -house, to know how Esther did, and what should become of her. - -2:12 Now when every maid's turn was come to go in to king Ahasuerus, -after that she had been twelve months, according to the manner of the -women, (for so were the days of their purifications accomplished, to -wit, six months with oil of myrrh, and six months with sweet odours, -and with other things for the purifying of the women;) 2:13 Then thus -came every maiden unto the king; whatsoever she desired was given her -to go with her out of the house of the women unto the king's house. - -2:14 In the evening she went, and on the morrow she returned into the -second house of the women, to the custody of Shaashgaz, the king's -chamberlain, which kept the concubines: she came in unto the king no -more, except the king delighted in her, and that she were called by -name. - -2:15 Now when the turn of Esther, the daughter of Abihail the uncle of -Mordecai, who had taken her for his daughter, was come to go in unto -the king, she required nothing but what Hegai the king's chamberlain, -the keeper of the women, appointed. And Esther obtained favour in the -sight of all them that looked upon her. - -2:16 So Esther was taken unto king Ahasuerus into his house royal in -the tenth month, which is the month Tebeth, in the seventh year of his -reign. - -2:17 And the king loved Esther above all the women, and she obtained -grace and favour in his sight more than all the virgins; so that he -set the royal crown upon her head, and made her queen instead of -Vashti. - -2:18 Then the king made a great feast unto all his princes and his -servants, even Esther's feast; and he made a release to the provinces, -and gave gifts, according to the state of the king. - -2:19 And when the virgins were gathered together the second time, then -Mordecai sat in the king's gate. - -2:20 Esther had not yet shewed her kindred nor her people; as Mordecai -had charged her: for Esther did the commandment of Mordecai, like as -when she was brought up with him. - -2:21 In those days, while Mordecai sat in the king's gate, two of the -king's chamberlains, Bigthan and Teresh, of those which kept the door, -were wroth, and sought to lay hands on the king Ahasuerus. - -2:22 And the thing was known to Mordecai, who told it unto Esther the -queen; and Esther certified the king thereof in Mordecai's name. - -2:23 And when inquisition was made of the matter, it was found out; -therefore they were both hanged on a tree: and it was written in the -book of the chronicles before the king. - -3:1 After these things did king Ahasuerus promote Haman the son of -Hammedatha the Agagite, and advanced him, and set his seat above all -the princes that were with him. - -3:2 And all the king's servants, that were in the king's gate, bowed, -and reverenced Haman: for the king had so commanded concerning him. -But Mordecai bowed not, nor did him reverence. - -3:3 Then the king's servants, which were in the king's gate, said unto -Mordecai, Why transgressest thou the king's commandment? 3:4 Now it -came to pass, when they spake daily unto him, and he hearkened not -unto them, that they told Haman, to see whether Mordecai's matters -would stand: for he had told them that he was a Jew. - -3:5 And when Haman saw that Mordecai bowed not, nor did him reverence, -then was Haman full of wrath. - -3:6 And he thought scorn to lay hands on Mordecai alone; for they had -shewed him the people of Mordecai: wherefore Haman sought to destroy -all the Jews that were throughout the whole kingdom of Ahasuerus, even -the people of Mordecai. - -3:7 In the first month, that is, the month Nisan, in the twelfth year -of king Ahasuerus, they cast Pur, that is, the lot, before Haman from -day to day, and from month to month, to the twelfth month, that is, -the month Adar. - -3:8 And Haman said unto king Ahasuerus, There is a certain people -scattered abroad and dispersed among the people in all the provinces -of thy kingdom; and their laws are diverse from all people; neither -keep they the king's laws: therefore it is not for the king's profit -to suffer them. - -3:9 If it please the king, let it be written that they may be -destroyed: and I will pay ten thousand talents of silver to the hands -of those that have the charge of the business, to bring it into the -king's treasuries. - -3:10 And the king took his ring from his hand, and gave it unto Haman -the son of Hammedatha the Agagite, the Jews' enemy. - -3:11 And the king said unto Haman, The silver is given to thee, the -people also, to do with them as it seemeth good to thee. - -3:12 Then were the king's scribes called on the thirteenth day of the -first month, and there was written according to all that Haman had -commanded unto the king's lieutenants, and to the governors that were -over every province, and to the rulers of every people of every -province according to the writing thereof, and to every people after -their language; in the name of king Ahasuerus was it written, and -sealed with the king's ring. - -3:13 And the letters were sent by posts into all the king's provinces, -to destroy, to kill, and to cause to perish, all Jews, both young and -old, little children and women, in one day, even upon the thirteenth -day of the twelfth month, which is the month Adar, and to take the -spoil of them for a prey. - -3:14 The copy of the writing for a commandment to be given in every -province was published unto all people, that they should be ready -against that day. - -3:15 The posts went out, being hastened by the king's commandment, and -the decree was given in Shushan the palace. And the king and Haman sat -down to drink; but the city Shushan was perplexed. - -4:1 When Mordecai perceived all that was done, Mordecai rent his -clothes, and put on sackcloth with ashes, and went out into the midst -of the city, and cried with a loud and a bitter cry; 4:2 And came even -before the king's gate: for none might enter into the king's gate -clothed with sackcloth. - -4:3 And in every province, whithersoever the king's commandment and -his decree came, there was great mourning among the Jews, and fasting, -and weeping, and wailing; and many lay in sackcloth and ashes. - -4:4 So Esther's maids and her chamberlains came and told it her. Then -was the queen exceedingly grieved; and she sent raiment to clothe -Mordecai, and to take away his sackcloth from him: but he received it -not. - -4:5 Then called Esther for Hatach, one of the king's chamberlains, -whom he had appointed to attend upon her, and gave him a commandment -to Mordecai, to know what it was, and why it was. - -4:6 So Hatach went forth to Mordecai unto the street of the city, -which was before the king's gate. - -4:7 And Mordecai told him of all that had happened unto him, and of -the sum of the money that Haman had promised to pay to the king's -treasuries for the Jews, to destroy them. - -4:8 Also he gave him the copy of the writing of the decree that was -given at Shushan to destroy them, to shew it unto Esther, and to -declare it unto her, and to charge her that she should go in unto the -king, to make supplication unto him, and to make request before him -for her people. - -4:9 And Hatach came and told Esther the words of Mordecai. - -4:10 Again Esther spake unto Hatach, and gave him commandment unto -Mordecai; 4:11 All the king's servants, and the people of the king's -provinces, do know, that whosoever, whether man or women, shall come -unto the king into the inner court, who is not called, there is one -law of his to put him to death, except such to whom the king shall -hold out the golden sceptre, that he may live: but I have not been -called to come in unto the king these thirty days. - -4:12 And they told to Mordecai Esther's words. - -4:13 Then Mordecai commanded to answer Esther, Think not with thyself -that thou shalt escape in the king's house, more than all the Jews. - -4:14 For if thou altogether holdest thy peace at this time, then shall -there enlargement and deliverance arise to the Jews from another -place; but thou and thy father's house shall be destroyed: and who -knoweth whether thou art come to the kingdom for such a time as this? -4:15 Then Esther bade them return Mordecai this answer, 4:16 Go, -gather together all the Jews that are present in Shushan, and fast ye -for me, and neither eat nor drink three days, night or day: I also and -my maidens will fast likewise; and so will I go in unto the king, -which is not according to the law: and if I perish, I perish. - -4:17 So Mordecai went his way, and did according to all that Esther -had commanded him. - -5:1 Now it came to pass on the third day, that Esther put on her royal -apparel, and stood in the inner court of the king's house, over -against the king's house: and the king sat upon his royal throne in -the royal house, over against the gate of the house. - -5:2 And it was so, when the king saw Esther the queen standing in the -court, that she obtained favour in his sight: and the king held out to -Esther the golden sceptre that was in his hand. So Esther drew near, -and touched the top of the sceptre. - -5:3 Then said the king unto her, What wilt thou, queen Esther? and -what is thy request? it shall be even given thee to the half of the -kingdom. - -5:4 And Esther answered, If it seem good unto the king, let the king -and Haman come this day unto the banquet that I have prepared for him. - -5:5 Then the king said, Cause Haman to make haste, that he may do as -Esther hath said. So the king and Haman came to the banquet that -Esther had prepared. - -5:6 And the king said unto Esther at the banquet of wine, What is thy -petition? and it shall be granted thee: and what is thy request? even -to the half of the kingdom it shall be performed. - -5:7 Then answered Esther, and said, My petition and my request is; 5:8 -If I have found favour in the sight of the king, and if it please the -king to grant my petition, and to perform my request, let the king and -Haman come to the banquet that I shall prepare for them, and I will do -to morrow as the king hath said. - -5:9 Then went Haman forth that day joyful and with a glad heart: but -when Haman saw Mordecai in the king's gate, that he stood not up, nor -moved for him, he was full of indignation against Mordecai. - -5:10 Nevertheless Haman refrained himself: and when he came home, he -sent and called for his friends, and Zeresh his wife. - -5:11 And Haman told them of the glory of his riches, and the multitude -of his children, and all the things wherein the king had promoted him, -and how he had advanced him above the princes and servants of the -king. - -5:12 Haman said moreover, Yea, Esther the queen did let no man come in -with the king unto the banquet that she had prepared but myself; and -to morrow am I invited unto her also with the king. - -5:13 Yet all this availeth me nothing, so long as I see Mordecai the -Jew sitting at the king's gate. - -5:14 Then said Zeresh his wife and all his friends unto him, Let a -gallows be made of fifty cubits high, and to morrow speak thou unto -the king that Mordecai may be hanged thereon: then go thou in merrily -with the king unto the banquet. And the thing pleased Haman; and he -caused the gallows to be made. - -6:1 On that night could not the king sleep, and he commanded to bring -the book of records of the chronicles; and they were read before the -king. - -6:2 And it was found written, that Mordecai had told of Bigthana and -Teresh, two of the king's chamberlains, the keepers of the door, who -sought to lay hand on the king Ahasuerus. - -6:3 And the king said, What honour and dignity hath been done to -Mordecai for this? Then said the king's servants that ministered unto -him, There is nothing done for him. - -6:4 And the king said, Who is in the court? Now Haman was come into -the outward court of the king's house, to speak unto the king to hang -Mordecai on the gallows that he had prepared for him. - -6:5 And the king's servants said unto him, Behold, Haman standeth in -the court. And the king said, Let him come in. - -6:6 So Haman came in. And the king said unto him, What shall be done -unto the man whom the king delighteth to honour? Now Haman thought in -his heart, To whom would the king delight to do honour more than to -myself? 6:7 And Haman answered the king, For the man whom the king -delighteth to honour, 6:8 Let the royal apparel be brought which the -king useth to wear, and the horse that the king rideth upon, and the -crown royal which is set upon his head: 6:9 And let this apparel and -horse be delivered to the hand of one of the king's most noble -princes, that they may array the man withal whom the king delighteth -to honour, and bring him on horseback through the street of the city, -and proclaim before him, Thus shall it be done to the man whom the -king delighteth to honour. - -6:10 Then the king said to Haman, Make haste, and take the apparel and -the horse, as thou hast said, and do even so to Mordecai the Jew, that -sitteth at the king's gate: let nothing fail of all that thou hast -spoken. - -6:11 Then took Haman the apparel and the horse, and arrayed Mordecai, -and brought him on horseback through the street of the city, and -proclaimed before him, Thus shall it be done unto the man whom the -king delighteth to honour. - -6:12 And Mordecai came again to the king's gate. But Haman hasted to -his house mourning, and having his head covered. - -6:13 And Haman told Zeresh his wife and all his friends every thing -that had befallen him. Then said his wise men and Zeresh his wife unto -him, If Mordecai be of the seed of the Jews, before whom thou hast -begun to fall, thou shalt not prevail against him, but shalt surely -fall before him. - -6:14 And while they were yet talking with him, came the king's -chamberlains, and hasted to bring Haman unto the banquet that Esther -had prepared. - -7:1 So the king and Haman came to banquet with Esther the queen. - -7:2 And the king said again unto Esther on the second day at the -banquet of wine, What is thy petition, queen Esther? and it shall be -granted thee: and what is thy request? and it shall be performed, even -to the half of the kingdom. - -7:3 Then Esther the queen answered and said, If I have found favour in -thy sight, O king, and if it please the king, let my life be given me -at my petition, and my people at my request: 7:4 For we are sold, I -and my people, to be destroyed, to be slain, and to perish. But if we -had been sold for bondmen and bondwomen, I had held my tongue, -although the enemy could not countervail the king's damage. - -7:5 Then the king Ahasuerus answered and said unto Esther the queen, -Who is he, and where is he, that durst presume in his heart to do so? -7:6 And Esther said, The adversary and enemy is this wicked Haman. -Then Haman was afraid before the king and the queen. - -7:7 And the king arising from the banquet of wine in his wrath went -into the palace garden: and Haman stood up to make request for his -life to Esther the queen; for he saw that there was evil determined -against him by the king. - -7:8 Then the king returned out of the palace garden into the place of -the banquet of wine; and Haman was fallen upon the bed whereon Esther -was. Then said the king, Will he force the queen also before me in the -house? As the word went out of king's mouth, they covered Haman's -face. - -7:9 And Harbonah, one of the chamberlains, said before the king, -Behold also, the gallows fifty cubits high, which Haman had made for -Mordecai, who spoken good for the king, standeth in the house of -Haman. Then the king said, Hang him thereon. - -7:10 So they hanged Haman on the gallows that he had prepared for -Mordecai. Then was the king's wrath pacified. - -8:1 On that day did the king Ahasuerus give the house of Haman the -Jews' enemy unto Esther the queen. And Mordecai came before the king; -for Esther had told what he was unto her. - -8:2 And the king took off his ring, which he had taken from Haman, and -gave it unto Mordecai. And Esther set Mordecai over the house of -Haman. - -8:3 And Esther spake yet again before the king, and fell down at his -feet, and besought him with tears to put away the mischief of Haman -the Agagite, and his device that he had devised against the Jews. - -8:4 Then the king held out the golden sceptre toward Esther. So Esther -arose, and stood before the king, 8:5 And said, If it please the king, -and if I have favour in his sight, and the thing seem right before the -king, and I be pleasing in his eyes, let it be written to reverse the -letters devised by Haman the son of Hammedatha the Agagite, which he -wrote to destroy the Jews which are in all the king's provinces: 8:6 -For how can I endure to see the evil that shall come unto my people? -or how can I endure to see the destruction of my kindred? 8:7 Then -the king Ahasuerus said unto Esther the queen and to Mordecai the Jew, -Behold, I have given Esther the house of Haman, and him they have -hanged upon the gallows, because he laid his hand upon the Jews. - -8:8 Write ye also for the Jews, as it liketh you, in the king's name, -and seal it with the king's ring: for the writing which is written in -the king's name, and sealed with the king's ring, may no man reverse. - -8:9 Then were the king's scribes called at that time in the third -month, that is, the month Sivan, on the three and twentieth day -thereof; and it was written according to all that Mordecai commanded -unto the Jews, and to the lieutenants, and the deputies and rulers of -the provinces which are from India unto Ethiopia, an hundred twenty -and seven provinces, unto every province according to the writing -thereof, and unto every people after their language, and to the Jews -according to their writing, and according to their language. - -8:10 And he wrote in the king Ahasuerus' name, and sealed it with the -king's ring, and sent letters by posts on horseback, and riders on -mules, camels, and young dromedaries: 8:11 Wherein the king granted -the Jews which were in every city to gather themselves together, and -to stand for their life, to destroy, to slay and to cause to perish, -all the power of the people and province that would assault them, both -little ones and women, and to take the spoil of them for a prey, 8:12 -Upon one day in all the provinces of king Ahasuerus, namely, upon the -thirteenth day of the twelfth month, which is the month Adar. - -8:13 The copy of the writing for a commandment to be given in every -province was published unto all people, and that the Jews should be -ready against that day to avenge themselves on their enemies. - -8:14 So the posts that rode upon mules and camels went out, being -hastened and pressed on by the king's commandment. And the decree was -given at Shushan the palace. - -8:15 And Mordecai went out from the presence of the king in royal -apparel of blue and white, and with a great crown of gold, and with a -garment of fine linen and purple: and the city of Shushan rejoiced and -was glad. - -8:16 The Jews had light, and gladness, and joy, and honour. - -8:17 And in every province, and in every city, whithersoever the -king's commandment and his decree came, the Jews had joy and gladness, -a feast and a good day. And many of the people of the land became -Jews; for the fear of the Jews fell upon them. - -9:1 Now in the twelfth month, that is, the month Adar, on the -thirteenth day of the same, when the king's commandment and his decree -drew near to be put in execution, in the day that the enemies of the -Jews hoped to have power over them, (though it was turned to the -contrary, that the Jews had rule over them that hated them;) 9:2 The -Jews gathered themselves together in their cities throughout all the -provinces of the king Ahasuerus, to lay hand on such as sought their -hurt: and no man could withstand them; for the fear of them fell upon -all people. - -9:3 And all the rulers of the provinces, and the lieutenants, and the -deputies, and officers of the king, helped the Jews; because the fear -of Mordecai fell upon them. - -9:4 For Mordecai was great in the king's house, and his fame went out -throughout all the provinces: for this man Mordecai waxed greater and -greater. - -9:5 Thus the Jews smote all their enemies with the stroke of the -sword, and slaughter, and destruction, and did what they would unto -those that hated them. - -9:6 And in Shushan the palace the Jews slew and destroyed five hundred -men. - -9:7 And Parshandatha, and Dalphon, and Aspatha, 9:8 And Poratha, and -Adalia, and Aridatha, 9:9 And Parmashta, and Arisai, and Aridai, and -Vajezatha, 9:10 The ten sons of Haman the son of Hammedatha, the enemy -of the Jews, slew they; but on the spoil laid they not their hand. - -9:11 On that day the number of those that were slain in Shushan the -palace was brought before the king. - -9:12 And the king said unto Esther the queen, The Jews have slain and -destroyed five hundred men in Shushan the palace, and the ten sons of -Haman; what have they done in the rest of the king's provinces? now -what is thy petition? and it shall be granted thee: or what is thy -request further? and it shall be done. - -9:13 Then said Esther, If it please the king, let it be granted to the -Jews which are in Shushan to do to morrow also according unto this -day's decree, and let Haman's ten sons be hanged upon the gallows. - -9:14 And the king commanded it so to be done: and the decree was given -at Shushan; and they hanged Haman's ten sons. - -9:15 For the Jews that were in Shushan gathered themselves together on -the fourteenth day also of the month Adar, and slew three hundred men -at Shushan; but on the prey they laid not their hand. - -9:16 But the other Jews that were in the king's provinces gathered -themselves together, and stood for their lives, and had rest from -their enemies, and slew of their foes seventy and five thousand, but -they laid not their hands on the prey, 9:17 On the thirteenth day of -the month Adar; and on the fourteenth day of the same rested they, and -made it a day of feasting and gladness. - -9:18 But the Jews that were at Shushan assembled together on the -thirteenth day thereof, and on the fourteenth thereof; and on the -fifteenth day of the same they rested, and made it a day of feasting -and gladness. - -9:19 Therefore the Jews of the villages, that dwelt in the unwalled -towns, made the fourteenth day of the month Adar a day of gladness and -feasting, and a good day, and of sending portions one to another. - -9:20 And Mordecai wrote these things, and sent letters unto all the -Jews that were in all the provinces of the king Ahasuerus, both nigh -and far, 9:21 To stablish this among them, that they should keep the -fourteenth day of the month Adar, and the fifteenth day of the same, -yearly, 9:22 As the days wherein the Jews rested from their enemies, -and the month which was turned unto them from sorrow to joy, and from -mourning into a good day: that they should make them days of feasting -and joy, and of sending portions one to another, and gifts to the -poor. - -9:23 And the Jews undertook to do as they had begun, and as Mordecai -had written unto them; 9:24 Because Haman the son of Hammedatha, the -Agagite, the enemy of all the Jews, had devised against the Jews to -destroy them, and had cast Pur, that is, the lot, to consume them, and -to destroy them; 9:25 But when Esther came before the king, he -commanded by letters that his wicked device, which he devised against -the Jews, should return upon his own head, and that he and his sons -should be hanged on the gallows. - -9:26 Wherefore they called these days Purim after the name of Pur. - -Therefore for all the words of this letter, and of that which they had -seen concerning this matter, and which had come unto them, 9:27 The -Jews ordained, and took upon them, and upon their seed, and upon all -such as joined themselves unto them, so as it should not fail, that -they would keep these two days according to their writing, and -according to their appointed time every year; 9:28 And that these days -should be remembered and kept throughout every generation, every -family, every province, and every city; and that these days of Purim -should not fail from among the Jews, nor the memorial of them perish -from their seed. - -9:29 Then Esther the queen, the daughter of Abihail, and Mordecai the -Jew, wrote with all authority, to confirm this second letter of Purim. - -9:30 And he sent the letters unto all the Jews, to the hundred twenty -and seven provinces of the kingdom of Ahasuerus, with words of peace -and truth, 9:31 To confirm these days of Purim in their times -appointed, according as Mordecai the Jew and Esther the queen had -enjoined them, and as they had decreed for themselves and for their -seed, the matters of the fastings and their cry. - -9:32 And the decree of Esther confirmed these matters of Purim; and it -was written in the book. - -10:1 And the king Ahasuerus laid a tribute upon the land, and upon the -isles of the sea. - -10:2 And all the acts of his power and of his might, and the -declaration of the greatness of Mordecai, whereunto the king advanced -him, are they not written in the book of the chronicles of the kings -of Media and Persia? 10:3 For Mordecai the Jew was next unto king -Ahasuerus, and great among the Jews, and accepted of the multitude of -his brethren, seeking the wealth of his people, and speaking peace to -all his seed. - - - - -The Book of Job - - -1:1 There was a man in the land of Uz, whose name was Job; and that -man was perfect and upright, and one that feared God, and eschewed evil. - -1:2 And there were born unto him seven sons and three daughters. - -1:3 His substance also was seven thousand sheep, and three thousand -camels, and five hundred yoke of oxen, and five hundred she asses, and -a very great household; so that this man was the greatest of all the -men of the east. - -1:4 And his sons went and feasted in their houses, every one his day; -and sent and called for their three sisters to eat and to drink with -them. - -1:5 And it was so, when the days of their feasting were gone about, -that Job sent and sanctified them, and rose up early in the morning, -and offered burnt offerings according to the number of them all: for -Job said, It may be that my sons have sinned, and cursed God in their -hearts. Thus did Job continually. - -1:6 Now there was a day when the sons of God came to present -themselves before the LORD, and Satan came also among them. - -1:7 And the LORD said unto Satan, Whence comest thou? Then Satan -answered the LORD, and said, From going to and fro in the earth, and -from walking up and down in it. - -1:8 And the LORD said unto Satan, Hast thou considered my servant Job, -that there is none like him in the earth, a perfect and an upright -man, one that feareth God, and escheweth evil? 1:9 Then Satan -answered the LORD, and said, Doth Job fear God for nought? 1:10 Hast -not thou made an hedge about him, and about his house, and about all -that he hath on every side? thou hast blessed the work of his hands, -and his substance is increased in the land. - -1:11 But put forth thine hand now, and touch all that he hath, and he -will curse thee to thy face. - -1:12 And the LORD said unto Satan, Behold, all that he hath is in thy -power; only upon himself put not forth thine hand. So Satan went forth -from the presence of the LORD. - -1:13 And there was a day when his sons and his daughters were eating -and drinking wine in their eldest brother's house: 1:14 And there came -a messenger unto Job, and said, The oxen were plowing, and the asses -feeding beside them: 1:15 And the Sabeans fell upon them, and took -them away; yea, they have slain the servants with the edge of the -sword; and I only am escaped alone to tell thee. - -1:16 While he was yet speaking, there came also another, and said, The -fire of God is fallen from heaven, and hath burned up the sheep, and -the servants, and consumed them; and I only am escaped alone to tell -thee. - -1:17 While he was yet speaking, there came also another, and said, The -Chaldeans made out three bands, and fell upon the camels, and have -carried them away, yea, and slain the servants with the edge of the -sword; and I only am escaped alone to tell thee. - -1:18 While he was yet speaking, there came also another, and said, Thy -sons and thy daughters were eating and drinking wine in their eldest -brother's house: 1:19 And, behold, there came a great wind from the -wilderness, and smote the four corners of the house, and it fell upon -the young men, and they are dead; and I only am escaped alone to tell -thee. - -1:20 Then Job arose, and rent his mantle, and shaved his head, and -fell down upon the ground, and worshipped, 1:21 And said, Naked came I -out of my mother's womb, and naked shall I return thither: the LORD -gave, and the LORD hath taken away; blessed be the name of the LORD. - -1:22 In all this Job sinned not, nor charged God foolishly. - -2:1 Again there was a day when the sons of God came to present -themselves before the LORD, and Satan came also among them to present -himself before the LORD. - -2:2 And the LORD said unto Satan, From whence comest thou? And Satan -answered the LORD, and said, From going to and fro in the earth, and -from walking up and down in it. - -2:3 And the LORD said unto Satan, Hast thou considered my servant Job, -that there is none like him in the earth, a perfect and an upright -man, one that feareth God, and escheweth evil? and still he holdeth -fast his integrity, although thou movedst me against him, to destroy -him without cause. - -2:4 And Satan answered the LORD, and said, Skin for skin, yea, all -that a man hath will he give for his life. - -2:5 But put forth thine hand now, and touch his bone and his flesh, -and he will curse thee to thy face. - -2:6 And the LORD said unto Satan, Behold, he is in thine hand; but -save his life. - -2:7 So went Satan forth from the presence of the LORD, and smote Job -with sore boils from the sole of his foot unto his crown. - -2:8 And he took him a potsherd to scrape himself withal; and he sat -down among the ashes. - -2:9 Then said his wife unto him, Dost thou still retain thine -integrity? curse God, and die. - -2:10 But he said unto her, Thou speakest as one of the foolish women -speaketh. What? shall we receive good at the hand of God, and shall we -not receive evil? In all this did not Job sin with his lips. - -2:11 Now when Job's three friends heard of all this evil that was come -upon him, they came every one from his own place; Eliphaz the -Temanite, and Bildad the Shuhite, and Zophar the Naamathite: for they -had made an appointment together to come to mourn with him and to -comfort him. - -2:12 And when they lifted up their eyes afar off, and knew him not, -they lifted up their voice, and wept; and they rent every one his -mantle, and sprinkled dust upon their heads toward heaven. - -2:13 So they sat down with him upon the ground seven days and seven -nights, and none spake a word unto him: for they saw that his grief -was very great. - -3:1 After this opened Job his mouth, and cursed his day. - -3:2 And Job spake, and said, 3:3 Let the day perish wherein I was -born, and the night in which it was said, There is a man child -conceived. - -3:4 Let that day be darkness; let not God regard it from above, -neither let the light shine upon it. - -3:5 Let darkness and the shadow of death stain it; let a cloud dwell -upon it; let the blackness of the day terrify it. - -3:6 As for that night, let darkness seize upon it; let it not be -joined unto the days of the year, let it not come into the number of -the months. - -3:7 Lo, let that night be solitary, let no joyful voice come therein. - -3:8 Let them curse it that curse the day, who are ready to raise up -their mourning. - -3:9 Let the stars of the twilight thereof be dark; let it look for -light, but have none; neither let it see the dawning of the day: 3:10 -Because it shut not up the doors of my mother's womb, nor hid sorrow -from mine eyes. - -3:11 Why died I not from the womb? why did I not give up the ghost -when I came out of the belly? 3:12 Why did the knees prevent me? or -why the breasts that I should suck? 3:13 For now should I have lain -still and been quiet, I should have slept: then had I been at rest, -3:14 With kings and counsellors of the earth, which build desolate -places for themselves; 3:15 Or with princes that had gold, who filled -their houses with silver: 3:16 Or as an hidden untimely birth I had -not been; as infants which never saw light. - -3:17 There the wicked cease from troubling; and there the weary be at -rest. - -3:18 There the prisoners rest together; they hear not the voice of the -oppressor. - -3:19 The small and great are there; and the servant is free from his -master. - -3:20 Wherefore is light given to him that is in misery, and life unto -the bitter in soul; 3:21 Which long for death, but it cometh not; and -dig for it more than for hid treasures; 3:22 Which rejoice -exceedingly, and are glad, when they can find the grave? 3:23 Why is -light given to a man whose way is hid, and whom God hath hedged in? -3:24 For my sighing cometh before I eat, and my roarings are poured -out like the waters. - -3:25 For the thing which I greatly feared is come upon me, and that -which I was afraid of is come unto me. - -3:26 I was not in safety, neither had I rest, neither was I quiet; yet -trouble came. - -4:1 Then Eliphaz the Temanite answered and said, 4:2 If we assay to -commune with thee, wilt thou be grieved? but who can withhold himself -from speaking? 4:3 Behold, thou hast instructed many, and thou hast -strengthened the weak hands. - -4:4 Thy words have upholden him that was falling, and thou hast -strengthened the feeble knees. - -4:5 But now it is come upon thee, and thou faintest; it toucheth thee, -and thou art troubled. - -4:6 Is not this thy fear, thy confidence, thy hope, and the -uprightness of thy ways? 4:7 Remember, I pray thee, who ever -perished, being innocent? or where were the righteous cut off? 4:8 -Even as I have seen, they that plow iniquity, and sow wickedness, reap -the same. - -4:9 By the blast of God they perish, and by the breath of his nostrils -are they consumed. - -4:10 The roaring of the lion, and the voice of the fierce lion, and -the teeth of the young lions, are broken. - -4:11 The old lion perisheth for lack of prey, and the stout lion's -whelps are scattered abroad. - -4:12 Now a thing was secretly brought to me, and mine ear received a -little thereof. - -4:13 In thoughts from the visions of the night, when deep sleep -falleth on men, 4:14 Fear came upon me, and trembling, which made all -my bones to shake. - -4:15 Then a spirit passed before my face; the hair of my flesh stood -up: 4:16 It stood still, but I could not discern the form thereof: an -image was before mine eyes, there was silence, and I heard a voice, -saying, 4:17 Shall mortal man be more just than God? shall a man be -more pure than his maker? 4:18 Behold, he put no trust in his -servants; and his angels he charged with folly: 4:19 How much less in -them that dwell in houses of clay, whose foundation is in the dust, -which are crushed before the moth? 4:20 They are destroyed from -morning to evening: they perish for ever without any regarding it. - -4:21 Doth not their excellency which is in them go away? they die, -even without wisdom. - -5:1 Call now, if there be any that will answer thee; and to which of -the saints wilt thou turn? 5:2 For wrath killeth the foolish man, and -envy slayeth the silly one. - -5:3 I have seen the foolish taking root: but suddenly I cursed his -habitation. - -5:4 His children are far from safety, and they are crushed in the -gate, neither is there any to deliver them. - -5:5 Whose harvest the hungry eateth up, and taketh it even out of the -thorns, and the robber swalloweth up their substance. - -5:6 Although affliction cometh not forth of the dust, neither doth -trouble spring out of the ground; 5:7 Yet man is born unto trouble, as -the sparks fly upward. - -5:8 I would seek unto God, and unto God would I commit my cause: 5:9 -Which doeth great things and unsearchable; marvellous things without -number: 5:10 Who giveth rain upon the earth, and sendeth waters upon -the fields: 5:11 To set up on high those that be low; that those which -mourn may be exalted to safety. - -5:12 He disappointeth the devices of the crafty, so that their hands -cannot perform their enterprise. - -5:13 He taketh the wise in their own craftiness: and the counsel of -the froward is carried headlong. - -5:14 They meet with darkness in the day time, and grope in the noonday -as in the night. - -5:15 But he saveth the poor from the sword, from their mouth, and from -the hand of the mighty. - -5:16 So the poor hath hope, and iniquity stoppeth her mouth. - -5:17 Behold, happy is the man whom God correcteth: therefore despise -not thou the chastening of the Almighty: 5:18 For he maketh sore, and -bindeth up: he woundeth, and his hands make whole. - -5:19 He shall deliver thee in six troubles: yea, in seven there shall -no evil touch thee. - -5:20 In famine he shall redeem thee from death: and in war from the -power of the sword. - -5:21 Thou shalt be hid from the scourge of the tongue: neither shalt -thou be afraid of destruction when it cometh. - -5:22 At destruction and famine thou shalt laugh: neither shalt thou be -afraid of the beasts of the earth. - -5:23 For thou shalt be in league with the stones of the field: and the -beasts of the field shall be at peace with thee. - -5:24 And thou shalt know that thy tabernacle shall be in peace; and -thou shalt visit thy habitation, and shalt not sin. - -5:25 Thou shalt know also that thy seed shall be great, and thine -offspring as the grass of the earth. - -5:26 Thou shalt come to thy grave in a full age, like as a shock of -corn cometh in in his season. - -5:27 Lo this, we have searched it, so it is; hear it, and know thou it -for thy good. - -6:1 But Job answered and said, 6:2 Oh that my grief were throughly -weighed, and my calamity laid in the balances together! 6:3 For now -it would be heavier than the sand of the sea: therefore my words are -swallowed up. - -6:4 For the arrows of the Almighty are within me, the poison whereof -drinketh up my spirit: the terrors of God do set themselves in array -against me. - -6:5 Doth the wild ass bray when he hath grass? or loweth the ox over -his fodder? 6:6 Can that which is unsavoury be eaten without salt? or -is there any taste in the white of an egg? 6:7 The things that my -soul refused to touch are as my sorrowful meat. - -6:8 Oh that I might have my request; and that God would grant me the -thing that I long for! 6:9 Even that it would please God to destroy -me; that he would let loose his hand, and cut me off! 6:10 Then -should I yet have comfort; yea, I would harden myself in sorrow: let -him not spare; for I have not concealed the words of the Holy One. - -6:11 What is my strength, that I should hope? and what is mine end, -that I should prolong my life? 6:12 Is my strength the strength of -stones? or is my flesh of brass? 6:13 Is not my help in me? and is -wisdom driven quite from me? 6:14 To him that is afflicted pity -should be shewed from his friend; but he forsaketh the fear of the -Almighty. - -6:15 My brethren have dealt deceitfully as a brook, and as the stream -of brooks they pass away; 6:16 Which are blackish by reason of the -ice, and wherein the snow is hid: 6:17 What time they wax warm, they -vanish: when it is hot, they are consumed out of their place. - -6:18 The paths of their way are turned aside; they go to nothing, and -perish. - -6:19 The troops of Tema looked, the companies of Sheba waited for -them. - -6:20 They were confounded because they had hoped; they came thither, -and were ashamed. - -6:21 For now ye are nothing; ye see my casting down, and are afraid. - -6:22 Did I say, Bring unto me? or, Give a reward for me of your -substance? 6:23 Or, Deliver me from the enemy's hand? or, Redeem me -from the hand of the mighty? 6:24 Teach me, and I will hold my -tongue: and cause me to understand wherein I have erred. - -6:25 How forcible are right words! but what doth your arguing reprove? -6:26 Do ye imagine to reprove words, and the speeches of one that is -desperate, which are as wind? 6:27 Yea, ye overwhelm the fatherless, -and ye dig a pit for your friend. - -6:28 Now therefore be content, look upon me; for it is evident unto -you if I lie. - -6:29 Return, I pray you, let it not be iniquity; yea, return again, my -righteousness is in it. - -6:30 Is there iniquity in my tongue? cannot my taste discern perverse -things? 7:1 Is there not an appointed time to man upon earth? are not -his days also like the days of an hireling? 7:2 As a servant -earnestly desireth the shadow, and as an hireling looketh for the -reward of his work: 7:3 So am I made to possess months of vanity, and -wearisome nights are appointed to me. - -7:4 When I lie down, I say, When shall I arise, and the night be gone? -and I am full of tossings to and fro unto the dawning of the day. - -7:5 My flesh is clothed with worms and clods of dust; my skin is -broken, and become loathsome. - -7:6 My days are swifter than a weaver's shuttle, and are spent without -hope. - -7:7 O remember that my life is wind: mine eye shall no more see good. - -7:8 The eye of him that hath seen me shall see me no more: thine eyes -are upon me, and I am not. - -7:9 As the cloud is consumed and vanisheth away: so he that goeth down -to the grave shall come up no more. - -7:10 He shall return no more to his house, neither shall his place -know him any more. - -7:11 Therefore I will not refrain my mouth; I will speak in the -anguish of my spirit; I will complain in the bitterness of my soul. - -7:12 Am I a sea, or a whale, that thou settest a watch over me? 7:13 -When I say, My bed shall comfort me, my couch shall ease my -complaints; 7:14 Then thou scarest me with dreams, and terrifiest me -through visions: 7:15 So that my soul chooseth strangling, and death -rather than my life. - -7:16 I loathe it; I would not live alway: let me alone; for my days -are vanity. - -7:17 What is man, that thou shouldest magnify him? and that thou -shouldest set thine heart upon him? 7:18 And that thou shouldest -visit him every morning, and try him every moment? 7:19 How long wilt -thou not depart from me, nor let me alone till I swallow down my -spittle? 7:20 I have sinned; what shall I do unto thee, O thou -preserver of men? why hast thou set me as a mark against thee, so -that I am a burden to myself? 7:21 And why dost thou not pardon my -transgression, and take away my iniquity? for now shall I sleep in the -dust; and thou shalt seek me in the morning, but I shall not be. - -8:1 Then answered Bildad the Shuhite, and said, 8:2 How long wilt thou -speak these things? and how long shall the words of thy mouth be like -a strong wind? 8:3 Doth God pervert judgment? or doth the Almighty -pervert justice? 8:4 If thy children have sinned against him, and he -have cast them away for their transgression; 8:5 If thou wouldest seek -unto God betimes, and make thy supplication to the Almighty; 8:6 If -thou wert pure and upright; surely now he would awake for thee, and -make the habitation of thy righteousness prosperous. - -8:7 Though thy beginning was small, yet thy latter end should greatly -increase. - -8:8 For enquire, I pray thee, of the former age, and prepare thyself -to the search of their fathers: 8:9 (For we are but of yesterday, and -know nothing, because our days upon earth are a shadow:) 8:10 Shall -not they teach thee, and tell thee, and utter words out of their -heart? 8:11 Can the rush grow up without mire? can the flag grow -without water? 8:12 Whilst it is yet in his greenness, and not cut -down, it withereth before any other herb. - -8:13 So are the paths of all that forget God; and the hypocrite's hope -shall perish: 8:14 Whose hope shall be cut off, and whose trust shall -be a spider's web. - -8:15 He shall lean upon his house, but it shall not stand: he shall -hold it fast, but it shall not endure. - -8:16 He is green before the sun, and his branch shooteth forth in his -garden. - -8:17 His roots are wrapped about the heap, and seeth the place of -stones. - -8:18 If he destroy him from his place, then it shall deny him, saying, -I have not seen thee. - -8:19 Behold, this is the joy of his way, and out of the earth shall -others grow. - -8:20 Behold, God will not cast away a perfect man, neither will he -help the evil doers: 8:21 Till he fill thy mouth with laughing, and -thy lips with rejoicing. - -8:22 They that hate thee shall be clothed with shame; and the dwelling -place of the wicked shall come to nought. - -9:1 Then Job answered and said, 9:2 I know it is so of a truth: but -how should man be just with God? 9:3 If he will contend with him, he -cannot answer him one of a thousand. - -9:4 He is wise in heart, and mighty in strength: who hath hardened -himself against him, and hath prospered? 9:5 Which removeth the -mountains, and they know not: which overturneth them in his anger. - -9:6 Which shaketh the earth out of her place, and the pillars thereof -tremble. - -9:7 Which commandeth the sun, and it riseth not; and sealeth up the -stars. - -9:8 Which alone spreadeth out the heavens, and treadeth upon the waves -of the sea. - -9:9 Which maketh Arcturus, Orion, and Pleiades, and the chambers of -the south. - -9:10 Which doeth great things past finding out; yea, and wonders -without number. - -9:11 Lo, he goeth by me, and I see him not: he passeth on also, but I -perceive him not. - -9:12 Behold, he taketh away, who can hinder him? who will say unto -him, What doest thou? 9:13 If God will not withdraw his anger, the -proud helpers do stoop under him. - -9:14 How much less shall I answer him, and choose out my words to -reason with him? 9:15 Whom, though I were righteous, yet would I not -answer, but I would make supplication to my judge. - -9:16 If I had called, and he had answered me; yet would I not believe -that he had hearkened unto my voice. - -9:17 For he breaketh me with a tempest, and multiplieth my wounds -without cause. - -9:18 He will not suffer me to take my breath, but filleth me with -bitterness. - -9:19 If I speak of strength, lo, he is strong: and if of judgment, who -shall set me a time to plead? 9:20 If I justify myself, mine own -mouth shall condemn me: if I say, I am perfect, it shall also prove me -perverse. - -9:21 Though I were perfect, yet would I not know my soul: I would -despise my life. - -9:22 This is one thing, therefore I said it, He destroyeth the perfect -and the wicked. - -9:23 If the scourge slay suddenly, he will laugh at the trial of the -innocent. - -9:24 The earth is given into the hand of the wicked: he covereth the -faces of the judges thereof; if not, where, and who is he? 9:25 Now -my days are swifter than a post: they flee away, they see no good. - -9:26 They are passed away as the swift ships: as the eagle that -hasteth to the prey. - -9:27 If I say, I will forget my complaint, I will leave off my -heaviness, and comfort myself: 9:28 I am afraid of all my sorrows, I -know that thou wilt not hold me innocent. - -9:29 If I be wicked, why then labour I in vain? 9:30 If I wash myself -with snow water, and make my hands never so clean; 9:31 Yet shalt thou -plunge me in the ditch, and mine own clothes shall abhor me. - -9:32 For he is not a man, as I am, that I should answer him, and we -should come together in judgment. - -9:33 Neither is there any daysman betwixt us, that might lay his hand -upon us both. - -9:34 Let him take his rod away from me, and let not his fear terrify -me: 9:35 Then would I speak, and not fear him; but it is not so with -me. - -10:1 My soul is weary of my life; I will leave my complaint upon -myself; I will speak in the bitterness of my soul. - -10:2 I will say unto God, Do not condemn me; shew me wherefore thou -contendest with me. - -10:3 Is it good unto thee that thou shouldest oppress, that thou -shouldest despise the work of thine hands, and shine upon the counsel -of the wicked? 10:4 Hast thou eyes of flesh? or seest thou as man -seeth? 10:5 Are thy days as the days of man? are thy years as man's -days, 10:6 That thou enquirest after mine iniquity, and searchest -after my sin? 10:7 Thou knowest that I am not wicked; and there is -none that can deliver out of thine hand. - -10:8 Thine hands have made me and fashioned me together round about; -yet thou dost destroy me. - -10:9 Remember, I beseech thee, that thou hast made me as the clay; and -wilt thou bring me into dust again? 10:10 Hast thou not poured me out -as milk, and curdled me like cheese? 10:11 Thou hast clothed me with -skin and flesh, and hast fenced me with bones and sinews. - -10:12 Thou hast granted me life and favour, and thy visitation hath -preserved my spirit. - -10:13 And these things hast thou hid in thine heart: I know that this -is with thee. - -10:14 If I sin, then thou markest me, and thou wilt not acquit me from -mine iniquity. - -10:15 If I be wicked, woe unto me; and if I be righteous, yet will I -not lift up my head. I am full of confusion; therefore see thou mine -affliction; 10:16 For it increaseth. Thou huntest me as a fierce lion: -and again thou shewest thyself marvellous upon me. - -10:17 Thou renewest thy witnesses against me, and increasest thine -indignation upon me; changes and war are against me. - -10:18 Wherefore then hast thou brought me forth out of the womb? Oh -that I had given up the ghost, and no eye had seen me! 10:19 I should -have been as though I had not been; I should have been carried from -the womb to the grave. - -10:20 Are not my days few? cease then, and let me alone, that I may -take comfort a little, 10:21 Before I go whence I shall not return, -even to the land of darkness and the shadow of death; 10:22 A land of -darkness, as darkness itself; and of the shadow of death, without any -order, and where the light is as darkness. - -11:1 Then answered Zophar the Naamathite, and said, 11:2 Should not -the multitude of words be answered? and should a man full of talk be -justified? 11:3 Should thy lies make men hold their peace? and when -thou mockest, shall no man make thee ashamed? 11:4 For thou hast -said, My doctrine is pure, and I am clean in thine eyes. - -11:5 But oh that God would speak, and open his lips against thee; 11:6 -And that he would shew thee the secrets of wisdom, that they are -double to that which is! Know therefore that God exacteth of thee less -than thine iniquity deserveth. - -11:7 Canst thou by searching find out God? canst thou find out the -Almighty unto perfection? 11:8 It is as high as heaven; what canst -thou do? deeper than hell; what canst thou know? 11:9 The measure -thereof is longer than the earth, and broader than the sea. - -11:10 If he cut off, and shut up, or gather together, then who can -hinder him? 11:11 For he knoweth vain men: he seeth wickedness also; -will he not then consider it? 11:12 For vain men would be wise, -though man be born like a wild ass's colt. - -11:13 If thou prepare thine heart, and stretch out thine hands toward -him; 11:14 If iniquity be in thine hand, put it far away, and let not -wickedness dwell in thy tabernacles. - -11:15 For then shalt thou lift up thy face without spot; yea, thou -shalt be stedfast, and shalt not fear: 11:16 Because thou shalt forget -thy misery, and remember it as waters that pass away: 11:17 And thine -age shall be clearer than the noonday: thou shalt shine forth, thou -shalt be as the morning. - -11:18 And thou shalt be secure, because there is hope; yea, thou shalt -dig about thee, and thou shalt take thy rest in safety. - -11:19 Also thou shalt lie down, and none shall make thee afraid; yea, -many shall make suit unto thee. - -11:20 But the eyes of the wicked shall fail, and they shall not -escape, and their hope shall be as the giving up of the ghost. - -12:1 And Job answered and said, 12:2 No doubt but ye are the people, -and wisdom shall die with you. - -12:3 But I have understanding as well as you; I am not inferior to -you: yea, who knoweth not such things as these? 12:4 I am as one -mocked of his neighbour, who calleth upon God, and he answereth him: -the just upright man is laughed to scorn. - -12:5 He that is ready to slip with his feet is as a lamp despised in -the thought of him that is at ease. - -12:6 The tabernacles of robbers prosper, and they that provoke God are -secure; into whose hand God bringeth abundantly. - -12:7 But ask now the beasts, and they shall teach thee; and the fowls -of the air, and they shall tell thee: 12:8 Or speak to the earth, and -it shall teach thee: and the fishes of the sea shall declare unto -thee. - -12:9 Who knoweth not in all these that the hand of the LORD hath -wrought this? 12:10 In whose hand is the soul of every living thing, -and the breath of all mankind. - -12:11 Doth not the ear try words? and the mouth taste his meat? 12:12 -With the ancient is wisdom; and in length of days understanding. - -12:13 With him is wisdom and strength, he hath counsel and -understanding. - -12:14 Behold, he breaketh down, and it cannot be built again: he -shutteth up a man, and there can be no opening. - -12:15 Behold, he withholdeth the waters, and they dry up: also he -sendeth them out, and they overturn the earth. - -12:16 With him is strength and wisdom: the deceived and the deceiver -are his. - -12:17 He leadeth counsellors away spoiled, and maketh the judges -fools. - -12:18 He looseth the bond of kings, and girdeth their loins with a -girdle. - -12:19 He leadeth princes away spoiled, and overthroweth the mighty. - -12:20 He removeth away the speech of the trusty, and taketh away the -understanding of the aged. - -12:21 He poureth contempt upon princes, and weakeneth the strength of -the mighty. - -12:22 He discovereth deep things out of darkness, and bringeth out to -light the shadow of death. - -12:23 He increaseth the nations, and destroyeth them: he enlargeth the -nations, and straiteneth them again. - -12:24 He taketh away the heart of the chief of the people of the -earth, and causeth them to wander in a wilderness where there is no -way. - -12:25 They grope in the dark without light, and he maketh them to -stagger like a drunken man. - -13:1 Lo, mine eye hath seen all this, mine ear hath heard and -understood it. - -13:2 What ye know, the same do I know also: I am not inferior unto -you. - -13:3 Surely I would speak to the Almighty, and I desire to reason with -God. - -13:4 But ye are forgers of lies, ye are all physicians of no value. - -13:5 O that ye would altogether hold your peace! and it should be your -wisdom. - -13:6 Hear now my reasoning, and hearken to the pleadings of my lips. - -13:7 Will ye speak wickedly for God? and talk deceitfully for him? -13:8 Will ye accept his person? will ye contend for God? 13:9 Is it -good that he should search you out? or as one man mocketh another, do -ye so mock him? 13:10 He will surely reprove you, if ye do secretly -accept persons. - -13:11 Shall not his excellency make you afraid? and his dread fall -upon you? 13:12 Your remembrances are like unto ashes, your bodies to -bodies of clay. - -13:13 Hold your peace, let me alone, that I may speak, and let come on -me what will. - -13:14 Wherefore do I take my flesh in my teeth, and put my life in -mine hand? 13:15 Though he slay me, yet will I trust in him: but I -will maintain mine own ways before him. - -13:16 He also shall be my salvation: for an hypocrite shall not come -before him. - -13:17 Hear diligently my speech, and my declaration with your ears. - -13:18 Behold now, I have ordered my cause; I know that I shall be -justified. - -13:19 Who is he that will plead with me? for now, if I hold my tongue, -I shall give up the ghost. - -13:20 Only do not two things unto me: then will I not hide myself from -thee. - -13:21 Withdraw thine hand far from me: and let not thy dread make me -afraid. - -13:22 Then call thou, and I will answer: or let me speak, and answer -thou me. - -13:23 How many are mine iniquities and sins? make me to know my -transgression and my sin. - -13:24 Wherefore hidest thou thy face, and holdest me for thine enemy? -13:25 Wilt thou break a leaf driven to and fro? and wilt thou pursue -the dry stubble? 13:26 For thou writest bitter things against me, and -makest me to possess the iniquities of my youth. - -13:27 Thou puttest my feet also in the stocks, and lookest narrowly -unto all my paths; thou settest a print upon the heels of my feet. - -13:28 And he, as a rotten thing, consumeth, as a garment that is moth -eaten. - -14:1 Man that is born of a woman is of few days and full of trouble. - -14:2 He cometh forth like a flower, and is cut down: he fleeth also as -a shadow, and continueth not. - -14:3 And doth thou open thine eyes upon such an one, and bringest me -into judgment with thee? 14:4 Who can bring a clean thing out of an -unclean? not one. - -14:5 Seeing his days are determined, the number of his months are with -thee, thou hast appointed his bounds that he cannot pass; 14:6 Turn -from him, that he may rest, till he shall accomplish, as an hireling, -his day. - -14:7 For there is hope of a tree, if it be cut down, that it will -sprout again, and that the tender branch thereof will not cease. - -14:8 Though the root thereof wax old in the earth, and the stock -thereof die in the ground; 14:9 Yet through the scent of water it will -bud, and bring forth boughs like a plant. - -14:10 But man dieth, and wasteth away: yea, man giveth up the ghost, -and where is he? 14:11 As the waters fail from the sea, and the flood -decayeth and drieth up: 14:12 So man lieth down, and riseth not: till -the heavens be no more, they shall not awake, nor be raised out of -their sleep. - -14:13 O that thou wouldest hide me in the grave, that thou wouldest -keep me secret, until thy wrath be past, that thou wouldest appoint me -a set time, and remember me! 14:14 If a man die, shall he live again? -all the days of my appointed time will I wait, till my change come. - -14:15 Thou shalt call, and I will answer thee: thou wilt have a desire -to the work of thine hands. - -14:16 For now thou numberest my steps: dost thou not watch over my -sin? 14:17 My transgression is sealed up in a bag, and thou sewest up -mine iniquity. - -14:18 And surely the mountains falling cometh to nought, and the rock -is removed out of his place. - -14:19 The waters wear the stones: thou washest away the things which -grow out of the dust of the earth; and thou destroyest the hope of -man. - -14:20 Thou prevailest for ever against him, and he passeth: thou -changest his countenance, and sendest him away. - -14:21 His sons come to honour, and he knoweth it not; and they are -brought low, but he perceiveth it not of them. - -14:22 But his flesh upon him shall have pain, and his soul within him -shall mourn. - -15:1 Then answered Eliphaz the Temanite, and said, 15:2 Should a wise -man utter vain knowledge, and fill his belly with the east wind? 15:3 -Should he reason with unprofitable talk? or with speeches wherewith he -can do no good? 15:4 Yea, thou castest off fear, and restrainest -prayer before God. - -15:5 For thy mouth uttereth thine iniquity, and thou choosest the -tongue of the crafty. - -15:6 Thine own mouth condemneth thee, and not I: yea, thine own lips -testify against thee. - -15:7 Art thou the first man that was born? or wast thou made before -the hills? 15:8 Hast thou heard the secret of God? and dost thou -restrain wisdom to thyself? 15:9 What knowest thou, that we know not? -what understandest thou, which is not in us? 15:10 With us are both -the grayheaded and very aged men, much elder than thy father. - -15:11 Are the consolations of God small with thee? is there any secret -thing with thee? 15:12 Why doth thine heart carry thee away? and what -do thy eyes wink at, 15:13 That thou turnest thy spirit against God, -and lettest such words go out of thy mouth? 15:14 What is man, that -he should be clean? and he which is born of a woman, that he should be -righteous? 15:15 Behold, he putteth no trust in his saints; yea, the -heavens are not clean in his sight. - -15:16 How much more abominable and filthy is man, which drinketh -iniquity like water? 15:17 I will shew thee, hear me; and that which -I have seen I will declare; 15:18 Which wise men have told from their -fathers, and have not hid it: 15:19 Unto whom alone the earth was -given, and no stranger passed among them. - -15:20 The wicked man travaileth with pain all his days, and the number -of years is hidden to the oppressor. - -15:21 A dreadful sound is in his ears: in prosperity the destroyer -shall come upon him. - -15:22 He believeth not that he shall return out of darkness, and he is -waited for of the sword. - -15:23 He wandereth abroad for bread, saying, Where is it? he knoweth -that the day of darkness is ready at his hand. - -15:24 Trouble and anguish shall make him afraid; they shall prevail -against him, as a king ready to the battle. - -15:25 For he stretcheth out his hand against God, and strengtheneth -himself against the Almighty. - -15:26 He runneth upon him, even on his neck, upon the thick bosses of -his bucklers: 15:27 Because he covereth his face with his fatness, and -maketh collops of fat on his flanks. - -15:28 And he dwelleth in desolate cities, and in houses which no man -inhabiteth, which are ready to become heaps. - -15:29 He shall not be rich, neither shall his substance continue, -neither shall he prolong the perfection thereof upon the earth. - -15:30 He shall not depart out of darkness; the flame shall dry up his -branches, and by the breath of his mouth shall he go away. - -15:31 Let not him that is deceived trust in vanity: for vanity shall -be his recompence. - -15:32 It shall be accomplished before his time, and his branch shall -not be green. - -15:33 He shall shake off his unripe grape as the vine, and shall cast -off his flower as the olive. - -15:34 For the congregation of hypocrites shall be desolate, and fire -shall consume the tabernacles of bribery. - -15:35 They conceive mischief, and bring forth vanity, and their belly -prepareth deceit. - -16:1 Then Job answered and said, 16:2 I have heard many such things: -miserable comforters are ye all. - -16:3 Shall vain words have an end? or what emboldeneth thee that thou -answerest? 16:4 I also could speak as ye do: if your soul were in my -soul's stead, I could heap up words against you, and shake mine head -at you. - -16:5 But I would strengthen you with my mouth, and the moving of my -lips should asswage your grief. - -16:6 Though I speak, my grief is not asswaged: and though I forbear, -what am I eased? 16:7 But now he hath made me weary: thou hast made -desolate all my company. - -16:8 And thou hast filled me with wrinkles, which is a witness against -me: and my leanness rising up in me beareth witness to my face. - -16:9 He teareth me in his wrath, who hateth me: he gnasheth upon me -with his teeth; mine enemy sharpeneth his eyes upon me. - -16:10 They have gaped upon me with their mouth; they have smitten me -upon the cheek reproachfully; they have gathered themselves together -against me. - -16:11 God hath delivered me to the ungodly, and turned me over into -the hands of the wicked. - -16:12 I was at ease, but he hath broken me asunder: he hath also taken -me by my neck, and shaken me to pieces, and set me up for his mark. - -16:13 His archers compass me round about, he cleaveth my reins -asunder, and doth not spare; he poureth out my gall upon the ground. - -16:14 He breaketh me with breach upon breach, he runneth upon me like -a giant. - -16:15 I have sewed sackcloth upon my skin, and defiled my horn in the -dust. - -16:16 My face is foul with weeping, and on my eyelids is the shadow of -death; 16:17 Not for any injustice in mine hands: also my prayer is -pure. - -16:18 O earth, cover not thou my blood, and let my cry have no place. - -16:19 Also now, behold, my witness is in heaven, and my record is on -high. - -16:20 My friends scorn me: but mine eye poureth out tears unto God. - -16:21 O that one might plead for a man with God, as a man pleadeth for -his neighbour! 16:22 When a few years are come, then I shall go the -way whence I shall not return. - -17:1 My breath is corrupt, my days are extinct, the graves are ready -for me. - -17:2 Are there not mockers with me? and doth not mine eye continue in -their provocation? 17:3 Lay down now, put me in a surety with thee; -who is he that will strike hands with me? 17:4 For thou hast hid -their heart from understanding: therefore shalt thou not exalt them. - -17:5 He that speaketh flattery to his friends, even the eyes of his -children shall fail. - -17:6 He hath made me also a byword of the people; and aforetime I was -as a tabret. - -17:7 Mine eye also is dim by reason of sorrow, and all my members are -as a shadow. - -17:8 Upright men shall be astonied at this, and the innocent shall -stir up himself against the hypocrite. - -17:9 The righteous also shall hold on his way, and he that hath clean -hands shall be stronger and stronger. - -17:10 But as for you all, do ye return, and come now: for I cannot -find one wise man among you. - -17:11 My days are past, my purposes are broken off, even the thoughts -of my heart. - -17:12 They change the night into day: the light is short because of -darkness. - -17:13 If I wait, the grave is mine house: I have made my bed in the -darkness. - -17:14 I have said to corruption, Thou art my father: to the worm, Thou -art my mother, and my sister. - -17:15 And where is now my hope? as for my hope, who shall see it? -17:16 They shall go down to the bars of the pit, when our rest -together is in the dust. - -18:1 Then answered Bildad the Shuhite, and said, 18:2 How long will it -be ere ye make an end of words? mark, and afterwards we will speak. - -18:3 Wherefore are we counted as beasts, and reputed vile in your -sight? 18:4 He teareth himself in his anger: shall the earth be -forsaken for thee? and shall the rock be removed out of his place? -18:5 Yea, the light of the wicked shall be put out, and the spark of -his fire shall not shine. - -18:6 The light shall be dark in his tabernacle, and his candle shall -be put out with him. - -18:7 The steps of his strength shall be straitened, and his own -counsel shall cast him down. - -18:8 For he is cast into a net by his own feet, and he walketh upon a -snare. - -18:9 The gin shall take him by the heel, and the robber shall prevail -against him. - -18:10 The snare is laid for him in the ground, and a trap for him in -the way. - -18:11 Terrors shall make him afraid on every side, and shall drive him -to his feet. - -18:12 His strength shall be hungerbitten, and destruction shall be -ready at his side. - -18:13 It shall devour the strength of his skin: even the firstborn of -death shall devour his strength. - -18:14 His confidence shall be rooted out of his tabernacle, and it -shall bring him to the king of terrors. - -18:15 It shall dwell in his tabernacle, because it is none of his: -brimstone shall be scattered upon his habitation. - -18:16 His roots shall be dried up beneath, and above shall his branch -be cut off. - -18:17 His remembrance shall perish from the earth, and he shall have -no name in the street. - -18:18 He shall be driven from light into darkness, and chased out of -the world. - -18:19 He shall neither have son nor nephew among his people, nor any -remaining in his dwellings. - -18:20 They that come after him shall be astonied at his day, as they -that went before were affrighted. - -18:21 Surely such are the dwellings of the wicked, and this is the -place of him that knoweth not God. - -19:1 Then Job answered and said, 19:2 How long will ye vex my soul, -and break me in pieces with words? 19:3 These ten times have ye -reproached me: ye are not ashamed that ye make yourselves strange to -me. - -19:4 And be it indeed that I have erred, mine error remaineth with -myself. - -19:5 If indeed ye will magnify yourselves against me, and plead -against me my reproach: 19:6 Know now that God hath overthrown me, and -hath compassed me with his net. - -19:7 Behold, I cry out of wrong, but I am not heard: I cry aloud, but -there is no judgment. - -19:8 He hath fenced up my way that I cannot pass, and he hath set -darkness in my paths. - -19:9 He hath stripped me of my glory, and taken the crown from my -head. - -19:10 He hath destroyed me on every side, and I am gone: and mine hope -hath he removed like a tree. - -19:11 He hath also kindled his wrath against me, and he counteth me -unto him as one of his enemies. - -19:12 His troops come together, and raise up their way against me, and -encamp round about my tabernacle. - -19:13 He hath put my brethren far from me, and mine acquaintance are -verily estranged from me. - -19:14 My kinsfolk have failed, and my familiar friends have forgotten -me. - -19:15 They that dwell in mine house, and my maids, count me for a -stranger: I am an alien in their sight. - -19:16 I called my servant, and he gave me no answer; I intreated him -with my mouth. - -19:17 My breath is strange to my wife, though I intreated for the -children's sake of mine own body. - -19:18 Yea, young children despised me; I arose, and they spake against -me. - -19:19 All my inward friends abhorred me: and they whom I loved are -turned against me. - -19:20 My bone cleaveth to my skin and to my flesh, and I am escaped -with the skin of my teeth. - -19:21 Have pity upon me, have pity upon me, O ye my friends; for the -hand of God hath touched me. - -19:22 Why do ye persecute me as God, and are not satisfied with my -flesh? 19:23 Oh that my words were now written! oh that they were -printed in a book! 19:24 That they were graven with an iron pen and -lead in the rock for ever! 19:25 For I know that my redeemer liveth, -and that he shall stand at the latter day upon the earth: 19:26 And -though after my skin worms destroy this body, yet in my flesh shall I -see God: 19:27 Whom I shall see for myself, and mine eyes shall -behold, and not another; though my reins be consumed within me. - -19:28 But ye should say, Why persecute we him, seeing the root of the -matter is found in me? 19:29 Be ye afraid of the sword: for wrath -bringeth the punishments of the sword, that ye may know there is a -judgment. - -20:1 Then answered Zophar the Naamathite, and said, 20:2 Therefore do -my thoughts cause me to answer, and for this I make haste. - -20:3 I have heard the check of my reproach, and the spirit of my -understanding causeth me to answer. - -20:4 Knowest thou not this of old, since man was placed upon earth, -20:5 That the triumphing of the wicked is short, and the joy of the -hypocrite but for a moment? 20:6 Though his excellency mount up to -the heavens, and his head reach unto the clouds; 20:7 Yet he shall -perish for ever like his own dung: they which have seen him shall say, -Where is he? 20:8 He shall fly away as a dream, and shall not be -found: yea, he shall be chased away as a vision of the night. - -20:9 The eye also which saw him shall see him no more; neither shall -his place any more behold him. - -20:10 His children shall seek to please the poor, and his hands shall -restore their goods. - -20:11 His bones are full of the sin of his youth, which shall lie down -with him in the dust. - -20:12 Though wickedness be sweet in his mouth, though he hide it under -his tongue; 20:13 Though he spare it, and forsake it not; but keep it -still within his mouth: 20:14 Yet his meat in his bowels is turned, it -is the gall of asps within him. - -20:15 He hath swallowed down riches, and he shall vomit them up again: -God shall cast them out of his belly. - -20:16 He shall suck the poison of asps: the viper's tongue shall slay -him. - -20:17 He shall not see the rivers, the floods, the brooks of honey and -butter. - -20:18 That which he laboured for shall he restore, and shall not -swallow it down: according to his substance shall the restitution be, -and he shall not rejoice therein. - -20:19 Because he hath oppressed and hath forsaken the poor; because he -hath violently taken away an house which he builded not; 20:20 Surely -he shall not feel quietness in his belly, he shall not save of that -which he desired. - -20:21 There shall none of his meat be left; therefore shall no man -look for his goods. - -20:22 In the fulness of his sufficiency he shall be in straits: every -hand of the wicked shall come upon him. - -20:23 When he is about to fill his belly, God shall cast the fury of -his wrath upon him, and shall rain it upon him while he is eating. - -20:24 He shall flee from the iron weapon, and the bow of steel shall -strike him through. - -20:25 It is drawn, and cometh out of the body; yea, the glittering -sword cometh out of his gall: terrors are upon him. - -20:26 All darkness shall be hid in his secret places: a fire not blown -shall consume him; it shall go ill with him that is left in his -tabernacle. - -20:27 The heaven shall reveal his iniquity; and the earth shall rise -up against him. - -20:28 The increase of his house shall depart, and his goods shall flow -away in the day of his wrath. - -20:29 This is the portion of a wicked man from God, and the heritage -appointed unto him by God. - -21:1 But Job answered and said, 21:2 Hear diligently my speech, and -let this be your consolations. - -21:3 Suffer me that I may speak; and after that I have spoken, mock -on. - -21:4 As for me, is my complaint to man? and if it were so, why should -not my spirit be troubled? 21:5 Mark me, and be astonished, and lay -your hand upon your mouth. - -21:6 Even when I remember I am afraid, and trembling taketh hold on my -flesh. - -21:7 Wherefore do the wicked live, become old, yea, are mighty in -power? 21:8 Their seed is established in their sight with them, and -their offspring before their eyes. - -21:9 Their houses are safe from fear, neither is the rod of God upon -them. - -21:10 Their bull gendereth, and faileth not; their cow calveth, and -casteth not her calf. - -21:11 They send forth their little ones like a flock, and their -children dance. - -21:12 They take the timbrel and harp, and rejoice at the sound of the -organ. - -21:13 They spend their days in wealth, and in a moment go down to the -grave. - -21:14 Therefore they say unto God, Depart from us; for we desire not -the knowledge of thy ways. - -21:15 What is the Almighty, that we should serve him? and what profit -should we have, if we pray unto him? 21:16 Lo, their good is not in -their hand: the counsel of the wicked is far from me. - -21:17 How oft is the candle of the wicked put out! and how oft cometh -their destruction upon them! God distributeth sorrows in his anger. - -21:18 They are as stubble before the wind, and as chaff that the storm -carrieth away. - -21:19 God layeth up his iniquity for his children: he rewardeth him, -and he shall know it. - -21:20 His eyes shall see his destruction, and he shall drink of the -wrath of the Almighty. - -21:21 For what pleasure hath he in his house after him, when the -number of his months is cut off in the midst? 21:22 Shall any teach -God knowledge? seeing he judgeth those that are high. - -21:23 One dieth in his full strength, being wholly at ease and quiet. - -21:24 His breasts are full of milk, and his bones are moistened with -marrow. - -21:25 And another dieth in the bitterness of his soul, and never -eateth with pleasure. - -21:26 They shall lie down alike in the dust, and the worms shall cover -them. - -21:27 Behold, I know your thoughts, and the devices which ye -wrongfully imagine against me. - -21:28 For ye say, Where is the house of the prince? and where are the -dwelling places of the wicked? 21:29 Have ye not asked them that go -by the way? and do ye not know their tokens, 21:30 That the wicked is -reserved to the day of destruction? they shall be brought forth to the -day of wrath. - -21:31 Who shall declare his way to his face? and who shall repay him -what he hath done? 21:32 Yet shall he be brought to the grave, and -shall remain in the tomb. - -21:33 The clods of the valley shall be sweet unto him, and every man -shall draw after him, as there are innumerable before him. - -21:34 How then comfort ye me in vain, seeing in your answers there -remaineth falsehood? 22:1 Then Eliphaz the Temanite answered and -said, 22:2 Can a man be profitable unto God, as he that is wise may be -profitable unto himself? 22:3 Is it any pleasure to the Almighty, -that thou art righteous? or is it gain to him, that thou makest thy -ways perfect? 22:4 Will he reprove thee for fear of thee? will he -enter with thee into judgment? 22:5 Is not thy wickedness great? and -thine iniquities infinite? 22:6 For thou hast taken a pledge from thy -brother for nought, and stripped the naked of their clothing. - -22:7 Thou hast not given water to the weary to drink, and thou hast -withholden bread from the hungry. - -22:8 But as for the mighty man, he had the earth; and the honourable -man dwelt in it. - -22:9 Thou hast sent widows away empty, and the arms of the fatherless -have been broken. - -22:10 Therefore snares are round about thee, and sudden fear troubleth -thee; 22:11 Or darkness, that thou canst not see; and abundance of -waters cover thee. - -22:12 Is not God in the height of heaven? and behold the height of the -stars, how high they are! 22:13 And thou sayest, How doth God know? -can he judge through the dark cloud? 22:14 Thick clouds are a -covering to him, that he seeth not; and he walketh in the circuit of -heaven. - -22:15 Hast thou marked the old way which wicked men have trodden? -22:16 Which were cut down out of time, whose foundation was overflown -with a flood: 22:17 Which said unto God, Depart from us: and what can -the Almighty do for them? 22:18 Yet he filled their houses with good -things: but the counsel of the wicked is far from me. - -22:19 The righteous see it, and are glad: and the innocent laugh them -to scorn. - -22:20 Whereas our substance is not cut down, but the remnant of them -the fire consumeth. - -22:21 Acquaint now thyself with him, and be at peace: thereby good -shall come unto thee. - -22:22 Receive, I pray thee, the law from his mouth, and lay up his -words in thine heart. - -22:23 If thou return to the Almighty, thou shalt be built up, thou -shalt put away iniquity far from thy tabernacles. - -22:24 Then shalt thou lay up gold as dust, and the gold of Ophir as -the stones of the brooks. - -22:25 Yea, the Almighty shall be thy defence, and thou shalt have -plenty of silver. - -22:26 For then shalt thou have thy delight in the Almighty, and shalt -lift up thy face unto God. - -22:27 Thou shalt make thy prayer unto him, and he shall hear thee, and -thou shalt pay thy vows. - -22:28 Thou shalt also decree a thing, and it shall be established unto -thee: and the light shall shine upon thy ways. - -22:29 When men are cast down, then thou shalt say, There is lifting -up; and he shall save the humble person. - -22:30 He shall deliver the island of the innocent: and it is delivered -by the pureness of thine hands. - -23:1 Then Job answered and said, 23:2 Even to day is my complaint -bitter: my stroke is heavier than my groaning. - -23:3 Oh that I knew where I might find him! that I might come even to -his seat! 23:4 I would order my cause before him, and fill my mouth -with arguments. - -23:5 I would know the words which he would answer me, and understand -what he would say unto me. - -23:6 Will he plead against me with his great power? No; but he would -put strength in me. - -23:7 There the righteous might dispute with him; so should I be -delivered for ever from my judge. - -23:8 Behold, I go forward, but he is not there; and backward, but I -cannot perceive him: 23:9 On the left hand, where he doth work, but I -cannot behold him: he hideth himself on the right hand, that I cannot -see him: 23:10 But he knoweth the way that I take: when he hath tried -me, I shall come forth as gold. - -23:11 My foot hath held his steps, his way have I kept, and not -declined. - -23:12 Neither have I gone back from the commandment of his lips; I -have esteemed the words of his mouth more than my necessary food. - -23:13 But he is in one mind, and who can turn him? and what his soul -desireth, even that he doeth. - -23:14 For he performeth the thing that is appointed for me: and many -such things are with him. - -23:15 Therefore am I troubled at his presence: when I consider, I am -afraid of him. - -23:16 For God maketh my heart soft, and the Almighty troubleth me: -23:17 Because I was not cut off before the darkness, neither hath he -covered the darkness from my face. - -24:1 Why, seeing times are not hidden from the Almighty, do they that -know him not see his days? 24:2 Some remove the landmarks; they -violently take away flocks, and feed thereof. - -24:3 They drive away the ass of the fatherless, they take the widow's -ox for a pledge. - -24:4 They turn the needy out of the way: the poor of the earth hide -themselves together. - -24:5 Behold, as wild asses in the desert, go they forth to their work; -rising betimes for a prey: the wilderness yieldeth food for them and -for their children. - -24:6 They reap every one his corn in the field: and they gather the -vintage of the wicked. - -24:7 They cause the naked to lodge without clothing, that they have no -covering in the cold. - -24:8 They are wet with the showers of the mountains, and embrace the -rock for want of a shelter. - -24:9 They pluck the fatherless from the breast, and take a pledge of -the poor. - -24:10 They cause him to go naked without clothing, and they take away -the sheaf from the hungry; 24:11 Which make oil within their walls, -and tread their winepresses, and suffer thirst. - -24:12 Men groan from out of the city, and the soul of the wounded -crieth out: yet God layeth not folly to them. - -24:13 They are of those that rebel against the light; they know not -the ways thereof, nor abide in the paths thereof. - -24:14 The murderer rising with the light killeth the poor and needy, -and in the night is as a thief. - -24:15 The eye also of the adulterer waiteth for the twilight, saying, -No eye shall see me: and disguiseth his face. - -24:16 In the dark they dig through houses, which they had marked for -themselves in the daytime: they know not the light. - -24:17 For the morning is to them even as the shadow of death: if one -know them, they are in the terrors of the shadow of death. - -24:18 He is swift as the waters; their portion is cursed in the earth: -he beholdeth not the way of the vineyards. - -24:19 Drought and heat consume the snow waters: so doth the grave -those which have sinned. - -24:20 The womb shall forget him; the worm shall feed sweetly on him; -he shall be no more remembered; and wickedness shall be broken as a -tree. - -24:21 He evil entreateth the barren that beareth not: and doeth not -good to the widow. - -24:22 He draweth also the mighty with his power: he riseth up, and no -man is sure of life. - -24:23 Though it be given him to be in safety, whereon he resteth; yet -his eyes are upon their ways. - -24:24 They are exalted for a little while, but are gone and brought -low; they are taken out of the way as all other, and cut off as the -tops of the ears of corn. - -24:25 And if it be not so now, who will make me a liar, and make my -speech nothing worth? 25:1 Then answered Bildad the Shuhite, and -said, 25:2 Dominion and fear are with him, he maketh peace in his high -places. - -25:3 Is there any number of his armies? and upon whom doth not his -light arise? 25:4 How then can man be justified with God? or how can -he be clean that is born of a woman? 25:5 Behold even to the moon, -and it shineth not; yea, the stars are not pure in his sight. - -25:6 How much less man, that is a worm? and the son of man, which is a -worm? 26:1 But Job answered and said, 26:2 How hast thou helped him -that is without power? how savest thou the arm that hath no strength? -26:3 How hast thou counselled him that hath no wisdom? and how hast -thou plentifully declared the thing as it is? 26:4 To whom hast thou -uttered words? and whose spirit came from thee? 26:5 Dead things are -formed from under the waters, and the inhabitants thereof. - -26:6 Hell is naked before him, and destruction hath no covering. - -26:7 He stretcheth out the north over the empty place, and hangeth the -earth upon nothing. - -26:8 He bindeth up the waters in his thick clouds; and the cloud is -not rent under them. - -26:9 He holdeth back the face of his throne, and spreadeth his cloud -upon it. - -26:10 He hath compassed the waters with bounds, until the day and -night come to an end. - -26:11 The pillars of heaven tremble and are astonished at his reproof. - -26:12 He divideth the sea with his power, and by his understanding he -smiteth through the proud. - -26:13 By his spirit he hath garnished the heavens; his hand hath -formed the crooked serpent. - -26:14 Lo, these are parts of his ways: but how little a portion is -heard of him? but the thunder of his power who can understand? 27:1 -Moreover Job continued his parable, and said, 27:2 As God liveth, who -hath taken away my judgment; and the Almighty, who hath vexed my soul; -27:3 All the while my breath is in me, and the spirit of God is in my -nostrils; 27:4 My lips shall not speak wickedness, nor my tongue utter -deceit. - -27:5 God forbid that I should justify you: till I die I will not -remove mine integrity from me. - -27:6 My righteousness I hold fast, and will not let it go: my heart -shall not reproach me so long as I live. - -27:7 Let mine enemy be as the wicked, and he that riseth up against me -as the unrighteous. - -27:8 For what is the hope of the hypocrite, though he hath gained, -when God taketh away his soul? 27:9 Will God hear his cry when -trouble cometh upon him? 27:10 Will he delight himself in the -Almighty? will he always call upon God? 27:11 I will teach you by the -hand of God: that which is with the Almighty will I not conceal. - -27:12 Behold, all ye yourselves have seen it; why then are ye thus -altogether vain? 27:13 This is the portion of a wicked man with God, -and the heritage of oppressors, which they shall receive of the -Almighty. - -27:14 If his children be multiplied, it is for the sword: and his -offspring shall not be satisfied with bread. - -27:15 Those that remain of him shall be buried in death: and his -widows shall not weep. - -27:16 Though he heap up silver as the dust, and prepare raiment as the -clay; 27:17 He may prepare it, but the just shall put it on, and the -innocent shall divide the silver. - -27:18 He buildeth his house as a moth, and as a booth that the keeper -maketh. - -27:19 The rich man shall lie down, but he shall not be gathered: he -openeth his eyes, and he is not. - -27:20 Terrors take hold on him as waters, a tempest stealeth him away -in the night. - -27:21 The east wind carrieth him away, and he departeth: and as a -storm hurleth him out of his place. - -27:22 For God shall cast upon him, and not spare: he would fain flee -out of his hand. - -27:23 Men shall clap their hands at him, and shall hiss him out of his -place. - -28:1 Surely there is a vein for the silver, and a place for gold where -they fine it. - -28:2 Iron is taken out of the earth, and brass is molten out of the -stone. - -28:3 He setteth an end to darkness, and searcheth out all perfection: -the stones of darkness, and the shadow of death. - -28:4 The flood breaketh out from the inhabitant; even the waters -forgotten of the foot: they are dried up, they are gone away from men. - -28:5 As for the earth, out of it cometh bread: and under it is turned -up as it were fire. - -28:6 The stones of it are the place of sapphires: and it hath dust of -gold. - -28:7 There is a path which no fowl knoweth, and which the vulture's -eye hath not seen: 28:8 The lion's whelps have not trodden it, nor the -fierce lion passed by it. - -28:9 He putteth forth his hand upon the rock; he overturneth the -mountains by the roots. - -28:10 He cutteth out rivers among the rocks; and his eye seeth every -precious thing. - -28:11 He bindeth the floods from overflowing; and the thing that is -hid bringeth he forth to light. - -28:12 But where shall wisdom be found? and where is the place of -understanding? 28:13 Man knoweth not the price thereof; neither is it -found in the land of the living. - -28:14 The depth saith, It is not in me: and the sea saith, It is not -with me. - -28:15 It cannot be gotten for gold, neither shall silver be weighed -for the price thereof. - -28:16 It cannot be valued with the gold of Ophir, with the precious -onyx, or the sapphire. - -28:17 The gold and the crystal cannot equal it: and the exchange of it -shall not be for jewels of fine gold. - -28:18 No mention shall be made of coral, or of pearls: for the price -of wisdom is above rubies. - -28:19 The topaz of Ethiopia shall not equal it, neither shall it be -valued with pure gold. - -28:20 Whence then cometh wisdom? and where is the place of -understanding? 28:21 Seeing it is hid from the eyes of all living, -and kept close from the fowls of the air. - -28:22 Destruction and death say, We have heard the fame thereof with -our ears. - -28:23 God understandeth the way thereof, and he knoweth the place -thereof. - -28:24 For he looketh to the ends of the earth, and seeth under the -whole heaven; 28:25 To make the weight for the winds; and he weigheth -the waters by measure. - -28:26 When he made a decree for the rain, and a way for the lightning -of the thunder: 28:27 Then did he see it, and declare it; he prepared -it, yea, and searched it out. - -28:28 And unto man he said, Behold, the fear of the LORD, that is -wisdom; and to depart from evil is understanding. - -29:1 Moreover Job continued his parable, and said, 29:2 Oh that I were -as in months past, as in the days when God preserved me; 29:3 When his -candle shined upon my head, and when by his light I walked through -darkness; 29:4 As I was in the days of my youth, when the secret of -God was upon my tabernacle; 29:5 When the Almighty was yet with me, -when my children were about me; 29:6 When I washed my steps with -butter, and the rock poured me out rivers of oil; 29:7 When I went out -to the gate through the city, when I prepared my seat in the street! -29:8 The young men saw me, and hid themselves: and the aged arose, and -stood up. - -29:9 The princes refrained talking, and laid their hand on their -mouth. - -29:10 The nobles held their peace, and their tongue cleaved to the -roof of their mouth. - -29:11 When the ear heard me, then it blessed me; and when the eye saw -me, it gave witness to me: 29:12 Because I delivered the poor that -cried, and the fatherless, and him that had none to help him. - -29:13 The blessing of him that was ready to perish came upon me: and I -caused the widow's heart to sing for joy. - -29:14 I put on righteousness, and it clothed me: my judgment was as a -robe and a diadem. - -29:15 I was eyes to the blind, and feet was I to the lame. - -29:16 I was a father to the poor: and the cause which I knew not I -searched out. - -29:17 And I brake the jaws of the wicked, and plucked the spoil out of -his teeth. - -29:18 Then I said, I shall die in my nest, and I shall multiply my -days as the sand. - -29:19 My root was spread out by the waters, and the dew lay all night -upon my branch. - -29:20 My glory was fresh in me, and my bow was renewed in my hand. - -29:21 Unto me men gave ear, and waited, and kept silence at my -counsel. - -29:22 After my words they spake not again; and my speech dropped upon -them. - -29:23 And they waited for me as for the rain; and they opened their -mouth wide as for the latter rain. - -29:24 If I laughed on them, they believed it not; and the light of my -countenance they cast not down. - -29:25 I chose out their way, and sat chief, and dwelt as a king in the -army, as one that comforteth the mourners. - -30:1 But now they that are younger than I have me in derision, whose -fathers I would have disdained to have set with the dogs of my flock. - -30:2 Yea, whereto might the strength of their hands profit me, in whom -old age was perished? 30:3 For want and famine they were solitary; -fleeing into the wilderness in former time desolate and waste. - -30:4 Who cut up mallows by the bushes, and juniper roots for their -meat. - -30:5 They were driven forth from among men, (they cried after them as -after a thief;) 30:6 To dwell in the cliffs of the valleys, in caves -of the earth, and in the rocks. - -30:7 Among the bushes they brayed; under the nettles they were -gathered together. - -30:8 They were children of fools, yea, children of base men: they were -viler than the earth. - -30:9 And now am I their song, yea, I am their byword. - -30:10 They abhor me, they flee far from me, and spare not to spit in -my face. - -30:11 Because he hath loosed my cord, and afflicted me, they have also -let loose the bridle before me. - -30:12 Upon my right hand rise the youth; they push away my feet, and -they raise up against me the ways of their destruction. - -30:13 They mar my path, they set forward my calamity, they have no -helper. - -30:14 They came upon me as a wide breaking in of waters: in the -desolation they rolled themselves upon me. - -30:15 Terrors are turned upon me: they pursue my soul as the wind: and -my welfare passeth away as a cloud. - -30:16 And now my soul is poured out upon me; the days of affliction -have taken hold upon me. - -30:17 My bones are pierced in me in the night season: and my sinews -take no rest. - -30:18 By the great force of my disease is my garment changed: it -bindeth me about as the collar of my coat. - -30:19 He hath cast me into the mire, and I am become like dust and -ashes. - -30:20 I cry unto thee, and thou dost not hear me: I stand up, and thou -regardest me not. - -30:21 Thou art become cruel to me: with thy strong hand thou opposest -thyself against me. - -30:22 Thou liftest me up to the wind; thou causest me to ride upon it, -and dissolvest my substance. - -30:23 For I know that thou wilt bring me to death, and to the house -appointed for all living. - -30:24 Howbeit he will not stretch out his hand to the grave, though -they cry in his destruction. - -30:25 Did not I weep for him that was in trouble? was not my soul -grieved for the poor? 30:26 When I looked for good, then evil came -unto me: and when I waited for light, there came darkness. - -30:27 My bowels boiled, and rested not: the days of affliction -prevented me. - -30:28 I went mourning without the sun: I stood up, and I cried in the -congregation. - -30:29 I am a brother to dragons, and a companion to owls. - -30:30 My skin is black upon me, and my bones are burned with heat. - -30:31 My harp also is turned to mourning, and my organ into the voice -of them that weep. - -31:1 I made a covenant with mine eyes; why then should I think upon a -maid? 31:2 For what portion of God is there from above? and what -inheritance of the Almighty from on high? 31:3 Is not destruction to -the wicked? and a strange punishment to the workers of iniquity? 31:4 -Doth not he see my ways, and count all my steps? 31:5 If I have -walked with vanity, or if my foot hath hasted to deceit; 31:6 Let me -be weighed in an even balance that God may know mine integrity. - -31:7 If my step hath turned out of the way, and mine heart walked -after mine eyes, and if any blot hath cleaved to mine hands; 31:8 Then -let me sow, and let another eat; yea, let my offspring be rooted out. - -31:9 If mine heart have been deceived by a woman, or if I have laid -wait at my neighbour's door; 31:10 Then let my wife grind unto -another, and let others bow down upon her. - -31:11 For this is an heinous crime; yea, it is an iniquity to be -punished by the judges. - -31:12 For it is a fire that consumeth to destruction, and would root -out all mine increase. - -31:13 If I did despise the cause of my manservant or of my -maidservant, when they contended with me; 31:14 What then shall I do -when God riseth up? and when he visiteth, what shall I answer him? -31:15 Did not he that made me in the womb make him? and did not one -fashion us in the womb? 31:16 If I have withheld the poor from their -desire, or have caused the eyes of the widow to fail; 31:17 Or have -eaten my morsel myself alone, and the fatherless hath not eaten -thereof; 31:18 (For from my youth he was brought up with me, as with a -father, and I have guided her from my mother's womb;) 31:19 If I have -seen any perish for want of clothing, or any poor without covering; -31:20 If his loins have not blessed me, and if he were not warmed with -the fleece of my sheep; 31:21 If I have lifted up my hand against the -fatherless, when I saw my help in the gate: 31:22 Then let mine arm -fall from my shoulder blade, and mine arm be broken from the bone. - -31:23 For destruction from God was a terror to me, and by reason of -his highness I could not endure. - -31:24 If I have made gold my hope, or have said to the fine gold, Thou -art my confidence; 31:25 If I rejoice because my wealth was great, and -because mine hand had gotten much; 31:26 If I beheld the sun when it -shined, or the moon walking in brightness; 31:27 And my heart hath -been secretly enticed, or my mouth hath kissed my hand: 31:28 This -also were an iniquity to be punished by the judge: for I should have -denied the God that is above. - -31:29 If I rejoice at the destruction of him that hated me, or lifted -up myself when evil found him: 31:30 Neither have I suffered my mouth -to sin by wishing a curse to his soul. - -31:31 If the men of my tabernacle said not, Oh that we had of his -flesh! we cannot be satisfied. - -31:32 The stranger did not lodge in the street: but I opened my doors -to the traveller. - -31:33 If I covered my transgressions as Adam, by hiding mine iniquity -in my bosom: 31:34 Did I fear a great multitude, or did the contempt -of families terrify me, that I kept silence, and went not out of the -door? 31:35 Oh that one would hear me! behold, my desire is, that the -Almighty would answer me, and that mine adversary had written a book. - -31:36 Surely I would take it upon my shoulder, and bind it as a crown -to me. - -31:37 I would declare unto him the number of my steps; as a prince -would I go near unto him. - -31:38 If my land cry against me, or that the furrows likewise thereof -complain; 31:39 If I have eaten the fruits thereof without money, or -have caused the owners thereof to lose their life: 31:40 Let thistles -grow instead of wheat, and cockle instead of barley. - -The words of Job are ended. - -32:1 So these three men ceased to answer Job, because he was righteous -in his own eyes. - -32:2 Then was kindled the wrath of Elihu the son of Barachel the -Buzite, of the kindred of Ram: against Job was his wrath kindled, -because he justified himself rather than God. - -32:3 Also against his three friends was his wrath kindled, because -they had found no answer, and yet had condemned Job. - -32:4 Now Elihu had waited till Job had spoken, because they were elder -than he. - -32:5 When Elihu saw that there was no answer in the mouth of these -three men, then his wrath was kindled. - -32:6 And Elihu the son of Barachel the Buzite answered and said, I am -young, and ye are very old; wherefore I was afraid, and durst not shew -you mine opinion. - -32:7 I said, Days should speak, and multitude of years should teach -wisdom. - -32:8 But there is a spirit in man: and the inspiration of the Almighty -giveth them understanding. - -32:9 Great men are not always wise: neither do the aged understand -judgment. - -32:10 Therefore I said, Hearken to me; I also will shew mine opinion. - -32:11 Behold, I waited for your words; I gave ear to your reasons, -whilst ye searched out what to say. - -32:12 Yea, I attended unto you, and, behold, there was none of you -that convinced Job, or that answered his words: 32:13 Lest ye should -say, We have found out wisdom: God thrusteth him down, not man. - -32:14 Now he hath not directed his words against me: neither will I -answer him with your speeches. - -32:15 They were amazed, they answered no more: they left off speaking. - -32:16 When I had waited, (for they spake not, but stood still, and -answered no more;) 32:17 I said, I will answer also my part, I also -will shew mine opinion. - -32:18 For I am full of matter, the spirit within me constraineth me. - -32:19 Behold, my belly is as wine which hath no vent; it is ready to -burst like new bottles. - -32:20 I will speak, that I may be refreshed: I will open my lips and -answer. - -32:21 Let me not, I pray you, accept any man's person, neither let me -give flattering titles unto man. - -32:22 For I know not to give flattering titles; in so doing my maker -would soon take me away. - -33:1 Wherefore, Job, I pray thee, hear my speeches, and hearken to all -my words. - -33:2 Behold, now I have opened my mouth, my tongue hath spoken in my -mouth. - -33:3 My words shall be of the uprightness of my heart: and my lips -shall utter knowledge clearly. - -33:4 The spirit of God hath made me, and the breath of the Almighty -hath given me life. - -33:5 If thou canst answer me, set thy words in order before me, stand -up. - -33:6 Behold, I am according to thy wish in God's stead: I also am -formed out of the clay. - -33:7 Behold, my terror shall not make thee afraid, neither shall my -hand be heavy upon thee. - -33:8 Surely thou hast spoken in mine hearing, and I have heard the -voice of thy words, saying, 33:9 I am clean without transgression, I -am innocent; neither is there iniquity in me. - -33:10 Behold, he findeth occasions against me, he counteth me for his -enemy, 33:11 He putteth my feet in the stocks, he marketh all my -paths. - -33:12 Behold, in this thou art not just: I will answer thee, that God -is greater than man. - -33:13 Why dost thou strive against him? for he giveth not account of -any of his matters. - -33:14 For God speaketh once, yea twice, yet man perceiveth it not. - -33:15 In a dream, in a vision of the night, when deep sleep falleth -upon men, in slumberings upon the bed; 33:16 Then he openeth the ears -of men, and sealeth their instruction, 33:17 That he may withdraw man -from his purpose, and hide pride from man. - -33:18 He keepeth back his soul from the pit, and his life from -perishing by the sword. - -33:19 He is chastened also with pain upon his bed, and the multitude -of his bones with strong pain: 33:20 So that his life abhorreth bread, -and his soul dainty meat. - -33:21 His flesh is consumed away, that it cannot be seen; and his -bones that were not seen stick out. - -33:22 Yea, his soul draweth near unto the grave, and his life to the -destroyers. - -33:23 If there be a messenger with him, an interpreter, one among a -thousand, to shew unto man his uprightness: 33:24 Then he is gracious -unto him, and saith, Deliver him from going down to the pit: I have -found a ransom. - -33:25 His flesh shall be fresher than a child's: he shall return to -the days of his youth: 33:26 He shall pray unto God, and he will be -favourable unto him: and he shall see his face with joy: for he will -render unto man his righteousness. - -33:27 He looketh upon men, and if any say, I have sinned, and -perverted that which was right, and it profited me not; 33:28 He will -deliver his soul from going into the pit, and his life shall see the -light. - -33:29 Lo, all these things worketh God oftentimes with man, 33:30 To -bring back his soul from the pit, to be enlightened with the light of -the living. - -33:31 Mark well, O Job, hearken unto me: hold thy peace, and I will -speak. - -33:32 If thou hast anything to say, answer me: speak, for I desire to -justify thee. - -33:33 If not, hearken unto me: hold thy peace, and I shall teach thee -wisdom. - -34:1 Furthermore Elihu answered and said, 34:2 Hear my words, O ye -wise men; and give ear unto me, ye that have knowledge. - -34:3 For the ear trieth words, as the mouth tasteth meat. - -34:4 Let us choose to us judgment: let us know among ourselves what is -good. - -34:5 For Job hath said, I am righteous: and God hath taken away my -judgment. - -34:6 Should I lie against my right? my wound is incurable without -transgression. - -34:7 What man is like Job, who drinketh up scorning like water? 34:8 -Which goeth in company with the workers of iniquity, and walketh with -wicked men. - -34:9 For he hath said, It profiteth a man nothing that he should -delight himself with God. - -34:10 Therefore hearken unto me ye men of understanding: far be it -from God, that he should do wickedness; and from the Almighty, that he -should commit iniquity. - -34:11 For the work of a man shall he render unto him, and cause every -man to find according to his ways. - -34:12 Yea, surely God will not do wickedly, neither will the Almighty -pervert judgment. - -34:13 Who hath given him a charge over the earth? or who hath disposed -the whole world? 34:14 If he set his heart upon man, if he gather -unto himself his spirit and his breath; 34:15 All flesh shall perish -together, and man shall turn again unto dust. - -34:16 If now thou hast understanding, hear this: hearken to the voice -of my words. - -34:17 Shall even he that hateth right govern? and wilt thou condemn -him that is most just? 34:18 Is it fit to say to a king, Thou art -wicked? and to princes, Ye are ungodly? 34:19 How much less to him -that accepteth not the persons of princes, nor regardeth the rich more -than the poor? for they all are the work of his hands. - -34:20 In a moment shall they die, and the people shall be troubled at -midnight, and pass away: and the mighty shall be taken away without -hand. - -34:21 For his eyes are upon the ways of man, and he seeth all his -goings. - -34:22 There is no darkness, nor shadow of death, where the workers of -iniquity may hide themselves. - -34:23 For he will not lay upon man more than right; that he should -enter into judgment with God. - -34:24 He shall break in pieces mighty men without number, and set -others in their stead. - -34:25 Therefore he knoweth their works, and he overturneth them in the -night, so that they are destroyed. - -34:26 He striketh them as wicked men in the open sight of others; -34:27 Because they turned back from him, and would not consider any of -his ways: 34:28 So that they cause the cry of the poor to come unto -him, and he heareth the cry of the afflicted. - -34:29 When he giveth quietness, who then can make trouble? and when he -hideth his face, who then can behold him? whether it be done against a -nation, or against a man only: 34:30 That the hypocrite reign not, -lest the people be ensnared. - -34:31 Surely it is meet to be said unto God, I have borne -chastisement, I will not offend any more: 34:32 That which I see not -teach thou me: if I have done iniquity, I will do no more. - -34:33 Should it be according to thy mind? he will recompense it, -whether thou refuse, or whether thou choose; and not I: therefore -speak what thou knowest. - -34:34 Let men of understanding tell me, and let a wise man hearken -unto me. - -34:35 Job hath spoken without knowledge, and his words were without -wisdom. - -34:36 My desire is that Job may be tried unto the end because of his -answers for wicked men. - -34:37 For he addeth rebellion unto his sin, he clappeth his hands -among us, and multiplieth his words against God. - -35:1 Elihu spake moreover, and said, 35:2 Thinkest thou this to be -right, that thou saidst, My righteousness is more than God's? 35:3 -For thou saidst, What advantage will it be unto thee? and, What profit -shall I have, if I be cleansed from my sin? 35:4 I will answer thee, -and thy companions with thee. - -35:5 Look unto the heavens, and see; and behold the clouds which are -higher than thou. - -35:6 If thou sinnest, what doest thou against him? or if thy -transgressions be multiplied, what doest thou unto him? 35:7 If thou -be righteous, what givest thou him? or what receiveth he of thine -hand? 35:8 Thy wickedness may hurt a man as thou art; and thy -righteousness may profit the son of man. - -35:9 By reason of the multitude of oppressions they make the oppressed -to cry: they cry out by reason of the arm of the mighty. - -35:10 But none saith, Where is God my maker, who giveth songs in the -night; 35:11 Who teacheth us more than the beasts of the earth, and -maketh us wiser than the fowls of heaven? 35:12 There they cry, but -none giveth answer, because of the pride of evil men. - -35:13 Surely God will not hear vanity, neither will the Almighty -regard it. - -35:14 Although thou sayest thou shalt not see him, yet judgment is -before him; therefore trust thou in him. - -35:15 But now, because it is not so, he hath visited in his anger; yet -he knoweth it not in great extremity: 35:16 Therefore doth Job open -his mouth in vain; he multiplieth words without knowledge. - -36:1 Elihu also proceeded, and said, 36:2 Suffer me a little, and I -will shew thee that I have yet to speak on God's behalf. - -36:3 I will fetch my knowledge from afar, and will ascribe -righteousness to my Maker. - -36:4 For truly my words shall not be false: he that is perfect in -knowledge is with thee. - -36:5 Behold, God is mighty, and despiseth not any: he is mighty in -strength and wisdom. - -36:6 He preserveth not the life of the wicked: but giveth right to the -poor. - -36:7 He withdraweth not his eyes from the righteous: but with kings -are they on the throne; yea, he doth establish them for ever, and they -are exalted. - -36:8 And if they be bound in fetters, and be holden in cords of -affliction; 36:9 Then he sheweth them their work, and their -transgressions that they have exceeded. - -36:10 He openeth also their ear to discipline, and commandeth that -they return from iniquity. - -36:11 If they obey and serve him, they shall spend their days in -prosperity, and their years in pleasures. - -36:12 But if they obey not, they shall perish by the sword, and they -shall die without knowledge. - -36:13 But the hypocrites in heart heap up wrath: they cry not when he -bindeth them. - -36:14 They die in youth, and their life is among the unclean. - -36:15 He delivereth the poor in his affliction, and openeth their ears -in oppression. - -36:16 Even so would he have removed thee out of the strait into a -broad place, where there is no straitness; and that which should be -set on thy table should be full of fatness. - -36:17 But thou hast fulfilled the judgment of the wicked: judgment and -justice take hold on thee. - -36:18 Because there is wrath, beware lest he take thee away with his -stroke: then a great ransom cannot deliver thee. - -36:19 Will he esteem thy riches? no, not gold, nor all the forces of -strength. - -36:20 Desire not the night, when people are cut off in their place. - -36:21 Take heed, regard not iniquity: for this hast thou chosen rather -than affliction. - -36:22 Behold, God exalteth by his power: who teacheth like him? 36:23 -Who hath enjoined him his way? or who can say, Thou hast wrought -iniquity? 36:24 Remember that thou magnify his work, which men -behold. - -36:25 Every man may see it; man may behold it afar off. - -36:26 Behold, God is great, and we know him not, neither can the -number of his years be searched out. - -36:27 For he maketh small the drops of water: they pour down rain -according to the vapour thereof: 36:28 Which the clouds do drop and -distil upon man abundantly. - -36:29 Also can any understand the spreadings of the clouds, or the -noise of his tabernacle? 36:30 Behold, he spreadeth his light upon -it, and covereth the bottom of the sea. - -36:31 For by them judgeth he the people; he giveth meat in abundance. - -36:32 With clouds he covereth the light; and commandeth it not to -shine by the cloud that cometh betwixt. - -36:33 The noise thereof sheweth concerning it, the cattle also -concerning the vapour. - -37:1 At this also my heart trembleth, and is moved out of his place. - -37:2 Hear attentively the noise of his voice, and the sound that goeth -out of his mouth. - -37:3 He directeth it under the whole heaven, and his lightning unto -the ends of the earth. - -37:4 After it a voice roareth: he thundereth with the voice of his -excellency; and he will not stay them when his voice is heard. - -37:5 God thundereth marvellously with his voice; great things doeth -he, which we cannot comprehend. - -37:6 For he saith to the snow, Be thou on the earth; likewise to the -small rain, and to the great rain of his strength. - -37:7 He sealeth up the hand of every man; that all men may know his -work. - -37:8 Then the beasts go into dens, and remain in their places. - -37:9 Out of the south cometh the whirlwind: and cold out of the north. - -37:10 By the breath of God frost is given: and the breadth of the -waters is straitened. - -37:11 Also by watering he wearieth the thick cloud: he scattereth his -bright cloud: 37:12 And it is turned round about by his counsels: that -they may do whatsoever he commandeth them upon the face of the world -in the earth. - -37:13 He causeth it to come, whether for correction, or for his land, -or for mercy. - -37:14 Hearken unto this, O Job: stand still, and consider the wondrous -works of God. - -37:15 Dost thou know when God disposed them, and caused the light of -his cloud to shine? 37:16 Dost thou know the balancings of the -clouds, the wondrous works of him which is perfect in knowledge? -37:17 How thy garments are warm, when he quieteth the earth by the -south wind? 37:18 Hast thou with him spread out the sky, which is -strong, and as a molten looking glass? 37:19 Teach us what we shall -say unto him; for we cannot order our speech by reason of darkness. - -37:20 Shall it be told him that I speak? if a man speak, surely he -shall be swallowed up. - -37:21 And now men see not the bright light which is in the clouds: but -the wind passeth, and cleanseth them. - -37:22 Fair weather cometh out of the north: with God is terrible -majesty. - -37:23 Touching the Almighty, we cannot find him out: he is excellent -in power, and in judgment, and in plenty of justice: he will not -afflict. - -37:24 Men do therefore fear him: he respecteth not any that are wise -of heart. - -38:1 Then the LORD answered Job out of the whirlwind, and said, 38:2 -Who is this that darkeneth counsel by words without knowledge? 38:3 -Gird up now thy loins like a man; for I will demand of thee, and -answer thou me. - -38:4 Where wast thou when I laid the foundations of the earth? -declare, if thou hast understanding. - -38:5 Who hath laid the measures thereof, if thou knowest? or who hath -stretched the line upon it? 38:6 Whereupon are the foundations -thereof fastened? or who laid the corner stone thereof; 38:7 When the -morning stars sang together, and all the sons of God shouted for joy? -38:8 Or who shut up the sea with doors, when it brake forth, as if it -had issued out of the womb? 38:9 When I made the cloud the garment -thereof, and thick darkness a swaddlingband for it, 38:10 And brake up -for it my decreed place, and set bars and doors, 38:11 And said, -Hitherto shalt thou come, but no further: and here shall thy proud -waves be stayed? 38:12 Hast thou commanded the morning since thy -days; and caused the dayspring to know his place; 38:13 That it might -take hold of the ends of the earth, that the wicked might be shaken -out of it? 38:14 It is turned as clay to the seal; and they stand as -a garment. - -38:15 And from the wicked their light is withholden, and the high arm -shall be broken. - -38:16 Hast thou entered into the springs of the sea? or hast thou -walked in the search of the depth? 38:17 Have the gates of death been -opened unto thee? or hast thou seen the doors of the shadow of death? -38:18 Hast thou perceived the breadth of the earth? declare if thou -knowest it all. - -38:19 Where is the way where light dwelleth? and as for darkness, -where is the place thereof, 38:20 That thou shouldest take it to the -bound thereof, and that thou shouldest know the paths to the house -thereof? 38:21 Knowest thou it, because thou wast then born? or -because the number of thy days is great? 38:22 Hast thou entered into -the treasures of the snow? or hast thou seen the treasures of the -hail, 38:23 Which I have reserved against the time of trouble, against -the day of battle and war? 38:24 By what way is the light parted, -which scattereth the east wind upon the earth? 38:25 Who hath divided -a watercourse for the overflowing of waters, or a way for the -lightning of thunder; 38:26 To cause it to rain on the earth, where no -man is; on the wilderness, wherein there is no man; 38:27 To satisfy -the desolate and waste ground; and to cause the bud of the tender herb -to spring forth? 38:28 Hath the rain a father? or who hath begotten -the drops of dew? 38:29 Out of whose womb came the ice? and the hoary -frost of heaven, who hath gendered it? 38:30 The waters are hid as -with a stone, and the face of the deep is frozen. - -38:31 Canst thou bind the sweet influences of Pleiades, or loose the -bands of Orion? 38:32 Canst thou bring forth Mazzaroth in his season? -or canst thou guide Arcturus with his sons? 38:33 Knowest thou the -ordinances of heaven? canst thou set the dominion thereof in the -earth? 38:34 Canst thou lift up thy voice to the clouds, that -abundance of waters may cover thee? 38:35 Canst thou send lightnings, -that they may go and say unto thee, Here we are? 38:36 Who hath put -wisdom in the inward parts? or who hath given understanding to the -heart? 38:37 Who can number the clouds in wisdom? or who can stay the -bottles of heaven, 38:38 When the dust groweth into hardness, and the -clods cleave fast together? 38:39 Wilt thou hunt the prey for the -lion? or fill the appetite of the young lions, 38:40 When they couch -in their dens, and abide in the covert to lie in wait? 38:41 Who -provideth for the raven his food? when his young ones cry unto God, -they wander for lack of meat. - -39:1 Knowest thou the time when the wild goats of the rock bring -forth? or canst thou mark when the hinds do calve? 39:2 Canst thou -number the months that they fulfil? or knowest thou the time when they -bring forth? 39:3 They bow themselves, they bring forth their young -ones, they cast out their sorrows. - -39:4 Their young ones are in good liking, they grow up with corn; they -go forth, and return not unto them. - -39:5 Who hath sent out the wild ass free? or who hath loosed the bands -of the wild ass? 39:6 Whose house I have made the wilderness, and the -barren land his dwellings. - -39:7 He scorneth the multitude of the city, neither regardeth he the -crying of the driver. - -39:8 The range of the mountains is his pasture, and he searcheth after -every green thing. - -39:9 Will the unicorn be willing to serve thee, or abide by thy crib? -39:10 Canst thou bind the unicorn with his band in the furrow? or will -he harrow the valleys after thee? 39:11 Wilt thou trust him, because -his strength is great? or wilt thou leave thy labour to him? 39:12 -Wilt thou believe him, that he will bring home thy seed, and gather it -into thy barn? 39:13 Gavest thou the goodly wings unto the peacocks? -or wings and feathers unto the ostrich? 39:14 Which leaveth her eggs -in the earth, and warmeth them in dust, 39:15 And forgetteth that the -foot may crush them, or that the wild beast may break them. - -39:16 She is hardened against her young ones, as though they were not -her's: her labour is in vain without fear; 39:17 Because God hath -deprived her of wisdom, neither hath he imparted to her understanding. - -39:18 What time she lifteth up herself on high, she scorneth the horse -and his rider. - -39:19 Hast thou given the horse strength? hast thou clothed his neck -with thunder? 39:20 Canst thou make him afraid as a grasshopper? the -glory of his nostrils is terrible. - -39:21 He paweth in the valley, and rejoiceth in his strength: he goeth -on to meet the armed men. - -39:22 He mocketh at fear, and is not affrighted; neither turneth he -back from the sword. - -39:23 The quiver rattleth against him, the glittering spear and the -shield. - -39:24 He swalloweth the ground with fierceness and rage: neither -believeth he that it is the sound of the trumpet. - -39:25 He saith among the trumpets, Ha, ha; and he smelleth the battle -afar off, the thunder of the captains, and the shouting. - -39:26 Doth the hawk fly by thy wisdom, and stretch her wings toward -the south? 39:27 Doth the eagle mount up at thy command, and make her -nest on high? 39:28 She dwelleth and abideth on the rock, upon the -crag of the rock, and the strong place. - -39:29 From thence she seeketh the prey, and her eyes behold afar off. - -39:30 Her young ones also suck up blood: and where the slain are, -there is she. - -40:1 Moreover the LORD answered Job, and said, 40:2 Shall he that -contendeth with the Almighty instruct him? he that reproveth God, let -him answer it. - -40:3 Then Job answered the LORD, and said, 40:4 Behold, I am vile; -what shall I answer thee? I will lay mine hand upon my mouth. - -40:5 Once have I spoken; but I will not answer: yea, twice; but I will -proceed no further. - -40:6 Then answered the LORD unto Job out of the whirlwind, and said, -40:7 Gird up thy loins now like a man: I will demand of thee, and -declare thou unto me. - -40:8 Wilt thou also disannul my judgment? wilt thou condemn me, that -thou mayest be righteous? 40:9 Hast thou an arm like God? or canst -thou thunder with a voice like him? 40:10 Deck thyself now with -majesty and excellency; and array thyself with glory and beauty. - -40:11 Cast abroad the rage of thy wrath: and behold every one that is -proud, and abase him. - -40:12 Look on every one that is proud, and bring him low; and tread -down the wicked in their place. - -40:13 Hide them in the dust together; and bind their faces in secret. - -40:14 Then will I also confess unto thee that thine own right hand can -save thee. - -40:15 Behold now behemoth, which I made with thee; he eateth grass as -an ox. - -40:16 Lo now, his strength is in his loins, and his force is in the -navel of his belly. - -40:17 He moveth his tail like a cedar: the sinews of his stones are -wrapped together. - -40:18 His bones are as strong pieces of brass; his bones are like bars -of iron. - -40:19 He is the chief of the ways of God: he that made him can make -his sword to approach unto him. - -40:20 Surely the mountains bring him forth food, where all the beasts -of the field play. - -40:21 He lieth under the shady trees, in the covert of the reed, and -fens. - -40:22 The shady trees cover him with their shadow; the willows of the -brook compass him about. - -40:23 Behold, he drinketh up a river, and hasteth not: he trusteth -that he can draw up Jordan into his mouth. - -40:24 He taketh it with his eyes: his nose pierceth through snares. - -41:1 Canst thou draw out leviathan with an hook? or his tongue with a -cord which thou lettest down? 41:2 Canst thou put an hook into his -nose? or bore his jaw through with a thorn? 41:3 Will he make many -supplications unto thee? will he speak soft words unto thee? 41:4 -Will he make a covenant with thee? wilt thou take him for a servant -for ever? 41:5 Wilt thou play with him as with a bird? or wilt thou -bind him for thy maidens? 41:6 Shall the companions make a banquet of -him? shall they part him among the merchants? 41:7 Canst thou fill -his skin with barbed irons? or his head with fish spears? 41:8 Lay -thine hand upon him, remember the battle, do no more. - -41:9 Behold, the hope of him is in vain: shall not one be cast down -even at the sight of him? 41:10 None is so fierce that dare stir him -up: who then is able to stand before me? 41:11 Who hath prevented me, -that I should repay him? whatsoever is under the whole heaven is mine. - -41:12 I will not conceal his parts, nor his power, nor his comely -proportion. - -41:13 Who can discover the face of his garment? or who can come to him -with his double bridle? 41:14 Who can open the doors of his face? his -teeth are terrible round about. - -41:15 His scales are his pride, shut up together as with a close seal. - -41:16 One is so near to another, that no air can come between them. - -41:17 They are joined one to another, they stick together, that they -cannot be sundered. - -41:18 By his neesings a light doth shine, and his eyes are like the -eyelids of the morning. - -41:19 Out of his mouth go burning lamps, and sparks of fire leap out. - -41:20 Out of his nostrils goeth smoke, as out of a seething pot or -caldron. - -41:21 His breath kindleth coals, and a flame goeth out of his mouth. - -41:22 In his neck remaineth strength, and sorrow is turned into joy -before him. - -41:23 The flakes of his flesh are joined together: they are firm in -themselves; they cannot be moved. - -41:24 His heart is as firm as a stone; yea, as hard as a piece of the -nether millstone. - -41:25 When he raiseth up himself, the mighty are afraid: by reason of -breakings they purify themselves. - -41:26 The sword of him that layeth at him cannot hold: the spear, the -dart, nor the habergeon. - -41:27 He esteemeth iron as straw, and brass as rotten wood. - -41:28 The arrow cannot make him flee: slingstones are turned with him -into stubble. - -41:29 Darts are counted as stubble: he laugheth at the shaking of a -spear. - -41:30 Sharp stones are under him: he spreadeth sharp pointed things -upon the mire. - -41:31 He maketh the deep to boil like a pot: he maketh the sea like a -pot of ointment. - -41:32 He maketh a path to shine after him; one would think the deep to -be hoary. - -41:33 Upon earth there is not his like, who is made without fear. - -41:34 He beholdeth all high things: he is a king over all the children -of pride. - -42:1 Then Job answered the LORD, and said, 42:2 I know that thou canst -do every thing, and that no thought can be withholden from thee. - -42:3 Who is he that hideth counsel without knowledge? therefore have I -uttered that I understood not; things too wonderful for me, which I -knew not. - -42:4 Hear, I beseech thee, and I will speak: I will demand of thee, -and declare thou unto me. - -42:5 I have heard of thee by the hearing of the ear: but now mine eye -seeth thee. - -42:6 Wherefore I abhor myself, and repent in dust and ashes. - -42:7 And it was so, that after the LORD had spoken these words unto -Job, the LORD said to Eliphaz the Temanite, My wrath is kindled -against thee, and against thy two friends: for ye have not spoken of -me the thing that is right, as my servant Job hath. - -42:8 Therefore take unto you now seven bullocks and seven rams, and go -to my servant Job, and offer up for yourselves a burnt offering; and -my servant Job shall pray for you: for him will I accept: lest I deal -with you after your folly, in that ye have not spoken of me the thing -which is right, like my servant Job. - -42:9 So Eliphaz the Temanite and Bildad the Shuhite and Zophar the -Naamathite went, and did according as the LORD commanded them: the -LORD also accepted Job. - -42:10 And the LORD turned the captivity of Job, when he prayed for his -friends: also the LORD gave Job twice as much as he had before. - -42:11 Then came there unto him all his brethren, and all his sisters, -and all they that had been of his acquaintance before, and did eat -bread with him in his house: and they bemoaned him, and comforted him -over all the evil that the LORD had brought upon him: every man also -gave him a piece of money, and every one an earring of gold. - -42:12 So the LORD blessed the latter end of Job more than his -beginning: for he had fourteen thousand sheep, and six thousand -camels, and a thousand yoke of oxen, and a thousand she asses. - -42:13 He had also seven sons and three daughters. - -42:14 And he called the name of the first, Jemima; and the name of the -second, Kezia; and the name of the third, Kerenhappuch. - -42:15 And in all the land were no women found so fair as the daughters -of Job: and their father gave them inheritance among their brethren. - -42:16 After this lived Job an hundred and forty years, and saw his -sons, and his sons' sons, even four generations. - -42:17 So Job died, being old and full of days. - - - - -The Book of Psalms - - -1:1 Blessed is the man that walketh not in the counsel of the ungodly, -nor standeth in the way of sinners, nor sitteth in the seat of the -scornful. - -1:2 But his delight is in the law of the LORD; and in his law doth he -meditate day and night. - -1:3 And he shall be like a tree planted by the rivers of water, that -bringeth forth his fruit in his season; his leaf also shall not -wither; and whatsoever he doeth shall prosper. - -1:4 The ungodly are not so: but are like the chaff which the wind -driveth away. - -1:5 Therefore the ungodly shall not stand in the judgment, nor sinners -in the congregation of the righteous. - -1:6 For the LORD knoweth the way of the righteous: but the way of the -ungodly shall perish. - - - -2:1 Why do the heathen rage, and the people imagine a vain thing? - -2:2 The kings of the earth set themselves, and the rulers take counsel -together, against the LORD, and against his anointed, saying, - -2:3 Let us break their bands asunder, and cast away their cords from -us. - -2:4 He that sitteth in the heavens shall laugh: the LORD shall have -them in derision. - -2:5 Then shall he speak unto them in his wrath, and vex them in his -sore displeasure. - -2:6 Yet have I set my king upon my holy hill of Zion. - -2:7 I will declare the decree: the LORD hath said unto me, Thou art my -Son; this day have I begotten thee. - -2:8 Ask of me, and I shall give thee the heathen for thine -inheritance, and the uttermost parts of the earth for thy possession. - -2:9 Thou shalt break them with a rod of iron; thou shalt dash them in -pieces like a potter's vessel. - -2:10 Be wise now therefore, O ye kings: be instructed, ye judges of -the earth. - -2:11 Serve the LORD with fear, and rejoice with trembling. - -2:12 Kiss the Son, lest he be angry, and ye perish from the way, when -his wrath is kindled but a little. Blessed are all they that put their -trust in him. - - - -3:1 Lord, how are they increased that trouble me! many are they that -rise up against me. - -3:2 Many there be which say of my soul, There is no help for him in -God. - -Selah. - -3:3 But thou, O LORD, art a shield for me; my glory, and the lifter up -of mine head. - -3:4 I cried unto the LORD with my voice, and he heard me out of his -holy hill. Selah. - -3:5 I laid me down and slept; I awaked; for the LORD sustained me. - -3:6 I will not be afraid of ten thousands of people, that have set -themselves against me round about. - -3:7 Arise, O LORD; save me, O my God: for thou hast smitten all mine -enemies upon the cheek bone; thou hast broken the teeth of the -ungodly. - -3:8 Salvation belongeth unto the LORD: thy blessing is upon thy -people. - -Selah. - - - -4:1 Hear me when I call, O God of my righteousness: thou hast enlarged -me when I was in distress; have mercy upon me, and hear my prayer. - -4:2 O ye sons of men, how long will ye turn my glory into shame? how -long will ye love vanity, and seek after leasing? Selah. - -4:3 But know that the LORD hath set apart him that is godly for -himself: the LORD will hear when I call unto him. - -4:4 Stand in awe, and sin not: commune with your own heart upon your -bed, and be still. Selah. - -4:5 Offer the sacrifices of righteousness, and put your trust in the -LORD. - -4:6 There be many that say, Who will shew us any good? LORD, lift thou -up the light of thy countenance upon us. - -4:7 Thou hast put gladness in my heart, more than in the time that -their corn and their wine increased. - -4:8 I will both lay me down in peace, and sleep: for thou, LORD, only -makest me dwell in safety. - - - -5:1 Give ear to my words, O LORD, consider my meditation. - -5:2 Hearken unto the voice of my cry, my King, and my God: for unto -thee will I pray. - -5:3 My voice shalt thou hear in the morning, O LORD; in the morning -will I direct my prayer unto thee, and will look up. - -5:4 For thou art not a God that hath pleasure in wickedness: neither -shall evil dwell with thee. - -5:5 The foolish shall not stand in thy sight: thou hatest all workers -of iniquity. - -5:6 Thou shalt destroy them that speak leasing: the LORD will abhor -the bloody and deceitful man. - -5:7 But as for me, I will come into thy house in the multitude of thy -mercy: and in thy fear will I worship toward thy holy temple. - -5:8 Lead me, O LORD, in thy righteousness because of mine enemies; -make thy way straight before my face. - -5:9 For there is no faithfulness in their mouth; their inward part is -very wickedness; their throat is an open sepulchre; they flatter with -their tongue. - -5:10 Destroy thou them, O God; let them fall by their own counsels; -cast them out in the multitude of their transgressions; for they have -rebelled against thee. - -5:11 But let all those that put their trust in thee rejoice: let them -ever shout for joy, because thou defendest them: let them also that -love thy name be joyful in thee. - -5:12 For thou, LORD, wilt bless the righteous; with favour wilt thou -compass him as with a shield. - - - -6:1 O LORD, rebuke me not in thine anger, neither chasten me in thy -hot displeasure. - -6:2 Have mercy upon me, O LORD; for I am weak: O LORD, heal me; for my -bones are vexed. - -6:3 My soul is also sore vexed: but thou, O LORD, how long? - -6:4 Return, O LORD, deliver my soul: oh save me for thy mercies' sake. - -6:5 For in death there is no remembrance of thee: in the grave who -shall give thee thanks? - -6:6 I am weary with my groaning; all the night make I my bed to swim; -I water my couch with my tears. - -6:7 Mine eye is consumed because of grief; it waxeth old because of -all mine enemies. - -6:8 Depart from me, all ye workers of iniquity; for the LORD hath -heard the voice of my weeping. - -6:9 The LORD hath heard my supplication; the LORD will receive my -prayer. - -6:10 Let all mine enemies be ashamed and sore vexed: let them return -and be ashamed suddenly. - - - -7:1 O LORD my God, in thee do I put my trust: save me from all them -that persecute me, and deliver me: - -7:2 Lest he tear my soul like a lion, rending it in pieces, while -there is none to deliver. - -7:3 O LORD my God, If I have done this; if there be iniquity in my -hands; - -7:4 If I have rewarded evil unto him that was at peace with me; (yea, -I have delivered him that without cause is mine enemy:) - -7:5 Let the enemy persecute my soul, and take it; yea, let him tread -down my life upon the earth, and lay mine honour in the dust. Selah. - -7:6 Arise, O LORD, in thine anger, lift up thyself because of the rage -of mine enemies: and awake for me to the judgment that thou hast -commanded. - -7:7 So shall the congregation of the people compass thee about: for -their sakes therefore return thou on high. - -7:8 The LORD shall judge the people: judge me, O LORD, according to my -righteousness, and according to mine integrity that is in me. - -7:9 Oh let the wickedness of the wicked come to an end; but establish -the just: for the righteous God trieth the hearts and reins. - -7:10 My defence is of God, which saveth the upright in heart. - -7:11 God judgeth the righteous, and God is angry with the wicked every -day. - -7:12 If he turn not, he will whet his sword; he hath bent his bow, and -made it ready. - -7:13 He hath also prepared for him the instruments of death; he -ordaineth his arrows against the persecutors. - -7:14 Behold, he travaileth with iniquity, and hath conceived mischief, -and brought forth falsehood. - -7:15 He made a pit, and digged it, and is fallen into the ditch which -he made. - -7:16 His mischief shall return upon his own head, and his violent -dealing shall come down upon his own pate. - -7:17 I will praise the LORD according to his righteousness: and will -sing praise to the name of the LORD most high. - - - -8:1 O LORD, our Lord, how excellent is thy name in all the earth! who -hast set thy glory above the heavens. - -8:2 Out of the mouth of babes and sucklings hast thou ordained -strength because of thine enemies, that thou mightest still the enemy -and the avenger. - -8:3 When I consider thy heavens, the work of thy fingers, the moon and -the stars, which thou hast ordained; - -8:4 What is man, that thou art mindful of him? and the son of man, -that thou visitest him? - -8:5 For thou hast made him a little lower than the angels, and hast -crowned him with glory and honour. - -8:6 Thou madest him to have dominion over the works of thy hands; thou -hast put all things under his feet: - -8:7 All sheep and oxen, yea, and the beasts of the field; - -8:8 The fowl of the air, and the fish of the sea, and whatsoever -passeth through the paths of the seas. - -8:9 O LORD our Lord, how excellent is thy name in all the earth! - - - - - -9:1 I will praise thee, O LORD, with my whole heart; I will shew forth -all thy marvellous works. - -9:2 I will be glad and rejoice in thee: I will sing praise to thy -name, O thou most High. - -9:3 When mine enemies are turned back, they shall fall and perish at -thy presence. - -9:4 For thou hast maintained my right and my cause; thou satest in the -throne judging right. - -9:5 Thou hast rebuked the heathen, thou hast destroyed the wicked, -thou hast put out their name for ever and ever. - -9:6 O thou enemy, destructions are come to a perpetual end: and thou -hast destroyed cities; their memorial is perished with them. - -9:7 But the LORD shall endure for ever: he hath prepared his throne -for judgment. - -9:8 And he shall judge the world in righteousness, he shall minister -judgment to the people in uprightness. - -9:9 The LORD also will be a refuge for the oppressed, a refuge in -times of trouble. - -9:10 And they that know thy name will put their trust in thee: for -thou, LORD, hast not forsaken them that seek thee. - -9:11 Sing praises to the LORD, which dwelleth in Zion: declare among -the people his doings. - -9:12 When he maketh inquisition for blood, he remembereth them: he -forgetteth not the cry of the humble. - -9:13 Have mercy upon me, O LORD; consider my trouble which I suffer of -them that hate me, thou that liftest me up from the gates of death: - -9:14 That I may shew forth all thy praise in the gates of the daughter -of Zion: I will rejoice in thy salvation. - -9:15 The heathen are sunk down in the pit that they made: in the net -which they hid is their own foot taken. - -9:16 The LORD is known by the judgment which he executeth: the wicked -is snared in the work of his own hands. Higgaion. Selah. - -9:17 The wicked shall be turned into hell, and all the nations that -forget God. - -9:18 For the needy shall not alway be forgotten: the expectation of -the poor shall not perish for ever. - -9:19 Arise, O LORD; let not man prevail: let the heathen be judged in -thy sight. - -9:20 Put them in fear, O LORD: that the nations may know themselves to -be but men. Selah. - - - -10:1 Why standest thou afar off, O LORD? why hidest thou thyself in -times of trouble? - -10:2 The wicked in his pride doth persecute the poor: let them be -taken in the devices that they have imagined. - -10:3 For the wicked boasteth of his heart's desire, and blesseth the -covetous, whom the LORD abhorreth. - -10:4 The wicked, through the pride of his countenance, will not seek -after God: God is not in all his thoughts. - -10:5 His ways are always grievous; thy judgments are far above out of -his sight: as for all his enemies, he puffeth at them. - -10:6 He hath said in his heart, I shall not be moved: for I shall -never be in adversity. - -10:7 His mouth is full of cursing and deceit and fraud: under his -tongue is mischief and vanity. - -10:8 He sitteth in the lurking places of the villages: in the secret -places doth he murder the innocent: his eyes are privily set against -the poor. - -10:9 He lieth in wait secretly as a lion in his den: he lieth in wait -to catch the poor: he doth catch the poor, when he draweth him into -his net. - -10:10 He croucheth, and humbleth himself, that the poor may fall by -his strong ones. - -10:11 He hath said in his heart, God hath forgotten: he hideth his -face; he will never see it. - -10:12 Arise, O LORD; O God, lift up thine hand: forget not the humble. - -10:13 Wherefore doth the wicked contemn God? he hath said in his -heart, Thou wilt not require it. - -10:14 Thou hast seen it; for thou beholdest mischief and spite, to -requite it with thy hand: the poor committeth himself unto thee; thou -art the helper of the fatherless. - -10:15 Break thou the arm of the wicked and the evil man: seek out his -wickedness till thou find none. - -10:16 The LORD is King for ever and ever: the heathen are perished out -of his land. - -10:17 LORD, thou hast heard the desire of the humble: thou wilt -prepare their heart, thou wilt cause thine ear to hear: - -10:18 To judge the fatherless and the oppressed, that the man of the -earth may no more oppress. - - - -11:1 In the LORD put I my trust: how say ye to my soul, Flee as a bird -to your mountain? - -11:2 For, lo, the wicked bend their bow, they make ready their arrow -upon the string, that they may privily shoot at the upright in heart. - -11:3 If the foundations be destroyed, what can the righteous do? - -11:4 The LORD is in his holy temple, the LORD's throne is in heaven: -his eyes behold, his eyelids try, the children of men. - -11:5 The LORD trieth the righteous: but the wicked and him that loveth -violence his soul hateth. - -11:6 Upon the wicked he shall rain snares, fire and brimstone, and an -horrible tempest: this shall be the portion of their cup. - -11:7 For the righteous LORD loveth righteousness; his countenance doth -behold the upright. - - - -12:1 Help, LORD; for the godly man ceaseth; for the faithful fail from -among the children of men. - -12:2 They speak vanity every one with his neighbour: with flattering -lips and with a double heart do they speak. - -12:3 The LORD shall cut off all flattering lips, and the tongue that -speaketh proud things: - -12:4 Who have said, With our tongue will we prevail; our lips are our -own: who is lord over us? - -12:5 For the oppression of the poor, for the sighing of the needy, now -will I arise, saith the LORD; I will set him in safety from him that -puffeth at him. - -12:6 The words of the LORD are pure words: as silver tried in a -furnace of earth, purified seven times. - -12:7 Thou shalt keep them, O LORD, thou shalt preserve them from this -generation for ever. - -12:8 The wicked walk on every side, when the vilest men are exalted. - - - -13:1 How long wilt thou forget me, O LORD? for ever? how long wilt -thou hide thy face from me? - -13:2 How long shall I take counsel in my soul, having sorrow in my -heart daily? how long shall mine enemy be exalted over me? - -13:3 Consider and hear me, O LORD my God: lighten mine eyes, lest I -sleep the sleep of death; - -13:4 Lest mine enemy say, I have prevailed against him; and those that -trouble me rejoice when I am moved. - -13:5 But I have trusted in thy mercy; my heart shall rejoice in thy -salvation. - -13:6 I will sing unto the LORD, because he hath dealt bountifully with -me. - - - -14:1 The fool hath said in his heart, There is no God. They are -corrupt, they have done abominable works, there is none that doeth -good. - -14:2 The LORD looked down from heaven upon the children of men, to see -if there were any that did understand, and seek God. - -14:3 They are all gone aside, they are all together become filthy: -there is none that doeth good, no, not one. - -14:4 Have all the workers of iniquity no knowledge? who eat up my -people as they eat bread, and call not upon the LORD. - -14:5 There were they in great fear: for God is in the generation of -the righteous. - -14:6 Ye have shamed the counsel of the poor, because the LORD is his -refuge. - -14:7 Oh that the salvation of Israel were come out of Zion! when the -LORD bringeth back the captivity of his people, Jacob shall rejoice, -and Israel shall be glad. - - - -15:1 Lord, who shall abide in thy tabernacle? who shall dwell in thy -holy hill? - -15:2 He that walketh uprightly, and worketh righteousness, and -speaketh the truth in his heart. - -15:3 He that backbiteth not with his tongue, nor doeth evil to his -neighbour, nor taketh up a reproach against his neighbour. - -15:4 In whose eyes a vile person is contemned; but he honoureth them -that fear the LORD. He that sweareth to his own hurt, and changeth -not. - -15:5 He that putteth not out his money to usury, nor taketh reward -against the innocent. He that doeth these things shall never be moved. - - - -16:1 Preserve me, O God: for in thee do I put my trust. - -16:2 O my soul, thou hast said unto the LORD, Thou art my Lord: my -goodness extendeth not to thee; - -16:3 But to the saints that are in the earth, and to the excellent, in -whom is all my delight. - -16:4 Their sorrows shall be multiplied that hasten after another god: -their drink offerings of blood will I not offer, nor take up their -names into my lips. - -16:5 The LORD is the portion of mine inheritance and of my cup: thou -maintainest my lot. - -16:6 The lines are fallen unto me in pleasant places; yea, I have a -goodly heritage. - -16:7 I will bless the LORD, who hath given me counsel: my reins also -instruct me in the night seasons. - -16:8 I have set the LORD always before me: because he is at my right -hand, I shall not be moved. - -16:9 Therefore my heart is glad, and my glory rejoiceth: my flesh also -shall rest in hope. - -16:10 For thou wilt not leave my soul in hell; neither wilt thou -suffer thine Holy One to see corruption. - -16:11 Thou wilt shew me the path of life: in thy presence is fulness -of joy; at thy right hand there are pleasures for evermore. - - - -17:1 Hear the right, O LORD, attend unto my cry, give ear unto my -prayer, that goeth not out of feigned lips. - -17:2 Let my sentence come forth from thy presence; let thine eyes -behold the things that are equal. - -17:3 Thou hast proved mine heart; thou hast visited me in the night; -thou hast tried me, and shalt find nothing; I am purposed that my -mouth shall not transgress. - -17:4 Concerning the works of men, by the word of thy lips I have kept -me from the paths of the destroyer. - -17:5 Hold up my goings in thy paths, that my footsteps slip not. - -17:6 I have called upon thee, for thou wilt hear me, O God: incline -thine ear unto me, and hear my speech. - -17:7 Shew thy marvellous lovingkindness, O thou that savest by thy -right hand them which put their trust in thee from those that rise up -against them. - -17:8 Keep me as the apple of the eye, hide me under the shadow of thy -wings, - -17:9 From the wicked that oppress me, from my deadly enemies, who -compass me about. - -17:10 They are inclosed in their own fat: with their mouth they speak -proudly. - -17:11 They have now compassed us in our steps: they have set their -eyes bowing down to the earth; - -17:12 Like as a lion that is greedy of his prey, and as it were a -young lion lurking in secret places. - -17:13 Arise, O LORD, disappoint him, cast him down: deliver my soul -from the wicked, which is thy sword: - -17:14 From men which are thy hand, O LORD, from men of the world, -which have their portion in this life, and whose belly thou fillest -with thy hid treasure: they are full of children, and leave the rest -of their substance to their babes. - -17:15 As for me, I will behold thy face in righteousness: I shall be -satisfied, when I awake, with thy likeness. - - - -18:1 I will love thee, O LORD, my strength. - -18:2 The LORD is my rock, and my fortress, and my deliverer; my God, -my strength, in whom I will trust; my buckler, and the horn of my -salvation, and my high tower. - -18:3 I will call upon the LORD, who is worthy to be praised: so shall -I be saved from mine enemies. - -18:4 The sorrows of death compassed me, and the floods of ungodly men -made me afraid. - -18:5 The sorrows of hell compassed me about: the snares of death -prevented me. - -18:6 In my distress I called upon the LORD, and cried unto my God: he -heard my voice out of his temple, and my cry came before him, even -into his ears. - -18:7 Then the earth shook and trembled; the foundations also of the -hills moved and were shaken, because he was wroth. - -18:8 There went up a smoke out of his nostrils, and fire out of his -mouth devoured: coals were kindled by it. - -18:9 He bowed the heavens also, and came down: and darkness was under -his feet. - -18:10 And he rode upon a cherub, and did fly: yea, he did fly upon the -wings of the wind. - -18:11 He made darkness his secret place; his pavilion round about him -were dark waters and thick clouds of the skies. - -18:12 At the brightness that was before him his thick clouds passed, -hail stones and coals of fire. - -18:13 The LORD also thundered in the heavens, and the Highest gave his -voice; hail stones and coals of fire. - -18:14 Yea, he sent out his arrows, and scattered them; and he shot out -lightnings, and discomfited them. - -18:15 Then the channels of waters were seen, and the foundations of -the world were discovered at thy rebuke, O LORD, at the blast of the -breath of thy nostrils. - -18:16 He sent from above, he took me, he drew me out of many waters. - -18:17 He delivered me from my strong enemy, and from them which hated -me: for they were too strong for me. - -18:18 They prevented me in the day of my calamity: but the LORD was my -stay. - -18:19 He brought me forth also into a large place; he delivered me, -because he delighted in me. - -18:20 The LORD rewarded me according to my righteousness; according to -the cleanness of my hands hath he recompensed me. - -18:21 For I have kept the ways of the LORD, and have not wickedly -departed from my God. - -18:22 For all his judgments were before me, and I did not put away his -statutes from me. - -18:23 I was also upright before him, and I kept myself from mine -iniquity. - -18:24 Therefore hath the LORD recompensed me according to my -righteousness, according to the cleanness of my hands in his eyesight. - -18:25 With the merciful thou wilt shew thyself merciful; with an -upright man thou wilt shew thyself upright; - -18:26 With the pure thou wilt shew thyself pure; and with the froward -thou wilt shew thyself froward. - -18:27 For thou wilt save the afflicted people; but wilt bring down -high looks. - -18:28 For thou wilt light my candle: the LORD my God will enlighten my -darkness. - -18:29 For by thee I have run through a troop; and by my God have I -leaped over a wall. - -18:30 As for God, his way is perfect: the word of the LORD is tried: -he is a buckler to all those that trust in him. - -18:31 For who is God save the LORD? or who is a rock save our God? - -18:32 It is God that girdeth me with strength, and maketh my way -perfect. - -18:33 He maketh my feet like hinds' feet, and setteth me upon my high -places. - -18:34 He teacheth my hands to war, so that a bow of steel is broken by -mine arms. - -18:35 Thou hast also given me the shield of thy salvation: and thy -right hand hath holden me up, and thy gentleness hath made me great. - -18:36 Thou hast enlarged my steps under me, that my feet did not slip. - -18:37 I have pursued mine enemies, and overtaken them: neither did I -turn again till they were consumed. - -18:38 I have wounded them that they were not able to rise: they are -fallen under my feet. - -18:39 For thou hast girded me with strength unto the battle: thou hast -subdued under me those that rose up against me. - -18:40 Thou hast also given me the necks of mine enemies; that I might -destroy them that hate me. - -18:41 They cried, but there was none to save them: even unto the LORD, -but he answered them not. - -18:42 Then did I beat them small as the dust before the wind: I did -cast them out as the dirt in the streets. - -18:43 Thou hast delivered me from the strivings of the people; and -thou hast made me the head of the heathen: a people whom I have not -known shall serve me. - -18:44 As soon as they hear of me, they shall obey me: the strangers -shall submit themselves unto me. - -18:45 The strangers shall fade away, and be afraid out of their close -places. - -18:46 The LORD liveth; and blessed be my rock; and let the God of my -salvation be exalted. - -18:47 It is God that avengeth me, and subdueth the people under me. - -18:48 He delivereth me from mine enemies: yea, thou liftest me up -above those that rise up against me: thou hast delivered me from the -violent man. - -18:49 Therefore will I give thanks unto thee, O LORD, among the -heathen, and sing praises unto thy name. - -18:50 Great deliverance giveth he to his king; and sheweth mercy to -his anointed, to David, and to his seed for evermore. - - - -19:1 The heavens declare the glory of God; and the firmament sheweth -his handywork. - -19:2 Day unto day uttereth speech, and night unto night sheweth -knowledge. - -19:3 There is no speech nor language, where their voice is not heard. - -19:4 Their line is gone out through all the earth, and their words to -the end of the world. In them hath he set a tabernacle for the sun, - -19:5 Which is as a bridegroom coming out of his chamber, and rejoiceth -as a strong man to run a race. - -19:6 His going forth is from the end of the heaven, and his circuit -unto the ends of it: and there is nothing hid from the heat thereof. - -19:7 The law of the LORD is perfect, converting the soul: the -testimony of the LORD is sure, making wise the simple. - -19:8 The statutes of the LORD are right, rejoicing the heart: the -commandment of the LORD is pure, enlightening the eyes. - -19:9 The fear of the LORD is clean, enduring for ever: the judgments -of the LORD are true and righteous altogether. - -19:10 More to be desired are they than gold, yea, than much fine gold: -sweeter also than honey and the honeycomb. - -19:11 Moreover by them is thy servant warned: and in keeping of them -there is great reward. - -19:12 Who can understand his errors? cleanse thou me from secret -faults. - -19:13 Keep back thy servant also from presumptuous sins; let them not -have dominion over me: then shall I be upright, and I shall be -innocent from the great transgression. - -19:14 Let the words of my mouth, and the meditation of my heart, be -acceptable in thy sight, O LORD, my strength, and my redeemer. - - - -20:1 The LORD hear thee in the day of trouble; the name of the God of -Jacob defend thee; - -20:2 Send thee help from the sanctuary, and strengthen thee out of -Zion; - -20:3 Remember all thy offerings, and accept thy burnt sacrifice; -Selah. - -20:4 Grant thee according to thine own heart, and fulfil all thy -counsel. - -20:5 We will rejoice in thy salvation, and in the name of our God we -will set up our banners: the LORD fulfil all thy petitions. - -20:6 Now know I that the LORD saveth his anointed; he will hear him -from his holy heaven with the saving strength of his right hand. - -20:7 Some trust in chariots, and some in horses: but we will remember -the name of the LORD our God. - -20:8 They are brought down and fallen: but we are risen, and stand -upright. - -20:9 Save, LORD: let the king hear us when we call. - - - -21:1 The king shall joy in thy strength, O LORD; and in thy salvation -how greatly shall he rejoice! - -21:2 Thou hast given him his heart's desire, and hast not withholden -the request of his lips. Selah. - -21:3 For thou preventest him with the blessings of goodness: thou -settest a crown of pure gold on his head. - -21:4 He asked life of thee, and thou gavest it him, even length of -days for ever and ever. - -21:5 His glory is great in thy salvation: honour and majesty hast thou -laid upon him. - -21:6 For thou hast made him most blessed for ever: thou hast made him -exceeding glad with thy countenance. - -21:7 For the king trusteth in the LORD, and through the mercy of the -most High he shall not be moved. - -21:8 Thine hand shall find out all thine enemies: thy right hand shall -find out those that hate thee. - -21:9 Thou shalt make them as a fiery oven in the time of thine anger: -the LORD shall swallow them up in his wrath, and the fire shall devour -them. - -21:10 Their fruit shalt thou destroy from the earth, and their seed -from among the children of men. - -21:11 For they intended evil against thee: they imagined a mischievous -device, which they are not able to perform. - -21:12 Therefore shalt thou make them turn their back, when thou shalt -make ready thine arrows upon thy strings against the face of them. - -21:13 Be thou exalted, LORD, in thine own strength: so will we sing -and praise thy power. - - - -22:1 My God, my God, why hast thou forsaken me? why art thou so far -from helping me, and from the words of my roaring? - -22:2 O my God, I cry in the day time, but thou hearest not; and in the -night season, and am not silent. - -22:3 But thou art holy, O thou that inhabitest the praises of Israel. - -22:4 Our fathers trusted in thee: they trusted, and thou didst deliver -them. - -22:5 They cried unto thee, and were delivered: they trusted in thee, -and were not confounded. - -22:6 But I am a worm, and no man; a reproach of men, and despised of -the people. - -22:7 All they that see me laugh me to scorn: they shoot out the lip, -they shake the head, saying, - -22:8 He trusted on the LORD that he would deliver him: let him deliver -him, seeing he delighted in him. - -22:9 But thou art he that took me out of the womb: thou didst make me -hope when I was upon my mother's breasts. - -22:10 I was cast upon thee from the womb: thou art my God from my -mother's belly. - -22:11 Be not far from me; for trouble is near; for there is none to -help. - -22:12 Many bulls have compassed me: strong bulls of Bashan have beset -me round. - -22:13 They gaped upon me with their mouths, as a ravening and a -roaring lion. - -22:14 I am poured out like water, and all my bones are out of joint: -my heart is like wax; it is melted in the midst of my bowels. - -22:15 My strength is dried up like a potsherd; and my tongue cleaveth -to my jaws; and thou hast brought me into the dust of death. - -22:16 For dogs have compassed me: the assembly of the wicked have -inclosed me: they pierced my hands and my feet. - -22:17 I may tell all my bones: they look and stare upon me. - -22:18 They part my garments among them, and cast lots upon my vesture. - -22:19 But be not thou far from me, O LORD: O my strength, haste thee -to help me. - -22:20 Deliver my soul from the sword; my darling from the power of the -dog. - -22:21 Save me from the lion's mouth: for thou hast heard me from the -horns of the unicorns. - -22:22 I will declare thy name unto my brethren: in the midst of the -congregation will I praise thee. - -22:23 Ye that fear the LORD, praise him; all ye the seed of Jacob, -glorify him; and fear him, all ye the seed of Israel. - -22:24 For he hath not despised nor abhorred the affliction of the -afflicted; neither hath he hid his face from him; but when he cried -unto him, he heard. - -22:25 My praise shall be of thee in the great congregation: I will pay -my vows before them that fear him. - -22:26 The meek shall eat and be satisfied: they shall praise the LORD -that seek him: your heart shall live for ever. - -22:27 All the ends of the world shall remember and turn unto the LORD: -and all the kindreds of the nations shall worship before thee. - -22:28 For the kingdom is the LORD's: and he is the governor among the -nations. - -22:29 All they that be fat upon earth shall eat and worship: all they -that go down to the dust shall bow before him: and none can keep alive -his own soul. - -22:30 A seed shall serve him; it shall be accounted to the Lord for a -generation. - -22:31 They shall come, and shall declare his righteousness unto a -people that shall be born, that he hath done this. - - - -23:1 The LORD is my shepherd; I shall not want. - -23:2 He maketh me to lie down in green pastures: he leadeth me beside -the still waters. - -23:3 He restoreth my soul: he leadeth me in the paths of righteousness -for his name's sake. - -23:4 Yea, though I walk through the valley of the shadow of death, I -will fear no evil: for thou art with me; thy rod and thy staff they -comfort me. - -23:5 Thou preparest a table before me in the presence of mine enemies: -thou anointest my head with oil; my cup runneth over. - -23:6 Surely goodness and mercy shall follow me all the days of my -life: and I will dwell in the house of the LORD for ever. - - - -24:1 The earth is the LORD's, and the fulness thereof; the world, and -they that dwell therein. - -24:2 For he hath founded it upon the seas, and established it upon the -floods. - -24:3 Who shall ascend into the hill of the LORD? or who shall stand in -his holy place? - -24:4 He that hath clean hands, and a pure heart; who hath not lifted -up his soul unto vanity, nor sworn deceitfully. - -24:5 He shall receive the blessing from the LORD, and righteousness -from the God of his salvation. - -24:6 This is the generation of them that seek him, that seek thy face, -O Jacob. Selah. - -24:7 Lift up your heads, O ye gates; and be ye lift up, ye everlasting -doors; and the King of glory shall come in. - -24:8 Who is this King of glory? The LORD strong and mighty, the LORD -mighty in battle. - -24:9 Lift up your heads, O ye gates; even lift them up, ye everlasting -doors; and the King of glory shall come in. - -24:10 Who is this King of glory? The LORD of hosts, he is the King of -glory. Selah. - - - -25:1 Unto thee, O LORD, do I lift up my soul. - -25:2 O my God, I trust in thee: let me not be ashamed, let not mine -enemies triumph over me. - -25:3 Yea, let none that wait on thee be ashamed: let them be ashamed -which transgress without cause. - -25:4 Shew me thy ways, O LORD; teach me thy paths. - -25:5 Lead me in thy truth, and teach me: for thou art the God of my -salvation; on thee do I wait all the day. - -25:6 Remember, O LORD, thy tender mercies and thy lovingkindnesses; -for they have been ever of old. - -25:7 Remember not the sins of my youth, nor my transgressions: -according to thy mercy remember thou me for thy goodness' sake, O -LORD. - -25:8 Good and upright is the LORD: therefore will he teach sinners in -the way. - -25:9 The meek will he guide in judgment: and the meek will he teach -his way. - -25:10 All the paths of the LORD are mercy and truth unto such as keep -his covenant and his testimonies. - -25:11 For thy name's sake, O LORD, pardon mine iniquity; for it is -great. - -25:12 What man is he that feareth the LORD? him shall he teach in the -way that he shall choose. - -25:13 His soul shall dwell at ease; and his seed shall inherit the -earth. - -25:14 The secret of the LORD is with them that fear him; and he will -shew them his covenant. - -25:15 Mine eyes are ever toward the LORD; for he shall pluck my feet -out of the net. - -25:16 Turn thee unto me, and have mercy upon me; for I am desolate and -afflicted. - -25:17 The troubles of my heart are enlarged: O bring thou me out of my -distresses. - -25:18 Look upon mine affliction and my pain; and forgive all my sins. - -25:19 Consider mine enemies; for they are many; and they hate me with -cruel hatred. - -25:20 O keep my soul, and deliver me: let me not be ashamed; for I put -my trust in thee. - -25:21 Let integrity and uprightness preserve me; for I wait on thee. - -25:22 Redeem Israel, O God, out of all his troubles. - - - -26:1 Judge me, O LORD; for I have walked in mine integrity: I have -trusted also in the LORD; therefore I shall not slide. - -26:2 Examine me, O LORD, and prove me; try my reins and my heart. - -26:3 For thy lovingkindness is before mine eyes: and I have walked in -thy truth. - -26:4 I have not sat with vain persons, neither will I go in with -dissemblers. - -26:5 I have hated the congregation of evil doers; and will not sit -with the wicked. - -26:6 I will wash mine hands in innocency: so will I compass thine -altar, O LORD: - -26:7 That I may publish with the voice of thanksgiving, and tell of -all thy wondrous works. - -26:8 LORD, I have loved the habitation of thy house, and the place -where thine honour dwelleth. - -26:9 Gather not my soul with sinners, nor my life with bloody men: - -26:10 In whose hands is mischief, and their right hand is full of -bribes. - -26:11 But as for me, I will walk in mine integrity: redeem me, and be -merciful unto me. - -26:12 My foot standeth in an even place: in the congregations will I -bless the LORD. - - - -27:1 The LORD is my light and my salvation; whom shall I fear? the -LORD is the strength of my life; of whom shall I be afraid? - -27:2 When the wicked, even mine enemies and my foes, came upon me to -eat up my flesh, they stumbled and fell. - -27:3 Though an host should encamp against me, my heart shall not fear: -though war should rise against me, in this will I be confident. - -27:4 One thing have I desired of the LORD, that will I seek after; -that I may dwell in the house of the LORD all the days of my life, to -behold the beauty of the LORD, and to enquire in his temple. - -27:5 For in the time of trouble he shall hide me in his pavilion: in -the secret of his tabernacle shall he hide me; he shall set me up upon -a rock. - -27:6 And now shall mine head be lifted up above mine enemies round -about me: therefore will I offer in his tabernacle sacrifices of joy; -I will sing, yea, I will sing praises unto the LORD. - -27:7 Hear, O LORD, when I cry with my voice: have mercy also upon me, -and answer me. - -27:8 When thou saidst, Seek ye my face; my heart said unto thee, Thy -face, LORD, will I seek. - -27:9 Hide not thy face far from me; put not thy servant away in anger: -thou hast been my help; leave me not, neither forsake me, O God of my -salvation. - -27:10 When my father and my mother forsake me, then the LORD will take -me up. - -27:11 Teach me thy way, O LORD, and lead me in a plain path, because -of mine enemies. - -27:12 Deliver me not over unto the will of mine enemies: for false -witnesses are risen up against me, and such as breathe out cruelty. - -27:13 I had fainted, unless I had believed to see the goodness of the -LORD in the land of the living. - -27:14 Wait on the LORD: be of good courage, and he shall strengthen -thine heart: wait, I say, on the LORD. - - - -28:1 Unto thee will I cry, O LORD my rock; be not silent to me: lest, -if thou be silent to me, I become like them that go down into the pit. - -28:2 Hear the voice of my supplications, when I cry unto thee, when I -lift up my hands toward thy holy oracle. - -28:3 Draw me not away with the wicked, and with the workers of -iniquity, which speak peace to their neighbours, but mischief is in -their hearts. - -28:4 Give them according to their deeds, and according to the -wickedness of their endeavours: give them after the work of their -hands; render to them their desert. - -28:5 Because they regard not the works of the LORD, nor the operation -of his hands, he shall destroy them, and not build them up. - -28:6 Blessed be the LORD, because he hath heard the voice of my -supplications. - -28:7 The LORD is my strength and my shield; my heart trusted in him, -and I am helped: therefore my heart greatly rejoiceth; and with my -song will I praise him. - -28:8 The LORD is their strength, and he is the saving strength of his -anointed. - -28:9 Save thy people, and bless thine inheritance: feed them also, and -lift them up for ever. - - - -29:1 Give unto the LORD, O ye mighty, give unto the LORD glory and -strength. - -29:2 Give unto the LORD the glory due unto his name; worship the LORD -in the beauty of holiness. - -29:3 The voice of the LORD is upon the waters: the God of glory -thundereth: the LORD is upon many waters. - -29:4 The voice of the LORD is powerful; the voice of the LORD is full -of majesty. - -29:5 The voice of the LORD breaketh the cedars; yea, the LORD breaketh -the cedars of Lebanon. - -29:6 He maketh them also to skip like a calf; Lebanon and Sirion like -a young unicorn. - -29:7 The voice of the LORD divideth the flames of fire. - -29:8 The voice of the LORD shaketh the wilderness; the LORD shaketh -the wilderness of Kadesh. - -29:9 The voice of the LORD maketh the hinds to calve, and discovereth -the forests: and in his temple doth every one speak of his glory. - -29:10 The LORD sitteth upon the flood; yea, the LORD sitteth King for -ever. - -29:11 The LORD will give strength unto his people; the LORD will bless -his people with peace. - - - -30:1 I will extol thee, O LORD; for thou hast lifted me up, and hast -not made my foes to rejoice over me. - -30:2 O LORD my God, I cried unto thee, and thou hast healed me. - -30:3 O LORD, thou hast brought up my soul from the grave: thou hast -kept me alive, that I should not go down to the pit. - -30:4 Sing unto the LORD, O ye saints of his, and give thanks at the -remembrance of his holiness. - -30:5 For his anger endureth but a moment; in his favour is life: -weeping may endure for a night, but joy cometh in the morning. - -30:6 And in my prosperity I said, I shall never be moved. - -30:7 LORD, by thy favour thou hast made my mountain to stand strong: -thou didst hide thy face, and I was troubled. - -30:8 I cried to thee, O LORD; and unto the LORD I made supplication. - -30:9 What profit is there in my blood, when I go down to the pit? -Shall the dust praise thee? shall it declare thy truth? - -30:10 Hear, O LORD, and have mercy upon me: LORD, be thou my helper. - -30:11 Thou hast turned for me my mourning into dancing: thou hast put -off my sackcloth, and girded me with gladness; - -30:12 To the end that my glory may sing praise to thee, and not be -silent. - -O LORD my God, I will give thanks unto thee for ever. - - - -31:1 In thee, O LORD, do I put my trust; let me never be ashamed: -deliver me in thy righteousness. - -31:2 Bow down thine ear to me; deliver me speedily: be thou my strong -rock, for an house of defence to save me. - -31:3 For thou art my rock and my fortress; therefore for thy name's -sake lead me, and guide me. - -31:4 Pull me out of the net that they have laid privily for me: for -thou art my strength. - -31:5 Into thine hand I commit my spirit: thou hast redeemed me, O LORD -God of truth. - -31:6 I have hated them that regard lying vanities: but I trust in the -LORD. - -31:7 I will be glad and rejoice in thy mercy: for thou hast considered -my trouble; thou hast known my soul in adversities; - -31:8 And hast not shut me up into the hand of the enemy: thou hast set -my feet in a large room. - -31:9 Have mercy upon me, O LORD, for I am in trouble: mine eye is -consumed with grief, yea, my soul and my belly. - -31:10 For my life is spent with grief, and my years with sighing: my -strength faileth because of mine iniquity, and my bones are consumed. - -31:11 I was a reproach among all mine enemies, but especially among my -neighbours, and a fear to mine acquaintance: they that did see me -without fled from me. - -31:12 I am forgotten as a dead man out of mind: I am like a broken -vessel. - -31:13 For I have heard the slander of many: fear was on every side: -while they took counsel together against me, they devised to take away -my life. - -31:14 But I trusted in thee, O LORD: I said, Thou art my God. - -31:15 My times are in thy hand: deliver me from the hand of mine -enemies, and from them that persecute me. - -31:16 Make thy face to shine upon thy servant: save me for thy -mercies' sake. - -31:17 Let me not be ashamed, O LORD; for I have called upon thee: let -the wicked be ashamed, and let them be silent in the grave. - -31:18 Let the lying lips be put to silence; which speak grievous -things proudly and contemptuously against the righteous. - -31:19 Oh how great is thy goodness, which thou hast laid up for them -that fear thee; which thou hast wrought for them that trust in thee -before the sons of men! - -31:20 Thou shalt hide them in the secret of thy presence from the -pride of man: thou shalt keep them secretly in a pavilion from the -strife of tongues. - -31:21 Blessed be the LORD: for he hath shewed me his marvellous -kindness in a strong city. - -31:22 For I said in my haste, I am cut off from before thine eyes: -nevertheless thou heardest the voice of my supplications when I cried -unto thee. - -31:23 O love the LORD, all ye his saints: for the LORD preserveth the -faithful, and plentifully rewardeth the proud doer. - -31:24 Be of good courage, and he shall strengthen your heart, all ye -that hope in the LORD. - - - -32:1 Blessed is he whose transgression is forgiven, whose sin is -covered. - -32:2 Blessed is the man unto whom the LORD imputeth not iniquity, and -in whose spirit there is no guile. - -32:3 When I kept silence, my bones waxed old through my roaring all -the day long. - -32:4 For day and night thy hand was heavy upon me: my moisture is -turned into the drought of summer. Selah. - -32:5 I acknowledge my sin unto thee, and mine iniquity have I not hid. -I said, I will confess my transgressions unto the LORD; and thou -forgavest the iniquity of my sin. Selah. - -32:6 For this shall every one that is godly pray unto thee in a time -when thou mayest be found: surely in the floods of great waters they -shall not come nigh unto him. - -32:7 Thou art my hiding place; thou shalt preserve me from trouble; -thou shalt compass me about with songs of deliverance. Selah. - -32:8 I will instruct thee and teach thee in the way which thou shalt -go: I will guide thee with mine eye. - -32:9 Be ye not as the horse, or as the mule, which have no -understanding: whose mouth must be held in with bit and bridle, lest -they come near unto thee. - -32:10 Many sorrows shall be to the wicked: but he that trusteth in the -LORD, mercy shall compass him about. - -32:11 Be glad in the LORD, and rejoice, ye righteous: and shout for -joy, all ye that are upright in heart. - - - -33:1 Rejoice in the LORD, O ye righteous: for praise is comely for the -upright. - -33:2 Praise the LORD with harp: sing unto him with the psaltery and an -instrument of ten strings. - -33:3 Sing unto him a new song; play skilfully with a loud noise. - -33:4 For the word of the LORD is right; and all his works are done in -truth. - -33:5 He loveth righteousness and judgment: the earth is full of the -goodness of the LORD. - -33:6 By the word of the LORD were the heavens made; and all the host -of them by the breath of his mouth. - -33:7 He gathereth the waters of the sea together as an heap: he layeth -up the depth in storehouses. - -33:8 Let all the earth fear the LORD: let all the inhabitants of the -world stand in awe of him. - -33:9 For he spake, and it was done; he commanded, and it stood fast. - -33:10 The LORD bringeth the counsel of the heathen to nought: he -maketh the devices of the people of none effect. - -33:11 The counsel of the LORD standeth for ever, the thoughts of his -heart to all generations. - -33:12 Blessed is the nation whose God is the LORD; and the people whom -he hath chosen for his own inheritance. - -33:13 The LORD looketh from heaven; he beholdeth all the sons of men. - -33:14 From the place of his habitation he looketh upon all the -inhabitants of the earth. - -33:15 He fashioneth their hearts alike; he considereth all their -works. - -33:16 There is no king saved by the multitude of an host: a mighty man -is not delivered by much strength. - -33:17 An horse is a vain thing for safety: neither shall he deliver -any by his great strength. - -33:18 Behold, the eye of the LORD is upon them that fear him, upon -them that hope in his mercy; - -33:19 To deliver their soul from death, and to keep them alive in -famine. - -33:20 Our soul waiteth for the LORD: he is our help and our shield. - -33:21 For our heart shall rejoice in him, because we have trusted in -his holy name. - -33:22 Let thy mercy, O LORD, be upon us, according as we hope in thee. - - - -34:1 I will bless the LORD at all times: his praise shall continually -be in my mouth. - -34:2 My soul shall make her boast in the LORD: the humble shall hear -thereof, and be glad. - -34:3 O magnify the LORD with me, and let us exalt his name together. - -34:4 I sought the LORD, and he heard me, and delivered me from all my -fears. - -34:5 They looked unto him, and were lightened: and their faces were -not ashamed. - -34:6 This poor man cried, and the LORD heard him, and saved him out of -all his troubles. - -34:7 The angel of the LORD encampeth round about them that fear him, -and delivereth them. - -34:8 O taste and see that the LORD is good: blessed is the man that -trusteth in him. - -34:9 O fear the LORD, ye his saints: for there is no want to them that -fear him. - -34:10 The young lions do lack, and suffer hunger: but they that seek -the LORD shall not want any good thing. - -34:11 Come, ye children, hearken unto me: I will teach you the fear of -the LORD. - -34:12 What man is he that desireth life, and loveth many days, that he -may see good? - -34:13 Keep thy tongue from evil, and thy lips from speaking guile. - -34:14 Depart from evil, and do good; seek peace, and pursue it. - -34:15 The eyes of the LORD are upon the righteous, and his ears are -open unto their cry. - -34:16 The face of the LORD is against them that do evil, to cut off -the remembrance of them from the earth. - -34:17 The righteous cry, and the LORD heareth, and delivereth them out -of all their troubles. - -34:18 The LORD is nigh unto them that are of a broken heart; and -saveth such as be of a contrite spirit. - -34:19 Many are the afflictions of the righteous: but the LORD -delivereth him out of them all. - -34:20 He keepeth all his bones: not one of them is broken. - -34:21 Evil shall slay the wicked: and they that hate the righteous -shall be desolate. - -34:22 The LORD redeemeth the soul of his servants: and none of them -that trust in him shall be desolate. - - - -35:1 Plead my cause, O LORD, with them that strive with me: fight -against them that fight against me. - -35:2 Take hold of shield and buckler, and stand up for mine help. - -35:3 Draw out also the spear, and stop the way against them that -persecute me: say unto my soul, I am thy salvation. - -35:4 Let them be confounded and put to shame that seek after my soul: -let them be turned back and brought to confusion that devise my hurt. - -35:5 Let them be as chaff before the wind: and let the angel of the -LORD chase them. - -35:6 Let their way be dark and slippery: and let the angel of the LORD -persecute them. - -35:7 For without cause have they hid for me their net in a pit, which -without cause they have digged for my soul. - -35:8 Let destruction come upon him at unawares; and let his net that -he hath hid catch himself: into that very destruction let him fall. - -35:9 And my soul shall be joyful in the LORD: it shall rejoice in his -salvation. - -35:10 All my bones shall say, LORD, who is like unto thee, which -deliverest the poor from him that is too strong for him, yea, the poor -and the needy from him that spoileth him? - -35:11 False witnesses did rise up; they laid to my charge things that -I knew not. - -35:12 They rewarded me evil for good to the spoiling of my soul. - -35:13 But as for me, when they were sick, my clothing was sackcloth: I -humbled my soul with fasting; and my prayer returned into mine own -bosom. - -35:14 I behaved myself as though he had been my friend or brother: I -bowed down heavily, as one that mourneth for his mother. - -35:15 But in mine adversity they rejoiced, and gathered themselves -together: yea, the abjects gathered themselves together against me, -and I knew it not; they did tear me, and ceased not: - -35:16 With hypocritical mockers in feasts, they gnashed upon me with -their teeth. - -35:17 Lord, how long wilt thou look on? rescue my soul from their -destructions, my darling from the lions. - -35:18 I will give thee thanks in the great congregation: I will praise -thee among much people. - -35:19 Let not them that are mine enemies wrongfully rejoice over me: -neither let them wink with the eye that hate me without a cause. - -35:20 For they speak not peace: but they devise deceitful matters -against them that are quiet in the land. - -35:21 Yea, they opened their mouth wide against me, and said, Aha, -aha, our eye hath seen it. - -35:22 This thou hast seen, O LORD: keep not silence: O Lord, be not -far from me. - -35:23 Stir up thyself, and awake to my judgment, even unto my cause, -my God and my Lord. - -35:24 Judge me, O LORD my God, according to thy righteousness; and let -them not rejoice over me. - -35:25 Let them not say in their hearts, Ah, so would we have it: let -them not say, We have swallowed him up. - -35:26 Let them be ashamed and brought to confusion together that -rejoice at mine hurt: let them be clothed with shame and dishonour -that magnify themselves against me. - -35:27 Let them shout for joy, and be glad, that favour my righteous -cause: yea, let them say continually, Let the LORD be magnified, which -hath pleasure in the prosperity of his servant. - -35:28 And my tongue shall speak of thy righteousness and of thy praise -all the day long. - - - -36:1 The transgression of the wicked saith within my heart, that there -is no fear of God before his eyes. - -36:2 For he flattereth himself in his own eyes, until his iniquity be -found to be hateful. - -36:3 The words of his mouth are iniquity and deceit: he hath left off -to be wise, and to do good. - -36:4 He deviseth mischief upon his bed; he setteth himself in a way -that is not good; he abhorreth not evil. - -36:5 Thy mercy, O LORD, is in the heavens; and thy faithfulness -reacheth unto the clouds. - -36:6 Thy righteousness is like the great mountains; thy judgments are -a great deep: O LORD, thou preservest man and beast. - -36:7 How excellent is thy lovingkindness, O God! therefore the -children of men put their trust under the shadow of thy wings. - -36:8 They shall be abundantly satisfied with the fatness of thy house; -and thou shalt make them drink of the river of thy pleasures. - -36:9 For with thee is the fountain of life: in thy light shall we see -light. - -36:10 O continue thy lovingkindness unto them that know thee; and thy -righteousness to the upright in heart. - -36:11 Let not the foot of pride come against me, and let not the hand -of the wicked remove me. - -36:12 There are the workers of iniquity fallen: they are cast down, -and shall not be able to rise. - - - -37:1 Fret not thyself because of evildoers, neither be thou envious -against the workers of iniquity. - -37:2 For they shall soon be cut down like the grass, and wither as the -green herb. - -37:3 Trust in the LORD, and do good; so shalt thou dwell in the land, -and verily thou shalt be fed. - -37:4 Delight thyself also in the LORD: and he shall give thee the -desires of thine heart. - -37:5 Commit thy way unto the LORD; trust also in him; and he shall -bring it to pass. - -37:6 And he shall bring forth thy righteousness as the light, and thy -judgment as the noonday. - -37:7 Rest in the LORD, and wait patiently for him: fret not thyself -because of him who prospereth in his way, because of the man who -bringeth wicked devices to pass. - -37:8 Cease from anger, and forsake wrath: fret not thyself in any wise -to do evil. - -37:9 For evildoers shall be cut off: but those that wait upon the -LORD, they shall inherit the earth. - -37:10 For yet a little while, and the wicked shall not be: yea, thou -shalt diligently consider his place, and it shall not be. - -37:11 But the meek shall inherit the earth; and shall delight -themselves in the abundance of peace. - -37:12 The wicked plotteth against the just, and gnasheth upon him with -his teeth. - -37:13 The LORD shall laugh at him: for he seeth that his day is -coming. - -37:14 The wicked have drawn out the sword, and have bent their bow, to -cast down the poor and needy, and to slay such as be of upright -conversation. - -37:15 Their sword shall enter into their own heart, and their bows -shall be broken. - -37:16 A little that a righteous man hath is better than the riches of -many wicked. - -37:17 For the arms of the wicked shall be broken: but the LORD -upholdeth the righteous. - -37:18 The LORD knoweth the days of the upright: and their inheritance -shall be for ever. - -37:19 They shall not be ashamed in the evil time: and in the days of -famine they shall be satisfied. - -37:20 But the wicked shall perish, and the enemies of the LORD shall -be as the fat of lambs: they shall consume; into smoke shall they -consume away. - -37:21 The wicked borroweth, and payeth not again: but the righteous -sheweth mercy, and giveth. - -37:22 For such as be blessed of him shall inherit the earth; and they -that be cursed of him shall be cut off. - -37:23 The steps of a good man are ordered by the LORD: and he -delighteth in his way. - -37:24 Though he fall, he shall not be utterly cast down: for the LORD -upholdeth him with his hand. - -37:25 I have been young, and now am old; yet have I not seen the -righteous forsaken, nor his seed begging bread. - -37:26 He is ever merciful, and lendeth; and his seed is blessed. - -37:27 Depart from evil, and do good; and dwell for evermore. - -37:28 For the LORD loveth judgment, and forsaketh not his saints; they -are preserved for ever: but the seed of the wicked shall be cut off. - -37:29 The righteous shall inherit the land, and dwell therein for -ever. - -37:30 The mouth of the righteous speaketh wisdom, and his tongue -talketh of judgment. - -37:31 The law of his God is in his heart; none of his steps shall -slide. - -37:32 The wicked watcheth the righteous, and seeketh to slay him. - -37:33 The LORD will not leave him in his hand, nor condemn him when he -is judged. - -37:34 Wait on the LORD, and keep his way, and he shall exalt thee to -inherit the land: when the wicked are cut off, thou shalt see it. - -37:35 I have seen the wicked in great power, and spreading himself -like a green bay tree. - -37:36 Yet he passed away, and, lo, he was not: yea, I sought him, but -he could not be found. - -37:37 Mark the perfect man, and behold the upright: for the end of -that man is peace. - -37:38 But the transgressors shall be destroyed together: the end of -the wicked shall be cut off. - -37:39 But the salvation of the righteous is of the LORD: he is their -strength in the time of trouble. - -37:40 And the LORD shall help them, and deliver them: he shall deliver -them from the wicked, and save them, because they trust in him. - - - -38:1 O lord, rebuke me not in thy wrath: neither chasten me in thy hot -displeasure. - -38:2 For thine arrows stick fast in me, and thy hand presseth me sore. - -38:3 There is no soundness in my flesh because of thine anger; neither -is there any rest in my bones because of my sin. - -38:4 For mine iniquities are gone over mine head: as an heavy burden -they are too heavy for me. - -38:5 My wounds stink and are corrupt because of my foolishness. - -38:6 I am troubled; I am bowed down greatly; I go mourning all the day -long. - -38:7 For my loins are filled with a loathsome disease: and there is no -soundness in my flesh. - -38:8 I am feeble and sore broken: I have roared by reason of the -disquietness of my heart. - -38:9 Lord, all my desire is before thee; and my groaning is not hid -from thee. - -38:10 My heart panteth, my strength faileth me: as for the light of -mine eyes, it also is gone from me. - -38:11 My lovers and my friends stand aloof from my sore; and my -kinsmen stand afar off. - -38:12 They also that seek after my life lay snares for me: and they -that seek my hurt speak mischievous things, and imagine deceits all -the day long. - -38:13 But I, as a deaf man, heard not; and I was as a dumb man that -openeth not his mouth. - -38:14 Thus I was as a man that heareth not, and in whose mouth are no -reproofs. - -38:15 For in thee, O LORD, do I hope: thou wilt hear, O Lord my God. - -38:16 For I said, Hear me, lest otherwise they should rejoice over me: -when my foot slippeth, they magnify themselves against me. - -38:17 For I am ready to halt, and my sorrow is continually before me. - -38:18 For I will declare mine iniquity; I will be sorry for my sin. - -38:19 But mine enemies are lively, and they are strong: and they that -hate me wrongfully are multiplied. - -38:20 They also that render evil for good are mine adversaries; -because I follow the thing that good is. - -38:21 Forsake me not, O LORD: O my God, be not far from me. - -38:22 Make haste to help me, O Lord my salvation. - - - -39:1 I said, I will take heed to my ways, that I sin not with my -tongue: I will keep my mouth with a bridle, while the wicked is before -me. - -39:2 I was dumb with silence, I held my peace, even from good; and my -sorrow was stirred. - -39:3 My heart was hot within me, while I was musing the fire burned: -then spake I with my tongue, - -39:4 LORD, make me to know mine end, and the measure of my days, what -it is: that I may know how frail I am. - -39:5 Behold, thou hast made my days as an handbreadth; and mine age is -as nothing before thee: verily every man at his best state is -altogether vanity. - -Selah. - -39:6 Surely every man walketh in a vain shew: surely they are -disquieted in vain: he heapeth up riches, and knoweth not who shall -gather them. - -39:7 And now, Lord, what wait I for? my hope is in thee. - -39:8 Deliver me from all my transgressions: make me not the reproach -of the foolish. - -39:9 I was dumb, I opened not my mouth; because thou didst it. - -39:10 Remove thy stroke away from me: I am consumed by the blow of -thine hand. - -39:11 When thou with rebukes dost correct man for iniquity, thou -makest his beauty to consume away like a moth: surely every man is -vanity. Selah. - -39:12 Hear my prayer, O LORD, and give ear unto my cry; hold not thy -peace at my tears: for I am a stranger with thee, and a sojourner, as -all my fathers were. - -39:13 O spare me, that I may recover strength, before I go hence, and -be no more. - - - -40:1 I waited patiently for the LORD; and he inclined unto me, and -heard my cry. - -40:2 He brought me up also out of an horrible pit, out of the miry -clay, and set my feet upon a rock, and established my goings. - -40:3 And he hath put a new song in my mouth, even praise unto our God: -many shall see it, and fear, and shall trust in the LORD. - -40:4 Blessed is that man that maketh the LORD his trust, and -respecteth not the proud, nor such as turn aside to lies. - -40:5 Many, O LORD my God, are thy wonderful works which thou hast -done, and thy thoughts which are to us-ward: they cannot be reckoned -up in order unto thee: if I would declare and speak of them, they are -more than can be numbered. - -40:6 Sacrifice and offering thou didst not desire; mine ears hast thou -opened: burnt offering and sin offering hast thou not required. - -40:7 Then said I, Lo, I come: in the volume of the book it is written -of me, - -40:8 I delight to do thy will, O my God: yea, thy law is within my -heart. - -40:9 I have preached righteousness in the great congregation: lo, I -have not refrained my lips, O LORD, thou knowest. - -40:10 I have not hid thy righteousness within my heart; I have -declared thy faithfulness and thy salvation: I have not concealed thy -lovingkindness and thy truth from the great congregation. - -40:11 Withhold not thou thy tender mercies from me, O LORD: let thy -lovingkindness and thy truth continually preserve me. - -40:12 For innumerable evils have compassed me about: mine iniquities -have taken hold upon me, so that I am not able to look up; they are -more than the hairs of mine head: therefore my heart faileth me. - -40:13 Be pleased, O LORD, to deliver me: O LORD, make haste to help -me. - -40:14 Let them be ashamed and confounded together that seek after my -soul to destroy it; let them be driven backward and put to shame that -wish me evil. - -40:15 Let them be desolate for a reward of their shame that say unto -me, Aha, aha. - -40:16 Let all those that seek thee rejoice and be glad in thee: let -such as love thy salvation say continually, The LORD be magnified. - -40:17 But I am poor and needy; yet the Lord thinketh upon me: thou art -my help and my deliverer; make no tarrying, O my God. - - - -41:1 Blessed is he that considereth the poor: the LORD will deliver -him in time of trouble. - -41:2 The LORD will preserve him, and keep him alive; and he shall be -blessed upon the earth: and thou wilt not deliver him unto the will of -his enemies. - -41:3 The LORD will strengthen him upon the bed of languishing: thou -wilt make all his bed in his sickness. - -41:4 I said, LORD, be merciful unto me: heal my soul; for I have -sinned against thee. - -41:5 Mine enemies speak evil of me, When shall he die, and his name -perish? - -41:6 And if he come to see me, he speaketh vanity: his heart gathereth -iniquity to itself; when he goeth abroad, he telleth it. - -41:7 All that hate me whisper together against me: against me do they -devise my hurt. - -41:8 An evil disease, say they, cleaveth fast unto him: and now that -he lieth he shall rise up no more. - -41:9 Yea, mine own familiar friend, in whom I trusted, which did eat -of my bread, hath lifted up his heel against me. - -41:10 But thou, O LORD, be merciful unto me, and raise me up, that I -may requite them. - -41:11 By this I know that thou favourest me, because mine enemy doth -not triumph over me. - -41:12 And as for me, thou upholdest me in mine integrity, and settest -me before thy face for ever. - -41:13 Blessed be the LORD God of Israel from everlasting, and to -everlasting. Amen, and Amen. - - - -42:1 As the hart panteth after the water brooks, so panteth my soul -after thee, O God. - -42:2 My soul thirsteth for God, for the living God: when shall I come -and appear before God? - -42:3 My tears have been my meat day and night, while they continually -say unto me, Where is thy God? - -42:4 When I remember these things, I pour out my soul in me: for I had -gone with the multitude, I went with them to the house of God, with -the voice of joy and praise, with a multitude that kept holyday. - -42:5 Why art thou cast down, O my soul? and why art thou disquieted in -me? hope thou in God: for I shall yet praise him for the help of his -countenance. - -42:6 O my God, my soul is cast down within me: therefore will I -remember thee from the land of Jordan, and of the Hermonites, from the -hill Mizar. - -42:7 Deep calleth unto deep at the noise of thy waterspouts: all thy -waves and thy billows are gone over me. - -42:8 Yet the LORD will command his lovingkindness in the day time, and -in the night his song shall be with me, and my prayer unto the God of -my life. - -42:9 I will say unto God my rock, Why hast thou forgotten me? why go I -mourning because of the oppression of the enemy? - -42:10 As with a sword in my bones, mine enemies reproach me; while -they say daily unto me, Where is thy God? - -42:11 Why art thou cast down, O my soul? and why art thou disquieted -within me? hope thou in God: for I shall yet praise him, who is the -health of my countenance, and my God. - - - -43:1 Judge me, O God, and plead my cause against an ungodly nation: O -deliver me from the deceitful and unjust man. - -43:2 For thou art the God of my strength: why dost thou cast me off? -why go I mourning because of the oppression of the enemy? - -43:3 O send out thy light and thy truth: let them lead me; let them -bring me unto thy holy hill, and to thy tabernacles. - -43:4 Then will I go unto the altar of God, unto God my exceeding joy: -yea, upon the harp will I praise thee, O God my God. - -43:5 Why art thou cast down, O my soul? and why art thou disquieted -within me? hope in God: for I shall yet praise him, who is the health -of my countenance, and my God. - - - -44:1 We have heard with our ears, O God, our fathers have told us, -what work thou didst in their days, in the times of old. - -44:2 How thou didst drive out the heathen with thy hand, and plantedst -them; how thou didst afflict the people, and cast them out. - -44:3 For they got not the land in possession by their own sword, -neither did their own arm save them: but thy right hand, and thine -arm, and the light of thy countenance, because thou hadst a favour -unto them. - -44:4 Thou art my King, O God: command deliverances for Jacob. - -44:5 Through thee will we push down our enemies: through thy name will -we tread them under that rise up against us. - -44:6 For I will not trust in my bow, neither shall my sword save me. - -44:7 But thou hast saved us from our enemies, and hast put them to -shame that hated us. - -44:8 In God we boast all the day long, and praise thy name for ever. - -Selah. - -44:9 But thou hast cast off, and put us to shame; and goest not forth -with our armies. - -44:10 Thou makest us to turn back from the enemy: and they which hate -us spoil for themselves. - -44:11 Thou hast given us like sheep appointed for meat; and hast -scattered us among the heathen. - -44:12 Thou sellest thy people for nought, and dost not increase thy -wealth by their price. - -44:13 Thou makest us a reproach to our neighbours, a scorn and a -derision to them that are round about us. - -44:14 Thou makest us a byword among the heathen, a shaking of the head -among the people. - -44:15 My confusion is continually before me, and the shame of my face -hath covered me, - -44:16 For the voice of him that reproacheth and blasphemeth; by reason -of the enemy and avenger. - -44:17 All this is come upon us; yet have we not forgotten thee, -neither have we dealt falsely in thy covenant. - -44:18 Our heart is not turned back, neither have our steps declined -from thy way; - -44:19 Though thou hast sore broken us in the place of dragons, and -covered us with the shadow of death. - -44:20 If we have forgotten the name of our God, or stretched out our -hands to a strange god; - -44:21 Shall not God search this out? for he knoweth the secrets of the -heart. - -44:22 Yea, for thy sake are we killed all the day long; we are counted -as sheep for the slaughter. - -44:23 Awake, why sleepest thou, O Lord? arise, cast us not off for -ever. - -44:24 Wherefore hidest thou thy face, and forgettest our affliction -and our oppression? - -44:25 For our soul is bowed down to the dust: our belly cleaveth unto -the earth. - -44:26 Arise for our help, and redeem us for thy mercies' sake. - - - -45:1 My heart is inditing a good matter: I speak of the things which I -have made touching the king: my tongue is the pen of a ready writer. - -45:2 Thou art fairer than the children of men: grace is poured into -thy lips: therefore God hath blessed thee for ever. - -45:3 Gird thy sword upon thy thigh, O most mighty, with thy glory and -thy majesty. - -45:4 And in thy majesty ride prosperously because of truth and -meekness and righteousness; and thy right hand shall teach thee -terrible things. - -45:5 Thine arrows are sharp in the heart of the king's enemies; -whereby the people fall under thee. - -45:6 Thy throne, O God, is for ever and ever: the sceptre of thy -kingdom is a right sceptre. - -45:7 Thou lovest righteousness, and hatest wickedness: therefore God, -thy God, hath anointed thee with the oil of gladness above thy -fellows. - -45:8 All thy garments smell of myrrh, and aloes, and cassia, out of -the ivory palaces, whereby they have made thee glad. - -45:9 Kings' daughters were among thy honourable women: upon thy right -hand did stand the queen in gold of Ophir. - -45:10 Hearken, O daughter, and consider, and incline thine ear; forget -also thine own people, and thy father's house; - -45:11 So shall the king greatly desire thy beauty: for he is thy Lord; -and worship thou him. - -45:12 And the daughter of Tyre shall be there with a gift; even the -rich among the people shall intreat thy favour. - -45:13 The king's daughter is all glorious within: her clothing is of -wrought gold. - -45:14 She shall be brought unto the king in raiment of needlework: the -virgins her companions that follow her shall be brought unto thee. - -45:15 With gladness and rejoicing shall they be brought: they shall -enter into the king's palace. - -45:16 Instead of thy fathers shall be thy children, whom thou mayest -make princes in all the earth. - -45:17 I will make thy name to be remembered in all generations: -therefore shall the people praise thee for ever and ever. - - - -46:1 God is our refuge and strength, a very present help in trouble. - -46:2 Therefore will not we fear, though the earth be removed, and -though the mountains be carried into the midst of the sea; - -46:3 Though the waters thereof roar and be troubled, though the -mountains shake with the swelling thereof. Selah. - -46:4 There is a river, the streams whereof shall make glad the city of -God, the holy place of the tabernacles of the most High. - -46:5 God is in the midst of her; she shall not be moved: God shall -help her, and that right early. - -46:6 The heathen raged, the kingdoms were moved: he uttered his voice, -the earth melted. - -46:7 The LORD of hosts is with us; the God of Jacob is our refuge. -Selah. - -46:8 Come, behold the works of the LORD, what desolations he hath made -in the earth. - -46:9 He maketh wars to cease unto the end of the earth; he breaketh -the bow, and cutteth the spear in sunder; he burneth the chariot in -the fire. - -46:10 Be still, and know that I am God: I will be exalted among the -heathen, I will be exalted in the earth. - -46:11 The LORD of hosts is with us; the God of Jacob is our refuge. -Selah. - - - -47:1 O clap your hands, all ye people; shout unto God with the voice -of triumph. - -47:2 For the LORD most high is terrible; he is a great King over all -the earth. - -47:3 He shall subdue the people under us, and the nations under our -feet. - -47:4 He shall choose our inheritance for us, the excellency of Jacob -whom he loved. Selah. - -47:5 God is gone up with a shout, the LORD with the sound of a -trumpet. - -47:6 Sing praises to God, sing praises: sing praises unto our King, -sing praises. - -47:7 For God is the King of all the earth: sing ye praises with -understanding. - -47:8 God reigneth over the heathen: God sitteth upon the throne of his -holiness. - -47:9 The princes of the people are gathered together, even the people -of the God of Abraham: for the shields of the earth belong unto God: -he is greatly exalted. - - - -48:1 Great is the LORD, and greatly to be praised in the city of our -God, in the mountain of his holiness. - -48:2 Beautiful for situation, the joy of the whole earth, is mount -Zion, on the sides of the north, the city of the great King. - -48:3 God is known in her palaces for a refuge. - -48:4 For, lo, the kings were assembled, they passed by together. - -48:5 They saw it, and so they marvelled; they were troubled, and -hasted away. - -48:6 Fear took hold upon them there, and pain, as of a woman in -travail. - -48:7 Thou breakest the ships of Tarshish with an east wind. - -48:8 As we have heard, so have we seen in the city of the LORD of -hosts, in the city of our God: God will establish it for ever. Selah. - -48:9 We have thought of thy lovingkindness, O God, in the midst of thy -temple. - -48:10 According to thy name, O God, so is thy praise unto the ends of -the earth: thy right hand is full of righteousness. - -48:11 Let mount Zion rejoice, let the daughters of Judah be glad, -because of thy judgments. - -48:12 Walk about Zion, and go round about her: tell the towers -thereof. - -48:13 Mark ye well her bulwarks, consider her palaces; that ye may -tell it to the generation following. - -48:14 For this God is our God for ever and ever: he will be our guide -even unto death. - - - -49:1 Hear this, all ye people; give ear, all ye inhabitants of the -world: - -49:2 Both low and high, rich and poor, together. - -49:3 My mouth shall speak of wisdom; and the meditation of my heart -shall be of understanding. - -49:4 I will incline mine ear to a parable: I will open my dark saying -upon the harp. - -49:5 Wherefore should I fear in the days of evil, when the iniquity of -my heels shall compass me about? - -49:6 They that trust in their wealth, and boast themselves in the -multitude of their riches; - -49:7 None of them can by any means redeem his brother, nor give to God -a ransom for him: - -49:8 (For the redemption of their soul is precious, and it ceaseth for -ever:) - -49:9 That he should still live for ever, and not see corruption. - -49:10 For he seeth that wise men die, likewise the fool and the -brutish person perish, and leave their wealth to others. - -49:11 Their inward thought is, that their houses shall continue for -ever, and their dwelling places to all generations; they call their -lands after their own names. - -49:12 Nevertheless man being in honour abideth not: he is like the -beasts that perish. - -49:13 This their way is their folly: yet their posterity approve their -sayings. Selah. - -49:14 Like sheep they are laid in the grave; death shall feed on them; -and the upright shall have dominion over them in the morning; and -their beauty shall consume in the grave from their dwelling. - -49:15 But God will redeem my soul from the power of the grave: for he -shall receive me. Selah. - -49:16 Be not thou afraid when one is made rich, when the glory of his -house is increased; - -49:17 For when he dieth he shall carry nothing away: his glory shall -not descend after him. - -49:18 Though while he lived he blessed his soul: and men will praise -thee, when thou doest well to thyself. - -49:19 He shall go to the generation of his fathers; they shall never -see light. - -49:20 Man that is in honour, and understandeth not, is like the beasts -that perish. - - - -50:1 The mighty God, even the LORD, hath spoken, and called the earth -from the rising of the sun unto the going down thereof. - -50:2 Out of Zion, the perfection of beauty, God hath shined. - -50:3 Our God shall come, and shall not keep silence: a fire shall -devour before him, and it shall be very tempestuous round about him. - -50:4 He shall call to the heavens from above, and to the earth, that -he may judge his people. - -50:5 Gather my saints together unto me; those that have made a -covenant with me by sacrifice. - -50:6 And the heavens shall declare his righteousness: for God is judge -himself. Selah. - -50:7 Hear, O my people, and I will speak; O Israel, and I will testify -against thee: I am God, even thy God. - -50:8 I will not reprove thee for thy sacrifices or thy burnt -offerings, to have been continually before me. - -50:9 I will take no bullock out of thy house, nor he goats out of thy -folds. - -50:10 For every beast of the forest is mine, and the cattle upon a -thousand hills. - -50:11 I know all the fowls of the mountains: and the wild beasts of -the field are mine. - -50:12 If I were hungry, I would not tell thee: for the world is mine, -and the fulness thereof. - -50:13 Will I eat the flesh of bulls, or drink the blood of goats? - -50:14 Offer unto God thanksgiving; and pay thy vows unto the most -High: - -50:15 And call upon me in the day of trouble: I will deliver thee, and -thou shalt glorify me. - -50:16 But unto the wicked God saith, What hast thou to do to declare -my statutes, or that thou shouldest take my covenant in thy mouth? - -50:17 Seeing thou hatest instruction, and casteth my words behind -thee. - -50:18 When thou sawest a thief, then thou consentedst with him, and -hast been partaker with adulterers. - -50:19 Thou givest thy mouth to evil, and thy tongue frameth deceit. - -50:20 Thou sittest and speakest against thy brother; thou slanderest -thine own mother's son. - -50:21 These things hast thou done, and I kept silence; thou thoughtest -that I was altogether such an one as thyself: but I will reprove thee, -and set them in order before thine eyes. - -50:22 Now consider this, ye that forget God, lest I tear you in -pieces, and there be none to deliver. - -50:23 Whoso offereth praise glorifieth me: and to him that ordereth -his conversation aright will I shew the salvation of God. - - - -51:1 Have mercy upon me, O God, according to thy lovingkindness: -according unto the multitude of thy tender mercies blot out my -transgressions. - -51:2 Wash me throughly from mine iniquity, and cleanse me from my sin. - -51:3 For I acknowledge my transgressions: and my sin is ever before -me. - -51:4 Against thee, thee only, have I sinned, and done this evil in thy -sight: that thou mightest be justified when thou speakest, and be -clear when thou judgest. - -51:5 Behold, I was shapen in iniquity; and in sin did my mother -conceive me. - -51:6 Behold, thou desirest truth in the inward parts: and in the -hidden part thou shalt make me to know wisdom. - -51:7 Purge me with hyssop, and I shall be clean: wash me, and I shall -be whiter than snow. - -51:8 Make me to hear joy and gladness; that the bones which thou hast -broken may rejoice. - -51:9 Hide thy face from my sins, and blot out all mine iniquities. - -51:10 Create in me a clean heart, O God; and renew a right spirit -within me. - -51:11 Cast me not away from thy presence; and take not thy holy spirit -from me. - -51:12 Restore unto me the joy of thy salvation; and uphold me with thy -free spirit. - -51:13 Then will I teach transgressors thy ways; and sinners shall be -converted unto thee. - -51:14 Deliver me from bloodguiltiness, O God, thou God of my -salvation: and my tongue shall sing aloud of thy righteousness. - -51:15 O Lord, open thou my lips; and my mouth shall shew forth thy -praise. - -51:16 For thou desirest not sacrifice; else would I give it: thou -delightest not in burnt offering. - -51:17 The sacrifices of God are a broken spirit: a broken and a -contrite heart, O God, thou wilt not despise. - -51:18 Do good in thy good pleasure unto Zion: build thou the walls of -Jerusalem. - -51:19 Then shalt thou be pleased with the sacrifices of righteousness, -with burnt offering and whole burnt offering: then shall they offer -bullocks upon thine altar. - - - -52:1 Why boastest thou thyself in mischief, O mighty man? the goodness -of God endureth continually. - -52:2 The tongue deviseth mischiefs; like a sharp razor, working -deceitfully. - -52:3 Thou lovest evil more than good; and lying rather than to speak -righteousness. Selah. - -52:4 Thou lovest all devouring words, O thou deceitful tongue. - -52:5 God shall likewise destroy thee for ever, he shall take thee -away, and pluck thee out of thy dwelling place, and root thee out of -the land of the living. Selah. - -52:6 The righteous also shall see, and fear, and shall laugh at him: - -52:7 Lo, this is the man that made not God his strength; but trusted -in the abundance of his riches, and strengthened himself in his -wickedness. - -52:8 But I am like a green olive tree in the house of God: I trust in -the mercy of God for ever and ever. - -52:9 I will praise thee for ever, because thou hast done it: and I -will wait on thy name; for it is good before thy saints. - - - -53:1 The fool hath said in his heart, There is no God. Corrupt are -they, and have done abominable iniquity: there is none that doeth -good. - -53:2 God looked down from heaven upon the children of men, to see if -there were any that did understand, that did seek God. - -53:3 Every one of them is gone back: they are altogether become -filthy; there is none that doeth good, no, not one. - -53:4 Have the workers of iniquity no knowledge? who eat up my people -as they eat bread: they have not called upon God. - -53:5 There were they in great fear, where no fear was: for God hath -scattered the bones of him that encampeth against thee: thou hast put -them to shame, because God hath despised them. - -53:6 Oh that the salvation of Israel were come out of Zion! When God -bringeth back the captivity of his people, Jacob shall rejoice, and -Israel shall be glad. - - - -54:1 Save me, O God, by thy name, and judge me by thy strength. - -54:2 Hear my prayer, O God; give ear to the words of my mouth. - -54:3 For strangers are risen up against me, and oppressors seek after -my soul: they have not set God before them. Selah. - -54:4 Behold, God is mine helper: the Lord is with them that uphold my -soul. - -54:5 He shall reward evil unto mine enemies: cut them off in thy -truth. - -54:6 I will freely sacrifice unto thee: I will praise thy name, O -LORD; for it is good. - -54:7 For he hath delivered me out of all trouble: and mine eye hath -seen his desire upon mine enemies. - - - -55:1 Give ear to my prayer, O God; and hide not thyself from my -supplication. - -55:2 Attend unto me, and hear me: I mourn in my complaint, and make a -noise; - -55:3 Because of the voice of the enemy, because of the oppression of -the wicked: for they cast iniquity upon me, and in wrath they hate me. - -55:4 My heart is sore pained within me: and the terrors of death are -fallen upon me. - -55:5 Fearfulness and trembling are come upon me, and horror hath -overwhelmed me. - -55:6 And I said, Oh that I had wings like a dove! for then would I fly -away, and be at rest. - -55:7 Lo, then would I wander far off, and remain in the wilderness. -Selah. - -55:8 I would hasten my escape from the windy storm and tempest. - -55:9 Destroy, O Lord, and divide their tongues: for I have seen -violence and strife in the city. - -55:10 Day and night they go about it upon the walls thereof: mischief -also and sorrow are in the midst of it. - -55:11 Wickedness is in the midst thereof: deceit and guile depart not -from her streets. - -55:12 For it was not an enemy that reproached me; then I could have -borne it: neither was it he that hated me that did magnify himself -against me; then I would have hid myself from him: - -55:13 But it was thou, a man mine equal, my guide, and mine -acquaintance. - -55:14 We took sweet counsel together, and walked unto the house of God -in company. - -55:15 Let death seize upon them, and let them go down quick into hell: -for wickedness is in their dwellings, and among them. - -55:16 As for me, I will call upon God; and the LORD shall save me. - -55:17 Evening, and morning, and at noon, will I pray, and cry aloud: -and he shall hear my voice. - -55:18 He hath delivered my soul in peace from the battle that was -against me: for there were many with me. - -55:19 God shall hear, and afflict them, even he that abideth of old. - -Selah. Because they have no changes, therefore they fear not God. - -55:20 He hath put forth his hands against such as be at peace with -him: he hath broken his covenant. - -55:21 The words of his mouth were smoother than butter, but war was in -his heart: his words were softer than oil, yet were they drawn swords. - -55:22 Cast thy burden upon the LORD, and he shall sustain thee: he -shall never suffer the righteous to be moved. - -55:23 But thou, O God, shalt bring them down into the pit of -destruction: bloody and deceitful men shall not live out half their -days; but I will trust in thee. - - - -56:1 Be merciful unto me, O God: for man would swallow me up; he -fighting daily oppresseth me. - -56:2 Mine enemies would daily swallow me up: for they be many that -fight against me, O thou most High. - -56:3 What time I am afraid, I will trust in thee. - -56:4 In God I will praise his word, in God I have put my trust; I will -not fear what flesh can do unto me. - -56:5 Every day they wrest my words: all their thoughts are against me -for evil. - -56:6 They gather themselves together, they hide themselves, they mark -my steps, when they wait for my soul. - -56:7 Shall they escape by iniquity? in thine anger cast down the -people, O God. - -56:8 Thou tellest my wanderings: put thou my tears into thy bottle: -are they not in thy book? - -56:9 When I cry unto thee, then shall mine enemies turn back: this I -know; for God is for me. - -56:10 In God will I praise his word: in the LORD will I praise his -word. - -56:11 In God have I put my trust: I will not be afraid what man can do -unto me. - -56:12 Thy vows are upon me, O God: I will render praises unto thee. - -56:13 For thou hast delivered my soul from death: wilt not thou -deliver my feet from falling, that I may walk before God in the light -of the living? - - - -57:1 Be merciful unto me, O God, be merciful unto me: for my soul -trusteth in thee: yea, in the shadow of thy wings will I make my -refuge, until these calamities be overpast. - -57:2 I will cry unto God most high; unto God that performeth all -things for me. - -57:3 He shall send from heaven, and save me from the reproach of him -that would swallow me up. Selah. God shall send forth his mercy and -his truth. - -57:4 My soul is among lions: and I lie even among them that are set on -fire, even the sons of men, whose teeth are spears and arrows, and -their tongue a sharp sword. - -57:5 Be thou exalted, O God, above the heavens; let thy glory be above -all the earth. - -57:6 They have prepared a net for my steps; my soul is bowed down: -they have digged a pit before me, into the midst whereof they are -fallen themselves. Selah. - -57:7 My heart is fixed, O God, my heart is fixed: I will sing and give -praise. - -57:8 Awake up, my glory; awake, psaltery and harp: I myself will awake -early. - -57:9 I will praise thee, O Lord, among the people: I will sing unto -thee among the nations. - -57:10 For thy mercy is great unto the heavens, and thy truth unto the -clouds. - -57:11 Be thou exalted, O God, above the heavens: let thy glory be -above all the earth. - - - -58:1 Do ye indeed speak righteousness, O congregation? do ye judge -uprightly, O ye sons of men? - -58:2 Yea, in heart ye work wickedness; ye weigh the violence of your -hands in the earth. - -58:3 The wicked are estranged from the womb: they go astray as soon as -they be born, speaking lies. - -58:4 Their poison is like the poison of a serpent: they are like the -deaf adder that stoppeth her ear; - -58:5 Which will not hearken to the voice of charmers, charming never -so wisely. - -58:6 Break their teeth, O God, in their mouth: break out the great -teeth of the young lions, O LORD. - -58:7 Let them melt away as waters which run continually: when he -bendeth his bow to shoot his arrows, let them be as cut in pieces. - -58:8 As a snail which melteth, let every one of them pass away: like -the untimely birth of a woman, that they may not see the sun. - -58:9 Before your pots can feel the thorns, he shall take them away as -with a whirlwind, both living, and in his wrath. - -58:10 The righteous shall rejoice when he seeth the vengeance: he -shall wash his feet in the blood of the wicked. - -58:11 So that a man shall say, Verily there is a reward for the -righteous: verily he is a God that judgeth in the earth. - - - -59:1 Deliver me from mine enemies, O my God: defend me from them that -rise up against me. - -59:2 Deliver me from the workers of iniquity, and save me from bloody -men. - -59:3 For, lo, they lie in wait for my soul: the mighty are gathered -against me; not for my transgression, nor for my sin, O LORD. - -59:4 They run and prepare themselves without my fault: awake to help -me, and behold. - -59:5 Thou therefore, O LORD God of hosts, the God of Israel, awake to -visit all the heathen: be not merciful to any wicked transgressors. -Selah. - -59:6 They return at evening: they make a noise like a dog, and go -round about the city. - -59:7 Behold, they belch out with their mouth: swords are in their -lips: for who, say they, doth hear? - -59:8 But thou, O LORD, shalt laugh at them; thou shalt have all the -heathen in derision. - -59:9 Because of his strength will I wait upon thee: for God is my -defence. - -59:10 The God of my mercy shall prevent me: God shall let me see my -desire upon mine enemies. - -59:11 Slay them not, lest my people forget: scatter them by thy power; -and bring them down, O Lord our shield. - -59:12 For the sin of their mouth and the words of their lips let them -even be taken in their pride: and for cursing and lying which they -speak. - -59:13 Consume them in wrath, consume them, that they may not be: and -let them know that God ruleth in Jacob unto the ends of the earth. -Selah. - -59:14 And at evening let them return; and let them make a noise like a -dog, and go round about the city. - -59:15 Let them wander up and down for meat, and grudge if they be not -satisfied. - -59:16 But I will sing of thy power; yea, I will sing aloud of thy -mercy in the morning: for thou hast been my defence and refuge in the -day of my trouble. - -59:17 Unto thee, O my strength, will I sing: for God is my defence, -and the God of my mercy. - - - -60:1 O God, thou hast cast us off, thou hast scattered us, thou hast -been displeased; O turn thyself to us again. - -60:2 Thou hast made the earth to tremble; thou hast broken it: heal -the breaches thereof; for it shaketh. - -60:3 Thou hast shewed thy people hard things: thou hast made us to -drink the wine of astonishment. - -60:4 Thou hast given a banner to them that fear thee, that it may be -displayed because of the truth. Selah. - -60:5 That thy beloved may be delivered; save with thy right hand, and -hear me. - -60:6 God hath spoken in his holiness; I will rejoice, I will divide -Shechem, and mete out the valley of Succoth. - -60:7 Gilead is mine, and Manasseh is mine; Ephraim also is the -strength of mine head; Judah is my lawgiver; - -60:8 Moab is my washpot; over Edom will I cast out my shoe: Philistia, -triumph thou because of me. - -60:9 Who will bring me into the strong city? who will lead me into -Edom? - -60:10 Wilt not thou, O God, which hadst cast us off? and thou, O God, -which didst not go out with our armies? - -60:11 Give us help from trouble: for vain is the help of man. - -60:12 Through God we shall do valiantly: for he it is that shall tread -down our enemies. - - - -61:1 Hear my cry, O God; attend unto my prayer. - -61:2 From the end of the earth will I cry unto thee, when my heart is -overwhelmed: lead me to the rock that is higher than I. - -61:3 For thou hast been a shelter for me, and a strong tower from the -enemy. - -61:4 I will abide in thy tabernacle for ever: I will trust in the -covert of thy wings. Selah. - -61:5 For thou, O God, hast heard my vows: thou hast given me the -heritage of those that fear thy name. - -61:6 Thou wilt prolong the king's life: and his years as many -generations. - -61:7 He shall abide before God for ever: O prepare mercy and truth, -which may preserve him. - -61:8 So will I sing praise unto thy name for ever, that I may daily -perform my vows. - - - -62:1 Truly my soul waiteth upon God: from him cometh my salvation. - -62:2 He only is my rock and my salvation; he is my defence; I shall -not be greatly moved. - -62:3 How long will ye imagine mischief against a man? ye shall be -slain all of you: as a bowing wall shall ye be, and as a tottering -fence. - -62:4 They only consult to cast him down from his excellency: they -delight in lies: they bless with their mouth, but they curse inwardly. -Selah. - -62:5 My soul, wait thou only upon God; for my expectation is from him. - -62:6 He only is my rock and my salvation: he is my defence; I shall -not be moved. - -62:7 In God is my salvation and my glory: the rock of my strength, and -my refuge, is in God. - -62:8 Trust in him at all times; ye people, pour out your heart before -him: God is a refuge for us. Selah. - -62:9 Surely men of low degree are vanity, and men of high degree are a -lie: to be laid in the balance, they are altogether lighter than -vanity. - -62:10 Trust not in oppression, and become not vain in robbery: if -riches increase, set not your heart upon them. - -62:11 God hath spoken once; twice have I heard this; that power -belongeth unto God. - -62:12 Also unto thee, O Lord, belongeth mercy: for thou renderest to -every man according to his work. - - - -63:1 O God, thou art my God; early will I seek thee: my soul thirsteth -for thee, my flesh longeth for thee in a dry and thirsty land, where -no water is; - -63:2 To see thy power and thy glory, so as I have seen thee in the -sanctuary. - -63:3 Because thy lovingkindness is better than life, my lips shall -praise thee. - -63:4 Thus will I bless thee while I live: I will lift up my hands in -thy name. - -63:5 My soul shall be satisfied as with marrow and fatness; and my -mouth shall praise thee with joyful lips: - -63:6 When I remember thee upon my bed, and meditate on thee in the -night watches. - -63:7 Because thou hast been my help, therefore in the shadow of thy -wings will I rejoice. - -63:8 My soul followeth hard after thee: thy right hand upholdeth me. - -63:9 But those that seek my soul, to destroy it, shall go into the -lower parts of the earth. - -63:10 They shall fall by the sword: they shall be a portion for foxes. - -63:11 But the king shall rejoice in God; every one that sweareth by -him shall glory: but the mouth of them that speak lies shall be -stopped. - - - -64:1 Hear my voice, O God, in my prayer: preserve my life from fear of -the enemy. - -64:2 Hide me from the secret counsel of the wicked; from the -insurrection of the workers of iniquity: - -64:3 Who whet their tongue like a sword, and bend their bows to shoot -their arrows, even bitter words: - -64:4 That they may shoot in secret at the perfect: suddenly do they -shoot at him, and fear not. - -64:5 They encourage themselves in an evil matter: they commune of -laying snares privily; they say, Who shall see them? - -64:6 They search out iniquities; they accomplish a diligent search: -both the inward thought of every one of them, and the heart, is deep. - -64:7 But God shall shoot at them with an arrow; suddenly shall they be -wounded. - -64:8 So they shall make their own tongue to fall upon themselves: all -that see them shall flee away. - -64:9 And all men shall fear, and shall declare the work of God; for -they shall wisely consider of his doing. - -64:10 The righteous shall be glad in the LORD, and shall trust in him; -and all the upright in heart shall glory. - - - -65:1 Praise waiteth for thee, O God, in Sion: and unto thee shall the -vow be performed. - -65:2 O thou that hearest prayer, unto thee shall all flesh come. - -65:3 Iniquities prevail against me: as for our transgressions, thou -shalt purge them away. - -65:4 Blessed is the man whom thou choosest, and causest to approach -unto thee, that he may dwell in thy courts: we shall be satisfied with -the goodness of thy house, even of thy holy temple. - -65:5 By terrible things in righteousness wilt thou answer us, O God of -our salvation; who art the confidence of all the ends of the earth, -and of them that are afar off upon the sea: - -65:6 Which by his strength setteth fast the mountains; being girded -with power: - -65:7 Which stilleth the noise of the seas, the noise of their waves, -and the tumult of the people. - -65:8 They also that dwell in the uttermost parts are afraid at thy -tokens: thou makest the outgoings of the morning and evening to -rejoice. - -65:9 Thou visitest the earth, and waterest it: thou greatly enrichest -it with the river of God, which is full of water: thou preparest them -corn, when thou hast so provided for it. - -65:10 Thou waterest the ridges thereof abundantly: thou settlest the -furrows thereof: thou makest it soft with showers: thou blessest the -springing thereof. - -65:11 Thou crownest the year with thy goodness; and thy paths drop -fatness. - -65:12 They drop upon the pastures of the wilderness: and the little -hills rejoice on every side. - -65:13 The pastures are clothed with flocks; the valleys also are -covered over with corn; they shout for joy, they also sing. - - - -66:1 Make a joyful noise unto God, all ye lands: - -66:2 Sing forth the honour of his name: make his praise glorious. - -66:3 Say unto God, How terrible art thou in thy works! through the -greatness of thy power shall thine enemies submit themselves unto -thee. - -66:4 All the earth shall worship thee, and shall sing unto thee; they -shall sing to thy name. Selah. - -66:5 Come and see the works of God: he is terrible in his doing toward -the children of men. - -66:6 He turned the sea into dry land: they went through the flood on -foot: there did we rejoice in him. - -66:7 He ruleth by his power for ever; his eyes behold the nations: let -not the rebellious exalt themselves. Selah. - -66:8 O bless our God, ye people, and make the voice of his praise to -be heard: - -66:9 Which holdeth our soul in life, and suffereth not our feet to be -moved. - -66:10 For thou, O God, hast proved us: thou hast tried us, as silver -is tried. - -66:11 Thou broughtest us into the net; thou laidst affliction upon our -loins. - -66:12 Thou hast caused men to ride over our heads; we went through -fire and through water: but thou broughtest us out into a wealthy -place. - -66:13 I will go into thy house with burnt offerings: I will pay thee -my vows, - -66:14 Which my lips have uttered, and my mouth hath spoken, when I was -in trouble. - -66:15 I will offer unto thee burnt sacrifices of fatlings, with the -incense of rams; I will offer bullocks with goats. Selah. - -66:16 Come and hear, all ye that fear God, and I will declare what he -hath done for my soul. - -66:17 I cried unto him with my mouth, and he was extolled with my -tongue. - -66:18 If I regard iniquity in my heart, the Lord will not hear me: - -66:19 But verily God hath heard me; he hath attended to the voice of -my prayer. - -66:20 Blessed be God, which hath not turned away my prayer, nor his -mercy from me. - - - -67:1 God be merciful unto us, and bless us; and cause his face to -shine upon us; Selah. - -67:2 That thy way may be known upon earth, thy saving health among all -nations. - -67:3 Let the people praise thee, O God; let all the people praise -thee. - -67:4 O let the nations be glad and sing for joy: for thou shalt judge -the people righteously, and govern the nations upon earth. Selah. - -67:5 Let the people praise thee, O God; let all the people praise -thee. - -67:6 Then shall the earth yield her increase; and God, even our own -God, shall bless us. - -67:7 God shall bless us; and all the ends of the earth shall fear him. - - - -68:1 Let God arise, let his enemies be scattered: let them also that -hate him flee before him. - -68:2 As smoke is driven away, so drive them away: as wax melteth -before the fire, so let the wicked perish at the presence of God. - -68:3 But let the righteous be glad; let them rejoice before God: yea, -let them exceedingly rejoice. - -68:4 Sing unto God, sing praises to his name: extol him that rideth -upon the heavens by his name JAH, and rejoice before him. - -68:5 A father of the fatherless, and a judge of the widows, is God in -his holy habitation. - -68:6 God setteth the solitary in families: he bringeth out those which -are bound with chains: but the rebellious dwell in a dry land. - -68:7 O God, when thou wentest forth before thy people, when thou didst -march through the wilderness; Selah: - -68:8 The earth shook, the heavens also dropped at the presence of God: -even Sinai itself was moved at the presence of God, the God of Israel. - -68:9 Thou, O God, didst send a plentiful rain, whereby thou didst -confirm thine inheritance, when it was weary. - -68:10 Thy congregation hath dwelt therein: thou, O God, hast prepared -of thy goodness for the poor. - -68:11 The Lord gave the word: great was the company of those that -published it. - -68:12 Kings of armies did flee apace: and she that tarried at home -divided the spoil. - -68:13 Though ye have lien among the pots, yet shall ye be as the wings -of a dove covered with silver, and her feathers with yellow gold. - -68:14 When the Almighty scattered kings in it, it was white as snow in -Salmon. - -68:15 The hill of God is as the hill of Bashan; an high hill as the -hill of Bashan. - -68:16 Why leap ye, ye high hills? this is the hill which God desireth -to dwell in; yea, the LORD will dwell in it for ever. - -68:17 The chariots of God are twenty thousand, even thousands of -angels: the Lord is among them, as in Sinai, in the holy place. - -68:18 Thou hast ascended on high, thou hast led captivity captive: -thou hast received gifts for men; yea, for the rebellious also, that -the LORD God might dwell among them. - -68:19 Blessed be the Lord, who daily loadeth us with benefits, even -the God of our salvation. Selah. - -68:20 He that is our God is the God of salvation; and unto GOD the -Lord belong the issues from death. - -68:21 But God shall wound the head of his enemies, and the hairy scalp -of such an one as goeth on still in his trespasses. - -68:22 The Lord said, I will bring again from Bashan, I will bring my -people again from the depths of the sea: - -68:23 That thy foot may be dipped in the blood of thine enemies, and -the tongue of thy dogs in the same. - -68:24 They have seen thy goings, O God; even the goings of my God, my -King, in the sanctuary. - -68:25 The singers went before, the players on instruments followed -after; among them were the damsels playing with timbrels. - -68:26 Bless ye God in the congregations, even the Lord, from the -fountain of Israel. - -68:27 There is little Benjamin with their ruler, the princes of Judah -and their council, the princes of Zebulun, and the princes of -Naphtali. - -68:28 Thy God hath commanded thy strength: strengthen, O God, that -which thou hast wrought for us. - -68:29 Because of thy temple at Jerusalem shall kings bring presents -unto thee. - -68:30 Rebuke the company of spearmen, the multitude of the bulls, with -the calves of the people, till every one submit himself with pieces of -silver: scatter thou the people that delight in war. - -68:31 Princes shall come out of Egypt; Ethiopia shall soon stretch out -her hands unto God. - -68:32 Sing unto God, ye kingdoms of the earth; O sing praises unto the -Lord; Selah: - -68:33 To him that rideth upon the heavens of heavens, which were of -old; lo, he doth send out his voice, and that a mighty voice. - -68:34 Ascribe ye strength unto God: his excellency is over Israel, and -his strength is in the clouds. - -68:35 O God, thou art terrible out of thy holy places: the God of -Israel is he that giveth strength and power unto his people. Blessed -be God. - - - -69:1 Save me, O God; for the waters are come in unto my soul. - -69:2 I sink in deep mire, where there is no standing: I am come into -deep waters, where the floods overflow me. - -69:3 I am weary of my crying: my throat is dried: mine eyes fail while -I wait for my God. - -69:4 They that hate me without a cause are more than the hairs of mine -head: they that would destroy me, being mine enemies wrongfully, are -mighty: then I restored that which I took not away. - -69:5 O God, thou knowest my foolishness; and my sins are not hid from -thee. - -69:6 Let not them that wait on thee, O Lord GOD of hosts, be ashamed -for my sake: let not those that seek thee be confounded for my sake, O -God of Israel. - -69:7 Because for thy sake I have borne reproach; shame hath covered my -face. - -69:8 I am become a stranger unto my brethren, and an alien unto my -mother's children. - -69:9 For the zeal of thine house hath eaten me up; and the reproaches -of them that reproached thee are fallen upon me. - -69:10 When I wept, and chastened my soul with fasting, that was to my -reproach. - -69:11 I made sackcloth also my garment; and I became a proverb to -them. - -69:12 They that sit in the gate speak against me; and I was the song -of the drunkards. - -69:13 But as for me, my prayer is unto thee, O LORD, in an acceptable -time: O God, in the multitude of thy mercy hear me, in the truth of -thy salvation. - -69:14 Deliver me out of the mire, and let me not sink: let me be -delivered from them that hate me, and out of the deep waters. - -69:15 Let not the waterflood overflow me, neither let the deep swallow -me up, and let not the pit shut her mouth upon me. - -69:16 Hear me, O LORD; for thy lovingkindness is good: turn unto me -according to the multitude of thy tender mercies. - -69:17 And hide not thy face from thy servant; for I am in trouble: -hear me speedily. - -69:18 Draw nigh unto my soul, and redeem it: deliver me because of -mine enemies. - -69:19 Thou hast known my reproach, and my shame, and my dishonour: -mine adversaries are all before thee. - -69:20 Reproach hath broken my heart; and I am full of heaviness: and I -looked for some to take pity, but there was none; and for comforters, -but I found none. - -69:21 They gave me also gall for my meat; and in my thirst they gave -me vinegar to drink. - -69:22 Let their table become a snare before them: and that which -should have been for their welfare, let it become a trap. - -69:23 Let their eyes be darkened, that they see not; and make their -loins continually to shake. - -69:24 Pour out thine indignation upon them, and let thy wrathful anger -take hold of them. - -69:25 Let their habitation be desolate; and let none dwell in their -tents. - -69:26 For they persecute him whom thou hast smitten; and they talk to -the grief of those whom thou hast wounded. - -69:27 Add iniquity unto their iniquity: and let them not come into thy -righteousness. - -69:28 Let them be blotted out of the book of the living, and not be -written with the righteous. - -69:29 But I am poor and sorrowful: let thy salvation, O God, set me up -on high. - -69:30 I will praise the name of God with a song, and will magnify him -with thanksgiving. - -69:31 This also shall please the LORD better than an ox or bullock -that hath horns and hoofs. - -69:32 The humble shall see this, and be glad: and your heart shall -live that seek God. - -69:33 For the LORD heareth the poor, and despiseth not his prisoners. - -69:34 Let the heaven and earth praise him, the seas, and every thing -that moveth therein. - -69:35 For God will save Zion, and will build the cities of Judah: that -they may dwell there, and have it in possession. - -69:36 The seed also of his servants shall inherit it: and they that -love his name shall dwell therein. - - - -70:1 MAKE HASTE, O GOD, TO DELIVER ME; MAKE HASTE TO HELP ME, O LORD. - -70:2 Let them be ashamed and confounded that seek after my soul: let -them be turned backward, and put to confusion, that desire my hurt. - -70:3 Let them be turned back for a reward of their shame that say, -Aha, aha. - -70:4 Let all those that seek thee rejoice and be glad in thee: and let -such as love thy salvation say continually, Let God be magnified. - -70:5 But I am poor and needy: make haste unto me, O God: thou art my -help and my deliverer; O LORD, make no tarrying. - - - -71:1 In thee, O LORD, do I put my trust: let me never be put to -confusion. - -71:2 Deliver me in thy righteousness, and cause me to escape: incline -thine ear unto me, and save me. - -71:3 Be thou my strong habitation, whereunto I may continually resort: -thou hast given commandment to save me; for thou art my rock and my -fortress. - -71:4 Deliver me, O my God, out of the hand of the wicked, out of the -hand of the unrighteous and cruel man. - -71:5 For thou art my hope, O Lord GOD: thou art my trust from my -youth. - -71:6 By thee have I been holden up from the womb: thou art he that -took me out of my mother's bowels: my praise shall be continually of -thee. - -71:7 I am as a wonder unto many; but thou art my strong refuge. - -71:8 Let my mouth be filled with thy praise and with thy honour all -the day. - -71:9 Cast me not off in the time of old age; forsake me not when my -strength faileth. - -71:10 For mine enemies speak against me; and they that lay wait for my -soul take counsel together, - -71:11 Saying, God hath forsaken him: persecute and take him; for there -is none to deliver him. - -71:12 O God, be not far from me: O my God, make haste for my help. - -71:13 Let them be confounded and consumed that are adversaries to my -soul; let them be covered with reproach and dishonour that seek my -hurt. - -71:14 But I will hope continually, and will yet praise thee more and -more. - -71:15 My mouth shall shew forth thy righteousness and thy salvation -all the day; for I know not the numbers thereof. - -71:16 I will go in the strength of the Lord GOD: I will make mention -of thy righteousness, even of thine only. - -71:17 O God, thou hast taught me from my youth: and hitherto have I -declared thy wondrous works. - -71:18 Now also when I am old and greyheaded, O God, forsake me not; -until I have shewed thy strength unto this generation, and thy power -to every one that is to come. - -71:19 Thy righteousness also, O God, is very high, who hast done great -things: O God, who is like unto thee! - -71:20 Thou, which hast shewed me great and sore troubles, shalt -quicken me again, and shalt bring me up again from the depths of the -earth. - -71:21 Thou shalt increase my greatness, and comfort me on every side. - -71:22 I will also praise thee with the psaltery, even thy truth, O my -God: unto thee will I sing with the harp, O thou Holy One of Israel. - -71:23 My lips shall greatly rejoice when I sing unto thee; and my -soul, which thou hast redeemed. - -71:24 My tongue also shall talk of thy righteousness all the day long: -for they are confounded, for they are brought unto shame, that seek my -hurt. - - - -72:1 Give the king thy judgments, O God, and thy righteousness unto -the king's son. - -72:2 He shall judge thy people with righteousness, and thy poor with -judgment. - -72:3 The mountains shall bring peace to the people, and the little -hills, by righteousness. - -72:4 He shall judge the poor of the people, he shall save the children -of the needy, and shall break in pieces the oppressor. - -72:5 They shall fear thee as long as the sun and moon endure, -throughout all generations. - -72:6 He shall come down like rain upon the mown grass: as showers that -water the earth. - -72:7 In his days shall the righteous flourish; and abundance of peace -so long as the moon endureth. - -72:8 He shall have dominion also from sea to sea, and from the river -unto the ends of the earth. - -72:9 They that dwell in the wilderness shall bow before him; and his -enemies shall lick the dust. - -72:10 The kings of Tarshish and of the isles shall bring presents: the -kings of Sheba and Seba shall offer gifts. - -72:11 Yea, all kings shall fall down before him: all nations shall -serve him. - -72:12 For he shall deliver the needy when he crieth; the poor also, -and him that hath no helper. - -72:13 He shall spare the poor and needy, and shall save the souls of -the needy. - -72:14 He shall redeem their soul from deceit and violence: and -precious shall their blood be in his sight. - -72:15 And he shall live, and to him shall be given of the gold of -Sheba: prayer also shall be made for him continually; and daily shall -he be praised. - -72:16 There shall be an handful of corn in the earth upon the top of -the mountains; the fruit thereof shall shake like Lebanon: and they of -the city shall flourish like grass of the earth. - -72:17 His name shall endure for ever: his name shall be continued as -long as the sun: and men shall be blessed in him: all nations shall -call him blessed. - -72:18 Blessed be the LORD God, the God of Israel, who only doeth -wondrous things. - -72:19 And blessed be his glorious name for ever: and let the whole -earth be filled with his glory; Amen, and Amen. - -72:20 The prayers of David the son of Jesse are ended. - - - -73:1 Truly God is good to Israel, even to such as are of a clean -heart. - -73:2 But as for me, my feet were almost gone; my steps had well nigh -slipped. - -73:3 For I was envious at the foolish, when I saw the prosperity of -the wicked. - -73:4 For there are no bands in their death: but their strength is -firm. - -73:5 They are not in trouble as other men; neither are they plagued -like other men. - -73:6 Therefore pride compasseth them about as a chain; violence -covereth them as a garment. - -73:7 Their eyes stand out with fatness: they have more than heart -could wish. - -73:8 They are corrupt, and speak wickedly concerning oppression: they -speak loftily. - -73:9 They set their mouth against the heavens, and their tongue -walketh through the earth. - -73:10 Therefore his people return hither: and waters of a full cup are -wrung out to them. - -73:11 And they say, How doth God know? and is there knowledge in the -most High? - -73:12 Behold, these are the ungodly, who prosper in the world; they -increase in riches. - -73:13 Verily I have cleansed my heart in vain, and washed my hands in -innocency. - -73:14 For all the day long have I been plagued, and chastened every -morning. - -73:15 If I say, I will speak thus; behold, I should offend against the -generation of thy children. - -73:16 When I thought to know this, it was too painful for me; - -73:17 Until I went into the sanctuary of God; then understood I their -end. - -73:18 Surely thou didst set them in slippery places: thou castedst -them down into destruction. - -73:19 How are they brought into desolation, as in a moment! they are -utterly consumed with terrors. - -73:20 As a dream when one awaketh; so, O Lord, when thou awakest, thou -shalt despise their image. - -73:21 Thus my heart was grieved, and I was pricked in my reins. - -73:22 So foolish was I, and ignorant: I was as a beast before thee. - -73:23 Nevertheless I am continually with thee: thou hast holden me by -my right hand. - -73:24 Thou shalt guide me with thy counsel, and afterward receive me -to glory. - -73:25 Whom have I in heaven but thee? and there is none upon earth -that I desire beside thee. - -73:26 My flesh and my heart faileth: but God is the strength of my -heart, and my portion for ever. - -73:27 For, lo, they that are far from thee shall perish: thou hast -destroyed all them that go a whoring from thee. - -73:28 But it is good for me to draw near to God: I have put my trust -in the Lord GOD, that I may declare all thy works. - - - -74:1 O God, why hast thou cast us off for ever? why doth thine anger -smoke against the sheep of thy pasture? - -74:2 Remember thy congregation, which thou hast purchased of old; the -rod of thine inheritance, which thou hast redeemed; this mount Zion, -wherein thou hast dwelt. - -74:3 Lift up thy feet unto the perpetual desolations; even all that -the enemy hath done wickedly in the sanctuary. - -74:4 Thine enemies roar in the midst of thy congregations; they set up -their ensigns for signs. - -74:5 A man was famous according as he had lifted up axes upon the -thick trees. - -74:6 But now they break down the carved work thereof at once with axes -and hammers. - -74:7 They have cast fire into thy sanctuary, they have defiled by -casting down the dwelling place of thy name to the ground. - -74:8 They said in their hearts, Let us destroy them together: they -have burned up all the synagogues of God in the land. - -74:9 We see not our signs: there is no more any prophet: neither is -there among us any that knoweth how long. - -74:10 O God, how long shall the adversary reproach? shall the enemy -blaspheme thy name for ever? - -74:11 Why withdrawest thou thy hand, even thy right hand? pluck it out -of thy bosom. - -74:12 For God is my King of old, working salvation in the midst of the -earth. - -74:13 Thou didst divide the sea by thy strength: thou brakest the -heads of the dragons in the waters. - -74:14 Thou brakest the heads of leviathan in pieces, and gavest him to -be meat to the people inhabiting the wilderness. - -74:15 Thou didst cleave the fountain and the flood: thou driedst up -mighty rivers. - -74:16 The day is thine, the night also is thine: thou hast prepared -the light and the sun. - -74:17 Thou hast set all the borders of the earth: thou hast made -summer and winter. - -74:18 Remember this, that the enemy hath reproached, O LORD, and that -the foolish people have blasphemed thy name. - -74:19 O deliver not the soul of thy turtledove unto the multitude of -the wicked: forget not the congregation of thy poor for ever. - -74:20 Have respect unto the covenant: for the dark places of the earth -are full of the habitations of cruelty. - -74:21 O let not the oppressed return ashamed: let the poor and needy -praise thy name. - -74:22 Arise, O God, plead thine own cause: remember how the foolish -man reproacheth thee daily. - -74:23 Forget not the voice of thine enemies: the tumult of those that -rise up against thee increaseth continually. - - - -75:1 Unto thee, O God, do we give thanks, unto thee do we give thanks: -for that thy name is near thy wondrous works declare. - -75:2 When I shall receive the congregation I will judge uprightly. - -75:3 The earth and all the inhabitants thereof are dissolved: I bear -up the pillars of it. Selah. - -75:4 I said unto the fools, Deal not foolishly: and to the wicked, -Lift not up the horn: - -75:5 Lift not up your horn on high: speak not with a stiff neck. - -75:6 For promotion cometh neither from the east, nor from the west, -nor from the south. - -75:7 But God is the judge: he putteth down one, and setteth up -another. - -75:8 For in the hand of the LORD there is a cup, and the wine is red; -it is full of mixture; and he poureth out of the same: but the dregs -thereof, all the wicked of the earth shall wring them out, and drink -them. - -75:9 But I will declare for ever; I will sing praises to the God of -Jacob. - -75:10 All the horns of the wicked also will I cut off; but the horns -of the righteous shall be exalted. - - - -76:1 In Judah is God known: his name is great in Israel. - -76:2 In Salem also is his tabernacle, and his dwelling place in Zion. - -76:3 There brake he the arrows of the bow, the shield, and the sword, -and the battle. Selah. - -76:4 Thou art more glorious and excellent than the mountains of prey. - -76:5 The stouthearted are spoiled, they have slept their sleep: and -none of the men of might have found their hands. - -76:6 At thy rebuke, O God of Jacob, both the chariot and horse are -cast into a dead sleep. - -76:7 Thou, even thou, art to be feared: and who may stand in thy sight -when once thou art angry? - -76:8 Thou didst cause judgment to be heard from heaven; the earth -feared, and was still, - -76:9 When God arose to judgment, to save all the meek of the earth. -Selah. - -76:10 Surely the wrath of man shall praise thee: the remainder of -wrath shalt thou restrain. - -76:11 Vow, and pay unto the LORD your God: let all that be round about -him bring presents unto him that ought to be feared. - -76:12 He shall cut off the spirit of princes: he is terrible to the -kings of the earth. - - - -77:1 I cried unto God with my voice, even unto God with my voice; and -he gave ear unto me. - -77:2 In the day of my trouble I sought the Lord: my sore ran in the -night, and ceased not: my soul refused to be comforted. - -77:3 I remembered God, and was troubled: I complained, and my spirit -was overwhelmed. Selah. - -77:4 Thou holdest mine eyes waking: I am so troubled that I cannot -speak. - -77:5 I have considered the days of old, the years of ancient times. - -77:6 I call to remembrance my song in the night: I commune with mine -own heart: and my spirit made diligent search. - -77:7 Will the Lord cast off for ever? and will he be favourable no -more? - -77:8 Is his mercy clean gone for ever? doth his promise fail for -evermore? - -77:9 Hath God forgotten to be gracious? hath he in anger shut up his -tender mercies? Selah. - -77:10 And I said, This is my infirmity: but I will remember the years -of the right hand of the most High. - -77:11 I will remember the works of the LORD: surely I will remember -thy wonders of old. - -77:12 I will meditate also of all thy work, and talk of thy doings. - -77:13 Thy way, O God, is in the sanctuary: who is so great a God as -our God? - -77:14 Thou art the God that doest wonders: thou hast declared thy -strength among the people. - -77:15 Thou hast with thine arm redeemed thy people, the sons of Jacob -and Joseph. Selah. - -77:16 The waters saw thee, O God, the waters saw thee; they were -afraid: the depths also were troubled. - -77:17 The clouds poured out water: the skies sent out a sound: thine -arrows also went abroad. - -77:18 The voice of thy thunder was in the heaven: the lightnings -lightened the world: the earth trembled and shook. - -77:19 Thy way is in the sea, and thy path in the great waters, and thy -footsteps are not known. - -77:20 Thou leddest thy people like a flock by the hand of Moses and -Aaron. - - - -78:1 Give ear, O my people, to my law: incline your ears to the words -of my mouth. - -78:2 I will open my mouth in a parable: I will utter dark sayings of -old: - -78:3 Which we have heard and known, and our fathers have told us. - -78:4 We will not hide them from their children, shewing to the -generation to come the praises of the LORD, and his strength, and his -wonderful works that he hath done. - -78:5 For he established a testimony in Jacob, and appointed a law in -Israel, which he commanded our fathers, that they should make them -known to their children: - -78:6 That the generation to come might know them, even the children -which should be born; who should arise and declare them to their -children: - -78:7 That they might set their hope in God, and not forget the works -of God, but keep his commandments: - -78:8 And might not be as their fathers, a stubborn and rebellious -generation; a generation that set not their heart aright, and whose -spirit was not stedfast with God. - -78:9 The children of Ephraim, being armed, and carrying bows, turned -back in the day of battle. - -78:10 They kept not the covenant of God, and refused to walk in his -law; - -78:11 And forgat his works, and his wonders that he had shewed them. - -78:12 Marvellous things did he in the sight of their fathers, in the -land of Egypt, in the field of Zoan. - -78:13 He divided the sea, and caused them to pass through; and he made -the waters to stand as an heap. - -78:14 In the daytime also he led them with a cloud, and all the night -with a light of fire. - -78:15 He clave the rocks in the wilderness, and gave them drink as out -of the great depths. - -78:16 He brought streams also out of the rock, and caused waters to -run down like rivers. - -78:17 And they sinned yet more against him by provoking the most High -in the wilderness. - -78:18 And they tempted God in their heart by asking meat for their -lust. - -78:19 Yea, they spake against God; they said, Can God furnish a table -in the wilderness? - -78:20 Behold, he smote the rock, that the waters gushed out, and the -streams overflowed; can he give bread also? can he provide flesh for -his people? - -78:21 Therefore the LORD heard this, and was wroth: so a fire was -kindled against Jacob, and anger also came up against Israel; - -78:22 Because they believed not in God, and trusted not in his -salvation: - -78:23 Though he had commanded the clouds from above, and opened the -doors of heaven, - -78:24 And had rained down manna upon them to eat, and had given them -of the corn of heaven. - -78:25 Man did eat angels' food: he sent them meat to the full. - -78:26 He caused an east wind to blow in the heaven: and by his power -he brought in the south wind. - -78:27 He rained flesh also upon them as dust, and feathered fowls like -as the sand of the sea: - -78:28 And he let it fall in the midst of their camp, round about their -habitations. - -78:29 So they did eat, and were well filled: for he gave them their -own desire; - -78:30 They were not estranged from their lust. But while their meat -was yet in their mouths, - -78:31 The wrath of God came upon them, and slew the fattest of them, -and smote down the chosen men of Israel. - -78:32 For all this they sinned still, and believed not for his -wondrous works. - -78:33 Therefore their days did he consume in vanity, and their years -in trouble. - -78:34 When he slew them, then they sought him: and they returned and -enquired early after God. - -78:35 And they remembered that God was their rock, and the high God -their redeemer. - -78:36 Nevertheless they did flatter him with their mouth, and they -lied unto him with their tongues. - -78:37 For their heart was not right with him, neither were they -stedfast in his covenant. - -78:38 But he, being full of compassion, forgave their iniquity, and -destroyed them not: yea, many a time turned he his anger away, and did -not stir up all his wrath. - -78:39 For he remembered that they were but flesh; a wind that passeth -away, and cometh not again. - -78:40 How oft did they provoke him in the wilderness, and grieve him -in the desert! - -78:41 Yea, they turned back and tempted God, and limited the Holy One -of Israel. - -78:42 They remembered not his hand, nor the day when he delivered them -from the enemy. - -78:43 How he had wrought his signs in Egypt, and his wonders in the -field of Zoan. - -78:44 And had turned their rivers into blood; and their floods, that -they could not drink. - -78:45 He sent divers sorts of flies among them, which devoured them; -and frogs, which destroyed them. - -78:46 He gave also their increase unto the caterpiller, and their -labour unto the locust. - -78:47 He destroyed their vines with hail, and their sycomore trees -with frost. - -78:48 He gave up their cattle also to the hail, and their flocks to -hot thunderbolts. - -78:49 He cast upon them the fierceness of his anger, wrath, and -indignation, and trouble, by sending evil angels among them. - -78:50 He made a way to his anger; he spared not their soul from death, -but gave their life over to the pestilence; - -78:51 And smote all the firstborn in Egypt; the chief of their -strength in the tabernacles of Ham: - -78:52 But made his own people to go forth like sheep, and guided them -in the wilderness like a flock. - -78:53 And he led them on safely, so that they feared not: but the sea -overwhelmed their enemies. - -78:54 And he brought them to the border of his sanctuary, even to this -mountain, which his right hand had purchased. - -78:55 He cast out the heathen also before them, and divided them an -inheritance by line, and made the tribes of Israel to dwell in their -tents. - -78:56 Yet they tempted and provoked the most high God, and kept not -his testimonies: - -78:57 But turned back, and dealt unfaithfully like their fathers: they -were turned aside like a deceitful bow. - -78:58 For they provoked him to anger with their high places, and moved -him to jealousy with their graven images. - -78:59 When God heard this, he was wroth, and greatly abhorred Israel: - -78:60 So that he forsook the tabernacle of Shiloh, the tent which he -placed among men; - -78:61 And delivered his strength into captivity, and his glory into -the enemy's hand. - -78:62 He gave his people over also unto the sword; and was wroth with -his inheritance. - -78:63 The fire consumed their young men; and their maidens were not -given to marriage. - -78:64 Their priests fell by the sword; and their widows made no -lamentation. - -78:65 Then the LORD awaked as one out of sleep, and like a mighty man -that shouteth by reason of wine. - -78:66 And he smote his enemies in the hinder parts: he put them to a -perpetual reproach. - -78:67 Moreover he refused the tabernacle of Joseph, and chose not the -tribe of Ephraim: - -78:68 But chose the tribe of Judah, the mount Zion which he loved. - -78:69 And he built his sanctuary like high palaces, like the earth -which he hath established for ever. - -78:70 He chose David also his servant, and took him from the -sheepfolds: - -78:71 From following the ewes great with young he brought him to feed -Jacob his people, and Israel his inheritance. - -78:72 So he fed them according to the integrity of his heart; and -guided them by the skilfulness of his hands. - - - -79:1 O God, the heathen are come into thine inheritance; thy holy -temple have they defiled; they have laid Jerusalem on heaps. - -79:2 The dead bodies of thy servants have they given to be meat unto -the fowls of the heaven, the flesh of thy saints unto the beasts of -the earth. - -79:3 Their blood have they shed like water round about Jerusalem; and -there was none to bury them. - -79:4 We are become a reproach to our neighbours, a scorn and derision -to them that are round about us. - -79:5 How long, LORD? wilt thou be angry for ever? shall thy jealousy -burn like fire? - -79:6 Pour out thy wrath upon the heathen that have not known thee, and -upon the kingdoms that have not called upon thy name. - -79:7 For they have devoured Jacob, and laid waste his dwelling place. - -79:8 O remember not against us former iniquities: let thy tender -mercies speedily prevent us: for we are brought very low. - -79:9 Help us, O God of our salvation, for the glory of thy name: and -deliver us, and purge away our sins, for thy name's sake. - -79:10 Wherefore should the heathen say, Where is their God? let him be -known among the heathen in our sight by the revenging of the blood of -thy servants which is shed. - -79:11 Let the sighing of the prisoner come before thee; according to -the greatness of thy power preserve thou those that are appointed to -die; - -79:12 And render unto our neighbours sevenfold into their bosom their -reproach, wherewith they have reproached thee, O Lord. - -79:13 So we thy people and sheep of thy pasture will give thee thanks -for ever: we will shew forth thy praise to all generations. - - - -80:1 Give ear, O Shepherd of Israel, thou that leadest Joseph like a -flock; thou that dwellest between the cherubims, shine forth. - -80:2 Before Ephraim and Benjamin and Manasseh stir up thy strength, -and come and save us. - -80:3 Turn us again, O God, and cause thy face to shine; and we shall -be saved. - -80:4 O LORD God of hosts, how long wilt thou be angry against the -prayer of thy people? - -80:5 Thou feedest them with the bread of tears; and givest them tears -to drink in great measure. - -80:6 Thou makest us a strife unto our neighbours: and our enemies -laugh among themselves. - -80:7 Turn us again, O God of hosts, and cause thy face to shine; and -we shall be saved. - -80:8 Thou hast brought a vine out of Egypt: thou hast cast out the -heathen, and planted it. - -80:9 Thou preparedst room before it, and didst cause it to take deep -root, and it filled the land. - -80:10 The hills were covered with the shadow of it, and the boughs -thereof were like the goodly cedars. - -80:11 She sent out her boughs unto the sea, and her branches unto the -river. - -80:12 Why hast thou then broken down her hedges, so that all they -which pass by the way do pluck her? - -80:13 The boar out of the wood doth waste it, and the wild beast of -the field doth devour it. - -80:14 Return, we beseech thee, O God of hosts: look down from heaven, -and behold, and visit this vine; - -80:15 And the vineyard which thy right hand hath planted, and the -branch that thou madest strong for thyself. - -80:16 It is burned with fire, it is cut down: they perish at the -rebuke of thy countenance. - -80:17 Let thy hand be upon the man of thy right hand, upon the son of -man whom thou madest strong for thyself. - -80:18 So will not we go back from thee: quicken us, and we will call -upon thy name. - -80:19 Turn us again, O LORD God of hosts, cause thy face to shine; and -we shall be saved. - - - -81:1 Sing aloud unto God our strength: make a joyful noise unto the -God of Jacob. - -81:2 Take a psalm, and bring hither the timbrel, the pleasant harp -with the psaltery. - -81:3 Blow up the trumpet in the new moon, in the time appointed, on -our solemn feast day. - -81:4 For this was a statute for Israel, and a law of the God of Jacob. - -81:5 This he ordained in Joseph for a testimony, when he went out -through the land of Egypt: where I heard a language that I understood -not. - -81:6 I removed his shoulder from the burden: his hands were delivered -from the pots. - -81:7 Thou calledst in trouble, and I delivered thee; I answered thee -in the secret place of thunder: I proved thee at the waters of -Meribah. - -Selah. - -81:8 Hear, O my people, and I will testify unto thee: O Israel, if -thou wilt hearken unto me; - -81:9 There shall no strange god be in thee; neither shalt thou worship -any strange god. - -81:10 I am the LORD thy God, which brought thee out of the land of -Egypt: open thy mouth wide, and I will fill it. - -81:11 But my people would not hearken to my voice; and Israel would -none of me. - -81:12 So I gave them up unto their own hearts' lust: and they walked -in their own counsels. - -81:13 Oh that my people had hearkened unto me, and Israel had walked -in my ways! - -81:14 I should soon have subdued their enemies, and turned my hand -against their adversaries. - -81:15 The haters of the LORD should have submitted themselves unto -him: but their time should have endured for ever. - -81:16 He should have fed them also with the finest of the wheat: and -with honey out of the rock should I have satisfied thee. - - - -82:1 God standeth in the congregation of the mighty; he judgeth among -the gods. - -82:2 How long will ye judge unjustly, and accept the persons of the -wicked? Selah. - -82:3 Defend the poor and fatherless: do justice to the afflicted and -needy. - -82:4 Deliver the poor and needy: rid them out of the hand of the -wicked. - -82:5 They know not, neither will they understand; they walk on in -darkness: all the foundations of the earth are out of course. - -82:6 I have said, Ye are gods; and all of you are children of the most -High. - -82:7 But ye shall die like men, and fall like one of the princes. - -82:8 Arise, O God, judge the earth: for thou shalt inherit all -nations. - - - -83:1 Keep not thou silence, O God: hold not thy peace, and be not -still, O God. - -83:2 For, lo, thine enemies make a tumult: and they that hate thee -have lifted up the head. - -83:3 They have taken crafty counsel against thy people, and consulted -against thy hidden ones. - -83:4 They have said, Come, and let us cut them off from being a -nation; that the name of Israel may be no more in remembrance. - -83:5 For they have consulted together with one consent: they are -confederate against thee: - -83:6 The tabernacles of Edom, and the Ishmaelites; of Moab, and the -Hagarenes; - -83:7 Gebal, and Ammon, and Amalek; the Philistines with the -inhabitants of Tyre; - -83:8 Assur also is joined with them: they have holpen the children of -Lot. - -Selah. - -83:9 Do unto them as unto the Midianites; as to Sisera, as to Jabin, -at the brook of Kison: - -83:10 Which perished at Endor: they became as dung for the earth. - -83:11 Make their nobles like Oreb, and like Zeeb: yea, all their -princes as Zebah, and as Zalmunna: - -83:12 Who said, Let us take to ourselves the houses of God in -possession. - -83:13 O my God, make them like a wheel; as the stubble before the -wind. - -83:14 As the fire burneth a wood, and as the flame setteth the -mountains on fire; - -83:15 So persecute them with thy tempest, and make them afraid with -thy storm. - -83:16 Fill their faces with shame; that they may seek thy name, O -LORD. - -83:17 Let them be confounded and troubled for ever; yea, let them be -put to shame, and perish: - -83:18 That men may know that thou, whose name alone is JEHOVAH, art -the most high over all the earth. - - - -84:1 How amiable are thy tabernacles, O LORD of hosts! - -84:2 My soul longeth, yea, even fainteth for the courts of the LORD: -my heart and my flesh crieth out for the living God. - -84:3 Yea, the sparrow hath found an house, and the swallow a nest for -herself, where she may lay her young, even thine altars, O LORD of -hosts, my King, and my God. - -84:4 Blessed are they that dwell in thy house: they will be still -praising thee. Selah. - -84:5 Blessed is the man whose strength is in thee; in whose heart are -the ways of them. - -84:6 Who passing through the valley of Baca make it a well; the rain -also filleth the pools. - -84:7 They go from strength to strength, every one of them in Zion -appeareth before God. - -84:8 O LORD God of hosts, hear my prayer: give ear, O God of Jacob. -Selah. - -84:9 Behold, O God our shield, and look upon the face of thine -anointed. - -84:10 For a day in thy courts is better than a thousand. I had rather -be a doorkeeper in the house of my God, than to dwell in the tents of -wickedness. - -84:11 For the LORD God is a sun and shield: the LORD will give grace -and glory: no good thing will he withhold from them that walk -uprightly. - -84:12 O LORD of hosts, blessed is the man that trusteth in thee. - - - -85:1 Lord, thou hast been favourable unto thy land: thou hast brought -back the captivity of Jacob. - -85:2 Thou hast forgiven the iniquity of thy people, thou hast covered -all their sin. Selah. - -85:3 Thou hast taken away all thy wrath: thou hast turned thyself from -the fierceness of thine anger. - -85:4 Turn us, O God of our salvation, and cause thine anger toward us -to cease. - -85:5 Wilt thou be angry with us for ever? wilt thou draw out thine -anger to all generations? - -85:6 Wilt thou not revive us again: that thy people may rejoice in -thee? - -85:7 Shew us thy mercy, O LORD, and grant us thy salvation. - -85:8 I will hear what God the LORD will speak: for he will speak peace -unto his people, and to his saints: but let them not turn again to -folly. - -85:9 Surely his salvation is nigh them that fear him; that glory may -dwell in our land. - -85:10 Mercy and truth are met together; righteousness and peace have -kissed each other. - -85:11 Truth shall spring out of the earth; and righteousness shall -look down from heaven. - -85:12 Yea, the LORD shall give that which is good; and our land shall -yield her increase. - -85:13 Righteousness shall go before him; and shall set us in the way -of his steps. - - - -86:1 Bow down thine ear, O LORD, hear me: for I am poor and needy. - -86:2 Preserve my soul; for I am holy: O thou my God, save thy servant -that trusteth in thee. - -86:3 Be merciful unto me, O Lord: for I cry unto thee daily. - -86:4 Rejoice the soul of thy servant: for unto thee, O Lord, do I lift -up my soul. - -86:5 For thou, Lord, art good, and ready to forgive; and plenteous in -mercy unto all them that call upon thee. - -86:6 Give ear, O LORD, unto my prayer; and attend to the voice of my -supplications. - -86:7 In the day of my trouble I will call upon thee: for thou wilt -answer me. - -86:8 Among the gods there is none like unto thee, O Lord; neither are -there any works like unto thy works. - -86:9 All nations whom thou hast made shall come and worship before -thee, O Lord; and shall glorify thy name. - -86:10 For thou art great, and doest wondrous things: thou art God -alone. - -86:11 Teach me thy way, O LORD; I will walk in thy truth: unite my -heart to fear thy name. - -86:12 I will praise thee, O Lord my God, with all my heart: and I will -glorify thy name for evermore. - -86:13 For great is thy mercy toward me: and thou hast delivered my -soul from the lowest hell. - -86:14 O God, the proud are risen against me, and the assemblies of -violent men have sought after my soul; and have not set thee before -them. - -86:15 But thou, O Lord, art a God full of compassion, and gracious, -long suffering, and plenteous in mercy and truth. - -86:16 O turn unto me, and have mercy upon me; give thy strength unto -thy servant, and save the son of thine handmaid. - -86:17 Shew me a token for good; that they which hate me may see it, -and be ashamed: because thou, LORD, hast holpen me, and comforted me. - - - -87:1 His foundation is in the holy mountains. - -87:2 The LORD loveth the gates of Zion more than all the dwellings of -Jacob. - -87:3 Glorious things are spoken of thee, O city of God. Selah. - -87:4 I will make mention of Rahab and Babylon to them that know me: -behold Philistia, and Tyre, with Ethiopia; this man was born there. - -87:5 And of Zion it shall be said, This and that man was born in her: -and the highest himself shall establish her. - -87:6 The LORD shall count, when he writeth up the people, that this -man was born there. Selah. - -87:7 As well the singers as the players on instruments shall be there: -all my springs are in thee. - - - -88:1 O lord God of my salvation, I have cried day and night before -thee: - -88:2 Let my prayer come before thee: incline thine ear unto my cry; - -88:3 For my soul is full of troubles: and my life draweth nigh unto -the grave. - -88:4 I am counted with them that go down into the pit: I am as a man -that hath no strength: - -88:5 Free among the dead, like the slain that lie in the grave, whom -thou rememberest no more: and they are cut off from thy hand. - -88:6 Thou hast laid me in the lowest pit, in darkness, in the deeps. - -88:7 Thy wrath lieth hard upon me, and thou hast afflicted me with all -thy waves. Selah. - -88:8 Thou hast put away mine acquaintance far from me; thou hast made -me an abomination unto them: I am shut up, and I cannot come forth. - -88:9 Mine eye mourneth by reason of affliction: LORD, I have called -daily upon thee, I have stretched out my hands unto thee. - -88:10 Wilt thou shew wonders to the dead? shall the dead arise and -praise thee? Selah. - -88:11 Shall thy lovingkindness be declared in the grave? or thy -faithfulness in destruction? - -88:12 Shall thy wonders be known in the dark? and thy righteousness in -the land of forgetfulness? - -88:13 But unto thee have I cried, O LORD; and in the morning shall my -prayer prevent thee. - -88:14 LORD, why castest thou off my soul? why hidest thou thy face -from me? - -88:15 I am afflicted and ready to die from my youth up: while I suffer -thy terrors I am distracted. - -88:16 Thy fierce wrath goeth over me; thy terrors have cut me off. - -88:17 They came round about me daily like water; they compassed me -about together. - -88:18 Lover and friend hast thou put far from me, and mine -acquaintance into darkness. - - - -89:1 I will sing of the mercies of the LORD for ever: with my mouth -will I make known thy faithfulness to all generations. - -89:2 For I have said, Mercy shall be built up for ever: thy -faithfulness shalt thou establish in the very heavens. - -89:3 I have made a covenant with my chosen, I have sworn unto David my -servant, - -89:4 Thy seed will I establish for ever, and build up thy throne to -all generations. Selah. - -89:5 And the heavens shall praise thy wonders, O LORD: thy -faithfulness also in the congregation of the saints. - -89:6 For who in the heaven can be compared unto the LORD? who among -the sons of the mighty can be likened unto the LORD? - -89:7 God is greatly to be feared in the assembly of the saints, and to -be had in reverence of all them that are about him. - -89:8 O LORD God of hosts, who is a strong LORD like unto thee? or to -thy faithfulness round about thee? - -89:9 Thou rulest the raging of the sea: when the waves thereof arise, -thou stillest them. - -89:10 Thou hast broken Rahab in pieces, as one that is slain; thou -hast scattered thine enemies with thy strong arm. - -89:11 The heavens are thine, the earth also is thine: as for the world -and the fulness thereof, thou hast founded them. - -89:12 The north and the south thou hast created them: Tabor and Hermon -shall rejoice in thy name. - -89:13 Thou hast a mighty arm: strong is thy hand, and high is thy -right hand. - -89:14 Justice and judgment are the habitation of thy throne: mercy and -truth shall go before thy face. - -89:15 Blessed is the people that know the joyful sound: they shall -walk, O LORD, in the light of thy countenance. - -89:16 In thy name shall they rejoice all the day: and in thy -righteousness shall they be exalted. - -89:17 For thou art the glory of their strength: and in thy favour our -horn shall be exalted. - -89:18 For the LORD is our defence; and the Holy One of Israel is our -king. - -89:19 Then thou spakest in vision to thy holy one, and saidst, I have -laid help upon one that is mighty; I have exalted one chosen out of -the people. - -89:20 I have found David my servant; with my holy oil have I anointed -him: - -89:21 With whom my hand shall be established: mine arm also shall -strengthen him. - -89:22 The enemy shall not exact upon him; nor the son of wickedness -afflict him. - -89:23 And I will beat down his foes before his face, and plague them -that hate him. - -89:24 But my faithfulness and my mercy shall be with him: and in my -name shall his horn be exalted. - -89:25 I will set his hand also in the sea, and his right hand in the -rivers. - -89:26 He shall cry unto me, Thou art my father, my God, and the rock -of my salvation. - -89:27 Also I will make him my firstborn, higher than the kings of the -earth. - -89:28 My mercy will I keep for him for evermore, and my covenant shall -stand fast with him. - -89:29 His seed also will I make to endure for ever, and his throne as -the days of heaven. - -89:30 If his children forsake my law, and walk not in my judgments; - -89:31 If they break my statutes, and keep not my commandments; - -89:32 Then will I visit their transgression with the rod, and their -iniquity with stripes. - -89:33 Nevertheless my lovingkindness will I not utterly take from him, -nor suffer my faithfulness to fail. - -89:34 My covenant will I not break, nor alter the thing that is gone -out of my lips. - -89:35 Once have I sworn by my holiness that I will not lie unto David. - -89:36 His seed shall endure for ever, and his throne as the sun before -me. - -89:37 It shall be established for ever as the moon, and as a faithful -witness in heaven. Selah. - -89:38 But thou hast cast off and abhorred, thou hast been wroth with -thine anointed. - -89:39 Thou hast made void the covenant of thy servant: thou hast -profaned his crown by casting it to the ground. - -89:40 Thou hast broken down all his hedges; thou hast brought his -strong holds to ruin. - -89:41 All that pass by the way spoil him: he is a reproach to his -neighbours. - -89:42 Thou hast set up the right hand of his adversaries; thou hast -made all his enemies to rejoice. - -89:43 Thou hast also turned the edge of his sword, and hast not made -him to stand in the battle. - -89:44 Thou hast made his glory to cease, and cast his throne down to -the ground. - -89:45 The days of his youth hast thou shortened: thou hast covered him -with shame. Selah. - -89:46 How long, LORD? wilt thou hide thyself for ever? shall thy wrath -burn like fire? - -89:47 Remember how short my time is: wherefore hast thou made all men -in vain? - -89:48 What man is he that liveth, and shall not see death? shall he -deliver his soul from the hand of the grave? Selah. - -89:49 Lord, where are thy former lovingkindnesses, which thou swarest -unto David in thy truth? - -89:50 Remember, Lord, the reproach of thy servants; how I do bear in -my bosom the reproach of all the mighty people; - -89:51 Wherewith thine enemies have reproached, O LORD; wherewith they -have reproached the footsteps of thine anointed. - -89:52 Blessed be the LORD for evermore. Amen, and Amen. - - - -90:1 Lord, thou hast been our dwelling place in all generations. - -90:2 Before the mountains were brought forth, or ever thou hadst -formed the earth and the world, even from everlasting to everlasting, -thou art God. - -90:3 Thou turnest man to destruction; and sayest, Return, ye children -of men. - -90:4 For a thousand years in thy sight are but as yesterday when it is -past, and as a watch in the night. - -90:5 Thou carriest them away as with a flood; they are as a sleep: in -the morning they are like grass which groweth up. - -90:6 In the morning it flourisheth, and groweth up; in the evening it -is cut down, and withereth. - -90:7 For we are consumed by thine anger, and by thy wrath are we -troubled. - -90:8 Thou hast set our iniquities before thee, our secret sins in the -light of thy countenance. - -90:9 For all our days are passed away in thy wrath: we spend our years -as a tale that is told. - -90:10 The days of our years are threescore years and ten; and if by -reason of strength they be fourscore years, yet is their strength -labour and sorrow; for it is soon cut off, and we fly away. - -90:11 Who knoweth the power of thine anger? even according to thy -fear, so is thy wrath. - -90:12 So teach us to number our days, that we may apply our hearts -unto wisdom. - -90:13 Return, O LORD, how long? and let it repent thee concerning thy -servants. - -90:14 O satisfy us early with thy mercy; that we may rejoice and be -glad all our days. - -90:15 Make us glad according to the days wherein thou hast afflicted -us, and the years wherein we have seen evil. - -90:16 Let thy work appear unto thy servants, and thy glory unto their -children. - -90:17 And let the beauty of the LORD our God be upon us: and establish -thou the work of our hands upon us; yea, the work of our hands -establish thou it. - - - -91:1 He that dwelleth in the secret place of the most High shall abide -under the shadow of the Almighty. - -91:2 I will say of the LORD, He is my refuge and my fortress: my God; -in him will I trust. - -91:3 Surely he shall deliver thee from the snare of the fowler, and -from the noisome pestilence. - -91:4 He shall cover thee with his feathers, and under his wings shalt -thou trust: his truth shall be thy shield and buckler. - -91:5 Thou shalt not be afraid for the terror by night; nor for the -arrow that flieth by day; - -91:6 Nor for the pestilence that walketh in darkness; nor for the -destruction that wasteth at noonday. - -91:7 A thousand shall fall at thy side, and ten thousand at thy right -hand; but it shall not come nigh thee. - -91:8 Only with thine eyes shalt thou behold and see the reward of the -wicked. - -91:9 Because thou hast made the LORD, which is my refuge, even the -most High, thy habitation; - -91:10 There shall no evil befall thee, neither shall any plague come -nigh thy dwelling. - -91:11 For he shall give his angels charge over thee, to keep thee in -all thy ways. - -91:12 They shall bear thee up in their hands, lest thou dash thy foot -against a stone. - -91:13 Thou shalt tread upon the lion and adder: the young lion and the -dragon shalt thou trample under feet. - -91:14 Because he hath set his love upon me, therefore will I deliver -him: I will set him on high, because he hath known my name. - -91:15 He shall call upon me, and I will answer him: I will be with him -in trouble; I will deliver him, and honour him. - -91:16 With long life will I satisfy him, and shew him my salvation. - - - -92:1 IT IS A GOOD THING TO GIVE THANKS UNTO THE LORD, AND TO SING -PRAISES UNTO THY NAME, O MOST HIGH: - -92:2 To shew forth thy lovingkindness in the morning, and thy -faithfulness every night, - -92:3 Upon an instrument of ten strings, and upon the psaltery; upon -the harp with a solemn sound. - -92:4 For thou, LORD, hast made me glad through thy work: I will -triumph in the works of thy hands. - -92:5 O LORD, how great are thy works! and thy thoughts are very deep. - -92:6 A brutish man knoweth not; neither doth a fool understand this. - -92:7 When the wicked spring as the grass, and when all the workers of -iniquity do flourish; it is that they shall be destroyed for ever: - -92:8 But thou, LORD, art most high for evermore. - -92:9 For, lo, thine enemies, O LORD, for, lo, thine enemies shall -perish; all the workers of iniquity shall be scattered. - -92:10 But my horn shalt thou exalt like the horn of an unicorn: I -shall be anointed with fresh oil. - -92:11 Mine eye also shall see my desire on mine enemies, and mine ears -shall hear my desire of the wicked that rise up against me. - -92:12 The righteous shall flourish like the palm tree: he shall grow -like a cedar in Lebanon. - -92:13 Those that be planted in the house of the LORD shall flourish in -the courts of our God. - -92:14 They shall still bring forth fruit in old age; they shall be fat -and flourishing; - -92:15 To shew that the LORD is upright: he is my rock, and there is no -unrighteousness in him. - - - -93:1 The LORD reigneth, he is clothed with majesty; the LORD is -clothed with strength, wherewith he hath girded himself: the world -also is stablished, that it cannot be moved. - -93:2 Thy throne is established of old: thou art from everlasting. - -93:3 The floods have lifted up, O LORD, the floods have lifted up -their voice; the floods lift up their waves. - -93:4 The LORD on high is mightier than the noise of many waters, yea, -than the mighty waves of the sea. - -93:5 Thy testimonies are very sure: holiness becometh thine house, O -LORD, for ever. - - - -94:1 O Lord God, to whom vengeance belongeth; O God, to whom vengeance -belongeth, shew thyself. - -94:2 Lift up thyself, thou judge of the earth: render a reward to the -proud. - -94:3 LORD, how long shall the wicked, how long shall the wicked -triumph? - -94:4 How long shall they utter and speak hard things? and all the -workers of iniquity boast themselves? - -94:5 They break in pieces thy people, O LORD, and afflict thine -heritage. - -94:6 They slay the widow and the stranger, and murder the fatherless. - -94:7 Yet they say, The LORD shall not see, neither shall the God of -Jacob regard it. - -94:8 Understand, ye brutish among the people: and ye fools, when will -ye be wise? - -94:9 He that planted the ear, shall he not hear? he that formed the -eye, shall he not see? - -94:10 He that chastiseth the heathen, shall not he correct? he that -teacheth man knowledge, shall not he know? - -94:11 The LORD knoweth the thoughts of man, that they are vanity. - -94:12 Blessed is the man whom thou chastenest, O LORD, and teachest -him out of thy law; - -94:13 That thou mayest give him rest from the days of adversity, until -the pit be digged for the wicked. - -94:14 For the LORD will not cast off his people, neither will he -forsake his inheritance. - -94:15 But judgment shall return unto righteousness: and all the -upright in heart shall follow it. - -94:16 Who will rise up for me against the evildoers? or who will stand -up for me against the workers of iniquity? - -94:17 Unless the LORD had been my help, my soul had almost dwelt in -silence. - -94:18 When I said, My foot slippeth; thy mercy, O LORD, held me up. - -94:19 In the multitude of my thoughts within me thy comforts delight -my soul. - -94:20 Shall the throne of iniquity have fellowship with thee, which -frameth mischief by a law? - -94:21 They gather themselves together against the soul of the -righteous, and condemn the innocent blood. - -94:22 But the LORD is my defence; and my God is the rock of my refuge. - -94:23 And he shall bring upon them their own iniquity, and shall cut -them off in their own wickedness; yea, the LORD our God shall cut them -off. - - - -95:1 O come, let us sing unto the LORD: let us make a joyful noise to -the rock of our salvation. - -95:2 Let us come before his presence with thanksgiving, and make a -joyful noise unto him with psalms. - -95:3 For the LORD is a great God, and a great King above all gods. - -95:4 In his hand are the deep places of the earth: the strength of the -hills is his also. - -95:5 The sea is his, and he made it: and his hands formed the dry -land. - -95:6 O come, let us worship and bow down: let us kneel before the LORD -our maker. - -95:7 For he is our God; and we are the people of his pasture, and the -sheep of his hand. To day if ye will hear his voice, - -95:8 Harden not your heart, as in the provocation, and as in the day -of temptation in the wilderness: - -95:9 When your fathers tempted me, proved me, and saw my work. - -95:10 Forty years long was I grieved with this generation, and said, -It is a people that do err in their heart, and they have not known my -ways: - -95:11 Unto whom I sware in my wrath that they should not enter into my -rest. - - - -96:1 O sing unto the LORD a new song: sing unto the LORD, all the -earth. - -96:2 Sing unto the LORD, bless his name; shew forth his salvation from -day to day. - -96:3 Declare his glory among the heathen, his wonders among all -people. - -96:4 For the LORD is great, and greatly to be praised: he is to be -feared above all gods. - -96:5 For all the gods of the nations are idols: but the LORD made the -heavens. - -96:6 Honour and majesty are before him: strength and beauty are in his -sanctuary. - -96:7 Give unto the LORD, O ye kindreds of the people, give unto the -LORD glory and strength. - -96:8 Give unto the LORD the glory due unto his name: bring an -offering, and come into his courts. - -96:9 O worship the LORD in the beauty of holiness: fear before him, -all the earth. - -96:10 Say among the heathen that the LORD reigneth: the world also -shall be established that it shall not be moved: he shall judge the -people righteously. - -96:11 Let the heavens rejoice, and let the earth be glad; let the sea -roar, and the fulness thereof. - -96:12 Let the field be joyful, and all that is therein: then shall all -the trees of the wood rejoice - -96:13 Before the LORD: for he cometh, for he cometh to judge the -earth: he shall judge the world with righteousness, and the people -with his truth. - - - -97:1 The LORD reigneth; let the earth rejoice; let the multitude of -isles be glad thereof. - -97:2 Clouds and darkness are round about him: righteousness and -judgment are the habitation of his throne. - -97:3 A fire goeth before him, and burneth up his enemies round about. - -97:4 His lightnings enlightened the world: the earth saw, and -trembled. - -97:5 The hills melted like wax at the presence of the LORD, at the -presence of the Lord of the whole earth. - -97:6 The heavens declare his righteousness, and all the people see his -glory. - -97:7 Confounded be all they that serve graven images, that boast -themselves of idols: worship him, all ye gods. - -97:8 Zion heard, and was glad; and the daughters of Judah rejoiced -because of thy judgments, O LORD. - -97:9 For thou, LORD, art high above all the earth: thou art exalted -far above all gods. - -97:10 Ye that love the LORD, hate evil: he preserveth the souls of his -saints; he delivereth them out of the hand of the wicked. - -97:11 Light is sown for the righteous, and gladness for the upright in -heart. - -97:12 Rejoice in the LORD, ye righteous; and give thanks at the -remembrance of his holiness. - - - -98:1 O sing unto the LORD a new song; for he hath done marvellous -things: his right hand, and his holy arm, hath gotten him the victory. - -98:2 The LORD hath made known his salvation: his righteousness hath he -openly shewed in the sight of the heathen. - -98:3 He hath remembered his mercy and his truth toward the house of -Israel: all the ends of the earth have seen the salvation of our God. - -98:4 Make a joyful noise unto the LORD, all the earth: make a loud -noise, and rejoice, and sing praise. - -98:5 Sing unto the LORD with the harp; with the harp, and the voice of -a psalm. - -98:6 With trumpets and sound of cornet make a joyful noise before the -LORD, the King. - -98:7 Let the sea roar, and the fulness thereof; the world, and they -that dwell therein. - -98:8 Let the floods clap their hands: let the hills be joyful together - -98:9 Before the LORD; for he cometh to judge the earth: with -righteousness shall he judge the world, and the people with equity. - - - -99:1 The LORD reigneth; let the people tremble: he sitteth between the -cherubims; let the earth be moved. - -99:2 The LORD is great in Zion; and he is high above all the people. - -99:3 Let them praise thy great and terrible name; for it is holy. - -99:4 The king's strength also loveth judgment; thou dost establish -equity, thou executest judgment and righteousness in Jacob. - -99:5 Exalt ye the LORD our God, and worship at his footstool; for he -is holy. - -99:6 Moses and Aaron among his priests, and Samuel among them that -call upon his name; they called upon the LORD, and he answered them. - -99:7 He spake unto them in the cloudy pillar: they kept his -testimonies, and the ordinance that he gave them. - -99:8 Thou answeredst them, O LORD our God: thou wast a God that -forgavest them, though thou tookest vengeance of their inventions. - -99:9 Exalt the LORD our God, and worship at his holy hill; for the -LORD our God is holy. - - - -100:1 Make a joyful noise unto the LORD, all ye lands. - -100:2 Serve the LORD with gladness: come before his presence with -singing. - -100:3 Know ye that the LORD he is God: it is he that hath made us, and -not we ourselves; we are his people, and the sheep of his pasture. - -100:4 Enter into his gates with thanksgiving, and into his courts with -praise: be thankful unto him, and bless his name. - -100:5 For the LORD is good; his mercy is everlasting; and his truth -endureth to all generations. - - - -101:1 I will sing of mercy and judgment: unto thee, O LORD, will I -sing. - -101:2 I will behave myself wisely in a perfect way. O when wilt thou -come unto me? I will walk within my house with a perfect heart. - -101:3 I will set no wicked thing before mine eyes: I hate the work of -them that turn aside; it shall not cleave to me. - -101:4 A froward heart shall depart from me: I will not know a wicked -person. - -101:5 Whoso privily slandereth his neighbour, him will I cut off: him -that hath an high look and a proud heart will not I suffer. - -101:6 Mine eyes shall be upon the faithful of the land, that they may -dwell with me: he that walketh in a perfect way, he shall serve me. - -101:7 He that worketh deceit shall not dwell within my house: he that -telleth lies shall not tarry in my sight. - -101:8 I will early destroy all the wicked of the land; that I may cut -off all wicked doers from the city of the LORD. - - - -102:1 Hear my prayer, O LORD, and let my cry come unto thee. - -102:2 Hide not thy face from me in the day when I am in trouble; -incline thine ear unto me: in the day when I call answer me speedily. - -102:3 For my days are consumed like smoke, and my bones are burned as -an hearth. - -102:4 My heart is smitten, and withered like grass; so that I forget -to eat my bread. - -102:5 By reason of the voice of my groaning my bones cleave to my -skin. - -102:6 I am like a pelican of the wilderness: I am like an owl of the -desert. - -102:7 I watch, and am as a sparrow alone upon the house top. - -102:8 Mine enemies reproach me all the day; and they that are mad -against me are sworn against me. - -102:9 For I have eaten ashes like bread, and mingled my drink with -weeping. - -102:10 Because of thine indignation and thy wrath: for thou hast -lifted me up, and cast me down. - -102:11 My days are like a shadow that declineth; and I am withered -like grass. - -102:12 But thou, O LORD, shall endure for ever; and thy remembrance -unto all generations. - -102:13 Thou shalt arise, and have mercy upon Zion: for the time to -favour her, yea, the set time, is come. - -102:14 For thy servants take pleasure in her stones, and favour the -dust thereof. - -102:15 So the heathen shall fear the name of the LORD, and all the -kings of the earth thy glory. - -102:16 When the LORD shall build up Zion, he shall appear in his -glory. - -102:17 He will regard the prayer of the destitute, and not despise -their prayer. - -102:18 This shall be written for the generation to come: and the -people which shall be created shall praise the LORD. - -102:19 For he hath looked down from the height of his sanctuary; from -heaven did the LORD behold the earth; - -102:20 To hear the groaning of the prisoner; to loose those that are -appointed to death; - -102:21 To declare the name of the LORD in Zion, and his praise in -Jerusalem; - -102:22 When the people are gathered together, and the kingdoms, to -serve the LORD. - -102:23 He weakened my strength in the way; he shortened my days. - -102:24 I said, O my God, take me not away in the midst of my days: thy -years are throughout all generations. - -102:25 Of old hast thou laid the foundation of the earth: and the -heavens are the work of thy hands. - -102:26 They shall perish, but thou shalt endure: yea, all of them -shall wax old like a garment; as a vesture shalt thou change them, and -they shall be changed: - -102:27 But thou art the same, and thy years shall have no end. - -102:28 The children of thy servants shall continue, and their seed -shall be established before thee. - - - -103:1 Bless the LORD, O my soul: and all that is within me, bless his -holy name. - -103:2 Bless the LORD, O my soul, and forget not all his benefits: - -103:3 Who forgiveth all thine iniquities; who healeth all thy -diseases; - -103:4 Who redeemeth thy life from destruction; who crowneth thee with -lovingkindness and tender mercies; - -103:5 Who satisfieth thy mouth with good things; so that thy youth is -renewed like the eagle's. - -103:6 The LORD executeth righteousness and judgment for all that are -oppressed. - -103:7 He made known his ways unto Moses, his acts unto the children of -Israel. - -103:8 The LORD is merciful and gracious, slow to anger, and plenteous -in mercy. - -103:9 He will not always chide: neither will he keep his anger for -ever. - -103:10 He hath not dealt with us after our sins; nor rewarded us -according to our iniquities. - -103:11 For as the heaven is high above the earth, so great is his -mercy toward them that fear him. - -103:12 As far as the east is from the west, so far hath he removed our -transgressions from us. - -103:13 Like as a father pitieth his children, so the LORD pitieth them -that fear him. - -103:14 For he knoweth our frame; he remembereth that we are dust. - -103:15 As for man, his days are as grass: as a flower of the field, so -he flourisheth. - -103:16 For the wind passeth over it, and it is gone; and the place -thereof shall know it no more. - -103:17 But the mercy of the LORD is from everlasting to everlasting -upon them that fear him, and his righteousness unto children's -children; - -103:18 To such as keep his covenant, and to those that remember his -commandments to do them. - -103:19 The LORD hath prepared his throne in the heavens; and his -kingdom ruleth over all. - -103:20 Bless the LORD, ye his angels, that excel in strength, that do -his commandments, hearkening unto the voice of his word. - -103:21 Bless ye the LORD, all ye his hosts; ye ministers of his, that -do his pleasure. - -103:22 Bless the LORD, all his works in all places of his dominion: -bless the LORD, O my soul. - - - -104:1 Bless the LORD, O my soul. O LORD my God, thou art very great; -thou art clothed with honour and majesty. - -104:2 Who coverest thyself with light as with a garment: who -stretchest out the heavens like a curtain: - -104:3 Who layeth the beams of his chambers in the waters: who maketh -the clouds his chariot: who walketh upon the wings of the wind: - -104:4 Who maketh his angels spirits; his ministers a flaming fire: - -104:5 Who laid the foundations of the earth, that it should not be -removed for ever. - -104:6 Thou coveredst it with the deep as with a garment: the waters -stood above the mountains. - -104:7 At thy rebuke they fled; at the voice of thy thunder they hasted -away. - -104:8 They go up by the mountains; they go down by the valleys unto -the place which thou hast founded for them. - -104:9 Thou hast set a bound that they may not pass over; that they -turn not again to cover the earth. - -104:10 He sendeth the springs into the valleys, which run among the -hills. - -104:11 They give drink to every beast of the field: the wild asses -quench their thirst. - -104:12 By them shall the fowls of the heaven have their habitation, -which sing among the branches. - -104:13 He watereth the hills from his chambers: the earth is satisfied -with the fruit of thy works. - -104:14 He causeth the grass to grow for the cattle, and herb for the -service of man: that he may bring forth food out of the earth; - -104:15 And wine that maketh glad the heart of man, and oil to make his -face to shine, and bread which strengtheneth man's heart. - -104:16 The trees of the LORD are full of sap; the cedars of Lebanon, -which he hath planted; - -104:17 Where the birds make their nests: as for the stork, the fir -trees are her house. - -104:18 The high hills are a refuge for the wild goats; and the rocks -for the conies. - -104:19 He appointed the moon for seasons: the sun knoweth his going -down. - -104:20 Thou makest darkness, and it is night: wherein all the beasts -of the forest do creep forth. - -104:21 The young lions roar after their prey, and seek their meat from -God. - -104:22 The sun ariseth, they gather themselves together, and lay them -down in their dens. - -104:23 Man goeth forth unto his work and to his labour until the -evening. - -104:24 O LORD, how manifold are thy works! in wisdom hast thou made -them all: the earth is full of thy riches. - -104:25 So is this great and wide sea, wherein are things creeping -innumerable, both small and great beasts. - -104:26 There go the ships: there is that leviathan, whom thou hast -made to play therein. - -104:27 These wait all upon thee; that thou mayest give them their meat -in due season. - -104:28 That thou givest them they gather: thou openest thine hand, -they are filled with good. - -104:29 Thou hidest thy face, they are troubled: thou takest away their -breath, they die, and return to their dust. - -104:30 Thou sendest forth thy spirit, they are created: and thou -renewest the face of the earth. - -104:31 The glory of the LORD shall endure for ever: the LORD shall -rejoice in his works. - -104:32 He looketh on the earth, and it trembleth: he toucheth the -hills, and they smoke. - -104:33 I will sing unto the LORD as long as I live: I will sing praise -to my God while I have my being. - -104:34 My meditation of him shall be sweet: I will be glad in the -LORD. - -104:35 Let the sinners be consumed out of the earth, and let the -wicked be no more. Bless thou the LORD, O my soul. Praise ye the LORD. - - - -105:1 O give thanks unto the LORD; call upon his name: make known his -deeds among the people. - -105:2 Sing unto him, sing psalms unto him: talk ye of all his wondrous -works. - -105:3 Glory ye in his holy name: let the heart of them rejoice that -seek the LORD. - -105:4 Seek the LORD, and his strength: seek his face evermore. - -105:5 Remember his marvellous works that he hath done; his wonders, -and the judgments of his mouth; - -105:6 O ye seed of Abraham his servant, ye children of Jacob his -chosen. - -105:7 He is the LORD our God: his judgments are in all the earth. - -105:8 He hath remembered his covenant for ever, the word which he -commanded to a thousand generations. - -105:9 Which covenant he made with Abraham, and his oath unto Isaac; - -105:10 And confirmed the same unto Jacob for a law, and to Israel for -an everlasting covenant: - -105:11 Saying, Unto thee will I give the land of Canaan, the lot of -your inheritance: - -105:12 When they were but a few men in number; yea, very few, and -strangers in it. - -105:13 When they went from one nation to another, from one kingdom to -another people; - -105:14 He suffered no man to do them wrong: yea, he reproved kings for -their sakes; - -105:15 Saying, Touch not mine anointed, and do my prophets no harm. - -105:16 Moreover he called for a famine upon the land: he brake the -whole staff of bread. - -105:17 He sent a man before them, even Joseph, who was sold for a -servant: - -105:18 Whose feet they hurt with fetters: he was laid in iron: - -105:19 Until the time that his word came: the word of the LORD tried -him. - -105:20 The king sent and loosed him; even the ruler of the people, and -let him go free. - -105:21 He made him lord of his house, and ruler of all his substance: - -105:22 To bind his princes at his pleasure; and teach his senators -wisdom. - -105:23 Israel also came into Egypt; and Jacob sojourned in the land of -Ham. - -105:24 And he increased his people greatly; and made them stronger -than their enemies. - -105:25 He turned their heart to hate his people, to deal subtilly with -his servants. - -105:26 He sent Moses his servant; and Aaron whom he had chosen. - -105:27 They shewed his signs among them, and wonders in the land of -Ham. - -105:28 He sent darkness, and made it dark; and they rebelled not -against his word. - -105:29 He turned their waters into blood, and slew their fish. - -105:30 Their land brought forth frogs in abundance, in the chambers of -their kings. - -105:31 He spake, and there came divers sorts of flies, and lice in all -their coasts. - -105:32 He gave them hail for rain, and flaming fire in their land. - -105:33 He smote their vines also and their fig trees; and brake the -trees of their coasts. - -105:34 He spake, and the locusts came, and caterpillers, and that -without number, - -105:35 And did eat up all the herbs in their land, and devoured the -fruit of their ground. - -105:36 He smote also all the firstborn in their land, the chief of all -their strength. - -105:37 He brought them forth also with silver and gold: and there was -not one feeble person among their tribes. - -105:38 Egypt was glad when they departed: for the fear of them fell -upon them. - -105:39 He spread a cloud for a covering; and fire to give light in the -night. - -105:40 The people asked, and he brought quails, and satisfied them -with the bread of heaven. - -105:41 He opened the rock, and the waters gushed out; they ran in the -dry places like a river. - -105:42 For he remembered his holy promise, and Abraham his servant. - -105:43 And he brought forth his people with joy, and his chosen with -gladness: - -105:44 And gave them the lands of the heathen: and they inherited the -labour of the people; - -105:45 That they might observe his statutes, and keep his laws. Praise -ye the LORD. - - - -106:1 Praise ye the LORD. O give thanks unto the LORD; for he is good: -for his mercy endureth for ever. - -106:2 Who can utter the mighty acts of the LORD? who can shew forth -all his praise? - -106:3 Blessed are they that keep judgment, and he that doeth -righteousness at all times. - -106:4 Remember me, O LORD, with the favour that thou bearest unto thy -people: O visit me with thy salvation; - -106:5 That I may see the good of thy chosen, that I may rejoice in the -gladness of thy nation, that I may glory with thine inheritance. - -106:6 We have sinned with our fathers, we have committed iniquity, we -have done wickedly. - -106:7 Our fathers understood not thy wonders in Egypt; they remembered -not the multitude of thy mercies; but provoked him at the sea, even at -the Red sea. - -106:8 Nevertheless he saved them for his name's sake, that he might -make his mighty power to be known. - -106:9 He rebuked the Red sea also, and it was dried up: so he led them -through the depths, as through the wilderness. - -106:10 And he saved them from the hand of him that hated them, and -redeemed them from the hand of the enemy. - -106:11 And the waters covered their enemies: there was not one of them -left. - -106:12 Then believed they his words; they sang his praise. - -106:13 They soon forgat his works; they waited not for his counsel: - -106:14 But lusted exceedingly in the wilderness, and tempted God in -the desert. - -106:15 And he gave them their request; but sent leanness into their -soul. - -106:16 They envied Moses also in the camp, and Aaron the saint of the -LORD. - -106:17 The earth opened and swallowed up Dathan and covered the -company of Abiram. - -106:18 And a fire was kindled in their company; the flame burned up -the wicked. - -106:19 They made a calf in Horeb, and worshipped the molten image. - -106:20 Thus they changed their glory into the similitude of an ox that -eateth grass. - -106:21 They forgat God their saviour, which had done great things in -Egypt; - -106:22 Wondrous works in the land of Ham, and terrible things by the -Red sea. - -106:23 Therefore he said that he would destroy them, had not Moses his -chosen stood before him in the breach, to turn away his wrath, lest he -should destroy them. - -106:24 Yea, they despised the pleasant land, they believed not his -word: - -106:25 But murmured in their tents, and hearkened not unto the voice -of the LORD. - -106:26 Therefore he lifted up his hand against them, to overthrow them -in the wilderness: - -106:27 To overthrow their seed also among the nations, and to scatter -them in the lands. - -106:28 They joined themselves also unto Baalpeor, and ate the -sacrifices of the dead. - -106:29 Thus they provoked him to anger with their inventions: and the -plague brake in upon them. - -106:30 Then stood up Phinehas, and executed judgment: and so the -plague was stayed. - -106:31 And that was counted unto him for righteousness unto all -generations for evermore. - -106:32 They angered him also at the waters of strife, so that it went -ill with Moses for their sakes: - -106:33 Because they provoked his spirit, so that he spake unadvisedly -with his lips. - -106:34 They did not destroy the nations, concerning whom the LORD -commanded them: - -106:35 But were mingled among the heathen, and learned their works. - -106:36 And they served their idols: which were a snare unto them. - -106:37 Yea, they sacrificed their sons and their daughters unto -devils, - -106:38 And shed innocent blood, even the blood of their sons and of -their daughters, whom they sacrificed unto the idols of Canaan: and -the land was polluted with blood. - -106:39 Thus were they defiled with their own works, and went a whoring -with their own inventions. - -106:40 Therefore was the wrath of the LORD kindled against his people, -insomuch that he abhorred his own inheritance. - -106:41 And he gave them into the hand of the heathen; and they that -hated them ruled over them. - -106:42 Their enemies also oppressed them, and they were brought into -subjection under their hand. - -106:43 Many times did he deliver them; but they provoked him with -their counsel, and were brought low for their iniquity. - -106:44 Nevertheless he regarded their affliction, when he heard their -cry: - -106:45 And he remembered for them his covenant, and repented according -to the multitude of his mercies. - -106:46 He made them also to be pitied of all those that carried them -captives. - -106:47 Save us, O LORD our God, and gather us from among the heathen, -to give thanks unto thy holy name, and to triumph in thy praise. - -106:48 Blessed be the LORD God of Israel from everlasting to -everlasting: and let all the people say, Amen. Praise ye the LORD. - - - -107:1 O give thanks unto the LORD, for he is good: for his mercy -endureth for ever. - -107:2 Let the redeemed of the LORD say so, whom he hath redeemed from -the hand of the enemy; - -107:3 And gathered them out of the lands, from the east, and from the -west, from the north, and from the south. - -107:4 They wandered in the wilderness in a solitary way; they found no -city to dwell in. - -107:5 Hungry and thirsty, their soul fainted in them. - -107:6 Then they cried unto the LORD in their trouble, and he delivered -them out of their distresses. - -107:7 And he led them forth by the right way, that they might go to a -city of habitation. - -107:8 Oh that men would praise the LORD for his goodness, and for his -wonderful works to the children of men! - -107:9 For he satisfieth the longing soul, and filleth the hungry soul -with goodness. - -107:10 Such as sit in darkness and in the shadow of death, being bound -in affliction and iron; - -107:11 Because they rebelled against the words of God, and contemned -the counsel of the most High: - -107:12 Therefore he brought down their heart with labour; they fell -down, and there was none to help. - -107:13 Then they cried unto the LORD in their trouble, and he saved -them out of their distresses. - -107:14 He brought them out of darkness and the shadow of death, and -brake their bands in sunder. - -107:15 Oh that men would praise the LORD for his goodness, and for his -wonderful works to the children of men! - -107:16 For he hath broken the gates of brass, and cut the bars of iron -in sunder. - -107:17 Fools because of their transgression, and because of their -iniquities, are afflicted. - -107:18 Their soul abhorreth all manner of meat; and they draw near -unto the gates of death. - -107:19 Then they cry unto the LORD in their trouble, and he saveth -them out of their distresses. - -107:20 He sent his word, and healed them, and delivered them from -their destructions. - -107:21 Oh that men would praise the LORD for his goodness, and for his -wonderful works to the children of men! - -107:22 And let them sacrifice the sacrifices of thanksgiving, and -declare his works with rejoicing. - -107:23 They that go down to the sea in ships, that do business in -great waters; - -107:24 These see the works of the LORD, and his wonders in the deep. - -107:25 For he commandeth, and raiseth the stormy wind, which lifteth -up the waves thereof. - -107:26 They mount up to the heaven, they go down again to the depths: -their soul is melted because of trouble. - -107:27 They reel to and fro, and stagger like a drunken man, and are -at their wit's end. - -107:28 Then they cry unto the LORD in their trouble, and he bringeth -them out of their distresses. - -107:29 He maketh the storm a calm, so that the waves thereof are -still. - -107:30 Then are they glad because they be quiet; so he bringeth them -unto their desired haven. - -107:31 Oh that men would praise the LORD for his goodness, and for his -wonderful works to the children of men! - -107:32 Let them exalt him also in the congregation of the people, and -praise him in the assembly of the elders. - -107:33 He turneth rivers into a wilderness, and the watersprings into -dry ground; - -107:34 A fruitful land into barrenness, for the wickedness of them -that dwell therein. - -107:35 He turneth the wilderness into a standing water, and dry ground -into watersprings. - -107:36 And there he maketh the hungry to dwell, that they may prepare -a city for habitation; - -107:37 And sow the fields, and plant vineyards, which may yield fruits -of increase. - -107:38 He blesseth them also, so that they are multiplied greatly; and -suffereth not their cattle to decrease. - -107:39 Again, they are minished and brought low through oppression, -affliction, and sorrow. - -107:40 He poureth contempt upon princes, and causeth them to wander in -the wilderness, where there is no way. - -107:41 Yet setteth he the poor on high from affliction, and maketh him -families like a flock. - -107:42 The righteous shall see it, and rejoice: and all iniquity shall -stop her mouth. - -107:43 Whoso is wise, and will observe these things, even they shall -understand the lovingkindness of the LORD. - - - -108:1 O god, my heart is fixed; I will sing and give praise, even with -my glory. - -108:2 Awake, psaltery and harp: I myself will awake early. - -108:3 I will praise thee, O LORD, among the people: and I will sing -praises unto thee among the nations. - -108:4 For thy mercy is great above the heavens: and thy truth reacheth -unto the clouds. - -108:5 Be thou exalted, O God, above the heavens: and thy glory above -all the earth; - -108:6 That thy beloved may be delivered: save with thy right hand, and -answer me. - -108:7 God hath spoken in his holiness; I will rejoice, I will divide -Shechem, and mete out the valley of Succoth. - -108:8 Gilead is mine; Manasseh is mine; Ephraim also is the strength -of mine head; Judah is my lawgiver; - -108:9 Moab is my washpot; over Edom will I cast out my shoe; over -Philistia will I triumph. - -108:10 Who will bring me into the strong city? who will lead me into -Edom? - -108:11 Wilt not thou, O God, who hast cast us off? and wilt not thou, -O God, go forth with our hosts? - -108:12 Give us help from trouble: for vain is the help of man. - -108:13 Through God we shall do valiantly: for he it is that shall -tread down our enemies. - - - -109:1 Hold not thy peace, O God of my praise; - -109:2 For the mouth of the wicked and the mouth of the deceitful are -opened against me: they have spoken against me with a lying tongue. - -109:3 They compassed me about also with words of hatred; and fought -against me without a cause. - -109:4 For my love they are my adversaries: but I give myself unto -prayer. - -109:5 And they have rewarded me evil for good, and hatred for my love. - -109:6 Set thou a wicked man over him: and let Satan stand at his right -hand. - -109:7 When he shall be judged, let him be condemned: and let his -prayer become sin. - -109:8 Let his days be few; and let another take his office. - -109:9 Let his children be fatherless, and his wife a widow. - -109:10 Let his children be continually vagabonds, and beg: let them -seek their bread also out of their desolate places. - -109:11 Let the extortioner catch all that he hath; and let the -strangers spoil his labour. - -109:12 Let there be none to extend mercy unto him: neither let there -be any to favour his fatherless children. - -109:13 Let his posterity be cut off; and in the generation following -let their name be blotted out. - -109:14 Let the iniquity of his fathers be remembered with the LORD; -and let not the sin of his mother be blotted out. - -109:15 Let them be before the LORD continually, that he may cut off -the memory of them from the earth. - -109:16 Because that he remembered not to shew mercy, but persecuted -the poor and needy man, that he might even slay the broken in heart. - -109:17 As he loved cursing, so let it come unto him: as he delighted -not in blessing, so let it be far from him. - -109:18 As he clothed himself with cursing like as with his garment, so -let it come into his bowels like water, and like oil into his bones. - -109:19 Let it be unto him as the garment which covereth him, and for a -girdle wherewith he is girded continually. - -109:20 Let this be the reward of mine adversaries from the LORD, and -of them that speak evil against my soul. - -109:21 But do thou for me, O GOD the Lord, for thy name's sake: -because thy mercy is good, deliver thou me. - -109:22 For I am poor and needy, and my heart is wounded within me. - -109:23 I am gone like the shadow when it declineth: I am tossed up and -down as the locust. - -109:24 My knees are weak through fasting; and my flesh faileth of -fatness. - -109:25 I became also a reproach unto them: when they looked upon me -they shaked their heads. - -109:26 Help me, O LORD my God: O save me according to thy mercy: - -109:27 That they may know that this is thy hand; that thou, LORD, hast -done it. - -109:28 Let them curse, but bless thou: when they arise, let them be -ashamed; but let thy servant rejoice. - -109:29 Let mine adversaries be clothed with shame, and let them cover -themselves with their own confusion, as with a mantle. - -109:30 I will greatly praise the LORD with my mouth; yea, I will -praise him among the multitude. - -109:31 For he shall stand at the right hand of the poor, to save him -from those that condemn his soul. - - - -110:1 The LORD said unto my Lord, Sit thou at my right hand, until I -make thine enemies thy footstool. - -110:2 The LORD shall send the rod of thy strength out of Zion: rule -thou in the midst of thine enemies. - -110:3 Thy people shall be willing in the day of thy power, in the -beauties of holiness from the womb of the morning: thou hast the dew -of thy youth. - -110:4 The LORD hath sworn, and will not repent, Thou art a priest for -ever after the order of Melchizedek. - -110:5 The Lord at thy right hand shall strike through kings in the day -of his wrath. - -110:6 He shall judge among the heathen, he shall fill the places with -the dead bodies; he shall wound the heads over many countries. - -110:7 He shall drink of the brook in the way: therefore shall he lift -up the head. - - - -111:1 Praise ye the LORD. I will praise the LORD with my whole heart, -in the assembly of the upright, and in the congregation. - -111:2 The works of the LORD are great, sought out of all them that -have pleasure therein. - -111:3 His work is honourable and glorious: and his righteousness -endureth for ever. - -111:4 He hath made his wonderful works to be remembered: the LORD is -gracious and full of compassion. - -111:5 He hath given meat unto them that fear him: he will ever be -mindful of his covenant. - -111:6 He hath shewed his people the power of his works, that he may -give them the heritage of the heathen. - -111:7 The works of his hands are verity and judgment; all his -commandments are sure. - -111:8 They stand fast for ever and ever, and are done in truth and -uprightness. - -111:9 He sent redemption unto his people: he hath commanded his -covenant for ever: holy and reverend is his name. - -111:10 The fear of the LORD is the beginning of wisdom: a good -understanding have all they that do his commandments: his praise -endureth for ever. - - - -112:1 Praise ye the LORD. Blessed is the man that feareth the LORD, -that delighteth greatly in his commandments. - -112:2 His seed shall be mighty upon earth: the generation of the -upright shall be blessed. - -112:3 Wealth and riches shall be in his house: and his righteousness -endureth for ever. - -112:4 Unto the upright there ariseth light in the darkness: he is -gracious, and full of compassion, and righteous. - -112:5 A good man sheweth favour, and lendeth: he will guide his -affairs with discretion. - -112:6 Surely he shall not be moved for ever: the righteous shall be in -everlasting remembrance. - -112:7 He shall not be afraid of evil tidings: his heart is fixed, -trusting in the LORD. - -112:8 His heart is established, he shall not be afraid, until he see -his desire upon his enemies. - -112:9 He hath dispersed, he hath given to the poor; his righteousness -endureth for ever; his horn shall be exalted with honour. - -112:10 The wicked shall see it, and be grieved; he shall gnash with -his teeth, and melt away: the desire of the wicked shall perish. - - - -113:1 Praise ye the LORD. Praise, O ye servants of the LORD, praise -the name of the LORD. - -113:2 Blessed be the name of the LORD from this time forth and for -evermore. - -113:3 From the rising of the sun unto the going down of the same the -LORD's name is to be praised. - -113:4 The LORD is high above all nations, and his glory above the -heavens. - -113:5 Who is like unto the LORD our God, who dwelleth on high, - -113:6 Who humbleth himself to behold the things that are in heaven, -and in the earth! - -113:7 He raiseth up the poor out of the dust, and lifteth the needy -out of the dunghill; - -113:8 That he may set him with princes, even with the princes of his -people. - -113:9 He maketh the barren woman to keep house, and to be a joyful -mother of children. Praise ye the LORD. - - - -114:1 When Israel went out of Egypt, the house of Jacob from a people -of strange language; - -114:2 Judah was his sanctuary, and Israel his dominion. - -114:3 The sea saw it, and fled: Jordan was driven back. - -114:4 The mountains skipped like rams, and the little hills like -lambs. - -114:5 What ailed thee, O thou sea, that thou fleddest? thou Jordan, -that thou wast driven back? - -114:6 Ye mountains, that ye skipped like rams; and ye little hills, -like lambs? - -114:7 Tremble, thou earth, at the presence of the Lord, at the -presence of the God of Jacob; - -114:8 Which turned the rock into a standing water, the flint into a -fountain of waters. - - - -115:1 Not unto us, O LORD, not unto us, but unto thy name give glory, -for thy mercy, and for thy truth's sake. - -115:2 Wherefore should the heathen say, Where is now their God? - -115:3 But our God is in the heavens: he hath done whatsoever he hath -pleased. - -115:4 Their idols are silver and gold, the work of men's hands. - -115:5 They have mouths, but they speak not: eyes have they, but they -see not: - -115:6 They have ears, but they hear not: noses have they, but they -smell not: - -115:7 They have hands, but they handle not: feet have they, but they -walk not: neither speak they through their throat. - -115:8 They that make them are like unto them; so is every one that -trusteth in them. - -115:9 O Israel, trust thou in the LORD: he is their help and their -shield. - -115:10 O house of Aaron, trust in the LORD: he is their help and their -shield. - -115:11 Ye that fear the LORD, trust in the LORD: he is their help and -their shield. - -115:12 The LORD hath been mindful of us: he will bless us; he will -bless the house of Israel; he will bless the house of Aaron. - -115:13 He will bless them that fear the LORD, both small and great. - -115:14 The LORD shall increase you more and more, you and your -children. - -115:15 Ye are blessed of the LORD which made heaven and earth. - -115:16 The heaven, even the heavens, are the LORD's: but the earth -hath he given to the children of men. - -115:17 The dead praise not the LORD, neither any that go down into -silence. - -115:18 But we will bless the LORD from this time forth and for -evermore. - -Praise the LORD. - - - -116:1 I love the LORD, because he hath heard my voice and my -supplications. - -116:2 Because he hath inclined his ear unto me, therefore will I call -upon him as long as I live. - -116:3 The sorrows of death compassed me, and the pains of hell gat -hold upon me: I found trouble and sorrow. - -116:4 Then called I upon the name of the LORD; O LORD, I beseech thee, -deliver my soul. - -116:5 Gracious is the LORD, and righteous; yea, our God is merciful. - -116:6 The LORD preserveth the simple: I was brought low, and he helped -me. - -116:7 Return unto thy rest, O my soul; for the LORD hath dealt -bountifully with thee. - -116:8 For thou hast delivered my soul from death, mine eyes from -tears, and my feet from falling. - -116:9 I will walk before the LORD in the land of the living. - -116:10 I believed, therefore have I spoken: I was greatly afflicted: - -116:11 I said in my haste, All men are liars. - -116:12 What shall I render unto the LORD for all his benefits toward -me? - -116:13 I will take the cup of salvation, and call upon the name of the -LORD. - -116:14 I will pay my vows unto the LORD now in the presence of all his -people. - -116:15 Precious in the sight of the LORD is the death of his saints. - -116:16 O LORD, truly I am thy servant; I am thy servant, and the son -of thine handmaid: thou hast loosed my bonds. - -116:17 I will offer to thee the sacrifice of thanksgiving, and will -call upon the name of the LORD. - -116:18 I will pay my vows unto the LORD now in the presence of all his -people. - -116:19 In the courts of the LORD's house, in the midst of thee, O -Jerusalem. Praise ye the LORD. - - - -117:1 O praise the LORD, all ye nations: praise him, all ye people. - -117:2 For his merciful kindness is great toward us: and the truth of -the LORD endureth for ever. Praise ye the LORD. - - - -118:1 O give thanks unto the LORD; for he is good: because his mercy -endureth for ever. - -118:2 Let Israel now say, that his mercy endureth for ever. - -118:3 Let the house of Aaron now say, that his mercy endureth for -ever. - -118:4 Let them now that fear the LORD say, that his mercy endureth for -ever. - -118:5 I called upon the LORD in distress: the LORD answered me, and -set me in a large place. - -118:6 The LORD is on my side; I will not fear: what can man do unto -me? - -118:7 The LORD taketh my part with them that help me: therefore shall -I see my desire upon them that hate me. - -118:8 It is better to trust in the LORD than to put confidence in man. - -118:9 It is better to trust in the LORD than to put confidence in -princes. - -118:10 All nations compassed me about: but in the name of the LORD -will I destroy them. - -118:11 They compassed me about; yea, they compassed me about: but in -the name of the LORD I will destroy them. - -118:12 They compassed me about like bees: they are quenched as the -fire of thorns: for in the name of the LORD I will destroy them. - -118:13 Thou hast thrust sore at me that I might fall: but the LORD -helped me. - -118:14 The LORD is my strength and song, and is become my salvation. - -118:15 The voice of rejoicing and salvation is in the tabernacles of -the righteous: the right hand of the LORD doeth valiantly. - -118:16 The right hand of the LORD is exalted: the right hand of the -LORD doeth valiantly. - -118:17 I shall not die, but live, and declare the works of the LORD. - -118:18 The LORD hath chastened me sore: but he hath not given me over -unto death. - -118:19 Open to me the gates of righteousness: I will go into them, and -I will praise the LORD: - -118:20 This gate of the LORD, into which the righteous shall enter. - -118:21 I will praise thee: for thou hast heard me, and art become my -salvation. - -118:22 The stone which the builders refused is become the head stone -of the corner. - -118:23 This is the LORD's doing; it is marvellous in our eyes. - -118:24 This is the day which the LORD hath made; we will rejoice and -be glad in it. - -118:25 Save now, I beseech thee, O LORD: O LORD, I beseech thee, send -now prosperity. - -118:26 Blessed be he that cometh in the name of the LORD: we have -blessed you out of the house of the LORD. - -118:27 God is the LORD, which hath shewed us light: bind the sacrifice -with cords, even unto the horns of the altar. - -118:28 Thou art my God, and I will praise thee: thou art my God, I -will exalt thee. - -118:29 O give thanks unto the LORD; for he is good: for his mercy -endureth for ever. - - - -119:1 Blessed are the undefiled in the way, who walk in the law of the -LORD. - -119:2 Blessed are they that keep his testimonies, and that seek him -with the whole heart. - -119:3 They also do no iniquity: they walk in his ways. - -119:4 Thou hast commanded us to keep thy precepts diligently. - -119:5 O that my ways were directed to keep thy statutes! - -119:6 Then shall I not be ashamed, when I have respect unto all thy -commandments. - -119:7 I will praise thee with uprightness of heart, when I shall have -learned thy righteous judgments. - -119:8 I will keep thy statutes: O forsake me not utterly. - -119:9 Wherewithal shall a young man cleanse his way? by taking heed -thereto according to thy word. - -119:10 With my whole heart have I sought thee: O let me not wander -from thy commandments. - -119:11 Thy word have I hid in mine heart, that I might not sin against -thee. - -119:12 Blessed art thou, O LORD: teach me thy statutes. - -119:13 With my lips have I declared all the judgments of thy mouth. - -119:14 I have rejoiced in the way of thy testimonies, as much as in -all riches. - -119:15 I will meditate in thy precepts, and have respect unto thy -ways. - -119:16 I will delight myself in thy statutes: I will not forget thy -word. - -119:17 Deal bountifully with thy servant, that I may live, and keep -thy word. - -119:18 Open thou mine eyes, that I may behold wondrous things out of -thy law. - -119:19 I am a stranger in the earth: hide not thy commandments from -me. - -119:20 My soul breaketh for the longing that it hath unto thy -judgments at all times. - -119:21 Thou hast rebuked the proud that are cursed, which do err from -thy commandments. - -119:22 Remove from me reproach and contempt; for I have kept thy -testimonies. - -119:23 Princes also did sit and speak against me: but thy servant did -meditate in thy statutes. - -119:24 Thy testimonies also are my delight and my counsellors.leth. - -119:25 My soul cleaveth unto the dust: quicken thou me according to -thy word. - -119:26 I have declared my ways, and thou heardest me: teach me thy -statutes. - -119:27 Make me to understand the way of thy precepts: so shall I talk -of thy wondrous works. - -119:28 My soul melteth for heaviness: strengthen thou me according -unto thy word. - -119:29 Remove from me the way of lying: and grant me thy law -graciously. - -119:30 I have chosen the way of truth: thy judgments have I laid -before me. - -119:31 I have stuck unto thy testimonies: O LORD, put me not to shame. - -119:32 I will run the way of thy commandments, when thou shalt enlarge -my heart. - -119:33 Teach me, O LORD, the way of thy statutes; and I shall keep it -unto the end. - -119:34 Give me understanding, and I shall keep thy law; yea, I shall -observe it with my whole heart. - -119:35 Make me to go in the path of thy commandments; for therein do I -delight. - -119:36 Incline my heart unto thy testimonies, and not to covetousness. - -119:37 Turn away mine eyes from beholding vanity; and quicken thou me -in thy way. - -119:38 Stablish thy word unto thy servant, who is devoted to thy fear. - -119:39 Turn away my reproach which I fear: for thy judgments are good. - -119:40 Behold, I have longed after thy precepts: quicken me in thy -righteousness. - -119:41 Let thy mercies come also unto me, O LORD, even thy salvation, -according to thy word. - -119:42 So shall I have wherewith to answer him that reproacheth me: -for I trust in thy word. - -119:43 And take not the word of truth utterly out of my mouth; for I -have hoped in thy judgments. - -119:44 So shall I keep thy law continually for ever and ever. - -119:45 And I will walk at liberty: for I seek thy precepts. - -119:46 I will speak of thy testimonies also before kings, and will not -be ashamed. - -119:47 And I will delight myself in thy commandments, which I have -loved. - -119:48 My hands also will I lift up unto thy commandments, which I -have loved; and I will meditate in thy statutes. - -119:49 Remember the word unto thy servant, upon which thou hast caused -me to hope. - -119:50 This is my comfort in my affliction: for thy word hath -quickened me. - -119:51 The proud have had me greatly in derision: yet have I not -declined from thy law. - -119:52 I remembered thy judgments of old, O LORD; and have comforted -myself. - -119:53 Horror hath taken hold upon me because of the wicked that -forsake thy law. - -119:54 Thy statutes have been my songs in the house of my pilgrimage. - -119:55 I have remembered thy name, O LORD, in the night, and have kept -thy law. - -119:56 This I had, because I kept thy precepts. - -119:57 Thou art my portion, O LORD: I have said that I would keep thy -words. - -119:58 I intreated thy favour with my whole heart: be merciful unto me -according to thy word. - -119:59 I thought on my ways, and turned my feet unto thy testimonies. - -119:60 I made haste, and delayed not to keep thy commandments. - -119:61 The bands of the wicked have robbed me: but I have not -forgotten thy law. - -119:62 At midnight I will rise to give thanks unto thee because of thy -righteous judgments. - -119:63 I am a companion of all them that fear thee, and of them that -keep thy precepts. - -119:64 The earth, O LORD, is full of thy mercy: teach me thy statutes. - -119:65 Thou hast dealt well with thy servant, O LORD, according unto -thy word. - -119:66 Teach me good judgment and knowledge: for I have believed thy -commandments. - -119:67 Before I was afflicted I went astray: but now have I kept thy -word. - -119:68 Thou art good, and doest good; teach me thy statutes. - -119:69 The proud have forged a lie against me: but I will keep thy -precepts with my whole heart. - -119:70 Their heart is as fat as grease; but I delight in thy law. - -119:71 It is good for me that I have been afflicted; that I might -learn thy statutes. - -119:72 The law of thy mouth is better unto me than thousands of gold -and silver. - -119:73 Thy hands have made me and fashioned me: give me understanding, -that I may learn thy commandments. - -119:74 They that fear thee will be glad when they see me; because I -have hoped in thy word. - -119:75 I know, O LORD, that thy judgments are right, and that thou in -faithfulness hast afflicted me. - -119:76 Let, I pray thee, thy merciful kindness be for my comfort, -according to thy word unto thy servant. - -119:77 Let thy tender mercies come unto me, that I may live: for thy -law is my delight. - -119:78 Let the proud be ashamed; for they dealt perversely with me -without a cause: but I will meditate in thy precepts. - -119:79 Let those that fear thee turn unto me, and those that have -known thy testimonies. - -119:80 Let my heart be sound in thy statutes; that I be not ashamed. - -119:81 My soul fainteth for thy salvation: but I hope in thy word. - -119:82 Mine eyes fail for thy word, saying, When wilt thou comfort me? - -119:83 For I am become like a bottle in the smoke; yet do I not forget -thy statutes. - -119:84 How many are the days of thy servant? when wilt thou execute -judgment on them that persecute me? - -119:85 The proud have digged pits for me, which are not after thy law. - -119:86 All thy commandments are faithful: they persecute me -wrongfully; help thou me. - -119:87 They had almost consumed me upon earth; but I forsook not thy -precepts. - -119:88 Quicken me after thy lovingkindness; so shall I keep the -testimony of thy mouth. - -119:89 For ever, O LORD, thy word is settled in heaven. - -119:90 Thy faithfulness is unto all generations: thou hast established -the earth, and it abideth. - -119:91 They continue this day according to thine ordinances: for all -are thy servants. - -119:92 Unless thy law had been my delights, I should then have -perished in mine affliction. - -119:93 I will never forget thy precepts: for with them thou hast -quickened me. - -119:94 I am thine, save me: for I have sought thy precepts. - -119:95 The wicked have waited for me to destroy me: but I will -consider thy testimonies. - -119:96 I have seen an end of all perfection: but thy commandment is -exceeding broad. - -119:97 O how I love thy law! it is my meditation all the day. - -119:98 Thou through thy commandments hast made me wiser than mine -enemies: for they are ever with me. - -119:99 I have more understanding than all my teachers: for thy -testimonies are my meditation. - -119:100 I understand more than the ancients, because I keep thy -precepts. - -119:101 I have refrained my feet from every evil way, that I might -keep thy word. - -119:102 I have not departed from thy judgments: for thou hast taught -me. - -119:103 How sweet are thy words unto my taste! yea, sweeter than honey -to my mouth! - -119:104 Through thy precepts I get understanding: therefore I hate -every false way. - -119:105 Thy word is a lamp unto my feet, and a light unto my path. - -119:106 I have sworn, and I will perform it, that I will keep thy -righteous judgments. - -119:107 I am afflicted very much: quicken me, O LORD, according unto -thy word. - -119:108 Accept, I beseech thee, the freewill offerings of my mouth, O -LORD, and teach me thy judgments. - -119:109 My soul is continually in my hand: yet do I not forget thy -law. - -119:110 The wicked have laid a snare for me: yet I erred not from thy -precepts. - -119:111 Thy testimonies have I taken as an heritage for ever: for they -are the rejoicing of my heart. - -119:112 I have inclined mine heart to perform thy statutes alway, even -unto the end. - -119:113 I hate vain thoughts: but thy law do I love. - -119:114 Thou art my hiding place and my shield: I hope in thy word. - -119:115 Depart from me, ye evildoers: for I will keep the commandments -of my God. - -119:116 Uphold me according unto thy word, that I may live: and let me -not be ashamed of my hope. - -119:117 Hold thou me up, and I shall be safe: and I will have respect -unto thy statutes continually. - -119:118 Thou hast trodden down all them that err from thy statutes: -for their deceit is falsehood. - -119:119 Thou puttest away all the wicked of the earth like dross: -therefore I love thy testimonies. - -119:120 My flesh trembleth for fear of thee; and I am afraid of thy -judgments. - -119:121 I have done judgment and justice: leave me not to mine -oppressors. - -119:122 Be surety for thy servant for good: let not the proud oppress -me. - -119:123 Mine eyes fail for thy salvation, and for the word of thy -righteousness. - -119:124 Deal with thy servant according unto thy mercy, and teach me -thy statutes. - -119:125 I am thy servant; give me understanding, that I may know thy -testimonies. - -119:126 It is time for thee, LORD, to work: for they have made void -thy law. - -119:127 Therefore I love thy commandments above gold; yea, above fine -gold. - -119:128 Therefore I esteem all thy precepts concerning all things to -be right; and I hate every false way. - -119:129 Thy testimonies are wonderful: therefore doth my soul keep -them. - -119:130 The entrance of thy words giveth light; it giveth -understanding unto the simple. - -119:131 I opened my mouth, and panted: for I longed for thy -commandments. - -119:132 Look thou upon me, and be merciful unto me, as thou usest to -do unto those that love thy name. - -119:133 Order my steps in thy word: and let not any iniquity have -dominion over me. - -119:134 Deliver me from the oppression of man: so will I keep thy -precepts. - -119:135 Make thy face to shine upon thy servant; and teach me thy -statutes. - -119:136 Rivers of waters run down mine eyes, because they keep not thy -law. - -119:137 Righteous art thou, O LORD, and upright are thy judgments. - -119:138 Thy testimonies that thou hast commanded are righteous and -very faithful. - -119:139 My zeal hath consumed me, because mine enemies have forgotten -thy words. - -119:140 Thy word is very pure: therefore thy servant loveth it. - -119:141 I am small and despised: yet do not I forget thy precepts. - -119:142 Thy righteousness is an everlasting righteousness, and thy law -is the truth. - -119:143 Trouble and anguish have taken hold on me: yet thy -commandments are my delights. - -119:144 The righteousness of thy testimonies is everlasting: give me -understanding, and I shall live. - -119:145 I cried with my whole heart; hear me, O LORD: I will keep thy -statutes. - -119:146 I cried unto thee; save me, and I shall keep thy testimonies. - -119:147 I prevented the dawning of the morning, and cried: I hoped in -thy word. - -119:148 Mine eyes prevent the night watches, that I might meditate in -thy word. - -119:149 Hear my voice according unto thy lovingkindness: O LORD, -quicken me according to thy judgment. - -119:150 They draw nigh that follow after mischief: they are far from -thy law. - -119:151 Thou art near, O LORD; and all thy commandments are truth. - -119:152 Concerning thy testimonies, I have known of old that thou hast -founded them for ever. - -119:153 Consider mine affliction, and deliver me: for I do not forget -thy law. - -119:154 Plead my cause, and deliver me: quicken me according to thy -word. - -119:155 Salvation is far from the wicked: for they seek not thy -statutes. - -119:156 Great are thy tender mercies, O LORD: quicken me according to -thy judgments. - -119:157 Many are my persecutors and mine enemies; yet do I not decline -from thy testimonies. - -119:158 I beheld the transgressors, and was grieved; because they kept -not thy word. - -119:159 Consider how I love thy precepts: quicken me, O LORD, -according to thy lovingkindness. - -119:160 Thy word is true from the beginning: and every one of thy -righteous judgments endureth for ever. - -119:161 Princes have persecuted me without a cause: but my heart -standeth in awe of thy word. - -119:162 I rejoice at thy word, as one that findeth great spoil. - -119:163 I hate and abhor lying: but thy law do I love. - -119:164 Seven times a day do I praise thee because of thy righteous -judgments. - -119:165 Great peace have they which love thy law: and nothing shall -offend them. - -119:166 LORD, I have hoped for thy salvation, and done thy -commandments. - -119:167 My soul hath kept thy testimonies; and I love them -exceedingly. - -119:168 I have kept thy precepts and thy testimonies: for all my ways -are before thee. - -119:169 Let my cry come near before thee, O LORD: give me -understanding according to thy word. - -119:170 Let my supplication come before thee: deliver me according to -thy word. - -119:171 My lips shall utter praise, when thou hast taught me thy -statutes. - -119:172 My tongue shall speak of thy word: for all thy commandments -are righteousness. - -119:173 Let thine hand help me; for I have chosen thy precepts. - -119:174 I have longed for thy salvation, O LORD; and thy law is my -delight. - -119:175 Let my soul live, and it shall praise thee; and let thy -judgments help me. - -119:176 I have gone astray like a lost sheep; seek thy servant; for I -do not forget thy commandments. - - - -120:1 In my distress I cried unto the LORD, and he heard me. - -120:2 Deliver my soul, O LORD, from lying lips, and from a deceitful -tongue. - -120:3 What shall be given unto thee? or what shall be done unto thee, -thou false tongue? - -120:4 Sharp arrows of the mighty, with coals of juniper. - -120:5 Woe is me, that I sojourn in Mesech, that I dwell in the tents -of Kedar! - -120:6 My soul hath long dwelt with him that hateth peace. - -120:7 I am for peace: but when I speak, they are for war. - - - -121:1 I will lift up mine eyes unto the hills, from whence cometh my -help. - -121:2 My help cometh from the LORD, which made heaven and earth. - -121:3 He will not suffer thy foot to be moved: he that keepeth thee -will not slumber. - -121:4 Behold, he that keepeth Israel shall neither slumber nor sleep. - -121:5 The LORD is thy keeper: the LORD is thy shade upon thy right -hand. - -121:6 The sun shall not smite thee by day, nor the moon by night. - -121:7 The LORD shall preserve thee from all evil: he shall preserve -thy soul. - -121:8 The LORD shall preserve thy going out and thy coming in from -this time forth, and even for evermore. - - - -122:1 I was glad when they said unto me, Let us go into the house of -the LORD. - -122:2 Our feet shall stand within thy gates, O Jerusalem. - -122:3 Jerusalem is builded as a city that is compact together: - -122:4 Whither the tribes go up, the tribes of the LORD, unto the -testimony of Israel, to give thanks unto the name of the LORD. - -122:5 For there are set thrones of judgment, the thrones of the house -of David. - -122:6 Pray for the peace of Jerusalem: they shall prosper that love -thee. - -122:7 Peace be within thy walls, and prosperity within thy palaces. - -122:8 For my brethren and companions' sakes, I will now say, Peace be -within thee. - -122:9 Because of the house of the LORD our God I will seek thy good. - - - -123:1 Unto thee lift I up mine eyes, O thou that dwellest in the -heavens. - -123:2 Behold, as the eyes of servants look unto the hand of their -masters, and as the eyes of a maiden unto the hand of her mistress; so -our eyes wait upon the LORD our God, until that he have mercy upon us. - -123:3 Have mercy upon us, O LORD, have mercy upon us: for we are -exceedingly filled with contempt. - -123:4 Our soul is exceedingly filled with the scorning of those that -are at ease, and with the contempt of the proud. - - - -124:1 If it had not been the LORD who was on our side, now may Israel -say; - -124:2 If it had not been the LORD who was on our side, when men rose -up against us: - -124:3 Then they had swallowed us up quick, when their wrath was -kindled against us: - -124:4 Then the waters had overwhelmed us, the stream had gone over our -soul: - -124:5 Then the proud waters had gone over our soul. - -124:6 Blessed be the LORD, who hath not given us as a prey to their -teeth. - -124:7 Our soul is escaped as a bird out of the snare of the fowlers: -the snare is broken, and we are escaped. - -124:8 Our help is in the name of the LORD, who made heaven and earth. - - - -125:1 They that trust in the LORD shall be as mount Zion, which cannot -be removed, but abideth for ever. - -125:2 As the mountains are round about Jerusalem, so the LORD is round -about his people from henceforth even for ever. - -125:3 For the rod of the wicked shall not rest upon the lot of the -righteous; lest the righteous put forth their hands unto iniquity. - -125:4 Do good, O LORD, unto those that be good, and to them that are -upright in their hearts. - -125:5 As for such as turn aside unto their crooked ways, the LORD -shall lead them forth with the workers of iniquity: but peace shall be -upon Israel. - - - -126:1 When the LORD turned again the captivity of Zion, we were like -them that dream. - -126:2 Then was our mouth filled with laughter, and our tongue with -singing: then said they among the heathen, The LORD hath done great -things for them. - -126:3 The LORD hath done great things for us; whereof we are glad. - -126:4 Turn again our captivity, O LORD, as the streams in the south. - -126:5 They that sow in tears shall reap in joy. - -126:6 He that goeth forth and weepeth, bearing precious seed, shall -doubtless come again with rejoicing, bringing his sheaves with him. - - - -127:1 Except the LORD build the house, they labour in vain that build -it: except the LORD keep the city, the watchman waketh but in vain. - -127:2 It is vain for you to rise up early, to sit up late, to eat the -bread of sorrows: for so he giveth his beloved sleep. - -127:3 Lo, children are an heritage of the LORD: and the fruit of the -womb is his reward. - -127:4 As arrows are in the hand of a mighty man; so are children of -the youth. - -127:5 Happy is the man that hath his quiver full of them: they shall -not be ashamed, but they shall speak with the enemies in the gate. - - - -128:1 Blessed is every one that feareth the LORD; that walketh in his -ways. - -128:2 For thou shalt eat the labour of thine hands: happy shalt thou -be, and it shall be well with thee. - -128:3 Thy wife shall be as a fruitful vine by the sides of thine -house: thy children like olive plants round about thy table. - -128:4 Behold, that thus shall the man be blessed that feareth the -LORD. - -128:5 The LORD shall bless thee out of Zion: and thou shalt see the -good of Jerusalem all the days of thy life. - -128:6 Yea, thou shalt see thy children's children, and peace upon -Israel. - - - -129:1 Many a time have they afflicted me from my youth, may Israel now -say: - -129:2 Many a time have they afflicted me from my youth: yet they have -not prevailed against me. - -129:3 The plowers plowed upon my back: they made long their furrows. - -129:4 The LORD is righteous: he hath cut asunder the cords of the -wicked. - -129:5 Let them all be confounded and turned back that hate Zion. - -129:6 Let them be as the grass upon the housetops, which withereth -afore it groweth up: - -129:7 Wherewith the mower filleth not his hand; nor he that bindeth -sheaves his bosom. - -129:8 Neither do they which go by say, The blessing of the LORD be -upon you: we bless you in the name of the LORD. - - - -130:1 Out of the depths have I cried unto thee, O LORD. - -130:2 Lord, hear my voice: let thine ears be attentive to the voice of -my supplications. - -130:3 If thou, LORD, shouldest mark iniquities, O Lord, who shall -stand? - -130:4 But there is forgiveness with thee, that thou mayest be feared. - -130:5 I wait for the LORD, my soul doth wait, and in his word do I -hope. - -130:6 My soul waiteth for the Lord more than they that watch for the -morning: I say, more than they that watch for the morning. - -130:7 Let Israel hope in the LORD: for with the LORD there is mercy, -and with him is plenteous redemption. - -130:8 And he shall redeem Israel from all his iniquities. - - - -131:1 Lord, my heart is not haughty, nor mine eyes lofty: neither do I -exercise myself in great matters, or in things too high for me. - -131:2 Surely I have behaved and quieted myself, as a child that is -weaned of his mother: my soul is even as a weaned child. - -131:3 Let Israel hope in the LORD from henceforth and for ever. - - - -132:1 Lord, remember David, and all his afflictions: - -132:2 How he sware unto the LORD, and vowed unto the mighty God of -Jacob; - -132:3 Surely I will not come into the tabernacle of my house, nor go -up into my bed; - -132:4 I will not give sleep to mine eyes, or slumber to mine eyelids, - -132:5 Until I find out a place for the LORD, an habitation for the -mighty God of Jacob. - -132:6 Lo, we heard of it at Ephratah: we found it in the fields of the -wood. - -132:7 We will go into his tabernacles: we will worship at his -footstool. - -132:8 Arise, O LORD, into thy rest; thou, and the ark of thy strength. - -132:9 Let thy priests be clothed with righteousness; and let thy -saints shout for joy. - -132:10 For thy servant David's sake turn not away the face of thine -anointed. - -132:11 The LORD hath sworn in truth unto David; he will not turn from -it; Of the fruit of thy body will I set upon thy throne. - -132:12 If thy children will keep my covenant and my testimony that I -shall teach them, their children shall also sit upon thy throne for -evermore. - -132:13 For the LORD hath chosen Zion; he hath desired it for his -habitation. - -132:14 This is my rest for ever: here will I dwell; for I have desired -it. - -132:15 I will abundantly bless her provision: I will satisfy her poor -with bread. - -132:16 I will also clothe her priests with salvation: and her saints -shall shout aloud for joy. - -132:17 There will I make the horn of David to bud: I have ordained a -lamp for mine anointed. - -132:18 His enemies will I clothe with shame: but upon himself shall -his crown flourish. - - - -133:1 Behold, how good and how pleasant it is for brethren to dwell -together in unity! - -133:2 It is like the precious ointment upon the head, that ran down -upon the beard, even Aaron's beard: that went down to the skirts of -his garments; - -133:3 As the dew of Hermon, and as the dew that descended upon the -mountains of Zion: for there the LORD commanded the blessing, even -life for evermore. - - - -134:1 Behold, bless ye the LORD, all ye servants of the LORD, which by -night stand in the house of the LORD. - -134:2 Lift up your hands in the sanctuary, and bless the LORD. - -134:3 The LORD that made heaven and earth bless thee out of Zion. - - - -135:1 Praise ye the LORD. Praise ye the name of the LORD; praise him, -O ye servants of the LORD. - -135:2 Ye that stand in the house of the LORD, in the courts of the -house of our God. - -135:3 Praise the LORD; for the LORD is good: sing praises unto his -name; for it is pleasant. - -135:4 For the LORD hath chosen Jacob unto himself, and Israel for his -peculiar treasure. - -135:5 For I know that the LORD is great, and that our Lord is above -all gods. - -135:6 Whatsoever the LORD pleased, that did he in heaven, and in -earth, in the seas, and all deep places. - -135:7 He causeth the vapours to ascend from the ends of the earth; he -maketh lightnings for the rain; he bringeth the wind out of his -treasuries. - -135:8 Who smote the firstborn of Egypt, both of man and beast. - -135:9 Who sent tokens and wonders into the midst of thee, O Egypt, -upon Pharaoh, and upon all his servants. - -135:10 Who smote great nations, and slew mighty kings; - -135:11 Sihon king of the Amorites, and Og king of Bashan, and all the -kingdoms of Canaan: - -135:12 And gave their land for an heritage, an heritage unto Israel -his people. - -135:13 Thy name, O LORD, endureth for ever; and thy memorial, O LORD, -throughout all generations. - -135:14 For the LORD will judge his people, and he will repent himself -concerning his servants. - -135:15 The idols of the heathen are silver and gold, the work of men's -hands. - -135:16 They have mouths, but they speak not; eyes have they, but they -see not; - -135:17 They have ears, but they hear not; neither is there any breath -in their mouths. - -135:18 They that make them are like unto them: so is every one that -trusteth in them. - -135:19 Bless the LORD, O house of Israel: bless the LORD, O house of -Aaron: - -135:20 Bless the LORD, O house of Levi: ye that fear the LORD, bless -the LORD. - -135:21 Blessed be the LORD out of Zion, which dwelleth at Jerusalem. - -Praise ye the LORD. - - - -136:1 O give thanks unto the LORD; for he is good: for his mercy -endureth for ever. - -136:2 O give thanks unto the God of gods: for his mercy endureth for -ever. - -136:3 O give thanks to the Lord of lords: for his mercy endureth for -ever. - -136:4 To him who alone doeth great wonders: for his mercy endureth for -ever. - -136:5 To him that by wisdom made the heavens: for his mercy endureth -for ever. - -136:6 To him that stretched out the earth above the waters: for his -mercy endureth for ever. - -136:7 To him that made great lights: for his mercy endureth for ever: - -136:8 The sun to rule by day: for his mercy endureth for ever: - -136:9 The moon and stars to rule by night: for his mercy endureth for -ever. - -136:10 To him that smote Egypt in their firstborn: for his mercy -endureth for ever: - -136:11 And brought out Israel from among them: for his mercy endureth -for ever: - -136:12 With a strong hand, and with a stretched out arm: for his mercy -endureth for ever. - -136:13 To him which divided the Red sea into parts: for his mercy -endureth for ever: - -136:14 And made Israel to pass through the midst of it: for his mercy -endureth for ever: - -136:15 But overthrew Pharaoh and his host in the Red sea: for his -mercy endureth for ever. - -136:16 To him which led his people through the wilderness: for his -mercy endureth for ever. - -136:17 To him which smote great kings: for his mercy endureth for -ever: - -136:18 And slew famous kings: for his mercy endureth for ever: - -136:19 Sihon king of the Amorites: for his mercy endureth for ever: - -136:20 And Og the king of Bashan: for his mercy endureth for ever: - -136:21 And gave their land for an heritage: for his mercy endureth for -ever: - -136:22 Even an heritage unto Israel his servant: for his mercy -endureth for ever. - -136:23 Who remembered us in our low estate: for his mercy endureth for -ever: - -136:24 And hath redeemed us from our enemies: for his mercy endureth -for ever. - -136:25 Who giveth food to all flesh: for his mercy endureth for ever. - -136:26 O give thanks unto the God of heaven: for his mercy endureth -for ever. - - - -137:1 By the rivers of Babylon, there we sat down, yea, we wept, when -we remembered Zion. - -137:2 We hanged our harps upon the willows in the midst thereof. - -137:3 For there they that carried us away captive required of us a -song; and they that wasted us required of us mirth, saying, Sing us -one of the songs of Zion. - -137:4 How shall we sing the LORD's song in a strange land? - -137:5 If I forget thee, O Jerusalem, let my right hand forget her -cunning. - -137:6 If I do not remember thee, let my tongue cleave to the roof of -my mouth; if I prefer not Jerusalem above my chief joy. - -137:7 Remember, O LORD, the children of Edom in the day of Jerusalem; -who said, Rase it, rase it, even to the foundation thereof. - -137:8 O daughter of Babylon, who art to be destroyed; happy shall he -be, that rewardeth thee as thou hast served us. - -137:9 Happy shall he be, that taketh and dasheth thy little ones -against the stones. - - - -138:1 I will praise thee with my whole heart: before the gods will I -sing praise unto thee. - -138:2 I will worship toward thy holy temple, and praise thy name for -thy lovingkindness and for thy truth: for thou hast magnified thy word -above all thy name. - -138:3 In the day when I cried thou answeredst me, and strengthenedst -me with strength in my soul. - -138:4 All the kings of the earth shall praise thee, O LORD, when they -hear the words of thy mouth. - -138:5 Yea, they shall sing in the ways of the LORD: for great is the -glory of the LORD. - -138:6 Though the LORD be high, yet hath he respect unto the lowly: but -the proud he knoweth afar off. - -138:7 Though I walk in the midst of trouble, thou wilt revive me: thou -shalt stretch forth thine hand against the wrath of mine enemies, and -thy right hand shall save me. - -138:8 The LORD will perfect that which concerneth me: thy mercy, O -LORD, endureth for ever: forsake not the works of thine own hands. - - - -139:1 O lord, thou hast searched me, and known me. - -139:2 Thou knowest my downsitting and mine uprising, thou -understandest my thought afar off. - -139:3 Thou compassest my path and my lying down, and art acquainted -with all my ways. - -139:4 For there is not a word in my tongue, but, lo, O LORD, thou -knowest it altogether. - -139:5 Thou hast beset me behind and before, and laid thine hand upon -me. - -139:6 Such knowledge is too wonderful for me; it is high, I cannot -attain unto it. - -139:7 Whither shall I go from thy spirit? or whither shall I flee from -thy presence? - -139:8 If I ascend up into heaven, thou art there: if I make my bed in -hell, behold, thou art there. - -139:9 If I take the wings of the morning, and dwell in the uttermost -parts of the sea; - -139:10 Even there shall thy hand lead me, and thy right hand shall -hold me. - -139:11 If I say, Surely the darkness shall cover me; even the night -shall be light about me. - -139:12 Yea, the darkness hideth not from thee; but the night shineth -as the day: the darkness and the light are both alike to thee. - -139:13 For thou hast possessed my reins: thou hast covered me in my -mother's womb. - -139:14 I will praise thee; for I am fearfully and wonderfully made: -marvellous are thy works; and that my soul knoweth right well. - -139:15 My substance was not hid from thee, when I was made in secret, -and curiously wrought in the lowest parts of the earth. - -139:16 Thine eyes did see my substance, yet being unperfect; and in -thy book all my members were written, which in continuance were -fashioned, when as yet there was none of them. - -139:17 How precious also are thy thoughts unto me, O God! how great is -the sum of them! - -139:18 If I should count them, they are more in number than the sand: -when I awake, I am still with thee. - -139:19 Surely thou wilt slay the wicked, O God: depart from me -therefore, ye bloody men. - -139:20 For they speak against thee wickedly, and thine enemies take -thy name in vain. - -139:21 Do not I hate them, O LORD, that hate thee? and am not I -grieved with those that rise up against thee? - -139:22 I hate them with perfect hatred: I count them mine enemies. - -139:23 Search me, O God, and know my heart: try me, and know my -thoughts: - -139:24 And see if there be any wicked way in me, and lead me in the -way everlasting. - - - -140:1 Deliver me, O LORD, from the evil man: preserve me from the -violent man; - -140:2 Which imagine mischiefs in their heart; continually are they -gathered together for war. - -140:3 They have sharpened their tongues like a serpent; adders' poison -is under their lips. Selah. - -140:4 Keep me, O LORD, from the hands of the wicked; preserve me from -the violent man; who have purposed to overthrow my goings. - -140:5 The proud have hid a snare for me, and cords; they have spread a -net by the wayside; they have set gins for me. Selah. - -140:6 I said unto the LORD, Thou art my God: hear the voice of my -supplications, O LORD. - -140:7 O GOD the Lord, the strength of my salvation, thou hast covered -my head in the day of battle. - -140:8 Grant not, O LORD, the desires of the wicked: further not his -wicked device; lest they exalt themselves. Selah. - -140:9 As for the head of those that compass me about, let the mischief -of their own lips cover them. - -140:10 Let burning coals fall upon them: let them be cast into the -fire; into deep pits, that they rise not up again. - -140:11 Let not an evil speaker be established in the earth: evil shall -hunt the violent man to overthrow him. - -140:12 I know that the LORD will maintain the cause of the afflicted, -and the right of the poor. - -140:13 Surely the righteous shall give thanks unto thy name: the -upright shall dwell in thy presence. - - - -141:1 Lord, I cry unto thee: make haste unto me; give ear unto my -voice, when I cry unto thee. - -141:2 Let my prayer be set forth before thee as incense; and the -lifting up of my hands as the evening sacrifice. - -141:3 Set a watch, O LORD, before my mouth; keep the door of my lips. - -141:4 Incline not my heart to any evil thing, to practise wicked works -with men that work iniquity: and let me not eat of their dainties. - -141:5 Let the righteous smite me; it shall be a kindness: and let him -reprove me; it shall be an excellent oil, which shall not break my -head: for yet my prayer also shall be in their calamities. - -141:6 When their judges are overthrown in stony places, they shall -hear my words; for they are sweet. - -141:7 Our bones are scattered at the grave's mouth, as when one -cutteth and cleaveth wood upon the earth. - -141:8 But mine eyes are unto thee, O GOD the Lord: in thee is my -trust; leave not my soul destitute. - -141:9 Keep me from the snares which they have laid for me, and the -gins of the workers of iniquity. - -141:10 Let the wicked fall into their own nets, whilst that I withal -escape. - - - -142:1 I cried unto the LORD with my voice; with my voice unto the LORD -did I make my supplication. - -142:2 I poured out my complaint before him; I shewed before him my -trouble. - -142:3 When my spirit was overwhelmed within me, then thou knewest my -path. - -In the way wherein I walked have they privily laid a snare for me. - -142:4 I looked on my right hand, and beheld, but there was no man that -would know me: refuge failed me; no man cared for my soul. - -142:5 I cried unto thee, O LORD: I said, Thou art my refuge and my -portion in the land of the living. - -142:6 Attend unto my cry; for I am brought very low: deliver me from -my persecutors; for they are stronger than I. - -142:7 Bring my soul out of prison, that I may praise thy name: the -righteous shall compass me about; for thou shalt deal bountifully with -me. - - - -143:1 Hear my prayer, O LORD, give ear to my supplications: in thy -faithfulness answer me, and in thy righteousness. - -143:2 And enter not into judgment with thy servant: for in thy sight -shall no man living be justified. - -143:3 For the enemy hath persecuted my soul; he hath smitten my life -down to the ground; he hath made me to dwell in darkness, as those -that have been long dead. - -143:4 Therefore is my spirit overwhelmed within me; my heart within me -is desolate. - -143:5 I remember the days of old; I meditate on all thy works; I muse -on the work of thy hands. - -143:6 I stretch forth my hands unto thee: my soul thirsteth after -thee, as a thirsty land. Selah. - -143:7 Hear me speedily, O LORD: my spirit faileth: hide not thy face -from me, lest I be like unto them that go down into the pit. - -143:8 Cause me to hear thy lovingkindness in the morning; for in thee -do I trust: cause me to know the way wherein I should walk; for I lift -up my soul unto thee. - -143:9 Deliver me, O LORD, from mine enemies: I flee unto thee to hide -me. - -143:10 Teach me to do thy will; for thou art my God: thy spirit is -good; lead me into the land of uprightness. - -143:11 Quicken me, O LORD, for thy name's sake: for thy righteousness' -sake bring my soul out of trouble. - -143:12 And of thy mercy cut off mine enemies, and destroy all them -that afflict my soul: for I am thy servant. - - - -144:1 Blessed be the LORD my strength which teacheth my hands to war, -and my fingers to fight: - -144:2 My goodness, and my fortress; my high tower, and my deliverer; -my shield, and he in whom I trust; who subdueth my people under me. - -144:3 LORD, what is man, that thou takest knowledge of him! or the son -of man, that thou makest account of him! - -144:4 Man is like to vanity: his days are as a shadow that passeth -away. - -144:5 Bow thy heavens, O LORD, and come down: touch the mountains, and -they shall smoke. - -144:6 Cast forth lightning, and scatter them: shoot out thine arrows, -and destroy them. - -144:7 Send thine hand from above; rid me, and deliver me out of great -waters, from the hand of strange children; - -144:8 Whose mouth speaketh vanity, and their right hand is a right -hand of falsehood. - -144:9 I will sing a new song unto thee, O God: upon a psaltery and an -instrument of ten strings will I sing praises unto thee. - -144:10 It is he that giveth salvation unto kings: who delivereth David -his servant from the hurtful sword. - -144:11 Rid me, and deliver me from the hand of strange children, whose -mouth speaketh vanity, and their right hand is a right hand of -falsehood: - -144:12 That our sons may be as plants grown up in their youth; that -our daughters may be as corner stones, polished after the similitude -of a palace: - -144:13 That our garners may be full, affording all manner of store: -that our sheep may bring forth thousands and ten thousands in our -streets: - -144:14 That our oxen may be strong to labour; that there be no -breaking in, nor going out; that there be no complaining in our -streets. - -144:15 Happy is that people, that is in such a case: yea, happy is -that people, whose God is the LORD. - - - -145:1 I will extol thee, my God, O king; and I will bless thy name for -ever and ever. - -145:2 Every day will I bless thee; and I will praise thy name for ever -and ever. - -145:3 Great is the LORD, and greatly to be praised; and his greatness -is unsearchable. - -145:4 One generation shall praise thy works to another, and shall -declare thy mighty acts. - -145:5 I will speak of the glorious honour of thy majesty, and of thy -wondrous works. - -145:6 And men shall speak of the might of thy terrible acts: and I -will declare thy greatness. - -145:7 They shall abundantly utter the memory of thy great goodness, -and shall sing of thy righteousness. - -145:8 The LORD is gracious, and full of compassion; slow to anger, and -of great mercy. - -145:9 The LORD is good to all: and his tender mercies are over all his -works. - -145:10 All thy works shall praise thee, O LORD; and thy saints shall -bless thee. - -145:11 They shall speak of the glory of thy kingdom, and talk of thy -power; - -145:12 To make known to the sons of men his mighty acts, and the -glorious majesty of his kingdom. - -145:13 Thy kingdom is an everlasting kingdom, and thy dominion -endureth throughout all generations. - -145:14 The LORD upholdeth all that fall, and raiseth up all those that -be bowed down. - -145:15 The eyes of all wait upon thee; and thou givest them their meat -in due season. - -145:16 Thou openest thine hand, and satisfiest the desire of every -living thing. - -145:17 The LORD is righteous in all his ways, and holy in all his -works. - -145:18 The LORD is nigh unto all them that call upon him, to all that -call upon him in truth. - -145:19 He will fulfil the desire of them that fear him: he also will -hear their cry, and will save them. - -145:20 The LORD preserveth all them that love him: but all the wicked -will he destroy. - -145:21 My mouth shall speak the praise of the LORD: and let all flesh -bless his holy name for ever and ever. - - - -146:1 Praise ye the LORD. Praise the LORD, O my soul. - -146:2 While I live will I praise the LORD: I will sing praises unto my -God while I have any being. - -146:3 Put not your trust in princes, nor in the son of man, in whom -there is no help. - -146:4 His breath goeth forth, he returneth to his earth; in that very -day his thoughts perish. - -146:5 Happy is he that hath the God of Jacob for his help, whose hope -is in the LORD his God: - -146:6 Which made heaven, and earth, the sea, and all that therein is: -which keepeth truth for ever: - -146:7 Which executeth judgment for the oppressed: which giveth food to -the hungry. The LORD looseth the prisoners: - -146:8 The LORD openeth the eyes of the blind: the LORD raiseth them -that are bowed down: the LORD loveth the righteous: - -146:9 The LORD preserveth the strangers; he relieveth the fatherless -and widow: but the way of the wicked he turneth upside down. - -146:10 The LORD shall reign for ever, even thy God, O Zion, unto all -generations. Praise ye the LORD. - - - -147:1 Praise ye the LORD: for it is good to sing praises unto our God; -for it is pleasant; and praise is comely. - -147:2 The LORD doth build up Jerusalem: he gathereth together the -outcasts of Israel. - -147:3 He healeth the broken in heart, and bindeth up their wounds. - -147:4 He telleth the number of the stars; he calleth them all by their -names. - -147:5 Great is our Lord, and of great power: his understanding is -infinite. - -147:6 The LORD lifteth up the meek: he casteth the wicked down to the -ground. - -147:7 Sing unto the LORD with thanksgiving; sing praise upon the harp -unto our God: - -147:8 Who covereth the heaven with clouds, who prepareth rain for the -earth, who maketh grass to grow upon the mountains. - -147:9 He giveth to the beast his food, and to the young ravens which -cry. - -147:10 He delighteth not in the strength of the horse: he taketh not -pleasure in the legs of a man. - -147:11 The LORD taketh pleasure in them that fear him, in those that -hope in his mercy. - -147:12 Praise the LORD, O Jerusalem; praise thy God, O Zion. - -147:13 For he hath strengthened the bars of thy gates; he hath blessed -thy children within thee. - -147:14 He maketh peace in thy borders, and filleth thee with the -finest of the wheat. - -147:15 He sendeth forth his commandment upon earth: his word runneth -very swiftly. - -147:16 He giveth snow like wool: he scattereth the hoarfrost like -ashes. - -147:17 He casteth forth his ice like morsels: who can stand before his -cold? - -147:18 He sendeth out his word, and melteth them: he causeth his wind -to blow, and the waters flow. - -147:19 He sheweth his word unto Jacob, his statutes and his judgments -unto Israel. - -147:20 He hath not dealt so with any nation: and as for his judgments, -they have not known them. Praise ye the LORD. - - - -148:1 Praise ye the LORD. Praise ye the LORD from the heavens: praise -him in the heights. - -148:2 Praise ye him, all his angels: praise ye him, all his hosts. - -148:3 Praise ye him, sun and moon: praise him, all ye stars of light. - -148:4 Praise him, ye heavens of heavens, and ye waters that be above -the heavens. - -148:5 Let them praise the name of the LORD: for he commanded, and they -were created. - -148:6 He hath also stablished them for ever and ever: he hath made a -decree which shall not pass. - -148:7 Praise the LORD from the earth, ye dragons, and all deeps: - -148:8 Fire, and hail; snow, and vapours; stormy wind fulfilling his -word: - -148:9 Mountains, and all hills; fruitful trees, and all cedars: - -148:10 Beasts, and all cattle; creeping things, and flying fowl: - -148:11 Kings of the earth, and all people; princes, and all judges of -the earth: - -148:12 Both young men, and maidens; old men, and children: - -148:13 Let them praise the name of the LORD: for his name alone is -excellent; his glory is above the earth and heaven. - -148:14 He also exalteth the horn of his people, the praise of all his -saints; even of the children of Israel, a people near unto him. Praise -ye the LORD. - - - -149:1 Praise ye the LORD. Sing unto the LORD a new song, and his -praise in the congregation of saints. - -149:2 Let Israel rejoice in him that made him: let the children of -Zion be joyful in their King. - -149:3 Let them praise his name in the dance: let them sing praises -unto him with the timbrel and harp. - -149:4 For the LORD taketh pleasure in his people: he will beautify the -meek with salvation. - -149:5 Let the saints be joyful in glory: let them sing aloud upon -their beds. - -149:6 Let the high praises of God be in their mouth, and a two-edged -sword in their hand; - -149:7 To execute vengeance upon the heathen, and punishments upon the -people; - -149:8 To bind their kings with chains, and their nobles with fetters -of iron; - -149:9 To execute upon them the judgment written: this honour have all -his saints. Praise ye the LORD. - - - -150:1 Praise ye the LORD. Praise God in his sanctuary: praise him in -the firmament of his power. - -150:2 Praise him for his mighty acts: praise him according to his -excellent greatness. - -150:3 Praise him with the sound of the trumpet: praise him with the -psaltery and harp. - -150:4 Praise him with the timbrel and dance: praise him with stringed -instruments and organs. - -150:5 Praise him upon the loud cymbals: praise him upon the high -sounding cymbals. - -150:6 Let every thing that hath breath praise the LORD. Praise ye the LORD. - - - - -The Proverbs - - -1:1 The proverbs of Solomon the son of David, king of Israel; 1:2 To -know wisdom and instruction; to perceive the words of understanding; -1:3 To receive the instruction of wisdom, justice, and judgment, and -equity; 1:4 To give subtilty to the simple, to the young man knowledge -and discretion. - -1:5 A wise man will hear, and will increase learning; and a man of -understanding shall attain unto wise counsels: 1:6 To understand a -proverb, and the interpretation; the words of the wise, and their dark -sayings. - -1:7 The fear of the LORD is the beginning of knowledge: but fools -despise wisdom and instruction. - -1:8 My son, hear the instruction of thy father, and forsake not the -law of thy mother: 1:9 For they shall be an ornament of grace unto thy -head, and chains about thy neck. - -1:10 My son, if sinners entice thee, consent thou not. - -1:11 If they say, Come with us, let us lay wait for blood, let us lurk -privily for the innocent without cause: 1:12 Let us swallow them up -alive as the grave; and whole, as those that go down into the pit: -1:13 We shall find all precious substance, we shall fill our houses -with spoil: 1:14 Cast in thy lot among us; let us all have one purse: -1:15 My son, walk not thou in the way with them; refrain thy foot from -their path: 1:16 For their feet run to evil, and make haste to shed -blood. - -1:17 Surely in vain the net is spread in the sight of any bird. - -1:18 And they lay wait for their own blood; they lurk privily for -their own lives. - -1:19 So are the ways of every one that is greedy of gain; which taketh -away the life of the owners thereof. - -1:20 Wisdom crieth without; she uttereth her voice in the streets: -1:21 She crieth in the chief place of concourse, in the openings of -the gates: in the city she uttereth her words, saying, 1:22 How long, -ye simple ones, will ye love simplicity? and the scorners delight in -their scorning, and fools hate knowledge? 1:23 Turn you at my -reproof: behold, I will pour out my spirit unto you, I will make known -my words unto you. - -1:24 Because I have called, and ye refused; I have stretched out my -hand, and no man regarded; 1:25 But ye have set at nought all my -counsel, and would none of my reproof: 1:26 I also will laugh at your -calamity; I will mock when your fear cometh; 1:27 When your fear -cometh as desolation, and your destruction cometh as a whirlwind; when -distress and anguish cometh upon you. - -1:28 Then shall they call upon me, but I will not answer; they shall -seek me early, but they shall not find me: 1:29 For that they hated -knowledge, and did not choose the fear of the LORD: 1:30 They would -none of my counsel: they despised all my reproof. - -1:31 Therefore shall they eat of the fruit of their own way, and be -filled with their own devices. - -1:32 For the turning away of the simple shall slay them, and the -prosperity of fools shall destroy them. - -1:33 But whoso hearkeneth unto me shall dwell safely, and shall be -quiet from fear of evil. - -2:1 My son, if thou wilt receive my words, and hide my commandments -with thee; 2:2 So that thou incline thine ear unto wisdom, and apply -thine heart to understanding; 2:3 Yea, if thou criest after knowledge, -and liftest up thy voice for understanding; 2:4 If thou seekest her as -silver, and searchest for her as for hid treasures; 2:5 Then shalt -thou understand the fear of the LORD, and find the knowledge of God. - -2:6 For the LORD giveth wisdom: out of his mouth cometh knowledge and -understanding. - -2:7 He layeth up sound wisdom for the righteous: he is a buckler to -them that walk uprightly. - -2:8 He keepeth the paths of judgment, and preserveth the way of his -saints. - -2:9 Then shalt thou understand righteousness, and judgment, and -equity; yea, every good path. - -2:10 When wisdom entereth into thine heart, and knowledge is pleasant -unto thy soul; 2:11 Discretion shall preserve thee, understanding -shall keep thee: 2:12 To deliver thee from the way of the evil man, -from the man that speaketh froward things; 2:13 Who leave the paths of -uprightness, to walk in the ways of darkness; 2:14 Who rejoice to do -evil, and delight in the frowardness of the wicked; 2:15 Whose ways -are crooked, and they froward in their paths: 2:16 To deliver thee -from the strange woman, even from the stranger which flattereth with -her words; 2:17 Which forsaketh the guide of her youth, and forgetteth -the covenant of her God. - -2:18 For her house inclineth unto death, and her paths unto the dead. - -2:19 None that go unto her return again, neither take they hold of the -paths of life. - -2:20 That thou mayest walk in the way of good men, and keep the paths -of the righteous. - -2:21 For the upright shall dwell in the land, and the perfect shall -remain in it. - -2:22 But the wicked shall be cut off from the earth, and the -transgressors shall be rooted out of it. - -3:1 My son, forget not my law; but let thine heart keep my -commandments: 3:2 For length of days, and long life, and peace, shall -they add to thee. - -3:3 Let not mercy and truth forsake thee: bind them about thy neck; -write them upon the table of thine heart: 3:4 So shalt thou find -favour and good understanding in the sight of God and man. - -3:5 Trust in the LORD with all thine heart; and lean not unto thine -own understanding. - -3:6 In all thy ways acknowledge him, and he shall direct thy paths. - -3:7 Be not wise in thine own eyes: fear the LORD, and depart from -evil. - -3:8 It shall be health to thy navel, and marrow to thy bones. - -3:9 Honour the LORD with thy substance, and with the firstfruits of -all thine increase: 3:10 So shall thy barns be filled with plenty, and -thy presses shall burst out with new wine. - -3:11 My son, despise not the chastening of the LORD; neither be weary -of his correction: 3:12 For whom the LORD loveth he correcteth; even -as a father the son in whom he delighteth. - -3:13 Happy is the man that findeth wisdom, and the man that getteth -understanding. - -3:14 For the merchandise of it is better than the merchandise of -silver, and the gain thereof than fine gold. - -3:15 She is more precious than rubies: and all the things thou canst -desire are not to be compared unto her. - -3:16 Length of days is in her right hand; and in her left hand riches -and honour. - -3:17 Her ways are ways of pleasantness, and all her paths are peace. - -3:18 She is a tree of life to them that lay hold upon her: and happy -is every one that retaineth her. - -3:19 The LORD by wisdom hath founded the earth; by understanding hath -he established the heavens. - -3:20 By his knowledge the depths are broken up, and the clouds drop -down the dew. - -3:21 My son, let not them depart from thine eyes: keep sound wisdom -and discretion: 3:22 So shall they be life unto thy soul, and grace to -thy neck. - -3:23 Then shalt thou walk in thy way safely, and thy foot shall not -stumble. - -3:24 When thou liest down, thou shalt not be afraid: yea, thou shalt -lie down, and thy sleep shall be sweet. - -3:25 Be not afraid of sudden fear, neither of the desolation of the -wicked, when it cometh. - -3:26 For the LORD shall be thy confidence, and shall keep thy foot -from being taken. - -3:27 Withhold not good from them to whom it is due, when it is in the -power of thine hand to do it. - -3:28 Say not unto thy neighbour, Go, and come again, and to morrow I -will give; when thou hast it by thee. - -3:29 Devise not evil against thy neighbour, seeing he dwelleth -securely by thee. - -3:30 Strive not with a man without cause, if he have done thee no -harm. - -3:31 Envy thou not the oppressor, and choose none of his ways. - -3:32 For the froward is abomination to the LORD: but his secret is -with the righteous. - -3:33 The curse of the LORD is in the house of the wicked: but he -blesseth the habitation of the just. - -3:34 Surely he scorneth the scorners: but he giveth grace unto the -lowly. - -3:35 The wise shall inherit glory: but shame shall be the promotion of -fools. - -4:1 Hear, ye children, the instruction of a father, and attend to know -understanding. - -4:2 For I give you good doctrine, forsake ye not my law. - -4:3 For I was my father's son, tender and only beloved in the sight of -my mother. - -4:4 He taught me also, and said unto me, Let thine heart retain my -words: keep my commandments, and live. - -4:5 Get wisdom, get understanding: forget it not; neither decline from -the words of my mouth. - -4:6 Forsake her not, and she shall preserve thee: love her, and she -shall keep thee. - -4:7 Wisdom is the principal thing; therefore get wisdom: and with all -thy getting get understanding. - -4:8 Exalt her, and she shall promote thee: she shall bring thee to -honour, when thou dost embrace her. - -4:9 She shall give to thine head an ornament of grace: a crown of -glory shall she deliver to thee. - -4:10 Hear, O my son, and receive my sayings; and the years of thy life -shall be many. - -4:11 I have taught thee in the way of wisdom; I have led thee in right -paths. - -4:12 When thou goest, thy steps shall not be straitened; and when thou -runnest, thou shalt not stumble. - -4:13 Take fast hold of instruction; let her not go: keep her; for she -is thy life. - -4:14 Enter not into the path of the wicked, and go not in the way of -evil men. - -4:15 Avoid it, pass not by it, turn from it, and pass away. - -4:16 For they sleep not, except they have done mischief; and their -sleep is taken away, unless they cause some to fall. - -4:17 For they eat the bread of wickedness, and drink the wine of -violence. - -4:18 But the path of the just is as the shining light, that shineth -more and more unto the perfect day. - -4:19 The way of the wicked is as darkness: they know not at what they -stumble. - -4:20 My son, attend to my words; incline thine ear unto my sayings. - -4:21 Let them not depart from thine eyes; keep them in the midst of -thine heart. - -4:22 For they are life unto those that find them, and health to all -their flesh. - -4:23 Keep thy heart with all diligence; for out of it are the issues -of life. - -4:24 Put away from thee a froward mouth, and perverse lips put far -from thee. - -4:25 Let thine eyes look right on, and let thine eyelids look straight -before thee. - -4:26 Ponder the path of thy feet, and let all thy ways be established. - -4:27 Turn not to the right hand nor to the left: remove thy foot from -evil. - -5:1 My son, attend unto my wisdom, and bow thine ear to my -understanding: 5:2 That thou mayest regard discretion, and that thy -lips may keep knowledge. - -5:3 For the lips of a strange woman drop as an honeycomb, and her -mouth is smoother than oil: 5:4 But her end is bitter as wormwood, -sharp as a two-edged sword. - -5:5 Her feet go down to death; her steps take hold on hell. - -5:6 Lest thou shouldest ponder the path of life, her ways are -moveable, that thou canst not know them. - -5:7 Hear me now therefore, O ye children, and depart not from the -words of my mouth. - -5:8 Remove thy way far from her, and come not nigh the door of her -house: 5:9 Lest thou give thine honour unto others, and thy years unto -the cruel: 5:10 Lest strangers be filled with thy wealth; and thy -labours be in the house of a stranger; 5:11 And thou mourn at the -last, when thy flesh and thy body are consumed, 5:12 And say, How have -I hated instruction, and my heart despised reproof; 5:13 And have not -obeyed the voice of my teachers, nor inclined mine ear to them that -instructed me! 5:14 I was almost in all evil in the midst of the -congregation and assembly. - -5:15 Drink waters out of thine own cistern, and running waters out of -thine own well. - -5:16 Let thy fountains be dispersed abroad, and rivers of waters in -the streets. - -5:17 Let them be only thine own, and not strangers' with thee. - -5:18 Let thy fountain be blessed: and rejoice with the wife of thy -youth. - -5:19 Let her be as the loving hind and pleasant roe; let her breasts -satisfy thee at all times; and be thou ravished always with her love. - -5:20 And why wilt thou, my son, be ravished with a strange woman, and -embrace the bosom of a stranger? 5:21 For the ways of man are before -the eyes of the LORD, and he pondereth all his goings. - -5:22 His own iniquities shall take the wicked himself, and he shall be -holden with the cords of his sins. - -5:23 He shall die without instruction; and in the greatness of his -folly he shall go astray. - -6:1 My son, if thou be surety for thy friend, if thou hast stricken -thy hand with a stranger, 6:2 Thou art snared with the words of thy -mouth, thou art taken with the words of thy mouth. - -6:3 Do this now, my son, and deliver thyself, when thou art come into -the hand of thy friend; go, humble thyself, and make sure thy friend. - -6:4 Give not sleep to thine eyes, nor slumber to thine eyelids. - -6:5 Deliver thyself as a roe from the hand of the hunter, and as a -bird from the hand of the fowler. - -6:6 Go to the ant, thou sluggard; consider her ways, and be wise: 6:7 -Which having no guide, overseer, or ruler, 6:8 Provideth her meat in -the summer, and gathereth her food in the harvest. - -6:9 How long wilt thou sleep, O sluggard? when wilt thou arise out of -thy sleep? 6:10 Yet a little sleep, a little slumber, a little -folding of the hands to sleep: 6:11 So shall thy poverty come as one -that travelleth, and thy want as an armed man. - -6:12 A naughty person, a wicked man, walketh with a froward mouth. - -6:13 He winketh with his eyes, he speaketh with his feet, he teacheth -with his fingers; 6:14 Frowardness is in his heart, he deviseth -mischief continually; he soweth discord. - -6:15 Therefore shall his calamity come suddenly; suddenly shall he be -broken without remedy. - -6:16 These six things doth the LORD hate: yea, seven are an -abomination unto him: 6:17 A proud look, a lying tongue, and hands -that shed innocent blood, 6:18 An heart that deviseth wicked -imaginations, feet that be swift in running to mischief, 6:19 A false -witness that speaketh lies, and he that soweth discord among brethren. - -6:20 My son, keep thy father's commandment, and forsake not the law of -thy mother: 6:21 Bind them continually upon thine heart, and tie them -about thy neck. - -6:22 When thou goest, it shall lead thee; when thou sleepest, it shall -keep thee; and when thou awakest, it shall talk with thee. - -6:23 For the commandment is a lamp; and the law is light; and reproofs -of instruction are the way of life: 6:24 To keep thee from the evil -woman, from the flattery of the tongue of a strange woman. - -6:25 Lust not after her beauty in thine heart; neither let her take -thee with her eyelids. - -6:26 For by means of a whorish woman a man is brought to a piece of -bread: and the adultress will hunt for the precious life. - -6:27 Can a man take fire in his bosom, and his clothes not be burned? -6:28 Can one go upon hot coals, and his feet not be burned? 6:29 So -he that goeth in to his neighbour's wife; whosoever toucheth her shall -not be innocent. - -6:30 Men do not despise a thief, if he steal to satisfy his soul when -he is hungry; 6:31 But if he be found, he shall restore sevenfold; he -shall give all the substance of his house. - -6:32 But whoso committeth adultery with a woman lacketh understanding: -he that doeth it destroyeth his own soul. - -6:33 A wound and dishonour shall he get; and his reproach shall not be -wiped away. - -6:34 For jealousy is the rage of a man: therefore he will not spare in -the day of vengeance. - -6:35 He will not regard any ransom; neither will he rest content, -though thou givest many gifts. - -7:1 My son, keep my words, and lay up my commandments with thee. - -7:2 Keep my commandments, and live; and my law as the apple of thine -eye. - -7:3 Bind them upon thy fingers, write them upon the table of thine -heart. - -7:4 Say unto wisdom, Thou art my sister; and call understanding thy -kinswoman: 7:5 That they may keep thee from the strange woman, from -the stranger which flattereth with her words. - -7:6 For at the window of my house I looked through my casement, 7:7 -And beheld among the simple ones, I discerned among the youths, a -young man void of understanding, 7:8 Passing through the street near -her corner; and he went the way to her house, 7:9 In the twilight, in -the evening, in the black and dark night: 7:10 And, behold, there met -him a woman with the attire of an harlot, and subtil of heart. - -7:11 (She is loud and stubborn; her feet abide not in her house: 7:12 -Now is she without, now in the streets, and lieth in wait at every -corner.) 7:13 So she caught him, and kissed him, and with an impudent -face said unto him, 7:14 I have peace offerings with me; this day have -I payed my vows. - -7:15 Therefore came I forth to meet thee, diligently to seek thy face, -and I have found thee. - -7:16 I have decked my bed with coverings of tapestry, with carved -works, with fine linen of Egypt. - -7:17 I have perfumed my bed with myrrh, aloes, and cinnamon. - -7:18 Come, let us take our fill of love until the morning: let us -solace ourselves with loves. - -7:19 For the goodman is not at home, he is gone a long journey: 7:20 -He hath taken a bag of money with him, and will come home at the day -appointed. - -7:21 With her much fair speech she caused him to yield, with the -flattering of her lips she forced him. - -7:22 He goeth after her straightway, as an ox goeth to the slaughter, -or as a fool to the correction of the stocks; 7:23 Till a dart strike -through his liver; as a bird hasteth to the snare, and knoweth not -that it is for his life. - -7:24 Hearken unto me now therefore, O ye children, and attend to the -words of my mouth. - -7:25 Let not thine heart decline to her ways, go not astray in her -paths. - -7:26 For she hath cast down many wounded: yea, many strong men have -been slain by her. - -7:27 Her house is the way to hell, going down to the chambers of -death. - -8:1 Doth not wisdom cry? and understanding put forth her voice? 8:2 -She standeth in the top of high places, by the way in the places of -the paths. - -8:3 She crieth at the gates, at the entry of the city, at the coming -in at the doors. - -8:4 Unto you, O men, I call; and my voice is to the sons of man. - -8:5 O ye simple, understand wisdom: and, ye fools, be ye of an -understanding heart. - -8:6 Hear; for I will speak of excellent things; and the opening of my -lips shall be right things. - -8:7 For my mouth shall speak truth; and wickedness is an abomination -to my lips. - -8:8 All the words of my mouth are in righteousness; there is nothing -froward or perverse in them. - -8:9 They are all plain to him that understandeth, and right to them -that find knowledge. - -8:10 Receive my instruction, and not silver; and knowledge rather than -choice gold. - -8:11 For wisdom is better than rubies; and all the things that may be -desired are not to be compared to it. - -8:12 I wisdom dwell with prudence, and find out knowledge of witty -inventions. - -8:13 The fear of the LORD is to hate evil: pride, and arrogancy, and -the evil way, and the froward mouth, do I hate. - -8:14 Counsel is mine, and sound wisdom: I am understanding; I have -strength. - -8:15 By me kings reign, and princes decree justice. - -8:16 By me princes rule, and nobles, even all the judges of the earth. - -8:17 I love them that love me; and those that seek me early shall find -me. - -8:18 Riches and honour are with me; yea, durable riches and -righteousness. - -8:19 My fruit is better than gold, yea, than fine gold; and my revenue -than choice silver. - -8:20 I lead in the way of righteousness, in the midst of the paths of -judgment: 8:21 That I may cause those that love me to inherit -substance; and I will fill their treasures. - -8:22 The LORD possessed me in the beginning of his way, before his -works of old. - -8:23 I was set up from everlasting, from the beginning, or ever the -earth was. - -8:24 When there were no depths, I was brought forth; when there were -no fountains abounding with water. - -8:25 Before the mountains were settled, before the hills was I brought -forth: 8:26 While as yet he had not made the earth, nor the fields, -nor the highest part of the dust of the world. - -8:27 When he prepared the heavens, I was there: when he set a compass -upon the face of the depth: 8:28 When he established the clouds above: -when he strengthened the fountains of the deep: 8:29 When he gave to -the sea his decree, that the waters should not pass his commandment: -when he appointed the foundations of the earth: 8:30 Then I was by -him, as one brought up with him: and I was daily his delight, -rejoicing always before him; 8:31 Rejoicing in the habitable part of -his earth; and my delights were with the sons of men. - -8:32 Now therefore hearken unto me, O ye children: for blessed are -they that keep my ways. - -8:33 Hear instruction, and be wise, and refuse it not. - -8:34 Blessed is the man that heareth me, watching daily at my gates, -waiting at the posts of my doors. - -8:35 For whoso findeth me findeth life, and shall obtain favour of the -LORD. - -8:36 But he that sinneth against me wrongeth his own soul: all they -that hate me love death. - -9:1 Wisdom hath builded her house, she hath hewn out her seven -pillars: 9:2 She hath killed her beasts; she hath mingled her wine; -she hath also furnished her table. - -9:3 She hath sent forth her maidens: she crieth upon the highest -places of the city, 9:4 Whoso is simple, let him turn in hither: as -for him that wanteth understanding, she saith to him, 9:5 Come, eat of -my bread, and drink of the wine which I have mingled. - -9:6 Forsake the foolish, and live; and go in the way of understanding. - -9:7 He that reproveth a scorner getteth to himself shame: and he that -rebuketh a wicked man getteth himself a blot. - -9:8 Reprove not a scorner, lest he hate thee: rebuke a wise man, and -he will love thee. - -9:9 Give instruction to a wise man, and he will be yet wiser: teach a -just man, and he will increase in learning. - -9:10 The fear of the LORD is the beginning of wisdom: and the -knowledge of the holy is understanding. - -9:11 For by me thy days shall be multiplied, and the years of thy life -shall be increased. - -9:12 If thou be wise, thou shalt be wise for thyself: but if thou -scornest, thou alone shalt bear it. - -9:13 A foolish woman is clamorous: she is simple, and knoweth nothing. - -9:14 For she sitteth at the door of her house, on a seat in the high -places of the city, 9:15 To call passengers who go right on their -ways: 9:16 Whoso is simple, let him turn in hither: and as for him -that wanteth understanding, she saith to him, 9:17 Stolen waters are -sweet, and bread eaten in secret is pleasant. - -9:18 But he knoweth not that the dead are there; and that her guests -are in the depths of hell. - -10:1 The proverbs of Solomon. A wise son maketh a glad father: but a -foolish son is the heaviness of his mother. - -10:2 Treasures of wickedness profit nothing: but righteousness -delivereth from death. - -10:3 The LORD will not suffer the soul of the righteous to famish: but -he casteth away the substance of the wicked. - -10:4 He becometh poor that dealeth with a slack hand: but the hand of -the diligent maketh rich. - -10:5 He that gathereth in summer is a wise son: but he that sleepeth -in harvest is a son that causeth shame. - -10:6 Blessings are upon the head of the just: but violence covereth -the mouth of the wicked. - -10:7 The memory of the just is blessed: but the name of the wicked -shall rot. - -10:8 The wise in heart will receive commandments: but a prating fool -shall fall. - -10:9 He that walketh uprightly walketh surely: but he that perverteth -his ways shall be known. - -10:10 He that winketh with the eye causeth sorrow: but a prating fool -shall fall. - -10:11 The mouth of a righteous man is a well of life: but violence -covereth the mouth of the wicked. - -10:12 Hatred stirreth up strifes: but love covereth all sins. - -10:13 In the lips of him that hath understanding wisdom is found: but -a rod is for the back of him that is void of understanding. - -10:14 Wise men lay up knowledge: but the mouth of the foolish is near -destruction. - -10:15 The rich man's wealth is his strong city: the destruction of the -poor is their poverty. - -10:16 The labour of the righteous tendeth to life: the fruit of the -wicked to sin. - -10:17 He is in the way of life that keepeth instruction: but he that -refuseth reproof erreth. - -10:18 He that hideth hatred with lying lips, and he that uttereth a -slander, is a fool. - -10:19 In the multitude of words there wanteth not sin: but he that -refraineth his lips is wise. - -10:20 The tongue of the just is as choice silver: the heart of the -wicked is little worth. - -10:21 The lips of the righteous feed many: but fools die for want of -wisdom. - -10:22 The blessing of the LORD, it maketh rich, and he addeth no -sorrow with it. - -10:23 It is as sport to a fool to do mischief: but a man of -understanding hath wisdom. - -10:24 The fear of the wicked, it shall come upon him: but the desire -of the righteous shall be granted. - -10:25 As the whirlwind passeth, so is the wicked no more: but the -righteous is an everlasting foundation. - -10:26 As vinegar to the teeth, and as smoke to the eyes, so is the -sluggard to them that send him. - -10:27 The fear of the LORD prolongeth days: but the years of the -wicked shall be shortened. - -10:28 The hope of the righteous shall be gladness: but the expectation -of the wicked shall perish. - -10:29 The way of the LORD is strength to the upright: but destruction -shall be to the workers of iniquity. - -10:30 The righteous shall never be removed: but the wicked shall not -inhabit the earth. - -10:31 The mouth of the just bringeth forth wisdom: but the froward -tongue shall be cut out. - -10:32 The lips of the righteous know what is acceptable: but the mouth -of the wicked speaketh frowardness. - -11:1 A false balance is abomination to the LORD: but a just weight is -his delight. - -11:2 When pride cometh, then cometh shame: but with the lowly is -wisdom. - -11:3 The integrity of the upright shall guide them: but the -perverseness of transgressors shall destroy them. - -11:4 Riches profit not in the day of wrath: but righteousness -delivereth from death. - -11:5 The righteousness of the perfect shall direct his way: but the -wicked shall fall by his own wickedness. - -11:6 The righteousness of the upright shall deliver them: but -transgressors shall be taken in their own naughtiness. - -11:7 When a wicked man dieth, his expectation shall perish: and the -hope of unjust men perisheth. - -11:8 The righteous is delivered out of trouble, and the wicked cometh -in his stead. - -11:9 An hypocrite with his mouth destroyeth his neighbour: but through -knowledge shall the just be delivered. - -11:10 When it goeth well with the righteous, the city rejoiceth: and -when the wicked perish, there is shouting. - -11:11 By the blessing of the upright the city is exalted: but it is -overthrown by the mouth of the wicked. - -11:12 He that is void of wisdom despiseth his neighbour: but a man of -understanding holdeth his peace. - -11:13 A talebearer revealeth secrets: but he that is of a faithful -spirit concealeth the matter. - -11:14 Where no counsel is, the people fall: but in the multitude of -counsellors there is safety. - -11:15 He that is surety for a stranger shall smart for it: and he that -hateth suretiship is sure. - -11:16 A gracious woman retaineth honour: and strong men retain riches. - -11:17 The merciful man doeth good to his own soul: but he that is -cruel troubleth his own flesh. - -11:18 The wicked worketh a deceitful work: but to him that soweth -righteousness shall be a sure reward. - -11:19 As righteousness tendeth to life: so he that pursueth evil -pursueth it to his own death. - -11:20 They that are of a froward heart are abomination to the LORD: -but such as are upright in their way are his delight. - -11:21 Though hand join in hand, the wicked shall not be unpunished: -but the seed of the righteous shall be delivered. - -11:22 As a jewel of gold in a swine's snout, so is a fair woman which -is without discretion. - -11:23 The desire of the righteous is only good: but the expectation of -the wicked is wrath. - -11:24 There is that scattereth, and yet increaseth; and there is that -withholdeth more than is meet, but it tendeth to poverty. - -11:25 The liberal soul shall be made fat: and he that watereth shall -be watered also himself. - -11:26 He that withholdeth corn, the people shall curse him: but -blessing shall be upon the head of him that selleth it. - -11:27 He that diligently seeketh good procureth favour: but he that -seeketh mischief, it shall come unto him. - -11:28 He that trusteth in his riches shall fall; but the righteous -shall flourish as a branch. - -11:29 He that troubleth his own house shall inherit the wind: and the -fool shall be servant to the wise of heart. - -11:30 The fruit of the righteous is a tree of life; and he that -winneth souls is wise. - -11:31 Behold, the righteous shall be recompensed in the earth: much -more the wicked and the sinner. - -12:1 Whoso loveth instruction loveth knowledge: but he that hateth -reproof is brutish. - -12:2 A good man obtaineth favour of the LORD: but a man of wicked -devices will he condemn. - -12:3 A man shall not be established by wickedness: but the root of the -righteous shall not be moved. - -12:4 A virtuous woman is a crown to her husband: but she that maketh -ashamed is as rottenness in his bones. - -12:5 The thoughts of the righteous are right: but the counsels of the -wicked are deceit. - -12:6 The words of the wicked are to lie in wait for blood: but the -mouth of the upright shall deliver them. - -12:7 The wicked are overthrown, and are not: but the house of the -righteous shall stand. - -12:8 A man shall be commended according to his wisdom: but he that is -of a perverse heart shall be despised. - -12:9 He that is despised, and hath a servant, is better than he that -honoureth himself, and lacketh bread. - -12:10 A righteous man regardeth the life of his beast: but the tender -mercies of the wicked are cruel. - -12:11 He that tilleth his land shall be satisfied with bread: but he -that followeth vain persons is void of understanding. - -12:12 The wicked desireth the net of evil men: but the root of the -righteous yieldeth fruit. - -12:13 The wicked is snared by the transgression of his lips: but the -just shall come out of trouble. - -12:14 A man shall be satisfied with good by the fruit of his mouth: -and the recompence of a man's hands shall be rendered unto him. - -12:15 The way of a fool is right in his own eyes: but he that -hearkeneth unto counsel is wise. - -12:16 A fool's wrath is presently known: but a prudent man covereth -shame. - -12:17 He that speaketh truth sheweth forth righteousness: but a false -witness deceit. - -12:18 There is that speaketh like the piercings of a sword: but the -tongue of the wise is health. - -12:19 The lip of truth shall be established for ever: but a lying -tongue is but for a moment. - -12:20 Deceit is in the heart of them that imagine evil: but to the -counsellors of peace is joy. - -12:21 There shall no evil happen to the just: but the wicked shall be -filled with mischief. - -12:22 Lying lips are abomination to the LORD: but they that deal truly -are his delight. - -12:23 A prudent man concealeth knowledge: but the heart of fools -proclaimeth foolishness. - -12:24 The hand of the diligent shall bear rule: but the slothful shall -be under tribute. - -12:25 Heaviness in the heart of man maketh it stoop: but a good word -maketh it glad. - -12:26 The righteous is more excellent than his neighbour: but the way -of the wicked seduceth them. - -12:27 The slothful man roasteth not that which he took in hunting: but -the substance of a diligent man is precious. - -12:28 In the way of righteousness is life: and in the pathway thereof -there is no death. - -13:1 A wise son heareth his father's instruction: but a scorner -heareth not rebuke. - -13:2 A man shall eat good by the fruit of his mouth: but the soul of -the transgressors shall eat violence. - -13:3 He that keepeth his mouth keepeth his life: but he that openeth -wide his lips shall have destruction. - -13:4 The soul of the sluggard desireth, and hath nothing: but the soul -of the diligent shall be made fat. - -13:5 A righteous man hateth lying: but a wicked man is loathsome, and -cometh to shame. - -13:6 Righteousness keepeth him that is upright in the way: but -wickedness overthroweth the sinner. - -13:7 There is that maketh himself rich, yet hath nothing: there is -that maketh himself poor, yet hath great riches. - -13:8 The ransom of a man's life are his riches: but the poor heareth -not rebuke. - -13:9 The light of the righteous rejoiceth: but the lamp of the wicked -shall be put out. - -13:10 Only by pride cometh contention: but with the well advised is -wisdom. - -13:11 Wealth gotten by vanity shall be diminished: but he that -gathereth by labour shall increase. - -13:12 Hope deferred maketh the heart sick: but when the desire cometh, -it is a tree of life. - -13:13 Whoso despiseth the word shall be destroyed: but he that feareth -the commandment shall be rewarded. - -13:14 The law of the wise is a fountain of life, to depart from the -snares of death. - -13:15 Good understanding giveth favour: but the way of transgressors -is hard. - -13:16 Every prudent man dealeth with knowledge: but a fool layeth open -his folly. - -13:17 A wicked messenger falleth into mischief: but a faithful -ambassador is health. - -13:18 Poverty and shame shall be to him that refuseth instruction: but -he that regardeth reproof shall be honoured. - -13:19 The desire accomplished is sweet to the soul: but it is -abomination to fools to depart from evil. - -13:20 He that walketh with wise men shall be wise: but a companion of -fools shall be destroyed. - -13:21 Evil pursueth sinners: but to the righteous good shall be -repayed. - -13:22 A good man leaveth an inheritance to his children's children: -and the wealth of the sinner is laid up for the just. - -13:23 Much food is in the tillage of the poor: but there is that is -destroyed for want of judgment. - -13:24 He that spareth his rod hateth his son: but he that loveth him -chasteneth him betimes. - -13:25 The righteous eateth to the satisfying of his soul: but the -belly of the wicked shall want. - -14:1 Every wise woman buildeth her house: but the foolish plucketh it -down with her hands. - -14:2 He that walketh in his uprightness feareth the LORD: but he that -is perverse in his ways despiseth him. - -14:3 In the mouth of the foolish is a rod of pride: but the lips of -the wise shall preserve them. - -14:4 Where no oxen are, the crib is clean: but much increase is by the -strength of the ox. - -14:5 A faithful witness will not lie: but a false witness will utter -lies. - -14:6 A scorner seeketh wisdom, and findeth it not: but knowledge is -easy unto him that understandeth. - -14:7 Go from the presence of a foolish man, when thou perceivest not -in him the lips of knowledge. - -14:8 The wisdom of the prudent is to understand his way: but the folly -of fools is deceit. - -14:9 Fools make a mock at sin: but among the righteous there is -favour. - -14:10 The heart knoweth his own bitterness; and a stranger doth not -intermeddle with his joy. - -14:11 The house of the wicked shall be overthrown: but the tabernacle -of the upright shall flourish. - -14:12 There is a way which seemeth right unto a man, but the end -thereof are the ways of death. - -14:13 Even in laughter the heart is sorrowful; and the end of that -mirth is heaviness. - -14:14 The backslider in heart shall be filled with his own ways: and a -good man shall be satisfied from himself. - -14:15 The simple believeth every word: but the prudent man looketh -well to his going. - -14:16 A wise man feareth, and departeth from evil: but the fool -rageth, and is confident. - -14:17 He that is soon angry dealeth foolishly: and a man of wicked -devices is hated. - -14:18 The simple inherit folly: but the prudent are crowned with -knowledge. - -14:19 The evil bow before the good; and the wicked at the gates of the -righteous. - -14:20 The poor is hated even of his own neighbour: but the rich hath -many friends. - -14:21 He that despiseth his neighbour sinneth: but he that hath mercy -on the poor, happy is he. - -14:22 Do they not err that devise evil? but mercy and truth shall be -to them that devise good. - -14:23 In all labour there is profit: but the talk of the lips tendeth -only to penury. - -14:24 The crown of the wise is their riches: but the foolishness of -fools is folly. - -14:25 A true witness delivereth souls: but a deceitful witness -speaketh lies. - -14:26 In the fear of the LORD is strong confidence: and his children -shall have a place of refuge. - -14:27 The fear of the LORD is a fountain of life, to depart from the -snares of death. - -14:28 In the multitude of people is the king's honour: but in the want -of people is the destruction of the prince. - -14:29 He that is slow to wrath is of great understanding: but he that -is hasty of spirit exalteth folly. - -14:30 A sound heart is the life of the flesh: but envy the rottenness -of the bones. - -14:31 He that oppresseth the poor reproacheth his Maker: but he that -honoureth him hath mercy on the poor. - -14:32 The wicked is driven away in his wickedness: but the righteous -hath hope in his death. - -14:33 Wisdom resteth in the heart of him that hath understanding: but -that which is in the midst of fools is made known. - -14:34 Righteousness exalteth a nation: but sin is a reproach to any -people. - -14:35 The king's favour is toward a wise servant: but his wrath is -against him that causeth shame. - -15:1 A soft answer turneth away wrath: but grievous words stir up -anger. - -15:2 The tongue of the wise useth knowledge aright: but the mouth of -fools poureth out foolishness. - -15:3 The eyes of the LORD are in every place, beholding the evil and -the good. - -15:4 A wholesome tongue is a tree of life: but perverseness therein is -a breach in the spirit. - -15:5 A fool despiseth his father's instruction: but he that regardeth -reproof is prudent. - -15:6 In the house of the righteous is much treasure: but in the -revenues of the wicked is trouble. - -15:7 The lips of the wise disperse knowledge: but the heart of the -foolish doeth not so. - -15:8 The sacrifice of the wicked is an abomination to the LORD: but -the prayer of the upright is his delight. - -15:9 The way of the wicked is an abomination unto the LORD: but he -loveth him that followeth after righteousness. - -15:10 Correction is grievous unto him that forsaketh the way: and he -that hateth reproof shall die. - -15:11 Hell and destruction are before the LORD: how much more then the -hearts of the children of men? 15:12 A scorner loveth not one that -reproveth him: neither will he go unto the wise. - -15:13 A merry heart maketh a cheerful countenance: but by sorrow of -the heart the spirit is broken. - -15:14 The heart of him that hath understanding seeketh knowledge: but -the mouth of fools feedeth on foolishness. - -15:15 All the days of the afflicted are evil: but he that is of a -merry heart hath a continual feast. - -15:16 Better is little with the fear of the LORD than great treasure -and trouble therewith. - -15:17 Better is a dinner of herbs where love is, than a stalled ox and -hatred therewith. - -15:18 A wrathful man stirreth up strife: but he that is slow to anger -appeaseth strife. - -15:19 The way of the slothful man is as an hedge of thorns: but the -way of the righteous is made plain. - -15:20 A wise son maketh a glad father: but a foolish man despiseth his -mother. - -15:21 Folly is joy to him that is destitute of wisdom: but a man of -understanding walketh uprightly. - -15:22 Without counsel purposes are disappointed: but in the multitude -of counsellors they are established. - -15:23 A man hath joy by the answer of his mouth: and a word spoken in -due season, how good is it! 15:24 The way of life is above to the -wise, that he may depart from hell beneath. - -15:25 The LORD will destroy the house of the proud: but he will -establish the border of the widow. - -15:26 The thoughts of the wicked are an abomination to the LORD: but -the words of the pure are pleasant words. - -15:27 He that is greedy of gain troubleth his own house; but he that -hateth gifts shall live. - -15:28 The heart of the righteous studieth to answer: but the mouth of -the wicked poureth out evil things. - -15:29 The LORD is far from the wicked: but he heareth the prayer of -the righteous. - -15:30 The light of the eyes rejoiceth the heart: and a good report -maketh the bones fat. - -15:31 The ear that heareth the reproof of life abideth among the wise. - -15:32 He that refuseth instruction despiseth his own soul: but he that -heareth reproof getteth understanding. - -15:33 The fear of the LORD is the instruction of wisdom; and before -honour is humility. - -16:1 The preparations of the heart in man, and the answer of the -tongue, is from the LORD. - -16:2 All the ways of a man are clean in his own eyes; but the LORD -weigheth the spirits. - -16:3 Commit thy works unto the LORD, and thy thoughts shall be -established. - -16:4 The LORD hath made all things for himself: yea, even the wicked -for the day of evil. - -16:5 Every one that is proud in heart is an abomination to the LORD: -though hand join in hand, he shall not be unpunished. - -16:6 By mercy and truth iniquity is purged: and by the fear of the -LORD men depart from evil. - -16:7 When a man's ways please the LORD, he maketh even his enemies to -be at peace with him. - -16:8 Better is a little with righteousness than great revenues without -right. - -16:9 A man's heart deviseth his way: but the LORD directeth his steps. - -16:10 A divine sentence is in the lips of the king: his mouth -transgresseth not in judgment. - -16:11 A just weight and balance are the LORD's: all the weights of the -bag are his work. - -16:12 It is an abomination to kings to commit wickedness: for the -throne is established by righteousness. - -16:13 Righteous lips are the delight of kings; and they love him that -speaketh right. - -16:14 The wrath of a king is as messengers of death: but a wise man -will pacify it. - -16:15 In the light of the king's countenance is life; and his favour -is as a cloud of the latter rain. - -16:16 How much better is it to get wisdom than gold! and to get -understanding rather to be chosen than silver! 16:17 The highway of -the upright is to depart from evil: he that keepeth his way preserveth -his soul. - -16:18 Pride goeth before destruction, and an haughty spirit before a -fall. - -16:19 Better it is to be of an humble spirit with the lowly, than to -divide the spoil with the proud. - -16:20 He that handleth a matter wisely shall find good: and whoso -trusteth in the LORD, happy is he. - -16:21 The wise in heart shall be called prudent: and the sweetness of -the lips increaseth learning. - -16:22 Understanding is a wellspring of life unto him that hath it: but -the instruction of fools is folly. - -16:23 The heart of the wise teacheth his mouth, and addeth learning to -his lips. - -16:24 Pleasant words are as an honeycomb, sweet to the soul, and -health to the bones. - -16:25 There is a way that seemeth right unto a man, but the end -thereof are the ways of death. - -16:26 He that laboureth laboureth for himself; for his mouth craveth -it of him. - -16:27 An ungodly man diggeth up evil: and in his lips there is as a -burning fire. - -16:28 A froward man soweth strife: and a whisperer separateth chief -friends. - -16:29 A violent man enticeth his neighbour, and leadeth him into the -way that is not good. - -16:30 He shutteth his eyes to devise froward things: moving his lips -he bringeth evil to pass. - -16:31 The hoary head is a crown of glory, if it be found in the way of -righteousness. - -16:32 He that is slow to anger is better than the mighty; and he that -ruleth his spirit than he that taketh a city. - -16:33 The lot is cast into the lap; but the whole disposing thereof is -of the LORD. - -17:1 Better is a dry morsel, and quietness therewith, than an house -full of sacrifices with strife. - -17:2 A wise servant shall have rule over a son that causeth shame, and -shall have part of the inheritance among the brethren. - -17:3 The fining pot is for silver, and the furnace for gold: but the -LORD trieth the hearts. - -17:4 A wicked doer giveth heed to false lips; and a liar giveth ear to -a naughty tongue. - -17:5 Whoso mocketh the poor reproacheth his Maker: and he that is glad -at calamities shall not be unpunished. - -17:6 Children's children are the crown of old men; and the glory of -children are their fathers. - -17:7 Excellent speech becometh not a fool: much less do lying lips a -prince. - -17:8 A gift is as a precious stone in the eyes of him that hath it: -whithersoever it turneth, it prospereth. - -17:9 He that covereth a transgression seeketh love; but he that -repeateth a matter separateth very friends. - -17:10 A reproof entereth more into a wise man than an hundred stripes -into a fool. - -17:11 An evil man seeketh only rebellion: therefore a cruel messenger -shall be sent against him. - -17:12 Let a bear robbed of her whelps meet a man, rather than a fool -in his folly. - -17:13 Whoso rewardeth evil for good, evil shall not depart from his -house. - -17:14 The beginning of strife is as when one letteth out water: -therefore leave off contention, before it be meddled with. - -17:15 He that justifieth the wicked, and he that condemneth the just, -even they both are abomination to the LORD. - -17:16 Wherefore is there a price in the hand of a fool to get wisdom, -seeing he hath no heart to it? 17:17 A friend loveth at all times, -and a brother is born for adversity. - -17:18 A man void of understanding striketh hands, and becometh surety -in the presence of his friend. - -17:19 He loveth transgression that loveth strife: and he that exalteth -his gate seeketh destruction. - -17:20 He that hath a froward heart findeth no good: and he that hath a -perverse tongue falleth into mischief. - -17:21 He that begetteth a fool doeth it to his sorrow: and the father -of a fool hath no joy. - -17:22 A merry heart doeth good like a medicine: but a broken spirit -drieth the bones. - -17:23 A wicked man taketh a gift out of the bosom to pervert the ways -of judgment. - -17:24 Wisdom is before him that hath understanding; but the eyes of a -fool are in the ends of the earth. - -17:25 A foolish son is a grief to his father, and bitterness to her -that bare him. - -17:26 Also to punish the just is not good, nor to strike princes for -equity. - -17:27 He that hath knowledge spareth his words: and a man of -understanding is of an excellent spirit. - -17:28 Even a fool, when he holdeth his peace, is counted wise: and he -that shutteth his lips is esteemed a man of understanding. - -18:1 Through desire a man, having separated himself, seeketh and -intermeddleth with all wisdom. - -18:2 A fool hath no delight in understanding, but that his heart may -discover itself. - -18:3 When the wicked cometh, then cometh also contempt, and with -ignominy reproach. - -18:4 The words of a man's mouth are as deep waters, and the wellspring -of wisdom as a flowing brook. - -18:5 It is not good to accept the person of the wicked, to overthrow -the righteous in judgment. - -18:6 A fool's lips enter into contention, and his mouth calleth for -strokes. - -18:7 A fool's mouth is his destruction, and his lips are the snare of -his soul. - -18:8 The words of a talebearer are as wounds, and they go down into -the innermost parts of the belly. - -18:9 He also that is slothful in his work is brother to him that is a -great waster. - -18:10 The name of the LORD is a strong tower: the righteous runneth -into it, and is safe. - -18:11 The rich man's wealth is his strong city, and as an high wall in -his own conceit. - -18:12 Before destruction the heart of man is haughty, and before -honour is humility. - -18:13 He that answereth a matter before he heareth it, it is folly and -shame unto him. - -18:14 The spirit of a man will sustain his infirmity; but a wounded -spirit who can bear? 18:15 The heart of the prudent getteth -knowledge; and the ear of the wise seeketh knowledge. - -18:16 A man's gift maketh room for him, and bringeth him before great -men. - -18:17 He that is first in his own cause seemeth just; but his -neighbour cometh and searcheth him. - -18:18 The lot causeth contentions to cease, and parteth between the -mighty. - -18:19 A brother offended is harder to be won than a strong city: and -their contentions are like the bars of a castle. - -18:20 A man's belly shall be satisfied with the fruit of his mouth; -and with the increase of his lips shall he be filled. - -18:21 Death and life are in the power of the tongue: and they that -love it shall eat the fruit thereof. - -18:22 Whoso findeth a wife findeth a good thing, and obtaineth favour -of the LORD. - -18:23 The poor useth intreaties; but the rich answereth roughly. - -18:24 A man that hath friends must shew himself friendly: and there is -a friend that sticketh closer than a brother. - -19:1 Better is the poor that walketh in his integrity, than he that is -perverse in his lips, and is a fool. - -19:2 Also, that the soul be without knowledge, it is not good; and he -that hasteth with his feet sinneth. - -19:3 The foolishness of man perverteth his way: and his heart fretteth -against the LORD. - -19:4 Wealth maketh many friends; but the poor is separated from his -neighbour. - -19:5 A false witness shall not be unpunished, and he that speaketh -lies shall not escape. - -19:6 Many will intreat the favour of the prince: and every man is a -friend to him that giveth gifts. - -19:7 All the brethren of the poor do hate him: how much more do his -friends go far from him? he pursueth them with words, yet they are -wanting to him. - -19:8 He that getteth wisdom loveth his own soul: he that keepeth -understanding shall find good. - -19:9 A false witness shall not be unpunished, and he that speaketh -lies shall perish. - -19:10 Delight is not seemly for a fool; much less for a servant to -have rule over princes. - -19:11 The discretion of a man deferreth his anger; and it is his glory -to pass over a transgression. - -19:12 The king's wrath is as the roaring of a lion; but his favour is -as dew upon the grass. - -19:13 A foolish son is the calamity of his father: and the contentions -of a wife are a continual dropping. - -19:14 House and riches are the inheritance of fathers: and a prudent -wife is from the LORD. - -19:15 Slothfulness casteth into a deep sleep; and an idle soul shall -suffer hunger. - -19:16 He that keepeth the commandment keepeth his own soul; but he -that despiseth his ways shall die. - -19:17 He that hath pity upon the poor lendeth unto the LORD; and that -which he hath given will he pay him again. - -19:18 Chasten thy son while there is hope, and let not thy soul spare -for his crying. - -19:19 A man of great wrath shall suffer punishment: for if thou -deliver him, yet thou must do it again. - -19:20 Hear counsel, and receive instruction, that thou mayest be wise -in thy latter end. - -19:21 There are many devices in a man's heart; nevertheless the -counsel of the LORD, that shall stand. - -19:22 The desire of a man is his kindness: and a poor man is better -than a liar. - -19:23 The fear of the LORD tendeth to life: and he that hath it shall -abide satisfied; he shall not be visited with evil. - -19:24 A slothful man hideth his hand in his bosom, and will not so -much as bring it to his mouth again. - -19:25 Smite a scorner, and the simple will beware: and reprove one -that hath understanding, and he will understand knowledge. - -19:26 He that wasteth his father, and chaseth away his mother, is a -son that causeth shame, and bringeth reproach. - -19:27 Cease, my son, to hear the instruction that causeth to err from -the words of knowledge. - -19:28 An ungodly witness scorneth judgment: and the mouth of the -wicked devoureth iniquity. - -19:29 Judgments are prepared for scorners, and stripes for the back of -fools. - -20:1 Wine is a mocker, strong drink is raging: and whosoever is -deceived thereby is not wise. - -20:2 The fear of a king is as the roaring of a lion: whoso provoketh -him to anger sinneth against his own soul. - -20:3 It is an honour for a man to cease from strife: but every fool -will be meddling. - -20:4 The sluggard will not plow by reason of the cold; therefore shall -he beg in harvest, and have nothing. - -20:5 Counsel in the heart of man is like deep water; but a man of -understanding will draw it out. - -20:6 Most men will proclaim every one his own goodness: but a faithful -man who can find? 20:7 The just man walketh in his integrity: his -children are blessed after him. - -20:8 A king that sitteth in the throne of judgment scattereth away all -evil with his eyes. - -20:9 Who can say, I have made my heart clean, I am pure from my sin? -20:10 Divers weights, and divers measures, both of them are alike -abomination to the LORD. - -20:11 Even a child is known by his doings, whether his work be pure, -and whether it be right. - -20:12 The hearing ear, and the seeing eye, the LORD hath made even -both of them. - -20:13 Love not sleep, lest thou come to poverty; open thine eyes, and -thou shalt be satisfied with bread. - -20:14 It is naught, it is naught, saith the buyer: but when he is gone -his way, then he boasteth. - -20:15 There is gold, and a multitude of rubies: but the lips of -knowledge are a precious jewel. - -20:16 Take his garment that is surety for a stranger: and take a -pledge of him for a strange woman. - -20:17 Bread of deceit is sweet to a man; but afterwards his mouth -shall be filled with gravel. - -20:18 Every purpose is established by counsel: and with good advice -make war. - -20:19 He that goeth about as a talebearer revealeth secrets: therefore -meddle not with him that flattereth with his lips. - -20:20 Whoso curseth his father or his mother, his lamp shall be put -out in obscure darkness. - -20:21 An inheritance may be gotten hastily at the beginning; but the -end thereof shall not be blessed. - -20:22 Say not thou, I will recompense evil; but wait on the LORD, and -he shall save thee. - -20:23 Divers weights are an abomination unto the LORD; and a false -balance is not good. - -20:24 Man's goings are of the LORD; how can a man then understand his -own way? 20:25 It is a snare to the man who devoureth that which is -holy, and after vows to make enquiry. - -20:26 A wise king scattereth the wicked, and bringeth the wheel over -them. - -20:27 The spirit of man is the candle of the LORD, searching all the -inward parts of the belly. - -20:28 Mercy and truth preserve the king: and his throne is upholden by -mercy. - -20:29 The glory of young men is their strength: and the beauty of old -men is the grey head. - -20:30 The blueness of a wound cleanseth away evil: so do stripes the -inward parts of the belly. - -21:1 The king's heart is in the hand of the LORD, as the rivers of -water: he turneth it whithersoever he will. - -21:2 Every way of a man is right in his own eyes: but the LORD -pondereth the hearts. - -21:3 To do justice and judgment is more acceptable to the LORD than -sacrifice. - -21:4 An high look, and a proud heart, and the plowing of the wicked, -is sin. - -21:5 The thoughts of the diligent tend only to plenteousness; but of -every one that is hasty only to want. - -21:6 The getting of treasures by a lying tongue is a vanity tossed to -and fro of them that seek death. - -21:7 The robbery of the wicked shall destroy them; because they refuse -to do judgment. - -21:8 The way of man is froward and strange: but as for the pure, his -work is right. - -21:9 It is better to dwell in a corner of the housetop, than with a -brawling woman in a wide house. - -21:10 The soul of the wicked desireth evil: his neighbour findeth no -favour in his eyes. - -21:11 When the scorner is punished, the simple is made wise: and when -the wise is instructed, he receiveth knowledge. - -21:12 The righteous man wisely considereth the house of the wicked: -but God overthroweth the wicked for their wickedness. - -21:13 Whoso stoppeth his ears at the cry of the poor, he also shall -cry himself, but shall not be heard. - -21:14 A gift in secret pacifieth anger: and a reward in the bosom -strong wrath. - -21:15 It is joy to the just to do judgment: but destruction shall be -to the workers of iniquity. - -21:16 The man that wandereth out of the way of understanding shall -remain in the congregation of the dead. - -21:17 He that loveth pleasure shall be a poor man: he that loveth wine -and oil shall not be rich. - -21:18 The wicked shall be a ransom for the righteous, and the -transgressor for the upright. - -21:19 It is better to dwell in the wilderness, than with a contentious -and an angry woman. - -21:20 There is treasure to be desired and oil in the dwelling of the -wise; but a foolish man spendeth it up. - -21:21 He that followeth after righteousness and mercy findeth life, -righteousness, and honour. - -21:22 A wise man scaleth the city of the mighty, and casteth down the -strength of the confidence thereof. - -21:23 Whoso keepeth his mouth and his tongue keepeth his soul from -troubles. - -21:24 Proud and haughty scorner is his name, who dealeth in proud -wrath. - -21:25 The desire of the slothful killeth him; for his hands refuse to -labour. - -21:26 He coveteth greedily all the day long: but the righteous giveth -and spareth not. - -21:27 The sacrifice of the wicked is abomination: how much more, when -he bringeth it with a wicked mind? 21:28 A false witness shall -perish: but the man that heareth speaketh constantly. - -21:29 A wicked man hardeneth his face: but as for the upright, he -directeth his way. - -21:30 There is no wisdom nor understanding nor counsel against the -LORD. - -21:31 The horse is prepared against the day of battle: but safety is -of the LORD. - -22:1 A GOOD name is rather to be chosen than great riches, and loving -favour rather than silver and gold. - -22:2 The rich and poor meet together: the LORD is the maker of them -all. - -22:3 A prudent man foreseeth the evil, and hideth himself: but the -simple pass on, and are punished. - -22:4 By humility and the fear of the LORD are riches, and honour, and -life. - -22:5 Thorns and snares are in the way of the froward: he that doth -keep his soul shall be far from them. - -22:6 Train up a child in the way he should go: and when he is old, he -will not depart from it. - -22:7 The rich ruleth over the poor, and the borrower is servant to the -lender. - -22:8 He that soweth iniquity shall reap vanity: and the rod of his -anger shall fail. - -22:9 He that hath a bountiful eye shall be blessed; for he giveth of -his bread to the poor. - -22:10 Cast out the scorner, and contention shall go out; yea, strife -and reproach shall cease. - -22:11 He that loveth pureness of heart, for the grace of his lips the -king shall be his friend. - -22:12 The eyes of the LORD preserve knowledge, and he overthroweth the -words of the transgressor. - -22:13 The slothful man saith, There is a lion without, I shall be -slain in the streets. - -22:14 The mouth of strange women is a deep pit: he that is abhorred of -the LORD shall fall therein. - -22:15 Foolishness is bound in the heart of a child; but the rod of -correction shall drive it far from him. - -22:16 He that oppresseth the poor to increase his riches, and he that -giveth to the rich, shall surely come to want. - -22:17 Bow down thine ear, and hear the words of the wise, and apply -thine heart unto my knowledge. - -22:18 For it is a pleasant thing if thou keep them within thee; they -shall withal be fitted in thy lips. - -22:19 That thy trust may be in the LORD, I have made known to thee -this day, even to thee. - -22:20 Have not I written to thee excellent things in counsels and -knowledge, 22:21 That I might make thee know the certainty of the -words of truth; that thou mightest answer the words of truth to them -that send unto thee? 22:22 Rob not the poor, because he is poor: -neither oppress the afflicted in the gate: 22:23 For the LORD will -plead their cause, and spoil the soul of those that spoiled them. - -22:24 Make no friendship with an angry man; and with a furious man -thou shalt not go: 22:25 Lest thou learn his ways, and get a snare to -thy soul. - -22:26 Be not thou one of them that strike hands, or of them that are -sureties for debts. - -22:27 If thou hast nothing to pay, why should he take away thy bed -from under thee? 22:28 Remove not the ancient landmark, which thy -fathers have set. - -22:29 Seest thou a man diligent in his business? he shall stand before -kings; he shall not stand before mean men. - -23:1 When thou sittest to eat with a ruler, consider diligently what -is before thee: 23:2 And put a knife to thy throat, if thou be a man -given to appetite. - -23:3 Be not desirous of his dainties: for they are deceitful meat. - -23:4 Labour not to be rich: cease from thine own wisdom. - -23:5 Wilt thou set thine eyes upon that which is not? for riches -certainly make themselves wings; they fly away as an eagle toward -heaven. - -23:6 Eat thou not the bread of him that hath an evil eye, neither -desire thou his dainty meats: 23:7 For as he thinketh in his heart, so -is he: Eat and drink, saith he to thee; but his heart is not with -thee. - -23:8 The morsel which thou hast eaten shalt thou vomit up, and lose -thy sweet words. - -23:9 Speak not in the ears of a fool: for he will despise the wisdom -of thy words. - -23:10 Remove not the old landmark; and enter not into the fields of -the fatherless: 23:11 For their redeemer is mighty; he shall plead -their cause with thee. - -23:12 Apply thine heart unto instruction, and thine ears to the words -of knowledge. - -23:13 Withhold not correction from the child: for if thou beatest him -with the rod, he shall not die. - -23:14 Thou shalt beat him with the rod, and shalt deliver his soul -from hell. - -23:15 My son, if thine heart be wise, my heart shall rejoice, even -mine. - -23:16 Yea, my reins shall rejoice, when thy lips speak right things. - -23:17 Let not thine heart envy sinners: but be thou in the fear of the -LORD all the day long. - -23:18 For surely there is an end; and thine expectation shall not be -cut off. - -23:19 Hear thou, my son, and be wise, and guide thine heart in the -way. - -23:20 Be not among winebibbers; among riotous eaters of flesh: 23:21 -For the drunkard and the glutton shall come to poverty: and drowsiness -shall clothe a man with rags. - -23:22 Hearken unto thy father that begat thee, and despise not thy -mother when she is old. - -23:23 Buy the truth, and sell it not; also wisdom, and instruction, -and understanding. - -23:24 The father of the righteous shall greatly rejoice: and he that -begetteth a wise child shall have joy of him. - -23:25 Thy father and thy mother shall be glad, and she that bare thee -shall rejoice. - -23:26 My son, give me thine heart, and let thine eyes observe my ways. - -23:27 For a whore is a deep ditch; and a strange woman is a narrow -pit. - -23:28 She also lieth in wait as for a prey, and increaseth the -transgressors among men. - -23:29 Who hath woe? who hath sorrow? who hath contentions? who hath -babbling? who hath wounds without cause? who hath redness of eyes? -23:30 They that tarry long at the wine; they that go to seek mixed -wine. - -23:31 Look not thou upon the wine when it is red, when it giveth his -colour in the cup, when it moveth itself aright. - -23:32 At the last it biteth like a serpent, and stingeth like an -adder. - -23:33 Thine eyes shall behold strange women, and thine heart shall -utter perverse things. - -23:34 Yea, thou shalt be as he that lieth down in the midst of the -sea, or as he that lieth upon the top of a mast. - -23:35 They have stricken me, shalt thou say, and I was not sick; they -have beaten me, and I felt it not: when shall I awake? I will seek it -yet again. - -24:1 Be not thou envious against evil men, neither desire to be with -them. - -24:2 For their heart studieth destruction, and their lips talk of -mischief. - -24:3 Through wisdom is an house builded; and by understanding it is -established: 24:4 And by knowledge shall the chambers be filled with -all precious and pleasant riches. - -24:5 A wise man is strong; yea, a man of knowledge increaseth -strength. - -24:6 For by wise counsel thou shalt make thy war: and in multitude of -counsellors there is safety. - -24:7 Wisdom is too high for a fool: he openeth not his mouth in the -gate. - -24:8 He that deviseth to do evil shall be called a mischievous person. - -24:9 The thought of foolishness is sin: and the scorner is an -abomination to men. - -24:10 If thou faint in the day of adversity, thy strength is small. - -24:11 If thou forbear to deliver them that are drawn unto death, and -those that are ready to be slain; 24:12 If thou sayest, Behold, we -knew it not; doth not he that pondereth the heart consider it? and he -that keepeth thy soul, doth not he know it? and shall not he render to -every man according to his works? 24:13 My son, eat thou honey, -because it is good; and the honeycomb, which is sweet to thy taste: -24:14 So shall the knowledge of wisdom be unto thy soul: when thou -hast found it, then there shall be a reward, and thy expectation shall -not be cut off. - -24:15 Lay not wait, O wicked man, against the dwelling of the -righteous; spoil not his resting place: 24:16 For a just man falleth -seven times, and riseth up again: but the wicked shall fall into -mischief. - -24:17 Rejoice not when thine enemy falleth, and let not thine heart be -glad when he stumbleth: 24:18 Lest the LORD see it, and it displease -him, and he turn away his wrath from him. - -24:19 Fret not thyself because of evil men, neither be thou envious at -the wicked: 24:20 For there shall be no reward to the evil man; the -candle of the wicked shall be put out. - -24:21 My son, fear thou the LORD and the king: and meddle not with -them that are given to change: 24:22 For their calamity shall rise -suddenly; and who knoweth the ruin of them both? 24:23 These things -also belong to the wise. It is not good to have respect of persons in -judgment. - -24:24 He that saith unto the wicked, Thou are righteous; him shall the -people curse, nations shall abhor him: 24:25 But to them that rebuke -him shall be delight, and a good blessing shall come upon them. - -24:26 Every man shall kiss his lips that giveth a right answer. - -24:27 Prepare thy work without, and make it fit for thyself in the -field; and afterwards build thine house. - -24:28 Be not a witness against thy neighbour without cause; and -deceive not with thy lips. - -24:29 Say not, I will do so to him as he hath done to me: I will -render to the man according to his work. - -24:30 I went by the field of the slothful, and by the vineyard of the -man void of understanding; 24:31 And, lo, it was all grown over with -thorns, and nettles had covered the face thereof, and the stone wall -thereof was broken down. - -24:32 Then I saw, and considered it well: I looked upon it, and -received instruction. - -24:33 Yet a little sleep, a little slumber, a little folding of the -hands to sleep: 24:34 So shall thy poverty come as one that -travelleth; and thy want as an armed man. - -25:1 These are also proverbs of Solomon, which the men of Hezekiah -king of Judah copied out. - -25:2 It is the glory of God to conceal a thing: but the honour of -kings is to search out a matter. - -25:3 The heaven for height, and the earth for depth, and the heart of -kings is unsearchable. - -25:4 Take away the dross from the silver, and there shall come forth a -vessel for the finer. - -25:5 Take away the wicked from before the king, and his throne shall -be established in righteousness. - -25:6 Put not forth thyself in the presence of the king, and stand not -in the place of great men: 25:7 For better it is that it be said unto -thee, Come up hither; than that thou shouldest be put lower in the -presence of the prince whom thine eyes have seen. - -25:8 Go not forth hastily to strive, lest thou know not what to do in -the end thereof, when thy neighbour hath put thee to shame. - -25:9 Debate thy cause with thy neighbour himself; and discover not a -secret to another: 25:10 Lest he that heareth it put thee to shame, -and thine infamy turn not away. - -25:11 A word fitly spoken is like apples of gold in pictures of -silver. - -25:12 As an earring of gold, and an ornament of fine gold, so is a -wise reprover upon an obedient ear. - -25:13 As the cold of snow in the time of harvest, so is a faithful -messenger to them that send him: for he refresheth the soul of his -masters. - -25:14 Whoso boasteth himself of a false gift is like clouds and wind -without rain. - -25:15 By long forbearing is a prince persuaded, and a soft tongue -breaketh the bone. - -25:16 Hast thou found honey? eat so much as is sufficient for thee, -lest thou be filled therewith, and vomit it. - -25:17 Withdraw thy foot from thy neighbour's house; lest he be weary -of thee, and so hate thee. - -25:18 A man that beareth false witness against his neighbour is a -maul, and a sword, and a sharp arrow. - -25:19 Confidence in an unfaithful man in time of trouble is like a -broken tooth, and a foot out of joint. - -25:20 As he that taketh away a garment in cold weather, and as vinegar -upon nitre, so is he that singeth songs to an heavy heart. - -25:21 If thine enemy be hungry, give him bread to eat; and if he be -thirsty, give him water to drink: 25:22 For thou shalt heap coals of -fire upon his head, and the LORD shall reward thee. - -25:23 The north wind driveth away rain: so doth an angry countenance a -backbiting tongue. - -25:24 It is better to dwell in the corner of the housetop, than with a -brawling woman and in a wide house. - -25:25 As cold waters to a thirsty soul, so is good news from a far -country. - -25:26 A righteous man falling down before the wicked is as a troubled -fountain, and a corrupt spring. - -25:27 It is not good to eat much honey: so for men to search their own -glory is not glory. - -25:28 He that hath no rule over his own spirit is like a city that is -broken down, and without walls. - -26:1 As snow in summer, and as rain in harvest, so honour is not -seemly for a fool. - -26:2 As the bird by wandering, as the swallow by flying, so the curse -causeless shall not come. - -26:3 A whip for the horse, a bridle for the ass, and a rod for the -fool's back. - -26:4 Answer not a fool according to his folly, lest thou also be like -unto him. - -26:5 Answer a fool according to his folly, lest he be wise in his own -conceit. - -26:6 He that sendeth a message by the hand of a fool cutteth off the -feet, and drinketh damage. - -26:7 The legs of the lame are not equal: so is a parable in the mouth -of fools. - -26:8 As he that bindeth a stone in a sling, so is he that giveth -honour to a fool. - -26:9 As a thorn goeth up into the hand of a drunkard, so is a parable -in the mouths of fools. - -26:10 The great God that formed all things both rewardeth the fool, -and rewardeth transgressors. - -26:11 As a dog returneth to his vomit, so a fool returneth to his -folly. - -26:12 Seest thou a man wise in his own conceit? there is more hope of -a fool than of him. - -26:13 The slothful man saith, There is a lion in the way; a lion is in -the streets. - -26:14 As the door turneth upon his hinges, so doth the slothful upon -his bed. - -26:15 The slothful hideth his hand in his bosom; it grieveth him to -bring it again to his mouth. - -26:16 The sluggard is wiser in his own conceit than seven men that can -render a reason. - -26:17 He that passeth by, and meddleth with strife belonging not to -him, is like one that taketh a dog by the ears. - -26:18 As a mad man who casteth firebrands, arrows, and death, 26:19 So -is the man that deceiveth his neighbour, and saith, Am not I in sport? -26:20 Where no wood is, there the fire goeth out: so where there is no -talebearer, the strife ceaseth. - -26:21 As coals are to burning coals, and wood to fire; so is a -contentious man to kindle strife. - -26:22 The words of a talebearer are as wounds, and they go down into -the innermost parts of the belly. - -26:23 Burning lips and a wicked heart are like a potsherd covered with -silver dross. - -26:24 He that hateth dissembleth with his lips, and layeth up deceit -within him; 26:25 When he speaketh fair, believe him not: for there -are seven abominations in his heart. - -26:26 Whose hatred is covered by deceit, his wickedness shall be -shewed before the whole congregation. - -26:27 Whoso diggeth a pit shall fall therein: and he that rolleth a -stone, it will return upon him. - -26:28 A lying tongue hateth those that are afflicted by it; and a -flattering mouth worketh ruin. - -27:1 Boast not thyself of to morrow; for thou knowest not what a day -may bring forth. - -27:2 Let another man praise thee, and not thine own mouth; a stranger, -and not thine own lips. - -27:3 A stone is heavy, and the sand weighty; but a fool's wrath is -heavier than them both. - -27:4 Wrath is cruel, and anger is outrageous; but who is able to stand -before envy? 27:5 Open rebuke is better than secret love. - -27:6 Faithful are the wounds of a friend; but the kisses of an enemy -are deceitful. - -27:7 The full soul loatheth an honeycomb; but to the hungry soul every -bitter thing is sweet. - -27:8 As a bird that wandereth from her nest, so is a man that -wandereth from his place. - -27:9 Ointment and perfume rejoice the heart: so doth the sweetness of -a man's friend by hearty counsel. - -27:10 Thine own friend, and thy father's friend, forsake not; neither -go into thy brother's house in the day of thy calamity: for better is -a neighbour that is near than a brother far off. - -27:11 My son, be wise, and make my heart glad, that I may answer him -that reproacheth me. - -27:12 A prudent man foreseeth the evil, and hideth himself; but the -simple pass on, and are punished. - -27:13 Take his garment that is surety for a stranger, and take a -pledge of him for a strange woman. - -27:14 He that blesseth his friend with a loud voice, rising early in -the morning, it shall be counted a curse to him. - -27:15 A continual dropping in a very rainy day and a contentious woman -are alike. - -27:16 Whosoever hideth her hideth the wind, and the ointment of his -right hand, which bewrayeth itself. - -27:17 Iron sharpeneth iron; so a man sharpeneth the countenance of his -friend. - -27:18 Whoso keepeth the fig tree shall eat the fruit thereof: so he -that waiteth on his master shall be honoured. - -27:19 As in water face answereth to face, so the heart of man to man. - -27:20 Hell and destruction are never full; so the eyes of man are -never satisfied. - -27:21 As the fining pot for silver, and the furnace for gold; so is a -man to his praise. - -27:22 Though thou shouldest bray a fool in a mortar among wheat with a -pestle, yet will not his foolishness depart from him. - -27:23 Be thou diligent to know the state of thy flocks, and look well -to thy herds. - -27:24 For riches are not for ever: and doth the crown endure to every -generation? 27:25 The hay appeareth, and the tender grass sheweth -itself, and herbs of the mountains are gathered. - -27:26 The lambs are for thy clothing, and the goats are the price of -the field. - -27:27 And thou shalt have goats' milk enough for thy food, for the -food of thy household, and for the maintenance for thy maidens. - -28:1 The wicked flee when no man pursueth: but the righteous are bold -as a lion. - -28:2 For the transgression of a land many are the princes thereof: but -by a man of understanding and knowledge the state thereof shall be -prolonged. - -28:3 A poor man that oppresseth the poor is like a sweeping rain which -leaveth no food. - -28:4 They that forsake the law praise the wicked: but such as keep the -law contend with them. - -28:5 Evil men understand not judgment: but they that seek the LORD -understand all things. - -28:6 Better is the poor that walketh in his uprightness, than he that -is perverse in his ways, though he be rich. - -28:7 Whoso keepeth the law is a wise son: but he that is a companion -of riotous men shameth his father. - -28:8 He that by usury and unjust gain increaseth his substance, he -shall gather it for him that will pity the poor. - -28:9 He that turneth away his ear from hearing the law, even his -prayer shall be abomination. - -28:10 Whoso causeth the righteous to go astray in an evil way, he -shall fall himself into his own pit: but the upright shall have good -things in possession. - -28:11 The rich man is wise in his own conceit; but the poor that hath -understanding searcheth him out. - -28:12 When righteous men do rejoice, there is great glory: but when -the wicked rise, a man is hidden. - -28:13 He that covereth his sins shall not prosper: but whoso -confesseth and forsaketh them shall have mercy. - -28:14 Happy is the man that feareth alway: but he that hardeneth his -heart shall fall into mischief. - -28:15 As a roaring lion, and a ranging bear; so is a wicked ruler over -the poor people. - -28:16 The prince that wanteth understanding is also a great oppressor: -but he that hateth covetousness shall prolong his days. - -28:17 A man that doeth violence to the blood of any person shall flee -to the pit; let no man stay him. - -28:18 Whoso walketh uprightly shall be saved: but he that is perverse -in his ways shall fall at once. - -28:19 He that tilleth his land shall have plenty of bread: but he that -followeth after vain persons shall have poverty enough. - -28:20 A faithful man shall abound with blessings: but he that maketh -haste to be rich shall not be innocent. - -28:21 To have respect of persons is not good: for for a piece of bread -that man will transgress. - -28:22 He that hasteth to be rich hath an evil eye, and considereth not -that poverty shall come upon him. - -28:23 He that rebuketh a man afterwards shall find more favour than he -that flattereth with the tongue. - -28:24 Whoso robbeth his father or his mother, and saith, It is no -transgression; the same is the companion of a destroyer. - -28:25 He that is of a proud heart stirreth up strife: but he that -putteth his trust in the LORD shall be made fat. - -28:26 He that trusteth in his own heart is a fool: but whoso walketh -wisely, he shall be delivered. - -28:27 He that giveth unto the poor shall not lack: but he that hideth -his eyes shall have many a curse. - -28:28 When the wicked rise, men hide themselves: but when they perish, -the righteous increase. - -29:1 He, that being often reproved hardeneth his neck, shall suddenly -be destroyed, and that without remedy. - -29:2 When the righteous are in authority, the people rejoice: but when -the wicked beareth rule, the people mourn. - -29:3 Whoso loveth wisdom rejoiceth his father: but he that keepeth -company with harlots spendeth his substance. - -29:4 The king by judgment establisheth the land: but he that receiveth -gifts overthroweth it. - -29:5 A man that flattereth his neighbour spreadeth a net for his feet. - -29:6 In the transgression of an evil man there is a snare: but the -righteous doth sing and rejoice. - -29:7 The righteous considereth the cause of the poor: but the wicked -regardeth not to know it. - -29:8 Scornful men bring a city into a snare: but wise men turn away -wrath. - -29:9 If a wise man contendeth with a foolish man, whether he rage or -laugh, there is no rest. - -29:10 The bloodthirsty hate the upright: but the just seek his soul. - -29:11 A fool uttereth all his mind: but a wise man keepeth it in till -afterwards. - -29:12 If a ruler hearken to lies, all his servants are wicked. - -29:13 The poor and the deceitful man meet together: the LORD -lighteneth both their eyes. - -29:14 The king that faithfully judgeth the poor, his throne shall be -established for ever. - -29:15 The rod and reproof give wisdom: but a child left to himself -bringeth his mother to shame. - -29:16 When the wicked are multiplied, transgression increaseth: but -the righteous shall see their fall. - -29:17 Correct thy son, and he shall give thee rest; yea, he shall give -delight unto thy soul. - -29:18 Where there is no vision, the people perish: but he that keepeth -the law, happy is he. - -29:19 A servant will not be corrected by words: for though he -understand he will not answer. - -29:20 Seest thou a man that is hasty in his words? there is more hope -of a fool than of him. - -29:21 He that delicately bringeth up his servant from a child shall -have him become his son at the length. - -29:22 An angry man stirreth up strife, and a furious man aboundeth in -transgression. - -29:23 A man's pride shall bring him low: but honour shall uphold the -humble in spirit. - -29:24 Whoso is partner with a thief hateth his own soul: he heareth -cursing, and bewrayeth it not. - -29:25 The fear of man bringeth a snare: but whoso putteth his trust in -the LORD shall be safe. - -29:26 Many seek the ruler's favour; but every man's judgment cometh -from the LORD. - -29:27 An unjust man is an abomination to the just: and he that is -upright in the way is abomination to the wicked. - -30:1 The words of Agur the son of Jakeh, even the prophecy: the man -spake unto Ithiel, even unto Ithiel and Ucal, 30:2 Surely I am more -brutish than any man, and have not the understanding of a man. - -30:3 I neither learned wisdom, nor have the knowledge of the holy. - -30:4 Who hath ascended up into heaven, or descended? who hath gathered -the wind in his fists? who hath bound the waters in a garment? who -hath established all the ends of the earth? what is his name, and what -is his son's name, if thou canst tell? 30:5 Every word of God is -pure: he is a shield unto them that put their trust in him. - -30:6 Add thou not unto his words, lest he reprove thee, and thou be -found a liar. - -30:7 Two things have I required of thee; deny me them not before I -die: 30:8 Remove far from me vanity and lies: give me neither poverty -nor riches; feed me with food convenient for me: 30:9 Lest I be full, -and deny thee, and say, Who is the LORD? or lest I be poor, and steal, -and take the name of my God in vain. - -30:10 Accuse not a servant unto his master, lest he curse thee, and -thou be found guilty. - -30:11 There is a generation that curseth their father, and doth not -bless their mother. - -30:12 There is a generation that are pure in their own eyes, and yet -is not washed from their filthiness. - -30:13 There is a generation, O how lofty are their eyes! and their -eyelids are lifted up. - -30:14 There is a generation, whose teeth are as swords, and their jaw -teeth as knives, to devour the poor from off the earth, and the needy -from among men. - -30:15 The horseleach hath two daughters, crying, Give, give. There are -three things that are never satisfied, yea, four things say not, It is -enough: 30:16 The grave; and the barren womb; the earth that is not -filled with water; and the fire that saith not, It is enough. - -30:17 The eye that mocketh at his father, and despiseth to obey his -mother, the ravens of the valley shall pick it out, and the young -eagles shall eat it. - -30:18 There be three things which are too wonderful for me, yea, four -which I know not: 30:19 The way of an eagle in the air; the way of a -serpent upon a rock; the way of a ship in the midst of the sea; and -the way of a man with a maid. - -30:20 Such is the way of an adulterous woman; she eateth, and wipeth -her mouth, and saith, I have done no wickedness. - -30:21 For three things the earth is disquieted, and for four which it -cannot bear: 30:22 For a servant when he reigneth; and a fool when he -is filled with meat; 30:23 For an odious woman when she is married; -and an handmaid that is heir to her mistress. - -30:24 There be four things which are little upon the earth, but they -are exceeding wise: 30:25 The ants are a people not strong, yet they -prepare their meat in the summer; 30:26 The conies are but a feeble -folk, yet make they their houses in the rocks; 30:27 The locusts have -no king, yet go they forth all of them by bands; 30:28 The spider -taketh hold with her hands, and is in kings' palaces. - -30:29 There be three things which go well, yea, four are comely in -going: 30:30 A lion which is strongest among beasts, and turneth not -away for any; 30:31 A greyhound; an he goat also; and a king, against -whom there is no rising up. - -30:32 If thou hast done foolishly in lifting up thyself, or if thou -hast thought evil, lay thine hand upon thy mouth. - -30:33 Surely the churning of milk bringeth forth butter, and the -wringing of the nose bringeth forth blood: so the forcing of wrath -bringeth forth strife. - -31:1 The words of king Lemuel, the prophecy that his mother taught -him. - -31:2 What, my son? and what, the son of my womb? and what, the son of -my vows? 31:3 Give not thy strength unto women, nor thy ways to that -which destroyeth kings. - -31:4 It is not for kings, O Lemuel, it is not for kings to drink wine; -nor for princes strong drink: 31:5 Lest they drink, and forget the -law, and pervert the judgment of any of the afflicted. - -31:6 Give strong drink unto him that is ready to perish, and wine unto -those that be of heavy hearts. - -31:7 Let him drink, and forget his poverty, and remember his misery no -more. - -31:8 Open thy mouth for the dumb in the cause of all such as are -appointed to destruction. - -31:9 Open thy mouth, judge righteously, and plead the cause of the -poor and needy. - -31:10 Who can find a virtuous woman? for her price is far above -rubies. - -31:11 The heart of her husband doth safely trust in her, so that he -shall have no need of spoil. - -31:12 She will do him good and not evil all the days of her life. - -31:13 She seeketh wool, and flax, and worketh willingly with her -hands. - -31:14 She is like the merchants' ships; she bringeth her food from -afar. - -31:15 She riseth also while it is yet night, and giveth meat to her -household, and a portion to her maidens. - -31:16 She considereth a field, and buyeth it: with the fruit of her -hands she planteth a vineyard. - -31:17 She girdeth her loins with strength, and strengtheneth her arms. - -31:18 She perceiveth that her merchandise is good: her candle goeth -not out by night. - -31:19 She layeth her hands to the spindle, and her hands hold the -distaff. - -31:20 She stretcheth out her hand to the poor; yea, she reacheth forth -her hands to the needy. - -31:21 She is not afraid of the snow for her household: for all her -household are clothed with scarlet. - -31:22 She maketh herself coverings of tapestry; her clothing is silk -and purple. - -31:23 Her husband is known in the gates, when he sitteth among the -elders of the land. - -31:24 She maketh fine linen, and selleth it; and delivereth girdles -unto the merchant. - -31:25 Strength and honour are her clothing; and she shall rejoice in -time to come. - -31:26 She openeth her mouth with wisdom; and in her tongue is the law -of kindness. - -31:27 She looketh well to the ways of her household, and eateth not -the bread of idleness. - -31:28 Her children arise up, and call her blessed; her husband also, -and he praiseth her. - -31:29 Many daughters have done virtuously, but thou excellest them -all. - -31:30 Favour is deceitful, and beauty is vain: but a woman that -feareth the LORD, she shall be praised. - -31:31 Give her of the fruit of her hands; and let her own works praise -her in the gates. - - - - -Ecclesiastes - -or - -The Preacher - - -1:1 The words of the Preacher, the son of David, king in Jerusalem. - -1:2 Vanity of vanities, saith the Preacher, vanity of vanities; all is -vanity. - -1:3 What profit hath a man of all his labour which he taketh under the -sun? 1:4 One generation passeth away, and another generation cometh: -but the earth abideth for ever. - -1:5 The sun also ariseth, and the sun goeth down, and hasteth to his -place where he arose. - -1:6 The wind goeth toward the south, and turneth about unto the north; -it whirleth about continually, and the wind returneth again according -to his circuits. - -1:7 All the rivers run into the sea; yet the sea is not full; unto the -place from whence the rivers come, thither they return again. - -1:8 All things are full of labour; man cannot utter it: the eye is not -satisfied with seeing, nor the ear filled with hearing. - -1:9 The thing that hath been, it is that which shall be; and that -which is done is that which shall be done: and there is no new thing -under the sun. - -1:10 Is there any thing whereof it may be said, See, this is new? it -hath been already of old time, which was before us. - -1:11 There is no remembrance of former things; neither shall there be -any remembrance of things that are to come with those that shall come -after. - -1:12 I the Preacher was king over Israel in Jerusalem. - -1:13 And I gave my heart to seek and search out by wisdom concerning -all things that are done under heaven: this sore travail hath God -given to the sons of man to be exercised therewith. - -1:14 I have seen all the works that are done under the sun; and, -behold, all is vanity and vexation of spirit. - -1:15 That which is crooked cannot be made straight: and that which is -wanting cannot be numbered. - -1:16 I communed with mine own heart, saying, Lo, I am come to great -estate, and have gotten more wisdom than all they that have been -before me in Jerusalem: yea, my heart had great experience of wisdom -and knowledge. - -1:17 And I gave my heart to know wisdom, and to know madness and -folly: I perceived that this also is vexation of spirit. - -1:18 For in much wisdom is much grief: and he that increaseth -knowledge increaseth sorrow. - -2:1 I said in mine heart, Go to now, I will prove thee with mirth, -therefore enjoy pleasure: and, behold, this also is vanity. - -2:2 I said of laughter, It is mad: and of mirth, What doeth it? 2:3 I -sought in mine heart to give myself unto wine, yet acquainting mine -heart with wisdom; and to lay hold on folly, till I might see what was -that good for the sons of men, which they should do under the heaven -all the days of their life. - -2:4 I made me great works; I builded me houses; I planted me -vineyards: 2:5 I made me gardens and orchards, and I planted trees in -them of all kind of fruits: 2:6 I made me pools of water, to water -therewith the wood that bringeth forth trees: 2:7 I got me servants -and maidens, and had servants born in my house; also I had great -possessions of great and small cattle above all that were in Jerusalem -before me: 2:8 I gathered me also silver and gold, and the peculiar -treasure of kings and of the provinces: I gat me men singers and women -singers, and the delights of the sons of men, as musical instruments, -and that of all sorts. - -2:9 So I was great, and increased more than all that were before me in -Jerusalem: also my wisdom remained with me. - -2:10 And whatsoever mine eyes desired I kept not from them, I withheld -not my heart from any joy; for my heart rejoiced in all my labour: and -this was my portion of all my labour. - -2:11 Then I looked on all the works that my hands had wrought, and on -the labour that I had laboured to do: and, behold, all was vanity and -vexation of spirit, and there was no profit under the sun. - -2:12 And I turned myself to behold wisdom, and madness, and folly: for -what can the man do that cometh after the king? even that which hath -been already done. - -2:13 Then I saw that wisdom excelleth folly, as far as light excelleth -darkness. - -2:14 The wise man's eyes are in his head; but the fool walketh in -darkness: and I myself perceived also that one event happeneth to them -all. - -2:15 Then said I in my heart, As it happeneth to the fool, so it -happeneth even to me; and why was I then more wise? Then I said in my -heart, that this also is vanity. - -2:16 For there is no remembrance of the wise more than of the fool for -ever; seeing that which now is in the days to come shall all be -forgotten. - -And how dieth the wise man? as the fool. - -2:17 Therefore I hated life; because the work that is wrought under -the sun is grievous unto me: for all is vanity and vexation of spirit. - -2:18 Yea, I hated all my labour which I had taken under the sun: -because I should leave it unto the man that shall be after me. - -2:19 And who knoweth whether he shall be a wise man or a fool? yet -shall he have rule over all my labour wherein I have laboured, and -wherein I have shewed myself wise under the sun. This is also vanity. - -2:20 Therefore I went about to cause my heart to despair of all the -labour which I took under the sun. - -2:21 For there is a man whose labour is in wisdom, and in knowledge, -and in equity; yet to a man that hath not laboured therein shall he -leave it for his portion. This also is vanity and a great evil. - -2:22 For what hath man of all his labour, and of the vexation of his -heart, wherein he hath laboured under the sun? 2:23 For all his days -are sorrows, and his travail grief; yea, his heart taketh not rest in -the night. This is also vanity. - -2:24 There is nothing better for a man, than that he should eat and -drink, and that he should make his soul enjoy good in his labour. This -also I saw, that it was from the hand of God. - -2:25 For who can eat, or who else can hasten hereunto, more than I? -2:26 For God giveth to a man that is good in his sight wisdom, and -knowledge, and joy: but to the sinner he giveth travail, to gather and -to heap up, that he may give to him that is good before God. This also -is vanity and vexation of spirit. - -3:1 To every thing there is a season, and a time to every purpose -under the heaven: 3:2 A time to be born, and a time to die; a time to -plant, and a time to pluck up that which is planted; 3:3 A time to -kill, and a time to heal; a time to break down, and a time to build -up; 3:4 A time to weep, and a time to laugh; a time to mourn, and a -time to dance; 3:5 A time to cast away stones, and a time to gather -stones together; a time to embrace, and a time to refrain from -embracing; 3:6 A time to get, and a time to lose; a time to keep, and -a time to cast away; 3:7 A time to rend, and a time to sew; a time to -keep silence, and a time to speak; 3:8 A time to love, and a time to -hate; a time of war, and a time of peace. - -3:9 What profit hath he that worketh in that wherein he laboureth? -3:10 I have seen the travail, which God hath given to the sons of men -to be exercised in it. - -3:11 He hath made every thing beautiful in his time: also he hath set -the world in their heart, so that no man can find out the work that -God maketh from the beginning to the end. - -3:12 I know that there is no good in them, but for a man to rejoice, -and to do good in his life. - -3:13 And also that every man should eat and drink, and enjoy the good -of all his labour, it is the gift of God. - -3:14 I know that, whatsoever God doeth, it shall be for ever: nothing -can be put to it, nor any thing taken from it: and God doeth it, that -men should fear before him. - -3:15 That which hath been is now; and that which is to be hath already -been; and God requireth that which is past. - -3:16 And moreover I saw under the sun the place of judgment, that -wickedness was there; and the place of righteousness, that iniquity -was there. - -3:17 I said in mine heart, God shall judge the righteous and the -wicked: for there is a time there for every purpose and for every -work. - -3:18 I said in mine heart concerning the estate of the sons of men, -that God might manifest them, and that they might see that they -themselves are beasts. - -3:19 For that which befalleth the sons of men befalleth beasts; even -one thing befalleth them: as the one dieth, so dieth the other; yea, -they have all one breath; so that a man hath no preeminence above a -beast: for all is vanity. - -3:20 All go unto one place; all are of the dust, and all turn to dust -again. - -3:21 Who knoweth the spirit of man that goeth upward, and the spirit -of the beast that goeth downward to the earth? 3:22 Wherefore I -perceive that there is nothing better, than that a man should rejoice -in his own works; for that is his portion: for who shall bring him to -see what shall be after him? 4:1 So I returned, and considered all -the oppressions that are done under the sun: and behold the tears of -such as were oppressed, and they had no comforter; and on the side of -their oppressors there was power; but they had no comforter. - -4:2 Wherefore I praised the dead which are already dead more than the -living which are yet alive. - -4:3 Yea, better is he than both they, which hath not yet been, who -hath not seen the evil work that is done under the sun. - -4:4 Again, I considered all travail, and every right work, that for -this a man is envied of his neighbour. This is also vanity and -vexation of spirit. - -4:5 The fool foldeth his hands together, and eateth his own flesh. - -4:6 Better is an handful with quietness, than both the hands full with -travail and vexation of spirit. - -4:7 Then I returned, and I saw vanity under the sun. - -4:8 There is one alone, and there is not a second; yea, he hath -neither child nor brother: yet is there no end of all his labour; -neither is his eye satisfied with riches; neither saith he, For whom -do I labour, and bereave my soul of good? This is also vanity, yea, it -is a sore travail. - -4:9 Two are better than one; because they have a good reward for their -labour. - -4:10 For if they fall, the one will lift up his fellow: but woe to him -that is alone when he falleth; for he hath not another to help him up. - -4:11 Again, if two lie together, then they have heat: but how can one -be warm alone? 4:12 And if one prevail against him, two shall -withstand him; and a threefold cord is not quickly broken. - -4:13 Better is a poor and a wise child than an old and foolish king, -who will no more be admonished. - -4:14 For out of prison he cometh to reign; whereas also he that is -born in his kingdom becometh poor. - -4:15 I considered all the living which walk under the sun, with the -second child that shall stand up in his stead. - -4:16 There is no end of all the people, even of all that have been -before them: they also that come after shall not rejoice in him. -Surely this also is vanity and vexation of spirit. - -5:1 Keep thy foot when thou goest to the house of God, and be more -ready to hear, than to give the sacrifice of fools: for they consider -not that they do evil. - -5:2 Be not rash with thy mouth, and let not thine heart be hasty to -utter any thing before God: for God is in heaven, and thou upon earth: -therefore let thy words be few. - -5:3 For a dream cometh through the multitude of business; and a fool's -voice is known by multitude of words. - -5:4 When thou vowest a vow unto God, defer not to pay it; for he hath -no pleasure in fools: pay that which thou hast vowed. - -5:5 Better is it that thou shouldest not vow, than that thou shouldest -vow and not pay. - -5:6 Suffer not thy mouth to cause thy flesh to sin; neither say thou -before the angel, that it was an error: wherefore should God be angry -at thy voice, and destroy the work of thine hands? 5:7 For in the -multitude of dreams and many words there are also divers vanities: but -fear thou God. - -5:8 If thou seest the oppression of the poor, and violent perverting -of judgment and justice in a province, marvel not at the matter: for -he that is higher than the highest regardeth; and there be higher than -they. - -5:9 Moreover the profit of the earth is for all: the king himself is -served by the field. - -5:10 He that loveth silver shall not be satisfied with silver; nor he -that loveth abundance with increase: this is also vanity. - -5:11 When goods increase, they are increased that eat them: and what -good is there to the owners thereof, saving the beholding of them with -their eyes? 5:12 The sleep of a labouring man is sweet, whether he -eat little or much: but the abundance of the rich will not suffer him -to sleep. - -5:13 There is a sore evil which I have seen under the sun, namely, -riches kept for the owners thereof to their hurt. - -5:14 But those riches perish by evil travail: and he begetteth a son, -and there is nothing in his hand. - -5:15 As he came forth of his mother's womb, naked shall he return to -go as he came, and shall take nothing of his labour, which he may -carry away in his hand. - -5:16 And this also is a sore evil, that in all points as he came, so -shall he go: and what profit hath he that hath laboured for the wind? -5:17 All his days also he eateth in darkness, and he hath much sorrow -and wrath with his sickness. - -5:18 Behold that which I have seen: it is good and comely for one to -eat and to drink, and to enjoy the good of all his labour that he -taketh under the sun all the days of his life, which God giveth him: -for it is his portion. - -5:19 Every man also to whom God hath given riches and wealth, and hath -given him power to eat thereof, and to take his portion, and to -rejoice in his labour; this is the gift of God. - -5:20 For he shall not much remember the days of his life; because God -answereth him in the joy of his heart. - -6:1 There is an evil which I have seen under the sun, and it is common -among men: 6:2 A man to whom God hath given riches, wealth, and -honour, so that he wanteth nothing for his soul of all that he -desireth, yet God giveth him not power to eat thereof, but a stranger -eateth it: this is vanity, and it is an evil disease. - -6:3 If a man beget an hundred children, and live many years, so that -the days of his years be many, and his soul be not filled with good, -and also that he have no burial; I say, that an untimely birth is -better than he. - -6:4 For he cometh in with vanity, and departeth in darkness, and his -name shall be covered with darkness. - -6:5 Moreover he hath not seen the sun, nor known any thing: this hath -more rest than the other. - -6:6 Yea, though he live a thousand years twice told, yet hath he seen -no good: do not all go to one place? 6:7 All the labour of man is for -his mouth, and yet the appetite is not filled. - -6:8 For what hath the wise more than the fool? what hath the poor, -that knoweth to walk before the living? 6:9 Better is the sight of -the eyes than the wandering of the desire: this is also vanity and -vexation of spirit. - -6:10 That which hath been is named already, and it is known that it is -man: neither may he contend with him that is mightier than he. - -6:11 Seeing there be many things that increase vanity, what is man the -better? 6:12 For who knoweth what is good for man in this life, all -the days of his vain life which he spendeth as a shadow? for who can -tell a man what shall be after him under the sun? 7:1 A good name is -better than precious ointment; and the day of death than the day of -one's birth. - -7:2 It is better to go to the house of mourning, than to go to the -house of feasting: for that is the end of all men; and the living will -lay it to his heart. - -7:3 Sorrow is better than laughter: for by the sadness of the -countenance the heart is made better. - -7:4 The heart of the wise is in the house of mourning; but the heart -of fools is in the house of mirth. - -7:5 It is better to hear the rebuke of the wise, than for a man to -hear the song of fools. - -7:6 For as the crackling of thorns under a pot, so is the laughter of -the fool: this also is vanity. - -7:7 Surely oppression maketh a wise man mad; and a gift destroyeth the -heart. - -7:8 Better is the end of a thing than the beginning thereof: and the -patient in spirit is better than the proud in spirit. - -7:9 Be not hasty in thy spirit to be angry: for anger resteth in the -bosom of fools. - -7:10 Say not thou, What is the cause that the former days were better -than these? for thou dost not enquire wisely concerning this. - -7:11 Wisdom is good with an inheritance: and by it there is profit to -them that see the sun. - -7:12 For wisdom is a defence, and money is a defence: but the -excellency of knowledge is, that wisdom giveth life to them that have -it. - -7:13 Consider the work of God: for who can make that straight, which -he hath made crooked? 7:14 In the day of prosperity be joyful, but in -the day of adversity consider: God also hath set the one over against -the other, to the end that man should find nothing after him. - -7:15 All things have I seen in the days of my vanity: there is a just -man that perisheth in his righteousness, and there is a wicked man -that prolongeth his life in his wickedness. - -7:16 Be not righteous over much; neither make thyself over wise: why -shouldest thou destroy thyself ? 7:17 Be not over much wicked, -neither be thou foolish: why shouldest thou die before thy time? 7:18 -It is good that thou shouldest take hold of this; yea, also from this -withdraw not thine hand: for he that feareth God shall come forth of -them all. - -7:19 Wisdom strengtheneth the wise more than ten mighty men which are -in the city. - -7:20 For there is not a just man upon earth, that doeth good, and -sinneth not. - -7:21 Also take no heed unto all words that are spoken; lest thou hear -thy servant curse thee: 7:22 For oftentimes also thine own heart -knoweth that thou thyself likewise hast cursed others. - -7:23 All this have I proved by wisdom: I said, I will be wise; but it -was far from me. - -7:24 That which is far off, and exceeding deep, who can find it out? -7:25 I applied mine heart to know, and to search, and to seek out -wisdom, and the reason of things, and to know the wickedness of folly, -even of foolishness and madness: 7:26 And I find more bitter than -death the woman, whose heart is snares and nets, and her hands as -bands: whoso pleaseth God shall escape from her; but the sinner shall -be taken by her. - -7:27 Behold, this have I found, saith the preacher, counting one by -one, to find out the account: 7:28 Which yet my soul seeketh, but I -find not: one man among a thousand have I found; but a woman among all -those have I not found. - -7:29 Lo, this only have I found, that God hath made man upright; but -they have sought out many inventions. - -8:1 Who is as the wise man? and who knoweth the interpretation of a -thing? a man's wisdom maketh his face to shine, and the boldness of -his face shall be changed. - -8:2 I counsel thee to keep the king's commandment, and that in regard -of the oath of God. - -8:3 Be not hasty to go out of his sight: stand not in an evil thing; -for he doeth whatsoever pleaseth him. - -8:4 Where the word of a king is, there is power: and who may say unto -him, What doest thou? 8:5 Whoso keepeth the commandment shall feel no -evil thing: and a wise man's heart discerneth both time and judgment. - -8:6 Because to every purpose there is time and judgment, therefore the -misery of man is great upon him. - -8:7 For he knoweth not that which shall be: for who can tell him when -it shall be? 8:8 There is no man that hath power over the spirit to -retain the spirit; neither hath he power in the day of death: and -there is no discharge in that war; neither shall wickedness deliver -those that are given to it. - -8:9 All this have I seen, and applied my heart unto every work that is -done under the sun: there is a time wherein one man ruleth over -another to his own hurt. - -8:10 And so I saw the wicked buried, who had come and gone from the -place of the holy, and they were forgotten in the city where they had -so done: this is also vanity. - -8:11 Because sentence against an evil work is not executed speedily, -therefore the heart of the sons of men is fully set in them to do -evil. - -8:12 Though a sinner do evil an hundred times, and his days be -prolonged, yet surely I know that it shall be well with them that fear -God, which fear before him: 8:13 But it shall not be well with the -wicked, neither shall he prolong his days, which are as a shadow; -because he feareth not before God. - -8:14 There is a vanity which is done upon the earth; that there be -just men, unto whom it happeneth according to the work of the wicked; -again, there be wicked men, to whom it happeneth according to the work -of the righteous: I said that this also is vanity. - -8:15 Then I commended mirth, because a man hath no better thing under -the sun, than to eat, and to drink, and to be merry: for that shall -abide with him of his labour the days of his life, which God giveth -him under the sun. - -8:16 When I applied mine heart to know wisdom, and to see the business -that is done upon the earth: (for also there is that neither day nor -night seeth sleep with his eyes:) 8:17 Then I beheld all the work of -God, that a man cannot find out the work that is done under the sun: -because though a man labour to seek it out, yet he shall not find it; -yea farther; though a wise man think to know it, yet shall he not be -able to find it. - -9:1 For all this I considered in my heart even to declare all this, -that the righteous, and the wise, and their works, are in the hand of -God: no man knoweth either love or hatred by all that is before them. - -9:2 All things come alike to all: there is one event to the righteous, -and to the wicked; to the good and to the clean, and to the unclean; -to him that sacrificeth, and to him that sacrificeth not: as is the -good, so is the sinner; and he that sweareth, as he that feareth an -oath. - -9:3 This is an evil among all things that are done under the sun, that -there is one event unto all: yea, also the heart of the sons of men is -full of evil, and madness is in their heart while they live, and after -that they go to the dead. - -9:4 For to him that is joined to all the living there is hope: for a -living dog is better than a dead lion. - -9:5 For the living know that they shall die: but the dead know not any -thing, neither have they any more a reward; for the memory of them is -forgotten. - -9:6 Also their love, and their hatred, and their envy, is now -perished; neither have they any more a portion for ever in any thing -that is done under the sun. - -9:7 Go thy way, eat thy bread with joy, and drink thy wine with a -merry heart; for God now accepteth thy works. - -9:8 Let thy garments be always white; and let thy head lack no -ointment. - -9:9 Live joyfully with the wife whom thou lovest all the days of the -life of thy vanity, which he hath given thee under the sun, all the -days of thy vanity: for that is thy portion in this life, and in thy -labour which thou takest under the sun. - -9:10 Whatsoever thy hand findeth to do, do it with thy might; for -there is no work, nor device, nor knowledge, nor wisdom, in the grave, -whither thou goest. - -9:11 I returned, and saw under the sun, that the race is not to the -swift, nor the battle to the strong, neither yet bread to the wise, -nor yet riches to men of understanding, nor yet favour to men of -skill; but time and chance happeneth to them all. - -9:12 For man also knoweth not his time: as the fishes that are taken -in an evil net, and as the birds that are caught in the snare; so are -the sons of men snared in an evil time, when it falleth suddenly upon -them. - -9:13 This wisdom have I seen also under the sun, and it seemed great -unto me: 9:14 There was a little city, and few men within it; and -there came a great king against it, and besieged it, and built great -bulwarks against it: 9:15 Now there was found in it a poor wise man, -and he by his wisdom delivered the city; yet no man remembered that -same poor man. - -9:16 Then said I, Wisdom is better than strength: nevertheless the -poor man's wisdom is despised, and his words are not heard. - -9:17 The words of wise men are heard in quiet more than the cry of him -that ruleth among fools. - -9:18 Wisdom is better than weapons of war: but one sinner destroyeth -much good. - -10:1 Dead flies cause the ointment of the apothecary to send forth a -stinking savour: so doth a little folly him that is in reputation for -wisdom and honour. - -10:2 A wise man's heart is at his right hand; but a fool's heart at -his left. - -10:3 Yea also, when he that is a fool walketh by the way, his wisdom -faileth him, and he saith to every one that he is a fool. - -10:4 If the spirit of the ruler rise up against thee, leave not thy -place; for yielding pacifieth great offences. - -10:5 There is an evil which I have seen under the sun, as an error -which proceedeth from the ruler: 10:6 Folly is set in great dignity, -and the rich sit in low place. - -10:7 I have seen servants upon horses, and princes walking as servants -upon the earth. - -10:8 He that diggeth a pit shall fall into it; and whoso breaketh an -hedge, a serpent shall bite him. - -10:9 Whoso removeth stones shall be hurt therewith; and he that -cleaveth wood shall be endangered thereby. - -10:10 If the iron be blunt, and he do not whet the edge, then must he -put to more strength: but wisdom is profitable to direct. - -10:11 Surely the serpent will bite without enchantment; and a babbler -is no better. - -10:12 The words of a wise man's mouth are gracious; but the lips of a -fool will swallow up himself. - -10:13 The beginning of the words of his mouth is foolishness: and the -end of his talk is mischievous madness. - -10:14 A fool also is full of words: a man cannot tell what shall be; -and what shall be after him, who can tell him? 10:15 The labour of -the foolish wearieth every one of them, because he knoweth not how to -go to the city. - -10:16 Woe to thee, O land, when thy king is a child, and thy princes -eat in the morning! 10:17 Blessed art thou, O land, when thy king is -the son of nobles, and thy princes eat in due season, for strength, -and not for drunkenness! 10:18 By much slothfulness the building -decayeth; and through idleness of the hands the house droppeth -through. - -10:19 A feast is made for laughter, and wine maketh merry: but money -answereth all things. - -10:20 Curse not the king, no not in thy thought; and curse not the -rich in thy bedchamber: for a bird of the air shall carry the voice, -and that which hath wings shall tell the matter. - -11:1 Cast thy bread upon the waters: for thou shalt find it after many -days. - -11:2 Give a portion to seven, and also to eight; for thou knowest not -what evil shall be upon the earth. - -11:3 If the clouds be full of rain, they empty themselves upon the -earth: and if the tree fall toward the south, or toward the north, in -the place where the tree falleth, there it shall be. - -11:4 He that observeth the wind shall not sow; and he that regardeth -the clouds shall not reap. - -11:5 As thou knowest not what is the way of the spirit, nor how the -bones do grow in the womb of her that is with child: even so thou -knowest not the works of God who maketh all. - -11:6 In the morning sow thy seed, and in the evening withhold not -thine hand: for thou knowest not whether shall prosper, either this or -that, or whether they both shall be alike good. - -11:7 Truly the light is sweet, and a pleasant thing it is for the eyes -to behold the sun: 11:8 But if a man live many years, and rejoice in -them all; yet let him remember the days of darkness; for they shall be -many. All that cometh is vanity. - -11:9 Rejoice, O young man, in thy youth; and let thy heart cheer thee -in the days of thy youth, and walk in the ways of thine heart, and in -the sight of thine eyes: but know thou, that for all these things God -will bring thee into judgment. - -11:10 Therefore remove sorrow from thy heart, and put away evil from -thy flesh: for childhood and youth are vanity. - -12:1 Remember now thy Creator in the days of thy youth, while the evil -days come not, nor the years draw nigh, when thou shalt say, I have no -pleasure in them; 12:2 While the sun, or the light, or the moon, or -the stars, be not darkened, nor the clouds return after the rain: 12:3 -In the day when the keepers of the house shall tremble, and the strong -men shall bow themselves, and the grinders cease because they are few, -and those that look out of the windows be darkened, 12:4 And the doors -shall be shut in the streets, when the sound of the grinding is low, -and he shall rise up at the voice of the bird, and all the daughters -of musick shall be brought low; 12:5 Also when they shall be afraid of -that which is high, and fears shall be in the way, and the almond tree -shall flourish, and the grasshopper shall be a burden, and desire -shall fail: because man goeth to his long home, and the mourners go -about the streets: 12:6 Or ever the silver cord be loosed, or the -golden bowl be broken, or the pitcher be broken at the fountain, or -the wheel broken at the cistern. - -12:7 Then shall the dust return to the earth as it was: and the spirit -shall return unto God who gave it. - -12:8 Vanity of vanities, saith the preacher; all is vanity. - -12:9 And moreover, because the preacher was wise, he still taught the -people knowledge; yea, he gave good heed, and sought out, and set in -order many proverbs. - -12:10 The preacher sought to find out acceptable words: and that which -was written was upright, even words of truth. - -12:11 The words of the wise are as goads, and as nails fastened by the -masters of assemblies, which are given from one shepherd. - -12:12 And further, by these, my son, be admonished: of making many -books there is no end; and much study is a weariness of the flesh. - -12:13 Let us hear the conclusion of the whole matter: Fear God, and -keep his commandments: for this is the whole duty of man. - -12:14 For God shall bring every work into judgment, with every secret -thing, whether it be good, or whether it be evil. - - - - -The Song of Solomon - - -1:1 The song of songs, which is Solomon's. - -1:2 Let him kiss me with the kisses of his mouth: for thy love is -better than wine. - -1:3 Because of the savour of thy good ointments thy name is as -ointment poured forth, therefore do the virgins love thee. - -1:4 Draw me, we will run after thee: the king hath brought me into his -chambers: we will be glad and rejoice in thee, we will remember thy -love more than wine: the upright love thee. - -1:5 I am black, but comely, O ye daughters of Jerusalem, as the tents -of Kedar, as the curtains of Solomon. - -1:6 Look not upon me, because I am black, because the sun hath looked -upon me: my mother's children were angry with me; they made me the -keeper of the vineyards; but mine own vineyard have I not kept. - -1:7 Tell me, O thou whom my soul loveth, where thou feedest, where -thou makest thy flock to rest at noon: for why should I be as one that -turneth aside by the flocks of thy companions? 1:8 If thou know not, -O thou fairest among women, go thy way forth by the footsteps of the -flock, and feed thy kids beside the shepherds' tents. - -1:9 I have compared thee, O my love, to a company of horses in -Pharaoh's chariots. - -1:10 Thy cheeks are comely with rows of jewels, thy neck with chains -of gold. - -1:11 We will make thee borders of gold with studs of silver. - -1:12 While the king sitteth at his table, my spikenard sendeth forth -the smell thereof. - -1:13 A bundle of myrrh is my well-beloved unto me; he shall lie all -night betwixt my breasts. - -1:14 My beloved is unto me as a cluster of camphire in the vineyards -of Engedi. - -1:15 Behold, thou art fair, my love; behold, thou art fair; thou hast -doves' eyes. - -1:16 Behold, thou art fair, my beloved, yea, pleasant: also our bed is -green. - -1:17 The beams of our house are cedar, and our rafters of fir. - -2:1 I am the rose of Sharon, and the lily of the valleys. - -2:2 As the lily among thorns, so is my love among the daughters. - -2:3 As the apple tree among the trees of the wood, so is my beloved -among the sons. I sat down under his shadow with great delight, and -his fruit was sweet to my taste. - -2:4 He brought me to the banqueting house, and his banner over me was -love. - -2:5 Stay me with flagons, comfort me with apples: for I am sick of -love. - -2:6 His left hand is under my head, and his right hand doth embrace -me. - -2:7 I charge you, O ye daughters of Jerusalem, by the roes, and by the -hinds of the field, that ye stir not up, nor awake my love, till he -please. - -2:8 The voice of my beloved! behold, he cometh leaping upon the -mountains, skipping upon the hills. - -2:9 My beloved is like a roe or a young hart: behold, he standeth -behind our wall, he looketh forth at the windows, shewing himself -through the lattice. - -2:10 My beloved spake, and said unto me, Rise up, my love, my fair -one, and come away. - -2:11 For, lo, the winter is past, the rain is over and gone; 2:12 The -flowers appear on the earth; the time of the singing of birds is come, -and the voice of the turtle is heard in our land; 2:13 The fig tree -putteth forth her green figs, and the vines with the tender grape give -a good smell. Arise, my love, my fair one, and come away. - -2:14 O my dove, that art in the clefts of the rock, in the secret -places of the stairs, let me see thy countenance, let me hear thy -voice; for sweet is thy voice, and thy countenance is comely. - -2:15 Take us the foxes, the little foxes, that spoil the vines: for -our vines have tender grapes. - -2:16 My beloved is mine, and I am his: he feedeth among the lilies. - -2:17 Until the day break, and the shadows flee away, turn, my beloved, -and be thou like a roe or a young hart upon the mountains of Bether. - -3:1 By night on my bed I sought him whom my soul loveth: I sought him, -but I found him not. - -3:2 I will rise now, and go about the city in the streets, and in the -broad ways I will seek him whom my soul loveth: I sought him, but I -found him not. - -3:3 The watchmen that go about the city found me: to whom I said, Saw -ye him whom my soul loveth? 3:4 It was but a little that I passed -from them, but I found him whom my soul loveth: I held him, and would -not let him go, until I had brought him into my mother's house, and -into the chamber of her that conceived me. - -3:5 I charge you, O ye daughters of Jerusalem, by the roes, and by the -hinds of the field, that ye stir not up, nor awake my love, till he -please. - -3:6 Who is this that cometh out of the wilderness like pillars of -smoke, perfumed with myrrh and frankincense, with all powders of the -merchant? 3:7 Behold his bed, which is Solomon's; threescore valiant -men are about it, of the valiant of Israel. - -3:8 They all hold swords, being expert in war: every man hath his -sword upon his thigh because of fear in the night. - -3:9 King Solomon made himself a chariot of the wood of Lebanon. - -3:10 He made the pillars thereof of silver, the bottom thereof of -gold, the covering of it of purple, the midst thereof being paved with -love, for the daughters of Jerusalem. - -3:11 Go forth, O ye daughters of Zion, and behold king Solomon with -the crown wherewith his mother crowned him in the day of his -espousals, and in the day of the gladness of his heart. - -4:1 Behold, thou art fair, my love; behold, thou art fair; thou hast -doves' eyes within thy locks: thy hair is as a flock of goats, that -appear from mount Gilead. - -4:2 Thy teeth are like a flock of sheep that are even shorn, which -came up from the washing; whereof every one bear twins, and none is -barren among them. - -4:3 Thy lips are like a thread of scarlet, and thy speech is comely: -thy temples are like a piece of a pomegranate within thy locks. - -4:4 Thy neck is like the tower of David builded for an armoury, -whereon there hang a thousand bucklers, all shields of mighty men. - -4:5 Thy two breasts are like two young roes that are twins, which feed -among the lilies. - -4:6 Until the day break, and the shadows flee away, I will get me to -the mountain of myrrh, and to the hill of frankincense. - -4:7 Thou art all fair, my love; there is no spot in thee. - -4:8 Come with me from Lebanon, my spouse, with me from Lebanon: look -from the top of Amana, from the top of Shenir and Hermon, from the -lions' dens, from the mountains of the leopards. - -4:9 Thou hast ravished my heart, my sister, my spouse; thou hast -ravished my heart with one of thine eyes, with one chain of thy neck. - -4:10 How fair is thy love, my sister, my spouse! how much better is -thy love than wine! and the smell of thine ointments than all spices! -4:11 Thy lips, O my spouse, drop as the honeycomb: honey and milk are -under thy tongue; and the smell of thy garments is like the smell of -Lebanon. - -4:12 A garden inclosed is my sister, my spouse; a spring shut up, a -fountain sealed. - -4:13 Thy plants are an orchard of pomegranates, with pleasant fruits; -camphire, with spikenard, 4:14 Spikenard and saffron; calamus and -cinnamon, with all trees of frankincense; myrrh and aloes, with all -the chief spices: 4:15 A fountain of gardens, a well of living waters, -and streams from Lebanon. - -4:16 Awake, O north wind; and come, thou south; blow upon my garden, -that the spices thereof may flow out. Let my beloved come into his -garden, and eat his pleasant fruits. - -5:1 I am come into my garden, my sister, my spouse: I have gathered my -myrrh with my spice; I have eaten my honeycomb with my honey; I have -drunk my wine with my milk: eat, O friends; drink, yea, drink -abundantly, O beloved. - -5:2 I sleep, but my heart waketh: it is the voice of my beloved that -knocketh, saying, Open to me, my sister, my love, my dove, my -undefiled: for my head is filled with dew, and my locks with the drops -of the night. - -5:3 I have put off my coat; how shall I put it on? I have washed my -feet; how shall I defile them? 5:4 My beloved put in his hand by the -hole of the door, and my bowels were moved for him. - -5:5 I rose up to open to my beloved; and my hands dropped with myrrh, -and my fingers with sweet smelling myrrh, upon the handles of the -lock. - -5:6 I opened to my beloved; but my beloved had withdrawn himself, and -was gone: my soul failed when he spake: I sought him, but I could not -find him; I called him, but he gave me no answer. - -5:7 The watchmen that went about the city found me, they smote me, -they wounded me; the keepers of the walls took away my veil from me. - -5:8 I charge you, O daughters of Jerusalem, if ye find my beloved, -that ye tell him, that I am sick of love. - -5:9 What is thy beloved more than another beloved, O thou fairest -among women? what is thy beloved more than another beloved, that thou -dost so charge us? 5:10 My beloved is white and ruddy, the chiefest -among ten thousand. - -5:11 His head is as the most fine gold, his locks are bushy, and black -as a raven. - -5:12 His eyes are as the eyes of doves by the rivers of waters, washed -with milk, and fitly set. - -5:13 His cheeks are as a bed of spices, as sweet flowers: his lips -like lilies, dropping sweet smelling myrrh. - -5:14 His hands are as gold rings set with the beryl: his belly is as -bright ivory overlaid with sapphires. - -5:15 His legs are as pillars of marble, set upon sockets of fine gold: -his countenance is as Lebanon, excellent as the cedars. - -5:16 His mouth is most sweet: yea, he is altogether lovely. This is my -beloved, and this is my friend, O daughters of Jerusalem. - -6:1 Whither is thy beloved gone, O thou fairest among women? whither -is thy beloved turned aside? that we may seek him with thee. - -6:2 My beloved is gone down into his garden, to the beds of spices, to -feed in the gardens, and to gather lilies. - -6:3 I am my beloved's, and my beloved is mine: he feedeth among the -lilies. - -6:4 Thou art beautiful, O my love, as Tirzah, comely as Jerusalem, -terrible as an army with banners. - -6:5 Turn away thine eyes from me, for they have overcome me: thy hair -is as a flock of goats that appear from Gilead. - -6:6 Thy teeth are as a flock of sheep which go up from the washing, -whereof every one beareth twins, and there is not one barren among -them. - -6:7 As a piece of a pomegranate are thy temples within thy locks. - -6:8 There are threescore queens, and fourscore concubines, and virgins -without number. - -6:9 My dove, my undefiled is but one; she is the only one of her -mother, she is the choice one of her that bare her. The daughters saw -her, and blessed her; yea, the queens and the concubines, and they -praised her. - -6:10 Who is she that looketh forth as the morning, fair as the moon, -clear as the sun, and terrible as an army with banners? 6:11 I went -down into the garden of nuts to see the fruits of the valley, and to -see whether the vine flourished and the pomegranates budded. - -6:12 Or ever I was aware, my soul made me like the chariots of -Amminadib. - -6:13 Return, return, O Shulamite; return, return, that we may look -upon thee. What will ye see in the Shulamite? As it were the company -of two armies. - -7:1 How beautiful are thy feet with shoes, O prince's daughter! the -joints of thy thighs are like jewels, the work of the hands of a -cunning workman. - -7:2 Thy navel is like a round goblet, which wanteth not liquor: thy -belly is like an heap of wheat set about with lilies. - -7:3 Thy two breasts are like two young roes that are twins. - -7:4 Thy neck is as a tower of ivory; thine eyes like the fishpools in -Heshbon, by the gate of Bathrabbim: thy nose is as the tower of -Lebanon which looketh toward Damascus. - -7:5 Thine head upon thee is like Carmel, and the hair of thine head -like purple; the king is held in the galleries. - -7:6 How fair and how pleasant art thou, O love, for delights! 7:7 -This thy stature is like to a palm tree, and thy breasts to clusters -of grapes. - -7:8 I said, I will go up to the palm tree, I will take hold of the -boughs thereof: now also thy breasts shall be as clusters of the vine, -and the smell of thy nose like apples; 7:9 And the roof of thy mouth -like the best wine for my beloved, that goeth down sweetly, causing -the lips of those that are asleep to speak. - -7:10 I am my beloved's, and his desire is toward me. - -7:11 Come, my beloved, let us go forth into the field; let us lodge in -the villages. - -7:12 Let us get up early to the vineyards; let us see if the vine -flourish, whether the tender grape appear, and the pomegranates bud -forth: there will I give thee my loves. - -7:13 The mandrakes give a smell, and at our gates are all manner of -pleasant fruits, new and old, which I have laid up for thee, O my -beloved. - -8:1 O that thou wert as my brother, that sucked the breasts of my -mother! when I should find thee without, I would kiss thee; yea, I -should not be despised. - -8:2 I would lead thee, and bring thee into my mother's house, who -would instruct me: I would cause thee to drink of spiced wine of the -juice of my pomegranate. - -8:3 His left hand should be under my head, and his right hand should -embrace me. - -8:4 I charge you, O daughters of Jerusalem, that ye stir not up, nor -awake my love, until he please. - -8:5 Who is this that cometh up from the wilderness, leaning upon her -beloved? I raised thee up under the apple tree: there thy mother -brought thee forth: there she brought thee forth that bare thee. - -8:6 Set me as a seal upon thine heart, as a seal upon thine arm: for -love is strong as death; jealousy is cruel as the grave: the coals -thereof are coals of fire, which hath a most vehement flame. - -8:7 Many waters cannot quench love, neither can the floods drown it: -if a man would give all the substance of his house for love, it would -utterly be contemned. - -8:8 We have a little sister, and she hath no breasts: what shall we do -for our sister in the day when she shall be spoken for? 8:9 If she be -a wall, we will build upon her a palace of silver: and if she be a -door, we will inclose her with boards of cedar. - -8:10 I am a wall, and my breasts like towers: then was I in his eyes -as one that found favour. - -8:11 Solomon had a vineyard at Baalhamon; he let out the vineyard unto -keepers; every one for the fruit thereof was to bring a thousand -pieces of silver. - -8:12 My vineyard, which is mine, is before me: thou, O Solomon, must -have a thousand, and those that keep the fruit thereof two hundred. - -8:13 Thou that dwellest in the gardens, the companions hearken to thy -voice: cause me to hear it. - -8:14 Make haste, my beloved, and be thou like to a roe or to a young -hart upon the mountains of spices. - - - - -The Book of the Prophet Isaiah - - -1:1 The vision of Isaiah the son of Amoz, which he saw concerning -Judah and Jerusalem in the days of Uzziah, Jotham, Ahaz, and Hezekiah, -kings of Judah. - -1:2 Hear, O heavens, and give ear, O earth: for the LORD hath spoken, -I have nourished and brought up children, and they have rebelled -against me. - -1:3 The ox knoweth his owner, and the ass his master's crib: but -Israel doth not know, my people doth not consider. - -1:4 Ah sinful nation, a people laden with iniquity, a seed of -evildoers, children that are corrupters: they have forsaken the LORD, -they have provoked the Holy One of Israel unto anger, they are gone -away backward. - -1:5 Why should ye be stricken any more? ye will revolt more and more: -the whole head is sick, and the whole heart faint. - -1:6 From the sole of the foot even unto the head there is no soundness -in it; but wounds, and bruises, and putrifying sores: they have not -been closed, neither bound up, neither mollified with ointment. - -1:7 Your country is desolate, your cities are burned with fire: your -land, strangers devour it in your presence, and it is desolate, as -overthrown by strangers. - -1:8 And the daughter of Zion is left as a cottage in a vineyard, as a -lodge in a garden of cucumbers, as a besieged city. - -1:9 Except the LORD of hosts had left unto us a very small remnant, we -should have been as Sodom, and we should have been like unto Gomorrah. - -1:10 Hear the word of the LORD, ye rulers of Sodom; give ear unto the -law of our God, ye people of Gomorrah. - -1:11 To what purpose is the multitude of your sacrifices unto me? -saith the LORD: I am full of the burnt offerings of rams, and the fat -of fed beasts; and I delight not in the blood of bullocks, or of -lambs, or of he goats. - -1:12 When ye come to appear before me, who hath required this at your -hand, to tread my courts? 1:13 Bring no more vain oblations; incense -is an abomination unto me; the new moons and sabbaths, the calling of -assemblies, I cannot away with; it is iniquity, even the solemn -meeting. - -1:14 Your new moons and your appointed feasts my soul hateth: they are -a trouble unto me; I am weary to bear them. - -1:15 And when ye spread forth your hands, I will hide mine eyes from -you: yea, when ye make many prayers, I will not hear: your hands are -full of blood. - -1:16 Wash you, make you clean; put away the evil of your doings from -before mine eyes; cease to do evil; 1:17 Learn to do well; seek -judgment, relieve the oppressed, judge the fatherless, plead for the -widow. - -1:18 Come now, and let us reason together, saith the LORD: though your -sins be as scarlet, they shall be as white as snow; though they be red -like crimson, they shall be as wool. - -1:19 If ye be willing and obedient, ye shall eat the good of the land: -1:20 But if ye refuse and rebel, ye shall be devoured with the sword: -for the mouth of the LORD hath spoken it. - -1:21 How is the faithful city become an harlot! it was full of -judgment; righteousness lodged in it; but now murderers. - -1:22 Thy silver is become dross, thy wine mixed with water: 1:23 Thy -princes are rebellious, and companions of thieves: every one loveth -gifts, and followeth after rewards: they judge not the fatherless, -neither doth the cause of the widow come unto them. - -1:24 Therefore saith the LORD, the LORD of hosts, the mighty One of -Israel, Ah, I will ease me of mine adversaries, and avenge me of mine -enemies: 1:25 And I will turn my hand upon thee, and purely purge away -thy dross, and take away all thy tin: 1:26 And I will restore thy -judges as at the first, and thy counsellors as at the beginning: -afterward thou shalt be called, The city of righteousness, the -faithful city. - -1:27 Zion shall be redeemed with judgment, and her converts with -righteousness. - -1:28 And the destruction of the transgressors and of the sinners shall -be together, and they that forsake the LORD shall be consumed. - -1:29 For they shall be ashamed of the oaks which ye have desired, and -ye shall be confounded for the gardens that ye have chosen. - -1:30 For ye shall be as an oak whose leaf fadeth, and as a garden that -hath no water. - -1:31 And the strong shall be as tow, and the maker of it as a spark, -and they shall both burn together, and none shall quench them. - -2:1 The word that Isaiah the son of Amoz saw concerning Judah and -Jerusalem. - -2:2 And it shall come to pass in the last days, that the mountain of -the LORD's house shall be established in the top of the mountains, and -shall be exalted above the hills; and all nations shall flow unto it. - -2:3 And many people shall go and say, Come ye, and let us go up to the -mountain of the LORD, to the house of the God of Jacob; and he will -teach us of his ways, and we will walk in his paths: for out of Zion -shall go forth the law, and the word of the LORD from Jerusalem. - -2:4 And he shall judge among the nations, and shall rebuke many -people: and they shall beat their swords into plowshares, and their -spears into pruninghooks: nation shall not lift up sword against -nation, neither shall they learn war any more. - -2:5 O house of Jacob, come ye, and let us walk in the light of the -LORD. - -2:6 Therefore thou hast forsaken thy people the house of Jacob, -because they be replenished from the east, and are soothsayers like -the Philistines, and they please themselves in the children of -strangers. - -2:7 Their land also is full of silver and gold, neither is there any -end of their treasures; their land is also full of horses, neither is -there any end of their chariots: 2:8 Their land also is full of idols; -they worship the work of their own hands, that which their own fingers -have made: 2:9 And the mean man boweth down, and the great man -humbleth himself: therefore forgive them not. - -2:10 Enter into the rock, and hide thee in the dust, for fear of the -LORD, and for the glory of his majesty. - -2:11 The lofty looks of man shall be humbled, and the haughtiness of -men shall be bowed down, and the LORD alone shall be exalted in that -day. - -2:12 For the day of the LORD of hosts shall be upon every one that is -proud and lofty, and upon every one that is lifted up; and he shall be -brought low: 2:13 And upon all the cedars of Lebanon, that are high -and lifted up, and upon all the oaks of Bashan, 2:14 And upon all the -high mountains, and upon all the hills that are lifted up, 2:15 And -upon every high tower, and upon every fenced wall, 2:16 And upon all -the ships of Tarshish, and upon all pleasant pictures. - -2:17 And the loftiness of man shall be bowed down, and the haughtiness -of men shall be made low: and the LORD alone shall be exalted in that -day. - -2:18 And the idols he shall utterly abolish. - -2:19 And they shall go into the holes of the rocks, and into the caves -of the earth, for fear of the LORD, and for the glory of his majesty, -when he ariseth to shake terribly the earth. - -2:20 In that day a man shall cast his idols of silver, and his idols -of gold, which they made each one for himself to worship, to the moles -and to the bats; 2:21 To go into the clefts of the rocks, and into the -tops of the ragged rocks, for fear of the LORD, and for the glory of -his majesty, when he ariseth to shake terribly the earth. - -2:22 Cease ye from man, whose breath is in his nostrils: for wherein -is he to be accounted of ? 3:1 For, behold, the Lord, the LORD of -hosts, doth take away from Jerusalem and from Judah the stay and the -staff, the whole stay of bread, and the whole stay of water. - -3:2 The mighty man, and the man of war, the judge, and the prophet, -and the prudent, and the ancient, 3:3 The captain of fifty, and the -honourable man, and the counsellor, and the cunning artificer, and the -eloquent orator. - -3:4 And I will give children to be their princes, and babes shall rule -over them. - -3:5 And the people shall be oppressed, every one by another, and every -one by his neighbour: the child shall behave himself proudly against -the ancient, and the base against the honourable. - -3:6 When a man shall take hold of his brother of the house of his -father, saying, Thou hast clothing, be thou our ruler, and let this -ruin be under thy hand: 3:7 In that day shall he swear, saying, I will -not be an healer; for in my house is neither bread nor clothing: make -me not a ruler of the people. - -3:8 For Jerusalem is ruined, and Judah is fallen: because their tongue -and their doings are against the LORD, to provoke the eyes of his -glory. - -3:9 The shew of their countenance doth witness against them; and they -declare their sin as Sodom, they hide it not. Woe unto their soul! for -they have rewarded evil unto themselves. - -3:10 Say ye to the righteous, that it shall be well with him: for they -shall eat the fruit of their doings. - -3:11 Woe unto the wicked! it shall be ill with him: for the reward of -his hands shall be given him. - -3:12 As for my people, children are their oppressors, and women rule -over them. O my people, they which lead thee cause thee to err, and -destroy the way of thy paths. - -3:13 The LORD standeth up to plead, and standeth to judge the people. - -3:14 The LORD will enter into judgment with the ancients of his -people, and the princes thereof: for ye have eaten up the vineyard; -the spoil of the poor is in your houses. - -3:15 What mean ye that ye beat my people to pieces, and grind the -faces of the poor? saith the Lord GOD of hosts. - -3:16 Moreover the LORD saith, Because the daughters of Zion are -haughty, and walk with stretched forth necks and wanton eyes, walking -and mincing as they go, and making a tinkling with their feet: 3:17 -Therefore the LORD will smite with a scab the crown of the head of the -daughters of Zion, and the LORD will discover their secret parts. - -3:18 In that day the Lord will take away the bravery of their tinkling -ornaments about their feet, and their cauls, and their round tires -like the moon, 3:19 The chains, and the bracelets, and the mufflers, -3:20 The bonnets, and the ornaments of the legs, and the headbands, -and the tablets, and the earrings, 3:21 The rings, and nose jewels, -3:22 The changeable suits of apparel, and the mantles, and the -wimples, and the crisping pins, 3:23 The glasses, and the fine linen, -and the hoods, and the vails. - -3:24 And it shall come to pass, that instead of sweet smell there -shall be stink; and instead of a girdle a rent; and instead of well -set hair baldness; and instead of a stomacher a girding of sackcloth; -and burning instead of beauty. - -3:25 Thy men shall fall by the sword, and thy mighty in the war. - -3:26 And her gates shall lament and mourn; and she being desolate -shall sit upon the ground. - -4:1 And in that day seven women shall take hold of one man, saying, We -will eat our own bread, and wear our own apparel: only let us be -called by thy name, to take away our reproach. - -4:2 In that day shall the branch of the LORD be beautiful and -glorious, and the fruit of the earth shall be excellent and comely for -them that are escaped of Israel. - -4:3 And it shall come to pass, that he that is left in Zion, and he -that remaineth in Jerusalem, shall be called holy, even every one that -is written among the living in Jerusalem: 4:4 When the Lord shall have -washed away the filth of the daughters of Zion, and shall have purged -the blood of Jerusalem from the midst thereof by the spirit of -judgment, and by the spirit of burning. - -4:5 And the LORD will create upon every dwelling place of mount Zion, -and upon her assemblies, a cloud and smoke by day, and the shining of -a flaming fire by night: for upon all the glory shall be a defence. - -4:6 And there shall be a tabernacle for a shadow in the day time from -the heat, and for a place of refuge, and for a covert from storm and -from rain. - -5:1 Now will I sing to my wellbeloved a song of my beloved touching -his vineyard. My wellbeloved hath a vineyard in a very fruitful hill: -5:2 And he fenced it, and gathered out the stones thereof, and planted -it with the choicest vine, and built a tower in the midst of it, and -also made a winepress therein: and he looked that it should bring -forth grapes, and it brought forth wild grapes. - -5:3 And now, O inhabitants of Jerusalem, and men of Judah, judge, I -pray you, betwixt me and my vineyard. - -5:4 What could have been done more to my vineyard, that I have not -done in it? wherefore, when I looked that it should bring forth -grapes, brought it forth wild grapes? 5:5 And now go to; I will tell -you what I will do to my vineyard: I will take away the hedge thereof, -and it shall be eaten up; and break down the wall thereof, and it -shall be trodden down: 5:6 And I will lay it waste: it shall not be -pruned, nor digged; but there shall come up briers and thorns: I will -also command the clouds that they rain no rain upon it. - -5:7 For the vineyard of the LORD of hosts is the house of Israel, and -the men of Judah his pleasant plant: and he looked for judgment, but -behold oppression; for righteousness, but behold a cry. - -5:8 Woe unto them that join house to house, that lay field to field, -till there be no place, that they may be placed alone in the midst of -the earth! 5:9 In mine ears said the LORD of hosts, Of a truth many -houses shall be desolate, even great and fair, without inhabitant. - -5:10 Yea, ten acres of vineyard shall yield one bath, and the seed of -an homer shall yield an ephah. - -5:11 Woe unto them that rise up early in the morning, that they may -follow strong drink; that continue until night, till wine inflame -them! 5:12 And the harp, and the viol, the tabret, and pipe, and -wine, are in their feasts: but they regard not the work of the LORD, -neither consider the operation of his hands. - -5:13 Therefore my people are gone into captivity, because they have no -knowledge: and their honourable men are famished, and their multitude -dried up with thirst. - -5:14 Therefore hell hath enlarged herself, and opened her mouth -without measure: and their glory, and their multitude, and their pomp, -and he that rejoiceth, shall descend into it. - -5:15 And the mean man shall be brought down, and the mighty man shall -be humbled, and the eyes of the lofty shall be humbled: 5:16 But the -LORD of hosts shall be exalted in judgment, and God that is holy shall -be sanctified in righteousness. - -5:17 Then shall the lambs feed after their manner, and the waste -places of the fat ones shall strangers eat. - -5:18 Woe unto them that draw iniquity with cords of vanity, and sin as -it were with a cart rope: 5:19 That say, Let him make speed, and -hasten his work, that we may see it: and let the counsel of the Holy -One of Israel draw nigh and come, that we may know it! 5:20 Woe unto -them that call evil good, and good evil; that put darkness for light, -and light for darkness; that put bitter for sweet, and sweet for -bitter! 5:21 Woe unto them that are wise in their own eyes, and -prudent in their own sight! 5:22 Woe unto them that are mighty to -drink wine, and men of strength to mingle strong drink: 5:23 Which -justify the wicked for reward, and take away the righteousness of the -righteous from him! 5:24 Therefore as the fire devoureth the stubble, -and the flame consumeth the chaff, so their root shall be as -rottenness, and their blossom shall go up as dust: because they have -cast away the law of the LORD of hosts, and despised the word of the -Holy One of Israel. - -5:25 Therefore is the anger of the LORD kindled against his people, -and he hath stretched forth his hand against them, and hath smitten -them: and the hills did tremble, and their carcases were torn in the -midst of the streets. - -For all this his anger is not turned away, but his hand is stretched -out still. - -5:26 And he will lift up an ensign to the nations from far, and will -hiss unto them from the end of the earth: and, behold, they shall come -with speed swiftly: 5:27 None shall be weary nor stumble among them; -none shall slumber nor sleep; neither shall the girdle of their loins -be loosed, nor the latchet of their shoes be broken: 5:28 Whose arrows -are sharp, and all their bows bent, their horses' hoofs shall be -counted like flint, and their wheels like a whirlwind: 5:29 Their -roaring shall be like a lion, they shall roar like young lions: yea, -they shall roar, and lay hold of the prey, and shall carry it away -safe, and none shall deliver it. - -5:30 And in that day they shall roar against them like the roaring of -the sea: and if one look unto the land, behold darkness and sorrow, -and the light is darkened in the heavens thereof. - -6:1 In the year that king Uzziah died I saw also the LORD sitting upon -a throne, high and lifted up, and his train filled the temple. - -6:2 Above it stood the seraphims: each one had six wings; with twain -he covered his face, and with twain he covered his feet, and with -twain he did fly. - -6:3 And one cried unto another, and said, Holy, holy, holy, is the -LORD of hosts: the whole earth is full of his glory. - -6:4 And the posts of the door moved at the voice of him that cried, -and the house was filled with smoke. - -6:5 Then said I, Woe is me! for I am undone; because I am a man of -unclean lips, and I dwell in the midst of a people of unclean lips: -for mine eyes have seen the King, the LORD of hosts. - -6:6 Then flew one of the seraphims unto me, having a live coal in his -hand, which he had taken with the tongs from off the altar: 6:7 And he -laid it upon my mouth, and said, Lo, this hath touched thy lips; and -thine iniquity is taken away, and thy sin purged. - -6:8 Also I heard the voice of the Lord, saying, Whom shall I send, and -who will go for us? Then said I, Here am I; send me. - -6:9 And he said, Go, and tell this people, Hear ye indeed, but -understand not; and see ye indeed, but perceive not. - -6:10 Make the heart of this people fat, and make their ears heavy, and -shut their eyes; lest they see with their eyes, and hear with their -ears, and understand with their heart, and convert, and be healed. - -6:11 Then said I, Lord, how long? And he answered, Until the cities be -wasted without inhabitant, and the houses without man, and the land be -utterly desolate, 6:12 And the LORD have removed men far away, and -there be a great forsaking in the midst of the land. - -6:13 But yet in it shall be a tenth, and it shall return, and shall be -eaten: as a teil tree, and as an oak, whose substance is in them, when -they cast their leaves: so the holy seed shall be the substance -thereof. - -7:1 And it came to pass in the days of Ahaz the son of Jotham, the son -of Uzziah, king of Judah, that Rezin the king of Syria, and Pekah the -son of Remaliah, king of Israel, went up toward Jerusalem to war -against it, but could not prevail against it. - -7:2 And it was told the house of David, saying, Syria is confederate -with Ephraim. And his heart was moved, and the heart of his people, as -the trees of the wood are moved with the wind. - -7:3 Then said the LORD unto Isaiah, Go forth now to meet Ahaz, thou, -and Shearjashub thy son, at the end of the conduit of the upper pool -in the highway of the fuller's field; 7:4 And say unto him, Take heed, -and be quiet; fear not, neither be fainthearted for the two tails of -these smoking firebrands, for the fierce anger of Rezin with Syria, -and of the son of Remaliah. - -7:5 Because Syria, Ephraim, and the son of Remaliah, have taken evil -counsel against thee, saying, 7:6 Let us go up against Judah, and vex -it, and let us make a breach therein for us, and set a king in the -midst of it, even the son of Tabeal: 7:7 Thus saith the Lord GOD, It -shall not stand, neither shall it come to pass. - -7:8 For the head of Syria is Damascus, and the head of Damascus is -Rezin; and within threescore and five years shall Ephraim be broken, -that it be not a people. - -7:9 And the head of Ephraim is Samaria, and the head of Samaria is -Remaliah's son. If ye will not believe, surely ye shall not be -established. - -7:10 Moreover the LORD spake again unto Ahaz, saying, 7:11 Ask thee a -sign of the LORD thy God; ask it either in the depth, or in the height -above. - -7:12 But Ahaz said, I will not ask, neither will I tempt the LORD. - -7:13 And he said, Hear ye now, O house of David; Is it a small thing -for you to weary men, but will ye weary my God also? 7:14 Therefore -the Lord himself shall give you a sign; Behold, a virgin shall -conceive, and bear a son, and shall call his name Immanuel. - -7:15 Butter and honey shall he eat, that he may know to refuse the -evil, and choose the good. - -7:16 For before the child shall know to refuse the evil, and choose -the good, the land that thou abhorrest shall be forsaken of both her -kings. - -7:17 The LORD shall bring upon thee, and upon thy people, and upon thy -father's house, days that have not come, from the day that Ephraim -departed from Judah; even the king of Assyria. - -7:18 And it shall come to pass in that day, that the LORD shall hiss -for the fly that is in the uttermost part of the rivers of Egypt, and -for the bee that is in the land of Assyria. - -7:19 And they shall come, and shall rest all of them in the desolate -valleys, and in the holes of the rocks, and upon all thorns, and upon -all bushes. - -7:20 In the same day shall the Lord shave with a razor that is hired, -namely, by them beyond the river, by the king of Assyria, the head, -and the hair of the feet: and it shall also consume the beard. - -7:21 And it shall come to pass in that day, that a man shall nourish a -young cow, and two sheep; 7:22 And it shall come to pass, for the -abundance of milk that they shall give he shall eat butter: for butter -and honey shall every one eat that is left in the land. - -7:23 And it shall come to pass in that day, that every place shall be, -where there were a thousand vines at a thousand silverlings, it shall -even be for briers and thorns. - -7:24 With arrows and with bows shall men come thither; because all the -land shall become briers and thorns. - -7:25 And on all hills that shall be digged with the mattock, there -shall not come thither the fear of briers and thorns: but it shall be -for the sending forth of oxen, and for the treading of lesser cattle. - -8:1 Moreover the LORD said unto me, Take thee a great roll, and write -in it with a man's pen concerning Mahershalalhashbaz. - -8:2 And I took unto me faithful witnesses to record, Uriah the priest, -and Zechariah the son of Jeberechiah. - -8:3 And I went unto the prophetess; and she conceived, and bare a son. - -Then said the LORD to me, Call his name Mahershalalhashbaz. - -8:4 For before the child shall have knowledge to cry, My father, and -my mother, the riches of Damascus and the spoil of Samaria shall be -taken away before the king of Assyria. - -8:5 The LORD spake also unto me again, saying, 8:6 Forasmuch as this -people refuseth the waters of Shiloah that go softly, and rejoice in -Rezin and Remaliah's son; 8:7 Now therefore, behold, the Lord bringeth -up upon them the waters of the river, strong and many, even the king -of Assyria, and all his glory: and he shall come up over all his -channels, and go over all his banks: 8:8 And he shall pass through -Judah; he shall overflow and go over, he shall reach even to the neck; -and the stretching out of his wings shall fill the breadth of thy -land, O Immanuel. - -8:9 Associate yourselves, O ye people, and ye shall be broken in -pieces; and give ear, all ye of far countries: gird yourselves, and ye -shall be broken in pieces; gird yourselves, and ye shall be broken in -pieces. - -8:10 Take counsel together, and it shall come to nought; speak the -word, and it shall not stand: for God is with us. - -8:11 For the LORD spake thus to me with a strong hand, and instructed -me that I should not walk in the way of this people, saying, 8:12 Say -ye not, A confederacy, to all them to whom this people shall say, A -confederacy; neither fear ye their fear, nor be afraid. - -8:13 Sanctify the LORD of hosts himself; and let him be your fear, and -let him be your dread. - -8:14 And he shall be for a sanctuary; but for a stone of stumbling and -for a rock of offence to both the houses of Israel, for a gin and for -a snare to the inhabitants of Jerusalem. - -8:15 And many among them shall stumble, and fall, and be broken, and -be snared, and be taken. - -8:16 Bind up the testimony, seal the law among my disciples. - -8:17 And I will wait upon the LORD, that hideth his face from the -house of Jacob, and I will look for him. - -8:18 Behold, I and the children whom the LORD hath given me are for -signs and for wonders in Israel from the LORD of hosts, which dwelleth -in mount Zion. - -8:19 And when they shall say unto you, Seek unto them that have -familiar spirits, and unto wizards that peep, and that mutter: should -not a people seek unto their God? for the living to the dead? 8:20 To -the law and to the testimony: if they speak not according to this -word, it is because there is no light in them. - -8:21 And they shall pass through it, hardly bestead and hungry: and it -shall come to pass, that when they shall be hungry, they shall fret -themselves, and curse their king and their God, and look upward. - -8:22 And they shall look unto the earth; and behold trouble and -darkness, dimness of anguish; and they shall be driven to darkness. - -9:1 Nevertheless the dimness shall not be such as was in her vexation, -when at the first he lightly afflicted the land of Zebulun and the -land of Naphtali, and afterward did more grievously afflict her by the -way of the sea, beyond Jordan, in Galilee of the nations. - -9:2 The people that walked in darkness have seen a great light: they -that dwell in the land of the shadow of death, upon them hath the -light shined. - -9:3 Thou hast multiplied the nation, and not increased the joy: they -joy before thee according to the joy in harvest, and as men rejoice -when they divide the spoil. - -9:4 For thou hast broken the yoke of his burden, and the staff of his -shoulder, the rod of his oppressor, as in the day of Midian. - -9:5 For every battle of the warrior is with confused noise, and -garments rolled in blood; but this shall be with burning and fuel of -fire. - -9:6 For unto us a child is born, unto us a son is given: and the -government shall be upon his shoulder: and his name shall be called -Wonderful, Counsellor, The mighty God, The everlasting Father, The -Prince of Peace. - -9:7 Of the increase of his government and peace there shall be no end, -upon the throne of David, and upon his kingdom, to order it, and to -establish it with judgment and with justice from henceforth even for -ever. The zeal of the LORD of hosts will perform this. - -9:8 The Lord sent a word into Jacob, and it hath lighted upon Israel. - -9:9 And all the people shall know, even Ephraim and the inhabitant of -Samaria, that say in the pride and stoutness of heart, 9:10 The bricks -are fallen down, but we will build with hewn stones: the sycomores are -cut down, but we will change them into cedars. - -9:11 Therefore the LORD shall set up the adversaries of Rezin against -him, and join his enemies together; 9:12 The Syrians before, and the -Philistines behind; and they shall devour Israel with open mouth. For -all this his anger is not turned away, but his hand is stretched out -still. - -9:13 For the people turneth not unto him that smiteth them, neither do -they seek the LORD of hosts. - -9:14 Therefore the LORD will cut off from Israel head and tail, branch -and rush, in one day. - -9:15 The ancient and honourable, he is the head; and the prophet that -teacheth lies, he is the tail. - -9:16 For the leaders of this people cause them to err; and they that -are led of them are destroyed. - -9:17 Therefore the LORD shall have no joy in their young men, neither -shall have mercy on their fatherless and widows: for every one is an -hypocrite and an evildoer, and every mouth speaketh folly. For all -this his anger is not turned away, but his hand is stretched out -still. - -9:18 For wickedness burneth as the fire: it shall devour the briers -and thorns, and shall kindle in the thickets of the forest, and they -shall mount up like the lifting up of smoke. - -9:19 Through the wrath of the LORD of hosts is the land darkened, and -the people shall be as the fuel of the fire: no man shall spare his -brother. - -9:20 And he shall snatch on the right hand, and be hungry; and he -shall eat on the left hand, and they shall not be satisfied: they -shall eat every man the flesh of his own arm: 9:21 Manasseh, Ephraim; -and Ephraim, Manasseh: and they together shall be against Judah. For -all this his anger is not turned away, but his hand is stretched out -still. - -10:1 Woe unto them that decree unrighteous decrees, and that write -grievousness which they have prescribed; 10:2 To turn aside the needy -from judgment, and to take away the right from the poor of my people, -that widows may be their prey, and that they may rob the fatherless! -10:3 And what will ye do in the day of visitation, and in the -desolation which shall come from far? to whom will ye flee for help? -and where will ye leave your glory? 10:4 Without me they shall bow -down under the prisoners, and they shall fall under the slain. For all -this his anger is not turned away, but his hand is stretched out -still. - -10:5 O Assyrian, the rod of mine anger, and the staff in their hand is -mine indignation. - -10:6 I will send him against an hypocritical nation, and against the -people of my wrath will I give him a charge, to take the spoil, and to -take the prey, and to tread them down like the mire of the streets. - -10:7 Howbeit he meaneth not so, neither doth his heart think so; but -it is in his heart to destroy and cut off nations not a few. - -10:8 For he saith, Are not my princes altogether kings? 10:9 Is not -Calno as Carchemish? is not Hamath as Arpad? is not Samaria as -Damascus? 10:10 As my hand hath found the kingdoms of the idols, and -whose graven images did excel them of Jerusalem and of Samaria; 10:11 -Shall I not, as I have done unto Samaria and her idols, so do to -Jerusalem and her idols? 10:12 Wherefore it shall come to pass, that -when the Lord hath performed his whole work upon mount Zion and on -Jerusalem, I will punish the fruit of the stout heart of the king of -Assyria, and the glory of his high looks. - -10:13 For he saith, By the strength of my hand I have done it, and by -my wisdom; for I am prudent: and I have removed the bounds of the -people, and have robbed their treasures, and I have put down the -inhabitants like a valiant man: 10:14 And my hand hath found as a nest -the riches of the people: and as one gathereth eggs that are left, -have I gathered all the earth; and there was none that moved the wing, -or opened the mouth, or peeped. - -10:15 Shall the axe boast itself against him that heweth therewith? or -shall the saw magnify itself against him that shaketh it? as if the -rod should shake itself against them that lift it up, or as if the -staff should lift up itself, as if it were no wood. - -10:16 Therefore shall the Lord, the Lord of hosts, send among his fat -ones leanness; and under his glory he shall kindle a burning like the -burning of a fire. - -10:17 And the light of Israel shall be for a fire, and his Holy One -for a flame: and it shall burn and devour his thorns and his briers in -one day; 10:18 And shall consume the glory of his forest, and of his -fruitful field, both soul and body: and they shall be as when a -standard-bearer fainteth. - -10:19 And the rest of the trees of his forest shall be few, that a -child may write them. - -10:20 And it shall come to pass in that day, that the remnant of -Israel, and such as are escaped of the house of Jacob, shall no more -again stay upon him that smote them; but shall stay upon the LORD, the -Holy One of Israel, in truth. - -10:21 The remnant shall return, even the remnant of Jacob, unto the -mighty God. - -10:22 For though thy people Israel be as the sand of the sea, yet a -remnant of them shall return: the consumption decreed shall overflow -with righteousness. - -10:23 For the Lord GOD of hosts shall make a consumption, even -determined, in the midst of all the land. - -10:24 Therefore thus saith the Lord GOD of hosts, O my people that -dwellest in Zion, be not afraid of the Assyrian: he shall smite thee -with a rod, and shall lift up his staff against thee, after the manner -of Egypt. - -10:25 For yet a very little while, and the indignation shall cease, -and mine anger in their destruction. - -10:26 And the LORD of hosts shall stir up a scourge for him according -to the slaughter of Midian at the rock of Oreb: and as his rod was -upon the sea, so shall he lift it up after the manner of Egypt. - -10:27 And it shall come to pass in that day, that his burden shall be -taken away from off thy shoulder, and his yoke from off thy neck, and -the yoke shall be destroyed because of the anointing. - -10:28 He is come to Aiath, he is passed to Migron; at Michmash he hath -laid up his carriages: 10:29 They are gone over the passage: they have -taken up their lodging at Geba; Ramah is afraid; Gibeah of Saul is -fled. - -10:30 Lift up thy voice, O daughter of Gallim: cause it to be heard -unto Laish, O poor Anathoth. - -10:31 Madmenah is removed; the inhabitants of Gebim gather themselves -to flee. - -10:32 As yet shall he remain at Nob that day: he shall shake his hand -against the mount of the daughter of Zion, the hill of Jerusalem. - -10:33 Behold, the Lord, the LORD of hosts, shall lop the bough with -terror: and the high ones of stature shall be hewn down, and the -haughty shall be humbled. - -10:34 And he shall cut down the thickets of the forest with iron, and -Lebanon shall fall by a mighty one. - -11:1 And there shall come forth a rod out of the stem of Jesse, and a -Branch shall grow out of his roots: 11:2 And the spirit of the LORD -shall rest upon him, the spirit of wisdom and understanding, the -spirit of counsel and might, the spirit of knowledge and of the fear -of the LORD; 11:3 And shall make him of quick understanding in the -fear of the LORD: and he shall not judge after the sight of his eyes, -neither reprove after the hearing of his ears: 11:4 But with -righteousness shall he judge the poor, and reprove with equity for the -meek of the earth: and he shall smite the earth: with the rod of his -mouth, and with the breath of his lips shall he slay the wicked. - -11:5 And righteousness shall be the girdle of his loins, and -faithfulness the girdle of his reins. - -11:6 The wolf also shall dwell with the lamb, and the leopard shall -lie down with the kid; and the calf and the young lion and the fatling -together; and a little child shall lead them. - -11:7 And the cow and the bear shall feed; their young ones shall lie -down together: and the lion shall eat straw like the ox. - -11:8 And the sucking child shall play on the hole of the asp, and the -weaned child shall put his hand on the cockatrice' den. - -11:9 They shall not hurt nor destroy in all my holy mountain: for the -earth shall be full of the knowledge of the LORD, as the waters cover -the sea. - -11:10 And in that day there shall be a root of Jesse, which shall -stand for an ensign of the people; to it shall the Gentiles seek: and -his rest shall be glorious. - -11:11 And it shall come to pass in that day, that the Lord shall set -his hand again the second time to recover the remnant of his people, -which shall be left, from Assyria, and from Egypt, and from Pathros, -and from Cush, and from Elam, and from Shinar, and from Hamath, and -from the islands of the sea. - -11:12 And he shall set up an ensign for the nations, and shall -assemble the outcasts of Israel, and gather together the dispersed of -Judah from the four corners of the earth. - -11:13 The envy also of Ephraim shall depart, and the adversaries of -Judah shall be cut off: Ephraim shall not envy Judah, and Judah shall -not vex Ephraim. - -11:14 But they shall fly upon the shoulders of the Philistines toward -the west; they shall spoil them of the east together: they shall lay -their hand upon Edom and Moab; and the children of Ammon shall obey -them. - -11:15 And the LORD shall utterly destroy the tongue of the Egyptian -sea; and with his mighty wind shall he shake his hand over the river, -and shall smite it in the seven streams, and make men go over dryshod. - -11:16 And there shall be an highway for the remnant of his people, -which shall be left, from Assyria; like as it was to Israel in the day -that he came up out of the land of Egypt. - -12:1 And in that day thou shalt say, O LORD, I will praise thee: -though thou wast angry with me, thine anger is turned away, and thou -comfortedst me. - -12:2 Behold, God is my salvation; I will trust, and not be afraid: for -the LORD JEHOVAH is my strength and my song; he also is become my -salvation. - -12:3 Therefore with joy shall ye draw water out of the wells of -salvation. - -12:4 And in that day shall ye say, Praise the LORD, call upon his -name, declare his doings among the people, make mention that his name -is exalted. - -12:5 Sing unto the LORD; for he hath done excellent things: this is -known in all the earth. - -12:6 Cry out and shout, thou inhabitant of Zion: for great is the Holy -One of Israel in the midst of thee. - -13:1 The burden of Babylon, which Isaiah the son of Amoz did see. - -13:2 Lift ye up a banner upon the high mountain, exalt the voice unto -them, shake the hand, that they may go into the gates of the nobles. - -13:3 I have commanded my sanctified ones, I have also called my mighty -ones for mine anger, even them that rejoice in my highness. - -13:4 The noise of a multitude in the mountains, like as of a great -people; a tumultuous noise of the kingdoms of nations gathered -together: the LORD of hosts mustereth the host of the battle. - -13:5 They come from a far country, from the end of heaven, even the -LORD, and the weapons of his indignation, to destroy the whole land. - -13:6 Howl ye; for the day of the LORD is at hand; it shall come as a -destruction from the Almighty. - -13:7 Therefore shall all hands be faint, and every man's heart shall -melt: 13:8 And they shall be afraid: pangs and sorrows shall take hold -of them; they shall be in pain as a woman that travaileth: they shall -be amazed one at another; their faces shall be as flames. - -13:9 Behold, the day of the LORD cometh, cruel both with wrath and -fierce anger, to lay the land desolate: and he shall destroy the -sinners thereof out of it. - -13:10 For the stars of heaven and the constellations thereof shall not -give their light: the sun shall be darkened in his going forth, and -the moon shall not cause her light to shine. - -13:11 And I will punish the world for their evil, and the wicked for -their iniquity; and I will cause the arrogancy of the proud to cease, -and will lay low the haughtiness of the terrible. - -13:12 I will make a man more precious than fine gold; even a man than -the golden wedge of Ophir. - -13:13 Therefore I will shake the heavens, and the earth shall remove -out of her place, in the wrath of the LORD of hosts, and in the day of -his fierce anger. - -13:14 And it shall be as the chased roe, and as a sheep that no man -taketh up: they shall every man turn to his own people, and flee every -one into his own land. - -13:15 Every one that is found shall be thrust through; and every one -that is joined unto them shall fall by the sword. - -13:16 Their children also shall be dashed to pieces before their eyes; -their houses shall be spoiled, and their wives ravished. - -13:17 Behold, I will stir up the Medes against them, which shall not -regard silver; and as for gold, they shall not delight in it. - -13:18 Their bows also shall dash the young men to pieces; and they -shall have no pity on the fruit of the womb; their eyes shall not -spare children. - -13:19 And Babylon, the glory of kingdoms, the beauty of the Chaldees' -excellency, shall be as when God overthrew Sodom and Gomorrah. - -13:20 It shall never be inhabited, neither shall it be dwelt in from -generation to generation: neither shall the Arabian pitch tent there; -neither shall the shepherds make their fold there. - -13:21 But wild beasts of the desert shall lie there; and their houses -shall be full of doleful creatures; and owls shall dwell there, and -satyrs shall dance there. - -13:22 And the wild beasts of the islands shall cry in their desolate -houses, and dragons in their pleasant palaces: and her time is near to -come, and her days shall not be prolonged. - -14:1 For the LORD will have mercy on Jacob, and will yet choose -Israel, and set them in their own land: and the strangers shall be -joined with them, and they shall cleave to the house of Jacob. - -14:2 And the people shall take them, and bring them to their place: -and the house of Israel shall possess them in the land of the LORD for -servants and handmaids: and they shall take them captives, whose -captives they were; and they shall rule over their oppressors. - -14:3 And it shall come to pass in the day that the LORD shall give -thee rest from thy sorrow, and from thy fear, and from the hard -bondage wherein thou wast made to serve, 14:4 That thou shalt take up -this proverb against the king of Babylon, and say, How hath the -oppressor ceased! the golden city ceased! 14:5 The LORD hath broken -the staff of the wicked, and the sceptre of the rulers. - -14:6 He who smote the people in wrath with a continual stroke, he that -ruled the nations in anger, is persecuted, and none hindereth. - -14:7 The whole earth is at rest, and is quiet: they break forth into -singing. - -14:8 Yea, the fir trees rejoice at thee, and the cedars of Lebanon, -saying, Since thou art laid down, no feller is come up against us. - -14:9 Hell from beneath is moved for thee to meet thee at thy coming: -it stirreth up the dead for thee, even all the chief ones of the -earth; it hath raised up from their thrones all the kings of the -nations. - -14:10 All they shall speak and say unto thee, Art thou also become -weak as we? art thou become like unto us? 14:11 Thy pomp is brought -down to the grave, and the noise of thy viols: the worm is spread -under thee, and the worms cover thee. - -14:12 How art thou fallen from heaven, O Lucifer, son of the morning! -how art thou cut down to the ground, which didst weaken the nations! -14:13 For thou hast said in thine heart, I will ascend into heaven, I -will exalt my throne above the stars of God: I will sit also upon the -mount of the congregation, in the sides of the north: 14:14 I will -ascend above the heights of the clouds; I will be like the most High. - -14:15 Yet thou shalt be brought down to hell, to the sides of the pit. - -14:16 They that see thee shall narrowly look upon thee, and consider -thee, saying, Is this the man that made the earth to tremble, that did -shake kingdoms; 14:17 That made the world as a wilderness, and -destroyed the cities thereof; that opened not the house of his -prisoners? 14:18 All the kings of the nations, even all of them, lie -in glory, every one in his own house. - -14:19 But thou art cast out of thy grave like an abominable branch, -and as the raiment of those that are slain, thrust through with a -sword, that go down to the stones of the pit; as a carcase trodden -under feet. - -14:20 Thou shalt not be joined with them in burial, because thou hast -destroyed thy land, and slain thy people: the seed of evildoers shall -never be renowned. - -14:21 Prepare slaughter for his children for the iniquity of their -fathers; that they do not rise, nor possess the land, nor fill the -face of the world with cities. - -14:22 For I will rise up against them, saith the LORD of hosts, and -cut off from Babylon the name, and remnant, and son, and nephew, saith -the LORD. - -14:23 I will also make it a possession for the bittern, and pools of -water: and I will sweep it with the besom of destruction, saith the -LORD of hosts. - -14:24 The LORD of hosts hath sworn, saying, Surely as I have thought, -so shall it come to pass; and as I have purposed, so shall it stand: -14:25 That I will break the Assyrian in my land, and upon my mountains -tread him under foot: then shall his yoke depart from off them, and -his burden depart from off their shoulders. - -14:26 This is the purpose that is purposed upon the whole earth: and -this is the hand that is stretched out upon all the nations. - -14:27 For the LORD of hosts hath purposed, and who shall disannul it? -and his hand is stretched out, and who shall turn it back? 14:28 In -the year that king Ahaz died was this burden. - -14:29 Rejoice not thou, whole Palestina, because the rod of him that -smote thee is broken: for out of the serpent's root shall come forth a -cockatrice, and his fruit shall be a fiery flying serpent. - -14:30 And the firstborn of the poor shall feed, and the needy shall -lie down in safety: and I will kill thy root with famine, and he shall -slay thy remnant. - -14:31 Howl, O gate; cry, O city; thou, whole Palestina, art dissolved: -for there shall come from the north a smoke, and none shall be alone -in his appointed times. - -14:32 What shall one then answer the messengers of the nation? That -the LORD hath founded Zion, and the poor of his people shall trust in -it. - -15:1 The burden of Moab. Because in the night Ar of Moab is laid -waste, and brought to silence; because in the night Kir of Moab is -laid waste, and brought to silence; 15:2 He is gone up to Bajith, and -to Dibon, the high places, to weep: Moab shall howl over Nebo, and -over Medeba: on all their heads shall be baldness, and every beard cut -off. - -15:3 In their streets they shall gird themselves with sackcloth: on -the tops of their houses, and in their streets, every one shall howl, -weeping abundantly. - -15:4 And Heshbon shall cry, and Elealeh: their voice shall be heard -even unto Jahaz: therefore the armed soldiers of Moab shall cry out; -his life shall be grievous unto him. - -15:5 My heart shall cry out for Moab; his fugitives shall flee unto -Zoar, an heifer of three years old: for by the mounting up of Luhith -with weeping shall they go it up; for in the way of Horonaim they -shall raise up a cry of destruction. - -15:6 For the waters of Nimrim shall be desolate: for the hay is -withered away, the grass faileth, there is no green thing. - -15:7 Therefore the abundance they have gotten, and that which they -have laid up, shall they carry away to the brook of the willows. - -15:8 For the cry is gone round about the borders of Moab; the howling -thereof unto Eglaim, and the howling thereof unto Beerelim. - -15:9 For the waters of Dimon shall be full of blood: for I will bring -more upon Dimon, lions upon him that escapeth of Moab, and upon the -remnant of the land. - -16:1 Send ye the lamb to the ruler of the land from Sela to the -wilderness, unto the mount of the daughter of Zion. - -16:2 For it shall be, that, as a wandering bird cast out of the nest, -so the daughters of Moab shall be at the fords of Arnon. - -16:3 Take counsel, execute judgment; make thy shadow as the night in -the midst of the noonday; hide the outcasts; bewray not him that -wandereth. - -16:4 Let mine outcasts dwell with thee, Moab; be thou a covert to them -from the face of the spoiler: for the extortioner is at an end, the -spoiler ceaseth, the oppressors are consumed out of the land. - -16:5 And in mercy shall the throne be established: and he shall sit -upon it in truth in the tabernacle of David, judging, and seeking -judgment, and hasting righteousness. - -16:6 We have heard of the pride of Moab; he is very proud: even of his -haughtiness, and his pride, and his wrath: but his lies shall not be -so. - -16:7 Therefore shall Moab howl for Moab, every one shall howl: for the -foundations of Kirhareseth shall ye mourn; surely they are stricken. - -16:8 For the fields of Heshbon languish, and the vine of Sibmah: the -lords of the heathen have broken down the principal plants thereof, -they are come even unto Jazer, they wandered through the wilderness: -her branches are stretched out, they are gone over the sea. - -16:9 Therefore I will bewail with the weeping of Jazer the vine of -Sibmah: I will water thee with my tears, O Heshbon, and Elealeh: for -the shouting for thy summer fruits and for thy harvest is fallen. - -16:10 And gladness is taken away, and joy out of the plentiful field; -and in the vineyards there shall be no singing, neither shall there be -shouting: the treaders shall tread out no wine in their presses; I -have made their vintage shouting to cease. - -16:11 Wherefore my bowels shall sound like an harp for Moab, and mine -inward parts for Kirharesh. - -16:12 And it shall come to pass, when it is seen that Moab is weary on -the high place, that he shall come to his sanctuary to pray; but he -shall not prevail. - -16:13 This is the word that the LORD hath spoken concerning Moab since -that time. - -16:14 But now the LORD hath spoken, saying, Within three years, as the -years of an hireling, and the glory of Moab shall be contemned, with -all that great multitude; and the remnant shall be very small and -feeble. - -17:1 The burden of Damascus. Behold, Damascus is taken away from being -a city, and it shall be a ruinous heap. - -17:2 The cities of Aroer are forsaken: they shall be for flocks, which -shall lie down, and none shall make them afraid. - -17:3 The fortress also shall cease from Ephraim, and the kingdom from -Damascus, and the remnant of Syria: they shall be as the glory of the -children of Israel, saith the LORD of hosts. - -17:4 And in that day it shall come to pass, that the glory of Jacob -shall be made thin, and the fatness of his flesh shall wax lean. - -17:5 And it shall be as when the harvestman gathereth the corn, and -reapeth the ears with his arm; and it shall be as he that gathereth -ears in the valley of Rephaim. - -17:6 Yet gleaning grapes shall be left in it, as the shaking of an -olive tree, two or three berries in the top of the uppermost bough, -four or five in the outmost fruitful branches thereof, saith the LORD -God of Israel. - -17:7 At that day shall a man look to his Maker, and his eyes shall -have respect to the Holy One of Israel. - -17:8 And he shall not look to the altars, the work of his hands, -neither shall respect that which his fingers have made, either the -groves, or the images. - -17:9 In that day shall his strong cities be as a forsaken bough, and -an uppermost branch, which they left because of the children of -Israel: and there shall be desolation. - -17:10 Because thou hast forgotten the God of thy salvation, and hast -not been mindful of the rock of thy strength, therefore shalt thou -plant pleasant plants, and shalt set it with strange slips: 17:11 In -the day shalt thou make thy plant to grow, and in the morning shalt -thou make thy seed to flourish: but the harvest shall be a heap in the -day of grief and of desperate sorrow. - -17:12 Woe to the multitude of many people, which make a noise like the -noise of the seas; and to the rushing of nations, that make a rushing -like the rushing of mighty waters! 17:13 The nations shall rush like -the rushing of many waters: but God shall rebuke them, and they shall -flee far off, and shall be chased as the chaff of the mountains before -the wind, and like a rolling thing before the whirlwind. - -17:14 And behold at eveningtide trouble; and before the morning he is -not. - -This is the portion of them that spoil us, and the lot of them that -rob us. - -18:1 Woe to the land shadowing with wings, which is beyond the rivers -of Ethiopia: 18:2 That sendeth ambassadors by the sea, even in vessels -of bulrushes upon the waters, saying, Go, ye swift messengers, to a -nation scattered and peeled, to a people terrible from their beginning -hitherto; a nation meted out and trodden down, whose land the rivers -have spoiled! 18:3 All ye inhabitants of the world, and dwellers on -the earth, see ye, when he lifteth up an ensign on the mountains; and -when he bloweth a trumpet, hear ye. - -18:4 For so the LORD said unto me, I will take my rest, and I will -consider in my dwelling place like a clear heat upon herbs, and like a -cloud of dew in the heat of harvest. - -18:5 For afore the harvest, when the bud is perfect, and the sour -grape is ripening in the flower, he shall both cut off the sprigs with -pruning hooks, and take away and cut down the branches. - -18:6 They shall be left together unto the fowls of the mountains, and -to the beasts of the earth: and the fowls shall summer upon them, and -all the beasts of the earth shall winter upon them. - -18:7 In that time shall the present be brought unto the LORD of hosts -of a people scattered and peeled, and from a people terrible from -their beginning hitherto; a nation meted out and trodden under foot, -whose land the rivers have spoiled, to the place of the name of the -LORD of hosts, the mount Zion. - -19:1 The burden of Egypt. Behold, the LORD rideth upon a swift cloud, -and shall come into Egypt: and the idols of Egypt shall be moved at -his presence, and the heart of Egypt shall melt in the midst of it. - -19:2 And I will set the Egyptians against the Egyptians: and they -shall fight every one against his brother, and every one against his -neighbour; city against city, and kingdom against kingdom. - -19:3 And the spirit of Egypt shall fail in the midst thereof; and I -will destroy the counsel thereof: and they shall seek to the idols, -and to the charmers, and to them that have familiar spirits, and to -the wizards. - -19:4 And the Egyptians will I give over into the hand of a cruel lord; -and a fierce king shall rule over them, saith the Lord, the LORD of -hosts. - -19:5 And the waters shall fail from the sea, and the river shall be -wasted and dried up. - -19:6 And they shall turn the rivers far away; and the brooks of -defence shall be emptied and dried up: the reeds and flags shall -wither. - -19:7 The paper reeds by the brooks, by the mouth of the brooks, and -every thing sown by the brooks, shall wither, be driven away, and be -no more. - -19:8 The fishers also shall mourn, and all they that cast angle into -the brooks shall lament, and they that spread nets upon the waters -shall languish. - -19:9 Moreover they that work in fine flax, and they that weave -networks, shall be confounded. - -19:10 And they shall be broken in the purposes thereof, all that make -sluices and ponds for fish. - -19:11 Surely the princes of Zoan are fools, the counsel of the wise -counsellors of Pharaoh is become brutish: how say ye unto Pharaoh, I -am the son of the wise, the son of ancient kings? 19:12 Where are -they? where are thy wise men? and let them tell thee now, and let them -know what the LORD of hosts hath purposed upon Egypt. - -19:13 The princes of Zoan are become fools, the princes of Noph are -deceived; they have also seduced Egypt, even they that are the stay of -the tribes thereof. - -19:14 The LORD hath mingled a perverse spirit in the midst thereof: -and they have caused Egypt to err in every work thereof, as a drunken -man staggereth in his vomit. - -19:15 Neither shall there be any work for Egypt, which the head or -tail, branch or rush, may do. - -19:16 In that day shall Egypt be like unto women: and it shall be -afraid and fear because of the shaking of the hand of the LORD of -hosts, which he shaketh over it. - -19:17 And the land of Judah shall be a terror unto Egypt, every one -that maketh mention thereof shall be afraid in himself, because of the -counsel of the LORD of hosts, which he hath determined against it. - -19:18 In that day shall five cities in the land of Egypt speak the -language of Canaan, and swear to the LORD of hosts; one shall be -called, The city of destruction. - -19:19 In that day shall there be an altar to the LORD in the midst of -the land of Egypt, and a pillar at the border thereof to the LORD. - -19:20 And it shall be for a sign and for a witness unto the LORD of -hosts in the land of Egypt: for they shall cry unto the LORD because -of the oppressors, and he shall send them a saviour, and a great one, -and he shall deliver them. - -19:21 And the LORD shall be known to Egypt, and the Egyptians shall -know the LORD in that day, and shall do sacrifice and oblation; yea, -they shall vow a vow unto the LORD, and perform it. - -19:22 And the LORD shall smite Egypt: he shall smite and heal it: and -they shall return even to the LORD, and he shall be intreated of them, -and shall heal them. - -19:23 In that day shall there be a highway out of Egypt to Assyria, -and the Assyrian shall come into Egypt, and the Egyptian into Assyria, -and the Egyptians shall serve with the Assyrians. - -19:24 In that day shall Israel be the third with Egypt and with -Assyria, even a blessing in the midst of the land: 19:25 Whom the LORD -of hosts shall bless, saying, Blessed be Egypt my people, and Assyria -the work of my hands, and Israel mine inheritance. - -20:1 In the year that Tartan came unto Ashdod, (when Sargon the king -of Assyria sent him,) and fought against Ashdod, and took it; 20:2 At -the same time spake the LORD by Isaiah the son of Amoz, saying, Go and -loose the sackcloth from off thy loins, and put off thy shoe from thy -foot. And he did so, walking naked and barefoot. - -20:3 And the LORD said, Like as my servant Isaiah hath walked naked -and barefoot three years for a sign and wonder upon Egypt and upon -Ethiopia; 20:4 So shall the king of Assyria lead away the Egyptians -prisoners, and the Ethiopians captives, young and old, naked and -barefoot, even with their buttocks uncovered, to the shame of Egypt. - -20:5 And they shall be afraid and ashamed of Ethiopia their -expectation, and of Egypt their glory. - -20:6 And the inhabitant of this isle shall say in that day, Behold, -such is our expectation, whither we flee for help to be delivered from -the king of Assyria: and how shall we escape? 21:1 The burden of the -desert of the sea. As whirlwinds in the south pass through; so it -cometh from the desert, from a terrible land. - -21:2 A grievous vision is declared unto me; the treacherous dealer -dealeth treacherously, and the spoiler spoileth. Go up, O Elam: -besiege, O Media; all the sighing thereof have I made to cease. - -21:3 Therefore are my loins filled with pain: pangs have taken hold -upon me, as the pangs of a woman that travaileth: I was bowed down at -the hearing of it; I was dismayed at the seeing of it. - -21:4 My heart panted, fearfulness affrighted me: the night of my -pleasure hath he turned into fear unto me. - -21:5 Prepare the table, watch in the watchtower, eat, drink: arise, ye -princes, and anoint the shield. - -21:6 For thus hath the LORD said unto me, Go, set a watchman, let him -declare what he seeth. - -21:7 And he saw a chariot with a couple of horsemen, a chariot of -asses, and a chariot of camels; and he hearkened diligently with much -heed: 21:8 And he cried, A lion: My lord, I stand continually upon the -watchtower in the daytime, and I am set in my ward whole nights: 21:9 -And, behold, here cometh a chariot of men, with a couple of horsemen. - -And he answered and said, Babylon is fallen, is fallen; and all the -graven images of her gods he hath broken unto the ground. - -21:10 O my threshing, and the corn of my floor: that which I have -heard of the LORD of hosts, the God of Israel, have I declared unto -you. - -21:11 The burden of Dumah. He calleth to me out of Seir, Watchman, -what of the night? Watchman, what of the night? 21:12 The watchman -said, The morning cometh, and also the night: if ye will enquire, -enquire ye: return, come. - -21:13 The burden upon Arabia. In the forest in Arabia shall ye lodge, -O ye travelling companies of Dedanim. - -21:14 The inhabitants of the land of Tema brought water to him that -was thirsty, they prevented with their bread him that fled. - -21:15 For they fled from the swords, from the drawn sword, and from -the bent bow, and from the grievousness of war. - -21:16 For thus hath the LORD said unto me, Within a year, according to -the years of an hireling, and all the glory of Kedar shall fail: 21:17 -And the residue of the number of archers, the mighty men of the -children of Kedar, shall be diminished: for the LORD God of Israel -hath spoken it. - -22:1 The burden of the valley of vision. What aileth thee now, that -thou art wholly gone up to the housetops? 22:2 Thou that art full of -stirs, a tumultuous city, joyous city: thy slain men are not slain -with the sword, nor dead in battle. - -22:3 All thy rulers are fled together, they are bound by the archers: -all that are found in thee are bound together, which have fled from -far. - -22:4 Therefore said I, Look away from me; I will weep bitterly, labour -not to comfort me, because of the spoiling of the daughter of my -people. - -22:5 For it is a day of trouble, and of treading down, and of -perplexity by the Lord GOD of hosts in the valley of vision, breaking -down the walls, and of crying to the mountains. - -22:6 And Elam bare the quiver with chariots of men and horsemen, and -Kir uncovered the shield. - -22:7 And it shall come to pass, that thy choicest valleys shall be -full of chariots, and the horsemen shall set themselves in array at -the gate. - -22:8 And he discovered the covering of Judah, and thou didst look in -that day to the armour of the house of the forest. - -22:9 Ye have seen also the breaches of the city of David, that they -are many: and ye gathered together the waters of the lower pool. - -22:10 And ye have numbered the houses of Jerusalem, and the houses -have ye broken down to fortify the wall. - -22:11 Ye made also a ditch between the two walls for the water of the -old pool: but ye have not looked unto the maker thereof, neither had -respect unto him that fashioned it long ago. - -22:12 And in that day did the Lord GOD of hosts call to weeping, and -to mourning, and to baldness, and to girding with sackcloth: 22:13 And -behold joy and gladness, slaying oxen, and killing sheep, eating -flesh, and drinking wine: let us eat and drink; for to morrow we shall -die. - -22:14 And it was revealed in mine ears by the LORD of hosts, Surely -this iniquity shall not be purged from you till ye die, saith the Lord -GOD of hosts. - -22:15 Thus saith the Lord GOD of hosts, Go, get thee unto this -treasurer, even unto Shebna, which is over the house, and say, 22:16 -What hast thou here? and whom hast thou here, that thou hast hewed -thee out a sepulchre here, as he that heweth him out a sepulchre on -high, and that graveth an habitation for himself in a rock? 22:17 -Behold, the LORD will carry thee away with a mighty captivity, and -will surely cover thee. - -22:18 He will surely violently turn and toss thee like a ball into a -large country: there shalt thou die, and there the chariots of thy -glory shall be the shame of thy lord's house. - -22:19 And I will drive thee from thy station, and from thy state shall -he pull thee down. - -22:20 And it shall come to pass in that day, that I will call my -servant Eliakim the son of Hilkiah: 22:21 And I will clothe him with -thy robe, and strengthen him with thy girdle, and I will commit thy -government into his hand: and he shall be a father to the inhabitants -of Jerusalem, and to the house of Judah. - -22:22 And the key of the house of David will I lay upon his shoulder; -so he shall open, and none shall shut; and he shall shut, and none -shall open. - -22:23 And I will fasten him as a nail in a sure place; and he shall be -for a glorious throne to his father's house. - -22:24 And they shall hang upon him all the glory of his father's -house, the offspring and the issue, all vessels of small quantity, -from the vessels of cups, even to all the vessels of flagons. - -22:25 In that day, saith the LORD of hosts, shall the nail that is -fastened in the sure place be removed, and be cut down, and fall; and -the burden that was upon it shall be cut off: for the LORD hath spoken -it. - -23:1 The burden of Tyre. Howl, ye ships of Tarshish; for it is laid -waste, so that there is no house, no entering in: from the land of -Chittim it is revealed to them. - -23:2 Be still, ye inhabitants of the isle; thou whom the merchants of -Zidon, that pass over the sea, have replenished. - -23:3 And by great waters the seed of Sihor, the harvest of the river, -is her revenue; and she is a mart of nations. - -23:4 Be thou ashamed, O Zidon: for the sea hath spoken, even the -strength of the sea, saying, I travail not, nor bring forth children, -neither do I nourish up young men, nor bring up virgins. - -23:5 As at the report concerning Egypt, so shall they be sorely pained -at the report of Tyre. - -23:6 Pass ye over to Tarshish; howl, ye inhabitants of the isle. - -23:7 Is this your joyous city, whose antiquity is of ancient days? her -own feet shall carry her afar off to sojourn. - -23:8 Who hath taken this counsel against Tyre, the crowning city, -whose merchants are princes, whose traffickers are the honourable of -the earth? 23:9 The LORD of hosts hath purposed it, to stain the -pride of all glory, and to bring into contempt all the honourable of -the earth. - -23:10 Pass through thy land as a river, O daughter of Tarshish: there -is no more strength. - -23:11 He stretched out his hand over the sea, he shook the kingdoms: -the LORD hath given a commandment against the merchant city, to -destroy the strong holds thereof. - -23:12 And he said, Thou shalt no more rejoice, O thou oppressed -virgin, daughter of Zidon: arise, pass over to Chittim; there also -shalt thou have no rest. - -23:13 Behold the land of the Chaldeans; this people was not, till the -Assyrian founded it for them that dwell in the wilderness: they set up -the towers thereof, they raised up the palaces thereof; and he brought -it to ruin. - -23:14 Howl, ye ships of Tarshish: for your strength is laid waste. - -23:15 And it shall come to pass in that day, that Tyre shall be -forgotten seventy years, according to the days of one king: after the -end of seventy years shall Tyre sing as an harlot. - -23:16 Take an harp, go about the city, thou harlot that hast been -forgotten; make sweet melody, sing many songs, that thou mayest be -remembered. - -23:17 And it shall come to pass after the end of seventy years, that -the LORD will visit Tyre, and she shall turn to her hire, and shall -commit fornication with all the kingdoms of the world upon the face of -the earth. - -23:18 And her merchandise and her hire shall be holiness to the LORD: -it shall not be treasured nor laid up; for her merchandise shall be -for them that dwell before the LORD, to eat sufficiently, and for -durable clothing. - -24:1 Behold, the LORD maketh the earth empty, and maketh it waste, and -turneth it upside down, and scattereth abroad the inhabitants thereof. - -24:2 And it shall be, as with the people, so with the priest; as with -the servant, so with his master; as with the maid, so with her -mistress; as with the buyer, so with the seller; as with the lender, -so with the borrower; as with the taker of usury, so with the giver of -usury to him. - -24:3 The land shall be utterly emptied, and utterly spoiled: for the -LORD hath spoken this word. - -24:4 The earth mourneth and fadeth away, the world languisheth and -fadeth away, the haughty people of the earth do languish. - -24:5 The earth also is defiled under the inhabitants thereof; because -they have transgressed the laws, changed the ordinance, broken the -everlasting covenant. - -24:6 Therefore hath the curse devoured the earth, and they that dwell -therein are desolate: therefore the inhabitants of the earth are -burned, and few men left. - -24:7 The new wine mourneth, the vine languisheth, all the merryhearted -do sigh. - -24:8 The mirth of tabrets ceaseth, the noise of them that rejoice -endeth, the joy of the harp ceaseth. - -24:9 They shall not drink wine with a song; strong drink shall be -bitter to them that drink it. - -24:10 The city of confusion is broken down: every house is shut up, -that no man may come in. - -24:11 There is a crying for wine in the streets; all joy is darkened, -the mirth of the land is gone. - -24:12 In the city is left desolation, and the gate is smitten with -destruction. - -24:13 When thus it shall be in the midst of the land among the people, -there shall be as the shaking of an olive tree, and as the gleaning -grapes when the vintage is done. - -24:14 They shall lift up their voice, they shall sing for the majesty -of the LORD, they shall cry aloud from the sea. - -24:15 Wherefore glorify ye the LORD in the fires, even the name of the -LORD God of Israel in the isles of the sea. - -24:16 From the uttermost part of the earth have we heard songs, even -glory to the righteous. But I said, My leanness, my leanness, woe unto -me! the treacherous dealers have dealt treacherously; yea, the -treacherous dealers have dealt very treacherously. - -24:17 Fear, and the pit, and the snare, are upon thee, O inhabitant of -the earth. - -24:18 And it shall come to pass, that he who fleeth from the noise of -the fear shall fall into the pit; and he that cometh up out of the -midst of the pit shall be taken in the snare: for the windows from on -high are open, and the foundations of the earth do shake. - -24:19 The earth is utterly broken down, the earth is clean dissolved, -the earth is moved exceedingly. - -24:20 The earth shall reel to and fro like a drunkard, and shall be -removed like a cottage; and the transgression thereof shall be heavy -upon it; and it shall fall, and not rise again. - -24:21 And it shall come to pass in that day, that the LORD shall -punish the host of the high ones that are on high, and the kings of -the earth upon the earth. - -24:22 And they shall be gathered together, as prisoners are gathered -in the pit, and shall be shut up in the prison, and after many days -shall they be visited. - -24:23 Then the moon shall be confounded, and the sun ashamed, when the -LORD of hosts shall reign in mount Zion, and in Jerusalem, and before -his ancients gloriously. - -25:1 O Lord, thou art my God; I will exalt thee, I will praise thy -name; for thou hast done wonderful things; thy counsels of old are -faithfulness and truth. - -25:2 For thou hast made of a city an heap; of a defenced city a ruin: -a palace of strangers to be no city; it shall never be built. - -25:3 Therefore shall the strong people glorify thee, the city of the -terrible nations shall fear thee. - -25:4 For thou hast been a strength to the poor, a strength to the -needy in his distress, a refuge from the storm, a shadow from the -heat, when the blast of the terrible ones is as a storm against the -wall. - -25:5 Thou shalt bring down the noise of strangers, as the heat in a -dry place; even the heat with the shadow of a cloud: the branch of the -terrible ones shall be brought low. - -25:6 And in this mountain shall the LORD of hosts make unto all people -a feast of fat things, a feast of wines on the lees, of fat things -full of marrow, of wines on the lees well refined. - -25:7 And he will destroy in this mountain the face of the covering -cast over all people, and the vail that is spread over all nations. - -25:8 He will swallow up death in victory; and the Lord GOD will wipe -away tears from off all faces; and the rebuke of his people shall he -take away from off all the earth: for the LORD hath spoken it. - -25:9 And it shall be said in that day, Lo, this is our God; we have -waited for him, and he will save us: this is the LORD; we have waited -for him, we will be glad and rejoice in his salvation. - -25:10 For in this mountain shall the hand of the LORD rest, and Moab -shall be trodden down under him, even as straw is trodden down for the -dunghill. - -25:11 And he shall spread forth his hands in the midst of them, as he -that swimmeth spreadeth forth his hands to swim: and he shall bring -down their pride together with the spoils of their hands. - -25:12 And the fortress of the high fort of thy walls shall he bring -down, lay low, and bring to the ground, even to the dust. - -26:1 In that day shall this song be sung in the land of Judah; We have -a strong city; salvation will God appoint for walls and bulwarks. - -26:2 Open ye the gates, that the righteous nation which keepeth the -truth may enter in. - -26:3 Thou wilt keep him in perfect peace, whose mind is stayed on -thee: because he trusteth in thee. - -26:4 Trust ye in the LORD for ever: for in the LORD JEHOVAH is -everlasting strength: 26:5 For he bringeth down them that dwell on -high; the lofty city, he layeth it low; he layeth it low, even to the -ground; he bringeth it even to the dust. - -26:6 The foot shall tread it down, even the feet of the poor, and the -steps of the needy. - -26:7 The way of the just is uprightness: thou, most upright, dost -weigh the path of the just. - -26:8 Yea, in the way of thy judgments, O LORD, have we waited for -thee; the desire of our soul is to thy name, and to the remembrance of -thee. - -26:9 With my soul have I desired thee in the night; yea, with my -spirit within me will I seek thee early: for when thy judgments are in -the earth, the inhabitants of the world will learn righteousness. - -26:10 Let favour be shewed to the wicked, yet will he not learn -righteousness: in the land of uprightness will he deal unjustly, and -will not behold the majesty of the LORD. - -26:11 LORD, when thy hand is lifted up, they will not see: but they -shall see, and be ashamed for their envy at the people; yea, the fire -of thine enemies shall devour them. - -26:12 LORD, thou wilt ordain peace for us: for thou also hast wrought -all our works in us. - -26:13 O LORD our God, other lords beside thee have had dominion over -us: but by thee only will we make mention of thy name. - -26:14 They are dead, they shall not live; they are deceased, they -shall not rise: therefore hast thou visited and destroyed them, and -made all their memory to perish. - -26:15 Thou hast increased the nation, O LORD, thou hast increased the -nation: thou art glorified: thou hadst removed it far unto all the -ends of the earth. - -26:16 LORD, in trouble have they visited thee, they poured out a -prayer when thy chastening was upon them. - -26:17 Like as a woman with child, that draweth near the time of her -delivery, is in pain, and crieth out in her pangs; so have we been in -thy sight, O LORD. - -26:18 We have been with child, we have been in pain, we have as it -were brought forth wind; we have not wrought any deliverance in the -earth; neither have the inhabitants of the world fallen. - -26:19 Thy dead men shall live, together with my dead body shall they -arise. Awake and sing, ye that dwell in dust: for thy dew is as the -dew of herbs, and the earth shall cast out the dead. - -26:20 Come, my people, enter thou into thy chambers, and shut thy -doors about thee: hide thyself as it were for a little moment, until -the indignation be overpast. - -26:21 For, behold, the LORD cometh out of his place to punish the -inhabitants of the earth for their iniquity: the earth also shall -disclose her blood, and shall no more cover her slain. - -27:1 In that day the LORD with his sore and great and strong sword -shall punish leviathan the piercing serpent, even leviathan that -crooked serpent; and he shall slay the dragon that is in the sea. - -27:2 In that day sing ye unto her, A vineyard of red wine. - -27:3 I the LORD do keep it; I will water it every moment: lest any -hurt it, I will keep it night and day. - -27:4 Fury is not in me: who would set the briers and thorns against me -in battle? I would go through them, I would burn them together. - -27:5 Or let him take hold of my strength, that he may make peace with -me; and he shall make peace with me. - -27:6 He shall cause them that come of Jacob to take root: Israel shall -blossom and bud, and fill the face of the world with fruit. - -27:7 Hath he smitten him, as he smote those that smote him? or is he -slain according to the slaughter of them that are slain by him? 27:8 -In measure, when it shooteth forth, thou wilt debate with it: he -stayeth his rough wind in the day of the east wind. - -27:9 By this therefore shall the iniquity of Jacob be purged; and this -is all the fruit to take away his sin; when he maketh all the stones -of the altar as chalkstones that are beaten in sunder, the groves and -images shall not stand up. - -27:10 Yet the defenced city shall be desolate, and the habitation -forsaken, and left like a wilderness: there shall the calf feed, and -there shall he lie down, and consume the branches thereof. - -27:11 When the boughs thereof are withered, they shall be broken off: -the women come, and set them on fire: for it is a people of no -understanding: therefore he that made them will not have mercy on -them, and he that formed them will shew them no favour. - -27:12 And it shall come to pass in that day, that the LORD shall beat -off from the channel of the river unto the stream of Egypt, and ye -shall be gathered one by one, O ye children of Israel. - -27:13 And it shall come to pass in that day, that the great trumpet -shall be blown, and they shall come which were ready to perish in the -land of Assyria, and the outcasts in the land of Egypt, and shall -worship the LORD in the holy mount at Jerusalem. - -28:1 Woe to the crown of pride, to the drunkards of Ephraim, whose -glorious beauty is a fading flower, which are on the head of the fat -valleys of them that are overcome with wine! 28:2 Behold, the Lord -hath a mighty and strong one, which as a tempest of hail and a -destroying storm, as a flood of mighty waters overflowing, shall cast -down to the earth with the hand. - -28:3 The crown of pride, the drunkards of Ephraim, shall be trodden -under feet: 28:4 And the glorious beauty, which is on the head of the -fat valley, shall be a fading flower, and as the hasty fruit before -the summer; which when he that looketh upon it seeth, while it is yet -in his hand he eateth it up. - -28:5 In that day shall the LORD of hosts be for a crown of glory, and -for a diadem of beauty, unto the residue of his people, 28:6 And for a -spirit of judgment to him that sitteth in judgment, and for strength -to them that turn the battle to the gate. - -28:7 But they also have erred through wine, and through strong drink -are out of the way; the priest and the prophet have erred through -strong drink, they are swallowed up of wine, they are out of the way -through strong drink; they err in vision, they stumble in judgment. - -28:8 For all tables are full of vomit and filthiness, so that there is -no place clean. - -28:9 Whom shall he teach knowledge? and whom shall he make to -understand doctrine? them that are weaned from the milk, and drawn -from the breasts. - -28:10 For precept must be upon precept, precept upon precept; line -upon line, line upon line; here a little, and there a little: 28:11 -For with stammering lips and another tongue will he speak to this -people. - -28:12 To whom he said, This is the rest wherewith ye may cause the -weary to rest; and this is the refreshing: yet they would not hear. - -28:13 But the word of the LORD was unto them precept upon precept, -precept upon precept; line upon line, line upon line; here a little, -and there a little; that they might go, and fall backward, and be -broken, and snared, and taken. - -28:14 Wherefore hear the word of the LORD, ye scornful men, that rule -this people which is in Jerusalem. - -28:15 Because ye have said, We have made a covenant with death, and -with hell are we at agreement; when the overflowing scourge shall pass -through, it shall not come unto us: for we have made lies our refuge, -and under falsehood have we hid ourselves: 28:16 Therefore thus saith -the Lord GOD, Behold, I lay in Zion for a foundation a stone, a tried -stone, a precious corner stone, a sure foundation: he that believeth -shall not make haste. - -28:17 Judgment also will I lay to the line, and righteousness to the -plummet: and the hail shall sweep away the refuge of lies, and the -waters shall overflow the hiding place. - -28:18 And your covenant with death shall be disannulled, and your -agreement with hell shall not stand; when the overflowing scourge -shall pass through, then ye shall be trodden down by it. - -28:19 From the time that it goeth forth it shall take you: for morning -by morning shall it pass over, by day and by night: and it shall be a -vexation only to understand the report. - -28:20 For the bed is shorter than that a man can stretch himself on -it: and the covering narrower than that he can wrap himself in it. - -28:21 For the LORD shall rise up as in mount Perazim, he shall be -wroth as in the valley of Gibeon, that he may do his work, his strange -work; and bring to pass his act, his strange act. - -28:22 Now therefore be ye not mockers, lest your bands be made strong: -for I have heard from the Lord GOD of hosts a consumption, even -determined upon the whole earth. - -28:23 Give ye ear, and hear my voice; hearken, and hear my speech. - -28:24 Doth the plowman plow all day to sow? doth he open and break the -clods of his ground? 28:25 When he hath made plain the face thereof, -doth he not cast abroad the fitches, and scatter the cummin, and cast -in the principal wheat and the appointed barley and the rie in their -place? 28:26 For his God doth instruct him to discretion, and doth -teach him. - -28:27 For the fitches are not threshed with a threshing instrument, -neither is a cart wheel turned about upon the cummin; but the fitches -are beaten out with a staff, and the cummin with a rod. - -28:28 Bread corn is bruised; because he will not ever be threshing it, -nor break it with the wheel of his cart, nor bruise it with his -horsemen. - -28:29 This also cometh forth from the LORD of hosts, which is -wonderful in counsel, and excellent in working. - -29:1 Woe to Ariel, to Ariel, the city where David dwelt! add ye year -to year; let them kill sacrifices. - -29:2 Yet I will distress Ariel, and there shall be heaviness and -sorrow: and it shall be unto me as Ariel. - -29:3 And I will camp against thee round about, and will lay siege -against thee with a mount, and I will raise forts against thee. - -29:4 And thou shalt be brought down, and shalt speak out of the -ground, and thy speech shall be low out of the dust, and thy voice -shall be, as of one that hath a familiar spirit, out of the ground, -and thy speech shall whisper out of the dust. - -29:5 Moreover the multitude of thy strangers shall be like small dust, -and the multitude of the terrible ones shall be as chaff that passeth -away: yea, it shall be at an instant suddenly. - -29:6 Thou shalt be visited of the LORD of hosts with thunder, and with -earthquake, and great noise, with storm and tempest, and the flame of -devouring fire. - -29:7 And the multitude of all the nations that fight against Ariel, -even all that fight against her and her munition, and that distress -her, shall be as a dream of a night vision. - -29:8 It shall even be as when an hungry man dreameth, and, behold, he -eateth; but he awaketh, and his soul is empty: or as when a thirsty -man dreameth, and, behold, he drinketh; but he awaketh, and, behold, -he is faint, and his soul hath appetite: so shall the multitude of all -the nations be, that fight against mount Zion. - -29:9 Stay yourselves, and wonder; cry ye out, and cry: they are -drunken, but not with wine; they stagger, but not with strong drink. - -29:10 For the LORD hath poured out upon you the spirit of deep sleep, -and hath closed your eyes: the prophets and your rulers, the seers -hath he covered. - -29:11 And the vision of all is become unto you as the words of a book -that is sealed, which men deliver to one that is learned, saying, Read -this, I pray thee: and he saith, I cannot; for it is sealed: 29:12 And -the book is delivered to him that is not learned, saying, Read this, I -pray thee: and he saith, I am not learned. - -29:13 Wherefore the Lord said, Forasmuch as this people draw near me -with their mouth, and with their lips do honour me, but have removed -their heart far from me, and their fear toward me is taught by the -precept of men: 29:14 Therefore, behold, I will proceed to do a -marvellous work among this people, even a marvellous work and a -wonder: for the wisdom of their wise men shall perish, and the -understanding of their prudent men shall be hid. - -29:15 Woe unto them that seek deep to hide their counsel from the -LORD, and their works are in the dark, and they say, Who seeth us? and -who knoweth us? 29:16 Surely your turning of things upside down shall -be esteemed as the potter's clay: for shall the work say of him that -made it, He made me not? or shall the thing framed say of him that -framed it, He had no understanding? 29:17 Is it not yet a very little -while, and Lebanon shall be turned into a fruitful field, and the -fruitful field shall be esteemed as a forest? 29:18 And in that day -shall the deaf hear the words of the book, and the eyes of the blind -shall see out of obscurity, and out of darkness. - -29:19 The meek also shall increase their joy in the LORD, and the poor -among men shall rejoice in the Holy One of Israel. - -29:20 For the terrible one is brought to nought, and the scorner is -consumed, and all that watch for iniquity are cut off: 29:21 That make -a man an offender for a word, and lay a snare for him that reproveth -in the gate, and turn aside the just for a thing of nought. - -29:22 Therefore thus saith the LORD, who redeemed Abraham, concerning -the house of Jacob, Jacob shall not now be ashamed, neither shall his -face now wax pale. - -29:23 But when he seeth his children, the work of mine hands, in the -midst of him, they shall sanctify my name, and sanctify the Holy One -of Jacob, and shall fear the God of Israel. - -29:24 They also that erred in spirit shall come to understanding, and -they that murmured shall learn doctrine. - -30:1 Woe to the rebellious children, saith the LORD, that take -counsel, but not of me; and that cover with a covering, but not of my -spirit, that they may add sin to sin: 30:2 That walk to go down into -Egypt, and have not asked at my mouth; to strengthen themselves in the -strength of Pharaoh, and to trust in the shadow of Egypt! 30:3 -Therefore shall the strength of Pharaoh be your shame, and the trust -in the shadow of Egypt your confusion. - -30:4 For his princes were at Zoan, and his ambassadors came to Hanes. - -30:5 They were all ashamed of a people that could not profit them, nor -be an help nor profit, but a shame, and also a reproach. - -30:6 The burden of the beasts of the south: into the land of trouble -and anguish, from whence come the young and old lion, the viper and -fiery flying serpent, they will carry their riches upon the shoulders -of young asses, and their treasures upon the bunches of camels, to a -people that shall not profit them. - -30:7 For the Egyptians shall help in vain, and to no purpose: -therefore have I cried concerning this, Their strength is to sit -still. - -30:8 Now go, write it before them in a table, and note it in a book, -that it may be for the time to come for ever and ever: 30:9 That this -is a rebellious people, lying children, children that will not hear -the law of the LORD: 30:10 Which say to the seers, See not; and to the -prophets, Prophesy not unto us right things, speak unto us smooth -things, prophesy deceits: 30:11 Get you out of the way, turn aside out -of the path, cause the Holy One of Israel to cease from before us. - -30:12 Wherefore thus saith the Holy One of Israel, Because ye despise -this word, and trust in oppression and perverseness, and stay thereon: -30:13 Therefore this iniquity shall be to you as a breach ready to -fall, swelling out in a high wall, whose breaking cometh suddenly at -an instant. - -30:14 And he shall break it as the breaking of the potters' vessel -that is broken in pieces; he shall not spare: so that there shall not -be found in the bursting of it a sherd to take fire from the hearth, -or to take water withal out of the pit. - -30:15 For thus saith the Lord GOD, the Holy One of Israel; In -returning and rest shall ye be saved; in quietness and in confidence -shall be your strength: and ye would not. - -30:16 But ye said, No; for we will flee upon horses; therefore shall -ye flee: and, We will ride upon the swift; therefore shall they that -pursue you be swift. - -30:17 One thousand shall flee at the rebuke of one; at the rebuke of -five shall ye flee: till ye be left as a beacon upon the top of a -mountain, and as an ensign on an hill. - -30:18 And therefore will the LORD wait, that he may be gracious unto -you, and therefore will he be exalted, that he may have mercy upon -you: for the LORD is a God of judgment: blessed are all they that wait -for him. - -30:19 For the people shall dwell in Zion at Jerusalem: thou shalt weep -no more: he will be very gracious unto thee at the voice of thy cry; -when he shall hear it, he will answer thee. - -30:20 And though the Lord give you the bread of adversity, and the -water of affliction, yet shall not thy teachers be removed into a -corner any more, but thine eyes shall see thy teachers: 30:21 And -thine ears shall hear a word behind thee, saying, This is the way, -walk ye in it, when ye turn to the right hand, and when ye turn to the -left. - -30:22 Ye shall defile also the covering of thy graven images of -silver, and the ornament of thy molten images of gold: thou shalt cast -them away as a menstruous cloth; thou shalt say unto it, Get thee -hence. - -30:23 Then shall he give the rain of thy seed, that thou shalt sow the -ground withal; and bread of the increase of the earth, and it shall be -fat and plenteous: in that day shall thy cattle feed in large -pastures. - -30:24 The oxen likewise and the young asses that ear the ground shall -eat clean provender, which hath been winnowed with the shovel and with -the fan. - -30:25 And there shall be upon every high mountain, and upon every high -hill, rivers and streams of waters in the day of the great slaughter, -when the towers fall. - -30:26 Moreover the light of the moon shall be as the light of the sun, -and the light of the sun shall be sevenfold, as the light of seven -days, in the day that the LORD bindeth up the breach of his people, -and healeth the stroke of their wound. - -30:27 Behold, the name of the LORD cometh from far, burning with his -anger, and the burden thereof is heavy: his lips are full of -indignation, and his tongue as a devouring fire: 30:28 And his breath, -as an overflowing stream, shall reach to the midst of the neck, to -sift the nations with the sieve of vanity: and there shall be a bridle -in the jaws of the people, causing them to err. - -30:29 Ye shall have a song, as in the night when a holy solemnity is -kept; and gladness of heart, as when one goeth with a pipe to come -into the mountain of the LORD, to the mighty One of Israel. - -30:30 And the LORD shall cause his glorious voice to be heard, and -shall shew the lighting down of his arm, with the indignation of his -anger, and with the flame of a devouring fire, with scattering, and -tempest, and hailstones. - -30:31 For through the voice of the LORD shall the Assyrian be beaten -down, which smote with a rod. - -30:32 And in every place where the grounded staff shall pass, which -the LORD shall lay upon him, it shall be with tabrets and harps: and -in battles of shaking will he fight with it. - -30:33 For Tophet is ordained of old; yea, for the king it is prepared; -he hath made it deep and large: the pile thereof is fire and much -wood; the breath of the LORD, like a stream of brimstone, doth kindle -it. - -31:1 Woe to them that go down to Egypt for help; and stay on horses, -and trust in chariots, because they are many; and in horsemen, because -they are very strong; but they look not unto the Holy One of Israel, -neither seek the LORD! 31:2 Yet he also is wise, and will bring evil, -and will not call back his words: but will arise against the house of -the evildoers, and against the help of them that work iniquity. - -31:3 Now the Egyptians are men, and not God; and their horses flesh, -and not spirit. When the LORD shall stretch out his hand, both he that -helpeth shall fall, and he that is holpen shall fall down, and they -all shall fail together. - -31:4 For thus hath the LORD spoken unto me, Like as the lion and the -young lion roaring on his prey, when a multitude of shepherds is -called forth against him, he will not be afraid of their voice, nor -abase himself for the noise of them: so shall the LORD of hosts come -down to fight for mount Zion, and for the hill thereof. - -31:5 As birds flying, so will the LORD of hosts defend Jerusalem; -defending also he will deliver it; and passing over he will preserve -it. - -31:6 Turn ye unto him from whom the children of Israel have deeply -revolted. - -31:7 For in that day every man shall cast away his idols of silver, -and his idols of gold, which your own hands have made unto you for a -sin. - -31:8 Then shall the Assyrian fall with the sword, not of a mighty man; -and the sword, not of a mean man, shall devour him: but he shall flee -from the sword, and his young men shall be discomfited. - -31:9 And he shall pass over to his strong hold for fear, and his -princes shall be afraid of the ensign, saith the LORD, whose fire is -in Zion, and his furnace in Jerusalem. - -32:1 Behold, a king shall reign in righteousness, and princes shall -rule in judgment. - -32:2 And a man shall be as an hiding place from the wind, and a covert -from the tempest; as rivers of water in a dry place, as the shadow of -a great rock in a weary land. - -32:3 And the eyes of them that see shall not be dim, and the ears of -them that hear shall hearken. - -32:4 The heart also of the rash shall understand knowledge, and the -tongue of the stammerers shall be ready to speak plainly. - -32:5 The vile person shall be no more called liberal, nor the churl -said to be bountiful. - -32:6 For the vile person will speak villany, and his heart will work -iniquity, to practise hypocrisy, and to utter error against the LORD, -to make empty the soul of the hungry, and he will cause the drink of -the thirsty to fail. - -32:7 The instruments also of the churl are evil: he deviseth wicked -devices to destroy the poor with lying words, even when the needy -speaketh right. - -32:8 But the liberal deviseth liberal things; and by liberal things -shall he stand. - -32:9 Rise up, ye women that are at ease; hear my voice, ye careless -daughters; give ear unto my speech. - -32:10 Many days and years shall ye be troubled, ye careless women: for -the vintage shall fail, the gathering shall not come. - -32:11 Tremble, ye women that are at ease; be troubled, ye careless -ones: strip you, and make you bare, and gird sackcloth upon your -loins. - -32:12 They shall lament for the teats, for the pleasant fields, for -the fruitful vine. - -32:13 Upon the land of my people shall come up thorns and briers; yea, -upon all the houses of joy in the joyous city: 32:14 Because the -palaces shall be forsaken; the multitude of the city shall be left; -the forts and towers shall be for dens for ever, a joy of wild asses, -a pasture of flocks; 32:15 Until the spirit be poured upon us from on -high, and the wilderness be a fruitful field, and the fruitful field -be counted for a forest. - -32:16 Then judgment shall dwell in the wilderness, and righteousness -remain in the fruitful field. - -32:17 And the work of righteousness shall be peace; and the effect of -righteousness quietness and assurance for ever. - -32:18 And my people shall dwell in a peaceable habitation, and in sure -dwellings, and in quiet resting places; 32:19 When it shall hail, -coming down on the forest; and the city shall be low in a low place. - -32:20 Blessed are ye that sow beside all waters, that send forth -thither the feet of the ox and the ass. - -33:1 Woe to thee that spoilest, and thou wast not spoiled; and dealest -treacherously, and they dealt not treacherously with thee! when thou -shalt cease to spoil, thou shalt be spoiled; and when thou shalt make -an end to deal treacherously, they shall deal treacherously with thee. - -33:2 O LORD, be gracious unto us; we have waited for thee: be thou -their arm every morning, our salvation also in the time of trouble. - -33:3 At the noise of the tumult the people fled; at the lifting up of -thyself the nations were scattered. - -33:4 And your spoil shall be gathered like the gathering of the -caterpiller: as the running to and fro of locusts shall he run upon -them. - -33:5 The LORD is exalted; for he dwelleth on high: he hath filled Zion -with judgment and righteousness. - -33:6 And wisdom and knowledge shall be the stability of thy times, and -strength of salvation: the fear of the LORD is his treasure. - -33:7 Behold, their valiant ones shall cry without: the ambassadors of -peace shall weep bitterly. - -33:8 The highways lie waste, the wayfaring man ceaseth: he hath broken -the covenant, he hath despised the cities, he regardeth no man. - -33:9 The earth mourneth and languisheth: Lebanon is ashamed and hewn -down: Sharon is like a wilderness; and Bashan and Carmel shake off -their fruits. - -33:10 Now will I rise, saith the LORD; now will I be exalted; now will -I lift up myself. - -33:11 Ye shall conceive chaff, ye shall bring forth stubble: your -breath, as fire, shall devour you. - -33:12 And the people shall be as the burnings of lime: as thorns cut -up shall they be burned in the fire. - -33:13 Hear, ye that are far off, what I have done; and, ye that are -near, acknowledge my might. - -33:14 The sinners in Zion are afraid; fearfulness hath surprised the -hypocrites. Who among us shall dwell with the devouring fire? who -among us shall dwell with everlasting burnings? 33:15 He that walketh -righteously, and speaketh uprightly; he that despiseth the gain of -oppressions, that shaketh his hands from holding of bribes, that -stoppeth his ears from hearing of blood, and shutteth his eyes from -seeing evil; 33:16 He shall dwell on high: his place of defence shall -be the munitions of rocks: bread shall be given him; his waters shall -be sure. - -33:17 Thine eyes shall see the king in his beauty: they shall behold -the land that is very far off. - -33:18 Thine heart shall meditate terror. Where is the scribe? where is -the receiver? where is he that counted the towers? 33:19 Thou shalt -not see a fierce people, a people of a deeper speech than thou canst -perceive; of a stammering tongue, that thou canst not understand. - -33:20 Look upon Zion, the city of our solemnities: thine eyes shall -see Jerusalem a quiet habitation, a tabernacle that shall not be taken -down; not one of the stakes thereof shall ever be removed, neither -shall any of the cords thereof be broken. - -33:21 But there the glorious LORD will be unto us a place of broad -rivers and streams; wherein shall go no galley with oars, neither -shall gallant ship pass thereby. - -33:22 For the LORD is our judge, the LORD is our lawgiver, the LORD is -our king; he will save us. - -33:23 Thy tacklings are loosed; they could not well strengthen their -mast, they could not spread the sail: then is the prey of a great -spoil divided; the lame take the prey. - -33:24 And the inhabitant shall not say, I am sick: the people that -dwell therein shall be forgiven their iniquity. - -34:1 Come near, ye nations, to hear; and hearken, ye people: let the -earth hear, and all that is therein; the world, and all things that -come forth of it. - -34:2 For the indignation of the LORD is upon all nations, and his fury -upon all their armies: he hath utterly destroyed them, he hath -delivered them to the slaughter. - -34:3 Their slain also shall be cast out, and their stink shall come up -out of their carcases, and the mountains shall be melted with their -blood. - -34:4 And all the host of heaven shall be dissolved, and the heavens -shall be rolled together as a scroll: and all their host shall fall -down, as the leaf falleth off from the vine, and as a falling fig from -the fig tree. - -34:5 For my sword shall be bathed in heaven: behold, it shall come -down upon Idumea, and upon the people of my curse, to judgment. - -34:6 The sword of the LORD is filled with blood, it is made fat with -fatness, and with the blood of lambs and goats, with the fat of the -kidneys of rams: for the LORD hath a sacrifice in Bozrah, and a great -slaughter in the land of Idumea. - -34:7 And the unicorns shall come down with them, and the bullocks with -the bulls; and their land shall be soaked with blood, and their dust -made fat with fatness. - -34:8 For it is the day of the LORD's vengeance, and the year of -recompences for the controversy of Zion. - -34:9 And the streams thereof shall be turned into pitch, and the dust -thereof into brimstone, and the land thereof shall become burning -pitch. - -34:10 It shall not be quenched night nor day; the smoke thereof shall -go up for ever: from generation to generation it shall lie waste; none -shall pass through it for ever and ever. - -34:11 But the cormorant and the bittern shall possess it; the owl also -and the raven shall dwell in it: and he shall stretch out upon it the -line of confusion, and the stones of emptiness. - -34:12 They shall call the nobles thereof to the kingdom, but none -shall be there, and all her princes shall be nothing. - -34:13 And thorns shall come up in her palaces, nettles and brambles in -the fortresses thereof: and it shall be an habitation of dragons, and -a court for owls. - -34:14 The wild beasts of the desert shall also meet with the wild -beasts of the island, and the satyr shall cry to his fellow; the -screech owl also shall rest there, and find for herself a place of -rest. - -34:15 There shall the great owl make her nest, and lay, and hatch, and -gather under her shadow: there shall the vultures also be gathered, -every one with her mate. - -34:16 Seek ye out of the book of the LORD, and read: no one of these -shall fail, none shall want her mate: for my mouth it hath commanded, -and his spirit it hath gathered them. - -34:17 And he hath cast the lot for them, and his hand hath divided it -unto them by line: they shall possess it for ever, from generation to -generation shall they dwell therein. - -35:1 The wilderness and the solitary place shall be glad for them; and -the desert shall rejoice, and blossom as the rose. - -35:2 It shall blossom abundantly, and rejoice even with joy and -singing: the glory of Lebanon shall be given unto it, the excellency -of Carmel and Sharon, they shall see the glory of the LORD, and the -excellency of our God. - -35:3 Strengthen ye the weak hands, and confirm the feeble knees. - -35:4 Say to them that are of a fearful heart, Be strong, fear not: -behold, your God will come with vengeance, even God with a recompence; -he will come and save you. - -35:5 Then the eyes of the blind shall be opened, and the ears of the -deaf shall be unstopped. - -35:6 Then shall the lame man leap as an hart, and the tongue of the -dumb sing: for in the wilderness shall waters break out, and streams -in the desert. - -35:7 And the parched ground shall become a pool, and the thirsty land -springs of water: in the habitation of dragons, where each lay, shall -be grass with reeds and rushes. - -35:8 And an highway shall be there, and a way, and it shall be called -The way of holiness; the unclean shall not pass over it; but it shall -be for those: the wayfaring men, though fools, shall not err therein. - -35:9 No lion shall be there, nor any ravenous beast shall go up -thereon, it shall not be found there; but the redeemed shall walk -there: 35:10 And the ransomed of the LORD shall return, and come to -Zion with songs and everlasting joy upon their heads: they shall -obtain joy and gladness, and sorrow and sighing shall flee away. - -36:1 Now it came to pass in the fourteenth year of king Hezekiah, that -Sennacherib king of Assyria came up against all the defenced cities of -Judah, and took them. - -36:2 And the king of Assyria sent Rabshakeh from Lachish to Jerusalem -unto king Hezekiah with a great army. And he stood by the conduit of -the upper pool in the highway of the fuller's field. - -36:3 Then came forth unto him Eliakim, Hilkiah's son, which was over -the house, and Shebna the scribe, and Joah, Asaph's son, the recorder. - -36:4 And Rabshakeh said unto them, Say ye now to Hezekiah, Thus saith -the great king, the king of Assyria, What confidence is this wherein -thou trustest? 36:5 I say, sayest thou, (but they are but vain words) -I have counsel and strength for war: now on whom dost thou trust, that -thou rebellest against me? 36:6 Lo, thou trustest in the staff of -this broken reed, on Egypt; whereon if a man lean, it will go into his -hand, and pierce it: so is Pharaoh king of Egypt to all that trust in -him. - -36:7 But if thou say to me, We trust in the LORD our God: is it not -he, whose high places and whose altars Hezekiah hath taken away, and -said to Judah and to Jerusalem, Ye shall worship before this altar? -36:8 Now therefore give pledges, I pray thee, to my master the king of -Assyria, and I will give thee two thousand horses, if thou be able on -thy part to set riders upon them. - -36:9 How then wilt thou turn away the face of one captain of the least -of my master's servants, and put thy trust on Egypt for chariots and -for horsemen? 36:10 And am I now come up without the LORD against -this land to destroy it? the LORD said unto me, Go up against this -land, and destroy it. - -36:11 Then said Eliakim and Shebna and Joah unto Rabshakeh, Speak, I -pray thee, unto thy servants in the Syrian language; for we understand -it: and speak not to us in the Jews' language, in the ears of the -people that are on the wall. - -36:12 But Rabshakeh said, Hath my master sent me to thy master and to -thee to speak these words? hath he not sent me to the men that sit -upon the wall, that they may eat their own dung, and drink their own -piss with you? 36:13 Then Rabshakeh stood, and cried with a loud -voice in the Jews' language, and said, Hear ye the words of the great -king, the king of Assyria. - -36:14 Thus saith the king, Let not Hezekiah deceive you: for he shall -not be able to deliver you. - -36:15 Neither let Hezekiah make you trust in the LORD, saying, The -LORD will surely deliver us: this city shall not be delivered into the -hand of the king of Assyria. - -36:16 Hearken not to Hezekiah: for thus saith the king of Assyria, -Make an agreement with me by a present, and come out to me: and eat ye -every one of his vine, and every one of his fig tree, and drink ye -every one the waters of his own cistern; 36:17 Until I come and take -you away to a land like your own land, a land of corn and wine, a land -of bread and vineyards. - -36:18 Beware lest Hezekiah persuade you, saying, the LORD will deliver -us. - -Hath any of the gods of the nations delivered his land out of the hand -of the king of Assyria? 36:19 Where are the gods of Hamath and -Arphad? where are the gods of Sepharvaim? and have they delivered -Samaria out of my hand? 36:20 Who are they among all the gods of -these lands, that have delivered their land out of my hand, that the -LORD should deliver Jerusalem out of my hand? 36:21 But they held -their peace, and answered him not a word: for the king's commandment -was, saying, Answer him not. - -36:22 Then came Eliakim, the son of Hilkiah, that was over the -household, and Shebna the scribe, and Joah, the son of Asaph, the -recorder, to Hezekiah with their clothes rent, and told him the words -of Rabshakeh. - -37:1 And it came to pass, when king Hezekiah heard it, that he rent -his clothes, and covered himself with sackcloth, and went into the -house of the LORD. - -37:2 And he sent Eliakim, who was over the household, and Shebna the -scribe, and the elders of the priests covered with sackcloth, unto -Isaiah the prophet the son of Amoz. - -37:3 And they said unto him, Thus saith Hezekiah, This day is a day of -trouble, and of rebuke, and of blasphemy: for the children are come to -the birth, and there is not strength to bring forth. - -37:4 It may be the LORD thy God will hear the words of Rabshakeh, whom -the king of Assyria his master hath sent to reproach the living God, -and will reprove the words which the LORD thy God hath heard: -wherefore lift up thy prayer for the remnant that is left. - -37:5 So the servants of king Hezekiah came to Isaiah. - -37:6 And Isaiah said unto them, Thus shall ye say unto your master, -Thus saith the LORD, Be not afraid of the words that thou hast heard, -wherewith the servants of the king of Assyria have blasphemed me. - -37:7 Behold, I will send a blast upon him, and he shall hear a rumour, -and return to his own land; and I will cause him to fall by the sword -in his own land. - -37:8 So Rabshakeh returned, and found the king of Assyria warring -against Libnah: for he had heard that he was departed from Lachish. - -37:9 And he heard say concerning Tirhakah king of Ethiopia, He is come -forth to make war with thee. And when he heard it, he sent messengers -to Hezekiah, saying, 37:10 Thus shall ye speak to Hezekiah king of -Judah, saying, Let not thy God, in whom thou trustest, deceive thee, -saying, Jerusalem shall not be given into the hand of the king of -Assyria. - -37:11 Behold, thou hast heard what the kings of Assyria have done to -all lands by destroying them utterly; and shalt thou be delivered? -37:12 Have the gods of the nations delivered them which my fathers -have destroyed, as Gozan, and Haran, and Rezeph, and the children of -Eden which were in Telassar? 37:13 Where is the king of Hamath, and -the king of Arphad, and the king of the city of Sepharvaim, Hena, and -Ivah? 37:14 And Hezekiah received the letter from the hand of the -messengers, and read it: and Hezekiah went up unto the house of the -LORD, and spread it before the LORD. - -37:15 And Hezekiah prayed unto the LORD, saying, 37:16 O LORD of -hosts, God of Israel, that dwellest between the cherubims, thou art -the God, even thou alone, of all the kingdoms of the earth: thou hast -made heaven and earth. - -37:17 Incline thine ear, O LORD, and hear; open thine eyes, O LORD, -and see: and hear all the words of Sennacherib, which hath sent to -reproach the living God. - -37:18 Of a truth, LORD, the kings of Assyria have laid waste all the -nations, and their countries, 37:19 And have cast their gods into the -fire: for they were no gods, but the work of men's hands, wood and -stone: therefore they have destroyed them. - -37:20 Now therefore, O LORD our God, save us from his hand, that all -the kingdoms of the earth may know that thou art the LORD, even thou -only. - -37:21 Then Isaiah the son of Amoz sent unto Hezekiah, saying, Thus -saith the LORD God of Israel, Whereas thou hast prayed to me against -Sennacherib king of Assyria: 37:22 This is the word which the LORD -hath spoken concerning him; The virgin, the daughter of Zion, hath -despised thee, and laughed thee to scorn; the daughter of Jerusalem -hath shaken her head at thee. - -37:23 Whom hast thou reproached and blasphemed? and against whom hast -thou exalted thy voice, and lifted up thine eyes on high? even against -the Holy One of Israel. - -37:24 By thy servants hast thou reproached the Lord, and hast said, By -the multitude of my chariots am I come up to the height of the -mountains, to the sides of Lebanon; and I will cut down the tall -cedars thereof, and the choice fir trees thereof: and I will enter -into the height of his border, and the forest of his Carmel. - -37:25 I have digged, and drunk water; and with the sole of my feet -have I dried up all the rivers of the besieged places. - -37:26 Hast thou not heard long ago, how I have done it; and of ancient -times, that I have formed it? now have I brought it to pass, that thou -shouldest be to lay waste defenced cities into ruinous heaps. - -37:27 Therefore their inhabitants were of small power, they were -dismayed and confounded: they were as the grass of the field, and as -the green herb, as the grass on the housetops, and as corn blasted -before it be grown up. - -37:28 But I know thy abode, and thy going out, and thy coming in, and -thy rage against me. - -37:29 Because thy rage against me, and thy tumult, is come up into -mine ears, therefore will I put my hook in thy nose, and my bridle in -thy lips, and I will turn thee back by the way by which thou camest. - -37:30 And this shall be a sign unto thee, Ye shall eat this year such -as groweth of itself; and the second year that which springeth of the -same: and in the third year sow ye, and reap, and plant vineyards, and -eat the fruit thereof. - -37:31 And the remnant that is escaped of the house of Judah shall -again take root downward, and bear fruit upward: 37:32 For out of -Jerusalem shall go forth a remnant, and they that escape out of mount -Zion: the zeal of the LORD of hosts shall do this. - -37:33 Therefore thus saith the LORD concerning the king of Assyria, He -shall not come into this city, nor shoot an arrow there, nor come -before it with shields, nor cast a bank against it. - -37:34 By the way that he came, by the same shall he return, and shall -not come into this city, saith the LORD. - -37:35 For I will defend this city to save it for mine own sake, and -for my servant David's sake. - -37:36 Then the angel of the LORD went forth, and smote in the camp of -the Assyrians a hundred and fourscore and five thousand: and when they -arose early in the morning, behold, they were all dead corpses. - -37:37 So Sennacherib king of Assyria departed, and went and returned, -and dwelt at Nineveh. - -37:38 And it came to pass, as he was worshipping in the house of -Nisroch his god, that Adrammelech and Sharezer his sons smote him with -the sword; and they escaped into the land of Armenia: and Esarhaddon -his son reigned in his stead. - -38:1 In those days was Hezekiah sick unto death. And Isaiah the -prophet the son of Amoz came unto him, and said unto him, Thus saith -the LORD, Set thine house in order: for thou shalt die, and not live. - -38:2 Then Hezekiah turned his face toward the wall, and prayed unto -the LORD, 38:3 And said, Remember now, O LORD, I beseech thee, how I -have walked before thee in truth and with a perfect heart, and have -done that which is good in thy sight. And Hezekiah wept sore. - -38:4 Then came the word of the LORD to Isaiah, saying, 38:5 Go, and -say to Hezekiah, Thus saith the LORD, the God of David thy father, I -have heard thy prayer, I have seen thy tears: behold, I will add unto -thy days fifteen years. - -38:6 And I will deliver thee and this city out of the hand of the king -of Assyria: and I will defend this city. - -38:7 And this shall be a sign unto thee from the LORD, that the LORD -will do this thing that he hath spoken; 38:8 Behold, I will bring -again the shadow of the degrees, which is gone down in the sun dial of -Ahaz, ten degrees backward. So the sun returned ten degrees, by which -degrees it was gone down. - -38:9 The writing of Hezekiah king of Judah, when he had been sick, and -was recovered of his sickness: 38:10 I said in the cutting off of my -days, I shall go to the gates of the grave: I am deprived of the -residue of my years. - -38:11 I said, I shall not see the LORD, even the LORD, in the land of -the living: I shall behold man no more with the inhabitants of the -world. - -38:12 Mine age is departed, and is removed from me as a shepherd's -tent: I have cut off like a weaver my life: he will cut me off with -pining sickness: from day even to night wilt thou make an end of me. - -38:13 I reckoned till morning, that, as a lion, so will he break all -my bones: from day even to night wilt thou make an end of me. - -38:14 Like a crane or a swallow, so did I chatter: I did mourn as a -dove: mine eyes fail with looking upward: O LORD, I am oppressed; -undertake for me. - -38:15 What shall I say? he hath both spoken unto me, and himself hath -done it: I shall go softly all my years in the bitterness of my soul. - -38:16 O LORD, by these things men live, and in all these things is the -life of my spirit: so wilt thou recover me, and make me to live. - -38:17 Behold, for peace I had great bitterness: but thou hast in love -to my soul delivered it from the pit of corruption: for thou hast cast -all my sins behind thy back. - -38:18 For the grave cannot praise thee, death can not celebrate thee: -they that go down into the pit cannot hope for thy truth. - -38:19 The living, the living, he shall praise thee, as I do this day: -the father to the children shall make known thy truth. - -38:20 The LORD was ready to save me: therefore we will sing my songs -to the stringed instruments all the days of our life in the house of -the LORD. - -38:21 For Isaiah had said, Let them take a lump of figs, and lay it -for a plaister upon the boil, and he shall recover. - -38:22 Hezekiah also had said, What is the sign that I shall go up to -the house of the LORD? 39:1 At that time Merodachbaladan, the son of -Baladan, king of Babylon, sent letters and a present to Hezekiah: for -he had heard that he had been sick, and was recovered. - -39:2 And Hezekiah was glad of them, and shewed them the house of his -precious things, the silver, and the gold, and the spices, and the -precious ointment, and all the house of his armour, and all that was -found in his treasures: there was nothing in his house, nor in all his -dominion, that Hezekiah shewed them not. - -39:3 Then came Isaiah the prophet unto king Hezekiah, and said unto -him, What said these men? and from whence came they unto thee? And -Hezekiah said, They are come from a far country unto me, even from -Babylon. - -39:4 Then said he, What have they seen in thine house? And Hezekiah -answered, All that is in mine house have they seen: there is nothing -among my treasures that I have not shewed them. - -39:5 Then said Isaiah to Hezekiah, Hear the word of the LORD of hosts: -39:6 Behold, the days come, that all that is in thine house, and that -which thy fathers have laid up in store until this day, shall be -carried to Babylon: nothing shall be left, saith the LORD. - -39:7 And of thy sons that shall issue from thee, which thou shalt -beget, shall they take away; and they shall be eunuchs in the palace -of the king of Babylon. - -39:8 Then said Hezekiah to Isaiah, Good is the word of the LORD which -thou hast spoken. He said moreover, For there shall be peace and truth -in my days. - -40:1 Comfort ye, comfort ye my people, saith your God. - -40:2 Speak ye comfortably to Jerusalem, and cry unto her, that her -warfare is accomplished, that her iniquity is pardoned: for she hath -received of the LORD's hand double for all her sins. - -40:3 The voice of him that crieth in the wilderness, Prepare ye the -way of the LORD, make straight in the desert a highway for our God. - -40:4 Every valley shall be exalted, and every mountain and hill shall -be made low: and the crooked shall be made straight, and the rough -places plain: 40:5 And the glory of the LORD shall be revealed, and -all flesh shall see it together: for the mouth of the LORD hath spoken -it. - -40:6 The voice said, Cry. And he said, What shall I cry? All flesh is -grass, and all the goodliness thereof is as the flower of the field: -40:7 The grass withereth, the flower fadeth: because the spirit of the -LORD bloweth upon it: surely the people is grass. - -40:8 The grass withereth, the flower fadeth: but the word of our God -shall stand for ever. - -40:9 O Zion, that bringest good tidings, get thee up into the high -mountain; O Jerusalem, that bringest good tidings, lift up thy voice -with strength; lift it up, be not afraid; say unto the cities of -Judah, Behold your God! 40:10 Behold, the Lord GOD will come with -strong hand, and his arm shall rule for him: behold, his reward is -with him, and his work before him. - -40:11 He shall feed his flock like a shepherd: he shall gather the -lambs with his arm, and carry them in his bosom, and shall gently lead -those that are with young. - -40:12 Who hath measured the waters in the hollow of his hand, and -meted out heaven with the span, and comprehended the dust of the earth -in a measure, and weighed the mountains in scales, and the hills in a -balance? 40:13 Who hath directed the Spirit of the LORD, or being his -counsellor hath taught him? 40:14 With whom took he counsel, and who -instructed him, and taught him in the path of judgment, and taught him -knowledge, and shewed to him the way of understanding? 40:15 Behold, -the nations are as a drop of a bucket, and are counted as the small -dust of the balance: behold, he taketh up the isles as a very little -thing. - -40:16 And Lebanon is not sufficient to burn, nor the beasts thereof -sufficient for a burnt offering. - -40:17 All nations before him are as nothing; and they are counted to -him less than nothing, and vanity. - -40:18 To whom then will ye liken God? or what likeness will ye compare -unto him? 40:19 The workman melteth a graven image, and the goldsmith -spreadeth it over with gold, and casteth silver chains. - -40:20 He that is so impoverished that he hath no oblation chooseth a -tree that will not rot; he seeketh unto him a cunning workman to -prepare a graven image, that shall not be moved. - -40:21 Have ye not known? have ye not heard? hath it not been told you -from the beginning? have ye not understood from the foundations of the -earth? 40:22 It is he that sitteth upon the circle of the earth, and -the inhabitants thereof are as grasshoppers; that stretcheth out the -heavens as a curtain, and spreadeth them out as a tent to dwell in: -40:23 That bringeth the princes to nothing; he maketh the judges of -the earth as vanity. - -40:24 Yea, they shall not be planted; yea, they shall not be sown: -yea, their stock shall not take root in the earth: and he shall also -blow upon them, and they shall wither, and the whirlwind shall take -them away as stubble. - -40:25 To whom then will ye liken me, or shall I be equal? saith the -Holy One. - -40:26 Lift up your eyes on high, and behold who hath created these -things, that bringeth out their host by number: he calleth them all by -names by the greatness of his might, for that he is strong in power; -not one faileth. - -40:27 Why sayest thou, O Jacob, and speakest, O Israel, My way is hid -from the LORD, and my judgment is passed over from my God? 40:28 Hast -thou not known? hast thou not heard, that the everlasting God, the -LORD, the Creator of the ends of the earth, fainteth not, neither is -weary? there is no searching of his understanding. - -40:29 He giveth power to the faint; and to them that have no might he -increaseth strength. - -40:30 Even the youths shall faint and be weary, and the young men -shall utterly fall: 40:31 But they that wait upon the LORD shall renew -their strength; they shall mount up with wings as eagles; they shall -run, and not be weary; and they shall walk, and not faint. - -41:1 Keep silence before me, O islands; and let the people renew their -strength: let them come near; then let them speak: let us come near -together to judgment. - -41:2 Who raised up the righteous man from the east, called him to his -foot, gave the nations before him, and made him rule over kings? he -gave them as the dust to his sword, and as driven stubble to his bow. - -41:3 He pursued them, and passed safely; even by the way that he had -not gone with his feet. - -41:4 Who hath wrought and done it, calling the generations from the -beginning? I the LORD, the first, and with the last; I am he. - -41:5 The isles saw it, and feared; the ends of the earth were afraid, -drew near, and came. - -41:6 They helped every one his neighbour; and every one said to his -brother, Be of good courage. - -41:7 So the carpenter encouraged the goldsmith, and he that smootheth -with the hammer him that smote the anvil, saying, It is ready for the -sodering: and he fastened it with nails, that it should not be moved. - -41:8 But thou, Israel, art my servant, Jacob whom I have chosen, the -seed of Abraham my friend. - -41:9 Thou whom I have taken from the ends of the earth, and called -thee from the chief men thereof, and said unto thee, Thou art my -servant; I have chosen thee, and not cast thee away. - -41:10 Fear thou not; for I am with thee: be not dismayed; for I am thy -God: I will strengthen thee; yea, I will help thee; yea, I will uphold -thee with the right hand of my righteousness. - -41:11 Behold, all they that were incensed against thee shall be -ashamed and confounded: they shall be as nothing; and they that strive -with thee shall perish. - -41:12 Thou shalt seek them, and shalt not find them, even them that -contended with thee: they that war against thee shall be as nothing, -and as a thing of nought. - -41:13 For I the LORD thy God will hold thy right hand, saying unto -thee, Fear not; I will help thee. - -41:14 Fear not, thou worm Jacob, and ye men of Israel; I will help -thee, saith the LORD, and thy redeemer, the Holy One of Israel. - -41:15 Behold, I will make thee a new sharp threshing instrument having -teeth: thou shalt thresh the mountains, and beat them small, and shalt -make the hills as chaff. - -41:16 Thou shalt fan them, and the wind shall carry them away, and the -whirlwind shall scatter them: and thou shalt rejoice in the LORD, and -shalt glory in the Holy One of Israel. - -41:17 When the poor and needy seek water, and there is none, and their -tongue faileth for thirst, I the LORD will hear them, I the God of -Israel will not forsake them. - -41:18 I will open rivers in high places, and fountains in the midst of -the valleys: I will make the wilderness a pool of water, and the dry -land springs of water. - -41:19 I will plant in the wilderness the cedar, the shittah tree, and -the myrtle, and the oil tree; I will set in the desert the fir tree, -and the pine, and the box tree together: 41:20 That they may see, and -know, and consider, and understand together, that the hand of the LORD -hath done this, and the Holy One of Israel hath created it. - -41:21 Produce your cause, saith the LORD; bring forth your strong -reasons, saith the King of Jacob. - -41:22 Let them bring them forth, and shew us what shall happen: let -them shew the former things, what they be, that we may consider them, -and know the latter end of them; or declare us things for to come. - -41:23 Shew the things that are to come hereafter, that we may know -that ye are gods: yea, do good, or do evil, that we may be dismayed, -and behold it together. - -41:24 Behold, ye are of nothing, and your work of nought: an -abomination is he that chooseth you. - -41:25 I have raised up one from the north, and he shall come: from the -rising of the sun shall he call upon my name: and he shall come upon -princes as upon morter, and as the potter treadeth clay. - -41:26 Who hath declared from the beginning, that we may know? and -beforetime, that we may say, He is righteous? yea, there is none that -sheweth, yea, there is none that declareth, yea, there is none that -heareth your words. - -41:27 The first shall say to Zion, Behold, behold them: and I will -give to Jerusalem one that bringeth good tidings. - -41:28 For I beheld, and there was no man; even among them, and there -was no counsellor, that, when I asked of them, could answer a word. - -41:29 Behold, they are all vanity; their works are nothing: their -molten images are wind and confusion. - -42:1 Behold my servant, whom I uphold; mine elect, in whom my soul -delighteth; I have put my spirit upon him: he shall bring forth -judgment to the Gentiles. - -42:2 He shall not cry, nor lift up, nor cause his voice to be heard in -the street. - -42:3 A bruised reed shall he not break, and the smoking flax shall he -not quench: he shall bring forth judgment unto truth. - -42:4 He shall not fail nor be discouraged, till he have set judgment -in the earth: and the isles shall wait for his law. - -42:5 Thus saith God the LORD, he that created the heavens, and -stretched them out; he that spread forth the earth, and that which -cometh out of it; he that giveth breath unto the people upon it, and -spirit to them that walk therein: 42:6 I the LORD have called thee in -righteousness, and will hold thine hand, and will keep thee, and give -thee for a covenant of the people, for a light of the Gentiles; 42:7 -To open the blind eyes, to bring out the prisoners from the prison, -and them that sit in darkness out of the prison house. - -42:8 I am the LORD: that is my name: and my glory will I not give to -another, neither my praise to graven images. - -42:9 Behold, the former things are come to pass, and new things do I -declare: before they spring forth I tell you of them. - -42:10 Sing unto the LORD a new song, and his praise from the end of -the earth, ye that go down to the sea, and all that is therein; the -isles, and the inhabitants thereof. - -42:11 Let the wilderness and the cities thereof lift up their voice, -the villages that Kedar doth inhabit: let the inhabitants of the rock -sing, let them shout from the top of the mountains. - -42:12 Let them give glory unto the LORD, and declare his praise in the -islands. - -42:13 The LORD shall go forth as a mighty man, he shall stir up -jealousy like a man of war: he shall cry, yea, roar; he shall prevail -against his enemies. - -42:14 I have long time holden my peace; I have been still, and -refrained myself: now will I cry like a travailing woman; I will -destroy and devour at once. - -42:15 I will make waste mountains and hills, and dry up all their -herbs; and I will make the rivers islands, and I will dry up the -pools. - -42:16 And I will bring the blind by a way that they knew not; I will -lead them in paths that they have not known: I will make darkness -light before them, and crooked things straight. These things will I do -unto them, and not forsake them. - -42:17 They shall be turned back, they shall be greatly ashamed, that -trust in graven images, that say to the molten images, Ye are our -gods. - -42:18 Hear, ye deaf; and look, ye blind, that ye may see. - -42:19 Who is blind, but my servant? or deaf, as my messenger that I -sent? who is blind as he that is perfect, and blind as the LORD's -servant? 42:20 Seeing many things, but thou observest not; opening -the ears, but he heareth not. - -42:21 The LORD is well pleased for his righteousness' sake; he will -magnify the law, and make it honourable. - -42:22 But this is a people robbed and spoiled; they are all of them -snared in holes, and they are hid in prison houses: they are for a -prey, and none delivereth; for a spoil, and none saith, Restore. - -42:23 Who among you will give ear to this? who will hearken and hear -for the time to come? 42:24 Who gave Jacob for a spoil, and Israel to -the robbers? did not the LORD, he against whom we have sinned? for -they would not walk in his ways, neither were they obedient unto his -law. - -42:25 Therefore he hath poured upon him the fury of his anger, and the -strength of battle: and it hath set him on fire round about, yet he -knew not; and it burned him, yet he laid it not to heart. - -43:1 But now thus saith the LORD that created thee, O Jacob, and he -that formed thee, O Israel, Fear not: for I have redeemed thee, I have -called thee by thy name; thou art mine. - -43:2 When thou passest through the waters, I will be with thee; and -through the rivers, they shall not overflow thee: when thou walkest -through the fire, thou shalt not be burned; neither shall the flame -kindle upon thee. - -43:3 For I am the LORD thy God, the Holy One of Israel, thy Saviour: I -gave Egypt for thy ransom, Ethiopia and Seba for thee. - -43:4 Since thou wast precious in my sight, thou hast been honourable, -and I have loved thee: therefore will I give men for thee, and people -for thy life. - -43:5 Fear not: for I am with thee: I will bring thy seed from the -east, and gather thee from the west; 43:6 I will say to the north, -Give up; and to the south, Keep not back: bring my sons from far, and -my daughters from the ends of the earth; 43:7 Even every one that is -called by my name: for I have created him for my glory, I have formed -him; yea, I have made him. - -43:8 Bring forth the blind people that have eyes, and the deaf that -have ears. - -43:9 Let all the nations be gathered together, and let the people be -assembled: who among them can declare this, and shew us former things? -let them bring forth their witnesses, that they may be justified: or -let them hear, and say, It is truth. - -43:10 Ye are my witnesses, saith the LORD, and my servant whom I have -chosen: that ye may know and believe me, and understand that I am he: -before me there was no God formed, neither shall there be after me. - -43:11 I, even I, am the LORD; and beside me there is no saviour. - -43:12 I have declared, and have saved, and I have shewed, when there -was no strange god among you: therefore ye are my witnesses, saith the -LORD, that I am God. - -43:13 Yea, before the day was I am he; and there is none that can -deliver out of my hand: I will work, and who shall let it? 43:14 Thus -saith the LORD, your redeemer, the Holy One of Israel; For your sake I -have sent to Babylon, and have brought down all their nobles, and the -Chaldeans, whose cry is in the ships. - -43:15 I am the LORD, your Holy One, the creator of Israel, your King. - -43:16 Thus saith the LORD, which maketh a way in the sea, and a path -in the mighty waters; 43:17 Which bringeth forth the chariot and -horse, the army and the power; they shall lie down together, they -shall not rise: they are extinct, they are quenched as tow. - -43:18 Remember ye not the former things, neither consider the things -of old. - -43:19 Behold, I will do a new thing; now it shall spring forth; shall -ye not know it? I will even make a way in the wilderness, and rivers -in the desert. - -43:20 The beast of the field shall honour me, the dragons and the -owls: because I give waters in the wilderness, and rivers in the -desert, to give drink to my people, my chosen. - -43:21 This people have I formed for myself; they shall shew forth my -praise. - -43:22 But thou hast not called upon me, O Jacob; but thou hast been -weary of me, O Israel. - -43:23 Thou hast not brought me the small cattle of thy burnt -offerings; neither hast thou honoured me with thy sacrifices. I have -not caused thee to serve with an offering, nor wearied thee with -incense. - -43:24 Thou hast bought me no sweet cane with money, neither hast thou -filled me with the fat of thy sacrifices: but thou hast made me to -serve with thy sins, thou hast wearied me with thine iniquities. - -43:25 I, even I, am he that blotteth out thy transgressions for mine -own sake, and will not remember thy sins. - -43:26 Put me in remembrance: let us plead together: declare thou, that -thou mayest be justified. - -43:27 Thy first father hath sinned, and thy teachers have transgressed -against me. - -43:28 Therefore I have profaned the princes of the sanctuary, and have -given Jacob to the curse, and Israel to reproaches. - -44:1 Yet now hear, O Jacob my servant; and Israel, whom I have chosen: -44:2 Thus saith the LORD that made thee, and formed thee from the -womb, which will help thee; Fear not, O Jacob, my servant; and thou, -Jesurun, whom I have chosen. - -44:3 For I will pour water upon him that is thirsty, and floods upon -the dry ground: I will pour my spirit upon thy seed, and my blessing -upon thine offspring: 44:4 And they shall spring up as among the -grass, as willows by the water courses. - -44:5 One shall say, I am the LORD's; and another shall call himself by -the name of Jacob; and another shall subscribe with his hand unto the -LORD, and surname himself by the name of Israel. - -44:6 Thus saith the LORD the King of Israel, and his redeemer the LORD -of hosts; I am the first, and I am the last; and beside me there is no -God. - -44:7 And who, as I, shall call, and shall declare it, and set it in -order for me, since I appointed the ancient people? and the things -that are coming, and shall come, let them shew unto them. - -44:8 Fear ye not, neither be afraid: have not I told thee from that -time, and have declared it? ye are even my witnesses. Is there a God -beside me? yea, there is no God; I know not any. - -44:9 They that make a graven image are all of them vanity; and their -delectable things shall not profit; and they are their own witnesses; -they see not, nor know; that they may be ashamed. - -44:10 Who hath formed a god, or molten a graven image that is -profitable for nothing? 44:11 Behold, all his fellows shall be -ashamed: and the workmen, they are of men: let them all be gathered -together, let them stand up; yet they shall fear, and they shall be -ashamed together. - -44:12 The smith with the tongs both worketh in the coals, and -fashioneth it with hammers, and worketh it with the strength of his -arms: yea, he is hungry, and his strength faileth: he drinketh no -water, and is faint. - -44:13 The carpenter stretcheth out his rule; he marketh it out with a -line; he fitteth it with planes, and he marketh it out with the -compass, and maketh it after the figure of a man, according to the -beauty of a man; that it may remain in the house. - -44:14 He heweth him down cedars, and taketh the cypress and the oak, -which he strengtheneth for himself among the trees of the forest: he -planteth an ash, and the rain doth nourish it. - -44:15 Then shall it be for a man to burn: for he will take thereof, -and warm himself; yea, he kindleth it, and baketh bread; yea, he -maketh a god, and worshippeth it; he maketh it a graven image, and -falleth down thereto. - -44:16 He burneth part thereof in the fire; with part thereof he eateth -flesh; he roasteth roast, and is satisfied: yea, he warmeth himself, -and saith, Aha, I am warm, I have seen the fire: 44:17 And the residue -thereof he maketh a god, even his graven image: he falleth down unto -it, and worshippeth it, and prayeth unto it, and saith, Deliver me; -for thou art my god. - -44:18 They have not known nor understood: for he hath shut their eyes, -that they cannot see; and their hearts, that they cannot understand. - -44:19 And none considereth in his heart, neither is there knowledge -nor understanding to say, I have burned part of it in the fire; yea, -also I have baked bread upon the coals thereof; I have roasted flesh, -and eaten it: and shall I make the residue thereof an abomination? -shall I fall down to the stock of a tree? 44:20 He feedeth on ashes: -a deceived heart hath turned him aside, that he cannot deliver his -soul, nor say, Is there not a lie in my right hand? 44:21 Remember -these, O Jacob and Israel; for thou art my servant: I have formed -thee; thou art my servant: O Israel, thou shalt not be forgotten of -me. - -44:22 I have blotted out, as a thick cloud, thy transgressions, and, -as a cloud, thy sins: return unto me; for I have redeemed thee. - -44:23 Sing, O ye heavens; for the LORD hath done it: shout, ye lower -parts of the earth: break forth into singing, ye mountains, O forest, -and every tree therein: for the LORD hath redeemed Jacob, and -glorified himself in Israel. - -44:24 Thus saith the LORD, thy redeemer, and he that formed thee from -the womb, I am the LORD that maketh all things; that stretcheth forth -the heavens alone; that spreadeth abroad the earth by myself; 44:25 -That frustrateth the tokens of the liars, and maketh diviners mad; -that turneth wise men backward, and maketh their knowledge foolish; -44:26 That confirmeth the word of his servant, and performeth the -counsel of his messengers; that saith to Jerusalem, Thou shalt be -inhabited; and to the cities of Judah, Ye shall be built, and I will -raise up the decayed places thereof: 44:27 That saith to the deep, Be -dry, and I will dry up thy rivers: 44:28 That saith of Cyrus, He is my -shepherd, and shall perform all my pleasure: even saying to Jerusalem, -Thou shalt be built; and to the temple, Thy foundation shall be laid. - -45:1 Thus saith the LORD to his anointed, to Cyrus, whose right hand I -have holden, to subdue nations before him; and I will loose the loins -of kings, to open before him the two leaved gates; and the gates shall -not be shut; 45:2 I will go before thee, and make the crooked places -straight: I will break in pieces the gates of brass, and cut in sunder -the bars of iron: 45:3 And I will give thee the treasures of darkness, -and hidden riches of secret places, that thou mayest know that I, the -LORD, which call thee by thy name, am the God of Israel. - -45:4 For Jacob my servant's sake, and Israel mine elect, I have even -called thee by thy name: I have surnamed thee, though thou hast not -known me. - -45:5 I am the LORD, and there is none else, there is no God beside me: -I girded thee, though thou hast not known me: 45:6 That they may know -from the rising of the sun, and from the west, that there is none -beside me. I am the LORD, and there is none else. - -45:7 I form the light, and create darkness: I make peace, and create -evil: I the LORD do all these things. - -45:8 Drop down, ye heavens, from above, and let the skies pour down -righteousness: let the earth open, and let them bring forth salvation, -and let righteousness spring up together; I the LORD have created it. - -45:9 Woe unto him that striveth with his Maker! Let the potsherd -strive with the potsherds of the earth. Shall the clay say to him that -fashioneth it, What makest thou? or thy work, He hath no hands? 45:10 -Woe unto him that saith unto his father, What begettest thou? or to -the woman, What hast thou brought forth? 45:11 Thus saith the LORD, -the Holy One of Israel, and his Maker, Ask me of things to come -concerning my sons, and concerning the work of my hands command ye me. - -45:12 I have made the earth, and created man upon it: I, even my -hands, have stretched out the heavens, and all their host have I -commanded. - -45:13 I have raised him up in righteousness, and I will direct all his -ways: he shall build my city, and he shall let go my captives, not for -price nor reward, saith the LORD of hosts. - -45:14 Thus saith the LORD, The labour of Egypt, and merchandise of -Ethiopia and of the Sabeans, men of stature, shall come over unto -thee, and they shall be thine: they shall come after thee; in chains -they shall come over, and they shall fall down unto thee, they shall -make supplication unto thee, saying, Surely God is in thee; and there -is none else, there is no God. - -45:15 Verily thou art a God that hidest thyself, O God of Israel, the -Saviour. - -45:16 They shall be ashamed, and also confounded, all of them: they -shall go to confusion together that are makers of idols. - -45:17 But Israel shall be saved in the LORD with an everlasting -salvation: ye shall not be ashamed nor confounded world without end. - -45:18 For thus saith the LORD that created the heavens; God himself -that formed the earth and made it; he hath established it, he created -it not in vain, he formed it to be inhabited: I am the LORD; and there -is none else. - -45:19 I have not spoken in secret, in a dark place of the earth: I -said not unto the seed of Jacob, Seek ye me in vain: I the LORD speak -righteousness, I declare things that are right. - -45:20 Assemble yourselves and come; draw near together, ye that are -escaped of the nations: they have no knowledge that set up the wood of -their graven image, and pray unto a god that cannot save. - -45:21 Tell ye, and bring them near; yea, let them take counsel -together: who hath declared this from ancient time? who hath told it -from that time? have not I the LORD? and there is no God else beside -me; a just God and a Saviour; there is none beside me. - -45:22 Look unto me, and be ye saved, all the ends of the earth: for I -am God, and there is none else. - -45:23 I have sworn by myself, the word is gone out of my mouth in -righteousness, and shall not return, That unto me every knee shall -bow, every tongue shall swear. - -45:24 Surely, shall one say, in the LORD have I righteousness and -strength: even to him shall men come; and all that are incensed -against him shall be ashamed. - -45:25 In the LORD shall all the seed of Israel be justified, and shall -glory. - -46:1 Bel boweth down, Nebo stoopeth, their idols were upon the beasts, -and upon the cattle: your carriages were heavy loaden; they are a -burden to the weary beast. - -46:2 They stoop, they bow down together; they could not deliver the -burden, but themselves are gone into captivity. - -46:3 Hearken unto me, O house of Jacob, and all the remnant of the -house of Israel, which are borne by me from the belly, which are -carried from the womb: 46:4 And even to your old age I am he; and even -to hoar hairs will I carry you: I have made, and I will bear; even I -will carry, and will deliver you. - -46:5 To whom will ye liken me, and make me equal, and compare me, that -we may be like? 46:6 They lavish gold out of the bag, and weigh -silver in the balance, and hire a goldsmith; and he maketh it a god: -they fall down, yea, they worship. - -46:7 They bear him upon the shoulder, they carry him, and set him in -his place, and he standeth; from his place shall he not remove: yea, -one shall cry unto him, yet can he not answer, nor save him out of his -trouble. - -46:8 Remember this, and shew yourselves men: bring it again to mind, O -ye transgressors. - -46:9 Remember the former things of old: for I am God, and there is -none else; I am God, and there is none like me, 46:10 Declaring the -end from the beginning, and from ancient times the things that are not -yet done, saying, My counsel shall stand, and I will do all my -pleasure: 46:11 Calling a ravenous bird from the east, the man that -executeth my counsel from a far country: yea, I have spoken it, I will -also bring it to pass; I have purposed it, I will also do it. - -46:12 Hearken unto me, ye stouthearted, that are far from -righteousness: 46:13 I bring near my righteousness; it shall not be -far off, and my salvation shall not tarry: and I will place salvation -in Zion for Israel my glory. - -47:1 Come down, and sit in the dust, O virgin daughter of Babylon, sit -on the ground: there is no throne, O daughter of the Chaldeans: for -thou shalt no more be called tender and delicate. - -47:2 Take the millstones, and grind meal: uncover thy locks, make bare -the leg, uncover the thigh, pass over the rivers. - -47:3 Thy nakedness shall be uncovered, yea, thy shame shall be seen: I -will take vengeance, and I will not meet thee as a man. - -47:4 As for our redeemer, the LORD of hosts is his name, the Holy One -of Israel. - -47:5 Sit thou silent, and get thee into darkness, O daughter of the -Chaldeans: for thou shalt no more be called, The lady of kingdoms. - -47:6 I was wroth with my people, I have polluted mine inheritance, and -given them into thine hand: thou didst shew them no mercy; upon the -ancient hast thou very heavily laid thy yoke. - -47:7 And thou saidst, I shall be a lady for ever: so that thou didst -not lay these things to thy heart, neither didst remember the latter -end of it. - -47:8 Therefore hear now this, thou that art given to pleasures, that -dwellest carelessly, that sayest in thine heart, I am, and none else -beside me; I shall not sit as a widow, neither shall I know the loss -of children: 47:9 But these two things shall come to thee in a moment -in one day, the loss of children, and widowhood: they shall come upon -thee in their perfection for the multitude of thy sorceries, and for -the great abundance of thine enchantments. - -47:10 For thou hast trusted in thy wickedness: thou hast said, None -seeth me. Thy wisdom and thy knowledge, it hath perverted thee; and -thou hast said in thine heart, I am, and none else beside me. - -47:11 Therefore shall evil come upon thee; thou shalt not know from -whence it riseth: and mischief shall fall upon thee; thou shalt not be -able to put it off: and desolation shall come upon thee suddenly, -which thou shalt not know. - -47:12 Stand now with thine enchantments, and with the multitude of thy -sorceries, wherein thou hast laboured from thy youth; if so be thou -shalt be able to profit, if so be thou mayest prevail. - -47:13 Thou art wearied in the multitude of thy counsels. Let now the -astrologers, the stargazers, the monthly prognosticators, stand up, -and save thee from these things that shall come upon thee. - -47:14 Behold, they shall be as stubble; the fire shall burn them; they -shall not deliver themselves from the power of the flame: there shall -not be a coal to warm at, nor fire to sit before it. - -47:15 Thus shall they be unto thee with whom thou hast laboured, even -thy merchants, from thy youth: they shall wander every one to his -quarter; none shall save thee. - -48:1 Hear ye this, O house of Jacob, which are called by the name of -Israel, and are come forth out of the waters of Judah, which swear by -the name of the LORD, and make mention of the God of Israel, but not -in truth, nor in righteousness. - -48:2 For they call themselves of the holy city, and stay themselves -upon the God of Israel; The LORD of hosts is his name. - -48:3 I have declared the former things from the beginning; and they -went forth out of my mouth, and I shewed them; I did them suddenly, -and they came to pass. - -48:4 Because I knew that thou art obstinate, and thy neck is an iron -sinew, and thy brow brass; 48:5 I have even from the beginning -declared it to thee; before it came to pass I shewed it thee: lest -thou shouldest say, Mine idol hath done them, and my graven image, and -my molten image, hath commanded them. - -48:6 Thou hast heard, see all this; and will not ye declare it? I have -shewed thee new things from this time, even hidden things, and thou -didst not know them. - -48:7 They are created now, and not from the beginning; even before the -day when thou heardest them not; lest thou shouldest say, Behold, I -knew them. - -48:8 Yea, thou heardest not; yea, thou knewest not; yea, from that -time that thine ear was not opened: for I knew that thou wouldest deal -very treacherously, and wast called a transgressor from the womb. - -48:9 For my name's sake will I defer mine anger, and for my praise -will I refrain for thee, that I cut thee not off. - -48:10 Behold, I have refined thee, but not with silver; I have chosen -thee in the furnace of affliction. - -48:11 For mine own sake, even for mine own sake, will I do it: for how -should my name be polluted? and I will not give my glory unto another. - -48:12 Hearken unto me, O Jacob and Israel, my called; I am he; I am -the first, I also am the last. - -48:13 Mine hand also hath laid the foundation of the earth, and my -right hand hath spanned the heavens: when I call unto them, they stand -up together. - -48:14 All ye, assemble yourselves, and hear; which among them hath -declared these things? The LORD hath loved him: he will do his -pleasure on Babylon, and his arm shall be on the Chaldeans. - -48:15 I, even I, have spoken; yea, I have called him: I have brought -him, and he shall make his way prosperous. - -48:16 Come ye near unto me, hear ye this; I have not spoken in secret -from the beginning; from the time that it was, there am I: and now the -Lord GOD, and his Spirit, hath sent me. - -48:17 Thus saith the LORD, thy Redeemer, the Holy One of Israel; I am -the LORD thy God which teacheth thee to profit, which leadeth thee by -the way that thou shouldest go. - -48:18 O that thou hadst hearkened to my commandments! then had thy -peace been as a river, and thy righteousness as the waves of the sea: -48:19 Thy seed also had been as the sand, and the offspring of thy -bowels like the gravel thereof; his name should not have been cut off -nor destroyed from before me. - -48:20 Go ye forth of Babylon, flee ye from the Chaldeans, with a voice -of singing declare ye, tell this, utter it even to the end of the -earth; say ye, The LORD hath redeemed his servant Jacob. - -48:21 And they thirsted not when he led them through the deserts: he -caused the waters to flow out of the rock for them: he clave the rock -also, and the waters gushed out. - -48:22 There is no peace, saith the LORD, unto the wicked. - -49:1 Listen, O isles, unto me; and hearken, ye people, from far; The -LORD hath called me from the womb; from the bowels of my mother hath -he made mention of my name. - -49:2 And he hath made my mouth like a sharp sword; in the shadow of -his hand hath he hid me, and made me a polished shaft; in his quiver -hath he hid me; 49:3 And said unto me, Thou art my servant, O Israel, -in whom I will be glorified. - -49:4 Then I said, I have laboured in vain, I have spent my strength -for nought, and in vain: yet surely my judgment is with the LORD, and -my work with my God. - -49:5 And now, saith the LORD that formed me from the womb to be his -servant, to bring Jacob again to him, Though Israel be not gathered, -yet shall I be glorious in the eyes of the LORD, and my God shall be -my strength. - -49:6 And he said, It is a light thing that thou shouldest be my -servant to raise up the tribes of Jacob, and to restore the preserved -of Israel: I will also give thee for a light to the Gentiles, that -thou mayest be my salvation unto the end of the earth. - -49:7 Thus saith the LORD, the Redeemer of Israel, and his Holy One, to -him whom man despiseth, to him whom the nation abhorreth, to a servant -of rulers, Kings shall see and arise, princes also shall worship, -because of the LORD that is faithful, and the Holy One of Israel, and -he shall choose thee. - -49:8 Thus saith the LORD, In an acceptable time have I heard thee, and -in a day of salvation have I helped thee: and I will preserve thee, -and give thee for a covenant of the people, to establish the earth, to -cause to inherit the desolate heritages; 49:9 That thou mayest say to -the prisoners, Go forth; to them that are in darkness, Shew -yourselves. They shall feed in the ways, and their pastures shall be -in all high places. - -49:10 They shall not hunger nor thirst; neither shall the heat nor sun -smite them: for he that hath mercy on them shall lead them, even by -the springs of water shall he guide them. - -49:11 And I will make all my mountains a way, and my highways shall be -exalted. - -49:12 Behold, these shall come from far: and, lo, these from the north -and from the west; and these from the land of Sinim. - -49:13 Sing, O heavens; and be joyful, O earth; and break forth into -singing, O mountains: for the LORD hath comforted his people, and will -have mercy upon his afflicted. - -49:14 But Zion said, The LORD hath forsaken me, and my Lord hath -forgotten me. - -49:15 Can a woman forget her sucking child, that she should not have -compassion on the son of her womb? yea, they may forget, yet will I -not forget thee. - -49:16 Behold, I have graven thee upon the palms of my hands; thy walls -are continually before me. - -49:17 Thy children shall make haste; thy destroyers and they that made -thee waste shall go forth of thee. - -49:18 Lift up thine eyes round about, and behold: all these gather -themselves together, and come to thee. As I live, saith the LORD, thou -shalt surely clothe thee with them all, as with an ornament, and bind -them on thee, as a bride doeth. - -49:19 For thy waste and thy desolate places, and the land of thy -destruction, shall even now be too narrow by reason of the -inhabitants, and they that swallowed thee up shall be far away. - -49:20 The children which thou shalt have, after thou hast lost the -other, shall say again in thine ears, The place is too strait for me: -give place to me that I may dwell. - -49:21 Then shalt thou say in thine heart, Who hath begotten me these, -seeing I have lost my children, and am desolate, a captive, and -removing to and fro? and who hath brought up these? Behold, I was left -alone; these, where had they been? 49:22 Thus saith the Lord GOD, -Behold, I will lift up mine hand to the Gentiles, and set up my -standard to the people: and they shall bring thy sons in their arms, -and thy daughters shall be carried upon their shoulders. - -49:23 And kings shall be thy nursing fathers, and their queens thy -nursing mothers: they shall bow down to thee with their face toward -the earth, and lick up the dust of thy feet; and thou shalt know that -I am the LORD: for they shall not be ashamed that wait for me. - -49:24 Shall the prey be taken from the mighty, or the lawful captive -delivered? 49:25 But thus saith the LORD, Even the captives of the -mighty shall be taken away, and the prey of the terrible shall be -delivered: for I will contend with him that contendeth with thee, and -I will save thy children. - -49:26 And I will feed them that oppress thee with their own flesh; and -they shall be drunken with their own blood, as with sweet wine: and -all flesh shall know that I the LORD am thy Saviour and thy Redeemer, -the mighty One of Jacob. - -50:1 Thus saith the LORD, Where is the bill of your mother's -divorcement, whom I have put away? or which of my creditors is it to -whom I have sold you? Behold, for your iniquities have ye sold -yourselves, and for your transgressions is your mother put away. - -50:2 Wherefore, when I came, was there no man? when I called, was -there none to answer? Is my hand shortened at all, that it cannot -redeem? or have I no power to deliver? behold, at my rebuke I dry up -the sea, I make the rivers a wilderness: their fish stinketh, because -there is no water, and dieth for thirst. - -50:3 I clothe the heavens with blackness, and I make sackcloth their -covering. - -50:4 The Lord GOD hath given me the tongue of the learned, that I -should know how to speak a word in season to him that is weary: he -wakeneth morning by morning, he wakeneth mine ear to hear as the -learned. - -50:5 The Lord GOD hath opened mine ear, and I was not rebellious, -neither turned away back. - -50:6 I gave my back to the smiters, and my cheeks to them that plucked -off the hair: I hid not my face from shame and spitting. - -50:7 For the Lord GOD will help me; therefore shall I not be -confounded: therefore have I set my face like a flint, and I know that -I shall not be ashamed. - -50:8 He is near that justifieth me; who will contend with me? let us -stand together: who is mine adversary? let him come near to me. - -50:9 Behold, the Lord GOD will help me; who is he that shall condemn -me? lo, they all shall wax old as a garment; the moth shall eat them -up. - -50:10 Who is among you that feareth the LORD, that obeyeth the voice -of his servant, that walketh in darkness, and hath no light? let him -trust in the name of the LORD, and stay upon his God. - -50:11 Behold, all ye that kindle a fire, that compass yourselves about -with sparks: walk in the light of your fire, and in the sparks that ye -have kindled. This shall ye have of mine hand; ye shall lie down in -sorrow. - -51:1 Hearken to me, ye that follow after righteousness, ye that seek -the LORD: look unto the rock whence ye are hewn, and to the hole of -the pit whence ye are digged. - -51:2 Look unto Abraham your father, and unto Sarah that bare you: for -I called him alone, and blessed him, and increased him. - -51:3 For the LORD shall comfort Zion: he will comfort all her waste -places; and he will make her wilderness like Eden, and her desert like -the garden of the LORD; joy and gladness shall be found therein, -thanksgiving, and the voice of melody. - -51:4 Hearken unto me, my people; and give ear unto me, O my nation: -for a law shall proceed from me, and I will make my judgment to rest -for a light of the people. - -51:5 My righteousness is near; my salvation is gone forth, and mine -arms shall judge the people; the isles shall wait upon me, and on mine -arm shall they trust. - -51:6 Lift up your eyes to the heavens, and look upon the earth -beneath: for the heavens shall vanish away like smoke, and the earth -shall wax old like a garment, and they that dwell therein shall die in -like manner: but my salvation shall be for ever, and my righteousness -shall not be abolished. - -51:7 Hearken unto me, ye that know righteousness, the people in whose -heart is my law; fear ye not the reproach of men, neither be ye afraid -of their revilings. - -51:8 For the moth shall eat them up like a garment, and the worm shall -eat them like wool: but my righteousness shall be for ever, and my -salvation from generation to generation. - -51:9 Awake, awake, put on strength, O arm of the LORD; awake, as in -the ancient days, in the generations of old. Art thou not it that hath -cut Rahab, and wounded the dragon? 51:10 Art thou not it which hath -dried the sea, the waters of the great deep; that hath made the depths -of the sea a way for the ransomed to pass over? 51:11 Therefore the -redeemed of the LORD shall return, and come with singing unto Zion; -and everlasting joy shall be upon their head: they shall obtain -gladness and joy; and sorrow and mourning shall flee away. - -51:12 I, even I, am he that comforteth you: who art thou, that thou -shouldest be afraid of a man that shall die, and of the son of man -which shall be made as grass; 51:13 And forgettest the LORD thy maker, -that hath stretched forth the heavens, and laid the foundations of the -earth; and hast feared continually every day because of the fury of -the oppressor, as if he were ready to destroy? and where is the fury -of the oppressor? 51:14 The captive exile hasteneth that he may be -loosed, and that he should not die in the pit, nor that his bread -should fail. - -51:15 But I am the LORD thy God, that divided the sea, whose waves -roared: The LORD of hosts is his name. - -51:16 And I have put my words in thy mouth, and I have covered thee in -the shadow of mine hand, that I may plant the heavens, and lay the -foundations of the earth, and say unto Zion, Thou art my people. - -51:17 Awake, awake, stand up, O Jerusalem, which hast drunk at the -hand of the LORD the cup of his fury; thou hast drunken the dregs of -the cup of trembling, and wrung them out. - -51:18 There is none to guide her among all the sons whom she hath -brought forth; neither is there any that taketh her by the hand of all -the sons that she hath brought up. - -51:19 These two things are come unto thee; who shall be sorry for -thee? desolation, and destruction, and the famine, and the sword: by -whom shall I comfort thee? 51:20 Thy sons have fainted, they lie at -the head of all the streets, as a wild bull in a net: they are full of -the fury of the LORD, the rebuke of thy God. - -51:21 Therefore hear now this, thou afflicted, and drunken, but not -with wine: 51:22 Thus saith thy Lord the LORD, and thy God that -pleadeth the cause of his people, Behold, I have taken out of thine -hand the cup of trembling, even the dregs of the cup of my fury; thou -shalt no more drink it again: 51:23 But I will put it into the hand of -them that afflict thee; which have said to thy soul, Bow down, that we -may go over: and thou hast laid thy body as the ground, and as the -street, to them that went over. - -52:1 Awake, awake; put on thy strength, O Zion; put on thy beautiful -garments, O Jerusalem, the holy city: for henceforth there shall no -more come into thee the uncircumcised and the unclean. - -52:2 Shake thyself from the dust; arise, and sit down, O Jerusalem: -loose thyself from the bands of thy neck, O captive daughter of Zion. - -52:3 For thus saith the LORD, Ye have sold yourselves for nought; and -ye shall be redeemed without money. - -52:4 For thus saith the Lord GOD, My people went down aforetime into -Egypt to sojourn there; and the Assyrian oppressed them without cause. - -52:5 Now therefore, what have I here, saith the LORD, that my people -is taken away for nought? they that rule over them make them to howl, -saith the LORD; and my name continually every day is blasphemed. - -52:6 Therefore my people shall know my name: therefore they shall know -in that day that I am he that doth speak: behold, it is I. - -52:7 How beautiful upon the mountains are the feet of him that -bringeth good tidings, that publisheth peace; that bringeth good -tidings of good, that publisheth salvation; that saith unto Zion, Thy -God reigneth! 52:8 Thy watchmen shall lift up the voice; with the -voice together shall they sing: for they shall see eye to eye, when -the LORD shall bring again Zion. - -52:9 Break forth into joy, sing together, ye waste places of -Jerusalem: for the LORD hath comforted his people, he hath redeemed -Jerusalem. - -52:10 The LORD hath made bare his holy arm in the eyes of all the -nations; and all the ends of the earth shall see the salvation of our -God. - -52:11 Depart ye, depart ye, go ye out from thence, touch no unclean -thing; go ye out of the midst of her; be ye clean, that bear the -vessels of the LORD. - -52:12 For ye shall not go out with haste, nor go by flight: for the -LORD will go before you; and the God of Israel will be your rereward. - -52:13 Behold, my servant shall deal prudently, he shall be exalted and -extolled, and be very high. - -52:14 As many were astonied at thee; his visage was so marred more -than any man, and his form more than the sons of men: 52:15 So shall -he sprinkle many nations; the kings shall shut their mouths at him: -for that which had not been told them shall they see; and that which -they had not heard shall they consider. - -53:1 Who hath believed our report? and to whom is the arm of the LORD -revealed? 53:2 For he shall grow up before him as a tender plant, and -as a root out of a dry ground: he hath no form nor comeliness; and -when we shall see him, there is no beauty that we should desire him. - -53:3 He is despised and rejected of men; a man of sorrows, and -acquainted with grief: and we hid as it were our faces from him; he -was despised, and we esteemed him not. - -53:4 Surely he hath borne our griefs, and carried our sorrows: yet we -did esteem him stricken, smitten of God, and afflicted. - -53:5 But he was wounded for our transgressions, he was bruised for our -iniquities: the chastisement of our peace was upon him; and with his -stripes we are healed. - -53:6 All we like sheep have gone astray; we have turned every one to -his own way; and the LORD hath laid on him the iniquity of us all. - -53:7 He was oppressed, and he was afflicted, yet he opened not his -mouth: he is brought as a lamb to the slaughter, and as a sheep before -her shearers is dumb, so he openeth not his mouth. - -53:8 He was taken from prison and from judgment: and who shall declare -his generation? for he was cut off out of the land of the living: for -the transgression of my people was he stricken. - -53:9 And he made his grave with the wicked, and with the rich in his -death; because he had done no violence, neither was any deceit in his -mouth. - -53:10 Yet it pleased the LORD to bruise him; he hath put him to grief: -when thou shalt make his soul an offering for sin, he shall see his -seed, he shall prolong his days, and the pleasure of the LORD shall -prosper in his hand. - -53:11 He shall see of the travail of his soul, and shall be satisfied: -by his knowledge shall my righteous servant justify many; for he shall -bear their iniquities. - -53:12 Therefore will I divide him a portion with the great, and he -shall divide the spoil with the strong; because he hath poured out his -soul unto death: and he was numbered with the transgressors; and he -bare the sin of many, and made intercession for the transgressors. - -54:1 Sing, O barren, thou that didst not bear; break forth into -singing, and cry aloud, thou that didst not travail with child: for -more are the children of the desolate than the children of the married -wife, saith the LORD. - -54:2 Enlarge the place of thy tent, and let them stretch forth the -curtains of thine habitations: spare not, lengthen thy cords, and -strengthen thy stakes; 54:3 For thou shalt break forth on the right -hand and on the left; and thy seed shall inherit the Gentiles, and -make the desolate cities to be inhabited. - -54:4 Fear not; for thou shalt not be ashamed: neither be thou -confounded; for thou shalt not be put to shame: for thou shalt forget -the shame of thy youth, and shalt not remember the reproach of thy -widowhood any more. - -54:5 For thy Maker is thine husband; the LORD of hosts is his name; -and thy Redeemer the Holy One of Israel; The God of the whole earth -shall he be called. - -54:6 For the LORD hath called thee as a woman forsaken and grieved in -spirit, and a wife of youth, when thou wast refused, saith thy God. - -54:7 For a small moment have I forsaken thee; but with great mercies -will I gather thee. - -54:8 In a little wrath I hid my face from thee for a moment; but with -everlasting kindness will I have mercy on thee, saith the LORD thy -Redeemer. - -54:9 For this is as the waters of Noah unto me: for as I have sworn -that the waters of Noah should no more go over the earth; so have I -sworn that I would not be wroth with thee, nor rebuke thee. - -54:10 For the mountains shall depart, and the hills be removed; but my -kindness shall not depart from thee, neither shall the covenant of my -peace be removed, saith the LORD that hath mercy on thee. - -54:11 O thou afflicted, tossed with tempest, and not comforted, -behold, I will lay thy stones with fair colours, and lay thy -foundations with sapphires. - -54:12 And I will make thy windows of agates, and thy gates of -carbuncles, and all thy borders of pleasant stones. - -54:13 And all thy children shall be taught of the LORD; and great -shall be the peace of thy children. - -54:14 In righteousness shalt thou be established: thou shalt be far -from oppression; for thou shalt not fear: and from terror; for it -shall not come near thee. - -54:15 Behold, they shall surely gather together, but not by me: -whosoever shall gather together against thee shall fall for thy sake. - -54:16 Behold, I have created the smith that bloweth the coals in the -fire, and that bringeth forth an instrument for his work; and I have -created the waster to destroy. - -54:17 No weapon that is formed against thee shall prosper; and every -tongue that shall rise against thee in judgment thou shalt condemn. -This is the heritage of the servants of the LORD, and their -righteousness is of me, saith the LORD. - -55:1 Ho, every one that thirsteth, come ye to the waters, and he that -hath no money; come ye, buy, and eat; yea, come, buy wine and milk -without money and without price. - -55:2 Wherefore do ye spend money for that which is not bread? and your -labour for that which satisfieth not? hearken diligently unto me, and -eat ye that which is good, and let your soul delight itself in -fatness. - -55:3 Incline your ear, and come unto me: hear, and your soul shall -live; and I will make an everlasting covenant with you, even the sure -mercies of David. - -55:4 Behold, I have given him for a witness to the people, a leader -and commander to the people. - -55:5 Behold, thou shalt call a nation that thou knowest not, and -nations that knew not thee shall run unto thee because of the LORD thy -God, and for the Holy One of Israel; for he hath glorified thee. - -55:6 Seek ye the LORD while he may be found, call ye upon him while he -is near: 55:7 Let the wicked forsake his way, and the unrighteous man -his thoughts: and let him return unto the LORD, and he will have mercy -upon him; and to our God, for he will abundantly pardon. - -55:8 For my thoughts are not your thoughts, neither are your ways my -ways, saith the LORD. - -55:9 For as the heavens are higher than the earth, so are my ways -higher than your ways, and my thoughts than your thoughts. - -55:10 For as the rain cometh down, and the snow from heaven, and -returneth not thither, but watereth the earth, and maketh it bring -forth and bud, that it may give seed to the sower, and bread to the -eater: 55:11 So shall my word be that goeth forth out of my mouth: it -shall not return unto me void, but it shall accomplish that which I -please, and it shall prosper in the thing whereto I sent it. - -55:12 For ye shall go out with joy, and be led forth with peace: the -mountains and the hills shall break forth before you into singing, and -all the trees of the field shall clap their hands. - -55:13 Instead of the thorn shall come up the fir tree, and instead of -the brier shall come up the myrtle tree: and it shall be to the LORD -for a name, for an everlasting sign that shall not be cut off. - -56:1 Thus saith the LORD, Keep ye judgment, and do justice: for my -salvation is near to come, and my righteousness to be revealed. - -56:2 Blessed is the man that doeth this, and the son of man that -layeth hold on it; that keepeth the sabbath from polluting it, and -keepeth his hand from doing any evil. - -56:3 Neither let the son of the stranger, that hath joined himself to -the LORD, speak, saying, The LORD hath utterly separated me from his -people: neither let the eunuch say, Behold, I am a dry tree. - -56:4 For thus saith the LORD unto the eunuchs that keep my sabbaths, -and choose the things that please me, and take hold of my covenant; -56:5 Even unto them will I give in mine house and within my walls a -place and a name better than of sons and of daughters: I will give -them an everlasting name, that shall not be cut off. - -56:6 Also the sons of the stranger, that join themselves to the LORD, -to serve him, and to love the name of the LORD, to be his servants, -every one that keepeth the sabbath from polluting it, and taketh hold -of my covenant; 56:7 Even them will I bring to my holy mountain, and -make them joyful in my house of prayer: their burnt offerings and -their sacrifices shall be accepted upon mine altar; for mine house -shall be called an house of prayer for all people. - -56:8 The Lord GOD, which gathereth the outcasts of Israel saith, Yet -will I gather others to him, beside those that are gathered unto him. - -56:9 All ye beasts of the field, come to devour, yea, all ye beasts in -the forest. - -56:10 His watchmen are blind: they are all ignorant, they are all dumb -dogs, they cannot bark; sleeping, lying down, loving to slumber. - -56:11 Yea, they are greedy dogs which can never have enough, and they -are shepherds that cannot understand: they all look to their own way, -every one for his gain, from his quarter. - -56:12 Come ye, say they, I will fetch wine, and we will fill ourselves -with strong drink; and to morrow shall be as this day, and much more -abundant. - -57:1 The righteous perisheth, and no man layeth it to heart: and -merciful men are taken away, none considering that the righteous is -taken away from the evil to come. - -57:2 He shall enter into peace: they shall rest in their beds, each -one walking in his uprightness. - -57:3 But draw near hither, ye sons of the sorceress, the seed of the -adulterer and the whore. - -57:4 Against whom do ye sport yourselves? against whom make ye a wide -mouth, and draw out the tongue? are ye not children of transgression, -a seed of falsehood. - -57:5 Enflaming yourselves with idols under every green tree, slaying -the children in the valleys under the clifts of the rocks? 57:6 Among -the smooth stones of the stream is thy portion; they, they are thy -lot: even to them hast thou poured a drink offering, thou hast offered -a meat offering. Should I receive comfort in these? 57:7 Upon a lofty -and high mountain hast thou set thy bed: even thither wentest thou up -to offer sacrifice. - -57:8 Behind the doors also and the posts hast thou set up thy -remembrance: for thou hast discovered thyself to another than me, and -art gone up; thou hast enlarged thy bed, and made thee a covenant with -them; thou lovedst their bed where thou sawest it. - -57:9 And thou wentest to the king with ointment, and didst increase -thy perfumes, and didst send thy messengers far off, and didst debase -thyself even unto hell. - -57:10 Thou art wearied in the greatness of thy way; yet saidst thou -not, There is no hope: thou hast found the life of thine hand; -therefore thou wast not grieved. - -57:11 And of whom hast thou been afraid or feared, that thou hast -lied, and hast not remembered me, nor laid it to thy heart? have not I -held my peace even of old, and thou fearest me not? 57:12 I will -declare thy righteousness, and thy works; for they shall not profit -thee. - -57:13 When thou criest, let thy companies deliver thee; but the wind -shall carry them all away; vanity shall take them: but he that putteth -his trust in me shall possess the land, and shall inherit my holy -mountain; 57:14 And shall say, Cast ye up, cast ye up, prepare the -way, take up the stumblingblock out of the way of my people. - -57:15 For thus saith the high and lofty One that inhabiteth eternity, -whose name is Holy; I dwell in the high and holy place, with him also -that is of a contrite and humble spirit, to revive the spirit of the -humble, and to revive the heart of the contrite ones. - -57:16 For I will not contend for ever, neither will I be always wroth: -for the spirit should fail before me, and the souls which I have made. - -57:17 For the iniquity of his covetousness was I wroth, and smote him: -I hid me, and was wroth, and he went on frowardly in the way of his -heart. - -57:18 I have seen his ways, and will heal him: I will lead him also, -and restore comforts unto him and to his mourners. - -57:19 I create the fruit of the lips; Peace, peace to him that is far -off, and to him that is near, saith the LORD; and I will heal him. - -57:20 But the wicked are like the troubled sea, when it cannot rest, -whose waters cast up mire and dirt. - -57:21 There is no peace, saith my God, to the wicked. - -58:1 Cry aloud, spare not, lift up thy voice like a trumpet, and shew -my people their transgression, and the house of Jacob their sins. - -58:2 Yet they seek me daily, and delight to know my ways, as a nation -that did righteousness, and forsook not the ordinance of their God: -they ask of me the ordinances of justice; they take delight in -approaching to God. - -58:3 Wherefore have we fasted, say they, and thou seest not? wherefore -have we afflicted our soul, and thou takest no knowledge? Behold, in -the day of your fast ye find pleasure, and exact all your labours. - -58:4 Behold, ye fast for strife and debate, and to smite with the fist -of wickedness: ye shall not fast as ye do this day, to make your voice -to be heard on high. - -58:5 Is it such a fast that I have chosen? a day for a man to afflict -his soul? is it to bow down his head as a bulrush, and to spread -sackcloth and ashes under him? wilt thou call this a fast, and an -acceptable day to the LORD? 58:6 Is not this the fast that I have -chosen? to loose the bands of wickedness, to undo the heavy burdens, -and to let the oppressed go free, and that ye break every yoke? 58:7 -Is it not to deal thy bread to the hungry, and that thou bring the -poor that are cast out to thy house? when thou seest the naked, that -thou cover him; and that thou hide not thyself from thine own flesh? -58:8 Then shall thy light break forth as the morning, and thine health -shall spring forth speedily: and thy righteousness shall go before -thee; the glory of the LORD shall be thy rereward. - -58:9 Then shalt thou call, and the LORD shall answer; thou shalt cry, -and he shall say, Here I am. If thou take away from the midst of thee -the yoke, the putting forth of the finger, and speaking vanity; 58:10 -And if thou draw out thy soul to the hungry, and satisfy the afflicted -soul; then shall thy light rise in obscurity, and thy darkness be as -the noon day: 58:11 And the LORD shall guide thee continually, and -satisfy thy soul in drought, and make fat thy bones: and thou shalt be -like a watered garden, and like a spring of water, whose waters fail -not. - -58:12 And they that shall be of thee shall build the old waste places: -thou shalt raise up the foundations of many generations; and thou -shalt be called, The repairer of the breach, The restorer of paths to -dwell in. - -58:13 If thou turn away thy foot from the sabbath, from doing thy -pleasure on my holy day; and call the sabbath a delight, the holy of -the LORD, honourable; and shalt honour him, not doing thine own ways, -nor finding thine own pleasure, nor speaking thine own words: 58:14 -Then shalt thou delight thyself in the LORD; and I will cause thee to -ride upon the high places of the earth, and feed thee with the -heritage of Jacob thy father: for the mouth of the LORD hath spoken -it. - -59:1 Behold, the LORD's hand is not shortened, that it cannot save; -neither his ear heavy, that it cannot hear: 59:2 But your iniquities -have separated between you and your God, and your sins have hid his -face from you, that he will not hear. - -59:3 For your hands are defiled with blood, and your fingers with -iniquity; your lips have spoken lies, your tongue hath muttered -perverseness. - -59:4 None calleth for justice, nor any pleadeth for truth: they trust -in vanity, and speak lies; they conceive mischief, and bring forth -iniquity. - -59:5 They hatch cockatrice' eggs, and weave the spider's web: he that -eateth of their eggs dieth, and that which is crushed breaketh out -into a viper. - -59:6 Their webs shall not become garments, neither shall they cover -themselves with their works: their works are works of iniquity, and -the act of violence is in their hands. - -59:7 Their feet run to evil, and they make haste to shed innocent -blood: their thoughts are thoughts of iniquity; wasting and -destruction are in their paths. - -59:8 The way of peace they know not; and there is no judgment in their -goings: they have made them crooked paths: whosoever goeth therein -shall not know peace. - -59:9 Therefore is judgment far from us, neither doth justice overtake -us: we wait for light, but behold obscurity; for brightness, but we -walk in darkness. - -59:10 We grope for the wall like the blind, and we grope as if we had -no eyes: we stumble at noon day as in the night; we are in desolate -places as dead men. - -59:11 We roar all like bears, and mourn sore like doves: we look for -judgment, but there is none; for salvation, but it is far off from us. - -59:12 For our transgressions are multiplied before thee, and our sins -testify against us: for our transgressions are with us; and as for our -iniquities, we know them; 59:13 In transgressing and lying against the -LORD, and departing away from our God, speaking oppression and revolt, -conceiving and uttering from the heart words of falsehood. - -59:14 And judgment is turned away backward, and justice standeth afar -off: for truth is fallen in the street, and equity cannot enter. - -59:15 Yea, truth faileth; and he that departeth from evil maketh -himself a prey: and the LORD saw it, and it displeased him that there -was no judgment. - -59:16 And he saw that there was no man, and wondered that there was no -intercessor: therefore his arm brought salvation unto him; and his -righteousness, it sustained him. - -59:17 For he put on righteousness as a breastplate, and an helmet of -salvation upon his head; and he put on the garments of vengeance for -clothing, and was clad with zeal as a cloak. - -59:18 According to their deeds, accordingly he will repay, fury to his -adversaries, recompence to his enemies; to the islands he will repay -recompence. - -59:19 So shall they fear the name of the LORD from the west, and his -glory from the rising of the sun. When the enemy shall come in like a -flood, the Spirit of the LORD shall lift up a standard against him. - -59:20 And the Redeemer shall come to Zion, and unto them that turn -from transgression in Jacob, saith the LORD. - -59:21 As for me, this is my covenant with them, saith the LORD; My -spirit that is upon thee, and my words which I have put in thy mouth, -shall not depart out of thy mouth, nor out of the mouth of thy seed, -nor out of the mouth of thy seed's seed, saith the LORD, from -henceforth and for ever. - -60:1 Arise, shine; for thy light is come, and the glory of the LORD is -risen upon thee. - -60:2 For, behold, the darkness shall cover the earth, and gross -darkness the people: but the LORD shall arise upon thee, and his glory -shall be seen upon thee. - -60:3 And the Gentiles shall come to thy light, and kings to the -brightness of thy rising. - -60:4 Lift up thine eyes round about, and see: all they gather -themselves together, they come to thee: thy sons shall come from far, -and thy daughters shall be nursed at thy side. - -60:5 Then thou shalt see, and flow together, and thine heart shall -fear, and be enlarged; because the abundance of the sea shall be -converted unto thee, the forces of the Gentiles shall come unto thee. - -60:6 The multitude of camels shall cover thee, the dromedaries of -Midian and Ephah; all they from Sheba shall come: they shall bring -gold and incense; and they shall shew forth the praises of the LORD. - -60:7 All the flocks of Kedar shall be gathered together unto thee, the -rams of Nebaioth shall minister unto thee: they shall come up with -acceptance on mine altar, and I will glorify the house of my glory. - -60:8 Who are these that fly as a cloud, and as the doves to their -windows? 60:9 Surely the isles shall wait for me, and the ships of -Tarshish first, to bring thy sons from far, their silver and their -gold with them, unto the name of the LORD thy God, and to the Holy One -of Israel, because he hath glorified thee. - -60:10 And the sons of strangers shall build up thy walls, and their -kings shall minister unto thee: for in my wrath I smote thee, but in -my favour have I had mercy on thee. - -60:11 Therefore thy gates shall be open continually; they shall not be -shut day nor night; that men may bring unto thee the forces of the -Gentiles, and that their kings may be brought. - -60:12 For the nation and kingdom that will not serve thee shall -perish; yea, those nations shall be utterly wasted. - -60:13 The glory of Lebanon shall come unto thee, the fir tree, the -pine tree, and the box together, to beautify the place of my -sanctuary; and I will make the place of my feet glorious. - -60:14 The sons also of them that afflicted thee shall come bending -unto thee; and all they that despised thee shall bow themselves down -at the soles of thy feet; and they shall call thee; The city of the -LORD, The Zion of the Holy One of Israel. - -60:15 Whereas thou has been forsaken and hated, so that no man went -through thee, I will make thee an eternal excellency, a joy of many -generations. - -60:16 Thou shalt also suck the milk of the Gentiles, and shalt suck -the breast of kings: and thou shalt know that I the LORD am thy -Saviour and thy Redeemer, the mighty One of Jacob. - -60:17 For brass I will bring gold, and for iron I will bring silver, -and for wood brass, and for stones iron: I will also make thy officers -peace, and thine exactors righteousness. - -60:18 Violence shall no more be heard in thy land, wasting nor -destruction within thy borders; but thou shalt call thy walls -Salvation, and thy gates Praise. - -60:19 The sun shall be no more thy light by day; neither for -brightness shall the moon give light unto thee: but the LORD shall be -unto thee an everlasting light, and thy God thy glory. - -60:20 Thy sun shall no more go down; neither shall thy moon withdraw -itself: for the LORD shall be thine everlasting light, and the days of -thy mourning shall be ended. - -60:21 Thy people also shall be all righteous: they shall inherit the -land for ever, the branch of my planting, the work of my hands, that I -may be glorified. - -60:22 A little one shall become a thousand, and a small one a strong -nation: I the LORD will hasten it in his time. - -61:1 The Spirit of the Lord GOD is upon me; because the LORD hath -anointed me to preach good tidings unto the meek; he hath sent me to -bind up the brokenhearted, to proclaim liberty to the captives, and -the opening of the prison to them that are bound; 61:2 To proclaim the -acceptable year of the LORD, and the day of vengeance of our God; to -comfort all that mourn; 61:3 To appoint unto them that mourn in Zion, -to give unto them beauty for ashes, the oil of joy for mourning, the -garment of praise for the spirit of heaviness; that they might be -called trees of righteousness, the planting of the LORD, that he might -be glorified. - -61:4 And they shall build the old wastes, they shall raise up the -former desolations, and they shall repair the waste cities, the -desolations of many generations. - -61:5 And strangers shall stand and feed your flocks, and the sons of -the alien shall be your plowmen and your vinedressers. - -61:6 But ye shall be named the Priests of the LORD: men shall call you -the Ministers of our God: ye shall eat the riches of the Gentiles, and -in their glory shall ye boast yourselves. - -61:7 For your shame ye shall have double; and for confusion they shall -rejoice in their portion: therefore in their land they shall possess -the double: everlasting joy shall be unto them. - -61:8 For I the LORD love judgment, I hate robbery for burnt offering; -and I will direct their work in truth, and I will make an everlasting -covenant with them. - -61:9 And their seed shall be known among the Gentiles, and their -offspring among the people: all that see them shall acknowledge them, -that they are the seed which the LORD hath blessed. - -61:10 I will greatly rejoice in the LORD, my soul shall be joyful in -my God; for he hath clothed me with the garments of salvation, he hath -covered me with the robe of righteousness, as a bridegroom decketh -himself with ornaments, and as a bride adorneth herself with her -jewels. - -61:11 For as the earth bringeth forth her bud, and as the garden -causeth the things that are sown in it to spring forth; so the Lord -GOD will cause righteousness and praise to spring forth before all the -nations. - -62:1 For Zion's sake will I not hold my peace, and for Jerusalem's -sake I will not rest, until the righteousness thereof go forth as -brightness, and the salvation thereof as a lamp that burneth. - -62:2 And the Gentiles shall see thy righteousness, and all kings thy -glory: and thou shalt be called by a new name, which the mouth of the -LORD shall name. - -62:3 Thou shalt also be a crown of glory in the hand of the LORD, and -a royal diadem in the hand of thy God. - -62:4 Thou shalt no more be termed Forsaken; neither shall thy land any -more be termed Desolate: but thou shalt be called Hephzibah, and thy -land Beulah: for the LORD delighteth in thee, and thy land shall be -married. - -62:5 For as a young man marrieth a virgin, so shall thy sons marry -thee: and as the bridegroom rejoiceth over the bride, so shall thy God -rejoice over thee. - -62:6 I have set watchmen upon thy walls, O Jerusalem, which shall -never hold their peace day nor night: ye that make mention of the -LORD, keep not silence, 62:7 And give him no rest, till he establish, -and till he make Jerusalem a praise in the earth. - -62:8 The LORD hath sworn by his right hand, and by the arm of his -strength, Surely I will no more give thy corn to be meat for thine -enemies; and the sons of the stranger shall not drink thy wine, for -the which thou hast laboured: 62:9 But they that have gathered it -shall eat it, and praise the LORD; and they that have brought it -together shall drink it in the courts of my holiness. - -62:10 Go through, go through the gates; prepare ye the way of the -people; cast up, cast up the highway; gather out the stones; lift up a -standard for the people. - -62:11 Behold, the LORD hath proclaimed unto the end of the world, Say -ye to the daughter of Zion, Behold, thy salvation cometh; behold, his -reward is with him, and his work before him. - -62:12 And they shall call them, The holy people, The redeemed of the -LORD: and thou shalt be called, Sought out, A city not forsaken. - -63:1 Who is this that cometh from Edom, with dyed garments from -Bozrah? this that is glorious in his apparel, travelling in the -greatness of his strength? I that speak in righteousness, mighty to -save. - -63:2 Wherefore art thou red in thine apparel, and thy garments like -him that treadeth in the winefat? 63:3 I have trodden the winepress -alone; and of the people there was none with me: for I will tread them -in mine anger, and trample them in my fury; and their blood shall be -sprinkled upon my garments, and I will stain all my raiment. - -63:4 For the day of vengeance is in mine heart, and the year of my -redeemed is come. - -63:5 And I looked, and there was none to help; and I wondered that -there was none to uphold: therefore mine own arm brought salvation -unto me; and my fury, it upheld me. - -63:6 And I will tread down the people in mine anger, and make them -drunk in my fury, and I will bring down their strength to the earth. - -63:7 I will mention the lovingkindnesses of the LORD, and the praises -of the LORD, according to all that the LORD hath bestowed on us, and -the great goodness toward the house of Israel, which he hath bestowed -on them according to his mercies, and according to the multitude of -his lovingkindnesses. - -63:8 For he said, Surely they are my people, children that will not -lie: so he was their Saviour. - -63:9 In all their affliction he was afflicted, and the angel of his -presence saved them: in his love and in his pity he redeemed them; and -he bare them, and carried them all the days of old. - -63:10 But they rebelled, and vexed his holy Spirit: therefore he was -turned to be their enemy, and he fought against them. - -63:11 Then he remembered the days of old, Moses, and his people, -saying, Where is he that brought them up out of the sea with the -shepherd of his flock? where is he that put his holy Spirit within -him? 63:12 That led them by the right hand of Moses with his glorious -arm, dividing the water before them, to make himself an everlasting -name? 63:13 That led them through the deep, as an horse in the -wilderness, that they should not stumble? 63:14 As a beast goeth down -into the valley, the Spirit of the LORD caused him to rest: so didst -thou lead thy people, to make thyself a glorious name. - -63:15 Look down from heaven, and behold from the habitation of thy -holiness and of thy glory: where is thy zeal and thy strength, the -sounding of thy bowels and of thy mercies toward me? are they -restrained? 63:16 Doubtless thou art our father, though Abraham be -ignorant of us, and Israel acknowledge us not: thou, O LORD, art our -father, our redeemer; thy name is from everlasting. - -63:17 O LORD, why hast thou made us to err from thy ways, and hardened -our heart from thy fear? Return for thy servants' sake, the tribes of -thine inheritance. - -63:18 The people of thy holiness have possessed it but a little while: -our adversaries have trodden down thy sanctuary. - -63:19 We are thine: thou never barest rule over them; they were not -called by thy name. - -64:1 Oh that thou wouldest rend the heavens, that thou wouldest come -down, that the mountains might flow down at thy presence, 64:2 As when -the melting fire burneth, the fire causeth the waters to boil, to make -thy name known to thine adversaries, that the nations may tremble at -thy presence! 64:3 When thou didst terrible things which we looked -not for, thou camest down, the mountains flowed down at thy presence. - -64:4 For since the beginning of the world men have not heard, nor -perceived by the ear, neither hath the eye seen, O God, beside thee, -what he hath prepared for him that waiteth for him. - -64:5 Thou meetest him that rejoiceth and worketh righteousness, those -that remember thee in thy ways: behold, thou art wroth; for we have -sinned: in those is continuance, and we shall be saved. - -64:6 But we are all as an unclean thing, and all our righteousnesses -are as filthy rags; and we all do fade as a leaf; and our iniquities, -like the wind, have taken us away. - -64:7 And there is none that calleth upon thy name, that stirreth up -himself to take hold of thee: for thou hast hid thy face from us, and -hast consumed us, because of our iniquities. - -64:8 But now, O LORD, thou art our father; we are the clay, and thou -our potter; and we all are the work of thy hand. - -64:9 Be not wroth very sore, O LORD, neither remember iniquity for -ever: behold, see, we beseech thee, we are all thy people. - -64:10 Thy holy cities are a wilderness, Zion is a wilderness, -Jerusalem a desolation. - -64:11 Our holy and our beautiful house, where our fathers praised -thee, is burned up with fire: and all our pleasant things are laid -waste. - -64:12 Wilt thou refrain thyself for these things, O LORD? wilt thou -hold thy peace, and afflict us very sore? 65:1 I am sought of them -that asked not for me; I am found of them that sought me not: I said, -Behold me, behold me, unto a nation that was not called by my name. - -65:2 I have spread out my hands all the day unto a rebellious people, -which walketh in a way that was not good, after their own thoughts; -65:3 A people that provoketh me to anger continually to my face; that -sacrificeth in gardens, and burneth incense upon altars of brick; 65:4 -Which remain among the graves, and lodge in the monuments, which eat -swine's flesh, and broth of abominable things is in their vessels; -65:5 Which say, Stand by thyself, come not near to me; for I am holier -than thou. These are a smoke in my nose, a fire that burneth all the -day. - -65:6 Behold, it is written before me: I will not keep silence, but -will recompense, even recompense into their bosom, 65:7 Your -iniquities, and the iniquities of your fathers together, saith the -LORD, which have burned incense upon the mountains, and blasphemed me -upon the hills: therefore will I measure their former work into their -bosom. - -65:8 Thus saith the LORD, As the new wine is found in the cluster, and -one saith, Destroy it not; for a blessing is in it: so will I do for -my servants' sakes, that I may not destroy them all. - -65:9 And I will bring forth a seed out of Jacob, and out of Judah an -inheritor of my mountains: and mine elect shall inherit it, and my -servants shall dwell there. - -65:10 And Sharon shall be a fold of flocks, and the valley of Achor a -place for the herds to lie down in, for my people that have sought me. - -65:11 But ye are they that forsake the LORD, that forget my holy -mountain, that prepare a table for that troop, and that furnish the -drink offering unto that number. - -65:12 Therefore will I number you to the sword, and ye shall all bow -down to the slaughter: because when I called, ye did not answer; when -I spake, ye did not hear; but did evil before mine eyes, and did -choose that wherein I delighted not. - -65:13 Therefore thus saith the Lord GOD, Behold, my servants shall -eat, but ye shall be hungry: behold, my servants shall drink, but ye -shall be thirsty: behold, my servants shall rejoice, but ye shall be -ashamed: 65:14 Behold, my servants shall sing for joy of heart, but ye -shall cry for sorrow of heart, and shall howl for vexation of spirit. - -65:15 And ye shall leave your name for a curse unto my chosen: for the -Lord GOD shall slay thee, and call his servants by another name: 65:16 -That he who blesseth himself in the earth shall bless himself in the -God of truth; and he that sweareth in the earth shall swear by the God -of truth; because the former troubles are forgotten, and because they -are hid from mine eyes. - -65:17 For, behold, I create new heavens and a new earth: and the -former shall not be remembered, nor come into mind. - -65:18 But be ye glad and rejoice for ever in that which I create: for, -behold, I create Jerusalem a rejoicing, and her people a joy. - -65:19 And I will rejoice in Jerusalem, and joy in my people: and the -voice of weeping shall be no more heard in her, nor the voice of -crying. - -65:20 There shall be no more thence an infant of days, nor an old man -that hath not filled his days: for the child shall die an hundred -years old; but the sinner being an hundred years old shall be -accursed. - -65:21 And they shall build houses, and inhabit them; and they shall -plant vineyards, and eat the fruit of them. - -65:22 They shall not build, and another inhabit; they shall not plant, -and another eat: for as the days of a tree are the days of my people, -and mine elect shall long enjoy the work of their hands. - -65:23 They shall not labour in vain, nor bring forth for trouble; for -they are the seed of the blessed of the LORD, and their offspring with -them. - -65:24 And it shall come to pass, that before they call, I will answer; -and while they are yet speaking, I will hear. - -65:25 The wolf and the lamb shall feed together, and the lion shall -eat straw like the bullock: and dust shall be the serpent's meat. They -shall not hurt nor destroy in all my holy mountain, saith the LORD. - -66:1 Thus saith the LORD, The heaven is my throne, and the earth is my -footstool: where is the house that ye build unto me? and where is the -place of my rest? 66:2 For all those things hath mine hand made, and -all those things have been, saith the LORD: but to this man will I -look, even to him that is poor and of a contrite spirit, and trembleth -at my word. - -66:3 He that killeth an ox is as if he slew a man; he that sacrificeth -a lamb, as if he cut off a dog's neck; he that offereth an oblation, -as if he offered swine's blood; he that burneth incense, as if he -blessed an idol. - -Yea, they have chosen their own ways, and their soul delighteth in -their abominations. - -66:4 I also will choose their delusions, and will bring their fears -upon them; because when I called, none did answer; when I spake, they -did not hear: but they did evil before mine eyes, and chose that in -which I delighted not. - -66:5 Hear the word of the LORD, ye that tremble at his word; Your -brethren that hated you, that cast you out for my name's sake, said, -Let the LORD be glorified: but he shall appear to your joy, and they -shall be ashamed. - -66:6 A voice of noise from the city, a voice from the temple, a voice -of the LORD that rendereth recompence to his enemies. - -66:7 Before she travailed, she brought forth; before her pain came, -she was delivered of a man child. - -66:8 Who hath heard such a thing? who hath seen such things? Shall the -earth be made to bring forth in one day? or shall a nation be born at -once? for as soon as Zion travailed, she brought forth her children. - -66:9 Shall I bring to the birth, and not cause to bring forth? saith -the LORD: shall I cause to bring forth, and shut the womb? saith thy -God. - -66:10 Rejoice ye with Jerusalem, and be glad with her, all ye that -love her: rejoice for joy with her, all ye that mourn for her: 66:11 -That ye may suck, and be satisfied with the breasts of her -consolations; that ye may milk out, and be delighted with the -abundance of her glory. - -66:12 For thus saith the LORD, Behold, I will extend peace to her like -a river, and the glory of the Gentiles like a flowing stream: then -shall ye suck, ye shall be borne upon her sides, and be dandled upon -her knees. - -66:13 As one whom his mother comforteth, so will I comfort you; and ye -shall be comforted in Jerusalem. - -66:14 And when ye see this, your heart shall rejoice, and your bones -shall flourish like an herb: and the hand of the LORD shall be known -toward his servants, and his indignation toward his enemies. - -66:15 For, behold, the LORD will come with fire, and with his chariots -like a whirlwind, to render his anger with fury, and his rebuke with -flames of fire. - -66:16 For by fire and by his sword will the LORD plead with all flesh: -and the slain of the LORD shall be many. - -66:17 They that sanctify themselves, and purify themselves in the -gardens behind one tree in the midst, eating swine's flesh, and the -abomination, and the mouse, shall be consumed together, saith the -LORD. - -66:18 For I know their works and their thoughts: it shall come, that I -will gather all nations and tongues; and they shall come, and see my -glory. - -66:19 And I will set a sign among them, and I will send those that -escape of them unto the nations, to Tarshish, Pul, and Lud, that draw -the bow, to Tubal, and Javan, to the isles afar off, that have not -heard my fame, neither have seen my glory; and they shall declare my -glory among the Gentiles. - -66:20 And they shall bring all your brethren for an offering unto the -LORD out of all nations upon horses, and in chariots, and in litters, -and upon mules, and upon swift beasts, to my holy mountain Jerusalem, -saith the LORD, as the children of Israel bring an offering in a clean -vessel into the house of the LORD. - -66:21 And I will also take of them for priests and for Levites, saith -the LORD. - -66:22 For as the new heavens and the new earth, which I will make, -shall remain before me, saith the LORD, so shall your seed and your -name remain. - -66:23 And it shall come to pass, that from one new moon to another, -and from one sabbath to another, shall all flesh come to worship -before me, saith the LORD. - -66:24 And they shall go forth, and look upon the carcases of the men -that have transgressed against me: for their worm shall not die, -neither shall their fire be quenched; and they shall be an abhorring -unto all flesh. - - - - -The Book of the Prophet Jeremiah - - -1:1 The words of Jeremiah the son of Hilkiah, of the priests that -were in Anathoth in the land of Benjamin: 1:2 To whom the word of the -LORD came in the days of Josiah the son of Amon king of Judah, in the -thirteenth year of his reign. - -1:3 It came also in the days of Jehoiakim the son of Josiah king of -Judah, unto the end of the eleventh year of Zedekiah the son of Josiah -king of Judah, unto the carrying away of Jerusalem captive in the -fifth month. - -1:4 Then the word of the LORD came unto me, saying, 1:5 Before I -formed thee in the belly I knew thee; and before thou camest forth out -of the womb I sanctified thee, and I ordained thee a prophet unto the -nations. - -1:6 Then said I, Ah, Lord GOD! behold, I cannot speak: for I am a -child. - -1:7 But the LORD said unto me, Say not, I am a child: for thou shalt -go to all that I shall send thee, and whatsoever I command thee thou -shalt speak. - -1:8 Be not afraid of their faces: for I am with thee to deliver thee, -saith the LORD. - -1:9 Then the LORD put forth his hand, and touched my mouth. And the -LORD said unto me, Behold, I have put my words in thy mouth. - -1:10 See, I have this day set thee over the nations and over the -kingdoms, to root out, and to pull down, and to destroy, and to throw -down, to build, and to plant. - -1:11 Moreover the word of the LORD came unto me, saying, Jeremiah, -what seest thou? And I said, I see a rod of an almond tree. - -1:12 Then said the LORD unto me, Thou hast well seen: for I will -hasten my word to perform it. - -1:13 And the word of the LORD came unto me the second time, saying, -What seest thou? And I said, I see a seething pot; and the face -thereof is toward the north. - -1:14 Then the LORD said unto me, Out of the north an evil shall break -forth upon all the inhabitants of the land. - -1:15 For, lo, I will call all the families of the kingdoms of the -north, saith the LORD; and they shall come, and they shall set every -one his throne at the entering of the gates of Jerusalem, and against -all the walls thereof round about, and against all the cities of -Judah. - -1:16 And I will utter my judgments against them touching all their -wickedness, who have forsaken me, and have burned incense unto other -gods, and worshipped the works of their own hands. - -1:17 Thou therefore gird up thy loins, and arise, and speak unto them -all that I command thee: be not dismayed at their faces, lest I -confound thee before them. - -1:18 For, behold, I have made thee this day a defenced city, and an -iron pillar, and brasen walls against the whole land, against the -kings of Judah, against the princes thereof, against the priests -thereof, and against the people of the land. - -1:19 And they shall fight against thee; but they shall not prevail -against thee; for I am with thee, saith the LORD, to deliver thee. - -2:1 Moreover the word of the LORD came to me, saying, 2:2 Go and cry -in the ears of Jerusalem, saying, Thus saith the LORD; I remember -thee, the kindness of thy youth, the love of thine espousals, when -thou wentest after me in the wilderness, in a land that was not sown. - -2:3 Israel was holiness unto the LORD, and the firstfruits of his -increase: all that devour him shall offend; evil shall come upon them, -saith the LORD. - -2:4 Hear ye the word of the LORD, O house of Jacob, and all the -families of the house of Israel: 2:5 Thus saith the LORD, What -iniquity have your fathers found in me, that they are gone far from -me, and have walked after vanity, and are become vain? 2:6 Neither -said they, Where is the LORD that brought us up out of the land of -Egypt, that led us through the wilderness, through a land of deserts -and of pits, through a land of drought, and of the shadow of death, -through a land that no man passed through, and where no man dwelt? -2:7 And I brought you into a plentiful country, to eat the fruit -thereof and the goodness thereof; but when ye entered, ye defiled my -land, and made mine heritage an abomination. - -2:8 The priests said not, Where is the LORD? and they that handle the -law knew me not: the pastors also transgressed against me, and the -prophets prophesied by Baal, and walked after things that do not -profit. - -2:9 Wherefore I will yet plead with you, saith the LORD, and with your -children's children will I plead. - -2:10 For pass over the isles of Chittim, and see; and send unto Kedar, -and consider diligently, and see if there be such a thing. - -2:11 Hath a nation changed their gods, which are yet no gods? but my -people have changed their glory for that which doth not profit. - -2:12 Be astonished, O ye heavens, at this, and be horribly afraid, be -ye very desolate, saith the LORD. - -2:13 For my people have committed two evils; they have forsaken me the -fountain of living waters, and hewed them out cisterns, broken -cisterns, that can hold no water. - -2:14 Is Israel a servant? is he a homeborn slave? why is he spoiled? -2:15 The young lions roared upon him, and yelled, and they made his -land waste: his cities are burned without inhabitant. - -2:16 Also the children of Noph and Tahapanes have broken the crown of -thy head. - -2:17 Hast thou not procured this unto thyself, in that thou hast -forsaken the LORD thy God, when he led thee by the way? 2:18 And now -what hast thou to do in the way of Egypt, to drink the waters of -Sihor? or what hast thou to do in the way of Assyria, to drink the -waters of the river? 2:19 Thine own wickedness shall correct thee, -and thy backslidings shall reprove thee: know therefore and see that -it is an evil thing and bitter, that thou hast forsaken the LORD thy -God, and that my fear is not in thee, saith the Lord GOD of hosts. - -2:20 For of old time I have broken thy yoke, and burst thy bands; and -thou saidst, I will not transgress; when upon every high hill and -under every green tree thou wanderest, playing the harlot. - -2:21 Yet I had planted thee a noble vine, wholly a right seed: how -then art thou turned into the degenerate plant of a strange vine unto -me? 2:22 For though thou wash thee with nitre, and take thee much -soap, yet thine iniquity is marked before me, saith the Lord GOD. - -2:23 How canst thou say, I am not polluted, I have not gone after -Baalim? see thy way in the valley, know what thou hast done: thou art -a swift dromedary traversing her ways; 2:24 A wild ass used to the -wilderness, that snuffeth up the wind at her pleasure; in her occasion -who can turn her away? all they that seek her will not weary -themselves; in her month they shall find her. - -2:25 Withhold thy foot from being unshod, and thy throat from thirst: -but thou saidst, There is no hope: no; for I have loved strangers, and -after them will I go. - -2:26 As the thief is ashamed when he is found, so is the house of -Israel ashamed; they, their kings, their princes, and their priests, -and their prophets. - -2:27 Saying to a stock, Thou art my father; and to a stone, Thou hast -brought me forth: for they have turned their back unto me, and not -their face: but in the time of their trouble they will say, Arise, and -save us. - -2:28 But where are thy gods that thou hast made thee? let them arise, -if they can save thee in the time of thy trouble: for according to the -number of thy cities are thy gods, O Judah. - -2:29 Wherefore will ye plead with me? ye all have transgressed against -me, saith the LORD. - -2:30 In vain have I smitten your children; they received no -correction: your own sword hath devoured your prophets, like a -destroying lion. - -2:31 O generation, see ye the word of the LORD. Have I been a -wilderness unto Israel? a land of darkness? wherefore say my people, -We are lords; we will come no more unto thee? 2:32 Can a maid forget -her ornaments, or a bride her attire? yet my people have forgotten me -days without number. - -2:33 Why trimmest thou thy way to seek love? therefore hast thou also -taught the wicked ones thy ways. - -2:34 Also in thy skirts is found the blood of the souls of the poor -innocents: I have not found it by secret search, but upon all these. - -2:35 Yet thou sayest, Because I am innocent, surely his anger shall -turn from me. Behold, I will plead with thee, because thou sayest, I -have not sinned. - -2:36 Why gaddest thou about so much to change thy way? thou also shalt -be ashamed of Egypt, as thou wast ashamed of Assyria. - -2:37 Yea, thou shalt go forth from him, and thine hands upon thine -head: for the LORD hath rejected thy confidences, and thou shalt not -prosper in them. - -3:1 They say, If a man put away his wife, and she go from him, and -become another man's, shall he return unto her again? shall not that -land be greatly polluted? but thou hast played the harlot with many -lovers; yet return again to me, saith the LORD. - -3:2 Lift up thine eyes unto the high places, and see where thou hast -not been lien with. In the ways hast thou sat for them, as the Arabian -in the wilderness; and thou hast polluted the land with thy whoredoms -and with thy wickedness. - -3:3 Therefore the showers have been withholden, and there hath been no -latter rain; and thou hadst a whore's forehead, thou refusedst to be -ashamed. - -3:4 Wilt thou not from this time cry unto me, My father, thou art the -guide of my youth? 3:5 Will he reserve his anger for ever? will he -keep it to the end? Behold, thou hast spoken and done evil things as -thou couldest. - -3:6 The LORD said also unto me in the days of Josiah the king, Hast -thou seen that which backsliding Israel hath done? she is gone up upon -every high mountain and under every green tree, and there hath played -the harlot. - -3:7 And I said after she had done all these things, Turn thou unto me. -But she returned not. And her treacherous sister Judah saw it. - -3:8 And I saw, when for all the causes whereby backsliding Israel -committed adultery I had put her away, and given her a bill of -divorce; yet her treacherous sister Judah feared not, but went and -played the harlot also. - -3:9 And it came to pass through the lightness of her whoredom, that -she defiled the land, and committed adultery with stones and with -stocks. - -3:10 And yet for all this her treacherous sister Judah hath not turned -unto me with her whole heart, but feignedly, saith the LORD. - -3:11 And the LORD said unto me, The backsliding Israel hath justified -herself more than treacherous Judah. - -3:12 Go and proclaim these words toward the north, and say, Return, -thou backsliding Israel, saith the LORD; and I will not cause mine -anger to fall upon you: for I am merciful, saith the LORD, and I will -not keep anger for ever. - -3:13 Only acknowledge thine iniquity, that thou hast transgressed -against the LORD thy God, and hast scattered thy ways to the strangers -under every green tree, and ye have not obeyed my voice, saith the -LORD. - -3:14 Turn, O backsliding children, saith the LORD; for I am married -unto you: and I will take you one of a city, and two of a family, and -I will bring you to Zion: 3:15 And I will give you pastors according -to mine heart, which shall feed you with knowledge and understanding. - -3:16 And it shall come to pass, when ye be multiplied and increased in -the land, in those days, saith the LORD, they shall say no more, The -ark of the covenant of the LORD: neither shall it come to mind: -neither shall they remember it; neither shall they visit it; neither -shall that be done any more. - -3:17 At that time they shall call Jerusalem the throne of the LORD; -and all the nations shall be gathered unto it, to the name of the -LORD, to Jerusalem: neither shall they walk any more after the -imagination of their evil heart. - -3:18 In those days the house of Judah shall walk with the house of -Israel, and they shall come together out of the land of the north to -the land that I have given for an inheritance unto your fathers. - -3:19 But I said, How shall I put thee among the children, and give -thee a pleasant land, a goodly heritage of the hosts of nations? and I -said, Thou shalt call me, My father; and shalt not turn away from me. - -3:20 Surely as a wife treacherously departeth from her husband, so -have ye dealt treacherously with me, O house of Israel, saith the -LORD. - -3:21 A voice was heard upon the high places, weeping and supplications -of the children of Israel: for they have perverted their way, and they -have forgotten the LORD their God. - -3:22 Return, ye backsliding children, and I will heal your -backslidings. - -Behold, we come unto thee; for thou art the LORD our God. - -3:23 Truly in vain is salvation hoped for from the hills, and from the -multitude of mountains: truly in the LORD our God is the salvation of -Israel. - -3:24 For shame hath devoured the labour of our fathers from our youth; -their flocks and their herds, their sons and their daughters. - -3:25 We lie down in our shame, and our confusion covereth us: for we -have sinned against the LORD our God, we and our fathers, from our -youth even unto this day, and have not obeyed the voice of the LORD -our God. - -4:1 If thou wilt return, O Israel, saith the LORD, return unto me: and -if thou wilt put away thine abominations out of my sight, then shalt -thou not remove. - -4:2 And thou shalt swear, The LORD liveth, in truth, in judgment, and -in righteousness; and the nations shall bless themselves in him, and -in him shall they glory. - -4:3 For thus saith the LORD to the men of Judah and Jerusalem, Break -up your fallow ground, and sow not among thorns. - -4:4 Circumcise yourselves to the LORD, and take away the foreskins of -your heart, ye men of Judah and inhabitants of Jerusalem: lest my fury -come forth like fire, and burn that none can quench it, because of the -evil of your doings. - -4:5 Declare ye in Judah, and publish in Jerusalem; and say, Blow ye -the trumpet in the land: cry, gather together, and say, Assemble -yourselves, and let us go into the defenced cities. - -4:6 Set up the standard toward Zion: retire, stay not: for I will -bring evil from the north, and a great destruction. - -4:7 The lion is come up from his thicket, and the destroyer of the -Gentiles is on his way; he is gone forth from his place to make thy -land desolate; and thy cities shall be laid waste, without an -inhabitant. - -4:8 For this gird you with sackcloth, lament and howl: for the fierce -anger of the LORD is not turned back from us. - -4:9 And it shall come to pass at that day, saith the LORD, that the -heart of the king shall perish, and the heart of the princes; and the -priests shall be astonished, and the prophets shall wonder. - -4:10 Then said I, Ah, Lord GOD! surely thou hast greatly deceived this -people and Jerusalem, saying, Ye shall have peace; whereas the sword -reacheth unto the soul. - -4:11 At that time shall it be said to this people and to Jerusalem, A -dry wind of the high places in the wilderness toward the daughter of -my people, not to fan, nor to cleanse, 4:12 Even a full wind from -those places shall come unto me: now also will I give sentence against -them. - -4:13 Behold, he shall come up as clouds, and his chariots shall be as -a whirlwind: his horses are swifter than eagles. Woe unto us! for we -are spoiled. - -4:14 O Jerusalem, wash thine heart from wickedness, that thou mayest -be saved. How long shall thy vain thoughts lodge within thee? 4:15 -For a voice declareth from Dan, and publisheth affliction from mount -Ephraim. - -4:16 Make ye mention to the nations; behold, publish against -Jerusalem, that watchers come from a far country, and give out their -voice against the cities of Judah. - -4:17 As keepers of a field, are they against her round about; because -she hath been rebellious against me, saith the LORD. - -4:18 Thy way and thy doings have procured these things unto thee; this -is thy wickedness, because it is bitter, because it reacheth unto -thine heart. - -4:19 My bowels, my bowels! I am pained at my very heart; my heart -maketh a noise in me; I cannot hold my peace, because thou hast heard, -O my soul, the sound of the trumpet, the alarm of war. - -4:20 Destruction upon destruction is cried; for the whole land is -spoiled: suddenly are my tents spoiled, and my curtains in a moment. - -4:21 How long shall I see the standard, and hear the sound of the -trumpet? 4:22 For my people is foolish, they have not known me; they -are sottish children, and they have none understanding: they are wise -to do evil, but to do good they have no knowledge. - -4:23 I beheld the earth, and, lo, it was without form, and void; and -the heavens, and they had no light. - -4:24 I beheld the mountains, and, lo, they trembled, and all the hills -moved lightly. - -4:25 I beheld, and, lo, there was no man, and all the birds of the -heavens were fled. - -4:26 I beheld, and, lo, the fruitful place was a wilderness, and all -the cities thereof were broken down at the presence of the LORD, and -by his fierce anger. - -4:27 For thus hath the LORD said, The whole land shall be desolate; -yet will I not make a full end. - -4:28 For this shall the earth mourn, and the heavens above be black; -because I have spoken it, I have purposed it, and will not repent, -neither will I turn back from it. - -4:29 The whole city shall flee for the noise of the horsemen and -bowmen; they shall go into thickets, and climb up upon the rocks: -every city shall be forsaken, and not a man dwell therein. - -4:30 And when thou art spoiled, what wilt thou do? Though thou -clothest thyself with crimson, though thou deckest thee with ornaments -of gold, though thou rentest thy face with painting, in vain shalt -thou make thyself fair; thy lovers will despise thee, they will seek -thy life. - -4:31 For I have heard a voice as of a woman in travail, and the -anguish as of her that bringeth forth her first child, the voice of -the daughter of Zion, that bewaileth herself, that spreadeth her -hands, saying, Woe is me now! for my soul is wearied because of -murderers. - -5:1 Run ye to and fro through the streets of Jerusalem, and see now, -and know, and seek in the broad places thereof, if ye can find a man, -if there be any that executeth judgment, that seeketh the truth; and I -will pardon it. - -5:2 And though they say, The LORD liveth; surely they swear falsely. - -5:3 O LORD, are not thine eyes upon the truth? thou hast stricken -them, but they have not grieved; thou hast consumed them, but they -have refused to receive correction: they have made their faces harder -than a rock; they have refused to return. - -5:4 Therefore I said, Surely these are poor; they are foolish: for -they know not the way of the LORD, nor the judgment of their God. - -5:5 I will get me unto the great men, and will speak unto them; for -they have known the way of the LORD, and the judgment of their God: -but these have altogether broken the yoke, and burst the bonds. - -5:6 Wherefore a lion out of the forest shall slay them, and a wolf of -the evenings shall spoil them, a leopard shall watch over their -cities: every one that goeth out thence shall be torn in pieces: -because their transgressions are many, and their backslidings are -increased. - -5:7 How shall I pardon thee for this? thy children have forsaken me, -and sworn by them that are no gods: when I had fed them to the full, -they then committed adultery, and assembled themselves by troops in -the harlots' houses. - -5:8 They were as fed horses in the morning: every one neighed after -his neighbour's wife. - -5:9 Shall I not visit for these things? saith the LORD: and shall not -my soul be avenged on such a nation as this? 5:10 Go ye up upon her -walls, and destroy; but make not a full end: take away her -battlements; for they are not the LORD's. - -5:11 For the house of Israel and the house of Judah have dealt very -treacherously against me, saith the LORD. - -5:12 They have belied the LORD, and said, It is not he; neither shall -evil come upon us; neither shall we see sword nor famine: 5:13 And the -prophets shall become wind, and the word is not in them: thus shall it -be done unto them. - -5:14 Wherefore thus saith the LORD God of hosts, Because ye speak this -word, behold, I will make my words in thy mouth fire, and this people -wood, and it shall devour them. - -5:15 Lo, I will bring a nation upon you from far, O house of Israel, -saith the LORD: it is a mighty nation, it is an ancient nation, a -nation whose language thou knowest not, neither understandest what -they say. - -5:16 Their quiver is as an open sepulchre, they are all mighty men. - -5:17 And they shall eat up thine harvest, and thy bread, which thy -sons and thy daughters should eat: they shall eat up thy flocks and -thine herds: they shall eat up thy vines and thy fig trees: they shall -impoverish thy fenced cities, wherein thou trustedst, with the sword. - -5:18 Nevertheless in those days, saith the LORD, I will not make a -full end with you. - -5:19 And it shall come to pass, when ye shall say, Wherefore doeth the -LORD our God all these things unto us? then shalt thou answer them, -Like as ye have forsaken me, and served strange gods in your land, so -shall ye serve strangers in a land that is not your's. - -5:20 Declare this in the house of Jacob, and publish it in Judah, -saying, 5:21 Hear now this, O foolish people, and without -understanding; which have eyes, and see not; which have ears, and hear -not: 5:22 Fear ye not me? saith the LORD: will ye not tremble at my -presence, which have placed the sand for the bound of the sea by a -perpetual decree, that it cannot pass it: and though the waves thereof -toss themselves, yet can they not prevail; though they roar, yet can -they not pass over it? 5:23 But this people hath a revolting and a -rebellious heart; they are revolted and gone. - -5:24 Neither say they in their heart, Let us now fear the LORD our -God, that giveth rain, both the former and the latter, in his season: -he reserveth unto us the appointed weeks of the harvest. - -5:25 Your iniquities have turned away these things, and your sins have -withholden good things from you. - -5:26 For among my people are found wicked men: they lay wait, as he -that setteth snares; they set a trap, they catch men. - -5:27 As a cage is full of birds, so are their houses full of deceit: -therefore they are become great, and waxen rich. - -5:28 They are waxen fat, they shine: yea, they overpass the deeds of -the wicked: they judge not the cause, the cause of the fatherless, yet -they prosper; and the right of the needy do they not judge. - -5:29 Shall I not visit for these things? saith the LORD: shall not my -soul be avenged on such a nation as this? 5:30 A wonderful and -horrible thing is committed in the land; 5:31 The prophets prophesy -falsely, and the priests bear rule by their means; and my people love -to have it so: and what will ye do in the end thereof? 6:1 O ye -children of Benjamin, gather yourselves to flee out of the midst of -Jerusalem, and blow the trumpet in Tekoa, and set up a sign of fire in -Bethhaccerem: for evil appeareth out of the north, and great -destruction. - -6:2 I have likened the daughter of Zion to a comely and delicate -woman. - -6:3 The shepherds with their flocks shall come unto her; they shall -pitch their tents against her round about; they shall feed every one -in his place. - -6:4 Prepare ye war against her; arise, and let us go up at noon. Woe -unto us! for the day goeth away, for the shadows of the evening are -stretched out. - -6:5 Arise, and let us go by night, and let us destroy her palaces. - -6:6 For thus hath the LORD of hosts said, Hew ye down trees, and cast -a mount against Jerusalem: this is the city to be visited; she is -wholly oppression in the midst of her. - -6:7 As a fountain casteth out her waters, so she casteth out her -wickedness: violence and spoil is heard in her; before me continually -is grief and wounds. - -6:8 Be thou instructed, O Jerusalem, lest my soul depart from thee; -lest I make thee desolate, a land not inhabited. - -6:9 Thus saith the LORD of hosts, They shall throughly glean the -remnant of Israel as a vine: turn back thine hand as a grapegatherer -into the baskets. - -6:10 To whom shall I speak, and give warning, that they may hear? -behold, their ear is uncircumcised, and they cannot hearken: behold, -the word of the LORD is unto them a reproach; they have no delight in -it. - -6:11 Therefore I am full of the fury of the LORD; I am weary with -holding in: I will pour it out upon the children abroad, and upon the -assembly of young men together: for even the husband with the wife -shall be taken, the aged with him that is full of days. - -6:12 And their houses shall be turned unto others, with their fields -and wives together: for I will stretch out my hand upon the -inhabitants of the land, saith the LORD. - -6:13 For from the least of them even unto the greatest of them every -one is given to covetousness; and from the prophet even unto the -priest every one dealeth falsely. - -6:14 They have healed also the hurt of the daughter of my people -slightly, saying, Peace, peace; when there is no peace. - -6:15 Were they ashamed when they had committed abomination? nay, they -were not at all ashamed, neither could they blush: therefore they -shall fall among them that fall: at the time that I visit them they -shall be cast down, saith the LORD. - -6:16 Thus saith the LORD, Stand ye in the ways, and see, and ask for -the old paths, where is the good way, and walk therein, and ye shall -find rest for your souls. But they said, We will not walk therein. - -6:17 Also I set watchmen over you, saying, Hearken to the sound of the -trumpet. But they said, We will not hearken. - -6:18 Therefore hear, ye nations, and know, O congregation, what is -among them. - -6:19 Hear, O earth: behold, I will bring evil upon this people, even -the fruit of their thoughts, because they have not hearkened unto my -words, nor to my law, but rejected it. - -6:20 To what purpose cometh there to me incense from Sheba, and the -sweet cane from a far country? your burnt offerings are not -acceptable, nor your sacrifices sweet unto me. - -6:21 Therefore thus saith the LORD, Behold, I will lay stumblingblocks -before this people, and the fathers and the sons together shall fall -upon them; the neighbour and his friend shall perish. - -6:22 Thus saith the LORD, Behold, a people cometh from the north -country, and a great nation shall be raised from the sides of the -earth. - -6:23 They shall lay hold on bow and spear; they are cruel, and have no -mercy; their voice roareth like the sea; and they ride upon horses, -set in array as men for war against thee, O daughter of Zion. - -6:24 We have heard the fame thereof: our hands wax feeble: anguish -hath taken hold of us, and pain, as of a woman in travail. - -6:25 Go not forth into the field, nor walk by the way; for the sword -of the enemy and fear is on every side. - -6:26 O daughter of my people, gird thee with sackcloth, and wallow -thyself in ashes: make thee mourning, as for an only son, most bitter -lamentation: for the spoiler shall suddenly come upon us. - -6:27 I have set thee for a tower and a fortress among my people, that -thou mayest know and try their way. - -6:28 They are all grievous revolters, walking with slanders: they are -brass and iron; they are all corrupters. - -6:29 The bellows are burned, the lead is consumed of the fire; the -founder melteth in vain: for the wicked are not plucked away. - -6:30 Reprobate silver shall men call them, because the LORD hath -rejected them. - -7:1 The word that came to Jeremiah from the LORD, saying, 7:2 Stand in -the gate of the LORD's house, and proclaim there this word, and say, -Hear the word of the LORD, all ye of Judah, that enter in at these -gates to worship the LORD. - -7:3 Thus saith the LORD of hosts, the God of Israel, Amend your ways -and your doings, and I will cause you to dwell in this place. - -7:4 Trust ye not in lying words, saying, The temple of the LORD, The -temple of the LORD, The temple of the LORD, are these. - -7:5 For if ye throughly amend your ways and your doings; if ye -throughly execute judgment between a man and his neighbour; 7:6 If ye -oppress not the stranger, the fatherless, and the widow, and shed not -innocent blood in this place, neither walk after other gods to your -hurt: 7:7 Then will I cause you to dwell in this place, in the land -that I gave to your fathers, for ever and ever. - -7:8 Behold, ye trust in lying words, that cannot profit. - -7:9 Will ye steal, murder, and commit adultery, and swear falsely, and -burn incense unto Baal, and walk after other gods whom ye know not; -7:10 And come and stand before me in this house, which is called by my -name, and say, We are delivered to do all these abominations? 7:11 Is -this house, which is called by my name, become a den of robbers in -your eyes? Behold, even I have seen it, saith the LORD. - -7:12 But go ye now unto my place which was in Shiloh, where I set my -name at the first, and see what I did to it for the wickedness of my -people Israel. - -7:13 And now, because ye have done all these works, saith the LORD, -and I spake unto you, rising up early and speaking, but ye heard not; -and I called you, but ye answered not; 7:14 Therefore will I do unto -this house, which is called by my name, wherein ye trust, and unto the -place which I gave to you and to your fathers, as I have done to -Shiloh. - -7:15 And I will cast you out of my sight, as I have cast out all your -brethren, even the whole seed of Ephraim. - -7:16 Therefore pray not thou for this people, neither lift up cry nor -prayer for them, neither make intercession to me: for I will not hear -thee. - -7:17 Seest thou not what they do in the cities of Judah and in the -streets of Jerusalem? 7:18 The children gather wood, and the fathers -kindle the fire, and the women knead their dough, to make cakes to the -queen of heaven, and to pour out drink offerings unto other gods, that -they may provoke me to anger. - -7:19 Do they provoke me to anger? saith the LORD: do they not provoke -themselves to the confusion of their own faces? 7:20 Therefore thus -saith the Lord GOD; Behold, mine anger and my fury shall be poured out -upon this place, upon man, and upon beast, and upon the trees of the -field, and upon the fruit of the ground; and it shall burn, and shall -not be quenched. - -7:21 Thus saith the LORD of hosts, the God of Israel; Put your burnt -offerings unto your sacrifices, and eat flesh. - -7:22 For I spake not unto your fathers, nor commanded them in the day -that I brought them out of the land of Egypt, concerning burnt -offerings or sacrifices: 7:23 But this thing commanded I them, saying, -Obey my voice, and I will be your God, and ye shall be my people: and -walk ye in all the ways that I have commanded you, that it may be well -unto you. - -7:24 But they hearkened not, nor inclined their ear, but walked in the -counsels and in the imagination of their evil heart, and went -backward, and not forward. - -7:25 Since the day that your fathers came forth out of the land of -Egypt unto this day I have even sent unto you all my servants the -prophets, daily rising up early and sending them: 7:26 Yet they -hearkened not unto me, nor inclined their ear, but hardened their -neck: they did worse than their fathers. - -7:27 Therefore thou shalt speak all these words unto them; but they -will not hearken to thee: thou shalt also call unto them; but they -will not answer thee. - -7:28 But thou shalt say unto them, This is a nation that obeyeth not -the voice of the LORD their God, nor receiveth correction: truth is -perished, and is cut off from their mouth. - -7:29 Cut off thine hair, O Jerusalem, and cast it away, and take up a -lamentation on high places; for the LORD hath rejected and forsaken -the generation of his wrath. - -7:30 For the children of Judah have done evil in my sight, saith the -LORD: they have set their abominations in the house which is called by -my name, to pollute it. - -7:31 And they have built the high places of Tophet, which is in the -valley of the son of Hinnom, to burn their sons and their daughters in -the fire; which I commanded them not, neither came it into my heart. - -7:32 Therefore, behold, the days come, saith the LORD, that it shall -no more be called Tophet, nor the valley of the son of Hinnom, but the -valley of slaughter: for they shall bury in Tophet, till there be no -place. - -7:33 And the carcases of this people shall be meat for the fowls of -the heaven, and for the beasts of the earth; and none shall fray them -away. - -7:34 Then will I cause to cease from the cities of Judah, and from the -streets of Jerusalem, the voice of mirth, and the voice of gladness, -the voice of the bridegroom, and the voice of the bride: for the land -shall be desolate. - -8:1 At that time, saith the LORD, they shall bring out the bones of -the kings of Judah, and the bones of his princes, and the bones of the -priests, and the bones of the prophets, and the bones of the -inhabitants of Jerusalem, out of their graves: 8:2 And they shall -spread them before the sun, and the moon, and all the host of heaven, -whom they have loved, and whom they have served, and after whom they -have walked, and whom they have sought, and whom they have worshipped: -they shall not be gathered, nor be buried; they shall be for dung upon -the face of the earth. - -8:3 And death shall be chosen rather than life by all the residue of -them that remain of this evil family, which remain in all the places -whither I have driven them, saith the LORD of hosts. - -8:4 Moreover thou shalt say unto them, Thus saith the LORD; Shall they -fall, and not arise? shall he turn away, and not return? 8:5 Why then -is this people of Jerusalem slidden back by a perpetual backsliding? -they hold fast deceit, they refuse to return. - -8:6 I hearkened and heard, but they spake not aright: no man repented -him of his wickedness, saying, What have I done? every one turned to -his course, as the horse rusheth into the battle. - -8:7 Yea, the stork in the heaven knoweth her appointed times; and the -turtle and the crane and the swallow observe the time of their coming; -but my people know not the judgment of the LORD. - -8:8 How do ye say, We are wise, and the law of the LORD is with us? -Lo, certainly in vain made he it; the pen of the scribes is in vain. - -8:9 The wise men are ashamed, they are dismayed and taken: lo, they -have rejected the word of the LORD; and what wisdom is in them? 8:10 -Therefore will I give their wives unto others, and their fields to -them that shall inherit them: for every one from the least even unto -the greatest is given to covetousness, from the prophet even unto the -priest every one dealeth falsely. - -8:11 For they have healed the hurt of the daughter of my people -slightly, saying, Peace, peace; when there is no peace. - -8:12 Were they ashamed when they had committed abomination? nay, they -were not at all ashamed, neither could they blush: therefore shall -they fall among them that fall: in the time of their visitation they -shall be cast down, saith the LORD. - -8:13 I will surely consume them, saith the LORD: there shall be no -grapes on the vine, nor figs on the fig tree, and the leaf shall fade; -and the things that I have given them shall pass away from them. - -8:14 Why do we sit still? assemble yourselves, and let us enter into -the defenced cities, and let us be silent there: for the LORD our God -hath put us to silence, and given us water of gall to drink, because -we have sinned against the LORD. - -8:15 We looked for peace, but no good came; and for a time of health, -and behold trouble! 8:16 The snorting of his horses was heard from -Dan: the whole land trembled at the sound of the neighing of his -strong ones; for they are come, and have devoured the land, and all -that is in it; the city, and those that dwell therein. - -8:17 For, behold, I will send serpents, cockatrices, among you, which -will not be charmed, and they shall bite you, saith the LORD. - -8:18 When I would comfort myself against sorrow, my heart is faint in -me. - -8:19 Behold the voice of the cry of the daughter of my people because -of them that dwell in a far country: Is not the LORD in Zion? is not -her king in her? Why have they provoked me to anger with their graven -images, and with strange vanities? 8:20 The harvest is past, the -summer is ended, and we are not saved. - -8:21 For the hurt of the daughter of my people am I hurt; I am black; -astonishment hath taken hold on me. - -8:22 Is there no balm in Gilead; is there no physician there? why then -is not the health of the daughter of my people recovered? 9:1 Oh that -my head were waters, and mine eyes a fountain of tears, that I might -weep day and night for the slain of the daughter of my people! 9:2 Oh -that I had in the wilderness a lodging place of wayfaring men; that I -might leave my people, and go from them! for they be all adulterers, -an assembly of treacherous men. - -9:3 And they bend their tongues like their bow for lies: but they are -not valiant for the truth upon the earth; for they proceed from evil -to evil, and they know not me, saith the LORD. - -9:4 Take ye heed every one of his neighbour, and trust ye not in any -brother: for every brother will utterly supplant, and every neighbour -will walk with slanders. - -9:5 And they will deceive every one his neighbour, and will not speak -the truth: they have taught their tongue to speak lies, and weary -themselves to commit iniquity. - -9:6 Thine habitation is in the midst of deceit; through deceit they -refuse to know me, saith the LORD. - -9:7 Therefore thus saith the LORD of hosts, Behold, I will melt them, -and try them; for how shall I do for the daughter of my people? 9:8 -Their tongue is as an arrow shot out; it speaketh deceit: one speaketh -peaceably to his neighbour with his mouth, but in heart he layeth his -wait. - -9:9 Shall I not visit them for these things? saith the LORD: shall not -my soul be avenged on such a nation as this? 9:10 For the mountains -will I take up a weeping and wailing, and for the habitations of the -wilderness a lamentation, because they are burned up, so that none can -pass through them; neither can men hear the voice of the cattle; both -the fowl of the heavens and the beast are fled; they are gone. - -9:11 And I will make Jerusalem heaps, and a den of dragons; and I will -make the cities of Judah desolate, without an inhabitant. - -9:12 Who is the wise man, that may understand this? and who is he to -whom the mouth of the LORD hath spoken, that he may declare it, for -what the land perisheth and is burned up like a wilderness, that none -passeth through? 9:13 And the LORD saith, Because they have forsaken -my law which I set before them, and have not obeyed my voice, neither -walked therein; 9:14 But have walked after the imagination of their -own heart, and after Baalim, which their fathers taught them: 9:15 -Therefore thus saith the LORD of hosts, the God of Israel; Behold, I -will feed them, even this people, with wormwood, and give them water -of gall to drink. - -9:16 I will scatter them also among the heathen, whom neither they nor -their fathers have known: and I will send a sword after them, till I -have consumed them. - -9:17 Thus saith the LORD of hosts, Consider ye, and call for the -mourning women, that they may come; and send for cunning women, that -they may come: 9:18 And let them make haste, and take up a wailing for -us, that our eyes may run down with tears, and our eyelids gush out -with waters. - -9:19 For a voice of wailing is heard out of Zion, How are we spoiled! -we are greatly confounded, because we have forsaken the land, because -our dwellings have cast us out. - -9:20 Yet hear the word of the LORD, O ye women, and let your ear -receive the word of his mouth, and teach your daughters wailing, and -every one her neighbour lamentation. - -9:21 For death is come up into our windows, and is entered into our -palaces, to cut off the children from without, and the young men from -the streets. - -9:22 Speak, Thus saith the LORD, Even the carcases of men shall fall -as dung upon the open field, and as the handful after the harvestman, -and none shall gather them. - -9:23 Thus saith the LORD, Let not the wise man glory in his wisdom, -neither let the mighty man glory in his might, let not the rich man -glory in his riches: 9:24 But let him that glorieth glory in this, -that he understandeth and knoweth me, that I am the LORD which -exercise lovingkindness, judgment, and righteousness, in the earth: -for in these things I delight, saith the LORD. - -9:25 Behold, the days come, saith the LORD, that I will punish all -them which are circumcised with the uncircumcised; 9:26 Egypt, and -Judah, and Edom, and the children of Ammon, and Moab, and all that are -in the utmost corners, that dwell in the wilderness: for all these -nations are uncircumcised, and all the house of Israel are -uncircumcised in the heart. - -10:1 Hear ye the word which the LORD speaketh unto you, O house of -Israel: 10:2 Thus saith the LORD, Learn not the way of the heathen, -and be not dismayed at the signs of heaven; for the heathen are -dismayed at them. - -10:3 For the customs of the people are vain: for one cutteth a tree -out of the forest, the work of the hands of the workman, with the axe. - -10:4 They deck it with silver and with gold; they fasten it with nails -and with hammers, that it move not. - -10:5 They are upright as the palm tree, but speak not: they must needs -be borne, because they cannot go. Be not afraid of them; for they -cannot do evil, neither also is it in them to do good. - -10:6 Forasmuch as there is none like unto thee, O LORD; thou art -great, and thy name is great in might. - -10:7 Who would not fear thee, O King of nations? for to thee doth it -appertain: forasmuch as among all the wise men of the nations, and in -all their kingdoms, there is none like unto thee. - -10:8 But they are altogether brutish and foolish: the stock is a -doctrine of vanities. - -10:9 Silver spread into plates is brought from Tarshish, and gold from -Uphaz, the work of the workman, and of the hands of the founder: blue -and purple is their clothing: they are all the work of cunning men. - -10:10 But the LORD is the true God, he is the living God, and an -everlasting king: at his wrath the earth shall tremble, and the -nations shall not be able to abide his indignation. - -10:11 Thus shall ye say unto them, The gods that have not made the -heavens and the earth, even they shall perish from the earth, and from -under these heavens. - -10:12 He hath made the earth by his power, he hath established the -world by his wisdom, and hath stretched out the heavens by his -discretion. - -10:13 When he uttereth his voice, there is a multitude of waters in -the heavens, and he causeth the vapours to ascend from the ends of the -earth; he maketh lightnings with rain, and bringeth forth the wind out -of his treasures. - -10:14 Every man is brutish in his knowledge: every founder is -confounded by the graven image: for his molten image is falsehood, and -there is no breath in them. - -10:15 They are vanity, and the work of errors: in the time of their -visitation they shall perish. - -10:16 The portion of Jacob is not like them: for he is the former of -all things; and Israel is the rod of his inheritance: The LORD of -hosts is his name. - -10:17 Gather up thy wares out of the land, O inhabitant of the -fortress. - -10:18 For thus saith the LORD, Behold, I will sling out the -inhabitants of the land at this once, and will distress them, that -they may find it so. - -10:19 Woe is me for my hurt! my wound is grievous; but I said, Truly -this is a grief, and I must bear it. - -10:20 My tabernacle is spoiled, and all my cords are broken: my -children are gone forth of me, and they are not: there is none to -stretch forth my tent any more, and to set up my curtains. - -10:21 For the pastors are become brutish, and have not sought the -LORD: therefore they shall not prosper, and all their flocks shall be -scattered. - -10:22 Behold, the noise of the bruit is come, and a great commotion -out of the north country, to make the cities of Judah desolate, and a -den of dragons. - -10:23 O LORD, I know that the way of man is not in himself: it is not -in man that walketh to direct his steps. - -10:24 O LORD, correct me, but with judgment; not in thine anger, lest -thou bring me to nothing. - -10:25 Pour out thy fury upon the heathen that know thee not, and upon -the families that call not on thy name: for they have eaten up Jacob, -and devoured him, and consumed him, and have made his habitation -desolate. - -11:1 The word that came to Jeremiah from the LORD saying, 11:2 Hear ye -the words of this covenant, and speak unto the men of Judah, and to -the inhabitants of Jerusalem; 11:3 And say thou unto them, Thus saith -the LORD God of Israel; Cursed be the man that obeyeth not the words -of this covenant, 11:4 Which I commanded your fathers in the day that -I brought them forth out of the land of Egypt, from the iron furnace, -saying, Obey my voice, and do them, according to all which I command -you: so shall ye be my people, and I will be your God: 11:5 That I may -perform the oath which I have sworn unto your fathers, to give them a -land flowing with milk and honey, as it is this day. Then answered I, -and said, So be it, O LORD. - -11:6 Then the LORD said unto me, Proclaim all these words in the -cities of Judah, and in the streets of Jerusalem, saying, Hear ye the -words of this covenant, and do them. - -11:7 For I earnestly protested unto your fathers in the day that I -brought them up out of the land of Egypt, even unto this day, rising -early and protesting, saying, Obey my voice. - -11:8 Yet they obeyed not, nor inclined their ear, but walked every one -in the imagination of their evil heart: therefore I will bring upon -them all the words of this covenant, which I commanded them to do: but -they did them not. - -11:9 And the LORD said unto me, A conspiracy is found among the men of -Judah, and among the inhabitants of Jerusalem. - -11:10 They are turned back to the iniquities of their forefathers, -which refused to hear my words; and they went after other gods to -serve them: the house of Israel and the house of Judah have broken my -covenant which I made with their fathers. - -11:11 Therefore thus saith the LORD, Behold, I will bring evil upon -them, which they shall not be able to escape; and though they shall -cry unto me, I will not hearken unto them. - -11:12 Then shall the cities of Judah and inhabitants of Jerusalem go, -and cry unto the gods unto whom they offer incense: but they shall not -save them at all in the time of their trouble. - -11:13 For according to the number of thy cities were thy gods, O -Judah; and according to the number of the streets of Jerusalem have ye -set up altars to that shameful thing, even altars to burn incense unto -Baal. - -11:14 Therefore pray not thou for this people, neither lift up a cry -or prayer for them: for I will not hear them in the time that they cry -unto me for their trouble. - -11:15 What hath my beloved to do in mine house, seeing she hath -wrought lewdness with many, and the holy flesh is passed from thee? -when thou doest evil, then thou rejoicest. - -11:16 The LORD called thy name, A green olive tree, fair, and of -goodly fruit: with the noise of a great tumult he hath kindled fire -upon it, and the branches of it are broken. - -11:17 For the LORD of hosts, that planted thee, hath pronounced evil -against thee, for the evil of the house of Israel and of the house of -Judah, which they have done against themselves to provoke me to anger -in offering incense unto Baal. - -11:18 And the LORD hath given me knowledge of it, and I know it: then -thou shewedst me their doings. - -11:19 But I was like a lamb or an ox that is brought to the slaughter; -and I knew not that they had devised devices against me, saying, Let -us destroy the tree with the fruit thereof, and let us cut him off -from the land of the living, that his name may be no more remembered. - -11:20 But, O LORD of hosts, that judgest righteously, that triest the -reins and the heart, let me see thy vengeance on them: for unto thee -have I revealed my cause. - -11:21 Therefore thus saith the LORD of the men of Anathoth, that seek -thy life, saying, Prophesy not in the name of the LORD, that thou die -not by our hand: 11:22 Therefore thus saith the LORD of hosts, Behold, -I will punish them: the young men shall die by the sword; their sons -and their daughters shall die by famine: 11:23 And there shall be no -remnant of them: for I will bring evil upon the men of Anathoth, even -the year of their visitation. - -12:1 Righteous art thou, O LORD, when I plead with thee: yet let me -talk with thee of thy judgments: Wherefore doth the way of the wicked -prosper? wherefore are all they happy that deal very treacherously? -12:2 Thou hast planted them, yea, they have taken root: they grow, -yea, they bring forth fruit: thou art near in their mouth, and far -from their reins. - -12:3 But thou, O LORD, knowest me: thou hast seen me, and tried mine -heart toward thee: pull them out like sheep for the slaughter, and -prepare them for the day of slaughter. - -12:4 How long shall the land mourn, and the herbs of every field -wither, for the wickedness of them that dwell therein? the beasts are -consumed, and the birds; because they said, He shall not see our last -end. - -12:5 If thou hast run with the footmen, and they have wearied thee, -then how canst thou contend with horses? and if in the land of peace, -wherein thou trustedst, they wearied thee, then how wilt thou do in -the swelling of Jordan? 12:6 For even thy brethren, and the house of -thy father, even they have dealt treacherously with thee; yea, they -have called a multitude after thee: believe them not, though they -speak fair words unto thee. - -12:7 I have forsaken mine house, I have left mine heritage; I have -given the dearly beloved of my soul into the hand of her enemies. - -12:8 Mine heritage is unto me as a lion in the forest; it crieth out -against me: therefore have I hated it. - -12:9 Mine heritage is unto me as a speckled bird, the birds round -about are against her; come ye, assemble all the beasts of the field, -come to devour. - -12:10 Many pastors have destroyed my vineyard, they have trodden my -portion under foot, they have made my pleasant portion a desolate -wilderness. - -12:11 They have made it desolate, and being desolate it mourneth unto -me; the whole land is made desolate, because no man layeth it to -heart. - -12:12 The spoilers are come upon all high places through the -wilderness: for the sword of the LORD shall devour from the one end of -the land even to the other end of the land: no flesh shall have peace. - -12:13 They have sown wheat, but shall reap thorns: they have put -themselves to pain, but shall not profit: and they shall be ashamed of -your revenues because of the fierce anger of the LORD. - -12:14 Thus saith the LORD against all mine evil neighbours, that touch -the inheritance which I have caused my people Israel to inherit; -Behold, I will pluck them out of their land, and pluck out the house -of Judah from among them. - -12:15 And it shall come to pass, after that I have plucked them out I -will return, and have compassion on them, and will bring them again, -every man to his heritage, and every man to his land. - -12:16 And it shall come to pass, if they will diligently learn the -ways of my people, to swear by my name, The LORD liveth; as they -taught my people to swear by Baal; then shall they be built in the -midst of my people. - -12:17 But if they will not obey, I will utterly pluck up and destroy -that nation, saith the LORD. - -13:1 Thus saith the LORD unto me, Go and get thee a linen girdle, and -put it upon thy loins, and put it not in water. - -13:2 So I got a girdle according to the word of the LORD, and put it -on my loins. - -13:3 And the word of the LORD came unto me the second time, saying, -13:4 Take the girdle that thou hast got, which is upon thy loins, and -arise, go to Euphrates, and hide it there in a hole of the rock. - -13:5 So I went, and hid it by Euphrates, as the LORD commanded me. - -13:6 And it came to pass after many days, that the LORD said unto me, -Arise, go to Euphrates, and take the girdle from thence, which I -commanded thee to hide there. - -13:7 Then I went to Euphrates, and digged, and took the girdle from -the place where I had hid it: and, behold, the girdle was marred, it -was profitable for nothing. - -13:8 Then the word of the LORD came unto me, saying, 13:9 Thus saith -the LORD, After this manner will I mar the pride of Judah, and the -great pride of Jerusalem. - -13:10 This evil people, which refuse to hear my words, which walk in -the imagination of their heart, and walk after other gods, to serve -them, and to worship them, shall even be as this girdle, which is good -for nothing. - -13:11 For as the girdle cleaveth to the loins of a man, so have I -caused to cleave unto me the whole house of Israel and the whole house -of Judah, saith the LORD; that they might be unto me for a people, and -for a name, and for a praise, and for a glory: but they would not -hear. - -13:12 Therefore thou shalt speak unto them this word; Thus saith the -LORD God of Israel, Every bottle shall be filled with wine: and they -shall say unto thee, Do we not certainly know that every bottle shall -be filled with wine? 13:13 Then shalt thou say unto them, Thus saith -the LORD, Behold, I will fill all the inhabitants of this land, even -the kings that sit upon David's throne, and the priests, and the -prophets, and all the inhabitants of Jerusalem, with drunkenness. - -13:14 And I will dash them one against another, even the fathers and -the sons together, saith the LORD: I will not pity, nor spare, nor -have mercy, but destroy them. - -13:15 Hear ye, and give ear; be not proud: for the LORD hath spoken. - -13:16 Give glory to the LORD your God, before he cause darkness, and -before your feet stumble upon the dark mountains, and, while ye look -for light, he turn it into the shadow of death, and make it gross -darkness. - -13:17 But if ye will not hear it, my soul shall weep in secret places -for your pride; and mine eye shall weep sore, and run down with tears, -because the LORD's flock is carried away captive. - -13:18 Say unto the king and to the queen, Humble yourselves, sit down: -for your principalities shall come down, even the crown of your glory. - -13:19 The cities of the south shall be shut up, and none shall open -them: Judah shall be carried away captive all of it, it shall be -wholly carried away captive. - -13:20 Lift up your eyes, and behold them that come from the north: -where is the flock that was given thee, thy beautiful flock? 13:21 -What wilt thou say when he shall punish thee? for thou hast taught -them to be captains, and as chief over thee: shall not sorrows take -thee, as a woman in travail? 13:22 And if thou say in thine heart, -Wherefore come these things upon me? For the greatness of thine -iniquity are thy skirts discovered, and thy heels made bare. - -13:23 Can the Ethiopian change his skin, or the leopard his spots? -then may ye also do good, that are accustomed to do evil. - -13:24 Therefore will I scatter them as the stubble that passeth away -by the wind of the wilderness. - -13:25 This is thy lot, the portion of thy measures from me, saith the -LORD; because thou hast forgotten me, and trusted in falsehood. - -13:26 Therefore will I discover thy skirts upon thy face, that thy -shame may appear. - -13:27 I have seen thine adulteries, and thy neighings, the lewdness of -thy whoredom, and thine abominations on the hills in the fields. Woe -unto thee, O Jerusalem! wilt thou not be made clean? when shall it -once be? 14:1 The word of the LORD that came to Jeremiah concerning -the dearth. - -14:2 Judah mourneth, and the gates thereof languish; they are black -unto the ground; and the cry of Jerusalem is gone up. - -14:3 And their nobles have sent their little ones to the waters: they -came to the pits, and found no water; they returned with their vessels -empty; they were ashamed and confounded, and covered their heads. - -14:4 Because the ground is chapt, for there was no rain in the earth, -the plowmen were ashamed, they covered their heads. - -14:5 Yea, the hind also calved in the field, and forsook it, because -there was no grass. - -14:6 And the wild asses did stand in the high places, they snuffed up -the wind like dragons; their eyes did fail, because there was no -grass. - -14:7 O LORD, though our iniquities testify against us, do thou it for -thy name's sake: for our backslidings are many; we have sinned against -thee. - -14:8 O the hope of Israel, the saviour thereof in time of trouble, why -shouldest thou be as a stranger in the land, and as a wayfaring man -that turneth aside to tarry for a night? 14:9 Why shouldest thou be -as a man astonied, as a mighty man that cannot save? yet thou, O LORD, -art in the midst of us, and we are called by thy name; leave us not. - -14:10 Thus saith the LORD unto this people, Thus have they loved to -wander, they have not refrained their feet, therefore the LORD doth -not accept them; he will now remember their iniquity, and visit their -sins. - -14:11 Then said the LORD unto me, Pray not for this people for their -good. - -14:12 When they fast, I will not hear their cry; and when they offer -burnt offering and an oblation, I will not accept them: but I will -consume them by the sword, and by the famine, and by the pestilence. - -14:13 Then said I, Ah, Lord GOD! behold, the prophets say unto them, -Ye shall not see the sword, neither shall ye have famine; but I will -give you assured peace in this place. - -14:14 Then the LORD said unto me, The prophets prophesy lies in my -name: I sent them not, neither have I commanded them, neither spake -unto them: they prophesy unto you a false vision and divination, and a -thing of nought, and the deceit of their heart. - -14:15 Therefore thus saith the LORD concerning the prophets that -prophesy in my name, and I sent them not, yet they say, Sword and -famine shall not be in this land; By sword and famine shall those -prophets be consumed. - -14:16 And the people to whom they prophesy shall be cast out in the -streets of Jerusalem because of the famine and the sword; and they -shall have none to bury them, them, their wives, nor their sons, nor -their daughters: for I will pour their wickedness upon them. - -14:17 Therefore thou shalt say this word unto them; Let mine eyes run -down with tears night and day, and let them not cease: for the virgin -daughter of my people is broken with a great breach, with a very -grievous blow. - -14:18 If I go forth into the field, then behold the slain with the -sword! and if I enter into the city, then behold them that are sick -with famine! yea, both the prophet and the priest go about into a -land that they know not. - -14:19 Hast thou utterly rejected Judah? hath thy soul lothed Zion? why -hast thou smitten us, and there is no healing for us? we looked for -peace, and there is no good; and for the time of healing, and behold -trouble! 14:20 We acknowledge, O LORD, our wickedness, and the -iniquity of our fathers: for we have sinned against thee. - -14:21 Do not abhor us, for thy name's sake, do not disgrace the throne -of thy glory: remember, break not thy covenant with us. - -14:22 Are there any among the vanities of the Gentiles that can cause -rain? or can the heavens give showers? art not thou he, O LORD our -God? therefore we will wait upon thee: for thou hast made all these -things. - -15:1 Then said the LORD unto me, Though Moses and Samuel stood before -me, yet my mind could not be toward this people: cast them out of my -sight, and let them go forth. - -15:2 And it shall come to pass, if they say unto thee, Whither shall -we go forth? then thou shalt tell them, Thus saith the LORD; Such as -are for death, to death; and such as are for the sword, to the sword; -and such as are for the famine, to the famine; and such as are for the -captivity, to the captivity. - -15:3 And I will appoint over them four kinds, saith the LORD: the -sword to slay, and the dogs to tear, and the fowls of the heaven, and -the beasts of the earth, to devour and destroy. - -15:4 And I will cause them to be removed into all kingdoms of the -earth, because of Manasseh the son of Hezekiah king of Judah, for that -which he did in Jerusalem. - -15:5 For who shall have pity upon thee, O Jerusalem? or who shall -bemoan thee? or who shall go aside to ask how thou doest? 15:6 Thou -hast forsaken me, saith the LORD, thou art gone backward: therefore -will I stretch out my hand against thee, and destroy thee; I am weary -with repenting. - -15:7 And I will fan them with a fan in the gates of the land; I will -bereave them of children, I will destroy my people since they return -not from their ways. - -15:8 Their widows are increased to me above the sand of the seas: I -have brought upon them against the mother of the young men a spoiler -at noonday: I have caused him to fall upon it suddenly, and terrors -upon the city. - -15:9 She that hath borne seven languisheth: she hath given up the -ghost; her sun is gone down while it was yet day: she hath been -ashamed and confounded: and the residue of them will I deliver to the -sword before their enemies, saith the LORD. - -15:10 Woe is me, my mother, that thou hast borne me a man of strife -and a man of contention to the whole earth! I have neither lent on -usury, nor men have lent to me on usury; yet every one of them doth -curse me. - -15:11 The LORD said, Verily it shall be well with thy remnant; verily -I will cause the enemy to entreat thee well in the time of evil and in -the time of affliction. - -15:12 Shall iron break the northern iron and the steel? 15:13 Thy -substance and thy treasures will I give to the spoil without price, -and that for all thy sins, even in all thy borders. - -15:14 And I will make thee to pass with thine enemies into a land -which thou knowest not: for a fire is kindled in mine anger, which -shall burn upon you. - -15:15 O LORD, thou knowest: remember me, and visit me, and revenge me -of my persecutors; take me not away in thy longsuffering: know that -for thy sake I have suffered rebuke. - -15:16 Thy words were found, and I did eat them; and thy word was unto -me the joy and rejoicing of mine heart: for I am called by thy name, O -LORD God of hosts. - -15:17 I sat not in the assembly of the mockers, nor rejoiced; I sat -alone because of thy hand: for thou hast filled me with indignation. - -15:18 Why is my pain perpetual, and my wound incurable, which refuseth -to be healed? wilt thou be altogether unto me as a liar, and as waters -that fail? 15:19 Therefore thus saith the LORD, If thou return, then -will I bring thee again, and thou shalt stand before me: and if thou -take forth the precious from the vile, thou shalt be as my mouth: let -them return unto thee; but return not thou unto them. - -15:20 And I will make thee unto this people a fenced brasen wall: and -they shall fight against thee, but they shall not prevail against -thee: for I am with thee to save thee and to deliver thee, saith the -LORD. - -15:21 And I will deliver thee out of the hand of the wicked, and I -will redeem thee out of the hand of the terrible. - -16:1 The word of the LORD came also unto me, saying, 16:2 Thou shalt -not take thee a wife, neither shalt thou have sons or daughters in -this place. - -16:3 For thus saith the LORD concerning the sons and concerning the -daughters that are born in this place, and concerning their mothers -that bare them, and concerning their fathers that begat them in this -land; 16:4 They shall die of grievous deaths; they shall not be -lamented; neither shall they be buried; but they shall be as dung upon -the face of the earth: and they shall be consumed by the sword, and by -famine; and their carcases shall be meat for the fowls of heaven, and -for the beasts of the earth. - -16:5 For thus saith the LORD, Enter not into the house of mourning, -neither go to lament nor bemoan them: for I have taken away my peace -from this people, saith the LORD, even lovingkindness and mercies. - -16:6 Both the great and the small shall die in this land: they shall -not be buried, neither shall men lament for them, nor cut themselves, -nor make themselves bald for them: 16:7 Neither shall men tear -themselves for them in mourning, to comfort them for the dead; neither -shall men give them the cup of consolation to drink for their father -or for their mother. - -16:8 Thou shalt not also go into the house of feasting, to sit with -them to eat and to drink. - -16:9 For thus saith the LORD of hosts, the God of Israel; Behold, I -will cause to cease out of this place in your eyes, and in your days, -the voice of mirth, and the voice of gladness, the voice of the -bridegroom, and the voice of the bride. - -16:10 And it shall come to pass, when thou shalt shew this people all -these words, and they shall say unto thee, Wherefore hath the LORD -pronounced all this great evil against us? or what is our iniquity? or -what is our sin that we have committed against the LORD our God? -16:11 Then shalt thou say unto them, Because your fathers have -forsaken me, saith the LORD, and have walked after other gods, and -have served them, and have worshipped them, and have forsaken me, and -have not kept my law; 16:12 And ye have done worse than your fathers; -for, behold, ye walk every one after the imagination of his evil -heart, that they may not hearken unto me: 16:13 Therefore will I cast -you out of this land into a land that ye know not, neither ye nor your -fathers; and there shall ye serve other gods day and night; where I -will not shew you favour. - -16:14 Therefore, behold, the days come, saith the LORD, that it shall -no more be said, The LORD liveth, that brought up the children of -Israel out of the land of Egypt; 16:15 But, The LORD liveth, that -brought up the children of Israel from the land of the north, and from -all the lands whither he had driven them: and I will bring them again -into their land that I gave unto their fathers. - -16:16 Behold, I will send for many fishers, saith the LORD, and they -shall fish them; and after will I send for many hunters, and they -shall hunt them from every mountain, and from every hill, and out of -the holes of the rocks. - -16:17 For mine eyes are upon all their ways: they are not hid from my -face, neither is their iniquity hid from mine eyes. - -16:18 And first I will recompense their iniquity and their sin double; -because they have defiled my land, they have filled mine inheritance -with the carcases of their detestable and abominable things. - -16:19 O LORD, my strength, and my fortress, and my refuge in the day -of affliction, the Gentiles shall come unto thee from the ends of the -earth, and shall say, Surely our fathers have inherited lies, vanity, -and things wherein there is no profit. - -16:20 Shall a man make gods unto himself, and they are no gods? 16:21 -Therefore, behold, I will this once cause them to know, I will cause -them to know mine hand and my might; and they shall know that my name -is The LORD. - -17:1 The sin of Judah is written with a pen of iron, and with the -point of a diamond: it is graven upon the table of their heart, and -upon the horns of your altars; 17:2 Whilst their children remember -their altars and their groves by the green trees upon the high hills. - -17:3 O my mountain in the field, I will give thy substance and all thy -treasures to the spoil, and thy high places for sin, throughout all -thy borders. - -17:4 And thou, even thyself, shalt discontinue from thine heritage -that I gave thee; and I will cause thee to serve thine enemies in the -land which thou knowest not: for ye have kindled a fire in mine anger, -which shall burn for ever. - -17:5 Thus saith the LORD; Cursed be the man that trusteth in man, and -maketh flesh his arm, and whose heart departeth from the LORD. - -17:6 For he shall be like the heath in the desert, and shall not see -when good cometh; but shall inhabit the parched places in the -wilderness, in a salt land and not inhabited. - -17:7 Blessed is the man that trusteth in the LORD, and whose hope the -LORD is. - -17:8 For he shall be as a tree planted by the waters, and that -spreadeth out her roots by the river, and shall not see when heat -cometh, but her leaf shall be green; and shall not be careful in the -year of drought, neither shall cease from yielding fruit. - -17:9 The heart is deceitful above all things, and desperately wicked: -who can know it? 17:10 I the LORD search the heart, I try the reins, -even to give every man according to his ways, and according to the -fruit of his doings. - -17:11 As the partridge sitteth on eggs, and hatcheth them not; so he -that getteth riches, and not by right, shall leave them in the midst -of his days, and at his end shall be a fool. - -17:12 A glorious high throne from the beginning is the place of our -sanctuary. - -17:13 O LORD, the hope of Israel, all that forsake thee shall be -ashamed, and they that depart from me shall be written in the earth, -because they have forsaken the LORD, the fountain of living waters. - -17:14 Heal me, O LORD, and I shall be healed; save me, and I shall be -saved: for thou art my praise. - -17:15 Behold, they say unto me, Where is the word of the LORD? let it -come now. - -17:16 As for me, I have not hastened from being a pastor to follow -thee: neither have I desired the woeful day; thou knowest: that which -came out of my lips was right before thee. - -17:17 Be not a terror unto me: thou art my hope in the day of evil. - -17:18 Let them be confounded that persecute me, but let not me be -confounded: let them be dismayed, but let not me be dismayed: bring -upon them the day of evil, and destroy them with double destruction. - -17:19 Thus said the LORD unto me; Go and stand in the gate of the -children of the people, whereby the kings of Judah come in, and by the -which they go out, and in all the gates of Jerusalem; 17:20 And say -unto them, Hear ye the word of the LORD, ye kings of Judah, and all -Judah, and all the inhabitants of Jerusalem, that enter in by these -gates: 17:21 Thus saith the LORD; Take heed to yourselves, and bear no -burden on the sabbath day, nor bring it in by the gates of Jerusalem; -17:22 Neither carry forth a burden out of your houses on the sabbath -day, neither do ye any work, but hallow ye the sabbath day, as I -commanded your fathers. - -17:23 But they obeyed not, neither inclined their ear, but made their -neck stiff, that they might not hear, nor receive instruction. - -17:24 And it shall come to pass, if ye diligently hearken unto me, -saith the LORD, to bring in no burden through the gates of this city -on the sabbath day, but hallow the sabbath day, to do no work therein; -17:25 Then shall there enter into the gates of this city kings and -princes sitting upon the throne of David, riding in chariots and on -horses, they, and their princes, the men of Judah, and the inhabitants -of Jerusalem: and this city shall remain for ever. - -17:26 And they shall come from the cities of Judah, and from the -places about Jerusalem, and from the land of Benjamin, and from the -plain, and from the mountains, and from the south, bringing burnt -offerings, and sacrifices, and meat offerings, and incense, and -bringing sacrifices of praise, unto the house of the LORD. - -17:27 But if ye will not hearken unto me to hallow the sabbath day, -and not to bear a burden, even entering in at the gates of Jerusalem -on the sabbath day; then will I kindle a fire in the gates thereof, -and it shall devour the palaces of Jerusalem, and it shall not be -quenched. - -18:1 The word which came to Jeremiah from the LORD, saying, 18:2 -Arise, and go down to the potter's house, and there I will cause thee -to hear my words. - -18:3 Then I went down to the potter's house, and, behold, he wrought a -work on the wheels. - -18:4 And the vessel that he made of clay was marred in the hand of the -potter: so he made it again another vessel, as seemed good to the -potter to make it. - -18:5 Then the word of the LORD came to me, saying, 18:6 O house of -Israel, cannot I do with you as this potter? saith the LORD. Behold, -as the clay is in the potter's hand, so are ye in mine hand, O house -of Israel. - -18:7 At what instant I shall speak concerning a nation, and concerning -a kingdom, to pluck up, and to pull down, and to destroy it; 18:8 If -that nation, against whom I have pronounced, turn from their evil, I -will repent of the evil that I thought to do unto them. - -18:9 And at what instant I shall speak concerning a nation, and -concerning a kingdom, to build and to plant it; 18:10 If it do evil in -my sight, that it obey not my voice, then I will repent of the good, -wherewith I said I would benefit them. - -18:11 Now therefore go to, speak to the men of Judah, and to the -inhabitants of Jerusalem, saying, Thus saith the LORD; Behold, I frame -evil against you, and devise a device against you: return ye now every -one from his evil way, and make your ways and your doings good. - -18:12 And they said, There is no hope: but we will walk after our own -devices, and we will every one do the imagination of his evil heart. - -18:13 Therefore thus saith the LORD; Ask ye now among the heathen, who -hath heard such things: the virgin of Israel hath done a very horrible -thing. - -18:14 Will a man leave the snow of Lebanon which cometh from the rock -of the field? or shall the cold flowing waters that come from another -place be forsaken? 18:15 Because my people hath forgotten me, they -have burned incense to vanity, and they have caused them to stumble in -their ways from the ancient paths, to walk in paths, in a way not cast -up; 18:16 To make their land desolate, and a perpetual hissing; every -one that passeth thereby shall be astonished, and wag his head. - -18:17 I will scatter them as with an east wind before the enemy; I -will shew them the back, and not the face, in the day of their -calamity. - -18:18 Then said they, Come and let us devise devices against Jeremiah; -for the law shall not perish from the priest, nor counsel from the -wise, nor the word from the prophet. Come, and let us smite him with -the tongue, and let us not give heed to any of his words. - -18:19 Give heed to me, O LORD, and hearken to the voice of them that -contend with me. - -18:20 Shall evil be recompensed for good? for they have digged a pit -for my soul. Remember that I stood before thee to speak good for them, -and to turn away thy wrath from them. - -18:21 Therefore deliver up their children to the famine, and pour out -their blood by the force of the sword; and let their wives be bereaved -of their children, and be widows; and let their men be put to death; -let their young men be slain by the sword in battle. - -18:22 Let a cry be heard from their houses, when thou shalt bring a -troop suddenly upon them: for they have digged a pit to take me, and -hid snares for my feet. - -18:23 Yet, LORD, thou knowest all their counsel against me to slay me: -forgive not their iniquity, neither blot out their sin from thy sight, -but let them be overthrown before thee; deal thus with them in the -time of thine anger. - -19:1 Thus saith the LORD, Go and get a potter's earthen bottle, and -take of the ancients of the people, and of the ancients of the -priests; 19:2 And go forth unto the valley of the son of Hinnom, which -is by the entry of the east gate, and proclaim there the words that I -shall tell thee, 19:3 And say, Hear ye the word of the LORD, O kings -of Judah, and inhabitants of Jerusalem; Thus saith the LORD of hosts, -the God of Israel; Behold, I will bring evil upon this place, the -which whosoever heareth, his ears shall tingle. - -19:4 Because they have forsaken me, and have estranged this place, and -have burned incense in it unto other gods, whom neither they nor their -fathers have known, nor the kings of Judah, and have filled this place -with the blood of innocents; 19:5 They have built also the high places -of Baal, to burn their sons with fire for burnt offerings unto Baal, -which I commanded not, nor spake it, neither came it into my mind: -19:6 Therefore, behold, the days come, saith the LORD, that this place -shall no more be called Tophet, nor The valley of the son of Hinnom, -but The valley of slaughter. - -19:7 And I will make void the counsel of Judah and Jerusalem in this -place; and I will cause them to fall by the sword before their -enemies, and by the hands of them that seek their lives: and their -carcases will I give to be meat for the fowls of the heaven, and for -the beasts of the earth. - -19:8 And I will make this city desolate, and an hissing; every one -that passeth thereby shall be astonished and hiss because of all the -plagues thereof. - -19:9 And I will cause them to eat the flesh of their sons and the -flesh of their daughters, and they shall eat every one the flesh of -his friend in the siege and straitness, wherewith their enemies, and -they that seek their lives, shall straiten them. - -19:10 Then shalt thou break the bottle in the sight of the men that go -with thee, 19:11 And shalt say unto them, Thus saith the LORD of -hosts; Even so will I break this people and this city, as one breaketh -a potter's vessel, that cannot be made whole again: and they shall -bury them in Tophet, till there be no place to bury. - -19:12 Thus will I do unto this place, saith the LORD, and to the -inhabitants thereof, and even make this city as Tophet: 19:13 And the -houses of Jerusalem, and the houses of the kings of Judah, shall be -defiled as the place of Tophet, because of all the houses upon whose -roofs they have burned incense unto all the host of heaven, and have -poured out drink offerings unto other gods. - -19:14 Then came Jeremiah from Tophet, whither the LORD had sent him to -prophesy; and he stood in the court of the LORD's house; and said to -all the people, 19:15 Thus saith the LORD of hosts, the God of Israel; -Behold, I will bring upon this city and upon all her towns all the -evil that I have pronounced against it, because they have hardened -their necks, that they might not hear my words. - -20:1 Now Pashur the son of Immer the priest, who was also chief -governor in the house of the LORD, heard that Jeremiah prophesied -these things. - -20:2 Then Pashur smote Jeremiah the prophet, and put him in the stocks -that were in the high gate of Benjamin, which was by the house of the -LORD. - -20:3 And it came to pass on the morrow, that Pashur brought forth -Jeremiah out of the stocks. Then said Jeremiah unto him, The LORD hath -not called thy name Pashur, but Magormissabib. - -20:4 For thus saith the LORD, Behold, I will make thee a terror to -thyself, and to all thy friends: and they shall fall by the sword of -their enemies, and thine eyes shall behold it: and I will give all -Judah into the hand of the king of Babylon, and he shall carry them -captive into Babylon, and shall slay them with the sword. - -20:5 Moreover I will deliver all the strength of this city, and all -the labours thereof, and all the precious things thereof, and all the -treasures of the kings of Judah will I give into the hand of their -enemies, which shall spoil them, and take them, and carry them to -Babylon. - -20:6 And thou, Pashur, and all that dwell in thine house shall go into -captivity: and thou shalt come to Babylon, and there thou shalt die, -and shalt be buried there, thou, and all thy friends, to whom thou -hast prophesied lies. - -20:7 O LORD, thou hast deceived me, and I was deceived; thou art -stronger than I, and hast prevailed: I am in derision daily, every one -mocketh me. - -20:8 For since I spake, I cried out, I cried violence and spoil; -because the word of the LORD was made a reproach unto me, and a -derision, daily. - -20:9 Then I said, I will not make mention of him, nor speak any more -in his name. But his word was in mine heart as a burning fire shut up -in my bones, and I was weary with forbearing, and I could not stay. - -20:10 For I heard the defaming of many, fear on every side. Report, -say they, and we will report it. All my familiars watched for my -halting, saying, Peradventure he will be enticed, and we shall prevail -against him, and we shall take our revenge on him. - -20:11 But the LORD is with me as a mighty terrible one: therefore my -persecutors shall stumble, and they shall not prevail: they shall be -greatly ashamed; for they shall not prosper: their everlasting -confusion shall never be forgotten. - -20:12 But, O LORD of hosts, that triest the righteous, and seest the -reins and the heart, let me see thy vengeance on them: for unto thee -have I opened my cause. - -20:13 Sing unto the LORD, praise ye the LORD: for he hath delivered -the soul of the poor from the hand of evildoers. - -20:14 Cursed be the day wherein I was born: let not the day wherein my -mother bare me be blessed. - -20:15 Cursed be the man who brought tidings to my father, saying, A -man child is born unto thee; making him very glad. - -20:16 And let that man be as the cities which the LORD overthrew, and -repented not: and let him hear the cry in the morning, and the -shouting at noontide; 20:17 Because he slew me not from the womb; or -that my mother might have been my grave, and her womb to be always -great with me. - -20:18 Wherefore came I forth out of the womb to see labour and sorrow, -that my days should be consumed with shame? 21:1 The word which came -unto Jeremiah from the LORD, when king Zedekiah sent unto him Pashur -the son of Melchiah, and Zephaniah the son of Maaseiah the priest, -saying, 21:2 Enquire, I pray thee, of the LORD for us; for -Nebuchadrezzar king of Babylon maketh war against us; if so be that -the LORD will deal with us according to all his wondrous works, that -he may go up from us. - -21:3 Then said Jeremiah unto them, Thus shall ye say to Zedekiah: 21:4 -Thus saith the LORD God of Israel; Behold, I will turn back the -weapons of war that are in your hands, wherewith ye fight against the -king of Babylon, and against the Chaldeans, which besiege you without -the walls, and I will assemble them into the midst of this city. - -21:5 And I myself will fight against you with an outstretched hand and -with a strong arm, even in anger, and in fury, and in great wrath. - -21:6 And I will smite the inhabitants of this city, both man and -beast: they shall die of a great pestilence. - -21:7 And afterward, saith the LORD, I will deliver Zedekiah king of -Judah, and his servants, and the people, and such as are left in this -city from the pestilence, from the sword, and from the famine, into -the hand of Nebuchadrezzar king of Babylon, and into the hand of their -enemies, and into the hand of those that seek their life: and he shall -smite them with the edge of the sword; he shall not spare them, -neither have pity, nor have mercy. - -21:8 And unto this people thou shalt say, Thus saith the LORD; Behold, -I set before you the way of life, and the way of death. - -21:9 He that abideth in this city shall die by the sword, and by the -famine, and by the pestilence: but he that goeth out, and falleth to -the Chaldeans that besiege you, he shall live, and his life shall be -unto him for a prey. - -21:10 For I have set my face against this city for evil, and not for -good, saith the LORD: it shall be given into the hand of the king of -Babylon, and he shall burn it with fire. - -21:11 And touching the house of the king of Judah, say, Hear ye the -word of the LORD; 21:12 O house of David, thus saith the LORD; Execute -judgment in the morning, and deliver him that is spoiled out of the -hand of the oppressor, lest my fury go out like fire, and burn that -none can quench it, because of the evil of your doings. - -21:13 Behold, I am against thee, O inhabitant of the valley, and rock -of the plain, saith the LORD; which say, Who shall come down against -us? or who shall enter into our habitations? 21:14 But I will punish -you according to the fruit of your doings, saith the LORD: and I will -kindle a fire in the forest thereof, and it shall devour all things -round about it. - -22:1 Thus saith the LORD; Go down to the house of the king of Judah, -and speak there this word, 22:2 And say, Hear the word of the LORD, O -king of Judah, that sittest upon the throne of David, thou, and thy -servants, and thy people that enter in by these gates: 22:3 Thus saith -the LORD; Execute ye judgment and righteousness, and deliver the -spoiled out of the hand of the oppressor: and do no wrong, do no -violence to the stranger, the fatherless, nor the widow, neither shed -innocent blood in this place. - -22:4 For if ye do this thing indeed, then shall there enter in by the -gates of this house kings sitting upon the throne of David, riding in -chariots and on horses, he, and his servants, and his people. - -22:5 But if ye will not hear these words, I swear by myself, saith the -LORD, that this house shall become a desolation. - -22:6 For thus saith the LORD unto the king's house of Judah; Thou art -Gilead unto me, and the head of Lebanon: yet surely I will make thee a -wilderness, and cities which are not inhabited. - -22:7 And I will prepare destroyers against thee, every one with his -weapons: and they shall cut down thy choice cedars, and cast them into -the fire. - -22:8 And many nations shall pass by this city, and they shall say -every man to his neighbour, Wherefore hath the LORD done thus unto -this great city? 22:9 Then they shall answer, Because they have -forsaken the covenant of the LORD their God, and worshipped other -gods, and served them. - -22:10 Weep ye not for the dead, neither bemoan him: but weep sore for -him that goeth away: for he shall return no more, nor see his native -country. - -22:11 For thus saith the LORD touching Shallum the son of Josiah king -of Judah, which reigned instead of Josiah his father, which went forth -out of this place; He shall not return thither any more: 22:12 But he -shall die in the place whither they have led him captive, and shall -see this land no more. - -22:13 Woe unto him that buildeth his house by unrighteousness, and his -chambers by wrong; that useth his neighbour's service without wages, -and giveth him not for his work; 22:14 That saith, I will build me a -wide house and large chambers, and cutteth him out windows; and it is -cieled with cedar, and painted with vermilion. - -22:15 Shalt thou reign, because thou closest thyself in cedar? did not -thy father eat and drink, and do judgment and justice, and then it was -well with him? 22:16 He judged the cause of the poor and needy; then -it was well with him: was not this to know me? saith the LORD. - -22:17 But thine eyes and thine heart are not but for thy covetousness, -and for to shed innocent blood, and for oppression, and for violence, -to do it. - -22:18 Therefore thus saith the LORD concerning Jehoiakim the son of -Josiah king of Judah; They shall not lament for him, saying, Ah my -brother! or, Ah sister! they shall not lament for him, saying, Ah -lord! or, Ah his glory! 22:19 He shall be buried with the burial of -an ass, drawn and cast forth beyond the gates of Jerusalem. - -22:20 Go up to Lebanon, and cry; and lift up thy voice in Bashan, and -cry from the passages: for all thy lovers are destroyed. - -22:21 I spake unto thee in thy prosperity; but thou saidst, I will not -hear. This hath been thy manner from thy youth, that thou obeyedst not -my voice. - -22:22 The wind shall eat up all thy pastors, and thy lovers shall go -into captivity: surely then shalt thou be ashamed and confounded for -all thy wickedness. - -22:23 O inhabitant of Lebanon, that makest thy nest in the cedars, how -gracious shalt thou be when pangs come upon thee, the pain as of a -woman in travail! 22:24 As I live, saith the LORD, though Coniah the -son of Jehoiakim king of Judah were the signet upon my right hand, yet -would I pluck thee thence; 22:25 And I will give thee into the hand of -them that seek thy life, and into the hand of them whose face thou -fearest, even into the hand of Nebuchadrezzar king of Babylon, and -into the hand of the Chaldeans. - -22:26 And I will cast thee out, and thy mother that bare thee, into -another country, where ye were not born; and there shall ye die. - -22:27 But to the land whereunto they desire to return, thither shall -they not return. - -22:28 Is this man Coniah a despised broken idol? is he a vessel -wherein is no pleasure? wherefore are they cast out, he and his seed, -and are cast into a land which they know not? 22:29 O earth, earth, -earth, hear the word of the LORD. - -22:30 Thus saith the LORD, Write ye this man childless, a man that -shall not prosper in his days: for no man of his seed shall prosper, -sitting upon the throne of David, and ruling any more in Judah. - -23:1 Woe be unto the pastors that destroy and scatter the sheep of my -pasture! saith the LORD. - -23:2 Therefore thus saith the LORD God of Israel against the pastors -that feed my people; Ye have scattered my flock, and driven them away, -and have not visited them: behold, I will visit upon you the evil of -your doings, saith the LORD. - -23:3 And I will gather the remnant of my flock out of all countries -whither I have driven them, and will bring them again to their folds; -and they shall be fruitful and increase. - -23:4 And I will set up shepherds over them which shall feed them: and -they shall fear no more, nor be dismayed, neither shall they be -lacking, saith the LORD. - -23:5 Behold, the days come, saith the LORD, that I will raise unto -David a righteous Branch, and a King shall reign and prosper, and -shall execute judgment and justice in the earth. - -23:6 In his days Judah shall be saved, and Israel shall dwell safely: -and this is his name whereby he shall be called, THE LORD OUR -RIGHTEOUSNESS. - -23:7 Therefore, behold, the days come, saith the LORD, that they shall -no more say, The LORD liveth, which brought up the children of Israel -out of the land of Egypt; 23:8 But, The LORD liveth, which brought up -and which led the seed of the house of Israel out of the north -country, and from all countries whither I had driven them; and they -shall dwell in their own land. - -23:9 Mine heart within me is broken because of the prophets; all my -bones shake; I am like a drunken man, and like a man whom wine hath -overcome, because of the LORD, and because of the words of his -holiness. - -23:10 For the land is full of adulterers; for because of swearing the -land mourneth; the pleasant places of the wilderness are dried up, and -their course is evil, and their force is not right. - -23:11 For both prophet and priest are profane; yea, in my house have I -found their wickedness, saith the LORD. - -23:12 Wherefore their way shall be unto them as slippery ways in the -darkness: they shall be driven on, and fall therein: for I will bring -evil upon them, even the year of their visitation, saith the LORD. - -23:13 And I have seen folly in the prophets of Samaria; they -prophesied in Baal, and caused my people Israel to err. - -23:14 I have seen also in the prophets of Jerusalem an horrible thing: -they commit adultery, and walk in lies: they strengthen also the hands -of evildoers, that none doth return from his wickedness; they are all -of them unto me as Sodom, and the inhabitants thereof as Gomorrah. - -23:15 Therefore thus saith the LORD of hosts concerning the prophets; -Behold, I will feed them with wormwood, and make them drink the water -of gall: for from the prophets of Jerusalem is profaneness gone forth -into all the land. - -23:16 Thus saith the LORD of hosts, Hearken not unto the words of the -prophets that prophesy unto you: they make you vain: they speak a -vision of their own heart, and not out of the mouth of the LORD. - -23:17 They say still unto them that despise me, The LORD hath said, Ye -shall have peace; and they say unto every one that walketh after the -imagination of his own heart, No evil shall come upon you. - -23:18 For who hath stood in the counsel of the LORD, and hath -perceived and heard his word? who hath marked his word, and heard it? -23:19 Behold, a whirlwind of the LORD is gone forth in fury, even a -grievous whirlwind: it shall fall grievously upon the head of the -wicked. - -23:20 The anger of the LORD shall not return, until he have executed, -and till he have performed the thoughts of his heart: in the latter -days ye shall consider it perfectly. - -23:21 I have not sent these prophets, yet they ran: I have not spoken -to them, yet they prophesied. - -23:22 But if they had stood in my counsel, and had caused my people to -hear my words, then they should have turned them from their evil way, -and from the evil of their doings. - -23:23 Am I a God at hand, saith the LORD, and not a God afar off? -23:24 Can any hide himself in secret places that I shall not see him? -saith the LORD. Do not I fill heaven and earth? saith the LORD. - -23:25 I have heard what the prophets said, that prophesy lies in my -name, saying, I have dreamed, I have dreamed. - -23:26 How long shall this be in the heart of the prophets that -prophesy lies? yea, they are prophets of the deceit of their own -heart; 23:27 Which think to cause my people to forget my name by their -dreams which they tell every man to his neighbour, as their fathers -have forgotten my name for Baal. - -23:28 The prophet that hath a dream, let him tell a dream; and he that -hath my word, let him speak my word faithfully. What is the chaff to -the wheat? saith the LORD. - -23:29 Is not my word like as a fire? saith the LORD; and like a hammer -that breaketh the rock in pieces? 23:30 Therefore, behold, I am -against the prophets, saith the LORD, that steal my words every one -from his neighbour. - -23:31 Behold, I am against the prophets, saith the LORD, that use -their tongues, and say, He saith. - -23:32 Behold, I am against them that prophesy false dreams, saith the -LORD, and do tell them, and cause my people to err by their lies, and -by their lightness; yet I sent them not, nor commanded them: therefore -they shall not profit this people at all, saith the LORD. - -23:33 And when this people, or the prophet, or a priest, shall ask -thee, saying, What is the burden of the LORD? thou shalt then say unto -them, What burden? I will even forsake you, saith the LORD. - -23:34 And as for the prophet, and the priest, and the people, that -shall say, The burden of the LORD, I will even punish that man and his -house. - -23:35 Thus shall ye say every one to his neighbour, and every one to -his brother, What hath the LORD answered? and, What hath the LORD -spoken? 23:36 And the burden of the LORD shall ye mention no more: -for every man's word shall be his burden; for ye have perverted the -words of the living God, of the LORD of hosts our God. - -23:37 Thus shalt thou say to the prophet, What hath the LORD answered -thee? and, What hath the LORD spoken? 23:38 But since ye say, The -burden of the LORD; therefore thus saith the LORD; Because ye say this -word, The burden of the LORD, and I have sent unto you, saying, Ye -shall not say, The burden of the LORD; 23:39 Therefore, behold, I, -even I, will utterly forget you, and I will forsake you, and the city -that I gave you and your fathers, and cast you out of my presence: -23:40 And I will bring an everlasting reproach upon you, and a -perpetual shame, which shall not be forgotten. - -24:1 The LORD shewed me, and, behold, two baskets of figs were set -before the temple of the LORD, after that Nebuchadrezzar king of -Babylon had carried away captive Jeconiah the son of Jehoiakim king of -Judah, and the princes of Judah, with the carpenters and smiths, from -Jerusalem, and had brought them to Babylon. - -24:2 One basket had very good figs, even like the figs that are first -ripe: and the other basket had very naughty figs, which could not be -eaten, they were so bad. - -24:3 Then said the LORD unto me, What seest thou, Jeremiah? And I -said, Figs; the good figs, very good; and the evil, very evil, that -cannot be eaten, they are so evil. - -24:4 Again the word of the LORD came unto me, saying, 24:5 Thus saith -the LORD, the God of Israel; Like these good figs, so will I -acknowledge them that are carried away captive of Judah, whom I have -sent out of this place into the land of the Chaldeans for their good. - -24:6 For I will set mine eyes upon them for good, and I will bring -them again to this land: and I will build them, and not pull them -down; and I will plant them, and not pluck them up. - -24:7 And I will give them an heart to know me, that I am the LORD: and -they shall be my people, and I will be their God: for they shall -return unto me with their whole heart. - -24:8 And as the evil figs, which cannot be eaten, they are so evil; -surely thus saith the LORD, So will I give Zedekiah the king of Judah, -and his princes, and the residue of Jerusalem, that remain in this -land, and them that dwell in the land of Egypt: 24:9 And I will -deliver them to be removed into all the kingdoms of the earth for -their hurt, to be a reproach and a proverb, a taunt and a curse, in -all places whither I shall drive them. - -24:10 And I will send the sword, the famine, and the pestilence, among -them, till they be consumed from off the land that I gave unto them -and to their fathers. - -25:1 The word that came to Jeremiah concerning all the people of Judah -in the fourth year of Jehoiakim the son of Josiah king of Judah, that -was the first year of Nebuchadrezzar king of Babylon; 25:2 The which -Jeremiah the prophet spake unto all the people of Judah, and to all -the inhabitants of Jerusalem, saying, 25:3 From the thirteenth year of -Josiah the son of Amon king of Judah, even unto this day, that is the -three and twentieth year, the word of the LORD hath come unto me, and -I have spoken unto you, rising early and speaking; but ye have not -hearkened. - -25:4 And the LORD hath sent unto you all his servants the prophets, -rising early and sending them; but ye have not hearkened, nor inclined -your ear to hear. - -25:5 They said, Turn ye again now every one from his evil way, and -from the evil of your doings, and dwell in the land that the LORD hath -given unto you and to your fathers for ever and ever: 25:6 And go not -after other gods to serve them, and to worship them, and provoke me -not to anger with the works of your hands; and I will do you no hurt. - -25:7 Yet ye have not hearkened unto me, saith the LORD; that ye might -provoke me to anger with the works of your hands to your own hurt. - -25:8 Therefore thus saith the LORD of hosts; Because ye have not heard -my words, 25:9 Behold, I will send and take all the families of the -north, saith the LORD, and Nebuchadrezzar the king of Babylon, my -servant, and will bring them against this land, and against the -inhabitants thereof, and against all these nations round about, and -will utterly destroy them, and make them an astonishment, and an -hissing, and perpetual desolations. - -25:10 Moreover I will take from them the voice of mirth, and the voice -of gladness, the voice of the bridegroom, and the voice of the bride, -the sound of the millstones, and the light of the candle. - -25:11 And this whole land shall be a desolation, and an astonishment; -and these nations shall serve the king of Babylon seventy years. - -25:12 And it shall come to pass, when seventy years are accomplished, -that I will punish the king of Babylon, and that nation, saith the -LORD, for their iniquity, and the land of the Chaldeans, and will make -it perpetual desolations. - -25:13 And I will bring upon that land all my words which I have -pronounced against it, even all that is written in this book, which -Jeremiah hath prophesied against all the nations. - -25:14 For many nations and great kings shall serve themselves of them -also: and I will recompense them according to their deeds, and -according to the works of their own hands. - -25:15 For thus saith the LORD God of Israel unto me; Take the wine cup -of this fury at my hand, and cause all the nations, to whom I send -thee, to drink it. - -25:16 And they shall drink, and be moved, and be mad, because of the -sword that I will send among them. - -25:17 Then took I the cup at the LORD's hand, and made all the nations -to drink, unto whom the LORD had sent me: 25:18 To wit, Jerusalem, and -the cities of Judah, and the kings thereof, and the princes thereof, -to make them a desolation, an astonishment, an hissing, and a curse; -as it is this day; 25:19 Pharaoh king of Egypt, and his servants, and -his princes, and all his people; 25:20 And all the mingled people, and -all the kings of the land of Uz, and all the kings of the land of the -Philistines, and Ashkelon, and Azzah, and Ekron, and the remnant of -Ashdod, 25:21 Edom, and Moab, and the children of Ammon, 25:22 And all -the kings of Tyrus, and all the kings of Zidon, and the kings of the -isles which are beyond the sea, 25:23 Dedan, and Tema, and Buz, and -all that are in the utmost corners, 25:24 And all the kings of Arabia, -and all the kings of the mingled people that dwell in the desert, -25:25 And all the kings of Zimri, and all the kings of Elam, and all -the kings of the Medes, 25:26 And all the kings of the north, far and -near, one with another, and all the kingdoms of the world, which are -upon the face of the earth: and the king of Sheshach shall drink after -them. - -25:27 Therefore thou shalt say unto them, Thus saith the LORD of -hosts, the God of Israel; Drink ye, and be drunken, and spue, and -fall, and rise no more, because of the sword which I will send among -you. - -25:28 And it shall be, if they refuse to take the cup at thine hand to -drink, then shalt thou say unto them, Thus saith the LORD of hosts; Ye -shall certainly drink. - -25:29 For, lo, I begin to bring evil on the city which is called by my -name, and should ye be utterly unpunished? Ye shall not be unpunished: -for I will call for a sword upon all the inhabitants of the earth, -saith the LORD of hosts. - -25:30 Therefore prophesy thou against them all these words, and say -unto them, The LORD shall roar from on high, and utter his voice from -his holy habitation; he shall mightily roar upon his habitation; he -shall give a shout, as they that tread the grapes, against all the -inhabitants of the earth. - -25:31 A noise shall come even to the ends of the earth; for the LORD -hath a controversy with the nations, he will plead with all flesh; he -will give them that are wicked to the sword, saith the LORD. - -25:32 Thus saith the LORD of hosts, Behold, evil shall go forth from -nation to nation, and a great whirlwind shall be raised up from the -coasts of the earth. - -25:33 And the slain of the LORD shall be at that day from one end of -the earth even unto the other end of the earth: they shall not be -lamented, neither gathered, nor buried; they shall be dung upon the -ground. - -25:34 Howl, ye shepherds, and cry; and wallow yourselves in the ashes, -ye principal of the flock: for the days of your slaughter and of your -dispersions are accomplished; and ye shall fall like a pleasant -vessel. - -25:35 And the shepherds shall have no way to flee, nor the principal -of the flock to escape. - -25:36 A voice of the cry of the shepherds, and an howling of the -principal of the flock, shall be heard: for the LORD hath spoiled -their pasture. - -25:37 And the peaceable habitations are cut down because of the fierce -anger of the LORD. - -25:38 He hath forsaken his covert, as the lion: for their land is -desolate because of the fierceness of the oppressor, and because of -his fierce anger. - -26:1 In the beginning of the reign of Jehoiakim the son of Josiah king -of Judah came this word from the LORD, saying, 26:2 Thus saith the -LORD; Stand in the court of the LORD's house, and speak unto all the -cities of Judah, which come to worship in the LORD's house, all the -words that I command thee to speak unto them; diminish not a word: -26:3 If so be they will hearken, and turn every man from his evil way, -that I may repent me of the evil, which I purpose to do unto them -because of the evil of their doings. - -26:4 And thou shalt say unto them, Thus saith the LORD; If ye will not -hearken to me, to walk in my law, which I have set before you, 26:5 To -hearken to the words of my servants the prophets, whom I sent unto -you, both rising up early, and sending them, but ye have not -hearkened; 26:6 Then will I make this house like Shiloh, and will make -this city a curse to all the nations of the earth. - -26:7 So the priests and the prophets and all the people heard Jeremiah -speaking these words in the house of the LORD. - -26:8 Now it came to pass, when Jeremiah had made an end of speaking -all that the LORD had commanded him to speak unto all the people, that -the priests and the prophets and all the people took him, saying, Thou -shalt surely die. - -26:9 Why hast thou prophesied in the name of the LORD, saying, This -house shall be like Shiloh, and this city shall be desolate without an -inhabitant? And all the people were gathered against Jeremiah in the -house of the LORD. - -26:10 When the princes of Judah heard these things, then they came up -from the king's house unto the house of the LORD, and sat down in the -entry of the new gate of the LORD's house. - -26:11 Then spake the priests and the prophets unto the princes and to -all the people, saying, This man is worthy to die; for he hath -prophesied against this city, as ye have heard with your ears. - -26:12 Then spake Jeremiah unto all the princes and to all the people, -saying, The LORD sent me to prophesy against this house and against -this city all the words that ye have heard. - -26:13 Therefore now amend your ways and your doings, and obey the -voice of the LORD your God; and the LORD will repent him of the evil -that he hath pronounced against you. - -26:14 As for me, behold, I am in your hand: do with me as seemeth good -and meet unto you. - -26:15 But know ye for certain, that if ye put me to death, ye shall -surely bring innocent blood upon yourselves, and upon this city, and -upon the inhabitants thereof: for of a truth the LORD hath sent me -unto you to speak all these words in your ears. - -26:16 Then said the princes and all the people unto the priests and to -the prophets; This man is not worthy to die: for he hath spoken to us -in the name of the LORD our God. - -26:17 Then rose up certain of the elders of the land, and spake to all -the assembly of the people, saying, 26:18 Micah the Morasthite -prophesied in the days of Hezekiah king of Judah, and spake to all the -people of Judah, saying, Thus saith the LORD of hosts; Zion shall be -plowed like a field, and Jerusalem shall become heaps, and the -mountain of the house as the high places of a forest. - -26:19 Did Hezekiah king of Judah and all Judah put him at all to -death? did he not fear the LORD, and besought the LORD, and the LORD -repented him of the evil which he had pronounced against them? Thus -might we procure great evil against our souls. - -26:20 And there was also a man that prophesied in the name of the -LORD, Urijah the son of Shemaiah of Kirjathjearim, who prophesied -against this city and against this land according to all the words of -Jeremiah. - -26:21 And when Jehoiakim the king, with all his mighty men, and all -the princes, heard his words, the king sought to put him to death: but -when Urijah heard it, he was afraid, and fled, and went into Egypt; -26:22 And Jehoiakim the king sent men into Egypt, namely, Elnathan the -son of Achbor, and certain men with him into Egypt. - -26:23 And they fetched forth Urijah out of Egypt, and brought him unto -Jehoiakim the king; who slew him with the sword, and cast his dead -body into the graves of the common people. - -26:24 Nevertheless the hand of Ahikam the son of Shaphan was with -Jeremiah, that they should not give him into the hand of the people to -put him to death. - -27:1 In the beginning of the reign of Jehoiakim the son of Josiah king -of Judah came this word unto Jeremiah from the LORD, saying, 27:2 Thus -saith the LORD to me; Make thee bonds and yokes, and put them upon thy -neck, 27:3 And send them to the king of Edom, and to the king of Moab, -and to the king of the Ammonites, and to the king of Tyrus, and to the -king of Zidon, by the hand of the messengers which come to Jerusalem -unto Zedekiah king of Judah; 27:4 And command them to say unto their -masters, Thus saith the LORD of hosts, the God of Israel; Thus shall -ye say unto your masters; 27:5 I have made the earth, the man and the -beast that are upon the ground, by my great power and by my -outstretched arm, and have given it unto whom it seemed meet unto me. - -27:6 And now have I given all these lands into the hand of -Nebuchadnezzar the king of Babylon, my servant; and the beasts of the -field have I given him also to serve him. - -27:7 And all nations shall serve him, and his son, and his son's son, -until the very time of his land come: and then many nations and great -kings shall serve themselves of him. - -27:8 And it shall come to pass, that the nation and kingdom which will -not serve the same Nebuchadnezzar the king of Babylon, and that will -not put their neck under the yoke of the king of Babylon, that nation -will I punish, saith the LORD, with the sword, and with the famine, -and with the pestilence, until I have consumed them by his hand. - -27:9 Therefore hearken not ye to your prophets, nor to your diviners, -nor to your dreamers, nor to your enchanters, nor to your sorcerers, -which speak unto you, saying, Ye shall not serve the king of Babylon: -27:10 For they prophesy a lie unto you, to remove you far from your -land; and that I should drive you out, and ye should perish. - -27:11 But the nations that bring their neck under the yoke of the king -of Babylon, and serve him, those will I let remain still in their own -land, saith the LORD; and they shall till it, and dwell therein. - -27:12 I spake also to Zedekiah king of Judah according to all these -words, saying, Bring your necks under the yoke of the king of Babylon, -and serve him and his people, and live. - -27:13 Why will ye die, thou and thy people, by the sword, by the -famine, and by the pestilence, as the LORD hath spoken against the -nation that will not serve the king of Babylon? 27:14 Therefore -hearken not unto the words of the prophets that speak unto you, -saying, Ye shall not serve the king of Babylon: for they prophesy a -lie unto you. - -27:15 For I have not sent them, saith the LORD, yet they prophesy a -lie in my name; that I might drive you out, and that ye might perish, -ye, and the prophets that prophesy unto you. - -27:16 Also I spake to the priests and to all this people, saying, Thus -saith the LORD; Hearken not to the words of your prophets that -prophesy unto you, saying, Behold, the vessels of the LORD's house -shall now shortly be brought again from Babylon: for they prophesy a -lie unto you. - -27:17 Hearken not unto them; serve the king of Babylon, and live: -wherefore should this city be laid waste? 27:18 But if they be -prophets, and if the word of the LORD be with them, let them now make -intercession to the LORD of hosts, that the vessels which are left in -the house of the LORD, and in the house of the king of Judah, and at -Jerusalem, go not to Babylon. - -27:19 For thus saith the LORD of hosts concerning the pillars, and -concerning the sea, and concerning the bases, and concerning the -residue of the vessels that remain in this city. - -27:20 Which Nebuchadnezzar king of Babylon took not, when he carried -away captive Jeconiah the son of Jehoiakim king of Judah from -Jerusalem to Babylon, and all the nobles of Judah and Jerusalem; 27:21 -Yea, thus saith the LORD of hosts, the God of Israel, concerning the -vessels that remain in the house of the LORD, and in the house of the -king of Judah and of Jerusalem; 27:22 They shall be carried to -Babylon, and there shall they be until the day that I visit them, -saith the LORD; then will I bring them up, and restore them to this -place. - -28:1 And it came to pass the same year, in the beginning of the reign -of Zedekiah king of Judah, in the fourth year, and in the fifth month, -that Hananiah the son of Azur the prophet, which was of Gibeon, spake -unto me in the house of the LORD, in the presence of the priests and -of all the people, saying, 28:2 Thus speaketh the LORD of hosts, the -God of Israel, saying, I have broken the yoke of the king of Babylon. - -28:3 Within two full years will I bring again into this place all the -vessels of the LORD's house, that Nebuchadnezzar king of Babylon took -away from this place, and carried them to Babylon: 28:4 And I will -bring again to this place Jeconiah the son of Jehoiakim king of Judah, -with all the captives of Judah, that went into Babylon, saith the -LORD: for I will break the yoke of the king of Babylon. - -28:5 Then the prophet Jeremiah said unto the prophet Hananiah in the -presence of the priests, and in the presence of all the people that -stood in the house of the LORD, 28:6 Even the prophet Jeremiah said, -Amen: the LORD do so: the LORD perform thy words which thou hast -prophesied, to bring again the vessels of the LORD's house, and all -that is carried away captive, from Babylon into this place. - -28:7 Nevertheless hear thou now this word that I speak in thine ears, -and in the ears of all the people; 28:8 The prophets that have been -before me and before thee of old prophesied both against many -countries, and against great kingdoms, of war, and of evil, and of -pestilence. - -28:9 The prophet which prophesieth of peace, when the word of the -prophet shall come to pass, then shall the prophet be known, that the -LORD hath truly sent him. - -28:10 Then Hananiah the prophet took the yoke from off the prophet -Jeremiah's neck, and brake it. - -28:11 And Hananiah spake in the presence of all the people, saying, -Thus saith the LORD; Even so will I break the yoke of Nebuchadnezzar -king of Babylon from the neck of all nations within the space of two -full years. And the prophet Jeremiah went his way. - -28:12 Then the word of the LORD came unto Jeremiah the prophet, after -that Hananiah the prophet had broken the yoke from off the neck of the -prophet Jeremiah, saying, 28:13 Go and tell Hananiah, saying, Thus -saith the LORD; Thou hast broken the yokes of wood; but thou shalt -make for them yokes of iron. - -28:14 For thus saith the LORD of hosts, the God of Israel; I have put -a yoke of iron upon the neck of all these nations, that they may serve -Nebuchadnezzar king of Babylon; and they shall serve him: and I have -given him the beasts of the field also. - -28:15 Then said the prophet Jeremiah unto Hananiah the prophet, Hear -now, Hananiah; The LORD hath not sent thee; but thou makest this -people to trust in a lie. - -28:16 Therefore thus saith the LORD; Behold, I will cast thee from off -the face of the earth: this year thou shalt die, because thou hast -taught rebellion against the LORD. - -28:17 So Hananiah the prophet died the same year in the seventh month. - -29:1 Now these are the words of the letter that Jeremiah the prophet -sent from Jerusalem unto the residue of the elders which were carried -away captives, and to the priests, and to the prophets, and to all the -people whom Nebuchadnezzar had carried away captive from Jerusalem to -Babylon; 29:2 (After that Jeconiah the king, and the queen, and the -eunuchs, the princes of Judah and Jerusalem, and the carpenters, and -the smiths, were departed from Jerusalem;) 29:3 By the hand of Elasah -the son of Shaphan, and Gemariah the son of Hilkiah, (whom Zedekiah -king of Judah sent unto Babylon to Nebuchadnezzar king of Babylon) -saying, 29:4 Thus saith the LORD of hosts, the God of Israel, unto all -that are carried away captives, whom I have caused to be carried away -from Jerusalem unto Babylon; 29:5 Build ye houses, and dwell in them; -and plant gardens, and eat the fruit of them; 29:6 Take ye wives, and -beget sons and daughters; and take wives for your sons, and give your -daughters to husbands, that they may bear sons and daughters; that ye -may be increased there, and not diminished. - -29:7 And seek the peace of the city whither I have caused you to be -carried away captives, and pray unto the LORD for it: for in the peace -thereof shall ye have peace. - -29:8 For thus saith the LORD of hosts, the God of Israel; Let not your -prophets and your diviners, that be in the midst of you, deceive you, -neither hearken to your dreams which ye cause to be dreamed. - -29:9 For they prophesy falsely unto you in my name: I have not sent -them, saith the LORD. - -29:10 For thus saith the LORD, That after seventy years be -accomplished at Babylon I will visit you, and perform my good word -toward you, in causing you to return to this place. - -29:11 For I know the thoughts that I think toward you, saith the LORD, -thoughts of peace, and not of evil, to give you an expected end. - -29:12 Then shall ye call upon me, and ye shall go and pray unto me, -and I will hearken unto you. - -29:13 And ye shall seek me, and find me, when ye shall search for me -with all your heart. - -29:14 And I will be found of you, saith the LORD: and I will turn away -your captivity, and I will gather you from all the nations, and from -all the places whither I have driven you, saith the LORD; and I will -bring you again into the place whence I caused you to be carried away -captive. - -29:15 Because ye have said, The LORD hath raised us up prophets in -Babylon; 29:16 Know that thus saith the LORD of the king that sitteth -upon the throne of David, and of all the people that dwelleth in this -city, and of your brethren that are not gone forth with you into -captivity; 29:17 Thus saith the LORD of hosts; Behold, I will send -upon them the sword, the famine, and the pestilence, and will make -them like vile figs, that cannot be eaten, they are so evil. - -29:18 And I will persecute them with the sword, with the famine, and -with the pestilence, and will deliver them to be removed to all the -kingdoms of the earth, to be a curse, and an astonishment, and an -hissing, and a reproach, among all the nations whither I have driven -them: 29:19 Because they have not hearkened to my words, saith the -LORD, which I sent unto them by my servants the prophets, rising up -early and sending them; but ye would not hear, saith the LORD. - -29:20 Hear ye therefore the word of the LORD, all ye of the captivity, -whom I have sent from Jerusalem to Babylon: 29:21 Thus saith the LORD -of hosts, the God of Israel, of Ahab the son of Kolaiah, and of -Zedekiah the son of Maaseiah, which prophesy a lie unto you in my -name; Behold, I will deliver them into the hand of Nebuchadrezzar king -of Babylon; and he shall slay them before your eyes; 29:22 And of them -shall be taken up a curse by all the captivity of Judah which are in -Babylon, saying, The LORD make thee like Zedekiah and like Ahab, whom -the king of Babylon roasted in the fire; 29:23 Because they have -committed villany in Israel, and have committed adultery with their -neighbours' wives, and have spoken lying words in my name, which I -have not commanded them; even I know, and am a witness, saith the -LORD. - -29:24 Thus shalt thou also speak to Shemaiah the Nehelamite, saying, -29:25 Thus speaketh the LORD of hosts, the God of Israel, saying, -Because thou hast sent letters in thy name unto all the people that -are at Jerusalem, and to Zephaniah the son of Maaseiah the priest, and -to all the priests, saying, 29:26 The LORD hath made thee priest in -the stead of Jehoiada the priest, that ye should be officers in the -house of the LORD, for every man that is mad, and maketh himself a -prophet, that thou shouldest put him in prison, and in the stocks. - -29:27 Now therefore why hast thou not reproved Jeremiah of Anathoth, -which maketh himself a prophet to you? 29:28 For therefore he sent -unto us in Babylon, saying, This captivity is long: build ye houses, -and dwell in them; and plant gardens, and eat the fruit of them. - -29:29 And Zephaniah the priest read this letter in the ears of -Jeremiah the prophet. - -29:30 Then came the word of the LORD unto Jeremiah, saying, 29:31 Send -to all them of the captivity, saying, Thus saith the LORD concerning -Shemaiah the Nehelamite; Because that Shemaiah hath prophesied unto -you, and I sent him not, and he caused you to trust in a lie: 29:32 -Therefore thus saith the LORD; Behold, I will punish Shemaiah the -Nehelamite, and his seed: he shall not have a man to dwell among this -people; neither shall he behold the good that I will do for my people, -saith the LORD; because he hath taught rebellion against the LORD. - -30:1 The word that came to Jeremiah from the LORD, saying, 30:2 Thus -speaketh the LORD God of Israel, saying, Write thee all the words that -I have spoken unto thee in a book. - -30:3 For, lo, the days come, saith the LORD, that I will bring again -the captivity of my people Israel and Judah, saith the LORD: and I -will cause them to return to the land that I gave to their fathers, -and they shall possess it. - -30:4 And these are the words that the LORD spake concerning Israel and -concerning Judah. - -30:5 For thus saith the LORD; We have heard a voice of trembling, of -fear, and not of peace. - -30:6 Ask ye now, and see whether a man doth travail with child? -wherefore do I see every man with his hands on his loins, as a woman -in travail, and all faces are turned into paleness? 30:7 Alas! for -that day is great, so that none is like it: it is even the time of -Jacob's trouble, but he shall be saved out of it. - -30:8 For it shall come to pass in that day, saith the LORD of hosts, -that I will break his yoke from off thy neck, and will burst thy -bonds, and strangers shall no more serve themselves of him: 30:9 But -they shall serve the LORD their God, and David their king, whom I will -raise up unto them. - -30:10 Therefore fear thou not, O my servant Jacob, saith the LORD; -neither be dismayed, O Israel: for, lo, I will save thee from afar, -and thy seed from the land of their captivity; and Jacob shall return, -and shall be in rest, and be quiet, and none shall make him afraid. - -30:11 For I am with thee, saith the LORD, to save thee: though I make -a full end of all nations whither I have scattered thee, yet I will -not make a full end of thee: but I will correct thee in measure, and -will not leave thee altogether unpunished. - -30:12 For thus saith the LORD, Thy bruise is incurable, and thy wound -is grievous. - -30:13 There is none to plead thy cause, that thou mayest be bound up: -thou hast no healing medicines. - -30:14 All thy lovers have forgotten thee; they seek thee not; for I -have wounded thee with the wound of an enemy, with the chastisement of -a cruel one, for the multitude of thine iniquity; because thy sins -were increased. - -30:15 Why criest thou for thine affliction? thy sorrow is incurable -for the multitude of thine iniquity: because thy sins were increased, -I have done these things unto thee. - -30:16 Therefore all they that devour thee shall be devoured; and all -thine adversaries, every one of them, shall go into captivity; and -they that spoil thee shall be a spoil, and all that prey upon thee -will I give for a prey. - -30:17 For I will restore health unto thee, and I will heal thee of thy -wounds, saith the LORD; because they called thee an Outcast, saying, -This is Zion, whom no man seeketh after. - -30:18 Thus saith the LORD; Behold, I will bring again the captivity of -Jacob's tents, and have mercy on his dwellingplaces; and the city -shall be builded upon her own heap, and the palace shall remain after -the manner thereof. - -30:19 And out of them shall proceed thanksgiving and the voice of them -that make merry: and I will multiply them, and they shall not be few; -I will also glorify them, and they shall not be small. - -30:20 Their children also shall be as aforetime, and their -congregation shall be established before me, and I will punish all -that oppress them. - -30:21 And their nobles shall be of themselves, and their governor -shall proceed from the midst of them; and I will cause him to draw -near, and he shall approach unto me: for who is this that engaged his -heart to approach unto me? saith the LORD. - -30:22 And ye shall be my people, and I will be your God. - -30:23 Behold, the whirlwind of the LORD goeth forth with fury, a -continuing whirlwind: it shall fall with pain upon the head of the -wicked. - -30:24 The fierce anger of the LORD shall not return, until he hath -done it, and until he have performed the intents of his heart: in the -latter days ye shall consider it. - -31:1 At the same time, saith the LORD, will I be the God of all the -families of Israel, and they shall be my people. - -31:2 Thus saith the LORD, The people which were left of the sword -found grace in the wilderness; even Israel, when I went to cause him -to rest. - -31:3 The LORD hath appeared of old unto me, saying, Yea, I have loved -thee with an everlasting love: therefore with lovingkindness have I -drawn thee. - -31:4 Again I will build thee, and thou shalt be built, O virgin of -Israel: thou shalt again be adorned with thy tabrets, and shalt go -forth in the dances of them that make merry. - -31:5 Thou shalt yet plant vines upon the mountains of Samaria: the -planters shall plant, and shall eat them as common things. - -31:6 For there shall be a day, that the watchmen upon the mount -Ephraim shall cry, Arise ye, and let us go up to Zion unto the LORD -our God. - -31:7 For thus saith the LORD; Sing with gladness for Jacob, and shout -among the chief of the nations: publish ye, praise ye, and say, O -LORD, save thy people, the remnant of Israel. - -31:8 Behold, I will bring them from the north country, and gather them -from the coasts of the earth, and with them the blind and the lame, -the woman with child and her that travaileth with child together: a -great company shall return thither. - -31:9 They shall come with weeping, and with supplications will I lead -them: I will cause them to walk by the rivers of waters in a straight -way, wherein they shall not stumble: for I am a father to Israel, and -Ephraim is my firstborn. - -31:10 Hear the word of the LORD, O ye nations, and declare it in the -isles afar off, and say, He that scattered Israel will gather him, and -keep him, as a shepherd doth his flock. - -31:11 For the LORD hath redeemed Jacob, and ransomed him from the hand -of him that was stronger than he. - -31:12 Therefore they shall come and sing in the height of Zion, and -shall flow together to the goodness of the LORD, for wheat, and for -wine, and for oil, and for the young of the flock and of the herd: and -their soul shall be as a watered garden; and they shall not sorrow any -more at all. - -31:13 Then shall the virgin rejoice in the dance, both young men and -old together: for I will turn their mourning into joy, and will -comfort them, and make them rejoice from their sorrow. - -31:14 And I will satiate the soul of the priests with fatness, and my -people shall be satisfied with my goodness, saith the LORD. - -31:15 Thus saith the LORD; A voice was heard in Ramah, lamentation, -and bitter weeping; Rahel weeping for her children refused to be -comforted for her children, because they were not. - -31:16 Thus saith the LORD; Refrain thy voice from weeping, and thine -eyes from tears: for thy work shall be rewarded, saith the LORD; and -they shall come again from the land of the enemy. - -31:17 And there is hope in thine end, saith the LORD, that thy -children shall come again to their own border. - -31:18 I have surely heard Ephraim bemoaning himself thus; Thou hast -chastised me, and I was chastised, as a bullock unaccustomed to the -yoke: turn thou me, and I shall be turned; for thou art the LORD my -God. - -31:19 Surely after that I was turned, I repented; and after that I was -instructed, I smote upon my thigh: I was ashamed, yea, even -confounded, because I did bear the reproach of my youth. - -31:20 Is Ephraim my dear son? is he a pleasant child? for since I -spake against him, I do earnestly remember him still: therefore my -bowels are troubled for him; I will surely have mercy upon him, saith -the LORD. - -31:21 Set thee up waymarks, make thee high heaps: set thine heart -toward the highway, even the way which thou wentest: turn again, O -virgin of Israel, turn again to these thy cities. - -31:22 How long wilt thou go about, O thou backsliding daughter? for -the LORD hath created a new thing in the earth, A woman shall compass -a man. - -31:23 Thus saith the LORD of hosts, the God of Israel; As yet they -shall use this speech in the land of Judah and in the cities thereof, -when I shall bring again their captivity; The LORD bless thee, O -habitation of justice, and mountain of holiness. - -31:24 And there shall dwell in Judah itself, and in all the cities -thereof together, husbandmen, and they that go forth with flocks. - -31:25 For I have satiated the weary soul, and I have replenished every -sorrowful soul. - -31:26 Upon this I awaked, and beheld; and my sleep was sweet unto me. - -31:27 Behold, the days come, saith the LORD, that I will sow the house -of Israel and the house of Judah with the seed of man, and with the -seed of beast. - -31:28 And it shall come to pass, that like as I have watched over -them, to pluck up, and to break down, and to throw down, and to -destroy, and to afflict; so will I watch over them, to build, and to -plant, saith the LORD. - -31:29 In those days they shall say no more, The fathers have eaten a -sour grape, and the children's teeth are set on edge. - -31:30 But every one shall die for his own iniquity: every man that -eateth the sour grape, his teeth shall be set on edge. - -31:31 Behold, the days come, saith the LORD, that I will make a new -covenant with the house of Israel, and with the house of Judah: 31:32 -Not according to the covenant that I made with their fathers in the -day that I took them by the hand to bring them out of the land of -Egypt; which my covenant they brake, although I was an husband unto -them, saith the LORD: 31:33 But this shall be the covenant that I will -make with the house of Israel; After those days, saith the LORD, I -will put my law in their inward parts, and write it in their hearts; -and will be their God, and they shall be my people. - -31:34 And they shall teach no more every man his neighbour, and every -man his brother, saying, Know the LORD: for they shall all know me, -from the least of them unto the greatest of them, saith the LORD: for -I will forgive their iniquity, and I will remember their sin no more. - -31:35 Thus saith the LORD, which giveth the sun for a light by day, -and the ordinances of the moon and of the stars for a light by night, -which divideth the sea when the waves thereof roar; The LORD of hosts -is his name: 31:36 If those ordinances depart from before me, saith -the LORD, then the seed of Israel also shall cease from being a nation -before me for ever. - -31:37 Thus saith the LORD; If heaven above can be measured, and the -foundations of the earth searched out beneath, I will also cast off -all the seed of Israel for all that they have done, saith the LORD. - -31:38 Behold, the days come, saith the LORD, that the city shall be -built to the LORD from the tower of Hananeel unto the gate of the -corner. - -31:39 And the measuring line shall yet go forth over against it upon -the hill Gareb, and shall compass about to Goath. - -31:40 And the whole valley of the dead bodies, and of the ashes, and -all the fields unto the brook of Kidron, unto the corner of the horse -gate toward the east, shall be holy unto the LORD; it shall not be -plucked up, nor thrown down any more for ever. - -32:1 The word that came to Jeremiah from the LORD in the tenth year of -Zedekiah king of Judah, which was the eighteenth year of -Nebuchadrezzar. - -32:2 For then the king of Babylon's army besieged Jerusalem: and -Jeremiah the prophet was shut up in the court of the prison, which was -in the king of Judah's house. - -32:3 For Zedekiah king of Judah had shut him up, saying, Wherefore -dost thou prophesy, and say, Thus saith the LORD, Behold, I will give -this city into the hand of the king of Babylon, and he shall take it; -32:4 And Zedekiah king of Judah shall not escape out of the hand of -the Chaldeans, but shall surely be delivered into the hand of the king -of Babylon, and shall speak with him mouth to mouth, and his eyes -shall behold his eyes; 32:5 And he shall lead Zedekiah to Babylon, and -there shall he be until I visit him, saith the LORD: though ye fight -with the Chaldeans, ye shall not prosper. - -32:6 And Jeremiah said, The word of the LORD came unto me, saying, -32:7 Behold, Hanameel the son of Shallum thine uncle shall come unto -thee saying, Buy thee my field that is in Anathoth: for the right of -redemption is thine to buy it. - -32:8 So Hanameel mine uncle's son came to me in the court of the -prison according to the word of the LORD, and said unto me, Buy my -field, I pray thee, that is in Anathoth, which is in the country of -Benjamin: for the right of inheritance is thine, and the redemption is -thine; buy it for thyself. - -Then I knew that this was the word of the LORD. - -32:9 And I bought the field of Hanameel my uncle's son, that was in -Anathoth, and weighed him the money, even seventeen shekels of silver. - -32:10 And I subscribed the evidence, and sealed it, and took -witnesses, and weighed him the money in the balances. - -32:11 So I took the evidence of the purchase, both that which was -sealed according to the law and custom, and that which was open: 32:12 -And I gave the evidence of the purchase unto Baruch the son of Neriah, -the son of Maaseiah, in the sight of Hanameel mine uncle's son, and in -the presence of the witnesses that subscribed the book of the -purchase, before all the Jews that sat in the court of the prison. - -32:13 And I charged Baruch before them, saying, 32:14 Thus saith the -LORD of hosts, the God of Israel; Take these evidences, this evidence -of the purchase, both which is sealed, and this evidence which is -open; and put them in an earthen vessel, that they may continue many -days. - -32:15 For thus saith the LORD of hosts, the God of Israel; Houses and -fields and vineyards shall be possessed again in this land. - -32:16 Now when I had delivered the evidence of the purchase unto -Baruch the son of Neriah, I prayed unto the LORD, saying, 32:17 Ah -Lord GOD! behold, thou hast made the heaven and the earth by thy great -power and stretched out arm, and there is nothing too hard for thee: -32:18 Thou shewest lovingkindness unto thousands, and recompensest the -iniquity of the fathers into the bosom of their children after them: -the Great, the Mighty God, the LORD of hosts, is his name, 32:19 Great -in counsel, and mighty in work: for thine eyes are open upon all the -ways of the sons of men: to give every one according to his ways, and -according to the fruit of his doings: 32:20 Which hast set signs and -wonders in the land of Egypt, even unto this day, and in Israel, and -among other men; and hast made thee a name, as at this day; 32:21 And -hast brought forth thy people Israel out of the land of Egypt with -signs, and with wonders, and with a strong hand, and with a stretched -out arm, and with great terror; 32:22 And hast given them this land, -which thou didst swear to their fathers to give them, a land flowing -with milk and honey; 32:23 And they came in, and possessed it; but -they obeyed not thy voice, neither walked in thy law; they have done -nothing of all that thou commandedst them to do: therefore thou hast -caused all this evil to come upon them: 32:24 Behold the mounts, they -are come unto the city to take it; and the city is given into the hand -of the Chaldeans, that fight against it, because of the sword, and of -the famine, and of the pestilence: and what thou hast spoken is come -to pass; and, behold, thou seest it. - -32:25 And thou hast said unto me, O Lord GOD, Buy thee the field for -money, and take witnesses; for the city is given into the hand of the -Chaldeans. - -32:26 Then came the word of the LORD unto Jeremiah, saying, 32:27 -Behold, I am the LORD, the God of all flesh: is there any thing too -hard for me? 32:28 Therefore thus saith the LORD; Behold, I will give -this city into the hand of the Chaldeans, and into the hand of -Nebuchadrezzar king of Babylon, and he shall take it: 32:29 And the -Chaldeans, that fight against this city, shall come and set fire on -this city, and burn it with the houses, upon whose roofs they have -offered incense unto Baal, and poured out drink offerings unto other -gods, to provoke me to anger. - -32:30 For the children of Israel and the children of Judah have only -done evil before me from their youth: for the children of Israel have -only provoked me to anger with the work of their hands, saith the -LORD. - -32:31 For this city hath been to me as a provocation of mine anger and -of my fury from the day that they built it even unto this day; that I -should remove it from before my face, 32:32 Because of all the evil of -the children of Israel and of the children of Judah, which they have -done to provoke me to anger, they, their kings, their princes, their -priests, and their prophets, and the men of Judah, and the inhabitants -of Jerusalem. - -32:33 And they have turned unto me the back, and not the face: though -I taught them, rising up early and teaching them, yet they have not -hearkened to receive instruction. - -32:34 But they set their abominations in the house, which is called by -my name, to defile it. - -32:35 And they built the high places of Baal, which are in the valley -of the son of Hinnom, to cause their sons and their daughters to pass -through the fire unto Molech; which I commanded them not, neither came -it into my mind, that they should do this abomination, to cause Judah -to sin. - -32:36 And now therefore thus saith the LORD, the God of Israel, -concerning this city, whereof ye say, It shall be delivered into the -hand of the king of Babylon by the sword, and by the famine, and by -the pestilence; 32:37 Behold, I will gather them out of all countries, -whither I have driven them in mine anger, and in my fury, and in great -wrath; and I will bring them again unto this place, and I will cause -them to dwell safely: 32:38 And they shall be my people, and I will be -their God: 32:39 And I will give them one heart, and one way, that -they may fear me for ever, for the good of them, and of their children -after them: 32:40 And I will make an everlasting covenant with them, -that I will not turn away from them, to do them good; but I will put -my fear in their hearts, that they shall not depart from me. - -32:41 Yea, I will rejoice over them to do them good, and I will plant -them in this land assuredly with my whole heart and with my whole -soul. - -32:42 For thus saith the LORD; Like as I have brought all this great -evil upon this people, so will I bring upon them all the good that I -have promised them. - -32:43 And fields shall be bought in this land, whereof ye say, It is -desolate without man or beast; it is given into the hand of the -Chaldeans. - -32:44 Men shall buy fields for money, and subscribe evidences, and -seal them, and take witnesses in the land of Benjamin, and in the -places about Jerusalem, and in the cities of Judah, and in the cities -of the mountains, and in the cities of the valley, and in the cities -of the south: for I will cause their captivity to return, saith the -LORD. - -33:1 Moreover the word of the LORD came unto Jeremiah the second time, -while he was yet shut up in the court of the prison, saying, 33:2 Thus -saith the LORD the maker thereof, the LORD that formed it, to -establish it; the LORD is his name; 33:3 Call unto me, and I will -answer thee, and shew thee great and mighty things, which thou knowest -not. - -33:4 For thus saith the LORD, the God of Israel, concerning the houses -of this city, and concerning the houses of the kings of Judah, which -are thrown down by the mounts, and by the sword; 33:5 They come to -fight with the Chaldeans, but it is to fill them with the dead bodies -of men, whom I have slain in mine anger and in my fury, and for all -whose wickedness I have hid my face from this city. - -33:6 Behold, I will bring it health and cure, and I will cure them, -and will reveal unto them the abundance of peace and truth. - -33:7 And I will cause the captivity of Judah and the captivity of -Israel to return, and will build them, as at the first. - -33:8 And I will cleanse them from all their iniquity, whereby they -have sinned against me; and I will pardon all their iniquities, -whereby they have sinned, and whereby they have transgressed against -me. - -33:9 And it shall be to me a name of joy, a praise and an honour -before all the nations of the earth, which shall hear all the good -that I do unto them: and they shall fear and tremble for all the -goodness and for all the prosperity that I procure unto it. - -33:10 Thus saith the LORD; Again there shall be heard in this place, -which ye say shall be desolate without man and without beast, even in -the cities of Judah, and in the streets of Jerusalem, that are -desolate, without man, and without inhabitant, and without beast, -33:11 The voice of joy, and the voice of gladness, the voice of the -bridegroom, and the voice of the bride, the voice of them that shall -say, Praise the LORD of hosts: for the LORD is good; for his mercy -endureth for ever: and of them that shall bring the sacrifice of -praise into the house of the LORD. For I will cause to return the -captivity of the land, as at the first, saith the LORD. - -33:12 Thus saith the LORD of hosts; Again in this place, which is -desolate without man and without beast, and in all the cities thereof, -shall be an habitation of shepherds causing their flocks to lie down. - -33:13 In the cities of the mountains, in the cities of the vale, and -in the cities of the south, and in the land of Benjamin, and in the -places about Jerusalem, and in the cities of Judah, shall the flocks -pass again under the hands of him that telleth them, saith the LORD. - -33:14 Behold, the days come, saith the LORD, that I will perform that -good thing which I have promised unto the house of Israel and to the -house of Judah. - -33:15 In those days, and at that time, will I cause the Branch of -righteousness to grow up unto David; and he shall execute judgment and -righteousness in the land. - -33:16 In those days shall Judah be saved, and Jerusalem shall dwell -safely: and this is the name wherewith she shall be called, The LORD -our righteousness. - -33:17 For thus saith the LORD; David shall never want a man to sit -upon the throne of the house of Israel; 33:18 Neither shall the -priests the Levites want a man before me to offer burnt offerings, and -to kindle meat offerings, and to do sacrifice continually. - -33:19 And the word of the LORD came unto Jeremiah, saying, 33:20 Thus -saith the LORD; If ye can break my covenant of the day, and my -covenant of the night, and that there should not be day and night in -their season; 33:21 Then may also my covenant be broken with David my -servant, that he should not have a son to reign upon his throne; and -with the Levites the priests, my ministers. - -33:22 As the host of heaven cannot be numbered, neither the sand of -the sea measured: so will I multiply the seed of David my servant, and -the Levites that minister unto me. - -33:23 Moreover the word of the LORD came to Jeremiah, saying, 33:24 -Considerest thou not what this people have spoken, saying, The two -families which the LORD hath chosen, he hath even cast them off? thus -they have despised my people, that they should be no more a nation -before them. - -33:25 Thus saith the LORD; If my covenant be not with day and night, -and if I have not appointed the ordinances of heaven and earth; 33:26 -Then will I cast away the seed of Jacob and David my servant, so that -I will not take any of his seed to be rulers over the seed of Abraham, -Isaac, and Jacob: for I will cause their captivity to return, and have -mercy on them. - -34:1 The word which came unto Jeremiah from the LORD, when -Nebuchadnezzar king of Babylon, and all his army, and all the kingdoms -of the earth of his dominion, and all the people, fought against -Jerusalem, and against all the cities thereof, saying, 34:2 Thus saith -the LORD, the God of Israel; Go and speak to Zedekiah king of Judah, -and tell him, Thus saith the LORD; Behold, I will give this city into -the hand of the king of Babylon, and he shall burn it with fire: 34:3 -And thou shalt not escape out of his hand, but shalt surely be taken, -and delivered into his hand; and thine eyes shall behold the eyes of -the king of Babylon, and he shall speak with thee mouth to mouth, and -thou shalt go to Babylon. - -34:4 Yet hear the word of the LORD, O Zedekiah king of Judah; Thus -saith the LORD of thee, Thou shalt not die by the sword: 34:5 But thou -shalt die in peace: and with the burnings of thy fathers, the former -kings which were before thee, so shall they burn odours for thee; and -they will lament thee, saying, Ah lord! for I have pronounced the -word, saith the LORD. - -34:6 Then Jeremiah the prophet spake all these words unto Zedekiah -king of Judah in Jerusalem, 34:7 When the king of Babylon's army -fought against Jerusalem, and against all the cities of Judah that -were left, against Lachish, and against Azekah: for these defenced -cities remained of the cities of Judah. - -34:8 This is the word that came unto Jeremiah from the LORD, after -that the king Zedekiah had made a covenant with all the people which -were at Jerusalem, to proclaim liberty unto them; 34:9 That every man -should let his manservant, and every man his maidservant, being an -Hebrew or an Hebrewess, go free; that none should serve himself of -them, to wit, of a Jew his brother. - -34:10 Now when all the princes, and all the people, which had entered -into the covenant, heard that every one should let his manservant, and -every one his maidservant, go free, that none should serve themselves -of them any more, then they obeyed, and let them go. - -34:11 But afterward they turned, and caused the servants and the -handmaids, whom they had let go free, to return, and brought them into -subjection for servants and for handmaids. - -34:12 Therefore the word of the LORD came to Jeremiah from the LORD, -saying, 34:13 Thus saith the LORD, the God of Israel; I made a -covenant with your fathers in the day that I brought them forth out of -the land of Egypt, out of the house of bondmen, saying, 34:14 At the -end of seven years let ye go every man his brother an Hebrew, which -hath been sold unto thee; and when he hath served thee six years, thou -shalt let him go free from thee: but your fathers hearkened not unto -me, neither inclined their ear. - -34:15 And ye were now turned, and had done right in my sight, in -proclaiming liberty every man to his neighbour; and ye had made a -covenant before me in the house which is called by my name: 34:16 But -ye turned and polluted my name, and caused every man his servant, and -every man his handmaid, whom ye had set at liberty at their pleasure, -to return, and brought them into subjection, to be unto you for -servants and for handmaids. - -34:17 Therefore thus saith the LORD; Ye have not hearkened unto me, in -proclaiming liberty, every one to his brother, and every man to his -neighbour: behold, I proclaim a liberty for you, saith the LORD, to -the sword, to the pestilence, and to the famine; and I will make you -to be removed into all the kingdoms of the earth. - -34:18 And I will give the men that have transgressed my covenant, -which have not performed the words of the covenant which they had made -before me, when they cut the calf in twain, and passed between the -parts thereof, 34:19 The princes of Judah, and the princes of -Jerusalem, the eunuchs, and the priests, and all the people of the -land, which passed between the parts of the calf; 34:20 I will even -give them into the hand of their enemies, and into the hand of them -that seek their life: and their dead bodies shall be for meat unto the -fowls of the heaven, and to the beasts of the earth. - -34:21 And Zedekiah king of Judah and his princes will I give into the -hand of their enemies, and into the hand of them that seek their life, -and into the hand of the king of Babylon's army, which are gone up -from you. - -34:22 Behold, I will command, saith the LORD, and cause them to return -to this city; and they shall fight against it, and take it, and burn -it with fire: and I will make the cities of Judah a desolation without -an inhabitant. - -35:1 The word which came unto Jeremiah from the LORD in the days of -Jehoiakim the son of Josiah king of Judah, saying, 35:2 Go unto the -house of the Rechabites, and speak unto them, and bring them into the -house of the LORD, into one of the chambers, and give them wine to -drink. - -35:3 Then I took Jaazaniah the son of Jeremiah, the son of Habaziniah, -and his brethren, and all his sons, and the whole house of the -Rechabites; 35:4 And I brought them into the house of the LORD, into -the chamber of the sons of Hanan, the son of Igdaliah, a man of God, -which was by the chamber of the princes, which was above the chamber -of Maaseiah the son of Shallum, the keeper of the door: 35:5 And I set -before the sons of the house of the Rechabites pots full of wine, and -cups, and I said unto them, Drink ye wine. - -35:6 But they said, We will drink no wine: for Jonadab the son of -Rechab our father commanded us, saying, Ye shall drink no wine, -neither ye, nor your sons for ever: 35:7 Neither shall ye build house, -nor sow seed, nor plant vineyard, nor have any: but all your days ye -shall dwell in tents; that ye may live many days in the land where ye -be strangers. - -35:8 Thus have we obeyed the voice of Jonadab the son of Rechab our -father in all that he hath charged us, to drink no wine all our days, -we, our wives, our sons, nor our daughters; 35:9 Nor to build houses -for us to dwell in: neither have we vineyard, nor field, nor seed: -35:10 But we have dwelt in tents, and have obeyed, and done according -to all that Jonadab our father commanded us. - -35:11 But it came to pass, when Nebuchadrezzar king of Babylon came up -into the land, that we said, Come, and let us go to Jerusalem for fear -of the army of the Chaldeans, and for fear of the army of the Syrians: -so we dwell at Jerusalem. - -35:12 Then came the word of the LORD unto Jeremiah, saying, 35:13 Thus -saith the LORD of hosts, the God of Israel; Go and tell the men of -Judah and the inhabitants of Jerusalem, Will ye not receive -instruction to hearken to my words? saith the LORD. - -35:14 The words of Jonadab the son of Rechab, that he commanded his -sons not to drink wine, are performed; for unto this day they drink -none, but obey their father's commandment: notwithstanding I have -spoken unto you, rising early and speaking; but ye hearkened not unto -me. - -35:15 I have sent also unto you all my servants the prophets, rising -up early and sending them, saying, Return ye now every man from his -evil way, and amend your doings, and go not after other gods to serve -them, and ye shall dwell in the land which I have given to you and to -your fathers: but ye have not inclined your ear, nor hearkened unto -me. - -35:16 Because the sons of Jonadab the son of Rechab have performed the -commandment of their father, which he commanded them; but this people -hath not hearkened unto me: 35:17 Therefore thus saith the LORD God of -hosts, the God of Israel; Behold, I will bring upon Judah and upon all -the inhabitants of Jerusalem all the evil that I have pronounced -against them: because I have spoken unto them, but they have not -heard; and I have called unto them, but they have not answered. - -35:18 And Jeremiah said unto the house of the Rechabites, Thus saith -the LORD of hosts, the God of Israel; Because ye have obeyed the -commandment of Jonadab your father, and kept all his precepts, and -done according unto all that he hath commanded you: 35:19 Therefore -thus saith the LORD of hosts, the God of Israel; Jonadab the son of -Rechab shall not want a man to stand before me for ever. - -36:1 And it came to pass in the fourth year of Jehoiakim the son of -Josiah king of Judah, that this word came unto Jeremiah from the LORD, -saying, 36:2 Take thee a roll of a book, and write therein all the -words that I have spoken unto thee against Israel, and against Judah, -and against all the nations, from the day I spake unto thee, from the -days of Josiah, even unto this day. - -36:3 It may be that the house of Judah will hear all the evil which I -purpose to do unto them; that they may return every man from his evil -way; that I may forgive their iniquity and their sin. - -36:4 Then Jeremiah called Baruch the son of Neriah: and Baruch wrote -from the mouth of Jeremiah all the words of the LORD, which he had -spoken unto him, upon a roll of a book. - -36:5 And Jeremiah commanded Baruch, saying, I am shut up; I cannot go -into the house of the LORD: 36:6 Therefore go thou, and read in the -roll, which thou hast written from my mouth, the words of the LORD in -the ears of the people in the LORD's house upon the fasting day: and -also thou shalt read them in the ears of all Judah that come out of -their cities. - -36:7 It may be they will present their supplication before the LORD, -and will return every one from his evil way: for great is the anger -and the fury that the LORD hath pronounced against this people. - -36:8 And Baruch the son of Neriah did according to all that Jeremiah -the prophet commanded him, reading in the book the words of the LORD -in the LORD's house. - -36:9 And it came to pass in the fifth year of Jehoiakim the son of -Josiah king of Judah, in the ninth month, that they proclaimed a fast -before the LORD to all the people in Jerusalem, and to all the people -that came from the cities of Judah unto Jerusalem. - -36:10 Then read Baruch in the book the words of Jeremiah in the house -of the LORD, in the chamber of Gemariah the son of Shaphan the scribe, -in the higher court, at the entry of the new gate of the LORD's house, -in the ears of all the people. - -36:11 When Michaiah the son of Gemariah, the son of Shaphan, had heard -out of the book all the words of the LORD, 36:12 Then he went down -into the king's house, into the scribe's chamber: and, lo, all the -princes sat there, even Elishama the scribe, and Delaiah the son of -Shemaiah, and Elnathan the son of Achbor, and Gemariah the son of -Shaphan, and Zedekiah the son of Hananiah, and all the princes. - -36:13 Then Michaiah declared unto them all the words that he had -heard, when Baruch read the book in the ears of the people. - -36:14 Therefore all the princes sent Jehudi the son of Nethaniah, the -son of Shelemiah, the son of Cushi, unto Baruch, saying, Take in thine -hand the roll wherein thou hast read in the ears of the people, and -come. So Baruch the son of Neriah took the roll in his hand, and came -unto them. - -36:15 And they said unto him, Sit down now, and read it in our ears. -So Baruch read it in their ears. - -36:16 Now it came to pass, when they had heard all the words, they -were afraid both one and other, and said unto Baruch, We will surely -tell the king of all these words. - -36:17 And they asked Baruch, saying, Tell us now, How didst thou write -all these words at his mouth? 36:18 Then Baruch answered them, He -pronounced all these words unto me with his mouth, and I wrote them -with ink in the book. - -36:19 Then said the princes unto Baruch, Go, hide thee, thou and -Jeremiah; and let no man know where ye be. - -36:20 And they went in to the king into the court, but they laid up -the roll in the chamber of Elishama the scribe, and told all the words -in the ears of the king. - -36:21 So the king sent Jehudi to fetch the roll: and he took it out of -Elishama the scribe's chamber. And Jehudi read it in the ears of the -king, and in the ears of all the princes which stood beside the king. - -36:22 Now the king sat in the winterhouse in the ninth month: and -there was a fire on the hearth burning before him. - -36:23 And it came to pass, that when Jehudi had read three or four -leaves, he cut it with the penknife, and cast it into the fire that -was on the hearth, until all the roll was consumed in the fire that -was on the hearth. - -36:24 Yet they were not afraid, nor rent their garments, neither the -king, nor any of his servants that heard all these words. - -36:25 Nevertheless Elnathan and Delaiah and Gemariah had made -intercession to the king that he would not burn the roll: but he would -not hear them. - -36:26 But the king commanded Jerahmeel the son of Hammelech, and -Seraiah the son of Azriel, and Shelemiah the son of Abdeel, to take -Baruch the scribe and Jeremiah the prophet: but the LORD hid them. - -36:27 Then the word of the LORD came to Jeremiah, after that the king -had burned the roll, and the words which Baruch wrote at the mouth of -Jeremiah, saying, 36:28 Take thee again another roll, and write in it -all the former words that were in the first roll, which Jehoiakim the -king of Judah hath burned. - -36:29 And thou shalt say to Jehoiakim king of Judah, Thus saith the -LORD; Thou hast burned this roll, saying, Why hast thou written -therein, saying, The king of Babylon shall certainly come and destroy -this land, and shall cause to cease from thence man and beast? 36:30 -Therefore thus saith the LORD of Jehoiakim king of Judah; He shall -have none to sit upon the throne of David: and his dead body shall be -cast out in the day to the heat, and in the night to the frost. - -36:31 And I will punish him and his seed and his servants for their -iniquity; and I will bring upon them, and upon the inhabitants of -Jerusalem, and upon the men of Judah, all the evil that I have -pronounced against them; but they hearkened not. - -36:32 Then took Jeremiah another roll, and gave it to Baruch the -scribe, the son of Neriah; who wrote therein from the mouth of -Jeremiah all the words of the book which Jehoiakim king of Judah had -burned in the fire: and there were added besides unto them many like -words. - -37:1 And king Zedekiah the son of Josiah reigned instead of Coniah the -son of Jehoiakim, whom Nebuchadrezzar king of Babylon made king in the -land of Judah. - -37:2 But neither he, nor his servants, nor the people of the land, did -hearken unto the words of the LORD, which he spake by the prophet -Jeremiah. - -37:3 And Zedekiah the king sent Jehucal the son of Shelemiah and -Zephaniah the son of Maaseiah the priest to the prophet Jeremiah, -saying, Pray now unto the LORD our God for us. - -37:4 Now Jeremiah came in and went out among the people: for they had -not put him into prison. - -37:5 Then Pharaoh's army was come forth out of Egypt: and when the -Chaldeans that besieged Jerusalem heard tidings of them, they departed -from Jerusalem. - -37:6 Then came the word of the LORD unto the prophet Jeremiah saying, -37:7 Thus saith the LORD, the God of Israel; Thus shall ye say to the -king of Judah, that sent you unto me to enquire of me; Behold, -Pharaoh's army, which is come forth to help you, shall return to Egypt -into their own land. - -37:8 And the Chaldeans shall come again, and fight against this city, -and take it, and burn it with fire. - -37:9 Thus saith the LORD; Deceive not yourselves, saying, The -Chaldeans shall surely depart from us: for they shall not depart. - -37:10 For though ye had smitten the whole army of the Chaldeans that -fight against you, and there remained but wounded men among them, yet -should they rise up every man in his tent, and burn this city with -fire. - -37:11 And it came to pass, that when the army of the Chaldeans was -broken up from Jerusalem for fear of Pharaoh's army, 37:12 Then -Jeremiah went forth out of Jerusalem to go into the land of Benjamin, -to separate himself thence in the midst of the people. - -37:13 And when he was in the gate of Benjamin, a captain of the ward -was there, whose name was Irijah, the son of Shelemiah, the son of -Hananiah; and he took Jeremiah the prophet, saying, Thou fallest away -to the Chaldeans. - -37:14 Then said Jeremiah, It is false; I fall not away to the -Chaldeans. - -But he hearkened not to him: so Irijah took Jeremiah, and brought him -to the princes. - -37:15 Wherefore the princes were wroth with Jeremiah, and smote him, -and put him in prison in the house of Jonathan the scribe: for they -had made that the prison. - -37:16 When Jeremiah was entered into the dungeon, and into the cabins, -and Jeremiah had remained there many days; 37:17 Then Zedekiah the -king sent, and took him out: and the king asked him secretly in his -house, and said, Is there any word from the LORD? And Jeremiah said, -There is: for, said he, thou shalt be delivered into the hand of the -king of Babylon. - -37:18 Moreover Jeremiah said unto king Zedekiah, What have I offended -against thee, or against thy servants, or against this people, that ye -have put me in prison? 37:19 Where are now your prophets which -prophesied unto you, saying, The king of Babylon shall not come -against you, nor against this land? 37:20 Therefore hear now, I pray -thee, O my lord the king: let my supplication, I pray thee, be -accepted before thee; that thou cause me not to return to the house of -Jonathan the scribe, lest I die there. - -37:21 Then Zedekiah the king commanded that they should commit -Jeremiah into the court of the prison, and that they should give him -daily a piece of bread out of the bakers' street, until all the bread -in the city were spent. - -Thus Jeremiah remained in the court of the prison. - -38:1 Then Shephatiah the son of Mattan, and Gedaliah the son of -Pashur, and Jucal the son of Shelemiah, and Pashur the son of -Malchiah, heard the words that Jeremiah had spoken unto all the -people, saying, 38:2 Thus saith the LORD, He that remaineth in this -city shall die by the sword, by the famine, and by the pestilence: but -he that goeth forth to the Chaldeans shall live; for he shall have his -life for a prey, and shall live. - -38:3 Thus saith the LORD, This city shall surely be given into the -hand of the king of Babylon's army, which shall take it. - -38:4 Therefore the princes said unto the king, We beseech thee, let -this man be put to death: for thus he weakeneth the hands of the men -of war that remain in this city, and the hands of all the people, in -speaking such words unto them: for this man seeketh not the welfare of -this people, but the hurt. - -38:5 Then Zedekiah the king said, Behold, he is in your hand: for the -king is not he that can do any thing against you. - -38:6 Then took they Jeremiah, and cast him into the dungeon of -Malchiah the son of Hammelech, that was in the court of the prison: -and they let down Jeremiah with cords. And in the dungeon there was no -water, but mire: so Jeremiah sunk in the mire. - -38:7 Now when Ebedmelech the Ethiopian, one of the eunuchs which was -in the king's house, heard that they had put Jeremiah in the dungeon; -the king then sitting in the gate of Benjamin; 38:8 Ebedmelech went -forth out of the king's house, and spake to the king saying, 38:9 My -lord the king, these men have done evil in all that they have done to -Jeremiah the prophet, whom they have cast into the dungeon; and he is -like to die for hunger in the place where he is: for there is no more -bread in the city. - -38:10 Then the king commanded Ebedmelech the Ethiopian, saying, Take -from hence thirty men with thee, and take up Jeremiah the prophet out -of the dungeon, before he die. - -38:11 So Ebedmelech took the men with him, and went into the house of -the king under the treasury, and took thence old cast clouts and old -rotten rags, and let them down by cords into the dungeon to Jeremiah. - -38:12 And Ebedmelech the Ethiopian said unto Jeremiah, Put now these -old cast clouts and rotten rags under thine armholes under the cords. -And Jeremiah did so. - -38:13 So they drew up Jeremiah with cords, and took him up out of the -dungeon: and Jeremiah remained in the court of the prison. - -38:14 Then Zedekiah the king sent, and took Jeremiah the prophet unto -him into the third entry that is in the house of the LORD: and the -king said unto Jeremiah, I will ask thee a thing; hide nothing from -me. - -38:15 Then Jeremiah said unto Zedekiah, If I declare it unto thee, -wilt thou not surely put me to death? and if I give thee counsel, wilt -thou not hearken unto me? 38:16 So Zedekiah the king sware secretly -unto Jeremiah, saying, As the LORD liveth, that made us this soul, I -will not put thee to death, neither will I give thee into the hand of -these men that seek thy life. - -38:17 Then said Jeremiah unto Zedekiah, Thus saith the LORD, the God -of hosts, the God of Israel; If thou wilt assuredly go forth unto the -king of Babylon's princes, then thy soul shall live, and this city -shall not be burned with fire; and thou shalt live, and thine house: -38:18 But if thou wilt not go forth to the king of Babylon's princes, -then shall this city be given into the hand of the Chaldeans, and they -shall burn it with fire, and thou shalt not escape out of their hand. - -38:19 And Zedekiah the king said unto Jeremiah, I am afraid of the -Jews that are fallen to the Chaldeans, lest they deliver me into their -hand, and they mock me. - -38:20 But Jeremiah said, They shall not deliver thee. Obey, I beseech -thee, the voice of the LORD, which I speak unto thee: so it shall be -well unto thee, and thy soul shall live. - -38:21 But if thou refuse to go forth, this is the word that the LORD -hath shewed me: 38:22 And, behold, all the women that are left in the -king of Judah's house shall be brought forth to the king of Babylon's -princes, and those women shall say, Thy friends have set thee on, and -have prevailed against thee: thy feet are sunk in the mire, and they -are turned away back. - -38:23 So they shall bring out all thy wives and thy children to the -Chaldeans: and thou shalt not escape out of their hand, but shalt be -taken by the hand of the king of Babylon: and thou shalt cause this -city to be burned with fire. - -38:24 Then said Zedekiah unto Jeremiah, Let no man know of these -words, and thou shalt not die. - -38:25 But if the princes hear that I have talked with thee, and they -come unto thee, and say unto thee, Declare unto us now what thou hast -said unto the king, hide it not from us, and we will not put thee to -death; also what the king said unto thee: 38:26 Then thou shalt say -unto them, I presented my supplication before the king, that he would -not cause me to return to Jonathan's house, to die there. - -38:27 Then came all the princes unto Jeremiah, and asked him: and he -told them according to all these words that the king had commanded. So -they left off speaking with him; for the matter was not perceived. - -38:28 So Jeremiah abode in the court of the prison until the day that -Jerusalem was taken: and he was there when Jerusalem was taken. - -39:1 In the ninth year of Zedekiah king of Judah, in the tenth month, -came Nebuchadrezzar king of Babylon and all his army against -Jerusalem, and they besieged it. - -39:2 And in the eleventh year of Zedekiah, in the fourth month, the -ninth day of the month, the city was broken up. - -39:3 And all the princes of the king of Babylon came in, and sat in -the middle gate, even Nergalsharezer, Samgarnebo, Sarsechim, Rabsaris, -Nergalsharezer, Rabmag, with all the residue of the princes of the -king of Babylon. - -39:4 And it came to pass, that when Zedekiah the king of Judah saw -them, and all the men of war, then they fled, and went forth out of -the city by night, by the way of the king's garden, by the gate -betwixt the two walls: and he went out the way of the plain. - -39:5 But the Chaldeans' army pursued after them, and overtook Zedekiah -in the plains of Jericho: and when they had taken him, they brought -him up to Nebuchadnezzar king of Babylon to Riblah in the land of -Hamath, where he gave judgment upon him. - -39:6 Then the king of Babylon slew the sons of Zedekiah in Riblah -before his eyes: also the king of Babylon slew all the nobles of -Judah. - -39:7 Moreover he put out Zedekiah's eyes, and bound him with chains, -to carry him to Babylon. - -39:8 And the Chaldeans burned the king's house, and the houses of the -people, with fire, and brake down the walls of Jerusalem. - -39:9 Then Nebuzaradan the captain of the guard carried away captive -into Babylon the remnant of the people that remained in the city, and -those that fell away, that fell to him, with the rest of the people -that remained. - -39:10 But Nebuzaradan the captain of the guard left of the poor of the -people, which had nothing, in the land of Judah, and gave them -vineyards and fields at the same time. - -39:11 Now Nebuchadrezzar king of Babylon gave charge concerning -Jeremiah to Nebuzaradan the captain of the guard, saying, 39:12 Take -him, and look well to him, and do him no harm; but do unto him even as -he shall say unto thee. - -39:13 So Nebuzaradan the captain of the guard sent, and Nebushasban, -Rabsaris, and Nergalsharezer, Rabmag, and all the king of Babylon's -princes; 39:14 Even they sent, and took Jeremiah out of the court of -the prison, and committed him unto Gedaliah the son of Ahikam the son -of Shaphan, that he should carry him home: so he dwelt among the -people. - -39:15 Now the word of the LORD came unto Jeremiah, while he was shut -up in the court of the prison, saying, 39:16 Go and speak to -Ebedmelech the Ethiopian, saying, Thus saith the LORD of hosts, the -God of Israel; Behold, I will bring my words upon this city for evil, -and not for good; and they shall be accomplished in that day before -thee. - -39:17 But I will deliver thee in that day, saith the LORD: and thou -shalt not be given into the hand of the men of whom thou art afraid. - -39:18 For I will surely deliver thee, and thou shalt not fall by the -sword, but thy life shall be for a prey unto thee: because thou hast -put thy trust in me, saith the LORD. - -40:1 The word that came to Jeremiah from the LORD, after that -Nebuzaradan the captain of the guard had let him go from Ramah, when -he had taken him being bound in chains among all that were carried -away captive of Jerusalem and Judah, which were carried away captive -unto Babylon. - -40:2 And the captain of the guard took Jeremiah, and said unto him, -The LORD thy God hath pronounced this evil upon this place. - -40:3 Now the LORD hath brought it, and done according as he hath said: -because ye have sinned against the LORD, and have not obeyed his -voice, therefore this thing is come upon you. - -40:4 And now, behold, I loose thee this day from the chains which were -upon thine hand. If it seem good unto thee to come with me into -Babylon, come; and I will look well unto thee: but if it seem ill unto -thee to come with me into Babylon, forbear: behold, all the land is -before thee: whither it seemeth good and convenient for thee to go, -thither go. - -40:5 Now while he was not yet gone back, he said, Go back also to -Gedaliah the son of Ahikam the son of Shaphan, whom the king of -Babylon hath made governor over the cities of Judah, and dwell with -him among the people: or go wheresoever it seemeth convenient unto -thee to go. So the captain of the guard gave him victuals and a -reward, and let him go. - -40:6 Then went Jeremiah unto Gedaliah the son of Ahikam to Mizpah; and -dwelt with him among the people that were left in the land. - -40:7 Now when all the captains of the forces which were in the fields, -even they and their men, heard that the king of Babylon had made -Gedaliah the son of Ahikam governor in the land, and had committed -unto him men, and women, and children, and of the poor of the land, of -them that were not carried away captive to Babylon; 40:8 Then they -came to Gedaliah to Mizpah, even Ishmael the son of Nethaniah, and -Johanan and Jonathan the sons of Kareah, and Seraiah the son of -Tanhumeth, and the sons of Ephai the Netophathite, and Jezaniah the -son of a Maachathite, they and their men. - -40:9 And Gedaliah the son of Ahikam the son of Shaphan sware unto them -and to their men, saying, Fear not to serve the Chaldeans: dwell in -the land, and serve the king of Babylon, and it shall be well with -you. - -40:10 As for me, behold, I will dwell at Mizpah, to serve the -Chaldeans, which will come unto us: but ye, gather ye wine, and summer -fruits, and oil, and put them in your vessels, and dwell in your -cities that ye have taken. - -40:11 Likewise when all the Jews that were in Moab, and among the -Ammonites, and in Edom, and that were in all the countries, heard that -the king of Babylon had left a remnant of Judah, and that he had set -over them Gedaliah the son of Ahikam the son of Shaphan; 40:12 Even -all the Jews returned out of all places whither they were driven, and -came to the land of Judah, to Gedaliah, unto Mizpah, and gathered wine -and summer fruits very much. - -40:13 Moreover Johanan the son of Kareah, and all the captains of the -forces that were in the fields, came to Gedaliah to Mizpah, 40:14 And -said unto him, Dost thou certainly know that Baalis the king of the -Ammonites hath sent Ishmael the son of Nethaniah to slay thee? But -Gedaliah the son of Ahikam believed them not. - -40:15 Then Johanan the son of Kareah spake to Gedaliah in Mizpah -secretly saying, Let me go, I pray thee, and I will slay Ishmael the -son of Nethaniah, and no man shall know it: wherefore should he slay -thee, that all the Jews which are gathered unto thee should be -scattered, and the remnant in Judah perish? 40:16 But Gedaliah the -son of Ahikam said unto Johanan the son of Kareah, Thou shalt not do -this thing: for thou speakest falsely of Ishmael. - -41:1 Now it came to pass in the seventh month, that Ishmael the son of -Nethaniah the son of Elishama, of the seed royal, and the princes of -the king, even ten men with him, came unto Gedaliah the son of Ahikam -to Mizpah; and there they did eat bread together in Mizpah. - -41:2 Then arose Ishmael the son of Nethaniah, and the ten men that -were with him, and smote Gedaliah the son of Ahikam the son of Shaphan -with the sword, and slew him, whom the king of Babylon had made -governor over the land. - -41:3 Ishmael also slew all the Jews that were with him, even with -Gedaliah, at Mizpah, and the Chaldeans that were found there, and the -men of war. - -41:4 And it came to pass the second day after he had slain Gedaliah, -and no man knew it, 41:5 That there came certain from Shechem, from -Shiloh, and from Samaria, even fourscore men, having their beards -shaven, and their clothes rent, and having cut themselves, with -offerings and incense in their hand, to bring them to the house of the -LORD. - -41:6 And Ishmael the son of Nethaniah went forth from Mizpah to meet -them, weeping all along as he went: and it came to pass, as he met -them, he said unto them, Come to Gedaliah the son of Ahikam. - -41:7 And it was so, when they came into the midst of the city, that -Ishmael the son of Nethaniah slew them, and cast them into the midst -of the pit, he, and the men that were with him. - -41:8 But ten men were found among them that said unto Ishmael, Slay us -not: for we have treasures in the field, of wheat, and of barley, and -of oil, and of honey. So he forbare, and slew them not among their -brethren. - -41:9 Now the pit wherein Ishmael had cast all the dead bodies of the -men, whom he had slain because of Gedaliah, was it which Asa the king -had made for fear of Baasha king of Israel: and Ishmael the son of -Nethaniah filled it with them that were slain. - -41:10 Then Ishmael carried away captive all the residue of the people -that were in Mizpah, even the king's daughters, and all the people -that remained in Mizpah, whom Nebuzaradan the captain of the guard had -committed to Gedaliah the son of Ahikam: and Ishmael the son of -Nethaniah carried them away captive, and departed to go over to the -Ammonites. - -41:11 But when Johanan the son of Kareah, and all the captains of the -forces that were with him, heard of all the evil that Ishmael the son -of Nethaniah had done, 41:12 Then they took all the men, and went to -fight with Ishmael the son of Nethaniah, and found him by the great -waters that are in Gibeon. - -41:13 Now it came to pass, that when all the people which were with -Ishmael saw Johanan the son of Kareah, and all the captains of the -forces that were with him, then they were glad. - -41:14 So all the people that Ishmael had carried away captive from -Mizpah cast about and returned, and went unto Johanan the son of -Kareah. - -41:15 But Ishmael the son of Nethaniah escaped from Johanan with eight -men, and went to the Ammonites. - -41:16 Then took Johanan the son of Kareah, and all the captains of the -forces that were with him, all the remnant of the people whom he had -recovered from Ishmael the son of Nethaniah, from Mizpah, after that -he had slain Gedaliah the son of Ahikam, even mighty men of war, and -the women, and the children, and the eunuchs, whom he had brought -again from Gibeon: 41:17 And they departed, and dwelt in the -habitation of Chimham, which is by Bethlehem, to go to enter into -Egypt, 41:18 Because of the Chaldeans: for they were afraid of them, -because Ishmael the son of Nethaniah had slain Gedaliah the son of -Ahikam, whom the king of Babylon made governor in the land. - -42:1 Then all the captains of the forces, and Johanan the son of -Kareah, and Jezaniah the son of Hoshaiah, and all the people from the -least even unto the greatest, came near, 42:2 And said unto Jeremiah -the prophet, Let, we beseech thee, our supplication be accepted before -thee, and pray for us unto the LORD thy God, even for all this -remnant; (for we are left but a few of many, as thine eyes do behold -us:) 42:3 That the LORD thy God may shew us the way wherein we may -walk, and the thing that we may do. - -42:4 Then Jeremiah the prophet said unto them, I have heard you; -behold, I will pray unto the LORD your God according to your words; -and it shall come to pass, that whatsoever thing the LORD shall answer -you, I will declare it unto you; I will keep nothing back from you. - -42:5 Then they said to Jeremiah, The LORD be a true and faithful -witness between us, if we do not even according to all things for the -which the LORD thy God shall send thee to us. - -42:6 Whether it be good, or whether it be evil, we will obey the voice -of the LORD our God, to whom we send thee; that it may be well with -us, when we obey the voice of the LORD our God. - -42:7 And it came to pass after ten days, that the word of the LORD -came unto Jeremiah. - -42:8 Then called he Johanan the son of Kareah, and all the captains of -the forces which were with him, and all the people from the least even -to the greatest, 42:9 And said unto them, Thus saith the LORD, the God -of Israel, unto whom ye sent me to present your supplication before -him; 42:10 If ye will still abide in this land, then will I build you, -and not pull you down, and I will plant you, and not pluck you up: for -I repent me of the evil that I have done unto you. - -42:11 Be not afraid of the king of Babylon, of whom ye are afraid; be -not afraid of him, saith the LORD: for I am with you to save you, and -to deliver you from his hand. - -42:12 And I will shew mercies unto you, that he may have mercy upon -you, and cause you to return to your own land. - -42:13 But if ye say, We will not dwell in this land, neither obey the -voice of the LORD your God, 42:14 Saying, No; but we will go into the -land of Egypt, where we shall see no war, nor hear the sound of the -trumpet, nor have hunger of bread; and there will we dwell: 42:15 And -now therefore hear the word of the LORD, ye remnant of Judah; Thus -saith the LORD of hosts, the God of Israel; If ye wholly set your -faces to enter into Egypt, and go to sojourn there; 42:16 Then it -shall come to pass, that the sword, which ye feared, shall overtake -you there in the land of Egypt, and the famine, whereof ye were -afraid, shall follow close after you there in Egypt; and there ye -shall die. - -42:17 So shall it be with all the men that set their faces to go into -Egypt to sojourn there; they shall die by the sword, by the famine, -and by the pestilence: and none of them shall remain or escape from -the evil that I will bring upon them. - -42:18 For thus saith the LORD of hosts, the God of Israel; As mine -anger and my fury hath been poured forth upon the inhabitants of -Jerusalem; so shall my fury be poured forth upon you, when ye shall -enter into Egypt: and ye shall be an execration, and an astonishment, -and a curse, and a reproach; and ye shall see this place no more. - -42:19 The LORD hath said concerning you, O ye remnant of Judah; Go ye -not into Egypt: know certainly that I have admonished you this day. - -42:20 For ye dissembled in your hearts, when ye sent me unto the LORD -your God, saying, Pray for us unto the LORD our God; and according -unto all that the LORD our God shall say, so declare unto us, and we -will do it. - -42:21 And now I have this day declared it to you; but ye have not -obeyed the voice of the LORD your God, nor any thing for the which he -hath sent me unto you. - -42:22 Now therefore know certainly that ye shall die by the sword, by -the famine, and by the pestilence, in the place whither ye desire to -go and to sojourn. - -43:1 And it came to pass, that when Jeremiah had made an end of -speaking unto all the people all the words of the LORD their God, for -which the LORD their God had sent him to them, even all these words, -43:2 Then spake Azariah the son of Hoshaiah, and Johanan the son of -Kareah, and all the proud men, saying unto Jeremiah, Thou speakest -falsely: the LORD our God hath not sent thee to say, Go not into Egypt -to sojourn there: 43:3 But Baruch the son of Neriah setteth thee on -against us, for to deliver us into the hand of the Chaldeans, that -they might put us to death, and carry us away captives into Babylon. - -43:4 So Johanan the son of Kareah, and all the captains of the forces, -and all the people, obeyed not the voice of the LORD, to dwell in the -land of Judah. - -43:5 But Johanan the son of Kareah, and all the captains of the -forces, took all the remnant of Judah, that were returned from all -nations, whither they had been driven, to dwell in the land of Judah; -43:6 Even men, and women, and children, and the king's daughters, and -every person that Nebuzaradan the captain of the guard had left with -Gedaliah the son of Ahikam the son of Shaphan, and Jeremiah the -prophet, and Baruch the son of Neriah. - -43:7 So they came into the land of Egypt: for they obeyed not the -voice of the LORD: thus came they even to Tahpanhes. - -43:8 Then came the word of the LORD unto Jeremiah in Tahpanhes, -saying, 43:9 Take great stones in thine hand, and hide them in the -clay in the brickkiln, which is at the entry of Pharaoh's house in -Tahpanhes, in the sight of the men of Judah; 43:10 And say unto them, -Thus saith the LORD of hosts, the God of Israel; Behold, I will send -and take Nebuchadrezzar the king of Babylon, my servant, and will set -his throne upon these stones that I have hid; and he shall spread his -royal pavilion over them. - -43:11 And when he cometh, he shall smite the land of Egypt, and -deliver such as are for death to death; and such as are for captivity -to captivity; and such as are for the sword to the sword. - -43:12 And I will kindle a fire in the houses of the gods of Egypt; and -he shall burn them, and carry them away captives: and he shall array -himself with the land of Egypt, as a shepherd putteth on his garment; -and he shall go forth from thence in peace. - -43:13 He shall break also the images of Bethshemesh, that is in the -land of Egypt; and the houses of the gods of the Egyptians shall he -burn with fire. - -44:1 The word that came to Jeremiah concerning all the Jews which -dwell in the land of Egypt, which dwell at Migdol, and at Tahpanhes, -and at Noph, and in the country of Pathros, saying, 44:2 Thus saith -the LORD of hosts, the God of Israel; Ye have seen all the evil that I -have brought upon Jerusalem, and upon all the cities of Judah; and, -behold, this day they are a desolation, and no man dwelleth therein, -44:3 Because of their wickedness which they have committed to provoke -me to anger, in that they went to burn incense, and to serve other -gods, whom they knew not, neither they, ye, nor your fathers. - -44:4 Howbeit I sent unto you all my servants the prophets, rising -early and sending them, saying, Oh, do not this abominable thing that -I hate. - -44:5 But they hearkened not, nor inclined their ear to turn from their -wickedness, to burn no incense unto other gods. - -44:6 Wherefore my fury and mine anger was poured forth, and was -kindled in the cities of Judah and in the streets of Jerusalem; and -they are wasted and desolate, as at this day. - -44:7 Therefore now thus saith the LORD, the God of hosts, the God of -Israel; Wherefore commit ye this great evil against your souls, to cut -off from you man and woman, child and suckling, out of Judah, to leave -you none to remain; 44:8 In that ye provoke me unto wrath with the -works of your hands, burning incense unto other gods in the land of -Egypt, whither ye be gone to dwell, that ye might cut yourselves off, -and that ye might be a curse and a reproach among all the nations of -the earth? 44:9 Have ye forgotten the wickedness of your fathers, and -the wickedness of the kings of Judah, and the wickedness of their -wives, and your own wickedness, and the wickedness of your wives, -which they have committed in the land of Judah, and in the streets of -Jerusalem? 44:10 They are not humbled even unto this day, neither -have they feared, nor walked in my law, nor in my statutes, that I set -before you and before your fathers. - -44:11 Therefore thus saith the LORD of hosts, the God of Israel; -Behold, I will set my face against you for evil, and to cut off all -Judah. - -44:12 And I will take the remnant of Judah, that have set their faces -to go into the land of Egypt to sojourn there, and they shall all be -consumed, and fall in the land of Egypt; they shall even be consumed -by the sword and by the famine: they shall die, from the least even -unto the greatest, by the sword and by the famine: and they shall be -an execration, and an astonishment, and a curse, and a reproach. - -44:13 For I will punish them that dwell in the land of Egypt, as I -have punished Jerusalem, by the sword, by the famine, and by the -pestilence: 44:14 So that none of the remnant of Judah, which are gone -into the land of Egypt to sojourn there, shall escape or remain, that -they should return into the land of Judah, to the which they have a -desire to return to dwell there: for none shall return but such as -shall escape. - -44:15 Then all the men which knew that their wives had burned incense -unto other gods, and all the women that stood by, a great multitude, -even all the people that dwelt in the land of Egypt, in Pathros, -answered Jeremiah, saying, 44:16 As for the word that thou hast spoken -unto us in the name of the LORD, we will not hearken unto thee. - -44:17 But we will certainly do whatsoever thing goeth forth out of our -own mouth, to burn incense unto the queen of heaven, and to pour out -drink offerings unto her, as we have done, we, and our fathers, our -kings, and our princes, in the cities of Judah, and in the streets of -Jerusalem: for then had we plenty of victuals, and were well, and saw -no evil. - -44:18 But since we left off to burn incense to the queen of heaven, -and to pour out drink offerings unto her, we have wanted all things, -and have been consumed by the sword and by the famine. - -44:19 And when we burned incense to the queen of heaven, and poured -out drink offerings unto her, did we make her cakes to worship her, -and pour out drink offerings unto her, without our men? 44:20 Then -Jeremiah said unto all the people, to the men, and to the women, and -to all the people which had given him that answer, saying, 44:21 The -incense that ye burned in the cities of Judah, and in the streets of -Jerusalem, ye, and your fathers, your kings, and your princes, and the -people of the land, did not the LORD remember them, and came it not -into his mind? 44:22 So that the LORD could no longer bear, because -of the evil of your doings, and because of the abominations which ye -have committed; therefore is your land a desolation, and an -astonishment, and a curse, without an inhabitant, as at this day. - -44:23 Because ye have burned incense, and because ye have sinned -against the LORD, and have not obeyed the voice of the LORD, nor -walked in his law, nor in his statutes, nor in his testimonies; -therefore this evil is happened unto you, as at this day. - -44:24 Moreover Jeremiah said unto all the people, and to all the -women, Hear the word of the LORD, all Judah that are in the land of -Egypt: 44:25 Thus saith the LORD of hosts, the God of Israel, saying; -Ye and your wives have both spoken with your mouths, and fulfilled -with your hand, saying, We will surely perform our vows that we have -vowed, to burn incense to the queen of heaven, and to pour out drink -offerings unto her: ye will surely accomplish your vows, and surely -perform your vows. - -44:26 Therefore hear ye the word of the LORD, all Judah that dwell in -the land of Egypt; Behold, I have sworn by my great name, saith the -LORD, that my name shall no more be named in the mouth of any man of -Judah in all the land of Egypt, saying, The Lord GOD liveth. - -44:27 Behold, I will watch over them for evil, and not for good: and -all the men of Judah that are in the land of Egypt shall be consumed -by the sword and by the famine, until there be an end of them. - -44:28 Yet a small number that escape the sword shall return out of the -land of Egypt into the land of Judah, and all the remnant of Judah, -that are gone into the land of Egypt to sojourn there, shall know -whose words shall stand, mine, or their's. - -44:29 And this shall be a sign unto you, saith the LORD, that I will -punish you in this place, that ye may know that my words shall surely -stand against you for evil: 44:30 Thus saith the LORD; Behold, I will -give Pharaohhophra king of Egypt into the hand of his enemies, and -into the hand of them that seek his life; as I gave Zedekiah king of -Judah into the hand of Nebuchadrezzar king of Babylon, his enemy, and -that sought his life. - -45:1 The word that Jeremiah the prophet spake unto Baruch the son of -Neriah, when he had written these words in a book at the mouth of -Jeremiah, in the fourth year of Jehoiakim the son of Josiah king of -Judah, saying, 45:2 Thus saith the LORD, the God of Israel, unto thee, -O Baruch: 45:3 Thou didst say, Woe is me now! for the LORD hath added -grief to my sorrow; I fainted in my sighing, and I find no rest. - -45:4 Thus shalt thou say unto him, The LORD saith thus; Behold, that -which I have built will I break down, and that which I have planted I -will pluck up, even this whole land. - -45:5 And seekest thou great things for thyself? seek them not: for, -behold, I will bring evil upon all flesh, saith the LORD: but thy life -will I give unto thee for a prey in all places whither thou goest. - -46:1 The word of the LORD which came to Jeremiah the prophet against -the Gentiles; 46:2 Against Egypt, against the army of Pharaohnecho -king of Egypt, which was by the river Euphrates in Carchemish, which -Nebuchadrezzar king of Babylon smote in the fourth year of Jehoiakim -the son of Josiah king of Judah. - -46:3 Order ye the buckler and shield, and draw near to battle. - -46:4 Harness the horses; and get up, ye horsemen, and stand forth with -your helmets; furbish the spears, and put on the brigandines. - -46:5 Wherefore have I seen them dismayed and turned away back? and -their mighty ones are beaten down, and are fled apace, and look not -back: for fear was round about, saith the LORD. - -46:6 Let not the swift flee away, nor the mighty man escape; they -shall stumble, and fall toward the north by the river Euphrates. - -46:7 Who is this that cometh up as a flood, whose waters are moved as -the rivers? 46:8 Egypt riseth up like a flood, and his waters are -moved like the rivers; and he saith, I will go up, and will cover the -earth; I will destroy the city and the inhabitants thereof. - -46:9 Come up, ye horses; and rage, ye chariots; and let the mighty men -come forth; the Ethiopians and the Libyans, that handle the shield; -and the Lydians, that handle and bend the bow. - -46:10 For this is the day of the Lord GOD of hosts, a day of -vengeance, that he may avenge him of his adversaries: and the sword -shall devour, and it shall be satiate and made drunk with their blood: -for the Lord GOD of hosts hath a sacrifice in the north country by the -river Euphrates. - -46:11 Go up into Gilead, and take balm, O virgin, the daughter of -Egypt: in vain shalt thou use many medicines; for thou shalt not be -cured. - -46:12 The nations have heard of thy shame, and thy cry hath filled the -land: for the mighty man hath stumbled against the mighty, and they -are fallen both together. - -46:13 The word that the LORD spake to Jeremiah the prophet, how -Nebuchadrezzar king of Babylon should come and smite the land of -Egypt. - -46:14 Declare ye in Egypt, and publish in Migdol, and publish in Noph -and in Tahpanhes: say ye, Stand fast, and prepare thee; for the sword -shall devour round about thee. - -46:15 Why are thy valiant men swept away? they stood not, because the -LORD did drive them. - -46:16 He made many to fall, yea, one fell upon another: and they said, -Arise, and let us go again to our own people, and to the land of our -nativity, from the oppressing sword. - -46:17 They did cry there, Pharaoh king of Egypt is but a noise; he -hath passed the time appointed. - -46:18 As I live, saith the King, whose name is the LORD of hosts, -Surely as Tabor is among the mountains, and as Carmel by the sea, so -shall he come. - -46:19 O thou daughter dwelling in Egypt, furnish thyself to go into -captivity: for Noph shall be waste and desolate without an inhabitant. - -46:20 Egypt is like a very fair heifer, but destruction cometh; it -cometh out of the north. - -46:21 Also her hired men are in the midst of her like fatted bullocks; -for they also are turned back, and are fled away together: they did -not stand, because the day of their calamity was come upon them, and -the time of their visitation. - -46:22 The voice thereof shall go like a serpent; for they shall march -with an army, and come against her with axes, as hewers of wood. - -46:23 They shall cut down her forest, saith the LORD, though it cannot -be searched; because they are more than the grasshoppers, and are -innumerable. - -46:24 The daughter of Egypt shall be confounded; she shall be -delivered into the hand of the people of the north. - -46:25 The LORD of hosts, the God of Israel, saith; Behold, I will -punish the multitude of No, and Pharaoh, and Egypt, with their gods, -and their kings; even Pharaoh, and all them that trust in him: 46:26 -And I will deliver them into the hand of those that seek their lives, -and into the hand of Nebuchadrezzar king of Babylon, and into the hand -of his servants: and afterward it shall be inhabited, as in the days -of old, saith the LORD. - -46:27 But fear not thou, O my servant Jacob, and be not dismayed, O -Israel: for, behold, I will save thee from afar off, and thy seed from -the land of their captivity; and Jacob shall return, and be in rest -and at ease, and none shall make him afraid. - -46:28 Fear thou not, O Jacob my servant, saith the LORD: for I am with -thee; for I will make a full end of all the nations whither I have -driven thee: but I will not make a full end of thee, but correct thee -in measure; yet will I not leave thee wholly unpunished. - -47:1 The word of the LORD that came to Jeremiah the prophet against -the Philistines, before that Pharaoh smote Gaza. - -47:2 Thus saith the LORD; Behold, waters rise up out of the north, and -shall be an overflowing flood, and shall overflow the land, and all -that is therein; the city, and them that dwell therein: then the men -shall cry, and all the inhabitants of the land shall howl. - -47:3 At the noise of the stamping of the hoofs of his strong horses, -at the rushing of his chariots, and at the rumbling of his wheels, the -fathers shall not look back to their children for feebleness of hands; -47:4 Because of the day that cometh to spoil all the Philistines, and -to cut off from Tyrus and Zidon every helper that remaineth: for the -LORD will spoil the Philistines, the remnant of the country of -Caphtor. - -47:5 Baldness is come upon Gaza; Ashkelon is cut off with the remnant -of their valley: how long wilt thou cut thyself? 47:6 O thou sword of -the LORD, how long will it be ere thou be quiet? put up thyself into -thy scabbard, rest, and be still. - -47:7 How can it be quiet, seeing the LORD hath given it a charge -against Ashkelon, and against the sea shore? there hath he appointed -it. - -48:1 Against Moab thus saith the LORD of hosts, the God of Israel; Woe -unto Nebo! for it is spoiled: Kiriathaim is confounded and taken: -Misgab is confounded and dismayed. - -48:2 There shall be no more praise of Moab: in Heshbon they have -devised evil against it; come, and let us cut it off from being a -nation. Also thou shalt be cut down, O Madmen; the sword shall pursue -thee. - -48:3 A voice of crying shall be from Horonaim, spoiling and great -destruction. - -48:4 Moab is destroyed; her little ones have caused a cry to be heard. - -48:5 For in the going up of Luhith continual weeping shall go up; for -in the going down of Horonaim the enemies have heard a cry of -destruction. - -48:6 Flee, save your lives, and be like the heath in the wilderness. - -48:7 For because thou hast trusted in thy works and in thy treasures, -thou shalt also be taken: and Chemosh shall go forth into captivity -with his priests and his princes together. - -48:8 And the spoiler shall come upon every city, and no city shall -escape: the valley also shall perish, and the plain shall be -destroyed, as the LORD hath spoken. - -48:9 Give wings unto Moab, that it may flee and get away: for the -cities thereof shall be desolate, without any to dwell therein. - -48:10 Cursed be he that doeth the work of the LORD deceitfully, and -cursed be he that keepeth back his sword from blood. - -48:11 Moab hath been at ease from his youth, and he hath settled on -his lees, and hath not been emptied from vessel to vessel, neither -hath he gone into captivity: therefore his taste remained in him, and -his scent is not changed. - -48:12 Therefore, behold, the days come, saith the LORD, that I will -send unto him wanderers, that shall cause him to wander, and shall -empty his vessels, and break their bottles. - -48:13 And Moab shall be ashamed of Chemosh, as the house of Israel was -ashamed of Bethel their confidence. - -48:14 How say ye, We are mighty and strong men for the war? 48:15 -Moab is spoiled, and gone up out of her cities, and his chosen young -men are gone down to the slaughter, saith the King, whose name is the -LORD of hosts. - -48:16 The calamity of Moab is near to come, and his affliction hasteth -fast. - -48:17 All ye that are about him, bemoan him; and all ye that know his -name, say, How is the strong staff broken, and the beautiful rod! -48:18 Thou daughter that dost inhabit Dibon, come down from thy glory, -and sit in thirst; for the spoiler of Moab shall come upon thee, and -he shall destroy thy strong holds. - -48:19 O inhabitant of Aroer, stand by the way, and espy; ask him that -fleeth, and her that escapeth, and say, What is done? 48:20 Moab is -confounded; for it is broken down: howl and cry; tell ye it in Arnon, -that Moab is spoiled, 48:21 And judgment is come upon the plain -country; upon Holon, and upon Jahazah, and upon Mephaath, 48:22 And -upon Dibon, and upon Nebo, and upon Bethdiblathaim, 48:23 And upon -Kiriathaim, and upon Bethgamul, and upon Bethmeon, 48:24 And upon -Kerioth, and upon Bozrah, and upon all the cities of the land of Moab, -far or near. - -48:25 The horn of Moab is cut off, and his arm is broken, saith the -LORD. - -48:26 Make ye him drunken: for he magnified himself against the LORD: -Moab also shall wallow in his vomit, and he also shall be in derision. - -48:27 For was not Israel a derision unto thee? was he found among -thieves? for since thou spakest of him, thou skippedst for joy. - -48:28 O ye that dwell in Moab, leave the cities, and dwell in the -rock, and be like the dove that maketh her nest in the sides of the -hole's mouth. - -48:29 We have heard the pride of Moab, (he is exceeding proud) his -loftiness, and his arrogancy, and his pride, and the haughtiness of -his heart. - -48:30 I know his wrath, saith the LORD; but it shall not be so; his -lies shall not so effect it. - -48:31 Therefore will I howl for Moab, and I will cry out for all Moab; -mine heart shall mourn for the men of Kirheres. - -48:32 O vine of Sibmah, I will weep for thee with the weeping of -Jazer: thy plants are gone over the sea, they reach even to the sea of -Jazer: the spoiler is fallen upon thy summer fruits and upon thy -vintage. - -48:33 And joy and gladness is taken from the plentiful field, and from -the land of Moab, and I have caused wine to fail from the winepresses: -none shall tread with shouting; their shouting shall be no shouting. - -48:34 From the cry of Heshbon even unto Elealeh, and even unto Jahaz, -have they uttered their voice, from Zoar even unto Horonaim, as an -heifer of three years old: for the waters also of Nimrim shall be -desolate. - -48:35 Moreover I will cause to cease in Moab, saith the LORD, him that -offereth in the high places, and him that burneth incense to his gods. - -48:36 Therefore mine heart shall sound for Moab like pipes, and mine -heart shall sound like pipes for the men of Kirheres: because the -riches that he hath gotten are perished. - -48:37 For every head shall be bald, and every beard clipped: upon all -the hands shall be cuttings, and upon the loins sackcloth. - -48:38 There shall be lamentation generally upon all the housetops of -Moab, and in the streets thereof: for I have broken Moab like a vessel -wherein is no pleasure, saith the LORD. - -48:39 They shall howl, saying, How is it broken down! how hath Moab -turned the back with shame! so shall Moab be a derision and a -dismaying to all them about him. - -48:40 For thus saith the LORD; Behold, he shall fly as an eagle, and -shall spread his wings over Moab. - -48:41 Kerioth is taken, and the strong holds are surprised, and the -mighty men's hearts in Moab at that day shall be as the heart of a -woman in her pangs. - -48:42 And Moab shall be destroyed from being a people, because he hath -magnified himself against the LORD. - -48:43 Fear, and the pit, and the snare, shall be upon thee, O -inhabitant of Moab, saith the LORD. - -48:44 He that fleeth from the fear shall fall into the pit; and he -that getteth up out of the pit shall be taken in the snare: for I will -bring upon it, even upon Moab, the year of their visitation, saith the -LORD. - -48:45 They that fled stood under the shadow of Heshbon because of the -force: but a fire shall come forth out of Heshbon, and a flame from -the midst of Sihon, and shall devour the corner of Moab, and the crown -of the head of the tumultuous ones. - -48:46 Woe be unto thee, O Moab! the people of Chemosh perisheth: for -thy sons are taken captives, and thy daughters captives. - -48:47 Yet will I bring again the captivity of Moab in the latter days, -saith the LORD. Thus far is the judgment of Moab. - -49:1 Concerning the Ammonites, thus saith the LORD; Hath Israel no -sons? hath he no heir? why then doth their king inherit Gad, and his -people dwell in his cities? 49:2 Therefore, behold, the days come, -saith the LORD, that I will cause an alarm of war to be heard in -Rabbah of the Ammonites; and it shall be a desolate heap, and her -daughters shall be burned with fire: then shall Israel be heir unto -them that were his heirs, saith the LORD. - -49:3 Howl, O Heshbon, for Ai is spoiled: cry, ye daughters of Rabbah, -gird you with sackcloth; lament, and run to and fro by the hedges; for -their king shall go into captivity, and his priests and his princes -together. - -49:4 Wherefore gloriest thou in the valleys, thy flowing valley, O -backsliding daughter? that trusted in her treasures, saying, Who shall -come unto me? 49:5 Behold, I will bring a fear upon thee, saith the -Lord GOD of hosts, from all those that be about thee; and ye shall be -driven out every man right forth; and none shall gather up him that -wandereth. - -49:6 And afterward I will bring again the captivity of the children of -Ammon, saith the LORD. - -49:7 Concerning Edom, thus saith the LORD of hosts; Is wisdom no more -in Teman? is counsel perished from the prudent? is their wisdom -vanished? 49:8 Flee ye, turn back, dwell deep, O inhabitants of -Dedan; for I will bring the calamity of Esau upon him, the time that I -will visit him. - -49:9 If grapegatherers come to thee, would they not leave some -gleaning grapes? if thieves by night, they will destroy till they have -enough. - -49:10 But I have made Esau bare, I have uncovered his secret places, -and he shall not be able to hide himself: his seed is spoiled, and his -brethren, and his neighbours, and he is not. - -49:11 Leave thy fatherless children, I will preserve them alive; and -let thy widows trust in me. - -49:12 For thus saith the LORD; Behold, they whose judgment was not to -drink of the cup have assuredly drunken; and art thou he that shall -altogether go unpunished? thou shalt not go unpunished, but thou shalt -surely drink of it. - -49:13 For I have sworn by myself, saith the LORD, that Bozrah shall -become a desolation, a reproach, a waste, and a curse; and all the -cities thereof shall be perpetual wastes. - -49:14 I have heard a rumour from the LORD, and an ambassador is sent -unto the heathen, saying, Gather ye together, and come against her, -and rise up to the battle. - -49:15 For, lo, I will make thee small among the heathen, and despised -among men. - -49:16 Thy terribleness hath deceived thee, and the pride of thine -heart, O thou that dwellest in the clefts of the rock, that holdest -the height of the hill: though thou shouldest make thy nest as high as -the eagle, I will bring thee down from thence, saith the LORD. - -49:17 Also Edom shall be a desolation: every one that goeth by it -shall be astonished, and shall hiss at all the plagues thereof. - -49:18 As in the overthrow of Sodom and Gomorrah and the neighbour -cities thereof, saith the LORD, no man shall abide there, neither -shall a son of man dwell in it. - -49:19 Behold, he shall come up like a lion from the swelling of Jordan -against the habitation of the strong: but I will suddenly make him run -away from her: and who is a chosen man, that I may appoint over her? -for who is like me? and who will appoint me the time? and who is that -shepherd that will stand before me? 49:20 Therefore hear the counsel -of the LORD, that he hath taken against Edom; and his purposes, that -he hath purposed against the inhabitants of Teman: Surely the least of -the flock shall draw them out: surely he shall make their habitations -desolate with them. - -49:21 The earth is moved at the noise of their fall, at the cry the -noise thereof was heard in the Red sea. - -49:22 Behold, he shall come up and fly as the eagle, and spread his -wings over Bozrah: and at that day shall the heart of the mighty men -of Edom be as the heart of a woman in her pangs. - -49:23 Concerning Damascus. Hamath is confounded, and Arpad: for they -have heard evil tidings: they are fainthearted; there is sorrow on the -sea; it cannot be quiet. - -49:24 Damascus is waxed feeble, and turneth herself to flee, and fear -hath seized on her: anguish and sorrows have taken her, as a woman in -travail. - -49:25 How is the city of praise not left, the city of my joy! 49:26 -Therefore her young men shall fall in her streets, and all the men of -war shall be cut off in that day, saith the LORD of hosts. - -49:27 And I will kindle a fire in the wall of Damascus, and it shall -consume the palaces of Benhadad. - -49:28 Concerning Kedar, and concerning the kingdoms of Hazor, which -Nebuchadrezzar king of Babylon shall smite, thus saith the LORD; Arise -ye, go up to Kedar, and spoil the men of the east. - -49:29 Their tents and their flocks shall they take away: they shall -take to themselves their curtains, and all their vessels, and their -camels; and they shall cry unto them, Fear is on every side. - -49:30 Flee, get you far off, dwell deep, O ye inhabitants of Hazor, -saith the LORD; for Nebuchadrezzar king of Babylon hath taken counsel -against you, and hath conceived a purpose against you. - -49:31 Arise, get you up unto the wealthy nation, that dwelleth without -care, saith the LORD, which have neither gates nor bars, which dwell -alone. - -49:32 And their camels shall be a booty, and the multitude of their -cattle a spoil: and I will scatter into all winds them that are in the -utmost corners; and I will bring their calamity from all sides -thereof, saith the LORD. - -49:33 And Hazor shall be a dwelling for dragons, and a desolation for -ever: there shall no man abide there, nor any son of man dwell in it. - -49:34 The word of the LORD that came to Jeremiah the prophet against -Elam in the beginning of the reign of Zedekiah king of Judah, saying, -49:35 Thus saith the LORD of hosts; Behold, I will break the bow of -Elam, the chief of their might. - -49:36 And upon Elam will I bring the four winds from the four quarters -of heaven, and will scatter them toward all those winds; and there -shall be no nation whither the outcasts of Elam shall not come. - -49:37 For I will cause Elam to be dismayed before their enemies, and -before them that seek their life: and I will bring evil upon them, -even my fierce anger, saith the LORD; and I will send the sword after -them, till I have consumed them: 49:38 And I will set my throne in -Elam, and will destroy from thence the king and the princes, saith the -LORD. - -49:39 But it shall come to pass in the latter days, that I will bring -again the captivity of Elam, saith the LORD. - -50:1 The word that the LORD spake against Babylon and against the land -of the Chaldeans by Jeremiah the prophet. - -50:2 Declare ye among the nations, and publish, and set up a standard; -publish, and conceal not: say, Babylon is taken, Bel is confounded, -Merodach is broken in pieces; her idols are confounded, her images are -broken in pieces. - -50:3 For out of the north there cometh up a nation against her, which -shall make her land desolate, and none shall dwell therein: they shall -remove, they shall depart, both man and beast. - -50:4 In those days, and in that time, saith the LORD, the children of -Israel shall come, they and the children of Judah together, going and -weeping: they shall go, and seek the LORD their God. - -50:5 They shall ask the way to Zion with their faces thitherward, -saying, Come, and let us join ourselves to the LORD in a perpetual -covenant that shall not be forgotten. - -50:6 My people hath been lost sheep: their shepherds have caused them -to go astray, they have turned them away on the mountains: they have -gone from mountain to hill, they have forgotten their restingplace. - -50:7 All that found them have devoured them: and their adversaries -said, We offend not, because they have sinned against the LORD, the -habitation of justice, even the LORD, the hope of their fathers. - -50:8 Remove out of the midst of Babylon, and go forth out of the land -of the Chaldeans, and be as the he goats before the flocks. - -50:9 For, lo, I will raise and cause to come up against Babylon an -assembly of great nations from the north country: and they shall set -themselves in array against her; from thence she shall be taken: their -arrows shall be as of a mighty expert man; none shall return in vain. - -50:10 And Chaldea shall be a spoil: all that spoil her shall be -satisfied, saith the LORD. - -50:11 Because ye were glad, because ye rejoiced, O ye destroyers of -mine heritage, because ye are grown fat as the heifer at grass, and -bellow as bulls; 50:12 Your mother shall be sore confounded; she that -bare you shall be ashamed: behold, the hindermost of the nations shall -be a wilderness, a dry land, and a desert. - -50:13 Because of the wrath of the LORD it shall not be inhabited, but -it shall be wholly desolate: every one that goeth by Babylon shall be -astonished, and hiss at all her plagues. - -50:14 Put yourselves in array against Babylon round about: all ye that -bend the bow, shoot at her, spare no arrows: for she hath sinned -against the LORD. - -50:15 Shout against her round about: she hath given her hand: her -foundations are fallen, her walls are thrown down: for it is the -vengeance of the LORD: take vengeance upon her; as she hath done, do -unto her. - -50:16 Cut off the sower from Babylon, and him that handleth the sickle -in the time of harvest: for fear of the oppressing sword they shall -turn every one to his people, and they shall flee every one to his own -land. - -50:17 Israel is a scattered sheep; the lions have driven him away: -first the king of Assyria hath devoured him; and last this -Nebuchadrezzar king of Babylon hath broken his bones. - -50:18 Therefore thus saith the LORD of hosts, the God of Israel; -Behold, I will punish the king of Babylon and his land, as I have -punished the king of Assyria. - -50:19 And I will bring Israel again to his habitation, and he shall -feed on Carmel and Bashan, and his soul shall be satisfied upon mount -Ephraim and Gilead. - -50:20 In those days, and in that time, saith the LORD, the iniquity of -Israel shall be sought for, and there shall be none; and the sins of -Judah, and they shall not be found: for I will pardon them whom I -reserve. - -50:21 Go up against the land of Merathaim, even against it, and -against the inhabitants of Pekod: waste and utterly destroy after -them, saith the LORD, and do according to all that I have commanded -thee. - -50:22 A sound of battle is in the land, and of great destruction. - -50:23 How is the hammer of the whole earth cut asunder and broken! how -is Babylon become a desolation among the nations! 50:24 I have laid a -snare for thee, and thou art also taken, O Babylon, and thou wast not -aware: thou art found, and also caught, because thou hast striven -against the LORD. - -50:25 The LORD hath opened his armoury, and hath brought forth the -weapons of his indignation: for this is the work of the Lord GOD of -hosts in the land of the Chaldeans. - -50:26 Come against her from the utmost border, open her storehouses: -cast her up as heaps, and destroy her utterly: let nothing of her be -left. - -50:27 Slay all her bullocks; let them go down to the slaughter: woe -unto them! for their day is come, the time of their visitation. - -50:28 The voice of them that flee and escape out of the land of -Babylon, to declare in Zion the vengeance of the LORD our God, the -vengeance of his temple. - -50:29 Call together the archers against Babylon: all ye that bend the -bow, camp against it round about; let none thereof escape: recompense -her according to her work; according to all that she hath done, do -unto her: for she hath been proud against the LORD, against the Holy -One of Israel. - -50:30 Therefore shall her young men fall in the streets, and all her -men of war shall be cut off in that day, saith the LORD. - -50:31 Behold, I am against thee, O thou most proud, saith the Lord GOD -of hosts: for thy day is come, the time that I will visit thee. - -50:32 And the most proud shall stumble and fall, and none shall raise -him up: and I will kindle a fire in his cities, and it shall devour -all round about him. - -50:33 Thus saith the LORD of hosts; The children of Israel and the -children of Judah were oppressed together: and all that took them -captives held them fast; they refused to let them go. - -50:34 Their Redeemer is strong; the LORD of hosts is his name: he -shall throughly plead their cause, that he may give rest to the land, -and disquiet the inhabitants of Babylon. - -50:35 A sword is upon the Chaldeans, saith the LORD, and upon the -inhabitants of Babylon, and upon her princes, and upon her wise men. - -50:36 A sword is upon the liars; and they shall dote: a sword is upon -her mighty men; and they shall be dismayed. - -50:37 A sword is upon their horses, and upon their chariots, and upon -all the mingled people that are in the midst of her; and they shall -become as women: a sword is upon her treasures; and they shall be -robbed. - -50:38 A drought is upon her waters; and they shall be dried up: for it -is the land of graven images, and they are mad upon their idols. - -50:39 Therefore the wild beasts of the desert with the wild beasts of -the islands shall dwell there, and the owls shall dwell therein: and -it shall be no more inhabited for ever; neither shall it be dwelt in -from generation to generation. - -50:40 As God overthrew Sodom and Gomorrah and the neighbour cities -thereof, saith the LORD; so shall no man abide there, neither shall -any son of man dwell therein. - -50:41 Behold, a people shall come from the north, and a great nation, -and many kings shall be raised up from the coasts of the earth. - -50:42 They shall hold the bow and the lance: they are cruel, and will -not shew mercy: their voice shall roar like the sea, and they shall -ride upon horses, every one put in array, like a man to the battle, -against thee, O daughter of Babylon. - -50:43 The king of Babylon hath heard the report of them, and his hands -waxed feeble: anguish took hold of him, and pangs as of a woman in -travail. - -50:44 Behold, he shall come up like a lion from the swelling of Jordan -unto the habitation of the strong: but I will make them suddenly run -away from her: and who is a chosen man, that I may appoint over her? -for who is like me? and who will appoint me the time? and who is that -shepherd that will stand before me? 50:45 Therefore hear ye the -counsel of the LORD, that he hath taken against Babylon; and his -purposes, that he hath purposed against the land of the Chaldeans: -Surely the least of the flock shall draw them out: surely he shall -make their habitation desolate with them. - -50:46 At the noise of the taking of Babylon the earth is moved, and -the cry is heard among the nations. - -51:1 Thus saith the LORD; Behold, I will raise up against Babylon, and -against them that dwell in the midst of them that rise up against me, -a destroying wind; 51:2 And will send unto Babylon fanners, that shall -fan her, and shall empty her land: for in the day of trouble they -shall be against her round about. - -51:3 Against him that bendeth let the archer bend his bow, and against -him that lifteth himself up in his brigandine: and spare ye not her -young men; destroy ye utterly all her host. - -51:4 Thus the slain shall fall in the land of the Chaldeans, and they -that are thrust through in her streets. - -51:5 For Israel hath not been forsaken, nor Judah of his God, of the -LORD of hosts; though their land was filled with sin against the Holy -One of Israel. - -51:6 Flee out of the midst of Babylon, and deliver every man his soul: -be not cut off in her iniquity; for this is the time of the LORD's -vengeance; he will render unto her a recompence. - -51:7 Babylon hath been a golden cup in the LORD's hand, that made all -the earth drunken: the nations have drunken of her wine; therefore the -nations are mad. - -51:8 Babylon is suddenly fallen and destroyed: howl for her; take balm -for her pain, if so be she may be healed. - -51:9 We would have healed Babylon, but she is not healed: forsake her, -and let us go every one into his own country: for her judgment -reacheth unto heaven, and is lifted up even to the skies. - -51:10 The LORD hath brought forth our righteousness: come, and let us -declare in Zion the work of the LORD our God. - -51:11 Make bright the arrows; gather the shields: the LORD hath raised -up the spirit of the kings of the Medes: for his device is against -Babylon, to destroy it; because it is the vengeance of the LORD, the -vengeance of his temple. - -51:12 Set up the standard upon the walls of Babylon, make the watch -strong, set up the watchmen, prepare the ambushes: for the LORD hath -both devised and done that which he spake against the inhabitants of -Babylon. - -51:13 O thou that dwellest upon many waters, abundant in treasures, -thine end is come, and the measure of thy covetousness. - -51:14 The LORD of hosts hath sworn by himself, saying, Surely I will -fill thee with men, as with caterpillers; and they shall lift up a -shout against thee. - -51:15 He hath made the earth by his power, he hath established the -world by his wisdom, and hath stretched out the heaven by his -understanding. - -51:16 When he uttereth his voice, there is a multitude of waters in -the heavens; and he causeth the vapours to ascend from the ends of the -earth: he maketh lightnings with rain, and bringeth forth the wind out -of his treasures. - -51:17 Every man is brutish by his knowledge; every founder is -confounded by the graven image: for his molten image is falsehood, and -there is no breath in them. - -51:18 They are vanity, the work of errors: in the time of their -visitation they shall perish. - -51:19 The portion of Jacob is not like them; for he is the former of -all things: and Israel is the rod of his inheritance: the LORD of -hosts is his name. - -51:20 Thou art my battle axe and weapons of war: for with thee will I -break in pieces the nations, and with thee will I destroy kingdoms; -51:21 And with thee will I break in pieces the horse and his rider; -and with thee will I break in pieces the chariot and his rider; 51:22 -With thee also will I break in pieces man and woman; and with thee -will I break in pieces old and young; and with thee will I break in -pieces the young man and the maid; 51:23 I will also break in pieces -with thee the shepherd and his flock; and with thee will I break in -pieces the husbandman and his yoke of oxen; and with thee will I break -in pieces captains and rulers. - -51:24 And I will render unto Babylon and to all the inhabitants of -Chaldea all their evil that they have done in Zion in your sight, -saith the LORD. - -51:25 Behold, I am against thee, O destroying mountain, saith the -LORD, which destroyest all the earth: and I will stretch out mine hand -upon thee, and roll thee down from the rocks, and will make thee a -burnt mountain. - -51:26 And they shall not take of thee a stone for a corner, nor a -stone for foundations; but thou shalt be desolate for ever, saith the -LORD. - -51:27 Set ye up a standard in the land, blow the trumpet among the -nations, prepare the nations against her, call together against her -the kingdoms of Ararat, Minni, and Ashchenaz; appoint a captain -against her; cause the horses to come up as the rough caterpillers. - -51:28 Prepare against her the nations with the kings of the Medes, the -captains thereof, and all the rulers thereof, and all the land of his -dominion. - -51:29 And the land shall tremble and sorrow: for every purpose of the -LORD shall be performed against Babylon, to make the land of Babylon a -desolation without an inhabitant. - -51:30 The mighty men of Babylon have forborn to fight, they have -remained in their holds: their might hath failed; they became as -women: they have burned her dwellingplaces; her bars are broken. - -51:31 One post shall run to meet another, and one messenger to meet -another, to shew the king of Babylon that his city is taken at one -end, 51:32 And that the passages are stopped, and the reeds they have -burned with fire, and the men of war are affrighted. - -51:33 For thus saith the LORD of hosts, the God of Israel; The -daughter of Babylon is like a threshingfloor, it is time to thresh -her: yet a little while, and the time of her harvest shall come. - -51:34 Nebuchadrezzar the king of Babylon hath devoured me, he hath -crushed me, he hath made me an empty vessel, he hath swallowed me up -like a dragon, he hath filled his belly with my delicates, he hath -cast me out. - -51:35 The violence done to me and to my flesh be upon Babylon, shall -the inhabitant of Zion say; and my blood upon the inhabitants of -Chaldea, shall Jerusalem say. - -51:36 Therefore thus saith the LORD; Behold, I will plead thy cause, -and take vengeance for thee; and I will dry up her sea, and make her -springs dry. - -51:37 And Babylon shall become heaps, a dwellingplace for dragons, an -astonishment, and an hissing, without an inhabitant. - -51:38 They shall roar together like lions: they shall yell as lions' -whelps. - -51:39 In their heat I will make their feasts, and I will make them -drunken, that they may rejoice, and sleep a perpetual sleep, and not -wake, saith the LORD. - -51:40 I will bring them down like lambs to the slaughter, like rams -with he goats. - -51:41 How is Sheshach taken! and how is the praise of the whole earth -surprised! how is Babylon become an astonishment among the nations! -51:42 The sea is come up upon Babylon: she is covered with the -multitude of the waves thereof. - -51:43 Her cities are a desolation, a dry land, and a wilderness, a -land wherein no man dwelleth, neither doth any son of man pass -thereby. - -51:44 And I will punish Bel in Babylon, and I will bring forth out of -his mouth that which he hath swallowed up: and the nations shall not -flow together any more unto him: yea, the wall of Babylon shall fall. - -51:45 My people, go ye out of the midst of her, and deliver ye every -man his soul from the fierce anger of the LORD. - -51:46 And lest your heart faint, and ye fear for the rumour that shall -be heard in the land; a rumour shall both come one year, and after -that in another year shall come a rumour, and violence in the land, -ruler against ruler. - -51:47 Therefore, behold, the days come, that I will do judgment upon -the graven images of Babylon: and her whole land shall be confounded, -and all her slain shall fall in the midst of her. - -51:48 Then the heaven and the earth, and all that is therein, shall -sing for Babylon: for the spoilers shall come unto her from the north, -saith the LORD. - -51:49 As Babylon hath caused the slain of Israel to fall, so at -Babylon shall fall the slain of all the earth. - -51:50 Ye that have escaped the sword, go away, stand not still: -remember the LORD afar off, and let Jerusalem come into your mind. - -51:51 We are confounded, because we have heard reproach: shame hath -covered our faces: for strangers are come into the sanctuaries of the -LORD's house. - -51:52 Wherefore, behold, the days come, saith the LORD, that I will do -judgment upon her graven images: and through all her land the wounded -shall groan. - -51:53 Though Babylon should mount up to heaven, and though she should -fortify the height of her strength, yet from me shall spoilers come -unto her, saith the LORD. - -51:54 A sound of a cry cometh from Babylon, and great destruction from -the land of the Chaldeans: 51:55 Because the LORD hath spoiled -Babylon, and destroyed out of her the great voice; when her waves do -roar like great waters, a noise of their voice is uttered: 51:56 -Because the spoiler is come upon her, even upon Babylon, and her -mighty men are taken, every one of their bows is broken: for the LORD -God of recompences shall surely requite. - -51:57 And I will make drunk her princes, and her wise men, her -captains, and her rulers, and her mighty men: and they shall sleep a -perpetual sleep, and not wake, saith the King, whose name is the LORD -of hosts. - -51:58 Thus saith the LORD of hosts; The broad walls of Babylon shall -be utterly broken, and her high gates shall be burned with fire; and -the people shall labour in vain, and the folk in the fire, and they -shall be weary. - -51:59 The word which Jeremiah the prophet commanded Seraiah the son of -Neriah, the son of Maaseiah, when he went with Zedekiah the king of -Judah into Babylon in the fourth year of his reign. And this Seraiah -was a quiet prince. - -51:60 So Jeremiah wrote in a book all the evil that should come upon -Babylon, even all these words that are written against Babylon. - -51:61 And Jeremiah said to Seraiah, When thou comest to Babylon, and -shalt see, and shalt read all these words; 51:62 Then shalt thou say, -O LORD, thou hast spoken against this place, to cut it off, that none -shall remain in it, neither man nor beast, but that it shall be -desolate for ever. - -51:63 And it shall be, when thou hast made an end of reading this -book, that thou shalt bind a stone to it, and cast it into the midst -of Euphrates: 51:64 And thou shalt say, Thus shall Babylon sink, and -shall not rise from the evil that I will bring upon her: and they -shall be weary. Thus far are the words of Jeremiah. - -52:1 Zedekiah was one and twenty years old when he began to reign, and -he reigned eleven years in Jerusalem. And his mother's name was -Hamutal the daughter of Jeremiah of Libnah. - -52:2 And he did that which was evil in the eyes of the LORD, according -to all that Jehoiakim had done. - -52:3 For through the anger of the LORD it came to pass in Jerusalem -and Judah, till he had cast them out from his presence, that Zedekiah -rebelled against the king of Babylon. - -52:4 And it came to pass in the ninth year of his reign, in the tenth -month, in the tenth day of the month, that Nebuchadrezzar king of -Babylon came, he and all his army, against Jerusalem, and pitched -against it, and built forts against it round about. - -52:5 So the city was besieged unto the eleventh year of king Zedekiah. - -52:6 And in the fourth month, in the ninth day of the month, the -famine was sore in the city, so that there was no bread for the people -of the land. - -52:7 Then the city was broken up, and all the men of war fled, and -went forth out of the city by night by the way of the gate between the -two walls, which was by the king's garden; (now the Chaldeans were by -the city round about:) and they went by the way of the plain. - -52:8 But the army of the Chaldeans pursued after the king, and -overtook Zedekiah in the plains of Jericho; and all his army was -scattered from him. - -52:9 Then they took the king, and carried him up unto the king of -Babylon to Riblah in the land of Hamath; where he gave judgment upon -him. - -52:10 And the king of Babylon slew the sons of Zedekiah before his -eyes: he slew also all the princes of Judah in Riblah. - -52:11 Then he put out the eyes of Zedekiah; and the king of Babylon -bound him in chains, and carried him to Babylon, and put him in prison -till the day of his death. - -52:12 Now in the fifth month, in the tenth day of the month, which was -the nineteenth year of Nebuchadrezzar king of Babylon, came -Nebuzaradan, captain of the guard, which served the king of Babylon, -into Jerusalem, 52:13 And burned the house of the LORD, and the king's -house; and all the houses of Jerusalem, and all the houses of the -great men, burned he with fire: 52:14 And all the army of the -Chaldeans, that were with the captain of the guard, brake down all the -walls of Jerusalem round about. - -52:15 Then Nebuzaradan the captain of the guard carried away captive -certain of the poor of the people, and the residue of the people that -remained in the city, and those that fell away, that fell to the king -of Babylon, and the rest of the multitude. - -52:16 But Nebuzaradan the captain of the guard left certain of the -poor of the land for vinedressers and for husbandmen. - -52:17 Also the pillars of brass that were in the house of the LORD, -and the bases, and the brasen sea that was in the house of the LORD, -the Chaldeans brake, and carried all the brass of them to Babylon. - -52:18 The caldrons also, and the shovels, and the snuffers, and the -bowls, and the spoons, and all the vessels of brass wherewith they -ministered, took they away. - -52:19 And the basons, and the firepans, and the bowls, and the -caldrons, and the candlesticks, and the spoons, and the cups; that -which was of gold in gold, and that which was of silver in silver, -took the captain of the guard away. - -52:20 The two pillars, one sea, and twelve brasen bulls that were -under the bases, which king Solomon had made in the house of the LORD: -the brass of all these vessels was without weight. - -52:21 And concerning the pillars, the height of one pillar was -eighteen cubits; and a fillet of twelve cubits did compass it; and the -thickness thereof was four fingers: it was hollow. - -52:22 And a chapiter of brass was upon it; and the height of one -chapiter was five cubits, with network and pomegranates upon the -chapiters round about, all of brass. The second pillar also and the -pomegranates were like unto these. - -52:23 And there were ninety and six pomegranates on a side; and all -the pomegranates upon the network were an hundred round about. - -52:24 And the captain of the guard took Seraiah the chief priest, and -Zephaniah the second priest, and the three keepers of the door: 52:25 -He took also out of the city an eunuch, which had the charge of the -men of war; and seven men of them that were near the king's person, -which were found in the city; and the principal scribe of the host, -who mustered the people of the land; and threescore men of the people -of the land, that were found in the midst of the city. - -52:26 So Nebuzaradan the captain of the guard took them, and brought -them to the king of Babylon to Riblah. - -52:27 And the king of Babylon smote them, and put them to death in -Riblah in the land of Hamath. Thus Judah was carried away captive out -of his own land. - -52:28 This is the people whom Nebuchadrezzar carried away captive: in -the seventh year three thousand Jews and three and twenty: 52:29 In -the eighteenth year of Nebuchadrezzar he carried away captive from -Jerusalem eight hundred thirty and two persons: 52:30 In the three and -twentieth year of Nebuchadrezzar Nebuzaradan the captain of the guard -carried away captive of the Jews seven hundred forty and five persons: -all the persons were four thousand and six hundred. - -52:31 And it came to pass in the seven and thirtieth year of the -captivity of Jehoiachin king of Judah, in the twelfth month, in the -five and twentieth day of the month, that Evilmerodach king of Babylon -in the first year of his reign lifted up the head of Jehoiachin king -of Judah, and brought him forth out of prison. - -52:32 And spake kindly unto him, and set his throne above the throne -of the kings that were with him in Babylon, 52:33 And changed his -prison garments: and he did continually eat bread before him all the -days of his life. - -52:34 And for his diet, there was a continual diet given him of the -king of Babylon, every day a portion until the day of his death, all -the days of his life. - - - - -The Lamentations of Jeremiah - - -1:1 How doth the city sit solitary, that was full of people! how is -she become as a widow! she that was great among the nations, and -princess among the provinces, how is she become tributary! 1:2 She -weepeth sore in the night, and her tears are on her cheeks: among all -her lovers she hath none to comfort her: all her friends have dealt -treacherously with her, they are become her enemies. - -1:3 Judah is gone into captivity because of affliction, and because of -great servitude: she dwelleth among the heathen, she findeth no rest: -all her persecutors overtook her between the straits. - -1:4 The ways of Zion do mourn, because none come to the solemn feasts: -all her gates are desolate: her priests sigh, her virgins are -afflicted, and she is in bitterness. - -1:5 Her adversaries are the chief, her enemies prosper; for the LORD -hath afflicted her for the multitude of her transgressions: her -children are gone into captivity before the enemy. - -1:6 And from the daughter of Zion all her beauty is departed: her -princes are become like harts that find no pasture, and they are gone -without strength before the pursuer. - -1:7 Jerusalem remembered in the days of her affliction and of her -miseries all her pleasant things that she had in the days of old, when -her people fell into the hand of the enemy, and none did help her: the -adversaries saw her, and did mock at her sabbaths. - -1:8 Jerusalem hath grievously sinned; therefore she is removed: all -that honoured her despise her, because they have seen her nakedness: -yea, she sigheth, and turneth backward. - -1:9 Her filthiness is in her skirts; she remembereth not her last end; -therefore she came down wonderfully: she had no comforter. O LORD, -behold my affliction: for the enemy hath magnified himself. - -1:10 The adversary hath spread out his hand upon all her pleasant -things: for she hath seen that the heathen entered into her sanctuary, -whom thou didst command that they should not enter into thy -congregation. - -1:11 All her people sigh, they seek bread; they have given their -pleasant things for meat to relieve the soul: see, O LORD, and -consider; for I am become vile. - -1:12 Is it nothing to you, all ye that pass by? behold, and see if -there be any sorrow like unto my sorrow, which is done unto me, -wherewith the LORD hath afflicted me in the day of his fierce anger. - -1:13 From above hath he sent fire into my bones, and it prevaileth -against them: he hath spread a net for my feet, he hath turned me -back: he hath made me desolate and faint all the day. - -1:14 The yoke of my transgressions is bound by his hand: they are -wreathed, and come up upon my neck: he hath made my strength to fall, -the LORD hath delivered me into their hands, from whom I am not able -to rise up. - -1:15 The LORD hath trodden under foot all my mighty men in the midst -of me: he hath called an assembly against me to crush my young men: -the LORD hath trodden the virgin, the daughter of Judah, as in a -winepress. - -1:16 For these things I weep; mine eye, mine eye runneth down with -water, because the comforter that should relieve my soul is far from -me: my children are desolate, because the enemy prevailed. - -1:17 Zion spreadeth forth her hands, and there is none to comfort her: -the LORD hath commanded concerning Jacob, that his adversaries should -be round about him: Jerusalem is as a menstruous woman among them. - -1:18 The LORD is righteous; for I have rebelled against his -commandment: hear, I pray you, all people, and behold my sorrow: my -virgins and my young men are gone into captivity. - -1:19 I called for my lovers, but they deceived me: my priests and mine -elders gave up the ghost in the city, while they sought their meat to -relieve their souls. - -1:20 Behold, O LORD; for I am in distress: my bowels are troubled; -mine heart is turned within me; for I have grievously rebelled: abroad -the sword bereaveth, at home there is as death. - -1:21 They have heard that I sigh: there is none to comfort me: all -mine enemies have heard of my trouble; they are glad that thou hast -done it: thou wilt bring the day that thou hast called, and they shall -be like unto me. - -1:22 Let all their wickedness come before thee; and do unto them, as -thou hast done unto me for all my transgressions: for my sighs are -many, and my heart is faint. - -2:1 How hath the LORD covered the daughter of Zion with a cloud in his -anger, and cast down from heaven unto the earth the beauty of Israel, -and remembered not his footstool in the day of his anger! 2:2 The -LORD hath swallowed up all the habitations of Jacob, and hath not -pitied: he hath thrown down in his wrath the strong holds of the -daughter of Judah; he hath brought them down to the ground: he hath -polluted the kingdom and the princes thereof. - -2:3 He hath cut off in his fierce anger all the horn of Israel: he -hath drawn back his right hand from before the enemy, and he burned -against Jacob like a flaming fire, which devoureth round about. - -2:4 He hath bent his bow like an enemy: he stood with his right hand -as an adversary, and slew all that were pleasant to the eye in the -tabernacle of the daughter of Zion: he poured out his fury like fire. - -2:5 The LORD was as an enemy: he hath swallowed up Israel, he hath -swallowed up all her palaces: he hath destroyed his strong holds, and -hath increased in the daughter of Judah mourning and lamentation. - -2:6 And he hath violently taken away his tabernacle, as if it were of -a garden: he hath destroyed his places of the assembly: the LORD hath -caused the solemn feasts and sabbaths to be forgotten in Zion, and -hath despised in the indignation of his anger the king and the priest. - -2:7 The LORD hath cast off his altar, he hath abhorred his sanctuary, -he hath given up into the hand of the enemy the walls of her palaces; -they have made a noise in the house of the LORD, as in the day of a -solemn feast. - -2:8 The LORD hath purposed to destroy the wall of the daughter of -Zion: he hath stretched out a line, he hath not withdrawn his hand -from destroying: therefore he made the rampart and the wall to lament; -they languished together. - -2:9 Her gates are sunk into the ground; he hath destroyed and broken -her bars: her king and her princes are among the Gentiles: the law is -no more; her prophets also find no vision from the LORD. - -2:10 The elders of the daughter of Zion sit upon the ground, and keep -silence: they have cast up dust upon their heads; they have girded -themselves with sackcloth: the virgins of Jerusalem hang down their -heads to the ground. - -2:11 Mine eyes do fail with tears, my bowels are troubled, my liver is -poured upon the earth, for the destruction of the daughter of my -people; because the children and the sucklings swoon in the streets of -the city. - -2:12 They say to their mothers, Where is corn and wine? when they -swooned as the wounded in the streets of the city, when their soul was -poured out into their mothers' bosom. - -2:13 What thing shall I take to witness for thee? what thing shall I -liken to thee, O daughter of Jerusalem? what shall I equal to thee, -that I may comfort thee, O virgin daughter of Zion? for thy breach is -great like the sea: who can heal thee? 2:14 Thy prophets have seen -vain and foolish things for thee: and they have not discovered thine -iniquity, to turn away thy captivity; but have seen for thee false -burdens and causes of banishment. - -2:15 All that pass by clap their hands at thee; they hiss and wag -their head at the daughter of Jerusalem, saying, Is this the city that -men call The perfection of beauty, The joy of the whole earth? 2:16 -All thine enemies have opened their mouth against thee: they hiss and -gnash the teeth: they say, We have swallowed her up: certainly this is -the day that we looked for; we have found, we have seen it. - -2:17 The LORD hath done that which he had devised; he hath fulfilled -his word that he had commanded in the days of old: he hath thrown -down, and hath not pitied: and he hath caused thine enemy to rejoice -over thee, he hath set up the horn of thine adversaries. - -2:18 Their heart cried unto the LORD, O wall of the daughter of Zion, -let tears run down like a river day and night: give thyself no rest; -let not the apple of thine eye cease. - -2:19 Arise, cry out in the night: in the beginning of the watches pour -out thine heart like water before the face of the LORD: lift up thy -hands toward him for the life of thy young children, that faint for -hunger in the top of every street. - -2:20 Behold, O LORD, and consider to whom thou hast done this. Shall -the women eat their fruit, and children of a span long? shall the -priest and the prophet be slain in the sanctuary of the Lord? 2:21 -The young and the old lie on the ground in the streets: my virgins and -my young men are fallen by the sword; thou hast slain them in the day -of thine anger; thou hast killed, and not pitied. - -2:22 Thou hast called as in a solemn day my terrors round about, so -that in the day of the LORD's anger none escaped nor remained: those -that I have swaddled and brought up hath mine enemy consumed. - -3:1 I AM the man that hath seen affliction by the rod of his wrath. - -3:2 He hath led me, and brought me into darkness, but not into light. - -3:3 Surely against me is he turned; he turneth his hand against me all -the day. - -3:4 My flesh and my skin hath he made old; he hath broken my bones. - -3:5 He hath builded against me, and compassed me with gall and -travail. - -3:6 He hath set me in dark places, as they that be dead of old. - -3:7 He hath hedged me about, that I cannot get out: he hath made my -chain heavy. - -3:8 Also when I cry and shout, he shutteth out my prayer. - -3:9 He hath inclosed my ways with hewn stone, he hath made my paths -crooked. - -3:10 He was unto me as a bear lying in wait, and as a lion in secret -places. - -3:11 He hath turned aside my ways, and pulled me in pieces: he hath -made me desolate. - -3:12 He hath bent his bow, and set me as a mark for the arrow. - -3:13 He hath caused the arrows of his quiver to enter into my reins. - -3:14 I was a derision to all my people; and their song all the day. - -3:15 He hath filled me with bitterness, he hath made me drunken with -wormwood. - -3:16 He hath also broken my teeth with gravel stones, he hath covered -me with ashes. - -3:17 And thou hast removed my soul far off from peace: I forgat -prosperity. - -3:18 And I said, My strength and my hope is perished from the LORD: -3:19 Remembering mine affliction and my misery, the wormwood and the -gall. - -3:20 My soul hath them still in remembrance, and is humbled in me. - -3:21 This I recall to my mind, therefore have I hope. - -3:22 It is of the LORD's mercies that we are not consumed, because his -compassions fail not. - -3:23 They are new every morning: great is thy faithfulness. - -3:24 The LORD is my portion, saith my soul; therefore will I hope in -him. - -3:25 The LORD is good unto them that wait for him, to the soul that -seeketh him. - -3:26 It is good that a man should both hope and quietly wait for the -salvation of the LORD. - -3:27 It is good for a man that he bear the yoke of his youth. - -3:28 He sitteth alone and keepeth silence, because he hath borne it -upon him. - -3:29 He putteth his mouth in the dust; if so be there may be hope. - -3:30 He giveth his cheek to him that smiteth him: he is filled full -with reproach. - -3:31 For the LORD will not cast off for ever: 3:32 But though he cause -grief, yet will he have compassion according to the multitude of his -mercies. - -3:33 For he doth not afflict willingly nor grieve the children of men. - -3:34 To crush under his feet all the prisoners of the earth. - -3:35 To turn aside the right of a man before the face of the most -High, 3:36 To subvert a man in his cause, the LORD approveth not. - -3:37 Who is he that saith, and it cometh to pass, when the Lord -commandeth it not? 3:38 Out of the mouth of the most High proceedeth -not evil and good? 3:39 Wherefore doth a living man complain, a man -for the punishment of his sins? 3:40 Let us search and try our ways, -and turn again to the LORD. - -3:41 Let us lift up our heart with our hands unto God in the heavens. - -3:42 We have transgressed and have rebelled: thou hast not pardoned. - -3:43 Thou hast covered with anger, and persecuted us: thou hast slain, -thou hast not pitied. - -3:44 Thou hast covered thyself with a cloud, that our prayer should -not pass through. - -3:45 Thou hast made us as the offscouring and refuse in the midst of -the people. - -3:46 All our enemies have opened their mouths against us. - -3:47 Fear and a snare is come upon us, desolation and destruction. - -3:48 Mine eye runneth down with rivers of water for the destruction of -the daughter of my people. - -3:49 Mine eye trickleth down, and ceaseth not, without any -intermission. - -3:50 Till the LORD look down, and behold from heaven. - -3:51 Mine eye affecteth mine heart because of all the daughters of my -city. - -3:52 Mine enemies chased me sore, like a bird, without cause. - -3:53 They have cut off my life in the dungeon, and cast a stone upon -me. - -3:54 Waters flowed over mine head; then I said, I am cut off. - -3:55 I called upon thy name, O LORD, out of the low dungeon. - -3:56 Thou hast heard my voice: hide not thine ear at my breathing, at -my cry. - -3:57 Thou drewest near in the day that I called upon thee: thou -saidst, Fear not. - -3:58 O LORD, thou hast pleaded the causes of my soul; thou hast -redeemed my life. - -3:59 O LORD, thou hast seen my wrong: judge thou my cause. - -3:60 Thou hast seen all their vengeance and all their imaginations -against me. - -3:61 Thou hast heard their reproach, O LORD, and all their -imaginations against me; 3:62 The lips of those that rose up against -me, and their device against me all the day. - -3:63 Behold their sitting down, and their rising up; I am their -musick. - -3:64 Render unto them a recompence, O LORD, according to the work of -their hands. - -3:65 Give them sorrow of heart, thy curse unto them. - -3:66 Persecute and destroy them in anger from under the heavens of the -LORD. - -4:1 How is the gold become dim! how is the most fine gold changed! the -stones of the sanctuary are poured out in the top of every street. - -4:2 The precious sons of Zion, comparable to fine gold, how are they -esteemed as earthen pitchers, the work of the hands of the potter! -4:3 Even the sea monsters draw out the breast, they give suck to their -young ones: the daughter of my people is become cruel, like the -ostriches in the wilderness. - -4:4 The tongue of the sucking child cleaveth to the roof of his mouth -for thirst: the young children ask bread, and no man breaketh it unto -them. - -4:5 They that did feed delicately are desolate in the streets: they -that were brought up in scarlet embrace dunghills. - -4:6 For the punishment of the iniquity of the daughter of my people is -greater than the punishment of the sin of Sodom, that was overthrown -as in a moment, and no hands stayed on her. - -4:7 Her Nazarites were purer than snow, they were whiter than milk, -they were more ruddy in body than rubies, their polishing was of -sapphire: 4:8 Their visage is blacker than a coal; they are not known -in the streets: their skin cleaveth to their bones; it is withered, it -is become like a stick. - -4:9 They that be slain with the sword are better than they that be -slain with hunger: for these pine away, stricken through for want of -the fruits of the field. - -4:10 The hands of the pitiful women have sodden their own children: -they were their meat in the destruction of the daughter of my people. - -4:11 The LORD hath accomplished his fury; he hath poured out his -fierce anger, and hath kindled a fire in Zion, and it hath devoured -the foundations thereof. - -4:12 The kings of the earth, and all the inhabitants of the world, -would not have believed that the adversary and the enemy should have -entered into the gates of Jerusalem. - -4:13 For the sins of her prophets, and the iniquities of her priests, -that have shed the blood of the just in the midst of her, 4:14 They -have wandered as blind men in the streets, they have polluted -themselves with blood, so that men could not touch their garments. - -4:15 They cried unto them, Depart ye; it is unclean; depart, depart, -touch not: when they fled away and wandered, they said among the -heathen, They shall no more sojourn there. - -4:16 The anger of the LORD hath divided them; he will no more regard -them: they respected not the persons of the priests, they favoured not -the elders. - -4:17 As for us, our eyes as yet failed for our vain help: in our -watching we have watched for a nation that could not save us. - -4:18 They hunt our steps, that we cannot go in our streets: our end is -near, our days are fulfilled; for our end is come. - -4:19 Our persecutors are swifter than the eagles of the heaven: they -pursued us upon the mountains, they laid wait for us in the -wilderness. - -4:20 The breath of our nostrils, the anointed of the LORD, was taken -in their pits, of whom we said, Under his shadow we shall live among -the heathen. - -4:21 Rejoice and be glad, O daughter of Edom, that dwellest in the -land of Uz; the cup also shall pass through unto thee: thou shalt be -drunken, and shalt make thyself naked. - -4:22 The punishment of thine iniquity is accomplished, O daughter of -Zion; he will no more carry thee away into captivity: he will visit -thine iniquity, O daughter of Edom; he will discover thy sins. - -5:1 Remember, O LORD, what is come upon us: consider, and behold our -reproach. - -5:2 Our inheritance is turned to strangers, our houses to aliens. - -5:3 We are orphans and fatherless, our mothers are as widows. - -5:4 We have drunken our water for money; our wood is sold unto us. - -5:5 Our necks are under persecution: we labour, and have no rest. - -5:6 We have given the hand to the Egyptians, and to the Assyrians, to -be satisfied with bread. - -5:7 Our fathers have sinned, and are not; and we have borne their -iniquities. - -5:8 Servants have ruled over us: there is none that doth deliver us -out of their hand. - -5:9 We gat our bread with the peril of our lives because of the sword -of the wilderness. - -5:10 Our skin was black like an oven because of the terrible famine. - -5:11 They ravished the women in Zion, and the maids in the cities of -Judah. - -5:12 Princes are hanged up by their hand: the faces of elders were not -honoured. - -5:13 They took the young men to grind, and the children fell under the -wood. - -5:14 The elders have ceased from the gate, the young men from their -musick. - -5:15 The joy of our heart is ceased; our dance is turned into -mourning. - -5:16 The crown is fallen from our head: woe unto us, that we have -sinned! 5:17 For this our heart is faint; for these things our eyes -are dim. - -5:18 Because of the mountain of Zion, which is desolate, the foxes -walk upon it. - -5:19 Thou, O LORD, remainest for ever; thy throne from generation to -generation. - -5:20 Wherefore dost thou forget us for ever, and forsake us so long -time? 5:21 Turn thou us unto thee, O LORD, and we shall be turned; -renew our days as of old. - -5:22 But thou hast utterly rejected us; thou art very wroth against us. - - - - -The Book of the Prophet Ezekiel - - -1:1 Now it came to pass in the thirtieth year, in the fourth month, -in the fifth day of the month, as I was among the captives by the river -of Chebar, that the heavens were opened, and I saw visions of God. - -1:2 In the fifth day of the month, which was the fifth year of king -Jehoiachin's captivity, 1:3 The word of the LORD came expressly unto -Ezekiel the priest, the son of Buzi, in the land of the Chaldeans by -the river Chebar; and the hand of the LORD was there upon him. - -1:4 And I looked, and, behold, a whirlwind came out of the north, a -great cloud, and a fire infolding itself, and a brightness was about -it, and out of the midst thereof as the colour of amber, out of the -midst of the fire. - -1:5 Also out of the midst thereof came the likeness of four living -creatures. And this was their appearance; they had the likeness of a -man. - -1:6 And every one had four faces, and every one had four wings. - -1:7 And their feet were straight feet; and the sole of their feet was -like the sole of a calf's foot: and they sparkled like the colour of -burnished brass. - -1:8 And they had the hands of a man under their wings on their four -sides; and they four had their faces and their wings. - -1:9 Their wings were joined one to another; they turned not when they -went; they went every one straight forward. - -1:10 As for the likeness of their faces, they four had the face of a -man, and the face of a lion, on the right side: and they four had the -face of an ox on the left side; they four also had the face of an -eagle. - -1:11 Thus were their faces: and their wings were stretched upward; two -wings of every one were joined one to another, and two covered their -bodies. - -1:12 And they went every one straight forward: whither the spirit was -to go, they went; and they turned not when they went. - -1:13 As for the likeness of the living creatures, their appearance was -like burning coals of fire, and like the appearance of lamps: it went -up and down among the living creatures; and the fire was bright, and -out of the fire went forth lightning. - -1:14 And the living creatures ran and returned as the appearance of a -flash of lightning. - -1:15 Now as I beheld the living creatures, behold one wheel upon the -earth by the living creatures, with his four faces. - -1:16 The appearance of the wheels and their work was like unto the -colour of a beryl: and they four had one likeness: and their -appearance and their work was as it were a wheel in the middle of a -wheel. - -1:17 When they went, they went upon their four sides: and they turned -not when they went. - -1:18 As for their rings, they were so high that they were dreadful; -and their rings were full of eyes round about them four. - -1:19 And when the living creatures went, the wheels went by them: and -when the living creatures were lifted up from the earth, the wheels -were lifted up. - -1:20 Whithersoever the spirit was to go, they went, thither was their -spirit to go; and the wheels were lifted up over against them: for the -spirit of the living creature was in the wheels. - -1:21 When those went, these went; and when those stood, these stood; -and when those were lifted up from the earth, the wheels were lifted -up over against them: for the spirit of the living creature was in the -wheels. - -1:22 And the likeness of the firmament upon the heads of the living -creature was as the colour of the terrible crystal, stretched forth -over their heads above. - -1:23 And under the firmament were their wings straight, the one toward -the other: every one had two, which covered on this side, and every -one had two, which covered on that side, their bodies. - -1:24 And when they went, I heard the noise of their wings, like the -noise of great waters, as the voice of the Almighty, the voice of -speech, as the noise of an host: when they stood, they let down their -wings. - -1:25 And there was a voice from the firmament that was over their -heads, when they stood, and had let down their wings. - -1:26 And above the firmament that was over their heads was the -likeness of a throne, as the appearance of a sapphire stone: and upon -the likeness of the throne was the likeness as the appearance of a man -above upon it. - -1:27 And I saw as the colour of amber, as the appearance of fire round -about within it, from the appearance of his loins even upward, and -from the appearance of his loins even downward, I saw as it were the -appearance of fire, and it had brightness round about. - -1:28 As the appearance of the bow that is in the cloud in the day of -rain, so was the appearance of the brightness round about. This was -the appearance of the likeness of the glory of the LORD. And when I -saw it, I fell upon my face, and I heard a voice of one that spake. - -2:1 And he said unto me, Son of man, stand upon thy feet, and I will -speak unto thee. - -2:2 And the spirit entered into me when he spake unto me, and set me -upon my feet, that I heard him that spake unto me. - -2:3 And he said unto me, Son of man, I send thee to the children of -Israel, to a rebellious nation that hath rebelled against me: they and -their fathers have transgressed against me, even unto this very day. - -2:4 For they are impudent children and stiffhearted. I do send thee -unto them; and thou shalt say unto them, Thus saith the Lord GOD. - -2:5 And they, whether they will hear, or whether they will forbear, -(for they are a rebellious house,) yet shall know that there hath been -a prophet among them. - -2:6 And thou, son of man, be not afraid of them, neither be afraid of -their words, though briers and thorns be with thee, and thou dost -dwell among scorpions: be not afraid of their words, nor be dismayed -at their looks, though they be a rebellious house. - -2:7 And thou shalt speak my words unto them, whether they will hear, -or whether they will forbear: for they are most rebellious. - -2:8 But thou, son of man, hear what I say unto thee; Be not thou -rebellious like that rebellious house: open thy mouth, and eat that I -give thee. - -2:9 And when I looked, behold, an hand was sent unto me; and, lo, a -roll of a book was therein; 2:10 And he spread it before me; and it -was written within and without: and there was written therein -lamentations, and mourning, and woe. - -3:1 Moreover he said unto me, Son of man, eat that thou findest; eat -this roll, and go speak unto the house of Israel. - -3:2 So I opened my mouth, and he caused me to eat that roll. - -3:3 And he said unto me, Son of man, cause thy belly to eat, and fill -thy bowels with this roll that I give thee. Then did I eat it; and it -was in my mouth as honey for sweetness. - -3:4 And he said unto me, Son of man, go, get thee unto the house of -Israel, and speak with my words unto them. - -3:5 For thou art not sent to a people of a strange speech and of an -hard language, but to the house of Israel; 3:6 Not to many people of a -strange speech and of an hard language, whose words thou canst not -understand. Surely, had I sent thee to them, they would have hearkened -unto thee. - -3:7 But the house of Israel will not hearken unto thee; for they will -not hearken unto me: for all the house of Israel are impudent and -hardhearted. - -3:8 Behold, I have made thy face strong against their faces, and thy -forehead strong against their foreheads. - -3:9 As an adamant harder than flint have I made thy forehead: fear -them not, neither be dismayed at their looks, though they be a -rebellious house. - -3:10 Moreover he said unto me, Son of man, all my words that I shall -speak unto thee receive in thine heart, and hear with thine ears. - -3:11 And go, get thee to them of the captivity, unto the children of -thy people, and speak unto them, and tell them, Thus saith the Lord -GOD; whether they will hear, or whether they will forbear. - -3:12 Then the spirit took me up, and I heard behind me a voice of a -great rushing, saying, Blessed be the glory of the LORD from his -place. - -3:13 I heard also the noise of the wings of the living creatures that -touched one another, and the noise of the wheels over against them, -and a noise of a great rushing. - -3:14 So the spirit lifted me up, and took me away, and I went in -bitterness, in the heat of my spirit; but the hand of the LORD was -strong upon me. - -3:15 Then I came to them of the captivity at Telabib, that dwelt by -the river of Chebar, and I sat where they sat, and remained there -astonished among them seven days. - -3:16 And it came to pass at the end of seven days, that the word of -the LORD came unto me, saying, 3:17 Son of man, I have made thee a -watchman unto the house of Israel: therefore hear the word at my -mouth, and give them warning from me. - -3:18 When I say unto the wicked, Thou shalt surely die; and thou -givest him not warning, nor speakest to warn the wicked from his -wicked way, to save his life; the same wicked man shall die in his -iniquity; but his blood will I require at thine hand. - -3:19 Yet if thou warn the wicked, and he turn not from his wickedness, -nor from his wicked way, he shall die in his iniquity; but thou hast -delivered thy soul. - -3:20 Again, When a righteous man doth turn from his righteousness, and -commit iniquity, and I lay a stumbling-block before him, he shall die: -because thou hast not given him warning, he shall die in his sin, and -his righteousness which he hath done shall not be remembered; but his -blood will I require at thine hand. - -3:21 Nevertheless if thou warn the righteous man, that the righteous -sin not, and he doth not sin, he shall surely live, because he is -warned; also thou hast delivered thy soul. - -3:22 And the hand of the LORD was there upon me; and he said unto me, -Arise, go forth into the plain, and I will there talk with thee. - -3:23 Then I arose, and went forth into the plain: and, behold, the -glory of the LORD stood there, as the glory which I saw by the river -of Chebar: and I fell on my face. - -3:24 Then the spirit entered into me, and set me upon my feet, and -spake with me, and said unto me, Go, shut thyself within thine house. - -3:25 But thou, O son of man, behold, they shall put bands upon thee, -and shall bind thee with them, and thou shalt not go out among them: -3:26 And I will make thy tongue cleave to the roof of thy mouth, that -thou shalt be dumb, and shalt not be to them a reprover: for they are -a rebellious house. - -3:27 But when I speak with thee, I will open thy mouth, and thou shalt -say unto them, Thus saith the Lord GOD; He that heareth, let him hear; -and he that forbeareth, let him forbear: for they are a rebellious -house. - -4:1 Thou also, son of man, take thee a tile, and lay it before thee, -and pourtray upon it the city, even Jerusalem: 4:2 And lay siege -against it, and build a fort against it, and cast a mount against it; -set the camp also against it, and set battering rams against it round -about. - -4:3 Moreover take thou unto thee an iron pan, and set it for a wall of -iron between thee and the city: and set thy face against it, and it -shall be besieged, and thou shalt lay siege against it. This shall be -a sign to the house of Israel. - -4:4 Lie thou also upon thy left side, and lay the iniquity of the -house of Israel upon it: according to the number of the days that thou -shalt lie upon it thou shalt bear their iniquity. - -4:5 For I have laid upon thee the years of their iniquity, according -to the number of the days, three hundred and ninety days: so shalt -thou bear the iniquity of the house of Israel. - -4:6 And when thou hast accomplished them, lie again on thy right side, -and thou shalt bear the iniquity of the house of Judah forty days: I -have appointed thee each day for a year. - -4:7 Therefore thou shalt set thy face toward the siege of Jerusalem, -and thine arm shall be uncovered, and thou shalt prophesy against it. - -4:8 And, behold, I will lay bands upon thee, and thou shalt not turn -thee from one side to another, till thou hast ended the days of thy -siege. - -4:9 Take thou also unto thee wheat, and barley, and beans, and -lentiles, and millet, and fitches, and put them in one vessel, and -make thee bread thereof, according to the number of the days that thou -shalt lie upon thy side, three hundred and ninety days shalt thou eat -thereof. - -4:10 And thy meat which thou shalt eat shall be by weight, twenty -shekels a day: from time to time shalt thou eat it. - -4:11 Thou shalt drink also water by measure, the sixth part of an hin: -from time to time shalt thou drink. - -4:12 And thou shalt eat it as barley cakes, and thou shalt bake it -with dung that cometh out of man, in their sight. - -4:13 And the LORD said, Even thus shall the children of Israel eat -their defiled bread among the Gentiles, whither I will drive them. - -4:14 Then said I, Ah Lord GOD! behold, my soul hath not been polluted: -for from my youth up even till now have I not eaten of that which -dieth of itself, or is torn in pieces; neither came there abominable -flesh into my mouth. - -4:15 Then he said unto me, Lo, I have given thee cow's dung for man's -dung, and thou shalt prepare thy bread therewith. - -4:16 Moreover he said unto me, Son of man, behold, I will break the -staff of bread in Jerusalem: and they shall eat bread by weight, and -with care; and they shall drink water by measure, and with -astonishment: 4:17 That they may want bread and water, and be astonied -one with another, and consume away for their iniquity. - -5:1 And thou, son of man, take thee a sharp knife, take thee a -barber's razor, and cause it to pass upon thine head and upon thy -beard: then take thee balances to weigh, and divide the hair. - -5:2 Thou shalt burn with fire a third part in the midst of the city, -when the days of the siege are fulfilled: and thou shalt take a third -part, and smite about it with a knife: and a third part thou shalt -scatter in the wind; and I will draw out a sword after them. - -5:3 Thou shalt also take thereof a few in number, and bind them in thy -skirts. - -5:4 Then take of them again, and cast them into the midst of the fire, -and burn them in the fire; for thereof shall a fire come forth into -all the house of Israel. - -5:5 Thus saith the Lord GOD; This is Jerusalem: I have set it in the -midst of the nations and countries that are round about her. - -5:6 And she hath changed my judgments into wickedness more than the -nations, and my statutes more than the countries that are round about -her: for they have refused my judgments and my statutes, they have not -walked in them. - -5:7 Therefore thus saith the Lord GOD; Because ye multiplied more than -the nations that are round about you, and have not walked in my -statutes, neither have kept my judgments, neither have done according -to the judgments of the nations that are round about you; 5:8 -Therefore thus saith the Lord GOD; Behold, I, even I, am against thee, -and will execute judgments in the midst of thee in the sight of the -nations. - -5:9 And I will do in thee that which I have not done, and whereunto I -will not do any more the like, because of all thine abominations. - -5:10 Therefore the fathers shall eat the sons in the midst of thee, -and the sons shall eat their fathers; and I will execute judgments in -thee, and the whole remnant of thee will I scatter into all the winds. - -5:11 Wherefore, as I live, saith the Lord GOD; Surely, because thou -hast defiled my sanctuary with all thy detestable things, and with all -thine abominations, therefore will I also diminish thee; neither shall -mine eye spare, neither will I have any pity. - -5:12 A third part of thee shall die with the pestilence, and with -famine shall they be consumed in the midst of thee: and a third part -shall fall by the sword round about thee; and I will scatter a third -part into all the winds, and I will draw out a sword after them. - -5:13 Thus shall mine anger be accomplished, and I will cause my fury -to rest upon them, and I will be comforted: and they shall know that I -the LORD have spoken it in my zeal, when I have accomplished my fury -in them. - -5:14 Moreover I will make thee waste, and a reproach among the nations -that are round about thee, in the sight of all that pass by. - -5:15 So it shall be a reproach and a taunt, an instruction and an -astonishment unto the nations that are round about thee, when I shall -execute judgments in thee in anger and in fury and in furious rebukes. -I the LORD have spoken it. - -5:16 When I shall send upon them the evil arrows of famine, which -shall be for their destruction, and which I will send to destroy you: -and I will increase the famine upon you, and will break your staff of -bread: 5:17 So will I send upon you famine and evil beasts, and they -shall bereave thee: and pestilence and blood shall pass through thee; -and I will bring the sword upon thee. I the LORD have spoken it. - -6:1 And the word of the LORD came unto me, saying, 6:2 Son of man, set -thy face toward the mountains of Israel, and prophesy against them, -6:3 And say, Ye mountains of Israel, hear the word of the Lord GOD; -Thus saith the Lord GOD to the mountains, and to the hills, to the -rivers, and to the valleys; Behold, I, even I, will bring a sword upon -you, and I will destroy your high places. - -6:4 And your altars shall be desolate, and your images shall be -broken: and I will cast down your slain men before your idols. - -6:5 And I will lay the dead carcases of the children of Israel before -their idols; and I will scatter your bones round about your altars. - -6:6 In all your dwellingplaces the cities shall be laid waste, and the -high places shall be desolate; that your altars may be laid waste and -made desolate, and your idols may be broken and cease, and your images -may be cut down, and your works may be abolished. - -6:7 And the slain shall fall in the midst of you, and ye shall know -that I am the LORD. - -6:8 Yet will I leave a remnant, that ye may have some that shall -escape the sword among the nations, when ye shall be scattered through -the countries. - -6:9 And they that escape of you shall remember me among the nations -whither they shall be carried captives, because I am broken with their -whorish heart, which hath departed from me, and with their eyes, which -go a whoring after their idols: and they shall lothe themselves for -the evils which they have committed in all their abominations. - -6:10 And they shall know that I am the LORD, and that I have not said -in vain that I would do this evil unto them. - -6:11 Thus saith the Lord GOD; Smite with thine hand, and stamp with -thy foot, and say, Alas for all the evil abominations of the house of -Israel! for they shall fall by the sword, by the famine, and by the -pestilence. - -6:12 He that is far off shall die of the pestilence; and he that is -near shall fall by the sword; and he that remaineth and is besieged -shall die by the famine: thus will I accomplish my fury upon them. - -6:13 Then shall ye know that I am the LORD, when their slain men shall -be among their idols round about their altars, upon every high hill, -in all the tops of the mountains, and under every green tree, and -under every thick oak, the place where they did offer sweet savour to -all their idols. - -6:14 So will I stretch out my hand upon them, and make the land -desolate, yea, more desolate than the wilderness toward Diblath, in -all their habitations: and they shall know that I am the LORD. - -7:1 Moreover the word of the LORD came unto me, saying, 7:2 Also, thou -son of man, thus saith the Lord GOD unto the land of Israel; An end, -the end is come upon the four corners of the land. - -7:3 Now is the end come upon thee, and I will send mine anger upon -thee, and will judge thee according to thy ways, and will recompense -upon thee all thine abominations. - -7:4 And mine eye shall not spare thee, neither will I have pity: but I -will recompense thy ways upon thee, and thine abominations shall be in -the midst of thee: and ye shall know that I am the LORD. - -7:5 Thus saith the Lord GOD; An evil, an only evil, behold, is come. - -7:6 An end is come, the end is come: it watcheth for thee; behold, it -is come. - -7:7 The morning is come unto thee, O thou that dwellest in the land: -the time is come, the day of trouble is near, and not the sounding -again of the mountains. - -7:8 Now will I shortly pour out my fury upon thee, and accomplish mine -anger upon thee: and I will judge thee according to thy ways, and will -recompense thee for all thine abominations. - -7:9 And mine eye shall not spare, neither will I have pity: I will -recompense thee according to thy ways and thine abominations that are -in the midst of thee; and ye shall know that I am the LORD that -smiteth. - -7:10 Behold the day, behold, it is come: the morning is gone forth; -the rod hath blossomed, pride hath budded. - -7:11 Violence is risen up into a rod of wickedness: none of them shall -remain, nor of their multitude, nor of any of their's: neither shall -there be wailing for them. - -7:12 The time is come, the day draweth near: let not the buyer -rejoice, nor the seller mourn: for wrath is upon all the multitude -thereof. - -7:13 For the seller shall not return to that which is sold, although -they were yet alive: for the vision is touching the whole multitude -thereof, which shall not return; neither shall any strengthen himself -in the iniquity of his life. - -7:14 They have blown the trumpet, even to make all ready; but none -goeth to the battle: for my wrath is upon all the multitude thereof. - -7:15 The sword is without, and the pestilence and the famine within: -he that is in the field shall die with the sword; and he that is in -the city, famine and pestilence shall devour him. - -7:16 But they that escape of them shall escape, and shall be on the -mountains like doves of the valleys, all of them mourning, every one -for his iniquity. - -7:17 All hands shall be feeble, and all knees shall be weak as water. - -7:18 They shall also gird themselves with sackcloth, and horror shall -cover them; and shame shall be upon all faces, and baldness upon all -their heads. - -7:19 They shall cast their silver in the streets, and their gold shall -be removed: their silver and their gold shall not be able to deliver -them in the day of the wrath of the LORD: they shall not satisfy their -souls, neither fill their bowels: because it is the stumblingblock of -their iniquity. - -7:20 As for the beauty of his ornament, he set it in majesty: but they -made the images of their abominations and of their detestable things -therein: therefore have I set it far from them. - -7:21 And I will give it into the hands of the strangers for a prey, -and to the wicked of the earth for a spoil; and they shall pollute it. - -7:22 My face will I turn also from them, and they shall pollute my -secret place: for the robbers shall enter into it, and defile it. - -7:23 Make a chain: for the land is full of bloody crimes, and the city -is full of violence. - -7:24 Wherefore I will bring the worst of the heathen, and they shall -possess their houses: I will also make the pomp of the strong to -cease; and their holy places shall be defiled. - -7:25 Destruction cometh; and they shall seek peace, and there shall be -none. - -7:26 Mischief shall come upon mischief, and rumour shall be upon -rumour; then shall they seek a vision of the prophet; but the law -shall perish from the priest, and counsel from the ancients. - -7:27 The king shall mourn, and the prince shall be clothed with -desolation, and the hands of the people of the land shall be troubled: -I will do unto them after their way, and according to their deserts -will I judge them; and they shall know that I am the LORD. - -8:1 And it came to pass in the sixth year, in the sixth month, in the -fifth day of the month, as I sat in mine house, and the elders of -Judah sat before me, that the hand of the Lord GOD fell there upon me. - -8:2 Then I beheld, and lo a likeness as the appearance of fire: from -the appearance of his loins even downward, fire; and from his loins -even upward, as the appearance of brightness, as the colour of amber. - -8:3 And he put forth the form of an hand, and took me by a lock of -mine head; and the spirit lifted me up between the earth and the -heaven, and brought me in the visions of God to Jerusalem, to the door -of the inner gate that looketh toward the north; where was the seat of -the image of jealousy, which provoketh to jealousy. - -8:4 And, behold, the glory of the God of Israel was there, according -to the vision that I saw in the plain. - -8:5 Then said he unto me, Son of man, lift up thine eyes now the way -toward the north. So I lifted up mine eyes the way toward the north, -and behold northward at the gate of the altar this image of jealousy -in the entry. - -8:6 He said furthermore unto me, Son of man, seest thou what they do? -even the great abominations that the house of Israel committeth here, -that I should go far off from my sanctuary? but turn thee yet again, -and thou shalt see greater abominations. - -8:7 And he brought me to the door of the court; and when I looked, -behold a hole in the wall. - -8:8 Then said he unto me, Son of man, dig now in the wall: and when I -had digged in the wall, behold a door. - -8:9 And he said unto me, Go in, and behold the wicked abominations -that they do here. - -8:10 So I went in and saw; and behold every form of creeping things, -and abominable beasts, and all the idols of the house of Israel, -pourtrayed upon the wall round about. - -8:11 And there stood before them seventy men of the ancients of the -house of Israel, and in the midst of them stood Jaazaniah the son of -Shaphan, with every man his censer in his hand; and a thick cloud of -incense went up. - -8:12 Then said he unto me, Son of man, hast thou seen what the -ancients of the house of Israel do in the dark, every man in the -chambers of his imagery? for they say, the LORD seeth us not; the LORD -hath forsaken the earth. - -8:13 He said also unto me, Turn thee yet again, and thou shalt see -greater abominations that they do. - -8:14 Then he brought me to the door of the gate of the LORD's house -which was toward the north; and, behold, there sat women weeping for -Tammuz. - -8:15 Then said he unto me, Hast thou seen this, O son of man? turn -thee yet again, and thou shalt see greater abominations than these. - -8:16 And he brought me into the inner court of the LORD's house, and, -behold, at the door of the temple of the LORD, between the porch and -the altar, were about five and twenty men, with their backs toward the -temple of the LORD, and their faces toward the east; and they -worshipped the sun toward the east. - -8:17 Then he said unto me, Hast thou seen this, O son of man? Is it a -light thing to the house of Judah that they commit the abominations -which they commit here? for they have filled the land with violence, -and have returned to provoke me to anger: and, lo, they put the branch -to their nose. - -8:18 Therefore will I also deal in fury: mine eye shall not spare, -neither will I have pity: and though they cry in mine ears with a loud -voice, yet will I not hear them. - -9:1 He cried also in mine ears with a loud voice, saying, Cause them -that have charge over the city to draw near, even every man with his -destroying weapon in his hand. - -9:2 And, behold, six men came from the way of the higher gate, which -lieth toward the north, and every man a slaughter weapon in his hand; -and one man among them was clothed with linen, with a writer's inkhorn -by his side: and they went in, and stood beside the brasen altar. - -9:3 And the glory of the God of Israel was gone up from the cherub, -whereupon he was, to the threshold of the house. And he called to the -man clothed with linen, which had the writer's inkhorn by his side; -9:4 And the LORD said unto him, Go through the midst of the city, -through the midst of Jerusalem, and set a mark upon the foreheads of -the men that sigh and that cry for all the abominations that be done -in the midst thereof. - -9:5 And to the others he said in mine hearing, Go ye after him through -the city, and smite: let not your eye spare, neither have ye pity: 9:6 -Slay utterly old and young, both maids, and little children, and -women: but come not near any man upon whom is the mark; and begin at -my sanctuary. Then they began at the ancient men which were before the -house. - -9:7 And he said unto them, Defile the house, and fill the courts with -the slain: go ye forth. And they went forth, and slew in the city. - -9:8 And it came to pass, while they were slaying them, and I was left, -that I fell upon my face, and cried, and said, Ah Lord GOD! wilt thou -destroy all the residue of Israel in thy pouring out of thy fury upon -Jerusalem? 9:9 Then said he unto me, The iniquity of the house of -Israel and Judah is exceeding great, and the land is full of blood, -and the city full of perverseness: for they say, The LORD hath -forsaken the earth, and the LORD seeth not. - -9:10 And as for me also, mine eye shall not spare, neither will I have -pity, but I will recompense their way upon their head. - -9:11 And, behold, the man clothed with linen, which had the inkhorn by -his side, reported the matter, saying, I have done as thou hast -commanded me. - -10:1 Then I looked, and, behold, in the firmament that was above the -head of the cherubims there appeared over them as it were a sapphire -stone, as the appearance of the likeness of a throne. - -10:2 And he spake unto the man clothed with linen, and said, Go in -between the wheels, even under the cherub, and fill thine hand with -coals of fire from between the cherubims, and scatter them over the -city. And he went in in my sight. - -10:3 Now the cherubims stood on the right side of the house, when the -man went in; and the cloud filled the inner court. - -10:4 Then the glory of the LORD went up from the cherub, and stood -over the threshold of the house; and the house was filled with the -cloud, and the court was full of the brightness of the LORD's glory. - -10:5 And the sound of the cherubims' wings was heard even to the outer -court, as the voice of the Almighty God when he speaketh. - -10:6 And it came to pass, that when he had commanded the man clothed -with linen, saying, Take fire from between the wheels, from between -the cherubims; then he went in, and stood beside the wheels. - -10:7 And one cherub stretched forth his hand from between the -cherubims unto the fire that was between the cherubims, and took -thereof, and put it into the hands of him that was clothed with linen: -who took it, and went out. - -10:8 And there appeared in the cherubims the form of a man's hand -under their wings. - -10:9 And when I looked, behold the four wheels by the cherubims, one -wheel by one cherub, and another wheel by another cherub: and the -appearance of the wheels was as the colour of a beryl stone. - -10:10 And as for their appearances, they four had one likeness, as if -a wheel had been in the midst of a wheel. - -10:11 When they went, they went upon their four sides; they turned not -as they went, but to the place whither the head looked they followed -it; they turned not as they went. - -10:12 And their whole body, and their backs, and their hands, and -their wings, and the wheels, were full of eyes round about, even the -wheels that they four had. - -10:13 As for the wheels, it was cried unto them in my hearing, O -wheel. - -10:14 And every one had four faces: the first face was the face of a -cherub, and the second face was the face of a man, and the third the -face of a lion, and the fourth the face of an eagle. - -10:15 And the cherubims were lifted up. This is the living creature -that I saw by the river of Chebar. - -10:16 And when the cherubims went, the wheels went by them: and when -the cherubims lifted up their wings to mount up from the earth, the -same wheels also turned not from beside them. - -10:17 When they stood, these stood; and when they were lifted up, -these lifted up themselves also: for the spirit of the living creature -was in them. - -10:18 Then the glory of the LORD departed from off the threshold of -the house, and stood over the cherubims. - -10:19 And the cherubims lifted up their wings, and mounted up from the -earth in my sight: when they went out, the wheels also were beside -them, and every one stood at the door of the east gate of the LORD's -house; and the glory of the God of Israel was over them above. - -10:20 This is the living creature that I saw under the God of Israel -by the river of Chebar; and I knew that they were the cherubims. - -10:21 Every one had four faces apiece, and every one four wings; and -the likeness of the hands of a man was under their wings. - -10:22 And the likeness of their faces was the same faces which I saw -by the river of Chebar, their appearances and themselves: they went -every one straight forward. - -11:1 Moreover the spirit lifted me up, and brought me unto the east -gate of the LORD's house, which looketh eastward: and behold at the -door of the gate five and twenty men; among whom I saw Jaazaniah the -son of Azur, and Pelatiah the son of Benaiah, princes of the people. - -11:2 Then said he unto me, Son of man, these are the men that devise -mischief, and give wicked counsel in this city: 11:3 Which say, It is -not near; let us build houses: this city is the caldron, and we be the -flesh. - -11:4 Therefore prophesy against them, prophesy, O son of man. - -11:5 And the Spirit of the LORD fell upon me, and said unto me, Speak; -Thus saith the LORD; Thus have ye said, O house of Israel: for I know -the things that come into your mind, every one of them. - -11:6 Ye have multiplied your slain in this city, and ye have filled -the streets thereof with the slain. - -11:7 Therefore thus saith the Lord GOD; Your slain whom ye have laid -in the midst of it, they are the flesh, and this city is the caldron: -but I will bring you forth out of the midst of it. - -11:8 Ye have feared the sword; and I will bring a sword upon you, -saith the Lord GOD. - -11:9 And I will bring you out of the midst thereof, and deliver you -into the hands of strangers, and will execute judgments among you. - -11:10 Ye shall fall by the sword; I will judge you in the border of -Israel; and ye shall know that I am the LORD. - -11:11 This city shall not be your caldron, neither shall ye be the -flesh in the midst thereof; but I will judge you in the border of -Israel: 11:12 And ye shall know that I am the LORD: for ye have not -walked in my statutes, neither executed my judgments, but have done -after the manners of the heathen that are round about you. - -11:13 And it came to pass, when I prophesied, that Pelatiah the son of -Benaiah died. Then fell I down upon my face, and cried with a loud -voice, and said, Ah Lord GOD! wilt thou make a full end of the remnant -of Israel? 11:14 Again the word of the LORD came unto me, saying, -11:15 Son of man, thy brethren, even thy brethren, the men of thy -kindred, and all the house of Israel wholly, are they unto whom the -inhabitants of Jerusalem have said, Get you far from the LORD: unto us -is this land given in possession. - -11:16 Therefore say, Thus saith the Lord GOD; Although I have cast -them far off among the heathen, and although I have scattered them -among the countries, yet will I be to them as a little sanctuary in -the countries where they shall come. - -11:17 Therefore say, Thus saith the Lord GOD; I will even gather you -from the people, and assemble you out of the countries where ye have -been scattered, and I will give you the land of Israel. - -11:18 And they shall come thither, and they shall take away all the -detestable things thereof and all the abominations thereof from -thence. - -11:19 And I will give them one heart, and I will put a new spirit -within you; and I will take the stony heart out of their flesh, and -will give them an heart of flesh: 11:20 That they may walk in my -statutes, and keep mine ordinances, and do them: and they shall be my -people, and I will be their God. - -11:21 But as for them whose heart walketh after the heart of their -detestable things and their abominations, I will recompense their way -upon their own heads, saith the Lord GOD. - -11:22 Then did the cherubims lift up their wings, and the wheels -beside them; and the glory of the God of Israel was over them above. - -11:23 And the glory of the LORD went up from the midst of the city, -and stood upon the mountain which is on the east side of the city. - -11:24 Afterwards the spirit took me up, and brought me in a vision by -the Spirit of God into Chaldea, to them of the captivity. So the -vision that I had seen went up from me. - -11:25 Then I spake unto them of the captivity all the things that the -LORD had shewed me. - -12:1 The word of the LORD also came unto me, saying, 12:2 Son of man, -thou dwellest in the midst of a rebellious house, which have eyes to -see, and see not; they have ears to hear, and hear not: for they are a -rebellious house. - -12:3 Therefore, thou son of man, prepare thee stuff for removing, and -remove by day in their sight; and thou shalt remove from thy place to -another place in their sight: it may be they will consider, though -they be a rebellious house. - -12:4 Then shalt thou bring forth thy stuff by day in their sight, as -stuff for removing: and thou shalt go forth at even in their sight, as -they that go forth into captivity. - -12:5 Dig thou through the wall in their sight, and carry out thereby. - -12:6 In their sight shalt thou bear it upon thy shoulders, and carry -it forth in the twilight: thou shalt cover thy face, that thou see not -the ground: for I have set thee for a sign unto the house of Israel. - -12:7 And I did so as I was commanded: I brought forth my stuff by day, -as stuff for captivity, and in the even I digged through the wall with -mine hand; I brought it forth in the twilight, and I bare it upon my -shoulder in their sight. - -12:8 And in the morning came the word of the LORD unto me, saying, -12:9 Son of man, hath not the house of Israel, the rebellious house, -said unto thee, What doest thou? 12:10 Say thou unto them, Thus saith -the Lord GOD; This burden concerneth the prince in Jerusalem, and all -the house of Israel that are among them. - -12:11 Say, I am your sign: like as I have done, so shall it be done -unto them: they shall remove and go into captivity. - -12:12 And the prince that is among them shall bear upon his shoulder -in the twilight, and shall go forth: they shall dig through the wall -to carry out thereby: he shall cover his face, that he see not the -ground with his eyes. - -12:13 My net also will I spread upon him, and he shall be taken in my -snare: and I will bring him to Babylon to the land of the Chaldeans; -yet shall he not see it, though he shall die there. - -12:14 And I will scatter toward every wind all that are about him to -help him, and all his bands; and I will draw out the sword after them. - -12:15 And they shall know that I am the LORD, when I shall scatter -them among the nations, and disperse them in the countries. - -12:16 But I will leave a few men of them from the sword, from the -famine, and from the pestilence; that they may declare all their -abominations among the heathen whither they come; and they shall know -that I am the LORD. - -12:17 Moreover the word of the LORD came to me, saying, 12:18 Son of -man, eat thy bread with quaking, and drink thy water with trembling -and with carefulness; 12:19 And say unto the people of the land, Thus -saith the Lord GOD of the inhabitants of Jerusalem, and of the land of -Israel; They shall eat their bread with carefulness, and drink their -water with astonishment, that her land may be desolate from all that -is therein, because of the violence of all them that dwell therein. - -12:20 And the cities that are inhabited shall be laid waste, and the -land shall be desolate; and ye shall know that I am the LORD. - -12:21 And the word of the LORD came unto me, saying, 12:22 Son of man, -what is that proverb that ye have in the land of Israel, saying, The -days are prolonged, and every vision faileth? 12:23 Tell them -therefore, Thus saith the Lord GOD; I will make this proverb to cease, -and they shall no more use it as a proverb in Israel; but say unto -them, The days are at hand, and the effect of every vision. - -12:24 For there shall be no more any vain vision nor flattering -divination within the house of Israel. - -12:25 For I am the LORD: I will speak, and the word that I shall speak -shall come to pass; it shall be no more prolonged: for in your days, O -rebellious house, will I say the word, and will perform it, saith the -Lord GOD. - -12:26 Again the word of the LORD came to me, saying. - -12:27 Son of man, behold, they of the house of Israel say, The vision -that he seeth is for many days to come, and he prophesieth of the -times that are far off. - -12:28 Therefore say unto them, Thus saith the Lord GOD; There shall -none of my words be prolonged any more, but the word which I have -spoken shall be done, saith the Lord GOD. - -13:1 And the word of the LORD came unto me, saying, 13:2 Son of man, -prophesy against the prophets of Israel that prophesy, and say thou -unto them that prophesy out of their own hearts, Hear ye the word of -the LORD; 13:3 Thus saith the Lord GOD; Woe unto the foolish prophets, -that follow their own spirit, and have seen nothing! 13:4 O Israel, -thy prophets are like the foxes in the deserts. - -13:5 Ye have not gone up into the gaps, neither made up the hedge for -the house of Israel to stand in the battle in the day of the LORD. - -13:6 They have seen vanity and lying divination, saying, The LORD -saith: and the LORD hath not sent them: and they have made others to -hope that they would confirm the word. - -13:7 Have ye not seen a vain vision, and have ye not spoken a lying -divination, whereas ye say, The LORD saith it; albeit I have not -spoken? 13:8 Therefore thus saith the Lord GOD; Because ye have -spoken vanity, and seen lies, therefore, behold, I am against you, -saith the Lord GOD. - -13:9 And mine hand shall be upon the prophets that see vanity, and -that divine lies: they shall not be in the assembly of my people, -neither shall they be written in the writing of the house of Israel, -neither shall they enter into the land of Israel; and ye shall know -that I am the Lord GOD. - -13:10 Because, even because they have seduced my people, saying, -Peace; and there was no peace; and one built up a wall, and, lo, -others daubed it with untempered morter: 13:11 Say unto them which -daub it with untempered morter, that it shall fall: there shall be an -overflowing shower; and ye, O great hailstones, shall fall; and a -stormy wind shall rend it. - -13:12 Lo, when the wall is fallen, shall it not be said unto you, -Where is the daubing wherewith ye have daubed it? 13:13 Therefore -thus saith the Lord GOD; I will even rend it with a stormy wind in my -fury; and there shall be an overflowing shower in mine anger, and -great hailstones in my fury to consume it. - -13:14 So will I break down the wall that ye have daubed with -untempered morter, and bring it down to the ground, so that the -foundation thereof shall be discovered, and it shall fall, and ye -shall be consumed in the midst thereof: and ye shall know that I am -the LORD. - -13:15 Thus will I accomplish my wrath upon the wall, and upon them -that have daubed it with untempered morter, and will say unto you, The -wall is no more, neither they that daubed it; 13:16 To wit, the -prophets of Israel which prophesy concerning Jerusalem, and which see -visions of peace for her, and there is no peace, saith the Lord GOD. - -13:17 Likewise, thou son of man, set thy face against the daughters of -thy people, which prophesy out of their own heart; and prophesy thou -against them, 13:18 And say, Thus saith the Lord GOD; Woe to the women -that sew pillows to all armholes, and make kerchiefs upon the head of -every stature to hunt souls! Will ye hunt the souls of my people, and -will ye save the souls alive that come unto you? 13:19 And will ye -pollute me among my people for handfuls of barley and for pieces of -bread, to slay the souls that should not die, and to save the souls -alive that should not live, by your lying to my people that hear your -lies? 13:20 Wherefore thus saith the Lord GOD; Behold, I am against -your pillows, wherewith ye there hunt the souls to make them fly, and -I will tear them from your arms, and will let the souls go, even the -souls that ye hunt to make them fly. - -13:21 Your kerchiefs also will I tear, and deliver my people out of -your hand, and they shall be no more in your hand to be hunted; and ye -shall know that I am the LORD. - -13:22 Because with lies ye have made the heart of the righteous sad, -whom I have not made sad; and strengthened the hands of the wicked, -that he should not return from his wicked way, by promising him life: -13:23 Therefore ye shall see no more vanity, nor divine divinations: -for I will deliver my people out of your hand: and ye shall know that -I am the LORD. - -14:1 Then came certain of the elders of Israel unto me, and sat before -me. - -14:2 And the word of the LORD came unto me, saying, 14:3 Son of man, -these men have set up their idols in their heart, and put the -stumblingblock of their iniquity before their face: should I be -enquired of at all by them? 14:4 Therefore speak unto them, and say -unto them, Thus saith the Lord GOD; Every man of the house of Israel -that setteth up his idols in his heart, and putteth the stumblingblock -of his iniquity before his face, and cometh to the prophet; I the LORD -will answer him that cometh according to the multitude of his idols; -14:5 That I may take the house of Israel in their own heart, because -they are all estranged from me through their idols. - -14:6 Therefore say unto the house of Israel, Thus saith the Lord GOD; -Repent, and turn yourselves from your idols; and turn away your faces -from all your abominations. - -14:7 For every one of the house of Israel, or of the stranger that -sojourneth in Israel, which separateth himself from me, and setteth up -his idols in his heart, and putteth the stumblingblock of his iniquity -before his face, and cometh to a prophet to enquire of him concerning -me; I the LORD will answer him by myself: 14:8 And I will set my face -against that man, and will make him a sign and a proverb, and I will -cut him off from the midst of my people; and ye shall know that I am -the LORD. - -14:9 And if the prophet be deceived when he hath spoken a thing, I the -LORD have deceived that prophet, and I will stretch out my hand upon -him, and will destroy him from the midst of my people Israel. - -14:10 And they shall bear the punishment of their iniquity: the -punishment of the prophet shall be even as the punishment of him that -seeketh unto him; 14:11 That the house of Israel may go no more astray -from me, neither be polluted any more with all their transgressions; -but that they may be my people, and I may be their God, saith the Lord -GOD. - -14:12 The word of the LORD came again to me, saying, 14:13 Son of man, -when the land sinneth against me by trespassing grievously, then will -I stretch out mine hand upon it, and will break the staff of the bread -thereof, and will send famine upon it, and will cut off man and beast -from it: 14:14 Though these three men, Noah, Daniel, and Job, were in -it, they should deliver but their own souls by their righteousness, -saith the Lord GOD. - -14:15 If I cause noisome beasts to pass through the land, and they -spoil it, so that it be desolate, that no man may pass through because -of the beasts: 14:16 Though these three men were in it, as I live, -saith the Lord GOD, they shall deliver neither sons nor daughters; -they only shall be delivered, but the land shall be desolate. - -14:17 Or if I bring a sword upon that land, and say, Sword, go through -the land; so that I cut off man and beast from it: 14:18 Though these -three men were in it, as I live, saith the Lord GOD, they shall -deliver neither sons nor daughters, but they only shall be delivered -themselves. - -14:19 Or if I send a pestilence into that land, and pour out my fury -upon it in blood, to cut off from it man and beast: 14:20 Though Noah, -Daniel, and Job were in it, as I live, saith the Lord GOD, they shall -deliver neither son nor daughter; they shall but deliver their own -souls by their righteousness. - -14:21 For thus saith the Lord GOD; How much more when I send my four -sore judgments upon Jerusalem, the sword, and the famine, and the -noisome beast, and the pestilence, to cut off from it man and beast? -14:22 Yet, behold, therein shall be left a remnant that shall be -brought forth, both sons and daughters: behold, they shall come forth -unto you, and ye shall see their way and their doings: and ye shall be -comforted concerning the evil that I have brought upon Jerusalem, even -concerning all that I have brought upon it. - -14:23 And they shall comfort you, when ye see their ways and their -doings: and ye shall know that I have not done without cause all that -I have done in it, saith the Lord GOD. - -15:1 And the word of the LORD came unto me, saying, 15:2 Son of man, -what is the vine tree more than any tree, or than a branch which is -among the trees of the forest? 15:3 Shall wood be taken thereof to do -any work? or will men take a pin of it to hang any vessel thereon? -15:4 Behold, it is cast into the fire for fuel; the fire devoureth -both the ends of it, and the midst of it is burned. Is it meet for any -work? 15:5 Behold, when it was whole, it was meet for no work: how -much less shall it be meet yet for any work, when the fire hath -devoured it, and it is burned? 15:6 Therefore thus saith the Lord -GOD; As the vine tree among the trees of the forest, which I have -given to the fire for fuel, so will I give the inhabitants of -Jerusalem. - -15:7 And I will set my face against them; they shall go out from one -fire, and another fire shall devour them; and ye shall know that I am -the LORD, when I set my face against them. - -15:8 And I will make the land desolate, because they have committed a -trespass, saith the Lord GOD. - -16:1 Again the word of the LORD came unto me, saying, 16:2 Son of man, -cause Jerusalem to know her abominations, 16:3 And say, Thus saith the -Lord GOD unto Jerusalem; Thy birth and thy nativity is of the land of -Canaan; thy father was an Amorite, and thy mother an Hittite. - -16:4 And as for thy nativity, in the day thou wast born thy navel was -not cut, neither wast thou washed in water to supple thee; thou wast -not salted at all, nor swaddled at all. - -16:5 None eye pitied thee, to do any of these unto thee, to have -compassion upon thee; but thou wast cast out in the open field, to the -lothing of thy person, in the day that thou wast born. - -16:6 And when I passed by thee, and saw thee polluted in thine own -blood, I said unto thee when thou wast in thy blood, Live; yea, I said -unto thee when thou wast in thy blood, Live. - -16:7 I have caused thee to multiply as the bud of the field, and thou -hast increased and waxen great, and thou art come to excellent -ornaments: thy breasts are fashioned, and thine hair is grown, whereas -thou wast naked and bare. - -16:8 Now when I passed by thee, and looked upon thee, behold, thy time -was the time of love; and I spread my skirt over thee, and covered thy -nakedness: yea, I sware unto thee, and entered into a covenant with -thee, saith the Lord GOD, and thou becamest mine. - -16:9 Then washed I thee with water; yea, I throughly washed away thy -blood from thee, and I anointed thee with oil. - -16:10 I clothed thee also with broidered work, and shod thee with -badgers' skin, and I girded thee about with fine linen, and I covered -thee with silk. - -16:11 I decked thee also with ornaments, and I put bracelets upon thy -hands, and a chain on thy neck. - -16:12 And I put a jewel on thy forehead, and earrings in thine ears, -and a beautiful crown upon thine head. - -16:13 Thus wast thou decked with gold and silver; and thy raiment was -of fine linen, and silk, and broidered work; thou didst eat fine -flour, and honey, and oil: and thou wast exceeding beautiful, and thou -didst prosper into a kingdom. - -16:14 And thy renown went forth among the heathen for thy beauty: for -it was perfect through my comeliness, which I had put upon thee, saith -the Lord GOD. - -16:15 But thou didst trust in thine own beauty, and playedst the -harlot because of thy renown, and pouredst out thy fornications on -every one that passed by; his it was. - -16:16 And of thy garments thou didst take, and deckedst thy high -places with divers colours, and playedst the harlot thereupon: the -like things shall not come, neither shall it be so. - -16:17 Thou hast also taken thy fair jewels of my gold and of my -silver, which I had given thee, and madest to thyself images of men, -and didst commit whoredom with them, 16:18 And tookest thy broidered -garments, and coveredst them: and thou hast set mine oil and mine -incense before them. - -16:19 My meat also which I gave thee, fine flour, and oil, and honey, -wherewith I fed thee, thou hast even set it before them for a sweet -savour: and thus it was, saith the Lord GOD. - -16:20 Moreover thou hast taken thy sons and thy daughters, whom thou -hast borne unto me, and these hast thou sacrificed unto them to be -devoured. Is this of thy whoredoms a small matter, 16:21 That thou -hast slain my children, and delivered them to cause them to pass -through the fire for them? 16:22 And in all thine abominations and -thy whoredoms thou hast not remembered the days of thy youth, when -thou wast naked and bare, and wast polluted in thy blood. - -16:23 And it came to pass after all thy wickedness, (woe, woe unto -thee! saith the LORD GOD;) 16:24 That thou hast also built unto thee -an eminent place, and hast made thee an high place in every street. - -16:25 Thou hast built thy high place at every head of the way, and -hast made thy beauty to be abhorred, and hast opened thy feet to every -one that passed by, and multiplied thy whoredoms. - -16:26 Thou hast also committed fornication with the Egyptians thy -neighbours, great of flesh; and hast increased thy whoredoms, to -provoke me to anger. - -16:27 Behold, therefore I have stretched out my hand over thee, and -have diminished thine ordinary food, and delivered thee unto the will -of them that hate thee, the daughters of the Philistines, which are -ashamed of thy lewd way. - -16:28 Thou hast played the whore also with the Assyrians, because thou -wast unsatiable; yea, thou hast played the harlot with them, and yet -couldest not be satisfied. - -16:29 Thou hast moreover multiplied thy fornication in the land of -Canaan unto Chaldea; and yet thou wast not satisfied therewith. - -16:30 How weak is thine heart, saith the LORD GOD, seeing thou doest -all these things, the work of an imperious whorish woman; 16:31 In -that thou buildest thine eminent place in the head of every way, and -makest thine high place in every street; and hast not been as an -harlot, in that thou scornest hire; 16:32 But as a wife that -committeth adultery, which taketh strangers instead of her husband! -16:33 They give gifts to all whores: but thou givest thy gifts to all -thy lovers, and hirest them, that they may come unto thee on every -side for thy whoredom. - -16:34 And the contrary is in thee from other women in thy whoredoms, -whereas none followeth thee to commit whoredoms: and in that thou -givest a reward, and no reward is given unto thee, therefore thou art -contrary. - -16:35 Wherefore, O harlot, hear the word of the LORD: 16:36 Thus saith -the Lord GOD; Because thy filthiness was poured out, and thy nakedness -discovered through thy whoredoms with thy lovers, and with all the -idols of thy abominations, and by the blood of thy children, which -thou didst give unto them; 16:37 Behold, therefore I will gather all -thy lovers, with whom thou hast taken pleasure, and all them that thou -hast loved, with all them that thou hast hated; I will even gather -them round about against thee, and will discover thy nakedness unto -them, that they may see all thy nakedness. - -16:38 And I will judge thee, as women that break wedlock and shed -blood are judged; and I will give thee blood in fury and jealousy. - -16:39 And I will also give thee into their hand, and they shall throw -down thine eminent place, and shall break down thy high places: they -shall strip thee also of thy clothes, and shall take thy fair jewels, -and leave thee naked and bare. - -16:40 They shall also bring up a company against thee, and they shall -stone thee with stones, and thrust thee through with their swords. - -16:41 And they shall burn thine houses with fire, and execute -judgments upon thee in the sight of many women: and I will cause thee -to cease from playing the harlot, and thou also shalt give no hire any -more. - -16:42 So will I make my fury toward thee to rest, and my jealousy -shall depart from thee, and I will be quiet, and will be no more -angry. - -16:43 Because thou hast not remembered the days of thy youth, but hast -fretted me in all these things; behold, therefore I also will -recompense thy way upon thine head, saith the Lord GOD: and thou shalt -not commit this lewdness above all thine abominations. - -16:44 Behold, every one that useth proverbs shall use this proverb -against thee, saying, As is the mother, so is her daughter. - -16:45 Thou art thy mother's daughter, that lotheth her husband and her -children; and thou art the sister of thy sisters, which lothed their -husbands and their children: your mother was an Hittite, and your -father an Amorite. - -16:46 And thine elder sister is Samaria, she and her daughters that -dwell at thy left hand: and thy younger sister, that dwelleth at thy -right hand, is Sodom and her daughters. - -16:47 Yet hast thou not walked after their ways, nor done after their -abominations: but, as if that were a very little thing, thou wast -corrupted more than they in all thy ways. - -16:48 As I live, saith the Lord GOD, Sodom thy sister hath not done, -she nor her daughters, as thou hast done, thou and thy daughters. - -16:49 Behold, this was the iniquity of thy sister Sodom, pride, -fulness of bread, and abundance of idleness was in her and in her -daughters, neither did she strengthen the hand of the poor and needy. - -16:50 And they were haughty, and committed abomination before me: -therefore I took them away as I saw good. - -16:51 Neither hath Samaria committed half of thy sins; but thou hast -multiplied thine abominations more than they, and hast justified thy -sisters in all thine abominations which thou hast done. - -16:52 Thou also, which hast judged thy sisters, bear thine own shame -for thy sins that thou hast committed more abominable than they: they -are more righteous than thou: yea, be thou confounded also, and bear -thy shame, in that thou hast justified thy sisters. - -16:53 When I shall bring again their captivity, the captivity of Sodom -and her daughters, and the captivity of Samaria and her daughters, -then will I bring again the captivity of thy captives in the midst of -them: 16:54 That thou mayest bear thine own shame, and mayest be -confounded in all that thou hast done, in that thou art a comfort unto -them. - -16:55 When thy sisters, Sodom and her daughters, shall return to their -former estate, and Samaria and her daughters shall return to their -former estate, then thou and thy daughters shall return to your former -estate. - -16:56 For thy sister Sodom was not mentioned by thy mouth in the day -of thy pride, 16:57 Before thy wickedness was discovered, as at the -time of thy reproach of the daughters of Syria, and all that are round -about her, the daughters of the Philistines, which despise thee round -about. - -16:58 Thou hast borne thy lewdness and thine abominations, saith the -LORD. - -16:59 For thus saith the Lord GOD; I will even deal with thee as thou -hast done, which hast despised the oath in breaking the covenant. - -16:60 Nevertheless I will remember my covenant with thee in the days -of thy youth, and I will establish unto thee an everlasting covenant. - -16:61 Then thou shalt remember thy ways, and be ashamed, when thou -shalt receive thy sisters, thine elder and thy younger: and I will -give them unto thee for daughters, but not by thy covenant. - -16:62 And I will establish my covenant with thee; and thou shalt know -that I am the LORD: 16:63 That thou mayest remember, and be -confounded, and never open thy mouth any more because of thy shame, -when I am pacified toward thee for all that thou hast done, saith the -Lord GOD. - -17:1 And the word of the LORD came unto me, saying, 17:2 Son of man, -put forth a riddle, and speak a parable unto the house of Israel; 17:3 -And say, Thus saith the Lord GOD; A great eagle with great wings, -longwinged, full of feathers, which had divers colours, came unto -Lebanon, and took the highest branch of the cedar: 17:4 He cropped off -the top of his young twigs, and carried it into a land of traffick; he -set it in a city of merchants. - -17:5 He took also of the seed of the land, and planted it in a -fruitful field; he placed it by great waters, and set it as a willow -tree. - -17:6 And it grew, and became a spreading vine of low stature, whose -branches turned toward him, and the roots thereof were under him: so -it became a vine, and brought forth branches, and shot forth sprigs. - -17:7 There was also another great eagle with great wings and many -feathers: and, behold, this vine did bend her roots toward him, and -shot forth her branches toward him, that he might water it by the -furrows of her plantation. - -17:8 It was planted in a good soil by great waters, that it might -bring forth branches, and that it might bear fruit, that it might be a -goodly vine. - -17:9 Say thou, Thus saith the Lord GOD; Shall it prosper? shall he not -pull up the roots thereof, and cut off the fruit thereof, that it -wither? it shall wither in all the leaves of her spring, even without -great power or many people to pluck it up by the roots thereof. - -17:10 Yea, behold, being planted, shall it prosper? shall it not -utterly wither, when the east wind toucheth it? it shall wither in the -furrows where it grew. - -17:11 Moreover the word of the LORD came unto me, saying, 17:12 Say -now to the rebellious house, Know ye not what these things mean? tell -them, Behold, the king of Babylon is come to Jerusalem, and hath taken -the king thereof, and the princes thereof, and led them with him to -Babylon; 17:13 And hath taken of the king's seed, and made a covenant -with him, and hath taken an oath of him: he hath also taken the mighty -of the land: 17:14 That the kingdom might be base, that it might not -lift itself up, but that by keeping of his covenant it might stand. - -17:15 But he rebelled against him in sending his ambassadors into -Egypt, that they might give him horses and much people. Shall he -prosper? shall he escape that doeth such things? or shall he break the -covenant, and be delivered? 17:16 As I live, saith the Lord GOD, -surely in the place where the king dwelleth that made him king, whose -oath he despised, and whose covenant he brake, even with him in the -midst of Babylon he shall die. - -17:17 Neither shall Pharaoh with his mighty army and great company -make for him in the war, by casting up mounts, and building forts, to -cut off many persons: 17:18 Seeing he despised the oath by breaking -the covenant, when, lo, he had given his hand, and hath done all these -things, he shall not escape. - -17:19 Therefore thus saith the Lord GOD; As I live, surely mine oath -that he hath despised, and my covenant that he hath broken, even it -will I recompense upon his own head. - -17:20 And I will spread my net upon him, and he shall be taken in my -snare, and I will bring him to Babylon, and will plead with him there -for his trespass that he hath trespassed against me. - -17:21 And all his fugitives with all his bands shall fall by the -sword, and they that remain shall be scattered toward all winds: and -ye shall know that I the LORD have spoken it. - -17:22 Thus saith the Lord GOD; I will also take of the highest branch -of the high cedar, and will set it; I will crop off from the top of -his young twigs a tender one, and will plant it upon an high mountain -and eminent: 17:23 In the mountain of the height of Israel will I -plant it: and it shall bring forth boughs, and bear fruit, and be a -goodly cedar: and under it shall dwell all fowl of every wing; in the -shadow of the branches thereof shall they dwell. - -17:24 And all the trees of the field shall know that I the LORD have -brought down the high tree, have exalted the low tree, have dried up -the green tree, and have made the dry tree to flourish: I the LORD -have spoken and have done it. - -18:1 The word of the LORD came unto me again, saying, 18:2 What mean -ye, that ye use this proverb concerning the land of Israel, saying, -The fathers have eaten sour grapes, and the children's teeth are set -on edge? 18:3 As I live, saith the Lord GOD, ye shall not have -occasion any more to use this proverb in Israel. - -18:4 Behold, all souls are mine; as the soul of the father, so also -the soul of the son is mine: the soul that sinneth, it shall die. - -18:5 But if a man be just, and do that which is lawful and right, 18:6 -And hath not eaten upon the mountains, neither hath lifted up his eyes -to the idols of the house of Israel, neither hath defiled his -neighbour's wife, neither hath come near to a menstruous woman, 18:7 -And hath not oppressed any, but hath restored to the debtor his -pledge, hath spoiled none by violence, hath given his bread to the -hungry, and hath covered the naked with a garment; 18:8 He that hath -not given forth upon usury, neither hath taken any increase, that hath -withdrawn his hand from iniquity, hath executed true judgment between -man and man, 18:9 Hath walked in my statutes, and hath kept my -judgments, to deal truly; he is just, he shall surely live, saith the -Lord GOD. - -18:10 If he beget a son that is a robber, a shedder of blood, and that -doeth the like to any one of these things, 18:11 And that doeth not -any of those duties, but even hath eaten upon the mountains, and -defiled his neighbour's wife, 18:12 Hath oppressed the poor and needy, -hath spoiled by violence, hath not restored the pledge, and hath -lifted up his eyes to the idols, hath committed abomination, 18:13 -Hath given forth upon usury, and hath taken increase: shall he then -live? he shall not live: he hath done all these abominations; he shall -surely die; his blood shall be upon him. - -18:14 Now, lo, if he beget a son, that seeth all his father's sins -which he hath done, and considereth, and doeth not such like, 18:15 -That hath not eaten upon the mountains, neither hath lifted up his -eyes to the idols of the house of Israel, hath not defiled his -neighbour's wife, 18:16 Neither hath oppressed any, hath not -withholden the pledge, neither hath spoiled by violence, but hath -given his bread to the hungry, and hath covered the naked with a -garment, 18:17 That hath taken off his hand from the poor, that hath -not received usury nor increase, hath executed my judgments, hath -walked in my statutes; he shall not die for the iniquity of his -father, he shall surely live. - -18:18 As for his father, because he cruelly oppressed, spoiled his -brother by violence, and did that which is not good among his people, -lo, even he shall die in his iniquity. - -18:19 Yet say ye, Why? doth not the son bear the iniquity of the -father? When the son hath done that which is lawful and right, and -hath kept all my statutes, and hath done them, he shall surely live. - -18:20 The soul that sinneth, it shall die. The son shall not bear the -iniquity of the father, neither shall the father bear the iniquity of -the son: the righteousness of the righteous shall be upon him, and the -wickedness of the wicked shall be upon him. - -18:21 But if the wicked will turn from all his sins that he hath -committed, and keep all my statutes, and do that which is lawful and -right, he shall surely live, he shall not die. - -18:22 All his transgressions that he hath committed, they shall not be -mentioned unto him: in his righteousness that he hath done he shall -live. - -18:23 Have I any pleasure at all that the wicked should die? saith the -Lord GOD: and not that he should return from his ways, and live? -18:24 But when the righteous turneth away from his righteousness, and -committeth iniquity, and doeth according to all the abominations that -the wicked man doeth, shall he live? All his righteousness that he -hath done shall not be mentioned: in his trespass that he hath -trespassed, and in his sin that he hath sinned, in them shall he die. - -18:25 Yet ye say, The way of the LORD is not equal. Hear now, O house -of Israel; Is not my way equal? are not your ways unequal? 18:26 When -a righteous man turneth away from his righteousness, and committeth -iniquity, and dieth in them; for his iniquity that he hath done shall -he die. - -18:27 Again, when the wicked man turneth away from his wickedness that -he hath committed, and doeth that which is lawful and right, he shall -save his soul alive. - -18:28 Because he considereth, and turneth away from all his -transgressions that he hath committed, he shall surely live, he shall -not die. - -18:29 Yet saith the house of Israel, The way of the LORD is not equal. -O house of Israel, are not my ways equal? are not your ways unequal? -18:30 Therefore I will judge you, O house of Israel, every one -according to his ways, saith the Lord GOD. Repent, and turn yourselves -from all your transgressions; so iniquity shall not be your ruin. - -18:31 Cast away from you all your transgressions, whereby ye have -transgressed; and make you a new heart and a new spirit: for why will -ye die, O house of Israel? 18:32 For I have no pleasure in the death -of him that dieth, saith the Lord GOD: wherefore turn yourselves, and -live ye. - -19:1 Moreover take thou up a lamentation for the princes of Israel, -19:2 And say, What is thy mother? A lioness: she lay down among lions, -she nourished her whelps among young lions. - -19:3 And she brought up one of her whelps: it became a young lion, and -it learned to catch the prey; it devoured men. - -19:4 The nations also heard of him; he was taken in their pit, and -they brought him with chains unto the land of Egypt. - -19:5 Now when she saw that she had waited, and her hope was lost, then -she took another of her whelps, and made him a young lion. - -19:6 And he went up and down among the lions, he became a young lion, -and learned to catch the prey, and devoured men. - -19:7 And he knew their desolate palaces, and he laid waste their -cities; and the land was desolate, and the fulness thereof, by the -noise of his roaring. - -19:8 Then the nations set against him on every side from the -provinces, and spread their net over him: he was taken in their pit. - -19:9 And they put him in ward in chains, and brought him to the king -of Babylon: they brought him into holds, that his voice should no more -be heard upon the mountains of Israel. - -19:10 Thy mother is like a vine in thy blood, planted by the waters: -she was fruitful and full of branches by reason of many waters. - -19:11 And she had strong rods for the sceptres of them that bare rule, -and her stature was exalted among the thick branches, and she appeared -in her height with the multitude of her branches. - -19:12 But she was plucked up in fury, she was cast down to the ground, -and the east wind dried up her fruit: her strong rods were broken and -withered; the fire consumed them. - -19:13 And now she is planted in the wilderness, in a dry and thirsty -ground. - -19:14 And fire is gone out of a rod of her branches, which hath -devoured her fruit, so that she hath no strong rod to be a sceptre to -rule. This is a lamentation, and shall be for a lamentation. - -20:1 And it came to pass in the seventh year, in the fifth month, the -tenth day of the month, that certain of the elders of Israel came to -enquire of the LORD, and sat before me. - -20:2 Then came the word of the LORD unto me, saying, 20:3 Son of man, -speak unto the elders of Israel, and say unto them, Thus saith the -Lord GOD; Are ye come to enquire of me? As I live, saith the Lord GOD, -I will not be enquired of by you. - -20:4 Wilt thou judge them, son of man, wilt thou judge them? cause -them to know the abominations of their fathers: 20:5 And say unto -them, Thus saith the Lord GOD; In the day when I chose Israel, and -lifted up mine hand unto the seed of the house of Jacob, and made -myself known unto them in the land of Egypt, when I lifted up mine -hand unto them, saying, I am the LORD your God; 20:6 In the day that I -lifted up mine hand unto them, to bring them forth of the land of -Egypt into a land that I had espied for them, flowing with milk and -honey, which is the glory of all lands: 20:7 Then said I unto them, -Cast ye away every man the abominations of his eyes, and defile not -yourselves with the idols of Egypt: I am the LORD your God. - -20:8 But they rebelled against me, and would not hearken unto me: they -did not every man cast away the abominations of their eyes, neither -did they forsake the idols of Egypt: then I said, I will pour out my -fury upon them, to accomplish my anger against them in the midst of -the land of Egypt. - -20:9 But I wrought for my name's sake, that it should not be polluted -before the heathen, among whom they were, in whose sight I made myself -known unto them, in bringing them forth out of the land of Egypt. - -20:10 Wherefore I caused them to go forth out of the land of Egypt, -and brought them into the wilderness. - -20:11 And I gave them my statutes, and shewed them my judgments, which -if a man do, he shall even live in them. - -20:12 Moreover also I gave them my sabbaths, to be a sign between me -and them, that they might know that I am the LORD that sanctify them. - -20:13 But the house of Israel rebelled against me in the wilderness: -they walked not in my statutes, and they despised my judgments, which -if a man do, he shall even live in them; and my sabbaths they greatly -polluted: then I said, I would pour out my fury upon them in the -wilderness, to consume them. - -20:14 But I wrought for my name's sake, that it should not be polluted -before the heathen, in whose sight I brought them out. - -20:15 Yet also I lifted up my hand unto them in the wilderness, that I -would not bring them into the land which I had given them, flowing -with milk and honey, which is the glory of all lands; 20:16 Because -they despised my judgments, and walked not in my statutes, but -polluted my sabbaths: for their heart went after their idols. - -20:17 Nevertheless mine eye spared them from destroying them, neither -did I make an end of them in the wilderness. - -20:18 But I said unto their children in the wilderness, Walk ye not in -the statutes of your fathers, neither observe their judgments, nor -defile yourselves with their idols: 20:19 I am the LORD your God; walk -in my statutes, and keep my judgments, and do them; 20:20 And hallow -my sabbaths; and they shall be a sign between me and you, that ye may -know that I am the LORD your God. - -20:21 Notwithstanding the children rebelled against me: they walked -not in my statutes, neither kept my judgments to do them, which if a -man do, he shall even live in them; they polluted my sabbaths: then I -said, I would pour out my fury upon them, to accomplish my anger -against them in the wilderness. - -20:22 Nevertheless I withdrew mine hand, and wrought for my name's -sake, that it should not be polluted in the sight of the heathen, in -whose sight I brought them forth. - -20:23 I lifted up mine hand unto them also in the wilderness, that I -would scatter them among the heathen, and disperse them through the -countries; 20:24 Because they had not executed my judgments, but had -despised my statutes, and had polluted my sabbaths, and their eyes -were after their fathers' idols. - -20:25 Wherefore I gave them also statutes that were not good, and -judgments whereby they should not live; 20:26 And I polluted them in -their own gifts, in that they caused to pass through the fire all that -openeth the womb, that I might make them desolate, to the end that -they might know that I am the LORD. - -20:27 Therefore, son of man, speak unto the house of Israel, and say -unto them, Thus saith the Lord GOD; Yet in this your fathers have -blasphemed me, in that they have committed a trespass against me. - -20:28 For when I had brought them into the land, for the which I -lifted up mine hand to give it to them, then they saw every high hill, -and all the thick trees, and they offered there their sacrifices, and -there they presented the provocation of their offering: there also -they made their sweet savour, and poured out there their drink -offerings. - -20:29 Then I said unto them, What is the high place whereunto ye go? -And the name whereof is called Bamah unto this day. - -20:30 Wherefore say unto the house of Israel, Thus saith the Lord GOD; -Are ye polluted after the manner of your fathers? and commit ye -whoredom after their abominations? 20:31 For when ye offer your -gifts, when ye make your sons to pass through the fire, ye pollute -yourselves with all your idols, even unto this day: and shall I be -enquired of by you, O house of Israel? As I live, saith the Lord GOD, -I will not be enquired of by you. - -20:32 And that which cometh into your mind shall not be at all, that -ye say, We will be as the heathen, as the families of the countries, -to serve wood and stone. - -20:33 As I live, saith the Lord GOD, surely with a mighty hand, and -with a stretched out arm, and with fury poured out, will I rule over -you: 20:34 And I will bring you out from the people, and will gather -you out of the countries wherein ye are scattered, with a mighty hand, -and with a stretched out arm, and with fury poured out. - -20:35 And I will bring you into the wilderness of the people, and -there will I plead with you face to face. - -20:36 Like as I pleaded with your fathers in the wilderness of the -land of Egypt, so will I plead with you, saith the Lord GOD. - -20:37 And I will cause you to pass under the rod, and I will bring you -into the bond of the covenant: 20:38 And I will purge out from among -you the rebels, and them that transgress against me: I will bring them -forth out of the country where they sojourn, and they shall not enter -into the land of Israel: and ye shall know that I am the LORD. - -20:39 As for you, O house of Israel, thus saith the Lord GOD; Go ye, -serve ye every one his idols, and hereafter also, if ye will not -hearken unto me: but pollute ye my holy name no more with your gifts, -and with your idols. - -20:40 For in mine holy mountain, in the mountain of the height of -Israel, saith the Lord GOD, there shall all the house of Israel, all -of them in the land, serve me: there will I accept them, and there -will I require your offerings, and the firstfruits of your oblations, -with all your holy things. - -20:41 I will accept you with your sweet savour, when I bring you out -from the people, and gather you out of the countries wherein ye have -been scattered; and I will be sanctified in you before the heathen. - -20:42 And ye shall know that I am the LORD, when I shall bring you -into the land of Israel, into the country for the which I lifted up -mine hand to give it to your fathers. - -20:43 And there shall ye remember your ways, and all your doings, -wherein ye have been defiled; and ye shall lothe yourselves in your -own sight for all your evils that ye have committed. - -20:44 And ye shall know that I am the LORD when I have wrought with -you for my name's sake, not according to your wicked ways, nor -according to your corrupt doings, O ye house of Israel, saith the Lord -GOD. - -20:45 Moreover the word of the LORD came unto me, saying, 20:46 Son of -man, set thy face toward the south, and drop thy word toward the -south, and prophesy against the forest of the south field; 20:47 And -say to the forest of the south, Hear the word of the LORD; Thus saith -the Lord GOD; Behold, I will kindle a fire in thee, and it shall -devour every green tree in thee, and every dry tree: the flaming flame -shall not be quenched, and all faces from the south to the north shall -be burned therein. - -20:48 And all flesh shall see that I the LORD have kindled it: it -shall not be quenched. - -20:49 Then said I, Ah Lord GOD! they say of me, Doth he not speak -parables? 21:1 And the word of the LORD came unto me, saying, 21:2 -Son of man, set thy face toward Jerusalem, and drop thy word toward -the holy places, and prophesy against the land of Israel, 21:3 And say -to the land of Israel, Thus saith the LORD; Behold, I am against thee, -and will draw forth my sword out of his sheath, and will cut off from -thee the righteous and the wicked. - -21:4 Seeing then that I will cut off from thee the righteous and the -wicked, therefore shall my sword go forth out of his sheath against -all flesh from the south to the north: 21:5 That all flesh may know -that I the LORD have drawn forth my sword out of his sheath: it shall -not return any more. - -21:6 Sigh therefore, thou son of man, with the breaking of thy loins; -and with bitterness sigh before their eyes. - -21:7 And it shall be, when they say unto thee, Wherefore sighest thou? -that thou shalt answer, For the tidings; because it cometh: and every -heart shall melt, and all hands shall be feeble, and every spirit -shall faint, and all knees shall be weak as water: behold, it cometh, -and shall be brought to pass, saith the Lord GOD. - -21:8 Again the word of the LORD came unto me, saying, 21:9 Son of man, -prophesy, and say, Thus saith the LORD; Say, A sword, a sword is -sharpened, and also furbished: 21:10 It is sharpened to make a sore -slaughter; it is furbished that it may glitter: should we then make -mirth? it contemneth the rod of my son, as every tree. - -21:11 And he hath given it to be furbished, that it may be handled: -this sword is sharpened, and it is furbished, to give it into the hand -of the slayer. - -21:12 Cry and howl, son of man: for it shall be upon my people, it -shall be upon all the princes of Israel: terrors by reason of the -sword shall be upon my people: smite therefore upon thy thigh. - -21:13 Because it is a trial, and what if the sword contemn even the -rod? it shall be no more, saith the Lord GOD. - -21:14 Thou therefore, son of man, prophesy, and smite thine hands -together. and let the sword be doubled the third time, the sword of -the slain: it is the sword of the great men that are slain, which -entereth into their privy chambers. - -21:15 I have set the point of the sword against all their gates, that -their heart may faint, and their ruins be multiplied: ah! it is made -bright, it is wrapped up for the slaughter. - -21:16 Go thee one way or other, either on the right hand, or on the -left, whithersoever thy face is set. - -21:17 I will also smite mine hands together, and I will cause my fury -to rest: I the LORD have said it. - -21:18 The word of the LORD came unto me again, saying, 21:19 Also, -thou son of man, appoint thee two ways, that the sword of the king of -Babylon may come: both twain shall come forth out of one land: and -choose thou a place, choose it at the head of the way to the city. - -21:20 Appoint a way, that the sword may come to Rabbath of the -Ammonites, and to Judah in Jerusalem the defenced. - -21:21 For the king of Babylon stood at the parting of the way, at the -head of the two ways, to use divination: he made his arrows bright, he -consulted with images, he looked in the liver. - -21:22 At his right hand was the divination for Jerusalem, to appoint -captains, to open the mouth in the slaughter, to lift up the voice -with shouting, to appoint battering rams against the gates, to cast a -mount, and to build a fort. - -21:23 And it shall be unto them as a false divination in their sight, -to them that have sworn oaths: but he will call to remembrance the -iniquity, that they may be taken. - -21:24 Therefore thus saith the Lord GOD; Because ye have made your -iniquity to be remembered, in that your transgressions are discovered, -so that in all your doings your sins do appear; because, I say, that -ye are come to remembrance, ye shall be taken with the hand. - -21:25 And thou, profane wicked prince of Israel, whose day is come, -when iniquity shall have an end, 21:26 Thus saith the Lord GOD; Remove -the diadem, and take off the crown: this shall not be the same: exalt -him that is low, and abase him that is high. - -21:27 I will overturn, overturn, overturn, it: and it shall be no -more, until he come whose right it is; and I will give it him. - -21:28 And thou, son of man, prophesy and say, Thus saith the Lord GOD -concerning the Ammonites, and concerning their reproach; even say -thou, The sword, the sword is drawn: for the slaughter it is -furbished, to consume because of the glittering: 21:29 Whiles they see -vanity unto thee, whiles they divine a lie unto thee, to bring thee -upon the necks of them that are slain, of the wicked, whose day is -come, when their iniquity shall have an end. - -21:30 Shall I cause it to return into his sheath? I will judge thee in -the place where thou wast created, in the land of thy nativity. - -21:31 And I will pour out mine indignation upon thee, I will blow -against thee in the fire of my wrath, and deliver thee into the hand -of brutish men, and skilful to destroy. - -21:32 Thou shalt be for fuel to the fire; thy blood shall be in the -midst of the land; thou shalt be no more remembered: for I the LORD -have spoken it. - -22:1 Moreover the word of the LORD came unto me, saying, 22:2 Now, -thou son of man, wilt thou judge, wilt thou judge the bloody city? -yea, thou shalt shew her all her abominations. - -22:3 Then say thou, Thus saith the Lord GOD, The city sheddeth blood -in the midst of it, that her time may come, and maketh idols against -herself to defile herself. - -22:4 Thou art become guilty in thy blood that thou hast shed; and hast -defiled thyself in thine idols which thou hast made; and thou hast -caused thy days to draw near, and art come even unto thy years: -therefore have I made thee a reproach unto the heathen, and a mocking -to all countries. - -22:5 Those that be near, and those that be far from thee, shall mock -thee, which art infamous and much vexed. - -22:6 Behold, the princes of Israel, every one were in thee to their -power to shed blood. - -22:7 In thee have they set light by father and mother: in the midst of -thee have they dealt by oppression with the stranger: in thee have -they vexed the fatherless and the widow. - -22:8 Thou hast despised mine holy things, and hast profaned my -sabbaths. - -22:9 In thee are men that carry tales to shed blood: and in thee they -eat upon the mountains: in the midst of thee they commit lewdness. - -22:10 In thee have they discovered their fathers' nakedness: in thee -have they humbled her that was set apart for pollution. - -22:11 And one hath committed abomination with his neighbour's wife; -and another hath lewdly defiled his daughter in law; and another in -thee hath humbled his sister, his father's daughter. - -22:12 In thee have they taken gifts to shed blood; thou hast taken -usury and increase, and thou hast greedily gained of thy neighbours by -extortion, and hast forgotten me, saith the Lord GOD. - -22:13 Behold, therefore I have smitten mine hand at thy dishonest gain -which thou hast made, and at thy blood which hath been in the midst of -thee. - -22:14 Can thine heart endure, or can thine hands be strong, in the -days that I shall deal with thee? I the LORD have spoken it, and will -do it. - -22:15 And I will scatter thee among the heathen, and disperse thee in -the countries, and will consume thy filthiness out of thee. - -22:16 And thou shalt take thine inheritance in thyself in the sight of -the heathen, and thou shalt know that I am the LORD. - -22:17 And the word of the LORD came unto me, saying, 22:18 Son of man, -the house of Israel is to me become dross: all they are brass, and -tin, and iron, and lead, in the midst of the furnace; they are even -the dross of silver. - -22:19 Therefore thus saith the Lord GOD; Because ye are all become -dross, behold, therefore I will gather you into the midst of -Jerusalem. - -22:20 As they gather silver, and brass, and iron, and lead, and tin, -into the midst of the furnace, to blow the fire upon it, to melt it; -so will I gather you in mine anger and in my fury, and I will leave -you there, and melt you. - -22:21 Yea, I will gather you, and blow upon you in the fire of my -wrath, and ye shall be melted in the midst therof. - -22:22 As silver is melted in the midst of the furnace, so shall ye be -melted in the midst thereof; and ye shall know that I the LORD have -poured out my fury upon you. - -22:23 And the word of the LORD came unto me, saying, 22:24 Son of man, -say unto her, Thou art the land that is not cleansed, nor rained upon -in the day of indignation. - -22:25 There is a conspiracy of her prophets in the midst thereof, like -a roaring lion ravening the prey; they have devoured souls; they have -taken the treasure and precious things; they have made her many widows -in the midst thereof. - -22:26 Her priests have violated my law, and have profaned mine holy -things: they have put no difference between the holy and profane, -neither have they shewed difference between the unclean and the clean, -and have hid their eyes from my sabbaths, and I am profaned among -them. - -22:27 Her princes in the midst thereof are like wolves ravening the -prey, to shed blood, and to destroy souls, to get dishonest gain. - -22:28 And her prophets have daubed them with untempered morter, seeing -vanity, and divining lies unto them, saying, Thus saith the Lord GOD, -when the LORD hath not spoken. - -22:29 The people of the land have used oppression, and exercised -robbery, and have vexed the poor and needy: yea, they have oppressed -the stranger wrongfully. - -22:30 And I sought for a man among them, that should make up the -hedge, and stand in the gap before me for the land, that I should not -destroy it: but I found none. - -22:31 Therefore have I poured out mine indignation upon them; I have -consumed them with the fire of my wrath: their own way have I -recompensed upon their heads, saith the Lord GOD. - -23:1 The word of the LORD came again unto me, saying, 23:2 Son of man, -there were two women, the daughters of one mother: 23:3 And they -committed whoredoms in Egypt; they committed whoredoms in their youth: -there were their breasts pressed, and there they bruised the teats of -their virginity. - -23:4 And the names of them were Aholah the elder, and Aholibah her -sister: and they were mine, and they bare sons and daughters. Thus -were their names; Samaria is Aholah, and Jerusalem Aholibah. - -23:5 And Aholah played the harlot when she was mine; and she doted on -her lovers, on the Assyrians her neighbours, 23:6 Which were clothed -with blue, captains and rulers, all of them desirable young men, -horsemen riding upon horses. - -23:7 Thus she committed her whoredoms with them, with all them that -were the chosen men of Assyria, and with all on whom she doted: with -all their idols she defiled herself. - -23:8 Neither left she her whoredoms brought from Egypt: for in her -youth they lay with her, and they bruised the breasts of her -virginity, and poured their whoredom upon her. - -23:9 Wherefore I have delivered her into the hand of her lovers, into -the hand of the Assyrians, upon whom she doted. - -23:10 These discovered her nakedness: they took her sons and her -daughters, and slew her with the sword: and she became famous among -women; for they had executed judgment upon her. - -23:11 And when her sister Aholibah saw this, she was more corrupt in -her inordinate love than she, and in her whoredoms more than her -sister in her whoredoms. - -23:12 She doted upon the Assyrians her neighbours, captains and rulers -clothed most gorgeously, horsemen riding upon horses, all of them -desirable young men. - -23:13 Then I saw that she was defiled, that they took both one way, -23:14 And that she increased her whoredoms: for when she saw men -pourtrayed upon the wall, the images of the Chaldeans pourtrayed with -vermilion, 23:15 Girded with girdles upon their loins, exceeding in -dyed attire upon their heads, all of them princes to look to, after -the manner of the Babylonians of Chaldea, the land of their nativity: -23:16 And as soon as she saw them with her eyes, she doted upon them, -and sent messengers unto them into Chaldea. - -23:17 And the Babylonians came to her into the bed of love, and they -defiled her with their whoredom, and she was polluted with them, and -her mind was alienated from them. - -23:18 So she discovered her whoredoms, and discovered her nakedness: -then my mind was alienated from her, like as my mind was alienated -from her sister. - -23:19 Yet she multiplied her whoredoms, in calling to remembrance the -days of her youth, wherein she had played the harlot in the land of -Egypt. - -23:20 For she doted upon their paramours, whose flesh is as the flesh -of asses, and whose issue is like the issue of horses. - -23:21 Thus thou calledst to remembrance the lewdness of thy youth, in -bruising thy teats by the Egyptians for the paps of thy youth. - -23:22 Therefore, O Aholibah, thus saith the Lord GOD; Behold, I will -raise up thy lovers against thee, from whom thy mind is alienated, and -I will bring them against thee on every side; 23:23 The Babylonians, -and all the Chaldeans, Pekod, and Shoa, and Koa, and all the Assyrians -with them: all of them desirable young men, captains and rulers, great -lords and renowned, all of them riding upon horses. - -23:24 And they shall come against thee with chariots, wagons, and -wheels, and with an assembly of people, which shall set against thee -buckler and shield and helmet round about: and I will set judgment -before them, and they shall judge thee according to their judgments. - -23:25 And I will set my jealousy against thee, and they shall deal -furiously with thee: they shall take away thy nose and thine ears; and -thy remnant shall fall by the sword: they shall take thy sons and thy -daughters; and thy residue shall be devoured by the fire. - -23:26 They shall also strip thee out of thy clothes, and take away thy -fair jewels. - -23:27 Thus will I make thy lewdness to cease from thee, and thy -whoredom brought from the land of Egypt: so that thou shalt not lift -up thine eyes unto them, nor remember Egypt any more. - -23:28 For thus saith the Lord GOD; Behold, I will deliver thee into -the hand of them whom thou hatest, into the hand of them from whom thy -mind is alienated: 23:29 And they shall deal with thee hatefully, and -shall take away all thy labour, and shall leave thee naked and bare: -and the nakedness of thy whoredoms shall be discovered, both thy -lewdness and thy whoredoms. - -23:30 I will do these things unto thee, because thou hast gone a -whoring after the heathen, and because thou art polluted with their -idols. - -23:31 Thou hast walked in the way of thy sister; therefore will I give -her cup into thine hand. - -23:32 Thus saith the Lord GOD; Thou shalt drink of thy sister's cup -deep and large: thou shalt be laughed to scorn and had in derision; it -containeth much. - -23:33 Thou shalt be filled with drunkenness and sorrow, with the cup -of astonishment and desolation, with the cup of thy sister Samaria. - -23:34 Thou shalt even drink it and suck it out, and thou shalt break -the sherds thereof, and pluck off thine own breasts: for I have spoken -it, saith the Lord GOD. - -23:35 Therefore thus saith the Lord GOD; Because thou hast forgotten -me, and cast me behind thy back, therefore bear thou also thy lewdness -and thy whoredoms. - -23:36 The LORD said moreover unto me; Son of man, wilt thou judge -Aholah and Aholibah? yea, declare unto them their abominations; 23:37 -That they have committed adultery, and blood is in their hands, and -with their idols have they committed adultery, and have also caused -their sons, whom they bare unto me, to pass for them through the fire, -to devour them. - -23:38 Moreover this they have done unto me: they have defiled my -sanctuary in the same day, and have profaned my sabbaths. - -23:39 For when they had slain their children to their idols, then they -came the same day into my sanctuary to profane it; and, lo, thus have -they done in the midst of mine house. - -23:40 And furthermore, that ye have sent for men to come from far, -unto whom a messenger was sent; and, lo, they came: for whom thou -didst wash thyself, paintedst thy eyes, and deckedst thyself with -ornaments, 23:41 And satest upon a stately bed, and a table prepared -before it, whereupon thou hast set mine incense and mine oil. - -23:42 And a voice of a multitude being at ease was with her: and with -the men of the common sort were brought Sabeans from the wilderness, -which put bracelets upon their hands, and beautiful crowns upon their -heads. - -23:43 Then said I unto her that was old in adulteries, Will they now -commit whoredoms with her, and she with them? 23:44 Yet they went in -unto her, as they go in unto a woman that playeth the harlot: so went -they in unto Aholah and unto Aholibah, the lewd women. - -23:45 And the righteous men, they shall judge them after the manner of -adulteresses, and after the manner of women that shed blood; because -they are adulteresses, and blood is in their hands. - -23:46 For thus saith the Lord GOD; I will bring up a company upon -them, and will give them to be removed and spoiled. - -23:47 And the company shall stone them with stones, and dispatch them -with their swords; they shall slay their sons and their daughters, and -burn up their houses with fire. - -23:48 Thus will I cause lewdness to cease out of the land, that all -women may be taught not to do after your lewdness. - -23:49 And they shall recompense your lewdness upon you, and ye shall -bear the sins of your idols: and ye shall know that I am the Lord GOD. - -24:1 Again in the ninth year, in the tenth month, in the tenth day of -the month, the word of the LORD came unto me, saying, 24:2 Son of man, -write thee the name of the day, even of this same day: the king of -Babylon set himself against Jerusalem this same day. - -24:3 And utter a parable unto the rebellious house, and say unto them, -Thus saith the Lord GOD; Set on a pot, set it on, and also pour water -into it: 24:4 Gather the pieces thereof into it, even every good -piece, the thigh, and the shoulder; fill it with the choice bones. - -24:5 Take the choice of the flock, and burn also the bones under it, -and make it boil well, and let them seethe the bones of it therein. - -24:6 Wherefore thus saith the Lord GOD; Woe to the bloody city, to the -pot whose scum is therein, and whose scum is not gone out of it! bring -it out piece by piece; let no lot fall upon it. - -24:7 For her blood is in the midst of her; she set it upon the top of -a rock; she poured it not upon the ground, to cover it with dust; 24:8 -That it might cause fury to come up to take vengeance; I have set her -blood upon the top of a rock, that it should not be covered. - -24:9 Therefore thus saith the Lord GOD; Woe to the bloody city! I will -even make the pile for fire great. - -24:10 Heap on wood, kindle the fire, consume the flesh, and spice it -well, and let the bones be burned. - -24:11 Then set it empty upon the coals thereof, that the brass of it -may be hot, and may burn, and that the filthiness of it may be molten -in it, that the scum of it may be consumed. - -24:12 She hath wearied herself with lies, and her great scum went not -forth out of her: her scum shall be in the fire. - -24:13 In thy filthiness is lewdness: because I have purged thee, and -thou wast not purged, thou shalt not be purged from thy filthiness any -more, till I have caused my fury to rest upon thee. - -24:14 I the LORD have spoken it: it shall come to pass, and I will do -it; I will not go back, neither will I spare, neither will I repent; -according to thy ways, and according to thy doings, shall they judge -thee, saith the Lord GOD. - -24:15 Also the word of the LORD came unto me, saying, 24:16 Son of -man, behold, I take away from thee the desire of thine eyes with a -stroke: yet neither shalt thou mourn nor weep, neither shall thy tears -run down. - -24:17 Forbear to cry, make no mourning for the dead, bind the tire of -thine head upon thee, and put on thy shoes upon thy feet, and cover -not thy lips, and eat not the bread of men. - -24:18 So I spake unto the people in the morning: and at even my wife -died; and I did in the morning as I was commanded. - -24:19 And the people said unto me, Wilt thou not tell us what these -things are to us, that thou doest so? 24:20 Then I answered them, The -word of the LORD came unto me, saying, 24:21 Speak unto the house of -Israel, Thus saith the Lord GOD; Behold, I will profane my sanctuary, -the excellency of your strength, the desire of your eyes, and that -which your soul pitieth; and your sons and your daughters whom ye have -left shall fall by the sword. - -24:22 And ye shall do as I have done: ye shall not cover your lips, -nor eat the bread of men. - -24:23 And your tires shall be upon your heads, and your shoes upon -your feet: ye shall not mourn nor weep; but ye shall pine away for -your iniquities, and mourn one toward another. - -24:24 Thus Ezekiel is unto you a sign: according to all that he hath -done shall ye do: and when this cometh, ye shall know that I am the -Lord GOD. - -24:25 Also, thou son of man, shall it not be in the day when I take -from them their strength, the joy of their glory, the desire of their -eyes, and that whereupon they set their minds, their sons and their -daughters, 24:26 That he that escapeth in that day shall come unto -thee, to cause thee to hear it with thine ears? 24:27 In that day -shall thy mouth be opened to him which is escaped, and thou shalt -speak, and be no more dumb: and thou shalt be a sign unto them; and -they shall know that I am the LORD. - -25:1 The word of the LORD came again unto me, saying, 25:2 Son of man, -set thy face against the Ammonites, and prophesy against them; 25:3 -And say unto the Ammonites, Hear the word of the Lord GOD; Thus saith -the Lord GOD; Because thou saidst, Aha, against my sanctuary, when it -was profaned; and against the land of Israel, when it was desolate; -and against the house of Judah, when they went into captivity; 25:4 -Behold, therefore I will deliver thee to the men of the east for a -possession, and they shall set their palaces in thee, and make their -dwellings in thee: they shall eat thy fruit, and they shall drink thy -milk. - -25:5 And I will make Rabbah a stable for camels, and the Ammonites a -couching place for flocks: and ye shall know that I am the LORD. - -25:6 For thus saith the Lord GOD; Because thou hast clapped thine -hands, and stamped with the feet, and rejoiced in heart with all thy -despite against the land of Israel; 25:7 Behold, therefore I will -stretch out mine hand upon thee, and will deliver thee for a spoil to -the heathen; and I will cut thee off from the people, and I will cause -thee to perish out of the countries: I will destroy thee; and thou -shalt know that I am the LORD. - -25:8 Thus saith the Lord GOD; Because that Moab and Seir do say, -Behold, the house of Judah is like unto all the heathen; 25:9 -Therefore, behold, I will open the side of Moab from the cities, from -his cities which are on his frontiers, the glory of the country, -Bethjeshimoth, Baalmeon, and Kiriathaim, 25:10 Unto the men of the -east with the Ammonites, and will give them in possession, that the -Ammonites may not be remembered among the nations. - -25:11 And I will execute judgments upon Moab; and they shall know that -I am the LORD. - -25:12 Thus saith the Lord GOD; Because that Edom hath dealt against -the house of Judah by taking vengeance, and hath greatly offended, and -revenged himself upon them; 25:13 Therefore thus saith the Lord GOD; I -will also stretch out mine hand upon Edom, and will cut off man and -beast from it; and I will make it desolate from Teman; and they of -Dedan shall fall by the sword. - -25:14 And I will lay my vengeance upon Edom by the hand of my people -Israel: and they shall do in Edom according to mine anger and -according to my fury; and they shall know my vengeance, saith the Lord -GOD. - -25:15 Thus saith the Lord GOD; Because the Philistines have dealt by -revenge, and have taken vengeance with a despiteful heart, to destroy -it for the old hatred; 25:16 Therefore thus saith the Lord GOD; -Behold, I will stretch out mine hand upon the Philistines, and I will -cut off the Cherethims, and destroy the remnant of the sea coast. - -25:17 And I will execute great vengeance upon them with furious -rebukes; and they shall know that I am the LORD, when I shall lay my -vengeance upon them. - -26:1 And it came to pass in the eleventh year, in the first day of the -month, that the word of the LORD came unto me, saying, 26:2 Son of -man, because that Tyrus hath said against Jerusalem, Aha, she is -broken that was the gates of the people: she is turned unto me: I -shall be replenished, now she is laid waste: 26:3 Therefore thus saith -the Lord GOD; Behold, I am against thee, O Tyrus, and will cause many -nations to come up against thee, as the sea causeth his waves to come -up. - -26:4 And they shall destroy the walls of Tyrus, and break down her -towers: I will also scrape her dust from her, and make her like the -top of a rock. - -26:5 It shall be a place for the spreading of nets in the midst of the -sea: for I have spoken it, saith the Lord GOD: and it shall become a -spoil to the nations. - -26:6 And her daughters which are in the field shall be slain by the -sword; and they shall know that I am the LORD. - -26:7 For thus saith the Lord GOD; Behold, I will bring upon Tyrus -Nebuchadrezzar king of Babylon, a king of kings, from the north, with -horses, and with chariots, and with horsemen, and companies, and much -people. - -26:8 He shall slay with the sword thy daughters in the field: and he -shall make a fort against thee, and cast a mount against thee, and -lift up the buckler against thee. - -26:9 And he shall set engines of war against thy walls, and with his -axes he shall break down thy towers. - -26:10 By reason of the abundance of his horses their dust shall cover -thee: thy walls shall shake at the noise of the horsemen, and of the -wheels, and of the chariots, when he shall enter into thy gates, as -men enter into a city wherein is made a breach. - -26:11 With the hoofs of his horses shall he tread down all thy -streets: he shall slay thy people by the sword, and thy strong -garrisons shall go down to the ground. - -26:12 And they shall make a spoil of thy riches, and make a prey of -thy merchandise: and they shall break down thy walls, and destroy thy -pleasant houses: and they shall lay thy stones and thy timber and thy -dust in the midst of the water. - -26:13 And I will cause the noise of thy songs to cease; and the sound -of thy harps shall be no more heard. - -26:14 And I will make thee like the top of a rock: thou shalt be a -place to spread nets upon; thou shalt be built no more: for I the LORD -have spoken it, saith the Lord GOD. - -26:15 Thus saith the Lord GOD to Tyrus; Shall not the isles shake at -the sound of thy fall, when the wounded cry, when the slaughter is -made in the midst of thee? 26:16 Then all the princes of the sea -shall come down from their thrones, and lay away their robes, and put -off their broidered garments: they shall clothe themselves with -trembling; they shall sit upon the ground, and shall tremble at every -moment, and be astonished at thee. - -26:17 And they shall take up a lamentation for thee, and say to thee, -How art thou destroyed, that wast inhabited of seafaring men, the -renowned city, which wast strong in the sea, she and her inhabitants, -which cause their terror to be on all that haunt it! 26:18 Now shall -the isles tremble in the day of thy fall; yea, the isles that are in -the sea shall be troubled at thy departure. - -26:19 For thus saith the Lord GOD; When I shall make thee a desolate -city, like the cities that are not inhabited; when I shall bring up -the deep upon thee, and great waters shall cover thee; 26:20 When I -shall bring thee down with them that descend into the pit, with the -people of old time, and shall set thee in the low parts of the earth, -in places desolate of old, with them that go down to the pit, that -thou be not inhabited; and I shall set glory in the land of the -living; 26:21 I will make thee a terror, and thou shalt be no more: -though thou be sought for, yet shalt thou never be found again, saith -the Lord GOD. - -27:1 The word of the LORD came again unto me, saying, 27:2 Now, thou -son of man, take up a lamentation for Tyrus; 27:3 And say unto Tyrus, -O thou that art situate at the entry of the sea, which art a merchant -of the people for many isles, Thus saith the Lord GOD; O Tyrus, thou -hast said, I am of perfect beauty. - -27:4 Thy borders are in the midst of the seas, thy builders have -perfected thy beauty. - -27:5 They have made all thy ship boards of fir trees of Senir: they -have taken cedars from Lebanon to make masts for thee. - -27:6 Of the oaks of Bashan have they made thine oars; the company of -the Ashurites have made thy benches of ivory, brought out of the isles -of Chittim. - -27:7 Fine linen with broidered work from Egypt was that which thou -spreadest forth to be thy sail; blue and purple from the isles of -Elishah was that which covered thee. - -27:8 The inhabitants of Zidon and Arvad were thy mariners: thy wise -men, O Tyrus, that were in thee, were thy pilots. - -27:9 The ancients of Gebal and the wise men thereof were in thee thy -calkers: all the ships of the sea with their mariners were in thee to -occupy thy merchandise. - -27:10 They of Persia and of Lud and of Phut were in thine army, thy -men of war: they hanged the shield and helmet in thee; they set forth -thy comeliness. - -27:11 The men of Arvad with thine army were upon thy walls round -about, and the Gammadims were in thy towers: they hanged their shields -upon thy walls round about; they have made thy beauty perfect. - -27:12 Tarshish was thy merchant by reason of the multitude of all kind -of riches; with silver, iron, tin, and lead, they traded in thy fairs. - -27:13 Javan, Tubal, and Meshech, they were thy merchants: they traded -the persons of men and vessels of brass in thy market. - -27:14 They of the house of Togarmah traded in thy fairs with horses -and horsemen and mules. - -27:15 The men of Dedan were thy merchants; many isles were the -merchandise of thine hand: they brought thee for a present horns of -ivory and ebony. - -27:16 Syria was thy merchant by reason of the multitude of the wares -of thy making: they occupied in thy fairs with emeralds, purple, and -broidered work, and fine linen, and coral, and agate. - -27:17 Judah, and the land of Israel, they were thy merchants: they -traded in thy market wheat of Minnith, and Pannag, and honey, and oil, -and balm. - -27:18 Damascus was thy merchant in the multitude of the wares of thy -making, for the multitude of all riches; in the wine of Helbon, and -white wool. - -27:19 Dan also and Javan going to and fro occupied in thy fairs: -bright iron, cassia, and calamus, were in thy market. - -27:20 Dedan was thy merchant in precious clothes for chariots. - -27:21 Arabia, and all the princes of Kedar, they occupied with thee in -lambs, and rams, and goats: in these were they thy merchants. - -27:22 The merchants of Sheba and Raamah, they were thy merchants: they -occupied in thy fairs with chief of all spices, and with all precious -stones, and gold. - -27:23 Haran, and Canneh, and Eden, the merchants of Sheba, Asshur, and -Chilmad, were thy merchants. - -27:24 These were thy merchants in all sorts of things, in blue -clothes, and broidered work, and in chests of rich apparel, bound with -cords, and made of cedar, among thy merchandise. - -27:25 The ships of Tarshish did sing of thee in thy market: and thou -wast replenished, and made very glorious in the midst of the seas. - -27:26 Thy rowers have brought thee into great waters: the east wind -hath broken thee in the midst of the seas. - -27:27 Thy riches, and thy fairs, thy merchandise, thy mariners, and -thy pilots, thy calkers, and the occupiers of thy merchandise, and all -thy men of war, that are in thee, and in all thy company which is in -the midst of thee, shall fall into the midst of the seas in the day of -thy ruin. - -27:28 The suburbs shall shake at the sound of the cry of thy pilots. - -27:29 And all that handle the oar, the mariners, and all the pilots of -the sea, shall come down from their ships, they shall stand upon the -land; 27:30 And shall cause their voice to be heard against thee, and -shall cry bitterly, and shall cast up dust upon their heads, they -shall wallow themselves in the ashes: 27:31 And they shall make -themselves utterly bald for thee, and gird them with sackcloth, and -they shall weep for thee with bitterness of heart and bitter wailing. - -27:32 And in their wailing they shall take up a lamentation for thee, -and lament over thee, saying, What city is like Tyrus, like the -destroyed in the midst of the sea? 27:33 When thy wares went forth -out of the seas, thou filledst many people; thou didst enrich the -kings of the earth with the multitude of thy riches and of thy -merchandise. - -27:34 In the time when thou shalt be broken by the seas in the depths -of the waters thy merchandise and all thy company in the midst of thee -shall fall. - -27:35 All the inhabitants of the isles shall be astonished at thee, -and their kings shall be sore afraid, they shall be troubled in their -countenance. - -27:36 The merchants among the people shall hiss at thee; thou shalt be -a terror, and never shalt be any more. - -28:1 The word of the LORD came again unto me, saying, 28:2 Son of man, -say unto the prince of Tyrus, Thus saith the Lord GOD; Because thine -heart is lifted up, and thou hast said, I am a God, I sit in the seat -of God, in the midst of the seas; yet thou art a man, and not God, -though thou set thine heart as the heart of God: 28:3 Behold, thou art -wiser than Daniel; there is no secret that they can hide from thee: -28:4 With thy wisdom and with thine understanding thou hast gotten -thee riches, and hast gotten gold and silver into thy treasures: 28:5 -By thy great wisdom and by thy traffick hast thou increased thy -riches, and thine heart is lifted up because of thy riches: 28:6 -Therefore thus saith the Lord GOD; Because thou hast set thine heart -as the heart of God; 28:7 Behold, therefore I will bring strangers -upon thee, the terrible of the nations: and they shall draw their -swords against the beauty of thy wisdom, and they shall defile thy -brightness. - -28:8 They shall bring thee down to the pit, and thou shalt die the -deaths of them that are slain in the midst of the seas. - -28:9 Wilt thou yet say before him that slayeth thee, I am God? but -thou shalt be a man, and no God, in the hand of him that slayeth thee. - -28:10 Thou shalt die the deaths of the uncircumcised by the hand of -strangers: for I have spoken it, saith the Lord GOD. - -28:11 Moreover the word of the LORD came unto me, saying, 28:12 Son of -man, take up a lamentation upon the king of Tyrus, and say unto him, -Thus saith the Lord GOD; Thou sealest up the sum, full of wisdom, and -perfect in beauty. - -28:13 Thou hast been in Eden the garden of God; every precious stone -was thy covering, the sardius, topaz, and the diamond, the beryl, the -onyx, and the jasper, the sapphire, the emerald, and the carbuncle, -and gold: the workmanship of thy tabrets and of thy pipes was prepared -in thee in the day that thou wast created. - -28:14 Thou art the anointed cherub that covereth; and I have set thee -so: thou wast upon the holy mountain of God; thou hast walked up and -down in the midst of the stones of fire. - -28:15 Thou wast perfect in thy ways from the day that thou wast -created, till iniquity was found in thee. - -28:16 By the multitude of thy merchandise they have filled the midst -of thee with violence, and thou hast sinned: therefore I will cast -thee as profane out of the mountain of God: and I will destroy thee, O -covering cherub, from the midst of the stones of fire. - -28:17 Thine heart was lifted up because of thy beauty, thou hast -corrupted thy wisdom by reason of thy brightness: I will cast thee to -the ground, I will lay thee before kings, that they may behold thee. - -28:18 Thou hast defiled thy sanctuaries by the multitude of thine -iniquities, by the iniquity of thy traffick; therefore will I bring -forth a fire from the midst of thee, it shall devour thee, and I will -bring thee to ashes upon the earth in the sight of all them that -behold thee. - -28:19 All they that know thee among the people shall be astonished at -thee: thou shalt be a terror, and never shalt thou be any more. - -28:20 Again the word of the LORD came unto me, saying, 28:21 Son of -man, set thy face against Zidon, and prophesy against it, 28:22 And -say, Thus saith the Lord GOD; Behold, I am against thee, O Zidon; and -I will be glorified in the midst of thee: and they shall know that I -am the LORD, when I shall have executed judgments in her, and shall be -sanctified in her. - -28:23 For I will send into her pestilence, and blood into her streets; -and the wounded shall be judged in the midst of her by the sword upon -her on every side; and they shall know that I am the LORD. - -28:24 And there shall be no more a pricking brier unto the house of -Israel, nor any grieving thorn of all that are round about them, that -despised them; and they shall know that I am the Lord GOD. - -28:25 Thus saith the Lord GOD; When I shall have gathered the house of -Israel from the people among whom they are scattered, and shall be -sanctified in them in the sight of the heathen, then shall they dwell -in their land that I have given to my servant Jacob. - -28:26 And they shall dwell safely therein, and shall build houses, and -plant vineyards; yea, they shall dwell with confidence, when I have -executed judgments upon all those that despise them round about them; -and they shall know that I am the LORD their God. - -29:1 In the tenth year, in the tenth month, in the twelfth day of the -month, the word of the LORD came unto me, saying, 29:2 Son of man, set -thy face against Pharaoh king of Egypt, and prophesy against him, and -against all Egypt: 29:3 Speak, and say, Thus saith the Lord GOD; -Behold, I am against thee, Pharaoh king of Egypt, the great dragon -that lieth in the midst of his rivers, which hath said, My river is -mine own, and I have made it for myself. - -29:4 But I will put hooks in thy jaws, and I will cause the fish of -thy rivers to stick unto thy scales, and I will bring thee up out of -the midst of thy rivers, and all the fish of thy rivers shall stick -unto thy scales. - -29:5 And I will leave thee thrown into the wilderness, thee and all -the fish of thy rivers: thou shalt fall upon the open fields; thou -shalt not be brought together, nor gathered: I have given thee for -meat to the beasts of the field and to the fowls of the heaven. - -29:6 And all the inhabitants of Egypt shall know that I am the LORD, -because they have been a staff of reed to the house of Israel. - -29:7 When they took hold of thee by thy hand, thou didst break, and -rend all their shoulder: and when they leaned upon thee, thou brakest, -and madest all their loins to be at a stand. - -29:8 Therefore thus saith the Lord GOD; Behold, I will bring a sword -upon thee, and cut off man and beast out of thee. - -29:9 And the land of Egypt shall be desolate and waste; and they shall -know that I am the LORD: because he hath said, The river is mine, and -I have made it. - -29:10 Behold, therefore I am against thee, and against thy rivers, and -I will make the land of Egypt utterly waste and desolate, from the -tower of Syene even unto the border of Ethiopia. - -29:11 No foot of man shall pass through it, nor foot of beast shall -pass through it, neither shall it be inhabited forty years. - -29:12 And I will make the land of Egypt desolate in the midst of the -countries that are desolate, and her cities among the cities that are -laid waste shall be desolate forty years: and I will scatter the -Egyptians among the nations, and will disperse them through the -countries. - -29:13 Yet thus saith the Lord GOD; At the end of forty years will I -gather the Egyptians from the people whither they were scattered: -29:14 And I will bring again the captivity of Egypt, and will cause -them to return into the land of Pathros, into the land of their -habitation; and they shall be there a base kingdom. - -29:15 It shall be the basest of the kingdoms; neither shall it exalt -itself any more above the nations: for I will diminish them, that they -shall no more rule over the nations. - -29:16 And it shall be no more the confidence of the house of Israel, -which bringeth their iniquity to remembrance, when they shall look -after them: but they shall know that I am the Lord GOD. - -29:17 And it came to pass in the seven and twentieth year, in the -first month, in the first day of the month, the word of the LORD came -unto me, saying, 29:18 Son of man, Nebuchadrezzar king of Babylon -caused his army to serve a great service against Tyrus: every head was -made bald, and every shoulder was peeled: yet had he no wages, nor his -army, for Tyrus, for the service that he had served against it: 29:19 -Therefore thus saith the Lord GOD; Behold, I will give the land of -Egypt unto Nebuchadrezzar king of Babylon; and he shall take her -multitude, and take her spoil, and take her prey; and it shall be the -wages for his army. - -29:20 I have given him the land of Egypt for his labour wherewith he -served against it, because they wrought for me, saith the Lord GOD. - -29:21 In that day will I cause the horn of the house of Israel to bud -forth, and I will give thee the opening of the mouth in the midst of -them; and they shall know that I am the LORD. - -30:1 The word of the LORD came again unto me, saying, 30:2 Son of man, -prophesy and say, Thus saith the Lord GOD; Howl ye, Woe worth the day! -30:3 For the day is near, even the day of the LORD is near, a cloudy -day; it shall be the time of the heathen. - -30:4 And the sword shall come upon Egypt, and great pain shall be in -Ethiopia, when the slain shall fall in Egypt, and they shall take away -her multitude, and her foundations shall be broken down. - -30:5 Ethiopia, and Libya, and Lydia, and all the mingled people, and -Chub, and the men of the land that is in league, shall fall with them -by the sword. - -30:6 Thus saith the LORD; They also that uphold Egypt shall fall; and -the pride of her power shall come down: from the tower of Syene shall -they fall in it by the sword, saith the Lord GOD. - -30:7 And they shall be desolate in the midst of the countries that are -desolate, and her cities shall be in the midst of the cities that are -wasted. - -30:8 And they shall know that I am the LORD, when I have set a fire in -Egypt, and when all her helpers shall be destroyed. - -30:9 In that day shall messengers go forth from me in ships to make -the careless Ethiopians afraid, and great pain shall come upon them, -as in the day of Egypt: for, lo, it cometh. - -30:10 Thus saith the Lord GOD; I will also make the multitude of Egypt -to cease by the hand of Nebuchadrezzar king of Babylon. - -30:11 He and his people with him, the terrible of the nations, shall -be brought to destroy the land: and they shall draw their swords -against Egypt, and fill the land with the slain. - -30:12 And I will make the rivers dry, and sell the land into the hand -of the wicked: and I will make the land waste, and all that is -therein, by the hand of strangers: I the LORD have spoken it. - -30:13 Thus saith the Lord GOD; I will also destroy the idols, and I -will cause their images to cease out of Noph; and there shall be no -more a prince of the land of Egypt: and I will put a fear in the land -of Egypt. - -30:14 And I will make Pathros desolate, and will set fire in Zoan, and -will execute judgments in No. - -30:15 And I will pour my fury upon Sin, the strength of Egypt; and I -will cut off the multitude of No. - -30:16 And I will set fire in Egypt: Sin shall have great pain, and No -shall be rent asunder, and Noph shall have distresses daily. - -30:17 The young men of Aven and of Pibeseth shall fall by the sword: -and these cities shall go into captivity. - -30:18 At Tehaphnehes also the day shall be darkened, when I shall -break there the yokes of Egypt: and the pomp of her strength shall -cease in her: as for her, a cloud shall cover her, and her daughters -shall go into captivity. - -30:19 Thus will I execute judgments in Egypt: and they shall know that -I am the LORD. - -30:20 And it came to pass in the eleventh year, in the first month, in -the seventh day of the month, that the word of the LORD came unto me, -saying, 30:21 Son of man, I have broken the arm of Pharaoh king of -Egypt; and, lo, it shall not be bound up to be healed, to put a roller -to bind it, to make it strong to hold the sword. - -30:22 Therefore thus saith the Lord GOD; Behold, I am against Pharaoh -king of Egypt, and will break his arms, the strong, and that which was -broken; and I will cause the sword to fall out of his hand. - -30:23 And I will scatter the Egyptians among the nations, and will -disperse them through the countries. - -30:24 And I will strengthen the arms of the king of Babylon, and put -my sword in his hand: but I will break Pharaoh's arms, and he shall -groan before him with the groanings of a deadly wounded man. - -30:25 But I will strengthen the arms of the king of Babylon, and the -arms of Pharaoh shall fall down; and they shall know that I am the -LORD, when I shall put my sword into the hand of the king of Babylon, -and he shall stretch it out upon the land of Egypt. - -30:26 And I will scatter the Egyptians among the nations, and disperse -them among the countries; and they shall know that I am the LORD. - -31:1 And it came to pass in the eleventh year, in the third month, in -the first day of the month, that the word of the LORD came unto me, -saying, 31:2 Son of man, speak unto Pharaoh king of Egypt, and to his -multitude; Whom art thou like in thy greatness? 31:3 Behold, the -Assyrian was a cedar in Lebanon with fair branches, and with a -shadowing shroud, and of an high stature; and his top was among the -thick boughs. - -31:4 The waters made him great, the deep set him up on high with her -rivers running round about his plants, and sent her little rivers unto -all the trees of the field. - -31:5 Therefore his height was exalted above all the trees of the -field, and his boughs were multiplied, and his branches became long -because of the multitude of waters, when he shot forth. - -31:6 All the fowls of heaven made their nests in his boughs, and under -his branches did all the beasts of the field bring forth their young, -and under his shadow dwelt all great nations. - -31:7 Thus was he fair in his greatness, in the length of his branches: -for his root was by great waters. - -31:8 The cedars in the garden of God could not hide him: the fir trees -were not like his boughs, and the chestnut trees were not like his -branches; nor any tree in the garden of God was like unto him in his -beauty. - -31:9 I have made him fair by the multitude of his branches: so that -all the trees of Eden, that were in the garden of God, envied him. - -31:10 Therefore thus saith the Lord GOD; Because thou hast lifted up -thyself in height, and he hath shot up his top among the thick boughs, -and his heart is lifted up in his height; 31:11 I have therefore -delivered him into the hand of the mighty one of the heathen; he shall -surely deal with him: I have driven him out for his wickedness. - -31:12 And strangers, the terrible of the nations, have cut him off, -and have left him: upon the mountains and in all the valleys his -branches are fallen, and his boughs are broken by all the rivers of -the land; and all the people of the earth are gone down from his -shadow, and have left him. - -31:13 Upon his ruin shall all the fowls of the heaven remain, and all -the beasts of the field shall be upon his branches: 31:14 To the end -that none of all the trees by the waters exalt themselves for their -height, neither shoot up their top among the thick boughs, neither -their trees stand up in their height, all that drink water: for they -are all delivered unto death, to the nether parts of the earth, in the -midst of the children of men, with them that go down to the pit. - -31:15 Thus saith the Lord GOD; In the day when he went down to the -grave I caused a mourning: I covered the deep for him, and I -restrained the floods thereof, and the great waters were stayed: and I -caused Lebanon to mourn for him, and all the trees of the field -fainted for him. - -31:16 I made the nations to shake at the sound of his fall, when I -cast him down to hell with them that descend into the pit: and all the -trees of Eden, the choice and best of Lebanon, all that drink water, -shall be comforted in the nether parts of the earth. - -31:17 They also went down into hell with him unto them that be slain -with the sword; and they that were his arm, that dwelt under his -shadow in the midst of the heathen. - -31:18 To whom art thou thus like in glory and in greatness among the -trees of Eden? yet shalt thou be brought down with the trees of Eden -unto the nether parts of the earth: thou shalt lie in the midst of the -uncircumcised with them that be slain by the sword. This is Pharaoh -and all his multitude, saith the Lord GOD. - -32:1 And it came to pass in the twelfth year, in the twelfth month, in -the first day of the month, that the word of the LORD came unto me, -saying, 32:2 Son of man, take up a lamentation for Pharaoh king of -Egypt, and say unto him, Thou art like a young lion of the nations, -and thou art as a whale in the seas: and thou camest forth with thy -rivers, and troubledst the waters with thy feet, and fouledst their -rivers. - -32:3 Thus saith the Lord GOD; I will therefore spread out my net over -thee with a company of many people; and they shall bring thee up in my -net. - -32:4 Then will I leave thee upon the land, I will cast thee forth upon -the open field, and will cause all the fowls of the heaven to remain -upon thee, and I will fill the beasts of the whole earth with thee. - -32:5 And I will lay thy flesh upon the mountains, and fill the valleys -with thy height. - -32:6 I will also water with thy blood the land wherein thou swimmest, -even to the mountains; and the rivers shall be full of thee. - -32:7 And when I shall put thee out, I will cover the heaven, and make -the stars thereof dark; I will cover the sun with a cloud, and the -moon shall not give her light. - -32:8 All the bright lights of heaven will I make dark over thee, and -set darkness upon thy land, saith the Lord GOD. - -32:9 I will also vex the hearts of many people, when I shall bring thy -destruction among the nations, into the countries which thou hast not -known. - -32:10 Yea, I will make many people amazed at thee, and their kings -shall be horribly afraid for thee, when I shall brandish my sword -before them; and they shall tremble at every moment, every man for his -own life, in the day of thy fall. - -32:11 For thus saith the Lord GOD; The sword of the king of Babylon -shall come upon thee. - -32:12 By the swords of the mighty will I cause thy multitude to fall, -the terrible of the nations, all of them: and they shall spoil the -pomp of Egypt, and all the multitude thereof shall be destroyed. - -32:13 I will destroy also all the beasts thereof from beside the great -waters; neither shall the foot of man trouble them any more, nor the -hoofs of beasts trouble them. - -32:14 Then will I make their waters deep, and cause their rivers to -run like oil, saith the Lord GOD. - -32:15 When I shall make the land of Egypt desolate, and the country -shall be destitute of that whereof it was full, when I shall smite all -them that dwell therein, then shall they know that I am the LORD. - -32:16 This is the lamentation wherewith they shall lament her: the -daughters of the nations shall lament her: they shall lament for her, -even for Egypt, and for all her multitude, saith the Lord GOD. - -32:17 It came to pass also in the twelfth year, in the fifteenth day -of the month, that the word of the LORD came unto me, saying, 32:18 -Son of man, wail for the multitude of Egypt, and cast them down, even -her, and the daughters of the famous nations, unto the nether parts of -the earth, with them that go down into the pit. - -32:19 Whom dost thou pass in beauty? go down, and be thou laid with -the uncircumcised. - -32:20 They shall fall in the midst of them that are slain by the -sword: she is delivered to the sword: draw her and all her multitudes. - -32:21 The strong among the mighty shall speak to him out of the midst -of hell with them that help him: they are gone down, they lie -uncircumcised, slain by the sword. - -32:22 Asshur is there and all her company: his graves are about him: -all of them slain, fallen by the sword: 32:23 Whose graves are set in -the sides of the pit, and her company is round about her grave: all of -them slain, fallen by the sword, which caused terror in the land of -the living. - -32:24 There is Elam and all her multitude round about her grave, all -of them slain, fallen by the sword, which are gone down uncircumcised -into the nether parts of the earth, which caused their terror in the -land of the living; yet have they borne their shame with them that go -down to the pit. - -32:25 They have set her a bed in the midst of the slain with all her -multitude: her graves are round about him: all of them uncircumcised, -slain by the sword: though their terror was caused in the land of the -living, yet have they borne their shame with them that go down to the -pit: he is put in the midst of them that be slain. - -32:26 There is Meshech, Tubal, and all her multitude: her graves are -round about him: all of them uncircumcised, slain by the sword, though -they caused their terror in the land of the living. - -32:27 And they shall not lie with the mighty that are fallen of the -uncircumcised, which are gone down to hell with their weapons of war: -and they have laid their swords under their heads, but their -iniquities shall be upon their bones, though they were the terror of -the mighty in the land of the living. - -32:28 Yea, thou shalt be broken in the midst of the uncircumcised, and -shalt lie with them that are slain with the sword. - -32:29 There is Edom, her kings, and all her princes, which with their -might are laid by them that were slain by the sword: they shall lie -with the uncircumcised, and with them that go down to the pit. - -32:30 There be the princes of the north, all of them, and all the -Zidonians, which are gone down with the slain; with their terror they -are ashamed of their might; and they lie uncircumcised with them that -be slain by the sword, and bear their shame with them that go down to -the pit. - -32:31 Pharaoh shall see them, and shall be comforted over all his -multitude, even Pharaoh and all his army slain by the sword, saith the -Lord GOD. - -32:32 For I have caused my terror in the land of the living: and he -shall be laid in the midst of the uncircumcised with them that are -slain with the sword, even Pharaoh and all his multitude, saith the -Lord GOD. - -33:1 Again the word of the LORD came unto me, saying, 33:2 Son of man, -speak to the children of thy people, and say unto them, When I bring -the sword upon a land, if the people of the land take a man of their -coasts, and set him for their watchman: 33:3 If when he seeth the -sword come upon the land, he blow the trumpet, and warn the people; -33:4 Then whosoever heareth the sound of the trumpet, and taketh not -warning; if the sword come, and take him away, his blood shall be upon -his own head. - -33:5 He heard the sound of the trumpet, and took not warning; his -blood shall be upon him. But he that taketh warning shall deliver his -soul. - -33:6 But if the watchman see the sword come, and blow not the trumpet, -and the people be not warned; if the sword come, and take any person -from among them, he is taken away in his iniquity; but his blood will -I require at the watchman's hand. - -33:7 So thou, O son of man, I have set thee a watchman unto the house -of Israel; therefore thou shalt hear the word at my mouth, and warn -them from me. - -33:8 When I say unto the wicked, O wicked man, thou shalt surely die; -if thou dost not speak to warn the wicked from his way, that wicked -man shall die in his iniquity; but his blood will I require at thine -hand. - -33:9 Nevertheless, if thou warn the wicked of his way to turn from it; -if he do not turn from his way, he shall die in his iniquity; but thou -hast delivered thy soul. - -33:10 Therefore, O thou son of man, speak unto the house of Israel; -Thus ye speak, saying, If our transgressions and our sins be upon us, -and we pine away in them, how should we then live? 33:11 Say unto -them, As I live, saith the Lord GOD, I have no pleasure in the death -of the wicked; but that the wicked turn from his way and live: turn -ye, turn ye from your evil ways; for why will ye die, O house of -Israel? 33:12 Therefore, thou son of man, say unto the children of -thy people, The righteousness of the righteous shall not deliver him -in the day of his transgression: as for the wickedness of the wicked, -he shall not fall thereby in the day that he turneth from his -wickedness; neither shall the righteous be able to live for his -righteousness in the day that he sinneth. - -33:13 When I shall say to the righteous, that he shall surely live; if -he trust to his own righteousness, and commit iniquity, all his -righteousnesses shall not be remembered; but for his iniquity that he -hath committed, he shall die for it. - -33:14 Again, when I say unto the wicked, Thou shalt surely die; if he -turn from his sin, and do that which is lawful and right; 33:15 If the -wicked restore the pledge, give again that he had robbed, walk in the -statutes of life, without committing iniquity; he shall surely live, -he shall not die. - -33:16 None of his sins that he hath committed shall be mentioned unto -him: he hath done that which is lawful and right; he shall surely -live. - -33:17 Yet the children of thy people say, The way of the Lord is not -equal: but as for them, their way is not equal. - -33:18 When the righteous turneth from his righteousness, and -committeth iniquity, he shall even die thereby. - -33:19 But if the wicked turn from his wickedness, and do that which is -lawful and right, he shall live thereby. - -33:20 Yet ye say, The way of the Lord is not equal. O ye house of -Israel, I will judge you every one after his ways. - -33:21 And it came to pass in the twelfth year of our captivity, in the -tenth month, in the fifth day of the month, that one that had escaped -out of Jerusalem came unto me, saying, The city is smitten. - -33:22 Now the hand of the LORD was upon me in the evening, afore he -that was escaped came; and had opened my mouth, until he came to me in -the morning; and my mouth was opened, and I was no more dumb. - -33:23 Then the word of the LORD came unto me, saying, 33:24 Son of -man, they that inhabit those wastes of the land of Israel speak, -saying, Abraham was one, and he inherited the land: but we are many; -the land is given us for inheritance. - -33:25 Wherefore say unto them, Thus saith the Lord GOD; Ye eat with -the blood, and lift up your eyes toward your idols, and shed blood: -and shall ye possess the land? 33:26 Ye stand upon your sword, ye -work abomination, and ye defile every one his neighbour's wife: and -shall ye possess the land? 33:27 Say thou thus unto them, Thus saith -the Lord GOD; As I live, surely they that are in the wastes shall fall -by the sword, and him that is in the open field will I give to the -beasts to be devoured, and they that be in the forts and in the caves -shall die of the pestilence. - -33:28 For I will lay the land most desolate, and the pomp of her -strength shall cease; and the mountains of Israel shall be desolate, -that none shall pass through. - -33:29 Then shall they know that I am the LORD, when I have laid the -land most desolate because of all their abominations which they have -committed. - -33:30 Also, thou son of man, the children of thy people still are -talking against thee by the walls and in the doors of the houses, and -speak one to another, every one to his brother, saying, Come, I pray -you, and hear what is the word that cometh forth from the LORD. - -33:31 And they come unto thee as the people cometh, and they sit -before thee as my people, and they hear thy words, but they will not -do them: for with their mouth they shew much love, but their heart -goeth after their covetousness. - -33:32 And, lo, thou art unto them as a very lovely song of one that -hath a pleasant voice, and can play well on an instrument: for they -hear thy words, but they do them not. - -33:33 And when this cometh to pass, (lo, it will come,) then shall -they know that a prophet hath been among them. - -34:1 And the word of the LORD came unto me, saying, 34:2 Son of man, -prophesy against the shepherds of Israel, prophesy, and say unto them, -Thus saith the Lord GOD unto the shepherds; Woe be to the shepherds of -Israel that do feed themselves! should not the shepherds feed the -flocks? 34:3 Ye eat the fat, and ye clothe you with the wool, ye kill -them that are fed: but ye feed not the flock. - -34:4 The diseased have ye not strengthened, neither have ye healed -that which was sick, neither have ye bound up that which was broken, -neither have ye brought again that which was driven away, neither have -ye sought that which was lost; but with force and with cruelty have ye -ruled them. - -34:5 And they were scattered, because there is no shepherd: and they -became meat to all the beasts of the field, when they were scattered. - -34:6 My sheep wandered through all the mountains, and upon every high -hill: yea, my flock was scattered upon all the face of the earth, and -none did search or seek after them. - -34:7 Therefore, ye shepherds, hear the word of the LORD; 34:8 As I -live, saith the Lord GOD, surely because my flock became a prey, and -my flock became meat to every beast of the field, because there was no -shepherd, neither did my shepherds search for my flock, but the -shepherds fed themselves, and fed not my flock; 34:9 Therefore, O ye -shepherds, hear the word of the LORD; 34:10 Thus saith the Lord GOD; -Behold, I am against the shepherds; and I will require my flock at -their hand, and cause them to cease from feeding the flock; neither -shall the shepherds feed themselves any more; for I will deliver my -flock from their mouth, that they may not be meat for them. - -34:11 For thus saith the Lord GOD; Behold, I, even I, will both search -my sheep, and seek them out. - -34:12 As a shepherd seeketh out his flock in the day that he is among -his sheep that are scattered; so will I seek out my sheep, and will -deliver them out of all places where they have been scattered in the -cloudy and dark day. - -34:13 And I will bring them out from the people, and gather them from -the countries, and will bring them to their own land, and feed them -upon the mountains of Israel by the rivers, and in all the inhabited -places of the country. - -34:14 I will feed them in a good pasture, and upon the high mountains -of Israel shall their fold be: there shall they lie in a good fold, -and in a fat pasture shall they feed upon the mountains of Israel. - -34:15 I will feed my flock, and I will cause them to lie down, saith -the Lord GOD. - -34:16 I will seek that which was lost, and bring again that which was -driven away, and will bind up that which was broken, and will -strengthen that which was sick: but I will destroy the fat and the -strong; I will feed them with judgment. - -34:17 And as for you, O my flock, thus saith the Lord GOD; Behold, I -judge between cattle and cattle, between the rams and the he goats. - -34:18 Seemeth it a small thing unto you to have eaten up the good -pasture, but ye must tread down with your feet the residue of your -pastures? and to have drunk of the deep waters, but ye must foul the -residue with your feet? 34:19 And as for my flock, they eat that -which ye have trodden with your feet; and they drink that which ye -have fouled with your feet. - -34:20 Therefore thus saith the Lord GOD unto them; Behold, I, even I, -will judge between the fat cattle and between the lean cattle. - -34:21 Because ye have thrust with side and with shoulder, and pushed -all the diseased with your horns, till ye have scattered them abroad; -34:22 Therefore will I save my flock, and they shall no more be a -prey; and I will judge between cattle and cattle. - -34:23 And I will set up one shepherd over them, and he shall feed -them, even my servant David; he shall feed them, and he shall be their -shepherd. - -34:24 And I the LORD will be their God, and my servant David a prince -among them; I the LORD have spoken it. - -34:25 And I will make with them a covenant of peace, and will cause -the evil beasts to cease out of the land: and they shall dwell safely -in the wilderness, and sleep in the woods. - -34:26 And I will make them and the places round about my hill a -blessing; and I will cause the shower to come down in his season; -there shall be showers of blessing. - -34:27 And the tree of the field shall yield her fruit, and the earth -shall yield her increase, and they shall be safe in their land, and -shall know that I am the LORD, when I have broken the bands of their -yoke, and delivered them out of the hand of those that served -themselves of them. - -34:28 And they shall no more be a prey to the heathen, neither shall -the beast of the land devour them; but they shall dwell safely, and -none shall make them afraid. - -34:29 And I will raise up for them a plant of renown, and they shall -be no more consumed with hunger in the land, neither bear the shame of -the heathen any more. - -34:30 Thus shall they know that I the LORD their God am with them, and -that they, even the house of Israel, are my people, saith the Lord -GOD. - -34:31 And ye my flock, the flock of my pasture, are men, and I am your -God, saith the Lord GOD. - -35:1 Moreover the word of the LORD came unto me, saying, 35:2 Son of -man, set thy face against mount Seir, and prophesy against it, 35:3 -And say unto it, Thus saith the Lord GOD; Behold, O mount Seir, I am -against thee, and I will stretch out mine hand against thee, and I -will make thee most desolate. - -35:4 I will lay thy cities waste, and thou shalt be desolate, and thou -shalt know that I am the LORD. - -35:5 Because thou hast had a perpetual hatred, and hast shed the blood -of the children of Israel by the force of the sword in the time of -their calamity, in the time that their iniquity had an end: 35:6 -Therefore, as I live, saith the Lord GOD, I will prepare thee unto -blood, and blood shall pursue thee: sith thou hast not hated blood, -even blood shall pursue thee. - -35:7 Thus will I make mount Seir most desolate, and cut off from it -him that passeth out and him that returneth. - -35:8 And I will fill his mountains with his slain men: in thy hills, -and in thy valleys, and in all thy rivers, shall they fall that are -slain with the sword. - -35:9 I will make thee perpetual desolations, and thy cities shall not -return: and ye shall know that I am the LORD. - -35:10 Because thou hast said, These two nations and these two -countries shall be mine, and we will possess it; whereas the LORD was -there: 35:11 Therefore, as I live, saith the Lord GOD, I will even do -according to thine anger, and according to thine envy which thou hast -used out of thy hatred against them; and I will make myself known -among them, when I have judged thee. - -35:12 And thou shalt know that I am the LORD, and that I have heard -all thy blasphemies which thou hast spoken against the mountains of -Israel, saying, They are laid desolate, they are given us to consume. - -35:13 Thus with your mouth ye have boasted against me, and have -multiplied your words against me: I have heard them. - -35:14 Thus saith the Lord GOD; When the whole earth rejoiceth, I will -make thee desolate. - -35:15 As thou didst rejoice at the inheritance of the house of Israel, -because it was desolate, so will I do unto thee: thou shalt be -desolate, O mount Seir, and all Idumea, even all of it: and they shall -know that I am the LORD. - -36:1 Also, thou son of man, prophesy unto the mountains of Israel, and -say, Ye mountains of Israel, hear the word of the LORD: 36:2 Thus -saith the Lord GOD; Because the enemy hath said against you, Aha, even -the ancient high places are ours in possession: 36:3 Therefore -prophesy and say, Thus saith the Lord GOD; Because they have made you -desolate, and swallowed you up on every side, that ye might be a -possession unto the residue of the heathen, and ye are taken up in the -lips of talkers, and are an infamy of the people: 36:4 Therefore, ye -mountains of Israel, hear the word of the Lord GOD; Thus saith the -Lord GOD to the mountains, and to the hills, to the rivers, and to the -valleys, to the desolate wastes, and to the cities that are forsaken, -which became a prey and derision to the residue of the heathen that -are round about; 36:5 Therefore thus saith the Lord GOD; Surely in the -fire of my jealousy have I spoken against the residue of the heathen, -and against all Idumea, which have appointed my land into their -possession with the joy of all their heart, with despiteful minds, to -cast it out for a prey. - -36:6 Prophesy therefore concerning the land of Israel, and say unto -the mountains, and to the hills, to the rivers, and to the valleys, -Thus saith the Lord GOD; Behold, I have spoken in my jealousy and in -my fury, because ye have borne the shame of the heathen: 36:7 -Therefore thus saith the Lord GOD; I have lifted up mine hand, Surely -the heathen that are about you, they shall bear their shame. - -36:8 But ye, O mountains of Israel, ye shall shoot forth your -branches, and yield your fruit to my people of Israel; for they are at -hand to come. - -36:9 For, behold, I am for you, and I will turn unto you, and ye shall -be tilled and sown: 36:10 And I will multiply men upon you, all the -house of Israel, even all of it: and the cities shall be inhabited, -and the wastes shall be builded: 36:11 And I will multiply upon you -man and beast; and they shall increase and bring fruit: and I will -settle you after your old estates, and will do better unto you than at -your beginnings: and ye shall know that I am the LORD. - -36:12 Yea, I will cause men to walk upon you, even my people Israel; -and they shall possess thee, and thou shalt be their inheritance, and -thou shalt no more henceforth bereave them of men. - -36:13 Thus saith the Lord GOD; Because they say unto you, Thou land -devourest up men, and hast bereaved thy nations: 36:14 Therefore thou -shalt devour men no more, neither bereave thy nations any more, saith -the Lord GOD. - -36:15 Neither will I cause men to hear in thee the shame of the -heathen any more, neither shalt thou bear the reproach of the people -any more, neither shalt thou cause thy nations to fall any more, saith -the Lord GOD. - -36:16 Moreover the word of the LORD came unto me, saying, 36:17 Son of -man, when the house of Israel dwelt in their own land, they defiled it -by their own way and by their doings: their way was before me as the -uncleanness of a removed woman. - -36:18 Wherefore I poured my fury upon them for the blood that they had -shed upon the land, and for their idols wherewith they had polluted -it: 36:19 And I scattered them among the heathen, and they were -dispersed through the countries: according to their way and according -to their doings I judged them. - -36:20 And when they entered unto the heathen, whither they went, they -profaned my holy name, when they said to them, These are the people of -the LORD, and are gone forth out of his land. - -36:21 But I had pity for mine holy name, which the house of Israel had -profaned among the heathen, whither they went. - -36:22 Therefore say unto the house of Israel, thus saith the Lord GOD; -I do not this for your sakes, O house of Israel, but for mine holy -name's sake, which ye have profaned among the heathen, whither ye -went. - -36:23 And I will sanctify my great name, which was profaned among the -heathen, which ye have profaned in the midst of them; and the heathen -shall know that I am the LORD, saith the Lord GOD, when I shall be -sanctified in you before their eyes. - -36:24 For I will take you from among the heathen, and gather you out -of all countries, and will bring you into your own land. - -36:25 Then will I sprinkle clean water upon you, and ye shall be -clean: from all your filthiness, and from all your idols, will I -cleanse you. - -36:26 A new heart also will I give you, and a new spirit will I put -within you: and I will take away the stony heart out of your flesh, -and I will give you an heart of flesh. - -36:27 And I will put my spirit within you, and cause you to walk in my -statutes, and ye shall keep my judgments, and do them. - -36:28 And ye shall dwell in the land that I gave to your fathers; and -ye shall be my people, and I will be your God. - -36:29 I will also save you from all your uncleannesses: and I will -call for the corn, and will increase it, and lay no famine upon you. - -36:30 And I will multiply the fruit of the tree, and the increase of -the field, that ye shall receive no more reproach of famine among the -heathen. - -36:31 Then shall ye remember your own evil ways, and your doings that -were not good, and shall lothe yourselves in your own sight for your -iniquities and for your abominations. - -36:32 Not for your sakes do I this, saith the Lord GOD, be it known -unto you: be ashamed and confounded for your own ways, O house of -Israel. - -36:33 Thus saith the Lord GOD; In the day that I shall have cleansed -you from all your iniquities I will also cause you to dwell in the -cities, and the wastes shall be builded. - -36:34 And the desolate land shall be tilled, whereas it lay desolate -in the sight of all that passed by. - -36:35 And they shall say, This land that was desolate is become like -the garden of Eden; and the waste and desolate and ruined cities are -become fenced, and are inhabited. - -36:36 Then the heathen that are left round about you shall know that I -the LORD build the ruined places, and plant that that was desolate: I -the LORD have spoken it, and I will do it. - -36:37 Thus saith the Lord GOD; I will yet for this be enquired of by -the house of Israel, to do it for them; I will increase them with men -like a flock. - -36:38 As the holy flock, as the flock of Jerusalem in her solemn -feasts; so shall the waste cities be filled with flocks of men: and -they shall know that I am the LORD. - -37:1 The hand of the LORD was upon me, and carried me out in the -spirit of the LORD, and set me down in the midst of the valley which -was full of bones, 37:2 And caused me to pass by them round about: -and, behold, there were very many in the open valley; and, lo, they -were very dry. - -37:3 And he said unto me, Son of man, can these bones live? And I -answered, O Lord GOD, thou knowest. - -37:4 Again he said unto me, Prophesy upon these bones, and say unto -them, O ye dry bones, hear the word of the LORD. - -37:5 Thus saith the Lord GOD unto these bones; Behold, I will cause -breath to enter into you, and ye shall live: 37:6 And I will lay -sinews upon you, and will bring up flesh upon you, and cover you with -skin, and put breath in you, and ye shall live; and ye shall know that -I am the LORD. - -37:7 So I prophesied as I was commanded: and as I prophesied, there -was a noise, and behold a shaking, and the bones came together, bone -to his bone. - -37:8 And when I beheld, lo, the sinews and the flesh came up upon -them, and the skin covered them above: but there was no breath in -them. - -37:9 Then said he unto me, Prophesy unto the wind, prophesy, son of -man, and say to the wind, Thus saith the Lord GOD; Come from the four -winds, O breath, and breathe upon these slain, that they may live. - -37:10 So I prophesied as he commanded me, and the breath came into -them, and they lived, and stood up upon their feet, an exceeding great -army. - -37:11 Then he said unto me, Son of man, these bones are the whole -house of Israel: behold, they say, Our bones are dried, and our hope -is lost: we are cut off for our parts. - -37:12 Therefore prophesy and say unto them, Thus saith the Lord GOD; -Behold, O my people, I will open your graves, and cause you to come up -out of your graves, and bring you into the land of Israel. - -37:13 And ye shall know that I am the LORD, when I have opened your -graves, O my people, and brought you up out of your graves, 37:14 And -shall put my spirit in you, and ye shall live, and I shall place you -in your own land: then shall ye know that I the LORD have spoken it, -and performed it, saith the LORD. - -37:15 The word of the LORD came again unto me, saying, 37:16 Moreover, -thou son of man, take thee one stick, and write upon it, For Judah, -and for the children of Israel his companions: then take another -stick, and write upon it, For Joseph, the stick of Ephraim and for all -the house of Israel his companions: 37:17 And join them one to another -into one stick; and they shall become one in thine hand. - -37:18 And when the children of thy people shall speak unto thee, -saying, Wilt thou not shew us what thou meanest by these? 37:19 Say -unto them, Thus saith the Lord GOD; Behold, I will take the stick of -Joseph, which is in the hand of Ephraim, and the tribes of Israel his -fellows, and will put them with him, even with the stick of Judah, and -make them one stick, and they shall be one in mine hand. - -37:20 And the sticks whereon thou writest shall be in thine hand -before their eyes. - -37:21 And say unto them, Thus saith the Lord GOD; Behold, I will take -the children of Israel from among the heathen, whither they be gone, -and will gather them on every side, and bring them into their own -land: 37:22 And I will make them one nation in the land upon the -mountains of Israel; and one king shall be king to them all: and they -shall be no more two nations, neither shall they be divided into two -kingdoms any more at all. - -37:23 Neither shall they defile themselves any more with their idols, -nor with their detestable things, nor with any of their -transgressions: but I will save them out of all their dwellingplaces, -wherein they have sinned, and will cleanse them: so shall they be my -people, and I will be their God. - -37:24 And David my servant shall be king over them; and they all shall -have one shepherd: they shall also walk in my judgments, and observe -my statutes, and do them. - -37:25 And they shall dwell in the land that I have given unto Jacob my -servant, wherein your fathers have dwelt; and they shall dwell -therein, even they, and their children, and their children's children -for ever: and my servant David shall be their prince for ever. - -37:26 Moreover I will make a covenant of peace with them; it shall be -an everlasting covenant with them: and I will place them, and multiply -them, and will set my sanctuary in the midst of them for evermore. - -37:27 My tabernacle also shall be with them: yea, I will be their God, -and they shall be my people. - -37:28 And the heathen shall know that I the LORD do sanctify Israel, -when my sanctuary shall be in the midst of them for evermore. - -38:1 And the word of the LORD came unto me, saying, 38:2 Son of man, -set thy face against Gog, the land of Magog, the chief prince of -Meshech and Tubal, and prophesy against him, 38:3 And say, Thus saith -the Lord GOD; Behold, I am against thee, O Gog, the chief prince of -Meshech and Tubal: 38:4 And I will turn thee back, and put hooks into -thy jaws, and I will bring thee forth, and all thine army, horses and -horsemen, all of them clothed with all sorts of armour, even a great -company with bucklers and shields, all of them handling swords: 38:5 -Persia, Ethiopia, and Libya with them; all of them with shield and -helmet: 38:6 Gomer, and all his bands; the house of Togarmah of the -north quarters, and all his bands: and many people with thee. - -38:7 Be thou prepared, and prepare for thyself, thou, and all thy -company that are assembled unto thee, and be thou a guard unto them. - -38:8 After many days thou shalt be visited: in the latter years thou -shalt come into the land that is brought back from the sword, and is -gathered out of many people, against the mountains of Israel, which -have been always waste: but it is brought forth out of the nations, -and they shall dwell safely all of them. - -38:9 Thou shalt ascend and come like a storm, thou shalt be like a -cloud to cover the land, thou, and all thy bands, and many people with -thee. - -38:10 Thus saith the Lord GOD; It shall also come to pass, that at the -same time shall things come into thy mind, and thou shalt think an -evil thought: 38:11 And thou shalt say, I will go up to the land of -unwalled villages; I will go to them that are at rest, that dwell -safely, all of them dwelling without walls, and having neither bars -nor gates, 38:12 To take a spoil, and to take a prey; to turn thine -hand upon the desolate places that are now inhabited, and upon the -people that are gathered out of the nations, which have gotten cattle -and goods, that dwell in the midst of the land. - -38:13 Sheba, and Dedan, and the merchants of Tarshish, with all the -young lions thereof, shall say unto thee, Art thou come to take a -spoil? hast thou gathered thy company to take a prey? to carry away -silver and gold, to take away cattle and goods, to take a great spoil? -38:14 Therefore, son of man, prophesy and say unto Gog, Thus saith the -Lord GOD; In that day when my people of Israel dwelleth safely, shalt -thou not know it? 38:15 And thou shalt come from thy place out of the -north parts, thou, and many people with thee, all of them riding upon -horses, a great company, and a mighty army: 38:16 And thou shalt come -up against my people of Israel, as a cloud to cover the land; it shall -be in the latter days, and I will bring thee against my land, that the -heathen may know me, when I shall be sanctified in thee, O Gog, before -their eyes. - -38:17 Thus saith the Lord GOD; Art thou he of whom I have spoken in -old time by my servants the prophets of Israel, which prophesied in -those days many years that I would bring thee against them? 38:18 And -it shall come to pass at the same time when Gog shall come against the -land of Israel, saith the Lord GOD, that my fury shall come up in my -face. - -38:19 For in my jealousy and in the fire of my wrath have I spoken, -Surely in that day there shall be a great shaking in the land of -Israel; 38:20 So that the fishes of the sea, and the fowls of the -heaven, and the beasts of the field, and all creeping things that -creep upon the earth, and all the men that are upon the face of the -earth, shall shake at my presence, and the mountains shall be thrown -down, and the steep places shall fall, and every wall shall fall to -the ground. - -38:21 And I will call for a sword against him throughout all my -mountains, saith the Lord GOD: every man's sword shall be against his -brother. - -38:22 And I will plead against him with pestilence and with blood; and -I will rain upon him, and upon his bands, and upon the many people -that are with him, an overflowing rain, and great hailstones, fire, -and brimstone. - -38:23 Thus will I magnify myself, and sanctify myself; and I will be -known in the eyes of many nations, and they shall know that I am the -LORD. - -39:1 Therefore, thou son of man, prophesy against Gog, and say, Thus -saith the Lord GOD; Behold, I am against thee, O Gog, the chief prince -of Meshech and Tubal: 39:2 And I will turn thee back, and leave but -the sixth part of thee, and will cause thee to come up from the north -parts, and will bring thee upon the mountains of Israel: 39:3 And I -will smite thy bow out of thy left hand, and will cause thine arrows -to fall out of thy right hand. - -39:4 Thou shalt fall upon the mountains of Israel, thou, and all thy -bands, and the people that is with thee: I will give thee unto the -ravenous birds of every sort, and to the beasts of the field to be -devoured. - -39:5 Thou shalt fall upon the open field: for I have spoken it, saith -the Lord GOD. - -39:6 And I will send a fire on Magog, and among them that dwell -carelessly in the isles: and they shall know that I am the LORD. - -39:7 So will I make my holy name known in the midst of my people -Israel; and I will not let them pollute my holy name any more: and the -heathen shall know that I am the LORD, the Holy One in Israel. - -39:8 Behold, it is come, and it is done, saith the Lord GOD; this is -the day whereof I have spoken. - -39:9 And they that dwell in the cities of Israel shall go forth, and -shall set on fire and burn the weapons, both the shields and the -bucklers, the bows and the arrows, and the handstaves, and the spears, -and they shall burn them with fire seven years: 39:10 So that they -shall take no wood out of the field, neither cut down any out of the -forests; for they shall burn the weapons with fire: and they shall -spoil those that spoiled them, and rob those that robbed them, saith -the Lord GOD. - -39:11 And it shall come to pass in that day, that I will give unto Gog -a place there of graves in Israel, the valley of the passengers on the -east of the sea: and it shall stop the noses of the passengers: and -there shall they bury Gog and all his multitude: and they shall call -it The valley of Hamongog. - -39:12 And seven months shall the house of Israel be burying of them, -that they may cleanse the land. - -39:13 Yea, all the people of the land shall bury them; and it shall be -to them a renown the day that I shall be glorified, saith the Lord -GOD. - -39:14 And they shall sever out men of continual employment, passing -through the land to bury with the passengers those that remain upon -the face of the earth, to cleanse it: after the end of seven months -shall they search. - -39:15 And the passengers that pass through the land, when any seeth a -man's bone, then shall he set up a sign by it, till the buriers have -buried it in the valley of Hamongog. - -39:16 And also the name of the city shall be Hamonah. Thus shall they -cleanse the land. - -39:17 And, thou son of man, thus saith the Lord GOD; Speak unto every -feathered fowl, and to every beast of the field, Assemble yourselves, -and come; gather yourselves on every side to my sacrifice that I do -sacrifice for you, even a great sacrifice upon the mountains of -Israel, that ye may eat flesh, and drink blood. - -39:18 Ye shall eat the flesh of the mighty, and drink the blood of the -princes of the earth, of rams, of lambs, and of goats, of bullocks, -all of them fatlings of Bashan. - -39:19 And ye shall eat fat till ye be full, and drink blood till ye be -drunken, of my sacrifice which I have sacrificed for you. - -39:20 Thus ye shall be filled at my table with horses and chariots, -with mighty men, and with all men of war, saith the Lord GOD. - -39:21 And I will set my glory among the heathen, and all the heathen -shall see my judgment that I have executed, and my hand that I have -laid upon them. - -39:22 So the house of Israel shall know that I am the LORD their God -from that day and forward. - -39:23 And the heathen shall know that the house of Israel went into -captivity for their iniquity: because they trespassed against me, -therefore hid I my face from them, and gave them into the hand of -their enemies: so fell they all by the sword. - -39:24 According to their uncleanness and according to their -transgressions have I done unto them, and hid my face from them. - -39:25 Therefore thus saith the Lord GOD; Now will I bring again the -captivity of Jacob, and have mercy upon the whole house of Israel, and -will be jealous for my holy name; 39:26 After that they have borne -their shame, and all their trespasses whereby they have trespassed -against me, when they dwelt safely in their land, and none made them -afraid. - -39:27 When I have brought them again from the people, and gathered -them out of their enemies' lands, and am sanctified in them in the -sight of many nations; 39:28 Then shall they know that I am the LORD -their God, which caused them to be led into captivity among the -heathen: but I have gathered them unto their own land, and have left -none of them any more there. - -39:29 Neither will I hide my face any more from them: for I have -poured out my spirit upon the house of Israel, saith the Lord GOD. - -40:1 In the five and twentieth year of our captivity, in the beginning -of the year, in the tenth day of the month, in the fourteenth year -after that the city was smitten, in the selfsame day the hand of the -LORD was upon me, and brought me thither. - -40:2 In the visions of God brought he me into the land of Israel, and -set me upon a very high mountain, by which was as the frame of a city -on the south. - -40:3 And he brought me thither, and, behold, there was a man, whose -appearance was like the appearance of brass, with a line of flax in -his hand, and a measuring reed; and he stood in the gate. - -40:4 And the man said unto me, Son of man, behold with thine eyes, and -hear with thine ears, and set thine heart upon all that I shall shew -thee; for to the intent that I might shew them unto thee art thou -brought hither: declare all that thou seest to the house of Israel. - -40:5 And behold a wall on the outside of the house round about, and in -the man's hand a measuring reed of six cubits long by the cubit and an -hand breadth: so he measured the breadth of the building, one reed; -and the height, one reed. - -40:6 Then came he unto the gate which looketh toward the east, and -went up the stairs thereof, and measured the threshold of the gate, -which was one reed broad; and the other threshold of the gate, which -was one reed broad. - -40:7 And every little chamber was one reed long, and one reed broad; -and between the little chambers were five cubits; and the threshold of -the gate by the porch of the gate within was one reed. - -40:8 He measured also the porch of the gate within, one reed. - -40:9 Then measured he the porch of the gate, eight cubits; and the -posts thereof, two cubits; and the porch of the gate was inward. - -40:10 And the little chambers of the gate eastward were three on this -side, and three on that side; they three were of one measure: and the -posts had one measure on this side and on that side. - -40:11 And he measured the breadth of the entry of the gate, ten -cubits; and the length of the gate, thirteen cubits. - -40:12 The space also before the little chambers was one cubit on this -side, and the space was one cubit on that side: and the little -chambers were six cubits on this side, and six cubits on that side. - -40:13 He measured then the gate from the roof of one little chamber to -the roof of another: the breadth was five and twenty cubits, door -against door. - -40:14 He made also posts of threescore cubits, even unto the post of -the court round about the gate. - -40:15 And from the face of the gate of the entrance unto the face of -the porch of the inner gate were fifty cubits. - -40:16 And there were narrow windows to the little chambers, and to -their posts within the gate round about, and likewise to the arches: -and windows were round about inward: and upon each post were palm -trees. - -40:17 Then brought he me into the outward court, and, lo, there were -chambers, and a pavement made for the court round about: thirty -chambers were upon the pavement. - -40:18 And the pavement by the side of the gates over against the -length of the gates was the lower pavement. - -40:19 Then he measured the breadth from the forefront of the lower -gate unto the forefront of the inner court without, an hundred cubits -eastward and northward. - -40:20 And the gate of the outward court that looked toward the north, -he measured the length thereof, and the breadth thereof. - -40:21 And the little chambers thereof were three on this side and -three on that side; and the posts thereof and the arches thereof were -after the measure of the first gate: the length thereof was fifty -cubits, and the breadth five and twenty cubits. - -40:22 And their windows, and their arches, and their palm trees, were -after the measure of the gate that looketh toward the east; and they -went up unto it by seven steps; and the arches thereof were before -them. - -40:23 And the gate of the inner court was over against the gate toward -the north, and toward the east; and he measured from gate to gate an -hundred cubits. - -40:24 After that he brought me toward the south, and behold a gate -toward the south: and he measured the posts thereof and the arches -thereof according to these measures. - -40:25 And there were windows in it and in the arches thereof round -about, like those windows: the length was fifty cubits, and the -breadth five and twenty cubits. - -40:26 And there were seven steps to go up to it, and the arches -thereof were before them: and it had palm trees, one on this side, and -another on that side, upon the posts thereof. - -40:27 And there was a gate in the inner court toward the south: and he -measured from gate to gate toward the south an hundred cubits. - -40:28 And he brought me to the inner court by the south gate: and he -measured the south gate according to these measures; 40:29 And the -little chambers thereof, and the posts thereof, and the arches -thereof, according to these measures: and there were windows in it and -in the arches thereof round about: it was fifty cubits long, and five -and twenty cubits broad. - -40:30 And the arches round about were five and twenty cubits long, and -five cubits broad. - -40:31 And the arches thereof were toward the utter court; and palm -trees were upon the posts thereof: and the going up to it had eight -steps. - -40:32 And he brought me into the inner court toward the east: and he -measured the gate according to these measures. - -40:33 And the little chambers thereof, and the posts thereof, and the -arches thereof, were according to these measures: and there were -windows therein and in the arches thereof round about: it was fifty -cubits long, and five and twenty cubits broad. - -40:34 And the arches thereof were toward the outward court; and palm -trees were upon the posts thereof, on this side, and on that side: and -the going up to it had eight steps. - -40:35 And he brought me to the north gate, and measured it according -to these measures; 40:36 The little chambers thereof, the posts -thereof, and the arches thereof, and the windows to it round about: -the length was fifty cubits, and the breadth five and twenty cubits. - -40:37 And the posts thereof were toward the utter court; and palm -trees were upon the posts thereof, on this side, and on that side: and -the going up to it had eight steps. - -40:38 And the chambers and the entries thereof were by the posts of -the gates, where they washed the burnt offering. - -40:39 And in the porch of the gate were two tables on this side, and -two tables on that side, to slay thereon the burnt offering and the -sin offering and the trespass offering. - -40:40 And at the side without, as one goeth up to the entry of the -north gate, were two tables; and on the other side, which was at the -porch of the gate, were two tables. - -40:41 Four tables were on this side, and four tables on that side, by -the side of the gate; eight tables, whereupon they slew their -sacrifices. - -40:42 And the four tables were of hewn stone for the burnt offering, -of a cubit and an half long, and a cubit and an half broad, and one -cubit high: whereupon also they laid the instruments wherewith they -slew the burnt offering and the sacrifice. - -40:43 And within were hooks, an hand broad, fastened round about: and -upon the tables was the flesh of the offering. - -40:44 And without the inner gate were the chambers of the singers in -the inner court, which was at the side of the north gate; and their -prospect was toward the south: one at the side of the east gate having -the prospect toward the north. - -40:45 And he said unto me, This chamber, whose prospect is toward the -south, is for the priests, the keepers of the charge of the house. - -40:46 And the chamber whose prospect is toward the north is for the -priests, the keepers of the charge of the altar: these are the sons of -Zadok among the sons of Levi, which come near to the LORD to minister -unto him. - -40:47 So he measured the court, an hundred cubits long, and an hundred -cubits broad, foursquare; and the altar that was before the house. - -40:48 And he brought me to the porch of the house, and measured each -post of the porch, five cubits on this side, and five cubits on that -side: and the breadth of the gate was three cubits on this side, and -three cubits on that side. - -40:49 The length of the porch was twenty cubits, and the breadth -eleven cubits, and he brought me by the steps whereby they went up to -it: and there were pillars by the posts, one on this side, and another -on that side. - -41:1 Afterward he brought me to the temple, and measured the posts, -six cubits broad on the one side, and six cubits broad on the other -side, which was the breadth of the tabernacle. - -41:2 And the breadth of the door was ten cubits; and the sides of the -door were five cubits on the one side, and five cubits on the other -side: and he measured the length thereof, forty cubits: and the -breadth, twenty cubits. - -41:3 Then went he inward, and measured the post of the door, two -cubits; and the door, six cubits; and the breadth of the door, seven -cubits. - -41:4 So he measured the length thereof, twenty cubits; and the -breadth, twenty cubits, before the temple: and he said unto me, This -is the most holy place. - -41:5 After he measured the wall of the house, six cubits; and the -breadth of every side chamber, four cubits, round about the house on -every side. - -41:6 And the side chambers were three, one over another, and thirty in -order; and they entered into the wall which was of the house for the -side chambers round about, that they might have hold, but they had not -hold in the wall of the house. - -41:7 And there was an enlarging, and a winding about still upward to -the side chambers: for the winding about of the house went still -upward round about the house: therefore the breadth of the house was -still upward, and so increased from the lowest chamber to the highest -by the midst. - -41:8 I saw also the height of the house round about: the foundations -of the side chambers were a full reed of six great cubits. - -41:9 The thickness of the wall, which was for the side chamber -without, was five cubits: and that which was left was the place of the -side chambers that were within. - -41:10 And between the chambers was the wideness of twenty cubits round -about the house on every side. - -41:11 And the doors of the side chambers were toward the place that -was left, one door toward the north, and another door toward the -south: and the breadth of the place that was left was five cubits -round about. - -41:12 Now the building that was before the separate place at the end -toward the west was seventy cubits broad; and the wall of the building -was five cubits thick round about, and the length thereof ninety -cubits. - -41:13 So he measured the house, an hundred cubits long; and the -separate place, and the building, with the walls thereof, an hundred -cubits long; 41:14 Also the breadth of the face of the house, and of -the separate place toward the east, an hundred cubits. - -41:15 And he measured the length of the building over against the -separate place which was behind it, and the galleries thereof on the -one side and on the other side, an hundred cubits, with the inner -temple, and the porches of the court; 41:16 The door posts, and the -narrow windows, and the galleries round about on their three stories, -over against the door, cieled with wood round about, and from the -ground up to the windows, and the windows were covered; 41:17 To that -above the door, even unto the inner house, and without, and by all the -wall round about within and without, by measure. - -41:18 And it was made with cherubims and palm trees, so that a palm -tree was between a cherub and a cherub; and every cherub had two -faces; 41:19 So that the face of a man was toward the palm tree on the -one side, and the face of a young lion toward the palm tree on the -other side: it was made through all the house round about. - -41:20 From the ground unto above the door were cherubims and palm -trees made, and on the wall of the temple. - -41:21 The posts of the temple were squared, and the face of the -sanctuary; the appearance of the one as the appearance of the other. - -41:22 The altar of wood was three cubits high, and the length thereof -two cubits; and the corners thereof, and the length thereof, and the -walls thereof, were of wood: and he said unto me, This is the table -that is before the LORD. - -41:23 And the temple and the sanctuary had two doors. - -41:24 And the doors had two leaves apiece, two turning leaves; two -leaves for the one door, and two leaves for the other door. - -41:25 And there were made on them, on the doors of the temple, -cherubims and palm trees, like as were made upon the walls; and there -were thick planks upon the face of the porch without. - -41:26 And there were narrow windows and palm trees on the one side and -on the other side, on the sides of the porch, and upon the side -chambers of the house, and thick planks. - -42:1 Then he brought me forth into the utter court, the way toward the -north: and he brought me into the chamber that was over against the -separate place, and which was before the building toward the north. - -42:2 Before the length of an hundred cubits was the north door, and -the breadth was fifty cubits. - -42:3 Over against the twenty cubits which were for the inner court, -and over against the pavement which was for the utter court, was -gallery against gallery in three stories. - -42:4 And before the chambers was a walk to ten cubits breadth inward, -a way of one cubit; and their doors toward the north. - -42:5 Now the upper chambers were shorter: for the galleries were -higher than these, than the lower, and than the middlemost of the -building. - -42:6 For they were in three stories, but had not pillars as the -pillars of the courts: therefore the building was straitened more than -the lowest and the middlemost from the ground. - -42:7 And the wall that was without over against the chambers, toward -the utter court on the forepart of the chambers, the length thereof -was fifty cubits. - -42:8 For the length of the chambers that were in the utter court was -fifty cubits: and, lo, before the temple were an hundred cubits. - -42:9 And from under these chambers was the entry on the east side, as -one goeth into them from the utter court. - -42:10 The chambers were in the thickness of the wall of the court -toward the east, over against the separate place, and over against the -building. - -42:11 And the way before them was like the appearance of the chambers -which were toward the north, as long as they, and as broad as they: -and all their goings out were both according to their fashions, and -according to their doors. - -42:12 And according to the doors of the chambers that were toward the -south was a door in the head of the way, even the way directly before -the wall toward the east, as one entereth into them. - -42:13 Then said he unto me, The north chambers and the south chambers, -which are before the separate place, they be holy chambers, where the -priests that approach unto the LORD shall eat the most holy things: -there shall they lay the most holy things, and the meat offering, and -the sin offering, and the trespass offering; for the place is holy. - -42:14 When the priests enter therein, then shall they not go out of -the holy place into the utter court, but there they shall lay their -garments wherein they minister; for they are holy; and shall put on -other garments, and shall approach to those things which are for the -people. - -42:15 Now when he had made an end of measuring the inner house, he -brought me forth toward the gate whose prospect is toward the east, -and measured it round about. - -42:16 He measured the east side with the measuring reed, five hundred -reeds, with the measuring reed round about. - -42:17 He measured the north side, five hundred reeds, with the -measuring reed round about. - -42:18 He measured the south side, five hundred reeds, with the -measuring reed. - -42:19 He turned about to the west side, and measured five hundred -reeds with the measuring reed. - -42:20 He measured it by the four sides: it had a wall round about, -five hundred reeds long, and five hundred broad, to make a separation -between the sanctuary and the profane place. - -43:1 Afterward he brought me to the gate, even the gate that looketh -toward the east: 43:2 And, behold, the glory of the God of Israel came -from the way of the east: and his voice was like a noise of many -waters: and the earth shined with his glory. - -43:3 And it was according to the appearance of the vision which I saw, -even according to the vision that I saw when I came to destroy the -city: and the visions were like the vision that I saw by the river -Chebar; and I fell upon my face. - -43:4 And the glory of the LORD came into the house by the way of the -gate whose prospect is toward the east. - -43:5 So the spirit took me up, and brought me into the inner court; -and, behold, the glory of the LORD filled the house. - -43:6 And I heard him speaking unto me out of the house; and the man -stood by me. - -43:7 And he said unto me, Son of man, the place of my throne, and the -place of the soles of my feet, where I will dwell in the midst of the -children of Israel for ever, and my holy name, shall the house of -Israel no more defile, neither they, nor their kings, by their -whoredom, nor by the carcases of their kings in their high places. - -43:8 In their setting of their threshold by my thresholds, and their -post by my posts, and the wall between me and them, they have even -defiled my holy name by their abominations that they have committed: -wherefore I have consumed them in mine anger. - -43:9 Now let them put away their whoredom, and the carcases of their -kings, far from me, and I will dwell in the midst of them for ever. - -43:10 Thou son of man, shew the house to the house of Israel, that -they may be ashamed of their iniquities: and let them measure the -pattern. - -43:11 And if they be ashamed of all that they have done, shew them the -form of the house, and the fashion thereof, and the goings out -thereof, and the comings in thereof, and all the forms thereof, and -all the ordinances thereof, and all the forms thereof, and all the -laws thereof: and write it in their sight, that they may keep the -whole form thereof, and all the ordinances thereof, and do them. - -43:12 This is the law of the house; Upon the top of the mountain the -whole limit thereof round about shall be most holy. Behold, this is -the law of the house. - -43:13 And these are the measures of the altar after the cubits: The -cubit is a cubit and an hand breadth; even the bottom shall be a -cubit, and the breadth a cubit, and the border thereof by the edge -thereof round about shall be a span: and this shall be the higher -place of the altar. - -43:14 And from the bottom upon the ground even to the lower settle -shall be two cubits, and the breadth one cubit; and from the lesser -settle even to the greater settle shall be four cubits, and the -breadth one cubit. - -43:15 So the altar shall be four cubits; and from the altar and upward -shall be four horns. - -43:16 And the altar shall be twelve cubits long, twelve broad, square -in the four squares thereof. - -43:17 And the settle shall be fourteen cubits long and fourteen broad -in the four squares thereof; and the border about it shall be half a -cubit; and the bottom thereof shall be a cubit about; and his stairs -shall look toward the east. - -43:18 And he said unto me, Son of man, thus saith the Lord GOD; These -are the ordinances of the altar in the day when they shall make it, to -offer burnt offerings thereon, and to sprinkle blood thereon. - -43:19 And thou shalt give to the priests the Levites that be of the -seed of Zadok, which approach unto me, to minister unto me, saith the -Lord GOD, a young bullock for a sin offering. - -43:20 And thou shalt take of the blood thereof, and put it on the four -horns of it, and on the four corners of the settle, and upon the -border round about: thus shalt thou cleanse and purge it. - -43:21 Thou shalt take the bullock also of the sin offering, and he -shall burn it in the appointed place of the house, without the -sanctuary. - -43:22 And on the second day thou shalt offer a kid of the goats -without blemish for a sin offering; and they shall cleanse the altar, -as they did cleanse it with the bullock. - -43:23 When thou hast made an end of cleansing it, thou shalt offer a -young bullock without blemish, and a ram out of the flock without -blemish. - -43:24 And thou shalt offer them before the LORD, and the priests shall -cast salt upon them, and they shall offer them up for a burnt offering -unto the LORD. - -43:25 Seven days shalt thou prepare every day a goat for a sin -offering: they shall also prepare a young bullock, and a ram out of -the flock, without blemish. - -43:26 Seven days shall they purge the altar and purify it; and they -shall consecrate themselves. - -43:27 And when these days are expired, it shall be, that upon the -eighth day, and so forward, the priests shall make your burnt -offerings upon the altar, and your peace offerings; and I will accept -you, saith the Lord GOD. - -44:1 Then he brought me back the way of the gate of the outward -sanctuary which looketh toward the east; and it was shut. - -44:2 Then said the LORD unto me; This gate shall be shut, it shall not -be opened, and no man shall enter in by it; because the LORD, the God -of Israel, hath entered in by it, therefore it shall be shut. - -44:3 It is for the prince; the prince, he shall sit in it to eat bread -before the LORD; he shall enter by the way of the porch of that gate, -and shall go out by the way of the same. - -44:4 Then brought he me the way of the north gate before the house: -and I looked, and, behold, the glory of the LORD filled the house of -the LORD: and I fell upon my face. - -44:5 And the LORD said unto me, Son of man, mark well, and behold with -thine eyes, and hear with thine ears all that I say unto thee -concerning all the ordinances of the house of the LORD, and all the -laws thereof; and mark well the entering in of the house, with every -going forth of the sanctuary. - -44:6 And thou shalt say to the rebellious, even to the house of -Israel, Thus saith the Lord GOD; O ye house of Israel, let it suffice -you of all your abominations, 44:7 In that ye have brought into my -sanctuary strangers, uncircumcised in heart, and uncircumcised in -flesh, to be in my sanctuary, to pollute it, even my house, when ye -offer my bread, the fat and the blood, and they have broken my -covenant because of all your abominations. - -44:8 And ye have not kept the charge of mine holy things: but ye have -set keepers of my charge in my sanctuary for yourselves. - -44:9 Thus saith the Lord GOD; No stranger, uncircumcised in heart, nor -uncircumcised in flesh, shall enter into my sanctuary, of any stranger -that is among the children of Israel. - -44:10 And the Levites that are gone away far from me, when Israel went -astray, which went astray away from me after their idols; they shall -even bear their iniquity. - -44:11 Yet they shall be ministers in my sanctuary, having charge at -the gates of the house, and ministering to the house: they shall slay -the burnt offering and the sacrifice for the people, and they shall -stand before them to minister unto them. - -44:12 Because they ministered unto them before their idols, and caused -the house of Israel to fall into iniquity; therefore have I lifted up -mine hand against them, saith the Lord GOD, and they shall bear their -iniquity. - -44:13 And they shall not come near unto me, to do the office of a -priest unto me, nor to come near to any of my holy things, in the most -holy place: but they shall bear their shame, and their abominations -which they have committed. - -44:14 But I will make them keepers of the charge of the house, for all -the service thereof, and for all that shall be done therein. - -44:15 But the priests the Levites, the sons of Zadok, that kept the -charge of my sanctuary when the children of Israel went astray from -me, they shall come near to me to minister unto me, and they shall -stand before me to offer unto me the fat and the blood, saith the Lord -GOD: 44:16 They shall enter into my sanctuary, and they shall come -near to my table, to minister unto me, and they shall keep my charge. - -44:17 And it shall come to pass, that when they enter in at the gates -of the inner court, they shall be clothed with linen garments; and no -wool shall come upon them, whiles they minister in the gates of the -inner court, and within. - -44:18 They shall have linen bonnets upon their heads, and shall have -linen breeches upon their loins; they shall not gird themselves with -any thing that causeth sweat. - -44:19 And when they go forth into the utter court, even into the utter -court to the people, they shall put off their garments wherein they -ministered, and lay them in the holy chambers, and they shall put on -other garments; and they shall not sanctify the people with their -garments. - -44:20 Neither shall they shave their heads, nor suffer their locks to -grow long; they shall only poll their heads. - -44:21 Neither shall any priest drink wine, when they enter into the -inner court. - -44:22 Neither shall they take for their wives a widow, nor her that is -put away: but they shall take maidens of the seed of the house of -Israel, or a widow that had a priest before. - -44:23 And they shall teach my people the difference between the holy -and profane, and cause them to discern between the unclean and the -clean. - -44:24 And in controversy they shall stand in judgment; and they shall -judge it according to my judgments: and they shall keep my laws and my -statutes in all mine assemblies; and they shall hallow my sabbaths. - -44:25 And they shall come at no dead person to defile themselves: but -for father, or for mother, or for son, or for daughter, for brother, -or for sister that hath had no husband, they may defile themselves. - -44:26 And after he is cleansed, they shall reckon unto him seven days. - -44:27 And in the day that he goeth into the sanctuary, unto the inner -court, to minister in the sanctuary, he shall offer his sin offering, -saith the Lord GOD. - -44:28 And it shall be unto them for an inheritance: I am their -inheritance: and ye shall give them no possession in Israel: I am -their possession. - -44:29 They shall eat the meat offering, and the sin offering, and the -trespass offering: and every dedicated thing in Israel shall be -theirs. - -44:30 And the first of all the firstfruits of all things, and every -oblation of all, of every sort of your oblations, shall be the -priest's: ye shall also give unto the priest the first of your dough, -that he may cause the blessing to rest in thine house. - -44:31 The priests shall not eat of any thing that is dead of itself, -or torn, whether it be fowl or beast. - -45:1 Moreover, when ye shall divide by lot the land for inheritance, -ye shall offer an oblation unto the LORD, an holy portion of the land: -the length shall be the length of five and twenty thousand reeds, and -the breadth shall be ten thousand. This shall be holy in all the -borders thereof round about. - -45:2 Of this there shall be for the sanctuary five hundred in length, -with five hundred in breadth, square round about; and fifty cubits -round about for the suburbs thereof. - -45:3 And of this measure shalt thou measure the length of five and -twenty thousand, and the breadth of ten thousand: and in it shall be -the sanctuary and the most holy place. - -45:4 The holy portion of the land shall be for the priests the -ministers of the sanctuary, which shall come near to minister unto the -LORD: and it shall be a place for their houses, and an holy place for -the sanctuary. - -45:5 And the five and twenty thousand of length, and the ten thousand -of breadth shall also the Levites, the ministers of the house, have -for themselves, for a possession for twenty chambers. - -45:6 And ye shall appoint the possession of the city five thousand -broad, and five and twenty thousand long, over against the oblation of -the holy portion: it shall be for the whole house of Israel. - -45:7 And a portion shall be for the prince on the one side and on the -other side of the oblation of the holy portion, and of the possession -of the city, before the oblation of the holy portion, and before the -possession of the city, from the west side westward, and from the east -side eastward: and the length shall be over against one of the -portions, from the west border unto the east border. - -45:8 In the land shall be his possession in Israel: and my princes -shall no more oppress my people; and the rest of the land shall they -give to the house of Israel according to their tribes. - -45:9 Thus saith the Lord GOD; Let it suffice you, O princes of Israel: -remove violence and spoil, and execute judgment and justice, take away -your exactions from my people, saith the Lord GOD. - -45:10 Ye shall have just balances, and a just ephah, and a just bath. - -45:11 The ephah and the bath shall be of one measure, that the bath -may contain the tenth part of an homer, and the ephah the tenth part -of an homer: the measure thereof shall be after the homer. - -45:12 And the shekel shall be twenty gerahs: twenty shekels, five and -twenty shekels, fifteen shekels, shall be your maneh. - -45:13 This is the oblation that ye shall offer; the sixth part of an -ephah of an homer of wheat, and ye shall give the sixth part of an -ephah of an homer of barley: 45:14 Concerning the ordinance of oil, -the bath of oil, ye shall offer the tenth part of a bath out of the -cor, which is an homer of ten baths; for ten baths are an homer: 45:15 -And one lamb out of the flock, out of two hundred, out of the fat -pastures of Israel; for a meat offering, and for a burnt offering, and -for peace offerings, to make reconciliation for them, saith the Lord -GOD. - -45:16 All the people of the land shall give this oblation for the -prince in Israel. - -45:17 And it shall be the prince's part to give burnt offerings, and -meat offerings, and drink offerings, in the feasts, and in the new -moons, and in the sabbaths, in all solemnities of the house of Israel: -he shall prepare the sin offering, and the meat offering, and the -burnt offering, and the peace offerings, to make reconciliation for -the house of Israel. - -45:18 Thus saith the Lord GOD; In the first month, in the first day of -the month, thou shalt take a young bullock without blemish, and -cleanse the sanctuary: 45:19 And the priest shall take of the blood of -the sin offering, and put it upon the posts of the house, and upon the -four corners of the settle of the altar, and upon the posts of the -gate of the inner court. - -45:20 And so thou shalt do the seventh day of the month for every one -that erreth, and for him that is simple: so shall ye reconcile the -house. - -45:21 In the first month, in the fourteenth day of the month, ye shall -have the passover, a feast of seven days; unleavened bread shall be -eaten. - -45:22 And upon that day shall the prince prepare for himself and for -all the people of the land a bullock for a sin offering. - -45:23 And seven days of the feast he shall prepare a burnt offering to -the LORD, seven bullocks and seven rams without blemish daily the -seven days; and a kid of the goats daily for a sin offering. - -45:24 And he shall prepare a meat offering of an ephah for a bullock, -and an ephah for a ram, and an hin of oil for an ephah. - -45:25 In the seventh month, in the fifteenth day of the month, shall -he do the like in the feast of the seven days, according to the sin -offering, according to the burnt offering, and according to the meat -offering, and according to the oil. - -46:1 Thus saith the Lord GOD; The gate of the inner court that looketh -toward the east shall be shut the six working days; but on the sabbath -it shall be opened, and in the day of the new moon it shall be opened. - -46:2 And the prince shall enter by the way of the porch of that gate -without, and shall stand by the post of the gate, and the priests -shall prepare his burnt offering and his peace offerings, and he shall -worship at the threshold of the gate: then he shall go forth; but the -gate shall not be shut until the evening. - -46:3 Likewise the people of the land shall worship at the door of this -gate before the LORD in the sabbaths and in the new moons. - -46:4 And the burnt offering that the prince shall offer unto the LORD -in the sabbath day shall be six lambs without blemish, and a ram -without blemish. - -46:5 And the meat offering shall be an ephah for a ram, and the meat -offering for the lambs as he shall be able to give, and an hin of oil -to an ephah. - -46:6 And in the day of the new moon it shall be a young bullock -without blemish, and six lambs, and a ram: they shall be without -blemish. - -46:7 And he shall prepare a meat offering, an ephah for a bullock, and -an ephah for a ram, and for the lambs according as his hand shall -attain unto, and an hin of oil to an ephah. - -46:8 And when the prince shall enter, he shall go in by the way of the -porch of that gate, and he shall go forth by the way thereof. - -46:9 But when the people of the land shall come before the LORD in the -solemn feasts, he that entereth in by the way of the north gate to -worship shall go out by the way of the south gate; and he that -entereth by the way of the south gate shall go forth by the way of the -north gate: he shall not return by the way of the gate whereby he came -in, but shall go forth over against it. - -46:10 And the prince in the midst of them, when they go in, shall go -in; and when they go forth, shall go forth. - -46:11 And in the feasts and in the solemnities the meat offering shall -be an ephah to a bullock, and an ephah to a ram, and to the lambs as -he is able to give, and an hin of oil to an ephah. - -46:12 Now when the prince shall prepare a voluntary burnt offering or -peace offerings voluntarily unto the LORD, one shall then open him the -gate that looketh toward the east, and he shall prepare his burnt -offering and his peace offerings, as he did on the sabbath day: then -he shall go forth; and after his going forth one shall shut the gate. - -46:13 Thou shalt daily prepare a burnt offering unto the LORD of a -lamb of the first year without blemish: thou shalt prepare it every -morning. - -46:14 And thou shalt prepare a meat offering for it every morning, the -sixth part of an ephah, and the third part of an hin of oil, to temper -with the fine flour; a meat offering continually by a perpetual -ordinance unto the LORD. - -46:15 Thus shall they prepare the lamb, and the meat offering, and the -oil, every morning for a continual burnt offering. - -46:16 Thus saith the Lord GOD; If the prince give a gift unto any of -his sons, the inheritance thereof shall be his sons'; it shall be -their possession by inheritance. - -46:17 But if he give a gift of his inheritance to one of his servants, -then it shall be his to the year of liberty; after it shall return to -the prince: but his inheritance shall be his sons' for them. - -46:18 Moreover the prince shall not take of the people's inheritance -by oppression, to thrust them out of their possession; but he shall -give his sons inheritance out of his own possession: that my people be -not scattered every man from his possession. - -46:19 After he brought me through the entry, which was at the side of -the gate, into the holy chambers of the priests, which looked toward -the north: and, behold, there was a place on the two sides westward. - -46:20 Then said he unto me, This is the place where the priests shall -boil the trespass offering and the sin offering, where they shall bake -the meat offering; that they bear them not out into the utter court, -to sanctify the people. - -46:21 Then he brought me forth into the utter court, and caused me to -pass by the four corners of the court; and, behold, in every corner of -the court there was a court. - -46:22 In the four corners of the court there were courts joined of -forty cubits long and thirty broad: these four corners were of one -measure. - -46:23 And there was a row of building round about in them, round about -them four, and it was made with boiling places under the rows round -about. - -46:24 Then said he unto me, These are the places of them that boil, -where the ministers of the house shall boil the sacrifice of the -people. - -47:1 Afterward he brought me again unto the door of the house; and, -behold, waters issued out from under the threshold of the house -eastward: for the forefront of the house stood toward the east, and -the waters came down from under from the right side of the house, at -the south side of the altar. - -47:2 Then brought he me out of the way of the gate northward, and led -me about the way without unto the utter gate by the way that looketh -eastward; and, behold, there ran out waters on the right side. - -47:3 And when the man that had the line in his hand went forth -eastward, he measured a thousand cubits, and he brought me through the -waters; the waters were to the ankles. - -47:4 Again he measured a thousand, and brought me through the waters; -the waters were to the knees. Again he measured a thousand, and -brought me through; the waters were to the loins. - -47:5 Afterward he measured a thousand; and it was a river that I could -not pass over: for the waters were risen, waters to swim in, a river -that could not be passed over. - -47:6 And he said unto me, Son of man, hast thou seen this? Then he -brought me, and caused me to return to the brink of the river. - -47:7 Now when I had returned, behold, at the bank of the river were -very many trees on the one side and on the other. - -47:8 Then said he unto me, These waters issue out toward the east -country, and go down into the desert, and go into the sea: which being -brought forth into the sea, the waters shall be healed. - -47:9 And it shall come to pass, that every thing that liveth, which -moveth, whithersoever the rivers shall come, shall live: and there -shall be a very great multitude of fish, because these waters shall -come thither: for they shall be healed; and every thing shall live -whither the river cometh. - -47:10 And it shall come to pass, that the fishers shall stand upon it -from Engedi even unto Eneglaim; they shall be a place to spread forth -nets; their fish shall be according to their kinds, as the fish of the -great sea, exceeding many. - -47:11 But the miry places thereof and the marishes thereof shall not -be healed; they shall be given to salt. - -47:12 And by the river upon the bank thereof, on this side and on that -side, shall grow all trees for meat, whose leaf shall not fade, -neither shall the fruit thereof be consumed: it shall bring forth new -fruit according to his months, because their waters they issued out of -the sanctuary: and the fruit thereof shall be for meat, and the leaf -thereof for medicine. - -47:13 Thus saith the Lord GOD; This shall be the border, whereby ye -shall inherit the land according to the twelve tribes of Israel: -Joseph shall have two portions. - -47:14 And ye shall inherit it, one as well as another: concerning the -which I lifted up mine hand to give it unto your fathers: and this -land shall fall unto you for inheritance. - -47:15 And this shall be the border of the land toward the north side, -from the great sea, the way of Hethlon, as men go to Zedad; 47:16 -Hamath, Berothah, Sibraim, which is between the border of Damascus and -the border of Hamath; Hazarhatticon, which is by the coast of Hauran. - -47:17 And the border from the sea shall be Hazarenan, the border of -Damascus, and the north northward, and the border of Hamath. And this -is the north side. - -47:18 And the east side ye shall measure from Hauran, and from -Damascus, and from Gilead, and from the land of Israel by Jordan, from -the border unto the east sea. And this is the east side. - -47:19 And the south side southward, from Tamar even to the waters of -strife in Kadesh, the river to the great sea. And this is the south -side southward. - -47:20 The west side also shall be the great sea from the border, till -a man come over against Hamath. This is the west side. - -47:21 So shall ye divide this land unto you according to the tribes of -Israel. - -47:22 And it shall come to pass, that ye shall divide it by lot for an -inheritance unto you, and to the strangers that sojourn among you, -which shall beget children among you: and they shall be unto you as -born in the country among the children of Israel; they shall have -inheritance with you among the tribes of Israel. - -47:23 And it shall come to pass, that in what tribe the stranger -sojourneth, there shall ye give him his inheritance, saith the Lord -GOD. - -48:1 Now these are the names of the tribes. From the north end to the -coast of the way of Hethlon, as one goeth to Hamath, Hazarenan, the -border of Damascus northward, to the coast of Hamath; for these are -his sides east and west; a portion for Dan. - -48:2 And by the border of Dan, from the east side unto the west side, -a portion for Asher. - -48:3 And by the border of Asher, from the east side even unto the west -side, a portion for Naphtali. - -48:4 And by the border of Naphtali, from the east side unto the west -side, a portion for Manasseh. - -48:5 And by the border of Manasseh, from the east side unto the west -side, a portion for Ephraim. - -48:6 And by the border of Ephraim, from the east side even unto the -west side, a portion for Reuben. - -48:7 And by the border of Reuben, from the east side unto the west -side, a portion for Judah. - -48:8 And by the border of Judah, from the east side unto the west -side, shall be the offering which ye shall offer of five and twenty -thousand reeds in breadth, and in length as one of the other parts, -from the east side unto the west side: and the sanctuary shall be in -the midst of it. - -48:9 The oblation that ye shall offer unto the LORD shall be of five -and twenty thousand in length, and of ten thousand in breadth. - -48:10 And for them, even for the priests, shall be this holy oblation; -toward the north five and twenty thousand in length, and toward the -west ten thousand in breadth, and toward the east ten thousand in -breadth, and toward the south five and twenty thousand in length: and -the sanctuary of the LORD shall be in the midst thereof. - -48:11 It shall be for the priests that are sanctified of the sons of -Zadok; which have kept my charge, which went not astray when the -children of Israel went astray, as the Levites went astray. - -48:12 And this oblation of the land that is offered shall be unto them -a thing most holy by the border of the Levites. - -48:13 And over against the border of the priests the Levites shall -have five and twenty thousand in length, and ten thousand in breadth: -all the length shall be five and twenty thousand, and the breadth ten -thousand. - -48:14 And they shall not sell of it, neither exchange, nor alienate -the firstfruits of the land: for it is holy unto the LORD. - -48:15 And the five thousand, that are left in the breadth over against -the five and twenty thousand, shall be a profane place for the city, -for dwelling, and for suburbs: and the city shall be in the midst -thereof. - -48:16 And these shall be the measures thereof; the north side four -thousand and five hundred, and the south side four thousand and five -hundred, and on the east side four thousand and five hundred, and the -west side four thousand and five hundred. - -48:17 And the suburbs of the city shall be toward the north two -hundred and fifty, and toward the south two hundred and fifty, and -toward the east two hundred and fifty, and toward the west two hundred -and fifty. - -48:18 And the residue in length over against the oblation of the holy -portion shall be ten thousand eastward, and ten thousand westward: and -it shall be over against the oblation of the holy portion; and the -increase thereof shall be for food unto them that serve the city. - -48:19 And they that serve the city shall serve it out of all the -tribes of Israel. - -48:20 All the oblation shall be five and twenty thousand by five and -twenty thousand: ye shall offer the holy oblation foursquare, with the -possession of the city. - -48:21 And the residue shall be for the prince, on the one side and on -the other of the holy oblation, and of the possession of the city, -over against the five and twenty thousand of the oblation toward the -east border, and westward over against the five and twenty thousand -toward the west border, over against the portions for the prince: and -it shall be the holy oblation; and the sanctuary of the house shall be -in the midst thereof. - -48:22 Moreover from the possession of the Levites, and from the -possession of the city, being in the midst of that which is the -prince's, between the border of Judah and the border of Benjamin, -shall be for the prince. - -48:23 As for the rest of the tribes, from the east side unto the west -side, Benjamin shall have a portion. - -48:24 And by the border of Benjamin, from the east side unto the west -side, Simeon shall have a portion. - -48:25 And by the border of Simeon, from the east side unto the west -side, Issachar a portion. - -48:26 And by the border of Issachar, from the east side unto the west -side, Zebulun a portion. - -48:27 And by the border of Zebulun, from the east side unto the west -side, Gad a portion. - -48:28 And by the border of Gad, at the south side southward, the -border shall be even from Tamar unto the waters of strife in Kadesh, -and to the river toward the great sea. - -48:29 This is the land which ye shall divide by lot unto the tribes of -Israel for inheritance, and these are their portions, saith the Lord -GOD. - -48:30 And these are the goings out of the city on the north side, four -thousand and five hundred measures. - -48:31 And the gates of the city shall be after the names of the tribes -of Israel: three gates northward; one gate of Reuben, one gate of -Judah, one gate of Levi. - -48:32 And at the east side four thousand and five hundred: and three -gates; and one gate of Joseph, one gate of Benjamin, one gate of Dan. - -48:33 And at the south side four thousand and five hundred measures: -and three gates; one gate of Simeon, one gate of Issachar, one gate of -Zebulun. - -48:34 At the west side four thousand and five hundred, with their -three gates; one gate of Gad, one gate of Asher, one gate of Naphtali. - -48:35 It was round about eighteen thousand measures: and the name of -the city from that day shall be, The LORD is there. - - - - -The Book of Daniel - - -1:1 In the third year of the reign of Jehoiakim king of Judah came -Nebuchadnezzar king of Babylon unto Jerusalem, and besieged it. - -1:2 And the Lord gave Jehoiakim king of Judah into his hand, with part -of the vessels of the house of God: which he carried into the land of -Shinar to the house of his god; and he brought the vessels into the -treasure house of his god. - -1:3 And the king spake unto Ashpenaz the master of his eunuchs, that -he should bring certain of the children of Israel, and of the king's -seed, and of the princes; 1:4 Children in whom was no blemish, but -well favoured, and skilful in all wisdom, and cunning in knowledge, -and understanding science, and such as had ability in them to stand in -the king's palace, and whom they might teach the learning and the -tongue of the Chaldeans. - -1:5 And the king appointed them a daily provision of the king's meat, -and of the wine which he drank: so nourishing them three years, that -at the end thereof they might stand before the king. - -1:6 Now among these were of the children of Judah, Daniel, Hananiah, -Mishael, and Azariah: 1:7 Unto whom the prince of the eunuchs gave -names: for he gave unto Daniel the name of Belteshazzar; and to -Hananiah, of Shadrach; and to Mishael, of Meshach; and to Azariah, of -Abednego. - -1:8 But Daniel purposed in his heart that he would not defile himself -with the portion of the king's meat, nor with the wine which he drank: -therefore he requested of the prince of the eunuchs that he might not -defile himself. - -1:9 Now God had brought Daniel into favour and tender love with the -prince of the eunuchs. - -1:10 And the prince of the eunuchs said unto Daniel, I fear my lord -the king, who hath appointed your meat and your drink: for why should -he see your faces worse liking than the children which are of your -sort? then shall ye make me endanger my head to the king. - -1:11 Then said Daniel to Melzar, whom the prince of the eunuchs had -set over Daniel, Hananiah, Mishael, and Azariah, 1:12 Prove thy -servants, I beseech thee, ten days; and let them give us pulse to eat, -and water to drink. - -1:13 Then let our countenances be looked upon before thee, and the -countenance of the children that eat of the portion of the king's -meat: and as thou seest, deal with thy servants. - -1:14 So he consented to them in this matter, and proved them ten days. - -1:15 And at the end of ten days their countenances appeared fairer and -fatter in flesh than all the children which did eat the portion of the -king's meat. - -1:16 Thus Melzar took away the portion of their meat, and the wine -that they should drink; and gave them pulse. - -1:17 As for these four children, God gave them knowledge and skill in -all learning and wisdom: and Daniel had understanding in all visions -and dreams. - -1:18 Now at the end of the days that the king had said he should bring -them in, then the prince of the eunuchs brought them in before -Nebuchadnezzar. - -1:19 And the king communed with them; and among them all was found -none like Daniel, Hananiah, Mishael, and Azariah: therefore stood they -before the king. - -1:20 And in all matters of wisdom and understanding, that the king -enquired of them, he found them ten times better than all the -magicians and astrologers that were in all his realm. - -1:21 And Daniel continued even unto the first year of king Cyrus. - -2:1 And in the second year of the reign of Nebuchadnezzar -Nebuchadnezzar dreamed dreams, wherewith his spirit was troubled, and -his sleep brake from him. - -2:2 Then the king commanded to call the magicians, and the -astrologers, and the sorcerers, and the Chaldeans, for to shew the -king his dreams. So they came and stood before the king. - -2:3 And the king said unto them, I have dreamed a dream, and my spirit -was troubled to know the dream. - -2:4 Then spake the Chaldeans to the king in Syriack, O king, live for -ever: tell thy servants the dream, and we will shew the -interpretation. - -2:5 The king answered and said to the Chaldeans, The thing is gone -from me: if ye will not make known unto me the dream, with the -interpretation thereof, ye shall be cut in pieces, and your houses -shall be made a dunghill. - -2:6 But if ye shew the dream, and the interpretation thereof, ye shall -receive of me gifts and rewards and great honour: therefore shew me -the dream, and the interpretation thereof. - -2:7 They answered again and said, Let the king tell his servants the -dream, and we will shew the interpretation of it. - -2:8 The king answered and said, I know of certainty that ye would gain -the time, because ye see the thing is gone from me. - -2:9 But if ye will not make known unto me the dream, there is but one -decree for you: for ye have prepared lying and corrupt words to speak -before me, till the time be changed: therefore tell me the dream, and -I shall know that ye can shew me the interpretation thereof. - -2:10 The Chaldeans answered before the king, and said, There is not a -man upon the earth that can shew the king's matter: therefore there is -no king, lord, nor ruler, that asked such things at any magician, or -astrologer, or Chaldean. - -2:11 And it is a rare thing that the king requireth, and there is none -other that can shew it before the king, except the gods, whose -dwelling is not with flesh. - -2:12 For this cause the king was angry and very furious, and commanded -to destroy all the wise men of Babylon. - -2:13 And the decree went forth that the wise men should be slain; and -they sought Daniel and his fellows to be slain. - -2:14 Then Daniel answered with counsel and wisdom to Arioch the -captain of the king's guard, which was gone forth to slay the wise men -of Babylon: 2:15 He answered and said to Arioch the king's captain, -Why is the decree so hasty from the king? Then Arioch made the thing -known to Daniel. - -2:16 Then Daniel went in, and desired of the king that he would give -him time, and that he would shew the king the interpretation. - -2:17 Then Daniel went to his house, and made the thing known to -Hananiah, Mishael, and Azariah, his companions: 2:18 That they would -desire mercies of the God of heaven concerning this secret; that -Daniel and his fellows should not perish with the rest of the wise men -of Babylon. - -2:19 Then was the secret revealed unto Daniel in a night vision. Then -Daniel blessed the God of heaven. - -2:20 Daniel answered and said, Blessed be the name of God for ever and -ever: for wisdom and might are his: 2:21 And he changeth the times and -the seasons: he removeth kings, and setteth up kings: he giveth wisdom -unto the wise, and knowledge to them that know understanding: 2:22 He -revealeth the deep and secret things: he knoweth what is in the -darkness, and the light dwelleth with him. - -2:23 I thank thee, and praise thee, O thou God of my fathers, who hast -given me wisdom and might, and hast made known unto me now what we -desired of thee: for thou hast now made known unto us the king's -matter. - -2:24 Therefore Daniel went in unto Arioch, whom the king had ordained -to destroy the wise men of Babylon: he went and said thus unto him; -Destroy not the wise men of Babylon: bring me in before the king, and -I will shew unto the king the interpretation. - -2:25 Then Arioch brought in Daniel before the king in haste, and said -thus unto him, I have found a man of the captives of Judah, that will -make known unto the king the interpretation. - -2:26 The king answered and said to Daniel, whose name was -Belteshazzar, Art thou able to make known unto me the dream which I -have seen, and the interpretation thereof? 2:27 Daniel answered in -the presence of the king, and said, The secret which the king hath -demanded cannot the wise men, the astrologers, the magicians, the -soothsayers, shew unto the king; 2:28 But there is a God in heaven -that revealeth secrets, and maketh known to the king Nebuchadnezzar -what shall be in the latter days. Thy dream, and the visions of thy -head upon thy bed, are these; 2:29 As for thee, O king, thy thoughts -came into thy mind upon thy bed, what should come to pass hereafter: -and he that revealeth secrets maketh known to thee what shall come to -pass. - -2:30 But as for me, this secret is not revealed to me for any wisdom -that I have more than any living, but for their sakes that shall make -known the interpretation to the king, and that thou mightest know the -thoughts of thy heart. - -2:31 Thou, O king, sawest, and behold a great image. This great image, -whose brightness was excellent, stood before thee; and the form -thereof was terrible. - -2:32 This image's head was of fine gold, his breast and his arms of -silver, his belly and his thighs of brass, 2:33 His legs of iron, his -feet part of iron and part of clay. - -2:34 Thou sawest till that a stone was cut out without hands, which -smote the image upon his feet that were of iron and clay, and brake -them to pieces. - -2:35 Then was the iron, the clay, the brass, the silver, and the gold, -broken to pieces together, and became like the chaff of the summer -threshingfloors; and the wind carried them away, that no place was -found for them: and the stone that smote the image became a great -mountain, and filled the whole earth. - -2:36 This is the dream; and we will tell the interpretation thereof -before the king. - -2:37 Thou, O king, art a king of kings: for the God of heaven hath -given thee a kingdom, power, and strength, and glory. - -2:38 And wheresoever the children of men dwell, the beasts of the -field and the fowls of the heaven hath he given into thine hand, and -hath made thee ruler over them all. Thou art this head of gold. - -2:39 And after thee shall arise another kingdom inferior to thee, and -another third kingdom of brass, which shall bear rule over all the -earth. - -2:40 And the fourth kingdom shall be strong as iron: forasmuch as iron -breaketh in pieces and subdueth all things: and as iron that breaketh -all these, shall it break in pieces and bruise. - -2:41 And whereas thou sawest the feet and toes, part of potters' clay, -and part of iron, the kingdom shall be divided; but there shall be in -it of the strength of the iron, forasmuch as thou sawest the iron -mixed with miry clay. - -2:42 And as the toes of the feet were part of iron, and part of clay, -so the kingdom shall be partly strong, and partly broken. - -2:43 And whereas thou sawest iron mixed with miry clay, they shall -mingle themselves with the seed of men: but they shall not cleave one -to another, even as iron is not mixed with clay. - -2:44 And in the days of these kings shall the God of heaven set up a -kingdom, which shall never be destroyed: and the kingdom shall not be -left to other people, but it shall break in pieces and consume all -these kingdoms, and it shall stand for ever. - -2:45 Forasmuch as thou sawest that the stone was cut out of the -mountain without hands, and that it brake in pieces the iron, the -brass, the clay, the silver, and the gold; the great God hath made -known to the king what shall come to pass hereafter: and the dream is -certain, and the interpretation thereof sure. - -2:46 Then the king Nebuchadnezzar fell upon his face, and worshipped -Daniel, and commanded that they should offer an oblation and sweet -odours unto him. - -2:47 The king answered unto Daniel, and said, Of a truth it is, that -your God is a God of gods, and a Lord of kings, and a revealer of -secrets, seeing thou couldest reveal this secret. - -2:48 Then the king made Daniel a great man, and gave him many great -gifts, and made him ruler over the whole province of Babylon, and -chief of the governors over all the wise men of Babylon. - -2:49 Then Daniel requested of the king, and he set Shadrach, Meshach, -and Abednego, over the affairs of the province of Babylon: but Daniel -sat in the gate of the king. - -3:1 Nebuchadnezzar the king made an image of gold, whose height was -threescore cubits, and the breadth thereof six cubits: he set it up in -the plain of Dura, in the province of Babylon. - -3:2 Then Nebuchadnezzar the king sent to gather together the princes, -the governors, and the captains, the judges, the treasurers, the -counsellors, the sheriffs, and all the rulers of the provinces, to -come to the dedication of the image which Nebuchadnezzar the king had -set up. - -3:3 Then the princes, the governors, and captains, the judges, the -treasurers, the counsellors, the sheriffs, and all the rulers of the -provinces, were gathered together unto the dedication of the image -that Nebuchadnezzar the king had set up; and they stood before the -image that Nebuchadnezzar had set up. - -3:4 Then an herald cried aloud, To you it is commanded, O people, -nations, and languages, 3:5 That at what time ye hear the sound of the -cornet, flute, harp, sackbut, psaltery, dulcimer, and all kinds of -musick, ye fall down and worship the golden image that Nebuchadnezzar -the king hath set up: 3:6 And whoso falleth not down and worshippeth -shall the same hour be cast into the midst of a burning fiery furnace. - -3:7 Therefore at that time, when all the people heard the sound of the -cornet, flute, harp, sackbut, psaltery, and all kinds of musick, all -the people, the nations, and the languages, fell down and worshipped -the golden image that Nebuchadnezzar the king had set up. - -3:8 Wherefore at that time certain Chaldeans came near, and accused -the Jews. - -3:9 They spake and said to the king Nebuchadnezzar, O king, live for -ever. - -3:10 Thou, O king, hast made a decree, that every man that shall hear -the sound of the cornet, flute, harp, sackbut, psaltery, and dulcimer, -and all kinds of musick, shall fall down and worship the golden image: -3:11 And whoso falleth not down and worshippeth, that he should be -cast into the midst of a burning fiery furnace. - -3:12 There are certain Jews whom thou hast set over the affairs of the -province of Babylon, Shadrach, Meshach, and Abednego; these men, O -king, have not regarded thee: they serve not thy gods, nor worship the -golden image which thou hast set up. - -3:13 Then Nebuchadnezzar in his rage and fury commanded to bring -Shadrach, Meshach, and Abednego. Then they brought these men before -the king. - -3:14 Nebuchadnezzar spake and said unto them, Is it true, O Shadrach, -Meshach, and Abednego, do not ye serve my gods, nor worship the golden -image which I have set up? 3:15 Now if ye be ready that at what time -ye hear the sound of the cornet, flute, harp, sackbut, psaltery, and -dulcimer, and all kinds of musick, ye fall down and worship the image -which I have made; well: but if ye worship not, ye shall be cast the -same hour into the midst of a burning fiery furnace; and who is that -God that shall deliver you out of my hands? 3:16 Shadrach, Meshach, -and Abednego, answered and said to the king, O Nebuchadnezzar, we are -not careful to answer thee in this matter. - -3:17 If it be so, our God whom we serve is able to deliver us from the -burning fiery furnace, and he will deliver us out of thine hand, O -king. - -3:18 But if not, be it known unto thee, O king, that we will not serve -thy gods, nor worship the golden image which thou hast set up. - -3:19 Then was Nebuchadnezzar full of fury, and the form of his visage -was changed against Shadrach, Meshach, and Abednego: therefore he -spake, and commanded that they should heat the furnace one seven times -more than it was wont to be heated. - -3:20 And he commanded the most mighty men that were in his army to -bind Shadrach, Meshach, and Abednego, and to cast them into the -burning fiery furnace. - -3:21 Then these men were bound in their coats, their hosen, and their -hats, and their other garments, and were cast into the midst of the -burning fiery furnace. - -3:22 Therefore because the king's commandment was urgent, and the -furnace exceeding hot, the flames of the fire slew those men that took -up Shadrach, Meshach, and Abednego. - -3:23 And these three men, Shadrach, Meshach, and Abednego, fell down -bound into the midst of the burning fiery furnace. - -3:24 Then Nebuchadnezzar the king was astonied, and rose up in haste, -and spake, and said unto his counsellors, Did not we cast three men -bound into the midst of the fire? They answered and said unto the -king, True, O king. - -3:25 He answered and said, Lo, I see four men loose, walking in the -midst of the fire, and they have no hurt; and the form of the fourth -is like the Son of God. - -3:26 Then Nebuchadnezzar came near to the mouth of the burning fiery -furnace, and spake, and said, Shadrach, Meshach, and Abednego, ye -servants of the most high God, come forth, and come hither. Then -Shadrach, Meshach, and Abednego, came forth of the midst of the fire. - -3:27 And the princes, governors, and captains, and the king's -counsellors, being gathered together, saw these men, upon whose bodies -the fire had no power, nor was an hair of their head singed, neither -were their coats changed, nor the smell of fire had passed on them. - -3:28 Then Nebuchadnezzar spake, and said, Blessed be the God of -Shadrach, Meshach, and Abednego, who hath sent his angel, and -delivered his servants that trusted in him, and have changed the -king's word, and yielded their bodies, that they might not serve nor -worship any god, except their own God. - -3:29 Therefore I make a decree, That every people, nation, and -language, which speak any thing amiss against the God of Shadrach, -Meshach, and Abednego, shall be cut in pieces, and their houses shall -be made a dunghill: because there is no other God that can deliver -after this sort. - -3:30 Then the king promoted Shadrach, Meshach, and Abednego, in the -province of Babylon. - -4:1 Nebuchadnezzar the king, unto all people, nations, and languages, -that dwell in all the earth; Peace be multiplied unto you. - -4:2 I thought it good to shew the signs and wonders that the high God -hath wrought toward me. - -4:3 How great are his signs! and how mighty are his wonders! his -kingdom is an everlasting kingdom, and his dominion is from generation -to generation. - -4:4 I Nebuchadnezzar was at rest in mine house, and flourishing in my -palace: 4:5 I saw a dream which made me afraid, and the thoughts upon -my bed and the visions of my head troubled me. - -4:6 Therefore made I a decree to bring in all the wise men of Babylon -before me, that they might make known unto me the interpretation of -the dream. - -4:7 Then came in the magicians, the astrologers, the Chaldeans, and -the soothsayers: and I told the dream before them; but they did not -make known unto me the interpretation thereof. - -4:8 But at the last Daniel came in before me, whose name was -Belteshazzar, according to the name of my God, and in whom is the -spirit of the holy gods: and before him I told the dream, saying, 4:9 -O Belteshazzar, master of the magicians, because I know that the -spirit of the holy gods is in thee, and no secret troubleth thee, tell -me the visions of my dream that I have seen, and the interpretation -thereof. - -4:10 Thus were the visions of mine head in my bed; I saw, and behold a -tree in the midst of the earth, and the height thereof was great. - -4:11 The tree grew, and was strong, and the height thereof reached -unto heaven, and the sight thereof to the end of all the earth: 4:12 -The leaves thereof were fair, and the fruit thereof much, and in it -was meat for all: the beasts of the field had shadow under it, and the -fowls of the heaven dwelt in the boughs thereof, and all flesh was fed -of it. - -4:13 I saw in the visions of my head upon my bed, and, behold, a -watcher and an holy one came down from heaven; 4:14 He cried aloud, -and said thus, Hew down the tree, and cut off his branches, shake off -his leaves, and scatter his fruit: let the beasts get away from under -it, and the fowls from his branches: 4:15 Nevertheless leave the stump -of his roots in the earth, even with a band of iron and brass, in the -tender grass of the field; and let it be wet with the dew of heaven, -and let his portion be with the beasts in the grass of the earth: 4:16 -Let his heart be changed from man's, and let a beast's heart be given -unto him; and let seven times pass over him. - -4:17 This matter is by the decree of the watchers, and the demand by -the word of the holy ones: to the intent that the living may know that -the most High ruleth in the kingdom of men, and giveth it to -whomsoever he will, and setteth up over it the basest of men. - -4:18 This dream I king Nebuchadnezzar have seen. Now thou, O -Belteshazzar, declare the interpretation thereof, forasmuch as all the -wise men of my kingdom are not able to make known unto me the -interpretation: but thou art able; for the spirit of the holy gods is -in thee. - -4:19 Then Daniel, whose name was Belteshazzar, was astonied for one -hour, and his thoughts troubled him. The king spake, and said, -Belteshazzar, let not the dream, or the interpretation thereof, -trouble thee. Belteshazzar answered and said, My lord, the dream be to -them that hate thee, and the interpretation thereof to thine enemies. - -4:20 The tree that thou sawest, which grew, and was strong, whose -height reached unto the heaven, and the sight thereof to all the -earth; 4:21 Whose leaves were fair, and the fruit thereof much, and in -it was meat for all; under which the beasts of the field dwelt, and -upon whose branches the fowls of the heaven had their habitation: 4:22 -It is thou, O king, that art grown and become strong: for thy -greatness is grown, and reacheth unto heaven, and thy dominion to the -end of the earth. - -4:23 And whereas the king saw a watcher and an holy one coming down -from heaven, and saying, Hew the tree down, and destroy it; yet leave -the stump of the roots thereof in the earth, even with a band of iron -and brass, in the tender grass of the field; and let it be wet with -the dew of heaven, and let his portion be with the beasts of the -field, till seven times pass over him; 4:24 This is the -interpretation, O king, and this is the decree of the most High, which -is come upon my lord the king: 4:25 That they shall drive thee from -men, and thy dwelling shall be with the beasts of the field, and they -shall make thee to eat grass as oxen, and they shall wet thee with the -dew of heaven, and seven times shall pass over thee, till thou know -that the most High ruleth in the kingdom of men, and giveth it to -whomsoever he will. - -4:26 And whereas they commanded to leave the stump of the tree roots; -thy kingdom shall be sure unto thee, after that thou shalt have known -that the heavens do rule. - -4:27 Wherefore, O king, let my counsel be acceptable unto thee, and -break off thy sins by righteousness, and thine iniquities by shewing -mercy to the poor; if it may be a lengthening of thy tranquillity. - -4:28 All this came upon the king Nebuchadnezzar. - -4:29 At the end of twelve months he walked in the palace of the -kingdom of Babylon. - -4:30 The king spake, and said, Is not this great Babylon, that I have -built for the house of the kingdom by the might of my power, and for -the honour of my majesty? 4:31 While the word was in the king's -mouth, there fell a voice from heaven, saying, O king Nebuchadnezzar, -to thee it is spoken; The kingdom is departed from thee. - -4:32 And they shall drive thee from men, and thy dwelling shall be -with the beasts of the field: they shall make thee to eat grass as -oxen, and seven times shall pass over thee, until thou know that the -most High ruleth in the kingdom of men, and giveth it to whomsoever he -will. - -4:33 The same hour was the thing fulfilled upon Nebuchadnezzar: and he -was driven from men, and did eat grass as oxen, and his body was wet -with the dew of heaven, till his hairs were grown like eagles' -feathers, and his nails like birds' claws. - -4:34 And at the end of the days I Nebuchadnezzar lifted up mine eyes -unto heaven, and mine understanding returned unto me, and I blessed -the most High, and I praised and honoured him that liveth for ever, -whose dominion is an everlasting dominion, and his kingdom is from -generation to generation: 4:35 And all the inhabitants of the earth -are reputed as nothing: and he doeth according to his will in the army -of heaven, and among the inhabitants of the earth: and none can stay -his hand, or say unto him, What doest thou? 4:36 At the same time my -reason returned unto me; and for the glory of my kingdom, mine honour -and brightness returned unto me; and my counsellors and my lords -sought unto me; and I was established in my kingdom, and excellent -majesty was added unto me. - -4:37 Now I Nebuchadnezzar praise and extol and honour the King of -heaven, all whose works are truth, and his ways judgment: and those -that walk in pride he is able to abase. - -5:1 Belshazzar the king made a great feast to a thousand of his lords, -and drank wine before the thousand. - -5:2 Belshazzar, whiles he tasted the wine, commanded to bring the -golden and silver vessels which his father Nebuchadnezzar had taken -out of the temple which was in Jerusalem; that the king, and his -princes, his wives, and his concubines, might drink therein. - -5:3 Then they brought the golden vessels that were taken out of the -temple of the house of God which was at Jerusalem; and the king, and -his princes, his wives, and his concubines, drank in them. - -5:4 They drank wine, and praised the gods of gold, and of silver, of -brass, of iron, of wood, and of stone. - -5:5 In the same hour came forth fingers of a man's hand, and wrote -over against the candlestick upon the plaister of the wall of the -king's palace: and the king saw the part of the hand that wrote. - -5:6 Then the king's countenance was changed, and his thoughts troubled -him, so that the joints of his loins were loosed, and his knees smote -one against another. - -5:7 The king cried aloud to bring in the astrologers, the Chaldeans, -and the soothsayers. And the king spake, and said to the wise men of -Babylon, Whosoever shall read this writing, and shew me the -interpretation thereof, shall be clothed with scarlet, and have a -chain of gold about his neck, and shall be the third ruler in the -kingdom. - -5:8 Then came in all the king's wise men: but they could not read the -writing, nor make known to the king the interpretation thereof. - -5:9 Then was king Belshazzar greatly troubled, and his countenance was -changed in him, and his lords were astonied. - -5:10 Now the queen by reason of the words of the king and his lords -came into the banquet house: and the queen spake and said, O king, -live for ever: let not thy thoughts trouble thee, nor let thy -countenance be changed: 5:11 There is a man in thy kingdom, in whom is -the spirit of the holy gods; and in the days of thy father light and -understanding and wisdom, like the wisdom of the gods, was found in -him; whom the king Nebuchadnezzar thy father, the king, I say, thy -father, made master of the magicians, astrologers, Chaldeans, and -soothsayers; 5:12 Forasmuch as an excellent spirit, and knowledge, and -understanding, interpreting of dreams, and shewing of hard sentences, -and dissolving of doubts, were found in the same Daniel, whom the king -named Belteshazzar: now let Daniel be called, and he will shew the -interpretation. - -5:13 Then was Daniel brought in before the king. And the king spake -and said unto Daniel, Art thou that Daniel, which art of the children -of the captivity of Judah, whom the king my father brought out of -Jewry? 5:14 I have even heard of thee, that the spirit of the gods is -in thee, and that light and understanding and excellent wisdom is -found in thee. - -5:15 And now the wise men, the astrologers, have been brought in -before me, that they should read this writing, and make known unto me -the interpretation thereof: but they could not shew the interpretation -of the thing: 5:16 And I have heard of thee, that thou canst make -interpretations, and dissolve doubts: now if thou canst read the -writing, and make known to me the interpretation thereof, thou shalt -be clothed with scarlet, and have a chain of gold about thy neck, and -shalt be the third ruler in the kingdom. - -5:17 Then Daniel answered and said before the king, Let thy gifts be -to thyself, and give thy rewards to another; yet I will read the -writing unto the king, and make known to him the interpretation. - -5:18 O thou king, the most high God gave Nebuchadnezzar thy father a -kingdom, and majesty, and glory, and honour: 5:19 And for the majesty -that he gave him, all people, nations, and languages, trembled and -feared before him: whom he would he slew; and whom he would he kept -alive; and whom he would he set up; and whom he would he put down. - -5:20 But when his heart was lifted up, and his mind hardened in pride, -he was deposed from his kingly throne, and they took his glory from -him: 5:21 And he was driven from the sons of men; and his heart was -made like the beasts, and his dwelling was with the wild asses: they -fed him with grass like oxen, and his body was wet with the dew of -heaven; till he knew that the most high God ruled in the kingdom of -men, and that he appointeth over it whomsoever he will. - -5:22 And thou his son, O Belshazzar, hast not humbled thine heart, -though thou knewest all this; 5:23 But hast lifted up thyself against -the Lord of heaven; and they have brought the vessels of his house -before thee, and thou, and thy lords, thy wives, and thy concubines, -have drunk wine in them; and thou hast praised the gods of silver, and -gold, of brass, iron, wood, and stone, which see not, nor hear, nor -know: and the God in whose hand thy breath is, and whose are all thy -ways, hast thou not glorified: 5:24 Then was the part of the hand sent -from him; and this writing was written. - -5:25 And this is the writing that was written, MENE, MENE, TEKEL, -UPHARSIN. - -5:26 This is the interpretation of the thing: MENE; God hath numbered -thy kingdom, and finished it. - -5:27 TEKEL; Thou art weighed in the balances, and art found wanting. - -5:28 PERES; Thy kingdom is divided, and given to the Medes and -Persians. - -5:29 Then commanded Belshazzar, and they clothed Daniel with scarlet, -and put a chain of gold about his neck, and made a proclamation -concerning him, that he should be the third ruler in the kingdom. - -5:30 In that night was Belshazzar the king of the Chaldeans slain. - -5:31 And Darius the Median took the kingdom, being about threescore -and two years old. - -6:1 It pleased Darius to set over the kingdom an hundred and twenty -princes, which should be over the whole kingdom; 6:2 And over these -three presidents; of whom Daniel was first: that the princes might -give accounts unto them, and the king should have no damage. - -6:3 Then this Daniel was preferred above the presidents and princes, -because an excellent spirit was in him; and the king thought to set -him over the whole realm. - -6:4 Then the presidents and princes sought to find occasion against -Daniel concerning the kingdom; but they could find none occasion nor -fault; forasmuch as he was faithful, neither was there any error or -fault found in him. - -6:5 Then said these men, We shall not find any occasion against this -Daniel, except we find it against him concerning the law of his God. - -6:6 Then these presidents and princes assembled together to the king, -and said thus unto him, King Darius, live for ever. - -6:7 All the presidents of the kingdom, the governors, and the princes, -the counsellors, and the captains, have consulted together to -establish a royal statute, and to make a firm decree, that whosoever -shall ask a petition of any God or man for thirty days, save of thee, -O king, he shall be cast into the den of lions. - -6:8 Now, O king, establish the decree, and sign the writing, that it -be not changed, according to the law of the Medes and Persians, which -altereth not. - -6:9 Wherefore king Darius signed the writing and the decree. - -6:10 Now when Daniel knew that the writing was signed, he went into -his house; and his windows being open in his chamber toward Jerusalem, -he kneeled upon his knees three times a day, and prayed, and gave -thanks before his God, as he did aforetime. - -6:11 Then these men assembled, and found Daniel praying and making -supplication before his God. - -6:12 Then they came near, and spake before the king concerning the -king's decree; Hast thou not signed a decree, that every man that -shall ask a petition of any God or man within thirty days, save of -thee, O king, shall be cast into the den of lions? The king answered -and said, The thing is true, according to the law of the Medes and -Persians, which altereth not. - -6:13 Then answered they and said before the king, That Daniel, which -is of the children of the captivity of Judah, regardeth not thee, O -king, nor the decree that thou hast signed, but maketh his petition -three times a day. - -6:14 Then the king, when he heard these words, was sore displeased -with himself, and set his heart on Daniel to deliver him: and he -laboured till the going down of the sun to deliver him. - -6:15 Then these men assembled unto the king, and said unto the king, -Know, O king, that the law of the Medes and Persians is, That no -decree nor statute which the king establisheth may be changed. - -6:16 Then the king commanded, and they brought Daniel, and cast him -into the den of lions. Now the king spake and said unto Daniel, Thy -God whom thou servest continually, he will deliver thee. - -6:17 And a stone was brought, and laid upon the mouth of the den; and -the king sealed it with his own signet, and with the signet of his -lords; that the purpose might not be changed concerning Daniel. - -6:18 Then the king went to his palace, and passed the night fasting: -neither were instruments of musick brought before him: and his sleep -went from him. - -6:19 Then the king arose very early in the morning, and went in haste -unto the den of lions. - -6:20 And when he came to the den, he cried with a lamentable voice -unto Daniel: and the king spake and said to Daniel, O Daniel, servant -of the living God, is thy God, whom thou servest continually, able to -deliver thee from the lions? 6:21 Then said Daniel unto the king, O -king, live for ever. - -6:22 My God hath sent his angel, and hath shut the lions' mouths, that -they have not hurt me: forasmuch as before him innocency was found in -me; and also before thee, O king, have I done no hurt. - -6:23 Then was the king exceedingly glad for him, and commanded that -they should take Daniel up out of the den. So Daniel was taken up out -of the den, and no manner of hurt was found upon him, because he -believed in his God. - -6:24 And the king commanded, and they brought those men which had -accused Daniel, and they cast them into the den of lions, them, their -children, and their wives; and the lions had the mastery of them, and -brake all their bones in pieces or ever they came at the bottom of the -den. - -6:25 Then king Darius wrote unto all people, nations, and languages, -that dwell in all the earth; Peace be multiplied unto you. - -6:26 I make a decree, That in every dominion of my kingdom men tremble -and fear before the God of Daniel: for he is the living God, and -stedfast for ever, and his kingdom that which shall not be destroyed, -and his dominion shall be even unto the end. - -6:27 He delivereth and rescueth, and he worketh signs and wonders in -heaven and in earth, who hath delivered Daniel from the power of the -lions. - -6:28 So this Daniel prospered in the reign of Darius, and in the reign -of Cyrus the Persian. - -7:1 In the first year of Belshazzar king of Babylon Daniel had a dream -and visions of his head upon his bed: then he wrote the dream, and -told the sum of the matters. - -7:2 Daniel spake and said, I saw in my vision by night, and, behold, -the four winds of the heaven strove upon the great sea. - -7:3 And four great beasts came up from the sea, diverse one from -another. - -7:4 The first was like a lion, and had eagle's wings: I beheld till -the wings thereof were plucked, and it was lifted up from the earth, -and made stand upon the feet as a man, and a man's heart was given to -it. - -7:5 And behold another beast, a second, like to a bear, and it raised -up itself on one side, and it had three ribs in the mouth of it -between the teeth of it: and they said thus unto it, Arise, devour -much flesh. - -7:6 After this I beheld, and lo another, like a leopard, which had -upon the back of it four wings of a fowl; the beast had also four -heads; and dominion was given to it. - -7:7 After this I saw in the night visions, and behold a fourth beast, -dreadful and terrible, and strong exceedingly; and it had great iron -teeth: it devoured and brake in pieces, and stamped the residue with -the feet of it: and it was diverse from all the beasts that were -before it; and it had ten horns. - -7:8 I considered the horns, and, behold, there came up among them -another little horn, before whom there were three of the first horns -plucked up by the roots: and, behold, in this horn were eyes like the -eyes of man, and a mouth speaking great things. - -7:9 I beheld till the thrones were cast down, and the Ancient of days -did sit, whose garment was white as snow, and the hair of his head -like the pure wool: his throne was like the fiery flame, and his -wheels as burning fire. - -7:10 A fiery stream issued and came forth from before him: thousand -thousands ministered unto him, and ten thousand times ten thousand -stood before him: the judgment was set, and the books were opened. - -7:11 I beheld then because of the voice of the great words which the -horn spake: I beheld even till the beast was slain, and his body -destroyed, and given to the burning flame. - -7:12 As concerning the rest of the beasts, they had their dominion -taken away: yet their lives were prolonged for a season and time. - -7:13 I saw in the night visions, and, behold, one like the Son of man -came with the clouds of heaven, and came to the Ancient of days, and -they brought him near before him. - -7:14 And there was given him dominion, and glory, and a kingdom, that -all people, nations, and languages, should serve him: his dominion is -an everlasting dominion, which shall not pass away, and his kingdom -that which shall not be destroyed. - -7:15 I Daniel was grieved in my spirit in the midst of my body, and -the visions of my head troubled me. - -7:16 I came near unto one of them that stood by, and asked him the -truth of all this. So he told me, and made me know the interpretation -of the things. - -7:17 These great beasts, which are four, are four kings, which shall -arise out of the earth. - -7:18 But the saints of the most High shall take the kingdom, and -possess the kingdom for ever, even for ever and ever. - -7:19 Then I would know the truth of the fourth beast, which was -diverse from all the others, exceeding dreadful, whose teeth were of -iron, and his nails of brass; which devoured, brake in pieces, and -stamped the residue with his feet; 7:20 And of the ten horns that were -in his head, and of the other which came up, and before whom three -fell; even of that horn that had eyes, and a mouth that spake very -great things, whose look was more stout than his fellows. - -7:21 I beheld, and the same horn made war with the saints, and -prevailed against them; 7:22 Until the Ancient of days came, and -judgment was given to the saints of the most High; and the time came -that the saints possessed the kingdom. - -7:23 Thus he said, The fourth beast shall be the fourth kingdom upon -earth, which shall be diverse from all kingdoms, and shall devour the -whole earth, and shall tread it down, and break it in pieces. - -7:24 And the ten horns out of this kingdom are ten kings that shall -arise: and another shall rise after them; and he shall be diverse from -the first, and he shall subdue three kings. - -7:25 And he shall speak great words against the most High, and shall -wear out the saints of the most High, and think to change times and -laws: and they shall be given into his hand until a time and times and -the dividing of time. - -7:26 But the judgment shall sit, and they shall take away his -dominion, to consume and to destroy it unto the end. - -7:27 And the kingdom and dominion, and the greatness of the kingdom -under the whole heaven, shall be given to the people of the saints of -the most High, whose kingdom is an everlasting kingdom, and all -dominions shall serve and obey him. - -7:28 Hitherto is the end of the matter. As for me Daniel, my -cogitations much troubled me, and my countenance changed in me: but I -kept the matter in my heart. - -8:1 In the third year of the reign of king Belshazzar a vision -appeared unto me, even unto me Daniel, after that which appeared unto -me at the first. - -8:2 And I saw in a vision; and it came to pass, when I saw, that I was -at Shushan in the palace, which is in the province of Elam; and I saw -in a vision, and I was by the river of Ulai. - -8:3 Then I lifted up mine eyes, and saw, and, behold, there stood -before the river a ram which had two horns: and the two horns were -high; but one was higher than the other, and the higher came up last. - -8:4 I saw the ram pushing westward, and northward, and southward; so -that no beasts might stand before him, neither was there any that -could deliver out of his hand; but he did according to his will, and -became great. - -8:5 And as I was considering, behold, an he goat came from the west on -the face of the whole earth, and touched not the ground: and the goat -had a notable horn between his eyes. - -8:6 And he came to the ram that had two horns, which I had seen -standing before the river, and ran unto him in the fury of his power. - -8:7 And I saw him come close unto the ram, and he was moved with -choler against him, and smote the ram, and brake his two horns: and -there was no power in the ram to stand before him, but he cast him -down to the ground, and stamped upon him: and there was none that -could deliver the ram out of his hand. - -8:8 Therefore the he goat waxed very great: and when he was strong, -the great horn was broken; and for it came up four notable ones toward -the four winds of heaven. - -8:9 And out of one of them came forth a little horn, which waxed -exceeding great, toward the south, and toward the east, and toward the -pleasant land. - -8:10 And it waxed great, even to the host of heaven; and it cast down -some of the host and of the stars to the ground, and stamped upon -them. - -8:11 Yea, he magnified himself even to the prince of the host, and by -him the daily sacrifice was taken away, and the place of the sanctuary -was cast down. - -8:12 And an host was given him against the daily sacrifice by reason -of transgression, and it cast down the truth to the ground; and it -practised, and prospered. - -8:13 Then I heard one saint speaking, and another saint said unto that -certain saint which spake, How long shall be the vision concerning the -daily sacrifice, and the transgression of desolation, to give both the -sanctuary and the host to be trodden under foot? 8:14 And he said -unto me, Unto two thousand and three hundred days; then shall the -sanctuary be cleansed. - -8:15 And it came to pass, when I, even I Daniel, had seen the vision, -and sought for the meaning, then, behold, there stood before me as the -appearance of a man. - -8:16 And I heard a man's voice between the banks of Ulai, which -called, and said, Gabriel, make this man to understand the vision. - -8:17 So he came near where I stood: and when he came, I was afraid, -and fell upon my face: but he said unto me, Understand, O son of man: -for at the time of the end shall be the vision. - -8:18 Now as he was speaking with me, I was in a deep sleep on my face -toward the ground: but he touched me, and set me upright. - -8:19 And he said, Behold, I will make thee know what shall be in the -last end of the indignation: for at the time appointed the end shall -be. - -8:20 The ram which thou sawest having two horns are the kings of Media -and Persia. - -8:21 And the rough goat is the king of Grecia: and the great horn that -is between his eyes is the first king. - -8:22 Now that being broken, whereas four stood up for it, four -kingdoms shall stand up out of the nation, but not in his power. - -8:23 And in the latter time of their kingdom, when the transgressors -are come to the full, a king of fierce countenance, and understanding -dark sentences, shall stand up. - -8:24 And his power shall be mighty, but not by his own power: and he -shall destroy wonderfully, and shall prosper, and practise, and shall -destroy the mighty and the holy people. - -8:25 And through his policy also he shall cause craft to prosper in -his hand; and he shall magnify himself in his heart, and by peace -shall destroy many: he shall also stand up against the Prince of -princes; but he shall be broken without hand. - -8:26 And the vision of the evening and the morning which was told is -true: wherefore shut thou up the vision; for it shall be for many -days. - -8:27 And I Daniel fainted, and was sick certain days; afterward I rose -up, and did the king's business; and I was astonished at the vision, -but none understood it. - -9:1 In the first year of Darius the son of Ahasuerus, of the seed of -the Medes, which was made king over the realm of the Chaldeans; 9:2 In -the first year of his reign I Daniel understood by books the number of -the years, whereof the word of the LORD came to Jeremiah the prophet, -that he would accomplish seventy years in the desolations of -Jerusalem. - -9:3 And I set my face unto the Lord God, to seek by prayer and -supplications, with fasting, and sackcloth, and ashes: 9:4 And I -prayed unto the LORD my God, and made my confession, and said, O Lord, -the great and dreadful God, keeping the covenant and mercy to them -that love him, and to them that keep his commandments; 9:5 We have -sinned, and have committed iniquity, and have done wickedly, and have -rebelled, even by departing from thy precepts and from thy judgments: -9:6 Neither have we hearkened unto thy servants the prophets, which -spake in thy name to our kings, our princes, and our fathers, and to -all the people of the land. - -9:7 O LORD, righteousness belongeth unto thee, but unto us confusion -of faces, as at this day; to the men of Judah, and to the inhabitants -of Jerusalem, and unto all Israel, that are near, and that are far -off, through all the countries whither thou hast driven them, because -of their trespass that they have trespassed against thee. - -9:8 O Lord, to us belongeth confusion of face, to our kings, to our -princes, and to our fathers, because we have sinned against thee. - -9:9 To the Lord our God belong mercies and forgivenesses, though we -have rebelled against him; 9:10 Neither have we obeyed the voice of -the LORD our God, to walk in his laws, which he set before us by his -servants the prophets. - -9:11 Yea, all Israel have transgressed thy law, even by departing, -that they might not obey thy voice; therefore the curse is poured upon -us, and the oath that is written in the law of Moses the servant of -God, because we have sinned against him. - -9:12 And he hath confirmed his words, which he spake against us, and -against our judges that judged us, by bringing upon us a great evil: -for under the whole heaven hath not been done as hath been done upon -Jerusalem. - -9:13 As it is written in the law of Moses, all this evil is come upon -us: yet made we not our prayer before the LORD our God, that we might -turn from our iniquities, and understand thy truth. - -9:14 Therefore hath the LORD watched upon the evil, and brought it -upon us: for the LORD our God is righteous in all his works which he -doeth: for we obeyed not his voice. - -9:15 And now, O Lord our God, that hast brought thy people forth out -of the land of Egypt with a mighty hand, and hast gotten thee renown, -as at this day; we have sinned, we have done wickedly. - -9:16 O LORD, according to all thy righteousness, I beseech thee, let -thine anger and thy fury be turned away from thy city Jerusalem, thy -holy mountain: because for our sins, and for the iniquities of our -fathers, Jerusalem and thy people are become a reproach to all that -are about us. - -9:17 Now therefore, O our God, hear the prayer of thy servant, and his -supplications, and cause thy face to shine upon thy sanctuary that is -desolate, for the Lord's sake. - -9:18 O my God, incline thine ear, and hear; open thine eyes, and -behold our desolations, and the city which is called by thy name: for -we do not present our supplications before thee for our -righteousnesses, but for thy great mercies. - -9:19 O Lord, hear; O Lord, forgive; O Lord, hearken and do; defer not, -for thine own sake, O my God: for thy city and thy people are called -by thy name. - -9:20 And whiles I was speaking, and praying, and confessing my sin and -the sin of my people Israel, and presenting my supplication before the -LORD my God for the holy mountain of my God; 9:21 Yea, whiles I was -speaking in prayer, even the man Gabriel, whom I had seen in the -vision at the beginning, being caused to fly swiftly, touched me about -the time of the evening oblation. - -9:22 And he informed me, and talked with me, and said, O Daniel, I am -now come forth to give thee skill and understanding. - -9:23 At the beginning of thy supplications the commandment came forth, -and I am come to shew thee; for thou art greatly beloved: therefore -understand the matter, and consider the vision. - -9:24 Seventy weeks are determined upon thy people and upon thy holy -city, to finish the transgression, and to make an end of sins, and to -make reconciliation for iniquity, and to bring in everlasting -righteousness, and to seal up the vision and prophecy, and to anoint -the most Holy. - -9:25 Know therefore and understand, that from the going forth of the -commandment to restore and to build Jerusalem unto the Messiah the -Prince shall be seven weeks, and threescore and two weeks: the street -shall be built again, and the wall, even in troublous times. - -9:26 And after threescore and two weeks shall Messiah be cut off, but -not for himself: and the people of the prince that shall come shall -destroy the city and the sanctuary; and the end thereof shall be with -a flood, and unto the end of the war desolations are determined. - -9:27 And he shall confirm the covenant with many for one week: and in -the midst of the week he shall cause the sacrifice and the oblation to -cease, and for the overspreading of abominations he shall make it -desolate, even until the consummation, and that determined shall be -poured upon the desolate. - -10:1 In the third year of Cyrus king of Persia a thing was revealed -unto Daniel, whose name was called Belteshazzar; and the thing was -true, but the time appointed was long: and he understood the thing, -and had understanding of the vision. - -10:2 In those days I Daniel was mourning three full weeks. - -10:3 I ate no pleasant bread, neither came flesh nor wine in my mouth, -neither did I anoint myself at all, till three whole weeks were -fulfilled. - -10:4 And in the four and twentieth day of the first month, as I was by -the side of the great river, which is Hiddekel; 10:5 Then I lifted up -mine eyes, and looked, and behold a certain man clothed in linen, -whose loins were girded with fine gold of Uphaz: 10:6 His body also -was like the beryl, and his face as the appearance of lightning, and -his eyes as lamps of fire, and his arms and his feet like in colour to -polished brass, and the voice of his words like the voice of a -multitude. - -10:7 And I Daniel alone saw the vision: for the men that were with me -saw not the vision; but a great quaking fell upon them, so that they -fled to hide themselves. - -10:8 Therefore I was left alone, and saw this great vision, and there -remained no strength in me: for my comeliness was turned in me into -corruption, and I retained no strength. - -10:9 Yet heard I the voice of his words: and when I heard the voice of -his words, then was I in a deep sleep on my face, and my face toward -the ground. - -10:10 And, behold, an hand touched me, which set me upon my knees and -upon the palms of my hands. - -10:11 And he said unto me, O Daniel, a man greatly beloved, understand -the words that I speak unto thee, and stand upright: for unto thee am -I now sent. - -And when he had spoken this word unto me, I stood trembling. - -10:12 Then said he unto me, Fear not, Daniel: for from the first day -that thou didst set thine heart to understand, and to chasten thyself -before thy God, thy words were heard, and I am come for thy words. - -10:13 But the prince of the kingdom of Persia withstood me one and -twenty days: but, lo, Michael, one of the chief princes, came to help -me; and I remained there with the kings of Persia. - -10:14 Now I am come to make thee understand what shall befall thy -people in the latter days: for yet the vision is for many days. - -10:15 And when he had spoken such words unto me, I set my face toward -the ground, and I became dumb. - -10:16 And, behold, one like the similitude of the sons of men touched -my lips: then I opened my mouth, and spake, and said unto him that -stood before me, O my lord, by the vision my sorrows are turned upon -me, and I have retained no strength. - -10:17 For how can the servant of this my lord talk with this my lord? -for as for me, straightway there remained no strength in me, neither -is there breath left in me. - -10:18 Then there came again and touched me one like the appearance of -a man, and he strengthened me, 10:19 And said, O man greatly beloved, -fear not: peace be unto thee, be strong, yea, be strong. And when he -had spoken unto me, I was strengthened, and said, Let my lord speak; -for thou hast strengthened me. - -10:20 Then said he, Knowest thou wherefore I come unto thee? and now -will I return to fight with the prince of Persia: and when I am gone -forth, lo, the prince of Grecia shall come. - -10:21 But I will shew thee that which is noted in the scripture of -truth: and there is none that holdeth with me in these things, but -Michael your prince. - -11:1 Also I in the first year of Darius the Mede, even I, stood to -confirm and to strengthen him. - -11:2 And now will I shew thee the truth. Behold, there shall stand up -yet three kings in Persia; and the fourth shall be far richer than -they all: and by his strength through his riches he shall stir up all -against the realm of Grecia. - -11:3 And a mighty king shall stand up, that shall rule with great -dominion, and do according to his will. - -11:4 And when he shall stand up, his kingdom shall be broken, and -shall be divided toward the four winds of heaven; and not to his -posterity, nor according to his dominion which he ruled: for his -kingdom shall be plucked up, even for others beside those. - -11:5 And the king of the south shall be strong, and one of his -princes; and he shall be strong above him, and have dominion; his -dominion shall be a great dominion. - -11:6 And in the end of years they shall join themselves together; for -the king's daughter of the south shall come to the king of the north -to make an agreement: but she shall not retain the power of the arm; -neither shall he stand, nor his arm: but she shall be given up, and -they that brought her, and he that begat her, and he that strengthened -her in these times. - -11:7 But out of a branch of her roots shall one stand up in his -estate, which shall come with an army, and shall enter into the -fortress of the king of the north, and shall deal against them, and -shall prevail: 11:8 And shall also carry captives into Egypt their -gods, with their princes, and with their precious vessels of silver -and of gold; and he shall continue more years than the king of the -north. - -11:9 So the king of the south shall come into his kingdom, and shall -return into his own land. - -11:10 But his sons shall be stirred up, and shall assemble a multitude -of great forces: and one shall certainly come, and overflow, and pass -through: then shall he return, and be stirred up, even to his -fortress. - -11:11 And the king of the south shall be moved with choler, and shall -come forth and fight with him, even with the king of the north: and he -shall set forth a great multitude; but the multitude shall be given -into his hand. - -11:12 And when he hath taken away the multitude, his heart shall be -lifted up; and he shall cast down many ten thousands: but he shall not -be strengthened by it. - -11:13 For the king of the north shall return, and shall set forth a -multitude greater than the former, and shall certainly come after -certain years with a great army and with much riches. - -11:14 And in those times there shall many stand up against the king of -the south: also the robbers of thy people shall exalt themselves to -establish the vision; but they shall fall. - -11:15 So the king of the north shall come, and cast up a mount, and -take the most fenced cities: and the arms of the south shall not -withstand, neither his chosen people, neither shall there be any -strength to withstand. - -11:16 But he that cometh against him shall do according to his own -will, and none shall stand before him: and he shall stand in the -glorious land, which by his hand shall be consumed. - -11:17 He shall also set his face to enter with the strength of his -whole kingdom, and upright ones with him; thus shall he do: and he -shall give him the daughter of women, corrupting her: but she shall -not stand on his side, neither be for him. - -11:18 After this shall he turn his face unto the isles, and shall take -many: but a prince for his own behalf shall cause the reproach offered -by him to cease; without his own reproach he shall cause it to turn -upon him. - -11:19 Then he shall turn his face toward the fort of his own land: but -he shall stumble and fall, and not be found. - -11:20 Then shall stand up in his estate a raiser of taxes in the glory -of the kingdom: but within few days he shall be destroyed, neither in -anger, nor in battle. - -11:21 And in his estate shall stand up a vile person, to whom they -shall not give the honour of the kingdom: but he shall come in -peaceably, and obtain the kingdom by flatteries. - -11:22 And with the arms of a flood shall they be overflown from before -him, and shall be broken; yea, also the prince of the covenant. - -11:23 And after the league made with him he shall work deceitfully: -for he shall come up, and shall become strong with a small people. - -11:24 He shall enter peaceably even upon the fattest places of the -province; and he shall do that which his fathers have not done, nor -his fathers' fathers; he shall scatter among them the prey, and spoil, -and riches: yea, and he shall forecast his devices against the strong -holds, even for a time. - -11:25 And he shall stir up his power and his courage against the king -of the south with a great army; and the king of the south shall be -stirred up to battle with a very great and mighty army; but he shall -not stand: for they shall forecast devices against him. - -11:26 Yea, they that feed of the portion of his meat shall destroy -him, and his army shall overflow: and many shall fall down slain. - -11:27 And both of these kings' hearts shall be to do mischief, and -they shall speak lies at one table; but it shall not prosper: for yet -the end shall be at the time appointed. - -11:28 Then shall he return into his land with great riches; and his -heart shall be against the holy covenant; and he shall do exploits, -and return to his own land. - -11:29 At the time appointed he shall return, and come toward the -south; but it shall not be as the former, or as the latter. - -11:30 For the ships of Chittim shall come against him: therefore he -shall be grieved, and return, and have indignation against the holy -covenant: so shall he do; he shall even return, and have intelligence -with them that forsake the holy covenant. - -11:31 And arms shall stand on his part, and they shall pollute the -sanctuary of strength, and shall take away the daily sacrifice, and -they shall place the abomination that maketh desolate. - -11:32 And such as do wickedly against the covenant shall he corrupt by -flatteries: but the people that do know their God shall be strong, and -do exploits. - -11:33 And they that understand among the people shall instruct many: -yet they shall fall by the sword, and by flame, by captivity, and by -spoil, many days. - -11:34 Now when they shall fall, they shall be holpen with a little -help: but many shall cleave to them with flatteries. - -11:35 And some of them of understanding shall fall, to try them, and -to purge, and to make them white, even to the time of the end: because -it is yet for a time appointed. - -11:36 And the king shall do according to his will; and he shall exalt -himself, and magnify himself above every god, and shall speak -marvellous things against the God of gods, and shall prosper till the -indignation be accomplished: for that that is determined shall be -done. - -11:37 Neither shall he regard the God of his fathers, nor the desire -of women, nor regard any god: for he shall magnify himself above all. - -11:38 But in his estate shall he honour the God of forces: and a god -whom his fathers knew not shall he honour with gold, and silver, and -with precious stones, and pleasant things. - -11:39 Thus shall he do in the most strong holds with a strange god, -whom he shall acknowledge and increase with glory: and he shall cause -them to rule over many, and shall divide the land for gain. - -11:40 And at the time of the end shall the king of the south push at -him: and the king of the north shall come against him like a -whirlwind, with chariots, and with horsemen, and with many ships; and -he shall enter into the countries, and shall overflow and pass over. - -11:41 He shall enter also into the glorious land, and many countries -shall be overthrown: but these shall escape out of his hand, even -Edom, and Moab, and the chief of the children of Ammon. - -11:42 He shall stretch forth his hand also upon the countries: and the -land of Egypt shall not escape. - -11:43 But he shall have power over the treasures of gold and of -silver, and over all the precious things of Egypt: and the Libyans and -the Ethiopians shall be at his steps. - -11:44 But tidings out of the east and out of the north shall trouble -him: therefore he shall go forth with great fury to destroy, and -utterly to make away many. - -11:45 And he shall plant the tabernacles of his palace between the -seas in the glorious holy mountain; yet he shall come to his end, and -none shall help him. - -12:1 And at that time shall Michael stand up, the great prince which -standeth for the children of thy people: and there shall be a time of -trouble, such as never was since there was a nation even to that same -time: and at that time thy people shall be delivered, every one that -shall be found written in the book. - -12:2 And many of them that sleep in the dust of the earth shall awake, -some to everlasting life, and some to shame and everlasting contempt. - -12:3 And they that be wise shall shine as the brightness of the -firmament; and they that turn many to righteousness as the stars for -ever and ever. - -12:4 But thou, O Daniel, shut up the words, and seal the book, even to -the time of the end: many shall run to and fro, and knowledge shall be -increased. - -12:5 Then I Daniel looked, and, behold, there stood other two, the one -on this side of the bank of the river, and the other on that side of -the bank of the river. - -12:6 And one said to the man clothed in linen, which was upon the -waters of the river, How long shall it be to the end of these wonders? -12:7 And I heard the man clothed in linen, which was upon the waters -of the river, when he held up his right hand and his left hand unto -heaven, and sware by him that liveth for ever that it shall be for a -time, times, and an half; and when he shall have accomplished to -scatter the power of the holy people, all these things shall be -finished. - -12:8 And I heard, but I understood not: then said I, O my Lord, what -shall be the end of these things? 12:9 And he said, Go thy way, -Daniel: for the words are closed up and sealed till the time of the -end. - -12:10 Many shall be purified, and made white, and tried; but the -wicked shall do wickedly: and none of the wicked shall understand; but -the wise shall understand. - -12:11 And from the time that the daily sacrifice shall be taken away, -and the abomination that maketh desolate set up, there shall be a -thousand two hundred and ninety days. - -12:12 Blessed is he that waiteth, and cometh to the thousand three -hundred and five and thirty days. - -12:13 But go thou thy way till the end be: for thou shalt rest, -and stand in thy lot at the end of the days. - - - - -Hosea - - -1:1 The word of the LORD that came unto Hosea, the son of Beeri, in -the days of Uzziah, Jotham, Ahaz, and Hezekiah, kings of Judah, and in -the days of Jeroboam the son of Joash, king of Israel. - -1:2 The beginning of the word of the LORD by Hosea. And the LORD said -to Hosea, Go, take unto thee a wife of whoredoms and children of -whoredoms: for the land hath committed great whoredom, departing from -the LORD. - -1:3 So he went and took Gomer the daughter of Diblaim; which -conceived, and bare him a son. - -1:4 And the LORD said unto him, Call his name Jezreel; for yet a -little while, and I will avenge the blood of Jezreel upon the house of -Jehu, and will cause to cease the kingdom of the house of Israel. - -1:5 And it shall come to pass at that day, that I will break the bow -of Israel, in the valley of Jezreel. - -1:6 And she conceived again, and bare a daughter. And God said unto -him, Call her name Loruhamah: for I will no more have mercy upon the -house of Israel; but I will utterly take them away. - -1:7 But I will have mercy upon the house of Judah, and will save them -by the LORD their God, and will not save them by bow, nor by sword, -nor by battle, by horses, nor by horsemen. - -1:8 Now when she had weaned Loruhamah, she conceived, and bare a son. - -1:9 Then said God, Call his name Loammi: for ye are not my people, and -I will not be your God. - -1:10 Yet the number of the children of Israel shall be as the sand of -the sea, which cannot be measured nor numbered; and it shall come to -pass, that in the place where it was said unto them, Ye are not my -people, there it shall be said unto them, Ye are the sons of the -living God. - -1:11 Then shall the children of Judah and the children of Israel be -gathered together, and appoint themselves one head, and they shall -come up out of the land: for great shall be the day of Jezreel. - -2:1 Say ye unto your brethren, Ammi; and to your sisters, Ruhamah. - -2:2 Plead with your mother, plead: for she is not my wife, neither am -I her husband: let her therefore put away her whoredoms out of her -sight, and her adulteries from between her breasts; 2:3 Lest I strip -her naked, and set her as in the day that she was born, and make her -as a wilderness, and set her like a dry land, and slay her with -thirst. - -2:4 And I will not have mercy upon her children; for they be the -children of whoredoms. - -2:5 For their mother hath played the harlot: she that conceived them -hath done shamefully: for she said, I will go after my lovers, that -give me my bread and my water, my wool and my flax, mine oil and my -drink. - -2:6 Therefore, behold, I will hedge up thy way with thorns, and make a -wall, that she shall not find her paths. - -2:7 And she shall follow after her lovers, but she shall not overtake -them; and she shall seek them, but shall not find them: then shall she -say, I will go and return to my first husband; for then was it better -with me than now. - -2:8 For she did not know that I gave her corn, and wine, and oil, and -multiplied her silver and gold, which they prepared for Baal. - -2:9 Therefore will I return, and take away my corn in the time -thereof, and my wine in the season thereof, and will recover my wool -and my flax given to cover her nakedness. - -2:10 And now will I discover her lewdness in the sight of her lovers, -and none shall deliver her out of mine hand. - -2:11 I will also cause all her mirth to cease, her feast days, her new -moons, and her sabbaths, and all her solemn feasts. - -2:12 And I will destroy her vines and her fig trees, whereof she hath -said, These are my rewards that my lovers have given me: and I will -make them a forest, and the beasts of the field shall eat them. - -2:13 And I will visit upon her the days of Baalim, wherein she burned -incense to them, and she decked herself with her earrings and her -jewels, and she went after her lovers, and forgat me, saith the LORD. - -2:14 Therefore, behold, I will allure her, and bring her into the -wilderness, and speak comfortably unto her. - -2:15 And I will give her her vineyards from thence, and the valley of -Achor for a door of hope: and she shall sing there, as in the days of -her youth, and as in the day when she came up out of the land of -Egypt. - -2:16 And it shall be at that day, saith the LORD, that thou shalt call -me Ishi; and shalt call me no more Baali. - -2:17 For I will take away the names of Baalim out of her mouth, and -they shall no more be remembered by their name. - -2:18 And in that day will I make a covenant for them with the beasts -of the field and with the fowls of heaven, and with the creeping -things of the ground: and I will break the bow and the sword and the -battle out of the earth, and will make them to lie down safely. - -2:19 And I will betroth thee unto me for ever; yea, I will betroth -thee unto me in righteousness, and in judgment, and in lovingkindness, -and in mercies. - -2:20 I will even betroth thee unto me in faithfulness: and thou shalt -know the LORD. - -2:21 And it shall come to pass in that day, I will hear, saith the -LORD, I will hear the heavens, and they shall hear the earth; 2:22 And -the earth shall hear the corn, and the wine, and the oil; and they -shall hear Jezreel. - -2:23 And I will sow her unto me in the earth; and I will have mercy -upon her that had not obtained mercy; and I will say to them which -were not my people, Thou art my people; and they shall say, Thou art -my God. - -3:1 Then said the LORD unto me, Go yet, love a woman beloved of her -friend, yet an adulteress, according to the love of the LORD toward -the children of Israel, who look to other gods, and love flagons of -wine. - -3:2 So I bought her to me for fifteen pieces of silver, and for an -homer of barley, and an half homer of barley: 3:3 And I said unto her, -Thou shalt abide for me many days; thou shalt not play the harlot, and -thou shalt not be for another man: so will I also be for thee. - -3:4 For the children of Israel shall abide many days without a king, -and without a prince, and without a sacrifice, and without an image, -and without an ephod, and without teraphim: 3:5 Afterward shall the -children of Israel return, and seek the LORD their God, and David -their king; and shall fear the LORD and his goodness in the latter -days. - -4:1 Hear the word of the LORD, ye children of Israel: for the LORD -hath a controversy with the inhabitants of the land, because there is -no truth, nor mercy, nor knowledge of God in the land. - -4:2 By swearing, and lying, and killing, and stealing, and committing -adultery, they break out, and blood toucheth blood. - -4:3 Therefore shall the land mourn, and every one that dwelleth -therein shall languish, with the beasts of the field, and with the -fowls of heaven; yea, the fishes of the sea also shall be taken away. - -4:4 Yet let no man strive, nor reprove another: for thy people are as -they that strive with the priest. - -4:5 Therefore shalt thou fall in the day, and the prophet also shall -fall with thee in the night, and I will destroy thy mother. - -4:6 My people are destroyed for lack of knowledge: because thou hast -rejected knowledge, I will also reject thee, that thou shalt be no -priest to me: seeing thou hast forgotten the law of thy God, I will -also forget thy children. - -4:7 As they were increased, so they sinned against me: therefore will -I change their glory into shame. - -4:8 They eat up the sin of my people, and they set their heart on -their iniquity. - -4:9 And there shall be, like people, like priest: and I will punish -them for their ways, and reward them their doings. - -4:10 For they shall eat, and not have enough: they shall commit -whoredom, and shall not increase: because they have left off to take -heed to the LORD. - -4:11 Whoredom and wine and new wine take away the heart. - -4:12 My people ask counsel at their stocks, and their staff declareth -unto them: for the spirit of whoredoms hath caused them to err, and -they have gone a whoring from under their God. - -4:13 They sacrifice upon the tops of the mountains, and burn incense -upon the hills, under oaks and poplars and elms, because the shadow -thereof is good: therefore your daughters shall commit whoredom, and -your spouses shall commit adultery. - -4:14 I will not punish your daughters when they commit whoredom, nor -your spouses when they commit adultery: for themselves are separated -with whores, and they sacrifice with harlots: therefore the people -that doth not understand shall fall. - -4:15 Though thou, Israel, play the harlot, yet let not Judah offend; -and come not ye unto Gilgal, neither go ye up to Bethaven, nor swear, -The LORD liveth. - -4:16 For Israel slideth back as a backsliding heifer: now the LORD -will feed them as a lamb in a large place. - -4:17 Ephraim is joined to idols: let him alone. - -4:18 Their drink is sour: they have committed whoredom continually: -her rulers with shame do love, Give ye. - -4:19 The wind hath bound her up in her wings, and they shall be -ashamed because of their sacrifices. - -5:1 Hear ye this, O priests; and hearken, ye house of Israel; and give -ye ear, O house of the king; for judgment is toward you, because ye -have been a snare on Mizpah, and a net spread upon Tabor. - -5:2 And the revolters are profound to make slaughter, though I have -been a rebuker of them all. - -5:3 I know Ephraim, and Israel is not hid from me: for now, O Ephraim, -thou committest whoredom, and Israel is defiled. - -5:4 They will not frame their doings to turn unto their God: for the -spirit of whoredoms is in the midst of them, and they have not known -the LORD. - -5:5 And the pride of Israel doth testify to his face: therefore shall -Israel and Ephraim fall in their iniquity: Judah also shall fall with -them. - -5:6 They shall go with their flocks and with their herds to seek the -LORD; but they shall not find him; he hath withdrawn himself from -them. - -5:7 They have dealt treacherously against the LORD: for they have -begotten strange children: now shall a month devour them with their -portions. - -5:8 Blow ye the cornet in Gibeah, and the trumpet in Ramah: cry aloud -at Bethaven, after thee, O Benjamin. - -5:9 Ephraim shall be desolate in the day of rebuke: among the tribes -of Israel have I made known that which shall surely be. - -5:10 The princes of Judah were like them that remove the bound: -therefore I will pour out my wrath upon them like water. - -5:11 Ephraim is oppressed and broken in judgment, because he willingly -walked after the commandment. - -5:12 Therefore will I be unto Ephraim as a moth, and to the house of -Judah as rottenness. - -5:13 When Ephraim saw his sickness, and Judah saw his wound, then went -Ephraim to the Assyrian, and sent to king Jareb: yet could he not heal -you, nor cure you of your wound. - -5:14 For I will be unto Ephraim as a lion, and as a young lion to the -house of Judah: I, even I, will tear and go away; I will take away, -and none shall rescue him. - -5:15 I will go and return to my place, till they acknowledge their -offence, and seek my face: in their affliction they will seek me -early. - -6:1 Come, and let us return unto the LORD: for he hath torn, and he -will heal us; he hath smitten, and he will bind us up. - -6:2 After two days will he revive us: in the third day he will raise -us up, and we shall live in his sight. - -6:3 Then shall we know, if we follow on to know the LORD: his going -forth is prepared as the morning; and he shall come unto us as the -rain, as the latter and former rain unto the earth. - -6:4 O Ephraim, what shall I do unto thee? O Judah, what shall I do -unto thee? for your goodness is as a morning cloud, and as the early -dew it goeth away. - -6:5 Therefore have I hewed them by the prophets; I have slain them by -the words of my mouth: and thy judgments are as the light that goeth -forth. - -6:6 For I desired mercy, and not sacrifice; and the knowledge of God -more than burnt offerings. - -6:7 But they like men have transgressed the covenant: there have they -dealt treacherously against me. - -6:8 Gilead is a city of them that work iniquity, and is polluted with -blood. - -6:9 And as troops of robbers wait for a man, so the company of priests -murder in the way by consent: for they commit lewdness. - -6:10 I have seen an horrible thing in the house of Israel: there is -the whoredom of Ephraim, Israel is defiled. - -6:11 Also, O Judah, he hath set an harvest for thee, when I returned -the captivity of my people. - -7:1 When I would have healed Israel, then the iniquity of Ephraim was -discovered, and the wickedness of Samaria: for they commit falsehood; -and the thief cometh in, and the troop of robbers spoileth without. - -7:2 And they consider not in their hearts that I remember all their -wickedness: now their own doings have beset them about; they are -before my face. - -7:3 They make the king glad with their wickedness, and the princes -with their lies. - -7:4 They are all adulterers, as an oven heated by the baker, who -ceaseth from raising after he hath kneaded the dough, until it be -leavened. - -7:5 In the day of our king the princes have made him sick with bottles -of wine; he stretched out his hand with scorners. - -7:6 For they have made ready their heart like an oven, whiles they lie -in wait: their baker sleepeth all the night; in the morning it burneth -as a flaming fire. - -7:7 They are all hot as an oven, and have devoured their judges; all -their kings are fallen: there is none among them that calleth unto me. - -7:8 Ephraim, he hath mixed himself among the people; Ephraim is a cake -not turned. - -7:9 Strangers have devoured his strength, and he knoweth it not: yea, -gray hairs are here and there upon him, yet he knoweth not. - -7:10 And the pride of Israel testifieth to his face: and they do not -return to the LORD their God, nor seek him for all this. - -7:11 Ephraim also is like a silly dove without heart: they call to -Egypt, they go to Assyria. - -7:12 When they shall go, I will spread my net upon them; I will bring -them down as the fowls of the heaven; I will chastise them, as their -congregation hath heard. - -7:13 Woe unto them! for they have fled from me: destruction unto them! -because they have transgressed against me: though I have redeemed -them, yet they have spoken lies against me. - -7:14 And they have not cried unto me with their heart, when they -howled upon their beds: they assemble themselves for corn and wine, -and they rebel against me. - -7:15 Though I have bound and strengthened their arms, yet do they -imagine mischief against me. - -7:16 They return, but not to the most High: they are like a deceitful -bow: their princes shall fall by the sword for the rage of their -tongue: this shall be their derision in the land of Egypt. - -8:1 Set the trumpet to thy mouth. He shall come as an eagle against -the house of the LORD, because they have transgressed my covenant, and -trespassed against my law. - -8:2 Israel shall cry unto me, My God, we know thee. - -8:3 Israel hath cast off the thing that is good: the enemy shall -pursue him. - -8:4 They have set up kings, but not by me: they have made princes, and -I knew it not: of their silver and their gold have they made them -idols, that they may be cut off. - -8:5 Thy calf, O Samaria, hath cast thee off; mine anger is kindled -against them: how long will it be ere they attain to innocency? 8:6 -For from Israel was it also: the workman made it; therefore it is not -God: but the calf of Samaria shall be broken in pieces. - -8:7 For they have sown the wind, and they shall reap the whirlwind: it -hath no stalk; the bud shall yield no meal: if so be it yield, the -strangers shall swallow it up. - -8:8 Israel is swallowed up: now shall they be among the Gentiles as a -vessel wherein is no pleasure. - -8:9 For they are gone up to Assyria, a wild ass alone by himself: -Ephraim hath hired lovers. - -8:10 Yea, though they have hired among the nations, now will I gather -them, and they shall sorrow a little for the burden of the king of -princes. - -8:11 Because Ephraim hath made many altars to sin, altars shall be -unto him to sin. - -8:12 I have written to him the great things of my law, but they were -counted as a strange thing. - -8:13 They sacrifice flesh for the sacrifices of mine offerings, and -eat it; but the LORD accepteth them not; now will he remember their -iniquity, and visit their sins: they shall return to Egypt. - -8:14 For Israel hath forgotten his Maker, and buildeth temples; and -Judah hath multiplied fenced cities: but I will send a fire upon his -cities, and it shall devour the palaces thereof. - -9:1 Rejoice not, O Israel, for joy, as other people: for thou hast -gone a whoring from thy God, thou hast loved a reward upon every -cornfloor. - -9:2 The floor and the winepress shall not feed them, and the new wine -shall fail in her. - -9:3 They shall not dwell in the LORD's land; but Ephraim shall return -to Egypt, and they shall eat unclean things in Assyria. - -9:4 They shall not offer wine offerings to the LORD, neither shall -they be pleasing unto him: their sacrifices shall be unto them as the -bread of mourners; all that eat thereof shall be polluted: for their -bread for their soul shall not come into the house of the LORD. - -9:5 What will ye do in the solemn day, and in the day of the feast of -the LORD? 9:6 For, lo, they are gone because of destruction: Egypt -shall gather them up, Memphis shall bury them: the pleasant places for -their silver, nettles shall possess them: thorns shall be in their -tabernacles. - -9:7 The days of visitation are come, the days of recompence are come; -Israel shall know it: the prophet is a fool, the spiritual man is mad, -for the multitude of thine iniquity, and the great hatred. - -9:8 The watchman of Ephraim was with my God: but the prophet is a -snare of a fowler in all his ways, and hatred in the house of his God. - -9:9 They have deeply corrupted themselves, as in the days of Gibeah: -therefore he will remember their iniquity, he will visit their sins. - -9:10 I found Israel like grapes in the wilderness; I saw your fathers -as the firstripe in the fig tree at her first time: but they went to -Baalpeor, and separated themselves unto that shame; and their -abominations were according as they loved. - -9:11 As for Ephraim, their glory shall fly away like a bird, from the -birth, and from the womb, and from the conception. - -9:12 Though they bring up their children, yet will I bereave them, -that there shall not be a man left: yea, woe also to them when I -depart from them! 9:13 Ephraim, as I saw Tyrus, is planted in a -pleasant place: but Ephraim shall bring forth his children to the -murderer. - -9:14 Give them, O LORD: what wilt thou give? give them a miscarrying -womb and dry breasts. - -9:15 All their wickedness is in Gilgal: for there I hated them: for -the wickedness of their doings I will drive them out of mine house, I -will love them no more: all their princes are revolters. - -9:16 Ephraim is smitten, their root is dried up, they shall bear no -fruit: yea, though they bring forth, yet will I slay even the beloved -fruit of their womb. - -9:17 My God will cast them away, because they did not hearken unto -him: and they shall be wanderers among the nations. - -10:1 Israel is an empty vine, he bringeth forth fruit unto himself: -according to the multitude of his fruit he hath increased the altars; -according to the goodness of his land they have made goodly images. - -10:2 Their heart is divided; now shall they be found faulty: he shall -break down their altars, he shall spoil their images. - -10:3 For now they shall say, We have no king, because we feared not -the LORD; what then should a king do to us? 10:4 They have spoken -words, swearing falsely in making a covenant: thus judgment springeth -up as hemlock in the furrows of the field. - -10:5 The inhabitants of Samaria shall fear because of the calves of -Bethaven: for the people thereof shall mourn over it, and the priests -thereof that rejoiced on it, for the glory thereof, because it is -departed from it. - -10:6 It shall be also carried unto Assyria for a present to king -Jareb: Ephraim shall receive shame, and Israel shall be ashamed of his -own counsel. - -10:7 As for Samaria, her king is cut off as the foam upon the water. - -10:8 The high places also of Aven, the sin of Israel, shall be -destroyed: the thorn and the thistle shall come up on their altars; -and they shall say to the mountains, Cover us; and to the hills, Fall -on us. - -10:9 O Israel, thou hast sinned from the days of Gibeah: there they -stood: the battle in Gibeah against the children of iniquity did not -overtake them. - -10:10 It is in my desire that I should chastise them; and the people -shall be gathered against them, when they shall bind themselves in -their two furrows. - -10:11 And Ephraim is as an heifer that is taught, and loveth to tread -out the corn; but I passed over upon her fair neck: I will make -Ephraim to ride; Judah shall plow, and Jacob shall break his clods. - -10:12 Sow to yourselves in righteousness, reap in mercy; break up your -fallow ground: for it is time to seek the LORD, till he come and rain -righteousness upon you. - -10:13 Ye have plowed wickedness, ye have reaped iniquity; ye have -eaten the fruit of lies: because thou didst trust in thy way, in the -multitude of thy mighty men. - -10:14 Therefore shall a tumult arise among thy people, and all thy -fortresses shall be spoiled, as Shalman spoiled Betharbel in the day -of battle: the mother was dashed in pieces upon her children. - -10:15 So shall Bethel do unto you because of your great wickedness: in -a morning shall the king of Israel utterly be cut off. - -11:1 When Israel was a child, then I loved him, and called my son out -of Egypt. - -11:2 As they called them, so they went from them: they sacrificed unto -Baalim, and burned incense to graven images. - -11:3 I taught Ephraim also to go, taking them by their arms; but they -knew not that I healed them. - -11:4 I drew them with cords of a man, with bands of love: and I was to -them as they that take off the yoke on their jaws, and I laid meat -unto them. - -11:5 He shall not return into the land of Egypt, and the Assyrian -shall be his king, because they refused to return. - -11:6 And the sword shall abide on his cities, and shall consume his -branches, and devour them, because of their own counsels. - -11:7 And my people are bent to backsliding from me: though they called -them to the most High, none at all would exalt him. - -11:8 How shall I give thee up, Ephraim? how shall I deliver thee, -Israel? how shall I make thee as Admah? how shall I set thee as -Zeboim? mine heart is turned within me, my repentings are kindled -together. - -11:9 I will not execute the fierceness of mine anger, I will not -return to destroy Ephraim: for I am God, and not man; the Holy One in -the midst of thee: and I will not enter into the city. - -11:10 They shall walk after the LORD: he shall roar like a lion: when -he shall roar, then the children shall tremble from the west. - -11:11 They shall tremble as a bird out of Egypt, and as a dove out of -the land of Assyria: and I will place them in their houses, saith the -LORD. - -11:12 Ephraim compasseth me about with lies, and the house of Israel -with deceit: but Judah yet ruleth with God, and is faithful with the -saints. - -12:1 Ephraim feedeth on wind, and followeth after the east wind: he -daily increaseth lies and desolation; and they do make a covenant with -the Assyrians, and oil is carried into Egypt. - -12:2 The LORD hath also a controversy with Judah, and will punish -Jacob according to his ways; according to his doings will he -recompense him. - -12:3 He took his brother by the heel in the womb, and by his strength -he had power with God: 12:4 Yea, he had power over the angel, and -prevailed: he wept, and made supplication unto him: he found him in -Bethel, and there he spake with us; 12:5 Even the LORD God of hosts; -the LORD is his memorial. - -12:6 Therefore turn thou to thy God: keep mercy and judgment and wait -on thy God continually. - -12:7 He is a merchant, the balances of deceit are in his hand: he -loveth to oppress. - -12:8 And Ephraim said, Yet I am become rich, I have found me out -substance: in all my labours they shall find none iniquity in me that -were sin. - -12:9 And I that am the LORD thy God from the land of Egypt will yet -make thee to dwell in tabernacles, as in the days of the solemn feast. - -12:10 I have also spoken by the prophets, and I have multiplied -visions, and used similitudes, by the ministry of the prophets. - -12:11 Is there iniquity in Gilead? surely they are vanity: they -sacrifice bullocks in Gilgal; yea, their altars are as heaps in the -furrows of the fields. - -12:12 And Jacob fled into the country of Syria, and Israel served for -a wife, and for a wife he kept sheep. - -12:13 And by a prophet the LORD brought Israel out of Egypt, and by a -prophet was he preserved. - -12:14 Ephraim provoked him to anger most bitterly: therefore shall he -leave his blood upon him, and his reproach shall his LORD return unto -him. - -13:1 When Ephraim spake trembling, he exalted himself in Israel; but -when he offended in Baal, he died. - -13:2 And now they sin more and more, and have made them molten images -of their silver, and idols according to their own understanding, all -of it the work of the craftsmen: they say of them, Let the men that -sacrifice kiss the calves. - -13:3 Therefore they shall be as the morning cloud and as the early dew -that passeth away, as the chaff that is driven with the whirlwind out -of the floor, and as the smoke out of the chimney. - -13:4 Yet I am the LORD thy God from the land of Egypt, and thou shalt -know no god but me: for there is no saviour beside me. - -13:5 I did know thee in the wilderness, in the land of great drought. - -13:6 According to their pasture, so were they filled; they were -filled, and their heart was exalted; therefore have they forgotten me. - -13:7 Therefore I will be unto them as a lion: as a leopard by the way -will I observe them: 13:8 I will meet them as a bear that is bereaved -of her whelps, and will rend the caul of their heart, and there will I -devour them like a lion: the wild beast shall tear them. - -13:9 O Israel, thou hast destroyed thyself; but in me is thine help. - -13:10 I will be thy king: where is any other that may save thee in all -thy cities? and thy judges of whom thou saidst, Give me a king and -princes? 13:11 I gave thee a king in mine anger, and took him away in -my wrath. - -13:12 The iniquity of Ephraim is bound up; his sin is hid. - -13:13 The sorrows of a travailing woman shall come upon him: he is an -unwise son; for he should not stay long in the place of the breaking -forth of children. - -13:14 I will ransom them from the power of the grave; I will redeem -them from death: O death, I will be thy plagues; O grave, I will be -thy destruction: repentance shall be hid from mine eyes. - -13:15 Though he be fruitful among his brethren, an east wind shall -come, the wind of the LORD shall come up from the wilderness, and his -spring shall become dry, and his fountain shall be dried up: he shall -spoil the treasure of all pleasant vessels. - -13:16 Samaria shall become desolate; for she hath rebelled against her -God: they shall fall by the sword: their infants shall be dashed in -pieces, and their women with child shall be ripped up. - -14:1 O israel, return unto the LORD thy God; for thou hast fallen by -thine iniquity. - -14:2 Take with you words, and turn to the LORD: say unto him, Take -away all iniquity, and receive us graciously: so will we render the -calves of our lips. - -14:3 Asshur shall not save us; we will not ride upon horses: neither -will we say any more to the work of our hands, Ye are our gods: for in -thee the fatherless findeth mercy. - -14:4 I will heal their backsliding, I will love them freely: for mine -anger is turned away from him. - -14:5 I will be as the dew unto Israel: he shall grow as the lily, and -cast forth his roots as Lebanon. - -14:6 His branches shall spread, and his beauty shall be as the olive -tree, and his smell as Lebanon. - -14:7 They that dwell under his shadow shall return; they shall revive -as the corn, and grow as the vine: the scent thereof shall be as the -wine of Lebanon. - -14:8 Ephraim shall say, What have I to do any more with idols? I have -heard him, and observed him: I am like a green fir tree. From me is -thy fruit found. - -14:9 Who is wise, and he shall understand these things? prudent, and -he shall know them? for the ways of the LORD are right, and the just -shall walk in them: but the transgressors shall fall therein. - - - - -Joel - - -1:1 The word of the LORD that came to Joel the son of Pethuel. - -1:2 Hear this, ye old men, and give ear, all ye inhabitants of the land. - -Hath this been in your days, or even in the days of your fathers? 1:3 -Tell ye your children of it, and let your children tell their -children, and their children another generation. - -1:4 That which the palmerworm hath left hath the locust eaten; and -that which the locust hath left hath the cankerworm eaten; and that -which the cankerworm hath left hath the caterpiller eaten. - -1:5 Awake, ye drunkards, and weep; and howl, all ye drinkers of wine, -because of the new wine; for it is cut off from your mouth. - -1:6 For a nation is come up upon my land, strong, and without number, -whose teeth are the teeth of a lion, and he hath the cheek teeth of a -great lion. - -1:7 He hath laid my vine waste, and barked my fig tree: he hath made -it clean bare, and cast it away; the branches thereof are made white. - -1:8 Lament like a virgin girded with sackcloth for the husband of her -youth. - -1:9 The meat offering and the drink offering is cut off from the house -of the LORD; the priests, the LORD's ministers, mourn. - -1:10 The field is wasted, the land mourneth; for the corn is wasted: -the new wine is dried up, the oil languisheth. - -1:11 Be ye ashamed, O ye husbandmen; howl, O ye vinedressers, for the -wheat and for the barley; because the harvest of the field is -perished. - -1:12 The vine is dried up, and the fig tree languisheth; the -pomegranate tree, the palm tree also, and the apple tree, even all the -trees of the field, are withered: because joy is withered away from -the sons of men. - -1:13 Gird yourselves, and lament, ye priests: howl, ye ministers of -the altar: come, lie all night in sackcloth, ye ministers of my God: -for the meat offering and the drink offering is withholden from the -house of your God. - -1:14 Sanctify ye a fast, call a solemn assembly, gather the elders and -all the inhabitants of the land into the house of the LORD your God, -and cry unto the LORD, 1:15 Alas for the day! for the day of the LORD -is at hand, and as a destruction from the Almighty shall it come. - -1:16 Is not the meat cut off before our eyes, yea, joy and gladness -from the house of our God? 1:17 The seed is rotten under their clods, -the garners are laid desolate, the barns are broken down; for the corn -is withered. - -1:18 How do the beasts groan! the herds of cattle are perplexed, -because they have no pasture; yea, the flocks of sheep are made -desolate. - -1:19 O LORD, to thee will I cry: for the fire hath devoured the -pastures of the wilderness, and the flame hath burned all the trees of -the field. - -1:20 The beasts of the field cry also unto thee: for the rivers of -waters are dried up, and the fire hath devoured the pastures of the -wilderness. - -2:1 Blow ye the trumpet in Zion, and sound an alarm in my holy -mountain: let all the inhabitants of the land tremble: for the day of -the LORD cometh, for it is nigh at hand; 2:2 A day of darkness and of -gloominess, a day of clouds and of thick darkness, as the morning -spread upon the mountains: a great people and a strong; there hath not -been ever the like, neither shall be any more after it, even to the -years of many generations. - -2:3 A fire devoureth before them; and behind them a flame burneth: the -land is as the garden of Eden before them, and behind them a desolate -wilderness; yea, and nothing shall escape them. - -2:4 The appearance of them is as the appearance of horses; and as -horsemen, so shall they run. - -2:5 Like the noise of chariots on the tops of mountains shall they -leap, like the noise of a flame of fire that devoureth the stubble, as -a strong people set in battle array. - -2:6 Before their face the people shall be much pained: all faces shall -gather blackness. - -2:7 They shall run like mighty men; they shall climb the wall like men -of war; and they shall march every one on his ways, and they shall not -break their ranks: 2:8 Neither shall one thrust another; they shall -walk every one in his path: and when they fall upon the sword, they -shall not be wounded. - -2:9 They shall run to and fro in the city; they shall run upon the -wall, they shall climb up upon the houses; they shall enter in at the -windows like a thief. - -2:10 The earth shall quake before them; the heavens shall tremble: the -sun and the moon shall be dark, and the stars shall withdraw their -shining: 2:11 And the LORD shall utter his voice before his army: for -his camp is very great: for he is strong that executeth his word: for -the day of the LORD is great and very terrible; and who can abide it? -2:12 Therefore also now, saith the LORD, turn ye even to me with all -your heart, and with fasting, and with weeping, and with mourning: -2:13 And rend your heart, and not your garments, and turn unto the -LORD your God: for he is gracious and merciful, slow to anger, and of -great kindness, and repenteth him of the evil. - -2:14 Who knoweth if he will return and repent, and leave a blessing -behind him; even a meat offering and a drink offering unto the LORD -your God? 2:15 Blow the trumpet in Zion, sanctify a fast, call a -solemn assembly: 2:16 Gather the people, sanctify the congregation, -assemble the elders, gather the children, and those that suck the -breasts: let the bridegroom go forth of his chamber, and the bride out -of her closet. - -2:17 Let the priests, the ministers of the LORD, weep between the -porch and the altar, and let them say, Spare thy people, O LORD, and -give not thine heritage to reproach, that the heathen should rule over -them: wherefore should they say among the people, Where is their God? -2:18 Then will the LORD be jealous for his land, and pity his people. - -2:19 Yea, the LORD will answer and say unto his people, Behold, I will -send you corn, and wine, and oil, and ye shall be satisfied therewith: -and I will no more make you a reproach among the heathen: 2:20 But I -will remove far off from you the northern army, and will drive him -into a land barren and desolate, with his face toward the east sea, -and his hinder part toward the utmost sea, and his stink shall come -up, and his ill savour shall come up, because he hath done great -things. - -2:21 Fear not, O land; be glad and rejoice: for the LORD will do great -things. - -2:22 Be not afraid, ye beasts of the field: for the pastures of the -wilderness do spring, for the tree beareth her fruit, the fig tree and -the vine do yield their strength. - -2:23 Be glad then, ye children of Zion, and rejoice in the LORD your -God: for he hath given you the former rain moderately, and he will -cause to come down for you the rain, the former rain, and the latter -rain in the first month. - -2:24 And the floors shall be full of wheat, and the vats shall -overflow with wine and oil. - -2:25 And I will restore to you the years that the locust hath eaten, -the cankerworm, and the caterpiller, and the palmerworm, my great army -which I sent among you. - -2:26 And ye shall eat in plenty, and be satisfied, and praise the name -of the LORD your God, that hath dealt wondrously with you: and my -people shall never be ashamed. - -2:27 And ye shall know that I am in the midst of Israel, and that I am -the LORD your God, and none else: and my people shall never be -ashamed. - -2:28 And it shall come to pass afterward, that I will pour out my -spirit upon all flesh; and your sons and your daughters shall -prophesy, your old men shall dream dreams, your young men shall see -visions: 2:29 And also upon the servants and upon the handmaids in -those days will I pour out my spirit. - -2:30 And I will shew wonders in the heavens and in the earth, blood, -and fire, and pillars of smoke. - -2:31 The sun shall be turned into darkness, and the moon into blood, -before the great and terrible day of the LORD come. - -2:32 And it shall come to pass, that whosoever shall call on the name -of the LORD shall be delivered: for in mount Zion and in Jerusalem -shall be deliverance, as the LORD hath said, and in the remnant whom -the LORD shall call. - -3:1 For, behold, in those days, and in that time, when I shall bring -again the captivity of Judah and Jerusalem, 3:2 I will also gather all -nations, and will bring them down into the valley of Jehoshaphat, and -will plead with them there for my people and for my heritage Israel, -whom they have scattered among the nations, and parted my land. - -3:3 And they have cast lots for my people; and have given a boy for an -harlot, and sold a girl for wine, that they might drink. - -3:4 Yea, and what have ye to do with me, O Tyre, and Zidon, and all -the coasts of Palestine? will ye render me a recompence? and if ye -recompense me, swiftly and speedily will I return your recompence upon -your own head; 3:5 Because ye have taken my silver and my gold, and -have carried into your temples my goodly pleasant things: 3:6 The -children also of Judah and the children of Jerusalem have ye sold unto -the Grecians, that ye might remove them far from their border. - -3:7 Behold, I will raise them out of the place whither ye have sold -them, and will return your recompence upon your own head: 3:8 And I -will sell your sons and your daughters into the hand of the children -of Judah, and they shall sell them to the Sabeans, to a people far -off: for the LORD hath spoken it. - -3:9 Proclaim ye this among the Gentiles; Prepare war, wake up the -mighty men, let all the men of war draw near; let them come up: 3:10 -Beat your plowshares into swords and your pruninghooks into spears: -let the weak say, I am strong. - -3:11 Assemble yourselves, and come, all ye heathen, and gather -yourselves together round about: thither cause thy mighty ones to come -down, O LORD. - -3:12 Let the heathen be wakened, and come up to the valley of -Jehoshaphat: for there will I sit to judge all the heathen round -about. - -3:13 Put ye in the sickle, for the harvest is ripe: come, get you -down; for the press is full, the fats overflow; for their wickedness -is great. - -3:14 Multitudes, multitudes in the valley of decision: for the day of -the LORD is near in the valley of decision. - -3:15 The sun and the moon shall be darkened, and the stars shall -withdraw their shining. - -3:16 The LORD also shall roar out of Zion, and utter his voice from -Jerusalem; and the heavens and the earth shall shake: but the LORD -will be the hope of his people, and the strength of the children of -Israel. - -3:17 So shall ye know that I am the LORD your God dwelling in Zion, my -holy mountain: then shall Jerusalem be holy, and there shall no -strangers pass through her any more. - -3:18 And it shall come to pass in that day, that the mountains shall -drop down new wine, and the hills shall flow with milk, and all the -rivers of Judah shall flow with waters, and a fountain shall come -forth out of the house of the LORD, and shall water the valley of -Shittim. - -3:19 Egypt shall be a desolation, and Edom shall be a desolate -wilderness, for the violence against the children of Judah, because -they have shed innocent blood in their land. - -3:20 But Judah shall dwell for ever, and Jerusalem from generation to -generation. - -3:21 For I will cleanse their blood that I have not cleansed: for the -LORD dwelleth in Zion. - - - - -Amos - - -1:1 The words of Amos, who was among the herdmen of Tekoa, which he -saw concerning Israel in the days of Uzziah king of Judah, and in the -days of Jeroboam the son of Joash king of Israel, two years before the -earthquake. - -1:2 And he said, The LORD will roar from Zion, and utter his voice -from Jerusalem; and the habitations of the shepherds shall mourn, and -the top of Carmel shall wither. - -1:3 Thus saith the LORD; For three transgressions of Damascus, and for -four, I will not turn away the punishment thereof; because they have -threshed Gilead with threshing instruments of iron: 1:4 But I will -send a fire into the house of Hazael, which shall devour the palaces -of Benhadad. - -1:5 I will break also the bar of Damascus, and cut off the inhabitant -from the plain of Aven, and him that holdeth the sceptre from the -house of Eden: and the people of Syria shall go into captivity unto -Kir, saith the LORD. - -1:6 Thus saith the LORD; For three transgressions of Gaza, and for -four, I will not turn away the punishment thereof; because they -carried away captive the whole captivity, to deliver them up to Edom: -1:7 But I will send a fire on the wall of Gaza, which shall devour the -palaces thereof: 1:8 And I will cut off the inhabitant from Ashdod, -and him that holdeth the sceptre from Ashkelon, and I will turn mine -hand against Ekron: and the remnant of the Philistines shall perish, -saith the Lord GOD. - -1:9 Thus saith the LORD; For three transgressions of Tyrus, and for -four, I will not turn away the punishment thereof; because they -delivered up the whole captivity to Edom, and remembered not the -brotherly covenant: 1:10 But I will send a fire on the wall of Tyrus, -which shall devour the palaces thereof. - -1:11 Thus saith the LORD; For three transgressions of Edom, and for -four, I will not turn away the punishment thereof; because he did -pursue his brother with the sword, and did cast off all pity, and his -anger did tear perpetually, and he kept his wrath for ever: 1:12 But I -will send a fire upon Teman, which shall devour the palaces of Bozrah. - -1:13 Thus saith the LORD; For three transgressions of the children of -Ammon, and for four, I will not turn away the punishment thereof; -because they have ripped up the women with child of Gilead, that they -might enlarge their border: 1:14 But I will kindle a fire in the wall -of Rabbah, and it shall devour the palaces thereof, with shouting in -the day of battle, with a tempest in the day of the whirlwind: 1:15 -And their king shall go into captivity, he and his princes together, -saith the LORD. - -2:1 Thus saith the LORD; For three transgressions of Moab, and for -four, I will not turn away the punishment thereof; because he burned -the bones of the king of Edom into lime: 2:2 But I will send a fire -upon Moab, and it shall devour the palaces of Kirioth: and Moab shall -die with tumult, with shouting, and with the sound of the trumpet: 2:3 -And I will cut off the judge from the midst thereof, and will slay all -the princes thereof with him, saith the LORD. - -2:4 Thus saith the LORD; For three transgressions of Judah, and for -four, I will not turn away the punishment thereof; because they have -despised the law of the LORD, and have not kept his commandments, and -their lies caused them to err, after the which their fathers have -walked: 2:5 But I will send a fire upon Judah, and it shall devour the -palaces of Jerusalem. - -2:6 Thus saith the LORD; For three transgressions of Israel, and for -four, I will not turn away the punishment thereof; because they sold -the righteous for silver, and the poor for a pair of shoes; 2:7 That -pant after the dust of the earth on the head of the poor, and turn -aside the way of the meek: and a man and his father will go in unto -the same maid, to profane my holy name: 2:8 And they lay themselves -down upon clothes laid to pledge by every altar, and they drink the -wine of the condemned in the house of their god. - -2:9 Yet destroyed I the Amorite before them, whose height was like the -height of the cedars, and he was strong as the oaks; yet I destroyed -his fruit from above, and his roots from beneath. - -2:10 Also I brought you up from the land of Egypt, and led you forty -years through the wilderness, to possess the land of the Amorite. - -2:11 And I raised up of your sons for prophets, and of your young men -for Nazarites. Is it not even thus, O ye children of Israel? saith the -LORD. - -2:12 But ye gave the Nazarites wine to drink; and commanded the -prophets, saying, Prophesy not. - -2:13 Behold, I am pressed under you, as a cart is pressed that is full -of sheaves. - -2:14 Therefore the flight shall perish from the swift, and the strong -shall not strengthen his force, neither shall the mighty deliver -himself: 2:15 Neither shall he stand that handleth the bow; and he -that is swift of foot shall not deliver himself: neither shall he that -rideth the horse deliver himself. - -2:16 And he that is courageous among the mighty shall flee away naked -in that day, saith the LORD. - -3:1 Hear this word that the LORD hath spoken against you, O children -of Israel, against the whole family which I brought up from the land -of Egypt, saying, 3:2 You only have I known of all the families of the -earth: therefore I will punish you for all your iniquities. - -3:3 Can two walk together, except they be agreed? 3:4 Will a lion -roar in the forest, when he hath no prey? will a young lion cry out of -his den, if he have taken nothing? 3:5 Can a bird fall in a snare -upon the earth, where no gin is for him? shall one take up a snare -from the earth, and have taken nothing at all? 3:6 Shall a trumpet be -blown in the city, and the people not be afraid? shall there be evil -in a city, and the LORD hath not done it? 3:7 Surely the Lord GOD -will do nothing, but he revealeth his secret unto his servants the -prophets. - -3:8 The lion hath roared, who will not fear? the Lord GOD hath spoken, -who can but prophesy? 3:9 Publish in the palaces at Ashdod, and in -the palaces in the land of Egypt, and say, Assemble yourselves upon -the mountains of Samaria, and behold the great tumults in the midst -thereof, and the oppressed in the midst thereof. - -3:10 For they know not to do right, saith the LORD, who store up -violence and robbery in their palaces. - -3:11 Therefore thus saith the Lord GOD; An adversary there shall be -even round about the land; and he shall bring down thy strength from -thee, and thy palaces shall be spoiled. - -3:12 Thus saith the LORD; As the shepherd taketh out of the mouth of -the lion two legs, or a piece of an ear; so shall the children of -Israel be taken out that dwell in Samaria in the corner of a bed, and -in Damascus in a couch. - -3:13 Hear ye, and testify in the house of Jacob, saith the Lord GOD, -the God of hosts, 3:14 That in the day that I shall visit the -transgressions of Israel upon him I will also visit the altars of -Bethel: and the horns of the altar shall be cut off, and fall to the -ground. - -3:15 And I will smite the winter house with the summer house; and the -houses of ivory shall perish, and the great houses shall have an end, -saith the LORD. - -4:1 Hear this word, ye kine of Bashan, that are in the mountain of -Samaria, which oppress the poor, which crush the needy, which say to -their masters, Bring, and let us drink. - -4:2 The Lord GOD hath sworn by his holiness, that, lo, the days shall -come upon you, that he will take you away with hooks, and your -posterity with fishhooks. - -4:3 And ye shall go out at the breaches, every cow at that which is -before her; and ye shall cast them into the palace, saith the LORD. - -4:4 Come to Bethel, and transgress; at Gilgal multiply transgression; -and bring your sacrifices every morning, and your tithes after three -years: 4:5 And offer a sacrifice of thanksgiving with leaven, and -proclaim and publish the free offerings: for this liketh you, O ye -children of Israel, saith the Lord GOD. - -4:6 And I also have given you cleanness of teeth in all your cities, -and want of bread in all your places: yet have ye not returned unto -me, saith the LORD. - -4:7 And also I have withholden the rain from you, when there were yet -three months to the harvest: and I caused it to rain upon one city, -and caused it not to rain upon another city: one piece was rained -upon, and the piece whereupon it rained not withered. - -4:8 So two or three cities wandered unto one city, to drink water; but -they were not satisfied: yet have ye not returned unto me, saith the -LORD. - -4:9 I have smitten you with blasting and mildew: when your gardens and -your vineyards and your fig trees and your olive trees increased, the -palmerworm devoured them: yet have ye not returned unto me, saith the -LORD. - -4:10 I have sent among you the pestilence after the manner of Egypt: -your young men have I slain with the sword, and have taken away your -horses; and I have made the stink of your camps to come up unto your -nostrils: yet have ye not returned unto me, saith the LORD. - -4:11 I have overthrown some of you, as God overthrew Sodom and -Gomorrah, and ye were as a firebrand plucked out of the burning: yet -have ye not returned unto me, saith the LORD. - -4:12 Therefore thus will I do unto thee, O Israel: and because I will -do this unto thee, prepare to meet thy God, O Israel. - -4:13 For, lo, he that formeth the mountains, and createth the wind, -and declareth unto man what is his thought, that maketh the morning -darkness, and treadeth upon the high places of the earth, The LORD, -The God of hosts, is his name. - -5:1 Hear ye this word which I take up against you, even a lamentation, -O house of Israel. - -5:2 The virgin of Israel is fallen; she shall no more rise: she is -forsaken upon her land; there is none to raise her up. - -5:3 For thus saith the Lord GOD; The city that went out by a thousand -shall leave an hundred, and that which went forth by an hundred shall -leave ten, to the house of Israel. - -5:4 For thus saith the LORD unto the house of Israel, Seek ye me, and -ye shall live: 5:5 But seek not Bethel, nor enter into Gilgal, and -pass not to Beersheba: for Gilgal shall surely go into captivity, and -Bethel shall come to nought. - -5:6 Seek the LORD, and ye shall live; lest he break out like fire in -the house of Joseph, and devour it, and there be none to quench it in -Bethel. - -5:7 Ye who turn judgment to wormwood, and leave off righteousness in -the earth, 5:8 Seek him that maketh the seven stars and Orion, and -turneth the shadow of death into the morning, and maketh the day dark -with night: that calleth for the waters of the sea, and poureth them -out upon the face of the earth: The LORD is his name: 5:9 That -strengtheneth the spoiled against the strong, so that the spoiled -shall come against the fortress. - -5:10 They hate him that rebuketh in the gate, and they abhor him that -speaketh uprightly. - -5:11 Forasmuch therefore as your treading is upon the poor, and ye -take from him burdens of wheat: ye have built houses of hewn stone, -but ye shall not dwell in them; ye have planted pleasant vineyards, -but ye shall not drink wine of them. - -5:12 For I know your manifold transgressions and your mighty sins: -they afflict the just, they take a bribe, and they turn aside the poor -in the gate from their right. - -5:13 Therefore the prudent shall keep silence in that time; for it is -an evil time. - -5:14 Seek good, and not evil, that ye may live: and so the LORD, the -God of hosts, shall be with you, as ye have spoken. - -5:15 Hate the evil, and love the good, and establish judgment in the -gate: it may be that the LORD God of hosts will be gracious unto the -remnant of Joseph. - -5:16 Therefore the LORD, the God of hosts, the LORD, saith thus; -Wailing shall be in all streets; and they shall say in all the -highways, Alas! alas! and they shall call the husbandman to mourning, -and such as are skilful of lamentation to wailing. - -5:17 And in all vineyards shall be wailing: for I will pass through -thee, saith the LORD. - -5:18 Woe unto you that desire the day of the LORD! to what end is it -for you? the day of the LORD is darkness, and not light. - -5:19 As if a man did flee from a lion, and a bear met him; or went -into the house, and leaned his hand on the wall, and a serpent bit -him. - -5:20 Shall not the day of the LORD be darkness, and not light? even -very dark, and no brightness in it? 5:21 I hate, I despise your feast -days, and I will not smell in your solemn assemblies. - -5:22 Though ye offer me burnt offerings and your meat offerings, I -will not accept them: neither will I regard the peace offerings of -your fat beasts. - -5:23 Take thou away from me the noise of thy songs; for I will not -hear the melody of thy viols. - -5:24 But let judgment run down as waters, and righteousness as a -mighty stream. - -5:25 Have ye offered unto me sacrifices and offerings in the -wilderness forty years, O house of Israel? 5:26 But ye have borne the -tabernacle of your Moloch and Chiun your images, the star of your god, -which ye made to yourselves. - -5:27 Therefore will I cause you to go into captivity beyond Damascus, -saith the LORD, whose name is The God of hosts. - -6:1 Woe to them that are at ease in Zion, and trust in the mountain of -Samaria, which are named chief of the nations, to whom the house of -Israel came! 6:2 Pass ye unto Calneh, and see; and from thence go ye -to Hamath the great: then go down to Gath of the Philistines: be they -better than these kingdoms? or their border greater than your border? -6:3 Ye that put far away the evil day, and cause the seat of violence -to come near; 6:4 That lie upon beds of ivory, and stretch themselves -upon their couches, and eat the lambs out of the flock, and the calves -out of the midst of the stall; 6:5 That chant to the sound of the -viol, and invent to themselves instruments of musick, like David; 6:6 -That drink wine in bowls, and anoint themselves with the chief -ointments: but they are not grieved for the affliction of Joseph. - -6:7 Therefore now shall they go captive with the first that go -captive, and the banquet of them that stretched themselves shall be -removed. - -6:8 The Lord GOD hath sworn by himself, saith the LORD the God of -hosts, I abhor the excellency of Jacob, and hate his palaces: -therefore will I deliver up the city with all that is therein. - -6:9 And it shall come to pass, if there remain ten men in one house, -that they shall die. - -6:10 And a man's uncle shall take him up, and he that burneth him, to -bring out the bones out of the house, and shall say unto him that is -by the sides of the house, Is there yet any with thee? and he shall -say, No. Then shall he say, Hold thy tongue: for we may not make -mention of the name of the LORD. - -6:11 For, behold, the LORD commandeth, and he will smite the great -house with breaches, and the little house with clefts. - -6:12 Shall horses run upon the rock? will one plow there with oxen? -for ye have turned judgment into gall, and the fruit of righteousness -into hemlock: 6:13 Ye which rejoice in a thing of nought, which say, -Have we not taken to us horns by our own strength? 6:14 But, behold, -I will raise up against you a nation, O house of Israel, saith the -LORD the God of hosts; and they shall afflict you from the entering in -of Hemath unto the river of the wilderness. - -7:1 Thus hath the Lord GOD shewed unto me; and, behold, he formed -grasshoppers in the beginning of the shooting up of the latter growth; -and, lo, it was the latter growth after the king's mowings. - -7:2 And it came to pass, that when they had made an end of eating the -grass of the land, then I said, O Lord GOD, forgive, I beseech thee: -by whom shall Jacob arise? for he is small. - -7:3 The LORD repented for this: It shall not be, saith the LORD. - -7:4 Thus hath the Lord GOD shewed unto me: and, behold, the Lord GOD -called to contend by fire, and it devoured the great deep, and did eat -up a part. - -7:5 Then said I, O Lord GOD, cease, I beseech thee: by whom shall -Jacob arise? for he is small. - -7:6 The LORD repented for this: This also shall not be, saith the Lord -GOD. - -7:7 Thus he shewed me: and, behold, the LORD stood upon a wall made by -a plumbline, with a plumbline in his hand. - -7:8 And the LORD said unto me, Amos, what seest thou? And I said, A -plumbline. Then said the LORD, Behold, I will set a plumbline in the -midst of my people Israel: I will not again pass by them any more: 7:9 -And the high places of Isaac shall be desolate, and the sanctuaries of -Israel shall be laid waste; and I will rise against the house of -Jeroboam with the sword. - -7:10 Then Amaziah the priest of Bethel sent to Jeroboam king of -Israel, saying, Amos hath conspired against thee in the midst of the -house of Israel: the land is not able to bear all his words. - -7:11 For thus Amos saith, Jeroboam shall die by the sword, and Israel -shall surely be led away captive out of their own land. - -7:12 Also Amaziah said unto Amos, O thou seer, go, flee thee away into -the land of Judah, and there eat bread, and prophesy there: 7:13 But -prophesy not again any more at Bethel: for it is the king's chapel, -and it is the king's court. - -7:14 Then answered Amos, and said to Amaziah, I was no prophet, -neither was I a prophet's son; but I was an herdman, and a gatherer of -sycomore fruit: 7:15 And the LORD took me as I followed the flock, and -the LORD said unto me, Go, prophesy unto my people Israel. - -7:16 Now therefore hear thou the word of the LORD: Thou sayest, -Prophesy not against Israel, and drop not thy word against the house -of Isaac. - -7:17 Therefore thus saith the LORD; Thy wife shall be an harlot in the -city, and thy sons and thy daughters shall fall by the sword, and thy -land shall be divided by line; and thou shalt die in a polluted land: -and Israel shall surely go into captivity forth of his land. - -8:1 Thus hath the Lord GOD shewed unto me: and behold a basket of -summer fruit. - -8:2 And he said, Amos, what seest thou? And I said, A basket of summer -fruit. Then said the LORD unto me, The end is come upon my people of -Israel; I will not again pass by them any more. - -8:3 And the songs of the temple shall be howlings in that day, saith -the Lord GOD: there shall be many dead bodies in every place; they -shall cast them forth with silence. - -8:4 Hear this, O ye that swallow up the needy, even to make the poor -of the land to fail, 8:5 Saying, When will the new moon be gone, that -we may sell corn? and the sabbath, that we may set forth wheat, making -the ephah small, and the shekel great, and falsifying the balances by -deceit? 8:6 That we may buy the poor for silver, and the needy for a -pair of shoes; yea, and sell the refuse of the wheat? 8:7 The LORD -hath sworn by the excellency of Jacob, Surely I will never forget any -of their works. - -8:8 Shall not the land tremble for this, and every one mourn that -dwelleth therein? and it shall rise up wholly as a flood; and it shall -be cast out and drowned, as by the flood of Egypt. - -8:9 And it shall come to pass in that day, saith the Lord GOD, that I -will cause the sun to go down at noon, and I will darken the earth in -the clear day: 8:10 And I will turn your feasts into mourning, and all -your songs into lamentation; and I will bring up sackcloth upon all -loins, and baldness upon every head; and I will make it as the -mourning of an only son, and the end thereof as a bitter day. - -8:11 Behold, the days come, saith the Lord GOD, that I will send a -famine in the land, not a famine of bread, nor a thirst for water, but -of hearing the words of the LORD: 8:12 And they shall wander from sea -to sea, and from the north even to the east, they shall run to and fro -to seek the word of the LORD, and shall not find it. - -8:13 In that day shall the fair virgins and young men faint for -thirst. - -8:14 They that swear by the sin of Samaria, and say, Thy god, O Dan, -liveth; and, The manner of Beersheba liveth; even they shall fall, and -never rise up again. - -9:1 I saw the LORD standing upon the altar: and he said, Smite the -lintel of the door, that the posts may shake: and cut them in the -head, all of them; and I will slay the last of them with the sword: he -that fleeth of them shall not flee away, and he that escapeth of them -shall not be delivered. - -9:2 Though they dig into hell, thence shall mine hand take them; -though they climb up to heaven, thence will I bring them down: 9:3 And -though they hide themselves in the top of Carmel, I will search and -take them out thence; and though they be hid from my sight in the -bottom of the sea, thence will I command the serpent, and he shall -bite them: 9:4 And though they go into captivity before their enemies, -thence will I command the sword, and it shall slay them: and I will -set mine eyes upon them for evil, and not for good. - -9:5 And the Lord GOD of hosts is he that toucheth the land, and it -shall melt, and all that dwell therein shall mourn: and it shall rise -up wholly like a flood; and shall be drowned, as by the flood of -Egypt. - -9:6 It is he that buildeth his stories in the heaven, and hath founded -his troop in the earth; he that calleth for the waters of the sea, and -poureth them out upon the face of the earth: The LORD is his name. - -9:7 Are ye not as children of the Ethiopians unto me, O children of -Israel? saith the LORD. Have not I brought up Israel out of the land -of Egypt? and the Philistines from Caphtor, and the Syrians from Kir? -9:8 Behold, the eyes of the Lord GOD are upon the sinful kingdom, and -I will destroy it from off the face of the earth; saving that I will -not utterly destroy the house of Jacob, saith the LORD. - -9:9 For, lo, I will command, and I will sift the house of Israel among -all nations, like as corn is sifted in a sieve, yet shall not the -least grain fall upon the earth. - -9:10 All the sinners of my people shall die by the sword, which say, -The evil shall not overtake nor prevent us. - -9:11 In that day will I raise up the tabernacle of David that is -fallen, and close up the breaches thereof; and I will raise up his -ruins, and I will build it as in the days of old: 9:12 That they may -possess the remnant of Edom, and of all the heathen, which are called -by my name, saith the LORD that doeth this. - -9:13 Behold, the days come, saith the LORD, that the plowman shall -overtake the reaper, and the treader of grapes him that soweth seed; -and the mountains shall drop sweet wine, and all the hills shall melt. - -9:14 And I will bring again the captivity of my people of Israel, and -they shall build the waste cities, and inhabit them; and they shall -plant vineyards, and drink the wine thereof; they shall also make -gardens, and eat the fruit of them. - -9:15 And I will plant them upon their land, and they shall no more be -pulled up out of their land which I have given them, saith the LORD -thy God. - - - - -Obadiah - - -1:1 The vision of Obadiah. Thus saith the Lord GOD concerning Edom; -We have heard a rumour from the LORD, and an ambassador is sent among -the heathen, Arise ye, and let us rise up against her in battle. - -1:2 Behold, I have made thee small among the heathen: thou art greatly -despised. - -1:3 The pride of thine heart hath deceived thee, thou that dwellest in -the clefts of the rock, whose habitation is high; that saith in his -heart, Who shall bring me down to the ground? 1:4 Though thou exalt -thyself as the eagle, and though thou set thy nest among the stars, -thence will I bring thee down, saith the LORD. - -1:5 If thieves came to thee, if robbers by night, (how art thou cut -off!) would they not have stolen till they had enough? if the -grapegatherers came to thee, would they not leave some grapes? 1:6 -How are the things of Esau searched out! how are his hidden things -sought up! 1:7 All the men of thy confederacy have brought thee even -to the border: the men that were at peace with thee have deceived -thee, and prevailed against thee; that they eat thy bread have laid a -wound under thee: there is none understanding in him. - -1:8 Shall I not in that day, saith the LORD, even destroy the wise men -out of Edom, and understanding out of the mount of Esau? 1:9 And thy -mighty men, O Teman, shall be dismayed, to the end that every one of -the mount of Esau may be cut off by slaughter. - -1:10 For thy violence against thy brother Jacob shame shall cover -thee, and thou shalt be cut off for ever. - -1:11 In the day that thou stoodest on the other side, in the day that -the strangers carried away captive his forces, and foreigners entered -into his gates, and cast lots upon Jerusalem, even thou wast as one of -them. - -1:12 But thou shouldest not have looked on the day of thy brother in -the day that he became a stranger; neither shouldest thou have -rejoiced over the children of Judah in the day of their destruction; -neither shouldest thou have spoken proudly in the day of distress. - -1:13 Thou shouldest not have entered into the gate of my people in the -day of their calamity; yea, thou shouldest not have looked on their -affliction in the day of their calamity, nor have laid hands on their -substance in the day of their calamity; 1:14 Neither shouldest thou -have stood in the crossway, to cut off those of his that did escape; -neither shouldest thou have delivered up those of his that did remain -in the day of distress. - -1:15 For the day of the LORD is near upon all the heathen: as thou -hast done, it shall be done unto thee: thy reward shall return upon -thine own head. - -1:16 For as ye have drunk upon my holy mountain, so shall all the -heathen drink continually, yea, they shall drink, and they shall -swallow down, and they shall be as though they had not been. - -1:17 But upon mount Zion shall be deliverance, and there shall be -holiness; and the house of Jacob shall possess their possessions. - -1:18 And the house of Jacob shall be a fire, and the house of Joseph a -flame, and the house of Esau for stubble, and they shall kindle in -them, and devour them; and there shall not be any remaining of the -house of Esau; for the LORD hath spoken it. - -1:19 And they of the south shall possess the mount of Esau; and they -of the plain the Philistines: and they shall possess the fields of -Ephraim, and the fields of Samaria: and Benjamin shall possess Gilead. - -1:20 And the captivity of this host of the children of Israel shall -possess that of the Canaanites, even unto Zarephath; and the captivity -of Jerusalem, which is in Sepharad, shall possess the cities of the -south. - -1:21 And saviours shall come up on mount Zion to judge the mount of -Esau; and the kingdom shall be the LORD's. - - - - -Jonah - - -1:1 Now the word of the LORD came unto Jonah the son of Amittai, -saying, 1:2 Arise, go to Nineveh, that great city, and cry against it; -for their wickedness is come up before me. - -1:3 But Jonah rose up to flee unto Tarshish from the presence of the -LORD, and went down to Joppa; and he found a ship going to Tarshish: -so he paid the fare thereof, and went down into it, to go with them -unto Tarshish from the presence of the LORD. - -1:4 But the LORD sent out a great wind into the sea, and there was a -mighty tempest in the sea, so that the ship was like to be broken. - -1:5 Then the mariners were afraid, and cried every man unto his god, -and cast forth the wares that were in the ship into the sea, to -lighten it of them. But Jonah was gone down into the sides of the -ship; and he lay, and was fast asleep. - -1:6 So the shipmaster came to him, and said unto him, What meanest -thou, O sleeper? arise, call upon thy God, if so be that God will -think upon us, that we perish not. - -1:7 And they said every one to his fellow, Come, and let us cast lots, -that we may know for whose cause this evil is upon us. So they cast -lots, and the lot fell upon Jonah. - -1:8 Then said they unto him, Tell us, we pray thee, for whose cause -this evil is upon us; What is thine occupation? and whence comest -thou? what is thy country? and of what people art thou? 1:9 And he -said unto them, I am an Hebrew; and I fear the LORD, the God of -heaven, which hath made the sea and the dry land. - -1:10 Then were the men exceedingly afraid, and said unto him. Why hast -thou done this? For the men knew that he fled from the presence of the -LORD, because he had told them. - -1:11 Then said they unto him, What shall we do unto thee, that the sea -may be calm unto us? for the sea wrought, and was tempestuous. - -1:12 And he said unto them, Take me up, and cast me forth into the -sea; so shall the sea be calm unto you: for I know that for my sake -this great tempest is upon you. - -1:13 Nevertheless the men rowed hard to bring it to the land; but they -could not: for the sea wrought, and was tempestuous against them. - -1:14 Wherefore they cried unto the LORD, and said, We beseech thee, O -LORD, we beseech thee, let us not perish for this man's life, and lay -not upon us innocent blood: for thou, O LORD, hast done as it pleased -thee. - -1:15 So they look up Jonah, and cast him forth into the sea: and the -sea ceased from her raging. - -1:16 Then the men feared the LORD exceedingly, and offered a sacrifice -unto the LORD, and made vows. - -1:17 Now the LORD had prepared a great fish to swallow up Jonah. And -Jonah was in the belly of the fish three days and three nights. - -2:1 Then Jonah prayed unto the LORD his God out of the fish's belly, -2:2 And said, I cried by reason of mine affliction unto the LORD, and -he heard me; out of the belly of hell cried I, and thou heardest my -voice. - -2:3 For thou hadst cast me into the deep, in the midst of the seas; -and the floods compassed me about: all thy billows and thy waves -passed over me. - -2:4 Then I said, I am cast out of thy sight; yet I will look again -toward thy holy temple. - -2:5 The waters compassed me about, even to the soul: the depth closed -me round about, the weeds were wrapped about my head. - -2:6 I went down to the bottoms of the mountains; the earth with her -bars was about me for ever: yet hast thou brought up my life from -corruption, O LORD my God. - -2:7 When my soul fainted within me I remembered the LORD: and my -prayer came in unto thee, into thine holy temple. - -2:8 They that observe lying vanities forsake their own mercy. - -2:9 But I will sacrifice unto thee with the voice of thanksgiving; I -will pay that that I have vowed. Salvation is of the LORD. - -2:10 And the LORD spake unto the fish, and it vomited out Jonah upon -the dry land. - -3:1 And the word of the LORD came unto Jonah the second time, saying, -3:2 Arise, go unto Nineveh, that great city, and preach unto it the -preaching that I bid thee. - -3:3 So Jonah arose, and went unto Nineveh, according to the word of -the LORD. Now Nineveh was an exceeding great city of three days' -journey. - -3:4 And Jonah began to enter into the city a day's journey, and he -cried, and said, Yet forty days, and Nineveh shall be overthrown. - -3:5 So the people of Nineveh believed God, and proclaimed a fast, and -put on sackcloth, from the greatest of them even to the least of them. - -3:6 For word came unto the king of Nineveh, and he arose from his -throne, and he laid his robe from him, and covered him with sackcloth, -and sat in ashes. - -3:7 And he caused it to be proclaimed and published through Nineveh by -the decree of the king and his nobles, saying, Let neither man nor -beast, herd nor flock, taste any thing: let them not feed, nor drink -water: 3:8 But let man and beast be covered with sackcloth, and cry -mightily unto God: yea, let them turn every one from his evil way, and -from the violence that is in their hands. - -3:9 Who can tell if God will turn and repent, and turn away from his -fierce anger, that we perish not? 3:10 And God saw their works, that -they turned from their evil way; and God repented of the evil, that he -had said that he would do unto them; and he did it not. - -4:1 But it displeased Jonah exceedingly, and he was very angry. - -4:2 And he prayed unto the LORD, and said, I pray thee, O LORD, was -not this my saying, when I was yet in my country? Therefore I fled -before unto Tarshish: for I knew that thou art a gracious God, and -merciful, slow to anger, and of great kindness, and repentest thee of -the evil. - -4:3 Therefore now, O LORD, take, I beseech thee, my life from me; for -it is better for me to die than to live. - -4:4 Then said the LORD, Doest thou well to be angry? 4:5 So Jonah -went out of the city, and sat on the east side of the city, and there -made him a booth, and sat under it in the shadow, till he might see -what would become of the city. - -4:6 And the LORD God prepared a gourd, and made it to come up over -Jonah, that it might be a shadow over his head, to deliver him from -his grief. So Jonah was exceeding glad of the gourd. - -4:7 But God prepared a worm when the morning rose the next day, and it -smote the gourd that it withered. - -4:8 And it came to pass, when the sun did arise, that God prepared a -vehement east wind; and the sun beat upon the head of Jonah, that he -fainted, and wished in himself to die, and said, It is better for me -to die than to live. - -4:9 And God said to Jonah, Doest thou well to be angry for the gourd? -And he said, I do well to be angry, even unto death. - -4:10 Then said the LORD, Thou hast had pity on the gourd, for the -which thou hast not laboured, neither madest it grow; which came up in -a night, and perished in a night: 4:11 And should not I spare Nineveh, -that great city, wherein are more then sixscore thousand persons that -cannot discern between their right hand and their left hand; and also -much cattle? - - - - -Micah - - -1:1 The word of the LORD that came to Micah the Morasthite in the -days of Jotham, Ahaz, and Hezekiah, kings of Judah, which he saw -concerning Samaria and Jerusalem. - -1:2 Hear, all ye people; hearken, O earth, and all that therein is: -and let the Lord GOD be witness against you, the LORD from his holy -temple. - -1:3 For, behold, the LORD cometh forth out of his place, and will come -down, and tread upon the high places of the earth. - -1:4 And the mountains shall be molten under him, and the valleys shall -be cleft, as wax before the fire, and as the waters that are poured -down a steep place. - -1:5 For the transgression of Jacob is all this, and for the sins of -the house of Israel. What is the transgression of Jacob? is it not -Samaria? and what are the high places of Judah? are they not -Jerusalem? 1:6 Therefore I will make Samaria as an heap of the field, -and as plantings of a vineyard: and I will pour down the stones -thereof into the valley, and I will discover the foundations thereof. - -1:7 And all the graven images thereof shall be beaten to pieces, and -all the hires thereof shall be burned with the fire, and all the idols -thereof will I lay desolate: for she gathered it of the hire of an -harlot, and they shall return to the hire of an harlot. - -1:8 Therefore I will wail and howl, I will go stripped and naked: I -will make a wailing like the dragons, and mourning as the owls. - -1:9 For her wound is incurable; for it is come unto Judah; he is come -unto the gate of my people, even to Jerusalem. - -1:10 Declare ye it not at Gath, weep ye not at all: in the house of -Aphrah roll thyself in the dust. - -1:11 Pass ye away, thou inhabitant of Saphir, having thy shame naked: -the inhabitant of Zaanan came not forth in the mourning of Bethezel; -he shall receive of you his standing. - -1:12 For the inhabitant of Maroth waited carefully for good: but evil -came down from the LORD unto the gate of Jerusalem. - -1:13 O thou inhabitant of Lachish, bind the chariot to the swift -beast: she is the beginning of the sin to the daughter of Zion: for -the transgressions of Israel were found in thee. - -1:14 Therefore shalt thou give presents to Moreshethgath: the houses -of Achzib shall be a lie to the kings of Israel. - -1:15 Yet will I bring an heir unto thee, O inhabitant of Mareshah: he -shall come unto Adullam the glory of Israel. - -1:16 Make thee bald, and poll thee for thy delicate children; enlarge -thy baldness as the eagle; for they are gone into captivity from thee. - -2:1 Woe to them that devise iniquity, and work evil upon their beds! -when the morning is light, they practise it, because it is in the -power of their hand. - -2:2 And they covet fields, and take them by violence; and houses, and -take them away: so they oppress a man and his house, even a man and -his heritage. - -2:3 Therefore thus saith the LORD; Behold, against this family do I -devise an evil, from which ye shall not remove your necks; neither -shall ye go haughtily: for this time is evil. - -2:4 In that day shall one take up a parable against you, and lament -with a doleful lamentation, and say, We be utterly spoiled: he hath -changed the portion of my people: how hath he removed it from me! -turning away he hath divided our fields. - -2:5 Therefore thou shalt have none that shall cast a cord by lot in -the congregation of the LORD. - -2:6 Prophesy ye not, say they to them that prophesy: they shall not -prophesy to them, that they shall not take shame. - -2:7 O thou that art named the house of Jacob, is the spirit of the -LORD straitened? are these his doings? do not my words do good to him -that walketh uprightly? 2:8 Even of late my people is risen up as an -enemy: ye pull off the robe with the garment from them that pass by -securely as men averse from war. - -2:9 The women of my people have ye cast out from their pleasant -houses; from their children have ye taken away my glory for ever. - -2:10 Arise ye, and depart; for this is not your rest: because it is -polluted, it shall destroy you, even with a sore destruction. - -2:11 If a man walking in the spirit and falsehood do lie, saying, I -will prophesy unto thee of wine and of strong drink; he shall even be -the prophet of this people. - -2:12 I will surely assemble, O Jacob, all of thee; I will surely -gather the remnant of Israel; I will put them together as the sheep of -Bozrah, as the flock in the midst of their fold: they shall make great -noise by reason of the multitude of men. - -2:13 The breaker is come up before them: they have broken up, and have -passed through the gate, and are gone out by it: and their king shall -pass before them, and the LORD on the head of them. - -3:1 And I said, Hear, I pray you, O heads of Jacob, and ye princes of -the house of Israel; Is it not for you to know judgment? 3:2 Who hate -the good, and love the evil; who pluck off their skin from off them, -and their flesh from off their bones; 3:3 Who also eat the flesh of my -people, and flay their skin from off them; and they break their bones, -and chop them in pieces, as for the pot, and as flesh within the -caldron. - -3:4 Then shall they cry unto the LORD, but he will not hear them: he -will even hide his face from them at that time, as they have behaved -themselves ill in their doings. - -3:5 Thus saith the LORD concerning the prophets that make my people -err, that bite with their teeth, and cry, Peace; and he that putteth -not into their mouths, they even prepare war against him. - -3:6 Therefore night shall be unto you, that ye shall not have a -vision; and it shall be dark unto you, that ye shall not divine; and -the sun shall go down over the prophets, and the day shall be dark -over them. - -3:7 Then shall the seers be ashamed, and the diviners confounded: yea, -they shall all cover their lips; for there is no answer of God. - -3:8 But truly I am full of power by the spirit of the LORD, and of -judgment, and of might, to declare unto Jacob his transgression, and -to Israel his sin. - -3:9 Hear this, I pray you, ye heads of the house of Jacob, and princes -of the house of Israel, that abhor judgment, and pervert all equity. - -3:10 They build up Zion with blood, and Jerusalem with iniquity. - -3:11 The heads thereof judge for reward, and the priests thereof teach -for hire, and the prophets thereof divine for money: yet will they -lean upon the LORD, and say, Is not the LORD among us? none evil can -come upon us. - -3:12 Therefore shall Zion for your sake be plowed as a field, and -Jerusalem shall become heaps, and the mountain of the house as the -high places of the forest. - -4:1 But in the last days it shall come to pass, that the mountain of -the house of the LORD shall be established in the top of the -mountains, and it shall be exalted above the hills; and people shall -flow unto it. - -4:2 And many nations shall come, and say, Come, and let us go up to -the mountain of the LORD, and to the house of the God of Jacob; and he -will teach us of his ways, and we will walk in his paths: for the law -shall go forth of Zion, and the word of the LORD from Jerusalem. - -4:3 And he shall judge among many people, and rebuke strong nations -afar off; and they shall beat their swords into plowshares, and their -spears into pruninghooks: nation shall not lift up a sword against -nation, neither shall they learn war any more. - -4:4 But they shall sit every man under his vine and under his fig -tree; and none shall make them afraid: for the mouth of the LORD of -hosts hath spoken it. - -4:5 For all people will walk every one in the name of his god, and we -will walk in the name of the LORD our God for ever and ever. - -4:6 In that day, saith the LORD, will I assemble her that halteth, and -I will gather her that is driven out, and her that I have afflicted; -4:7 And I will make her that halted a remnant, and her that was cast -far off a strong nation: and the LORD shall reign over them in mount -Zion from henceforth, even for ever. - -4:8 And thou, O tower of the flock, the strong hold of the daughter of -Zion, unto thee shall it come, even the first dominion; the kingdom -shall come to the daughter of Jerusalem. - -4:9 Now why dost thou cry out aloud? is there no king in thee? is thy -counsellor perished? for pangs have taken thee as a woman in travail. - -4:10 Be in pain, and labour to bring forth, O daughter of Zion, like a -woman in travail: for now shalt thou go forth out of the city, and -thou shalt dwell in the field, and thou shalt go even to Babylon; -there shalt thou be delivered; there the LORD shall redeem thee from -the hand of thine enemies. - -4:11 Now also many nations are gathered against thee, that say, Let -her be defiled, and let our eye look upon Zion. - -4:12 But they know not the thoughts of the LORD, neither understand -they his counsel: for he shall gather them as the sheaves into the -floor. - -4:13 Arise and thresh, O daughter of Zion: for I will make thine horn -iron, and I will make thy hoofs brass: and thou shalt beat in pieces -many people: and I will consecrate their gain unto the LORD, and their -substance unto the Lord of the whole earth. - -5:1 Now gather thyself in troops, O daughter of troops: he hath laid -siege against us: they shall smite the judge of Israel with a rod upon -the cheek. - -5:2 But thou, Bethlehem Ephratah, though thou be little among the -thousands of Judah, yet out of thee shall he come forth unto me that -is to be ruler in Israel; whose goings forth have been from of old, -from everlasting. - -5:3 Therefore will he give them up, until the time that she which -travaileth hath brought forth: then the remnant of his brethren shall -return unto the children of Israel. - -5:4 And he shall stand and feed in the strength of the LORD, in the -majesty of the name of the LORD his God; and they shall abide: for now -shall he be great unto the ends of the earth. - -5:5 And this man shall be the peace, when the Assyrian shall come into -our land: and when he shall tread in our palaces, then shall we raise -against him seven shepherds, and eight principal men. - -5:6 And they shall waste the land of Assyria with the sword, and the -land of Nimrod in the entrances thereof: thus shall he deliver us from -the Assyrian, when he cometh into our land, and when he treadeth -within our borders. - -5:7 And the remnant of Jacob shall be in the midst of many people as a -dew from the LORD, as the showers upon the grass, that tarrieth not -for man, nor waiteth for the sons of men. - -5:8 And the remnant of Jacob shall be among the Gentiles in the midst -of many people as a lion among the beasts of the forest, as a young -lion among the flocks of sheep: who, if he go through, both treadeth -down, and teareth in pieces, and none can deliver. - -5:9 Thine hand shall be lifted up upon thine adversaries, and all -thine enemies shall be cut off. - -5:10 And it shall come to pass in that day, saith the LORD, that I -will cut off thy horses out of the midst of thee, and I will destroy -thy chariots: 5:11 And I will cut off the cities of thy land, and -throw down all thy strong holds: 5:12 And I will cut off witchcrafts -out of thine hand; and thou shalt have no more soothsayers: 5:13 Thy -graven images also will I cut off, and thy standing images out of the -midst of thee; and thou shalt no more worship the work of thine hands. - -5:14 And I will pluck up thy groves out of the midst of thee: so will -I destroy thy cities. - -5:15 And I will execute vengeance in anger and fury upon the heathen, -such as they have not heard. - -6:1 Hear ye now what the LORD saith; Arise, contend thou before the -mountains, and let the hills hear thy voice. - -6:2 Hear ye, O mountains, the LORD's controversy, and ye strong -foundations of the earth: for the LORD hath a controversy with his -people, and he will plead with Israel. - -6:3 O my people, what have I done unto thee? and wherein have I -wearied thee? testify against me. - -6:4 For I brought thee up out of the land of Egypt, and redeemed thee -out of the house of servants; and I sent before thee Moses, Aaron, and -Miriam. - -6:5 O my people, remember now what Balak king of Moab consulted, and -what Balaam the son of Beor answered him from Shittim unto Gilgal; -that ye may know the righteousness of the LORD. - -6:6 Wherewith shall I come before the LORD, and bow myself before the -high God? shall I come before him with burnt offerings, with calves of -a year old? 6:7 Will the LORD be pleased with thousands of rams, or -with ten thousands of rivers of oil? shall I give my firstborn for my -transgression, the fruit of my body for the sin of my soul? 6:8 He -hath shewed thee, O man, what is good; and what doth the LORD require -of thee, but to do justly, and to love mercy, and to walk humbly with -thy God? 6:9 The LORD's voice crieth unto the city, and the man of -wisdom shall see thy name: hear ye the rod, and who hath appointed it. - -6:10 Are there yet the treasures of wickedness in the house of the -wicked, and the scant measure that is abominable? 6:11 Shall I count -them pure with the wicked balances, and with the bag of deceitful -weights? 6:12 For the rich men thereof are full of violence, and the -inhabitants thereof have spoken lies, and their tongue is deceitful in -their mouth. - -6:13 Therefore also will I make thee sick in smiting thee, in making -thee desolate because of thy sins. - -6:14 Thou shalt eat, but not be satisfied; and thy casting down shall -be in the midst of thee; and thou shalt take hold, but shalt not -deliver; and that which thou deliverest will I give up to the sword. - -6:15 Thou shalt sow, but thou shalt not reap; thou shalt tread the -olives, but thou shalt not anoint thee with oil; and sweet wine, but -shalt not drink wine. - -6:16 For the statutes of Omri are kept, and all the works of the house -of Ahab, and ye walk in their counsels; that I should make thee a -desolation, and the inhabitants thereof an hissing: therefore ye shall -bear the reproach of my people. - -7:1 Woe is me! for I am as when they have gathered the summer fruits, -as the grapegleanings of the vintage: there is no cluster to eat: my -soul desired the firstripe fruit. - -7:2 The good man is perished out of the earth: and there is none -upright among men: they all lie in wait for blood; they hunt every man -his brother with a net. - -7:3 That they may do evil with both hands earnestly, the prince -asketh, and the judge asketh for a reward; and the great man, he -uttereth his mischievous desire: so they wrap it up. - -7:4 The best of them is as a brier: the most upright is sharper than a -thorn hedge: the day of thy watchmen and thy visitation cometh; now -shall be their perplexity. - -7:5 Trust ye not in a friend, put ye not confidence in a guide: keep -the doors of thy mouth from her that lieth in thy bosom. - -7:6 For the son dishonoureth the father, the daughter riseth up -against her mother, the daughter in law against her mother in law; a -man's enemies are the men of his own house. - -7:7 Therefore I will look unto the LORD; I will wait for the God of my -salvation: my God will hear me. - -7:8 Rejoice not against me, O mine enemy: when I fall, I shall arise; -when I sit in darkness, the LORD shall be a light unto me. - -7:9 I will bear the indignation of the LORD, because I have sinned -against him, until he plead my cause, and execute judgment for me: he -will bring me forth to the light, and I shall behold his -righteousness. - -7:10 Then she that is mine enemy shall see it, and shame shall cover -her which said unto me, Where is the LORD thy God? mine eyes shall -behold her: now shall she be trodden down as the mire of the streets. - -7:11 In the day that thy walls are to be built, in that day shall the -decree be far removed. - -7:12 In that day also he shall come even to thee from Assyria, and -from the fortified cities, and from the fortress even to the river, -and from sea to sea, and from mountain to mountain. - -7:13 Notwithstanding the land shall be desolate because of them that -dwell therein, for the fruit of their doings. - -7:14 Feed thy people with thy rod, the flock of thine heritage, which -dwell solitarily in the wood, in the midst of Carmel: let them feed in -Bashan and Gilead, as in the days of old. - -7:15 According to the days of thy coming out of the land of Egypt will -I shew unto him marvellous things. - -7:16 The nations shall see and be confounded at all their might: they -shall lay their hand upon their mouth, their ears shall be deaf. - -7:17 They shall lick the dust like a serpent, they shall move out of -their holes like worms of the earth: they shall be afraid of the LORD -our God, and shall fear because of thee. - -7:18 Who is a God like unto thee, that pardoneth iniquity, and passeth -by the transgression of the remnant of his heritage? he retaineth not -his anger for ever, because he delighteth in mercy. - -7:19 He will turn again, he will have compassion upon us; he will -subdue our iniquities; and thou wilt cast all their sins into the -depths of the sea. - -7:20 Thou wilt perform the truth to Jacob, and the mercy to Abraham, -which thou hast sworn unto our fathers from the days of old. - - - - -Nahum - - -1:1 The burden of Nineveh. The book of the vision of Nahum the Elkoshite. - -1:2 God is jealous, and the LORD revengeth; the LORD revengeth, and is -furious; the LORD will take vengeance on his adversaries, and he -reserveth wrath for his enemies. - -1:3 The LORD is slow to anger, and great in power, and will not at all -acquit the wicked: the LORD hath his way in the whirlwind and in the -storm, and the clouds are the dust of his feet. - -1:4 He rebuketh the sea, and maketh it dry, and drieth up all the -rivers: Bashan languisheth, and Carmel, and the flower of Lebanon -languisheth. - -1:5 The mountains quake at him, and the hills melt, and the earth is -burned at his presence, yea, the world, and all that dwell therein. - -1:6 Who can stand before his indignation? and who can abide in the -fierceness of his anger? his fury is poured out like fire, and the -rocks are thrown down by him. - -1:7 The LORD is good, a strong hold in the day of trouble; and he -knoweth them that trust in him. - -1:8 But with an overrunning flood he will make an utter end of the -place thereof, and darkness shall pursue his enemies. - -1:9 What do ye imagine against the LORD? he will make an utter end: -affliction shall not rise up the second time. - -1:10 For while they be folden together as thorns, and while they are -drunken as drunkards, they shall be devoured as stubble fully dry. - -1:11 There is one come out of thee, that imagineth evil against the -LORD, a wicked counsellor. - -1:12 Thus saith the LORD; Though they be quiet, and likewise many, yet -thus shall they be cut down, when he shall pass through. Though I have -afflicted thee, I will afflict thee no more. - -1:13 For now will I break his yoke from off thee, and will burst thy -bonds in sunder. - -1:14 And the LORD hath given a commandment concerning thee, that no -more of thy name be sown: out of the house of thy gods will I cut off -the graven image and the molten image: I will make thy grave; for thou -art vile. - -1:15 Behold upon the mountains the feet of him that bringeth good -tidings, that publisheth peace! O Judah, keep thy solemn feasts, -perform thy vows: for the wicked shall no more pass through thee; he -is utterly cut off. - -2:1 He that dasheth in pieces is come up before thy face: keep the -munition, watch the way, make thy loins strong, fortify thy power -mightily. - -2:2 For the LORD hath turned away the excellency of Jacob, as the -excellency of Israel: for the emptiers have emptied them out, and -marred their vine branches. - -2:3 The shield of his mighty men is made red, the valiant men are in -scarlet: the chariots shall be with flaming torches in the day of his -preparation, and the fir trees shall be terribly shaken. - -2:4 The chariots shall rage in the streets, they shall justle one -against another in the broad ways: they shall seem like torches, they -shall run like the lightnings. - -2:5 He shall recount his worthies: they shall stumble in their walk; -they shall make haste to the wall thereof, and the defence shall be -prepared. - -2:6 The gates of the rivers shall be opened, and the palace shall be -dissolved. - -2:7 And Huzzab shall be led away captive, she shall be brought up, and -her maids shall lead her as with the voice of doves, tabering upon -their breasts. - -2:8 But Nineveh is of old like a pool of water: yet they shall flee -away. - -Stand, stand, shall they cry; but none shall look back. - -2:9 Take ye the spoil of silver, take the spoil of gold: for there is -none end of the store and glory out of all the pleasant furniture. - -2:10 She is empty, and void, and waste: and the heart melteth, and the -knees smite together, and much pain is in all loins, and the faces of -them all gather blackness. - -2:11 Where is the dwelling of the lions, and the feedingplace of the -young lions, where the lion, even the old lion, walked, and the lion's -whelp, and none made them afraid? 2:12 The lion did tear in pieces -enough for his whelps, and strangled for his lionesses, and filled his -holes with prey, and his dens with ravin. - -2:13 Behold, I am against thee, saith the LORD of hosts, and I will -burn her chariots in the smoke, and the sword shall devour thy young -lions: and I will cut off thy prey from the earth, and the voice of -thy messengers shall no more be heard. - -3:1 Woe to the bloody city! it is all full of lies and robbery; the -prey departeth not; 3:2 The noise of a whip, and the noise of the -rattling of the wheels, and of the pransing horses, and of the jumping -chariots. - -3:3 The horseman lifteth up both the bright sword and the glittering -spear: and there is a multitude of slain, and a great number of -carcases; and there is none end of their corpses; they stumble upon -their corpses: 3:4 Because of the multitude of the whoredoms of the -wellfavoured harlot, the mistress of witchcrafts, that selleth nations -through her whoredoms, and families through her witchcrafts. - -3:5 Behold, I am against thee, saith the LORD of hosts; and I will -discover thy skirts upon thy face, and I will shew the nations thy -nakedness, and the kingdoms thy shame. - -3:6 And I will cast abominable filth upon thee, and make thee vile, -and will set thee as a gazingstock. - -3:7 And it shall come to pass, that all they that look upon thee shall -flee from thee, and say, Nineveh is laid waste: who will bemoan her? -whence shall I seek comforters for thee? 3:8 Art thou better than -populous No, that was situate among the rivers, that had the waters -round about it, whose rampart was the sea, and her wall was from the -sea? 3:9 Ethiopia and Egypt were her strength, and it was infinite; -Put and Lubim were thy helpers. - -3:10 Yet was she carried away, she went into captivity: her young -children also were dashed in pieces at the top of all the streets: and -they cast lots for her honourable men, and all her great men were -bound in chains. - -3:11 Thou also shalt be drunken: thou shalt be hid, thou also shalt -seek strength because of the enemy. - -3:12 All thy strong holds shall be like fig trees with the firstripe -figs: if they be shaken, they shall even fall into the mouth of the -eater. - -3:13 Behold, thy people in the midst of thee are women: the gates of -thy land shall be set wide open unto thine enemies: the fire shall -devour thy bars. - -3:14 Draw thee waters for the siege, fortify thy strong holds: go into -clay, and tread the morter, make strong the brickkiln. - -3:15 There shall the fire devour thee; the sword shall cut thee off, -it shall eat thee up like the cankerworm: make thyself many as the -cankerworm, make thyself many as the locusts. - -3:16 Thou hast multiplied thy merchants above the stars of heaven: the -cankerworm spoileth, and fleeth away. - -3:17 Thy crowned are as the locusts, and thy captains as the great -grasshoppers, which camp in the hedges in the cold day, but when the -sun ariseth they flee away, and their place is not known where they -are. - -3:18 Thy shepherds slumber, O king of Assyria: thy nobles shall dwell -in the dust: thy people is scattered upon the mountains, and no man -gathereth them. - -3:19 There is no healing of thy bruise; thy wound is grievous: all -that hear the bruit of thee shall clap the hands over thee: for upon -whom hath not thy wickedness passed continually? - - - - -Habakkuk - - -1:1 The burden which Habakkuk the prophet did see. - -1:2 O LORD, how long shall I cry, and thou wilt not hear! even cry out -unto thee of violence, and thou wilt not save! 1:3 Why dost thou shew -me iniquity, and cause me to behold grievance? for spoiling and -violence are before me: and there are that raise up strife and -contention. - -1:4 Therefore the law is slacked, and judgment doth never go forth: -for the wicked doth compass about the righteous; therefore wrong -judgment proceedeth. - -1:5 Behold ye among the heathen, and regard, and wonder marvelously: -for I will work a work in your days which ye will not believe, though -it be told you. - -1:6 For, lo, I raise up the Chaldeans, that bitter and hasty nation, -which shall march through the breadth of the land, to possess the -dwellingplaces that are not their's. - -1:7 They are terrible and dreadful: their judgment and their dignity -shall proceed of themselves. - -1:8 Their horses also are swifter than the leopards, and are more -fierce than the evening wolves: and their horsemen shall spread -themselves, and their horsemen shall come from far; they shall fly as -the eagle that hasteth to eat. - -1:9 They shall come all for violence: their faces shall sup up as the -east wind, and they shall gather the captivity as the sand. - -1:10 And they shall scoff at the kings, and the princes shall be a -scorn unto them: they shall deride every strong hold; for they shall -heap dust, and take it. - -1:11 Then shall his mind change, and he shall pass over, and offend, -imputing this his power unto his god. - -1:12 Art thou not from everlasting, O LORD my God, mine Holy One? we -shall not die. O LORD, thou hast ordained them for judgment; and, O -mighty God, thou hast established them for correction. - -1:13 Thou art of purer eyes than to behold evil, and canst not look on -iniquity: wherefore lookest thou upon them that deal treacherously, -and holdest thy tongue when the wicked devoureth the man that is more -righteous than he? 1:14 And makest men as the fishes of the sea, as -the creeping things, that have no ruler over them? 1:15 They take up -all of them with the angle, they catch them in their net, and gather -them in their drag: therefore they rejoice and are glad. - -1:16 Therefore they sacrifice unto their net, and burn incense unto -their drag; because by them their portion is fat, and their meat -plenteous. - -1:17 Shall they therefore empty their net, and not spare continually -to slay the nations? 2:1 I will stand upon my watch, and set me upon -the tower, and will watch to see what he will say unto me, and what I -shall answer when I am reproved. - -2:2 And the LORD answered me, and said, Write the vision, and make it -plain upon tables, that he may run that readeth it. - -2:3 For the vision is yet for an appointed time, but at the end it -shall speak, and not lie: though it tarry, wait for it; because it -will surely come, it will not tarry. - -2:4 Behold, his soul which is lifted up is not upright in him: but the -just shall live by his faith. - -2:5 Yea also, because he transgresseth by wine, he is a proud man, -neither keepeth at home, who enlargeth his desire as hell, and is as -death, and cannot be satisfied, but gathereth unto him all nations, -and heapeth unto him all people: 2:6 Shall not all these take up a -parable against him, and a taunting proverb against him, and say, Woe -to him that increaseth that which is not his! how long? and to him -that ladeth himself with thick clay! 2:7 Shall they not rise up -suddenly that shall bite thee, and awake that shall vex thee, and thou -shalt be for booties unto them? 2:8 Because thou hast spoiled many -nations, all the remnant of the people shall spoil thee; because of -men's blood, and for the violence of the land, of the city, and of all -that dwell therein. - -2:9 Woe to him that coveteth an evil covetousness to his house, that -he may set his nest on high, that he may be delivered from the power -of evil! 2:10 Thou hast consulted shame to thy house by cutting off -many people, and hast sinned against thy soul. - -2:11 For the stone shall cry out of the wall, and the beam out of the -timber shall answer it. - -2:12 Woe to him that buildeth a town with blood, and stablisheth a -city by iniquity! 2:13 Behold, is it not of the LORD of hosts that -the people shall labour in the very fire, and the people shall weary -themselves for very vanity? 2:14 For the earth shall be filled with -the knowledge of the glory of the LORD, as the waters cover the sea. - -2:15 Woe unto him that giveth his neighbour drink, that puttest thy -bottle to him, and makest him drunken also, that thou mayest look on -their nakedness! 2:16 Thou art filled with shame for glory: drink -thou also, and let thy foreskin be uncovered: the cup of the LORD's -right hand shall be turned unto thee, and shameful spewing shall be on -thy glory. - -2:17 For the violence of Lebanon shall cover thee, and the spoil of -beasts, which made them afraid, because of men's blood, and for the -violence of the land, of the city, and of all that dwell therein. - -2:18 What profiteth the graven image that the maker thereof hath -graven it; the molten image, and a teacher of lies, that the maker of -his work trusteth therein, to make dumb idols? 2:19 Woe unto him that -saith to the wood, Awake; to the dumb stone, Arise, it shall teach! -Behold, it is laid over with gold and silver, and there is no breath -at all in the midst of it. - -2:20 But the LORD is in his holy temple: let all the earth keep -silence before him. - -3:1 A prayer of Habakkuk the prophet upon Shigionoth. - -3:2 O LORD, I have heard thy speech, and was afraid: O LORD, revive -thy work in the midst of the years, in the midst of the years make -known; in wrath remember mercy. - -3:3 God came from Teman, and the Holy One from mount Paran. Selah. His -glory covered the heavens, and the earth was full of his praise. - -3:4 And his brightness was as the light; he had horns coming out of -his hand: and there was the hiding of his power. - -3:5 Before him went the pestilence, and burning coals went forth at -his feet. - -3:6 He stood, and measured the earth: he beheld, and drove asunder the -nations; and the everlasting mountains were scattered, the perpetual -hills did bow: his ways are everlasting. - -3:7 I saw the tents of Cushan in affliction: and the curtains of the -land of Midian did tremble. - -3:8 Was the LORD displeased against the rivers? was thine anger -against the rivers? was thy wrath against the sea, that thou didst -ride upon thine horses and thy chariots of salvation? 3:9 Thy bow was -made quite naked, according to the oaths of the tribes, even thy word. -Selah. Thou didst cleave the earth with rivers. - -3:10 The mountains saw thee, and they trembled: the overflowing of the -water passed by: the deep uttered his voice, and lifted up his hands -on high. - -3:11 The sun and moon stood still in their habitation: at the light of -thine arrows they went, and at the shining of thy glittering spear. - -3:12 Thou didst march through the land in indignation, thou didst -thresh the heathen in anger. - -3:13 Thou wentest forth for the salvation of thy people, even for -salvation with thine anointed; thou woundedst the head out of the -house of the wicked, by discovering the foundation unto the neck. -Selah. - -3:14 Thou didst strike through with his staves the head of his -villages: they came out as a whirlwind to scatter me: their rejoicing -was as to devour the poor secretly. - -3:15 Thou didst walk through the sea with thine horses, through the -heap of great waters. - -3:16 When I heard, my belly trembled; my lips quivered at the voice: -rottenness entered into my bones, and I trembled in myself, that I -might rest in the day of trouble: when he cometh up unto the people, -he will invade them with his troops. - -3:17 Although the fig tree shall not blossom, neither shall fruit be -in the vines; the labour of the olive shall fail, and the fields shall -yield no meat; the flock shall be cut off from the fold, and there -shall be no herd in the stalls: 3:18 Yet I will rejoice in the LORD, I -will joy in the God of my salvation. - -3:19 The LORD God is my strength, and he will make my feet like hinds' -feet, and he will make me to walk upon mine high places. To the chief -singer on my stringed instruments. - - - - -Zephaniah - - -1:1 The word of the LORD which came unto Zephaniah the son of Cushi, -the son of Gedaliah, the son of Amariah, the son of Hizkiah, in the -days of Josiah the son of Amon, king of Judah. - -1:2 I will utterly consume all things from off the land, saith the -LORD. - -1:3 I will consume man and beast; I will consume the fowls of the -heaven, and the fishes of the sea, and the stumbling blocks with the -wicked: and I will cut off man from off the land, saith the LORD. - -1:4 I will also stretch out mine hand upon Judah, and upon all the -inhabitants of Jerusalem; and I will cut off the remnant of Baal from -this place, and the name of the Chemarims with the priests; 1:5 And -them that worship the host of heaven upon the housetops; and them that -worship and that swear by the LORD, and that swear by Malcham; 1:6 And -them that are turned back from the LORD; and those that have not -sought the LORD, nor enquired for him. - -1:7 Hold thy peace at the presence of the Lord GOD: for the day of the -LORD is at hand: for the LORD hath prepared a sacrifice, he hath bid -his guests. - -1:8 And it shall come to pass in the day of the LORD's sacrifice, that -I will punish the princes, and the king's children, and all such as -are clothed with strange apparel. - -1:9 In the same day also will I punish all those that leap on the -threshold, which fill their masters' houses with violence and deceit. - -1:10 And it shall come to pass in that day, saith the LORD, that there -shall be the noise of a cry from the fish gate, and an howling from -the second, and a great crashing from the hills. - -1:11 Howl, ye inhabitants of Maktesh, for all the merchant people are -cut down; all they that bear silver are cut off. - -1:12 And it shall come to pass at that time, that I will search -Jerusalem with candles, and punish the men that are settled on their -lees: that say in their heart, The LORD will not do good, neither will -he do evil. - -1:13 Therefore their goods shall become a booty, and their houses a -desolation: they shall also build houses, but not inhabit them; and -they shall plant vineyards, but not drink the wine thereof. - -1:14 The great day of the LORD is near, it is near, and hasteth -greatly, even the voice of the day of the LORD: the mighty man shall -cry there bitterly. - -1:15 That day is a day of wrath, a day of trouble and distress, a day -of wasteness and desolation, a day of darkness and gloominess, a day -of clouds and thick darkness, 1:16 A day of the trumpet and alarm -against the fenced cities, and against the high towers. - -1:17 And I will bring distress upon men, that they shall walk like -blind men, because they have sinned against the LORD: and their blood -shall be poured out as dust, and their flesh as the dung. - -1:18 Neither their silver nor their gold shall be able to deliver them -in the day of the LORD's wrath; but the whole land shall be devoured -by the fire of his jealousy: for he shall make even a speedy riddance -of all them that dwell in the land. - -2:1 Gather yourselves together, yea, gather together, O nation not -desired; 2:2 Before the decree bring forth, before the day pass as the -chaff, before the fierce anger of the LORD come upon you, before the -day of the LORD's anger come upon you. - -2:3 Seek ye the LORD, all ye meek of the earth, which have wrought his -judgment; seek righteousness, seek meekness: it may be ye shall be hid -in the day of the LORD's anger. - -2:4 For Gaza shall be forsaken, and Ashkelon a desolation: they shall -drive out Ashdod at the noon day, and Ekron shall be rooted up. - -2:5 Woe unto the inhabitants of the sea coast, the nation of the -Cherethites! the word of the LORD is against you; O Canaan, the land -of the Philistines, I will even destroy thee, that there shall be no -inhabitant. - -2:6 And the sea coast shall be dwellings and cottages for shepherds, -and folds for flocks. - -2:7 And the coast shall be for the remnant of the house of Judah; they -shall feed thereupon: in the houses of Ashkelon shall they lie down in -the evening: for the LORD their God shall visit them, and turn away -their captivity. - -2:8 I have heard the reproach of Moab, and the revilings of the -children of Ammon, whereby they have reproached my people, and -magnified themselves against their border. - -2:9 Therefore as I live, saith the LORD of hosts, the God of Israel, -Surely Moab shall be as Sodom, and the children of Ammon as Gomorrah, -even the breeding of nettles, and saltpits, and a perpetual -desolation: the residue of my people shall spoil them, and the remnant -of my people shall possess them. - -2:10 This shall they have for their pride, because they have -reproached and magnified themselves against the people of the LORD of -hosts. - -2:11 The LORD will be terrible unto them: for he will famish all the -gods of the earth; and men shall worship him, every one from his -place, even all the isles of the heathen. - -2:12 Ye Ethiopians also, ye shall be slain by my sword. - -2:13 And he will stretch out his hand against the north, and destroy -Assyria; and will make Nineveh a desolation, and dry like a -wilderness. - -2:14 And flocks shall lie down in the midst of her, all the beasts of -the nations: both the cormorant and the bittern shall lodge in the -upper lintels of it; their voice shall sing in the windows; desolation -shall be in the thresholds; for he shall uncover the cedar work. - -2:15 This is the rejoicing city that dwelt carelessly, that said in -her heart, I am, and there is none beside me: how is she become a -desolation, a place for beasts to lie down in! every one that passeth -by her shall hiss, and wag his hand. - -3:1 Woe to her that is filthy and polluted, to the oppressing city! -3:2 She obeyed not the voice; she received not correction; she trusted -not in the LORD; she drew not near to her God. - -3:3 Her princes within her are roaring lions; her judges are evening -wolves; they gnaw not the bones till the morrow. - -3:4 Her prophets are light and treacherous persons: her priests have -polluted the sanctuary, they have done violence to the law. - -3:5 The just LORD is in the midst thereof; he will not do iniquity: -every morning doth he bring his judgment to light, he faileth not; but -the unjust knoweth no shame. - -3:6 I have cut off the nations: their towers are desolate; I made -their streets waste, that none passeth by: their cities are destroyed, -so that there is no man, that there is none inhabitant. - -3:7 I said, Surely thou wilt fear me, thou wilt receive instruction; -so their dwelling should not be cut off, howsoever I punished them: -but they rose early, and corrupted all their doings. - -3:8 Therefore wait ye upon me, saith the LORD, until the day that I -rise up to the prey: for my determination is to gather the nations, -that I may assemble the kingdoms, to pour upon them mine indignation, -even all my fierce anger: for all the earth shall be devoured with the -fire of my jealousy. - -3:9 For then will I turn to the people a pure language, that they may -all call upon the name of the LORD, to serve him with one consent. - -3:10 From beyond the rivers of Ethiopia my suppliants, even the -daughter of my dispersed, shall bring mine offering. - -3:11 In that day shalt thou not be ashamed for all thy doings, wherein -thou hast transgressed against me: for then I will take away out of -the midst of thee them that rejoice in thy pride, and thou shalt no -more be haughty because of my holy mountain. - -3:12 I will also leave in the midst of thee an afflicted and poor -people, and they shall trust in the name of the LORD. - -3:13 The remnant of Israel shall not do iniquity, nor speak lies; -neither shall a deceitful tongue be found in their mouth: for they -shall feed and lie down, and none shall make them afraid. - -3:14 Sing, O daughter of Zion; shout, O Israel; be glad and rejoice -with all the heart, O daughter of Jerusalem. - -3:15 The LORD hath taken away thy judgments, he hath cast out thine -enemy: the king of Israel, even the LORD, is in the midst of thee: -thou shalt not see evil any more. - -3:16 In that day it shall be said to Jerusalem, Fear thou not: and to -Zion, Let not thine hands be slack. - -3:17 The LORD thy God in the midst of thee is mighty; he will save, he -will rejoice over thee with joy; he will rest in his love, he will joy -over thee with singing. - -3:18 I will gather them that are sorrowful for the solemn assembly, -who are of thee, to whom the reproach of it was a burden. - -3:19 Behold, at that time I will undo all that afflict thee: and I -will save her that halteth, and gather her that was driven out; and I -will get them praise and fame in every land where they have been put -to shame. - -3:20 At that time will I bring you again, even in the time that I -gather you: for I will make you a name and a praise among all people -of the earth, when I turn back your captivity before your eyes, -saith the LORD. - - - - -Haggai - - -1:1 In the second year of Darius the king, in the sixth month, in the -first day of the month, came the word of the LORD by Haggai the -prophet unto Zerubbabel the son of Shealtiel, governor of Judah, and -to Joshua the son of Josedech, the high priest, saying, 1:2 Thus -speaketh the LORD of hosts, saying, This people say, The time is not -come, the time that the LORD's house should be built. - -1:3 Then came the word of the LORD by Haggai the prophet, saying, 1:4 -Is it time for you, O ye, to dwell in your cieled houses, and this -house lie waste? 1:5 Now therefore thus saith the LORD of hosts; -Consider your ways. - -1:6 Ye have sown much, and bring in little; ye eat, but ye have not -enough; ye drink, but ye are not filled with drink; ye clothe you, but -there is none warm; and he that earneth wages earneth wages to put it -into a bag with holes. - -1:7 Thus saith the LORD of hosts; Consider your ways. - -1:8 Go up to the mountain, and bring wood, and build the house; and I -will take pleasure in it, and I will be glorified, saith the LORD. - -1:9 Ye looked for much, and, lo it came to little; and when ye brought -it home, I did blow upon it. Why? saith the LORD of hosts. Because of -mine house that is waste, and ye run every man unto his own house. - -1:10 Therefore the heaven over you is stayed from dew, and the earth -is stayed from her fruit. - -1:11 And I called for a drought upon the land, and upon the mountains, -and upon the corn, and upon the new wine, and upon the oil, and upon -that which the ground bringeth forth, and upon men, and upon cattle, -and upon all the labour of the hands. - -1:12 Then Zerubbabel the son of Shealtiel, and Joshua the son of -Josedech, the high priest, with all the remnant of the people, obeyed -the voice of the LORD their God, and the words of Haggai the prophet, -as the LORD their God had sent him, and the people did fear before the -LORD. - -1:13 Then spake Haggai the LORD's messenger in the LORD's message unto -the people, saying, I am with you, saith the LORD. - -1:14 And the LORD stirred up the spirit of Zerubbabel the son of -Shealtiel, governor of Judah, and the spirit of Joshua the son of -Josedech, the high priest, and the spirit of all the remnant of the -people; and they came and did work in the house of the LORD of hosts, -their God, 1:15 In the four and twentieth day of the sixth month, in -the second year of Darius the king. - -2:1 In the seventh month, in the one and twentieth day of the month, -came the word of the LORD by the prophet Haggai, saying, 2:2 Speak now -to Zerubbabel the son of Shealtiel, governor of Judah, and to Joshua -the son of Josedech, the high priest, and to the residue of the -people, saying, 2:3 Who is left among you that saw this house in her -first glory? and how do ye see it now? is it not in your eyes in -comparison of it as nothing? 2:4 Yet now be strong, O Zerubbabel, -saith the LORD; and be strong, O Joshua, son of Josedech, the high -priest; and be strong, all ye people of the land, saith the LORD, and -work: for I am with you, saith the LORD of hosts: 2:5 According to the -word that I covenanted with you when ye came out of Egypt, so my -spirit remaineth among you: fear ye not. - -2:6 For thus saith the LORD of hosts; Yet once, it is a little while, -and I will shake the heavens, and the earth, and the sea, and the dry -land; 2:7 And I will shake all nations, and the desire of all nations -shall come: and I will fill this house with glory, saith the LORD of -hosts. - -2:8 The silver is mine, and the gold is mine, saith the LORD of hosts. - -2:9 The glory of this latter house shall be greater than of the -former, saith the LORD of hosts: and in this place will I give peace, -saith the LORD of hosts. - -2:10 In the four and twentieth day of the ninth month, in the second -year of Darius, came the word of the LORD by Haggai the prophet, -saying, 2:11 Thus saith the LORD of hosts; Ask now the priests -concerning the law, saying, 2:12 If one bear holy flesh in the skirt -of his garment, and with his skirt do touch bread, or pottage, or -wine, or oil, or any meat, shall it be holy? And the priests answered -and said, No. - -2:13 Then said Haggai, If one that is unclean by a dead body touch any -of these, shall it be unclean? And the priests answered and said, It -shall be unclean. - -2:14 Then answered Haggai, and said, So is this people, and so is this -nation before me, saith the LORD; and so is every work of their hands; -and that which they offer there is unclean. - -2:15 And now, I pray you, consider from this day and upward, from -before a stone was laid upon a stone in the temple of the LORD: 2:16 -Since those days were, when one came to an heap of twenty measures, -there were but ten: when one came to the pressfat for to draw out -fifty vessels out of the press, there were but twenty. - -2:17 I smote you with blasting and with mildew and with hail in all -the labours of your hands; yet ye turned not to me, saith the LORD. - -2:18 Consider now from this day and upward, from the four and -twentieth day of the ninth month, even from the day that the -foundation of the LORD's temple was laid, consider it. - -2:19 Is the seed yet in the barn? yea, as yet the vine, and the fig -tree, and the pomegranate, and the olive tree, hath not brought forth: -from this day will I bless you. - -2:20 And again the word of the LORD came unto Haggai in the four and -twentieth day of the month, saying, 2:21 Speak to Zerubbabel, governor -of Judah, saying, I will shake the heavens and the earth; 2:22 And I -will overthrow the throne of kingdoms, and I will destroy the strength -of the kingdoms of the heathen; and I will overthrow the chariots, and -those that ride in them; and the horses and their riders shall come -down, every one by the sword of his brother. - -2:23 In that day, saith the LORD of hosts, will I take thee, O -Zerubbabel, my servant, the son of Shealtiel, saith the LORD, and will -make thee as a signet: for I have chosen thee, saith the LORD of hosts. - - - - -Zechariah - - -1:1 In the eighth month, in the second year of Darius, came the word -of the LORD unto Zechariah, the son of Berechiah, the son of Iddo the -prophet, saying, 1:2 The LORD hath been sore displeased with your -fathers. - -1:3 Therefore say thou unto them, Thus saith the LORD of hosts; Turn -ye unto me, saith the LORD of hosts, and I will turn unto you, saith -the LORD of hosts. - -1:4 Be ye not as your fathers, unto whom the former prophets have -cried, saying, Thus saith the LORD of hosts; Turn ye now from your -evil ways, and from your evil doings: but they did not hear, nor -hearken unto me, saith the LORD. - -1:5 Your fathers, where are they? and the prophets, do they live for -ever? 1:6 But my words and my statutes, which I commanded my servants -the prophets, did they not take hold of your fathers? and they -returned and said, Like as the LORD of hosts thought to do unto us, -according to our ways, and according to our doings, so hath he dealt -with us. - -1:7 Upon the four and twentieth day of the eleventh month, which is -the month Sebat, in the second year of Darius, came the word of the -LORD unto Zechariah, the son of Berechiah, the son of Iddo the -prophet, saying, 1:8 I saw by night, and behold a man riding upon a -red horse, and he stood among the myrtle trees that were in the -bottom; and behind him were there red horses, speckled, and white. - -1:9 Then said I, O my lord, what are these? And the angel that talked -with me said unto me, I will shew thee what these be. - -1:10 And the man that stood among the myrtle trees answered and said, -These are they whom the LORD hath sent to walk to and fro through the -earth. - -1:11 And they answered the angel of the LORD that stood among the -myrtle trees, and said, We have walked to and fro through the earth, -and, behold, all the earth sitteth still, and is at rest. - -1:12 Then the angel of the LORD answered and said, O LORD of hosts, -how long wilt thou not have mercy on Jerusalem and on the cities of -Judah, against which thou hast had indignation these threescore and -ten years? 1:13 And the LORD answered the angel that talked with me -with good words and comfortable words. - -1:14 So the angel that communed with me said unto me, Cry thou, -saying, Thus saith the LORD of hosts; I am jealous for Jerusalem and -for Zion with a great jealousy. - -1:15 And I am very sore displeased with the heathen that are at ease: -for I was but a little displeased, and they helped forward the -affliction. - -1:16 Therefore thus saith the LORD; I am returned to Jerusalem with -mercies: my house shall be built in it, saith the LORD of hosts, and a -line shall be stretched forth upon Jerusalem. - -1:17 Cry yet, saying, Thus saith the LORD of hosts; My cities through -prosperity shall yet be spread abroad; and the LORD shall yet comfort -Zion, and shall yet choose Jerusalem. - -1:18 Then lifted I up mine eyes, and saw, and behold four horns. - -1:19 And I said unto the angel that talked with me, What be these? And -he answered me, These are the horns which have scattered Judah, -Israel, and Jerusalem. - -1:20 And the LORD shewed me four carpenters. - -1:21 Then said I, What come these to do? And he spake, saying, These -are the horns which have scattered Judah, so that no man did lift up -his head: but these are come to fray them, to cast out the horns of -the Gentiles, which lifted up their horn over the land of Judah to -scatter it. - -2:1 I lifted up mine eyes again, and looked, and behold a man with a -measuring line in his hand. - -2:2 Then said I, Whither goest thou? And he said unto me, To measure -Jerusalem, to see what is the breadth thereof, and what is the length -thereof. - -2:3 And, behold, the angel that talked with me went forth, and another -angel went out to meet him, 2:4 And said unto him, Run, speak to this -young man, saying, Jerusalem shall be inhabited as towns without walls -for the multitude of men and cattle therein: 2:5 For I, saith the -LORD, will be unto her a wall of fire round about, and will be the -glory in the midst of her. - -2:6 Ho, ho, come forth, and flee from the land of the north, saith the -LORD: for I have spread you abroad as the four winds of the heaven, -saith the LORD. - -2:7 Deliver thyself, O Zion, that dwellest with the daughter of -Babylon. - -2:8 For thus saith the LORD of hosts; After the glory hath he sent me -unto the nations which spoiled you: for he that toucheth you toucheth -the apple of his eye. - -2:9 For, behold, I will shake mine hand upon them, and they shall be a -spoil to their servants: and ye shall know that the LORD of hosts hath -sent me. - -2:10 Sing and rejoice, O daughter of Zion: for, lo, I come, and I will -dwell in the midst of thee, saith the LORD. - -2:11 And many nations shall be joined to the LORD in that day, and -shall be my people: and I will dwell in the midst of thee, and thou -shalt know that the LORD of hosts hath sent me unto thee. - -2:12 And the LORD shall inherit Judah his portion in the holy land, -and shall choose Jerusalem again. - -2:13 Be silent, O all flesh, before the LORD: for he is raised up out -of his holy habitation. - -3:1 And he shewed me Joshua the high priest standing before the angel -of the LORD, and Satan standing at his right hand to resist him. - -3:2 And the LORD said unto Satan, The LORD rebuke thee, O Satan; even -the LORD that hath chosen Jerusalem rebuke thee: is not this a brand -plucked out of the fire? 3:3 Now Joshua was clothed with filthy -garments, and stood before the angel. - -3:4 And he answered and spake unto those that stood before him, -saying, Take away the filthy garments from him. And unto him he said, -Behold, I have caused thine iniquity to pass from thee, and I will -clothe thee with change of raiment. - -3:5 And I said, Let them set a fair mitre upon his head. So they set a -fair mitre upon his head, and clothed him with garments. And the angel -of the LORD stood by. - -3:6 And the angel of the LORD protested unto Joshua, saying, 3:7 Thus -saith the LORD of hosts; If thou wilt walk in my ways, and if thou -wilt keep my charge, then thou shalt also judge my house, and shalt -also keep my courts, and I will give thee places to walk among these -that stand by. - -3:8 Hear now, O Joshua the high priest, thou, and thy fellows that sit -before thee: for they are men wondered at: for, behold, I will bring -forth my servant the BRANCH. - -3:9 For behold the stone that I have laid before Joshua; upon one -stone shall be seven eyes: behold, I will engrave the graving thereof, -saith the LORD of hosts, and I will remove the iniquity of that land -in one day. - -3:10 In that day, saith the LORD of hosts, shall ye call every man his -neighbour under the vine and under the fig tree. - -4:1 And the angel that talked with me came again, and waked me, as a -man that is wakened out of his sleep. - -4:2 And said unto me, What seest thou? And I said, I have looked, and -behold a candlestick all of gold, with a bowl upon the top of it, and -his seven lamps thereon, and seven pipes to the seven lamps, which are -upon the top thereof: 4:3 And two olive trees by it, one upon the -right side of the bowl, and the other upon the left side thereof. - -4:4 So I answered and spake to the angel that talked with me, saying, -What are these, my lord? 4:5 Then the angel that talked with me -answered and said unto me, Knowest thou not what these be? And I said, -No, my lord. - -4:6 Then he answered and spake unto me, saying, This is the word of -the LORD unto Zerubbabel, saying, Not by might, nor by power, but by -my spirit, saith the LORD of hosts. - -4:7 Who art thou, O great mountain? before Zerubbabel thou shalt -become a plain: and he shall bring forth the headstone thereof with -shoutings, crying, Grace, grace unto it. - -4:8 Moreover the word of the LORD came unto me, saying, 4:9 The hands -of Zerubbabel have laid the foundation of this house; his hands shall -also finish it; and thou shalt know that the LORD of hosts hath sent -me unto you. - -4:10 For who hath despised the day of small things? for they shall -rejoice, and shall see the plummet in the hand of Zerubbabel with -those seven; they are the eyes of the LORD, which run to and fro -through the whole earth. - -4:11 Then answered I, and said unto him, What are these two olive -trees upon the right side of the candlestick and upon the left side -thereof? 4:12 And I answered again, and said unto him, What be these -two olive branches which through the two golden pipes empty the golden -oil out of themselves? 4:13 And he answered me and said, Knowest thou -not what these be? And I said, No, my lord. - -4:14 Then said he, These are the two anointed ones, that stand by the -LORD of the whole earth. - -5:1 Then I turned, and lifted up mine eyes, and looked, and behold a -flying roll. - -5:2 And he said unto me, What seest thou? And I answered, I see a -flying roll; the length thereof is twenty cubits, and the breadth -thereof ten cubits. - -5:3 Then said he unto me, This is the curse that goeth forth over the -face of the whole earth: for every one that stealeth shall be cut off -as on this side according to it; and every one that sweareth shall be -cut off as on that side according to it. - -5:4 I will bring it forth, saith the LORD of hosts, and it shall enter -into the house of the thief, and into the house of him that sweareth -falsely by my name: and it shall remain in the midst of his house, and -shall consume it with the timber thereof and the stones thereof. - -5:5 Then the angel that talked with me went forth, and said unto me, -Lift up now thine eyes, and see what is this that goeth forth. - -5:6 And I said, What is it? And he said, This is an ephah that goeth -forth. He said moreover, This is their resemblance through all the -earth. - -5:7 And, behold, there was lifted up a talent of lead: and this is a -woman that sitteth in the midst of the ephah. - -5:8 And he said, This is wickedness. And he cast it into the midst of -the ephah; and he cast the weight of lead upon the mouth thereof. - -5:9 Then lifted I up mine eyes, and looked, and, behold, there came -out two women, and the wind was in their wings; for they had wings -like the wings of a stork: and they lifted up the ephah between the -earth and the heaven. - -5:10 Then said I to the angel that talked with me, Whither do these -bear the ephah? 5:11 And he said unto me, To build it an house in the -land of Shinar: and it shall be established, and set there upon her -own base. - -6:1 And I turned, and lifted up mine eyes, and looked, and, behold, -there came four chariots out from between two mountains; and the -mountains were mountains of brass. - -6:2 In the first chariot were red horses; and in the second chariot -black horses; 6:3 And in the third chariot white horses; and in the -fourth chariot grisled and bay horses. - -6:4 Then I answered and said unto the angel that talked with me, What -are these, my lord? 6:5 And the angel answered and said unto me, -These are the four spirits of the heavens, which go forth from -standing before the LORD of all the earth. - -6:6 The black horses which are therein go forth into the north -country; and the white go forth after them; and the grisled go forth -toward the south country. - -6:7 And the bay went forth, and sought to go that they might walk to -and fro through the earth: and he said, Get you hence, walk to and fro -through the earth. So they walked to and fro through the earth. - -6:8 Then cried he upon me, and spake unto me, saying, Behold, these -that go toward the north country have quieted my spirit in the north -country. - -6:9 And the word of the LORD came unto me, saying, 6:10 Take of them -of the captivity, even of Heldai, of Tobijah, and of Jedaiah, which -are come from Babylon, and come thou the same day, and go into the -house of Josiah the son of Zephaniah; 6:11 Then take silver and gold, -and make crowns, and set them upon the head of Joshua the son of -Josedech, the high priest; 6:12 And speak unto him, saying, Thus -speaketh the LORD of hosts, saying, Behold the man whose name is The -BRANCH; and he shall grow up out of his place, and he shall build the -temple of the LORD: 6:13 Even he shall build the temple of the LORD; -and he shall bear the glory, and shall sit and rule upon his throne; -and he shall be a priest upon his throne: and the counsel of peace -shall be between them both. - -6:14 And the crowns shall be to Helem, and to Tobijah, and to Jedaiah, -and to Hen the son of Zephaniah, for a memorial in the temple of the -LORD. - -6:15 And they that are far off shall come and build in the temple of -the LORD, and ye shall know that the LORD of hosts hath sent me unto -you. And this shall come to pass, if ye will diligently obey the voice -of the LORD your God. - -7:1 And it came to pass in the fourth year of king Darius, that the -word of the LORD came unto Zechariah in the fourth day of the ninth -month, even in Chisleu; 7:2 When they had sent unto the house of God -Sherezer and Regemmelech, and their men, to pray before the LORD, 7:3 -And to speak unto the priests which were in the house of the LORD of -hosts, and to the prophets, saying, Should I weep in the fifth month, -separating myself, as I have done these so many years? 7:4 Then came -the word of the LORD of hosts unto me, saying, 7:5 Speak unto all the -people of the land, and to the priests, saying, When ye fasted and -mourned in the fifth and seventh month, even those seventy years, did -ye at all fast unto me, even to me? 7:6 And when ye did eat, and when -ye did drink, did not ye eat for yourselves, and drink for yourselves? -7:7 Should ye not hear the words which the LORD hath cried by the -former prophets, when Jerusalem was inhabited and in prosperity, and -the cities thereof round about her, when men inhabited the south and -the plain? 7:8 And the word of the LORD came unto Zechariah, saying, -7:9 Thus speaketh the LORD of hosts, saying, Execute true judgment, -and shew mercy and compassions every man to his brother: 7:10 And -oppress not the widow, nor the fatherless, the stranger, nor the poor; -and let none of you imagine evil against his brother in your heart. - -7:11 But they refused to hearken, and pulled away the shoulder, and -stopped their ears, that they should not hear. - -7:12 Yea, they made their hearts as an adamant stone, lest they should -hear the law, and the words which the LORD of hosts hath sent in his -spirit by the former prophets: therefore came a great wrath from the -LORD of hosts. - -7:13 Therefore it is come to pass, that as he cried, and they would -not hear; so they cried, and I would not hear, saith the LORD of -hosts: 7:14 But I scattered them with a whirlwind among all the -nations whom they knew not. Thus the land was desolate after them, -that no man passed through nor returned: for they laid the pleasant -land desolate. - -8:1 Again the word of the LORD of hosts came to me, saying, 8:2 Thus -saith the LORD of hosts; I was jealous for Zion with great jealousy, -and I was jealous for her with great fury. - -8:3 Thus saith the LORD; I am returned unto Zion, and will dwell in -the midst of Jerusalem: and Jerusalem shall be called a city of truth; -and the mountain of the LORD of hosts the holy mountain. - -8:4 Thus saith the LORD of hosts; There shall yet old men and old -women dwell in the streets of Jerusalem, and every man with his staff -in his hand for very age. - -8:5 And the streets of the city shall be full of boys and girls -playing in the streets thereof. - -8:6 Thus saith the LORD of hosts; If it be marvellous in the eyes of -the remnant of this people in these days, should it also be marvellous -in mine eyes? saith the LORD of hosts. - -8:7 Thus saith the LORD of hosts; Behold, I will save my people from -the east country, and from the west country; 8:8 And I will bring -them, and they shall dwell in the midst of Jerusalem: and they shall -be my people, and I will be their God, in truth and in righteousness. - -8:9 Thus saith the LORD of hosts; Let your hands be strong, ye that -hear in these days these words by the mouth of the prophets, which -were in the day that the foundation of the house of the LORD of hosts -was laid, that the temple might be built. - -8:10 For before these days there was no hire for man, nor any hire for -beast; neither was there any peace to him that went out or came in -because of the affliction: for I set all men every one against his -neighbour. - -8:11 But now I will not be unto the residue of this people as in the -former days, saith the LORD of hosts. - -8:12 For the seed shall be prosperous; the vine shall give her fruit, -and the ground shall give her increase, and the heavens shall give -their dew; and I will cause the remnant of this people to possess all -these things. - -8:13 And it shall come to pass, that as ye were a curse among the -heathen, O house of Judah, and house of Israel; so will I save you, -and ye shall be a blessing: fear not, but let your hands be strong. - -8:14 For thus saith the LORD of hosts; As I thought to punish you, -when your fathers provoked me to wrath, saith the LORD of hosts, and I -repented not: 8:15 So again have I thought in these days to do well -unto Jerusalem and to the house of Judah: fear ye not. - -8:16 These are the things that ye shall do; Speak ye every man the -truth to his neighbour; execute the judgment of truth and peace in -your gates: 8:17 And let none of you imagine evil in your hearts -against his neighbour; and love no false oath: for all these are -things that I hate, saith the LORD. - -8:18 And the word of the LORD of hosts came unto me, saying, 8:19 Thus -saith the LORD of hosts; The fast of the fourth month, and the fast of -the fifth, and the fast of the seventh, and the fast of the tenth, -shall be to the house of Judah joy and gladness, and cheerful feasts; -therefore love the truth and peace. - -8:20 Thus saith the LORD of hosts; It shall yet come to pass, that -there shall come people, and the inhabitants of many cities: 8:21 And -the inhabitants of one city shall go to another, saying, Let us go -speedily to pray before the LORD, and to seek the LORD of hosts: I -will go also. - -8:22 Yea, many people and strong nations shall come to seek the LORD -of hosts in Jerusalem, and to pray before the LORD. - -8:23 Thus saith the LORD of hosts; In those days it shall come to -pass, that ten men shall take hold out of all languages of the -nations, even shall take hold of the skirt of him that is a Jew, -saying, We will go with you: for we have heard that God is with you. - -9:1 The burden of the word of the LORD in the land of Hadrach, and -Damascus shall be the rest thereof: when the eyes of man, as of all -the tribes of Israel, shall be toward the LORD. - -9:2 And Hamath also shall border thereby; Tyrus, and Zidon, though it -be very wise. - -9:3 And Tyrus did build herself a strong hold, and heaped up silver as -the dust, and fine gold as the mire of the streets. - -9:4 Behold, the LORD will cast her out, and he will smite her power in -the sea; and she shall be devoured with fire. - -9:5 Ashkelon shall see it, and fear; Gaza also shall see it, and be -very sorrowful, and Ekron; for her expectation shall be ashamed; and -the king shall perish from Gaza, and Ashkelon shall not be inhabited. - -9:6 And a bastard shall dwell in Ashdod, and I will cut off the pride -of the Philistines. - -9:7 And I will take away his blood out of his mouth, and his -abominations from between his teeth: but he that remaineth, even he, -shall be for our God, and he shall be as a governor in Judah, and -Ekron as a Jebusite. - -9:8 And I will encamp about mine house because of the army, because of -him that passeth by, and because of him that returneth: and no -oppressor shall pass through them any more: for now have I seen with -mine eyes. - -9:9 Rejoice greatly, O daughter of Zion; shout, O daughter of -Jerusalem: behold, thy King cometh unto thee: he is just, and having -salvation; lowly, and riding upon an ass, and upon a colt the foal of -an ass. - -9:10 And I will cut off the chariot from Ephraim, and the horse from -Jerusalem, and the battle bow shall be cut off: and he shall speak -peace unto the heathen: and his dominion shall be from sea even to -sea, and from the river even to the ends of the earth. - -9:11 As for thee also, by the blood of thy covenant I have sent forth -thy prisoners out of the pit wherein is no water. - -9:12 Turn you to the strong hold, ye prisoners of hope: even to day do -I declare that I will render double unto thee; 9:13 When I have bent -Judah for me, filled the bow with Ephraim, and raised up thy sons, O -Zion, against thy sons, O Greece, and made thee as the sword of a -mighty man. - -9:14 And the LORD shall be seen over them, and his arrow shall go -forth as the lightning: and the LORD God shall blow the trumpet, and -shall go with whirlwinds of the south. - -9:15 The LORD of hosts shall defend them; and they shall devour, and -subdue with sling stones; and they shall drink, and make a noise as -through wine; and they shall be filled like bowls, and as the corners -of the altar. - -9:16 And the LORD their God shall save them in that day as the flock -of his people: for they shall be as the stones of a crown, lifted up -as an ensign upon his land. - -9:17 For how great is his goodness, and how great is his beauty! corn -shall make the young men cheerful, and new wine the maids. - -10:1 Ask ye of the LORD rain in the time of the latter rain; so the -LORD shall make bright clouds, and give them showers of rain, to every -one grass in the field. - -10:2 For the idols have spoken vanity, and the diviners have seen a -lie, and have told false dreams; they comfort in vain: therefore they -went their way as a flock, they were troubled, because there was no -shepherd. - -10:3 Mine anger was kindled against the shepherds, and I punished the -goats: for the LORD of hosts hath visited his flock the house of -Judah, and hath made them as his goodly horse in the battle. - -10:4 Out of him came forth the corner, out of him the nail, out of him -the battle bow, out of him every oppressor together. - -10:5 And they shall be as mighty men, which tread down their enemies -in the mire of the streets in the battle: and they shall fight, -because the LORD is with them, and the riders on horses shall be -confounded. - -10:6 And I will strengthen the house of Judah, and I will save the -house of Joseph, and I will bring them again to place them; for I have -mercy upon them: and they shall be as though I had not cast them off: -for I am the LORD their God, and will hear them. - -10:7 And they of Ephraim shall be like a mighty man, and their heart -shall rejoice as through wine: yea, their children shall see it, and -be glad; their heart shall rejoice in the LORD. - -10:8 I will hiss for them, and gather them; for I have redeemed them: -and they shall increase as they have increased. - -10:9 And I will sow them among the people: and they shall remember me -in far countries; and they shall live with their children, and turn -again. - -10:10 I will bring them again also out of the land of Egypt, and -gather them out of Assyria; and I will bring them into the land of -Gilead and Lebanon; and place shall not be found for them. - -10:11 And he shall pass through the sea with affliction, and shall -smite the waves in the sea, and all the deeps of the river shall dry -up: and the pride of Assyria shall be brought down, and the sceptre of -Egypt shall depart away. - -10:12 And I will strengthen them in the LORD; and they shall walk up -and down in his name, saith the LORD. - -11:1 Open thy doors, O Lebanon, that the fire may devour thy cedars. - -11:2 Howl, fir tree; for the cedar is fallen; because the mighty are -spoiled: howl, O ye oaks of Bashan; for the forest of the vintage is -come down. - -11:3 There is a voice of the howling of the shepherds; for their glory -is spoiled: a voice of the roaring of young lions; for the pride of -Jordan is spoiled. - -11:4 Thus saith the LORD my God; Feed the flock of the slaughter; 11:5 -Whose possessors slay them, and hold themselves not guilty: and they -that sell them say, Blessed be the LORD; for I am rich: and their own -shepherds pity them not. - -11:6 For I will no more pity the inhabitants of the land, saith the -LORD: but, lo, I will deliver the men every one into his neighbour's -hand, and into the hand of his king: and they shall smite the land, -and out of their hand I will not deliver them. - -11:7 And I will feed the flock of slaughter, even you, O poor of the -flock. And I took unto me two staves; the one I called Beauty, and the -other I called Bands; and I fed the flock. - -11:8 Three shepherds also I cut off in one month; and my soul lothed -them, and their soul also abhorred me. - -11:9 Then said I, I will not feed you: that that dieth, let it die; -and that that is to be cut off, let it be cut off; and let the rest -eat every one the flesh of another. - -11:10 And I took my staff, even Beauty, and cut it asunder, that I -might break my covenant which I had made with all the people. - -11:11 And it was broken in that day: and so the poor of the flock that -waited upon me knew that it was the word of the LORD. - -11:12 And I said unto them, If ye think good, give me my price; and if -not, forbear. So they weighed for my price thirty pieces of silver. - -11:13 And the LORD said unto me, Cast it unto the potter: a goodly -price that I was prised at of them. And I took the thirty pieces of -silver, and cast them to the potter in the house of the LORD. - -11:14 Then I cut asunder mine other staff, even Bands, that I might -break the brotherhood between Judah and Israel. - -11:15 And the LORD said unto me, Take unto thee yet the instruments of -a foolish shepherd. - -11:16 For, lo, I will raise up a shepherd in the land, which shall not -visit those that be cut off, neither shall seek the young one, nor -heal that that is broken, nor feed that that standeth still: but he -shall eat the flesh of the fat, and tear their claws in pieces. - -11:17 Woe to the idol shepherd that leaveth the flock! the sword shall -be upon his arm, and upon his right eye: his arm shall be clean dried -up, and his right eye shall be utterly darkened. - -12:1 The burden of the word of the LORD for Israel, saith the LORD, -which stretcheth forth the heavens, and layeth the foundation of the -earth, and formeth the spirit of man within him. - -12:2 Behold, I will make Jerusalem a cup of trembling unto all the -people round about, when they shall be in the siege both against Judah -and against Jerusalem. - -12:3 And in that day will I make Jerusalem a burdensome stone for all -people: all that burden themselves with it shall be cut in pieces, -though all the people of the earth be gathered together against it. - -12:4 In that day, saith the LORD, I will smite every horse with -astonishment, and his rider with madness: and I will open mine eyes -upon the house of Judah, and will smite every horse of the people with -blindness. - -12:5 And the governors of Judah shall say in their heart, The -inhabitants of Jerusalem shall be my strength in the LORD of hosts -their God. - -12:6 In that day will I make the governors of Judah like an hearth of -fire among the wood, and like a torch of fire in a sheaf; and they -shall devour all the people round about, on the right hand and on the -left: and Jerusalem shall be inhabited again in her own place, even in -Jerusalem. - -12:7 The LORD also shall save the tents of Judah first, that the glory -of the house of David and the glory of the inhabitants of Jerusalem do -not magnify themselves against Judah. - -12:8 In that day shall the LORD defend the inhabitants of Jerusalem; -and he that is feeble among them at that day shall be as David; and -the house of David shall be as God, as the angel of the LORD before -them. - -12:9 And it shall come to pass in that day, that I will seek to -destroy all the nations that come against Jerusalem. - -12:10 And I will pour upon the house of David, and upon the -inhabitants of Jerusalem, the spirit of grace and of supplications: -and they shall look upon me whom they have pierced, and they shall -mourn for him, as one mourneth for his only son, and shall be in -bitterness for him, as one that is in bitterness for his firstborn. - -12:11 In that day shall there be a great mourning in Jerusalem, as the -mourning of Hadadrimmon in the valley of Megiddon. - -12:12 And the land shall mourn, every family apart; the family of the -house of David apart, and their wives apart; the family of the house -of Nathan apart, and their wives apart; 12:13 The family of the house -of Levi apart, and their wives apart; the family of Shimei apart, and -their wives apart; 12:14 All the families that remain, every family -apart, and their wives apart. - -13:1 In that day there shall be a fountain opened to the house of -David and to the inhabitants of Jerusalem for sin and for uncleanness. - -13:2 And it shall come to pass in that day, saith the LORD of hosts, -that I will cut off the names of the idols out of the land, and they -shall no more be remembered: and also I will cause the prophets and -the unclean spirit to pass out of the land. - -13:3 And it shall come to pass, that when any shall yet prophesy, then -his father and his mother that begat him shall say unto him, Thou -shalt not live; for thou speakest lies in the name of the LORD: and -his father and his mother that begat him shall thrust him through when -he prophesieth. - -13:4 And it shall come to pass in that day, that the prophets shall be -ashamed every one of his vision, when he hath prophesied; neither -shall they wear a rough garment to deceive: 13:5 But he shall say, I -am no prophet, I am an husbandman; for man taught me to keep cattle -from my youth. - -13:6 And one shall say unto him, What are these wounds in thine hands? -Then he shall answer, Those with which I was wounded in the house of -my friends. - -13:7 Awake, O sword, against my shepherd, and against the man that is -my fellow, saith the LORD of hosts: smite the shepherd, and the sheep -shall be scattered: and I will turn mine hand upon the little ones. - -13:8 And it shall come to pass, that in all the land, saith the LORD, -two parts therein shall be cut off and die; but the third shall be -left therein. - -13:9 And I will bring the third part through the fire, and will refine -them as silver is refined, and will try them as gold is tried: they -shall call on my name, and I will hear them: I will say, It is my -people: and they shall say, The LORD is my God. - -14:1 Behold, the day of the LORD cometh, and thy spoil shall be -divided in the midst of thee. - -14:2 For I will gather all nations against Jerusalem to battle; and -the city shall be taken, and the houses rifled, and the women -ravished; and half of the city shall go forth into captivity, and the -residue of the people shall not be cut off from the city. - -14:3 Then shall the LORD go forth, and fight against those nations, as -when he fought in the day of battle. - -14:4 And his feet shall stand in that day upon the mount of Olives, -which is before Jerusalem on the east, and the mount of Olives shall -cleave in the midst thereof toward the east and toward the west, and -there shall be a very great valley; and half of the mountain shall -remove toward the north, and half of it toward the south. - -14:5 And ye shall flee to the valley of the mountains; for the valley -of the mountains shall reach unto Azal: yea, ye shall flee, like as ye -fled from before the earthquake in the days of Uzziah king of Judah: -and the LORD my God shall come, and all the saints with thee. - -14:6 And it shall come to pass in that day, that the light shall not -be clear, nor dark: 14:7 But it shall be one day which shall be known -to the LORD, not day, nor night: but it shall come to pass, that at -evening time it shall be light. - -14:8 And it shall be in that day, that living waters shall go out from -Jerusalem; half of them toward the former sea, and half of them toward -the hinder sea: in summer and in winter shall it be. - -14:9 And the LORD shall be king over all the earth: in that day shall -there be one LORD, and his name one. - -14:10 All the land shall be turned as a plain from Geba to Rimmon -south of Jerusalem: and it shall be lifted up, and inhabited in her -place, from Benjamin's gate unto the place of the first gate, unto the -corner gate, and from the tower of Hananeel unto the king's -winepresses. - -14:11 And men shall dwell in it, and there shall be no more utter -destruction; but Jerusalem shall be safely inhabited. - -14:12 And this shall be the plague wherewith the LORD will smite all -the people that have fought against Jerusalem; Their flesh shall -consume away while they stand upon their feet, and their eyes shall -consume away in their holes, and their tongue shall consume away in -their mouth. - -14:13 And it shall come to pass in that day, that a great tumult from -the LORD shall be among them; and they shall lay hold every one on the -hand of his neighbour, and his hand shall rise up against the hand of -his neighbour. - -14:14 And Judah also shall fight at Jerusalem; and the wealth of all -the heathen round about shall be gathered together, gold, and silver, -and apparel, in great abundance. - -14:15 And so shall be the plague of the horse, of the mule, of the -camel, and of the ass, and of all the beasts that shall be in these -tents, as this plague. - -14:16 And it shall come to pass, that every one that is left of all -the nations which came against Jerusalem shall even go up from year to -year to worship the King, the LORD of hosts, and to keep the feast of -tabernacles. - -14:17 And it shall be, that whoso will not come up of all the families -of the earth unto Jerusalem to worship the King, the LORD of hosts, -even upon them shall be no rain. - -14:18 And if the family of Egypt go not up, and come not, that have no -rain; there shall be the plague, wherewith the LORD will smite the -heathen that come not up to keep the feast of tabernacles. - -14:19 This shall be the punishment of Egypt, and the punishment of all -nations that come not up to keep the feast of tabernacles. - -14:20 In that day shall there be upon the bells of the horses, -HOLINESS UNTO THE LORD; and the pots in the LORD's house shall be like -the bowls before the altar. - -14:21 Yea, every pot in Jerusalem and in Judah shall be holiness unto -the LORD of hosts: and all they that sacrifice shall come and take of -them, and seethe therein: and in that day there shall be no more the -Canaanite in the house of the LORD of hosts. - - - - -Malachi - - -1:1 The burden of the word of the LORD to Israel by Malachi. - -1:2 I have loved you, saith the LORD. Yet ye say, Wherein hast thou -loved us? Was not Esau Jacob's brother? saith the LORD: yet I loved -Jacob, 1:3 And I hated Esau, and laid his mountains and his heritage -waste for the dragons of the wilderness. - -1:4 Whereas Edom saith, We are impoverished, but we will return and -build the desolate places; thus saith the LORD of hosts, They shall -build, but I will throw down; and they shall call them, The border of -wickedness, and, The people against whom the LORD hath indignation for -ever. - -1:5 And your eyes shall see, and ye shall say, The LORD will be -magnified from the border of Israel. - -1:6 A son honoureth his father, and a servant his master: if then I be -a father, where is mine honour? and if I be a master, where is my -fear? saith the LORD of hosts unto you, O priests, that despise my -name. And ye say, Wherein have we despised thy name? 1:7 Ye offer -polluted bread upon mine altar; and ye say, Wherein have we polluted -thee? In that ye say, The table of the LORD is contemptible. - -1:8 And if ye offer the blind for sacrifice, is it not evil? and if ye -offer the lame and sick, is it not evil? offer it now unto thy -governor; will he be pleased with thee, or accept thy person? saith -the LORD of hosts. - -1:9 And now, I pray you, beseech God that he will be gracious unto us: -this hath been by your means: will he regard your persons? saith the -LORD of hosts. - -1:10 Who is there even among you that would shut the doors for nought? -neither do ye kindle fire on mine altar for nought. I have no pleasure -in you, saith the LORD of hosts, neither will I accept an offering at -your hand. - -1:11 For from the rising of the sun even unto the going down of the -same my name shall be great among the Gentiles; and in every place -incense shall be offered unto my name, and a pure offering: for my -name shall be great among the heathen, saith the LORD of hosts. - -1:12 But ye have profaned it, in that ye say, The table of the LORD is -polluted; and the fruit thereof, even his meat, is contemptible. - -1:13 Ye said also, Behold, what a weariness is it! and ye have snuffed -at it, saith the LORD of hosts; and ye brought that which was torn, -and the lame, and the sick; thus ye brought an offering: should I -accept this of your hand? saith the LORD. - -1:14 But cursed be the deceiver, which hath in his flock a male, and -voweth, and sacrificeth unto the LORD a corrupt thing: for I am a -great King, saith the LORD of hosts, and my name is dreadful among the -heathen. - -2:1 And now, O ye priests, this commandment is for you. - -2:2 If ye will not hear, and if ye will not lay it to heart, to give -glory unto my name, saith the LORD of hosts, I will even send a curse -upon you, and I will curse your blessings: yea, I have cursed them -already, because ye do not lay it to heart. - -2:3 Behold, I will corrupt your seed, and spread dung upon your faces, -even the dung of your solemn feasts; and one shall take you away with -it. - -2:4 And ye shall know that I have sent this commandment unto you, that -my covenant might be with Levi, saith the LORD of hosts. - -2:5 My covenant was with him of life and peace; and I gave them to him -for the fear wherewith he feared me, and was afraid before my name. - -2:6 The law of truth was in his mouth, and iniquity was not found in -his lips: he walked with me in peace and equity, and did turn many -away from iniquity. - -2:7 For the priest's lips should keep knowledge, and they should seek -the law at his mouth: for he is the messenger of the LORD of hosts. - -2:8 But ye are departed out of the way; ye have caused many to stumble -at the law; ye have corrupted the covenant of Levi, saith the LORD of -hosts. - -2:9 Therefore have I also made you contemptible and base before all -the people, according as ye have not kept my ways, but have been -partial in the law. - -2:10 Have we not all one father? hath not one God created us? why do -we deal treacherously every man against his brother, by profaning the -covenant of our fathers? 2:11 Judah hath dealt treacherously, and an -abomination is committed in Israel and in Jerusalem; for Judah hath -profaned the holiness of the LORD which he loved, and hath married the -daughter of a strange god. - -2:12 The LORD will cut off the man that doeth this, the master and the -scholar, out of the tabernacles of Jacob, and him that offereth an -offering unto the LORD of hosts. - -2:13 And this have ye done again, covering the altar of the LORD with -tears, with weeping, and with crying out, insomuch that he regardeth -not the offering any more, or receiveth it with good will at your -hand. - -2:14 Yet ye say, Wherefore? Because the LORD hath been witness between -thee and the wife of thy youth, against whom thou hast dealt -treacherously: yet is she thy companion, and the wife of thy covenant. - -2:15 And did not he make one? Yet had he the residue of the spirit. -And wherefore one? That he might seek a godly seed. Therefore take -heed to your spirit, and let none deal treacherously against the wife -of his youth. - -2:16 For the LORD, the God of Israel, saith that he hateth putting -away: for one covereth violence with his garment, saith the LORD of -hosts: therefore take heed to your spirit, that ye deal not -treacherously. - -2:17 Ye have wearied the LORD with your words. Yet ye say, Wherein -have we wearied him? When ye say, Every one that doeth evil is good in -the sight of the LORD, and he delighteth in them; or, Where is the God -of judgment? 3:1 Behold, I will send my messenger, and he shall -prepare the way before me: and the LORD, whom ye seek, shall suddenly -come to his temple, even the messenger of the covenant, whom ye -delight in: behold, he shall come, saith the LORD of hosts. - -3:2 But who may abide the day of his coming? and who shall stand when -he appeareth? for he is like a refiner's fire, and like fullers' soap: -3:3 And he shall sit as a refiner and purifier of silver: and he shall -purify the sons of Levi, and purge them as gold and silver, that they -may offer unto the LORD an offering in righteousness. - -3:4 Then shall the offering of Judah and Jerusalem be pleasant unto -the LORD, as in the days of old, and as in former years. - -3:5 And I will come near to you to judgment; and I will be a swift -witness against the sorcerers, and against the adulterers, and against -false swearers, and against those that oppress the hireling in his -wages, the widow, and the fatherless, and that turn aside the stranger -from his right, and fear not me, saith the LORD of hosts. - -3:6 For I am the LORD, I change not; therefore ye sons of Jacob are -not consumed. - -3:7 Even from the days of your fathers ye are gone away from mine -ordinances, and have not kept them. Return unto me, and I will return -unto you, saith the LORD of hosts. But ye said, Wherein shall we -return? 3:8 Will a man rob God? Yet ye have robbed me. But ye say, -Wherein have we robbed thee? In tithes and offerings. - -3:9 Ye are cursed with a curse: for ye have robbed me, even this whole -nation. - -3:10 Bring ye all the tithes into the storehouse, that there may be -meat in mine house, and prove me now herewith, saith the LORD of -hosts, if I will not open you the windows of heaven, and pour you out -a blessing, that there shall not be room enough to receive it. - -3:11 And I will rebuke the devourer for your sakes, and he shall not -destroy the fruits of your ground; neither shall your vine cast her -fruit before the time in the field, saith the LORD of hosts. - -3:12 And all nations shall call you blessed: for ye shall be a -delightsome land, saith the LORD of hosts. - -3:13 Your words have been stout against me, saith the LORD. Yet ye -say, What have we spoken so much against thee? 3:14 Ye have said, It -is vain to serve God: and what profit is it that we have kept his -ordinance, and that we have walked mournfully before the LORD of -hosts? 3:15 And now we call the proud happy; yea, they that work -wickedness are set up; yea, they that tempt God are even delivered. - -3:16 Then they that feared the LORD spake often one to another: and -the LORD hearkened, and heard it, and a book of remembrance was -written before him for them that feared the LORD, and that thought -upon his name. - -3:17 And they shall be mine, saith the LORD of hosts, in that day when -I make up my jewels; and I will spare them, as a man spareth his own -son that serveth him. - -3:18 Then shall ye return, and discern between the righteous and the -wicked, between him that serveth God and him that serveth him not. - -4:1 For, behold, the day cometh, that shall burn as an oven; and all -the proud, yea, and all that do wickedly, shall be stubble: and the -day that cometh shall burn them up, saith the LORD of hosts, that it -shall leave them neither root nor branch. - -4:2 But unto you that fear my name shall the Sun of righteousness -arise with healing in his wings; and ye shall go forth, and grow up as -calves of the stall. - -4:3 And ye shall tread down the wicked; for they shall be ashes under -the soles of your feet in the day that I shall do this, saith the LORD -of hosts. - -4:4 Remember ye the law of Moses my servant, which I commanded unto -him in Horeb for all Israel, with the statutes and judgments. - -4:5 Behold, I will send you Elijah the prophet before the coming of -the great and dreadful day of the LORD: 4:6 And he shall turn the -heart of the fathers to the children, and the heart of the children to -their fathers, lest I come and smite the earth with a curse. - -End of the Project Gutenberg Edition of the Old Testament - - -*** - - -The New Testament of the King James Bible - -[Paragraphing done by an anonymous Project Gutenberg volunter.] - -[This King James Bible was orginally posted by Project Gutenberg -in late 1989, representing the entire output of Project Gutenberg -for the 1980's as our edition of Shakespeare failed to meet the -requirement of our copyright analysts.] - - - -The Gospel According to Saint Matthew - - -1:1 The book of the generation of Jesus Christ, the son of David, the -son of Abraham. - -1:2 Abraham begat Isaac; and Isaac begat Jacob; and Jacob begat Judas -and his brethren; 1:3 And Judas begat Phares and Zara of Thamar; and -Phares begat Esrom; and Esrom begat Aram; 1:4 And Aram begat Aminadab; -and Aminadab begat Naasson; and Naasson begat Salmon; 1:5 And Salmon -begat Booz of Rachab; and Booz begat Obed of Ruth; and Obed begat -Jesse; 1:6 And Jesse begat David the king; and David the king begat -Solomon of her that had been the wife of Urias; 1:7 And Solomon begat -Roboam; and Roboam begat Abia; and Abia begat Asa; 1:8 And Asa begat -Josaphat; and Josaphat begat Joram; and Joram begat Ozias; 1:9 And -Ozias begat Joatham; and Joatham begat Achaz; and Achaz begat Ezekias; -1:10 And Ezekias begat Manasses; and Manasses begat Amon; and Amon -begat Josias; 1:11 And Josias begat Jechonias and his brethren, about -the time they were carried away to Babylon: 1:12 And after they were -brought to Babylon, Jechonias begat Salathiel; and Salathiel begat -Zorobabel; 1:13 And Zorobabel begat Abiud; and Abiud begat Eliakim; -and Eliakim begat Azor; 1:14 And Azor begat Sadoc; and Sadoc begat -Achim; and Achim begat Eliud; 1:15 And Eliud begat Eleazar; and -Eleazar begat Matthan; and Matthan begat Jacob; 1:16 And Jacob begat -Joseph the husband of Mary, of whom was born Jesus, who is called -Christ. - -1:17 So all the generations from Abraham to David are fourteen -generations; and from David until the carrying away into Babylon are -fourteen generations; and from the carrying away into Babylon unto -Christ are fourteen generations. - -1:18 Now the birth of Jesus Christ was on this wise: When as his -mother Mary was espoused to Joseph, before they came together, she was -found with child of the Holy Ghost. - -1:19 Then Joseph her husband, being a just man, and not willing to -make her a publick example, was minded to put her away privily. - -1:20 But while he thought on these things, behold, the angel of the -LORD appeared unto him in a dream, saying, Joseph, thou son of David, -fear not to take unto thee Mary thy wife: for that which is conceived -in her is of the Holy Ghost. - -1:21 And she shall bring forth a son, and thou shalt call his name -JESUS: for he shall save his people from their sins. - -1:22 Now all this was done, that it might be fulfilled which was -spoken of the Lord by the prophet, saying, 1:23 Behold, a virgin shall -be with child, and shall bring forth a son, and they shall call his -name Emmanuel, which being interpreted is, God with us. - -1:24 Then Joseph being raised from sleep did as the angel of the Lord -had bidden him, and took unto him his wife: 1:25 And knew her not till -she had brought forth her firstborn son: and he called his name JESUS. - -2:1 Now when Jesus was born in Bethlehem of Judaea in the days of -Herod the king, behold, there came wise men from the east to -Jerusalem, 2:2 Saying, Where is he that is born King of the Jews? for -we have seen his star in the east, and are come to worship him. - -2:3 When Herod the king had heard these things, he was troubled, and -all Jerusalem with him. - -2:4 And when he had gathered all the chief priests and scribes of the -people together, he demanded of them where Christ should be born. - -2:5 And they said unto him, In Bethlehem of Judaea: for thus it is -written by the prophet, 2:6 And thou Bethlehem, in the land of Juda, -art not the least among the princes of Juda: for out of thee shall -come a Governor, that shall rule my people Israel. - -2:7 Then Herod, when he had privily called the wise men, enquired of -them diligently what time the star appeared. - -2:8 And he sent them to Bethlehem, and said, Go and search diligently -for the young child; and when ye have found him, bring me word again, -that I may come and worship him also. - -2:9 When they had heard the king, they departed; and, lo, the star, -which they saw in the east, went before them, till it came and stood -over where the young child was. - -2:10 When they saw the star, they rejoiced with exceeding great joy. - -2:11 And when they were come into the house, they saw the young child -with Mary his mother, and fell down, and worshipped him: and when they -had opened their treasures, they presented unto him gifts; gold, and -frankincense and myrrh. - -2:12 And being warned of God in a dream that they should not return to -Herod, they departed into their own country another way. - -2:13 And when they were departed, behold, the angel of the Lord -appeareth to Joseph in a dream, saying, Arise, and take the young -child and his mother, and flee into Egypt, and be thou there until I -bring thee word: for Herod will seek the young child to destroy him. - -2:14 When he arose, he took the young child and his mother by night, -and departed into Egypt: 2:15 And was there until the death of Herod: -that it might be fulfilled which was spoken of the Lord by the -prophet, saying, Out of Egypt have I called my son. - -2:16 Then Herod, when he saw that he was mocked of the wise men, was -exceeding wroth, and sent forth, and slew all the children that were -in Bethlehem, and in all the coasts thereof, from two years old and -under, according to the time which he had diligently enquired of the -wise men. - -2:17 Then was fulfilled that which was spoken by Jeremy the prophet, -saying, 2:18 In Rama was there a voice heard, lamentation, and -weeping, and great mourning, Rachel weeping for her children, and -would not be comforted, because they are not. - -2:19 But when Herod was dead, behold, an angel of the Lord appeareth -in a dream to Joseph in Egypt, 2:20 Saying, Arise, and take the young -child and his mother, and go into the land of Israel: for they are -dead which sought the young child's life. - -2:21 And he arose, and took the young child and his mother, and came -into the land of Israel. - -2:22 But when he heard that Archelaus did reign in Judaea in the room -of his father Herod, he was afraid to go thither: notwithstanding, -being warned of God in a dream, he turned aside into the parts of -Galilee: 2:23 And he came and dwelt in a city called Nazareth: that it -might be fulfilled which was spoken by the prophets, He shall be -called a Nazarene. - -3:1 In those days came John the Baptist, preaching in the wilderness -of Judaea, 3:2 And saying, Repent ye: for the kingdom of heaven is at -hand. - -3:3 For this is he that was spoken of by the prophet Esaias, saying, -The voice of one crying in the wilderness, Prepare ye the way of the -Lord, make his paths straight. - -3:4 And the same John had his raiment of camel's hair, and a leathern -girdle about his loins; and his meat was locusts and wild honey. - -3:5 Then went out to him Jerusalem, and all Judaea, and all the region -round about Jordan, 3:6 And were baptized of him in Jordan, confessing -their sins. - -3:7 But when he saw many of the Pharisees and Sadducees come to his -baptism, he said unto them, O generation of vipers, who hath warned -you to flee from the wrath to come? 3:8 Bring forth therefore fruits -meet for repentance: 3:9 And think not to say within yourselves, We -have Abraham to our father: for I say unto you, that God is able of -these stones to raise up children unto Abraham. - -3:10 And now also the axe is laid unto the root of the trees: -therefore every tree which bringeth not forth good fruit is hewn down, -and cast into the fire. - -3:11 I indeed baptize you with water unto repentance. but he that -cometh after me is mightier than I, whose shoes I am not worthy to -bear: he shall baptize you with the Holy Ghost, and with fire: 3:12 -Whose fan is in his hand, and he will throughly purge his floor, and -gather his wheat into the garner; but he will burn up the chaff with -unquenchable fire. - -3:13 Then cometh Jesus from Galilee to Jordan unto John, to be -baptized of him. - -3:14 But John forbad him, saying, I have need to be baptized of thee, -and comest thou to me? 3:15 And Jesus answering said unto him, Suffer -it to be so now: for thus it becometh us to fulfil all righteousness. -Then he suffered him. - -3:16 And Jesus, when he was baptized, went up straightway out of the -water: and, lo, the heavens were opened unto him, and he saw the -Spirit of God descending like a dove, and lighting upon him: 3:17 And -lo a voice from heaven, saying, This is my beloved Son, in whom I am -well pleased. - -4:1 Then was Jesus led up of the spirit into the wilderness to be -tempted of the devil. - -4:2 And when he had fasted forty days and forty nights, he was -afterward an hungred. - -4:3 And when the tempter came to him, he said, If thou be the Son of -God, command that these stones be made bread. - -4:4 But he answered and said, It is written, Man shall not live by -bread alone, but by every word that proceedeth out of the mouth of -God. - -4:5 Then the devil taketh him up into the holy city, and setteth him -on a pinnacle of the temple, 4:6 And saith unto him, If thou be the -Son of God, cast thyself down: for it is written, He shall give his -angels charge concerning thee: and in their hands they shall bear thee -up, lest at any time thou dash thy foot against a stone. - -4:7 Jesus said unto him, It is written again, Thou shalt not tempt the -Lord thy God. - -4:8 Again, the devil taketh him up into an exceeding high mountain, -and sheweth him all the kingdoms of the world, and the glory of them; -4:9 And saith unto him, All these things will I give thee, if thou -wilt fall down and worship me. - -4:10 Then saith Jesus unto him, Get thee hence, Satan: for it is -written, Thou shalt worship the Lord thy God, and him only shalt thou -serve. - -4:11 Then the devil leaveth him, and, behold, angels came and -ministered unto him. - -4:12 Now when Jesus had heard that John was cast into prison, he -departed into Galilee; 4:13 And leaving Nazareth, he came and dwelt in -Capernaum, which is upon the sea coast, in the borders of Zabulon and -Nephthalim: 4:14 That it might be fulfilled which was spoken by Esaias -the prophet, saying, 4:15 The land of Zabulon, and the land of -Nephthalim, by the way of the sea, beyond Jordan, Galilee of the -Gentiles; 4:16 The people which sat in darkness saw great light; and -to them which sat in the region and shadow of death light is sprung -up. - -4:17 From that time Jesus began to preach, and to say, Repent: for the -kingdom of heaven is at hand. - -4:18 And Jesus, walking by the sea of Galilee, saw two brethren, Simon -called Peter, and Andrew his brother, casting a net into the sea: for -they were fishers. - -4:19 And he saith unto them, Follow me, and I will make you fishers of -men. - -4:20 And they straightway left their nets, and followed him. - -4:21 And going on from thence, he saw other two brethren, James the -son of Zebedee, and John his brother, in a ship with Zebedee their -father, mending their nets; and he called them. - -4:22 And they immediately left the ship and their father, and followed -him. - -4:23 And Jesus went about all Galilee, teaching in their synagogues, -and preaching the gospel of the kingdom, and healing all manner of -sickness and all manner of disease among the people. - -4:24 And his fame went throughout all Syria: and they brought unto him -all sick people that were taken with divers diseases and torments, and -those which were possessed with devils, and those which were lunatick, -and those that had the palsy; and he healed them. - -4:25 And there followed him great multitudes of people from Galilee, -and from Decapolis, and from Jerusalem, and from Judaea, and from -beyond Jordan. - -5:1 And seeing the multitudes, he went up into a mountain: and when he -was set, his disciples came unto him: 5:2 And he opened his mouth, and -taught them, saying, 5:3 Blessed are the poor in spirit: for theirs is -the kingdom of heaven. - -5:4 Blessed are they that mourn: for they shall be comforted. - -5:5 Blessed are the meek: for they shall inherit the earth. - -5:6 Blessed are they which do hunger and thirst after righteousness: -for they shall be filled. - -5:7 Blessed are the merciful: for they shall obtain mercy. - -5:8 Blessed are the pure in heart: for they shall see God. - -5:9 Blessed are the peacemakers: for they shall be called the children -of God. - -5:10 Blessed are they which are persecuted for righteousness' sake: -for theirs is the kingdom of heaven. - -5:11 Blessed are ye, when men shall revile you, and persecute you, and -shall say all manner of evil against you falsely, for my sake. - -5:12 Rejoice, and be exceeding glad: for great is your reward in -heaven: for so persecuted they the prophets which were before you. - -5:13 Ye are the salt of the earth: but if the salt have lost his -savour, wherewith shall it be salted? it is thenceforth good for -nothing, but to be cast out, and to be trodden under foot of men. - -5:14 Ye are the light of the world. A city that is set on an hill -cannot be hid. - -5:15 Neither do men light a candle, and put it under a bushel, but on -a candlestick; and it giveth light unto all that are in the house. - -5:16 Let your light so shine before men, that they may see your good -works, and glorify your Father which is in heaven. - -5:17 Think not that I am come to destroy the law, or the prophets: I -am not come to destroy, but to fulfil. - -5:18 For verily I say unto you, Till heaven and earth pass, one jot or -one tittle shall in no wise pass from the law, till all be fulfilled. - -5:19 Whosoever therefore shall break one of these least commandments, -and shall teach men so, he shall be called the least in the kingdom of -heaven: but whosoever shall do and teach them, the same shall be -called great in the kingdom of heaven. - -5:20 For I say unto you, That except your righteousness shall exceed -the righteousness of the scribes and Pharisees, ye shall in no case -enter into the kingdom of heaven. - -5:21 Ye have heard that it was said of them of old time, Thou shalt -not kill; and whosoever shall kill shall be in danger of the judgment: -5:22 But I say unto you, That whosoever is angry with his brother -without a cause shall be in danger of the judgment: and whosoever -shall say to his brother, Raca, shall be in danger of the council: but -whosoever shall say, Thou fool, shall be in danger of hell fire. - -5:23 Therefore if thou bring thy gift to the altar, and there -rememberest that thy brother hath ought against thee; 5:24 Leave there -thy gift before the altar, and go thy way; first be reconciled to thy -brother, and then come and offer thy gift. - -5:25 Agree with thine adversary quickly, whiles thou art in the way -with him; lest at any time the adversary deliver thee to the judge, -and the judge deliver thee to the officer, and thou be cast into -prison. - -5:26 Verily I say unto thee, Thou shalt by no means come out thence, -till thou hast paid the uttermost farthing. - -5:27 Ye have heard that it was said by them of old time, Thou shalt -not commit adultery: 5:28 But I say unto you, That whosoever looketh -on a woman to lust after her hath committed adultery with her already -in his heart. - -5:29 And if thy right eye offend thee, pluck it out, and cast it from -thee: for it is profitable for thee that one of thy members should -perish, and not that thy whole body should be cast into hell. - -5:30 And if thy right hand offend thee, cut it off, and cast it from -thee: for it is profitable for thee that one of thy members should -perish, and not that thy whole body should be cast into hell. - -5:31 It hath been said, Whosoever shall put away his wife, let him -give her a writing of divorcement: 5:32 But I say unto you, That -whosoever shall put away his wife, saving for the cause of -fornication, causeth her to commit adultery: and whosoever shall marry -her that is divorced committeth adultery. - -5:33 Again, ye have heard that it hath been said by them of old time, -Thou shalt not forswear thyself, but shalt perform unto the Lord thine -oaths: 5:34 But I say unto you, Swear not at all; neither by heaven; -for it is God's throne: 5:35 Nor by the earth; for it is his -footstool: neither by Jerusalem; for it is the city of the great King. - -5:36 Neither shalt thou swear by thy head, because thou canst not make -one hair white or black. - -5:37 But let your communication be, Yea, yea; Nay, nay: for whatsoever -is more than these cometh of evil. - -5:38 Ye have heard that it hath been said, An eye for an eye, and a -tooth for a tooth: 5:39 But I say unto you, That ye resist not evil: -but whosoever shall smite thee on thy right cheek, turn to him the -other also. - -5:40 And if any man will sue thee at the law, and take away thy coat, -let him have thy cloak also. - -5:41 And whosoever shall compel thee to go a mile, go with him twain. - -5:42 Give to him that asketh thee, and from him that would borrow of -thee turn not thou away. - -5:43 Ye have heard that it hath been said, Thou shalt love thy -neighbour, and hate thine enemy. - -5:44 But I say unto you, Love your enemies, bless them that curse you, -do good to them that hate you, and pray for them which despitefully -use you, and persecute you; 5:45 That ye may be the children of your -Father which is in heaven: for he maketh his sun to rise on the evil -and on the good, and sendeth rain on the just and on the unjust. - -5:46 For if ye love them which love you, what reward have ye? do not -even the publicans the same? 5:47 And if ye salute your brethren -only, what do ye more than others? do not even the publicans so? 5:48 -Be ye therefore perfect, even as your Father which is in heaven is -perfect. - -6:1 Take heed that ye do not your alms before men, to be seen of them: -otherwise ye have no reward of your Father which is in heaven. - -6:2 Therefore when thou doest thine alms, do not sound a trumpet -before thee, as the hypocrites do in the synagogues and in the -streets, that they may have glory of men. Verily I say unto you, They -have their reward. - -6:3 But when thou doest alms, let not thy left hand know what thy -right hand doeth: 6:4 That thine alms may be in secret: and thy Father -which seeth in secret himself shall reward thee openly. - -6:5 And when thou prayest, thou shalt not be as the hypocrites are: -for they love to pray standing in the synagogues and in the corners of -the streets, that they may be seen of men. Verily I say unto you, They -have their reward. - -6:6 But thou, when thou prayest, enter into thy closet, and when thou -hast shut thy door, pray to thy Father which is in secret; and thy -Father which seeth in secret shall reward thee openly. - -6:7 But when ye pray, use not vain repetitions, as the heathen do: for -they think that they shall be heard for their much speaking. - -6:8 Be not ye therefore like unto them: for your Father knoweth what -things ye have need of, before ye ask him. - -6:9 After this manner therefore pray ye: Our Father which art in -heaven, Hallowed be thy name. - -6:10 Thy kingdom come, Thy will be done in earth, as it is in heaven. - -6:11 Give us this day our daily bread. - -6:12 And forgive us our debts, as we forgive our debtors. - -6:13 And lead us not into temptation, but deliver us from evil: For -thine is the kingdom, and the power, and the glory, for ever. Amen. - -6:14 For if ye forgive men their trespasses, your heavenly Father will -also forgive you: 6:15 But if ye forgive not men their trespasses, -neither will your Father forgive your trespasses. - -6:16 Moreover when ye fast, be not, as the hypocrites, of a sad -countenance: for they disfigure their faces, that they may appear unto -men to fast. Verily I say unto you, They have their reward. - -6:17 But thou, when thou fastest, anoint thine head, and wash thy -face; 6:18 That thou appear not unto men to fast, but unto thy Father -which is in secret: and thy Father, which seeth in secret, shall -reward thee openly. - -6:19 Lay not up for yourselves treasures upon earth, where moth and -rust doth corrupt, and where thieves break through and steal: 6:20 But -lay up for yourselves treasures in heaven, where neither moth nor rust -doth corrupt, and where thieves do not break through nor steal: 6:21 -For where your treasure is, there will your heart be also. - -6:22 The light of the body is the eye: if therefore thine eye be -single, thy whole body shall be full of light. - -6:23 But if thine eye be evil, thy whole body shall be full of -darkness. - -If therefore the light that is in thee be darkness, how great is that -darkness! 6:24 No man can serve two masters: for either he will hate -the one, and love the other; or else he will hold to the one, and -despise the other. Ye cannot serve God and mammon. - -6:25 Therefore I say unto you, Take no thought for your life, what ye -shall eat, or what ye shall drink; nor yet for your body, what ye -shall put on. Is not the life more than meat, and the body than -raiment? 6:26 Behold the fowls of the air: for they sow not, neither -do they reap, nor gather into barns; yet your heavenly Father feedeth -them. Are ye not much better than they? 6:27 Which of you by taking -thought can add one cubit unto his stature? 6:28 And why take ye -thought for raiment? Consider the lilies of the field, how they grow; -they toil not, neither do they spin: 6:29 And yet I say unto you, That -even Solomon in all his glory was not arrayed like one of these. - -6:30 Wherefore, if God so clothe the grass of the field, which to day -is, and to morrow is cast into the oven, shall he not much more clothe -you, O ye of little faith? 6:31 Therefore take no thought, saying, -What shall we eat? or, What shall we drink? or, Wherewithal shall we -be clothed? 6:32 (For after all these things do the Gentiles seek:) -for your heavenly Father knoweth that ye have need of all these -things. - -6:33 But seek ye first the kingdom of God, and his righteousness; and -all these things shall be added unto you. - -6:34 Take therefore no thought for the morrow: for the morrow shall -take thought for the things of itself. Sufficient unto the day is the -evil thereof. - -7:1 Judge not, that ye be not judged. - -7:2 For with what judgment ye judge, ye shall be judged: and with what -measure ye mete, it shall be measured to you again. - -7:3 And why beholdest thou the mote that is in thy brother's eye, but -considerest not the beam that is in thine own eye? 7:4 Or how wilt -thou say to thy brother, Let me pull out the mote out of thine eye; -and, behold, a beam is in thine own eye? 7:5 Thou hypocrite, first -cast out the beam out of thine own eye; and then shalt thou see -clearly to cast out the mote out of thy brother's eye. - -7:6 Give not that which is holy unto the dogs, neither cast ye your -pearls before swine, lest they trample them under their feet, and turn -again and rend you. - -7:7 Ask, and it shall be given you; seek, and ye shall find; knock, -and it shall be opened unto you: 7:8 For every one that asketh -receiveth; and he that seeketh findeth; and to him that knocketh it -shall be opened. - -7:9 Or what man is there of you, whom if his son ask bread, will he -give him a stone? 7:10 Or if he ask a fish, will he give him a -serpent? 7:11 If ye then, being evil, know how to give good gifts -unto your children, how much more shall your Father which is in heaven -give good things to them that ask him? 7:12 Therefore all things -whatsoever ye would that men should do to you, do ye even so to them: -for this is the law and the prophets. - -7:13 Enter ye in at the strait gate: for wide is the gate, and broad -is the way, that leadeth to destruction, and many there be which go in -thereat: 7:14 Because strait is the gate, and narrow is the way, which -leadeth unto life, and few there be that find it. - -7:15 Beware of false prophets, which come to you in sheep's clothing, -but inwardly they are ravening wolves. - -7:16 Ye shall know them by their fruits. Do men gather grapes of -thorns, or figs of thistles? 7:17 Even so every good tree bringeth -forth good fruit; but a corrupt tree bringeth forth evil fruit. - -7:18 A good tree cannot bring forth evil fruit, neither can a corrupt -tree bring forth good fruit. - -7:19 Every tree that bringeth not forth good fruit is hewn down, and -cast into the fire. - -7:20 Wherefore by their fruits ye shall know them. - -7:21 Not every one that saith unto me, Lord, Lord, shall enter into -the kingdom of heaven; but he that doeth the will of my Father which -is in heaven. - -7:22 Many will say to me in that day, Lord, Lord, have we not -prophesied in thy name? and in thy name have cast out devils? and in -thy name done many wonderful works? 7:23 And then will I profess unto -them, I never knew you: depart from me, ye that work iniquity. - -7:24 Therefore whosoever heareth these sayings of mine, and doeth -them, I will liken him unto a wise man, which built his house upon a -rock: 7:25 And the rain descended, and the floods came, and the winds -blew, and beat upon that house; and it fell not: for it was founded -upon a rock. - -7:26 And every one that heareth these sayings of mine, and doeth them -not, shall be likened unto a foolish man, which built his house upon -the sand: 7:27 And the rain descended, and the floods came, and the -winds blew, and beat upon that house; and it fell: and great was the -fall of it. - -7:28 And it came to pass, when Jesus had ended these sayings, the -people were astonished at his doctrine: 7:29 For he taught them as one -having authority, and not as the scribes. - -8:1 When he was come down from the mountain, great multitudes followed -him. - -8:2 And, behold, there came a leper and worshipped him, saying, Lord, -if thou wilt, thou canst make me clean. - -8:3 And Jesus put forth his hand, and touched him, saying, I will; be -thou clean. And immediately his leprosy was cleansed. - -8:4 And Jesus saith unto him, See thou tell no man; but go thy way, -shew thyself to the priest, and offer the gift that Moses commanded, -for a testimony unto them. - -8:5 And when Jesus was entered into Capernaum, there came unto him a -centurion, beseeching him, 8:6 And saying, Lord, my servant lieth at -home sick of the palsy, grievously tormented. - -8:7 And Jesus saith unto him, I will come and heal him. - -8:8 The centurion answered and said, Lord, I am not worthy that thou -shouldest come under my roof: but speak the word only, and my servant -shall be healed. - -8:9 For I am a man under authority, having soldiers under me: and I -say to this man, Go, and he goeth; and to another, Come, and he -cometh; and to my servant, Do this, and he doeth it. - -8:10 When Jesus heard it, he marvelled, and said to them that -followed, Verily I say unto you, I have not found so great faith, no, -not in Israel. - -8:11 And I say unto you, That many shall come from the east and west, -and shall sit down with Abraham, and Isaac, and Jacob, in the kingdom -of heaven. - -8:12 But the children of the kingdom shall be cast out into outer -darkness: there shall be weeping and gnashing of teeth. - -8:13 And Jesus said unto the centurion, Go thy way; and as thou hast -believed, so be it done unto thee. And his servant was healed in the -selfsame hour. - -8:14 And when Jesus was come into Peter's house, he saw his wife's -mother laid, and sick of a fever. - -8:15 And he touched her hand, and the fever left her: and she arose, -and ministered unto them. - -8:16 When the even was come, they brought unto him many that were -possessed with devils: and he cast out the spirits with his word, and -healed all that were sick: 8:17 That it might be fulfilled which was -spoken by Esaias the prophet, saying, Himself took our infirmities, -and bare our sicknesses. - -8:18 Now when Jesus saw great multitudes about him, he gave -commandment to depart unto the other side. - -8:19 And a certain scribe came, and said unto him, Master, I will -follow thee whithersoever thou goest. - -8:20 And Jesus saith unto him, The foxes have holes, and the birds of -the air have nests; but the Son of man hath not where to lay his head. - -8:21 And another of his disciples said unto him, Lord, suffer me first -to go and bury my father. - -8:22 But Jesus said unto him, Follow me; and let the dead bury their -dead. - -8:23 And when he was entered into a ship, his disciples followed him. - -8:24 And, behold, there arose a great tempest in the sea, insomuch -that the ship was covered with the waves: but he was asleep. - -8:25 And his disciples came to him, and awoke him, saying, Lord, save -us: we perish. - -8:26 And he saith unto them, Why are ye fearful, O ye of little faith? -Then he arose, and rebuked the winds and the sea; and there was a -great calm. - -8:27 But the men marvelled, saying, What manner of man is this, that -even the winds and the sea obey him! 8:28 And when he was come to the -other side into the country of the Gergesenes, there met him two -possessed with devils, coming out of the tombs, exceeding fierce, so -that no man might pass by that way. - -8:29 And, behold, they cried out, saying, What have we to do with -thee, Jesus, thou Son of God? art thou come hither to torment us -before the time? 8:30 And there was a good way off from them an herd -of many swine feeding. - -8:31 So the devils besought him, saying, If thou cast us out, suffer -us to go away into the herd of swine. - -8:32 And he said unto them, Go. And when they were come out, they went -into the herd of swine: and, behold, the whole herd of swine ran -violently down a steep place into the sea, and perished in the waters. - -8:33 And they that kept them fled, and went their ways into the city, -and told every thing, and what was befallen to the possessed of the -devils. - -8:34 And, behold, the whole city came out to meet Jesus: and when they -saw him, they besought him that he would depart out of their coasts. - -9:1 And he entered into a ship, and passed over, and came into his own -city. - -9:2 And, behold, they brought to him a man sick of the palsy, lying on -a bed: and Jesus seeing their faith said unto the sick of the palsy; -Son, be of good cheer; thy sins be forgiven thee. - -9:3 And, behold, certain of the scribes said within themselves, This -man blasphemeth. - -9:4 And Jesus knowing their thoughts said, Wherefore think ye evil in -your hearts? 9:5 For whether is easier, to say, Thy sins be forgiven -thee; or to say, Arise, and walk? 9:6 But that ye may know that the -Son of man hath power on earth to forgive sins, (then saith he to the -sick of the palsy,) Arise, take up thy bed, and go unto thine house. - -9:7 And he arose, and departed to his house. - -9:8 But when the multitudes saw it, they marvelled, and glorified God, -which had given such power unto men. - -9:9 And as Jesus passed forth from thence, he saw a man, named -Matthew, sitting at the receipt of custom: and he saith unto him, -Follow me. And he arose, and followed him. - -9:10 And it came to pass, as Jesus sat at meat in the house, behold, -many publicans and sinners came and sat down with him and his -disciples. - -9:11 And when the Pharisees saw it, they said unto his disciples, Why -eateth your Master with publicans and sinners? 9:12 But when Jesus -heard that, he said unto them, They that be whole need not a -physician, but they that are sick. - -9:13 But go ye and learn what that meaneth, I will have mercy, and not -sacrifice: for I am not come to call the righteous, but sinners to -repentance. - -9:14 Then came to him the disciples of John, saying, Why do we and the -Pharisees fast oft, but thy disciples fast not? 9:15 And Jesus said -unto them, Can the children of the bridechamber mourn, as long as the -bridegroom is with them? but the days will come, when the bridegroom -shall be taken from them, and then shall they fast. - -9:16 No man putteth a piece of new cloth unto an old garment, for that -which is put in to fill it up taketh from the garment, and the rent is -made worse. - -9:17 Neither do men put new wine into old bottles: else the bottles -break, and the wine runneth out, and the bottles perish: but they put -new wine into new bottles, and both are preserved. - -9:18 While he spake these things unto them, behold, there came a -certain ruler, and worshipped him, saying, My daughter is even now -dead: but come and lay thy hand upon her, and she shall live. - -9:19 And Jesus arose, and followed him, and so did his disciples. - -9:20 And, behold, a woman, which was diseased with an issue of blood -twelve years, came behind him, and touched the hem of his garment: -9:21 For she said within herself, If I may but touch his garment, I -shall be whole. - -9:22 But Jesus turned him about, and when he saw her, he said, -Daughter, be of good comfort; thy faith hath made thee whole. And the -woman was made whole from that hour. - -9:23 And when Jesus came into the ruler's house, and saw the minstrels -and the people making a noise, 9:24 He said unto them, Give place: for -the maid is not dead, but sleepeth. And they laughed him to scorn. - -9:25 But when the people were put forth, he went in, and took her by -the hand, and the maid arose. - -9:26 And the fame hereof went abroad into all that land. - -9:27 And when Jesus departed thence, two blind men followed him, -crying, and saying, Thou son of David, have mercy on us. - -9:28 And when he was come into the house, the blind men came to him: -and Jesus saith unto them, Believe ye that I am able to do this? They -said unto him, Yea, Lord. - -9:29 Then touched he their eyes, saying, According to your faith be it -unto you. - -9:30 And their eyes were opened; and Jesus straitly charged them, -saying, See that no man know it. - -9:31 But they, when they were departed, spread abroad his fame in all -that country. - -9:32 As they went out, behold, they brought to him a dumb man -possessed with a devil. - -9:33 And when the devil was cast out, the dumb spake: and the -multitudes marvelled, saying, It was never so seen in Israel. - -9:34 But the Pharisees said, He casteth out devils through the prince -of the devils. - -9:35 And Jesus went about all the cities and villages, teaching in -their synagogues, and preaching the gospel of the kingdom, and healing -every sickness and every disease among the people. - -9:36 But when he saw the multitudes, he was moved with compassion on -them, because they fainted, and were scattered abroad, as sheep having -no shepherd. - -9:37 Then saith he unto his disciples, The harvest truly is plenteous, -but the labourers are few; 9:38 Pray ye therefore the Lord of the -harvest, that he will send forth labourers into his harvest. - -10:1 And when he had called unto him his twelve disciples, he gave -them power against unclean spirits, to cast them out, and to heal all -manner of sickness and all manner of disease. - -10:2 Now the names of the twelve apostles are these; The first, Simon, -who is called Peter, and Andrew his brother; James the son of Zebedee, -and John his brother; 10:3 Philip, and Bartholomew; Thomas, and -Matthew the publican; James the son of Alphaeus, and Lebbaeus, whose -surname was Thaddaeus; 10:4 Simon the Canaanite, and Judas Iscariot, -who also betrayed him. - -10:5 These twelve Jesus sent forth, and commanded them, saying, Go not -into the way of the Gentiles, and into any city of the Samaritans -enter ye not: 10:6 But go rather to the lost sheep of the house of -Israel. - -10:7 And as ye go, preach, saying, The kingdom of heaven is at hand. - -10:8 Heal the sick, cleanse the lepers, raise the dead, cast out -devils: freely ye have received, freely give. - -10:9 Provide neither gold, nor silver, nor brass in your purses, 10:10 -Nor scrip for your journey, neither two coats, neither shoes, nor yet -staves: for the workman is worthy of his meat. - -10:11 And into whatsoever city or town ye shall enter, enquire who in -it is worthy; and there abide till ye go thence. - -10:12 And when ye come into an house, salute it. - -10:13 And if the house be worthy, let your peace come upon it: but if -it be not worthy, let your peace return to you. - -10:14 And whosoever shall not receive you, nor hear your words, when -ye depart out of that house or city, shake off the dust of your feet. - -10:15 Verily I say unto you, It shall be more tolerable for the land -of Sodom and Gomorrha in the day of judgment, than for that city. - -10:16 Behold, I send you forth as sheep in the midst of wolves: be ye -therefore wise as serpents, and harmless as doves. - -10:17 But beware of men: for they will deliver you up to the councils, -and they will scourge you in their synagogues; 10:18 And ye shall be -brought before governors and kings for my sake, for a testimony -against them and the Gentiles. - -10:19 But when they deliver you up, take no thought how or what ye -shall speak: for it shall be given you in that same hour what ye shall -speak. - -10:20 For it is not ye that speak, but the Spirit of your Father which -speaketh in you. - -10:21 And the brother shall deliver up the brother to death, and the -father the child: and the children shall rise up against their -parents, and cause them to be put to death. - -10:22 And ye shall be hated of all men for my name's sake: but he that -endureth to the end shall be saved. - -10:23 But when they persecute you in this city, flee ye into another: -for verily I say unto you, Ye shall not have gone over the cities of -Israel, till the Son of man be come. - -10:24 The disciple is not above his master, nor the servant above his -lord. - -10:25 It is enough for the disciple that he be as his master, and the -servant as his lord. If they have called the master of the house -Beelzebub, how much more shall they call them of his household? 10:26 -Fear them not therefore: for there is nothing covered, that shall not -be revealed; and hid, that shall not be known. - -10:27 What I tell you in darkness, that speak ye in light: and what ye -hear in the ear, that preach ye upon the housetops. - -10:28 And fear not them which kill the body, but are not able to kill -the soul: but rather fear him which is able to destroy both soul and -body in hell. - -10:29 Are not two sparrows sold for a farthing? and one of them shall -not fall on the ground without your Father. - -10:30 But the very hairs of your head are all numbered. - -10:31 Fear ye not therefore, ye are of more value than many sparrows. - -10:32 Whosoever therefore shall confess me before men, him will I -confess also before my Father which is in heaven. - -10:33 But whosoever shall deny me before men, him will I also deny -before my Father which is in heaven. - -10:34 Think not that I am come to send peace on earth: I came not to -send peace, but a sword. - -10:35 For I am come to set a man at variance against his father, and -the daughter against her mother, and the daughter in law against her -mother in law. - -10:36 And a man's foes shall be they of his own household. - -10:37 He that loveth father or mother more than me is not worthy of -me: and he that loveth son or daughter more than me is not worthy of -me. - -10:38 And he that taketh not his cross, and followeth after me, is not -worthy of me. - -10:39 He that findeth his life shall lose it: and he that loseth his -life for my sake shall find it. - -10:40 He that receiveth you receiveth me, and he that receiveth me -receiveth him that sent me. - -10:41 He that receiveth a prophet in the name of a prophet shall -receive a prophet's reward; and he that receiveth a righteous man in -the name of a righteous man shall receive a righteous man's reward. - -10:42 And whosoever shall give to drink unto one of these little ones -a cup of cold water only in the name of a disciple, verily I say unto -you, he shall in no wise lose his reward. - -11:1 And it came to pass, when Jesus had made an end of commanding his -twelve disciples, he departed thence to teach and to preach in their -cities. - -11:2 Now when John had heard in the prison the works of Christ, he -sent two of his disciples, 11:3 And said unto him, Art thou he that -should come, or do we look for another? 11:4 Jesus answered and said -unto them, Go and shew John again those things which ye do hear and -see: 11:5 The blind receive their sight, and the lame walk, the lepers -are cleansed, and the deaf hear, the dead are raised up, and the poor -have the gospel preached to them. - -11:6 And blessed is he, whosoever shall not be offended in me. - -11:7 And as they departed, Jesus began to say unto the multitudes -concerning John, What went ye out into the wilderness to see? A reed -shaken with the wind? 11:8 But what went ye out for to see? A man -clothed in soft raiment? behold, they that wear soft clothing are in -kings' houses. - -11:9 But what went ye out for to see? A prophet? yea, I say unto you, -and more than a prophet. - -11:10 For this is he, of whom it is written, Behold, I send my -messenger before thy face, which shall prepare thy way before thee. - -11:11 Verily I say unto you, Among them that are born of women there -hath not risen a greater than John the Baptist: notwithstanding he -that is least in the kingdom of heaven is greater than he. - -11:12 And from the days of John the Baptist until now the kingdom of -heaven suffereth violence, and the violent take it by force. - -11:13 For all the prophets and the law prophesied until John. - -11:14 And if ye will receive it, this is Elias, which was for to come. - -11:15 He that hath ears to hear, let him hear. - -11:16 But whereunto shall I liken this generation? It is like unto -children sitting in the markets, and calling unto their fellows, 11:17 -And saying, We have piped unto you, and ye have not danced; we have -mourned unto you, and ye have not lamented. - -11:18 For John came neither eating nor drinking, and they say, He hath -a devil. - -11:19 The Son of man came eating and drinking, and they say, Behold a -man gluttonous, and a winebibber, a friend of publicans and sinners. -But wisdom is justified of her children. - -11:20 Then began he to upbraid the cities wherein most of his mighty -works were done, because they repented not: 11:21 Woe unto thee, -Chorazin! woe unto thee, Bethsaida! for if the mighty works, which -were done in you, had been done in Tyre and Sidon, they would have -repented long ago in sackcloth and ashes. - -11:22 But I say unto you, It shall be more tolerable for Tyre and -Sidon at the day of judgment, than for you. - -11:23 And thou, Capernaum, which art exalted unto heaven, shalt be -brought down to hell: for if the mighty works, which have been done in -thee, had been done in Sodom, it would have remained until this day. - -11:24 But I say unto you, That it shall be more tolerable for the land -of Sodom in the day of judgment, than for thee. - -11:25 At that time Jesus answered and said, I thank thee, O Father, -Lord of heaven and earth, because thou hast hid these things from the -wise and prudent, and hast revealed them unto babes. - -11:26 Even so, Father: for so it seemed good in thy sight. - -11:27 All things are delivered unto me of my Father: and no man -knoweth the Son, but the Father; neither knoweth any man the Father, -save the Son, and he to whomsoever the Son will reveal him. - -11:28 Come unto me, all ye that labour and are heavy laden, and I will -give you rest. - -11:29 Take my yoke upon you, and learn of me; for I am meek and lowly -in heart: and ye shall find rest unto your souls. - -11:30 For my yoke is easy, and my burden is light. - -12:1 At that time Jesus went on the sabbath day through the corn; and -his disciples were an hungred, and began to pluck the ears of corn and -to eat. - -12:2 But when the Pharisees saw it, they said unto him, Behold, thy -disciples do that which is not lawful to do upon the sabbath day. - -12:3 But he said unto them, Have ye not read what David did, when he -was an hungred, and they that were with him; 12:4 How he entered into -the house of God, and did eat the shewbread, which was not lawful for -him to eat, neither for them which were with him, but only for the -priests? 12:5 Or have ye not read in the law, how that on the sabbath -days the priests in the temple profane the sabbath, and are blameless? -12:6 But I say unto you, That in this place is one greater than the -temple. - -12:7 But if ye had known what this meaneth, I will have mercy, and not -sacrifice, ye would not have condemned the guiltless. - -12:8 For the Son of man is Lord even of the sabbath day. - -12:9 And when he was departed thence, he went into their synagogue: -12:10 And, behold, there was a man which had his hand withered. And -they asked him, saying, Is it lawful to heal on the sabbath days? that -they might accuse him. - -12:11 And he said unto them, What man shall there be among you, that -shall have one sheep, and if it fall into a pit on the sabbath day, -will he not lay hold on it, and lift it out? 12:12 How much then is a -man better than a sheep? Wherefore it is lawful to do well on the -sabbath days. - -12:13 Then saith he to the man, Stretch forth thine hand. And he -stretched it forth; and it was restored whole, like as the other. - -12:14 Then the Pharisees went out, and held a council against him, how -they might destroy him. - -12:15 But when Jesus knew it, he withdrew himself from thence: and -great multitudes followed him, and he healed them all; 12:16 And -charged them that they should not make him known: 12:17 That it might -be fulfilled which was spoken by Esaias the prophet, saying, 12:18 -Behold my servant, whom I have chosen; my beloved, in whom my soul is -well pleased: I will put my spirit upon him, and he shall shew -judgment to the Gentiles. - -12:19 He shall not strive, nor cry; neither shall any man hear his -voice in the streets. - -12:20 A bruised reed shall he not break, and smoking flax shall he not -quench, till he send forth judgment unto victory. - -12:21 And in his name shall the Gentiles trust. - -12:22 Then was brought unto him one possessed with a devil, blind, and -dumb: and he healed him, insomuch that the blind and dumb both spake -and saw. - -12:23 And all the people were amazed, and said, Is not this the son of -David? 12:24 But when the Pharisees heard it, they said, This fellow -doth not cast out devils, but by Beelzebub the prince of the devils. - -12:25 And Jesus knew their thoughts, and said unto them, Every kingdom -divided against itself is brought to desolation; and every city or -house divided against itself shall not stand: 12:26 And if Satan cast -out Satan, he is divided against himself; how shall then his kingdom -stand? 12:27 And if I by Beelzebub cast out devils, by whom do your -children cast them out? therefore they shall be your judges. - -12:28 But if I cast out devils by the Spirit of God, then the kingdom -of God is come unto you. - -12:29 Or else how can one enter into a strong man's house, and spoil -his goods, except he first bind the strong man? and then he will spoil -his house. - -12:30 He that is not with me is against me; and he that gathereth not -with me scattereth abroad. - -12:31 Wherefore I say unto you, All manner of sin and blasphemy shall -be forgiven unto men: but the blasphemy against the Holy Ghost shall -not be forgiven unto men. - -12:32 And whosoever speaketh a word against the Son of man, it shall -be forgiven him: but whosoever speaketh against the Holy Ghost, it -shall not be forgiven him, neither in this world, neither in the world -to come. - -12:33 Either make the tree good, and his fruit good; or else make the -tree corrupt, and his fruit corrupt: for the tree is known by his -fruit. - -12:34 O generation of vipers, how can ye, being evil, speak good -things? for out of the abundance of the heart the mouth speaketh. - -12:35 A good man out of the good treasure of the heart bringeth forth -good things: and an evil man out of the evil treasure bringeth forth -evil things. - -12:36 But I say unto you, That every idle word that men shall speak, -they shall give account thereof in the day of judgment. - -12:37 For by thy words thou shalt be justified, and by thy words thou -shalt be condemned. - -12:38 Then certain of the scribes and of the Pharisees answered, -saying, Master, we would see a sign from thee. - -12:39 But he answered and said unto them, An evil and adulterous -generation seeketh after a sign; and there shall no sign be given to -it, but the sign of the prophet Jonas: 12:40 For as Jonas was three -days and three nights in the whale's belly; so shall the Son of man be -three days and three nights in the heart of the earth. - -12:41 The men of Nineveh shall rise in judgment with this generation, -and shall condemn it: because they repented at the preaching of Jonas; -and, behold, a greater than Jonas is here. - -12:42 The queen of the south shall rise up in the judgment with this -generation, and shall condemn it: for she came from the uttermost -parts of the earth to hear the wisdom of Solomon; and, behold, a -greater than Solomon is here. - -12:43 When the unclean spirit is gone out of a man, he walketh through -dry places, seeking rest, and findeth none. - -12:44 Then he saith, I will return into my house from whence I came -out; and when he is come, he findeth it empty, swept, and garnished. - -12:45 Then goeth he, and taketh with himself seven other spirits more -wicked than himself, and they enter in and dwell there: and the last -state of that man is worse than the first. Even so shall it be also -unto this wicked generation. - -12:46 While he yet talked to the people, behold, his mother and his -brethren stood without, desiring to speak with him. - -12:47 Then one said unto him, Behold, thy mother and thy brethren -stand without, desiring to speak with thee. - -12:48 But he answered and said unto him that told him, Who is my -mother? and who are my brethren? 12:49 And he stretched forth his -hand toward his disciples, and said, Behold my mother and my brethren! -12:50 For whosoever shall do the will of my Father which is in heaven, -the same is my brother, and sister, and mother. - -13:1 The same day went Jesus out of the house, and sat by the sea -side. - -13:2 And great multitudes were gathered together unto him, so that he -went into a ship, and sat; and the whole multitude stood on the shore. - -13:3 And he spake many things unto them in parables, saying, Behold, a -sower went forth to sow; 13:4 And when he sowed, some seeds fell by -the way side, and the fowls came and devoured them up: 13:5 Some fell -upon stony places, where they had not much earth: and forthwith they -sprung up, because they had no deepness of earth: 13:6 And when the -sun was up, they were scorched; and because they had no root, they -withered away. - -13:7 And some fell among thorns; and the thorns sprung up, and choked -them: 13:8 But other fell into good ground, and brought forth fruit, -some an hundredfold, some sixtyfold, some thirtyfold. - -13:9 Who hath ears to hear, let him hear. - -13:10 And the disciples came, and said unto him, Why speakest thou -unto them in parables? 13:11 He answered and said unto them, Because -it is given unto you to know the mysteries of the kingdom of heaven, -but to them it is not given. - -13:12 For whosoever hath, to him shall be given, and he shall have -more abundance: but whosoever hath not, from him shall be taken away -even that he hath. - -13:13 Therefore speak I to them in parables: because they seeing see -not; and hearing they hear not, neither do they understand. - -13:14 And in them is fulfilled the prophecy of Esaias, which saith, By -hearing ye shall hear, and shall not understand; and seeing ye shall -see, and shall not perceive: 13:15 For this people's heart is waxed -gross, and their ears are dull of hearing, and their eyes they have -closed; lest at any time they should see with their eyes and hear with -their ears, and should understand with their heart, and should be -converted, and I should heal them. - -13:16 But blessed are your eyes, for they see: and your ears, for they -hear. - -13:17 For verily I say unto you, That many prophets and righteous men -have desired to see those things which ye see, and have not seen them; -and to hear those things which ye hear, and have not heard them. - -13:18 Hear ye therefore the parable of the sower. - -13:19 When any one heareth the word of the kingdom, and understandeth -it not, then cometh the wicked one, and catcheth away that which was -sown in his heart. This is he which received seed by the way side. - -13:20 But he that received the seed into stony places, the same is he -that heareth the word, and anon with joy receiveth it; 13:21 Yet hath -he not root in himself, but dureth for a while: for when tribulation -or persecution ariseth because of the word, by and by he is offended. - -13:22 He also that received seed among the thorns is he that heareth -the word; and the care of this world, and the deceitfulness of riches, -choke the word, and he becometh unfruitful. - -13:23 But he that received seed into the good ground is he that -heareth the word, and understandeth it; which also beareth fruit, and -bringeth forth, some an hundredfold, some sixty, some thirty. - -13:24 Another parable put he forth unto them, saying, The kingdom of -heaven is likened unto a man which sowed good seed in his field: 13:25 -But while men slept, his enemy came and sowed tares among the wheat, -and went his way. - -13:26 But when the blade was sprung up, and brought forth fruit, then -appeared the tares also. - -13:27 So the servants of the householder came and said unto him, Sir, -didst not thou sow good seed in thy field? from whence then hath it -tares? 13:28 He said unto them, An enemy hath done this. The servants -said unto him, Wilt thou then that we go and gather them up? 13:29 -But he said, Nay; lest while ye gather up the tares, ye root up also -the wheat with them. - -13:30 Let both grow together until the harvest: and in the time of -harvest I will say to the reapers, Gather ye together first the tares, -and bind them in bundles to burn them: but gather the wheat into my -barn. - -13:31 Another parable put he forth unto them, saying, The kingdom of -heaven is like to a grain of mustard seed, which a man took, and sowed -in his field: 13:32 Which indeed is the least of all seeds: but when -it is grown, it is the greatest among herbs, and becometh a tree, so -that the birds of the air come and lodge in the branches thereof. - -13:33 Another parable spake he unto them; The kingdom of heaven is -like unto leaven, which a woman took, and hid in three measures of -meal, till the whole was leavened. - -13:34 All these things spake Jesus unto the multitude in parables; and -without a parable spake he not unto them: 13:35 That it might be -fulfilled which was spoken by the prophet, saying, I will open my -mouth in parables; I will utter things which have been kept secret -from the foundation of the world. - -13:36 Then Jesus sent the multitude away, and went into the house: and -his disciples came unto him, saying, Declare unto us the parable of -the tares of the field. - -13:37 He answered and said unto them, He that soweth the good seed is -the Son of man; 13:38 The field is the world; the good seed are the -children of the kingdom; but the tares are the children of the wicked -one; 13:39 The enemy that sowed them is the devil; the harvest is the -end of the world; and the reapers are the angels. - -13:40 As therefore the tares are gathered and burned in the fire; so -shall it be in the end of this world. - -13:41 The Son of man shall send forth his angels, and they shall -gather out of his kingdom all things that offend, and them which do -iniquity; 13:42 And shall cast them into a furnace of fire: there -shall be wailing and gnashing of teeth. - -13:43 Then shall the righteous shine forth as the sun in the kingdom -of their Father. Who hath ears to hear, let him hear. - -13:44 Again, the kingdom of heaven is like unto treasure hid in a -field; the which when a man hath found, he hideth, and for joy thereof -goeth and selleth all that he hath, and buyeth that field. - -13:45 Again, the kingdom of heaven is like unto a merchant man, -seeking goodly pearls: 13:46 Who, when he had found one pearl of great -price, went and sold all that he had, and bought it. - -13:47 Again, the kingdom of heaven is like unto a net, that was cast -into the sea, and gathered of every kind: 13:48 Which, when it was -full, they drew to shore, and sat down, and gathered the good into -vessels, but cast the bad away. - -13:49 So shall it be at the end of the world: the angels shall come -forth, and sever the wicked from among the just, 13:50 And shall cast -them into the furnace of fire: there shall be wailing and gnashing of -teeth. - -13:51 Jesus saith unto them, Have ye understood all these things? They -say unto him, Yea, Lord. - -13:52 Then said he unto them, Therefore every scribe which is -instructed unto the kingdom of heaven is like unto a man that is an -householder, which bringeth forth out of his treasure things new and -old. - -13:53 And it came to pass, that when Jesus had finished these -parables, he departed thence. - -13:54 And when he was come into his own country, he taught them in -their synagogue, insomuch that they were astonished, and said, Whence -hath this man this wisdom, and these mighty works? 13:55 Is not this -the carpenter's son? is not his mother called Mary? and his brethren, -James, and Joses, and Simon, and Judas? 13:56 And his sisters, are -they not all with us? Whence then hath this man all these things? -13:57 And they were offended in him. But Jesus said unto them, A -prophet is not without honour, save in his own country, and in his own -house. - -13:58 And he did not many mighty works there because of their -unbelief. - -14:1 At that time Herod the tetrarch heard of the fame of Jesus, 14:2 -And said unto his servants, This is John the Baptist; he is risen from -the dead; and therefore mighty works do shew forth themselves in him. - -14:3 For Herod had laid hold on John, and bound him, and put him in -prison for Herodias' sake, his brother Philip's wife. - -14:4 For John said unto him, It is not lawful for thee to have her. - -14:5 And when he would have put him to death, he feared the multitude, -because they counted him as a prophet. - -14:6 But when Herod's birthday was kept, the daughter of Herodias -danced before them, and pleased Herod. - -14:7 Whereupon he promised with an oath to give her whatsoever she -would ask. - -14:8 And she, being before instructed of her mother, said, Give me -here John Baptist's head in a charger. - -14:9 And the king was sorry: nevertheless for the oath's sake, and -them which sat with him at meat, he commanded it to be given her. - -14:10 And he sent, and beheaded John in the prison. - -14:11 And his head was brought in a charger, and given to the damsel: -and she brought it to her mother. - -14:12 And his disciples came, and took up the body, and buried it, and -went and told Jesus. - -14:13 When Jesus heard of it, he departed thence by ship into a desert -place apart: and when the people had heard thereof, they followed him -on foot out of the cities. - -14:14 And Jesus went forth, and saw a great multitude, and was moved -with compassion toward them, and he healed their sick. - -14:15 And when it was evening, his disciples came to him, saying, This -is a desert place, and the time is now past; send the multitude away, -that they may go into the villages, and buy themselves victuals. - -14:16 But Jesus said unto them, They need not depart; give ye them to -eat. - -14:17 And they say unto him, We have here but five loaves, and two -fishes. - -14:18 He said, Bring them hither to me. - -14:19 And he commanded the multitude to sit down on the grass, and -took the five loaves, and the two fishes, and looking up to heaven, he -blessed, and brake, and gave the loaves to his disciples, and the -disciples to the multitude. - -14:20 And they did all eat, and were filled: and they took up of the -fragments that remained twelve baskets full. - -14:21 And they that had eaten were about five thousand men, beside -women and children. - -14:22 And straightway Jesus constrained his disciples to get into a -ship, and to go before him unto the other side, while he sent the -multitudes away. - -14:23 And when he had sent the multitudes away, he went up into a -mountain apart to pray: and when the evening was come, he was there -alone. - -14:24 But the ship was now in the midst of the sea, tossed with waves: -for the wind was contrary. - -14:25 And in the fourth watch of the night Jesus went unto them, -walking on the sea. - -14:26 And when the disciples saw him walking on the sea, they were -troubled, saying, It is a spirit; and they cried out for fear. - -14:27 But straightway Jesus spake unto them, saying, Be of good cheer; -it is I; be not afraid. - -14:28 And Peter answered him and said, Lord, if it be thou, bid me -come unto thee on the water. - -14:29 And he said, Come. And when Peter was come down out of the ship, -he walked on the water, to go to Jesus. - -14:30 But when he saw the wind boisterous, he was afraid; and -beginning to sink, he cried, saying, Lord, save me. - -14:31 And immediately Jesus stretched forth his hand, and caught him, -and said unto him, O thou of little faith, wherefore didst thou doubt? -14:32 And when they were come into the ship, the wind ceased. - -14:33 Then they that were in the ship came and worshipped him, saying, -Of a truth thou art the Son of God. - -14:34 And when they were gone over, they came into the land of -Gennesaret. - -14:35 And when the men of that place had knowledge of him, they sent -out into all that country round about, and brought unto him all that -were diseased; 14:36 And besought him that they might only touch the -hem of his garment: and as many as touched were made perfectly whole. - -15:1 Then came to Jesus scribes and Pharisees, which were of -Jerusalem, saying, 15:2 Why do thy disciples transgress the tradition -of the elders? for they wash not their hands when they eat bread. - -15:3 But he answered and said unto them, Why do ye also transgress the -commandment of God by your tradition? 15:4 For God commanded, saying, -Honour thy father and mother: and, He that curseth father or mother, -let him die the death. - -15:5 But ye say, Whosoever shall say to his father or his mother, It -is a gift, by whatsoever thou mightest be profited by me; 15:6 And -honour not his father or his mother, he shall be free. Thus have ye -made the commandment of God of none effect by your tradition. - -15:7 Ye hypocrites, well did Esaias prophesy of you, saying, 15:8 This -people draweth nigh unto me with their mouth, and honoureth me with -their lips; but their heart is far from me. - -15:9 But in vain they do worship me, teaching for doctrines the -commandments of men. - -15:10 And he called the multitude, and said unto them, Hear, and -understand: 15:11 Not that which goeth into the mouth defileth a man; -but that which cometh out of the mouth, this defileth a man. - -15:12 Then came his disciples, and said unto him, Knowest thou that -the Pharisees were offended, after they heard this saying? 15:13 But -he answered and said, Every plant, which my heavenly Father hath not -planted, shall be rooted up. - -15:14 Let them alone: they be blind leaders of the blind. And if the -blind lead the blind, both shall fall into the ditch. - -15:15 Then answered Peter and said unto him, Declare unto us this -parable. - -15:16 And Jesus said, Are ye also yet without understanding? 15:17 Do -not ye yet understand, that whatsoever entereth in at the mouth goeth -into the belly, and is cast out into the draught? 15:18 But those -things which proceed out of the mouth come forth from the heart; and -they defile the man. - -15:19 For out of the heart proceed evil thoughts, murders, adulteries, -fornications, thefts, false witness, blasphemies: 15:20 These are the -things which defile a man: but to eat with unwashen hands defileth not -a man. - -15:21 Then Jesus went thence, and departed into the coasts of Tyre and -Sidon. - -15:22 And, behold, a woman of Canaan came out of the same coasts, and -cried unto him, saying, Have mercy on me, O Lord, thou son of David; -my daughter is grievously vexed with a devil. - -15:23 But he answered her not a word. And his disciples came and -besought him, saying, Send her away; for she crieth after us. - -15:24 But he answered and said, I am not sent but unto the lost sheep -of the house of Israel. - -15:25 Then came she and worshipped him, saying, Lord, help me. - -15:26 But he answered and said, It is not meet to take the children's -bread, and to cast it to dogs. - -15:27 And she said, Truth, Lord: yet the dogs eat of the crumbs which -fall from their masters' table. - -15:28 Then Jesus answered and said unto her, O woman, great is thy -faith: be it unto thee even as thou wilt. And her daughter was made -whole from that very hour. - -15:29 And Jesus departed from thence, and came nigh unto the sea of -Galilee; and went up into a mountain, and sat down there. - -15:30 And great multitudes came unto him, having with them those that -were lame, blind, dumb, maimed, and many others, and cast them down at -Jesus' feet; and he healed them: 15:31 Insomuch that the multitude -wondered, when they saw the dumb to speak, the maimed to be whole, the -lame to walk, and the blind to see: and they glorified the God of -Israel. - -15:32 Then Jesus called his disciples unto him, and said, I have -compassion on the multitude, because they continue with me now three -days, and have nothing to eat: and I will not send them away fasting, -lest they faint in the way. - -15:33 And his disciples say unto him, Whence should we have so much -bread in the wilderness, as to fill so great a multitude? 15:34 And -Jesus saith unto them, How many loaves have ye? And they said, Seven, -and a few little fishes. - -15:35 And he commanded the multitude to sit down on the ground. - -15:36 And he took the seven loaves and the fishes, and gave thanks, -and brake them, and gave to his disciples, and the disciples to the -multitude. - -15:37 And they did all eat, and were filled: and they took up of the -broken meat that was left seven baskets full. - -15:38 And they that did eat were four thousand men, beside women and -children. - -15:39 And he sent away the multitude, and took ship, and came into the -coasts of Magdala. - -16:1 The Pharisees also with the Sadducees came, and tempting desired -him that he would shew them a sign from heaven. - -16:2 He answered and said unto them, When it is evening, ye say, It -will be fair weather: for the sky is red. - -16:3 And in the morning, It will be foul weather to day: for the sky -is red and lowering. O ye hypocrites, ye can discern the face of the -sky; but can ye not discern the signs of the times? 16:4 A wicked and -adulterous generation seeketh after a sign; and there shall no sign be -given unto it, but the sign of the prophet Jonas. And he left them, -and departed. - -16:5 And when his disciples were come to the other side, they had -forgotten to take bread. - -16:6 Then Jesus said unto them, Take heed and beware of the leaven of -the Pharisees and of the Sadducees. - -16:7 And they reasoned among themselves, saying, It is because we have -taken no bread. - -16:8 Which when Jesus perceived, he said unto them, O ye of little -faith, why reason ye among yourselves, because ye have brought no -bread? 16:9 Do ye not yet understand, neither remember the five -loaves of the five thousand, and how many baskets ye took up? 16:10 -Neither the seven loaves of the four thousand, and how many baskets ye -took up? 16:11 How is it that ye do not understand that I spake it -not to you concerning bread, that ye should beware of the leaven of -the Pharisees and of the Sadducees? 16:12 Then understood they how -that he bade them not beware of the leaven of bread, but of the -doctrine of the Pharisees and of the Sadducees. - -16:13 When Jesus came into the coasts of Caesarea Philippi, he asked -his disciples, saying, Whom do men say that I the Son of man am? -16:14 And they said, Some say that thou art John the Baptist: some, -Elias; and others, Jeremias, or one of the prophets. - -16:15 He saith unto them, But whom say ye that I am? 16:16 And Simon -Peter answered and said, Thou art the Christ, the Son of the living -God. - -16:17 And Jesus answered and said unto him, Blessed art thou, Simon -Barjona: for flesh and blood hath not revealed it unto thee, but my -Father which is in heaven. - -16:18 And I say also unto thee, That thou art Peter, and upon this -rock I will build my church; and the gates of hell shall not prevail -against it. - -16:19 And I will give unto thee the keys of the kingdom of heaven: and -whatsoever thou shalt bind on earth shall be bound in heaven: and -whatsoever thou shalt loose on earth shall be loosed in heaven. - -16:20 Then charged he his disciples that they should tell no man that -he was Jesus the Christ. - -16:21 From that time forth began Jesus to shew unto his disciples, how -that he must go unto Jerusalem, and suffer many things of the elders -and chief priests and scribes, and be killed, and be raised again the -third day. - -16:22 Then Peter took him, and began to rebuke him, saying, Be it far -from thee, Lord: this shall not be unto thee. - -16:23 But he turned, and said unto Peter, Get thee behind me, Satan: -thou art an offence unto me: for thou savourest not the things that be -of God, but those that be of men. - -16:24 Then said Jesus unto his disciples, If any man will come after -me, let him deny himself, and take up his cross, and follow me. - -16:25 For whosoever will save his life shall lose it: and whosoever -will lose his life for my sake shall find it. - -16:26 For what is a man profited, if he shall gain the whole world, -and lose his own soul? or what shall a man give in exchange for his -soul? 16:27 For the Son of man shall come in the glory of his Father -with his angels; and then he shall reward every man according to his -works. - -16:28 Verily I say unto you, There be some standing here, which shall -not taste of death, till they see the Son of man coming in his -kingdom. - -17:1 And after six days Jesus taketh Peter, James, and John his -brother, and bringeth them up into an high mountain apart, 17:2 And -was transfigured before them: and his face did shine as the sun, and -his raiment was white as the light. - -17:3 And, behold, there appeared unto them Moses and Elias talking -with him. - -17:4 Then answered Peter, and said unto Jesus, Lord, it is good for us -to be here: if thou wilt, let us make here three tabernacles; one for -thee, and one for Moses, and one for Elias. - -17:5 While he yet spake, behold, a bright cloud overshadowed them: and -behold a voice out of the cloud, which said, This is my beloved Son, -in whom I am well pleased; hear ye him. - -17:6 And when the disciples heard it, they fell on their face, and -were sore afraid. - -17:7 And Jesus came and touched them, and said, Arise, and be not -afraid. - -17:8 And when they had lifted up their eyes, they saw no man, save -Jesus only. - -17:9 And as they came down from the mountain, Jesus charged them, -saying, Tell the vision to no man, until the Son of man be risen again -from the dead. - -17:10 And his disciples asked him, saying, Why then say the scribes -that Elias must first come? 17:11 And Jesus answered and said unto -them, Elias truly shall first come, and restore all things. - -17:12 But I say unto you, That Elias is come already, and they knew -him not, but have done unto him whatsoever they listed. Likewise shall -also the Son of man suffer of them. - -17:13 Then the disciples understood that he spake unto them of John -the Baptist. - -17:14 And when they were come to the multitude, there came to him a -certain man, kneeling down to him, and saying, 17:15 Lord, have mercy -on my son: for he is lunatick, and sore vexed: for ofttimes he falleth -into the fire, and oft into the water. - -17:16 And I brought him to thy disciples, and they could not cure him. - -17:17 Then Jesus answered and said, O faithless and perverse -generation, how long shall I be with you? how long shall I suffer you? -bring him hither to me. - -17:18 And Jesus rebuked the devil; and he departed out of him: and the -child was cured from that very hour. - -17:19 Then came the disciples to Jesus apart, and said, Why could not -we cast him out? 17:20 And Jesus said unto them, Because of your -unbelief: for verily I say unto you, If ye have faith as a grain of -mustard seed, ye shall say unto this mountain, Remove hence to yonder -place; and it shall remove; and nothing shall be impossible unto you. - -17:21 Howbeit this kind goeth not out but by prayer and fasting. - -17:22 And while they abode in Galilee, Jesus said unto them, The Son -of man shall be betrayed into the hands of men: 17:23 And they shall -kill him, and the third day he shall be raised again. - -And they were exceeding sorry. - -17:24 And when they were come to Capernaum, they that received tribute -money came to Peter, and said, Doth not your master pay tribute? -17:25 He saith, Yes. And when he was come into the house, Jesus -prevented him, saying, What thinkest thou, Simon? of whom do the kings -of the earth take custom or tribute? of their own children, or of -strangers? 17:26 Peter saith unto him, Of strangers. Jesus saith unto -him, Then are the children free. - -17:27 Notwithstanding, lest we should offend them, go thou to the sea, -and cast an hook, and take up the fish that first cometh up; and when -thou hast opened his mouth, thou shalt find a piece of money: that -take, and give unto them for me and thee. - -18:1 At the same time came the disciples unto Jesus, saying, Who is -the greatest in the kingdom of heaven? 18:2 And Jesus called a little -child unto him, and set him in the midst of them, 18:3 And said, -Verily I say unto you, Except ye be converted, and become as little -children, ye shall not enter into the kingdom of heaven. - -18:4 Whosoever therefore shall humble himself as this little child, -the same is greatest in the kingdom of heaven. - -18:5 And whoso shall receive one such little child in my name -receiveth me. - -18:6 But whoso shall offend one of these little ones which believe in -me, it were better for him that a millstone were hanged about his -neck, and that he were drowned in the depth of the sea. - -18:7 Woe unto the world because of offences! for it must needs be that -offences come; but woe to that man by whom the offence cometh! 18:8 -Wherefore if thy hand or thy foot offend thee, cut them off, and cast -them from thee: it is better for thee to enter into life halt or -maimed, rather than having two hands or two feet to be cast into -everlasting fire. - -18:9 And if thine eye offend thee, pluck it out, and cast it from -thee: it is better for thee to enter into life with one eye, rather -than having two eyes to be cast into hell fire. - -18:10 Take heed that ye despise not one of these little ones; for I -say unto you, That in heaven their angels do always behold the face of -my Father which is in heaven. - -18:11 For the Son of man is come to save that which was lost. - -18:12 How think ye? if a man have an hundred sheep, and one of them be -gone astray, doth he not leave the ninety and nine, and goeth into the -mountains, and seeketh that which is gone astray? 18:13 And if so be -that he find it, verily I say unto you, he rejoiceth more of that -sheep, than of the ninety and nine which went not astray. - -18:14 Even so it is not the will of your Father which is in heaven, -that one of these little ones should perish. - -18:15 Moreover if thy brother shall trespass against thee, go and tell -him his fault between thee and him alone: if he shall hear thee, thou -hast gained thy brother. - -18:16 But if he will not hear thee, then take with thee one or two -more, that in the mouth of two or three witnesses every word may be -established. - -18:17 And if he shall neglect to hear them, tell it unto the church: -but if he neglect to hear the church, let him be unto thee as an -heathen man and a publican. - -18:18 Verily I say unto you, Whatsoever ye shall bind on earth shall -be bound in heaven: and whatsoever ye shall loose on earth shall be -loosed in heaven. - -18:19 Again I say unto you, That if two of you shall agree on earth as -touching any thing that they shall ask, it shall be done for them of -my Father which is in heaven. - -18:20 For where two or three are gathered together in my name, there -am I in the midst of them. - -18:21 Then came Peter to him, and said, Lord, how oft shall my brother -sin against me, and I forgive him? till seven times? 18:22 Jesus -saith unto him, I say not unto thee, Until seven times: but, Until -seventy times seven. - -18:23 Therefore is the kingdom of heaven likened unto a certain king, -which would take account of his servants. - -18:24 And when he had begun to reckon, one was brought unto him, which -owed him ten thousand talents. - -18:25 But forasmuch as he had not to pay, his lord commanded him to be -sold, and his wife, and children, and all that he had, and payment to -be made. - -18:26 The servant therefore fell down, and worshipped him, saying, -Lord, have patience with me, and I will pay thee all. - -18:27 Then the lord of that servant was moved with compassion, and -loosed him, and forgave him the debt. - -18:28 But the same servant went out, and found one of his -fellowservants, which owed him an hundred pence: and he laid hands on -him, and took him by the throat, saying, Pay me that thou owest. - -18:29 And his fellowservant fell down at his feet, and besought him, -saying, Have patience with me, and I will pay thee all. - -18:30 And he would not: but went and cast him into prison, till he -should pay the debt. - -18:31 So when his fellowservants saw what was done, they were very -sorry, and came and told unto their lord all that was done. - -18:32 Then his lord, after that he had called him, said unto him, O -thou wicked servant, I forgave thee all that debt, because thou -desiredst me: 18:33 Shouldest not thou also have had compassion on thy -fellowservant, even as I had pity on thee? 18:34 And his lord was -wroth, and delivered him to the tormentors, till he should pay all -that was due unto him. - -18:35 So likewise shall my heavenly Father do also unto you, if ye -from your hearts forgive not every one his brother their trespasses. - -19:1 And it came to pass, that when Jesus had finished these sayings, -he departed from Galilee, and came into the coasts of Judaea beyond -Jordan; 19:2 And great multitudes followed him; and he healed them -there. - -19:3 The Pharisees also came unto him, tempting him, and saying unto -him, Is it lawful for a man to put away his wife for every cause? -19:4 And he answered and said unto them, Have ye not read, that he -which made them at the beginning made them male and female, 19:5 And -said, For this cause shall a man leave father and mother, and shall -cleave to his wife: and they twain shall be one flesh? 19:6 Wherefore -they are no more twain, but one flesh. What therefore God hath joined -together, let not man put asunder. - -19:7 They say unto him, Why did Moses then command to give a writing -of divorcement, and to put her away? 19:8 He saith unto them, Moses -because of the hardness of your hearts suffered you to put away your -wives: but from the beginning it was not so. - -19:9 And I say unto you, Whosoever shall put away his wife, except it -be for fornication, and shall marry another, committeth adultery: and -whoso marrieth her which is put away doth commit adultery. - -19:10 His disciples say unto him, If the case of the man be so with -his wife, it is not good to marry. - -19:11 But he said unto them, All men cannot receive this saying, save -they to whom it is given. - -19:12 For there are some eunuchs, which were so born from their -mother's womb: and there are some eunuchs, which were made eunuchs of -men: and there be eunuchs, which have made themselves eunuchs for the -kingdom of heaven's sake. He that is able to receive it, let him -receive it. - -19:13 Then were there brought unto him little children, that he should -put his hands on them, and pray: and the disciples rebuked them. - -19:14 But Jesus said, Suffer little children, and forbid them not, to -come unto me: for of such is the kingdom of heaven. - -19:15 And he laid his hands on them, and departed thence. - -19:16 And, behold, one came and said unto him, Good Master, what good -thing shall I do, that I may have eternal life? 19:17 And he said -unto him, Why callest thou me good? there is none good but one, that -is, God: but if thou wilt enter into life, keep the commandments. - -19:18 He saith unto him, Which? Jesus said, Thou shalt do no murder, -Thou shalt not commit adultery, Thou shalt not steal, Thou shalt not -bear false witness, 19:19 Honour thy father and thy mother: and, Thou -shalt love thy neighbour as thyself. - -19:20 The young man saith unto him, All these things have I kept from -my youth up: what lack I yet? 19:21 Jesus said unto him, If thou wilt -be perfect, go and sell that thou hast, and give to the poor, and thou -shalt have treasure in heaven: and come and follow me. - -19:22 But when the young man heard that saying, he went away -sorrowful: for he had great possessions. - -19:23 Then said Jesus unto his disciples, Verily I say unto you, That -a rich man shall hardly enter into the kingdom of heaven. - -19:24 And again I say unto you, It is easier for a camel to go through -the eye of a needle, than for a rich man to enter into the kingdom of -God. - -19:25 When his disciples heard it, they were exceedingly amazed, -saying, Who then can be saved? 19:26 But Jesus beheld them, and said -unto them, With men this is impossible; but with God all things are -possible. - -19:27 Then answered Peter and said unto him, Behold, we have forsaken -all, and followed thee; what shall we have therefore? 19:28 And Jesus -said unto them, Verily I say unto you, That ye which have followed me, -in the regeneration when the Son of man shall sit in the throne of his -glory, ye also shall sit upon twelve thrones, judging the twelve -tribes of Israel. - -19:29 And every one that hath forsaken houses, or brethren, or -sisters, or father, or mother, or wife, or children, or lands, for my -name's sake, shall receive an hundredfold, and shall inherit -everlasting life. - -19:30 But many that are first shall be last; and the last shall be -first. - -20:1 For the kingdom of heaven is like unto a man that is an -householder, which went out early in the morning to hire labourers -into his vineyard. - -20:2 And when he had agreed with the labourers for a penny a day, he -sent them into his vineyard. - -20:3 And he went out about the third hour, and saw others standing -idle in the marketplace, 20:4 And said unto them; Go ye also into the -vineyard, and whatsoever is right I will give you. And they went their -way. - -20:5 Again he went out about the sixth and ninth hour, and did -likewise. - -20:6 And about the eleventh hour he went out, and found others -standing idle, and saith unto them, Why stand ye here all the day -idle? 20:7 They say unto him, Because no man hath hired us. He saith -unto them, Go ye also into the vineyard; and whatsoever is right, that -shall ye receive. - -20:8 So when even was come, the lord of the vineyard saith unto his -steward, Call the labourers, and give them their hire, beginning from -the last unto the first. - -20:9 And when they came that were hired about the eleventh hour, they -received every man a penny. - -20:10 But when the first came, they supposed that they should have -received more; and they likewise received every man a penny. - -20:11 And when they had received it, they murmured against the goodman -of the house, 20:12 Saying, These last have wrought but one hour, and -thou hast made them equal unto us, which have borne the burden and -heat of the day. - -20:13 But he answered one of them, and said, Friend, I do thee no -wrong: didst not thou agree with me for a penny? 20:14 Take that -thine is, and go thy way: I will give unto this last, even as unto -thee. - -20:15 Is it not lawful for me to do what I will with mine own? Is -thine eye evil, because I am good? 20:16 So the last shall be first, -and the first last: for many be called, but few chosen. - -20:17 And Jesus going up to Jerusalem took the twelve disciples apart -in the way, and said unto them, 20:18 Behold, we go up to Jerusalem; -and the Son of man shall be betrayed unto the chief priests and unto -the scribes, and they shall condemn him to death, 20:19 And shall -deliver him to the Gentiles to mock, and to scourge, and to crucify -him: and the third day he shall rise again. - -20:20 Then came to him the mother of Zebedees children with her sons, -worshipping him, and desiring a certain thing of him. - -20:21 And he said unto her, What wilt thou? She saith unto him, Grant -that these my two sons may sit, the one on thy right hand, and the -other on the left, in thy kingdom. - -20:22 But Jesus answered and said, Ye know not what ye ask. Are ye -able to drink of the cup that I shall drink of, and to be baptized -with the baptism that I am baptized with? They say unto him, We are -able. - -20:23 And he saith unto them, Ye shall drink indeed of my cup, and be -baptized with the baptism that I am baptized with: but to sit on my -right hand, and on my left, is not mine to give, but it shall be given -to them for whom it is prepared of my Father. - -20:24 And when the ten heard it, they were moved with indignation -against the two brethren. - -20:25 But Jesus called them unto him, and said, Ye know that the -princes of the Gentiles exercise dominion over them, and they that are -great exercise authority upon them. - -20:26 But it shall not be so among you: but whosoever will be great -among you, let him be your minister; 20:27 And whosoever will be chief -among you, let him be your servant: 20:28 Even as the Son of man came -not to be ministered unto, but to minister, and to give his life a -ransom for many. - -20:29 And as they departed from Jericho, a great multitude followed -him. - -20:30 And, behold, two blind men sitting by the way side, when they -heard that Jesus passed by, cried out, saying, Have mercy on us, O -Lord, thou son of David. - -20:31 And the multitude rebuked them, because they should hold their -peace: but they cried the more, saying, Have mercy on us, O Lord, thou -son of David. - -20:32 And Jesus stood still, and called them, and said, What will ye -that I shall do unto you? 20:33 They say unto him, Lord, that our -eyes may be opened. - -20:34 So Jesus had compassion on them, and touched their eyes: and -immediately their eyes received sight, and they followed him. - -21:1 And when they drew nigh unto Jerusalem, and were come to -Bethphage, unto the mount of Olives, then sent Jesus two disciples, -21:2 Saying unto them, Go into the village over against you, and -straightway ye shall find an ass tied, and a colt with her: loose -them, and bring them unto me. - -21:3 And if any man say ought unto you, ye shall say, The Lord hath -need of them; and straightway he will send them. - -21:4 All this was done, that it might be fulfilled which was spoken by -the prophet, saying, 21:5 Tell ye the daughter of Sion, Behold, thy -King cometh unto thee, meek, and sitting upon an ass, and a colt the -foal of an ass. - -21:6 And the disciples went, and did as Jesus commanded them, 21:7 And -brought the ass, and the colt, and put on them their clothes, and they -set him thereon. - -21:8 And a very great multitude spread their garments in the way; -others cut down branches from the trees, and strawed them in the way. - -21:9 And the multitudes that went before, and that followed, cried, -saying, Hosanna to the son of David: Blessed is he that cometh in the -name of the Lord; Hosanna in the highest. - -21:10 And when he was come into Jerusalem, all the city was moved, -saying, Who is this? 21:11 And the multitude said, This is Jesus the -prophet of Nazareth of Galilee. - -21:12 And Jesus went into the temple of God, and cast out all them -that sold and bought in the temple, and overthrew the tables of the -moneychangers, and the seats of them that sold doves, 21:13 And said -unto them, It is written, My house shall be called the house of -prayer; but ye have made it a den of thieves. - -21:14 And the blind and the lame came to him in the temple; and he -healed them. - -21:15 And when the chief priests and scribes saw the wonderful things -that he did, and the children crying in the temple, and saying, -Hosanna to the son of David; they were sore displeased, 21:16 And said -unto him, Hearest thou what these say? And Jesus saith unto them, Yea; -have ye never read, Out of the mouth of babes and sucklings thou hast -perfected praise? 21:17 And he left them, and went out of the city -into Bethany; and he lodged there. - -21:18 Now in the morning as he returned into the city, he hungered. - -21:19 And when he saw a fig tree in the way, he came to it, and found -nothing thereon, but leaves only, and said unto it, Let no fruit grow -on thee henceforward for ever. And presently the fig tree withered -away. - -21:20 And when the disciples saw it, they marvelled, saying, How soon -is the fig tree withered away! 21:21 Jesus answered and said unto -them, Verily I say unto you, If ye have faith, and doubt not, ye shall -not only do this which is done to the fig tree, but also if ye shall -say unto this mountain, Be thou removed, and be thou cast into the -sea; it shall be done. - -21:22 And all things, whatsoever ye shall ask in prayer, believing, ye -shall receive. - -21:23 And when he was come into the temple, the chief priests and the -elders of the people came unto him as he was teaching, and said, By -what authority doest thou these things? and who gave thee this -authority? 21:24 And Jesus answered and said unto them, I also will -ask you one thing, which if ye tell me, I in like wise will tell you -by what authority I do these things. - -21:25 The baptism of John, whence was it? from heaven, or of men? And -they reasoned with themselves, saying, If we shall say, From heaven; -he will say unto us, Why did ye not then believe him? 21:26 But if we -shall say, Of men; we fear the people; for all hold John as a prophet. - -21:27 And they answered Jesus, and said, We cannot tell. And he said -unto them, Neither tell I you by what authority I do these things. - -21:28 But what think ye? A certain man had two sons; and he came to -the first, and said, Son, go work to day in my vineyard. - -21:29 He answered and said, I will not: but afterward he repented, and -went. - -21:30 And he came to the second, and said likewise. And he answered -and said, I go, sir: and went not. - -21:31 Whether of them twain did the will of his father? They say unto -him, The first. Jesus saith unto them, Verily I say unto you, That the -publicans and the harlots go into the kingdom of God before you. - -21:32 For John came unto you in the way of righteousness, and ye -believed him not: but the publicans and the harlots believed him: and -ye, when ye had seen it, repented not afterward, that ye might believe -him. - -21:33 Hear another parable: There was a certain householder, which -planted a vineyard, and hedged it round about, and digged a winepress -in it, and built a tower, and let it out to husbandmen, and went into -a far country: 21:34 And when the time of the fruit drew near, he sent -his servants to the husbandmen, that they might receive the fruits of -it. - -21:35 And the husbandmen took his servants, and beat one, and killed -another, and stoned another. - -21:36 Again, he sent other servants more than the first: and they did -unto them likewise. - -21:37 But last of all he sent unto them his son, saying, They will -reverence my son. - -21:38 But when the husbandmen saw the son, they said among themselves, -This is the heir; come, let us kill him, and let us seize on his -inheritance. - -21:39 And they caught him, and cast him out of the vineyard, and slew -him. - -21:40 When the lord therefore of the vineyard cometh, what will he do -unto those husbandmen? 21:41 They say unto him, He will miserably -destroy those wicked men, and will let out his vineyard unto other -husbandmen, which shall render him the fruits in their seasons. - -21:42 Jesus saith unto them, Did ye never read in the scriptures, The -stone which the builders rejected, the same is become the head of the -corner: this is the Lord's doing, and it is marvellous in our eyes? -21:43 Therefore say I unto you, The kingdom of God shall be taken from -you, and given to a nation bringing forth the fruits thereof. - -21:44 And whosoever shall fall on this stone shall be broken: but on -whomsoever it shall fall, it will grind him to powder. - -21:45 And when the chief priests and Pharisees had heard his parables, -they perceived that he spake of them. - -21:46 But when they sought to lay hands on him, they feared the -multitude, because they took him for a prophet. - -22:1 And Jesus answered and spake unto them again by parables, and -said, 22:2 The kingdom of heaven is like unto a certain king, which -made a marriage for his son, 22:3 And sent forth his servants to call -them that were bidden to the wedding: and they would not come. - -22:4 Again, he sent forth other servants, saying, Tell them which are -bidden, Behold, I have prepared my dinner: my oxen and my fatlings are -killed, and all things are ready: come unto the marriage. - -22:5 But they made light of it, and went their ways, one to his farm, -another to his merchandise: 22:6 And the remnant took his servants, -and entreated them spitefully, and slew them. - -22:7 But when the king heard thereof, he was wroth: and he sent forth -his armies, and destroyed those murderers, and burned up their city. - -22:8 Then saith he to his servants, The wedding is ready, but they -which were bidden were not worthy. - -22:9 Go ye therefore into the highways, and as many as ye shall find, -bid to the marriage. - -22:10 So those servants went out into the highways, and gathered -together all as many as they found, both bad and good: and the wedding -was furnished with guests. - -22:11 And when the king came in to see the guests, he saw there a man -which had not on a wedding garment: 22:12 And he saith unto him, -Friend, how camest thou in hither not having a wedding garment? And he -was speechless. - -22:13 Then said the king to the servants, Bind him hand and foot, and -take him away, and cast him into outer darkness, there shall be -weeping and gnashing of teeth. - -22:14 For many are called, but few are chosen. - -22:15 Then went the Pharisees, and took counsel how they might -entangle him in his talk. - -22:16 And they sent out unto him their disciples with the Herodians, -saying, Master, we know that thou art true, and teachest the way of -God in truth, neither carest thou for any man: for thou regardest not -the person of men. - -22:17 Tell us therefore, What thinkest thou? Is it lawful to give -tribute unto Caesar, or not? 22:18 But Jesus perceived their -wickedness, and said, Why tempt ye me, ye hypocrites? 22:19 Shew me -the tribute money. And they brought unto him a penny. - -22:20 And he saith unto them, Whose is this image and superscription? -22:21 They say unto him, Caesar's. Then saith he unto them, Render -therefore unto Caesar the things which are Caesar's; and unto God the -things that are God's. - -22:22 When they had heard these words, they marvelled, and left him, -and went their way. - -22:23 The same day came to him the Sadducees, which say that there is -no resurrection, and asked him, 22:24 Saying, Master, Moses said, If a -man die, having no children, his brother shall marry his wife, and -raise up seed unto his brother. - -22:25 Now there were with us seven brethren: and the first, when he -had married a wife, deceased, and, having no issue, left his wife unto -his brother: 22:26 Likewise the second also, and the third, unto the -seventh. - -22:27 And last of all the woman died also. - -22:28 Therefore in the resurrection whose wife shall she be of the -seven? for they all had her. - -22:29 Jesus answered and said unto them, Ye do err, not knowing the -scriptures, nor the power of God. - -22:30 For in the resurrection they neither marry, nor are given in -marriage, but are as the angels of God in heaven. - -22:31 But as touching the resurrection of the dead, have ye not read -that which was spoken unto you by God, saying, 22:32 I am the God of -Abraham, and the God of Isaac, and the God of Jacob? God is not the -God of the dead, but of the living. - -22:33 And when the multitude heard this, they were astonished at his -doctrine. - -22:34 But when the Pharisees had heard that he had put the Sadducees -to silence, they were gathered together. - -22:35 Then one of them, which was a lawyer, asked him a question, -tempting him, and saying, 22:36 Master, which is the great commandment -in the law? 22:37 Jesus said unto him, Thou shalt love the Lord thy -God with all thy heart, and with all thy soul, and with all thy mind. - -22:38 This is the first and great commandment. - -22:39 And the second is like unto it, Thou shalt love thy neighbour as -thyself. - -22:40 On these two commandments hang all the law and the prophets. - -22:41 While the Pharisees were gathered together, Jesus asked them, -22:42 Saying, What think ye of Christ? whose son is he? They say unto -him, The son of David. - -22:43 He saith unto them, How then doth David in spirit call him Lord, -saying, 22:44 The LORD said unto my Lord, Sit thou on my right hand, -till I make thine enemies thy footstool? 22:45 If David then call him -Lord, how is he his son? 22:46 And no man was able to answer him a -word, neither durst any man from that day forth ask him any more -questions. - -23:1 Then spake Jesus to the multitude, and to his disciples, 23:2 -Saying The scribes and the Pharisees sit in Moses' seat: 23:3 All -therefore whatsoever they bid you observe, that observe and do; but do -not ye after their works: for they say, and do not. - -23:4 For they bind heavy burdens and grievous to be borne, and lay -them on men's shoulders; but they themselves will not move them with -one of their fingers. - -23:5 But all their works they do for to be seen of men: they make -broad their phylacteries, and enlarge the borders of their garments, -23:6 And love the uppermost rooms at feasts, and the chief seats in -the synagogues, 23:7 And greetings in the markets, and to be called of -men, Rabbi, Rabbi. - -23:8 But be not ye called Rabbi: for one is your Master, even Christ; -and all ye are brethren. - -23:9 And call no man your father upon the earth: for one is your -Father, which is in heaven. - -23:10 Neither be ye called masters: for one is your Master, even -Christ. - -23:11 But he that is greatest among you shall be your servant. - -23:12 And whosoever shall exalt himself shall be abased; and he that -shall humble himself shall be exalted. - -23:13 But woe unto you, scribes and Pharisees, hypocrites! for ye shut -up the kingdom of heaven against men: for ye neither go in yourselves, -neither suffer ye them that are entering to go in. - -23:14 Woe unto you, scribes and Pharisees, hypocrites! for ye devour -widows' houses, and for a pretence make long prayer: therefore ye -shall receive the greater damnation. - -23:15 Woe unto you, scribes and Pharisees, hypocrites! for ye compass -sea and land to make one proselyte, and when he is made, ye make him -twofold more the child of hell than yourselves. - -23:16 Woe unto you, ye blind guides, which say, Whosoever shall swear -by the temple, it is nothing; but whosoever shall swear by the gold of -the temple, he is a debtor! 23:17 Ye fools and blind: for whether is -greater, the gold, or the temple that sanctifieth the gold? 23:18 -And, Whosoever shall swear by the altar, it is nothing; but whosoever -sweareth by the gift that is upon it, he is guilty. - -23:19 Ye fools and blind: for whether is greater, the gift, or the -altar that sanctifieth the gift? 23:20 Whoso therefore shall swear by -the altar, sweareth by it, and by all things thereon. - -23:21 And whoso shall swear by the temple, sweareth by it, and by him -that dwelleth therein. - -23:22 And he that shall swear by heaven, sweareth by the throne of -God, and by him that sitteth thereon. - -23:23 Woe unto you, scribes and Pharisees, hypocrites! for ye pay -tithe of mint and anise and cummin, and have omitted the weightier -matters of the law, judgment, mercy, and faith: these ought ye to have -done, and not to leave the other undone. - -23:24 Ye blind guides, which strain at a gnat, and swallow a camel. - -23:25 Woe unto you, scribes and Pharisees, hypocrites! for ye make -clean the outside of the cup and of the platter, but within they are -full of extortion and excess. - -23:26 Thou blind Pharisee, cleanse first that which is within the cup -and platter, that the outside of them may be clean also. - -23:27 Woe unto you, scribes and Pharisees, hypocrites! for ye are like -unto whited sepulchres, which indeed appear beautiful outward, but are -within full of dead men's bones, and of all uncleanness. - -23:28 Even so ye also outwardly appear righteous unto men, but within -ye are full of hypocrisy and iniquity. - -23:29 Woe unto you, scribes and Pharisees, hypocrites! because ye -build the tombs of the prophets, and garnish the sepulchres of the -righteous, 23:30 And say, If we had been in the days of our fathers, -we would not have been partakers with them in the blood of the -prophets. - -23:31 Wherefore ye be witnesses unto yourselves, that ye are the -children of them which killed the prophets. - -23:32 Fill ye up then the measure of your fathers. - -23:33 Ye serpents, ye generation of vipers, how can ye escape the -damnation of hell? 23:34 Wherefore, behold, I send unto you prophets, -and wise men, and scribes: and some of them ye shall kill and crucify; -and some of them shall ye scourge in your synagogues, and persecute -them from city to city: 23:35 That upon you may come all the righteous -blood shed upon the earth, from the blood of righteous Abel unto the -blood of Zacharias son of Barachias, whom ye slew between the temple -and the altar. - -23:36 Verily I say unto you, All these things shall come upon this -generation. - -23:37 O Jerusalem, Jerusalem, thou that killest the prophets, and -stonest them which are sent unto thee, how often would I have gathered -thy children together, even as a hen gathereth her chickens under her -wings, and ye would not! 23:38 Behold, your house is left unto you -desolate. - -23:39 For I say unto you, Ye shall not see me henceforth, till ye -shall say, Blessed is he that cometh in the name of the Lord. - -24:1 And Jesus went out, and departed from the temple: and his -disciples came to him for to shew him the buildings of the temple. - -24:2 And Jesus said unto them, See ye not all these things? verily I -say unto you, There shall not be left here one stone upon another, -that shall not be thrown down. - -24:3 And as he sat upon the mount of Olives, the disciples came unto -him privately, saying, Tell us, when shall these things be? and what -shall be the sign of thy coming, and of the end of the world? 24:4 -And Jesus answered and said unto them, Take heed that no man deceive -you. - -24:5 For many shall come in my name, saying, I am Christ; and shall -deceive many. - -24:6 And ye shall hear of wars and rumours of wars: see that ye be not -troubled: for all these things must come to pass, but the end is not -yet. - -24:7 For nation shall rise against nation, and kingdom against -kingdom: and there shall be famines, and pestilences, and earthquakes, -in divers places. - -24:8 All these are the beginning of sorrows. - -24:9 Then shall they deliver you up to be afflicted, and shall kill -you: and ye shall be hated of all nations for my name's sake. - -24:10 And then shall many be offended, and shall betray one another, -and shall hate one another. - -24:11 And many false prophets shall rise, and shall deceive many. - -24:12 And because iniquity shall abound, the love of many shall wax -cold. - -24:13 But he that shall endure unto the end, the same shall be saved. - -24:14 And this gospel of the kingdom shall be preached in all the -world for a witness unto all nations; and then shall the end come. - -24:15 When ye therefore shall see the abomination of desolation, -spoken of by Daniel the prophet, stand in the holy place, (whoso -readeth, let him understand:) 24:16 Then let them which be in Judaea -flee into the mountains: 24:17 Let him which is on the housetop not -come down to take any thing out of his house: 24:18 Neither let him -which is in the field return back to take his clothes. - -24:19 And woe unto them that are with child, and to them that give -suck in those days! 24:20 But pray ye that your flight be not in the -winter, neither on the sabbath day: 24:21 For then shall be great -tribulation, such as was not since the beginning of the world to this -time, no, nor ever shall be. - -24:22 And except those days should be shortened, there should no flesh -be saved: but for the elect's sake those days shall be shortened. - -24:23 Then if any man shall say unto you, Lo, here is Christ, or -there; believe it not. - -24:24 For there shall arise false Christs, and false prophets, and -shall shew great signs and wonders; insomuch that, if it were -possible, they shall deceive the very elect. - -24:25 Behold, I have told you before. - -24:26 Wherefore if they shall say unto you, Behold, he is in the -desert; go not forth: behold, he is in the secret chambers; believe it -not. - -24:27 For as the lightning cometh out of the east, and shineth even -unto the west; so shall also the coming of the Son of man be. - -24:28 For wheresoever the carcase is, there will the eagles be -gathered together. - -24:29 Immediately after the tribulation of those days shall the sun be -darkened, and the moon shall not give her light, and the stars shall -fall from heaven, and the powers of the heavens shall be shaken: 24:30 -And then shall appear the sign of the Son of man in heaven: and then -shall all the tribes of the earth mourn, and they shall see the Son of -man coming in the clouds of heaven with power and great glory. - -24:31 And he shall send his angels with a great sound of a trumpet, -and they shall gather together his elect from the four winds, from one -end of heaven to the other. - -24:32 Now learn a parable of the fig tree; When his branch is yet -tender, and putteth forth leaves, ye know that summer is nigh: 24:33 -So likewise ye, when ye shall see all these things, know that it is -near, even at the doors. - -24:34 Verily I say unto you, This generation shall not pass, till all -these things be fulfilled. - -24:35 Heaven and earth shall pass away, but my words shall not pass -away. - -24:36 But of that day and hour knoweth no man, no, not the angels of -heaven, but my Father only. - -24:37 But as the days of Noe were, so shall also the coming of the Son -of man be. - -24:38 For as in the days that were before the flood they were eating -and drinking, marrying and giving in marriage, until the day that Noe -entered into the ark, 24:39 And knew not until the flood came, and -took them all away; so shall also the coming of the Son of man be. - -24:40 Then shall two be in the field; the one shall be taken, and the -other left. - -24:41 Two women shall be grinding at the mill; the one shall be taken, -and the other left. - -24:42 Watch therefore: for ye know not what hour your Lord doth come. - -24:43 But know this, that if the goodman of the house had known in -what watch the thief would come, he would have watched, and would not -have suffered his house to be broken up. - -24:44 Therefore be ye also ready: for in such an hour as ye think not -the Son of man cometh. - -24:45 Who then is a faithful and wise servant, whom his lord hath made -ruler over his household, to give them meat in due season? 24:46 -Blessed is that servant, whom his lord when he cometh shall find so -doing. - -24:47 Verily I say unto you, That he shall make him ruler over all his -goods. - -24:48 But and if that evil servant shall say in his heart, My lord -delayeth his coming; 24:49 And shall begin to smite his -fellowservants, and to eat and drink with the drunken; 24:50 The lord -of that servant shall come in a day when he looketh not for him, and -in an hour that he is not aware of, 24:51 And shall cut him asunder, -and appoint him his portion with the hypocrites: there shall be -weeping and gnashing of teeth. - -25:1 Then shall the kingdom of heaven be likened unto ten virgins, -which took their lamps, and went forth to meet the bridegroom. - -25:2 And five of them were wise, and five were foolish. - -25:3 They that were foolish took their lamps, and took no oil with -them: 25:4 But the wise took oil in their vessels with their lamps. - -25:5 While the bridegroom tarried, they all slumbered and slept. - -25:6 And at midnight there was a cry made, Behold, the bridegroom -cometh; go ye out to meet him. - -25:7 Then all those virgins arose, and trimmed their lamps. - -25:8 And the foolish said unto the wise, Give us of your oil; for our -lamps are gone out. - -25:9 But the wise answered, saying, Not so; lest there be not enough -for us and you: but go ye rather to them that sell, and buy for -yourselves. - -25:10 And while they went to buy, the bridegroom came; and they that -were ready went in with him to the marriage: and the door was shut. - -25:11 Afterward came also the other virgins, saying, Lord, Lord, open -to us. - -25:12 But he answered and said, Verily I say unto you, I know you not. - -25:13 Watch therefore, for ye know neither the day nor the hour -wherein the Son of man cometh. - -25:14 For the kingdom of heaven is as a man travelling into a far -country, who called his own servants, and delivered unto them his -goods. - -25:15 And unto one he gave five talents, to another two, and to -another one; to every man according to his several ability; and -straightway took his journey. - -25:16 Then he that had received the five talents went and traded with -the same, and made them other five talents. - -25:17 And likewise he that had received two, he also gained other two. - -25:18 But he that had received one went and digged in the earth, and -hid his lord's money. - -25:19 After a long time the lord of those servants cometh, and -reckoneth with them. - -25:20 And so he that had received five talents came and brought other -five talents, saying, Lord, thou deliveredst unto me five talents: -behold, I have gained beside them five talents more. - -25:21 His lord said unto him, Well done, thou good and faithful -servant: thou hast been faithful over a few things, I will make thee -ruler over many things: enter thou into the joy of thy lord. - -25:22 He also that had received two talents came and said, Lord, thou -deliveredst unto me two talents: behold, I have gained two other -talents beside them. - -25:23 His lord said unto him, Well done, good and faithful servant; -thou hast been faithful over a few things, I will make thee ruler over -many things: enter thou into the joy of thy lord. - -25:24 Then he which had received the one talent came and said, Lord, I -knew thee that thou art an hard man, reaping where thou hast not sown, -and gathering where thou hast not strawed: 25:25 And I was afraid, and -went and hid thy talent in the earth: lo, there thou hast that is -thine. - -25:26 His lord answered and said unto him, Thou wicked and slothful -servant, thou knewest that I reap where I sowed not, and gather where -I have not strawed: 25:27 Thou oughtest therefore to have put my money -to the exchangers, and then at my coming I should have received mine -own with usury. - -25:28 Take therefore the talent from him, and give it unto him which -hath ten talents. - -25:29 For unto every one that hath shall be given, and he shall have -abundance: but from him that hath not shall be taken away even that -which he hath. - -25:30 And cast ye the unprofitable servant into outer darkness: there -shall be weeping and gnashing of teeth. - -25:31 When the Son of man shall come in his glory, and all the holy -angels with him, then shall he sit upon the throne of his glory: 25:32 -And before him shall be gathered all nations: and he shall separate -them one from another, as a shepherd divideth his sheep from the -goats: 25:33 And he shall set the sheep on his right hand, but the -goats on the left. - -25:34 Then shall the King say unto them on his right hand, Come, ye -blessed of my Father, inherit the kingdom prepared for you from the -foundation of the world: 25:35 For I was an hungred, and ye gave me -meat: I was thirsty, and ye gave me drink: I was a stranger, and ye -took me in: 25:36 Naked, and ye clothed me: I was sick, and ye visited -me: I was in prison, and ye came unto me. - -25:37 Then shall the righteous answer him, saying, Lord, when saw we -thee an hungred, and fed thee? or thirsty, and gave thee drink? 25:38 -When saw we thee a stranger, and took thee in? or naked, and clothed -thee? 25:39 Or when saw we thee sick, or in prison, and came unto -thee? 25:40 And the King shall answer and say unto them, Verily I say -unto you, Inasmuch as ye have done it unto one of the least of these -my brethren, ye have done it unto me. - -25:41 Then shall he say also unto them on the left hand, Depart from -me, ye cursed, into everlasting fire, prepared for the devil and his -angels: 25:42 For I was an hungred, and ye gave me no meat: I was -thirsty, and ye gave me no drink: 25:43 I was a stranger, and ye took -me not in: naked, and ye clothed me not: sick, and in prison, and ye -visited me not. - -25:44 Then shall they also answer him, saying, Lord, when saw we thee -an hungred, or athirst, or a stranger, or naked, or sick, or in -prison, and did not minister unto thee? 25:45 Then shall he answer -them, saying, Verily I say unto you, Inasmuch as ye did it not to one -of the least of these, ye did it not to me. - -25:46 And these shall go away into everlasting punishment: but the -righteous into life eternal. - -26:1 And it came to pass, when Jesus had finished all these sayings, -he said unto his disciples, 26:2 Ye know that after two days is the -feast of the passover, and the Son of man is betrayed to be crucified. - -26:3 Then assembled together the chief priests, and the scribes, and -the elders of the people, unto the palace of the high priest, who was -called Caiaphas, 26:4 And consulted that they might take Jesus by -subtilty, and kill him. - -26:5 But they said, Not on the feast day, lest there be an uproar -among the people. - -26:6 Now when Jesus was in Bethany, in the house of Simon the leper, -26:7 There came unto him a woman having an alabaster box of very -precious ointment, and poured it on his head, as he sat at meat. - -26:8 But when his disciples saw it, they had indignation, saying, To -what purpose is this waste? 26:9 For this ointment might have been -sold for much, and given to the poor. - -26:10 When Jesus understood it, he said unto them, Why trouble ye the -woman? for she hath wrought a good work upon me. - -26:11 For ye have the poor always with you; but me ye have not always. - -26:12 For in that she hath poured this ointment on my body, she did it -for my burial. - -26:13 Verily I say unto you, Wheresoever this gospel shall be preached -in the whole world, there shall also this, that this woman hath done, -be told for a memorial of her. - -26:14 Then one of the twelve, called Judas Iscariot, went unto the -chief priests, 26:15 And said unto them, What will ye give me, and I -will deliver him unto you? And they covenanted with him for thirty -pieces of silver. - -26:16 And from that time he sought opportunity to betray him. - -26:17 Now the first day of the feast of unleavened bread the disciples -came to Jesus, saying unto him, Where wilt thou that we prepare for -thee to eat the passover? 26:18 And he said, Go into the city to such -a man, and say unto him, The Master saith, My time is at hand; I will -keep the passover at thy house with my disciples. - -26:19 And the disciples did as Jesus had appointed them; and they made -ready the passover. - -26:20 Now when the even was come, he sat down with the twelve. - -26:21 And as they did eat, he said, Verily I say unto you, that one of -you shall betray me. - -26:22 And they were exceeding sorrowful, and began every one of them -to say unto him, Lord, is it I? 26:23 And he answered and said, He -that dippeth his hand with me in the dish, the same shall betray me. - -26:24 The Son of man goeth as it is written of him: but woe unto that -man by whom the Son of man is betrayed! it had been good for that man -if he had not been born. - -26:25 Then Judas, which betrayed him, answered and said, Master, is it -I? He said unto him, Thou hast said. - -26:26 And as they were eating, Jesus took bread, and blessed it, and -brake it, and gave it to the disciples, and said, Take, eat; this is -my body. - -26:27 And he took the cup, and gave thanks, and gave it to them, -saying, Drink ye all of it; 26:28 For this is my blood of the new -testament, which is shed for many for the remission of sins. - -26:29 But I say unto you, I will not drink henceforth of this fruit of -the vine, until that day when I drink it new with you in my Father's -kingdom. - -26:30 And when they had sung an hymn, they went out into the mount of -Olives. - -26:31 Then saith Jesus unto them, All ye shall be offended because of -me this night: for it is written, I will smite the shepherd, and the -sheep of the flock shall be scattered abroad. - -26:32 But after I am risen again, I will go before you into Galilee. - -26:33 Peter answered and said unto him, Though all men shall be -offended because of thee, yet will I never be offended. - -26:34 Jesus said unto him, Verily I say unto thee, That this night, -before the cock crow, thou shalt deny me thrice. - -26:35 Peter said unto him, Though I should die with thee, yet will I -not deny thee. Likewise also said all the disciples. - -26:36 Then cometh Jesus with them unto a place called Gethsemane, and -saith unto the disciples, Sit ye here, while I go and pray yonder. - -26:37 And he took with him Peter and the two sons of Zebedee, and -began to be sorrowful and very heavy. - -26:38 Then saith he unto them, My soul is exceeding sorrowful, even -unto death: tarry ye here, and watch with me. - -26:39 And he went a little farther, and fell on his face, and prayed, -saying, O my Father, if it be possible, let this cup pass from me: -nevertheless not as I will, but as thou wilt. - -26:40 And he cometh unto the disciples, and findeth them asleep, and -saith unto Peter, What, could ye not watch with me one hour? 26:41 -Watch and pray, that ye enter not into temptation: the spirit indeed -is willing, but the flesh is weak. - -26:42 He went away again the second time, and prayed, saying, O my -Father, if this cup may not pass away from me, except I drink it, thy -will be done. - -26:43 And he came and found them asleep again: for their eyes were -heavy. - -26:44 And he left them, and went away again, and prayed the third -time, saying the same words. - -26:45 Then cometh he to his disciples, and saith unto them, Sleep on -now, and take your rest: behold, the hour is at hand, and the Son of -man is betrayed into the hands of sinners. - -26:46 Rise, let us be going: behold, he is at hand that doth betray -me. - -26:47 And while he yet spake, lo, Judas, one of the twelve, came, and -with him a great multitude with swords and staves, from the chief -priests and elders of the people. - -26:48 Now he that betrayed him gave them a sign, saying, Whomsoever I -shall kiss, that same is he: hold him fast. - -26:49 And forthwith he came to Jesus, and said, Hail, master; and -kissed him. - -26:50 And Jesus said unto him, Friend, wherefore art thou come? Then -came they, and laid hands on Jesus and took him. - -26:51 And, behold, one of them which were with Jesus stretched out his -hand, and drew his sword, and struck a servant of the high priest's, -and smote off his ear. - -26:52 Then said Jesus unto him, Put up again thy sword into his place: -for all they that take the sword shall perish with the sword. - -26:53 Thinkest thou that I cannot now pray to my Father, and he shall -presently give me more than twelve legions of angels? 26:54 But how -then shall the scriptures be fulfilled, that thus it must be? 26:55 -In that same hour said Jesus to the multitudes, Are ye come out as -against a thief with swords and staves for to take me? I sat daily -with you teaching in the temple, and ye laid no hold on me. - -26:56 But all this was done, that the scriptures of the prophets might -be fulfilled. Then all the disciples forsook him, and fled. - -26:57 And they that had laid hold on Jesus led him away to Caiaphas -the high priest, where the scribes and the elders were assembled. - -26:58 But Peter followed him afar off unto the high priest's palace, -and went in, and sat with the servants, to see the end. - -26:59 Now the chief priests, and elders, and all the council, sought -false witness against Jesus, to put him to death; 26:60 But found -none: yea, though many false witnesses came, yet found they none. At -the last came two false witnesses, 26:61 And said, This fellow said, I -am able to destroy the temple of God, and to build it in three days. - -26:62 And the high priest arose, and said unto him, Answerest thou -nothing? what is it which these witness against thee? 26:63 But Jesus -held his peace, And the high priest answered and said unto him, I -adjure thee by the living God, that thou tell us whether thou be the -Christ, the Son of God. - -26:64 Jesus saith unto him, Thou hast said: nevertheless I say unto -you, Hereafter shall ye see the Son of man sitting on the right hand -of power, and coming in the clouds of heaven. - -26:65 Then the high priest rent his clothes, saying, He hath spoken -blasphemy; what further need have we of witnesses? behold, now ye have -heard his blasphemy. - -26:66 What think ye? They answered and said, He is guilty of death. - -26:67 Then did they spit in his face, and buffeted him; and others -smote him with the palms of their hands, 26:68 Saying, Prophesy unto -us, thou Christ, Who is he that smote thee? 26:69 Now Peter sat -without in the palace: and a damsel came unto him, saying, Thou also -wast with Jesus of Galilee. - -26:70 But he denied before them all, saying, I know not what thou -sayest. - -26:71 And when he was gone out into the porch, another maid saw him, -and said unto them that were there, This fellow was also with Jesus of -Nazareth. - -26:72 And again he denied with an oath, I do not know the man. - -26:73 And after a while came unto him they that stood by, and said to -Peter, Surely thou also art one of them; for thy speech bewrayeth -thee. - -26:74 Then began he to curse and to swear, saying, I know not the man. -And immediately the cock crew. - -26:75 And Peter remembered the word of Jesus, which said unto him, -Before the cock crow, thou shalt deny me thrice. And he went out, and -wept bitterly. - -27:1 When the morning was come, all the chief priests and elders of -the people took counsel against Jesus to put him to death: 27:2 And -when they had bound him, they led him away, and delivered him to -Pontius Pilate the governor. - -27:3 Then Judas, which had betrayed him, when he saw that he was -condemned, repented himself, and brought again the thirty pieces of -silver to the chief priests and elders, 27:4 Saying, I have sinned in -that I have betrayed the innocent blood. And they said, What is that -to us? see thou to that. - -27:5 And he cast down the pieces of silver in the temple, and -departed, and went and hanged himself. - -27:6 And the chief priests took the silver pieces, and said, It is not -lawful for to put them into the treasury, because it is the price of -blood. - -27:7 And they took counsel, and bought with them the potter's field, -to bury strangers in. - -27:8 Wherefore that field was called, The field of blood, unto this -day. - -27:9 Then was fulfilled that which was spoken by Jeremy the prophet, -saying, And they took the thirty pieces of silver, the price of him -that was valued, whom they of the children of Israel did value; 27:10 -And gave them for the potter's field, as the Lord appointed me. - -27:11 And Jesus stood before the governor: and the governor asked him, -saying, Art thou the King of the Jews? And Jesus said unto him, Thou -sayest. - -27:12 And when he was accused of the chief priests and elders, he -answered nothing. - -27:13 Then said Pilate unto him, Hearest thou not how many things they -witness against thee? 27:14 And he answered him to never a word; -insomuch that the governor marvelled greatly. - -27:15 Now at that feast the governor was wont to release unto the -people a prisoner, whom they would. - -27:16 And they had then a notable prisoner, called Barabbas. - -27:17 Therefore when they were gathered together, Pilate said unto -them, Whom will ye that I release unto you? Barabbas, or Jesus which -is called Christ? 27:18 For he knew that for envy they had delivered -him. - -27:19 When he was set down on the judgment seat, his wife sent unto -him, saying, Have thou nothing to do with that just man: for I have -suffered many things this day in a dream because of him. - -27:20 But the chief priests and elders persuaded the multitude that -they should ask Barabbas, and destroy Jesus. - -27:21 The governor answered and said unto them, Whether of the twain -will ye that I release unto you? They said, Barabbas. - -27:22 Pilate saith unto them, What shall I do then with Jesus which is -called Christ? They all say unto him, Let him be crucified. - -27:23 And the governor said, Why, what evil hath he done? But they -cried out the more, saying, Let him be crucified. - -27:24 When Pilate saw that he could prevail nothing, but that rather a -tumult was made, he took water, and washed his hands before the -multitude, saying, I am innocent of the blood of this just person: see -ye to it. - -27:25 Then answered all the people, and said, His blood be on us, and -on our children. - -27:26 Then released he Barabbas unto them: and when he had scourged -Jesus, he delivered him to be crucified. - -27:27 Then the soldiers of the governor took Jesus into the common -hall, and gathered unto him the whole band of soldiers. - -27:28 And they stripped him, and put on him a scarlet robe. - -27:29 And when they had platted a crown of thorns, they put it upon -his head, and a reed in his right hand: and they bowed the knee before -him, and mocked him, saying, Hail, King of the Jews! 27:30 And they -spit upon him, and took the reed, and smote him on the head. - -27:31 And after that they had mocked him, they took the robe off from -him, and put his own raiment on him, and led him away to crucify him. - -27:32 And as they came out, they found a man of Cyrene, Simon by name: -him they compelled to bear his cross. - -27:33 And when they were come unto a place called Golgotha, that is to -say, a place of a skull, 27:34 They gave him vinegar to drink mingled -with gall: and when he had tasted thereof, he would not drink. - -27:35 And they crucified him, and parted his garments, casting lots: -that it might be fulfilled which was spoken by the prophet, They -parted my garments among them, and upon my vesture did they cast lots. - -27:36 And sitting down they watched him there; 27:37 And set up over -his head his accusation written, THIS IS JESUS THE KING OF THE JEWS. - -27:38 Then were there two thieves crucified with him, one on the right -hand, and another on the left. - -27:39 And they that passed by reviled him, wagging their heads, 27:40 -And saying, Thou that destroyest the temple, and buildest it in three -days, save thyself. If thou be the Son of God, come down from the -cross. - -27:41 Likewise also the chief priests mocking him, with the scribes -and elders, said, 27:42 He saved others; himself he cannot save. If he -be the King of Israel, let him now come down from the cross, and we -will believe him. - -27:43 He trusted in God; let him deliver him now, if he will have him: -for he said, I am the Son of God. - -27:44 The thieves also, which were crucified with him, cast the same -in his teeth. - -27:45 Now from the sixth hour there was darkness over all the land -unto the ninth hour. - -27:46 And about the ninth hour Jesus cried with a loud voice, saying, -Eli, Eli, lama sabachthani? that is to say, My God, my God, why hast -thou forsaken me? 27:47 Some of them that stood there, when they -heard that, said, This man calleth for Elias. - -27:48 And straightway one of them ran, and took a spunge, and filled -it with vinegar, and put it on a reed, and gave him to drink. - -27:49 The rest said, Let be, let us see whether Elias will come to -save him. - -27:50 Jesus, when he had cried again with a loud voice, yielded up the -ghost. - -27:51 And, behold, the veil of the temple was rent in twain from the -top to the bottom; and the earth did quake, and the rocks rent; 27:52 -And the graves were opened; and many bodies of the saints which slept -arose, 27:53 And came out of the graves after his resurrection, and -went into the holy city, and appeared unto many. - -27:54 Now when the centurion, and they that were with him, watching -Jesus, saw the earthquake, and those things that were done, they -feared greatly, saying, Truly this was the Son of God. - -27:55 And many women were there beholding afar off, which followed -Jesus from Galilee, ministering unto him: 27:56 Among which was Mary -Magdalene, and Mary the mother of James and Joses, and the mother of -Zebedees children. - -27:57 When the even was come, there came a rich man of Arimathaea, -named Joseph, who also himself was Jesus' disciple: 27:58 He went to -Pilate, and begged the body of Jesus. Then Pilate commanded the body -to be delivered. - -27:59 And when Joseph had taken the body, he wrapped it in a clean -linen cloth, 27:60 And laid it in his own new tomb, which he had hewn -out in the rock: and he rolled a great stone to the door of the -sepulchre, and departed. - -27:61 And there was Mary Magdalene, and the other Mary, sitting over -against the sepulchre. - -27:62 Now the next day, that followed the day of the preparation, the -chief priests and Pharisees came together unto Pilate, 27:63 Saying, -Sir, we remember that that deceiver said, while he was yet alive, -After three days I will rise again. - -27:64 Command therefore that the sepulchre be made sure until the -third day, lest his disciples come by night, and steal him away, and -say unto the people, He is risen from the dead: so the last error -shall be worse than the first. - -27:65 Pilate said unto them, Ye have a watch: go your way, make it as -sure as ye can. - -27:66 So they went, and made the sepulchre sure, sealing the stone, -and setting a watch. - -28:1 In the end of the sabbath, as it began to dawn toward the first -day of the week, came Mary Magdalene and the other Mary to see the -sepulchre. - -28:2 And, behold, there was a great earthquake: for the angel of the -Lord descended from heaven, and came and rolled back the stone from -the door, and sat upon it. - -28:3 His countenance was like lightning, and his raiment white as -snow: 28:4 And for fear of him the keepers did shake, and became as -dead men. - -28:5 And the angel answered and said unto the women, Fear not ye: for -I know that ye seek Jesus, which was crucified. - -28:6 He is not here: for he is risen, as he said. Come, see the place -where the Lord lay. - -28:7 And go quickly, and tell his disciples that he is risen from the -dead; and, behold, he goeth before you into Galilee; there shall ye -see him: lo, I have told you. - -28:8 And they departed quickly from the sepulchre with fear and great -joy; and did run to bring his disciples word. - -28:9 And as they went to tell his disciples, behold, Jesus met them, -saying, All hail. And they came and held him by the feet, and -worshipped him. - -28:10 Then said Jesus unto them, Be not afraid: go tell my brethren -that they go into Galilee, and there shall they see me. - -28:11 Now when they were going, behold, some of the watch came into -the city, and shewed unto the chief priests all the things that were -done. - -28:12 And when they were assembled with the elders, and had taken -counsel, they gave large money unto the soldiers, 28:13 Saying, Say -ye, His disciples came by night, and stole him away while we slept. - -28:14 And if this come to the governor's ears, we will persuade him, -and secure you. - -28:15 So they took the money, and did as they were taught: and this -saying is commonly reported among the Jews until this day. - -28:16 Then the eleven disciples went away into Galilee, into a -mountain where Jesus had appointed them. - -28:17 And when they saw him, they worshipped him: but some doubted. - -28:18 And Jesus came and spake unto them, saying, All power is given -unto me in heaven and in earth. - -28:19 Go ye therefore, and teach all nations, baptizing them in the -name of the Father, and of the Son, and of the Holy Ghost: 28:20 -Teaching them to observe all things whatsoever I have commanded you: -and, lo, I am with you alway, even unto the end of the world. Amen. - - - - -The Gospel According to Saint Mark - - -1:1 The beginning of the gospel of Jesus Christ, the Son of God; 1:2 -As it is written in the prophets, Behold, I send my messenger before -thy face, which shall prepare thy way before thee. - -1:3 The voice of one crying in the wilderness, Prepare ye the way of -the Lord, make his paths straight. - -1:4 John did baptize in the wilderness, and preach the baptism of -repentance for the remission of sins. - -1:5 And there went out unto him all the land of Judaea, and they of -Jerusalem, and were all baptized of him in the river of Jordan, -confessing their sins. - -1:6 And John was clothed with camel's hair, and with a girdle of a -skin about his loins; and he did eat locusts and wild honey; 1:7 And -preached, saying, There cometh one mightier than I after me, the -latchet of whose shoes I am not worthy to stoop down and unloose. - -1:8 I indeed have baptized you with water: but he shall baptize you -with the Holy Ghost. - -1:9 And it came to pass in those days, that Jesus came from Nazareth -of Galilee, and was baptized of John in Jordan. - -1:10 And straightway coming up out of the water, he saw the heavens -opened, and the Spirit like a dove descending upon him: 1:11 And there -came a voice from heaven, saying, Thou art my beloved Son, in whom I -am well pleased. - -1:12 And immediately the spirit driveth him into the wilderness. - -1:13 And he was there in the wilderness forty days, tempted of Satan; -and was with the wild beasts; and the angels ministered unto him. - -1:14 Now after that John was put in prison, Jesus came into Galilee, -preaching the gospel of the kingdom of God, 1:15 And saying, The time -is fulfilled, and the kingdom of God is at hand: repent ye, and -believe the gospel. - -1:16 Now as he walked by the sea of Galilee, he saw Simon and Andrew -his brother casting a net into the sea: for they were fishers. - -1:17 And Jesus said unto them, Come ye after me, and I will make you -to become fishers of men. - -1:18 And straightway they forsook their nets, and followed him. - -1:19 And when he had gone a little farther thence, he saw James the -son of Zebedee, and John his brother, who also were in the ship -mending their nets. - -1:20 And straightway he called them: and they left their father -Zebedee in the ship with the hired servants, and went after him. - -1:21 And they went into Capernaum; and straightway on the sabbath day -he entered into the synagogue, and taught. - -1:22 And they were astonished at his doctrine: for he taught them as -one that had authority, and not as the scribes. - -1:23 And there was in their synagogue a man with an unclean spirit; -and he cried out, 1:24 Saying, Let us alone; what have we to do with -thee, thou Jesus of Nazareth? art thou come to destroy us? I know thee -who thou art, the Holy One of God. - -1:25 And Jesus rebuked him, saying, Hold thy peace, and come out of -him. - -1:26 And when the unclean spirit had torn him, and cried with a loud -voice, he came out of him. - -1:27 And they were all amazed, insomuch that they questioned among -themselves, saying, What thing is this? what new doctrine is this? for -with authority commandeth he even the unclean spirits, and they do -obey him. - -1:28 And immediately his fame spread abroad throughout all the region -round about Galilee. - -1:29 And forthwith, when they were come out of the synagogue, they -entered into the house of Simon and Andrew, with James and John. - -1:30 But Simon's wife's mother lay sick of a fever, and anon they tell -him of her. - -1:31 And he came and took her by the hand, and lifted her up; and -immediately the fever left her, and she ministered unto them. - -1:32 And at even, when the sun did set, they brought unto him all that -were diseased, and them that were possessed with devils. - -1:33 And all the city was gathered together at the door. - -1:34 And he healed many that were sick of divers diseases, and cast -out many devils; and suffered not the devils to speak, because they -knew him. - -1:35 And in the morning, rising up a great while before day, he went -out, and departed into a solitary place, and there prayed. - -1:36 And Simon and they that were with him followed after him. - -1:37 And when they had found him, they said unto him, All men seek for -thee. - -1:38 And he said unto them, Let us go into the next towns, that I may -preach there also: for therefore came I forth. - -1:39 And he preached in their synagogues throughout all Galilee, and -cast out devils. - -1:40 And there came a leper to him, beseeching him, and kneeling down -to him, and saying unto him, If thou wilt, thou canst make me clean. - -1:41 And Jesus, moved with compassion, put forth his hand, and touched -him, and saith unto him, I will; be thou clean. - -1:42 And as soon as he had spoken, immediately the leprosy departed -from him, and he was cleansed. - -1:43 And he straitly charged him, and forthwith sent him away; 1:44 -And saith unto him, See thou say nothing to any man: but go thy way, -shew thyself to the priest, and offer for thy cleansing those things -which Moses commanded, for a testimony unto them. - -1:45 But he went out, and began to publish it much, and to blaze -abroad the matter, insomuch that Jesus could no more openly enter into -the city, but was without in desert places: and they came to him from -every quarter. - -2:1 And again he entered into Capernaum after some days; and it was -noised that he was in the house. - -2:2 And straightway many were gathered together, insomuch that there -was no room to receive them, no, not so much as about the door: and he -preached the word unto them. - -2:3 And they come unto him, bringing one sick of the palsy, which was -borne of four. - -2:4 And when they could not come nigh unto him for the press, they -uncovered the roof where he was: and when they had broken it up, they -let down the bed wherein the sick of the palsy lay. - -2:5 When Jesus saw their faith, he said unto the sick of the palsy, -Son, thy sins be forgiven thee. - -2:6 But there was certain of the scribes sitting there, and reasoning -in their hearts, 2:7 Why doth this man thus speak blasphemies? who can -forgive sins but God only? 2:8 And immediately when Jesus perceived -in his spirit that they so reasoned within themselves, he said unto -them, Why reason ye these things in your hearts? 2:9 Whether is it -easier to say to the sick of the palsy, Thy sins be forgiven thee; or -to say, Arise, and take up thy bed, and walk? 2:10 But that ye may -know that the Son of man hath power on earth to forgive sins, (he -saith to the sick of the palsy,) 2:11 I say unto thee, Arise, and take -up thy bed, and go thy way into thine house. - -2:12 And immediately he arose, took up the bed, and went forth before -them all; insomuch that they were all amazed, and glorified God, -saying, We never saw it on this fashion. - -2:13 And he went forth again by the sea side; and all the multitude -resorted unto him, and he taught them. - -2:14 And as he passed by, he saw Levi the son of Alphaeus sitting at -the receipt of custom, and said unto him, Follow me. And he arose and -followed him. - -2:15 And it came to pass, that, as Jesus sat at meat in his house, -many publicans and sinners sat also together with Jesus and his -disciples: for there were many, and they followed him. - -2:16 And when the scribes and Pharisees saw him eat with publicans and -sinners, they said unto his disciples, How is it that he eateth and -drinketh with publicans and sinners? 2:17 When Jesus heard it, he -saith unto them, They that are whole have no need of the physician, -but they that are sick: I came not to call the righteous, but sinners -to repentance. - -2:18 And the disciples of John and of the Pharisees used to fast: and -they come and say unto him, Why do the disciples of John and of the -Pharisees fast, but thy disciples fast not? 2:19 And Jesus said unto -them, Can the children of the bridechamber fast, while the bridegroom -is with them? as long as they have the bridegroom with them, they -cannot fast. - -2:20 But the days will come, when the bridegroom shall be taken away -from them, and then shall they fast in those days. - -2:21 No man also seweth a piece of new cloth on an old garment: else -the new piece that filled it up taketh away from the old, and the rent -is made worse. - -2:22 And no man putteth new wine into old bottles: else the new wine -doth burst the bottles, and the wine is spilled, and the bottles will -be marred: but new wine must be put into new bottles. - -2:23 And it came to pass, that he went through the corn fields on the -sabbath day; and his disciples began, as they went, to pluck the ears -of corn. - -2:24 And the Pharisees said unto him, Behold, why do they on the -sabbath day that which is not lawful? 2:25 And he said unto them, -Have ye never read what David did, when he had need, and was an -hungred, he, and they that were with him? 2:26 How he went into the -house of God in the days of Abiathar the high priest, and did eat the -shewbread, which is not lawful to eat but for the priests, and gave -also to them which were with him? 2:27 And he said unto them, The -sabbath was made for man, and not man for the sabbath: 2:28 Therefore -the Son of man is Lord also of the sabbath. - -3:1 And he entered again into the synagogue; and there was a man there -which had a withered hand. - -3:2 And they watched him, whether he would heal him on the sabbath -day; that they might accuse him. - -3:3 And he saith unto the man which had the withered hand, Stand -forth. - -3:4 And he saith unto them, Is it lawful to do good on the sabbath -days, or to do evil? to save life, or to kill? But they held their -peace. - -3:5 And when he had looked round about on them with anger, being -grieved for the hardness of their hearts, he saith unto the man, -Stretch forth thine hand. And he stretched it out: and his hand was -restored whole as the other. - -3:6 And the Pharisees went forth, and straightway took counsel with -the Herodians against him, how they might destroy him. - -3:7 But Jesus withdrew himself with his disciples to the sea: and a -great multitude from Galilee followed him, and from Judaea, 3:8 And -from Jerusalem, and from Idumaea, and from beyond Jordan; and they -about Tyre and Sidon, a great multitude, when they had heard what -great things he did, came unto him. - -3:9 And he spake to his disciples, that a small ship should wait on -him because of the multitude, lest they should throng him. - -3:10 For he had healed many; insomuch that they pressed upon him for -to touch him, as many as had plagues. - -3:11 And unclean spirits, when they saw him, fell down before him, and -cried, saying, Thou art the Son of God. - -3:12 And he straitly charged them that they should not make him known. - -3:13 And he goeth up into a mountain, and calleth unto him whom he -would: and they came unto him. - -3:14 And he ordained twelve, that they should be with him, and that he -might send them forth to preach, 3:15 And to have power to heal -sicknesses, and to cast out devils: 3:16 And Simon he surnamed Peter; -3:17 And James the son of Zebedee, and John the brother of James; and -he surnamed them Boanerges, which is, The sons of thunder: 3:18 And -Andrew, and Philip, and Bartholomew, and Matthew, and Thomas, and -James the son of Alphaeus, and Thaddaeus, and Simon the Canaanite, -3:19 And Judas Iscariot, which also betrayed him: and they went into -an house. - -3:20 And the multitude cometh together again, so that they could not -so much as eat bread. - -3:21 And when his friends heard of it, they went out to lay hold on -him: for they said, He is beside himself. - -3:22 And the scribes which came down from Jerusalem said, He hath -Beelzebub, and by the prince of the devils casteth he out devils. - -3:23 And he called them unto him, and said unto them in parables, How -can Satan cast out Satan? 3:24 And if a kingdom be divided against -itself, that kingdom cannot stand. - -3:25 And if a house be divided against itself, that house cannot -stand. - -3:26 And if Satan rise up against himself, and be divided, he cannot -stand, but hath an end. - -3:27 No man can enter into a strong man's house, and spoil his goods, -except he will first bind the strong man; and then he will spoil his -house. - -3:28 Verily I say unto you, All sins shall be forgiven unto the sons -of men, and blasphemies wherewith soever they shall blaspheme: 3:29 -But he that shall blaspheme against the Holy Ghost hath never -forgiveness, but is in danger of eternal damnation. - -3:30 Because they said, He hath an unclean spirit. - -3:31 There came then his brethren and his mother, and, standing -without, sent unto him, calling him. - -3:32 And the multitude sat about him, and they said unto him, Behold, -thy mother and thy brethren without seek for thee. - -3:33 And he answered them, saying, Who is my mother, or my brethren? -3:34 And he looked round about on them which sat about him, and said, -Behold my mother and my brethren! 3:35 For whosoever shall do the -will of God, the same is my brother, and my sister, and mother. - -4:1 And he began again to teach by the sea side: and there was -gathered unto him a great multitude, so that he entered into a ship, -and sat in the sea; and the whole multitude was by the sea on the -land. - -4:2 And he taught them many things by parables, and said unto them in -his doctrine, 4:3 Hearken; Behold, there went out a sower to sow: 4:4 -And it came to pass, as he sowed, some fell by the way side, and the -fowls of the air came and devoured it up. - -4:5 And some fell on stony ground, where it had not much earth; and -immediately it sprang up, because it had no depth of earth: 4:6 But -when the sun was up, it was scorched; and because it had no root, it -withered away. - -4:7 And some fell among thorns, and the thorns grew up, and choked it, -and it yielded no fruit. - -4:8 And other fell on good ground, and did yield fruit that sprang up -and increased; and brought forth, some thirty, and some sixty, and -some an hundred. - -4:9 And he said unto them, He that hath ears to hear, let him hear. - -4:10 And when he was alone, they that were about him with the twelve -asked of him the parable. - -4:11 And he said unto them, Unto you it is given to know the mystery -of the kingdom of God: but unto them that are without, all these -things are done in parables: 4:12 That seeing they may see, and not -perceive; and hearing they may hear, and not understand; lest at any -time they should be converted, and their sins should be forgiven them. - -4:13 And he said unto them, Know ye not this parable? and how then -will ye know all parables? 4:14 The sower soweth the word. - -4:15 And these are they by the way side, where the word is sown; but -when they have heard, Satan cometh immediately, and taketh away the -word that was sown in their hearts. - -4:16 And these are they likewise which are sown on stony ground; who, -when they have heard the word, immediately receive it with gladness; -4:17 And have no root in themselves, and so endure but for a time: -afterward, when affliction or persecution ariseth for the word's sake, -immediately they are offended. - -4:18 And these are they which are sown among thorns; such as hear the -word, 4:19 And the cares of this world, and the deceitfulness of -riches, and the lusts of other things entering in, choke the word, and -it becometh unfruitful. - -4:20 And these are they which are sown on good ground; such as hear -the word, and receive it, and bring forth fruit, some thirtyfold, some -sixty, and some an hundred. - -4:21 And he said unto them, Is a candle brought to be put under a -bushel, or under a bed? and not to be set on a candlestick? 4:22 For -there is nothing hid, which shall not be manifested; neither was any -thing kept secret, but that it should come abroad. - -4:23 If any man have ears to hear, let him hear. - -4:24 And he said unto them, Take heed what ye hear: with what measure -ye mete, it shall be measured to you: and unto you that hear shall -more be given. - -4:25 For he that hath, to him shall be given: and he that hath not, -from him shall be taken even that which he hath. - -4:26 And he said, So is the kingdom of God, as if a man should cast -seed into the ground; 4:27 And should sleep, and rise night and day, -and the seed should spring and grow up, he knoweth not how. - -4:28 For the earth bringeth forth fruit of herself; first the blade, -then the ear, after that the full corn in the ear. - -4:29 But when the fruit is brought forth, immediately he putteth in -the sickle, because the harvest is come. - -4:30 And he said, Whereunto shall we liken the kingdom of God? or with -what comparison shall we compare it? 4:31 It is like a grain of -mustard seed, which, when it is sown in the earth, is less than all -the seeds that be in the earth: 4:32 But when it is sown, it groweth -up, and becometh greater than all herbs, and shooteth out great -branches; so that the fowls of the air may lodge under the shadow of -it. - -4:33 And with many such parables spake he the word unto them, as they -were able to hear it. - -4:34 But without a parable spake he not unto them: and when they were -alone, he expounded all things to his disciples. - -4:35 And the same day, when the even was come, he saith unto them, Let -us pass over unto the other side. - -4:36 And when they had sent away the multitude, they took him even as -he was in the ship. And there were also with him other little ships. - -4:37 And there arose a great storm of wind, and the waves beat into -the ship, so that it was now full. - -4:38 And he was in the hinder part of the ship, asleep on a pillow: -and they awake him, and say unto him, Master, carest thou not that we -perish? 4:39 And he arose, and rebuked the wind, and said unto the -sea, Peace, be still. And the wind ceased, and there was a great calm. - -4:40 And he said unto them, Why are ye so fearful? how is it that ye -have no faith? 4:41 And they feared exceedingly, and said one to -another, What manner of man is this, that even the wind and the sea -obey him? 5:1 And they came over unto the other side of the sea, into -the country of the Gadarenes. - -5:2 And when he was come out of the ship, immediately there met him -out of the tombs a man with an unclean spirit, 5:3 Who had his -dwelling among the tombs; and no man could bind him, no, not with -chains: 5:4 Because that he had been often bound with fetters and -chains, and the chains had been plucked asunder by him, and the -fetters broken in pieces: neither could any man tame him. - -5:5 And always, night and day, he was in the mountains, and in the -tombs, crying, and cutting himself with stones. - -5:6 But when he saw Jesus afar off, he ran and worshipped him, 5:7 And -cried with a loud voice, and said, What have I to do with thee, Jesus, -thou Son of the most high God? I adjure thee by God, that thou torment -me not. - -5:8 For he said unto him, Come out of the man, thou unclean spirit. - -5:9 And he asked him, What is thy name? And he answered, saying, My -name is Legion: for we are many. - -5:10 And he besought him much that he would not send them away out of -the country. - -5:11 Now there was there nigh unto the mountains a great herd of swine -feeding. - -5:12 And all the devils besought him, saying, Send us into the swine, -that we may enter into them. - -5:13 And forthwith Jesus gave them leave. And the unclean spirits went -out, and entered into the swine: and the herd ran violently down a -steep place into the sea, (they were about two thousand;) and were -choked in the sea. - -5:14 And they that fed the swine fled, and told it in the city, and in -the country. And they went out to see what it was that was done. - -5:15 And they come to Jesus, and see him that was possessed with the -devil, and had the legion, sitting, and clothed, and in his right -mind: and they were afraid. - -5:16 And they that saw it told them how it befell to him that was -possessed with the devil, and also concerning the swine. - -5:17 And they began to pray him to depart out of their coasts. - -5:18 And when he was come into the ship, he that had been possessed -with the devil prayed him that he might be with him. - -5:19 Howbeit Jesus suffered him not, but saith unto him, Go home to -thy friends, and tell them how great things the Lord hath done for -thee, and hath had compassion on thee. - -5:20 And he departed, and began to publish in Decapolis how great -things Jesus had done for him: and all men did marvel. - -5:21 And when Jesus was passed over again by ship unto the other side, -much people gathered unto him: and he was nigh unto the sea. - -5:22 And, behold, there cometh one of the rulers of the synagogue, -Jairus by name; and when he saw him, he fell at his feet, 5:23 And -besought him greatly, saying, My little daughter lieth at the point of -death: I pray thee, come and lay thy hands on her, that she may be -healed; and she shall live. - -5:24 And Jesus went with him; and much people followed him, and -thronged him. - -5:25 And a certain woman, which had an issue of blood twelve years, -5:26 And had suffered many things of many physicians, and had spent -all that she had, and was nothing bettered, but rather grew worse, -5:27 When she had heard of Jesus, came in the press behind, and -touched his garment. - -5:28 For she said, If I may touch but his clothes, I shall be whole. - -5:29 And straightway the fountain of her blood was dried up; and she -felt in her body that she was healed of that plague. - -5:30 And Jesus, immediately knowing in himself that virtue had gone -out of him, turned him about in the press, and said, Who touched my -clothes? 5:31 And his disciples said unto him, Thou seest the -multitude thronging thee, and sayest thou, Who touched me? 5:32 And -he looked round about to see her that had done this thing. - -5:33 But the woman fearing and trembling, knowing what was done in -her, came and fell down before him, and told him all the truth. - -5:34 And he said unto her, Daughter, thy faith hath made thee whole; -go in peace, and be whole of thy plague. - -5:35 While he yet spake, there came from the ruler of the synagogue's -house certain which said, Thy daughter is dead: why troublest thou the -Master any further? 5:36 As soon as Jesus heard the word that was -spoken, he saith unto the ruler of the synagogue, Be not afraid, only -believe. - -5:37 And he suffered no man to follow him, save Peter, and James, and -John the brother of James. - -5:38 And he cometh to the house of the ruler of the synagogue, and -seeth the tumult, and them that wept and wailed greatly. - -5:39 And when he was come in, he saith unto them, Why make ye this -ado, and weep? the damsel is not dead, but sleepeth. - -5:40 And they laughed him to scorn. But when he had put them all out, -he taketh the father and the mother of the damsel, and them that were -with him, and entereth in where the damsel was lying. - -5:41 And he took the damsel by the hand, and said unto her, Talitha -cumi; which is, being interpreted, Damsel, I say unto thee, arise. - -5:42 And straightway the damsel arose, and walked; for she was of the -age of twelve years. And they were astonished with a great -astonishment. - -5:43 And he charged them straitly that no man should know it; and -commanded that something should be given her to eat. - -6:1 And he went out from thence, and came into his own country; and -his disciples follow him. - -6:2 And when the sabbath day was come, he began to teach in the -synagogue: and many hearing him were astonished, saying, From whence -hath this man these things? and what wisdom is this which is given -unto him, that even such mighty works are wrought by his hands? 6:3 -Is not this the carpenter, the son of Mary, the brother of James, and -Joses, and of Juda, and Simon? and are not his sisters here with us? -And they were offended at him. - -6:4 But Jesus, said unto them, A prophet is not without honour, but in -his own country, and among his own kin, and in his own house. - -6:5 And he could there do no mighty work, save that he laid his hands -upon a few sick folk, and healed them. - -6:6 And he marvelled because of their unbelief. And he went round -about the villages, teaching. - -6:7 And he called unto him the twelve, and began to send them forth by -two and two; and gave them power over unclean spirits; 6:8 And -commanded them that they should take nothing for their journey, save a -staff only; no scrip, no bread, no money in their purse: 6:9 But be -shod with sandals; and not put on two coats. - -6:10 And he said unto them, In what place soever ye enter into an -house, there abide till ye depart from that place. - -6:11 And whosoever shall not receive you, nor hear you, when ye depart -thence, shake off the dust under your feet for a testimony against -them. - -Verily I say unto you, It shall be more tolerable for Sodom and -Gomorrha in the day of judgment, than for that city. - -6:12 And they went out, and preached that men should repent. - -6:13 And they cast out many devils, and anointed with oil many that -were sick, and healed them. - -6:14 And king Herod heard of him; (for his name was spread abroad:) -and he said, That John the Baptist was risen from the dead, and -therefore mighty works do shew forth themselves in him. - -6:15 Others said, That it is Elias. And others said, That it is a -prophet, or as one of the prophets. - -6:16 But when Herod heard thereof, he said, It is John, whom I -beheaded: he is risen from the dead. - -6:17 For Herod himself had sent forth and laid hold upon John, and -bound him in prison for Herodias' sake, his brother Philip's wife: for -he had married her. - -6:18 For John had said unto Herod, It is not lawful for thee to have -thy brother's wife. - -6:19 Therefore Herodias had a quarrel against him, and would have -killed him; but she could not: 6:20 For Herod feared John, knowing -that he was a just man and an holy, and observed him; and when he -heard him, he did many things, and heard him gladly. - -6:21 And when a convenient day was come, that Herod on his birthday -made a supper to his lords, high captains, and chief estates of -Galilee; 6:22 And when the daughter of the said Herodias came in, and -danced, and pleased Herod and them that sat with him, the king said -unto the damsel, Ask of me whatsoever thou wilt, and I will give it -thee. - -6:23 And he sware unto her, Whatsoever thou shalt ask of me, I will -give it thee, unto the half of my kingdom. - -6:24 And she went forth, and said unto her mother, What shall I ask? -And she said, The head of John the Baptist. - -6:25 And she came in straightway with haste unto the king, and asked, -saying, I will that thou give me by and by in a charger the head of -John the Baptist. - -6:26 And the king was exceeding sorry; yet for his oath's sake, and -for their sakes which sat with him, he would not reject her. - -6:27 And immediately the king sent an executioner, and commanded his -head to be brought: and he went and beheaded him in the prison, 6:28 -And brought his head in a charger, and gave it to the damsel: and the -damsel gave it to her mother. - -6:29 And when his disciples heard of it, they came and took up his -corpse, and laid it in a tomb. - -6:30 And the apostles gathered themselves together unto Jesus, and -told him all things, both what they had done, and what they had -taught. - -6:31 And he said unto them, Come ye yourselves apart into a desert -place, and rest a while: for there were many coming and going, and -they had no leisure so much as to eat. - -6:32 And they departed into a desert place by ship privately. - -6:33 And the people saw them departing, and many knew him, and ran -afoot thither out of all cities, and outwent them, and came together -unto him. - -6:34 And Jesus, when he came out, saw much people, and was moved with -compassion toward them, because they were as sheep not having a -shepherd: and he began to teach them many things. - -6:35 And when the day was now far spent, his disciples came unto him, -and said, This is a desert place, and now the time is far passed: 6:36 -Send them away, that they may go into the country round about, and -into the villages, and buy themselves bread: for they have nothing to -eat. - -6:37 He answered and said unto them, Give ye them to eat. And they say -unto him, Shall we go and buy two hundred pennyworth of bread, and -give them to eat? 6:38 He saith unto them, How many loaves have ye? -go and see. And when they knew, they say, Five, and two fishes. - -6:39 And he commanded them to make all sit down by companies upon the -green grass. - -6:40 And they sat down in ranks, by hundreds, and by fifties. - -6:41 And when he had taken the five loaves and the two fishes, he -looked up to heaven, and blessed, and brake the loaves, and gave them -to his disciples to set before them; and the two fishes divided he -among them all. - -6:42 And they did all eat, and were filled. - -6:43 And they took up twelve baskets full of the fragments, and of the -fishes. - -6:44 And they that did eat of the loaves were about five thousand men. - -6:45 And straightway he constrained his disciples to get into the -ship, and to go to the other side before unto Bethsaida, while he sent -away the people. - -6:46 And when he had sent them away, he departed into a mountain to -pray. - -6:47 And when even was come, the ship was in the midst of the sea, and -he alone on the land. - -6:48 And he saw them toiling in rowing; for the wind was contrary unto -them: and about the fourth watch of the night he cometh unto them, -walking upon the sea, and would have passed by them. - -6:49 But when they saw him walking upon the sea, they supposed it had -been a spirit, and cried out: 6:50 For they all saw him, and were -troubled. And immediately he talked with them, and saith unto them, Be -of good cheer: it is I; be not afraid. - -6:51 And he went up unto them into the ship; and the wind ceased: and -they were sore amazed in themselves beyond measure, and wondered. - -6:52 For they considered not the miracle of the loaves: for their -heart was hardened. - -6:53 And when they had passed over, they came into the land of -Gennesaret, and drew to the shore. - -6:54 And when they were come out of the ship, straightway they knew -him, 6:55 And ran through that whole region round about, and began to -carry about in beds those that were sick, where they heard he was. - -6:56 And whithersoever he entered, into villages, or cities, or -country, they laid the sick in the streets, and besought him that they -might touch if it were but the border of his garment: and as many as -touched him were made whole. - -7:1 Then came together unto him the Pharisees, and certain of the -scribes, which came from Jerusalem. - -7:2 And when they saw some of his disciples eat bread with defiled, -that is to say, with unwashen, hands, they found fault. - -7:3 For the Pharisees, and all the Jews, except they wash their hands -oft, eat not, holding the tradition of the elders. - -7:4 And when they come from the market, except they wash, they eat -not. - -And many other things there be, which they have received to hold, as -the washing of cups, and pots, brasen vessels, and of tables. - -7:5 Then the Pharisees and scribes asked him, Why walk not thy -disciples according to the tradition of the elders, but eat bread with -unwashen hands? 7:6 He answered and said unto them, Well hath Esaias -prophesied of you hypocrites, as it is written, This people honoureth -me with their lips, but their heart is far from me. - -7:7 Howbeit in vain do they worship me, teaching for doctrines the -commandments of men. - -7:8 For laying aside the commandment of God, ye hold the tradition of -men, as the washing of pots and cups: and many other such like things -ye do. - -7:9 And he said unto them, Full well ye reject the commandment of God, -that ye may keep your own tradition. - -7:10 For Moses said, Honour thy father and thy mother; and, Whoso -curseth father or mother, let him die the death: 7:11 But ye say, If a -man shall say to his father or mother, It is Corban, that is to say, a -gift, by whatsoever thou mightest be profited by me; he shall be free. - -7:12 And ye suffer him no more to do ought for his father or his -mother; 7:13 Making the word of God of none effect through your -tradition, which ye have delivered: and many such like things do ye. - -7:14 And when he had called all the people unto him, he said unto -them, Hearken unto me every one of you, and understand: 7:15 There is -nothing from without a man, that entering into him can defile him: but -the things which come out of him, those are they that defile the man. - -7:16 If any man have ears to hear, let him hear. - -7:17 And when he was entered into the house from the people, his -disciples asked him concerning the parable. - -7:18 And he saith unto them, Are ye so without understanding also? Do -ye not perceive, that whatsoever thing from without entereth into the -man, it cannot defile him; 7:19 Because it entereth not into his -heart, but into the belly, and goeth out into the draught, purging all -meats? 7:20 And he said, That which cometh out of the man, that -defileth the man. - -7:21 For from within, out of the heart of men, proceed evil thoughts, -adulteries, fornications, murders, 7:22 Thefts, covetousness, -wickedness, deceit, lasciviousness, an evil eye, blasphemy, pride, -foolishness: 7:23 All these evil things come from within, and defile -the man. - -7:24 And from thence he arose, and went into the borders of Tyre and -Sidon, and entered into an house, and would have no man know it: but -he could not be hid. - -7:25 For a certain woman, whose young daughter had an unclean spirit, -heard of him, and came and fell at his feet: 7:26 The woman was a -Greek, a Syrophenician by nation; and she besought him that he would -cast forth the devil out of her daughter. - -7:27 But Jesus said unto her, Let the children first be filled: for it -is not meet to take the children's bread, and to cast it unto the -dogs. - -7:28 And she answered and said unto him, Yes, Lord: yet the dogs under -the table eat of the children's crumbs. - -7:29 And he said unto her, For this saying go thy way; the devil is -gone out of thy daughter. - -7:30 And when she was come to her house, she found the devil gone out, -and her daughter laid upon the bed. - -7:31 And again, departing from the coasts of Tyre and Sidon, he came -unto the sea of Galilee, through the midst of the coasts of Decapolis. - -7:32 And they bring unto him one that was deaf, and had an impediment -in his speech; and they beseech him to put his hand upon him. - -7:33 And he took him aside from the multitude, and put his fingers -into his ears, and he spit, and touched his tongue; 7:34 And looking -up to heaven, he sighed, and saith unto him, Ephphatha, that is, Be -opened. - -7:35 And straightway his ears were opened, and the string of his -tongue was loosed, and he spake plain. - -7:36 And he charged them that they should tell no man: but the more he -charged them, so much the more a great deal they published it; 7:37 -And were beyond measure astonished, saying, He hath done all things -well: he maketh both the deaf to hear, and the dumb to speak. - -8:1 In those days the multitude being very great, and having nothing -to eat, Jesus called his disciples unto him, and saith unto them, 8:2 -I have compassion on the multitude, because they have now been with me -three days, and have nothing to eat: 8:3 And if I send them away -fasting to their own houses, they will faint by the way: for divers of -them came from far. - -8:4 And his disciples answered him, From whence can a man satisfy -these men with bread here in the wilderness? 8:5 And he asked them, -How many loaves have ye? And they said, Seven. - -8:6 And he commanded the people to sit down on the ground: and he took -the seven loaves, and gave thanks, and brake, and gave to his -disciples to set before them; and they did set them before the people. - -8:7 And they had a few small fishes: and he blessed, and commanded to -set them also before them. - -8:8 So they did eat, and were filled: and they took up of the broken -meat that was left seven baskets. - -8:9 And they that had eaten were about four thousand: and he sent them -away. - -8:10 And straightway he entered into a ship with his disciples, and -came into the parts of Dalmanutha. - -8:11 And the Pharisees came forth, and began to question with him, -seeking of him a sign from heaven, tempting him. - -8:12 And he sighed deeply in his spirit, and saith, Why doth this -generation seek after a sign? verily I say unto you, There shall no -sign be given unto this generation. - -8:13 And he left them, and entering into the ship again departed to -the other side. - -8:14 Now the disciples had forgotten to take bread, neither had they -in the ship with them more than one loaf. - -8:15 And he charged them, saying, Take heed, beware of the leaven of -the Pharisees, and of the leaven of Herod. - -8:16 And they reasoned among themselves, saying, It is because we have -no bread. - -8:17 And when Jesus knew it, he saith unto them, Why reason ye, -because ye have no bread? perceive ye not yet, neither understand? -have ye your heart yet hardened? 8:18 Having eyes, see ye not? and -having ears, hear ye not? and do ye not remember? 8:19 When I brake -the five loaves among five thousand, how many baskets full of -fragments took ye up? They say unto him, Twelve. - -8:20 And when the seven among four thousand, how many baskets full of -fragments took ye up? And they said, Seven. - -8:21 And he said unto them, How is it that ye do not understand? 8:22 -And he cometh to Bethsaida; and they bring a blind man unto him, and -besought him to touch him. - -8:23 And he took the blind man by the hand, and led him out of the -town; and when he had spit on his eyes, and put his hands upon him, he -asked him if he saw ought. - -8:24 And he looked up, and said, I see men as trees, walking. - -8:25 After that he put his hands again upon his eyes, and made him -look up: and he was restored, and saw every man clearly. - -8:26 And he sent him away to his house, saying, Neither go into the -town, nor tell it to any in the town. - -8:27 And Jesus went out, and his disciples, into the towns of Caesarea -Philippi: and by the way he asked his disciples, saying unto them, -Whom do men say that I am? 8:28 And they answered, John the Baptist; -but some say, Elias; and others, One of the prophets. - -8:29 And he saith unto them, But whom say ye that I am? And Peter -answereth and saith unto him, Thou art the Christ. - -8:30 And he charged them that they should tell no man of him. - -8:31 And he began to teach them, that the Son of man must suffer many -things, and be rejected of the elders, and of the chief priests, and -scribes, and be killed, and after three days rise again. - -8:32 And he spake that saying openly. And Peter took him, and began to -rebuke him. - -8:33 But when he had turned about and looked on his disciples, he -rebuked Peter, saying, Get thee behind me, Satan: for thou savourest -not the things that be of God, but the things that be of men. - -8:34 And when he had called the people unto him with his disciples -also, he said unto them, Whosoever will come after me, let him deny -himself, and take up his cross, and follow me. - -8:35 For whosoever will save his life shall lose it; but whosoever -shall lose his life for my sake and the gospel's, the same shall save -it. - -8:36 For what shall it profit a man, if he shall gain the whole world, -and lose his own soul? 8:37 Or what shall a man give in exchange for -his soul? 8:38 Whosoever therefore shall be ashamed of me and of my -words in this adulterous and sinful generation; of him also shall the -Son of man be ashamed, when he cometh in the glory of his Father with -the holy angels. - -9:1 And he said unto them, Verily I say unto you, That there be some -of them that stand here, which shall not taste of death, till they -have seen the kingdom of God come with power. - -9:2 And after six days Jesus taketh with him Peter, and James, and -John, and leadeth them up into an high mountain apart by themselves: -and he was transfigured before them. - -9:3 And his raiment became shining, exceeding white as snow; so as no -fuller on earth can white them. - -9:4 And there appeared unto them Elias with Moses: and they were -talking with Jesus. - -9:5 And Peter answered and said to Jesus, Master, it is good for us to -be here: and let us make three tabernacles; one for thee, and one for -Moses, and one for Elias. - -9:6 For he wist not what to say; for they were sore afraid. - -9:7 And there was a cloud that overshadowed them: and a voice came out -of the cloud, saying, This is my beloved Son: hear him. - -9:8 And suddenly, when they had looked round about, they saw no man -any more, save Jesus only with themselves. - -9:9 And as they came down from the mountain, he charged them that they -should tell no man what things they had seen, till the Son of man were -risen from the dead. - -9:10 And they kept that saying with themselves, questioning one with -another what the rising from the dead should mean. - -9:11 And they asked him, saying, Why say the scribes that Elias must -first come? 9:12 And he answered and told them, Elias verily cometh -first, and restoreth all things; and how it is written of the Son of -man, that he must suffer many things, and be set at nought. - -9:13 But I say unto you, That Elias is indeed come, and they have done -unto him whatsoever they listed, as it is written of him. - -9:14 And when he came to his disciples, he saw a great multitude about -them, and the scribes questioning with them. - -9:15 And straightway all the people, when they beheld him, were -greatly amazed, and running to him saluted him. - -9:16 And he asked the scribes, What question ye with them? 9:17 And -one of the multitude answered and said, Master, I have brought unto -thee my son, which hath a dumb spirit; 9:18 And wheresoever he taketh -him, he teareth him: and he foameth, and gnasheth with his teeth, and -pineth away: and I spake to thy disciples that they should cast him -out; and they could not. - -9:19 He answereth him, and saith, O faithless generation, how long -shall I be with you? how long shall I suffer you? bring him unto me. - -9:20 And they brought him unto him: and when he saw him, straightway -the spirit tare him; and he fell on the ground, and wallowed foaming. - -9:21 And he asked his father, How long is it ago since this came unto -him? And he said, Of a child. - -9:22 And ofttimes it hath cast him into the fire, and into the waters, -to destroy him: but if thou canst do any thing, have compassion on us, -and help us. - -9:23 Jesus said unto him, If thou canst believe, all things are -possible to him that believeth. - -9:24 And straightway the father of the child cried out, and said with -tears, Lord, I believe; help thou mine unbelief. - -9:25 When Jesus saw that the people came running together, he rebuked -the foul spirit, saying unto him, Thou dumb and deaf spirit, I charge -thee, come out of him, and enter no more into him. - -9:26 And the spirit cried, and rent him sore, and came out of him: and -he was as one dead; insomuch that many said, He is dead. - -9:27 But Jesus took him by the hand, and lifted him up; and he arose. - -9:28 And when he was come into the house, his disciples asked him -privately, Why could not we cast him out? 9:29 And he said unto them, -This kind can come forth by nothing, but by prayer and fasting. - -9:30 And they departed thence, and passed through Galilee; and he -would not that any man should know it. - -9:31 For he taught his disciples, and said unto them, The Son of man -is delivered into the hands of men, and they shall kill him; and after -that he is killed, he shall rise the third day. - -9:32 But they understood not that saying, and were afraid to ask him. - -9:33 And he came to Capernaum: and being in the house he asked them, -What was it that ye disputed among yourselves by the way? 9:34 But -they held their peace: for by the way they had disputed among -themselves, who should be the greatest. - -9:35 And he sat down, and called the twelve, and saith unto them, If -any man desire to be first, the same shall be last of all, and servant -of all. - -9:36 And he took a child, and set him in the midst of them: and when -he had taken him in his arms, he said unto them, 9:37 Whosoever shall -receive one of such children in my name, receiveth me: and whosoever -shall receive me, receiveth not me, but him that sent me. - -9:38 And John answered him, saying, Master, we saw one casting out -devils in thy name, and he followeth not us: and we forbad him, -because he followeth not us. - -9:39 But Jesus said, Forbid him not: for there is no man which shall -do a miracle in my name, that can lightly speak evil of me. - -9:40 For he that is not against us is on our part. - -9:41 For whosoever shall give you a cup of water to drink in my name, -because ye belong to Christ, verily I say unto you, he shall not lose -his reward. - -9:42 And whosoever shall offend one of these little ones that believe -in me, it is better for him that a millstone were hanged about his -neck, and he were cast into the sea. - -9:43 And if thy hand offend thee, cut it off: it is better for thee to -enter into life maimed, than having two hands to go into hell, into -the fire that never shall be quenched: 9:44 Where their worm dieth -not, and the fire is not quenched. - -9:45 And if thy foot offend thee, cut it off: it is better for thee to -enter halt into life, than having two feet to be cast into hell, into -the fire that never shall be quenched: 9:46 Where their worm dieth -not, and the fire is not quenched. - -9:47 And if thine eye offend thee, pluck it out: it is better for thee -to enter into the kingdom of God with one eye, than having two eyes to -be cast into hell fire: 9:48 Where their worm dieth not, and the fire -is not quenched. - -9:49 For every one shall be salted with fire, and every sacrifice -shall be salted with salt. - -9:50 Salt is good: but if the salt have lost his saltness, wherewith -will ye season it? Have salt in yourselves, and have peace one with -another. - -10:1 And he arose from thence, and cometh into the coasts of Judaea by -the farther side of Jordan: and the people resort unto him again; and, -as he was wont, he taught them again. - -10:2 And the Pharisees came to him, and asked him, Is it lawful for a -man to put away his wife? tempting him. - -10:3 And he answered and said unto them, What did Moses command you? -10:4 And they said, Moses suffered to write a bill of divorcement, and -to put her away. - -10:5 And Jesus answered and said unto them, For the hardness of your -heart he wrote you this precept. - -10:6 But from the beginning of the creation God made them male and -female. - -10:7 For this cause shall a man leave his father and mother, and -cleave to his wife; 10:8 And they twain shall be one flesh: so then -they are no more twain, but one flesh. - -10:9 What therefore God hath joined together, let not man put asunder. - -10:10 And in the house his disciples asked him again of the same -matter. - -10:11 And he saith unto them, Whosoever shall put away his wife, and -marry another, committeth adultery against her. - -10:12 And if a woman shall put away her husband, and be married to -another, she committeth adultery. - -10:13 And they brought young children to him, that he should touch -them: and his disciples rebuked those that brought them. - -10:14 But when Jesus saw it, he was much displeased, and said unto -them, Suffer the little children to come unto me, and forbid them not: -for of such is the kingdom of God. - -10:15 Verily I say unto you, Whosoever shall not receive the kingdom -of God as a little child, he shall not enter therein. - -10:16 And he took them up in his arms, put his hands upon them, and -blessed them. - -10:17 And when he was gone forth into the way, there came one running, -and kneeled to him, and asked him, Good Master, what shall I do that I -may inherit eternal life? 10:18 And Jesus said unto him, Why callest -thou me good? there is none good but one, that is, God. - -10:19 Thou knowest the commandments, Do not commit adultery, Do not -kill, Do not steal, Do not bear false witness, Defraud not, Honour thy -father and mother. 10:20 And he answered and said unto him, Master, -all these have I observed from my youth. - -10:21 Then Jesus beholding him loved him, and said unto him, One thing -thou lackest: go thy way, sell whatsoever thou hast, and give to the -poor, and thou shalt have treasure in heaven: and come, take up the -cross, and follow me. - -10:22 And he was sad at that saying, and went away grieved: for he had -great possessions. - -10:23 And Jesus looked round about, and saith unto his disciples, How -hardly shall they that have riches enter into the kingdom of God! -10:24 And the disciples were astonished at his words. But Jesus -answereth again, and saith unto them, Children, how hard is it for -them that trust in riches to enter into the kingdom of God! 10:25 It -is easier for a camel to go through the eye of a needle, than for a -rich man to enter into the kingdom of God. - -10:26 And they were astonished out of measure, saying among -themselves, Who then can be saved? 10:27 And Jesus looking upon them -saith, With men it is impossible, but not with God: for with God all -things are possible. - -10:28 Then Peter began to say unto him, Lo, we have left all, and have -followed thee. - -10:29 And Jesus answered and said, Verily I say unto you, There is no -man that hath left house, or brethren, or sisters, or father, or -mother, or wife, or children, or lands, for my sake, and the gospel's, -10:30 But he shall receive an hundredfold now in this time, houses, -and brethren, and sisters, and mothers, and children, and lands, with -persecutions; and in the world to come eternal life. - -10:31 But many that are first shall be last; and the last first. - -10:32 And they were in the way going up to Jerusalem; and Jesus went -before them: and they were amazed; and as they followed, they were -afraid. - -And he took again the twelve, and began to tell them what things -should happen unto him, 10:33 Saying, Behold, we go up to Jerusalem; -and the Son of man shall be delivered unto the chief priests, and unto -the scribes; and they shall condemn him to death, and shall deliver -him to the Gentiles: 10:34 And they shall mock him, and shall scourge -him, and shall spit upon him, and shall kill him: and the third day he -shall rise again. - -10:35 And James and John, the sons of Zebedee, come unto him, saying, -Master, we would that thou shouldest do for us whatsoever we shall -desire. - -10:36 And he said unto them, What would ye that I should do for you? -10:37 They said unto him, Grant unto us that we may sit, one on thy -right hand, and the other on thy left hand, in thy glory. - -10:38 But Jesus said unto them, Ye know not what ye ask: can ye drink -of the cup that I drink of? and be baptized with the baptism that I am -baptized with? 10:39 And they said unto him, We can. And Jesus said -unto them, Ye shall indeed drink of the cup that I drink of; and with -the baptism that I am baptized withal shall ye be baptized: 10:40 But -to sit on my right hand and on my left hand is not mine to give; but -it shall be given to them for whom it is prepared. - -10:41 And when the ten heard it, they began to be much displeased with -James and John. - -10:42 But Jesus called them to him, and saith unto them, Ye know that -they which are accounted to rule over the Gentiles exercise lordship -over them; and their great ones exercise authority upon them. - -10:43 But so shall it not be among you: but whosoever will be great -among you, shall be your minister: 10:44 And whosoever of you will be -the chiefest, shall be servant of all. - -10:45 For even the Son of man came not to be ministered unto, but to -minister, and to give his life a ransom for many. - -10:46 And they came to Jericho: and as he went out of Jericho with his -disciples and a great number of people, blind Bartimaeus, the son of -Timaeus, sat by the highway side begging. - -10:47 And when he heard that it was Jesus of Nazareth, he began to cry -out, and say, Jesus, thou son of David, have mercy on me. - -10:48 And many charged him that he should hold his peace: but he cried -the more a great deal, Thou son of David, have mercy on me. - -10:49 And Jesus stood still, and commanded him to be called. And they -call the blind man, saying unto him, Be of good comfort, rise; he -calleth thee. - -10:50 And he, casting away his garment, rose, and came to Jesus. - -10:51 And Jesus answered and said unto him, What wilt thou that I -should do unto thee? The blind man said unto him, Lord, that I might -receive my sight. - -10:52 And Jesus said unto him, Go thy way; thy faith hath made thee -whole. - -And immediately he received his sight, and followed Jesus in the way. - -11:1 And when they came nigh to Jerusalem, unto Bethphage and Bethany, -at the mount of Olives, he sendeth forth two of his disciples, 11:2 -And saith unto them, Go your way into the village over against you: -and as soon as ye be entered into it, ye shall find a colt tied, -whereon never man sat; loose him, and bring him. - -11:3 And if any man say unto you, Why do ye this? say ye that the Lord -hath need of him; and straightway he will send him hither. - -11:4 And they went their way, and found the colt tied by the door -without in a place where two ways met; and they loose him. - -11:5 And certain of them that stood there said unto them, What do ye, -loosing the colt? 11:6 And they said unto them even as Jesus had -commanded: and they let them go. - -11:7 And they brought the colt to Jesus, and cast their garments on -him; and he sat upon him. - -11:8 And many spread their garments in the way: and others cut down -branches off the trees, and strawed them in the way. - -11:9 And they that went before, and they that followed, cried, saying, -Hosanna; Blessed is he that cometh in the name of the Lord: 11:10 -Blessed be the kingdom of our father David, that cometh in the name of -the Lord: Hosanna in the highest. - -11:11 And Jesus entered into Jerusalem, and into the temple: and when -he had looked round about upon all things, and now the eventide was -come, he went out unto Bethany with the twelve. - -11:12 And on the morrow, when they were come from Bethany, he was -hungry: 11:13 And seeing a fig tree afar off having leaves, he came, -if haply he might find any thing thereon: and when he came to it, he -found nothing but leaves; for the time of figs was not yet. - -11:14 And Jesus answered and said unto it, No man eat fruit of thee -hereafter for ever. And his disciples heard it. - -11:15 And they come to Jerusalem: and Jesus went into the temple, and -began to cast out them that sold and bought in the temple, and -overthrew the tables of the moneychangers, and the seats of them that -sold doves; 11:16 And would not suffer that any man should carry any -vessel through the temple. - -11:17 And he taught, saying unto them, Is it not written, My house -shall be called of all nations the house of prayer? but ye have made -it a den of thieves. - -11:18 And the scribes and chief priests heard it, and sought how they -might destroy him: for they feared him, because all the people was -astonished at his doctrine. - -11:19 And when even was come, he went out of the city. - -11:20 And in the morning, as they passed by, they saw the fig tree -dried up from the roots. - -11:21 And Peter calling to remembrance saith unto him, Master, behold, -the fig tree which thou cursedst is withered away. - -11:22 And Jesus answering saith unto them, Have faith in God. - -11:23 For verily I say unto you, That whosoever shall say unto this -mountain, Be thou removed, and be thou cast into the sea; and shall -not doubt in his heart, but shall believe that those things which he -saith shall come to pass; he shall have whatsoever he saith. - -11:24 Therefore I say unto you, What things soever ye desire, when ye -pray, believe that ye receive them, and ye shall have them. - -11:25 And when ye stand praying, forgive, if ye have ought against -any: that your Father also which is in heaven may forgive you your -trespasses. - -11:26 But if ye do not forgive, neither will your Father which is in -heaven forgive your trespasses. - -11:27 And they come again to Jerusalem: and as he was walking in the -temple, there come to him the chief priests, and the scribes, and the -elders, 11:28 And say unto him, By what authority doest thou these -things? and who gave thee this authority to do these things? 11:29 -And Jesus answered and said unto them, I will also ask of you one -question, and answer me, and I will tell you by what authority I do -these things. - -11:30 The baptism of John, was it from heaven, or of men? answer me. - -11:31 And they reasoned with themselves, saying, If we shall say, From -heaven; he will say, Why then did ye not believe him? 11:32 But if we -shall say, Of men; they feared the people: for all men counted John, -that he was a prophet indeed. - -11:33 And they answered and said unto Jesus, We cannot tell. And Jesus -answering saith unto them, Neither do I tell you by what authority I -do these things. - -12:1 And he began to speak unto them by parables. A certain man -planted a vineyard, and set an hedge about it, and digged a place for -the winefat, and built a tower, and let it out to husbandmen, and went -into a far country. - -12:2 And at the season he sent to the husbandmen a servant, that he -might receive from the husbandmen of the fruit of the vineyard. - -12:3 And they caught him, and beat him, and sent him away empty. - -12:4 And again he sent unto them another servant; and at him they cast -stones, and wounded him in the head, and sent him away shamefully -handled. - -12:5 And again he sent another; and him they killed, and many others; -beating some, and killing some. - -12:6 Having yet therefore one son, his wellbeloved, he sent him also -last unto them, saying, They will reverence my son. - -12:7 But those husbandmen said among themselves, This is the heir; -come, let us kill him, and the inheritance shall be our's. - -12:8 And they took him, and killed him, and cast him out of the -vineyard. - -12:9 What shall therefore the lord of the vineyard do? he will come -and destroy the husbandmen, and will give the vineyard unto others. - -12:10 And have ye not read this scripture; The stone which the -builders rejected is become the head of the corner: 12:11 This was the -Lord's doing, and it is marvellous in our eyes? 12:12 And they sought -to lay hold on him, but feared the people: for they knew that he had -spoken the parable against them: and they left him, and went their -way. - -12:13 And they send unto him certain of the Pharisees and of the -Herodians, to catch him in his words. - -12:14 And when they were come, they say unto him, Master, we know that -thou art true, and carest for no man: for thou regardest not the -person of men, but teachest the way of God in truth: Is it lawful to -give tribute to Caesar, or not? 12:15 Shall we give, or shall we not -give? But he, knowing their hypocrisy, said unto them, Why tempt ye -me? bring me a penny, that I may see it. - -12:16 And they brought it. And he saith unto them, Whose is this image -and superscription? And they said unto him, Caesar's. - -12:17 And Jesus answering said unto them, Render to Caesar the things -that are Caesar's, and to God the things that are God's. And they -marvelled at him. - -12:18 Then come unto him the Sadducees, which say there is no -resurrection; and they asked him, saying, 12:19 Master, Moses wrote -unto us, If a man's brother die, and leave his wife behind him, and -leave no children, that his brother should take his wife, and raise up -seed unto his brother. - -12:20 Now there were seven brethren: and the first took a wife, and -dying left no seed. - -12:21 And the second took her, and died, neither left he any seed: and -the third likewise. - -12:22 And the seven had her, and left no seed: last of all the woman -died also. - -12:23 In the resurrection therefore, when they shall rise, whose wife -shall she be of them? for the seven had her to wife. - -12:24 And Jesus answering said unto them, Do ye not therefore err, -because ye know not the scriptures, neither the power of God? 12:25 -For when they shall rise from the dead, they neither marry, nor are -given in marriage; but are as the angels which are in heaven. - -12:26 And as touching the dead, that they rise: have ye not read in -the book of Moses, how in the bush God spake unto him, saying, I am -the God of Abraham, and the God of Isaac, and the God of Jacob? 12:27 -He is not the God of the dead, but the God of the living: ye therefore -do greatly err. - -12:28 And one of the scribes came, and having heard them reasoning -together, and perceiving that he had answered them well, asked him, -Which is the first commandment of all? 12:29 And Jesus answered him, -The first of all the commandments is, Hear, O Israel; The Lord our God -is one Lord: 12:30 And thou shalt love the Lord thy God with all thy -heart, and with all thy soul, and with all thy mind, and with all thy -strength: this is the first commandment. - -12:31 And the second is like, namely this, Thou shalt love thy -neighbour as thyself. There is none other commandment greater than -these. - -12:32 And the scribe said unto him, Well, Master, thou hast said the -truth: for there is one God; and there is none other but he: 12:33 And -to love him with all the heart, and with all the understanding, and -with all the soul, and with all the strength, and to love his -neighbour as himself, is more than all whole burnt offerings and -sacrifices. - -12:34 And when Jesus saw that he answered discreetly, he said unto -him, Thou art not far from the kingdom of God. And no man after that -durst ask him any question. - -12:35 And Jesus answered and said, while he taught in the temple, How -say the scribes that Christ is the son of David? 12:36 For David -himself said by the Holy Ghost, The LORD said to my Lord, Sit thou on -my right hand, till I make thine enemies thy footstool. - -12:37 David therefore himself calleth him Lord; and whence is he then -his son? And the common people heard him gladly. - -12:38 And he said unto them in his doctrine, Beware of the scribes, -which love to go in long clothing, and love salutations in the -marketplaces, 12:39 And the chief seats in the synagogues, and the -uppermost rooms at feasts: 12:40 Which devour widows' houses, and for -a pretence make long prayers: these shall receive greater damnation. - -12:41 And Jesus sat over against the treasury, and beheld how the -people cast money into the treasury: and many that were rich cast in -much. - -12:42 And there came a certain poor widow, and she threw in two mites, -which make a farthing. - -12:43 And he called unto him his disciples, and saith unto them, -Verily I say unto you, That this poor widow hath cast more in, than -all they which have cast into the treasury: 12:44 For all they did -cast in of their abundance; but she of her want did cast in all that -she had, even all her living. - -13:1 And as he went out of the temple, one of his disciples saith unto -him, Master, see what manner of stones and what buildings are here! -13:2 And Jesus answering said unto him, Seest thou these great -buildings? there shall not be left one stone upon another, that shall -not be thrown down. - -13:3 And as he sat upon the mount of Olives over against the temple, -Peter and James and John and Andrew asked him privately, 13:4 Tell us, -when shall these things be? and what shall be the sign when all these -things shall be fulfilled? 13:5 And Jesus answering them began to -say, Take heed lest any man deceive you: 13:6 For many shall come in -my name, saying, I am Christ; and shall deceive many. - -13:7 And when ye shall hear of wars and rumours of wars, be ye not -troubled: for such things must needs be; but the end shall not be yet. - -13:8 For nation shall rise against nation, and kingdom against -kingdom: and there shall be earthquakes in divers places, and there -shall be famines and troubles: these are the beginnings of sorrows. - -13:9 But take heed to yourselves: for they shall deliver you up to -councils; and in the synagogues ye shall be beaten: and ye shall be -brought before rulers and kings for my sake, for a testimony against -them. - -13:10 And the gospel must first be published among all nations. - -13:11 But when they shall lead you, and deliver you up, take no -thought beforehand what ye shall speak, neither do ye premeditate: but -whatsoever shall be given you in that hour, that speak ye: for it is -not ye that speak, but the Holy Ghost. - -13:12 Now the brother shall betray the brother to death, and the -father the son; and children shall rise up against their parents, and -shall cause them to be put to death. - -13:13 And ye shall be hated of all men for my name's sake: but he that -shall endure unto the end, the same shall be saved. - -13:14 But when ye shall see the abomination of desolation, spoken of -by Daniel the prophet, standing where it ought not, (let him that -readeth understand,) then let them that be in Judaea flee to the -mountains: 13:15 And let him that is on the housetop not go down into -the house, neither enter therein, to take any thing out of his house: -13:16 And let him that is in the field not turn back again for to take -up his garment. - -13:17 But woe to them that are with child, and to them that give suck -in those days! 13:18 And pray ye that your flight be not in the -winter. - -13:19 For in those days shall be affliction, such as was not from the -beginning of the creation which God created unto this time, neither -shall be. - -13:20 And except that the Lord had shortened those days, no flesh -should be saved: but for the elect's sake, whom he hath chosen, he -hath shortened the days. - -13:21 And then if any man shall say to you, Lo, here is Christ; or, -lo, he is there; believe him not: 13:22 For false Christs and false -prophets shall rise, and shall shew signs and wonders, to seduce, if -it were possible, even the elect. - -13:23 But take ye heed: behold, I have foretold you all things. - -13:24 But in those days, after that tribulation, the sun shall be -darkened, and the moon shall not give her light, 13:25 And the stars -of heaven shall fall, and the powers that are in heaven shall be -shaken. - -13:26 And then shall they see the Son of man coming in the clouds with -great power and glory. - -13:27 And then shall he send his angels, and shall gather together his -elect from the four winds, from the uttermost part of the earth to the -uttermost part of heaven. - -13:28 Now learn a parable of the fig tree; When her branch is yet -tender, and putteth forth leaves, ye know that summer is near: 13:29 -So ye in like manner, when ye shall see these things come to pass, -know that it is nigh, even at the doors. - -13:30 Verily I say unto you, that this generation shall not pass, till -all these things be done. - -13:31 Heaven and earth shall pass away: but my words shall not pass -away. - -13:32 But of that day and that hour knoweth no man, no, not the angels -which are in heaven, neither the Son, but the Father. - -13:33 Take ye heed, watch and pray: for ye know not when the time is. - -13:34 For the Son of Man is as a man taking a far journey, who left -his house, and gave authority to his servants, and to every man his -work, and commanded the porter to watch. - -13:35 Watch ye therefore: for ye know not when the master of the house -cometh, at even, or at midnight, or at the cockcrowing, or in the -morning: 13:36 Lest coming suddenly he find you sleeping. - -13:37 And what I say unto you I say unto all, Watch. - -14:1 After two days was the feast of the passover, and of unleavened -bread: and the chief priests and the scribes sought how they might -take him by craft, and put him to death. - -14:2 But they said, Not on the feast day, lest there be an uproar of -the people. - -14:3 And being in Bethany in the house of Simon the leper, as he sat -at meat, there came a woman having an alabaster box of ointment of -spikenard very precious; and she brake the box, and poured it on his -head. - -14:4 And there were some that had indignation within themselves, and -said, Why was this waste of the ointment made? 14:5 For it might have -been sold for more than three hundred pence, and have been given to -the poor. And they murmured against her. - -14:6 And Jesus said, Let her alone; why trouble ye her? she hath -wrought a good work on me. - -14:7 For ye have the poor with you always, and whensoever ye will ye -may do them good: but me ye have not always. - -14:8 She hath done what she could: she is come aforehand to anoint my -body to the burying. - -14:9 Verily I say unto you, Wheresoever this gospel shall be preached -throughout the whole world, this also that she hath done shall be -spoken of for a memorial of her. - -14:10 And Judas Iscariot, one of the twelve, went unto the chief -priests, to betray him unto them. - -14:11 And when they heard it, they were glad, and promised to give him -money. And he sought how he might conveniently betray him. - -14:12 And the first day of unleavened bread, when they killed the -passover, his disciples said unto him, Where wilt thou that we go and -prepare that thou mayest eat the passover? 14:13 And he sendeth forth -two of his disciples, and saith unto them, Go ye into the city, and -there shall meet you a man bearing a pitcher of water: follow him. - -14:14 And wheresoever he shall go in, say ye to the goodman of the -house, The Master saith, Where is the guestchamber, where I shall eat -the passover with my disciples? 14:15 And he will shew you a large -upper room furnished and prepared: there make ready for us. - -14:16 And his disciples went forth, and came into the city, and found -as he had said unto them: and they made ready the passover. - -14:17 And in the evening he cometh with the twelve. - -14:18 And as they sat and did eat, Jesus said, Verily I say unto you, -One of you which eateth with me shall betray me. - -14:19 And they began to be sorrowful, and to say unto him one by one, -Is it I? and another said, Is it I? 14:20 And he answered and said -unto them, It is one of the twelve, that dippeth with me in the dish. - -14:21 The Son of man indeed goeth, as it is written of him: but woe to -that man by whom the Son of man is betrayed! good were it for that man -if he had never been born. - -14:22 And as they did eat, Jesus took bread, and blessed, and brake -it, and gave to them, and said, Take, eat: this is my body. - -14:23 And he took the cup, and when he had given thanks, he gave it to -them: and they all drank of it. - -14:24 And he said unto them, This is my blood of the new testament, -which is shed for many. - -14:25 Verily I say unto you, I will drink no more of the fruit of the -vine, until that day that I drink it new in the kingdom of God. - -14:26 And when they had sung an hymn, they went out into the mount of -Olives. - -14:27 And Jesus saith unto them, All ye shall be offended because of -me this night: for it is written, I will smite the shepherd, and the -sheep shall be scattered. - -14:28 But after that I am risen, I will go before you into Galilee. - -14:29 But Peter said unto him, Although all shall be offended, yet -will not I. - -14:30 And Jesus saith unto him, Verily I say unto thee, That this day, -even in this night, before the cock crow twice, thou shalt deny me -thrice. - -14:31 But he spake the more vehemently, If I should die with thee, I -will not deny thee in any wise. Likewise also said they all. - -14:32 And they came to a place which was named Gethsemane: and he -saith to his disciples, Sit ye here, while I shall pray. - -14:33 And he taketh with him Peter and James and John, and began to be -sore amazed, and to be very heavy; 14:34 And saith unto them, My soul -is exceeding sorrowful unto death: tarry ye here, and watch. - -14:35 And he went forward a little, and fell on the ground, and prayed -that, if it were possible, the hour might pass from him. - -14:36 And he said, Abba, Father, all things are possible unto thee; -take away this cup from me: nevertheless not what I will, but what -thou wilt. - -14:37 And he cometh, and findeth them sleeping, and saith unto Peter, -Simon, sleepest thou? couldest not thou watch one hour? 14:38 Watch -ye and pray, lest ye enter into temptation. The spirit truly is ready, -but the flesh is weak. - -14:39 And again he went away, and prayed, and spake the same words. - -14:40 And when he returned, he found them asleep again, (for their -eyes were heavy,) neither wist they what to answer him. - -14:41 And he cometh the third time, and saith unto them, Sleep on now, -and take your rest: it is enough, the hour is come; behold, the Son of -man is betrayed into the hands of sinners. - -14:42 Rise up, let us go; lo, he that betrayeth me is at hand. - -14:43 And immediately, while he yet spake, cometh Judas, one of the -twelve, and with him a great multitude with swords and staves, from -the chief priests and the scribes and the elders. - -14:44 And he that betrayed him had given them a token, saying, -Whomsoever I shall kiss, that same is he; take him, and lead him away -safely. - -14:45 And as soon as he was come, he goeth straightway to him, and -saith, Master, master; and kissed him. - -14:46 And they laid their hands on him, and took him. - -14:47 And one of them that stood by drew a sword, and smote a servant -of the high priest, and cut off his ear. - -14:48 And Jesus answered and said unto them, Are ye come out, as -against a thief, with swords and with staves to take me? 14:49 I was -daily with you in the temple teaching, and ye took me not: but the -scriptures must be fulfilled. - -14:50 And they all forsook him, and fled. - -14:51 And there followed him a certain young man, having a linen cloth -cast about his naked body; and the young men laid hold on him: 14:52 -And he left the linen cloth, and fled from them naked. - -14:53 And they led Jesus away to the high priest: and with him were -assembled all the chief priests and the elders and the scribes. - -14:54 And Peter followed him afar off, even into the palace of the -high priest: and he sat with the servants, and warmed himself at the -fire. - -14:55 And the chief priests and all the council sought for witness -against Jesus to put him to death; and found none. - -14:56 For many bare false witness against him, but their witness -agreed not together. - -14:57 And there arose certain, and bare false witness against him, -saying, 14:58 We heard him say, I will destroy this temple that is -made with hands, and within three days I will build another made -without hands. - -14:59 But neither so did their witness agree together. - -14:60 And the high priest stood up in the midst, and asked Jesus, -saying, Answerest thou nothing? what is it which these witness against -thee? 14:61 But he held his peace, and answered nothing. Again the -high priest asked him, and said unto him, Art thou the Christ, the Son -of the Blessed? 14:62 And Jesus said, I am: and ye shall see the Son -of man sitting on the right hand of power, and coming in the clouds of -heaven. - -14:63 Then the high priest rent his clothes, and saith, What need we -any further witnesses? 14:64 Ye have heard the blasphemy: what think -ye? And they all condemned him to be guilty of death. - -14:65 And some began to spit on him, and to cover his face, and to -buffet him, and to say unto him, Prophesy: and the servants did strike -him with the palms of their hands. - -14:66 And as Peter was beneath in the palace, there cometh one of the -maids of the high priest: 14:67 And when she saw Peter warming -himself, she looked upon him, and said, And thou also wast with Jesus -of Nazareth. - -14:68 But he denied, saying, I know not, neither understand I what -thou sayest. And he went out into the porch; and the cock crew. - -14:69 And a maid saw him again, and began to say to them that stood -by, This is one of them. - -14:70 And he denied it again. And a little after, they that stood by -said again to Peter, Surely thou art one of them: for thou art a -Galilaean, and thy speech agreeth thereto. - -14:71 But he began to curse and to swear, saying, I know not this man -of whom ye speak. - -14:72 And the second time the cock crew. And Peter called to mind the -word that Jesus said unto him, Before the cock crow twice, thou shalt -deny me thrice. And when he thought thereon, he wept. - -15:1 And straightway in the morning the chief priests held a -consultation with the elders and scribes and the whole council, and -bound Jesus, and carried him away, and delivered him to Pilate. - -15:2 And Pilate asked him, Art thou the King of the Jews? And he -answering said unto them, Thou sayest it. - -15:3 And the chief priests accused him of many things: but he answered -nothing. - -15:4 And Pilate asked him again, saying, Answerest thou nothing? -behold how many things they witness against thee. - -15:5 But Jesus yet answered nothing; so that Pilate marvelled. - -15:6 Now at that feast he released unto them one prisoner, whomsoever -they desired. - -15:7 And there was one named Barabbas, which lay bound with them that -had made insurrection with him, who had committed murder in the -insurrection. - -15:8 And the multitude crying aloud began to desire him to do as he -had ever done unto them. - -15:9 But Pilate answered them, saying, Will ye that I release unto you -the King of the Jews? 15:10 For he knew that the chief priests had -delivered him for envy. - -15:11 But the chief priests moved the people, that he should rather -release Barabbas unto them. - -15:12 And Pilate answered and said again unto them, What will ye then -that I shall do unto him whom ye call the King of the Jews? 15:13 And -they cried out again, Crucify him. - -15:14 Then Pilate said unto them, Why, what evil hath he done? And -they cried out the more exceedingly, Crucify him. - -15:15 And so Pilate, willing to content the people, released Barabbas -unto them, and delivered Jesus, when he had scourged him, to be -crucified. - -15:16 And the soldiers led him away into the hall, called Praetorium; -and they call together the whole band. - -15:17 And they clothed him with purple, and platted a crown of thorns, -and put it about his head, 15:18 And began to salute him, Hail, King -of the Jews! 15:19 And they smote him on the head with a reed, and -did spit upon him, and bowing their knees worshipped him. - -15:20 And when they had mocked him, they took off the purple from him, -and put his own clothes on him, and led him out to crucify him. - -15:21 And they compel one Simon a Cyrenian, who passed by, coming out -of the country, the father of Alexander and Rufus, to bear his cross. - -15:22 And they bring him unto the place Golgotha, which is, being -interpreted, The place of a skull. - -15:23 And they gave him to drink wine mingled with myrrh: but he -received it not. - -15:24 And when they had crucified him, they parted his garments, -casting lots upon them, what every man should take. - -15:25 And it was the third hour, and they crucified him. - -15:26 And the superscription of his accusation was written over, THE -KING OF THE JEWS. - -15:27 And with him they crucify two thieves; the one on his right -hand, and the other on his left. - -15:28 And the scripture was fulfilled, which saith, And he was -numbered with the transgressors. - -15:29 And they that passed by railed on him, wagging their heads, and -saying, Ah, thou that destroyest the temple, and buildest it in three -days, 15:30 Save thyself, and come down from the cross. - -15:31 Likewise also the chief priests mocking said among themselves -with the scribes, He saved others; himself he cannot save. - -15:32 Let Christ the King of Israel descend now from the cross, that -we may see and believe. And they that were crucified with him reviled -him. - -15:33 And when the sixth hour was come, there was darkness over the -whole land until the ninth hour. - -15:34 And at the ninth hour Jesus cried with a loud voice, saying, -Eloi, Eloi, lama sabachthani? which is, being interpreted, My God, my -God, why hast thou forsaken me? 15:35 And some of them that stood by, -when they heard it, said, Behold, he calleth Elias. - -15:36 And one ran and filled a spunge full of vinegar, and put it on a -reed, and gave him to drink, saying, Let alone; let us see whether -Elias will come to take him down. - -15:37 And Jesus cried with a loud voice, and gave up the ghost. - -15:38 And the veil of the temple was rent in twain from the top to the -bottom. - -15:39 And when the centurion, which stood over against him, saw that -he so cried out, and gave up the ghost, he said, Truly this man was -the Son of God. - -15:40 There were also women looking on afar off: among whom was Mary -Magdalene, and Mary the mother of James the less and of Joses, and -Salome; 15:41 (Who also, when he was in Galilee, followed him, and -ministered unto him;) and many other women which came up with him unto -Jerusalem. - -15:42 And now when the even was come, because it was the preparation, -that is, the day before the sabbath, 15:43 Joseph of Arimathaea, an -honourable counsellor, which also waited for the kingdom of God, came, -and went in boldly unto Pilate, and craved the body of Jesus. - -15:44 And Pilate marvelled if he were already dead: and calling unto -him the centurion, he asked him whether he had been any while dead. - -15:45 And when he knew it of the centurion, he gave the body to -Joseph. - -15:46 And he bought fine linen, and took him down, and wrapped him in -the linen, and laid him in a sepulchre which was hewn out of a rock, -and rolled a stone unto the door of the sepulchre. - -15:47 And Mary Magdalene and Mary the mother of Joses beheld where he -was laid. - -16:1 And when the sabbath was past, Mary Magdalene, and Mary the -mother of James, and Salome, had bought sweet spices, that they might -come and anoint him. - -16:2 And very early in the morning the first day of the week, they -came unto the sepulchre at the rising of the sun. - -16:3 And they said among themselves, Who shall roll us away the stone -from the door of the sepulchre? 16:4 And when they looked, they saw -that the stone was rolled away: for it was very great. - -16:5 And entering into the sepulchre, they saw a young man sitting on -the right side, clothed in a long white garment; and they were -affrighted. - -16:6 And he saith unto them, Be not affrighted: Ye seek Jesus of -Nazareth, which was crucified: he is risen; he is not here: behold the -place where they laid him. - -16:7 But go your way, tell his disciples and Peter that he goeth -before you into Galilee: there shall ye see him, as he said unto you. - -16:8 And they went out quickly, and fled from the sepulchre; for they -trembled and were amazed: neither said they any thing to any man; for -they were afraid. - -16:9 Now when Jesus was risen early the first day of the week, he -appeared first to Mary Magdalene, out of whom he had cast seven -devils. - -16:10 And she went and told them that had been with him, as they -mourned and wept. - -16:11 And they, when they had heard that he was alive, and had been -seen of her, believed not. - -16:12 After that he appeared in another form unto two of them, as they -walked, and went into the country. - -16:13 And they went and told it unto the residue: neither believed -they them. - -16:14 Afterward he appeared unto the eleven as they sat at meat, and -upbraided them with their unbelief and hardness of heart, because they -believed not them which had seen him after he was risen. - -16:15 And he said unto them, Go ye into all the world, and preach the -gospel to every creature. - -16:16 He that believeth and is baptized shall be saved; but he that -believeth not shall be damned. - -16:17 And these signs shall follow them that believe; In my name shall -they cast out devils; they shall speak with new tongues; 16:18 They -shall take up serpents; and if they drink any deadly thing, it shall -not hurt them; they shall lay hands on the sick, and they shall -recover. - -16:19 So then after the Lord had spoken unto them, he was received up -into heaven, and sat on the right hand of God. - -16:20 And they went forth, and preached every where, the Lord working -with them, and confirming the word with signs following. Amen. - - - -The Gospel According to Saint Luke - - -1:1 Forasmuch as many have taken in hand to set forth in order a -declaration of those things which are most surely believed among us, -1:2 Even as they delivered them unto us, which from the beginning were -eyewitnesses, and ministers of the word; 1:3 It seemed good to me -also, having had perfect understanding of all things from the very -first, to write unto thee in order, most excellent Theophilus, 1:4 -That thou mightest know the certainty of those things, wherein thou -hast been instructed. - -1:5 THERE was in the days of Herod, the king of Judaea, a certain -priest named Zacharias, of the course of Abia: and his wife was of the -daughters of Aaron, and her name was Elisabeth. - -1:6 And they were both righteous before God, walking in all the -commandments and ordinances of the Lord blameless. - -1:7 And they had no child, because that Elisabeth was barren, and they -both were now well stricken in years. - -1:8 And it came to pass, that while he executed the priest's office -before God in the order of his course, 1:9 According to the custom of -the priest's office, his lot was to burn incense when he went into the -temple of the Lord. - -1:10 And the whole multitude of the people were praying without at the -time of incense. - -1:11 And there appeared unto him an angel of the Lord standing on the -right side of the altar of incense. - -1:12 And when Zacharias saw him, he was troubled, and fear fell upon -him. - -1:13 But the angel said unto him, Fear not, Zacharias: for thy prayer -is heard; and thy wife Elisabeth shall bear thee a son, and thou shalt -call his name John. - -1:14 And thou shalt have joy and gladness; and many shall rejoice at -his birth. - -1:15 For he shall be great in the sight of the Lord, and shall drink -neither wine nor strong drink; and he shall be filled with the Holy -Ghost, even from his mother's womb. - -1:16 And many of the children of Israel shall he turn to the Lord -their God. - -1:17 And he shall go before him in the spirit and power of Elias, to -turn the hearts of the fathers to the children, and the disobedient to -the wisdom of the just; to make ready a people prepared for the Lord. - -1:18 And Zacharias said unto the angel, Whereby shall I know this? for -I am an old man, and my wife well stricken in years. - -1:19 And the angel answering said unto him, I am Gabriel, that stand -in the presence of God; and am sent to speak unto thee, and to shew -thee these glad tidings. - -1:20 And, behold, thou shalt be dumb, and not able to speak, until the -day that these things shall be performed, because thou believest not -my words, which shall be fulfilled in their season. - -1:21 And the people waited for Zacharias, and marvelled that he -tarried so long in the temple. - -1:22 And when he came out, he could not speak unto them: and they -perceived that he had seen a vision in the temple: for he beckoned -unto them, and remained speechless. - -1:23 And it came to pass, that, as soon as the days of his -ministration were accomplished, he departed to his own house. - -1:24 And after those days his wife Elisabeth conceived, and hid -herself five months, saying, 1:25 Thus hath the Lord dealt with me in -the days wherein he looked on me, to take away my reproach among men. - -1:26 And in the sixth month the angel Gabriel was sent from God unto a -city of Galilee, named Nazareth, 1:27 To a virgin espoused to a man -whose name was Joseph, of the house of David; and the virgin's name -was Mary. - -1:28 And the angel came in unto her, and said, Hail, thou that art -highly favoured, the Lord is with thee: blessed art thou among women. - -1:29 And when she saw him, she was troubled at his saying, and cast in -her mind what manner of salutation this should be. - -1:30 And the angel said unto her, Fear not, Mary: for thou hast found -favour with God. - -1:31 And, behold, thou shalt conceive in thy womb, and bring forth a -son, and shalt call his name JESUS. - -1:32 He shall be great, and shall be called the Son of the Highest: -and the Lord God shall give unto him the throne of his father David: -1:33 And he shall reign over the house of Jacob for ever; and of his -kingdom there shall be no end. - -1:34 Then said Mary unto the angel, How shall this be, seeing I know -not a man? 1:35 And the angel answered and said unto her, The Holy -Ghost shall come upon thee, and the power of the Highest shall -overshadow thee: therefore also that holy thing which shall be born of -thee shall be called the Son of God. - -1:36 And, behold, thy cousin Elisabeth, she hath also conceived a son -in her old age: and this is the sixth month with her, who was called -barren. - -1:37 For with God nothing shall be impossible. - -1:38 And Mary said, Behold the handmaid of the Lord; be it unto me -according to thy word. And the angel departed from her. - -1:39 And Mary arose in those days, and went into the hill country with -haste, into a city of Juda; 1:40 And entered into the house of -Zacharias, and saluted Elisabeth. - -1:41 And it came to pass, that, when Elisabeth heard the salutation of -Mary, the babe leaped in her womb; and Elisabeth was filled with the -Holy Ghost: 1:42 And she spake out with a loud voice, and said, -Blessed art thou among women, and blessed is the fruit of thy womb. - -1:43 And whence is this to me, that the mother of my Lord should come -to me? 1:44 For, lo, as soon as the voice of thy salutation sounded -in mine ears, the babe leaped in my womb for joy. - -1:45 And blessed is she that believed: for there shall be a -performance of those things which were told her from the Lord. - -1:46 And Mary said, My soul doth magnify the Lord, 1:47 And my spirit -hath rejoiced in God my Saviour. - -1:48 For he hath regarded the low estate of his handmaiden: for, -behold, from henceforth all generations shall call me blessed. - -1:49 For he that is mighty hath done to me great things; and holy is -his name. - -1:50 And his mercy is on them that fear him from generation to -generation. - -1:51 He hath shewed strength with his arm; he hath scattered the proud -in the imagination of their hearts. - -1:52 He hath put down the mighty from their seats, and exalted them of -low degree. - -1:53 He hath filled the hungry with good things; and the rich he hath -sent empty away. - -1:54 He hath holpen his servant Israel, in remembrance of his mercy; -1:55 As he spake to our fathers, to Abraham, and to his seed for ever. - -1:56 And Mary abode with her about three months, and returned to her -own house. - -1:57 Now Elisabeth's full time came that she should be delivered; and -she brought forth a son. - -1:58 And her neighbours and her cousins heard how the Lord had shewed -great mercy upon her; and they rejoiced with her. - -1:59 And it came to pass, that on the eighth day they came to -circumcise the child; and they called him Zacharias, after the name of -his father. - -1:60 And his mother answered and said, Not so; but he shall be called -John. - -1:61 And they said unto her, There is none of thy kindred that is -called by this name. - -1:62 And they made signs to his father, how he would have him called. - -1:63 And he asked for a writing table, and wrote, saying, His name is -John. And they marvelled all. - -1:64 And his mouth was opened immediately, and his tongue loosed, and -he spake, and praised God. - -1:65 And fear came on all that dwelt round about them: and all these -sayings were noised abroad throughout all the hill country of Judaea. - -1:66 And all they that heard them laid them up in their hearts, -saying, What manner of child shall this be! And the hand of the Lord -was with him. - -1:67 And his father Zacharias was filled with the Holy Ghost, and -prophesied, saying, 1:68 Blessed be the Lord God of Israel; for he -hath visited and redeemed his people, 1:69 And hath raised up an horn -of salvation for us in the house of his servant David; 1:70 As he -spake by the mouth of his holy prophets, which have been since the -world began: 1:71 That we should be saved from our enemies, and from -the hand of all that hate us; 1:72 To perform the mercy promised to -our fathers, and to remember his holy covenant; 1:73 The oath which he -sware to our father Abraham, 1:74 That he would grant unto us, that we -being delivered out of the hand of our enemies might serve him without -fear, 1:75 In holiness and righteousness before him, all the days of -our life. - -1:76 And thou, child, shalt be called the prophet of the Highest: for -thou shalt go before the face of the Lord to prepare his ways; 1:77 To -give knowledge of salvation unto his people by the remission of their -sins, 1:78 Through the tender mercy of our God; whereby the dayspring -from on high hath visited us, 1:79 To give light to them that sit in -darkness and in the shadow of death, to guide our feet into the way of -peace. - -1:80 And the child grew, and waxed strong in spirit, and was in the -deserts till the day of his shewing unto Israel. - -2:1 And it came to pass in those days, that there went out a decree -from Caesar Augustus that all the world should be taxed. - -2:2 (And this taxing was first made when Cyrenius was governor of -Syria.) 2:3 And all went to be taxed, every one into his own city. - -2:4 And Joseph also went up from Galilee, out of the city of Nazareth, -into Judaea, unto the city of David, which is called Bethlehem; -(because he was of the house and lineage of David:) 2:5 To be taxed -with Mary his espoused wife, being great with child. - -2:6 And so it was, that, while they were there, the days were -accomplished that she should be delivered. - -2:7 And she brought forth her firstborn son, and wrapped him in -swaddling clothes, and laid him in a manger; because there was no room -for them in the inn. - -2:8 And there were in the same country shepherds abiding in the field, -keeping watch over their flock by night. - -2:9 And, lo, the angel of the Lord came upon them, and the glory of -the Lord shone round about them: and they were sore afraid. - -2:10 And the angel said unto them, Fear not: for, behold, I bring you -good tidings of great joy, which shall be to all people. - -2:11 For unto you is born this day in the city of David a Saviour, -which is Christ the Lord. - -2:12 And this shall be a sign unto you; Ye shall find the babe wrapped -in swaddling clothes, lying in a manger. - -2:13 And suddenly there was with the angel a multitude of the heavenly -host praising God, and saying, 2:14 Glory to God in the highest, and -on earth peace, good will toward men. - -2:15 And it came to pass, as the angels were gone away from them into -heaven, the shepherds said one to another, Let us now go even unto -Bethlehem, and see this thing which is come to pass, which the Lord -hath made known unto us. - -2:16 And they came with haste, and found Mary, and Joseph, and the -babe lying in a manger. - -2:17 And when they had seen it, they made known abroad the saying -which was told them concerning this child. - -2:18 And all they that heard it wondered at those things which were -told them by the shepherds. - -2:19 But Mary kept all these things, and pondered them in her heart. - -2:20 And the shepherds returned, glorifying and praising God for all -the things that they had heard and seen, as it was told unto them. - -2:21 And when eight days were accomplished for the circumcising of the -child, his name was called JESUS, which was so named of the angel -before he was conceived in the womb. - -2:22 And when the days of her purification according to the law of -Moses were accomplished, they brought him to Jerusalem, to present him -to the Lord; 2:23 (As it is written in the law of the LORD, Every male -that openeth the womb shall be called holy to the Lord;) 2:24 And to -offer a sacrifice according to that which is said in the law of the -Lord, A pair of turtledoves, or two young pigeons. - -2:25 And, behold, there was a man in Jerusalem, whose name was Simeon; -and the same man was just and devout, waiting for the consolation of -Israel: and the Holy Ghost was upon him. - -2:26 And it was revealed unto him by the Holy Ghost, that he should -not see death, before he had seen the Lord's Christ. - -2:27 And he came by the Spirit into the temple: and when the parents -brought in the child Jesus, to do for him after the custom of the law, -2:28 Then took he him up in his arms, and blessed God, and said, 2:29 -Lord, now lettest thou thy servant depart in peace, according to thy -word: 2:30 For mine eyes have seen thy salvation, 2:31 Which thou hast -prepared before the face of all people; 2:32 A light to lighten the -Gentiles, and the glory of thy people Israel. - -2:33 And Joseph and his mother marvelled at those things which were -spoken of him. - -2:34 And Simeon blessed them, and said unto Mary his mother, Behold, -this child is set for the fall and rising again of many in Israel; and -for a sign which shall be spoken against; 2:35 (Yea, a sword shall -pierce through thy own soul also,) that the thoughts of many hearts -may be revealed. - -2:36 And there was one Anna, a prophetess, the daughter of Phanuel, of -the tribe of Aser: she was of a great age, and had lived with an -husband seven years from her virginity; 2:37 And she was a widow of -about fourscore and four years, which departed not from the temple, -but served God with fastings and prayers night and day. - -2:38 And she coming in that instant gave thanks likewise unto the -Lord, and spake of him to all them that looked for redemption in -Jerusalem. - -2:39 And when they had performed all things according to the law of -the Lord, they returned into Galilee, to their own city Nazareth. - -2:40 And the child grew, and waxed strong in spirit, filled with -wisdom: and the grace of God was upon him. - -2:41 Now his parents went to Jerusalem every year at the feast of the -passover. - -2:42 And when he was twelve years old, they went up to Jerusalem after -the custom of the feast. - -2:43 And when they had fulfilled the days, as they returned, the child -Jesus tarried behind in Jerusalem; and Joseph and his mother knew not -of it. - -2:44 But they, supposing him to have been in the company, went a day's -journey; and they sought him among their kinsfolk and acquaintance. - -2:45 And when they found him not, they turned back again to Jerusalem, -seeking him. - -2:46 And it came to pass, that after three days they found him in the -temple, sitting in the midst of the doctors, both hearing them, and -asking them questions. - -2:47 And all that heard him were astonished at his understanding and -answers. - -2:48 And when they saw him, they were amazed: and his mother said unto -him, Son, why hast thou thus dealt with us? behold, thy father and I -have sought thee sorrowing. - -2:49 And he said unto them, How is it that ye sought me? wist ye not -that I must be about my Father's business? 2:50 And they understood -not the saying which he spake unto them. - -2:51 And he went down with them, and came to Nazareth, and was subject -unto them: but his mother kept all these sayings in her heart. - -2:52 And Jesus increased in wisdom and stature, and in favour with God -and man. - -3:1 Now in the fifteenth year of the reign of Tiberius Caesar, Pontius -Pilate being governor of Judaea, and Herod being tetrarch of Galilee, -and his brother Philip tetrarch of Ituraea and of the region of -Trachonitis, and Lysanias the tetrarch of Abilene, 3:2 Annas and -Caiaphas being the high priests, the word of God came unto John the -son of Zacharias in the wilderness. - -3:3 And he came into all the country about Jordan, preaching the -baptism of repentance for the remission of sins; 3:4 As it is written -in the book of the words of Esaias the prophet, saying, The voice of -one crying in the wilderness, Prepare ye the way of the Lord, make his -paths straight. - -3:5 Every valley shall be filled, and every mountain and hill shall be -brought low; and the crooked shall be made straight, and the rough -ways shall be made smooth; 3:6 And all flesh shall see the salvation -of God. - -3:7 Then said he to the multitude that came forth to be baptized of -him, O generation of vipers, who hath warned you to flee from the -wrath to come? 3:8 Bring forth therefore fruits worthy of repentance, -and begin not to say within yourselves, We have Abraham to our father: -for I say unto you, That God is able of these stones to raise up -children unto Abraham. - -3:9 And now also the axe is laid unto the root of the trees: every -tree therefore which bringeth not forth good fruit is hewn down, and -cast into the fire. - -3:10 And the people asked him, saying, What shall we do then? 3:11 He -answereth and saith unto them, He that hath two coats, let him impart -to him that hath none; and he that hath meat, let him do likewise. - -3:12 Then came also publicans to be baptized, and said unto him, -Master, what shall we do? 3:13 And he said unto them, Exact no more -than that which is appointed you. - -3:14 And the soldiers likewise demanded of him, saying, And what shall -we do? And he said unto them, Do violence to no man, neither accuse -any falsely; and be content with your wages. - -3:15 And as the people were in expectation, and all men mused in their -hearts of John, whether he were the Christ, or not; 3:16 John -answered, saying unto them all, I indeed baptize you with water; but -one mightier than I cometh, the latchet of whose shoes I am not worthy -to unloose: he shall baptize you with the Holy Ghost and with fire: -3:17 Whose fan is in his hand, and he will throughly purge his floor, -and will gather the wheat into his garner; but the chaff he will burn -with fire unquenchable. - -3:18 And many other things in his exhortation preached he unto the -people. - -3:19 But Herod the tetrarch, being reproved by him for Herodias his -brother Philip's wife, and for all the evils which Herod had done, -3:20 Added yet this above all, that he shut up John in prison. - -3:21 Now when all the people were baptized, it came to pass, that -Jesus also being baptized, and praying, the heaven was opened, 3:22 -And the Holy Ghost descended in a bodily shape like a dove upon him, -and a voice came from heaven, which said, Thou art my beloved Son; in -thee I am well pleased. - -3:23 And Jesus himself began to be about thirty years of age, being -(as was supposed) the son of Joseph, which was the son of Heli, 3:24 -Which was the son of Matthat, which was the son of Levi, which was the -son of Melchi, which was the son of Janna, which was the son of -Joseph, 3:25 Which was the son of Mattathias, which was the son of -Amos, which was the son of Naum, which was the son of Esli, which was -the son of Nagge, 3:26 Which was the son of Maath, which was the son -of Mattathias, which was the son of Semei, which was the son of -Joseph, which was the son of Juda, 3:27 Which was the son of Joanna, -which was the son of Rhesa, which was the son of Zorobabel, which was -the son of Salathiel, which was the son of Neri, 3:28 Which was the -son of Melchi, which was the son of Addi, which was the son of Cosam, -which was the son of Elmodam, which was the son of Er, 3:29 Which was -the son of Jose, which was the son of Eliezer, which was the son of -Jorim, which was the son of Matthat, which was the son of Levi, 3:30 -Which was the son of Simeon, which was the son of Juda, which was the -son of Joseph, which was the son of Jonan, which was the son of -Eliakim, 3:31 Which was the son of Melea, which was the son of Menan, -which was the son of Mattatha, which was the son of Nathan, which was -the son of David, 3:32 Which was the son of Jesse, which was the son -of Obed, which was the son of Booz, which was the son of Salmon, which -was the son of Naasson, 3:33 Which was the son of Aminadab, which was -the son of Aram, which was the son of Esrom, which was the son of -Phares, which was the son of Juda, 3:34 Which was the son of Jacob, -which was the son of Isaac, which was the son of Abraham, which was -the son of Thara, which was the son of Nachor, 3:35 Which was the son -of Saruch, which was the son of Ragau, which was the son of Phalec, -which was the son of Heber, which was the son of Sala, 3:36 Which was -the son of Cainan, which was the son of Arphaxad, which was the son of -Sem, which was the son of Noe, which was the son of Lamech, 3:37 Which -was the son of Mathusala, which was the son of Enoch, which was the -son of Jared, which was the son of Maleleel, which was the son of -Cainan, 3:38 Which was the son of Enos, which was the son of Seth, -which was the son of Adam, which was the son of God. - -4:1 And Jesus being full of the Holy Ghost returned from Jordan, and -was led by the Spirit into the wilderness, 4:2 Being forty days -tempted of the devil. And in those days he did eat nothing: and when -they were ended, he afterward hungered. - -4:3 And the devil said unto him, If thou be the Son of God, command -this stone that it be made bread. - -4:4 And Jesus answered him, saying, It is written, That man shall not -live by bread alone, but by every word of God. - -4:5 And the devil, taking him up into an high mountain, shewed unto -him all the kingdoms of the world in a moment of time. - -4:6 And the devil said unto him, All this power will I give thee, and -the glory of them: for that is delivered unto me; and to whomsoever I -will I give it. - -4:7 If thou therefore wilt worship me, all shall be thine. - -4:8 And Jesus answered and said unto him, Get thee behind me, Satan: -for it is written, Thou shalt worship the Lord thy God, and him only -shalt thou serve. - -4:9 And he brought him to Jerusalem, and set him on a pinnacle of the -temple, and said unto him, If thou be the Son of God, cast thyself -down from hence: 4:10 For it is written, He shall give his angels -charge over thee, to keep thee: 4:11 And in their hands they shall -bear thee up, lest at any time thou dash thy foot against a stone. - -4:12 And Jesus answering said unto him, It is said, Thou shalt not -tempt the Lord thy God. - -4:13 And when the devil had ended all the temptation, he departed from -him for a season. - -4:14 And Jesus returned in the power of the Spirit into Galilee: and -there went out a fame of him through all the region round about. - -4:15 And he taught in their synagogues, being glorified of all. - -4:16 And he came to Nazareth, where he had been brought up: and, as -his custom was, he went into the synagogue on the sabbath day, and -stood up for to read. - -4:17 And there was delivered unto him the book of the prophet Esaias. -And when he had opened the book, he found the place where it was -written, 4:18 The Spirit of the Lord is upon me, because he hath -anointed me to preach the gospel to the poor; he hath sent me to heal -the brokenhearted, to preach deliverance to the captives, and -recovering of sight to the blind, to set at liberty them that are -bruised, 4:19 To preach the acceptable year of the Lord. - -4:20 And he closed the book, and he gave it again to the minister, and -sat down. And the eyes of all them that were in the synagogue were -fastened on him. - -4:21 And he began to say unto them, This day is this scripture -fulfilled in your ears. - -4:22 And all bare him witness, and wondered at the gracious words -which proceeded out of his mouth. And they said, Is not this Joseph's -son? 4:23 And he said unto them, Ye will surely say unto me this -proverb, Physician, heal thyself: whatsoever we have heard done in -Capernaum, do also here in thy country. - -4:24 And he said, Verily I say unto you, No prophet is accepted in his -own country. - -4:25 But I tell you of a truth, many widows were in Israel in the days -of Elias, when the heaven was shut up three years and six months, when -great famine was throughout all the land; 4:26 But unto none of them -was Elias sent, save unto Sarepta, a city of Sidon, unto a woman that -was a widow. - -4:27 And many lepers were in Israel in the time of Eliseus the -prophet; and none of them was cleansed, saving Naaman the Syrian. - -4:28 And all they in the synagogue, when they heard these things, were -filled with wrath, 4:29 And rose up, and thrust him out of the city, -and led him unto the brow of the hill whereon their city was built, -that they might cast him down headlong. - -4:30 But he passing through the midst of them went his way, 4:31 And -came down to Capernaum, a city of Galilee, and taught them on the -sabbath days. - -4:32 And they were astonished at his doctrine: for his word was with -power. - -4:33 And in the synagogue there was a man, which had a spirit of an -unclean devil, and cried out with a loud voice, 4:34 Saying, Let us -alone; what have we to do with thee, thou Jesus of Nazareth? art thou -come to destroy us? I know thee who thou art; the Holy One of God. - -4:35 And Jesus rebuked him, saying, Hold thy peace, and come out of -him. - -And when the devil had thrown him in the midst, he came out of him, -and hurt him not. - -4:36 And they were all amazed, and spake among themselves, saying, -What a word is this! for with authority and power he commandeth the -unclean spirits, and they come out. - -4:37 And the fame of him went out into every place of the country -round about. - -4:38 And he arose out of the synagogue, and entered into Simon's -house. - -And Simon's wife's mother was taken with a great fever; and they -besought him for her. - -4:39 And he stood over her, and rebuked the fever; and it left her: -and immediately she arose and ministered unto them. - -4:40 Now when the sun was setting, all they that had any sick with -divers diseases brought them unto him; and he laid his hands on every -one of them, and healed them. - -4:41 And devils also came out of many, crying out, and saying, Thou -art Christ the Son of God. And he rebuking them suffered them not to -speak: for they knew that he was Christ. - -4:42 And when it was day, he departed and went into a desert place: -and the people sought him, and came unto him, and stayed him, that he -should not depart from them. - -4:43 And he said unto them, I must preach the kingdom of God to other -cities also: for therefore am I sent. - -4:44 And he preached in the synagogues of Galilee. - -5:1 And it came to pass, that, as the people pressed upon him to hear -the word of God, he stood by the lake of Gennesaret, 5:2 And saw two -ships standing by the lake: but the fishermen were gone out of them, -and were washing their nets. - -5:3 And he entered into one of the ships, which was Simon's, and -prayed him that he would thrust out a little from the land. And he sat -down, and taught the people out of the ship. - -5:4 Now when he had left speaking, he said unto Simon, Launch out into -the deep, and let down your nets for a draught. - -5:5 And Simon answering said unto him, Master, we have toiled all the -night, and have taken nothing: nevertheless at thy word I will let -down the net. - -5:6 And when they had this done, they inclosed a great multitude of -fishes: and their net brake. - -5:7 And they beckoned unto their partners, which were in the other -ship, that they should come and help them. And they came, and filled -both the ships, so that they began to sink. - -5:8 When Simon Peter saw it, he fell down at Jesus' knees, saying, -Depart from me; for I am a sinful man, O Lord. - -5:9 For he was astonished, and all that were with him, at the draught -of the fishes which they had taken: 5:10 And so was also James, and -John, the sons of Zebedee, which were partners with Simon. And Jesus -said unto Simon, Fear not; from henceforth thou shalt catch men. - -5:11 And when they had brought their ships to land, they forsook all, -and followed him. - -5:12 And it came to pass, when he was in a certain city, behold a man -full of leprosy: who seeing Jesus fell on his face, and besought him, -saying, Lord, if thou wilt, thou canst make me clean. - -5:13 And he put forth his hand, and touched him, saying, I will: be -thou clean. And immediately the leprosy departed from him. - -5:14 And he charged him to tell no man: but go, and shew thyself to -the priest, and offer for thy cleansing, according as Moses commanded, -for a testimony unto them. - -5:15 But so much the more went there a fame abroad of him: and great -multitudes came together to hear, and to be healed by him of their -infirmities. - -5:16 And he withdrew himself into the wilderness, and prayed. - -5:17 And it came to pass on a certain day, as he was teaching, that -there were Pharisees and doctors of the law sitting by, which were -come out of every town of Galilee, and Judaea, and Jerusalem: and the -power of the Lord was present to heal them. - -5:18 And, behold, men brought in a bed a man which was taken with a -palsy: and they sought means to bring him in, and to lay him before -him. - -5:19 And when they could not find by what way they might bring him in -because of the multitude, they went upon the housetop, and let him -down through the tiling with his couch into the midst before Jesus. - -5:20 And when he saw their faith, he said unto him, Man, thy sins are -forgiven thee. - -5:21 And the scribes and the Pharisees began to reason, saying, Who is -this which speaketh blasphemies? Who can forgive sins, but God alone? -5:22 But when Jesus perceived their thoughts, he answering said unto -them, What reason ye in your hearts? 5:23 Whether is easier, to say, -Thy sins be forgiven thee; or to say, Rise up and walk? 5:24 But that -ye may know that the Son of man hath power upon earth to forgive sins, -(he said unto the sick of the palsy,) I say unto thee, Arise, and take -up thy couch, and go into thine house. - -5:25 And immediately he rose up before them, and took up that whereon -he lay, and departed to his own house, glorifying God. - -5:26 And they were all amazed, and they glorified God, and were filled -with fear, saying, We have seen strange things to day. - -5:27 And after these things he went forth, and saw a publican, named -Levi, sitting at the receipt of custom: and he said unto him, Follow -me. - -5:28 And he left all, rose up, and followed him. - -5:29 And Levi made him a great feast in his own house: and there was a -great company of publicans and of others that sat down with them. - -5:30 But their scribes and Pharisees murmured against his disciples, -saying, Why do ye eat and drink with publicans and sinners? 5:31 And -Jesus answering said unto them, They that are whole need not a -physician; but they that are sick. - -5:32 I came not to call the righteous, but sinners to repentance. - -5:33 And they said unto him, Why do the disciples of John fast often, -and make prayers, and likewise the disciples of the Pharisees; but -thine eat and drink? 5:34 And he said unto them, Can ye make the -children of the bridechamber fast, while the bridegroom is with them? -5:35 But the days will come, when the bridegroom shall be taken away -from them, and then shall they fast in those days. - -5:36 And he spake also a parable unto them; No man putteth a piece of -a new garment upon an old; if otherwise, then both the new maketh a -rent, and the piece that was taken out of the new agreeth not with the -old. - -5:37 And no man putteth new wine into old bottles; else the new wine -will burst the bottles, and be spilled, and the bottles shall perish. - -5:38 But new wine must be put into new bottles; and both are -preserved. - -5:39 No man also having drunk old wine straightway desireth new: for -he saith, The old is better. - -6:1 And it came to pass on the second sabbath after the first, that he -went through the corn fields; and his disciples plucked the ears of -corn, and did eat, rubbing them in their hands. - -6:2 And certain of the Pharisees said unto them, Why do ye that which -is not lawful to do on the sabbath days? 6:3 And Jesus answering them -said, Have ye not read so much as this, what David did, when himself -was an hungred, and they which were with him; 6:4 How he went into the -house of God, and did take and eat the shewbread, and gave also to -them that were with him; which it is not lawful to eat but for the -priests alone? 6:5 And he said unto them, That the Son of man is Lord -also of the sabbath. - -6:6 And it came to pass also on another sabbath, that he entered into -the synagogue and taught: and there was a man whose right hand was -withered. - -6:7 And the scribes and Pharisees watched him, whether he would heal -on the sabbath day; that they might find an accusation against him. - -6:8 But he knew their thoughts, and said to the man which had the -withered hand, Rise up, and stand forth in the midst. And he arose and -stood forth. - -6:9 Then said Jesus unto them, I will ask you one thing; Is it lawful -on the sabbath days to do good, or to do evil? to save life, or to -destroy it? 6:10 And looking round about upon them all, he said unto -the man, Stretch forth thy hand. And he did so: and his hand was -restored whole as the other. - -6:11 And they were filled with madness; and communed one with another -what they might do to Jesus. - -6:12 And it came to pass in those days, that he went out into a -mountain to pray, and continued all night in prayer to God. - -6:13 And when it was day, he called unto him his disciples: and of -them he chose twelve, whom also he named apostles; 6:14 Simon, (whom -he also named Peter,) and Andrew his brother, James and John, Philip -and Bartholomew, 6:15 Matthew and Thomas, James the son of Alphaeus, -and Simon called Zelotes, 6:16 And Judas the brother of James, and -Judas Iscariot, which also was the traitor. - -6:17 And he came down with them, and stood in the plain, and the -company of his disciples, and a great multitude of people out of all -Judaea and Jerusalem, and from the sea coast of Tyre and Sidon, which -came to hear him, and to be healed of their diseases; 6:18 And they -that were vexed with unclean spirits: and they were healed. - -6:19 And the whole multitude sought to touch him: for there went -virtue out of him, and healed them all. - -6:20 And he lifted up his eyes on his disciples, and said, Blessed be -ye poor: for yours is the kingdom of God. - -6:21 Blessed are ye that hunger now: for ye shall be filled. Blessed -are ye that weep now: for ye shall laugh. - -6:22 Blessed are ye, when men shall hate you, and when they shall -separate you from their company, and shall reproach you, and cast out -your name as evil, for the Son of man's sake. - -6:23 Rejoice ye in that day, and leap for joy: for, behold, your -reward is great in heaven: for in the like manner did their fathers -unto the prophets. - -6:24 But woe unto you that are rich! for ye have received your -consolation. - -6:25 Woe unto you that are full! for ye shall hunger. Woe unto you -that laugh now! for ye shall mourn and weep. - -6:26 Woe unto you, when all men shall speak well of you! for so did -their fathers to the false prophets. - -6:27 But I say unto you which hear, Love your enemies, do good to them -which hate you, 6:28 Bless them that curse you, and pray for them -which despitefully use you. - -6:29 And unto him that smiteth thee on the one cheek offer also the -other; and him that taketh away thy cloak forbid not to take thy coat -also. - -6:30 Give to every man that asketh of thee; and of him that taketh -away thy goods ask them not again. - -6:31 And as ye would that men should do to you, do ye also to them -likewise. - -6:32 For if ye love them which love you, what thank have ye? for -sinners also love those that love them. - -6:33 And if ye do good to them which do good to you, what thank have -ye? for sinners also do even the same. - -6:34 And if ye lend to them of whom ye hope to receive, what thank -have ye? for sinners also lend to sinners, to receive as much again. - -6:35 But love ye your enemies, and do good, and lend, hoping for -nothing again; and your reward shall be great, and ye shall be the -children of the Highest: for he is kind unto the unthankful and to the -evil. - -6:36 Be ye therefore merciful, as your Father also is merciful. - -6:37 Judge not, and ye shall not be judged: condemn not, and ye shall -not be condemned: forgive, and ye shall be forgiven: 6:38 Give, and it -shall be given unto you; good measure, pressed down, and shaken -together, and running over, shall men give into your bosom. For with -the same measure that ye mete withal it shall be measured to you -again. - -6:39 And he spake a parable unto them, Can the blind lead the blind? -shall they not both fall into the ditch? 6:40 The disciple is not -above his master: but every one that is perfect shall be as his -master. - -6:41 And why beholdest thou the mote that is in thy brother's eye, but -perceivest not the beam that is in thine own eye? 6:42 Either how -canst thou say to thy brother, Brother, let me pull out the mote that -is in thine eye, when thou thyself beholdest not the beam that is in -thine own eye? Thou hypocrite, cast out first the beam out of thine -own eye, and then shalt thou see clearly to pull out the mote that is -in thy brother's eye. - -6:43 For a good tree bringeth not forth corrupt fruit; neither doth a -corrupt tree bring forth good fruit. - -6:44 For every tree is known by his own fruit. For of thorns men do -not gather figs, nor of a bramble bush gather they grapes. - -6:45 A good man out of the good treasure of his heart bringeth forth -that which is good; and an evil man out of the evil treasure of his -heart bringeth forth that which is evil: for of the abundance of the -heart his mouth speaketh. - -6:46 And why call ye me, Lord, Lord, and do not the things which I -say? 6:47 Whosoever cometh to me, and heareth my sayings, and doeth -them, I will shew you to whom he is like: 6:48 He is like a man which -built an house, and digged deep, and laid the foundation on a rock: -and when the flood arose, the stream beat vehemently upon that house, -and could not shake it: for it was founded upon a rock. - -6:49 But he that heareth, and doeth not, is like a man that without a -foundation built an house upon the earth; against which the stream did -beat vehemently, and immediately it fell; and the ruin of that house -was great. - -7:1 Now when he had ended all his sayings in the audience of the -people, he entered into Capernaum. - -7:2 And a certain centurion's servant, who was dear unto him, was -sick, and ready to die. - -7:3 And when he heard of Jesus, he sent unto him the elders of the -Jews, beseeching him that he would come and heal his servant. - -7:4 And when they came to Jesus, they besought him instantly, saying, -That he was worthy for whom he should do this: 7:5 For he loveth our -nation, and he hath built us a synagogue. - -7:6 Then Jesus went with them. And when he was now not far from the -house, the centurion sent friends to him, saying unto him, Lord, -trouble not thyself: for I am not worthy that thou shouldest enter -under my roof: 7:7 Wherefore neither thought I myself worthy to come -unto thee: but say in a word, and my servant shall be healed. - -7:8 For I also am a man set under authority, having under me soldiers, -and I say unto one, Go, and he goeth; and to another, Come, and he -cometh; and to my servant, Do this, and he doeth it. - -7:9 When Jesus heard these things, he marvelled at him, and turned him -about, and said unto the people that followed him, I say unto you, I -have not found so great faith, no, not in Israel. - -7:10 And they that were sent, returning to the house, found the -servant whole that had been sick. - -7:11 And it came to pass the day after, that he went into a city -called Nain; and many of his disciples went with him, and much people. - -7:12 Now when he came nigh to the gate of the city, behold, there was -a dead man carried out, the only son of his mother, and she was a -widow: and much people of the city was with her. - -7:13 And when the Lord saw her, he had compassion on her, and said -unto her, Weep not. - -7:14 And he came and touched the bier: and they that bare him stood -still. - -And he said, Young man, I say unto thee, Arise. - -7:15 And he that was dead sat up, and began to speak. And he delivered -him to his mother. - -7:16 And there came a fear on all: and they glorified God, saying, -That a great prophet is risen up among us; and, That God hath visited -his people. - -7:17 And this rumour of him went forth throughout all Judaea, and -throughout all the region round about. - -7:18 And the disciples of John shewed him of all these things. - -7:19 And John calling unto him two of his disciples sent them to -Jesus, saying, Art thou he that should come? or look we for another? -7:20 When the men were come unto him, they said, John Baptist hath -sent us unto thee, saying, Art thou he that should come? or look we -for another? 7:21 And in that same hour he cured many of their -infirmities and plagues, and of evil spirits; and unto many that were -blind he gave sight. - -7:22 Then Jesus answering said unto them, Go your way, and tell John -what things ye have seen and heard; how that the blind see, the lame -walk, the lepers are cleansed, the deaf hear, the dead are raised, to -the poor the gospel is preached. - -7:23 And blessed is he, whosoever shall not be offended in me. - -7:24 And when the messengers of John were departed, he began to speak -unto the people concerning John, What went ye out into the wilderness -for to see? A reed shaken with the wind? 7:25 But what went ye out -for to see? A man clothed in soft raiment? Behold, they which are -gorgeously apparelled, and live delicately, are in kings' courts. - -7:26 But what went ye out for to see? A prophet? Yea, I say unto you, -and much more than a prophet. - -7:27 This is he, of whom it is written, Behold, I send my messenger -before thy face, which shall prepare thy way before thee. - -7:28 For I say unto you, Among those that are born of women there is -not a greater prophet than John the Baptist: but he that is least in -the kingdom of God is greater than he. - -7:29 And all the people that heard him, and the publicans, justified -God, being baptized with the baptism of John. - -7:30 But the Pharisees and lawyers rejected the counsel of God against -themselves, being not baptized of him. - -7:31 And the Lord said, Whereunto then shall I liken the men of this -generation? and to what are they like? 7:32 They are like unto -children sitting in the marketplace, and calling one to another, and -saying, We have piped unto you, and ye have not danced; we have -mourned to you, and ye have not wept. - -7:33 For John the Baptist came neither eating bread nor drinking wine; -and ye say, He hath a devil. - -7:34 The Son of man is come eating and drinking; and ye say, Behold a -gluttonous man, and a winebibber, a friend of publicans and sinners! -7:35 But wisdom is justified of all her children. - -7:36 And one of the Pharisees desired him that he would eat with him. -And he went into the Pharisee's house, and sat down to meat. - -7:37 And, behold, a woman in the city, which was a sinner, when she -knew that Jesus sat at meat in the Pharisee's house, brought an -alabaster box of ointment, 7:38 And stood at his feet behind him -weeping, and began to wash his feet with tears, and did wipe them with -the hairs of her head, and kissed his feet, and anointed them with the -ointment. - -7:39 Now when the Pharisee which had bidden him saw it, he spake -within himself, saying, This man, if he were a prophet, would have -known who and what manner of woman this is that toucheth him: for she -is a sinner. - -7:40 And Jesus answering said unto him, Simon, I have somewhat to say -unto thee. And he saith, Master, say on. - -7:41 There was a certain creditor which had two debtors: the one owed -five hundred pence, and the other fifty. - -7:42 And when they had nothing to pay, he frankly forgave them both. -Tell me therefore, which of them will love him most? 7:43 Simon -answered and said, I suppose that he, to whom he forgave most. - -And he said unto him, Thou hast rightly judged. - -7:44 And he turned to the woman, and said unto Simon, Seest thou this -woman? I entered into thine house, thou gavest me no water for my -feet: but she hath washed my feet with tears, and wiped them with the -hairs of her head. - -7:45 Thou gavest me no kiss: but this woman since the time I came in -hath not ceased to kiss my feet. - -7:46 My head with oil thou didst not anoint: but this woman hath -anointed my feet with ointment. - -7:47 Wherefore I say unto thee, Her sins, which are many, are -forgiven; for she loved much: but to whom little is forgiven, the same -loveth little. - -7:48 And he said unto her, Thy sins are forgiven. - -7:49 And they that sat at meat with him began to say within -themselves, Who is this that forgiveth sins also? 7:50 And he said to -the woman, Thy faith hath saved thee; go in peace. - -8:1 And it came to pass afterward, that he went throughout every city -and village, preaching and shewing the glad tidings of the kingdom of -God: and the twelve were with him, 8:2 And certain women, which had -been healed of evil spirits and infirmities, Mary called Magdalene, -out of whom went seven devils, 8:3 And Joanna the wife of Chuza -Herod's steward, and Susanna, and many others, which ministered unto -him of their substance. - -8:4 And when much people were gathered together, and were come to him -out of every city, he spake by a parable: 8:5 A sower went out to sow -his seed: and as he sowed, some fell by the way side; and it was -trodden down, and the fowls of the air devoured it. - -8:6 And some fell upon a rock; and as soon as it was sprung up, it -withered away, because it lacked moisture. - -8:7 And some fell among thorns; and the thorns sprang up with it, and -choked it. - -8:8 And other fell on good ground, and sprang up, and bare fruit an -hundredfold. And when he had said these things, he cried, He that hath -ears to hear, let him hear. - -8:9 And his disciples asked him, saying, What might this parable be? -8:10 And he said, Unto you it is given to know the mysteries of the -kingdom of God: but to others in parables; that seeing they might not -see, and hearing they might not understand. - -8:11 Now the parable is this: The seed is the word of God. - -8:12 Those by the way side are they that hear; then cometh the devil, -and taketh away the word out of their hearts, lest they should believe -and be saved. - -8:13 They on the rock are they, which, when they hear, receive the -word with joy; and these have no root, which for a while believe, and -in time of temptation fall away. - -8:14 And that which fell among thorns are they, which, when they have -heard, go forth, and are choked with cares and riches and pleasures of -this life, and bring no fruit to perfection. - -8:15 But that on the good ground are they, which in an honest and good -heart, having heard the word, keep it, and bring forth fruit with -patience. - -8:16 No man, when he hath lighted a candle, covereth it with a vessel, -or putteth it under a bed; but setteth it on a candlestick, that they -which enter in may see the light. - -8:17 For nothing is secret, that shall not be made manifest; neither -any thing hid, that shall not be known and come abroad. - -8:18 Take heed therefore how ye hear: for whosoever hath, to him shall -be given; and whosoever hath not, from him shall be taken even that -which he seemeth to have. - -8:19 Then came to him his mother and his brethren, and could not come -at him for the press. - -8:20 And it was told him by certain which said, Thy mother and thy -brethren stand without, desiring to see thee. - -8:21 And he answered and said unto them, My mother and my brethren are -these which hear the word of God, and do it. - -8:22 Now it came to pass on a certain day, that he went into a ship -with his disciples: and he said unto them, Let us go over unto the -other side of the lake. And they launched forth. - -8:23 But as they sailed he fell asleep: and there came down a storm of -wind on the lake; and they were filled with water, and were in -jeopardy. - -8:24 And they came to him, and awoke him, saying, Master, master, we -perish. Then he arose, and rebuked the wind and the raging of the -water: and they ceased, and there was a calm. - -8:25 And he said unto them, Where is your faith? And they being afraid -wondered, saying one to another, What manner of man is this! for he -commandeth even the winds and water, and they obey him. - -8:26 And they arrived at the country of the Gadarenes, which is over -against Galilee. - -8:27 And when he went forth to land, there met him out of the city a -certain man, which had devils long time, and ware no clothes, neither -abode in any house, but in the tombs. - -8:28 When he saw Jesus, he cried out, and fell down before him, and -with a loud voice said, What have I to do with thee, Jesus, thou Son -of God most high? I beseech thee, torment me not. - -8:29 (For he had commanded the unclean spirit to come out of the man. -For oftentimes it had caught him: and he was kept bound with chains -and in fetters; and he brake the bands, and was driven of the devil -into the wilderness.) 8:30 And Jesus asked him, saying, What is thy -name? And he said, Legion: because many devils were entered into him. - -8:31 And they besought him that he would not command them to go out -into the deep. - -8:32 And there was there an herd of many swine feeding on the -mountain: and they besought him that he would suffer them to enter -into them. And he suffered them. - -8:33 Then went the devils out of the man, and entered into the swine: -and the herd ran violently down a steep place into the lake, and were -choked. - -8:34 When they that fed them saw what was done, they fled, and went -and told it in the city and in the country. - -8:35 Then they went out to see what was done; and came to Jesus, and -found the man, out of whom the devils were departed, sitting at the -feet of Jesus, clothed, and in his right mind: and they were afraid. - -8:36 They also which saw it told them by what means he that was -possessed of the devils was healed. - -8:37 Then the whole multitude of the country of the Gadarenes round -about besought him to depart from them; for they were taken with great -fear: and he went up into the ship, and returned back again. - -8:38 Now the man out of whom the devils were departed besought him -that he might be with him: but Jesus sent him away, saying, 8:39 -Return to thine own house, and shew how great things God hath done -unto thee. And he went his way, and published throughout the whole -city how great things Jesus had done unto him. - -8:40 And it came to pass, that, when Jesus was returned, the people -gladly received him: for they were all waiting for him. - -8:41 And, behold, there came a man named Jairus, and he was a ruler of -the synagogue: and he fell down at Jesus' feet, and besought him that -he would come into his house: 8:42 For he had one only daughter, about -twelve years of age, and she lay a dying. But as he went the people -thronged him. - -8:43 And a woman having an issue of blood twelve years, which had -spent all her living upon physicians, neither could be healed of any, -8:44 Came behind him, and touched the border of his garment: and -immediately her issue of blood stanched. - -8:45 And Jesus said, Who touched me? When all denied, Peter and they -that were with him said, Master, the multitude throng thee and press -thee, and sayest thou, Who touched me? 8:46 And Jesus said, Somebody -hath touched me: for I perceive that virtue is gone out of me. - -8:47 And when the woman saw that she was not hid, she came trembling, -and falling down before him, she declared unto him before all the -people for what cause she had touched him, and how she was healed -immediately. - -8:48 And he said unto her, Daughter, be of good comfort: thy faith -hath made thee whole; go in peace. - -8:49 While he yet spake, there cometh one from the ruler of the -synagogue's house, saying to him, Thy daughter is dead; trouble not -the Master. - -8:50 But when Jesus heard it, he answered him, saying, Fear not: -believe only, and she shall be made whole. - -8:51 And when he came into the house, he suffered no man to go in, -save Peter, and James, and John, and the father and the mother of the -maiden. - -8:52 And all wept, and bewailed her: but he said, Weep not; she is not -dead, but sleepeth. - -8:53 And they laughed him to scorn, knowing that she was dead. - -8:54 And he put them all out, and took her by the hand, and called, -saying, Maid, arise. - -8:55 And her spirit came again, and she arose straightway: and he -commanded to give her meat. - -8:56 And her parents were astonished: but he charged them that they -should tell no man what was done. - -9:1 Then he called his twelve disciples together, and gave them power -and authority over all devils, and to cure diseases. - -9:2 And he sent them to preach the kingdom of God, and to heal the -sick. - -9:3 And he said unto them, Take nothing for your journey, neither -staves, nor scrip, neither bread, neither money; neither have two -coats apiece. - -9:4 And whatsoever house ye enter into, there abide, and thence -depart. - -9:5 And whosoever will not receive you, when ye go out of that city, -shake off the very dust from your feet for a testimony against them. - -9:6 And they departed, and went through the towns, preaching the -gospel, and healing every where. - -9:7 Now Herod the tetrarch heard of all that was done by him: and he -was perplexed, because that it was said of some, that John was risen -from the dead; 9:8 And of some, that Elias had appeared; and of -others, that one of the old prophets was risen again. - -9:9 And Herod said, John have I beheaded: but who is this, of whom I -hear such things? And he desired to see him. - -9:10 And the apostles, when they were returned, told him all that they -had done. And he took them, and went aside privately into a desert -place belonging to the city called Bethsaida. - -9:11 And the people, when they knew it, followed him: and he received -them, and spake unto them of the kingdom of God, and healed them that -had need of healing. - -9:12 And when the day began to wear away, then came the twelve, and -said unto him, Send the multitude away, that they may go into the -towns and country round about, and lodge, and get victuals: for we are -here in a desert place. - -9:13 But he said unto them, Give ye them to eat. And they said, We -have no more but five loaves and two fishes; except we should go and -buy meat for all this people. - -9:14 For they were about five thousand men. And he said to his -disciples, Make them sit down by fifties in a company. - -9:15 And they did so, and made them all sit down. - -9:16 Then he took the five loaves and the two fishes, and looking up -to heaven, he blessed them, and brake, and gave to the disciples to -set before the multitude. - -9:17 And they did eat, and were all filled: and there was taken up of -fragments that remained to them twelve baskets. - -9:18 And it came to pass, as he was alone praying, his disciples were -with him: and he asked them, saying, Whom say the people that I am? -9:19 They answering said, John the Baptist; but some say, Elias; and -others say, that one of the old prophets is risen again. - -9:20 He said unto them, But whom say ye that I am? Peter answering -said, The Christ of God. - -9:21 And he straitly charged them, and commanded them to tell no man -that thing; 9:22 Saying, The Son of man must suffer many things, and -be rejected of the elders and chief priests and scribes, and be slain, -and be raised the third day. - -9:23 And he said to them all, If any man will come after me, let him -deny himself, and take up his cross daily, and follow me. - -9:24 For whosoever will save his life shall lose it: but whosoever -will lose his life for my sake, the same shall save it. - -9:25 For what is a man advantaged, if he gain the whole world, and -lose himself, or be cast away? 9:26 For whosoever shall be ashamed of -me and of my words, of him shall the Son of man be ashamed, when he -shall come in his own glory, and in his Father's, and of the holy -angels. - -9:27 But I tell you of a truth, there be some standing here, which -shall not taste of death, till they see the kingdom of God. - -9:28 And it came to pass about an eight days after these sayings, he -took Peter and John and James, and went up into a mountain to pray. - -9:29 And as he prayed, the fashion of his countenance was altered, and -his raiment was white and glistering. - -9:30 And, behold, there talked with him two men, which were Moses and -Elias: 9:31 Who appeared in glory, and spake of his decease which he -should accomplish at Jerusalem. - -9:32 But Peter and they that were with him were heavy with sleep: and -when they were awake, they saw his glory, and the two men that stood -with him. - -9:33 And it came to pass, as they departed from him, Peter said unto -Jesus, Master, it is good for us to be here: and let us make three -tabernacles; one for thee, and one for Moses, and one for Elias: not -knowing what he said. - -9:34 While he thus spake, there came a cloud, and overshadowed them: -and they feared as they entered into the cloud. - -9:35 And there came a voice out of the cloud, saying, This is my -beloved Son: hear him. - -9:36 And when the voice was past, Jesus was found alone. And they kept -it close, and told no man in those days any of those things which they -had seen. - -9:37 And it came to pass, that on the next day, when they were come -down from the hill, much people met him. - -9:38 And, behold, a man of the company cried out, saying, Master, I -beseech thee, look upon my son: for he is mine only child. - -9:39 And, lo, a spirit taketh him, and he suddenly crieth out; and it -teareth him that he foameth again, and bruising him hardly departeth -from him. - -9:40 And I besought thy disciples to cast him out; and they could not. - -9:41 And Jesus answering said, O faithless and perverse generation, -how long shall I be with you, and suffer you? Bring thy son hither. - -9:42 And as he was yet a coming, the devil threw him down, and tare -him. - -And Jesus rebuked the unclean spirit, and healed the child, and -delivered him again to his father. - -9:43 And they were all amazed at the mighty power of God. But while -they wondered every one at all things which Jesus did, he said unto -his disciples, 9:44 Let these sayings sink down into your ears: for -the Son of man shall be delivered into the hands of men. - -9:45 But they understood not this saying, and it was hid from them, -that they perceived it not: and they feared to ask him of that saying. - -9:46 Then there arose a reasoning among them, which of them should be -greatest. - -9:47 And Jesus, perceiving the thought of their heart, took a child, -and set him by him, 9:48 And said unto them, Whosoever shall receive -this child in my name receiveth me: and whosoever shall receive me -receiveth him that sent me: for he that is least among you all, the -same shall be great. - -9:49 And John answered and said, Master, we saw one casting out devils -in thy name; and we forbad him, because he followeth not with us. - -9:50 And Jesus said unto him, Forbid him not: for he that is not -against us is for us. - -9:51 And it came to pass, when the time was come that he should be -received up, he stedfastly set his face to go to Jerusalem, 9:52 And -sent messengers before his face: and they went, and entered into a -village of the Samaritans, to make ready for him. - -9:53 And they did not receive him, because his face was as though he -would go to Jerusalem. - -9:54 And when his disciples James and John saw this, they said, Lord, -wilt thou that we command fire to come down from heaven, and consume -them, even as Elias did? 9:55 But he turned, and rebuked them, and -said, Ye know not what manner of spirit ye are of. - -9:56 For the Son of man is not come to destroy men's lives, but to -save them. And they went to another village. - -9:57 And it came to pass, that, as they went in the way, a certain man -said unto him, Lord, I will follow thee whithersoever thou goest. - -9:58 And Jesus said unto him, Foxes have holes, and birds of the air -have nests; but the Son of man hath not where to lay his head. - -9:59 And he said unto another, Follow me. But he said, Lord, suffer me -first to go and bury my father. - -9:60 Jesus said unto him, Let the dead bury their dead: but go thou -and preach the kingdom of God. - -9:61 And another also said, Lord, I will follow thee; but let me first -go bid them farewell, which are at home at my house. - -9:62 And Jesus said unto him, No man, having put his hand to the -plough, and looking back, is fit for the kingdom of God. - -10:1 After these things the LORD appointed other seventy also, and -sent them two and two before his face into every city and place, -whither he himself would come. - -10:2 Therefore said he unto them, The harvest truly is great, but the -labourers are few: pray ye therefore the Lord of the harvest, that he -would send forth labourers into his harvest. - -10:3 Go your ways: behold, I send you forth as lambs among wolves. - -10:4 Carry neither purse, nor scrip, nor shoes: and salute no man by -the way. - -10:5 And into whatsoever house ye enter, first say, Peace be to this -house. - -10:6 And if the son of peace be there, your peace shall rest upon it: -if not, it shall turn to you again. - -10:7 And in the same house remain, eating and drinking such things as -they give: for the labourer is worthy of his hire. Go not from house -to house. - -10:8 And into whatsoever city ye enter, and they receive you, eat such -things as are set before you: 10:9 And heal the sick that are therein, -and say unto them, The kingdom of God is come nigh unto you. - -10:10 But into whatsoever city ye enter, and they receive you not, go -your ways out into the streets of the same, and say, 10:11 Even the -very dust of your city, which cleaveth on us, we do wipe off against -you: notwithstanding be ye sure of this, that the kingdom of God is -come nigh unto you. - -10:12 But I say unto you, that it shall be more tolerable in that day -for Sodom, than for that city. - -10:13 Woe unto thee, Chorazin! woe unto thee, Bethsaida! for if the -mighty works had been done in Tyre and Sidon, which have been done in -you, they had a great while ago repented, sitting in sackcloth and -ashes. - -10:14 But it shall be more tolerable for Tyre and Sidon at the -judgment, than for you. - -10:15 And thou, Capernaum, which art exalted to heaven, shalt be -thrust down to hell. - -10:16 He that heareth you heareth me; and he that despiseth you -despiseth me; and he that despiseth me despiseth him that sent me. - -10:17 And the seventy returned again with joy, saying, Lord, even the -devils are subject unto us through thy name. - -10:18 And he said unto them, I beheld Satan as lightning fall from -heaven. - -10:19 Behold, I give unto you power to tread on serpents and -scorpions, and over all the power of the enemy: and nothing shall by -any means hurt you. - -10:20 Notwithstanding in this rejoice not, that the spirits are -subject unto you; but rather rejoice, because your names are written -in heaven. - -10:21 In that hour Jesus rejoiced in spirit, and said, I thank thee, O -Father, Lord of heaven and earth, that thou hast hid these things from -the wise and prudent, and hast revealed them unto babes: even so, -Father; for so it seemed good in thy sight. - -10:22 All things are delivered to me of my Father: and no man knoweth -who the Son is, but the Father; and who the Father is, but the Son, -and he to whom the Son will reveal him. - -10:23 And he turned him unto his disciples, and said privately, -Blessed are the eyes which see the things that ye see: 10:24 For I -tell you, that many prophets and kings have desired to see those -things which ye see, and have not seen them; and to hear those things -which ye hear, and have not heard them. - -10:25 And, behold, a certain lawyer stood up, and tempted him, saying, -Master, what shall I do to inherit eternal life? 10:26 He said unto -him, What is written in the law? how readest thou? 10:27 And he -answering said, Thou shalt love the Lord thy God with all thy heart, -and with all thy soul, and with all thy strength, and with all thy -mind; and thy neighbour as thyself. - -10:28 And he said unto him, Thou hast answered right: this do, and -thou shalt live. - -10:29 But he, willing to justify himself, said unto Jesus, And who is -my neighbour? 10:30 And Jesus answering said, A certain man went down -from Jerusalem to Jericho, and fell among thieves, which stripped him -of his raiment, and wounded him, and departed, leaving him half dead. - -10:31 And by chance there came down a certain priest that way: and -when he saw him, he passed by on the other side. - -10:32 And likewise a Levite, when he was at the place, came and looked -on him, and passed by on the other side. - -10:33 But a certain Samaritan, as he journeyed, came where he was: and -when he saw him, he had compassion on him, 10:34 And went to him, and -bound up his wounds, pouring in oil and wine, and set him on his own -beast, and brought him to an inn, and took care of him. - -10:35 And on the morrow when he departed, he took out two pence, and -gave them to the host, and said unto him, Take care of him; and -whatsoever thou spendest more, when I come again, I will repay thee. - -10:36 Which now of these three, thinkest thou, was neighbour unto him -that fell among the thieves? 10:37 And he said, He that shewed mercy -on him. Then said Jesus unto him, Go, and do thou likewise. - -10:38 Now it came to pass, as they went, that he entered into a -certain village: and a certain woman named Martha received him into -her house. - -10:39 And she had a sister called Mary, which also sat at Jesus' feet, -and heard his word. - -10:40 But Martha was cumbered about much serving, and came to him, and -said, Lord, dost thou not care that my sister hath left me to serve -alone? bid her therefore that she help me. - -10:41 And Jesus answered and said unto her, Martha, Martha, thou art -careful and troubled about many things: 10:42 But one thing is -needful: and Mary hath chosen that good part, which shall not be taken -away from her. - -11:1 And it came to pass, that, as he was praying in a certain place, -when he ceased, one of his disciples said unto him, Lord, teach us to -pray, as John also taught his disciples. - -11:2 And he said unto them, When ye pray, say, Our Father which art in -heaven, Hallowed be thy name. Thy kingdom come. Thy will be done, as -in heaven, so in earth. - -11:3 Give us day by day our daily bread. - -11:4 And forgive us our sins; for we also forgive every one that is -indebted to us. And lead us not into temptation; but deliver us from -evil. - -11:5 And he said unto them, Which of you shall have a friend, and -shall go unto him at midnight, and say unto him, Friend, lend me three -loaves; 11:6 For a friend of mine in his journey is come to me, and I -have nothing to set before him? 11:7 And he from within shall answer -and say, Trouble me not: the door is now shut, and my children are -with me in bed; I cannot rise and give thee. - -11:8 I say unto you, Though he will not rise and give him, because he -is his friend, yet because of his importunity he will rise and give -him as many as he needeth. - -11:9 And I say unto you, Ask, and it shall be given you; seek, and ye -shall find; knock, and it shall be opened unto you. - -11:10 For every one that asketh receiveth; and he that seeketh -findeth; and to him that knocketh it shall be opened. - -11:11 If a son shall ask bread of any of you that is a father, will he -give him a stone? or if he ask a fish, will he for a fish give him a -serpent? 11:12 Or if he shall ask an egg, will he offer him a -scorpion? 11:13 If ye then, being evil, know how to give good gifts -unto your children: how much more shall your heavenly Father give the -Holy Spirit to them that ask him? 11:14 And he was casting out a -devil, and it was dumb. And it came to pass, when the devil was gone -out, the dumb spake; and the people wondered. - -11:15 But some of them said, He casteth out devils through Beelzebub -the chief of the devils. - -11:16 And others, tempting him, sought of him a sign from heaven. - -11:17 But he, knowing their thoughts, said unto them, Every kingdom -divided against itself is brought to desolation; and a house divided -against a house falleth. - -11:18 If Satan also be divided against himself, how shall his kingdom -stand? because ye say that I cast out devils through Beelzebub. - -11:19 And if I by Beelzebub cast out devils, by whom do your sons cast -them out? therefore shall they be your judges. - -11:20 But if I with the finger of God cast out devils, no doubt the -kingdom of God is come upon you. - -11:21 When a strong man armed keepeth his palace, his goods are in -peace: 11:22 But when a stronger than he shall come upon him, and -overcome him, he taketh from him all his armour wherein he trusted, -and divideth his spoils. - -11:23 He that is not with me is against me: and he that gathereth not -with me scattereth. - -11:24 When the unclean spirit is gone out of a man, he walketh through -dry places, seeking rest; and finding none, he saith, I will return -unto my house whence I came out. - -11:25 And when he cometh, he findeth it swept and garnished. - -11:26 Then goeth he, and taketh to him seven other spirits more wicked -than himself; and they enter in, and dwell there: and the last state -of that man is worse than the first. - -11:27 And it came to pass, as he spake these things, a certain woman -of the company lifted up her voice, and said unto him, Blessed is the -womb that bare thee, and the paps which thou hast sucked. - -11:28 But he said, Yea rather, blessed are they that hear the word of -God, and keep it. - -11:29 And when the people were gathered thick together, he began to -say, This is an evil generation: they seek a sign; and there shall no -sign be given it, but the sign of Jonas the prophet. - -11:30 For as Jonas was a sign unto the Ninevites, so shall also the -Son of man be to this generation. - -11:31 The queen of the south shall rise up in the judgment with the -men of this generation, and condemn them: for she came from the utmost -parts of the earth to hear the wisdom of Solomon; and, behold, a -greater than Solomon is here. - -11:32 The men of Nineve shall rise up in the judgment with this -generation, and shall condemn it: for they repented at the preaching -of Jonas; and, behold, a greater than Jonas is here. - -11:33 No man, when he hath lighted a candle, putteth it in a secret -place, neither under a bushel, but on a candlestick, that they which -come in may see the light. - -11:34 The light of the body is the eye: therefore when thine eye is -single, thy whole body also is full of light; but when thine eye is -evil, thy body also is full of darkness. - -11:35 Take heed therefore that the light which is in thee be not -darkness. - -11:36 If thy whole body therefore be full of light, having no part -dark, the whole shall be full of light, as when the bright shining of -a candle doth give thee light. - -11:37 And as he spake, a certain Pharisee besought him to dine with -him: and he went in, and sat down to meat. - -11:38 And when the Pharisee saw it, he marvelled that he had not first -washed before dinner. - -11:39 And the Lord said unto him, Now do ye Pharisees make clean the -outside of the cup and the platter; but your inward part is full of -ravening and wickedness. - -11:40 Ye fools, did not he that made that which is without make that -which is within also? 11:41 But rather give alms of such things as ye -have; and, behold, all things are clean unto you. - -11:42 But woe unto you, Pharisees! for ye tithe mint and rue and all -manner of herbs, and pass over judgment and the love of God: these -ought ye to have done, and not to leave the other undone. - -11:43 Woe unto you, Pharisees! for ye love the uppermost seats in the -synagogues, and greetings in the markets. - -11:44 Woe unto you, scribes and Pharisees, hypocrites! for ye are as -graves which appear not, and the men that walk over them are not aware -of them. - -11:45 Then answered one of the lawyers, and said unto him, Master, -thus saying thou reproachest us also. - -11:46 And he said, Woe unto you also, ye lawyers! for ye lade men with -burdens grievous to be borne, and ye yourselves touch not the burdens -with one of your fingers. - -11:47 Woe unto you! for ye build the sepulchres of the prophets, and -your fathers killed them. - -11:48 Truly ye bear witness that ye allow the deeds of your fathers: -for they indeed killed them, and ye build their sepulchres. - -11:49 Therefore also said the wisdom of God, I will send them prophets -and apostles, and some of them they shall slay and persecute: 11:50 -That the blood of all the prophets, which was shed from the foundation -of the world, may be required of this generation; 11:51 From the blood -of Abel unto the blood of Zacharias which perished between the altar -and the temple: verily I say unto you, It shall be required of this -generation. - -11:52 Woe unto you, lawyers! for ye have taken away the key of -knowledge: ye entered not in yourselves, and them that were entering -in ye hindered. - -11:53 And as he said these things unto them, the scribes and the -Pharisees began to urge him vehemently, and to provoke him to speak of -many things: 11:54 Laying wait for him, and seeking to catch something -out of his mouth, that they might accuse him. - -12:1 In the mean time, when there were gathered together an -innumerable multitude of people, insomuch that they trode one upon -another, he began to say unto his disciples first of all, Beware ye of -the leaven of the Pharisees, which is hypocrisy. - -12:2 For there is nothing covered, that shall not be revealed; neither -hid, that shall not be known. - -12:3 Therefore whatsoever ye have spoken in darkness shall be heard in -the light; and that which ye have spoken in the ear in closets shall -be proclaimed upon the housetops. - -12:4 And I say unto you my friends, Be not afraid of them that kill -the body, and after that have no more that they can do. - -12:5 But I will forewarn you whom ye shall fear: Fear him, which after -he hath killed hath power to cast into hell; yea, I say unto you, Fear -him. - -12:6 Are not five sparrows sold for two farthings, and not one of them -is forgotten before God? 12:7 But even the very hairs of your head -are all numbered. Fear not therefore: ye are of more value than many -sparrows. - -12:8 Also I say unto you, Whosoever shall confess me before men, him -shall the Son of man also confess before the angels of God: 12:9 But -he that denieth me before men shall be denied before the angels of -God. - -12:10 And whosoever shall speak a word against the Son of man, it -shall be forgiven him: but unto him that blasphemeth against the Holy -Ghost it shall not be forgiven. - -12:11 And when they bring you unto the synagogues, and unto -magistrates, and powers, take ye no thought how or what thing ye shall -answer, or what ye shall say: 12:12 For the Holy Ghost shall teach you -in the same hour what ye ought to say. - -12:13 And one of the company said unto him, Master, speak to my -brother, that he divide the inheritance with me. - -12:14 And he said unto him, Man, who made me a judge or a divider over -you? 12:15 And he said unto them, Take heed, and beware of -covetousness: for a man's life consisteth not in the abundance of the -things which he possesseth. - -12:16 And he spake a parable unto them, saying, The ground of a -certain rich man brought forth plentifully: 12:17 And he thought -within himself, saying, What shall I do, because I have no room where -to bestow my fruits? 12:18 And he said, This will I do: I will pull -down my barns, and build greater; and there will I bestow all my -fruits and my goods. - -12:19 And I will say to my soul, Soul, thou hast much goods laid up -for many years; take thine ease, eat, drink, and be merry. - -12:20 But God said unto him, Thou fool, this night thy soul shall be -required of thee: then whose shall those things be, which thou hast -provided? 12:21 So is he that layeth up treasure for himself, and is -not rich toward God. - -12:22 And he said unto his disciples, Therefore I say unto you, Take -no thought for your life, what ye shall eat; neither for the body, -what ye shall put on. - -12:23 The life is more than meat, and the body is more than raiment. - -12:24 Consider the ravens: for they neither sow nor reap; which -neither have storehouse nor barn; and God feedeth them: how much more -are ye better than the fowls? 12:25 And which of you with taking -thought can add to his stature one cubit? 12:26 If ye then be not -able to do that thing which is least, why take ye thought for the -rest? 12:27 Consider the lilies how they grow: they toil not, they -spin not; and yet I say unto you, that Solomon in all his glory was -not arrayed like one of these. - -12:28 If then God so clothe the grass, which is to day in the field, -and to morrow is cast into the oven; how much more will he clothe you, -O ye of little faith? 12:29 And seek not ye what ye shall eat, or -what ye shall drink, neither be ye of doubtful mind. - -12:30 For all these things do the nations of the world seek after: and -your Father knoweth that ye have need of these things. - -12:31 But rather seek ye the kingdom of God; and all these things -shall be added unto you. - -12:32 Fear not, little flock; for it is your Father's good pleasure to -give you the kingdom. - -12:33 Sell that ye have, and give alms; provide yourselves bags which -wax not old, a treasure in the heavens that faileth not, where no -thief approacheth, neither moth corrupteth. - -12:34 For where your treasure is, there will your heart be also. - -12:35 Let your loins be girded about, and your lights burning; 12:36 -And ye yourselves like unto men that wait for their lord, when he will -return from the wedding; that when he cometh and knocketh, they may -open unto him immediately. - -12:37 Blessed are those servants, whom the lord when he cometh shall -find watching: verily I say unto you, that he shall gird himself, and -make them to sit down to meat, and will come forth and serve them. - -12:38 And if he shall come in the second watch, or come in the third -watch, and find them so, blessed are those servants. - -12:39 And this know, that if the goodman of the house had known what -hour the thief would come, he would have watched, and not have -suffered his house to be broken through. - -12:40 Be ye therefore ready also: for the Son of man cometh at an hour -when ye think not. - -12:41 Then Peter said unto him, Lord, speakest thou this parable unto -us, or even to all? 12:42 And the Lord said, Who then is that -faithful and wise steward, whom his lord shall make ruler over his -household, to give them their portion of meat in due season? 12:43 -Blessed is that servant, whom his lord when he cometh shall find so -doing. - -12:44 Of a truth I say unto you, that he will make him ruler over all -that he hath. - -12:45 But and if that servant say in his heart, My lord delayeth his -coming; and shall begin to beat the menservants and maidens, and to -eat and drink, and to be drunken; 12:46 The lord of that servant will -come in a day when he looketh not for him, and at an hour when he is -not aware, and will cut him in sunder, and will appoint him his -portion with the unbelievers. - -12:47 And that servant, which knew his lord's will, and prepared not -himself, neither did according to his will, shall be beaten with many -stripes. - -12:48 But he that knew not, and did commit things worthy of stripes, -shall be beaten with few stripes. For unto whomsoever much is given, -of him shall be much required: and to whom men have committed much, of -him they will ask the more. - -12:49 I am come to send fire on the earth; and what will I, if it be -already kindled? 12:50 But I have a baptism to be baptized with; and -how am I straitened till it be accomplished! 12:51 Suppose ye that I -am come to give peace on earth? I tell you, Nay; but rather division: -12:52 For from henceforth there shall be five in one house divided, -three against two, and two against three. - -12:53 The father shall be divided against the son, and the son against -the father; the mother against the daughter, and the daughter against -the mother; the mother in law against her daughter in law, and the -daughter in law against her mother in law. - -12:54 And he said also to the people, When ye see a cloud rise out of -the west, straightway ye say, There cometh a shower; and so it is. - -12:55 And when ye see the south wind blow, ye say, There will be heat; -and it cometh to pass. - -12:56 Ye hypocrites, ye can discern the face of the sky and of the -earth; but how is it that ye do not discern this time? 12:57 Yea, and -why even of yourselves judge ye not what is right? 12:58 When thou -goest with thine adversary to the magistrate, as thou art in the way, -give diligence that thou mayest be delivered from him; lest he hale -thee to the judge, and the judge deliver thee to the officer, and the -officer cast thee into prison. - -12:59 I tell thee, thou shalt not depart thence, till thou hast paid -the very last mite. - -13:1 There were present at that season some that told him of the -Galilaeans, whose blood Pilate had mingled with their sacrifices. - -13:2 And Jesus answering said unto them, Suppose ye that these -Galilaeans were sinners above all the Galilaeans, because they -suffered such things? 13:3 I tell you, Nay: but, except ye repent, ye -shall all likewise perish. - -13:4 Or those eighteen, upon whom the tower in Siloam fell, and slew -them, think ye that they were sinners above all men that dwelt in -Jerusalem? 13:5 I tell you, Nay: but, except ye repent, ye shall all -likewise perish. - -13:6 He spake also this parable; A certain man had a fig tree planted -in his vineyard; and he came and sought fruit thereon, and found none. - -13:7 Then said he unto the dresser of his vineyard, Behold, these -three years I come seeking fruit on this fig tree, and find none: cut -it down; why cumbereth it the ground? 13:8 And he answering said unto -him, Lord, let it alone this year also, till I shall dig about it, and -dung it: 13:9 And if it bear fruit, well: and if not, then after that -thou shalt cut it down. - -13:10 And he was teaching in one of the synagogues on the sabbath. - -13:11 And, behold, there was a woman which had a spirit of infirmity -eighteen years, and was bowed together, and could in no wise lift up -herself. - -13:12 And when Jesus saw her, he called her to him, and said unto her, -Woman, thou art loosed from thine infirmity. - -13:13 And he laid his hands on her: and immediately she was made -straight, and glorified God. - -13:14 And the ruler of the synagogue answered with indignation, -because that Jesus had healed on the sabbath day, and said unto the -people, There are six days in which men ought to work: in them -therefore come and be healed, and not on the sabbath day. - -13:15 The Lord then answered him, and said, Thou hypocrite, doth not -each one of you on the sabbath loose his ox or his ass from the stall, -and lead him away to watering? 13:16 And ought not this woman, being -a daughter of Abraham, whom Satan hath bound, lo, these eighteen -years, be loosed from this bond on the sabbath day? 13:17 And when he -had said these things, all his adversaries were ashamed: and all the -people rejoiced for all the glorious things that were done by him. - -13:18 Then said he, Unto what is the kingdom of God like? and -whereunto shall I resemble it? 13:19 It is like a grain of mustard -seed, which a man took, and cast into his garden; and it grew, and -waxed a great tree; and the fowls of the air lodged in the branches of -it. - -13:20 And again he said, Whereunto shall I liken the kingdom of God? -13:21 It is like leaven, which a woman took and hid in three measures -of meal, till the whole was leavened. - -13:22 And he went through the cities and villages, teaching, and -journeying toward Jerusalem. - -13:23 Then said one unto him, Lord, are there few that be saved? And -he said unto them, 13:24 Strive to enter in at the strait gate: for -many, I say unto you, will seek to enter in, and shall not be able. - -13:25 When once the master of the house is risen up, and hath shut to -the door, and ye begin to stand without, and to knock at the door, -saying, Lord, Lord, open unto us; and he shall answer and say unto -you, I know you not whence ye are: 13:26 Then shall ye begin to say, -We have eaten and drunk in thy presence, and thou hast taught in our -streets. - -13:27 But he shall say, I tell you, I know you not whence ye are; -depart from me, all ye workers of iniquity. - -13:28 There shall be weeping and gnashing of teeth, when ye shall see -Abraham, and Isaac, and Jacob, and all the prophets, in the kingdom of -God, and you yourselves thrust out. - -13:29 And they shall come from the east, and from the west, and from -the north, and from the south, and shall sit down in the kingdom of -God. - -13:30 And, behold, there are last which shall be first, and there are -first which shall be last. - -13:31 The same day there came certain of the Pharisees, saying unto -him, Get thee out, and depart hence: for Herod will kill thee. - -13:32 And he said unto them, Go ye, and tell that fox, Behold, I cast -out devils, and I do cures to day and to morrow, and the third day I -shall be perfected. - -13:33 Nevertheless I must walk to day, and to morrow, and the day -following: for it cannot be that a prophet perish out of Jerusalem. - -13:34 O Jerusalem, Jerusalem, which killest the prophets, and stonest -them that are sent unto thee; how often would I have gathered thy -children together, as a hen doth gather her brood under her wings, and -ye would not! 13:35 Behold, your house is left unto you desolate: and -verily I say unto you, Ye shall not see me, until the time come when -ye shall say, Blessed is he that cometh in the name of the Lord. - -14:1 And it came to pass, as he went into the house of one of the -chief Pharisees to eat bread on the sabbath day, that they watched -him. - -14:2 And, behold, there was a certain man before him which had the -dropsy. - -14:3 And Jesus answering spake unto the lawyers and Pharisees, saying, -Is it lawful to heal on the sabbath day? 14:4 And they held their -peace. And he took him, and healed him, and let him go; 14:5 And -answered them, saying, Which of you shall have an ass or an ox fallen -into a pit, and will not straightway pull him out on the sabbath day? -14:6 And they could not answer him again to these things. - -14:7 And he put forth a parable to those which were bidden, when he -marked how they chose out the chief rooms; saying unto them. - -14:8 When thou art bidden of any man to a wedding, sit not down in the -highest room; lest a more honourable man than thou be bidden of him; -14:9 And he that bade thee and him come and say to thee, Give this man -place; and thou begin with shame to take the lowest room. - -14:10 But when thou art bidden, go and sit down in the lowest room; -that when he that bade thee cometh, he may say unto thee, Friend, go -up higher: then shalt thou have worship in the presence of them that -sit at meat with thee. - -14:11 For whosoever exalteth himself shall be abased; and he that -humbleth himself shall be exalted. - -14:12 Then said he also to him that bade him, When thou makest a -dinner or a supper, call not thy friends, nor thy brethren, neither -thy kinsmen, nor thy rich neighbours; lest they also bid thee again, -and a recompence be made thee. - -14:13 But when thou makest a feast, call the poor, the maimed, the -lame, the blind: 14:14 And thou shalt be blessed; for they cannot -recompense thee: for thou shalt be recompensed at the resurrection of -the just. - -14:15 And when one of them that sat at meat with him heard these -things, he said unto him, Blessed is he that shall eat bread in the -kingdom of God. - -14:16 Then said he unto him, A certain man made a great supper, and -bade many: 14:17 And sent his servant at supper time to say to them -that were bidden, Come; for all things are now ready. - -14:18 And they all with one consent began to make excuse. The first -said unto him, I have bought a piece of ground, and I must needs go -and see it: I pray thee have me excused. - -14:19 And another said, I have bought five yoke of oxen, and I go to -prove them: I pray thee have me excused. - -14:20 And another said, I have married a wife, and therefore I cannot -come. - -14:21 So that servant came, and shewed his lord these things. Then the -master of the house being angry said to his servant, Go out quickly -into the streets and lanes of the city, and bring in hither the poor, -and the maimed, and the halt, and the blind. - -14:22 And the servant said, Lord, it is done as thou hast commanded, -and yet there is room. - -14:23 And the lord said unto the servant, Go out into the highways and -hedges, and compel them to come in, that my house may be filled. - -14:24 For I say unto you, That none of those men which were bidden -shall taste of my supper. - -14:25 And there went great multitudes with him: and he turned, and -said unto them, 14:26 If any man come to me, and hate not his father, -and mother, and wife, and children, and brethren, and sisters, yea, -and his own life also, he cannot be my disciple. - -14:27 And whosoever doth not bear his cross, and come after me, cannot -be my disciple. - -14:28 For which of you, intending to build a tower, sitteth not down -first, and counteth the cost, whether he have sufficient to finish it? -14:29 Lest haply, after he hath laid the foundation, and is not able -to finish it, all that behold it begin to mock him, 14:30 Saying, This -man began to build, and was not able to finish. - -14:31 Or what king, going to make war against another king, sitteth -not down first, and consulteth whether he be able with ten thousand to -meet him that cometh against him with twenty thousand? 14:32 Or else, -while the other is yet a great way off, he sendeth an ambassage, and -desireth conditions of peace. - -14:33 So likewise, whosoever he be of you that forsaketh not all that -he hath, he cannot be my disciple. - -14:34 Salt is good: but if the salt have lost his savour, wherewith -shall it be seasoned? 14:35 It is neither fit for the land, nor yet -for the dunghill; but men cast it out. He that hath ears to hear, let -him hear. - -15:1 Then drew near unto him all the publicans and sinners for to hear -him. - -15:2 And the Pharisees and scribes murmured, saying, This man -receiveth sinners, and eateth with them. - -15:3 And he spake this parable unto them, saying, 15:4 What man of -you, having an hundred sheep, if he lose one of them, doth not leave -the ninety and nine in the wilderness, and go after that which is -lost, until he find it? 15:5 And when he hath found it, he layeth it -on his shoulders, rejoicing. - -15:6 And when he cometh home, he calleth together his friends and -neighbours, saying unto them, Rejoice with me; for I have found my -sheep which was lost. - -15:7 I say unto you, that likewise joy shall be in heaven over one -sinner that repenteth, more than over ninety and nine just persons, -which need no repentance. - -15:8 Either what woman having ten pieces of silver, if she lose one -piece, doth not light a candle, and sweep the house, and seek -diligently till she find it? 15:9 And when she hath found it, she -calleth her friends and her neighbours together, saying, Rejoice with -me; for I have found the piece which I had lost. - -15:10 Likewise, I say unto you, there is joy in the presence of the -angels of God over one sinner that repenteth. - -15:11 And he said, A certain man had two sons: 15:12 And the younger -of them said to his father, Father, give me the portion of goods that -falleth to me. And he divided unto them his living. - -15:13 And not many days after the younger son gathered all together, -and took his journey into a far country, and there wasted his -substance with riotous living. - -15:14 And when he had spent all, there arose a mighty famine in that -land; and he began to be in want. - -15:15 And he went and joined himself to a citizen of that country; and -he sent him into his fields to feed swine. - -15:16 And he would fain have filled his belly with the husks that the -swine did eat: and no man gave unto him. - -15:17 And when he came to himself, he said, How many hired servants of -my father's have bread enough and to spare, and I perish with hunger! -15:18 I will arise and go to my father, and will say unto him, Father, -I have sinned against heaven, and before thee, 15:19 And am no more -worthy to be called thy son: make me as one of thy hired servants. - -15:20 And he arose, and came to his father. But when he was yet a -great way off, his father saw him, and had compassion, and ran, and -fell on his neck, and kissed him. - -15:21 And the son said unto him, Father, I have sinned against heaven, -and in thy sight, and am no more worthy to be called thy son. - -15:22 But the father said to his servants, Bring forth the best robe, -and put it on him; and put a ring on his hand, and shoes on his feet: -15:23 And bring hither the fatted calf, and kill it; and let us eat, -and be merry: 15:24 For this my son was dead, and is alive again; he -was lost, and is found. And they began to be merry. - -15:25 Now his elder son was in the field: and as he came and drew nigh -to the house, he heard musick and dancing. - -15:26 And he called one of the servants, and asked what these things -meant. - -15:27 And he said unto him, Thy brother is come; and thy father hath -killed the fatted calf, because he hath received him safe and sound. - -15:28 And he was angry, and would not go in: therefore came his father -out, and intreated him. - -15:29 And he answering said to his father, Lo, these many years do I -serve thee, neither transgressed I at any time thy commandment: and -yet thou never gavest me a kid, that I might make merry with my -friends: 15:30 But as soon as this thy son was come, which hath -devoured thy living with harlots, thou hast killed for him the fatted -calf. - -15:31 And he said unto him, Son, thou art ever with me, and all that I -have is thine. - -15:32 It was meet that we should make merry, and be glad: for this thy -brother was dead, and is alive again; and was lost, and is found. - -16:1 And he said also unto his disciples, There was a certain rich -man, which had a steward; and the same was accused unto him that he -had wasted his goods. - -16:2 And he called him, and said unto him, How is it that I hear this -of thee? give an account of thy stewardship; for thou mayest be no -longer steward. - -16:3 Then the steward said within himself, What shall I do? for my -lord taketh away from me the stewardship: I cannot dig; to beg I am -ashamed. - -16:4 I am resolved what to do, that, when I am put out of the -stewardship, they may receive me into their houses. - -16:5 So he called every one of his lord's debtors unto him, and said -unto the first, How much owest thou unto my lord? 16:6 And he said, -An hundred measures of oil. And he said unto him, Take thy bill, and -sit down quickly, and write fifty. - -16:7 Then said he to another, And how much owest thou? And he said, An -hundred measures of wheat. And he said unto him, Take thy bill, and -write fourscore. - -16:8 And the lord commended the unjust steward, because he had done -wisely: for the children of this world are in their generation wiser -than the children of light. - -16:9 And I say unto you, Make to yourselves friends of the mammon of -unrighteousness; that, when ye fail, they may receive you into -everlasting habitations. - -16:10 He that is faithful in that which is least is faithful also in -much: and he that is unjust in the least is unjust also in much. - -16:11 If therefore ye have not been faithful in the unrighteous -mammon, who will commit to your trust the true riches? 16:12 And if -ye have not been faithful in that which is another man's, who shall -give you that which is your own? 16:13 No servant can serve two -masters: for either he will hate the one, and love the other; or else -he will hold to the one, and despise the other. Ye cannot serve God -and mammon. - -16:14 And the Pharisees also, who were covetous, heard all these -things: and they derided him. - -16:15 And he said unto them, Ye are they which justify yourselves -before men; but God knoweth your hearts: for that which is highly -esteemed among men is abomination in the sight of God. - -16:16 The law and the prophets were until John: since that time the -kingdom of God is preached, and every man presseth into it. - -16:17 And it is easier for heaven and earth to pass, than one tittle -of the law to fail. - -16:18 Whosoever putteth away his wife, and marrieth another, -committeth adultery: and whosoever marrieth her that is put away from -her husband committeth adultery. - -16:19 There was a certain rich man, which was clothed in purple and -fine linen, and fared sumptuously every day: 16:20 And there was a -certain beggar named Lazarus, which was laid at his gate, full of -sores, 16:21 And desiring to be fed with the crumbs which fell from -the rich man's table: moreover the dogs came and licked his sores. - -16:22 And it came to pass, that the beggar died, and was carried by -the angels into Abraham's bosom: the rich man also died, and was -buried; 16:23 And in hell he lift up his eyes, being in torments, and -seeth Abraham afar off, and Lazarus in his bosom. - -16:24 And he cried and said, Father Abraham, have mercy on me, and -send Lazarus, that he may dip the tip of his finger in water, and cool -my tongue; for I am tormented in this flame. - -16:25 But Abraham said, Son, remember that thou in thy lifetime -receivedst thy good things, and likewise Lazarus evil things: but now -he is comforted, and thou art tormented. - -16:26 And beside all this, between us and you there is a great gulf -fixed: so that they which would pass from hence to you cannot; neither -can they pass to us, that would come from thence. - -16:27 Then he said, I pray thee therefore, father, that thou wouldest -send him to my father's house: 16:28 For I have five brethren; that he -may testify unto them, lest they also come into this place of torment. - -16:29 Abraham saith unto him, They have Moses and the prophets; let -them hear them. - -16:30 And he said, Nay, father Abraham: but if one went unto them from -the dead, they will repent. - -16:31 And he said unto him, If they hear not Moses and the prophets, -neither will they be persuaded, though one rose from the dead. - -17:1 Then said he unto the disciples, It is impossible but that -offences will come: but woe unto him, through whom they come! 17:2 It -were better for him that a millstone were hanged about his neck, and -he cast into the sea, than that he should offend one of these little -ones. - -17:3 Take heed to yourselves: If thy brother trespass against thee, -rebuke him; and if he repent, forgive him. - -17:4 And if he trespass against thee seven times in a day, and seven -times in a day turn again to thee, saying, I repent; thou shalt -forgive him. - -17:5 And the apostles said unto the Lord, Increase our faith. - -17:6 And the Lord said, If ye had faith as a grain of mustard seed, ye -might say unto this sycamine tree, Be thou plucked up by the root, and -be thou planted in the sea; and it should obey you. - -17:7 But which of you, having a servant plowing or feeding cattle, -will say unto him by and by, when he is come from the field, Go and -sit down to meat? 17:8 And will not rather say unto him, Make ready -wherewith I may sup, and gird thyself, and serve me, till I have eaten -and drunken; and afterward thou shalt eat and drink? 17:9 Doth he -thank that servant because he did the things that were commanded him? -I trow not. - -17:10 So likewise ye, when ye shall have done all those things which -are commanded you, say, We are unprofitable servants: we have done -that which was our duty to do. - -17:11 And it came to pass, as he went to Jerusalem, that he passed -through the midst of Samaria and Galilee. - -17:12 And as he entered into a certain village, there met him ten men -that were lepers, which stood afar off: 17:13 And they lifted up their -voices, and said, Jesus, Master, have mercy on us. - -17:14 And when he saw them, he said unto them, Go shew yourselves unto -the priests. And it came to pass, that, as they went, they were -cleansed. - -17:15 And one of them, when he saw that he was healed, turned back, -and with a loud voice glorified God, 17:16 And fell down on his face -at his feet, giving him thanks: and he was a Samaritan. - -17:17 And Jesus answering said, Were there not ten cleansed? but where -are the nine? 17:18 There are not found that returned to give glory -to God, save this stranger. - -17:19 And he said unto him, Arise, go thy way: thy faith hath made -thee whole. - -17:20 And when he was demanded of the Pharisees, when the kingdom of -God should come, he answered them and said, The kingdom of God cometh -not with observation: 17:21 Neither shall they say, Lo here! or, lo -there! for, behold, the kingdom of God is within you. - -17:22 And he said unto the disciples, The days will come, when ye -shall desire to see one of the days of the Son of man, and ye shall -not see it. - -17:23 And they shall say to you, See here; or, see there: go not after -them, nor follow them. - -17:24 For as the lightning, that lighteneth out of the one part under -heaven, shineth unto the other part under heaven; so shall also the -Son of man be in his day. - -17:25 But first must he suffer many things, and be rejected of this -generation. - -17:26 And as it was in the days of Noe, so shall it be also in the -days of the Son of man. - -17:27 They did eat, they drank, they married wives, they were given in -marriage, until the day that Noe entered into the ark, and the flood -came, and destroyed them all. - -17:28 Likewise also as it was in the days of Lot; they did eat, they -drank, they bought, they sold, they planted, they builded; 17:29 But -the same day that Lot went out of Sodom it rained fire and brimstone -from heaven, and destroyed them all. - -17:30 Even thus shall it be in the day when the Son of man is -revealed. - -17:31 In that day, he which shall be upon the housetop, and his stuff -in the house, let him not come down to take it away: and he that is in -the field, let him likewise not return back. - -17:32 Remember Lot's wife. - -17:33 Whosoever shall seek to save his life shall lose it; and -whosoever shall lose his life shall preserve it. - -17:34 I tell you, in that night there shall be two men in one bed; the -one shall be taken, and the other shall be left. - -17:35 Two women shall be grinding together; the one shall be taken, -and the other left. - -17:36 Two men shall be in the field; the one shall be taken, and the -other left. - -17:37 And they answered and said unto him, Where, Lord? And he said -unto them, Wheresoever the body is, thither will the eagles be -gathered together. - -18:1 And he spake a parable unto them to this end, that men ought -always to pray, and not to faint; 18:2 Saying, There was in a city a -judge, which feared not God, neither regarded man: 18:3 And there was -a widow in that city; and she came unto him, saying, Avenge me of mine -adversary. - -18:4 And he would not for a while: but afterward he said within -himself, Though I fear not God, nor regard man; 18:5 Yet because this -widow troubleth me, I will avenge her, lest by her continual coming -she weary me. - -18:6 And the Lord said, Hear what the unjust judge saith. - -18:7 And shall not God avenge his own elect, which cry day and night -unto him, though he bear long with them? 18:8 I tell you that he will -avenge them speedily. Nevertheless when the Son of man cometh, shall -he find faith on the earth? 18:9 And he spake this parable unto -certain which trusted in themselves that they were righteous, and -despised others: 18:10 Two men went up into the temple to pray; the -one a Pharisee, and the other a publican. - -18:11 The Pharisee stood and prayed thus with himself, God, I thank -thee, that I am not as other men are, extortioners, unjust, -adulterers, or even as this publican. - -18:12 I fast twice in the week, I give tithes of all that I possess. - -18:13 And the publican, standing afar off, would not lift up so much -as his eyes unto heaven, but smote upon his breast, saying, God be -merciful to me a sinner. - -18:14 I tell you, this man went down to his house justified rather -than the other: for every one that exalteth himself shall be abased; -and he that humbleth himself shall be exalted. - -18:15 And they brought unto him also infants, that he would touch -them: but when his disciples saw it, they rebuked them. - -18:16 But Jesus called them unto him, and said, Suffer little children -to come unto me, and forbid them not: for of such is the kingdom of -God. - -18:17 Verily I say unto you, Whosoever shall not receive the kingdom -of God as a little child shall in no wise enter therein. - -18:18 And a certain ruler asked him, saying, Good Master, what shall I -do to inherit eternal life? 18:19 And Jesus said unto him, Why -callest thou me good? none is good, save one, that is, God. - -18:20 Thou knowest the commandments, Do not commit adultery, Do not -kill, Do not steal, Do not bear false witness, Honour thy father and -thy mother. - -18:21 And he said, All these have I kept from my youth up. - -18:22 Now when Jesus heard these things, he said unto him, Yet lackest -thou one thing: sell all that thou hast, and distribute unto the poor, -and thou shalt have treasure in heaven: and come, follow me. - -18:23 And when he heard this, he was very sorrowful: for he was very -rich. - -18:24 And when Jesus saw that he was very sorrowful, he said, How -hardly shall they that have riches enter into the kingdom of God! -18:25 For it is easier for a camel to go through a needle's eye, than -for a rich man to enter into the kingdom of God. - -18:26 And they that heard it said, Who then can be saved? 18:27 And -he said, The things which are impossible with men are possible with -God. - -18:28 Then Peter said, Lo, we have left all, and followed thee. - -18:29 And he said unto them, Verily I say unto you, There is no man -that hath left house, or parents, or brethren, or wife, or children, -for the kingdom of God's sake, 18:30 Who shall not receive manifold -more in this present time, and in the world to come life everlasting. - -18:31 Then he took unto him the twelve, and said unto them, Behold, we -go up to Jerusalem, and all things that are written by the prophets -concerning the Son of man shall be accomplished. - -18:32 For he shall be delivered unto the Gentiles, and shall be -mocked, and spitefully entreated, and spitted on: 18:33 And they shall -scourge him, and put him to death: and the third day he shall rise -again. - -18:34 And they understood none of these things: and this saying was -hid from them, neither knew they the things which were spoken. - -18:35 And it came to pass, that as he was come nigh unto Jericho, a -certain blind man sat by the way side begging: 18:36 And hearing the -multitude pass by, he asked what it meant. - -18:37 And they told him, that Jesus of Nazareth passeth by. - -18:38 And he cried, saying, Jesus, thou son of David, have mercy on -me. - -18:39 And they which went before rebuked him, that he should hold his -peace: but he cried so much the more, Thou son of David, have mercy on -me. - -18:40 And Jesus stood, and commanded him to be brought unto him: and -when he was come near, he asked him, 18:41 Saying, What wilt thou that -I shall do unto thee? And he said, Lord, that I may receive my sight. - -18:42 And Jesus said unto him, Receive thy sight: thy faith hath saved -thee. - -18:43 And immediately he received his sight, and followed him, -glorifying God: and all the people, when they saw it, gave praise unto -God. - -19:1 And Jesus entered and passed through Jericho. - -19:2 And, behold, there was a man named Zacchaeus, which was the chief -among the publicans, and he was rich. - -19:3 And he sought to see Jesus who he was; and could not for the -press, because he was little of stature. - -19:4 And he ran before, and climbed up into a sycomore tree to see -him: for he was to pass that way. - -19:5 And when Jesus came to the place, he looked up, and saw him, and -said unto him, Zacchaeus, make haste, and come down; for to day I must -abide at thy house. - -19:6 And he made haste, and came down, and received him joyfully. - -19:7 And when they saw it, they all murmured, saying, That he was gone -to be guest with a man that is a sinner. - -19:8 And Zacchaeus stood, and said unto the Lord: Behold, Lord, the -half of my goods I give to the poor; and if I have taken any thing -from any man by false accusation, I restore him fourfold. - -19:9 And Jesus said unto him, This day is salvation come to this -house, forsomuch as he also is a son of Abraham. - -19:10 For the Son of man is come to seek and to save that which was -lost. - -19:11 And as they heard these things, he added and spake a parable, -because he was nigh to Jerusalem, and because they thought that the -kingdom of God should immediately appear. - -19:12 He said therefore, A certain nobleman went into a far country to -receive for himself a kingdom, and to return. - -19:13 And he called his ten servants, and delivered them ten pounds, -and said unto them, Occupy till I come. - -19:14 But his citizens hated him, and sent a message after him, -saying, We will not have this man to reign over us. - -19:15 And it came to pass, that when he was returned, having received -the kingdom, then he commanded these servants to be called unto him, -to whom he had given the money, that he might know how much every man -had gained by trading. - -19:16 Then came the first, saying, Lord, thy pound hath gained ten -pounds. - -19:17 And he said unto him, Well, thou good servant: because thou hast -been faithful in a very little, have thou authority over ten cities. - -19:18 And the second came, saying, Lord, thy pound hath gained five -pounds. - -19:19 And he said likewise to him, Be thou also over five cities. - -19:20 And another came, saying, Lord, behold, here is thy pound, which -I have kept laid up in a napkin: 19:21 For I feared thee, because thou -art an austere man: thou takest up that thou layedst not down, and -reapest that thou didst not sow. - -19:22 And he saith unto him, Out of thine own mouth will I judge thee, -thou wicked servant. Thou knewest that I was an austere man, taking up -that I laid not down, and reaping that I did not sow: 19:23 Wherefore -then gavest not thou my money into the bank, that at my coming I might -have required mine own with usury? 19:24 And he said unto them that -stood by, Take from him the pound, and give it to him that hath ten -pounds. - -19:25 (And they said unto him, Lord, he hath ten pounds.) 19:26 For I -say unto you, That unto every one which hath shall be given; and from -him that hath not, even that he hath shall be taken away from him. - -19:27 But those mine enemies, which would not that I should reign over -them, bring hither, and slay them before me. - -19:28 And when he had thus spoken, he went before, ascending up to -Jerusalem. - -19:29 And it came to pass, when he was come nigh to Bethphage and -Bethany, at the mount called the mount of Olives, he sent two of his -disciples, 19:30 Saying, Go ye into the village over against you; in -the which at your entering ye shall find a colt tied, whereon yet -never man sat: loose him, and bring him hither. - -19:31 And if any man ask you, Why do ye loose him? thus shall ye say -unto him, Because the Lord hath need of him. - -19:32 And they that were sent went their way, and found even as he had -said unto them. - -19:33 And as they were loosing the colt, the owners thereof said unto -them, Why loose ye the colt? 19:34 And they said, The Lord hath need -of him. - -19:35 And they brought him to Jesus: and they cast their garments upon -the colt, and they set Jesus thereon. - -19:36 And as he went, they spread their clothes in the way. - -19:37 And when he was come nigh, even now at the descent of the mount -of Olives, the whole multitude of the disciples began to rejoice and -praise God with a loud voice for all the mighty works that they had -seen; 19:38 Saying, Blessed be the King that cometh in the name of the -Lord: peace in heaven, and glory in the highest. - -19:39 And some of the Pharisees from among the multitude said unto -him, Master, rebuke thy disciples. - -19:40 And he answered and said unto them, I tell you that, if these -should hold their peace, the stones would immediately cry out. - -19:41 And when he was come near, he beheld the city, and wept over it, -19:42 Saying, If thou hadst known, even thou, at least in this thy -day, the things which belong unto thy peace! but now they are hid from -thine eyes. - -19:43 For the days shall come upon thee, that thine enemies shall cast -a trench about thee, and compass thee round, and keep thee in on every -side, 19:44 And shall lay thee even with the ground, and thy children -within thee; and they shall not leave in thee one stone upon another; -because thou knewest not the time of thy visitation. - -19:45 And he went into the temple, and began to cast out them that -sold therein, and them that bought; 19:46 Saying unto them, It is -written, My house is the house of prayer: but ye have made it a den of -thieves. - -19:47 And he taught daily in the temple. But the chief priests and the -scribes and the chief of the people sought to destroy him, 19:48 And -could not find what they might do: for all the people were very -attentive to hear him. - -20:1 And it came to pass, that on one of those days, as he taught the -people in the temple, and preached the gospel, the chief priests and -the scribes came upon him with the elders, 20:2 And spake unto him, -saying, Tell us, by what authority doest thou these things? or who is -he that gave thee this authority? 20:3 And he answered and said unto -them, I will also ask you one thing; and answer me: 20:4 The baptism -of John, was it from heaven, or of men? 20:5 And they reasoned with -themselves, saying, If we shall say, From heaven; he will say, Why -then believed ye him not? 20:6 But and if we say, Of men; all the -people will stone us: for they be persuaded that John was a prophet. - -20:7 And they answered, that they could not tell whence it was. - -20:8 And Jesus said unto them, Neither tell I you by what authority I -do these things. - -20:9 Then began he to speak to the people this parable; A certain man -planted a vineyard, and let it forth to husbandmen, and went into a -far country for a long time. - -20:10 And at the season he sent a servant to the husbandmen, that they -should give him of the fruit of the vineyard: but the husbandmen beat -him, and sent him away empty. - -20:11 And again he sent another servant: and they beat him also, and -entreated him shamefully, and sent him away empty. - -20:12 And again he sent a third: and they wounded him also, and cast -him out. - -20:13 Then said the lord of the vineyard, What shall I do? I will send -my beloved son: it may be they will reverence him when they see him. - -20:14 But when the husbandmen saw him, they reasoned among themselves, -saying, This is the heir: come, let us kill him, that the inheritance -may be ours. - -20:15 So they cast him out of the vineyard, and killed him. What -therefore shall the lord of the vineyard do unto them? 20:16 He shall -come and destroy these husbandmen, and shall give the vineyard to -others. And when they heard it, they said, God forbid. - -20:17 And he beheld them, and said, What is this then that is written, -The stone which the builders rejected, the same is become the head of -the corner? 20:18 Whosoever shall fall upon that stone shall be -broken; but on whomsoever it shall fall, it will grind him to powder. - -20:19 And the chief priests and the scribes the same hour sought to -lay hands on him; and they feared the people: for they perceived that -he had spoken this parable against them. - -20:20 And they watched him, and sent forth spies, which should feign -themselves just men, that they might take hold of his words, that so -they might deliver him unto the power and authority of the governor. - -20:21 And they asked him, saying, Master, we know that thou sayest and -teachest rightly, neither acceptest thou the person of any, but -teachest the way of God truly: 20:22 Is it lawful for us to give -tribute unto Caesar, or no? 20:23 But he perceived their craftiness, -and said unto them, Why tempt ye me? 20:24 Shew me a penny. Whose -image and superscription hath it? They answered and said, Caesar's. - -20:25 And he said unto them, Render therefore unto Caesar the things -which be Caesar's, and unto God the things which be God's. - -20:26 And they could not take hold of his words before the people: and -they marvelled at his answer, and held their peace. - -20:27 Then came to him certain of the Sadducees, which deny that there -is any resurrection; and they asked him, 20:28 Saying, Master, Moses -wrote unto us, If any man's brother die, having a wife, and he die -without children, that his brother should take his wife, and raise up -seed unto his brother. - -20:29 There were therefore seven brethren: and the first took a wife, -and died without children. - -20:30 And the second took her to wife, and he died childless. - -20:31 And the third took her; and in like manner the seven also: and -they left no children, and died. - -20:32 Last of all the woman died also. - -20:33 Therefore in the resurrection whose wife of them is she? for -seven had her to wife. - -20:34 And Jesus answering said unto them, The children of this world -marry, and are given in marriage: 20:35 But they which shall be -accounted worthy to obtain that world, and the resurrection from the -dead, neither marry, nor are given in marriage: 20:36 Neither can they -die any more: for they are equal unto the angels; and are the children -of God, being the children of the resurrection. - -20:37 Now that the dead are raised, even Moses shewed at the bush, -when he calleth the Lord the God of Abraham, and the God of Isaac, and -the God of Jacob. - -20:38 For he is not a God of the dead, but of the living: for all live -unto him. - -20:39 Then certain of the scribes answering said, Master, thou hast -well said. - -20:40 And after that they durst not ask him any question at all. - -20:41 And he said unto them, How say they that Christ is David's son? -20:42 And David himself saith in the book of Psalms, The LORD said -unto my Lord, Sit thou on my right hand, 20:43 Till I make thine -enemies thy footstool. - -20:44 David therefore calleth him Lord, how is he then his son? 20:45 -Then in the audience of all the people he said unto his disciples, -20:46 Beware of the scribes, which desire to walk in long robes, and -love greetings in the markets, and the highest seats in the -synagogues, and the chief rooms at feasts; 20:47 Which devour widows' -houses, and for a shew make long prayers: the same shall receive -greater damnation. - -21:1 And he looked up, and saw the rich men casting their gifts into -the treasury. - -21:2 And he saw also a certain poor widow casting in thither two -mites. - -21:3 And he said, Of a truth I say unto you, that this poor widow hath -cast in more than they all: 21:4 For all these have of their abundance -cast in unto the offerings of God: but she of her penury hath cast in -all the living that she had. - -21:5 And as some spake of the temple, how it was adorned with goodly -stones and gifts, he said, 21:6 As for these things which ye behold, -the days will come, in the which there shall not be left one stone -upon another, that shall not be thrown down. - -21:7 And they asked him, saying, Master, but when shall these things -be? and what sign will there be when these things shall come to pass? -21:8 And he said, Take heed that ye be not deceived: for many shall -come in my name, saying, I am Christ; and the time draweth near: go ye -not therefore after them. - -21:9 But when ye shall hear of wars and commotions, be not terrified: -for these things must first come to pass; but the end is not by and -by. - -21:10 Then said he unto them, Nation shall rise against nation, and -kingdom against kingdom: 21:11 And great earthquakes shall be in -divers places, and famines, and pestilences; and fearful sights and -great signs shall there be from heaven. - -21:12 But before all these, they shall lay their hands on you, and -persecute you, delivering you up to the synagogues, and into prisons, -being brought before kings and rulers for my name's sake. - -21:13 And it shall turn to you for a testimony. - -21:14 Settle it therefore in your hearts, not to meditate before what -ye shall answer: 21:15 For I will give you a mouth and wisdom, which -all your adversaries shall not be able to gainsay nor resist. - -21:16 And ye shall be betrayed both by parents, and brethren, and -kinsfolks, and friends; and some of you shall they cause to be put to -death. - -21:17 And ye shall be hated of all men for my name's sake. - -21:18 But there shall not an hair of your head perish. - -21:19 In your patience possess ye your souls. - -21:20 And when ye shall see Jerusalem compassed with armies, then know -that the desolation thereof is nigh. - -21:21 Then let them which are in Judaea flee to the mountains; and let -them which are in the midst of it depart out; and let not them that -are in the countries enter thereinto. - -21:22 For these be the days of vengeance, that all things which are -written may be fulfilled. - -21:23 But woe unto them that are with child, and to them that give -suck, in those days! for there shall be great distress in the land, -and wrath upon this people. - -21:24 And they shall fall by the edge of the sword, and shall be led -away captive into all nations: and Jerusalem shall be trodden down of -the Gentiles, until the times of the Gentiles be fulfilled. - -21:25 And there shall be signs in the sun, and in the moon, and in the -stars; and upon the earth distress of nations, with perplexity; the -sea and the waves roaring; 21:26 Men's hearts failing them for fear, -and for looking after those things which are coming on the earth: for -the powers of heaven shall be shaken. - -21:27 And then shall they see the Son of man coming in a cloud with -power and great glory. - -21:28 And when these things begin to come to pass, then look up, and -lift up your heads; for your redemption draweth nigh. - -21:29 And he spake to them a parable; Behold the fig tree, and all the -trees; 21:30 When they now shoot forth, ye see and know of your own -selves that summer is now nigh at hand. - -21:31 So likewise ye, when ye see these things come to pass, know ye -that the kingdom of God is nigh at hand. - -21:32 Verily I say unto you, This generation shall not pass away, till -all be fulfilled. - -21:33 Heaven and earth shall pass away: but my words shall not pass -away. - -21:34 And take heed to yourselves, lest at any time your hearts be -overcharged with surfeiting, and drunkenness, and cares of this life, -and so that day come upon you unawares. - -21:35 For as a snare shall it come on all them that dwell on the face -of the whole earth. - -21:36 Watch ye therefore, and pray always, that ye may be accounted -worthy to escape all these things that shall come to pass, and to -stand before the Son of man. - -21:37 And in the day time he was teaching in the temple; and at night -he went out, and abode in the mount that is called the mount of -Olives. - -21:38 And all the people came early in the morning to him in the -temple, for to hear him. - -22:1 Now the feast of unleavened bread drew nigh, which is called the -Passover. - -22:2 And the chief priests and scribes sought how they might kill him; -for they feared the people. - -22:3 Then entered Satan into Judas surnamed Iscariot, being of the -number of the twelve. - -22:4 And he went his way, and communed with the chief priests and -captains, how he might betray him unto them. - -22:5 And they were glad, and covenanted to give him money. - -22:6 And he promised, and sought opportunity to betray him unto them -in the absence of the multitude. - -22:7 Then came the day of unleavened bread, when the passover must be -killed. - -22:8 And he sent Peter and John, saying, Go and prepare us the -passover, that we may eat. - -22:9 And they said unto him, Where wilt thou that we prepare? 22:10 -And he said unto them, Behold, when ye are entered into the city, -there shall a man meet you, bearing a pitcher of water; follow him -into the house where he entereth in. - -22:11 And ye shall say unto the goodman of the house, The Master saith -unto thee, Where is the guestchamber, where I shall eat the passover -with my disciples? 22:12 And he shall shew you a large upper room -furnished: there make ready. - -22:13 And they went, and found as he had said unto them: and they made -ready the passover. - -22:14 And when the hour was come, he sat down, and the twelve apostles -with him. - -22:15 And he said unto them, With desire I have desired to eat this -passover with you before I suffer: 22:16 For I say unto you, I will -not any more eat thereof, until it be fulfilled in the kingdom of God. - -22:17 And he took the cup, and gave thanks, and said, Take this, and -divide it among yourselves: 22:18 For I say unto you, I will not drink -of the fruit of the vine, until the kingdom of God shall come. - -22:19 And he took bread, and gave thanks, and brake it, and gave unto -them, saying, This is my body which is given for you: this do in -remembrance of me. - -22:20 Likewise also the cup after supper, saying, This cup is the new -testament in my blood, which is shed for you. - -22:21 But, behold, the hand of him that betrayeth me is with me on the -table. - -22:22 And truly the Son of man goeth, as it was determined: but woe -unto that man by whom he is betrayed! 22:23 And they began to enquire -among themselves, which of them it was that should do this thing. - -22:24 And there was also a strife among them, which of them should be -accounted the greatest. - -22:25 And he said unto them, The kings of the Gentiles exercise -lordship over them; and they that exercise authority upon them are -called benefactors. - -22:26 But ye shall not be so: but he that is greatest among you, let -him be as the younger; and he that is chief, as he that doth serve. - -22:27 For whether is greater, he that sitteth at meat, or he that -serveth? is not he that sitteth at meat? but I am among you as he -that serveth. - -22:28 Ye are they which have continued with me in my temptations. - -22:29 And I appoint unto you a kingdom, as my Father hath appointed -unto me; 22:30 That ye may eat and drink at my table in my kingdom, -and sit on thrones judging the twelve tribes of Israel. - -22:31 And the Lord said, Simon, Simon, behold, Satan hath desired to -have you, that he may sift you as wheat: 22:32 But I have prayed for -thee, that thy faith fail not: and when thou art converted, strengthen -thy brethren. - -22:33 And he said unto him, Lord, I am ready to go with thee, both -into prison, and to death. - -22:34 And he said, I tell thee, Peter, the cock shall not crow this -day, before that thou shalt thrice deny that thou knowest me. - -22:35 And he said unto them, When I sent you without purse, and scrip, -and shoes, lacked ye any thing? And they said, Nothing. - -22:36 Then said he unto them, But now, he that hath a purse, let him -take it, and likewise his scrip: and he that hath no sword, let him -sell his garment, and buy one. - -22:37 For I say unto you, that this that is written must yet be -accomplished in me, And he was reckoned among the transgressors: for -the things concerning me have an end. - -22:38 And they said, Lord, behold, here are two swords. And he said -unto them, It is enough. - -22:39 And he came out, and went, as he was wont, to the mount of -Olives; and his disciples also followed him. - -22:40 And when he was at the place, he said unto them, Pray that ye -enter not into temptation. - -22:41 And he was withdrawn from them about a stone's cast, and kneeled -down, and prayed, 22:42 Saying, Father, if thou be willing, remove -this cup from me: nevertheless not my will, but thine, be done. - -22:43 And there appeared an angel unto him from heaven, strengthening -him. - -22:44 And being in an agony he prayed more earnestly: and his sweat -was as it were great drops of blood falling down to the ground. - -22:45 And when he rose up from prayer, and was come to his disciples, -he found them sleeping for sorrow, 22:46 And said unto them, Why sleep -ye? rise and pray, lest ye enter into temptation. - -22:47 And while he yet spake, behold a multitude, and he that was -called Judas, one of the twelve, went before them, and drew near unto -Jesus to kiss him. - -22:48 But Jesus said unto him, Judas, betrayest thou the Son of man -with a kiss? 22:49 When they which were about him saw what would -follow, they said unto him, Lord, shall we smite with the sword? -22:50 And one of them smote the servant of the high priest, and cut -off his right ear. - -22:51 And Jesus answered and said, Suffer ye thus far. And he touched -his ear, and healed him. - -22:52 Then Jesus said unto the chief priests, and captains of the -temple, and the elders, which were come to him, Be ye come out, as -against a thief, with swords and staves? 22:53 When I was daily with -you in the temple, ye stretched forth no hands against me: but this is -your hour, and the power of darkness. - -22:54 Then took they him, and led him, and brought him into the high -priest's house. And Peter followed afar off. - -22:55 And when they had kindled a fire in the midst of the hall, and -were set down together, Peter sat down among them. - -22:56 But a certain maid beheld him as he sat by the fire, and -earnestly looked upon him, and said, This man was also with him. - -22:57 And he denied him, saying, Woman, I know him not. - -22:58 And after a little while another saw him, and said, Thou art -also of them. And Peter said, Man, I am not. - -22:59 And about the space of one hour after another confidently -affirmed, saying, Of a truth this fellow also was with him: for he is -a Galilaean. - -22:60 And Peter said, Man, I know not what thou sayest. And -immediately, while he yet spake, the cock crew. - -22:61 And the Lord turned, and looked upon Peter. And Peter remembered -the word of the Lord, how he had said unto him, Before the cock crow, -thou shalt deny me thrice. - -22:62 And Peter went out, and wept bitterly. - -22:63 And the men that held Jesus mocked him, and smote him. - -22:64 And when they had blindfolded him, they struck him on the face, -and asked him, saying, Prophesy, who is it that smote thee? 22:65 And -many other things blasphemously spake they against him. - -22:66 And as soon as it was day, the elders of the people and the -chief priests and the scribes came together, and led him into their -council, saying, 22:67 Art thou the Christ? tell us. And he said unto -them, If I tell you, ye will not believe: 22:68 And if I also ask you, -ye will not answer me, nor let me go. - -22:69 Hereafter shall the Son of man sit on the right hand of the -power of God. - -22:70 Then said they all, Art thou then the Son of God? And he said -unto them, Ye say that I am. - -22:71 And they said, What need we any further witness? for we -ourselves have heard of his own mouth. - -23:1 And the whole multitude of them arose, and led him unto Pilate. - -23:2 And they began to accuse him, saying, We found this fellow -perverting the nation, and forbidding to give tribute to Caesar, -saying that he himself is Christ a King. - -23:3 And Pilate asked him, saying, Art thou the King of the Jews? And -he answered him and said, Thou sayest it. - -23:4 Then said Pilate to the chief priests and to the people, I find -no fault in this man. - -23:5 And they were the more fierce, saying, He stirreth up the people, -teaching throughout all Jewry, beginning from Galilee to this place. - -23:6 When Pilate heard of Galilee, he asked whether the man were a -Galilaean. - -23:7 And as soon as he knew that he belonged unto Herod's -jurisdiction, he sent him to Herod, who himself also was at Jerusalem -at that time. - -23:8 And when Herod saw Jesus, he was exceeding glad: for he was -desirous to see him of a long season, because he had heard many things -of him; and he hoped to have seen some miracle done by him. - -23:9 Then he questioned with him in many words; but he answered him -nothing. - -23:10 And the chief priests and scribes stood and vehemently accused -him. - -23:11 And Herod with his men of war set him at nought, and mocked him, -and arrayed him in a gorgeous robe, and sent him again to Pilate. - -23:12 And the same day Pilate and Herod were made friends together: -for before they were at enmity between themselves. - -23:13 And Pilate, when he had called together the chief priests and -the rulers and the people, 23:14 Said unto them, Ye have brought this -man unto me, as one that perverteth the people: and, behold, I, having -examined him before you, have found no fault in this man touching -those things whereof ye accuse him: 23:15 No, nor yet Herod: for I -sent you to him; and, lo, nothing worthy of death is done unto him. - -23:16 I will therefore chastise him, and release him. - -23:17 (For of necessity he must release one unto them at the feast.) -23:18 And they cried out all at once, saying, Away with this man, and -release unto us Barabbas: 23:19 (Who for a certain sedition made in -the city, and for murder, was cast into prison.) 23:20 Pilate -therefore, willing to release Jesus, spake again to them. - -23:21 But they cried, saying, Crucify him, crucify him. - -23:22 And he said unto them the third time, Why, what evil hath he -done? I have found no cause of death in him: I will therefore chastise -him, and let him go. - -23:23 And they were instant with loud voices, requiring that he might -be crucified. And the voices of them and of the chief priests -prevailed. - -23:24 And Pilate gave sentence that it should be as they required. - -23:25 And he released unto them him that for sedition and murder was -cast into prison, whom they had desired; but he delivered Jesus to -their will. - -23:26 And as they led him away, they laid hold upon one Simon, a -Cyrenian, coming out of the country, and on him they laid the cross, -that he might bear it after Jesus. - -23:27 And there followed him a great company of people, and of women, -which also bewailed and lamented him. - -23:28 But Jesus turning unto them said, Daughters of Jerusalem, weep -not for me, but weep for yourselves, and for your children. - -23:29 For, behold, the days are coming, in the which they shall say, -Blessed are the barren, and the wombs that never bare, and the paps -which never gave suck. - -23:30 Then shall they begin to say to the mountains, Fall on us; and -to the hills, Cover us. - -23:31 For if they do these things in a green tree, what shall be done -in the dry? 23:32 And there were also two other, malefactors, led -with him to be put to death. - -23:33 And when they were come to the place, which is called Calvary, -there they crucified him, and the malefactors, one on the right hand, -and the other on the left. - -23:34 Then said Jesus, Father, forgive them; for they know not what -they do. And they parted his raiment, and cast lots. - -23:35 And the people stood beholding. And the rulers also with them -derided him, saying, He saved others; let him save himself, if he be -Christ, the chosen of God. - -23:36 And the soldiers also mocked him, coming to him, and offering -him vinegar, 23:37 And saying, If thou be the king of the Jews, save -thyself. - -23:38 And a superscription also was written over him in letters of -Greek, and Latin, and Hebrew, THIS IS THE KING OF THE JEWS. - -23:39 And one of the malefactors which were hanged railed on him, -saying, If thou be Christ, save thyself and us. - -23:40 But the other answering rebuked him, saying, Dost not thou fear -God, seeing thou art in the same condemnation? 23:41 And we indeed -justly; for we receive the due reward of our deeds: but this man hath -done nothing amiss. - -23:42 And he said unto Jesus, Lord, remember me when thou comest into -thy kingdom. - -23:43 And Jesus said unto him, Verily I say unto thee, To day shalt -thou be with me in paradise. - -23:44 And it was about the sixth hour, and there was a darkness over -all the earth until the ninth hour. - -23:45 And the sun was darkened, and the veil of the temple was rent in -the midst. - -23:46 And when Jesus had cried with a loud voice, he said, Father, -into thy hands I commend my spirit: and having said thus, he gave up -the ghost. - -23:47 Now when the centurion saw what was done, he glorified God, -saying, Certainly this was a righteous man. - -23:48 And all the people that came together to that sight, beholding -the things which were done, smote their breasts, and returned. - -23:49 And all his acquaintance, and the women that followed him from -Galilee, stood afar off, beholding these things. - -23:50 And, behold, there was a man named Joseph, a counsellor; and he -was a good man, and a just: 23:51 (The same had not consented to the -counsel and deed of them;) he was of Arimathaea, a city of the Jews: -who also himself waited for the kingdom of God. - -23:52 This man went unto Pilate, and begged the body of Jesus. - -23:53 And he took it down, and wrapped it in linen, and laid it in a -sepulchre that was hewn in stone, wherein never man before was laid. - -23:54 And that day was the preparation, and the sabbath drew on. - -23:55 And the women also, which came with him from Galilee, followed -after, and beheld the sepulchre, and how his body was laid. - -23:56 And they returned, and prepared spices and ointments; and rested -the sabbath day according to the commandment. - -24:1 Now upon the first day of the week, very early in the morning, -they came unto the sepulchre, bringing the spices which they had -prepared, and certain others with them. - -24:2 And they found the stone rolled away from the sepulchre. - -24:3 And they entered in, and found not the body of the Lord Jesus. - -24:4 And it came to pass, as they were much perplexed thereabout, -behold, two men stood by them in shining garments: 24:5 And as they -were afraid, and bowed down their faces to the earth, they said unto -them, Why seek ye the living among the dead? 24:6 He is not here, but -is risen: remember how he spake unto you when he was yet in Galilee, -24:7 Saying, The Son of man must be delivered into the hands of sinful -men, and be crucified, and the third day rise again. - -24:8 And they remembered his words, 24:9 And returned from the -sepulchre, and told all these things unto the eleven, and to all the -rest. - -24:10 It was Mary Magdalene and Joanna, and Mary the mother of James, -and other women that were with them, which told these things unto the -apostles. - -24:11 And their words seemed to them as idle tales, and they believed -them not. - -24:12 Then arose Peter, and ran unto the sepulchre; and stooping down, -he beheld the linen clothes laid by themselves, and departed, -wondering in himself at that which was come to pass. - -24:13 And, behold, two of them went that same day to a village called -Emmaus, which was from Jerusalem about threescore furlongs. - -24:14 And they talked together of all these things which had happened. - -24:15 And it came to pass, that, while they communed together and -reasoned, Jesus himself drew near, and went with them. - -24:16 But their eyes were holden that they should not know him. - -24:17 And he said unto them, What manner of communications are these -that ye have one to another, as ye walk, and are sad? 24:18 And the -one of them, whose name was Cleopas, answering said unto him, Art thou -only a stranger in Jerusalem, and hast not known the things which are -come to pass there in these days? 24:19 And he said unto them, What -things? And they said unto him, Concerning Jesus of Nazareth, which -was a prophet mighty in deed and word before God and all the people: -24:20 And how the chief priests and our rulers delivered him to be -condemned to death, and have crucified him. - -24:21 But we trusted that it had been he which should have redeemed -Israel: and beside all this, to day is the third day since these -things were done. - -24:22 Yea, and certain women also of our company made us astonished, -which were early at the sepulchre; 24:23 And when they found not his -body, they came, saying, that they had also seen a vision of angels, -which said that he was alive. - -24:24 And certain of them which were with us went to the sepulchre, -and found it even so as the women had said: but him they saw not. - -24:25 Then he said unto them, O fools, and slow of heart to believe -all that the prophets have spoken: 24:26 Ought not Christ to have -suffered these things, and to enter into his glory? 24:27 And -beginning at Moses and all the prophets, he expounded unto them in all -the scriptures the things concerning himself. - -24:28 And they drew nigh unto the village, whither they went: and he -made as though he would have gone further. - -24:29 But they constrained him, saying, Abide with us: for it is -toward evening, and the day is far spent. And he went in to tarry with -them. - -24:30 And it came to pass, as he sat at meat with them, he took bread, -and blessed it, and brake, and gave to them. - -24:31 And their eyes were opened, and they knew him; and he vanished -out of their sight. - -24:32 And they said one to another, Did not our heart burn within us, -while he talked with us by the way, and while he opened to us the -scriptures? 24:33 And they rose up the same hour, and returned to -Jerusalem, and found the eleven gathered together, and them that were -with them, 24:34 Saying, The Lord is risen indeed, and hath appeared -to Simon. - -24:35 And they told what things were done in the way, and how he was -known of them in breaking of bread. - -24:36 And as they thus spake, Jesus himself stood in the midst of -them, and saith unto them, Peace be unto you. - -24:37 But they were terrified and affrighted, and supposed that they -had seen a spirit. - -24:38 And he said unto them, Why are ye troubled? and why do thoughts -arise in your hearts? 24:39 Behold my hands and my feet, that it is I -myself: handle me, and see; for a spirit hath not flesh and bones, as -ye see me have. - -24:40 And when he had thus spoken, he shewed them his hands and his -feet. - -24:41 And while they yet believed not for joy, and wondered, he said -unto them, Have ye here any meat? 24:42 And they gave him a piece of -a broiled fish, and of an honeycomb. - -24:43 And he took it, and did eat before them. - -24:44 And he said unto them, These are the words which I spake unto -you, while I was yet with you, that all things must be fulfilled, -which were written in the law of Moses, and in the prophets, and in -the psalms, concerning me. - -24:45 Then opened he their understanding, that they might understand -the scriptures, 24:46 And said unto them, Thus it is written, and thus -it behoved Christ to suffer, and to rise from the dead the third day: -24:47 And that repentance and remission of sins should be preached in -his name among all nations, beginning at Jerusalem. - -24:48 And ye are witnesses of these things. - -24:49 And, behold, I send the promise of my Father upon you: but tarry -ye in the city of Jerusalem, until ye be endued with power from on -high. - -24:50 And he led them out as far as to Bethany, and he lifted up his -hands, and blessed them. - -24:51 And it came to pass, while he blessed them, he was parted from -them, and carried up into heaven. - -24:52 And they worshipped him, and returned to Jerusalem with great -joy: 24:53 And were continually in the temple, praising and blessing -God. Amen. - - - -The Gospel According to Saint John - - -1:1 In the beginning was the Word, and the Word was with God, and the -Word was God. - -1:2 The same was in the beginning with God. - -1:3 All things were made by him; and without him was not any thing -made that was made. - -1:4 In him was life; and the life was the light of men. - -1:5 And the light shineth in darkness; and the darkness comprehended -it not. - -1:6 There was a man sent from God, whose name was John. - -1:7 The same came for a witness, to bear witness of the Light, that -all men through him might believe. - -1:8 He was not that Light, but was sent to bear witness of that Light. - -1:9 That was the true Light, which lighteth every man that cometh into -the world. - -1:10 He was in the world, and the world was made by him, and the world -knew him not. - -1:11 He came unto his own, and his own received him not. - -1:12 But as many as received him, to them gave he power to become the -sons of God, even to them that believe on his name: 1:13 Which were -born, not of blood, nor of the will of the flesh, nor of the will of -man, but of God. - -1:14 And the Word was made flesh, and dwelt among us, (and we beheld -his glory, the glory as of the only begotten of the Father,) full of -grace and truth. - -1:15 John bare witness of him, and cried, saying, This was he of whom -I spake, He that cometh after me is preferred before me: for he was -before me. - -1:16 And of his fulness have all we received, and grace for grace. - -1:17 For the law was given by Moses, but grace and truth came by Jesus -Christ. - -1:18 No man hath seen God at any time, the only begotten Son, which is -in the bosom of the Father, he hath declared him. - -1:19 And this is the record of John, when the Jews sent priests and -Levites from Jerusalem to ask him, Who art thou? 1:20 And he -confessed, and denied not; but confessed, I am not the Christ. - -1:21 And they asked him, What then? Art thou Elias? And he saith, I am -not. Art thou that prophet? And he answered, No. - -1:22 Then said they unto him, Who art thou? that we may give an answer -to them that sent us. What sayest thou of thyself? 1:23 He said, I am -the voice of one crying in the wilderness, Make straight the way of -the Lord, as said the prophet Esaias. - -1:24 And they which were sent were of the Pharisees. - -1:25 And they asked him, and said unto him, Why baptizest thou then, -if thou be not that Christ, nor Elias, neither that prophet? 1:26 -John answered them, saying, I baptize with water: but there standeth -one among you, whom ye know not; 1:27 He it is, who coming after me is -preferred before me, whose shoe's latchet I am not worthy to unloose. - -1:28 These things were done in Bethabara beyond Jordan, where John was -baptizing. - -1:29 The next day John seeth Jesus coming unto him, and saith, Behold -the Lamb of God, which taketh away the sin of the world. - -1:30 This is he of whom I said, After me cometh a man which is -preferred before me: for he was before me. - -1:31 And I knew him not: but that he should be made manifest to -Israel, therefore am I come baptizing with water. - -1:32 And John bare record, saying, I saw the Spirit descending from -heaven like a dove, and it abode upon him. - -1:33 And I knew him not: but he that sent me to baptize with water, -the same said unto me, Upon whom thou shalt see the Spirit descending, -and remaining on him, the same is he which baptizeth with the Holy -Ghost. - -1:34 And I saw, and bare record that this is the Son of God. - -1:35 Again the next day after John stood, and two of his disciples; -1:36 And looking upon Jesus as he walked, he saith, Behold the Lamb of -God! 1:37 And the two disciples heard him speak, and they followed -Jesus. - -1:38 Then Jesus turned, and saw them following, and saith unto them, -What seek ye? They said unto him, Rabbi, (which is to say, being -interpreted, Master,) where dwellest thou? 1:39 He saith unto them, -Come and see. They came and saw where he dwelt, and abode with him -that day: for it was about the tenth hour. - -1:40 One of the two which heard John speak, and followed him, was -Andrew, Simon Peter's brother. - -1:41 He first findeth his own brother Simon, and saith unto him, We -have found the Messias, which is, being interpreted, the Christ. - -1:42 And he brought him to Jesus. And when Jesus beheld him, he said, -Thou art Simon the son of Jona: thou shalt be called Cephas, which is -by interpretation, A stone. - -1:43 The day following Jesus would go forth into Galilee, and findeth -Philip, and saith unto him, Follow me. - -1:44 Now Philip was of Bethsaida, the city of Andrew and Peter. - -1:45 Philip findeth Nathanael, and saith unto him, We have found him, -of whom Moses in the law, and the prophets, did write, Jesus of -Nazareth, the son of Joseph. - -1:46 And Nathanael said unto him, Can there any good thing come out of -Nazareth? Philip saith unto him, Come and see. - -1:47 Jesus saw Nathanael coming to him, and saith of him, Behold an -Israelite indeed, in whom is no guile! 1:48 Nathanael saith unto him, -Whence knowest thou me? Jesus answered and said unto him, Before that -Philip called thee, when thou wast under the fig tree, I saw thee. - -1:49 Nathanael answered and saith unto him, Rabbi, thou art the Son of -God; thou art the King of Israel. - -1:50 Jesus answered and said unto him, Because I said unto thee, I saw -thee under the fig tree, believest thou? thou shalt see greater things -than these. - -1:51 And he saith unto him, Verily, verily, I say unto you, Hereafter -ye shall see heaven open, and the angels of God ascending and -descending upon the Son of man. - -2:1 And the third day there was a marriage in Cana of Galilee; and the -mother of Jesus was there: 2:2 And both Jesus was called, and his -disciples, to the marriage. - -2:3 And when they wanted wine, the mother of Jesus saith unto him, -They have no wine. - -2:4 Jesus saith unto her, Woman, what have I to do with thee? mine -hour is not yet come. - -2:5 His mother saith unto the servants, Whatsoever he saith unto you, -do it. - -2:6 And there were set there six waterpots of stone, after the manner -of the purifying of the Jews, containing two or three firkins apiece. - -2:7 Jesus saith unto them, Fill the waterpots with water. And they -filled them up to the brim. - -2:8 And he saith unto them, Draw out now, and bear unto the governor -of the feast. And they bare it. - -2:9 When the ruler of the feast had tasted the water that was made -wine, and knew not whence it was: (but the servants which drew the -water knew;) the governor of the feast called the bridegroom, 2:10 And -saith unto him, Every man at the beginning doth set forth good wine; -and when men have well drunk, then that which is worse: but thou hast -kept the good wine until now. - -2:11 This beginning of miracles did Jesus in Cana of Galilee, and -manifested forth his glory; and his disciples believed on him. - -2:12 After this he went down to Capernaum, he, and his mother, and his -brethren, and his disciples: and they continued there not many days. - -2:13 And the Jews' passover was at hand, and Jesus went up to -Jerusalem. - -2:14 And found in the temple those that sold oxen and sheep and doves, -and the changers of money sitting: 2:15 And when he had made a scourge -of small cords, he drove them all out of the temple, and the sheep, -and the oxen; and poured out the changers' money, and overthrew the -tables; 2:16 And said unto them that sold doves, Take these things -hence; make not my Father's house an house of merchandise. - -2:17 And his disciples remembered that it was written, The zeal of -thine house hath eaten me up. - -2:18 Then answered the Jews and said unto him, What sign shewest thou -unto us, seeing that thou doest these things? 2:19 Jesus answered and -said unto them, Destroy this temple, and in three days I will raise it -up. - -2:20 Then said the Jews, Forty and six years was this temple in -building, and wilt thou rear it up in three days? 2:21 But he spake -of the temple of his body. - -2:22 When therefore he was risen from the dead, his disciples -remembered that he had said this unto them; and they believed the -scripture, and the word which Jesus had said. - -2:23 Now when he was in Jerusalem at the passover, in the feast day, -many believed in his name, when they saw the miracles which he did. - -2:24 But Jesus did not commit himself unto them, because he knew all -men, 2:25 And needed not that any should testify of man: for he knew -what was in man. - -3:1 There was a man of the Pharisees, named Nicodemus, a ruler of the -Jews: 3:2 The same came to Jesus by night, and said unto him, Rabbi, -we know that thou art a teacher come from God: for no man can do these -miracles that thou doest, except God be with him. - -3:3 Jesus answered and said unto him, Verily, verily, I say unto thee, -Except a man be born again, he cannot see the kingdom of God. - -3:4 Nicodemus saith unto him, How can a man be born when he is old? -can he enter the second time into his mother's womb, and be born? 3:5 -Jesus answered, Verily, verily, I say unto thee, Except a man be born -of water and of the Spirit, he cannot enter into the kingdom of God. - -3:6 That which is born of the flesh is flesh; and that which is born -of the Spirit is spirit. - -3:7 Marvel not that I said unto thee, Ye must be born again. - -3:8 The wind bloweth where it listeth, and thou hearest the sound -thereof, but canst not tell whence it cometh, and whither it goeth: so -is every one that is born of the Spirit. - -3:9 Nicodemus answered and said unto him, How can these things be? -3:10 Jesus answered and said unto him, Art thou a master of Israel, -and knowest not these things? 3:11 Verily, verily, I say unto thee, -We speak that we do know, and testify that we have seen; and ye -receive not our witness. - -3:12 If I have told you earthly things, and ye believe not, how shall -ye believe, if I tell you of heavenly things? 3:13 And no man hath -ascended up to heaven, but he that came down from heaven, even the Son -of man which is in heaven. - -3:14 And as Moses lifted up the serpent in the wilderness, even so -must the Son of man be lifted up: 3:15 That whosoever believeth in him -should not perish, but have eternal life. - -3:16 For God so loved the world, that he gave his only begotten Son, -that whosoever believeth in him should not perish, but have -everlasting life. - -3:17 For God sent not his Son into the world to condemn the world; but -that the world through him might be saved. - -3:18 He that believeth on him is not condemned: but he that believeth -not is condemned already, because he hath not believed in the name of -the only begotten Son of God. - -3:19 And this is the condemnation, that light is come into the world, -and men loved darkness rather than light, because their deeds were -evil. - -3:20 For every one that doeth evil hateth the light, neither cometh to -the light, lest his deeds should be reproved. - -3:21 But he that doeth truth cometh to the light, that his deeds may -be made manifest, that they are wrought in God. - -3:22 After these things came Jesus and his disciples into the land of -Judaea; and there he tarried with them, and baptized. - -3:23 And John also was baptizing in Aenon near to Salim, because there -was much water there: and they came, and were baptized. - -3:24 For John was not yet cast into prison. - -3:25 Then there arose a question between some of John's disciples and -the Jews about purifying. - -3:26 And they came unto John, and said unto him, Rabbi, he that was -with thee beyond Jordan, to whom thou barest witness, behold, the same -baptizeth, and all men come to him. - -3:27 John answered and said, A man can receive nothing, except it be -given him from heaven. - -3:28 Ye yourselves bear me witness, that I said, I am not the Christ, -but that I am sent before him. - -3:29 He that hath the bride is the bridegroom: but the friend of the -bridegroom, which standeth and heareth him, rejoiceth greatly because -of the bridegroom's voice: this my joy therefore is fulfilled. - -3:30 He must increase, but I must decrease. - -3:31 He that cometh from above is above all: he that is of the earth -is earthly, and speaketh of the earth: he that cometh from heaven is -above all. - -3:32 And what he hath seen and heard, that he testifieth; and no man -receiveth his testimony. - -3:33 He that hath received his testimony hath set to his seal that God -is true. - -3:34 For he whom God hath sent speaketh the words of God: for God -giveth not the Spirit by measure unto him. - -3:35 The Father loveth the Son, and hath given all things into his -hand. - -3:36 He that believeth on the Son hath everlasting life: and he that -believeth not the Son shall not see life; but the wrath of God abideth -on him. - -4:1 When therefore the LORD knew how the Pharisees had heard that -Jesus made and baptized more disciples than John, 4:2 (Though Jesus -himself baptized not, but his disciples,) 4:3 He left Judaea, and -departed again into Galilee. - -4:4 And he must needs go through Samaria. - -4:5 Then cometh he to a city of Samaria, which is called Sychar, near -to the parcel of ground that Jacob gave to his son Joseph. - -4:6 Now Jacob's well was there. Jesus therefore, being wearied with -his journey, sat thus on the well: and it was about the sixth hour. - -4:7 There cometh a woman of Samaria to draw water: Jesus saith unto -her, Give me to drink. - -4:8 (For his disciples were gone away unto the city to buy meat.) 4:9 -Then saith the woman of Samaria unto him, How is it that thou, being a -Jew, askest drink of me, which am a woman of Samaria? for the Jews -have no dealings with the Samaritans. - -4:10 Jesus answered and said unto her, If thou knewest the gift of -God, and who it is that saith to thee, Give me to drink; thou wouldest -have asked of him, and he would have given thee living water. - -4:11 The woman saith unto him, Sir, thou hast nothing to draw with, -and the well is deep: from whence then hast thou that living water? -4:12 Art thou greater than our father Jacob, which gave us the well, -and drank thereof himself, and his children, and his cattle? 4:13 -Jesus answered and said unto her, Whosoever drinketh of this water -shall thirst again: 4:14 But whosoever drinketh of the water that I -shall give him shall never thirst; but the water that I shall give him -shall be in him a well of water springing up into everlasting life. - -4:15 The woman saith unto him, Sir, give me this water, that I thirst -not, neither come hither to draw. - -4:16 Jesus saith unto her, Go, call thy husband, and come hither. - -4:17 The woman answered and said, I have no husband. Jesus said unto -her, Thou hast well said, I have no husband: 4:18 For thou hast had -five husbands; and he whom thou now hast is not thy husband: in that -saidst thou truly. - -4:19 The woman saith unto him, Sir, I perceive that thou art a -prophet. - -4:20 Our fathers worshipped in this mountain; and ye say, that in -Jerusalem is the place where men ought to worship. - -4:21 Jesus saith unto her, Woman, believe me, the hour cometh, when ye -shall neither in this mountain, nor yet at Jerusalem, worship the -Father. - -4:22 Ye worship ye know not what: we know what we worship: for -salvation is of the Jews. - -4:23 But the hour cometh, and now is, when the true worshippers shall -worship the Father in spirit and in truth: for the Father seeketh such -to worship him. - -4:24 God is a Spirit: and they that worship him must worship him in -spirit and in truth. - -4:25 The woman saith unto him, I know that Messias cometh, which is -called Christ: when he is come, he will tell us all things. - -4:26 Jesus saith unto her, I that speak unto thee am he. - -4:27 And upon this came his disciples, and marvelled that he talked -with the woman: yet no man said, What seekest thou? or, Why talkest -thou with her? 4:28 The woman then left her waterpot, and went her -way into the city, and saith to the men, 4:29 Come, see a man, which -told me all things that ever I did: is not this the Christ? 4:30 Then -they went out of the city, and came unto him. - -4:31 In the mean while his disciples prayed him, saying, Master, eat. - -4:32 But he said unto them, I have meat to eat that ye know not of. - -4:33 Therefore said the disciples one to another, Hath any man brought -him ought to eat? 4:34 Jesus saith unto them, My meat is to do the -will of him that sent me, and to finish his work. - -4:35 Say not ye, There are yet four months, and then cometh harvest? -behold, I say unto you, Lift up your eyes, and look on the fields; for -they are white already to harvest. - -4:36 And he that reapeth receiveth wages, and gathereth fruit unto -life eternal: that both he that soweth and he that reapeth may rejoice -together. - -4:37 And herein is that saying true, One soweth, and another reapeth. - -4:38 I sent you to reap that whereon ye bestowed no labour: other men -laboured, and ye are entered into their labours. - -4:39 And many of the Samaritans of that city believed on him for the -saying of the woman, which testified, He told me all that ever I did. - -4:40 So when the Samaritans were come unto him, they besought him that -he would tarry with them: and he abode there two days. - -4:41 And many more believed because of his own word; 4:42 And said -unto the woman, Now we believe, not because of thy saying: for we have -heard him ourselves, and know that this is indeed the Christ, the -Saviour of the world. - -4:43 Now after two days he departed thence, and went into Galilee. - -4:44 For Jesus himself testified, that a prophet hath no honour in his -own country. - -4:45 Then when he was come into Galilee, the Galilaeans received him, -having seen all the things that he did at Jerusalem at the feast: for -they also went unto the feast. - -4:46 So Jesus came again into Cana of Galilee, where he made the water -wine. And there was a certain nobleman, whose son was sick at -Capernaum. - -4:47 When he heard that Jesus was come out of Judaea into Galilee, he -went unto him, and besought him that he would come down, and heal his -son: for he was at the point of death. - -4:48 Then said Jesus unto him, Except ye see signs and wonders, ye -will not believe. - -4:49 The nobleman saith unto him, Sir, come down ere my child die. - -4:50 Jesus saith unto him, Go thy way; thy son liveth. And the man -believed the word that Jesus had spoken unto him, and he went his way. - -4:51 And as he was now going down, his servants met him, and told him, -saying, Thy son liveth. - -4:52 Then enquired he of them the hour when he began to amend. And -they said unto him, Yesterday at the seventh hour the fever left him. - -4:53 So the father knew that it was at the same hour, in the which -Jesus said unto him, Thy son liveth: and himself believed, and his -whole house. - -4:54 This is again the second miracle that Jesus did, when he was come -out of Judaea into Galilee. - -5:1 After this there was a feast of the Jews; and Jesus went up to -Jerusalem. - -5:2 Now there is at Jerusalem by the sheep market a pool, which is -called in the Hebrew tongue Bethesda, having five porches. - -5:3 In these lay a great multitude of impotent folk, of blind, halt, -withered, waiting for the moving of the water. - -5:4 For an angel went down at a certain season into the pool, and -troubled the water: whosoever then first after the troubling of the -water stepped in was made whole of whatsoever disease he had. - -5:5 And a certain man was there, which had an infirmity thirty and -eight years. - -5:6 When Jesus saw him lie, and knew that he had been now a long time -in that case, he saith unto him, Wilt thou be made whole? 5:7 The -impotent man answered him, Sir, I have no man, when the water is -troubled, to put me into the pool: but while I am coming, another -steppeth down before me. - -5:8 Jesus saith unto him, Rise, take up thy bed, and walk. - -5:9 And immediately the man was made whole, and took up his bed, and -walked: and on the same day was the sabbath. - -5:10 The Jews therefore said unto him that was cured, It is the -sabbath day: it is not lawful for thee to carry thy bed. - -5:11 He answered them, He that made me whole, the same said unto me, -Take up thy bed, and walk. - -5:12 Then asked they him, What man is that which said unto thee, Take -up thy bed, and walk? 5:13 And he that was healed wist not who it -was: for Jesus had conveyed himself away, a multitude being in that -place. - -5:14 Afterward Jesus findeth him in the temple, and said unto him, -Behold, thou art made whole: sin no more, lest a worse thing come unto -thee. - -5:15 The man departed, and told the Jews that it was Jesus, which had -made him whole. - -5:16 And therefore did the Jews persecute Jesus, and sought to slay -him, because he had done these things on the sabbath day. - -5:17 But Jesus answered them, My Father worketh hitherto, and I work. - -5:18 Therefore the Jews sought the more to kill him, because he not -only had broken the sabbath, but said also that God was his Father, -making himself equal with God. - -5:19 Then answered Jesus and said unto them, Verily, verily, I say -unto you, The Son can do nothing of himself, but what he seeth the -Father do: for what things soever he doeth, these also doeth the Son -likewise. - -5:20 For the Father loveth the Son, and sheweth him all things that -himself doeth: and he will shew him greater works than these, that ye -may marvel. - -5:21 For as the Father raiseth up the dead, and quickeneth them; even -so the Son quickeneth whom he will. - -5:22 For the Father judgeth no man, but hath committed all judgment -unto the Son: 5:23 That all men should honour the Son, even as they -honour the Father. - -He that honoureth not the Son honoureth not the Father which hath sent -him. - -5:24 Verily, verily, I say unto you, He that heareth my word, and -believeth on him that sent me, hath everlasting life, and shall not -come into condemnation; but is passed from death unto life. - -5:25 Verily, verily, I say unto you, The hour is coming, and now is, -when the dead shall hear the voice of the Son of God: and they that -hear shall live. - -5:26 For as the Father hath life in himself; so hath he given to the -Son to have life in himself; 5:27 And hath given him authority to -execute judgment also, because he is the Son of man. - -5:28 Marvel not at this: for the hour is coming, in the which all that -are in the graves shall hear his voice, 5:29 And shall come forth; -they that have done good, unto the resurrection of life; and they that -have done evil, unto the resurrection of damnation. - -5:30 I can of mine own self do nothing: as I hear, I judge: and my -judgment is just; because I seek not mine own will, but the will of -the Father which hath sent me. - -5:31 If I bear witness of myself, my witness is not true. - -5:32 There is another that beareth witness of me; and I know that the -witness which he witnesseth of me is true. - -5:33 Ye sent unto John, and he bare witness unto the truth. - -5:34 But I receive not testimony from man: but these things I say, -that ye might be saved. - -5:35 He was a burning and a shining light: and ye were willing for a -season to rejoice in his light. - -5:36 But I have greater witness than that of John: for the works which -the Father hath given me to finish, the same works that I do, bear -witness of me, that the Father hath sent me. - -5:37 And the Father himself, which hath sent me, hath borne witness of -me. - -Ye have neither heard his voice at any time, nor seen his shape. - -5:38 And ye have not his word abiding in you: for whom he hath sent, -him ye believe not. - -5:39 Search the scriptures; for in them ye think ye have eternal life: -and they are they which testify of me. - -5:40 And ye will not come to me, that ye might have life. - -5:41 I receive not honour from men. - -5:42 But I know you, that ye have not the love of God in you. - -5:43 I am come in my Father's name, and ye receive me not: if another -shall come in his own name, him ye will receive. - -5:44 How can ye believe, which receive honour one of another, and seek -not the honour that cometh from God only? 5:45 Do not think that I -will accuse you to the Father: there is one that accuseth you, even -Moses, in whom ye trust. - -5:46 For had ye believed Moses, ye would have believed me; for he -wrote of me. - -5:47 But if ye believe not his writings, how shall ye believe my -words? 6:1 After these things Jesus went over the sea of Galilee, -which is the sea of Tiberias. - -6:2 And a great multitude followed him, because they saw his miracles -which he did on them that were diseased. - -6:3 And Jesus went up into a mountain, and there he sat with his -disciples. - -6:4 And the passover, a feast of the Jews, was nigh. - -6:5 When Jesus then lifted up his eyes, and saw a great company come -unto him, he saith unto Philip, Whence shall we buy bread, that these -may eat? 6:6 And this he said to prove him: for he himself knew what -he would do. - -6:7 Philip answered him, Two hundred pennyworth of bread is not -sufficient for them, that every one of them may take a little. - -6:8 One of his disciples, Andrew, Simon Peter's brother, saith unto -him, 6:9 There is a lad here, which hath five barley loaves, and two -small fishes: but what are they among so many? 6:10 And Jesus said, -Make the men sit down. Now there was much grass in the place. So the -men sat down, in number about five thousand. - -6:11 And Jesus took the loaves; and when he had given thanks, he -distributed to the disciples, and the disciples to them that were set -down; and likewise of the fishes as much as they would. - -6:12 When they were filled, he said unto his disciples, Gather up the -fragments that remain, that nothing be lost. - -6:13 Therefore they gathered them together, and filled twelve baskets -with the fragments of the five barley loaves, which remained over and -above unto them that had eaten. - -6:14 Then those men, when they had seen the miracle that Jesus did, -said, This is of a truth that prophet that should come into the world. - -6:15 When Jesus therefore perceived that they would come and take him -by force, to make him a king, he departed again into a mountain -himself alone. - -6:16 And when even was now come, his disciples went down unto the sea, -6:17 And entered into a ship, and went over the sea toward Capernaum. -And it was now dark, and Jesus was not come to them. - -6:18 And the sea arose by reason of a great wind that blew. - -6:19 So when they had rowed about five and twenty or thirty furlongs, -they see Jesus walking on the sea, and drawing nigh unto the ship: and -they were afraid. - -6:20 But he saith unto them, It is I; be not afraid. - -6:21 Then they willingly received him into the ship: and immediately -the ship was at the land whither they went. - -6:22 The day following, when the people which stood on the other side -of the sea saw that there was none other boat there, save that one -whereinto his disciples were entered, and that Jesus went not with his -disciples into the boat, but that his disciples were gone away alone; -6:23 (Howbeit there came other boats from Tiberias nigh unto the place -where they did eat bread, after that the Lord had given thanks:) 6:24 -When the people therefore saw that Jesus was not there, neither his -disciples, they also took shipping, and came to Capernaum, seeking for -Jesus. - -6:25 And when they had found him on the other side of the sea, they -said unto him, Rabbi, when camest thou hither? 6:26 Jesus answered -them and said, Verily, verily, I say unto you, Ye seek me, not because -ye saw the miracles, but because ye did eat of the loaves, and were -filled. - -6:27 Labour not for the meat which perisheth, but for that meat which -endureth unto everlasting life, which the Son of man shall give unto -you: for him hath God the Father sealed. - -6:28 Then said they unto him, What shall we do, that we might work the -works of God? 6:29 Jesus answered and said unto them, This is the -work of God, that ye believe on him whom he hath sent. - -6:30 They said therefore unto him, What sign shewest thou then, that -we may see, and believe thee? what dost thou work? 6:31 Our fathers -did eat manna in the desert; as it is written, He gave them bread from -heaven to eat. - -6:32 Then Jesus said unto them, Verily, verily, I say unto you, Moses -gave you not that bread from heaven; but my Father giveth you the true -bread from heaven. - -6:33 For the bread of God is he which cometh down from heaven, and -giveth life unto the world. - -6:34 Then said they unto him, Lord, evermore give us this bread. - -6:35 And Jesus said unto them, I am the bread of life: he that cometh -to me shall never hunger; and he that believeth on me shall never -thirst. - -6:36 But I said unto you, That ye also have seen me, and believe not. - -6:37 All that the Father giveth me shall come to me; and him that -cometh to me I will in no wise cast out. - -6:38 For I came down from heaven, not to do mine own will, but the -will of him that sent me. - -6:39 And this is the Father's will which hath sent me, that of all -which he hath given me I should lose nothing, but should raise it up -again at the last day. - -6:40 And this is the will of him that sent me, that every one which -seeth the Son, and believeth on him, may have everlasting life: and I -will raise him up at the last day. - -6:41 The Jews then murmured at him, because he said, I am the bread -which came down from heaven. - -6:42 And they said, Is not this Jesus, the son of Joseph, whose father -and mother we know? how is it then that he saith, I came down from -heaven? 6:43 Jesus therefore answered and said unto them, Murmur not -among yourselves. - -6:44 No man can come to me, except the Father which hath sent me draw -him: and I will raise him up at the last day. - -6:45 It is written in the prophets, And they shall be all taught of -God. - -Every man therefore that hath heard, and hath learned of the Father, -cometh unto me. - -6:46 Not that any man hath seen the Father, save he which is of God, -he hath seen the Father. - -6:47 Verily, verily, I say unto you, He that believeth on me hath -everlasting life. - -6:48 I am that bread of life. - -6:49 Your fathers did eat manna in the wilderness, and are dead. - -6:50 This is the bread which cometh down from heaven, that a man may -eat thereof, and not die. - -6:51 I am the living bread which came down from heaven: if any man eat -of this bread, he shall live for ever: and the bread that I will give -is my flesh, which I will give for the life of the world. - -6:52 The Jews therefore strove among themselves, saying, How can this -man give us his flesh to eat? 6:53 Then Jesus said unto them, Verily, -verily, I say unto you, Except ye eat the flesh of the Son of man, and -drink his blood, ye have no life in you. - -6:54 Whoso eateth my flesh, and drinketh my blood, hath eternal life; -and I will raise him up at the last day. - -6:55 For my flesh is meat indeed, and my blood is drink indeed. - -6:56 He that eateth my flesh, and drinketh my blood, dwelleth in me, -and I in him. - -6:57 As the living Father hath sent me, and I live by the Father: so -he that eateth me, even he shall live by me. - -6:58 This is that bread which came down from heaven: not as your -fathers did eat manna, and are dead: he that eateth of this bread -shall live for ever. - -6:59 These things said he in the synagogue, as he taught in Capernaum. - -6:60 Many therefore of his disciples, when they had heard this, said, -This is an hard saying; who can hear it? 6:61 When Jesus knew in -himself that his disciples murmured at it, he said unto them, Doth -this offend you? 6:62 What and if ye shall see the Son of man ascend -up where he was before? 6:63 It is the spirit that quickeneth; the -flesh profiteth nothing: the words that I speak unto you, they are -spirit, and they are life. - -6:64 But there are some of you that believe not. For Jesus knew from -the beginning who they were that believed not, and who should betray -him. - -6:65 And he said, Therefore said I unto you, that no man can come unto -me, except it were given unto him of my Father. - -6:66 From that time many of his disciples went back, and walked no -more with him. - -6:67 Then said Jesus unto the twelve, Will ye also go away? 6:68 Then -Simon Peter answered him, Lord, to whom shall we go? thou hast the -words of eternal life. - -6:69 And we believe and are sure that thou art that Christ, the Son of -the living God. - -6:70 Jesus answered them, Have not I chosen you twelve, and one of you -is a devil? 6:71 He spake of Judas Iscariot the son of Simon: for he -it was that should betray him, being one of the twelve. - -7:1 After these things Jesus walked in Galilee: for he would not walk -in Jewry, because the Jews sought to kill him. - -7:2 Now the Jew's feast of tabernacles was at hand. - -7:3 His brethren therefore said unto him, Depart hence, and go into -Judaea, that thy disciples also may see the works that thou doest. - -7:4 For there is no man that doeth any thing in secret, and he himself -seeketh to be known openly. If thou do these things, shew thyself to -the world. - -7:5 For neither did his brethren believe in him. - -7:6 Then Jesus said unto them, My time is not yet come: but your time -is alway ready. - -7:7 The world cannot hate you; but me it hateth, because I testify of -it, that the works thereof are evil. - -7:8 Go ye up unto this feast: I go not up yet unto this feast: for my -time is not yet full come. - -7:9 When he had said these words unto them, he abode still in Galilee. - -7:10 But when his brethren were gone up, then went he also up unto the -feast, not openly, but as it were in secret. - -7:11 Then the Jews sought him at the feast, and said, Where is he? -7:12 And there was much murmuring among the people concerning him: for -some said, He is a good man: others said, Nay; but he deceiveth the -people. - -7:13 Howbeit no man spake openly of him for fear of the Jews. - -7:14 Now about the midst of the feast Jesus went up into the temple, -and taught. - -7:15 And the Jews marvelled, saying, How knoweth this man letters, -having never learned? 7:16 Jesus answered them, and said, My doctrine -is not mine, but his that sent me. - -7:17 If any man will do his will, he shall know of the doctrine, -whether it be of God, or whether I speak of myself. - -7:18 He that speaketh of himself seeketh his own glory: but he that -seeketh his glory that sent him, the same is true, and no -unrighteousness is in him. - -7:19 Did not Moses give you the law, and yet none of you keepeth the -law? Why go ye about to kill me? 7:20 The people answered and said, -Thou hast a devil: who goeth about to kill thee? 7:21 Jesus answered -and said unto them, I have done one work, and ye all marvel. - -7:22 Moses therefore gave unto you circumcision; (not because it is of -Moses, but of the fathers;) and ye on the sabbath day circumcise a -man. - -7:23 If a man on the sabbath day receive circumcision, that the law of -Moses should not be broken; are ye angry at me, because I have made a -man every whit whole on the sabbath day? 7:24 Judge not according to -the appearance, but judge righteous judgment. - -7:25 Then said some of them of Jerusalem, Is not this he, whom they -seek to kill? 7:26 But, lo, he speaketh boldly, and they say nothing -unto him. Do the rulers know indeed that this is the very Christ? -7:27 Howbeit we know this man whence he is: but when Christ cometh, no -man knoweth whence he is. - -7:28 Then cried Jesus in the temple as he taught, saying, Ye both know -me, and ye know whence I am: and I am not come of myself, but he that -sent me is true, whom ye know not. - -7:29 But I know him: for I am from him, and he hath sent me. - -7:30 Then they sought to take him: but no man laid hands on him, -because his hour was not yet come. - -7:31 And many of the people believed on him, and said, When Christ -cometh, will he do more miracles than these which this man hath done? -7:32 The Pharisees heard that the people murmured such things -concerning him; and the Pharisees and the chief priests sent officers -to take him. - -7:33 Then said Jesus unto them, Yet a little while am I with you, and -then I go unto him that sent me. - -7:34 Ye shall seek me, and shall not find me: and where I am, thither -ye cannot come. - -7:35 Then said the Jews among themselves, Whither will he go, that we -shall not find him? will he go unto the dispersed among the Gentiles, -and teach the Gentiles? 7:36 What manner of saying is this that he -said, Ye shall seek me, and shall not find me: and where I am, thither -ye cannot come? 7:37 In the last day, that great day of the feast, -Jesus stood and cried, saying, If any man thirst, let him come unto -me, and drink. - -7:38 He that believeth on me, as the scripture hath said, out of his -belly shall flow rivers of living water. - -7:39 (But this spake he of the Spirit, which they that believe on him -should receive: for the Holy Ghost was not yet given; because that -Jesus was not yet glorified.) 7:40 Many of the people therefore, when -they heard this saying, said, Of a truth this is the Prophet. - -7:41 Others said, This is the Christ. But some said, Shall Christ come -out of Galilee? 7:42 Hath not the scripture said, That Christ cometh -of the seed of David, and out of the town of Bethlehem, where David -was? 7:43 So there was a division among the people because of him. - -7:44 And some of them would have taken him; but no man laid hands on -him. - -7:45 Then came the officers to the chief priests and Pharisees; and -they said unto them, Why have ye not brought him? 7:46 The officers -answered, Never man spake like this man. - -7:47 Then answered them the Pharisees, Are ye also deceived? 7:48 -Have any of the rulers or of the Pharisees believed on him? 7:49 But -this people who knoweth not the law are cursed. - -7:50 Nicodemus saith unto them, (he that came to Jesus by night, being -one of them,) 7:51 Doth our law judge any man, before it hear him, and -know what he doeth? 7:52 They answered and said unto him, Art thou -also of Galilee? Search, and look: for out of Galilee ariseth no -prophet. - -7:53 And every man went unto his own house. - -8:1 Jesus went unto the mount of Olives. - -8:2 And early in the morning he came again into the temple, and all -the people came unto him; and he sat down, and taught them. - -8:3 And the scribes and Pharisees brought unto him a woman taken in -adultery; and when they had set her in the midst, 8:4 They say unto -him, Master, this woman was taken in adultery, in the very act. - -8:5 Now Moses in the law commanded us, that such should be stoned: but -what sayest thou? 8:6 This they said, tempting him, that they might -have to accuse him. But Jesus stooped down, and with his finger wrote -on the ground, as though he heard them not. - -8:7 So when they continued asking him, he lifted up himself, and said -unto them, He that is without sin among you, let him first cast a -stone at her. - -8:8 And again he stooped down, and wrote on the ground. - -8:9 And they which heard it, being convicted by their own conscience, -went out one by one, beginning at the eldest, even unto the last: and -Jesus was left alone, and the woman standing in the midst. - -8:10 When Jesus had lifted up himself, and saw none but the woman, he -said unto her, Woman, where are those thine accusers? hath no man -condemned thee? 8:11 She said, No man, Lord. And Jesus said unto her, -Neither do I condemn thee: go, and sin no more. - -8:12 Then spake Jesus again unto them, saying, I am the light of the -world: he that followeth me shall not walk in darkness, but shall have -the light of life. - -8:13 The Pharisees therefore said unto him, Thou bearest record of -thyself; thy record is not true. - -8:14 Jesus answered and said unto them, Though I bear record of -myself, yet my record is true: for I know whence I came, and whither I -go; but ye cannot tell whence I come, and whither I go. - -8:15 Ye judge after the flesh; I judge no man. - -8:16 And yet if I judge, my judgment is true: for I am not alone, but -I and the Father that sent me. - -8:17 It is also written in your law, that the testimony of two men is -true. - -8:18 I am one that bear witness of myself, and the Father that sent me -beareth witness of me. - -8:19 Then said they unto him, Where is thy Father? Jesus answered, Ye -neither know me, nor my Father: if ye had known me, ye should have -known my Father also. - -8:20 These words spake Jesus in the treasury, as he taught in the -temple: and no man laid hands on him; for his hour was not yet come. - -8:21 Then said Jesus again unto them, I go my way, and ye shall seek -me, and shall die in your sins: whither I go, ye cannot come. - -8:22 Then said the Jews, Will he kill himself? because he saith, -Whither I go, ye cannot come. - -8:23 And he said unto them, Ye are from beneath; I am from above: ye -are of this world; I am not of this world. - -8:24 I said therefore unto you, that ye shall die in your sins: for if -ye believe not that I am he, ye shall die in your sins. - -8:25 Then said they unto him, Who art thou? And Jesus saith unto them, -Even the same that I said unto you from the beginning. - -8:26 I have many things to say and to judge of you: but he that sent -me is true; and I speak to the world those things which I have heard -of him. - -8:27 They understood not that he spake to them of the Father. - -8:28 Then said Jesus unto them, When ye have lifted up the Son of man, -then shall ye know that I am he, and that I do nothing of myself; but -as my Father hath taught me, I speak these things. - -8:29 And he that sent me is with me: the Father hath not left me -alone; for I do always those things that please him. - -8:30 As he spake these words, many believed on him. - -8:31 Then said Jesus to those Jews which believed on him, If ye -continue in my word, then are ye my disciples indeed; 8:32 And ye -shall know the truth, and the truth shall make you free. - -8:33 They answered him, We be Abraham's seed, and were never in -bondage to any man: how sayest thou, Ye shall be made free? 8:34 -Jesus answered them, Verily, verily, I say unto you, Whosoever -committeth sin is the servant of sin. - -8:35 And the servant abideth not in the house for ever: but the Son -abideth ever. - -8:36 If the Son therefore shall make you free, ye shall be free -indeed. - -8:37 I know that ye are Abraham's seed; but ye seek to kill me, -because my word hath no place in you. - -8:38 I speak that which I have seen with my Father: and ye do that -which ye have seen with your father. - -8:39 They answered and said unto him, Abraham is our father. Jesus -saith unto them, If ye were Abraham's children, ye would do the works -of Abraham. - -8:40 But now ye seek to kill me, a man that hath told you the truth, -which I have heard of God: this did not Abraham. - -8:41 Ye do the deeds of your father. Then said they to him, We be not -born of fornication; we have one Father, even God. - -8:42 Jesus said unto them, If God were your Father, ye would love me: -for I proceeded forth and came from God; neither came I of myself, but -he sent me. - -8:43 Why do ye not understand my speech? even because ye cannot hear -my word. - -8:44 Ye are of your father the devil, and the lusts of your father ye -will do. He was a murderer from the beginning, and abode not in the -truth, because there is no truth in him. When he speaketh a lie, he -speaketh of his own: for he is a liar, and the father of it. - -8:45 And because I tell you the truth, ye believe me not. - -8:46 Which of you convinceth me of sin? And if I say the truth, why do -ye not believe me? 8:47 He that is of God heareth God's words: ye -therefore hear them not, because ye are not of God. - -8:48 Then answered the Jews, and said unto him, Say we not well that -thou art a Samaritan, and hast a devil? 8:49 Jesus answered, I have -not a devil; but I honour my Father, and ye do dishonour me. - -8:50 And I seek not mine own glory: there is one that seeketh and -judgeth. - -8:51 Verily, verily, I say unto you, If a man keep my saying, he shall -never see death. - -8:52 Then said the Jews unto him, Now we know that thou hast a devil. - -Abraham is dead, and the prophets; and thou sayest, If a man keep my -saying, he shall never taste of death. - -8:53 Art thou greater than our father Abraham, which is dead? and the -prophets are dead: whom makest thou thyself? 8:54 Jesus answered, If -I honour myself, my honour is nothing: it is my Father that honoureth -me; of whom ye say, that he is your God: 8:55 Yet ye have not known -him; but I know him: and if I should say, I know him not, I shall be a -liar like unto you: but I know him, and keep his saying. - -8:56 Your father Abraham rejoiced to see my day: and he saw it, and -was glad. - -8:57 Then said the Jews unto him, Thou art not yet fifty years old, -and hast thou seen Abraham? 8:58 Jesus said unto them, Verily, -verily, I say unto you, Before Abraham was, I am. - -8:59 Then took they up stones to cast at him: but Jesus hid himself, -and went out of the temple, going through the midst of them, and so -passed by. - -9:1 And as Jesus passed by, he saw a man which was blind from his -birth. - -9:2 And his disciples asked him, saying, Master, who did sin, this -man, or his parents, that he was born blind? 9:3 Jesus answered, -Neither hath this man sinned, nor his parents: but that the works of -God should be made manifest in him. - -9:4 I must work the works of him that sent me, while it is day: the -night cometh, when no man can work. - -9:5 As long as I am in the world, I am the light of the world. - -9:6 When he had thus spoken, he spat on the ground, and made clay of -the spittle, and he anointed the eyes of the blind man with the clay, -9:7 And said unto him, Go, wash in the pool of Siloam, (which is by -interpretation, Sent.) He went his way therefore, and washed, and came -seeing. - -9:8 The neighbours therefore, and they which before had seen him that -he was blind, said, Is not this he that sat and begged? 9:9 Some -said, This is he: others said, He is like him: but he said, I am he. - -9:10 Therefore said they unto him, How were thine eyes opened? 9:11 -He answered and said, A man that is called Jesus made clay, and -anointed mine eyes, and said unto me, Go to the pool of Siloam, and -wash: and I went and washed, and I received sight. - -9:12 Then said they unto him, Where is he? He said, I know not. - -9:13 They brought to the Pharisees him that aforetime was blind. - -9:14 And it was the sabbath day when Jesus made the clay, and opened -his eyes. - -9:15 Then again the Pharisees also asked him how he had received his -sight. He said unto them, He put clay upon mine eyes, and I washed, -and do see. - -9:16 Therefore said some of the Pharisees, This man is not of God, -because he keepeth not the sabbath day. Others said, How can a man -that is a sinner do such miracles? And there was a division among -them. - -9:17 They say unto the blind man again, What sayest thou of him, that -he hath opened thine eyes? He said, He is a prophet. - -9:18 But the Jews did not believe concerning him, that he had been -blind, and received his sight, until they called the parents of him -that had received his sight. - -9:19 And they asked them, saying, Is this your son, who ye say was -born blind? how then doth he now see? 9:20 His parents answered them -and said, We know that this is our son, and that he was born blind: -9:21 But by what means he now seeth, we know not; or who hath opened -his eyes, we know not: he is of age; ask him: he shall speak for -himself. - -9:22 These words spake his parents, because they feared the Jews: for -the Jews had agreed already, that if any man did confess that he was -Christ, he should be put out of the synagogue. - -9:23 Therefore said his parents, He is of age; ask him. - -9:24 Then again called they the man that was blind, and said unto him, -Give God the praise: we know that this man is a sinner. - -9:25 He answered and said, Whether he be a sinner or no, I know not: -one thing I know, that, whereas I was blind, now I see. - -9:26 Then said they to him again, What did he to thee? how opened he -thine eyes? 9:27 He answered them, I have told you already, and ye -did not hear: wherefore would ye hear it again? will ye also be his -disciples? 9:28 Then they reviled him, and said, Thou art his -disciple; but we are Moses' disciples. - -9:29 We know that God spake unto Moses: as for this fellow, we know -not from whence he is. - -9:30 The man answered and said unto them, Why herein is a marvellous -thing, that ye know not from whence he is, and yet he hath opened mine -eyes. - -9:31 Now we know that God heareth not sinners: but if any man be a -worshipper of God, and doeth his will, him he heareth. - -9:32 Since the world began was it not heard that any man opened the -eyes of one that was born blind. - -9:33 If this man were not of God, he could do nothing. - -9:34 They answered and said unto him, Thou wast altogether born in -sins, and dost thou teach us? And they cast him out. - -9:35 Jesus heard that they had cast him out; and when he had found -him, he said unto him, Dost thou believe on the Son of God? 9:36 He -answered and said, Who is he, Lord, that I might believe on him? 9:37 -And Jesus said unto him, Thou hast both seen him, and it is he that -talketh with thee. - -9:38 And he said, Lord, I believe. And he worshipped him. - -9:39 And Jesus said, For judgment I am come into this world, that they -which see not might see; and that they which see might be made blind. - -9:40 And some of the Pharisees which were with him heard these words, -and said unto him, Are we blind also? 9:41 Jesus said unto them, If -ye were blind, ye should have no sin: but now ye say, We see; -therefore your sin remaineth. - -10:1 Verily, verily, I say unto you, He that entereth not by the door -into the sheepfold, but climbeth up some other way, the same is a -thief and a robber. - -10:2 But he that entereth in by the door is the shepherd of the sheep. - -10:3 To him the porter openeth; and the sheep hear his voice: and he -calleth his own sheep by name, and leadeth them out. - -10:4 And when he putteth forth his own sheep, he goeth before them, -and the sheep follow him: for they know his voice. - -10:5 And a stranger will they not follow, but will flee from him: for -they know not the voice of strangers. - -10:6 This parable spake Jesus unto them: but they understood not what -things they were which he spake unto them. - -10:7 Then said Jesus unto them again, Verily, verily, I say unto you, -I am the door of the sheep. - -10:8 All that ever came before me are thieves and robbers: but the -sheep did not hear them. - -10:9 I am the door: by me if any man enter in, he shall be saved, and -shall go in and out, and find pasture. - -10:10 The thief cometh not, but for to steal, and to kill, and to -destroy: I am come that they might have life, and that they might have -it more abundantly. - -10:11 I am the good shepherd: the good shepherd giveth his life for -the sheep. - -10:12 But he that is an hireling, and not the shepherd, whose own the -sheep are not, seeth the wolf coming, and leaveth the sheep, and -fleeth: and the wolf catcheth them, and scattereth the sheep. - -10:13 The hireling fleeth, because he is an hireling, and careth not -for the sheep. - -10:14 I am the good shepherd, and know my sheep, and am known of mine. - -10:15 As the Father knoweth me, even so know I the Father: and I lay -down my life for the sheep. - -10:16 And other sheep I have, which are not of this fold: them also I -must bring, and they shall hear my voice; and there shall be one fold, -and one shepherd. - -10:17 Therefore doth my Father love me, because I lay down my life, -that I might take it again. - -10:18 No man taketh it from me, but I lay it down of myself. I have -power to lay it down, and I have power to take it again. This -commandment have I received of my Father. - -10:19 There was a division therefore again among the Jews for these -sayings. - -10:20 And many of them said, He hath a devil, and is mad; why hear ye -him? 10:21 Others said, These are not the words of him that hath a -devil. Can a devil open the eyes of the blind? 10:22 And it was at -Jerusalem the feast of the dedication, and it was winter. - -10:23 And Jesus walked in the temple in Solomon's porch. - -10:24 Then came the Jews round about him, and said unto him, How long -dost thou make us to doubt? If thou be the Christ, tell us plainly. - -10:25 Jesus answered them, I told you, and ye believed not: the works -that I do in my Father's name, they bear witness of me. - -10:26 But ye believe not, because ye are not of my sheep, as I said -unto you. - -10:27 My sheep hear my voice, and I know them, and they follow me: -10:28 And I give unto them eternal life; and they shall never perish, -neither shall any man pluck them out of my hand. - -10:29 My Father, which gave them me, is greater than all; and no man -is able to pluck them out of my Father's hand. - -10:30 I and my Father are one. - -10:31 Then the Jews took up stones again to stone him. - -10:32 Jesus answered them, Many good works have I shewed you from my -Father; for which of those works do ye stone me? 10:33 The Jews -answered him, saying, For a good work we stone thee not; but for -blasphemy; and because that thou, being a man, makest thyself God. - -10:34 Jesus answered them, Is it not written in your law, I said, Ye -are gods? 10:35 If he called them gods, unto whom the word of God -came, and the scripture cannot be broken; 10:36 Say ye of him, whom -the Father hath sanctified, and sent into the world, Thou blasphemest; -because I said, I am the Son of God? 10:37 If I do not the works of -my Father, believe me not. - -10:38 But if I do, though ye believe not me, believe the works: that -ye may know, and believe, that the Father is in me, and I in him. - -10:39 Therefore they sought again to take him: but he escaped out of -their hand, 10:40 And went away again beyond Jordan into the place -where John at first baptized; and there he abode. - -10:41 And many resorted unto him, and said, John did no miracle: but -all things that John spake of this man were true. - -10:42 And many believed on him there. - -11:1 Now a certain man was sick, named Lazarus, of Bethany, the town -of Mary and her sister Martha. - -11:2 (It was that Mary which anointed the Lord with ointment, and -wiped his feet with her hair, whose brother Lazarus was sick.) 11:3 -Therefore his sisters sent unto him, saying, Lord, behold, he whom -thou lovest is sick. - -11:4 When Jesus heard that, he said, This sickness is not unto death, -but for the glory of God, that the Son of God might be glorified -thereby. - -11:5 Now Jesus loved Martha, and her sister, and Lazarus. - -11:6 When he had heard therefore that he was sick, he abode two days -still in the same place where he was. - -11:7 Then after that saith he to his disciples, Let us go into Judaea -again. - -11:8 His disciples say unto him, Master, the Jews of late sought to -stone thee; and goest thou thither again? 11:9 Jesus answered, Are -there not twelve hours in the day? If any man walk in the day, he -stumbleth not, because he seeth the light of this world. - -11:10 But if a man walk in the night, he stumbleth, because there is -no light in him. - -11:11 These things said he: and after that he saith unto them, Our -friend Lazarus sleepeth; but I go, that I may awake him out of sleep. - -11:12 Then said his disciples, Lord, if he sleep, he shall do well. - -11:13 Howbeit Jesus spake of his death: but they thought that he had -spoken of taking of rest in sleep. - -11:14 Then said Jesus unto them plainly, Lazarus is dead. - -11:15 And I am glad for your sakes that I was not there, to the intent -ye may believe; nevertheless let us go unto him. - -11:16 Then said Thomas, which is called Didymus, unto his -fellowdisciples, Let us also go, that we may die with him. - -11:17 Then when Jesus came, he found that he had lain in the grave -four days already. - -11:18 Now Bethany was nigh unto Jerusalem, about fifteen furlongs off: -11:19 And many of the Jews came to Martha and Mary, to comfort them -concerning their brother. - -11:20 Then Martha, as soon as she heard that Jesus was coming, went -and met him: but Mary sat still in the house. - -11:21 Then said Martha unto Jesus, Lord, if thou hadst been here, my -brother had not died. - -11:22 But I know, that even now, whatsoever thou wilt ask of God, God -will give it thee. - -11:23 Jesus saith unto her, Thy brother shall rise again. - -11:24 Martha saith unto him, I know that he shall rise again in the -resurrection at the last day. - -11:25 Jesus said unto her, I am the resurrection, and the life: he -that believeth in me, though he were dead, yet shall he live: 11:26 -And whosoever liveth and believeth in me shall never die. Believest -thou this? 11:27 She saith unto him, Yea, Lord: I believe that thou -art the Christ, the Son of God, which should come into the world. - -11:28 And when she had so said, she went her way, and called Mary her -sister secretly, saying, The Master is come, and calleth for thee. - -11:29 As soon as she heard that, she arose quickly, and came unto him. - -11:30 Now Jesus was not yet come into the town, but was in that place -where Martha met him. - -11:31 The Jews then which were with her in the house, and comforted -her, when they saw Mary, that she rose up hastily and went out, -followed her, saying, She goeth unto the grave to weep there. - -11:32 Then when Mary was come where Jesus was, and saw him, she fell -down at his feet, saying unto him, Lord, if thou hadst been here, my -brother had not died. - -11:33 When Jesus therefore saw her weeping, and the Jews also weeping -which came with her, he groaned in the spirit, and was troubled. - -11:34 And said, Where have ye laid him? They said unto him, Lord, come -and see. - -11:35 Jesus wept. - -11:36 Then said the Jews, Behold how he loved him! 11:37 And some of -them said, Could not this man, which opened the eyes of the blind, -have caused that even this man should not have died? 11:38 Jesus -therefore again groaning in himself cometh to the grave. It was a -cave, and a stone lay upon it. - -11:39 Jesus said, Take ye away the stone. Martha, the sister of him -that was dead, saith unto him, Lord, by this time he stinketh: for he -hath been dead four days. - -11:40 Jesus saith unto her, Said I not unto thee, that, if thou -wouldest believe, thou shouldest see the glory of God? 11:41 Then -they took away the stone from the place where the dead was laid. And -Jesus lifted up his eyes, and said, Father, I thank thee that thou -hast heard me. - -11:42 And I knew that thou hearest me always: but because of the -people which stand by I said it, that they may believe that thou hast -sent me. - -11:43 And when he thus had spoken, he cried with a loud voice, -Lazarus, come forth. - -11:44 And he that was dead came forth, bound hand and foot with -graveclothes: and his face was bound about with a napkin. Jesus saith -unto them, Loose him, and let him go. - -11:45 Then many of the Jews which came to Mary, and had seen the -things which Jesus did, believed on him. - -11:46 But some of them went their ways to the Pharisees, and told them -what things Jesus had done. - -11:47 Then gathered the chief priests and the Pharisees a council, and -said, What do we? for this man doeth many miracles. - -11:48 If we let him thus alone, all men will believe on him: and the -Romans shall come and take away both our place and nation. - -11:49 And one of them, named Caiaphas, being the high priest that same -year, said unto them, Ye know nothing at all, 11:50 Nor consider that -it is expedient for us, that one man should die for the people, and -that the whole nation perish not. - -11:51 And this spake he not of himself: but being high priest that -year, he prophesied that Jesus should die for that nation; 11:52 And -not for that nation only, but that also he should gather together in -one the children of God that were scattered abroad. - -11:53 Then from that day forth they took counsel together for to put -him to death. - -11:54 Jesus therefore walked no more openly among the Jews; but went -thence unto a country near to the wilderness, into a city called -Ephraim, and there continued with his disciples. - -11:55 And the Jews' passover was nigh at hand: and many went out of -the country up to Jerusalem before the passover, to purify themselves. - -11:56 Then sought they for Jesus, and spake among themselves, as they -stood in the temple, What think ye, that he will not come to the -feast? 11:57 Now both the chief priests and the Pharisees had given a -commandment, that, if any man knew where he were, he should shew it, -that they might take him. - -12:1 Then Jesus six days before the passover came to Bethany, where -Lazarus was, which had been dead, whom he raised from the dead. - -12:2 There they made him a supper; and Martha served: but Lazarus was -one of them that sat at the table with him. - -12:3 Then took Mary a pound of ointment of spikenard, very costly, and -anointed the feet of Jesus, and wiped his feet with her hair: and the -house was filled with the odour of the ointment. - -12:4 Then saith one of his disciples, Judas Iscariot, Simon's son, -which should betray him, 12:5 Why was not this ointment sold for three -hundred pence, and given to the poor? 12:6 This he said, not that he -cared for the poor; but because he was a thief, and had the bag, and -bare what was put therein. - -12:7 Then said Jesus, Let her alone: against the day of my burying -hath she kept this. - -12:8 For the poor always ye have with you; but me ye have not always. - -12:9 Much people of the Jews therefore knew that he was there: and -they came not for Jesus' sake only, but that they might see Lazarus -also, whom he had raised from the dead. - -12:10 But the chief priests consulted that they might put Lazarus also -to death; 12:11 Because that by reason of him many of the Jews went -away, and believed on Jesus. - -12:12 On the next day much people that were come to the feast, when -they heard that Jesus was coming to Jerusalem, 12:13 Took branches of -palm trees, and went forth to meet him, and cried, Hosanna: Blessed is -the King of Israel that cometh in the name of the Lord. - -12:14 And Jesus, when he had found a young ass, sat thereon; as it is -written, 12:15 Fear not, daughter of Sion: behold, thy King cometh, -sitting on an ass's colt. - -12:16 These things understood not his disciples at the first: but when -Jesus was glorified, then remembered they that these things were -written of him, and that they had done these things unto him. - -12:17 The people therefore that was with him when he called Lazarus -out of his grave, and raised him from the dead, bare record. - -12:18 For this cause the people also met him, for that they heard that -he had done this miracle. - -12:19 The Pharisees therefore said among themselves, Perceive ye how -ye prevail nothing? behold, the world is gone after him. - -12:20 And there were certain Greeks among them that came up to worship -at the feast: 12:21 The same came therefore to Philip, which was of -Bethsaida of Galilee, and desired him, saying, Sir, we would see -Jesus. - -12:22 Philip cometh and telleth Andrew: and again Andrew and Philip -tell Jesus. - -12:23 And Jesus answered them, saying, The hour is come, that the Son -of man should be glorified. - -12:24 Verily, verily, I say unto you, Except a corn of wheat fall into -the ground and die, it abideth alone: but if it die, it bringeth forth -much fruit. - -12:25 He that loveth his life shall lose it; and he that hateth his -life in this world shall keep it unto life eternal. - -12:26 If any man serve me, let him follow me; and where I am, there -shall also my servant be: if any man serve me, him will my Father -honour. - -12:27 Now is my soul troubled; and what shall I say? Father, save me -from this hour: but for this cause came I unto this hour. - -12:28 Father, glorify thy name. Then came there a voice from heaven, -saying, I have both glorified it, and will glorify it again. - -12:29 The people therefore, that stood by, and heard it, said that it -thundered: others said, An angel spake to him. - -12:30 Jesus answered and said, This voice came not because of me, but -for your sakes. - -12:31 Now is the judgment of this world: now shall the prince of this -world be cast out. - -12:32 And I, if I be lifted up from the earth, will draw all men unto -me. - -12:33 This he said, signifying what death he should die. - -12:34 The people answered him, We have heard out of the law that -Christ abideth for ever: and how sayest thou, The Son of man must be -lifted up? who is this Son of man? 12:35 Then Jesus said unto them, -Yet a little while is the light with you. - -Walk while ye have the light, lest darkness come upon you: for he that -walketh in darkness knoweth not whither he goeth. - -12:36 While ye have light, believe in the light, that ye may be the -children of light. These things spake Jesus, and departed, and did -hide himself from them. - -12:37 But though he had done so many miracles before them, yet they -believed not on him: 12:38 That the saying of Esaias the prophet might -be fulfilled, which he spake, Lord, who hath believed our report? and -to whom hath the arm of the Lord been revealed? 12:39 Therefore they -could not believe, because that Esaias said again, 12:40 He hath -blinded their eyes, and hardened their heart; that they should not see -with their eyes, nor understand with their heart, and be converted, -and I should heal them. - -12:41 These things said Esaias, when he saw his glory, and spake of -him. - -12:42 Nevertheless among the chief rulers also many believed on him; -but because of the Pharisees they did not confess him, lest they -should be put out of the synagogue: 12:43 For they loved the praise of -men more than the praise of God. - -12:44 Jesus cried and said, He that believeth on me, believeth not on -me, but on him that sent me. - -12:45 And he that seeth me seeth him that sent me. - -12:46 I am come a light into the world, that whosoever believeth on me -should not abide in darkness. - -12:47 And if any man hear my words, and believe not, I judge him not: -for I came not to judge the world, but to save the world. - -12:48 He that rejecteth me, and receiveth not my words, hath one that -judgeth him: the word that I have spoken, the same shall judge him in -the last day. - -12:49 For I have not spoken of myself; but the Father which sent me, -he gave me a commandment, what I should say, and what I should speak. - -12:50 And I know that his commandment is life everlasting: whatsoever -I speak therefore, even as the Father said unto me, so I speak. - -13:1 Now before the feast of the passover, when Jesus knew that his -hour was come that he should depart out of this world unto the Father, -having loved his own which were in the world, he loved them unto the -end. - -13:2 And supper being ended, the devil having now put into the heart -of Judas Iscariot, Simon's son, to betray him; 13:3 Jesus knowing that -the Father had given all things into his hands, and that he was come -from God, and went to God; 13:4 He riseth from supper, and laid aside -his garments; and took a towel, and girded himself. - -13:5 After that he poureth water into a bason, and began to wash the -disciples' feet, and to wipe them with the towel wherewith he was -girded. - -13:6 Then cometh he to Simon Peter: and Peter saith unto him, Lord, -dost thou wash my feet? 13:7 Jesus answered and said unto him, What I -do thou knowest not now; but thou shalt know hereafter. - -13:8 Peter saith unto him, Thou shalt never wash my feet. Jesus -answered him, If I wash thee not, thou hast no part with me. - -13:9 Simon Peter saith unto him, Lord, not my feet only, but also my -hands and my head. - -13:10 Jesus saith to him, He that is washed needeth not save to wash -his feet, but is clean every whit: and ye are clean, but not all. - -13:11 For he knew who should betray him; therefore said he, Ye are not -all clean. - -13:12 So after he had washed their feet, and had taken his garments, -and was set down again, he said unto them, Know ye what I have done to -you? 13:13 Ye call me Master and Lord: and ye say well; for so I am. - -13:14 If I then, your Lord and Master, have washed your feet; ye also -ought to wash one another's feet. - -13:15 For I have given you an example, that ye should do as I have -done to you. - -13:16 Verily, verily, I say unto you, The servant is not greater than -his lord; neither he that is sent greater than he that sent him. - -13:17 If ye know these things, happy are ye if ye do them. - -13:18 I speak not of you all: I know whom I have chosen: but that the -scripture may be fulfilled, He that eateth bread with me hath lifted -up his heel against me. - -13:19 Now I tell you before it come, that, when it is come to pass, ye -may believe that I am he. - -13:20 Verily, verily, I say unto you, He that receiveth whomsoever I -send receiveth me; and he that receiveth me receiveth him that sent -me. - -13:21 When Jesus had thus said, he was troubled in spirit, and -testified, and said, Verily, verily, I say unto you, that one of you -shall betray me. - -13:22 Then the disciples looked one on another, doubting of whom he -spake. - -13:23 Now there was leaning on Jesus' bosom one of his disciples, whom -Jesus loved. - -13:24 Simon Peter therefore beckoned to him, that he should ask who it -should be of whom he spake. - -13:25 He then lying on Jesus' breast saith unto him, Lord, who is it? -13:26 Jesus answered, He it is, to whom I shall give a sop, when I -have dipped it. And when he had dipped the sop, he gave it to Judas -Iscariot, the son of Simon. - -13:27 And after the sop Satan entered into him. Then said Jesus unto -him, That thou doest, do quickly. - -13:28 Now no man at the table knew for what intent he spake this unto -him. - -13:29 For some of them thought, because Judas had the bag, that Jesus -had said unto him, Buy those things that we have need of against the -feast; or, that he should give something to the poor. - -13:30 He then having received the sop went immediately out: and it was -night. - -13:31 Therefore, when he was gone out, Jesus said, Now is the Son of -man glorified, and God is glorified in him. - -13:32 If God be glorified in him, God shall also glorify him in -himself, and shall straightway glorify him. - -13:33 Little children, yet a little while I am with you. Ye shall seek -me: and as I said unto the Jews, Whither I go, ye cannot come; so now -I say to you. - -13:34 A new commandment I give unto you, That ye love one another; as -I have loved you, that ye also love one another. - -13:35 By this shall all men know that ye are my disciples, if ye have -love one to another. - -13:36 Simon Peter said unto him, Lord, whither goest thou? Jesus -answered him, Whither I go, thou canst not follow me now; but thou -shalt follow me afterwards. - -13:37 Peter said unto him, Lord, why cannot I follow thee now? I will -lay down my life for thy sake. - -13:38 Jesus answered him, Wilt thou lay down thy life for my sake? -Verily, verily, I say unto thee, The cock shall not crow, till thou -hast denied me thrice. - -14:1 Let not your heart be troubled: ye believe in God, believe also -in me. - -14:2 In my Father's house are many mansions: if it were not so, I -would have told you. I go to prepare a place for you. - -14:3 And if I go and prepare a place for you, I will come again, and -receive you unto myself; that where I am, there ye may be also. - -14:4 And whither I go ye know, and the way ye know. - -14:5 Thomas saith unto him, Lord, we know not whither thou goest; and -how can we know the way? 14:6 Jesus saith unto him, I am the way, the -truth, and the life: no man cometh unto the Father, but by me. - -14:7 If ye had known me, ye should have known my Father also: and from -henceforth ye know him, and have seen him. - -14:8 Philip saith unto him, Lord, shew us the Father, and it sufficeth -us. - -14:9 Jesus saith unto him, Have I been so long time with you, and yet -hast thou not known me, Philip? he that hath seen me hath seen the -Father; and how sayest thou then, Shew us the Father? 14:10 Believest -thou not that I am in the Father, and the Father in me? the words -that I speak unto you I speak not of myself: but the Father that -dwelleth in me, he doeth the works. - -14:11 Believe me that I am in the Father, and the Father in me: or -else believe me for the very works' sake. - -14:12 Verily, verily, I say unto you, He that believeth on me, the -works that I do shall he do also; and greater works than these shall -he do; because I go unto my Father. - -14:13 And whatsoever ye shall ask in my name, that will I do, that the -Father may be glorified in the Son. - -14:14 If ye shall ask any thing in my name, I will do it. - -14:15 If ye love me, keep my commandments. - -14:16 And I will pray the Father, and he shall give you another -Comforter, that he may abide with you for ever; 14:17 Even the Spirit -of truth; whom the world cannot receive, because it seeth him not, -neither knoweth him: but ye know him; for he dwelleth with you, and -shall be in you. - -14:18 I will not leave you comfortless: I will come to you. - -14:19 Yet a little while, and the world seeth me no more; but ye see -me: because I live, ye shall live also. - -14:20 At that day ye shall know that I am in my Father, and ye in me, -and I in you. - -14:21 He that hath my commandments, and keepeth them, he it is that -loveth me: and he that loveth me shall be loved of my Father, and I -will love him, and will manifest myself to him. - -14:22 Judas saith unto him, not Iscariot, Lord, how is it that thou -wilt manifest thyself unto us, and not unto the world? 14:23 Jesus -answered and said unto him, If a man love me, he will keep my words: -and my Father will love him, and we will come unto him, and make our -abode with him. - -14:24 He that loveth me not keepeth not my sayings: and the word which -ye hear is not mine, but the Father's which sent me. - -14:25 These things have I spoken unto you, being yet present with you. - -14:26 But the Comforter, which is the Holy Ghost, whom the Father will -send in my name, he shall teach you all things, and bring all things -to your remembrance, whatsoever I have said unto you. - -14:27 Peace I leave with you, my peace I give unto you: not as the -world giveth, give I unto you. Let not your heart be troubled, neither -let it be afraid. - -14:28 Ye have heard how I said unto you, I go away, and come again -unto you. If ye loved me, ye would rejoice, because I said, I go unto -the Father: for my Father is greater than I. - -14:29 And now I have told you before it come to pass, that, when it is -come to pass, ye might believe. - -14:30 Hereafter I will not talk much with you: for the prince of this -world cometh, and hath nothing in me. - -14:31 But that the world may know that I love the Father; and as the -Father gave me commandment, even so I do. Arise, let us go hence. - -15:1 I am the true vine, and my Father is the husbandman. - -15:2 Every branch in me that beareth not fruit he taketh away: and -every branch that beareth fruit, he purgeth it, that it may bring -forth more fruit. - -15:3 Now ye are clean through the word which I have spoken unto you. - -15:4 Abide in me, and I in you. As the branch cannot bear fruit of -itself, except it abide in the vine; no more can ye, except ye abide -in me. - -15:5 I am the vine, ye are the branches: He that abideth in me, and I -in him, the same bringeth forth much fruit: for without me ye can do -nothing. - -15:6 If a man abide not in me, he is cast forth as a branch, and is -withered; and men gather them, and cast them into the fire, and they -are burned. - -15:7 If ye abide in me, and my words abide in you, ye shall ask what -ye will, and it shall be done unto you. - -15:8 Herein is my Father glorified, that ye bear much fruit; so shall -ye be my disciples. - -15:9 As the Father hath loved me, so have I loved you: continue ye in -my love. - -15:10 If ye keep my commandments, ye shall abide in my love; even as I -have kept my Father's commandments, and abide in his love. - -15:11 These things have I spoken unto you, that my joy might remain in -you, and that your joy might be full. - -15:12 This is my commandment, That ye love one another, as I have -loved you. - -15:13 Greater love hath no man than this, that a man lay down his life -for his friends. - -15:14 Ye are my friends, if ye do whatsoever I command you. - -15:15 Henceforth I call you not servants; for the servant knoweth not -what his lord doeth: but I have called you friends; for all things -that I have heard of my Father I have made known unto you. - -15:16 Ye have not chosen me, but I have chosen you, and ordained you, -that ye should go and bring forth fruit, and that your fruit should -remain: that whatsoever ye shall ask of the Father in my name, he may -give it you. - -15:17 These things I command you, that ye love one another. - -15:18 If the world hate you, ye know that it hated me before it hated -you. - -15:19 If ye were of the world, the world would love his own: but -because ye are not of the world, but I have chosen you out of the -world, therefore the world hateth you. - -15:20 Remember the word that I said unto you, The servant is not -greater than his lord. If they have persecuted me, they will also -persecute you; if they have kept my saying, they will keep yours also. - -15:21 But all these things will they do unto you for my name's sake, -because they know not him that sent me. - -15:22 If I had not come and spoken unto them, they had not had sin: -but now they have no cloak for their sin. - -15:23 He that hateth me hateth my Father also. - -15:24 If I had not done among them the works which none other man did, -they had not had sin: but now have they both seen and hated both me -and my Father. - -15:25 But this cometh to pass, that the word might be fulfilled that -is written in their law, They hated me without a cause. - -15:26 But when the Comforter is come, whom I will send unto you from -the Father, even the Spirit of truth, which proceedeth from the -Father, he shall testify of me: 15:27 And ye also shall bear witness, -because ye have been with me from the beginning. - -16:1 These things have I spoken unto you, that ye should not be -offended. - -16:2 They shall put you out of the synagogues: yea, the time cometh, -that whosoever killeth you will think that he doeth God service. - -16:3 And these things will they do unto you, because they have not -known the Father, nor me. - -16:4 But these things have I told you, that when the time shall come, -ye may remember that I told you of them. And these things I said not -unto you at the beginning, because I was with you. - -16:5 But now I go my way to him that sent me; and none of you asketh -me, Whither goest thou? 16:6 But because I have said these things -unto you, sorrow hath filled your heart. - -16:7 Nevertheless I tell you the truth; It is expedient for you that I -go away: for if I go not away, the Comforter will not come unto you; -but if I depart, I will send him unto you. - -16:8 And when he is come, he will reprove the world of sin, and of -righteousness, and of judgment: 16:9 Of sin, because they believe not -on me; 16:10 Of righteousness, because I go to my Father, and ye see -me no more; 16:11 Of judgment, because the prince of this world is -judged. - -16:12 I have yet many things to say unto you, but ye cannot bear them -now. - -16:13 Howbeit when he, the Spirit of truth, is come, he will guide you -into all truth: for he shall not speak of himself; but whatsoever he -shall hear, that shall he speak: and he will shew you things to come. - -16:14 He shall glorify me: for he shall receive of mine, and shall -shew it unto you. - -16:15 All things that the Father hath are mine: therefore said I, that -he shall take of mine, and shall shew it unto you. - -16:16 A little while, and ye shall not see me: and again, a little -while, and ye shall see me, because I go to the Father. - -16:17 Then said some of his disciples among themselves, What is this -that he saith unto us, A little while, and ye shall not see me: and -again, a little while, and ye shall see me: and, Because I go to the -Father? 16:18 They said therefore, What is this that he saith, A -little while? we cannot tell what he saith. - -16:19 Now Jesus knew that they were desirous to ask him, and said unto -them, Do ye enquire among yourselves of that I said, A little while, -and ye shall not see me: and again, a little while, and ye shall see -me? 16:20 Verily, verily, I say unto you, That ye shall weep and -lament, but the world shall rejoice: and ye shall be sorrowful, but -your sorrow shall be turned into joy. - -16:21 A woman when she is in travail hath sorrow, because her hour is -come: but as soon as she is delivered of the child, she remembereth no -more the anguish, for joy that a man is born into the world. - -16:22 And ye now therefore have sorrow: but I will see you again, and -your heart shall rejoice, and your joy no man taketh from you. - -16:23 And in that day ye shall ask me nothing. Verily, verily, I say -unto you, Whatsoever ye shall ask the Father in my name, he will give -it you. - -16:24 Hitherto have ye asked nothing in my name: ask, and ye shall -receive, that your joy may be full. - -16:25 These things have I spoken unto you in proverbs: but the time -cometh, when I shall no more speak unto you in proverbs, but I shall -shew you plainly of the Father. - -16:26 At that day ye shall ask in my name: and I say not unto you, -that I will pray the Father for you: 16:27 For the Father himself -loveth you, because ye have loved me, and have believed that I came -out from God. - -16:28 I came forth from the Father, and am come into the world: again, -I leave the world, and go to the Father. - -16:29 His disciples said unto him, Lo, now speakest thou plainly, and -speakest no proverb. - -16:30 Now are we sure that thou knowest all things, and needest not -that any man should ask thee: by this we believe that thou camest -forth from God. - -16:31 Jesus answered them, Do ye now believe? 16:32 Behold, the hour -cometh, yea, is now come, that ye shall be scattered, every man to his -own, and shall leave me alone: and yet I am not alone, because the -Father is with me. - -16:33 These things I have spoken unto you, that in me ye might have -peace. - -In the world ye shall have tribulation: but be of good cheer; I have -overcome the world. - -17:1 These words spake Jesus, and lifted up his eyes to heaven, and -said, Father, the hour is come; glorify thy Son, that thy Son also may -glorify thee: 17:2 As thou hast given him power over all flesh, that -he should give eternal life to as many as thou hast given him. - -17:3 And this is life eternal, that they might know thee the only true -God, and Jesus Christ, whom thou hast sent. - -17:4 I have glorified thee on the earth: I have finished the work -which thou gavest me to do. - -17:5 And now, O Father, glorify thou me with thine own self with the -glory which I had with thee before the world was. - -17:6 I have manifested thy name unto the men which thou gavest me out -of the world: thine they were, and thou gavest them me; and they have -kept thy word. - -17:7 Now they have known that all things whatsoever thou hast given me -are of thee. - -17:8 For I have given unto them the words which thou gavest me; and -they have received them, and have known surely that I came out from -thee, and they have believed that thou didst send me. - -17:9 I pray for them: I pray not for the world, but for them which -thou hast given me; for they are thine. - -17:10 And all mine are thine, and thine are mine; and I am glorified -in them. - -17:11 And now I am no more in the world, but these are in the world, -and I come to thee. Holy Father, keep through thine own name those -whom thou hast given me, that they may be one, as we are. - -17:12 While I was with them in the world, I kept them in thy name: -those that thou gavest me I have kept, and none of them is lost, but -the son of perdition; that the scripture might be fulfilled. - -17:13 And now come I to thee; and these things I speak in the world, -that they might have my joy fulfilled in themselves. - -17:14 I have given them thy word; and the world hath hated them, -because they are not of the world, even as I am not of the world. - -17:15 I pray not that thou shouldest take them out of the world, but -that thou shouldest keep them from the evil. - -17:16 They are not of the world, even as I am not of the world. - -17:17 Sanctify them through thy truth: thy word is truth. - -17:18 As thou hast sent me into the world, even so have I also sent -them into the world. - -17:19 And for their sakes I sanctify myself, that they also might be -sanctified through the truth. - -17:20 Neither pray I for these alone, but for them also which shall -believe on me through their word; 17:21 That they all may be one; as -thou, Father, art in me, and I in thee, that they also may be one in -us: that the world may believe that thou hast sent me. - -17:22 And the glory which thou gavest me I have given them; that they -may be one, even as we are one: 17:23 I in them, and thou in me, that -they may be made perfect in one; and that the world may know that thou -hast sent me, and hast loved them, as thou hast loved me. - -17:24 Father, I will that they also, whom thou hast given me, be with -me where I am; that they may behold my glory, which thou hast given -me: for thou lovedst me before the foundation of the world. - -17:25 O righteous Father, the world hath not known thee: but I have -known thee, and these have known that thou hast sent me. - -17:26 And I have declared unto them thy name, and will declare it: -that the love wherewith thou hast loved me may be in them, and I in -them. - -18:1 When Jesus had spoken these words, he went forth with his -disciples over the brook Cedron, where was a garden, into the which he -entered, and his disciples. - -18:2 And Judas also, which betrayed him, knew the place: for Jesus -ofttimes resorted thither with his disciples. - -18:3 Judas then, having received a band of men and officers from the -chief priests and Pharisees, cometh thither with lanterns and torches -and weapons. - -18:4 Jesus therefore, knowing all things that should come upon him, -went forth, and said unto them, Whom seek ye? 18:5 They answered him, -Jesus of Nazareth. Jesus saith unto them, I am he. - -And Judas also, which betrayed him, stood with them. - -18:6 As soon then as he had said unto them, I am he, they went -backward, and fell to the ground. - -18:7 Then asked he them again, Whom seek ye? And they said, Jesus of -Nazareth. - -18:8 Jesus answered, I have told you that I am he: if therefore ye -seek me, let these go their way: 18:9 That the saying might be -fulfilled, which he spake, Of them which thou gavest me have I lost -none. - -18:10 Then Simon Peter having a sword drew it, and smote the high -priest's servant, and cut off his right ear. The servant's name was -Malchus. - -18:11 Then said Jesus unto Peter, Put up thy sword into the sheath: -the cup which my Father hath given me, shall I not drink it? 18:12 -Then the band and the captain and officers of the Jews took Jesus, and -bound him, 18:13 And led him away to Annas first; for he was father in -law to Caiaphas, which was the high priest that same year. - -18:14 Now Caiaphas was he, which gave counsel to the Jews, that it was -expedient that one man should die for the people. - -18:15 And Simon Peter followed Jesus, and so did another disciple: -that disciple was known unto the high priest, and went in with Jesus -into the palace of the high priest. - -18:16 But Peter stood at the door without. Then went out that other -disciple, which was known unto the high priest, and spake unto her -that kept the door, and brought in Peter. - -18:17 Then saith the damsel that kept the door unto Peter, Art not -thou also one of this man's disciples? He saith, I am not. - -18:18 And the servants and officers stood there, who had made a fire -of coals; for it was cold: and they warmed themselves: and Peter stood -with them, and warmed himself. - -18:19 The high priest then asked Jesus of his disciples, and of his -doctrine. - -18:20 Jesus answered him, I spake openly to the world; I ever taught -in the synagogue, and in the temple, whither the Jews always resort; -and in secret have I said nothing. - -18:21 Why askest thou me? ask them which heard me, what I have said -unto them: behold, they know what I said. - -18:22 And when he had thus spoken, one of the officers which stood by -struck Jesus with the palm of his hand, saying, Answerest thou the -high priest so? 18:23 Jesus answered him, If I have spoken evil, bear -witness of the evil: but if well, why smitest thou me? 18:24 Now -Annas had sent him bound unto Caiaphas the high priest. - -18:25 And Simon Peter stood and warmed himself. They said therefore -unto him, Art not thou also one of his disciples? He denied it, and -said, I am not. - -18:26 One of the servants of the high priest, being his kinsman whose -ear Peter cut off, saith, Did not I see thee in the garden with him? -18:27 Peter then denied again: and immediately the cock crew. - -18:28 Then led they Jesus from Caiaphas unto the hall of judgment: and -it was early; and they themselves went not into the judgment hall, -lest they should be defiled; but that they might eat the passover. - -18:29 Pilate then went out unto them, and said, What accusation bring -ye against this man? 18:30 They answered and said unto him, If he -were not a malefactor, we would not have delivered him up unto thee. - -18:31 Then said Pilate unto them, Take ye him, and judge him according -to your law. The Jews therefore said unto him, It is not lawful for us -to put any man to death: 18:32 That the saying of Jesus might be -fulfilled, which he spake, signifying what death he should die. - -18:33 Then Pilate entered into the judgment hall again, and called -Jesus, and said unto him, Art thou the King of the Jews? 18:34 Jesus -answered him, Sayest thou this thing of thyself, or did others tell it -thee of me? 18:35 Pilate answered, Am I a Jew? Thine own nation and -the chief priests have delivered thee unto me: what hast thou done? -18:36 Jesus answered, My kingdom is not of this world: if my kingdom -were of this world, then would my servants fight, that I should not be -delivered to the Jews: but now is my kingdom not from hence. - -18:37 Pilate therefore said unto him, Art thou a king then? Jesus -answered, Thou sayest that I am a king. To this end was I born, and -for this cause came I into the world, that I should bear witness unto -the truth. Every one that is of the truth heareth my voice. - -18:38 Pilate saith unto him, What is truth? And when he had said this, -he went out again unto the Jews, and saith unto them, I find in him no -fault at all. - -18:39 But ye have a custom, that I should release unto you one at the -passover: will ye therefore that I release unto you the King of the -Jews? 18:40 Then cried they all again, saying, Not this man, but -Barabbas. Now Barabbas was a robber. - -19:1 Then Pilate therefore took Jesus, and scourged him. - -19:2 And the soldiers platted a crown of thorns, and put it on his -head, and they put on him a purple robe, 19:3 And said, Hail, King of -the Jews! and they smote him with their hands. - -19:4 Pilate therefore went forth again, and saith unto them, Behold, I -bring him forth to you, that ye may know that I find no fault in him. - -19:5 Then came Jesus forth, wearing the crown of thorns, and the -purple robe. And Pilate saith unto them, Behold the man! 19:6 When -the chief priests therefore and officers saw him, they cried out, -saying, Crucify him, crucify him. Pilate saith unto them, Take ye him, -and crucify him: for I find no fault in him. - -19:7 The Jews answered him, We have a law, and by our law he ought to -die, because he made himself the Son of God. - -19:8 When Pilate therefore heard that saying, he was the more afraid; -19:9 And went again into the judgment hall, and saith unto Jesus, -Whence art thou? But Jesus gave him no answer. - -19:10 Then saith Pilate unto him, Speakest thou not unto me? knowest -thou not that I have power to crucify thee, and have power to release -thee? 19:11 Jesus answered, Thou couldest have no power at all -against me, except it were given thee from above: therefore he that -delivered me unto thee hath the greater sin. - -19:12 And from thenceforth Pilate sought to release him: but the Jews -cried out, saying, If thou let this man go, thou art not Caesar's -friend: whosoever maketh himself a king speaketh against Caesar. - -19:13 When Pilate therefore heard that saying, he brought Jesus forth, -and sat down in the judgment seat in a place that is called the -Pavement, but in the Hebrew, Gabbatha. - -19:14 And it was the preparation of the passover, and about the sixth -hour: and he saith unto the Jews, Behold your King! 19:15 But they -cried out, Away with him, away with him, crucify him. - -Pilate saith unto them, Shall I crucify your King? The chief priests -answered, We have no king but Caesar. - -19:16 Then delivered he him therefore unto them to be crucified. And -they took Jesus, and led him away. - -19:17 And he bearing his cross went forth into a place called the -place of a skull, which is called in the Hebrew Golgotha: 19:18 Where -they crucified him, and two other with him, on either side one, and -Jesus in the midst. - -19:19 And Pilate wrote a title, and put it on the cross. And the -writing was JESUS OF NAZARETH THE KING OF THE JEWS. - -19:20 This title then read many of the Jews: for the place where Jesus -was crucified was nigh to the city: and it was written in Hebrew, and -Greek, and Latin. - -19:21 Then said the chief priests of the Jews to Pilate, Write not, -The King of the Jews; but that he said, I am King of the Jews. - -19:22 Pilate answered, What I have written I have written. - -19:23 Then the soldiers, when they had crucified Jesus, took his -garments, and made four parts, to every soldier a part; and also his -coat: now the coat was without seam, woven from the top throughout. - -19:24 They said therefore among themselves, Let us not rend it, but -cast lots for it, whose it shall be: that the scripture might be -fulfilled, which saith, They parted my raiment among them, and for my -vesture they did cast lots. These things therefore the soldiers did. - -19:25 Now there stood by the cross of Jesus his mother, and his -mother's sister, Mary the wife of Cleophas, and Mary Magdalene. - -19:26 When Jesus therefore saw his mother, and the disciple standing -by, whom he loved, he saith unto his mother, Woman, behold thy son! -19:27 Then saith he to the disciple, Behold thy mother! And from that -hour that disciple took her unto his own home. - -19:28 After this, Jesus knowing that all things were now accomplished, -that the scripture might be fulfilled, saith, I thirst. - -19:29 Now there was set a vessel full of vinegar: and they filled a -spunge with vinegar, and put it upon hyssop, and put it to his mouth. - -19:30 When Jesus therefore had received the vinegar, he said, It is -finished: and he bowed his head, and gave up the ghost. - -19:31 The Jews therefore, because it was the preparation, that the -bodies should not remain upon the cross on the sabbath day, (for that -sabbath day was an high day,) besought Pilate that their legs might be -broken, and that they might be taken away. - -19:32 Then came the soldiers, and brake the legs of the first, and of -the other which was crucified with him. - -19:33 But when they came to Jesus, and saw that he was dead already, -they brake not his legs: 19:34 But one of the soldiers with a spear -pierced his side, and forthwith came there out blood and water. - -19:35 And he that saw it bare record, and his record is true: and he -knoweth that he saith true, that ye might believe. - -19:36 For these things were done, that the scripture should be -fulfilled, A bone of him shall not be broken. - -19:37 And again another scripture saith, They shall look on him whom -they pierced. - -19:38 And after this Joseph of Arimathaea, being a disciple of Jesus, -but secretly for fear of the Jews, besought Pilate that he might take -away the body of Jesus: and Pilate gave him leave. He came therefore, -and took the body of Jesus. - -19:39 And there came also Nicodemus, which at the first came to Jesus -by night, and brought a mixture of myrrh and aloes, about an hundred -pound weight. - -19:40 Then took they the body of Jesus, and wound it in linen clothes -with the spices, as the manner of the Jews is to bury. - -19:41 Now in the place where he was crucified there was a garden; and -in the garden a new sepulchre, wherein was never man yet laid. - -19:42 There laid they Jesus therefore because of the Jews' preparation -day; for the sepulchre was nigh at hand. - -20:1 The first day of the week cometh Mary Magdalene early, when it -was yet dark, unto the sepulchre, and seeth the stone taken away from -the sepulchre. - -20:2 Then she runneth, and cometh to Simon Peter, and to the other -disciple, whom Jesus loved, and saith unto them, They have taken away -the LORD out of the sepulchre, and we know not where they have laid -him. - -20:3 Peter therefore went forth, and that other disciple, and came to -the sepulchre. - -20:4 So they ran both together: and the other disciple did outrun -Peter, and came first to the sepulchre. - -20:5 And he stooping down, and looking in, saw the linen clothes -lying; yet went he not in. - -20:6 Then cometh Simon Peter following him, and went into the -sepulchre, and seeth the linen clothes lie, 20:7 And the napkin, that -was about his head, not lying with the linen clothes, but wrapped -together in a place by itself. - -20:8 Then went in also that other disciple, which came first to the -sepulchre, and he saw, and believed. - -20:9 For as yet they knew not the scripture, that he must rise again -from the dead. - -20:10 Then the disciples went away again unto their own home. - -20:11 But Mary stood without at the sepulchre weeping: and as she -wept, she stooped down, and looked into the sepulchre, 20:12 And seeth -two angels in white sitting, the one at the head, and the other at the -feet, where the body of Jesus had lain. - -20:13 And they say unto her, Woman, why weepest thou? She saith unto -them, Because they have taken away my LORD, and I know not where they -have laid him. - -20:14 And when she had thus said, she turned herself back, and saw -Jesus standing, and knew not that it was Jesus. - -20:15 Jesus saith unto her, Woman, why weepest thou? whom seekest -thou? She, supposing him to be the gardener, saith unto him, Sir, if -thou have borne him hence, tell me where thou hast laid him, and I -will take him away. - -20:16 Jesus saith unto her, Mary. She turned herself, and saith unto -him, Rabboni; which is to say, Master. - -20:17 Jesus saith unto her, Touch me not; for I am not yet ascended to -my Father: but go to my brethren, and say unto them, I ascend unto my -Father, and your Father; and to my God, and your God. - -20:18 Mary Magdalene came and told the disciples that she had seen the -LORD, and that he had spoken these things unto her. - -20:19 Then the same day at evening, being the first day of the week, -when the doors were shut where the disciples were assembled for fear -of the Jews, came Jesus and stood in the midst, and saith unto them, -Peace be unto you. - -20:20 And when he had so said, he shewed unto them his hands and his -side. - -Then were the disciples glad, when they saw the LORD. - -20:21 Then said Jesus to them again, Peace be unto you: as my Father -hath sent me, even so send I you. - -20:22 And when he had said this, he breathed on them, and saith unto -them, Receive ye the Holy Ghost: 20:23 Whose soever sins ye remit, -they are remitted unto them; and whose soever sins ye retain, they are -retained. - -20:24 But Thomas, one of the twelve, called Didymus, was not with them -when Jesus came. - -20:25 The other disciples therefore said unto him, We have seen the -LORD. - -But he said unto them, Except I shall see in his hands the print of -the nails, and put my finger into the print of the nails, and thrust -my hand into his side, I will not believe. - -20:26 And after eight days again his disciples were within, and Thomas -with them: then came Jesus, the doors being shut, and stood in the -midst, and said, Peace be unto you. - -20:27 Then saith he to Thomas, Reach hither thy finger, and behold my -hands; and reach hither thy hand, and thrust it into my side: and be -not faithless, but believing. - -20:28 And Thomas answered and said unto him, My LORD and my God. - -20:29 Jesus saith unto him, Thomas, because thou hast seen me, thou -hast believed: blessed are they that have not seen, and yet have -believed. - -20:30 And many other signs truly did Jesus in the presence of his -disciples, which are not written in this book: 20:31 But these are -written, that ye might believe that Jesus is the Christ, the Son of -God; and that believing ye might have life through his name. - -21:1 After these things Jesus shewed himself again to the disciples at -the sea of Tiberias; and on this wise shewed he himself. - -21:2 There were together Simon Peter, and Thomas called Didymus, and -Nathanael of Cana in Galilee, and the sons of Zebedee, and two other -of his disciples. - -21:3 Simon Peter saith unto them, I go a fishing. They say unto him, -We also go with thee. They went forth, and entered into a ship -immediately; and that night they caught nothing. - -21:4 But when the morning was now come, Jesus stood on the shore: but -the disciples knew not that it was Jesus. - -21:5 Then Jesus saith unto them, Children, have ye any meat? They -answered him, No. - -21:6 And he said unto them, Cast the net on the right side of the -ship, and ye shall find. They cast therefore, and now they were not -able to draw it for the multitude of fishes. - -21:7 Therefore that disciple whom Jesus loved saith unto Peter, It is -the Lord. Now when Simon Peter heard that it was the Lord, he girt his -fisher's coat unto him, (for he was naked,) and did cast himself into -the sea. - -21:8 And the other disciples came in a little ship; (for they were not -far from land, but as it were two hundred cubits,) dragging the net -with fishes. - -21:9 As soon then as they were come to land, they saw a fire of coals -there, and fish laid thereon, and bread. - -21:10 Jesus saith unto them, Bring of the fish which ye have now -caught. - -21:11 Simon Peter went up, and drew the net to land full of great -fishes, an hundred and fifty and three: and for all there were so -many, yet was not the net broken. - -21:12 Jesus saith unto them, Come and dine. And none of the disciples -durst ask him, Who art thou? knowing that it was the Lord. - -21:13 Jesus then cometh, and taketh bread, and giveth them, and fish -likewise. - -21:14 This is now the third time that Jesus shewed himself to his -disciples, after that he was risen from the dead. - -21:15 So when they had dined, Jesus saith to Simon Peter, Simon, son -of Jonas, lovest thou me more than these? He saith unto him, Yea, -Lord; thou knowest that I love thee. He saith unto him, Feed my lambs. - -21:16 He saith to him again the second time, Simon, son of Jonas, -lovest thou me? He saith unto him, Yea, Lord; thou knowest that I love -thee. He saith unto him, Feed my sheep. - -21:17 He saith unto him the third time, Simon, son of Jonas, lovest -thou me? Peter was grieved because he said unto him the third time, -Lovest thou me? And he said unto him, Lord, thou knowest all things; -thou knowest that I love thee. Jesus saith unto him, Feed my sheep. - -21:18 Verily, verily, I say unto thee, When thou wast young, thou -girdest thyself, and walkedst whither thou wouldest: but when thou -shalt be old, thou shalt stretch forth thy hands, and another shall -gird thee, and carry thee whither thou wouldest not. - -21:19 This spake he, signifying by what death he should glorify God. -And when he had spoken this, he saith unto him, Follow me. - -21:20 Then Peter, turning about, seeth the disciple whom Jesus loved -following; which also leaned on his breast at supper, and said, Lord, -which is he that betrayeth thee? 21:21 Peter seeing him saith to -Jesus, Lord, and what shall this man do? 21:22 Jesus saith unto him, -If I will that he tarry till I come, what is that to thee? follow thou -me. - -21:23 Then went this saying abroad among the brethren, that that -disciple should not die: yet Jesus said not unto him, He shall not -die; but, If I will that he tarry till I come, what is that to thee? -21:24 This is the disciple which testifieth of these things, and wrote -these things: and we know that his testimony is true. - -21:25 And there are also many other things which Jesus did, the which, -if they should be written every one, I suppose that even the world -itself could not contain the books that should be written. Amen. - - - - -The Acts of the Apostles - - -1:1 The former treatise have I made, O Theophilus, of all that Jesus -began both to do and teach, 1:2 Until the day in which he was taken -up, after that he through the Holy Ghost had given commandments unto -the apostles whom he had chosen: 1:3 To whom also he shewed himself -alive after his passion by many infallible proofs, being seen of them -forty days, and speaking of the things pertaining to the kingdom of -God: 1:4 And, being assembled together with them, commanded them that -they should not depart from Jerusalem, but wait for the promise of the -Father, which, saith he, ye have heard of me. - -1:5 For John truly baptized with water; but ye shall be baptized with -the Holy Ghost not many days hence. - -1:6 When they therefore were come together, they asked of him, saying, -Lord, wilt thou at this time restore again the kingdom to Israel? 1:7 -And he said unto them, It is not for you to know the times or the -seasons, which the Father hath put in his own power. - -1:8 But ye shall receive power, after that the Holy Ghost is come upon -you: and ye shall be witnesses unto me both in Jerusalem, and in all -Judaea, and in Samaria, and unto the uttermost part of the earth. - -1:9 And when he had spoken these things, while they beheld, he was -taken up; and a cloud received him out of their sight. - -1:10 And while they looked stedfastly toward heaven as he went up, -behold, two men stood by them in white apparel; 1:11 Which also said, -Ye men of Galilee, why stand ye gazing up into heaven? this same -Jesus, which is taken up from you into heaven, shall so come in like -manner as ye have seen him go into heaven. - -1:12 Then returned they unto Jerusalem from the mount called Olivet, -which is from Jerusalem a sabbath day's journey. - -1:13 And when they were come in, they went up into an upper room, -where abode both Peter, and James, and John, and Andrew, Philip, and -Thomas, Bartholomew, and Matthew, James the son of Alphaeus, and Simon -Zelotes, and Judas the brother of James. - -1:14 These all continued with one accord in prayer and supplication, -with the women, and Mary the mother of Jesus, and with his brethren. - -1:15 And in those days Peter stood up in the midst of the disciples, -and said, (the number of names together were about an hundred and -twenty,) 1:16 Men and brethren, this scripture must needs have been -fulfilled, which the Holy Ghost by the mouth of David spake before -concerning Judas, which was guide to them that took Jesus. - -1:17 For he was numbered with us, and had obtained part of this -ministry. - -1:18 Now this man purchased a field with the reward of iniquity; and -falling headlong, he burst asunder in the midst, and all his bowels -gushed out. - -1:19 And it was known unto all the dwellers at Jerusalem; insomuch as -that field is called in their proper tongue, Aceldama, that is to say, -The field of blood. - -1:20 For it is written in the book of Psalms, Let his habitation be -desolate, and let no man dwell therein: and his bishoprick let another -take. - -1:21 Wherefore of these men which have companied with us all the time -that the Lord Jesus went in and out among us, 1:22 Beginning from the -baptism of John, unto that same day that he was taken up from us, must -one be ordained to be a witness with us of his resurrection. - -1:23 And they appointed two, Joseph called Barsabas, who was surnamed -Justus, and Matthias. - -1:24 And they prayed, and said, Thou, Lord, which knowest the hearts -of all men, shew whether of these two thou hast chosen, 1:25 That he -may take part of this ministry and apostleship, from which Judas by -transgression fell, that he might go to his own place. - -1:26 And they gave forth their lots; and the lot fell upon Matthias; -and he was numbered with the eleven apostles. - -2:1 And when the day of Pentecost was fully come, they were all with -one accord in one place. - -2:2 And suddenly there came a sound from heaven as of a rushing mighty -wind, and it filled all the house where they were sitting. - -2:3 And there appeared unto them cloven tongues like as of fire, and -it sat upon each of them. - -2:4 And they were all filled with the Holy Ghost, and began to speak -with other tongues, as the Spirit gave them utterance. - -2:5 And there were dwelling at Jerusalem Jews, devout men, out of -every nation under heaven. - -2:6 Now when this was noised abroad, the multitude came together, and -were confounded, because that every man heard them speak in his own -language. - -2:7 And they were all amazed and marvelled, saying one to another, -Behold, are not all these which speak Galilaeans? 2:8 And how hear we -every man in our own tongue, wherein we were born? 2:9 Parthians, and -Medes, and Elamites, and the dwellers in Mesopotamia, and in Judaea, -and Cappadocia, in Pontus, and Asia, 2:10 Phrygia, and Pamphylia, in -Egypt, and in the parts of Libya about Cyrene, and strangers of Rome, -Jews and proselytes, 2:11 Cretes and Arabians, we do hear them speak -in our tongues the wonderful works of God. - -2:12 And they were all amazed, and were in doubt, saying one to -another, What meaneth this? 2:13 Others mocking said, These men are -full of new wine. - -2:14 But Peter, standing up with the eleven, lifted up his voice, and -said unto them, Ye men of Judaea, and all ye that dwell at Jerusalem, -be this known unto you, and hearken to my words: 2:15 For these are -not drunken, as ye suppose, seeing it is but the third hour of the -day. - -2:16 But this is that which was spoken by the prophet Joel; 2:17 And -it shall come to pass in the last days, saith God, I will pour out of -my Spirit upon all flesh: and your sons and your daughters shall -prophesy, and your young men shall see visions, and your old men shall -dream dreams: 2:18 And on my servants and on my handmaidens I will -pour out in those days of my Spirit; and they shall prophesy: 2:19 And -I will shew wonders in heaven above, and signs in the earth beneath; -blood, and fire, and vapour of smoke: 2:20 The sun shall be turned -into darkness, and the moon into blood, before the great and notable -day of the Lord come: 2:21 And it shall come to pass, that whosoever -shall call on the name of the Lord shall be saved. - -2:22 Ye men of Israel, hear these words; Jesus of Nazareth, a man -approved of God among you by miracles and wonders and signs, which God -did by him in the midst of you, as ye yourselves also know: 2:23 Him, -being delivered by the determinate counsel and foreknowledge of God, -ye have taken, and by wicked hands have crucified and slain: 2:24 Whom -God hath raised up, having loosed the pains of death: because it was -not possible that he should be holden of it. - -2:25 For David speaketh concerning him, I foresaw the Lord always -before my face, for he is on my right hand, that I should not be -moved: 2:26 Therefore did my heart rejoice, and my tongue was glad; -moreover also my flesh shall rest in hope: 2:27 Because thou wilt not -leave my soul in hell, neither wilt thou suffer thine Holy One to see -corruption. - -2:28 Thou hast made known to me the ways of life; thou shalt make me -full of joy with thy countenance. - -2:29 Men and brethren, let me freely speak unto you of the patriarch -David, that he is both dead and buried, and his sepulchre is with us -unto this day. - -2:30 Therefore being a prophet, and knowing that God had sworn with an -oath to him, that of the fruit of his loins, according to the flesh, -he would raise up Christ to sit on his throne; 2:31 He seeing this -before spake of the resurrection of Christ, that his soul was not left -in hell, neither his flesh did see corruption. - -2:32 This Jesus hath God raised up, whereof we all are witnesses. - -2:33 Therefore being by the right hand of God exalted, and having -received of the Father the promise of the Holy Ghost, he hath shed -forth this, which ye now see and hear. - -2:34 For David is not ascended into the heavens: but he saith himself, -The Lord said unto my Lord, Sit thou on my right hand, 2:35 Until I -make thy foes thy footstool. - -2:36 Therefore let all the house of Israel know assuredly, that God -hath made the same Jesus, whom ye have crucified, both Lord and -Christ. - -2:37 Now when they heard this, they were pricked in their heart, and -said unto Peter and to the rest of the apostles, Men and brethren, -what shall we do? 2:38 Then Peter said unto them, Repent, and be -baptized every one of you in the name of Jesus Christ for the -remission of sins, and ye shall receive the gift of the Holy Ghost. - -2:39 For the promise is unto you, and to your children, and to all -that are afar off, even as many as the LORD our God shall call. - -2:40 And with many other words did he testify and exhort, saying, Save -yourselves from this untoward generation. - -2:41 Then they that gladly received his word were baptized: and the -same day there were added unto them about three thousand souls. - -2:42 And they continued stedfastly in the apostles' doctrine and -fellowship, and in breaking of bread, and in prayers. - -2:43 And fear came upon every soul: and many wonders and signs were -done by the apostles. - -2:44 And all that believed were together, and had all things common; -2:45 And sold their possessions and goods, and parted them to all men, -as every man had need. - -2:46 And they, continuing daily with one accord in the temple, and -breaking bread from house to house, did eat their meat with gladness -and singleness of heart, 2:47 Praising God, and having favour with all -the people. And the Lord added to the church daily such as should be -saved. - -3:1 Now Peter and John went up together into the temple at the hour of -prayer, being the ninth hour. - -3:2 And a certain man lame from his mother's womb was carried, whom -they laid daily at the gate of the temple which is called Beautiful, -to ask alms of them that entered into the temple; 3:3 Who seeing Peter -and John about to go into the temple asked an alms. - -3:4 And Peter, fastening his eyes upon him with John, said, Look on -us. - -3:5 And he gave heed unto them, expecting to receive something of -them. - -3:6 Then Peter said, Silver and gold have I none; but such as I have -give I thee: In the name of Jesus Christ of Nazareth rise up and walk. - -3:7 And he took him by the right hand, and lifted him up: and -immediately his feet and ankle bones received strength. - -3:8 And he leaping up stood, and walked, and entered with them into -the temple, walking, and leaping, and praising God. - -3:9 And all the people saw him walking and praising God: 3:10 And they -knew that it was he which sat for alms at the Beautiful gate of the -temple: and they were filled with wonder and amazement at that which -had happened unto him. - -3:11 And as the lame man which was healed held Peter and John, all the -people ran together unto them in the porch that is called Solomon's, -greatly wondering. - -3:12 And when Peter saw it, he answered unto the people, Ye men of -Israel, why marvel ye at this? or why look ye so earnestly on us, as -though by our own power or holiness we had made this man to walk? -3:13 The God of Abraham, and of Isaac, and of Jacob, the God of our -fathers, hath glorified his Son Jesus; whom ye delivered up, and -denied him in the presence of Pilate, when he was determined to let -him go. - -3:14 But ye denied the Holy One and the Just, and desired a murderer -to be granted unto you; 3:15 And killed the Prince of life, whom God -hath raised from the dead; whereof we are witnesses. - -3:16 And his name through faith in his name hath made this man strong, -whom ye see and know: yea, the faith which is by him hath given him -this perfect soundness in the presence of you all. - -3:17 And now, brethren, I wot that through ignorance ye did it, as did -also your rulers. - -3:18 But those things, which God before had shewed by the mouth of all -his prophets, that Christ should suffer, he hath so fulfilled. - -3:19 Repent ye therefore, and be converted, that your sins may be -blotted out, when the times of refreshing shall come from the presence -of the Lord. - -3:20 And he shall send Jesus Christ, which before was preached unto -you: 3:21 Whom the heaven must receive until the times of restitution -of all things, which God hath spoken by the mouth of all his holy -prophets since the world began. - -3:22 For Moses truly said unto the fathers, A prophet shall the Lord -your God raise up unto you of your brethren, like unto me; him shall -ye hear in all things whatsoever he shall say unto you. - -3:23 And it shall come to pass, that every soul, which will not hear -that prophet, shall be destroyed from among the people. - -3:24 Yea, and all the prophets from Samuel and those that follow -after, as many as have spoken, have likewise foretold of these days. - -3:25 Ye are the children of the prophets, and of the covenant which -God made with our fathers, saying unto Abraham, And in thy seed shall -all the kindreds of the earth be blessed. - -3:26 Unto you first God, having raised up his Son Jesus, sent him to -bless you, in turning away every one of you from his iniquities. - -4:1 And as they spake unto the people, the priests, and the captain of -the temple, and the Sadducees, came upon them, 4:2 Being grieved that -they taught the people, and preached through Jesus the resurrection -from the dead. - -4:3 And they laid hands on them, and put them in hold unto the next -day: for it was now eventide. - -4:4 Howbeit many of them which heard the word believed; and the number -of the men was about five thousand. - -4:5 And it came to pass on the morrow, that their rulers, and elders, -and scribes, 4:6 And Annas the high priest, and Caiaphas, and John, -and Alexander, and as many as were of the kindred of the high priest, -were gathered together at Jerusalem. - -4:7 And when they had set them in the midst, they asked, By what -power, or by what name, have ye done this? 4:8 Then Peter, filled -with the Holy Ghost, said unto them, Ye rulers of the people, and -elders of Israel, 4:9 If we this day be examined of the good deed done -to the impotent man, by what means he is made whole; 4:10 Be it known -unto you all, and to all the people of Israel, that by the name of -Jesus Christ of Nazareth, whom ye crucified, whom God raised from the -dead, even by him doth this man stand here before you whole. - -4:11 This is the stone which was set at nought of you builders, which -is become the head of the corner. - -4:12 Neither is there salvation in any other: for there is none other -name under heaven given among men, whereby we must be saved. - -4:13 Now when they saw the boldness of Peter and John, and perceived -that they were unlearned and ignorant men, they marvelled; and they -took knowledge of them, that they had been with Jesus. - -4:14 And beholding the man which was healed standing with them, they -could say nothing against it. - -4:15 But when they had commanded them to go aside out of the council, -they conferred among themselves, 4:16 Saying, What shall we do to -these men? for that indeed a notable miracle hath been done by them is -manifest to all them that dwell in Jerusalem; and we cannot deny it. - -4:17 But that it spread no further among the people, let us straitly -threaten them, that they speak henceforth to no man in this name. - -4:18 And they called them, and commanded them not to speak at all nor -teach in the name of Jesus. - -4:19 But Peter and John answered and said unto them, Whether it be -right in the sight of God to hearken unto you more than unto God, -judge ye. - -4:20 For we cannot but speak the things which we have seen and heard. - -4:21 So when they had further threatened them, they let them go, -finding nothing how they might punish them, because of the people: for -all men glorified God for that which was done. - -4:22 For the man was above forty years old, on whom this miracle of -healing was shewed. - -4:23 And being let go, they went to their own company, and reported -all that the chief priests and elders had said unto them. - -4:24 And when they heard that, they lifted up their voice to God with -one accord, and said, Lord, thou art God, which hast made heaven, and -earth, and the sea, and all that in them is: 4:25 Who by the mouth of -thy servant David hast said, Why did the heathen rage, and the people -imagine vain things? 4:26 The kings of the earth stood up, and the -rulers were gathered together against the Lord, and against his -Christ. - -4:27 For of a truth against thy holy child Jesus, whom thou hast -anointed, both Herod, and Pontius Pilate, with the Gentiles, and the -people of Israel, were gathered together, 4:28 For to do whatsoever -thy hand and thy counsel determined before to be done. - -4:29 And now, Lord, behold their threatenings: and grant unto thy -servants, that with all boldness they may speak thy word, 4:30 By -stretching forth thine hand to heal; and that signs and wonders may be -done by the name of thy holy child Jesus. - -4:31 And when they had prayed, the place was shaken where they were -assembled together; and they were all filled with the Holy Ghost, and -they spake the word of God with boldness. - -4:32 And the multitude of them that believed were of one heart and of -one soul: neither said any of them that ought of the things which he -possessed was his own; but they had all things common. - -4:33 And with great power gave the apostles witness of the -resurrection of the Lord Jesus: and great grace was upon them all. - -4:34 Neither was there any among them that lacked: for as many as were -possessors of lands or houses sold them, and brought the prices of the -things that were sold, 4:35 And laid them down at the apostles' feet: -and distribution was made unto every man according as he had need. - -4:36 And Joses, who by the apostles was surnamed Barnabas, (which is, -being interpreted, The son of consolation,) a Levite, and of the -country of Cyprus, 4:37 Having land, sold it, and brought the money, -and laid it at the apostles' feet. - -5:1 But a certain man named Ananias, with Sapphira his wife, sold a -possession, 5:2 And kept back part of the price, his wife also being -privy to it, and brought a certain part, and laid it at the apostles' -feet. - -5:3 But Peter said, Ananias, why hath Satan filled thine heart to lie -to the Holy Ghost, and to keep back part of the price of the land? -5:4 Whiles it remained, was it not thine own? and after it was sold, -was it not in thine own power? why hast thou conceived this thing in -thine heart? thou hast not lied unto men, but unto God. - -5:5 And Ananias hearing these words fell down, and gave up the ghost: -and great fear came on all them that heard these things. - -5:6 And the young men arose, wound him up, and carried him out, and -buried him. - -5:7 And it was about the space of three hours after, when his wife, -not knowing what was done, came in. - -5:8 And Peter answered unto her, Tell me whether ye sold the land for -so much? And she said, Yea, for so much. - -5:9 Then Peter said unto her, How is it that ye have agreed together -to tempt the Spirit of the Lord? behold, the feet of them which have -buried thy husband are at the door, and shall carry thee out. - -5:10 Then fell she down straightway at his feet, and yielded up the -ghost: and the young men came in, and found her dead, and, carrying -her forth, buried her by her husband. - -5:11 And great fear came upon all the church, and upon as many as -heard these things. - -5:12 And by the hands of the apostles were many signs and wonders -wrought among the people; (and they were all with one accord in -Solomon's porch. - -5:13 And of the rest durst no man join himself to them: but the people -magnified them. - -5:14 And believers were the more added to the Lord, multitudes both of -men and women.) 5:15 Insomuch that they brought forth the sick into -the streets, and laid them on beds and couches, that at the least the -shadow of Peter passing by might overshadow some of them. - -5:16 There came also a multitude out of the cities round about unto -Jerusalem, bringing sick folks, and them which were vexed with unclean -spirits: and they were healed every one. - -5:17 Then the high priest rose up, and all they that were with him, -(which is the sect of the Sadducees,) and were filled with -indignation, 5:18 And laid their hands on the apostles, and put them -in the common prison. - -5:19 But the angel of the Lord by night opened the prison doors, and -brought them forth, and said, 5:20 Go, stand and speak in the temple -to the people all the words of this life. - -5:21 And when they heard that, they entered into the temple early in -the morning, and taught. But the high priest came, and they that were -with him, and called the council together, and all the senate of the -children of Israel, and sent to the prison to have them brought. - -5:22 But when the officers came, and found them not in the prison, -they returned and told, 5:23 Saying, The prison truly found we shut -with all safety, and the keepers standing without before the doors: -but when we had opened, we found no man within. - -5:24 Now when the high priest and the captain of the temple and the -chief priests heard these things, they doubted of them whereunto this -would grow. - -5:25 Then came one and told them, saying, Behold, the men whom ye put -in prison are standing in the temple, and teaching the people. - -5:26 Then went the captain with the officers, and brought them without -violence: for they feared the people, lest they should have been -stoned. - -5:27 And when they had brought them, they set them before the council: -and the high priest asked them, 5:28 Saying, Did not we straitly -command you that ye should not teach in this name? and, behold, ye -have filled Jerusalem with your doctrine, and intend to bring this -man's blood upon us. - -5:29 Then Peter and the other apostles answered and said, We ought to -obey God rather than men. - -5:30 The God of our fathers raised up Jesus, whom ye slew and hanged -on a tree. - -5:31 Him hath God exalted with his right hand to be a Prince and a -Saviour, for to give repentance to Israel, and forgiveness of sins. - -5:32 And we are his witnesses of these things; and so is also the Holy -Ghost, whom God hath given to them that obey him. - -5:33 When they heard that, they were cut to the heart, and took -counsel to slay them. - -5:34 Then stood there up one in the council, a Pharisee, named -Gamaliel, a doctor of the law, had in reputation among all the people, -and commanded to put the apostles forth a little space; 5:35 And said -unto them, Ye men of Israel, take heed to yourselves what ye intend to -do as touching these men. - -5:36 For before these days rose up Theudas, boasting himself to be -somebody; to whom a number of men, about four hundred, joined -themselves: who was slain; and all, as many as obeyed him, were -scattered, and brought to nought. - -5:37 After this man rose up Judas of Galilee in the days of the -taxing, and drew away much people after him: he also perished; and -all, even as many as obeyed him, were dispersed. - -5:38 And now I say unto you, Refrain from these men, and let them -alone: for if this counsel or this work be of men, it will come to -nought: 5:39 But if it be of God, ye cannot overthrow it; lest haply -ye be found even to fight against God. - -5:40 And to him they agreed: and when they had called the apostles, -and beaten them, they commanded that they should not speak in the name -of Jesus, and let them go. - -5:41 And they departed from the presence of the council, rejoicing -that they were counted worthy to suffer shame for his name. - -5:42 And daily in the temple, and in every house, they ceased not to -teach and preach Jesus Christ. - -6:1 And in those days, when the number of the disciples was -multiplied, there arose a murmuring of the Grecians against the -Hebrews, because their widows were neglected in the daily -ministration. - -6:2 Then the twelve called the multitude of the disciples unto them, -and said, It is not reason that we should leave the word of God, and -serve tables. - -6:3 Wherefore, brethren, look ye out among you seven men of honest -report, full of the Holy Ghost and wisdom, whom we may appoint over -this business. - -6:4 But we will give ourselves continually to prayer, and to the -ministry of the word. - -6:5 And the saying pleased the whole multitude: and they chose -Stephen, a man full of faith and of the Holy Ghost, and Philip, and -Prochorus, and Nicanor, and Timon, and Parmenas, and Nicolas a -proselyte of Antioch: 6:6 Whom they set before the apostles: and when -they had prayed, they laid their hands on them. - -6:7 And the word of God increased; and the number of the disciples -multiplied in Jerusalem greatly; and a great company of the priests -were obedient to the faith. - -6:8 And Stephen, full of faith and power, did great wonders and -miracles among the people. - -6:9 Then there arose certain of the synagogue, which is called the -synagogue of the Libertines, and Cyrenians, and Alexandrians, and of -them of Cilicia and of Asia, disputing with Stephen. - -6:10 And they were not able to resist the wisdom and the spirit by -which he spake. - -6:11 Then they suborned men, which said, We have heard him speak -blasphemous words against Moses, and against God. - -6:12 And they stirred up the people, and the elders, and the scribes, -and came upon him, and caught him, and brought him to the council, -6:13 And set up false witnesses, which said, This man ceaseth not to -speak blasphemous words against this holy place, and the law: 6:14 For -we have heard him say, that this Jesus of Nazareth shall destroy this -place, and shall change the customs which Moses delivered us. - -6:15 And all that sat in the council, looking stedfastly on him, saw -his face as it had been the face of an angel. - -7:1 Then said the high priest, Are these things so? 7:2 And he said, -Men, brethren, and fathers, hearken; The God of glory appeared unto -our father Abraham, when he was in Mesopotamia, before he dwelt in -Charran, 7:3 And said unto him, Get thee out of thy country, and from -thy kindred, and come into the land which I shall shew thee. - -7:4 Then came he out of the land of the Chaldaeans, and dwelt in -Charran: and from thence, when his father was dead, he removed him -into this land, wherein ye now dwell. - -7:5 And he gave him none inheritance in it, no, not so much as to set -his foot on: yet he promised that he would give it to him for a -possession, and to his seed after him, when as yet he had no child. - -7:6 And God spake on this wise, That his seed should sojourn in a -strange land; and that they should bring them into bondage, and -entreat them evil four hundred years. - -7:7 And the nation to whom they shall be in bondage will I judge, said -God: and after that shall they come forth, and serve me in this place. - -7:8 And he gave him the covenant of circumcision: and so Abraham begat -Isaac, and circumcised him the eighth day; and Isaac begat Jacob; and -Jacob begat the twelve patriarchs. - -7:9 And the patriarchs, moved with envy, sold Joseph into Egypt: but -God was with him, 7:10 And delivered him out of all his afflictions, -and gave him favour and wisdom in the sight of Pharaoh king of Egypt; -and he made him governor over Egypt and all his house. - -7:11 Now there came a dearth over all the land of Egypt and Chanaan, -and great affliction: and our fathers found no sustenance. - -7:12 But when Jacob heard that there was corn in Egypt, he sent out -our fathers first. - -7:13 And at the second time Joseph was made known to his brethren; and -Joseph's kindred was made known unto Pharaoh. - -7:14 Then sent Joseph, and called his father Jacob to him, and all his -kindred, threescore and fifteen souls. - -7:15 So Jacob went down into Egypt, and died, he, and our fathers, -7:16 And were carried over into Sychem, and laid in the sepulchre that -Abraham bought for a sum of money of the sons of Emmor the father of -Sychem. - -7:17 But when the time of the promise drew nigh, which God had sworn -to Abraham, the people grew and multiplied in Egypt, 7:18 Till another -king arose, which knew not Joseph. - -7:19 The same dealt subtilly with our kindred, and evil entreated our -fathers, so that they cast out their young children, to the end they -might not live. - -7:20 In which time Moses was born, and was exceeding fair, and -nourished up in his father's house three months: 7:21 And when he was -cast out, Pharaoh's daughter took him up, and nourished him for her -own son. - -7:22 And Moses was learned in all the wisdom of the Egyptians, and was -mighty in words and in deeds. - -7:23 And when he was full forty years old, it came into his heart to -visit his brethren the children of Israel. - -7:24 And seeing one of them suffer wrong, he defended him, and avenged -him that was oppressed, and smote the Egyptian: 7:25 For he supposed -his brethren would have understood how that God by his hand would -deliver them: but they understood not. - -7:26 And the next day he shewed himself unto them as they strove, and -would have set them at one again, saying, Sirs, ye are brethren; why -do ye wrong one to another? 7:27 But he that did his neighbour wrong -thrust him away, saying, Who made thee a ruler and a judge over us? -7:28 Wilt thou kill me, as thou diddest the Egyptian yesterday? 7:29 -Then fled Moses at this saying, and was a stranger in the land of -Madian, where he begat two sons. - -7:30 And when forty years were expired, there appeared to him in the -wilderness of mount Sina an angel of the Lord in a flame of fire in a -bush. - -7:31 When Moses saw it, he wondered at the sight: and as he drew near -to behold it, the voice of the LORD came unto him, 7:32 Saying, I am -the God of thy fathers, the God of Abraham, and the God of Isaac, and -the God of Jacob. Then Moses trembled, and durst not behold. - -7:33 Then said the Lord to him, Put off thy shoes from thy feet: for -the place where thou standest is holy ground. - -7:34 I have seen, I have seen the affliction of my people which is in -Egypt, and I have heard their groaning, and am come down to deliver -them. And now come, I will send thee into Egypt. - -7:35 This Moses whom they refused, saying, Who made thee a ruler and a -judge? the same did God send to be a ruler and a deliverer by the hand -of the angel which appeared to him in the bush. - -7:36 He brought them out, after that he had shewed wonders and signs -in the land of Egypt, and in the Red sea, and in the wilderness forty -years. - -7:37 This is that Moses, which said unto the children of Israel, A -prophet shall the Lord your God raise up unto you of your brethren, -like unto me; him shall ye hear. - -7:38 This is he, that was in the church in the wilderness with the -angel which spake to him in the mount Sina, and with our fathers: who -received the lively oracles to give unto us: 7:39 To whom our fathers -would not obey, but thrust him from them, and in their hearts turned -back again into Egypt, 7:40 Saying unto Aaron, Make us gods to go -before us: for as for this Moses, which brought us out of the land of -Egypt, we wot not what is become of him. - -7:41 And they made a calf in those days, and offered sacrifice unto -the idol, and rejoiced in the works of their own hands. - -7:42 Then God turned, and gave them up to worship the host of heaven; -as it is written in the book of the prophets, O ye house of Israel, -have ye offered to me slain beasts and sacrifices by the space of -forty years in the wilderness? 7:43 Yea, ye took up the tabernacle of -Moloch, and the star of your god Remphan, figures which ye made to -worship them: and I will carry you away beyond Babylon. - -7:44 Our fathers had the tabernacle of witness in the wilderness, as -he had appointed, speaking unto Moses, that he should make it -according to the fashion that he had seen. - -7:45 Which also our fathers that came after brought in with Jesus into -the possession of the Gentiles, whom God drave out before the face of -our fathers, unto the days of David; 7:46 Who found favour before God, -and desired to find a tabernacle for the God of Jacob. - -7:47 But Solomon built him an house. - -7:48 Howbeit the most High dwelleth not in temples made with hands; as -saith the prophet, 7:49 Heaven is my throne, and earth is my -footstool: what house will ye build me? saith the Lord: or what is the -place of my rest? 7:50 Hath not my hand made all these things? 7:51 -Ye stiffnecked and uncircumcised in heart and ears, ye do always -resist the Holy Ghost: as your fathers did, so do ye. - -7:52 Which of the prophets have not your fathers persecuted? and they -have slain them which shewed before of the coming of the Just One; of -whom ye have been now the betrayers and murderers: 7:53 Who have -received the law by the disposition of angels, and have not kept it. - -7:54 When they heard these things, they were cut to the heart, and -they gnashed on him with their teeth. - -7:55 But he, being full of the Holy Ghost, looked up stedfastly into -heaven, and saw the glory of God, and Jesus standing on the right hand -of God, 7:56 And said, Behold, I see the heavens opened, and the Son -of man standing on the right hand of God. - -7:57 Then they cried out with a loud voice, and stopped their ears, -and ran upon him with one accord, 7:58 And cast him out of the city, -and stoned him: and the witnesses laid down their clothes at a young -man's feet, whose name was Saul. - -7:59 And they stoned Stephen, calling upon God, and saying, Lord -Jesus, receive my spirit. - -7:60 And he kneeled down, and cried with a loud voice, Lord, lay not -this sin to their charge. And when he had said this, he fell asleep. - -8:1 And Saul was consenting unto his death. And at that time there was -a great persecution against the church which was at Jerusalem; and -they were all scattered abroad throughout the regions of Judaea and -Samaria, except the apostles. - -8:2 And devout men carried Stephen to his burial, and made great -lamentation over him. - -8:3 As for Saul, he made havock of the church, entering into every -house, and haling men and women committed them to prison. - -8:4 Therefore they that were scattered abroad went every where -preaching the word. - -8:5 Then Philip went down to the city of Samaria, and preached Christ -unto them. - -8:6 And the people with one accord gave heed unto those things which -Philip spake, hearing and seeing the miracles which he did. - -8:7 For unclean spirits, crying with loud voice, came out of many that -were possessed with them: and many taken with palsies, and that were -lame, were healed. - -8:8 And there was great joy in that city. - -8:9 But there was a certain man, called Simon, which beforetime in the -same city used sorcery, and bewitched the people of Samaria, giving -out that himself was some great one: 8:10 To whom they all gave heed, -from the least to the greatest, saying, This man is the great power of -God. - -8:11 And to him they had regard, because that of long time he had -bewitched them with sorceries. - -8:12 But when they believed Philip preaching the things concerning the -kingdom of God, and the name of Jesus Christ, they were baptized, both -men and women. - -8:13 Then Simon himself believed also: and when he was baptized, he -continued with Philip, and wondered, beholding the miracles and signs -which were done. - -8:14 Now when the apostles which were at Jerusalem heard that Samaria -had received the word of God, they sent unto them Peter and John: 8:15 -Who, when they were come down, prayed for them, that they might -receive the Holy Ghost: 8:16 (For as yet he was fallen upon none of -them: only they were baptized in the name of the Lord Jesus.) 8:17 -Then laid they their hands on them, and they received the Holy Ghost. - -8:18 And when Simon saw that through laying on of the apostles' hands -the Holy Ghost was given, he offered them money, 8:19 Saying, Give me -also this power, that on whomsoever I lay hands, he may receive the -Holy Ghost. - -8:20 But Peter said unto him, Thy money perish with thee, because thou -hast thought that the gift of God may be purchased with money. - -8:21 Thou hast neither part nor lot in this matter: for thy heart is -not right in the sight of God. - -8:22 Repent therefore of this thy wickedness, and pray God, if perhaps -the thought of thine heart may be forgiven thee. - -8:23 For I perceive that thou art in the gall of bitterness, and in -the bond of iniquity. - -8:24 Then answered Simon, and said, Pray ye to the LORD for me, that -none of these things which ye have spoken come upon me. - -8:25 And they, when they had testified and preached the word of the -Lord, returned to Jerusalem, and preached the gospel in many villages -of the Samaritans. - -8:26 And the angel of the Lord spake unto Philip, saying, Arise, and -go toward the south unto the way that goeth down from Jerusalem unto -Gaza, which is desert. - -8:27 And he arose and went: and, behold, a man of Ethiopia, an eunuch -of great authority under Candace queen of the Ethiopians, who had the -charge of all her treasure, and had come to Jerusalem for to worship, -8:28 Was returning, and sitting in his chariot read Esaias the -prophet. - -8:29 Then the Spirit said unto Philip, Go near, and join thyself to -this chariot. - -8:30 And Philip ran thither to him, and heard him read the prophet -Esaias, and said, Understandest thou what thou readest? 8:31 And he -said, How can I, except some man should guide me? And he desired -Philip that he would come up and sit with him. - -8:32 The place of the scripture which he read was this, He was led as -a sheep to the slaughter; and like a lamb dumb before his shearer, so -opened he not his mouth: 8:33 In his humiliation his judgment was -taken away: and who shall declare his generation? for his life is -taken from the earth. - -8:34 And the eunuch answered Philip, and said, I pray thee, of whom -speaketh the prophet this? of himself, or of some other man? 8:35 -Then Philip opened his mouth, and began at the same scripture, and -preached unto him Jesus. - -8:36 And as they went on their way, they came unto a certain water: -and the eunuch said, See, here is water; what doth hinder me to be -baptized? 8:37 And Philip said, If thou believest with all thine -heart, thou mayest. - -And he answered and said, I believe that Jesus Christ is the Son of -God. - -8:38 And he commanded the chariot to stand still: and they went down -both into the water, both Philip and the eunuch; and he baptized him. - -8:39 And when they were come up out of the water, the Spirit of the -Lord caught away Philip, that the eunuch saw him no more: and he went -on his way rejoicing. - -8:40 But Philip was found at Azotus: and passing through he preached -in all the cities, till he came to Caesarea. - -9:1 And Saul, yet breathing out threatenings and slaughter against the -disciples of the Lord, went unto the high priest, 9:2 And desired of -him letters to Damascus to the synagogues, that if he found any of -this way, whether they were men or women, he might bring them bound -unto Jerusalem. - -9:3 And as he journeyed, he came near Damascus: and suddenly there -shined round about him a light from heaven: 9:4 And he fell to the -earth, and heard a voice saying unto him, Saul, Saul, why persecutest -thou me? 9:5 And he said, Who art thou, Lord? And the Lord said, I am -Jesus whom thou persecutest: it is hard for thee to kick against the -pricks. - -9:6 And he trembling and astonished said, Lord, what wilt thou have me -to do? And the Lord said unto him, Arise, and go into the city, and it -shall be told thee what thou must do. - -9:7 And the men which journeyed with him stood speechless, hearing a -voice, but seeing no man. - -9:8 And Saul arose from the earth; and when his eyes were opened, he -saw no man: but they led him by the hand, and brought him into -Damascus. - -9:9 And he was three days without sight, and neither did eat nor -drink. - -9:10 And there was a certain disciple at Damascus, named Ananias; and -to him said the Lord in a vision, Ananias. And he said, Behold, I am -here, Lord. - -9:11 And the Lord said unto him, Arise, and go into the street which -is called Straight, and enquire in the house of Judas for one called -Saul, of Tarsus: for, behold, he prayeth, 9:12 And hath seen in a -vision a man named Ananias coming in, and putting his hand on him, -that he might receive his sight. - -9:13 Then Ananias answered, Lord, I have heard by many of this man, -how much evil he hath done to thy saints at Jerusalem: 9:14 And here -he hath authority from the chief priests to bind all that call on thy -name. - -9:15 But the Lord said unto him, Go thy way: for he is a chosen vessel -unto me, to bear my name before the Gentiles, and kings, and the -children of Israel: 9:16 For I will shew him how great things he must -suffer for my name's sake. - -9:17 And Ananias went his way, and entered into the house; and putting -his hands on him said, Brother Saul, the Lord, even Jesus, that -appeared unto thee in the way as thou camest, hath sent me, that thou -mightest receive thy sight, and be filled with the Holy Ghost. - -9:18 And immediately there fell from his eyes as it had been scales: -and he received sight forthwith, and arose, and was baptized. - -9:19 And when he had received meat, he was strengthened. Then was Saul -certain days with the disciples which were at Damascus. - -9:20 And straightway he preached Christ in the synagogues, that he is -the Son of God. - -9:21 But all that heard him were amazed, and said; Is not this he that -destroyed them which called on this name in Jerusalem, and came hither -for that intent, that he might bring them bound unto the chief -priests? 9:22 But Saul increased the more in strength, and confounded -the Jews which dwelt at Damascus, proving that this is very Christ. - -9:23 And after that many days were fulfilled, the Jews took counsel to -kill him: 9:24 But their laying await was known of Saul. And they -watched the gates day and night to kill him. - -9:25 Then the disciples took him by night, and let him down by the -wall in a basket. - -9:26 And when Saul was come to Jerusalem, he assayed to join himself -to the disciples: but they were all afraid of him, and believed not -that he was a disciple. - -9:27 But Barnabas took him, and brought him to the apostles, and -declared unto them how he had seen the Lord in the way, and that he -had spoken to him, and how he had preached boldly at Damascus in the -name of Jesus. - -9:28 And he was with them coming in and going out at Jerusalem. - -9:29 And he spake boldly in the name of the Lord Jesus, and disputed -against the Grecians: but they went about to slay him. - -9:30 Which when the brethren knew, they brought him down to Caesarea, -and sent him forth to Tarsus. - -9:31 Then had the churches rest throughout all Judaea and Galilee and -Samaria, and were edified; and walking in the fear of the Lord, and in -the comfort of the Holy Ghost, were multiplied. - -9:32 And it came to pass, as Peter passed throughout all quarters, he -came down also to the saints which dwelt at Lydda. - -9:33 And there he found a certain man named Aeneas, which had kept his -bed eight years, and was sick of the palsy. - -9:34 And Peter said unto him, Aeneas, Jesus Christ maketh thee whole: -arise, and make thy bed. And he arose immediately. - -9:35 And all that dwelt at Lydda and Saron saw him, and turned to the -Lord. - -9:36 Now there was at Joppa a certain disciple named Tabitha, which by -interpretation is called Dorcas: this woman was full of good works and -almsdeeds which she did. - -9:37 And it came to pass in those days, that she was sick, and died: -whom when they had washed, they laid her in an upper chamber. - -9:38 And forasmuch as Lydda was nigh to Joppa, and the disciples had -heard that Peter was there, they sent unto him two men, desiring him -that he would not delay to come to them. - -9:39 Then Peter arose and went with them. When he was come, they -brought him into the upper chamber: and all the widows stood by him -weeping, and shewing the coats and garments which Dorcas made, while -she was with them. - -9:40 But Peter put them all forth, and kneeled down, and prayed; and -turning him to the body said, Tabitha, arise. And she opened her eyes: -and when she saw Peter, she sat up. - -9:41 And he gave her his hand, and lifted her up, and when he had -called the saints and widows, presented her alive. - -9:42 And it was known throughout all Joppa; and many believed in the -Lord. - -9:43 And it came to pass, that he tarried many days in Joppa with one -Simon a tanner. - -10:1 There was a certain man in Caesarea called Cornelius, a centurion -of the band called the Italian band, 10:2 A devout man, and one that -feared God with all his house, which gave much alms to the people, and -prayed to God alway. - -10:3 He saw in a vision evidently about the ninth hour of the day an -angel of God coming in to him, and saying unto him, Cornelius. - -10:4 And when he looked on him, he was afraid, and said, What is it, -Lord? And he said unto him, Thy prayers and thine alms are come up -for a memorial before God. - -10:5 And now send men to Joppa, and call for one Simon, whose surname -is Peter: 10:6 He lodgeth with one Simon a tanner, whose house is by -the sea side: he shall tell thee what thou oughtest to do. - -10:7 And when the angel which spake unto Cornelius was departed, he -called two of his household servants, and a devout soldier of them -that waited on him continually; 10:8 And when he had declared all -these things unto them, he sent them to Joppa. - -10:9 On the morrow, as they went on their journey, and drew nigh unto -the city, Peter went up upon the housetop to pray about the sixth -hour: 10:10 And he became very hungry, and would have eaten: but while -they made ready, he fell into a trance, 10:11 And saw heaven opened, -and a certain vessel descending upon him, as it had been a great sheet -knit at the four corners, and let down to the earth: 10:12 Wherein -were all manner of fourfooted beasts of the earth, and wild beasts, -and creeping things, and fowls of the air. - -10:13 And there came a voice to him, Rise, Peter; kill, and eat. - -10:14 But Peter said, Not so, Lord; for I have never eaten any thing -that is common or unclean. - -10:15 And the voice spake unto him again the second time, What God -hath cleansed, that call not thou common. - -10:16 This was done thrice: and the vessel was received up again into -heaven. - -10:17 Now while Peter doubted in himself what this vision which he had -seen should mean, behold, the men which were sent from Cornelius had -made enquiry for Simon's house, and stood before the gate, 10:18 And -called, and asked whether Simon, which was surnamed Peter, were lodged -there. - -10:19 While Peter thought on the vision, the Spirit said unto him, -Behold, three men seek thee. - -10:20 Arise therefore, and get thee down, and go with them, doubting -nothing: for I have sent them. - -10:21 Then Peter went down to the men which were sent unto him from -Cornelius; and said, Behold, I am he whom ye seek: what is the cause -wherefore ye are come? 10:22 And they said, Cornelius the centurion, -a just man, and one that feareth God, and of good report among all the -nation of the Jews, was warned from God by an holy angel to send for -thee into his house, and to hear words of thee. - -10:23 Then called he them in, and lodged them. And on the morrow Peter -went away with them, and certain brethren from Joppa accompanied him. - -10:24 And the morrow after they entered into Caesarea. And Cornelius -waited for them, and he had called together his kinsmen and near -friends. - -10:25 And as Peter was coming in, Cornelius met him, and fell down at -his feet, and worshipped him. - -10:26 But Peter took him up, saying, Stand up; I myself also am a man. - -10:27 And as he talked with him, he went in, and found many that were -come together. - -10:28 And he said unto them, Ye know how that it is an unlawful thing -for a man that is a Jew to keep company, or come unto one of another -nation; but God hath shewed me that I should not call any man common -or unclean. - -10:29 Therefore came I unto you without gainsaying, as soon as I was -sent for: I ask therefore for what intent ye have sent for me? 10:30 -And Cornelius said, Four days ago I was fasting until this hour; and -at the ninth hour I prayed in my house, and, behold, a man stood -before me in bright clothing, 10:31 And said, Cornelius, thy prayer is -heard, and thine alms are had in remembrance in the sight of God. - -10:32 Send therefore to Joppa, and call hither Simon, whose surname is -Peter; he is lodged in the house of one Simon a tanner by the sea -side: who, when he cometh, shall speak unto thee. - -10:33 Immediately therefore I sent to thee; and thou hast well done -that thou art come. Now therefore are we all here present before God, -to hear all things that are commanded thee of God. - -10:34 Then Peter opened his mouth, and said, Of a truth I perceive -that God is no respecter of persons: 10:35 But in every nation he that -feareth him, and worketh righteousness, is accepted with him. - -10:36 The word which God sent unto the children of Israel, preaching -peace by Jesus Christ: (he is Lord of all:) 10:37 That word, I say, ye -know, which was published throughout all Judaea, and began from -Galilee, after the baptism which John preached; 10:38 How God anointed -Jesus of Nazareth with the Holy Ghost and with power: who went about -doing good, and healing all that were oppressed of the devil; for God -was with him. - -10:39 And we are witnesses of all things which he did both in the land -of the Jews, and in Jerusalem; whom they slew and hanged on a tree: -10:40 Him God raised up the third day, and shewed him openly; 10:41 -Not to all the people, but unto witnesses chosen before God, even to -us, who did eat and drink with him after he rose from the dead. - -10:42 And he commanded us to preach unto the people, and to testify -that it is he which was ordained of God to be the Judge of quick and -dead. - -10:43 To him give all the prophets witness, that through his name -whosoever believeth in him shall receive remission of sins. - -10:44 While Peter yet spake these words, the Holy Ghost fell on all -them which heard the word. - -10:45 And they of the circumcision which believed were astonished, as -many as came with Peter, because that on the Gentiles also was poured -out the gift of the Holy Ghost. - -10:46 For they heard them speak with tongues, and magnify God. Then -answered Peter, 10:47 Can any man forbid water, that these should not -be baptized, which have received the Holy Ghost as well as we? 10:48 -And he commanded them to be baptized in the name of the Lord. Then -prayed they him to tarry certain days. - -11:1 And the apostles and brethren that were in Judaea heard that the -Gentiles had also received the word of God. - -11:2 And when Peter was come up to Jerusalem, they that were of the -circumcision contended with him, 11:3 Saying, Thou wentest in to men -uncircumcised, and didst eat with them. - -11:4 But Peter rehearsed the matter from the beginning, and expounded -it by order unto them, saying, 11:5 I was in the city of Joppa -praying: and in a trance I saw a vision, A certain vessel descend, as -it had been a great sheet, let down from heaven by four corners; and -it came even to me: 11:6 Upon the which when I had fastened mine eyes, -I considered, and saw fourfooted beasts of the earth, and wild beasts, -and creeping things, and fowls of the air. - -11:7 And I heard a voice saying unto me, Arise, Peter; slay and eat. - -11:8 But I said, Not so, Lord: for nothing common or unclean hath at -any time entered into my mouth. - -11:9 But the voice answered me again from heaven, What God hath -cleansed, that call not thou common. - -11:10 And this was done three times: and all were drawn up again into -heaven. - -11:11 And, behold, immediately there were three men already come unto -the house where I was, sent from Caesarea unto me. - -11:12 And the Spirit bade me go with them, nothing doubting. Moreover -these six brethren accompanied me, and we entered into the man's -house: 11:13 And he shewed us how he had seen an angel in his house, -which stood and said unto him, Send men to Joppa, and call for Simon, -whose surname is Peter; 11:14 Who shall tell thee words, whereby thou -and all thy house shall be saved. - -11:15 And as I began to speak, the Holy Ghost fell on them, as on us -at the beginning. - -11:16 Then remembered I the word of the Lord, how that he said, John -indeed baptized with water; but ye shall be baptized with the Holy -Ghost. - -11:17 Forasmuch then as God gave them the like gift as he did unto us, -who believed on the Lord Jesus Christ; what was I, that I could -withstand God? 11:18 When they heard these things, they held their -peace, and glorified God, saying, Then hath God also to the Gentiles -granted repentance unto life. - -11:19 Now they which were scattered abroad upon the persecution that -arose about Stephen travelled as far as Phenice, and Cyprus, and -Antioch, preaching the word to none but unto the Jews only. - -11:20 And some of them were men of Cyprus and Cyrene, which, when they -were come to Antioch, spake unto the Grecians, preaching the LORD -Jesus. - -11:21 And the hand of the Lord was with them: and a great number -believed, and turned unto the Lord. - -11:22 Then tidings of these things came unto the ears of the church -which was in Jerusalem: and they sent forth Barnabas, that he should -go as far as Antioch. - -11:23 Who, when he came, and had seen the grace of God, was glad, and -exhorted them all, that with purpose of heart they would cleave unto -the Lord. - -11:24 For he was a good man, and full of the Holy Ghost and of faith: -and much people was added unto the Lord. - -11:25 Then departed Barnabas to Tarsus, for to seek Saul: 11:26 And -when he had found him, he brought him unto Antioch. And it came to -pass, that a whole year they assembled themselves with the church, and -taught much people. And the disciples were called Christians first in -Antioch. - -11:27 And in these days came prophets from Jerusalem unto Antioch. - -11:28 And there stood up one of them named Agabus, and signified by -the Spirit that there should be great dearth throughout all the world: -which came to pass in the days of Claudius Caesar. - -11:29 Then the disciples, every man according to his ability, -determined to send relief unto the brethren which dwelt in Judaea: -11:30 Which also they did, and sent it to the elders by the hands of -Barnabas and Saul. - -12:1 Now about that time Herod the king stretched forth his hands to -vex certain of the church. - -12:2 And he killed James the brother of John with the sword. - -12:3 And because he saw it pleased the Jews, he proceeded further to -take Peter also. (Then were the days of unleavened bread.) 12:4 And -when he had apprehended him, he put him in prison, and delivered him -to four quaternions of soldiers to keep him; intending after Easter to -bring him forth to the people. - -12:5 Peter therefore was kept in prison: but prayer was made without -ceasing of the church unto God for him. - -12:6 And when Herod would have brought him forth, the same night Peter -was sleeping between two soldiers, bound with two chains: and the -keepers before the door kept the prison. - -12:7 And, behold, the angel of the Lord came upon him, and a light -shined in the prison: and he smote Peter on the side, and raised him -up, saying, Arise up quickly. And his chains fell off from his hands. - -12:8 And the angel said unto him, Gird thyself, and bind on thy -sandals. - -And so he did. And he saith unto him, Cast thy garment about thee, and -follow me. - -12:9 And he went out, and followed him; and wist not that it was true -which was done by the angel; but thought he saw a vision. - -12:10 When they were past the first and the second ward, they came -unto the iron gate that leadeth unto the city; which opened to them of -his own accord: and they went out, and passed on through one street; -and forthwith the angel departed from him. - -12:11 And when Peter was come to himself, he said, Now I know of a -surety, that the LORD hath sent his angel, and hath delivered me out -of the hand of Herod, and from all the expectation of the people of -the Jews. - -12:12 And when he had considered the thing, he came to the house of -Mary the mother of John, whose surname was Mark; where many were -gathered together praying. - -12:13 And as Peter knocked at the door of the gate, a damsel came to -hearken, named Rhoda. - -12:14 And when she knew Peter's voice, she opened not the gate for -gladness, but ran in, and told how Peter stood before the gate. - -12:15 And they said unto her, Thou art mad. But she constantly -affirmed that it was even so. Then said they, It is his angel. - -12:16 But Peter continued knocking: and when they had opened the door, -and saw him, they were astonished. - -12:17 But he, beckoning unto them with the hand to hold their peace, -declared unto them how the Lord had brought him out of the prison. And -he said, Go shew these things unto James, and to the brethren. And he -departed, and went into another place. - -12:18 Now as soon as it was day, there was no small stir among the -soldiers, what was become of Peter. - -12:19 And when Herod had sought for him, and found him not, he -examined the keepers, and commanded that they should be put to death. -And he went down from Judaea to Caesarea, and there abode. - -12:20 And Herod was highly displeased with them of Tyre and Sidon: but -they came with one accord to him, and, having made Blastus the king's -chamberlain their friend, desired peace; because their country was -nourished by the king's country. - -12:21 And upon a set day Herod, arrayed in royal apparel, sat upon his -throne, and made an oration unto them. - -12:22 And the people gave a shout, saying, It is the voice of a god, -and not of a man. - -12:23 And immediately the angel of the Lord smote him, because he gave -not God the glory: and he was eaten of worms, and gave up the ghost. - -12:24 But the word of God grew and multiplied. - -12:25 And Barnabas and Saul returned from Jerusalem, when they had -fulfilled their ministry, and took with them John, whose surname was -Mark. - -13:1 Now there were in the church that was at Antioch certain prophets -and teachers; as Barnabas, and Simeon that was called Niger, and -Lucius of Cyrene, and Manaen, which had been brought up with Herod the -tetrarch, and Saul. - -13:2 As they ministered to the Lord, and fasted, the Holy Ghost said, -Separate me Barnabas and Saul for the work whereunto I have called -them. - -13:3 And when they had fasted and prayed, and laid their hands on -them, they sent them away. - -13:4 So they, being sent forth by the Holy Ghost, departed unto -Seleucia; and from thence they sailed to Cyprus. - -13:5 And when they were at Salamis, they preached the word of God in -the synagogues of the Jews: and they had also John to their minister. - -13:6 And when they had gone through the isle unto Paphos, they found a -certain sorcerer, a false prophet, a Jew, whose name was Barjesus: -13:7 Which was with the deputy of the country, Sergius Paulus, a -prudent man; who called for Barnabas and Saul, and desired to hear the -word of God. - -13:8 But Elymas the sorcerer (for so is his name by interpretation) -withstood them, seeking to turn away the deputy from the faith. - -13:9 Then Saul, (who also is called Paul,) filled with the Holy Ghost, -set his eyes on him. - -13:10 And said, O full of all subtilty and all mischief, thou child of -the devil, thou enemy of all righteousness, wilt thou not cease to -pervert the right ways of the Lord? 13:11 And now, behold, the hand -of the Lord is upon thee, and thou shalt be blind, not seeing the sun -for a season. And immediately there fell on him a mist and a darkness; -and he went about seeking some to lead him by the hand. - -13:12 Then the deputy, when he saw what was done, believed, being -astonished at the doctrine of the Lord. - -13:13 Now when Paul and his company loosed from Paphos, they came to -Perga in Pamphylia: and John departing from them returned to -Jerusalem. - -13:14 But when they departed from Perga, they came to Antioch in -Pisidia, and went into the synagogue on the sabbath day, and sat down. - -13:15 And after the reading of the law and the prophets the rulers of -the synagogue sent unto them, saying, Ye men and brethren, if ye have -any word of exhortation for the people, say on. - -13:16 Then Paul stood up, and beckoning with his hand said, Men of -Israel, and ye that fear God, give audience. - -13:17 The God of this people of Israel chose our fathers, and exalted -the people when they dwelt as strangers in the land of Egypt, and with -an high arm brought he them out of it. - -13:18 And about the time of forty years suffered he their manners in -the wilderness. - -13:19 And when he had destroyed seven nations in the land of Chanaan, -he divided their land to them by lot. - -13:20 And after that he gave unto them judges about the space of four -hundred and fifty years, until Samuel the prophet. - -13:21 And afterward they desired a king: and God gave unto them Saul -the son of Cis, a man of the tribe of Benjamin, by the space of forty -years. - -13:22 And when he had removed him, he raised up unto them David to be -their king; to whom also he gave their testimony, and said, I have -found David the son of Jesse, a man after mine own heart, which shall -fulfil all my will. - -13:23 Of this man's seed hath God according to his promise raised unto -Israel a Saviour, Jesus: 13:24 When John had first preached before his -coming the baptism of repentance to all the people of Israel. - -13:25 And as John fulfilled his course, he said, Whom think ye that I -am? I am not he. But, behold, there cometh one after me, whose shoes -of his feet I am not worthy to loose. - -13:26 Men and brethren, children of the stock of Abraham, and -whosoever among you feareth God, to you is the word of this salvation -sent. - -13:27 For they that dwell at Jerusalem, and their rulers, because they -knew him not, nor yet the voices of the prophets which are read every -sabbath day, they have fulfilled them in condemning him. - -13:28 And though they found no cause of death in him, yet desired they -Pilate that he should be slain. - -13:29 And when they had fulfilled all that was written of him, they -took him down from the tree, and laid him in a sepulchre. - -13:30 But God raised him from the dead: 13:31 And he was seen many -days of them which came up with him from Galilee to Jerusalem, who are -his witnesses unto the people. - -13:32 And we declare unto you glad tidings, how that the promise which -was made unto the fathers, 13:33 God hath fulfilled the same unto us -their children, in that he hath raised up Jesus again; as it is also -written in the second psalm, Thou art my Son, this day have I begotten -thee. - -13:34 And as concerning that he raised him up from the dead, now no -more to return to corruption, he said on this wise, I will give you -the sure mercies of David. - -13:35 Wherefore he saith also in another psalm, Thou shalt not suffer -thine Holy One to see corruption. - -13:36 For David, after he had served his own generation by the will of -God, fell on sleep, and was laid unto his fathers, and saw corruption: -13:37 But he, whom God raised again, saw no corruption. - -13:38 Be it known unto you therefore, men and brethren, that through -this man is preached unto you the forgiveness of sins: 13:39 And by -him all that believe are justified from all things, from which ye -could not be justified by the law of Moses. - -13:40 Beware therefore, lest that come upon you, which is spoken of in -the prophets; 13:41 Behold, ye despisers, and wonder, and perish: for -I work a work in your days, a work which ye shall in no wise believe, -though a man declare it unto you. - -13:42 And when the Jews were gone out of the synagogue, the Gentiles -besought that these words might be preached to them the next sabbath. - -13:43 Now when the congregation was broken up, many of the Jews and -religious proselytes followed Paul and Barnabas: who, speaking to -them, persuaded them to continue in the grace of God. - -13:44 And the next sabbath day came almost the whole city together to -hear the word of God. - -13:45 But when the Jews saw the multitudes, they were filled with -envy, and spake against those things which were spoken by Paul, -contradicting and blaspheming. - -13:46 Then Paul and Barnabas waxed bold, and said, It was necessary -that the word of God should first have been spoken to you: but seeing -ye put it from you, and judge yourselves unworthy of everlasting life, -lo, we turn to the Gentiles. - -13:47 For so hath the Lord commanded us, saying, I have set thee to be -a light of the Gentiles, that thou shouldest be for salvation unto the -ends of the earth. - -13:48 And when the Gentiles heard this, they were glad, and glorified -the word of the Lord: and as many as were ordained to eternal life -believed. - -13:49 And the word of the Lord was published throughout all the -region. - -13:50 But the Jews stirred up the devout and honourable women, and the -chief men of the city, and raised persecution against Paul and -Barnabas, and expelled them out of their coasts. - -13:51 But they shook off the dust of their feet against them, and came -unto Iconium. - -13:52 And the disciples were filled with joy, and with the Holy Ghost. - -14:1 And it came to pass in Iconium, that they went both together into -the synagogue of the Jews, and so spake, that a great multitude both -of the Jews and also of the Greeks believed. - -14:2 But the unbelieving Jews stirred up the Gentiles, and made their -minds evil affected against the brethren. - -14:3 Long time therefore abode they speaking boldly in the Lord, which -gave testimony unto the word of his grace, and granted signs and -wonders to be done by their hands. - -14:4 But the multitude of the city was divided: and part held with the -Jews, and part with the apostles. - -14:5 And when there was an assault made both of the Gentiles, and also -of the Jews with their rulers, to use them despitefully, and to stone -them, 14:6 They were ware of it, and fled unto Lystra and Derbe, -cities of Lycaonia, and unto the region that lieth round about: 14:7 -And there they preached the gospel. - -14:8 And there sat a certain man at Lystra, impotent in his feet, -being a cripple from his mother's womb, who never had walked: 14:9 The -same heard Paul speak: who stedfastly beholding him, and perceiving -that he had faith to be healed, 14:10 Said with a loud voice, Stand -upright on thy feet. And he leaped and walked. - -14:11 And when the people saw what Paul had done, they lifted up their -voices, saying in the speech of Lycaonia, The gods are come down to us -in the likeness of men. - -14:12 And they called Barnabas, Jupiter; and Paul, Mercurius, because -he was the chief speaker. - -14:13 Then the priest of Jupiter, which was before their city, brought -oxen and garlands unto the gates, and would have done sacrifice with -the people. - -14:14 Which when the apostles, Barnabas and Paul, heard of, they rent -their clothes, and ran in among the people, crying out, 14:15 And -saying, Sirs, why do ye these things? We also are men of like passions -with you, and preach unto you that ye should turn from these vanities -unto the living God, which made heaven, and earth, and the sea, and -all things that are therein: 14:16 Who in times past suffered all -nations to walk in their own ways. - -14:17 Nevertheless he left not himself without witness, in that he did -good, and gave us rain from heaven, and fruitful seasons, filling our -hearts with food and gladness. - -14:18 And with these sayings scarce restrained they the people, that -they had not done sacrifice unto them. - -14:19 And there came thither certain Jews from Antioch and Iconium, -who persuaded the people, and having stoned Paul, drew him out of the -city, supposing he had been dead. - -14:20 Howbeit, as the disciples stood round about him, he rose up, and -came into the city: and the next day he departed with Barnabas to -Derbe. - -14:21 And when they had preached the gospel to that city, and had -taught many, they returned again to Lystra, and to Iconium, and -Antioch, 14:22 Confirming the souls of the disciples, and exhorting -them to continue in the faith, and that we must through much -tribulation enter into the kingdom of God. - -14:23 And when they had ordained them elders in every church, and had -prayed with fasting, they commended them to the Lord, on whom they -believed. - -14:24 And after they had passed throughout Pisidia, they came to -Pamphylia. - -14:25 And when they had preached the word in Perga, they went down -into Attalia: 14:26 And thence sailed to Antioch, from whence they had -been recommended to the grace of God for the work which they -fulfilled. - -14:27 And when they were come, and had gathered the church together, -they rehearsed all that God had done with them, and how he had opened -the door of faith unto the Gentiles. - -14:28 And there they abode long time with the disciples. - -15:1 And certain men which came down from Judaea taught the brethren, -and said, Except ye be circumcised after the manner of Moses, ye -cannot be saved. - -15:2 When therefore Paul and Barnabas had no small dissension and -disputation with them, they determined that Paul and Barnabas, and -certain other of them, should go up to Jerusalem unto the apostles and -elders about this question. - -15:3 And being brought on their way by the church, they passed through -Phenice and Samaria, declaring the conversion of the Gentiles: and -they caused great joy unto all the brethren. - -15:4 And when they were come to Jerusalem, they were received of the -church, and of the apostles and elders, and they declared all things -that God had done with them. - -15:5 But there rose up certain of the sect of the Pharisees which -believed, saying, That it was needful to circumcise them, and to -command them to keep the law of Moses. - -15:6 And the apostles and elders came together for to consider of this -matter. - -15:7 And when there had been much disputing, Peter rose up, and said -unto them, Men and brethren, ye know how that a good while ago God -made choice among us, that the Gentiles by my mouth should hear the -word of the gospel, and believe. - -15:8 And God, which knoweth the hearts, bare them witness, giving them -the Holy Ghost, even as he did unto us; 15:9 And put no difference -between us and them, purifying their hearts by faith. - -15:10 Now therefore why tempt ye God, to put a yoke upon the neck of -the disciples, which neither our fathers nor we were able to bear? -15:11 But we believe that through the grace of the LORD Jesus Christ -we shall be saved, even as they. - -15:12 Then all the multitude kept silence, and gave audience to -Barnabas and Paul, declaring what miracles and wonders God had wrought -among the Gentiles by them. - -15:13 And after they had held their peace, James answered, saying, Men -and brethren, hearken unto me: 15:14 Simeon hath declared how God at -the first did visit the Gentiles, to take out of them a people for his -name. - -15:15 And to this agree the words of the prophets; as it is written, -15:16 After this I will return, and will build again the tabernacle of -David, which is fallen down; and I will build again the ruins thereof, -and I will set it up: 15:17 That the residue of men might seek after -the Lord, and all the Gentiles, upon whom my name is called, saith the -Lord, who doeth all these things. - -15:18 Known unto God are all his works from the beginning of the -world. - -15:19 Wherefore my sentence is, that we trouble not them, which from -among the Gentiles are turned to God: 15:20 But that we write unto -them, that they abstain from pollutions of idols, and from -fornication, and from things strangled, and from blood. - -15:21 For Moses of old time hath in every city them that preach him, -being read in the synagogues every sabbath day. - -15:22 Then pleased it the apostles and elders with the whole church, -to send chosen men of their own company to Antioch with Paul and -Barnabas; namely, Judas surnamed Barsabas and Silas, chief men among -the brethren: 15:23 And they wrote letters by them after this manner; -The apostles and elders and brethren send greeting unto the brethren -which are of the Gentiles in Antioch and Syria and Cilicia. - -15:24 Forasmuch as we have heard, that certain which went out from us -have troubled you with words, subverting your souls, saying, Ye must -be circumcised, and keep the law: to whom we gave no such commandment: -15:25 It seemed good unto us, being assembled with one accord, to send -chosen men unto you with our beloved Barnabas and Paul, 15:26 Men that -have hazarded their lives for the name of our Lord Jesus Christ. - -15:27 We have sent therefore Judas and Silas, who shall also tell you -the same things by mouth. - -15:28 For it seemed good to the Holy Ghost, and to us, to lay upon you -no greater burden than these necessary things; 15:29 That ye abstain -from meats offered to idols, and from blood, and from things -strangled, and from fornication: from which if ye keep yourselves, ye -shall do well. Fare ye well. - -15:30 So when they were dismissed, they came to Antioch: and when they -had gathered the multitude together, they delivered the epistle: 15:31 -Which when they had read, they rejoiced for the consolation. - -15:32 And Judas and Silas, being prophets also themselves, exhorted -the brethren with many words, and confirmed them. - -15:33 And after they had tarried there a space, they were let go in -peace from the brethren unto the apostles. - -15:34 Notwithstanding it pleased Silas to abide there still. - -15:35 Paul also and Barnabas continued in Antioch, teaching and -preaching the word of the Lord, with many others also. - -15:36 And some days after Paul said unto Barnabas, Let us go again and -visit our brethren in every city where we have preached the word of -the LORD, and see how they do. - -15:37 And Barnabas determined to take with them John, whose surname -was Mark. - -15:38 But Paul thought not good to take him with them, who departed -from them from Pamphylia, and went not with them to the work. - -15:39 And the contention was so sharp between them, that they departed -asunder one from the other: and so Barnabas took Mark, and sailed unto -Cyprus; 15:40 And Paul chose Silas, and departed, being recommended by -the brethren unto the grace of God. - -15:41 And he went through Syria and Cilicia, confirming the churches. - -16:1 Then came he to Derbe and Lystra: and, behold, a certain disciple -was there, named Timotheus, the son of a certain woman, which was a -Jewess, and believed; but his father was a Greek: 16:2 Which was well -reported of by the brethren that were at Lystra and Iconium. - -16:3 Him would Paul have to go forth with him; and took and -circumcised him because of the Jews which were in those quarters: for -they knew all that his father was a Greek. - -16:4 And as they went through the cities, they delivered them the -decrees for to keep, that were ordained of the apostles and elders -which were at Jerusalem. - -16:5 And so were the churches established in the faith, and increased -in number daily. - -16:6 Now when they had gone throughout Phrygia and the region of -Galatia, and were forbidden of the Holy Ghost to preach the word in -Asia, 16:7 After they were come to Mysia, they assayed to go into -Bithynia: but the Spirit suffered them not. - -16:8 And they passing by Mysia came down to Troas. - -16:9 And a vision appeared to Paul in the night; There stood a man of -Macedonia, and prayed him, saying, Come over into Macedonia, and help -us. - -16:10 And after he had seen the vision, immediately we endeavoured to -go into Macedonia, assuredly gathering that the Lord had called us for -to preach the gospel unto them. - -16:11 Therefore loosing from Troas, we came with a straight course to -Samothracia, and the next day to Neapolis; 16:12 And from thence to -Philippi, which is the chief city of that part of Macedonia, and a -colony: and we were in that city abiding certain days. - -16:13 And on the sabbath we went out of the city by a river side, -where prayer was wont to be made; and we sat down, and spake unto the -women which resorted thither. - -16:14 And a certain woman named Lydia, a seller of purple, of the city -of Thyatira, which worshipped God, heard us: whose heart the Lord -opened, that she attended unto the things which were spoken of Paul. - -16:15 And when she was baptized, and her household, she besought us, -saying, If ye have judged me to be faithful to the Lord, come into my -house, and abide there. And she constrained us. - -16:16 And it came to pass, as we went to prayer, a certain damsel -possessed with a spirit of divination met us, which brought her -masters much gain by soothsaying: 16:17 The same followed Paul and us, -and cried, saying, These men are the servants of the most high God, -which shew unto us the way of salvation. - -16:18 And this did she many days. But Paul, being grieved, turned and -said to the spirit, I command thee in the name of Jesus Christ to come -out of her. - -And he came out the same hour. - -16:19 And when her masters saw that the hope of their gains was gone, -they caught Paul and Silas, and drew them into the marketplace unto -the rulers, 16:20 And brought them to the magistrates, saying, These -men, being Jews, do exceedingly trouble our city, 16:21 And teach -customs, which are not lawful for us to receive, neither to observe, -being Romans. - -16:22 And the multitude rose up together against them: and the -magistrates rent off their clothes, and commanded to beat them. - -16:23 And when they had laid many stripes upon them, they cast them -into prison, charging the jailor to keep them safely: 16:24 Who, -having received such a charge, thrust them into the inner prison, and -made their feet fast in the stocks. - -16:25 And at midnight Paul and Silas prayed, and sang praises unto -God: and the prisoners heard them. - -16:26 And suddenly there was a great earthquake, so that the -foundations of the prison were shaken: and immediately all the doors -were opened, and every one's bands were loosed. - -16:27 And the keeper of the prison awaking out of his sleep, and -seeing the prison doors open, he drew out his sword, and would have -killed himself, supposing that the prisoners had been fled. - -16:28 But Paul cried with a loud voice, saying, Do thyself no harm: -for we are all here. - -16:29 Then he called for a light, and sprang in, and came trembling, -and fell down before Paul and Silas, 16:30 And brought them out, and -said, Sirs, what must I do to be saved? 16:31 And they said, Believe -on the Lord Jesus Christ, and thou shalt be saved, and thy house. - -16:32 And they spake unto him the word of the Lord, and to all that -were in his house. - -16:33 And he took them the same hour of the night, and washed their -stripes; and was baptized, he and all his, straightway. - -16:34 And when he had brought them into his house, he set meat before -them, and rejoiced, believing in God with all his house. - -16:35 And when it was day, the magistrates sent the serjeants, saying, -Let those men go. - -16:36 And the keeper of the prison told this saying to Paul, The -magistrates have sent to let you go: now therefore depart, and go in -peace. - -16:37 But Paul said unto them, They have beaten us openly uncondemned, -being Romans, and have cast us into prison; and now do they thrust us -out privily? nay verily; but let them come themselves and fetch us -out. - -16:38 And the serjeants told these words unto the magistrates: and -they feared, when they heard that they were Romans. - -16:39 And they came and besought them, and brought them out, and -desired them to depart out of the city. - -16:40 And they went out of the prison, and entered into the house of -Lydia: and when they had seen the brethren, they comforted them, and -departed. - -17:1 Now when they had passed through Amphipolis and Apollonia, they -came to Thessalonica, where was a synagogue of the Jews: 17:2 And -Paul, as his manner was, went in unto them, and three sabbath days -reasoned with them out of the scriptures, 17:3 Opening and alleging, -that Christ must needs have suffered, and risen again from the dead; -and that this Jesus, whom I preach unto you, is Christ. - -17:4 And some of them believed, and consorted with Paul and Silas; and -of the devout Greeks a great multitude, and of the chief women not a -few. - -17:5 But the Jews which believed not, moved with envy, took unto them -certain lewd fellows of the baser sort, and gathered a company, and -set all the city on an uproar, and assaulted the house of Jason, and -sought to bring them out to the people. - -17:6 And when they found them not, they drew Jason and certain -brethren unto the rulers of the city, crying, These that have turned -the world upside down are come hither also; 17:7 Whom Jason hath -received: and these all do contrary to the decrees of Caesar, saying -that there is another king, one Jesus. - -17:8 And they troubled the people and the rulers of the city, when -they heard these things. - -17:9 And when they had taken security of Jason, and of the other, they -let them go. - -17:10 And the brethren immediately sent away Paul and Silas by night -unto Berea: who coming thither went into the synagogue of the Jews. - -17:11 These were more noble than those in Thessalonica, in that they -received the word with all readiness of mind, and searched the -scriptures daily, whether those things were so. - -17:12 Therefore many of them believed; also of honourable women which -were Greeks, and of men, not a few. - -17:13 But when the Jews of Thessalonica had knowledge that the word of -God was preached of Paul at Berea, they came thither also, and stirred -up the people. - -17:14 And then immediately the brethren sent away Paul to go as it -were to the sea: but Silas and Timotheus abode there still. - -17:15 And they that conducted Paul brought him unto Athens: and -receiving a commandment unto Silas and Timotheus for to come to him -with all speed, they departed. - -17:16 Now while Paul waited for them at Athens, his spirit was stirred -in him, when he saw the city wholly given to idolatry. - -17:17 Therefore disputed he in the synagogue with the Jews, and with -the devout persons, and in the market daily with them that met with -him. - -17:18 Then certain philosophers of the Epicureans, and of the Stoicks, -encountered him. And some said, What will this babbler say? other -some, He seemeth to be a setter forth of strange gods: because he -preached unto them Jesus, and the resurrection. - -17:19 And they took him, and brought him unto Areopagus, saying, May -we know what this new doctrine, whereof thou speakest, is? 17:20 For -thou bringest certain strange things to our ears: we would know -therefore what these things mean. - -17:21 (For all the Athenians and strangers which were there spent -their time in nothing else, but either to tell, or to hear some new -thing.) 17:22 Then Paul stood in the midst of Mars' hill, and said, -Ye men of Athens, I perceive that in all things ye are too -superstitious. - -17:23 For as I passed by, and beheld your devotions, I found an altar -with this inscription, TO THE UNKNOWN GOD. Whom therefore ye -ignorantly worship, him declare I unto you. - -17:24 God that made the world and all things therein, seeing that he -is Lord of heaven and earth, dwelleth not in temples made with hands; -17:25 Neither is worshipped with men's hands, as though he needed any -thing, seeing he giveth to all life, and breath, and all things; 17:26 -And hath made of one blood all nations of men for to dwell on all the -face of the earth, and hath determined the times before appointed, and -the bounds of their habitation; 17:27 That they should seek the Lord, -if haply they might feel after him, and find him, though he be not far -from every one of us: 17:28 For in him we live, and move, and have our -being; as certain also of your own poets have said, For we are also -his offspring. - -17:29 Forasmuch then as we are the offspring of God, we ought not to -think that the Godhead is like unto gold, or silver, or stone, graven -by art and man's device. - -17:30 And the times of this ignorance God winked at; but now -commandeth all men every where to repent: 17:31 Because he hath -appointed a day, in the which he will judge the world in righteousness -by that man whom he hath ordained; whereof he hath given assurance -unto all men, in that he hath raised him from the dead. - -17:32 And when they heard of the resurrection of the dead, some -mocked: and others said, We will hear thee again of this matter. - -17:33 So Paul departed from among them. - -17:34 Howbeit certain men clave unto him, and believed: among the -which was Dionysius the Areopagite, and a woman named Damaris, and -others with them. - -18:1 After these things Paul departed from Athens, and came to -Corinth; 18:2 And found a certain Jew named Aquila, born in Pontus, -lately come from Italy, with his wife Priscilla; (because that -Claudius had commanded all Jews to depart from Rome:) and came unto -them. - -18:3 And because he was of the same craft, he abode with them, and -wrought: for by their occupation they were tentmakers. - -18:4 And he reasoned in the synagogue every sabbath, and persuaded the -Jews and the Greeks. - -18:5 And when Silas and Timotheus were come from Macedonia, Paul was -pressed in the spirit, and testified to the Jews that Jesus was -Christ. - -18:6 And when they opposed themselves, and blasphemed, he shook his -raiment, and said unto them, Your blood be upon your own heads; I am -clean; from henceforth I will go unto the Gentiles. - -18:7 And he departed thence, and entered into a certain man's house, -named Justus, one that worshipped God, whose house joined hard to the -synagogue. - -18:8 And Crispus, the chief ruler of the synagogue, believed on the -Lord with all his house; and many of the Corinthians hearing believed, -and were baptized. - -18:9 Then spake the Lord to Paul in the night by a vision, Be not -afraid, but speak, and hold not thy peace: 18:10 For I am with thee, -and no man shall set on thee to hurt thee: for I have much people in -this city. - -18:11 And he continued there a year and six months, teaching the word -of God among them. - -18:12 And when Gallio was the deputy of Achaia, the Jews made -insurrection with one accord against Paul, and brought him to the -judgment seat, 18:13 Saying, This fellow persuadeth men to worship God -contrary to the law. - -18:14 And when Paul was now about to open his mouth, Gallio said unto -the Jews, If it were a matter of wrong or wicked lewdness, O ye Jews, -reason would that I should bear with you: 18:15 But if it be a -question of words and names, and of your law, look ye to it; for I -will be no judge of such matters. - -18:16 And he drave them from the judgment seat. - -18:17 Then all the Greeks took Sosthenes, the chief ruler of the -synagogue, and beat him before the judgment seat. And Gallio cared for -none of those things. - -18:18 And Paul after this tarried there yet a good while, and then -took his leave of the brethren, and sailed thence into Syria, and with -him Priscilla and Aquila; having shorn his head in Cenchrea: for he -had a vow. - -18:19 And he came to Ephesus, and left them there: but he himself -entered into the synagogue, and reasoned with the Jews. - -18:20 When they desired him to tarry longer time with them, he -consented not; 18:21 But bade them farewell, saying, I must by all -means keep this feast that cometh in Jerusalem: but I will return -again unto you, if God will. And he sailed from Ephesus. - -18:22 And when he had landed at Caesarea, and gone up, and saluted the -church, he went down to Antioch. - -18:23 And after he had spent some time there, he departed, and went -over all the country of Galatia and Phrygia in order, strengthening -all the disciples. - -18:24 And a certain Jew named Apollos, born at Alexandria, an eloquent -man, and mighty in the scriptures, came to Ephesus. - -18:25 This man was instructed in the way of the Lord; and being -fervent in the spirit, he spake and taught diligently the things of -the Lord, knowing only the baptism of John. - -18:26 And he began to speak boldly in the synagogue: whom when Aquila -and Priscilla had heard, they took him unto them, and expounded unto -him the way of God more perfectly. - -18:27 And when he was disposed to pass into Achaia, the brethren -wrote, exhorting the disciples to receive him: who, when he was come, -helped them much which had believed through grace: 18:28 For he -mightily convinced the Jews, and that publickly, shewing by the -scriptures that Jesus was Christ. - -19:1 And it came to pass, that, while Apollos was at Corinth, Paul -having passed through the upper coasts came to Ephesus: and finding -certain disciples, 19:2 He said unto them, Have ye received the Holy -Ghost since ye believed? And they said unto him, We have not so much -as heard whether there be any Holy Ghost. - -19:3 And he said unto them, Unto what then were ye baptized? And they -said, Unto John's baptism. - -19:4 Then said Paul, John verily baptized with the baptism of -repentance, saying unto the people, that they should believe on him -which should come after him, that is, on Christ Jesus. - -19:5 When they heard this, they were baptized in the name of the Lord -Jesus. - -19:6 And when Paul had laid his hands upon them, the Holy Ghost came -on them; and they spake with tongues, and prophesied. - -19:7 And all the men were about twelve. - -19:8 And he went into the synagogue, and spake boldly for the space of -three months, disputing and persuading the things concerning the -kingdom of God. - -19:9 But when divers were hardened, and believed not, but spake evil -of that way before the multitude, he departed from them, and separated -the disciples, disputing daily in the school of one Tyrannus. - -19:10 And this continued by the space of two years; so that all they -which dwelt in Asia heard the word of the Lord Jesus, both Jews and -Greeks. - -19:11 And God wrought special miracles by the hands of Paul: 19:12 So -that from his body were brought unto the sick handkerchiefs or aprons, -and the diseases departed from them, and the evil spirits went out of -them. - -19:13 Then certain of the vagabond Jews, exorcists, took upon them to -call over them which had evil spirits the name of the LORD Jesus, -saying, We adjure you by Jesus whom Paul preacheth. - -19:14 And there were seven sons of one Sceva, a Jew, and chief of the -priests, which did so. - -19:15 And the evil spirit answered and said, Jesus I know, and Paul I -know; but who are ye? 19:16 And the man in whom the evil spirit was -leaped on them, and overcame them, and prevailed against them, so that -they fled out of that house naked and wounded. - -19:17 And this was known to all the Jews and Greeks also dwelling at -Ephesus; and fear fell on them all, and the name of the Lord Jesus was -magnified. - -19:18 And many that believed came, and confessed, and shewed their -deeds. - -19:19 Many of them also which used curious arts brought their books -together, and burned them before all men: and they counted the price -of them, and found it fifty thousand pieces of silver. - -19:20 So mightily grew the word of God and prevailed. - -19:21 After these things were ended, Paul purposed in the spirit, when -he had passed through Macedonia and Achaia, to go to Jerusalem, -saying, After I have been there, I must also see Rome. - -19:22 So he sent into Macedonia two of them that ministered unto him, -Timotheus and Erastus; but he himself stayed in Asia for a season. - -19:23 And the same time there arose no small stir about that way. - -19:24 For a certain man named Demetrius, a silversmith, which made -silver shrines for Diana, brought no small gain unto the craftsmen; -19:25 Whom he called together with the workmen of like occupation, and -said, Sirs, ye know that by this craft we have our wealth. - -19:26 Moreover ye see and hear, that not alone at Ephesus, but almost -throughout all Asia, this Paul hath persuaded and turned away much -people, saying that they be no gods, which are made with hands: 19:27 -So that not only this our craft is in danger to be set at nought; but -also that the temple of the great goddess Diana should be despised, -and her magnificence should be destroyed, whom all Asia and the world -worshippeth. - -19:28 And when they heard these sayings, they were full of wrath, and -cried out, saying, Great is Diana of the Ephesians. - -19:29 And the whole city was filled with confusion: and having caught -Gaius and Aristarchus, men of Macedonia, Paul's companions in travel, -they rushed with one accord into the theatre. - -19:30 And when Paul would have entered in unto the people, the -disciples suffered him not. - -19:31 And certain of the chief of Asia, which were his friends, sent -unto him, desiring him that he would not adventure himself into the -theatre. - -19:32 Some therefore cried one thing, and some another: for the -assembly was confused: and the more part knew not wherefore they were -come together. - -19:33 And they drew Alexander out of the multitude, the Jews putting -him forward. And Alexander beckoned with the hand, and would have made -his defence unto the people. - -19:34 But when they knew that he was a Jew, all with one voice about -the space of two hours cried out, Great is Diana of the Ephesians. - -19:35 And when the townclerk had appeased the people, he said, Ye men -of Ephesus, what man is there that knoweth not how that the city of -the Ephesians is a worshipper of the great goddess Diana, and of the -image which fell down from Jupiter? 19:36 Seeing then that these -things cannot be spoken against, ye ought to be quiet, and to do -nothing rashly. - -19:37 For ye have brought hither these men, which are neither robbers -of churches, nor yet blasphemers of your goddess. - -19:38 Wherefore if Demetrius, and the craftsmen which are with him, -have a matter against any man, the law is open, and there are -deputies: let them implead one another. - -19:39 But if ye enquire any thing concerning other matters, it shall -be determined in a lawful assembly. - -19:40 For we are in danger to be called in question for this day's -uproar, there being no cause whereby we may give an account of this -concourse. - -19:41 And when he had thus spoken, he dismissed the assembly. - -20:1 And after the uproar was ceased, Paul called unto him the -disciples, and embraced them, and departed for to go into Macedonia. - -20:2 And when he had gone over those parts, and had given them much -exhortation, he came into Greece, 20:3 And there abode three months. -And when the Jews laid wait for him, as he was about to sail into -Syria, he purposed to return through Macedonia. - -20:4 And there accompanied him into Asia Sopater of Berea; and of the -Thessalonians, Aristarchus and Secundus; and Gaius of Derbe, and -Timotheus; and of Asia, Tychicus and Trophimus. - -20:5 These going before tarried for us at Troas. - -20:6 And we sailed away from Philippi after the days of unleavened -bread, and came unto them to Troas in five days; where we abode seven -days. - -20:7 And upon the first day of the week, when the disciples came -together to break bread, Paul preached unto them, ready to depart on -the morrow; and continued his speech until midnight. - -20:8 And there were many lights in the upper chamber, where they were -gathered together. - -20:9 And there sat in a window a certain young man named Eutychus, -being fallen into a deep sleep: and as Paul was long preaching, he -sunk down with sleep, and fell down from the third loft, and was taken -up dead. - -20:10 And Paul went down, and fell on him, and embracing him said, -Trouble not yourselves; for his life is in him. - -20:11 When he therefore was come up again, and had broken bread, and -eaten, and talked a long while, even till break of day, so he -departed. - -20:12 And they brought the young man alive, and were not a little -comforted. - -20:13 And we went before to ship, and sailed unto Assos, there -intending to take in Paul: for so had he appointed, minding himself to -go afoot. - -20:14 And when he met with us at Assos, we took him in, and came to -Mitylene. - -20:15 And we sailed thence, and came the next day over against Chios; -and the next day we arrived at Samos, and tarried at Trogyllium; and -the next day we came to Miletus. - -20:16 For Paul had determined to sail by Ephesus, because he would not -spend the time in Asia: for he hasted, if it were possible for him, to -be at Jerusalem the day of Pentecost. - -20:17 And from Miletus he sent to Ephesus, and called the elders of -the church. - -20:18 And when they were come to him, he said unto them, Ye know, from -the first day that I came into Asia, after what manner I have been -with you at all seasons, 20:19 Serving the LORD with all humility of -mind, and with many tears, and temptations, which befell me by the -lying in wait of the Jews: 20:20 And how I kept back nothing that was -profitable unto you, but have shewed you, and have taught you -publickly, and from house to house, 20:21 Testifying both to the Jews, -and also to the Greeks, repentance toward God, and faith toward our -Lord Jesus Christ. - -20:22 And now, behold, I go bound in the spirit unto Jerusalem, not -knowing the things that shall befall me there: 20:23 Save that the -Holy Ghost witnesseth in every city, saying that bonds and afflictions -abide me. - -20:24 But none of these things move me, neither count I my life dear -unto myself, so that I might finish my course with joy, and the -ministry, which I have received of the Lord Jesus, to testify the -gospel of the grace of God. - -20:25 And now, behold, I know that ye all, among whom I have gone -preaching the kingdom of God, shall see my face no more. - -20:26 Wherefore I take you to record this day, that I am pure from the -blood of all men. - -20:27 For I have not shunned to declare unto you all the counsel of -God. - -20:28 Take heed therefore unto yourselves, and to all the flock, over -the which the Holy Ghost hath made you overseers, to feed the church -of God, which he hath purchased with his own blood. - -20:29 For I know this, that after my departing shall grievous wolves -enter in among you, not sparing the flock. - -20:30 Also of your own selves shall men arise, speaking perverse -things, to draw away disciples after them. - -20:31 Therefore watch, and remember, that by the space of three years -I ceased not to warn every one night and day with tears. - -20:32 And now, brethren, I commend you to God, and to the word of his -grace, which is able to build you up, and to give you an inheritance -among all them which are sanctified. - -20:33 I have coveted no man's silver, or gold, or apparel. - -20:34 Yea, ye yourselves know, that these hands have ministered unto -my necessities, and to them that were with me. - -20:35 I have shewed you all things, how that so labouring ye ought to -support the weak, and to remember the words of the Lord Jesus, how he -said, It is more blessed to give than to receive. - -20:36 And when he had thus spoken, he kneeled down, and prayed with -them all. - -20:37 And they all wept sore, and fell on Paul's neck, and kissed him, -20:38 Sorrowing most of all for the words which he spake, that they -should see his face no more. And they accompanied him unto the ship. - -21:1 And it came to pass, that after we were gotten from them, and had -launched, we came with a straight course unto Coos, and the day -following unto Rhodes, and from thence unto Patara: 21:2 And finding a -ship sailing over unto Phenicia, we went aboard, and set forth. - -21:3 Now when we had discovered Cyprus, we left it on the left hand, -and sailed into Syria, and landed at Tyre: for there the ship was to -unlade her burden. - -21:4 And finding disciples, we tarried there seven days: who said to -Paul through the Spirit, that he should not go up to Jerusalem. - -21:5 And when we had accomplished those days, we departed and went our -way; and they all brought us on our way, with wives and children, till -we were out of the city: and we kneeled down on the shore, and prayed. - -21:6 And when we had taken our leave one of another, we took ship; and -they returned home again. - -21:7 And when we had finished our course from Tyre, we came to -Ptolemais, and saluted the brethren, and abode with them one day. - -21:8 And the next day we that were of Paul's company departed, and -came unto Caesarea: and we entered into the house of Philip the -evangelist, which was one of the seven; and abode with him. - -21:9 And the same man had four daughters, virgins, which did prophesy. - -21:10 And as we tarried there many days, there came down from Judaea a -certain prophet, named Agabus. - -21:11 And when he was come unto us, he took Paul's girdle, and bound -his own hands and feet, and said, Thus saith the Holy Ghost, So shall -the Jews at Jerusalem bind the man that owneth this girdle, and shall -deliver him into the hands of the Gentiles. - -21:12 And when we heard these things, both we, and they of that place, -besought him not to go up to Jerusalem. - -21:13 Then Paul answered, What mean ye to weep and to break mine -heart? for I am ready not to be bound only, but also to die at -Jerusalem for the name of the Lord Jesus. - -21:14 And when he would not be persuaded, we ceased, saying, The will -of the Lord be done. - -21:15 And after those days we took up our carriages, and went up to -Jerusalem. - -21:16 There went with us also certain of the disciples of Caesarea, -and brought with them one Mnason of Cyprus, an old disciple, with whom -we should lodge. - -21:17 And when we were come to Jerusalem, the brethren received us -gladly. - -21:18 And the day following Paul went in with us unto James; and all -the elders were present. - -21:19 And when he had saluted them, he declared particularly what -things God had wrought among the Gentiles by his ministry. - -21:20 And when they heard it, they glorified the Lord, and said unto -him, Thou seest, brother, how many thousands of Jews there are which -believe; and they are all zealous of the law: 21:21 And they are -informed of thee, that thou teachest all the Jews which are among the -Gentiles to forsake Moses, saying that they ought not to circumcise -their children, neither to walk after the customs. - -21:22 What is it therefore? the multitude must needs come together: -for they will hear that thou art come. - -21:23 Do therefore this that we say to thee: We have four men which -have a vow on them; 21:24 Them take, and purify thyself with them, and -be at charges with them, that they may shave their heads: and all may -know that those things, whereof they were informed concerning thee, -are nothing; but that thou thyself also walkest orderly, and keepest -the law. - -21:25 As touching the Gentiles which believe, we have written and -concluded that they observe no such thing, save only that they keep -themselves from things offered to idols, and from blood, and from -strangled, and from fornication. - -21:26 Then Paul took the men, and the next day purifying himself with -them entered into the temple, to signify the accomplishment of the -days of purification, until that an offering should be offered for -every one of them. - -21:27 And when the seven days were almost ended, the Jews which were -of Asia, when they saw him in the temple, stirred up all the people, -and laid hands on him, 21:28 Crying out, Men of Israel, help: This is -the man, that teacheth all men every where against the people, and the -law, and this place: and further brought Greeks also into the temple, -and hath polluted this holy place. - -21:29 (For they had seen before with him in the city Trophimus an -Ephesian, whom they supposed that Paul had brought into the temple.) -21:30 And all the city was moved, and the people ran together: and -they took Paul, and drew him out of the temple: and forthwith the -doors were shut. - -21:31 And as they went about to kill him, tidings came unto the chief -captain of the band, that all Jerusalem was in an uproar. - -21:32 Who immediately took soldiers and centurions, and ran down unto -them: and when they saw the chief captain and the soldiers, they left -beating of Paul. - -21:33 Then the chief captain came near, and took him, and commanded -him to be bound with two chains; and demanded who he was, and what he -had done. - -21:34 And some cried one thing, some another, among the multitude: and -when he could not know the certainty for the tumult, he commanded him -to be carried into the castle. - -21:35 And when he came upon the stairs, so it was, that he was borne -of the soldiers for the violence of the people. - -21:36 For the multitude of the people followed after, crying, Away -with him. - -21:37 And as Paul was to be led into the castle, he said unto the -chief captain, May I speak unto thee? Who said, Canst thou speak -Greek? 21:38 Art not thou that Egyptian, which before these days -madest an uproar, and leddest out into the wilderness four thousand -men that were murderers? 21:39 But Paul said, I am a man which am a -Jew of Tarsus, a city in Cilicia, a citizen of no mean city: and, I -beseech thee, suffer me to speak unto the people. - -21:40 And when he had given him licence, Paul stood on the stairs, and -beckoned with the hand unto the people. And when there was made a -great silence, he spake unto them in the Hebrew tongue, saying, 22:1 -Men, brethren, and fathers, hear ye my defence which I make now unto -you. - -22:2 (And when they heard that he spake in the Hebrew tongue to them, -they kept the more silence: and he saith,) 22:3 I am verily a man -which am a Jew, born in Tarsus, a city in Cilicia, yet brought up in -this city at the feet of Gamaliel, and taught according to the perfect -manner of the law of the fathers, and was zealous toward God, as ye -all are this day. - -22:4 And I persecuted this way unto the death, binding and delivering -into prisons both men and women. - -22:5 As also the high priest doth bear me witness, and all the estate -of the elders: from whom also I received letters unto the brethren, -and went to Damascus, to bring them which were there bound unto -Jerusalem, for to be punished. - -22:6 And it came to pass, that, as I made my journey, and was come -nigh unto Damascus about noon, suddenly there shone from heaven a -great light round about me. - -22:7 And I fell unto the ground, and heard a voice saying unto me, -Saul, Saul, why persecutest thou me? 22:8 And I answered, Who art -thou, Lord? And he said unto me, I am Jesus of Nazareth, whom thou -persecutest. - -22:9 And they that were with me saw indeed the light, and were afraid; -but they heard not the voice of him that spake to me. - -22:10 And I said, What shall I do, LORD? And the Lord said unto me, -Arise, and go into Damascus; and there it shall be told thee of all -things which are appointed for thee to do. - -22:11 And when I could not see for the glory of that light, being led -by the hand of them that were with me, I came into Damascus. - -22:12 And one Ananias, a devout man according to the law, having a -good report of all the Jews which dwelt there, 22:13 Came unto me, and -stood, and said unto me, Brother Saul, receive thy sight. And the same -hour I looked up upon him. - -22:14 And he said, The God of our fathers hath chosen thee, that thou -shouldest know his will, and see that Just One, and shouldest hear the -voice of his mouth. - -22:15 For thou shalt be his witness unto all men of what thou hast -seen and heard. - -22:16 And now why tarriest thou? arise, and be baptized, and wash away -thy sins, calling on the name of the Lord. - -22:17 And it came to pass, that, when I was come again to Jerusalem, -even while I prayed in the temple, I was in a trance; 22:18 And saw -him saying unto me, Make haste, and get thee quickly out of Jerusalem: -for they will not receive thy testimony concerning me. - -22:19 And I said, Lord, they know that I imprisoned and beat in every -synagogue them that believed on thee: 22:20 And when the blood of thy -martyr Stephen was shed, I also was standing by, and consenting unto -his death, and kept the raiment of them that slew him. - -22:21 And he said unto me, Depart: for I will send thee far hence unto -the Gentiles. - -22:22 And they gave him audience unto this word, and then lifted up -their voices, and said, Away with such a fellow from the earth: for it -is not fit that he should live. - -22:23 And as they cried out, and cast off their clothes, and threw -dust into the air, 22:24 The chief captain commanded him to be brought -into the castle, and bade that he should be examined by scourging; -that he might know wherefore they cried so against him. - -22:25 And as they bound him with thongs, Paul said unto the centurion -that stood by, Is it lawful for you to scourge a man that is a Roman, -and uncondemned? 22:26 When the centurion heard that, he went and -told the chief captain, saying, Take heed what thou doest: for this -man is a Roman. - -22:27 Then the chief captain came, and said unto him, Tell me, art -thou a Roman? He said, Yea. - -22:28 And the chief captain answered, With a great sum obtained I this -freedom. And Paul said, But I was free born. - -22:29 Then straightway they departed from him which should have -examined him: and the chief captain also was afraid, after he knew -that he was a Roman, and because he had bound him. - -22:30 On the morrow, because he would have known the certainty -wherefore he was accused of the Jews, he loosed him from his bands, -and commanded the chief priests and all their council to appear, and -brought Paul down, and set him before them. - -23:1 And Paul, earnestly beholding the council, said, Men and -brethren, I have lived in all good conscience before God until this -day. - -23:2 And the high priest Ananias commanded them that stood by him to -smite him on the mouth. - -23:3 Then said Paul unto him, God shall smite thee, thou whited wall: -for sittest thou to judge me after the law, and commandest me to be -smitten contrary to the law? 23:4 And they that stood by said, -Revilest thou God's high priest? 23:5 Then said Paul, I wist not, -brethren, that he was the high priest: for it is written, Thou shalt -not speak evil of the ruler of thy people. - -23:6 But when Paul perceived that the one part were Sadducees, and the -other Pharisees, he cried out in the council, Men and brethren, I am a -Pharisee, the son of a Pharisee: of the hope and resurrection of the -dead I am called in question. - -23:7 And when he had so said, there arose a dissension between the -Pharisees and the Sadducees: and the multitude was divided. - -23:8 For the Sadducees say that there is no resurrection, neither -angel, nor spirit: but the Pharisees confess both. - -23:9 And there arose a great cry: and the scribes that were of the -Pharisees' part arose, and strove, saying, We find no evil in this -man: but if a spirit or an angel hath spoken to him, let us not fight -against God. - -23:10 And when there arose a great dissension, the chief captain, -fearing lest Paul should have been pulled in pieces of them, commanded -the soldiers to go down, and to take him by force from among them, and -to bring him into the castle. - -23:11 And the night following the Lord stood by him, and said, Be of -good cheer, Paul: for as thou hast testified of me in Jerusalem, so -must thou bear witness also at Rome. - -23:12 And when it was day, certain of the Jews banded together, and -bound themselves under a curse, saying that they would neither eat nor -drink till they had killed Paul. - -23:13 And they were more than forty which had made this conspiracy. - -23:14 And they came to the chief priests and elders, and said, We have -bound ourselves under a great curse, that we will eat nothing until we -have slain Paul. - -23:15 Now therefore ye with the council signify to the chief captain -that he bring him down unto you to morrow, as though ye would enquire -something more perfectly concerning him: and we, or ever he come near, -are ready to kill him. - -23:16 And when Paul's sister's son heard of their lying in wait, he -went and entered into the castle, and told Paul. - -23:17 Then Paul called one of the centurions unto him, and said, Bring -this young man unto the chief captain: for he hath a certain thing to -tell him. - -23:18 So he took him, and brought him to the chief captain, and said, -Paul the prisoner called me unto him, and prayed me to bring this -young man unto thee, who hath something to say unto thee. - -23:19 Then the chief captain took him by the hand, and went with him -aside privately, and asked him, What is that thou hast to tell me? -23:20 And he said, The Jews have agreed to desire thee that thou -wouldest bring down Paul to morrow into the council, as though they -would enquire somewhat of him more perfectly. - -23:21 But do not thou yield unto them: for there lie in wait for him -of them more than forty men, which have bound themselves with an oath, -that they will neither eat nor drink till they have killed him: and -now are they ready, looking for a promise from thee. - -23:22 So the chief captain then let the young man depart, and charged -him, See thou tell no man that thou hast shewed these things to me. - -23:23 And he called unto him two centurions, saying, Make ready two -hundred soldiers to go to Caesarea, and horsemen threescore and ten, -and spearmen two hundred, at the third hour of the night; 23:24 And -provide them beasts, that they may set Paul on, and bring him safe -unto Felix the governor. - -23:25 And he wrote a letter after this manner: 23:26 Claudius Lysias -unto the most excellent governor Felix sendeth greeting. - -23:27 This man was taken of the Jews, and should have been killed of -them: then came I with an army, and rescued him, having understood -that he was a Roman. - -23:28 And when I would have known the cause wherefore they accused -him, I brought him forth into their council: 23:29 Whom I perceived to -be accused of questions of their law, but to have nothing laid to his -charge worthy of death or of bonds. - -23:30 And when it was told me how that the Jews laid wait for the man, -I sent straightway to thee, and gave commandment to his accusers also -to say before thee what they had against him. Farewell. - -23:31 Then the soldiers, as it was commanded them, took Paul, and -brought him by night to Antipatris. - -23:32 On the morrow they left the horsemen to go with him, and -returned to the castle: 23:33 Who, when they came to Caesarea and -delivered the epistle to the governor, presented Paul also before him. - -23:34 And when the governor had read the letter, he asked of what -province he was. And when he understood that he was of Cilicia; 23:35 -I will hear thee, said he, when thine accusers are also come. And he -commanded him to be kept in Herod's judgment hall. - -24:1 And after five days Ananias the high priest descended with the -elders, and with a certain orator named Tertullus, who informed the -governor against Paul. - -24:2 And when he was called forth, Tertullus began to accuse him, -saying, Seeing that by thee we enjoy great quietness, and that very -worthy deeds are done unto this nation by thy providence, 24:3 We -accept it always, and in all places, most noble Felix, with all -thankfulness. - -24:4 Notwithstanding, that I be not further tedious unto thee, I pray -thee that thou wouldest hear us of thy clemency a few words. - -24:5 For we have found this man a pestilent fellow, and a mover of -sedition among all the Jews throughout the world, and a ringleader of -the sect of the Nazarenes: 24:6 Who also hath gone about to profane -the temple: whom we took, and would have judged according to our law. - -24:7 But the chief captain Lysias came upon us, and with great -violence took him away out of our hands, 24:8 Commanding his accusers -to come unto thee: by examining of whom thyself mayest take knowledge -of all these things, whereof we accuse him. - -24:9 And the Jews also assented, saying that these things were so. - -24:10 Then Paul, after that the governor had beckoned unto him to -speak, answered, Forasmuch as I know that thou hast been of many years -a judge unto this nation, I do the more cheerfully answer for myself: -24:11 Because that thou mayest understand, that there are yet but -twelve days since I went up to Jerusalem for to worship. - -24:12 And they neither found me in the temple disputing with any man, -neither raising up the people, neither in the synagogues, nor in the -city: 24:13 Neither can they prove the things whereof they now accuse -me. - -24:14 But this I confess unto thee, that after the way which they call -heresy, so worship I the God of my fathers, believing all things which -are written in the law and in the prophets: 24:15 And have hope toward -God, which they themselves also allow, that there shall be a -resurrection of the dead, both of the just and unjust. - -24:16 And herein do I exercise myself, to have always a conscience -void to offence toward God, and toward men. - -24:17 Now after many years I came to bring alms to my nation, and -offerings. - -24:18 Whereupon certain Jews from Asia found me purified in the -temple, neither with multitude, nor with tumult. - -24:19 Who ought to have been here before thee, and object, if they had -ought against me. - -24:20 Or else let these same here say, if they have found any evil -doing in me, while I stood before the council, 24:21 Except it be for -this one voice, that I cried standing among them, Touching the -resurrection of the dead I am called in question by you this day. - -24:22 And when Felix heard these things, having more perfect knowledge -of that way, he deferred them, and said, When Lysias the chief captain -shall come down, I will know the uttermost of your matter. - -24:23 And he commanded a centurion to keep Paul, and to let him have -liberty, and that he should forbid none of his acquaintance to -minister or come unto him. - -24:24 And after certain days, when Felix came with his wife Drusilla, -which was a Jewess, he sent for Paul, and heard him concerning the -faith in Christ. - -24:25 And as he reasoned of righteousness, temperance, and judgment to -come, Felix trembled, and answered, Go thy way for this time; when I -have a convenient season, I will call for thee. - -24:26 He hoped also that money should have been given him of Paul, -that he might loose him: wherefore he sent for him the oftener, and -communed with him. - -24:27 But after two years Porcius Festus came into Felix' room: and -Felix, willing to shew the Jews a pleasure, left Paul bound. - -25:1 Now when Festus was come into the province, after three days he -ascended from Caesarea to Jerusalem. - -25:2 Then the high priest and the chief of the Jews informed him -against Paul, and besought him, 25:3 And desired favour against him, -that he would send for him to Jerusalem, laying wait in the way to -kill him. - -25:4 But Festus answered, that Paul should be kept at Caesarea, and -that he himself would depart shortly thither. - -25:5 Let them therefore, said he, which among you are able, go down -with me, and accuse this man, if there be any wickedness in him. - -25:6 And when he had tarried among them more than ten days, he went -down unto Caesarea; and the next day sitting on the judgment seat -commanded Paul to be brought. - -25:7 And when he was come, the Jews which came down from Jerusalem -stood round about, and laid many and grievous complaints against Paul, -which they could not prove. - -25:8 While he answered for himself, Neither against the law of the -Jews, neither against the temple, nor yet against Caesar, have I -offended any thing at all. - -25:9 But Festus, willing to do the Jews a pleasure, answered Paul, and -said, Wilt thou go up to Jerusalem, and there be judged of these -things before me? 25:10 Then said Paul, I stand at Caesar's judgment -seat, where I ought to be judged: to the Jews have I done no wrong, as -thou very well knowest. - -25:11 For if I be an offender, or have committed any thing worthy of -death, I refuse not to die: but if there be none of these things -whereof these accuse me, no man may deliver me unto them. I appeal -unto Caesar. - -25:12 Then Festus, when he had conferred with the council, answered, -Hast thou appealed unto Caesar? unto Caesar shalt thou go. - -25:13 And after certain days king Agrippa and Bernice came unto -Caesarea to salute Festus. - -25:14 And when they had been there many days, Festus declared Paul's -cause unto the king, saying, There is a certain man left in bonds by -Felix: 25:15 About whom, when I was at Jerusalem, the chief priests -and the elders of the Jews informed me, desiring to have judgment -against him. - -25:16 To whom I answered, It is not the manner of the Romans to -deliver any man to die, before that he which is accused have the -accusers face to face, and have licence to answer for himself -concerning the crime laid against him. - -25:17 Therefore, when they were come hither, without any delay on the -morrow I sat on the judgment seat, and commanded the man to be brought -forth. - -25:18 Against whom when the accusers stood up, they brought none -accusation of such things as I supposed: 25:19 But had certain -questions against him of their own superstition, and of one Jesus, -which was dead, whom Paul affirmed to be alive. - -25:20 And because I doubted of such manner of questions, I asked him -whether he would go to Jerusalem, and there be judged of these -matters. - -25:21 But when Paul had appealed to be reserved unto the hearing of -Augustus, I commanded him to be kept till I might send him to Caesar. - -25:22 Then Agrippa said unto Festus, I would also hear the man myself. -To morrow, said he, thou shalt hear him. - -25:23 And on the morrow, when Agrippa was come, and Bernice, with -great pomp, and was entered into the place of hearing, with the chief -captains, and principal men of the city, at Festus' commandment Paul -was brought forth. - -25:24 And Festus said, King Agrippa, and all men which are here -present with us, ye see this man, about whom all the multitude of the -Jews have dealt with me, both at Jerusalem, and also here, crying that -he ought not to live any longer. - -25:25 But when I found that he had committed nothing worthy of death, -and that he himself hath appealed to Augustus, I have determined to -send him. - -25:26 Of whom I have no certain thing to write unto my lord. Wherefore -I have brought him forth before you, and specially before thee, O king -Agrippa, that, after examination had, I might have somewhat to write. - -25:27 For it seemeth to me unreasonable to send a prisoner, and not -withal to signify the crimes laid against him. - -26:1 Then Agrippa said unto Paul, Thou art permitted to speak for -thyself. - -Then Paul stretched forth the hand, and answered for himself: 26:2 I -think myself happy, king Agrippa, because I shall answer for myself -this day before thee touching all the things whereof I am accused of -the Jews: 26:3 Especially because I know thee to be expert in all -customs and questions which are among the Jews: wherefore I beseech -thee to hear me patiently. - -26:4 My manner of life from my youth, which was at the first among -mine own nation at Jerusalem, know all the Jews; 26:5 Which knew me -from the beginning, if they would testify, that after the most -straitest sect of our religion I lived a Pharisee. - -26:6 And now I stand and am judged for the hope of the promise made of -God, unto our fathers: 26:7 Unto which promise our twelve tribes, -instantly serving God day and night, hope to come. For which hope's -sake, king Agrippa, I am accused of the Jews. - -26:8 Why should it be thought a thing incredible with you, that God -should raise the dead? 26:9 I verily thought with myself, that I -ought to do many things contrary to the name of Jesus of Nazareth. - -26:10 Which thing I also did in Jerusalem: and many of the saints did -I shut up in prison, having received authority from the chief priests; -and when they were put to death, I gave my voice against them. - -26:11 And I punished them oft in every synagogue, and compelled them -to blaspheme; and being exceedingly mad against them, I persecuted -them even unto strange cities. - -26:12 Whereupon as I went to Damascus with authority and commission -from the chief priests, 26:13 At midday, O king, I saw in the way a -light from heaven, above the brightness of the sun, shining round -about me and them which journeyed with me. - -26:14 And when we were all fallen to the earth, I heard a voice -speaking unto me, and saying in the Hebrew tongue, Saul, Saul, why -persecutest thou me? it is hard for thee to kick against the pricks. - -26:15 And I said, Who art thou, Lord? And he said, I am Jesus whom -thou persecutest. - -26:16 But rise, and stand upon thy feet: for I have appeared unto thee -for this purpose, to make thee a minister and a witness both of these -things which thou hast seen, and of those things in the which I will -appear unto thee; 26:17 Delivering thee from the people, and from the -Gentiles, unto whom now I send thee, 26:18 To open their eyes, and to -turn them from darkness to light, and from the power of Satan unto -God, that they may receive forgiveness of sins, and inheritance among -them which are sanctified by faith that is in me. - -26:19 Whereupon, O king Agrippa, I was not disobedient unto the -heavenly vision: 26:20 But shewed first unto them of Damascus, and at -Jerusalem, and throughout all the coasts of Judaea, and then to the -Gentiles, that they should repent and turn to God, and do works meet -for repentance. - -26:21 For these causes the Jews caught me in the temple, and went -about to kill me. - -26:22 Having therefore obtained help of God, I continue unto this day, -witnessing both to small and great, saying none other things than -those which the prophets and Moses did say should come: 26:23 That -Christ should suffer, and that he should be the first that should rise -from the dead, and should shew light unto the people, and to the -Gentiles. - -26:24 And as he thus spake for himself, Festus said with a loud voice, -Paul, thou art beside thyself; much learning doth make thee mad. - -26:25 But he said, I am not mad, most noble Festus; but speak forth -the words of truth and soberness. - -26:26 For the king knoweth of these things, before whom also I speak -freely: for I am persuaded that none of these things are hidden from -him; for this thing was not done in a corner. - -26:27 King Agrippa, believest thou the prophets? I know that thou -believest. - -26:28 Then Agrippa said unto Paul, Almost thou persuadest me to be a -Christian. - -26:29 And Paul said, I would to God, that not only thou, but also all -that hear me this day, were both almost, and altogether such as I am, -except these bonds. - -26:30 And when he had thus spoken, the king rose up, and the governor, -and Bernice, and they that sat with them: 26:31 And when they were -gone aside, they talked between themselves, saying, This man doeth -nothing worthy of death or of bonds. - -26:32 Then said Agrippa unto Festus, This man might have been set at -liberty, if he had not appealed unto Caesar. - -27:1 And when it was determined that we should sail into Italy, they -delivered Paul and certain other prisoners unto one named Julius, a -centurion of Augustus' band. - -27:2 And entering into a ship of Adramyttium, we launched, meaning to -sail by the coasts of Asia; one Aristarchus, a Macedonian of -Thessalonica, being with us. - -27:3 And the next day we touched at Sidon. And Julius courteously -entreated Paul, and gave him liberty to go unto his friends to refresh -himself. - -27:4 And when we had launched from thence, we sailed under Cyprus, -because the winds were contrary. - -27:5 And when we had sailed over the sea of Cilicia and Pamphylia, we -came to Myra, a city of Lycia. - -27:6 And there the centurion found a ship of Alexandria sailing into -Italy; and he put us therein. - -27:7 And when we had sailed slowly many days, and scarce were come -over against Cnidus, the wind not suffering us, we sailed under Crete, -over against Salmone; 27:8 And, hardly passing it, came unto a place -which is called The fair havens; nigh whereunto was the city of Lasea. - -27:9 Now when much time was spent, and when sailing was now dangerous, -because the fast was now already past, Paul admonished them, 27:10 And -said unto them, Sirs, I perceive that this voyage will be with hurt -and much damage, not only of the lading and ship, but also of our -lives. - -27:11 Nevertheless the centurion believed the master and the owner of -the ship, more than those things which were spoken by Paul. - -27:12 And because the haven was not commodious to winter in, the more -part advised to depart thence also, if by any means they might attain -to Phenice, and there to winter; which is an haven of Crete, and lieth -toward the south west and north west. - -27:13 And when the south wind blew softly, supposing that they had -obtained their purpose, loosing thence, they sailed close by Crete. - -27:14 But not long after there arose against it a tempestuous wind, -called Euroclydon. - -27:15 And when the ship was caught, and could not bear up into the -wind, we let her drive. - -27:16 And running under a certain island which is called Clauda, we -had much work to come by the boat: 27:17 Which when they had taken up, -they used helps, undergirding the ship; and, fearing lest they should -fall into the quicksands, strake sail, and so were driven. - -27:18 And we being exceedingly tossed with a tempest, the next day -they lightened the ship; 27:19 And the third day we cast out with our -own hands the tackling of the ship. - -27:20 And when neither sun nor stars in many days appeared, and no -small tempest lay on us, all hope that we should be saved was then -taken away. - -27:21 But after long abstinence Paul stood forth in the midst of them, -and said, Sirs, ye should have hearkened unto me, and not have loosed -from Crete, and to have gained this harm and loss. - -27:22 And now I exhort you to be of good cheer: for there shall be no -loss of any man's life among you, but of the ship. - -27:23 For there stood by me this night the angel of God, whose I am, -and whom I serve, 27:24 Saying, Fear not, Paul; thou must be brought -before Caesar: and, lo, God hath given thee all them that sail with -thee. - -27:25 Wherefore, sirs, be of good cheer: for I believe God, that it -shall be even as it was told me. - -27:26 Howbeit we must be cast upon a certain island. - -27:27 But when the fourteenth night was come, as we were driven up and -down in Adria, about midnight the shipmen deemed that they drew near -to some country; 27:28 And sounded, and found it twenty fathoms: and -when they had gone a little further, they sounded again, and found it -fifteen fathoms. - -27:29 Then fearing lest we should have fallen upon rocks, they cast -four anchors out of the stern, and wished for the day. - -27:30 And as the shipmen were about to flee out of the ship, when they -had let down the boat into the sea, under colour as though they would -have cast anchors out of the foreship, 27:31 Paul said to the -centurion and to the soldiers, Except these abide in the ship, ye -cannot be saved. - -27:32 Then the soldiers cut off the ropes of the boat, and let her -fall off. - -27:33 And while the day was coming on, Paul besought them all to take -meat, saying, This day is the fourteenth day that ye have tarried and -continued fasting, having taken nothing. - -27:34 Wherefore I pray you to take some meat: for this is for your -health: for there shall not an hair fall from the head of any of you. - -27:35 And when he had thus spoken, he took bread, and gave thanks to -God in presence of them all: and when he had broken it, he began to -eat. - -27:36 Then were they all of good cheer, and they also took some meat. - -27:37 And we were in all in the ship two hundred threescore and -sixteen souls. - -27:38 And when they had eaten enough, they lightened the ship, and -cast out the wheat into the sea. - -27:39 And when it was day, they knew not the land: but they discovered -a certain creek with a shore, into the which they were minded, if it -were possible, to thrust in the ship. - -27:40 And when they had taken up the anchors, they committed -themselves unto the sea, and loosed the rudder bands, and hoised up -the mainsail to the wind, and made toward shore. - -27:41 And falling into a place where two seas met, they ran the ship -aground; and the forepart stuck fast, and remained unmoveable, but the -hinder part was broken with the violence of the waves. - -27:42 And the soldiers' counsel was to kill the prisoners, lest any of -them should swim out, and escape. - -27:43 But the centurion, willing to save Paul, kept them from their -purpose; and commanded that they which could swim should cast -themselves first into the sea, and get to land: 27:44 And the rest, -some on boards, and some on broken pieces of the ship. - -And so it came to pass, that they escaped all safe to land. - -28:1 And when they were escaped, then they knew that the island was -called Melita. - -28:2 And the barbarous people shewed us no little kindness: for they -kindled a fire, and received us every one, because of the present -rain, and because of the cold. - -28:3 And when Paul had gathered a bundle of sticks, and laid them on -the fire, there came a viper out of the heat, and fastened on his -hand. - -28:4 And when the barbarians saw the venomous beast hang on his hand, -they said among themselves, No doubt this man is a murderer, whom, -though he hath escaped the sea, yet vengeance suffereth not to live. - -28:5 And he shook off the beast into the fire, and felt no harm. - -28:6 Howbeit they looked when he should have swollen, or fallen down -dead suddenly: but after they had looked a great while, and saw no -harm come to him, they changed their minds, and said that he was a -god. - -28:7 In the same quarters were possessions of the chief man of the -island, whose name was Publius; who received us, and lodged us three -days courteously. - -28:8 And it came to pass, that the father of Publius lay sick of a -fever and of a bloody flux: to whom Paul entered in, and prayed, and -laid his hands on him, and healed him. - -28:9 So when this was done, others also, which had diseases in the -island, came, and were healed: 28:10 Who also honoured us with many -honours; and when we departed, they laded us with such things as were -necessary. - -28:11 And after three months we departed in a ship of Alexandria, -which had wintered in the isle, whose sign was Castor and Pollux. - -28:12 And landing at Syracuse, we tarried there three days. - -28:13 And from thence we fetched a compass, and came to Rhegium: and -after one day the south wind blew, and we came the next day to -Puteoli: 28:14 Where we found brethren, and were desired to tarry with -them seven days: and so we went toward Rome. - -28:15 And from thence, when the brethren heard of us, they came to -meet us as far as Appii forum, and The three taverns: whom when Paul -saw, he thanked God, and took courage. - -28:16 And when we came to Rome, the centurion delivered the prisoners -to the captain of the guard: but Paul was suffered to dwell by himself -with a soldier that kept him. - -28:17 And it came to pass, that after three days Paul called the chief -of the Jews together: and when they were come together, he said unto -them, Men and brethren, though I have committed nothing against the -people, or customs of our fathers, yet was I delivered prisoner from -Jerusalem into the hands of the Romans. - -28:18 Who, when they had examined me, would have let me go, because -there was no cause of death in me. - -28:19 But when the Jews spake against it, I was constrained to appeal -unto Caesar; not that I had ought to accuse my nation of. - -28:20 For this cause therefore have I called for you, to see you, and -to speak with you: because that for the hope of Israel I am bound with -this chain. - -28:21 And they said unto him, We neither received letters out of -Judaea concerning thee, neither any of the brethren that came shewed -or spake any harm of thee. - -28:22 But we desire to hear of thee what thou thinkest: for as -concerning this sect, we know that every where it is spoken against. - -28:23 And when they had appointed him a day, there came many to him -into his lodging; to whom he expounded and testified the kingdom of -God, persuading them concerning Jesus, both out of the law of Moses, -and out of the prophets, from morning till evening. - -28:24 And some believed the things which were spoken, and some -believed not. - -28:25 And when they agreed not among themselves, they departed, after -that Paul had spoken one word, Well spake the Holy Ghost by Esaias the -prophet unto our fathers, 28:26 Saying, Go unto this people, and say, -Hearing ye shall hear, and shall not understand; and seeing ye shall -see, and not perceive: 28:27 For the heart of this people is waxed -gross, and their ears are dull of hearing, and their eyes have they -closed; lest they should see with their eyes, and hear with their -ears, and understand with their heart, and should be converted, and I -should heal them. - -28:28 Be it known therefore unto you, that the salvation of God is -sent unto the Gentiles, and that they will hear it. - -28:29 And when he had said these words, the Jews departed, and had -great reasoning among themselves. - -28:30 And Paul dwelt two whole years in his own hired house, and -received all that came in unto him, 28:31 Preaching the kingdom of -God, and teaching those things which concern the Lord Jesus Christ, -with all confidence, no man forbidding him. - - - - -The Epistle of Paul the Apostle to the Romans - - -1:1 Paul, a servant of Jesus Christ, called to be an apostle, -separated unto the gospel of God, 1:2 (Which he had promised afore by -his prophets in the holy scriptures,) 1:3 Concerning his Son Jesus -Christ our Lord, which was made of the seed of David according to the -flesh; 1:4 And declared to be the Son of God with power, according to -the spirit of holiness, by the resurrection from the dead: 1:5 By whom -we have received grace and apostleship, for obedience to the faith -among all nations, for his name: 1:6 Among whom are ye also the called -of Jesus Christ: 1:7 To all that be in Rome, beloved of God, called to -be saints: Grace to you and peace from God our Father, and the Lord -Jesus Christ. - -1:8 First, I thank my God through Jesus Christ for you all, that your -faith is spoken of throughout the whole world. - -1:9 For God is my witness, whom I serve with my spirit in the gospel -of his Son, that without ceasing I make mention of you always in my -prayers; 1:10 Making request, if by any means now at length I might -have a prosperous journey by the will of God to come unto you. - -1:11 For I long to see you, that I may impart unto you some spiritual -gift, to the end ye may be established; 1:12 That is, that I may be -comforted together with you by the mutual faith both of you and me. - -1:13 Now I would not have you ignorant, brethren, that oftentimes I -purposed to come unto you, (but was let hitherto,) that I might have -some fruit among you also, even as among other Gentiles. - -1:14 I am debtor both to the Greeks, and to the Barbarians; both to -the wise, and to the unwise. - -1:15 So, as much as in me is, I am ready to preach the gospel to you -that are at Rome also. - -1:16 For I am not ashamed of the gospel of Christ: for it is the power -of God unto salvation to every one that believeth; to the Jew first, -and also to the Greek. - -1:17 For therein is the righteousness of God revealed from faith to -faith: as it is written, The just shall live by faith. - -1:18 For the wrath of God is revealed from heaven against all -ungodliness and unrighteousness of men, who hold the truth in -unrighteousness; 1:19 Because that which may be known of God is -manifest in them; for God hath shewed it unto them. - -1:20 For the invisible things of him from the creation of the world -are clearly seen, being understood by the things that are made, even -his eternal power and Godhead; so that they are without excuse: 1:21 -Because that, when they knew God, they glorified him not as God, -neither were thankful; but became vain in their imaginations, and -their foolish heart was darkened. - -1:22 Professing themselves to be wise, they became fools, 1:23 And -changed the glory of the uncorruptible God into an image made like to -corruptible man, and to birds, and fourfooted beasts, and creeping -things. - -1:24 Wherefore God also gave them up to uncleanness through the lusts -of their own hearts, to dishonour their own bodies between themselves: -1:25 Who changed the truth of God into a lie, and worshipped and -served the creature more than the Creator, who is blessed for ever. -Amen. - -1:26 For this cause God gave them up unto vile affections: for even -their women did change the natural use into that which is against -nature: 1:27 And likewise also the men, leaving the natural use of the -woman, burned in their lust one toward another; men with men working -that which is unseemly, and receiving in themselves that recompence of -their error which was meet. - -1:28 And even as they did not like to retain God in their knowledge, -God gave them over to a reprobate mind, to do those things which are -not convenient; 1:29 Being filled with all unrighteousness, -fornication, wickedness, covetousness, maliciousness; full of envy, -murder, debate, deceit, malignity; whisperers, 1:30 Backbiters, haters -of God, despiteful, proud, boasters, inventors of evil things, -disobedient to parents, 1:31 Without understanding, covenantbreakers, -without natural affection, implacable, unmerciful: 1:32 Who knowing -the judgment of God, that they which commit such things are worthy of -death, not only do the same, but have pleasure in them that do them. - -2:1 Therefore thou art inexcusable, O man, whosoever thou art that -judgest: for wherein thou judgest another, thou condemnest thyself; -for thou that judgest doest the same things. - -2:2 But we are sure that the judgment of God is according to truth -against them which commit such things. - -2:3 And thinkest thou this, O man, that judgest them which do such -things, and doest the same, that thou shalt escape the judgment of -God? 2:4 Or despisest thou the riches of his goodness and forbearance -and longsuffering; not knowing that the goodness of God leadeth thee -to repentance? 2:5 But after thy hardness and impenitent heart -treasurest up unto thyself wrath against the day of wrath and -revelation of the righteous judgment of God; 2:6 Who will render to -every man according to his deeds: 2:7 To them who by patient -continuance in well doing seek for glory and honour and immortality, -eternal life: 2:8 But unto them that are contentious, and do not obey -the truth, but obey unrighteousness, indignation and wrath, 2:9 -Tribulation and anguish, upon every soul of man that doeth evil, of -the Jew first, and also of the Gentile; 2:10 But glory, honour, and -peace, to every man that worketh good, to the Jew first, and also to -the Gentile: 2:11 For there is no respect of persons with God. - -2:12 For as many as have sinned without law shall also perish without -law: and as many as have sinned in the law shall be judged by the law; -2:13 (For not the hearers of the law are just before God, but the -doers of the law shall be justified. - -2:14 For when the Gentiles, which have not the law, do by nature the -things contained in the law, these, having not the law, are a law unto -themselves: 2:15 Which shew the work of the law written in their -hearts, their conscience also bearing witness, and their thoughts the -mean while accusing or else excusing one another;) 2:16 In the day -when God shall judge the secrets of men by Jesus Christ according to -my gospel. - -2:17 Behold, thou art called a Jew, and restest in the law, and makest -thy boast of God, 2:18 And knowest his will, and approvest the things -that are more excellent, being instructed out of the law; 2:19 And art -confident that thou thyself art a guide of the blind, a light of them -which are in darkness, 2:20 An instructor of the foolish, a teacher of -babes, which hast the form of knowledge and of the truth in the law. - -2:21 Thou therefore which teachest another, teachest thou not thyself? -thou that preachest a man should not steal, dost thou steal? 2:22 -Thou that sayest a man should not commit adultery, dost thou commit -adultery? thou that abhorrest idols, dost thou commit sacrilege? 2:23 -Thou that makest thy boast of the law, through breaking the law -dishonourest thou God? 2:24 For the name of God is blasphemed among -the Gentiles through you, as it is written. - -2:25 For circumcision verily profiteth, if thou keep the law: but if -thou be a breaker of the law, thy circumcision is made uncircumcision. - -2:26 Therefore if the uncircumcision keep the righteousness of the -law, shall not his uncircumcision be counted for circumcision? 2:27 -And shall not uncircumcision which is by nature, if it fulfil the law, -judge thee, who by the letter and circumcision dost transgress the -law? 2:28 For he is not a Jew, which is one outwardly; neither is -that circumcision, which is outward in the flesh: 2:29 But he is a -Jew, which is one inwardly; and circumcision is that of the heart, in -the spirit, and not in the letter; whose praise is not of men, but of -God. - -3:1 What advantage then hath the Jew? or what profit is there of -circumcision? 3:2 Much every way: chiefly, because that unto them -were committed the oracles of God. - -3:3 For what if some did not believe? shall their unbelief make the -faith of God without effect? 3:4 God forbid: yea, let God be true, -but every man a liar; as it is written, That thou mightest be -justified in thy sayings, and mightest overcome when thou art judged. - -3:5 But if our unrighteousness commend the righteousness of God, what -shall we say? Is God unrighteous who taketh vengeance? (I speak as a -man) 3:6 God forbid: for then how shall God judge the world? 3:7 For -if the truth of God hath more abounded through my lie unto his glory; -why yet am I also judged as a sinner? 3:8 And not rather, (as we be -slanderously reported, and as some affirm that we say,) Let us do -evil, that good may come? whose damnation is just. - -3:9 What then? are we better than they? No, in no wise: for we have -before proved both Jews and Gentiles, that they are all under sin; -3:10 As it is written, There is none righteous, no, not one: 3:11 -There is none that understandeth, there is none that seeketh after -God. - -3:12 They are all gone out of the way, they are together become -unprofitable; there is none that doeth good, no, not one. - -3:13 Their throat is an open sepulchre; with their tongues they have -used deceit; the poison of asps is under their lips: 3:14 Whose mouth -is full of cursing and bitterness: 3:15 Their feet are swift to shed -blood: 3:16 Destruction and misery are in their ways: 3:17 And the way -of peace have they not known: 3:18 There is no fear of God before -their eyes. - -3:19 Now we know that what things soever the law saith, it saith to -them who are under the law: that every mouth may be stopped, and all -the world may become guilty before God. - -3:20 Therefore by the deeds of the law there shall no flesh be -justified in his sight: for by the law is the knowledge of sin. - -3:21 But now the righteousness of God without the law is manifested, -being witnessed by the law and the prophets; 3:22 Even the -righteousness of God which is by faith of Jesus Christ unto all and -upon all them that believe: for there is no difference: 3:23 For all -have sinned, and come short of the glory of God; 3:24 Being justified -freely by his grace through the redemption that is in Christ Jesus: -3:25 Whom God hath set forth to be a propitiation through faith in his -blood, to declare his righteousness for the remission of sins that are -past, through the forbearance of God; 3:26 To declare, I say, at this -time his righteousness: that he might be just, and the justifier of -him which believeth in Jesus. - -3:27 Where is boasting then? It is excluded. By what law? of works? -Nay: but by the law of faith. - -3:28 Therefore we conclude that a man is justified by faith without -the deeds of the law. - -3:29 Is he the God of the Jews only? is he not also of the Gentiles? -Yes, of the Gentiles also: 3:30 Seeing it is one God, which shall -justify the circumcision by faith, and uncircumcision through faith. - -3:31 Do we then make void the law through faith? God forbid: yea, we -establish the law. - -4:1 What shall we say then that Abraham our father, as pertaining to -the flesh, hath found? 4:2 For if Abraham were justified by works, he -hath whereof to glory; but not before God. - -4:3 For what saith the scripture? Abraham believed God, and it was -counted unto him for righteousness. - -4:4 Now to him that worketh is the reward not reckoned of grace, but -of debt. - -4:5 But to him that worketh not, but believeth on him that justifieth -the ungodly, his faith is counted for righteousness. - -4:6 Even as David also describeth the blessedness of the man, unto -whom God imputeth righteousness without works, 4:7 Saying, Blessed are -they whose iniquities are forgiven, and whose sins are covered. - -4:8 Blessed is the man to whom the Lord will not impute sin. - -4:9 Cometh this blessedness then upon the circumcision only, or upon -the uncircumcision also? for we say that faith was reckoned to Abraham -for righteousness. - -4:10 How was it then reckoned? when he was in circumcision, or in -uncircumcision? Not in circumcision, but in uncircumcision. - -4:11 And he received the sign of circumcision, a seal of the -righteousness of the faith which he had yet being uncircumcised: that -he might be the father of all them that believe, though they be not -circumcised; that righteousness might be imputed unto them also: 4:12 -And the father of circumcision to them who are not of the circumcision -only, but who also walk in the steps of that faith of our father -Abraham, which he had being yet uncircumcised. - -4:13 For the promise, that he should be the heir of the world, was not -to Abraham, or to his seed, through the law, but through the -righteousness of faith. - -4:14 For if they which are of the law be heirs, faith is made void, -and the promise made of none effect: 4:15 Because the law worketh -wrath: for where no law is, there is no transgression. - -4:16 Therefore it is of faith, that it might be by grace; to the end -the promise might be sure to all the seed; not to that only which is -of the law, but to that also which is of the faith of Abraham; who is -the father of us all, 4:17 (As it is written, I have made thee a -father of many nations,) before him whom he believed, even God, who -quickeneth the dead, and calleth those things which be not as though -they were. - -4:18 Who against hope believed in hope, that he might become the -father of many nations, according to that which was spoken, So shall -thy seed be. - -4:19 And being not weak in faith, he considered not his own body now -dead, when he was about an hundred years old, neither yet the deadness -of Sarah's womb: 4:20 He staggered not at the promise of God through -unbelief; but was strong in faith, giving glory to God; 4:21 And being -fully persuaded that, what he had promised, he was able also to -perform. - -4:22 And therefore it was imputed to him for righteousness. - -4:23 Now it was not written for his sake alone, that it was imputed to -him; 4:24 But for us also, to whom it shall be imputed, if we believe -on him that raised up Jesus our Lord from the dead; 4:25 Who was -delivered for our offences, and was raised again for our -justification. - -5:1 Therefore being justified by faith, we have peace with God through -our Lord Jesus Christ: 5:2 By whom also we have access by faith into -this grace wherein we stand, and rejoice in hope of the glory of God. - -5:3 And not only so, but we glory in tribulations also: knowing that -tribulation worketh patience; 5:4 And patience, experience; and -experience, hope: 5:5 And hope maketh not ashamed; because the love of -God is shed abroad in our hearts by the Holy Ghost which is given unto -us. - -5:6 For when we were yet without strength, in due time Christ died for -the ungodly. - -5:7 For scarcely for a righteous man will one die: yet peradventure -for a good man some would even dare to die. - -5:8 But God commendeth his love toward us, in that, while we were yet -sinners, Christ died for us. - -5:9 Much more then, being now justified by his blood, we shall be -saved from wrath through him. - -5:10 For if, when we were enemies, we were reconciled to God by the -death of his Son, much more, being reconciled, we shall be saved by -his life. - -5:11 And not only so, but we also joy in God through our Lord Jesus -Christ, by whom we have now received the atonement. - -5:12 Wherefore, as by one man sin entered into the world, and death by -sin; and so death passed upon all men, for that all have sinned: 5:13 -(For until the law sin was in the world: but sin is not imputed when -there is no law. - -5:14 Nevertheless death reigned from Adam to Moses, even over them -that had not sinned after the similitude of Adam's transgression, who -is the figure of him that was to come. - -5:15 But not as the offence, so also is the free gift. For if through -the offence of one many be dead, much more the grace of God, and the -gift by grace, which is by one man, Jesus Christ, hath abounded unto -many. - -5:16 And not as it was by one that sinned, so is the gift: for the -judgment was by one to condemnation, but the free gift is of many -offences unto justification. - -5:17 For if by one man's offence death reigned by one; much more they -which receive abundance of grace and of the gift of righteousness -shall reign in life by one, Jesus Christ.) 5:18 Therefore as by the -offence of one judgment came upon all men to condemnation; even so by -the righteousness of one the free gift came upon all men unto -justification of life. - -5:19 For as by one man's disobedience many were made sinners, so by -the obedience of one shall many be made righteous. - -5:20 Moreover the law entered, that the offence might abound. But -where sin abounded, grace did much more abound: 5:21 That as sin hath -reigned unto death, even so might grace reign through righteousness -unto eternal life by Jesus Christ our Lord. - -6:1 What shall we say then? Shall we continue in sin, that grace may -abound? 6:2 God forbid. How shall we, that are dead to sin, live any -longer therein? 6:3 Know ye not, that so many of us as were baptized -into Jesus Christ were baptized into his death? 6:4 Therefore we are -buried with him by baptism into death: that like as Christ was raised -up from the dead by the glory of the Father, even so we also should -walk in newness of life. - -6:5 For if we have been planted together in the likeness of his death, -we shall be also in the likeness of his resurrection: 6:6 Knowing -this, that our old man is crucified with him, that the body of sin -might be destroyed, that henceforth we should not serve sin. - -6:7 For he that is dead is freed from sin. - -6:8 Now if we be dead with Christ, we believe that we shall also live -with him: 6:9 Knowing that Christ being raised from the dead dieth no -more; death hath no more dominion over him. - -6:10 For in that he died, he died unto sin once: but in that he -liveth, he liveth unto God. - -6:11 Likewise reckon ye also yourselves to be dead indeed unto sin, -but alive unto God through Jesus Christ our Lord. - -6:12 Let not sin therefore reign in your mortal body, that ye should -obey it in the lusts thereof. - -6:13 Neither yield ye your members as instruments of unrighteousness -unto sin: but yield yourselves unto God, as those that are alive from -the dead, and your members as instruments of righteousness unto God. - -6:14 For sin shall not have dominion over you: for ye are not under -the law, but under grace. - -6:15 What then? shall we sin, because we are not under the law, but -under grace? God forbid. - -6:16 Know ye not, that to whom ye yield yourselves servants to obey, -his servants ye are to whom ye obey; whether of sin unto death, or of -obedience unto righteousness? 6:17 But God be thanked, that ye were -the servants of sin, but ye have obeyed from the heart that form of -doctrine which was delivered you. - -6:18 Being then made free from sin, ye became the servants of -righteousness. - -6:19 I speak after the manner of men because of the infirmity of your -flesh: for as ye have yielded your members servants to uncleanness and -to iniquity unto iniquity; even so now yield your members servants to -righteousness unto holiness. - -6:20 For when ye were the servants of sin, ye were free from -righteousness. - -6:21 What fruit had ye then in those things whereof ye are now -ashamed? for the end of those things is death. - -6:22 But now being made free from sin, and become servants to God, ye -have your fruit unto holiness, and the end everlasting life. - -6:23 For the wages of sin is death; but the gift of God is eternal -life through Jesus Christ our Lord. - -7:1 Know ye not, brethren, (for I speak to them that know the law,) -how that the law hath dominion over a man as long as he liveth? 7:2 -For the woman which hath an husband is bound by the law to her husband -so long as he liveth; but if the husband be dead, she is loosed from -the law of her husband. - -7:3 So then if, while her husband liveth, she be married to another -man, she shall be called an adulteress: but if her husband be dead, -she is free from that law; so that she is no adulteress, though she be -married to another man. - -7:4 Wherefore, my brethren, ye also are become dead to the law by the -body of Christ; that ye should be married to another, even to him who -is raised from the dead, that we should bring forth fruit unto God. - -7:5 For when we were in the flesh, the motions of sins, which were by -the law, did work in our members to bring forth fruit unto death. - -7:6 But now we are delivered from the law, that being dead wherein we -were held; that we should serve in newness of spirit, and not in the -oldness of the letter. - -7:7 What shall we say then? Is the law sin? God forbid. Nay, I had not -known sin, but by the law: for I had not known lust, except the law -had said, Thou shalt not covet. - -7:8 But sin, taking occasion by the commandment, wrought in me all -manner of concupiscence. For without the law sin was dead. - -7:9 For I was alive without the law once: but when the commandment -came, sin revived, and I died. - -7:10 And the commandment, which was ordained to life, I found to be -unto death. - -7:11 For sin, taking occasion by the commandment, deceived me, and by -it slew me. - -7:12 Wherefore the law is holy, and the commandment holy, and just, -and good. - -7:13 Was then that which is good made death unto me? God forbid. But -sin, that it might appear sin, working death in me by that which is -good; that sin by the commandment might become exceeding sinful. - -7:14 For we know that the law is spiritual: but I am carnal, sold -under sin. - -7:15 For that which I do I allow not: for what I would, that do I not; -but what I hate, that do I. - -7:16 If then I do that which I would not, I consent unto the law that -it is good. - -7:17 Now then it is no more I that do it, but sin that dwelleth in me. - -7:18 For I know that in me (that is, in my flesh,) dwelleth no good -thing: for to will is present with me; but how to perform that which -is good I find not. - -7:19 For the good that I would I do not: but the evil which I would -not, that I do. - -7:20 Now if I do that I would not, it is no more I that do it, but sin -that dwelleth in me. - -7:21 I find then a law, that, when I would do good, evil is present -with me. - -7:22 For I delight in the law of God after the inward man: 7:23 But I -see another law in my members, warring against the law of my mind, and -bringing me into captivity to the law of sin which is in my members. - -7:24 O wretched man that I am! who shall deliver me from the body of -this death? 7:25 I thank God through Jesus Christ our Lord. So then -with the mind I myself serve the law of God; but with the flesh the -law of sin. - -8:1 There is therefore now no condemnation to them which are in Christ -Jesus, who walk not after the flesh, but after the Spirit. - -8:2 For the law of the Spirit of life in Christ Jesus hath made me -free from the law of sin and death. - -8:3 For what the law could not do, in that it was weak through the -flesh, God sending his own Son in the likeness of sinful flesh, and -for sin, condemned sin in the flesh: 8:4 That the righteousness of the -law might be fulfilled in us, who walk not after the flesh, but after -the Spirit. - -8:5 For they that are after the flesh do mind the things of the flesh; -but they that are after the Spirit the things of the Spirit. - -8:6 For to be carnally minded is death; but to be spiritually minded -is life and peace. - -8:7 Because the carnal mind is enmity against God: for it is not -subject to the law of God, neither indeed can be. - -8:8 So then they that are in the flesh cannot please God. - -8:9 But ye are not in the flesh, but in the Spirit, if so be that the -Spirit of God dwell in you. Now if any man have not the Spirit of -Christ, he is none of his. - -8:10 And if Christ be in you, the body is dead because of sin; but the -Spirit is life because of righteousness. - -8:11 But if the Spirit of him that raised up Jesus from the dead dwell -in you, he that raised up Christ from the dead shall also quicken your -mortal bodies by his Spirit that dwelleth in you. - -8:12 Therefore, brethren, we are debtors, not to the flesh, to live -after the flesh. - -8:13 For if ye live after the flesh, ye shall die: but if ye through -the Spirit do mortify the deeds of the body, ye shall live. - -8:14 For as many as are led by the Spirit of God, they are the sons of -God. - -8:15 For ye have not received the spirit of bondage again to fear; but -ye have received the Spirit of adoption, whereby we cry, Abba, Father. - -8:16 The Spirit itself beareth witness with our spirit, that we are -the children of God: 8:17 And if children, then heirs; heirs of God, -and joint-heirs with Christ; if so be that we suffer with him, that we -may be also glorified together. - -8:18 For I reckon that the sufferings of this present time are not -worthy to be compared with the glory which shall be revealed in us. - -8:19 For the earnest expectation of the creature waiteth for the -manifestation of the sons of God. - -8:20 For the creature was made subject to vanity, not willingly, but -by reason of him who hath subjected the same in hope, 8:21 Because the -creature itself also shall be delivered from the bondage of corruption -into the glorious liberty of the children of God. - -8:22 For we know that the whole creation groaneth and travaileth in -pain together until now. - -8:23 And not only they, but ourselves also, which have the firstfruits -of the Spirit, even we ourselves groan within ourselves, waiting for -the adoption, to wit, the redemption of our body. - -8:24 For we are saved by hope: but hope that is seen is not hope: for -what a man seeth, why doth he yet hope for? 8:25 But if we hope for -that we see not, then do we with patience wait for it. - -8:26 Likewise the Spirit also helpeth our infirmities: for we know not -what we should pray for as we ought: but the Spirit itself maketh -intercession for us with groanings which cannot be uttered. - -8:27 And he that searcheth the hearts knoweth what is the mind of the -Spirit, because he maketh intercession for the saints according to the -will of God. - -8:28 And we know that all things work together for good to them that -love God, to them who are the called according to his purpose. - -8:29 For whom he did foreknow, he also did predestinate to be -conformed to the image of his Son, that he might be the firstborn -among many brethren. - -8:30 Moreover whom he did predestinate, them he also called: and whom -he called, them he also justified: and whom he justified, them he also -glorified. - -8:31 What shall we then say to these things? If God be for us, who can -be against us? 8:32 He that spared not his own Son, but delivered him -up for us all, how shall he not with him also freely give us all -things? 8:33 Who shall lay any thing to the charge of God's elect? It -is God that justifieth. - -8:34 Who is he that condemneth? It is Christ that died, yea rather, -that is risen again, who is even at the right hand of God, who also -maketh intercession for us. - -8:35 Who shall separate us from the love of Christ? shall tribulation, -or distress, or persecution, or famine, or nakedness, or peril, or -sword? 8:36 As it is written, For thy sake we are killed all the day -long; we are accounted as sheep for the slaughter. - -8:37 Nay, in all these things we are more than conquerors through him -that loved us. - -8:38 For I am persuaded, that neither death, nor life, nor angels, nor -principalities, nor powers, nor things present, nor things to come, -8:39 Nor height, nor depth, nor any other creature, shall be able to -separate us from the love of God, which is in Christ Jesus our Lord. - -9:1 I say the truth in Christ, I lie not, my conscience also bearing -me witness in the Holy Ghost, 9:2 That I have great heaviness and -continual sorrow in my heart. - -9:3 For I could wish that myself were accursed from Christ for my -brethren, my kinsmen according to the flesh: 9:4 Who are Israelites; -to whom pertaineth the adoption, and the glory, and the covenants, and -the giving of the law, and the service of God, and the promises; 9:5 -Whose are the fathers, and of whom as concerning the flesh Christ -came, who is over all, God blessed for ever. Amen. - -9:6 Not as though the word of God hath taken none effect. For they are -not all Israel, which are of Israel: 9:7 Neither, because they are the -seed of Abraham, are they all children: but, In Isaac shall thy seed -be called. - -9:8 That is, They which are the children of the flesh, these are not -the children of God: but the children of the promise are counted for -the seed. - -9:9 For this is the word of promise, At this time will I come, and -Sarah shall have a son. - -9:10 And not only this; but when Rebecca also had conceived by one, -even by our father Isaac; 9:11 (For the children being not yet born, -neither having done any good or evil, that the purpose of God -according to election might stand, not of works, but of him that -calleth;) 9:12 It was said unto her, The elder shall serve the -younger. - -9:13 As it is written, Jacob have I loved, but Esau have I hated. - -9:14 What shall we say then? Is there unrighteousness with God? God -forbid. - -9:15 For he saith to Moses, I will have mercy on whom I will have -mercy, and I will have compassion on whom I will have compassion. - -9:16 So then it is not of him that willeth, nor of him that runneth, -but of God that sheweth mercy. - -9:17 For the scripture saith unto Pharaoh, Even for this same purpose -have I raised thee up, that I might shew my power in thee, and that my -name might be declared throughout all the earth. - -9:18 Therefore hath he mercy on whom he will have mercy, and whom he -will he hardeneth. - -9:19 Thou wilt say then unto me, Why doth he yet find fault? For who -hath resisted his will? 9:20 Nay but, O man, who art thou that -repliest against God? Shall the thing formed say to him that formed -it, Why hast thou made me thus? 9:21 Hath not the potter power over -the clay, of the same lump to make one vessel unto honour, and another -unto dishonour? 9:22 What if God, willing to shew his wrath, and to -make his power known, endured with much longsuffering the vessels of -wrath fitted to destruction: 9:23 And that he might make known the -riches of his glory on the vessels of mercy, which he had afore -prepared unto glory, 9:24 Even us, whom he hath called, not of the -Jews only, but also of the Gentiles? 9:25 As he saith also in Osee, I -will call them my people, which were not my people; and her beloved, -which was not beloved. - -9:26 And it shall come to pass, that in the place where it was said -unto them, Ye are not my people; there shall they be called the -children of the living God. - -9:27 Esaias also crieth concerning Israel, Though the number of the -children of Israel be as the sand of the sea, a remnant shall be -saved: 9:28 For he will finish the work, and cut it short in -righteousness: because a short work will the Lord make upon the earth. - -9:29 And as Esaias said before, Except the Lord of Sabaoth had left us -a seed, we had been as Sodoma, and been made like unto Gomorrha. - -9:30 What shall we say then? That the Gentiles, which followed not -after righteousness, have attained to righteousness, even the -righteousness which is of faith. - -9:31 But Israel, which followed after the law of righteousness, hath -not attained to the law of righteousness. - -9:32 Wherefore? Because they sought it not by faith, but as it were by -the works of the law. For they stumbled at that stumblingstone; 9:33 -As it is written, Behold, I lay in Sion a stumblingstone and rock of -offence: and whosoever believeth on him shall not be ashamed. - -10:1 Brethren, my heart's desire and prayer to God for Israel is, that -they might be saved. - -10:2 For I bear them record that they have a zeal of God, but not -according to knowledge. - -10:3 For they being ignorant of God's righteousness, and going about -to establish their own righteousness, have not submitted themselves -unto the righteousness of God. - -10:4 For Christ is the end of the law for righteousness to every one -that believeth. - -10:5 For Moses describeth the righteousness which is of the law, That -the man which doeth those things shall live by them. - -10:6 But the righteousness which is of faith speaketh on this wise, -Say not in thine heart, Who shall ascend into heaven? (that is, to -bring Christ down from above:) 10:7 Or, Who shall descend into the -deep? (that is, to bring up Christ again from the dead.) 10:8 But -what saith it? The word is nigh thee, even in thy mouth, and in thy -heart: that is, the word of faith, which we preach; 10:9 That if thou -shalt confess with thy mouth the Lord Jesus, and shalt believe in -thine heart that God hath raised him from the dead, thou shalt be -saved. - -10:10 For with the heart man believeth unto righteousness; and with -the mouth confession is made unto salvation. - -10:11 For the scripture saith, Whosoever believeth on him shall not be -ashamed. - -10:12 For there is no difference between the Jew and the Greek: for -the same Lord over all is rich unto all that call upon him. - -10:13 For whosoever shall call upon the name of the Lord shall be -saved. - -10:14 How then shall they call on him in whom they have not believed? -and how shall they believe in him of whom they have not heard? and how -shall they hear without a preacher? 10:15 And how shall they preach, -except they be sent? as it is written, How beautiful are the feet of -them that preach the gospel of peace, and bring glad tidings of good -things! 10:16 But they have not all obeyed the gospel. For Esaias -saith, Lord, who hath believed our report? 10:17 So then faith cometh -by hearing, and hearing by the word of God. - -10:18 But I say, Have they not heard? Yes verily, their sound went -into all the earth, and their words unto the ends of the world. - -10:19 But I say, Did not Israel know? First Moses saith, I will -provoke you to jealousy by them that are no people, and by a foolish -nation I will anger you. - -10:20 But Esaias is very bold, and saith, I was found of them that -sought me not; I was made manifest unto them that asked not after me. - -10:21 But to Israel he saith, All day long I have stretched forth my -hands unto a disobedient and gainsaying people. - -11:1 I say then, Hath God cast away his people? God forbid. For I also -am an Israelite, of the seed of Abraham, of the tribe of Benjamin. - -11:2 God hath not cast away his people which he foreknew. Wot ye not -what the scripture saith of Elias? how he maketh intercession to God -against Israel saying, 11:3 Lord, they have killed thy prophets, and -digged down thine altars; and I am left alone, and they seek my life. - -11:4 But what saith the answer of God unto him? I have reserved to -myself seven thousand men, who have not bowed the knee to the image of -Baal. - -11:5 Even so then at this present time also there is a remnant -according to the election of grace. - -11:6 And if by grace, then is it no more of works: otherwise grace is -no more grace. But if it be of works, then it is no more grace: -otherwise work is no more work. - -11:7 What then? Israel hath not obtained that which he seeketh for; -but the election hath obtained it, and the rest were blinded. - -11:8 (According as it is written, God hath given them the spirit of -slumber, eyes that they should not see, and ears that they should not -hear;) unto this day. - -11:9 And David saith, Let their table be made a snare, and a trap, and -a stumblingblock, and a recompence unto them: 11:10 Let their eyes be -darkened, that they may not see, and bow down their back alway. - -11:11 I say then, Have they stumbled that they should fall? God -forbid: but rather through their fall salvation is come unto the -Gentiles, for to provoke them to jealousy. - -11:12 Now if the fall of them be the riches of the world, and the -diminishing of them the riches of the Gentiles; how much more their -fulness? 11:13 For I speak to you Gentiles, inasmuch as I am the -apostle of the Gentiles, I magnify mine office: 11:14 If by any means -I may provoke to emulation them which are my flesh, and might save -some of them. - -11:15 For if the casting away of them be the reconciling of the world, -what shall the receiving of them be, but life from the dead? 11:16 -For if the firstfruit be holy, the lump is also holy: and if the root -be holy, so are the branches. - -11:17 And if some of the branches be broken off, and thou, being a -wild olive tree, wert graffed in among them, and with them partakest -of the root and fatness of the olive tree; 11:18 Boast not against the -branches. But if thou boast, thou bearest not the root, but the root -thee. - -11:19 Thou wilt say then, The branches were broken off, that I might -be graffed in. - -11:20 Well; because of unbelief they were broken off, and thou -standest by faith. Be not highminded, but fear: 11:21 For if God -spared not the natural branches, take heed lest he also spare not -thee. - -11:22 Behold therefore the goodness and severity of God: on them which -fell, severity; but toward thee, goodness, if thou continue in his -goodness: otherwise thou also shalt be cut off. - -11:23 And they also, if they abide not still in unbelief, shall be -graffed in: for God is able to graff them in again. - -11:24 For if thou wert cut out of the olive tree which is wild by -nature, and wert graffed contrary to nature into a good olive tree: -how much more shall these, which be the natural branches, be graffed -into their own olive tree? 11:25 For I would not, brethren, that ye -should be ignorant of this mystery, lest ye should be wise in your own -conceits; that blindness in part is happened to Israel, until the -fulness of the Gentiles be come in. - -11:26 And so all Israel shall be saved: as it is written, There shall -come out of Sion the Deliverer, and shall turn away ungodliness from -Jacob: 11:27 For this is my covenant unto them, when I shall take away -their sins. - -11:28 As concerning the gospel, they are enemies for your sakes: but -as touching the election, they are beloved for the father's sakes. - -11:29 For the gifts and calling of God are without repentance. - -11:30 For as ye in times past have not believed God, yet have now -obtained mercy through their unbelief: 11:31 Even so have these also -now not believed, that through your mercy they also may obtain mercy. - -11:32 For God hath concluded them all in unbelief, that he might have -mercy upon all. - -11:33 O the depth of the riches both of the wisdom and knowledge of -God! how unsearchable are his judgments, and his ways past finding -out! 11:34 For who hath known the mind of the Lord? or who hath been -his counsellor? 11:35 Or who hath first given to him, and it shall be -recompensed unto him again? 11:36 For of him, and through him, and to -him, are all things: to whom be glory for ever. Amen. - -12:1 I beseech you therefore, brethren, by the mercies of God, that ye -present your bodies a living sacrifice, holy, acceptable unto God, -which is your reasonable service. - -12:2 And be not conformed to this world: but be ye transformed by the -renewing of your mind, that ye may prove what is that good, and -acceptable, and perfect, will of God. - -12:3 For I say, through the grace given unto me, to every man that is -among you, not to think of himself more highly than he ought to think; -but to think soberly, according as God hath dealt to every man the -measure of faith. - -12:4 For as we have many members in one body, and all members have not -the same office: 12:5 So we, being many, are one body in Christ, and -every one members one of another. - -12:6 Having then gifts differing according to the grace that is given -to us, whether prophecy, let us prophesy according to the proportion -of faith; 12:7 Or ministry, let us wait on our ministering: or he that -teacheth, on teaching; 12:8 Or he that exhorteth, on exhortation: he -that giveth, let him do it with simplicity; he that ruleth, with -diligence; he that sheweth mercy, with cheerfulness. - -12:9 Let love be without dissimulation. Abhor that which is evil; -cleave to that which is good. - -12:10 Be kindly affectioned one to another with brotherly love; in -honour preferring one another; 12:11 Not slothful in business; fervent -in spirit; serving the Lord; 12:12 Rejoicing in hope; patient in -tribulation; continuing instant in prayer; 12:13 Distributing to the -necessity of saints; given to hospitality. - -12:14 Bless them which persecute you: bless, and curse not. - -12:15 Rejoice with them that do rejoice, and weep with them that weep. - -12:16 Be of the same mind one toward another. Mind not high things, -but condescend to men of low estate. Be not wise in your own conceits. - -12:17 Recompense to no man evil for evil. Provide things honest in the -sight of all men. - -12:18 If it be possible, as much as lieth in you, live peaceably with -all men. - -12:19 Dearly beloved, avenge not yourselves, but rather give place -unto wrath: for it is written, Vengeance is mine; I will repay, saith -the Lord. - -12:20 Therefore if thine enemy hunger, feed him; if he thirst, give -him drink: for in so doing thou shalt heap coals of fire on his head. - -12:21 Be not overcome of evil, but overcome evil with good. - -13:1 Let every soul be subject unto the higher powers. For there is no -power but of God: the powers that be are ordained of God. - -13:2 Whosoever therefore resisteth the power, resisteth the ordinance -of God: and they that resist shall receive to themselves damnation. - -13:3 For rulers are not a terror to good works, but to the evil. Wilt -thou then not be afraid of the power? do that which is good, and thou -shalt have praise of the same: 13:4 For he is the minister of God to -thee for good. But if thou do that which is evil, be afraid; for he -beareth not the sword in vain: for he is the minister of God, a -revenger to execute wrath upon him that doeth evil. - -13:5 Wherefore ye must needs be subject, not only for wrath, but also -for conscience sake. - -13:6 For for this cause pay ye tribute also: for they are God's -ministers, attending continually upon this very thing. - -13:7 Render therefore to all their dues: tribute to whom tribute is -due; custom to whom custom; fear to whom fear; honour to whom honour. - -13:8 Owe no man any thing, but to love one another: for he that loveth -another hath fulfilled the law. - -13:9 For this, Thou shalt not commit adultery, Thou shalt not kill, -Thou shalt not steal, Thou shalt not bear false witness, Thou shalt -not covet; and if there be any other commandment, it is briefly -comprehended in this saying, namely, Thou shalt love thy neighbour as -thyself. - -13:10 Love worketh no ill to his neighbour: therefore love is the -fulfilling of the law. - -13:11 And that, knowing the time, that now it is high time to awake -out of sleep: for now is our salvation nearer than when we believed. - -13:12 The night is far spent, the day is at hand: let us therefore -cast off the works of darkness, and let us put on the armour of light. - -13:13 Let us walk honestly, as in the day; not in rioting and -drunkenness, not in chambering and wantonness, not in strife and -envying. - -13:14 But put ye on the Lord Jesus Christ, and make not provision for -the flesh, to fulfil the lusts thereof. - -14:1 Him that is weak in the faith receive ye, but not to doubtful -disputations. - -14:2 For one believeth that he may eat all things: another, who is -weak, eateth herbs. - -14:3 Let not him that eateth despise him that eateth not; and let not -him which eateth not judge him that eateth: for God hath received him. - -14:4 Who art thou that judgest another man's servant? to his own -master he standeth or falleth. Yea, he shall be holden up: for God is -able to make him stand. - -14:5 One man esteemeth one day above another: another esteemeth every -day alike. Let every man be fully persuaded in his own mind. - -14:6 He that regardeth the day, regardeth it unto the Lord; and he -that regardeth not the day, to the Lord he doth not regard it. He that -eateth, eateth to the Lord, for he giveth God thanks; and he that -eateth not, to the Lord he eateth not, and giveth God thanks. - -14:7 For none of us liveth to himself, and no man dieth to himself. - -14:8 For whether we live, we live unto the Lord; and whether we die, -we die unto the Lord: whether we live therefore, or die, we are the -Lord's. - -14:9 For to this end Christ both died, and rose, and revived, that he -might be Lord both of the dead and living. - -14:10 But why dost thou judge thy brother? or why dost thou set at -nought thy brother? for we shall all stand before the judgment seat of -Christ. - -14:11 For it is written, As I live, saith the Lord, every knee shall -bow to me, and every tongue shall confess to God. - -14:12 So then every one of us shall give account of himself to God. - -14:13 Let us not therefore judge one another any more: but judge this -rather, that no man put a stumblingblock or an occasion to fall in his -brother's way. - -14:14 I know, and am persuaded by the Lord Jesus, that there is -nothing unclean of itself: but to him that esteemeth any thing to be -unclean, to him it is unclean. - -14:15 But if thy brother be grieved with thy meat, now walkest thou -not charitably. Destroy not him with thy meat, for whom Christ died. - -14:16 Let not then your good be evil spoken of: 14:17 For the kingdom -of God is not meat and drink; but righteousness, and peace, and joy in -the Holy Ghost. - -14:18 For he that in these things serveth Christ is acceptable to God, -and approved of men. - -14:19 Let us therefore follow after the things which make for peace, -and things wherewith one may edify another. - -14:20 For meat destroy not the work of God. All things indeed are -pure; but it is evil for that man who eateth with offence. - -14:21 It is good neither to eat flesh, nor to drink wine, nor any -thing whereby thy brother stumbleth, or is offended, or is made weak. - -14:22 Hast thou faith? have it to thyself before God. Happy is he that -condemneth not himself in that thing which he alloweth. - -14:23 And he that doubteth is damned if he eat, because he eateth not -of faith: for whatsoever is not of faith is sin. - -15:1 We then that are strong ought to bear the infirmities of the -weak, and not to please ourselves. - -15:2 Let every one of us please his neighbour for his good to -edification. - -15:3 For even Christ pleased not himself; but, as it is written, The -reproaches of them that reproached thee fell on me. - -15:4 For whatsoever things were written aforetime were written for our -learning, that we through patience and comfort of the scriptures might -have hope. - -15:5 Now the God of patience and consolation grant you to be -likeminded one toward another according to Christ Jesus: 15:6 That ye -may with one mind and one mouth glorify God, even the Father of our -Lord Jesus Christ. - -15:7 Wherefore receive ye one another, as Christ also received us to -the glory of God. - -15:8 Now I say that Jesus Christ was a minister of the circumcision -for the truth of God, to confirm the promises made unto the fathers: -15:9 And that the Gentiles might glorify God for his mercy; as it is -written, For this cause I will confess to thee among the Gentiles, and -sing unto thy name. - -15:10 And again he saith, Rejoice, ye Gentiles, with his people. - -15:11 And again, Praise the Lord, all ye Gentiles; and laud him, all -ye people. - -15:12 And again, Esaias saith, There shall be a root of Jesse, and he -that shall rise to reign over the Gentiles; in him shall the Gentiles -trust. - -15:13 Now the God of hope fill you with all joy and peace in -believing, that ye may abound in hope, through the power of the Holy -Ghost. - -15:14 And I myself also am persuaded of you, my brethren, that ye also -are full of goodness, filled with all knowledge, able also to admonish -one another. - -15:15 Nevertheless, brethren, I have written the more boldly unto you -in some sort, as putting you in mind, because of the grace that is -given to me of God, 15:16 That I should be the minister of Jesus -Christ to the Gentiles, ministering the gospel of God, that the -offering up of the Gentiles might be acceptable, being sanctified by -the Holy Ghost. - -15:17 I have therefore whereof I may glory through Jesus Christ in -those things which pertain to God. - -15:18 For I will not dare to speak of any of those things which Christ -hath not wrought by me, to make the Gentiles obedient, by word and -deed, 15:19 Through mighty signs and wonders, by the power of the -Spirit of God; so that from Jerusalem, and round about unto Illyricum, -I have fully preached the gospel of Christ. - -15:20 Yea, so have I strived to preach the gospel, not where Christ -was named, lest I should build upon another man's foundation: 15:21 -But as it is written, To whom he was not spoken of, they shall see: -and they that have not heard shall understand. - -15:22 For which cause also I have been much hindered from coming to -you. - -15:23 But now having no more place in these parts, and having a great -desire these many years to come unto you; 15:24 Whensoever I take my -journey into Spain, I will come to you: for I trust to see you in my -journey, and to be brought on my way thitherward by you, if first I be -somewhat filled with your company. - -15:25 But now I go unto Jerusalem to minister unto the saints. - -15:26 For it hath pleased them of Macedonia and Achaia to make a -certain contribution for the poor saints which are at Jerusalem. - -15:27 It hath pleased them verily; and their debtors they are. For if -the Gentiles have been made partakers of their spiritual things, their -duty is also to minister unto them in carnal things. - -15:28 When therefore I have performed this, and have sealed to them -this fruit, I will come by you into Spain. - -15:29 And I am sure that, when I come unto you, I shall come in the -fulness of the blessing of the gospel of Christ. - -15:30 Now I beseech you, brethren, for the Lord Jesus Christ's sake, -and for the love of the Spirit, that ye strive together with me in -your prayers to God for me; 15:31 That I may be delivered from them -that do not believe in Judaea; and that my service which I have for -Jerusalem may be accepted of the saints; 15:32 That I may come unto -you with joy by the will of God, and may with you be refreshed. - -15:33 Now the God of peace be with you all. Amen. - -16:1 I commend unto you Phebe our sister, which is a servant of the -church which is at Cenchrea: 16:2 That ye receive her in the Lord, as -becometh saints, and that ye assist her in whatsoever business she -hath need of you: for she hath been a succourer of many, and of myself -also. - -16:3 Greet Priscilla and Aquila my helpers in Christ Jesus: 16:4 Who -have for my life laid down their own necks: unto whom not only I give -thanks, but also all the churches of the Gentiles. - -16:5 Likewise greet the church that is in their house. Salute my -well-beloved Epaenetus, who is the firstfruits of Achaia unto Christ. - -16:6 Greet Mary, who bestowed much labour on us. - -16:7 Salute Andronicus and Junia, my kinsmen, and my fellow-prisoners, -who are of note among the apostles, who also were in Christ before me. - -16:8 Greet Amplias my beloved in the Lord. - -16:9 Salute Urbane, our helper in Christ, and Stachys my beloved. - -16:10 Salute Apelles approved in Christ. Salute them which are of -Aristobulus' household. - -16:11 Salute Herodion my kinsman. Greet them that be of the household -of Narcissus, which are in the Lord. - -16:12 Salute Tryphena and Tryphosa, who labour in the Lord. Salute the -beloved Persis, which laboured much in the Lord. - -16:13 Salute Rufus chosen in the Lord, and his mother and mine. - -16:14 Salute Asyncritus, Phlegon, Hermas, Patrobas, Hermes, and the -brethren which are with them. - -16:15 Salute Philologus, and Julia, Nereus, and his sister, and -Olympas, and all the saints which are with them. - -16:16 Salute one another with an holy kiss. The churches of Christ -salute you. - -16:17 Now I beseech you, brethren, mark them which cause divisions and -offences contrary to the doctrine which ye have learned; and avoid -them. - -16:18 For they that are such serve not our Lord Jesus Christ, but -their own belly; and by good words and fair speeches deceive the -hearts of the simple. - -16:19 For your obedience is come abroad unto all men. I am glad -therefore on your behalf: but yet I would have you wise unto that -which is good, and simple concerning evil. - -16:20 And the God of peace shall bruise Satan under your feet shortly. -The grace of our Lord Jesus Christ be with you. Amen. - -16:21 Timotheus my workfellow, and Lucius, and Jason, and Sosipater, -my kinsmen, salute you. - -16:22 I Tertius, who wrote this epistle, salute you in the Lord. - -16:23 Gaius mine host, and of the whole church, saluteth you. Erastus -the chamberlain of the city saluteth you, and Quartus a brother. - -16:24 The grace of our Lord Jesus Christ be with you all. Amen. - -16:25 Now to him that is of power to stablish you according to my -gospel, and the preaching of Jesus Christ, according to the revelation -of the mystery, which was kept secret since the world began, 16:26 But -now is made manifest, and by the scriptures of the prophets, according -to the commandment of the everlasting God, made known to all nations -for the obedience of faith: 16:27 To God only wise, be glory through -Jesus Christ for ever. Amen. - - - -The First Epistle of Paul the Apostle to the Corinthians - - -1:1 Paul called to be an apostle of Jesus Christ through the will of -God, and Sosthenes our brother, 1:2 Unto the church of God which is at -Corinth, to them that are sanctified in Christ Jesus, called to be -saints, with all that in every place call upon the name of Jesus -Christ our Lord, both their's and our's: 1:3 Grace be unto you, and -peace, from God our Father, and from the Lord Jesus Christ. - -1:4 I thank my God always on your behalf, for the grace of God which -is given you by Jesus Christ; 1:5 That in every thing ye are enriched -by him, in all utterance, and in all knowledge; 1:6 Even as the -testimony of Christ was confirmed in you: 1:7 So that ye come behind -in no gift; waiting for the coming of our Lord Jesus Christ: 1:8 Who -shall also confirm you unto the end, that ye may be blameless in the -day of our Lord Jesus Christ. - -1:9 God is faithful, by whom ye were called unto the fellowship of his -Son Jesus Christ our Lord. - -1:10 Now I beseech you, brethren, by the name of our Lord Jesus -Christ, that ye all speak the same thing, and that there be no -divisions among you; but that ye be perfectly joined together in the -same mind and in the same judgment. - -1:11 For it hath been declared unto me of you, my brethren, by them -which are of the house of Chloe, that there are contentions among you. - -1:12 Now this I say, that every one of you saith, I am of Paul; and I -of Apollos; and I of Cephas; and I of Christ. - -1:13 Is Christ divided? was Paul crucified for you? or were ye -baptized in the name of Paul? 1:14 I thank God that I baptized none -of you, but Crispus and Gaius; 1:15 Lest any should say that I had -baptized in mine own name. - -1:16 And I baptized also the household of Stephanas: besides, I know -not whether I baptized any other. - -1:17 For Christ sent me not to baptize, but to preach the gospel: not -with wisdom of words, lest the cross of Christ should be made of none -effect. - -1:18 For the preaching of the cross is to them that perish -foolishness; but unto us which are saved it is the power of God. - -1:19 For it is written, I will destroy the wisdom of the wise, and -will bring to nothing the understanding of the prudent. - -1:20 Where is the wise? where is the scribe? where is the disputer of -this world? hath not God made foolish the wisdom of this world? 1:21 -For after that in the wisdom of God the world by wisdom knew not God, -it pleased God by the foolishness of preaching to save them that -believe. - -1:22 For the Jews require a sign, and the Greeks seek after wisdom: -1:23 But we preach Christ crucified, unto the Jews a stumblingblock, -and unto the Greeks foolishness; 1:24 But unto them which are called, -both Jews and Greeks, Christ the power of God, and the wisdom of God. - -1:25 Because the foolishness of God is wiser than men; and the -weakness of God is stronger than men. - -1:26 For ye see your calling, brethren, how that not many wise men -after the flesh, not many mighty, not many noble, are called: 1:27 But -God hath chosen the foolish things of the world to confound the wise; -and God hath chosen the weak things of the world to confound the -things which are mighty; 1:28 And base things of the world, and things -which are despised, hath God chosen, yea, and things which are not, to -bring to nought things that are: 1:29 That no flesh should glory in -his presence. - -1:30 But of him are ye in Christ Jesus, who of God is made unto us -wisdom, and righteousness, and sanctification, and redemption: 1:31 -That, according as it is written, He that glorieth, let him glory in -the Lord. - -2:1 And I, brethren, when I came to you, came not with excellency of -speech or of wisdom, declaring unto you the testimony of God. - -2:2 For I determined not to know any thing among you, save Jesus -Christ, and him crucified. - -2:3 And I was with you in weakness, and in fear, and in much -trembling. - -2:4 And my speech and my preaching was not with enticing words of -man's wisdom, but in demonstration of the Spirit and of power: 2:5 -That your faith should not stand in the wisdom of men, but in the -power of God. - -2:6 Howbeit we speak wisdom among them that are perfect: yet not the -wisdom of this world, nor of the princes of this world, that come to -nought: 2:7 But we speak the wisdom of God in a mystery, even the -hidden wisdom, which God ordained before the world unto our glory: 2:8 -Which none of the princes of this world knew: for had they known it, -they would not have crucified the Lord of glory. - -2:9 But as it is written, Eye hath not seen, nor ear heard, neither -have entered into the heart of man, the things which God hath prepared -for them that love him. - -2:10 But God hath revealed them unto us by his Spirit: for the Spirit -searcheth all things, yea, the deep things of God. - -2:11 For what man knoweth the things of a man, save the spirit of man -which is in him? even so the things of God knoweth no man, but the -Spirit of God. - -2:12 Now we have received, not the spirit of the world, but the spirit -which is of God; that we might know the things that are freely given -to us of God. - -2:13 Which things also we speak, not in the words which man's wisdom -teacheth, but which the Holy Ghost teacheth; comparing spiritual -things with spiritual. - -2:14 But the natural man receiveth not the things of the Spirit of -God: for they are foolishness unto him: neither can he know them, -because they are spiritually discerned. - -2:15 But he that is spiritual judgeth all things, yet he himself is -judged of no man. - -2:16 For who hath known the mind of the Lord, that he may instruct -him? But we have the mind of Christ. - -3:1 And I, brethren, could not speak unto you as unto spiritual, but -as unto carnal, even as unto babes in Christ. - -3:2 I have fed you with milk, and not with meat: for hitherto ye were -not able to bear it, neither yet now are ye able. - -3:3 For ye are yet carnal: for whereas there is among you envying, and -strife, and divisions, are ye not carnal, and walk as men? 3:4 For -while one saith, I am of Paul; and another, I am of Apollos; are ye -not carnal? 3:5 Who then is Paul, and who is Apollos, but ministers -by whom ye believed, even as the Lord gave to every man? 3:6 I have -planted, Apollos watered; but God gave the increase. - -3:7 So then neither is he that planteth any thing, neither he that -watereth; but God that giveth the increase. - -3:8 Now he that planteth and he that watereth are one: and every man -shall receive his own reward according to his own labour. - -3:9 For we are labourers together with God: ye are God's husbandry, ye -are God's building. - -3:10 According to the grace of God which is given unto me, as a wise -masterbuilder, I have laid the foundation, and another buildeth -thereon. But let every man take heed how he buildeth thereupon. - -3:11 For other foundation can no man lay than that is laid, which is -Jesus Christ. - -3:12 Now if any man build upon this foundation gold, silver, precious -stones, wood, hay, stubble; 3:13 Every man's work shall be made -manifest: for the day shall declare it, because it shall be revealed -by fire; and the fire shall try every man's work of what sort it is. - -3:14 If any man's work abide which he hath built thereupon, he shall -receive a reward. - -3:15 If any man's work shall be burned, he shall suffer loss: but he -himself shall be saved; yet so as by fire. - -3:16 Know ye not that ye are the temple of God, and that the Spirit of -God dwelleth in you? 3:17 If any man defile the temple of God, him -shall God destroy; for the temple of God is holy, which temple ye are. - -3:18 Let no man deceive himself. If any man among you seemeth to be -wise in this world, let him become a fool, that he may be wise. - -3:19 For the wisdom of this world is foolishness with God. For it is -written, He taketh the wise in their own craftiness. - -3:20 And again, The Lord knoweth the thoughts of the wise, that they -are vain. - -3:21 Therefore let no man glory in men. For all things are your's; -3:22 Whether Paul, or Apollos, or Cephas, or the world, or life, or -death, or things present, or things to come; all are your's; 3:23 And -ye are Christ's; and Christ is God's. - -4:1 Let a man so account of us, as of the ministers of Christ, and -stewards of the mysteries of God. - -4:2 Moreover it is required in stewards, that a man be found faithful. - -4:3 But with me it is a very small thing that I should be judged of -you, or of man's judgment: yea, I judge not mine own self. - -4:4 For I know nothing by myself; yet am I not hereby justified: but -he that judgeth me is the Lord. - -4:5 Therefore judge nothing before the time, until the Lord come, who -both will bring to light the hidden things of darkness, and will make -manifest the counsels of the hearts: and then shall every man have -praise of God. - -4:6 And these things, brethren, I have in a figure transferred to -myself and to Apollos for your sakes; that ye might learn in us not to -think of men above that which is written, that no one of you be puffed -up for one against another. - -4:7 For who maketh thee to differ from another? and what hast thou -that thou didst not receive? now if thou didst receive it, why dost -thou glory, as if thou hadst not received it? 4:8 Now ye are full, -now ye are rich, ye have reigned as kings without us: and I would to -God ye did reign, that we also might reign with you. - -4:9 For I think that God hath set forth us the apostles last, as it -were appointed to death: for we are made a spectacle unto the world, -and to angels, and to men. - -4:10 We are fools for Christ's sake, but ye are wise in Christ; we are -weak, but ye are strong; ye are honourable, but we are despised. - -4:11 Even unto this present hour we both hunger, and thirst, and are -naked, and are buffeted, and have no certain dwellingplace; 4:12 And -labour, working with our own hands: being reviled, we bless; being -persecuted, we suffer it: 4:13 Being defamed, we intreat: we are made -as the filth of the world, and are the offscouring of all things unto -this day. - -4:14 I write not these things to shame you, but as my beloved sons I -warn you. - -4:15 For though ye have ten thousand instructers in Christ, yet have -ye not many fathers: for in Christ Jesus I have begotten you through -the gospel. - -4:16 Wherefore I beseech you, be ye followers of me. - -4:17 For this cause have I sent unto you Timotheus, who is my beloved -son, and faithful in the Lord, who shall bring you into remembrance of -my ways which be in Christ, as I teach every where in every church. - -4:18 Now some are puffed up, as though I would not come to you. - -4:19 But I will come to you shortly, if the Lord will, and will know, -not the speech of them which are puffed up, but the power. - -4:20 For the kingdom of God is not in word, but in power. - -4:21 What will ye? shall I come unto you with a rod, or in love, and -in the spirit of meekness? 5:1 It is reported commonly that there is -fornication among you, and such fornication as is not so much as named -among the Gentiles, that one should have his father's wife. - -5:2 And ye are puffed up, and have not rather mourned, that he that -hath done this deed might be taken away from among you. - -5:3 For I verily, as absent in body, but present in spirit, have -judged already, as though I were present, concerning him that hath so -done this deed, 5:4 In the name of our Lord Jesus Christ, when ye are -gathered together, and my spirit, with the power of our Lord Jesus -Christ, 5:5 To deliver such an one unto Satan for the destruction of -the flesh, that the spirit may be saved in the day of the Lord Jesus. - -5:6 Your glorying is not good. Know ye not that a little leaven -leaveneth the whole lump? 5:7 Purge out therefore the old leaven, -that ye may be a new lump, as ye are unleavened. For even Christ our -passover is sacrificed for us: 5:8 Therefore let us keep the feast, -not with old leaven, neither with the leaven of malice and wickedness; -but with the unleavened bread of sincerity and truth. - -5:9 I wrote unto you in an epistle not to company with fornicators: -5:10 Yet not altogether with the fornicators of this world, or with -the covetous, or extortioners, or with idolaters; for then must ye -needs go out of the world. - -5:11 But now I have written unto you not to keep company, if any man -that is called a brother be a fornicator, or covetous, or an idolater, -or a railer, or a drunkard, or an extortioner; with such an one no not -to eat. - -5:12 For what have I to do to judge them also that are without? do not -ye judge them that are within? 5:13 But them that are without God -judgeth. Therefore put away from among yourselves that wicked person. - -6:1 Dare any of you, having a matter against another, go to law before -the unjust, and not before the saints? 6:2 Do ye not know that the -saints shall judge the world? and if the world shall be judged by you, -are ye unworthy to judge the smallest matters? 6:3 Know ye not that -we shall judge angels? how much more things that pertain to this life? -6:4 If then ye have judgments of things pertaining to this life, set -them to judge who are least esteemed in the church. - -6:5 I speak to your shame. Is it so, that there is not a wise man -among you? no, not one that shall be able to judge between his -brethren? 6:6 But brother goeth to law with brother, and that before -the unbelievers. - -6:7 Now therefore there is utterly a fault among you, because ye go to -law one with another. Why do ye not rather take wrong? why do ye not -rather suffer yourselves to be defrauded? 6:8 Nay, ye do wrong, and -defraud, and that your brethren. - -6:9 Know ye not that the unrighteous shall not inherit the kingdom of -God? Be not deceived: neither fornicators, nor idolaters, nor -adulterers, nor effeminate, nor abusers of themselves with mankind, -6:10 Nor thieves, nor covetous, nor drunkards, nor revilers, nor -extortioners, shall inherit the kingdom of God. - -6:11 And such were some of you: but ye are washed, but ye are -sanctified, but ye are justified in the name of the Lord Jesus, and by -the Spirit of our God. - -6:12 All things are lawful unto me, but all things are not expedient: -all things are lawful for me, but I will not be brought under the -power of any. - -6:13 Meats for the belly, and the belly for meats: but God shall -destroy both it and them. Now the body is not for fornication, but for -the Lord; and the Lord for the body. - -6:14 And God hath both raised up the Lord, and will also raise up us -by his own power. - -6:15 Know ye not that your bodies are the members of Christ? shall I -then take the members of Christ, and make them the members of an -harlot? God forbid. - -6:16 What? know ye not that he which is joined to an harlot is one -body? for two, saith he, shall be one flesh. - -6:17 But he that is joined unto the Lord is one spirit. - -6:18 Flee fornication. Every sin that a man doeth is without the body; -but he that committeth fornication sinneth against his own body. - -6:19 What? know ye not that your body is the temple of the Holy Ghost -which is in you, which ye have of God, and ye are not your own? 6:20 -For ye are bought with a price: therefore glorify God in your body, -and in your spirit, which are God's. - -7:1 Now concerning the things whereof ye wrote unto me: It is good for -a man not to touch a woman. - -7:2 Nevertheless, to avoid fornication, let every man have his own -wife, and let every woman have her own husband. - -7:3 Let the husband render unto the wife due benevolence: and likewise -also the wife unto the husband. - -7:4 The wife hath not power of her own body, but the husband: and -likewise also the husband hath not power of his own body, but the -wife. - -7:5 Defraud ye not one the other, except it be with consent for a -time, that ye may give yourselves to fasting and prayer; and come -together again, that Satan tempt you not for your incontinency. - -7:6 But I speak this by permission, and not of commandment. - -7:7 For I would that all men were even as I myself. But every man hath -his proper gift of God, one after this manner, and another after that. - -7:8 I say therefore to the unmarried and widows, It is good for them -if they abide even as I. - -7:9 But if they cannot contain, let them marry: for it is better to -marry than to burn. - -7:10 And unto the married I command, yet not I, but the Lord, Let not -the wife depart from her husband: 7:11 But and if she depart, let her -remain unmarried or be reconciled to her husband: and let not the -husband put away his wife. - -7:12 But to the rest speak I, not the Lord: If any brother hath a wife -that believeth not, and she be pleased to dwell with him, let him not -put her away. - -7:13 And the woman which hath an husband that believeth not, and if he -be pleased to dwell with her, let her not leave him. - -7:14 For the unbelieving husband is sanctified by the wife, and the -unbelieving wife is sanctified by the husband: else were your children -unclean; but now are they holy. - -7:15 But if the unbelieving depart, let him depart. A brother or a -sister is not under bondage in such cases: but God hath called us to -peace. - -7:16 For what knowest thou, O wife, whether thou shalt save thy -husband? or how knowest thou, O man, whether thou shalt save thy -wife? 7:17 But as God hath distributed to every man, as the Lord hath -called every one, so let him walk. And so ordain I in all churches. - -7:18 Is any man called being circumcised? let him not become -uncircumcised. Is any called in uncircumcision? let him not be -circumcised. - -7:19 Circumcision is nothing, and uncircumcision is nothing, but the -keeping of the commandments of God. - -7:20 Let every man abide in the same calling wherein he was called. - -7:21 Art thou called being a servant? care not for it: but if thou -mayest be made free, use it rather. - -7:22 For he that is called in the Lord, being a servant, is the Lord's -freeman: likewise also he that is called, being free, is Christ's -servant. - -7:23 Ye are bought with a price; be not ye the servants of men. - -7:24 Brethren, let every man, wherein he is called, therein abide with -God. - -7:25 Now concerning virgins I have no commandment of the Lord: yet I -give my judgment, as one that hath obtained mercy of the Lord to be -faithful. - -7:26 I suppose therefore that this is good for the present distress, I -say, that it is good for a man so to be. - -7:27 Art thou bound unto a wife? seek not to be loosed. Art thou -loosed from a wife? seek not a wife. - -7:28 But and if thou marry, thou hast not sinned; and if a virgin -marry, she hath not sinned. Nevertheless such shall have trouble in -the flesh: but I spare you. - -7:29 But this I say, brethren, the time is short: it remaineth, that -both they that have wives be as though they had none; 7:30 And they -that weep, as though they wept not; and they that rejoice, as though -they rejoiced not; and they that buy, as though they possessed not; -7:31 And they that use this world, as not abusing it: for the fashion -of this world passeth away. - -7:32 But I would have you without carefulness. He that is unmarried -careth for the things that belong to the Lord, how he may please the -Lord: 7:33 But he that is married careth for the things that are of -the world, how he may please his wife. - -7:34 There is difference also between a wife and a virgin. The -unmarried woman careth for the things of the Lord, that she may be -holy both in body and in spirit: but she that is married careth for -the things of the world, how she may please her husband. - -7:35 And this I speak for your own profit; not that I may cast a snare -upon you, but for that which is comely, and that ye may attend upon -the Lord without distraction. - -7:36 But if any man think that he behaveth himself uncomely toward his -virgin, if she pass the flower of her age, and need so require, let -him do what he will, he sinneth not: let them marry. - -7:37 Nevertheless he that standeth stedfast in his heart, having no -necessity, but hath power over his own will, and hath so decreed in -his heart that he will keep his virgin, doeth well. - -7:38 So then he that giveth her in marriage doeth well; but he that -giveth her not in marriage doeth better. - -7:39 The wife is bound by the law as long as her husband liveth; but -if her husband be dead, she is at liberty to be married to whom she -will; only in the Lord. - -7:40 But she is happier if she so abide, after my judgment: and I -think also that I have the Spirit of God. - -8:1 Now as touching things offered unto idols, we know that we all -have knowledge. Knowledge puffeth up, but charity edifieth. - -8:2 And if any man think that he knoweth any thing, he knoweth nothing -yet as he ought to know. - -8:3 But if any man love God, the same is known of him. - -8:4 As concerning therefore the eating of those things that are -offered in sacrifice unto idols, we know that an idol is nothing in -the world, and that there is none other God but one. - -8:5 For though there be that are called gods, whether in heaven or in -earth, (as there be gods many, and lords many,) 8:6 But to us there is -but one God, the Father, of whom are all things, and we in him; and -one Lord Jesus Christ, by whom are all things, and we by him. - -8:7 Howbeit there is not in every man that knowledge: for some with -conscience of the idol unto this hour eat it as a thing offered unto -an idol; and their conscience being weak is defiled. - -8:8 But meat commendeth us not to God: for neither, if we eat, are we -the better; neither, if we eat not, are we the worse. - -8:9 But take heed lest by any means this liberty of your's become a -stumblingblock to them that are weak. - -8:10 For if any man see thee which hast knowledge sit at meat in the -idol's temple, shall not the conscience of him which is weak be -emboldened to eat those things which are offered to idols; 8:11 And -through thy knowledge shall the weak brother perish, for whom Christ -died? 8:12 But when ye sin so against the brethren, and wound their -weak conscience, ye sin against Christ. - -8:13 Wherefore, if meat make my brother to offend, I will eat no flesh -while the world standeth, lest I make my brother to offend. - -9:1 Am I not an apostle? am I not free? have I not seen Jesus Christ -our Lord? are not ye my work in the Lord? 9:2 If I be not an apostle -unto others, yet doubtless I am to you: for the seal of mine -apostleship are ye in the Lord. - -9:3 Mine answer to them that do examine me is this, 9:4 Have we not -power to eat and to drink? 9:5 Have we not power to lead about a -sister, a wife, as well as other apostles, and as the brethren of the -Lord, and Cephas? 9:6 Or I only and Barnabas, have not we power to -forbear working? 9:7 Who goeth a warfare any time at his own charges? -who planteth a vineyard, and eateth not of the fruit thereof? or who -feedeth a flock, and eateth not of the milk of the flock? 9:8 Say I -these things as a man? or saith not the law the same also? 9:9 For it -is written in the law of Moses, Thou shalt not muzzle the mouth of the -ox that treadeth out the corn. Doth God take care for oxen? 9:10 Or -saith he it altogether for our sakes? For our sakes, no doubt, this is -written: that he that ploweth should plow in hope; and that he that -thresheth in hope should be partaker of his hope. - -9:11 If we have sown unto you spiritual things, is it a great thing if -we shall reap your carnal things? 9:12 If others be partakers of this -power over you, are not we rather? Nevertheless we have not used this -power; but suffer all things, lest we should hinder the gospel of -Christ. - -9:13 Do ye not know that they which minister about holy things live of -the things of the temple? and they which wait at the altar are -partakers with the altar? 9:14 Even so hath the Lord ordained that -they which preach the gospel should live of the gospel. - -9:15 But I have used none of these things: neither have I written -these things, that it should be so done unto me: for it were better -for me to die, than that any man should make my glorying void. - -9:16 For though I preach the gospel, I have nothing to glory of: for -necessity is laid upon me; yea, woe is unto me, if I preach not the -gospel! 9:17 For if I do this thing willingly, I have a reward: but -if against my will, a dispensation of the gospel is committed unto me. - -9:18 What is my reward then? Verily that, when I preach the gospel, I -may make the gospel of Christ without charge, that I abuse not my -power in the gospel. - -9:19 For though I be free from all men, yet have I made myself servant -unto all, that I might gain the more. - -9:20 And unto the Jews I became as a Jew, that I might gain the Jews; -to them that are under the law, as under the law, that I might gain -them that are under the law; 9:21 To them that are without law, as -without law, (being not without law to God, but under the law to -Christ,) that I might gain them that are without law. - -9:22 To the weak became I as weak, that I might gain the weak: I am -made all things to all men, that I might by all means save some. - -9:23 And this I do for the gospel's sake, that I might be partaker -thereof with you. - -9:24 Know ye not that they which run in a race run all, but one -receiveth the prize? So run, that ye may obtain. - -9:25 And every man that striveth for the mastery is temperate in all -things. Now they do it to obtain a corruptible crown; but we an -incorruptible. - -9:26 I therefore so run, not as uncertainly; so fight I, not as one -that beateth the air: 9:27 But I keep under my body, and bring it into -subjection: lest that by any means, when I have preached to others, I -myself should be a castaway. - -10:1 Moreover, brethren, I would not that ye should be ignorant, how -that all our fathers were under the cloud, and all passed through the -sea; 10:2 And were all baptized unto Moses in the cloud and in the -sea; 10:3 And did all eat the same spiritual meat; 10:4 And did all -drink the same spiritual drink: for they drank of that spiritual Rock -that followed them: and that Rock was Christ. - -10:5 But with many of them God was not well pleased: for they were -overthrown in the wilderness. - -10:6 Now these things were our examples, to the intent we should not -lust after evil things, as they also lusted. - -10:7 Neither be ye idolaters, as were some of them; as it is written, -The people sat down to eat and drink, and rose up to play. - -10:8 Neither let us commit fornication, as some of them committed, and -fell in one day three and twenty thousand. - -10:9 Neither let us tempt Christ, as some of them also tempted, and -were destroyed of serpents. - -10:10 Neither murmur ye, as some of them also murmured, and were -destroyed of the destroyer. - -10:11 Now all these things happened unto them for ensamples: and they -are written for our admonition, upon whom the ends of the world are -come. - -10:12 Wherefore let him that thinketh he standeth take heed lest he -fall. - -10:13 There hath no temptation taken you but such as is common to man: -but God is faithful, who will not suffer you to be tempted above that -ye are able; but will with the temptation also make a way to escape, -that ye may be able to bear it. - -10:14 Wherefore, my dearly beloved, flee from idolatry. - -10:15 I speak as to wise men; judge ye what I say. - -10:16 The cup of blessing which we bless, is it not the communion of -the blood of Christ? The bread which we break, is it not the communion -of the body of Christ? 10:17 For we being many are one bread, and one -body: for we are all partakers of that one bread. - -10:18 Behold Israel after the flesh: are not they which eat of the -sacrifices partakers of the altar? 10:19 What say I then? that the -idol is any thing, or that which is offered in sacrifice to idols is -any thing? 10:20 But I say, that the things which the Gentiles -sacrifice, they sacrifice to devils, and not to God: and I would not -that ye should have fellowship with devils. - -10:21 Ye cannot drink the cup of the Lord, and the cup of devils: ye -cannot be partakers of the Lord's table, and of the table of devils. - -10:22 Do we provoke the Lord to jealousy? are we stronger than he? -10:23 All things are lawful for me, but all things are not expedient: -all things are lawful for me, but all things edify not. - -10:24 Let no man seek his own, but every man another's wealth. - -10:25 Whatsoever is sold in the shambles, that eat, asking no question -for conscience sake: 10:26 For the earth is the Lord's, and the -fulness thereof. - -10:27 If any of them that believe not bid you to a feast, and ye be -disposed to go; whatsoever is set before you, eat, asking no question -for conscience sake. - -10:28 But if any man say unto you, This is offered in sacrifice unto -idols, eat not for his sake that shewed it, and for conscience sake: -for the earth is the Lord's, and the fulness thereof: 10:29 -Conscience, I say, not thine own, but of the other: for why is my -liberty judged of another man's conscience? 10:30 For if I by grace -be a partaker, why am I evil spoken of for that for which I give -thanks? 10:31 Whether therefore ye eat, or drink, or whatsoever ye -do, do all to the glory of God. - -10:32 Give none offence, neither to the Jews, nor to the Gentiles, nor -to the church of God: 10:33 Even as I please all men in all things, -not seeking mine own profit, but the profit of many, that they may be -saved. - -11:1 Be ye followers of me, even as I also am of Christ. - -11:2 Now I praise you, brethren, that ye remember me in all things, -and keep the ordinances, as I delivered them to you. - -11:3 But I would have you know, that the head of every man is Christ; -and the head of the woman is the man; and the head of Christ is God. - -11:4 Every man praying or prophesying, having his head covered, -dishonoureth his head. - -11:5 But every woman that prayeth or prophesieth with her head -uncovered dishonoureth her head: for that is even all one as if she -were shaven. - -11:6 For if the woman be not covered, let her also be shorn: but if it -be a shame for a woman to be shorn or shaven, let her be covered. - -11:7 For a man indeed ought not to cover his head, forasmuch as he is -the image and glory of God: but the woman is the glory of the man. - -11:8 For the man is not of the woman: but the woman of the man. - -11:9 Neither was the man created for the woman; but the woman for the -man. - -11:10 For this cause ought the woman to have power on her head because -of the angels. - -11:11 Nevertheless neither is the man without the woman, neither the -woman without the man, in the Lord. - -11:12 For as the woman is of the man, even so is the man also by the -woman; but all things of God. - -11:13 Judge in yourselves: is it comely that a woman pray unto God -uncovered? 11:14 Doth not even nature itself teach you, that, if a -man have long hair, it is a shame unto him? 11:15 But if a woman have -long hair, it is a glory to her: for her hair is given her for a -covering. - -11:16 But if any man seem to be contentious, we have no such custom, -neither the churches of God. - -11:17 Now in this that I declare unto you I praise you not, that ye -come together not for the better, but for the worse. - -11:18 For first of all, when ye come together in the church, I hear -that there be divisions among you; and I partly believe it. - -11:19 For there must be also heresies among you, that they which are -approved may be made manifest among you. - -11:20 When ye come together therefore into one place, this is not to -eat the Lord's supper. - -11:21 For in eating every one taketh before other his own supper: and -one is hungry, and another is drunken. - -11:22 What? have ye not houses to eat and to drink in? or despise ye -the church of God, and shame them that have not? What shall I say to -you? shall I praise you in this? I praise you not. - -11:23 For I have received of the Lord that which also I delivered unto -you, That the Lord Jesus the same night in which he was betrayed took -bread: 11:24 And when he had given thanks, he brake it, and said, -Take, eat: this is my body, which is broken for you: this do in -remembrance of me. - -11:25 After the same manner also he took the cup, when he had supped, -saying, This cup is the new testament in my blood: this do ye, as oft -as ye drink it, in remembrance of me. - -11:26 For as often as ye eat this bread, and drink this cup, ye do -shew the Lord's death till he come. - -11:27 Wherefore whosoever shall eat this bread, and drink this cup of -the Lord, unworthily, shall be guilty of the body and blood of the -Lord. - -11:28 But let a man examine himself, and so let him eat of that bread, -and drink of that cup. - -11:29 For he that eateth and drinketh unworthily, eateth and drinketh -damnation to himself, not discerning the Lord's body. - -11:30 For this cause many are weak and sickly among you, and many -sleep. - -11:31 For if we would judge ourselves, we should not be judged. - -11:32 But when we are judged, we are chastened of the Lord, that we -should not be condemned with the world. - -11:33 Wherefore, my brethren, when ye come together to eat, tarry one -for another. - -11:34 And if any man hunger, let him eat at home; that ye come not -together unto condemnation. And the rest will I set in order when I -come. - -12:1 Now concerning spiritual gifts, brethren, I would not have you -ignorant. - -12:2 Ye know that ye were Gentiles, carried away unto these dumb -idols, even as ye were led. - -12:3 Wherefore I give you to understand, that no man speaking by the -Spirit of God calleth Jesus accursed: and that no man can say that -Jesus is the Lord, but by the Holy Ghost. - -12:4 Now there are diversities of gifts, but the same Spirit. - -12:5 And there are differences of administrations, but the same Lord. - -12:6 And there are diversities of operations, but it is the same God -which worketh all in all. - -12:7 But the manifestation of the Spirit is given to every man to -profit withal. - -12:8 For to one is given by the Spirit the word of wisdom; to another -the word of knowledge by the same Spirit; 12:9 To another faith by the -same Spirit; to another the gifts of healing by the same Spirit; 12:10 -To another the working of miracles; to another prophecy; to another -discerning of spirits; to another divers kinds of tongues; to another -the interpretation of tongues: 12:11 But all these worketh that one -and the selfsame Spirit, dividing to every man severally as he will. - -12:12 For as the body is one, and hath many members, and all the -members of that one body, being many, are one body: so also is Christ. - -12:13 For by one Spirit are we all baptized into one body, whether we -be Jews or Gentiles, whether we be bond or free; and have been all -made to drink into one Spirit. - -12:14 For the body is not one member, but many. - -12:15 If the foot shall say, Because I am not the hand, I am not of -the body; is it therefore not of the body? 12:16 And if the ear shall -say, Because I am not the eye, I am not of the body; is it therefore -not of the body? 12:17 If the whole body were an eye, where were the -hearing? If the whole were hearing, where were the smelling? 12:18 -But now hath God set the members every one of them in the body, as it -hath pleased him. - -12:19 And if they were all one member, where were the body? 12:20 But -now are they many members, yet but one body. - -12:21 And the eye cannot say unto the hand, I have no need of thee: -nor again the head to the feet, I have no need of you. - -12:22 Nay, much more those members of the body, which seem to be more -feeble, are necessary: 12:23 And those members of the body, which we -think to be less honourable, upon these we bestow more abundant -honour; and our uncomely parts have more abundant comeliness. - -12:24 For our comely parts have no need: but God hath tempered the -body together, having given more abundant honour to that part which -lacked. - -12:25 That there should be no schism in the body; but that the members -should have the same care one for another. - -12:26 And whether one member suffer, all the members suffer with it; -or one member be honoured, all the members rejoice with it. - -12:27 Now ye are the body of Christ, and members in particular. - -12:28 And God hath set some in the church, first apostles, secondarily -prophets, thirdly teachers, after that miracles, then gifts of -healings, helps, governments, diversities of tongues. - -12:29 Are all apostles? are all prophets? are all teachers? are all -workers of miracles? 12:30 Have all the gifts of healing? do all -speak with tongues? do all interpret? 12:31 But covet earnestly the -best gifts: and yet shew I unto you a more excellent way. - -13:1 Though I speak with the tongues of men and of angels, and have -not charity, I am become as sounding brass, or a tinkling cymbal. - -13:2 And though I have the gift of prophecy, and understand all -mysteries, and all knowledge; and though I have all faith, so that I -could remove mountains, and have not charity, I am nothing. - -13:3 And though I bestow all my goods to feed the poor, and though I -give my body to be burned, and have not charity, it profiteth me -nothing. - -13:4 Charity suffereth long, and is kind; charity envieth not; charity -vaunteth not itself, is not puffed up, 13:5 Doth not behave itself -unseemly, seeketh not her own, is not easily provoked, thinketh no -evil; 13:6 Rejoiceth not in iniquity, but rejoiceth in the truth; 13:7 -Beareth all things, believeth all things, hopeth all things, endureth -all things. - -13:8 Charity never faileth: but whether there be prophecies, they -shall fail; whether there be tongues, they shall cease; whether there -be knowledge, it shall vanish away. - -13:9 For we know in part, and we prophesy in part. - -13:10 But when that which is perfect is come, then that which is in -part shall be done away. - -13:11 When I was a child, I spake as a child, I understood as a child, -I thought as a child: but when I became a man, I put away childish -things. - -13:12 For now we see through a glass, darkly; but then face to face: -now I know in part; but then shall I know even as also I am known. - -13:13 And now abideth faith, hope, charity, these three; but the -greatest of these is charity. - -14:1 Follow after charity, and desire spiritual gifts, but rather that -ye may prophesy. - -14:2 For he that speaketh in an unknown tongue speaketh not unto men, -but unto God: for no man understandeth him; howbeit in the spirit he -speaketh mysteries. - -14:3 But he that prophesieth speaketh unto men to edification, and -exhortation, and comfort. - -14:4 He that speaketh in an unknown tongue edifieth himself; but he -that prophesieth edifieth the church. - -14:5 I would that ye all spake with tongues but rather that ye -prophesied: for greater is he that prophesieth than he that speaketh -with tongues, except he interpret, that the church may receive -edifying. - -14:6 Now, brethren, if I come unto you speaking with tongues, what -shall I profit you, except I shall speak to you either by revelation, -or by knowledge, or by prophesying, or by doctrine? 14:7 And even -things without life giving sound, whether pipe or harp, except they -give a distinction in the sounds, how shall it be known what is piped -or harped? 14:8 For if the trumpet give an uncertain sound, who shall -prepare himself to the battle? 14:9 So likewise ye, except ye utter -by the tongue words easy to be understood, how shall it be known what -is spoken? for ye shall speak into the air. - -14:10 There are, it may be, so many kinds of voices in the world, and -none of them is without signification. - -14:11 Therefore if I know not the meaning of the voice, I shall be -unto him that speaketh a barbarian, and he that speaketh shall be a -barbarian unto me. - -14:12 Even so ye, forasmuch as ye are zealous of spiritual gifts, seek -that ye may excel to the edifying of the church. - -14:13 Wherefore let him that speaketh in an unknown tongue pray that -he may interpret. - -14:14 For if I pray in an unknown tongue, my spirit prayeth, but my -understanding is unfruitful. - -14:15 What is it then? I will pray with the spirit, and I will pray -with the understanding also: I will sing with the spirit, and I will -sing with the understanding also. - -14:16 Else when thou shalt bless with the spirit, how shall he that -occupieth the room of the unlearned say Amen at thy giving of thanks, -seeing he understandeth not what thou sayest? 14:17 For thou verily -givest thanks well, but the other is not edified. - -14:18 I thank my God, I speak with tongues more than ye all: 14:19 Yet -in the church I had rather speak five words with my understanding, -that by my voice I might teach others also, than ten thousand words in -an unknown tongue. - -14:20 Brethren, be not children in understanding: howbeit in malice be -ye children, but in understanding be men. - -14:21 In the law it is written, With men of other tongues and other -lips will I speak unto this people; and yet for all that will they not -hear me, saith the LORD. - -14:22 Wherefore tongues are for a sign, not to them that believe, but -to them that believe not: but prophesying serveth not for them that -believe not, but for them which believe. - -14:23 If therefore the whole church be come together into one place, -and all speak with tongues, and there come in those that are -unlearned, or unbelievers, will they not say that ye are mad? 14:24 -But if all prophesy, and there come in one that believeth not, or one -unlearned, he is convinced of all, he is judged of all: 14:25 And thus -are the secrets of his heart made manifest; and so falling down on his -face he will worship God, and report that God is in you of a truth. - -14:26 How is it then, brethren? when ye come together, every one of -you hath a psalm, hath a doctrine, hath a tongue, hath a revelation, -hath an interpretation. Let all things be done unto edifying. - -14:27 If any man speak in an unknown tongue, let it be by two, or at -the most by three, and that by course; and let one interpret. - -14:28 But if there be no interpreter, let him keep silence in the -church; and let him speak to himself, and to God. - -14:29 Let the prophets speak two or three, and let the other judge. - -14:30 If any thing be revealed to another that sitteth by, let the -first hold his peace. - -14:31 For ye may all prophesy one by one, that all may learn, and all -may be comforted. - -14:32 And the spirits of the prophets are subject to the prophets. - -14:33 For God is not the author of confusion, but of peace, as in all -churches of the saints. - -14:34 Let your women keep silence in the churches: for it is not -permitted unto them to speak; but they are commanded to be under -obedience as also saith the law. - -14:35 And if they will learn any thing, let them ask their husbands at -home: for it is a shame for women to speak in the church. - -14:36 What? came the word of God out from you? or came it unto you -only? 14:37 If any man think himself to be a prophet, or spiritual, -let him acknowledge that the things that I write unto you are the -commandments of the Lord. - -14:38 But if any man be ignorant, let him be ignorant. - -14:39 Wherefore, brethren, covet to prophesy, and forbid not to speak -with tongues. - -14:40 Let all things be done decently and in order. - -15:1 Moreover, brethren, I declare unto you the gospel which I -preached unto you, which also ye have received, and wherein ye stand; -15:2 By which also ye are saved, if ye keep in memory what I preached -unto you, unless ye have believed in vain. - -15:3 For I delivered unto you first of all that which I also received, -how that Christ died for our sins according to the scriptures; 15:4 -And that he was buried, and that he rose again the third day according -to the scriptures: 15:5 And that he was seen of Cephas, then of the -twelve: 15:6 After that, he was seen of above five hundred brethren at -once; of whom the greater part remain unto this present, but some are -fallen asleep. - -15:7 After that, he was seen of James; then of all the apostles. - -15:8 And last of all he was seen of me also, as of one born out of due -time. - -15:9 For I am the least of the apostles, that am not meet to be called -an apostle, because I persecuted the church of God. - -15:10 But by the grace of God I am what I am: and his grace which was -bestowed upon me was not in vain; but I laboured more abundantly than -they all: yet not I, but the grace of God which was with me. - -15:11 Therefore whether it were I or they, so we preach, and so ye -believed. - -15:12 Now if Christ be preached that he rose from the dead, how say -some among you that there is no resurrection of the dead? 15:13 But -if there be no resurrection of the dead, then is Christ not risen: -15:14 And if Christ be not risen, then is our preaching vain, and your -faith is also vain. - -15:15 Yea, and we are found false witnesses of God; because we have -testified of God that he raised up Christ: whom he raised not up, if -so be that the dead rise not. - -15:16 For if the dead rise not, then is not Christ raised: 15:17 And -if Christ be not raised, your faith is vain; ye are yet in your sins. - -15:18 Then they also which are fallen asleep in Christ are perished. - -15:19 If in this life only we have hope in Christ, we are of all men -most miserable. - -15:20 But now is Christ risen from the dead, and become the -firstfruits of them that slept. - -15:21 For since by man came death, by man came also the resurrection -of the dead. - -15:22 For as in Adam all die, even so in Christ shall all be made -alive. - -15:23 But every man in his own order: Christ the firstfruits; -afterward they that are Christ's at his coming. - -15:24 Then cometh the end, when he shall have delivered up the kingdom -to God, even the Father; when he shall have put down all rule and all -authority and power. - -15:25 For he must reign, till he hath put all enemies under his feet. - -15:26 The last enemy that shall be destroyed is death. - -15:27 For he hath put all things under his feet. But when he saith all -things are put under him, it is manifest that he is excepted, which -did put all things under him. - -15:28 And when all things shall be subdued unto him, then shall the -Son also himself be subject unto him that put all things under him, -that God may be all in all. - -15:29 Else what shall they do which are baptized for the dead, if the -dead rise not at all? why are they then baptized for the dead? 15:30 -And why stand we in jeopardy every hour? 15:31 I protest by your -rejoicing which I have in Christ Jesus our LORD, I die daily. - -15:32 If after the manner of men I have fought with beasts at Ephesus, -what advantageth it me, if the dead rise not? let us eat and drink; -for to morrow we die. - -15:33 Be not deceived: evil communications corrupt good manners. - -15:34 Awake to righteousness, and sin not; for some have not the -knowledge of God: I speak this to your shame. - -15:35 But some man will say, How are the dead raised up? and with what -body do they come? 15:36 Thou fool, that which thou sowest is not -quickened, except it die: 15:37 And that which thou sowest, thou -sowest not that body that shall be, but bare grain, it may chance of -wheat, or of some other grain: 15:38 But God giveth it a body as it -hath pleased him, and to every seed his own body. - -15:39 All flesh is not the same flesh: but there is one kind of flesh -of men, another flesh of beasts, another of fishes, and another of -birds. - -15:40 There are also celestial bodies, and bodies terrestrial: but the -glory of the celestial is one, and the glory of the terrestrial is -another. - -15:41 There is one glory of the sun, and another glory of the moon, -and another glory of the stars: for one star differeth from another -star in glory. - -15:42 So also is the resurrection of the dead. It is sown in -corruption; it is raised in incorruption: 15:43 It is sown in -dishonour; it is raised in glory: it is sown in weakness; it is raised -in power: 15:44 It is sown a natural body; it is raised a spiritual -body. There is a natural body, and there is a spiritual body. - -15:45 And so it is written, The first man Adam was made a living soul; -the last Adam was made a quickening spirit. - -15:46 Howbeit that was not first which is spiritual, but that which is -natural; and afterward that which is spiritual. - -15:47 The first man is of the earth, earthy; the second man is the -Lord from heaven. - -15:48 As is the earthy, such are they also that are earthy: and as is -the heavenly, such are they also that are heavenly. - -15:49 And as we have borne the image of the earthy, we shall also bear -the image of the heavenly. - -15:50 Now this I say, brethren, that flesh and blood cannot inherit -the kingdom of God; neither doth corruption inherit incorruption. - -15:51 Behold, I shew you a mystery; We shall not all sleep, but we -shall all be changed, 15:52 In a moment, in the twinkling of an eye, -at the last trump: for the trumpet shall sound, and the dead shall be -raised incorruptible, and we shall be changed. - -15:53 For this corruptible must put on incorruption, and this mortal -must put on immortality. - -15:54 So when this corruptible shall have put on incorruption, and -this mortal shall have put on immortality, then shall be brought to -pass the saying that is written, Death is swallowed up in victory. - -15:55 O death, where is thy sting? O grave, where is thy victory? -15:56 The sting of death is sin; and the strength of sin is the law. - -15:57 But thanks be to God, which giveth us the victory through our -Lord Jesus Christ. - -15:58 Therefore, my beloved brethren, be ye stedfast, unmoveable, -always abounding in the work of the Lord, forasmuch as ye know that -your labour is not in vain in the Lord. - -16:1 Now concerning the collection for the saints, as I have given -order to the churches of Galatia, even so do ye. - -16:2 Upon the first day of the week let every one of you lay by him in -store, as God hath prospered him, that there be no gatherings when I -come. - -16:3 And when I come, whomsoever ye shall approve by your letters, -them will I send to bring your liberality unto Jerusalem. - -16:4 And if it be meet that I go also, they shall go with me. - -16:5 Now I will come unto you, when I shall pass through Macedonia: -for I do pass through Macedonia. - -16:6 And it may be that I will abide, yea, and winter with you, that -ye may bring me on my journey whithersoever I go. - -16:7 For I will not see you now by the way; but I trust to tarry a -while with you, if the Lord permit. - -16:8 But I will tarry at Ephesus until Pentecost. - -16:9 For a great door and effectual is opened unto me, and there are -many adversaries. - -16:10 Now if Timotheus come, see that he may be with you without fear: -for he worketh the work of the Lord, as I also do. - -16:11 Let no man therefore despise him: but conduct him forth in -peace, that he may come unto me: for I look for him with the brethren. - -16:12 As touching our brother Apollos, I greatly desired him to come -unto you with the brethren: but his will was not at all to come at -this time; but he will come when he shall have convenient time. - -16:13 Watch ye, stand fast in the faith, quit you like men, be strong. - -16:14 Let all your things be done with charity. - -16:15 I beseech you, brethren, (ye know the house of Stephanas, that -it is the firstfruits of Achaia, and that they have addicted -themselves to the ministry of the saints,) 16:16 That ye submit -yourselves unto such, and to every one that helpeth with us, and -laboureth. - -16:17 I am glad of the coming of Stephanas and Fortunatus and -Achaicus: for that which was lacking on your part they have supplied. - -16:18 For they have refreshed my spirit and your's: therefore -acknowledge ye them that are such. - -16:19 The churches of Asia salute you. Aquila and Priscilla salute you -much in the Lord, with the church that is in their house. - -16:20 All the brethren greet you. Greet ye one another with -an holy kiss. - -16:21 The salutation of me Paul with mine own hand. - -16:22 If any man love not the Lord Jesus Christ, let him be -Anathema Maranatha. - -16:23 The grace of our Lord Jesus Christ be with you. - -16:24 My love be with you all in Christ Jesus. Amen. - - - -The Second Epistle of Paul the Apostle to the Corinthians - - -1:1 Paul, an apostle of Jesus Christ by the will of God, and Timothy -our brother, unto the church of God which is at Corinth, with all the -saints which are in all Achaia: 1:2 Grace be to you and peace from God -our Father, and from the Lord Jesus Christ. - -1:3 Blessed be God, even the Father of our Lord Jesus Christ, the -Father of mercies, and the God of all comfort; 1:4 Who comforteth us -in all our tribulation, that we may be able to comfort them which are -in any trouble, by the comfort wherewith we ourselves are comforted of -God. - -1:5 For as the sufferings of Christ abound in us, so our consolation -also aboundeth by Christ. - -1:6 And whether we be afflicted, it is for your consolation and -salvation, which is effectual in the enduring of the same sufferings -which we also suffer: or whether we be comforted, it is for your -consolation and salvation. - -1:7 And our hope of you is stedfast, knowing, that as ye are partakers -of the sufferings, so shall ye be also of the consolation. - -1:8 For we would not, brethren, have you ignorant of our trouble which -came to us in Asia, that we were pressed out of measure, above -strength, insomuch that we despaired even of life: 1:9 But we had the -sentence of death in ourselves, that we should not trust in ourselves, -but in God which raiseth the dead: 1:10 Who delivered us from so great -a death, and doth deliver: in whom we trust that he will yet deliver -us; 1:11 Ye also helping together by prayer for us, that for the gift -bestowed upon us by the means of many persons thanks may be given by -many on our behalf. - -1:12 For our rejoicing is this, the testimony of our conscience, that -in simplicity and godly sincerity, not with fleshly wisdom, but by the -grace of God, we have had our conversation in the world, and more -abundantly to you-ward. - -1:13 For we write none other things unto you, than what ye read or -acknowledge; and I trust ye shall acknowledge even to the end; 1:14 As -also ye have acknowledged us in part, that we are your rejoicing, even -as ye also are our's in the day of the Lord Jesus. - -1:15 And in this confidence I was minded to come unto you before, that -ye might have a second benefit; 1:16 And to pass by you into -Macedonia, and to come again out of Macedonia unto you, and of you to -be brought on my way toward Judaea. - -1:17 When I therefore was thus minded, did I use lightness? or the -things that I purpose, do I purpose according to the flesh, that with -me there should be yea yea, and nay nay? 1:18 But as God is true, our -word toward you was not yea and nay. - -1:19 For the Son of God, Jesus Christ, who was preached among you by -us, even by me and Silvanus and Timotheus, was not yea and nay, but in -him was yea. - -1:20 For all the promises of God in him are yea, and in him Amen, unto -the glory of God by us. - -1:21 Now he which stablisheth us with you in Christ, and hath anointed -us, is God; 1:22 Who hath also sealed us, and given the earnest of the -Spirit in our hearts. - -1:23 Moreover I call God for a record upon my soul, that to spare you -I came not as yet unto Corinth. - -1:24 Not for that we have dominion over your faith, but are helpers of -your joy: for by faith ye stand. - -2:1 But I determined this with myself, that I would not come again to -you in heaviness. - -2:2 For if I make you sorry, who is he then that maketh me glad, but -the same which is made sorry by me? 2:3 And I wrote this same unto -you, lest, when I came, I should have sorrow from them of whom I ought -to rejoice; having confidence in you all, that my joy is the joy of -you all. - -2:4 For out of much affliction and anguish of heart I wrote unto you -with many tears; not that ye should be grieved, but that ye might know -the love which I have more abundantly unto you. - -2:5 But if any have caused grief, he hath not grieved me, but in part: -that I may not overcharge you all. - -2:6 Sufficient to such a man is this punishment, which was inflicted -of many. - -2:7 So that contrariwise ye ought rather to forgive him, and comfort -him, lest perhaps such a one should be swallowed up with overmuch -sorrow. - -2:8 Wherefore I beseech you that ye would confirm your love toward -him. - -2:9 For to this end also did I write, that I might know the proof of -you, whether ye be obedient in all things. - -2:10 To whom ye forgive any thing, I forgive also: for if I forgave -any thing, to whom I forgave it, for your sakes forgave I it in the -person of Christ; 2:11 Lest Satan should get an advantage of us: for -we are not ignorant of his devices. - -2:12 Furthermore, when I came to Troas to preach Christ's gospel, and -a door was opened unto me of the Lord, 2:13 I had no rest in my -spirit, because I found not Titus my brother: but taking my leave of -them, I went from thence into Macedonia. - -2:14 Now thanks be unto God, which always causeth us to triumph in -Christ, and maketh manifest the savour of his knowledge by us in every -place. - -2:15 For we are unto God a sweet savour of Christ, in them that are -saved, and in them that perish: 2:16 To the one we are the savour of -death unto death; and to the other the savour of life unto life. And -who is sufficient for these things? 2:17 For we are not as many, -which corrupt the word of God: but as of sincerity, but as of God, in -the sight of God speak we in Christ. - -3:1 Do we begin again to commend ourselves? or need we, as some -others, epistles of commendation to you, or letters of commendation -from you? 3:2 Ye are our epistle written in our hearts, known and -read of all men: 3:3 Forasmuch as ye are manifestly declared to be the -epistle of Christ ministered by us, written not with ink, but with the -Spirit of the living God; not in tables of stone, but in fleshy tables -of the heart. - -3:4 And such trust have we through Christ to God-ward: 3:5 Not that we -are sufficient of ourselves to think any thing as of ourselves; but -our sufficiency is of God; 3:6 Who also hath made us able ministers of -the new testament; not of the letter, but of the spirit: for the -letter killeth, but the spirit giveth life. - -3:7 But if the ministration of death, written and engraven in stones, -was glorious, so that the children of Israel could not stedfastly -behold the face of Moses for the glory of his countenance; which glory -was to be done away: 3:8 How shall not the ministration of the spirit -be rather glorious? 3:9 For if the ministration of condemnation be -glory, much more doth the ministration of righteousness exceed in -glory. - -3:10 For even that which was made glorious had no glory in this -respect, by reason of the glory that excelleth. - -3:11 For if that which is done away was glorious, much more that which -remaineth is glorious. - -3:12 Seeing then that we have such hope, we use great plainness of -speech: 3:13 And not as Moses, which put a vail over his face, that -the children of Israel could not stedfastly look to the end of that -which is abolished: 3:14 But their minds were blinded: for until this -day remaineth the same vail untaken away in the reading of the old -testament; which vail is done away in Christ. - -3:15 But even unto this day, when Moses is read, the vail is upon -their heart. - -3:16 Nevertheless when it shall turn to the Lord, the vail shall be -taken away. - -3:17 Now the Lord is that Spirit: and where the Spirit of the Lord is, -there is liberty. - -3:18 But we all, with open face beholding as in a glass the glory of -the Lord, are changed into the same image from glory to glory, even as -by the Spirit of the LORD. - -4:1 Therefore seeing we have this ministry, as we have received mercy, -we faint not; 4:2 But have renounced the hidden things of dishonesty, -not walking in craftiness, nor handling the word of God deceitfully; -but by manifestation of the truth commending ourselves to every man's -conscience in the sight of God. - -4:3 But if our gospel be hid, it is hid to them that are lost: 4:4 In -whom the god of this world hath blinded the minds of them which -believe not, lest the light of the glorious gospel of Christ, who is -the image of God, should shine unto them. - -4:5 For we preach not ourselves, but Christ Jesus the Lord; and -ourselves your servants for Jesus' sake. - -4:6 For God, who commanded the light to shine out of darkness, hath -shined in our hearts, to give the light of the knowledge of the glory -of God in the face of Jesus Christ. - -4:7 But we have this treasure in earthen vessels, that the excellency -of the power may be of God, and not of us. - -4:8 We are troubled on every side, yet not distressed; we are -perplexed, but not in despair; 4:9 Persecuted, but not forsaken; cast -down, but not destroyed; 4:10 Always bearing about in the body the -dying of the Lord Jesus, that the life also of Jesus might be made -manifest in our body. - -4:11 For we which live are alway delivered unto death for Jesus' sake, -that the life also of Jesus might be made manifest in our mortal -flesh. - -4:12 So then death worketh in us, but life in you. - -4:13 We having the same spirit of faith, according as it is written, I -believed, and therefore have I spoken; we also believe, and therefore -speak; 4:14 Knowing that he which raised up the Lord Jesus shall raise -up us also by Jesus, and shall present us with you. - -4:15 For all things are for your sakes, that the abundant grace might -through the thanksgiving of many redound to the glory of God. - -4:16 For which cause we faint not; but though our outward man perish, -yet the inward man is renewed day by day. - -4:17 For our light affliction, which is but for a moment, worketh for -us a far more exceeding and eternal weight of glory; 4:18 While we -look not at the things which are seen, but at the things which are not -seen: for the things which are seen are temporal; but the things which -are not seen are eternal. - -5:1 For we know that if our earthly house of this tabernacle were -dissolved, we have a building of God, an house not made with hands, -eternal in the heavens. - -5:2 For in this we groan, earnestly desiring to be clothed upon with -our house which is from heaven: 5:3 If so be that being clothed we -shall not be found naked. - -5:4 For we that are in this tabernacle do groan, being burdened: not -for that we would be unclothed, but clothed upon, that mortality might -be swallowed up of life. - -5:5 Now he that hath wrought us for the selfsame thing is God, who -also hath given unto us the earnest of the Spirit. - -5:6 Therefore we are always confident, knowing that, whilst we are at -home in the body, we are absent from the Lord: 5:7 (For we walk by -faith, not by sight:) 5:8 We are confident, I say, and willing rather -to be absent from the body, and to be present with the Lord. - -5:9 Wherefore we labour, that, whether present or absent, we may be -accepted of him. - -5:10 For we must all appear before the judgment seat of Christ; that -every one may receive the things done in his body, according to that -he hath done, whether it be good or bad. - -5:11 Knowing therefore the terror of the Lord, we persuade men; but we -are made manifest unto God; and I trust also are made manifest in your -consciences. - -5:12 For we commend not ourselves again unto you, but give you -occasion to glory on our behalf, that ye may have somewhat to answer -them which glory in appearance, and not in heart. - -5:13 For whether we be beside ourselves, it is to God: or whether we -be sober, it is for your cause. - -5:14 For the love of Christ constraineth us; because we thus judge, -that if one died for all, then were all dead: 5:15 And that he died -for all, that they which live should not henceforth live unto -themselves, but unto him which died for them, and rose again. - -5:16 Wherefore henceforth know we no man after the flesh: yea, though -we have known Christ after the flesh, yet now henceforth know we him -no more. - -5:17 Therefore if any man be in Christ, he is a new creature: old -things are passed away; behold, all things are become new. - -5:18 And all things are of God, who hath reconciled us to himself by -Jesus Christ, and hath given to us the ministry of reconciliation; -5:19 To wit, that God was in Christ, reconciling the world unto -himself, not imputing their trespasses unto them; and hath committed -unto us the word of reconciliation. - -5:20 Now then we are ambassadors for Christ, as though God did beseech -you by us: we pray you in Christ's stead, be ye reconciled to God. - -5:21 For he hath made him to be sin for us, who knew no sin; that we -might be made the righteousness of God in him. - -6:1 We then, as workers together with him, beseech you also that ye -receive not the grace of God in vain. - -6:2 (For he saith, I have heard thee in a time accepted, and in the -day of salvation have I succoured thee: behold, now is the accepted -time; behold, now is the day of salvation.) 6:3 Giving no offence in -any thing, that the ministry be not blamed: 6:4 But in all things -approving ourselves as the ministers of God, in much patience, in -afflictions, in necessities, in distresses, 6:5 In stripes, in -imprisonments, in tumults, in labours, in watchings, in fastings; 6:6 -By pureness, by knowledge, by longsuffering, by kindness, by the Holy -Ghost, by love unfeigned, 6:7 By the word of truth, by the power of -God, by the armour of righteousness on the right hand and on the left, -6:8 By honour and dishonour, by evil report and good report: as -deceivers, and yet true; 6:9 As unknown, and yet well known; as dying, -and, behold, we live; as chastened, and not killed; 6:10 As sorrowful, -yet alway rejoicing; as poor, yet making many rich; as having nothing, -and yet possessing all things. - -6:11 O ye Corinthians, our mouth is open unto you, our heart is -enlarged. - -6:12 Ye are not straitened in us, but ye are straitened in your own -bowels. - -6:13 Now for a recompence in the same, (I speak as unto my children,) -be ye also enlarged. - -6:14 Be ye not unequally yoked together with unbelievers: for what -fellowship hath righteousness with unrighteousness? and what communion -hath light with darkness? 6:15 And what concord hath Christ with -Belial? or what part hath he that believeth with an infidel? 6:16 And -what agreement hath the temple of God with idols? for ye are the -temple of the living God; as God hath said, I will dwell in them, and -walk in them; and I will be their God, and they shall be my people. - -6:17 Wherefore come out from among them, and be ye separate, saith the -Lord, and touch not the unclean thing; and I will receive you. - -6:18 And will be a Father unto you, and ye shall be my sons and -daughters, saith the Lord Almighty. - -7:1 Having therefore these promises, dearly beloved, let us cleanse -ourselves from all filthiness of the flesh and spirit, perfecting -holiness in the fear of God. - -7:2 Receive us; we have wronged no man, we have corrupted no man, we -have defrauded no man. - -7:3 I speak not this to condemn you: for I have said before, that ye -are in our hearts to die and live with you. - -7:4 Great is my boldness of speech toward you, great is my glorying of -you: I am filled with comfort, I am exceeding joyful in all our -tribulation. - -7:5 For, when we were come into Macedonia, our flesh had no rest, but -we were troubled on every side; without were fightings, within were -fears. - -7:6 Nevertheless God, that comforteth those that are cast down, -comforted us by the coming of Titus; 7:7 And not by his coming only, -but by the consolation wherewith he was comforted in you, when he told -us your earnest desire, your mourning, your fervent mind toward me; so -that I rejoiced the more. - -7:8 For though I made you sorry with a letter, I do not repent, though -I did repent: for I perceive that the same epistle hath made you -sorry, though it were but for a season. - -7:9 Now I rejoice, not that ye were made sorry, but that ye sorrowed -to repentance: for ye were made sorry after a godly manner, that ye -might receive damage by us in nothing. - -7:10 For godly sorrow worketh repentance to salvation not to be -repented of: but the sorrow of the world worketh death. - -7:11 For behold this selfsame thing, that ye sorrowed after a godly -sort, what carefulness it wrought in you, yea, what clearing of -yourselves, yea, what indignation, yea, what fear, yea, what vehement -desire, yea, what zeal, yea, what revenge! In all things ye have -approved yourselves to be clear in this matter. - -7:12 Wherefore, though I wrote unto you, I did it not for his cause -that had done the wrong, nor for his cause that suffered wrong, but -that our care for you in the sight of God might appear unto you. - -7:13 Therefore we were comforted in your comfort: yea, and exceedingly -the more joyed we for the joy of Titus, because his spirit was -refreshed by you all. - -7:14 For if I have boasted any thing to him of you, I am not ashamed; -but as we spake all things to you in truth, even so our boasting, -which I made before Titus, is found a truth. - -7:15 And his inward affection is more abundant toward you, whilst he -remembereth the obedience of you all, how with fear and trembling ye -received him. - -7:16 I rejoice therefore that I have confidence in you in all things. - -8:1 Moreover, brethren, we do you to wit of the grace of God bestowed -on the churches of Macedonia; 8:2 How that in a great trial of -affliction the abundance of their joy and their deep poverty abounded -unto the riches of their liberality. - -8:3 For to their power, I bear record, yea, and beyond their power -they were willing of themselves; 8:4 Praying us with much intreaty -that we would receive the gift, and take upon us the fellowship of the -ministering to the saints. - -8:5 And this they did, not as we hoped, but first gave their own -selves to the Lord, and unto us by the will of God. - -8:6 Insomuch that we desired Titus, that as he had begun, so he would -also finish in you the same grace also. - -8:7 Therefore, as ye abound in every thing, in faith, and utterance, -and knowledge, and in all diligence, and in your love to us, see that -ye abound in this grace also. - -8:8 I speak not by commandment, but by occasion of the forwardness of -others, and to prove the sincerity of your love. - -8:9 For ye know the grace of our Lord Jesus Christ, that, though he -was rich, yet for your sakes he became poor, that ye through his -poverty might be rich. - -8:10 And herein I give my advice: for this is expedient for you, who -have begun before, not only to do, but also to be forward a year ago. - -8:11 Now therefore perform the doing of it; that as there was a -readiness to will, so there may be a performance also out of that -which ye have. - -8:12 For if there be first a willing mind, it is accepted according to -that a man hath, and not according to that he hath not. - -8:13 For I mean not that other men be eased, and ye burdened: 8:14 But -by an equality, that now at this time your abundance may be a supply -for their want, that their abundance also may be a supply for your -want: that there may be equality: 8:15 As it is written, He that had -gathered much had nothing over; and he that had gathered little had no -lack. - -8:16 But thanks be to God, which put the same earnest care into the -heart of Titus for you. - -8:17 For indeed he accepted the exhortation; but being more forward, -of his own accord he went unto you. - -8:18 And we have sent with him the brother, whose praise is in the -gospel throughout all the churches; 8:19 And not that only, but who -was also chosen of the churches to travel with us with this grace, -which is administered by us to the glory of the same Lord, and -declaration of your ready mind: 8:20 Avoiding this, that no man should -blame us in this abundance which is administered by us: 8:21 Providing -for honest things, not only in the sight of the Lord, but also in the -sight of men. - -8:22 And we have sent with them our brother, whom we have oftentimes -proved diligent in many things, but now much more diligent, upon the -great confidence which I have in you. - -8:23 Whether any do enquire of Titus, he is my partner and -fellowhelper concerning you: or our brethren be enquired of, they are -the messengers of the churches, and the glory of Christ. - -8:24 Wherefore shew ye to them, and before the churches, the proof of -your love, and of our boasting on your behalf. - -9:1 For as touching the ministering to the saints, it is superfluous -for me to write to you: 9:2 For I know the forwardness of your mind, -for which I boast of you to them of Macedonia, that Achaia was ready a -year ago; and your zeal hath provoked very many. - -9:3 Yet have I sent the brethren, lest our boasting of you should be -in vain in this behalf; that, as I said, ye may be ready: 9:4 Lest -haply if they of Macedonia come with me, and find you unprepared, we -(that we say not, ye) should be ashamed in this same confident -boasting. - -9:5 Therefore I thought it necessary to exhort the brethren, that they -would go before unto you, and make up beforehand your bounty, whereof -ye had notice before, that the same might be ready, as a matter of -bounty, and not as of covetousness. - -9:6 But this I say, He which soweth sparingly shall reap also -sparingly; and he which soweth bountifully shall reap also -bountifully. - -9:7 Every man according as he purposeth in his heart, so let him give; -not grudgingly, or of necessity: for God loveth a cheerful giver. - -9:8 And God is able to make all grace abound toward you; that ye, -always having all sufficiency in all things, may abound to every good -work: 9:9 (As it is written, He hath dispersed abroad; he hath given -to the poor: his righteousness remaineth for ever. - -9:10 Now he that ministereth seed to the sower both minister bread for -your food, and multiply your seed sown, and increase the fruits of -your righteousness;) 9:11 Being enriched in every thing to all -bountifulness, which causeth through us thanksgiving to God. - -9:12 For the administration of this service not only supplieth the -want of the saints, but is abundant also by many thanksgivings unto -God; 9:13 Whiles by the experiment of this ministration they glorify -God for your professed subjection unto the gospel of Christ, and for -your liberal distribution unto them, and unto all men; 9:14 And by -their prayer for you, which long after you for the exceeding grace of -God in you. - -9:15 Thanks be unto God for his unspeakable gift. - -10:1 Now I Paul myself beseech you by the meekness and gentleness of -Christ, who in presence am base among you, but being absent am bold -toward you: 10:2 But I beseech you, that I may not be bold when I am -present with that confidence, wherewith I think to be bold against -some, which think of us as if we walked according to the flesh. - -10:3 For though we walk in the flesh, we do not war after the flesh: -10:4 (For the weapons of our warfare are not carnal, but mighty -through God to the pulling down of strong holds;) 10:5 Casting down -imaginations, and every high thing that exalteth itself against the -knowledge of God, and bringing into captivity every thought to the -obedience of Christ; 10:6 And having in a readiness to revenge all -disobedience, when your obedience is fulfilled. - -10:7 Do ye look on things after the outward appearance? If any man -trust to himself that he is Christ's, let him of himself think this -again, that, as he is Christ's, even so are we Christ's. - -10:8 For though I should boast somewhat more of our authority, which -the Lord hath given us for edification, and not for your destruction, -I should not be ashamed: 10:9 That I may not seem as if I would -terrify you by letters. - -10:10 For his letters, say they, are weighty and powerful; but his -bodily presence is weak, and his speech contemptible. - -10:11 Let such an one think this, that, such as we are in word by -letters when we are absent, such will we be also in deed when we are -present. - -10:12 For we dare not make ourselves of the number, or compare -ourselves with some that commend themselves: but they measuring -themselves by themselves, and comparing themselves among themselves, -are not wise. - -10:13 But we will not boast of things without our measure, but -according to the measure of the rule which God hath distributed to us, -a measure to reach even unto you. - -10:14 For we stretch not ourselves beyond our measure, as though we -reached not unto you: for we are come as far as to you also in -preaching the gospel of Christ: 10:15 Not boasting of things without -our measure, that is, of other men's labours; but having hope, when -your faith is increased, that we shall be enlarged by you according to -our rule abundantly, 10:16 To preach the gospel in the regions beyond -you, and not to boast in another man's line of things made ready to -our hand. - -10:17 But he that glorieth, let him glory in the Lord. - -10:18 For not he that commendeth himself is approved, but whom the -Lord commendeth. - -11:1 Would to God ye could bear with me a little in my folly: and -indeed bear with me. - -11:2 For I am jealous over you with godly jealousy: for I have -espoused you to one husband, that I may present you as a chaste virgin -to Christ. - -11:3 But I fear, lest by any means, as the serpent beguiled Eve -through his subtilty, so your minds should be corrupted from the -simplicity that is in Christ. - -11:4 For if he that cometh preacheth another Jesus, whom we have not -preached, or if ye receive another spirit, which ye have not received, -or another gospel, which ye have not accepted, ye might well bear with -him. - -11:5 For I suppose I was not a whit behind the very chiefest apostles. - -11:6 But though I be rude in speech, yet not in knowledge; but we have -been throughly made manifest among you in all things. - -11:7 Have I committed an offence in abasing myself that ye might be -exalted, because I have preached to you the gospel of God freely? -11:8 I robbed other churches, taking wages of them, to do you service. - -11:9 And when I was present with you, and wanted, I was chargeable to -no man: for that which was lacking to me the brethren which came from -Macedonia supplied: and in all things I have kept myself from being -burdensome unto you, and so will I keep myself. - -11:10 As the truth of Christ is in me, no man shall stop me of this -boasting in the regions of Achaia. - -11:11 Wherefore? because I love you not? God knoweth. - -11:12 But what I do, that I will do, that I may cut off occasion from -them which desire occasion; that wherein they glory, they may be found -even as we. - -11:13 For such are false apostles, deceitful workers, transforming -themselves into the apostles of Christ. - -11:14 And no marvel; for Satan himself is transformed into an angel of -light. - -11:15 Therefore it is no great thing if his ministers also be -transformed as the ministers of righteousness; whose end shall be -according to their works. - -11:16 I say again, Let no man think me a fool; if otherwise, yet as a -fool receive me, that I may boast myself a little. - -11:17 That which I speak, I speak it not after the Lord, but as it -were foolishly, in this confidence of boasting. - -11:18 Seeing that many glory after the flesh, I will glory also. - -11:19 For ye suffer fools gladly, seeing ye yourselves are wise. - -11:20 For ye suffer, if a man bring you into bondage, if a man devour -you, if a man take of you, if a man exalt himself, if a man smite you -on the face. - -11:21 I speak as concerning reproach, as though we had been weak. -Howbeit whereinsoever any is bold, (I speak foolishly,) I am bold -also. - -11:22 Are they Hebrews? so am I. Are they Israelites? so am I. Are -they the seed of Abraham? so am I. - -11:23 Are they ministers of Christ? (I speak as a fool) I am more; in -labours more abundant, in stripes above measure, in prisons more -frequent, in deaths oft. - -11:24 Of the Jews five times received I forty stripes save one. - -11:25 Thrice was I beaten with rods, once was I stoned, thrice I -suffered shipwreck, a night and a day I have been in the deep; 11:26 -In journeyings often, in perils of waters, in perils of robbers, in -perils by mine own countrymen, in perils by the heathen, in perils in -the city, in perils in the wilderness, in perils in the sea, in perils -among false brethren; 11:27 In weariness and painfulness, in watchings -often, in hunger and thirst, in fastings often, in cold and nakedness. - -11:28 Beside those things that are without, that which cometh upon me -daily, the care of all the churches. - -11:29 Who is weak, and I am not weak? who is offended, and I burn not? -11:30 If I must needs glory, I will glory of the things which concern -mine infirmities. - -11:31 The God and Father of our Lord Jesus Christ, which is blessed -for evermore, knoweth that I lie not. - -11:32 In Damascus the governor under Aretas the king kept the city of -the Damascenes with a garrison, desirous to apprehend me: 11:33 And -through a window in a basket was I let down by the wall, and escaped -his hands. - -12:1 It is not expedient for me doubtless to glory. I will come to -visions and revelations of the Lord. - -12:2 I knew a man in Christ above fourteen years ago, (whether in the -body, I cannot tell; or whether out of the body, I cannot tell: God -knoweth;) such an one caught up to the third heaven. - -12:3 And I knew such a man, (whether in the body, or out of the body, -I cannot tell: God knoweth;) 12:4 How that he was caught up into -paradise, and heard unspeakable words, which it is not lawful for a -man to utter. - -12:5 Of such an one will I glory: yet of myself I will not glory, but -in mine infirmities. - -12:6 For though I would desire to glory, I shall not be a fool; for I -will say the truth: but now I forbear, lest any man should think of me -above that which he seeth me to be, or that he heareth of me. - -12:7 And lest I should be exalted above measure through the abundance -of the revelations, there was given to me a thorn in the flesh, the -messenger of Satan to buffet me, lest I should be exalted above -measure. - -12:8 For this thing I besought the Lord thrice, that it might depart -from me. - -12:9 And he said unto me, My grace is sufficient for thee: for my -strength is made perfect in weakness. Most gladly therefore will I -rather glory in my infirmities, that the power of Christ may rest upon -me. - -12:10 Therefore I take pleasure in infirmities, in reproaches, in -necessities, in persecutions, in distresses for Christ's sake: for -when I am weak, then am I strong. - -12:11 I am become a fool in glorying; ye have compelled me: for I -ought to have been commended of you: for in nothing am I behind the -very chiefest apostles, though I be nothing. - -12:12 Truly the signs of an apostle were wrought among you in all -patience, in signs, and wonders, and mighty deeds. - -12:13 For what is it wherein ye were inferior to other churches, -except it be that I myself was not burdensome to you? forgive me this -wrong. - -12:14 Behold, the third time I am ready to come to you; and I will not -be burdensome to you: for I seek not your's but you: for the children -ought not to lay up for the parents, but the parents for the children. - -12:15 And I will very gladly spend and be spent for you; though the -more abundantly I love you, the less I be loved. - -12:16 But be it so, I did not burden you: nevertheless, being crafty, -I caught you with guile. - -12:17 Did I make a gain of you by any of them whom I sent unto you? -12:18 I desired Titus, and with him I sent a brother. Did Titus make a -gain of you? walked we not in the same spirit? walked we not in the -same steps? 12:19 Again, think ye that we excuse ourselves unto you? -we speak before God in Christ: but we do all things, dearly beloved, -for your edifying. - -12:20 For I fear, lest, when I come, I shall not find you such as I -would, and that I shall be found unto you such as ye would not: lest -there be debates, envyings, wraths, strifes, backbitings, whisperings, -swellings, tumults: 12:21 And lest, when I come again, my God will -humble me among you, and that I shall bewail many which have sinned -already, and have not repented of the uncleanness and fornication and -lasciviousness which they have committed. - -13:1 This is the third time I am coming to you. In the mouth of two or -three witnesses shall every word be established. - -13:2 I told you before, and foretell you, as if I were present, the -second time; and being absent now I write to them which heretofore -have sinned, and to all other, that, if I come again, I will not -spare: 13:3 Since ye seek a proof of Christ speaking in me, which to -you-ward is not weak, but is mighty in you. - -13:4 For though he was crucified through weakness, yet he liveth by -the power of God. For we also are weak in him, but we shall live with -him by the power of God toward you. - -13:5 Examine yourselves, whether ye be in the faith; prove your own -selves. Know ye not your own selves, how that Jesus Christ is in you, -except ye be reprobates? 13:6 But I trust that ye shall know that we -are not reprobates. - -13:7 Now I pray to God that ye do no evil; not that we should appear -approved, but that ye should do that which is honest, though we be as -reprobates. - -13:8 For we can do nothing against the truth, but for the truth. - -13:9 For we are glad, when we are weak, and ye are strong: and this -also we wish, even your perfection. - -13:10 Therefore I write these things being absent, lest being present -I should use sharpness, according to the power which the Lord hath -given me to edification, and not to destruction. - -13:11 Finally, brethren, farewell. Be perfect, be of good comfort, be -of one mind, live in peace; and the God of love and peace shall be -with you. - -13:12 Greet one another with an holy kiss. - -13:13 All the saints salute you. - -13:14 The grace of the Lord Jesus Christ, and the love of God, and the -communion of the Holy Ghost, be with you all. Amen. - - - - -The Epistle of Paul the Apostle to the Galatians - - -1:1 Paul, an apostle, (not of men, neither by man, but by Jesus -Christ, and God the Father, who raised him from the dead;) 1:2 And all -the brethren which are with me, unto the churches of Galatia: 1:3 -Grace be to you and peace from God the Father, and from our Lord Jesus -Christ, 1:4 Who gave himself for our sins, that he might deliver us -from this present evil world, according to the will of God and our -Father: 1:5 To whom be glory for ever and ever. Amen. - -1:6 I marvel that ye are so soon removed from him that called you into -the grace of Christ unto another gospel: 1:7 Which is not another; but -there be some that trouble you, and would pervert the gospel of -Christ. - -1:8 But though we, or an angel from heaven, preach any other gospel -unto you than that which we have preached unto you, let him be -accursed. - -1:9 As we said before, so say I now again, if any man preach any other -gospel unto you than that ye have received, let him be accursed. - -1:10 For do I now persuade men, or God? or do I seek to please men? -for if I yet pleased men, I should not be the servant of Christ. - -1:11 But I certify you, brethren, that the gospel which was preached -of me is not after man. - -1:12 For I neither received it of man, neither was I taught it, but by -the revelation of Jesus Christ. - -1:13 For ye have heard of my conversation in time past in the Jews' -religion, how that beyond measure I persecuted the church of God, and -wasted it: 1:14 And profited in the Jews' religion above many my -equals in mine own nation, being more exceedingly zealous of the -traditions of my fathers. - -1:15 But when it pleased God, who separated me from my mother's womb, -and called me by his grace, 1:16 To reveal his Son in me, that I might -preach him among the heathen; immediately I conferred not with flesh -and blood: 1:17 Neither went I up to Jerusalem to them which were -apostles before me; but I went into Arabia, and returned again unto -Damascus. - -1:18 Then after three years I went up to Jerusalem to see Peter, and -abode with him fifteen days. - -1:19 But other of the apostles saw I none, save James the Lord's -brother. - -1:20 Now the things which I write unto you, behold, before God, I lie -not. - -1:21 Afterwards I came into the regions of Syria and Cilicia; 1:22 And -was unknown by face unto the churches of Judaea which were in Christ: -1:23 But they had heard only, That he which persecuted us in times -past now preacheth the faith which once he destroyed. - -1:24 And they glorified God in me. - -2:1 Then fourteen years after I went up again to Jerusalem with -Barnabas, and took Titus with me also. - -2:2 And I went up by revelation, and communicated unto them that -gospel which I preach among the Gentiles, but privately to them which -were of reputation, lest by any means I should run, or had run, in -vain. - -2:3 But neither Titus, who was with me, being a Greek, was compelled -to be circumcised: 2:4 And that because of false brethren unawares -brought in, who came in privily to spy out our liberty which we have -in Christ Jesus, that they might bring us into bondage: 2:5 To whom we -gave place by subjection, no, not for an hour; that the truth of the -gospel might continue with you. - -2:6 But of these who seemed to be somewhat, (whatsoever they were, it -maketh no matter to me: God accepteth no man's person:) for they who -seemed to be somewhat in conference added nothing to me: 2:7 But -contrariwise, when they saw that the gospel of the uncircumcision was -committed unto me, as the gospel of the circumcision was unto Peter; -2:8 (For he that wrought effectually in Peter to the apostleship of -the circumcision, the same was mighty in me toward the Gentiles:) 2:9 -And when James, Cephas, and John, who seemed to be pillars, perceived -the grace that was given unto me, they gave to me and Barnabas the -right hands of fellowship; that we should go unto the heathen, and -they unto the circumcision. - -2:10 Only they would that we should remember the poor; the same which -I also was forward to do. - -2:11 But when Peter was come to Antioch, I withstood him to the face, -because he was to be blamed. - -2:12 For before that certain came from James, he did eat with the -Gentiles: but when they were come, he withdrew and separated himself, -fearing them which were of the circumcision. - -2:13 And the other Jews dissembled likewise with him; insomuch that -Barnabas also was carried away with their dissimulation. - -2:14 But when I saw that they walked not uprightly according to the -truth of the gospel, I said unto Peter before them all, If thou, being -a Jew, livest after the manner of Gentiles, and not as do the Jews, -why compellest thou the Gentiles to live as do the Jews? 2:15 We who -are Jews by nature, and not sinners of the Gentiles, 2:16 Knowing that -a man is not justified by the works of the law, but by the faith of -Jesus Christ, even we have believed in Jesus Christ, that we might be -justified by the faith of Christ, and not by the works of the law: for -by the works of the law shall no flesh be justified. - -2:17 But if, while we seek to be justified by Christ, we ourselves -also are found sinners, is therefore Christ the minister of sin? God -forbid. - -2:18 For if I build again the things which I destroyed, I make myself -a transgressor. - -2:19 For I through the law am dead to the law, that I might live unto -God. - -2:20 I am crucified with Christ: neverthless I live; yet not I, but -Christ liveth in me: and the life which I now live in the flesh I live -by the faith of the Son of God, who loved me, and gave himself for me. - -2:21 I do not frustrate the grace of God: for if righteousness come by -the law, then Christ is dead in vain. - -3:1 O foolish Galatians, who hath bewitched you, that ye should not -obey the truth, before whose eyes Jesus Christ hath been evidently set -forth, crucified among you? 3:2 This only would I learn of you, -Received ye the Spirit by the works of the law, or by the hearing of -faith? 3:3 Are ye so foolish? having begun in the Spirit, are ye now -made perfect by the flesh? 3:4 Have ye suffered so many things in -vain? if it be yet in vain. - -3:5 He therefore that ministereth to you the Spirit, and worketh -miracles among you, doeth he it by the works of the law, or by the -hearing of faith? 3:6 Even as Abraham believed God, and it was -accounted to him for righteousness. - -3:7 Know ye therefore that they which are of faith, the same are the -children of Abraham. - -3:8 And the scripture, foreseeing that God would justify the heathen -through faith, preached before the gospel unto Abraham, saying, In -thee shall all nations be blessed. - -3:9 So then they which be of faith are blessed with faithful Abraham. - -3:10 For as many as are of the works of the law are under the curse: -for it is written, Cursed is every one that continueth not in all -things which are written in the book of the law to do them. - -3:11 But that no man is justified by the law in the sight of God, it -is evident: for, The just shall live by faith. - -3:12 And the law is not of faith: but, The man that doeth them shall -live in them. - -3:13 Christ hath redeemed us from the curse of the law, being made a -curse for us: for it is written, Cursed is every one that hangeth on a -tree: 3:14 That the blessing of Abraham might come on the Gentiles -through Jesus Christ; that we might receive the promise of the Spirit -through faith. - -3:15 Brethren, I speak after the manner of men; Though it be but a -man's covenant, yet if it be confirmed, no man disannulleth, or addeth -thereto. - -3:16 Now to Abraham and his seed were the promises made. He saith not, -And to seeds, as of many; but as of one, And to thy seed, which is -Christ. - -3:17 And this I say, that the covenant, that was confirmed before of -God in Christ, the law, which was four hundred and thirty years after, -cannot disannul, that it should make the promise of none effect. - -3:18 For if the inheritance be of the law, it is no more of promise: -but God gave it to Abraham by promise. - -3:19 Wherefore then serveth the law? It was added because of -transgressions, till the seed should come to whom the promise was -made; and it was ordained by angels in the hand of a mediator. - -3:20 Now a mediator is not a mediator of one, but God is one. - -3:21 Is the law then against the promises of God? God forbid: for if -there had been a law given which could have given life, verily -righteousness should have been by the law. - -3:22 But the scripture hath concluded all under sin, that the promise -by faith of Jesus Christ might be given to them that believe. - -3:23 But before faith came, we were kept under the law, shut up unto -the faith which should afterwards be revealed. - -3:24 Wherefore the law was our schoolmaster to bring us unto Christ, -that we might be justified by faith. - -3:25 But after that faith is come, we are no longer under a -schoolmaster. - -3:26 For ye are all the children of God by faith in Christ Jesus. - -3:27 For as many of you as have been baptized into Christ have put on -Christ. - -3:28 There is neither Jew nor Greek, there is neither bond nor free, -there is neither male nor female: for ye are all one in Christ Jesus. - -3:29 And if ye be Christ's, then are ye Abraham's seed, and heirs -according to the promise. - -4:1 Now I say, That the heir, as long as he is a child, differeth -nothing from a servant, though he be lord of all; 4:2 But is under -tutors and governors until the time appointed of the father. - -4:3 Even so we, when we were children, were in bondage under the -elements of the world: 4:4 But when the fulness of the time was come, -God sent forth his Son, made of a woman, made under the law, 4:5 To -redeem them that were under the law, that we might receive the -adoption of sons. - -4:6 And because ye are sons, God hath sent forth the Spirit of his Son -into your hearts, crying, Abba, Father. - -4:7 Wherefore thou art no more a servant, but a son; and if a son, -then an heir of God through Christ. - -4:8 Howbeit then, when ye knew not God, ye did service unto them which -by nature are no gods. - -4:9 But now, after that ye have known God, or rather are known of God, -how turn ye again to the weak and beggarly elements, whereunto ye -desire again to be in bondage? 4:10 Ye observe days, and months, and -times, and years. - -4:11 I am afraid of you, lest I have bestowed upon you labour in vain. - -4:12 Brethren, I beseech you, be as I am; for I am as ye are: ye have -not injured me at all. - -4:13 Ye know how through infirmity of the flesh I preached the gospel -unto you at the first. - -4:14 And my temptation which was in my flesh ye despised not, nor -rejected; but received me as an angel of God, even as Christ Jesus. - -4:15 Where is then the blessedness ye spake of? for I bear you record, -that, if it had been possible, ye would have plucked out your own -eyes, and have given them to me. - -4:16 Am I therefore become your enemy, because I tell you the truth? -4:17 They zealously affect you, but not well; yea, they would exclude -you, that ye might affect them. - -4:18 But it is good to be zealously affected always in a good thing, -and not only when I am present with you. - -4:19 My little children, of whom I travail in birth again until Christ -be formed in you, 4:20 I desire to be present with you now, and to -change my voice; for I stand in doubt of you. - -4:21 Tell me, ye that desire to be under the law, do ye not hear the -law? 4:22 For it is written, that Abraham had two sons, the one by a -bondmaid, the other by a freewoman. - -4:23 But he who was of the bondwoman was born after the flesh; but he -of the freewoman was by promise. - -4:24 Which things are an allegory: for these are the two covenants; -the one from the mount Sinai, which gendereth to bondage, which is -Agar. - -4:25 For this Agar is mount Sinai in Arabia, and answereth to -Jerusalem which now is, and is in bondage with her children. - -4:26 But Jerusalem which is above is free, which is the mother of us -all. - -4:27 For it is written, Rejoice, thou barren that bearest not; break -forth and cry, thou that travailest not: for the desolate hath many -more children than she which hath an husband. - -4:28 Now we, brethren, as Isaac was, are the children of promise. - -4:29 But as then he that was born after the flesh persecuted him that -was born after the Spirit, even so it is now. - -4:30 Nevertheless what saith the scripture? Cast out the bondwoman and -her son: for the son of the bondwoman shall not be heir with the son -of the freewoman. - -4:31 So then, brethren, we are not children of the bondwoman, but of -the free. - -5:1 Stand fast therefore in the liberty wherewith Christ hath made us -free, and be not entangled again with the yoke of bondage. - -5:2 Behold, I Paul say unto you, that if ye be circumcised, Christ -shall profit you nothing. - -5:3 For I testify again to every man that is circumcised, that he is a -debtor to do the whole law. - -5:4 Christ is become of no effect unto you, whosoever of you are -justified by the law; ye are fallen from grace. - -5:5 For we through the Spirit wait for the hope of righteousness by -faith. - -5:6 For in Jesus Christ neither circumcision availeth any thing, nor -uncircumcision; but faith which worketh by love. - -5:7 Ye did run well; who did hinder you that ye should not obey the -truth? 5:8 This persuasion cometh not of him that calleth you. - -5:9 A little leaven leaveneth the whole lump. - -5:10 I have confidence in you through the Lord, that ye will be none -otherwise minded: but he that troubleth you shall bear his judgment, -whosoever he be. - -5:11 And I, brethren, if I yet preach circumcision, why do I yet -suffer persecution? then is the offence of the cross ceased. - -5:12 I would they were even cut off which trouble you. - -5:13 For, brethren, ye have been called unto liberty; only use not -liberty for an occasion to the flesh, but by love serve one another. - -5:14 For all the law is fulfilled in one word, even in this; Thou -shalt love thy neighbour as thyself. - -5:15 But if ye bite and devour one another, take heed that ye be not -consumed one of another. - -5:16 This I say then, Walk in the Spirit, and ye shall not fulfil the -lust of the flesh. - -5:17 For the flesh lusteth against the Spirit, and the Spirit against -the flesh: and these are contrary the one to the other: so that ye -cannot do the things that ye would. - -5:18 But if ye be led of the Spirit, ye are not under the law. - -5:19 Now the works of the flesh are manifest, which are these; -Adultery, fornication, uncleanness, lasciviousness, 5:20 Idolatry, -witchcraft, hatred, variance, emulations, wrath, strife, seditions, -heresies, 5:21 Envyings, murders, drunkenness, revellings, and such -like: of the which I tell you before, as I have also told you in time -past, that they which do such things shall not inherit the kingdom of -God. - -5:22 But the fruit of the Spirit is love, joy, peace, longsuffering, -gentleness, goodness, faith, 5:23 Meekness, temperance: against such -there is no law. - -5:24 And they that are Christ's have crucified the flesh with the -affections and lusts. - -5:25 If we live in the Spirit, let us also walk in the Spirit. - -5:26 Let us not be desirous of vain glory, provoking one another, -envying one another. - -6:1 Brethren, if a man be overtaken in a fault, ye which are -spiritual, restore such an one in the spirit of meekness; considering -thyself, lest thou also be tempted. - -6:2 Bear ye one another's burdens, and so fulfil the law of Christ. - -6:3 For if a man think himself to be something, when he is nothing, he -deceiveth himself. - -6:4 But let every man prove his own work, and then shall he have -rejoicing in himself alone, and not in another. - -6:5 For every man shall bear his own burden. - -6:6 Let him that is taught in the word communicate unto him that -teacheth in all good things. - -6:7 Be not deceived; God is not mocked: for whatsoever a man soweth, -that shall he also reap. - -6:8 For he that soweth to his flesh shall of the flesh reap -corruption; but he that soweth to the Spirit shall of the Spirit reap -life everlasting. - -6:9 And let us not be weary in well doing: for in due season we shall -reap, if we faint not. - -6:10 As we have therefore opportunity, let us do good unto all men, -especially unto them who are of the household of faith. - -6:11 Ye see how large a letter I have written unto you with mine own -hand. - -6:12 As many as desire to make a fair shew in the flesh, they -constrain you to be circumcised; only lest they should suffer -persecution for the cross of Christ. - -6:13 For neither they themselves who are circumcised keep the law; but -desire to have you circumcised, that they may glory in your flesh. - -6:14 But God forbid that I should glory, save in the cross of our Lord -Jesus Christ, by whom the world is crucified unto me, and I unto the -world. - -6:15 For in Christ Jesus neither circumcision availeth any thing, nor -uncircumcision, but a new creature. - -6:16 And as many as walk according to this rule, peace be on them, and -mercy, and upon the Israel of God. - -6:17 From henceforth let no man trouble me: for I bear in my body the -marks of the Lord Jesus. - -6:18 Brethren, the grace of our Lord Jesus Christ be with your spirit. - -Amen. - - - -The Epistle of Paul the Apostle to the Ephesians - - -1:1 Paul, an apostle of Jesus Christ by the will of God, to the -saints which are at Ephesus, and to the faithful in Christ Jesus: -1:2 Grace be to you, and peace, from God our Father, and from the Lord -Jesus Christ. - -1:3 Blessed be the God and Father of our Lord Jesus Christ, who hath -blessed us with all spiritual blessings in heavenly places in Christ: -1:4 According as he hath chosen us in him before the foundation of the -world, that we should be holy and without blame before him in love: -1:5 Having predestinated us unto the adoption of children by Jesus -Christ to himself, according to the good pleasure of his will, 1:6 To -the praise of the glory of his grace, wherein he hath made us accepted -in the beloved. - -1:7 In whom we have redemption through his blood, the forgiveness of -sins, according to the riches of his grace; 1:8 Wherein he hath -abounded toward us in all wisdom and prudence; 1:9 Having made known -unto us the mystery of his will, according to his good pleasure which -he hath purposed in himself: 1:10 That in the dispensation of the -fulness of times he might gather together in one all things in Christ, -both which are in heaven, and which are on earth; even in him: 1:11 In -whom also we have obtained an inheritance, being predestinated -according to the purpose of him who worketh all things after the -counsel of his own will: 1:12 That we should be to the praise of his -glory, who first trusted in Christ. - -1:13 In whom ye also trusted, after that ye heard the word of truth, -the gospel of your salvation: in whom also after that ye believed, ye -were sealed with that holy Spirit of promise, 1:14 Which is the -earnest of our inheritance until the redemption of the purchased -possession, unto the praise of his glory. - -1:15 Wherefore I also, after I heard of your faith in the Lord Jesus, -and love unto all the saints, 1:16 Cease not to give thanks for you, -making mention of you in my prayers; 1:17 That the God of our Lord -Jesus Christ, the Father of glory, may give unto you the spirit of -wisdom and revelation in the knowledge of him: 1:18 The eyes of your -understanding being enlightened; that ye may know what is the hope of -his calling, and what the riches of the glory of his inheritance in -the saints, 1:19 And what is the exceeding greatness of his power to -us-ward who believe, according to the working of his mighty power, -1:20 Which he wrought in Christ, when he raised him from the dead, and -set him at his own right hand in the heavenly places, 1:21 Far above -all principality, and power, and might, and dominion, and every name -that is named, not only in this world, but also in that which is to -come: 1:22 And hath put all things under his feet, and gave him to be -the head over all things to the church, 1:23 Which is his body, the -fulness of him that filleth all in all. - -2:1 And you hath he quickened, who were dead in trespasses and sins; -2:2 Wherein in time past ye walked according to the course of this -world, according to the prince of the power of the air, the spirit -that now worketh in the children of disobedience: 2:3 Among whom also -we all had our conversation in times past in the lusts of our flesh, -fulfilling the desires of the flesh and of the mind; and were by -nature the children of wrath, even as others. - -2:4 But God, who is rich in mercy, for his great love wherewith he -loved us, 2:5 Even when we were dead in sins, hath quickened us -together with Christ, (by grace ye are saved;) 2:6 And hath raised us -up together, and made us sit together in heavenly places in Christ -Jesus: 2:7 That in the ages to come he might shew the exceeding riches -of his grace in his kindness toward us through Christ Jesus. - -2:8 For by grace are ye saved through faith; and that not of -yourselves: it is the gift of God: 2:9 Not of works, lest any man -should boast. - -2:10 For we are his workmanship, created in Christ Jesus unto good -works, which God hath before ordained that we should walk in them. - -2:11 Wherefore remember, that ye being in time past Gentiles in the -flesh, who are called Uncircumcision by that which is called the -Circumcision in the flesh made by hands; 2:12 That at that time ye -were without Christ, being aliens from the commonwealth of Israel, and -strangers from the covenants of promise, having no hope, and without -God in the world: 2:13 But now in Christ Jesus ye who sometimes were -far off are made nigh by the blood of Christ. - -2:14 For he is our peace, who hath made both one, and hath broken down -the middle wall of partition between us; 2:15 Having abolished in his -flesh the enmity, even the law of commandments contained in -ordinances; for to make in himself of twain one new man, so making -peace; 2:16 And that he might reconcile both unto God in one body by -the cross, having slain the enmity thereby: 2:17 And came and preached -peace to you which were afar off, and to them that were nigh. - -2:18 For through him we both have access by one Spirit unto the -Father. - -2:19 Now therefore ye are no more strangers and foreigners, but -fellowcitizens with the saints, and of the household of God; 2:20 And -are built upon the foundation of the apostles and prophets, Jesus -Christ himself being the chief corner stone; 2:21 In whom all the -building fitly framed together groweth unto an holy temple in the -Lord: 2:22 In whom ye also are builded together for an habitation of -God through the Spirit. - -3:1 For this cause I Paul, the prisoner of Jesus Christ for you -Gentiles, 3:2 If ye have heard of the dispensation of the grace of God -which is given me to you-ward: 3:3 How that by revelation he made -known unto me the mystery; (as I wrote afore in few words, 3:4 -Whereby, when ye read, ye may understand my knowledge in the mystery -of Christ) 3:5 Which in other ages was not made known unto the sons of -men, as it is now revealed unto his holy apostles and prophets by the -Spirit; 3:6 That the Gentiles should be fellowheirs, and of the same -body, and partakers of his promise in Christ by the gospel: 3:7 -Whereof I was made a minister, according to the gift of the grace of -God given unto me by the effectual working of his power. - -3:8 Unto me, who am less than the least of all saints, is this grace -given, that I should preach among the Gentiles the unsearchable riches -of Christ; 3:9 And to make all men see what is the fellowship of the -mystery, which from the beginning of the world hath been hid in God, -who created all things by Jesus Christ: 3:10 To the intent that now -unto the principalities and powers in heavenly places might be known -by the church the manifold wisdom of God, 3:11 According to the -eternal purpose which he purposed in Christ Jesus our Lord: 3:12 In -whom we have boldness and access with confidence by the faith of him. - -3:13 Wherefore I desire that ye faint not at my tribulations for you, -which is your glory. - -3:14 For this cause I bow my knees unto the Father of our Lord Jesus -Christ, 3:15 Of whom the whole family in heaven and earth is named, -3:16 That he would grant you, according to the riches of his glory, to -be strengthened with might by his Spirit in the inner man; 3:17 That -Christ may dwell in your hearts by faith; that ye, being rooted and -grounded in love, 3:18 May be able to comprehend with all saints what -is the breadth, and length, and depth, and height; 3:19 And to know -the love of Christ, which passeth knowledge, that ye might be filled -with all the fulness of God. - -3:20 Now unto him that is able to do exceeding abundantly above all -that we ask or think, according to the power that worketh in us, 3:21 -Unto him be glory in the church by Christ Jesus throughout all ages, -world without end. Amen. - -4:1 I therefore, the prisoner of the Lord, beseech you that ye walk -worthy of the vocation wherewith ye are called, 4:2 With all lowliness -and meekness, with longsuffering, forbearing one another in love; 4:3 -Endeavouring to keep the unity of the Spirit in the bond of peace. - -4:4 There is one body, and one Spirit, even as ye are called in one -hope of your calling; 4:5 One Lord, one faith, one baptism, 4:6 One -God and Father of all, who is above all, and through all, and in you -all. - -4:7 But unto every one of us is given grace according to the measure -of the gift of Christ. - -4:8 Wherefore he saith, When he ascended up on high, he led captivity -captive, and gave gifts unto men. - -4:9 (Now that he ascended, what is it but that he also descended first -into the lower parts of the earth? 4:10 He that descended is the same -also that ascended up far above all heavens, that he might fill all -things.) 4:11 And he gave some, apostles; and some, prophets; and -some, evangelists; and some, pastors and teachers; 4:12 For the -perfecting of the saints, for the work of the ministry, for the -edifying of the body of Christ: 4:13 Till we all come in the unity of -the faith, and of the knowledge of the Son of God, unto a perfect man, -unto the measure of the stature of the fulness of Christ: 4:14 That we -henceforth be no more children, tossed to and fro, and carried about -with every wind of doctrine, by the sleight of men, and cunning -craftiness, whereby they lie in wait to deceive; 4:15 But speaking the -truth in love, may grow up into him in all things, which is the head, -even Christ: 4:16 From whom the whole body fitly joined together and -compacted by that which every joint supplieth, according to the -effectual working in the measure of every part, maketh increase of the -body unto the edifying of itself in love. - -4:17 This I say therefore, and testify in the Lord, that ye henceforth -walk not as other Gentiles walk, in the vanity of their mind, 4:18 -Having the understanding darkened, being alienated from the life of -God through the ignorance that is in them, because of the blindness of -their heart: 4:19 Who being past feeling have given themselves over -unto lasciviousness, to work all uncleanness with greediness. - -4:20 But ye have not so learned Christ; 4:21 If so be that ye have -heard him, and have been taught by him, as the truth is in Jesus: 4:22 -That ye put off concerning the former conversation the old man, which -is corrupt according to the deceitful lusts; 4:23 And be renewed in -the spirit of your mind; 4:24 And that ye put on the new man, which -after God is created in righteousness and true holiness. - -4:25 Wherefore putting away lying, speak every man truth with his -neighbour: for we are members one of another. - -4:26 Be ye angry, and sin not: let not the sun go down upon your -wrath: 4:27 Neither give place to the devil. - -4:28 Let him that stole steal no more: but rather let him labour, -working with his hands the thing which is good, that he may have to -give to him that needeth. - -4:29 Let no corrupt communication proceed out of your mouth, but that -which is good to the use of edifying, that it may minister grace unto -the hearers. - -4:30 And grieve not the holy Spirit of God, whereby ye are sealed unto -the day of redemption. - -4:31 Let all bitterness, and wrath, and anger, and clamour, and evil -speaking, be put away from you, with all malice: 4:32 And be ye kind -one to another, tenderhearted, forgiving one another, even as God for -Christ's sake hath forgiven you. - -5:1 Be ye therefore followers of God, as dear children; 5:2 And walk -in love, as Christ also hath loved us, and hath given himself for us -an offering and a sacrifice to God for a sweetsmelling savour. - -5:3 But fornication, and all uncleanness, or covetousness, let it not -be once named among you, as becometh saints; 5:4 Neither filthiness, -nor foolish talking, nor jesting, which are not convenient: but rather -giving of thanks. - -5:5 For this ye know, that no whoremonger, nor unclean person, nor -covetous man, who is an idolater, hath any inheritance in the kingdom -of Christ and of God. - -5:6 Let no man deceive you with vain words: for because of these -things cometh the wrath of God upon the children of disobedience. - -5:7 Be not ye therefore partakers with them. - -5:8 For ye were sometimes darkness, but now are ye light in the Lord: -walk as children of light: 5:9 (For the fruit of the Spirit is in all -goodness and righteousness and truth;) 5:10 Proving what is acceptable -unto the Lord. - -5:11 And have no fellowship with the unfruitful works of darkness, but -rather reprove them. - -5:12 For it is a shame even to speak of those things which are done of -them in secret. - -5:13 But all things that are reproved are made manifest by the light: -for whatsoever doth make manifest is light. - -5:14 Wherefore he saith, Awake thou that sleepest, and arise from the -dead, and Christ shall give thee light. - -5:15 See then that ye walk circumspectly, not as fools, but as wise, -5:16 Redeeming the time, because the days are evil. - -5:17 Wherefore be ye not unwise, but understanding what the will of -the Lord is. - -5:18 And be not drunk with wine, wherein is excess; but be filled with -the Spirit; 5:19 Speaking to yourselves in psalms and hymns and -spiritual songs, singing and making melody in your heart to the Lord; -5:20 Giving thanks always for all things unto God and the Father in -the name of our Lord Jesus Christ; 5:21 Submitting yourselves one to -another in the fear of God. - -5:22 Wives, submit yourselves unto your own husbands, as unto the -Lord. - -5:23 For the husband is the head of the wife, even as Christ is the -head of the church: and he is the saviour of the body. - -5:24 Therefore as the church is subject unto Christ, so let the wives -be to their own husbands in every thing. - -5:25 Husbands, love your wives, even as Christ also loved the church, -and gave himself for it; 5:26 That he might sanctify and cleanse it -with the washing of water by the word, 5:27 That he might present it -to himself a glorious church, not having spot, or wrinkle, or any such -thing; but that it should be holy and without blemish. - -5:28 So ought men to love their wives as their own bodies. He that -loveth his wife loveth himself. - -5:29 For no man ever yet hated his own flesh; but nourisheth and -cherisheth it, even as the Lord the church: 5:30 For we are members of -his body, of his flesh, and of his bones. - -5:31 For this cause shall a man leave his father and mother, and shall -be joined unto his wife, and they two shall be one flesh. - -5:32 This is a great mystery: but I speak concerning Christ and the -church. - -5:33 Nevertheless let every one of you in particular so love his wife -even as himself; and the wife see that she reverence her husband. - -6:1 Children, obey your parents in the Lord: for this is right. - -6:2 Honour thy father and mother; which is the first commandment with -promise; 6:3 That it may be well with thee, and thou mayest live long -on the earth. - -6:4 And, ye fathers, provoke not your children to wrath: but bring -them up in the nurture and admonition of the Lord. - -6:5 Servants, be obedient to them that are your masters according to -the flesh, with fear and trembling, in singleness of your heart, as -unto Christ; 6:6 Not with eyeservice, as menpleasers; but as the -servants of Christ, doing the will of God from the heart; 6:7 With -good will doing service, as to the Lord, and not to men: 6:8 Knowing -that whatsoever good thing any man doeth, the same shall he receive of -the Lord, whether he be bond or free. - -6:9 And, ye masters, do the same things unto them, forbearing -threatening: knowing that your Master also is in heaven; neither is -there respect of persons with him. - -6:10 Finally, my brethren, be strong in the Lord, and in the power of -his might. - -6:11 Put on the whole armour of God, that ye may be able to stand -against the wiles of the devil. - -6:12 For we wrestle not against flesh and blood, but against -principalities, against powers, against the rulers of the darkness of -this world, against spiritual wickedness in high places. - -6:13 Wherefore take unto you the whole armour of God, that ye may be -able to withstand in the evil day, and having done all, to stand. - -6:14 Stand therefore, having your loins girt about with truth, and -having on the breastplate of righteousness; 6:15 And your feet shod -with the preparation of the gospel of peace; 6:16 Above all, taking -the shield of faith, wherewith ye shall be able to quench all the -fiery darts of the wicked. - -6:17 And take the helmet of salvation, and the sword of the Spirit, -which is the word of God: 6:18 Praying always with all prayer and -supplication in the Spirit, and watching thereunto with all -perseverance and supplication for all saints; 6:19 And for me, that -utterance may be given unto me, that I may open my mouth boldly, to -make known the mystery of the gospel, 6:20 For which I am an -ambassador in bonds: that therein I may speak boldly, as I ought to -speak. - -6:21 But that ye also may know my affairs, and how I do, Tychicus, a -beloved brother and faithful minister in the Lord, shall make known to -you all things: 6:22 Whom I have sent unto you for the same purpose, -that ye might know our affairs, and that he might comfort your hearts. - -6:23 Peace be to the brethren, and love with faith, from God the -Father and the Lord Jesus Christ. - -6:24 Grace be with all them that love our Lord Jesus Christ in -sincerity. - -Amen. - - - - -The Epistle of Paul the Apostle to the Philippians - - -1:1 Paul and Timotheus, the servants of Jesus Christ, to all the -saints in Christ Jesus which are at Philippi, with the bishops and -deacons: 1:2 Grace be unto you, and peace, from God our Father, and -from the Lord Jesus Christ. - -1:3 I thank my God upon every remembrance of you, 1:4 Always in every -prayer of mine for you all making request with joy, 1:5 For your -fellowship in the gospel from the first day until now; 1:6 Being -confident of this very thing, that he which hath begun a good work in -you will perform it until the day of Jesus Christ: 1:7 Even as it is -meet for me to think this of you all, because I have you in my heart; -inasmuch as both in my bonds, and in the defence and confirmation of -the gospel, ye all are partakers of my grace. - -1:8 For God is my record, how greatly I long after you all in the -bowels of Jesus Christ. - -1:9 And this I pray, that your love may abound yet more and more in -knowledge and in all judgment; 1:10 That ye may approve things that -are excellent; that ye may be sincere and without offence till the day -of Christ. - -1:11 Being filled with the fruits of righteousness, which are by Jesus -Christ, unto the glory and praise of God. - -1:12 But I would ye should understand, brethren, that the things which -happened unto me have fallen out rather unto the furtherance of the -gospel; 1:13 So that my bonds in Christ are manifest in all the -palace, and in all other places; 1:14 And many of the brethren in the -Lord, waxing confident by my bonds, are much more bold to speak the -word without fear. - -1:15 Some indeed preach Christ even of envy and strife; and some also -of good will: 1:16 The one preach Christ of contention, not sincerely, -supposing to add affliction to my bonds: 1:17 But the other of love, -knowing that I am set for the defence of the gospel. - -1:18 What then? notwithstanding, every way, whether in pretence, or in -truth, Christ is preached; and I therein do rejoice, yea, and will -rejoice. - -1:19 For I know that this shall turn to my salvation through your -prayer, and the supply of the Spirit of Jesus Christ, 1:20 According -to my earnest expectation and my hope, that in nothing I shall be -ashamed, but that with all boldness, as always, so now also Christ -shall be magnified in my body, whether it be by life, or by death. - -1:21 For to me to live is Christ, and to die is gain. - -1:22 But if I live in the flesh, this is the fruit of my labour: yet -what I shall choose I wot not. - -1:23 For I am in a strait betwixt two, having a desire to depart, and -to be with Christ; which is far better: 1:24 Nevertheless to abide in -the flesh is more needful for you. - -1:25 And having this confidence, I know that I shall abide and -continue with you all for your furtherance and joy of faith; 1:26 That -your rejoicing may be more abundant in Jesus Christ for me by my -coming to you again. - -1:27 Only let your conversation be as it becometh the gospel of -Christ: that whether I come and see you, or else be absent, I may hear -of your affairs, that ye stand fast in one spirit, with one mind -striving together for the faith of the gospel; 1:28 And in nothing -terrified by your adversaries: which is to them an evident token of -perdition, but to you of salvation, and that of God. - -1:29 For unto you it is given in the behalf of Christ, not only to -believe on him, but also to suffer for his sake; 1:30 Having the same -conflict which ye saw in me, and now hear to be in me. - -2:1 If there be therefore any consolation in Christ, if any comfort of -love, if any fellowship of the Spirit, if any bowels and mercies, 2:2 -Fulfil ye my joy, that ye be likeminded, having the same love, being -of one accord, of one mind. - -2:3 Let nothing be done through strife or vainglory; but in lowliness -of mind let each esteem other better than themselves. - -2:4 Look not every man on his own things, but every man also on the -things of others. - -2:5 Let this mind be in you, which was also in Christ Jesus: 2:6 Who, -being in the form of God, thought it not robbery to be equal with God: -2:7 But made himself of no reputation, and took upon him the form of a -servant, and was made in the likeness of men: 2:8 And being found in -fashion as a man, he humbled himself, and became obedient unto death, -even the death of the cross. - -2:9 Wherefore God also hath highly exalted him, and given him a name -which is above every name: 2:10 That at the name of Jesus every knee -should bow, of things in heaven, and things in earth, and things under -the earth; 2:11 And that every tongue should confess that Jesus Christ -is Lord, to the glory of God the Father. - -2:12 Wherefore, my beloved, as ye have always obeyed, not as in my -presence only, but now much more in my absence, work out your own -salvation with fear and trembling. - -2:13 For it is God which worketh in you both to will and to do of his -good pleasure. - -2:14 Do all things without murmurings and disputings: 2:15 That ye may -be blameless and harmless, the sons of God, without rebuke, in the -midst of a crooked and perverse nation, among whom ye shine as lights -in the world; 2:16 Holding forth the word of life; that I may rejoice -in the day of Christ, that I have not run in vain, neither laboured in -vain. - -2:17 Yea, and if I be offered upon the sacrifice and service of your -faith, I joy, and rejoice with you all. - -2:18 For the same cause also do ye joy, and rejoice with me. - -2:19 But I trust in the Lord Jesus to send Timotheus shortly unto you, -that I also may be of good comfort, when I know your state. - -2:20 For I have no man likeminded, who will naturally care for your -state. - -2:21 For all seek their own, not the things which are Jesus Christ's. - -2:22 But ye know the proof of him, that, as a son with the father, he -hath served with me in the gospel. - -2:23 Him therefore I hope to send presently, so soon as I shall see -how it will go with me. - -2:24 But I trust in the Lord that I also myself shall come shortly. - -2:25 Yet I supposed it necessary to send to you Epaphroditus, my -brother, and companion in labour, and fellowsoldier, but your -messenger, and he that ministered to my wants. - -2:26 For he longed after you all, and was full of heaviness, because -that ye had heard that he had been sick. - -2:27 For indeed he was sick nigh unto death: but God had mercy on him; -and not on him only, but on me also, lest I should have sorrow upon -sorrow. - -2:28 I sent him therefore the more carefully, that, when ye see him -again, ye may rejoice, and that I may be the less sorrowful. - -2:29 Receive him therefore in the Lord with all gladness; and hold -such in reputation: 2:30 Because for the work of Christ he was nigh -unto death, not regarding his life, to supply your lack of service -toward me. - -3:1 Finally, my brethren, rejoice in the Lord. To write the same -things to you, to me indeed is not grievous, but for you it is safe. - -3:2 Beware of dogs, beware of evil workers, beware of the concision. - -3:3 For we are the circumcision, which worship God in the spirit, and -rejoice in Christ Jesus, and have no confidence in the flesh. - -3:4 Though I might also have confidence in the flesh. If any other man -thinketh that he hath whereof he might trust in the flesh, I more: 3:5 -Circumcised the eighth day, of the stock of Israel, of the tribe of -Benjamin, an Hebrew of the Hebrews; as touching the law, a Pharisee; -3:6 Concerning zeal, persecuting the church; touching the -righteousness which is in the law, blameless. - -3:7 But what things were gain to me, those I counted loss for Christ. - -3:8 Yea doubtless, and I count all things but loss for the excellency -of the knowledge of Christ Jesus my Lord: for whom I have suffered the -loss of all things, and do count them but dung, that I may win Christ, -3:9 And be found in him, not having mine own righteousness, which is -of the law, but that which is through the faith of Christ, the -righteousness which is of God by faith: 3:10 That I may know him, and -the power of his resurrection, and the fellowship of his sufferings, -being made conformable unto his death; 3:11 If by any means I might -attain unto the resurrection of the dead. - -3:12 Not as though I had already attained, either were already -perfect: but I follow after, if that I may apprehend that for which -also I am apprehended of Christ Jesus. - -3:13 Brethren, I count not myself to have apprehended: but this one -thing I do, forgetting those things which are behind, and reaching -forth unto those things which are before, 3:14 I press toward the mark -for the prize of the high calling of God in Christ Jesus. - -3:15 Let us therefore, as many as be perfect, be thus minded: and if -in any thing ye be otherwise minded, God shall reveal even this unto -you. - -3:16 Nevertheless, whereto we have already attained, let us walk by -the same rule, let us mind the same thing. - -3:17 Brethren, be followers together of me, and mark them which walk -so as ye have us for an ensample. - -3:18 (For many walk, of whom I have told you often, and now tell you -even weeping, that they are the enemies of the cross of Christ: 3:19 -Whose end is destruction, whose God is their belly, and whose glory is -in their shame, who mind earthly things.) 3:20 For our conversation -is in heaven; from whence also we look for the Saviour, the Lord Jesus -Christ: 3:21 Who shall change our vile body, that it may be fashioned -like unto his glorious body, according to the working whereby he is -able even to subdue all things unto himself. - -4:1 Therefore, my brethren dearly beloved and longed for, my joy and -crown, so stand fast in the Lord, my dearly beloved. - -4:2 I beseech Euodias, and beseech Syntyche, that they be of the same -mind in the Lord. - -4:3 And I intreat thee also, true yokefellow, help those women which -laboured with me in the gospel, with Clement also, and with other my -fellowlabourers, whose names are in the book of life. - -4:4 Rejoice in the Lord alway: and again I say, Rejoice. - -4:5 Let your moderation be known unto all men. The Lord is at hand. - -4:6 Be careful for nothing; but in every thing by prayer and -supplication with thanksgiving let your requests be made known unto -God. - -4:7 And the peace of God, which passeth all understanding, shall keep -your hearts and minds through Christ Jesus. - -4:8 Finally, brethren, whatsoever things are true, whatsoever things -are honest, whatsoever things are just, whatsoever things are pure, -whatsoever things are lovely, whatsoever things are of good report; if -there be any virtue, and if there be any praise, think on these -things. - -4:9 Those things, which ye have both learned, and received, and heard, -and seen in me, do: and the God of peace shall be with you. - -4:10 But I rejoiced in the Lord greatly, that now at the last your -care of me hath flourished again; wherein ye were also careful, but ye -lacked opportunity. - -4:11 Not that I speak in respect of want: for I have learned, in -whatsoever state I am, therewith to be content. - -4:12 I know both how to be abased, and I know how to abound: every -where and in all things I am instructed both to be full and to be -hungry, both to abound and to suffer need. - -4:13 I can do all things through Christ which strengtheneth me. - -4:14 Notwithstanding ye have well done, that ye did communicate with -my affliction. - -4:15 Now ye Philippians know also, that in the beginning of the -gospel, when I departed from Macedonia, no church communicated with me -as concerning giving and receiving, but ye only. - -4:16 For even in Thessalonica ye sent once and again unto my -necessity. - -4:17 Not because I desire a gift: but I desire fruit that may abound -to your account. - -4:18 But I have all, and abound: I am full, having received of -Epaphroditus the things which were sent from you, an odour of a sweet -smell, a sacrifice acceptable, wellpleasing to God. - -4:19 But my God shall supply all your need according to his riches in -glory by Christ Jesus. - -4:20 Now unto God and our Father be glory for ever and ever. Amen. - -4:21 Salute every saint in Christ Jesus. The brethren which are with -me greet you. - -4:22 All the saints salute you, chiefly they that are of Caesar's -household. - -4:23 The grace of our Lord Jesus Christ be with you all. Amen. - - - - -The Epistle of Paul the Apostle to the Colossians - - -1:1 Paul, an apostle of Jesus Christ by the will of God, -and Timotheus our brother, 1:2 To the saints and faithful brethren -in Christ which are at Colosse: Grace be unto you, and peace, -from God our Father and the Lord Jesus Christ. - -1:3 We give thanks to God and the Father of our Lord Jesus Christ, praying -always for you, -1:4 Since we heard of your faith in Christ Jesus, and of the love which ye -have to all the saints, -1:5 For the hope which is laid up for you in heaven, whereof ye heard -before in the word of the truth of the gospel; -1:6 Which is come unto you, as it is in all the world; and bringeth forth -fruit, as it doth also in you, since the day ye heard of it, and knew the -grace of God in truth: -1:7 As ye also learned of Epaphras our dear fellowservant, who is for you -a faithful minister of Christ; -1:8 Who also declared unto us your love in the Spirit. - -1:9 For this cause we also, since the day we heard it, do not cease to -pray for you, and to desire that ye might be filled with the knowledge of his -will in all wisdom and spiritual understanding; -1:10 That ye might walk worthy of the Lord unto all pleasing, being -fruitful in every good work, and increasing in the knowledge of God; -1:11 Strengthened with all might, according to his glorious power, unto -all patience and longsuffering with joyfulness; -1:12 Giving thanks unto the Father, which hath made us meet to be -partakers of the inheritance of the saints in light: -1:13 Who hath delivered us from the power of darkness, and hath translated -us into the kingdom of his dear Son: -1:14 In whom we have redemption through his blood, even the forgiveness of -sins: -1:15 Who is the image of the invisible God, the firstborn of every -creature: -1:16 For by him were all things created, that are in heaven, and that are -in earth, visible and invisible, whether they be thrones, or dominions, or -principalities, or powers: all things were created by him, and for him: -1:17 And he is before all things, and by him all things consist. - -1:18 And he is the head of the body, the church: who is the beginning, the -firstborn from the dead; that in all things he might have the preeminence. - -1:19 For it pleased the Father that in him should all fulness dwell; -1:20 And, having made peace through the blood of his cross, by him to -reconcile all things unto himself; by him, I say, whether they be things in -earth, or things in heaven. - -1:21 And you, that were sometime alienated and enemies in your mind by -wicked works, yet now hath he reconciled -1:22 In the body of his flesh through death, to present you holy and -unblameable and unreproveable in his sight: -1:23 If ye continue in the faith grounded and settled, and be not moved -away from the hope of the gospel, which ye have heard, and which was preached -to every creature which is under heaven; whereof I Paul am made a minister; -1:24 Who now rejoice in my sufferings for you, and fill up that which is -behind of the afflictions of Christ in my flesh for his body's sake, which is -the church: -1:25 Whereof I am made a minister, according to the dispensation of God -which is given to me for you, to fulfil the word of God; -1:26 Even the mystery which hath been hid from ages and from generations, -but now is made manifest to his saints: -1:27 To whom God would make known what is the riches of the glory of this -mystery among the Gentiles; which is Christ in you, the hope of glory: -1:28 Whom we preach, warning every man, and teaching every man in all -wisdom; that we may present every man perfect in Christ Jesus: -1:29 Whereunto I also labour, striving according to his working, which -worketh in me mightily. - -2:1 For I would that ye knew what great conflict I have for you, and for -them at Laodicea, and for as many as have not seen my face in the flesh; -2:2 That their hearts might be comforted, being knit together in love, and -unto all riches of the full assurance of understanding, to the -acknowledgement of the mystery of God, and of the Father, and of Christ; -2:3 In whom are hid all the treasures of wisdom and knowledge. - -2:4 And this I say, lest any man should beguile you with enticing words. - -2:5 For though I be absent in the flesh, yet am I with you in the spirit, -joying and beholding your order, and the stedfastness of your faith in -Christ. - -2:6 As ye have therefore received Christ Jesus the Lord, so walk ye in -him: -2:7 Rooted and built up in him, and stablished in the faith, as ye have -been taught, abounding therein with thanksgiving. - -2:8 Beware lest any man spoil you through philosophy and vain deceit, -after the tradition of men, after the rudiments of the world, and not after -Christ. - -2:9 For in him dwelleth all the fulness of the Godhead bodily. - -2:10 And ye are complete in him, which is the head of all principality and -power: -2:11 In whom also ye are circumcised with the circumcision made without -hands, in putting off the body of the sins of the flesh by the circumcision -of Christ: -2:12 Buried with him in baptism, wherein also ye are risen with him -through the faith of the operation of God, who hath raised him from the dead. - -2:13 And you, being dead in your sins and the uncircumcision of your -flesh, hath he quickened together with him, having forgiven you all -trespasses; -2:14 Blotting out the handwriting of ordinances that was against us, which -was contrary to us, and took it out of the way, nailing it to his cross; -2:15 And having spoiled principalities and powers, he made a shew of them -openly, triumphing over them in it. - -2:16 Let no man therefore judge you in meat, or in drink, or in respect of -an holyday, or of the new moon, or of the sabbath days: -2:17 Which are a shadow of things to come; but the body is of Christ. - -2:18 Let no man beguile you of your reward in a voluntary humility and -worshipping of angels, intruding into those things which he hath not seen, -vainly puffed up by his fleshly mind, -2:19 And not holding the Head, from which all the body by joints and bands -having nourishment ministered, and knit together, increaseth with the -increase of God. - -2:20 Wherefore if ye be dead with Christ from the rudiments of the world, -why, as though living in the world, are ye subject to ordinances, -2:21 (Touch not; taste not; handle not; -2:22 Which all are to perish with the using;) after the commandments and -doctrines of men? -2:23 Which things have indeed a shew of wisdom in will worship, and -humility, and neglecting of the body: not in any honour to the satisfying -of the flesh. - -3:1 If ye then be risen with Christ, seek those things which are above, -where Christ sitteth on the right hand of God. - -3:2 Set your affection on things above, not on things on the earth. - -3:3 For ye are dead, and your life is hid with Christ in God. - -3:4 When Christ, who is our life, shall appear, then shall ye also appear -with him in glory. - -3:5 Mortify therefore your members which are upon the earth; fornication, -uncleanness, inordinate affection, evil concupiscence, and covetousness, -which is idolatry: -3:6 For which things' sake the wrath of God cometh on the children of -disobedience: -3:7 In the which ye also walked some time, when ye lived in them. - -3:8 But now ye also put off all these; anger, wrath, malice, blasphemy, -filthy communication out of your mouth. - -3:9 Lie not one to another, seeing that ye have put off the old man with -his deeds; -3:10 And have put on the new man, which is renewed in knowledge after the -image of him that created him: -3:11 Where there is neither Greek nor Jew, circumcision nor -uncircumcision, Barbarian, Scythian, bond nor free: but Christ is all, and in -all. - -3:12 Put on therefore, as the elect of God, holy and beloved, bowels of -mercies, kindness, humbleness of mind, meekness, longsuffering; -3:13 Forbearing one another, and forgiving one another, if any man have a -quarrel against any: even as Christ forgave you, so also do ye. - -3:14 And above all these things put on charity, which is the bond of -perfectness. - -3:15 And let the peace of God rule in your hearts, to the which also ye -are called in one body; and be ye thankful. - -3:16 Let the word of Christ dwell in you richly in all wisdom; teaching -and admonishing one another in psalms and hymns and spiritual songs, singing -with grace in your hearts to the Lord. - -3:17 And whatsoever ye do in word or deed, do all in the name of the Lord -Jesus, giving thanks to God and the Father by him. - -3:18 Wives, submit yourselves unto your own husbands, as it is fit in the -Lord. - -3:19 Husbands, love your wives, and be not bitter against them. - -3:20 Children, obey your parents in all things: for this is well pleasing -unto the Lord. - -3:21 Fathers, provoke not your children to anger, lest they be -discouraged. - -3:22 Servants, obey in all things your masters according to the flesh; not -with eyeservice, as menpleasers; but in singleness of heart, fearing God; -3:23 And whatsoever ye do, do it heartily, as to the Lord, and not unto -men; -3:24 Knowing that of the Lord ye shall receive the reward of the -inheritance: for ye serve the Lord Christ. - -3:25 But he that doeth wrong shall receive for the wrong which he hath -done: and there is no respect of persons. - -4:1 Masters, give unto your servants that which is just and equal; knowing -that ye also have a Master in heaven. - -4:2 Continue in prayer, and watch in the same with thanksgiving; -4:3 Withal praying also for us, that God would open unto us a door of -utterance, to speak the mystery of Christ, for which I am also in bonds: -4:4 That I may make it manifest, as I ought to speak. - -4:5 Walk in wisdom toward them that are without, redeeming the time. - -4:6 Let your speech be alway with grace, seasoned with salt, that ye may -know how ye ought to answer every man. - -4:7 All my state shall Tychicus declare unto you, who is a beloved -brother, and a faithful minister and fellowservant in the Lord: -4:8 Whom I have sent unto you for the same purpose, that he might know -your estate, and comfort your hearts; -4:9 With Onesimus, a faithful and beloved brother, who is one of you. They -shall make known unto you all things which are done here. - -4:10 Aristarchus my fellowprisoner saluteth you, and Marcus, sister's son -to Barnabas, (touching whom ye received commandments: if he come unto you, -receive him;) -4:11 And Jesus, which is called Justus, who are of the circumcision. These -only are my fellowworkers unto the kingdom of God, which have been a comfort -unto me. - -4:12 Epaphras, who is one of you, a servant of Christ, saluteth you, -always labouring fervently for you in prayers, that ye may stand perfect and -complete in all the will of God. - -4:13 For I bear him record, that he hath a great zeal for you, and them -that are in Laodicea, and them in Hierapolis. - -4:14 Luke, the beloved physician, and Demas, greet you. - -4:15 Salute the brethren which are in Laodicea, and Nymphas, and the -church which is in his house. - -4:16 And when this epistle is read among you, cause that it be read also -in the church of the Laodiceans; and that ye likewise read the epistle from -Laodicea. - -4:17 And say to Archippus, Take heed to the ministry which thou hast -received in the Lord, that thou fulfil it. - -4:18 The salutation by the hand of me Paul. Remember my bonds. Grace be -with you. Amen. - - - - -The First Epistle of Paul the Apostle to the Thessalonians - - -1:1 Paul, and Silvanus, and Timotheus, unto the church of the -Thessalonians which is in God the Father and in the Lord Jesus Christ: -Grace be unto you, and peace, from God our Father, and the Lord Jesus -Christ. - -1:2 We give thanks to God always for you all, making mention of you in -our prayers; 1:3 Remembering without ceasing your work of faith, and -labour of love, and patience of hope in our Lord Jesus Christ, in the -sight of God and our Father; 1:4 Knowing, brethren beloved, your -election of God. - -1:5 For our gospel came not unto you in word only, but also in power, -and in the Holy Ghost, and in much assurance; as ye know what manner -of men we were among you for your sake. - -1:6 And ye became followers of us, and of the Lord, having received -the word in much affliction, with joy of the Holy Ghost. - -1:7 So that ye were ensamples to all that believe in Macedonia and -Achaia. - -1:8 For from you sounded out the word of the Lord not only in -Macedonia and Achaia, but also in every place your faith to God-ward -is spread abroad; so that we need not to speak any thing. - -1:9 For they themselves shew of us what manner of entering in we had -unto you, and how ye turned to God from idols to serve the living and -true God; 1:10 And to wait for his Son from heaven, whom he raised -from the dead, even Jesus, which delivered us from the wrath to come. - -2:1 For yourselves, brethren, know our entrance in unto you, that it -was not in vain: 2:2 But even after that we had suffered before, and -were shamefully entreated, as ye know, at Philippi, we were bold in -our God to speak unto you the gospel of God with much contention. - -2:3 For our exhortation was not of deceit, nor of uncleanness, nor in -guile: 2:4 But as we were allowed of God to be put in trust with the -gospel, even so we speak; not as pleasing men, but God, which trieth -our hearts. - -2:5 For neither at any time used we flattering words, as ye know, nor -a cloke of covetousness; God is witness: 2:6 Nor of men sought we -glory, neither of you, nor yet of others, when we might have been -burdensome, as the apostles of Christ. - -2:7 But we were gentle among you, even as a nurse cherisheth her -children: 2:8 So being affectionately desirous of you, we were willing -to have imparted unto you, not the gospel of God only, but also our -own souls, because ye were dear unto us. - -2:9 For ye remember, brethren, our labour and travail: for labouring -night and day, because we would not be chargeable unto any of you, we -preached unto you the gospel of God. - -2:10 Ye are witnesses, and God also, how holily and justly and -unblameably we behaved ourselves among you that believe: 2:11 As ye -know how we exhorted and comforted and charged every one of you, as a -father doth his children, 2:12 That ye would walk worthy of God, who -hath called you unto his kingdom and glory. - -2:13 For this cause also thank we God without ceasing, because, when -ye received the word of God which ye heard of us, ye received it not -as the word of men, but as it is in truth, the word of God, which -effectually worketh also in you that believe. - -2:14 For ye, brethren, became followers of the churches of God which -in Judaea are in Christ Jesus: for ye also have suffered like things -of your own countrymen, even as they have of the Jews: 2:15 Who both -killed the Lord Jesus, and their own prophets, and have persecuted us; -and they please not God, and are contrary to all men: 2:16 Forbidding -us to speak to the Gentiles that they might be saved, to fill up their -sins alway: for the wrath is come upon them to the uttermost. - -2:17 But we, brethren, being taken from you for a short time in -presence, not in heart, endeavoured the more abundantly to see your -face with great desire. - -2:18 Wherefore we would have come unto you, even I Paul, once and -again; but Satan hindered us. - -2:19 For what is our hope, or joy, or crown of rejoicing? Are not even -ye in the presence of our Lord Jesus Christ at his coming? 2:20 For -ye are our glory and joy. - -3:1 Wherefore when we could no longer forbear, we thought it good to -be left at Athens alone; 3:2 And sent Timotheus, our brother, and -minister of God, and our fellowlabourer in the gospel of Christ, to -establish you, and to comfort you concerning your faith: 3:3 That no -man should be moved by these afflictions: for yourselves know that we -are appointed thereunto. - -3:4 For verily, when we were with you, we told you before that we -should suffer tribulation; even as it came to pass, and ye know. - -3:5 For this cause, when I could no longer forbear, I sent to know -your faith, lest by some means the tempter have tempted you, and our -labour be in vain. - -3:6 But now when Timotheus came from you unto us, and brought us good -tidings of your faith and charity, and that ye have good remembrance -of us always, desiring greatly to see us, as we also to see you: 3:7 -Therefore, brethren, we were comforted over you in all our affliction -and distress by your faith: 3:8 For now we live, if ye stand fast in -the Lord. - -3:9 For what thanks can we render to God again for you, for all the -joy wherewith we joy for your sakes before our God; 3:10 Night and day -praying exceedingly that we might see your face, and might perfect -that which is lacking in your faith? 3:11 Now God himself and our -Father, and our Lord Jesus Christ, direct our way unto you. - -3:12 And the Lord make you to increase and abound in love one toward -another, and toward all men, even as we do toward you: 3:13 To the end -he may stablish your hearts unblameable in holiness before God, even -our Father, at the coming of our Lord Jesus Christ with all his -saints. - -4:1 Furthermore then we beseech you, brethren, and exhort you by the -Lord Jesus, that as ye have received of us how ye ought to walk and to -please God, so ye would abound more and more. - -4:2 For ye know what commandments we gave you by the Lord Jesus. - -4:3 For this is the will of God, even your sanctification, that ye -should abstain from fornication: 4:4 That every one of you should know -how to possess his vessel in sanctification and honour; 4:5 Not in the -lust of concupiscence, even as the Gentiles which know not God: 4:6 -That no man go beyond and defraud his brother in any matter: because -that the Lord is the avenger of all such, as we also have forewarned -you and testified. - -4:7 For God hath not called us unto uncleanness, but unto holiness. - -4:8 He therefore that despiseth, despiseth not man, but God, who hath -also given unto us his holy Spirit. - -4:9 But as touching brotherly love ye need not that I write unto you: -for ye yourselves are taught of God to love one another. - -4:10 And indeed ye do it toward all the brethren which are in all -Macedonia: but we beseech you, brethren, that ye increase more and -more; 4:11 And that ye study to be quiet, and to do your own business, -and to work with your own hands, as we commanded you; 4:12 That ye may -walk honestly toward them that are without, and that ye may have lack -of nothing. - -4:13 But I would not have you to be ignorant, brethren, concerning -them which are asleep, that ye sorrow not, even as others which have -no hope. - -4:14 For if we believe that Jesus died and rose again, even so them -also which sleep in Jesus will God bring with him. - -4:15 For this we say unto you by the word of the Lord, that we which -are alive and remain unto the coming of the Lord shall not prevent -them which are asleep. - -4:16 For the Lord himself shall descend from heaven with a shout, with -the voice of the archangel, and with the trump of God: and the dead in -Christ shall rise first: 4:17 Then we which are alive and remain shall -be caught up together with them in the clouds, to meet the Lord in the -air: and so shall we ever be with the Lord. - -4:18 Wherefore comfort one another with these words. - -5:1 But of the times and the seasons, brethren, ye have no need that I -write unto you. - -5:2 For yourselves know perfectly that the day of the Lord so cometh -as a thief in the night. - -5:3 For when they shall say, Peace and safety; then sudden destruction -cometh upon them, as travail upon a woman with child; and they shall -not escape. - -5:4 But ye, brethren, are not in darkness, that that day should -overtake you as a thief. - -5:5 Ye are all the children of light, and the children of the day: we -are not of the night, nor of darkness. - -5:6 Therefore let us not sleep, as do others; but let us watch and be -sober. - -5:7 For they that sleep sleep in the night; and they that be drunken -are drunken in the night. - -5:8 But let us, who are of the day, be sober, putting on the -breastplate of faith and love; and for an helmet, the hope of -salvation. - -5:9 For God hath not appointed us to wrath, but to obtain salvation by -our Lord Jesus Christ, 5:10 Who died for us, that, whether we wake or -sleep, we should live together with him. - -5:11 Wherefore comfort yourselves together, and edify one another, -even as also ye do. - -5:12 And we beseech you, brethren, to know them which labour among -you, and are over you in the Lord, and admonish you; 5:13 And to -esteem them very highly in love for their work's sake. And be at peace -among yourselves. - -5:14 Now we exhort you, brethren, warn them that are unruly, comfort -the feebleminded, support the weak, be patient toward all men. - -5:15 See that none render evil for evil unto any man; but ever follow -that which is good, both among yourselves, and to all men. - -5:16 Rejoice evermore. - -5:17 Pray without ceasing. - -5:18 In every thing give thanks: for this is the will of God in Christ -Jesus concerning you. - -5:19 Quench not the Spirit. - -5:20 Despise not prophesyings. - -5:21 Prove all things; hold fast that which is good. - -5:22 Abstain from all appearance of evil. - -5:23 And the very God of peace sanctify you wholly; and I pray God -your whole spirit and soul and body be preserved blameless unto the -coming of our Lord Jesus Christ. - -5:24 Faithful is he that calleth you, who also will do it. - -5:25 Brethren, pray for us. - -5:26 Greet all the brethren with an holy kiss. - -5:27 I charge you by the Lord that this epistle be read unto all the -holy brethren. - -5:28 The grace of our Lord Jesus Christ be with you. Amen. - - - - -The Second Epistle of Paul the Apostle to the Thessalonians - - -1:1 Paul, and Silvanus, and Timotheus, unto the church of the -Thessalonians in God our Father and the Lord Jesus Christ: 1:2 Grace -unto you, and peace, from God our Father and the Lord Jesus Christ. - -1:3 We are bound to thank God always for you, brethren, as it is meet, -because that your faith groweth exceedingly, and the charity of every -one of you all toward each other aboundeth; 1:4 So that we ourselves -glory in you in the churches of God for your patience and faith in all -your persecutions and tribulations that ye endure: 1:5 Which is a -manifest token of the righteous judgment of God, that ye may be -counted worthy of the kingdom of God, for which ye also suffer: 1:6 -Seeing it is a righteous thing with God to recompense tribulation to -them that trouble you; 1:7 And to you who are troubled rest with us, -when the Lord Jesus shall be revealed from heaven with his mighty -angels, 1:8 In flaming fire taking vengeance on them that know not -God, and that obey not the gospel of our Lord Jesus Christ: 1:9 Who -shall be punished with everlasting destruction from the presence of -the Lord, and from the glory of his power; 1:10 When he shall come to -be glorified in his saints, and to be admired in all them that believe -(because our testimony among you was believed) in that day. - -1:11 Wherefore also we pray always for you, that our God would count -you worthy of this calling, and fulfil all the good pleasure of his -goodness, and the work of faith with power: 1:12 That the name of our -Lord Jesus Christ may be glorified in you, and ye in him, according to -the grace of our God and the Lord Jesus Christ. - -2:1 Now we beseech you, brethren, by the coming of our Lord Jesus -Christ, and by our gathering together unto him, 2:2 That ye be not -soon shaken in mind, or be troubled, neither by spirit, nor by word, -nor by letter as from us, as that the day of Christ is at hand. - -2:3 Let no man deceive you by any means: for that day shall not come, -except there come a falling away first, and that man of sin be -revealed, the son of perdition; 2:4 Who opposeth and exalteth himself -above all that is called God, or that is worshipped; so that he as God -sitteth in the temple of God, shewing himself that he is God. - -2:5 Remember ye not, that, when I was yet with you, I told you these -things? 2:6 And now ye know what withholdeth that he might be -revealed in his time. - -2:7 For the mystery of iniquity doth already work: only he who now -letteth will let, until he be taken out of the way. - -2:8 And then shall that Wicked be revealed, whom the Lord shall -consume with the spirit of his mouth, and shall destroy with the -brightness of his coming: 2:9 Even him, whose coming is after the -working of Satan with all power and signs and lying wonders, 2:10 And -with all deceivableness of unrighteousness in them that perish; -because they received not the love of the truth, that they might be -saved. - -2:11 And for this cause God shall send them strong delusion, that they -should believe a lie: 2:12 That they all might be damned who believed -not the truth, but had pleasure in unrighteousness. - -2:13 But we are bound to give thanks alway to God for you, brethren -beloved of the Lord, because God hath from the beginning chosen you to -salvation through sanctification of the Spirit and belief of the -truth: 2:14 Whereunto he called you by our gospel, to the obtaining of -the glory of our Lord Jesus Christ. - -2:15 Therefore, brethren, stand fast, and hold the traditions which ye -have been taught, whether by word, or our epistle. - -2:16 Now our Lord Jesus Christ himself, and God, even our Father, -which hath loved us, and hath given us everlasting consolation and -good hope through grace, 2:17 Comfort your hearts, and stablish you in -every good word and work. - -3:1 Finally, brethren, pray for us, that the word of the Lord may have -free course, and be glorified, even as it is with you: 3:2 And that we -may be delivered from unreasonable and wicked men: for all men have -not faith. - -3:3 But the Lord is faithful, who shall stablish you, and keep you -from evil. - -3:4 And we have confidence in the Lord touching you, that ye both do -and will do the things which we command you. - -3:5 And the Lord direct your hearts into the love of God, and into the -patient waiting for Christ. - -3:6 Now we command you, brethren, in the name of our Lord Jesus -Christ, that ye withdraw yourselves from every brother that walketh -disorderly, and not after the tradition which he received of us. - -3:7 For yourselves know how ye ought to follow us: for we behaved not -ourselves disorderly among you; 3:8 Neither did we eat any man's bread -for nought; but wrought with labour and travail night and day, that we -might not be chargeable to any of you: 3:9 Not because we have not -power, but to make ourselves an ensample unto you to follow us. - -3:10 For even when we were with you, this we commanded you, that if -any would not work, neither should he eat. - -3:11 For we hear that there are some which walk among you disorderly, -working not at all, but are busybodies. - -3:12 Now them that are such we command and exhort by our Lord Jesus -Christ, that with quietness they work, and eat their own bread. - -3:13 But ye, brethren, be not weary in well doing. - -3:14 And if any man obey not our word by this epistle, note that man, -and have no company with him, that he may be ashamed. - -3:15 Yet count him not as an enemy, but admonish him as a brother. - -3:16 Now the Lord of peace himself give you peace always by all means. -The Lord be with you all. - -3:17 The salutation of Paul with mine own hand, which is the token in -every epistle: so I write. - -3:18 The grace of our Lord Jesus Christ be with you all. Amen. - - - - -The First Epistle of Paul the Apostle to Timothy - - -1:1 Paul, an apostle of Jesus Christ by the commandment of God our -Saviour, and Lord Jesus Christ, which is our hope; 1:2 Unto Timothy, -my own son in the faith: Grace, mercy, and peace, from God our Father -and Jesus Christ our Lord. - -1:3 As I besought thee to abide still at Ephesus, when I went into -Macedonia, that thou mightest charge some that they teach no other -doctrine, 1:4 Neither give heed to fables and endless genealogies, -which minister questions, rather than godly edifying which is in -faith: so do. - -1:5 Now the end of the commandment is charity out of a pure heart, and -of a good conscience, and of faith unfeigned: 1:6 From which some -having swerved have turned aside unto vain jangling; 1:7 Desiring to -be teachers of the law; understanding neither what they say, nor -whereof they affirm. - -1:8 But we know that the law is good, if a man use it lawfully; 1:9 -Knowing this, that the law is not made for a righteous man, but for -the lawless and disobedient, for the ungodly and for sinners, for -unholy and profane, for murderers of fathers and murderers of mothers, -for manslayers, 1:10 For whoremongers, for them that defile themselves -with mankind, for menstealers, for liars, for perjured persons, and if -there be any other thing that is contrary to sound doctrine; 1:11 -According to the glorious gospel of the blessed God, which was -committed to my trust. - -1:12 And I thank Christ Jesus our Lord, who hath enabled me, for that -he counted me faithful, putting me into the ministry; 1:13 Who was -before a blasphemer, and a persecutor, and injurious: but I obtained -mercy, because I did it ignorantly in unbelief. - -1:14 And the grace of our Lord was exceeding abundant with faith and -love which is in Christ Jesus. - -1:15 This is a faithful saying, and worthy of all acceptation, that -Christ Jesus came into the world to save sinners; of whom I am chief. - -1:16 Howbeit for this cause I obtained mercy, that in me first Jesus -Christ might shew forth all longsuffering, for a pattern to them which -should hereafter believe on him to life everlasting. - -1:17 Now unto the King eternal, immortal, invisible, the only wise -God, be honour and glory for ever and ever. Amen. - -1:18 This charge I commit unto thee, son Timothy, according to the -prophecies which went before on thee, that thou by them mightest war a -good warfare; 1:19 Holding faith, and a good conscience; which some -having put away concerning faith have made shipwreck: 1:20 Of whom is -Hymenaeus and Alexander; whom I have delivered unto Satan, that they -may learn not to blaspheme. - -2:1 I exhort therefore, that, first of all, supplications, prayers, -intercessions, and giving of thanks, be made for all men; 2:2 For -kings, and for all that are in authority; that we may lead a quiet and -peaceable life in all godliness and honesty. - -2:3 For this is good and acceptable in the sight of God our Saviour; -2:4 Who will have all men to be saved, and to come unto the knowledge -of the truth. - -2:5 For there is one God, and one mediator between God and men, the -man Christ Jesus; 2:6 Who gave himself a ransom for all, to be -testified in due time. - -2:7 Whereunto I am ordained a preacher, and an apostle, (I speak the -truth in Christ, and lie not;) a teacher of the Gentiles in faith and -verity. - -2:8 I will therefore that men pray every where, lifting up holy hands, -without wrath and doubting. - -2:9 In like manner also, that women adorn themselves in modest -apparel, with shamefacedness and sobriety; not with broided hair, or -gold, or pearls, or costly array; 2:10 But (which becometh women -professing godliness) with good works. - -2:11 Let the woman learn in silence with all subjection. - -2:12 But I suffer not a woman to teach, nor to usurp authority over -the man, but to be in silence. - -2:13 For Adam was first formed, then Eve. - -2:14 And Adam was not deceived, but the woman being deceived was in -the transgression. - -2:15 Notwithstanding she shall be saved in childbearing, if they -continue in faith and charity and holiness with sobriety. - -3:1 This is a true saying, If a man desire the office of a bishop, he -desireth a good work. - -3:2 A bishop then must be blameless, the husband of one wife, -vigilant, sober, of good behaviour, given to hospitality, apt to -teach; 3:3 Not given to wine, no striker, not greedy of filthy lucre; -but patient, not a brawler, not covetous; 3:4 One that ruleth well his -own house, having his children in subjection with all gravity; 3:5 -(For if a man know not how to rule his own house, how shall he take -care of the church of God?) 3:6 Not a novice, lest being lifted up -with pride he fall into the condemnation of the devil. - -3:7 Moreover he must have a good report of them which are without; -lest he fall into reproach and the snare of the devil. - -3:8 Likewise must the deacons be grave, not doubletongued, not given -to much wine, not greedy of filthy lucre; 3:9 Holding the mystery of -the faith in a pure conscience. - -3:10 And let these also first be proved; then let them use the office -of a deacon, being found blameless. - -3:11 Even so must their wives be grave, not slanderers, sober, -faithful in all things. - -3:12 Let the deacons be the husbands of one wife, ruling their -children and their own houses well. - -3:13 For they that have used the office of a deacon well purchase to -themselves a good degree, and great boldness in the faith which is in -Christ Jesus. - -3:14 These things write I unto thee, hoping to come unto thee shortly: -3:15 But if I tarry long, that thou mayest know how thou oughtest to -behave thyself in the house of God, which is the church of the living -God, the pillar and ground of the truth. - -3:16 And without controversy great is the mystery of godliness: God -was manifest in the flesh, justified in the Spirit, seen of angels, -preached unto the Gentiles, believed on in the world, received up into -glory. - -4:1 Now the Spirit speaketh expressly, that in the latter times some -shall depart from the faith, giving heed to seducing spirits, and -doctrines of devils; 4:2 Speaking lies in hypocrisy; having their -conscience seared with a hot iron; 4:3 Forbidding to marry, and -commanding to abstain from meats, which God hath created to be -received with thanksgiving of them which believe and know the truth. - -4:4 For every creature of God is good, and nothing to be refused, if -it be received with thanksgiving: 4:5 For it is sanctified by the word -of God and prayer. - -4:6 If thou put the brethren in remembrance of these things, thou -shalt be a good minister of Jesus Christ, nourished up in the words of -faith and of good doctrine, whereunto thou hast attained. - -4:7 But refuse profane and old wives' fables, and exercise thyself -rather unto godliness. - -4:8 For bodily exercise profiteth little: but godliness is profitable -unto all things, having promise of the life that now is, and of that -which is to come. - -4:9 This is a faithful saying and worthy of all acceptation. - -4:10 For therefore we both labour and suffer reproach, because we -trust in the living God, who is the Saviour of all men, specially of -those that believe. - -4:11 These things command and teach. - -4:12 Let no man despise thy youth; but be thou an example of the -believers, in word, in conversation, in charity, in spirit, in faith, -in purity. - -4:13 Till I come, give attendance to reading, to exhortation, to -doctrine. - -4:14 Neglect not the gift that is in thee, which was given thee by -prophecy, with the laying on of the hands of the presbytery. - -4:15 Meditate upon these things; give thyself wholly to them; that thy -profiting may appear to all. - -4:16 Take heed unto thyself, and unto the doctrine; continue in them: -for in doing this thou shalt both save thyself, and them that hear -thee. - -5:1 Rebuke not an elder, but intreat him as a father; and the younger -men as brethren; 5:2 The elder women as mothers; the younger as -sisters, with all purity. - -5:3 Honour widows that are widows indeed. - -5:4 But if any widow have children or nephews, let them learn first to -shew piety at home, and to requite their parents: for that is good and -acceptable before God. - -5:5 Now she that is a widow indeed, and desolate, trusteth in God, and -continueth in supplications and prayers night and day. - -5:6 But she that liveth in pleasure is dead while she liveth. - -5:7 And these things give in charge, that they may be blameless. - -5:8 But if any provide not for his own, and specially for those of his -own house, he hath denied the faith, and is worse than an infidel. - -5:9 Let not a widow be taken into the number under threescore years -old, having been the wife of one man. - -5:10 Well reported of for good works; if she have brought up children, -if she have lodged strangers, if she have washed the saints' feet, if -she have relieved the afflicted, if she have diligently followed every -good work. - -5:11 But the younger widows refuse: for when they have begun to wax -wanton against Christ, they will marry; 5:12 Having damnation, because -they have cast off their first faith. - -5:13 And withal they learn to be idle, wandering about from house to -house; and not only idle, but tattlers also and busybodies, speaking -things which they ought not. - -5:14 I will therefore that the younger women marry, bear children, -guide the house, give none occasion to the adversary to speak -reproachfully. - -5:15 For some are already turned aside after Satan. - -5:16 If any man or woman that believeth have widows, let them relieve -them, and let not the church be charged; that it may relieve them that -are widows indeed. - -5:17 Let the elders that rule well be counted worthy of double honour, -especially they who labour in the word and doctrine. - -5:18 For the scripture saith, Thou shalt not muzzle the ox that -treadeth out the corn. And, The labourer is worthy of his reward. - -5:19 Against an elder receive not an accusation, but before two or -three witnesses. - -5:20 Them that sin rebuke before all, that others also may fear. - -5:21 I charge thee before God, and the Lord Jesus Christ, and the -elect angels, that thou observe these things without preferring one -before another, doing nothing by partiality. - -5:22 Lay hands suddenly on no man, neither be partaker of other men's -sins: keep thyself pure. - -5:23 Drink no longer water, but use a little wine for thy stomach's -sake and thine often infirmities. - -5:24 Some men's sins are open beforehand, going before to judgment; -and some men they follow after. - -5:25 Likewise also the good works of some are manifest beforehand; and -they that are otherwise cannot be hid. - -6:1 Let as many servants as are under the yoke count their own masters -worthy of all honour, that the name of God and his doctrine be not -blasphemed. - -6:2 And they that have believing masters, let them not despise them, -because they are brethren; but rather do them service, because they -are faithful and beloved, partakers of the benefit. These things teach -and exhort. - -6:3 If any man teach otherwise, and consent not to wholesome words, -even the words of our Lord Jesus Christ, and to the doctrine which is -according to godliness; 6:4 He is proud, knowing nothing, but doting -about questions and strifes of words, whereof cometh envy, strife, -railings, evil surmisings, 6:5 Perverse disputings of men of corrupt -minds, and destitute of the truth, supposing that gain is godliness: -from such withdraw thyself. - -6:6 But godliness with contentment is great gain. - -6:7 For we brought nothing into this world, and it is certain we can -carry nothing out. - -6:8 And having food and raiment let us be therewith content. - -6:9 But they that will be rich fall into temptation and a snare, and -into many foolish and hurtful lusts, which drown men in destruction -and perdition. - -6:10 For the love of money is the root of all evil: which while some -coveted after, they have erred from the faith, and pierced themselves -through with many sorrows. - -6:11 But thou, O man of God, flee these things; and follow after -righteousness, godliness, faith, love, patience, meekness. - -6:12 Fight the good fight of faith, lay hold on eternal life, -whereunto thou art also called, and hast professed a good profession -before many witnesses. - -6:13 I give thee charge in the sight of God, who quickeneth all -things, and before Christ Jesus, who before Pontius Pilate witnessed a -good confession; 6:14 That thou keep this commandment without spot, -unrebukable, until the appearing of our Lord Jesus Christ: 6:15 Which -in his times he shall shew, who is the blessed and only Potentate, the -King of kings, and Lord of lords; 6:16 Who only hath immortality, -dwelling in the light which no man can approach unto; whom no man hath -seen, nor can see: to whom be honour and power everlasting. Amen. - -6:17 Charge them that are rich in this world, that they be not -highminded, nor trust in uncertain riches, but in the living God, who -giveth us richly all things to enjoy; 6:18 That they do good, that -they be rich in good works, ready to distribute, willing to -communicate; 6:19 Laying up in store for themselves a good foundation -against the time to come, that they may lay hold on eternal life. - -6:20 O Timothy, keep that which is committed to thy trust, avoiding -profane and vain babblings, and oppositions of science falsely so -called: 6:21 Which some professing have erred concerning the faith. -Grace be with thee. Amen. - - - - -The Second Epistle of Paul the Apostle to Timothy - - -1:1 Paul, an apostle of Jesus Christ by the will of God, according to -the promise of life which is in Christ Jesus, 1:2 To Timothy, -my dearly beloved son: Grace, mercy, and peace, from God the Father -and Christ Jesus our Lord. - -1:3 I thank God, whom I serve from my forefathers with pure -conscience, that without ceasing I have remembrance of thee in my -prayers night and day; 1:4 Greatly desiring to see thee, being mindful -of thy tears, that I may be filled with joy; 1:5 When I call to -remembrance the unfeigned faith that is in thee, which dwelt first in -thy grandmother Lois, and thy mother Eunice; and I am persuaded that -in thee also. - -1:6 Wherefore I put thee in remembrance that thou stir up the gift of -God, which is in thee by the putting on of my hands. - -1:7 For God hath not given us the spirit of fear; but of power, and of -love, and of a sound mind. - -1:8 Be not thou therefore ashamed of the testimony of our Lord, nor of -me his prisoner: but be thou partaker of the afflictions of the gospel -according to the power of God; 1:9 Who hath saved us, and called us -with an holy calling, not according to our works, but according to his -own purpose and grace, which was given us in Christ Jesus before the -world began, 1:10 But is now made manifest by the appearing of our -Saviour Jesus Christ, who hath abolished death, and hath brought life -and immortality to light through the gospel: 1:11 Whereunto I am -appointed a preacher, and an apostle, and a teacher of the Gentiles. - -1:12 For the which cause I also suffer these things: nevertheless I am -not ashamed: for I know whom I have believed, and am persuaded that he -is able to keep that which I have committed unto him against that day. - -1:13 Hold fast the form of sound words, which thou hast heard of me, -in faith and love which is in Christ Jesus. - -1:14 That good thing which was committed unto thee keep by the Holy -Ghost which dwelleth in us. - -1:15 This thou knowest, that all they which are in Asia be turned away -from me; of whom are Phygellus and Hermogenes. - -1:16 The Lord give mercy unto the house of Onesiphorus; for he oft -refreshed me, and was not ashamed of my chain: 1:17 But, when he was -in Rome, he sought me out very diligently, and found me. - -1:18 The Lord grant unto him that he may find mercy of the Lord in -that day: and in how many things he ministered unto me at Ephesus, -thou knowest very well. - -2:1 Thou therefore, my son, be strong in the grace that is in Christ -Jesus. - -2:2 And the things that thou hast heard of me among many witnesses, -the same commit thou to faithful men, who shall be able to teach -others also. - -2:3 Thou therefore endure hardness, as a good soldier of Jesus Christ. - -2:4 No man that warreth entangleth himself with the affairs of this -life; that he may please him who hath chosen him to be a soldier. - -2:5 And if a man also strive for masteries, yet is he not crowned, -except he strive lawfully. - -2:6 The husbandman that laboureth must be first partaker of the -fruits. - -2:7 Consider what I say; and the Lord give thee understanding in all -things. - -2:8 Remember that Jesus Christ of the seed of David was raised from -the dead according to my gospel: 2:9 Wherein I suffer trouble, as an -evil doer, even unto bonds; but the word of God is not bound. - -2:10 Therefore I endure all things for the elect's sakes, that they -may also obtain the salvation which is in Christ Jesus with eternal -glory. - -2:11 It is a faithful saying: For if we be dead with him, we shall -also live with him: 2:12 If we suffer, we shall also reign with him: -if we deny him, he also will deny us: 2:13 If we believe not, yet he -abideth faithful: he cannot deny himself. - -2:14 Of these things put them in remembrance, charging them before the -Lord that they strive not about words to no profit, but to the -subverting of the hearers. - -2:15 Study to shew thyself approved unto God, a workman that needeth -not to be ashamed, rightly dividing the word of truth. - -2:16 But shun profane and vain babblings: for they will increase unto -more ungodliness. - -2:17 And their word will eat as doth a canker: of whom is Hymenaeus -and Philetus; 2:18 Who concerning the truth have erred, saying that -the resurrection is past already; and overthrow the faith of some. - -2:19 Nevertheless the foundation of God standeth sure, having this -seal, The Lord knoweth them that are his. And, Let every one that -nameth the name of Christ depart from iniquity. - -2:20 But in a great house there are not only vessels of gold and of -silver, but also of wood and of earth; and some to honour, and some to -dishonour. - -2:21 If a man therefore purge himself from these, he shall be a vessel -unto honour, sanctified, and meet for the master's use, and prepared -unto every good work. - -2:22 Flee also youthful lusts: but follow righteousness, faith, -charity, peace, with them that call on the Lord out of a pure heart. - -2:23 But foolish and unlearned questions avoid, knowing that they do -gender strifes. - -2:24 And the servant of the Lord must not strive; but be gentle unto -all men, apt to teach, patient, 2:25 In meekness instructing those -that oppose themselves; if God peradventure will give them repentance -to the acknowledging of the truth; 2:26 And that they may recover -themselves out of the snare of the devil, who are taken captive by him -at his will. - -3:1 This know also, that in the last days perilous times shall come. - -3:2 For men shall be lovers of their own selves, covetous, boasters, -proud, blasphemers, disobedient to parents, unthankful, unholy, 3:3 -Without natural affection, trucebreakers, false accusers, incontinent, -fierce, despisers of those that are good, 3:4 Traitors, heady, -highminded, lovers of pleasures more than lovers of God; 3:5 Having a -form of godliness, but denying the power thereof: from such turn away. - -3:6 For of this sort are they which creep into houses, and lead -captive silly women laden with sins, led away with divers lusts, 3:7 -Ever learning, and never able to come to the knowledge of the truth. - -3:8 Now as Jannes and Jambres withstood Moses, so do these also resist -the truth: men of corrupt minds, reprobate concerning the faith. - -3:9 But they shall proceed no further: for their folly shall be -manifest unto all men, as their's also was. - -3:10 But thou hast fully known my doctrine, manner of life, purpose, -faith, longsuffering, charity, patience, 3:11 Persecutions, -afflictions, which came unto me at Antioch, at Iconium, at Lystra; -what persecutions I endured: but out of them all the Lord delivered -me. - -3:12 Yea, and all that will live godly in Christ Jesus shall suffer -persecution. - -3:13 But evil men and seducers shall wax worse and worse, deceiving, -and being deceived. - -3:14 But continue thou in the things which thou hast learned and hast -been assured of, knowing of whom thou hast learned them; 3:15 And that -from a child thou hast known the holy scriptures, which are able to -make thee wise unto salvation through faith which is in Christ Jesus. - -3:16 All scripture is given by inspiration of God, and is profitable -for doctrine, for reproof, for correction, for instruction in -righteousness: 3:17 That the man of God may be perfect, throughly -furnished unto all good works. - -4:1 I charge thee therefore before God, and the Lord Jesus Christ, who -shall judge the quick and the dead at his appearing and his kingdom; -4:2 Preach the word; be instant in season, out of season; reprove, -rebuke, exhort with all longsuffering and doctrine. - -4:3 For the time will come when they will not endure sound doctrine; -but after their own lusts shall they heap to themselves teachers, -having itching ears; 4:4 And they shall turn away their ears from the -truth, and shall be turned unto fables. - -4:5 But watch thou in all things, endure afflictions, do the work of -an evangelist, make full proof of thy ministry. - -4:6 For I am now ready to be offered, and the time of my departure is -at hand. - -4:7 I have fought a good fight, I have finished my course, I have kept -the faith: 4:8 Henceforth there is laid up for me a crown of -righteousness, which the Lord, the righteous judge, shall give me at -that day: and not to me only, but unto all them also that love his -appearing. - -4:9 Do thy diligence to come shortly unto me: 4:10 For Demas hath -forsaken me, having loved this present world, and is departed unto -Thessalonica; Crescens to Galatia, Titus unto Dalmatia. - -4:11 Only Luke is with me. Take Mark, and bring him with thee: for he -is profitable to me for the ministry. - -4:12 And Tychicus have I sent to Ephesus. - -4:13 The cloke that I left at Troas with Carpus, when thou comest, -bring with thee, and the books, but especially the parchments. - -4:14 Alexander the coppersmith did me much evil: the Lord reward him -according to his works: 4:15 Of whom be thou ware also; for he hath -greatly withstood our words. - -4:16 At my first answer no man stood with me, but all men forsook me: -I pray God that it may not be laid to their charge. - -4:17 Notwithstanding the Lord stood with me, and strengthened me; that -by me the preaching might be fully known, and that all the Gentiles -might hear: and I was delivered out of the mouth of the lion. - -4:18 And the Lord shall deliver me from every evil work, and will -preserve me unto his heavenly kingdom: to whom be glory for ever and -ever. Amen. - -4:19 Salute Prisca and Aquila, and the household of Onesiphorus. - -4:20 Erastus abode at Corinth: but Trophimus have I left at Miletum -sick. - -4:21 Do thy diligence to come before winter. Eubulus greeteth thee, -and Pudens, and Linus, and Claudia, and all the brethren. - -4:22 The Lord Jesus Christ be with thy spirit. Grace be with you. -Amen. - - - - -The Epistle of Paul the Apostle to Titus - - -1:1 Paul, a servant of God, and an apostle of Jesus Christ, according -to the faith of God's elect, and the acknowledging of the truth which -is after godliness; 1:2 In hope of eternal life, which God, that -cannot lie, promised before the world began; 1:3 But hath in due times -manifested his word through preaching, which is committed unto me -according to the commandment of God our Saviour; 1:4 To Titus, mine -own son after the common faith: Grace, mercy, and peace, from God the -Father and the Lord Jesus Christ our Saviour. - -1:5 For this cause left I thee in Crete, that thou shouldest set in -order the things that are wanting, and ordain elders in every city, as -I had appointed thee: 1:6 If any be blameless, the husband of one -wife, having faithful children not accused of riot or unruly. - -1:7 For a bishop must be blameless, as the steward of God; not -selfwilled, not soon angry, not given to wine, no striker, not given -to filthy lucre; 1:8 But a lover of hospitality, a lover of good men, -sober, just, holy, temperate; 1:9 Holding fast the faithful word as he -hath been taught, that he may be able by sound doctrine both to exhort -and to convince the gainsayers. - -1:10 For there are many unruly and vain talkers and deceivers, -specially they of the circumcision: 1:11 Whose mouths must be stopped, -who subvert whole houses, teaching things which they ought not, for -filthy lucre's sake. - -1:12 One of themselves, even a prophet of their own, said, The -Cretians are alway liars, evil beasts, slow bellies. - -1:13 This witness is true. Wherefore rebuke them sharply, that they -may be sound in the faith; 1:14 Not giving heed to Jewish fables, and -commandments of men, that turn from the truth. - -1:15 Unto the pure all things are pure: but unto them that are defiled -and unbelieving is nothing pure; but even their mind and conscience is -defiled. - -1:16 They profess that they know God; but in works they deny him, -being abominable, and disobedient, and unto every good work reprobate. - -2:1 But speak thou the things which become sound doctrine: 2:2 That -the aged men be sober, grave, temperate, sound in faith, in charity, -in patience. - -2:3 The aged women likewise, that they be in behaviour as becometh -holiness, not false accusers, not given to much wine, teachers of good -things; 2:4 That they may teach the young women to be sober, to love -their husbands, to love their children, 2:5 To be discreet, chaste, -keepers at home, good, obedient to their own husbands, that the word -of God be not blasphemed. - -2:6 Young men likewise exhort to be sober minded. - -2:7 In all things shewing thyself a pattern of good works: in doctrine -shewing uncorruptness, gravity, sincerity, 2:8 Sound speech, that -cannot be condemned; that he that is of the contrary part may be -ashamed, having no evil thing to say of you. - -2:9 Exhort servants to be obedient unto their own masters, and to -please them well in all things; not answering again; 2:10 Not -purloining, but shewing all good fidelity; that they may adorn the -doctrine of God our Saviour in all things. - -2:11 For the grace of God that bringeth salvation hath appeared to all -men, 2:12 Teaching us that, denying ungodliness and worldly lusts, we -should live soberly, righteously, and godly, in this present world; -2:13 Looking for that blessed hope, and the glorious appearing of the -great God and our Saviour Jesus Christ; 2:14 Who gave himself for us, -that he might redeem us from all iniquity, and purify unto himself a -peculiar people, zealous of good works. - -2:15 These things speak, and exhort, and rebuke with all authority. -Let no man despise thee. - -3:1 Put them in mind to be subject to principalities and powers, to -obey magistrates, to be ready to every good work, 3:2 To speak evil of -no man, to be no brawlers, but gentle, shewing all meekness unto all -men. - -3:3 For we ourselves also were sometimes foolish, disobedient, -deceived, serving divers lusts and pleasures, living in malice and -envy, hateful, and hating one another. - -3:4 But after that the kindness and love of God our Saviour toward man -appeared, 3:5 Not by works of righteousness which we have done, but -according to his mercy he saved us, by the washing of regeneration, -and renewing of the Holy Ghost; 3:6 Which he shed on us abundantly -through Jesus Christ our Saviour; 3:7 That being justified by his -grace, we should be made heirs according to the hope of eternal life. - -3:8 This is a faithful saying, and these things I will that thou -affirm constantly, that they which have believed in God might be -careful to maintain good works. These things are good and profitable -unto men. - -3:9 But avoid foolish questions, and genealogies, and contentions, and -strivings about the law; for they are unprofitable and vain. - -3:10 A man that is an heretick after the first and second admonition -reject; 3:11 Knowing that he that is such is subverted, and sinneth, -being condemned of himself. - -3:12 When I shall send Artemas unto thee, or Tychicus, be diligent to -come unto me to Nicopolis: for I have determined there to winter. - -3:13 Bring Zenas the lawyer and Apollos on their journey diligently, -that nothing be wanting unto them. - -3:14 And let our's also learn to maintain good works for necessary -uses, that they be not unfruitful. - -3:15 All that are with me salute thee. Greet them that love us in the -faith. Grace be with you all. Amen. - - - - -The Epistle of Paul the Apostle to Philemon - - -1:1 Paul, a prisoner of Jesus Christ, and Timothy our brother, unto -Philemon our dearly beloved, and fellowlabourer, 1:2 And to our -beloved Apphia, and Archippus our fellowsoldier, and to the church in -thy house: 1:3 Grace to you, and peace, from God our Father and the -Lord Jesus Christ. - -1:4 I thank my God, making mention of thee always in my prayers, 1:5 -Hearing of thy love and faith, which thou hast toward the Lord Jesus, -and toward all saints; 1:6 That the communication of thy faith may -become effectual by the acknowledging of every good thing which is in -you in Christ Jesus. - -1:7 For we have great joy and consolation in thy love, because the -bowels of the saints are refreshed by thee, brother. - -1:8 Wherefore, though I might be much bold in Christ to enjoin thee -that which is convenient, 1:9 Yet for love's sake I rather beseech -thee, being such an one as Paul the aged, and now also a prisoner of -Jesus Christ. - -1:10 I beseech thee for my son Onesimus, whom I have begotten in my -bonds: 1:11 Which in time past was to thee unprofitable, but now -profitable to thee and to me: 1:12 Whom I have sent again: thou -therefore receive him, that is, mine own bowels: 1:13 Whom I would -have retained with me, that in thy stead he might have ministered unto -me in the bonds of the gospel: 1:14 But without thy mind would I do -nothing; that thy benefit should not be as it were of necessity, but -willingly. - -1:15 For perhaps he therefore departed for a season, that thou -shouldest receive him for ever; 1:16 Not now as a servant, but above a -servant, a brother beloved, specially to me, but how much more unto -thee, both in the flesh, and in the Lord? 1:17 If thou count me -therefore a partner, receive him as myself. - -1:18 If he hath wronged thee, or oweth thee ought, put that on mine -account; 1:19 I Paul have written it with mine own hand, I will repay -it: albeit I do not say to thee how thou owest unto me even thine own -self besides. - -1:20 Yea, brother, let me have joy of thee in the Lord: refresh my -bowels in the Lord. - -1:21 Having confidence in thy obedience I wrote unto thee, knowing -that thou wilt also do more than I say. - -1:22 But withal prepare me also a lodging: for I trust that through -your prayers I shall be given unto you. - -1:23 There salute thee Epaphras, my fellowprisoner in Christ Jesus; -1:24 Marcus, Aristarchus, Demas, Lucas, my fellowlabourers. - -1:25 The grace of our Lord Jesus Christ be with your spirit. Amen. - - - - -The Epistle of Paul the Apostle to the Hebrews - - -1:1 God, who at sundry times and in divers manners spake in time past -unto the fathers by the prophets, 1:2 Hath in these last days spoken -unto us by his Son, whom he hath appointed heir of all things, by whom -also he made the worlds; 1:3 Who being the brightness of his glory, -and the express image of his person, and upholding all things by the -word of his power, when he had by himself purged our sins, sat down on -the right hand of the Majesty on high: 1:4 Being made so much better -than the angels, as he hath by inheritance obtained a more excellent -name than they. - -1:5 For unto which of the angels said he at any time, Thou art my Son, -this day have I begotten thee? And again, I will be to him a Father, -and he shall be to me a Son? 1:6 And again, when he bringeth in the -firstbegotten into the world, he saith, And let all the angels of God -worship him. - -1:7 And of the angels he saith, Who maketh his angels spirits, and his -ministers a flame of fire. - -1:8 But unto the Son he saith, Thy throne, O God, is for ever and -ever: a sceptre of righteousness is the sceptre of thy kingdom. - -1:9 Thou hast loved righteousness, and hated iniquity; therefore God, -even thy God, hath anointed thee with the oil of gladness above thy -fellows. - -1:10 And, Thou, Lord, in the beginning hast laid the foundation of the -earth; and the heavens are the works of thine hands: 1:11 They shall -perish; but thou remainest; and they all shall wax old as doth a -garment; 1:12 And as a vesture shalt thou fold them up, and they shall -be changed: but thou art the same, and thy years shall not fail. - -1:13 But to which of the angels said he at any time, Sit on my right -hand, until I make thine enemies thy footstool? 1:14 Are they not all -ministering spirits, sent forth to minister for them who shall be -heirs of salvation? 2:1 Therefore we ought to give the more earnest -heed to the things which we have heard, lest at any time we should let -them slip. - -2:2 For if the word spoken by angels was stedfast, and every -transgression and disobedience received a just recompence of reward; -2:3 How shall we escape, if we neglect so great salvation; which at -the first began to be spoken by the Lord, and was confirmed unto us by -them that heard him; 2:4 God also bearing them witness, both with -signs and wonders, and with divers miracles, and gifts of the Holy -Ghost, according to his own will? 2:5 For unto the angels hath he not -put in subjection the world to come, whereof we speak. - -2:6 But one in a certain place testified, saying, What is man, that -thou art mindful of him? or the son of man that thou visitest him? -2:7 Thou madest him a little lower than the angels; thou crownedst him -with glory and honour, and didst set him over the works of thy hands: -2:8 Thou hast put all things in subjection under his feet. For in that -he put all in subjection under him, he left nothing that is not put -under him. - -But now we see not yet all things put under him. - -2:9 But we see Jesus, who was made a little lower than the angels for -the suffering of death, crowned with glory and honour; that he by the -grace of God should taste death for every man. - -2:10 For it became him, for whom are all things, and by whom are all -things, in bringing many sons unto glory, to make the captain of their -salvation perfect through sufferings. - -2:11 For both he that sanctifieth and they who are sanctified are all -of one: for which cause he is not ashamed to call them brethren, 2:12 -Saying, I will declare thy name unto my brethren, in the midst of the -church will I sing praise unto thee. - -2:13 And again, I will put my trust in him. And again, Behold I and -the children which God hath given me. - -2:14 Forasmuch then as the children are partakers of flesh and blood, -he also himself likewise took part of the same; that through death he -might destroy him that had the power of death, that is, the devil; -2:15 And deliver them who through fear of death were all their -lifetime subject to bondage. - -2:16 For verily he took not on him the nature of angels; but he took -on him the seed of Abraham. - -2:17 Wherefore in all things it behoved him to be made like unto his -brethren, that he might be a merciful and faithful high priest in -things pertaining to God, to make reconciliation for the sins of the -people. - -2:18 For in that he himself hath suffered being tempted, he is able to -succour them that are tempted. - -3:1 Wherefore, holy brethren, partakers of the heavenly calling, -consider the Apostle and High Priest of our profession, Christ Jesus; -3:2 Who was faithful to him that appointed him, as also Moses was -faithful in all his house. - -3:3 For this man was counted worthy of more glory than Moses, inasmuch -as he who hath builded the house hath more honour than the house. - -3:4 For every house is builded by some man; but he that built all -things is God. - -3:5 And Moses verily was faithful in all his house, as a servant, for -a testimony of those things which were to be spoken after; 3:6 But -Christ as a son over his own house; whose house are we, if we hold -fast the confidence and the rejoicing of the hope firm unto the end. - -3:7 Wherefore (as the Holy Ghost saith, To day if ye will hear his -voice, 3:8 Harden not your hearts, as in the provocation, in the day -of temptation in the wilderness: 3:9 When your fathers tempted me, -proved me, and saw my works forty years. - -3:10 Wherefore I was grieved with that generation, and said, They do -alway err in their heart; and they have not known my ways. - -3:11 So I sware in my wrath, They shall not enter into my rest.) 3:12 -Take heed, brethren, lest there be in any of you an evil heart of -unbelief, in departing from the living God. - -3:13 But exhort one another daily, while it is called To day; lest any -of you be hardened through the deceitfulness of sin. - -3:14 For we are made partakers of Christ, if we hold the beginning of -our confidence stedfast unto the end; 3:15 While it is said, To day if -ye will hear his voice, harden not your hearts, as in the provocation. - -3:16 For some, when they had heard, did provoke: howbeit not all that -came out of Egypt by Moses. - -3:17 But with whom was he grieved forty years? was it not with them -that had sinned, whose carcases fell in the wilderness? 3:18 And to -whom sware he that they should not enter into his rest, but to them -that believed not? 3:19 So we see that they could not enter in -because of unbelief. - -4:1 Let us therefore fear, lest, a promise being left us of entering -into his rest, any of you should seem to come short of it. - -4:2 For unto us was the gospel preached, as well as unto them: but the -word preached did not profit them, not being mixed with faith in them -that heard it. - -4:3 For we which have believed do enter into rest, as he said, As I -have sworn in my wrath, if they shall enter into my rest: although the -works were finished from the foundation of the world. - -4:4 For he spake in a certain place of the seventh day on this wise, -And God did rest the seventh day from all his works. - -4:5 And in this place again, If they shall enter into my rest. - -4:6 Seeing therefore it remaineth that some must enter therein, and -they to whom it was first preached entered not in because of unbelief: -4:7 Again, he limiteth a certain day, saying in David, To day, after -so long a time; as it is said, To day if ye will hear his voice, -harden not your hearts. - -4:8 For if Jesus had given them rest, then would he not afterward have -spoken of another day. - -4:9 There remaineth therefore a rest to the people of God. - -4:10 For he that is entered into his rest, he also hath ceased from -his own works, as God did from his. - -4:11 Let us labour therefore to enter into that rest, lest any man -fall after the same example of unbelief. - -4:12 For the word of God is quick, and powerful, and sharper than any -twoedged sword, piercing even to the dividing asunder of soul and -spirit, and of the joints and marrow, and is a discerner of the -thoughts and intents of the heart. - -4:13 Neither is there any creature that is not manifest in his sight: -but all things are naked and opened unto the eyes of him with whom we -have to do. - -4:14 Seeing then that we have a great high priest, that is passed into -the heavens, Jesus the Son of God, let us hold fast our profession. - -4:15 For we have not an high priest which cannot be touched with the -feeling of our infirmities; but was in all points tempted like as we -are, yet without sin. - -4:16 Let us therefore come boldly unto the throne of grace, that we -may obtain mercy, and find grace to help in time of need. - -5:1 For every high priest taken from among men is ordained for men in -things pertaining to God, that he may offer both gifts and sacrifices -for sins: 5:2 Who can have compassion on the ignorant, and on them -that are out of the way; for that he himself also is compassed with -infirmity. - -5:3 And by reason hereof he ought, as for the people, so also for -himself, to offer for sins. - -5:4 And no man taketh this honour unto himself, but he that is called -of God, as was Aaron. - -5:5 So also Christ glorified not himself to be made an high priest; -but he that said unto him, Thou art my Son, to day have I begotten -thee. - -5:6 As he saith also in another place, Thou art a priest for ever -after the order of Melchisedec. - -5:7 Who in the days of his flesh, when he had offered up prayers and -supplications with strong crying and tears unto him that was able to -save him from death, and was heard in that he feared; 5:8 Though he -were a Son, yet learned he obedience by the things which he suffered; -5:9 And being made perfect, he became the author of eternal salvation -unto all them that obey him; 5:10 Called of God an high priest after -the order of Melchisedec. - -5:11 Of whom we have many things to say, and hard to be uttered, -seeing ye are dull of hearing. - -5:12 For when for the time ye ought to be teachers, ye have need that -one teach you again which be the first principles of the oracles of -God; and are become such as have need of milk, and not of strong meat. - -5:13 For every one that useth milk is unskilful in the word of -righteousness: for he is a babe. - -5:14 But strong meat belongeth to them that are of full age, even -those who by reason of use have their senses exercised to discern both -good and evil. - -6:1 Therefore leaving the principles of the doctrine of Christ, let us -go on unto perfection; not laying again the foundation of repentance -from dead works, and of faith toward God, 6:2 Of the doctrine of -baptisms, and of laying on of hands, and of resurrection of the dead, -and of eternal judgment. - -6:3 And this will we do, if God permit. - -6:4 For it is impossible for those who were once enlightened, and have -tasted of the heavenly gift, and were made partakers of the Holy -Ghost, 6:5 And have tasted the good word of God, and the powers of the -world to come, 6:6 If they shall fall away, to renew them again unto -repentance; seeing they crucify to themselves the Son of God afresh, -and put him to an open shame. - -6:7 For the earth which drinketh in the rain that cometh oft upon it, -and bringeth forth herbs meet for them by whom it is dressed, -receiveth blessing from God: 6:8 But that which beareth thorns and -briers is rejected, and is nigh unto cursing; whose end is to be -burned. - -6:9 But, beloved, we are persuaded better things of you, and things -that accompany salvation, though we thus speak. - -6:10 For God is not unrighteous to forget your work and labour of -love, which ye have shewed toward his name, in that ye have ministered -to the saints, and do minister. - -6:11 And we desire that every one of you do shew the same diligence to -the full assurance of hope unto the end: 6:12 That ye be not slothful, -but followers of them who through faith and patience inherit the -promises. - -6:13 For when God made promise to Abraham, because he could swear by -no greater, he sware by himself, 6:14 Saying, Surely blessing I will -bless thee, and multiplying I will multiply thee. - -6:15 And so, after he had patiently endured, he obtained the promise. - -6:16 For men verily swear by the greater: and an oath for confirmation -is to them an end of all strife. - -6:17 Wherein God, willing more abundantly to shew unto the heirs of -promise the immutability of his counsel, confirmed it by an oath: 6:18 -That by two immutable things, in which it was impossible for God to -lie, we might have a strong consolation, who have fled for refuge to -lay hold upon the hope set before us: 6:19 Which hope we have as an -anchor of the soul, both sure and stedfast, and which entereth into -that within the veil; 6:20 Whither the forerunner is for us entered, -even Jesus, made an high priest for ever after the order of -Melchisedec. - -7:1 For this Melchisedec, king of Salem, priest of the most high God, -who met Abraham returning from the slaughter of the kings, and blessed -him; 7:2 To whom also Abraham gave a tenth part of all; first being by -interpretation King of righteousness, and after that also King of -Salem, which is, King of peace; 7:3 Without father, without mother, -without descent, having neither beginning of days, nor end of life; -but made like unto the Son of God; abideth a priest continually. - -7:4 Now consider how great this man was, unto whom even the patriarch -Abraham gave the tenth of the spoils. - -7:5 And verily they that are of the sons of Levi, who receive the -office of the priesthood, have a commandment to take tithes of the -people according to the law, that is, of their brethren, though they -come out of the loins of Abraham: 7:6 But he whose descent is not -counted from them received tithes of Abraham, and blessed him that had -the promises. - -7:7 And without all contradiction the less is blessed of the better. - -7:8 And here men that die receive tithes; but there he receiveth them, -of whom it is witnessed that he liveth. - -7:9 And as I may so say, Levi also, who receiveth tithes, payed tithes -in Abraham. - -7:10 For he was yet in the loins of his father, when Melchisedec met -him. - -7:11 If therefore perfection were by the Levitical priesthood, (for -under it the people received the law,) what further need was there -that another priest should rise after the order of Melchisedec, and -not be called after the order of Aaron? 7:12 For the priesthood being -changed, there is made of necessity a change also of the law. - -7:13 For he of whom these things are spoken pertaineth to another -tribe, of which no man gave attendance at the altar. - -7:14 For it is evident that our Lord sprang out of Juda; of which -tribe Moses spake nothing concerning priesthood. - -7:15 And it is yet far more evident: for that after the similitude of -Melchisedec there ariseth another priest, 7:16 Who is made, not after -the law of a carnal commandment, but after the power of an endless -life. - -7:17 For he testifieth, Thou art a priest for ever after the order of -Melchisedec. - -7:18 For there is verily a disannulling of the commandment going -before for the weakness and unprofitableness thereof. - -7:19 For the law made nothing perfect, but the bringing in of a better -hope did; by the which we draw nigh unto God. - -7:20 And inasmuch as not without an oath he was made priest: 7:21 (For -those priests were made without an oath; but this with an oath by him -that said unto him, The Lord sware and will not repent, Thou art a -priest for ever after the order of Melchisedec:) 7:22 By so much was -Jesus made a surety of a better testament. - -7:23 And they truly were many priests, because they were not suffered -to continue by reason of death: 7:24 But this man, because he -continueth ever, hath an unchangeable priesthood. - -7:25 Wherefore he is able also to save them to the uttermost that come -unto God by him, seeing he ever liveth to make intercession for them. - -7:26 For such an high priest became us, who is holy, harmless, -undefiled, separate from sinners, and made higher than the heavens; -7:27 Who needeth not daily, as those high priests, to offer up -sacrifice, first for his own sins, and then for the people's: for this -he did once, when he offered up himself. - -7:28 For the law maketh men high priests which have infirmity; but the -word of the oath, which was since the law, maketh the Son, who is -consecrated for evermore. - -8:1 Now of the things which we have spoken this is the sum: We have -such an high priest, who is set on the right hand of the throne of the -Majesty in the heavens; 8:2 A minister of the sanctuary, and of the -true tabernacle, which the Lord pitched, and not man. - -8:3 For every high priest is ordained to offer gifts and sacrifices: -wherefore it is of necessity that this man have somewhat also to -offer. - -8:4 For if he were on earth, he should not be a priest, seeing that -there are priests that offer gifts according to the law: 8:5 Who serve -unto the example and shadow of heavenly things, as Moses was -admonished of God when he was about to make the tabernacle: for, See, -saith he, that thou make all things according to the pattern shewed to -thee in the mount. - -8:6 But now hath he obtained a more excellent ministry, by how much -also he is the mediator of a better covenant, which was established -upon better promises. - -8:7 For if that first covenant had been faultless, then should no -place have been sought for the second. - -8:8 For finding fault with them, he saith, Behold, the days come, -saith the Lord, when I will make a new covenant with the house of -Israel and with the house of Judah: 8:9 Not according to the covenant -that I made with their fathers in the day when I took them by the hand -to lead them out of the land of Egypt; because they continued not in -my covenant, and I regarded them not, saith the Lord. - -8:10 For this is the covenant that I will make with the house of -Israel after those days, saith the Lord; I will put my laws into their -mind, and write them in their hearts: and I will be to them a God, and -they shall be to me a people: 8:11 And they shall not teach every man -his neighbour, and every man his brother, saying, Know the Lord: for -all shall know me, from the least to the greatest. - -8:12 For I will be merciful to their unrighteousness, and their sins -and their iniquities will I remember no more. - -8:13 In that he saith, A new covenant, he hath made the first old. Now -that which decayeth and waxeth old is ready to vanish away. - -9:1 Then verily the first covenant had also ordinances of divine -service, and a worldly sanctuary. - -9:2 For there was a tabernacle made; the first, wherein was the -candlestick, and the table, and the shewbread; which is called the -sanctuary. - -9:3 And after the second veil, the tabernacle which is called the -Holiest of all; 9:4 Which had the golden censer, and the ark of the -covenant overlaid round about with gold, wherein was the golden pot -that had manna, and Aaron's rod that budded, and the tables of the -covenant; 9:5 And over it the cherubims of glory shadowing the -mercyseat; of which we cannot now speak particularly. - -9:6 Now when these things were thus ordained, the priests went always -into the first tabernacle, accomplishing the service of God. - -9:7 But into the second went the high priest alone once every year, -not without blood, which he offered for himself, and for the errors of -the people: 9:8 The Holy Ghost this signifying, that the way into the -holiest of all was not yet made manifest, while as the first -tabernacle was yet standing: 9:9 Which was a figure for the time then -present, in which were offered both gifts and sacrifices, that could -not make him that did the service perfect, as pertaining to the -conscience; 9:10 Which stood only in meats and drinks, and divers -washings, and carnal ordinances, imposed on them until the time of -reformation. - -9:11 But Christ being come an high priest of good things to come, by a -greater and more perfect tabernacle, not made with hands, that is to -say, not of this building; 9:12 Neither by the blood of goats and -calves, but by his own blood he entered in once into the holy place, -having obtained eternal redemption for us. - -9:13 For if the blood of bulls and of goats, and the ashes of an -heifer sprinkling the unclean, sanctifieth to the purifying of the -flesh: 9:14 How much more shall the blood of Christ, who through the -eternal Spirit offered himself without spot to God, purge your -conscience from dead works to serve the living God? 9:15 And for this -cause he is the mediator of the new testament, that by means of death, -for the redemption of the transgressions that were under the first -testament, they which are called might receive the promise of eternal -inheritance. - -9:16 For where a testament is, there must also of necessity be the -death of the testator. - -9:17 For a testament is of force after men are dead: otherwise it is -of no strength at all while the testator liveth. - -9:18 Whereupon neither the first testament was dedicated without -blood. - -9:19 For when Moses had spoken every precept to all the people -according to the law, he took the blood of calves and of goats, with -water, and scarlet wool, and hyssop, and sprinkled both the book, and -all the people, 9:20 Saying, This is the blood of the testament which -God hath enjoined unto you. - -9:21 Moreover he sprinkled with blood both the tabernacle, and all the -vessels of the ministry. - -9:22 And almost all things are by the law purged with blood; and -without shedding of blood is no remission. - -9:23 It was therefore necessary that the patterns of things in the -heavens should be purified with these; but the heavenly things -themselves with better sacrifices than these. - -9:24 For Christ is not entered into the holy places made with hands, -which are the figures of the true; but into heaven itself, now to -appear in the presence of God for us: 9:25 Nor yet that he should -offer himself often, as the high priest entereth into the holy place -every year with blood of others; 9:26 For then must he often have -suffered since the foundation of the world: but now once in the end of -the world hath he appeared to put away sin by the sacrifice of -himself. - -9:27 And as it is appointed unto men once to die, but after this the -judgment: 9:28 So Christ was once offered to bear the sins of many; -and unto them that look for him shall he appear the second time -without sin unto salvation. - -10:1 For the law having a shadow of good things to come, and not the -very image of the things, can never with those sacrifices which they -offered year by year continually make the comers thereunto perfect. - -10:2 For then would they not have ceased to be offered? because that -the worshippers once purged should have had no more conscience of -sins. - -10:3 But in those sacrifices there is a remembrance again made of sins -every year. - -10:4 For it is not possible that the blood of bulls and of goats -should take away sins. - -10:5 Wherefore when he cometh into the world, he saith, Sacrifice and -offering thou wouldest not, but a body hast thou prepared me: 10:6 In -burnt offerings and sacrifices for sin thou hast had no pleasure. - -10:7 Then said I, Lo, I come (in the volume of the book it is written -of me,) to do thy will, O God. - -10:8 Above when he said, Sacrifice and offering and burnt offerings -and offering for sin thou wouldest not, neither hadst pleasure -therein; which are offered by the law; 10:9 Then said he, Lo, I come -to do thy will, O God. He taketh away the first, that he may establish -the second. - -10:10 By the which will we are sanctified through the offering of the -body of Jesus Christ once for all. - -10:11 And every priest standeth daily ministering and offering -oftentimes the same sacrifices, which can never take away sins: 10:12 -But this man, after he had offered one sacrifice for sins for ever, -sat down on the right hand of God; 10:13 From henceforth expecting -till his enemies be made his footstool. - -10:14 For by one offering he hath perfected for ever them that are -sanctified. - -10:15 Whereof the Holy Ghost also is a witness to us: for after that -he had said before, 10:16 This is the covenant that I will make with -them after those days, saith the Lord, I will put my laws into their -hearts, and in their minds will I write them; 10:17 And their sins and -iniquities will I remember no more. - -10:18 Now where remission of these is, there is no more offering for -sin. - -10:19 Having therefore, brethren, boldness to enter into the holiest -by the blood of Jesus, 10:20 By a new and living way, which he hath -consecrated for us, through the veil, that is to say, his flesh; 10:21 -And having an high priest over the house of God; 10:22 Let us draw -near with a true heart in full assurance of faith, having our hearts -sprinkled from an evil conscience, and our bodies washed with pure -water. - -10:23 Let us hold fast the profession of our faith without wavering; -(for he is faithful that promised;) 10:24 And let us consider one -another to provoke unto love and to good works: 10:25 Not forsaking -the assembling of ourselves together, as the manner of some is; but -exhorting one another: and so much the more, as ye see the day -approaching. - -10:26 For if we sin wilfully after that we have received the knowledge -of the truth, there remaineth no more sacrifice for sins, 10:27 But a -certain fearful looking for of judgment and fiery indignation, which -shall devour the adversaries. - -10:28 He that despised Moses' law died without mercy under two or -three witnesses: 10:29 Of how much sorer punishment, suppose ye, shall -he be thought worthy, who hath trodden under foot the Son of God, and -hath counted the blood of the covenant, wherewith he was sanctified, -an unholy thing, and hath done despite unto the Spirit of grace? -10:30 For we know him that hath said, Vengeance belongeth unto me, I -will recompense, saith the Lord. And again, The Lord shall judge his -people. - -10:31 It is a fearful thing to fall into the hands of the living God. - -10:32 But call to remembrance the former days, in which, after ye were -illuminated, ye endured a great fight of afflictions; 10:33 Partly, -whilst ye were made a gazingstock both by reproaches and afflictions; -and partly, whilst ye became companions of them that were so used. - -10:34 For ye had compassion of me in my bonds, and took joyfully the -spoiling of your goods, knowing in yourselves that ye have in heaven a -better and an enduring substance. - -10:35 Cast not away therefore your confidence, which hath great -recompence of reward. - -10:36 For ye have need of patience, that, after ye have done the will -of God, ye might receive the promise. - -10:37 For yet a little while, and he that shall come will come, and -will not tarry. - -10:38 Now the just shall live by faith: but if any man draw back, my -soul shall have no pleasure in him. - -10:39 But we are not of them who draw back unto perdition; but of them -that believe to the saving of the soul. - -11:1 Now faith is the substance of things hoped for, the evidence of -things not seen. - -11:2 For by it the elders obtained a good report. - -11:3 Through faith we understand that the worlds were framed by the -word of God, so that things which are seen were not made of things -which do appear. - -11:4 By faith Abel offered unto God a more excellent sacrifice than -Cain, by which he obtained witness that he was righteous, God -testifying of his gifts: and by it he being dead yet speaketh. - -11:5 By faith Enoch was translated that he should not see death; and -was not found, because God had translated him: for before his -translation he had this testimony, that he pleased God. - -11:6 But without faith it is impossible to please him: for he that -cometh to God must believe that he is, and that he is a rewarder of -them that diligently seek him. - -11:7 By faith Noah, being warned of God of things not seen as yet, -moved with fear, prepared an ark to the saving of his house; by the -which he condemned the world, and became heir of the righteousness -which is by faith. - -11:8 By faith Abraham, when he was called to go out into a place which -he should after receive for an inheritance, obeyed; and he went out, -not knowing whither he went. - -11:9 By faith he sojourned in the land of promise, as in a strange -country, dwelling in tabernacles with Isaac and Jacob, the heirs with -him of the same promise: 11:10 For he looked for a city which hath -foundations, whose builder and maker is God. - -11:11 Through faith also Sara herself received strength to conceive -seed, and was delivered of a child when she was past age, because she -judged him faithful who had promised. - -11:12 Therefore sprang there even of one, and him as good as dead, so -many as the stars of the sky in multitude, and as the sand which is by -the sea shore innumerable. - -11:13 These all died in faith, not having received the promises, but -having seen them afar off, and were persuaded of them, and embraced -them, and confessed that they were strangers and pilgrims on the -earth. - -11:14 For they that say such things declare plainly that they seek a -country. - -11:15 And truly, if they had been mindful of that country from whence -they came out, they might have had opportunity to have returned. - -11:16 But now they desire a better country, that is, an heavenly: -wherefore God is not ashamed to be called their God: for he hath -prepared for them a city. - -11:17 By faith Abraham, when he was tried, offered up Isaac: and he -that had received the promises offered up his only begotten son, 11:18 -Of whom it was said, That in Isaac shall thy seed be called: 11:19 -Accounting that God was able to raise him up, even from the dead; from -whence also he received him in a figure. - -11:20 By faith Isaac blessed Jacob and Esau concerning things to come. - -11:21 By faith Jacob, when he was a dying, blessed both the sons of -Joseph; and worshipped, leaning upon the top of his staff. - -11:22 By faith Joseph, when he died, made mention of the departing of -the children of Israel; and gave commandment concerning his bones. - -11:23 By faith Moses, when he was born, was hid three months of his -parents, because they saw he was a proper child; and they were not -afraid of the king's commandment. - -11:24 By faith Moses, when he was come to years, refused to be called -the son of Pharaoh's daughter; 11:25 Choosing rather to suffer -affliction with the people of God, than to enjoy the pleasures of sin -for a season; 11:26 Esteeming the reproach of Christ greater riches -than the treasures in Egypt: for he had respect unto the recompence of -the reward. - -11:27 By faith he forsook Egypt, not fearing the wrath of the king: -for he endured, as seeing him who is invisible. - -11:28 Through faith he kept the passover, and the sprinkling of blood, -lest he that destroyed the firstborn should touch them. - -11:29 By faith they passed through the Red sea as by dry land: which -the Egyptians assaying to do were drowned. - -11:30 By faith the walls of Jericho fell down, after they were -compassed about seven days. - -11:31 By faith the harlot Rahab perished not with them that believed -not, when she had received the spies with peace. - -11:32 And what shall I more say? for the time would fail me to tell of -Gedeon, and of Barak, and of Samson, and of Jephthae; of David also, -and Samuel, and of the prophets: 11:33 Who through faith subdued -kingdoms, wrought righteousness, obtained promises, stopped the mouths -of lions. - -11:34 Quenched the violence of fire, escaped the edge of the sword, -out of weakness were made strong, waxed valiant in fight, turned to -flight the armies of the aliens. - -11:35 Women received their dead raised to life again: and others were -tortured, not accepting deliverance; that they might obtain a better -resurrection: 11:36 And others had trial of cruel mockings and -scourgings, yea, moreover of bonds and imprisonment: 11:37 They were -stoned, they were sawn asunder, were tempted, were slain with the -sword: they wandered about in sheepskins and goatskins; being -destitute, afflicted, tormented; 11:38 (Of whom the world was not -worthy:) they wandered in deserts, and in mountains, and in dens and -caves of the earth. - -11:39 And these all, having obtained a good report through faith, -received not the promise: 11:40 God having provided some better thing -for us, that they without us should not be made perfect. - -12:1 Wherefore seeing we also are compassed about with so great a -cloud of witnesses, let us lay aside every weight, and the sin which -doth so easily beset us, and let us run with patience the race that is -set before us, 12:2 Looking unto Jesus the author and finisher of our -faith; who for the joy that was set before him endured the cross, -despising the shame, and is set down at the right hand of the throne -of God. - -12:3 For consider him that endured such contradiction of sinners -against himself, lest ye be wearied and faint in your minds. - -12:4 Ye have not yet resisted unto blood, striving against sin. - -12:5 And ye have forgotten the exhortation which speaketh unto you as -unto children, My son, despise not thou the chastening of the Lord, -nor faint when thou art rebuked of him: 12:6 For whom the Lord loveth -he chasteneth, and scourgeth every son whom he receiveth. - -12:7 If ye endure chastening, God dealeth with you as with sons; for -what son is he whom the father chasteneth not? 12:8 But if ye be -without chastisement, whereof all are partakers, then are ye bastards, -and not sons. - -12:9 Furthermore we have had fathers of our flesh which corrected us, -and we gave them reverence: shall we not much rather be in subjection -unto the Father of spirits, and live? 12:10 For they verily for a few -days chastened us after their own pleasure; but he for our profit, -that we might be partakers of his holiness. - -12:11 Now no chastening for the present seemeth to be joyous, but -grievous: nevertheless afterward it yieldeth the peaceable fruit of -righteousness unto them which are exercised thereby. - -12:12 Wherefore lift up the hands which hang down, and the feeble -knees; 12:13 And make straight paths for your feet, lest that which is -lame be turned out of the way; but let it rather be healed. - -12:14 Follow peace with all men, and holiness, without which no man -shall see the Lord: 12:15 Looking diligently lest any man fail of the -grace of God; lest any root of bitterness springing up trouble you, -and thereby many be defiled; 12:16 Lest there be any fornicator, or -profane person, as Esau, who for one morsel of meat sold his -birthright. - -12:17 For ye know how that afterward, when he would have inherited the -blessing, he was rejected: for he found no place of repentance, though -he sought it carefully with tears. - -12:18 For ye are not come unto the mount that might be touched, and -that burned with fire, nor unto blackness, and darkness, and tempest, -12:19 And the sound of a trumpet, and the voice of words; which voice -they that heard intreated that the word should not be spoken to them -any more: 12:20 (For they could not endure that which was commanded, -And if so much as a beast touch the mountain, it shall be stoned, or -thrust through with a dart: 12:21 And so terrible was the sight, that -Moses said, I exceedingly fear and quake:) 12:22 But ye are come unto -mount Sion, and unto the city of the living God, the heavenly -Jerusalem, and to an innumerable company of angels, 12:23 To the -general assembly and church of the firstborn, which are written in -heaven, and to God the Judge of all, and to the spirits of just men -made perfect, 12:24 And to Jesus the mediator of the new covenant, and -to the blood of sprinkling, that speaketh better things than that of -Abel. - -12:25 See that ye refuse not him that speaketh. For if they escaped -not who refused him that spake on earth, much more shall not we -escape, if we turn away from him that speaketh from heaven: 12:26 -Whose voice then shook the earth: but now he hath promised, saying, -Yet once more I shake not the earth only, but also heaven. - -12:27 And this word, Yet once more, signifieth the removing of those -things that are shaken, as of things that are made, that those things -which cannot be shaken may remain. - -12:28 Wherefore we receiving a kingdom which cannot be moved, let us -have grace, whereby we may serve God acceptably with reverence and -godly fear: 12:29 For our God is a consuming fire. - -13:1 Let brotherly love continue. - -13:2 Be not forgetful to entertain strangers: for thereby some have -entertained angels unawares. - -13:3 Remember them that are in bonds, as bound with them; and them -which suffer adversity, as being yourselves also in the body. - -13:4 Marriage is honourable in all, and the bed undefiled: but -whoremongers and adulterers God will judge. - -13:5 Let your conversation be without covetousness; and be content -with such things as ye have: for he hath said, I will never leave -thee, nor forsake thee. - -13:6 So that we may boldly say, The Lord is my helper, and I will not -fear what man shall do unto me. - -13:7 Remember them which have the rule over you, who have spoken unto -you the word of God: whose faith follow, considering the end of their -conversation. - -13:8 Jesus Christ the same yesterday, and to day, and for ever. - -13:9 Be not carried about with divers and strange doctrines. For it is -a good thing that the heart be established with grace; not with meats, -which have not profited them that have been occupied therein. - -13:10 We have an altar, whereof they have no right to eat which serve -the tabernacle. - -13:11 For the bodies of those beasts, whose blood is brought into the -sanctuary by the high priest for sin, are burned without the camp. - -13:12 Wherefore Jesus also, that he might sanctify the people with his -own blood, suffered without the gate. - -13:13 Let us go forth therefore unto him without the camp, bearing his -reproach. - -13:14 For here have we no continuing city, but we seek one to come. - -13:15 By him therefore let us offer the sacrifice of praise to God -continually, that is, the fruit of our lips giving thanks to his name. - -13:16 But to do good and to communicate forget not: for with such -sacrifices God is well pleased. - -13:17 Obey them that have the rule over you, and submit yourselves: -for they watch for your souls, as they that must give account, that -they may do it with joy, and not with grief: for that is unprofitable -for you. - -13:18 Pray for us: for we trust we have a good conscience, in all -things willing to live honestly. - -13:19 But I beseech you the rather to do this, that I may be restored -to you the sooner. - -13:20 Now the God of peace, that brought again from the dead our Lord -Jesus, that great shepherd of the sheep, through the blood of the -everlasting covenant, 13:21 Make you perfect in every good work to do -his will, working in you that which is wellpleasing in his sight, -through Jesus Christ; to whom be glory for ever and ever. Amen. - -13:22 And I beseech you, brethren, suffer the word of exhortation: for -I have written a letter unto you in few words. - -13:23 Know ye that our brother Timothy is set at liberty; with whom, -if he come shortly, I will see you. - -13:24 Salute all them that have the rule over you, and all the saints. - -They of Italy salute you. - -13:25 Grace be with you all. Amen. - - - - -The General Epistle of James - - -1:1 James, a servant of God and of the Lord Jesus Christ, -to the twelve tribes which are scattered abroad, greeting. - -1:2 My brethren, count it all joy when ye fall into divers -temptations; 1:3 Knowing this, that the trying of your faith worketh -patience. - -1:4 But let patience have her perfect work, that ye may be perfect and -entire, wanting nothing. - -1:5 If any of you lack wisdom, let him ask of God, that giveth to all -men liberally, and upbraideth not; and it shall be given him. - -1:6 But let him ask in faith, nothing wavering. For he that wavereth -is like a wave of the sea driven with the wind and tossed. - -1:7 For let not that man think that he shall receive any thing of the -Lord. - -1:8 A double minded man is unstable in all his ways. - -1:9 Let the brother of low degree rejoice in that he is exalted: 1:10 -But the rich, in that he is made low: because as the flower of the -grass he shall pass away. - -1:11 For the sun is no sooner risen with a burning heat, but it -withereth the grass, and the flower thereof falleth, and the grace of -the fashion of it perisheth: so also shall the rich man fade away in -his ways. - -1:12 Blessed is the man that endureth temptation: for when he is -tried, he shall receive the crown of life, which the Lord hath -promised to them that love him. - -1:13 Let no man say when he is tempted, I am tempted of God: for God -cannot be tempted with evil, neither tempteth he any man: 1:14 But -every man is tempted, when he is drawn away of his own lust, and -enticed. - -1:15 Then when lust hath conceived, it bringeth forth sin: and sin, -when it is finished, bringeth forth death. - -1:16 Do not err, my beloved brethren. - -1:17 Every good gift and every perfect gift is from above, and cometh -down from the Father of lights, with whom is no variableness, neither -shadow of turning. - -1:18 Of his own will begat he us with the word of truth, that we -should be a kind of firstfruits of his creatures. - -1:19 Wherefore, my beloved brethren, let every man be swift to hear, -slow to speak, slow to wrath: 1:20 For the wrath of man worketh not -the righteousness of God. - -1:21 Wherefore lay apart all filthiness and superfluity of -naughtiness, and receive with meekness the engrafted word, which is -able to save your souls. - -1:22 But be ye doers of the word, and not hearers only, deceiving your -own selves. - -1:23 For if any be a hearer of the word, and not a doer, he is like -unto a man beholding his natural face in a glass: 1:24 For he -beholdeth himself, and goeth his way, and straightway forgetteth what -manner of man he was. - -1:25 But whoso looketh into the perfect law of liberty, and continueth -therein, he being not a forgetful hearer, but a doer of the work, this -man shall be blessed in his deed. - -1:26 If any man among you seem to be religious, and bridleth not his -tongue, but deceiveth his own heart, this man's religion is vain. - -1:27 Pure religion and undefiled before God and the Father is this, To -visit the fatherless and widows in their affliction, and to keep -himself unspotted from the world. - -2:1 My brethren, have not the faith of our Lord Jesus Christ, the Lord -of glory, with respect of persons. - -2:2 For if there come unto your assembly a man with a gold ring, in -goodly apparel, and there come in also a poor man in vile raiment; 2:3 -And ye have respect to him that weareth the gay clothing, and say unto -him, Sit thou here in a good place; and say to the poor, Stand thou -there, or sit here under my footstool: 2:4 Are ye not then partial in -yourselves, and are become judges of evil thoughts? 2:5 Hearken, my -beloved brethren, Hath not God chosen the poor of this world rich in -faith, and heirs of the kingdom which he hath promised to them that -love him? 2:6 But ye have despised the poor. Do not rich men oppress -you, and draw you before the judgment seats? 2:7 Do not they -blaspheme that worthy name by the which ye are called? 2:8 If ye -fulfil the royal law according to the scripture, Thou shalt love thy -neighbour as thyself, ye do well: 2:9 But if ye have respect to -persons, ye commit sin, and are convinced of the law as transgressors. - -2:10 For whosoever shall keep the whole law, and yet offend in one -point, he is guilty of all. - -2:11 For he that said, Do not commit adultery, said also, Do not kill. -Now if thou commit no adultery, yet if thou kill, thou art become a -transgressor of the law. - -2:12 So speak ye, and so do, as they that shall be judged by the law -of liberty. - -2:13 For he shall have judgment without mercy, that hath shewed no -mercy; and mercy rejoiceth against judgment. - -2:14 What doth it profit, my brethren, though a man say he hath faith, -and have not works? can faith save him? 2:15 If a brother or sister -be naked, and destitute of daily food, 2:16 And one of you say unto -them, Depart in peace, be ye warmed and filled; notwithstanding ye -give them not those things which are needful to the body; what doth it -profit? 2:17 Even so faith, if it hath not works, is dead, being -alone. - -2:18 Yea, a man may say, Thou hast faith, and I have works: shew me -thy faith without thy works, and I will shew thee my faith by my -works. - -2:19 Thou believest that there is one God; thou doest well: the devils -also believe, and tremble. - -2:20 But wilt thou know, O vain man, that faith without works is dead? -2:21 Was not Abraham our father justified by works, when he had -offered Isaac his son upon the altar? 2:22 Seest thou how faith -wrought with his works, and by works was faith made perfect? 2:23 And -the scripture was fulfilled which saith, Abraham believed God, and it -was imputed unto him for righteousness: and he was called the Friend -of God. - -2:24 Ye see then how that by works a man is justified, and not by -faith only. - -2:25 Likewise also was not Rahab the harlot justified by works, when -she had received the messengers, and had sent them out another way? -2:26 For as the body without the spirit is dead, so faith without -works is dead also. - -3:1 My brethren, be not many masters, knowing that we shall receive -the greater condemnation. - -3:2 For in many things we offend all. If any man offend not in word, -the same is a perfect man, and able also to bridle the whole body. - -3:3 Behold, we put bits in the horses' mouths, that they may obey us; -and we turn about their whole body. - -3:4 Behold also the ships, which though they be so great, and are -driven of fierce winds, yet are they turned about with a very small -helm, whithersoever the governor listeth. - -3:5 Even so the tongue is a little member, and boasteth great things. - -Behold, how great a matter a little fire kindleth! 3:6 And the tongue -is a fire, a world of iniquity: so is the tongue among our members, -that it defileth the whole body, and setteth on fire the course of -nature; and it is set on fire of hell. - -3:7 For every kind of beasts, and of birds, and of serpents, and of -things in the sea, is tamed, and hath been tamed of mankind: 3:8 But -the tongue can no man tame; it is an unruly evil, full of deadly -poison. - -3:9 Therewith bless we God, even the Father; and therewith curse we -men, which are made after the similitude of God. - -3:10 Out of the same mouth proceedeth blessing and cursing. My -brethren, these things ought not so to be. - -3:11 Doth a fountain send forth at the same place sweet water and -bitter? 3:12 Can the fig tree, my brethren, bear olive berries? -either a vine, figs? so can no fountain both yield salt water and -fresh. - -3:13 Who is a wise man and endued with knowledge among you? let him -shew out of a good conversation his works with meekness of wisdom. - -3:14 But if ye have bitter envying and strife in your hearts, glory -not, and lie not against the truth. - -3:15 This wisdom descendeth not from above, but is earthly, sensual, -devilish. - -3:16 For where envying and strife is, there is confusion and every -evil work. - -3:17 But the wisdom that is from above is first pure, then peaceable, -gentle, and easy to be intreated, full of mercy and good fruits, -without partiality, and without hypocrisy. - -3:18 And the fruit of righteousness is sown in peace of them that make -peace. - -4:1 From whence come wars and fightings among you? come they not -hence, even of your lusts that war in your members? 4:2 Ye lust, and -have not: ye kill, and desire to have, and cannot obtain: ye fight and -war, yet ye have not, because ye ask not. - -4:3 Ye ask, and receive not, because ye ask amiss, that ye may consume -it upon your lusts. - -4:4 Ye adulterers and adulteresses, know ye not that the friendship of -the world is enmity with God? whosoever therefore will be a friend of -the world is the enemy of God. - -4:5 Do ye think that the scripture saith in vain, The spirit that -dwelleth in us lusteth to envy? 4:6 But he giveth more grace. -Wherefore he saith, God resisteth the proud, but giveth grace unto the -humble. - -4:7 Submit yourselves therefore to God. Resist the devil, and he will -flee from you. - -4:8 Draw nigh to God, and he will draw nigh to you. Cleanse your -hands, ye sinners; and purify your hearts, ye double minded. - -4:9 Be afflicted, and mourn, and weep: let your laughter be turned to -mourning, and your joy to heaviness. - -4:10 Humble yourselves in the sight of the Lord, and he shall lift you -up. - -4:11 Speak not evil one of another, brethren. He that speaketh evil of -his brother, and judgeth his brother, speaketh evil of the law, and -judgeth the law: but if thou judge the law, thou art not a doer of the -law, but a judge. - -4:12 There is one lawgiver, who is able to save and to destroy: who -art thou that judgest another? 4:13 Go to now, ye that say, To day or -to morrow we will go into such a city, and continue there a year, and -buy and sell, and get gain: 4:14 Whereas ye know not what shall be on -the morrow. For what is your life? It is even a vapour, that appeareth -for a little time, and then vanisheth away. - -4:15 For that ye ought to say, If the Lord will, we shall live, and do -this, or that. - -4:16 But now ye rejoice in your boastings: all such rejoicing is evil. - -4:17 Therefore to him that knoweth to do good, and doeth it not, to -him it is sin. - -5:1 Go to now, ye rich men, weep and howl for your miseries that shall -come upon you. - -5:2 Your riches are corrupted, and your garments are motheaten. - -5:3 Your gold and silver is cankered; and the rust of them shall be a -witness against you, and shall eat your flesh as it were fire. Ye have -heaped treasure together for the last days. - -5:4 Behold, the hire of the labourers who have reaped down your -fields, which is of you kept back by fraud, crieth: and the cries of -them which have reaped are entered into the ears of the Lord of -sabaoth. - -5:5 Ye have lived in pleasure on the earth, and been wanton; ye have -nourished your hearts, as in a day of slaughter. - -5:6 Ye have condemned and killed the just; and he doth not resist you. - -5:7 Be patient therefore, brethren, unto the coming of the Lord. - -Behold, the husbandman waiteth for the precious fruit of the earth, -and hath long patience for it, until he receive the early and latter -rain. - -5:8 Be ye also patient; stablish your hearts: for the coming of the -Lord draweth nigh. - -5:9 Grudge not one against another, brethren, lest ye be condemned: -behold, the judge standeth before the door. - -5:10 Take, my brethren, the prophets, who have spoken in the name of -the Lord, for an example of suffering affliction, and of patience. - -5:11 Behold, we count them happy which endure. Ye have heard of the -patience of Job, and have seen the end of the Lord; that the Lord is -very pitiful, and of tender mercy. - -5:12 But above all things, my brethren, swear not, neither by heaven, -neither by the earth, neither by any other oath: but let your yea be -yea; and your nay, nay; lest ye fall into condemnation. - -5:13 Is any among you afflicted? let him pray. Is any merry? let him -sing psalms. - -5:14 Is any sick among you? let him call for the elders of the church; -and let them pray over him, anointing him with oil in the name of the -Lord: 5:15 And the prayer of faith shall save the sick, and the Lord -shall raise him up; and if he have committed sins, they shall be -forgiven him. - -5:16 Confess your faults one to another, and pray one for another, -that ye may be healed. The effectual fervent prayer of a righteous man -availeth much. - -5:17 Elias was a man subject to like passions as we are, and he prayed -earnestly that it might not rain: and it rained not on the earth by -the space of three years and six months. - -5:18 And he prayed again, and the heaven gave rain, and the earth -brought forth her fruit. - -5:19 Brethren, if any of you do err from the truth, and one convert -him; 5:20 Let him know, that he which converteth the sinner from the -error of his way shall save a soul from death, and shall hide a -multitude of sins. - - - - -The First Epistle General of Peter - - -1:1 Peter, an apostle of Jesus Christ, to the strangers scattered -throughout Pontus, Galatia, Cappadocia, Asia, and Bithynia, 1:2 Elect -according to the foreknowledge of God the Father, through -sanctification of the Spirit, unto obedience and sprinkling of the -blood of Jesus Christ: Grace unto you, and peace, be multiplied. - -1:3 Blessed be the God and Father of our Lord Jesus Christ, which -according to his abundant mercy hath begotten us again unto a lively -hope by the resurrection of Jesus Christ from the dead, 1:4 To an -inheritance incorruptible, and undefiled, and that fadeth not away, -reserved in heaven for you, 1:5 Who are kept by the power of God -through faith unto salvation ready to be revealed in the last time. - -1:6 Wherein ye greatly rejoice, though now for a season, if need be, -ye are in heaviness through manifold temptations: 1:7 That the trial -of your faith, being much more precious than of gold that perisheth, -though it be tried with fire, might be found unto praise and honour -and glory at the appearing of Jesus Christ: 1:8 Whom having not seen, -ye love; in whom, though now ye see him not, yet believing, ye rejoice -with joy unspeakable and full of glory: 1:9 Receiving the end of your -faith, even the salvation of your souls. - -1:10 Of which salvation the prophets have enquired and searched -diligently, who prophesied of the grace that should come unto you: -1:11 Searching what, or what manner of time the Spirit of Christ which -was in them did signify, when it testified beforehand the sufferings -of Christ, and the glory that should follow. - -1:12 Unto whom it was revealed, that not unto themselves, but unto us -they did minister the things, which are now reported unto you by them -that have preached the gospel unto you with the Holy Ghost sent down -from heaven; which things the angels desire to look into. - -1:13 Wherefore gird up the loins of your mind, be sober, and hope to -the end for the grace that is to be brought unto you at the revelation -of Jesus Christ; 1:14 As obedient children, not fashioning yourselves -according to the former lusts in your ignorance: 1:15 But as he which -hath called you is holy, so be ye holy in all manner of conversation; -1:16 Because it is written, Be ye holy; for I am holy. - -1:17 And if ye call on the Father, who without respect of persons -judgeth according to every man's work, pass the time of your -sojourning here in fear: 1:18 Forasmuch as ye know that ye were not -redeemed with corruptible things, as silver and gold, from your vain -conversation received by tradition from your fathers; 1:19 But with -the precious blood of Christ, as of a lamb without blemish and without -spot: 1:20 Who verily was foreordained before the foundation of the -world, but was manifest in these last times for you, 1:21 Who by him -do believe in God, that raised him up from the dead, and gave him -glory; that your faith and hope might be in God. - -1:22 Seeing ye have purified your souls in obeying the truth through -the Spirit unto unfeigned love of the brethren, see that ye love one -another with a pure heart fervently: 1:23 Being born again, not of -corruptible seed, but of incorruptible, by the word of God, which -liveth and abideth for ever. - -1:24 For all flesh is as grass, and all the glory of man as the flower -of grass. The grass withereth, and the flower thereof falleth away: -1:25 But the word of the Lord endureth for ever. And this is the word -which by the gospel is preached unto you. - -2:1 Wherefore laying aside all malice, and all guile, and hypocrisies, -and envies, all evil speakings, 2:2 As newborn babes, desire the -sincere milk of the word, that ye may grow thereby: 2:3 If so be ye -have tasted that the Lord is gracious. - -2:4 To whom coming, as unto a living stone, disallowed indeed of men, -but chosen of God, and precious, 2:5 Ye also, as lively stones, are -built up a spiritual house, an holy priesthood, to offer up spiritual -sacrifices, acceptable to God by Jesus Christ. - -2:6 Wherefore also it is contained in the scripture, Behold, I lay in -Sion a chief corner stone, elect, precious: and he that believeth on -him shall not be confounded. - -2:7 Unto you therefore which believe he is precious: but unto them -which be disobedient, the stone which the builders disallowed, the -same is made the head of the corner, 2:8 And a stone of stumbling, and -a rock of offence, even to them which stumble at the word, being -disobedient: whereunto also they were appointed. - -2:9 But ye are a chosen generation, a royal priesthood, an holy -nation, a peculiar people; that ye should shew forth the praises of -him who hath called you out of darkness into his marvellous light; -2:10 Which in time past were not a people, but are now the people of -God: which had not obtained mercy, but now have obtained mercy. - -2:11 Dearly beloved, I beseech you as strangers and pilgrims, abstain -from fleshly lusts, which war against the soul; 2:12 Having your -conversation honest among the Gentiles: that, whereas they speak -against you as evildoers, they may by your good works, which they -shall behold, glorify God in the day of visitation. - -2:13 Submit yourselves to every ordinance of man for the Lord's sake: -whether it be to the king, as supreme; 2:14 Or unto governors, as unto -them that are sent by him for the punishment of evildoers, and for the -praise of them that do well. - -2:15 For so is the will of God, that with well doing ye may put to -silence the ignorance of foolish men: 2:16 As free, and not using your -liberty for a cloke of maliciousness, but as the servants of God. - -2:17 Honour all men. Love the brotherhood. Fear God. Honour the king. - -2:18 Servants, be subject to your masters with all fear; not only to -the good and gentle, but also to the froward. - -2:19 For this is thankworthy, if a man for conscience toward God -endure grief, suffering wrongfully. - -2:20 For what glory is it, if, when ye be buffeted for your faults, ye -shall take it patiently? but if, when ye do well, and suffer for it, -ye take it patiently, this is acceptable with God. - -2:21 For even hereunto were ye called: because Christ also suffered -for us, leaving us an example, that ye should follow his steps: 2:22 -Who did no sin, neither was guile found in his mouth: 2:23 Who, when -he was reviled, reviled not again; when he suffered, he threatened -not; but committed himself to him that judgeth righteously: 2:24 Who -his own self bare our sins in his own body on the tree, that we, being -dead to sins, should live unto righteousness: by whose stripes ye were -healed. - -2:25 For ye were as sheep going astray; but are now returned unto the -Shepherd and Bishop of your souls. - -3:1 Likewise, ye wives, be in subjection to your own husbands; that, -if any obey not the word, they also may without the word be won by the -conversation of the wives; 3:2 While they behold your chaste -conversation coupled with fear. - -3:3 Whose adorning let it not be that outward adorning of plaiting the -hair, and of wearing of gold, or of putting on of apparel; 3:4 But let -it be the hidden man of the heart, in that which is not corruptible, -even the ornament of a meek and quiet spirit, which is in the sight of -God of great price. - -3:5 For after this manner in the old time the holy women also, who -trusted in God, adorned themselves, being in subjection unto their own -husbands: 3:6 Even as Sara obeyed Abraham, calling him lord: whose -daughters ye are, as long as ye do well, and are not afraid with any -amazement. - -3:7 Likewise, ye husbands, dwell with them according to knowledge, -giving honour unto the wife, as unto the weaker vessel, and as being -heirs together of the grace of life; that your prayers be not -hindered. - -3:8 Finally, be ye all of one mind, having compassion one of another, -love as brethren, be pitiful, be courteous: 3:9 Not rendering evil for -evil, or railing for railing: but contrariwise blessing; knowing that -ye are thereunto called, that ye should inherit a blessing. - -3:10 For he that will love life, and see good days, let him refrain -his tongue from evil, and his lips that they speak no guile: 3:11 Let -him eschew evil, and do good; let him seek peace, and ensue it. - -3:12 For the eyes of the Lord are over the righteous, and his ears are -open unto their prayers: but the face of the Lord is against them that -do evil. - -3:13 And who is he that will harm you, if ye be followers of that -which is good? 3:14 But and if ye suffer for righteousness' sake, -happy are ye: and be not afraid of their terror, neither be troubled; -3:15 But sanctify the Lord God in your hearts: and be ready always to -give an answer to every man that asketh you a reason of the hope that -is in you with meekness and fear: 3:16 Having a good conscience; that, -whereas they speak evil of you, as of evildoers, they may be ashamed -that falsely accuse your good conversation in Christ. - -3:17 For it is better, if the will of God be so, that ye suffer for -well doing, than for evil doing. - -3:18 For Christ also hath once suffered for sins, the just for the -unjust, that he might bring us to God, being put to death in the -flesh, but quickened by the Spirit: 3:19 By which also he went and -preached unto the spirits in prison; 3:20 Which sometime were -disobedient, when once the longsuffering of God waited in the days of -Noah, while the ark was a preparing, wherein few, that is, eight souls -were saved by water. - -3:21 The like figure whereunto even baptism doth also now save us (not -the putting away of the filth of the flesh, but the answer of a good -conscience toward God,) by the resurrection of Jesus Christ: 3:22 Who -is gone into heaven, and is on the right hand of God; angels and -authorities and powers being made subject unto him. - -4:1 Forasmuch then as Christ hath suffered for us in the flesh, arm -yourselves likewise with the same mind: for he that hath suffered in -the flesh hath ceased from sin; 4:2 That he no longer should live the -rest of his time in the flesh to the lusts of men, but to the will of -God. - -4:3 For the time past of our life may suffice us to have wrought the -will of the Gentiles, when we walked in lasciviousness, lusts, excess -of wine, revellings, banquetings, and abominable idolatries: 4:4 -Wherein they think it strange that ye run not with them to the same -excess of riot, speaking evil of you: 4:5 Who shall give account to -him that is ready to judge the quick and the dead. - -4:6 For for this cause was the gospel preached also to them that are -dead, that they might be judged according to men in the flesh, but -live according to God in the spirit. - -4:7 But the end of all things is at hand: be ye therefore sober, and -watch unto prayer. - -4:8 And above all things have fervent charity among yourselves: for -charity shall cover the multitude of sins. - -4:9 Use hospitality one to another without grudging. - -4:10 As every man hath received the gift, even so minister the same -one to another, as good stewards of the manifold grace of God. - -4:11 If any man speak, let him speak as the oracles of God; if any man -minister, let him do it as of the ability which God giveth: that God -in all things may be glorified through Jesus Christ, to whom be praise -and dominion for ever and ever. Amen. - -4:12 Beloved, think it not strange concerning the fiery trial which is -to try you, as though some strange thing happened unto you: 4:13 But -rejoice, inasmuch as ye are partakers of Christ's sufferings; that, -when his glory shall be revealed, ye may be glad also with exceeding -joy. - -4:14 If ye be reproached for the name of Christ, happy are ye; for the -spirit of glory and of God resteth upon you: on their part he is evil -spoken of, but on your part he is glorified. - -4:15 But let none of you suffer as a murderer, or as a thief, or as an -evildoer, or as a busybody in other men's matters. - -4:16 Yet if any man suffer as a Christian, let him not be ashamed; but -let him glorify God on this behalf. - -4:17 For the time is come that judgment must begin at the house of -God: and if it first begin at us, what shall the end be of them that -obey not the gospel of God? 4:18 And if the righteous scarcely be -saved, where shall the ungodly and the sinner appear? 4:19 Wherefore -let them that suffer according to the will of God commit the keeping -of their souls to him in well doing, as unto a faithful Creator. - -5:1 The elders which are among you I exhort, who am also an elder, and -a witness of the sufferings of Christ, and also a partaker of the -glory that shall be revealed: 5:2 Feed the flock of God which is among -you, taking the oversight thereof, not by constraint, but willingly; -not for filthy lucre, but of a ready mind; 5:3 Neither as being lords -over God's heritage, but being ensamples to the flock. - -5:4 And when the chief Shepherd shall appear, ye shall receive a crown -of glory that fadeth not away. - -5:5 Likewise, ye younger, submit yourselves unto the elder. Yea, all -of you be subject one to another, and be clothed with humility: for -God resisteth the proud, and giveth grace to the humble. - -5:6 Humble yourselves therefore under the mighty hand of God, that he -may exalt you in due time: 5:7 Casting all your care upon him; for he -careth for you. - -5:8 Be sober, be vigilant; because your adversary the devil, as a -roaring lion, walketh about, seeking whom he may devour: 5:9 Whom -resist stedfast in the faith, knowing that the same afflictions are -accomplished in your brethren that are in the world. - -5:10 But the God of all grace, who hath called us unto his eternal -glory by Christ Jesus, after that ye have suffered a while, make you -perfect, stablish, strengthen, settle you. - -5:11 To him be glory and dominion for ever and ever. Amen. - -5:12 By Silvanus, a faithful brother unto you, as I suppose, I have -written briefly, exhorting, and testifying that this is the true grace -of God wherein ye stand. - -5:13 The church that is at Babylon, elected together with you, -saluteth you; and so doth Marcus my son. - -5:14 Greet ye one another with a kiss of charity. Peace be with you -all that are in Christ Jesus. Amen. - - - - -The Second General Epistle of Peter - - -1:1 Simon Peter, a servant and an apostle of Jesus Christ, to them -that have obtained like precious faith with us through the -righteousness of God and our Saviour Jesus Christ: 1:2 Grace and peace -be multiplied unto you through the knowledge of God, and of Jesus our -Lord, 1:3 According as his divine power hath given unto us all things -that pertain unto life and godliness, through the knowledge of him -that hath called us to glory and virtue: 1:4 Whereby are given unto us -exceeding great and precious promises: that by these ye might be -partakers of the divine nature, having escaped the corruption that is -in the world through lust. - -1:5 And beside this, giving all diligence, add to your faith virtue; -and to virtue knowledge; 1:6 And to knowledge temperance; and to -temperance patience; and to patience godliness; 1:7 And to godliness -brotherly kindness; and to brotherly kindness charity. - -1:8 For if these things be in you, and abound, they make you that ye -shall neither be barren nor unfruitful in the knowledge of our Lord -Jesus Christ. - -1:9 But he that lacketh these things is blind, and cannot see afar -off, and hath forgotten that he was purged from his old sins. - -1:10 Wherefore the rather, brethren, give diligence to make your -calling and election sure: for if ye do these things, ye shall never -fall: 1:11 For so an entrance shall be ministered unto you abundantly -into the everlasting kingdom of our Lord and Saviour Jesus Christ. - -1:12 Wherefore I will not be negligent to put you always in -remembrance of these things, though ye know them, and be established -in the present truth. - -1:13 Yea, I think it meet, as long as I am in this tabernacle, to stir -you up by putting you in remembrance; 1:14 Knowing that shortly I must -put off this my tabernacle, even as our Lord Jesus Christ hath shewed -me. - -1:15 Moreover I will endeavour that ye may be able after my decease to -have these things always in remembrance. - -1:16 For we have not followed cunningly devised fables, when we made -known unto you the power and coming of our Lord Jesus Christ, but were -eyewitnesses of his majesty. - -1:17 For he received from God the Father honour and glory, when there -came such a voice to him from the excellent glory, This is my beloved -Son, in whom I am well pleased. - -1:18 And this voice which came from heaven we heard, when we were with -him in the holy mount. - -1:19 We have also a more sure word of prophecy; whereunto ye do well -that ye take heed, as unto a light that shineth in a dark place, until -the day dawn, and the day star arise in your hearts: 1:20 Knowing this -first, that no prophecy of the scripture is of any private -interpretation. - -1:21 For the prophecy came not in old time by the will of man: but -holy men of God spake as they were moved by the Holy Ghost. - -2:1 But there were false prophets also among the people, even as there -shall be false teachers among you, who privily shall bring in damnable -heresies, even denying the Lord that bought them, and bring upon -themselves swift destruction. - -2:2 And many shall follow their pernicious ways; by reason of whom the -way of truth shall be evil spoken of. - -2:3 And through covetousness shall they with feigned words make -merchandise of you: whose judgment now of a long time lingereth not, -and their damnation slumbereth not. - -2:4 For if God spared not the angels that sinned, but cast them down -to hell, and delivered them into chains of darkness, to be reserved -unto judgment; 2:5 And spared not the old world, but saved Noah the -eighth person, a preacher of righteousness, bringing in the flood upon -the world of the ungodly; 2:6 And turning the cities of Sodom and -Gomorrha into ashes condemned them with an overthrow, making them an -ensample unto those that after should live ungodly; 2:7 And delivered -just Lot, vexed with the filthy conversation of the wicked: 2:8 (For -that righteous man dwelling among them, in seeing and hearing, vexed -his righteous soul from day to day with their unlawful deeds;) 2:9 The -Lord knoweth how to deliver the godly out of temptations, and to -reserve the unjust unto the day of judgment to be punished: 2:10 But -chiefly them that walk after the flesh in the lust of uncleanness, and -despise government. Presumptuous are they, selfwilled, they are not -afraid to speak evil of dignities. - -2:11 Whereas angels, which are greater in power and might, bring not -railing accusation against them before the Lord. - -2:12 But these, as natural brute beasts, made to be taken and -destroyed, speak evil of the things that they understand not; and -shall utterly perish in their own corruption; 2:13 And shall receive -the reward of unrighteousness, as they that count it pleasure to riot -in the day time. Spots they are and blemishes, sporting themselves -with their own deceivings while they feast with you; 2:14 Having eyes -full of adultery, and that cannot cease from sin; beguiling unstable -souls: an heart they have exercised with covetous practices; cursed -children: 2:15 Which have forsaken the right way, and are gone astray, -following the way of Balaam the son of Bosor, who loved the wages of -unrighteousness; 2:16 But was rebuked for his iniquity: the dumb ass -speaking with man's voice forbad the madness of the prophet. - -2:17 These are wells without water, clouds that are carried with a -tempest; to whom the mist of darkness is reserved for ever. - -2:18 For when they speak great swelling words of vanity, they allure -through the lusts of the flesh, through much wantonness, those that -were clean escaped from them who live in error. - -2:19 While they promise them liberty, they themselves are the servants -of corruption: for of whom a man is overcome, of the same is he -brought in bondage. - -2:20 For if after they have escaped the pollutions of the world -through the knowledge of the Lord and Saviour Jesus Christ, they are -again entangled therein, and overcome, the latter end is worse with -them than the beginning. - -2:21 For it had been better for them not to have known the way of -righteousness, than, after they have known it, to turn from the holy -commandment delivered unto them. - -2:22 But it is happened unto them according to the true proverb, The -dog is turned to his own vomit again; and the sow that was washed to -her wallowing in the mire. - -3:1 This second epistle, beloved, I now write unto you; in both which -I stir up your pure minds by way of remembrance: 3:2 That ye may be -mindful of the words which were spoken before by the holy prophets, -and of the commandment of us the apostles of the Lord and Saviour: 3:3 -Knowing this first, that there shall come in the last days scoffers, -walking after their own lusts, 3:4 And saying, Where is the promise of -his coming? for since the fathers fell asleep, all things continue as -they were from the beginning of the creation. - -3:5 For this they willingly are ignorant of, that by the word of God -the heavens were of old, and the earth standing out of the water and -in the water: 3:6 Whereby the world that then was, being overflowed -with water, perished: 3:7 But the heavens and the earth, which are -now, by the same word are kept in store, reserved unto fire against -the day of judgment and perdition of ungodly men. - -3:8 But, beloved, be not ignorant of this one thing, that one day is -with the Lord as a thousand years, and a thousand years as one day. - -3:9 The Lord is not slack concerning his promise, as some men count -slackness; but is longsuffering to us-ward, not willing that any -should perish, but that all should come to repentance. - -3:10 But the day of the Lord will come as a thief in the night; in the -which the heavens shall pass away with a great noise, and the elements -shall melt with fervent heat, the earth also and the works that are -therein shall be burned up. - -3:11 Seeing then that all these things shall be dissolved, what manner -of persons ought ye to be in all holy conversation and godliness, 3:12 -Looking for and hasting unto the coming of the day of God, wherein the -heavens being on fire shall be dissolved, and the elements shall melt -with fervent heat? 3:13 Nevertheless we, according to his promise, -look for new heavens and a new earth, wherein dwelleth righteousness. - -3:14 Wherefore, beloved, seeing that ye look for such things, be -diligent that ye may be found of him in peace, without spot, and -blameless. - -3:15 And account that the longsuffering of our Lord is salvation; even -as our beloved brother Paul also according to the wisdom given unto -him hath written unto you; 3:16 As also in all his epistles, speaking -in them of these things; in which are some things hard to be -understood, which they that are unlearned and unstable wrest, as they -do also the other scriptures, unto their own destruction. - -3:17 Ye therefore, beloved, seeing ye know these things before, beware -lest ye also, being led away with the error of the wicked, fall from -your own stedfastness. - -3:18 But grow in grace, and in the knowledge of our Lord and Saviour -Jesus Christ. To him be glory both now and for ever. Amen. - - - - -The First Epistle General of John - - -1:1 That which was from the beginning, which we have heard, which we -have seen with our eyes, which we have looked upon, and our hands have -handled, of the Word of life; 1:2 (For the life was manifested, and we -have seen it, and bear witness, and shew unto you that eternal life, -which was with the Father, and was manifested unto us;) 1:3 That which -we have seen and heard declare we unto you, that ye also may have -fellowship with us: and truly our fellowship is with the Father, and -with his Son Jesus Christ. - -1:4 And these things write we unto you, that your joy may be full. - -1:5 This then is the message which we have heard of him, and declare -unto you, that God is light, and in him is no darkness at all. - -1:6 If we say that we have fellowship with him, and walk in darkness, -we lie, and do not the truth: 1:7 But if we walk in the light, as he -is in the light, we have fellowship one with another, and the blood of -Jesus Christ his Son cleanseth us from all sin. - -1:8 If we say that we have no sin, we deceive ourselves, and the truth -is not in us. - -1:9 If we confess our sins, he is faithful and just to forgive us our -sins, and to cleanse us from all unrighteousness. - -1:10 If we say that we have not sinned, we make him a liar, and his -word is not in us. - -2:1 My little children, these things write I unto you, that ye sin -not. - -And if any man sin, we have an advocate with the Father, Jesus Christ -the righteous: 2:2 And he is the propitiation for our sins: and not -for our's only, but also for the sins of the whole world. - -2:3 And hereby we do know that we know him, if we keep his -commandments. - -2:4 He that saith, I know him, and keepeth not his commandments, is a -liar, and the truth is not in him. - -2:5 But whoso keepeth his word, in him verily is the love of God -perfected: hereby know we that we are in him. - -2:6 He that saith he abideth in him ought himself also so to walk, -even as he walked. - -2:7 Brethren, I write no new commandment unto you, but an old -commandment which ye had from the beginning. The old commandment is -the word which ye have heard from the beginning. - -2:8 Again, a new commandment I write unto you, which thing is true in -him and in you: because the darkness is past, and the true light now -shineth. - -2:9 He that saith he is in the light, and hateth his brother, is in -darkness even until now. - -2:10 He that loveth his brother abideth in the light, and there is -none occasion of stumbling in him. - -2:11 But he that hateth his brother is in darkness, and walketh in -darkness, and knoweth not whither he goeth, because that darkness hath -blinded his eyes. - -2:12 I write unto you, little children, because your sins are forgiven -you for his name's sake. - -2:13 I write unto you, fathers, because ye have known him that is from -the beginning. I write unto you, young men, because ye have overcome -the wicked one. I write unto you, little children, because ye have -known the Father. - -2:14 I have written unto you, fathers, because ye have known him that -is from the beginning. I have written unto you, young men, because ye -are strong, and the word of God abideth in you, and ye have overcome -the wicked one. - -2:15 Love not the world, neither the things that are in the world. If -any man love the world, the love of the Father is not in him. - -2:16 For all that is in the world, the lust of the flesh, and the lust -of the eyes, and the pride of life, is not of the Father, but is of -the world. - -2:17 And the world passeth away, and the lust thereof: but he that -doeth the will of God abideth for ever. - -2:18 Little children, it is the last time: and as ye have heard that -antichrist shall come, even now are there many antichrists; whereby we -know that it is the last time. - -2:19 They went out from us, but they were not of us; for if they had -been of us, they would no doubt have continued with us: but they went -out, that they might be made manifest that they were not all of us. - -2:20 But ye have an unction from the Holy One, and ye know all things. - -2:21 I have not written unto you because ye know not the truth, but -because ye know it, and that no lie is of the truth. - -2:22 Who is a liar but he that denieth that Jesus is the Christ? He is -antichrist, that denieth the Father and the Son. - -2:23 Whosoever denieth the Son, the same hath not the Father: he that -acknowledgeth the Son hath the Father also. - -2:24 Let that therefore abide in you, which ye have heard from the -beginning. If that which ye have heard from the beginning shall remain -in you, ye also shall continue in the Son, and in the Father. - -2:25 And this is the promise that he hath promised us, even eternal -life. - -2:26 These things have I written unto you concerning them that seduce -you. - -2:27 But the anointing which ye have received of him abideth in you, -and ye need not that any man teach you: but as the same anointing -teacheth you of all things, and is truth, and is no lie, and even as -it hath taught you, ye shall abide in him. - -2:28 And now, little children, abide in him; that, when he shall -appear, we may have confidence, and not be ashamed before him at his -coming. - -2:29 If ye know that he is righteous, ye know that every one that -doeth righteousness is born of him. - -3:1 Behold, what manner of love the Father hath bestowed upon us, that -we should be called the sons of God: therefore the world knoweth us -not, because it knew him not. - -3:2 Beloved, now are we the sons of God, and it doth not yet appear -what we shall be: but we know that, when he shall appear, we shall be -like him; for we shall see him as he is. - -3:3 And every man that hath this hope in him purifieth himself, even -as he is pure. - -3:4 Whosoever committeth sin transgresseth also the law: for sin is -the transgression of the law. - -3:5 And ye know that he was manifested to take away our sins; and in -him is no sin. - -3:6 Whosoever abideth in him sinneth not: whosoever sinneth hath not -seen him, neither known him. - -3:7 Little children, let no man deceive you: he that doeth -righteousness is righteous, even as he is righteous. - -3:8 He that committeth sin is of the devil; for the devil sinneth from -the beginning. For this purpose the Son of God was manifested, that he -might destroy the works of the devil. - -3:9 Whosoever is born of God doth not commit sin; for his seed -remaineth in him: and he cannot sin, because he is born of God. - -3:10 In this the children of God are manifest, and the children of the -devil: whosoever doeth not righteousness is not of God, neither he -that loveth not his brother. - -3:11 For this is the message that ye heard from the beginning, that we -should love one another. - -3:12 Not as Cain, who was of that wicked one, and slew his brother. -And wherefore slew he him? Because his own works were evil, and his -brother's righteous. - -3:13 Marvel not, my brethren, if the world hate you. - -3:14 We know that we have passed from death unto life, because we love -the brethren. He that loveth not his brother abideth in death. - -3:15 Whosoever hateth his brother is a murderer: and ye know that no -murderer hath eternal life abiding in him. - -3:16 Hereby perceive we the love of God, because he laid down his life -for us: and we ought to lay down our lives for the brethren. - -3:17 But whoso hath this world's good, and seeth his brother have -need, and shutteth up his bowels of compassion from him, how dwelleth -the love of God in him? 3:18 My little children, let us not love in -word, neither in tongue; but in deed and in truth. - -3:19 And hereby we know that we are of the truth, and shall assure our -hearts before him. - -3:20 For if our heart condemn us, God is greater than our heart, and -knoweth all things. - -3:21 Beloved, if our heart condemn us not, then have we confidence -toward God. - -3:22 And whatsoever we ask, we receive of him, because we keep his -commandments, and do those things that are pleasing in his sight. - -3:23 And this is his commandment, That we should believe on the name -of his Son Jesus Christ, and love one another, as he gave us -commandment. - -3:24 And he that keepeth his commandments dwelleth in him, and he in -him. - -And hereby we know that he abideth in us, by the Spirit which he hath -given us. - -4:1 Beloved, believe not every spirit, but try the spirits whether -they are of God: because many false prophets are gone out into the -world. - -4:2 Hereby know ye the Spirit of God: Every spirit that confesseth -that Jesus Christ is come in the flesh is of God: 4:3 And every spirit -that confesseth not that Jesus Christ is come in the flesh is not of -God: and this is that spirit of antichrist, whereof ye have heard that -it should come; and even now already is it in the world. - -4:4 Ye are of God, little children, and have overcome them: because -greater is he that is in you, than he that is in the world. - -4:5 They are of the world: therefore speak they of the world, and the -world heareth them. - -4:6 We are of God: he that knoweth God heareth us; he that is not of -God heareth not us. Hereby know we the spirit of truth, and the spirit -of error. - -4:7 Beloved, let us love one another: for love is of God; and every -one that loveth is born of God, and knoweth God. - -4:8 He that loveth not knoweth not God; for God is love. - -4:9 In this was manifested the love of God toward us, because that God -sent his only begotten Son into the world, that we might live through -him. - -4:10 Herein is love, not that we loved God, but that he loved us, and -sent his Son to be the propitiation for our sins. - -4:11 Beloved, if God so loved us, we ought also to love one another. - -4:12 No man hath seen God at any time. If we love one another, God -dwelleth in us, and his love is perfected in us. - -4:13 Hereby know we that we dwell in him, and he in us, because he -hath given us of his Spirit. - -4:14 And we have seen and do testify that the Father sent the Son to -be the Saviour of the world. - -4:15 Whosoever shall confess that Jesus is the Son of God, God -dwelleth in him, and he in God. - -4:16 And we have known and believed the love that God hath to us. God -is love; and he that dwelleth in love dwelleth in God, and God in him. - -4:17 Herein is our love made perfect, that we may have boldness in the -day of judgment: because as he is, so are we in this world. - -4:18 There is no fear in love; but perfect love casteth out fear: -because fear hath torment. He that feareth is not made perfect in -love. - -4:19 We love him, because he first loved us. - -4:20 If a man say, I love God, and hateth his brother, he is a liar: -for he that loveth not his brother whom he hath seen, how can he love -God whom he hath not seen? 4:21 And this commandment have we from -him, That he who loveth God love his brother also. - -5:1 Whosoever believeth that Jesus is the Christ is born of God: and -every one that loveth him that begat loveth him also that is begotten -of him. - -5:2 By this we know that we love the children of God, when we love -God, and keep his commandments. - -5:3 For this is the love of God, that we keep his commandments: and -his commandments are not grievous. - -5:4 For whatsoever is born of God overcometh the world: and this is -the victory that overcometh the world, even our faith. - -5:5 Who is he that overcometh the world, but he that believeth that -Jesus is the Son of God? 5:6 This is he that came by water and blood, -even Jesus Christ; not by water only, but by water and blood. And it -is the Spirit that beareth witness, because the Spirit is truth. - -5:7 For there are three that bear record in heaven, the Father, the -Word, and the Holy Ghost: and these three are one. - -5:8 And there are three that bear witness in earth, the Spirit, and -the water, and the blood: and these three agree in one. - -5:9 If we receive the witness of men, the witness of God is greater: -for this is the witness of God which he hath testified of his Son. - -5:10 He that believeth on the Son of God hath the witness in himself: -he that believeth not God hath made him a liar; because he believeth -not the record that God gave of his Son. - -5:11 And this is the record, that God hath given to us eternal life, -and this life is in his Son. - -5:12 He that hath the Son hath life; and he that hath not the Son of -God hath not life. - -5:13 These things have I written unto you that believe on the name of -the Son of God; that ye may know that ye have eternal life, and that -ye may believe on the name of the Son of God. - -5:14 And this is the confidence that we have in him, that, if we ask -any thing according to his will, he heareth us: 5:15 And if we know -that he hear us, whatsoever we ask, we know that we have the petitions -that we desired of him. - -5:16 If any man see his brother sin a sin which is not unto death, he -shall ask, and he shall give him life for them that sin not unto -death. There is a sin unto death: I do not say that he shall pray for -it. - -5:17 All unrighteousness is sin: and there is a sin not unto death. - -5:18 We know that whosoever is born of God sinneth not; but he that is -begotten of God keepeth himself, and that wicked one toucheth him not. - -5:19 And we know that we are of God, and the whole world lieth in -wickedness. - -5:20 And we know that the Son of God is come, and hath given us an -understanding, that we may know him that is true, and we are in him -that is true, even in his Son Jesus Christ. This is the true God, and -eternal life. - -5:21 Little children, keep yourselves from idols. Amen. - - - - -The Second Epistle General of John - - -1:1 The elder unto the elect lady and her children, whom I love in -the truth; and not I only, but also all they that have known the -truth; 1:2 For the truth's sake, which dwelleth in us, and shall be -with us for ever. - -1:3 Grace be with you, mercy, and peace, from God the Father, and from -the Lord Jesus Christ, the Son of the Father, in truth and love. - -1:4 I rejoiced greatly that I found of thy children walking in truth, -as we have received a commandment from the Father. - -1:5 And now I beseech thee, lady, not as though I wrote a new -commandment unto thee, but that which we had from the beginning, that -we love one another. - -1:6 And this is love, that we walk after his commandments. This is the -commandment, That, as ye have heard from the beginning, ye should walk -in it. - -1:7 For many deceivers are entered into the world, who confess not -that Jesus Christ is come in the flesh. This is a deceiver and an -antichrist. - -1:8 Look to yourselves, that we lose not those things which we have -wrought, but that we receive a full reward. - -1:9 Whosoever transgresseth, and abideth not in the doctrine of -Christ, hath not God. He that abideth in the doctrine of Christ, he -hath both the Father and the Son. - -1:10 If there come any unto you, and bring not this doctrine, receive -him not into your house, neither bid him God speed: 1:11 For he that -biddeth him God speed is partaker of his evil deeds. - -1:12 Having many things to write unto you, I would not write with -paper and ink: but I trust to come unto you, and speak face to face, -that our joy may be full. - -1:13 The children of thy elect sister greet thee. Amen. - - - - -The Third Epistle General of John - - -1:1 The elder unto the wellbeloved Gaius, whom I love in the truth. - -1:2 Beloved, I wish above all things that thou mayest prosper and be -in health, even as thy soul prospereth. - -1:3 For I rejoiced greatly, when the brethren came and testified of -the truth that is in thee, even as thou walkest in the truth. - -1:4 I have no greater joy than to hear that my children walk in truth. - -1:5 Beloved, thou doest faithfully whatsoever thou doest to the -brethren, and to strangers; 1:6 Which have borne witness of thy -charity before the church: whom if thou bring forward on their journey -after a godly sort, thou shalt do well: 1:7 Because that for his -name's sake they went forth, taking nothing of the Gentiles. - -1:8 We therefore ought to receive such, that we might be fellowhelpers -to the truth. - -1:9 I wrote unto the church: but Diotrephes, who loveth to have the -preeminence among them, receiveth us not. - -1:10 Wherefore, if I come, I will remember his deeds which he doeth, -prating against us with malicious words: and not content therewith, -neither doth he himself receive the brethren, and forbiddeth them that -would, and casteth them out of the church. - -1:11 Beloved, follow not that which is evil, but that which is good. -He that doeth good is of God: but he that doeth evil hath not seen -God. - -1:12 Demetrius hath good report of all men, and of the truth itself: -yea, and we also bear record; and ye know that our record is true. - -1:13 I had many things to write, but I will not with ink and pen write -unto thee: 1:14 But I trust I shall shortly see thee, and we shall -speak face to face. Peace be to thee. Our friends salute thee. Greet -the friends by name. - - - - -The General Epistle of Jude - - -1:1 Jude, the servant of Jesus Christ, and brother of James, to them -that are sanctified by God the Father, and preserved in Jesus Christ, -and called: 1:2 Mercy unto you, and peace, and love, be multiplied. - -1:3 Beloved, when I gave all diligence to write unto you of the common -salvation, it was needful for me to write unto you, and exhort you -that ye should earnestly contend for the faith which was once -delivered unto the saints. - -1:4 For there are certain men crept in unawares, who were before of -old ordained to this condemnation, ungodly men, turning the grace of -our God into lasciviousness, and denying the only Lord God, and our -Lord Jesus Christ. - -1:5 I will therefore put you in remembrance, though ye once knew this, -how that the Lord, having saved the people out of the land of Egypt, -afterward destroyed them that believed not. - -1:6 And the angels which kept not their first estate, but left their -own habitation, he hath reserved in everlasting chains under darkness -unto the judgment of the great day. - -1:7 Even as Sodom and Gomorrha, and the cities about them in like -manner, giving themselves over to fornication, and going after strange -flesh, are set forth for an example, suffering the vengeance of -eternal fire. - -1:8 Likewise also these filthy dreamers defile the flesh, despise -dominion, and speak evil of dignities. - -1:9 Yet Michael the archangel, when contending with the devil he -disputed about the body of Moses, durst not bring against him a -railing accusation, but said, The Lord rebuke thee. - -1:10 But these speak evil of those things which they know not: but -what they know naturally, as brute beasts, in those things they -corrupt themselves. - -1:11 Woe unto them! for they have gone in the way of Cain, and ran -greedily after the error of Balaam for reward, and perished in the -gainsaying of Core. - -1:12 These are spots in your feasts of charity, when they feast with -you, feeding themselves without fear: clouds they are without water, -carried about of winds; trees whose fruit withereth, without fruit, -twice dead, plucked up by the roots; 1:13 Raging waves of the sea, -foaming out their own shame; wandering stars, to whom is reserved the -blackness of darkness for ever. - -1:14 And Enoch also, the seventh from Adam, prophesied of these, -saying, Behold, the Lord cometh with ten thousands of his saints, 1:15 -To execute judgment upon all, and to convince all that are ungodly -among them of all their ungodly deeds which they have ungodly -committed, and of all their hard speeches which ungodly sinners have -spoken against him. - -1:16 These are murmurers, complainers, walking after their own lusts; -and their mouth speaketh great swelling words, having men's persons in -admiration because of advantage. - -1:17 But, beloved, remember ye the words which were spoken before of -the apostles of our Lord Jesus Christ; 1:18 How that they told you -there should be mockers in the last time, who should walk after their -own ungodly lusts. - -1:19 These be they who separate themselves, sensual, having not the -Spirit. - -1:20 But ye, beloved, building up yourselves on your most holy faith, -praying in the Holy Ghost, 1:21 Keep yourselves in the love of God, -looking for the mercy of our Lord Jesus Christ unto eternal life. - -1:22 And of some have compassion, making a difference: 1:23 And others -save with fear, pulling them out of the fire; hating even the garment -spotted by the flesh. - -1:24 Now unto him that is able to keep you from falling, and to -present you faultless before the presence of his glory with exceeding -joy, 1:25 To the only wise God our Saviour, be glory and majesty, -dominion and power, both now and ever. Amen. - - - - -The Revelation of Saint John the Devine - - -1:1 The Revelation of Jesus Christ, which God gave unto him, to shew -unto his servants things which must shortly come to pass; and he sent -and signified it by his angel unto his servant John: 1:2 Who bare -record of the word of God, and of the testimony of Jesus Christ, and -of all things that he saw. - -1:3 Blessed is he that readeth, and they that hear the words of this -prophecy, and keep those things which are written therein: for the -time is at hand. - -1:4 John to the seven churches which are in Asia: Grace be unto you, -and peace, from him which is, and which was, and which is to come; and -from the seven Spirits which are before his throne; 1:5 And from Jesus -Christ, who is the faithful witness, and the first begotten of the -dead, and the prince of the kings of the earth. Unto him that loved -us, and washed us from our sins in his own blood, 1:6 And hath made us -kings and priests unto God and his Father; to him be glory and -dominion for ever and ever. Amen. - -1:7 Behold, he cometh with clouds; and every eye shall see him, and -they also which pierced him: and all kindreds of the earth shall wail -because of him. Even so, Amen. - -1:8 I am Alpha and Omega, the beginning and the ending, saith the -Lord, which is, and which was, and which is to come, the Almighty. - -1:9 I John, who also am your brother, and companion in tribulation, -and in the kingdom and patience of Jesus Christ, was in the isle that -is called Patmos, for the word of God, and for the testimony of Jesus -Christ. - -1:10 I was in the Spirit on the Lord's day, and heard behind me a -great voice, as of a trumpet, 1:11 Saying, I am Alpha and Omega, the -first and the last: and, What thou seest, write in a book, and send it -unto the seven churches which are in Asia; unto Ephesus, and unto -Smyrna, and unto Pergamos, and unto Thyatira, and unto Sardis, and -unto Philadelphia, and unto Laodicea. - -1:12 And I turned to see the voice that spake with me. And being -turned, I saw seven golden candlesticks; 1:13 And in the midst of the -seven candlesticks one like unto the Son of man, clothed with a -garment down to the foot, and girt about the paps with a golden -girdle. - -1:14 His head and his hairs were white like wool, as white as snow; -and his eyes were as a flame of fire; 1:15 And his feet like unto fine -brass, as if they burned in a furnace; and his voice as the sound of -many waters. - -1:16 And he had in his right hand seven stars: and out of his mouth -went a sharp twoedged sword: and his countenance was as the sun -shineth in his strength. - -1:17 And when I saw him, I fell at his feet as dead. And he laid his -right hand upon me, saying unto me, Fear not; I am the first and the -last: 1:18 I am he that liveth, and was dead; and, behold, I am alive -for evermore, Amen; and have the keys of hell and of death. - -1:19 Write the things which thou hast seen, and the things which are, -and the things which shall be hereafter; 1:20 The mystery of the seven -stars which thou sawest in my right hand, and the seven golden -candlesticks. The seven stars are the angels of the seven churches: -and the seven candlesticks which thou sawest are the seven churches. - -2:1 Unto the angel of the church of Ephesus write; These things saith -he that holdeth the seven stars in his right hand, who walketh in the -midst of the seven golden candlesticks; 2:2 I know thy works, and thy -labour, and thy patience, and how thou canst not bear them which are -evil: and thou hast tried them which say they are apostles, and are -not, and hast found them liars: 2:3 And hast borne, and hast patience, -and for my name's sake hast laboured, and hast not fainted. - -2:4 Nevertheless I have somewhat against thee, because thou hast left -thy first love. - -2:5 Remember therefore from whence thou art fallen, and repent, and do -the first works; or else I will come unto thee quickly, and will -remove thy candlestick out of his place, except thou repent. - -2:6 But this thou hast, that thou hatest the deeds of the -Nicolaitanes, which I also hate. - -2:7 He that hath an ear, let him hear what the Spirit saith unto the -churches; To him that overcometh will I give to eat of the tree of -life, which is in the midst of the paradise of God. - -2:8 And unto the angel of the church in Smyrna write; These things -saith the first and the last, which was dead, and is alive; 2:9 I know -thy works, and tribulation, and poverty, (but thou art rich) and I -know the blasphemy of them which say they are Jews, and are not, but -are the synagogue of Satan. - -2:10 Fear none of those things which thou shalt suffer: behold, the -devil shall cast some of you into prison, that ye may be tried; and ye -shall have tribulation ten days: be thou faithful unto death, and I -will give thee a crown of life. - -2:11 He that hath an ear, let him hear what the Spirit saith unto the -churches; He that overcometh shall not be hurt of the second death. - -2:12 And to the angel of the church in Pergamos write; These things -saith he which hath the sharp sword with two edges; 2:13 I know thy -works, and where thou dwellest, even where Satan's seat is: and thou -holdest fast my name, and hast not denied my faith, even in those days -wherein Antipas was my faithful martyr, who was slain among you, where -Satan dwelleth. - -2:14 But I have a few things against thee, because thou hast there -them that hold the doctrine of Balaam, who taught Balac to cast a -stumblingblock before the children of Israel, to eat things sacrificed -unto idols, and to commit fornication. - -2:15 So hast thou also them that hold the doctrine of the -Nicolaitanes, which thing I hate. - -2:16 Repent; or else I will come unto thee quickly, and will fight -against them with the sword of my mouth. - -2:17 He that hath an ear, let him hear what the Spirit saith unto the -churches; To him that overcometh will I give to eat of the hidden -manna, and will give him a white stone, and in the stone a new name -written, which no man knoweth saving he that receiveth it. - -2:18 And unto the angel of the church in Thyatira write; These things -saith the Son of God, who hath his eyes like unto a flame of fire, and -his feet are like fine brass; 2:19 I know thy works, and charity, and -service, and faith, and thy patience, and thy works; and the last to -be more than the first. - -2:20 Notwithstanding I have a few things against thee, because thou -sufferest that woman Jezebel, which calleth herself a prophetess, to -teach and to seduce my servants to commit fornication, and to eat -things sacrificed unto idols. - -2:21 And I gave her space to repent of her fornication; and she -repented not. - -2:22 Behold, I will cast her into a bed, and them that commit adultery -with her into great tribulation, except they repent of their deeds. - -2:23 And I will kill her children with death; and all the churches -shall know that I am he which searcheth the reins and hearts: and I -will give unto every one of you according to your works. - -2:24 But unto you I say, and unto the rest in Thyatira, as many as -have not this doctrine, and which have not known the depths of Satan, -as they speak; I will put upon you none other burden. - -2:25 But that which ye have already hold fast till I come. - -2:26 And he that overcometh, and keepeth my works unto the end, to him -will I give power over the nations: 2:27 And he shall rule them with a -rod of iron; as the vessels of a potter shall they be broken to -shivers: even as I received of my Father. - -2:28 And I will give him the morning star. - -2:29 He that hath an ear, let him hear what the Spirit saith unto the -churches. - -3:1 And unto the angel of the church in Sardis write; These things -saith he that hath the seven Spirits of God, and the seven stars; I -know thy works, that thou hast a name that thou livest, and art dead. - -3:2 Be watchful, and strengthen the things which remain, that are -ready to die: for I have not found thy works perfect before God. - -3:3 Remember therefore how thou hast received and heard, and hold -fast, and repent. If therefore thou shalt not watch, I will come on -thee as a thief, and thou shalt not know what hour I will come upon -thee. - -3:4 Thou hast a few names even in Sardis which have not defiled their -garments; and they shall walk with me in white: for they are worthy. - -3:5 He that overcometh, the same shall be clothed in white raiment; -and I will not blot out his name out of the book of life, but I will -confess his name before my Father, and before his angels. - -3:6 He that hath an ear, let him hear what the Spirit saith unto the -churches. - -3:7 And to the angel of the church in Philadelphia write; These things -saith he that is holy, he that is true, he that hath the key of David, -he that openeth, and no man shutteth; and shutteth, and no man -openeth; 3:8 I know thy works: behold, I have set before thee an open -door, and no man can shut it: for thou hast a little strength, and -hast kept my word, and hast not denied my name. - -3:9 Behold, I will make them of the synagogue of Satan, which say they -are Jews, and are not, but do lie; behold, I will make them to come -and worship before thy feet, and to know that I have loved thee. - -3:10 Because thou hast kept the word of my patience, I also will keep -thee from the hour of temptation, which shall come upon all the world, -to try them that dwell upon the earth. - -3:11 Behold, I come quickly: hold that fast which thou hast, that no -man take thy crown. - -3:12 Him that overcometh will I make a pillar in the temple of my God, -and he shall go no more out: and I will write upon him the name of my -God, and the name of the city of my God, which is new Jerusalem, which -cometh down out of heaven from my God: and I will write upon him my -new name. - -3:13 He that hath an ear, let him hear what the Spirit saith unto the -churches. - -3:14 And unto the angel of the church of the Laodiceans write; These -things saith the Amen, the faithful and true witness, the beginning of -the creation of God; 3:15 I know thy works, that thou art neither cold -nor hot: I would thou wert cold or hot. - -3:16 So then because thou art lukewarm, and neither cold nor hot, I -will spue thee out of my mouth. - -3:17 Because thou sayest, I am rich, and increased with goods, and -have need of nothing; and knowest not that thou art wretched, and -miserable, and poor, and blind, and naked: 3:18 I counsel thee to buy -of me gold tried in the fire, that thou mayest be rich; and white -raiment, that thou mayest be clothed, and that the shame of thy -nakedness do not appear; and anoint thine eyes with eyesalve, that -thou mayest see. - -3:19 As many as I love, I rebuke and chasten: be zealous therefore, -and repent. - -3:20 Behold, I stand at the door, and knock: if any man hear my voice, -and open the door, I will come in to him, and will sup with him, and -he with me. - -3:21 To him that overcometh will I grant to sit with me in my throne, -even as I also overcame, and am set down with my Father in his throne. - -3:22 He that hath an ear, let him hear what the Spirit saith unto the -churches. - -4:1 After this I looked, and, behold, a door was opened in heaven: and -the first voice which I heard was as it were of a trumpet talking with -me; which said, Come up hither, and I will shew thee things which must -be hereafter. - -4:2 And immediately I was in the spirit: and, behold, a throne was set -in heaven, and one sat on the throne. - -4:3 And he that sat was to look upon like a jasper and a sardine -stone: and there was a rainbow round about the throne, in sight like -unto an emerald. - -4:4 And round about the throne were four and twenty seats: and upon -the seats I saw four and twenty elders sitting, clothed in white -raiment; and they had on their heads crowns of gold. - -4:5 And out of the throne proceeded lightnings and thunderings and -voices: and there were seven lamps of fire burning before the throne, -which are the seven Spirits of God. - -4:6 And before the throne there was a sea of glass like unto crystal: -and in the midst of the throne, and round about the throne, were four -beasts full of eyes before and behind. - -4:7 And the first beast was like a lion, and the second beast like a -calf, and the third beast had a face as a man, and the fourth beast -was like a flying eagle. - -4:8 And the four beasts had each of them six wings about him; and they -were full of eyes within: and they rest not day and night, saying, -Holy, holy, holy, LORD God Almighty, which was, and is, and is to -come. - -4:9 And when those beasts give glory and honour and thanks to him that -sat on the throne, who liveth for ever and ever, 4:10 The four and -twenty elders fall down before him that sat on the throne, and worship -him that liveth for ever and ever, and cast their crowns before the -throne, saying, 4:11 Thou art worthy, O Lord, to receive glory and -honour and power: for thou hast created all things, and for thy -pleasure they are and were created. - -5:1 And I saw in the right hand of him that sat on the throne a book -written within and on the backside, sealed with seven seals. - -5:2 And I saw a strong angel proclaiming with a loud voice, Who is -worthy to open the book, and to loose the seals thereof? 5:3 And no -man in heaven, nor in earth, neither under the earth, was able to open -the book, neither to look thereon. - -5:4 And I wept much, because no man was found worthy to open and to -read the book, neither to look thereon. - -5:5 And one of the elders saith unto me, Weep not: behold, the Lion of -the tribe of Juda, the Root of David, hath prevailed to open the book, -and to loose the seven seals thereof. - -5:6 And I beheld, and, lo, in the midst of the throne and of the four -beasts, and in the midst of the elders, stood a Lamb as it had been -slain, having seven horns and seven eyes, which are the seven Spirits -of God sent forth into all the earth. - -5:7 And he came and took the book out of the right hand of him that -sat upon the throne. - -5:8 And when he had taken the book, the four beasts and four and -twenty elders fell down before the Lamb, having every one of them -harps, and golden vials full of odours, which are the prayers of -saints. - -5:9 And they sung a new song, saying, Thou art worthy to take the -book, and to open the seals thereof: for thou wast slain, and hast -redeemed us to God by thy blood out of every kindred, and tongue, and -people, and nation; 5:10 And hast made us unto our God kings and -priests: and we shall reign on the earth. - -5:11 And I beheld, and I heard the voice of many angels round about -the throne and the beasts and the elders: and the number of them was -ten thousand times ten thousand, and thousands of thousands; 5:12 -Saying with a loud voice, Worthy is the Lamb that was slain to receive -power, and riches, and wisdom, and strength, and honour, and glory, -and blessing. - -5:13 And every creature which is in heaven, and on the earth, and -under the earth, and such as are in the sea, and all that are in them, -heard I saying, Blessing, and honour, and glory, and power, be unto -him that sitteth upon the throne, and unto the Lamb for ever and ever. - -5:14 And the four beasts said, Amen. And the four and twenty elders -fell down and worshipped him that liveth for ever and ever. - -6:1 And I saw when the Lamb opened one of the seals, and I heard, as -it were the noise of thunder, one of the four beasts saying, Come and -see. - -6:2 And I saw, and behold a white horse: and he that sat on him had a -bow; and a crown was given unto him: and he went forth conquering, and -to conquer. - -6:3 And when he had opened the second seal, I heard the second beast -say, Come and see. - -6:4 And there went out another horse that was red: and power was given -to him that sat thereon to take peace from the earth, and that they -should kill one another: and there was given unto him a great sword. - -6:5 And when he had opened the third seal, I heard the third beast -say, Come and see. And I beheld, and lo a black horse; and he that sat -on him had a pair of balances in his hand. - -6:6 And I heard a voice in the midst of the four beasts say, A measure -of wheat for a penny, and three measures of barley for a penny; and -see thou hurt not the oil and the wine. - -6:7 And when he had opened the fourth seal, I heard the voice of the -fourth beast say, Come and see. - -6:8 And I looked, and behold a pale horse: and his name that sat on -him was Death, and Hell followed with him. And power was given unto -them over the fourth part of the earth, to kill with sword, and with -hunger, and with death, and with the beasts of the earth. - -6:9 And when he had opened the fifth seal, I saw under the altar the -souls of them that were slain for the word of God, and for the -testimony which they held: 6:10 And they cried with a loud voice, -saying, How long, O Lord, holy and true, dost thou not judge and -avenge our blood on them that dwell on the earth? 6:11 And white -robes were given unto every one of them; and it was said unto them, -that they should rest yet for a little season, until their -fellowservants also and their brethren, that should be killed as they -were, should be fulfilled. - -6:12 And I beheld when he had opened the sixth seal, and, lo, there -was a great earthquake; and the sun became black as sackcloth of hair, -and the moon became as blood; 6:13 And the stars of heaven fell unto -the earth, even as a fig tree casteth her untimely figs, when she is -shaken of a mighty wind. - -6:14 And the heaven departed as a scroll when it is rolled together; -and every mountain and island were moved out of their places. - -6:15 And the kings of the earth, and the great men, and the rich men, -and the chief captains, and the mighty men, and every bondman, and -every free man, hid themselves in the dens and in the rocks of the -mountains; 6:16 And said to the mountains and rocks, Fall on us, and -hide us from the face of him that sitteth on the throne, and from the -wrath of the Lamb: 6:17 For the great day of his wrath is come; and -who shall be able to stand? 7:1 And after these things I saw four -angels standing on the four corners of the earth, holding the four -winds of the earth, that the wind should not blow on the earth, nor on -the sea, nor on any tree. - -7:2 And I saw another angel ascending from the east, having the seal -of the living God: and he cried with a loud voice to the four angels, -to whom it was given to hurt the earth and the sea, 7:3 Saying, Hurt -not the earth, neither the sea, nor the trees, till we have sealed the -servants of our God in their foreheads. - -7:4 And I heard the number of them which were sealed: and there were -sealed an hundred and forty and four thousand of all the tribes of the -children of Israel. - -7:5 Of the tribe of Juda were sealed twelve thousand. Of the tribe of -Reuben were sealed twelve thousand. Of the tribe of Gad were sealed -twelve thousand. - -7:6 Of the tribe of Aser were sealed twelve thousand. Of the tribe of -Nephthalim were sealed twelve thousand. Of the tribe of Manasses were -sealed twelve thousand. - -7:7 Of the tribe of Simeon were sealed twelve thousand. Of the tribe -of Levi were sealed twelve thousand. Of the tribe of Issachar were -sealed twelve thousand. - -7:8 Of the tribe of Zabulon were sealed twelve thousand. Of the tribe -of Joseph were sealed twelve thousand. Of the tribe of Benjamin were -sealed twelve thousand. - -7:9 After this I beheld, and, lo, a great multitude, which no man -could number, of all nations, and kindreds, and people, and tongues, -stood before the throne, and before the Lamb, clothed with white -robes, and palms in their hands; 7:10 And cried with a loud voice, -saying, Salvation to our God which sitteth upon the throne, and unto -the Lamb. - -7:11 And all the angels stood round about the throne, and about the -elders and the four beasts, and fell before the throne on their faces, -and worshipped God, 7:12 Saying, Amen: Blessing, and glory, and -wisdom, and thanksgiving, and honour, and power, and might, be unto -our God for ever and ever. Amen. - -7:13 And one of the elders answered, saying unto me, What are these -which are arrayed in white robes? and whence came they? 7:14 And I -said unto him, Sir, thou knowest. And he said to me, These are they -which came out of great tribulation, and have washed their robes, and -made them white in the blood of the Lamb. - -7:15 Therefore are they before the throne of God, and serve him day -and night in his temple: and he that sitteth on the throne shall dwell -among them. - -7:16 They shall hunger no more, neither thirst any more; neither shall -the sun light on them, nor any heat. - -7:17 For the Lamb which is in the midst of the throne shall feed them, -and shall lead them unto living fountains of waters: and God shall -wipe away all tears from their eyes. - -8:1 And when he had opened the seventh seal, there was silence in -heaven about the space of half an hour. - -8:2 And I saw the seven angels which stood before God; and to them -were given seven trumpets. - -8:3 And another angel came and stood at the altar, having a golden -censer; and there was given unto him much incense, that he should -offer it with the prayers of all saints upon the golden altar which -was before the throne. - -8:4 And the smoke of the incense, which came with the prayers of the -saints, ascended up before God out of the angel's hand. - -8:5 And the angel took the censer, and filled it with fire of the -altar, and cast it into the earth: and there were voices, and -thunderings, and lightnings, and an earthquake. - -8:6 And the seven angels which had the seven trumpets prepared -themselves to sound. - -8:7 The first angel sounded, and there followed hail and fire mingled -with blood, and they were cast upon the earth: and the third part of -trees was burnt up, and all green grass was burnt up. - -8:8 And the second angel sounded, and as it were a great mountain -burning with fire was cast into the sea: and the third part of the sea -became blood; 8:9 And the third part of the creatures which were in -the sea, and had life, died; and the third part of the ships were -destroyed. - -8:10 And the third angel sounded, and there fell a great star from -heaven, burning as it were a lamp, and it fell upon the third part of -the rivers, and upon the fountains of waters; 8:11 And the name of the -star is called Wormwood: and the third part of the waters became -wormwood; and many men died of the waters, because they were made -bitter. - -8:12 And the fourth angel sounded, and the third part of the sun was -smitten, and the third part of the moon, and the third part of the -stars; so as the third part of them was darkened, and the day shone -not for a third part of it, and the night likewise. - -8:13 And I beheld, and heard an angel flying through the midst of -heaven, saying with a loud voice, Woe, woe, woe, to the inhabiters of -the earth by reason of the other voices of the trumpet of the three -angels, which are yet to sound! 9:1 And the fifth angel sounded, and -I saw a star fall from heaven unto the earth: and to him was given the -key of the bottomless pit. - -9:2 And he opened the bottomless pit; and there arose a smoke out of -the pit, as the smoke of a great furnace; and the sun and the air were -darkened by reason of the smoke of the pit. - -9:3 And there came out of the smoke locusts upon the earth: and unto -them was given power, as the scorpions of the earth have power. - -9:4 And it was commanded them that they should not hurt the grass of -the earth, neither any green thing, neither any tree; but only those -men which have not the seal of God in their foreheads. - -9:5 And to them it was given that they should not kill them, but that -they should be tormented five months: and their torment was as the -torment of a scorpion, when he striketh a man. - -9:6 And in those days shall men seek death, and shall not find it; and -shall desire to die, and death shall flee from them. - -9:7 And the shapes of the locusts were like unto horses prepared unto -battle; and on their heads were as it were crowns like gold, and their -faces were as the faces of men. - -9:8 And they had hair as the hair of women, and their teeth were as -the teeth of lions. - -9:9 And they had breastplates, as it were breastplates of iron; and -the sound of their wings was as the sound of chariots of many horses -running to battle. - -9:10 And they had tails like unto scorpions, and there were stings in -their tails: and their power was to hurt men five months. - -9:11 And they had a king over them, which is the angel of the -bottomless pit, whose name in the Hebrew tongue is Abaddon, but in the -Greek tongue hath his name Apollyon. - -9:12 One woe is past; and, behold, there come two woes more hereafter. - -9:13 And the sixth angel sounded, and I heard a voice from the four -horns of the golden altar which is before God, 9:14 Saying to the -sixth angel which had the trumpet, Loose the four angels which are -bound in the great river Euphrates. - -9:15 And the four angels were loosed, which were prepared for an hour, -and a day, and a month, and a year, for to slay the third part of men. - -9:16 And the number of the army of the horsemen were two hundred -thousand thousand: and I heard the number of them. - -9:17 And thus I saw the horses in the vision, and them that sat on -them, having breastplates of fire, and of jacinth, and brimstone: and -the heads of the horses were as the heads of lions; and out of their -mouths issued fire and smoke and brimstone. - -9:18 By these three was the third part of men killed, by the fire, and -by the smoke, and by the brimstone, which issued out of their mouths. - -9:19 For their power is in their mouth, and in their tails: for their -tails were like unto serpents, and had heads, and with them they do -hurt. - -9:20 And the rest of the men which were not killed by these plagues -yet repented not of the works of their hands, that they should not -worship devils, and idols of gold, and silver, and brass, and stone, -and of wood: which neither can see, nor hear, nor walk: 9:21 Neither -repented they of their murders, nor of their sorceries, nor of their -fornication, nor of their thefts. - -10:1 And I saw another mighty angel come down from heaven, clothed -with a cloud: and a rainbow was upon his head, and his face was as it -were the sun, and his feet as pillars of fire: 10:2 And he had in his -hand a little book open: and he set his right foot upon the sea, and -his left foot on the earth, 10:3 And cried with a loud voice, as when -a lion roareth: and when he had cried, seven thunders uttered their -voices. - -10:4 And when the seven thunders had uttered their voices, I was about -to write: and I heard a voice from heaven saying unto me, Seal up -those things which the seven thunders uttered, and write them not. - -10:5 And the angel which I saw stand upon the sea and upon the earth -lifted up his hand to heaven, 10:6 And sware by him that liveth for -ever and ever, who created heaven, and the things that therein are, -and the earth, and the things that therein are, and the sea, and the -things which are therein, that there should be time no longer: 10:7 -But in the days of the voice of the seventh angel, when he shall begin -to sound, the mystery of God should be finished, as he hath declared -to his servants the prophets. - -10:8 And the voice which I heard from heaven spake unto me again, and -said, Go and take the little book which is open in the hand of the -angel which standeth upon the sea and upon the earth. - -10:9 And I went unto the angel, and said unto him, Give me the little -book. And he said unto me, Take it, and eat it up; and it shall make -thy belly bitter, but it shall be in thy mouth sweet as honey. - -10:10 And I took the little book out of the angel's hand, and ate it -up; and it was in my mouth sweet as honey: and as soon as I had eaten -it, my belly was bitter. - -10:11 And he said unto me, Thou must prophesy again before many -peoples, and nations, and tongues, and kings. - -11:1 And there was given me a reed like unto a rod: and the angel -stood, saying, Rise, and measure the temple of God, and the altar, and -them that worship therein. - -11:2 But the court which is without the temple leave out, and measure -it not; for it is given unto the Gentiles: and the holy city shall -they tread under foot forty and two months. - -11:3 And I will give power unto my two witnesses, and they shall -prophesy a thousand two hundred and threescore days, clothed in -sackcloth. - -11:4 These are the two olive trees, and the two candlesticks standing -before the God of the earth. - -11:5 And if any man will hurt them, fire proceedeth out of their -mouth, and devoureth their enemies: and if any man will hurt them, he -must in this manner be killed. - -11:6 These have power to shut heaven, that it rain not in the days of -their prophecy: and have power over waters to turn them to blood, and -to smite the earth with all plagues, as often as they will. - -11:7 And when they shall have finished their testimony, the beast that -ascendeth out of the bottomless pit shall make war against them, and -shall overcome them, and kill them. - -11:8 And their dead bodies shall lie in the street of the great city, -which spiritually is called Sodom and Egypt, where also our Lord was -crucified. - -11:9 And they of the people and kindreds and tongues and nations shall -see their dead bodies three days and an half, and shall not suffer -their dead bodies to be put in graves. - -11:10 And they that dwell upon the earth shall rejoice over them, and -make merry, and shall send gifts one to another; because these two -prophets tormented them that dwelt on the earth. - -11:11 And after three days and an half the spirit of life from God -entered into them, and they stood upon their feet; and great fear fell -upon them which saw them. - -11:12 And they heard a great voice from heaven saying unto them, Come -up hither. And they ascended up to heaven in a cloud; and their -enemies beheld them. - -11:13 And the same hour was there a great earthquake, and the tenth -part of the city fell, and in the earthquake were slain of men seven -thousand: and the remnant were affrighted, and gave glory to the God -of heaven. - -11:14 The second woe is past; and, behold, the third woe cometh -quickly. - -11:15 And the seventh angel sounded; and there were great voices in -heaven, saying, The kingdoms of this world are become the kingdoms of -our Lord, and of his Christ; and he shall reign for ever and ever. - -11:16 And the four and twenty elders, which sat before God on their -seats, fell upon their faces, and worshipped God, 11:17 Saying, We -give thee thanks, O LORD God Almighty, which art, and wast, and art to -come; because thou hast taken to thee thy great power, and hast -reigned. - -11:18 And the nations were angry, and thy wrath is come, and the time -of the dead, that they should be judged, and that thou shouldest give -reward unto thy servants the prophets, and to the saints, and them -that fear thy name, small and great; and shouldest destroy them which -destroy the earth. - -11:19 And the temple of God was opened in heaven, and there was seen -in his temple the ark of his testament: and there were lightnings, and -voices, and thunderings, and an earthquake, and great hail. - -12:1 And there appeared a great wonder in heaven; a woman clothed with -the sun, and the moon under her feet, and upon her head a crown of -twelve stars: 12:2 And she being with child cried, travailing in -birth, and pained to be delivered. - -12:3 And there appeared another wonder in heaven; and behold a great -red dragon, having seven heads and ten horns, and seven crowns upon -his heads. - -12:4 And his tail drew the third part of the stars of heaven, and did -cast them to the earth: and the dragon stood before the woman which -was ready to be delivered, for to devour her child as soon as it was -born. - -12:5 And she brought forth a man child, who was to rule all nations -with a rod of iron: and her child was caught up unto God, and to his -throne. - -12:6 And the woman fled into the wilderness, where she hath a place -prepared of God, that they should feed her there a thousand two -hundred and threescore days. - -12:7 And there was war in heaven: Michael and his angels fought -against the dragon; and the dragon fought and his angels, 12:8 And -prevailed not; neither was their place found any more in heaven. - -12:9 And the great dragon was cast out, that old serpent, called the -Devil, and Satan, which deceiveth the whole world: he was cast out -into the earth, and his angels were cast out with him. - -12:10 And I heard a loud voice saying in heaven, Now is come -salvation, and strength, and the kingdom of our God, and the power of -his Christ: for the accuser of our brethren is cast down, which -accused them before our God day and night. - -12:11 And they overcame him by the blood of the Lamb, and by the word -of their testimony; and they loved not their lives unto the death. - -12:12 Therefore rejoice, ye heavens, and ye that dwell in them. Woe to -the inhabiters of the earth and of the sea! for the devil is come down -unto you, having great wrath, because he knoweth that he hath but a -short time. - -12:13 And when the dragon saw that he was cast unto the earth, he -persecuted the woman which brought forth the man child. - -12:14 And to the woman were given two wings of a great eagle, that she -might fly into the wilderness, into her place, where she is nourished -for a time, and times, and half a time, from the face of the serpent. - -12:15 And the serpent cast out of his mouth water as a flood after the -woman, that he might cause her to be carried away of the flood. - -12:16 And the earth helped the woman, and the earth opened her mouth, -and swallowed up the flood which the dragon cast out of his mouth. - -12:17 And the dragon was wroth with the woman, and went to make war -with the remnant of her seed, which keep the commandments of God, and -have the testimony of Jesus Christ. - -13:1 And I stood upon the sand of the sea, and saw a beast rise up out -of the sea, having seven heads and ten horns, and upon his horns ten -crowns, and upon his heads the name of blasphemy. - -13:2 And the beast which I saw was like unto a leopard, and his feet -were as the feet of a bear, and his mouth as the mouth of a lion: and -the dragon gave him his power, and his seat, and great authority. - -13:3 And I saw one of his heads as it were wounded to death; and his -deadly wound was healed: and all the world wondered after the beast. - -13:4 And they worshipped the dragon which gave power unto the beast: -and they worshipped the beast, saying, Who is like unto the beast? who -is able to make war with him? 13:5 And there was given unto him a -mouth speaking great things and blasphemies; and power was given unto -him to continue forty and two months. - -13:6 And he opened his mouth in blasphemy against God, to blaspheme -his name, and his tabernacle, and them that dwell in heaven. - -13:7 And it was given unto him to make war with the saints, and to -overcome them: and power was given him over all kindreds, and tongues, -and nations. - -13:8 And all that dwell upon the earth shall worship him, whose names -are not written in the book of life of the Lamb slain from the -foundation of the world. - -13:9 If any man have an ear, let him hear. - -13:10 He that leadeth into captivity shall go into captivity: he that -killeth with the sword must be killed with the sword. Here is the -patience and the faith of the saints. - -13:11 And I beheld another beast coming up out of the earth; and he -had two horns like a lamb, and he spake as a dragon. - -13:12 And he exerciseth all the power of the first beast before him, -and causeth the earth and them which dwell therein to worship the -first beast, whose deadly wound was healed. - -13:13 And he doeth great wonders, so that he maketh fire come down -from heaven on the earth in the sight of men, 13:14 And deceiveth them -that dwell on the earth by the means of those miracles which he had -power to do in the sight of the beast; saying to them that dwell on -the earth, that they should make an image to the beast, which had the -wound by a sword, and did live. - -13:15 And he had power to give life unto the image of the beast, that -the image of the beast should both speak, and cause that as many as -would not worship the image of the beast should be killed. - -13:16 And he causeth all, both small and great, rich and poor, free -and bond, to receive a mark in their right hand, or in their -foreheads: 13:17 And that no man might buy or sell, save he that had -the mark, or the name of the beast, or the number of his name. - -13:18 Here is wisdom. Let him that hath understanding count the number -of the beast: for it is the number of a man; and his number is Six -hundred threescore and six. - -14:1 And I looked, and, lo, a Lamb stood on the mount Sion, and with -him an hundred forty and four thousand, having his Father's name -written in their foreheads. - -14:2 And I heard a voice from heaven, as the voice of many waters, and -as the voice of a great thunder: and I heard the voice of harpers -harping with their harps: 14:3 And they sung as it were a new song -before the throne, and before the four beasts, and the elders: and no -man could learn that song but the hundred and forty and four thousand, -which were redeemed from the earth. - -14:4 These are they which were not defiled with women; for they are -virgins. These are they which follow the Lamb whithersoever he goeth. -These were redeemed from among men, being the firstfruits unto God and -to the Lamb. - -14:5 And in their mouth was found no guile: for they are without fault -before the throne of God. - -14:6 And I saw another angel fly in the midst of heaven, having the -everlasting gospel to preach unto them that dwell on the earth, and to -every nation, and kindred, and tongue, and people, 14:7 Saying with a -loud voice, Fear God, and give glory to him; for the hour of his -judgment is come: and worship him that made heaven, and earth, and the -sea, and the fountains of waters. - -14:8 And there followed another angel, saying, Babylon is fallen, is -fallen, that great city, because she made all nations drink of the -wine of the wrath of her fornication. - -14:9 And the third angel followed them, saying with a loud voice, If -any man worship the beast and his image, and receive his mark in his -forehead, or in his hand, 14:10 The same shall drink of the wine of -the wrath of God, which is poured out without mixture into the cup of -his indignation; and he shall be tormented with fire and brimstone in -the presence of the holy angels, and in the presence of the Lamb: -14:11 And the smoke of their torment ascendeth up for ever and ever: -and they have no rest day nor night, who worship the beast and his -image, and whosoever receiveth the mark of his name. - -14:12 Here is the patience of the saints: here are they that keep the -commandments of God, and the faith of Jesus. - -14:13 And I heard a voice from heaven saying unto me, Write, Blessed -are the dead which die in the Lord from henceforth: Yea, saith the -Spirit, that they may rest from their labours; and their works do -follow them. - -14:14 And I looked, and behold a white cloud, and upon the cloud one -sat like unto the Son of man, having on his head a golden crown, and -in his hand a sharp sickle. - -14:15 And another angel came out of the temple, crying with a loud -voice to him that sat on the cloud, Thrust in thy sickle, and reap: -for the time is come for thee to reap; for the harvest of the earth is -ripe. - -14:16 And he that sat on the cloud thrust in his sickle on the earth; -and the earth was reaped. - -14:17 And another angel came out of the temple which is in heaven, he -also having a sharp sickle. - -14:18 And another angel came out from the altar, which had power over -fire; and cried with a loud cry to him that had the sharp sickle, -saying, Thrust in thy sharp sickle, and gather the clusters of the -vine of the earth; for her grapes are fully ripe. - -14:19 And the angel thrust in his sickle into the earth, and gathered -the vine of the earth, and cast it into the great winepress of the -wrath of God. - -14:20 And the winepress was trodden without the city, and blood came -out of the winepress, even unto the horse bridles, by the space of a -thousand and six hundred furlongs. - -15:1 And I saw another sign in heaven, great and marvellous, seven -angels having the seven last plagues; for in them is filled up the -wrath of God. - -15:2 And I saw as it were a sea of glass mingled with fire: and them -that had gotten the victory over the beast, and over his image, and -over his mark, and over the number of his name, stand on the sea of -glass, having the harps of God. - -15:3 And they sing the song of Moses the servant of God, and the song -of the Lamb, saying, Great and marvellous are thy works, Lord God -Almighty; just and true are thy ways, thou King of saints. - -15:4 Who shall not fear thee, O Lord, and glorify thy name? for thou -only art holy: for all nations shall come and worship before thee; for -thy judgments are made manifest. - -15:5 And after that I looked, and, behold, the temple of the -tabernacle of the testimony in heaven was opened: 15:6 And the seven -angels came out of the temple, having the seven plagues, clothed in -pure and white linen, and having their breasts girded with golden -girdles. - -15:7 And one of the four beasts gave unto the seven angels seven -golden vials full of the wrath of God, who liveth for ever and ever. - -15:8 And the temple was filled with smoke from the glory of God, and -from his power; and no man was able to enter into the temple, till the -seven plagues of the seven angels were fulfilled. - -16:1 And I heard a great voice out of the temple saying to the seven -angels, Go your ways, and pour out the vials of the wrath of God upon -the earth. - -16:2 And the first went, and poured out his vial upon the earth; and -there fell a noisome and grievous sore upon the men which had the mark -of the beast, and upon them which worshipped his image. - -16:3 And the second angel poured out his vial upon the sea; and it -became as the blood of a dead man: and every living soul died in the -sea. - -16:4 And the third angel poured out his vial upon the rivers and -fountains of waters; and they became blood. - -16:5 And I heard the angel of the waters say, Thou art righteous, O -Lord, which art, and wast, and shalt be, because thou hast judged -thus. - -16:6 For they have shed the blood of saints and prophets, and thou -hast given them blood to drink; for they are worthy. - -16:7 And I heard another out of the altar say, Even so, Lord God -Almighty, true and righteous are thy judgments. - -16:8 And the fourth angel poured out his vial upon the sun; and power -was given unto him to scorch men with fire. - -16:9 And men were scorched with great heat, and blasphemed the name of -God, which hath power over these plagues: and they repented not to -give him glory. - -16:10 And the fifth angel poured out his vial upon the seat of the -beast; and his kingdom was full of darkness; and they gnawed their -tongues for pain, 16:11 And blasphemed the God of heaven because of -their pains and their sores, and repented not of their deeds. - -16:12 And the sixth angel poured out his vial upon the great river -Euphrates; and the water thereof was dried up, that the way of the -kings of the east might be prepared. - -16:13 And I saw three unclean spirits like frogs come out of the mouth -of the dragon, and out of the mouth of the beast, and out of the mouth -of the false prophet. - -16:14 For they are the spirits of devils, working miracles, which go -forth unto the kings of the earth and of the whole world, to gather -them to the battle of that great day of God Almighty. - -16:15 Behold, I come as a thief. Blessed is he that watcheth, and -keepeth his garments, lest he walk naked, and they see his shame. - -16:16 And he gathered them together into a place called in the Hebrew -tongue Armageddon. - -16:17 And the seventh angel poured out his vial into the air; and -there came a great voice out of the temple of heaven, from the throne, -saying, It is done. - -16:18 And there were voices, and thunders, and lightnings; and there -was a great earthquake, such as was not since men were upon the earth, -so mighty an earthquake, and so great. - -16:19 And the great city was divided into three parts, and the cities -of the nations fell: and great Babylon came in remembrance before God, -to give unto her the cup of the wine of the fierceness of his wrath. - -16:20 And every island fled away, and the mountains were not found. - -16:21 And there fell upon men a great hail out of heaven, every stone -about the weight of a talent: and men blasphemed God because of the -plague of the hail; for the plague thereof was exceeding great. - -17:1 And there came one of the seven angels which had the seven vials, -and talked with me, saying unto me, Come hither; I will shew unto thee -the judgment of the great whore that sitteth upon many waters: 17:2 -With whom the kings of the earth have committed fornication, and the -inhabitants of the earth have been made drunk with the wine of her -fornication. - -17:3 So he carried me away in the spirit into the wilderness: and I -saw a woman sit upon a scarlet coloured beast, full of names of -blasphemy, having seven heads and ten horns. - -17:4 And the woman was arrayed in purple and scarlet colour, and -decked with gold and precious stones and pearls, having a golden cup -in her hand full of abominations and filthiness of her fornication: -17:5 And upon her forehead was a name written, MYSTERY, BABYLON THE -GREAT, THE MOTHER OF HARLOTS AND ABOMINATIONS OF THE EARTH. - -17:6 And I saw the woman drunken with the blood of the saints, and -with the blood of the martyrs of Jesus: and when I saw her, I wondered -with great admiration. - -17:7 And the angel said unto me, Wherefore didst thou marvel? I will -tell thee the mystery of the woman, and of the beast that carrieth -her, which hath the seven heads and ten horns. - -17:8 The beast that thou sawest was, and is not; and shall ascend out -of the bottomless pit, and go into perdition: and they that dwell on -the earth shall wonder, whose names were not written in the book of -life from the foundation of the world, when they behold the beast that -was, and is not, and yet is. - -17:9 And here is the mind which hath wisdom. The seven heads are seven -mountains, on which the woman sitteth. - -17:10 And there are seven kings: five are fallen, and one is, and the -other is not yet come; and when he cometh, he must continue a short -space. - -17:11 And the beast that was, and is not, even he is the eighth, and -is of the seven, and goeth into perdition. - -17:12 And the ten horns which thou sawest are ten kings, which have -received no kingdom as yet; but receive power as kings one hour with -the beast. - -17:13 These have one mind, and shall give their power and strength -unto the beast. - -17:14 These shall make war with the Lamb, and the Lamb shall overcome -them: for he is Lord of lords, and King of kings: and they that are -with him are called, and chosen, and faithful. - -17:15 And he saith unto me, The waters which thou sawest, where the -whore sitteth, are peoples, and multitudes, and nations, and tongues. - -17:16 And the ten horns which thou sawest upon the beast, these shall -hate the whore, and shall make her desolate and naked, and shall eat -her flesh, and burn her with fire. - -17:17 For God hath put in their hearts to fulfil his will, and to -agree, and give their kingdom unto the beast, until the words of God -shall be fulfilled. - -17:18 And the woman which thou sawest is that great city, which -reigneth over the kings of the earth. - -18:1 And after these things I saw another angel come down from heaven, -having great power; and the earth was lightened with his glory. - -18:2 And he cried mightily with a strong voice, saying, Babylon the -great is fallen, is fallen, and is become the habitation of devils, -and the hold of every foul spirit, and a cage of every unclean and -hateful bird. - -18:3 For all nations have drunk of the wine of the wrath of her -fornication, and the kings of the earth have committed fornication -with her, and the merchants of the earth are waxed rich through the -abundance of her delicacies. - -18:4 And I heard another voice from heaven, saying, Come out of her, -my people, that ye be not partakers of her sins, and that ye receive -not of her plagues. - -18:5 For her sins have reached unto heaven, and God hath remembered -her iniquities. - -18:6 Reward her even as she rewarded you, and double unto her double -according to her works: in the cup which she hath filled fill to her -double. - -18:7 How much she hath glorified herself, and lived deliciously, so -much torment and sorrow give her: for she saith in her heart, I sit a -queen, and am no widow, and shall see no sorrow. - -18:8 Therefore shall her plagues come in one day, death, and mourning, -and famine; and she shall be utterly burned with fire: for strong is -the Lord God who judgeth her. - -18:9 And the kings of the earth, who have committed fornication and -lived deliciously with her, shall bewail her, and lament for her, when -they shall see the smoke of her burning, 18:10 Standing afar off for -the fear of her torment, saying, Alas, alas that great city Babylon, -that mighty city! for in one hour is thy judgment come. - -18:11 And the merchants of the earth shall weep and mourn over her; -for no man buyeth their merchandise any more: 18:12 The merchandise of -gold, and silver, and precious stones, and of pearls, and fine linen, -and purple, and silk, and scarlet, and all thyine wood, and all manner -vessels of ivory, and all manner vessels of most precious wood, and of -brass, and iron, and marble, 18:13 And cinnamon, and odours, and -ointments, and frankincense, and wine, and oil, and fine flour, and -wheat, and beasts, and sheep, and horses, and chariots, and slaves, -and souls of men. - -18:14 And the fruits that thy soul lusted after are departed from -thee, and all things which were dainty and goodly are departed from -thee, and thou shalt find them no more at all. - -18:15 The merchants of these things, which were made rich by her, -shall stand afar off for the fear of her torment, weeping and wailing, -18:16 And saying, Alas, alas that great city, that was clothed in fine -linen, and purple, and scarlet, and decked with gold, and precious -stones, and pearls! 18:17 For in one hour so great riches is come to -nought. And every shipmaster, and all the company in ships, and -sailors, and as many as trade by sea, stood afar off, 18:18 And cried -when they saw the smoke of her burning, saying, What city is like unto -this great city! 18:19 And they cast dust on their heads, and cried, -weeping and wailing, saying, Alas, alas that great city, wherein were -made rich all that had ships in the sea by reason of her costliness! -for in one hour is she made desolate. - -18:20 Rejoice over her, thou heaven, and ye holy apostles and -prophets; for God hath avenged you on her. - -18:21 And a mighty angel took up a stone like a great millstone, and -cast it into the sea, saying, Thus with violence shall that great city -Babylon be thrown down, and shall be found no more at all. - -18:22 And the voice of harpers, and musicians, and of pipers, and -trumpeters, shall be heard no more at all in thee; and no craftsman, -of whatsoever craft he be, shall be found any more in thee; and the -sound of a millstone shall be heard no more at all in thee; 18:23 And -the light of a candle shall shine no more at all in thee; and the -voice of the bridegroom and of the bride shall be heard no more at all -in thee: for thy merchants were the great men of the earth; for by thy -sorceries were all nations deceived. - -18:24 And in her was found the blood of prophets, and of saints, and -of all that were slain upon the earth. - -19:1 And after these things I heard a great voice of much people in -heaven, saying, Alleluia; Salvation, and glory, and honour, and power, -unto the Lord our God: 19:2 For true and righteous are his judgments: -for he hath judged the great whore, which did corrupt the earth with -her fornication, and hath avenged the blood of his servants at her -hand. - -19:3 And again they said, Alleluia And her smoke rose up for ever and -ever. - -19:4 And the four and twenty elders and the four beasts fell down and -worshipped God that sat on the throne, saying, Amen; Alleluia. - -19:5 And a voice came out of the throne, saying, Praise our God, all -ye his servants, and ye that fear him, both small and great. - -19:6 And I heard as it were the voice of a great multitude, and as the -voice of many waters, and as the voice of mighty thunderings, saying, -Alleluia: for the Lord God omnipotent reigneth. - -19:7 Let us be glad and rejoice, and give honour to him: for the -marriage of the Lamb is come, and his wife hath made herself ready. - -19:8 And to her was granted that she should be arrayed in fine linen, -clean and white: for the fine linen is the righteousness of saints. - -19:9 And he saith unto me, Write, Blessed are they which are called -unto the marriage supper of the Lamb. And he saith unto me, These are -the true sayings of God. - -19:10 And I fell at his feet to worship him. And he said unto me, See -thou do it not: I am thy fellowservant, and of thy brethren that have -the testimony of Jesus: worship God: for the testimony of Jesus is the -spirit of prophecy. - -19:11 And I saw heaven opened, and behold a white horse; and he that -sat upon him was called Faithful and True, and in righteousness he -doth judge and make war. - -19:12 His eyes were as a flame of fire, and on his head were many -crowns; and he had a name written, that no man knew, but he himself. - -19:13 And he was clothed with a vesture dipped in blood: and his name -is called The Word of God. - -19:14 And the armies which were in heaven followed him upon white -horses, clothed in fine linen, white and clean. - -19:15 And out of his mouth goeth a sharp sword, that with it he should -smite the nations: and he shall rule them with a rod of iron: and he -treadeth the winepress of the fierceness and wrath of Almighty God. - -19:16 And he hath on his vesture and on his thigh a name written, KING -OF KINGS, AND LORD OF LORDS. - -19:17 And I saw an angel standing in the sun; and he cried with a loud -voice, saying to all the fowls that fly in the midst of heaven, Come -and gather yourselves together unto the supper of the great God; 19:18 -That ye may eat the flesh of kings, and the flesh of captains, and the -flesh of mighty men, and the flesh of horses, and of them that sit on -them, and the flesh of all men, both free and bond, both small and -great. - -19:19 And I saw the beast, and the kings of the earth, and their -armies, gathered together to make war against him that sat on the -horse, and against his army. - -19:20 And the beast was taken, and with him the false prophet that -wrought miracles before him, with which he deceived them that had -received the mark of the beast, and them that worshipped his image. -These both were cast alive into a lake of fire burning with brimstone. - -19:21 And the remnant were slain with the sword of him that sat upon -the horse, which sword proceeded out of his mouth: and all the fowls -were filled with their flesh. - -20:1 And I saw an angel come down from heaven, having the key of the -bottomless pit and a great chain in his hand. - -20:2 And he laid hold on the dragon, that old serpent, which is the -Devil, and Satan, and bound him a thousand years, 20:3 And cast him -into the bottomless pit, and shut him up, and set a seal upon him, -that he should deceive the nations no more, till the thousand years -should be fulfilled: and after that he must be loosed a little season. - -20:4 And I saw thrones, and they sat upon them, and judgment was given -unto them: and I saw the souls of them that were beheaded for the -witness of Jesus, and for the word of God, and which had not -worshipped the beast, neither his image, neither had received his mark -upon their foreheads, or in their hands; and they lived and reigned -with Christ a thousand years. - -20:5 But the rest of the dead lived not again until the thousand years -were finished. This is the first resurrection. - -20:6 Blessed and holy is he that hath part in the first resurrection: -on such the second death hath no power, but they shall be priests of -God and of Christ, and shall reign with him a thousand years. - -20:7 And when the thousand years are expired, Satan shall be loosed -out of his prison, 20:8 And shall go out to deceive the nations which -are in the four quarters of the earth, Gog, and Magog, to gather them -together to battle: the number of whom is as the sand of the sea. - -20:9 And they went up on the breadth of the earth, and compassed the -camp of the saints about, and the beloved city: and fire came down -from God out of heaven, and devoured them. - -20:10 And the devil that deceived them was cast into the lake of fire -and brimstone, where the beast and the false prophet are, and shall be -tormented day and night for ever and ever. - -20:11 And I saw a great white throne, and him that sat on it, from -whose face the earth and the heaven fled away; and there was found no -place for them. - -20:12 And I saw the dead, small and great, stand before God; and the -books were opened: and another book was opened, which is the book of -life: and the dead were judged out of those things which were written -in the books, according to their works. - -20:13 And the sea gave up the dead which were in it; and death and -hell delivered up the dead which were in them: and they were judged -every man according to their works. - -20:14 And death and hell were cast into the lake of fire. This is the -second death. - -20:15 And whosoever was not found written in the book of life was cast -into the lake of fire. - -21:1 And I saw a new heaven and a new earth: for the first heaven and -the first earth were passed away; and there was no more sea. - -21:2 And I John saw the holy city, new Jerusalem, coming down from God -out of heaven, prepared as a bride adorned for her husband. - -21:3 And I heard a great voice out of heaven saying, Behold, the -tabernacle of God is with men, and he will dwell with them, and they -shall be his people, and God himself shall be with them, and be their -God. - -21:4 And God shall wipe away all tears from their eyes; and there -shall be no more death, neither sorrow, nor crying, neither shall -there be any more pain: for the former things are passed away. - -21:5 And he that sat upon the throne said, Behold, I make all things -new. - -And he said unto me, Write: for these words are true and faithful. - -21:6 And he said unto me, It is done. I am Alpha and Omega, the -beginning and the end. I will give unto him that is athirst of the -fountain of the water of life freely. - -21:7 He that overcometh shall inherit all things; and I will be his -God, and he shall be my son. - -21:8 But the fearful, and unbelieving, and the abominable, and -murderers, and whoremongers, and sorcerers, and idolaters, and all -liars, shall have their part in the lake which burneth with fire and -brimstone: which is the second death. - -21:9 And there came unto me one of the seven angels which had the -seven vials full of the seven last plagues, and talked with me, -saying, Come hither, I will shew thee the bride, the Lamb's wife. - -21:10 And he carried me away in the spirit to a great and high -mountain, and shewed me that great city, the holy Jerusalem, -descending out of heaven from God, 21:11 Having the glory of God: and -her light was like unto a stone most precious, even like a jasper -stone, clear as crystal; 21:12 And had a wall great and high, and had -twelve gates, and at the gates twelve angels, and names written -thereon, which are the names of the twelve tribes of the children of -Israel: 21:13 On the east three gates; on the north three gates; on -the south three gates; and on the west three gates. - -21:14 And the wall of the city had twelve foundations, and in them the -names of the twelve apostles of the Lamb. - -21:15 And he that talked with me had a golden reed to measure the -city, and the gates thereof, and the wall thereof. - -21:16 And the city lieth foursquare, and the length is as large as the -breadth: and he measured the city with the reed, twelve thousand -furlongs. - -The length and the breadth and the height of it are equal. - -21:17 And he measured the wall thereof, an hundred and forty and four -cubits, according to the measure of a man, that is, of the angel. - -21:18 And the building of the wall of it was of jasper: and the city -was pure gold, like unto clear glass. - -21:19 And the foundations of the wall of the city were garnished with -all manner of precious stones. The first foundation was jasper; the -second, sapphire; the third, a chalcedony; the fourth, an emerald; -21:20 The fifth, sardonyx; the sixth, sardius; the seventh, -chrysolyte; the eighth, beryl; the ninth, a topaz; the tenth, a -chrysoprasus; the eleventh, a jacinth; the twelfth, an amethyst. - -21:21 And the twelve gates were twelve pearls: every several gate was -of one pearl: and the street of the city was pure gold, as it were -transparent glass. - -21:22 And I saw no temple therein: for the Lord God Almighty and the -Lamb are the temple of it. - -21:23 And the city had no need of the sun, neither of the moon, to -shine in it: for the glory of God did lighten it, and the Lamb is the -light thereof. - -21:24 And the nations of them which are saved shall walk in the light -of it: and the kings of the earth do bring their glory and honour into -it. - -21:25 And the gates of it shall not be shut at all by day: for there -shall be no night there. - -21:26 And they shall bring the glory and honour of the nations into -it. - -21:27 And there shall in no wise enter into it any thing that -defileth, neither whatsoever worketh abomination, or maketh a lie: but -they which are written in the Lamb's book of life. - -22:1 And he shewed me a pure river of water of life, clear as crystal, -proceeding out of the throne of God and of the Lamb. - -22:2 In the midst of the street of it, and on either side of the -river, was there the tree of life, which bare twelve manner of fruits, -and yielded her fruit every month: and the leaves of the tree were for -the healing of the nations. - -22:3 And there shall be no more curse: but the throne of God and of -the Lamb shall be in it; and his servants shall serve him: 22:4 And -they shall see his face; and his name shall be in their foreheads. - -22:5 And there shall be no night there; and they need no candle, -neither light of the sun; for the Lord God giveth them light: and they -shall reign for ever and ever. - -22:6 And he said unto me, These sayings are faithful and true: and the -Lord God of the holy prophets sent his angel to shew unto his servants -the things which must shortly be done. - -22:7 Behold, I come quickly: blessed is he that keepeth the sayings of -the prophecy of this book. - -22:8 And I John saw these things, and heard them. And when I had heard -and seen, I fell down to worship before the feet of the angel which -shewed me these things. - -22:9 Then saith he unto me, See thou do it not: for I am thy -fellowservant, and of thy brethren the prophets, and of them which -keep the sayings of this book: worship God. - -22:10 And he saith unto me, Seal not the sayings of the prophecy of -this book: for the time is at hand. - -22:11 He that is unjust, let him be unjust still: and he which is -filthy, let him be filthy still: and he that is righteous, let him be -righteous still: and he that is holy, let him be holy still. - -22:12 And, behold, I come quickly; and my reward is with me, to give -every man according as his work shall be. - -22:13 I am Alpha and Omega, the beginning and the end, the first and -the last. - -22:14 Blessed are they that do his commandments, that they may have -right to the tree of life, and may enter in through the gates into the -city. - -22:15 For without are dogs, and sorcerers, and whoremongers, and -murderers, and idolaters, and whosoever loveth and maketh a lie. - -22:16 I Jesus have sent mine angel to testify unto you these things in -the churches. I am the root and the offspring of David, and the bright -and morning star. - -22:17 And the Spirit and the bride say, Come. And let him that heareth -say, Come. And let him that is athirst come. And whosoever will, let -him take the water of life freely. - -22:18 For I testify unto every man that heareth the words of the -prophecy of this book, If any man shall add unto these things, God -shall add unto him the plagues that are written in this book: 22:19 -And if any man shall take away from the words of the book of this -prophecy, God shall take away his part out of the book of life, and -out of the holy city, and from the things which are written in this book. - -22:20 He which testifieth these things saith, Surely I come quickly. -Amen. - -Even so, come, Lord Jesus. - -22:21 The grace of our Lord Jesus Christ be with you all. Amen. - - -End of the Project Gutenberg Edition of the New Testament - - -End of the Project Gutenberg Edition of the King James Bible - - +**Welcome To The World of Free Plain Vanilla Electronic Texts** + +**Etexts Readable By Both Humans and By Computers, Since 1971** + +*These Etexts Prepared By Hundreds of Volunteers and Donations* + + +August, 1989 [Etext #10] + + +******The Project Gutenberg Etext of The King James Bible****** +******This file should be named kjv10.txt or kjv10.zip***** + + +Copyright laws are changing all over the world, be sure to check +the copyright laws for your country before posting these files!! + +Please take a look at the important information in this header. +We encourage you to keep this file on your own disk, keeping an +electronic path open for the next readers. Do not remove this. + + +**Welcome To The World of Free Plain Vanilla Electronic Texts** + +**Etexts Readable By Both Humans and By Computers, Since 1971** + +*These Etexts Prepared By Hundreds of Volunteers and Donations* + +Information on contacting Project Gutenberg to get Etexts, and +further information is included below. We need your donations. + + +The King James Bible + +August, 1989 [Etext #10] + + +******The Project Gutenberg Etext of The King James Bible****** +******This file should be named kjv10.txt or kjv10.zip***** + +Corrected EDITIONS of our etexts get a new NUMBER, kjv11.txt +VERSIONS based on separate sources get new LETTER, kjv10aa.txt + +Warning: also look for our Bible Etext under biblexxx.xxx: as +well as under kjvxxxxx.xxx. + + +Project Gutenberg Etexts are usually created from multiple editions, +all of which are in the Public Domain in the United States, unless a +copyright notice is included. Therefore, we do usually do NOT! keep +these books in compliance with any particular paper edition. + + +We are now trying to release all our books one month in advance +of the official release dates, leaving time for better editing. + +Please note: neither this list nor its contents are final till +midnight of the last day of the month of any such announcement. +The official release date of all Project Gutenberg Etexts is at +Midnight, Central Time, of the last day of the stated month. A +preliminary version may often be posted for suggestion, comment +and editing by those who wish to do so. To be sure you have an +up to date first edition [xxxxx10x.xxx] please check file sizes +in the first week of the next month. Since our ftp program has +a bug in it that scrambles the date [tried to fix and failed] a +look at the file size will have to do, but we will try to see a +new copy has at least one byte more or less. + + +Information about Project Gutenberg (one page) + +We produce about two million dollars for each hour we work. The +time it takes us, a rather conservative estimate, is fifty hours +to get any etext selected, entered, proofread, edited, copyright +searched and analyzed, the copyright letters written, etc. This +projected audience is one hundred million readers. If our value +per text is nominally estimated at one dollar then we produce &2 +million dollars per hour this year as we release thirty-six text +files per month, or 432 more Etexts in 1999 for a total of 2000+ +If these reach just 10% of the computerized population, then the +total should reach over 200 billion Etexts given away this year. + +The Goal of Project Gutenberg is to Give Away One Trillion Etext +Files by December 31, 2001. [10,000 x 100,000,000 = 1 Trillion] +This is ten thousand titles each to one hundred million readers, +which is only ~5% of the present number of computer users. + +At our revised rates of production, we will reach only one-third +of that goal by the end of 2001, or about 3,333 Etexts unless we +manage to get some real funding; currently our funding is mostly +from Michael Hart's salary at Carnegie-Mellon University, and an +assortment of sporadic gifts; this salary is only good for a few +more years, so we are looking for something to replace it, as we +don't want Project Gutenberg to be so dependent on one person. + +We need your donations more than ever! + + +All donations should be made to "Project Gutenberg/CMU": and are +tax deductible to the extent allowable by law. (CMU = Carnegie- +Mellon University). + +For these and other matters, please mail to: + +Project Gutenberg +P. O. Box 2782 +Champaign, IL 61825 + +When all other email fails. . .try our Executive Director: +Michael S. Hart +hart@pobox.com forwards to hart@prairienet.org and archive.org +if your mail bounces from archive.org, I will still see it, if +it bounces from prairienet.org, better resend later on. . . . + +We would prefer to send you this information by email. + +****** + +To access Project Gutenberg etexts, use any Web browser +to view http://promo.net/pg. This site lists Etexts by +author and by title, and includes information about how +to get involved with Project Gutenberg. You could also +download our past Newsletters, or subscribe here. This +is one of our major sites, please email hart@pobox.com, +for a more complete list of our various sites. + +To go directly to the etext collections, use FTP or any +Web browser to visit a Project Gutenberg mirror (mirror +sites are available on 7 continents; mirrors are listed +at http://promo.net/pg). + +Mac users, do NOT point and click, typing works better. + +Example FTP session: + +ftp sunsite.unc.edu +login: anonymous +password: your@login +cd pub/docs/books/gutenberg +cd etext90 through etext99 +dir [to see files] +get or mget [to get files. . .set bin for zip files] +GET GUTINDEX.?? [to get a year's listing of books, e.g., GUTINDEX.99] +GET GUTINDEX.ALL [to get a listing of ALL books] + +*** + +**Information prepared by the Project Gutenberg legal advisor** + +(Three Pages) + + +***START**THE SMALL PRINT!**FOR PUBLIC DOMAIN ETEXTS**START*** +Why is this "Small Print!" statement here? You know: lawyers. +They tell us you might sue us if there is something wrong with +your copy of this etext, even if you got it for free from +someone other than us, and even if what's wrong is not our +fault. So, among other things, this "Small Print!" statement +disclaims most of our liability to you. It also tells you how +you can distribute copies of this etext if you want to. + +*BEFORE!* YOU USE OR READ THIS ETEXT +By using or reading any part of this PROJECT GUTENBERG-tm +etext, you indicate that you understand, agree to and accept +this "Small Print!" statement. If you do not, you can receive +a refund of the money (if any) you paid for this etext by +sending a request within 30 days of receiving it to the person +you got it from. If you received this etext on a physical +medium (such as a disk), you must return it with your request. + +ABOUT PROJECT GUTENBERG-TM ETEXTS +This PROJECT GUTENBERG-tm etext, like most PROJECT GUTENBERG- +tm etexts, is a "public domain" work distributed by Professor +Michael S. Hart through the Project Gutenberg Association at +Carnegie-Mellon University (the "Project"). Among other +things, this means that no one owns a United States copyright +on or for this work, so the Project (and you!) can copy and +distribute it in the United States without permission and +without paying copyright royalties. Special rules, set forth +below, apply if you wish to copy and distribute this etext +under the Project's "PROJECT GUTENBERG" trademark. + +To create these etexts, the Project expends considerable +efforts to identify, transcribe and proofread public domain +works. Despite these efforts, the Project's etexts and any +medium they may be on may contain "Defects". Among other +things, Defects may take the form of incomplete, inaccurate or +corrupt data, transcription errors, a copyright or other +intellectual property infringement, a defective or damaged +disk or other etext medium, a computer virus, or computer +codes that damage or cannot be read by your equipment. + +LIMITED WARRANTY; DISCLAIMER OF DAMAGES +But for the "Right of Replacement or Refund" described below, +[1] the Project (and any other party you may receive this +etext from as a PROJECT GUTENBERG-tm etext) disclaims all +liability to you for damages, costs and expenses, including +legal fees, and [2] YOU HAVE NO REMEDIES FOR NEGLIGENCE OR +UNDER STRICT LIABILITY, OR FOR BREACH OF WARRANTY OR CONTRACT, +INCLUDING BUT NOT LIMITED TO INDIRECT, CONSEQUENTIAL, PUNITIVE +OR INCIDENTAL DAMAGES, EVEN IF YOU GIVE NOTICE OF THE +POSSIBILITY OF SUCH DAMAGES. + +If you discover a Defect in this etext within 90 days of +receiving it, you can receive a refund of the money (if any) +you paid for it by sending an explanatory note within that +time to the person you received it from. If you received it +on a physical medium, you must return it with your note, and +such person may choose to alternatively give you a replacement +copy. If you received it electronically, such person may +choose to alternatively give you a second opportunity to +receive it electronically. + +THIS ETEXT IS OTHERWISE PROVIDED TO YOU "AS-IS". NO OTHER +WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, ARE MADE TO YOU AS +TO THE ETEXT OR ANY MEDIUM IT MAY BE ON, INCLUDING BUT NOT +LIMITED TO WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A +PARTICULAR PURPOSE. + +Some states do not allow disclaimers of implied warranties or +the exclusion or limitation of consequential damages, so the +above disclaimers and exclusions may not apply to you, and you +may have other legal rights. + +INDEMNITY +You will indemnify and hold the Project, its directors, +officers, members and agents harmless from all liability, cost +and expense, including legal fees, that arise directly or +indirectly from any of the following that you do or cause: +[1] distribution of this etext, [2] alteration, modification, +or addition to the etext, or [3] any Defect. + +DISTRIBUTION UNDER "PROJECT GUTENBERG-tm" +You may distribute copies of this etext electronically, or by +disk, book or any other medium if you either delete this +"Small Print!" and all other references to Project Gutenberg, +or: + +[1] Only give exact copies of it. Among other things, this + requires that you do not remove, alter or modify the + etext or this "small print!" statement. You may however, + if you wish, distribute this etext in machine readable + binary, compressed, mark-up, or proprietary form, + including any form resulting from conversion by word pro- + cessing or hypertext software, but only so long as + *EITHER*: + + [*] The etext, when displayed, is clearly readable, and + does *not* contain characters other than those + intended by the author of the work, although tilde + (~), asterisk (*) and underline (_) characters may + be used to convey punctuation intended by the + author, and additional characters may be used to + indicate hypertext links; OR + + [*] The etext may be readily converted by the reader at + no expense into plain ASCII, EBCDIC or equivalent + form by the program that displays the etext (as is + the case, for instance, with most word processors); + OR + + [*] You provide, or agree to also provide on request at + no additional cost, fee or expense, a copy of the + etext in its original plain ASCII form (or in EBCDIC + or other equivalent proprietary form). + +[2] Honor the etext refund and replacement provisions of this + "Small Print!" statement. + +[3] Pay a trademark license fee to the Project of 20% of the + net profits you derive calculated using the method you + already use to calculate your applicable taxes. If you + don't derive profits, no royalty is due. Royalties are + payable to "Project Gutenberg Association/Carnegie-Mellon + University" within the 60 days following each + date you prepare (or were legally required to prepare) + your annual (or equivalent periodic) tax return. + +WHAT IF YOU *WANT* TO SEND MONEY EVEN IF YOU DON'T HAVE TO? +The Project gratefully accepts contributions in money, time, +scanning machines, OCR software, public domain etexts, royalty +free copyright licenses, and every other sort of contribution +you can think of. Money should be paid to "Project Gutenberg +Association / Carnegie-Mellon University". + +*END*THE SMALL PRINT! FOR PUBLIC DOMAIN ETEXTS*Ver.04.29.93*END* + + + + + +The Old Testament of the King James Version of the Bible + + + + +The First Book of Moses: Called Genesis + + +1:1 In the beginning God created the heaven and the earth. + +1:2 And the earth was without form, and void; and darkness was upon +the face of the deep. And the Spirit of God moved upon the face of the +waters. + +1:3 And God said, Let there be light: and there was light. + +1:4 And God saw the light, that it was good: and God divided the light +from the darkness. + +1:5 And God called the light Day, and the darkness he called Night. +And the evening and the morning were the first day. + +1:6 And God said, Let there be a firmament in the midst of the waters, +and let it divide the waters from the waters. + +1:7 And God made the firmament, and divided the waters which were +under the firmament from the waters which were above the firmament: +and it was so. + +1:8 And God called the firmament Heaven. And the evening and the +morning were the second day. + +1:9 And God said, Let the waters under the heaven be gathered together +unto one place, and let the dry land appear: and it was so. + +1:10 And God called the dry land Earth; and the gathering together of +the waters called he Seas: and God saw that it was good. + +1:11 And God said, Let the earth bring forth grass, the herb yielding +seed, and the fruit tree yielding fruit after his kind, whose seed is +in itself, upon the earth: and it was so. + +1:12 And the earth brought forth grass, and herb yielding seed after +his kind, and the tree yielding fruit, whose seed was in itself, after +his kind: and God saw that it was good. + +1:13 And the evening and the morning were the third day. + +1:14 And God said, Let there be lights in the firmament of the heaven +to divide the day from the night; and let them be for signs, and for +seasons, and for days, and years: 1:15 And let them be for lights in +the firmament of the heaven to give light upon the earth: and it was +so. + +1:16 And God made two great lights; the greater light to rule the day, +and the lesser light to rule the night: he made the stars also. + +1:17 And God set them in the firmament of the heaven to give light +upon the earth, 1:18 And to rule over the day and over the night, and +to divide the light from the darkness: and God saw that it was good. + +1:19 And the evening and the morning were the fourth day. + +1:20 And God said, Let the waters bring forth abundantly the moving +creature that hath life, and fowl that may fly above the earth in the +open firmament of heaven. + +1:21 And God created great whales, and every living creature that +moveth, which the waters brought forth abundantly, after their kind, +and every winged fowl after his kind: and God saw that it was good. + +1:22 And God blessed them, saying, Be fruitful, and multiply, and fill +the waters in the seas, and let fowl multiply in the earth. + +1:23 And the evening and the morning were the fifth day. + +1:24 And God said, Let the earth bring forth the living creature after +his kind, cattle, and creeping thing, and beast of the earth after his +kind: and it was so. + +1:25 And God made the beast of the earth after his kind, and cattle +after their kind, and every thing that creepeth upon the earth after +his kind: and God saw that it was good. + +1:26 And God said, Let us make man in our image, after our likeness: +and let them have dominion over the fish of the sea, and over the fowl +of the air, and over the cattle, and over all the earth, and over +every creeping thing that creepeth upon the earth. + +1:27 So God created man in his own image, in the image of God created +he him; male and female created he them. + +1:28 And God blessed them, and God said unto them, Be fruitful, and +multiply, and replenish the earth, and subdue it: and have dominion +over the fish of the sea, and over the fowl of the air, and over every +living thing that moveth upon the earth. + +1:29 And God said, Behold, I have given you every herb bearing seed, +which is upon the face of all the earth, and every tree, in the which +is the fruit of a tree yielding seed; to you it shall be for meat. + +1:30 And to every beast of the earth, and to every fowl of the air, +and to every thing that creepeth upon the earth, wherein there is +life, I have given every green herb for meat: and it was so. + +1:31 And God saw every thing that he had made, and, behold, it was +very good. And the evening and the morning were the sixth day. + +2:1 Thus the heavens and the earth were finished, and all the host of +them. + +2:2 And on the seventh day God ended his work which he had made; and +he rested on the seventh day from all his work which he had made. + +2:3 And God blessed the seventh day, and sanctified it: because that +in it he had rested from all his work which God created and made. + +2:4 These are the generations of the heavens and of the earth when +they were created, in the day that the LORD God made the earth and the +heavens, 2:5 And every plant of the field before it was in the earth, +and every herb of the field before it grew: for the LORD God had not +caused it to rain upon the earth, and there was not a man to till the +ground. + +2:6 But there went up a mist from the earth, and watered the whole +face of the ground. + +2:7 And the LORD God formed man of the dust of the ground, and +breathed into his nostrils the breath of life; and man became a living +soul. + +2:8 And the LORD God planted a garden eastward in Eden; and there he +put the man whom he had formed. + +2:9 And out of the ground made the LORD God to grow every tree that is +pleasant to the sight, and good for food; the tree of life also in the +midst of the garden, and the tree of knowledge of good and evil. + +2:10 And a river went out of Eden to water the garden; and from thence +it was parted, and became into four heads. + +2:11 The name of the first is Pison: that is it which compasseth the +whole land of Havilah, where there is gold; 2:12 And the gold of that +land is good: there is bdellium and the onyx stone. + +2:13 And the name of the second river is Gihon: the same is it that +compasseth the whole land of Ethiopia. + +2:14 And the name of the third river is Hiddekel: that is it which +goeth toward the east of Assyria. And the fourth river is Euphrates. + +2:15 And the LORD God took the man, and put him into the garden of +Eden to dress it and to keep it. + +2:16 And the LORD God commanded the man, saying, Of every tree of the +garden thou mayest freely eat: 2:17 But of the tree of the knowledge +of good and evil, thou shalt not eat of it: for in the day that thou +eatest thereof thou shalt surely die. + +2:18 And the LORD God said, It is not good that the man should be +alone; I will make him an help meet for him. + +2:19 And out of the ground the LORD God formed every beast of the +field, and every fowl of the air; and brought them unto Adam to see +what he would call them: and whatsoever Adam called every living +creature, that was the name thereof. + +2:20 And Adam gave names to all cattle, and to the fowl of the air, +and to every beast of the field; but for Adam there was not found an +help meet for him. + +2:21 And the LORD God caused a deep sleep to fall upon Adam, and he +slept: and he took one of his ribs, and closed up the flesh instead +thereof; 2:22 And the rib, which the LORD God had taken from man, made +he a woman, and brought her unto the man. + +2:23 And Adam said, This is now bone of my bones, and flesh of my +flesh: she shall be called Woman, because she was taken out of Man. + +2:24 Therefore shall a man leave his father and his mother, and shall +cleave unto his wife: and they shall be one flesh. + +2:25 And they were both naked, the man and his wife, and were not +ashamed. + +3:1 Now the serpent was more subtil than any beast of the field which +the LORD God had made. And he said unto the woman, Yea, hath God said, +Ye shall not eat of every tree of the garden? 3:2 And the woman said +unto the serpent, We may eat of the fruit of the trees of the garden: +3:3 But of the fruit of the tree which is in the midst of the garden, +God hath said, Ye shall not eat of it, neither shall ye touch it, lest +ye die. + +3:4 And the serpent said unto the woman, Ye shall not surely die: 3:5 +For God doth know that in the day ye eat thereof, then your eyes shall +be opened, and ye shall be as gods, knowing good and evil. + +3:6 And when the woman saw that the tree was good for food, and that +it was pleasant to the eyes, and a tree to be desired to make one +wise, she took of the fruit thereof, and did eat, and gave also unto +her husband with her; and he did eat. + +3:7 And the eyes of them both were opened, and they knew that they +were naked; and they sewed fig leaves together, and made themselves +aprons. + +3:8 And they heard the voice of the LORD God walking in the garden in +the cool of the day: and Adam and his wife hid themselves from the +presence of the LORD God amongst the trees of the garden. + +3:9 And the LORD God called unto Adam, and said unto him, Where art +thou? 3:10 And he said, I heard thy voice in the garden, and I was +afraid, because I was naked; and I hid myself. + +3:11 And he said, Who told thee that thou wast naked? Hast thou eaten +of the tree, whereof I commanded thee that thou shouldest not eat? +3:12 And the man said, The woman whom thou gavest to be with me, she +gave me of the tree, and I did eat. + +3:13 And the LORD God said unto the woman, What is this that thou hast +done? And the woman said, The serpent beguiled me, and I did eat. + +3:14 And the LORD God said unto the serpent, Because thou hast done +this, thou art cursed above all cattle, and above every beast of the +field; upon thy belly shalt thou go, and dust shalt thou eat all the +days of thy life: 3:15 And I will put enmity between thee and the +woman, and between thy seed and her seed; it shall bruise thy head, +and thou shalt bruise his heel. + +3:16 Unto the woman he said, I will greatly multiply thy sorrow and +thy conception; in sorrow thou shalt bring forth children; and thy +desire shall be to thy husband, and he shall rule over thee. + +3:17 And unto Adam he said, Because thou hast hearkened unto the voice +of thy wife, and hast eaten of the tree, of which I commanded thee, +saying, Thou shalt not eat of it: cursed is the ground for thy sake; +in sorrow shalt thou eat of it all the days of thy life; 3:18 Thorns +also and thistles shall it bring forth to thee; and thou shalt eat the +herb of the field; 3:19 In the sweat of thy face shalt thou eat bread, +till thou return unto the ground; for out of it wast thou taken: for +dust thou art, and unto dust shalt thou return. + +3:20 And Adam called his wife's name Eve; because she was the mother +of all living. + +3:21 Unto Adam also and to his wife did the LORD God make coats of +skins, and clothed them. + +3:22 And the LORD God said, Behold, the man is become as one of us, to +know good and evil: and now, lest he put forth his hand, and take also +of the tree of life, and eat, and live for ever: 3:23 Therefore the +LORD God sent him forth from the garden of Eden, to till the ground +from whence he was taken. + +3:24 So he drove out the man; and he placed at the east of the garden +of Eden Cherubims, and a flaming sword which turned every way, to keep +the way of the tree of life. + +4:1 And Adam knew Eve his wife; and she conceived, and bare Cain, and +said, I have gotten a man from the LORD. + +4:2 And she again bare his brother Abel. And Abel was a keeper of +sheep, but Cain was a tiller of the ground. + +4:3 And in process of time it came to pass, that Cain brought of the +fruit of the ground an offering unto the LORD. + +4:4 And Abel, he also brought of the firstlings of his flock and of +the fat thereof. And the LORD had respect unto Abel and to his +offering: 4:5 But unto Cain and to his offering he had not respect. +And Cain was very wroth, and his countenance fell. + +4:6 And the LORD said unto Cain, Why art thou wroth? and why is thy +countenance fallen? 4:7 If thou doest well, shalt thou not be +accepted? and if thou doest not well, sin lieth at the door. And unto +thee shall be his desire, and thou shalt rule over him. + +4:8 And Cain talked with Abel his brother: and it came to pass, when +they were in the field, that Cain rose up against Abel his brother, +and slew him. + +4:9 And the LORD said unto Cain, Where is Abel thy brother? And he +said, I know not: Am I my brother's keeper? 4:10 And he said, What +hast thou done? the voice of thy brother's blood crieth unto me from +the ground. + +4:11 And now art thou cursed from the earth, which hath opened her +mouth to receive thy brother's blood from thy hand; 4:12 When thou +tillest the ground, it shall not henceforth yield unto thee her +strength; a fugitive and a vagabond shalt thou be in the earth. + +4:13 And Cain said unto the LORD, My punishment is greater than I can +bear. + +4:14 Behold, thou hast driven me out this day from the face of the +earth; and from thy face shall I be hid; and I shall be a fugitive and +a vagabond in the earth; and it shall come to pass, that every one +that findeth me shall slay me. + +4:15 And the LORD said unto him, Therefore whosoever slayeth Cain, +vengeance shall be taken on him sevenfold. And the LORD set a mark +upon Cain, lest any finding him should kill him. + +4:16 And Cain went out from the presence of the LORD, and dwelt in the +land of Nod, on the east of Eden. + +4:17 And Cain knew his wife; and she conceived, and bare Enoch: and he +builded a city, and called the name of the city, after the name of his +son, Enoch. + +4:18 And unto Enoch was born Irad: and Irad begat Mehujael: and +Mehujael begat Methusael: and Methusael begat Lamech. + +4:19 And Lamech took unto him two wives: the name of the one was Adah, +and the name of the other Zillah. + +4:20 And Adah bare Jabal: he was the father of such as dwell in tents, +and of such as have cattle. + +4:21 And his brother's name was Jubal: he was the father of all such +as handle the harp and organ. + +4:22 And Zillah, she also bare Tubalcain, an instructer of every +artificer in brass and iron: and the sister of Tubalcain was Naamah. + +4:23 And Lamech said unto his wives, Adah and Zillah, Hear my voice; +ye wives of Lamech, hearken unto my speech: for I have slain a man to +my wounding, and a young man to my hurt. + +4:24 If Cain shall be avenged sevenfold, truly Lamech seventy and +sevenfold. + +4:25 And Adam knew his wife again; and she bare a son, and called his +name Seth: For God, said she, hath appointed me another seed instead +of Abel, whom Cain slew. + +4:26 And to Seth, to him also there was born a son; and he called his +name Enos: then began men to call upon the name of the LORD. + +5:1 This is the book of the generations of Adam. In the day that God +created man, in the likeness of God made he him; 5:2 Male and female +created he them; and blessed them, and called their name Adam, in the +day when they were created. + +5:3 And Adam lived an hundred and thirty years, and begat a son in his +own likeness, and after his image; and called his name Seth: 5:4 And +the days of Adam after he had begotten Seth were eight hundred years: +and he begat sons and daughters: 5:5 And all the days that Adam lived +were nine hundred and thirty years: and he died. + +5:6 And Seth lived an hundred and five years, and begat Enos: 5:7 And +Seth lived after he begat Enos eight hundred and seven years, and +begat sons and daughters: 5:8 And all the days of Seth were nine +hundred and twelve years: and he died. + +5:9 And Enos lived ninety years, and begat Cainan: 5:10 And Enos lived +after he begat Cainan eight hundred and fifteen years, and begat sons +and daughters: 5:11 And all the days of Enos were nine hundred and +five years: and he died. + +5:12 And Cainan lived seventy years and begat Mahalaleel: 5:13 And +Cainan lived after he begat Mahalaleel eight hundred and forty years, +and begat sons and daughters: 5:14 And all the days of Cainan were +nine hundred and ten years: and he died. + +5:15 And Mahalaleel lived sixty and five years, and begat Jared: 5:16 +And Mahalaleel lived after he begat Jared eight hundred and thirty +years, and begat sons and daughters: 5:17 And all the days of +Mahalaleel were eight hundred ninety and five years: and he died. + +5:18 And Jared lived an hundred sixty and two years, and he begat +Enoch: 5:19 And Jared lived after he begat Enoch eight hundred years, +and begat sons and daughters: 5:20 And all the days of Jared were nine +hundred sixty and two years: and he died. + +5:21 And Enoch lived sixty and five years, and begat Methuselah: 5:22 +And Enoch walked with God after he begat Methuselah three hundred +years, and begat sons and daughters: 5:23 And all the days of Enoch +were three hundred sixty and five years: 5:24 And Enoch walked with +God: and he was not; for God took him. + +5:25 And Methuselah lived an hundred eighty and seven years, and begat +Lamech. + +5:26 And Methuselah lived after he begat Lamech seven hundred eighty +and two years, and begat sons and daughters: 5:27 And all the days of +Methuselah were nine hundred sixty and nine years: and he died. + +5:28 And Lamech lived an hundred eighty and two years, and begat a +son: 5:29 And he called his name Noah, saying, This same shall comfort +us concerning our work and toil of our hands, because of the ground +which the LORD hath cursed. + +5:30 And Lamech lived after he begat Noah five hundred ninety and five +years, and begat sons and daughters: 5:31 And all the days of Lamech +were seven hundred seventy and seven years: and he died. + +5:32 And Noah was five hundred years old: and Noah begat Shem, Ham, +and Japheth. + +6:1 And it came to pass, when men began to multiply on the face of the +earth, and daughters were born unto them, 6:2 That the sons of God saw +the daughters of men that they were fair; and they took them wives of +all which they chose. + +6:3 And the LORD said, My spirit shall not always strive with man, for +that he also is flesh: yet his days shall be an hundred and twenty +years. + +6:4 There were giants in the earth in those days; and also after that, +when the sons of God came in unto the daughters of men, and they bare +children to them, the same became mighty men which were of old, men of +renown. + +6:5 And God saw that the wickedness of man was great in the earth, and +that every imagination of the thoughts of his heart was only evil +continually. + +6:6 And it repented the LORD that he had made man on the earth, and it +grieved him at his heart. + +6:7 And the LORD said, I will destroy man whom I have created from the +face of the earth; both man, and beast, and the creeping thing, and +the fowls of the air; for it repenteth me that I have made them. + +6:8 But Noah found grace in the eyes of the LORD. + +6:9 These are the generations of Noah: Noah was a just man and perfect +in his generations, and Noah walked with God. + +6:10 And Noah begat three sons, Shem, Ham, and Japheth. + +6:11 The earth also was corrupt before God, and the earth was filled +with violence. + +6:12 And God looked upon the earth, and, behold, it was corrupt; for +all flesh had corrupted his way upon the earth. + +6:13 And God said unto Noah, The end of all flesh is come before me; +for the earth is filled with violence through them; and, behold, I +will destroy them with the earth. + +6:14 Make thee an ark of gopher wood; rooms shalt thou make in the +ark, and shalt pitch it within and without with pitch. + +6:15 And this is the fashion which thou shalt make it of: The length +of the ark shall be three hundred cubits, the breadth of it fifty +cubits, and the height of it thirty cubits. + +6:16 A window shalt thou make to the ark, and in a cubit shalt thou +finish it above; and the door of the ark shalt thou set in the side +thereof; with lower, second, and third stories shalt thou make it. + +6:17 And, behold, I, even I, do bring a flood of waters upon the +earth, to destroy all flesh, wherein is the breath of life, from under +heaven; and every thing that is in the earth shall die. + +6:18 But with thee will I establish my covenant; and thou shalt come +into the ark, thou, and thy sons, and thy wife, and thy sons' wives +with thee. + +6:19 And of every living thing of all flesh, two of every sort shalt +thou bring into the ark, to keep them alive with thee; they shall be +male and female. + +6:20 Of fowls after their kind, and of cattle after their kind, of +every creeping thing of the earth after his kind, two of every sort +shall come unto thee, to keep them alive. + +6:21 And take thou unto thee of all food that is eaten, and thou shalt +gather it to thee; and it shall be for food for thee, and for them. + +6:22 Thus did Noah; according to all that God commanded him, so did +he. + +7:1 And the LORD said unto Noah, Come thou and all thy house into the +ark; for thee have I seen righteous before me in this generation. + +7:2 Of every clean beast thou shalt take to thee by sevens, the male +and his female: and of beasts that are not clean by two, the male and +his female. + +7:3 Of fowls also of the air by sevens, the male and the female; to +keep seed alive upon the face of all the earth. + +7:4 For yet seven days, and I will cause it to rain upon the earth +forty days and forty nights; and every living substance that I have +made will I destroy from off the face of the earth. + +7:5 And Noah did according unto all that the LORD commanded him. + +7:6 And Noah was six hundred years old when the flood of waters was +upon the earth. + +7:7 And Noah went in, and his sons, and his wife, and his sons' wives +with him, into the ark, because of the waters of the flood. + +7:8 Of clean beasts, and of beasts that are not clean, and of fowls, +and of every thing that creepeth upon the earth, 7:9 There went in two +and two unto Noah into the ark, the male and the female, as God had +commanded Noah. + +7:10 And it came to pass after seven days, that the waters of the +flood were upon the earth. + +7:11 In the six hundredth year of Noah's life, in the second month, +the seventeenth day of the month, the same day were all the fountains +of the great deep broken up, and the windows of heaven were opened. + +7:12 And the rain was upon the earth forty days and forty nights. + +7:13 In the selfsame day entered Noah, and Shem, and Ham, and Japheth, +the sons of Noah, and Noah's wife, and the three wives of his sons +with them, into the ark; 7:14 They, and every beast after his kind, +and all the cattle after their kind, and every creeping thing that +creepeth upon the earth after his kind, and every fowl after his kind, +every bird of every sort. + +7:15 And they went in unto Noah into the ark, two and two of all +flesh, wherein is the breath of life. + +7:16 And they that went in, went in male and female of all flesh, as +God had commanded him: and the LORD shut him in. + +7:17 And the flood was forty days upon the earth; and the waters +increased, and bare up the ark, and it was lift up above the earth. + +7:18 And the waters prevailed, and were increased greatly upon the +earth; and the ark went upon the face of the waters. + +7:19 And the waters prevailed exceedingly upon the earth; and all the +high hills, that were under the whole heaven, were covered. + +7:20 Fifteen cubits upward did the waters prevail; and the mountains +were covered. + +7:21 And all flesh died that moved upon the earth, both of fowl, and +of cattle, and of beast, and of every creeping thing that creepeth +upon the earth, and every man: 7:22 All in whose nostrils was the +breath of life, of all that was in the dry land, died. + +7:23 And every living substance was destroyed which was upon the face +of the ground, both man, and cattle, and the creeping things, and the +fowl of the heaven; and they were destroyed from the earth: and Noah +only remained alive, and they that were with him in the ark. + +7:24 And the waters prevailed upon the earth an hundred and fifty +days. + +8:1 And God remembered Noah, and every living thing, and all the +cattle that was with him in the ark: and God made a wind to pass over +the earth, and the waters asswaged; 8:2 The fountains also of the deep +and the windows of heaven were stopped, and the rain from heaven was +restrained; 8:3 And the waters returned from off the earth +continually: and after the end of the hundred and fifty days the +waters were abated. + +8:4 And the ark rested in the seventh month, on the seventeenth day of +the month, upon the mountains of Ararat. + +8:5 And the waters decreased continually until the tenth month: in the +tenth month, on the first day of the month, were the tops of the +mountains seen. + +8:6 And it came to pass at the end of forty days, that Noah opened the +window of the ark which he had made: 8:7 And he sent forth a raven, +which went forth to and fro, until the waters were dried up from off +the earth. + +8:8 Also he sent forth a dove from him, to see if the waters were +abated from off the face of the ground; 8:9 But the dove found no rest +for the sole of her foot, and she returned unto him into the ark, for +the waters were on the face of the whole earth: then he put forth his +hand, and took her, and pulled her in unto him into the ark. + +8:10 And he stayed yet other seven days; and again he sent forth the +dove out of the ark; 8:11 And the dove came in to him in the evening; +and, lo, in her mouth was an olive leaf pluckt off: so Noah knew that +the waters were abated from off the earth. + +8:12 And he stayed yet other seven days; and sent forth the dove; +which returned not again unto him any more. + +8:13 And it came to pass in the six hundredth and first year, in the +first month, the first day of the month, the waters were dried up from +off the earth: and Noah removed the covering of the ark, and looked, +and, behold, the face of the ground was dry. + +8:14 And in the second month, on the seven and twentieth day of the +month, was the earth dried. + +8:15 And God spake unto Noah, saying, 8:16 Go forth of the ark, thou, +and thy wife, and thy sons, and thy sons' wives with thee. + +8:17 Bring forth with thee every living thing that is with thee, of +all flesh, both of fowl, and of cattle, and of every creeping thing +that creepeth upon the earth; that they may breed abundantly in the +earth, and be fruitful, and multiply upon the earth. + +8:18 And Noah went forth, and his sons, and his wife, and his sons' +wives with him: 8:19 Every beast, every creeping thing, and every +fowl, and whatsoever creepeth upon the earth, after their kinds, went +forth out of the ark. + +8:20 And Noah builded an altar unto the LORD; and took of every clean +beast, and of every clean fowl, and offered burnt offerings on the +altar. + +8:21 And the LORD smelled a sweet savour; and the LORD said in his +heart, I will not again curse the ground any more for man's sake; for +the imagination of man's heart is evil from his youth; neither will I +again smite any more every thing living, as I have done. + +8:22 While the earth remaineth, seedtime and harvest, and cold and +heat, and summer and winter, and day and night shall not cease. + +9:1 And God blessed Noah and his sons, and said unto them, Be +fruitful, and multiply, and replenish the earth. + +9:2 And the fear of you and the dread of you shall be upon every beast +of the earth, and upon every fowl of the air, upon all that moveth +upon the earth, and upon all the fishes of the sea; into your hand are +they delivered. + +9:3 Every moving thing that liveth shall be meat for you; even as the +green herb have I given you all things. + +9:4 But flesh with the life thereof, which is the blood thereof, shall +ye not eat. + +9:5 And surely your blood of your lives will I require; at the hand of +every beast will I require it, and at the hand of man; at the hand of +every man's brother will I require the life of man. + +9:6 Whoso sheddeth man's blood, by man shall his blood be shed: for in +the image of God made he man. + +9:7 And you, be ye fruitful, and multiply; bring forth abundantly in +the earth, and multiply therein. + +9:8 And God spake unto Noah, and to his sons with him, saying, 9:9 And +I, behold, I establish my covenant with you, and with your seed after +you; 9:10 And with every living creature that is with you, of the +fowl, of the cattle, and of every beast of the earth with you; from +all that go out of the ark, to every beast of the earth. + +9:11 And I will establish my covenant with you, neither shall all +flesh be cut off any more by the waters of a flood; neither shall +there any more be a flood to destroy the earth. + +9:12 And God said, This is the token of the covenant which I make +between me and you and every living creature that is with you, for +perpetual generations: 9:13 I do set my bow in the cloud, and it shall +be for a token of a covenant between me and the earth. + +9:14 And it shall come to pass, when I bring a cloud over the earth, +that the bow shall be seen in the cloud: 9:15 And I will remember my +covenant, which is between me and you and every living creature of all +flesh; and the waters shall no more become a flood to destroy all +flesh. + +9:16 And the bow shall be in the cloud; and I will look upon it, that +I may remember the everlasting covenant between God and every living +creature of all flesh that is upon the earth. + +9:17 And God said unto Noah, This is the token of the covenant, which +I have established between me and all flesh that is upon the earth. + +9:18 And the sons of Noah, that went forth of the ark, were Shem, and +Ham, and Japheth: and Ham is the father of Canaan. + +9:19 These are the three sons of Noah: and of them was the whole earth +overspread. + +9:20 And Noah began to be an husbandman, and he planted a vineyard: +9:21 And he drank of the wine, and was drunken; and he was uncovered +within his tent. + +9:22 And Ham, the father of Canaan, saw the nakedness of his father, +and told his two brethren without. + +9:23 And Shem and Japheth took a garment, and laid it upon both their +shoulders, and went backward, and covered the nakedness of their +father; and their faces were backward, and they saw not their father's +nakedness. + +9:24 And Noah awoke from his wine, and knew what his younger son had +done unto him. + +9:25 And he said, Cursed be Canaan; a servant of servants shall he be +unto his brethren. + +9:26 And he said, Blessed be the LORD God of Shem; and Canaan shall be +his servant. + +9:27 God shall enlarge Japheth, and he shall dwell in the tents of +Shem; and Canaan shall be his servant. + +9:28 And Noah lived after the flood three hundred and fifty years. + +9:29 And all the days of Noah were nine hundred and fifty years: and +he died. + +10:1 Now these are the generations of the sons of Noah, Shem, Ham, and +Japheth: and unto them were sons born after the flood. + +10:2 The sons of Japheth; Gomer, and Magog, and Madai, and Javan, and +Tubal, and Meshech, and Tiras. + +10:3 And the sons of Gomer; Ashkenaz, and Riphath, and Togarmah. + +10:4 And the sons of Javan; Elishah, and Tarshish, Kittim, and +Dodanim. + +10:5 By these were the isles of the Gentiles divided in their lands; +every one after his tongue, after their families, in their nations. + +10:6 And the sons of Ham; Cush, and Mizraim, and Phut, and Canaan. + +10:7 And the sons of Cush; Seba, and Havilah, and Sabtah, and Raamah, +and Sabtechah: and the sons of Raamah; Sheba, and Dedan. + +10:8 And Cush begat Nimrod: he began to be a mighty one in the earth. + +10:9 He was a mighty hunter before the LORD: wherefore it is said, +Even as Nimrod the mighty hunter before the LORD. + +10:10 And the beginning of his kingdom was Babel, and Erech, and +Accad, and Calneh, in the land of Shinar. + +10:11 Out of that land went forth Asshur, and builded Nineveh, and the +city Rehoboth, and Calah, 10:12 And Resen between Nineveh and Calah: +the same is a great city. + +10:13 And Mizraim begat Ludim, and Anamim, and Lehabim, and Naphtuhim, +10:14 And Pathrusim, and Casluhim, (out of whom came Philistim,) and +Caphtorim. + +10:15 And Canaan begat Sidon his first born, and Heth, 10:16 And the +Jebusite, and the Amorite, and the Girgasite, 10:17 And the Hivite, +and the Arkite, and the Sinite, 10:18 And the Arvadite, and the +Zemarite, and the Hamathite: and afterward were the families of the +Canaanites spread abroad. + +10:19 And the border of the Canaanites was from Sidon, as thou comest +to Gerar, unto Gaza; as thou goest, unto Sodom, and Gomorrah, and +Admah, and Zeboim, even unto Lasha. + +10:20 These are the sons of Ham, after their families, after their +tongues, in their countries, and in their nations. + +10:21 Unto Shem also, the father of all the children of Eber, the +brother of Japheth the elder, even to him were children born. + +10:22 The children of Shem; Elam, and Asshur, and Arphaxad, and Lud, +and Aram. + +10:23 And the children of Aram; Uz, and Hul, and Gether, and Mash. + +10:24 And Arphaxad begat Salah; and Salah begat Eber. + +10:25 And unto Eber were born two sons: the name of one was Peleg; for +in his days was the earth divided; and his brother's name was Joktan. + +10:26 And Joktan begat Almodad, and Sheleph, and Hazarmaveth, and +Jerah, 10:27 And Hadoram, and Uzal, and Diklah, 10:28 And Obal, and +Abimael, and Sheba, 10:29 And Ophir, and Havilah, and Jobab: all these +were the sons of Joktan. + +10:30 And their dwelling was from Mesha, as thou goest unto Sephar a +mount of the east. + +10:31 These are the sons of Shem, after their families, after their +tongues, in their lands, after their nations. + +10:32 These are the families of the sons of Noah, after their +generations, in their nations: and by these were the nations divided +in the earth after the flood. + +11:1 And the whole earth was of one language, and of one speech. + +11:2 And it came to pass, as they journeyed from the east, that they +found a plain in the land of Shinar; and they dwelt there. + +11:3 And they said one to another, Go to, let us make brick, and burn +them thoroughly. And they had brick for stone, and slime had they for +morter. + +11:4 And they said, Go to, let us build us a city and a tower, whose +top may reach unto heaven; and let us make us a name, lest we be +scattered abroad upon the face of the whole earth. + +11:5 And the LORD came down to see the city and the tower, which the +children of men builded. + +11:6 And the LORD said, Behold, the people is one, and they have all +one language; and this they begin to do: and now nothing will be +restrained from them, which they have imagined to do. + +11:7 Go to, let us go down, and there confound their language, that +they may not understand one another's speech. + +11:8 So the LORD scattered them abroad from thence upon the face of +all the earth: and they left off to build the city. + +11:9 Therefore is the name of it called Babel; because the LORD did +there confound the language of all the earth: and from thence did the +LORD scatter them abroad upon the face of all the earth. + +11:10 These are the generations of Shem: Shem was an hundred years +old, and begat Arphaxad two years after the flood: 11:11 And Shem +lived after he begat Arphaxad five hundred years, and begat sons and +daughters. + +11:12 And Arphaxad lived five and thirty years, and begat Salah: 11:13 +And Arphaxad lived after he begat Salah four hundred and three years, +and begat sons and daughters. + +11:14 And Salah lived thirty years, and begat Eber: 11:15 And Salah +lived after he begat Eber four hundred and three years, and begat sons +and daughters. + +11:16 And Eber lived four and thirty years, and begat Peleg: 11:17 And +Eber lived after he begat Peleg four hundred and thirty years, and +begat sons and daughters. + +11:18 And Peleg lived thirty years, and begat Reu: 11:19 And Peleg +lived after he begat Reu two hundred and nine years, and begat sons +and daughters. + +11:20 And Reu lived two and thirty years, and begat Serug: 11:21 And +Reu lived after he begat Serug two hundred and seven years, and begat +sons and daughters. + +11:22 And Serug lived thirty years, and begat Nahor: 11:23 And Serug +lived after he begat Nahor two hundred years, and begat sons and +daughters. + +11:24 And Nahor lived nine and twenty years, and begat Terah: 11:25 +And Nahor lived after he begat Terah an hundred and nineteen years, +and begat sons and daughters. + +11:26 And Terah lived seventy years, and begat Abram, Nahor, and +Haran. + +11:27 Now these are the generations of Terah: Terah begat Abram, +Nahor, and Haran; and Haran begat Lot. + +11:28 And Haran died before his father Terah in the land of his +nativity, in Ur of the Chaldees. + +11:29 And Abram and Nahor took them wives: the name of Abram's wife +was Sarai; and the name of Nahor's wife, Milcah, the daughter of +Haran, the father of Milcah, and the father of Iscah. + +11:30 But Sarai was barren; she had no child. + +11:31 And Terah took Abram his son, and Lot the son of Haran his son's +son, and Sarai his daughter in law, his son Abram's wife; and they +went forth with them from Ur of the Chaldees, to go into the land of +Canaan; and they came unto Haran, and dwelt there. + +11:32 And the days of Terah were two hundred and five years: and Terah +died in Haran. + +12:1 Now the LORD had said unto Abram, Get thee out of thy country, +and from thy kindred, and from thy father's house, unto a land that I +will shew thee: 12:2 And I will make of thee a great nation, and I +will bless thee, and make thy name great; and thou shalt be a +blessing: 12:3 And I will bless them that bless thee, and curse him +that curseth thee: and in thee shall all families of the earth be +blessed. + +12:4 So Abram departed, as the LORD had spoken unto him; and Lot went +with him: and Abram was seventy and five years old when he departed +out of Haran. + +12:5 And Abram took Sarai his wife, and Lot his brother's son, and all +their substance that they had gathered, and the souls that they had +gotten in Haran; and they went forth to go into the land of Canaan; +and into the land of Canaan they came. + +12:6 And Abram passed through the land unto the place of Sichem, unto +the plain of Moreh. And the Canaanite was then in the land. + +12:7 And the LORD appeared unto Abram, and said, Unto thy seed will I +give this land: and there builded he an altar unto the LORD, who +appeared unto him. + +12:8 And he removed from thence unto a mountain on the east of Bethel, +and pitched his tent, having Bethel on the west, and Hai on the east: +and there he builded an altar unto the LORD, and called upon the name +of the LORD. + +12:9 And Abram journeyed, going on still toward the south. + +12:10 And there was a famine in the land: and Abram went down into +Egypt to sojourn there; for the famine was grievous in the land. + +12:11 And it came to pass, when he was come near to enter into Egypt, +that he said unto Sarai his wife, Behold now, I know that thou art a +fair woman to look upon: 12:12 Therefore it shall come to pass, when +the Egyptians shall see thee, that they shall say, This is his wife: +and they will kill me, but they will save thee alive. + +12:13 Say, I pray thee, thou art my sister: that it may be well with +me for thy sake; and my soul shall live because of thee. + +12:14 And it came to pass, that, when Abram was come into Egypt, the +Egyptians beheld the woman that she was very fair. + +12:15 The princes also of Pharaoh saw her, and commended her before +Pharaoh: and the woman was taken into Pharaoh's house. + +12:16 And he entreated Abram well for her sake: and he had sheep, and +oxen, and he asses, and menservants, and maidservants, and she asses, +and camels. + +12:17 And the LORD plagued Pharaoh and his house with great plagues +because of Sarai Abram's wife. + +12:18 And Pharaoh called Abram and said, What is this that thou hast +done unto me? why didst thou not tell me that she was thy wife? 12:19 +Why saidst thou, She is my sister? so I might have taken her to me to +wife: now therefore behold thy wife, take her, and go thy way. + +12:20 And Pharaoh commanded his men concerning him: and they sent him +away, and his wife, and all that he had. + +13:1 And Abram went up out of Egypt, he, and his wife, and all that he +had, and Lot with him, into the south. + +13:2 And Abram was very rich in cattle, in silver, and in gold. + +13:3 And he went on his journeys from the south even to Bethel, unto +the place where his tent had been at the beginning, between Bethel and +Hai; 13:4 Unto the place of the altar, which he had make there at the +first: and there Abram called on the name of the LORD. + +13:5 And Lot also, which went with Abram, had flocks, and herds, and +tents. + +13:6 And the land was not able to bear them, that they might dwell +together: for their substance was great, so that they could not dwell +together. + +13:7 And there was a strife between the herdmen of Abram's cattle and +the herdmen of Lot's cattle: and the Canaanite and the Perizzite +dwelled then in the land. + +13:8 And Abram said unto Lot, Let there be no strife, I pray thee, +between me and thee, and between my herdmen and thy herdmen; for we be +brethren. + +13:9 Is not the whole land before thee? separate thyself, I pray thee, +from me: if thou wilt take the left hand, then I will go to the right; +or if thou depart to the right hand, then I will go to the left. + +13:10 And Lot lifted up his eyes, and beheld all the plain of Jordan, +that it was well watered every where, before the LORD destroyed Sodom +and Gomorrah, even as the garden of the LORD, like the land of Egypt, +as thou comest unto Zoar. + +13:11 Then Lot chose him all the plain of Jordan; and Lot journeyed +east: and they separated themselves the one from the other. + +13:12 Abram dwelled in the land of Canaan, and Lot dwelled in the +cities of the plain, and pitched his tent toward Sodom. + +13:13 But the men of Sodom were wicked and sinners before the LORD +exceedingly. + +13:14 And the LORD said unto Abram, after that Lot was separated from +him, Lift up now thine eyes, and look from the place where thou art +northward, and southward, and eastward, and westward: 13:15 For all +the land which thou seest, to thee will I give it, and to thy seed for +ever. + +13:16 And I will make thy seed as the dust of the earth: so that if a +man can number the dust of the earth, then shall thy seed also be +numbered. + +13:17 Arise, walk through the land in the length of it and in the +breadth of it; for I will give it unto thee. + +13:18 Then Abram removed his tent, and came and dwelt in the plain of +Mamre, which is in Hebron, and built there an altar unto the LORD. + +14:1 And it came to pass in the days of Amraphel king of Shinar, +Arioch king of Ellasar, Chedorlaomer king of Elam, and Tidal king of +nations; 14:2 That these made war with Bera king of Sodom, and with +Birsha king of Gomorrah, Shinab king of Admah, and Shemeber king of +Zeboiim, and the king of Bela, which is Zoar. + +14:3 All these were joined together in the vale of Siddim, which is +the salt sea. + +14:4 Twelve years they served Chedorlaomer, and in the thirteenth year +they rebelled. + +14:5 And in the fourteenth year came Chedorlaomer, and the kings that +were with him, and smote the Rephaims in Ashteroth Karnaim, and the +Zuzims in Ham, and the Emins in Shaveh Kiriathaim, 14:6 And the +Horites in their mount Seir, unto Elparan, which is by the wilderness. + +14:7 And they returned, and came to Enmishpat, which is Kadesh, and +smote all the country of the Amalekites, and also the Amorites, that +dwelt in Hazezontamar. + +14:8 And there went out the king of Sodom, and the king of Gomorrah, +and the king of Admah, and the king of Zeboiim, and the king of Bela +(the same is Zoar;) and they joined battle with them in the vale of +Siddim; 14:9 With Chedorlaomer the king of Elam, and with Tidal king +of nations, and Amraphel king of Shinar, and Arioch king of Ellasar; +four kings with five. + +14:10 And the vale of Siddim was full of slimepits; and the kings of +Sodom and Gomorrah fled, and fell there; and they that remained fled +to the mountain. + +14:11 And they took all the goods of Sodom and Gomorrah, and all their +victuals, and went their way. + +14:12 And they took Lot, Abram's brother's son, who dwelt in Sodom, +and his goods, and departed. + +14:13 And there came one that had escaped, and told Abram the Hebrew; +for he dwelt in the plain of Mamre the Amorite, brother of Eshcol, and +brother of Aner: and these were confederate with Abram. + +14:14 And when Abram heard that his brother was taken captive, he +armed his trained servants, born in his own house, three hundred and +eighteen, and pursued them unto Dan. + +14:15 And he divided himself against them, he and his servants, by +night, and smote them, and pursued them unto Hobah, which is on the +left hand of Damascus. + +14:16 And he brought back all the goods, and also brought again his +brother Lot, and his goods, and the women also, and the people. + +14:17 And the king of Sodom went out to meet him after his return from +the slaughter of Chedorlaomer, and of the kings that were with him, at +the valley of Shaveh, which is the king's dale. + +14:18 And Melchizedek king of Salem brought forth bread and wine: and +he was the priest of the most high God. + +14:19 And he blessed him, and said, Blessed be Abram of the most high +God, possessor of heaven and earth: 14:20 And blessed be the most high +God, which hath delivered thine enemies into thy hand. And he gave him +tithes of all. + +14:21 And the king of Sodom said unto Abram, Give me the persons, and +take the goods to thyself. + +14:22 And Abram said to the king of Sodom, I have lift up mine hand +unto the LORD, the most high God, the possessor of heaven and earth, +14:23 That I will not take from a thread even to a shoelatchet, and +that I will not take any thing that is thine, lest thou shouldest say, +I have made Abram rich: 14:24 Save only that which the young men have +eaten, and the portion of the men which went with me, Aner, Eshcol, +and Mamre; let them take their portion. + +15:1 After these things the word of the LORD came unto Abram in a +vision, saying, Fear not, Abram: I am thy shield, and thy exceeding +great reward. + +15:2 And Abram said, LORD God, what wilt thou give me, seeing I go +childless, and the steward of my house is this Eliezer of Damascus? +15:3 And Abram said, Behold, to me thou hast given no seed: and, lo, +one born in my house is mine heir. + +15:4 And, behold, the word of the LORD came unto him, saying, This +shall not be thine heir; but he that shall come forth out of thine own +bowels shall be thine heir. + +15:5 And he brought him forth abroad, and said, Look now toward +heaven, and tell the stars, if thou be able to number them: and he +said unto him, So shall thy seed be. + +15:6 And he believed in the LORD; and he counted it to him for +righteousness. + +15:7 And he said unto him, I am the LORD that brought thee out of Ur +of the Chaldees, to give thee this land to inherit it. + +15:8 And he said, LORD God, whereby shall I know that I shall inherit +it? 15:9 And he said unto him, Take me an heifer of three years old, +and a she goat of three years old, and a ram of three years old, and a +turtledove, and a young pigeon. + +15:10 And he took unto him all these, and divided them in the midst, +and laid each piece one against another: but the birds divided he not. + +15:11 And when the fowls came down upon the carcases, Abram drove them +away. + +15:12 And when the sun was going down, a deep sleep fell upon Abram; +and, lo, an horror of great darkness fell upon him. + +15:13 And he said unto Abram, Know of a surety that thy seed shall be +a stranger in a land that is not their's, and shall serve them; and +they shall afflict them four hundred years; 15:14 And also that +nation, whom they shall serve, will I judge: and afterward shall they +come out with great substance. + +15:15 And thou shalt go to thy fathers in peace; thou shalt be buried +in a good old age. + +15:16 But in the fourth generation they shall come hither again: for +the iniquity of the Amorites is not yet full. + +15:17 And it came to pass, that, when the sun went down, and it was +dark, behold a smoking furnace, and a burning lamp that passed between +those pieces. + +15:18 In the same day the LORD made a covenant with Abram, saying, +Unto thy seed have I given this land, from the river of Egypt unto the +great river, the river Euphrates: 15:19 The Kenites, and the +Kenizzites, and the Kadmonites, 15:20 And the Hittites, and the +Perizzites, and the Rephaims, 15:21 And the Amorites, and the +Canaanites, and the Girgashites, and the Jebusites. + +16:1 Now Sarai Abram's wife bare him no children: and she had an +handmaid, an Egyptian, whose name was Hagar. + +16:2 And Sarai said unto Abram, Behold now, the LORD hath restrained +me from bearing: I pray thee, go in unto my maid; it may be that I may +obtain children by her. And Abram hearkened to the voice of Sarai. + +16:3 And Sarai Abram's wife took Hagar her maid the Egyptian, after +Abram had dwelt ten years in the land of Canaan, and gave her to her +husband Abram to be his wife. + +16:4 And he went in unto Hagar, and she conceived: and when she saw +that she had conceived, her mistress was despised in her eyes. + +16:5 And Sarai said unto Abram, My wrong be upon thee: I have given my +maid into thy bosom; and when she saw that she had conceived, I was +despised in her eyes: the LORD judge between me and thee. + +16:6 But Abram said unto Sarai, Behold, thy maid is in thine hand; do +to her as it pleaseth thee. And when Sarai dealt hardly with her, she +fled from her face. + +16:7 And the angel of the LORD found her by a fountain of water in the +wilderness, by the fountain in the way to Shur. + +16:8 And he said, Hagar, Sarai's maid, whence camest thou? and whither +wilt thou go? And she said, I flee from the face of my mistress Sarai. + +16:9 And the angel of the LORD said unto her, Return to thy mistress, +and submit thyself under her hands. + +16:10 And the angel of the LORD said unto her, I will multiply thy +seed exceedingly, that it shall not be numbered for multitude. + +16:11 And the angel of the LORD said unto her, Behold, thou art with +child and shalt bear a son, and shalt call his name Ishmael; because +the LORD hath heard thy affliction. + +16:12 And he will be a wild man; his hand will be against every man, +and every man's hand against him; and he shall dwell in the presence +of all his brethren. + +16:13 And she called the name of the LORD that spake unto her, Thou +God seest me: for she said, Have I also here looked after him that +seeth me? 16:14 Wherefore the well was called Beerlahairoi; behold, +it is between Kadesh and Bered. + +16:15 And Hagar bare Abram a son: and Abram called his son's name, +which Hagar bare, Ishmael. + +16:16 And Abram was fourscore and six years old, when Hagar bare +Ishmael to Abram. + +17:1 And when Abram was ninety years old and nine, the LORD appeared +to Abram, and said unto him, I am the Almighty God; walk before me, +and be thou perfect. + +17:2 And I will make my covenant between me and thee, and will +multiply thee exceedingly. + +17:3 And Abram fell on his face: and God talked with him, saying, 17:4 +As for me, behold, my covenant is with thee, and thou shalt be a +father of many nations. + +17:5 Neither shall thy name any more be called Abram, but thy name +shall be Abraham; for a father of many nations have I made thee. + +17:6 And I will make thee exceeding fruitful, and I will make nations +of thee, and kings shall come out of thee. + +17:7 And I will establish my covenant between me and thee and thy seed +after thee in their generations for an everlasting covenant, to be a +God unto thee, and to thy seed after thee. + +17:8 And I will give unto thee, and to thy seed after thee, the land +wherein thou art a stranger, all the land of Canaan, for an +everlasting possession; and I will be their God. + +17:9 And God said unto Abraham, Thou shalt keep my covenant therefore, +thou, and thy seed after thee in their generations. + +17:10 This is my covenant, which ye shall keep, between me and you and +thy seed after thee; Every man child among you shall be circumcised. + +17:11 And ye shall circumcise the flesh of your foreskin; and it shall +be a token of the covenant betwixt me and you. + +17:12 And he that is eight days old shall be circumcised among you, +every man child in your generations, he that is born in the house, or +bought with money of any stranger, which is not of thy seed. + +17:13 He that is born in thy house, and he that is bought with thy +money, must needs be circumcised: and my covenant shall be in your +flesh for an everlasting covenant. + +17:14 And the uncircumcised man child whose flesh of his foreskin is +not circumcised, that soul shall be cut off from his people; he hath +broken my covenant. + +17:15 And God said unto Abraham, As for Sarai thy wife, thou shalt not +call her name Sarai, but Sarah shall her name be. + +17:16 And I will bless her, and give thee a son also of her: yea, I +will bless her, and she shall be a mother of nations; kings of people +shall be of her. + +17:17 Then Abraham fell upon his face, and laughed, and said in his +heart, Shall a child be born unto him that is an hundred years old? +and shall Sarah, that is ninety years old, bear? 17:18 And Abraham +said unto God, O that Ishmael might live before thee! 17:19 And God +said, Sarah thy wife shall bear thee a son indeed; and thou shalt call +his name Isaac: and I will establish my covenant with him for an +everlasting covenant, and with his seed after him. + +17:20 And as for Ishmael, I have heard thee: Behold, I have blessed +him, and will make him fruitful, and will multiply him exceedingly; +twelve princes shall he beget, and I will make him a great nation. + +17:21 But my covenant will I establish with Isaac, which Sarah shall +bear unto thee at this set time in the next year. + +17:22 And he left off talking with him, and God went up from Abraham. + +17:23 And Abraham took Ishmael his son, and all that were born in his +house, and all that were bought with his money, every male among the +men of Abraham's house; and circumcised the flesh of their foreskin in +the selfsame day, as God had said unto him. + +17:24 And Abraham was ninety years old and nine, when he was +circumcised in the flesh of his foreskin. + +17:25 And Ishmael his son was thirteen years old, when he was +circumcised in the flesh of his foreskin. + +17:26 In the selfsame day was Abraham circumcised, and Ishmael his +son. + +17:27 And all the men of his house, born in the house, and bought with +money of the stranger, were circumcised with him. + +18:1 And the LORD appeared unto him in the plains of Mamre: and he sat +in the tent door in the heat of the day; 18:2 And he lift up his eyes +and looked, and, lo, three men stood by him: and when he saw them, he +ran to meet them from the tent door, and bowed himself toward the +ground, 18:3 And said, My LORD, if now I have found favour in thy +sight, pass not away, I pray thee, from thy servant: 18:4 Let a little +water, I pray you, be fetched, and wash your feet, and rest yourselves +under the tree: 18:5 And I will fetch a morsel of bread, and comfort +ye your hearts; after that ye shall pass on: for therefore are ye come +to your servant. And they said, So do, as thou hast said. + +18:6 And Abraham hastened into the tent unto Sarah, and said, Make +ready quickly three measures of fine meal, knead it, and make cakes +upon the hearth. + +18:7 And Abraham ran unto the herd, and fetcht a calf tender and good, +and gave it unto a young man; and he hasted to dress it. + +18:8 And he took butter, and milk, and the calf which he had dressed, +and set it before them; and he stood by them under the tree, and they +did eat. + +18:9 And they said unto him, Where is Sarah thy wife? And he said, +Behold, in the tent. + +18:10 And he said, I will certainly return unto thee according to the +time of life; and, lo, Sarah thy wife shall have a son. And Sarah +heard it in the tent door, which was behind him. + +18:11 Now Abraham and Sarah were old and well stricken in age; and it +ceased to be with Sarah after the manner of women. + +18:12 Therefore Sarah laughed within herself, saying, After I am waxed +old shall I have pleasure, my lord being old also? 18:13 And the LORD +said unto Abraham, Wherefore did Sarah laugh, saying, Shall I of a +surety bear a child, which am old? 18:14 Is any thing too hard for +the LORD? At the time appointed I will return unto thee, according to +the time of life, and Sarah shall have a son. + +18:15 Then Sarah denied, saying, I laughed not; for she was afraid. +And he said, Nay; but thou didst laugh. + +18:16 And the men rose up from thence, and looked toward Sodom: and +Abraham went with them to bring them on the way. + +18:17 And the LORD said, Shall I hide from Abraham that thing which I +do; 18:18 Seeing that Abraham shall surely become a great and mighty +nation, and all the nations of the earth shall be blessed in him? +18:19 For I know him, that he will command his children and his +household after him, and they shall keep the way of the LORD, to do +justice and judgment; that the LORD may bring upon Abraham that which +he hath spoken of him. + +18:20 And the LORD said, Because the cry of Sodom and Gomorrah is +great, and because their sin is very grievous; 18:21 I will go down +now, and see whether they have done altogether according to the cry of +it, which is come unto me; and if not, I will know. + +18:22 And the men turned their faces from thence, and went toward +Sodom: but Abraham stood yet before the LORD. + +18:23 And Abraham drew near, and said, Wilt thou also destroy the +righteous with the wicked? 18:24 Peradventure there be fifty +righteous within the city: wilt thou also destroy and not spare the +place for the fifty righteous that are therein? 18:25 That be far +from thee to do after this manner, to slay the righteous with the +wicked: and that the righteous should be as the wicked, that be far +from thee: Shall not the Judge of all the earth do right? 18:26 And +the LORD said, If I find in Sodom fifty righteous within the city, +then I will spare all the place for their sakes. + +18:27 And Abraham answered and said, Behold now, I have taken upon me +to speak unto the LORD, which am but dust and ashes: 18:28 +Peradventure there shall lack five of the fifty righteous: wilt thou +destroy all the city for lack of five? And he said, If I find there +forty and five, I will not destroy it. + +18:29 And he spake unto him yet again, and said, Peradventure there +shall be forty found there. And he said, I will not do it for forty's +sake. + +18:30 And he said unto him, Oh let not the LORD be angry, and I will +speak: Peradventure there shall thirty be found there. And he said, I +will not do it, if I find thirty there. + +18:31 And he said, Behold now, I have taken upon me to speak unto the +LORD: Peradventure there shall be twenty found there. And he said, I +will not destroy it for twenty's sake. + +18:32 And he said, Oh let not the LORD be angry, and I will speak yet +but this once: Peradventure ten shall be found there. And he said, I +will not destroy it for ten's sake. + +18:33 And the LORD went his way, as soon as he had left communing with +Abraham: and Abraham returned unto his place. + +19:1 And there came two angels to Sodom at even; and Lot sat in the +gate of Sodom: and Lot seeing them rose up to meet them; and he bowed +himself with his face toward the ground; 19:2 And he said, Behold now, +my lords, turn in, I pray you, into your servant's house, and tarry +all night, and wash your feet, and ye shall rise up early, and go on +your ways. And they said, Nay; but we will abide in the street all +night. + +19:3 And he pressed upon them greatly; and they turned in unto him, +and entered into his house; and he made them a feast, and did bake +unleavened bread, and they did eat. + +19:4 But before they lay down, the men of the city, even the men of +Sodom, compassed the house round, both old and young, all the people +from every quarter: 19:5 And they called unto Lot, and said unto him, +Where are the men which came in to thee this night? bring them out +unto us, that we may know them. + +19:6 And Lot went out at the door unto them, and shut the door after +him, 19:7 And said, I pray you, brethren, do not so wickedly. + +19:8 Behold now, I have two daughters which have not known man; let +me, I pray you, bring them out unto you, and do ye to them as is good +in your eyes: only unto these men do nothing; for therefore came they +under the shadow of my roof. + +19:9 And they said, Stand back. And they said again, This one fellow +came in to sojourn, and he will needs be a judge: now will we deal +worse with thee, than with them. And they pressed sore upon the man, +even Lot, and came near to break the door. + +19:10 But the men put forth their hand, and pulled Lot into the house +to them, and shut to the door. + +19:11 And they smote the men that were at the door of the house with +blindness, both small and great: so that they wearied themselves to +find the door. + +19:12 And the men said unto Lot, Hast thou here any besides? son in +law, and thy sons, and thy daughters, and whatsoever thou hast in the +city, bring them out of this place: 19:13 For we will destroy this +place, because the cry of them is waxen great before the face of the +LORD; and the LORD hath sent us to destroy it. + +19:14 And Lot went out, and spake unto his sons in law, which married +his daughters, and said, Up, get you out of this place; for the LORD +will destroy this city. But he seemed as one that mocked unto his sons +in law. + +19:15 And when the morning arose, then the angels hastened Lot, +saying, Arise, take thy wife, and thy two daughters, which are here; +lest thou be consumed in the iniquity of the city. + +19:16 And while he lingered, the men laid hold upon his hand, and upon +the hand of his wife, and upon the hand of his two daughters; the LORD +being merciful unto him: and they brought him forth, and set him +without the city. + +19:17 And it came to pass, when they had brought them forth abroad, +that he said, Escape for thy life; look not behind thee, neither stay +thou in all the plain; escape to the mountain, lest thou be consumed. + +19:18 And Lot said unto them, Oh, not so, my LORD: 19:19 Behold now, +thy servant hath found grace in thy sight, and thou hast magnified thy +mercy, which thou hast shewed unto me in saving my life; and I cannot +escape to the mountain, lest some evil take me, and I die: 19:20 +Behold now, this city is near to flee unto, and it is a little one: +Oh, let me escape thither, (is it not a little one?) and my soul shall +live. + +19:21 And he said unto him, See, I have accepted thee concerning this +thing also, that I will not overthrow this city, for the which thou +hast spoken. + +19:22 Haste thee, escape thither; for I cannot do anything till thou +be come thither. Therefore the name of the city was called Zoar. + +19:23 The sun was risen upon the earth when Lot entered into Zoar. + +19:24 Then the LORD rained upon Sodom and upon Gomorrah brimstone and +fire from the LORD out of heaven; 19:25 And he overthrew those cities, +and all the plain, and all the inhabitants of the cities, and that +which grew upon the ground. + +19:26 But his wife looked back from behind him, and she became a +pillar of salt. + +19:27 And Abraham gat up early in the morning to the place where he +stood before the LORD: 19:28 And he looked toward Sodom and Gomorrah, +and toward all the land of the plain, and beheld, and, lo, the smoke +of the country went up as the smoke of a furnace. + +19:29 And it came to pass, when God destroyed the cities of the plain, +that God remembered Abraham, and sent Lot out of the midst of the +overthrow, when he overthrew the cities in the which Lot dwelt. + +19:30 And Lot went up out of Zoar, and dwelt in the mountain, and his +two daughters with him; for he feared to dwell in Zoar: and he dwelt +in a cave, he and his two daughters. + +19:31 And the firstborn said unto the younger, Our father is old, and +there is not a man in the earth to come in unto us after the manner of +all the earth: 19:32 Come, let us make our father drink wine, and we +will lie with him, that we may preserve seed of our father. + +19:33 And they made their father drink wine that night: and the +firstborn went in, and lay with her father; and he perceived not when +she lay down, nor when she arose. + +19:34 And it came to pass on the morrow, that the firstborn said unto +the younger, Behold, I lay yesternight with my father: let us make him +drink wine this night also; and go thou in, and lie with him, that we +may preserve seed of our father. + +19:35 And they made their father drink wine that night also: and the +younger arose, and lay with him; and he perceived not when she lay +down, nor when she arose. + +19:36 Thus were both the daughters of Lot with child by their father. + +19:37 And the first born bare a son, and called his name Moab: the +same is the father of the Moabites unto this day. + +19:38 And the younger, she also bare a son, and called his name +Benammi: the same is the father of the children of Ammon unto this +day. + +20:1 And Abraham journeyed from thence toward the south country, and +dwelled between Kadesh and Shur, and sojourned in Gerar. + +20:2 And Abraham said of Sarah his wife, She is my sister: and +Abimelech king of Gerar sent, and took Sarah. + +20:3 But God came to Abimelech in a dream by night, and said to him, +Behold, thou art but a dead man, for the woman which thou hast taken; +for she is a man's wife. + +20:4 But Abimelech had not come near her: and he said, LORD, wilt thou +slay also a righteous nation? 20:5 Said he not unto me, She is my +sister? and she, even she herself said, He is my brother: in the +integrity of my heart and innocency of my hands have I done this. + +20:6 And God said unto him in a dream, Yea, I know that thou didst +this in the integrity of thy heart; for I also withheld thee from +sinning against me: therefore suffered I thee not to touch her. + +20:7 Now therefore restore the man his wife; for he is a prophet, and +he shall pray for thee, and thou shalt live: and if thou restore her +not, know thou that thou shalt surely die, thou, and all that are +thine. + +20:8 Therefore Abimelech rose early in the morning, and called all his +servants, and told all these things in their ears: and the men were +sore afraid. + +20:9 Then Abimelech called Abraham, and said unto him, What hast thou +done unto us? and what have I offended thee, that thou hast brought on +me and on my kingdom a great sin? thou hast done deeds unto me that +ought not to be done. + +20:10 And Abimelech said unto Abraham, What sawest thou, that thou +hast done this thing? 20:11 And Abraham said, Because I thought, +Surely the fear of God is not in this place; and they will slay me for +my wife's sake. + +20:12 And yet indeed she is my sister; she is the daughter of my +father, but not the daughter of my mother; and she became my wife. + +20:13 And it came to pass, when God caused me to wander from my +father's house, that I said unto her, This is thy kindness which thou +shalt shew unto me; at every place whither we shall come, say of me, +He is my brother. + +20:14 And Abimelech took sheep, and oxen, and menservants, and +womenservants, and gave them unto Abraham, and restored him Sarah his +wife. + +20:15 And Abimelech said, Behold, my land is before thee: dwell where +it pleaseth thee. + +20:16 And unto Sarah he said, Behold, I have given thy brother a +thousand pieces of silver: behold, he is to thee a covering of the +eyes, unto all that are with thee, and with all other: thus she was +reproved. + +20:17 So Abraham prayed unto God: and God healed Abimelech, and his +wife, and his maidservants; and they bare children. + +20:18 For the LORD had fast closed up all the wombs of the house of +Abimelech, because of Sarah Abraham's wife. + +21:1 And the LORD visited Sarah as he had said, and the LORD did unto +Sarah as he had spoken. + +21:2 For Sarah conceived, and bare Abraham a son in his old age, at +the set time of which God had spoken to him. + +21:3 And Abraham called the name of his son that was born unto him, +whom Sarah bare to him, Isaac. + +21:4 And Abraham circumcised his son Isaac being eight days old, as +God had commanded him. + +21:5 And Abraham was an hundred years old, when his son Isaac was born +unto him. + +21:6 And Sarah said, God hath made me to laugh, so that all that hear +will laugh with me. + +21:7 And she said, Who would have said unto Abraham, that Sarah should +have given children suck? for I have born him a son in his old age. + +21:8 And the child grew, and was weaned: and Abraham made a great +feast the same day that Isaac was weaned. + +21:9 And Sarah saw the son of Hagar the Egyptian, which she had born +unto Abraham, mocking. + +21:10 Wherefore she said unto Abraham, Cast out this bondwoman and her +son: for the son of this bondwoman shall not be heir with my son, even +with Isaac. + +21:11 And the thing was very grievous in Abraham's sight because of +his son. + +21:12 And God said unto Abraham, Let it not be grievous in thy sight +because of the lad, and because of thy bondwoman; in all that Sarah +hath said unto thee, hearken unto her voice; for in Isaac shall thy +seed be called. + +21:13 And also of the son of the bondwoman will I make a nation, +because he is thy seed. + +21:14 And Abraham rose up early in the morning, and took bread, and a +bottle of water, and gave it unto Hagar, putting it on her shoulder, +and the child, and sent her away: and she departed, and wandered in +the wilderness of Beersheba. + +21:15 And the water was spent in the bottle, and she cast the child +under one of the shrubs. + +21:16 And she went, and sat her down over against him a good way off, +as it were a bow shot: for she said, Let me not see the death of the +child. And she sat over against him, and lift up her voice, and wept. + +21:17 And God heard the voice of the lad; and the angel of God called +to Hagar out of heaven, and said unto her, What aileth thee, Hagar? +fear not; for God hath heard the voice of the lad where he is. + +21:18 Arise, lift up the lad, and hold him in thine hand; for I will +make him a great nation. + +21:19 And God opened her eyes, and she saw a well of water; and she +went, and filled the bottle with water, and gave the lad drink. + +21:20 And God was with the lad; and he grew, and dwelt in the +wilderness, and became an archer. + +21:21 And he dwelt in the wilderness of Paran: and his mother took him +a wife out of the land of Egypt. + +21:22 And it came to pass at that time, that Abimelech and Phichol the +chief captain of his host spake unto Abraham, saying, God is with thee +in all that thou doest: 21:23 Now therefore swear unto me here by God +that thou wilt not deal falsely with me, nor with my son, nor with my +son's son: but according to the kindness that I have done unto thee, +thou shalt do unto me, and to the land wherein thou hast sojourned. + +21:24 And Abraham said, I will swear. + +21:25 And Abraham reproved Abimelech because of a well of water, which +Abimelech's servants had violently taken away. + +21:26 And Abimelech said, I wot not who hath done this thing; neither +didst thou tell me, neither yet heard I of it, but to day. + +21:27 And Abraham took sheep and oxen, and gave them unto Abimelech; +and both of them made a covenant. + +21:28 And Abraham set seven ewe lambs of the flock by themselves. + +21:29 And Abimelech said unto Abraham, What mean these seven ewe lambs +which thou hast set by themselves? 21:30 And he said, For these seven +ewe lambs shalt thou take of my hand, that they may be a witness unto +me, that I have digged this well. + +21:31 Wherefore he called that place Beersheba; because there they +sware both of them. + +21:32 Thus they made a covenant at Beersheba: then Abimelech rose up, +and Phichol the chief captain of his host, and they returned into the +land of the Philistines. + +21:33 And Abraham planted a grove in Beersheba, and called there on +the name of the LORD, the everlasting God. + +21:34 And Abraham sojourned in the Philistines' land many days. + +22:1 And it came to pass after these things, that God did tempt +Abraham, and said unto him, Abraham: and he said, Behold, here I am. + +22:2 And he said, Take now thy son, thine only son Isaac, whom thou +lovest, and get thee into the land of Moriah; and offer him there for +a burnt offering upon one of the mountains which I will tell thee of. + +22:3 And Abraham rose up early in the morning, and saddled his ass, +and took two of his young men with him, and Isaac his son, and clave +the wood for the burnt offering, and rose up, and went unto the place +of which God had told him. + +22:4 Then on the third day Abraham lifted up his eyes, and saw the +place afar off. + +22:5 And Abraham said unto his young men, Abide ye here with the ass; +and I and the lad will go yonder and worship, and come again to you. + +22:6 And Abraham took the wood of the burnt offering, and laid it upon +Isaac his son; and he took the fire in his hand, and a knife; and they +went both of them together. + +22:7 And Isaac spake unto Abraham his father, and said, My father: and +he said, Here am I, my son. And he said, Behold the fire and the wood: +but where is the lamb for a burnt offering? 22:8 And Abraham said, My +son, God will provide himself a lamb for a burnt offering: so they +went both of them together. + +22:9 And they came to the place which God had told him of; and Abraham +built an altar there, and laid the wood in order, and bound Isaac his +son, and laid him on the altar upon the wood. + +22:10 And Abraham stretched forth his hand, and took the knife to slay +his son. + +22:11 And the angel of the LORD called unto him out of heaven, and +said, Abraham, Abraham: and he said, Here am I. + +22:12 And he said, Lay not thine hand upon the lad, neither do thou +any thing unto him: for now I know that thou fearest God, seeing thou +hast not withheld thy son, thine only son from me. + +22:13 And Abraham lifted up his eyes, and looked, and behold behind +him a ram caught in a thicket by his horns: and Abraham went and took +the ram, and offered him up for a burnt offering in the stead of his +son. + +22:14 And Abraham called the name of that place Jehovahjireh: as it is +said to this day, In the mount of the LORD it shall be seen. + +22:15 And the angel of the LORD called unto Abraham out of heaven the +second time, 22:16 And said, By myself have I sworn, saith the LORD, +for because thou hast done this thing, and hast not withheld thy son, +thine only son: 22:17 That in blessing I will bless thee, and in +multiplying I will multiply thy seed as the stars of the heaven, and +as the sand which is upon the sea shore; and thy seed shall possess +the gate of his enemies; 22:18 And in thy seed shall all the nations +of the earth be blessed; because thou hast obeyed my voice. + +22:19 So Abraham returned unto his young men, and they rose up and +went together to Beersheba; and Abraham dwelt at Beersheba. + +22:20 And it came to pass after these things, that it was told +Abraham, saying, Behold, Milcah, she hath also born children unto thy +brother Nahor; 22:21 Huz his firstborn, and Buz his brother, and +Kemuel the father of Aram, 22:22 And Chesed, and Hazo, and Pildash, +and Jidlaph, and Bethuel. + +22:23 And Bethuel begat Rebekah: these eight Milcah did bear to Nahor, +Abraham's brother. + +22:24 And his concubine, whose name was Reumah, she bare also Tebah, +and Gaham, and Thahash, and Maachah. + +23:1 And Sarah was an hundred and seven and twenty years old: these +were the years of the life of Sarah. + +23:2 And Sarah died in Kirjatharba; the same is Hebron in the land of +Canaan: and Abraham came to mourn for Sarah, and to weep for her. + +23:3 And Abraham stood up from before his dead, and spake unto the +sons of Heth, saying, 23:4 I am a stranger and a sojourner with you: +give me a possession of a buryingplace with you, that I may bury my +dead out of my sight. + +23:5 And the children of Heth answered Abraham, saying unto him, 23:6 +Hear us, my lord: thou art a mighty prince among us: in the choice of +our sepulchres bury thy dead; none of us shall withhold from thee his +sepulchre, but that thou mayest bury thy dead. + +23:7 And Abraham stood up, and bowed himself to the people of the +land, even to the children of Heth. + +23:8 And he communed with them, saying, If it be your mind that I +should bury my dead out of my sight; hear me, and intreat for me to +Ephron the son of Zohar, 23:9 That he may give me the cave of +Machpelah, which he hath, which is in the end of his field; for as +much money as it is worth he shall give it me for a possession of a +buryingplace amongst you. + +23:10 And Ephron dwelt among the children of Heth: and Ephron the +Hittite answered Abraham in the audience of the children of Heth, even +of all that went in at the gate of his city, saying, 23:11 Nay, my +lord, hear me: the field give I thee, and the cave that is therein, I +give it thee; in the presence of the sons of my people give I it thee: +bury thy dead. + +23:12 And Abraham bowed down himself before the people of the land. + +23:13 And he spake unto Ephron in the audience of the people of the +land, saying, But if thou wilt give it, I pray thee, hear me: I will +give thee money for the field; take it of me, and I will bury my dead +there. + +23:14 And Ephron answered Abraham, saying unto him, 23:15 My lord, +hearken unto me: the land is worth four hundred shekels of silver; +what is that betwixt me and thee? bury therefore thy dead. + +23:16 And Abraham hearkened unto Ephron; and Abraham weighed to Ephron +the silver, which he had named in the audience of the sons of Heth, +four hundred shekels of silver, current money with the merchant. + +23:17 And the field of Ephron which was in Machpelah, which was before +Mamre, the field, and the cave which was therein, and all the trees +that were in the field, that were in all the borders round about, were +made sure 23:18 Unto Abraham for a possession in the presence of the +children of Heth, before all that went in at the gate of his city. + +23:19 And after this, Abraham buried Sarah his wife in the cave of the +field of Machpelah before Mamre: the same is Hebron in the land of +Canaan. + +23:20 And the field, and the cave that is therein, were made sure unto +Abraham for a possession of a buryingplace by the sons of Heth. + +24:1 And Abraham was old, and well stricken in age: and the LORD had +blessed Abraham in all things. + +24:2 And Abraham said unto his eldest servant of his house, that ruled +over all that he had, Put, I pray thee, thy hand under my thigh: 24:3 +And I will make thee swear by the LORD, the God of heaven, and the God +of the earth, that thou shalt not take a wife unto my son of the +daughters of the Canaanites, among whom I dwell: 24:4 But thou shalt +go unto my country, and to my kindred, and take a wife unto my son +Isaac. + +24:5 And the servant said unto him, Peradventure the woman will not be +willing to follow me unto this land: must I needs bring thy son again +unto the land from whence thou camest? 24:6 And Abraham said unto +him, Beware thou that thou bring not my son thither again. + +24:7 The LORD God of heaven, which took me from my father's house, and +from the land of my kindred, and which spake unto me, and that sware +unto me, saying, Unto thy seed will I give this land; he shall send +his angel before thee, and thou shalt take a wife unto my son from +thence. + +24:8 And if the woman will not be willing to follow thee, then thou +shalt be clear from this my oath: only bring not my son thither again. + +24:9 And the servant put his hand under the thigh of Abraham his +master, and sware to him concerning that matter. + +24:10 And the servant took ten camels of the camels of his master, and +departed; for all the goods of his master were in his hand: and he +arose, and went to Mesopotamia, unto the city of Nahor. + +24:11 And he made his camels to kneel down without the city by a well +of water at the time of the evening, even the time that women go out +to draw water. + +24:12 And he said O LORD God of my master Abraham, I pray thee, send +me good speed this day, and shew kindness unto my master Abraham. + +24:13 Behold, I stand here by the well of water; and the daughters of +the men of the city come out to draw water: 24:14 And let it come to +pass, that the damsel to whom I shall say, Let down thy pitcher, I +pray thee, that I may drink; and she shall say, Drink, and I will give +thy camels drink also: let the same be she that thou hast appointed +for thy servant Isaac; and thereby shall I know that thou hast shewed +kindness unto my master. + +24:15 And it came to pass, before he had done speaking, that, behold, +Rebekah came out, who was born to Bethuel, son of Milcah, the wife of +Nahor, Abraham's brother, with her pitcher upon her shoulder. + +24:16 And the damsel was very fair to look upon, a virgin, neither had +any man known her: and she went down to the well, and filled her +pitcher, and came up. + +24:17 And the servant ran to meet her, and said, Let me, I pray thee, +drink a little water of thy pitcher. + +24:18 And she said, Drink, my lord: and she hasted, and let down her +pitcher upon her hand, and gave him drink. + +24:19 And when she had done giving him drink, she said, I will draw +water for thy camels also, until they have done drinking. + +24:20 And she hasted, and emptied her pitcher into the trough, and ran +again unto the well to draw water, and drew for all his camels. + +24:21 And the man wondering at her held his peace, to wit whether the +LORD had made his journey prosperous or not. + +24:22 And it came to pass, as the camels had done drinking, that the +man took a golden earring of half a shekel weight, and two bracelets +for her hands of ten shekels weight of gold; 24:23 And said, Whose +daughter art thou? tell me, I pray thee: is there room in thy father's +house for us to lodge in? 24:24 And she said unto him, I am the +daughter of Bethuel the son of Milcah, which she bare unto Nahor. + +24:25 She said moreover unto him, We have both straw and provender +enough, and room to lodge in. + +24:26 And the man bowed down his head, and worshipped the LORD. + +24:27 And he said, Blessed be the LORD God of my master Abraham, who +hath not left destitute my master of his mercy and his truth: I being +in the way, the LORD led me to the house of my master's brethren. + +24:28 And the damsel ran, and told them of her mother's house these +things. + +24:29 And Rebekah had a brother, and his name was Laban: and Laban ran +out unto the man, unto the well. + +24:30 And it came to pass, when he saw the earring and bracelets upon +his sister's hands, and when he heard the words of Rebekah his sister, +saying, Thus spake the man unto me; that he came unto the man; and, +behold, he stood by the camels at the well. + +24:31 And he said, Come in, thou blessed of the LORD; wherefore +standest thou without? for I have prepared the house, and room for the +camels. + +24:32 And the man came into the house: and he ungirded his camels, and +gave straw and provender for the camels, and water to wash his feet, +and the men's feet that were with him. + +24:33 And there was set meat before him to eat: but he said, I will +not eat, until I have told mine errand. And he said, Speak on. + +24:34 And he said, I am Abraham's servant. + +24:35 And the LORD hath blessed my master greatly; and he is become +great: and he hath given him flocks, and herds, and silver, and gold, +and menservants, and maidservants, and camels, and asses. + +24:36 And Sarah my master's wife bare a son to my master when she was +old: and unto him hath he given all that he hath. + +24:37 And my master made me swear, saying, Thou shalt not take a wife +to my son of the daughters of the Canaanites, in whose land I dwell: +24:38 But thou shalt go unto my father's house, and to my kindred, and +take a wife unto my son. + +24:39 And I said unto my master, Peradventure the woman will not +follow me. + +24:40 And he said unto me, The LORD, before whom I walk, will send his +angel with thee, and prosper thy way; and thou shalt take a wife for +my son of my kindred, and of my father's house: 24:41 Then shalt thou +be clear from this my oath, when thou comest to my kindred; and if +they give not thee one, thou shalt be clear from my oath. + +24:42 And I came this day unto the well, and said, O LORD God of my +master Abraham, if now thou do prosper my way which I go: 24:43 +Behold, I stand by the well of water; and it shall come to pass, that +when the virgin cometh forth to draw water, and I say to her, Give me, +I pray thee, a little water of thy pitcher to drink; 24:44 And she say +to me, Both drink thou, and I will also draw for thy camels: let the +same be the woman whom the LORD hath appointed out for my master's +son. + +24:45 And before I had done speaking in mine heart, behold, Rebekah +came forth with her pitcher on her shoulder; and she went down unto +the well, and drew water: and I said unto her, Let me drink, I pray +thee. + +24:46 And she made haste, and let down her pitcher from her shoulder, +and said, Drink, and I will give thy camels drink also: so I drank, +and she made the camels drink also. + +24:47 And I asked her, and said, Whose daughter art thou? And she +said, the daughter of Bethuel, Nahor's son, whom Milcah bare unto him: +and I put the earring upon her face, and the bracelets upon her hands. + +24:48 And I bowed down my head, and worshipped the LORD, and blessed +the LORD God of my master Abraham, which had led me in the right way +to take my master's brother's daughter unto his son. + +24:49 And now if ye will deal kindly and truly with my master, tell +me: and if not, tell me; that I may turn to the right hand, or to the +left. + +24:50 Then Laban and Bethuel answered and said, The thing proceedeth +from the LORD: we cannot speak unto thee bad or good. + +24:51 Behold, Rebekah is before thee, take her, and go, and let her be +thy master's son's wife, as the LORD hath spoken. + +24:52 And it came to pass, that, when Abraham's servant heard their +words, he worshipped the LORD, bowing himself to the earth. + +24:53 And the servant brought forth jewels of silver, and jewels of +gold, and raiment, and gave them to Rebekah: he gave also to her +brother and to her mother precious things. + +24:54 And they did eat and drink, he and the men that were with him, +and tarried all night; and they rose up in the morning, and he said, +Send me away unto my master. + +24:55 And her brother and her mother said, Let the damsel abide with +us a few days, at the least ten; after that she shall go. + +24:56 And he said unto them, Hinder me not, seeing the LORD hath +prospered my way; send me away that I may go to my master. + +24:57 And they said, We will call the damsel, and enquire at her +mouth. + +24:58 And they called Rebekah, and said unto her, Wilt thou go with +this man? And she said, I will go. + +24:59 And they sent away Rebekah their sister, and her nurse, and +Abraham's servant, and his men. + +24:60 And they blessed Rebekah, and said unto her, Thou art our +sister, be thou the mother of thousands of millions, and let thy seed +possess the gate of those which hate them. + +24:61 And Rebekah arose, and her damsels, and they rode upon the +camels, and followed the man: and the servant took Rebekah, and went +his way. + +24:62 And Isaac came from the way of the well Lahairoi; for he dwelt +in the south country. + +24:63 And Isaac went out to meditate in the field at the eventide: and +he lifted up his eyes, and saw, and, behold, the camels were coming. + +24:64 And Rebekah lifted up her eyes, and when she saw Isaac, she +lighted off the camel. + +24:65 For she had said unto the servant, What man is this that walketh +in the field to meet us? And the servant had said, It is my master: +therefore she took a vail, and covered herself. + +24:66 And the servant told Isaac all things that he had done. + +24:67 And Isaac brought her into his mother Sarah's tent, and took +Rebekah, and she became his wife; and he loved her: and Isaac was +comforted after his mother's death. + +25:1 Then again Abraham took a wife, and her name was Keturah. + +25:2 And she bare him Zimran, and Jokshan, and Medan, and Midian, and +Ishbak, and Shuah. + +25:3 And Jokshan begat Sheba, and Dedan. And the sons of Dedan were +Asshurim, and Letushim, and Leummim. + +25:4 And the sons of Midian; Ephah, and Epher, and Hanoch, and Abidah, +and Eldaah. All these were the children of Keturah. + +25:5 And Abraham gave all that he had unto Isaac. + +25:6 But unto the sons of the concubines, which Abraham had, Abraham +gave gifts, and sent them away from Isaac his son, while he yet lived, +eastward, unto the east country. + +25:7 And these are the days of the years of Abraham's life which he +lived, an hundred threescore and fifteen years. + +25:8 Then Abraham gave up the ghost, and died in a good old age, an +old man, and full of years; and was gathered to his people. + +25:9 And his sons Isaac and Ishmael buried him in the cave of +Machpelah, in the field of Ephron the son of Zohar the Hittite, which +is before Mamre; 25:10 The field which Abraham purchased of the sons +of Heth: there was Abraham buried, and Sarah his wife. + +25:11 And it came to pass after the death of Abraham, that God blessed +his son Isaac; and Isaac dwelt by the well Lahairoi. + +25:12 Now these are the generations of Ishmael, Abraham's son, whom +Hagar the Egyptian, Sarah's handmaid, bare unto Abraham: 25:13 And +these are the names of the sons of Ishmael, by their names, according +to their generations: the firstborn of Ishmael, Nebajoth; and Kedar, +and Adbeel, and Mibsam, 25:14 And Mishma, and Dumah, and Massa, 25:15 +Hadar, and Tema, Jetur, Naphish, and Kedemah: 25:16 These are the sons +of Ishmael, and these are their names, by their towns, and by their +castles; twelve princes according to their nations. + +25:17 And these are the years of the life of Ishmael, an hundred and +thirty and seven years: and he gave up the ghost and died; and was +gathered unto his people. + +25:18 And they dwelt from Havilah unto Shur, that is before Egypt, as +thou goest toward Assyria: and he died in the presence of all his +brethren. + +25:19 And these are the generations of Isaac, Abraham's son: Abraham +begat Isaac: 25:20 And Isaac was forty years old when he took Rebekah +to wife, the daughter of Bethuel the Syrian of Padanaram, the sister +to Laban the Syrian. + +25:21 And Isaac intreated the LORD for his wife, because she was +barren: and the LORD was intreated of him, and Rebekah his wife +conceived. + +25:22 And the children struggled together within her; and she said, If +it be so, why am I thus? And she went to enquire of the LORD. + +25:23 And the LORD said unto her, Two nations are in thy womb, and two +manner of people shall be separated from thy bowels; and the one +people shall be stronger than the other people; and the elder shall +serve the younger. + +25:24 And when her days to be delivered were fulfilled, behold, there +were twins in her womb. + +25:25 And the first came out red, all over like an hairy garment; and +they called his name Esau. + +25:26 And after that came his brother out, and his hand took hold on +Esau's heel; and his name was called Jacob: and Isaac was threescore +years old when she bare them. + +25:27 And the boys grew: and Esau was a cunning hunter, a man of the +field; and Jacob was a plain man, dwelling in tents. + +25:28 And Isaac loved Esau, because he did eat of his venison: but +Rebekah loved Jacob. + +25:29 And Jacob sod pottage: and Esau came from the field, and he was +faint: 25:30 And Esau said to Jacob, Feed me, I pray thee, with that +same red pottage; for I am faint: therefore was his name called Edom. + +25:31 And Jacob said, Sell me this day thy birthright. + +25:32 And Esau said, Behold, I am at the point to die: and what profit +shall this birthright do to me? 25:33 And Jacob said, Swear to me +this day; and he sware unto him: and he sold his birthright unto +Jacob. + +25:34 Then Jacob gave Esau bread and pottage of lentiles; and he did +eat and drink, and rose up, and went his way: thus Esau despised his +birthright. + +26:1 And there was a famine in the land, beside the first famine that +was in the days of Abraham. And Isaac went unto Abimelech king of the +Philistines unto Gerar. + +26:2 And the LORD appeared unto him, and said, Go not down into Egypt; +dwell in the land which I shall tell thee of: 26:3 Sojourn in this +land, and I will be with thee, and will bless thee; for unto thee, and +unto thy seed, I will give all these countries, and I will perform the +oath which I sware unto Abraham thy father; 26:4 And I will make thy +seed to multiply as the stars of heaven, and will give unto thy seed +all these countries; and in thy seed shall all the nations of the +earth be blessed; 26:5 Because that Abraham obeyed my voice, and kept +my charge, my commandments, my statutes, and my laws. + +26:6 And Isaac dwelt in Gerar: 26:7 And the men of the place asked him +of his wife; and he said, She is my sister: for he feared to say, She +is my wife; lest, said he, the men of the place should kill me for +Rebekah; because she was fair to look upon. + +26:8 And it came to pass, when he had been there a long time, that +Abimelech king of the Philistines looked out at a window, and saw, +and, behold, Isaac was sporting with Rebekah his wife. + +26:9 And Abimelech called Isaac, and said, Behold, of a surety she is +thy wife; and how saidst thou, She is my sister? And Isaac said unto +him, Because I said, Lest I die for her. + +26:10 And Abimelech said, What is this thou hast done unto us? one of +the people might lightly have lien with thy wife, and thou shouldest +have brought guiltiness upon us. + +26:11 And Abimelech charged all his people, saying, He that toucheth +this man or his wife shall surely be put to death. + +26:12 Then Isaac sowed in that land, and received in the same year an +hundredfold: and the LORD blessed him. + +26:13 And the man waxed great, and went forward, and grew until he +became very great: 26:14 For he had possession of flocks, and +possession of herds, and great store of servants: and the Philistines +envied him. + +26:15 For all the wells which his father's servants had digged in the +days of Abraham his father, the Philistines had stopped them, and +filled them with earth. + +26:16 And Abimelech said unto Isaac, Go from us; for thou art much +mightier than we. + +26:17 And Isaac departed thence, and pitched his tent in the valley of +Gerar, and dwelt there. + +26:18 And Isaac digged again the wells of water, which they had digged +in the days of Abraham his father; for the Philistines had stopped +them after the death of Abraham: and he called their names after the +names by which his father had called them. + +26:19 And Isaac's servants digged in the valley, and found there a +well of springing water. + +26:20 And the herdmen of Gerar did strive with Isaac's herdmen, +saying, The water is ours: and he called the name of the well Esek; +because they strove with him. + +26:21 And they digged another well, and strove for that also: and he +called the name of it Sitnah. + +26:22 And he removed from thence, and digged another well; and for +that they strove not: and he called the name of it Rehoboth; and he +said, For now the LORD hath made room for us, and we shall be fruitful +in the land. + +26:23 And he went up from thence to Beersheba. + +26:24 And the LORD appeared unto him the same night, and said, I am +the God of Abraham thy father: fear not, for I am with thee, and will +bless thee, and multiply thy seed for my servant Abraham's sake. + +26:25 And he builded an altar there, and called upon the name of the +LORD, and pitched his tent there: and there Isaac's servants digged a +well. + +26:26 Then Abimelech went to him from Gerar, and Ahuzzath one of his +friends, and Phichol the chief captain of his army. + +26:27 And Isaac said unto them, Wherefore come ye to me, seeing ye +hate me, and have sent me away from you? 26:28 And they said, We saw +certainly that the LORD was with thee: and we said, Let there be now +an oath betwixt us, even betwixt us and thee, and let us make a +covenant with thee; 26:29 That thou wilt do us no hurt, as we have not +touched thee, and as we have done unto thee nothing but good, and have +sent thee away in peace: thou art now the blessed of the LORD. + +26:30 And he made them a feast, and they did eat and drink. + +26:31 And they rose up betimes in the morning, and sware one to +another: and Isaac sent them away, and they departed from him in +peace. + +26:32 And it came to pass the same day, that Isaac's servants came, +and told him concerning the well which they had digged, and said unto +him, We have found water. + +26:33 And he called it Shebah: therefore the name of the city is +Beersheba unto this day. + +26:34 And Esau was forty years old when he took to wife Judith the +daughter of Beeri the Hittite, and Bashemath the daughter of Elon the +Hittite: 26:35 Which were a grief of mind unto Isaac and to Rebekah. + +27:1 And it came to pass, that when Isaac was old, and his eyes were +dim, so that he could not see, he called Esau his eldest son, and said +unto him, My son: and he said unto him, Behold, here am I. + +27:2 And he said, Behold now, I am old, I know not the day of my +death: 27:3 Now therefore take, I pray thee, thy weapons, thy quiver +and thy bow, and go out to the field, and take me some venison; 27:4 +And make me savoury meat, such as I love, and bring it to me, that I +may eat; that my soul may bless thee before I die. + +27:5 And Rebekah heard when Isaac spake to Esau his son. And Esau went +to the field to hunt for venison, and to bring it. + +27:6 And Rebekah spake unto Jacob her son, saying, Behold, I heard thy +father speak unto Esau thy brother, saying, 27:7 Bring me venison, and +make me savoury meat, that I may eat, and bless thee before the LORD +before my death. + +27:8 Now therefore, my son, obey my voice according to that which I +command thee. + +27:9 Go now to the flock, and fetch me from thence two good kids of +the goats; and I will make them savoury meat for thy father, such as +he loveth: 27:10 And thou shalt bring it to thy father, that he may +eat, and that he may bless thee before his death. + +27:11 And Jacob said to Rebekah his mother, Behold, Esau my brother is +a hairy man, and I am a smooth man: 27:12 My father peradventure will +feel me, and I shall seem to him as a deceiver; and I shall bring a +curse upon me, and not a blessing. + +27:13 And his mother said unto him, Upon me be thy curse, my son: only +obey my voice, and go fetch me them. + +27:14 And he went, and fetched, and brought them to his mother: and +his mother made savoury meat, such as his father loved. + +27:15 And Rebekah took goodly raiment of her eldest son Esau, which +were with her in the house, and put them upon Jacob her younger son: +27:16 And she put the skins of the kids of the goats upon his hands, +and upon the smooth of his neck: 27:17 And she gave the savoury meat +and the bread, which she had prepared, into the hand of her son Jacob. + +27:18 And he came unto his father, and said, My father: and he said, +Here am I; who art thou, my son? 27:19 And Jacob said unto his +father, I am Esau thy first born; I have done according as thou badest +me: arise, I pray thee, sit and eat of my venison, that thy soul may +bless me. + +27:20 And Isaac said unto his son, How is it that thou hast found it +so quickly, my son? And he said, Because the LORD thy God brought it +to me. + +27:21 And Isaac said unto Jacob, Come near, I pray thee, that I may +feel thee, my son, whether thou be my very son Esau or not. + +27:22 And Jacob went near unto Isaac his father; and he felt him, and +said, The voice is Jacob's voice, but the hands are the hands of Esau. + +27:23 And he discerned him not, because his hands were hairy, as his +brother Esau's hands: so he blessed him. + +27:24 And he said, Art thou my very son Esau? And he said, I am. + +27:25 And he said, Bring it near to me, and I will eat of my son's +venison, that my soul may bless thee. And he brought it near to him, +and he did eat: and he brought him wine and he drank. + +27:26 And his father Isaac said unto him, Come near now, and kiss me, +my son. + +27:27 And he came near, and kissed him: and he smelled the smell of +his raiment, and blessed him, and said, See, the smell of my son is as +the smell of a field which the LORD hath blessed: 27:28 Therefore God +give thee of the dew of heaven, and the fatness of the earth, and +plenty of corn and wine: 27:29 Let people serve thee, and nations bow +down to thee: be lord over thy brethren, and let thy mother's sons bow +down to thee: cursed be every one that curseth thee, and blessed be he +that blesseth thee. + +27:30 And it came to pass, as soon as Isaac had made an end of +blessing Jacob, and Jacob was yet scarce gone out from the presence of +Isaac his father, that Esau his brother came in from his hunting. + +27:31 And he also had made savoury meat, and brought it unto his +father, and said unto his father, Let my father arise, and eat of his +son's venison, that thy soul may bless me. + +27:32 And Isaac his father said unto him, Who art thou? And he said, I +am thy son, thy firstborn Esau. + +27:33 And Isaac trembled very exceedingly, and said, Who? where is he +that hath taken venison, and brought it me, and I have eaten of all +before thou camest, and have blessed him? yea, and he shall be +blessed. + +27:34 And when Esau heard the words of his father, he cried with a +great and exceeding bitter cry, and said unto his father, Bless me, +even me also, O my father. + +27:35 And he said, Thy brother came with subtilty, and hath taken away +thy blessing. + +27:36 And he said, Is not he rightly named Jacob? for he hath +supplanted me these two times: he took away my birthright; and, +behold, now he hath taken away my blessing. And he said, Hast thou not +reserved a blessing for me? 27:37 And Isaac answered and said unto +Esau, Behold, I have made him thy lord, and all his brethren have I +given to him for servants; and with corn and wine have I sustained +him: and what shall I do now unto thee, my son? 27:38 And Esau said +unto his father, Hast thou but one blessing, my father? bless me, even +me also, O my father. And Esau lifted up his voice, and wept. + +27:39 And Isaac his father answered and said unto him, Behold, thy +dwelling shall be the fatness of the earth, and of the dew of heaven +from above; 27:40 And by thy sword shalt thou live, and shalt serve +thy brother; and it shall come to pass when thou shalt have the +dominion, that thou shalt break his yoke from off thy neck. + +27:41 And Esau hated Jacob because of the blessing wherewith his +father blessed him: and Esau said in his heart, The days of mourning +for my father are at hand; then will I slay my brother Jacob. + +27:42 And these words of Esau her elder son were told to Rebekah: and +she sent and called Jacob her younger son, and said unto him, Behold, +thy brother Esau, as touching thee, doth comfort himself, purposing to +kill thee. + +27:43 Now therefore, my son, obey my voice; arise, flee thou to Laban +my brother to Haran; 27:44 And tarry with him a few days, until thy +brother's fury turn away; 27:45 Until thy brother's anger turn away +from thee, and he forget that which thou hast done to him: then I will +send, and fetch thee from thence: why should I be deprived also of you +both in one day? 27:46 And Rebekah said to Isaac, I am weary of my +life because of the daughters of Heth: if Jacob take a wife of the +daughters of Heth, such as these which are of the daughters of the +land, what good shall my life do me? 28:1 And Isaac called Jacob, and +blessed him, and charged him, and said unto him, Thou shalt not take a +wife of the daughters of Canaan. + +28:2 Arise, go to Padanaram, to the house of Bethuel thy mother's +father; and take thee a wife from thence of the daughers of Laban thy +mother's brother. + +28:3 And God Almighty bless thee, and make thee fruitful, and multiply +thee, that thou mayest be a multitude of people; 28:4 And give thee +the blessing of Abraham, to thee, and to thy seed with thee; that thou +mayest inherit the land wherein thou art a stranger, which God gave +unto Abraham. + +28:5 And Isaac sent away Jacob: and he went to Padanaram unto Laban, +son of Bethuel the Syrian, the brother of Rebekah, Jacob's and Esau's +mother. + +28:6 When Esau saw that Isaac had blessed Jacob, and sent him away to +Padanaram, to take him a wife from thence; and that as he blessed him +he gave him a charge, saying, Thou shalt not take a wife of the +daughers of Canaan; 28:7 And that Jacob obeyed his father and his +mother, and was gone to Padanaram; 28:8 And Esau seeing that the +daughters of Canaan pleased not Isaac his father; 28:9 Then went Esau +unto Ishmael, and took unto the wives which he had Mahalath the +daughter of Ishmael Abraham's son, the sister of Nebajoth, to be his +wife. + +28:10 And Jacob went out from Beersheba, and went toward Haran. + +28:11 And he lighted upon a certain place, and tarried there all +night, because the sun was set; and he took of the stones of that +place, and put them for his pillows, and lay down in that place to +sleep. + +28:12 And he dreamed, and behold a ladder set up on the earth, and the +top of it reached to heaven: and behold the angels of God ascending +and descending on it. + +28:13 And, behold, the LORD stood above it, and said, I am the LORD +God of Abraham thy father, and the God of Isaac: the land whereon thou +liest, to thee will I give it, and to thy seed; 28:14 And thy seed +shall be as the dust of the earth, and thou shalt spread abroad to the +west, and to the east, and to the north, and to the south: and in thee +and in thy seed shall all the families of the earth be blessed. + +28:15 And, behold, I am with thee, and will keep thee in all places +whither thou goest, and will bring thee again into this land; for I +will not leave thee, until I have done that which I have spoken to +thee of. + +28:16 And Jacob awaked out of his sleep, and he said, Surely the LORD +is in this place; and I knew it not. + +28:17 And he was afraid, and said, How dreadful is this place! this is +none other but the house of God, and this is the gate of heaven. + +28:18 And Jacob rose up early in the morning, and took the stone that +he had put for his pillows, and set it up for a pillar, and poured oil +upon the top of it. + +28:19 And he called the name of that place Bethel: but the name of +that city was called Luz at the first. + +28:20 And Jacob vowed a vow, saying, If God will be with me, and will +keep me in this way that I go, and will give me bread to eat, and +raiment to put on, 28:21 So that I come again to my father's house in +peace; then shall the LORD be my God: 28:22 And this stone, which I +have set for a pillar, shall be God's house: and of all that thou +shalt give me I will surely give the tenth unto thee. + +29:1 Then Jacob went on his journey, and came into the land of the +people of the east. + +29:2 And he looked, and behold a well in the field, and, lo, there +were three flocks of sheep lying by it; for out of that well they +watered the flocks: and a great stone was upon the well's mouth. + +29:3 And thither were all the flocks gathered: and they rolled the +stone from the well's mouth, and watered the sheep, and put the stone +again upon the well's mouth in his place. + +29:4 And Jacob said unto them, My brethren, whence be ye? And they +said, Of Haran are we. + +29:5 And he said unto them, Know ye Laban the son of Nahor? And they +said, We know him. + +29:6 And he said unto them, Is he well? And they said, He is well: +and, behold, Rachel his daughter cometh with the sheep. + +29:7 And he said, Lo, it is yet high day, neither is it time that the +cattle should be gathered together: water ye the sheep, and go and +feed them. + +29:8 And they said, We cannot, until all the flocks be gathered +together, and till they roll the stone from the well's mouth; then we +water the sheep. + +29:9 And while he yet spake with them, Rachel came with her father's +sheep; for she kept them. + +29:10 And it came to pass, when Jacob saw Rachel the daughter of Laban +his mother's brother, and the sheep of Laban his mother's brother, +that Jacob went near, and rolled the stone from the well's mouth, and +watered the flock of Laban his mother's brother. + +29:11 And Jacob kissed Rachel, and lifted up his voice, and wept. + +29:12 And Jacob told Rachel that he was her father's brother, and that +he was Rebekah's son: and she ran and told her father. + +29:13 And it came to pass, when Laban heard the tidings of Jacob his +sister's son, that he ran to meet him, and embraced him, and kissed +him, and brought him to his house. And he told Laban all these things. + +29:14 And Laban said to him, Surely thou art my bone and my flesh. And +he abode with him the space of a month. + +29:15 And Laban said unto Jacob, Because thou art my brother, +shouldest thou therefore serve me for nought? tell me, what shall thy +wages be? 29:16 And Laban had two daughters: the name of the elder +was Leah, and the name of the younger was Rachel. + +29:17 Leah was tender eyed; but Rachel was beautiful and well +favoured. + +29:18 And Jacob loved Rachel; and said, I will serve thee seven years +for Rachel thy younger daughter. + +29:19 And Laban said, It is better that I give her to thee, than that +I should give her to another man: abide with me. + +29:20 And Jacob served seven years for Rachel; and they seemed unto +him but a few days, for the love he had to her. + +29:21 And Jacob said unto Laban, Give me my wife, for my days are +fulfilled, that I may go in unto her. + +29:22 And Laban gathered together all the men of the place, and made a +feast. + +29:23 And it came to pass in the evening, that he took Leah his +daughter, and brought her to him; and he went in unto her. + +29:24 And Laban gave unto his daughter Leah Zilpah his maid for an +handmaid. + +29:25 And it came to pass, that in the morning, behold, it was Leah: +and he said to Laban, What is this thou hast done unto me? did not I +serve with thee for Rachel? wherefore then hast thou beguiled me? +29:26 And Laban said, It must not be so done in our country, to give +the younger before the firstborn. + +29:27 Fulfil her week, and we will give thee this also for the service +which thou shalt serve with me yet seven other years. + +29:28 And Jacob did so, and fulfilled her week: and he gave him Rachel +his daughter to wife also. + +29:29 And Laban gave to Rachel his daughter Bilhah his handmaid to be +her maid. + +29:30 And he went in also unto Rachel, and he loved also Rachel more +than Leah, and served with him yet seven other years. + +29:31 And when the LORD saw that Leah was hated, he opened her womb: +but Rachel was barren. + +29:32 And Leah conceived, and bare a son, and she called his name +Reuben: for she said, Surely the LORD hath looked upon my affliction; +now therefore my husband will love me. + +29:33 And she conceived again, and bare a son; and said, Because the +LORD hath heard I was hated, he hath therefore given me this son also: +and she called his name Simeon. + +29:34 And she conceived again, and bare a son; and said, Now this time +will my husband be joined unto me, because I have born him three sons: +therefore was his name called Levi. + +29:35 And she conceived again, and bare a son: and she said, Now will +I praise the LORD: therefore she called his name Judah; and left +bearing. + +30:1 And when Rachel saw that she bare Jacob no children, Rachel +envied her sister; and said unto Jacob, Give me children, or else I +die. + +30:2 And Jacob's anger was kindled against Rachel: and he said, Am I +in God's stead, who hath withheld from thee the fruit of the womb? +30:3 And she said, Behold my maid Bilhah, go in unto her; and she +shall bear upon my knees, that I may also have children by her. + +30:4 And she gave him Bilhah her handmaid to wife: and Jacob went in +unto her. + +30:5 And Bilhah conceived, and bare Jacob a son. + +30:6 And Rachel said, God hath judged me, and hath also heard my +voice, and hath given me a son: therefore called she his name Dan. + +30:7 And Bilhah Rachel's maid conceived again, and bare Jacob a second +son. + +30:8 And Rachel said, With great wrestlings have I wrestled with my +sister, and I have prevailed: and she called his name Naphtali. + +30:9 When Leah saw that she had left bearing, she took Zilpah her +maid, and gave her Jacob to wife. + +30:10 And Zilpah Leah's maid bare Jacob a son. + +30:11 And Leah said, A troop cometh: and she called his name Gad. + +30:12 And Zilpah Leah's maid bare Jacob a second son. + +30:13 And Leah said, Happy am I, for the daughters will call me +blessed: and she called his name Asher. + +30:14 And Reuben went in the days of wheat harvest, and found +mandrakes in the field, and brought them unto his mother Leah. Then +Rachel said to Leah, Give me, I pray thee, of thy son's mandrakes. + +30:15 And she said unto her, Is it a small matter that thou hast taken +my husband? and wouldest thou take away my son's mandrakes also? And +Rachel said, Therefore he shall lie with thee to night for thy son's +mandrakes. + +30:16 And Jacob came out of the field in the evening, and Leah went +out to meet him, and said, Thou must come in unto me; for surely I +have hired thee with my son's mandrakes. And he lay with her that +night. + +30:17 And God hearkened unto Leah, and she conceived, and bare Jacob +the fifth son. + +30:18 And Leah said, God hath given me my hire, because I have given +my maiden to my husband: and she called his name Issachar. + +30:19 And Leah conceived again, and bare Jacob the sixth son. + +30:20 And Leah said, God hath endued me with a good dowry; now will my +husband dwell with me, because I have born him six sons: and she +called his name Zebulun. + +30:21 And afterwards she bare a daughter, and called her name Dinah. + +30:22 And God remembered Rachel, and God hearkened to her, and opened +her womb. + +30:23 And she conceived, and bare a son; and said, God hath taken away +my reproach: 30:24 And she called his name Joseph; and said, The LORD +shall add to me another son. + +30:25 And it came to pass, when Rachel had born Joseph, that Jacob +said unto Laban, Send me away, that I may go unto mine own place, and +to my country. + +30:26 Give me my wives and my children, for whom I have served thee, +and let me go: for thou knowest my service which I have done thee. + +30:27 And Laban said unto him, I pray thee, if I have found favour in +thine eyes, tarry: for I have learned by experience that the LORD hath +blessed me for thy sake. + +30:28 And he said, Appoint me thy wages, and I will give it. + +30:29 And he said unto him, Thou knowest how I have served thee, and +how thy cattle was with me. + +30:30 For it was little which thou hadst before I came, and it is now +increased unto a multitude; and the LORD hath blessed thee since my +coming: and now when shall I provide for mine own house also? 30:31 +And he said, What shall I give thee? And Jacob said, Thou shalt not +give me any thing: if thou wilt do this thing for me, I will again +feed and keep thy flock. + +30:32 I will pass through all thy flock to day, removing from thence +all the speckled and spotted cattle, and all the brown cattle among +the sheep, and the spotted and speckled among the goats: and of such +shall be my hire. + +30:33 So shall my righteousness answer for me in time to come, when it +shall come for my hire before thy face: every one that is not speckled +and spotted among the goats, and brown among the sheep, that shall be +counted stolen with me. + +30:34 And Laban said, Behold, I would it might be according to thy +word. + +30:35 And he removed that day the he goats that were ringstraked and +spotted, and all the she goats that were speckled and spotted, and +every one that had some white in it, and all the brown among the +sheep, and gave them into the hand of his sons. + +30:36 And he set three days' journey betwixt himself and Jacob: and +Jacob fed the rest of Laban's flocks. + +30:37 And Jacob took him rods of green poplar, and of the hazel and +chesnut tree; and pilled white strakes in them, and made the white +appear which was in the rods. + +30:38 And he set the rods which he had pilled before the flocks in the +gutters in the watering troughs when the flocks came to drink, that +they should conceive when they came to drink. + +30:39 And the flocks conceived before the rods, and brought forth +cattle ringstraked, speckled, and spotted. + +30:40 And Jacob did separate the lambs, and set the faces of the +flocks toward the ringstraked, and all the brown in the flock of +Laban; and he put his own flocks by themselves, and put them not unto +Laban's cattle. + +30:41 And it came to pass, whensoever the stronger cattle did +conceive, that Jacob laid the rods before the eyes of the cattle in +the gutters, that they might conceive among the rods. + +30:42 But when the cattle were feeble, he put them not in: so the +feebler were Laban's, and the stronger Jacob's. + +30:43 And the man increased exceedingly, and had much cattle, and +maidservants, and menservants, and camels, and asses. + +31:1 And he heard the words of Laban's sons, saying, Jacob hath taken +away all that was our father's; and of that which was our father's +hath he gotten all this glory. + +31:2 And Jacob beheld the countenance of Laban, and, behold, it was +not toward him as before. + +31:3 And the LORD said unto Jacob, Return unto the land of thy +fathers, and to thy kindred; and I will be with thee. + +31:4 And Jacob sent and called Rachel and Leah to the field unto his +flock, 31:5 And said unto them, I see your father's countenance, that +it is not toward me as before; but the God of my father hath been with +me. + +31:6 And ye know that with all my power I have served your father. + +31:7 And your father hath deceived me, and changed my wages ten times; +but God suffered him not to hurt me. + +31:8 If he said thus, The speckled shall be thy wages; then all the +cattle bare speckled: and if he said thus, The ringstraked shall be +thy hire; then bare all the cattle ringstraked. + +31:9 Thus God hath taken away the cattle of your father, and given +them to me. + +31:10 And it came to pass at the time that the cattle conceived, that +I lifted up mine eyes, and saw in a dream, and, behold, the rams which +leaped upon the cattle were ringstraked, speckled, and grisled. + +31:11 And the angel of God spake unto me in a dream, saying, Jacob: +And I said, Here am I. + +31:12 And he said, Lift up now thine eyes, and see, all the rams which +leap upon the cattle are ringstraked, speckled, and grisled: for I +have seen all that Laban doeth unto thee. + +31:13 I am the God of Bethel, where thou anointedst the pillar, and +where thou vowedst a vow unto me: now arise, get thee out from this +land, and return unto the land of thy kindred. + +31:14 And Rachel and Leah answered and said unto him, Is there yet any +portion or inheritance for us in our father's house? 31:15 Are we not +counted of him strangers? for he hath sold us, and hath quite devoured +also our money. + +31:16 For all the riches which God hath taken from our father, that is +ours, and our children's: now then, whatsoever God hath said unto +thee, do. + +31:17 Then Jacob rose up, and set his sons and his wives upon camels; +31:18 And he carried away all his cattle, and all his goods which he +had gotten, the cattle of his getting, which he had gotten in +Padanaram, for to go to Isaac his father in the land of Canaan. + +31:19 And Laban went to shear his sheep: and Rachel had stolen the +images that were her father's. + +31:20 And Jacob stole away unawares to Laban the Syrian, in that he +told him not that he fled. + +31:21 So he fled with all that he had; and he rose up, and passed over +the river, and set his face toward the mount Gilead. + +31:22 And it was told Laban on the third day that Jacob was fled. + +31:23 And he took his brethren with him, and pursued after him seven +days' journey; and they overtook him in the mount Gilead. + +31:24 And God came to Laban the Syrian in a dream by night, and said +unto him, Take heed that thou speak not to Jacob either good or bad. + +31:25 Then Laban overtook Jacob. Now Jacob had pitched his tent in the +mount: and Laban with his brethren pitched in the mount of Gilead. + +31:26 And Laban said to Jacob, What hast thou done, that thou hast +stolen away unawares to me, and carried away my daughters, as captives +taken with the sword? 31:27 Wherefore didst thou flee away secretly, +and steal away from me; and didst not tell me, that I might have sent +thee away with mirth, and with songs, with tabret, and with harp? +31:28 And hast not suffered me to kiss my sons and my daughters? thou +hast now done foolishly in so doing. + +31:29 It is in the power of my hand to do you hurt: but the God of +your father spake unto me yesternight, saying, Take thou heed that +thou speak not to Jacob either good or bad. + +31:30 And now, though thou wouldest needs be gone, because thou sore +longedst after thy father's house, yet wherefore hast thou stolen my +gods? 31:31 And Jacob answered and said to Laban, Because I was +afraid: for I said, Peradventure thou wouldest take by force thy +daughters from me. + +31:32 With whomsoever thou findest thy gods, let him not live: before +our brethren discern thou what is thine with me, and take it to thee. +For Jacob knew not that Rachel had stolen them. + +31:33 And Laban went into Jacob's tent, and into Leah's tent, and into +the two maidservants' tents; but he found them not. Then went he out +of Leah's tent, and entered into Rachel's tent. + +31:34 Now Rachel had taken the images, and put them in the camel's +furniture, and sat upon them. And Laban searched all the tent, but +found them not. + +31:35 And she said to her father, Let it not displease my lord that I +cannot rise up before thee; for the custom of women is upon me. And he +searched but found not the images. + +31:36 And Jacob was wroth, and chode with Laban: and Jacob answered +and said to Laban, What is my trespass? what is my sin, that thou hast +so hotly pursued after me? 31:37 Whereas thou hast searched all my +stuff, what hast thou found of all thy household stuff? set it here +before my brethren and thy brethren, that they may judge betwixt us +both. + +31:38 This twenty years have I been with thee; thy ewes and thy she +goats have not cast their young, and the rams of thy flock have I not +eaten. + +31:39 That which was torn of beasts I brought not unto thee; I bare +the loss of it; of my hand didst thou require it, whether stolen by +day, or stolen by night. + +31:40 Thus I was; in the day the drought consumed me, and the frost by +night; and my sleep departed from mine eyes. + +31:41 Thus have I been twenty years in thy house; I served thee +fourteen years for thy two daughters, and six years for thy cattle: +and thou hast changed my wages ten times. + +31:42 Except the God of my father, the God of Abraham, and the fear of +Isaac, had been with me, surely thou hadst sent me away now empty. God +hath seen mine affliction and the labour of my hands, and rebuked thee +yesternight. + +31:43 And Laban answered and said unto Jacob, These daughters are my +daughters, and these children are my children, and these cattle are my +cattle, and all that thou seest is mine: and what can I do this day +unto these my daughters, or unto their children which they have born? +31:44 Now therefore come thou, let us make a covenant, I and thou; and +let it be for a witness between me and thee. + +31:45 And Jacob took a stone, and set it up for a pillar. + +31:46 And Jacob said unto his brethren, Gather stones; and they took +stones, and made an heap: and they did eat there upon the heap. + +31:47 And Laban called it Jegarsahadutha: but Jacob called it Galeed. + +31:48 And Laban said, This heap is a witness between me and thee this +day. + +Therefore was the name of it called Galeed; 31:49 And Mizpah; for he +said, The LORD watch between me and thee, when we are absent one from +another. + +31:50 If thou shalt afflict my daughters, or if thou shalt take other +wives beside my daughters, no man is with us; see, God is witness +betwixt me and thee. + +31:51 And Laban said to Jacob, Behold this heap, and behold this +pillar, which I have cast betwixt me and thee: 31:52 This heap be +witness, and this pillar be witness, that I will not pass over this +heap to thee, and that thou shalt not pass over this heap and this +pillar unto me, for harm. + +31:53 The God of Abraham, and the God of Nahor, the God of their +father, judge betwixt us. And Jacob sware by the fear of his father +Isaac. + +31:54 Then Jacob offered sacrifice upon the mount, and called his +brethren to eat bread: and they did eat bread, and tarried all night +in the mount. + +31:55 And early in the morning Laban rose up, and kissed his sons and +his daughters, and blessed them: and Laban departed, and returned unto +his place. + +32:1 And Jacob went on his way, and the angels of God met him. + +32:2 And when Jacob saw them, he said, This is God's host: and he +called the name of that place Mahanaim. + +32:3 And Jacob sent messengers before him to Esau his brother unto the +land of Seir, the country of Edom. + +32:4 And he commanded them, saying, Thus shall ye speak unto my lord +Esau; Thy servant Jacob saith thus, I have sojourned with Laban, and +stayed there until now: 32:5 And I have oxen, and asses, flocks, and +menservants, and womenservants: and I have sent to tell my lord, that +I may find grace in thy sight. + +32:6 And the messengers returned to Jacob, saying, We came to thy +brother Esau, and also he cometh to meet thee, and four hundred men +with him. + +32:7 Then Jacob was greatly afraid and distressed: and he divided the +people that was with him, and the flocks, and herds, and the camels, +into two bands; 32:8 And said, If Esau come to the one company, and +smite it, then the other company which is left shall escape. + +32:9 And Jacob said, O God of my father Abraham, and God of my father +Isaac, the LORD which saidst unto me, Return unto thy country, and to +thy kindred, and I will deal well with thee: 32:10 I am not worthy of +the least of all the mercies, and of all the truth, which thou hast +shewed unto thy servant; for with my staff I passed over this Jordan; +and now I am become two bands. + +32:11 Deliver me, I pray thee, from the hand of my brother, from the +hand of Esau: for I fear him, lest he will come and smite me, and the +mother with the children. + +32:12 And thou saidst, I will surely do thee good, and make thy seed +as the sand of the sea, which cannot be numbered for multitude. + +32:13 And he lodged there that same night; and took of that which came +to his hand a present for Esau his brother; 32:14 Two hundred she +goats, and twenty he goats, two hundred ewes, and twenty rams, 32:15 +Thirty milch camels with their colts, forty kine, and ten bulls, +twenty she asses, and ten foals. + +32:16 And he delivered them into the hand of his servants, every drove +by themselves; and said unto his servants, Pass over before me, and +put a space betwixt drove and drove. + +32:17 And he commanded the foremost, saying, When Esau my brother +meeteth thee, and asketh thee, saying, Whose art thou? and whither +goest thou? and whose are these before thee? 32:18 Then thou shalt +say, They be thy servant Jacob's; it is a present sent unto my lord +Esau: and, behold, also he is behind us. + +32:19 And so commanded he the second, and the third, and all that +followed the droves, saying, On this manner shall ye speak unto Esau, +when ye find him. + +32:20 And say ye moreover, Behold, thy servant Jacob is behind us. For +he said, I will appease him with the present that goeth before me, and +afterward I will see his face; peradventure he will accept of me. + +32:21 So went the present over before him: and himself lodged that +night in the company. + +32:22 And he rose up that night, and took his two wives, and his two +womenservants, and his eleven sons, and passed over the ford Jabbok. + +32:23 And he took them, and sent them over the brook, and sent over +that he had. + +32:24 And Jacob was left alone; and there wrestled a man with him +until the breaking of the day. + +32:25 And when he saw that he prevailed not against him, he touched +the hollow of his thigh; and the hollow of Jacob's thigh was out of +joint, as he wrestled with him. + +32:26 And he said, Let me go, for the day breaketh. And he said, I +will not let thee go, except thou bless me. + +32:27 And he said unto him, What is thy name? And he said, Jacob. + +32:28 And he said, Thy name shall be called no more Jacob, but Israel: +for as a prince hast thou power with God and with men, and hast +prevailed. + +32:29 And Jacob asked him, and said, Tell me, I pray thee, thy name. +And he said, Wherefore is it that thou dost ask after my name? And he +blessed him there. + +32:30 And Jacob called the name of the place Peniel: for I have seen +God face to face, and my life is preserved. + +32:31 And as he passed over Penuel the sun rose upon him, and he +halted upon his thigh. + +32:32 Therefore the children of Israel eat not of the sinew which +shrank, which is upon the hollow of the thigh, unto this day: because +he touched the hollow of Jacob's thigh in the sinew that shrank. + +33:1 And Jacob lifted up his eyes, and looked, and, behold, Esau came, +and with him four hundred men. And he divided the children unto Leah, +and unto Rachel, and unto the two handmaids. + +33:2 And he put the handmaids and their children foremost, and Leah +and her children after, and Rachel and Joseph hindermost. + +33:3 And he passed over before them, and bowed himself to the ground +seven times, until he came near to his brother. + +33:4 And Esau ran to meet him, and embraced him, and fell on his neck, +and kissed him: and they wept. + +33:5 And he lifted up his eyes, and saw the women and the children; +and said, Who are those with thee? And he said, The children which God +hath graciously given thy servant. + +33:6 Then the handmaidens came near, they and their children, and they +bowed themselves. + +33:7 And Leah also with her children came near, and bowed themselves: +and after came Joseph near and Rachel, and they bowed themselves. + +33:8 And he said, What meanest thou by all this drove which I met? And +he said, These are to find grace in the sight of my lord. + +33:9 And Esau said, I have enough, my brother; keep that thou hast +unto thyself. + +33:10 And Jacob said, Nay, I pray thee, if now I have found grace in +thy sight, then receive my present at my hand: for therefore I have +seen thy face, as though I had seen the face of God, and thou wast +pleased with me. + +33:11 Take, I pray thee, my blessing that is brought to thee; because +God hath dealt graciously with me, and because I have enough. And he +urged him, and he took it. + +33:12 And he said, Let us take our journey, and let us go, and I will +go before thee. + +33:13 And he said unto him, My lord knoweth that the children are +tender, and the flocks and herds with young are with me: and if men +should overdrive them one day, all the flock will die. + +33:14 Let my lord, I pray thee, pass over before his servant: and I +will lead on softly, according as the cattle that goeth before me and +the children be able to endure, until I come unto my lord unto Seir. + +33:15 And Esau said, Let me now leave with thee some of the folk that +are with me. And he said, What needeth it? let me find grace in the +sight of my lord. + +33:16 So Esau returned that day on his way unto Seir. + +33:17 And Jacob journeyed to Succoth, and built him an house, and made +booths for his cattle: therefore the name of the place is called +Succoth. + +33:18 And Jacob came to Shalem, a city of Shechem, which is in the +land of Canaan, when he came from Padanaram; and pitched his tent +before the city. + +33:19 And he bought a parcel of a field, where he had spread his tent, +at the hand of the children of Hamor, Shechem's father, for an hundred +pieces of money. + +33:20 And he erected there an altar, and called it EleloheIsrael. + +34:1 And Dinah the daughter of Leah, which she bare unto Jacob, went +out to see the daughters of the land. + +34:2 And when Shechem the son of Hamor the Hivite, prince of the +country, saw her, he took her, and lay with her, and defiled her. + +34:3 And his soul clave unto Dinah the daughter of Jacob, and he loved +the damsel, and spake kindly unto the damsel. + +34:4 And Shechem spake unto his father Hamor, saying, Get me this +damsel to wife. + +34:5 And Jacob heard that he had defiled Dinah his daughter: now his +sons were with his cattle in the field: and Jacob held his peace until +they were come. + +34:6 And Hamor the father of Shechem went out unto Jacob to commune +with him. + +34:7 And the sons of Jacob came out of the field when they heard it: +and the men were grieved, and they were very wroth, because he had +wrought folly in Israel in lying with Jacob's daughter: which thing +ought not to be done. + +34:8 And Hamor communed with them, saying, The soul of my son Shechem +longeth for your daughter: I pray you give her him to wife. + +34:9 And make ye marriages with us, and give your daughters unto us, +and take our daughters unto you. + +34:10 And ye shall dwell with us: and the land shall be before you; +dwell and trade ye therein, and get you possessions therein. + +34:11 And Shechem said unto her father and unto her brethren, Let me +find grace in your eyes, and what ye shall say unto me I will give. + +34:12 Ask me never so much dowry and gift, and I will give according +as ye shall say unto me: but give me the damsel to wife. + +34:13 And the sons of Jacob answered Shechem and Hamor his father +deceitfully, and said, because he had defiled Dinah their sister: +34:14 And they said unto them, We cannot do this thing, to give our +sister to one that is uncircumcised; for that were a reproach unto us: +34:15 But in this will we consent unto you: If ye will be as we be, +that every male of you be circumcised; 34:16 Then will we give our +daughters unto you, and we will take your daughters to us, and we will +dwell with you, and we will become one people. + +34:17 But if ye will not hearken unto us, to be circumcised; then will +we take our daughter, and we will be gone. + +34:18 And their words pleased Hamor, and Shechem Hamor's son. + +34:19 And the young man deferred not to do the thing, because he had +delight in Jacob's daughter: and he was more honourable than all the +house of his father. + +34:20 And Hamor and Shechem his son came unto the gate of their city, +and communed with the men of their city, saying, 34:21 These men are +peaceable with us; therefore let them dwell in the land, and trade +therein; for the land, behold, it is large enough for them; let us +take their daughters to us for wives, and let us give them our +daughters. + +34:22 Only herein will the men consent unto us for to dwell with us, +to be one people, if every male among us be circumcised, as they are +circumcised. + +34:23 Shall not their cattle and their substance and every beast of +their's be our's? only let us consent unto them, and they will dwell +with us. + +34:24 And unto Hamor and unto Shechem his son hearkened all that went +out of the gate of his city; and every male was circumcised, all that +went out of the gate of his city. + +34:25 And it came to pass on the third day, when they were sore, that +two of the sons of Jacob, Simeon and Levi, Dinah's brethren, took each +man his sword, and came upon the city boldly, and slew all the males. + +34:26 And they slew Hamor and Shechem his son with the edge of the +sword, and took Dinah out of Shechem's house, and went out. + +34:27 The sons of Jacob came upon the slain, and spoiled the city, +because they had defiled their sister. + +34:28 They took their sheep, and their oxen, and their asses, and that +which was in the city, and that which was in the field, 34:29 And all +their wealth, and all their little ones, and their wives took they +captive, and spoiled even all that was in the house. + +34:30 And Jacob said to Simeon and Levi, Ye have troubled me to make +me to stink among the inhabitants of the land, among the Canaanites +and the Perizzites: and I being few in number, they shall gather +themselves together against me, and slay me; and I shall be destroyed, +I and my house. + +34:31 And they said, Should he deal with our sister as with an harlot? +35:1 And God said unto Jacob, Arise, go up to Bethel, and dwell there: +and make there an altar unto God, that appeared unto thee when thou +fleddest from the face of Esau thy brother. + +35:2 Then Jacob said unto his household, and to all that were with +him, Put away the strange gods that are among you, and be clean, and +change your garments: 35:3 And let us arise, and go up to Bethel; and +I will make there an altar unto God, who answered me in the day of my +distress, and was with me in the way which I went. + +35:4 And they gave unto Jacob all the strange gods which were in their +hand, and all their earrings which were in their ears; and Jacob hid +them under the oak which was by Shechem. + +35:5 And they journeyed: and the terror of God was upon the cities +that were round about them, and they did not pursue after the sons of +Jacob. + +35:6 So Jacob came to Luz, which is in the land of Canaan, that is, +Bethel, he and all the people that were with him. + +35:7 And he built there an altar, and called the place Elbethel: +because there God appeared unto him, when he fled from the face of his +brother. + +35:8 But Deborah Rebekah's nurse died, and she was buried beneath +Bethel under an oak: and the name of it was called Allonbachuth. + +35:9 And God appeared unto Jacob again, when he came out of Padanaram, +and blessed him. + +35:10 And God said unto him, Thy name is Jacob: thy name shall not be +called any more Jacob, but Israel shall be thy name: and he called his +name Israel. + +35:11 And God said unto him, I am God Almighty: be fruitful and +multiply; a nation and a company of nations shall be of thee, and +kings shall come out of thy loins; 35:12 And the land which I gave +Abraham and Isaac, to thee I will give it, and to thy seed after thee +will I give the land. + +35:13 And God went up from him in the place where he talked with him. + +35:14 And Jacob set up a pillar in the place where he talked with him, +even a pillar of stone: and he poured a drink offering thereon, and he +poured oil thereon. + +35:15 And Jacob called the name of the place where God spake with him, +Bethel. + +35:16 And they journeyed from Bethel; and there was but a little way +to come to Ephrath: and Rachel travailed, and she had hard labour. + +35:17 And it came to pass, when she was in hard labour, that the +midwife said unto her, Fear not; thou shalt have this son also. + +35:18 And it came to pass, as her soul was in departing, (for she +died) that she called his name Benoni: but his father called him +Benjamin. + +35:19 And Rachel died, and was buried in the way to Ephrath, which is +Bethlehem. + +35:20 And Jacob set a pillar upon her grave: that is the pillar of +Rachel's grave unto this day. + +35:21 And Israel journeyed, and spread his tent beyond the tower of +Edar. + +35:22 And it came to pass, when Israel dwelt in that land, that Reuben +went and lay with Bilhah his father's concubine: and Israel heard it. +Now the sons of Jacob were twelve: 35:23 The sons of Leah; Reuben, +Jacob's firstborn, and Simeon, and Levi, and Judah, and Issachar, and +Zebulun: 35:24 The sons of Rachel; Joseph, and Benjamin: 35:25 And the +sons of Bilhah, Rachel's handmaid; Dan, and Naphtali: 35:26 And the +sons of Zilpah, Leah's handmaid: Gad, and Asher: these are the sons of +Jacob, which were born to him in Padanaram. + +35:27 And Jacob came unto Isaac his father unto Mamre, unto the city +of Arbah, which is Hebron, where Abraham and Isaac sojourned. + +35:28 And the days of Isaac were an hundred and fourscore years. + +35:29 And Isaac gave up the ghost, and died, and was gathered unto his +people, being old and full of days: and his sons Esau and Jacob buried +him. + +36:1 Now these are the generations of Esau, who is Edom. + +36:2 Esau took his wives of the daughters of Canaan; Adah the daughter +of Elon the Hittite, and Aholibamah the daughter of Anah the daughter +of Zibeon the Hivite; 36:3 And Bashemath Ishmael's daughter, sister of +Nebajoth. + +36:4 And Adah bare to Esau Eliphaz; and Bashemath bare Reuel; 36:5 And +Aholibamah bare Jeush, and Jaalam, and Korah: these are the sons of +Esau, which were born unto him in the land of Canaan. + +36:6 And Esau took his wives, and his sons, and his daughters, and all +the persons of his house, and his cattle, and all his beasts, and all +his substance, which he had got in the land of Canaan; and went into +the country from the face of his brother Jacob. + +36:7 For their riches were more than that they might dwell together; +and the land wherein they were strangers could not bear them because +of their cattle. + +36:8 Thus dwelt Esau in mount Seir: Esau is Edom. + +36:9 And these are the generations of Esau the father of the Edomites +in mount Seir: 36:10 These are the names of Esau's sons; Eliphaz the +son of Adah the wife of Esau, Reuel the son of Bashemath the wife of +Esau. + +36:11 And the sons of Eliphaz were Teman, Omar, Zepho, and Gatam, and +Kenaz. + +36:12 And Timna was concubine to Eliphaz Esau's son; and she bare to +Eliphaz Amalek: these were the sons of Adah Esau's wife. + +36:13 And these are the sons of Reuel; Nahath, and Zerah, Shammah, and +Mizzah: these were the sons of Bashemath Esau's wife. + +36:14 And these were the sons of Aholibamah, the daughter of Anah the +daughter of Zibeon, Esau's wife: and she bare to Esau Jeush, and +Jaalam, and Korah. + +36:15 These were dukes of the sons of Esau: the sons of Eliphaz the +firstborn son of Esau; duke Teman, duke Omar, duke Zepho, duke Kenaz, +36:16 Duke Korah, duke Gatam, and duke Amalek: these are the dukes +that came of Eliphaz in the land of Edom; these were the sons of Adah. + +36:17 And these are the sons of Reuel Esau's son; duke Nahath, duke +Zerah, duke Shammah, duke Mizzah: these are the dukes that came of +Reuel in the land of Edom; these are the sons of Bashemath Esau's +wife. + +36:18 And these are the sons of Aholibamah Esau's wife; duke Jeush, +duke Jaalam, duke Korah: these were the dukes that came of Aholibamah +the daughter of Anah, Esau's wife. + +36:19 These are the sons of Esau, who is Edom, and these are their +dukes. + +36:20 These are the sons of Seir the Horite, who inhabited the land; +Lotan, and Shobal, and Zibeon, and Anah, 36:21 And Dishon, and Ezer, +and Dishan: these are the dukes of the Horites, the children of Seir +in the land of Edom. + +36:22 And the children of Lotan were Hori and Hemam; and Lotan's +sister was Timna. + +36:23 And the children of Shobal were these; Alvan, and Manahath, and +Ebal, Shepho, and Onam. + +36:24 And these are the children of Zibeon; both Ajah, and Anah: this +was that Anah that found the mules in the wilderness, as he fed the +asses of Zibeon his father. + +36:25 And the children of Anah were these; Dishon, and Aholibamah the +daughter of Anah. + +36:26 And these are the children of Dishon; Hemdan, and Eshban, and +Ithran, and Cheran. + +36:27 The children of Ezer are these; Bilhan, and Zaavan, and Akan. + +36:28 The children of Dishan are these; Uz, and Aran. + +36:29 These are the dukes that came of the Horites; duke Lotan, duke +Shobal, duke Zibeon, duke Anah, 36:30 Duke Dishon, duke Ezer, duke +Dishan: these are the dukes that came of Hori, among their dukes in +the land of Seir. + +36:31 And these are the kings that reigned in the land of Edom, before +there reigned any king over the children of Israel. + +36:32 And Bela the son of Beor reigned in Edom: and the name of his +city was Dinhabah. + +36:33 And Bela died, and Jobab the son of Zerah of Bozrah reigned in +his stead. + +36:34 And Jobab died, and Husham of the land of Temani reigned in his +stead. + +36:35 And Husham died, and Hadad the son of Bedad, who smote Midian in +the field of Moab, reigned in his stead: and the name of his city was +Avith. + +36:36 And Hadad died, and Samlah of Masrekah reigned in his stead. + +36:37 And Samlah died, and Saul of Rehoboth by the river reigned in +his stead. + +36:38 And Saul died, and Baalhanan the son of Achbor reigned in his +stead. + +36:39 And Baalhanan the son of Achbor died, and Hadar reigned in his +stead: and the name of his city was Pau; and his wife's name was +Mehetabel, the daughter of Matred, the daughter of Mezahab. + +36:40 And these are the names of the dukes that came of Esau, +according to their families, after their places, by their names; duke +Timnah, duke Alvah, duke Jetheth, 36:41 Duke Aholibamah, duke Elah, +duke Pinon, 36:42 Duke Kenaz, duke Teman, duke Mibzar, 36:43 Duke +Magdiel, duke Iram: these be the dukes of Edom, according to their +habitations in the land of their possession: he is Esau the father of +the Edomites. + +37:1 And Jacob dwelt in the land wherein his father was a stranger, in +the land of Canaan. + +37:2 These are the generations of Jacob. Joseph, being seventeen years +old, was feeding the flock with his brethren; and the lad was with the +sons of Bilhah, and with the sons of Zilpah, his father's wives: and +Joseph brought unto his father their evil report. + +37:3 Now Israel loved Joseph more than all his children, because he +was the son of his old age: and he made him a coat of many colours. + +37:4 And when his brethren saw that their father loved him more than +all his brethren, they hated him, and could not speak peaceably unto +him. + +37:5 And Joseph dreamed a dream, and he told it his brethren: and they +hated him yet the more. + +37:6 And he said unto them, Hear, I pray you, this dream which I have +dreamed: 37:7 For, behold, we were binding sheaves in the field, and, +lo, my sheaf arose, and also stood upright; and, behold, your sheaves +stood round about, and made obeisance to my sheaf. + +37:8 And his brethren said to him, Shalt thou indeed reign over us? or +shalt thou indeed have dominion over us? And they hated him yet the +more for his dreams, and for his words. + +37:9 And he dreamed yet another dream, and told it his brethren, and +said, Behold, I have dreamed a dream more; and, behold, the sun and +the moon and the eleven stars made obeisance to me. + +37:10 And he told it to his father, and to his brethren: and his +father rebuked him, and said unto him, What is this dream that thou +hast dreamed? Shall I and thy mother and thy brethren indeed come to +bow down ourselves to thee to the earth? 37:11 And his brethren +envied him; but his father observed the saying. + +37:12 And his brethren went to feed their father's flock in Shechem. + +37:13 And Israel said unto Joseph, Do not thy brethren feed the flock +in Shechem? come, and I will send thee unto them. And he said to him, +Here am I. + +37:14 And he said to him, Go, I pray thee, see whether it be well with +thy brethren, and well with the flocks; and bring me word again. So he +sent him out of the vale of Hebron, and he came to Shechem. + +37:15 And a certain man found him, and, behold, he was wandering in +the field: and the man asked him, saying, What seekest thou? 37:16 +And he said, I seek my brethren: tell me, I pray thee, where they feed +their flocks. + +37:17 And the man said, They are departed hence; for I heard them say, +Let us go to Dothan. And Joseph went after his brethren, and found +them in Dothan. + +37:18 And when they saw him afar off, even before he came near unto +them, they conspired against him to slay him. + +37:19 And they said one to another, Behold, this dreamer cometh. + +37:20 Come now therefore, and let us slay him, and cast him into some +pit, and we will say, Some evil beast hath devoured him: and we shall +see what will become of his dreams. + +37:21 And Reuben heard it, and he delivered him out of their hands; +and said, Let us not kill him. + +37:22 And Reuben said unto them, Shed no blood, but cast him into this +pit that is in the wilderness, and lay no hand upon him; that he might +rid him out of their hands, to deliver him to his father again. + +37:23 And it came to pass, when Joseph was come unto his brethren, +that they stript Joseph out of his coat, his coat of many colours that +was on him; 37:24 And they took him, and cast him into a pit: and the +pit was empty, there was no water in it. + +37:25 And they sat down to eat bread: and they lifted up their eyes +and looked, and, behold, a company of Ishmeelites came from Gilead +with their camels bearing spicery and balm and myrrh, going to carry +it down to Egypt. + +37:26 And Judah said unto his brethren, What profit is it if we slay +our brother, and conceal his blood? 37:27 Come, and let us sell him +to the Ishmeelites, and let not our hand be upon him; for he is our +brother and our flesh. And his brethren were content. + +37:28 Then there passed by Midianites merchantmen; and they drew and +lifted up Joseph out of the pit, and sold Joseph to the Ishmeelites +for twenty pieces of silver: and they brought Joseph into Egypt. + +37:29 And Reuben returned unto the pit; and, behold, Joseph was not in +the pit; and he rent his clothes. + +37:30 And he returned unto his brethren, and said, The child is not; +and I, whither shall I go? 37:31 And they took Joseph's coat, and +killed a kid of the goats, and dipped the coat in the blood; 37:32 And +they sent the coat of many colours, and they brought it to their +father; and said, This have we found: know now whether it be thy son's +coat or no. + +37:33 And he knew it, and said, It is my son's coat; an evil beast +hath devoured him; Joseph is without doubt rent in pieces. + +37:34 And Jacob rent his clothes, and put sackcloth upon his loins, +and mourned for his son many days. + +37:35 And all his sons and all his daughters rose up to comfort him; +but he refused to be comforted; and he said, For I will go down into +the grave unto my son mourning. Thus his father wept for him. + +37:36 And the Midianites sold him into Egypt unto Potiphar, an officer +of Pharaoh's, and captain of the guard. + +38:1 And it came to pass at that time, that Judah went down from his +brethren, and turned in to a certain Adullamite, whose name was Hirah. + +38:2 And Judah saw there a daughter of a certain Canaanite, whose name +was Shuah; and he took her, and went in unto her. + +38:3 And she conceived, and bare a son; and he called his name Er. + +38:4 And she conceived again, and bare a son; and she called his name +Onan. + +38:5 And she yet again conceived, and bare a son; and called his name +Shelah: and he was at Chezib, when she bare him. + +38:6 And Judah took a wife for Er his firstborn, whose name was Tamar. + +38:7 And Er, Judah's firstborn, was wicked in the sight of the LORD; +and the LORD slew him. + +38:8 And Judah said unto Onan, Go in unto thy brother's wife, and +marry her, and raise up seed to thy brother. + +38:9 And Onan knew that the seed should not be his; and it came to +pass, when he went in unto his brother's wife, that he spilled it on +the ground, lest that he should give seed to his brother. + +38:10 And the thing which he did displeased the LORD: wherefore he +slew him also. + +38:11 Then said Judah to Tamar his daughter in law, Remain a widow at +thy father's house, till Shelah my son be grown: for he said, Lest +peradventure he die also, as his brethren did. And Tamar went and +dwelt in her father's house. + +38:12 And in process of time the daughter of Shuah Judah's wife died; +and Judah was comforted, and went up unto his sheepshearers to +Timnath, he and his friend Hirah the Adullamite. + +38:13 And it was told Tamar, saying, Behold thy father in law goeth up +to Timnath to shear his sheep. + +38:14 And she put her widow's garments off from her, and covered her +with a vail, and wrapped herself, and sat in an open place, which is +by the way to Timnath; for she saw that Shelah was grown, and she was +not given unto him to wife. + +38:15 When Judah saw her, he thought her to be an harlot; because she +had covered her face. + +38:16 And he turned unto her by the way, and said, Go to, I pray thee, +let me come in unto thee; (for he knew not that she was his daughter +in law.) And she said, What wilt thou give me, that thou mayest come +in unto me? 38:17 And he said, I will send thee a kid from the flock. +And she said, Wilt thou give me a pledge, till thou send it? 38:18 +And he said, What pledge shall I give thee? And she said, Thy signet, +and thy bracelets, and thy staff that is in thine hand. And he gave it +her, and came in unto her, and she conceived by him. + +38:19 And she arose, and went away, and laid by her vail from her, and +put on the garments of her widowhood. + +38:20 And Judah sent the kid by the hand of his friend the Adullamite, +to receive his pledge from the woman's hand: but he found her not. + +38:21 Then he asked the men of that place, saying, Where is the +harlot, that was openly by the way side? And they said, There was no +harlot in this place. + +38:22 And he returned to Judah, and said, I cannot find her; and also +the men of the place said, that there was no harlot in this place. + +38:23 And Judah said, Let her take it to her, lest we be shamed: +behold, I sent this kid, and thou hast not found her. + +38:24 And it came to pass about three months after, that it was told +Judah, saying, Tamar thy daughter in law hath played the harlot; and +also, behold, she is with child by whoredom. And Judah said, Bring her +forth, and let her be burnt. + +38:25 When she was brought forth, she sent to her father in law, +saying, By the man, whose these are, am I with child: and she said, +Discern, I pray thee, whose are these, the signet, and bracelets, and +staff. + +38:26 And Judah acknowledged them, and said, She hath been more +righteous than I; because that I gave her not to Shelah my son. And he +knew her again no more. + +38:27 And it came to pass in the time of her travail, that, behold, +twins were in her womb. + +38:28 And it came to pass, when she travailed, that the one put out +his hand: and the midwife took and bound upon his hand a scarlet +thread, saying, This came out first. + +38:29 And it came to pass, as he drew back his hand, that, behold, his +brother came out: and she said, How hast thou broken forth? this +breach be upon thee: therefore his name was called Pharez. + +38:30 And afterward came out his brother, that had the scarlet thread +upon his hand: and his name was called Zarah. + +39:1 And Joseph was brought down to Egypt; and Potiphar, an officer of +Pharaoh, captain of the guard, an Egyptian, bought him of the hands of +the Ishmeelites, which had brought him down thither. + +39:2 And the LORD was with Joseph, and he was a prosperous man; and he +was in the house of his master the Egyptian. + +39:3 And his master saw that the LORD was with him, and that the LORD +made all that he did to prosper in his hand. + +39:4 And Joseph found grace in his sight, and he served him: and he +made him overseer over his house, and all that he had he put into his +hand. + +39:5 And it came to pass from the time that he had made him overseer +in his house, and over all that he had, that the LORD blessed the +Egyptian's house for Joseph's sake; and the blessing of the LORD was +upon all that he had in the house, and in the field. + +39:6 And he left all that he had in Joseph's hand; and he knew not +ought he had, save the bread which he did eat. And Joseph was a goodly +person, and well favoured. + +39:7 And it came to pass after these things, that his master's wife +cast her eyes upon Joseph; and she said, Lie with me. + +39:8 But he refused, and said unto his master's wife, Behold, my +master wotteth not what is with me in the house, and he hath committed +all that he hath to my hand; 39:9 There is none greater in this house +than I; neither hath he kept back any thing from me but thee, because +thou art his wife: how then can I do this great wickedness, and sin +against God? 39:10 And it came to pass, as she spake to Joseph day by +day, that he hearkened not unto her, to lie by her, or to be with her. + +39:11 And it came to pass about this time, that Joseph went into the +house to do his business; and there was none of the men of the house +there within. + +39:12 And she caught him by his garment, saying, Lie with me: and he +left his garment in her hand, and fled, and got him out. + +39:13 And it came to pass, when she saw that he had left his garment +in her hand, and was fled forth, 39:14 That she called unto the men of +her house, and spake unto them, saying, See, he hath brought in an +Hebrew unto us to mock us; he came in unto me to lie with me, and I +cried with a loud voice: 39:15 And it came to pass, when he heard that +I lifted up my voice and cried, that he left his garment with me, and +fled, and got him out. + +39:16 And she laid up his garment by her, until his lord came home. + +39:17 And she spake unto him according to these words, saying, The +Hebrew servant, which thou hast brought unto us, came in unto me to +mock me: 39:18 And it came to pass, as I lifted up my voice and cried, +that he left his garment with me, and fled out. + +39:19 And it came to pass, when his master heard the words of his +wife, which she spake unto him, saying, After this manner did thy +servant to me; that his wrath was kindled. + +39:20 And Joseph's master took him, and put him into the prison, a +place where the king's prisoners were bound: and he was there in the +prison. + +39:21 But the LORD was with Joseph, and shewed him mercy, and gave him +favour in the sight of the keeper of the prison. + +39:22 And the keeper of the prison committed to Joseph's hand all the +prisoners that were in the prison; and whatsoever they did there, he +was the doer of it. + +39:23 The keeper of the prison looked not to any thing that was under +his hand; because the LORD was with him, and that which he did, the +LORD made it to prosper. + +40:1 And it came to pass after these things, that the butler of the +king of Egypt and his baker had offended their lord the king of Egypt. + +40:2 And Pharaoh was wroth against two of his officers, against the +chief of the butlers, and against the chief of the bakers. + +40:3 And he put them in ward in the house of the captain of the guard, +into the prison, the place where Joseph was bound. + +40:4 And the captain of the guard charged Joseph with them, and he +served them: and they continued a season in ward. + +40:5 And they dreamed a dream both of them, each man his dream in one +night, each man according to the interpretation of his dream, the +butler and the baker of the king of Egypt, which were bound in the +prison. + +40:6 And Joseph came in unto them in the morning, and looked upon +them, and, behold, they were sad. + +40:7 And he asked Pharaoh's officers that were with him in the ward of +his lord's house, saying, Wherefore look ye so sadly to day? 40:8 And +they said unto him, We have dreamed a dream, and there is no +interpreter of it. And Joseph said unto them, Do not interpretations +belong to God? tell me them, I pray you. + +40:9 And the chief butler told his dream to Joseph, and said to him, +In my dream, behold, a vine was before me; 40:10 And in the vine were +three branches: and it was as though it budded, and her blossoms shot +forth; and the clusters thereof brought forth ripe grapes: 40:11 And +Pharaoh's cup was in my hand: and I took the grapes, and pressed them +into Pharaoh's cup, and I gave the cup into Pharaoh's hand. + +40:12 And Joseph said unto him, This is the interpretation of it: The +three branches are three days: 40:13 Yet within three days shall +Pharaoh lift up thine head, and restore thee unto thy place: and thou +shalt deliver Pharaoh's cup into his hand, after the former manner +when thou wast his butler. + +40:14 But think on me when it shall be well with thee, and shew +kindness, I pray thee, unto me, and make mention of me unto Pharaoh, +and bring me out of this house: 40:15 For indeed I was stolen away out +of the land of the Hebrews: and here also have I done nothing that +they should put me into the dungeon. + +40:16 When the chief baker saw that the interpretation was good, he +said unto Joseph, I also was in my dream, and, behold, I had three +white baskets on my head: 40:17 And in the uppermost basket there was +of all manner of bakemeats for Pharaoh; and the birds did eat them out +of the basket upon my head. + +40:18 And Joseph answered and said, This is the interpretation +thereof: The three baskets are three days: 40:19 Yet within three days +shall Pharaoh lift up thy head from off thee, and shall hang thee on a +tree; and the birds shall eat thy flesh from off thee. + +40:20 And it came to pass the third day, which was Pharaoh's birthday, +that he made a feast unto all his servants: and he lifted up the head +of the chief butler and of the chief baker among his servants. + +40:21 And he restored the chief butler unto his butlership again; and +he gave the cup into Pharaoh's hand: 40:22 But he hanged the chief +baker: as Joseph had interpreted to them. + +40:23 Yet did not the chief butler remember Joseph, but forgat him. + +41:1 And it came to pass at the end of two full years, that Pharaoh +dreamed: and, behold, he stood by the river. + +41:2 And, behold, there came up out of the river seven well favoured +kine and fatfleshed; and they fed in a meadow. + +41:3 And, behold, seven other kine came up after them out of the +river, ill favoured and leanfleshed; and stood by the other kine upon +the brink of the river. + +41:4 And the ill favoured and leanfleshed kine did eat up the seven +well favoured and fat kine. So Pharaoh awoke. + +41:5 And he slept and dreamed the second time: and, behold, seven ears +of corn came up upon one stalk, rank and good. + +41:6 And, behold, seven thin ears and blasted with the east wind +sprung up after them. + +41:7 And the seven thin ears devoured the seven rank and full ears. +And Pharaoh awoke, and, behold, it was a dream. + +41:8 And it came to pass in the morning that his spirit was troubled; +and he sent and called for all the magicians of Egypt, and all the +wise men thereof: and Pharaoh told them his dream; but there was none +that could interpret them unto Pharaoh. + +41:9 Then spake the chief butler unto Pharaoh, saying, I do remember +my faults this day: 41:10 Pharaoh was wroth with his servants, and put +me in ward in the captain of the guard's house, both me and the chief +baker: 41:11 And we dreamed a dream in one night, I and he; we dreamed +each man according to the interpretation of his dream. + +41:12 And there was there with us a young man, an Hebrew, servant to +the captain of the guard; and we told him, and he interpreted to us +our dreams; to each man according to his dream he did interpret. + +41:13 And it came to pass, as he interpreted to us, so it was; me he +restored unto mine office, and him he hanged. + +41:14 Then Pharaoh sent and called Joseph, and they brought him +hastily out of the dungeon: and he shaved himself, and changed his +raiment, and came in unto Pharaoh. + +41:15 And Pharaoh said unto Joseph, I have dreamed a dream, and there +is none that can interpret it: and I have heard say of thee, that thou +canst understand a dream to interpret it. + +41:16 And Joseph answered Pharaoh, saying, It is not in me: God shall +give Pharaoh an answer of peace. + +41:17 And Pharaoh said unto Joseph, In my dream, behold, I stood upon +the bank of the river: 41:18 And, behold, there came up out of the +river seven kine, fatfleshed and well favoured; and they fed in a +meadow: 41:19 And, behold, seven other kine came up after them, poor +and very ill favoured and leanfleshed, such as I never saw in all the +land of Egypt for badness: 41:20 And the lean and the ill favoured +kine did eat up the first seven fat kine: 41:21 And when they had +eaten them up, it could not be known that they had eaten them; but +they were still ill favoured, as at the beginning. So I awoke. + +41:22 And I saw in my dream, and, behold, seven ears came up in one +stalk, full and good: 41:23 And, behold, seven ears, withered, thin, +and blasted with the east wind, sprung up after them: 41:24 And the +thin ears devoured the seven good ears: and I told this unto the +magicians; but there was none that could declare it to me. + +41:25 And Joseph said unto Pharaoh, The dream of Pharaoh is one: God +hath shewed Pharaoh what he is about to do. + +41:26 The seven good kine are seven years; and the seven good ears are +seven years: the dream is one. + +41:27 And the seven thin and ill favoured kine that came up after them +are seven years; and the seven empty ears blasted with the east wind +shall be seven years of famine. + +41:28 This is the thing which I have spoken unto Pharaoh: What God is +about to do he sheweth unto Pharaoh. + +41:29 Behold, there come seven years of great plenty throughout all +the land of Egypt: 41:30 And there shall arise after them seven years +of famine; and all the plenty shall be forgotten in the land of Egypt; +and the famine shall consume the land; 41:31 And the plenty shall not +be known in the land by reason of that famine following; for it shall +be very grievous. + +41:32 And for that the dream was doubled unto Pharaoh twice; it is +because the thing is established by God, and God will shortly bring it +to pass. + +41:33 Now therefore let Pharaoh look out a man discreet and wise, and +set him over the land of Egypt. + +41:34 Let Pharaoh do this, and let him appoint officers over the land, +and take up the fifth part of the land of Egypt in the seven plenteous +years. + +41:35 And let them gather all the food of those good years that come, +and lay up corn under the hand of Pharaoh, and let them keep food in +the cities. + +41:36 And that food shall be for store to the land against the seven +years of famine, which shall be in the land of Egypt; that the land +perish not through the famine. + +41:37 And the thing was good in the eyes of Pharaoh, and in the eyes +of all his servants. + +41:38 And Pharaoh said unto his servants, Can we find such a one as +this is, a man in whom the Spirit of God is? 41:39 And Pharaoh said +unto Joseph, Forasmuch as God hath shewed thee all this, there is none +so discreet and wise as thou art: 41:40 Thou shalt be over my house, +and according unto thy word shall all my people be ruled: only in the +throne will I be greater than thou. + +41:41 And Pharaoh said unto Joseph, See, I have set thee over all the +land of Egypt. + +41:42 And Pharaoh took off his ring from his hand, and put it upon +Joseph's hand, and arrayed him in vestures of fine linen, and put a +gold chain about his neck; 41:43 And he made him to ride in the second +chariot which he had; and they cried before him, Bow the knee: and he +made him ruler over all the land of Egypt. + +41:44 And Pharaoh said unto Joseph, I am Pharaoh, and without thee +shall no man lift up his hand or foot in all the land of Egypt. + +41:45 And Pharaoh called Joseph's name Zaphnathpaaneah; and he gave +him to wife Asenath the daughter of Potipherah priest of On. And +Joseph went out over all the land of Egypt. + +41:46 And Joseph was thirty years old when he stood before Pharaoh +king of Egypt. And Joseph went out from the presence of Pharaoh, and +went throughout all the land of Egypt. + +41:47 And in the seven plenteous years the earth brought forth by +handfuls. + +41:48 And he gathered up all the food of the seven years, which were +in the land of Egypt, and laid up the food in the cities: the food of +the field, which was round about every city, laid he up in the same. + +41:49 And Joseph gathered corn as the sand of the sea, very much, +until he left numbering; for it was without number. + +41:50 And unto Joseph were born two sons before the years of famine +came, which Asenath the daughter of Potipherah priest of On bare unto +him. + +41:51 And Joseph called the name of the firstborn Manasseh: For God, +said he, hath made me forget all my toil, and all my father's house. + +41:52 And the name of the second called he Ephraim: For God hath +caused me to be fruitful in the land of my affliction. + +41:53 And the seven years of plenteousness, that was in the land of +Egypt, were ended. + +41:54 And the seven years of dearth began to come, according as Joseph +had said: and the dearth was in all lands; but in all the land of +Egypt there was bread. + +41:55 And when all the land of Egypt was famished, the people cried to +Pharaoh for bread: and Pharaoh said unto all the Egyptians, Go unto +Joseph; what he saith to you, do. + +41:56 And the famine was over all the face of the earth: and Joseph +opened all the storehouses, and sold unto the Egyptians; and the +famine waxed sore in the land of Egypt. + +41:57 And all countries came into Egypt to Joseph for to buy corn; +because that the famine was so sore in all lands. + +42:1 Now when Jacob saw that there was corn in Egypt, Jacob said unto +his sons, Why do ye look one upon another? 42:2 And he said, Behold, +I have heard that there is corn in Egypt: get you down thither, and +buy for us from thence; that we may live, and not die. + +42:3 And Joseph's ten brethren went down to buy corn in Egypt. + +42:4 But Benjamin, Joseph's brother, Jacob sent not with his brethren; +for he said, Lest peradventure mischief befall him. + +42:5 And the sons of Israel came to buy corn among those that came: +for the famine was in the land of Canaan. + +42:6 And Joseph was the governor over the land, and he it was that +sold to all the people of the land: and Joseph's brethren came, and +bowed down themselves before him with their faces to the earth. + +42:7 And Joseph saw his brethren, and he knew them, but made himself +strange unto them, and spake roughly unto them; and he said unto them, +Whence come ye? And they said, From the land of Canaan to buy food. + +42:8 And Joseph knew his brethren, but they knew not him. + +42:9 And Joseph remembered the dreams which he dreamed of them, and +said unto them, Ye are spies; to see the nakedness of the land ye are +come. + +42:10 And they said unto him, Nay, my lord, but to buy food are thy +servants come. + +42:11 We are all one man's sons; we are true men, thy servants are no +spies. + +42:12 And he said unto them, Nay, but to see the nakedness of the land +ye are come. + +42:13 And they said, Thy servants are twelve brethren, the sons of one +man in the land of Canaan; and, behold, the youngest is this day with +our father, and one is not. + +42:14 And Joseph said unto them, That is it that I spake unto you, +saying, Ye are spies: 42:15 Hereby ye shall be proved: By the life of +Pharaoh ye shall not go forth hence, except your youngest brother come +hither. + +42:16 Send one of you, and let him fetch your brother, and ye shall be +kept in prison, that your words may be proved, whether there be any +truth in you: or else by the life of Pharaoh surely ye are spies. + +42:17 And he put them all together into ward three days. + +42:18 And Joseph said unto them the third day, This do, and live; for +I fear God: 42:19 If ye be true men, let one of your brethren be bound +in the house of your prison: go ye, carry corn for the famine of your +houses: 42:20 But bring your youngest brother unto me; so shall your +words be verified, and ye shall not die. And they did so. + +42:21 And they said one to another, We are verily guilty concerning +our brother, in that we saw the anguish of his soul, when he besought +us, and we would not hear; therefore is this distress come upon us. + +42:22 And Reuben answered them, saying, Spake I not unto you, saying, +Do not sin against the child; and ye would not hear? therefore, +behold, also his blood is required. + +42:23 And they knew not that Joseph understood them; for he spake unto +them by an interpreter. + +42:24 And he turned himself about from them, and wept; and returned to +them again, and communed with them, and took from them Simeon, and +bound him before their eyes. + +42:25 Then Joseph commanded to fill their sacks with corn, and to +restore every man's money into his sack, and to give them provision +for the way: and thus did he unto them. + +42:26 And they laded their asses with the corn, and departed thence. + +42:27 And as one of them opened his sack to give his ass provender in +the inn, he espied his money; for, behold, it was in his sack's mouth. + +42:28 And he said unto his brethren, My money is restored; and, lo, it +is even in my sack: and their heart failed them, and they were afraid, +saying one to another, What is this that God hath done unto us? 42:29 +And they came unto Jacob their father unto the land of Canaan, and +told him all that befell unto them; saying, 42:30 The man, who is the +lord of the land, spake roughly to us, and took us for spies of the +country. + +42:31 And we said unto him, We are true men; we are no spies: 42:32 We +be twelve brethren, sons of our father; one is not, and the youngest +is this day with our father in the land of Canaan. + +42:33 And the man, the lord of the country, said unto us, Hereby shall +I know that ye are true men; leave one of your brethren here with me, +and take food for the famine of your households, and be gone: 42:34 +And bring your youngest brother unto me: then shall I know that ye are +no spies, but that ye are true men: so will I deliver you your +brother, and ye shall traffick in the land. + +42:35 And it came to pass as they emptied their sacks, that, behold, +every man's bundle of money was in his sack: and when both they and +their father saw the bundles of money, they were afraid. + +42:36 And Jacob their father said unto them, Me have ye bereaved of my +children: Joseph is not, and Simeon is not, and ye will take Benjamin +away: all these things are against me. + +42:37 And Reuben spake unto his father, saying, Slay my two sons, if I +bring him not to thee: deliver him into my hand, and I will bring him +to thee again. + +42:38 And he said, My son shall not go down with you; for his brother +is dead, and he is left alone: if mischief befall him by the way in +the which ye go, then shall ye bring down my gray hairs with sorrow to +the grave. + +43:1 And the famine was sore in the land. + +43:2 And it came to pass, when they had eaten up the corn which they +had brought out of Egypt, their father said unto them, Go again, buy +us a little food. + +43:3 And Judah spake unto him, saying, The man did solemnly protest +unto us, saying, Ye shall not see my face, except your brother be with +you. + +43:4 If thou wilt send our brother with us, we will go down and buy +thee food: 43:5 But if thou wilt not send him, we will not go down: +for the man said unto us, Ye shall not see my face, except your +brother be with you. + +43:6 And Israel said, Wherefore dealt ye so ill with me, as to tell +the man whether ye had yet a brother? 43:7 And they said, The man +asked us straitly of our state, and of our kindred, saying, Is your +father yet alive? have ye another brother? and we told him according +to the tenor of these words: could we certainly know that he would +say, Bring your brother down? 43:8 And Judah said unto Israel his +father, Send the lad with me, and we will arise and go; that we may +live, and not die, both we, and thou, and also our little ones. + +43:9 I will be surety for him; of my hand shalt thou require him: if I +bring him not unto thee, and set him before thee, then let me bear the +blame for ever: 43:10 For except we had lingered, surely now we had +returned this second time. + +43:11 And their father Israel said unto them, If it must be so now, do +this; take of the best fruits in the land in your vessels, and carry +down the man a present, a little balm, and a little honey, spices, and +myrrh, nuts, and almonds: 43:12 And take double money in your hand; +and the money that was brought again in the mouth of your sacks, carry +it again in your hand; peradventure it was an oversight: 43:13 Take +also your brother, and arise, go again unto the man: 43:14 And God +Almighty give you mercy before the man, that he may send away your +other brother, and Benjamin. If I be bereaved of my children, I am +bereaved. + +43:15 And the men took that present, and they took double money in +their hand and Benjamin; and rose up, and went down to Egypt, and +stood before Joseph. + +43:16 And when Joseph saw Benjamin with them, he said to the ruler of +his house, Bring these men home, and slay, and make ready; for these +men shall dine with me at noon. + +43:17 And the man did as Joseph bade; and the man brought the men into +Joseph's house. + +43:18 And the men were afraid, because they were brought into Joseph's +house; and they said, Because of the money that was returned in our +sacks at the first time are we brought in; that he may seek occasion +against us, and fall upon us, and take us for bondmen, and our asses. + +43:19 And they came near to the steward of Joseph's house, and they +communed with him at the door of the house, 43:20 And said, O sir, we +came indeed down at the first time to buy food: 43:21 And it came to +pass, when we came to the inn, that we opened our sacks, and, behold, +every man's money was in the mouth of his sack, our money in full +weight: and we have brought it again in our hand. + +43:22 And other money have we brought down in our hands to buy food: +we cannot tell who put our money in our sacks. + +43:23 And he said, Peace be to you, fear not: your God, and the God of +your father, hath given you treasure in your sacks: I had your money. +And he brought Simeon out unto them. + +43:24 And the man brought the men into Joseph's house, and gave them +water, and they washed their feet; and he gave their asses provender. + +43:25 And they made ready the present against Joseph came at noon: for +they heard that they should eat bread there. + +43:26 And when Joseph came home, they brought him the present which +was in their hand into the house, and bowed themselves to him to the +earth. + +43:27 And he asked them of their welfare, and said, Is your father +well, the old man of whom ye spake? Is he yet alive? 43:28 And they +answered, Thy servant our father is in good health, he is yet alive. +And they bowed down their heads, and made obeisance. + +43:29 And he lifted up his eyes, and saw his brother Benjamin, his +mother's son, and said, Is this your younger brother, of whom ye spake +unto me? And he said, God be gracious unto thee, my son. + +43:30 And Joseph made haste; for his bowels did yearn upon his +brother: and he sought where to weep; and he entered into his chamber, +and wept there. + +43:31 And he washed his face, and went out, and refrained himself, and +said, Set on bread. + +43:32 And they set on for him by himself, and for them by themselves, +and for the Egyptians, which did eat with him, by themselves: because +the Egyptians might not eat bread with the Hebrews; for that is an +abomination unto the Egyptians. + +43:33 And they sat before him, the firstborn according to his +birthright, and the youngest according to his youth: and the men +marvelled one at another. + +43:34 And he took and sent messes unto them from before him: but +Benjamin's mess was five times so much as any of their's. And they +drank, and were merry with him. + +44:1 And he commanded the steward of his house, saying, Fill the men's +sacks with food, as much as they can carry, and put every man's money +in his sack's mouth. + +44:2 And put my cup, the silver cup, in the sack's mouth of the +youngest, and his corn money. And he did according to the word that +Joseph had spoken. + +44:3 As soon as the morning was light, the men were sent away, they +and their asses. + +44:4 And when they were gone out of the city, and not yet far off, +Joseph said unto his steward, Up, follow after the men; and when thou +dost overtake them, say unto them, Wherefore have ye rewarded evil for +good? 44:5 Is not this it in which my lord drinketh, and whereby +indeed he divineth? ye have done evil in so doing. + +44:6 And he overtook them, and he spake unto them these same words. + +44:7 And they said unto him, Wherefore saith my lord these words? God +forbid that thy servants should do according to this thing: 44:8 +Behold, the money, which we found in our sacks' mouths, we brought +again unto thee out of the land of Canaan: how then should we steal +out of thy lord's house silver or gold? 44:9 With whomsoever of thy +servants it be found, both let him die, and we also will be my lord's +bondmen. + +44:10 And he said, Now also let it be according unto your words: he +with whom it is found shall be my servant; and ye shall be blameless. + +44:11 Then they speedily took down every man his sack to the ground, +and opened every man his sack. + +44:12 And he searched, and began at the eldest, and left at the +youngest: and the cup was found in Benjamin's sack. + +44:13 Then they rent their clothes, and laded every man his ass, and +returned to the city. + +44:14 And Judah and his brethren came to Joseph's house; for he was +yet there: and they fell before him on the ground. + +44:15 And Joseph said unto them, What deed is this that ye have done? +wot ye not that such a man as I can certainly divine? 44:16 And Judah +said, What shall we say unto my lord? what shall we speak? or how +shall we clear ourselves? God hath found out the iniquity of thy +servants: behold, we are my lord's servants, both we, and he also with +whom the cup is found. + +44:17 And he said, God forbid that I should do so: but the man in +whose hand the cup is found, he shall be my servant; and as for you, +get you up in peace unto your father. + +44:18 Then Judah came near unto him, and said, Oh my lord, let thy +servant, I pray thee, speak a word in my lord's ears, and let not +thine anger burn against thy servant: for thou art even as Pharaoh. + +44:19 My lord asked his servants, saying, Have ye a father, or a +brother? 44:20 And we said unto my lord, We have a father, an old +man, and a child of his old age, a little one; and his brother is +dead, and he alone is left of his mother, and his father loveth him. + +44:21 And thou saidst unto thy servants, Bring him down unto me, that +I may set mine eyes upon him. + +44:22 And we said unto my lord, The lad cannot leave his father: for +if he should leave his father, his father would die. + +44:23 And thou saidst unto thy servants, Except your youngest brother +come down with you, ye shall see my face no more. + +44:24 And it came to pass when we came up unto thy servant my father, +we told him the words of my lord. + +44:25 And our father said, Go again, and buy us a little food. + +44:26 And we said, We cannot go down: if our youngest brother be with +us, then will we go down: for we may not see the man's face, except +our youngest brother be with us. + +44:27 And thy servant my father said unto us, Ye know that my wife +bare me two sons: 44:28 And the one went out from me, and I said, +Surely he is torn in pieces; and I saw him not since: 44:29 And if ye +take this also from me, and mischief befall him, ye shall bring down +my gray hairs with sorrow to the grave. + +44:30 Now therefore when I come to thy servant my father, and the lad +be not with us; seeing that his life is bound up in the lad's life; +44:31 It shall come to pass, when he seeth that the lad is not with +us, that he will die: and thy servants shall bring down the gray hairs +of thy servant our father with sorrow to the grave. + +44:32 For thy servant became surety for the lad unto my father, +saying, If I bring him not unto thee, then I shall bear the blame to +my father for ever. + +44:33 Now therefore, I pray thee, let thy servant abide instead of the +lad a bondman to my lord; and let the lad go up with his brethren. + +44:34 For how shall I go up to my father, and the lad be not with me? +lest peradventure I see the evil that shall come on my father. + +45:1 Then Joseph could not refrain himself before all them that stood +by him; and he cried, Cause every man to go out from me. And there +stood no man with him, while Joseph made himself known unto his +brethren. + +45:2 And he wept aloud: and the Egyptians and the house of Pharaoh +heard. + +45:3 And Joseph said unto his brethren, I am Joseph; doth my father +yet live? And his brethren could not answer him; for they were +troubled at his presence. + +45:4 And Joseph said unto his brethren, Come near to me, I pray you. +And they came near. And he said, I am Joseph your brother, whom ye +sold into Egypt. + +45:5 Now therefore be not grieved, nor angry with yourselves, that ye +sold me hither: for God did send me before you to preserve life. + +45:6 For these two years hath the famine been in the land: and yet +there are five years, in the which there shall neither be earing nor +harvest. + +45:7 And God sent me before you to preserve you a posterity in the +earth, and to save your lives by a great deliverance. + +45:8 So now it was not you that sent me hither, but God: and he hath +made me a father to Pharaoh, and lord of all his house, and a ruler +throughout all the land of Egypt. + +45:9 Haste ye, and go up to my father, and say unto him, Thus saith +thy son Joseph, God hath made me lord of all Egypt: come down unto me, +tarry not: 45:10 And thou shalt dwell in the land of Goshen, and thou +shalt be near unto me, thou, and thy children, and thy children's +children, and thy flocks, and thy herds, and all that thou hast: 45:11 +And there will I nourish thee; for yet there are five years of famine; +lest thou, and thy household, and all that thou hast, come to poverty. + +45:12 And, behold, your eyes see, and the eyes of my brother Benjamin, +that it is my mouth that speaketh unto you. + +45:13 And ye shall tell my father of all my glory in Egypt, and of all +that ye have seen; and ye shall haste and bring down my father hither. + +45:14 And he fell upon his brother Benjamin's neck, and wept; and +Benjamin wept upon his neck. + +45:15 Moreover he kissed all his brethren, and wept upon them: and +after that his brethren talked with him. + +45:16 And the fame thereof was heard in Pharaoh's house, saying, +Joseph's brethren are come: and it pleased Pharaoh well, and his +servants. + +45:17 And Pharaoh said unto Joseph, Say unto thy brethren, This do ye; +lade your beasts, and go, get you unto the land of Canaan; 45:18 And +take your father and your households, and come unto me: and I will +give you the good of the land of Egypt, and ye shall eat the fat of +the land. + +45:19 Now thou art commanded, this do ye; take you wagons out of the +land of Egypt for your little ones, and for your wives, and bring your +father, and come. + +45:20 Also regard not your stuff; for the good of all the land of +Egypt is your's. + +45:21 And the children of Israel did so: and Joseph gave them wagons, +according to the commandment of Pharaoh, and gave them provision for +the way. + +45:22 To all of them he gave each man changes of raiment; but to +Benjamin he gave three hundred pieces of silver, and five changes of +raiment. + +45:23 And to his father he sent after this manner; ten asses laden +with the good things of Egypt, and ten she asses laden with corn and +bread and meat for his father by the way. + +45:24 So he sent his brethren away, and they departed: and he said +unto them, See that ye fall not out by the way. + +45:25 And they went up out of Egypt, and came into the land of Canaan +unto Jacob their father, 45:26 And told him, saying, Joseph is yet +alive, and he is governor over all the land of Egypt. And Jacob's +heart fainted, for he believed them not. + +45:27 And they told him all the words of Joseph, which he had said +unto them: and when he saw the wagons which Joseph had sent to carry +him, the spirit of Jacob their father revived: 45:28 And Israel said, +It is enough; Joseph my son is yet alive: I will go and see him before +I die. + +46:1 And Israel took his journey with all that he had, and came to +Beersheba, and offered sacrifices unto the God of his father Isaac. + +46:2 And God spake unto Israel in the visions of the night, and said, +Jacob, Jacob. And he said, Here am I. + +46:3 And he said, I am God, the God of thy father: fear not to go down +into Egypt; for I will there make of thee a great nation: 46:4 I will +go down with thee into Egypt; and I will also surely bring thee up +again: and Joseph shall put his hand upon thine eyes. + +46:5 And Jacob rose up from Beersheba: and the sons of Israel carried +Jacob their father, and their little ones, and their wives, in the +wagons which Pharaoh had sent to carry him. + +46:6 And they took their cattle, and their goods, which they had +gotten in the land of Canaan, and came into Egypt, Jacob, and all his +seed with him: 46:7 His sons, and his sons' sons with him, his +daughters, and his sons' daughters, and all his seed brought he with +him into Egypt. + +46:8 And these are the names of the children of Israel, which came +into Egypt, Jacob and his sons: Reuben, Jacob's firstborn. + +46:9 And the sons of Reuben; Hanoch, and Phallu, and Hezron, and +Carmi. + +46:10 And the sons of Simeon; Jemuel, and Jamin, and Ohad, and Jachin, +and Zohar, and Shaul the son of a Canaanitish woman. + +46:11 And the sons of Levi; Gershon, Kohath, and Merari. + +46:12 And the sons of Judah; Er, and Onan, and Shelah, and Pharez, and +Zarah: but Er and Onan died in the land of Canaan. And the sons of +Pharez were Hezron and Hamul. + +46:13 And the sons of Issachar; Tola, and Phuvah, and Job, and +Shimron. + +46:14 And the sons of Zebulun; Sered, and Elon, and Jahleel. + +46:15 These be the sons of Leah, which she bare unto Jacob in +Padanaram, with his daughter Dinah: all the souls of his sons and his +daughters were thirty and three. + +46:16 And the sons of Gad; Ziphion, and Haggi, Shuni, and Ezbon, Eri, +and Arodi, and Areli. + +46:17 And the sons of Asher; Jimnah, and Ishuah, and Isui, and Beriah, +and Serah their sister: and the sons of Beriah; Heber, and Malchiel. + +46:18 These are the sons of Zilpah, whom Laban gave to Leah his +daughter, and these she bare unto Jacob, even sixteen souls. + +46:19 The sons of Rachel Jacob's wife; Joseph, and Benjamin. + +46:20 And unto Joseph in the land of Egypt were born Manasseh and +Ephraim, which Asenath the daughter of Potipherah priest of On bare +unto him. + +46:21 And the sons of Benjamin were Belah, and Becher, and Ashbel, +Gera, and Naaman, Ehi, and Rosh, Muppim, and Huppim, and Ard. + +46:22 These are the sons of Rachel, which were born to Jacob: all the +souls were fourteen. + +46:23 And the sons of Dan; Hushim. + +46:24 And the sons of Naphtali; Jahzeel, and Guni, and Jezer, and +Shillem. + +46:25 These are the sons of Bilhah, which Laban gave unto Rachel his +daughter, and she bare these unto Jacob: all the souls were seven. + +46:26 All the souls that came with Jacob into Egypt, which came out of +his loins, besides Jacob's sons' wives, all the souls were threescore +and six; 46:27 And the sons of Joseph, which were born him in Egypt, +were two souls: all the souls of the house of Jacob, which came into +Egypt, were threescore and ten. + +46:28 And he sent Judah before him unto Joseph, to direct his face +unto Goshen; and they came into the land of Goshen. + +46:29 And Joseph made ready his chariot, and went up to meet Israel +his father, to Goshen, and presented himself unto him; and he fell on +his neck, and wept on his neck a good while. + +46:30 And Israel said unto Joseph, Now let me die, since I have seen +thy face, because thou art yet alive. + +46:31 And Joseph said unto his brethren, and unto his father's house, +I will go up, and shew Pharaoh, and say unto him, My brethren, and my +father's house, which were in the land of Canaan, are come unto me; +46:32 And the men are shepherds, for their trade hath been to feed +cattle; and they have brought their flocks, and their herds, and all +that they have. + +46:33 And it shall come to pass, when Pharaoh shall call you, and +shall say, What is your occupation? 46:34 That ye shall say, Thy +servants' trade hath been about cattle from our youth even until now, +both we, and also our fathers: that ye may dwell in the land of +Goshen; for every shepherd is an abomination unto the Egyptians. + +47:1 Then Joseph came and told Pharaoh, and said, My father and my +brethren, and their flocks, and their herds, and all that they have, +are come out of the land of Canaan; and, behold, they are in the land +of Goshen. + +47:2 And he took some of his brethren, even five men, and presented +them unto Pharaoh. + +47:3 And Pharaoh said unto his brethren, What is your occupation? And +they said unto Pharaoh, Thy servants are shepherds, both we, and also +our fathers. + +47:4 They said morever unto Pharaoh, For to sojourn in the land are we +come; for thy servants have no pasture for their flocks; for the +famine is sore in the land of Canaan: now therefore, we pray thee, let +thy servants dwell in the land of Goshen. + +47:5 And Pharaoh spake unto Joseph, saying, Thy father and thy +brethren are come unto thee: 47:6 The land of Egypt is before thee; in +the best of the land make thy father and brethren to dwell; in the +land of Goshen let them dwell: and if thou knowest any men of activity +among them, then make them rulers over my cattle. + +47:7 And Joseph brought in Jacob his father, and set him before +Pharaoh: and Jacob blessed Pharaoh. + +47:8 And Pharaoh said unto Jacob, How old art thou? 47:9 And Jacob +said unto Pharaoh, The days of the years of my pilgrimage are an +hundred and thirty years: few and evil have the days of the years of +my life been, and have not attained unto the days of the years of the +life of my fathers in the days of their pilgrimage. + +47:10 And Jacob blessed Pharaoh, and went out from before Pharaoh. + +47:11 And Joseph placed his father and his brethren, and gave them a +possession in the land of Egypt, in the best of the land, in the land +of Rameses, as Pharaoh had commanded. + +47:12 And Joseph nourished his father, and his brethren, and all his +father's household, with bread, according to their families. + +47:13 And there was no bread in all the land; for the famine was very +sore, so that the land of Egypt and all the land of Canaan fainted by +reason of the famine. + +47:14 And Joseph gathered up all the money that was found in the land +of Egypt, and in the land of Canaan, for the corn which they bought: +and Joseph brought the money into Pharaoh's house. + +47:15 And when money failed in the land of Egypt, and in the land of +Canaan, all the Egyptians came unto Joseph, and said, Give us bread: +for why should we die in thy presence? for the money faileth. + +47:16 And Joseph said, Give your cattle; and I will give you for your +cattle, if money fail. + +47:17 And they brought their cattle unto Joseph: and Joseph gave them +bread in exchange for horses, and for the flocks, and for the cattle +of the herds, and for the asses: and he fed them with bread for all +their cattle for that year. + +47:18 When that year was ended, they came unto him the second year, +and said unto him, We will not hide it from my lord, how that our +money is spent; my lord also hath our herds of cattle; there is not +ought left in the sight of my lord, but our bodies, and our lands: +47:19 Wherefore shall we die before thine eyes, both we and our land? +buy us and our land for bread, and we and our land will be servants +unto Pharaoh: and give us seed, that we may live, and not die, that +the land be not desolate. + +47:20 And Joseph bought all the land of Egypt for Pharaoh; for the +Egyptians sold every man his field, because the famine prevailed over +them: so the land became Pharaoh's. + +47:21 And as for the people, he removed them to cities from one end of +the borders of Egypt even to the other end thereof. + +47:22 Only the land of the priests bought he not; for the priests had +a portion assigned them of Pharaoh, and did eat their portion which +Pharaoh gave them: wherefore they sold not their lands. + +47:23 Then Joseph said unto the people, Behold, I have bought you this +day and your land for Pharaoh: lo, here is seed for you, and ye shall +sow the land. + +47:24 And it shall come to pass in the increase, that ye shall give +the fifth part unto Pharaoh, and four parts shall be your own, for +seed of the field, and for your food, and for them of your households, +and for food for your little ones. + +47:25 And they said, Thou hast saved our lives: let us find grace in +the sight of my lord, and we will be Pharaoh's servants. + +47:26 And Joseph made it a law over the land of Egypt unto this day, +that Pharaoh should have the fifth part, except the land of the +priests only, which became not Pharaoh's. + +47:27 And Israel dwelt in the land of Egypt, in the country of Goshen; +and they had possessions therein, and grew, and multiplied +exceedingly. + +47:28 And Jacob lived in the land of Egypt seventeen years: so the +whole age of Jacob was an hundred forty and seven years. + +47:29 And the time drew nigh that Israel must die: and he called his +son Joseph, and said unto him, If now I have found grace in thy sight, +put, I pray thee, thy hand under my thigh, and deal kindly and truly +with me; bury me not, I pray thee, in Egypt: 47:30 But I will lie with +my fathers, and thou shalt carry me out of Egypt, and bury me in their +buryingplace. And he said, I will do as thou hast said. + +47:31 And he said, Swear unto me. And he sware unto him. And Israel +bowed himself upon the bed's head. + +48:1 And it came to pass after these things, that one told Joseph, +Behold, thy father is sick: and he took with him his two sons, +Manasseh and Ephraim. + +48:2 And one told Jacob, and said, Behold, thy son Joseph cometh unto +thee: and Israel strengthened himself, and sat upon the bed. + +48:3 And Jacob said unto Joseph, God Almighty appeared unto me at Luz +in the land of Canaan, and blessed me, 48:4 And said unto me, Behold, +I will make thee fruitful, and multiply thee, and I will make of thee +a multitude of people; and will give this land to thy seed after thee +for an everlasting possession. + +48:5 And now thy two sons, Ephraim and Manasseh, which were born unto +thee in the land of Egypt before I came unto thee into Egypt, are +mine; as Reuben and Simeon, they shall be mine. + +48:6 And thy issue, which thou begettest after them, shall be thine, +and shall be called after the name of their brethren in their +inheritance. + +48:7 And as for me, when I came from Padan, Rachel died by me in the +land of Canaan in the way, when yet there was but a little way to come +unto Ephrath: and I buried her there in the way of Ephrath; the same +is Bethlehem. + +48:8 And Israel beheld Joseph's sons, and said, Who are these? 48:9 +And Joseph said unto his father, They are my sons, whom God hath given +me in this place. And he said, Bring them, I pray thee, unto me, and I +will bless them. + +48:10 Now the eyes of Israel were dim for age, so that he could not +see. + +And he brought them near unto him; and he kissed them, and embraced +them. + +48:11 And Israel said unto Joseph, I had not thought to see thy face: +and, lo, God hath shewed me also thy seed. + +48:12 And Joseph brought them out from between his knees, and he bowed +himself with his face to the earth. + +48:13 And Joseph took them both, Ephraim in his right hand toward +Israel's left hand, and Manasseh in his left hand toward Israel's +right hand, and brought them near unto him. + +48:14 And Israel stretched out his right hand, and laid it upon +Ephraim's head, who was the younger, and his left hand upon Manasseh's +head, guiding his hands wittingly; for Manasseh was the firstborn. + +48:15 And he blessed Joseph, and said, God, before whom my fathers +Abraham and Isaac did walk, the God which fed me all my life long unto +this day, 48:16 The Angel which redeemed me from all evil, bless the +lads; and let my name be named on them, and the name of my fathers +Abraham and Isaac; and let them grow into a multitude in the midst of +the earth. + +48:17 And when Joseph saw that his father laid his right hand upon the +head of Ephraim, it displeased him: and he held up his father's hand, +to remove it from Ephraim's head unto Manasseh's head. + +48:18 And Joseph said unto his father, Not so, my father: for this is +the firstborn; put thy right hand upon his head. + +48:19 And his father refused, and said, I know it, my son, I know it: +he also shall become a people, and he also shall be great: but truly +his younger brother shall be greater than he, and his seed shall +become a multitude of nations. + +48:20 And he blessed them that day, saying, In thee shall Israel +bless, saying, God make thee as Ephraim and as Manasseh: and he set +Ephraim before Manasseh. + +48:21 And Israel said unto Joseph, Behold, I die: but God shall be +with you, and bring you again unto the land of your fathers. + +48:22 Moreover I have given to thee one portion above thy brethren, +which I took out of the hand of the Amorite with my sword and with my +bow. + +49:1 And Jacob called unto his sons, and said, Gather yourselves +together, that I may tell you that which shall befall you in the last +days. + +49:2 Gather yourselves together, and hear, ye sons of Jacob; and +hearken unto Israel your father. + +49:3 Reuben, thou art my firstborn, my might, and the beginning of my +strength, the excellency of dignity, and the excellency of power: 49:4 +Unstable as water, thou shalt not excel; because thou wentest up to +thy father's bed; then defiledst thou it: he went up to my couch. + +49:5 Simeon and Levi are brethren; instruments of cruelty are in their +habitations. + +49:6 O my soul, come not thou into their secret; unto their assembly, +mine honour, be not thou united: for in their anger they slew a man, +and in their selfwill they digged down a wall. + +49:7 Cursed be their anger, for it was fierce; and their wrath, for it +was cruel: I will divide them in Jacob, and scatter them in Israel. + +49:8 Judah, thou art he whom thy brethren shall praise: thy hand shall +be in the neck of thine enemies; thy father's children shall bow down +before thee. + +49:9 Judah is a lion's whelp: from the prey, my son, thou art gone up: +he stooped down, he couched as a lion, and as an old lion; who shall +rouse him up? 49:10 The sceptre shall not depart from Judah, nor a +lawgiver from between his feet, until Shiloh come; and unto him shall +the gathering of the people be. + +49:11 Binding his foal unto the vine, and his ass's colt unto the +choice vine; he washed his garments in wine, and his clothes in the +blood of grapes: 49:12 His eyes shall be red with wine, and his teeth +white with milk. + +49:13 Zebulun shall dwell at the haven of the sea; and he shall be for +an haven of ships; and his border shall be unto Zidon. + +49:14 Issachar is a strong ass couching down between two burdens: +49:15 And he saw that rest was good, and the land that it was +pleasant; and bowed his shoulder to bear, and became a servant unto +tribute. + +49:16 Dan shall judge his people, as one of the tribes of Israel. + +49:17 Dan shall be a serpent by the way, an adder in the path, that +biteth the horse heels, so that his rider shall fall backward. + +49:18 I have waited for thy salvation, O LORD. + +49:19 Gad, a troop shall overcome him: but he shall overcome at the +last. + +49:20 Out of Asher his bread shall be fat, and he shall yield royal +dainties. + +49:21 Naphtali is a hind let loose: he giveth goodly words. + +49:22 Joseph is a fruitful bough, even a fruitful bough by a well; +whose branches run over the wall: 49:23 The archers have sorely +grieved him, and shot at him, and hated him: 49:24 But his bow abode +in strength, and the arms of his hands were made strong by the hands +of the mighty God of Jacob; (from thence is the shepherd, the stone of +Israel:) 49:25 Even by the God of thy father, who shall help thee; and +by the Almighty, who shall bless thee with blessings of heaven above, +blessings of the deep that lieth under, blessings of the breasts, and +of the womb: 49:26 The blessings of thy father have prevailed above +the blessings of my progenitors unto the utmost bound of the +everlasting hills: they shall be on the head of Joseph, and on the +crown of the head of him that was separate from his brethren. + +49:27 Benjamin shall ravin as a wolf: in the morning he shall devour +the prey, and at night he shall divide the spoil. + +49:28 All these are the twelve tribes of Israel: and this is it that +their father spake unto them, and blessed them; every one according to +his blessing he blessed them. + +49:29 And he charged them, and said unto them, I am to be gathered +unto my people: bury me with my fathers in the cave that is in the +field of Ephron the Hittite, 49:30 In the cave that is in the field of +Machpelah, which is before Mamre, in the land of Canaan, which Abraham +bought with the field of Ephron the Hittite for a possession of a +buryingplace. + +49:31 There they buried Abraham and Sarah his wife; there they buried +Isaac and Rebekah his wife; and there I buried Leah. + +49:32 The purchase of the field and of the cave that is therein was +from the children of Heth. + +49:33 And when Jacob had made an end of commanding his sons, he +gathered up his feet into the bed, and yielded up the ghost, and was +gathered unto his people. + +50:1 And Joseph fell upon his father's face, and wept upon him, and +kissed him. + +50:2 And Joseph commanded his servants the physicians to embalm his +father: and the physicians embalmed Israel. + +50:3 And forty days were fulfilled for him; for so are fulfilled the +days of those which are embalmed: and the Egyptians mourned for him +threescore and ten days. + +50:4 And when the days of his mourning were past, Joseph spake unto +the house of Pharaoh, saying, If now I have found grace in your eyes, +speak, I pray you, in the ears of Pharaoh, saying, 50:5 My father made +me swear, saying, Lo, I die: in my grave which I have digged for me in +the land of Canaan, there shalt thou bury me. Now therefore let me go +up, I pray thee, and bury my father, and I will come again. + +50:6 And Pharaoh said, Go up, and bury thy father, according as he +made thee swear. + +50:7 And Joseph went up to bury his father: and with him went up all +the servants of Pharaoh, the elders of his house, and all the elders +of the land of Egypt, 50:8 And all the house of Joseph, and his +brethren, and his father's house: only their little ones, and their +flocks, and their herds, they left in the land of Goshen. + +50:9 And there went up with him both chariots and horsemen: and it was +a very great company. + +50:10 And they came to the threshingfloor of Atad, which is beyond +Jordan, and there they mourned with a great and very sore lamentation: +and he made a mourning for his father seven days. + +50:11 And when the inhabitants of the land, the Canaanites, saw the +mourning in the floor of Atad, they said, This is a grievous mourning +to the Egyptians: wherefore the name of it was called Abelmizraim, +which is beyond Jordan. + +50:12 And his sons did unto him according as he commanded them: 50:13 +For his sons carried him into the land of Canaan, and buried him in +the cave of the field of Machpelah, which Abraham bought with the +field for a possession of a buryingplace of Ephron the Hittite, before +Mamre. + +50:14 And Joseph returned into Egypt, he, and his brethren, and all +that went up with him to bury his father, after he had buried his +father. + +50:15 And when Joseph's brethren saw that their father was dead, they +said, Joseph will peradventure hate us, and will certainly requite us +all the evil which we did unto him. + +50:16 And they sent a messenger unto Joseph, saying, Thy father did +command before he died, saying, 50:17 So shall ye say unto Joseph, +Forgive, I pray thee now, the trespass of thy brethren, and their sin; +for they did unto thee evil: and now, we pray thee, forgive the +trespass of the servants of the God of thy father. And Joseph wept +when they spake unto him. + +50:18 And his brethren also went and fell down before his face; and +they said, Behold, we be thy servants. + +50:19 And Joseph said unto them, Fear not: for am I in the place of +God? 50:20 But as for you, ye thought evil against me; but God meant +it unto good, to bring to pass, as it is this day, to save much people +alive. + +50:21 Now therefore fear ye not: I will nourish you, and your little +ones. + +And he comforted them, and spake kindly unto them. + +50:22 And Joseph dwelt in Egypt, he, and his father's house: and +Joseph lived an hundred and ten years. + +50:23 And Joseph saw Ephraim's children of the third generation: the +children also of Machir the son of Manasseh were brought up upon +Joseph's knees. + +50:24 And Joseph said unto his brethren, I die: and God will surely +visit you, and bring you out of this land unto the land which he sware +to Abraham, to Isaac, and to Jacob. + +50:25 And Joseph took an oath of the children of Israel, saying, God +will surely visit you, and ye shall carry up my bones from hence. + +50:26 So Joseph died, being an hundred and ten years old: and they +embalmed him, and he was put in a coffin in Egypt. + + + + +The Second Book of Moses: Called Exodus + + +1:1 Now these are the names of the children of Israel, which came +into Egypt; every man and his household came with Jacob. + +1:2 Reuben, Simeon, Levi, and Judah, 1:3 Issachar, Zebulun, and +Benjamin, 1:4 Dan, and Naphtali, Gad, and Asher. + +1:5 And all the souls that came out of the loins of Jacob were seventy +souls: for Joseph was in Egypt already. + +1:6 And Joseph died, and all his brethren, and all that generation. + +1:7 And the children of Israel were fruitful, and increased +abundantly, and multiplied, and waxed exceeding mighty; and the land +was filled with them. + +1:8 Now there arose up a new king over Egypt, which knew not Joseph. + +1:9 And he said unto his people, Behold, the people of the children of +Israel are more and mightier than we: 1:10 Come on, let us deal wisely +with them; lest they multiply, and it come to pass, that, when there +falleth out any war, they join also unto our enemies, and fight +against us, and so get them up out of the land. + +1:11 Therefore they did set over them taskmasters to afflict them with +their burdens. And they built for Pharaoh treasure cities, Pithom and +Raamses. + +1:12 But the more they afflicted them, the more they multiplied and +grew. + +And they were grieved because of the children of Israel. + +1:13 And the Egyptians made the children of Israel to serve with +rigour: 1:14 And they made their lives bitter with hard bondage, in +morter, and in brick, and in all manner of service in the field: all +their service, wherein they made them serve, was with rigour. + +1:15 And the king of Egypt spake to the Hebrew midwives, of which the +name of the one was Shiphrah, and the name of the other Puah: 1:16 And +he said, When ye do the office of a midwife to the Hebrew women, and +see them upon the stools; if it be a son, then ye shall kill him: but +if it be a daughter, then she shall live. + +1:17 But the midwives feared God, and did not as the king of Egypt +commanded them, but saved the men children alive. + +1:18 And the king of Egypt called for the midwives, and said unto +them, Why have ye done this thing, and have saved the men children +alive? 1:19 And the midwives said unto Pharaoh, Because the Hebrew +women are not as the Egyptian women; for they are lively, and are +delivered ere the midwives come in unto them. + +1:20 Therefore God dealt well with the midwives: and the people +multiplied, and waxed very mighty. + +1:21 And it came to pass, because the midwives feared God, that he +made them houses. + +1:22 And Pharaoh charged all his people, saying, Every son that is +born ye shall cast into the river, and every daughter ye shall save +alive. + +2:1 And there went a man of the house of Levi, and took to wife a +daughter of Levi. + +2:2 And the woman conceived, and bare a son: and when she saw him that +he was a goodly child, she hid him three months. + +2:3 And when she could not longer hide him, she took for him an ark of +bulrushes, and daubed it with slime and with pitch, and put the child +therein; and she laid it in the flags by the river's brink. + +2:4 And his sister stood afar off, to wit what would be done to him. + +2:5 And the daughter of Pharaoh came down to wash herself at the +river; and her maidens walked along by the river's side; and when she +saw the ark among the flags, she sent her maid to fetch it. + +2:6 And when she had opened it, she saw the child: and, behold, the +babe wept. And she had compassion on him, and said, This is one of the +Hebrews' children. + +2:7 Then said his sister to Pharaoh's daughter, Shall I go and call to +thee a nurse of the Hebrew women, that she may nurse the child for +thee? 2:8 And Pharaoh's daughter said to her, Go. And the maid went +and called the child's mother. + +2:9 And Pharaoh's daughter said unto her, Take this child away, and +nurse it for me, and I will give thee thy wages. And the women took +the child, and nursed it. + +2:10 And the child grew, and she brought him unto Pharaoh's daughter, +and he became her son. And she called his name Moses: and she said, +Because I drew him out of the water. + +2:11 And it came to pass in those days, when Moses was grown, that he +went out unto his brethren, and looked on their burdens: and he spied +an Egyptian smiting an Hebrew, one of his brethren. + +2:12 And he looked this way and that way, and when he saw that there +was no man, he slew the Egyptian, and hid him in the sand. + +2:13 And when he went out the second day, behold, two men of the +Hebrews strove together: and he said to him that did the wrong, +Wherefore smitest thou thy fellow? 2:14 And he said, Who made thee a +prince and a judge over us? intendest thou to kill me, as thou +killedst the Egyptian? And Moses feared, and said, Surely this thing +is known. + +2:15 Now when Pharaoh heard this thing, he sought to slay Moses. But +Moses fled from the face of Pharaoh, and dwelt in the land of Midian: +and he sat down by a well. + +2:16 Now the priest of Midian had seven daughters: and they came and +drew water, and filled the troughs to water their father's flock. + +2:17 And the shepherds came and drove them away: but Moses stood up +and helped them, and watered their flock. + +2:18 And when they came to Reuel their father, he said, How is it that +ye are come so soon to day? 2:19 And they said, An Egyptian delivered +us out of the hand of the shepherds, and also drew water enough for +us, and watered the flock. + +2:20 And he said unto his daughters, And where is he? why is it that +ye have left the man? call him, that he may eat bread. + +2:21 And Moses was content to dwell with the man: and he gave Moses +Zipporah his daughter. + +2:22 And she bare him a son, and he called his name Gershom: for he +said, I have been a stranger in a strange land. + +2:23 And it came to pass in process of time, that the king of Egypt +died: and the children of Israel sighed by reason of the bondage, and +they cried, and their cry came up unto God by reason of the bondage. + +2:24 And God heard their groaning, and God remembered his covenant +with Abraham, with Isaac, and with Jacob. + +2:25 And God looked upon the children of Israel, and God had respect +unto them. + +3:1 Now Moses kept the flock of Jethro his father in law, the priest +of Midian: and he led the flock to the backside of the desert, and +came to the mountain of God, even to Horeb. + +3:2 And the angel of the LORD appeared unto him in a flame of fire out +of the midst of a bush: and he looked, and, behold, the bush burned +with fire, and the bush was not consumed. + +3:3 And Moses said, I will now turn aside, and see this great sight, +why the bush is not burnt. + +3:4 And when the LORD saw that he turned aside to see, God called unto +him out of the midst of the bush, and said, Moses, Moses. And he said, +Here am I. + +3:5 And he said, Draw not nigh hither: put off thy shoes from off thy +feet, for the place whereon thou standest is holy ground. + +3:6 Moreover he said, I am the God of thy father, the God of Abraham, +the God of Isaac, and the God of Jacob. And Moses hid his face; for he +was afraid to look upon God. + +3:7 And the LORD said, I have surely seen the affliction of my people +which are in Egypt, and have heard their cry by reason of their +taskmasters; for I know their sorrows; 3:8 And I am come down to +deliver them out of the hand of the Egyptians, and to bring them up +out of that land unto a good land and a large, unto a land flowing +with milk and honey; unto the place of the Canaanites, and the +Hittites, and the Amorites, and the Perizzites, and the Hivites, and +the Jebusites. + +3:9 Now therefore, behold, the cry of the children of Israel is come +unto me: and I have also seen the oppression wherewith the Egyptians +oppress them. + +3:10 Come now therefore, and I will send thee unto Pharaoh, that thou +mayest bring forth my people the children of Israel out of Egypt. + +3:11 And Moses said unto God, Who am I, that I should go unto Pharaoh, +and that I should bring forth the children of Israel out of Egypt? +3:12 And he said, Certainly I will be with thee; and this shall be a +token unto thee, that I have sent thee: When thou hast brought forth +the people out of Egypt, ye shall serve God upon this mountain. + +3:13 And Moses said unto God, Behold, when I come unto the children of +Israel, and shall say unto them, The God of your fathers hath sent me +unto you; and they shall say to me, What is his name? what shall I say +unto them? 3:14 And God said unto Moses, I AM THAT I AM: and he said, +Thus shalt thou say unto the children of Israel, I AM hath sent me +unto you. + +3:15 And God said moreover unto Moses, Thus shalt thou say unto the +children of Israel, the LORD God of your fathers, the God of Abraham, +the God of Isaac, and the God of Jacob, hath sent me unto you: this is +my name for ever, and this is my memorial unto all generations. + +3:16 Go, and gather the elders of Israel together, and say unto them, +The LORD God of your fathers, the God of Abraham, of Isaac, and of +Jacob, appeared unto me, saying, I have surely visited you, and seen +that which is done to you in Egypt: 3:17 And I have said, I will bring +you up out of the affliction of Egypt unto the land of the Canaanites, +and the Hittites, and the Amorites, and the Perizzites, and the +Hivites, and the Jebusites, unto a land flowing with milk and honey. + +3:18 And they shall hearken to thy voice: and thou shalt come, thou +and the elders of Israel, unto the king of Egypt, and ye shall say +unto him, The LORD God of the Hebrews hath met with us: and now let us +go, we beseech thee, three days' journey into the wilderness, that we +may sacrifice to the LORD our God. + +3:19 And I am sure that the king of Egypt will not let you go, no, not +by a mighty hand. + +3:20 And I will stretch out my hand, and smite Egypt with all my +wonders which I will do in the midst thereof: and after that he will +let you go. + +3:21 And I will give this people favour in the sight of the Egyptians: +and it shall come to pass, that, when ye go, ye shall not go empty. + +3:22 But every woman shall borrow of her neighbour, and of her that +sojourneth in her house, jewels of silver, and jewels of gold, and +raiment: and ye shall put them upon your sons, and upon your +daughters; and ye shall spoil the Egyptians. + +4:1 And Moses answered and said, But, behold, they will not believe +me, nor hearken unto my voice: for they will say, The LORD hath not +appeared unto thee. + +4:2 And the LORD said unto him, What is that in thine hand? And he +said, A rod. + +4:3 And he said, Cast it on the ground. And he cast it on the ground, +and it became a serpent; and Moses fled from before it. + +4:4 And the LORD said unto Moses, Put forth thine hand, and take it by +the tail. And he put forth his hand, and caught it, and it became a +rod in his hand: 4:5 That they may believe that the LORD God of their +fathers, the God of Abraham, the God of Isaac, and the God of Jacob, +hath appeared unto thee. + +4:6 And the LORD said furthermore unto him, Put now thine hand into +thy bosom. And he put his hand into his bosom: and when he took it +out, behold, his hand was leprous as snow. + +4:7 And he said, Put thine hand into thy bosom again. And he put his +hand into his bosom again; and plucked it out of his bosom, and, +behold, it was turned again as his other flesh. + +4:8 And it shall come to pass, if they will not believe thee, neither +hearken to the voice of the first sign, that they will believe the +voice of the latter sign. + +4:9 And it shall come to pass, if they will not believe also these two +signs, neither hearken unto thy voice, that thou shalt take of the +water of the river, and pour it upon the dry land: and the water which +thou takest out of the river shall become blood upon the dry land. + +4:10 And Moses said unto the LORD, O my LORD, I am not eloquent, +neither heretofore, nor since thou hast spoken unto thy servant: but I +am slow of speech, and of a slow tongue. + +4:11 And the LORD said unto him, Who hath made man's mouth? or who +maketh the dumb, or deaf, or the seeing, or the blind? have not I the +LORD? 4:12 Now therefore go, and I will be with thy mouth, and teach +thee what thou shalt say. + +4:13 And he said, O my LORD, send, I pray thee, by the hand of him +whom thou wilt send. + +4:14 And the anger of the LORD was kindled against Moses, and he said, +Is not Aaron the Levite thy brother? I know that he can speak well. +And also, behold, he cometh forth to meet thee: and when he seeth +thee, he will be glad in his heart. + +4:15 And thou shalt speak unto him, and put words in his mouth: and I +will be with thy mouth, and with his mouth, and will teach you what ye +shall do. + +4:16 And he shall be thy spokesman unto the people: and he shall be, +even he shall be to thee instead of a mouth, and thou shalt be to him +instead of God. + +4:17 And thou shalt take this rod in thine hand, wherewith thou shalt +do signs. + +4:18 And Moses went and returned to Jethro his father in law, and said +unto him, Let me go, I pray thee, and return unto my brethren which +are in Egypt, and see whether they be yet alive. And Jethro said to +Moses, Go in peace. + +4:19 And the LORD said unto Moses in Midian, Go, return into Egypt: +for all the men are dead which sought thy life. + +4:20 And Moses took his wife and his sons, and set them upon an ass, +and he returned to the land of Egypt: and Moses took the rod of God in +his hand. + +4:21 And the LORD said unto Moses, When thou goest to return into +Egypt, see that thou do all those wonders before Pharaoh, which I have +put in thine hand: but I will harden his heart, that he shall not let +the people go. + +4:22 And thou shalt say unto Pharaoh, Thus saith the LORD, Israel is +my son, even my firstborn: 4:23 And I say unto thee, Let my son go, +that he may serve me: and if thou refuse to let him go, behold, I will +slay thy son, even thy firstborn. + +4:24 And it came to pass by the way in the inn, that the LORD met him, +and sought to kill him. + +4:25 Then Zipporah took a sharp stone, and cut off the foreskin of her +son, and cast it at his feet, and said, Surely a bloody husband art +thou to me. + +4:26 So he let him go: then she said, A bloody husband thou art, +because of the circumcision. + +4:27 And the LORD said to Aaron, Go into the wilderness to meet Moses. +And he went, and met him in the mount of God, and kissed him. + +4:28 And Moses told Aaron all the words of the LORD who had sent him, +and all the signs which he had commanded him. + +4:29 And Moses and Aaron went and gathered together all the elders of +the children of Israel: 4:30 And Aaron spake all the words which the +LORD had spoken unto Moses, and did the signs in the sight of the +people. + +4:31 And the people believed: and when they heard that the LORD had +visited the children of Israel, and that he had looked upon their +affliction, then they bowed their heads and worshipped. + +5:1 And afterward Moses and Aaron went in, and told Pharaoh, Thus +saith the LORD God of Israel, Let my people go, that they may hold a +feast unto me in the wilderness. + +5:2 And Pharaoh said, Who is the LORD, that I should obey his voice to +let Israel go? I know not the LORD, neither will I let Israel go. + +5:3 And they said, The God of the Hebrews hath met with us: let us go, +we pray thee, three days' journey into the desert, and sacrifice unto +the LORD our God; lest he fall upon us with pestilence, or with the +sword. + +5:4 And the king of Egypt said unto them, Wherefore do ye, Moses and +Aaron, let the people from their works? get you unto your burdens. + +5:5 And Pharaoh said, Behold, the people of the land now are many, and +ye make them rest from their burdens. + +5:6 And Pharaoh commanded the same day the taskmasters of the people, +and their officers, saying, 5:7 Ye shall no more give the people straw +to make brick, as heretofore: let them go and gather straw for +themselves. + +5:8 And the tale of the bricks, which they did make heretofore, ye +shall lay upon them; ye shall not diminish ought thereof: for they be +idle; therefore they cry, saying, Let us go and sacrifice to our God. + +5:9 Let there more work be laid upon the men, that they may labour +therein; and let them not regard vain words. + +5:10 And the taskmasters of the people went out, and their officers, +and they spake to the people, saying, Thus saith Pharaoh, I will not +give you straw. + +5:11 Go ye, get you straw where ye can find it: yet not ought of your +work shall be diminished. + +5:12 So the people were scattered abroad throughout all the land of +Egypt to gather stubble instead of straw. + +5:13 And the taskmasters hasted them, saying, Fulfil your works, your +daily tasks, as when there was straw. + +5:14 And the officers of the children of Israel, which Pharaoh's +taskmasters had set over them, were beaten, and demanded, Wherefore +have ye not fulfilled your task in making brick both yesterday and to +day, as heretofore? 5:15 Then the officers of the children of Israel +came and cried unto Pharaoh, saying, Wherefore dealest thou thus with +thy servants? 5:16 There is no straw given unto thy servants, and +they say to us, Make brick: and, behold, thy servants are beaten; but +the fault is in thine own people. + +5:17 But he said, Ye are idle, ye are idle: therefore ye say, Let us +go and do sacrifice to the LORD. + +5:18 Go therefore now, and work; for there shall no straw be given +you, yet shall ye deliver the tale of bricks. + +5:19 And the officers of the children of Israel did see that they were +in evil case, after it was said, Ye shall not minish ought from your +bricks of your daily task. + +5:20 And they met Moses and Aaron, who stood in the way, as they came +forth from Pharaoh: 5:21 And they said unto them, The LORD look upon +you, and judge; because ye have made our savour to be abhorred in the +eyes of Pharaoh, and in the eyes of his servants, to put a sword in +their hand to slay us. + +5:22 And Moses returned unto the LORD, and said, LORD, wherefore hast +thou so evil entreated this people? why is it that thou hast sent me? +5:23 For since I came to Pharaoh to speak in thy name, he hath done +evil to this people; neither hast thou delivered thy people at all. + +6:1 Then the LORD said unto Moses, Now shalt thou see what I will do +to Pharaoh: for with a strong hand shall he let them go, and with a +strong hand shall he drive them out of his land. + +6:2 And God spake unto Moses, and said unto him, I am the LORD: 6:3 +And I appeared unto Abraham, unto Isaac, and unto Jacob, by the name +of God Almighty, but by my name JEHOVAH was I not known to them. + +6:4 And I have also established my covenant with them, to give them +the land of Canaan, the land of their pilgrimage, wherein they were +strangers. + +6:5 And I have also heard the groaning of the children of Israel, whom +the Egyptians keep in bondage; and I have remembered my covenant. + +6:6 Wherefore say unto the children of Israel, I am the LORD, and I +will bring you out from under the burdens of the Egyptians, and I will +rid you out of their bondage, and I will redeem you with a stretched +out arm, and with great judgments: 6:7 And I will take you to me for a +people, and I will be to you a God: and ye shall know that I am the +LORD your God, which bringeth you out from under the burdens of the +Egyptians. + +6:8 And I will bring you in unto the land, concerning the which I did +swear to give it to Abraham, to Isaac, and to Jacob; and I will give +it you for an heritage: I am the LORD. + +6:9 And Moses spake so unto the children of Israel: but they hearkened +not unto Moses for anguish of spirit, and for cruel bondage. + +6:10 And the LORD spake unto Moses, saying, 6:11 Go in, speak unto +Pharaoh king of Egypt, that he let the children of Israel go out of +his land. + +6:12 And Moses spake before the LORD, saying, Behold, the children of +Israel have not hearkened unto me; how then shall Pharaoh hear me, who +am of uncircumcised lips? 6:13 And the LORD spake unto Moses and unto +Aaron, and gave them a charge unto the children of Israel, and unto +Pharaoh king of Egypt, to bring the children of Israel out of the land +of Egypt. + +6:14 These be the heads of their fathers' houses: The sons of Reuben +the firstborn of Israel; Hanoch, and Pallu, Hezron, and Carmi: these +be the families of Reuben. + +6:15 And the sons of Simeon; Jemuel, and Jamin, and Ohad, and Jachin, +and Zohar, and Shaul the son of a Canaanitish woman: these are the +families of Simeon. + +6:16 And these are the names of the sons of Levi according to their +generations; Gershon, and Kohath, and Merari: and the years of the +life of Levi were an hundred thirty and seven years. + +6:17 The sons of Gershon; Libni, and Shimi, according to their +families. + +6:18 And the sons of Kohath; Amram, and Izhar, and Hebron, and Uzziel: +and the years of the life of Kohath were an hundred thirty and three +years. + +6:19 And the sons of Merari; Mahali and Mushi: these are the families +of Levi according to their generations. + +6:20 And Amram took him Jochebed his father's sister to wife; and she +bare him Aaron and Moses: and the years of the life of Amram were an +hundred and thirty and seven years. + +6:21 And the sons of Izhar; Korah, and Nepheg, and Zichri. + +6:22 And the sons of Uzziel; Mishael, and Elzaphan, and Zithri. + +6:23 And Aaron took him Elisheba, daughter of Amminadab, sister of +Naashon, to wife; and she bare him Nadab, and Abihu, Eleazar, and +Ithamar. + +6:24 And the sons of Korah; Assir, and Elkanah, and Abiasaph: these +are the families of the Korhites. + +6:25 And Eleazar Aaron's son took him one of the daughters of Putiel +to wife; and she bare him Phinehas: these are the heads of the fathers +of the Levites according to their families. + +6:26 These are that Aaron and Moses, to whom the LORD said, Bring out +the children of Israel from the land of Egypt according to their +armies. + +6:27 These are they which spake to Pharaoh king of Egypt, to bring out +the children of Israel from Egypt: these are that Moses and Aaron. + +6:28 And it came to pass on the day when the LORD spake unto Moses in +the land of Egypt, 6:29 That the LORD spake unto Moses, saying, I am +the LORD: speak thou unto Pharaoh king of Egypt all that I say unto +thee. + +6:30 And Moses said before the LORD, Behold, I am of uncircumcised +lips, and how shall Pharaoh hearken unto me? 7:1 And the LORD said +unto Moses, See, I have made thee a god to Pharaoh: and Aaron thy +brother shall be thy prophet. + +7:2 Thou shalt speak all that I command thee: and Aaron thy brother +shall speak unto Pharaoh, that he send the children of Israel out of +his land. + +7:3 And I will harden Pharaoh's heart, and multiply my signs and my +wonders in the land of Egypt. + +7:4 But Pharaoh shall not hearken unto you, that I may lay my hand +upon Egypt, and bring forth mine armies, and my people the children of +Israel, out of the land of Egypt by great judgments. + +7:5 And the Egyptians shall know that I am the LORD, when I stretch +forth mine hand upon Egypt, and bring out the children of Israel from +among them. + +7:6 And Moses and Aaron did as the LORD commanded them, so did they. + +7:7 And Moses was fourscore years old, and Aaron fourscore and three +years old, when they spake unto Pharaoh. + +7:8 And the LORD spake unto Moses and unto Aaron, saying, 7:9 When +Pharaoh shall speak unto you, saying, Shew a miracle for you: then +thou shalt say unto Aaron, Take thy rod, and cast it before Pharaoh, +and it shall become a serpent. + +7:10 And Moses and Aaron went in unto Pharaoh, and they did so as the +LORD had commanded: and Aaron cast down his rod before Pharaoh, and +before his servants, and it became a serpent. + +7:11 Then Pharaoh also called the wise men and the sorcerers: now the +magicians of Egypt, they also did in like manner with their +enchantments. + +7:12 For they cast down every man his rod, and they became serpents: +but Aaron's rod swallowed up their rods. + +7:13 And he hardened Pharaoh's heart, that he hearkened not unto them; +as the LORD had said. + +7:14 And the LORD said unto Moses, Pharaoh's heart is hardened, he +refuseth to let the people go. + +7:15 Get thee unto Pharaoh in the morning; lo, he goeth out unto the +water; and thou shalt stand by the river's brink against he come; and +the rod which was turned to a serpent shalt thou take in thine hand. + +7:16 And thou shalt say unto him, The LORD God of the Hebrews hath +sent me unto thee, saying, Let my people go, that they may serve me in +the wilderness: and, behold, hitherto thou wouldest not hear. + +7:17 Thus saith the LORD, In this thou shalt know that I am the LORD: +behold, I will smite with the rod that is in mine hand upon the waters +which are in the river, and they shall be turned to blood. + +7:18 And the fish that is in the river shall die, and the river shall +stink; and the Egyptians shall lothe to drink of the water of the +river. + +7:19 And the LORD spake unto Moses, Say unto Aaron, Take thy rod, and +stretch out thine hand upon the waters of Egypt, upon their streams, +upon their rivers, and upon their ponds, and upon all their pools of +water, that they may become blood; and that there may be blood +throughout all the land of Egypt, both in vessels of wood, and in +vessels of stone. + +7:20 And Moses and Aaron did so, as the LORD commanded; and he lifted +up the rod, and smote the waters that were in the river, in the sight +of Pharaoh, and in the sight of his servants; and all the waters that +were in the river were turned to blood. + +7:21 And the fish that was in the river died; and the river stank, and +the Egyptians could not drink of the water of the river; and there was +blood throughout all the land of Egypt. + +7:22 And the magicians of Egypt did so with their enchantments: and +Pharaoh's heart was hardened, neither did he hearken unto them; as the +LORD had said. + +7:23 And Pharaoh turned and went into his house, neither did he set +his heart to this also. + +7:24 And all the Egyptians digged round about the river for water to +drink; for they could not drink of the water of the river. + +7:25 And seven days were fulfilled, after that the LORD had smitten +the river. + +8:1 And the LORD spake unto Moses, Go unto Pharaoh, and say unto him, +Thus saith the LORD, Let my people go, that they may serve me. + +8:2 And if thou refuse to let them go, behold, I will smite all thy +borders with frogs: 8:3 And the river shall bring forth frogs +abundantly, which shall go up and come into thine house, and into thy +bedchamber, and upon thy bed, and into the house of thy servants, and +upon thy people, and into thine ovens, and into thy kneadingtroughs: +8:4 And the frogs shall come up both on thee, and upon thy people, and +upon all thy servants. + +8:5 And the LORD spake unto Moses, Say unto Aaron, Stretch forth thine +hand with thy rod over the streams, over the rivers, and over the +ponds, and cause frogs to come up upon the land of Egypt. + +8:6 And Aaron stretched out his hand over the waters of Egypt; and the +frogs came up, and covered the land of Egypt. + +8:7 And the magicians did so with their enchantments, and brought up +frogs upon the land of Egypt. + +8:8 Then Pharaoh called for Moses and Aaron, and said, Intreat the +LORD, that he may take away the frogs from me, and from my people; and +I will let the people go, that they may do sacrifice unto the LORD. + +8:9 And Moses said unto Pharaoh, Glory over me: when shall I intreat +for thee, and for thy servants, and for thy people, to destroy the +frogs from thee and thy houses, that they may remain in the river +only? 8:10 And he said, To morrow. And he said, Be it according to +thy word: that thou mayest know that there is none like unto the LORD +our God. + +8:11 And the frogs shall depart from thee, and from thy houses, and +from thy servants, and from thy people; they shall remain in the river +only. + +8:12 And Moses and Aaron went out from Pharaoh: and Moses cried unto +the LORD because of the frogs which he had brought against Pharaoh. + +8:13 And the LORD did according to the word of Moses; and the frogs +died out of the houses, out of the villages, and out of the fields. + +8:14 And they gathered them together upon heaps: and the land stank. + +8:15 But when Pharaoh saw that there was respite, he hardened his +heart, and hearkened not unto them; as the LORD had said. + +8:16 And the LORD said unto Moses, Say unto Aaron, Stretch out thy +rod, and smite the dust of the land, that it may become lice +throughout all the land of Egypt. + +8:17 And they did so; for Aaron stretched out his hand with his rod, +and smote the dust of the earth, and it became lice in man, and in +beast; all the dust of the land became lice throughout all the land of +Egypt. + +8:18 And the magicians did so with their enchantments to bring forth +lice, but they could not: so there were lice upon man, and upon beast. + +8:19 Then the magicians said unto Pharaoh, This is the finger of God: +and Pharaoh's heart was hardened, and he hearkened not unto them; as +the LORD had said. + +8:20 And the LORD said unto Moses, Rise up early in the morning, and +stand before Pharaoh; lo, he cometh forth to the water; and say unto +him, Thus saith the LORD, Let my people go, that they may serve me. + +8:21 Else, if thou wilt not let my people go, behold, I will send +swarms of flies upon thee, and upon thy servants, and upon thy people, +and into thy houses: and the houses of the Egyptians shall be full of +swarms of flies, and also the ground whereon they are. + +8:22 And I will sever in that day the land of Goshen, in which my +people dwell, that no swarms of flies shall be there; to the end thou +mayest know that I am the LORD in the midst of the earth. + +8:23 And I will put a division between my people and thy people: to +morrow shall this sign be. + +8:24 And the LORD did so; and there came a grievous swarm of flies +into the house of Pharaoh, and into his servants' houses, and into all +the land of Egypt: the land was corrupted by reason of the swarm of +flies. + +8:25 And Pharaoh called for Moses and for Aaron, and said, Go ye, +sacrifice to your God in the land. + +8:26 And Moses said, It is not meet so to do; for we shall sacrifice +the abomination of the Egyptians to the LORD our God: lo, shall we +sacrifice the abomination of the Egyptians before their eyes, and will +they not stone us? 8:27 We will go three days' journey into the +wilderness, and sacrifice to the LORD our God, as he shall command us. + +8:28 And Pharaoh said, I will let you go, that ye may sacrifice to the +LORD your God in the wilderness; only ye shall not go very far away: +intreat for me. + +8:29 And Moses said, Behold, I go out from thee, and I will intreat +the LORD that the swarms of flies may depart from Pharaoh, from his +servants, and from his people, to morrow: but let not Pharaoh deal +deceitfully any more in not letting the people go to sacrifice to the +LORD. + +8:30 And Moses went out from Pharaoh, and intreated the LORD. + +8:31 And the LORD did according to the word of Moses; and he removed +the swarms of flies from Pharaoh, from his servants, and from his +people; there remained not one. + +8:32 And Pharaoh hardened his heart at this time also, neither would +he let the people go. + +9:1 Then the LORD said unto Moses, Go in unto Pharaoh, and tell him, +Thus saith the LORD God of the Hebrews, Let my people go, that they +may serve me. + +9:2 For if thou refuse to let them go, and wilt hold them still, 9:3 +Behold, the hand of the LORD is upon thy cattle which is in the field, +upon the horses, upon the asses, upon the camels, upon the oxen, and +upon the sheep: there shall be a very grievous murrain. + +9:4 And the LORD shall sever between the cattle of Israel and the +cattle of Egypt: and there shall nothing die of all that is the +children's of Israel. + +9:5 And the LORD appointed a set time, saying, To morrow the LORD +shall do this thing in the land. + +9:6 And the LORD did that thing on the morrow, and all the cattle of +Egypt died: but of the cattle of the children of Israel died not one. + +9:7 And Pharaoh sent, and, behold, there was not one of the cattle of +the Israelites dead. And the heart of Pharaoh was hardened, and he did +not let the people go. + +9:8 And the LORD said unto Moses and unto Aaron, Take to you handfuls +of ashes of the furnace, and let Moses sprinkle it toward the heaven +in the sight of Pharaoh. + +9:9 And it shall become small dust in all the land of Egypt, and shall +be a boil breaking forth with blains upon man, and upon beast, +throughout all the land of Egypt. + +9:10 And they took ashes of the furnace, and stood before Pharaoh; and +Moses sprinkled it up toward heaven; and it became a boil breaking +forth with blains upon man, and upon beast. + +9:11 And the magicians could not stand before Moses because of the +boils; for the boil was upon the magicians, and upon all the +Egyptians. + +9:12 And the LORD hardened the heart of Pharaoh, and he hearkened not +unto them; as the LORD had spoken unto Moses. + +9:13 And the LORD said unto Moses, Rise up early in the morning, and +stand before Pharaoh, and say unto him, Thus saith the LORD God of the +Hebrews, Let my people go, that they may serve me. + +9:14 For I will at this time send all my plagues upon thine heart, and +upon thy servants, and upon thy people; that thou mayest know that +there is none like me in all the earth. + +9:15 For now I will stretch out my hand, that I may smite thee and thy +people with pestilence; and thou shalt be cut off from the earth. + +9:16 And in very deed for this cause have I raised thee up, for to +shew in thee my power; and that my name may be declared throughout all +the earth. + +9:17 As yet exaltest thou thyself against my people, that thou wilt +not let them go? 9:18 Behold, to morrow about this time I will cause +it to rain a very grievous hail, such as hath not been in Egypt since +the foundation thereof even until now. + +9:19 Send therefore now, and gather thy cattle, and all that thou hast +in the field; for upon every man and beast which shall be found in the +field, and shall not be brought home, the hail shall come down upon +them, and they shall die. + +9:20 He that feared the word of the LORD among the servants of Pharaoh +made his servants and his cattle flee into the houses: 9:21 And he +that regarded not the word of the LORD left his servants and his +cattle in the field. + +9:22 And the LORD said unto Moses, Stretch forth thine hand toward +heaven, that there may be hail in all the land of Egypt, upon man, and +upon beast, and upon every herb of the field, throughout the land of +Egypt. + +9:23 And Moses stretched forth his rod toward heaven: and the LORD +sent thunder and hail, and the fire ran along upon the ground; and the +LORD rained hail upon the land of Egypt. + +9:24 So there was hail, and fire mingled with the hail, very grievous, +such as there was none like it in all the land of Egypt since it +became a nation. + +9:25 And the hail smote throughout all the land of Egypt all that was +in the field, both man and beast; and the hail smote every herb of the +field, and brake every tree of the field. + +9:26 Only in the land of Goshen, where the children of Israel were, +was there no hail. + +9:27 And Pharaoh sent, and called for Moses and Aaron, and said unto +them, I have sinned this time: the LORD is righteous, and I and my +people are wicked. + +9:28 Intreat the LORD (for it is enough) that there be no more mighty +thunderings and hail; and I will let you go, and ye shall stay no +longer. + +9:29 And Moses said unto him, As soon as I am gone out of the city, I +will spread abroad my hands unto the LORD; and the thunder shall +cease, neither shall there be any more hail; that thou mayest know how +that the earth is the LORD's. + +9:30 But as for thee and thy servants, I know that ye will not yet +fear the LORD God. + +9:31 And the flax and the barley was smitten: for the barley was in +the ear, and the flax was bolled. + +9:32 But the wheat and the rie were not smitten: for they were not +grown up. + +9:33 And Moses went out of the city from Pharaoh, and spread abroad +his hands unto the LORD: and the thunders and hail ceased, and the +rain was not poured upon the earth. + +9:34 And when Pharaoh saw that the rain and the hail and the thunders +were ceased, he sinned yet more, and hardened his heart, he and his +servants. + +9:35 And the heart of Pharaoh was hardened, neither would he let the +children of Israel go; as the LORD had spoken by Moses. + +10:1 And the LORD said unto Moses, Go in unto Pharaoh: for I have +hardened his heart, and the heart of his servants, that I might shew +these my signs before him: 10:2 And that thou mayest tell in the ears +of thy son, and of thy son's son, what things I have wrought in Egypt, +and my signs which I have done among them; that ye may know how that I +am the LORD. + +10:3 And Moses and Aaron came in unto Pharaoh, and said unto him, Thus +saith the LORD God of the Hebrews, How long wilt thou refuse to humble +thyself before me? let my people go, that they may serve me. + +10:4 Else, if thou refuse to let my people go, behold, to morrow will +I bring the locusts into thy coast: 10:5 And they shall cover the face +of the earth, that one cannot be able to see the earth: and they shall +eat the residue of that which is escaped, which remaineth unto you +from the hail, and shall eat every tree which groweth for you out of +the field: 10:6 And they shall fill thy houses, and the houses of all +thy servants, and the houses of all the Egyptians; which neither thy +fathers, nor thy fathers' fathers have seen, since the day that they +were upon the earth unto this day. And he turned himself, and went out +from Pharaoh. + +10:7 And Pharaoh's servants said unto him, How long shall this man be +a snare unto us? let the men go, that they may serve the LORD their +God: knowest thou not yet that Egypt is destroyed? 10:8 And Moses and +Aaron were brought again unto Pharaoh: and he said unto them, Go, +serve the LORD your God: but who are they that shall go? 10:9 And +Moses said, We will go with our young and with our old, with our sons +and with our daughters, with our flocks and with our herds will we go; +for we must hold a feast unto the LORD. + +10:10 And he said unto them, Let the LORD be so with you, as I will +let you go, and your little ones: look to it; for evil is before you. + +10:11 Not so: go now ye that are men, and serve the LORD; for that ye +did desire. And they were driven out from Pharaoh's presence. + +10:12 And the LORD said unto Moses, Stretch out thine hand over the +land of Egypt for the locusts, that they may come up upon the land of +Egypt, and eat every herb of the land, even all that the hail hath +left. + +10:13 And Moses stretched forth his rod over the land of Egypt, and +the LORD brought an east wind upon the land all that day, and all that +night; and when it was morning, the east wind brought the locusts. + +10:14 And the locust went up over all the land of Egypt, and rested in +all the coasts of Egypt: very grievous were they; before them there +were no such locusts as they, neither after them shall be such. + +10:15 For they covered the face of the whole earth, so that the land +was darkened; and they did eat every herb of the land, and all the +fruit of the trees which the hail had left: and there remained not any +green thing in the trees, or in the herbs of the field, through all +the land of Egypt. + +10:16 Then Pharaoh called for Moses and Aaron in haste; and he said, I +have sinned against the LORD your God, and against you. + +10:17 Now therefore forgive, I pray thee, my sin only this once, and +intreat the LORD your God, that he may take away from me this death +only. + +10:18 And he went out from Pharaoh, and intreated the LORD. + +10:19 And the LORD turned a mighty strong west wind, which took away +the locusts, and cast them into the Red sea; there remained not one +locust in all the coasts of Egypt. + +10:20 But the LORD hardened Pharaoh's heart, so that he would not let +the children of Israel go. + +10:21 And the LORD said unto Moses, Stretch out thine hand toward +heaven, that there may be darkness over the land of Egypt, even +darkness which may be felt. + +10:22 And Moses stretched forth his hand toward heaven; and there was +a thick darkness in all the land of Egypt three days: 10:23 They saw +not one another, neither rose any from his place for three days: but +all the children of Israel had light in their dwellings. + +10:24 And Pharaoh called unto Moses, and said, Go ye, serve the LORD; +only let your flocks and your herds be stayed: let your little ones +also go with you. + +10:25 And Moses said, Thou must give us also sacrifices and burnt +offerings, that we may sacrifice unto the LORD our God. + +10:26 Our cattle also shall go with us; there shall not an hoof be +left behind; for thereof must we take to serve the LORD our God; and +we know not with what we must serve the LORD, until we come thither. + +10:27 But the LORD hardened Pharaoh's heart, and he would not let them +go. + +10:28 And Pharaoh said unto him, Get thee from me, take heed to +thyself, see my face no more; for in that day thou seest my face thou +shalt die. + +10:29 And Moses said, Thou hast spoken well, I will see thy face again +no more. + +11:1 And the LORD said unto Moses, Yet will I bring one plague more +upon Pharaoh, and upon Egypt; afterwards he will let you go hence: +when he shall let you go, he shall surely thrust you out hence +altogether. + +11:2 Speak now in the ears of the people, and let every man borrow of +his neighbour, and every woman of her neighbour, jewels of silver and +jewels of gold. + +11:3 And the LORD gave the people favour in the sight of the +Egyptians. + +Moreover the man Moses was very great in the land of Egypt, in the +sight of Pharaoh's servants, and in the sight of the people. + +11:4 And Moses said, Thus saith the LORD, About midnight will I go out +into the midst of Egypt: 11:5 And all the firstborn in the land of +Egypt shall die, from the first born of Pharaoh that sitteth upon his +throne, even unto the firstborn of the maidservant that is behind the +mill; and all the firstborn of beasts. + +11:6 And there shall be a great cry throughout all the land of Egypt, +such as there was none like it, nor shall be like it any more. + +11:7 But against any of the children of Israel shall not a dog move +his tongue, against man or beast: that ye may know how that the LORD +doth put a difference between the Egyptians and Israel. + +11:8 And all these thy servants shall come down unto me, and bow down +themselves unto me, saying, Get thee out, and all the people that +follow thee: and after that I will go out. And he went out from +Pharaoh in a great anger. + +11:9 And the LORD said unto Moses, Pharaoh shall not hearken unto you; +that my wonders may be multiplied in the land of Egypt. + +11:10 And Moses and Aaron did all these wonders before Pharaoh: and +the LORD hardened Pharaoh's heart, so that he would not let the +children of Israel go out of his land. + +12:1 And the LORD spake unto Moses and Aaron in the land of Egypt +saying, 12:2 This month shall be unto you the beginning of months: it +shall be the first month of the year to you. + +12:3 Speak ye unto all the congregation of Israel, saying, In the +tenth day of this month they shall take to them every man a lamb, +according to the house of their fathers, a lamb for an house: 12:4 And +if the household be too little for the lamb, let him and his neighbour +next unto his house take it according to the number of the souls; +every man according to his eating shall make your count for the lamb. + +12:5 Your lamb shall be without blemish, a male of the first year: ye +shall take it out from the sheep, or from the goats: 12:6 And ye shall +keep it up until the fourteenth day of the same month: and the whole +assembly of the congregation of Israel shall kill it in the evening. + +12:7 And they shall take of the blood, and strike it on the two side +posts and on the upper door post of the houses, wherein they shall eat +it. + +12:8 And they shall eat the flesh in that night, roast with fire, and +unleavened bread; and with bitter herbs they shall eat it. + +12:9 Eat not of it raw, nor sodden at all with water, but roast with +fire; his head with his legs, and with the purtenance thereof. + +12:10 And ye shall let nothing of it remain until the morning; and +that which remaineth of it until the morning ye shall burn with fire. + +12:11 And thus shall ye eat it; with your loins girded, your shoes on +your feet, and your staff in your hand; and ye shall eat it in haste: +it is the LORD's passover. + +12:12 For I will pass through the land of Egypt this night, and will +smite all the firstborn in the land of Egypt, both man and beast; and +against all the gods of Egypt I will execute judgment: I am the LORD. + +12:13 And the blood shall be to you for a token upon the houses where +ye are: and when I see the blood, I will pass over you, and the plague +shall not be upon you to destroy you, when I smite the land of Egypt. + +12:14 And this day shall be unto you for a memorial; and ye shall keep +it a feast to the LORD throughout your generations; ye shall keep it a +feast by an ordinance for ever. + +12:15 Seven days shall ye eat unleavened bread; even the first day ye +shall put away leaven out of your houses: for whosoever eateth +leavened bread from the first day until the seventh day, that soul +shall be cut off from Israel. + +12:16 And in the first day there shall be an holy convocation, and in +the seventh day there shall be an holy convocation to you; no manner +of work shall be done in them, save that which every man must eat, +that only may be done of you. + +12:17 And ye shall observe the feast of unleavened bread; for in this +selfsame day have I brought your armies out of the land of Egypt: +therefore shall ye observe this day in your generations by an +ordinance for ever. + +12:18 In the first month, on the fourteenth day of the month at even, +ye shall eat unleavened bread, until the one and twentieth day of the +month at even. + +12:19 Seven days shall there be no leaven found in your houses: for +whosoever eateth that which is leavened, even that soul shall be cut +off from the congregation of Israel, whether he be a stranger, or born +in the land. + +12:20 Ye shall eat nothing leavened; in all your habitations shall ye +eat unleavened bread. + +12:21 Then Moses called for all the elders of Israel, and said unto +them, Draw out and take you a lamb according to your families, and +kill the passover. + +12:22 And ye shall take a bunch of hyssop, and dip it in the blood +that is in the bason, and strike the lintel and the two side posts +with the blood that is in the bason; and none of you shall go out at +the door of his house until the morning. + +12:23 For the LORD will pass through to smite the Egyptians; and when +he seeth the blood upon the lintel, and on the two side posts, the +LORD will pass over the door, and will not suffer the destroyer to +come in unto your houses to smite you. + +12:24 And ye shall observe this thing for an ordinance to thee and to +thy sons for ever. + +12:25 And it shall come to pass, when ye be come to the land which the +LORD will give you, according as he hath promised, that ye shall keep +this service. + +12:26 And it shall come to pass, when your children shall say unto +you, What mean ye by this service? 12:27 That ye shall say, It is the +sacrifice of the LORD's passover, who passed over the houses of the +children of Israel in Egypt, when he smote the Egyptians, and +delivered our houses. And the people bowed the head and worshipped. + +12:28 And the children of Israel went away, and did as the LORD had +commanded Moses and Aaron, so did they. + +12:29 And it came to pass, that at midnight the LORD smote all the +firstborn in the land of Egypt, from the firstborn of Pharaoh that sat +on his throne unto the firstborn of the captive that was in the +dungeon; and all the firstborn of cattle. + +12:30 And Pharaoh rose up in the night, he, and all his servants, and +all the Egyptians; and there was a great cry in Egypt; for there was +not a house where there was not one dead. + +12:31 And he called for Moses and Aaron by night, and said, Rise up, +and get you forth from among my people, both ye and the children of +Israel; and go, serve the LORD, as ye have said. + +12:32 Also take your flocks and your herds, as ye have said, and be +gone; and bless me also. + +12:33 And the Egyptians were urgent upon the people, that they might +send them out of the land in haste; for they said, We be all dead men. + +12:34 And the people took their dough before it was leavened, their +kneadingtroughs being bound up in their clothes upon their shoulders. + +12:35 And the children of Israel did according to the word of Moses; +and they borrowed of the Egyptians jewels of silver, and jewels of +gold, and raiment: 12:36 And the LORD gave the people favour in the +sight of the Egyptians, so that they lent unto them such things as +they required. And they spoiled the Egyptians. + +12:37 And the children of Israel journeyed from Rameses to Succoth, +about six hundred thousand on foot that were men, beside children. + +12:38 And a mixed multitude went up also with them; and flocks, and +herds, even very much cattle. + +12:39 And they baked unleavened cakes of the dough which they brought +forth out of Egypt, for it was not leavened; because they were thrust +out of Egypt, and could not tarry, neither had they prepared for +themselves any victual. + +12:40 Now the sojourning of the children of Israel, who dwelt in +Egypt, was four hundred and thirty years. + +12:41 And it came to pass at the end of the four hundred and thirty +years, even the selfsame day it came to pass, that all the hosts of +the LORD went out from the land of Egypt. + +12:42 It is a night to be much observed unto the LORD for bringing +them out from the land of Egypt: this is that night of the LORD to be +observed of all the children of Israel in their generations. + +12:43 And the LORD said unto Moses and Aaron, This is the ordinance of +the passover: There shall no stranger eat thereof: 12:44 But every +man's servant that is bought for money, when thou hast circumcised +him, then shall he eat thereof. + +12:45 A foreigner and an hired servant shall not eat thereof. + +12:46 In one house shall it be eaten; thou shalt not carry forth ought +of the flesh abroad out of the house; neither shall ye break a bone +thereof. + +12:47 All the congregation of Israel shall keep it. + +12:48 And when a stranger shall sojourn with thee, and will keep the +passover to the LORD, let all his males be circumcised, and then let +him come near and keep it; and he shall be as one that is born in the +land: for no uncircumcised person shall eat thereof. + +12:49 One law shall be to him that is homeborn, and unto the stranger +that sojourneth among you. + +12:50 Thus did all the children of Israel; as the LORD commanded Moses +and Aaron, so did they. + +12:51 And it came to pass the selfsame day, that the LORD did bring +the children of Israel out of the land of Egypt by their armies. + +13:1 And the LORD spake unto Moses, saying, 13:2 Sanctify unto me all +the firstborn, whatsoever openeth the womb among the children of +Israel, both of man and of beast: it is mine. + +13:3 And Moses said unto the people, Remember this day, in which ye +came out from Egypt, out of the house of bondage; for by strength of +hand the LORD brought you out from this place: there shall no leavened +bread be eaten. + +13:4 This day came ye out in the month Abib. + +13:5 And it shall be when the LORD shall bring thee into the land of +the Canaanites, and the Hittites, and the Amorites, and the Hivites, +and the Jebusites, which he sware unto thy fathers to give thee, a +land flowing with milk and honey, that thou shalt keep this service in +this month. + +13:6 Seven days thou shalt eat unleavened bread, and in the seventh +day shall be a feast to the LORD. + +13:7 Unleavened bread shall be eaten seven days; and there shall no +leavened bread be seen with thee, neither shall there be leaven seen +with thee in all thy quarters. + +13:8 And thou shalt shew thy son in that day, saying, This is done +because of that which the LORD did unto me when I came forth out of +Egypt. + +13:9 And it shall be for a sign unto thee upon thine hand, and for a +memorial between thine eyes, that the LORD's law may be in thy mouth: +for with a strong hand hath the LORD brought thee out of Egypt. + +13:10 Thou shalt therefore keep this ordinance in his season from year +to year. + +13:11 And it shall be when the LORD shall bring thee into the land of +the Canaanites, as he sware unto thee and to thy fathers, and shall +give it thee, 13:12 That thou shalt set apart unto the LORD all that +openeth the matrix, and every firstling that cometh of a beast which +thou hast; the males shall be the LORD's. + +13:13 And every firstling of an ass thou shalt redeem with a lamb; and +if thou wilt not redeem it, then thou shalt break his neck: and all +the firstborn of man among thy children shalt thou redeem. + +13:14 And it shall be when thy son asketh thee in time to come, +saying, What is this? that thou shalt say unto him, By strength of +hand the LORD brought us out from Egypt, from the house of bondage: +13:15 And it came to pass, when Pharaoh would hardly let us go, that +the LORD slew all the firstborn in the land of Egypt, both the +firstborn of man, and the firstborn of beast: therefore I sacrifice to +the LORD all that openeth the matrix, being males; but all the +firstborn of my children I redeem. + +13:16 And it shall be for a token upon thine hand, and for frontlets +between thine eyes: for by strength of hand the LORD brought us forth +out of Egypt. + +13:17 And it came to pass, when Pharaoh had let the people go, that +God led them not through the way of the land of the Philistines, +although that was near; for God said, Lest peradventure the people +repent when they see war, and they return to Egypt: 13:18 But God led +the people about, through the way of the wilderness of the Red sea: +and the children of Israel went up harnessed out of the land of Egypt. + +13:19 And Moses took the bones of Joseph with him: for he had straitly +sworn the children of Israel, saying, God will surely visit you; and +ye shall carry up my bones away hence with you. + +13:20 And they took their journey from Succoth, and encamped in Etham, +in the edge of the wilderness. + +13:21 And the LORD went before them by day in a pillar of a cloud, to +lead them the way; and by night in a pillar of fire, to give them +light; to go by day and night: 13:22 He took not away the pillar of +the cloud by day, nor the pillar of fire by night, from before the +people. + +14:1 And the LORD spake unto Moses, saying, 14:2 Speak unto the +children of Israel, that they turn and encamp before Pihahiroth, +between Migdol and the sea, over against Baalzephon: before it shall +ye encamp by the sea. + +14:3 For Pharaoh will say of the children of Israel, They are +entangled in the land, the wilderness hath shut them in. + +14:4 And I will harden Pharaoh's heart, that he shall follow after +them; and I will be honoured upon Pharaoh, and upon all his host; that +the Egyptians may know that I am the LORD. And they did so. + +14:5 And it was told the king of Egypt that the people fled: and the +heart of Pharaoh and of his servants was turned against the people, +and they said, Why have we done this, that we have let Israel go from +serving us? 14:6 And he made ready his chariot, and took his people +with him: 14:7 And he took six hundred chosen chariots, and all the +chariots of Egypt, and captains over every one of them. + +14:8 And the LORD hardened the heart of Pharaoh king of Egypt, and he +pursued after the children of Israel: and the children of Israel went +out with an high hand. + +14:9 But the Egyptians pursued after them, all the horses and chariots +of Pharaoh, and his horsemen, and his army, and overtook them +encamping by the sea, beside Pihahiroth, before Baalzephon. + +14:10 And when Pharaoh drew nigh, the children of Israel lifted up +their eyes, and, behold, the Egyptians marched after them; and they +were sore afraid: and the children of Israel cried out unto the LORD. + +14:11 And they said unto Moses, Because there were no graves in Egypt, +hast thou taken us away to die in the wilderness? wherefore hast thou +dealt thus with us, to carry us forth out of Egypt? 14:12 Is not this +the word that we did tell thee in Egypt, saying, Let us alone, that we +may serve the Egyptians? For it had been better for us to serve the +Egyptians, than that we should die in the wilderness. + +14:13 And Moses said unto the people, Fear ye not, stand still, and +see the salvation of the LORD, which he will shew to you to day: for +the Egyptians whom ye have seen to day, ye shall see them again no +more for ever. + +14:14 The LORD shall fight for you, and ye shall hold your peace. + +14:15 And the LORD said unto Moses, Wherefore criest thou unto me? +speak unto the children of Israel, that they go forward: 14:16 But +lift thou up thy rod, and stretch out thine hand over the sea, and +divide it: and the children of Israel shall go on dry ground through +the midst of the sea. + +14:17 And I, behold, I will harden the hearts of the Egyptians, and +they shall follow them: and I will get me honour upon Pharaoh, and +upon all his host, upon his chariots, and upon his horsemen. + +14:18 And the Egyptians shall know that I am the LORD, when I have +gotten me honour upon Pharaoh, upon his chariots, and upon his +horsemen. + +14:19 And the angel of God, which went before the camp of Israel, +removed and went behind them; and the pillar of the cloud went from +before their face, and stood behind them: 14:20 And it came between +the camp of the Egyptians and the camp of Israel; and it was a cloud +and darkness to them, but it gave light by night to these: so that the +one came not near the other all the night. + +14:21 And Moses stretched out his hand over the sea; and the LORD +caused the sea to go back by a strong east wind all that night, and +made the sea dry land, and the waters were divided. + +14:22 And the children of Israel went into the midst of the sea upon +the dry ground: and the waters were a wall unto them on their right +hand, and on their left. + +14:23 And the Egyptians pursued, and went in after them to the midst +of the sea, even all Pharaoh's horses, his chariots, and his horsemen. + +14:24 And it came to pass, that in the morning watch the LORD looked +unto the host of the Egyptians through the pillar of fire and of the +cloud, and troubled the host of the Egyptians, 14:25 And took off +their chariot wheels, that they drave them heavily: so that the +Egyptians said, Let us flee from the face of Israel; for the LORD +fighteth for them against the Egyptians. + +14:26 And the LORD said unto Moses, Stretch out thine hand over the +sea, that the waters may come again upon the Egyptians, upon their +chariots, and upon their horsemen. + +14:27 And Moses stretched forth his hand over the sea, and the sea +returned to his strength when the morning appeared; and the Egyptians +fled against it; and the LORD overthrew the Egyptians in the midst of +the sea. + +14:28 And the waters returned, and covered the chariots, and the +horsemen, and all the host of Pharaoh that came into the sea after +them; there remained not so much as one of them. + +14:29 But the children of Israel walked upon dry land in the midst of +the sea; and the waters were a wall unto them on their right hand, and +on their left. + +14:30 Thus the LORD saved Israel that day out of the hand of the +Egyptians; and Israel saw the Egyptians dead upon the sea shore. + +14:31 And Israel saw that great work which the LORD did upon the +Egyptians: and the people feared the LORD, and believed the LORD, and +his servant Moses. + +15:1 Then sang Moses and the children of Israel this song unto the +LORD, and spake, saying, I will sing unto the LORD, for he hath +triumphed gloriously: the horse and his rider hath he thrown into the +sea. + +15:2 The LORD is my strength and song, and he is become my salvation: +he is my God, and I will prepare him an habitation; my father's God, +and I will exalt him. + +15:3 The LORD is a man of war: the LORD is his name. + +15:4 Pharaoh's chariots and his host hath he cast into the sea: his +chosen captains also are drowned in the Red sea. + +15:5 The depths have covered them: they sank into the bottom as a +stone. + +15:6 Thy right hand, O LORD, is become glorious in power: thy right +hand, O LORD, hath dashed in pieces the enemy. + +15:7 And in the greatness of thine excellency thou hast overthrown +them that rose up against thee: thou sentest forth thy wrath, which +consumed them as stubble. + +15:8 And with the blast of thy nostrils the waters were gathered +together, the floods stood upright as an heap, and the depths were +congealed in the heart of the sea. + +15:9 The enemy said, I will pursue, I will overtake, I will divide the +spoil; my lust shall be satisfied upon them; I will draw my sword, my +hand shall destroy them. + +15:10 Thou didst blow with thy wind, the sea covered them: they sank +as lead in the mighty waters. + +15:11 Who is like unto thee, O LORD, among the gods? who is like thee, +glorious in holiness, fearful in praises, doing wonders? 15:12 Thou +stretchedst out thy right hand, the earth swallowed them. + +15:13 Thou in thy mercy hast led forth the people which thou hast +redeemed: thou hast guided them in thy strength unto thy holy +habitation. + +15:14 The people shall hear, and be afraid: sorrow shall take hold on +the inhabitants of Palestina. + +15:15 Then the dukes of Edom shall be amazed; the mighty men of Moab, +trembling shall take hold upon them; all the inhabitants of Canaan +shall melt away. + +15:16 Fear and dread shall fall upon them; by the greatness of thine +arm they shall be as still as a stone; till thy people pass over, O +LORD, till the people pass over, which thou hast purchased. + +15:17 Thou shalt bring them in, and plant them in the mountain of +thine inheritance, in the place, O LORD, which thou hast made for thee +to dwell in, in the Sanctuary, O LORD, which thy hands have +established. + +15:18 The LORD shall reign for ever and ever. + +15:19 For the horse of Pharaoh went in with his chariots and with his +horsemen into the sea, and the LORD brought again the waters of the +sea upon them; but the children of Israel went on dry land in the +midst of the sea. + +15:20 And Miriam the prophetess, the sister of Aaron, took a timbrel +in her hand; and all the women went out after her with timbrels and +with dances. + +15:21 And Miriam answered them, Sing ye to the LORD, for he hath +triumphed gloriously; the horse and his rider hath he thrown into the +sea. + +15:22 So Moses brought Israel from the Red sea, and they went out into +the wilderness of Shur; and they went three days in the wilderness, +and found no water. + +15:23 And when they came to Marah, they could not drink of the waters +of Marah, for they were bitter: therefore the name of it was called +Marah. + +15:24 And the people murmured against Moses, saying, What shall we +drink? 15:25 And he cried unto the LORD; and the LORD shewed him a +tree, which when he had cast into the waters, the waters were made +sweet: there he made for them a statute and an ordinance, and there he +proved them, 15:26 And said, If thou wilt diligently hearken to the +voice of the LORD thy God, and wilt do that which is right in his +sight, and wilt give ear to his commandments, and keep all his +statutes, I will put none of these diseases upon thee, which I have +brought upon the Egyptians: for I am the LORD that healeth thee. + +15:27 And they came to Elim, where were twelve wells of water, and +threescore and ten palm trees: and they encamped there by the waters. + +16:1 And they took their journey from Elim, and all the congregation +of the children of Israel came unto the wilderness of Sin, which is +between Elim and Sinai, on the fifteenth day of the second month after +their departing out of the land of Egypt. + +16:2 And the whole congregation of the children of Israel murmured +against Moses and Aaron in the wilderness: 16:3 And the children of +Israel said unto them, Would to God we had died by the hand of the +LORD in the land of Egypt, when we sat by the flesh pots, and when we +did eat bread to the full; for ye have brought us forth into this +wilderness, to kill this whole assembly with hunger. + +16:4 Then said the LORD unto Moses, Behold, I will rain bread from +heaven for you; and the people shall go out and gather a certain rate +every day, that I may prove them, whether they will walk in my law, or +no. + +16:5 And it shall come to pass, that on the sixth day they shall +prepare that which they bring in; and it shall be twice as much as +they gather daily. + +16:6 And Moses and Aaron said unto all the children of Israel, At +even, then ye shall know that the LORD hath brought you out from the +land of Egypt: 16:7 And in the morning, then ye shall see the glory of +the LORD; for that he heareth your murmurings against the LORD: and +what are we, that ye murmur against us? 16:8 And Moses said, This +shall be, when the LORD shall give you in the evening flesh to eat, +and in the morning bread to the full; for that the LORD heareth your +murmurings which ye murmur against him: and what are we? your +murmurings are not against us, but against the LORD. + +16:9 And Moses spake unto Aaron, Say unto all the congregation of the +children of Israel, Come near before the LORD: for he hath heard your +murmurings. + +16:10 And it came to pass, as Aaron spake unto the whole congregation +of the children of Israel, that they looked toward the wilderness, +and, behold, the glory of the LORD appeared in the cloud. + +16:11 And the LORD spake unto Moses, saying, 16:12 I have heard the +murmurings of the children of Israel: speak unto them, saying, At even +ye shall eat flesh, and in the morning ye shall be filled with bread; +and ye shall know that I am the LORD your God. + +16:13 And it came to pass, that at even the quails came up, and +covered the camp: and in the morning the dew lay round about the host. + +16:14 And when the dew that lay was gone up, behold, upon the face of +the wilderness there lay a small round thing, as small as the hoar +frost on the ground. + +16:15 And when the children of Israel saw it, they said one to +another, It is manna: for they wist not what it was. And Moses said +unto them, This is the bread which the LORD hath given you to eat. + +16:16 This is the thing which the LORD hath commanded, Gather of it +every man according to his eating, an omer for every man, according to +the number of your persons; take ye every man for them which are in +his tents. + +16:17 And the children of Israel did so, and gathered, some more, some +less. + +16:18 And when they did mete it with an omer, he that gathered much +had nothing over, and he that gathered little had no lack; they +gathered every man according to his eating. + +16:19 And Moses said, Let no man leave of it till the morning. + +16:20 Notwithstanding they hearkened not unto Moses; but some of them +left of it until the morning, and it bred worms, and stank: and Moses +was wroth with them. + +16:21 And they gathered it every morning, every man according to his +eating: and when the sun waxed hot, it melted. + +16:22 And it came to pass, that on the sixth day they gathered twice +as much bread, two omers for one man: and all the rulers of the +congregation came and told Moses. + +16:23 And he said unto them, This is that which the LORD hath said, To +morrow is the rest of the holy sabbath unto the LORD: bake that which +ye will bake to day, and seethe that ye will seethe; and that which +remaineth over lay up for you to be kept until the morning. + +16:24 And they laid it up till the morning, as Moses bade: and it did +not stink, neither was there any worm therein. + +16:25 And Moses said, Eat that to day; for to day is a sabbath unto +the LORD: to day ye shall not find it in the field. + +16:26 Six days ye shall gather it; but on the seventh day, which is +the sabbath, in it there shall be none. + +16:27 And it came to pass, that there went out some of the people on +the seventh day for to gather, and they found none. + +16:28 And the LORD said unto Moses, How long refuse ye to keep my +commandments and my laws? 16:29 See, for that the LORD hath given you +the sabbath, therefore he giveth you on the sixth day the bread of two +days; abide ye every man in his place, let no man go out of his place +on the seventh day. + +16:30 So the people rested on the seventh day. + +16:31 And the house of Israel called the name thereof Manna: and it +was like coriander seed, white; and the taste of it was like wafers +made with honey. + +16:32 And Moses said, This is the thing which the LORD commandeth, +Fill an omer of it to be kept for your generations; that they may see +the bread wherewith I have fed you in the wilderness, when I brought +you forth from the land of Egypt. + +16:33 And Moses said unto Aaron, Take a pot, and put an omer full of +manna therein, and lay it up before the LORD, to be kept for your +generations. + +16:34 As the LORD commanded Moses, so Aaron laid it up before the +Testimony, to be kept. + +16:35 And the children of Israel did eat manna forty years, until they +came to a land inhabited; they did eat manna, until they came unto the +borders of the land of Canaan. + +16:36 Now an omer is the tenth part of an ephah. + +17:1 And all the congregation of the children of Israel journeyed from +the wilderness of Sin, after their journeys, according to the +commandment of the LORD, and pitched in Rephidim: and there was no +water for the people to drink. + +17:2 Wherefore the people did chide with Moses, and said, Give us +water that we may drink. And Moses said unto them, Why chide ye with +me? wherefore do ye tempt the LORD? 17:3 And the people thirsted +there for water; and the people murmured against Moses, and said, +Wherefore is this that thou hast brought us up out of Egypt, to kill +us and our children and our cattle with thirst? 17:4 And Moses cried +unto the LORD, saying, What shall I do unto this people? they be +almost ready to stone me. + +17:5 And the LORD said unto Moses, Go on before the people, and take +with thee of the elders of Israel; and thy rod, wherewith thou smotest +the river, take in thine hand, and go. + +17:6 Behold, I will stand before thee there upon the rock in Horeb; +and thou shalt smite the rock, and there shall come water out of it, +that the people may drink. And Moses did so in the sight of the elders +of Israel. + +17:7 And he called the name of the place Massah, and Meribah, because +of the chiding of the children of Israel, and because they tempted the +LORD, saying, Is the LORD among us, or not? 17:8 Then came Amalek, +and fought with Israel in Rephidim. + +17:9 And Moses said unto Joshua, Choose us out men, and go out, fight +with Amalek: to morrow I will stand on the top of the hill with the +rod of God in mine hand. + +17:10 So Joshua did as Moses had said to him, and fought with Amalek: +and Moses, Aaron, and Hur went up to the top of the hill. + +17:11 And it came to pass, when Moses held up his hand, that Israel +prevailed: and when he let down his hand, Amalek prevailed. + +17:12 But Moses hands were heavy; and they took a stone, and put it +under him, and he sat thereon; and Aaron and Hur stayed up his hands, +the one on the one side, and the other on the other side; and his +hands were steady until the going down of the sun. + +17:13 And Joshua discomfited Amalek and his people with the edge of +the sword. + +17:14 And the LORD said unto Moses, Write this for a memorial in a +book, and rehearse it in the ears of Joshua: for I will utterly put +out the remembrance of Amalek from under heaven. + +17:15 And Moses built an altar, and called the name of it +Jehovahnissi: 17:16 For he said, Because the LORD hath sworn that the +LORD will have war with Amalek from generation to generation. + +18:1 When Jethro, the priest of Midian, Moses' father in law, heard of +all that God had done for Moses, and for Israel his people, and that +the LORD had brought Israel out of Egypt; 18:2 Then Jethro, Moses' +father in law, took Zipporah, Moses' wife, after he had sent her back, +18:3 And her two sons; of which the name of the one was Gershom; for +he said, I have been an alien in a strange land: 18:4 And the name of +the other was Eliezer; for the God of my father, said he, was mine +help, and delivered me from the sword of Pharaoh: 18:5 And Jethro, +Moses' father in law, came with his sons and his wife unto Moses into +the wilderness, where he encamped at the mount of God: 18:6 And he +said unto Moses, I thy father in law Jethro am come unto thee, and thy +wife, and her two sons with her. + +18:7 And Moses went out to meet his father in law, and did obeisance, +and kissed him; and they asked each other of their welfare; and they +came into the tent. + +18:8 And Moses told his father in law all that the LORD had done unto +Pharaoh and to the Egyptians for Israel's sake, and all the travail +that had come upon them by the way, and how the LORD delivered them. + +18:9 And Jethro rejoiced for all the goodness which the LORD had done +to Israel, whom he had delivered out of the hand of the Egyptians. + +18:10 And Jethro said, Blessed be the LORD, who hath delivered you out +of the hand of the Egyptians, and out of the hand of Pharaoh, who hath +delivered the people from under the hand of the Egyptians. + +18:11 Now I know that the LORD is greater than all gods: for in the +thing wherein they dealt proudly he was above them. + +18:12 And Jethro, Moses' father in law, took a burnt offering and +sacrifices for God: and Aaron came, and all the elders of Israel, to +eat bread with Moses' father in law before God. + +18:13 And it came to pass on the morrow, that Moses sat to judge the +people: and the people stood by Moses from the morning unto the +evening. + +18:14 And when Moses' father in law saw all that he did to the people, +he said, What is this thing that thou doest to the people? why sittest +thou thyself alone, and all the people stand by thee from morning unto +even? 18:15 And Moses said unto his father in law, Because the people +come unto me to enquire of God: 18:16 When they have a matter, they +come unto me; and I judge between one and another, and I do make them +know the statutes of God, and his laws. + +18:17 And Moses' father in law said unto him, The thing that thou +doest is not good. + +18:18 Thou wilt surely wear away, both thou, and this people that is +with thee: for this thing is too heavy for thee; thou art not able to +perform it thyself alone. + +18:19 Hearken now unto my voice, I will give thee counsel, and God +shall be with thee: Be thou for the people to God-ward, that thou +mayest bring the causes unto God: 18:20 And thou shalt teach them +ordinances and laws, and shalt shew them the way wherein they must +walk, and the work that they must do. + +18:21 Moreover thou shalt provide out of all the people able men, such +as fear God, men of truth, hating covetousness; and place such over +them, to be rulers of thousands, and rulers of hundreds, rulers of +fifties, and rulers of tens: 18:22 And let them judge the people at +all seasons: and it shall be, that every great matter they shall bring +unto thee, but every small matter they shall judge: so shall it be +easier for thyself, and they shall bear the burden with thee. + +18:23 If thou shalt do this thing, and God command thee so, then thou +shalt be able to endure, and all this people shall also go to their +place in peace. + +18:24 So Moses hearkened to the voice of his father in law, and did +all that he had said. + +18:25 And Moses chose able men out of all Israel, and made them heads +over the people, rulers of thousands, rulers of hundreds, rulers of +fifties, and rulers of tens. + +18:26 And they judged the people at all seasons: the hard causes they +brought unto Moses, but every small matter they judged themselves. + +18:27 And Moses let his father in law depart; and he went his way into +his own land. + +19:1 In the third month, when the children of Israel were gone forth +out of the land of Egypt, the same day came they into the wilderness +of Sinai. + +19:2 For they were departed from Rephidim, and were come to the desert +of Sinai, and had pitched in the wilderness; and there Israel camped +before the mount. + +19:3 And Moses went up unto God, and the LORD called unto him out of +the mountain, saying, Thus shalt thou say to the house of Jacob, and +tell the children of Israel; 19:4 Ye have seen what I did unto the +Egyptians, and how I bare you on eagles' wings, and brought you unto +myself. + +19:5 Now therefore, if ye will obey my voice indeed, and keep my +covenant, then ye shall be a peculiar treasure unto me above all +people: for all the earth is mine: 19:6 And ye shall be unto me a +kingdom of priests, and an holy nation. + +These are the words which thou shalt speak unto the children of +Israel. + +19:7 And Moses came and called for the elders of the people, and laid +before their faces all these words which the LORD commanded him. + +19:8 And all the people answered together, and said, All that the LORD +hath spoken we will do. And Moses returned the words of the people +unto the LORD. + +19:9 And the LORD said unto Moses, Lo, I come unto thee in a thick +cloud, that the people may hear when I speak with thee, and believe +thee for ever. + +And Moses told the words of the people unto the LORD. + +19:10 And the LORD said unto Moses, Go unto the people, and sanctify +them to day and to morrow, and let them wash their clothes, 19:11 And +be ready against the third day: for the third day the LORD will come +down in the sight of all the people upon mount Sinai. + +19:12 And thou shalt set bounds unto the people round about, saying, +Take heed to yourselves, that ye go not up into the mount, or touch +the border of it: whosoever toucheth the mount shall be surely put to +death: 19:13 There shall not an hand touch it, but he shall surely be +stoned, or shot through; whether it be beast or man, it shall not +live: when the trumpet soundeth long, they shall come up to the mount. + +19:14 And Moses went down from the mount unto the people, and +sanctified the people; and they washed their clothes. + +19:15 And he said unto the people, Be ready against the third day: +come not at your wives. + +19:16 And it came to pass on the third day in the morning, that there +were thunders and lightnings, and a thick cloud upon the mount, and +the voice of the trumpet exceeding loud; so that all the people that +was in the camp trembled. + +19:17 And Moses brought forth the people out of the camp to meet with +God; and they stood at the nether part of the mount. + +19:18 And mount Sinai was altogether on a smoke, because the LORD +descended upon it in fire: and the smoke thereof ascended as the smoke +of a furnace, and the whole mount quaked greatly. + +19:19 And when the voice of the trumpet sounded long, and waxed louder +and louder, Moses spake, and God answered him by a voice. + +19:20 And the LORD came down upon mount Sinai, on the top of the +mount: and the LORD called Moses up to the top of the mount; and Moses +went up. + +19:21 And the LORD said unto Moses, Go down, charge the people, lest +they break through unto the LORD to gaze, and many of them perish. + +19:22 And let the priests also, which come near to the LORD, sanctify +themselves, lest the LORD break forth upon them. + +19:23 And Moses said unto the LORD, The people cannot come up to mount +Sinai: for thou chargedst us, saying, Set bounds about the mount, and +sanctify it. + +19:24 And the LORD said unto him, Away, get thee down, and thou shalt +come up, thou, and Aaron with thee: but let not the priests and the +people break through to come up unto the LORD, lest he break forth +upon them. + +19:25 So Moses went down unto the people, and spake unto them. + +20:1 And God spake all these words, saying, 20:2 I am the LORD thy +God, which have brought thee out of the land of Egypt, out of the +house of bondage. + +20:3 Thou shalt have no other gods before me. + +20:4 Thou shalt not make unto thee any graven image, or any likeness +of any thing that is in heaven above, or that is in the earth beneath, +or that is in the water under the earth. + +20:5 Thou shalt not bow down thyself to them, nor serve them: for I +the LORD thy God am a jealous God, visiting the iniquity of the +fathers upon the children unto the third and fourth generation of them +that hate me; 20:6 And shewing mercy unto thousands of them that love +me, and keep my commandments. + +20:7 Thou shalt not take the name of the LORD thy God in vain; for the +LORD will not hold him guiltless that taketh his name in vain. + +20:8 Remember the sabbath day, to keep it holy. + +20:9 Six days shalt thou labour, and do all thy work: 20:10 But the +seventh day is the sabbath of the LORD thy God: in it thou shalt not +do any work, thou, nor thy son, nor thy daughter, thy manservant, nor +thy maidservant, nor thy cattle, nor thy stranger that is within thy +gates: 20:11 For in six days the LORD made heaven and earth, the sea, +and all that in them is, and rested the seventh day: wherefore the +LORD blessed the sabbath day, and hallowed it. + +20:12 Honour thy father and thy mother: that thy days may be long upon +the land which the LORD thy God giveth thee. + +20:13 Thou shalt not kill. + +20:14 Thou shalt not commit adultery. + +20:15 Thou shalt not steal. + +20:16 Thou shalt not bear false witness against thy neighbour. + +20:17 Thou shalt not covet thy neighbour's house, thou shalt not covet +thy neighbour's wife, nor his manservant, nor his maidservant, nor his +ox, nor his ass, nor any thing that is thy neighbour's. + +20:18 And all the people saw the thunderings, and the lightnings, and +the noise of the trumpet, and the mountain smoking: and when the +people saw it, they removed, and stood afar off. + +20:19 And they said unto Moses, Speak thou with us, and we will hear: +but let not God speak with us, lest we die. + +20:20 And Moses said unto the people, Fear not: for God is come to +prove you, and that his fear may be before your faces, that ye sin +not. + +20:21 And the people stood afar off, and Moses drew near unto the +thick darkness where God was. + +20:22 And the LORD said unto Moses, Thus thou shalt say unto the +children of Israel, Ye have seen that I have talked with you from +heaven. + +20:23 Ye shall not make with me gods of silver, neither shall ye make +unto you gods of gold. + +20:24 An altar of earth thou shalt make unto me, and shalt sacrifice +thereon thy burnt offerings, and thy peace offerings, thy sheep, and +thine oxen: in all places where I record my name I will come unto +thee, and I will bless thee. + +20:25 And if thou wilt make me an altar of stone, thou shalt not build +it of hewn stone: for if thou lift up thy tool upon it, thou hast +polluted it. + +20:26 Neither shalt thou go up by steps unto mine altar, that thy +nakedness be not discovered thereon. + +21:1 Now these are the judgments which thou shalt set before them. + +21:2 If thou buy an Hebrew servant, six years he shall serve: and in +the seventh he shall go out free for nothing. + +21:3 If he came in by himself, he shall go out by himself: if he were +married, then his wife shall go out with him. + +21:4 If his master have given him a wife, and she have born him sons +or daughters; the wife and her children shall be her master's, and he +shall go out by himself. + +21:5 And if the servant shall plainly say, I love my master, my wife, +and my children; I will not go out free: 21:6 Then his master shall +bring him unto the judges; he shall also bring him to the door, or +unto the door post; and his master shall bore his ear through with an +aul; and he shall serve him for ever. + +21:7 And if a man sell his daughter to be a maidservant, she shall not +go out as the menservants do. + +21:8 If she please not her master, who hath betrothed her to himself, +then shall he let her be redeemed: to sell her unto a strange nation +he shall have no power, seeing he hath dealt deceitfully with her. + +21:9 And if he have betrothed her unto his son, he shall deal with her +after the manner of daughters. + +21:10 If he take him another wife; her food, her raiment, and her duty +of marriage, shall he not diminish. + +21:11 And if he do not these three unto her, then shall she go out +free without money. + +21:12 He that smiteth a man, so that he die, shall be surely put to +death. + +21:13 And if a man lie not in wait, but God deliver him into his hand; +then I will appoint thee a place whither he shall flee. + +21:14 But if a man come presumptuously upon his neighbour, to slay him +with guile; thou shalt take him from mine altar, that he may die. + +21:15 And he that smiteth his father, or his mother, shall be surely +put to death. + +21:16 And he that stealeth a man, and selleth him, or if he be found +in his hand, he shall surely be put to death. + +21:17 And he that curseth his father, or his mother, shall surely be +put to death. + +21:18 And if men strive together, and one smite another with a stone, +or with his fist, and he die not, but keepeth his bed: 21:19 If he +rise again, and walk abroad upon his staff, then shall he that smote +him be quit: only he shall pay for the loss of his time, and shall +cause him to be thoroughly healed. + +21:20 And if a man smite his servant, or his maid, with a rod, and he +die under his hand; he shall be surely punished. + +21:21 Notwithstanding, if he continue a day or two, he shall not be +punished: for he is his money. + +21:22 If men strive, and hurt a woman with child, so that her fruit +depart from her, and yet no mischief follow: he shall be surely +punished, according as the woman's husband will lay upon him; and he +shall pay as the judges determine. + +21:23 And if any mischief follow, then thou shalt give life for life, +21:24 Eye for eye, tooth for tooth, hand for hand, foot for foot, +21:25 Burning for burning, wound for wound, stripe for stripe. + +21:26 And if a man smite the eye of his servant, or the eye of his +maid, that it perish; he shall let him go free for his eye's sake. + +21:27 And if he smite out his manservant's tooth, or his maidservant's +tooth; he shall let him go free for his tooth's sake. + +21:28 If an ox gore a man or a woman, that they die: then the ox shall +be surely stoned, and his flesh shall not be eaten; but the owner of +the ox shall be quit. + +21:29 But if the ox were wont to push with his horn in time past, and +it hath been testified to his owner, and he hath not kept him in, but +that he hath killed a man or a woman; the ox shall be stoned, and his +owner also shall be put to death. + +21:30 If there be laid on him a sum of money, then he shall give for +the ransom of his life whatsoever is laid upon him. + +21:31 Whether he have gored a son, or have gored a daughter, according +to this judgment shall it be done unto him. + +21:32 If the ox shall push a manservant or a maidservant; he shall +give unto their master thirty shekels of silver, and the ox shall be +stoned. + +21:33 And if a man shall open a pit, or if a man shall dig a pit, and +not cover it, and an ox or an ass fall therein; 21:34 The owner of the +pit shall make it good, and give money unto the owner of them; and the +dead beast shall be his. + +21:35 And if one man's ox hurt another's, that he die; then they shall +sell the live ox, and divide the money of it; and the dead ox also +they shall divide. + +21:36 Or if it be known that the ox hath used to push in time past, +and his owner hath not kept him in; he shall surely pay ox for ox; and +the dead shall be his own. + +22:1 If a man shall steal an ox, or a sheep, and kill it, or sell it; +he shall restore five oxen for an ox, and four sheep for a sheep. + +22:2 If a thief be found breaking up, and be smitten that he die, +there shall no blood be shed for him. + +22:3 If the sun be risen upon him, there shall be blood shed for him; +for he should make full restitution; if he have nothing, then he shall +be sold for his theft. + +22:4 If the theft be certainly found in his hand alive, whether it be +ox, or ass, or sheep; he shall restore double. + +22:5 If a man shall cause a field or vineyard to be eaten, and shall +put in his beast, and shall feed in another man's field; of the best +of his own field, and of the best of his own vineyard, shall he make +restitution. + +22:6 If fire break out, and catch in thorns, so that the stacks of +corn, or the standing corn, or the field, be consumed therewith; he +that kindled the fire shall surely make restitution. + +22:7 If a man shall deliver unto his neighbour money or stuff to keep, +and it be stolen out of the man's house; if the thief be found, let +him pay double. + +22:8 If the thief be not found, then the master of the house shall be +brought unto the judges, to see whether he have put his hand unto his +neighbour's goods. + +22:9 For all manner of trespass, whether it be for ox, for ass, for +sheep, for raiment, or for any manner of lost thing which another +challengeth to be his, the cause of both parties shall come before the +judges; and whom the judges shall condemn, he shall pay double unto +his neighbour. + +22:10 If a man deliver unto his neighbour an ass, or an ox, or a +sheep, or any beast, to keep; and it die, or be hurt, or driven away, +no man seeing it: 22:11 Then shall an oath of the LORD be between them +both, that he hath not put his hand unto his neighbour's goods; and +the owner of it shall accept thereof, and he shall not make it good. + +22:12 And if it be stolen from him, he shall make restitution unto the +owner thereof. + +22:13 If it be torn in pieces, then let him bring it for witness, and +he shall not make good that which was torn. + +22:14 And if a man borrow ought of his neighbour, and it be hurt, or +die, the owner thereof being not with it, he shall surely make it +good. + +22:15 But if the owner thereof be with it, he shall not make it good: +if it be an hired thing, it came for his hire. + +22:16 And if a man entice a maid that is not betrothed, and lie with +her, he shall surely endow her to be his wife. + +22:17 If her father utterly refuse to give her unto him, he shall pay +money according to the dowry of virgins. + +22:18 Thou shalt not suffer a witch to live. + +22:19 Whosoever lieth with a beast shall surely be put to death. + +22:20 He that sacrificeth unto any god, save unto the LORD only, he +shall be utterly destroyed. + +22:21 Thou shalt neither vex a stranger, nor oppress him: for ye were +strangers in the land of Egypt. + +22:22 Ye shall not afflict any widow, or fatherless child. + +22:23 If thou afflict them in any wise, and they cry at all unto me, I +will surely hear their cry; 22:24 And my wrath shall wax hot, and I +will kill you with the sword; and your wives shall be widows, and your +children fatherless. + +22:25 If thou lend money to any of my people that is poor by thee, +thou shalt not be to him as an usurer, neither shalt thou lay upon him +usury. + +22:26 If thou at all take thy neighbour's raiment to pledge, thou +shalt deliver it unto him by that the sun goeth down: 22:27 For that +is his covering only, it is his raiment for his skin: wherein shall he +sleep? and it shall come to pass, when he crieth unto me, that I will +hear; for I am gracious. + +22:28 Thou shalt not revile the gods, nor curse the ruler of thy +people. + +22:29 Thou shalt not delay to offer the first of thy ripe fruits, and +of thy liquors: the firstborn of thy sons shalt thou give unto me. + +22:30 Likewise shalt thou do with thine oxen, and with thy sheep: +seven days it shall be with his dam; on the eighth day thou shalt give +it me. + +22:31 And ye shall be holy men unto me: neither shall ye eat any flesh +that is torn of beasts in the field; ye shall cast it to the dogs. + +23:1 Thou shalt not raise a false report: put not thine hand with the +wicked to be an unrighteous witness. + +23:2 Thou shalt not follow a multitude to do evil; neither shalt thou +speak in a cause to decline after many to wrest judgment: 23:3 Neither +shalt thou countenance a poor man in his cause. + +23:4 If thou meet thine enemy's ox or his ass going astray, thou shalt +surely bring it back to him again. + +23:5 If thou see the ass of him that hateth thee lying under his +burden, and wouldest forbear to help him, thou shalt surely help with +him. + +23:6 Thou shalt not wrest the judgment of thy poor in his cause. + +23:7 Keep thee far from a false matter; and the innocent and righteous +slay thou not: for I will not justify the wicked. + +23:8 And thou shalt take no gift: for the gift blindeth the wise, and +perverteth the words of the righteous. + +23:9 Also thou shalt not oppress a stranger: for ye know the heart of +a stranger, seeing ye were strangers in the land of Egypt. + +23:10 And six years thou shalt sow thy land, and shalt gather in the +fruits thereof: 23:11 But the seventh year thou shalt let it rest and +lie still; that the poor of thy people may eat: and what they leave +the beasts of the field shall eat. In like manner thou shalt deal with +thy vineyard, and with thy oliveyard. + +23:12 Six days thou shalt do thy work, and on the seventh day thou +shalt rest: that thine ox and thine ass may rest, and the son of thy +handmaid, and the stranger, may be refreshed. + +23:13 And in all things that I have said unto you be circumspect: and +make no mention of the name of other gods, neither let it be heard out +of thy mouth. + +23:14 Three times thou shalt keep a feast unto me in the year. + +23:15 Thou shalt keep the feast of unleavened bread: (thou shalt eat +unleavened bread seven days, as I commanded thee, in the time +appointed of the month Abib; for in it thou camest out from Egypt: and +none shall appear before me empty:) 23:16 And the feast of harvest, +the firstfruits of thy labours, which thou hast sown in the field: and +the feast of ingathering, which is in the end of the year, when thou +hast gathered in thy labours out of the field. + +23:17 Three items in the year all thy males shall appear before the +LORD God. + +23:18 Thou shalt not offer the blood of my sacrifice with leavened +bread; neither shall the fat of my sacrifice remain until the morning. + +23:19 The first of the firstfruits of thy land thou shalt bring into +the house of the LORD thy God. Thou shalt not seethe a kid in his +mother's milk. + +23:20 Behold, I send an Angel before thee, to keep thee in the way, +and to bring thee into the place which I have prepared. + +23:21 Beware of him, and obey his voice, provoke him not; for he will +not pardon your transgressions: for my name is in him. + +23:22 But if thou shalt indeed obey his voice, and do all that I +speak; then I will be an enemy unto thine enemies, and an adversary +unto thine adversaries. + +23:23 For mine Angel shall go before thee, and bring thee in unto the +Amorites, and the Hittites, and the Perizzites, and the Canaanites, +the Hivites, and the Jebusites: and I will cut them off. + +23:24 Thou shalt not bow down to their gods, nor serve them, nor do +after their works: but thou shalt utterly overthrow them, and quite +break down their images. + +23:25 And ye shall serve the LORD your God, and he shall bless thy +bread, and thy water; and I will take sickness away from the midst of +thee. + +23:26 There shall nothing cast their young, nor be barren, in thy +land: the number of thy days I will fulfil. + +23:27 I will send my fear before thee, and will destroy all the people +to whom thou shalt come, and I will make all thine enemies turn their +backs unto thee. + +23:28 And I will send hornets before thee, which shall drive out the +Hivite, the Canaanite, and the Hittite, from before thee. + +23:29 I will not drive them out from before thee in one year; lest the +land become desolate, and the beast of the field multiply against +thee. + +23:30 By little and little I will drive them out from before thee, +until thou be increased, and inherit the land. + +23:31 And I will set thy bounds from the Red sea even unto the sea of +the Philistines, and from the desert unto the river: for I will +deliver the inhabitants of the land into your hand; and thou shalt +drive them out before thee. + +23:32 Thou shalt make no covenant with them, nor with their gods. + +23:33 They shall not dwell in thy land, lest they make thee sin +against me: for if thou serve their gods, it will surely be a snare +unto thee. + +24:1 And he said unto Moses, Come up unto the LORD, thou, and Aaron, +Nadab, and Abihu, and seventy of the elders of Israel; and worship ye +afar off. + +24:2 And Moses alone shall come near the LORD: but they shall not come +nigh; neither shall the people go up with him. + +24:3 And Moses came and told the people all the words of the LORD, and +all the judgments: and all the people answered with one voice, and +said, All the words which the LORD hath said will we do. + +24:4 And Moses wrote all the words of the LORD, and rose up early in +the morning, and builded an altar under the hill, and twelve pillars, +according to the twelve tribes of Israel. + +24:5 And he sent young men of the children of Israel, which offered +burnt offerings, and sacrificed peace offerings of oxen unto the LORD. + +24:6 And Moses took half of the blood, and put it in basons; and half +of the blood he sprinkled on the altar. + +24:7 And he took the book of the covenant, and read in the audience of +the people: and they said, All that the LORD hath said will we do, and +be obedient. + +24:8 And Moses took the blood, and sprinkled it on the people, and +said, Behold the blood of the covenant, which the LORD hath made with +you concerning all these words. + +24:9 Then went up Moses, and Aaron, Nadab, and Abihu, and seventy of +the elders of Israel: 24:10 And they saw the God of Israel: and there +was under his feet as it were a paved work of a sapphire stone, and as +it were the body of heaven in his clearness. + +24:11 And upon the nobles of the children of Israel he laid not his +hand: also they saw God, and did eat and drink. + +24:12 And the LORD said unto Moses, Come up to me into the mount, and +be there: and I will give thee tables of stone, and a law, and +commandments which I have written; that thou mayest teach them. + +24:13 And Moses rose up, and his minister Joshua: and Moses went up +into the mount of God. + +24:14 And he said unto the elders, Tarry ye here for us, until we come +again unto you: and, behold, Aaron and Hur are with you: if any man +have any matters to do, let him come unto them. + +24:15 And Moses went up into the mount, and a cloud covered the mount. + +24:16 And the glory of the LORD abode upon mount Sinai, and the cloud +covered it six days: and the seventh day he called unto Moses out of +the midst of the cloud. + +24:17 And the sight of the glory of the LORD was like devouring fire +on the top of the mount in the eyes of the children of Israel. + +24:18 And Moses went into the midst of the cloud, and gat him up into +the mount: and Moses was in the mount forty days and forty nights. + +25:1 And the LORD spake unto Moses, saying, 25:2 Speak unto the +children of Israel, that they bring me an offering: of every man that +giveth it willingly with his heart ye shall take my offering. + +25:3 And this is the offering which ye shall take of them; gold, and +silver, and brass, 25:4 And blue, and purple, and scarlet, and fine +linen, and goats' hair, 25:5 And rams' skins dyed red, and badgers' +skins, and shittim wood, 25:6 Oil for the light, spices for anointing +oil, and for sweet incense, 25:7 Onyx stones, and stones to be set in +the ephod, and in the breastplate. + +25:8 And let them make me a sanctuary; that I may dwell among them. + +25:9 According to all that I shew thee, after the pattern of the +tabernacle, and the pattern of all the instruments thereof, even so +shall ye make it. + +25:10 And they shall make an ark of shittim wood: two cubits and a +half shall be the length thereof, and a cubit and a half the breadth +thereof, and a cubit and a half the height thereof. + +25:11 And thou shalt overlay it with pure gold, within and without +shalt thou overlay it, and shalt make upon it a crown of gold round +about. + +25:12 And thou shalt cast four rings of gold for it, and put them in +the four corners thereof; and two rings shall be in the one side of +it, and two rings in the other side of it. + +25:13 And thou shalt make staves of shittim wood, and overlay them +with gold. + +25:14 And thou shalt put the staves into the rings by the sides of the +ark, that the ark may be borne with them. + +25:15 The staves shall be in the rings of the ark: they shall not be +taken from it. + +25:16 And thou shalt put into the ark the testimony which I shall give +thee. + +25:17 And thou shalt make a mercy seat of pure gold: two cubits and a +half shall be the length thereof, and a cubit and a half the breadth +thereof. + +25:18 And thou shalt make two cherubims of gold, of beaten work shalt +thou make them, in the two ends of the mercy seat. + +25:19 And make one cherub on the one end, and the other cherub on the +other end: even of the mercy seat shall ye make the cherubims on the +two ends thereof. + +25:20 And the cherubims shall stretch forth their wings on high, +covering the mercy seat with their wings, and their faces shall look +one to another; toward the mercy seat shall the faces of the cherubims +be. + +25:21 And thou shalt put the mercy seat above upon the ark; and in the +ark thou shalt put the testimony that I shall give thee. + +25:22 And there I will meet with thee, and I will commune with thee +from above the mercy seat, from between the two cherubims which are +upon the ark of the testimony, of all things which I will give thee in +commandment unto the children of Israel. + +25:23 Thou shalt also make a table of shittim wood: two cubits shall +be the length thereof, and a cubit the breadth thereof, and a cubit +and a half the height thereof. + +25:24 And thou shalt overlay it with pure gold, and make thereto a +crown of gold round about. + +25:25 And thou shalt make unto it a border of an hand breadth round +about, and thou shalt make a golden crown to the border thereof round +about. + +25:26 And thou shalt make for it four rings of gold, and put the rings +in the four corners that are on the four feet thereof. + +25:27 Over against the border shall the rings be for places of the +staves to bear the table. + +25:28 And thou shalt make the staves of shittim wood, and overlay them +with gold, that the table may be borne with them. + +25:29 And thou shalt make the dishes thereof, and spoons thereof, and +covers thereof, and bowls thereof, to cover withal: of pure gold shalt +thou make them. + +25:30 And thou shalt set upon the table shewbread before me alway. + +25:31 And thou shalt make a candlestick of pure gold: of beaten work +shall the candlestick be made: his shaft, and his branches, his bowls, +his knops, and his flowers, shall be of the same. + +25:32 And six branches shall come out of the sides of it; three +branches of the candlestick out of the one side, and three branches of +the candlestick out of the other side: 25:33 Three bowls made like +unto almonds, with a knop and a flower in one branch; and three bowls +made like almonds in the other branch, with a knop and a flower: so in +the six branches that come out of the candlestick. + +25:34 And in the candlesticks shall be four bowls made like unto +almonds, with their knops and their flowers. + +25:35 And there shall be a knop under two branches of the same, and a +knop under two branches of the same, and a knop under two branches of +the same, according to the six branches that proceed out of the +candlestick. + +25:36 Their knops and their branches shall be of the same: all it +shall be one beaten work of pure gold. + +25:37 And thou shalt make the seven lamps thereof: and they shall +light the lamps thereof, that they may give light over against it. + +25:38 And the tongs thereof, and the snuffdishes thereof, shall be of +pure gold. + +25:39 Of a talent of pure gold shall he make it, with all these +vessels. + +25:40 And look that thou make them after their pattern, which was +shewed thee in the mount. + +26:1 Moreover thou shalt make the tabernacle with ten curtains of fine +twined linen, and blue, and purple, and scarlet: with cherubims of +cunning work shalt thou make them. + +26:2 The length of one curtain shall be eight and twenty cubits, and +the breadth of one curtain four cubits: and every one of the curtains +shall have one measure. + +26:3 The five curtains shall be coupled together one to another; and +other five curtains shall be coupled one to another. + +26:4 And thou shalt make loops of blue upon the edge of the one +curtain from the selvedge in the coupling; and likewise shalt thou +make in the uttermost edge of another curtain, in the coupling of the +second. + +26:5 Fifty loops shalt thou make in the one curtain, and fifty loops +shalt thou make in the edge of the curtain that is in the coupling of +the second; that the loops may take hold one of another. + +26:6 And thou shalt make fifty taches of gold, and couple the curtains +together with the taches: and it shall be one tabernacle. + +26:7 And thou shalt make curtains of goats' hair to be a covering upon +the tabernacle: eleven curtains shalt thou make. + +26:8 The length of one curtain shall be thirty cubits, and the breadth +of one curtain four cubits: and the eleven curtains shall be all of +one measure. + +26:9 And thou shalt couple five curtains by themselves, and six +curtains by themselves, and shalt double the sixth curtain in the +forefront of the tabernacle. + +26:10 And thou shalt make fifty loops on the edge of the one curtain +that is outmost in the coupling, and fifty loops in the edge of the +curtain which coupleth the second. + +26:11 And thou shalt make fifty taches of brass, and put the taches +into the loops, and couple the tent together, that it may be one. + +26:12 And the remnant that remaineth of the curtains of the tent, the +half curtain that remaineth, shall hang over the backside of the +tabernacle. + +26:13 And a cubit on the one side, and a cubit on the other side of +that which remaineth in the length of the curtains of the tent, it +shall hang over the sides of the tabernacle on this side and on that +side, to cover it. + +26:14 And thou shalt make a covering for the tent of rams' skins dyed +red, and a covering above of badgers' skins. + +26:15 And thou shalt make boards for the tabernacle of shittim wood +standing up. + +26:16 Ten cubits shall be the length of a board, and a cubit and a +half shall be the breadth of one board. + +26:17 Two tenons shall there be in one board, set in order one against +another: thus shalt thou make for all the boards of the tabernacle. + +26:18 And thou shalt make the boards for the tabernacle, twenty boards +on the south side southward. + +26:19 And thou shalt make forty sockets of silver under the twenty +boards; two sockets under one board for his two tenons, and two +sockets under another board for his two tenons. + +26:20 And for the second side of the tabernacle on the north side +there shall be twenty boards: 26:21 And their forty sockets of silver; +two sockets under one board, and two sockets under another board. + +26:22 And for the sides of the tabernacle westward thou shalt make six +boards. + +26:23 And two boards shalt thou make for the corners of the tabernacle +in the two sides. + +26:24 And they shall be coupled together beneath, and they shall be +coupled together above the head of it unto one ring: thus shall it be +for them both; they shall be for the two corners. + +26:25 And they shall be eight boards, and their sockets of silver, +sixteen sockets; two sockets under one board, and two sockets under +another board. + +26:26 And thou shalt make bars of shittim wood; five for the boards of +the one side of the tabernacle, 26:27 And five bars for the boards of +the other side of the tabernacle, and five bars for the boards of the +side of the tabernacle, for the two sides westward. + +26:28 And the middle bar in the midst of the boards shall reach from +end to end. + +26:29 And thou shalt overlay the boards with gold, and make their +rings of gold for places for the bars: and thou shalt overlay the bars +with gold. + +26:30 And thou shalt rear up the tabernacle according to the fashion +thereof which was shewed thee in the mount. + +26:31 And thou shalt make a vail of blue, and purple, and scarlet, and +fine twined linen of cunning work: with cherubims shall it be made: +26:32 And thou shalt hang it upon four pillars of shittim wood +overlaid with gold: their hooks shall be of gold, upon the four +sockets of silver. + +26:33 And thou shalt hang up the vail under the taches, that thou +mayest bring in thither within the vail the ark of the testimony: and +the vail shall divide unto you between the holy place and the most +holy. + +26:34 And thou shalt put the mercy seat upon the ark of the testimony +in the most holy place. + +26:35 And thou shalt set the table without the vail, and the +candlestick over against the table on the side of the tabernacle +toward the south: and thou shalt put the table on the north side. + +26:36 And thou shalt make an hanging for the door of the tent, of +blue, and purple, and scarlet, and fine twined linen, wrought with +needlework. + +26:37 And thou shalt make for the hanging five pillars of shittim +wood, and overlay them with gold, and their hooks shall be of gold: +and thou shalt cast five sockets of brass for them. + +27:1 And thou shalt make an altar of shittim wood, five cubits long, +and five cubits broad; the altar shall be foursquare: and the height +thereof shall be three cubits. + +27:2 And thou shalt make the horns of it upon the four corners +thereof: his horns shall be of the same: and thou shalt overlay it +with brass. + +27:3 And thou shalt make his pans to receive his ashes, and his +shovels, and his basons, and his fleshhooks, and his firepans: all the +vessels thereof thou shalt make of brass. + +27:4 And thou shalt make for it a grate of network of brass; and upon +the net shalt thou make four brasen rings in the four corners thereof. + +27:5 And thou shalt put it under the compass of the altar beneath, +that the net may be even to the midst of the altar. + +27:6 And thou shalt make staves for the altar, staves of shittim wood, +and overlay them with brass. + +27:7 And the staves shall be put into the rings, and the staves shall +be upon the two sides of the altar, to bear it. + +27:8 Hollow with boards shalt thou make it: as it was shewed thee in +the mount, so shall they make it. + +27:9 And thou shalt make the court of the tabernacle: for the south +side southward there shall be hangings for the court of fine twined +linen of an hundred cubits long for one side: 27:10 And the twenty +pillars thereof and their twenty sockets shall be of brass; the hooks +of the pillars and their fillets shall be of silver. + +27:11 And likewise for the north side in length there shall be +hangings of an hundred cubits long, and his twenty pillars and their +twenty sockets of brass; the hooks of the pillars and their fillets of +silver. + +27:12 And for the breadth of the court on the west side shall be +hangings of fifty cubits: their pillars ten, and their sockets ten. + +27:13 And the breadth of the court on the east side eastward shall be +fifty cubits. + +27:14 The hangings of one side of the gate shall be fifteen cubits: +their pillars three, and their sockets three. + +27:15 And on the other side shall be hangings fifteen cubits: their +pillars three, and their sockets three. + +27:16 And for the gate of the court shall be an hanging of twenty +cubits, of blue, and purple, and scarlet, and fine twined linen, +wrought with needlework: and their pillars shall be four, and their +sockets four. + +27:17 All the pillars round about the court shall be filleted with +silver; their hooks shall be of silver, and their sockets of brass. + +27:18 The length of the court shall be an hundred cubits, and the +breadth fifty every where, and the height five cubits of fine twined +linen, and their sockets of brass. + +27:19 All the vessels of the tabernacle in all the service thereof, +and all the pins thereof, and all the pins of the court, shall be of +brass. + +27:20 And thou shalt command the children of Israel, that they bring +thee pure oil olive beaten for the light, to cause the lamp to burn +always. + +27:21 In the tabernacle of the congregation without the vail, which is +before the testimony, Aaron and his sons shall order it from evening +to morning before the LORD: it shall be a statute for ever unto their +generations on the behalf of the children of Israel. + +28:1 And take thou unto thee Aaron thy brother, and his sons with him, +from among the children of Israel, that he may minister unto me in the +priest's office, even Aaron, Nadab and Abihu, Eleazar and Ithamar, +Aaron's sons. + +28:2 And thou shalt make holy garments for Aaron thy brother for glory +and for beauty. + +28:3 And thou shalt speak unto all that are wise hearted, whom I have +filled with the spirit of wisdom, that they may make Aaron's garments +to consecrate him, that he may minister unto me in the priest's +office. + +28:4 And these are the garments which they shall make; a breastplate, +and an ephod, and a robe, and a broidered coat, a mitre, and a girdle: +and they shall make holy garments for Aaron thy brother, and his sons, +that he may minister unto me in the priest's office. + +28:5 And they shall take gold, and blue, and purple, and scarlet, and +fine linen. + +28:6 And they shall make the ephod of gold, of blue, and of purple, of +scarlet, and fine twined linen, with cunning work. + +28:7 It shall have the two shoulderpieces thereof joined at the two +edges thereof; and so it shall be joined together. + +28:8 And the curious girdle of the ephod, which is upon it, shall be +of the same, according to the work thereof; even of gold, of blue, and +purple, and scarlet, and fine twined linen. + +28:9 And thou shalt take two onyx stones, and grave on them the names +of the children of Israel: 28:10 Six of their names on one stone, and +the other six names of the rest on the other stone, according to their +birth. + +28:11 With the work of an engraver in stone, like the engravings of a +signet, shalt thou engrave the two stones with the names of the +children of Israel: thou shalt make them to be set in ouches of gold. + +28:12 And thou shalt put the two stones upon the shoulders of the +ephod for stones of memorial unto the children of Israel: and Aaron +shall bear their names before the LORD upon his two shoulders for a +memorial. + +28:13 And thou shalt make ouches of gold; 28:14 And two chains of pure +gold at the ends; of wreathen work shalt thou make them, and fasten +the wreathen chains to the ouches. + +28:15 And thou shalt make the breastplate of judgment with cunning +work; after the work of the ephod thou shalt make it; of gold, of +blue, and of purple, and of scarlet, and of fine twined linen, shalt +thou make it. + +28:16 Foursquare it shall be being doubled; a span shall be the length +thereof, and a span shall be the breadth thereof. + +28:17 And thou shalt set in it settings of stones, even four rows of +stones: the first row shall be a sardius, a topaz, and a carbuncle: +this shall be the first row. + +28:18 And the second row shall be an emerald, a sapphire, and a +diamond. + +28:19 And the third row a ligure, an agate, and an amethyst. + +28:20 And the fourth row a beryl, and an onyx, and a jasper: they +shall be set in gold in their inclosings. + +28:21 And the stones shall be with the names of the children of +Israel, twelve, according to their names, like the engravings of a +signet; every one with his name shall they be according to the twelve +tribes. + +28:22 And thou shalt make upon the breastplate chains at the ends of +wreathen work of pure gold. + +28:23 And thou shalt make upon the breastplate two rings of gold, and +shalt put the two rings on the two ends of the breastplate. + +28:24 And thou shalt put the two wreathen chains of gold in the two +rings which are on the ends of the breastplate. + +28:25 And the other two ends of the two wreathen chains thou shalt +fasten in the two ouches, and put them on the shoulderpieces of the +ephod before it. + +28:26 And thou shalt make two rings of gold, and thou shalt put them +upon the two ends of the breastplate in the border thereof, which is +in the side of the ephod inward. + +28:27 And two other rings of gold thou shalt make, and shalt put them +on the two sides of the ephod underneath, toward the forepart thereof, +over against the other coupling thereof, above the curious girdle of +the ephod. + +28:28 And they shall bind the breastplate by the rings thereof unto +the rings of the ephod with a lace of blue, that it may be above the +curious girdle of the ephod, and that the breastplate be not loosed +from the ephod. + +28:29 And Aaron shall bear the names of the children of Israel in the +breastplate of judgment upon his heart, when he goeth in unto the holy +place, for a memorial before the LORD continually. + +28:30 And thou shalt put in the breastplate of judgment the Urim and +the Thummim; and they shall be upon Aaron's heart, when he goeth in +before the LORD: and Aaron shall bear the judgment of the children of +Israel upon his heart before the LORD continually. + +28:31 And thou shalt make the robe of the ephod all of blue. + +28:32 And there shall be an hole in the top of it, in the midst +thereof: it shall have a binding of woven work round about the hole of +it, as it were the hole of an habergeon, that it be not rent. + +28:33 And beneath upon the hem of it thou shalt make pomegranates of +blue, and of purple, and of scarlet, round about the hem thereof; and +bells of gold between them round about: 28:34 A golden bell and a +pomegranate, a golden bell and a pomegranate, upon the hem of the robe +round about. + +28:35 And it shall be upon Aaron to minister: and his sound shall be +heard when he goeth in unto the holy place before the LORD, and when +he cometh out, that he die not. + +28:36 And thou shalt make a plate of pure gold, and grave upon it, +like the engravings of a signet, HOLINESS TO THE LORD. + +28:37 And thou shalt put it on a blue lace, that it may be upon the +mitre; upon the forefront of the mitre it shall be. + +28:38 And it shall be upon Aaron's forehead, that Aaron may bear the +iniquity of the holy things, which the children of Israel shall hallow +in all their holy gifts; and it shall be always upon his forehead, +that they may be accepted before the LORD. + +28:39 And thou shalt embroider the coat of fine linen, and thou shalt +make the mitre of fine linen, and thou shalt make the girdle of +needlework. + +28:40 And for Aaron's sons thou shalt make coats, and thou shalt make +for them girdles, and bonnets shalt thou make for them, for glory and +for beauty. + +28:41 And thou shalt put them upon Aaron thy brother, and his sons +with him; and shalt anoint them, and consecrate them, and sanctify +them, that they may minister unto me in the priest's office. + +28:42 And thou shalt make them linen breeches to cover their +nakedness; from the loins even unto the thighs they shall reach: 28:43 +And they shall be upon Aaron, and upon his sons, when they come in +unto the tabernacle of the congregation, or when they come near unto +the altar to minister in the holy place; that they bear not iniquity, +and die: it shall be a statute for ever unto him and his seed after +him. + +29:1 And this is the thing that thou shalt do unto them to hallow +them, to minister unto me in the priest's office: Take one young +bullock, and two rams without blemish, 29:2 And unleavened bread, and +cakes unleavened tempered with oil, and wafers unleavened anointed +with oil: of wheaten flour shalt thou make them. + +29:3 And thou shalt put them into one basket, and bring them in the +basket, with the bullock and the two rams. + +29:4 And Aaron and his sons thou shalt bring unto the door of the +tabernacle of the congregation, and shalt wash them with water. + +29:5 And thou shalt take the garments, and put upon Aaron the coat, +and the robe of the ephod, and the ephod, and the breastplate, and +gird him with the curious girdle of the ephod: 29:6 And thou shalt put +the mitre upon his head, and put the holy crown upon the mitre. + +29:7 Then shalt thou take the anointing oil, and pour it upon his +head, and anoint him. + +29:8 And thou shalt bring his sons, and put coats upon them. + +29:9 And thou shalt gird them with girdles, Aaron and his sons, and +put the bonnets on them: and the priest's office shall be theirs for a +perpetual statute: and thou shalt consecrate Aaron and his sons. + +29:10 And thou shalt cause a bullock to be brought before the +tabernacle of the congregation: and Aaron and his sons shall put their +hands upon the head of the bullock. + +29:11 And thou shalt kill the bullock before the LORD, by the door of +the tabernacle of the congregation. + +29:12 And thou shalt take of the blood of the bullock, and put it upon +the horns of the altar with thy finger, and pour all the blood beside +the bottom of the altar. + +29:13 And thou shalt take all the fat that covereth the inwards, and +the caul that is above the liver, and the two kidneys, and the fat +that is upon them, and burn them upon the altar. + +29:14 But the flesh of the bullock, and his skin, and his dung, shalt +thou burn with fire without the camp: it is a sin offering. + +29:15 Thou shalt also take one ram; and Aaron and his sons shall put +their hands upon the head of the ram. + +29:16 And thou shalt slay the ram, and thou shalt take his blood, and +sprinkle it round about upon the altar. + +29:17 And thou shalt cut the ram in pieces, and wash the inwards of +him, and his legs, and put them unto his pieces, and unto his head. + +29:18 And thou shalt burn the whole ram upon the altar: it is a burnt +offering unto the LORD: it is a sweet savour, an offering made by fire +unto the LORD. + +29:19 And thou shalt take the other ram; and Aaron and his sons shall +put their hands upon the head of the ram. + +29:20 Then shalt thou kill the ram, and take of his blood, and put it +upon the tip of the right ear of Aaron, and upon the tip of the right +ear of his sons, and upon the thumb of their right hand, and upon the +great toe of their right foot, and sprinkle the blood upon the altar +round about. + +29:21 And thou shalt take of the blood that is upon the altar, and of +the anointing oil, and sprinkle it upon Aaron, and upon his garments, +and upon his sons, and upon the garments of his sons with him: and he +shall be hallowed, and his garments, and his sons, and his sons' +garments with him. + +29:22 Also thou shalt take of the ram the fat and the rump, and the +fat that covereth the inwards, and the caul above the liver, and the +two kidneys, and the fat that is upon them, and the right shoulder; +for it is a ram of consecration: 29:23 And one loaf of bread, and one +cake of oiled bread, and one wafer out of the basket of the unleavened +bread that is before the LORD: 29:24 And thou shalt put all in the +hands of Aaron, and in the hands of his sons; and shalt wave them for +a wave offering before the LORD. + +29:25 And thou shalt receive them of their hands, and burn them upon +the altar for a burnt offering, for a sweet savour before the LORD: it +is an offering made by fire unto the LORD. + +29:26 And thou shalt take the breast of the ram of Aaron's +consecration, and wave it for a wave offering before the LORD: and it +shall be thy part. + +29:27 And thou shalt sanctify the breast of the wave offering, and the +shoulder of the heave offering, which is waved, and which is heaved +up, of the ram of the consecration, even of that which is for Aaron, +and of that which is for his sons: 29:28 And it shall be Aaron's and +his sons' by a statute for ever from the children of Israel: for it is +an heave offering: and it shall be an heave offering from the children +of Israel of the sacrifice of their peace offerings, even their heave +offering unto the LORD. + +29:29 And the holy garments of Aaron shall be his sons' after him, to +be anointed therein, and to be consecrated in them. + +29:30 And that son that is priest in his stead shall put them on seven +days, when he cometh into the tabernacle of the congregation to +minister in the holy place. + +29:31 And thou shalt take the ram of the consecration, and seethe his +flesh in the holy place. + +29:32 And Aaron and his sons shall eat the flesh of the ram, and the +bread that is in the basket by the door of the tabernacle of the +congregation. + +29:33 And they shall eat those things wherewith the atonement was +made, to consecrate and to sanctify them: but a stranger shall not eat +thereof, because they are holy. + +29:34 And if ought of the flesh of the consecrations, or of the bread, +remain unto the morning, then thou shalt burn the remainder with fire: +it shall not be eaten, because it is holy. + +29:35 And thus shalt thou do unto Aaron, and to his sons, according to +all things which I have commanded thee: seven days shalt thou +consecrate them. + +29:36 And thou shalt offer every day a bullock for a sin offering for +atonement: and thou shalt cleanse the altar, when thou hast made an +atonement for it, and thou shalt anoint it, to sanctify it. + +29:37 Seven days thou shalt make an atonement for the altar, and +sanctify it; and it shall be an altar most holy: whatsoever toucheth +the altar shall be holy. + +29:38 Now this is that which thou shalt offer upon the altar; two +lambs of the first year day by day continually. + +29:39 The one lamb thou shalt offer in the morning; and the other lamb +thou shalt offer at even: 29:40 And with the one lamb a tenth deal of +flour mingled with the fourth part of an hin of beaten oil; and the +fourth part of an hin of wine for a drink offering. + +29:41 And the other lamb thou shalt offer at even, and shalt do +thereto according to the meat offering of the morning, and according +to the drink offering thereof, for a sweet savour, an offering made by +fire unto the LORD. + +29:42 This shall be a continual burnt offering throughout your +generations at the door of the tabernacle of the congregation before +the LORD: where I will meet you, to speak there unto thee. + +29:43 And there I will meet with the children of Israel, and the +tabernacle shall be sanctified by my glory. + +29:44 And I will sanctify the tabernacle of the congregation, and the +altar: I will sanctify also both Aaron and his sons, to minister to me +in the priest's office. + +29:45 And I will dwell among the children of Israel, and will be their +God. + +29:46 And they shall know that I am the LORD their God, that brought +them forth out of the land of Egypt, that I may dwell among them: I am +the LORD their God. + +30:1 And thou shalt make an altar to burn incense upon: of shittim +wood shalt thou make it. + +30:2 A cubit shall be the length thereof, and a cubit the breadth +thereof; foursquare shall it be: and two cubits shall be the height +thereof: the horns thereof shall be of the same. + +30:3 And thou shalt overlay it with pure gold, the top thereof, and +the sides thereof round about, and the horns thereof; and thou shalt +make unto it a crown of gold round about. + +30:4 And two golden rings shalt thou make to it under the crown of it, +by the two corners thereof, upon the two sides of it shalt thou make +it; and they shall be for places for the staves to bear it withal. + +30:5 And thou shalt make the staves of shittim wood, and overlay them +with gold. + +30:6 And thou shalt put it before the vail that is by the ark of the +testimony, before the mercy seat that is over the testimony, where I +will meet with thee. + +30:7 And Aaron shall burn thereon sweet incense every morning: when he +dresseth the lamps, he shall burn incense upon it. + +30:8 And when Aaron lighteth the lamps at even, he shall burn incense +upon it, a perpetual incense before the LORD throughout your +generations. + +30:9 Ye shall offer no strange incense thereon, nor burnt sacrifice, +nor meat offering; neither shall ye pour drink offering thereon. + +30:10 And Aaron shall make an atonement upon the horns of it once in a +year with the blood of the sin offering of atonements: once in the +year shall he make atonement upon it throughout your generations: it +is most holy unto the LORD. + +30:11 And the LORD spake unto Moses, saying, 30:12 When thou takest +the sum of the children of Israel after their number, then shall they +give every man a ransom for his soul unto the LORD, when thou +numberest them; that there be no plague among them, when thou +numberest them. + +30:13 This they shall give, every one that passeth among them that are +numbered, half a shekel after the shekel of the sanctuary: (a shekel +is twenty gerahs:) an half shekel shall be the offering of the LORD. + +30:14 Every one that passeth among them that are numbered, from twenty +years old and above, shall give an offering unto the LORD. + +30:15 The rich shall not give more, and the poor shall not give less +than half a shekel, when they give an offering unto the LORD, to make +an atonement for your souls. + +30:16 And thou shalt take the atonement money of the children of +Israel, and shalt appoint it for the service of the tabernacle of the +congregation; that it may be a memorial unto the children of Israel +before the LORD, to make an atonement for your souls. + +30:17 And the LORD spake unto Moses, saying, 30:18 Thou shalt also +make a laver of brass, and his foot also of brass, to wash withal: and +thou shalt put it between the tabernacle of the congregation and the +altar, and thou shalt put water therein. + +30:19 For Aaron and his sons shall wash their hands and their feet +thereat: 30:20 When they go into the tabernacle of the congregation, +they shall wash with water, that they die not; or when they come near +to the altar to minister, to burn offering made by fire unto the LORD: +30:21 So they shall wash their hands and their feet, that they die +not: and it shall be a statute for ever to them, even to him and to +his seed throughout their generations. + +30:22 Moreover the LORD spake unto Moses, saying, 30:23 Take thou also +unto thee principal spices, of pure myrrh five hundred shekels, and of +sweet cinnamon half so much, even two hundred and fifty shekels, and +of sweet calamus two hundred and fifty shekels, 30:24 And of cassia +five hundred shekels, after the shekel of the sanctuary, and of oil +olive an hin: 30:25 And thou shalt make it an oil of holy ointment, an +ointment compound after the art of the apothecary: it shall be an holy +anointing oil. + +30:26 And thou shalt anoint the tabernacle of the congregation +therewith, and the ark of the testimony, 30:27 And the table and all +his vessels, and the candlestick and his vessels, and the altar of +incense, 30:28 And the altar of burnt offering with all his vessels, +and the laver and his foot. + +30:29 And thou shalt sanctify them, that they may be most holy: +whatsoever toucheth them shall be holy. + +30:30 And thou shalt anoint Aaron and his sons, and consecrate them, +that they may minister unto me in the priest's office. + +30:31 And thou shalt speak unto the children of Israel, saying, This +shall be an holy anointing oil unto me throughout your generations. + +30:32 Upon man's flesh shall it not be poured, neither shall ye make +any other like it, after the composition of it: it is holy, and it +shall be holy unto you. + +30:33 Whosoever compoundeth any like it, or whosoever putteth any of +it upon a stranger, shall even be cut off from his people. + +30:34 And the LORD said unto Moses, Take unto thee sweet spices, +stacte, and onycha, and galbanum; these sweet spices with pure +frankincense: of each shall there be a like weight: 30:35 And thou +shalt make it a perfume, a confection after the art of the apothecary, +tempered together, pure and holy: 30:36 And thou shalt beat some of it +very small, and put of it before the testimony in the tabernacle of +the congregation, where I will meet with thee: it shall be unto you +most holy. + +30:37 And as for the perfume which thou shalt make, ye shall not make +to yourselves according to the composition thereof: it shall be unto +thee holy for the LORD. + +30:38 Whosoever shall make like unto that, to smell thereto, shall +even be cut off from his people. + +31:1 And the LORD spake unto Moses, saying, 31:2 See, I have called by +name Bezaleel the son of Uri, the son of Hur, of the tribe of Judah: +31:3 And I have filled him with the spirit of God, in wisdom, and in +understanding, and in knowledge, and in all manner of workmanship, +31:4 To devise cunning works, to work in gold, and in silver, and in +brass, 31:5 And in cutting of stones, to set them, and in carving of +timber, to work in all manner of workmanship. + +31:6 And I, behold, I have given with him Aholiab, the son of +Ahisamach, of the tribe of Dan: and in the hearts of all that are wise +hearted I have put wisdom, that they may make all that I have +commanded thee; 31:7 The tabernacle of the congregation, and the ark +of the testimony, and the mercy seat that is thereupon, and all the +furniture of the tabernacle, 31:8 And the table and his furniture, and +the pure candlestick with all his furniture, and the altar of incense, +31:9 And the altar of burnt offering with all his furniture, and the +laver and his foot, 31:10 And the cloths of service, and the holy +garments for Aaron the priest, and the garments of his sons, to +minister in the priest's office, 31:11 And the anointing oil, and +sweet incense for the holy place: according to all that I have +commanded thee shall they do. + +31:12 And the LORD spake unto Moses, saying, 31:13 Speak thou also +unto the children of Israel, saying, Verily my sabbaths ye shall keep: +for it is a sign between me and you throughout your generations; that +ye may know that I am the LORD that doth sanctify you. + +31:14 Ye shall keep the sabbath therefore; for it is holy unto you: +every one that defileth it shall surely be put to death: for whosoever +doeth any work therein, that soul shall be cut off from among his +people. + +31:15 Six days may work be done; but in the seventh is the sabbath of +rest, holy to the LORD: whosoever doeth any work in the sabbath day, +he shall surely be put to death. + +31:16 Wherefore the children of Israel shall keep the sabbath, to +observe the sabbath throughout their generations, for a perpetual +covenant. + +31:17 It is a sign between me and the children of Israel for ever: for +in six days the LORD made heaven and earth, and on the seventh day he +rested, and was refreshed. + +31:18 And he gave unto Moses, when he had made an end of communing +with him upon mount Sinai, two tables of testimony, tables of stone, +written with the finger of God. + +32:1 And when the people saw that Moses delayed to come down out of +the mount, the people gathered themselves together unto Aaron, and +said unto him, Up, make us gods, which shall go before us; for as for +this Moses, the man that brought us up out of the land of Egypt, we +wot not what is become of him. + +32:2 And Aaron said unto them, Break off the golden earrings, which +are in the ears of your wives, of your sons, and of your daughters, +and bring them unto me. + +32:3 And all the people brake off the golden earrings which were in +their ears, and brought them unto Aaron. + +32:4 And he received them at their hand, and fashioned it with a +graving tool, after he had made it a molten calf: and they said, These +be thy gods, O Israel, which brought thee up out of the land of Egypt. + +32:5 And when Aaron saw it, he built an altar before it; and Aaron +made proclamation, and said, To morrow is a feast to the LORD. + +32:6 And they rose up early on the morrow, and offered burnt +offerings, and brought peace offerings; and the people sat down to eat +and to drink, and rose up to play. + +32:7 And the LORD said unto Moses, Go, get thee down; for thy people, +which thou broughtest out of the land of Egypt, have corrupted +themselves: 32:8 They have turned aside quickly out of the way which I +commanded them: they have made them a molten calf, and have worshipped +it, and have sacrificed thereunto, and said, These be thy gods, O +Israel, which have brought thee up out of the land of Egypt. + +32:9 And the LORD said unto Moses, I have seen this people, and, +behold, it is a stiffnecked people: 32:10 Now therefore let me alone, +that my wrath may wax hot against them, and that I may consume them: +and I will make of thee a great nation. + +32:11 And Moses besought the LORD his God, and said, LORD, why doth +thy wrath wax hot against thy people, which thou hast brought forth +out of the land of Egypt with great power, and with a mighty hand? +32:12 Wherefore should the Egyptians speak, and say, For mischief did +he bring them out, to slay them in the mountains, and to consume them +from the face of the earth? Turn from thy fierce wrath, and repent of +this evil against thy people. + +32:13 Remember Abraham, Isaac, and Israel, thy servants, to whom thou +swarest by thine own self, and saidst unto them, I will multiply your +seed as the stars of heaven, and all this land that I have spoken of +will I give unto your seed, and they shall inherit it for ever. + +32:14 And the LORD repented of the evil which he thought to do unto +his people. + +32:15 And Moses turned, and went down from the mount, and the two +tables of the testimony were in his hand: the tables were written on +both their sides; on the one side and on the other were they written. + +32:16 And the tables were the work of God, and the writing was the +writing of God, graven upon the tables. + +32:17 And when Joshua heard the noise of the people as they shouted, +he said unto Moses, There is a noise of war in the camp. + +32:18 And he said, It is not the voice of them that shout for mastery, +neither is it the voice of them that cry for being overcome: but the +noise of them that sing do I hear. + +32:19 And it came to pass, as soon as he came nigh unto the camp, that +he saw the calf, and the dancing: and Moses' anger waxed hot, and he +cast the tables out of his hands, and brake them beneath the mount. + +32:20 And he took the calf which they had made, and burnt it in the +fire, and ground it to powder, and strawed it upon the water, and made +the children of Israel drink of it. + +32:21 And Moses said unto Aaron, What did this people unto thee, that +thou hast brought so great a sin upon them? 32:22 And Aaron said, Let +not the anger of my lord wax hot: thou knowest the people, that they +are set on mischief. + +32:23 For they said unto me, Make us gods, which shall go before us: +for as for this Moses, the man that brought us up out of the land of +Egypt, we wot not what is become of him. + +32:24 And I said unto them, Whosoever hath any gold, let them break it +off. So they gave it me: then I cast it into the fire, and there came +out this calf. + +32:25 And when Moses saw that the people were naked; (for Aaron had +made them naked unto their shame among their enemies:) 32:26 Then +Moses stood in the gate of the camp, and said, Who is on the LORD's +side? let him come unto me. And all the sons of Levi gathered +themselves together unto him. + +32:27 And he said unto them, Thus saith the LORD God of Israel, Put +every man his sword by his side, and go in and out from gate to gate +throughout the camp, and slay every man his brother, and every man his +companion, and every man his neighbour. + +32:28 And the children of Levi did according to the word of Moses: and +there fell of the people that day about three thousand men. + +32:29 For Moses had said, Consecrate yourselves today to the LORD, +even every man upon his son, and upon his brother; that he may bestow +upon you a blessing this day. + +32:30 And it came to pass on the morrow, that Moses said unto the +people, Ye have sinned a great sin: and now I will go up unto the +LORD; peradventure I shall make an atonement for your sin. + +32:31 And Moses returned unto the LORD, and said, Oh, this people have +sinned a great sin, and have made them gods of gold. + +32:32 Yet now, if thou wilt forgive their sin--; and if not, blot me, +I pray thee, out of thy book which thou hast written. + +32:33 And the LORD said unto Moses, Whosoever hath sinned against me, +him will I blot out of my book. + +32:34 Therefore now go, lead the people unto the place of which I have +spoken unto thee: behold, mine Angel shall go before thee: +nevertheless in the day when I visit I will visit their sin upon them. + +32:35 And the LORD plagued the people, because they made the calf, +which Aaron made. + +33:1 And the LORD said unto Moses, Depart, and go up hence, thou and +the people which thou hast brought up out of the land of Egypt, unto +the land which I sware unto Abraham, to Isaac, and to Jacob, saying, +Unto thy seed will I give it: 33:2 And I will send an angel before +thee; and I will drive out the Canaanite, the Amorite, and the +Hittite, and the Perizzite, the Hivite, and the Jebusite: 33:3 Unto a +land flowing with milk and honey: for I will not go up in the midst of +thee; for thou art a stiffnecked people: lest I consume thee in the +way. + +33:4 And when the people heard these evil tidings, they mourned: and +no man did put on him his ornaments. + +33:5 For the LORD had said unto Moses, Say unto the children of +Israel, Ye are a stiffnecked people: I will come up into the midst of +thee in a moment, and consume thee: therefore now put off thy +ornaments from thee, that I may know what to do unto thee. + +33:6 And the children of Israel stripped themselves of their ornaments +by the mount Horeb. + +33:7 And Moses took the tabernacle, and pitched it without the camp, +afar off from the camp, and called it the Tabernacle of the +congregation. And it came to pass, that every one which sought the +LORD went out unto the tabernacle of the congregation, which was +without the camp. + +33:8 And it came to pass, when Moses went out unto the tabernacle, +that all the people rose up, and stood every man at his tent door, and +looked after Moses, until he was gone into the tabernacle. + +33:9 And it came to pass, as Moses entered into the tabernacle, the +cloudy pillar descended, and stood at the door of the tabernacle, and +the Lord talked with Moses. + +33:10 And all the people saw the cloudy pillar stand at the tabernacle +door: and all the people rose up and worshipped, every man in his tent +door. + +33:11 And the LORD spake unto Moses face to face, as a man speaketh +unto his friend. And he turned again into the camp: but his servant +Joshua, the son of Nun, a young man, departed not out of the +tabernacle. + +33:12 And Moses said unto the LORD, See, thou sayest unto me, Bring up +this people: and thou hast not let me know whom thou wilt send with +me. Yet thou hast said, I know thee by name, and thou hast also found +grace in my sight. + +33:13 Now therefore, I pray thee, if I have found grace in thy sight, +shew me now thy way, that I may know thee, that I may find grace in +thy sight: and consider that this nation is thy people. + +33:14 And he said, My presence shall go with thee, and I will give +thee rest. + +33:15 And he said unto him, If thy presence go not with me, carry us +not up hence. + +33:16 For wherein shall it be known here that I and thy people have +found grace in thy sight? is it not in that thou goest with us? so +shall we be separated, I and thy people, from all the people that are +upon the face of the earth. + +33:17 And the LORD said unto Moses, I will do this thing also that +thou hast spoken: for thou hast found grace in my sight, and I know +thee by name. + +33:18 And he said, I beseech thee, shew me thy glory. + +33:19 And he said, I will make all my goodness pass before thee, and I +will proclaim the name of the LORD before thee; and will be gracious +to whom I will be gracious, and will shew mercy on whom I will shew +mercy. + +33:20 And he said, Thou canst not see my face: for there shall no man +see me, and live. + +33:21 And the LORD said, Behold, there is a place by me, and thou +shalt stand upon a rock: 33:22 And it shall come to pass, while my +glory passeth by, that I will put thee in a clift of the rock, and +will cover thee with my hand while I pass by: 33:23 And I will take +away mine hand, and thou shalt see my back parts: but my face shall +not be seen. + +34:1 And the LORD said unto Moses, Hew thee two tables of stone like +unto the first: and I will write upon these tables the words that were +in the first tables, which thou brakest. + +34:2 And be ready in the morning, and come up in the morning unto +mount Sinai, and present thyself there to me in the top of the mount. + +34:3 And no man shall come up with thee, neither let any man be seen +throughout all the mount; neither let the flocks nor herds feed before +that mount. + +34:4 And he hewed two tables of stone like unto the first; and Moses +rose up early in the morning, and went up unto mount Sinai, as the +LORD had commanded him, and took in his hand the two tables of stone. + +34:5 And the LORD descended in the cloud, and stood with him there, +and proclaimed the name of the LORD. + +34:6 And the LORD passed by before him, and proclaimed, The LORD, The +LORD God, merciful and gracious, longsuffering, and abundant in +goodness and truth, 34:7 Keeping mercy for thousands, forgiving +iniquity and transgression and sin, and that will by no means clear +the guilty; visiting the iniquity of the fathers upon the children, +and upon the children's children, unto the third and to the fourth +generation. + +34:8 And Moses made haste, and bowed his head toward the earth, and +worshipped. + +34:9 And he said, If now I have found grace in thy sight, O LORD, let +my LORD, I pray thee, go among us; for it is a stiffnecked people; and +pardon our iniquity and our sin, and take us for thine inheritance. + +34:10 And he said, Behold, I make a covenant: before all thy people I +will do marvels, such as have not been done in all the earth, nor in +any nation: and all the people among which thou art shall see the work +of the LORD: for it is a terrible thing that I will do with thee. + +34:11 Observe thou that which I command thee this day: behold, I drive +out before thee the Amorite, and the Canaanite, and the Hittite, and +the Perizzite, and the Hivite, and the Jebusite. + +34:12 Take heed to thyself, lest thou make a covenant with the +inhabitants of the land whither thou goest, lest it be for a snare in +the midst of thee: 34:13 But ye shall destroy their altars, break +their images, and cut down their groves: 34:14 For thou shalt worship +no other god: for the LORD, whose name is Jealous, is a jealous God: +34:15 Lest thou make a covenant with the inhabitants of the land, and +they go a whoring after their gods, and do sacrifice unto their gods, +and one call thee, and thou eat of his sacrifice; 34:16 And thou take +of their daughters unto thy sons, and their daughters go a whoring +after their gods, and make thy sons go a whoring after their gods. + +34:17 Thou shalt make thee no molten gods. + +34:18 The feast of unleavened bread shalt thou keep. Seven days thou +shalt eat unleavened bread, as I commanded thee, in the time of the +month Abib: for in the month Abib thou camest out from Egypt. + +34:19 All that openeth the matrix is mine; and every firstling among +thy cattle, whether ox or sheep, that is male. + +34:20 But the firstling of an ass thou shalt redeem with a lamb: and +if thou redeem him not, then shalt thou break his neck. All the +firstborn of thy sons thou shalt redeem. And none shall appear before +me empty. + +34:21 Six days thou shalt work, but on the seventh day thou shalt +rest: in earing time and in harvest thou shalt rest. + +34:22 And thou shalt observe the feast of weeks, of the firstfruits of +wheat harvest, and the feast of ingathering at the year's end. + +34:23 Thrice in the year shall all your menchildren appear before the +LORD God, the God of Israel. + +34:24 For I will cast out the nations before thee, and enlarge thy +borders: neither shall any man desire thy land, when thou shalt go up +to appear before the LORD thy God thrice in the year. + +34:25 Thou shalt not offer the blood of my sacrifice with leaven; +neither shall the sacrifice of the feast of the passover be left unto +the morning. + +34:26 The first of the firstfruits of thy land thou shalt bring unto +the house of the LORD thy God. Thou shalt not seethe a kid in his +mother's milk. + +34:27 And the LORD said unto Moses, Write thou these words: for after +the tenor of these words I have made a covenant with thee and with +Israel. + +34:28 And he was there with the LORD forty days and forty nights; he +did neither eat bread, nor drink water. And he wrote upon the tables +the words of the covenant, the ten commandments. + +34:29 And it came to pass, when Moses came down from mount Sinai with +the two tables of testimony in Moses' hand, when he came down from the +mount, that Moses wist not that the skin of his face shone while he +talked with him. + +34:30 And when Aaron and all the children of Israel saw Moses, behold, +the skin of his face shone; and they were afraid to come nigh him. + +34:31 And Moses called unto them; and Aaron and all the rulers of the +congregation returned unto him: and Moses talked with them. + +34:32 And afterward all the children of Israel came nigh: and he gave +them in commandment all that the LORD had spoken with him in mount +Sinai. + +34:33 And till Moses had done speaking with them, he put a vail on his +face. + +34:34 But when Moses went in before the LORD to speak with him, he +took the vail off, until he came out. And he came out, and spake unto +the children of Israel that which he was commanded. + +34:35 And the children of Israel saw the face of Moses, that the skin +of Moses' face shone: and Moses put the vail upon his face again, +until he went in to speak with him. + +35:1 And Moses gathered all the congregation of the children of Israel +together, and said unto them, These are the words which the LORD hath +commanded, that ye should do them. + +35:2 Six days shall work be done, but on the seventh day there shall +be to you an holy day, a sabbath of rest to the LORD: whosoever doeth +work therein shall be put to death. + +35:3 Ye shall kindle no fire throughout your habitations upon the +sabbath day. + +35:4 And Moses spake unto all the congregation of the children of +Israel, saying, This is the thing which the LORD commanded, saying, +35:5 Take ye from among you an offering unto the LORD: whosoever is of +a willing heart, let him bring it, an offering of the LORD; gold, and +silver, and brass, 35:6 And blue, and purple, and scarlet, and fine +linen, and goats' hair, 35:7 And rams' skins dyed red, and badgers' +skins, and shittim wood, 35:8 And oil for the light, and spices for +anointing oil, and for the sweet incense, 35:9 And onyx stones, and +stones to be set for the ephod, and for the breastplate. + +35:10 And every wise hearted among you shall come, and make all that +the LORD hath commanded; 35:11 The tabernacle, his tent, and his +covering, his taches, and his boards, his bars, his pillars, and his +sockets, 35:12 The ark, and the staves thereof, with the mercy seat, +and the vail of the covering, 35:13 The table, and his staves, and all +his vessels, and the shewbread, 35:14 The candlestick also for the +light, and his furniture, and his lamps, with the oil for the light, +35:15 And the incense altar, and his staves, and the anointing oil, +and the sweet incense, and the hanging for the door at the entering in +of the tabernacle, 35:16 The altar of burnt offering, with his brasen +grate, his staves, and all his vessels, the laver and his foot, 35:17 +The hangings of the court, his pillars, and their sockets, and the +hanging for the door of the court, 35:18 The pins of the tabernacle, +and the pins of the court, and their cords, 35:19 The cloths of +service, to do service in the holy place, the holy garments for Aaron +the priest, and the garments of his sons, to minister in the priest's +office. + +35:20 And all the congregation of the children of Israel departed from +the presence of Moses. + +35:21 And they came, every one whose heart stirred him up, and every +one whom his spirit made willing, and they brought the LORD's offering +to the work of the tabernacle of the congregation, and for all his +service, and for the holy garments. + +35:22 And they came, both men and women, as many as were willing +hearted, and brought bracelets, and earrings, and rings, and tablets, +all jewels of gold: and every man that offered offered an offering of +gold unto the LORD. + +35:23 And every man, with whom was found blue, and purple, and +scarlet, and fine linen, and goats' hair, and red skins of rams, and +badgers' skins, brought them. + +35:24 Every one that did offer an offering of silver and brass brought +the LORD's offering: and every man, with whom was found shittim wood +for any work of the service, brought it. + +35:25 And all the women that were wise hearted did spin with their +hands, and brought that which they had spun, both of blue, and of +purple, and of scarlet, and of fine linen. + +35:26 And all the women whose heart stirred them up in wisdom spun +goats' hair. + +35:27 And the rulers brought onyx stones, and stones to be set, for +the ephod, and for the breastplate; 35:28 And spice, and oil for the +light, and for the anointing oil, and for the sweet incense. + +35:29 The children of Israel brought a willing offering unto the LORD, +every man and woman, whose heart made them willing to bring for all +manner of work, which the LORD had commanded to be made by the hand of +Moses. + +35:30 And Moses said unto the children of Israel, See, the LORD hath +called by name Bezaleel the son of Uri, the son of Hur, of the tribe +of Judah; 35:31 And he hath filled him with the spirit of God, in +wisdom, in understanding, and in knowledge, and in all manner of +workmanship; 35:32 And to devise curious works, to work in gold, and +in silver, and in brass, 35:33 And in the cutting of stones, to set +them, and in carving of wood, to make any manner of cunning work. + +35:34 And he hath put in his heart that he may teach, both he, and +Aholiab, the son of Ahisamach, of the tribe of Dan. + +35:35 Them hath he filled with wisdom of heart, to work all manner of +work, of the engraver, and of the cunning workman, and of the +embroiderer, in blue, and in purple, in scarlet, and in fine linen, +and of the weaver, even of them that do any work, and of those that +devise cunning work. + +36:1 Then wrought Bezaleel and Aholiab, and every wise hearted man, in +whom the LORD put wisdom and understanding to know how to work all +manner of work for the service of the sanctuary, according to all that +the LORD had commanded. + +36:2 And Moses called Bezaleel and Aholiab, and every wise hearted +man, in whose heart the LORD had put wisdom, even every one whose +heart stirred him up to come unto the work to do it: 36:3 And they +received of Moses all the offering, which the children of Israel had +brought for the work of the service of the sanctuary, to make it +withal. And they brought yet unto him free offerings every morning. + +36:4 And all the wise men, that wrought all the work of the sanctuary, +came every man from his work which they made; 36:5 And they spake unto +Moses, saying, The people bring much more than enough for the service +of the work, which the LORD commanded to make. + +36:6 And Moses gave commandment, and they caused it to be proclaimed +throughout the camp, saying, Let neither man nor woman make any more +work for the offering of the sanctuary. So the people were restrained +from bringing. + +36:7 For the stuff they had was sufficient for all the work to make +it, and too much. + +36:8 And every wise hearted man among them that wrought the work of +the tabernacle made ten curtains of fine twined linen, and blue, and +purple, and scarlet: with cherubims of cunning work made he them. + +36:9 The length of one curtain was twenty and eight cubits, and the +breadth of one curtain four cubits: the curtains were all of one size. + +36:10 And he coupled the five curtains one unto another: and the other +five curtains he coupled one unto another. + +36:11 And he made loops of blue on the edge of one curtain from the +selvedge in the coupling: likewise he made in the uttermost side of +another curtain, in the coupling of the second. + +36:12 Fifty loops made he in one curtain, and fifty loops made he in +the edge of the curtain which was in the coupling of the second: the +loops held one curtain to another. + +36:13 And he made fifty taches of gold, and coupled the curtains one +unto another with the taches: so it became one tabernacle. + +36:14 And he made curtains of goats' hair for the tent over the +tabernacle: eleven curtains he made them. + +36:15 The length of one curtain was thirty cubits, and four cubits was +the breadth of one curtain: the eleven curtains were of one size. + +36:16 And he coupled five curtains by themselves, and six curtains by +themselves. + +36:17 And he made fifty loops upon the uttermost edge of the curtain +in the coupling, and fifty loops made he upon the edge of the curtain +which coupleth the second. + +36:18 And he made fifty taches of brass to couple the tent together, +that it might be one. + +36:19 And he made a covering for the tent of rams' skins dyed red, and +a covering of badgers' skins above that. + +36:20 And he made boards for the tabernacle of shittim wood, standing +up. + +36:21 The length of a board was ten cubits, and the breadth of a board +one cubit and a half. + +36:22 One board had two tenons, equally distant one from another: thus +did he make for all the boards of the tabernacle. + +36:23 And he made boards for the tabernacle; twenty boards for the +south side southward: 36:24 And forty sockets of silver he made under +the twenty boards; two sockets under one board for his two tenons, and +two sockets under another board for his two tenons. + +36:25 And for the other side of the tabernacle, which is toward the +north corner, he made twenty boards, 36:26 And their forty sockets of +silver; two sockets under one board, and two sockets under another +board. + +36:27 And for the sides of the tabernacle westward he made six boards. + +36:28 And two boards made he for the corners of the tabernacle in the +two sides. + +36:29 And they were coupled beneath, and coupled together at the head +thereof, to one ring: thus he did to both of them in both the corners. + +36:30 And there were eight boards; and their sockets were sixteen +sockets of silver, under every board two sockets. + +36:31 And he made bars of shittim wood; five for the boards of the one +side of the tabernacle, 36:32 And five bars for the boards of the +other side of the tabernacle, and five bars for the boards of the +tabernacle for the sides westward. + +36:33 And he made the middle bar to shoot through the boards from the +one end to the other. + +36:34 And he overlaid the boards with gold, and made their rings of +gold to be places for the bars, and overlaid the bars with gold. + +36:35 And he made a vail of blue, and purple, and scarlet, and fine +twined linen: with cherubims made he it of cunning work. + +36:36 And he made thereunto four pillars of shittim wood, and overlaid +them with gold: their hooks were of gold; and he cast for them four +sockets of silver. + +36:37 And he made an hanging for the tabernacle door of blue, and +purple, and scarlet, and fine twined linen, of needlework; 36:38 And +the five pillars of it with their hooks: and he overlaid their +chapiters and their fillets with gold: but their five sockets were of +brass. + +37:1 And Bezaleel made the ark of shittim wood: two cubits and a half +was the length of it, and a cubit and a half the breadth of it, and a +cubit and a half the height of it: 37:2 And he overlaid it with pure +gold within and without, and made a crown of gold to it round about. + +37:3 And he cast for it four rings of gold, to be set by the four +corners of it; even two rings upon the one side of it, and two rings +upon the other side of it. + +37:4 And he made staves of shittim wood, and overlaid them with gold. + +37:5 And he put the staves into the rings by the sides of the ark, to +bear the ark. + +37:6 And he made the mercy seat of pure gold: two cubits and a half +was the length thereof, and one cubit and a half the breadth thereof. + +37:7 And he made two cherubims of gold, beaten out of one piece made +he them, on the two ends of the mercy seat; 37:8 One cherub on the end +on this side, and another cherub on the other end on that side: out of +the mercy seat made he the cherubims on the two ends thereof. + +37:9 And the cherubims spread out their wings on high, and covered +with their wings over the mercy seat, with their faces one to another; +even to the mercy seatward were the faces of the cherubims. + +37:10 And he made the table of shittim wood: two cubits was the length +thereof, and a cubit the breadth thereof, and a cubit and a half the +height thereof: 37:11 And he overlaid it with pure gold, and made +thereunto a crown of gold round about. + +37:12 Also he made thereunto a border of an handbreadth round about; +and made a crown of gold for the border thereof round about. + +37:13 And he cast for it four rings of gold, and put the rings upon +the four corners that were in the four feet thereof. + +37:14 Over against the border were the rings, the places for the +staves to bear the table. + +37:15 And he made the staves of shittim wood, and overlaid them with +gold, to bear the table. + +37:16 And he made the vessels which were upon the table, his dishes, +and his spoons, and his bowls, and his covers to cover withal, of pure +gold. + +37:17 And he made the candlestick of pure gold: of beaten work made he +the candlestick; his shaft, and his branch, his bowls, his knops, and +his flowers, were of the same: 37:18 And six branches going out of the +sides thereof; three branches of the candlestick out of the one side +thereof, and three branches of the candlestick out of the other side +thereof: 37:19 Three bowls made after the fashion of almonds in one +branch, a knop and a flower; and three bowls made like almonds in +another branch, a knop and a flower: so throughout the six branches +going out of the candlestick. + +37:20 And in the candlestick were four bowls made like almonds, his +knops, and his flowers: 37:21 And a knop under two branches of the +same, and a knop under two branches of the same, and a knop under two +branches of the same, according to the six branches going out of it. + +37:22 Their knops and their branches were of the same: all of it was +one beaten work of pure gold. + +37:23 And he made his seven lamps, and his snuffers, and his +snuffdishes, of pure gold. + +37:24 Of a talent of pure gold made he it, and all the vessels +thereof. + +37:25 And he made the incense altar of shittim wood: the length of it +was a cubit, and the breadth of it a cubit; it was foursquare; and two +cubits was the height of it; the horns thereof were of the same. + +37:26 And he overlaid it with pure gold, both the top of it, and the +sides thereof round about, and the horns of it: also he made unto it a +crown of gold round about. + +37:27 And he made two rings of gold for it under the crown thereof, by +the two corners of it, upon the two sides thereof, to be places for +the staves to bear it withal. + +37:28 And he made the staves of shittim wood, and overlaid them with +gold. + +37:29 And he made the holy anointing oil, and the pure incense of +sweet spices, according to the work of the apothecary. + +38:1 And he made the altar of burnt offering of shittim wood: five +cubits was the length thereof, and five cubits the breadth thereof; it +was foursquare; and three cubits the height thereof. + +38:2 And he made the horns thereof on the four corners of it; the +horns thereof were of the same: and he overlaid it with brass. + +38:3 And he made all the vessels of the altar, the pots, and the +shovels, and the basons, and the fleshhooks, and the firepans: all the +vessels thereof made he of brass. + +38:4 And he made for the altar a brasen grate of network under the +compass thereof beneath unto the midst of it. + +38:5 And he cast four rings for the four ends of the grate of brass, +to be places for the staves. + +38:6 And he made the staves of shittim wood, and overlaid them with +brass. + +38:7 And he put the staves into the rings on the sides of the altar, +to bear it withal; he made the altar hollow with boards. + +38:8 And he made the laver of brass, and the foot of it of brass, of +the lookingglasses of the women assembling, which assembled at the +door of the tabernacle of the congregation. + +38:9 And he made the court: on the south side southward the hangings +of the court were of fine twined linen, an hundred cubits: 38:10 Their +pillars were twenty, and their brasen sockets twenty; the hooks of the +pillars and their fillets were of silver. + +38:11 And for the north side the hangings were an hundred cubits, +their pillars were twenty, and their sockets of brass twenty; the +hooks of the pillars and their fillets of silver. + +38:12 And for the west side were hangings of fifty cubits, their +pillars ten, and their sockets ten; the hooks of the pillars and their +fillets of silver. + +38:13 And for the east side eastward fifty cubits. + +38:14 The hangings of the one side of the gate were fifteen cubits; +their pillars three, and their sockets three. + +38:15 And for the other side of the court gate, on this hand and that +hand, were hangings of fifteen cubits; their pillars three, and their +sockets three. + +38:16 All the hangings of the court round about were of fine twined +linen. + +38:17 And the sockets for the pillars were of brass; the hooks of the +pillars and their fillets of silver; and the overlaying of their +chapiters of silver; and all the pillars of the court were filleted +with silver. + +38:18 And the hanging for the gate of the court was needlework, of +blue, and purple, and scarlet, and fine twined linen: and twenty +cubits was the length, and the height in the breadth was five cubits, +answerable to the hangings of the court. + +38:19 And their pillars were four, and their sockets of brass four; +their hooks of silver, and the overlaying of their chapiters and their +fillets of silver. + +38:20 And all the pins of the tabernacle, and of the court round +about, were of brass. + +38:21 This is the sum of the tabernacle, even of the tabernacle of +testimony, as it was counted, according to the commandment of Moses, +for the service of the Levites, by the hand of Ithamar, son to Aaron +the priest. + +38:22 And Bezaleel the son Uri, the son of Hur, of the tribe of Judah, +made all that the LORD commanded Moses. + +38:23 And with him was Aholiab, son of Ahisamach, of the tribe of Dan, +an engraver, and a cunning workman, and an embroiderer in blue, and in +purple, and in scarlet, and fine linen. + +38:24 All the gold that was occupied for the work in all the work of +the holy place, even the gold of the offering, was twenty and nine +talents, and seven hundred and thirty shekels, after the shekel of the +sanctuary. + +38:25 And the silver of them that were numbered of the congregation +was an hundred talents, and a thousand seven hundred and threescore +and fifteen shekels, after the shekel of the sanctuary: 38:26 A bekah +for every man, that is, half a shekel, after the shekel of the +sanctuary, for every one that went to be numbered, from twenty years +old and upward, for six hundred thousand and three thousand and five +hundred and fifty men. + +38:27 And of the hundred talents of silver were cast the sockets of +the sanctuary, and the sockets of the vail; an hundred sockets of the +hundred talents, a talent for a socket. + +38:28 And of the thousand seven hundred seventy and five shekels he +made hooks for the pillars, and overlaid their chapiters, and filleted +them. + +38:29 And the brass of the offering was seventy talents, and two +thousand and four hundred shekels. + +38:30 And therewith he made the sockets to the door of the tabernacle +of the congregation, and the brasen altar, and the brasen grate for +it, and all the vessels of the altar, 38:31 And the sockets of the +court round about, and the sockets of the court gate, and all the pins +of the tabernacle, and all the pins of the court round about. + +39:1 And of the blue, and purple, and scarlet, they made cloths of +service, to do service in the holy place, and made the holy garments +for Aaron; as the LORD commanded Moses. + +39:2 And he made the ephod of gold, blue, and purple, and scarlet, and +fine twined linen. + +39:3 And they did beat the gold into thin plates, and cut it into +wires, to work it in the blue, and in the purple, and in the scarlet, +and in the fine linen, with cunning work. + +39:4 They made shoulderpieces for it, to couple it together: by the +two edges was it coupled together. + +39:5 And the curious girdle of his ephod, that was upon it, was of the +same, according to the work thereof; of gold, blue, and purple, and +scarlet, and fine twined linen; as the LORD commanded Moses. + +39:6 And they wrought onyx stones inclosed in ouches of gold, graven, +as signets are graven, with the names of the children of Israel. + +39:7 And he put them on the shoulders of the ephod, that they should +be stones for a memorial to the children of Israel; as the LORD +commanded Moses. + +39:8 And he made the breastplate of cunning work, like the work of the +ephod; of gold, blue, and purple, and scarlet, and fine twined linen. + +39:9 It was foursquare; they made the breastplate double: a span was +the length thereof, and a span the breadth thereof, being doubled. + +39:10 And they set in it four rows of stones: the first row was a +sardius, a topaz, and a carbuncle: this was the first row. + +39:11 And the second row, an emerald, a sapphire, and a diamond. + +39:12 And the third row, a ligure, an agate, and an amethyst. + +39:13 And the fourth row, a beryl, an onyx, and a jasper: they were +inclosed in ouches of gold in their inclosings. + +39:14 And the stones were according to the names of the children of +Israel, twelve, according to their names, like the engravings of a +signet, every one with his name, according to the twelve tribes. + +39:15 And they made upon the breastplate chains at the ends, of +wreathen work of pure gold. + +39:16 And they made two ouches of gold, and two gold rings; and put +the two rings in the two ends of the breastplate. + +39:17 And they put the two wreathen chains of gold in the two rings on +the ends of the breastplate. + +39:18 And the two ends of the two wreathen chains they fastened in the +two ouches, and put them on the shoulderpieces of the ephod, before +it. + +39:19 And they made two rings of gold, and put them on the two ends of +the breastplate, upon the border of it, which was on the side of the +ephod inward. + +39:20 And they made two other golden rings, and put them on the two +sides of the ephod underneath, toward the forepart of it, over against +the other coupling thereof, above the curious girdle of the ephod. + +39:21 And they did bind the breastplate by his rings unto the rings of +the ephod with a lace of blue, that it might be above the curious +girdle of the ephod, and that the breastplate might not be loosed from +the ephod; as the LORD commanded Moses. + +39:22 And he made the robe of the ephod of woven work, all of blue. + +39:23 And there was an hole in the midst of the robe, as the hole of +an habergeon, with a band round about the hole, that it should not +rend. + +39:24 And they made upon the hems of the robe pomegranates of blue, +and purple, and scarlet, and twined linen. + +39:25 And they made bells of pure gold, and put the bells between the +pomegranates upon the hem of the robe, round about between the +pomegranates; 39:26 A bell and a pomegranate, a bell and a +pomegranate, round about the hem of the robe to minister in; as the +LORD commanded Moses. + +39:27 And they made coats of fine linen of woven work for Aaron, and +for his sons, 39:28 And a mitre of fine linen, and goodly bonnets of +fine linen, and linen breeches of fine twined linen, 39:29 And a +girdle of fine twined linen, and blue, and purple, and scarlet, of +needlework; as the LORD commanded Moses. + +39:30 And they made the plate of the holy crown of pure gold, and +wrote upon it a writing, like to the engravings of a signet, HOLINESS +TO THE LORD. + +39:31 And they tied unto it a lace of blue, to fasten it on high upon +the mitre; as the LORD commanded Moses. + +39:32 Thus was all the work of the tabernacle of the tent of the +congregation finished: and the children of Israel did according to all +that the LORD commanded Moses, so did they. + +39:33 And they brought the tabernacle unto Moses, the tent, and all +his furniture, his taches, his boards, his bars, and his pillars, and +his sockets, 39:34 And the covering of rams' skins dyed red, and the +covering of badgers' skins, and the vail of the covering, 39:35 The +ark of the testimony, and the staves thereof, and the mercy seat, +39:36 The table, and all the vessels thereof, and the shewbread, 39:37 +The pure candlestick, with the lamps thereof, even with the lamps to +be set in order, and all the vessels thereof, and the oil for light, +39:38 And the golden altar, and the anointing oil, and the sweet +incense, and the hanging for the tabernacle door, 39:39 The brasen +altar, and his grate of brass, his staves, and all his vessels, the +laver and his foot, 39:40 The hangings of the court, his pillars, and +his sockets, and the hanging for the court gate, his cords, and his +pins, and all the vessels of the service of the tabernacle, for the +tent of the congregation, 39:41 The cloths of service to do service in +the holy place, and the holy garments for Aaron the priest, and his +sons' garments, to minister in the priest's office. + +39:42 According to all that the LORD commanded Moses, so the children +of Israel made all the work. + +39:43 And Moses did look upon all the work, and, behold, they had done +it as the LORD had commanded, even so had they done it: and Moses +blessed them. + +40:1 And the LORD spake unto Moses, saying, 40:2 On the first day of +the first month shalt thou set up the tabernacle of the tent of the +congregation. + +40:3 And thou shalt put therein the ark of the testimony, and cover +the ark with the vail. + +40:4 And thou shalt bring in the table, and set in order the things +that are to be set in order upon it; and thou shalt bring in the +candlestick, and light the lamps thereof. + +40:5 And thou shalt set the altar of gold for the incense before the +ark of the testimony, and put the hanging of the door to the +tabernacle. + +40:6 And thou shalt set the altar of the burnt offering before the +door of the tabernacle of the tent of the congregation. + +40:7 And thou shalt set the laver between the tent of the congregation +and the altar, and shalt put water therein. + +40:8 And thou shalt set up the court round about, and hang up the +hanging at the court gate. + +40:9 And thou shalt take the anointing oil, and anoint the tabernacle, +and all that is therein, and shalt hallow it, and all the vessels +thereof: and it shall be holy. + +40:10 And thou shalt anoint the altar of the burnt offering, and all +his vessels, and sanctify the altar: and it shall be an altar most +holy. + +40:11 And thou shalt anoint the laver and his foot, and sanctify it. + +40:12 And thou shalt bring Aaron and his sons unto the door of the +tabernacle of the congregation, and wash them with water. + +40:13 And thou shalt put upon Aaron the holy garments, and anoint him, +and sanctify him; that he may minister unto me in the priest's office. + +40:14 And thou shalt bring his sons, and clothe them with coats: 40:15 +And thou shalt anoint them, as thou didst anoint their father, that +they may minister unto me in the priest's office: for their anointing +shall surely be an everlasting priesthood throughout their +generations. + +40:16 Thus did Moses: according to all that the LORD commanded him, so +did he. + +40:17 And it came to pass in the first month in the second year, on +the first day of the month, that the tabernacle was reared up. + +40:18 And Moses reared up the tabernacle, and fastened his sockets, +and set up the boards thereof, and put in the bars thereof, and reared +up his pillars. + +40:19 And he spread abroad the tent over the tabernacle, and put the +covering of the tent above upon it; as the LORD commanded Moses. + +40:20 And he took and put the testimony into the ark, and set the +staves on the ark, and put the mercy seat above upon the ark: 40:21 +And he brought the ark into the tabernacle, and set up the vail of the +covering, and covered the ark of the testimony; as the LORD commanded +Moses. + +40:22 And he put the table in the tent of the congregation, upon the +side of the tabernacle northward, without the vail. + +40:23 And he set the bread in order upon it before the LORD; as the +LORD had commanded Moses. + +40:24 And he put the candlestick in the tent of the congregation, over +against the table, on the side of the tabernacle southward. + +40:25 And he lighted the lamps before the LORD; as the LORD commanded +Moses. + +40:26 And he put the golden altar in the tent of the congregation +before the vail: 40:27 And he burnt sweet incense thereon; as the LORD +commanded Moses. + +40:28 And he set up the hanging at the door of the tabernacle. + +40:29 And he put the altar of burnt offering by the door of the +tabernacle of the tent of the congregation, and offered upon it the +burnt offering and the meat offering; as the LORD commanded Moses. + +40:30 And he set the laver between the tent of the congregation and +the altar, and put water there, to wash withal. + +40:31 And Moses and Aaron and his sons washed their hands and their +feet thereat: 40:32 When they went into the tent of the congregation, +and when they came near unto the altar, they washed; as the LORD +commanded Moses. + +40:33 And he reared up the court round about the tabernacle and the +altar, and set up the hanging of the court gate. So Moses finished the +work. + +40:34 Then a cloud covered the tent of the congregation, and the glory +of the LORD filled the tabernacle. + +40:35 And Moses was not able to enter into the tent of the +congregation, because the cloud abode thereon, and the glory of the +LORD filled the tabernacle. + +40:36 And when the cloud was taken up from over the tabernacle, the +children of Israel went onward in all their journeys: 40:37 But if the +cloud were not taken up, then they journeyed not till the day that it +was taken up. + +40:38 For the cloud of the LORD was upon the tabernacle by day, and +fire was on it by night, in the sight of all the house of Israel, +throughout all their journeys. + + + + +The Third Book of Moses: Called Leviticus + + +1:1 And the LORD called unto Moses, and spake unto him out of the +tabernacle of the congregation, saying, 1:2 Speak unto the children of +Israel, and say unto them, If any man of you bring an offering unto +the LORD, ye shall bring your offering of the cattle, even of the +herd, and of the flock. + +1:3 If his offering be a burnt sacrifice of the herd, let him offer a +male without blemish: he shall offer it of his own voluntary will at +the door of the tabernacle of the congregation before the LORD. + +1:4 And he shall put his hand upon the head of the burnt offering; and +it shall be accepted for him to make atonement for him. + +1:5 And he shall kill the bullock before the LORD: and the priests, +Aaron's sons, shall bring the blood, and sprinkle the blood round +about upon the altar that is by the door of the tabernacle of the +congregation. + +1:6 And he shall flay the burnt offering, and cut it into his pieces. + +1:7 And the sons of Aaron the priest shall put fire upon the altar, +and lay the wood in order upon the fire: 1:8 And the priests, Aaron's +sons, shall lay the parts, the head, and the fat, in order upon the +wood that is on the fire which is upon the altar: 1:9 But his inwards +and his legs shall he wash in water: and the priest shall burn all on +the altar, to be a burnt sacrifice, an offering made by fire, of a +sweet savour unto the LORD. + +1:10 And if his offering be of the flocks, namely, of the sheep, or of +the goats, for a burnt sacrifice; he shall bring it a male without +blemish. + +1:11 And he shall kill it on the side of the altar northward before +the LORD: and the priests, Aaron's sons, shall sprinkle his blood +round about upon the altar. + +1:12 And he shall cut it into his pieces, with his head and his fat: +and the priest shall lay them in order on the wood that is on the fire +which is upon the altar: 1:13 But he shall wash the inwards and the +legs with water: and the priest shall bring it all, and burn it upon +the altar: it is a burnt sacrifice, an offering made by fire, of a +sweet savour unto the LORD. + +1:14 And if the burnt sacrifice for his offering to the LORD be of +fowls, then he shall bring his offering of turtledoves, or of young +pigeons. + +1:15 And the priest shall bring it unto the altar, and wring off his +head, and burn it on the altar; and the blood thereof shall be wrung +out at the side of the altar: 1:16 And he shall pluck away his crop +with his feathers, and cast it beside the altar on the east part, by +the place of the ashes: 1:17 And he shall cleave it with the wings +thereof, but shall not divide it asunder: and the priest shall burn it +upon the altar, upon the wood that is upon the fire: it is a burnt +sacrifice, an offering made by fire, of a sweet savour unto the LORD. + +2:1 And when any will offer a meat offering unto the LORD, his +offering shall be of fine flour; and he shall pour oil upon it, and +put frankincense thereon: 2:2 And he shall bring it to Aaron's sons +the priests: and he shall take thereout his handful of the flour +thereof, and of the oil thereof, with all the frankincense thereof; +and the priest shall burn the memorial of it upon the altar, to be an +offering made by fire, of a sweet savour unto the LORD: 2:3 And the +remnant of the meat offering shall be Aaron's and his sons': it is a +thing most holy of the offerings of the LORD made by fire. + +2:4 And if thou bring an oblation of a meat offering baken in the +oven, it shall be unleavened cakes of fine flour mingled with oil, or +unleavened wafers anointed with oil. + +2:5 And if thy oblation be a meat offering baken in a pan, it shall be +of fine flour unleavened, mingled with oil. + +2:6 Thou shalt part it in pieces, and pour oil thereon: it is a meat +offering. + +2:7 And if thy oblation be a meat offering baken in the fryingpan, it +shall be made of fine flour with oil. + +2:8 And thou shalt bring the meat offering that is made of these +things unto the LORD: and when it is presented unto the priest, he +shall bring it unto the altar. + +2:9 And the priest shall take from the meat offering a memorial +thereof, and shall burn it upon the altar: it is an offering made by +fire, of a sweet savour unto the LORD. + +2:10 And that which is left of the meat offering shall be Aaron's and +his sons': it is a thing most holy of the offerings of the LORD made +by fire. + +2:11 No meat offering, which ye shall bring unto the LORD, shall be +made with leaven: for ye shall burn no leaven, nor any honey, in any +offering of the LORD made by fire. + +2:12 As for the oblation of the firstfruits, ye shall offer them unto +the LORD: but they shall not be burnt on the altar for a sweet savour. + +2:13 And every oblation of thy meat offering shalt thou season with +salt; neither shalt thou suffer the salt of the covenant of thy God to +be lacking from thy meat offering: with all thine offerings thou shalt +offer salt. + +2:14 And if thou offer a meat offering of thy firstfruits unto the +LORD, thou shalt offer for the meat offering of thy firstfruits green +ears of corn dried by the fire, even corn beaten out of full ears. + +2:15 And thou shalt put oil upon it, and lay frankincense thereon: it +is a meat offering. + +2:16 And the priest shall burn the memorial of it, part of the beaten +corn thereof, and part of the oil thereof, with all the frankincense +thereof: it is an offering made by fire unto the LORD. + +3:1 And if his oblation be a sacrifice of peace offering, if he offer +it of the herd; whether it be a male or female, he shall offer it +without blemish before the LORD. + +3:2 And he shall lay his hand upon the head of his offering, and kill +it at the door of the tabernacle of the congregation: and Aaron's sons +the priests shall sprinkle the blood upon the altar round about. + +3:3 And he shall offer of the sacrifice of the peace offering an +offering made by fire unto the LORD; the fat that covereth the +inwards, and all the fat that is upon the inwards, 3:4 And the two +kidneys, and the fat that is on them, which is by the flanks, and the +caul above the liver, with the kidneys, it shall he take away. + +3:5 And Aaron's sons shall burn it on the altar upon the burnt +sacrifice, which is upon the wood that is on the fire: it is an +offering made by fire, of a sweet savour unto the LORD. + +3:6 And if his offering for a sacrifice of peace offering unto the +LORD be of the flock; male or female, he shall offer it without +blemish. + +3:7 If he offer a lamb for his offering, then shall he offer it before +the LORD. + +3:8 And he shall lay his hand upon the head of his offering, and kill +it before the tabernacle of the congregation: and Aaron's sons shall +sprinkle the blood thereof round about upon the altar. + +3:9 And he shall offer of the sacrifice of the peace offering an +offering made by fire unto the LORD; the fat thereof, and the whole +rump, it shall he take off hard by the backbone; and the fat that +covereth the inwards, and all the fat that is upon the inwards, 3:10 +And the two kidneys, and the fat that is upon them, which is by the +flanks, and the caul above the liver, with the kidneys, it shall he +take away. + +3:11 And the priest shall burn it upon the altar: it is the food of +the offering made by fire unto the LORD. + +3:12 And if his offering be a goat, then he shall offer it before the +LORD. + +3:13 And he shall lay his hand upon the head of it, and kill it before +the tabernacle of the congregation: and the sons of Aaron shall +sprinkle the blood thereof upon the altar round about. + +3:14 And he shall offer thereof his offering, even an offering made by +fire unto the LORD; the fat that covereth the inwards, and all the fat +that is upon the inwards, 3:15 And the two kidneys, and the fat that +is upon them, which is by the flanks, and the caul above the liver, +with the kidneys, it shall he take away. + +3:16 And the priest shall burn them upon the altar: it is the food of +the offering made by fire for a sweet savour: all the fat is the +LORD's. + +3:17 It shall be a perpetual statute for your generations throughout +all your dwellings, that ye eat neither fat nor blood. + +4:1 And the LORD spake unto Moses, saying, 4:2 Speak unto the children +of Israel, saying, If a soul shall sin through ignorance against any +of the commandments of the LORD concerning things which ought not to +be done, and shall do against any of them: 4:3 If the priest that is +anointed do sin according to the sin of the people; then let him bring +for his sin, which he hath sinned, a young bullock without blemish +unto the LORD for a sin offering. + +4:4 And he shall bring the bullock unto the door of the tabernacle of +the congregation before the LORD; and shall lay his hand upon the +bullock's head, and kill the bullock before the LORD. + +4:5 And the priest that is anointed shall take of the bullock's blood, +and bring it to the tabernacle of the congregation: 4:6 And the priest +shall dip his finger in the blood, and sprinkle of the blood seven +times before the LORD, before the vail of the sanctuary. + +4:7 And the priest shall put some of the blood upon the horns of the +altar of sweet incense before the LORD, which is in the tabernacle of +the congregation; and shall pour all the blood of the bullock at the +bottom of the altar of the burnt offering, which is at the door of the +tabernacle of the congregation. + +4:8 And he shall take off from it all the fat of the bullock for the +sin offering; the fat that covereth the inwards, and all the fat that +is upon the inwards, 4:9 And the two kidneys, and the fat that is upon +them, which is by the flanks, and the caul above the liver, with the +kidneys, it shall he take away, 4:10 As it was taken off from the +bullock of the sacrifice of peace offerings: and the priest shall burn +them upon the altar of the burnt offering. + +4:11 And the skin of the bullock, and all his flesh, with his head, +and with his legs, and his inwards, and his dung, 4:12 Even the whole +bullock shall he carry forth without the camp unto a clean place, +where the ashes are poured out, and burn him on the wood with fire: +where the ashes are poured out shall he be burnt. + +4:13 And if the whole congregation of Israel sin through ignorance, +and the thing be hid from the eyes of the assembly, and they have done +somewhat against any of the commandments of the LORD concerning things +which should not be done, and are guilty; 4:14 When the sin, which +they have sinned against it, is known, then the congregation shall +offer a young bullock for the sin, and bring him before the tabernacle +of the congregation. + +4:15 And the elders of the congregation shall lay their hands upon the +head of the bullock before the LORD: and the bullock shall be killed +before the LORD. + +4:16 And the priest that is anointed shall bring of the bullock's +blood to the tabernacle of the congregation: 4:17 And the priest shall +dip his finger in some of the blood, and sprinkle it seven times +before the LORD, even before the vail. + +4:18 And he shall put some of the blood upon the horns of the altar +which is before the LORD, that is in the tabernacle of the +congregation, and shall pour out all the blood at the bottom of the +altar of the burnt offering, which is at the door of the tabernacle of +the congregation. + +4:19 And he shall take all his fat from him, and burn it upon the +altar. + +4:20 And he shall do with the bullock as he did with the bullock for a +sin offering, so shall he do with this: and the priest shall make an +atonement for them, and it shall be forgiven them. + +4:21 And he shall carry forth the bullock without the camp, and burn +him as he burned the first bullock: it is a sin offering for the +congregation. + +4:22 When a ruler hath sinned, and done somewhat through ignorance +against any of the commandments of the LORD his God concerning things +which should not be done, and is guilty; 4:23 Or if his sin, wherein +he hath sinned, come to his knowledge; he shall bring his offering, a +kid of the goats, a male without blemish: 4:24 And he shall lay his +hand upon the head of the goat, and kill it in the place where they +kill the burnt offering before the LORD: it is a sin offering. + +4:25 And the priest shall take of the blood of the sin offering with +his finger, and put it upon the horns of the altar of burnt offering, +and shall pour out his blood at the bottom of the altar of burnt +offering. + +4:26 And he shall burn all his fat upon the altar, as the fat of the +sacrifice of peace offerings: and the priest shall make an atonement +for him as concerning his sin, and it shall be forgiven him. + +4:27 And if any one of the common people sin through ignorance, while +he doeth somewhat against any of the commandments of the LORD +concerning things which ought not to be done, and be guilty; 4:28 Or +if his sin, which he hath sinned, come to his knowledge: then he shall +bring his offering, a kid of the goats, a female without blemish, for +his sin which he hath sinned. + +4:29 And he shall lay his hand upon the head of the sin offering, and +slay the sin offering in the place of the burnt offering. + +4:30 And the priest shall take of the blood thereof with his finger, +and put it upon the horns of the altar of burnt offering, and shall +pour out all the blood thereof at the bottom of the altar. + +4:31 And he shall take away all the fat thereof, as the fat is taken +away from off the sacrifice of peace offerings; and the priest shall +burn it upon the altar for a sweet savour unto the LORD; and the +priest shall make an atonement for him, and it shall be forgiven him. + +4:32 And if he bring a lamb for a sin offering, he shall bring it a +female without blemish. + +4:33 And he shall lay his hand upon the head of the sin offering, and +slay it for a sin offering in the place where they kill the burnt +offering. + +4:34 And the priest shall take of the blood of the sin offering with +his finger, and put it upon the horns of the altar of burnt offering, +and shall pour out all the blood thereof at the bottom of the altar: +4:35 And he shall take away all the fat thereof, as the fat of the +lamb is taken away from the sacrifice of the peace offerings; and the +priest shall burn them upon the altar, according to the offerings made +by fire unto the LORD: and the priest shall make an atonement for his +sin that he hath committed, and it shall be forgiven him. + +5:1 And if a soul sin, and hear the voice of swearing, and is a +witness, whether he hath seen or known of it; if he do not utter it, +then he shall bear his iniquity. + +5:2 Or if a soul touch any unclean thing, whether it be a carcase of +an unclean beast, or a carcase of unclean cattle, or the carcase of +unclean creeping things, and if it be hidden from him; he also shall +be unclean, and guilty. + +5:3 Or if he touch the uncleanness of man, whatsoever uncleanness it +be that a man shall be defiled withal, and it be hid from him; when he +knoweth of it, then he shall be guilty. + +5:4 Or if a soul swear, pronouncing with his lips to do evil, or to do +good, whatsoever it be that a man shall pronounce with an oath, and it +be hid from him; when he knoweth of it, then he shall be guilty in one +of these. + +5:5 And it shall be, when he shall be guilty in one of these things, +that he shall confess that he hath sinned in that thing: 5:6 And he +shall bring his trespass offering unto the LORD for his sin which he +hath sinned, a female from the flock, a lamb or a kid of the goats, +for a sin offering; and the priest shall make an atonement for him +concerning his sin. + +5:7 And if he be not able to bring a lamb, then he shall bring for his +trespass, which he hath committed, two turtledoves, or two young +pigeons, unto the LORD; one for a sin offering, and the other for a +burnt offering. + +5:8 And he shall bring them unto the priest, who shall offer that +which is for the sin offering first, and wring off his head from his +neck, but shall not divide it asunder: 5:9 And he shall sprinkle of +the blood of the sin offering upon the side of the altar; and the rest +of the blood shall be wrung out at the bottom of the altar: it is a +sin offering. + +5:10 And he shall offer the second for a burnt offering, according to +the manner: and the priest shall make an atonement for him for his sin +which he hath sinned, and it shall be forgiven him. + +5:11 But if he be not able to bring two turtledoves, or two young +pigeons, then he that sinned shall bring for his offering the tenth +part of an ephah of fine flour for a sin offering; he shall put no oil +upon it, neither shall he put any frankincense thereon: for it is a +sin offering. + +5:12 Then shall he bring it to the priest, and the priest shall take +his handful of it, even a memorial thereof, and burn it on the altar, +according to the offerings made by fire unto the LORD: it is a sin +offering. + +5:13 And the priest shall make an atonement for him as touching his +sin that he hath sinned in one of these, and it shall be forgiven him: +and the remnant shall be the priest's, as a meat offering. + +5:14 And the LORD spake unto Moses, saying, 5:15 If a soul commit a +trespass, and sin through ignorance, in the holy things of the LORD; +then he shall bring for his trespass unto the LORD a ram without +blemish out of the flocks, with thy estimation by shekels of silver, +after the shekel of the sanctuary, for a trespass offering. + +5:16 And he shall make amends for the harm that he hath done in the +holy thing, and shall add the fifth part thereto, and give it unto the +priest: and the priest shall make an atonement for him with the ram of +the trespass offering, and it shall be forgiven him. + +5:17 And if a soul sin, and commit any of these things which are +forbidden to be done by the commandments of the LORD; though he wist +it not, yet is he guilty, and shall bear his iniquity. + +5:18 And he shall bring a ram without blemish out of the flock, with +thy estimation, for a trespass offering, unto the priest: and the +priest shall make an atonement for him concerning his ignorance +wherein he erred and wist it not, and it shall be forgiven him. + +5:19 It is a trespass offering: he hath certainly trespassed against +the LORD. + +6:1 And the LORD spake unto Moses, saying, 6:2 If a soul sin, and +commit a trespass against the LORD, and lie unto his neighbour in that +which was delivered him to keep, or in fellowship, or in a thing taken +away by violence, or hath deceived his neighbour; 6:3 Or have found +that which was lost, and lieth concerning it, and sweareth falsely; in +any of all these that a man doeth, sinning therein: 6:4 Then it shall +be, because he hath sinned, and is guilty, that he shall restore that +which he took violently away, or the thing which he hath deceitfully +gotten, or that which was delivered him to keep, or the lost thing +which he found, 6:5 Or all that about which he hath sworn falsely; he +shall even restore it in the principal, and shall add the fifth part +more thereto, and give it unto him to whom it appertaineth, in the day +of his trespass offering. + +6:6 And he shall bring his trespass offering unto the LORD, a ram +without blemish out of the flock, with thy estimation, for a trespass +offering, unto the priest: 6:7 And the priest shall make an atonement +for him before the LORD: and it shall be forgiven him for any thing of +all that he hath done in trespassing therein. + +6:8 And the LORD spake unto Moses, saying, 6:9 Command Aaron and his +sons, saying, This is the law of the burnt offering: It is the burnt +offering, because of the burning upon the altar all night unto the +morning, and the fire of the altar shall be burning in it. + +6:10 And the priest shall put on his linen garment, and his linen +breeches shall he put upon his flesh, and take up the ashes which the +fire hath consumed with the burnt offering on the altar, and he shall +put them beside the altar. + +6:11 And he shall put off his garments, and put on other garments, and +carry forth the ashes without the camp unto a clean place. + +6:12 And the fire upon the altar shall be burning in it; it shall not +be put out: and the priest shall burn wood on it every morning, and +lay the burnt offering in order upon it; and he shall burn thereon the +fat of the peace offerings. + +6:13 The fire shall ever be burning upon the altar; it shall never go +out. + +6:14 And this is the law of the meat offering: the sons of Aaron shall +offer it before the LORD, before the altar. + +6:15 And he shall take of it his handful, of the flour of the meat +offering, and of the oil thereof, and all the frankincense which is +upon the meat offering, and shall burn it upon the altar for a sweet +savour, even the memorial of it, unto the LORD. + +6:16 And the remainder thereof shall Aaron and his sons eat: with +unleavened bread shall it be eaten in the holy place; in the court of +the tabernacle of the congregation they shall eat it. + +6:17 It shall not be baken with leaven. I have given it unto them for +their portion of my offerings made by fire; it is most holy, as is the +sin offering, and as the trespass offering. + +6:18 All the males among the children of Aaron shall eat of it. It +shall be a statute for ever in your generations concerning the +offerings of the LORD made by fire: every one that toucheth them shall +be holy. + +6:19 And the LORD spake unto Moses, saying, 6:20 This is the offering +of Aaron and of his sons, which they shall offer unto the LORD in the +day when he is anointed; the tenth part of an ephah of fine flour for +a meat offering perpetual, half of it in the morning, and half thereof +at night. + +6:21 In a pan it shall be made with oil; and when it is baken, thou +shalt bring it in: and the baken pieces of the meat offering shalt +thou offer for a sweet savour unto the LORD. + +6:22 And the priest of his sons that is anointed in his stead shall +offer it: it is a statute for ever unto the LORD; it shall be wholly +burnt. + +6:23 For every meat offering for the priest shall be wholly burnt: it +shall not be eaten. + +6:24 And the LORD spake unto Moses, saying, 6:25 Speak unto Aaron and +to his sons, saying, This is the law of the sin offering: In the place +where the burnt offering is killed shall the sin offering be killed +before the LORD: it is most holy. + +6:26 The priest that offereth it for sin shall eat it: in the holy +place shall it be eaten, in the court of the tabernacle of the +congregation. + +6:27 Whatsoever shall touch the flesh thereof shall be holy: and when +there is sprinkled of the blood thereof upon any garment, thou shalt +wash that whereon it was sprinkled in the holy place. + +6:28 But the earthen vessel wherein it is sodden shall be broken: and +if it be sodden in a brasen pot, it shall be both scoured, and rinsed +in water. + +6:29 All the males among the priests shall eat thereof: it is most +holy. + +6:30 And no sin offering, whereof any of the blood is brought into the +tabernacle of the congregation to reconcile withal in the holy place, +shall be eaten: it shall be burnt in the fire. + +7:1 Likewise this is the law of the trespass offering: it is most +holy. + +7:2 In the place where they kill the burnt offering shall they kill +the trespass offering: and the blood thereof shall he sprinkle round +about upon the altar. + +7:3 And he shall offer of it all the fat thereof; the rump, and the +fat that covereth the inwards, 7:4 And the two kidneys, and the fat +that is on them, which is by the flanks, and the caul that is above +the liver, with the kidneys, it shall he take away: 7:5 And the priest +shall burn them upon the altar for an offering made by fire unto the +LORD: it is a trespass offering. + +7:6 Every male among the priests shall eat thereof: it shall be eaten +in the holy place: it is most holy. + +7:7 As the sin offering is, so is the trespass offering: there is one +law for them: the priest that maketh atonement therewith shall have +it. + +7:8 And the priest that offereth any man's burnt offering, even the +priest shall have to himself the skin of the burnt offering which he +hath offered. + +7:9 And all the meat offering that is baken in the oven, and all that +is dressed in the fryingpan, and in the pan, shall be the priest's +that offereth it. + +7:10 And every meat offering, mingled with oil, and dry, shall all the +sons of Aaron have, one as much as another. + +7:11 And this is the law of the sacrifice of peace offerings, which he +shall offer unto the LORD. + +7:12 If he offer it for a thanksgiving, then he shall offer with the +sacrifice of thanksgiving unleavened cakes mingled with oil, and +unleavened wafers anointed with oil, and cakes mingled with oil, of +fine flour, fried. + +7:13 Besides the cakes, he shall offer for his offering leavened bread +with the sacrifice of thanksgiving of his peace offerings. + +7:14 And of it he shall offer one out of the whole oblation for an +heave offering unto the LORD, and it shall be the priest's that +sprinkleth the blood of the peace offerings. + +7:15 And the flesh of the sacrifice of his peace offerings for +thanksgiving shall be eaten the same day that it is offered; he shall +not leave any of it until the morning. + +7:16 But if the sacrifice of his offering be a vow, or a voluntary +offering, it shall be eaten the same day that he offereth his +sacrifice: and on the morrow also the remainder of it shall be eaten: +7:17 But the remainder of the flesh of the sacrifice on the third day +shall be burnt with fire. + +7:18 And if any of the flesh of the sacrifice of his peace offerings +be eaten at all on the third day, it shall not be accepted, neither +shall it be imputed unto him that offereth it: it shall be an +abomination, and the soul that eateth of it shall bear his iniquity. + +7:19 And the flesh that toucheth any unclean thing shall not be eaten; +it shall be burnt with fire: and as for the flesh, all that be clean +shall eat thereof. + +7:20 But the soul that eateth of the flesh of the sacrifice of peace +offerings, that pertain unto the LORD, having his uncleanness upon +him, even that soul shall be cut off from his people. + +7:21 Moreover the soul that shall touch any unclean thing, as the +uncleanness of man, or any unclean beast, or any abominable unclean +thing, and eat of the flesh of the sacrifice of peace offerings, which +pertain unto the LORD, even that soul shall be cut off from his +people. + +7:22 And the LORD spake unto Moses, saying, 7:23 Speak unto the +children of Israel, saying, Ye shall eat no manner of fat, of ox, or +of sheep, or of goat. + +7:24 And the fat of the beast that dieth of itself, and the fat of +that which is torn with beasts, may be used in any other use: but ye +shall in no wise eat of it. + +7:25 For whosoever eateth the fat of the beast, of which men offer an +offering made by fire unto the LORD, even the soul that eateth it +shall be cut off from his people. + +7:26 Moreover ye shall eat no manner of blood, whether it be of fowl +or of beast, in any of your dwellings. + +7:27 Whatsoever soul it be that eateth any manner of blood, even that +soul shall be cut off from his people. + +7:28 And the LORD spake unto Moses, saying, 7:29 Speak unto the +children of Israel, saying, He that offereth the sacrifice of his +peace offerings unto the LORD shall bring his oblation unto the LORD +of the sacrifice of his peace offerings. + +7:30 His own hands shall bring the offerings of the LORD made by fire, +the fat with the breast, it shall he bring, that the breast may be +waved for a wave offering before the LORD. + +7:31 And the priest shall burn the fat upon the altar: but the breast +shall be Aaron's and his sons'. + +7:32 And the right shoulder shall ye give unto the priest for an heave +offering of the sacrifices of your peace offerings. + +7:33 He among the sons of Aaron, that offereth the blood of the peace +offerings, and the fat, shall have the right shoulder for his part. + +7:34 For the wave breast and the heave shoulder have I taken of the +children of Israel from off the sacrifices of their peace offerings, +and have given them unto Aaron the priest and unto his sons by a +statute for ever from among the children of Israel. + +7:35 This is the portion of the anointing of Aaron, and of the +anointing of his sons, out of the offerings of the LORD made by fire, +in the day when he presented them to minister unto the LORD in the +priest's office; 7:36 Which the LORD commanded to be given them of the +children of Israel, in the day that he anointed them, by a statute for +ever throughout their generations. + +7:37 This is the law of the burnt offering, of the meat offering, and +of the sin offering, and of the trespass offering, and of the +consecrations, and of the sacrifice of the peace offerings; 7:38 Which +the LORD commanded Moses in mount Sinai, in the day that he commanded +the children of Israel to offer their oblations unto the LORD, in the +wilderness of Sinai. + +8:1 And the LORD spake unto Moses, saying, 8:2 Take Aaron and his sons +with him, and the garments, and the anointing oil, and a bullock for +the sin offering, and two rams, and a basket of unleavened bread; 8:3 +And gather thou all the congregation together unto the door of the +tabernacle of the congregation. + +8:4 And Moses did as the LORD commanded him; and the assembly was +gathered together unto the door of the tabernacle of the congregation. + +8:5 And Moses said unto the congregation, This is the thing which the +LORD commanded to be done. + +8:6 And Moses brought Aaron and his sons, and washed them with water. + +8:7 And he put upon him the coat, and girded him with the girdle, and +clothed him with the robe, and put the ephod upon him, and he girded +him with the curious girdle of the ephod, and bound it unto him +therewith. + +8:8 And he put the breastplate upon him: also he put in the +breastplate the Urim and the Thummim. + +8:9 And he put the mitre upon his head; also upon the mitre, even upon +his forefront, did he put the golden plate, the holy crown; as the +LORD commanded Moses. + +8:10 And Moses took the anointing oil, and anointed the tabernacle and +all that was therein, and sanctified them. + +8:11 And he sprinkled thereof upon the altar seven times, and anointed +the altar and all his vessels, both the laver and his foot, to +sanctify them. + +8:12 And he poured of the anointing oil upon Aaron's head, and +anointed him, to sanctify him. + +8:13 And Moses brought Aaron's sons, and put coats upon them, and +girded them with girdles, and put bonnets upon them; as the LORD +commanded Moses. + +8:14 And he brought the bullock for the sin offering: and Aaron and +his sons laid their hands upon the head of the bullock for the sin +offering. + +8:15 And he slew it; and Moses took the blood, and put it upon the +horns of the altar round about with his finger, and purified the +altar, and poured the blood at the bottom of the altar, and sanctified +it, to make reconciliation upon it. + +8:16 And he took all the fat that was upon the inwards, and the caul +above the liver, and the two kidneys, and their fat, and Moses burned +it upon the altar. + +8:17 But the bullock, and his hide, his flesh, and his dung, he burnt +with fire without the camp; as the LORD commanded Moses. + +8:18 And he brought the ram for the burnt offering: and Aaron and his +sons laid their hands upon the head of the ram. + +8:19 And he killed it; and Moses sprinkled the blood upon the altar +round about. + +8:20 And he cut the ram into pieces; and Moses burnt the head, and the +pieces, and the fat. + +8:21 And he washed the inwards and the legs in water; and Moses burnt +the whole ram upon the altar: it was a burnt sacrifice for a sweet +savour, and an offering made by fire unto the LORD; as the LORD +commanded Moses. + +8:22 And he brought the other ram, the ram of consecration: and Aaron +and his sons laid their hands upon the head of the ram. + +8:23 And he slew it; and Moses took of the blood of it, and put it +upon the tip of Aaron's right ear, and upon the thumb of his right +hand, and upon the great toe of his right foot. + +8:24 And he brought Aaron's sons, and Moses put of the blood upon the +tip of their right ear, and upon the thumbs of their right hands, and +upon the great toes of their right feet: and Moses sprinkled the blood +upon the altar round about. + +8:25 And he took the fat, and the rump, and all the fat that was upon +the inwards, and the caul above the liver, and the two kidneys, and +their fat, and the right shoulder: 8:26 And out of the basket of +unleavened bread, that was before the LORD, he took one unleavened +cake, and a cake of oiled bread, and one wafer, and put them on the +fat, and upon the right shoulder: 8:27 And he put all upon Aaron's +hands, and upon his sons' hands, and waved them for a wave offering +before the LORD. + +8:28 And Moses took them from off their hands, and burnt them on the +altar upon the burnt offering: they were consecrations for a sweet +savour: it is an offering made by fire unto the LORD. + +8:29 And Moses took the breast, and waved it for a wave offering +before the LORD: for of the ram of consecration it was Moses' part; as +the LORD commanded Moses. + +8:30 And Moses took of the anointing oil, and of the blood which was +upon the altar, and sprinkled it upon Aaron, and upon his garments, +and upon his sons, and upon his sons' garments with him; and +sanctified Aaron, and his garments, and his sons, and his sons' +garments with him. + +8:31 And Moses said unto Aaron and to his sons, Boil the flesh at the +door of the tabernacle of the congregation: and there eat it with the +bread that is in the basket of consecrations, as I commanded, saying, +Aaron and his sons shall eat it. + +8:32 And that which remaineth of the flesh and of the bread shall ye +burn with fire. + +8:33 And ye shall not go out of the door of the tabernacle of the +congregation in seven days, until the days of your consecration be at +an end: for seven days shall he consecrate you. + +8:34 As he hath done this day, so the LORD hath commanded to do, to +make an atonement for you. + +8:35 Therefore shall ye abide at the door of the tabernacle of the +congregation day and night seven days, and keep the charge of the +LORD, that ye die not: for so I am commanded. + +8:36 So Aaron and his sons did all things which the LORD commanded by +the hand of Moses. + +9:1 And it came to pass on the eighth day, that Moses called Aaron and +his sons, and the elders of Israel; 9:2 And he said unto Aaron, Take +thee a young calf for a sin offering, and a ram for a burnt offering, +without blemish, and offer them before the LORD. + +9:3 And unto the children of Israel thou shalt speak, saying, Take ye +a kid of the goats for a sin offering; and a calf and a lamb, both of +the first year, without blemish, for a burnt offering; 9:4 Also a +bullock and a ram for peace offerings, to sacrifice before the LORD; +and a meat offering mingled with oil: for to day the LORD will appear +unto you. + +9:5 And they brought that which Moses commanded before the tabernacle +of the congregation: and all the congregation drew near and stood +before the LORD. + +9:6 And Moses said, This is the thing which the LORD commanded that ye +should do: and the glory of the LORD shall appear unto you. + +9:7 And Moses said unto Aaron, Go unto the altar, and offer thy sin +offering, and thy burnt offering, and make an atonement for thyself, +and for the people: and offer the offering of the people, and make an +atonement for them; as the LORD commanded. + +9:8 Aaron therefore went unto the altar, and slew the calf of the sin +offering, which was for himself. + +9:9 And the sons of Aaron brought the blood unto him: and he dipped +his finger in the blood, and put it upon the horns of the altar, and +poured out the blood at the bottom of the altar: 9:10 But the fat, and +the kidneys, and the caul above the liver of the sin offering, he +burnt upon the altar; as the LORD commanded Moses. + +9:11 And the flesh and the hide he burnt with fire without the camp. + +9:12 And he slew the burnt offering; and Aaron's sons presented unto +him the blood, which he sprinkled round about upon the altar. + +9:13 And they presented the burnt offering unto him, with the pieces +thereof, and the head: and he burnt them upon the altar. + +9:14 And he did wash the inwards and the legs, and burnt them upon the +burnt offering on the altar. + +9:15 And he brought the people's offering, and took the goat, which +was the sin offering for the people, and slew it, and offered it for +sin, as the first. + +9:16 And he brought the burnt offering, and offered it according to +the manner. + +9:17 And he brought the meat offering, and took an handful thereof, +and burnt it upon the altar, beside the burnt sacrifice of the +morning. + +9:18 He slew also the bullock and the ram for a sacrifice of peace +offerings, which was for the people: and Aaron's sons presented unto +him the blood, which he sprinkled upon the altar round about, 9:19 And +the fat of the bullock and of the ram, the rump, and that which +covereth the inwards, and the kidneys, and the caul above the liver: +9:20 And they put the fat upon the breasts, and he burnt the fat upon +the altar: 9:21 And the breasts and the right shoulder Aaron waved for +a wave offering before the LORD; as Moses commanded. + +9:22 And Aaron lifted up his hand toward the people, and blessed them, +and came down from offering of the sin offering, and the burnt +offering, and peace offerings. + +9:23 And Moses and Aaron went into the tabernacle of the congregation, +and came out, and blessed the people: and the glory of the LORD +appeared unto all the people. + +9:24 And there came a fire out from before the LORD, and consumed upon +the altar the burnt offering and the fat: which when all the people +saw, they shouted, and fell on their faces. + +10:1 And Nadab and Abihu, the sons of Aaron, took either of them his +censer, and put fire therein, and put incense thereon, and offered +strange fire before the LORD, which he commanded them not. + +10:2 And there went out fire from the LORD, and devoured them, and +they died before the LORD. + +10:3 Then Moses said unto Aaron, This is it that the LORD spake, +saying, I will be sanctified in them that come nigh me, and before all +the people I will be glorified. And Aaron held his peace. + +10:4 And Moses called Mishael and Elzaphan, the sons of Uzziel the +uncle of Aaron, and said unto them, Come near, carry your brethren +from before the sanctuary out of the camp. + +10:5 So they went near, and carried them in their coats out of the +camp; as Moses had said. + +10:6 And Moses said unto Aaron, and unto Eleazar and unto Ithamar, his +sons, Uncover not your heads, neither rend your clothes; lest ye die, +and lest wrath come upon all the people: but let your brethren, the +whole house of Israel, bewail the burning which the LORD hath kindled. + +10:7 And ye shall not go out from the door of the tabernacle of the +congregation, lest ye die: for the anointing oil of the LORD is upon +you. And they did according to the word of Moses. + +10:8 And the LORD spake unto Aaron, saying, 10:9 Do not drink wine nor +strong drink, thou, nor thy sons with thee, when ye go into the +tabernacle of the congregation, lest ye die: it shall be a statute for +ever throughout your generations: 10:10 And that ye may put difference +between holy and unholy, and between unclean and clean; 10:11 And that +ye may teach the children of Israel all the statutes which the LORD +hath spoken unto them by the hand of Moses. + +10:12 And Moses spake unto Aaron, and unto Eleazar and unto Ithamar, +his sons that were left, Take the meat offering that remaineth of the +offerings of the LORD made by fire, and eat it without leaven beside +the altar: for it is most holy: 10:13 And ye shall eat it in the holy +place, because it is thy due, and thy sons' due, of the sacrifices of +the LORD made by fire: for so I am commanded. + +10:14 And the wave breast and heave shoulder shall ye eat in a clean +place; thou, and thy sons, and thy daughters with thee: for they be +thy due, and thy sons' due, which are given out of the sacrifices of +peace offerings of the children of Israel. + +10:15 The heave shoulder and the wave breast shall they bring with the +offerings made by fire of the fat, to wave it for a wave offering +before the LORD; and it shall be thine, and thy sons' with thee, by a +statute for ever; as the LORD hath commanded. + +10:16 And Moses diligently sought the goat of the sin offering, and, +behold, it was burnt: and he was angry with Eleazar and Ithamar, the +sons of Aaron which were left alive, saying, 10:17 Wherefore have ye +not eaten the sin offering in the holy place, seeing it is most holy, +and God hath given it you to bear the iniquity of the congregation, to +make atonement for them before the LORD? 10:18 Behold, the blood of +it was not brought in within the holy place: ye should indeed have +eaten it in the holy place, as I commanded. + +10:19 And Aaron said unto Moses, Behold, this day have they offered +their sin offering and their burnt offering before the LORD; and such +things have befallen me: and if I had eaten the sin offering to day, +should it have been accepted in the sight of the LORD? 10:20 And when +Moses heard that, he was content. + +11:1 And the LORD spake unto Moses and to Aaron, saying unto them, +11:2 Speak unto the children of Israel, saying, These are the beasts +which ye shall eat among all the beasts that are on the earth. + +11:3 Whatsoever parteth the hoof, and is clovenfooted, and cheweth the +cud, among the beasts, that shall ye eat. + +11:4 Nevertheless these shall ye not eat of them that chew the cud, or +of them that divide the hoof: as the camel, because he cheweth the +cud, but divideth not the hoof; he is unclean unto you. + +11:5 And the coney, because he cheweth the cud, but divideth not the +hoof; he is unclean unto you. + +11:6 And the hare, because he cheweth the cud, but divideth not the +hoof; he is unclean unto you. + +11:7 And the swine, though he divide the hoof, and be clovenfooted, +yet he cheweth not the cud; he is unclean to you. + +11:8 Of their flesh shall ye not eat, and their carcase shall ye not +touch; they are unclean to you. + +11:9 These shall ye eat of all that are in the waters: whatsoever hath +fins and scales in the waters, in the seas, and in the rivers, them +shall ye eat. + +11:10 And all that have not fins and scales in the seas, and in the +rivers, of all that move in the waters, and of any living thing which +is in the waters, they shall be an abomination unto you: 11:11 They +shall be even an abomination unto you; ye shall not eat of their +flesh, but ye shall have their carcases in abomination. + +11:12 Whatsoever hath no fins nor scales in the waters, that shall be +an abomination unto you. + +11:13 And these are they which ye shall have in abomination among the +fowls; they shall not be eaten, they are an abomination: the eagle, +and the ossifrage, and the ospray, 11:14 And the vulture, and the kite +after his kind; 11:15 Every raven after his kind; 11:16 And the owl, +and the night hawk, and the cuckow, and the hawk after his kind, 11:17 +And the little owl, and the cormorant, and the great owl, 11:18 And +the swan, and the pelican, and the gier eagle, 11:19 And the stork, +the heron after her kind, and the lapwing, and the bat. + +11:20 All fowls that creep, going upon all four, shall be an +abomination unto you. + +11:21 Yet these may ye eat of every flying creeping thing that goeth +upon all four, which have legs above their feet, to leap withal upon +the earth; 11:22 Even these of them ye may eat; the locust after his +kind, and the bald locust after his kind, and the beetle after his +kind, and the grasshopper after his kind. + +11:23 But all other flying creeping things, which have four feet, +shall be an abomination unto you. + +11:24 And for these ye shall be unclean: whosoever toucheth the +carcase of them shall be unclean until the even. + +11:25 And whosoever beareth ought of the carcase of them shall wash +his clothes, and be unclean until the even. + +11:26 The carcases of every beast which divideth the hoof, and is not +clovenfooted, nor cheweth the cud, are unclean unto you: every one +that toucheth them shall be unclean. + +11:27 And whatsoever goeth upon his paws, among all manner of beasts +that go on all four, those are unclean unto you: whoso toucheth their +carcase shall be unclean until the even. + +11:28 And he that beareth the carcase of them shall wash his clothes, +and be unclean until the even: they are unclean unto you. + +11:29 These also shall be unclean unto you among the creeping things +that creep upon the earth; the weasel, and the mouse, and the tortoise +after his kind, 11:30 And the ferret, and the chameleon, and the +lizard, and the snail, and the mole. + +11:31 These are unclean to you among all that creep: whosoever doth +touch them, when they be dead, shall be unclean until the even. + +11:32 And upon whatsoever any of them, when they are dead, doth fall, +it shall be unclean; whether it be any vessel of wood, or raiment, or +skin, or sack, whatsoever vessel it be, wherein any work is done, it +must be put into water, and it shall be unclean until the even; so it +shall be cleansed. + +11:33 And every earthen vessel, whereinto any of them falleth, +whatsoever is in it shall be unclean; and ye shall break it. + +11:34 Of all meat which may be eaten, that on which such water cometh +shall be unclean: and all drink that may be drunk in every such vessel +shall be unclean. + +11:35 And every thing whereupon any part of their carcase falleth +shall be unclean; whether it be oven, or ranges for pots, they shall +be broken down: for they are unclean and shall be unclean unto you. + +11:36 Nevertheless a fountain or pit, wherein there is plenty of +water, shall be clean: but that which toucheth their carcase shall be +unclean. + +11:37 And if any part of their carcase fall upon any sowing seed which +is to be sown, it shall be clean. + +11:38 But if any water be put upon the seed, and any part of their +carcase fall thereon, it shall be unclean unto you. + +11:39 And if any beast, of which ye may eat, die; he that toucheth the +carcase thereof shall be unclean until the even. + +11:40 And he that eateth of the carcase of it shall wash his clothes, +and be unclean until the even: he also that beareth the carcase of it +shall wash his clothes, and be unclean until the even. + +11:41 And every creeping thing that creepeth upon the earth shall be +an abomination; it shall not be eaten. + +11:42 Whatsoever goeth upon the belly, and whatsoever goeth upon all +four, or whatsoever hath more feet among all creeping things that +creep upon the earth, them ye shall not eat; for they are an +abomination. + +11:43 Ye shall not make yourselves abominable with any creeping thing +that creepeth, neither shall ye make yourselves unclean with them, +that ye should be defiled thereby. + +11:44 For I am the LORD your God: ye shall therefore sanctify +yourselves, and ye shall be holy; for I am holy: neither shall ye +defile yourselves with any manner of creeping thing that creepeth upon +the earth. + +11:45 For I am the LORD that bringeth you up out of the land of Egypt, +to be your God: ye shall therefore be holy, for I am holy. + +11:46 This is the law of the beasts, and of the fowl, and of every +living creature that moveth in the waters, and of every creature that +creepeth upon the earth: 11:47 To make a difference between the +unclean and the clean, and between the beast that may be eaten and the +beast that may not be eaten. + +12:1 And the LORD spake unto Moses, saying, 12:2 Speak unto the +children of Israel, saying, If a woman have conceived seed, and born a +man child: then she shall be unclean seven days; according to the days +of the separation for her infirmity shall she be unclean. + +12:3 And in the eighth day the flesh of his foreskin shall be +circumcised. + +12:4 And she shall then continue in the blood of her purifying three +and thirty days; she shall touch no hallowed thing, nor come into the +sanctuary, until the days of her purifying be fulfilled. + +12:5 But if she bear a maid child, then she shall be unclean two +weeks, as in her separation: and she shall continue in the blood of +her purifying threescore and six days. + +12:6 And when the days of her purifying are fulfilled, for a son, or +for a daughter, she shall bring a lamb of the first year for a burnt +offering, and a young pigeon, or a turtledove, for a sin offering, +unto the door of the tabernacle of the congregation, unto the priest: +12:7 Who shall offer it before the LORD, and make an atonement for +her; and she shall be cleansed from the issue of her blood. This is +the law for her that hath born a male or a female. + +12:8 And if she be not able to bring a lamb, then she shall bring two +turtles, or two young pigeons; the one for the burnt offering, and the +other for a sin offering: and the priest shall make an atonement for +her, and she shall be clean. + +13:1 And the LORD spake unto Moses and Aaron, saying, 13:2 When a man +shall have in the skin of his flesh a rising, a scab, or bright spot, +and it be in the skin of his flesh like the plague of leprosy; then he +shall be brought unto Aaron the priest, or unto one of his sons the +priests: 13:3 And the priest shall look on the plague in the skin of +the flesh: and when the hair in the plague is turned white, and the +plague in sight be deeper than the skin of his flesh, it is a plague +of leprosy: and the priest shall look on him, and pronounce him +unclean. + +13:4 If the bright spot be white in the skin of his flesh, and in +sight be not deeper than the skin, and the hair thereof be not turned +white; then the priest shall shut up him that hath the plague seven +days: 13:5 And the priest shall look on him the seventh day: and, +behold, if the plague in his sight be at a stay, and the plague spread +not in the skin; then the priest shall shut him up seven days more: +13:6 And the priest shall look on him again the seventh day: and, +behold, if the plague be somewhat dark, and the plague spread not in +the skin, the priest shall pronounce him clean: it is but a scab: and +he shall wash his clothes, and be clean. + +13:7 But if the scab spread much abroad in the skin, after that he +hath been seen of the priest for his cleansing, he shall be seen of +the priest again. + +13:8 And if the priest see that, behold, the scab spreadeth in the +skin, then the priest shall pronounce him unclean: it is a leprosy. + +13:9 When the plague of leprosy is in a man, then he shall be brought +unto the priest; 13:10 And the priest shall see him: and, behold, if +the rising be white in the skin, and it have turned the hair white, +and there be quick raw flesh in the rising; 13:11 It is an old leprosy +in the skin of his flesh, and the priest shall pronounce him unclean, +and shall not shut him up: for he is unclean. + +13:12 And if a leprosy break out abroad in the skin, and the leprosy +cover all the skin of him that hath the plague from his head even to +his foot, wheresoever the priest looketh; 13:13 Then the priest shall +consider: and, behold, if the leprosy have covered all his flesh, he +shall pronounce him clean that hath the plague: it is all turned +white: he is clean. + +13:14 But when raw flesh appeareth in him, he shall be unclean. + +13:15 And the priest shall see the raw flesh, and pronounce him to be +unclean: for the raw flesh is unclean: it is a leprosy. + +13:16 Or if the raw flesh turn again, and be changed unto white, he +shall come unto the priest; 13:17 And the priest shall see him: and, +behold, if the plague be turned into white; then the priest shall +pronounce him clean that hath the plague: he is clean. + +13:18 The flesh also, in which, even in the skin thereof, was a boil, +and is healed, 13:19 And in the place of the boil there be a white +rising, or a bright spot, white, and somewhat reddish, and it be +shewed to the priest; 13:20 And if, when the priest seeth it, behold, +it be in sight lower than the skin, and the hair thereof be turned +white; the priest shall pronounce him unclean: it is a plague of +leprosy broken out of the boil. + +13:21 But if the priest look on it, and, behold, there be no white +hairs therein, and if it be not lower than the skin, but be somewhat +dark; then the priest shall shut him up seven days: 13:22 And if it +spread much abroad in the skin, then the priest shall pronounce him +unclean: it is a plague. + +13:23 But if the bright spot stay in his place, and spread not, it is +a burning boil; and the priest shall pronounce him clean. + +13:24 Or if there be any flesh, in the skin whereof there is a hot +burning, and the quick flesh that burneth have a white bright spot, +somewhat reddish, or white; 13:25 Then the priest shall look upon it: +and, behold, if the hair in the bright spot be turned white, and it be +in sight deeper than the skin; it is a leprosy broken out of the +burning: wherefore the priest shall pronounce him unclean: it is the +plague of leprosy. + +13:26 But if the priest look on it, and, behold, there be no white +hair in the bright spot, and it be no lower than the other skin, but +be somewhat dark; then the priest shall shut him up seven days: 13:27 +And the priest shall look upon him the seventh day: and if it be +spread much abroad in the skin, then the priest shall pronounce him +unclean: it is the plague of leprosy. + +13:28 And if the bright spot stay in his place, and spread not in the +skin, but it be somewhat dark; it is a rising of the burning, and the +priest shall pronounce him clean: for it is an inflammation of the +burning. + +13:29 If a man or woman have a plague upon the head or the beard; +13:30 Then the priest shall see the plague: and, behold, if it be in +sight deeper than the skin; and there be in it a yellow thin hair; +then the priest shall pronounce him unclean: it is a dry scall, even a +leprosy upon the head or beard. + +13:31 And if the priest look on the plague of the scall, and, behold, +it be not in sight deeper than the skin, and that there is no black +hair in it; then the priest shall shut up him that hath the plague of +the scall seven days: 13:32 And in the seventh day the priest shall +look on the plague: and, behold, if the scall spread not, and there be +in it no yellow hair, and the scall be not in sight deeper than the +skin; 13:33 He shall be shaven, but the scall shall he not shave; and +the priest shall shut up him that hath the scall seven days more: +13:34 And in the seventh day the priest shall look on the scall: and, +behold, if the scall be not spread in the skin, nor be in sight deeper +than the skin; then the priest shall pronounce him clean: and he shall +wash his clothes, and be clean. + +13:35 But if the scall spread much in the skin after his cleansing; +13:36 Then the priest shall look on him: and, behold, if the scall be +spread in the skin, the priest shall not seek for yellow hair; he is +unclean. + +13:37 But if the scall be in his sight at a stay, and that there is +black hair grown up therein; the scall is healed, he is clean: and the +priest shall pronounce him clean. + +13:38 If a man also or a woman have in the skin of their flesh bright +spots, even white bright spots; 13:39 Then the priest shall look: and, +behold, if the bright spots in the skin of their flesh be darkish +white; it is a freckled spot that groweth in the skin; he is clean. + +13:40 And the man whose hair is fallen off his head, he is bald; yet +is he clean. + +13:41 And he that hath his hair fallen off from the part of his head +toward his face, he is forehead bald: yet is he clean. + +13:42 And if there be in the bald head, or bald forehead, a white +reddish sore; it is a leprosy sprung up in his bald head, or his bald +forehead. + +13:43 Then the priest shall look upon it: and, behold, if the rising +of the sore be white reddish in his bald head, or in his bald +forehead, as the leprosy appeareth in the skin of the flesh; 13:44 He +is a leprous man, he is unclean: the priest shall pronounce him +utterly unclean; his plague is in his head. + +13:45 And the leper in whom the plague is, his clothes shall be rent, +and his head bare, and he shall put a covering upon his upper lip, and +shall cry, Unclean, unclean. + +13:46 All the days wherein the plague shall be in him he shall be +defiled; he is unclean: he shall dwell alone; without the camp shall +his habitation be. + +13:47 The garment also that the plague of leprosy is in, whether it be +a woollen garment, or a linen garment; 13:48 Whether it be in the +warp, or woof; of linen, or of woollen; whether in a skin, or in any +thing made of skin; 13:49 And if the plague be greenish or reddish in +the garment, or in the skin, either in the warp, or in the woof, or in +any thing of skin; it is a plague of leprosy, and shall be shewed unto +the priest: 13:50 And the priest shall look upon the plague, and shut +up it that hath the plague seven days: 13:51 And he shall look on the +plague on the seventh day: if the plague be spread in the garment, +either in the warp, or in the woof, or in a skin, or in any work that +is made of skin; the plague is a fretting leprosy; it is unclean. + +13:52 He shall therefore burn that garment, whether warp or woof, in +woollen or in linen, or any thing of skin, wherein the plague is: for +it is a fretting leprosy; it shall be burnt in the fire. + +13:53 And if the priest shall look, and, behold, the plague be not +spread in the garment, either in the warp, or in the woof, or in any +thing of skin; 13:54 Then the priest shall command that they wash the +thing wherein the plague is, and he shall shut it up seven days more: +13:55 And the priest shall look on the plague, after that it is +washed: and, behold, if the plague have not changed his colour, and +the plague be not spread; it is unclean; thou shalt burn it in the +fire; it is fret inward, whether it be bare within or without. + +13:56 And if the priest look, and, behold, the plague be somewhat dark +after the washing of it; then he shall rend it out of the garment, or +out of the skin, or out of the warp, or out of the woof: 13:57 And if +it appear still in the garment, either in the warp, or in the woof, or +in any thing of skin; it is a spreading plague: thou shalt burn that +wherein the plague is with fire. + +13:58 And the garment, either warp, or woof, or whatsoever thing of +skin it be, which thou shalt wash, if the plague be departed from +them, then it shall be washed the second time, and shall be clean. + +13:59 This is the law of the plague of leprosy in a garment of woollen +or linen, either in the warp, or woof, or any thing of skins, to +pronounce it clean, or to pronounce it unclean. + +14:1 And the LORD spake unto Moses, saying, 14:2 This shall be the law +of the leper in the day of his cleansing: He shall be brought unto the +priest: 14:3 And the priest shall go forth out of the camp; and the +priest shall look, and, behold, if the plague of leprosy be healed in +the leper; 14:4 Then shall the priest command to take for him that is +to be cleansed two birds alive and clean, and cedar wood, and scarlet, +and hyssop: 14:5 And the priest shall command that one of the birds be +killed in an earthen vessel over running water: 14:6 As for the living +bird, he shall take it, and the cedar wood, and the scarlet, and the +hyssop, and shall dip them and the living bird in the blood of the +bird that was killed over the running water: 14:7 And he shall +sprinkle upon him that is to be cleansed from the leprosy seven times, +and shall pronounce him clean, and shall let the living bird loose +into the open field. + +14:8 And he that is to be cleansed shall wash his clothes, and shave +off all his hair, and wash himself in water, that he may be clean: and +after that he shall come into the camp, and shall tarry abroad out of +his tent seven days. + +14:9 But it shall be on the seventh day, that he shall shave all his +hair off his head and his beard and his eyebrows, even all his hair he +shall shave off: and he shall wash his clothes, also he shall wash his +flesh in water, and he shall be clean. + +14:10 And on the eighth day he shall take two he lambs without +blemish, and one ewe lamb of the first year without blemish, and three +tenth deals of fine flour for a meat offering, mingled with oil, and +one log of oil. + +14:11 And the priest that maketh him clean shall present the man that +is to be made clean, and those things, before the LORD, at the door of +the tabernacle of the congregation: 14:12 And the priest shall take +one he lamb, and offer him for a trespass offering, and the log of +oil, and wave them for a wave offering before the LORD: 14:13 And he +shall slay the lamb in the place where he shall kill the sin offering +and the burnt offering, in the holy place: for as the sin offering is +the priest's, so is the trespass offering: it is most holy: 14:14 And +the priest shall take some of the blood of the trespass offering, and +the priest shall put it upon the tip of the right ear of him that is +to be cleansed, and upon the thumb of his right hand, and upon the +great toe of his right foot: 14:15 And the priest shall take some of +the log of oil, and pour it into the palm of his own left hand: 14:16 +And the priest shall dip his right finger in the oil that is in his +left hand, and shall sprinkle of the oil with his finger seven times +before the LORD: 14:17 And of the rest of the oil that is in his hand +shall the priest put upon the tip of the right ear of him that is to +be cleansed, and upon the thumb of his right hand, and upon the great +toe of his right foot, upon the blood of the trespass offering: 14:18 +And the remnant of the oil that is in the priest's hand he shall pour +upon the head of him that is to be cleansed: and the priest shall make +an atonement for him before the LORD. + +14:19 And the priest shall offer the sin offering, and make an +atonement for him that is to be cleansed from his uncleanness; and +afterward he shall kill the burnt offering: 14:20 And the priest shall +offer the burnt offering and the meat offering upon the altar: and the +priest shall make an atonement for him, and he shall be clean. + +14:21 And if he be poor, and cannot get so much; then he shall take +one lamb for a trespass offering to be waved, to make an atonement for +him, and one tenth deal of fine flour mingled with oil for a meat +offering, and a log of oil; 14:22 And two turtledoves, or two young +pigeons, such as he is able to get; and the one shall be a sin +offering, and the other a burnt offering. + +14:23 And he shall bring them on the eighth day for his cleansing unto +the priest, unto the door of the tabernacle of the congregation, +before the LORD. + +14:24 And the priest shall take the lamb of the trespass offering, and +the log of oil, and the priest shall wave them for a wave offering +before the LORD: 14:25 And he shall kill the lamb of the trespass +offering, and the priest shall take some of the blood of the trespass +offering, and put it upon the tip of the right ear of him that is to +be cleansed, and upon the thumb of his right hand, and upon the great +toe of his right foot: 14:26 And the priest shall pour of the oil into +the palm of his own left hand: 14:27 And the priest shall sprinkle +with his right finger some of the oil that is in his left hand seven +times before the LORD: 14:28 And the priest shall put of the oil that +is in his hand upon the tip of the right ear of him that is to be +cleansed, and upon the thumb of his right hand, and upon the great toe +of his right foot, upon the place of the blood of the trespass +offering: 14:29 And the rest of the oil that is in the priest's hand +he shall put upon the head of him that is to be cleansed, to make an +atonement for him before the LORD. + +14:30 And he shall offer the one of the turtledoves, or of the young +pigeons, such as he can get; 14:31 Even such as he is able to get, the +one for a sin offering, and the other for a burnt offering, with the +meat offering: and the priest shall make an atonement for him that is +to be cleansed before the LORD. + +14:32 This is the law of him in whom is the plague of leprosy, whose +hand is not able to get that which pertaineth to his cleansing. + +14:33 And the LORD spake unto Moses and unto Aaron, saying, 14:34 When +ye be come into the land of Canaan, which I give to you for a +possession, and I put the plague of leprosy in a house of the land of +your possession; 14:35 And he that owneth the house shall come and +tell the priest, saying, It seemeth to me there is as it were a plague +in the house: 14:36 Then the priest shall command that they empty the +house, before the priest go into it to see the plague, that all that +is in the house be not made unclean: and afterward the priest shall go +in to see the house: 14:37 And he shall look on the plague, and, +behold, if the plague be in the walls of the house with hollow +strakes, greenish or reddish, which in sight are lower than the wall; +14:38 Then the priest shall go out of the house to the door of the +house, and shut up the house seven days: 14:39 And the priest shall +come again the seventh day, and shall look: and, behold, if the plague +be spread in the walls of the house; 14:40 Then the priest shall +command that they take away the stones in which the plague is, and +they shall cast them into an unclean place without the city: 14:41 And +he shall cause the house to be scraped within round about, and they +shall pour out the dust that they scrape off without the city into an +unclean place: 14:42 And they shall take other stones, and put them in +the place of those stones; and he shall take other morter, and shall +plaister the house. + +14:43 And if the plague come again, and break out in the house, after +that he hath taken away the stones, and after he hath scraped the +house, and after it is plaistered; 14:44 Then the priest shall come +and look, and, behold, if the plague be spread in the house, it is a +fretting leprosy in the house; it is unclean. + +14:45 And he shall break down the house, the stones of it, and the +timber thereof, and all the morter of the house; and he shall carry +them forth out of the city into an unclean place. + +14:46 Moreover he that goeth into the house all the while that it is +shut up shall be unclean until the even. + +14:47 And he that lieth in the house shall wash his clothes; and he +that eateth in the house shall wash his clothes. + +14:48 And if the priest shall come in, and look upon it, and, behold, +the plague hath not spread in the house, after the house was +plaistered: then the priest shall pronounce the house clean, because +the plague is healed. + +14:49 And he shall take to cleanse the house two birds, and cedar +wood, and scarlet, and hyssop: 14:50 And he shall kill the one of the +birds in an earthen vessel over running water: 14:51 And he shall take +the cedar wood, and the hyssop, and the scarlet, and the living bird, +and dip them in the blood of the slain bird, and in the running water, +and sprinkle the house seven times: 14:52 And he shall cleanse the +house with the blood of the bird, and with the running water, and with +the living bird, and with the cedar wood, and with the hyssop, and +with the scarlet: 14:53 But he shall let go the living bird out of the +city into the open fields, and make an atonement for the house: and it +shall be clean. + +14:54 This is the law for all manner of plague of leprosy, and scall, +14:55 And for the leprosy of a garment, and of a house, 14:56 And for +a rising, and for a scab, and for a bright spot: 14:57 To teach when +it is unclean, and when it is clean: this is the law of leprosy. + +15:1 And the LORD spake unto Moses and to Aaron, saying, 15:2 Speak +unto the children of Israel, and say unto them, When any man hath a +running issue out of his flesh, because of his issue he is unclean. + +15:3 And this shall be his uncleanness in his issue: whether his flesh +run with his issue, or his flesh be stopped from his issue, it is his +uncleanness. + +15:4 Every bed, whereon he lieth that hath the issue, is unclean: and +every thing, whereon he sitteth, shall be unclean. + +15:5 And whosoever toucheth his bed shall wash his clothes, and bathe +himself in water, and be unclean until the even. + +15:6 And he that sitteth on any thing whereon he sat that hath the +issue shall wash his clothes, and bathe himself in water, and be +unclean until the even. + +15:7 And he that toucheth the flesh of him that hath the issue shall +wash his clothes, and bathe himself in water, and be unclean until the +even. + +15:8 And if he that hath the issue spit upon him that is clean; then +he shall wash his clothes, and bathe himself in water, and be unclean +until the even. + +15:9 And what saddle soever he rideth upon that hath the issue shall +be unclean. + +15:10 And whosoever toucheth any thing that was under him shall be +unclean until the even: and he that beareth any of those things shall +wash his clothes, and bathe himself in water, and be unclean until the +even. + +15:11 And whomsoever he toucheth that hath the issue, and hath not +rinsed his hands in water, he shall wash his clothes, and bathe +himself in water, and be unclean until the even. + +15:12 And the vessel of earth, that he toucheth which hath the issue, +shall be broken: and every vessel of wood shall be rinsed in water. + +15:13 And when he that hath an issue is cleansed of his issue; then he +shall number to himself seven days for his cleansing, and wash his +clothes, and bathe his flesh in running water, and shall be clean. + +15:14 And on the eighth day he shall take to him two turtledoves, or +two young pigeons, and come before the LORD unto the door of the +tabernacle of the congregation, and give them unto the priest: 15:15 +And the priest shall offer them, the one for a sin offering, and the +other for a burnt offering; and the priest shall make an atonement for +him before the LORD for his issue. + +15:16 And if any man's seed of copulation go out from him, then he +shall wash all his flesh in water, and be unclean until the even. + +15:17 And every garment, and every skin, whereon is the seed of +copulation, shall be washed with water, and be unclean until the even. + +15:18 The woman also with whom man shall lie with seed of copulation, +they shall both bathe themselves in water, and be unclean until the +even. + +15:19 And if a woman have an issue, and her issue in her flesh be +blood, she shall be put apart seven days: and whosoever toucheth her +shall be unclean until the even. + +15:20 And every thing that she lieth upon in her separation shall be +unclean: every thing also that she sitteth upon shall be unclean. + +15:21 And whosoever toucheth her bed shall wash his clothes, and bathe +himself in water, and be unclean until the even. + +15:22 And whosoever toucheth any thing that she sat upon shall wash +his clothes, and bathe himself in water, and be unclean until the +even. + +15:23 And if it be on her bed, or on any thing whereon she sitteth, +when he toucheth it, he shall be unclean until the even. + +15:24 And if any man lie with her at all, and her flowers be upon him, +he shall be unclean seven days; and all the bed whereon he lieth shall +be unclean. + +15:25 And if a woman have an issue of her blood many days out of the +time of her separation, or if it run beyond the time of her +separation; all the days of the issue of her uncleanness shall be as +the days of her separation: she shall be unclean. + +15:26 Every bed whereon she lieth all the days of her issue shall be +unto her as the bed of her separation: and whatsoever she sitteth upon +shall be unclean, as the uncleanness of her separation. + +15:27 And whosoever toucheth those things shall be unclean, and shall +wash his clothes, and bathe himself in water, and be unclean until the +even. + +15:28 But if she be cleansed of her issue, then she shall number to +herself seven days, and after that she shall be clean. + +15:29 And on the eighth day she shall take unto her two turtles, or +two young pigeons, and bring them unto the priest, to the door of the +tabernacle of the congregation. + +15:30 And the priest shall offer the one for a sin offering, and the +other for a burnt offering; and the priest shall make an atonement for +her before the LORD for the issue of her uncleanness. + +15:31 Thus shall ye separate the children of Israel from their +uncleanness; that they die not in their uncleanness, when they defile +my tabernacle that is among them. + +15:32 This is the law of him that hath an issue, and of him whose seed +goeth from him, and is defiled therewith; 15:33 And of her that is +sick of her flowers, and of him that hath an issue, of the man, and of +the woman, and of him that lieth with her that is unclean. + +16:1 And the LORD spake unto Moses after the death of the two sons of +Aaron, when they offered before the LORD, and died; 16:2 And the LORD +said unto Moses, Speak unto Aaron thy brother, that he come not at all +times into the holy place within the vail before the mercy seat, which +is upon the ark; that he die not: for I will appear in the cloud upon +the mercy seat. + +16:3 Thus shall Aaron come into the holy place: with a young bullock +for a sin offering, and a ram for a burnt offering. + +16:4 He shall put on the holy linen coat, and he shall have the linen +breeches upon his flesh, and shall be girded with a linen girdle, and +with the linen mitre shall he be attired: these are holy garments; +therefore shall he wash his flesh in water, and so put them on. + +16:5 And he shall take of the congregation of the children of Israel +two kids of the goats for a sin offering, and one ram for a burnt +offering. + +16:6 And Aaron shall offer his bullock of the sin offering, which is +for himself, and make an atonement for himself, and for his house. + +16:7 And he shall take the two goats, and present them before the LORD +at the door of the tabernacle of the congregation. + +16:8 And Aaron shall cast lots upon the two goats; one lot for the +LORD, and the other lot for the scapegoat. + +16:9 And Aaron shall bring the goat upon which the LORD's lot fell, +and offer him for a sin offering. + +16:10 But the goat, on which the lot fell to be the scapegoat, shall +be presented alive before the LORD, to make an atonement with him, and +to let him go for a scapegoat into the wilderness. + +16:11 And Aaron shall bring the bullock of the sin offering, which is +for himself, and shall make an atonement for himself, and for his +house, and shall kill the bullock of the sin offering which is for +himself: 16:12 And he shall take a censer full of burning coals of +fire from off the altar before the LORD, and his hands full of sweet +incense beaten small, and bring it within the vail: 16:13 And he shall +put the incense upon the fire before the LORD, that the cloud of the +incense may cover the mercy seat that is upon the testimony, that he +die not: 16:14 And he shall take of the blood of the bullock, and +sprinkle it with his finger upon the mercy seat eastward; and before +the mercy seat shall he sprinkle of the blood with his finger seven +times. + +16:15 Then shall he kill the goat of the sin offering, that is for the +people, and bring his blood within the vail, and do with that blood as +he did with the blood of the bullock, and sprinkle it upon the mercy +seat, and before the mercy seat: 16:16 And he shall make an atonement +for the holy place, because of the uncleanness of the children of +Israel, and because of their transgressions in all their sins: and so +shall he do for the tabernacle of the congregation, that remaineth +among them in the midst of their uncleanness. + +16:17 And there shall be no man in the tabernacle of the congregation +when he goeth in to make an atonement in the holy place, until he come +out, and have made an atonement for himself, and for his household, +and for all the congregation of Israel. + +16:18 And he shall go out unto the altar that is before the LORD, and +make an atonement for it; and shall take of the blood of the bullock, +and of the blood of the goat, and put it upon the horns of the altar +round about. + +16:19 And he shall sprinkle of the blood upon it with his finger seven +times, and cleanse it, and hallow it from the uncleanness of the +children of Israel. + +16:20 And when he hath made an end of reconciling the holy place, and +the tabernacle of the congregation, and the altar, he shall bring the +live goat: 16:21 And Aaron shall lay both his hands upon the head of +the live goat, and confess over him all the iniquities of the children +of Israel, and all their transgressions in all their sins, putting +them upon the head of the goat, and shall send him away by the hand of +a fit man into the wilderness: 16:22 And the goat shall bear upon him +all their iniquities unto a land not inhabited: and he shall let go +the goat in the wilderness. + +16:23 And Aaron shall come into the tabernacle of the congregation, +and shall put off the linen garments, which he put on when he went +into the holy place, and shall leave them there: 16:24 And he shall +wash his flesh with water in the holy place, and put on his garments, +and come forth, and offer his burnt offering, and the burnt offering +of the people, and make an atonement for himself, and for the people. + +16:25 And the fat of the sin offering shall he burn upon the altar. + +16:26 And he that let go the goat for the scapegoat shall wash his +clothes, and bathe his flesh in water, and afterward come into the +camp. + +16:27 And the bullock for the sin offering, and the goat for the sin +offering, whose blood was brought in to make atonement in the holy +place, shall one carry forth without the camp; and they shall burn in +the fire their skins, and their flesh, and their dung. + +16:28 And he that burneth them shall wash his clothes, and bathe his +flesh in water, and afterward he shall come into the camp. + +16:29 And this shall be a statute for ever unto you: that in the +seventh month, on the tenth day of the month, ye shall afflict your +souls, and do no work at all, whether it be one of your own country, +or a stranger that sojourneth among you: 16:30 For on that day shall +the priest make an atonement for you, to cleanse you, that ye may be +clean from all your sins before the LORD. + +16:31 It shall be a sabbath of rest unto you, and ye shall afflict +your souls, by a statute for ever. + +16:32 And the priest, whom he shall anoint, and whom he shall +consecrate to minister in the priest's office in his father's stead, +shall make the atonement, and shall put on the linen clothes, even the +holy garments: 16:33 And he shall make an atonement for the holy +sanctuary, and he shall make an atonement for the tabernacle of the +congregation, and for the altar, and he shall make an atonement for +the priests, and for all the people of the congregation. + +16:34 And this shall be an everlasting statute unto you, to make an +atonement for the children of Israel for all their sins once a year. +And he did as the LORD commanded Moses. + +17:1 And the LORD spake unto Moses, saying, 17:2 Speak unto Aaron, and +unto his sons, and unto all the children of Israel, and say unto them; +This is the thing which the LORD hath commanded, saying, 17:3 What man +soever there be of the house of Israel, that killeth an ox, or lamb, +or goat, in the camp, or that killeth it out of the camp, 17:4 And +bringeth it not unto the door of the tabernacle of the congregation, +to offer an offering unto the LORD before the tabernacle of the LORD; +blood shall be imputed unto that man; he hath shed blood; and that man +shall be cut off from among his people: 17:5 To the end that the +children of Israel may bring their sacrifices, which they offer in the +open field, even that they may bring them unto the LORD, unto the door +of the tabernacle of the congregation, unto the priest, and offer them +for peace offerings unto the LORD. + +17:6 And the priest shall sprinkle the blood upon the altar of the +LORD at the door of the tabernacle of the congregation, and burn the +fat for a sweet savour unto the LORD. + +17:7 And they shall no more offer their sacrifices unto devils, after +whom they have gone a whoring. This shall be a statute for ever unto +them throughout their generations. + +17:8 And thou shalt say unto them, Whatsoever man there be of the +house of Israel, or of the strangers which sojourn among you, that +offereth a burnt offering or sacrifice, 17:9 And bringeth it not unto +the door of the tabernacle of the congregation, to offer it unto the +LORD; even that man shall be cut off from among his people. + +17:10 And whatsoever man there be of the house of Israel, or of the +strangers that sojourn among you, that eateth any manner of blood; I +will even set my face against that soul that eateth blood, and will +cut him off from among his people. + +17:11 For the life of the flesh is in the blood: and I have given it +to you upon the altar to make an atonement for your souls: for it is +the blood that maketh an atonement for the soul. + +17:12 Therefore I said unto the children of Israel, No soul of you +shall eat blood, neither shall any stranger that sojourneth among you +eat blood. + +17:13 And whatsoever man there be of the children of Israel, or of the +strangers that sojourn among you, which hunteth and catcheth any beast +or fowl that may be eaten; he shall even pour out the blood thereof, +and cover it with dust. + +17:14 For it is the life of all flesh; the blood of it is for the life +thereof: therefore I said unto the children of Israel, Ye shall eat +the blood of no manner of flesh: for the life of all flesh is the +blood thereof: whosoever eateth it shall be cut off. + +17:15 And every soul that eateth that which died of itself, or that +which was torn with beasts, whether it be one of your own country, or +a stranger, he shall both wash his clothes, and bathe himself in +water, and be unclean until the even: then shall he be clean. + +17:16 But if he wash them not, nor bathe his flesh; then he shall bear +his iniquity. + +18:1 And the LORD spake unto Moses, saying, 18:2 Speak unto the +children of Israel, and say unto them, I am the LORD your God. + +18:3 After the doings of the land of Egypt, wherein ye dwelt, shall ye +not do: and after the doings of the land of Canaan, whither I bring +you, shall ye not do: neither shall ye walk in their ordinances. + +18:4 Ye shall do my judgments, and keep mine ordinances, to walk +therein: I am the LORD your God. + +18:5 Ye shall therefore keep my statutes, and my judgments: which if a +man do, he shall live in them: I am the LORD. + +18:6 None of you shall approach to any that is near of kin to him, to +uncover their nakedness: I am the LORD. + +18:7 The nakedness of thy father, or the nakedness of thy mother, +shalt thou not uncover: she is thy mother; thou shalt not uncover her +nakedness. + +18:8 The nakedness of thy father's wife shalt thou not uncover: it is +thy father's nakedness. + +18:9 The nakedness of thy sister, the daughter of thy father, or +daughter of thy mother, whether she be born at home, or born abroad, +even their nakedness thou shalt not uncover. + +18:10 The nakedness of thy son's daughter, or of thy daughter's +daughter, even their nakedness thou shalt not uncover: for theirs is +thine own nakedness. + +18:11 The nakedness of thy father's wife's daughter, begotten of thy +father, she is thy sister, thou shalt not uncover her nakedness. + +18:12 Thou shalt not uncover the nakedness of thy father's sister: she +is thy father's near kinswoman. + +18:13 Thou shalt not uncover the nakedness of thy mother's sister: for +she is thy mother's near kinswoman. + +18:14 Thou shalt not uncover the nakedness of thy father's brother, +thou shalt not approach to his wife: she is thine aunt. + +18:15 Thou shalt not uncover the nakedness of thy daughter in law: she +is thy son's wife; thou shalt not uncover her nakedness. + +18:16 Thou shalt not uncover the nakedness of thy brother's wife: it +is thy brother's nakedness. + +18:17 Thou shalt not uncover the nakedness of a woman and her +daughter, neither shalt thou take her son's daughter, or her +daughter's daughter, to uncover her nakedness; for they are her near +kinswomen: it is wickedness. + +18:18 Neither shalt thou take a wife to her sister, to vex her, to +uncover her nakedness, beside the other in her life time. + +18:19 Also thou shalt not approach unto a woman to uncover her +nakedness, as long as she is put apart for her uncleanness. + +18:20 Moreover thou shalt not lie carnally with thy neighbour's wife, +to defile thyself with her. + +18:21 And thou shalt not let any of thy seed pass through the fire to +Molech, neither shalt thou profane the name of thy God: I am the LORD. + +18:22 Thou shalt not lie with mankind, as with womankind: it is +abomination. + +18:23 Neither shalt thou lie with any beast to defile thyself +therewith: neither shall any woman stand before a beast to lie down +thereto: it is confusion. + +18:24 Defile not ye yourselves in any of these things: for in all +these the nations are defiled which I cast out before you: 18:25 And +the land is defiled: therefore I do visit the iniquity thereof upon +it, and the land itself vomiteth out her inhabitants. + +18:26 Ye shall therefore keep my statutes and my judgments, and shall +not commit any of these abominations; neither any of your own nation, +nor any stranger that sojourneth among you: 18:27 (For all these +abominations have the men of the land done, which were before you, and +the land is defiled;) 18:28 That the land spue not you out also, when +ye defile it, as it spued out the nations that were before you. + +18:29 For whosoever shall commit any of these abominations, even the +souls that commit them shall be cut off from among their people. + +18:30 Therefore shall ye keep mine ordinance, that ye commit not any +one of these abominable customs, which were committed before you, and +that ye defile not yourselves therein: I am the LORD your God. + +19:1 And the LORD spake unto Moses, saying, 19:2 Speak unto all the +congregation of the children of Israel, and say unto them, Ye shall be +holy: for I the LORD your God am holy. + +19:3 Ye shall fear every man his mother, and his father, and keep my +sabbaths: I am the LORD your God. + +19:4 Turn ye not unto idols, nor make to yourselves molten gods: I am +the LORD your God. + +19:5 And if ye offer a sacrifice of peace offerings unto the LORD, ye +shall offer it at your own will. + +19:6 It shall be eaten the same day ye offer it, and on the morrow: +and if ought remain until the third day, it shall be burnt in the +fire. + +19:7 And if it be eaten at all on the third day, it is abominable; it +shall not be accepted. + +19:8 Therefore every one that eateth it shall bear his iniquity, +because he hath profaned the hallowed thing of the LORD: and that soul +shall be cut off from among his people. + +19:9 And when ye reap the harvest of your land, thou shalt not wholly +reap the corners of thy field, neither shalt thou gather the gleanings +of thy harvest. + +19:10 And thou shalt not glean thy vineyard, neither shalt thou gather +every grape of thy vineyard; thou shalt leave them for the poor and +stranger: I am the LORD your God. + +19:11 Ye shall not steal, neither deal falsely, neither lie one to +another. + +19:12 And ye shall not swear by my name falsely, neither shalt thou +profane the name of thy God: I am the LORD. + +19:13 Thou shalt not defraud thy neighbour, neither rob him: the wages +of him that is hired shall not abide with thee all night until the +morning. + +19:14 Thou shalt not curse the deaf, nor put a stumblingblock before +the blind, but shalt fear thy God: I am the LORD. + +19:15 Ye shall do no unrighteousness in judgment: thou shalt not +respect the person of the poor, nor honor the person of the mighty: +but in righteousness shalt thou judge thy neighbour. + +19:16 Thou shalt not go up and down as a talebearer among thy people: +neither shalt thou stand against the blood of thy neighbour; I am the +LORD. + +19:17 Thou shalt not hate thy brother in thine heart: thou shalt in +any wise rebuke thy neighbour, and not suffer sin upon him. + +19:18 Thou shalt not avenge, nor bear any grudge against the children +of thy people, but thou shalt love thy neighbour as thyself: I am the +LORD. + +19:19 Ye shall keep my statutes. Thou shalt not let thy cattle gender +with a diverse kind: thou shalt not sow thy field with mingled seed: +neither shall a garment mingled of linen and woollen come upon thee. + +19:20 And whosoever lieth carnally with a woman, that is a bondmaid, +betrothed to an husband, and not at all redeemed, nor freedom given +her; she shall be scourged; they shall not be put to death, because +she was not free. + +19:21 And he shall bring his trespass offering unto the LORD, unto the +door of the tabernacle of the congregation, even a ram for a trespass +offering. + +19:22 And the priest shall make an atonement for him with the ram of +the trespass offering before the LORD for his sin which he hath done: +and the sin which he hath done shall be forgiven him. + +19:23 And when ye shall come into the land, and shall have planted all +manner of trees for food, then ye shall count the fruit thereof as +uncircumcised: three years shall it be as uncircumcised unto you: it +shall not be eaten of. + +19:24 But in the fourth year all the fruit thereof shall be holy to +praise the LORD withal. + +19:25 And in the fifth year shall ye eat of the fruit thereof, that it +may yield unto you the increase thereof: I am the LORD your God. + +19:26 Ye shall not eat any thing with the blood: neither shall ye use +enchantment, nor observe times. + +19:27 Ye shall not round the corners of your heads, neither shalt thou +mar the corners of thy beard. + +19:28 Ye shall not make any cuttings in your flesh for the dead, nor +print any marks upon you: I am the LORD. + +19:29 Do not prostitute thy daughter, to cause her to be a whore; lest +the land fall to whoredom, and the land become full of wickedness. + +19:30 Ye shall keep my sabbaths, and reverence my sanctuary: I am the +LORD. + +19:31 Regard not them that have familiar spirits, neither seek after +wizards, to be defiled by them: I am the LORD your God. + +19:32 Thou shalt rise up before the hoary head, and honour the face of +the old man, and fear thy God: I am the LORD. + +19:33 And if a stranger sojourn with thee in your land, ye shall not +vex him. + +19:34 But the stranger that dwelleth with you shall be unto you as one +born among you, and thou shalt love him as thyself; for ye were +strangers in the land of Egypt: I am the LORD your God. + +19:35 Ye shall do no unrighteousness in judgment, in meteyard, in +weight, or in measure. + +19:36 Just balances, just weights, a just ephah, and a just hin, shall +ye have: I am the LORD your God, which brought you out of the land of +Egypt. + +19:37 Therefore shall ye observe all my statutes, and all my +judgments, and do them: I am the LORD. + +20:1 And the LORD spake unto Moses, saying, 20:2 Again, thou shalt say +to the children of Israel, Whosoever he be of the children of Israel, +or of the strangers that sojourn in Israel, that giveth any of his +seed unto Molech; he shall surely be put to death: the people of the +land shall stone him with stones. + +20:3 And I will set my face against that man, and will cut him off +from among his people; because he hath given of his seed unto Molech, +to defile my sanctuary, and to profane my holy name. + +20:4 And if the people of the land do any ways hide their eyes from +the man, when he giveth of his seed unto Molech, and kill him not: +20:5 Then I will set my face against that man, and against his family, +and will cut him off, and all that go a whoring after him, to commit +whoredom with Molech, from among their people. + +20:6 And the soul that turneth after such as have familiar spirits, +and after wizards, to go a whoring after them, I will even set my face +against that soul, and will cut him off from among his people. + +20:7 Sanctify yourselves therefore, and be ye holy: for I am the LORD +your God. + +20:8 And ye shall keep my statutes, and do them: I am the LORD which +sanctify you. + +20:9 For every one that curseth his father or his mother shall be +surely put to death: he hath cursed his father or his mother; his +blood shall be upon him. + +20:10 And the man that committeth adultery with another man's wife, +even he that committeth adultery with his neighbour's wife, the +adulterer and the adulteress shall surely be put to death. + +20:11 And the man that lieth with his father's wife hath uncovered his +father's nakedness: both of them shall surely be put to death; their +blood shall be upon them. + +20:12 And if a man lie with his daughter in law, both of them shall +surely be put to death: they have wrought confusion; their blood shall +be upon them. + +20:13 If a man also lie with mankind, as he lieth with a woman, both +of them have committed an abomination: they shall surely be put to +death; their blood shall be upon them. + +20:14 And if a man take a wife and her mother, it is wickedness: they +shall be burnt with fire, both he and they; that there be no +wickedness among you. + +20:15 And if a man lie with a beast, he shall surely be put to death: +and ye shall slay the beast. + +20:16 And if a woman approach unto any beast, and lie down thereto, +thou shalt kill the woman, and the beast: they shall surely be put to +death; their blood shall be upon them. + +20:17 And if a man shall take his sister, his father's daughter, or +his mother's daughter, and see her nakedness, and she see his +nakedness; it is a wicked thing; and they shall be cut off in the +sight of their people: he hath uncovered his sister's nakedness; he +shall bear his iniquity. + +20:18 And if a man shall lie with a woman having her sickness, and +shall uncover her nakedness; he hath discovered her fountain, and she +hath uncovered the fountain of her blood: and both of them shall be +cut off from among their people. + +20:19 And thou shalt not uncover the nakedness of thy mother's sister, +nor of thy father's sister: for he uncovereth his near kin: they shall +bear their iniquity. + +20:20 And if a man shall lie with his uncle's wife, he hath uncovered +his uncle's nakedness: they shall bear their sin; they shall die +childless. + +20:21 And if a man shall take his brother's wife, it is an unclean +thing: he hath uncovered his brother's nakedness; they shall be +childless. + +20:22 Ye shall therefore keep all my statutes, and all my judgments, +and do them: that the land, whither I bring you to dwell therein, spue +you not out. + +20:23 And ye shall not walk in the manners of the nation, which I cast +out before you: for they committed all these things, and therefore I +abhorred them. + +20:24 But I have said unto you, Ye shall inherit their land, and I +will give it unto you to possess it, a land that floweth with milk and +honey: I am the LORD your God, which have separated you from other +people. + +20:25 Ye shall therefore put difference between clean beasts and +unclean, and between unclean fowls and clean: and ye shall not make +your souls abominable by beast, or by fowl, or by any manner of living +thing that creepeth on the ground, which I have separated from you as +unclean. + +20:26 And ye shall be holy unto me: for I the LORD am holy, and have +severed you from other people, that ye should be mine. + +20:27 A man also or woman that hath a familiar spirit, or that is a +wizard, shall surely be put to death: they shall stone them with +stones: their blood shall be upon them. + +21:1 And the LORD said unto Moses, Speak unto the priests the sons of +Aaron, and say unto them, There shall none be defiled for the dead +among his people: 21:2 But for his kin, that is near unto him, that +is, for his mother, and for his father, and for his son, and for his +daughter, and for his brother. + +21:3 And for his sister a virgin, that is nigh unto him, which hath +had no husband; for her may he be defiled. + +21:4 But he shall not defile himself, being a chief man among his +people, to profane himself. + +21:5 They shall not make baldness upon their head, neither shall they +shave off the corner of their beard, nor make any cuttings in their +flesh. + +21:6 They shall be holy unto their God, and not profane the name of +their God: for the offerings of the LORD made by fire, and the bread +of their God, they do offer: therefore they shall be holy. + +21:7 They shall not take a wife that is a whore, or profane; neither +shall they take a woman put away from her husband: for he is holy unto +his God. + +21:8 Thou shalt sanctify him therefore; for he offereth the bread of +thy God: he shall be holy unto thee: for I the LORD, which sanctify +you, am holy. + +21:9 And the daughter of any priest, if she profane herself by playing +the whore, she profaneth her father: she shall be burnt with fire. + +21:10 And he that is the high priest among his brethren, upon whose +head the anointing oil was poured, and that is consecrated to put on +the garments, shall not uncover his head, nor rend his clothes; 21:11 +Neither shall he go in to any dead body, nor defile himself for his +father, or for his mother; 21:12 Neither shall he go out of the +sanctuary, nor profane the sanctuary of his God; for the crown of the +anointing oil of his God is upon him: I am the LORD. + +21:13 And he shall take a wife in her virginity. + +21:14 A widow, or a divorced woman, or profane, or an harlot, these +shall he not take: but he shall take a virgin of his own people to +wife. + +21:15 Neither shall he profane his seed among his people: for I the +LORD do sanctify him. + +21:16 And the LORD spake unto Moses, saying, 21:17 Speak unto Aaron, +saying, Whosoever he be of thy seed in their generations that hath any +blemish, let him not approach to offer the bread of his God. + +21:18 For whatsoever man he be that hath a blemish, he shall not +approach: a blind man, or a lame, or he that hath a flat nose, or any +thing superfluous, 21:19 Or a man that is brokenfooted, or +brokenhanded, 21:20 Or crookbackt, or a dwarf, or that hath a blemish +in his eye, or be scurvy, or scabbed, or hath his stones broken; 21:21 +No man that hath a blemish of the seed of Aaron the priest shall come +nigh to offer the offerings of the LORD made by fire: he hath a +blemish; he shall not come nigh to offer the bread of his God. + +21:22 He shall eat the bread of his God, both of the most holy, and of +the holy. + +21:23 Only he shall not go in unto the vail, nor come nigh unto the +altar, because he hath a blemish; that he profane not my sanctuaries: +for I the LORD do sanctify them. + +21:24 And Moses told it unto Aaron, and to his sons, and unto all the +children of Israel. + +22:1 And the LORD spake unto Moses, saying, 22:2 Speak unto Aaron and +to his sons, that they separate themselves from the holy things of the +children of Israel, and that they profane not my holy name in those +things which they hallow unto me: I am the LORD. + +22:3 Say unto them, Whosoever he be of all your seed among your +generations, that goeth unto the holy things, which the children of +Israel hallow unto the LORD, having his uncleanness upon him, that +soul shall be cut off from my presence: I am the LORD. + +22:4 What man soever of the seed of Aaron is a leper, or hath a +running issue; he shall not eat of the holy things, until he be clean. +And whoso toucheth any thing that is unclean by the dead, or a man +whose seed goeth from him; 22:5 Or whosoever toucheth any creeping +thing, whereby he may be made unclean, or a man of whom he may take +uncleanness, whatsoever uncleanness he hath; 22:6 The soul which hath +touched any such shall be unclean until even, and shall not eat of the +holy things, unless he wash his flesh with water. + +22:7 And when the sun is down, he shall be clean, and shall afterward +eat of the holy things; because it is his food. + +22:8 That which dieth of itself, or is torn with beasts, he shall not +eat to defile himself therewith; I am the LORD. + +22:9 They shall therefore keep mine ordinance, lest they bear sin for +it, and die therefore, if they profane it: I the LORD do sanctify +them. + +22:10 There shall no stranger eat of the holy thing: a sojourner of +the priest, or an hired servant, shall not eat of the holy thing. + +22:11 But if the priest buy any soul with his money, he shall eat of +it, and he that is born in his house: they shall eat of his meat. + +22:12 If the priest's daughter also be married unto a stranger, she +may not eat of an offering of the holy things. + +22:13 But if the priest's daughter be a widow, or divorced, and have +no child, and is returned unto her father's house, as in her youth, +she shall eat of her father's meat: but there shall be no stranger eat +thereof. + +22:14 And if a man eat of the holy thing unwittingly, then he shall +put the fifth part thereof unto it, and shall give it unto the priest +with the holy thing. + +22:15 And they shall not profane the holy things of the children of +Israel, which they offer unto the LORD; 22:16 Or suffer them to bear +the iniquity of trespass, when they eat their holy things: for I the +LORD do sanctify them. + +22:17 And the LORD spake unto Moses, saying, 22:18 Speak unto Aaron, +and to his sons, and unto all the children of Israel, and say unto +them, Whatsoever he be of the house of Israel, or of the strangers in +Israel, that will offer his oblation for all his vows, and for all his +freewill offerings, which they will offer unto the LORD for a burnt +offering; 22:19 Ye shall offer at your own will a male without +blemish, of the beeves, of the sheep, or of the goats. + +22:20 But whatsoever hath a blemish, that shall ye not offer: for it +shall not be acceptable for you. + +22:21 And whosoever offereth a sacrifice of peace offerings unto the +LORD to accomplish his vow, or a freewill offering in beeves or sheep, +it shall be perfect to be accepted; there shall be no blemish therein. + +22:22 Blind, or broken, or maimed, or having a wen, or scurvy, or +scabbed, ye shall not offer these unto the LORD, nor make an offering +by fire of them upon the altar unto the LORD. + +22:23 Either a bullock or a lamb that hath any thing superfluous or +lacking in his parts, that mayest thou offer for a freewill offering; +but for a vow it shall not be accepted. + +22:24 Ye shall not offer unto the LORD that which is bruised, or +crushed, or broken, or cut; neither shall ye make any offering thereof +in your land. + +22:25 Neither from a stranger's hand shall ye offer the bread of your +God of any of these; because their corruption is in them, and +blemishes be in them: they shall not be accepted for you. + +22:26 And the LORD spake unto Moses, saying, 22:27 When a bullock, or +a sheep, or a goat, is brought forth, then it shall be seven days +under the dam; and from the eighth day and thenceforth it shall be +accepted for an offering made by fire unto the LORD. + +22:28 And whether it be cow, or ewe, ye shall not kill it and her +young both in one day. + +22:29 And when ye will offer a sacrifice of thanksgiving unto the +LORD, offer it at your own will. + +22:30 On the same day it shall be eaten up; ye shall leave none of it +until the morrow: I am the LORD. + +22:31 Therefore shall ye keep my commandments, and do them: I am the +LORD. + +22:32 Neither shall ye profane my holy name; but I will be hallowed +among the children of Israel: I am the LORD which hallow you, 22:33 +That brought you out of the land of Egypt, to be your God: I am the +LORD. + +23:1 And the LORD spake unto Moses, saying, 23:2 Speak unto the +children of Israel, and say unto them, Concerning the feasts of the +LORD, which ye shall proclaim to be holy convocations, even these are +my feasts. + +23:3 Six days shall work be done: but the seventh day is the sabbath +of rest, an holy convocation; ye shall do no work therein: it is the +sabbath of the LORD in all your dwellings. + +23:4 These are the feasts of the LORD, even holy convocations, which +ye shall proclaim in their seasons. + +23:5 In the fourteenth day of the first month at even is the LORD's +passover. + +23:6 And on the fifteenth day of the same month is the feast of +unleavened bread unto the LORD: seven days ye must eat unleavened +bread. + +23:7 In the first day ye shall have an holy convocation: ye shall do +no servile work therein. + +23:8 But ye shall offer an offering made by fire unto the LORD seven +days: in the seventh day is an holy convocation: ye shall do no +servile work therein. + +23:9 And the LORD spake unto Moses, saying, 23:10 Speak unto the +children of Israel, and say unto them, When ye be come into the land +which I give unto you, and shall reap the harvest thereof, then ye +shall bring a sheaf of the firstfruits of your harvest unto the +priest: 23:11 And he shall wave the sheaf before the LORD, to be +accepted for you: on the morrow after the sabbath the priest shall +wave it. + +23:12 And ye shall offer that day when ye wave the sheaf an he lamb +without blemish of the first year for a burnt offering unto the LORD. + +23:13 And the meat offering thereof shall be two tenth deals of fine +flour mingled with oil, an offering made by fire unto the LORD for a +sweet savour: and the drink offering thereof shall be of wine, the +fourth part of an hin. + +23:14 And ye shall eat neither bread, nor parched corn, nor green +ears, until the selfsame day that ye have brought an offering unto +your God: it shall be a statute for ever throughout your generations +in all your dwellings. + +23:15 And ye shall count unto you from the morrow after the sabbath, +from the day that ye brought the sheaf of the wave offering; seven +sabbaths shall be complete: 23:16 Even unto the morrow after the +seventh sabbath shall ye number fifty days; and ye shall offer a new +meat offering unto the LORD. + +23:17 Ye shall bring out of your habitations two wave loaves of two +tenth deals; they shall be of fine flour; they shall be baken with +leaven; they are the firstfruits unto the LORD. + +23:18 And ye shall offer with the bread seven lambs without blemish of +the first year, and one young bullock, and two rams: they shall be for +a burnt offering unto the LORD, with their meat offering, and their +drink offerings, even an offering made by fire, of sweet savour unto +the LORD. + +23:19 Then ye shall sacrifice one kid of the goats for a sin offering, +and two lambs of the first year for a sacrifice of peace offerings. + +23:20 And the priest shall wave them with the bread of the firstfruits +for a wave offering before the LORD, with the two lambs: they shall be +holy to the LORD for the priest. + +23:21 And ye shall proclaim on the selfsame day, that it may be an +holy convocation unto you: ye shall do no servile work therein: it +shall be a statute for ever in all your dwellings throughout your +generations. + +23:22 And when ye reap the harvest of your land, thou shalt not make +clean riddance of the corners of thy field when thou reapest, neither +shalt thou gather any gleaning of thy harvest: thou shalt leave them +unto the poor, and to the stranger: I am the LORD your God. + +23:23 And the LORD spake unto Moses, saying, 23:24 Speak unto the +children of Israel, saying, In the seventh month, in the first day of +the month, shall ye have a sabbath, a memorial of blowing of trumpets, +an holy convocation. + +23:25 Ye shall do no servile work therein: but ye shall offer an +offering made by fire unto the LORD. + +23:26 And the LORD spake unto Moses, saying, 23:27 Also on the tenth +day of this seventh month there shall be a day of atonement: it shall +be an holy convocation unto you; and ye shall afflict your souls, and +offer an offering made by fire unto the LORD. + +23:28 And ye shall do no work in that same day: for it is a day of +atonement, to make an atonement for you before the LORD your God. + +23:29 For whatsoever soul it be that shall not be afflicted in that +same day, he shall be cut off from among his people. + +23:30 And whatsoever soul it be that doeth any work in that same day, +the same soul will I destroy from among his people. + +23:31 Ye shall do no manner of work: it shall be a statute for ever +throughout your generations in all your dwellings. + +23:32 It shall be unto you a sabbath of rest, and ye shall afflict +your souls: in the ninth day of the month at even, from even unto +even, shall ye celebrate your sabbath. + +23:33 And the LORD spake unto Moses, saying, 23:34 Speak unto the +children of Israel, saying, The fifteenth day of this seventh month +shall be the feast of tabernacles for seven days unto the LORD. + +23:35 On the first day shall be an holy convocation: ye shall do no +servile work therein. + +23:36 Seven days ye shall offer an offering made by fire unto the +LORD: on the eighth day shall be an holy convocation unto you; and ye +shall offer an offering made by fire unto the LORD: it is a solemn +assembly; and ye shall do no servile work therein. + +23:37 These are the feasts of the LORD, which ye shall proclaim to be +holy convocations, to offer an offering made by fire unto the LORD, a +burnt offering, and a meat offering, a sacrifice, and drink offerings, +every thing upon his day: 23:38 Beside the sabbaths of the LORD, and +beside your gifts, and beside all your vows, and beside all your +freewill offerings, which ye give unto the LORD. + +23:39 Also in the fifteenth day of the seventh month, when ye have +gathered in the fruit of the land, ye shall keep a feast unto the LORD +seven days: on the first day shall be a sabbath, and on the eighth day +shall be a sabbath. + +23:40 And ye shall take you on the first day the boughs of goodly +trees, branches of palm trees, and the boughs of thick trees, and +willows of the brook; and ye shall rejoice before the LORD your God +seven days. + +23:41 And ye shall keep it a feast unto the LORD seven days in the +year. + +It shall be a statute for ever in your generations: ye shall celebrate +it in the seventh month. + +23:42 Ye shall dwell in booths seven days; all that are Israelites +born shall dwell in booths: 23:43 That your generations may know that +I made the children of Israel to dwell in booths, when I brought them +out of the land of Egypt: I am the LORD your God. + +23:44 And Moses declared unto the children of Israel the feasts of the +LORD. + +24:1 And the LORD spake unto Moses, saying, 24:2 Command the children +of Israel, that they bring unto thee pure oil olive beaten for the +light, to cause the lamps to burn continually. + +24:3 Without the vail of the testimony, in the tabernacle of the +congregation, shall Aaron order it from the evening unto the morning +before the LORD continually: it shall be a statute for ever in your +generations. + +24:4 He shall order the lamps upon the pure candlestick before the +LORD continually. + +24:5 And thou shalt take fine flour, and bake twelve cakes thereof: +two tenth deals shall be in one cake. + +24:6 And thou shalt set them in two rows, six on a row, upon the pure +table before the LORD. + +24:7 And thou shalt put pure frankincense upon each row, that it may +be on the bread for a memorial, even an offering made by fire unto the +LORD. + +24:8 Every sabbath he shall set it in order before the LORD +continually, being taken from the children of Israel by an everlasting +covenant. + +24:9 And it shall be Aaron's and his sons'; and they shall eat it in +the holy place: for it is most holy unto him of the offerings of the +LORD made by fire by a perpetual statute. + +24:10 And the son of an Israelitish woman, whose father was an +Egyptian, went out among the children of Israel: and this son of the +Israelitish woman and a man of Israel strove together in the camp; +24:11 And the Israelitish woman's son blasphemed the name of the Lord, +and cursed. And they brought him unto Moses: (and his mother's name +was Shelomith, the daughter of Dibri, of the tribe of Dan:) 24:12 And +they put him in ward, that the mind of the LORD might be shewed them. + +24:13 And the LORD spake unto Moses, saying, 24:14 Bring forth him +that hath cursed without the camp; and let all that heard him lay +their hands upon his head, and let all the congregation stone him. + +24:15 And thou shalt speak unto the children of Israel, saying, +Whosoever curseth his God shall bear his sin. + +24:16 And he that blasphemeth the name of the LORD, he shall surely be +put to death, and all the congregation shall certainly stone him: as +well the stranger, as he that is born in the land, when he blasphemeth +the name of the Lord, shall be put to death. + +24:17 And he that killeth any man shall surely be put to death. + +24:18 And he that killeth a beast shall make it good; beast for beast. + +24:19 And if a man cause a blemish in his neighbour; as he hath done, +so shall it be done to him; 24:20 Breach for breach, eye for eye, +tooth for tooth: as he hath caused a blemish in a man, so shall it be +done to him again. + +24:21 And he that killeth a beast, he shall restore it: and he that +killeth a man, he shall be put to death. + +24:22 Ye shall have one manner of law, as well for the stranger, as +for one of your own country: for I am the LORD your God. + +24:23 And Moses spake to the children of Israel, that they should +bring forth him that had cursed out of the camp, and stone him with +stones. And the children of Israel did as the LORD commanded Moses. + +25:1 And the LORD spake unto Moses in mount Sinai, saying, 25:2 Speak +unto the children of Israel, and say unto them, When ye come into the +land which I give you, then shall the land keep a sabbath unto the +LORD. + +25:3 Six years thou shalt sow thy field, and six years thou shalt +prune thy vineyard, and gather in the fruit thereof; 25:4 But in the +seventh year shall be a sabbath of rest unto the land, a sabbath for +the LORD: thou shalt neither sow thy field, nor prune thy vineyard. + +25:5 That which groweth of its own accord of thy harvest thou shalt +not reap, neither gather the grapes of thy vine undressed: for it is a +year of rest unto the land. + +25:6 And the sabbath of the land shall be meat for you; for thee, and +for thy servant, and for thy maid, and for thy hired servant, and for +thy stranger that sojourneth with thee. + +25:7 And for thy cattle, and for the beast that are in thy land, shall +all the increase thereof be meat. + +25:8 And thou shalt number seven sabbaths of years unto thee, seven +times seven years; and the space of the seven sabbaths of years shall +be unto thee forty and nine years. + +25:9 Then shalt thou cause the trumpet of the jubile to sound on the +tenth day of the seventh month, in the day of atonement shall ye make +the trumpet sound throughout all your land. + +25:10 And ye shall hallow the fiftieth year, and proclaim liberty +throughout all the land unto all the inhabitants thereof: it shall be +a jubile unto you; and ye shall return every man unto his possession, +and ye shall return every man unto his family. + +25:11 A jubile shall that fiftieth year be unto you: ye shall not sow, +neither reap that which groweth of itself in it, nor gather the grapes +in it of thy vine undressed. + +25:12 For it is the jubile; it shall be holy unto you: ye shall eat +the increase thereof out of the field. + +25:13 In the year of this jubile ye shall return every man unto his +possession. + +25:14 And if thou sell ought unto thy neighbour, or buyest ought of +thy neighbour's hand, ye shall not oppress one another: 25:15 +According to the number of years after the jubile thou shalt buy of +thy neighbour, and according unto the number of years of the fruits he +shall sell unto thee: 25:16 According to the multitude of years thou +shalt increase the price thereof, and according to the fewness of +years thou shalt diminish the price of it: for according to the number +of the years of the fruits doth he sell unto thee. + +25:17 Ye shall not therefore oppress one another; but thou shalt fear +thy God:for I am the LORD your God. + +25:18 Wherefore ye shall do my statutes, and keep my judgments, and do +them; and ye shall dwell in the land in safety. + +25:19 And the land shall yield her fruit, and ye shall eat your fill, +and dwell therein in safety. + +25:20 And if ye shall say, What shall we eat the seventh year? behold, +we shall not sow, nor gather in our increase: 25:21 Then I will +command my blessing upon you in the sixth year, and it shall bring +forth fruit for three years. + +25:22 And ye shall sow the eighth year, and eat yet of old fruit until +the ninth year; until her fruits come in ye shall eat of the old +store. + +25:23 The land shall not be sold for ever: for the land is mine, for +ye are strangers and sojourners with me. + +25:24 And in all the land of your possession ye shall grant a +redemption for the land. + +25:25 If thy brother be waxen poor, and hath sold away some of his +possession, and if any of his kin come to redeem it, then shall he +redeem that which his brother sold. + +25:26 And if the man have none to redeem it, and himself be able to +redeem it; 25:27 Then let him count the years of the sale thereof, and +restore the overplus unto the man to whom he sold it; that he may +return unto his possession. + +25:28 But if he be not able to restore it to him, then that which is +sold shall remain in the hand of him that hath bought it until the +year of jubile: and in the jubile it shall go out, and he shall return +unto his possession. + +25:29 And if a man sell a dwelling house in a walled city, then he may +redeem it within a whole year after it is sold; within a full year may +he redeem it. + +25:30 And if it be not redeemed within the space of a full year, then +the house that is in the walled city shall be established for ever to +him that bought it throughout his generations: it shall not go out in +the jubile. + +25:31 But the houses of the villages which have no wall round about +them shall be counted as the fields of the country: they may be +redeemed, and they shall go out in the jubile. + +25:32 Notwithstanding the cities of the Levites, and the houses of the +cities of their possession, may the Levites redeem at any time. + +25:33 And if a man purchase of the Levites, then the house that was +sold, and the city of his possession, shall go out in the year of +jubile: for the houses of the cities of the Levites are their +possession among the children of Israel. + +25:34 But the field of the suburbs of their cities may not be sold; +for it is their perpetual possession. + +25:35 And if thy brother be waxen poor, and fallen in decay with thee; +then thou shalt relieve him: yea, though he be a stranger, or a +sojourner; that he may live with thee. + +25:36 Take thou no usury of him, or increase: but fear thy God; that +thy brother may live with thee. + +25:37 Thou shalt not give him thy money upon usury, nor lend him thy +victuals for increase. + +25:38 I am the LORD your God, which brought you forth out of the land +of Egypt, to give you the land of Canaan, and to be your God. + +25:39 And if thy brother that dwelleth by thee be waxen poor, and be +sold unto thee; thou shalt not compel him to serve as a bondservant: +25:40 But as an hired servant, and as a sojourner, he shall be with +thee, and shall serve thee unto the year of jubile. + +25:41 And then shall he depart from thee, both he and his children +with him, and shall return unto his own family, and unto the +possession of his fathers shall he return. + +25:42 For they are my servants, which I brought forth out of the land +of Egypt: they shall not be sold as bondmen. + +25:43 Thou shalt not rule over him with rigour; but shalt fear thy +God. + +25:44 Both thy bondmen, and thy bondmaids, which thou shalt have, +shall be of the heathen that are round about you; of them shall ye buy +bondmen and bondmaids. + +25:45 Moreover of the children of the strangers that do sojourn among +you, of them shall ye buy, and of their families that are with you, +which they begat in your land: and they shall be your possession. + +25:46 And ye shall take them as an inheritance for your children after +you, to inherit them for a possession; they shall be your bondmen for +ever: but over your brethren the children of Israel, ye shall not rule +one over another with rigour. + +25:47 And if a sojourner or stranger wax rich by thee, and thy brother +that dwelleth by him wax poor, and sell himself unto the stranger or +sojourner by thee, or to the stock of the stranger's family: 25:48 +After that he is sold he may be redeemed again; one of his brethren +may redeem him: 25:49 Either his uncle, or his uncle's son, may redeem +him, or any that is nigh of kin unto him of his family may redeem him; +or if he be able, he may redeem himself. + +25:50 And he shall reckon with him that bought him from the year that +he was sold to him unto the year of jubile: and the price of his sale +shall be according unto the number of years, according to the time of +an hired servant shall it be with him. + +25:51 If there be yet many years behind, according unto them he shall +give again the price of his redemption out of the money that he was +bought for. + +25:52 And if there remain but few years unto the year of jubile, then +he shall count with him, and according unto his years shall he give +him again the price of his redemption. + +25:53 And as a yearly hired servant shall he be with him: and the +other shall not rule with rigour over him in thy sight. + +25:54 And if he be not redeemed in these years, then he shall go out +in the year of jubile, both he, and his children with him. + +25:55 For unto me the children of Israel are servants; they are my +servants whom I brought forth out of the land of Egypt: I am the LORD +your God. + +26:1 Ye shall make you no idols nor graven image, neither rear you up +a standing image, neither shall ye set up any image of stone in your +land, to bow down unto it: for I am the LORD your God. + +26:2 Ye shall keep my sabbaths, and reverence my sanctuary: I am the +LORD. + +26:3 If ye walk in my statutes, and keep my commandments, and do them; +26:4 Then I will give you rain in due season, and the land shall yield +her increase, and the trees of the field shall yield their fruit. + +26:5 And your threshing shall reach unto the vintage, and the vintage +shall reach unto the sowing time: and ye shall eat your bread to the +full, and dwell in your land safely. + +26:6 And I will give peace in the land, and ye shall lie down, and +none shall make you afraid: and I will rid evil beasts out of the +land, neither shall the sword go through your land. + +26:7 And ye shall chase your enemies, and they shall fall before you +by the sword. + +26:8 And five of you shall chase an hundred, and an hundred of you +shall put ten thousand to flight: and your enemies shall fall before +you by the sword. + +26:9 For I will have respect unto you, and make you fruitful, and +multiply you, and establish my covenant with you. + +26:10 And ye shall eat old store, and bring forth the old because of +the new. + +26:11 And I set my tabernacle among you: and my soul shall not abhor +you. + +26:12 And I will walk among you, and will be your God, and ye shall be +my people. + +26:13 I am the LORD your God, which brought you forth out of the land +of Egypt, that ye should not be their bondmen; and I have broken the +bands of your yoke, and made you go upright. + +26:14 But if ye will not hearken unto me, and will not do all these +commandments; 26:15 And if ye shall despise my statutes, or if your +soul abhor my judgments, so that ye will not do all my commandments, +but that ye break my covenant: 26:16 I also will do this unto you; I +will even appoint over you terror, consumption, and the burning ague, +that shall consume the eyes, and cause sorrow of heart: and ye shall +sow your seed in vain, for your enemies shall eat it. + +26:17 And I will set my face against you, and ye shall be slain before +your enemies: they that hate you shall reign over you; and ye shall +flee when none pursueth you. + +26:18 And if ye will not yet for all this hearken unto me, then I will +punish you seven times more for your sins. + +26:19 And I will break the pride of your power; and I will make your +heaven as iron, and your earth as brass: 26:20 And your strength shall +be spent in vain: for your land shall not yield her increase, neither +shall the trees of the land yield their fruits. + +26:21 And if ye walk contrary unto me, and will not hearken unto me; I +will bring seven times more plagues upon you according to your sins. + +26:22 I will also send wild beasts among you, which shall rob you of +your children, and destroy your cattle, and make you few in number; +and your high ways shall be desolate. + +26:23 And if ye will not be reformed by me by these things, but will +walk contrary unto me; 26:24 Then will I also walk contrary unto you, +and will punish you yet seven times for your sins. + +26:25 And I will bring a sword upon you, that shall avenge the quarrel +of my covenant: and when ye are gathered together within your cities, +I will send the pestilence among you; and ye shall be delivered into +the hand of the enemy. + +26:26 And when I have broken the staff of your bread, ten women shall +bake your bread in one oven, and they shall deliver you your bread +again by weight: and ye shall eat, and not be satisfied. + +26:27 And if ye will not for all this hearken unto me, but walk +contrary unto me; 26:28 Then I will walk contrary unto you also in +fury; and I, even I, will chastise you seven times for your sins. + +26:29 And ye shall eat the flesh of your sons, and the flesh of your +daughters shall ye eat. + +26:30 And I will destroy your high places, and cut down your images, +and cast your carcases upon the carcases of your idols, and my soul +shall abhor you. + +26:31 And I will make your cities waste, and bring your sanctuaries +unto desolation, and I will not smell the savour of your sweet odours. + +26:32 And I will bring the land into desolation: and your enemies +which dwell therein shall be astonished at it. + +26:33 And I will scatter you among the heathen, and will draw out a +sword after you: and your land shall be desolate, and your cities +waste. + +26:34 Then shall the land enjoy her sabbaths, as long as it lieth +desolate, and ye be in your enemies' land; even then shall the land +rest, and enjoy her sabbaths. + +26:35 As long as it lieth desolate it shall rest; because it did not +rest in your sabbaths, when ye dwelt upon it. + +26:36 And upon them that are left alive of you I will send a faintness +into their hearts in the lands of their enemies; and the sound of a +shaken leaf shall chase them; and they shall flee, as fleeing from a +sword; and they shall fall when none pursueth. + +26:37 And they shall fall one upon another, as it were before a sword, +when none pursueth: and ye shall have no power to stand before your +enemies. + +26:38 And ye shall perish among the heathen, and the land of your +enemies shall eat you up. + +26:39 And they that are left of you shall pine away in their iniquity +in your enemies' lands; and also in the iniquities of their fathers +shall they pine away with them. + +26:40 If they shall confess their iniquity, and the iniquity of their +fathers, with their trespass which they trespassed against me, and +that also they have walked contrary unto me; 26:41 And that I also +have walked contrary unto them, and have brought them into the land of +their enemies; if then their uncircumcised hearts be humbled, and they +then accept of the punishment of their iniquity: 26:42 Then will I +remember my covenant with Jacob, and also my covenant with Isaac, and +also my covenant with Abraham will I remember; and I will remember the +land. + +26:43 The land also shall be left of them, and shall enjoy her +sabbaths, while she lieth desolate without them: and they shall accept +of the punishment of their iniquity: because, even because they +despised my judgments, and because their soul abhorred my statutes. + +26:44 And yet for all that, when they be in the land of their enemies, +I will not cast them away, neither will I abhor them, to destroy them +utterly, and to break my covenant with them: for I am the LORD their +God. + +26:45 But I will for their sakes remember the covenant of their +ancestors, whom I brought forth out of the land of Egypt in the sight +of the heathen, that I might be their God: I am the LORD. + +26:46 These are the statutes and judgments and laws, which the LORD +made between him and the children of Israel in mount Sinai by the hand +of Moses. + +27:1 And the LORD spake unto Moses, saying, 27:2 Speak unto the +children of Israel, and say unto them, When a man shall make a +singular vow, the persons shall be for the LORD by thy estimation. + +27:3 And thy estimation shall be of the male from twenty years old +even unto sixty years old, even thy estimation shall be fifty shekels +of silver, after the shekel of the sanctuary. + +27:4 And if it be a female, then thy estimation shall be thirty +shekels. + +27:5 And if it be from five years old even unto twenty years old, then +thy estimation shall be of the male twenty shekels, and for the female +ten shekels. + +27:6 And if it be from a month old even unto five years old, then thy +estimation shall be of the male five shekels of silver, and for the +female thy estimation shall be three shekels of silver. + +27:7 And if it be from sixty years old and above; if it be a male, +then thy estimation shall be fifteen shekels, and for the female ten +shekels. + +27:8 But if he be poorer than thy estimation, then he shall present +himself before the priest, and the priest shall value him; according +to his ability that vowed shall the priest value him. + +27:9 And if it be a beast, whereof men bring an offering unto the +LORD, all that any man giveth of such unto the LORD shall be holy. + +27:10 He shall not alter it, nor change it, a good for a bad, or a bad +for a good: and if he shall at all change beast for beast, then it and +the exchange thereof shall be holy. + +27:11 And if it be any unclean beast, of which they do not offer a +sacrifice unto the LORD, then he shall present the beast before the +priest: 27:12 And the priest shall value it, whether it be good or +bad: as thou valuest it, who art the priest, so shall it be. + +27:13 But if he will at all redeem it, then he shall add a fifth part +thereof unto thy estimation. + +27:14 And when a man shall sanctify his house to be holy unto the +LORD, then the priest shall estimate it, whether it be good or bad: as +the priest shall estimate it, so shall it stand. + +27:15 And if he that sanctified it will redeem his house, then he +shall add the fifth part of the money of thy estimation unto it, and +it shall be his. + +27:16 And if a man shall sanctify unto the LORD some part of a field +of his possession, then thy estimation shall be according to the seed +thereof: an homer of barley seed shall be valued at fifty shekels of +silver. + +27:17 If he sanctify his field from the year of jubile, according to +thy estimation it shall stand. + +27:18 But if he sanctify his field after the jubile, then the priest +shall reckon unto him the money according to the years that remain, +even unto the year of the jubile, and it shall be abated from thy +estimation. + +27:19 And if he that sanctified the field will in any wise redeem it, +then he shall add the fifth part of the money of thy estimation unto +it, and it shall be assured to him. + +27:20 And if he will not redeem the field, or if he have sold the +field to another man, it shall not be redeemed any more. + +27:21 But the field, when it goeth out in the jubile, shall be holy +unto the LORD, as a field devoted; the possession thereof shall be the +priest's. + +27:22 And if a man sanctify unto the LORD a field which he hath +bought, which is not of the fields of his possession; 27:23 Then the +priest shall reckon unto him the worth of thy estimation, even unto +the year of the jubile: and he shall give thine estimation in that +day, as a holy thing unto the LORD. + +27:24 In the year of the jubile the field shall return unto him of +whom it was bought, even to him to whom the possession of the land did +belong. + +27:25 And all thy estimations shall be according to the shekel of the +sanctuary: twenty gerahs shall be the shekel. + +27:26 Only the firstling of the beasts, which should be the LORD's +firstling, no man shall sanctify it; whether it be ox, or sheep: it is +the LORD's. + +27:27 And if it be of an unclean beast, then he shall redeem it +according to thine estimation, and shall add a fifth part of it +thereto: or if it be not redeemed, then it shall be sold according to +thy estimation. + +27:28 Notwithstanding no devoted thing, that a man shall devote unto +the LORD of all that he hath, both of man and beast, and of the field +of his possession, shall be sold or redeemed: every devoted thing is +most holy unto the LORD. + +27:29 None devoted, which shall be devoted of men, shall be redeemed; +but shall surely be put to death. + +27:30 And all the tithe of the land, whether of the seed of the land, +or of the fruit of the tree, is the LORD's: it is holy unto the LORD. + +27:31 And if a man will at all redeem ought of his tithes, he shall +add thereto the fifth part thereof. + +27:32 And concerning the tithe of the herd, or of the flock, even of +whatsoever passeth under the rod, the tenth shall be holy unto the +LORD. + +27:33 He shall not search whether it be good or bad, neither shall he +change it: and if he change it at all, then both it and the change +thereof shall be holy; it shall not be redeemed. + +27:34 These are the commandments, which the LORD commanded Moses for +the children of Israel in mount Sinai. + + + + +The Fourth Book of Moses: Called Numbers + + +1:1 And the LORD spake unto Moses in the wilderness of Sinai, in the +tabernacle of the congregation, on the first day of the second month, +in the second year after they were come out of the land of Egypt, +saying, 1:2 Take ye the sum of all the congregation of the children of +Israel, after their families, by the house of their fathers, with the +number of their names, every male by their polls; 1:3 From twenty +years old and upward, all that are able to go forth to war in Israel: +thou and Aaron shall number them by their armies. + +1:4 And with you there shall be a man of every tribe; every one head +of the house of his fathers. + +1:5 And these are the names of the men that shall stand with you: of +the tribe of Reuben; Elizur the son of Shedeur. + +1:6 Of Simeon; Shelumiel the son of Zurishaddai. + +1:7 Of Judah; Nahshon the son of Amminadab. + +1:8 Of Issachar; Nethaneel the son of Zuar. + +1:9 Of Zebulun; Eliab the son of Helon. + +1:10 Of the children of Joseph: of Ephraim; Elishama the son of +Ammihud: of Manasseh; Gamaliel the son of Pedahzur. + +1:11 Of Benjamin; Abidan the son of Gideoni. + +1:12 Of Dan; Ahiezer the son of Ammishaddai. + +1:13 Of Asher; Pagiel the son of Ocran. + +1:14 Of Gad; Eliasaph the son of Deuel. + +1:15 Of Naphtali; Ahira the son of Enan. + +1:16 These were the renowned of the congregation, princes of the +tribes of their fathers, heads of thousands in Israel. + +1:17 And Moses and Aaron took these men which are expressed by their +names: 1:18 And they assembled all the congregation together on the +first day of the second month, and they declared their pedigrees after +their families, by the house of their fathers, according to the number +of the names, from twenty years old and upward, by their polls. + +1:19 As the LORD commanded Moses, so he numbered them in the +wilderness of Sinai. + +1:20 And the children of Reuben, Israel's eldest son, by their +generations, after their families, by the house of their fathers, +according to the number of the names, by their polls, every male from +twenty years old and upward, all that were able to go forth to war; +1:21 Those that were numbered of them, even of the tribe of Reuben, +were forty and six thousand and five hundred. + +1:22 Of the children of Simeon, by their generations, after their +families, by the house of their fathers, those that were numbered of +them, according to the number of the names, by their polls, every male +from twenty years old and upward, all that were able to go forth to +war; 1:23 Those that were numbered of them, even of the tribe of +Simeon, were fifty and nine thousand and three hundred. + +1:24 Of the children of Gad, by their generations, after their +families, by the house of their fathers, according to the number of +the names, from twenty years old and upward, all that were able to go +forth to war; 1:25 Those that were numbered of them, even of the tribe +of Gad, were forty and five thousand six hundred and fifty. + +1:26 Of the children of Judah, by their generations, after their +families, by the house of their fathers, according to the number of +the names, from twenty years old and upward, all that were able to go +forth to war; 1:27 Those that were numbered of them, even of the tribe +of Judah, were threescore and fourteen thousand and six hundred. + +1:28 Of the children of Issachar, by their generations, after their +families, by the house of their fathers, according to the number of +the names, from twenty years old and upward, all that were able to go +forth to war; 1:29 Those that were numbered of them, even of the tribe +of Issachar, were fifty and four thousand and four hundred. + +1:30 Of the children of Zebulun, by their generations, after their +families, by the house of their fathers, according to the number of +the names, from twenty years old and upward, all that were able to go +forth to war; 1:31 Those that were numbered of them, even of the tribe +of Zebulun, were fifty and seven thousand and four hundred. + +1:32 Of the children of Joseph, namely, of the children of Ephraim, by +their generations, after their families, by the house of their +fathers, according to the number of the names, from twenty years old +and upward, all that were able to go forth to war; 1:33 Those that +were numbered of them, even of the tribe of Ephraim, were forty +thousand and five hundred. + +1:34 Of the children of Manasseh, by their generations, after their +families, by the house of their fathers, according to the number of +the names, from twenty years old and upward, all that were able to go +forth to war; 1:35 Those that were numbered of them, even of the tribe +of Manasseh, were thirty and two thousand and two hundred. + +1:36 Of the children of Benjamin, by their generations, after their +families, by the house of their fathers, according to the number of +the names, from twenty years old and upward, all that were able to go +forth to war; 1:37 Those that were numbered of them, even of the tribe +of Benjamin, were thirty and five thousand and four hundred. + +1:38 Of the children of Dan, by their generations, after their +families, by the house of their fathers, according to the number of +the names, from twenty years old and upward, all that were able to go +forth to war; 1:39 Those that were numbered of them, even of the tribe +of Dan, were threescore and two thousand and seven hundred. + +1:40 Of the children of Asher, by their generations, after their +families, by the house of their fathers, according to the number of +the names, from twenty years old and upward, all that were able to go +forth to war; 1:41 Those that were numbered of them, even of the tribe +of Asher, were forty and one thousand and five hundred. + +1:42 Of the children of Naphtali, throughout their generations, after +their families, by the house of their fathers, according to the number +of the names, from twenty years old and upward, all that were able to +go forth to war; 1:43 Those that were numbered of them, even of the +tribe of Naphtali, were fifty and three thousand and four hundred. + +1:44 These are those that were numbered, which Moses and Aaron +numbered, and the princes of Israel, being twelve men: each one was +for the house of his fathers. + +1:45 So were all those that were numbered of the children of Israel, +by the house of their fathers, from twenty years old and upward, all +that were able to go forth to war in Israel; 1:46 Even all they that +were numbered were six hundred thousand and three thousand and five +hundred and fifty. + +1:47 But the Levites after the tribe of their fathers were not +numbered among them. + +1:48 For the LORD had spoken unto Moses, saying, 1:49 Only thou shalt +not number the tribe of Levi, neither take the sum of them among the +children of Israel: 1:50 But thou shalt appoint the Levites over the +tabernacle of testimony, and over all the vessels thereof, and over +all things that belong to it: they shall bear the tabernacle, and all +the vessels thereof; and they shall minister unto it, and shall encamp +round about the tabernacle. + +1:51 And when the tabernacle setteth forward, the Levites shall take +it down: and when the tabernacle is to be pitched, the Levites shall +set it up: and the stranger that cometh nigh shall be put to death. + +1:52 And the children of Israel shall pitch their tents, every man by +his own camp, and every man by his own standard, throughout their +hosts. + +1:53 But the Levites shall pitch round about the tabernacle of +testimony, that there be no wrath upon the congregation of the +children of Israel: and the Levites shall keep the charge of the +tabernacle of testimony. + +1:54 And the children of Israel did according to all that the LORD +commanded Moses, so did they. + +2:1 And the LORD spake unto Moses and unto Aaron, saying, 2:2 Every +man of the children of Israel shall pitch by his own standard, with +the ensign of their father's house: far off about the tabernacle of +the congregation shall they pitch. + +2:3 And on the east side toward the rising of the sun shall they of +the standard of the camp of Judah pitch throughout their armies: and +Nahshon the son of Amminadab shall be captain of the children of +Judah. + +2:4 And his host, and those that were numbered of them, were +threescore and fourteen thousand and six hundred. + +2:5 And those that do pitch next unto him shall be the tribe of +Issachar: and Nethaneel the son of Zuar shall be captain of the +children of Issachar. + +2:6 And his host, and those that were numbered thereof, were fifty and +four thousand and four hundred. + +2:7 Then the tribe of Zebulun: and Eliab the son of Helon shall be +captain of the children of Zebulun. + +2:8 And his host, and those that were numbered thereof, were fifty and +seven thousand and four hundred. + +2:9 All that were numbered in the camp of Judah were an hundred +thousand and fourscore thousand and six thousand and four hundred, +throughout their armies. These shall first set forth. + +2:10 On the south side shall be the standard of the camp of Reuben +according to their armies: and the captain of the children of Reuben +shall be Elizur the son of Shedeur. + +2:11 And his host, and those that were numbered thereof, were forty +and six thousand and five hundred. + +2:12 And those which pitch by him shall be the tribe of Simeon: and +the captain of the children of Simeon shall be Shelumiel the son of +Zurishaddai. + +2:13 And his host, and those that were numbered of them, were fifty +and nine thousand and three hundred. + +2:14 Then the tribe of Gad: and the captain of the sons of Gad shall +be Eliasaph the son of Reuel. + +2:15 And his host, and those that were numbered of them, were forty +and five thousand and six hundred and fifty. + +2:16 All that were numbered in the camp of Reuben were an hundred +thousand and fifty and one thousand and four hundred and fifty, +throughout their armies. And they shall set forth in the second rank. + +2:17 Then the tabernacle of the congregation shall set forward with +the camp of the Levites in the midst of the camp: as they encamp, so +shall they set forward, every man in his place by their standards. + +2:18 On the west side shall be the standard of the camp of Ephraim +according to their armies: and the captain of the sons of Ephraim +shall be Elishama the son of Ammihud. + +2:19 And his host, and those that were numbered of them, were forty +thousand and five hundred. + +2:20 And by him shall be the tribe of Manasseh: and the captain of the +children of Manasseh shall be Gamaliel the son of Pedahzur. + +2:21 And his host, and those that were numbered of them, were thirty +and two thousand and two hundred. + +2:22 Then the tribe of Benjamin: and the captain of the sons of +Benjamin shall be Abidan the son of Gideoni. + +2:23 And his host, and those that were numbered of them, were thirty +and five thousand and four hundred. + +2:24 All that were numbered of the camp of Ephraim were an hundred +thousand and eight thousand and an hundred, throughout their armies. +And they shall go forward in the third rank. + +2:25 The standard of the camp of Dan shall be on the north side by +their armies: and the captain of the children of Dan shall be Ahiezer +the son of Ammishaddai. + +2:26 And his host, and those that were numbered of them, were +threescore and two thousand and seven hundred. + +2:27 And those that encamp by him shall be the tribe of Asher: and the +captain of the children of Asher shall be Pagiel the son of Ocran. + +2:28 And his host, and those that were numbered of them, were forty +and one thousand and five hundred. + +2:29 Then the tribe of Naphtali: and the captain of the children of +Naphtali shall be Ahira the son of Enan. + +2:30 And his host, and those that were numbered of them, were fifty +and three thousand and four hundred. + +2:31 All they that were numbered in the camp of Dan were an hundred +thousand and fifty and seven thousand and six hundred. They shall go +hindmost with their standards. + +2:32 These are those which were numbered of the children of Israel by +the house of their fathers: all those that were numbered of the camps +throughout their hosts were six hundred thousand and three thousand +and five hundred and fifty. + +2:33 But the Levites were not numbered among the children of Israel; +as the LORD commanded Moses. + +2:34 And the children of Israel did according to all that the LORD +commanded Moses: so they pitched by their standards, and so they set +forward, every one after their families, according to the house of +their fathers. + +3:1 These also are the generations of Aaron and Moses in the day that +the LORD spake with Moses in mount Sinai. + +3:2 And these are the names of the sons of Aaron; Nadab the firstborn, +and Abihu, Eleazar, and Ithamar. + +3:3 These are the names of the sons of Aaron, the priests which were +anointed, whom he consecrated to minister in the priest's office. + +3:4 And Nadab and Abihu died before the LORD, when they offered +strange fire before the LORD, in the wilderness of Sinai, and they had +no children: and Eleazar and Ithamar ministered in the priest's office +in the sight of Aaron their father. + +3:5 And the LORD spake unto Moses, saying, 3:6 Bring the tribe of Levi +near, and present them before Aaron the priest, that they may minister +unto him. + +3:7 And they shall keep his charge, and the charge of the whole +congregation before the tabernacle of the congregation, to do the +service of the tabernacle. + +3:8 And they shall keep all the instruments of the tabernacle of the +congregation, and the charge of the children of Israel, to do the +service of the tabernacle. + +3:9 And thou shalt give the Levites unto Aaron and to his sons: they +are wholly given unto him out of the children of Israel. + +3:10 And thou shalt appoint Aaron and his sons, and they shall wait on +their priest's office: and the stranger that cometh nigh shall be put +to death. + +3:11 And the LORD spake unto Moses, saying, 3:12 And I, behold, I have +taken the Levites from among the children of Israel instead of all the +firstborn that openeth the matrix among the children of Israel: +therefore the Levites shall be mine; 3:13 Because all the firstborn +are mine; for on the day that I smote all the firstborn in the land of +Egypt I hallowed unto me all the firstborn in Israel, both man and +beast: mine shall they be: I am the LORD. + +3:14 And the LORD spake unto Moses in the wilderness of Sinai, saying, +3:15 Number the children of Levi after the house of their fathers, by +their families: every male from a month old and upward shalt thou +number them. + +3:16 And Moses numbered them according to the word of the LORD, as he +was commanded. + +3:17 And these were the sons of Levi by their names; Gershon, and +Kohath, and Merari. + +3:18 And these are the names of the sons of Gershon by their families; +Libni, and Shimei. + +3:19 And the sons of Kohath by their families; Amram, and Izehar, +Hebron, and Uzziel. + +3:20 And the sons of Merari by their families; Mahli, and Mushi. These +are the families of the Levites according to the house of their +fathers. + +3:21 Of Gershon was the family of the Libnites, and the family of the +Shimites: these are the families of the Gershonites. + +3:22 Those that were numbered of them, according to the number of all +the males, from a month old and upward, even those that were numbered +of them were seven thousand and five hundred. + +3:23 The families of the Gershonites shall pitch behind the tabernacle +westward. + +3:24 And the chief of the house of the father of the Gershonites shall +be Eliasaph the son of Lael. + +3:25 And the charge of the sons of Gershon in the tabernacle of the +congregation shall be the tabernacle, and the tent, the covering +thereof, and the hanging for the door of the tabernacle of the +congregation, 3:26 And the hangings of the court, and the curtain for +the door of the court, which is by the tabernacle, and by the altar +round about, and the cords of it for all the service thereof. + +3:27 And of Kohath was the family of the Amramites, and the family of +the Izeharites, and the family of the Hebronites, and the family of +the Uzzielites: these are the families of the Kohathites. + +3:28 In the number of all the males, from a month old and upward, were +eight thousand and six hundred, keeping the charge of the sanctuary. + +3:29 The families of the sons of Kohath shall pitch on the side of the +tabernacle southward. + +3:30 And the chief of the house of the father of the families of the +Kohathites shall be Elizaphan the son of Uzziel. + +3:31 And their charge shall be the ark, and the table, and the +candlestick, and the altars, and the vessels of the sanctuary +wherewith they minister, and the hanging, and all the service thereof. + +3:32 And Eleazar the son of Aaron the priest shall be chief over the +chief of the Levites, and have the oversight of them that keep the +charge of the sanctuary. + +3:33 Of Merari was the family of the Mahlites, and the family of the +Mushites: these are the families of Merari. + +3:34 And those that were numbered of them, according to the number of +all the males, from a month old and upward, were six thousand and two +hundred. + +3:35 And the chief of the house of the father of the families of +Merari was Zuriel the son of Abihail: these shall pitch on the side of +the tabernacle northward. + +3:36 And under the custody and charge of the sons of Merari shall be +the boards of the tabernacle, and the bars thereof, and the pillars +thereof, and the sockets thereof, and all the vessels thereof, and all +that serveth thereto, 3:37 And the pillars of the court round about, +and their sockets, and their pins, and their cords. + +3:38 But those that encamp before the tabernacle toward the east, even +before the tabernacle of the congregation eastward, shall be Moses, +and Aaron and his sons, keeping the charge of the sanctuary for the +charge of the children of Israel; and the stranger that cometh nigh +shall be put to death. + +3:39 All that were numbered of the Levites, which Moses and Aaron +numbered at the commandment of the LORD, throughout their families, +all the males from a month old and upward, were twenty and two +thousand. + +3:40 And the LORD said unto Moses, Number all the firstborn of the +males of the children of Israel from a month old and upward, and take +the number of their names. + +3:41 And thou shalt take the Levites for me (I am the LORD) instead of +all the firstborn among the children of Israel; and the cattle of the +Levites instead of all the firstlings among the cattle of the children +of Israel. + +3:42 And Moses numbered, as the LORD commanded him, all the firstborn +among the children of Israel. + +3:43 And all the firstborn males by the number of names, from a month +old and upward, of those that were numbered of them, were twenty and +two thousand two hundred and threescore and thirteen. + +3:44 And the LORD spake unto Moses, saying, 3:45 Take the Levites +instead of all the firstborn among the children of Israel, and the +cattle of the Levites instead of their cattle; and the Levites shall +be mine: I am the LORD. + +3:46 And for those that are to be redeemed of the two hundred and +threescore and thirteen of the firstborn of the children of Israel, +which are more than the Levites; 3:47 Thou shalt even take five +shekels apiece by the poll, after the shekel of the sanctuary shalt +thou take them: (the shekel is twenty gerahs:) 3:48 And thou shalt +give the money, wherewith the odd number of them is to be redeemed, +unto Aaron and to his sons. + +3:49 And Moses took the redemption money of them that were over and +above them that were redeemed by the Levites: 3:50 Of the firstborn of +the children of Israel took he the money; a thousand three hundred and +threescore and five shekels, after the shekel of the sanctuary: 3:51 +And Moses gave the money of them that were redeemed unto Aaron and to +his sons, according to the word of the LORD, as the LORD commanded +Moses. + +4:1 And the LORD spake unto Moses and unto Aaron, saying, 4:2 Take the +sum of the sons of Kohath from among the sons of Levi, after their +families, by the house of their fathers, 4:3 From thirty years old and +upward even until fifty years old, all that enter into the host, to do +the work in the tabernacle of the congregation. + +4:4 This shall be the service of the sons of Kohath in the tabernacle +of the congregation, about the most holy things: 4:5 And when the camp +setteth forward, Aaron shall come, and his sons, and they shall take +down the covering vail, and cover the ark of testimony with it: 4:6 +And shall put thereon the covering of badgers' skins, and shall spread +over it a cloth wholly of blue, and shall put in the staves thereof. + +4:7 And upon the table of shewbread they shall spread a cloth of blue, +and put thereon the dishes, and the spoons, and the bowls, and covers +to cover withal: and the continual bread shall be thereon: 4:8 And +they shall spread upon them a cloth of scarlet, and cover the same +with a covering of badgers' skins, and shall put in the staves +thereof. + +4:9 And they shall take a cloth of blue, and cover the candlestick of +the light, and his lamps, and his tongs, and his snuffdishes, and all +the oil vessels thereof, wherewith they minister unto it: 4:10 And +they shall put it and all the vessels thereof within a covering of +badgers' skins, and shall put it upon a bar. + +4:11 And upon the golden altar they shall spread a cloth of blue, and +cover it with a covering of badgers' skins, and shall put to the +staves thereof: 4:12 And they shall take all the instruments of +ministry, wherewith they minister in the sanctuary, and put them in a +cloth of blue, and cover them with a covering of badgers' skins, and +shall put them on a bar: 4:13 And they shall take away the ashes from +the altar, and spread a purple cloth thereon: 4:14 And they shall put +upon it all the vessels thereof, wherewith they minister about it, +even the censers, the fleshhooks, and the shovels, and the basons, all +the vessels of the altar; and they shall spread upon it a covering of +badgers' skins, and put to the staves of it. + +4:15 And when Aaron and his sons have made an end of covering the +sanctuary, and all the vessels of the sanctuary, as the camp is to set +forward; after that, the sons of Kohath shall come to bear it: but +they shall not touch any holy thing, lest they die. These things are +the burden of the sons of Kohath in the tabernacle of the +congregation. + +4:16 And to the office of Eleazar the son of Aaron the priest +pertaineth the oil for the light, and the sweet incense, and the daily +meat offering, and the anointing oil, and the oversight of all the +tabernacle, and of all that therein is, in the sanctuary, and in the +vessels thereof. + +4:17 And the LORD spake unto Moses and unto Aaron saying, 4:18 Cut ye +not off the tribe of the families of the Kohathites from among the +Levites: 4:19 But thus do unto them, that they may live, and not die, +when they approach unto the most holy things: Aaron and his sons shall +go in, and appoint them every one to his service and to his burden: +4:20 But they shall not go in to see when the holy things are covered, +lest they die. + +4:21 And the LORD spake unto Moses, saying, 4:22 Take also the sum of +the sons of Gershon, throughout the houses of their fathers, by their +families; 4:23 From thirty years old and upward until fifty years old +shalt thou number them; all that enter in to perform the service, to +do the work in the tabernacle of the congregation. + +4:24 This is the service of the families of the Gershonites, to serve, +and for burdens: 4:25 And they shall bear the curtains of the +tabernacle, and the tabernacle of the congregation, his covering, and +the covering of the badgers' skins that is above upon it, and the +hanging for the door of the tabernacle of the congregation, 4:26 And +the hangings of the court, and the hanging for the door of the gate of +the court, which is by the tabernacle and by the altar round about, +and their cords, and all the instruments of their service, and all +that is made for them: so shall they serve. + +4:27 At the appointment of Aaron and his sons shall be all the service +of the sons of the Gershonites, in all their burdens, and in all their +service: and ye shall appoint unto them in charge all their burdens. + +4:28 This is the service of the families of the sons of Gershon in the +tabernacle of the congregation: and their charge shall be under the +hand of Ithamar the son of Aaron the priest. + +4:29 As for the sons of Merari, thou shalt number them after their +families, by the house of their fathers; 4:30 From thirty years old +and upward even unto fifty years old shalt thou number them, every one +that entereth into the service, to do the work of the tabernacle of +the congregation. + +4:31 And this is the charge of their burden, according to all their +service in the tabernacle of the congregation; the boards of the +tabernacle, and the bars thereof, and the pillars thereof, and sockets +thereof, 4:32 And the pillars of the court round about, and their +sockets, and their pins, and their cords, with all their instruments, +and with all their service: and by name ye shall reckon the +instruments of the charge of their burden. + +4:33 This is the service of the families of the sons of Merari, +according to all their service, in the tabernacle of the congregation, +under the hand of Ithamar the son of Aaron the priest. + +4:34 And Moses and Aaron and the chief of the congregation numbered +the sons of the Kohathites after their families, and after the house +of their fathers, 4:35 From thirty years old and upward even unto +fifty years old, every one that entereth into the service, for the +work in the tabernacle of the congregation: 4:36 And those that were +numbered of them by their families were two thousand seven hundred and +fifty. + +4:37 These were they that were numbered of the families of the +Kohathites, all that might do service in the tabernacle of the +congregation, which Moses and Aaron did number according to the +commandment of the LORD by the hand of Moses. + +4:38 And those that were numbered of the sons of Gershon, throughout +their families, and by the house of their fathers, 4:39 From thirty +years old and upward even unto fifty years old, every one that +entereth into the service, for the work in the tabernacle of the +congregation, 4:40 Even those that were numbered of them, throughout +their families, by the house of their fathers, were two thousand and +six hundred and thirty. + +4:41 These are they that were numbered of the families of the sons of +Gershon, of all that might do service in the tabernacle of the +congregation, whom Moses and Aaron did number according to the +commandment of the LORD. + +4:42 And those that were numbered of the families of the sons of +Merari, throughout their families, by the house of their fathers, 4:43 +From thirty years old and upward even unto fifty years old, every one +that entereth into the service, for the work in the tabernacle of the +congregation, 4:44 Even those that were numbered of them after their +families, were three thousand and two hundred. + +4:45 These be those that were numbered of the families of the sons of +Merari, whom Moses and Aaron numbered according to the word of the +LORD by the hand of Moses. + +4:46 All those that were numbered of the Levites, whom Moses and Aaron +and the chief of Israel numbered, after their families, and after the +house of their fathers, 4:47 From thirty years old and upward even +unto fifty years old, every one that came to do the service of the +ministry, and the service of the burden in the tabernacle of the +congregation. + +4:48 Even those that were numbered of them, were eight thousand and +five hundred and fourscore, 4:49 According to the commandment of the +LORD they were numbered by the hand of Moses, every one according to +his service, and according to his burden: thus were they numbered of +him, as the LORD commanded Moses. + +5:1 And the LORD spake unto Moses, saying, 5:2 Command the children of +Israel, that they put out of the camp every leper, and every one that +hath an issue, and whosoever is defiled by the dead: 5:3 Both male and +female shall ye put out, without the camp shall ye put them; that they +defile not their camps, in the midst whereof I dwell. + +5:4 And the children of Israel did so, and put them out without the +camp: as the LORD spake unto Moses, so did the children of Israel. + +5:5 And the LORD spake unto Moses, saying, 5:6 Speak unto the children +of Israel, When a man or woman shall commit any sin that men commit, +to do a trespass against the LORD, and that person be guilty; 5:7 Then +they shall confess their sin which they have done: and he shall +recompense his trespass with the principal thereof, and add unto it +the fifth part thereof, and give it unto him against whom he hath +trespassed. + +5:8 But if the man have no kinsman to recompense the trespass unto, +let the trespass be recompensed unto the LORD, even to the priest; +beside the ram of the atonement, whereby an atonement shall be made +for him. + +5:9 And every offering of all the holy things of the children of +Israel, which they bring unto the priest, shall be his. + +5:10 And every man's hallowed things shall be his: whatsoever any man +giveth the priest, it shall be his. + +5:11 And the LORD spake unto Moses, saying, 5:12 Speak unto the +children of Israel, and say unto them, If any man's wife go aside, and +commit a trespass against him, 5:13 And a man lie with her carnally, +and it be hid from the eyes of her husband, and be kept close, and she +be defiled, and there be no witness against her, neither she be taken +with the manner; 5:14 And the spirit of jealousy come upon him, and he +be jealous of his wife, and she be defiled: or if the spirit of +jealousy come upon him, and he be jealous of his wife, and she be not +defiled: 5:15 Then shall the man bring his wife unto the priest, and +he shall bring her offering for her, the tenth part of an ephah of +barley meal; he shall pour no oil upon it, nor put frankincense +thereon; for it is an offering of jealousy, an offering of memorial, +bringing iniquity to remembrance. + +5:16 And the priest shall bring her near, and set her before the LORD: +5:17 And the priest shall take holy water in an earthen vessel; and of +the dust that is in the floor of the tabernacle the priest shall take, +and put it into the water: 5:18 And the priest shall set the woman +before the LORD, and uncover the woman's head, and put the offering of +memorial in her hands, which is the jealousy offering: and the priest +shall have in his hand the bitter water that causeth the curse: 5:19 +And the priest shall charge her by an oath, and say unto the woman, If +no man have lain with thee, and if thou hast not gone aside to +uncleanness with another instead of thy husband, be thou free from +this bitter water that causeth the curse: 5:20 But if thou hast gone +aside to another instead of thy husband, and if thou be defiled, and +some man have lain with thee beside thine husband: 5:21 Then the +priest shall charge the woman with an oath of cursing, and the priest +shall say unto the woman, The LORD make thee a curse and an oath among +thy people, when the LORD doth make thy thigh to rot, and thy belly to +swell; 5:22 And this water that causeth the curse shall go into thy +bowels, to make thy belly to swell, and thy thigh to rot: And the +woman shall say, Amen, amen. + +5:23 And the priest shall write these curses in a book, and he shall +blot them out with the bitter water: 5:24 And he shall cause the woman +to drink the bitter water that causeth the curse: and the water that +causeth the curse shall enter into her, and become bitter. + +5:25 Then the priest shall take the jealousy offering out of the +woman's hand, and shall wave the offering before the LORD, and offer +it upon the altar: 5:26 And the priest shall take an handful of the +offering, even the memorial thereof, and burn it upon the altar, and +afterward shall cause the woman to drink the water. + +5:27 And when he hath made her to drink the water, then it shall come +to pass, that, if she be defiled, and have done trespass against her +husband, that the water that causeth the curse shall enter into her, +and become bitter, and her belly shall swell, and her thigh shall rot: +and the woman shall be a curse among her people. + +5:28 And if the woman be not defiled, but be clean; then she shall be +free, and shall conceive seed. + +5:29 This is the law of jealousies, when a wife goeth aside to another +instead of her husband, and is defiled; 5:30 Or when the spirit of +jealousy cometh upon him, and he be jealous over his wife, and shall +set the woman before the LORD, and the priest shall execute upon her +all this law. + +5:31 Then shall the man be guiltless from iniquity, and this woman +shall bear her iniquity. + +6:1 And the LORD spake unto Moses, saying, 6:2 Speak unto the children +of Israel, and say unto them, When either man or woman shall separate +themselves to vow a vow of a Nazarite, to separate themselves unto the +LORD: 6:3 He shall separate himself from wine and strong drink, and +shall drink no vinegar of wine, or vinegar of strong drink, neither +shall he drink any liquor of grapes, nor eat moist grapes, or dried. + +6:4 All the days of his separation shall he eat nothing that is made +of the vine tree, from the kernels even to the husk. + +6:5 All the days of the vow of his separation there shall no razor +come upon his head: until the days be fulfilled, in the which he +separateth himself unto the LORD, he shall be holy, and shall let the +locks of the hair of his head grow. + +6:6 All the days that he separateth himself unto the LORD he shall +come at no dead body. + +6:7 He shall not make himself unclean for his father, or for his +mother, for his brother, or for his sister, when they die: because the +consecration of his God is upon his head. + +6:8 All the days of his separation he is holy unto the LORD. + +6:9 And if any man die very suddenly by him, and he hath defiled the +head of his consecration; then he shall shave his head in the day of +his cleansing, on the seventh day shall he shave it. + +6:10 And on the eighth day he shall bring two turtles, or two young +pigeons, to the priest, to the door of the tabernacle of the +congregation: 6:11 And the priest shall offer the one for a sin +offering, and the other for a burnt offering, and make an atonement +for him, for that he sinned by the dead, and shall hallow his head +that same day. + +6:12 And he shall consecrate unto the LORD the days of his separation, +and shall bring a lamb of the first year for a trespass offering: but +the days that were before shall be lost, because his separation was +defiled. + +6:13 And this is the law of the Nazarite, when the days of his +separation are fulfilled: he shall be brought unto the door of the +tabernacle of the congregation: 6:14 And he shall offer his offering +unto the LORD, one he lamb of the first year without blemish for a +burnt offering, and one ewe lamb of the first year without blemish for +a sin offering, and one ram without blemish for peace offerings, 6:15 +And a basket of unleavened bread, cakes of fine flour mingled with +oil, and wafers of unleavened bread anointed with oil, and their meat +offering, and their drink offerings. + +6:16 And the priest shall bring them before the LORD, and shall offer +his sin offering, and his burnt offering: 6:17 And he shall offer the +ram for a sacrifice of peace offerings unto the LORD, with the basket +of unleavened bread: the priest shall offer also his meat offering, +and his drink offering. + +6:18 And the Nazarite shall shave the head of his separation at the +door of the tabernacle of the congregation, and shall take the hair of +the head of his separation, and put it in the fire which is under the +sacrifice of the peace offerings. + +6:19 And the priest shall take the sodden shoulder of the ram, and one +unleavened cake out of the basket, and one unleavened wafer, and shall +put them upon the hands of the Nazarite, after the hair of his +separation is shaven: 6:20 And the priest shall wave them for a wave +offering before the LORD: this is holy for the priest, with the wave +breast and heave shoulder: and after that the Nazarite may drink wine. + +6:21 This is the law of the Nazarite who hath vowed, and of his +offering unto the LORD for his separation, beside that that his hand +shall get: according to the vow which he vowed, so he must do after +the law of his separation. + +6:22 And the LORD spake unto Moses, saying, 6:23 Speak unto Aaron and +unto his sons, saying, On this wise ye shall bless the children of +Israel, saying unto them, 6:24 The LORD bless thee, and keep thee: +6:25 The LORD make his face shine upon thee, and be gracious unto +thee: 6:26 The LORD lift up his countenance upon thee, and give thee +peace. + +6:27 And they shall put my name upon the children of Israel, and I +will bless them. + +7:1 And it came to pass on the day that Moses had fully set up the +tabernacle, and had anointed it, and sanctified it, and all the +instruments thereof, both the altar and all the vessels thereof, and +had anointed them, and sanctified them; 7:2 That the princes of +Israel, heads of the house of their fathers, who were the princes of +the tribes, and were over them that were numbered, offered: 7:3 And +they brought their offering before the LORD, six covered wagons, and +twelve oxen; a wagon for two of the princes, and for each one an ox: +and they brought them before the tabernacle. + +7:4 And the LORD spake unto Moses, saying, 7:5 Take it of them, that +they may be to do the service of the tabernacle of the congregation; +and thou shalt give them unto the Levites, to every man according to +his service. + +7:6 And Moses took the wagons and the oxen, and gave them unto the +Levites. + +7:7 Two wagons and four oxen he gave unto the sons of Gershon, +according to their service: 7:8 And four wagons and eight oxen he gave +unto the sons of Merari, according unto their service, under the hand +of Ithamar the son of Aaron the priest. + +7:9 But unto the sons of Kohath he gave none: because the service of +the sanctuary belonging unto them was that they should bear upon their +shoulders. + +7:10 And the princes offered for dedicating of the altar in the day +that it was anointed, even the princes offered their offering before +the altar. + +7:11 And the LORD said unto Moses, They shall offer their offering, +each prince on his day, for the dedicating of the altar. + +7:12 And he that offered his offering the first day was Nahshon the +son of Amminadab, of the tribe of Judah: 7:13 And his offering was one +silver charger, the weight thereof was an hundred and thirty shekels, +one silver bowl of seventy shekels, after the shekel of the sanctuary; +both of them were full of fine flour mingled with oil for a meat +offering: 7:14 One spoon of ten shekels of gold, full of incense: 7:15 +One young bullock, one ram, one lamb of the first year, for a burnt +offering: 7:16 One kid of the goats for a sin offering: 7:17 And for a +sacrifice of peace offerings, two oxen, five rams, five he goats, five +lambs of the first year: this was the offering of Nahshon the son of +Amminadab. + +7:18 On the second day Nethaneel the son of Zuar, prince of Issachar, +did offer: 7:19 He offered for his offering one silver charger, the +weight whereof was an hundred and thirty shekels, one silver bowl of +seventy shekels, after the shekel of the sanctuary; both of them full +of fine flour mingled with oil for a meat offering: 7:20 One spoon of +gold of ten shekels, full of incense: 7:21 One young bullock, one ram, +one lamb of the first year, for a burnt offering: 7:22 One kid of the +goats for a sin offering: 7:23 And for a sacrifice of peace offerings, +two oxen, five rams, five he goats, five lambs of the first year: this +was the offering of Nethaneel the son of Zuar. + +7:24 On the third day Eliab the son of Helon, prince of the children +of Zebulun, did offer: 7:25 His offering was one silver charger, the +weight whereof was an hundred and thirty shekels, one silver bowl of +seventy shekels, after the shekel of the sanctuary; both of them full +of fine flour mingled with oil for a meat offering: 7:26 One golden +spoon of ten shekels, full of incense: 7:27 One young bullock, one +ram, one lamb of the first year, for a burnt offering: 7:28 One kid of +the goats for a sin offering: 7:29 And for a sacrifice of peace +offerings, two oxen, five rams, five he goats, five lambs of the first +year: this was the offering of Eliab the son of Helon. + +7:30 On the fourth day Elizur the son of Shedeur, prince of the +children of Reuben, did offer: 7:31 His offering was one silver +charger of the weight of an hundred and thirty shekels, one silver +bowl of seventy shekels, after the shekel of the sanctuary; both of +them full of fine flour mingled with oil for a meat offering: 7:32 One +golden spoon of ten shekels, full of incense: 7:33 One young bullock, +one ram, one lamb of the first year, for a burnt offering: 7:34 One +kid of the goats for a sin offering: 7:35 And for a sacrifice of peace +offerings, two oxen, five rams, five he goats, five lambs of the first +year: this was the offering of Elizur the son of Shedeur. + +7:36 On the fifth day Shelumiel the son of Zurishaddai, prince of the +children of Simeon, did offer: 7:37 His offering was one silver +charger, the weight whereof was an hundred and thirty shekels, one +silver bowl of seventy shekels, after the shekel of the sanctuary; +both of them full of fine flour mingled with oil for a meat offering: +7:38 One golden spoon of ten shekels, full of incense: 7:39 One young +bullock, one ram, one lamb of the first year, for a burnt offering: +7:40 One kid of the goats for a sin offering: 7:41 And for a sacrifice +of peace offerings, two oxen, five rams, five he goats, five lambs of +the first year: this was the offering of Shelumiel the son of +Zurishaddai. + +7:42 On the sixth day Eliasaph the son of Deuel, prince of the +children of Gad, offered: 7:43 His offering was one silver charger of +the weight of an hundred and thirty shekels, a silver bowl of seventy +shekels, after the shekel of the sanctuary; both of them full of fine +flour mingled with oil for a meat offering: 7:44 One golden spoon of +ten shekels, full of incense: 7:45 One young bullock, one ram, one +lamb of the first year, for a burnt offering: 7:46 One kid of the +goats for a sin offering: 7:47 And for a sacrifice of peace offerings, +two oxen, five rams, five he goats, five lambs of the first year: this +was the offering of Eliasaph the son of Deuel. + +7:48 On the seventh day Elishama the son of Ammihud, prince of the +children of Ephraim, offered: 7:49 His offering was one silver +charger, the weight whereof was an hundred and thirty shekels, one +silver bowl of seventy shekels, after the shekel of the sanctuary; +both of them full of fine flour mingled with oil for a meat offering: +7:50 One golden spoon of ten shekels, full of incense: 7:51 One young +bullock, one ram, one lamb of the first year, for a burnt offering: +7:52 One kid of the goats for a sin offering: 7:53 And for a sacrifice +of peace offerings, two oxen, five rams, five he goats, five lambs of +the first year: this was the offering of Elishama the son of Ammihud. + +7:54 On the eighth day offered Gamaliel the son of Pedahzur, prince of +the children of Manasseh: 7:55 His offering was one silver charger of +the weight of an hundred and thirty shekels, one silver bowl of +seventy shekels, after the shekel of the sanctuary; both of them full +of fine flour mingled with oil for a meat offering: 7:56 One golden +spoon of ten shekels, full of incense: 7:57 One young bullock, one +ram, one lamb of the first year, for a burnt offering: 7:58 One kid of +the goats for a sin offering: 7:59 And for a sacrifice of peace +offerings, two oxen, five rams, five he goats, five lambs of the first +year: this was the offering of Gamaliel the son of Pedahzur. + +7:60 On the ninth day Abidan the son of Gideoni, prince of the +children of Benjamin, offered: 7:61 His offering was one silver +charger, the weight whereof was an hundred and thirty shekels, one +silver bowl of seventy shekels, after the shekel of the sanctuary; +both of them full of fine flour mingled with oil for a meat offering: +7:62 One golden spoon of ten shekels, full of incense: 7:63 One young +bullock, one ram, one lamb of the first year, for a burnt offering: +7:64 One kid of the goats for a sin offering: 7:65 And for a sacrifice +of peace offerings, two oxen, five rams, five he goats, five lambs of +the first year: this was the offering of Abidan the son of Gideoni. + +7:66 On the tenth day Ahiezer the son of Ammishaddai, prince of the +children of Dan, offered: 7:67 His offering was one silver charger, +the weight whereof was an hundred and thirty shekels, one silver bowl +of seventy shekels, after the shekel of the sanctuary; both of them +full of fine flour mingled with oil for a meat offering: 7:68 One +golden spoon of ten shekels, full of incense: 7:69 One young bullock, +one ram, one lamb of the first year, for a burnt offering: 7:70 One +kid of the goats for a sin offering: 7:71 And for a sacrifice of peace +offerings, two oxen, five rams, five he goats, five lambs of the first +year: this was the offering of Ahiezer the son of Ammishaddai. + +7:72 On the eleventh day Pagiel the son of Ocran, prince of the +children of Asher, offered: 7:73 His offering was one silver charger, +the weight whereof was an hundred and thirty shekels, one silver bowl +of seventy shekels, after the shekel of the sanctuary; both of them +full of fine flour mingled with oil for a meat offering: 7:74 One +golden spoon of ten shekels, full of incense: 7:75 One young bullock, +one ram, one lamb of the first year, for a burnt offering: 7:76 One +kid of the goats for a sin offering: 7:77 And for a sacrifice of peace +offerings, two oxen, five rams, five he goats, five lambs of the first +year: this was the offering of Pagiel the son of Ocran. + +7:78 On the twelfth day Ahira the son of Enan, prince of the children +of Naphtali, offered: 7:79 His offering was one silver charger, the +weight whereof was an hundred and thirty shekels, one silver bowl of +seventy shekels, after the shekel of the sanctuary; both of them full +of fine flour mingled with oil for a meat offering: 7:80 One golden +spoon of ten shekels, full of incense: 7:81 One young bullock, one +ram, one lamb of the first year, for a burnt offering: 7:82 One kid of +the goats for a sin offering: 7:83 And for a sacrifice of peace +offerings, two oxen, five rams, five he goats, five lambs of the first +year: this was the offering of Ahira the son of Enan. + +7:84 This was the dedication of the altar, in the day when it was +anointed, by the princes of Israel: twelve chargers of silver, twelve +silver bowls, twelve spoons of gold: 7:85 Each charger of silver +weighing an hundred and thirty shekels, each bowl seventy: all the +silver vessels weighed two thousand and four hundred shekels, after +the shekel of the sanctuary: 7:86 The golden spoons were twelve, full +of incense, weighing ten shekels apiece, after the shekel of the +sanctuary: all the gold of the spoons was an hundred and twenty +shekels. + +7:87 All the oxen for the burnt offering were twelve bullocks, the +rams twelve, the lambs of the first year twelve, with their meat +offering: and the kids of the goats for sin offering twelve. + +7:88 And all the oxen for the sacrifice of the peace offerings were +twenty and four bullocks, the rams sixty, the he goats sixty, the +lambs of the first year sixty. This was the dedication of the altar, +after that it was anointed. + +7:89 And when Moses was gone into the tabernacle of the congregation +to speak with him, then he heard the voice of one speaking unto him +from off the mercy seat that was upon the ark of testimony, from +between the two cherubims: and he spake unto him. + +8:1 And the LORD spake unto Moses, saying, 8:2 Speak unto Aaron and +say unto him, When thou lightest the lamps, the seven lamps shall give +light over against the candlestick. + +8:3 And Aaron did so; he lighted the lamps thereof over against the +candlestick, as the LORD commanded Moses. + +8:4 And this work of the candlestick was of beaten gold, unto the +shaft thereof, unto the flowers thereof, was beaten work: according +unto the pattern which the LORD had shewed Moses, so he made the +candlestick. + +8:5 And the LORD spake unto Moses, saying, 8:6 Take the Levites from +among the children of Israel, and cleanse them. + +8:7 And thus shalt thou do unto them, to cleanse them: Sprinkle water +of purifying upon them, and let them shave all their flesh, and let +them wash their clothes, and so make themselves clean. + +8:8 Then let them take a young bullock with his meat offering, even +fine flour mingled with oil, and another young bullock shalt thou take +for a sin offering. + +8:9 And thou shalt bring the Levites before the tabernacle of the +congregation: and thou shalt gather the whole assembly of the children +of Israel together: 8:10 And thou shalt bring the Levites before the +LORD: and the children of Israel shall put their hands upon the +Levites: 8:11 And Aaron shall offer the Levites before the LORD for an +offering of the children of Israel, that they may execute the service +of the LORD. + +8:12 And the Levites shall lay their hands upon the heads of the +bullocks: and thou shalt offer the one for a sin offering, and the +other for a burnt offering, unto the LORD, to make an atonement for +the Levites. + +8:13 And thou shalt set the Levites before Aaron, and before his sons, +and offer them for an offering unto the LORD. + +8:14 Thus shalt thou separate the Levites from among the children of +Israel: and the Levites shall be mine. + +8:15 And after that shall the Levites go in to do the service of the +tabernacle of the congregation: and thou shalt cleanse them, and offer +them for an offering. + +8:16 For they are wholly given unto me from among the children of +Israel; instead of such as open every womb, even instead of the +firstborn of all the children of Israel, have I taken them unto me. + +8:17 For all the firstborn of the children of Israel are mine, both +man and beast: on the day that I smote every firstborn in the land of +Egypt I sanctified them for myself. + +8:18 And I have taken the Levites for all the firstborn of the +children of Israel. + +8:19 And I have given the Levites as a gift to Aaron and to his sons +from among the children of Israel, to do the service of the children +of Israel in the tabernacle of the congregation, and to make an +atonement for the children of Israel: that there be no plague among +the children of Israel, when the children of Israel come nigh unto the +sanctuary. + +8:20 And Moses, and Aaron, and all the congregation of the children of +Israel, did to the Levites according unto all that the LORD commanded +Moses concerning the Levites, so did the children of Israel unto them. + +8:21 And the Levites were purified, and they washed their clothes; and +Aaron offered them as an offering before the LORD; and Aaron made an +atonement for them to cleanse them. + +8:22 And after that went the Levites in to do their service in the +tabernacle of the congregation before Aaron, and before his sons: as +the LORD had commanded Moses concerning the Levites, so did they unto +them. + +8:23 And the LORD spake unto Moses, saying, 8:24 This is it that +belongeth unto the Levites: from twenty and five years old and upward +they shall go in to wait upon the service of the tabernacle of the +congregation: 8:25 And from the age of fifty years they shall cease +waiting upon the service thereof, and shall serve no more: 8:26 But +shall minister with their brethren in the tabernacle of the +congregation, to keep the charge, and shall do no service. Thus shalt +thou do unto the Levites touching their charge. + +9:1 And the LORD spake unto Moses in the wilderness of Sinai, in the +first month of the second year after they were come out of the land of +Egypt, saying, 9:2 Let the children of Israel also keep the passover +at his appointed season. + +9:3 In the fourteenth day of this month, at even, ye shall keep it in +his appointed season: according to all the rites of it, and according +to all the ceremonies thereof, shall ye keep it. + +9:4 And Moses spake unto the children of Israel, that they should keep +the passover. + +9:5 And they kept the passover on the fourteenth day of the first +month at even in the wilderness of Sinai: according to all that the +LORD commanded Moses, so did the children of Israel. + +9:6 And there were certain men, who were defiled by the dead body of a +man, that they could not keep the passover on that day: and they came +before Moses and before Aaron on that day: 9:7 And those men said unto +him, We are defiled by the dead body of a man: wherefore are we kept +back, that we may not offer an offering of the LORD in his appointed +season among the children of Israel? 9:8 And Moses said unto them, +Stand still, and I will hear what the LORD will command concerning +you. + +9:9 And the LORD spake unto Moses, saying, 9:10 Speak unto the +children of Israel, saying, If any man of you or of your posterity +shall be unclean by reason of a dead body, or be in a journey afar +off, yet he shall keep the passover unto the LORD. + +9:11 The fourteenth day of the second month at even they shall keep +it, and eat it with unleavened bread and bitter herbs. + +9:12 They shall leave none of it unto the morning, nor break any bone +of it: according to all the ordinances of the passover they shall keep +it. + +9:13 But the man that is clean, and is not in a journey, and +forbeareth to keep the passover, even the same soul shall be cut off +from among his people: because he brought not the offering of the LORD +in his appointed season, that man shall bear his sin. + +9:14 And if a stranger shall sojourn among you, and will keep the +passover unto the LORD; according to the ordinance of the passover, +and according to the manner thereof, so shall he do: ye shall have one +ordinance, both for the stranger, and for him that was born in the +land. + +9:15 And on the day that the tabernacle was reared up the cloud +covered the tabernacle, namely, the tent of the testimony: and at even +there was upon the tabernacle as it were the appearance of fire, until +the morning. + +9:16 So it was alway: the cloud covered it by day, and the appearance +of fire by night. + +9:17 And when the cloud was taken up from the tabernacle, then after +that the children of Israel journeyed: and in the place where the +cloud abode, there the children of Israel pitched their tents. + +9:18 At the commandment of the LORD the children of Israel journeyed, +and at the commandment of the LORD they pitched: as long as the cloud +abode upon the tabernacle they rested in their tents. + +9:19 And when the cloud tarried long upon the tabernacle many days, +then the children of Israel kept the charge of the LORD, and journeyed +not. + +9:20 And so it was, when the cloud was a few days upon the tabernacle; +according to the commandment of the LORD they abode in their tents, +and according to the commandment of the LORD they journeyed. + +9:21 And so it was, when the cloud abode from even unto the morning, +and that the cloud was taken up in the morning, then they journeyed: +whether it was by day or by night that the cloud was taken up, they +journeyed. + +9:22 Or whether it were two days, or a month, or a year, that the +cloud tarried upon the tabernacle, remaining thereon, the children of +Israel abode in their tents, and journeyed not: but when it was taken +up, they journeyed. + +9:23 At the commandment of the LORD they rested in the tents, and at +the commandment of the LORD they journeyed: they kept the charge of +the LORD, at the commandment of the LORD by the hand of Moses. + +10:1 And the LORD spake unto Moses, saying, 10:2 Make thee two +trumpets of silver; of a whole piece shalt thou make them: that thou +mayest use them for the calling of the assembly, and for the +journeying of the camps. + +10:3 And when they shall blow with them, all the assembly shall +assemble themselves to thee at the door of the tabernacle of the +congregation. + +10:4 And if they blow but with one trumpet, then the princes, which +are heads of the thousands of Israel, shall gather themselves unto +thee. + +10:5 When ye blow an alarm, then the camps that lie on the east parts +shall go forward. + +10:6 When ye blow an alarm the second time, then the camps that lie on +the south side shall take their journey: they shall blow an alarm for +their journeys. + +10:7 But when the congregation is to be gathered together, ye shall +blow, but ye shall not sound an alarm. + +10:8 And the sons of Aaron, the priests, shall blow with the trumpets; +and they shall be to you for an ordinance for ever throughout your +generations. + +10:9 And if ye go to war in your land against the enemy that +oppresseth you, then ye shall blow an alarm with the trumpets; and ye +shall be remembered before the LORD your God, and ye shall be saved +from your enemies. + +10:10 Also in the day of your gladness, and in your solemn days, and +in the beginnings of your months, ye shall blow with the trumpets over +your burnt offerings, and over the sacrifices of your peace offerings; +that they may be to you for a memorial before your God: I am the LORD +your God. + +10:11 And it came to pass on the twentieth day of the second month, in +the second year, that the cloud was taken up from off the tabernacle +of the testimony. + +10:12 And the children of Israel took their journeys out of the +wilderness of Sinai; and the cloud rested in the wilderness of Paran. + +10:13 And they first took their journey according to the commandment +of the LORD by the hand of Moses. + +10:14 In the first place went the standard of the camp of the children +of Judah according to their armies: and over his host was Nahshon the +son of Amminadab. + +10:15 And over the host of the tribe of the children of Issachar was +Nethaneel the son of Zuar. + +10:16 And over the host of the tribe of the children of Zebulun was +Eliab the son of Helon. + +10:17 And the tabernacle was taken down; and the sons of Gershon and +the sons of Merari set forward, bearing the tabernacle. + +10:18 And the standard of the camp of Reuben set forward according to +their armies: and over his host was Elizur the son of Shedeur. + +10:19 And over the host of the tribe of the children of Simeon was +Shelumiel the son of Zurishaddai. + +10:20 And over the host of the tribe of the children of Gad was +Eliasaph the son of Deuel. + +10:21 And the Kohathites set forward, bearing the sanctuary: and the +other did set up the tabernacle against they came. + +10:22 And the standard of the camp of the children of Ephraim set +forward according to their armies: and over his host was Elishama the +son of Ammihud. + +10:23 And over the host of the tribe of the children of Manasseh was +Gamaliel the son of Pedahzur. + +10:24 And over the host of the tribe of the children of Benjamin was +Abidan the son of Gideoni. + +10:25 And the standard of the camp of the children of Dan set forward, +which was the rereward of all the camps throughout their hosts: and +over his host was Ahiezer the son of Ammishaddai. + +10:26 And over the host of the tribe of the children of Asher was +Pagiel the son of Ocran. + +10:27 And over the host of the tribe of the children of Naphtali was +Ahira the son of Enan. + +10:28 Thus were the journeyings of the children of Israel according to +their armies, when they set forward. + +10:29 And Moses said unto Hobab, the son of Raguel the Midianite, +Moses' father in law, We are journeying unto the place of which the +LORD said, I will give it you: come thou with us, and we will do thee +good: for the LORD hath spoken good concerning Israel. + +10:30 And he said unto him, I will not go; but I will depart to mine +own land, and to my kindred. + +10:31 And he said, Leave us not, I pray thee; forasmuch as thou +knowest how we are to encamp in the wilderness, and thou mayest be to +us instead of eyes. + +10:32 And it shall be, if thou go with us, yea, it shall be, that what +goodness the LORD shall do unto us, the same will we do unto thee. + +10:33 And they departed from the mount of the LORD three days' +journey: and the ark of the covenant of the LORD went before them in +the three days' journey, to search out a resting place for them. + +10:34 And the cloud of the LORD was upon them by day, when they went +out of the camp. + +10:35 And it came to pass, when the ark set forward, that Moses said, +Rise up, LORD, and let thine enemies be scattered; and let them that +hate thee flee before thee. + +10:36 And when it rested, he said, Return, O LORD, unto the many +thousands of Israel. + +11:1 And when the people complained, it displeased the LORD: and the +LORD heard it; and his anger was kindled; and the fire of the LORD +burnt among them, and consumed them that were in the uttermost parts +of the camp. + +11:2 And the people cried unto Moses; and when Moses prayed unto the +LORD, the fire was quenched. + +11:3 And he called the name of the place Taberah: because the fire of +the LORD burnt among them. + +11:4 And the mixt multitude that was among them fell a lusting: and +the children of Israel also wept again, and said, Who shall give us +flesh to eat? 11:5 We remember the fish, which we did eat in Egypt +freely; the cucumbers, and the melons, and the leeks, and the onions, +and the garlick: 11:6 But now our soul is dried away: there is nothing +at all, beside this manna, before our eyes. + +11:7 And the manna was as coriander seed, and the colour thereof as +the colour of bdellium. + +11:8 And the people went about, and gathered it, and ground it in +mills, or beat it in a mortar, and baked it in pans, and made cakes of +it: and the taste of it was as the taste of fresh oil. + +11:9 And when the dew fell upon the camp in the night, the manna fell +upon it. + +11:10 Then Moses heard the people weep throughout their families, +every man in the door of his tent: and the anger of the LORD was +kindled greatly; Moses also was displeased. + +11:11 And Moses said unto the LORD, Wherefore hast thou afflicted thy +servant? and wherefore have I not found favour in thy sight, that thou +layest the burden of all this people upon me? 11:12 Have I conceived +all this people? have I begotten them, that thou shouldest say unto +me, Carry them in thy bosom, as a nursing father beareth the sucking +child, unto the land which thou swarest unto their fathers? 11:13 +Whence should I have flesh to give unto all this people? for they weep +unto me, saying, Give us flesh, that we may eat. + +11:14 I am not able to bear all this people alone, because it is too +heavy for me. + +11:15 And if thou deal thus with me, kill me, I pray thee, out of +hand, if I have found favour in thy sight; and let me not see my +wretchedness. + +11:16 And the LORD said unto Moses, Gather unto me seventy men of the +elders of Israel, whom thou knowest to be the elders of the people, +and officers over them; and bring them unto the tabernacle of the +congregation, that they may stand there with thee. + +11:17 And I will come down and talk with thee there: and I will take +of the spirit which is upon thee, and will put it upon them; and they +shall bear the burden of the people with thee, that thou bear it not +thyself alone. + +11:18 And say thou unto the people, Sanctify yourselves against to +morrow, and ye shall eat flesh: for ye have wept in the ears of the +LORD, saying, Who shall give us flesh to eat? for it was well with us +in Egypt: therefore the LORD will give you flesh, and ye shall eat. + +11:19 Ye shall not eat one day, nor two days, nor five days, neither +ten days, nor twenty days; 11:20 But even a whole month, until it come +out at your nostrils, and it be loathsome unto you: because that ye +have despised the LORD which is among you, and have wept before him, +saying, Why came we forth out of Egypt? 11:21 And Moses said, The +people, among whom I am, are six hundred thousand footmen; and thou +hast said, I will give them flesh, that they may eat a whole month. + +11:22 Shall the flocks and the herds be slain for them, to suffice +them? or shall all the fish of the sea be gathered together for them, +to suffice them? 11:23 And the LORD said unto Moses, Is the LORD's +hand waxed short? thou shalt see now whether my word shall come to +pass unto thee or not. + +11:24 And Moses went out, and told the people the words of the LORD, +and gathered the seventy men of the elders of the people, and set them +round about the tabernacle. + +11:25 And the LORD came down in a cloud, and spake unto him, and took +of the spirit that was upon him, and gave it unto the seventy elders: +and it came to pass, that, when the spirit rested upon them, they +prophesied, and did not cease. + +11:26 But there remained two of the men in the camp, the name of the +one was Eldad, and the name of the other Medad: and the spirit rested +upon them; and they were of them that were written, but went not out +unto the tabernacle: and they prophesied in the camp. + +11:27 And there ran a young man, and told Moses, and said, Eldad and +Medad do prophesy in the camp. + +11:28 And Joshua the son of Nun, the servant of Moses, one of his +young men, answered and said, My lord Moses, forbid them. + +11:29 And Moses said unto him, Enviest thou for my sake? would God +that all the LORD's people were prophets, and that the LORD would put +his spirit upon them! 11:30 And Moses gat him into the camp, he and +the elders of Israel. + +11:31 And there went forth a wind from the LORD, and brought quails +from the sea, and let them fall by the camp, as it were a day's +journey on this side, and as it were a day's journey on the other +side, round about the camp, and as it were two cubits high upon the +face of the earth. + +11:32 And the people stood up all that day, and all that night, and +all the next day, and they gathered the quails: he that gathered least +gathered ten homers: and they spread them all abroad for themselves +round about the camp. + +11:33 And while the flesh was yet between their teeth, ere it was +chewed, the wrath of the LORD was kindled against the people, and the +LORD smote the people with a very great plague. + +11:34 And he called the name of that place Kibrothhattaavah: because +there they buried the people that lusted. + +11:35 And the people journeyed from Kibrothhattaavah unto Hazeroth; +and abode at Hazeroth. + +12:1 And Miriam and Aaron spake against Moses because of the Ethiopian +woman whom he had married: for he had married an Ethiopian woman. + +12:2 And they said, Hath the LORD indeed spoken only by Moses? hath he +not spoken also by us? And the LORD heard it. + +12:3 (Now the man Moses was very meek, above all the men which were +upon the face of the earth.) 12:4 And the LORD spake suddenly unto +Moses, and unto Aaron, and unto Miriam, Come out ye three unto the +tabernacle of the congregation. And they three came out. + +12:5 And the LORD came down in the pillar of the cloud, and stood in +the door of the tabernacle, and called Aaron and Miriam: and they both +came forth. + +12:6 And he said, Hear now my words: If there be a prophet among you, +I the LORD will make myself known unto him in a vision, and will speak +unto him in a dream. + +12:7 My servant Moses is not so, who is faithful in all mine house. + +12:8 With him will I speak mouth to mouth, even apparently, and not in +dark speeches; and the similitude of the LORD shall he behold: +wherefore then were ye not afraid to speak against my servant Moses? +12:9 And the anger of the LORD was kindled against them; and he +departed. + +12:10 And the cloud departed from off the tabernacle; and, behold, +Miriam became leprous, white as snow: and Aaron looked upon Miriam, +and, behold, she was leprous. + +12:11 And Aaron said unto Moses, Alas, my lord, I beseech thee, lay +not the sin upon us, wherein we have done foolishly, and wherein we +have sinned. + +12:12 Let her not be as one dead, of whom the flesh is half consumed +when he cometh out of his mother's womb. + +12:13 And Moses cried unto the LORD, saying, Heal her now, O God, I +beseech thee. + +12:14 And the LORD said unto Moses, If her father had but spit in her +face, should she not be ashamed seven days? let her be shut out from +the camp seven days, and after that let her be received in again. + +12:15 And Miriam was shut out from the camp seven days: and the people +journeyed not till Miriam was brought in again. + +12:16 And afterward the people removed from Hazeroth, and pitched in +the wilderness of Paran. + +13:1 And the LORD spake unto Moses, saying, 13:2 Send thou men, that +they may search the land of Canaan, which I give unto the children of +Israel: of every tribe of their fathers shall ye send a man, every one +a ruler among them. + +13:3 And Moses by the commandment of the LORD sent them from the +wilderness of Paran: all those men were heads of the children of +Israel. + +13:4 And these were their names: of the tribe of Reuben, Shammua the +son of Zaccur. + +13:5 Of the tribe of Simeon, Shaphat the son of Hori. + +13:6 Of the tribe of Judah, Caleb the son of Jephunneh. + +13:7 Of the tribe of Issachar, Igal the son of Joseph. + +13:8 Of the tribe of Ephraim, Oshea the son of Nun. + +13:9 Of the tribe of Benjamin, Palti the son of Raphu. + +13:10 Of the tribe of Zebulun, Gaddiel the son of Sodi. + +13:11 Of the tribe of Joseph, namely, of the tribe of Manasseh, Gaddi +the son of Susi. + +13:12 Of the tribe of Dan, Ammiel the son of Gemalli. + +13:13 Of the tribe of Asher, Sethur the son of Michael. + +13:14 Of the tribe of Naphtali, Nahbi the son of Vophsi. + +13:15 Of the tribe of Gad, Geuel the son of Machi. + +13:16 These are the names of the men which Moses sent to spy out the +land. + +And Moses called Oshea the son of Nun Jehoshua. + +13:17 And Moses sent them to spy out the land of Canaan, and said unto +them, Get you up this way southward, and go up into the mountain: +13:18 And see the land, what it is, and the people that dwelleth +therein, whether they be strong or weak, few or many; 13:19 And what +the land is that they dwell in, whether it be good or bad; and what +cities they be that they dwell in, whether in tents, or in strong +holds; 13:20 And what the land is, whether it be fat or lean, whether +there be wood therein, or not. And be ye of good courage, and bring of +the fruit of the land. Now the time was the time of the firstripe +grapes. + +13:21 So they went up, and searched the land from the wilderness of +Zin unto Rehob, as men come to Hamath. + +13:22 And they ascended by the south, and came unto Hebron; where +Ahiman, Sheshai, and Talmai, the children of Anak, were. (Now Hebron +was built seven years before Zoan in Egypt.) 13:23 And they came unto +the brook of Eshcol, and cut down from thence a branch with one +cluster of grapes, and they bare it between two upon a staff; and they +brought of the pomegranates, and of the figs. + +13:24 The place was called the brook Eshcol, because of the cluster of +grapes which the children of Israel cut down from thence. + +13:25 And they returned from searching of the land after forty days. + +13:26 And they went and came to Moses, and to Aaron, and to all the +congregation of the children of Israel, unto the wilderness of Paran, +to Kadesh; and brought back word unto them, and unto all the +congregation, and shewed them the fruit of the land. + +13:27 And they told him, and said, We came unto the land whither thou +sentest us, and surely it floweth with milk and honey; and this is the +fruit of it. + +13:28 Nevertheless the people be strong that dwell in the land, and +the cities are walled, and very great: and moreover we saw the +children of Anak there. + +13:29 The Amalekites dwell in the land of the south: and the Hittites, +and the Jebusites, and the Amorites, dwell in the mountains: and the +Canaanites dwell by the sea, and by the coast of Jordan. + +13:30 And Caleb stilled the people before Moses, and said, Let us go +up at once, and possess it; for we are well able to overcome it. + +13:31 But the men that went up with him said, We be not able to go up +against the people; for they are stronger than we. + +13:32 And they brought up an evil report of the land which they had +searched unto the children of Israel, saying, The land, through which +we have gone to search it, is a land that eateth up the inhabitants +thereof; and all the people that we saw in it are men of a great +stature. + +13:33 And there we saw the giants, the sons of Anak, which come of the +giants: and we were in our own sight as grasshoppers, and so we were +in their sight. + +14:1 And all the congregation lifted up their voice, and cried; and +the people wept that night. + +14:2 And all the children of Israel murmured against Moses and against +Aaron: and the whole congregation said unto them, Would God that we +had died in the land of Egypt! or would God we had died in this +wilderness! 14:3 And wherefore hath the LORD brought us unto this +land, to fall by the sword, that our wives and our children should be +a prey? were it not better for us to return into Egypt? 14:4 And they +said one to another, Let us make a captain, and let us return into +Egypt. + +14:5 Then Moses and Aaron fell on their faces before all the assembly +of the congregation of the children of Israel. + +14:6 And Joshua the son of Nun, and Caleb the son of Jephunneh, which +were of them that searched the land, rent their clothes: 14:7 And they +spake unto all the company of the children of Israel, saying, The +land, which we passed through to search it, is an exceeding good land. + +14:8 If the LORD delight in us, then he will bring us into this land, +and give it us; a land which floweth with milk and honey. + +14:9 Only rebel not ye against the LORD, neither fear ye the people of +the land; for they are bread for us: their defence is departed from +them, and the LORD is with us: fear them not. + +14:10 But all the congregation bade stone them with stones. And the +glory of the LORD appeared in the tabernacle of the congregation +before all the children of Israel. + +14:11 And the LORD said unto Moses, How long will this people provoke +me? and how long will it be ere they believe me, for all the signs +which I have shewed among them? 14:12 I will smite them with the +pestilence, and disinherit them, and will make of thee a greater +nation and mightier than they. + +14:13 And Moses said unto the LORD, Then the Egyptians shall hear it, +(for thou broughtest up this people in thy might from among them;) +14:14 And they will tell it to the inhabitants of this land: for they +have heard that thou LORD art among this people, that thou LORD art +seen face to face, and that thy cloud standeth over them, and that +thou goest before them, by day time in a pillar of a cloud, and in a +pillar of fire by night. + +14:15 Now if thou shalt kill all this people as one man, then the +nations which have heard the fame of thee will speak, saying, 14:16 +Because the LORD was not able to bring this people into the land which +he sware unto them, therefore he hath slain them in the wilderness. + +14:17 And now, I beseech thee, let the power of my LORD be great, +according as thou hast spoken, saying, 14:18 The LORD is +longsuffering, and of great mercy, forgiving iniquity and +transgression, and by no means clearing the guilty, visiting the +iniquity of the fathers upon the children unto the third and fourth +generation. + +14:19 Pardon, I beseech thee, the iniquity of this people according +unto the greatness of thy mercy, and as thou hast forgiven this +people, from Egypt even until now. + +14:20 And the LORD said, I have pardoned according to thy word: 14:21 +But as truly as I live, all the earth shall be filled with the glory +of the LORD. + +14:22 Because all those men which have seen my glory, and my miracles, +which I did in Egypt and in the wilderness, and have tempted me now +these ten times, and have not hearkened to my voice; 14:23 Surely they +shall not see the land which I sware unto their fathers, neither shall +any of them that provoked me see it: 14:24 But my servant Caleb, +because he had another spirit with him, and hath followed me fully, +him will I bring into the land whereinto he went; and his seed shall +possess it. + +14:25 (Now the Amalekites and the Canaanites dwelt in the valley.) +Tomorrow turn you, and get you into the wilderness by the way of the +Red sea. + +14:26 And the LORD spake unto Moses and unto Aaron, saying, 14:27 How +long shall I bear with this evil congregation, which murmur against +me? I have heard the murmurings of the children of Israel, which they +murmur against me. + +14:28 Say unto them, As truly as I live, saith the LORD, as ye have +spoken in mine ears, so will I do to you: 14:29 Your carcases shall +fall in this wilderness; and all that were numbered of you, according +to your whole number, from twenty years old and upward which have +murmured against me. + +14:30 Doubtless ye shall not come into the land, concerning which I +sware to make you dwell therein, save Caleb the son of Jephunneh, and +Joshua the son of Nun. + +14:31 But your little ones, which ye said should be a prey, them will +I bring in, and they shall know the land which ye have despised. + +14:32 But as for you, your carcases, they shall fall in this +wilderness. + +14:33 And your children shall wander in the wilderness forty years, +and bear your whoredoms, until your carcases be wasted in the +wilderness. + +14:34 After the number of the days in which ye searched the land, even +forty days, each day for a year, shall ye bear your iniquities, even +forty years, and ye shall know my breach of promise. + +14:35 I the LORD have said, I will surely do it unto all this evil +congregation, that are gathered together against me: in this +wilderness they shall be consumed, and there they shall die. + +14:36 And the men, which Moses sent to search the land, who returned, +and made all the congregation to murmur against him, by bringing up a +slander upon the land, 14:37 Even those men that did bring up the evil +report upon the land, died by the plague before the LORD. + +14:38 But Joshua the son of Nun, and Caleb the son of Jephunneh, which +were of the men that went to search the land, lived still. + +14:39 And Moses told these sayings unto all the children of Israel: +and the people mourned greatly. + +14:40 And they rose up early in the morning, and gat them up into the +top of the mountain, saying, Lo, we be here, and will go up unto the +place which the LORD hath promised: for we have sinned. + +14:41 And Moses said, Wherefore now do ye transgress the commandment +of the LORD? but it shall not prosper. + +14:42 Go not up, for the LORD is not among you; that ye be not smitten +before your enemies. + +14:43 For the Amalekites and the Canaanites are there before you, and +ye shall fall by the sword: because ye are turned away from the LORD, +therefore the LORD will not be with you. + +14:44 But they presumed to go up unto the hill top: nevertheless the +ark of the covenant of the LORD, and Moses, departed not out of the +camp. + +14:45 Then the Amalekites came down, and the Canaanites which dwelt in +that hill, and smote them, and discomfited them, even unto Hormah. + +15:1 And the LORD spake unto Moses, saying, 15:2 Speak unto the +children of Israel, and say unto them, When ye be come into the land +of your habitations, which I give unto you, 15:3 And will make an +offering by fire unto the LORD, a burnt offering, or a sacrifice in +performing a vow, or in a freewill offering, or in your solemn feasts, +to make a sweet savour unto the LORD, of the herd or of the flock: +15:4 Then shall he that offereth his offering unto the LORD bring a +meat offering of a tenth deal of flour mingled with the fourth part of +an hin of oil. + +15:5 And the fourth part of an hin of wine for a drink offering shalt +thou prepare with the burnt offering or sacrifice, for one lamb. + +15:6 Or for a ram, thou shalt prepare for a meat offering two tenth +deals of flour mingled with the third part of an hin of oil. + +15:7 And for a drink offering thou shalt offer the third part of an +hin of wine, for a sweet savour unto the LORD. + +15:8 And when thou preparest a bullock for a burnt offering, or for a +sacrifice in performing a vow, or peace offerings unto the LORD: 15:9 +Then shall he bring with a bullock a meat offering of three tenth +deals of flour mingled with half an hin of oil. + +15:10 And thou shalt bring for a drink offering half an hin of wine, +for an offering made by fire, of a sweet savour unto the LORD. + +15:11 Thus shall it be done for one bullock, or for one ram, or for a +lamb, or a kid. + +15:12 According to the number that ye shall prepare, so shall ye do to +every one according to their number. + +15:13 All that are born of the country shall do these things after +this manner, in offering an offering made by fire, of a sweet savour +unto the LORD. + +15:14 And if a stranger sojourn with you, or whosoever be among you in +your generations, and will offer an offering made by fire, of a sweet +savour unto the LORD; as ye do, so he shall do. + +15:15 One ordinance shall be both for you of the congregation, and +also for the stranger that sojourneth with you, an ordinance for ever +in your generations: as ye are, so shall the stranger be before the +LORD. + +15:16 One law and one manner shall be for you, and for the stranger +that sojourneth with you. + +15:17 And the LORD spake unto Moses, saying, 15:18 Speak unto the +children of Israel, and say unto them, When ye come into the land +whither I bring you, 15:19 Then it shall be, that, when ye eat of the +bread of the land, ye shall offer up an heave offering unto the LORD. + +15:20 Ye shall offer up a cake of the first of your dough for an heave +offering: as ye do the heave offering of the threshingfloor, so shall +ye heave it. + +15:21 Of the first of your dough ye shall give unto the LORD an heave +offering in your generations. + +15:22 And if ye have erred, and not observed all these commandments, +which the LORD hath spoken unto Moses, 15:23 Even all that the LORD +hath commanded you by the hand of Moses, from the day that the LORD +commanded Moses, and henceforward among your generations; 15:24 Then +it shall be, if ought be committed by ignorance without the knowledge +of the congregation, that all the congregation shall offer one young +bullock for a burnt offering, for a sweet savour unto the LORD, with +his meat offering, and his drink offering, according to the manner, +and one kid of the goats for a sin offering. + +15:25 And the priest shall make an atonement for all the congregation +of the children of Israel, and it shall be forgiven them; for it is +ignorance: and they shall bring their offering, a sacrifice made by +fire unto the LORD, and their sin offering before the LORD, for their +ignorance: 15:26 And it shall be forgiven all the congregation of the +children of Israel, and the stranger that sojourneth among them; +seeing all the people were in ignorance. + +15:27 And if any soul sin through ignorance, then he shall bring a she +goat of the first year for a sin offering. + +15:28 And the priest shall make an atonement for the soul that sinneth +ignorantly, when he sinneth by ignorance before the LORD, to make an +atonement for him; and it shall be forgiven him. + +15:29 Ye shall have one law for him that sinneth through ignorance, +both for him that is born among the children of Israel, and for the +stranger that sojourneth among them. + +15:30 But the soul that doeth ought presumptuously, whether he be born +in the land, or a stranger, the same reproacheth the LORD; and that +soul shall be cut off from among his people. + +15:31 Because he hath despised the word of the LORD, and hath broken +his commandment, that soul shall utterly be cut off; his iniquity +shall be upon him. + +15:32 And while the children of Israel were in the wilderness, they +found a man that gathered sticks upon the sabbath day. + +15:33 And they that found him gathering sticks brought him unto Moses +and Aaron, and unto all the congregation. + +15:34 And they put him in ward, because it was not declared what +should be done to him. + +15:35 And the LORD said unto Moses, The man shall be surely put to +death: all the congregation shall stone him with stones without the +camp. + +15:36 And all the congregation brought him without the camp, and +stoned him with stones, and he died; as the LORD commanded Moses. + +15:37 And the LORD spake unto Moses, saying, 15:38 Speak unto the +children of Israel, and bid them that they make them fringes in the +borders of their garments throughout their generations, and that they +put upon the fringe of the borders a ribband of blue: 15:39 And it +shall be unto you for a fringe, that ye may look upon it, and remember +all the commandments of the LORD, and do them; and that ye seek not +after your own heart and your own eyes, after which ye use to go a +whoring: 15:40 That ye may remember, and do all my commandments, and +be holy unto your God. + +15:41 I am the LORD your God, which brought you out of the land of +Egypt, to be your God: I am the LORD your God. + +16:1 Now Korah, the son of Izhar, the son of Kohath, the son of Levi, +and Dathan and Abiram, the sons of Eliab, and On, the son of Peleth, +sons of Reuben, took men: 16:2 And they rose up before Moses, with +certain of the children of Israel, two hundred and fifty princes of +the assembly, famous in the congregation, men of renown: 16:3 And they +gathered themselves together against Moses and against Aaron, and said +unto them, Ye take too much upon you, seeing all the congregation are +holy, every one of them, and the LORD is among them: wherefore then +lift ye up yourselves above the congregation of the LORD? 16:4 And +when Moses heard it, he fell upon his face: 16:5 And he spake unto +Korah and unto all his company, saying, Even to morrow the LORD will +shew who are his, and who is holy; and will cause him to come near +unto him: even him whom he hath chosen will he cause to come near unto +him. + +16:6 This do; Take you censers, Korah, and all his company; 16:7 And +put fire therein, and put incense in them before the LORD to morrow: +and it shall be that the man whom the LORD doth choose, he shall be +holy: ye take too much upon you, ye sons of Levi. + +16:8 And Moses said unto Korah, Hear, I pray you, ye sons of Levi: +16:9 Seemeth it but a small thing unto you, that the God of Israel +hath separated you from the congregation of Israel, to bring you near +to himself to do the service of the tabernacle of the LORD, and to +stand before the congregation to minister unto them? 16:10 And he +hath brought thee near to him, and all thy brethren the sons of Levi +with thee: and seek ye the priesthood also? 16:11 For which cause +both thou and all thy company are gathered together against the LORD: +and what is Aaron, that ye murmur against him? 16:12 And Moses sent +to call Dathan and Abiram, the sons of Eliab: which said, We will not +come up: 16:13 Is it a small thing that thou hast brought us up out of +a land that floweth with milk and honey, to kill us in the wilderness, +except thou make thyself altogether a prince over us? 16:14 Moreover +thou hast not brought us into a land that floweth with milk and honey, +or given us inheritance of fields and vineyards: wilt thou put out the +eyes of these men? we will not come up. + +16:15 And Moses was very wroth, and said unto the LORD, Respect not +thou their offering: I have not taken one ass from them, neither have +I hurt one of them. + +16:16 And Moses said unto Korah, Be thou and all thy company before +the LORD, thou, and they, and Aaron, to morrow: 16:17 And take every +man his censer, and put incense in them, and bring ye before the LORD +every man his censer, two hundred and fifty censers; thou also, and +Aaron, each of you his censer. + +16:18 And they took every man his censer, and put fire in them, and +laid incense thereon, and stood in the door of the tabernacle of the +congregation with Moses and Aaron. + +16:19 And Korah gathered all the congregation against them unto the +door of the tabernacle of the congregation: and the glory of the LORD +appeared unto all the congregation. + +16:20 And the LORD spake unto Moses and unto Aaron, saying, 16:21 +Separate yourselves from among this congregation, that I may consume +them in a moment. + +16:22 And they fell upon their faces, and said, O God, the God of the +spirits of all flesh, shall one man sin, and wilt thou be wroth with +all the congregation? 16:23 And the LORD spake unto Moses, saying, +16:24 Speak unto the congregation, saying, Get you up from about the +tabernacle of Korah, Dathan, and Abiram. + +16:25 And Moses rose up and went unto Dathan and Abiram; and the +elders of Israel followed him. + +16:26 And he spake unto the congregation, saying, Depart, I pray you, +from the tents of these wicked men, and touch nothing of their's, lest +ye be consumed in all their sins. + +16:27 So they gat up from the tabernacle of Korah, Dathan, and Abiram, +on every side: and Dathan and Abiram came out, and stood in the door +of their tents, and their wives, and their sons, and their little +children. + +16:28 And Moses said, Hereby ye shall know that the LORD hath sent me +to do all these works; for I have not done them of mine own mind. + +16:29 If these men die the common death of all men, or if they be +visited after the visitation of all men; then the LORD hath not sent +me. + +16:30 But if the LORD make a new thing, and the earth open her mouth, +and swallow them up, with all that appertain unto them, and they go +down quick into the pit; then ye shall understand that these men have +provoked the LORD. + +16:31 And it came to pass, as he had made an end of speaking all these +words, that the ground clave asunder that was under them: 16:32 And +the earth opened her mouth, and swallowed them up, and their houses, +and all the men that appertained unto Korah, and all their goods. + +16:33 They, and all that appertained to them, went down alive into the +pit, and the earth closed upon them: and they perished from among the +congregation. + +16:34 And all Israel that were round about them fled at the cry of +them: for they said, Lest the earth swallow us up also. + +16:35 And there came out a fire from the LORD, and consumed the two +hundred and fifty men that offered incense. + +16:36 And the LORD spake unto Moses, saying, 16:37 Speak unto Eleazar +the son of Aaron the priest, that he take up the censers out of the +burning, and scatter thou the fire yonder; for they are hallowed. + +16:38 The censers of these sinners against their own souls, let them +make them broad plates for a covering of the altar: for they offered +them before the LORD, therefore they are hallowed: and they shall be a +sign unto the children of Israel. + +16:39 And Eleazar the priest took the brasen censers, wherewith they +that were burnt had offered; and they were made broad plates for a +covering of the altar: 16:40 To be a memorial unto the children of +Israel, that no stranger, which is not of the seed of Aaron, come near +to offer incense before the LORD; that he be not as Korah, and as his +company: as the LORD said to him by the hand of Moses. + +16:41 But on the morrow all the congregation of the children of Israel +murmured against Moses and against Aaron, saying, Ye have killed the +people of the LORD. + +16:42 And it came to pass, when the congregation was gathered against +Moses and against Aaron, that they looked toward the tabernacle of the +congregation: and, behold, the cloud covered it, and the glory of the +LORD appeared. + +16:43 And Moses and Aaron came before the tabernacle of the +congregation. + +16:44 And the LORD spake unto Moses, saying, 16:45 Get you up from +among this congregation, that I may consume them as in a moment. And +they fell upon their faces. + +16:46 And Moses said unto Aaron, Take a censer, and put fire therein +from off the altar, and put on incense, and go quickly unto the +congregation, and make an atonement for them: for there is wrath gone +out from the LORD; the plague is begun. + +16:47 And Aaron took as Moses commanded, and ran into the midst of the +congregation; and, behold, the plague was begun among the people: and +he put on incense, and made an atonement for the people. + +16:48 And he stood between the dead and the living; and the plague was +stayed. + +16:49 Now they that died in the plague were fourteen thousand and +seven hundred, beside them that died about the matter of Korah. + +16:50 And Aaron returned unto Moses unto the door of the tabernacle of +the congregation: and the plague was stayed. + +17:1 And the LORD spake unto Moses, saying, 17:2 Speak unto the +children of Israel, and take of every one of them a rod according to +the house of their fathers, of all their princes according to the +house of their fathers twelve rods: write thou every man's name upon +his rod. + +17:3 And thou shalt write Aaron's name upon the rod of Levi: for one +rod shall be for the head of the house of their fathers. + +17:4 And thou shalt lay them up in the tabernacle of the congregation +before the testimony, where I will meet with you. + +17:5 And it shall come to pass, that the man's rod, whom I shall +choose, shall blossom: and I will make to cease from me the murmurings +of the children of Israel, whereby they murmur against you. + +17:6 And Moses spake unto the children of Israel, and every one of +their princes gave him a rod apiece, for each prince one, according to +their fathers' houses, even twelve rods: and the rod of Aaron was +among their rods. + +17:7 And Moses laid up the rods before the LORD in the tabernacle of +witness. + +17:8 And it came to pass, that on the morrow Moses went into the +tabernacle of witness; and, behold, the rod of Aaron for the house of +Levi was budded, and brought forth buds, and bloomed blossoms, and +yielded almonds. + +17:9 And Moses brought out all the rods from before the LORD unto all +the children of Israel: and they looked, and took every man his rod. + +17:10 And the LORD said unto Moses, Bring Aaron's rod again before the +testimony, to be kept for a token against the rebels; and thou shalt +quite take away their murmurings from me, that they die not. + +17:11 And Moses did so: as the LORD commanded him, so did he. + +17:12 And the children of Israel spake unto Moses, saying, Behold, we +die, we perish, we all perish. + +17:13 Whosoever cometh any thing near unto the tabernacle of the LORD +shall die: shall we be consumed with dying? 18:1 And the LORD said +unto Aaron, Thou and thy sons and thy father's house with thee shall +bear the iniquity of the sanctuary: and thou and thy sons with thee +shall bear the iniquity of your priesthood. + +18:2 And thy brethren also of the tribe of Levi, the tribe of thy +father, bring thou with thee, that they may be joined unto thee, and +minister unto thee: but thou and thy sons with thee shall minister +before the tabernacle of witness. + +18:3 And they shall keep thy charge, and the charge of all the +tabernacle: only they shall not come nigh the vessels of the sanctuary +and the altar, that neither they, nor ye also, die. + +18:4 And they shall be joined unto thee, and keep the charge of the +tabernacle of the congregation, for all the service of the tabernacle: +and a stranger shall not come nigh unto you. + +18:5 And ye shall keep the charge of the sanctuary, and the charge of +the altar: that there be no wrath any more upon the children of +Israel. + +18:6 And I, behold, I have taken your brethren the Levites from among +the children of Israel: to you they are given as a gift for the LORD, +to do the service of the tabernacle of the congregation. + +18:7 Therefore thou and thy sons with thee shall keep your priest's +office for everything of the altar, and within the vail; and ye shall +serve: I have given your priest's office unto you as a service of +gift: and the stranger that cometh nigh shall be put to death. + +18:8 And the LORD spake unto Aaron, Behold, I also have given thee the +charge of mine heave offerings of all the hallowed things of the +children of Israel; unto thee have I given them by reason of the +anointing, and to thy sons, by an ordinance for ever. + +18:9 This shall be thine of the most holy things, reserved from the +fire: every oblation of theirs, every meat offering of theirs, and +every sin offering of theirs, and every trespass offering of theirs +which they shall render unto me, shall be most holy for thee and for +thy sons. + +18:10 In the most holy place shalt thou eat it; every male shall eat +it: it shall be holy unto thee. + +18:11 And this is thine; the heave offering of their gift, with all +the wave offerings of the children of Israel: I have given them unto +thee, and to thy sons and to thy daughters with thee, by a statute for +ever: every one that is clean in thy house shall eat of it. + +18:12 All the best of the oil, and all the best of the wine, and of +the wheat, the firstfruits of them which they shall offer unto the +LORD, them have I given thee. + +18:13 And whatsoever is first ripe in the land, which they shall bring +unto the LORD, shall be thine; every one that is clean in thine house +shall eat of it. + +18:14 Every thing devoted in Israel shall be thine. + +18:15 Every thing that openeth the matrix in all flesh, which they +bring unto the LORD, whether it be of men or beasts, shall be thine: +nevertheless the firstborn of man shalt thou surely redeem, and the +firstling of unclean beasts shalt thou redeem. + +18:16 And those that are to be redeemed from a month old shalt thou +redeem, according to thine estimation, for the money of five shekels, +after the shekel of the sanctuary, which is twenty gerahs. + +18:17 But the firstling of a cow, or the firstling of a sheep, or the +firstling of a goat, thou shalt not redeem; they are holy: thou shalt +sprinkle their blood upon the altar, and shalt burn their fat for an +offering made by fire, for a sweet savour unto the LORD. + +18:18 And the flesh of them shall be thine, as the wave breast and as +the right shoulder are thine. + +18:19 All the heave offerings of the holy things, which the children +of Israel offer unto the LORD, have I given thee, and thy sons and thy +daughters with thee, by a statute for ever: it is a covenant of salt +for ever before the LORD unto thee and to thy seed with thee. + +18:20 And the LORD spake unto Aaron, Thou shalt have no inheritance in +their land, neither shalt thou have any part among them: I am thy part +and thine inheritance among the children of Israel. + +18:21 And, behold, I have given the children of Levi all the tenth in +Israel for an inheritance, for their service which they serve, even +the service of the tabernacle of the congregation. + +18:22 Neither must the children of Israel henceforth come nigh the +tabernacle of the congregation, lest they bear sin, and die. + +18:23 But the Levites shall do the service of the tabernacle of the +congregation, and they shall bear their iniquity: it shall be a +statute for ever throughout your generations, that among the children +of Israel they have no inheritance. + +18:24 But the tithes of the children of Israel, which they offer as an +heave offering unto the LORD, I have given to the Levites to inherit: +therefore I have said unto them, Among the children of Israel they +shall have no inheritance. + +18:25 And the LORD spake unto Moses, saying, 18:26 Thus speak unto the +Levites, and say unto them, When ye take of the children of Israel the +tithes which I have given you from them for your inheritance, then ye +shall offer up an heave offering of it for the LORD, even a tenth part +of the tithe. + +18:27 And this your heave offering shall be reckoned unto you, as +though it were the corn of the threshingfloor, and as the fulness of +the winepress. + +18:28 Thus ye also shall offer an heave offering unto the LORD of all +your tithes, which ye receive of the children of Israel; and ye shall +give thereof the LORD's heave offering to Aaron the priest. + +18:29 Out of all your gifts ye shall offer every heave offering of the +LORD, of all the best thereof, even the hallowed part thereof out of +it. + +18:30 Therefore thou shalt say unto them, When ye have heaved the best +thereof from it, then it shall be counted unto the Levites as the +increase of the threshingfloor, and as the increase of the winepress. + +18:31 And ye shall eat it in every place, ye and your households: for +it is your reward for your service in the tabernacle of the +congregation. + +18:32 And ye shall bear no sin by reason of it, when ye have heaved +from it the best of it: neither shall ye pollute the holy things of +the children of Israel, lest ye die. + +19:1 And the LORD spake unto Moses and unto Aaron, saying, 19:2 This +is the ordinance of the law which the LORD hath commanded, saying, +Speak unto the children of Israel, that they bring thee a red heifer +without spot, wherein is no blemish, and upon which never came yoke: +19:3 And ye shall give her unto Eleazar the priest, that he may bring +her forth without the camp, and one shall slay her before his face: +19:4 And Eleazar the priest shall take of her blood with his finger, +and sprinkle of her blood directly before the tabernacle of the +congregation seven times: 19:5 And one shall burn the heifer in his +sight; her skin, and her flesh, and her blood, with her dung, shall he +burn: 19:6 And the priest shall take cedar wood, and hyssop, and +scarlet, and cast it into the midst of the burning of the heifer. + +19:7 Then the priest shall wash his clothes, and he shall bathe his +flesh in water, and afterward he shall come into the camp, and the +priest shall be unclean until the even. + +19:8 And he that burneth her shall wash his clothes in water, and +bathe his flesh in water, and shall be unclean until the even. + +19:9 And a man that is clean shall gather up the ashes of the heifer, +and lay them up without the camp in a clean place, and it shall be +kept for the congregation of the children of Israel for a water of +separation: it is a purification for sin. + +19:10 And he that gathereth the ashes of the heifer shall wash his +clothes, and be unclean until the even: and it shall be unto the +children of Israel, and unto the stranger that sojourneth among them, +for a statute for ever. + +19:11 He that toucheth the dead body of any man shall be unclean seven +days. + +19:12 He shall purify himself with it on the third day, and on the +seventh day he shall be clean: but if he purify not himself the third +day, then the seventh day he shall not be clean. + +19:13 Whosoever toucheth the dead body of any man that is dead, and +purifieth not himself, defileth the tabernacle of the LORD; and that +soul shall be cut off from Israel: because the water of separation was +not sprinkled upon him, he shall be unclean; his uncleanness is yet +upon him. + +19:14 This is the law, when a man dieth in a tent: all that come into +the tent, and all that is in the tent, shall be unclean seven days. + +19:15 And every open vessel, which hath no covering bound upon it, is +unclean. + +19:16 And whosoever toucheth one that is slain with a sword in the +open fields, or a dead body, or a bone of a man, or a grave, shall be +unclean seven days. + +19:17 And for an unclean person they shall take of the ashes of the +burnt heifer of purification for sin, and running water shall be put +thereto in a vessel: 19:18 And a clean person shall take hyssop, and +dip it in the water, and sprinkle it upon the tent, and upon all the +vessels, and upon the persons that were there, and upon him that +touched a bone, or one slain, or one dead, or a grave: 19:19 And the +clean person shall sprinkle upon the unclean on the third day, and on +the seventh day: and on the seventh day he shall purify himself, and +wash his clothes, and bathe himself in water, and shall be clean at +even. + +19:20 But the man that shall be unclean, and shall not purify himself, +that soul shall be cut off from among the congregation, because he +hath defiled the sanctuary of the LORD: the water of separation hath +not been sprinkled upon him; he is unclean. + +19:21 And it shall be a perpetual statute unto them, that he that +sprinkleth the water of separation shall wash his clothes; and he that +toucheth the water of separation shall be unclean until even. + +19:22 And whatsoever the unclean person toucheth shall be unclean; and +the soul that toucheth it shall be unclean until even. + +20:1 Then came the children of Israel, even the whole congregation, +into the desert of Zin in the first month: and the people abode in +Kadesh; and Miriam died there, and was buried there. + +20:2 And there was no water for the congregation: and they gathered +themselves together against Moses and against Aaron. + +20:3 And the people chode with Moses, and spake, saying, Would God +that we had died when our brethren died before the LORD! 20:4 And why +have ye brought up the congregation of the LORD into this wilderness, +that we and our cattle should die there? 20:5 And wherefore have ye +made us to come up out of Egypt, to bring us in unto this evil place? +it is no place of seed, or of figs, or of vines, or of pomegranates; +neither is there any water to drink. + +20:6 And Moses and Aaron went from the presence of the assembly unto +the door of the tabernacle of the congregation, and they fell upon +their faces: and the glory of the LORD appeared unto them. + +20:7 And the LORD spake unto Moses, saying, 20:8 Take the rod, and +gather thou the assembly together, thou, and Aaron thy brother, and +speak ye unto the rock before their eyes; and it shall give forth his +water, and thou shalt bring forth to them water out of the rock: so +thou shalt give the congregation and their beasts drink. + +20:9 And Moses took the rod from before the LORD, as he commanded him. + +20:10 And Moses and Aaron gathered the congregation together before +the rock, and he said unto them, Hear now, ye rebels; must we fetch +you water out of this rock? 20:11 And Moses lifted up his hand, and +with his rod he smote the rock twice: and the water came out +abundantly, and the congregation drank, and their beasts also. + +20:12 And the LORD spake unto Moses and Aaron, Because ye believed me +not, to sanctify me in the eyes of the children of Israel, therefore +ye shall not bring this congregation into the land which I have given +them. + +20:13 This is the water of Meribah; because the children of Israel +strove with the LORD, and he was sanctified in them. + +20:14 And Moses sent messengers from Kadesh unto the king of Edom, +Thus saith thy brother Israel, Thou knowest all the travail that hath +befallen us: 20:15 How our fathers went down into Egypt, and we have +dwelt in Egypt a long time; and the Egyptians vexed us, and our +fathers: 20:16 And when we cried unto the LORD, he heard our voice, +and sent an angel, and hath brought us forth out of Egypt: and, +behold, we are in Kadesh, a city in the uttermost of thy border: 20:17 +Let us pass, I pray thee, through thy country: we will not pass +through the fields, or through the vineyards, neither will we drink of +the water of the wells: we will go by the king's high way, we will not +turn to the right hand nor to the left, until we have passed thy +borders. + +20:18 And Edom said unto him, Thou shalt not pass by me, lest I come +out against thee with the sword. + +20:19 And the children of Israel said unto him, We will go by the high +way: and if I and my cattle drink of thy water, then I will pay for +it: I will only, without doing anything else, go through on my feet. + +20:20 And he said, Thou shalt not go through. And Edom came out +against him with much people, and with a strong hand. + +20:21 Thus Edom refused to give Israel passage through his border: +wherefore Israel turned away from him. + +20:22 And the children of Israel, even the whole congregation, +journeyed from Kadesh, and came unto mount Hor. + +20:23 And the LORD spake unto Moses and Aaron in mount Hor, by the +coast of the land of Edom, saying, 20:24 Aaron shall be gathered unto +his people: for he shall not enter into the land which I have given +unto the children of Israel, because ye rebelled against my word at +the water of Meribah. + +20:25 Take Aaron and Eleazar his son, and bring them up unto mount +Hor: 20:26 And strip Aaron of his garments, and put them upon Eleazar +his son: and Aaron shall be gathered unto his people, and shall die +there. + +20:27 And Moses did as the LORD commanded: and they went up into mount +Hor in the sight of all the congregation. + +20:28 And Moses stripped Aaron of his garments, and put them upon +Eleazar his son; and Aaron died there in the top of the mount: and +Moses and Eleazar came down from the mount. + +20:29 And when all the congregation saw that Aaron was dead, they +mourned for Aaron thirty days, even all the house of Israel. + +21:1 And when king Arad the Canaanite, which dwelt in the south, heard +tell that Israel came by the way of the spies; then he fought against +Israel, and took some of them prisoners. + +21:2 And Israel vowed a vow unto the LORD, and said, If thou wilt +indeed deliver this people into my hand, then I will utterly destroy +their cities. + +21:3 And the LORD hearkened to the voice of Israel, and delivered up +the Canaanites; and they utterly destroyed them and their cities: and +he called the name of the place Hormah. + +21:4 And they journeyed from mount Hor by the way of the Red sea, to +compass the land of Edom: and the soul of the people was much +discouraged because of the way. + +21:5 And the people spake against God, and against Moses, Wherefore +have ye brought us up out of Egypt to die in the wilderness? for there +is no bread, neither is there any water; and our soul loatheth this +light bread. + +21:6 And the LORD sent fiery serpents among the people, and they bit +the people; and much people of Israel died. + +21:7 Therefore the people came to Moses, and said, We have sinned, for +we have spoken against the LORD, and against thee; pray unto the LORD, +that he take away the serpents from us. And Moses prayed for the +people. + +21:8 And the LORD said unto Moses, Make thee a fiery serpent, and set +it upon a pole: and it shall come to pass, that every one that is +bitten, when he looketh upon it, shall live. + +21:9 And Moses made a serpent of brass, and put it upon a pole, and it +came to pass, that if a serpent had bitten any man, when he beheld the +serpent of brass, he lived. + +21:10 And the children of Israel set forward, and pitched in Oboth. + +21:11 And they journeyed from Oboth, and pitched at Ijeabarim, in the +wilderness which is before Moab, toward the sunrising. + +21:12 From thence they removed, and pitched in the valley of Zared. + +21:13 From thence they removed, and pitched on the other side of +Arnon, which is in the wilderness that cometh out of the coasts of the +Amorites: for Arnon is the border of Moab, between Moab and the +Amorites. + +21:14 Wherefore it is said in the book of the wars of the LORD, What +he did in the Red sea, and in the brooks of Arnon, 21:15 And at the +stream of the brooks that goeth down to the dwelling of Ar, and lieth +upon the border of Moab. + +21:16 And from thence they went to Beer: that is the well whereof the +LORD spake unto Moses, Gather the people together, and I will give +them water. + +21:17 Then Israel sang this song, Spring up, O well; sing ye unto it: +21:18 The princes digged the well, the nobles of the people digged it, +by the direction of the lawgiver, with their staves. And from the +wilderness they went to Mattanah: 21:19 And from Mattanah to Nahaliel: +and from Nahaliel to Bamoth: 21:20 And from Bamoth in the valley, that +is in the country of Moab, to the top of Pisgah, which looketh toward +Jeshimon. + +21:21 And Israel sent messengers unto Sihon king of the Amorites, +saying, 21:22 Let me pass through thy land: we will not turn into the +fields, or into the vineyards; we will not drink of the waters of the +well: but we will go along by the king's high way, until we be past +thy borders. + +21:23 And Sihon would not suffer Israel to pass through his border: +but Sihon gathered all his people together, and went out against +Israel into the wilderness: and he came to Jahaz, and fought against +Israel. + +21:24 And Israel smote him with the edge of the sword, and possessed +his land from Arnon unto Jabbok, even unto the children of Ammon: for +the border of the children of Ammon was strong. + +21:25 And Israel took all these cities: and Israel dwelt in all the +cities of the Amorites, in Heshbon, and in all the villages thereof. + +21:26 For Heshbon was the city of Sihon the king of the Amorites, who +had fought against the former king of Moab, and taken all his land out +of his hand, even unto Arnon. + +21:27 Wherefore they that speak in proverbs say, Come into Heshbon, +let the city of Sihon be built and prepared: 21:28 For there is a fire +gone out of Heshbon, a flame from the city of Sihon: it hath consumed +Ar of Moab, and the lords of the high places of Arnon. + +21:29 Woe to thee, Moab! thou art undone, O people of Chemosh: he hath +given his sons that escaped, and his daughters, into captivity unto +Sihon king of the Amorites. + +21:30 We have shot at them; Heshbon is perished even unto Dibon, and +we have laid them waste even unto Nophah, which reacheth unto Medeba. + +21:31 Thus Israel dwelt in the land of the Amorites. + +21:32 And Moses sent to spy out Jaazer, and they took the villages +thereof, and drove out the Amorites that were there. + +21:33 And they turned and went up by the way of Bashan: and Og the +king of Bashan went out against them, he, and all his people, to the +battle at Edrei. + +21:34 And the LORD said unto Moses, Fear him not: for I have delivered +him into thy hand, and all his people, and his land; and thou shalt do +to him as thou didst unto Sihon king of the Amorites, which dwelt at +Heshbon. + +21:35 So they smote him, and his sons, and all his people, until there +was none left him alive: and they possessed his land. + +22:1 And the children of Israel set forward, and pitched in the plains +of Moab on this side Jordan by Jericho. + +22:2 And Balak the son of Zippor saw all that Israel had done to the +Amorites. + +22:3 And Moab was sore afraid of the people, because they were many: +and Moab was distressed because of the children of Israel. + +22:4 And Moab said unto the elders of Midian, Now shall this company +lick up all that are round about us, as the ox licketh up the grass of +the field. + +And Balak the son of Zippor was king of the Moabites at that time. + +22:5 He sent messengers therefore unto Balaam the son of Beor to +Pethor, which is by the river of the land of the children of his +people, to call him, saying, Behold, there is a people come out from +Egypt: behold, they cover the face of the earth, and they abide over +against me: 22:6 Come now therefore, I pray thee, curse me this +people; for they are too mighty for me: peradventure I shall prevail, +that we may smite them, and that I may drive them out of the land: for +I wot that he whom thou blessest is blessed, and he whom thou cursest +is cursed. + +22:7 And the elders of Moab and the elders of Midian departed with the +rewards of divination in their hand; and they came unto Balaam, and +spake unto him the words of Balak. + +22:8 And he said unto them, Lodge here this night, and I will bring +you word again, as the LORD shall speak unto me: and the princes of +Moab abode with Balaam. + +22:9 And God came unto Balaam, and said, What men are these with thee? +22:10 And Balaam said unto God, Balak the son of Zippor, king of Moab, +hath sent unto me, saying, 22:11 Behold, there is a people come out of +Egypt, which covereth the face of the earth: come now, curse me them; +peradventure I shall be able to overcome them, and drive them out. + +22:12 And God said unto Balaam, Thou shalt not go with them; thou +shalt not curse the people: for they are blessed. + +22:13 And Balaam rose up in the morning, and said unto the princes of +Balak, Get you into your land: for the LORD refuseth to give me leave +to go with you. + +22:14 And the princes of Moab rose up, and they went unto Balak, and +said, Balaam refuseth to come with us. + +22:15 And Balak sent yet again princes, more, and more honourable than +they. + +22:16 And they came to Balaam, and said to him, Thus saith Balak the +son of Zippor, Let nothing, I pray thee, hinder thee from coming unto +me: 22:17 For I will promote thee unto very great honour, and I will +do whatsoever thou sayest unto me: come therefore, I pray thee, curse +me this people. + +22:18 And Balaam answered and said unto the servants of Balak, If +Balak would give me his house full of silver and gold, I cannot go +beyond the word of the LORD my God, to do less or more. + +22:19 Now therefore, I pray you, tarry ye also here this night, that I +may know what the LORD will say unto me more. + +22:20 And God came unto Balaam at night, and said unto him, If the men +come to call thee, rise up, and go with them; but yet the word which I +shall say unto thee, that shalt thou do. + +22:21 And Balaam rose up in the morning, and saddled his ass, and went +with the princes of Moab. + +22:22 And God's anger was kindled because he went: and the angel of +the LORD stood in the way for an adversary against him. Now he was +riding upon his ass, and his two servants were with him. + +22:23 And the ass saw the angel of the LORD standing in the way, and +his sword drawn in his hand: and the ass turned aside out of the way, +and went into the field: and Balaam smote the ass, to turn her into +the way. + +22:24 But the angel of the LORD stood in a path of the vineyards, a +wall being on this side, and a wall on that side. + +22:25 And when the ass saw the angel of the LORD, she thrust herself +unto the wall, and crushed Balaam's foot against the wall: and he +smote her again. + +22:26 And the angel of the LORD went further, and stood in a narrow +place, where was no way to turn either to the right hand or to the +left. + +22:27 And when the ass saw the angel of the LORD, she fell down under +Balaam: and Balaam's anger was kindled, and he smote the ass with a +staff. + +22:28 And the LORD opened the mouth of the ass, and she said unto +Balaam, What have I done unto thee, that thou hast smitten me these +three times? 22:29 And Balaam said unto the ass, Because thou hast +mocked me: I would there were a sword in mine hand, for now would I +kill thee. + +22:30 And the ass said unto Balaam, Am not I thine ass, upon which +thou hast ridden ever since I was thine unto this day? was I ever wont +to do so unto thee? And he said, Nay. + +22:31 Then the LORD opened the eyes of Balaam, and he saw the angel of +the LORD standing in the way, and his sword drawn in his hand: and he +bowed down his head, and fell flat on his face. + +22:32 And the angel of the LORD said unto him, Wherefore hast thou +smitten thine ass these three times? behold, I went out to withstand +thee, because thy way is perverse before me: 22:33 And the ass saw me, +and turned from me these three times: unless she had turned from me, +surely now also I had slain thee, and saved her alive. + +22:34 And Balaam said unto the angel of the LORD, I have sinned; for I +knew not that thou stoodest in the way against me: now therefore, if +it displease thee, I will get me back again. + +22:35 And the angel of the LORD said unto Balaam, Go with the men: but +only the word that I shall speak unto thee, that thou shalt speak. So +Balaam went with the princes of Balak. + +22:36 And when Balak heard that Balaam was come, he went out to meet +him unto a city of Moab, which is in the border of Arnon, which is in +the utmost coast. + +22:37 And Balak said unto Balaam, Did I not earnestly send unto thee +to call thee? wherefore camest thou not unto me? am I not able indeed +to promote thee to honour? 22:38 And Balaam said unto Balak, Lo, I am +come unto thee: have I now any power at all to say any thing? the word +that God putteth in my mouth, that shall I speak. + +22:39 And Balaam went with Balak, and they came unto Kirjathhuzoth. + +22:40 And Balak offered oxen and sheep, and sent to Balaam, and to the +princes that were with him. + +22:41 And it came to pass on the morrow, that Balak took Balaam, and +brought him up into the high places of Baal, that thence he might see +the utmost part of the people. + +23:1 And Balaam said unto Balak, Build me here seven altars, and +prepare me here seven oxen and seven rams. + +23:2 And Balak did as Balaam had spoken; and Balak and Balaam offered +on every altar a bullock and a ram. + +23:3 And Balaam said unto Balak, Stand by thy burnt offering, and I +will go: peradventure the LORD will come to meet me: and whatsoever he +sheweth me I will tell thee. And he went to an high place. + +23:4 And God met Balaam: and he said unto him, I have prepared seven +altars, and I have offered upon every altar a bullock and a ram. + +23:5 And the LORD put a word in Balaam's mouth, and said, Return unto +Balak, and thus thou shalt speak. + +23:6 And he returned unto him, and, lo, he stood by his burnt +sacrifice, he, and all the princes of Moab. + +23:7 And he took up his parable, and said, Balak the king of Moab hath +brought me from Aram, out of the mountains of the east, saying, Come, +curse me Jacob, and come, defy Israel. + +23:8 How shall I curse, whom God hath not cursed? or how shall I defy, +whom the LORD hath not defied? 23:9 For from the top of the rocks I +see him, and from the hills I behold him: lo, the people shall dwell +alone, and shall not be reckoned among the nations. + +23:10 Who can count the dust of Jacob, and the number of the fourth +part of Israel? Let me die the death of the righteous, and let my last +end be like his! 23:11 And Balak said unto Balaam, What hast thou +done unto me? I took thee to curse mine enemies, and, behold, thou +hast blessed them altogether. + +23:12 And he answered and said, Must I not take heed to speak that +which the LORD hath put in my mouth? 23:13 And Balak said unto him, +Come, I pray thee, with me unto another place, from whence thou mayest +see them: thou shalt see but the utmost part of them, and shalt not +see them all: and curse me them from thence. + +23:14 And he brought him into the field of Zophim, to the top of +Pisgah, and built seven altars, and offered a bullock and a ram on +every altar. + +23:15 And he said unto Balak, Stand here by thy burnt offering, while +I meet the LORD yonder. + +23:16 And the LORD met Balaam, and put a word in his mouth, and said, +Go again unto Balak, and say thus. + +23:17 And when he came to him, behold, he stood by his burnt offering, +and the princes of Moab with him. And Balak said unto him, What hath +the LORD spoken? 23:18 And he took up his parable, and said, Rise up, +Balak, and hear; hearken unto me, thou son of Zippor: 23:19 God is not +a man, that he should lie; neither the son of man, that he should +repent: hath he said, and shall he not do it? or hath he spoken, and +shall he not make it good? 23:20 Behold, I have received commandment +to bless: and he hath blessed; and I cannot reverse it. + +23:21 He hath not beheld iniquity in Jacob, neither hath he seen +perverseness in Israel: the LORD his God is with him, and the shout of +a king is among them. + +23:22 God brought them out of Egypt; he hath as it were the strength +of an unicorn. + +23:23 Surely there is no enchantment against Jacob, neither is there +any divination against Israel: according to this time it shall be said +of Jacob and of Israel, What hath God wrought! 23:24 Behold, the +people shall rise up as a great lion, and lift up himself as a young +lion: he shall not lie down until he eat of the prey, and drink the +blood of the slain. + +23:25 And Balak said unto Balaam, Neither curse them at all, nor bless +them at all. + +23:26 But Balaam answered and said unto Balak, Told not I thee, +saying, All that the LORD speaketh, that I must do? 23:27 And Balak +said unto Balaam, Come, I pray thee, I will bring thee unto another +place; peradventure it will please God that thou mayest curse me them +from thence. + +23:28 And Balak brought Balaam unto the top of Peor, that looketh +toward Jeshimon. + +23:29 And Balaam said unto Balak, Build me here seven altars, and +prepare me here seven bullocks and seven rams. + +23:30 And Balak did as Balaam had said, and offered a bullock and a +ram on every altar. + +24:1 And when Balaam saw that it pleased the LORD to bless Israel, he +went not, as at other times, to seek for enchantments, but he set his +face toward the wilderness. + +24:2 And Balaam lifted up his eyes, and he saw Israel abiding in his +tents according to their tribes; and the spirit of God came upon him. + +24:3 And he took up his parable, and said, Balaam the son of Beor hath +said, and the man whose eyes are open hath said: 24:4 He hath said, +which heard the words of God, which saw the vision of the Almighty, +falling into a trance, but having his eyes open: 24:5 How goodly are +thy tents, O Jacob, and thy tabernacles, O Israel! 24:6 As the +valleys are they spread forth, as gardens by the river's side, as the +trees of lign aloes which the LORD hath planted, and as cedar trees +beside the waters. + +24:7 He shall pour the water out of his buckets, and his seed shall be +in many waters, and his king shall be higher than Agag, and his +kingdom shall be exalted. + +24:8 God brought him forth out of Egypt; he hath as it were the +strength of an unicorn: he shall eat up the nations his enemies, and +shall break their bones, and pierce them through with his arrows. + +24:9 He couched, he lay down as a lion, and as a great lion: who shall +stir him up? Blessed is he that blesseth thee, and cursed is he that +curseth thee. + +24:10 And Balak's anger was kindled against Balaam, and he smote his +hands together: and Balak said unto Balaam, I called thee to curse +mine enemies, and, behold, thou hast altogether blessed them these +three times. + +24:11 Therefore now flee thou to thy place: I thought to promote thee +unto great honour; but, lo, the LORD hath kept thee back from honour. + +24:12 And Balaam said unto Balak, Spake I not also to thy messengers +which thou sentest unto me, saying, 24:13 If Balak would give me his +house full of silver and gold, I cannot go beyond the commandment of +the LORD, to do either good or bad of mine own mind; but what the LORD +saith, that will I speak? 24:14 And now, behold, I go unto my people: +come therefore, and I will advertise thee what this people shall do to +thy people in the latter days. + +24:15 And he took up his parable, and said, Balaam the son of Beor +hath said, and the man whose eyes are open hath said: 24:16 He hath +said, which heard the words of God, and knew the knowledge of the most +High, which saw the vision of the Almighty, falling into a trance, but +having his eyes open: 24:17 I shall see him, but not now: I shall +behold him, but not nigh: there shall come a Star out of Jacob, and a +Sceptre shall rise out of Israel, and shall smite the corners of Moab, +and destroy all the children of Sheth. + +24:18 And Edom shall be a possession, Seir also shall be a possession +for his enemies; and Israel shall do valiantly. + +24:19 Out of Jacob shall come he that shall have dominion, and shall +destroy him that remaineth of the city. + +24:20 And when he looked on Amalek, he took up his parable, and said, +Amalek was the first of the nations; but his latter end shall be that +he perish for ever. + +24:21 And he looked on the Kenites, and took up his parable, and said, +Strong is thy dwellingplace, and thou puttest thy nest in a rock. + +24:22 Nevertheless the Kenite shall be wasted, until Asshur shall +carry thee away captive. + +24:23 And he took up his parable, and said, Alas, who shall live when +God doeth this! 24:24 And ships shall come from the coast of Chittim, +and shall afflict Asshur, and shall afflict Eber, and he also shall +perish for ever. + +24:25 And Balaam rose up, and went and returned to his place: and +Balak also went his way. + +25:1 And Israel abode in Shittim, and the people began to commit +whoredom with the daughters of Moab. + +25:2 And they called the people unto the sacrifices of their gods: and +the people did eat, and bowed down to their gods. + +25:3 And Israel joined himself unto Baalpeor: and the anger of the +LORD was kindled against Israel. + +25:4 And the LORD said unto Moses, Take all the heads of the people, +and hang them up before the LORD against the sun, that the fierce +anger of the LORD may be turned away from Israel. + +25:5 And Moses said unto the judges of Israel, Slay ye every one his +men that were joined unto Baalpeor. + +25:6 And, behold, one of the children of Israel came and brought unto +his brethren a Midianitish woman in the sight of Moses, and in the +sight of all the congregation of the children of Israel, who were +weeping before the door of the tabernacle of the congregation. + +25:7 And when Phinehas, the son of Eleazar, the son of Aaron the +priest, saw it, he rose up from among the congregation, and took a +javelin in his hand; 25:8 And he went after the man of Israel into the +tent, and thrust both of them through, the man of Israel, and the +woman through her belly. So the plague was stayed from the children of +Israel. + +25:9 And those that died in the plague were twenty and four thousand. + +25:10 And the LORD spake unto Moses, saying, 25:11 Phinehas, the son +of Eleazar, the son of Aaron the priest, hath turned my wrath away +from the children of Israel, while he was zealous for my sake among +them, that I consumed not the children of Israel in my jealousy. + +25:12 Wherefore say, Behold, I give unto him my covenant of peace: +25:13 And he shall have it, and his seed after him, even the covenant +of an everlasting priesthood; because he was zealous for his God, and +made an atonement for the children of Israel. + +25:14 Now the name of the Israelite that was slain, even that was +slain with the Midianitish woman, was Zimri, the son of Salu, a prince +of a chief house among the Simeonites. + +25:15 And the name of the Midianitish woman that was slain was Cozbi, +the daughter of Zur; he was head over a people, and of a chief house +in Midian. + +25:16 And the LORD spake unto Moses, saying, 25:17 Vex the Midianites, +and smite them: 25:18 For they vex you with their wiles, wherewith +they have beguiled you in the matter of Peor, and in the matter of +Cozbi, the daughter of a prince of Midian, their sister, which was +slain in the day of the plague for Peor's sake. + +26:1 And it came to pass after the plague, that the LORD spake unto +Moses and unto Eleazar the son of Aaron the priest, saying, 26:2 Take +the sum of all the congregation of the children of Israel, from twenty +years old and upward, throughout their fathers' house, all that are +able to go to war in Israel. + +26:3 And Moses and Eleazar the priest spake with them in the plains of +Moab by Jordan near Jericho, saying, 26:4 Take the sum of the people, +from twenty years old and upward; as the LORD commanded Moses and the +children of Israel, which went forth out of the land of Egypt. + +26:5 Reuben, the eldest son of Israel: the children of Reuben; Hanoch, +of whom cometh the family of the Hanochites: of Pallu, the family of +the Palluites: 26:6 Of Hezron, the family of the Hezronites: of Carmi, +the family of the Carmites. + +26:7 These are the families of the Reubenites: and they that were +numbered of them were forty and three thousand and seven hundred and +thirty. + +26:8 And the sons of Pallu; Eliab. + +26:9 And the sons of Eliab; Nemuel, and Dathan, and Abiram. This is +that Dathan and Abiram, which were famous in the congregation, who +strove against Moses and against Aaron in the company of Korah, when +they strove against the LORD: 26:10 And the earth opened her mouth, +and swallowed them up together with Korah, when that company died, +what time the fire devoured two hundred and fifty men: and they became +a sign. + +26:11 Notwithstanding the children of Korah died not. + +26:12 The sons of Simeon after their families: of Nemuel, the family +of the Nemuelites: of Jamin, the family of the Jaminites: of Jachin, +the family of the Jachinites: 26:13 Of Zerah, the family of the +Zarhites: of Shaul, the family of the Shaulites. + +26:14 These are the families of the Simeonites, twenty and two +thousand and two hundred. + +26:15 The children of Gad after their families: of Zephon, the family +of the Zephonites: of Haggi, the family of the Haggites: of Shuni, the +family of the Shunites: 26:16 Of Ozni, the family of the Oznites: of +Eri, the family of the Erites: 26:17 Of Arod, the family of the +Arodites: of Areli, the family of the Arelites. + +26:18 These are the families of the children of Gad according to those +that were numbered of them, forty thousand and five hundred. + +26:19 The sons of Judah were Er and Onan: and Er and Onan died in the +land of Canaan. + +26:20 And the sons of Judah after their families were; of Shelah, the +family of the Shelanites: of Pharez, the family of the Pharzites: of +Zerah, the family of the Zarhites. + +26:21 And the sons of Pharez were; of Hezron, the family of the +Hezronites: of Hamul, the family of the Hamulites. + +26:22 These are the families of Judah according to those that were +numbered of them, threescore and sixteen thousand and five hundred. + +26:23 Of the sons of Issachar after their families: of Tola, the +family of the Tolaites: of Pua, the family of the Punites: 26:24 Of +Jashub, the family of the Jashubites: of Shimron, the family of the +Shimronites. + +26:25 These are the families of Issachar according to those that were +numbered of them, threescore and four thousand and three hundred. + +26:26 Of the sons of Zebulun after their families: of Sered, the +family of the Sardites: of Elon, the family of the Elonites: of +Jahleel, the family of the Jahleelites. + +26:27 These are the families of the Zebulunites according to those +that were numbered of them, threescore thousand and five hundred. + +26:28 The sons of Joseph after their families were Manasseh and +Ephraim. + +26:29 Of the sons of Manasseh: of Machir, the family of the +Machirites: and Machir begat Gilead: of Gilead come the family of the +Gileadites. + +26:30 These are the sons of Gilead: of Jeezer, the family of the +Jeezerites: of Helek, the family of the Helekites: 26:31 And of +Asriel, the family of the Asrielites: and of Shechem, the family of +the Shechemites: 26:32 And of Shemida, the family of the Shemidaites: +and of Hepher, the family of the Hepherites. + +26:33 And Zelophehad the son of Hepher had no sons, but daughters: and +the names of the daughters of Zelophehad were Mahlah, and Noah, +Hoglah, Milcah, and Tirzah. + +26:34 These are the families of Manasseh, and those that were numbered +of them, fifty and two thousand and seven hundred. + +26:35 These are the sons of Ephraim after their families: of +Shuthelah, the family of the Shuthalhites: of Becher, the family of +the Bachrites: of Tahan, the family of the Tahanites. + +26:36 And these are the sons of Shuthelah: of Eran, the family of the +Eranites. + +26:37 These are the families of the sons of Ephraim according to those +that were numbered of them, thirty and two thousand and five hundred. +These are the sons of Joseph after their families. + +26:38 The sons of Benjamin after their families: of Bela, the family +of the Belaites: of Ashbel, the family of the Ashbelites: of Ahiram, +the family of the Ahiramites: 26:39 Of Shupham, the family of the +Shuphamites: of Hupham, the family of the Huphamites. + +26:40 And the sons of Bela were Ard and Naaman: of Ard, the family of +the Ardites: and of Naaman, the family of the Naamites. + +26:41 These are the sons of Benjamin after their families: and they +that were numbered of them were forty and five thousand and six +hundred. + +26:42 These are the sons of Dan after their families: of Shuham, the +family of the Shuhamites. These are the families of Dan after their +families. + +26:43 All the families of the Shuhamites, according to those that were +numbered of them, were threescore and four thousand and four hundred. + +26:44 Of the children of Asher after their families: of Jimna, the +family of the Jimnites: of Jesui, the family of the Jesuites: of +Beriah, the family of the Beriites. + +26:45 Of the sons of Beriah: of Heber, the family of the Heberites: of +Malchiel, the family of the Malchielites. + +26:46 And the name of the daughter of Asher was Sarah. + +26:47 These are the families of the sons of Asher according to those +that were numbered of them; who were fifty and three thousand and four +hundred. + +26:48 Of the sons of Naphtali after their families: of Jahzeel, the +family of the Jahzeelites: of Guni, the family of the Gunites: 26:49 +Of Jezer, the family of the Jezerites: of Shillem, the family of the +Shillemites. + +26:50 These are the families of Naphtali according to their families: +and they that were numbered of them were forty and five thousand and +four hundred. + +26:51 These were the numbered of the children of Israel, six hundred +thousand and a thousand seven hundred and thirty. + +26:52 And the LORD spake unto Moses, saying, 26:53 Unto these the land +shall be divided for an inheritance according to the number of names. + +26:54 To many thou shalt give the more inheritance, and to few thou +shalt give the less inheritance: to every one shall his inheritance be +given according to those that were numbered of him. + +26:55 Notwithstanding the land shall be divided by lot: according to +the names of the tribes of their fathers they shall inherit. + +26:56 According to the lot shall the possession thereof be divided +between many and few. + +26:57 And these are they that were numbered of the Levites after their +families: of Gershon, the family of the Gershonites: of Kohath, the +family of the Kohathites: of Merari, the family of the Merarites. + +26:58 These are the families of the Levites: the family of the +Libnites, the family of the Hebronites, the family of the Mahlites, +the family of the Mushites, the family of the Korathites. And Kohath +begat Amram. + +26:59 And the name of Amram's wife was Jochebed, the daughter of Levi, +whom her mother bare to Levi in Egypt: and she bare unto Amram Aaron +and Moses, and Miriam their sister. + +26:60 And unto Aaron was born Nadab, and Abihu, Eleazar, and Ithamar. + +26:61 And Nadab and Abihu died, when they offered strange fire before +the LORD. + +26:62 And those that were numbered of them were twenty and three +thousand, all males from a month old and upward: for they were not +numbered among the children of Israel, because there was no +inheritance given them among the children of Israel. + +26:63 These are they that were numbered by Moses and Eleazar the +priest, who numbered the children of Israel in the plains of Moab by +Jordan near Jericho. + +26:64 But among these there was not a man of them whom Moses and Aaron +the priest numbered, when they numbered the children of Israel in the +wilderness of Sinai. + +26:65 For the LORD had said of them, They shall surely die in the +wilderness. And there was not left a man of them, save Caleb the son +of Jephunneh, and Joshua the son of Nun. + +27:1 Then came the daughters of Zelophehad, the son of Hepher, the son +of Gilead, the son of Machir, the son of Manasseh, of the families of +Manasseh the son of Joseph: and these are the names of his daughters; +Mahlah, Noah, and Hoglah, and Milcah, and Tirzah. + +27:2 And they stood before Moses, and before Eleazar the priest, and +before the princes and all the congregation, by the door of the +tabernacle of the congregation, saying, 27:3 Our father died in the +wilderness, and he was not in the company of them that gathered +themselves together against the LORD in the company of Korah; but died +in his own sin, and had no sons. + +27:4 Why should the name of our father be done away from among his +family, because he hath no son? Give unto us therefore a possession +among the brethren of our father. + +27:5 And Moses brought their cause before the LORD. + +27:6 And the LORD spake unto Moses, saying, 27:7 The daughters of +Zelophehad speak right: thou shalt surely give them a possession of an +inheritance among their father's brethren; and thou shalt cause the +inheritance of their father to pass unto them. + +27:8 And thou shalt speak unto the children of Israel, saying, If a +man die, and have no son, then ye shall cause his inheritance to pass +unto his daughter. + +27:9 And if he have no daughter, then ye shall give his inheritance +unto his brethren. + +27:10 And if he have no brethren, then ye shall give his inheritance +unto his father's brethren. + +27:11 And if his father have no brethren, then ye shall give his +inheritance unto his kinsman that is next to him of his family, and he +shall possess it: and it shall be unto the children of Israel a +statute of judgment, as the LORD commanded Moses. + +27:12 And the LORD said unto Moses, Get thee up into this mount +Abarim, and see the land which I have given unto the children of +Israel. + +27:13 And when thou hast seen it, thou also shalt be gathered unto thy +people, as Aaron thy brother was gathered. + +27:14 For ye rebelled against my commandment in the desert of Zin, in +the strife of the congregation, to sanctify me at the water before +their eyes: that is the water of Meribah in Kadesh in the wilderness +of Zin. + +27:15 And Moses spake unto the LORD, saying, 27:16 Let the LORD, the +God of the spirits of all flesh, set a man over the congregation, +27:17 Which may go out before them, and which may go in before them, +and which may lead them out, and which may bring them in; that the +congregation of the LORD be not as sheep which have no shepherd. + +27:18 And the LORD said unto Moses, Take thee Joshua the son of Nun, a +man in whom is the spirit, and lay thine hand upon him; 27:19 And set +him before Eleazar the priest, and before all the congregation; and +give him a charge in their sight. + +27:20 And thou shalt put some of thine honour upon him, that all the +congregation of the children of Israel may be obedient. + +27:21 And he shall stand before Eleazar the priest, who shall ask +counsel for him after the judgment of Urim before the LORD: at his +word shall they go out, and at his word they shall come in, both he, +and all the children of Israel with him, even all the congregation. + +27:22 And Moses did as the LORD commanded him: and he took Joshua, and +set him before Eleazar the priest, and before all the congregation: +27:23 And he laid his hands upon him, and gave him a charge, as the +LORD commanded by the hand of Moses. + +28:1 And the LORD spake unto Moses, saying, 28:2 Command the children +of Israel, and say unto them, My offering, and my bread for my +sacrifices made by fire, for a sweet savour unto me, shall ye observe +to offer unto me in their due season. + +28:3 And thou shalt say unto them, This is the offering made by fire +which ye shall offer unto the LORD; two lambs of the first year +without spot day by day, for a continual burnt offering. + +28:4 The one lamb shalt thou offer in the morning, and the other lamb +shalt thou offer at even; 28:5 And a tenth part of an ephah of flour +for a meat offering, mingled with the fourth part of an hin of beaten +oil. + +28:6 It is a continual burnt offering, which was ordained in mount +Sinai for a sweet savour, a sacrifice made by fire unto the LORD. + +28:7 And the drink offering thereof shall be the fourth part of an hin +for the one lamb: in the holy place shalt thou cause the strong wine +to be poured unto the LORD for a drink offering. + +28:8 And the other lamb shalt thou offer at even: as the meat offering +of the morning, and as the drink offering thereof, thou shalt offer +it, a sacrifice made by fire, of a sweet savour unto the LORD. + +28:9 And on the sabbath day two lambs of the first year without spot, +and two tenth deals of flour for a meat offering, mingled with oil, +and the drink offering thereof: 28:10 This is the burnt offering of +every sabbath, beside the continual burnt offering, and his drink +offering. + +28:11 And in the beginnings of your months ye shall offer a burnt +offering unto the LORD; two young bullocks, and one ram, seven lambs +of the first year without spot; 28:12 And three tenth deals of flour +for a meat offering, mingled with oil, for one bullock; and two tenth +deals of flour for a meat offering, mingled with oil, for one ram; +28:13 And a several tenth deal of flour mingled with oil for a meat +offering unto one lamb; for a burnt offering of a sweet savour, a +sacrifice made by fire unto the LORD. + +28:14 And their drink offerings shall be half an hin of wine unto a +bullock, and the third part of an hin unto a ram, and a fourth part of +an hin unto a lamb: this is the burnt offering of every month +throughout the months of the year. + +28:15 And one kid of the goats for a sin offering unto the LORD shall +be offered, beside the continual burnt offering, and his drink +offering. + +28:16 And in the fourteenth day of the first month is the passover of +the LORD. + +28:17 And in the fifteenth day of this month is the feast: seven days +shall unleavened bread be eaten. + +28:18 In the first day shall be an holy convocation; ye shall do no +manner of servile work therein: 28:19 But ye shall offer a sacrifice +made by fire for a burnt offering unto the LORD; two young bullocks, +and one ram, and seven lambs of the first year: they shall be unto you +without blemish: 28:20 And their meat offering shall be of flour +mingled with oil: three tenth deals shall ye offer for a bullock, and +two tenth deals for a ram; 28:21 A several tenth deal shalt thou offer +for every lamb, throughout the seven lambs: 28:22 And one goat for a +sin offering, to make an atonement for you. + +28:23 Ye shall offer these beside the burnt offering in the morning, +which is for a continual burnt offering. + +28:24 After this manner ye shall offer daily, throughout the seven +days, the meat of the sacrifice made by fire, of a sweet savour unto +the LORD: it shall be offered beside the continual burnt offering, and +his drink offering. + +28:25 And on the seventh day ye shall have an holy convocation; ye +shall do no servile work. + +28:26 Also in the day of the firstfruits, when ye bring a new meat +offering unto the LORD, after your weeks be out, ye shall have an holy +convocation; ye shall do no servile work: 28:27 But ye shall offer the +burnt offering for a sweet savour unto the LORD; two young bullocks, +one ram, seven lambs of the first year; 28:28 And their meat offering +of flour mingled with oil, three tenth deals unto one bullock, two +tenth deals unto one ram, 28:29 A several tenth deal unto one lamb, +throughout the seven lambs; 28:30 And one kid of the goats, to make an +atonement for you. + +28:31 Ye shall offer them beside the continual burnt offering, and his +meat offering, (they shall be unto you without blemish) and their +drink offerings. + +29:1 And in the seventh month, on the first day of the month, ye shall +have an holy convocation; ye shall do no servile work: it is a day of +blowing the trumpets unto you. + +29:2 And ye shall offer a burnt offering for a sweet savour unto the +LORD; one young bullock, one ram, and seven lambs of the first year +without blemish: 29:3 And their meat offering shall be of flour +mingled with oil, three tenth deals for a bullock, and two tenth deals +for a ram, 29:4 And one tenth deal for one lamb, throughout the seven +lambs: 29:5 And one kid of the goats for a sin offering, to make an +atonement for you: 29:6 Beside the burnt offering of the month, and +his meat offering, and the daily burnt offering, and his meat +offering, and their drink offerings, according unto their manner, for +a sweet savour, a sacrifice made by fire unto the LORD. + +29:7 And ye shall have on the tenth day of this seventh month an holy +convocation; and ye shall afflict your souls: ye shall not do any work +therein: 29:8 But ye shall offer a burnt offering unto the LORD for a +sweet savour; one young bullock, one ram, and seven lambs of the first +year; they shall be unto you without blemish: 29:9 And their meat +offering shall be of flour mingled with oil, three tenth deals to a +bullock, and two tenth deals to one ram, 29:10 A several tenth deal +for one lamb, throughout the seven lambs: 29:11 One kid of the goats +for a sin offering; beside the sin offering of atonement, and the +continual burnt offering, and the meat offering of it, and their drink +offerings. + +29:12 And on the fifteenth day of the seventh month ye shall have an +holy convocation; ye shall do no servile work, and ye shall keep a +feast unto the LORD seven days: 29:13 And ye shall offer a burnt +offering, a sacrifice made by fire, of a sweet savour unto the LORD; +thirteen young bullocks, two rams, and fourteen lambs of the first +year; they shall be without blemish: 29:14 And their meat offering +shall be of flour mingled with oil, three tenth deals unto every +bullock of the thirteen bullocks, two tenth deals to each ram of the +two rams, 29:15 And a several tenth deal to each lamb of the fourteen +lambs: 29:16 And one kid of the goats for a sin offering; beside the +continual burnt offering, his meat offering, and his drink offering. + +29:17 And on the second day ye shall offer twelve young bullocks, two +rams, fourteen lambs of the first year without spot: 29:18 And their +meat offering and their drink offerings for the bullocks, for the +rams, and for the lambs, shall be according to their number, after the +manner: 29:19 And one kid of the goats for a sin offering; beside the +continual burnt offering, and the meat offering thereof, and their +drink offerings. + +29:20 And on the third day eleven bullocks, two rams, fourteen lambs +of the first year without blemish; 29:21 And their meat offering and +their drink offerings for the bullocks, for the rams, and for the +lambs, shall be according to their number, after the manner: 29:22 And +one goat for a sin offering; beside the continual burnt offering, and +his meat offering, and his drink offering. + +29:23 And on the fourth day ten bullocks, two rams, and fourteen lambs +of the first year without blemish: 29:24 Their meat offering and their +drink offerings for the bullocks, for the rams, and for the lambs, +shall be according to their number, after the manner: 29:25 And one +kid of the goats for a sin offering; beside the continual burnt +offering, his meat offering, and his drink offering. + +29:26 And on the fifth day nine bullocks, two rams, and fourteen lambs +of the first year without spot: 29:27 And their meat offering and +their drink offerings for the bullocks, for the rams, and for the +lambs, shall be according to their number, after the manner: 29:28 And +one goat for a sin offering; beside the continual burnt offering, and +his meat offering, and his drink offering. + +29:29 And on the sixth day eight bullocks, two rams, and fourteen +lambs of the first year without blemish: 29:30 And their meat offering +and their drink offerings for the bullocks, for the rams, and for the +lambs, shall be according to their number, after the manner: 29:31 And +one goat for a sin offering; beside the continual burnt offering, his +meat offering, and his drink offering. + +29:32 And on the seventh day seven bullocks, two rams, and fourteen +lambs of the first year without blemish: 29:33 And their meat offering +and their drink offerings for the bullocks, for the rams, and for the +lambs, shall be according to their number, after the manner: 29:34 And +one goat for a sin offering; beside the continual burnt offering, his +meat offering, and his drink offering. + +29:35 On the eighth day ye shall have a solemn assembly: ye shall do +no servile work therein: 29:36 But ye shall offer a burnt offering, a +sacrifice made by fire, of a sweet savour unto the LORD: one bullock, +one ram, seven lambs of the first year without blemish: 29:37 Their +meat offering and their drink offerings for the bullock, for the ram, +and for the lambs, shall be according to their number, after the +manner: 29:38 And one goat for a sin offering; beside the continual +burnt offering, and his meat offering, and his drink offering. + +29:39 These things ye shall do unto the LORD in your set feasts, +beside your vows, and your freewill offerings, for your burnt +offerings, and for your meat offerings, and for your drink offerings, +and for your peace offerings. + +29:40 And Moses told the children of Israel according to all that the +LORD commanded Moses. + +30:1 And Moses spake unto the heads of the tribes concerning the +children of Israel, saying, This is the thing which the LORD hath +commanded. + +30:2 If a man vow a vow unto the LORD, or swear an oath to bind his +soul with a bond; he shall not break his word, he shall do according +to all that proceedeth out of his mouth. + +30:3 If a woman also vow a vow unto the LORD, and bind herself by a +bond, being in her father's house in her youth; 30:4 And her father +hear her vow, and her bond wherewith she hath bound her soul, and her +father shall hold his peace at her; then all her vows shall stand, and +every bond wherewith she hath bound her soul shall stand. + +30:5 But if her father disallow her in the day that he heareth; not +any of her vows, or of her bonds wherewith she hath bound her soul, +shall stand: and the LORD shall forgive her, because her father +disallowed her. + +30:6 And if she had at all an husband, when she vowed, or uttered +ought out of her lips, wherewith she bound her soul; 30:7 And her +husband heard it, and held his peace at her in the day that he heard +it: then her vows shall stand, and her bonds wherewith she bound her +soul shall stand. + +30:8 But if her husband disallowed her on the day that he heard it; +then he shall make her vow which she vowed, and that which she uttered +with her lips, wherewith she bound her soul, of none effect: and the +LORD shall forgive her. + +30:9 But every vow of a widow, and of her that is divorced, wherewith +they have bound their souls, shall stand against her. + +30:10 And if she vowed in her husband's house, or bound her soul by a +bond with an oath; 30:11 And her husband heard it, and held his peace +at her, and disallowed her not: then all her vows shall stand, and +every bond wherewith she bound her soul shall stand. + +30:12 But if her husband hath utterly made them void on the day he +heard them; then whatsoever proceeded out of her lips concerning her +vows, or concerning the bond of her soul, shall not stand: her husband +hath made them void; and the LORD shall forgive her. + +30:13 Every vow, and every binding oath to afflict the soul, her +husband may establish it, or her husband may make it void. + +30:14 But if her husband altogether hold his peace at her from day to +day; then he establisheth all her vows, or all her bonds, which are +upon her: he confirmeth them, because he held his peace at her in the +day that he heard them. + +30:15 But if he shall any ways make them void after that he hath heard +them; then he shall bear her iniquity. + +30:16 These are the statutes, which the LORD commanded Moses, between +a man and his wife, between the father and his daughter, being yet in +her youth in her father's house. + +31:1 And the LORD spake unto Moses, saying, 31:2 Avenge the children +of Israel of the Midianites: afterward shalt thou be gathered unto thy +people. + +31:3 And Moses spake unto the people, saying, Arm some of yourselves +unto the war, and let them go against the Midianites, and avenge the +LORD of Midian. + +31:4 Of every tribe a thousand, throughout all the tribes of Israel, +shall ye send to the war. + +31:5 So there were delivered out of the thousands of Israel, a +thousand of every tribe, twelve thousand armed for war. + +31:6 And Moses sent them to the war, a thousand of every tribe, them +and Phinehas the son of Eleazar the priest, to the war, with the holy +instruments, and the trumpets to blow in his hand. + +31:7 And they warred against the Midianites, as the LORD commanded +Moses; and they slew all the males. + +31:8 And they slew the kings of Midian, beside the rest of them that +were slain; namely, Evi, and Rekem, and Zur, and Hur, and Reba, five +kings of Midian: Balaam also the son of Beor they slew with the sword. + +31:9 And the children of Israel took all the women of Midian captives, +and their little ones, and took the spoil of all their cattle, and all +their flocks, and all their goods. + +31:10 And they burnt all their cities wherein they dwelt, and all +their goodly castles, with fire. + +31:11 And they took all the spoil, and all the prey, both of men and +of beasts. + +31:12 And they brought the captives, and the prey, and the spoil, unto +Moses, and Eleazar the priest, and unto the congregation of the +children of Israel, unto the camp at the plains of Moab, which are by +Jordan near Jericho. + +31:13 And Moses, and Eleazar the priest, and all the princes of the +congregation, went forth to meet them without the camp. + +31:14 And Moses was wroth with the officers of the host, with the +captains over thousands, and captains over hundreds, which came from +the battle. + +31:15 And Moses said unto them, Have ye saved all the women alive? +31:16 Behold, these caused the children of Israel, through the counsel +of Balaam, to commit trespass against the LORD in the matter of Peor, +and there was a plague among the congregation of the LORD. + +31:17 Now therefore kill every male among the little ones, and kill +every woman that hath known man by lying with him. + +31:18 But all the women children, that have not known a man by lying +with him, keep alive for yourselves. + +31:19 And do ye abide without the camp seven days: whosoever hath +killed any person, and whosoever hath touched any slain, purify both +yourselves and your captives on the third day, and on the seventh day. + +31:20 And purify all your raiment, and all that is made of skins, and +all work of goats' hair, and all things made of wood. + +31:21 And Eleazar the priest said unto the men of war which went to +the battle, This is the ordinance of the law which the LORD commanded +Moses; 31:22 Only the gold, and the silver, the brass, the iron, the +tin, and the lead, 31:23 Every thing that may abide the fire, ye shall +make it go through the fire, and it shall be clean: nevertheless it +shall be purified with the water of separation: and all that abideth +not the fire ye shall make go through the water. + +31:24 And ye shall wash your clothes on the seventh day, and ye shall +be clean, and afterward ye shall come into the camp. + +31:25 And the LORD spake unto Moses, saying, 31:26 Take the sum of the +prey that was taken, both of man and of beast, thou, and Eleazar the +priest, and the chief fathers of the congregation: 31:27 And divide +the prey into two parts; between them that took the war upon them, who +went out to battle, and between all the congregation: 31:28 And levy a +tribute unto the Lord of the men of war which went out to battle: one +soul of five hundred, both of the persons, and of the beeves, and of +the asses, and of the sheep: 31:29 Take it of their half, and give it +unto Eleazar the priest, for an heave offering of the LORD. + +31:30 And of the children of Israel's half, thou shalt take one +portion of fifty, of the persons, of the beeves, of the asses, and of +the flocks, of all manner of beasts, and give them unto the Levites, +which keep the charge of the tabernacle of the LORD. + +31:31 And Moses and Eleazar the priest did as the LORD commanded +Moses. + +31:32 And the booty, being the rest of the prey which the men of war +had caught, was six hundred thousand and seventy thousand and five +thousand sheep, 31:33 And threescore and twelve thousand beeves, 31:34 +And threescore and one thousand asses, 31:35 And thirty and two +thousand persons in all, of women that had not known man by lying with +him. + +31:36 And the half, which was the portion of them that went out to +war, was in number three hundred thousand and seven and thirty +thousand and five hundred sheep: 31:37 And the LORD's tribute of the +sheep was six hundred and threescore and fifteen. + +31:38 And the beeves were thirty and six thousand; of which the LORD's +tribute was threescore and twelve. + +31:39 And the asses were thirty thousand and five hundred; of which +the LORD's tribute was threescore and one. + +31:40 And the persons were sixteen thousand; of which the LORD's +tribute was thirty and two persons. + +31:41 And Moses gave the tribute, which was the LORD's heave offering, +unto Eleazar the priest, as the LORD commanded Moses. + +31:42 And of the children of Israel's half, which Moses divided from +the men that warred, 31:43 (Now the half that pertained unto the +congregation was three hundred thousand and thirty thousand and seven +thousand and five hundred sheep, 31:44 And thirty and six thousand +beeves, 31:45 And thirty thousand asses and five hundred, 31:46 And +sixteen thousand persons;) 31:47 Even of the children of Israel's +half, Moses took one portion of fifty, both of man and of beast, and +gave them unto the Levites, which kept the charge of the tabernacle of +the LORD; as the LORD commanded Moses. + +31:48 And the officers which were over thousands of the host, the +captains of thousands, and captains of hundreds, came near unto Moses: +31:49 And they said unto Moses, Thy servants have taken the sum of the +men of war which are under our charge, and there lacketh not one man +of us. + +31:50 We have therefore brought an oblation for the LORD, what every +man hath gotten, of jewels of gold, chains, and bracelets, rings, +earrings, and tablets, to make an atonement for our souls before the +LORD. + +31:51 And Moses and Eleazar the priest took the gold of them, even all +wrought jewels. + +31:52 And all the gold of the offering that they offered up to the +LORD, of the captains of thousands, and of the captains of hundreds, +was sixteen thousand seven hundred and fifty shekels. + +31:53 (For the men of war had taken spoil, every man for himself.) +31:54 And Moses and Eleazar the priest took the gold of the captains +of thousands and of hundreds, and brought it into the tabernacle of +the congregation, for a memorial for the children of Israel before the +LORD. + +32:1 Now the children of Reuben and the children of Gad had a very +great multitude of cattle: and when they saw the land of Jazer, and +the land of Gilead, that, behold, the place was a place for cattle; +32:2 The children of Gad and the children of Reuben came and spake +unto Moses, and to Eleazar the priest, and unto the princes of the +congregation, saying, 32:3 Ataroth, and Dibon, and Jazer, and Nimrah, +and Heshbon, and Elealeh, and Shebam, and Nebo, and Beon, 32:4 Even +the country which the LORD smote before the congregation of Israel, is +a land for cattle, and thy servants have cattle: 32:5 Wherefore, said +they, if we have found grace in thy sight, let this land be given unto +thy servants for a possession, and bring us not over Jordan. + +32:6 And Moses said unto the children of Gad and to the children of +Reuben, Shall your brethren go to war, and shall ye sit here? 32:7 +And wherefore discourage ye the heart of the children of Israel from +going over into the land which the LORD hath given them? 32:8 Thus +did your fathers, when I sent them from Kadeshbarnea to see the land. + +32:9 For when they went up unto the valley of Eshcol, and saw the +land, they discouraged the heart of the children of Israel, that they +should not go into the land which the LORD had given them. + +32:10 And the LORD's anger was kindled the same time, and he sware, +saying, 32:11 Surely none of the men that came up out of Egypt, from +twenty years old and upward, shall see the land which I sware unto +Abraham, unto Isaac, and unto Jacob; because they have not wholly +followed me: 32:12 Save Caleb the son of Jephunneh the Kenezite, and +Joshua the son of Nun: for they have wholly followed the LORD. + +32:13 And the LORD's anger was kindled against Israel, and he made +them wander in the wilderness forty years, until all the generation, +that had done evil in the sight of the LORD, was consumed. + +32:14 And, behold, ye are risen up in your fathers' stead, an increase +of sinful men, to augment yet the fierce anger of the LORD toward +Israel. + +32:15 For if ye turn away from after him, he will yet again leave them +in the wilderness; and ye shall destroy all this people. + +32:16 And they came near unto him, and said, We will build sheepfolds +here for our cattle, and cities for our little ones: 32:17 But we +ourselves will go ready armed before the children of Israel, until we +have brought them unto their place: and our little ones shall dwell in +the fenced cities because of the inhabitants of the land. + +32:18 We will not return unto our houses, until the children of Israel +have inherited every man his inheritance. + +32:19 For we will not inherit with them on yonder side Jordan, or +forward; because our inheritance is fallen to us on this side Jordan +eastward. + +32:20 And Moses said unto them, If ye will do this thing, if ye will +go armed before the LORD to war, 32:21 And will go all of you armed +over Jordan before the LORD, until he hath driven out his enemies from +before him, 32:22 And the land be subdued before the LORD: then +afterward ye shall return, and be guiltless before the LORD, and +before Israel; and this land shall be your possession before the LORD. + +32:23 But if ye will not do so, behold, ye have sinned against the +LORD: and be sure your sin will find you out. + +32:24 Build you cities for your little ones, and folds for your sheep; +and do that which hath proceeded out of your mouth. + +32:25 And the children of Gad and the children of Reuben spake unto +Moses, saying, Thy servants will do as my lord commandeth. + +32:26 Our little ones, our wives, our flocks, and all our cattle, +shall be there in the cities of Gilead: 32:27 But thy servants will +pass over, every man armed for war, before the LORD to battle, as my +lord saith. + +32:28 So concerning them Moses commanded Eleazar the priest, and +Joshua the son of Nun, and the chief fathers of the tribes of the +children of Israel: 32:29 And Moses said unto them, If the children of +Gad and the children of Reuben will pass with you over Jordan, every +man armed to battle, before the LORD, and the land shall be subdued +before you; then ye shall give them the land of Gilead for a +possession: 32:30 But if they will not pass over with you armed, they +shall have possessions among you in the land of Canaan. + +32:31 And the children of Gad and the children of Reuben answered, +saying, As the LORD hath said unto thy servants, so will we do. + +32:32 We will pass over armed before the LORD into the land of Canaan, +that the possession of our inheritance on this side Jordan may be +ours. + +32:33 And Moses gave unto them, even to the children of Gad, and to +the children of Reuben, and unto half the tribe of Manasseh the son of +Joseph, the kingdom of Sihon king of the Amorites, and the kingdom of +Og king of Bashan, the land, with the cities thereof in the coasts, +even the cities of the country round about. + +32:34 And the children of Gad built Dibon, and Ataroth, and Aroer, +32:35 And Atroth, Shophan, and Jaazer, and Jogbehah, 32:36 And +Bethnimrah, and Bethharan, fenced cities: and folds for sheep. + +32:37 And the children of Reuben built Heshbon, and Elealeh, and +Kirjathaim, 32:38 And Nebo, and Baalmeon, (their names being changed,) +and Shibmah: and gave other names unto the cities which they builded. + +32:39 And the children of Machir the son of Manasseh went to Gilead, +and took it, and dispossessed the Amorite which was in it. + +32:40 And Moses gave Gilead unto Machir the son of Manasseh; and he +dwelt therein. + +32:41 And Jair the son of Manasseh went and took the small towns +thereof, and called them Havothjair. + +32:42 And Nobah went and took Kenath, and the villages thereof, and +called it Nobah, after his own name. + +33:1 These are the journeys of the children of Israel, which went +forth out of the land of Egypt with their armies under the hand of +Moses and Aaron. + +33:2 And Moses wrote their goings out according to their journeys by +the commandment of the LORD: and these are their journeys according to +their goings out. + +33:3 And they departed from Rameses in the first month, on the +fifteenth day of the first month; on the morrow after the passover the +children of Israel went out with an high hand in the sight of all the +Egyptians. + +33:4 For the Egyptians buried all their firstborn, which the LORD had +smitten among them: upon their gods also the LORD executed judgments. + +33:5 And the children of Israel removed from Rameses, and pitched in +Succoth. + +33:6 And they departed from Succoth, and pitched in Etham, which is in +the edge of the wilderness. + +33:7 And they removed from Etham, and turned again unto Pihahiroth, +which is before Baalzephon: and they pitched before Migdol. + +33:8 And they departed from before Pihahiroth, and passed through the +midst of the sea into the wilderness, and went three days' journey in +the wilderness of Etham, and pitched in Marah. + +33:9 And they removed from Marah, and came unto Elim: and in Elim were +twelve fountains of water, and threescore and ten palm trees; and they +pitched there. + +33:10 And they removed from Elim, and encamped by the Red sea. + +33:11 And they removed from the Red sea, and encamped in the +wilderness of Sin. + +33:12 And they took their journey out of the wilderness of Sin, and +encamped in Dophkah. + +33:13 And they departed from Dophkah, and encamped in Alush. + +33:14 And they removed from Alush, and encamped at Rephidim, where was +no water for the people to drink. + +33:15 And they departed from Rephidim, and pitched in the wilderness +of Sinai. + +33:16 And they removed from the desert of Sinai, and pitched at +Kibrothhattaavah. + +33:17 And they departed from Kibrothhattaavah, and encamped at +Hazeroth. + +33:18 And they departed from Hazeroth, and pitched in Rithmah. + +33:19 And they departed from Rithmah, and pitched at Rimmonparez. + +33:20 And they departed from Rimmonparez, and pitched in Libnah. + +33:21 And they removed from Libnah, and pitched at Rissah. + +33:22 And they journeyed from Rissah, and pitched in Kehelathah. + +33:23 And they went from Kehelathah, and pitched in mount Shapher. + +33:24 And they removed from mount Shapher, and encamped in Haradah. + +33:25 And they removed from Haradah, and pitched in Makheloth. + +33:26 And they removed from Makheloth, and encamped at Tahath. + +33:27 And they departed from Tahath, and pitched at Tarah. + +33:28 And they removed from Tarah, and pitched in Mithcah. + +33:29 And they went from Mithcah, and pitched in Hashmonah. + +33:30 And they departed from Hashmonah, and encamped at Moseroth. + +33:31 And they departed from Moseroth, and pitched in Benejaakan. + +33:32 And they removed from Benejaakan, and encamped at Horhagidgad. + +33:33 And they went from Horhagidgad, and pitched in Jotbathah. + +33:34 And they removed from Jotbathah, and encamped at Ebronah. + +33:35 And they departed from Ebronah, and encamped at Eziongaber. + +33:36 And they removed from Eziongaber, and pitched in the wilderness +of Zin, which is Kadesh. + +33:37 And they removed from Kadesh, and pitched in mount Hor, in the +edge of the land of Edom. + +33:38 And Aaron the priest went up into mount Hor at the commandment +of the LORD, and died there, in the fortieth year after the children +of Israel were come out of the land of Egypt, in the first day of the +fifth month. + +33:39 And Aaron was an hundred and twenty and three years old when he +died in mount Hor. + +33:40 And king Arad the Canaanite, which dwelt in the south in the +land of Canaan, heard of the coming of the children of Israel. + +33:41 And they departed from mount Hor, and pitched in Zalmonah. + +33:42 And they departed from Zalmonah, and pitched in Punon. + +33:43 And they departed from Punon, and pitched in Oboth. + +33:44 And they departed from Oboth, and pitched in Ijeabarim, in the +border of Moab. + +33:45 And they departed from Iim, and pitched in Dibongad. + +33:46 And they removed from Dibongad, and encamped in Almondiblathaim. + +33:47 And they removed from Almondiblathaim, and pitched in the +mountains of Abarim, before Nebo. + +33:48 And they departed from the mountains of Abarim, and pitched in +the plains of Moab by Jordan near Jericho. + +33:49 And they pitched by Jordan, from Bethjesimoth even unto +Abelshittim in the plains of Moab. + +33:50 And the LORD spake unto Moses in the plains of Moab by Jordan +near Jericho, saying, 33:51 Speak unto the children of Israel, and say +unto them, When ye are passed over Jordan into the land of Canaan; +33:52 Then ye shall drive out all the inhabitants of the land from +before you, and destroy all their pictures, and destroy all their +molten images, and quite pluck down all their high places: 33:53 And +ye shall dispossess the inhabitants of the land, and dwell therein: +for I have given you the land to possess it. + +33:54 And ye shall divide the land by lot for an inheritance among +your families: and to the more ye shall give the more inheritance, and +to the fewer ye shall give the less inheritance: every man's +inheritance shall be in the place where his lot falleth; according to +the tribes of your fathers ye shall inherit. + +33:55 But if ye will not drive out the inhabitants of the land from +before you; then it shall come to pass, that those which ye let remain +of them shall be pricks in your eyes, and thorns in your sides, and +shall vex you in the land wherein ye dwell. + +33:56 Moreover it shall come to pass, that I shall do unto you, as I +thought to do unto them. + +34:1 And the LORD spake unto Moses, saying, 34:2 Command the children +of Israel, and say unto them, When ye come into the land of Canaan; +(this is the land that shall fall unto you for an inheritance, even +the land of Canaan with the coasts thereof:) 34:3 Then your south +quarter shall be from the wilderness of Zin along by the coast of +Edom, and your south border shall be the outmost coast of the salt sea +eastward: 34:4 And your border shall turn from the south to the ascent +of Akrabbim, and pass on to Zin: and the going forth thereof shall be +from the south to Kadeshbarnea, and shall go on to Hazaraddar, and +pass on to Azmon: 34:5 And the border shall fetch a compass from Azmon +unto the river of Egypt, and the goings out of it shall be at the sea. + +34:6 And as for the western border, ye shall even have the great sea +for a border: this shall be your west border. + +34:7 And this shall be your north border: from the great sea ye shall +point out for you mount Hor: 34:8 From mount Hor ye shall point out +your border unto the entrance of Hamath; and the goings forth of the +border shall be to Zedad: 34:9 And the border shall go on to Ziphron, +and the goings out of it shall be at Hazarenan: this shall be your +north border. + +34:10 And ye shall point out your east border from Hazarenan to +Shepham: 34:11 And the coast shall go down from Shepham to Riblah, on +the east side of Ain; and the border shall descend, and shall reach +unto the side of the sea of Chinnereth eastward: 34:12 And the border +shall go down to Jordan, and the goings out of it shall be at the salt +sea: this shall be your land with the coasts thereof round about. + +34:13 And Moses commanded the children of Israel, saying, This is the +land which ye shall inherit by lot, which the LORD commanded to give +unto the nine tribes, and to the half tribe: 34:14 For the tribe of +the children of Reuben according to the house of their fathers, and +the tribe of the children of Gad according to the house of their +fathers, have received their inheritance; and half the tribe of +Manasseh have received their inheritance: 34:15 The two tribes and the +half tribe have received their inheritance on this side Jordan near +Jericho eastward, toward the sunrising. + +34:16 And the LORD spake unto Moses, saying, 34:17 These are the names +of the men which shall divide the land unto you: Eleazar the priest, +and Joshua the son of Nun. + +34:18 And ye shall take one prince of every tribe, to divide the land +by inheritance. + +34:19 And the names of the men are these: Of the tribe of Judah, Caleb +the son of Jephunneh. + +34:20 And of the tribe of the children of Simeon, Shemuel the son of +Ammihud. + +34:21 Of the tribe of Benjamin, Elidad the son of Chislon. + +34:22 And the prince of the tribe of the children of Dan, Bukki the +son of Jogli. + +34:23 The prince of the children of Joseph, for the tribe of the +children of Manasseh, Hanniel the son of Ephod. + +34:24 And the prince of the tribe of the children of Ephraim, Kemuel +the son of Shiphtan. + +34:25 And the prince of the tribe of the children of Zebulun, +Elizaphan the son of Parnach. + +34:26 And the prince of the tribe of the children of Issachar, Paltiel +the son of Azzan. + +34:27 And the prince of the tribe of the children of Asher, Ahihud the +son of Shelomi. + +34:28 And the prince of the tribe of the children of Naphtali, Pedahel +the son of Ammihud. + +34:29 These are they whom the LORD commanded to divide the inheritance +unto the children of Israel in the land of Canaan. + +35:1 And the LORD spake unto Moses in the plains of Moab by Jordan +near Jericho, saying, 35:2 Command the children of Israel, that they +give unto the Levites of the inheritance of their possession cities to +dwell in; and ye shall give also unto the Levites suburbs for the +cities round about them. + +35:3 And the cities shall they have to dwell in; and the suburbs of +them shall be for their cattle, and for their goods, and for all their +beasts. + +35:4 And the suburbs of the cities, which ye shall give unto the +Levites, shall reach from the wall of the city and outward a thousand +cubits round about. + +35:5 And ye shall measure from without the city on the east side two +thousand cubits, and on the south side two thousand cubits, and on the +west side two thousand cubits, and on the north side two thousand +cubits; and the city shall be in the midst: this shall be to them the +suburbs of the cities. + +35:6 And among the cities which ye shall give unto the Levites there +shall be six cities for refuge, which ye shall appoint for the +manslayer, that he may flee thither: and to them ye shall add forty +and two cities. + +35:7 So all the cities which ye shall give to the Levites shall be +forty and eight cities: them shall ye give with their suburbs. + +35:8 And the cities which ye shall give shall be of the possession of +the children of Israel: from them that have many ye shall give many; +but from them that have few ye shall give few: every one shall give of +his cities unto the Levites according to his inheritance which he +inheriteth. + +35:9 And the LORD spake unto Moses, saying, 35:10 Speak unto the +children of Israel, and say unto them, When ye be come over Jordan +into the land of Canaan; 35:11 Then ye shall appoint you cities to be +cities of refuge for you; that the slayer may flee thither, which +killeth any person at unawares. + +35:12 And they shall be unto you cities for refuge from the avenger; +that the manslayer die not, until he stand before the congregation in +judgment. + +35:13 And of these cities which ye shall give six cities shall ye have +for refuge. + +35:14 Ye shall give three cities on this side Jordan, and three cities +shall ye give in the land of Canaan, which shall be cities of refuge. + +35:15 These six cities shall be a refuge, both for the children of +Israel, and for the stranger, and for the sojourner among them: that +every one that killeth any person unawares may flee thither. + +35:16 And if he smite him with an instrument of iron, so that he die, +he is a murderer: the murderer shall surely be put to death. + +35:17 And if he smite him with throwing a stone, wherewith he may die, +and he die, he is a murderer: the murderer shall surely be put to +death. + +35:18 Or if he smite him with an hand weapon of wood, wherewith he may +die, and he die, he is a murderer: the murderer shall surely be put to +death. + +35:19 The revenger of blood himself shall slay the murderer: when he +meeteth him, he shall slay him. + +35:20 But if he thrust him of hatred, or hurl at him by laying of +wait, that he die; 35:21 Or in enmity smite him with his hand, that he +die: he that smote him shall surely be put to death; for he is a +murderer: the revenger of blood shall slay the murderer, when he +meeteth him. + +35:22 But if he thrust him suddenly without enmity, or have cast upon +him any thing without laying of wait, 35:23 Or with any stone, +wherewith a man may die, seeing him not, and cast it upon him, that he +die, and was not his enemy, neither sought his harm: 35:24 Then the +congregation shall judge between the slayer and the revenger of blood +according to these judgments: 35:25 And the congregation shall deliver +the slayer out of the hand of the revenger of blood, and the +congregation shall restore him to the city of his refuge, whither he +was fled: and he shall abide in it unto the death of the high priest, +which was anointed with the holy oil. + +35:26 But if the slayer shall at any time come without the border of +the city of his refuge, whither he was fled; 35:27 And the revenger of +blood find him without the borders of the city of his refuge, and the +revenger of blood kill the slayer; he shall not be guilty of blood: +35:28 Because he should have remained in the city of his refuge until +the death of the high priest: but after the death of the high priest +the slayer shall return into the land of his possession. + +35:29 So these things shall be for a statute of judgment unto you +throughout your generations in all your dwellings. + +35:30 Whoso killeth any person, the murderer shall be put to death by +the mouth of witnesses: but one witness shall not testify against any +person to cause him to die. + +35:31 Moreover ye shall take no satisfaction for the life of a +murderer, which is guilty of death: but he shall be surely put to +death. + +35:32 And ye shall take no satisfaction for him that is fled to the +city of his refuge, that he should come again to dwell in the land, +until the death of the priest. + +35:33 So ye shall not pollute the land wherein ye are: for blood it +defileth the land: and the land cannot be cleansed of the blood that +is shed therein, but by the blood of him that shed it. + +35:34 Defile not therefore the land which ye shall inhabit, wherein I +dwell: for I the LORD dwell among the children of Israel. + +36:1 And the chief fathers of the families of the children of Gilead, +the son of Machir, the son of Manasseh, of the families of the sons of +Joseph, came near, and spake before Moses, and before the princes, the +chief fathers of the children of Israel: 36:2 And they said, The LORD +commanded my lord to give the land for an inheritance by lot to the +children of Israel: and my lord was commanded by the LORD to give the +inheritance of Zelophehad our brother unto his daughters. + +36:3 And if they be married to any of the sons of the other tribes of +the children of Israel, then shall their inheritance be taken from the +inheritance of our fathers, and shall be put to the inheritance of the +tribe whereunto they are received: so shall it be taken from the lot +of our inheritance. + +36:4 And when the jubile of the children of Israel shall be, then +shall their inheritance be put unto the inheritance of the tribe +whereunto they are received: so shall their inheritance be taken away +from the inheritance of the tribe of our fathers. + +36:5 And Moses commanded the children of Israel according to the word +of the LORD, saying, The tribe of the sons of Joseph hath said well. + +36:6 This is the thing which the LORD doth command concerning the +daughters of Zelophehad, saying, Let them marry to whom they think +best; only to the family of the tribe of their father shall they +marry. + +36:7 So shall not the inheritance of the children of Israel remove +from tribe to tribe: for every one of the children of Israel shall +keep himself to the inheritance of the tribe of his fathers. + +36:8 And every daughter, that possesseth an inheritance in any tribe +of the children of Israel, shall be wife unto one of the family of the +tribe of her father, that the children of Israel may enjoy every man +the inheritance of his fathers. + +36:9 Neither shall the inheritance remove from one tribe to another +tribe; but every one of the tribes of the children of Israel shall +keep himself to his own inheritance. + +36:10 Even as the LORD commanded Moses, so did the daughters of +Zelophehad: 36:11 For Mahlah, Tirzah, and Hoglah, and Milcah, and +Noah, the daughters of Zelophehad, were married unto their father's +brothers' sons: 36:12 And they were married into the families of the +sons of Manasseh the son of Joseph, and their inheritance remained in +the tribe of the family of their father. + +36:13 These are the commandments and the judgments, which the LORD +commanded by the hand of Moses unto the children of Israel in the +plains of Moab by Jordan near Jericho. + + + + +The Fifth Book of Moses: Called Deuteronomy + + +1:1 These be the words which Moses spake unto all Israel on this side +Jordan in the wilderness, in the plain over against the Red sea, +between Paran, and Tophel, and Laban, and Hazeroth, and Dizahab. + +1:2 (There are eleven days' journey from Horeb by the way of mount +Seir unto Kadeshbarnea.) 1:3 And it came to pass in the fortieth +year, in the eleventh month, on the first day of the month, that Moses +spake unto the children of Israel, according unto all that the LORD +had given him in commandment unto them; 1:4 After he had slain Sihon +the king of the Amorites, which dwelt in Heshbon, and Og the king of +Bashan, which dwelt at Astaroth in Edrei: 1:5 On this side Jordan, in +the land of Moab, began Moses to declare this law, saying, 1:6 The +LORD our God spake unto us in Horeb, saying, Ye have dwelt long enough +in this mount: 1:7 Turn you, and take your journey, and go to the +mount of the Amorites, and unto all the places nigh thereunto, in the +plain, in the hills, and in the vale, and in the south, and by the sea +side, to the land of the Canaanites, and unto Lebanon, unto the great +river, the river Euphrates. + +1:8 Behold, I have set the land before you: go in and possess the land +which the LORD sware unto your fathers, Abraham, Isaac, and Jacob, to +give unto them and to their seed after them. + +1:9 And I spake unto you at that time, saying, I am not able to bear +you myself alone: 1:10 The LORD your God hath multiplied you, and, +behold, ye are this day as the stars of heaven for multitude. + +1:11 (The LORD God of your fathers make you a thousand times so many +more as ye are, and bless you, as he hath promised you!) 1:12 How can +I myself alone bear your cumbrance, and your burden, and your strife? +1:13 Take you wise men, and understanding, and known among your +tribes, and I will make them rulers over you. + +1:14 And ye answered me, and said, The thing which thou hast spoken is +good for us to do. + +1:15 So I took the chief of your tribes, wise men, and known, and made +them heads over you, captains over thousands, and captains over +hundreds, and captains over fifties, and captains over tens, and +officers among your tribes. + +1:16 And I charged your judges at that time, saying, Hear the causes +between your brethren, and judge righteously between every man and his +brother, and the stranger that is with him. + +1:17 Ye shall not respect persons in judgment; but ye shall hear the +small as well as the great; ye shall not be afraid of the face of man; +for the judgment is God's: and the cause that is too hard for you, +bring it unto me, and I will hear it. + +1:18 And I commanded you at that time all the things which ye should +do. + +1:19 And when we departed from Horeb, we went through all that great +and terrible wilderness, which ye saw by the way of the mountain of +the Amorites, as the LORD our God commanded us; and we came to +Kadeshbarnea. + +1:20 And I said unto you, Ye are come unto the mountain of the +Amorites, which the LORD our God doth give unto us. + +1:21 Behold, the LORD thy God hath set the land before thee: go up and +possess it, as the LORD God of thy fathers hath said unto thee; fear +not, neither be discouraged. + +1:22 And ye came near unto me every one of you, and said, We will send +men before us, and they shall search us out the land, and bring us +word again by what way we must go up, and into what cities we shall +come. + +1:23 And the saying pleased me well: and I took twelve men of you, one +of a tribe: 1:24 And they turned and went up into the mountain, and +came unto the valley of Eshcol, and searched it out. + +1:25 And they took of the fruit of the land in their hands, and +brought it down unto us, and brought us word again, and said, It is a +good land which the LORD our God doth give us. + +1:26 Notwithstanding ye would not go up, but rebelled against the +commandment of the LORD your God: 1:27 And ye murmured in your tents, +and said, Because the LORD hated us, he hath brought us forth out of +the land of Egypt, to deliver us into the hand of the Amorites, to +destroy us. + +1:28 Whither shall we go up? our brethren have discouraged our heart, +saying, The people is greater and taller than we; the cities are great +and walled up to heaven; and moreover we have seen the sons of the +Anakims there. + +1:29 Then I said unto you, Dread not, neither be afraid of them. + +1:30 The LORD your God which goeth before you, he shall fight for you, +according to all that he did for you in Egypt before your eyes; 1:31 +And in the wilderness, where thou hast seen how that the LORD thy God +bare thee, as a man doth bear his son, in all the way that ye went, +until ye came into this place. + +1:32 Yet in this thing ye did not believe the LORD your God, 1:33 Who +went in the way before you, to search you out a place to pitch your +tents in, in fire by night, to shew you by what way ye should go, and +in a cloud by day. + +1:34 And the LORD heard the voice of your words, and was wroth, and +sware, saying, 1:35 Surely there shall not one of these men of this +evil generation see that good land, which I sware to give unto your +fathers. + +1:36 Save Caleb the son of Jephunneh; he shall see it, and to him will +I give the land that he hath trodden upon, and to his children, +because he hath wholly followed the LORD. + +1:37 Also the LORD was angry with me for your sakes, saying, Thou also +shalt not go in thither. + +1:38 But Joshua the son of Nun, which standeth before thee, he shall +go in thither: encourage him: for he shall cause Israel to inherit it. + +1:39 Moreover your little ones, which ye said should be a prey, and +your children, which in that day had no knowledge between good and +evil, they shall go in thither, and unto them will I give it, and they +shall possess it. + +1:40 But as for you, turn you, and take your journey into the +wilderness by the way of the Red sea. + +1:41 Then ye answered and said unto me, We have sinned against the +LORD, we will go up and fight, according to all that the LORD our God +commanded us. + +And when ye had girded on every man his weapons of war, ye were ready +to go up into the hill. + +1:42 And the LORD said unto me, Say unto them. Go not up, neither +fight; for I am not among you; lest ye be smitten before your enemies. + +1:43 So I spake unto you; and ye would not hear, but rebelled against +the commandment of the LORD, and went presumptuously up into the hill. + +1:44 And the Amorites, which dwelt in that mountain, came out against +you, and chased you, as bees do, and destroyed you in Seir, even unto +Hormah. + +1:45 And ye returned and wept before the LORD; but the LORD would not +hearken to your voice, nor give ear unto you. + +1:46 So ye abode in Kadesh many days, according unto the days that ye +abode there. + +2:1 Then we turned, and took our journey into the wilderness by the +way of the Red sea, as the LORD spake unto me: and we compassed mount +Seir many days. + +2:2 And the LORD spake unto me, saying, 2:3 Ye have compassed this +mountain long enough: turn you northward. + +2:4 And command thou the people, saying, Ye are to pass through the +coast of your brethren the children of Esau, which dwell in Seir; and +they shall be afraid of you: take ye good heed unto yourselves +therefore: 2:5 Meddle not with them; for I will not give you of their +land, no, not so much as a foot breadth; because I have given mount +Seir unto Esau for a possession. + +2:6 Ye shall buy meat of them for money, that ye may eat; and ye shall +also buy water of them for money, that ye may drink. + +2:7 For the LORD thy God hath blessed thee in all the works of thy +hand: he knoweth thy walking through this great wilderness: these +forty years the LORD thy God hath been with thee; thou hast lacked +nothing. + +2:8 And when we passed by from our brethren the children of Esau, +which dwelt in Seir, through the way of the plain from Elath, and from +Eziongaber, we turned and passed by the way of the wilderness of Moab. + +2:9 And the LORD said unto me, Distress not the Moabites, neither +contend with them in battle: for I will not give thee of their land +for a possession; because I have given Ar unto the children of Lot for +a possession. + +2:10 The Emims dwelt therein in times past, a people great, and many, +and tall, as the Anakims; 2:11 Which also were accounted giants, as +the Anakims; but the Moabites called them Emims. + +2:12 The Horims also dwelt in Seir beforetime; but the children of +Esau succeeded them, when they had destroyed them from before them, +and dwelt in their stead; as Israel did unto the land of his +possession, which the LORD gave unto them. + +2:13 Now rise up, said I, and get you over the brook Zered. And we +went over the brook Zered. + +2:14 And the space in which we came from Kadeshbarnea, until we were +come over the brook Zered, was thirty and eight years; until all the +generation of the men of war were wasted out from among the host, as +the LORD sware unto them. + +2:15 For indeed the hand of the LORD was against them, to destroy them +from among the host, until they were consumed. + +2:16 So it came to pass, when all the men of war were consumed and +dead from among the people, 2:17 That the LORD spake unto me, saying, +2:18 Thou art to pass over through Ar, the coast of Moab, this day: +2:19 And when thou comest nigh over against the children of Ammon, +distress them not, nor meddle with them: for I will not give thee of +the land of the children of Ammon any possession; because I have given +it unto the children of Lot for a possession. + +2:20 (That also was accounted a land of giants: giants dwelt therein +in old time; and the Ammonites call them Zamzummims; 2:21 A people +great, and many, and tall, as the Anakims; but the LORD destroyed them +before them; and they succeeded them, and dwelt in their stead: 2:22 +As he did to the children of Esau, which dwelt in Seir, when he +destroyed the Horims from before them; and they succeeded them, and +dwelt in their stead even unto this day: 2:23 And the Avims which +dwelt in Hazerim, even unto Azzah, the Caphtorims, which came forth +out of Caphtor, destroyed them, and dwelt in their stead.) 2:24 Rise +ye up, take your journey, and pass over the river Arnon: behold, I +have given into thine hand Sihon the Amorite, king of Heshbon, and his +land: begin to possess it, and contend with him in battle. + +2:25 This day will I begin to put the dread of thee and the fear of +thee upon the nations that are under the whole heaven, who shall hear +report of thee, and shall tremble, and be in anguish because of thee. + +2:26 And I sent messengers out of the wilderness of Kedemoth unto +Sihon king of Heshbon with words of peace, saying, 2:27 Let me pass +through thy land: I will go along by the high way, I will neither turn +unto the right hand nor to the left. + +2:28 Thou shalt sell me meat for money, that I may eat; and give me +water for money, that I may drink: only I will pass through on my +feet; 2:29 (As the children of Esau which dwell in Seir, and the +Moabites which dwell in Ar, did unto me;) until I shall pass over +Jordan into the land which the LORD our God giveth us. + +2:30 But Sihon king of Heshbon would not let us pass by him: for the +LORD thy God hardened his spirit, and made his heart obstinate, that +he might deliver him into thy hand, as appeareth this day. + +2:31 And the LORD said unto me, Behold, I have begun to give Sihon and +his land before thee: begin to possess, that thou mayest inherit his +land. + +2:32 Then Sihon came out against us, he and all his people, to fight +at Jahaz. + +2:33 And the LORD our God delivered him before us; and we smote him, +and his sons, and all his people. + +2:34 And we took all his cities at that time, and utterly destroyed +the men, and the women, and the little ones, of every city, we left +none to remain: 2:35 Only the cattle we took for a prey unto +ourselves, and the spoil of the cities which we took. + +2:36 From Aroer, which is by the brink of the river of Arnon, and from +the city that is by the river, even unto Gilead, there was not one +city too strong for us: the LORD our God delivered all unto us: 2:37 +Only unto the land of the children of Ammon thou camest not, nor unto +any place of the river Jabbok, nor unto the cities in the mountains, +nor unto whatsoever the LORD our God forbad us. + +3:1 Then we turned, and went up the way to Bashan: and Og the king of +Bashan came out against us, he and all his people, to battle at Edrei. + +3:2 And the LORD said unto me, Fear him not: for I will deliver him, +and all his people, and his land, into thy hand; and thou shalt do +unto him as thou didst unto Sihon king of the Amorites, which dwelt at +Heshbon. + +3:3 So the LORD our God delivered into our hands Og also, the king of +Bashan, and all his people: and we smote him until none was left to +him remaining. + +3:4 And we took all his cities at that time, there was not a city +which we took not from them, threescore cities, all the region of +Argob, the kingdom of Og in Bashan. + +3:5 All these cities were fenced with high walls, gates, and bars; +beside unwalled towns a great many. + +3:6 And we utterly destroyed them, as we did unto Sihon king of +Heshbon, utterly destroying the men, women, and children, of every +city. + +3:7 But all the cattle, and the spoil of the cities, we took for a +prey to ourselves. + +3:8 And we took at that time out of the hand of the two kings of the +Amorites the land that was on this side Jordan, from the river of +Arnon unto mount Hermon; 3:9 (Which Hermon the Sidonians call Sirion; +and the Amorites call it Shenir;) 3:10 All the cities of the plain, +and all Gilead, and all Bashan, unto Salchah and Edrei, cities of the +kingdom of Og in Bashan. + +3:11 For only Og king of Bashan remained of the remnant of giants; +behold his bedstead was a bedstead of iron; is it not in Rabbath of +the children of Ammon? nine cubits was the length thereof, and four +cubits the breadth of it, after the cubit of a man. + +3:12 And this land, which we possessed at that time, from Aroer, which +is by the river Arnon, and half mount Gilead, and the cities thereof, +gave I unto the Reubenites and to the Gadites. + +3:13 And the rest of Gilead, and all Bashan, being the kingdom of Og, +gave I unto the half tribe of Manasseh; all the region of Argob, with +all Bashan, which was called the land of giants. + +3:14 Jair the son of Manasseh took all the country of Argob unto the +coasts of Geshuri and Maachathi; and called them after his own name, +Bashanhavothjair, unto this day. + +3:15 And I gave Gilead unto Machir. + +3:16 And unto the Reubenites and unto the Gadites I gave from Gilead +even unto the river Arnon half the valley, and the border even unto +the river Jabbok, which is the border of the children of Ammon; 3:17 +The plain also, and Jordan, and the coast thereof, from Chinnereth +even unto the sea of the plain, even the salt sea, under Ashdothpisgah +eastward. + +3:18 And I commanded you at that time, saying, The LORD your God hath +given you this land to possess it: ye shall pass over armed before +your brethren the children of Israel, all that are meet for the war. + +3:19 But your wives, and your little ones, and your cattle, (for I +know that ye have much cattle,) shall abide in your cities which I +have given you; 3:20 Until the LORD have given rest unto your +brethren, as well as unto you, and until they also possess the land +which the LORD your God hath given them beyond Jordan: and then shall +ye return every man unto his possession, which I have given you. + +3:21 And I commanded Joshua at that time, saying, Thine eyes have seen +all that the LORD your God hath done unto these two kings: so shall +the LORD do unto all the kingdoms whither thou passest. + +3:22 Ye shall not fear them: for the LORD your God he shall fight for +you. + +3:23 And I besought the LORD at that time, saying, 3:24 O Lord GOD, +thou hast begun to shew thy servant thy greatness, and thy mighty +hand: for what God is there in heaven or in earth, that can do +according to thy works, and according to thy might? 3:25 I pray thee, +let me go over, and see the good land that is beyond Jordan, that +goodly mountain, and Lebanon. + +3:26 But the LORD was wroth with me for your sakes, and would not hear +me: and the LORD said unto me, Let it suffice thee; speak no more unto +me of this matter. + +3:27 Get thee up into the top of Pisgah, and lift up thine eyes +westward, and northward, and southward, and eastward, and behold it +with thine eyes: for thou shalt not go over this Jordan. + +3:28 But charge Joshua, and encourage him, and strengthen him: for he +shall go over before this people, and he shall cause them to inherit +the land which thou shalt see. + +3:29 So we abode in the valley over against Bethpeor. + +4:1 Now therefore hearken, O Israel, unto the statutes and unto the +judgments, which I teach you, for to do them, that ye may live, and go +in and possess the land which the LORD God of your fathers giveth you. + +4:2 Ye shall not add unto the word which I command you, neither shall +ye diminish ought from it, that ye may keep the commandments of the +LORD your God which I command you. + +4:3 Your eyes have seen what the LORD did because of Baalpeor: for all +the men that followed Baalpeor, the LORD thy God hath destroyed them +from among you. + +4:4 But ye that did cleave unto the LORD your God are alive every one +of you this day. + +4:5 Behold, I have taught you statutes and judgments, even as the LORD +my God commanded me, that ye should do so in the land whither ye go to +possess it. + +4:6 Keep therefore and do them; for this is your wisdom and your +understanding in the sight of the nations, which shall hear all these +statutes, and say, Surely this great nation is a wise and +understanding people. + +4:7 For what nation is there so great, who hath God so nigh unto them, +as the LORD our God is in all things that we call upon him for? 4:8 +And what nation is there so great, that hath statutes and judgments so +righteous as all this law, which I set before you this day? 4:9 Only +take heed to thyself, and keep thy soul diligently, lest thou forget +the things which thine eyes have seen, and lest they depart from thy +heart all the days of thy life: but teach them thy sons, and thy sons' +sons; 4:10 Specially the day that thou stoodest before the LORD thy +God in Horeb, when the LORD said unto me, Gather me the people +together, and I will make them hear my words, that they may learn to +fear me all the days that they shall live upon the earth, and that +they may teach their children. + +4:11 And ye came near and stood under the mountain; and the mountain +burned with fire unto the midst of heaven, with darkness, clouds, and +thick darkness. + +4:12 And the LORD spake unto you out of the midst of the fire: ye +heard the voice of the words, but saw no similitude; only ye heard a +voice. + +4:13 And he declared unto you his covenant, which he commanded you to +perform, even ten commandments; and he wrote them upon two tables of +stone. + +4:14 And the LORD commanded me at that time to teach you statutes and +judgments, that ye might do them in the land whither ye go over to +possess it. + +4:15 Take ye therefore good heed unto yourselves; for ye saw no manner +of similitude on the day that the LORD spake unto you in Horeb out of +the midst of the fire: 4:16 Lest ye corrupt yourselves, and make you a +graven image, the similitude of any figure, the likeness of male or +female, 4:17 The likeness of any beast that is on the earth, the +likeness of any winged fowl that flieth in the air, 4:18 The likeness +of any thing that creepeth on the ground, the likeness of any fish +that is in the waters beneath the earth: 4:19 And lest thou lift up +thine eyes unto heaven, and when thou seest the sun, and the moon, and +the stars, even all the host of heaven, shouldest be driven to worship +them, and serve them, which the LORD thy God hath divided unto all +nations under the whole heaven. + +4:20 But the LORD hath taken you, and brought you forth out of the +iron furnace, even out of Egypt, to be unto him a people of +inheritance, as ye are this day. + +4:21 Furthermore the LORD was angry with me for your sakes, and sware +that I should not go over Jordan, and that I should not go in unto +that good land, which the LORD thy God giveth thee for an inheritance: +4:22 But I must die in this land, I must not go over Jordan: but ye +shall go over, and possess that good land. + +4:23 Take heed unto yourselves, lest ye forget the covenant of the +LORD your God, which he made with you, and make you a graven image, or +the likeness of any thing, which the LORD thy God hath forbidden thee. + +4:24 For the LORD thy God is a consuming fire, even a jealous God. + +4:25 When thou shalt beget children, and children's children, and ye +shall have remained long in the land, and shall corrupt yourselves, +and make a graven image, or the likeness of any thing, and shall do +evil in the sight of the LORD thy God, to provoke him to anger: 4:26 I +call heaven and earth to witness against you this day, that ye shall +soon utterly perish from off the land whereunto ye go over Jordan to +possess it; ye shall not prolong your days upon it, but shall utterly +be destroyed. + +4:27 And the LORD shall scatter you among the nations, and ye shall be +left few in number among the heathen, whither the LORD shall lead you. + +4:28 And there ye shall serve gods, the work of men's hands, wood and +stone, which neither see, nor hear, nor eat, nor smell. + +4:29 But if from thence thou shalt seek the LORD thy God, thou shalt +find him, if thou seek him with all thy heart and with all thy soul. + +4:30 When thou art in tribulation, and all these things are come upon +thee, even in the latter days, if thou turn to the LORD thy God, and +shalt be obedient unto his voice; 4:31 (For the LORD thy God is a +merciful God;) he will not forsake thee, neither destroy thee, nor +forget the covenant of thy fathers which he sware unto them. + +4:32 For ask now of the days that are past, which were before thee, +since the day that God created man upon the earth, and ask from the +one side of heaven unto the other, whether there hath been any such +thing as this great thing is, or hath been heard like it? 4:33 Did +ever people hear the voice of God speaking out of the midst of the +fire, as thou hast heard, and live? 4:34 Or hath God assayed to go +and take him a nation from the midst of another nation, by +temptations, by signs, and by wonders, and by war, and by a mighty +hand, and by a stretched out arm, and by great terrors, according to +all that the LORD your God did for you in Egypt before your eyes? +4:35 Unto thee it was shewed, that thou mightest know that the LORD he +is God; there is none else beside him. + +4:36 Out of heaven he made thee to hear his voice, that he might +instruct thee: and upon earth he shewed thee his great fire; and thou +heardest his words out of the midst of the fire. + +4:37 And because he loved thy fathers, therefore he chose their seed +after them, and brought thee out in his sight with his mighty power +out of Egypt; 4:38 To drive out nations from before thee greater and +mightier than thou art, to bring thee in, to give thee their land for +an inheritance, as it is this day. + +4:39 Know therefore this day, and consider it in thine heart, that the +LORD he is God in heaven above, and upon the earth beneath: there is +none else. + +4:40 Thou shalt keep therefore his statutes, and his commandments, +which I command thee this day, that it may go well with thee, and with +thy children after thee, and that thou mayest prolong thy days upon +the earth, which the LORD thy God giveth thee, for ever. + +4:41 Then Moses severed three cities on this side Jordan toward the +sunrising; 4:42 That the slayer might flee thither, which should kill +his neighbour unawares, and hated him not in times past; and that +fleeing unto one of these cities he might live: 4:43 Namely, Bezer in +the wilderness, in the plain country, of the Reubenites; and Ramoth in +Gilead, of the Gadites; and Golan in Bashan, of the Manassites. + +4:44 And this is the law which Moses set before the children of +Israel: 4:45 These are the testimonies, and the statutes, and the +judgments, which Moses spake unto the children of Israel, after they +came forth out of Egypt. + +4:46 On this side Jordan, in the valley over against Bethpeor, in the +land of Sihon king of the Amorites, who dwelt at Heshbon, whom Moses +and the children of Israel smote, after they were come forth out of +Egypt: 4:47 And they possessed his land, and the land of Og king of +Bashan, two kings of the Amorites, which were on this side Jordan +toward the sunrising; 4:48 From Aroer, which is by the bank of the +river Arnon, even unto mount Sion, which is Hermon, 4:49 And all the +plain on this side Jordan eastward, even unto the sea of the plain, +under the springs of Pisgah. + +5:1 And Moses called all Israel, and said unto them, Hear, O Israel, +the statutes and judgments which I speak in your ears this day, that +ye may learn them, and keep, and do them. + +5:2 The LORD our God made a covenant with us in Horeb. + +5:3 The LORD made not this covenant with our fathers, but with us, +even us, who are all of us here alive this day. + +5:4 The LORD talked with you face to face in the mount out of the +midst of the fire, 5:5 (I stood between the LORD and you at that time, +to shew you the word of the LORD: for ye were afraid by reason of the +fire, and went not up into the mount;) saying, 5:6 I am the LORD thy +God, which brought thee out of the land of Egypt, from the house of +bondage. + +5:7 Thou shalt have none other gods before me. + +5:8 Thou shalt not make thee any graven image, or any likeness of any +thing that is in heaven above, or that is in the earth beneath, or +that is in the waters beneath the earth: 5:9 Thou shalt not bow down +thyself unto them, nor serve them: for I the LORD thy God am a jealous +God, visiting the iniquity of the fathers upon the children unto the +third and fourth generation of them that hate me, 5:10 And shewing +mercy unto thousands of them that love me and keep my commandments. + +5:11 Thou shalt not take the name of the LORD thy God in vain: for the +LORD will not hold him guiltless that taketh his name in vain. + +5:12 Keep the sabbath day to sanctify it, as the LORD thy God hath +commanded thee. + +5:13 Six days thou shalt labour, and do all thy work: 5:14 But the +seventh day is the sabbath of the LORD thy God: in it thou shalt not +do any work, thou, nor thy son, nor thy daughter, nor thy manservant, +nor thy maidservant, nor thine ox, nor thine ass, nor any of thy +cattle, nor thy stranger that is within thy gates; that thy manservant +and thy maidservant may rest as well as thou. + +5:15 And remember that thou wast a servant in the land of Egypt, and +that the LORD thy God brought thee out thence through a mighty hand +and by a stretched out arm: therefore the LORD thy God commanded thee +to keep the sabbath day. + +5:16 Honour thy father and thy mother, as the LORD thy God hath +commanded thee; that thy days may be prolonged, and that it may go +well with thee, in the land which the LORD thy God giveth thee. + +5:17 Thou shalt not kill. + +5:18 Neither shalt thou commit adultery. + +5:19 Neither shalt thou steal. + +5:20 Neither shalt thou bear false witness against thy neighbour. + +5:21 Neither shalt thou desire thy neighbour's wife, neither shalt +thou covet thy neighbour's house, his field, or his manservant, or his +maidservant, his ox, or his ass, or any thing that is thy neighbour's. + +5:22 These words the LORD spake unto all your assembly in the mount +out of the midst of the fire, of the cloud, and of the thick darkness, +with a great voice: and he added no more. And he wrote them in two +tables of stone, and delivered them unto me. + +5:23 And it came to pass, when ye heard the voice out of the midst of +the darkness, (for the mountain did burn with fire,) that ye came near +unto me, even all the heads of your tribes, and your elders; 5:24 And +ye said, Behold, the LORD our God hath shewed us his glory and his +greatness, and we have heard his voice out of the midst of the fire: +we have seen this day that God doth talk with man, and he liveth. + +5:25 Now therefore why should we die? for this great fire will consume +us: if we hear the voice of the LORD our God any more, then we shall +die. + +5:26 For who is there of all flesh, that hath heard the voice of the +living God speaking out of the midst of the fire, as we have, and +lived? 5:27 Go thou near, and hear all that the LORD our God shall +say: and speak thou unto us all that the LORD our God shall speak unto +thee; and we will hear it, and do it. + +5:28 And the LORD heard the voice of your words, when ye spake unto +me; and the LORD said unto me, I have heard the voice of the words of +this people, which they have spoken unto thee: they have well said all +that they have spoken. + +5:29 O that there were such an heart in them, that they would fear me, +and keep all my commandments always, that it might be well with them, +and with their children for ever! 5:30 Go say to them, Get you into +your tents again. + +5:31 But as for thee, stand thou here by me, and I will speak unto +thee all the commandments, and the statutes, and the judgments, which +thou shalt teach them, that they may do them in the land which I give +them to possess it. + +5:32 Ye shall observe to do therefore as the LORD your God hath +commanded you: ye shall not turn aside to the right hand or to the +left. + +5:33 Ye shall walk in all the ways which the LORD your God hath +commanded you, that ye may live, and that it may be well with you, and +that ye may prolong your days in the land which ye shall possess. + +6:1 Now these are the commandments, the statutes, and the judgments, +which the LORD your God commanded to teach you, that ye might do them +in the land whither ye go to possess it: 6:2 That thou mightest fear +the LORD thy God, to keep all his statutes and his commandments, which +I command thee, thou, and thy son, and thy son's son, all the days of +thy life; and that thy days may be prolonged. + +6:3 Hear therefore, O Israel, and observe to do it; that it may be +well with thee, and that ye may increase mightily, as the LORD God of +thy fathers hath promised thee, in the land that floweth with milk and +honey. + +6:4 Hear, O Israel: The LORD our God is one LORD: 6:5 And thou shalt +love the LORD thy God with all thine heart, and with all thy soul, and +with all thy might. + +6:6 And these words, which I command thee this day, shall be in thine +heart: 6:7 And thou shalt teach them diligently unto thy children, and +shalt talk of them when thou sittest in thine house, and when thou +walkest by the way, and when thou liest down, and when thou risest up. + +6:8 And thou shalt bind them for a sign upon thine hand, and they +shall be as frontlets between thine eyes. + +6:9 And thou shalt write them upon the posts of thy house, and on thy +gates. + +6:10 And it shall be, when the LORD thy God shall have brought thee +into the land which he sware unto thy fathers, to Abraham, to Isaac, +and to Jacob, to give thee great and goodly cities, which thou +buildedst not, 6:11 And houses full of all good things, which thou +filledst not, and wells digged, which thou diggedst not, vineyards and +olive trees, which thou plantedst not; when thou shalt have eaten and +be full; 6:12 Then beware lest thou forget the LORD, which brought +thee forth out of the land of Egypt, from the house of bondage. + +6:13 Thou shalt fear the LORD thy God, and serve him, and shalt swear +by his name. + +6:14 Ye shall not go after other gods, of the gods of the people which +are round about you; 6:15 (For the LORD thy God is a jealous God among +you) lest the anger of the LORD thy God be kindled against thee, and +destroy thee from off the face of the earth. + +6:16 Ye shall not tempt the LORD your God, as ye tempted him in +Massah. + +6:17 Ye shall diligently keep the commandments of the LORD your God, +and his testimonies, and his statutes, which he hath commanded thee. + +6:18 And thou shalt do that which is right and good in the sight of +the LORD: that it may be well with thee, and that thou mayest go in +and possess the good land which the LORD sware unto thy fathers. + +6:19 To cast out all thine enemies from before thee, as the LORD hath +spoken. + +6:20 And when thy son asketh thee in time to come, saying, What mean +the testimonies, and the statutes, and the judgments, which the LORD +our God hath commanded you? 6:21 Then thou shalt say unto thy son, We +were Pharaoh's bondmen in Egypt; and the LORD brought us out of Egypt +with a mighty hand: 6:22 And the LORD shewed signs and wonders, great +and sore, upon Egypt, upon Pharaoh, and upon all his household, before +our eyes: 6:23 And he brought us out from thence, that he might bring +us in, to give us the land which he sware unto our fathers. + +6:24 And the LORD commanded us to do all these statutes, to fear the +LORD our God, for our good always, that he might preserve us alive, as +it is at this day. + +6:25 And it shall be our righteousness, if we observe to do all these +commandments before the LORD our God, as he hath commanded us. + +7:1 When the LORD thy God shall bring thee into the land whither thou +goest to possess it, and hath cast out many nations before thee, the +Hittites, and the Girgashites, and the Amorites, and the Canaanites, +and the Perizzites, and the Hivites, and the Jebusites, seven nations +greater and mightier than thou; 7:2 And when the LORD thy God shall +deliver them before thee; thou shalt smite them, and utterly destroy +them; thou shalt make no covenant with them, nor shew mercy unto them: +7:3 Neither shalt thou make marriages with them; thy daughter thou +shalt not give unto his son, nor his daughter shalt thou take unto thy +son. + +7:4 For they will turn away thy son from following me, that they may +serve other gods: so will the anger of the LORD be kindled against +you, and destroy thee suddenly. + +7:5 But thus shall ye deal with them; ye shall destroy their altars, +and break down their images, and cut down their groves, and burn their +graven images with fire. + +7:6 For thou art an holy people unto the LORD thy God: the LORD thy +God hath chosen thee to be a special people unto himself, above all +people that are upon the face of the earth. + +7:7 The LORD did not set his love upon you, nor choose you, because ye +were more in number than any people; for ye were the fewest of all +people: 7:8 But because the LORD loved you, and because he would keep +the oath which he had sworn unto your fathers, hath the LORD brought +you out with a mighty hand, and redeemed you out of the house of +bondmen, from the hand of Pharaoh king of Egypt. + +7:9 Know therefore that the LORD thy God, he is God, the faithful God, +which keepeth covenant and mercy with them that love him and keep his +commandments to a thousand generations; 7:10 And repayeth them that +hate him to their face, to destroy them: he will not be slack to him +that hateth him, he will repay him to his face. + +7:11 Thou shalt therefore keep the commandments, and the statutes, and +the judgments, which I command thee this day, to do them. + +7:12 Wherefore it shall come to pass, if ye hearken to these +judgments, and keep, and do them, that the LORD thy God shall keep +unto thee the covenant and the mercy which he sware unto thy fathers: +7:13 And he will love thee, and bless thee, and multiply thee: he will +also bless the fruit of thy womb, and the fruit of thy land, thy corn, +and thy wine, and thine oil, the increase of thy kine, and the flocks +of thy sheep, in the land which he sware unto thy fathers to give +thee. + +7:14 Thou shalt be blessed above all people: there shall not be male +or female barren among you, or among your cattle. + +7:15 And the LORD will take away from thee all sickness, and will put +none of the evil diseases of Egypt, which thou knowest, upon thee; but +will lay them upon all them that hate thee. + +7:16 And thou shalt consume all the people which the LORD thy God +shall deliver thee; thine eye shall have no pity upon them: neither +shalt thou serve their gods; for that will be a snare unto thee. + +7:17 If thou shalt say in thine heart, These nations are more than I; +how can I dispossess them? 7:18 Thou shalt not be afraid of them: but +shalt well remember what the LORD thy God did unto Pharaoh, and unto +all Egypt; 7:19 The great temptations which thine eyes saw, and the +signs, and the wonders, and the mighty hand, and the stretched out +arm, whereby the LORD thy God brought thee out: so shall the LORD thy +God do unto all the people of whom thou art afraid. + +7:20 Moreover the LORD thy God will send the hornet among them, until +they that are left, and hide themselves from thee, be destroyed. + +7:21 Thou shalt not be affrighted at them: for the LORD thy God is +among you, a mighty God and terrible. + +7:22 And the LORD thy God will put out those nations before thee by +little and little: thou mayest not consume them at once, lest the +beasts of the field increase upon thee. + +7:23 But the LORD thy God shall deliver them unto thee, and shall +destroy them with a mighty destruction, until they be destroyed. + +7:24 And he shall deliver their kings into thine hand, and thou shalt +destroy their name from under heaven: there shall no man be able to +stand before thee, until thou have destroyed them. + +7:25 The graven images of their gods shall ye burn with fire: thou +shalt not desire the silver or gold that is on them, nor take it unto +thee, lest thou be snared therin: for it is an abomination to the LORD +thy God. + +7:26 Neither shalt thou bring an abomination into thine house, lest +thou be a cursed thing like it: but thou shalt utterly detest it, and +thou shalt utterly abhor it; for it is a cursed thing. + +8:1 All the commandments which I command thee this day shall ye +observe to do, that ye may live, and multiply, and go in and possess +the land which the LORD sware unto your fathers. + +8:2 And thou shalt remember all the way which the LORD thy God led +thee these forty years in the wilderness, to humble thee, and to prove +thee, to know what was in thine heart, whether thou wouldest keep his +commandments, or no. + +8:3 And he humbled thee, and suffered thee to hunger, and fed thee +with manna, which thou knewest not, neither did thy fathers know; that +he might make thee know that man doth not live by bread only, but by +every word that proceedeth out of the mouth of the LORD doth man live. + +8:4 Thy raiment waxed not old upon thee, neither did thy foot swell, +these forty years. + +8:5 Thou shalt also consider in thine heart, that, as a man chasteneth +his son, so the LORD thy God chasteneth thee. + +8:6 Therefore thou shalt keep the commandments of the LORD thy God, to +walk in his ways, and to fear him. + +8:7 For the LORD thy God bringeth thee into a good land, a land of +brooks of water, of fountains and depths that spring out of valleys +and hills; 8:8 A land of wheat, and barley, and vines, and fig trees, +and pomegranates; a land of oil olive, and honey; 8:9 A land wherein +thou shalt eat bread without scarceness, thou shalt not lack any thing +in it; a land whose stones are iron, and out of whose hills thou +mayest dig brass. + +8:10 When thou hast eaten and art full, then thou shalt bless the LORD +thy God for the good land which he hath given thee. + +8:11 Beware that thou forget not the LORD thy God, in not keeping his +commandments, and his judgments, and his statutes, which I command +thee this day: 8:12 Lest when thou hast eaten and art full, and hast +built goodly houses, and dwelt therein; 8:13 And when thy herds and +thy flocks multiply, and thy silver and thy gold is multiplied, and +all that thou hast is multiplied; 8:14 Then thine heart be lifted up, +and thou forget the LORD thy God, which brought thee forth out of the +land of Egypt, from the house of bondage; 8:15 Who led thee through +that great and terrible wilderness, wherein were fiery serpents, and +scorpions, and drought, where there was no water; who brought thee +forth water out of the rock of flint; 8:16 Who fed thee in the +wilderness with manna, which thy fathers knew not, that he might +humble thee, and that he might prove thee, to do thee good at thy +latter end; 8:17 And thou say in thine heart, My power and the might +of mine hand hath gotten me this wealth. + +8:18 But thou shalt remember the LORD thy God: for it is he that +giveth thee power to get wealth, that he may establish his covenant +which he sware unto thy fathers, as it is this day. + +8:19 And it shall be, if thou do at all forget the LORD thy God, and +walk after other gods, and serve them, and worship them, I testify +against you this day that ye shall surely perish. + +8:20 As the nations which the LORD destroyeth before your face, so +shall ye perish; because ye would not be obedient unto the voice of +the LORD your God. + +9:1 Hear, O Israel: Thou art to pass over Jordan this day, to go in to +possess nations greater and mightier than thyself, cities great and +fenced up to heaven, 9:2 A people great and tall, the children of the +Anakims, whom thou knowest, and of whom thou hast heard say, Who can +stand before the children of Anak! 9:3 Understand therefore this day, +that the LORD thy God is he which goeth over before thee; as a +consuming fire he shall destroy them, and he shall bring them down +before thy face: so shalt thou drive them out, and destroy them +quickly, as the LORD hath said unto thee. + +9:4 Speak not thou in thine heart, after that the LORD thy God hath +cast them out from before thee, saying, For my righteousness the LORD +hath brought me in to possess this land: but for the wickedness of +these nations the LORD doth drive them out from before thee. + +9:5 Not for thy righteousness, or for the uprightness of thine heart, +dost thou go to possess their land: but for the wickedness of these +nations the LORD thy God doth drive them out from before thee, and +that he may perform the word which the LORD sware unto thy fathers, +Abraham, Isaac, and Jacob. + +9:6 Understand therefore, that the LORD thy God giveth thee not this +good land to possess it for thy righteousness; for thou art a +stiffnecked people. + +9:7 Remember, and forget not, how thou provokedst the LORD thy God to +wrath in the wilderness: from the day that thou didst depart out of +the land of Egypt, until ye came unto this place, ye have been +rebellious against the LORD. + +9:8 Also in Horeb ye provoked the LORD to wrath, so that the LORD was +angry with you to have destroyed you. + +9:9 When I was gone up into the mount to receive the tables of stone, +even the tables of the covenant which the LORD made with you, then I +abode in the mount forty days and forty nights, I neither did eat +bread nor drink water: 9:10 And the LORD delivered unto me two tables +of stone written with the finger of God; and on them was written +according to all the words, which the LORD spake with you in the mount +out of the midst of the fire in the day of the assembly. + +9:11 And it came to pass at the end of forty days and forty nights, +that the LORD gave me the two tables of stone, even the tables of the +covenant. + +9:12 And the LORD said unto me, Arise, get thee down quickly from +hence; for thy people which thou hast brought forth out of Egypt have +corrupted themselves; they are quickly turned aside out of the way +which I commanded them; they have made them a molten image. + +9:13 Furthermore the LORD spake unto me, saying, I have seen this +people, and, behold, it is a stiffnecked people: 9:14 Let me alone, +that I may destroy them, and blot out their name from under heaven: +and I will make of thee a nation mightier and greater than they. + +9:15 So I turned and came down from the mount, and the mount burned +with fire: and the two tables of the covenant were in my two hands. + +9:16 And I looked, and, behold, ye had sinned against the LORD your +God, and had made you a molten calf: ye had turned aside quickly out +of the way which the LORD had commanded you. + +9:17 And I took the two tables, and cast them out of my two hands, and +brake them before your eyes. + +9:18 And I fell down before the LORD, as at the first, forty days and +forty nights: I did neither eat bread, nor drink water, because of all +your sins which ye sinned, in doing wickedly in the sight of the LORD, +to provoke him to anger. + +9:19 For I was afraid of the anger and hot displeasure, wherewith the +LORD was wroth against you to destroy you. But the LORD hearkened unto +me at that time also. + +9:20 And the LORD was very angry with Aaron to have destroyed him: and +I prayed for Aaron also the same time. + +9:21 And I took your sin, the calf which ye had made, and burnt it +with fire, and stamped it, and ground it very small, even until it was +as small as dust: and I cast the dust thereof into the brook that +descended out of the mount. + +9:22 And at Taberah, and at Massah, and at Kibrothhattaavah, ye +provoked the LORD to wrath. + +9:23 Likewise when the LORD sent you from Kadeshbarnea, saying, Go up +and possess the land which I have given you; then ye rebelled against +the commandment of the LORD your God, and ye believed him not, nor +hearkened to his voice. + +9:24 Ye have been rebellious against the LORD from the day that I knew +you. + +9:25 Thus I fell down before the LORD forty days and forty nights, as +I fell down at the first; because the LORD had said he would destroy +you. + +9:26 I prayed therefore unto the LORD, and said, O Lord GOD, destroy +not thy people and thine inheritance, which thou hast redeemed through +thy greatness, which thou hast brought forth out of Egypt with a +mighty hand. + +9:27 Remember thy servants, Abraham, Isaac, and Jacob; look not unto +the stubbornness of this people, nor to their wickedness, nor to their +sin: 9:28 Lest the land whence thou broughtest us out say, Because the +LORD was not able to bring them into the land which he promised them, +and because he hated them, he hath brought them out to slay them in +the wilderness. + +9:29 Yet they are thy people and thine inheritance, which thou +broughtest out by thy mighty power and by thy stretched out arm. + +10:1 At that time the LORD said unto me, Hew thee two tables of stone +like unto the first, and come up unto me into the mount, and make thee +an ark of wood. + +10:2 And I will write on the tables the words that were in the first +tables which thou brakest, and thou shalt put them in the ark. + +10:3 And I made an ark of shittim wood, and hewed two tables of stone +like unto the first, and went up into the mount, having the two tables +in mine hand. + +10:4 And he wrote on the tables, according to the first writing, the +ten commandments, which the LORD spake unto you in the mount out of +the midst of the fire in the day of the assembly: and the LORD gave +them unto me. + +10:5 And I turned myself and came down from the mount, and put the +tables in the ark which I had made; and there they be, as the LORD +commanded me. + +10:6 And the children of Israel took their journey from Beeroth of the +children of Jaakan to Mosera: there Aaron died, and there he was +buried; and Eleazar his son ministered in the priest's office in his +stead. + +10:7 From thence they journeyed unto Gudgodah; and from Gudgodah to +Jotbath, a land of rivers of waters. + +10:8 At that time the LORD separated the tribe of Levi, to bear the +ark of the covenant of the LORD, to stand before the LORD to minister +unto him, and to bless in his name, unto this day. + +10:9 Wherefore Levi hath no part nor inheritance with his brethren; +the LORD is his inheritance, according as the LORD thy God promised +him. + +10:10 And I stayed in the mount, according to the first time, forty +days and forty nights; and the LORD hearkened unto me at that time +also, and the LORD would not destroy thee. + +10:11 And the LORD said unto me, Arise, take thy journey before the +people, that they may go in and possess the land, which I sware unto +their fathers to give unto them. + +10:12 And now, Israel, what doth the LORD thy God require of thee, but +to fear the LORD thy God, to walk in all his ways, and to love him, +and to serve the LORD thy God with all thy heart and with all thy +soul, 10:13 To keep the commandments of the LORD, and his statutes, +which I command thee this day for thy good? 10:14 Behold, the heaven +and the heaven of heavens is the LORD's thy God, the earth also, with +all that therein is. + +10:15 Only the LORD had a delight in thy fathers to love them, and he +chose their seed after them, even you above all people, as it is this +day. + +10:16 Circumcise therefore the foreskin of your heart, and be no more +stiffnecked. + +10:17 For the LORD your God is God of gods, and Lord of lords, a great +God, a mighty, and a terrible, which regardeth not persons, nor taketh +reward: 10:18 He doth execute the judgment of the fatherless and +widow, and loveth the stranger, in giving him food and raiment. + +10:19 Love ye therefore the stranger: for ye were strangers in the +land of Egypt. + +10:20 Thou shalt fear the LORD thy God; him shalt thou serve, and to +him shalt thou cleave, and swear by his name. + +10:21 He is thy praise, and he is thy God, that hath done for thee +these great and terrible things, which thine eyes have seen. + +10:22 Thy fathers went down into Egypt with threescore and ten +persons; and now the LORD thy God hath made thee as the stars of +heaven for multitude. + +11:1 Therefore thou shalt love the LORD thy God, and keep his charge, +and his statutes, and his judgments, and his commandments, alway. + +11:2 And know ye this day: for I speak not with your children which +have not known, and which have not seen the chastisement of the LORD +your God, his greatness, his mighty hand, and his stretched out arm, +11:3 And his miracles, and his acts, which he did in the midst of +Egypt unto Pharaoh the king of Egypt, and unto all his land; 11:4 And +what he did unto the army of Egypt, unto their horses, and to their +chariots; how he made the water of the Red sea to overflow them as +they pursued after you, and how the LORD hath destroyed them unto this +day; 11:5 And what he did unto you in the wilderness, until ye came +into this place; 11:6 And what he did unto Dathan and Abiram, the sons +of Eliab, the son of Reuben: how the earth opened her mouth, and +swallowed them up, and their households, and their tents, and all the +substance that was in their possession, in the midst of all Israel: +11:7 But your eyes have seen all the great acts of the LORD which he +did. + +11:8 Therefore shall ye keep all the commandments which I command you +this day, that ye may be strong, and go in and possess the land, +whither ye go to possess it; 11:9 And that ye may prolong your days in +the land, which the LORD sware unto your fathers to give unto them and +to their seed, a land that floweth with milk and honey. + +11:10 For the land, whither thou goest in to possess it, is not as the +land of Egypt, from whence ye came out, where thou sowedst thy seed, +and wateredst it with thy foot, as a garden of herbs: 11:11 But the +land, whither ye go to possess it, is a land of hills and valleys, and +drinketh water of the rain of heaven: 11:12 A land which the LORD thy +God careth for: the eyes of the LORD thy God are always upon it, from +the beginning of the year even unto the end of the year. + +11:13 And it shall come to pass, if ye shall hearken diligently unto +my commandments which I command you this day, to love the LORD your +God, and to serve him with all your heart and with all your soul, +11:14 That I will give you the rain of your land in his due season, +the first rain and the latter rain, that thou mayest gather in thy +corn, and thy wine, and thine oil. + +11:15 And I will send grass in thy fields for thy cattle, that thou +mayest eat and be full. + +11:16 Take heed to yourselves, that your heart be not deceived, and ye +turn aside, and serve other gods, and worship them; 11:17 And then the +LORD's wrath be kindled against you, and he shut up the heaven, that +there be no rain, and that the land yield not her fruit; and lest ye +perish quickly from off the good land which the LORD giveth you. + +11:18 Therefore shall ye lay up these my words in your heart and in +your soul, and bind them for a sign upon your hand, that they may be +as frontlets between your eyes. + +11:19 And ye shall teach them your children, speaking of them when +thou sittest in thine house, and when thou walkest by the way, when +thou liest down, and when thou risest up. + +11:20 And thou shalt write them upon the door posts of thine house, +and upon thy gates: 11:21 That your days may be multiplied, and the +days of your children, in the land which the LORD sware unto your +fathers to give them, as the days of heaven upon the earth. + +11:22 For if ye shall diligently keep all these commandments which I +command you, to do them, to love the LORD your God, to walk in all his +ways, and to cleave unto him; 11:23 Then will the LORD drive out all +these nations from before you, and ye shall possess greater nations +and mightier than yourselves. + +11:24 Every place whereon the soles of your feet shall tread shall be +yours: from the wilderness and Lebanon, from the river, the river +Euphrates, even unto the uttermost sea shall your coast be. + +11:25 There shall no man be able to stand before you: for the LORD +your God shall lay the fear of you and the dread of you upon all the +land that ye shall tread upon, as he hath said unto you. + +11:26 Behold, I set before you this day a blessing and a curse; 11:27 +A blessing, if ye obey the commandments of the LORD your God, which I +command you this day: 11:28 And a curse, if ye will not obey the +commandments of the LORD your God, but turn aside out of the way which +I command you this day, to go after other gods, which ye have not +known. + +11:29 And it shall come to pass, when the LORD thy God hath brought +thee in unto the land whither thou goest to possess it, that thou +shalt put the blessing upon mount Gerizim, and the curse upon mount +Ebal. + +11:30 Are they not on the other side Jordan, by the way where the sun +goeth down, in the land of the Canaanites, which dwell in the +champaign over against Gilgal, beside the plains of Moreh? 11:31 For +ye shall pass over Jordan to go in to possess the land which the LORD +your God giveth you, and ye shall possess it, and dwell therein. + +11:32 And ye shall observe to do all the statutes and judgments which +I set before you this day. + +12:1 These are the statutes and judgments, which ye shall observe to +do in the land, which the LORD God of thy fathers giveth thee to +possess it, all the days that ye live upon the earth. + +12:2 Ye shall utterly destroy all the places, wherein the nations +which ye shall possess served their gods, upon the high mountains, and +upon the hills, and under every green tree: 12:3 And ye shall +overthrow their altars, and break their pillars, and burn their groves +with fire; and ye shall hew down the graven images of their gods, and +destroy the names of them out of that place. + +12:4 Ye shall not do so unto the LORD your God. + +12:5 But unto the place which the LORD your God shall choose out of +all your tribes to put his name there, even unto his habitation shall +ye seek, and thither thou shalt come: 12:6 And thither ye shall bring +your burnt offerings, and your sacrifices, and your tithes, and heave +offerings of your hand, and your vows, and your freewill offerings, +and the firstlings of your herds and of your flocks: 12:7 And there ye +shall eat before the LORD your God, and ye shall rejoice in all that +ye put your hand unto, ye and your households, wherein the LORD thy +God hath blessed thee. + +12:8 Ye shall not do after all the things that we do here this day, +every man whatsoever is right in his own eyes. + +12:9 For ye are not as yet come to the rest and to the inheritance, +which the LORD your God giveth you. + +12:10 But when ye go over Jordan, and dwell in the land which the LORD +your God giveth you to inherit, and when he giveth you rest from all +your enemies round about, so that ye dwell in safety; 12:11 Then there +shall be a place which the LORD your God shall choose to cause his +name to dwell there; thither shall ye bring all that I command you; +your burnt offerings, and your sacrifices, your tithes, and the heave +offering of your hand, and all your choice vows which ye vow unto the +LORD: 12:12 And ye shall rejoice before the LORD your God, ye, and +your sons, and your daughters, and your menservants, and your +maidservants, and the Levite that is within your gates; forasmuch as +he hath no part nor inheritance with you. + +12:13 Take heed to thyself that thou offer not thy burnt offerings in +every place that thou seest: 12:14 But in the place which the LORD +shall choose in one of thy tribes, there thou shalt offer thy burnt +offerings, and there thou shalt do all that I command thee. + +12:15 Notwithstanding thou mayest kill and eat flesh in all thy gates, +whatsoever thy soul lusteth after, according to the blessing of the +LORD thy God which he hath given thee: the unclean and the clean may +eat thereof, as of the roebuck, and as of the hart. + +12:16 Only ye shall not eat the blood; ye shall pour it upon the earth +as water. + +12:17 Thou mayest not eat within thy gates the tithe of thy corn, or +of thy wine, or of thy oil, or the firstlings of thy herds or of thy +flock, nor any of thy vows which thou vowest, nor thy freewill +offerings, or heave offering of thine hand: 12:18 But thou must eat +them before the LORD thy God in the place which the LORD thy God shall +choose, thou, and thy son, and thy daughter, and thy manservant, and +thy maidservant, and the Levite that is within thy gates: and thou +shalt rejoice before the LORD thy God in all that thou puttest thine +hands unto. + +12:19 Take heed to thyself that thou forsake not the Levite as long as +thou livest upon the earth. + +12:20 When the LORD thy God shall enlarge thy border, as he hath +promised thee, and thou shalt say, I will eat flesh, because thy soul +longeth to eat flesh; thou mayest eat flesh, whatsoever thy soul +lusteth after. + +12:21 If the place which the LORD thy God hath chosen to put his name +there be too far from thee, then thou shalt kill of thy herd and of +thy flock, which the LORD hath given thee, as I have commanded thee, +and thou shalt eat in thy gates whatsoever thy soul lusteth after. + +12:22 Even as the roebuck and the hart is eaten, so thou shalt eat +them: the unclean and the clean shall eat of them alike. + +12:23 Only be sure that thou eat not the blood: for the blood is the +life; and thou mayest not eat the life with the flesh. + +12:24 Thou shalt not eat it; thou shalt pour it upon the earth as +water. + +12:25 Thou shalt not eat it; that it may go well with thee, and with +thy children after thee, when thou shalt do that which is right in the +sight of the LORD. + +12:26 Only thy holy things which thou hast, and thy vows, thou shalt +take, and go unto the place which the LORD shall choose: 12:27 And +thou shalt offer thy burnt offerings, the flesh and the blood, upon +the altar of the LORD thy God: and the blood of thy sacrifices shall +be poured out upon the altar of the LORD thy God, and thou shalt eat +the flesh. + +12:28 Observe and hear all these words which I command thee, that it +may go well with thee, and with thy children after thee for ever, when +thou doest that which is good and right in the sight of the LORD thy +God. + +12:29 When the LORD thy God shall cut off the nations from before +thee, whither thou goest to possess them, and thou succeedest them, +and dwellest in their land; 12:30 Take heed to thyself that thou be +not snared by following them, after that they be destroyed from before +thee; and that thou enquire not after their gods, saying, How did +these nations serve their gods? even so will I do likewise. + +12:31 Thou shalt not do so unto the LORD thy God: for every +abomination to the LORD, which he hateth, have they done unto their +gods; for even their sons and their daughters they have burnt in the +fire to their gods. + +12:32 What thing soever I command you, observe to do it: thou shalt +not add thereto, nor diminish from it. + +13:1 If there arise among you a prophet, or a dreamer of dreams, and +giveth thee a sign or a wonder, 13:2 And the sign or the wonder come +to pass, whereof he spake unto thee, saying, Let us go after other +gods, which thou hast not known, and let us serve them; 13:3 Thou +shalt not hearken unto the words of that prophet, or that dreamer of +dreams: for the LORD your God proveth you, to know whether ye love the +LORD your God with all your heart and with all your soul. + +13:4 Ye shall walk after the LORD your God, and fear him, and keep his +commandments, and obey his voice, and ye shall serve him, and cleave +unto him. + +13:5 And that prophet, or that dreamer of dreams, shall be put to +death; because he hath spoken to turn you away from the LORD your God, +which brought you out of the land of Egypt, and redeemed you out of +the house of bondage, to thrust thee out of the way which the LORD thy +God commanded thee to walk in. So shalt thou put the evil away from +the midst of thee. + +13:6 If thy brother, the son of thy mother, or thy son, or thy +daughter, or the wife of thy bosom, or thy friend, which is as thine +own soul, entice thee secretly, saying, Let us go and serve other +gods, which thou hast not known, thou, nor thy fathers; 13:7 Namely, +of the gods of the people which are round about you, nigh unto thee, +or far off from thee, from the one end of the earth even unto the +other end of the earth; 13:8 Thou shalt not consent unto him, nor +hearken unto him; neither shall thine eye pity him, neither shalt thou +spare, neither shalt thou conceal him: 13:9 But thou shalt surely kill +him; thine hand shall be first upon him to put him to death, and +afterwards the hand of all the people. + +13:10 And thou shalt stone him with stones, that he die; because he +hath sought to thrust thee away from the LORD thy God, which brought +thee out of the land of Egypt, from the house of bondage. + +13:11 And all Israel shall hear, and fear, and shall do no more any +such wickedness as this is among you. + +13:12 If thou shalt hear say in one of thy cities, which the LORD thy +God hath given thee to dwell there, saying, 13:13 Certain men, the +children of Belial, are gone out from among you, and have withdrawn +the inhabitants of their city, saying, Let us go and serve other gods, +which ye have not known; 13:14 Then shalt thou enquire, and make +search, and ask diligently; and, behold, if it be truth, and the thing +certain, that such abomination is wrought among you; 13:15 Thou shalt +surely smite the inhabitants of that city with the edge of the sword, +destroying it utterly, and all that is therein, and the cattle +thereof, with the edge of the sword. + +13:16 And thou shalt gather all the spoil of it into the midst of the +street thereof, and shalt burn with fire the city, and all the spoil +thereof every whit, for the LORD thy God: and it shall be an heap for +ever; it shall not be built again. + +13:17 And there shall cleave nought of the cursed thing to thine hand: +that the LORD may turn from the fierceness of his anger, and shew thee +mercy, and have compassion upon thee, and multiply thee, as he hath +sworn unto thy fathers; 13:18 When thou shalt hearken to the voice of +the LORD thy God, to keep all his commandments which I command thee +this day, to do that which is right in the eyes of the LORD thy God. + +14:1 Ye are the children of the LORD your God: ye shall not cut +yourselves, nor make any baldness between your eyes for the dead. + +14:2 For thou art an holy people unto the LORD thy God, and the LORD +hath chosen thee to be a peculiar people unto himself, above all the +nations that are upon the earth. + +14:3 Thou shalt not eat any abominable thing. + +14:4 These are the beasts which ye shall eat: the ox, the sheep, and +the goat, 14:5 The hart, and the roebuck, and the fallow deer, and the +wild goat, and the pygarg, and the wild ox, and the chamois. + +14:6 And every beast that parteth the hoof, and cleaveth the cleft +into two claws, and cheweth the cud among the beasts, that ye shall +eat. + +14:7 Nevertheless these ye shall not eat of them that chew the cud, or +of them that divide the cloven hoof; as the camel, and the hare, and +the coney: for they chew the cud, but divide not the hoof; therefore +they are unclean unto you. + +14:8 And the swine, because it divideth the hoof, yet cheweth not the +cud, it is unclean unto you: ye shall not eat of their flesh, nor +touch their dead carcase. + +14:9 These ye shall eat of all that are in the waters: all that have +fins and scales shall ye eat: 14:10 And whatsoever hath not fins and +scales ye may not eat; it is unclean unto you. + +14:11 Of all clean birds ye shall eat. + +14:12 But these are they of which ye shall not eat: the eagle, and the +ossifrage, and the ospray, 14:13 And the glede, and the kite, and the +vulture after his kind, 14:14 And every raven after his kind, 14:15 +And the owl, and the night hawk, and the cuckow, and the hawk after +his kind, 14:16 The little owl, and the great owl, and the swan, 14:17 +And the pelican, and the gier eagle, and the cormorant, 14:18 And the +stork, and the heron after her kind, and the lapwing, and the bat. + +14:19 And every creeping thing that flieth is unclean unto you: they +shall not be eaten. + +14:20 But of all clean fowls ye may eat. + +14:21 Ye shall not eat of anything that dieth of itself: thou shalt +give it unto the stranger that is in thy gates, that he may eat it; or +thou mayest sell it unto an alien: for thou art an holy people unto +the LORD thy God. + +Thou shalt not seethe a kid in his mother's milk. + +14:22 Thou shalt truly tithe all the increase of thy seed, that the +field bringeth forth year by year. + +14:23 And thou shalt eat before the LORD thy God, in the place which +he shall choose to place his name there, the tithe of thy corn, of thy +wine, and of thine oil, and the firstlings of thy herds and of thy +flocks; that thou mayest learn to fear the LORD thy God always. + +14:24 And if the way be too long for thee, so that thou art not able +to carry it; or if the place be too far from thee, which the LORD thy +God shall choose to set his name there, when the LORD thy God hath +blessed thee: 14:25 Then shalt thou turn it into money, and bind up +the money in thine hand, and shalt go unto the place which the LORD +thy God shall choose: 14:26 And thou shalt bestow that money for +whatsoever thy soul lusteth after, for oxen, or for sheep, or for +wine, or for strong drink, or for whatsoever thy soul desireth: and +thou shalt eat there before the LORD thy God, and thou shalt rejoice, +thou, and thine household, 14:27 And the Levite that is within thy +gates; thou shalt not forsake him; for he hath no part nor inheritance +with thee. + +14:28 At the end of three years thou shalt bring forth all the tithe +of thine increase the same year, and shalt lay it up within thy gates: +14:29 And the Levite, (because he hath no part nor inheritance with +thee,) and the stranger, and the fatherless, and the widow, which are +within thy gates, shall come, and shall eat and be satisfied; that the +LORD thy God may bless thee in all the work of thine hand which thou +doest. + +15:1 At the end of every seven years thou shalt make a release. + +15:2 And this is the manner of the release: Every creditor that +lendeth ought unto his neighbour shall release it; he shall not exact +it of his neighbour, or of his brother; because it is called the +LORD's release. + +15:3 Of a foreigner thou mayest exact it again: but that which is +thine with thy brother thine hand shall release; 15:4 Save when there +shall be no poor among you; for the LORD shall greatly bless thee in +the land which the LORD thy God giveth thee for an inheritance to +possess it: 15:5 Only if thou carefully hearken unto the voice of the +LORD thy God, to observe to do all these commandments which I command +thee this day. + +15:6 For the LORD thy God blesseth thee, as he promised thee: and thou +shalt lend unto many nations, but thou shalt not borrow; and thou +shalt reign over many nations, but they shall not reign over thee. + +15:7 If there be among you a poor man of one of thy brethren within +any of thy gates in thy land which the LORD thy God giveth thee, thou +shalt not harden thine heart, nor shut thine hand from thy poor +brother: 15:8 But thou shalt open thine hand wide unto him, and shalt +surely lend him sufficient for his need, in that which he wanteth. + +15:9 Beware that there be not a thought in thy wicked heart, saying, +The seventh year, the year of release, is at hand; and thine eye be +evil against thy poor brother, and thou givest him nought; and he cry +unto the LORD against thee, and it be sin unto thee. + +15:10 Thou shalt surely give him, and thine heart shall not be grieved +when thou givest unto him: because that for this thing the LORD thy +God shall bless thee in all thy works, and in all that thou puttest +thine hand unto. + +15:11 For the poor shall never cease out of the land: therefore I +command thee, saying, Thou shalt open thine hand wide unto thy +brother, to thy poor, and to thy needy, in thy land. + +15:12 And if thy brother, an Hebrew man, or an Hebrew woman, be sold +unto thee, and serve thee six years; then in the seventh year thou +shalt let him go free from thee. + +15:13 And when thou sendest him out free from thee, thou shalt not let +him go away empty: 15:14 Thou shalt furnish him liberally out of thy +flock, and out of thy floor, and out of thy winepress: of that +wherewith the LORD thy God hath blessed thee thou shalt give unto him. + +15:15 And thou shalt remember that thou wast a bondman in the land of +Egypt, and the LORD thy God redeemed thee: therefore I command thee +this thing to day. + +15:16 And it shall be, if he say unto thee, I will not go away from +thee; because he loveth thee and thine house, because he is well with +thee; 15:17 Then thou shalt take an aul, and thrust it through his ear +unto the door, and he shall be thy servant for ever. And also unto thy +maidservant thou shalt do likewise. + +15:18 It shall not seem hard unto thee, when thou sendest him away +free from thee; for he hath been worth a double hired servant to thee, +in serving thee six years: and the LORD thy God shall bless thee in +all that thou doest. + +15:19 All the firstling males that come of thy herd and of thy flock +thou shalt sanctify unto the LORD thy God: thou shalt do no work with +the firstling of thy bullock, nor shear the firstling of thy sheep. + +15:20 Thou shalt eat it before the LORD thy God year by year in the +place which the LORD shall choose, thou and thy household. + +15:21 And if there be any blemish therein, as if it be lame, or blind, +or have any ill blemish, thou shalt not sacrifice it unto the LORD thy +God. + +15:22 Thou shalt eat it within thy gates: the unclean and the clean +person shall eat it alike, as the roebuck, and as the hart. + +15:23 Only thou shalt not eat the blood thereof; thou shalt pour it +upon the ground as water. + +16:1 Observe the month of Abib, and keep the passover unto the LORD +thy God: for in the month of Abib the LORD thy God brought thee forth +out of Egypt by night. + +16:2 Thou shalt therefore sacrifice the passover unto the LORD thy +God, of the flock and the herd, in the place which the LORD shall +choose to place his name there. + +16:3 Thou shalt eat no leavened bread with it; seven days shalt thou +eat unleavened bread therewith, even the bread of affliction; for thou +camest forth out of the land of Egypt in haste: that thou mayest +remember the day when thou camest forth out of the land of Egypt all +the days of thy life. + +16:4 And there shall be no leavened bread seen with thee in all thy +coast seven days; neither shall there any thing of the flesh, which +thou sacrificedst the first day at even, remain all night until the +morning. + +16:5 Thou mayest not sacrifice the passover within any of thy gates, +which the LORD thy God giveth thee: 16:6 But at the place which the +LORD thy God shall choose to place his name in, there thou shalt +sacrifice the passover at even, at the going down of the sun, at the +season that thou camest forth out of Egypt. + +16:7 And thou shalt roast and eat it in the place which the LORD thy +God shall choose: and thou shalt turn in the morning, and go unto thy +tents. + +16:8 Six days thou shalt eat unleavened bread: and on the seventh day +shall be a solemn assembly to the LORD thy God: thou shalt do no work +therein. + +16:9 Seven weeks shalt thou number unto thee: begin to number the +seven weeks from such time as thou beginnest to put the sickle to the +corn. + +16:10 And thou shalt keep the feast of weeks unto the LORD thy God +with a tribute of a freewill offering of thine hand, which thou shalt +give unto the LORD thy God, according as the LORD thy God hath blessed +thee: 16:11 And thou shalt rejoice before the LORD thy God, thou, and +thy son, and thy daughter, and thy manservant, and thy maidservant, +and the Levite that is within thy gates, and the stranger, and the +fatherless, and the widow, that are among you, in the place which the +LORD thy God hath chosen to place his name there. + +16:12 And thou shalt remember that thou wast a bondman in Egypt: and +thou shalt observe and do these statutes. + +16:13 Thou shalt observe the feast of tabernacles seven days, after +that thou hast gathered in thy corn and thy wine: 16:14 And thou shalt +rejoice in thy feast, thou, and thy son, and thy daughter, and thy +manservant, and thy maidservant, and the Levite, the stranger, and the +fatherless, and the widow, that are within thy gates. + +16:15 Seven days shalt thou keep a solemn feast unto the LORD thy God +in the place which the LORD shall choose: because the LORD thy God +shall bless thee in all thine increase, and in all the works of thine +hands, therefore thou shalt surely rejoice. + +16:16 Three times in a year shall all thy males appear before the LORD +thy God in the place which he shall choose; in the feast of unleavened +bread, and in the feast of weeks, and in the feast of tabernacles: and +they shall not appear before the LORD empty: 16:17 Every man shall +give as he is able, according to the blessing of the LORD thy God +which he hath given thee. + +16:18 Judges and officers shalt thou make thee in all thy gates, which +the LORD thy God giveth thee, throughout thy tribes: and they shall +judge the people with just judgment. + +16:19 Thou shalt not wrest judgment; thou shalt not respect persons, +neither take a gift: for a gift doth blind the eyes of the wise, and +pervert the words of the righteous. + +16:20 That which is altogether just shalt thou follow, that thou +mayest live, and inherit the land which the LORD thy God giveth thee. + +16:21 Thou shalt not plant thee a grove of any trees near unto the +altar of the LORD thy God, which thou shalt make thee. + +16:22 Neither shalt thou set thee up any image; which the LORD thy God +hateth. + +17:1 Thou shalt not sacrifice unto the LORD thy God any bullock, or +sheep, wherein is blemish, or any evilfavouredness: for that is an +abomination unto the LORD thy God. + +17:2 If there be found among you, within any of thy gates which the +LORD thy God giveth thee, man or woman, that hath wrought wickedness +in the sight of the LORD thy God, in transgressing his covenant, 17:3 +And hath gone and served other gods, and worshipped them, either the +sun, or moon, or any of the host of heaven, which I have not +commanded; 17:4 And it be told thee, and thou hast heard of it, and +enquired diligently, and, behold, it be true, and the thing certain, +that such abomination is wrought in Israel: 17:5 Then shalt thou bring +forth that man or that woman, which have committed that wicked thing, +unto thy gates, even that man or that woman, and shalt stone them with +stones, till they die. + +17:6 At the mouth of two witnesses, or three witnesses, shall he that +is worthy of death be put to death; but at the mouth of one witness he +shall not be put to death. + +17:7 The hands of the witnesses shall be first upon him to put him to +death, and afterward the hands of all the people. So thou shalt put +the evil away from among you. + +17:8 If there arise a matter too hard for thee in judgment, between +blood and blood, between plea and plea, and between stroke and stroke, +being matters of controversy within thy gates: then shalt thou arise, +and get thee up into the place which the LORD thy God shall choose; +17:9 And thou shalt come unto the priests the Levites, and unto the +judge that shall be in those days, and enquire; and they shall shew +thee the sentence of judgment: 17:10 And thou shalt do according to +the sentence, which they of that place which the LORD shall choose +shall shew thee; and thou shalt observe to do according to all that +they inform thee: 17:11 According to the sentence of the law which +they shall teach thee, and according to the judgment which they shall +tell thee, thou shalt do: thou shalt not decline from the sentence +which they shall shew thee, to the right hand, nor to the left. + +17:12 And the man that will do presumptuously, and will not hearken +unto the priest that standeth to minister there before the LORD thy +God, or unto the judge, even that man shall die: and thou shalt put +away the evil from Israel. + +17:13 And all the people shall hear, and fear, and do no more +presumptuously. + +17:14 When thou art come unto the land which the LORD thy God giveth +thee, and shalt possess it, and shalt dwell therein, and shalt say, I +will set a king over me, like as all the nations that are about me; +17:15 Thou shalt in any wise set him king over thee, whom the LORD thy +God shall choose: one from among thy brethren shalt thou set king over +thee: thou mayest not set a stranger over thee, which is not thy +brother. + +17:16 But he shall not multiply horses to himself, nor cause the +people to return to Egypt, to the end that he should multiply horses: +forasmuch as the LORD hath said unto you, Ye shall henceforth return +no more that way. + +17:17 Neither shall he multiply wives to himself, that his heart turn +not away: neither shall he greatly multiply to himself silver and +gold. + +17:18 And it shall be, when he sitteth upon the throne of his kingdom, +that he shall write him a copy of this law in a book out of that which +is before the priests the Levites: 17:19 And it shall be with him, and +he shall read therein all the days of his life: that he may learn to +fear the LORD his God, to keep all the words of this law and these +statutes, to do them: 17:20 That his heart be not lifted up above his +brethren, and that he turn not aside from the commandment, to the +right hand, or to the left: to the end that he may prolong his days in +his kingdom, he, and his children, in the midst of Israel. + +18:1 The priests the Levites, and all the tribe of Levi, shall have no +part nor inheritance with Israel: they shall eat the offerings of the +LORD made by fire, and his inheritance. + +18:2 Therefore shall they have no inheritance among their brethren: +the LORD is their inheritance, as he hath said unto them. + +18:3 And this shall be the priest's due from the people, from them +that offer a sacrifice, whether it be ox or sheep; and they shall give +unto the priest the shoulder, and the two cheeks, and the maw. + +18:4 The firstfruit also of thy corn, of thy wine, and of thine oil, +and the first of the fleece of thy sheep, shalt thou give him. + +18:5 For the LORD thy God hath chosen him out of all thy tribes, to +stand to minister in the name of the LORD, him and his sons for ever. + +18:6 And if a Levite come from any of thy gates out of all Israel, +where he sojourned, and come with all the desire of his mind unto the +place which the LORD shall choose; 18:7 Then he shall minister in the +name of the LORD his God, as all his brethren the Levites do, which +stand there before the LORD. + +18:8 They shall have like portions to eat, beside that which cometh of +the sale of his patrimony. + +18:9 When thou art come into the land which the LORD thy God giveth +thee, thou shalt not learn to do after the abominations of those +nations. + +18:10 There shall not be found among you any one that maketh his son +or his daughter to pass through the fire, or that useth divination, or +an observer of times, or an enchanter, or a witch. + +18:11 Or a charmer, or a consulter with familiar spirits, or a wizard, +or a necromancer. + +18:12 For all that do these things are an abomination unto the LORD: +and because of these abominations the LORD thy God doth drive them out +from before thee. + +18:13 Thou shalt be perfect with the LORD thy God. + +18:14 For these nations, which thou shalt possess, hearkened unto +observers of times, and unto diviners: but as for thee, the LORD thy +God hath not suffered thee so to do. + +18:15 The LORD thy God will raise up unto thee a Prophet from the +midst of thee, of thy brethren, like unto me; unto him ye shall +hearken; 18:16 According to all that thou desiredst of the LORD thy +God in Horeb in the day of the assembly, saying, Let me not hear again +the voice of the LORD my God, neither let me see this great fire any +more, that I die not. + +18:17 And the LORD said unto me, They have well spoken that which they +have spoken. + +18:18 I will raise them up a Prophet from among their brethren, like +unto thee, and will put my words in his mouth; and he shall speak unto +them all that I shall command him. + +18:19 And it shall come to pass, that whosoever will not hearken unto +my words which he shall speak in my name, I will require it of him. + +18:20 But the prophet, which shall presume to speak a word in my name, +which I have not commanded him to speak, or that shall speak in the +name of other gods, even that prophet shall die. + +18:21 And if thou say in thine heart, How shall we know the word which +the LORD hath not spoken? 18:22 When a prophet speaketh in the name +of the LORD, if the thing follow not, nor come to pass, that is the +thing which the LORD hath not spoken, but the prophet hath spoken it +presumptuously: thou shalt not be afraid of him. + +19:1 When the LORD thy God hath cut off the nations, whose land the +LORD thy God giveth thee, and thou succeedest them, and dwellest in +their cities, and in their houses; 19:2 Thou shalt separate three +cities for thee in the midst of thy land, which the LORD thy God +giveth thee to possess it. + +19:3 Thou shalt prepare thee a way, and divide the coasts of thy land, +which the LORD thy God giveth thee to inherit, into three parts, that +every slayer may flee thither. + +19:4 And this is the case of the slayer, which shall flee thither, +that he may live: Whoso killeth his neighbour ignorantly, whom he +hated not in time past; 19:5 As when a man goeth into the wood with +his neighbour to hew wood, and his hand fetcheth a stroke with the axe +to cut down the tree, and the head slippeth from the helve, and +lighteth upon his neighbour, that he die; he shall flee unto one of +those cities, and live: 19:6 Lest the avenger of the blood pursue the +slayer, while his heart is hot, and overtake him, because the way is +long, and slay him; whereas he was not worthy of death, inasmuch as he +hated him not in time past. + +19:7 Wherefore I command thee, saying, Thou shalt separate three +cities for thee. + +19:8 And if the LORD thy God enlarge thy coast, as he hath sworn unto +thy fathers, and give thee all the land which he promised to give unto +thy fathers; 19:9 If thou shalt keep all these commandments to do +them, which I command thee this day, to love the LORD thy God, and to +walk ever in his ways; then shalt thou add three cities more for thee, +beside these three: 19:10 That innocent blood be not shed in thy land, +which the LORD thy God giveth thee for an inheritance, and so blood be +upon thee. + +19:11 But if any man hate his neighbour, and lie in wait for him, and +rise up against him, and smite him mortally that he die, and fleeth +into one of these cities: 19:12 Then the elders of his city shall send +and fetch him thence, and deliver him into the hand of the avenger of +blood, that he may die. + +19:13 Thine eye shall not pity him, but thou shalt put away the guilt +of innocent blood from Israel, that it may go well with thee. + +19:14 Thou shalt not remove thy neighbour's landmark, which they of +old time have set in thine inheritance, which thou shalt inherit in +the land that the LORD thy God giveth thee to possess it. + +19:15 One witness shall not rise up against a man for any iniquity, or +for any sin, in any sin that he sinneth: at the mouth of two +witnesses, or at the mouth of three witnesses, shall the matter be +established. + +19:16 If a false witness rise up against any man to testify against +him that which is wrong; 19:17 Then both the men, between whom the +controversy is, shall stand before the LORD, before the priests and +the judges, which shall be in those days; 19:18 And the judges shall +make diligent inquisition: and, behold, if the witness be a false +witness, and hath testified falsely against his brother; 19:19 Then +shall ye do unto him, as he had thought to have done unto his brother: +so shalt thou put the evil away from among you. + +19:20 And those which remain shall hear, and fear, and shall +henceforth commit no more any such evil among you. + +19:21 And thine eye shall not pity; but life shall go for life, eye +for eye, tooth for tooth, hand for hand, foot for foot. + +20:1 When thou goest out to battle against thine enemies, and seest +horses, and chariots, and a people more than thou, be not afraid of +them: for the LORD thy God is with thee, which brought thee up out of +the land of Egypt. + +20:2 And it shall be, when ye are come nigh unto the battle, that the +priest shall approach and speak unto the people, 20:3 And shall say +unto them, Hear, O Israel, ye approach this day unto battle against +your enemies: let not your hearts faint, fear not, and do not tremble, +neither be ye terrified because of them; 20:4 For the LORD your God is +he that goeth with you, to fight for you against your enemies, to save +you. + +20:5 And the officers shall speak unto the people, saying, What man is +there that hath built a new house, and hath not dedicated it? let him +go and return to his house, lest he die in the battle, and another man +dedicate it. + +20:6 And what man is he that hath planted a vineyard, and hath not yet +eaten of it? let him also go and return unto his house, lest he die in +the battle, and another man eat of it. + +20:7 And what man is there that hath betrothed a wife, and hath not +taken her? let him go and return unto his house, lest he die in the +battle, and another man take her. + +20:8 And the officers shall speak further unto the people, and they +shall say, What man is there that is fearful and fainthearted? let him +go and return unto his house, lest his brethren's heart faint as well +as his heart. + +20:9 And it shall be, when the officers have made an end of speaking +unto the people that they shall make captains of the armies to lead +the people. + +20:10 When thou comest nigh unto a city to fight against it, then +proclaim peace unto it. + +20:11 And it shall be, if it make thee answer of peace, and open unto +thee, then it shall be, that all the people that is found therein +shall be tributaries unto thee, and they shall serve thee. + +20:12 And if it will make no peace with thee, but will make war +against thee, then thou shalt besiege it: 20:13 And when the LORD thy +God hath delivered it into thine hands, thou shalt smite every male +thereof with the edge of the sword: 20:14 But the women, and the +little ones, and the cattle, and all that is in the city, even all the +spoil thereof, shalt thou take unto thyself; and thou shalt eat the +spoil of thine enemies, which the LORD thy God hath given thee. + +20:15 Thus shalt thou do unto all the cities which are very far off +from thee, which are not of the cities of these nations. + +20:16 But of the cities of these people, which the LORD thy God doth +give thee for an inheritance, thou shalt save alive nothing that +breatheth: 20:17 But thou shalt utterly destroy them; namely, the +Hittites, and the Amorites, the Canaanites, and the Perizzites, the +Hivites, and the Jebusites; as the LORD thy God hath commanded thee: +20:18 That they teach you not to do after all their abominations, +which they have done unto their gods; so should ye sin against the +LORD your God. + +20:19 When thou shalt besiege a city a long time, in making war +against it to take it, thou shalt not destroy the trees thereof by +forcing an axe against them: for thou mayest eat of them, and thou +shalt not cut them down (for the tree of the field is man's life) to +employ them in the siege: 20:20 Only the trees which thou knowest that +they be not trees for meat, thou shalt destroy and cut them down; and +thou shalt build bulwarks against the city that maketh war with thee, +until it be subdued. + +21:1 If one be found slain in the land which the LORD thy God giveth +thee to possess it, lying in the field, and it be not known who hath +slain him: 21:2 Then thy elders and thy judges shall come forth, and +they shall measure unto the cities which are round about him that is +slain: 21:3 And it shall be, that the city which is next unto the +slain man, even the elders of that city shall take an heifer, which +hath not been wrought with, and which hath not drawn in the yoke; 21:4 +And the elders of that city shall bring down the heifer unto a rough +valley, which is neither eared nor sown, and shall strike off the +heifer's neck there in the valley: 21:5 And the priests the sons of +Levi shall come near; for them the LORD thy God hath chosen to +minister unto him, and to bless in the name of the LORD; and by their +word shall every controversy and every stroke be tried: 21:6 And all +the elders of that city, that are next unto the slain man, shall wash +their hands over the heifer that is beheaded in the valley: 21:7 And +they shall answer and say, Our hands have not shed this blood, neither +have our eyes seen it. + +21:8 Be merciful, O LORD, unto thy people Israel, whom thou hast +redeemed, and lay not innocent blood unto thy people of Israel's +charge. And the blood shall be forgiven them. + +21:9 So shalt thou put away the guilt of innocent blood from among +you, when thou shalt do that which is right in the sight of the LORD. + +21:10 When thou goest forth to war against thine enemies, and the LORD +thy God hath delivered them into thine hands, and thou hast taken them +captive, 21:11 And seest among the captives a beautiful woman, and +hast a desire unto her, that thou wouldest have her to thy wife; 21:12 +Then thou shalt bring her home to thine house, and she shall shave her +head, and pare her nails; 21:13 And she shall put the raiment of her +captivity from off her, and shall remain in thine house, and bewail +her father and her mother a full month: and after that thou shalt go +in unto her, and be her husband, and she shall be thy wife. + +21:14 And it shall be, if thou have no delight in her, then thou shalt +let her go whither she will; but thou shalt not sell her at all for +money, thou shalt not make merchandise of her, because thou hast +humbled her. + +21:15 If a man have two wives, one beloved, and another hated, and +they have born him children, both the beloved and the hated; and if +the firstborn son be hers that was hated: 21:16 Then it shall be, when +he maketh his sons to inherit that which he hath, that he may not make +the son of the beloved firstborn before the son of the hated, which is +indeed the firstborn: 21:17 But he shall acknowledge the son of the +hated for the firstborn, by giving him a double portion of all that he +hath: for he is the beginning of his strength; the right of the +firstborn is his. + +21:18 If a man have a stubborn and rebellious son, which will not obey +the voice of his father, or the voice of his mother, and that, when +they have chastened him, will not hearken unto them: 21:19 Then shall +his father and his mother lay hold on him, and bring him out unto the +elders of his city, and unto the gate of his place; 21:20 And they +shall say unto the elders of his city, This our son is stubborn and +rebellious, he will not obey our voice; he is a glutton, and a +drunkard. + +21:21 And all the men of his city shall stone him with stones, that he +die: so shalt thou put evil away from among you; and all Israel shall +hear, and fear. + +21:22 And if a man have committed a sin worthy of death, and he be to +be put to death, and thou hang him on a tree: 21:23 His body shall not +remain all night upon the tree, but thou shalt in any wise bury him +that day; (for he that is hanged is accursed of God;) that thy land be +not defiled, which the LORD thy God giveth thee for an inheritance. + +22:1 Thou shalt not see thy brother's ox or his sheep go astray, and +hide thyself from them: thou shalt in any case bring them again unto +thy brother. + +22:2 And if thy brother be not nigh unto thee, or if thou know him +not, then thou shalt bring it unto thine own house, and it shall be +with thee until thy brother seek after it, and thou shalt restore it +to him again. + +22:3 In like manner shalt thou do with his ass; and so shalt thou do +with his raiment; and with all lost thing of thy brother's, which he +hath lost, and thou hast found, shalt thou do likewise: thou mayest +not hide thyself. + +22:4 Thou shalt not see thy brother's ass or his ox fall down by the +way, and hide thyself from them: thou shalt surely help him to lift +them up again. + +22:5 The woman shall not wear that which pertaineth unto a man, +neither shall a man put on a woman's garment: for all that do so are +abomination unto the LORD thy God. + +22:6 If a bird's nest chance to be before thee in the way in any tree, +or on the ground, whether they be young ones, or eggs, and the dam +sitting upon the young, or upon the eggs, thou shalt not take the dam +with the young: 22:7 But thou shalt in any wise let the dam go, and +take the young to thee; that it may be well with thee, and that thou +mayest prolong thy days. + +22:8 When thou buildest a new house, then thou shalt make a battlement +for thy roof, that thou bring not blood upon thine house, if any man +fall from thence. + +22:9 Thou shalt not sow thy vineyard with divers seeds: lest the fruit +of thy seed which thou hast sown, and the fruit of thy vineyard, be +defiled. + +22:10 Thou shalt not plow with an ox and an ass together. + +22:11 Thou shalt not wear a garment of divers sorts, as of woollen and +linen together. + +22:12 Thou shalt make thee fringes upon the four quarters of thy +vesture, wherewith thou coverest thyself. + +22:13 If any man take a wife, and go in unto her, and hate her, 22:14 +And give occasions of speech against her, and bring up an evil name +upon her, and say, I took this woman, and when I came to her, I found +her not a maid: 22:15 Then shall the father of the damsel, and her +mother, take and bring forth the tokens of the damsel's virginity unto +the elders of the city in the gate: 22:16 And the damsel's father +shall say unto the elders, I gave my daughter unto this man to wife, +and he hateth her; 22:17 And, lo, he hath given occasions of speech +against her, saying, I found not thy daughter a maid; and yet these +are the tokens of my daughter's virginity. And they shall spread the +cloth before the elders of the city. + +22:18 And the elders of that city shall take that man and chastise +him; 22:19 And they shall amerce him in an hundred shekels of silver, +and give them unto the father of the damsel, because he hath brought +up an evil name upon a virgin of Israel: and she shall be his wife; he +may not put her away all his days. + +22:20 But if this thing be true, and the tokens of virginity be not +found for the damsel: 22:21 Then they shall bring out the damsel to +the door of her father's house, and the men of her city shall stone +her with stones that she die: because she hath wrought folly in +Israel, to play the whore in her father's house: so shalt thou put +evil away from among you. + +22:22 If a man be found lying with a woman married to an husband, then +they shall both of them die, both the man that lay with the woman, and +the woman: so shalt thou put away evil from Israel. + +22:23 If a damsel that is a virgin be betrothed unto an husband, and a +man find her in the city, and lie with her; 22:24 Then ye shall bring +them both out unto the gate of that city, and ye shall stone them with +stones that they die; the damsel, because she cried not, being in the +city; and the man, because he hath humbled his neighbour's wife: so +thou shalt put away evil from among you. + +22:25 But if a man find a betrothed damsel in the field, and the man +force her, and lie with her: then the man only that lay with her shall +die. + +22:26 But unto the damsel thou shalt do nothing; there is in the +damsel no sin worthy of death: for as when a man riseth against his +neighbour, and slayeth him, even so is this matter: 22:27 For he found +her in the field, and the betrothed damsel cried, and there was none +to save her. + +22:28 If a man find a damsel that is a virgin, which is not betrothed, +and lay hold on her, and lie with her, and they be found; 22:29 Then +the man that lay with her shall give unto the damsel's father fifty +shekels of silver, and she shall be his wife; because he hath humbled +her, he may not put her away all his days. + +22:30 A man shall not take his father's wife, nor discover his +father's skirt. + +23:1 He that is wounded in the stones, or hath his privy member cut +off, shall not enter into the congregation of the LORD. + +23:2 A bastard shall not enter into the congregation of the LORD; even +to his tenth generation shall he not enter into the congregation of +the LORD. + +23:3 An Ammonite or Moabite shall not enter into the congregation of +the LORD; even to their tenth generation shall they not enter into the +congregation of the LORD for ever: 23:4 Because they met you not with +bread and with water in the way, when ye came forth out of Egypt; and +because they hired against thee Balaam the son of Beor of Pethor of +Mesopotamia, to curse thee. + +23:5 Nevertheless the LORD thy God would not hearken unto Balaam; but +the LORD thy God turned the curse into a blessing unto thee, because +the LORD thy God loved thee. + +23:6 Thou shalt not seek their peace nor their prosperity all thy days +for ever. + +23:7 Thou shalt not abhor an Edomite; for he is thy brother: thou +shalt not abhor an Egyptian; because thou wast a stranger in his land. + +23:8 The children that are begotten of them shall enter into the +congregation of the LORD in their third generation. + +23:9 When the host goeth forth against thine enemies, then keep thee +from every wicked thing. + +23:10 If there be among you any man, that is not clean by reason of +uncleanness that chanceth him by night, then shall he go abroad out of +the camp, he shall not come within the camp: 23:11 But it shall be, +when evening cometh on, he shall wash himself with water: and when the +sun is down, he shall come into the camp again. + +23:12 Thou shalt have a place also without the camp, whither thou +shalt go forth abroad: 23:13 And thou shalt have a paddle upon thy +weapon; and it shall be, when thou wilt ease thyself abroad, thou +shalt dig therewith, and shalt turn back and cover that which cometh +from thee: 23:14 For the LORD thy God walketh in the midst of thy +camp, to deliver thee, and to give up thine enemies before thee; +therefore shall thy camp be holy: that he see no unclean thing in +thee, and turn away from thee. + +23:15 Thou shalt not deliver unto his master the servant which is +escaped from his master unto thee: 23:16 He shall dwell with thee, +even among you, in that place which he shall choose in one of thy +gates, where it liketh him best: thou shalt not oppress him. + +23:17 There shall be no whore of the daughters of Israel, nor a +sodomite of the sons of Israel. + +23:18 Thou shalt not bring the hire of a whore, or the price of a dog, +into the house of the LORD thy God for any vow: for even both these +are abomination unto the LORD thy God. + +23:19 Thou shalt not lend upon usury to thy brother; usury of money, +usury of victuals, usury of any thing that is lent upon usury: 23:20 +Unto a stranger thou mayest lend upon usury; but unto thy brother thou +shalt not lend upon usury: that the LORD thy God may bless thee in all +that thou settest thine hand to in the land whither thou goest to +possess it. + +23:21 When thou shalt vow a vow unto the LORD thy God, thou shalt not +slack to pay it: for the LORD thy God will surely require it of thee; +and it would be sin in thee. + +23:22 But if thou shalt forbear to vow, it shall be no sin in thee. + +23:23 That which is gone out of thy lips thou shalt keep and perform; +even a freewill offering, according as thou hast vowed unto the LORD +thy God, which thou hast promised with thy mouth. + +23:24 When thou comest into thy neighbour's vineyard, then thou mayest +eat grapes thy fill at thine own pleasure; but thou shalt not put any +in thy vessel. + +23:25 When thou comest into the standing corn of thy neighbour, then +thou mayest pluck the ears with thine hand; but thou shalt not move a +sickle unto thy neighbour's standing corn. + +24:1 When a man hath taken a wife, and married her, and it come to +pass that she find no favour in his eyes, because he hath found some +uncleanness in her: then let him write her a bill of divorcement, and +give it in her hand, and send her out of his house. + +24:2 And when she is departed out of his house, she may go and be +another man's wife. + +24:3 And if the latter husband hate her, and write her a bill of +divorcement, and giveth it in her hand, and sendeth her out of his +house; or if the latter husband die, which took her to be his wife; +24:4 Her former husband, which sent her away, may not take her again +to be his wife, after that she is defiled; for that is abomination +before the LORD: and thou shalt not cause the land to sin, which the +LORD thy God giveth thee for an inheritance. + +24:5 When a man hath taken a new wife, he shall not go out to war, +neither shall he be charged with any business: but he shall be free at +home one year, and shall cheer up his wife which he hath taken. + +24:6 No man shall take the nether or the upper millstone to pledge: +for he taketh a man's life to pledge. + +24:7 If a man be found stealing any of his brethren of the children of +Israel, and maketh merchandise of him, or selleth him; then that thief +shall die; and thou shalt put evil away from among you. + +24:8 Take heed in the plague of leprosy, that thou observe diligently, +and do according to all that the priests the Levites shall teach you: +as I commanded them, so ye shall observe to do. + +24:9 Remember what the LORD thy God did unto Miriam by the way, after +that ye were come forth out of Egypt. + +24:10 When thou dost lend thy brother any thing, thou shalt not go +into his house to fetch his pledge. + +24:11 Thou shalt stand abroad, and the man to whom thou dost lend +shall bring out the pledge abroad unto thee. + +24:12 And if the man be poor, thou shalt not sleep with his pledge: +24:13 In any case thou shalt deliver him the pledge again when the sun +goeth down, that he may sleep in his own raiment, and bless thee: and +it shall be righteousness unto thee before the LORD thy God. + +24:14 Thou shalt not oppress an hired servant that is poor and needy, +whether he be of thy brethren, or of thy strangers that are in thy +land within thy gates: 24:15 At his day thou shalt give him his hire, +neither shall the sun go down upon it; for he is poor, and setteth his +heart upon it: lest he cry against thee unto the LORD, and it be sin +unto thee. + +24:16 The fathers shall not be put to death for the children, neither +shall the children be put to death for the fathers: every man shall be +put to death for his own sin. + +24:17 Thou shalt not pervert the judgment of the stranger, nor of the +fatherless; nor take a widow's raiment to pledge: 24:18 But thou shalt +remember that thou wast a bondman in Egypt, and the LORD thy God +redeemed thee thence: therefore I command thee to do this thing. + +24:19 When thou cuttest down thine harvest in thy field, and hast +forgot a sheaf in the field, thou shalt not go again to fetch it: it +shall be for the stranger, for the fatherless, and for the widow: that +the LORD thy God may bless thee in all the work of thine hands. + +24:20 When thou beatest thine olive tree, thou shalt not go over the +boughs again: it shall be for the stranger, for the fatherless, and +for the widow. + +24:21 When thou gatherest the grapes of thy vineyard, thou shalt not +glean it afterward: it shall be for the stranger, for the fatherless, +and for the widow. + +24:22 And thou shalt remember that thou wast a bondman in the land of +Egypt: therefore I command thee to do this thing. + +25:1 If there be a controversy between men, and they come unto +judgment, that the judges may judge them; then they shall justify the +righteous, and condemn the wicked. + +25:2 And it shall be, if the wicked man be worthy to be beaten, that +the judge shall cause him to lie down, and to be beaten before his +face, according to his fault, by a certain number. + +25:3 Forty stripes he may give him, and not exceed: lest, if he should +exceed, and beat him above these with many stripes, then thy brother +should seem vile unto thee. + +25:4 Thou shalt not muzzle the ox when he treadeth out the corn. + +25:5 If brethren dwell together, and one of them die, and have no +child, the wife of the dead shall not marry without unto a stranger: +her husband's brother shall go in unto her, and take her to him to +wife, and perform the duty of an husband's brother unto her. + +25:6 And it shall be, that the firstborn which she beareth shall +succeed in the name of his brother which is dead, that his name be not +put out of Israel. + +25:7 And if the man like not to take his brother's wife, then let his +brother's wife go up to the gate unto the elders, and say, My +husband's brother refuseth to raise up unto his brother a name in +Israel, he will not perform the duty of my husband's brother. + +25:8 Then the elders of his city shall call him, and speak unto him: +and if he stand to it, and say, I like not to take her; 25:9 Then +shall his brother's wife come unto him in the presence of the elders, +and loose his shoe from off his foot, and spit in his face, and shall +answer and say, So shall it be done unto that man that will not build +up his brother's house. + +25:10 And his name shall be called in Israel, The house of him that +hath his shoe loosed. + +25:11 When men strive together one with another, and the wife of the +one draweth near for to deliver her husband out of the hand of him +that smiteth him, and putteth forth her hand, and taketh him by the +secrets: 25:12 Then thou shalt cut off her hand, thine eye shall not +pity her. + +25:13 Thou shalt not have in thy bag divers weights, a great and a +small. + +25:14 Thou shalt not have in thine house divers measures, a great and +a small. + +25:15 But thou shalt have a perfect and just weight, a perfect and +just measure shalt thou have: that thy days may be lengthened in the +land which the LORD thy God giveth thee. + +25:16 For all that do such things, and all that do unrighteously, are +an abomination unto the LORD thy God. + +25:17 Remember what Amalek did unto thee by the way, when ye were come +forth out of Egypt; 25:18 How he met thee by the way, and smote the +hindmost of thee, even all that were feeble behind thee, when thou +wast faint and weary; and he feared not God. + +25:19 Therefore it shall be, when the LORD thy God hath given thee +rest from all thine enemies round about, in the land which the LORD +thy God giveth thee for an inheritance to possess it, that thou shalt +blot out the remembrance of Amalek from under heaven; thou shalt not +forget it. + +26:1 And it shall be, when thou art come in unto the land which the +LORD thy God giveth thee for an inheritance, and possessest it, and +dwellest therein; 26:2 That thou shalt take of the first of all the +fruit of the earth, which thou shalt bring of thy land that the LORD +thy God giveth thee, and shalt put it in a basket, and shalt go unto +the place which the LORD thy God shall choose to place his name there. + +26:3 And thou shalt go unto the priest that shall be in those days, +and say unto him, I profess this day unto the LORD thy God, that I am +come unto the country which the LORD sware unto our fathers for to +give us. + +26:4 And the priest shall take the basket out of thine hand, and set +it down before the altar of the LORD thy God. + +26:5 And thou shalt speak and say before the LORD thy God, A Syrian +ready to perish was my father, and he went down into Egypt, and +sojourned there with a few, and became there a nation, great, mighty, +and populous: 26:6 And the Egyptians evil entreated us, and afflicted +us, and laid upon us hard bondage: 26:7 And when we cried unto the +LORD God of our fathers, the LORD heard our voice, and looked on our +affliction, and our labour, and our oppression: 26:8 And the LORD +brought us forth out of Egypt with a mighty hand, and with an +outstretched arm, and with great terribleness, and with signs, and +with wonders: 26:9 And he hath brought us into this place, and hath +given us this land, even a land that floweth with milk and honey. + +26:10 And now, behold, I have brought the firstfruits of the land, +which thou, O LORD, hast given me. And thou shalt set it before the +LORD thy God, and worship before the LORD thy God: 26:11 And thou +shalt rejoice in every good thing which the LORD thy God hath given +unto thee, and unto thine house, thou, and the Levite, and the +stranger that is among you. + +26:12 When thou hast made an end of tithing all the tithes of thine +increase the third year, which is the year of tithing, and hast given +it unto the Levite, the stranger, the fatherless, and the widow, that +they may eat within thy gates, and be filled; 26:13 Then thou shalt +say before the LORD thy God, I have brought away the hallowed things +out of mine house, and also have given them unto the Levite, and unto +the stranger, to the fatherless, and to the widow, according to all +thy commandments which thou hast commanded me: I have not transgressed +thy commandments, neither have I forgotten them. + +26:14 I have not eaten thereof in my mourning, neither have I taken +away ought thereof for any unclean use, nor given ought thereof for +the dead: but I have hearkened to the voice of the LORD my God, and +have done according to all that thou hast commanded me. + +26:15 Look down from thy holy habitation, from heaven, and bless thy +people Israel, and the land which thou hast given us, as thou swarest +unto our fathers, a land that floweth with milk and honey. + +26:16 This day the LORD thy God hath commanded thee to do these +statutes and judgments: thou shalt therefore keep and do them with all +thine heart, and with all thy soul. + +26:17 Thou hast avouched the LORD this day to be thy God, and to walk +in his ways, and to keep his statutes, and his commandments, and his +judgments, and to hearken unto his voice: 26:18 And the LORD hath +avouched thee this day to be his peculiar people, as he hath promised +thee, and that thou shouldest keep all his commandments; 26:19 And to +make thee high above all nations which he hath made, in praise, and in +name, and in honour; and that thou mayest be an holy people unto the +LORD thy God, as he hath spoken. + +27:1 And Moses with the elders of Israel commanded the people, saying, +Keep all the commandments which I command you this day. + +27:2 And it shall be on the day when ye shall pass over Jordan unto +the land which the LORD thy God giveth thee, that thou shalt set thee +up great stones, and plaister them with plaister: 27:3 And thou shalt +write upon them all the words of this law, when thou art passed over, +that thou mayest go in unto the land which the LORD thy God giveth +thee, a land that floweth with milk and honey; as the LORD God of thy +fathers hath promised thee. + +27:4 Therefore it shall be when ye be gone over Jordan, that ye shall +set up these stones, which I command you this day, in mount Ebal, and +thou shalt plaister them with plaister. + +27:5 And there shalt thou build an altar unto the LORD thy God, an +altar of stones: thou shalt not lift up any iron tool upon them. + +27:6 Thou shalt build the altar of the LORD thy God of whole stones: +and thou shalt offer burnt offerings thereon unto the LORD thy God: +27:7 And thou shalt offer peace offerings, and shalt eat there, and +rejoice before the LORD thy God. + +27:8 And thou shalt write upon the stones all the words of this law +very plainly. + +27:9 And Moses and the priests the Levites spake unto all Israel, +saying, Take heed, and hearken, O Israel; this day thou art become the +people of the LORD thy God. + +27:10 Thou shalt therefore obey the voice of the LORD thy God, and do +his commandments and his statutes, which I command thee this day. + +27:11 And Moses charged the people the same day, saying, 27:12 These +shall stand upon mount Gerizim to bless the people, when ye are come +over Jordan; Simeon, and Levi, and Judah, and Issachar, and Joseph, +and Benjamin: 27:13 And these shall stand upon mount Ebal to curse; +Reuben, Gad, and Asher, and Zebulun, Dan, and Naphtali. + +27:14 And the Levites shall speak, and say unto all the men of Israel +with a loud voice, 27:15 Cursed be the man that maketh any graven or +molten image, an abomination unto the LORD, the work of the hands of +the craftsman, and putteth it in a secret place. And all the people +shall answer and say, Amen. + +27:16 Cursed be he that setteth light by his father or his mother. And +all the people shall say, Amen. + +27:17 Cursed be he that removeth his neighbour's landmark. And all the +people shall say, Amen. + +27:18 Cursed be he that maketh the blind to wander out of the way. And +all the people shall say, Amen. + +27:19 Cursed be he that perverteth the judgment of the stranger, +fatherless, and widow. And all the people shall say, Amen. + +27:20 Cursed be he that lieth with his father's wife; because he +uncovereth his father's skirt. And all the people shall say, Amen. + +27:21 Cursed be he that lieth with any manner of beast. And all the +people shall say, Amen. + +27:22 Cursed be he that lieth with his sister, the daughter of his +father, or the daughter of his mother. And all the people shall say, +Amen. + +27:23 Cursed be he that lieth with his mother in law. And all the +people shall say, Amen. + +27:24 Cursed be he that smiteth his neighbour secretly. And all the +people shall say, Amen. + +27:25 Cursed be he that taketh reward to slay an innocent person. And +all the people shall say, Amen. + +27:26 Cursed be he that confirmeth not all the words of this law to do +them. And all the people shall say, Amen. + +28:1 And it shall come to pass, if thou shalt hearken diligently unto +the voice of the LORD thy God, to observe and to do all his +commandments which I command thee this day, that the LORD thy God will +set thee on high above all nations of the earth: 28:2 And all these +blessings shall come on thee, and overtake thee, if thou shalt hearken +unto the voice of the LORD thy God. + +28:3 Blessed shalt thou be in the city, and blessed shalt thou be in +the field. + +28:4 Blessed shall be the fruit of thy body, and the fruit of thy +ground, and the fruit of thy cattle, the increase of thy kine, and the +flocks of thy sheep. + +28:5 Blessed shall be thy basket and thy store. + +28:6 Blessed shalt thou be when thou comest in, and blessed shalt thou +be when thou goest out. + +28:7 The LORD shall cause thine enemies that rise up against thee to +be smitten before thy face: they shall come out against thee one way, +and flee before thee seven ways. + +28:8 The LORD shall command the blessing upon thee in thy storehouses, +and in all that thou settest thine hand unto; and he shall bless thee +in the land which the LORD thy God giveth thee. + +28:9 The LORD shall establish thee an holy people unto himself, as he +hath sworn unto thee, if thou shalt keep the commandments of the LORD +thy God, and walk in his ways. + +28:10 And all people of the earth shall see that thou art called by +the name of the LORD; and they shall be afraid of thee. + +28:11 And the LORD shall make thee plenteous in goods, in the fruit of +thy body, and in the fruit of thy cattle, and in the fruit of thy +ground, in the land which the LORD sware unto thy fathers to give +thee. + +28:12 The LORD shall open unto thee his good treasure, the heaven to +give the rain unto thy land in his season, and to bless all the work +of thine hand: and thou shalt lend unto many nations, and thou shalt +not borrow. + +28:13 And the LORD shall make thee the head, and not the tail; and +thou shalt be above only, and thou shalt not be beneath; if that thou +hearken unto the commandments of the LORD thy God, which I command +thee this day, to observe and to do them: 28:14 And thou shalt not go +aside from any of the words which I command thee this day, to the +right hand, or to the left, to go after other gods to serve them. + +28:15 But it shall come to pass, if thou wilt not hearken unto the +voice of the LORD thy God, to observe to do all his commandments and +his statutes which I command thee this day; that all these curses +shall come upon thee, and overtake thee: 28:16 Cursed shalt thou be in +the city, and cursed shalt thou be in the field. + +28:17 Cursed shall be thy basket and thy store. + +28:18 Cursed shall be the fruit of thy body, and the fruit of thy +land, the increase of thy kine, and the flocks of thy sheep. + +28:19 Cursed shalt thou be when thou comest in, and cursed shalt thou +be when thou goest out. + +28:20 The LORD shall send upon thee cursing, vexation, and rebuke, in +all that thou settest thine hand unto for to do, until thou be +destroyed, and until thou perish quickly; because of the wickedness of +thy doings, whereby thou hast forsaken me. + +28:21 The LORD shall make the pestilence cleave unto thee, until he +have consumed thee from off the land, whither thou goest to possess +it. + +28:22 The LORD shall smite thee with a consumption, and with a fever, +and with an inflammation, and with an extreme burning, and with the +sword, and with blasting, and with mildew; and they shall pursue thee +until thou perish. + +28:23 And thy heaven that is over thy head shall be brass, and the +earth that is under thee shall be iron. + +28:24 The LORD shall make the rain of thy land powder and dust: from +heaven shall it come down upon thee, until thou be destroyed. + +28:25 The LORD shall cause thee to be smitten before thine enemies: +thou shalt go out one way against them, and flee seven ways before +them: and shalt be removed into all the kingdoms of the earth. + +28:26 And thy carcase shall be meat unto all fowls of the air, and +unto the beasts of the earth, and no man shall fray them away. + +28:27 The LORD will smite thee with the botch of Egypt, and with the +emerods, and with the scab, and with the itch, whereof thou canst not +be healed. + +28:28 The LORD shall smite thee with madness, and blindness, and +astonishment of heart: 28:29 And thou shalt grope at noonday, as the +blind gropeth in darkness, and thou shalt not prosper in thy ways: and +thou shalt be only oppressed and spoiled evermore, and no man shall +save thee. + +28:30 Thou shalt betroth a wife, and another man shall lie with her: +thou shalt build an house, and thou shalt not dwell therein: thou +shalt plant a vineyard, and shalt not gather the grapes thereof. + +28:31 Thine ox shall be slain before thine eyes, and thou shalt not +eat thereof: thine ass shall be violently taken away from before thy +face, and shall not be restored to thee: thy sheep shall be given unto +thine enemies, and thou shalt have none to rescue them. + +28:32 Thy sons and thy daughters shall be given unto another people, +and thine eyes shall look, and fail with longing for them all the day +long; and there shall be no might in thine hand. + +28:33 The fruit of thy land, and all thy labours, shall a nation which +thou knowest not eat up; and thou shalt be only oppressed and crushed +alway: 28:34 So that thou shalt be mad for the sight of thine eyes +which thou shalt see. + +28:35 The LORD shall smite thee in the knees, and in the legs, with a +sore botch that cannot be healed, from the sole of thy foot unto the +top of thy head. + +28:36 The LORD shall bring thee, and thy king which thou shalt set +over thee, unto a nation which neither thou nor thy fathers have +known; and there shalt thou serve other gods, wood and stone. + +28:37 And thou shalt become an astonishment, a proverb, and a byword, +among all nations whither the LORD shall lead thee. + +28:38 Thou shalt carry much seed out into the field, and shalt gather +but little in; for the locust shall consume it. + +28:39 Thou shalt plant vineyards, and dress them, but shalt neither +drink of the wine, nor gather the grapes; for the worms shall eat +them. + +28:40 Thou shalt have olive trees throughout all thy coasts, but thou +shalt not anoint thyself with the oil; for thine olive shall cast his +fruit. + +28:41 Thou shalt beget sons and daughters, but thou shalt not enjoy +them; for they shall go into captivity. + +28:42 All thy trees and fruit of thy land shall the locust consume. + +28:43 The stranger that is within thee shall get up above thee very +high; and thou shalt come down very low. + +28:44 He shall lend to thee, and thou shalt not lend to him: he shall +be the head, and thou shalt be the tail. + +28:45 Moreover all these curses shall come upon thee, and shall pursue +thee, and overtake thee, till thou be destroyed; because thou +hearkenedst not unto the voice of the LORD thy God, to keep his +commandments and his statutes which he commanded thee: 28:46 And they +shall be upon thee for a sign and for a wonder, and upon thy seed for +ever. + +28:47 Because thou servedst not the LORD thy God with joyfulness, and +with gladness of heart, for the abundance of all things; 28:48 +Therefore shalt thou serve thine enemies which the LORD shall send +against thee, in hunger, and in thirst, and in nakedness, and in want +of all things: and he shall put a yoke of iron upon thy neck, until he +have destroyed thee. + +28:49 The LORD shall bring a nation against thee from far, from the +end of the earth, as swift as the eagle flieth; a nation whose tongue +thou shalt not understand; 28:50 A nation of fierce countenance, which +shall not regard the person of the old, nor shew favour to the young: +28:51 And he shall eat the fruit of thy cattle, and the fruit of thy +land, until thou be destroyed: which also shall not leave thee either +corn, wine, or oil, or the increase of thy kine, or flocks of thy +sheep, until he have destroyed thee. + +28:52 And he shall besiege thee in all thy gates, until thy high and +fenced walls come down, wherein thou trustedst, throughout all thy +land: and he shall besiege thee in all thy gates throughout all thy +land, which the LORD thy God hath given thee. + +28:53 And thou shalt eat the fruit of thine own body, the flesh of thy +sons and of thy daughters, which the LORD thy God hath given thee, in +the siege, and in the straitness, wherewith thine enemies shall +distress thee: 28:54 So that the man that is tender among you, and +very delicate, his eye shall be evil toward his brother, and toward +the wife of his bosom, and toward the remnant of his children which he +shall leave: 28:55 So that he will not give to any of them of the +flesh of his children whom he shall eat: because he hath nothing left +him in the siege, and in the straitness, wherewith thine enemies shall +distress thee in all thy gates. + +28:56 The tender and delicate woman among you, which would not +adventure to set the sole of her foot upon the ground for delicateness +and tenderness, her eye shall be evil toward the husband of her bosom, +and toward her son, and toward her daughter, 28:57 And toward her +young one that cometh out from between her feet, and toward her +children which she shall bear: for she shall eat them for want of all +things secretly in the siege and straitness, wherewith thine enemy +shall distress thee in thy gates. + +28:58 If thou wilt not observe to do all the words of this law that +are written in this book, that thou mayest fear this glorious and +fearful name, THE LORD THY GOD; 28:59 Then the LORD will make thy +plagues wonderful, and the plagues of thy seed, even great plagues, +and of long continuance, and sore sicknesses, and of long continuance. + +28:60 Moreover he will bring upon thee all the diseases of Egypt, +which thou wast afraid of; and they shall cleave unto thee. + +28:61 Also every sickness, and every plague, which is not written in +the book of this law, them will the LORD bring upon thee, until thou +be destroyed. + +28:62 And ye shall be left few in number, whereas ye were as the stars +of heaven for multitude; because thou wouldest not obey the voice of +the LORD thy God. + +28:63 And it shall come to pass, that as the LORD rejoiced over you to +do you good, and to multiply you; so the LORD will rejoice over you to +destroy you, and to bring you to nought; and ye shall be plucked from +off the land whither thou goest to possess it. + +28:64 And the LORD shall scatter thee among all people, from the one +end of the earth even unto the other; and there thou shalt serve other +gods, which neither thou nor thy fathers have known, even wood and +stone. + +28:65 And among these nations shalt thou find no ease, neither shall +the sole of thy foot have rest: but the LORD shall give thee there a +trembling heart, and failing of eyes, and sorrow of mind: 28:66 And +thy life shall hang in doubt before thee; and thou shalt fear day and +night, and shalt have none assurance of thy life: 28:67 In the morning +thou shalt say, Would God it were even! and at even thou shalt say, +Would God it were morning! for the fear of thine heart wherewith thou +shalt fear, and for the sight of thine eyes which thou shalt see. + +28:68 And the LORD shall bring thee into Egypt again with ships, by +the way whereof I spake unto thee, Thou shalt see it no more again: +and there ye shall be sold unto your enemies for bondmen and +bondwomen, and no man shall buy you. + +29:1 These are the words of the covenant, which the LORD commanded +Moses to make with the children of Israel in the land of Moab, beside +the covenant which he made with them in Horeb. + +29:2 And Moses called unto all Israel, and said unto them, Ye have +seen all that the LORD did before your eyes in the land of Egypt unto +Pharaoh, and unto all his servants, and unto all his land; 29:3 The +great temptations which thine eyes have seen, the signs, and those +great miracles: 29:4 Yet the LORD hath not given you an heart to +perceive, and eyes to see, and ears to hear, unto this day. + +29:5 And I have led you forty years in the wilderness: your clothes +are not waxen old upon you, and thy shoe is not waxen old upon thy +foot. + +29:6 Ye have not eaten bread, neither have ye drunk wine or strong +drink: that ye might know that I am the LORD your God. + +29:7 And when ye came unto this place, Sihon the king of Heshbon, and +Og the king of Bashan, came out against us unto battle, and we smote +them: 29:8 And we took their land, and gave it for an inheritance unto +the Reubenites, and to the Gadites, and to the half tribe of Manasseh. + +29:9 Keep therefore the words of this covenant, and do them, that ye +may prosper in all that ye do. + +29:10 Ye stand this day all of you before the LORD your God; your +captains of your tribes, your elders, and your officers, with all the +men of Israel, 29:11 Your little ones, your wives, and thy stranger +that is in thy camp, from the hewer of thy wood unto the drawer of thy +water: 29:12 That thou shouldest enter into covenant with the LORD thy +God, and into his oath, which the LORD thy God maketh with thee this +day: 29:13 That he may establish thee to day for a people unto +himself, and that he may be unto thee a God, as he hath said unto +thee, and as he hath sworn unto thy fathers, to Abraham, to Isaac, and +to Jacob. + +29:14 Neither with you only do I make this covenant and this oath; +29:15 But with him that standeth here with us this day before the LORD +our God, and also with him that is not here with us this day: 29:16 +(For ye know how we have dwelt in the land of Egypt; and how we came +through the nations which ye passed by; 29:17 And ye have seen their +abominations, and their idols, wood and stone, silver and gold, which +were among them:) 29:18 Lest there should be among you man, or woman, +or family, or tribe, whose heart turneth away this day from the LORD +our God, to go and serve the gods of these nations; lest there should +be among you a root that beareth gall and wormwood; 29:19 And it come +to pass, when he heareth the words of this curse, that he bless +himself in his heart, saying, I shall have peace, though I walk in the +imagination of mine heart, to add drunkenness to thirst: 29:20 The +LORD will not spare him, but then the anger of the LORD and his +jealousy shall smoke against that man, and all the curses that are +written in this book shall lie upon him, and the LORD shall blot out +his name from under heaven. + +29:21 And the LORD shall separate him unto evil out of all the tribes +of Israel, according to all the curses of the covenant that are +written in this book of the law: 29:22 So that the generation to come +of your children that shall rise up after you, and the stranger that +shall come from a far land, shall say, when they see the plagues of +that land, and the sicknesses which the LORD hath laid upon it; 29:23 +And that the whole land thereof is brimstone, and salt, and burning, +that it is not sown, nor beareth, nor any grass groweth therein, like +the overthrow of Sodom, and Gomorrah, Admah, and Zeboim, which the +LORD overthrew in his anger, and in his wrath: 29:24 Even all nations +shall say, Wherefore hath the LORD done thus unto this land? what +meaneth the heat of this great anger? 29:25 Then men shall say, +Because they have forsaken the covenant of the LORD God of their +fathers, which he made with them when he brought them forth out of the +land of Egypt: 29:26 For they went and served other gods, and +worshipped them, gods whom they knew not, and whom he had not given +unto them: 29:27 And the anger of the LORD was kindled against this +land, to bring upon it all the curses that are written in this book: +29:28 And the LORD rooted them out of their land in anger, and in +wrath, and in great indignation, and cast them into another land, as +it is this day. + +29:29 The secret things belong unto the LORD our God: but those things +which are revealed belong unto us and to our children for ever, that +we may do all the words of this law. + +30:1 And it shall come to pass, when all these things are come upon +thee, the blessing and the curse, which I have set before thee, and +thou shalt call them to mind among all the nations, whither the LORD +thy God hath driven thee, 30:2 And shalt return unto the LORD thy God, +and shalt obey his voice according to all that I command thee this +day, thou and thy children, with all thine heart, and with all thy +soul; 30:3 That then the LORD thy God will turn thy captivity, and +have compassion upon thee, and will return and gather thee from all +the nations, whither the LORD thy God hath scattered thee. + +30:4 If any of thine be driven out unto the outmost parts of heaven, +from thence will the LORD thy God gather thee, and from thence will he +fetch thee: 30:5 And the LORD thy God will bring thee into the land +which thy fathers possessed, and thou shalt possess it; and he will do +thee good, and multiply thee above thy fathers. + +30:6 And the LORD thy God will circumcise thine heart, and the heart +of thy seed, to love the LORD thy God with all thine heart, and with +all thy soul, that thou mayest live. + +30:7 And the LORD thy God will put all these curses upon thine +enemies, and on them that hate thee, which persecuted thee. + +30:8 And thou shalt return and obey the voice of the LORD, and do all +his commandments which I command thee this day. + +30:9 And the LORD thy God will make thee plenteous in every work of +thine hand, in the fruit of thy body, and in the fruit of thy cattle, +and in the fruit of thy land, for good: for the LORD will again +rejoice over thee for good, as he rejoiced over thy fathers: 30:10 If +thou shalt hearken unto the voice of the LORD thy God, to keep his +commandments and his statutes which are written in this book of the +law, and if thou turn unto the LORD thy God with all thine heart, and +with all thy soul. + +30:11 For this commandment which I command thee this day, it is not +hidden from thee, neither is it far off. + +30:12 It is not in heaven, that thou shouldest say, Who shall go up +for us to heaven, and bring it unto us, that we may hear it, and do +it? 30:13 Neither is it beyond the sea, that thou shouldest say, Who +shall go over the sea for us, and bring it unto us, that we may hear +it, and do it? 30:14 But the word is very nigh unto thee, in thy +mouth, and in thy heart, that thou mayest do it. + +30:15 See, I have set before thee this day life and good, and death +and evil; 30:16 In that I command thee this day to love the LORD thy +God, to walk in his ways, and to keep his commandments and his +statutes and his judgments, that thou mayest live and multiply: and +the LORD thy God shall bless thee in the land whither thou goest to +possess it. + +30:17 But if thine heart turn away, so that thou wilt not hear, but +shalt be drawn away, and worship other gods, and serve them; 30:18 I +denounce unto you this day, that ye shall surely perish, and that ye +shall not prolong your days upon the land, whither thou passest over +Jordan to go to possess it. + +30:19 I call heaven and earth to record this day against you, that I +have set before you life and death, blessing and cursing: therefore +choose life, that both thou and thy seed may live: 30:20 That thou +mayest love the LORD thy God, and that thou mayest obey his voice, and +that thou mayest cleave unto him: for he is thy life, and the length +of thy days: that thou mayest dwell in the land which the LORD sware +unto thy fathers, to Abraham, to Isaac, and to Jacob, to give them. + +31:1 And Moses went and spake these words unto all Israel. + +31:2 And he said unto them, I am an hundred and twenty years old this +day; I can no more go out and come in: also the LORD hath said unto +me, Thou shalt not go over this Jordan. + +31:3 The LORD thy God, he will go over before thee, and he will +destroy these nations from before thee, and thou shalt possess them: +and Joshua, he shall go over before thee, as the LORD hath said. + +31:4 And the LORD shall do unto them as he did to Sihon and to Og, +kings of the Amorites, and unto the land of them, whom he destroyed. + +31:5 And the LORD shall give them up before your face, that ye may do +unto them according unto all the commandments which I have commanded +you. + +31:6 Be strong and of a good courage, fear not, nor be afraid of them: +for the LORD thy God, he it is that doth go with thee; he will not +fail thee, nor forsake thee. + +31:7 And Moses called unto Joshua, and said unto him in the sight of +all Israel, Be strong and of a good courage: for thou must go with +this people unto the land which the LORD hath sworn unto their fathers +to give them; and thou shalt cause them to inherit it. + +31:8 And the LORD, he it is that doth go before thee; he will be with +thee, he will not fail thee, neither forsake thee: fear not, neither +be dismayed. + +31:9 And Moses wrote this law, and delivered it unto the priests the +sons of Levi, which bare the ark of the covenant of the LORD, and unto +all the elders of Israel. + +31:10 And Moses commanded them, saying, At the end of every seven +years, in the solemnity of the year of release, in the feast of +tabernacles, 31:11 When all Israel is come to appear before the LORD +thy God in the place which he shall choose, thou shalt read this law +before all Israel in their hearing. + +31:12 Gather the people together, men and women, and children, and thy +stranger that is within thy gates, that they may hear, and that they +may learn, and fear the LORD your God, and observe to do all the words +of this law: 31:13 And that their children, which have not known any +thing, may hear, and learn to fear the LORD your God, as long as ye +live in the land whither ye go over Jordan to possess it. + +31:14 And the LORD said unto Moses, Behold, thy days approach that +thou must die: call Joshua, and present yourselves in the tabernacle +of the congregation, that I may give him a charge. And Moses and +Joshua went, and presented themselves in the tabernacle of the +congregation. + +31:15 And the LORD appeared in the tabernacle in a pillar of a cloud: +and the pillar of the cloud stood over the door of the tabernacle. + +31:16 And the LORD said unto Moses, Behold, thou shalt sleep with thy +fathers; and this people will rise up, and go a whoring after the gods +of the strangers of the land, whither they go to be among them, and +will forsake me, and break my covenant which I have made with them. + +31:17 Then my anger shall be kindled against them in that day, and I +will forsake them, and I will hide my face from them, and they shall +be devoured, and many evils and troubles shall befall them; so that +they will say in that day, Are not these evils come upon us, because +our God is not among us? 31:18 And I will surely hide my face in that +day for all the evils which they shall have wrought, in that they are +turned unto other gods. + +31:19 Now therefore write ye this song for you, and teach it the +children of Israel: put it in their mouths, that this song may be a +witness for me against the children of Israel. + +31:20 For when I shall have brought them into the land which I sware +unto their fathers, that floweth with milk and honey; and they shall +have eaten and filled themselves, and waxen fat; then will they turn +unto other gods, and serve them, and provoke me, and break my +covenant. + +31:21 And it shall come to pass, when many evils and troubles are +befallen them, that this song shall testify against them as a witness; +for it shall not be forgotten out of the mouths of their seed: for I +know their imagination which they go about, even now, before I have +brought them into the land which I sware. + +31:22 Moses therefore wrote this song the same day, and taught it the +children of Israel. + +31:23 And he gave Joshua the son of Nun a charge, and said, Be strong +and of a good courage: for thou shalt bring the children of Israel +into the land which I sware unto them: and I will be with thee. + +31:24 And it came to pass, when Moses had made an end of writing the +words of this law in a book, until they were finished, 31:25 That +Moses commanded the Levites, which bare the ark of the covenant of the +LORD, saying, 31:26 Take this book of the law, and put it in the side +of the ark of the covenant of the LORD your God, that it may be there +for a witness against thee. + +31:27 For I know thy rebellion, and thy stiff neck: behold, while I am +yet alive with you this day, ye have been rebellious against the LORD; +and how much more after my death? 31:28 Gather unto me all the elders +of your tribes, and your officers, that I may speak these words in +their ears, and call heaven and earth to record against them. + +31:29 For I know that after my death ye will utterly corrupt +yourselves, and turn aside from the way which I have commanded you; +and evil will befall you in the latter days; because ye will do evil +in the sight of the LORD, to provoke him to anger through the work of +your hands. + +31:30 And Moses spake in the ears of all the congregation of Israel +the words of this song, until they were ended. + +32:1 Give ear, O ye heavens, and I will speak; and hear, O earth, the +words of my mouth. + +32:2 My doctrine shall drop as the rain, my speech shall distil as the +dew, as the small rain upon the tender herb, and as the showers upon +the grass: 32:3 Because I will publish the name of the LORD: ascribe +ye greatness unto our God. + +32:4 He is the Rock, his work is perfect: for all his ways are +judgment: a God of truth and without iniquity, just and right is he. + +32:5 They have corrupted themselves, their spot is not the spot of his +children: they are a perverse and crooked generation. + +32:6 Do ye thus requite the LORD, O foolish people and unwise? is not +he thy father that hath bought thee? hath he not made thee, and +established thee? 32:7 Remember the days of old, consider the years +of many generations: ask thy father, and he will shew thee; thy +elders, and they will tell thee. + +32:8 When the Most High divided to the nations their inheritance, when +he separated the sons of Adam, he set the bounds of the people +according to the number of the children of Israel. + +32:9 For the LORD's portion is his people; Jacob is the lot of his +inheritance. + +32:10 He found him in a desert land, and in the waste howling +wilderness; he led him about, he instructed him, he kept him as the +apple of his eye. + +32:11 As an eagle stirreth up her nest, fluttereth over her young, +spreadeth abroad her wings, taketh them, beareth them on her wings: +32:12 So the LORD alone did lead him, and there was no strange god +with him. + +32:13 He made him ride on the high places of the earth, that he might +eat the increase of the fields; and he made him to suck honey out of +the rock, and oil out of the flinty rock; 32:14 Butter of kine, and +milk of sheep, with fat of lambs, and rams of the breed of Bashan, and +goats, with the fat of kidneys of wheat; and thou didst drink the pure +blood of the grape. + +32:15 But Jeshurun waxed fat, and kicked: thou art waxen fat, thou art +grown thick, thou art covered with fatness; then he forsook God which +made him, and lightly esteemed the Rock of his salvation. + +32:16 They provoked him to jealousy with strange gods, with +abominations provoked they him to anger. + +32:17 They sacrificed unto devils, not to God; to gods whom they knew +not, to new gods that came newly up, whom your fathers feared not. + +32:18 Of the Rock that begat thee thou art unmindful, and hast +forgotten God that formed thee. + +32:19 And when the LORD saw it, he abhorred them, because of the +provoking of his sons, and of his daughters. + +32:20 And he said, I will hide my face from them, I will see what +their end shall be: for they are a very froward generation, children +in whom is no faith. + +32:21 They have moved me to jealousy with that which is not God; they +have provoked me to anger with their vanities: and I will move them to +jealousy with those which are not a people; I will provoke them to +anger with a foolish nation. + +32:22 For a fire is kindled in mine anger, and shall burn unto the +lowest hell, and shall consume the earth with her increase, and set on +fire the foundations of the mountains. + +32:23 I will heap mischiefs upon them; I will spend mine arrows upon +them. + +32:24 They shall be burnt with hunger, and devoured with burning heat, +and with bitter destruction: I will also send the teeth of beasts upon +them, with the poison of serpents of the dust. + +32:25 The sword without, and terror within, shall destroy both the +young man and the virgin, the suckling also with the man of gray +hairs. + +32:26 I said, I would scatter them into corners, I would make the +remembrance of them to cease from among men: 32:27 Were it not that I +feared the wrath of the enemy, lest their adversaries should behave +themselves strangely, and lest they should say, Our hand is high, and +the LORD hath not done all this. + +32:28 For they are a nation void of counsel, neither is there any +understanding in them. + +32:29 O that they were wise, that they understood this, that they +would consider their latter end! 32:30 How should one chase a +thousand, and two put ten thousand to flight, except their Rock had +sold them, and the LORD had shut them up? 32:31 For their rock is not +as our Rock, even our enemies themselves being judges. + +32:32 For their vine is of the vine of Sodom, and of the fields of +Gomorrah: their grapes are grapes of gall, their clusters are bitter: +32:33 Their wine is the poison of dragons, and the cruel venom of +asps. + +32:34 Is not this laid up in store with me, and sealed up among my +treasures? 32:35 To me belongeth vengeance and recompence; their foot +shall slide in due time: for the day of their calamity is at hand, and +the things that shall come upon them make haste. + +32:36 For the LORD shall judge his people, and repent himself for his +servants, when he seeth that their power is gone, and there is none +shut up, or left. + +32:37 And he shall say, Where are their gods, their rock in whom they +trusted, 32:38 Which did eat the fat of their sacrifices, and drank +the wine of their drink offerings? let them rise up and help you, and +be your protection. + +32:39 See now that I, even I, am he, and there is no god with me: I +kill, and I make alive; I wound, and I heal: neither is there any that +can deliver out of my hand. + +32:40 For I lift up my hand to heaven, and say, I live for ever. + +32:41 If I whet my glittering sword, and mine hand take hold on +judgment; I will render vengeance to mine enemies, and will reward +them that hate me. + +32:42 I will make mine arrows drunk with blood, and my sword shall +devour flesh; and that with the blood of the slain and of the +captives, from the beginning of revenges upon the enemy. + +32:43 Rejoice, O ye nations, with his people: for he will avenge the +blood of his servants, and will render vengeance to his adversaries, +and will be merciful unto his land, and to his people. + +32:44 And Moses came and spake all the words of this song in the ears +of the people, he, and Hoshea the son of Nun. + +32:45 And Moses made an end of speaking all these words to all Israel: +32:46 And he said unto them, Set your hearts unto all the words which +I testify among you this day, which ye shall command your children to +observe to do, all the words of this law. + +32:47 For it is not a vain thing for you; because it is your life: and +through this thing ye shall prolong your days in the land, whither ye +go over Jordan to possess it. + +32:48 And the LORD spake unto Moses that selfsame day, saying, 32:49 +Get thee up into this mountain Abarim, unto mount Nebo, which is in +the land of Moab, that is over against Jericho; and behold the land of +Canaan, which I give unto the children of Israel for a possession: +32:50 And die in the mount whither thou goest up, and be gathered unto +thy people; as Aaron thy brother died in mount Hor, and was gathered +unto his people: 32:51 Because ye trespassed against me among the +children of Israel at the waters of MeribahKadesh, in the wilderness +of Zin; because ye sanctified me not in the midst of the children of +Israel. + +32:52 Yet thou shalt see the land before thee; but thou shalt not go +thither unto the land which I give the children of Israel. + +33:1 And this is the blessing, wherewith Moses the man of God blessed +the children of Israel before his death. + +33:2 And he said, The LORD came from Sinai, and rose up from Seir unto +them; he shined forth from mount Paran, and he came with ten thousands +of saints: from his right hand went a fiery law for them. + +33:3 Yea, he loved the people; all his saints are in thy hand: and +they sat down at thy feet; every one shall receive of thy words. + +33:4 Moses commanded us a law, even the inheritance of the +congregation of Jacob. + +33:5 And he was king in Jeshurun, when the heads of the people and the +tribes of Israel were gathered together. + +33:6 Let Reuben live, and not die; and let not his men be few. + +33:7 And this is the blessing of Judah: and he said, Hear, LORD, the +voice of Judah, and bring him unto his people: let his hands be +sufficient for him; and be thou an help to him from his enemies. + +33:8 And of Levi he said, Let thy Thummim and thy Urim be with thy +holy one, whom thou didst prove at Massah, and with whom thou didst +strive at the waters of Meribah; 33:9 Who said unto his father and to +his mother, I have not seen him; neither did he acknowledge his +brethren, nor knew his own children: for they have observed thy word, +and kept thy covenant. + +33:10 They shall teach Jacob thy judgments, and Israel thy law: they +shall put incense before thee, and whole burnt sacrifice upon thine +altar. + +33:11 Bless, LORD, his substance, and accept the work of his hands; +smite through the loins of them that rise against him, and of them +that hate him, that they rise not again. + +33:12 And of Benjamin he said, The beloved of the LORD shall dwell in +safety by him; and the Lord shall cover him all the day long, and he +shall dwell between his shoulders. + +33:13 And of Joseph he said, Blessed of the LORD be his land, for the +precious things of heaven, for the dew, and for the deep that coucheth +beneath, 33:14 And for the precious fruits brought forth by the sun, +and for the precious things put forth by the moon, 33:15 And for the +chief things of the ancient mountains, and for the precious things of +the lasting hills, 33:16 And for the precious things of the earth and +fulness thereof, and for the good will of him that dwelt in the bush: +let the blessing come upon the head of Joseph, and upon the top of the +head of him that was separated from his brethren. + +33:17 His glory is like the firstling of his bullock, and his horns +are like the horns of unicorns: with them he shall push the people +together to the ends of the earth: and they are the ten thousands of +Ephraim, and they are the thousands of Manasseh. + +33:18 And of Zebulun he said, Rejoice, Zebulun, in thy going out; and, +Issachar, in thy tents. + +33:19 They shall call the people unto the mountain; there they shall +offer sacrifices of righteousness: for they shall suck of the +abundance of the seas, and of treasures hid in the sand. + +33:20 And of Gad he said, Blessed be he that enlargeth Gad: he +dwelleth as a lion, and teareth the arm with the crown of the head. + +33:21 And he provided the first part for himself, because there, in a +portion of the lawgiver, was he seated; and he came with the heads of +the people, he executed the justice of the LORD, and his judgments +with Israel. + +33:22 And of Dan he said, Dan is a lion's whelp: he shall leap from +Bashan. + +33:23 And of Naphtali he said, O Naphtali, satisfied with favour, and +full with the blessing of the LORD: possess thou the west and the +south. + +33:24 And of Asher he said, Let Asher be blessed with children; let +him be acceptable to his brethren, and let him dip his foot in oil. + +33:25 Thy shoes shall be iron and brass; and as thy days, so shall thy +strength be. + +33:26 There is none like unto the God of Jeshurun, who rideth upon the +heaven in thy help, and in his excellency on the sky. + +33:27 The eternal God is thy refuge, and underneath are the +everlasting arms: and he shall thrust out the enemy from before thee; +and shall say, Destroy them. + +33:28 Israel then shall dwell in safety alone: the fountain of Jacob +shall be upon a land of corn and wine; also his heavens shall drop +down dew. + +33:29 Happy art thou, O Israel: who is like unto thee, O people saved +by the LORD, the shield of thy help, and who is the sword of thy +excellency! and thine enemies shall be found liars unto thee; and thou +shalt tread upon their high places. + +34:1 And Moses went up from the plains of Moab unto the mountain of +Nebo, to the top of Pisgah, that is over against Jericho. And the LORD +shewed him all the land of Gilead, unto Dan, 34:2 And all Naphtali, +and the land of Ephraim, and Manasseh, and all the land of Judah, unto +the utmost sea, 34:3 And the south, and the plain of the valley of +Jericho, the city of palm trees, unto Zoar. + +34:4 And the LORD said unto him, This is the land which I sware unto +Abraham, unto Isaac, and unto Jacob, saying, I will give it unto thy +seed: I have caused thee to see it with thine eyes, but thou shalt not +go over thither. + +34:5 So Moses the servant of the LORD died there in the land of Moab, +according to the word of the LORD. + +34:6 And he buried him in a valley in the land of Moab, over against +Bethpeor: but no man knoweth of his sepulchre unto this day. + +34:7 And Moses was an hundred and twenty years old when he died: his +eye was not dim, nor his natural force abated. + +34:8 And the children of Israel wept for Moses in the plains of Moab +thirty days: so the days of weeping and mourning for Moses were ended. + +34:9 And Joshua the son of Nun was full of the spirit of wisdom; for +Moses had laid his hands upon him: and the children of Israel +hearkened unto him, and did as the LORD commanded Moses. + +34:10 And there arose not a prophet since in Israel like unto Moses, +whom the LORD knew face to face, 34:11 In all the signs and the +wonders, which the LORD sent him to do in the land of Egypt to +Pharaoh, and to all his servants, and to all his land, 34:12 And in +all that mighty hand, and in all the great terror which Moses shewed +in the sight of all Israel. + + + + +The Book of Joshua + + +1:1 Now after the death of Moses the servant of the LORD it came to +pass, that the LORD spake unto Joshua the son of Nun, Moses' minister, +saying, 1:2 Moses my servant is dead; now therefore arise, go over +this Jordan, thou, and all this people, unto the land which I do give +to them, even to the children of Israel. + +1:3 Every place that the sole of your foot shall tread upon, that have +I given unto you, as I said unto Moses. + +1:4 From the wilderness and this Lebanon even unto the great river, +the river Euphrates, all the land of the Hittites, and unto the great +sea toward the going down of the sun, shall be your coast. + +1:5 There shall not any man be able to stand before thee all the days +of thy life: as I was with Moses, so I will be with thee: I will not +fail thee, nor forsake thee. + +1:6 Be strong and of a good courage: for unto this people shalt thou +divide for an inheritance the land, which I sware unto their fathers +to give them. + +1:7 Only be thou strong and very courageous, that thou mayest observe +to do according to all the law, which Moses my servant commanded thee: +turn not from it to the right hand or to the left, that thou mayest +prosper withersoever thou goest. + +1:8 This book of the law shall not depart out of thy mouth; but thou +shalt meditate therein day and night, that thou mayest observe to do +according to all that is written therein: for then thou shalt make thy +way prosperous, and then thou shalt have good success. + +1:9 Have not I commanded thee? Be strong and of a good courage; be not +afraid, neither be thou dismayed: for the LORD thy God is with thee +whithersoever thou goest. + +1:10 Then Joshua commanded the officers of the people, saying, 1:11 +Pass through the host, and command the people, saying, Prepare you +victuals; for within three days ye shall pass over this Jordan, to go +in to possess the land, which the LORD your God giveth you to possess +it. + +1:12 And to the Reubenites, and to the Gadites, and to half the tribe +of Manasseh, spake Joshua, saying, 1:13 Remember the word which Moses +the servant of the LORD commanded you, saying, The LORD your God hath +given you rest, and hath given you this land. + +1:14 Your wives, your little ones, and your cattle, shall remain in +the land which Moses gave you on this side Jordan; but ye shall pass +before your brethren armed, all the mighty men of valour, and help +them; 1:15 Until the LORD have given your brethren rest, as he hath +given you, and they also have possessed the land which the LORD your +God giveth them: then ye shall return unto the land of your +possession, and enjoy it, which Moses the LORD's servant gave you on +this side Jordan toward the sunrising. + +1:16 And they answered Joshua, saying, All that thou commandest us we +will do, and whithersoever thou sendest us, we will go. + +1:17 According as we hearkened unto Moses in all things, so will we +hearken unto thee: only the LORD thy God be with thee, as he was with +Moses. + +1:18 Whosoever he be that doth rebel against thy commandment, and will +not hearken unto thy words in all that thou commandest him, he shall +be put to death: only be strong and of a good courage. + +2:1 And Joshua the son of Nun sent out of Shittim two men to spy +secretly, saying, Go view the land, even Jericho. And they went, and +came into an harlot's house, named Rahab, and lodged there. + +2:2 And it was told the king of Jericho, saying, Behold, there came +men in hither to night of the children of Israel to search out the +country. + +2:3 And the king of Jericho sent unto Rahab, saying, Bring forth the +men that are come to thee, which are entered into thine house: for +they be come to search out all the country. + +2:4 And the woman took the two men, and hid them, and said thus, There +came men unto me, but I wist not whence they were: 2:5 And it came to +pass about the time of shutting of the gate, when it was dark, that +the men went out: whither the men went I wot not: pursue after them +quickly; for ye shall overtake them. + +2:6 But she had brought them up to the roof of the house, and hid them +with the stalks of flax, which she had laid in order upon the roof. + +2:7 And the men pursued after them the way to Jordan unto the fords: +and as soon as they which pursued after them were gone out, they shut +the gate. + +2:8 And before they were laid down, she came up unto them upon the +roof; 2:9 And she said unto the men, I know that the LORD hath given +you the land, and that your terror is fallen upon us, and that all the +inhabitants of the land faint because of you. + +2:10 For we have heard how the LORD dried up the water of the Red sea +for you, when ye came out of Egypt; and what ye did unto the two kings +of the Amorites, that were on the other side Jordan, Sihon and Og, +whom ye utterly destroyed. + +2:11 And as soon as we had heard these things, our hearts did melt, +neither did there remain any more courage in any man, because of you: +for the LORD your God, he is God in heaven above, and in earth +beneath. + +2:12 Now therefore, I pray you, swear unto me by the LORD, since I +have shewed you kindness, that ye will also shew kindness unto my +father's house, and give me a true token: 2:13 And that ye will save +alive my father, and my mother, and my brethren, and my sisters, and +all that they have, and deliver our lives from death. + +2:14 And the men answered her, Our life for yours, if ye utter not +this our business. And it shall be, when the LORD hath given us the +land, that we will deal kindly and truly with thee. + +2:15 Then she let them down by a cord through the window: for her +house was upon the town wall, and she dwelt upon the wall. + +2:16 And she said unto them, Get you to the mountain, lest the +pursuers meet you; and hide yourselves there three days, until the +pursuers be returned: and afterward may ye go your way. + +2:17 And the men said unto her, We will be blameless of this thine +oath which thou hast made us swear. + +2:18 Behold, when we come into the land, thou shalt bind this line of +scarlet thread in the window which thou didst let us down by: and thou +shalt bring thy father, and thy mother, and thy brethren, and all thy +father's household, home unto thee. + +2:19 And it shall be, that whosoever shall go out of the doors of thy +house into the street, his blood shall be upon his head, and we will +be guiltless: and whosoever shall be with thee in the house, his blood +shall be on our head, if any hand be upon him. + +2:20 And if thou utter this our business, then we will be quit of +thine oath which thou hast made us to swear. + +2:21 And she said, According unto your words, so be it. And she sent +them away, and they departed: and she bound the scarlet line in the +window. + +2:22 And they went, and came unto the mountain, and abode there three +days, until the pursuers were returned: and the pursuers sought them +throughout all the way, but found them not. + +2:23 So the two men returned, and descended from the mountain, and +passed over, and came to Joshua the son of Nun, and told him all +things that befell them: 2:24 And they said unto Joshua, Truly the +LORD hath delivered into our hands all the land; for even all the +inhabitants of the country do faint because of us. + +3:1 And Joshua rose early in the morning; and they removed from +Shittim, and came to Jordan, he and all the children of Israel, and +lodged there before they passed over. + +3:2 And it came to pass after three days, that the officers went +through the host; 3:3 And they commanded the people, saying, When ye +see the ark of the covenant of the LORD your God, and the priests the +Levites bearing it, then ye shall remove from your place, and go after +it. + +3:4 Yet there shall be a space between you and it, about two thousand +cubits by measure: come not near unto it, that ye may know the way by +which ye must go: for ye have not passed this way heretofore. + +3:5 And Joshua said unto the people, Sanctify yourselves: for to +morrow the LORD will do wonders among you. + +3:6 And Joshua spake unto the priests, saying, Take up the ark of the +covenant, and pass over before the people. And they took up the ark of +the covenant, and went before the people. + +3:7 And the LORD said unto Joshua, This day will I begin to magnify +thee in the sight of all Israel, that they may know that, as I was +with Moses, so I will be with thee. + +3:8 And thou shalt command the priests that bear the ark of the +covenant, saying, When ye are come to the brink of the water of +Jordan, ye shall stand still in Jordan. + +3:9 And Joshua said unto the children of Israel, Come hither, and hear +the words of the LORD your God. + +3:10 And Joshua said, Hereby ye shall know that the living God is +among you, and that he will without fail drive out from before you the +Canaanites, and the Hittites, and the Hivites, and the Perizzites, and +the Girgashites, and the Amorites, and the Jebusites. + +3:11 Behold, the ark of the covenant of the LORD of all the earth +passeth over before you into Jordan. + +3:12 Now therefore take you twelve men out of the tribes of Israel, +out of every tribe a man. + +3:13 And it shall come to pass, as soon as the soles of the feet of +the priests that bear the ark of the LORD, the LORD of all the earth, +shall rest in the waters of Jordan, that the waters of Jordan shall be +cut off from the waters that come down from above; and they shall +stand upon an heap. + +3:14 And it came to pass, when the people removed from their tents, to +pass over Jordan, and the priests bearing the ark of the covenant +before the people; 3:15 And as they that bare the ark were come unto +Jordan, and the feet of the priests that bare the ark were dipped in +the brim of the water, (for Jordan overfloweth all his banks all the +time of harvest,) 3:16 That the waters which came down from above +stood and rose up upon an heap very far from the city Adam, that is +beside Zaretan: and those that came down toward the sea of the plain, +even the salt sea, failed, and were cut off: and the people passed +over right against Jericho. + +3:17 And the priests that bare the ark of the covenant of the LORD +stood firm on dry ground in the midst of Jordan, and all the +Israelites passed over on dry ground, until all the people were passed +clean over Jordan. + +4:1 And it came to pass, when all the people were clean passed over +Jordan, that the LORD spake unto Joshua, saying, 4:2 Take you twelve +men out of the people, out of every tribe a man, 4:3 And command ye +them, saying, Take you hence out of the midst of Jordan, out of the +place where the priests' feet stood firm, twelve stones, and ye shall +carry them over with you, and leave them in the lodging place, where +ye shall lodge this night. + +4:4 Then Joshua called the twelve men, whom he had prepared of the +children of Israel, out of every tribe a man: 4:5 And Joshua said unto +them, Pass over before the ark of the LORD your God into the midst of +Jordan, and take you up every man of you a stone upon his shoulder, +according unto the number of the tribes of the children of Israel: 4:6 +That this may be a sign among you, that when your children ask their +fathers in time to come, saying, What mean ye by these stones? 4:7 +Then ye shall answer them, That the waters of Jordan were cut off +before the ark of the covenant of the LORD; when it passed over +Jordan, the waters of Jordan were cut off: and these stones shall be +for a memorial unto the children of Israel for ever. + +4:8 And the children of Israel did so as Joshua commanded, and took up +twelve stones out of the midst of Jordan, as the LORD spake unto +Joshua, according to the number of the tribes of the children of +Israel, and carried them over with them unto the place where they +lodged, and laid them down there. + +4:9 And Joshua set up twelve stones in the midst of Jordan, in the +place where the feet of the priests which bare the ark of the covenant +stood: and they are there unto this day. + +4:10 For the priests which bare the ark stood in the midst of Jordan, +until everything was finished that the LORD commanded Joshua to speak +unto the people, according to all that Moses commanded Joshua: and the +people hasted and passed over. + +4:11 And it came to pass, when all the people were clean passed over, +that the ark of the LORD passed over, and the priests, in the presence +of the people. + +4:12 And the children of Reuben, and the children of Gad, and half the +tribe of Manasseh, passed over armed before the children of Israel, as +Moses spake unto them: 4:13 About forty thousand prepared for war +passed over before the LORD unto battle, to the plains of Jericho. + +4:14 On that day the LORD magnified Joshua in the sight of all Israel; +and they feared him, as they feared Moses, all the days of his life. + +4:15 And the LORD spake unto Joshua, saying, 4:16 Command the priests +that bear the ark of the testimony, that they come up out of Jordan. + +4:17 Joshua therefore commanded the priests, saying, Come ye up out of +Jordan. + +4:18 And it came to pass, when the priests that bare the ark of the +covenant of the LORD were come up out of the midst of Jordan, and the +soles of the priests' feet were lifted up unto the dry land, that the +waters of Jordan returned unto their place, and flowed over all his +banks, as they did before. + +4:19 And the people came up out of Jordan on the tenth day of the +first month, and encamped in Gilgal, in the east border of Jericho. + +4:20 And those twelve stones, which they took out of Jordan, did +Joshua pitch in Gilgal. + +4:21 And he spake unto the children of Israel, saying, When your +children shall ask their fathers in time to come, saying, What mean +these stones? 4:22 Then ye shall let your children know, saying, +Israel came over this Jordan on dry land. + +4:23 For the LORD your God dried up the waters of Jordan from before +you, until ye were passed over, as the LORD your God did to the Red +sea, which he dried up from before us, until we were gone over: 4:24 +That all the people of the earth might know the hand of the LORD, that +it is mighty: that ye might fear the LORD your God for ever. + +5:1 And it came to pass, when all the kings of the Amorites, which +were on the side of Jordan westward, and all the kings of the +Canaanites, which were by the sea, heard that the LORD had dried up +the waters of Jordan from before the children of Israel, until we were +passed over, that their heart melted, neither was there spirit in them +any more, because of the children of Israel. + +5:2 At that time the LORD said unto Joshua, Make thee sharp knives, +and circumcise again the children of Israel the second time. + +5:3 And Joshua made him sharp knives, and circumcised the children of +Israel at the hill of the foreskins. + +5:4 And this is the cause why Joshua did circumcise: All the people +that came out of Egypt, that were males, even all the men of war, died +in the wilderness by the way, after they came out of Egypt. + +5:5 Now all the people that came out were circumcised: but all the +people that were born in the wilderness by the way as they came forth +out of Egypt, them they had not circumcised. + +5:6 For the children of Israel walked forty years in the wilderness, +till all the people that were men of war, which came out of Egypt, +were consumed, because they obeyed not the voice of the LORD: unto +whom the LORD sware that he would not shew them the land, which the +LORD sware unto their fathers that he would give us, a land that +floweth with milk and honey. + +5:7 And their children, whom he raised up in their stead, them Joshua +circumcised: for they were uncircumcised, because they had not +circumcised them by the way. + +5:8 And it came to pass, when they had done circumcising all the +people, that they abode in their places in the camp, till they were +whole. + +5:9 And the LORD said unto Joshua, This day have I rolled away the +reproach of Egypt from off you. Wherefore the name of the place is +called Gilgal unto this day. + +5:10 And the children of Israel encamped in Gilgal, and kept the +passover on the fourteenth day of the month at even in the plains of +Jericho. + +5:11 And they did eat of the old corn of the land on the morrow after +the passover, unleavened cakes, and parched corn in the selfsame day. + +5:12 And the manna ceased on the morrow after they had eaten of the +old corn of the land; neither had the children of Israel manna any +more; but they did eat of the fruit of the land of Canaan that year. + +5:13 And it came to pass, when Joshua was by Jericho, that he lifted +up his eyes and looked, and, behold, there stood a man over against +him with his sword drawn in his hand: and Joshua went unto him, and +said unto him, Art thou for us, or for our adversaries? 5:14 And he +said, Nay; but as captain of the host of the LORD am I now come. And +Joshua fell on his face to the earth, and did worship, and said unto +him, What saith my Lord unto his servant? 5:15 And the captain of the +LORD's host said unto Joshua, Loose thy shoe from off thy foot; for +the place whereon thou standest is holy. And Joshua did so. + +6:1 Now Jericho was straitly shut up because of the children of +Israel: none went out, and none came in. + +6:2 And the LORD said unto Joshua, See, I have given into thine hand +Jericho, and the king thereof, and the mighty men of valour. + +6:3 And ye shall compass the city, all ye men of war, and go round +about the city once. Thus shalt thou do six days. + +6:4 And seven priests shall bear before the ark seven trumpets of +rams' horns: and the seventh day ye shall compass the city seven +times, and the priests shall blow with the trumpets. + +6:5 And it shall come to pass, that when they make a long blast with +the ram's horn, and when ye hear the sound of the trumpet, all the +people shall shout with a great shout; and the wall of the city shall +fall down flat, and the people shall ascend up every man straight +before him. + +6:6 And Joshua the son of Nun called the priests, and said unto them, +Take up the ark of the covenant, and let seven priests bear seven +trumpets of rams' horns before the ark of the LORD. + +6:7 And he said unto the people, Pass on, and compass the city, and +let him that is armed pass on before the ark of the LORD. + +6:8 And it came to pass, when Joshua had spoken unto the people, that +the seven priests bearing the seven trumpets of rams' horns passed on +before the LORD, and blew with the trumpets: and the ark of the +covenant of the LORD followed them. + +6:9 And the armed men went before the priests that blew with the +trumpets, and the rereward came after the ark, the priests going on, +and blowing with the trumpets. + +6:10 And Joshua had commanded the people, saying, Ye shall not shout, +nor make any noise with your voice, neither shall any word proceed out +of your mouth, until the day I bid you shout; then shall ye shout. + +6:11 So the ark of the LORD compassed the city, going about it once: +and they came into the camp, and lodged in the camp. + +6:12 And Joshua rose early in the morning, and the priests took up the +ark of the LORD. + +6:13 And seven priests bearing seven trumpets of rams' horns before +the ark of the LORD went on continually, and blew with the trumpets: +and the armed men went before them; but the rereward came after the +ark of the LORD, the priests going on, and blowing with the trumpets. + +6:14 And the second day they compassed the city once, and returned +into the camp: so they did six days. + +6:15 And it came to pass on the seventh day, that they rose early +about the dawning of the day, and compassed the city after the same +manner seven times: only on that day they compassed the city seven +times. + +6:16 And it came to pass at the seventh time, when the priests blew +with the trumpets, Joshua said unto the people, Shout; for the LORD +hath given you the city. + +6:17 And the city shall be accursed, even it, and all that are +therein, to the LORD: only Rahab the harlot shall live, she and all +that are with her in the house, because she hid the messengers that we +sent. + +6:18 And ye, in any wise keep yourselves from the accursed thing, lest +ye make yourselves accursed, when ye take of the accursed thing, and +make the camp of Israel a curse, and trouble it. + +6:19 But all the silver, and gold, and vessels of brass and iron, are +consecrated unto the LORD: they shall come into the treasury of the +LORD. + +6:20 So the people shouted when the priests blew with the trumpets: +and it came to pass, when the people heard the sound of the trumpet, +and the people shouted with a great shout, that the wall fell down +flat, so that the people went up into the city, every man straight +before him, and they took the city. + +6:21 And they utterly destroyed all that was in the city, both man and +woman, young and old, and ox, and sheep, and ass, with the edge of the +sword. + +6:22 But Joshua had said unto the two men that had spied out the +country, Go into the harlot's house, and bring out thence the woman, +and all that she hath, as ye sware unto her. + +6:23 And the young men that were spies went in, and brought out Rahab, +and her father, and her mother, and her brethren, and all that she +had; and they brought out all her kindred, and left them without the +camp of Israel. + +6:24 And they burnt the city with fire, and all that was therein: only +the silver, and the gold, and the vessels of brass and of iron, they +put into the treasury of the house of the LORD. + +6:25 And Joshua saved Rahab the harlot alive, and her father's +household, and all that she had; and she dwelleth in Israel even unto +this day; because she hid the messengers, which Joshua sent to spy out +Jericho. + +6:26 And Joshua adjured them at that time, saying, Cursed be the man +before the LORD, that riseth up and buildeth this city Jericho: he +shall lay the foundation thereof in his firstborn, and in his youngest +son shall he set up the gates of it. + +6:27 So the LORD was with Joshua; and his fame was noised throughout +all the country. + +7:1 But the children of Israel committed a trespass in the accursed +thing: for Achan, the son of Carmi, the son of Zabdi, the son of +Zerah, of the tribe of Judah, took of the accursed thing: and the +anger of the LORD was kindled against the children of Israel. + +7:2 And Joshua sent men from Jericho to Ai, which is beside Bethaven, +on the east of Bethel, and spake unto them, saying, Go up and view the +country. + +And the men went up and viewed Ai. + +7:3 And they returned to Joshua, and said unto him, Let not all the +people go up; but let about two or three thousand men go up and smite +Ai; and make not all the people to labour thither; for they are but +few. + +7:4 So there went up thither of the people about three thousand men: +and they fled before the men of Ai. + +7:5 And the men of Ai smote of them about thirty and six men: for they +chased them from before the gate even unto Shebarim, and smote them in +the going down: wherefore the hearts of the people melted, and became +as water. + +7:6 And Joshua rent his clothes, and fell to the earth upon his face +before the ark of the LORD until the eventide, he and the elders of +Israel, and put dust upon their heads. + +7:7 And Joshua said, Alas, O LORD God, wherefore hast thou at all +brought this people over Jordan, to deliver us into the hand of the +Amorites, to destroy us? would to God we had been content, and dwelt +on the other side Jordan! 7:8 O LORD, what shall I say, when Israel +turneth their backs before their enemies! 7:9 For the Canaanites and +all the inhabitants of the land shall hear of it, and shall environ us +round, and cut off our name from the earth: and what wilt thou do unto +thy great name? 7:10 And the LORD said unto Joshua, Get thee up; +wherefore liest thou thus upon thy face? 7:11 Israel hath sinned, and +they have also transgressed my covenant which I commanded them: for +they have even taken of the accursed thing, and have also stolen, and +dissembled also, and they have put it even among their own stuff. + +7:12 Therefore the children of Israel could not stand before their +enemies, but turned their backs before their enemies, because they +were accursed: neither will I be with you any more, except ye destroy +the accursed from among you. + +7:13 Up, sanctify the people, and say, Sanctify yourselves against to +morrow: for thus saith the LORD God of Israel, There is an accursed +thing in the midst of thee, O Israel: thou canst not stand before +thine enemies, until ye take away the accursed thing from among you. + +7:14 In the morning therefore ye shall be brought according to your +tribes: and it shall be, that the tribe which the LORD taketh shall +come according to the families thereof; and the family which the LORD +shall take shall come by households; and the household which the LORD +shall take shall come man by man. + +7:15 And it shall be, that he that is taken with the accursed thing +shall be burnt with fire, he and all that he hath: because he hath +transgressed the covenant of the LORD, and because he hath wrought +folly in Israel. + +7:16 So Joshua rose up early in the morning, and brought Israel by +their tribes; and the tribe of Judah was taken: 7:17 And he brought +the family of Judah; and he took the family of the Zarhites: and he +brought the family of the Zarhites man by man; and Zabdi was taken: +7:18 And he brought his household man by man; and Achan, the son of +Carmi, the son of Zabdi, the son of Zerah, of the tribe of Judah, was +taken. + +7:19 And Joshua said unto Achan, My son, give, I pray thee, glory to +the LORD God of Israel, and make confession unto him; and tell me now +what thou hast done; hide it not from me. + +7:20 And Achan answered Joshua, and said, Indeed I have sinned against +the LORD God of Israel, and thus and thus have I done: 7:21 When I saw +among the spoils a goodly Babylonish garment, and two hundred shekels +of silver, and a wedge of gold of fifty shekels weight, then I coveted +them, and took them; and, behold, they are hid in the earth in the +midst of my tent, and the silver under it. + +7:22 So Joshua sent messengers, and they ran unto the tent; and, +behold, it was hid in his tent, and the silver under it. + +7:23 And they took them out of the midst of the tent, and brought them +unto Joshua, and unto all the children of Israel, and laid them out +before the LORD. + +7:24 And Joshua, and all Israel with him, took Achan the son of Zerah, +and the silver, and the garment, and the wedge of gold, and his sons, +and his daughters, and his oxen, and his asses, and his sheep, and his +tent, and all that he had: and they brought them unto the valley of +Achor. + +7:25 And Joshua said, Why hast thou troubled us? the LORD shall +trouble thee this day. And all Israel stoned him with stones, and +burned them with fire, after they had stoned them with stones. + +7:26 And they raised over him a great heap of stones unto this day. So +the LORD turned from the fierceness of his anger. Wherefore the name +of that place was called, The valley of Achor, unto this day. + +8:1 And the LORD said unto Joshua, Fear not, neither be thou dismayed: +take all the people of war with thee, and arise, go up to Ai: see, I +have given into thy hand the king of Ai, and his people, and his city, +and his land: 8:2 And thou shalt do to Ai and her king as thou didst +unto Jericho and her king: only the spoil thereof, and the cattle +thereof, shall ye take for a prey unto yourselves: lay thee an ambush +for the city behind it. + +8:3 So Joshua arose, and all the people of war, to go up against Ai: +and Joshua chose out thirty thousand mighty men of valour, and sent +them away by night. + +8:4 And he commanded them, saying, Behold, ye shall lie in wait +against the city, even behind the city: go not very far from the city, +but be ye all ready: 8:5 And I, and all the people that are with me, +will approach unto the city: and it shall come to pass, when they come +out against us, as at the first, that we will flee before them, 8:6 +(For they will come out after us) till we have drawn them from the +city; for they will say, They flee before us, as at the first: +therefore we will flee before them. + +8:7 Then ye shall rise up from the ambush, and seize upon the city: +for the LORD your God will deliver it into your hand. + +8:8 And it shall be, when ye have taken the city, that ye shall set +the city on fire: according to the commandment of the LORD shall ye +do. See, I have commanded you. + +8:9 Joshua therefore sent them forth: and they went to lie in ambush, +and abode between Bethel and Ai, on the west side of Ai: but Joshua +lodged that night among the people. + +8:10 And Joshua rose up early in the morning, and numbered the people, +and went up, he and the elders of Israel, before the people to Ai. + +8:11 And all the people, even the people of war that were with him, +went up, and drew nigh, and came before the city, and pitched on the +north side of Ai: now there was a valley between them and Ai. + +8:12 And he took about five thousand men, and set them to lie in +ambush between Bethel and Ai, on the west side of the city. + +8:13 And when they had set the people, even all the host that was on +the north of the city, and their liers in wait on the west of the +city, Joshua went that night into the midst of the valley. + +8:14 And it came to pass, when the king of Ai saw it, that they hasted +and rose up early, and the men of the city went out against Israel to +battle, he and all his people, at a time appointed, before the plain; +but he wist not that there were liers in ambush against him behind the +city. + +8:15 And Joshua and all Israel made as if they were beaten before +them, and fled by the way of the wilderness. + +8:16 And all the people that were in Ai were called together to pursue +after them: and they pursued after Joshua, and were drawn away from +the city. + +8:17 And there was not a man left in Ai or Bethel, that went not out +after Israel: and they left the city open, and pursued after Israel. + +8:18 And the LORD said unto Joshua, Stretch out the spear that is in +thy hand toward Ai; for I will give it into thine hand. And Joshua +stretched out the spear that he had in his hand toward the city. + +8:19 And the ambush arose quickly out of their place, and they ran as +soon as he had stretched out his hand: and they entered into the city, +and took it, and hasted and set the city on fire. + +8:20 And when the men of Ai looked behind them, they saw, and, behold, +the smoke of the city ascended up to heaven, and they had no power to +flee this way or that way: and the people that fled to the wilderness +turned back upon the pursuers. + +8:21 And when Joshua and all Israel saw that the ambush had taken the +city, and that the smoke of the city ascended, then they turned again, +and slew the men of Ai. + +8:22 And the other issued out of the city against them; so they were +in the midst of Israel, some on this side, and some on that side: and +they smote them, so that they let none of them remain or escape. + +8:23 And the king of Ai they took alive, and brought him to Joshua. + +8:24 And it came to pass, when Israel had made an end of slaying all +the inhabitants of Ai in the field, in the wilderness wherein they +chased them, and when they were all fallen on the edge of the sword, +until they were consumed, that all the Israelites returned unto Ai, +and smote it with the edge of the sword. + +8:25 And so it was, that all that fell that day, both of men and +women, were twelve thousand, even all the men of Ai. + +8:26 For Joshua drew not his hand back, wherewith he stretched out the +spear, until he had utterly destroyed all the inhabitants of Ai. + +8:27 Only the cattle and the spoil of that city Israel took for a prey +unto themselves, according unto the word of the LORD which he +commanded Joshua. + +8:28 And Joshua burnt Ai, and made it an heap for ever, even a +desolation unto this day. + +8:29 And the king of Ai he hanged on a tree until eventide: and as +soon as the sun was down, Joshua commanded that they should take his +carcase down from the tree, and cast it at the entering of the gate of +the city, and raise thereon a great heap of stones, that remaineth +unto this day. + +8:30 Then Joshua built an altar unto the LORD God of Israel in mount +Ebal, 8:31 As Moses the servant of the LORD commanded the children of +Israel, as it is written in the book of the law of Moses, an altar of +whole stones, over which no man hath lift up any iron: and they +offered thereon burnt offerings unto the LORD, and sacrificed peace +offerings. + +8:32 And he wrote there upon the stones a copy of the law of Moses, +which he wrote in the presence of the children of Israel. + +8:33 And all Israel, and their elders, and officers, and their judges, +stood on this side the ark and on that side before the priests the +Levites, which bare the ark of the covenant of the LORD, as well the +stranger, as he that was born among them; half of them over against +mount Gerizim, and half of them over against mount Ebal; as Moses the +servant of the LORD had commanded before, that they should bless the +people of Israel. + +8:34 And afterward he read all the words of the law, the blessings and +cursings, according to all that is written in the book of the law. + +8:35 There was not a word of all that Moses commanded, which Joshua +read not before all the congregation of Israel, with the women, and +the little ones, and the strangers that were conversant among them. + +9:1 And it came to pass, when all the kings which were on this side +Jordan, in the hills, and in the valleys, and in all the coasts of the +great sea over against Lebanon, the Hittite, and the Amorite, the +Canaanite, the Perizzite, the Hivite, and the Jebusite, heard thereof; +9:2 That they gathered themselves together, to fight with Joshua and +with Israel, with one accord. + +9:3 And when the inhabitants of Gibeon heard what Joshua had done unto +Jericho and to Ai, 9:4 They did work wilily, and went and made as if +they had been ambassadors, and took old sacks upon their asses, and +wine bottles, old, and rent, and bound up; 9:5 And old shoes and +clouted upon their feet, and old garments upon them; and all the bread +of their provision was dry and mouldy. + +9:6 And they went to Joshua unto the camp at Gilgal, and said unto +him, and to the men of Israel, We be come from a far country: now +therefore make ye a league with us. + +9:7 And the men of Israel said unto the Hivites, Peradventure ye dwell +among us; and how shall we make a league with you? 9:8 And they said +unto Joshua, We are thy servants. And Joshua said unto them, Who are +ye? and from whence come ye? 9:9 And they said unto him, From a very +far country thy servants are come because of the name of the LORD thy +God: for we have heard the fame of him, and all that he did in Egypt, +9:10 And all that he did to the two kings of the Amorites, that were +beyond Jordan, to Sihon king of Heshbon, and to Og king of Bashan, +which was at Ashtaroth. + +9:11 Wherefore our elders and all the inhabitants of our country spake +to us, saying, Take victuals with you for the journey, and go to meet +them, and say unto them, We are your servants: therefore now make ye a +league with us. + +9:12 This our bread we took hot for our provision out of our houses on +the day we came forth to go unto you; but now, behold, it is dry, and +it is mouldy: 9:13 And these bottles of wine, which we filled, were +new; and, behold, they be rent: and these our garments and our shoes +are become old by reason of the very long journey. + +9:14 And the men took of their victuals, and asked not counsel at the +mouth of the LORD. + +9:15 And Joshua made peace with them, and made a league with them, to +let them live: and the princes of the congregation sware unto them. + +9:16 And it came to pass at the end of three days after they had made +a league with them, that they heard that they were their neighbours, +and that they dwelt among them. + +9:17 And the children of Israel journeyed, and came unto their cities +on the third day. Now their cities were Gibeon, and Chephirah, and +Beeroth, and Kirjathjearim. + +9:18 And the children of Israel smote them not, because the princes of +the congregation had sworn unto them by the LORD God of Israel. And +all the congregation murmured against the princes. + +9:19 But all the princes said unto all the congregation, We have sworn +unto them by the LORD God of Israel: now therefore we may not touch +them. + +9:20 This we will do to them; we will even let them live, lest wrath +be upon us, because of the oath which we sware unto them. + +9:21 And the princes said unto them, Let them live; but let them be +hewers of wood and drawers of water unto all the congregation; as the +princes had promised them. + +9:22 And Joshua called for them, and he spake unto them, saying, +Wherefore have ye beguiled us, saying, We are very far from you; when +ye dwell among us? 9:23 Now therefore ye are cursed, and there shall +none of you be freed from being bondmen, and hewers of wood and +drawers of water for the house of my God. + +9:24 And they answered Joshua, and said, Because it was certainly told +thy servants, how that the LORD thy God commanded his servant Moses to +give you all the land, and to destroy all the inhabitants of the land +from before you, therefore we were sore afraid of our lives because of +you, and have done this thing. + +9:25 And now, behold, we are in thine hand: as it seemeth good and +right unto thee to do unto us, do. + +9:26 And so did he unto them, and delivered them out of the hand of +the children of Israel, that they slew them not. + +9:27 And Joshua made them that day hewers of wood and drawers of water +for the congregation, and for the altar of the LORD, even unto this +day, in the place which he should choose. + +10:1 Now it came to pass, when Adonizedec king of Jerusalem had heard +how Joshua had taken Ai, and had utterly destroyed it; as he had done +to Jericho and her king, so he had done to Ai and her king; and how +the inhabitants of Gibeon had made peace with Israel, and were among +them; 10:2 That they feared greatly, because Gibeon was a great city, +as one of the royal cities, and because it was greater than Ai, and +all the men thereof were mighty. + +10:3 Wherefore Adonizedec king of Jerusalem, sent unto Hoham king of +Hebron, and unto Piram king of Jarmuth, and unto Japhia king of +Lachish, and unto Debir king of Eglon, saying, 10:4 Come up unto me, +and help me, that we may smite Gibeon: for it hath made peace with +Joshua and with the children of Israel. + +10:5 Therefore the five kings of the Amorites, the king of Jerusalem, +the king of Hebron, the king of Jarmuth, the king of Lachish, the king +of Eglon, gathered themselves together, and went up, they and all +their hosts, and encamped before Gibeon, and made war against it. + +10:6 And the men of Gibeon sent unto Joshua to the camp to Gilgal, +saying, Slack not thy hand from thy servants; come up to us quickly, +and save us, and help us: for all the kings of the Amorites that dwell +in the mountains are gathered together against us. + +10:7 So Joshua ascended from Gilgal, he, and all the people of war +with him, and all the mighty men of valour. + +10:8 And the LORD said unto Joshua, Fear them not: for I have +delivered them into thine hand; there shall not a man of them stand +before thee. + +10:9 Joshua therefore came unto them suddenly, and went up from Gilgal +all night. + +10:10 And the LORD discomfited them before Israel, and slew them with +a great slaughter at Gibeon, and chased them along the way that goeth +up to Bethhoron, and smote them to Azekah, and unto Makkedah. + +10:11 And it came to pass, as they fled from before Israel, and were +in the going down to Bethhoron, that the LORD cast down great stones +from heaven upon them unto Azekah, and they died: they were more which +died with hailstones than they whom the children of Israel slew with +the sword. + +10:12 Then spake Joshua to the LORD in the day when the LORD delivered +up the Amorites before the children of Israel, and he said in the +sight of Israel, Sun, stand thou still upon Gibeon; and thou, Moon, in +the valley of Ajalon. + +10:13 And the sun stood still, and the moon stayed, until the people +had avenged themselves upon their enemies. Is not this written in the +book of Jasher? So the sun stood still in the midst of heaven, and +hasted not to go down about a whole day. + +10:14 And there was no day like that before it or after it, that the +LORD hearkened unto the voice of a man: for the LORD fought for +Israel. + +10:15 And Joshua returned, and all Israel with him, unto the camp to +Gilgal. + +10:16 But these five kings fled, and hid themselves in a cave at +Makkedah. + +10:17 And it was told Joshua, saying, The five kings are found hid in +a cave at Makkedah. + +10:18 And Joshua said, Roll great stones upon the mouth of the cave, +and set men by it for to keep them: 10:19 And stay ye not, but pursue +after your enemies, and smite the hindmost of them; suffer them not to +enter into their cities: for the LORD your God hath delivered them +into your hand. + +10:20 And it came to pass, when Joshua and the children of Israel had +made an end of slaying them with a very great slaughter, till they +were consumed, that the rest which remained of them entered into +fenced cities. + +10:21 And all the people returned to the camp to Joshua at Makkedah in +peace: none moved his tongue against any of the children of Israel. + +10:22 Then said Joshua, Open the mouth of the cave, and bring out +those five kings unto me out of the cave. + +10:23 And they did so, and brought forth those five kings unto him out +of the cave, the king of Jerusalem, the king of Hebron, the king of +Jarmuth, the king of Lachish, and the king of Eglon. + +10:24 And it came to pass, when they brought out those kings unto +Joshua, that Joshua called for all the men of Israel, and said unto +the captains of the men of war which went with him, Come near, put +your feet upon the necks of these kings. And they came near, and put +their feet upon the necks of them. + +10:25 And Joshua said unto them, Fear not, nor be dismayed, be strong +and of good courage: for thus shall the LORD do to all your enemies +against whom ye fight. + +10:26 And afterward Joshua smote them, and slew them, and hanged them +on five trees: and they were hanging upon the trees until the evening. + +10:27 And it came to pass at the time of the going down of the sun, +that Joshua commanded, and they took them down off the trees, and cast +them into the cave wherein they had been hid, and laid great stones in +the cave's mouth, which remain until this very day. + +10:28 And that day Joshua took Makkedah, and smote it with the edge of +the sword, and the king thereof he utterly destroyed, them, and all +the souls that were therein; he let none remain: and he did to the +king of Makkedah as he did unto the king of Jericho. + +10:29 Then Joshua passed from Makkedah, and all Israel with him, unto +Libnah, and fought against Libnah: 10:30 And the LORD delivered it +also, and the king thereof, into the hand of Israel; and he smote it +with the edge of the sword, and all the souls that were therein; he +let none remain in it; but did unto the king thereof as he did unto +the king of Jericho. + +10:31 And Joshua passed from Libnah, and all Israel with him, unto +Lachish, and encamped against it, and fought against it: 10:32 And the +LORD delivered Lachish into the hand of Israel, which took it on the +second day, and smote it with the edge of the sword, and all the souls +that were therein, according to all that he had done to Libnah. + +10:33 Then Horam king of Gezer came up to help Lachish; and Joshua +smote him and his people, until he had left him none remaining. + +10:34 And from Lachish Joshua passed unto Eglon, and all Israel with +him; and they encamped against it, and fought against it: 10:35 And +they took it on that day, and smote it with the edge of the sword, and +all the souls that were therein he utterly destroyed that day, +according to all that he had done to Lachish. + +10:36 And Joshua went up from Eglon, and all Israel with him, unto +Hebron; and they fought against it: 10:37 And they took it, and smote +it with the edge of the sword, and the king thereof, and all the +cities thereof, and all the souls that were therein; he left none +remaining, according to all that he had done to Eglon; but destroyed +it utterly, and all the souls that were therein. + +10:38 And Joshua returned, and all Israel with him, to Debir; and +fought against it: 10:39 And he took it, and the king thereof, and all +the cities thereof; and they smote them with the edge of the sword, +and utterly destroyed all the souls that were therein; he left none +remaining: as he had done to Hebron, so he did to Debir, and to the +king thereof; as he had done also to Libnah, and to her king. + +10:40 So Joshua smote all the country of the hills, and of the south, +and of the vale, and of the springs, and all their kings: he left none +remaining, but utterly destroyed all that breathed, as the LORD God of +Israel commanded. + +10:41 And Joshua smote them from Kadeshbarnea even unto Gaza, and all +the country of Goshen, even unto Gibeon. + +10:42 And all these kings and their land did Joshua take at one time, +because the LORD God of Israel fought for Israel. + +10:43 And Joshua returned, and all Israel with him, unto the camp to +Gilgal. + +11:1 And it came to pass, when Jabin king of Hazor had heard those +things, that he sent to Jobab king of Madon, and to the king of +Shimron, and to the king of Achshaph, 11:2 And to the kings that were +on the north of the mountains, and of the plains south of Chinneroth, +and in the valley, and in the borders of Dor on the west, 11:3 And to +the Canaanite on the east and on the west, and to the Amorite, and the +Hittite, and the Perizzite, and the Jebusite in the mountains, and to +the Hivite under Hermon in the land of Mizpeh. + +11:4 And they went out, they and all their hosts with them, much +people, even as the sand that is upon the sea shore in multitude, with +horses and chariots very many. + +11:5 And when all these kings were met together, they came and pitched +together at the waters of Merom, to fight against Israel. + +11:6 And the LORD said unto Joshua, Be not afraid because of them: for +to morrow about this time will I deliver them up all slain before +Israel: thou shalt hough their horses, and burn their chariots with +fire. + +11:7 So Joshua came, and all the people of war with him, against them +by the waters of Merom suddenly; and they fell upon them. + +11:8 And the LORD delivered them into the hand of Israel, who smote +them, and chased them unto great Zidon, and unto Misrephothmaim, and +unto the valley of Mizpeh eastward; and they smote them, until they +left them none remaining. + +11:9 And Joshua did unto them as the LORD bade him: he houghed their +horses, and burnt their chariots with fire. + +11:10 And Joshua at that time turned back, and took Hazor, and smote +the king thereof with the sword: for Hazor beforetime was the head of +all those kingdoms. + +11:11 And they smote all the souls that were therein with the edge of +the sword, utterly destroying them: there was not any left to breathe: +and he burnt Hazor with fire. + +11:12 And all the cities of those kings, and all the kings of them, +did Joshua take, and smote them with the edge of the sword, and he +utterly destroyed them, as Moses the servant of the LORD commanded. + +11:13 But as for the cities that stood still in their strength, Israel +burned none of them, save Hazor only; that did Joshua burn. + +11:14 And all the spoil of these cities, and the cattle, the children +of Israel took for a prey unto themselves; but every man they smote +with the edge of the sword, until they had destroyed them, neither +left they any to breathe. + +11:15 As the LORD commanded Moses his servant, so did Moses command +Joshua, and so did Joshua; he left nothing undone of all that the LORD +commanded Moses. + +11:16 So Joshua took all that land, the hills, and all the south +country, and all the land of Goshen, and the valley, and the plain, +and the mountain of Israel, and the valley of the same; 11:17 Even +from the mount Halak, that goeth up to Seir, even unto Baalgad in the +valley of Lebanon under mount Hermon: and all their kings he took, and +smote them, and slew them. + +11:18 Joshua made war a long time with all those kings. + +11:19 There was not a city that made peace with the children of +Israel, save the Hivites the inhabitants of Gibeon: all other they +took in battle. + +11:20 For it was of the LORD to harden their hearts, that they should +come against Israel in battle, that he might destroy them utterly, and +that they might have no favour, but that he might destroy them, as the +LORD commanded Moses. + +11:21 And at that time came Joshua, and cut off the Anakims from the +mountains, from Hebron, from Debir, from Anab, and from all the +mountains of Judah, and from all the mountains of Israel: Joshua +destroyed them utterly with their cities. + +11:22 There was none of the Anakims left in the land of the children +of Israel: only in Gaza, in Gath, and in Ashdod, there remained. + +11:23 So Joshua took the whole land, according to all that the LORD +said unto Moses; and Joshua gave it for an inheritance unto Israel +according to their divisions by their tribes. And the land rested from +war. + +12:1 Now these are the kings of the land, which the children of Israel +smote, and possessed their land on the other side Jordan toward the +rising of the sun, from the river Arnon unto mount Hermon, and all the +plain on the east: 12:2 Sihon king of the Amorites, who dwelt in +Heshbon, and ruled from Aroer, which is upon the bank of the river +Arnon, and from the middle of the river, and from half Gilead, even +unto the river Jabbok, which is the border of the children of Ammon; +12:3 And from the plain to the sea of Chinneroth on the east, and unto +the sea of the plain, even the salt sea on the east, the way to +Bethjeshimoth; and from the south, under Ashdothpisgah: 12:4 And the +coast of Og king of Bashan, which was of the remnant of the giants, +that dwelt at Ashtaroth and at Edrei, 12:5 And reigned in mount +Hermon, and in Salcah, and in all Bashan, unto the border of the +Geshurites and the Maachathites, and half Gilead, the border of Sihon +king of Heshbon. + +12:6 Them did Moses the servant of the LORD and the children of Israel +smite: and Moses the servant of the LORD gave it for a possession unto +the Reubenites, and the Gadites, and the half tribe of Manasseh. + +12:7 And these are the kings of the country which Joshua and the +children of Israel smote on this side Jordan on the west, from Baalgad +in the valley of Lebanon even unto the mount Halak, that goeth up to +Seir; which Joshua gave unto the tribes of Israel for a possession +according to their divisions; 12:8 In the mountains, and in the +valleys, and in the plains, and in the springs, and in the wilderness, +and in the south country; the Hittites, the Amorites, and the +Canaanites, the Perizzites, the Hivites, and the Jebusites: 12:9 The +king of Jericho, one; the king of Ai, which is beside Bethel, one; +12:10 The king of Jerusalem, one; the king of Hebron, one; 12:11 The +king of Jarmuth, one; the king of Lachish, one; 12:12 The king of +Eglon, one; the king of Gezer, one; 12:13 The king of Debir, one; the +king of Geder, one; 12:14 The king of Hormah, one; the king of Arad, +one; 12:15 The king of Libnah, one; the king of Adullam, one; 12:16 +The king of Makkedah, one; the king of Bethel, one; 12:17 The king of +Tappuah, one; the king of Hepher, one; 12:18 The king of Aphek, one; +the king of Lasharon, one; 12:19 The king of Madon, one; the king of +Hazor, one; 12:20 The king of Shimronmeron, one; the king of Achshaph, +one; 12:21 The king of Taanach, one; the king of Megiddo, one; 12:22 +The king of Kedesh, one; the king of Jokneam of Carmel, one; 12:23 The +king of Dor in the coast of Dor, one; the king of the nations of +Gilgal, one; 12:24 The king of Tirzah, one: all the kings thirty and +one. + +13:1 Now Joshua was old and stricken in years; and the LORD said unto +him, Thou art old and stricken in years, and there remaineth yet very +much land to be possessed. + +13:2 This is the land that yet remaineth: all the borders of the +Philistines, and all Geshuri, 13:3 From Sihor, which is before Egypt, +even unto the borders of Ekron northward, which is counted to the +Canaanite: five lords of the Philistines; the Gazathites, and the +Ashdothites, the Eshkalonites, the Gittites, and the Ekronites; also +the Avites: 13:4 From the south, all the land of the Canaanites, and +Mearah that is beside the Sidonians unto Aphek, to the borders of the +Amorites: 13:5 And the land of the Giblites, and all Lebanon, toward +the sunrising, from Baalgad under mount Hermon unto the entering into +Hamath. + +13:6 All the inhabitants of the hill country from Lebanon unto +Misrephothmaim, and all the Sidonians, them will I drive out from +before the children of Israel: only divide thou it by lot unto the +Israelites for an inheritance, as I have commanded thee. + +13:7 Now therefore divide this land for an inheritance unto the nine +tribes, and the half tribe of Manasseh, 13:8 With whom the Reubenites +and the Gadites have received their inheritance, which Moses gave +them, beyond Jordan eastward, even as Moses the servant of the LORD +gave them; 13:9 From Aroer, that is upon the bank of the river Arnon, +and the city that is in the midst of the river, and all the plain of +Medeba unto Dibon; 13:10 And all the cities of Sihon king of the +Amorites, which reigned in Heshbon, unto the border of the children of +Ammon; 13:11 And Gilead, and the border of the Geshurites and +Maachathites, and all mount Hermon, and all Bashan unto Salcah; 13:12 +All the kingdom of Og in Bashan, which reigned in Ashtaroth and in +Edrei, who remained of the remnant of the giants: for these did Moses +smite, and cast them out. + +13:13 Nevertheless the children of Israel expelled not the Geshurites, +nor the Maachathites: but the Geshurites and the Maachathites dwell +among the Israelites until this day. + +13:14 Only unto the tribes of Levi he gave none inheritance; the +sacrifices of the LORD God of Israel made by fire are their +inheritance, as he said unto them. + +13:15 And Moses gave unto the tribe of the children of Reuben +inheritance according to their families. + +13:16 And their coast was from Aroer, that is on the bank of the river +Arnon, and the city that is in the midst of the river, and all the +plain by Medeba; 13:17 Heshbon, and all her cities that are in the +plain; Dibon, and Bamothbaal, and Bethbaalmeon, 13:18 And Jahaza, and +Kedemoth, and Mephaath, 13:19 And Kirjathaim, and Sibmah, and +Zarethshahar in the mount of the valley, 13:20 And Bethpeor, and +Ashdothpisgah, and Bethjeshimoth, 13:21 And all the cities of the +plain, and all the kingdom of Sihon king of the Amorites, which +reigned in Heshbon, whom Moses smote with the princes of Midian, Evi, +and Rekem, and Zur, and Hur, and Reba, which were dukes of Sihon, +dwelling in the country. + +13:22 Balaam also the son of Beor, the soothsayer, did the children of +Israel slay with the sword among them that were slain by them. + +13:23 And the border of the children of Reuben was Jordan, and the +border thereof. This was the inheritance of the children of Reuben +after their families, the cities and the villages thereof. + +13:24 And Moses gave inheritance unto the tribe of Gad, even unto the +children of Gad according to their families. + +13:25 And their coast was Jazer, and all the cities of Gilead, and +half the land of the children of Ammon, unto Aroer that is before +Rabbah; 13:26 And from Heshbon unto Ramathmizpeh, and Betonim; and +from Mahanaim unto the border of Debir; 13:27 And in the valley, +Betharam, and Bethnimrah, and Succoth, and Zaphon, the rest of the +kingdom of Sihon king of Heshbon, Jordan and his border, even unto the +edge of the sea of Chinnereth on the other side Jordan eastward. + +13:28 This is the inheritance of the children of Gad after their +families, the cities, and their villages. + +13:29 And Moses gave inheritance unto the half tribe of Manasseh: and +this was the possession of the half tribe of the children of Manasseh +by their families. + +13:30 And their coast was from Mahanaim, all Bashan, all the kingdom +of Og king of Bashan, and all the towns of Jair, which are in Bashan, +threescore cities: 13:31 And half Gilead, and Ashtaroth, and Edrei, +cities of the kingdom of Og in Bashan, were pertaining unto the +children of Machir the son of Manasseh, even to the one half of the +children of Machir by their families. + +13:32 These are the countries which Moses did distribute for +inheritance in the plains of Moab, on the other side Jordan, by +Jericho, eastward. + +13:33 But unto the tribe of Levi Moses gave not any inheritance: the +LORD God of Israel was their inheritance, as he said unto them. + +14:1 And these are the countries which the children of Israel +inherited in the land of Canaan, which Eleazar the priest, and Joshua +the son of Nun, and the heads of the fathers of the tribes of the +children of Israel, distributed for inheritance to them. + +14:2 By lot was their inheritance, as the LORD commanded by the hand +of Moses, for the nine tribes, and for the half tribe. + +14:3 For Moses had given the inheritance of two tribes and an half +tribe on the other side Jordan: but unto the Levites he gave none +inheritance among them. + +14:4 For the children of Joseph were two tribes, Manasseh and Ephraim: +therefore they gave no part unto the Levites in the land, save cities +to dwell in, with their suburbs for their cattle and for their +substance. + +14:5 As the LORD commanded Moses, so the children of Israel did, and +they divided the land. + +14:6 Then the children of Judah came unto Joshua in Gilgal: and Caleb +the son of Jephunneh the Kenezite said unto him, Thou knowest the +thing that the LORD said unto Moses the man of God concerning me and +thee in Kadeshbarnea. + +14:7 Forty years old was I when Moses the servant of the LORD sent me +from Kadeshbarnea to espy out the land; and I brought him word again +as it was in mine heart. + +14:8 Nevertheless my brethren that went up with me made the heart of +the people melt: but I wholly followed the LORD my God. + +14:9 And Moses sware on that day, saying, Surely the land whereon thy +feet have trodden shall be thine inheritance, and thy children's for +ever, because thou hast wholly followed the LORD my God. + +14:10 And now, behold, the LORD hath kept me alive, as he said, these +forty and five years, even since the LORD spake this word unto Moses, +while the children of Israel wandered in the wilderness: and now, lo, +I am this day fourscore and five years old. + +14:11 As yet I am as strong this day as I was in the day that Moses +sent me: as my strength was then, even so is my strength now, for war, +both to go out, and to come in. + +14:12 Now therefore give me this mountain, whereof the LORD spake in +that day; for thou heardest in that day how the Anakims were there, +and that the cities were great and fenced: if so be the LORD will be +with me, then I shall be able to drive them out, as the LORD said. + +14:13 And Joshua blessed him, and gave unto Caleb the son of Jephunneh +Hebron for an inheritance. + +14:14 Hebron therefore became the inheritance of Caleb the son of +Jephunneh the Kenezite unto this day, because that he wholly followed +the LORD God of Israel. + +14:15 And the name of Hebron before was Kirjatharba; which Arba was a +great man among the Anakims. And the land had rest from war. + +15:1 This then was the lot of the tribe of the children of Judah by +their families; even to the border of Edom the wilderness of Zin +southward was the uttermost part of the south coast. + +15:2 And their south border was from the shore of the salt sea, from +the bay that looketh southward: 15:3 And it went out to the south side +to Maalehacrabbim, and passed along to Zin, and ascended up on the +south side unto Kadeshbarnea, and passed along to Hezron, and went up +to Adar, and fetched a compass to Karkaa: 15:4 From thence it passed +toward Azmon, and went out unto the river of Egypt; and the goings out +of that coast were at the sea: this shall be your south coast. + +15:5 And the east border was the salt sea, even unto the end of +Jordan. + +And their border in the north quarter was from the bay of the sea at +the uttermost part of Jordan: 15:6 And the border went up to +Bethhogla, and passed along by the north of Betharabah; and the border +went up to the stone of Bohan the son of Reuben: 15:7 And the border +went up toward Debir from the valley of Achor, and so northward, +looking toward Gilgal, that is before the going up to Adummim, which +is on the south side of the river: and the border passed toward the +waters of Enshemesh, and the goings out thereof were at Enrogel: 15:8 +And the border went up by the valley of the son of Hinnom unto the +south side of the Jebusite; the same is Jerusalem: and the border went +up to the top of the mountain that lieth before the valley of Hinnom +westward, which is at the end of the valley of the giants northward: +15:9 And the border was drawn from the top of the hill unto the +fountain of the water of Nephtoah, and went out to the cities of mount +Ephron; and the border was drawn to Baalah, which is Kirjathjearim: +15:10 And the border compassed from Baalah westward unto mount Seir, +and passed along unto the side of mount Jearim, which is Chesalon, on +the north side, and went down to Bethshemesh, and passed on to Timnah: +15:11 And the border went out unto the side of Ekron northward: and +the border was drawn to Shicron, and passed along to mount Baalah, and +went out unto Jabneel; and the goings out of the border were at the +sea. + +15:12 And the west border was to the great sea, and the coast thereof. + +This is the coast of the children of Judah round about according to +their families. + +15:13 And unto Caleb the son of Jephunneh he gave a part among the +children of Judah, according to the commandment of the LORD to Joshua, +even the city of Arba the father of Anak, which city is Hebron. + +15:14 And Caleb drove thence the three sons of Anak, Sheshai, and +Ahiman, and Talmai, the children of Anak. + +15:15 And he went up thence to the inhabitants of Debir: and the name +of Debir before was Kirjathsepher. + +15:16 And Caleb said, He that smiteth Kirjathsepher, and taketh it, to +him will I give Achsah my daughter to wife. + +15:17 And Othniel the son of Kenaz, the brother of Caleb, took it: and +he gave him Achsah his daughter to wife. + +15:18 And it came to pass, as she came unto him, that she moved him to +ask of her father a field: and she lighted off her ass; and Caleb said +unto her, What wouldest thou? 15:19 Who answered, Give me a blessing; +for thou hast given me a south land; give me also springs of water. +And he gave her the upper springs, and the nether springs. + +15:20 This is the inheritance of the tribe of the children of Judah +according to their families. + +15:21 And the uttermost cities of the tribe of the children of Judah +toward the coast of Edom southward were Kabzeel, and Eder, and Jagur, +15:22 And Kinah, and Dimonah, and Adadah, 15:23 And Kedesh, and Hazor, +and Ithnan, 15:24 Ziph, and Telem, and Bealoth, 15:25 And Hazor, +Hadattah, and Kerioth, and Hezron, which is Hazor, 15:26 Amam, and +Shema, and Moladah, 15:27 And Hazargaddah, and Heshmon, and Bethpalet, +15:28 And Hazarshual, and Beersheba, and Bizjothjah, 15:29 Baalah, and +Iim, and Azem, 15:30 And Eltolad, and Chesil, and Hormah, 15:31 And +Ziklag, and Madmannah, and Sansannah, 15:32 And Lebaoth, and Shilhim, +and Ain, and Rimmon: all the cities are twenty and nine, with their +villages: 15:33 And in the valley, Eshtaol, and Zoreah, and Ashnah, +15:34 And Zanoah, and Engannim, Tappuah, and Enam, 15:35 Jarmuth, and +Adullam, Socoh, and Azekah, 15:36 And Sharaim, and Adithaim, and +Gederah, and Gederothaim; fourteen cities with their villages: 15:37 +Zenan, and Hadashah, and Migdalgad, 15:38 And Dilean, and Mizpeh, and +Joktheel, 15:39 Lachish, and Bozkath, and Eglon, 15:40 And Cabbon, and +Lahmam, and Kithlish, 15:41 And Gederoth, Bethdagon, and Naamah, and +Makkedah; sixteen cities with their villages: 15:42 Libnah, and Ether, +and Ashan, 15:43 And Jiphtah, and Ashnah, and Nezib, 15:44 And Keilah, +and Achzib, and Mareshah; nine cities with their villages: 15:45 +Ekron, with her towns and her villages: 15:46 From Ekron even unto the +sea, all that lay near Ashdod, with their villages: 15:47 Ashdod with +her towns and her villages, Gaza with her towns and her villages, unto +the river of Egypt, and the great sea, and the border thereof: 15:48 +And in the mountains, Shamir, and Jattir, and Socoh, 15:49 And Dannah, +and Kirjathsannah, which is Debir, 15:50 And Anab, and Eshtemoh, and +Anim, 15:51 And Goshen, and Holon, and Giloh; eleven cities with their +villages: 15:52 Arab, and Dumah, and Eshean, 15:53 And Janum, and +Bethtappuah, and Aphekah, 15:54 And Humtah, and Kirjatharba, which is +Hebron, and Zior; nine cities with their villages: 15:55 Maon, Carmel, +and Ziph, and Juttah, 15:56 And Jezreel, and Jokdeam, and Zanoah, +15:57 Cain, Gibeah, and Timnah; ten cities with their villages: 15:58 +Halhul, Bethzur, and Gedor, 15:59 And Maarath, and Bethanoth, and +Eltekon; six cities with their villages: 15:60 Kirjathbaal, which is +Kirjathjearim, and Rabbah; two cities with their villages: 15:61 In +the wilderness, Betharabah, Middin, and Secacah, 15:62 And Nibshan, +and the city of Salt, and Engedi; six cities with their villages. + +15:63 As for the Jebusites the inhabitants of Jerusalem, the children +of Judah could not drive them out; but the Jebusites dwell with the +children of Judah at Jerusalem unto this day. + +16:1 And the lot of the children of Joseph fell from Jordan by +Jericho, unto the water of Jericho on the east, to the wilderness that +goeth up from Jericho throughout mount Bethel, 16:2 And goeth out from +Bethel to Luz, and passeth along unto the borders of Archi to Ataroth, +16:3 And goeth down westward to the coast of Japhleti, unto the coast +of Bethhoron the nether, and to Gezer; and the goings out thereof are +at the sea. + +16:4 So the children of Joseph, Manasseh and Ephraim, took their +inheritance. + +16:5 And the border of the children of Ephraim according to their +families was thus: even the border of their inheritance on the east +side was Atarothaddar, unto Bethhoron the upper; 16:6 And the border +went out toward the sea to Michmethah on the north side; and the +border went about eastward unto Taanathshiloh, and passed by it on the +east to Janohah; 16:7 And it went down from Janohah to Ataroth, and to +Naarath, and came to Jericho, and went out at Jordan. + +16:8 The border went out from Tappuah westward unto the river Kanah; +and the goings out thereof were at the sea. This is the inheritance of +the tribe of the children of Ephraim by their families. + +16:9 And the separate cities for the children of Ephraim were among +the inheritance of the children of Manasseh, all the cities with their +villages. + +16:10 And they drave not out the Canaanites that dwelt in Gezer: but +the Canaanites dwell among the Ephraimites unto this day, and serve +under tribute. + +17:1 There was also a lot for the tribe of Manasseh; for he was the +firstborn of Joseph; to wit, for Machir the firstborn of Manasseh, the +father of Gilead: because he was a man of war, therefore he had Gilead +and Bashan. + +17:2 There was also a lot for the rest of the children of Manasseh by +their families; for the children of Abiezer, and for the children of +Helek, and for the children of Asriel, and for the children of +Shechem, and for the children of Hepher, and for the children of +Shemida: these were the male children of Manasseh the son of Joseph by +their families. + +17:3 But Zelophehad, the son of Hepher, the son of Gilead, the son of +Machir, the son of Manasseh, had no sons, but daughters: and these are +the names of his daughters, Mahlah, and Noah, Hoglah, Milcah, and +Tirzah. + +17:4 And they came near before Eleazar the priest, and before Joshua +the son of Nun, and before the princes, saying, The LORD commanded +Moses to give us an inheritance among our brethren. Therefore +according to the commandment of the LORD he gave them an inheritance +among the brethren of their father. + +17:5 And there fell ten portions to Manasseh, beside the land of +Gilead and Bashan, which were on the other side Jordan; 17:6 Because +the daughters of Manasseh had an inheritance among his sons: and the +rest of Manasseh's sons had the land of Gilead. + +17:7 And the coast of Manasseh was from Asher to Michmethah, that +lieth before Shechem; and the border went along on the right hand unto +the inhabitants of Entappuah. + +17:8 Now Manasseh had the land of Tappuah: but Tappuah on the border +of Manasseh belonged to the children of Ephraim; 17:9 And the coast +descended unto the river Kanah, southward of the river: these cities +of Ephraim are among the cities of Manasseh: the coast of Manasseh +also was on the north side of the river, and the outgoings of it were +at the sea: 17:10 Southward it was Ephraim's, and northward it was +Manasseh's, and the sea is his border; and they met together in Asher +on the north, and in Issachar on the east. + +17:11 And Manasseh had in Issachar and in Asher Bethshean and her +towns, and Ibleam and her towns, and the inhabitants of Dor and her +towns, and the inhabitants of Endor and her towns, and the inhabitants +of Taanach and her towns, and the inhabitants of Megiddo and her +towns, even three countries. + +17:12 Yet the children of Manasseh could not drive out the inhabitants +of those cities; but the Canaanites would dwell in that land. + +17:13 Yet it came to pass, when the children of Israel were waxen +strong, that they put the Canaanites to tribute, but did not utterly +drive them out. + +17:14 And the children of Joseph spake unto Joshua, saying, Why hast +thou given me but one lot and one portion to inherit, seeing I am a +great people, forasmuch as the LORD hath blessed me hitherto? 17:15 +And Joshua answered them, If thou be a great people, then get thee up +to the wood country, and cut down for thyself there in the land of the +Perizzites and of the giants, if mount Ephraim be too narrow for thee. + +17:16 And the children of Joseph said, The hill is not enough for us: +and all the Canaanites that dwell in the land of the valley have +chariots of iron, both they who are of Bethshean and her towns, and +they who are of the valley of Jezreel. + +17:17 And Joshua spake unto the house of Joseph, even to Ephraim and +to Manasseh, saying, Thou art a great people, and hast great power: +thou shalt not have one lot only: 17:18 But the mountain shall be +thine; for it is a wood, and thou shalt cut it down: and the outgoings +of it shall be thine: for thou shalt drive out the Canaanites, though +they have iron chariots, and though they be strong. + +18:1 And the whole congregation of the children of Israel assembled +together at Shiloh, and set up the tabernacle of the congregation +there. And the land was subdued before them. + +18:2 And there remained among the children of Israel seven tribes, +which had not yet received their inheritance. + +18:3 And Joshua said unto the children of Israel, How long are ye +slack to go to possess the land, which the LORD God of your fathers +hath given you? 18:4 Give out from among you three men for each +tribe: and I will send them, and they shall rise, and go through the +land, and describe it according to the inheritance of them; and they +shall come again to me. + +18:5 And they shall divide it into seven parts: Judah shall abide in +their coast on the south, and the house of Joseph shall abide in their +coasts on the north. + +18:6 Ye shall therefore describe the land into seven parts, and bring +the description hither to me, that I may cast lots for you here before +the LORD our God. + +18:7 But the Levites have no part among you; for the priesthood of the +LORD is their inheritance: and Gad, and Reuben, and half the tribe of +Manasseh, have received their inheritance beyond Jordan on the east, +which Moses the servant of the LORD gave them. + +18:8 And the men arose, and went away: and Joshua charged them that +went to describe the land, saying, Go and walk through the land, and +describe it, and come again to me, that I may here cast lots for you +before the LORD in Shiloh. + +18:9 And the men went and passed through the land, and described it by +cities into seven parts in a book, and came again to Joshua to the +host at Shiloh. + +18:10 And Joshua cast lots for them in Shiloh before the LORD: and +there Joshua divided the land unto the children of Israel according to +their divisions. + +18:11 And the lot of the tribe of the children of Benjamin came up +according to their families: and the coast of their lot came forth +between the children of Judah and the children of Joseph. + +18:12 And their border on the north side was from Jordan; and the +border went up to the side of Jericho on the north side, and went up +through the mountains westward; and the goings out thereof were at the +wilderness of Bethaven. + +18:13 And the border went over from thence toward Luz, to the side of +Luz, which is Bethel, southward; and the border descended to +Atarothadar, near the hill that lieth on the south side of the nether +Bethhoron. + +18:14 And the border was drawn thence, and compassed the corner of the +sea southward, from the hill that lieth before Bethhoron southward; +and the goings out thereof were at Kirjathbaal, which is +Kirjathjearim, a city of the children of Judah: this was the west +quarter. + +18:15 And the south quarter was from the end of Kirjathjearim, and the +border went out on the west, and went out to the well of waters of +Nephtoah: 18:16 And the border came down to the end of the mountain +that lieth before the valley of the son of Hinnom, and which is in the +valley of the giants on the north, and descended to the valley of +Hinnom, to the side of Jebusi on the south, and descended to Enrogel, +18:17 And was drawn from the north, and went forth to Enshemesh, and +went forth toward Geliloth, which is over against the going up of +Adummim, and descended to the stone of Bohan the son of Reuben, 18:18 +And passed along toward the side over against Arabah northward, and +went down unto Arabah: 18:19 And the border passed along to the side +of Bethhoglah northward: and the outgoings of the border were at the +north bay of the salt sea at the south end of Jordan: this was the +south coast. + +18:20 And Jordan was the border of it on the east side. This was the +inheritance of the children of Benjamin, by the coasts thereof round +about, according to their families. + +18:21 Now the cities of the tribe of the children of Benjamin +according to their families were Jericho, and Bethhoglah, and the +valley of Keziz, 18:22 And Betharabah, and Zemaraim, and Bethel, 18:23 +And Avim, and Pharah, and Ophrah, 18:24 And Chepharhaammonai, and +Ophni, and Gaba; twelve cities with their villages: 18:25 Gibeon, and +Ramah, and Beeroth, 18:26 And Mizpeh, and Chephirah, and Mozah, 18:27 +And Rekem, and Irpeel, and Taralah, 18:28 And Zelah, Eleph, and +Jebusi, which is Jerusalem, Gibeath, and Kirjath; fourteen cities with +their villages. This is the inheritance of the children of Benjamin +according to their families. + +19:1 And the second lot came forth to Simeon, even for the tribe of +the children of Simeon according to their families: and their +inheritance was within the inheritance of the children of Judah. + +19:2 And they had in their inheritance Beersheba, and Sheba, and +Moladah, 19:3 And Hazarshual, and Balah, and Azem, 19:4 And Eltolad, +and Bethul, and Hormah, 19:5 And Ziklag, and Bethmarcaboth, and +Hazarsusah, 19:6 And Bethlebaoth, and Sharuhen; thirteen cities and +their villages: 19:7 Ain, Remmon, and Ether, and Ashan; four cities +and their villages: 19:8 And all the villages that were round about +these cities to Baalathbeer, Ramath of the south. This is the +inheritance of the tribe of the children of Simeon according to their +families. + +19:9 Out of the portion of the children of Judah was the inheritance +of the children of Simeon: for the part of the children of Judah was +too much for them: therefore the children of Simeon had their +inheritance within the inheritance of them. + +19:10 And the third lot came up for the children of Zebulun according +to their families: and the border of their inheritance was unto Sarid: +19:11 And their border went up toward the sea, and Maralah, and +reached to Dabbasheth, and reached to the river that is before +Jokneam; 19:12 And turned from Sarid eastward toward the sunrising +unto the border of Chislothtabor, and then goeth out to Daberath, and +goeth up to Japhia, 19:13 And from thence passeth on along on the east +to Gittahhepher, to Ittahkazin, and goeth out to Remmonmethoar to +Neah; 19:14 And the border compasseth it on the north side to +Hannathon: and the outgoings thereof are in the valley of Jiphthahel: +19:15 And Kattath, and Nahallal, and Shimron, and Idalah, and +Bethlehem: twelve cities with their villages. + +19:16 This is the inheritance of the children of Zebulun according to +their families, these cities with their villages. + +19:17 And the fourth lot came out to Issachar, for the children of +Issachar according to their families. + +19:18 And their border was toward Jezreel, and Chesulloth, and Shunem, +19:19 And Haphraim, and Shihon, and Anaharath, 19:20 And Rabbith, and +Kishion, and Abez, 19:21 And Remeth, and Engannim, and Enhaddah, and +Bethpazzez; 19:22 And the coast reacheth to Tabor, and Shahazimah, and +Bethshemesh; and the outgoings of their border were at Jordan: sixteen +cities with their villages. + +19:23 This is the inheritance of the tribe of the children of Issachar +according to their families, the cities and their villages. + +19:24 And the fifth lot came out for the tribe of the children of +Asher according to their families. + +19:25 And their border was Helkath, and Hali, and Beten, and Achshaph, +19:26 And Alammelech, and Amad, and Misheal; and reacheth to Carmel +westward, and to Shihorlibnath; 19:27 And turneth toward the sunrising +to Bethdagon, and reacheth to Zebulun, and to the valley of Jiphthahel +toward the north side of Bethemek, and Neiel, and goeth out to Cabul +on the left hand, 19:28 And Hebron, and Rehob, and Hammon, and Kanah, +even unto great Zidon; 19:29 And then the coast turneth to Ramah, and +to the strong city Tyre; and the coast turneth to Hosah; and the +outgoings thereof are at the sea from the coast to Achzib: 19:30 Ummah +also, and Aphek, and Rehob: twenty and two cities with their villages. + +19:31 This is the inheritance of the tribe of the children of Asher +according to their families, these cities with their villages. + +19:32 The sixth lot came out to the children of Naphtali, even for the +children of Naphtali according to their families. + +19:33 And their coast was from Heleph, from Allon to Zaanannim, and +Adami, Nekeb, and Jabneel, unto Lakum; and the outgoings thereof were +at Jordan: 19:34 And then the coast turneth westward to Aznothtabor, +and goeth out from thence to Hukkok, and reacheth to Zebulun on the +south side, and reacheth to Asher on the west side, and to Judah upon +Jordan toward the sunrising. + +19:35 And the fenced cities are Ziddim, Zer, and Hammath, Rakkath, and +Chinnereth, 19:36 And Adamah, and Ramah, and Hazor, 19:37 And Kedesh, +and Edrei, and Enhazor, 19:38 And Iron, and Migdalel, Horem, and +Bethanath, and Bethshemesh; nineteen cities with their villages. + +19:39 This is the inheritance of the tribe of the children of Naphtali +according to their families, the cities and their villages. + +19:40 And the seventh lot came out for the tribe of the children of +Dan according to their families. + +19:41 And the coast of their inheritance was Zorah, and Eshtaol, and +Irshemesh, 19:42 And Shaalabbin, and Ajalon, and Jethlah, 19:43 And +Elon, and Thimnathah, and Ekron, 19:44 And Eltekeh, and Gibbethon, and +Baalath, 19:45 And Jehud, and Beneberak, and Gathrimmon, 19:46 And +Mejarkon, and Rakkon, with the border before Japho. + +19:47 And the coast of the children of Dan went out too little for +them: therefore the children of Dan went up to fight against Leshem, +and took it, and smote it with the edge of the sword, and possessed +it, and dwelt therein, and called Leshem, Dan, after the name of Dan +their father. + +19:48 This is the inheritance of the tribe of the children of Dan +according to their families, these cities with their villages. + +19:49 When they had made an end of dividing the land for inheritance +by their coasts, the children of Israel gave an inheritance to Joshua +the son of Nun among them: 19:50 According to the word of the LORD +they gave him the city which he asked, even Timnathserah in mount +Ephraim: and he built the city, and dwelt therein. + +19:51 These are the inheritances, which Eleazar the priest, and Joshua +the son of Nun, and the heads of the fathers of the tribes of the +children of Israel, divided for an inheritance by lot in Shiloh before +the LORD, at the door of the tabernacle of the congregation. So they +made an end of dividing the country. + +20:1 The LORD also spake unto Joshua, saying, 20:2 Speak to the +children of Israel, saying, Appoint out for you cities of refuge, +whereof I spake unto you by the hand of Moses: 20:3 That the slayer +that killeth any person unawares and unwittingly may flee thither: and +they shall be your refuge from the avenger of blood. + +20:4 And when he that doth flee unto one of those cities shall stand +at the entering of the gate of the city, and shall declare his cause +in the ears of the elders of that city, they shall take him into the +city unto them, and give him a place, that he may dwell among them. + +20:5 And if the avenger of blood pursue after him, then they shall not +deliver the slayer up into his hand; because he smote his neighbour +unwittingly, and hated him not beforetime. + +20:6 And he shall dwell in that city, until he stand before the +congregation for judgment, and until the death of the high priest that +shall be in those days: then shall the slayer return, and come unto +his own city, and unto his own house, unto the city from whence he +fled. + +20:7 And they appointed Kedesh in Galilee in mount Naphtali, and +Shechem in mount Ephraim, and Kirjatharba, which is Hebron, in the +mountain of Judah. + +20:8 And on the other side Jordan by Jericho eastward, they assigned +Bezer in the wilderness upon the plain out of the tribe of Reuben, and +Ramoth in Gilead out of the tribe of Gad, and Golan in Bashan out of +the tribe of Manasseh. + +20:9 These were the cities appointed for all the children of Israel, +and for the stranger that sojourneth among them, that whosoever +killeth any person at unawares might flee thither, and not die by the +hand of the avenger of blood, until he stood before the congregation. + +21:1 Then came near the heads of the fathers of the Levites unto +Eleazar the priest, and unto Joshua the son of Nun, and unto the heads +of the fathers of the tribes of the children of Israel; 21:2 And they +spake unto them at Shiloh in the land of Canaan, saying, The LORD +commanded by the hand of Moses to give us cities to dwell in, with the +suburbs thereof for our cattle. + +21:3 And the children of Israel gave unto the Levites out of their +inheritance, at the commandment of the LORD, these cities and their +suburbs. + +21:4 And the lot came out for the families of the Kohathites: and the +children of Aaron the priest, which were of the Levites, had by lot +out of the tribe of Judah, and out of the tribe of Simeon, and out of +the tribe of Benjamin, thirteen cities. + +21:5 And the rest of the children of Kohath had by lot out of the +families of the tribe of Ephraim, and out of the tribe of Dan, and out +of the half tribe of Manasseh, ten cities. + +21:6 And the children of Gershon had by lot out of the families of the +tribe of Issachar, and out of the tribe of Asher, and out of the tribe +of Naphtali, and out of the half tribe of Manasseh in Bashan, thirteen +cities. + +21:7 The children of Merari by their families had out of the tribe of +Reuben, and out of the tribe of Gad, and out of the tribe of Zebulun, +twelve cities. + +21:8 And the children of Israel gave by lot unto the Levites these +cities with their suburbs, as the LORD commanded by the hand of Moses. + +21:9 And they gave out of the tribe of the children of Judah, and out +of the tribe of the children of Simeon, these cities which are here +mentioned by name. + +21:10 Which the children of Aaron, being of the families of the +Kohathites, who were of the children of Levi, had: for theirs was the +first lot. + +21:11 And they gave them the city of Arba the father of Anak, which +city is Hebron, in the hill country of Judah, with the suburbs thereof +round about it. + +21:12 But the fields of the city, and the villages thereof, gave they +to Caleb the son of Jephunneh for his possession. + +21:13 Thus they gave to the children of Aaron the priest Hebron with +her suburbs, to be a city of refuge for the slayer; and Libnah with +her suburbs, 21:14 And Jattir with her suburbs, and Eshtemoa with her +suburbs, 21:15 And Holon with her suburbs, and Debir with her suburbs, +21:16 And Ain with her suburbs, and Juttah with her suburbs, and +Bethshemesh with her suburbs; nine cities out of those two tribes. + +21:17 And out of the tribe of Benjamin, Gibeon with her suburbs, Geba +with her suburbs, 21:18 Anathoth with her suburbs, and Almon with her +suburbs; four cities. + +21:19 All the cities of the children of Aaron, the priests, were +thirteen cities with their suburbs. + +21:20 And the families of the children of Kohath, the Levites which +remained of the children of Kohath, even they had the cities of their +lot out of the tribe of Ephraim. + +21:21 For they gave them Shechem with her suburbs in mount Ephraim, to +be a city of refuge for the slayer; and Gezer with her suburbs, 21:22 +And Kibzaim with her suburbs, and Bethhoron with her suburbs; four +cities. + +21:23 And out of the tribe of Dan, Eltekeh with her suburbs, Gibbethon +with her suburbs, 21:24 Aijalon with her suburbs, Gathrimmon with her +suburbs; four cities. + +21:25 And out of the half tribe of Manasseh, Tanach with her suburbs, +and Gathrimmon with her suburbs; two cities. + +21:26 All the cities were ten with their suburbs for the families of +the children of Kohath that remained. + +21:27 And unto the children of Gershon, of the families of the +Levites, out of the other half tribe of Manasseh they gave Golan in +Bashan with her suburbs, to be a city of refuge for the slayer; and +Beeshterah with her suburbs; two cities. + +21:28 And out of the tribe of Issachar, Kishon with her suburbs, +Dabareh with her suburbs, 21:29 Jarmuth with her suburbs, Engannim +with her suburbs; four cities. + +21:30 And out of the tribe of Asher, Mishal with her suburbs, Abdon +with her suburbs, 21:31 Helkath with her suburbs, and Rehob with her +suburbs; four cities. + +21:32 And out of the tribe of Naphtali, Kedesh in Galilee with her +suburbs, to be a city of refuge for the slayer; and Hammothdor with +her suburbs, and Kartan with her suburbs; three cities. + +21:33 All the cities of the Gershonites according to their families +were thirteen cities with their suburbs. + +21:34 And unto the families of the children of Merari, the rest of the +Levites, out of the tribe of Zebulun, Jokneam with her suburbs, and +Kartah with her suburbs, 21:35 Dimnah with her suburbs, Nahalal with +her suburbs; four cities. + +21:36 And out of the tribe of Reuben, Bezer with her suburbs, and +Jahazah with her suburbs, 21:37 Kedemoth with her suburbs, and +Mephaath with her suburbs; four cities. + +21:38 And out of the tribe of Gad, Ramoth in Gilead with her suburbs, +to be a city of refuge for the slayer; and Mahanaim with her suburbs, +21:39 Heshbon with her suburbs, Jazer with her suburbs; four cities in +all. + +21:40 So all the cities for the children of Merari by their families, +which were remaining of the families of the Levites, were by their lot +twelve cities. + +21:41 All the cities of the Levites within the possession of the +children of Israel were forty and eight cities with their suburbs. + +21:42 These cities were every one with their suburbs round about them: +thus were all these cities. + +21:43 And the LORD gave unto Israel all the land which he sware to +give unto their fathers; and they possessed it, and dwelt therein. + +21:44 And the LORD gave them rest round about, according to all that +he sware unto their fathers: and there stood not a man of all their +enemies before them; the LORD delivered all their enemies into their +hand. + +21:45 There failed not ought of any good thing which the LORD had +spoken unto the house of Israel; all came to pass. + +22:1 Then Joshua called the Reubenites, and the Gadites, and the half +tribe of Manasseh, 22:2 And said unto them, Ye have kept all that +Moses the servant of the LORD commanded you, and have obeyed my voice +in all that I commanded you: 22:3 Ye have not left your brethren these +many days unto this day, but have kept the charge of the commandment +of the LORD your God. + +22:4 And now the LORD your God hath given rest unto your brethren, as +he promised them: therefore now return ye, and get you unto your +tents, and unto the land of your possession, which Moses the servant +of the LORD gave you on the other side Jordan. + +22:5 But take diligent heed to do the commandment and the law, which +Moses the servant of the LORD charged you, to love the LORD your God, +and to walk in all his ways, and to keep his commandments, and to +cleave unto him, and to serve him with all your heart and with all +your soul. + +22:6 So Joshua blessed them, and sent them away: and they went unto +their tents. + +22:7 Now to the one half of the tribe of Manasseh Moses had given +possession in Bashan: but unto the other half thereof gave Joshua +among their brethren on this side Jordan westward. And when Joshua +sent them away also unto their tents, then he blessed them, 22:8 And +he spake unto them, saying, Return with much riches unto your tents, +and with very much cattle, with silver, and with gold, and with brass, +and with iron, and with very much raiment: divide the spoil of your +enemies with your brethren. + +22:9 And the children of Reuben and the children of Gad and the half +tribe of Manasseh returned, and departed from the children of Israel +out of Shiloh, which is in the land of Canaan, to go unto the country +of Gilead, to the land of their possession, whereof they were +possessed, according to the word of the LORD by the hand of Moses. + +22:10 And when they came unto the borders of Jordan, that are in the +land of Canaan, the children of Reuben and the children of Gad and the +half tribe of Manasseh built there an altar by Jordan, a great altar +to see to. + +22:11 And the children of Israel heard say, Behold, the children of +Reuben and the children of Gad and the half tribe of Manasseh have +built an altar over against the land of Canaan, in the borders of +Jordan, at the passage of the children of Israel. + +22:12 And when the children of Israel heard of it, the whole +congregation of the children of Israel gathered themselves together at +Shiloh, to go up to war against them. + +22:13 And the children of Israel sent unto the children of Reuben, and +to the children of Gad, and to the half tribe of Manasseh, into the +land of Gilead, Phinehas the son of Eleazar the priest, 22:14 And with +him ten princes, of each chief house a prince throughout all the +tribes of Israel; and each one was an head of the house of their +fathers among the thousands of Israel. + +22:15 And they came unto the children of Reuben, and to the children +of Gad, and to the half tribe of Manasseh, unto the land of Gilead, +and they spake with them, saying, 22:16 Thus saith the whole +congregation of the LORD, What trespass is this that ye have committed +against the God of Israel, to turn away this day from following the +LORD, in that ye have builded you an altar, that ye might rebel this +day against the LORD? 22:17 Is the iniquity of Peor too little for +us, from which we are not cleansed until this day, although there was +a plague in the congregation of the LORD, 22:18 But that ye must turn +away this day from following the LORD? and it will be, seeing ye rebel +to day against the LORD, that to morrow he will be wroth with the +whole congregation of Israel. + +22:19 Notwithstanding, if the land of your possession be unclean, then +pass ye over unto the land of the possession of the LORD, wherein the +LORD's tabernacle dwelleth, and take possession among us: but rebel +not against the LORD, nor rebel against us, in building you an altar +beside the altar of the LORD our God. + +22:20 Did not Achan the son of Zerah commit a trespass in the accursed +thing, and wrath fell on all the congregation of Israel? and that man +perished not alone in his iniquity. + +22:21 Then the children of Reuben and the children of Gad and the half +tribe of Manasseh answered, and said unto the heads of the thousands +of Israel, 22:22 The LORD God of gods, the LORD God of gods, he +knoweth, and Israel he shall know; if it be in rebellion, or if in +transgression against the LORD, (save us not this day,) 22:23 That we +have built us an altar to turn from following the LORD, or if to offer +thereon burnt offering or meat offering, or if to offer peace +offerings thereon, let the LORD himself require it; 22:24 And if we +have not rather done it for fear of this thing, saying, In time to +come your children might speak unto our children, saying, What have ye +to do with the LORD God of Israel? 22:25 For the LORD hath made +Jordan a border between us and you, ye children of Reuben and children +of Gad; ye have no part in the LORD: so shall your children make our +children cease from fearing the LORD. + +22:26 Therefore we said, Let us now prepare to build us an altar, not +for burnt offering, nor for sacrifice: 22:27 But that it may be a +witness between us, and you, and our generations after us, that we +might do the service of the LORD before him with our burnt offerings, +and with our sacrifices, and with our peace offerings; that your +children may not say to our children in time to come, Ye have no part +in the LORD. + +22:28 Therefore said we, that it shall be, when they should so say to +us or to our generations in time to come, that we may say again, +Behold the pattern of the altar of the LORD, which our fathers made, +not for burnt offerings, nor for sacrifices; but it is a witness +between us and you. + +22:29 God forbid that we should rebel against the LORD, and turn this +day from following the LORD, to build an altar for burnt offerings, +for meat offerings, or for sacrifices, beside the altar of the LORD +our God that is before his tabernacle. + +22:30 And when Phinehas the priest, and the princes of the +congregation and heads of the thousands of Israel which were with him, +heard the words that the children of Reuben and the children of Gad +and the children of Manasseh spake, it pleased them. + +22:31 And Phinehas the son of Eleazar the priest said unto the +children of Reuben, and to the children of Gad, and to the children of +Manasseh, This day we perceive that the LORD is among us, because ye +have not committed this trespass against the LORD: now ye have +delivered the children of Israel out of the hand of the LORD. + +22:32 And Phinehas the son of Eleazar the priest, and the princes, +returned from the children of Reuben, and from the children of Gad, +out of the land of Gilead, unto the land of Canaan, to the children of +Israel, and brought them word again. + +22:33 And the thing pleased the children of Israel; and the children +of Israel blessed God, and did not intend to go up against them in +battle, to destroy the land wherein the children of Reuben and Gad +dwelt. + +22:34 And the children of Reuben and the children of Gad called the +altar Ed: for it shall be a witness between us that the LORD is God. + +23:1 And it came to pass a long time after that the LORD had given +rest unto Israel from all their enemies round about, that Joshua waxed +old and stricken in age. + +23:2 And Joshua called for all Israel, and for their elders, and for +their heads, and for their judges, and for their officers, and said +unto them, I am old and stricken in age: 23:3 And ye have seen all +that the LORD your God hath done unto all these nations because of +you; for the LORD your God is he that hath fought for you. + +23:4 Behold, I have divided unto you by lot these nations that remain, +to be an inheritance for your tribes, from Jordan, with all the +nations that I have cut off, even unto the great sea westward. + +23:5 And the LORD your God, he shall expel them from before you, and +drive them from out of your sight; and ye shall possess their land, as +the LORD your God hath promised unto you. + +23:6 Be ye therefore very courageous to keep and to do all that is +written in the book of the law of Moses, that ye turn not aside +therefrom to the right hand or to the left; 23:7 That ye come not +among these nations, these that remain among you; neither make mention +of the name of their gods, nor cause to swear by them, neither serve +them, nor bow yourselves unto them: 23:8 But cleave unto the LORD your +God, as ye have done unto this day. + +23:9 For the LORD hath driven out from before you great nations and +strong: but as for you, no man hath been able to stand before you unto +this day. + +23:10 One man of you shall chase a thousand: for the LORD your God, he +it is that fighteth for you, as he hath promised you. + +23:11 Take good heed therefore unto yourselves, that ye love the LORD +your God. + +23:12 Else if ye do in any wise go back, and cleave unto the remnant +of these nations, even these that remain among you, and shall make +marriages with them, and go in unto them, and they to you: 23:13 Know +for a certainty that the LORD your God will no more drive out any of +these nations from before you; but they shall be snares and traps unto +you, and scourges in your sides, and thorns in your eyes, until ye +perish from off this good land which the LORD your God hath given you. + +23:14 And, behold, this day I am going the way of all the earth: and +ye know in all your hearts and in all your souls, that not one thing +hath failed of all the good things which the LORD your God spake +concerning you; all are come to pass unto you, and not one thing hath +failed thereof. + +23:15 Therefore it shall come to pass, that as all good things are +come upon you, which the LORD your God promised you; so shall the LORD +bring upon you all evil things, until he have destroyed you from off +this good land which the LORD your God hath given you. + +23:16 When ye have transgressed the covenant of the LORD your God, +which he commanded you, and have gone and served other gods, and bowed +yourselves to them; then shall the anger of the LORD be kindled +against you, and ye shall perish quickly from off the good land which +he hath given unto you. + +24:1 And Joshua gathered all the tribes of Israel to Shechem, and +called for the elders of Israel, and for their heads, and for their +judges, and for their officers; and they presented themselves before +God. + +24:2 And Joshua said unto all the people, Thus saith the LORD God of +Israel, Your fathers dwelt on the other side of the flood in old time, +even Terah, the father of Abraham, and the father of Nachor: and they +served other gods. + +24:3 And I took your father Abraham from the other side of the flood, +and led him throughout all the land of Canaan, and multiplied his +seed, and gave him Isaac. + +24:4 And I gave unto Isaac Jacob and Esau: and I gave unto Esau mount +Seir, to possess it; but Jacob and his children went down into Egypt. + +24:5 I sent Moses also and Aaron, and I plagued Egypt, according to +that which I did among them: and afterward I brought you out. + +24:6 And I brought your fathers out of Egypt: and ye came unto the +sea; and the Egyptians pursued after your fathers with chariots and +horsemen unto the Red sea. + +24:7 And when they cried unto the LORD, he put darkness between you +and the Egyptians, and brought the sea upon them, and covered them; +and your eyes have seen what I have done in Egypt: and ye dwelt in the +wilderness a long season. + +24:8 And I brought you into the land of the Amorites, which dwelt on +the other side Jordan; and they fought with you: and I gave them into +your hand, that ye might possess their land; and I destroyed them from +before you. + +24:9 Then Balak the son of Zippor, king of Moab, arose and warred +against Israel, and sent and called Balaam the son of Beor to curse +you: 24:10 But I would not hearken unto Balaam; therefore he blessed +you still: so I delivered you out of his hand. + +24:11 And you went over Jordan, and came unto Jericho: and the men of +Jericho fought against you, the Amorites, and the Perizzites, and the +Canaanites, and the Hittites, and the Girgashites, the Hivites, and +the Jebusites; and I delivered them into your hand. + +24:12 And I sent the hornet before you, which drave them out from +before you, even the two kings of the Amorites; but not with thy +sword, nor with thy bow. + +24:13 And I have given you a land for which ye did not labour, and +cities which ye built not, and ye dwell in them; of the vineyards and +oliveyards which ye planted not do ye eat. + +24:14 Now therefore fear the LORD, and serve him in sincerity and in +truth: and put away the gods which your fathers served on the other +side of the flood, and in Egypt; and serve ye the LORD. + +24:15 And if it seem evil unto you to serve the LORD, choose you this +day whom ye will serve; whether the gods which your fathers served +that were on the other side of the flood, or the gods of the Amorites, +in whose land ye dwell: but as for me and my house, we will serve the +LORD. + +24:16 And the people answered and said, God forbid that we should +forsake the LORD, to serve other gods; 24:17 For the LORD our God, he +it is that brought us up and our fathers out of the land of Egypt, +from the house of bondage, and which did those great signs in our +sight, and preserved us in all the way wherein we went, and among all +the people through whom we passed: 24:18 And the LORD drave out from +before us all the people, even the Amorites which dwelt in the land: +therefore will we also serve the LORD; for he is our God. + +24:19 And Joshua said unto the people, Ye cannot serve the LORD: for +he is an holy God; he is a jealous God; he will not forgive your +transgressions nor your sins. + +24:20 If ye forsake the LORD, and serve strange gods, then he will +turn and do you hurt, and consume you, after that he hath done you +good. + +24:21 And the people said unto Joshua, Nay; but we will serve the +LORD. + +24:22 And Joshua said unto the people, Ye are witnesses against +yourselves that ye have chosen you the LORD, to serve him. And they +said, We are witnesses. + +24:23 Now therefore put away, said he, the strange gods which are +among you, and incline your heart unto the LORD God of Israel. + +24:24 And the people said unto Joshua, The LORD our God will we serve, +and his voice will we obey. + +24:25 So Joshua made a covenant with the people that day, and set them +a statute and an ordinance in Shechem. + +24:26 And Joshua wrote these words in the book of the law of God, and +took a great stone, and set it up there under an oak, that was by the +sanctuary of the LORD. + +24:27 And Joshua said unto all the people, Behold, this stone shall be +a witness unto us; for it hath heard all the words of the LORD which +he spake unto us: it shall be therefore a witness unto you, lest ye +deny your God. + +24:28 So Joshua let the people depart, every man unto his inheritance. + +24:29 And it came to pass after these things, that Joshua the son of +Nun, the servant of the LORD, died, being an hundred and ten years +old. + +24:30 And they buried him in the border of his inheritance in +Timnathserah, which is in mount Ephraim, on the north side of the hill +of Gaash. + +24:31 And Israel served the LORD all the days of Joshua, and all the +days of the elders that overlived Joshua, and which had known all the +works of the LORD, that he had done for Israel. + +24:32 And the bones of Joseph, which the children of Israel brought up +out of Egypt, buried they in Shechem, in a parcel of ground which +Jacob bought of the sons of Hamor the father of Shechem for an hundred +pieces of silver: and it became the inheritance of the children of +Joseph. + +24:33 And Eleazar the son of Aaron died; and they buried him in a hill +that pertained to Phinehas his son, which was given him in mount +Ephraim. + + + + +The Book of Judges + + +1:1 Now after the death of Joshua it came to pass, that the children +of Israel asked the LORD, saying, Who shall go up for us against the +Canaanites first, to fight against them? 1:2 And the LORD said, Judah +shall go up: behold, I have delivered the land into his hand. + +1:3 And Judah said unto Simeon his brother, Come up with me into my +lot, that we may fight against the Canaanites; and I likewise will go +with thee into thy lot. So Simeon went with him. + +1:4 And Judah went up; and the LORD delivered the Canaanites and the +Perizzites into their hand: and they slew of them in Bezek ten +thousand men. + +1:5 And they found Adonibezek in Bezek: and they fought against him, +and they slew the Canaanites and the Perizzites. + +1:6 But Adonibezek fled; and they pursued after him, and caught him, +and cut off his thumbs and his great toes. + +1:7 And Adonibezek said, Threescore and ten kings, having their thumbs +and their great toes cut off, gathered their meat under my table: as I +have done, so God hath requited me. And they brought him to Jerusalem, +and there he died. + +1:8 Now the children of Judah had fought against Jerusalem, and had +taken it, and smitten it with the edge of the sword, and set the city +on fire. + +1:9 And afterward the children of Judah went down to fight against the +Canaanites, that dwelt in the mountain, and in the south, and in the +valley. + +1:10 And Judah went against the Canaanites that dwelt in Hebron: (now +the name of Hebron before was Kirjatharba:) and they slew Sheshai, and +Ahiman, and Talmai. + +1:11 And from thence he went against the inhabitants of Debir: and the +name of Debir before was Kirjathsepher: 1:12 And Caleb said, He that +smiteth Kirjathsepher, and taketh it, to him will I give Achsah my +daughter to wife. + +1:13 And Othniel the son of Kenaz, Caleb's younger brother, took it: +and he gave him Achsah his daughter to wife. + +1:14 And it came to pass, when she came to him, that she moved him to +ask of her father a field: and she lighted from off her ass; and Caleb +said unto her, What wilt thou? 1:15 And she said unto him, Give me a +blessing: for thou hast given me a south land; give me also springs of +water. And Caleb gave her the upper springs and the nether springs. + +1:16 And the children of the Kenite, Moses' father in law, went up out +of the city of palm trees with the children of Judah into the +wilderness of Judah, which lieth in the south of Arad; and they went +and dwelt among the people. + +1:17 And Judah went with Simeon his brother, and they slew the +Canaanites that inhabited Zephath, and utterly destroyed it. And the +name of the city was called Hormah. + +1:18 Also Judah took Gaza with the coast thereof, and Askelon with the +coast thereof, and Ekron with the coast thereof. + +1:19 And the LORD was with Judah; and he drave out the inhabitants of +the mountain; but could not drive out the inhabitants of the valley, +because they had chariots of iron. + +1:20 And they gave Hebron unto Caleb, as Moses said: and he expelled +thence the three sons of Anak. + +1:21 And the children of Benjamin did not drive out the Jebusites that +inhabited Jerusalem; but the Jebusites dwell with the children of +Benjamin in Jerusalem unto this day. + +1:22 And the house of Joseph, they also went up against Bethel: and +the LORD was with them. + +1:23 And the house of Joseph sent to descry Bethel. (Now the name of +the city before was Luz.) 1:24 And the spies saw a man come forth out +of the city, and they said unto him, Shew us, we pray thee, the +entrance into the city, and we will shew thee mercy. + +1:25 And when he shewed them the entrance into the city, they smote +the city with the edge of the sword; but they let go the man and all +his family. + +1:26 And the man went into the land of the Hittites, and built a city, +and called the name thereof Luz: which is the name thereof unto this +day. + +1:27 Neither did Manasseh drive out the inhabitants of Bethshean and +her towns, nor Taanach and her towns, nor the inhabitants of Dor and +her towns, nor the inhabitants of Ibleam and her towns, nor the +inhabitants of Megiddo and her towns: but the Canaanites would dwell +in that land. + +1:28 And it came to pass, when Israel was strong, that they put the +Canaanites to tribute, and did not utterly drive them out. + +1:29 Neither did Ephraim drive out the Canaanites that dwelt in Gezer; +but the Canaanites dwelt in Gezer among them. + +1:30 Neither did Zebulun drive out the inhabitants of Kitron, nor the +inhabitants of Nahalol; but the Canaanites dwelt among them, and +became tributaries. + +1:31 Neither did Asher drive out the inhabitants of Accho, nor the +inhabitants of Zidon, nor of Ahlab, nor of Achzib, nor of Helbah, nor +of Aphik, nor of Rehob: 1:32 But the Asherites dwelt among the +Canaanites, the inhabitants of the land: for they did not drive them +out. + +1:33 Neither did Naphtali drive out the inhabitants of Bethshemesh, +nor the inhabitants of Bethanath; but he dwelt among the Canaanites, +the inhabitants of the land: nevertheless the inhabitants of +Bethshemesh and of Bethanath became tributaries unto them. + +1:34 And the Amorites forced the children of Dan into the mountain: +for they would not suffer them to come down to the valley: 1:35 But +the Amorites would dwell in mount Heres in Aijalon, and in Shaalbim: +yet the hand of the house of Joseph prevailed, so that they became +tributaries. + +1:36 And the coast of the Amorites was from the going up to Akrabbim, +from the rock, and upward. + +2:1 And an angel of the LORD came up from Gilgal to Bochim, and said, +I made you to go up out of Egypt, and have brought you unto the land +which I sware unto your fathers; and I said, I will never break my +covenant with you. + +2:2 And ye shall make no league with the inhabitants of this land; ye +shall throw down their altars: but ye have not obeyed my voice: why +have ye done this? 2:3 Wherefore I also said, I will not drive them +out from before you; but they shall be as thorns in your sides, and +their gods shall be a snare unto you. + +2:4 And it came to pass, when the angel of the LORD spake these words +unto all the children of Israel, that the people lifted up their +voice, and wept. + +2:5 And they called the name of that place Bochim: and they sacrificed +there unto the LORD. + +2:6 And when Joshua had let the people go, the children of Israel went +every man unto his inheritance to possess the land. + +2:7 And the people served the LORD all the days of Joshua, and all the +days of the elders that outlived Joshua, who had seen all the great +works of the LORD, that he did for Israel. + +2:8 And Joshua the son of Nun, the servant of the LORD, died, being an +hundred and ten years old. + +2:9 And they buried him in the border of his inheritance in +Timnathheres, in the mount of Ephraim, on the north side of the hill +Gaash. + +2:10 And also all that generation were gathered unto their fathers: +and there arose another generation after them, which knew not the +LORD, nor yet the works which he had done for Israel. + +2:11 And the children of Israel did evil in the sight of the LORD, and +served Baalim: 2:12 And they forsook the LORD God of their fathers, +which brought them out of the land of Egypt, and followed other gods, +of the gods of the people that were round about them, and bowed +themselves unto them, and provoked the LORD to anger. + +2:13 And they forsook the LORD, and served Baal and Ashtaroth. + +2:14 And the anger of the LORD was hot against Israel, and he +delivered them into the hands of spoilers that spoiled them, and he +sold them into the hands of their enemies round about, so that they +could not any longer stand before their enemies. + +2:15 Whithersoever they went out, the hand of the LORD was against +them for evil, as the LORD had said, and as the LORD had sworn unto +them: and they were greatly distressed. + +2:16 Nevertheless the LORD raised up judges, which delivered them out +of the hand of those that spoiled them. + +2:17 And yet they would not hearken unto their judges, but they went a +whoring after other gods, and bowed themselves unto them: they turned +quickly out of the way which their fathers walked in, obeying the +commandments of the LORD; but they did not so. + +2:18 And when the LORD raised them up judges, then the LORD was with +the judge, and delivered them out of the hand of their enemies all the +days of the judge: for it repented the LORD because of their groanings +by reason of them that oppressed them and vexed them. + +2:19 And it came to pass, when the judge was dead, that they returned, +and corrupted themselves more than their fathers, in following other +gods to serve them, and to bow down unto them; they ceased not from +their own doings, nor from their stubborn way. + +2:20 And the anger of the LORD was hot against Israel; and he said, +Because that this people hath transgressed my covenant which I +commanded their fathers, and have not hearkened unto my voice; 2:21 I +also will not henceforth drive out any from before them of the nations +which Joshua left when he died: 2:22 That through them I may prove +Israel, whether they will keep the way of the LORD to walk therein, as +their fathers did keep it, or not. + +2:23 Therefore the LORD left those nations, without driving them out +hastily; neither delivered he them into the hand of Joshua. + +3:1 Now these are the nations which the LORD left, to prove Israel by +them, even as many of Israel as had not known all the wars of Canaan; +3:2 Only that the generations of the children of Israel might know, to +teach them war, at the least such as before knew nothing thereof; 3:3 +Namely, five lords of the Philistines, and all the Canaanites, and the +Sidonians, and the Hivites that dwelt in mount Lebanon, from mount +Baalhermon unto the entering in of Hamath. + +3:4 And they were to prove Israel by them, to know whether they would +hearken unto the commandments of the LORD, which he commanded their +fathers by the hand of Moses. + +3:5 And the children of Israel dwelt among the Canaanites, Hittites, +and Amorites, and Perizzites, and Hivites, and Jebusites: 3:6 And they +took their daughters to be their wives, and gave their daughters to +their sons, and served their gods. + +3:7 And the children of Israel did evil in the sight of the LORD, and +forgat the LORD their God, and served Baalim and the groves. + +3:8 Therefore the anger of the LORD was hot against Israel, and he +sold them into the hand of Chushanrishathaim king of Mesopotamia: and +the children of Israel served Chushanrishathaim eight years. + +3:9 And when the children of Israel cried unto the LORD, the LORD +raised up a deliverer to the children of Israel, who delivered them, +even Othniel the son of Kenaz, Caleb's younger brother. + +3:10 And the Spirit of the LORD came upon him, and he judged Israel, +and went out to war: and the LORD delivered Chushanrishathaim king of +Mesopotamia into his hand; and his hand prevailed against +Chushanrishathaim. + +3:11 And the land had rest forty years. And Othniel the son of Kenaz +died. + +3:12 And the children of Israel did evil again in the sight of the +LORD: and the LORD strengthened Eglon the king of Moab against Israel, +because they had done evil in the sight of the LORD. + +3:13 And he gathered unto him the children of Ammon and Amalek, and +went and smote Israel, and possessed the city of palm trees. + +3:14 So the children of Israel served Eglon the king of Moab eighteen +years. + +3:15 But when the children of Israel cried unto the LORD, the LORD +raised them up a deliverer, Ehud the son of Gera, a Benjamite, a man +lefthanded: and by him the children of Israel sent a present unto +Eglon the king of Moab. + +3:16 But Ehud made him a dagger which had two edges, of a cubit +length; and he did gird it under his raiment upon his right thigh. + +3:17 And he brought the present unto Eglon king of Moab: and Eglon was +a very fat man. + +3:18 And when he had made an end to offer the present, he sent away +the people that bare the present. + +3:19 But he himself turned again from the quarries that were by +Gilgal, and said, I have a secret errand unto thee, O king: who said, +Keep silence. And all that stood by him went out from him. + +3:20 And Ehud came unto him; and he was sitting in a summer parlour, +which he had for himself alone. And Ehud said, I have a message from +God unto thee. + +And he arose out of his seat. + +3:21 And Ehud put forth his left hand, and took the dagger from his +right thigh, and thrust it into his belly: 3:22 And the haft also went +in after the blade; and the fat closed upon the blade, so that he +could not draw the dagger out of his belly; and the dirt came out. + +3:23 Then Ehud went forth through the porch, and shut the doors of the +parlour upon him, and locked them. + +3:24 When he was gone out, his servants came; and when they saw that, +behold, the doors of the parlour were locked, they said, Surely he +covereth his feet in his summer chamber. + +3:25 And they tarried till they were ashamed: and, behold, he opened +not the doors of the parlour; therefore they took a key, and opened +them: and, behold, their lord was fallen down dead on the earth. + +3:26 And Ehud escaped while they tarried, and passed beyond the +quarries, and escaped unto Seirath. + +3:27 And it came to pass, when he was come, that he blew a trumpet in +the mountain of Ephraim, and the children of Israel went down with him +from the mount, and he before them. + +3:28 And he said unto them, Follow after me: for the LORD hath +delivered your enemies the Moabites into your hand. And they went down +after him, and took the fords of Jordan toward Moab, and suffered not +a man to pass over. + +3:29 And they slew of Moab at that time about ten thousand men, all +lusty, and all men of valour; and there escaped not a man. + +3:30 So Moab was subdued that day under the hand of Israel. And the +land had rest fourscore years. + +3:31 And after him was Shamgar the son of Anath, which slew of the +Philistines six hundred men with an ox goad: and he also delivered +Israel. + +4:1 And the children of Israel again did evil in the sight of the +LORD, when Ehud was dead. + +4:2 And the LORD sold them into the hand of Jabin king of Canaan, that +reigned in Hazor; the captain of whose host was Sisera, which dwelt in +Harosheth of the Gentiles. + +4:3 And the children of Israel cried unto the LORD: for he had nine +hundred chariots of iron; and twenty years he mightily oppressed the +children of Israel. + +4:4 And Deborah, a prophetess, the wife of Lapidoth, she judged Israel +at that time. + +4:5 And she dwelt under the palm tree of Deborah between Ramah and +Bethel in mount Ephraim: and the children of Israel came up to her for +judgment. + +4:6 And she sent and called Barak the son of Abinoam out of +Kedeshnaphtali, and said unto him, Hath not the LORD God of Israel +commanded, saying, Go and draw toward mount Tabor, and take with thee +ten thousand men of the children of Naphtali and of the children of +Zebulun? 4:7 And I will draw unto thee to the river Kishon Sisera, +the captain of Jabin's army, with his chariots and his multitude; and +I will deliver him into thine hand. + +4:8 And Barak said unto her, If thou wilt go with me, then I will go: +but if thou wilt not go with me, then I will not go. + +4:9 And she said, I will surely go with thee: notwithstanding the +journey that thou takest shall not be for thine honour; for the LORD +shall sell Sisera into the hand of a woman. And Deborah arose, and +went with Barak to Kedesh. + +4:10 And Barak called Zebulun and Naphtali to Kedesh; and he went up +with ten thousand men at his feet: and Deborah went up with him. + +4:11 Now Heber the Kenite, which was of the children of Hobab the +father in law of Moses, had severed himself from the Kenites, and +pitched his tent unto the plain of Zaanaim, which is by Kedesh. + +4:12 And they shewed Sisera that Barak the son of Abinoam was gone up +to mount Tabor. + +4:13 And Sisera gathered together all his chariots, even nine hundred +chariots of iron, and all the people that were with him, from +Harosheth of the Gentiles unto the river of Kishon. + +4:14 And Deborah said unto Barak, Up; for this is the day in which the +LORD hath delivered Sisera into thine hand: is not the LORD gone out +before thee? So Barak went down from mount Tabor, and ten thousand men +after him. + +4:15 And the LORD discomfited Sisera, and all his chariots, and all +his host, with the edge of the sword before Barak; so that Sisera +lighted down off his chariot, and fled away on his feet. + +4:16 But Barak pursued after the chariots, and after the host, unto +Harosheth of the Gentiles: and all the host of Sisera fell upon the +edge of the sword; and there was not a man left. + +4:17 Howbeit Sisera fled away on his feet to the tent of Jael the wife +of Heber the Kenite: for there was peace between Jabin the king of +Hazor and the house of Heber the Kenite. + +4:18 And Jael went out to meet Sisera, and said unto him, Turn in, my +lord, turn in to me; fear not. And when he had turned in unto her into +the tent, she covered him with a mantle. + +4:19 And he said unto her, Give me, I pray thee, a little water to +drink; for I am thirsty. And she opened a bottle of milk, and gave him +drink, and covered him. + +4:20 Again he said unto her, Stand in the door of the tent, and it +shall be, when any man doth come and enquire of thee, and say, Is +there any man here? that thou shalt say, No. + +4:21 Then Jael Heber's wife took a nail of the tent, and took an +hammer in her hand, and went softly unto him, and smote the nail into +his temples, and fastened it into the ground: for he was fast asleep +and weary. So he died. + +4:22 And, behold, as Barak pursued Sisera, Jael came out to meet him, +and said unto him, Come, and I will shew thee the man whom thou +seekest. And when he came into her tent, behold, Sisera lay dead, and +the nail was in his temples. + +4:23 So God subdued on that day Jabin the king of Canaan before the +children of Israel. + +4:24 And the hand of the children of Israel prospered, and prevailed +against Jabin the king of Canaan, until they had destroyed Jabin king +of Canaan. + +5:1 Then sang Deborah and Barak the son of Abinoam on that day, +saying, 5:2 Praise ye the LORD for the avenging of Israel, when the +people willingly offered themselves. + +5:3 Hear, O ye kings; give ear, O ye princes; I, even I, will sing +unto the LORD; I will sing praise to the LORD God of Israel. + +5:4 LORD, when thou wentest out of Seir, when thou marchedst out of +the field of Edom, the earth trembled, and the heavens dropped, the +clouds also dropped water. + +5:5 The mountains melted from before the LORD, even that Sinai from +before the LORD God of Israel. + +5:6 In the days of Shamgar the son of Anath, in the days of Jael, the +highways were unoccupied, and the travellers walked through byways. + +5:7 The inhabitants of the villages ceased, they ceased in Israel, +until that I Deborah arose, that I arose a mother in Israel. + +5:8 They chose new gods; then was war in the gates: was there a shield +or spear seen among forty thousand in Israel? 5:9 My heart is toward +the governors of Israel, that offered themselves willingly among the +people. Bless ye the LORD. + +5:10 Speak, ye that ride on white asses, ye that sit in judgment, and +walk by the way. + +5:11 They that are delivered from the noise of archers in the places +of drawing water, there shall they rehearse the righteous acts of the +LORD, even the righteous acts toward the inhabitants of his villages +in Israel: then shall the people of the LORD go down to the gates. + +5:12 Awake, awake, Deborah: awake, awake, utter a song: arise, Barak, +and lead thy captivity captive, thou son of Abinoam. + +5:13 Then he made him that remaineth have dominion over the nobles +among the people: the LORD made me have dominion over the mighty. + +5:14 Out of Ephraim was there a root of them against Amalek; after +thee, Benjamin, among thy people; out of Machir came down governors, +and out of Zebulun they that handle the pen of the writer. + +5:15 And the princes of Issachar were with Deborah; even Issachar, and +also Barak: he was sent on foot into the valley. For the divisions of +Reuben there were great thoughts of heart. + +5:16 Why abodest thou among the sheepfolds, to hear the bleatings of +the flocks? For the divisions of Reuben there were great searchings of +heart. + +5:17 Gilead abode beyond Jordan: and why did Dan remain in ships? +Asher continued on the sea shore, and abode in his breaches. + +5:18 Zebulun and Naphtali were a people that jeoparded their lives +unto the death in the high places of the field. + +5:19 The kings came and fought, then fought the kings of Canaan in +Taanach by the waters of Megiddo; they took no gain of money. + +5:20 They fought from heaven; the stars in their courses fought +against Sisera. + +5:21 The river of Kishon swept them away, that ancient river, the +river Kishon. O my soul, thou hast trodden down strength. + +5:22 Then were the horsehoofs broken by the means of the pransings, +the pransings of their mighty ones. + +5:23 Curse ye Meroz, said the angel of the LORD, curse ye bitterly the +inhabitants thereof; because they came not to the help of the LORD, to +the help of the LORD against the mighty. + +5:24 Blessed above women shall Jael the wife of Heber the Kenite be, +blessed shall she be above women in the tent. + +5:25 He asked water, and she gave him milk; she brought forth butter +in a lordly dish. + +5:26 She put her hand to the nail, and her right hand to the workmen's +hammer; and with the hammer she smote Sisera, she smote off his head, +when she had pierced and stricken through his temples. + +5:27 At her feet he bowed, he fell, he lay down: at her feet he bowed, +he fell: where he bowed, there he fell down dead. + +5:28 The mother of Sisera looked out at a window, and cried through +the lattice, Why is his chariot so long in coming? why tarry the +wheels of his chariots? 5:29 Her wise ladies answered her, yea, she +returned answer to herself, 5:30 Have they not sped? have they not +divided the prey; to every man a damsel or two; to Sisera a prey of +divers colours, a prey of divers colours of needlework, of divers +colours of needlework on both sides, meet for the necks of them that +take the spoil? 5:31 So let all thine enemies perish, O LORD: but let +them that love him be as the sun when he goeth forth in his might. And +the land had rest forty years. + +6:1 And the children of Israel did evil in the sight of the LORD: and +the LORD delivered them into the hand of Midian seven years. + +6:2 And the hand of Midian prevailed against Israel: and because of +the Midianites the children of Israel made them the dens which are in +the mountains, and caves, and strong holds. + +6:3 And so it was, when Israel had sown, that the Midianites came up, +and the Amalekites, and the children of the east, even they came up +against them; 6:4 And they encamped against them, and destroyed the +increase of the earth, till thou come unto Gaza, and left no +sustenance for Israel, neither sheep, nor ox, nor ass. + +6:5 For they came up with their cattle and their tents, and they came +as grasshoppers for multitude; for both they and their camels were +without number: and they entered into the land to destroy it. + +6:6 And Israel was greatly impoverished because of the Midianites; and +the children of Israel cried unto the LORD. + +6:7 And it came to pass, when the children of Israel cried unto the +LORD because of the Midianites, 6:8 That the LORD sent a prophet unto +the children of Israel, which said unto them, Thus saith the LORD God +of Israel, I brought you up from Egypt, and brought you forth out of +the house of bondage; 6:9 And I delivered you out of the hand of the +Egyptians, and out of the hand of all that oppressed you, and drave +them out from before you, and gave you their land; 6:10 And I said +unto you, I am the LORD your God; fear not the gods of the Amorites, +in whose land ye dwell: but ye have not obeyed my voice. + +6:11 And there came an angel of the LORD, and sat under an oak which +was in Ophrah, that pertained unto Joash the Abiezrite: and his son +Gideon threshed wheat by the winepress, to hide it from the +Midianites. + +6:12 And the angel of the LORD appeared unto him, and said unto him, +The LORD is with thee, thou mighty man of valour. + +6:13 And Gideon said unto him, Oh my Lord, if the LORD be with us, why +then is all this befallen us? and where be all his miracles which our +fathers told us of, saying, Did not the LORD bring us up from Egypt? +but now the LORD hath forsaken us, and delivered us into the hands of +the Midianites. + +6:14 And the LORD looked upon him, and said, Go in this thy might, and +thou shalt save Israel from the hand of the Midianites: have not I +sent thee? 6:15 And he said unto him, Oh my Lord, wherewith shall I +save Israel? behold, my family is poor in Manasseh, and I am the +least in my father's house. + +6:16 And the LORD said unto him, Surely I will be with thee, and thou +shalt smite the Midianites as one man. + +6:17 And he said unto him, If now I have found grace in thy sight, +then shew me a sign that thou talkest with me. + +6:18 Depart not hence, I pray thee, until I come unto thee, and bring +forth my present, and set it before thee. And he said, I will tarry +until thou come again. + +6:19 And Gideon went in, and made ready a kid, and unleavened cakes of +an ephah of flour: the flesh he put in a basket, and he put the broth +in a pot, and brought it out unto him under the oak, and presented it. + +6:20 And the angel of God said unto him, Take the flesh and the +unleavened cakes, and lay them upon this rock, and pour out the broth. +And he did so. + +6:21 Then the angel of the LORD put forth the end of the staff that +was in his hand, and touched the flesh and the unleavened cakes; and +there rose up fire out of the rock, and consumed the flesh and the +unleavened cakes. Then the angel of the LORD departed out of his +sight. + +6:22 And when Gideon perceived that he was an angel of the LORD, +Gideon said, Alas, O LORD God! for because I have seen an angel of the +LORD face to face. + +6:23 And the LORD said unto him, Peace be unto thee; fear not: thou +shalt not die. + +6:24 Then Gideon built an altar there unto the LORD, and called it +Jehovahshalom: unto this day it is yet in Ophrah of the Abiezrites. + +6:25 And it came to pass the same night, that the LORD said unto him, +Take thy father's young bullock, even the second bullock of seven +years old, and throw down the altar of Baal that thy father hath, and +cut down the grove that is by it: 6:26 And build an altar unto the +LORD thy God upon the top of this rock, in the ordered place, and take +the second bullock, and offer a burnt sacrifice with the wood of the +grove which thou shalt cut down. + +6:27 Then Gideon took ten men of his servants, and did as the LORD had +said unto him: and so it was, because he feared his father's +household, and the men of the city, that he could not do it by day, +that he did it by night. + +6:28 And when the men of the city arose early in the morning, behold, +the altar of Baal was cast down, and the grove was cut down that was +by it, and the second bullock was offered upon the altar that was +built. + +6:29 And they said one to another, Who hath done this thing? And when +they enquired and asked, they said, Gideon the son of Joash hath done +this thing. + +6:30 Then the men of the city said unto Joash, Bring out thy son, that +he may die: because he hath cast down the altar of Baal, and because +he hath cut down the grove that was by it. + +6:31 And Joash said unto all that stood against him, Will ye plead for +Baal? will ye save him? he that will plead for him, let him be put to +death whilst it is yet morning: if he be a god, let him plead for +himself, because one hath cast down his altar. + +6:32 Therefore on that day he called him Jerubbaal, saying, Let Baal +plead against him, because he hath thrown down his altar. + +6:33 Then all the Midianites and the Amalekites and the children of +the east were gathered together, and went over, and pitched in the +valley of Jezreel. + +6:34 But the Spirit of the LORD came upon Gideon, and he blew a +trumpet; and Abiezer was gathered after him. + +6:35 And he sent messengers throughout all Manasseh; who also was +gathered after him: and he sent messengers unto Asher, and unto +Zebulun, and unto Naphtali; and they came up to meet them. + +6:36 And Gideon said unto God, If thou wilt save Israel by mine hand, +as thou hast said, 6:37 Behold, I will put a fleece of wool in the +floor; and if the dew be on the fleece only, and it be dry upon all +the earth beside, then shall I know that thou wilt save Israel by mine +hand, as thou hast said. + +6:38 And it was so: for he rose up early on the morrow, and thrust the +fleece together, and wringed the dew out of the fleece, a bowl full of +water. + +6:39 And Gideon said unto God, Let not thine anger be hot against me, +and I will speak but this once: let me prove, I pray thee, but this +once with the fleece; let it now be dry only upon the fleece, and upon +all the ground let there be dew. + +6:40 And God did so that night: for it was dry upon the fleece only, +and there was dew on all the ground. + +7:1 Then Jerubbaal, who is Gideon, and all the people that were with +him, rose up early, and pitched beside the well of Harod: so that the +host of the Midianites were on the north side of them, by the hill of +Moreh, in the valley. + +7:2 And the LORD said unto Gideon, The people that are with thee are +too many for me to give the Midianites into their hands, lest Israel +vaunt themselves against me, saying, Mine own hand hath saved me. + +7:3 Now therefore go to, proclaim in the ears of the people, saying, +Whosoever is fearful and afraid, let him return and depart early from +mount Gilead. And there returned of the people twenty and two +thousand; and there remained ten thousand. + +7:4 And the LORD said unto Gideon, The people are yet too many; bring +them down unto the water, and I will try them for thee there: and it +shall be, that of whom I say unto thee, This shall go with thee, the +same shall go with thee; and of whomsoever I say unto thee, This shall +not go with thee, the same shall not go. + +7:5 So he brought down the people unto the water: and the LORD said +unto Gideon, Every one that lappeth of the water with his tongue, as a +dog lappeth, him shalt thou set by himself; likewise every one that +boweth down upon his knees to drink. + +7:6 And the number of them that lapped, putting their hand to their +mouth, were three hundred men: but all the rest of the people bowed +down upon their knees to drink water. + +7:7 And the LORD said unto Gideon, By the three hundred men that +lapped will I save you, and deliver the Midianites into thine hand: +and let all the other people go every man unto his place. + +7:8 So the people took victuals in their hand, and their trumpets: and +he sent all the rest of Israel every man unto his tent, and retained +those three hundred men: and the host of Midian was beneath him in the +valley. + +7:9 And it came to pass the same night, that the LORD said unto him, +Arise, get thee down unto the host; for I have delivered it into thine +hand. + +7:10 But if thou fear to go down, go thou with Phurah thy servant down +to the host: 7:11 And thou shalt hear what they say; and afterward +shall thine hands be strengthened to go down unto the host. Then went +he down with Phurah his servant unto the outside of the armed men that +were in the host. + +7:12 And the Midianites and the Amalekites and all the children of the +east lay along in the valley like grasshoppers for multitude; and +their camels were without number, as the sand by the sea side for +multitude. + +7:13 And when Gideon was come, behold, there was a man that told a +dream unto his fellow, and said, Behold, I dreamed a dream, and, lo, a +cake of barley bread tumbled into the host of Midian, and came unto a +tent, and smote it that it fell, and overturned it, that the tent lay +along. + +7:14 And his fellow answered and said, This is nothing else save the +sword of Gideon the son of Joash, a man of Israel: for into his hand +hath God delivered Midian, and all the host. + +7:15 And it was so, when Gideon heard the telling of the dream, and +the interpretation thereof, that he worshipped, and returned into the +host of Israel, and said, Arise; for the LORD hath delivered into your +hand the host of Midian. + +7:16 And he divided the three hundred men into three companies, and he +put a trumpet in every man's hand, with empty pitchers, and lamps +within the pitchers. + +7:17 And he said unto them, Look on me, and do likewise: and, behold, +when I come to the outside of the camp, it shall be that, as I do, so +shall ye do. + +7:18 When I blow with a trumpet, I and all that are with me, then blow +ye the trumpets also on every side of all the camp, and say, The sword +of the LORD, and of Gideon. + +7:19 So Gideon, and the hundred men that were with him, came unto the +outside of the camp in the beginning of the middle watch; and they had +but newly set the watch: and they blew the trumpets, and brake the +pitchers that were in their hands. + +7:20 And the three companies blew the trumpets, and brake the +pitchers, and held the lamps in their left hands, and the trumpets in +their right hands to blow withal: and they cried, The sword of the +LORD, and of Gideon. + +7:21 And they stood every man in his place round about the camp; and +all the host ran, and cried, and fled. + +7:22 And the three hundred blew the trumpets, and the LORD set every +man's sword against his fellow, even throughout all the host: and the +host fled to Bethshittah in Zererath, and to the border of +Abelmeholah, unto Tabbath. + +7:23 And the men of Israel gathered themselves together out of +Naphtali, and out of Asher, and out of all Manasseh, and pursued after +the Midianites. + +7:24 And Gideon sent messengers throughout all mount Ephraim, saying, +come down against the Midianites, and take before them the waters unto +Bethbarah and Jordan. Then all the men of Ephraim gathered themselves +together, and took the waters unto Bethbarah and Jordan. + +7:25 And they took two princes of the Midianites, Oreb and Zeeb; and +they slew Oreb upon the rock Oreb, and Zeeb they slew at the winepress +of Zeeb, and pursued Midian, and brought the heads of Oreb and Zeeb to +Gideon on the other side Jordan. + +8:1 And the men of Ephraim said unto him, Why hast thou served us +thus, that thou calledst us not, when thou wentest to fight with the +Midianites? And they did chide with him sharply. + +8:2 And he said unto them, What have I done now in comparison of you? +Is not the gleaning of the grapes of Ephraim better than the vintage +of Abiezer? 8:3 God hath delivered into your hands the princes of +Midian, Oreb and Zeeb: and what was I able to do in comparison of you? +Then their anger was abated toward him, when he had said that. + +8:4 And Gideon came to Jordan, and passed over, he, and the three +hundred men that were with him, faint, yet pursuing them. + +8:5 And he said unto the men of Succoth, Give, I pray you, loaves of +bread unto the people that follow me; for they be faint, and I am +pursuing after Zebah and Zalmunna, kings of Midian. + +8:6 And the princes of Succoth said, Are the hands of Zebah and +Zalmunna now in thine hand, that we should give bread unto thine army? +8:7 And Gideon said, Therefore when the LORD hath delivered Zebah and +Zalmunna into mine hand, then I will tear your flesh with the thorns +of the wilderness and with briers. + +8:8 And he went up thence to Penuel, and spake unto them likewise: and +the men of Penuel answered him as the men of Succoth had answered him. + +8:9 And he spake also unto the men of Penuel, saying, When I come +again in peace, I will break down this tower. + +8:10 Now Zebah and Zalmunna were in Karkor, and their hosts with them, +about fifteen thousand men, all that were left of all the hosts of the +children of the east: for there fell an hundred and twenty thousand +men that drew sword. + +8:11 And Gideon went up by the way of them that dwelt in tents on the +east of Nobah and Jogbehah, and smote the host; for the host was +secure. + +8:12 And when Zebah and Zalmunna fled, he pursued after them, and took +the two kings of Midian, Zebah and Zalmunna, and discomfited all the +host. + +8:13 And Gideon the son of Joash returned from battle before the sun +was up, 8:14 And caught a young man of the men of Succoth, and +enquired of him: and he described unto him the princes of Succoth, and +the elders thereof, even threescore and seventeen men. + +8:15 And he came unto the men of Succoth, and said, Behold Zebah and +Zalmunna, with whom ye did upbraid me, saying, Are the hands of Zebah +and Zalmunna now in thine hand, that we should give bread unto thy men +that are weary? 8:16 And he took the elders of the city, and thorns +of the wilderness and briers, and with them he taught the men of +Succoth. + +8:17 And he beat down the tower of Penuel, and slew the men of the +city. + +8:18 Then said he unto Zebah and Zalmunna, What manner of men were +they whom ye slew at Tabor? And they answered, As thou art, so were +they; each one resembled the children of a king. + +8:19 And he said, They were my brethren, even the sons of my mother: +as the LORD liveth, if ye had saved them alive, I would not slay you. + +8:20 And he said unto Jether his firstborn, Up, and slay them. But the +youth drew not his sword: for he feared, because he was yet a youth. + +8:21 Then Zebah and Zalmunna said, Rise thou, and fall upon us: for as +the man is, so is his strength. And Gideon arose, and slew Zebah and +Zalmunna, and took away the ornaments that were on their camels' +necks. + +8:22 Then the men of Israel said unto Gideon, Rule thou over us, both +thou, and thy son, and thy son's son also: for thou hast delivered us +from the hand of Midian. + +8:23 And Gideon said unto them, I will not rule over you, neither +shall my son rule over you: the LORD shall rule over you. + +8:24 And Gideon said unto them, I would desire a request of you, that +ye would give me every man the earrings of his prey. (For they had +golden earrings, because they were Ishmaelites.) 8:25 And they +answered, We will willingly give them. And they spread a garment, and +did cast therein every man the earrings of his prey. + +8:26 And the weight of the golden earrings that he requested was a +thousand and seven hundred shekels of gold; beside ornaments, and +collars, and purple raiment that was on the kings of Midian, and +beside the chains that were about their camels' necks. + +8:27 And Gideon made an ephod thereof, and put it in his city, even in +Ophrah: and all Israel went thither a whoring after it: which thing +became a snare unto Gideon, and to his house. + +8:28 Thus was Midian subdued before the children of Israel, so that +they lifted up their heads no more. And the country was in quietness +forty years in the days of Gideon. + +8:29 And Jerubbaal the son of Joash went and dwelt in his own house. + +8:30 And Gideon had threescore and ten sons of his body begotten: for +he had many wives. + +8:31 And his concubine that was in Shechem, she also bare him a son, +whose name he called Abimelech. + +8:32 And Gideon the son of Joash died in a good old age, and was +buried in the sepulchre of Joash his father, in Ophrah of the +Abiezrites. + +8:33 And it came to pass, as soon as Gideon was dead, that the +children of Israel turned again, and went a whoring after Baalim, and +made Baalberith their god. + +8:34 And the children of Israel remembered not the LORD their God, who +had delivered them out of the hands of all their enemies on every +side: 8:35 Neither shewed they kindness to the house of Jerubbaal, +namely, Gideon, according to all the goodness which he had shewed unto +Israel. + +9:1 And Abimelech the son of Jerubbaal went to Shechem unto his +mother's brethren, and communed with them, and with all the family of +the house of his mother's father, saying, 9:2 Speak, I pray you, in +the ears of all the men of Shechem, Whether is better for you, either +that all the sons of Jerubbaal, which are threescore and ten persons, +reign over you, or that one reign over you? remember also that I am +your bone and your flesh. + +9:3 And his mother's brethren spake of him in the ears of all the men +of Shechem all these words: and their hearts inclined to follow +Abimelech; for they said, He is our brother. + +9:4 And they gave him threescore and ten pieces of silver out of the +house of Baalberith, wherewith Abimelech hired vain and light persons, +which followed him. + +9:5 And he went unto his father's house at Ophrah, and slew his +brethren the sons of Jerubbaal, being threescore and ten persons, upon +one stone: notwithstanding yet Jotham the youngest son of Jerubbaal +was left; for he hid himself. + +9:6 And all the men of Shechem gathered together, and all the house of +Millo, and went, and made Abimelech king, by the plain of the pillar +that was in Shechem. + +9:7 And when they told it to Jotham, he went and stood in the top of +mount Gerizim, and lifted up his voice, and cried, and said unto them, +Hearken unto me, ye men of Shechem, that God may hearken unto you. + +9:8 The trees went forth on a time to anoint a king over them; and +they said unto the olive tree, Reign thou over us. + +9:9 But the olive tree said unto them, Should I leave my fatness, +wherewith by me they honour God and man, and go to be promoted over +the trees? 9:10 And the trees said to the fig tree, Come thou, and +reign over us. + +9:11 But the fig tree said unto them, Should I forsake my sweetness, +and my good fruit, and go to be promoted over the trees? 9:12 Then +said the trees unto the vine, Come thou, and reign over us. + +9:13 And the vine said unto them, Should I leave my wine, which +cheereth God and man, and go to be promoted over the trees? 9:14 Then +said all the trees unto the bramble, Come thou, and reign over us. + +9:15 And the bramble said unto the trees, If in truth ye anoint me +king over you, then come and put your trust in my shadow: and if not, +let fire come out of the bramble, and devour the cedars of Lebanon. + +9:16 Now therefore, if ye have done truly and sincerely, in that ye +have made Abimelech king, and if ye have dealt well with Jerubbaal and +his house, and have done unto him according to the deserving of his +hands; 9:17 (For my father fought for you, and adventured his life +far, and delivered you out of the hand of Midian: 9:18 And ye are +risen up against my father's house this day, and have slain his sons, +threescore and ten persons, upon one stone, and have made Abimelech, +the son of his maidservant, king over the men of Shechem, because he +is your brother;) 9:19 If ye then have dealt truly and sincerely with +Jerubbaal and with his house this day, then rejoice ye in Abimelech, +and let him also rejoice in you: 9:20 But if not, let fire come out +from Abimelech, and devour the men of Shechem, and the house of Millo; +and let fire come out from the men of Shechem, and from the house of +Millo, and devour Abimelech. + +9:21 And Jotham ran away, and fled, and went to Beer, and dwelt there, +for fear of Abimelech his brother. + +9:22 When Abimelech had reigned three years over Israel, 9:23 Then God +sent an evil spirit between Abimelech and the men of Shechem; and the +men of Shechem dealt treacherously with Abimelech: 9:24 That the +cruelty done to the threescore and ten sons of Jerubbaal might come, +and their blood be laid upon Abimelech their brother, which slew them; +and upon the men of Shechem, which aided him in the killing of his +brethren. + +9:25 And the men of Shechem set liers in wait for him in the top of +the mountains, and they robbed all that came along that way by them: +and it was told Abimelech. + +9:26 And Gaal the son of Ebed came with his brethren, and went over to +Shechem: and the men of Shechem put their confidence in him. + +9:27 And they went out into the fields, and gathered their vineyards, +and trode the grapes, and made merry, and went into the house of their +god, and did eat and drink, and cursed Abimelech. + +9:28 And Gaal the son of Ebed said, Who is Abimelech, and who is +Shechem, that we should serve him? is not he the son of Jerubbaal? and +Zebul his officer? serve the men of Hamor the father of Shechem: for +why should we serve him? 9:29 And would to God this people were under +my hand! then would I remove Abimelech. And he said to Abimelech, +Increase thine army, and come out. + +9:30 And when Zebul the ruler of the city heard the words of Gaal the +son of Ebed, his anger was kindled. + +9:31 And he sent messengers unto Abimelech privily, saying, Behold, +Gaal the son of Ebed and his brethren be come to Shechem; and, behold, +they fortify the city against thee. + +9:32 Now therefore up by night, thou and the people that is with thee, +and lie in wait in the field: 9:33 And it shall be, that in the +morning, as soon as the sun is up, thou shalt rise early, and set upon +the city: and, behold, when he and the people that is with him come +out against thee, then mayest thou do to them as thou shalt find +occasion. + +9:34 And Abimelech rose up, and all the people that were with him, by +night, and they laid wait against Shechem in four companies. + +9:35 And Gaal the son of Ebed went out, and stood in the entering of +the gate of the city: and Abimelech rose up, and the people that were +with him, from lying in wait. + +9:36 And when Gaal saw the people, he said to Zebul, Behold, there +come people down from the top of the mountains. And Zebul said unto +him, Thou seest the shadow of the mountains as if they were men. + +9:37 And Gaal spake again, and said, See there come people down by the +middle of the land, and another company come along by the plain of +Meonenim. + +9:38 Then said Zebul unto him, Where is now thy mouth, wherewith thou +saidst, Who is Abimelech, that we should serve him? is not this the +people that thou hast despised? go out, I pray now, and fight with +them. + +9:39 And Gaal went out before the men of Shechem, and fought with +Abimelech. + +9:40 And Abimelech chased him, and he fled before him, and many were +overthrown and wounded, even unto the entering of the gate. + +9:41 And Abimelech dwelt at Arumah: and Zebul thrust out Gaal and his +brethren, that they should not dwell in Shechem. + +9:42 And it came to pass on the morrow, that the people went out into +the field; and they told Abimelech. + +9:43 And he took the people, and divided them into three companies, +and laid wait in the field, and looked, and, behold, the people were +come forth out of the city; and he rose up against them, and smote +them. + +9:44 And Abimelech, and the company that was with him, rushed forward, +and stood in the entering of the gate of the city: and the two other +companies ran upon all the people that were in the fields, and slew +them. + +9:45 And Abimelech fought against the city all that day; and he took +the city, and slew the people that was therein, and beat down the +city, and sowed it with salt. + +9:46 And when all the men of the tower of Shechem heard that, they +entered into an hold of the house of the god Berith. + +9:47 And it was told Abimelech, that all the men of the tower of +Shechem were gathered together. + +9:48 And Abimelech gat him up to mount Zalmon, he and all the people +that were with him; and Abimelech took an axe in his hand, and cut +down a bough from the trees, and took it, and laid it on his shoulder, +and said unto the people that were with him, What ye have seen me do, +make haste, and do as I have done. + +9:49 And all the people likewise cut down every man his bough, and +followed Abimelech, and put them to the hold, and set the hold on fire +upon them; so that all the men of the tower of Shechem died also, +about a thousand men and women. + +9:50 Then went Abimelech to Thebez, and encamped against Thebez, and +took it. + +9:51 But there was a strong tower within the city, and thither fled +all the men and women, and all they of the city, and shut it to them, +and gat them up to the top of the tower. + +9:52 And Abimelech came unto the tower, and fought against it, and +went hard unto the door of the tower to burn it with fire. + +9:53 And a certain woman cast a piece of a millstone upon Abimelech's +head, and all to brake his skull. + +9:54 Then he called hastily unto the young man his armourbearer, and +said unto him, Draw thy sword, and slay me, that men say not of me, A +women slew him. And his young man thrust him through, and he died. + +9:55 And when the men of Israel saw that Abimelech was dead, they +departed every man unto his place. + +9:56 Thus God rendered the wickedness of Abimelech, which he did unto +his father, in slaying his seventy brethren: 9:57 And all the evil of +the men of Shechem did God render upon their heads: and upon them came +the curse of Jotham the son of Jerubbaal. + +10:1 And after Abimelech there arose to defend Israel Tola the son of +Puah, the son of Dodo, a man of Issachar; and he dwelt in Shamir in +mount Ephraim. + +10:2 And he judged Israel twenty and three years, and died, and was +buried in Shamir. + +10:3 And after him arose Jair, a Gileadite, and judged Israel twenty +and two years. + +10:4 And he had thirty sons that rode on thirty ass colts, and they +had thirty cities, which are called Havothjair unto this day, which +are in the land of Gilead. + +10:5 And Jair died, and was buried in Camon. + +10:6 And the children of Israel did evil again in the sight of the +LORD, and served Baalim, and Ashtaroth, and the gods of Syria, and the +gods of Zidon, and the gods of Moab, and the gods of the children of +Ammon, and the gods of the Philistines, and forsook the LORD, and +served not him. + +10:7 And the anger of the LORD was hot against Israel, and he sold +them into the hands of the Philistines, and into the hands of the +children of Ammon. + +10:8 And that year they vexed and oppressed the children of Israel: +eighteen years, all the children of Israel that were on the other side +Jordan in the land of the Amorites, which is in Gilead. + +10:9 Moreover the children of Ammon passed over Jordan to fight also +against Judah, and against Benjamin, and against the house of Ephraim; +so that Israel was sore distressed. + +10:10 And the children of Israel cried unto the LORD, saying, We have +sinned against thee, both because we have forsaken our God, and also +served Baalim. + +10:11 And the LORD said unto the children of Israel, Did not I deliver +you from the Egyptians, and from the Amorites, from the children of +Ammon, and from the Philistines? 10:12 The Zidonians also, and the +Amalekites, and the Maonites, did oppress you; and ye cried to me, and +I delivered you out of their hand. + +10:13 Yet ye have forsaken me, and served other gods: wherefore I will +deliver you no more. + +10:14 Go and cry unto the gods which ye have chosen; let them deliver +you in the time of your tribulation. + +10:15 And the children of Israel said unto the LORD, We have sinned: +do thou unto us whatsoever seemeth good unto thee; deliver us only, we +pray thee, this day. + +10:16 And they put away the strange gods from among them, and served +the LORD: and his soul was grieved for the misery of Israel. + +10:17 Then the children of Ammon were gathered together, and encamped +in Gilead. And the children of Israel assembled themselves together, +and encamped in Mizpeh. + +10:18 And the people and princes of Gilead said one to another, What +man is he that will begin to fight against the children of Ammon? he +shall be head over all the inhabitants of Gilead. + +11:1 Now Jephthah the Gileadite was a mighty man of valour, and he was +the son of an harlot: and Gilead begat Jephthah. + +11:2 And Gilead's wife bare him sons; and his wife's sons grew up, and +they thrust out Jephthah, and said unto him, Thou shalt not inherit in +our father's house; for thou art the son of a strange woman. + +11:3 Then Jephthah fled from his brethren, and dwelt in the land of +Tob: and there were gathered vain men to Jephthah, and went out with +him. + +11:4 And it came to pass in process of time, that the children of +Ammon made war against Israel. + +11:5 And it was so, that when the children of Ammon made war against +Israel, the elders of Gilead went to fetch Jephthah out of the land of +Tob: 11:6 And they said unto Jephthah, Come, and be our captain, that +we may fight with the children of Ammon. + +11:7 And Jephthah said unto the elders of Gilead, Did not ye hate me, +and expel me out of my father's house? and why are ye come unto me now +when ye are in distress? 11:8 And the elders of Gilead said unto +Jephthah, Therefore we turn again to thee now, that thou mayest go +with us, and fight against the children of Ammon, and be our head over +all the inhabitants of Gilead. + +11:9 And Jephthah said unto the elders of Gilead, If ye bring me home +again to fight against the children of Ammon, and the LORD deliver +them before me, shall I be your head? 11:10 And the elders of Gilead +said unto Jephthah, The LORD be witness between us, if we do not so +according to thy words. + +11:11 Then Jephthah went with the elders of Gilead, and the people +made him head and captain over them: and Jephthah uttered all his +words before the LORD in Mizpeh. + +11:12 And Jephthah sent messengers unto the king of the children of +Ammon, saying, What hast thou to do with me, that thou art come +against me to fight in my land? 11:13 And the king of the children of +Ammon answered unto the messengers of Jephthah, Because Israel took +away my land, when they came up out of Egypt, from Arnon even unto +Jabbok, and unto Jordan: now therefore restore those lands again +peaceably. + +11:14 And Jephthah sent messengers again unto the king of the children +of Ammon: 11:15 And said unto him, Thus saith Jephthah, Israel took +not away the land of Moab, nor the land of the children of Ammon: +11:16 But when Israel came up from Egypt, and walked through the +wilderness unto the Red sea, and came to Kadesh; 11:17 Then Israel +sent messengers unto the king of Edom, saying, Let me, I pray thee, +pass through thy land: but the king of Edom would not hearken thereto. +And in like manner they sent unto the king of Moab: but he would not +consent: and Israel abode in Kadesh. + +11:18 Then they went along through the wilderness, and compassed the +land of Edom, and the land of Moab, and came by the east side of the +land of Moab, and pitched on the other side of Arnon, but came not +within the border of Moab: for Arnon was the border of Moab. + +11:19 And Israel sent messengers unto Sihon king of the Amorites, the +king of Heshbon; and Israel said unto him, Let us pass, we pray thee, +through thy land into my place. + +11:20 But Sihon trusted not Israel to pass through his coast: but +Sihon gathered all his people together, and pitched in Jahaz, and +fought against Israel. + +11:21 And the LORD God of Israel delivered Sihon and all his people +into the hand of Israel, and they smote them: so Israel possessed all +the land of the Amorites, the inhabitants of that country. + +11:22 And they possessed all the coasts of the Amorites, from Arnon +even unto Jabbok, and from the wilderness even unto Jordan. + +11:23 So now the LORD God of Israel hath dispossessed the Amorites +from before his people Israel, and shouldest thou possess it? 11:24 +Wilt not thou possess that which Chemosh thy god giveth thee to +possess? So whomsoever the LORD our God shall drive out from before +us, them will we possess. + +11:25 And now art thou any thing better than Balak the son of Zippor, +king of Moab? did he ever strive against Israel, or did he ever fight +against them, 11:26 While Israel dwelt in Heshbon and her towns, and +in Aroer and her towns, and in all the cities that be along by the +coasts of Arnon, three hundred years? why therefore did ye not recover +them within that time? 11:27 Wherefore I have not sinned against +thee, but thou doest me wrong to war against me: the LORD the Judge be +judge this day between the children of Israel and the children of +Ammon. + +11:28 Howbeit the king of the children of Ammon hearkened not unto the +words of Jephthah which he sent him. + +11:29 Then the Spirit of the LORD came upon Jephthah, and he passed +over Gilead, and Manasseh, and passed over Mizpeh of Gilead, and from +Mizpeh of Gilead he passed over unto the children of Ammon. + +11:30 And Jephthah vowed a vow unto the LORD, and said, If thou shalt +without fail deliver the children of Ammon into mine hands, 11:31 Then +it shall be, that whatsoever cometh forth of the doors of my house to +meet me, when I return in peace from the children of Ammon, shall +surely be the LORD's, and I will offer it up for a burnt offering. + +11:32 So Jephthah passed over unto the children of Ammon to fight +against them; and the LORD delivered them into his hands. + +11:33 And he smote them from Aroer, even till thou come to Minnith, +even twenty cities, and unto the plain of the vineyards, with a very +great slaughter. Thus the children of Ammon were subdued before the +children of Israel. + +11:34 And Jephthah came to Mizpeh unto his house, and, behold, his +daughter came out to meet him with timbrels and with dances: and she +was his only child; beside her he had neither son nor daughter. + +11:35 And it came to pass, when he saw her, that he rent his clothes, +and said, Alas, my daughter! thou hast brought me very low, and thou +art one of them that trouble me: for I have opened my mouth unto the +LORD, and I cannot go back. + +11:36 And she said unto him, My father, if thou hast opened thy mouth +unto the LORD, do to me according to that which hath proceeded out of +thy mouth; forasmuch as the LORD hath taken vengeance for thee of +thine enemies, even of the children of Ammon. + +11:37 And she said unto her father, Let this thing be done for me: let +me alone two months, that I may go up and down upon the mountains, and +bewail my virginity, I and my fellows. + +11:38 And he said, Go. And he sent her away for two months: and she +went with her companions, and bewailed her virginity upon the +mountains. + +11:39 And it came to pass at the end of two months, that she returned +unto her father, who did with her according to his vow which he had +vowed: and she knew no man. And it was a custom in Israel, 11:40 That +the daughters of Israel went yearly to lament the daughter of Jephthah +the Gileadite four days in a year. + +12:1 And the men of Ephraim gathered themselves together, and went +northward, and said unto Jephthah, Wherefore passedst thou over to +fight against the children of Ammon, and didst not call us to go with +thee? we will burn thine house upon thee with fire. + +12:2 And Jephthah said unto them, I and my people were at great strife +with the children of Ammon; and when I called you, ye delivered me not +out of their hands. + +12:3 And when I saw that ye delivered me not, I put my life in my +hands, and passed over against the children of Ammon, and the LORD +delivered them into my hand: wherefore then are ye come up unto me +this day, to fight against me? 12:4 Then Jephthah gathered together +all the men of Gilead, and fought with Ephraim: and the men of Gilead +smote Ephraim, because they said, Ye Gileadites are fugitives of +Ephraim among the Ephraimites, and among the Manassites. + +12:5 And the Gileadites took the passages of Jordan before the +Ephraimites: and it was so, that when those Ephraimites which were +escaped said, Let me go over; that the men of Gilead said unto him, +Art thou an Ephraimite? If he said, Nay; 12:6 Then said they unto him, +Say now Shibboleth: and he said Sibboleth: for he could not frame to +pronounce it right. Then they took him, and slew him at the passages +of Jordan: and there fell at that time of the Ephraimites forty and +two thousand. + +12:7 And Jephthah judged Israel six years. Then died Jephthah the +Gileadite, and was buried in one of the cities of Gilead. + +12:8 And after him Ibzan of Bethlehem judged Israel. + +12:9 And he had thirty sons, and thirty daughters, whom he sent +abroad, and took in thirty daughters from abroad for his sons. And he +judged Israel seven years. + +12:10 Then died Ibzan, and was buried at Bethlehem. + +12:11 And after him Elon, a Zebulonite, judged Israel; and he judged +Israel ten years. + +12:12 And Elon the Zebulonite died, and was buried in Aijalon in the +country of Zebulun. + +12:13 And after him Abdon the son of Hillel, a Pirathonite, judged +Israel. + +12:14 And he had forty sons and thirty nephews, that rode on +threescore and ten ass colts: and he judged Israel eight years. + +12:15 And Abdon the son of Hillel the Pirathonite died, and was buried +in Pirathon in the land of Ephraim, in the mount of the Amalekites. + +13:1 And the children of Israel did evil again in the sight of the +LORD; and the LORD delivered them into the hand of the Philistines +forty years. + +13:2 And there was a certain man of Zorah, of the family of the +Danites, whose name was Manoah; and his wife was barren, and bare not. + +13:3 And the angel of the LORD appeared unto the woman, and said unto +her, Behold now, thou art barren, and bearest not: but thou shalt +conceive, and bear a son. + +13:4 Now therefore beware, I pray thee, and drink not wine nor strong +drink, and eat not any unclean thing: 13:5 For, lo, thou shalt +conceive, and bear a son; and no razor shall come on his head: for the +child shall be a Nazarite unto God from the womb: and he shall begin +to deliver Israel out of the hand of the Philistines. + +13:6 Then the woman came and told her husband, saying, A man of God +came unto me, and his countenance was like the countenance of an angel +of God, very terrible: but I asked him not whence he was, neither told +he me his name: 13:7 But he said unto me, Behold, thou shalt conceive, +and bear a son; and now drink no wine nor strong drink, neither eat +any unclean thing: for the child shall be a Nazarite to God from the +womb to the day of his death. + +13:8 Then Manoah intreated the LORD, and said, O my Lord, let the man +of God which thou didst send come again unto us, and teach us what we +shall do unto the child that shall be born. + +13:9 And God hearkened to the voice of Manoah; and the angel of God +came again unto the woman as she sat in the field: but Manoah her +husband was not with her. + +13:10 And the woman made haste, and ran, and shewed her husband, and +said unto him, Behold, the man hath appeared unto me, that came unto +me the other day. + +13:11 And Manoah arose, and went after his wife, and came to the man, +and said unto him, Art thou the man that spakest unto the woman? And +he said, I am. + +13:12 And Manoah said, Now let thy words come to pass. How shall we +order the child, and how shall we do unto him? 13:13 And the angel of +the LORD said unto Manoah, Of all that I said unto the woman let her +beware. + +13:14 She may not eat of any thing that cometh of the vine, neither +let her drink wine or strong drink, nor eat any unclean thing: all +that I commanded her let her observe. + +13:15 And Manoah said unto the angel of the LORD, I pray thee, let us +detain thee, until we shall have made ready a kid for thee. + +13:16 And the angel of the LORD said unto Manoah, Though thou detain +me, I will not eat of thy bread: and if thou wilt offer a burnt +offering, thou must offer it unto the LORD. For Manoah knew not that +he was an angel of the LORD. + +13:17 And Manoah said unto the angel of the LORD, What is thy name, +that when thy sayings come to pass we may do thee honour? 13:18 And +the angel of the LORD said unto him, Why askest thou thus after my +name, seeing it is secret? 13:19 So Manoah took a kid with a meat +offering, and offered it upon a rock unto the LORD: and the angel did +wonderously; and Manoah and his wife looked on. + +13:20 For it came to pass, when the flame went up toward heaven from +off the altar, that the angel of the LORD ascended in the flame of the +altar. And Manoah and his wife looked on it, and fell on their faces +to the ground. + +13:21 But the angel of the LORD did no more appear to Manoah and to +his wife. Then Manoah knew that he was an angel of the LORD. + +13:22 And Manoah said unto his wife, We shall surely die, because we +have seen God. + +13:23 But his wife said unto him, If the LORD were pleased to kill us, +he would not have received a burnt offering and a meat offering at our +hands, neither would he have shewed us all these things, nor would as +at this time have told us such things as these. + +13:24 And the woman bare a son, and called his name Samson: and the +child grew, and the LORD blessed him. + +13:25 And the Spirit of the LORD began to move him at times in the +camp of Dan between Zorah and Eshtaol. + +14:1 And Samson went down to Timnath, and saw a woman in Timnath of +the daughters of the Philistines. + +14:2 And he came up, and told his father and his mother, and said, I +have seen a woman in Timnath of the daughters of the Philistines: now +therefore get her for me to wife. + +14:3 Then his father and his mother said unto him, Is there never a +woman among the daughters of thy brethren, or among all my people, +that thou goest to take a wife of the uncircumcised Philistines? And +Samson said unto his father, Get her for me; for she pleaseth me well. + +14:4 But his father and his mother knew not that it was of the LORD, +that he sought an occasion against the Philistines: for at that time +the Philistines had dominion over Israel. + +14:5 Then went Samson down, and his father and his mother, to Timnath, +and came to the vineyards of Timnath: and, behold, a young lion roared +against him. + +14:6 And the Spirit of the LORD came mightily upon him, and he rent +him as he would have rent a kid, and he had nothing in his hand: but +he told not his father or his mother what he had done. + +14:7 And he went down, and talked with the woman; and she pleased +Samson well. + +14:8 And after a time he returned to take her, and he turned aside to +see the carcase of the lion: and, behold, there was a swarm of bees +and honey in the carcase of the lion. + +14:9 And he took thereof in his hands, and went on eating, and came to +his father and mother, and he gave them, and they did eat: but he told +not them that he had taken the honey out of the carcase of the lion. + +14:10 So his father went down unto the woman: and Samson made there a +feast; for so used the young men to do. + +14:11 And it came to pass, when they saw him, that they brought thirty +companions to be with him. + +14:12 And Samson said unto them, I will now put forth a riddle unto +you: if ye can certainly declare it me within the seven days of the +feast, and find it out, then I will give you thirty sheets and thirty +change of garments: 14:13 But if ye cannot declare it me, then shall +ye give me thirty sheets and thirty change of garments. And they said +unto him, Put forth thy riddle, that we may hear it. + +14:14 And he said unto them, Out of the eater came forth meat, and out +of the strong came forth sweetness. And they could not in three days +expound the riddle. + +14:15 And it came to pass on the seventh day, that they said unto +Samson's wife, Entice thy husband, that he may declare unto us the +riddle, lest we burn thee and thy father's house with fire: have ye +called us to take that we have? is it not so? 14:16 And Samson's wife +wept before him, and said, Thou dost but hate me, and lovest me not: +thou hast put forth a riddle unto the children of my people, and hast +not told it me. And he said unto her, Behold, I have not told it my +father nor my mother, and shall I tell it thee? 14:17 And she wept +before him the seven days, while their feast lasted: and it came to +pass on the seventh day, that he told her, because she lay sore upon +him: and she told the riddle to the children of her people. + +14:18 And the men of the city said unto him on the seventh day before +the sun went down, What is sweeter than honey? And what is stronger +than a lion? and he said unto them, If ye had not plowed with my +heifer, ye had not found out my riddle. + +14:19 And the Spirit of the LORD came upon him, and he went down to +Ashkelon, and slew thirty men of them, and took their spoil, and gave +change of garments unto them which expounded the riddle. And his anger +was kindled, and he went up to his father's house. + +14:20 But Samson's wife was given to his companion, whom he had used +as his friend. + +15:1 But it came to pass within a while after, in the time of wheat +harvest, that Samson visited his wife with a kid; and he said, I will +go in to my wife into the chamber. But her father would not suffer him +to go in. + +15:2 And her father said, I verily thought that thou hadst utterly +hated her; therefore I gave her to thy companion: is not her younger +sister fairer than she? take her, I pray thee, instead of her. + +15:3 And Samson said concerning them, Now shall I be more blameless +than the Philistines, though I do them a displeasure. + +15:4 And Samson went and caught three hundred foxes, and took +firebrands, and turned tail to tail, and put a firebrand in the midst +between two tails. + +15:5 And when he had set the brands on fire, he let them go into the +standing corn of the Philistines, and burnt up both the shocks, and +also the standing corn, with the vineyards and olives. + +15:6 Then the Philistines said, Who hath done this? And they answered, +Samson, the son in law of the Timnite, because he had taken his wife, +and given her to his companion. And the Philistines came up, and burnt +her and her father with fire. + +15:7 And Samson said unto them, Though ye have done this, yet will I +be avenged of you, and after that I will cease. + +15:8 And he smote them hip and thigh with a great slaughter: and he +went down and dwelt in the top of the rock Etam. + +15:9 Then the Philistines went up, and pitched in Judah, and spread +themselves in Lehi. + +15:10 And the men of Judah said, Why are ye come up against us? And +they answered, To bind Samson are we come up, to do to him as he hath +done to us. + +15:11 Then three thousand men of Judah went to the top of the rock +Etam, and said to Samson, Knowest thou not that the Philistines are +rulers over us? what is this that thou hast done unto us? And he said +unto them, As they did unto me, so have I done unto them. + +15:12 And they said unto him, We are come down to bind thee, that we +may deliver thee into the hand of the Philistines. And Samson said +unto them, Swear unto me, that ye will not fall upon me yourselves. + +15:13 And they spake unto him, saying, No; but we will bind thee fast, +and deliver thee into their hand: but surely we will not kill thee. +And they bound him with two new cords, and brought him up from the +rock. + +15:14 And when he came unto Lehi, the Philistines shouted against him: +and the Spirit of the LORD came mightily upon him, and the cords that +were upon his arms became as flax that was burnt with fire, and his +bands loosed from off his hands. + +15:15 And he found a new jawbone of an ass, and put forth his hand, +and took it, and slew a thousand men therewith. + +15:16 And Samson said, With the jawbone of an ass, heaps upon heaps, +with the jaw of an ass have I slain a thousand men. + +15:17 And it came to pass, when he had made an end of speaking, that +he cast away the jawbone out of his hand, and called that place +Ramathlehi. + +15:18 And he was sore athirst, and called on the LORD, and said, Thou +hast given this great deliverance into the hand of thy servant: and +now shall I die for thirst, and fall into the hand of the +uncircumcised? 15:19 But God clave an hollow place that was in the +jaw, and there came water thereout; and when he had drunk, his spirit +came again, and he revived: wherefore he called the name thereof +Enhakkore, which is in Lehi unto this day. + +15:20 And he judged Israel in the days of the Philistines twenty +years. + +16:1 Then went Samson to Gaza, and saw there an harlot, and went in +unto her. + +16:2 And it was told the Gazites, saying, Samson is come hither. And +they compassed him in, and laid wait for him all night in the gate of +the city, and were quiet all the night, saying, In the morning, when +it is day, we shall kill him. + +16:3 And Samson lay till midnight, and arose at midnight, and took the +doors of the gate of the city, and the two posts, and went away with +them, bar and all, and put them upon his shoulders, and carried them +up to the top of an hill that is before Hebron. + +16:4 And it came to pass afterward, that he loved a woman in the +valley of Sorek, whose name was Delilah. + +16:5 And the lords of the Philistines came up unto her, and said unto +her, Entice him, and see wherein his great strength lieth, and by what +means we may prevail against him, that we may bind him to afflict him; +and we will give thee every one of us eleven hundred pieces of silver. + +16:6 And Delilah said to Samson, Tell me, I pray thee, wherein thy +great strength lieth, and wherewith thou mightest be bound to afflict +thee. + +16:7 And Samson said unto her, If they bind me with seven green withs +that were never dried, then shall I be weak, and be as another man. + +16:8 Then the lords of the Philistines brought up to her seven green +withs which had not been dried, and she bound him with them. + +16:9 Now there were men lying in wait, abiding with her in the +chamber. + +And she said unto him, The Philistines be upon thee, Samson. And he +brake the withs, as a thread of tow is broken when it toucheth the +fire. So his strength was not known. + +16:10 And Delilah said unto Samson, Behold, thou hast mocked me, and +told me lies: now tell me, I pray thee, wherewith thou mightest be +bound. + +16:11 And he said unto her, If they bind me fast with new ropes that +never were occupied, then shall I be weak, and be as another man. + +16:12 Delilah therefore took new ropes, and bound him therewith, and +said unto him, The Philistines be upon thee, Samson. And there were +liers in wait abiding in the chamber. And he brake them from off his +arms like a thread. + +16:13 And Delilah said unto Samson, Hitherto thou hast mocked me, and +told me lies: tell me wherewith thou mightest be bound. And he said +unto her, If thou weavest the seven locks of my head with the web. + +16:14 And she fastened it with the pin, and said unto him, The +Philistines be upon thee, Samson. And he awaked out of his sleep, and +went away with the pin of the beam, and with the web. + +16:15 And she said unto him, How canst thou say, I love thee, when +thine heart is not with me? thou hast mocked me these three times, and +hast not told me wherein thy great strength lieth. + +16:16 And it came to pass, when she pressed him daily with her words, +and urged him, so that his soul was vexed unto death; 16:17 That he +told her all his heart, and said unto her, There hath not come a razor +upon mine head; for I have been a Nazarite unto God from my mother's +womb: if I be shaven, then my strength will go from me, and I shall +become weak, and be like any other man. + +16:18 And when Delilah saw that he had told her all his heart, she +sent and called for the lords of the Philistines, saying, Come up this +once, for he hath shewed me all his heart. Then the lords of the +Philistines came up unto her, and brought money in their hand. + +16:19 And she made him sleep upon her knees; and she called for a man, +and she caused him to shave off the seven locks of his head; and she +began to afflict him, and his strength went from him. + +16:20 And she said, The Philistines be upon thee, Samson. And he awoke +out of his sleep, and said, I will go out as at other times before, +and shake myself. And he wist not that the LORD was departed from him. + +16:21 But the Philistines took him, and put out his eyes, and brought +him down to Gaza, and bound him with fetters of brass; and he did +grind in the prison house. + +16:22 Howbeit the hair of his head began to grow again after he was +shaven. + +16:23 Then the lords of the Philistines gathered them together for to +offer a great sacrifice unto Dagon their god, and to rejoice: for they +said, Our god hath delivered Samson our enemy into our hand. + +16:24 And when the people saw him, they praised their god: for they +said, Our god hath delivered into our hands our enemy, and the +destroyer of our country, which slew many of us. + +16:25 And it came to pass, when their hearts were merry, that they +said, Call for Samson, that he may make us sport. And they called for +Samson out of the prison house; and he made them sport: and they set +him between the pillars. + +16:26 And Samson said unto the lad that held him by the hand, Suffer +me that I may feel the pillars whereupon the house standeth, that I +may lean upon them. + +16:27 Now the house was full of men and women; and all the lords of +the Philistines were there; and there were upon the roof about three +thousand men and women, that beheld while Samson made sport. + +16:28 And Samson called unto the LORD, and said, O Lord God, remember +me, I pray thee, and strengthen me, I pray thee, only this once, O +God, that I may be at once avenged of the Philistines for my two eyes. + +16:29 And Samson took hold of the two middle pillars upon which the +house stood, and on which it was borne up, of the one with his right +hand, and of the other with his left. + +16:30 And Samson said, Let me die with the Philistines. And he bowed +himself with all his might; and the house fell upon the lords, and +upon all the people that were therein. So the dead which he slew at +his death were more than they which he slew in his life. + +16:31 Then his brethren and all the house of his father came down, and +took him, and brought him up, and buried him between Zorah and Eshtaol +in the buryingplace of Manoah his father. And he judged Israel twenty +years. + +17:1 And there was a man of mount Ephraim, whose name was Micah. + +17:2 And he said unto his mother, The eleven hundred shekels of silver +that were taken from thee, about which thou cursedst, and spakest of +also in mine ears, behold, the silver is with me; I took it. And his +mother said, Blessed be thou of the LORD, my son. + +17:3 And when he had restored the eleven hundred shekels of silver to +his mother, his mother said, I had wholly dedicated the silver unto +the LORD from my hand for my son, to make a graven image and a molten +image: now therefore I will restore it unto thee. + +17:4 Yet he restored the money unto his mother; and his mother took +two hundred shekels of silver, and gave them to the founder, who made +thereof a graven image and a molten image: and they were in the house +of Micah. + +17:5 And the man Micah had an house of gods, and made an ephod, and +teraphim, and consecrated one of his sons, who became his priest. + +17:6 In those days there was no king in Israel, but every man did that +which was right in his own eyes. + +17:7 And there was a young man out of Bethlehemjudah of the family of +Judah, who was a Levite, and he sojourned there. + +17:8 And the man departed out of the city from Bethlehemjudah to +sojourn where he could find a place: and he came to mount Ephraim to +the house of Micah, as he journeyed. + +17:9 And Micah said unto him, Whence comest thou? And he said unto +him, I am a Levite of Bethlehemjudah, and I go to sojourn where I may +find a place. + +17:10 And Micah said unto him, Dwell with me, and be unto me a father +and a priest, and I will give thee ten shekels of silver by the year, +and a suit of apparel, and thy victuals. So the Levite went in. + +17:11 And the Levite was content to dwell with the man; and the young +man was unto him as one of his sons. + +17:12 And Micah consecrated the Levite; and the young man became his +priest, and was in the house of Micah. + +17:13 Then said Micah, Now know I that the LORD will do me good, +seeing I have a Levite to my priest. + +18:1 In those days there was no king in Israel: and in those days the +tribe of the Danites sought them an inheritance to dwell in; for unto +that day all their inheritance had not fallen unto them among the +tribes of Israel. + +18:2 And the children of Dan sent of their family five men from their +coasts, men of valour, from Zorah, and from Eshtaol, to spy out the +land, and to search it; and they said unto them, Go, search the land: +who when they came to mount Ephraim, to the house of Micah, they +lodged there. + +18:3 When they were by the house of Micah, they knew the voice of the +young man the Levite: and they turned in thither, and said unto him, +Who brought thee hither? and what makest thou in this place? and what +hast thou here? 18:4 And he said unto them, Thus and thus dealeth +Micah with me, and hath hired me, and I am his priest. + +18:5 And they said unto him, Ask counsel, we pray thee, of God, that +we may know whether our way which we go shall be prosperous. + +18:6 And the priest said unto them, Go in peace: before the LORD is +your way wherein ye go. + +18:7 Then the five men departed, and came to Laish, and saw the people +that were therein, how they dwelt careless, after the manner of the +Zidonians, quiet and secure; and there was no magistrate in the land, +that might put them to shame in any thing; and they were far from the +Zidonians, and had no business with any man. + +18:8 And they came unto their brethren to Zorah and Eshtaol: and their +brethren said unto them, What say ye? 18:9 And they said, Arise, that +we may go up against them: for we have seen the land, and, behold, it +is very good: and are ye still? be not slothful to go, and to enter to +possess the land. + +18:10 When ye go, ye shall come unto a people secure, and to a large +land: for God hath given it into your hands; a place where there is no +want of any thing that is in the earth. + +18:11 And there went from thence of the family of the Danites, out of +Zorah and out of Eshtaol, six hundred men appointed with weapons of +war. + +18:12 And they went up, and pitched in Kirjathjearim, in Judah: +wherefore they called that place Mahanehdan unto this day: behold, it +is behind Kirjathjearim. + +18:13 And they passed thence unto mount Ephraim, and came unto the +house of Micah. + +18:14 Then answered the five men that went to spy out the country of +Laish, and said unto their brethren, Do ye know that there is in these +houses an ephod, and teraphim, and a graven image, and a molten image? +now therefore consider what ye have to do. + +18:15 And they turned thitherward, and came to the house of the young +man the Levite, even unto the house of Micah, and saluted him. + +18:16 And the six hundred men appointed with their weapons of war, +which were of the children of Dan, stood by the entering of the gate. + +18:17 And the five men that went to spy out the land went up, and came +in thither, and took the graven image, and the ephod, and the +teraphim, and the molten image: and the priest stood in the entering +of the gate with the six hundred men that were appointed with weapons +of war. + +18:18 And these went into Micah's house, and fetched the carved image, +the ephod, and the teraphim, and the molten image. Then said the +priest unto them, What do ye? 18:19 And they said unto him, Hold thy +peace, lay thine hand upon thy mouth, and go with us, and be to us a +father and a priest: is it better for thee to be a priest unto the +house of one man, or that thou be a priest unto a tribe and a family +in Israel? 18:20 And the priest's heart was glad, and he took the +ephod, and the teraphim, and the graven image, and went in the midst +of the people. + +18:21 So they turned and departed, and put the little ones and the +cattle and the carriage before them. + +18:22 And when they were a good way from the house of Micah, the men +that were in the houses near to Micah's house were gathered together, +and overtook the children of Dan. + +18:23 And they cried unto the children of Dan. And they turned their +faces, and said unto Micah, What aileth thee, that thou comest with +such a company? 18:24 And he said, Ye have taken away my gods which I +made, and the priest, and ye are gone away: and what have I more? and +what is this that ye say unto me, What aileth thee? 18:25 And the +children of Dan said unto him, Let not thy voice be heard among us, +lest angry fellows run upon thee, and thou lose thy life, with the +lives of thy household. + +18:26 And the children of Dan went their way: and when Micah saw that +they were too strong for him, he turned and went back unto his house. + +18:27 And they took the things which Micah had made, and the priest +which he had, and came unto Laish, unto a people that were at quiet +and secure: and they smote them with the edge of the sword, and burnt +the city with fire. + +18:28 And there was no deliverer, because it was far from Zidon, and +they had no business with any man; and it was in the valley that lieth +by Bethrehob. And they built a city, and dwelt therein. + +18:29 And they called the name of the city Dan, after the name of Dan +their father, who was born unto Israel: howbeit the name of the city +was Laish at the first. + +18:30 And the children of Dan set up the graven image: and Jonathan, +the son of Gershom, the son of Manasseh, he and his sons were priests +to the tribe of Dan until the day of the captivity of the land. + +18:31 And they set them up Micah's graven image, which he made, all +the time that the house of God was in Shiloh. + +19:1 And it came to pass in those days, when there was no king in +Israel, that there was a certain Levite sojourning on the side of +mount Ephraim, who took to him a concubine out of Bethlehemjudah. + +19:2 And his concubine played the whore against him, and went away +from him unto her father's house to Bethlehemjudah, and was there four +whole months. + +19:3 And her husband arose, and went after her, to speak friendly unto +her, and to bring her again, having his servant with him, and a couple +of asses: and she brought him into her father's house: and when the +father of the damsel saw him, he rejoiced to meet him. + +19:4 And his father in law, the damsel's father, retained him; and he +abode with him three days: so they did eat and drink, and lodged +there. + +19:5 And it came to pass on the fourth day, when they arose early in +the morning, that he rose up to depart: and the damsel's father said +unto his son in law, Comfort thine heart with a morsel of bread, and +afterward go your way. + +19:6 And they sat down, and did eat and drink both of them together: +for the damsel's father had said unto the man, Be content, I pray +thee, and tarry all night, and let thine heart be merry. + +19:7 And when the man rose up to depart, his father in law urged him: +therefore he lodged there again. + +19:8 And he arose early in the morning on the fifth day to depart; and +the damsel's father said, Comfort thine heart, I pray thee. And they +tarried until afternoon, and they did eat both of them. + +19:9 And when the man rose up to depart, he, and his concubine, and +his servant, his father in law, the damsel's father, said unto him, +Behold, now the day draweth toward evening, I pray you tarry all +night: behold, the day groweth to an end, lodge here, that thine heart +may be merry; and to morrow get you early on your way, that thou +mayest go home. + +19:10 But the man would not tarry that night, but he rose up and +departed, and came over against Jebus, which is Jerusalem; and there +were with him two asses saddled, his concubine also was with him. + +19:11 And when they were by Jebus, the day was far spent; and the +servant said unto his master, Come, I pray thee, and let us turn in +into this city of the Jebusites, and lodge in it. + +19:12 And his master said unto him, We will not turn aside hither into +the city of a stranger, that is not of the children of Israel; we will +pass over to Gibeah. + +19:13 And he said unto his servant, Come, and let us draw near to one +of these places to lodge all night, in Gibeah, or in Ramah. + +19:14 And they passed on and went their way; and the sun went down +upon them when they were by Gibeah, which belongeth to Benjamin. + +19:15 And they turned aside thither, to go in and to lodge in Gibeah: +and when he went in, he sat him down in a street of the city: for +there was no man that took them into his house to lodging. + +19:16 And, behold, there came an old man from his work out of the +field at even, which was also of mount Ephraim; and he sojourned in +Gibeah: but the men of the place were Benjamites. + +19:17 And when he had lifted up his eyes, he saw a wayfaring man in +the street of the city: and the old man said, Whither goest thou? and +whence comest thou? 19:18 And he said unto him, We are passing from +Bethlehemjudah toward the side of mount Ephraim; from thence am I: and +I went to Bethlehemjudah, but I am now going to the house of the LORD; +and there is no man that receiveth me to house. + +19:19 Yet there is both straw and provender for our asses; and there +is bread and wine also for me, and for thy handmaid, and for the young +man which is with thy servants: there is no want of any thing. + +19:20 And the old man said, Peace be with thee; howsoever let all thy +wants lie upon me; only lodge not in the street. + +19:21 So he brought him into his house, and gave provender unto the +asses: and they washed their feet, and did eat and drink. + +19:22 Now as they were making their hearts merry, behold, the men of +the city, certain sons of Belial, beset the house round about, and +beat at the door, and spake to the master of the house, the old man, +saying, Bring forth the man that came into thine house, that we may +know him. + +19:23 And the man, the master of the house, went out unto them, and +said unto them, Nay, my brethren, nay, I pray you, do not so wickedly; +seeing that this man is come into mine house, do not this folly. + +19:24 Behold, here is my daughter a maiden, and his concubine; them I +will bring out now, and humble ye them, and do with them what seemeth +good unto you: but unto this man do not so vile a thing. + +19:25 But the men would not hearken to him: so the man took his +concubine, and brought her forth unto them; and they knew her, and +abused her all the night until the morning: and when the day began to +spring, they let her go. + +19:26 Then came the woman in the dawning of the day, and fell down at +the door of the man's house where her lord was, till it was light. + +19:27 And her lord rose up in the morning, and opened the doors of the +house, and went out to go his way: and, behold, the woman his +concubine was fallen down at the door of the house, and her hands were +upon the threshold. + +19:28 And he said unto her, Up, and let us be going. But none +answered. + +Then the man took her up upon an ass, and the man rose up, and gat him +unto his place. + +19:29 And when he was come into his house, he took a knife, and laid +hold on his concubine, and divided her, together with her bones, into +twelve pieces, and sent her into all the coasts of Israel. + +19:30 And it was so, that all that saw it said, There was no such deed +done nor seen from the day that the children of Israel came up out of +the land of Egypt unto this day: consider of it, take advice, and +speak your minds. + +20:1 Then all the children of Israel went out, and the congregation +was gathered together as one man, from Dan even to Beersheba, with the +land of Gilead, unto the LORD in Mizpeh. + +20:2 And the chief of all the people, even of all the tribes of +Israel, presented themselves in the assembly of the people of God, +four hundred thousand footmen that drew sword. + +20:3 (Now the children of Benjamin heard that the children of Israel +were gone up to Mizpeh.) Then said the children of Israel, Tell us, +how was this wickedness? 20:4 And the Levite, the husband of the +woman that was slain, answered and said, I came into Gibeah that +belongeth to Benjamin, I and my concubine, to lodge. + +20:5 And the men of Gibeah rose against me, and beset the house round +about upon me by night, and thought to have slain me: and my concubine +have they forced, that she is dead. + +20:6 And I took my concubine, and cut her in pieces, and sent her +throughout all the country of the inheritance of Israel: for they have +committed lewdness and folly in Israel. + +20:7 Behold, ye are all children of Israel; give here your advice and +counsel. + +20:8 And all the people arose as one man, saying, We will not any of +us go to his tent, neither will we any of us turn into his house. + +20:9 But now this shall be the thing which we will do to Gibeah; we +will go up by lot against it; 20:10 And we will take ten men of an +hundred throughout all the tribes of Israel, and an hundred of a +thousand, and a thousand out of ten thousand, to fetch victual for the +people, that they may do, when they come to Gibeah of Benjamin, +according to all the folly that they have wrought in Israel. + +20:11 So all the men of Israel were gathered against the city, knit +together as one man. + +20:12 And the tribes of Israel sent men through all the tribe of +Benjamin, saying, What wickedness is this that is done among you? +20:13 Now therefore deliver us the men, the children of Belial, which +are in Gibeah, that we may put them to death, and put away evil from +Israel. But the children of Benjamin would not hearken to the voice of +their brethren the children of Israel. + +20:14 But the children of Benjamin gathered themselves together out of +the cities unto Gibeah, to go out to battle against the children of +Israel. + +20:15 And the children of Benjamin were numbered at that time out of +the cities twenty and six thousand men that drew sword, beside the +inhabitants of Gibeah, which were numbered seven hundred chosen men. + +20:16 Among all this people there were seven hundred chosen men +lefthanded; every one could sling stones at an hair breadth, and not +miss. + +20:17 And the men of Israel, beside Benjamin, were numbered four +hundred thousand men that drew sword: all these were men of war. + +20:18 And the children of Israel arose, and went up to the house of +God, and asked counsel of God, and said, Which of us shall go up first +to the battle against the children of Benjamin? And the LORD said, +Judah shall go up first. + +20:19 And the children of Israel rose up in the morning, and encamped +against Gibeah. + +20:20 And the men of Israel went out to battle against Benjamin; and +the men of Israel put themselves in array to fight against them at +Gibeah. + +20:21 And the children of Benjamin came forth out of Gibeah, and +destroyed down to the ground of the Israelites that day twenty and two +thousand men. + +20:22 And the people the men of Israel encouraged themselves, and set +their battle again in array in the place where they put themselves in +array the first day. + +20:23 (And the children of Israel went up and wept before the LORD +until even, and asked counsel of the LORD, saying, Shall I go up again +to battle against the children of Benjamin my brother? And the LORD +said, Go up against him.) 20:24 And the children of Israel came near +against the children of Benjamin the second day. + +20:25 And Benjamin went forth against them out of Gibeah the second +day, and destroyed down to the ground of the children of Israel again +eighteen thousand men; all these drew the sword. + +20:26 Then all the children of Israel, and all the people, went up, +and came unto the house of God, and wept, and sat there before the +LORD, and fasted that day until even, and offered burnt offerings and +peace offerings before the LORD. + +20:27 And the children of Israel enquired of the LORD, (for the ark of +the covenant of God was there in those days, 20:28 And Phinehas, the +son of Eleazar, the son of Aaron, stood before it in those days,) +saying, Shall I yet again go out to battle against the children of +Benjamin my brother, or shall I cease? And the LORD said, Go up; for +to morrow I will deliver them into thine hand. + +20:29 And Israel set liers in wait round about Gibeah. + +20:30 And the children of Israel went up against the children of +Benjamin on the third day, and put themselves in array against Gibeah, +as at other times. + +20:31 And the children of Benjamin went out against the people, and +were drawn away from the city; and they began to smite of the people, +and kill, as at other times, in the highways, of which one goeth up to +the house of God, and the other to Gibeah in the field, about thirty +men of Israel. + +20:32 And the children of Benjamin said, They are smitten down before +us, as at the first. But the children of Israel said, Let us flee, and +draw them from the city unto the highways. + +20:33 And all the men of Israel rose up out of their place, and put +themselves in array at Baaltamar: and the liers in wait of Israel came +forth out of their places, even out of the meadows of Gibeah. + +20:34 And there came against Gibeah ten thousand chosen men out of all +Israel, and the battle was sore: but they knew not that evil was near +them. + +20:35 And the LORD smote Benjamin before Israel: and the children of +Israel destroyed of the Benjamites that day twenty and five thousand +and an hundred men: all these drew the sword. + +20:36 So the children of Benjamin saw that they were smitten: for the +men of Israel gave place to the Benjamites, because they trusted unto +the liers in wait which they had set beside Gibeah. + +20:37 And the liers in wait hasted, and rushed upon Gibeah; and the +liers in wait drew themselves along, and smote all the city with the +edge of the sword. + +20:38 Now there was an appointed sign between the men of Israel and +the liers in wait, that they should make a great flame with smoke rise +up out of the city. + +20:39 And when the men of Israel retired in the battle, Benjamin began +to smite and kill of the men of Israel about thirty persons: for they +said, Surely they are smitten down before us, as in the first battle. + +20:40 But when the flame began to arise up out of the city with a +pillar of smoke, the Benjamites looked behind them, and, behold, the +flame of the city ascended up to heaven. + +20:41 And when the men of Israel turned again, the men of Benjamin +were amazed: for they saw that evil was come upon them. + +20:42 Therefore they turned their backs before the men of Israel unto +the way of the wilderness; but the battle overtook them; and them +which came out of the cities they destroyed in the midst of them. + +20:43 Thus they inclosed the Benjamites round about, and chased them, +and trode them down with ease over against Gibeah toward the +sunrising. + +20:44 And there fell of Benjamin eighteen thousand men; all these were +men of valour. + +20:45 And they turned and fled toward the wilderness unto the rock of +Rimmon: and they gleaned of them in the highways five thousand men; +and pursued hard after them unto Gidom, and slew two thousand men of +them. + +20:46 So that all which fell that day of Benjamin were twenty and five +thousand men that drew the sword; all these were men of valour. + +20:47 But six hundred men turned and fled to the wilderness unto the +rock Rimmon, and abode in the rock Rimmon four months. + +20:48 And the men of Israel turned again upon the children of +Benjamin, and smote them with the edge of the sword, as well the men +of every city, as the beast, and all that came to hand: also they set +on fire all the cities that they came to. + +21:1 Now the men of Israel had sworn in Mizpeh, saying, There shall +not any of us give his daughter unto Benjamin to wife. + +21:2 And the people came to the house of God, and abode there till +even before God, and lifted up their voices, and wept sore; 21:3 And +said, O LORD God of Israel, why is this come to pass in Israel, that +there should be to day one tribe lacking in Israel? 21:4 And it came +to pass on the morrow, that the people rose early, and built there an +altar, and offered burnt offerings and peace offerings. + +21:5 And the children of Israel said, Who is there among all the +tribes of Israel that came not up with the congregation unto the LORD? +For they had made a great oath concerning him that came not up to the +LORD to Mizpeh, saying, He shall surely be put to death. + +21:6 And the children of Israel repented them for Benjamin their +brother, and said, There is one tribe cut off from Israel this day. + +21:7 How shall we do for wives for them that remain, seeing we have +sworn by the LORD that we will not give them of our daughters to +wives? 21:8 And they said, What one is there of the tribes of Israel +that came not up to Mizpeh to the LORD? And, behold, there came none +to the camp from Jabeshgilead to the assembly. + +21:9 For the people were numbered, and, behold, there were none of the +inhabitants of Jabeshgilead there. + +21:10 And the congregation sent thither twelve thousand men of the +valiantest, and commanded them, saying, Go and smite the inhabitants +of Jabeshgilead with the edge of the sword, with the women and the +children. + +21:11 And this is the thing that ye shall do, Ye shall utterly destroy +every male, and every woman that hath lain by man. + +21:12 And they found among the inhabitants of Jabeshgilead four +hundred young virgins, that had known no man by lying with any male: +and they brought them unto the camp to Shiloh, which is in the land of +Canaan. + +21:13 And the whole congregation sent some to speak to the children of +Benjamin that were in the rock Rimmon, and to call peaceably unto +them. + +21:14 And Benjamin came again at that time; and they gave them wives +which they had saved alive of the women of Jabeshgilead: and yet so +they sufficed them not. + +21:15 And the people repented them for Benjamin, because that the LORD +had made a breach in the tribes of Israel. + +21:16 Then the elders of the congregation said, How shall we do for +wives for them that remain, seeing the women are destroyed out of +Benjamin? 21:17 And they said, There must be an inheritance for them +that be escaped of Benjamin, that a tribe be not destroyed out of +Israel. + +21:18 Howbeit we may not give them wives of our daughters: for the +children of Israel have sworn, saying, Cursed be he that giveth a wife +to Benjamin. + +21:19 Then they said, Behold, there is a feast of the LORD in Shiloh +yearly in a place which is on the north side of Bethel, on the east +side of the highway that goeth up from Bethel to Shechem, and on the +south of Lebonah. + +21:20 Therefore they commanded the children of Benjamin, saying, Go +and lie in wait in the vineyards; 21:21 And see, and, behold, if the +daughters of Shiloh come out to dance in dances, then come ye out of +the vineyards, and catch you every man his wife of the daughters of +Shiloh, and go to the land of Benjamin. + +21:22 And it shall be, when their fathers or their brethren come unto +us to complain, that we will say unto them, Be favourable unto them +for our sakes: because we reserved not to each man his wife in the +war: for ye did not give unto them at this time, that ye should be +guilty. + +21:23 And the children of Benjamin did so, and took them wives, +according to their number, of them that danced, whom they caught: and +they went and returned unto their inheritance, and repaired the +cities, and dwelt in them. + +21:24 And the children of Israel departed thence at that time, every +man to his tribe and to his family, and they went out from thence +every man to his inheritance. + +21:25 In those days there was no king in Israel: every man did that +which was right in his own eyes. + + + +The Book of Ruth + + +1:1 Now it came to pass in the days when the judges ruled, that there +was a famine in the land. And a certain man of Bethlehemjudah went to +sojourn in the country of Moab, he, and his wife, and his two sons. + +1:2 And the name of the man was Elimelech, and the name of his wife +Naomi, and the name of his two sons Mahlon and Chilion, Ephrathites of +Bethlehemjudah. And they came into the country of Moab, and continued +there. + +1:3 And Elimelech Naomi's husband died; and she was left, and her two +sons. + +1:4 And they took them wives of the women of Moab; the name of the one +was Orpah, and the name of the other Ruth: and they dwelled there +about ten years. + +1:5 And Mahlon and Chilion died also both of them; and the woman was +left of her two sons and her husband. + +1:6 Then she arose with her daughters in law, that she might return +from the country of Moab: for she had heard in the country of Moab how +that the LORD had visited his people in giving them bread. + +1:7 Wherefore she went forth out of the place where she was, and her +two daughters in law with her; and they went on the way to return unto +the land of Judah. + +1:8 And Naomi said unto her two daughters in law, Go, return each to +her mother's house: the LORD deal kindly with you, as ye have dealt +with the dead, and with me. + +1:9 The LORD grant you that ye may find rest, each of you in the house +of her husband. Then she kissed them; and they lifted up their voice, +and wept. + +1:10 And they said unto her, Surely we will return with thee unto thy +people. + +1:11 And Naomi said, Turn again, my daughters: why will ye go with me? +are there yet any more sons in my womb, that they may be your +husbands? 1:12 Turn again, my daughters, go your way; for I am too +old to have an husband. If I should say, I have hope, if I should have +an husband also to night, and should also bear sons; 1:13 Would ye +tarry for them till they were grown? would ye stay for them from +having husbands? nay, my daughters; for it grieveth me much for your +sakes that the hand of the LORD is gone out against me. + +1:14 And they lifted up their voice, and wept again: and Orpah kissed +her mother in law; but Ruth clave unto her. + +1:15 And she said, Behold, thy sister in law is gone back unto her +people, and unto her gods: return thou after thy sister in law. + +1:16 And Ruth said, Intreat me not to leave thee, or to return from +following after thee: for whither thou goest, I will go; and where +thou lodgest, I will lodge: thy people shall be my people, and thy God +my God: 1:17 Where thou diest, will I die, and there will I be buried: +the LORD do so to me, and more also, if ought but death part thee and +me. + +1:18 When she saw that she was stedfastly minded to go with her, then +she left speaking unto her. + +1:19 So they two went until they came to Bethlehem. And it came to +pass, when they were come to Bethlehem, that all the city was moved +about them, and they said, Is this Naomi? 1:20 And she said unto +them, Call me not Naomi, call me Mara: for the Almighty hath dealt +very bitterly with me. + +1:21 I went out full and the LORD hath brought me home again empty: +why then call ye me Naomi, seeing the LORD hath testified against me, +and the Almighty hath afflicted me? 1:22 So Naomi returned, and Ruth +the Moabitess, her daughter in law, with her, which returned out of +the country of Moab: and they came to Bethlehem in the beginning of +barley harvest. + +2:1 And Naomi had a kinsman of her husband's, a mighty man of wealth, +of the family of Elimelech; and his name was Boaz. + +2:2 And Ruth the Moabitess said unto Naomi, Let me now go to the +field, and glean ears of corn after him in whose sight I shall find +grace. + +And she said unto her, Go, my daughter. + +2:3 And she went, and came, and gleaned in the field after the +reapers: and her hap was to light on a part of the field belonging +unto Boaz, who was of the kindred of Elimelech. + +2:4 And, behold, Boaz came from Bethlehem, and said unto the reapers, +The LORD be with you. And they answered him, The LORD bless thee. + +2:5 Then said Boaz unto his servant that was set over the reapers, +Whose damsel is this? 2:6 And the servant that was set over the +reapers answered and said, It is the Moabitish damsel that came back +with Naomi out of the country of Moab: 2:7 And she said, I pray you, +let me glean and gather after the reapers among the sheaves: so she +came, and hath continued even from the morning until now, that she +tarried a little in the house. + +2:8 Then said Boaz unto Ruth, Hearest thou not, my daughter? Go not to +glean in another field, neither go from hence, but abide here fast by +my maidens: 2:9 Let thine eyes be on the field that they do reap, and +go thou after them: have I not charged the young men that they shall +not touch thee? and when thou art athirst, go unto the vessels, and +drink of that which the young men have drawn. + +2:10 Then she fell on her face, and bowed herself to the ground, and +said unto him, Why have I found grace in thine eyes, that thou +shouldest take knowledge of me, seeing I am a stranger? 2:11 And Boaz +answered and said unto her, It hath fully been shewed me, all that +thou hast done unto thy mother in law since the death of thine +husband: and how thou hast left thy father and thy mother, and the +land of thy nativity, and art come unto a people which thou knewest +not heretofore. + +2:12 The LORD recompense thy work, and a full reward be given thee of +the LORD God of Israel, under whose wings thou art come to trust. + +2:13 Then she said, Let me find favour in thy sight, my lord; for that +thou hast comforted me, and for that thou hast spoken friendly unto +thine handmaid, though I be not like unto one of thine handmaidens. + +2:14 And Boaz said unto her, At mealtime come thou hither, and eat of +the bread, and dip thy morsel in the vinegar. And she sat beside the +reapers: and he reached her parched corn, and she did eat, and was +sufficed, and left. + +2:15 And when she was risen up to glean, Boaz commanded his young men, +saying, Let her glean even among the sheaves, and reproach her not: +2:16 And let fall also some of the handfuls of purpose for her, and +leave them, that she may glean them, and rebuke her not. + +2:17 So she gleaned in the field until even, and beat out that she had +gleaned: and it was about an ephah of barley. + +2:18 And she took it up, and went into the city: and her mother in law +saw what she had gleaned: and she brought forth, and gave to her that +she had reserved after she was sufficed. + +2:19 And her mother in law said unto her, Where hast thou gleaned to +day? and where wroughtest thou? blessed be he that did take knowledge +of thee. And she shewed her mother in law with whom she had wrought, +and said, The man's name with whom I wrought to day is Boaz. + +2:20 And Naomi said unto her daughter in law, Blessed be he of the +LORD, who hath not left off his kindness to the living and to the +dead. And Naomi said unto her, The man is near of kin unto us, one of +our next kinsmen. + +2:21 And Ruth the Moabitess said, He said unto me also, Thou shalt +keep fast by my young men, until they have ended all my harvest. + +2:22 And Naomi said unto Ruth her daughter in law, It is good, my +daughter, that thou go out with his maidens, that they meet thee not +in any other field. + +2:23 So she kept fast by the maidens of Boaz to glean unto the end of +barley harvest and of wheat harvest; and dwelt with her mother in law. + +3:1 Then Naomi her mother in law said unto her, My daughter, shall I +not seek rest for thee, that it may be well with thee? 3:2 And now is +not Boaz of our kindred, with whose maidens thou wast? Behold, he +winnoweth barley to night in the threshingfloor. + +3:3 Wash thyself therefore, and anoint thee, and put thy raiment upon +thee, and get thee down to the floor: but make not thyself known unto +the man, until he shall have done eating and drinking. + +3:4 And it shall be, when he lieth down, that thou shalt mark the +place where he shall lie, and thou shalt go in, and uncover his feet, +and lay thee down; and he will tell thee what thou shalt do. + +3:5 And she said unto her, All that thou sayest unto me I will do. + +3:6 And she went down unto the floor, and did according to all that +her mother in law bade her. + +3:7 And when Boaz had eaten and drunk, and his heart was merry, he +went to lie down at the end of the heap of corn: and she came softly, +and uncovered his feet, and laid her down. + +3:8 And it came to pass at midnight, that the man was afraid, and +turned himself: and, behold, a woman lay at his feet. + +3:9 And he said, Who art thou? And she answered, I am Ruth thine +handmaid: spread therefore thy skirt over thine handmaid; for thou art +a near kinsman. + +3:10 And he said, Blessed be thou of the LORD, my daughter: for thou +hast shewed more kindness in the latter end than at the beginning, +inasmuch as thou followedst not young men, whether poor or rich. + +3:11 And now, my daughter, fear not; I will do to thee all that thou +requirest: for all the city of my people doth know that thou art a +virtuous woman. + +3:12 And now it is true that I am thy near kinsman: howbeit there is a +kinsman nearer than I. + +3:13 Tarry this night, and it shall be in the morning, that if he will +perform unto thee the part of a kinsman, well; let him do the +kinsman's part: but if he will not do the part of a kinsman to thee, +then will I do the part of a kinsman to thee, as the LORD liveth: lie +down until the morning. + +3:14 And she lay at his feet until the morning: and she rose up before +one could know another. And he said, Let it not be known that a woman +came into the floor. + +3:15 Also he said, Bring the vail that thou hast upon thee, and hold +it. + +And when she held it, he measured six measures of barley, and laid it +on her: and she went into the city. + +3:16 And when she came to her mother in law, she said, Who art thou, +my daughter? And she told her all that the man had done to her. + +3:17 And she said, These six measures of barley gave he me; for he +said to me, Go not empty unto thy mother in law. + +3:18 Then said she, Sit still, my daughter, until thou know how the +matter will fall: for the man will not be in rest, until he have +finished the thing this day. + +4:1 Then went Boaz up to the gate, and sat him down there: and, +behold, the kinsman of whom Boaz spake came by; unto whom he said, Ho, +such a one! turn aside, sit down here. And he turned aside, and sat +down. + +4:2 And he took ten men of the elders of the city, and said, Sit ye +down here. And they sat down. + +4:3 And he said unto the kinsman, Naomi, that is come again out of the +country of Moab, selleth a parcel of land, which was our brother +Elimelech's: 4:4 And I thought to advertise thee, saying, Buy it +before the inhabitants, and before the elders of my people. If thou +wilt redeem it, redeem it: but if thou wilt not redeem it, then tell +me, that I may know: for there is none to redeem it beside thee; and I +am after thee. And he said, I will redeem it. + +4:5 Then said Boaz, What day thou buyest the field of the hand of +Naomi, thou must buy it also of Ruth the Moabitess, the wife of the +dead, to raise up the name of the dead upon his inheritance. + +4:6 And the kinsman said, I cannot redeem it for myself, lest I mar +mine own inheritance: redeem thou my right to thyself; for I cannot +redeem it. + +4:7 Now this was the manner in former time in Israel concerning +redeeming and concerning changing, for to confirm all things; a man +plucked off his shoe, and gave it to his neighbour: and this was a +testimony in Israel. + +4:8 Therefore the kinsman said unto Boaz, Buy it for thee. So he drew +off his shoe. + +4:9 And Boaz said unto the elders, and unto all the people, Ye are +witnesses this day, that I have bought all that was Elimelech's, and +all that was Chilion's and Mahlon's, of the hand of Naomi. + +4:10 Moreover Ruth the Moabitess, the wife of Mahlon, have I purchased +to be my wife, to raise up the name of the dead upon his inheritance, +that the name of the dead be not cut off from among his brethren, and +from the gate of his place: ye are witnesses this day. + +4:11 And all the people that were in the gate, and the elders, said, +We are witnesses. The LORD make the woman that is come into thine +house like Rachel and like Leah, which two did build the house of +Israel: and do thou worthily in Ephratah, and be famous in Bethlehem: +4:12 And let thy house be like the house of Pharez, whom Tamar bare +unto Judah, of the seed which the LORD shall give thee of this young +woman. + +4:13 So Boaz took Ruth, and she was his wife: and when he went in unto +her, the LORD gave her conception, and she bare a son. + +4:14 And the women said unto Naomi, Blessed be the LORD, which hath +not left thee this day without a kinsman, that his name may be famous +in Israel. + +4:15 And he shall be unto thee a restorer of thy life, and a nourisher +of thine old age: for thy daughter in law, which loveth thee, which is +better to thee than seven sons, hath born him. + +4:16 And Naomi took the child, and laid it in her bosom, and became +nurse unto it. + +4:17 And the women her neighbours gave it a name, saying, There is a +son born to Naomi; and they called his name Obed: he is the father of +Jesse, the father of David. + +4:18 Now these are the generations of Pharez: Pharez begat Hezron, +4:19 And Hezron begat Ram, and Ram begat Amminadab, 4:20 And Amminadab +begat Nahshon, and Nahshon begat Salmon, 4:21 And Salmon begat Boaz, +and Boaz begat Obed, 4:22 And Obed begat Jesse, and Jesse begat David. + + + + +The First Book of Samuel + +Otherwise Called: + +The First Book of the Kings + + +1:1 Now there was a certain man of Ramathaimzophim, of mount Ephraim, +and his name was Elkanah, the son of Jeroham, the son of Elihu, the +son of Tohu, the son of Zuph, an Ephrathite: 1:2 And he had two wives; +the name of the one was Hannah, and the name of the other Peninnah: +and Peninnah had children, but Hannah had no children. + +1:3 And this man went up out of his city yearly to worship and to +sacrifice unto the LORD of hosts in Shiloh. And the two sons of Eli, +Hophni and Phinehas, the priests of the LORD, were there. + +1:4 And when the time was that Elkanah offered, he gave to Peninnah +his wife, and to all her sons and her daughters, portions: 1:5 But +unto Hannah he gave a worthy portion; for he loved Hannah: but the +LORD had shut up her womb. + +1:6 And her adversary also provoked her sore, for to make her fret, +because the LORD had shut up her womb. + +1:7 And as he did so year by year, when she went up to the house of +the LORD, so she provoked her; therefore she wept, and did not eat. + +1:8 Then said Elkanah her husband to her, Hannah, why weepest thou? +and why eatest thou not? and why is thy heart grieved? am not I better +to thee than ten sons? 1:9 So Hannah rose up after they had eaten in +Shiloh, and after they had drunk. Now Eli the priest sat upon a seat +by a post of the temple of the LORD. + +1:10 And she was in bitterness of soul, and prayed unto the LORD, and +wept sore. + +1:11 And she vowed a vow, and said, O LORD of hosts, if thou wilt +indeed look on the affliction of thine handmaid, and remember me, and +not forget thine handmaid, but wilt give unto thine handmaid a man +child, then I will give him unto the LORD all the days of his life, +and there shall no razor come upon his head. + +1:12 And it came to pass, as she continued praying before the LORD, +that Eli marked her mouth. + +1:13 Now Hannah, she spake in her heart; only her lips moved, but her +voice was not heard: therefore Eli thought she had been drunken. + +1:14 And Eli said unto her, How long wilt thou be drunken? put away +thy wine from thee. + +1:15 And Hannah answered and said, No, my lord, I am a woman of a +sorrowful spirit: I have drunk neither wine nor strong drink, but have +poured out my soul before the LORD. + +1:16 Count not thine handmaid for a daughter of Belial: for out of the +abundance of my complaint and grief have I spoken hitherto. + +1:17 Then Eli answered and said, Go in peace: and the God of Israel +grant thee thy petition that thou hast asked of him. + +1:18 And she said, Let thine handmaid find grace in thy sight. So the +woman went her way, and did eat, and her countenance was no more sad. + +1:19 And they rose up in the morning early, and worshipped before the +LORD, and returned, and came to their house to Ramah: and Elkanah knew +Hannah his wife; and the LORD remembered her. + +1:20 Wherefore it came to pass, when the time was come about after +Hannah had conceived, that she bare a son, and called his name Samuel, +saying, Because I have asked him of the LORD. + +1:21 And the man Elkanah, and all his house, went up to offer unto the +LORD the yearly sacrifice, and his vow. + +1:22 But Hannah went not up; for she said unto her husband, I will not +go up until the child be weaned, and then I will bring him, that he +may appear before the LORD, and there abide for ever. + +1:23 And Elkanah her husband said unto her, Do what seemeth thee good; +tarry until thou have weaned him; only the LORD establish his word. So +the woman abode, and gave her son suck until she weaned him. + +1:24 And when she had weaned him, she took him up with her, with three +bullocks, and one ephah of flour, and a bottle of wine, and brought +him unto the house of the LORD in Shiloh: and the child was young. + +1:25 And they slew a bullock, and brought the child to Eli. + +1:26 And she said, Oh my lord, as thy soul liveth, my lord, I am the +woman that stood by thee here, praying unto the LORD. + +1:27 For this child I prayed; and the LORD hath given me my petition +which I asked of him: 1:28 Therefore also I have lent him to the LORD; +as long as he liveth he shall be lent to the LORD. And he worshipped +the LORD there. + +2:1 And Hannah prayed, and said, My heart rejoiceth in the LORD, mine +horn is exalted in the LORD: my mouth is enlarged over mine enemies; +because I rejoice in thy salvation. + +2:2 There is none holy as the LORD: for there is none beside thee: +neither is there any rock like our God. + +2:3 Talk no more so exceeding proudly; let not arrogancy come out of +your mouth: for the LORD is a God of knowledge, and by him actions are +weighed. + +2:4 The bows of the mighty men are broken, and they that stumbled are +girded with strength. + +2:5 They that were full have hired out themselves for bread; and they +that were hungry ceased: so that the barren hath born seven; and she +that hath many children is waxed feeble. + +2:6 The LORD killeth, and maketh alive: he bringeth down to the grave, +and bringeth up. + +2:7 The LORD maketh poor, and maketh rich: he bringeth low, and +lifteth up. + +2:8 He raiseth up the poor out of the dust, and lifteth up the beggar +from the dunghill, to set them among princes, and to make them inherit +the throne of glory: for the pillars of the earth are the LORD's, and +he hath set the world upon them. + +2:9 He will keep the feet of his saints, and the wicked shall be +silent in darkness; for by strength shall no man prevail. + +2:10 The adversaries of the LORD shall be broken to pieces; out of +heaven shall he thunder upon them: the LORD shall judge the ends of +the earth; and he shall give strength unto his king, and exalt the +horn of his anointed. + +2:11 And Elkanah went to Ramah to his house. And the child did +minister unto the LORD before Eli the priest. + +2:12 Now the sons of Eli were sons of Belial; they knew not the LORD. + +2:13 And the priest's custom with the people was, that, when any man +offered sacrifice, the priest's servant came, while the flesh was in +seething, with a fleshhook of three teeth in his hand; 2:14 And he +struck it into the pan, or kettle, or caldron, or pot; all that the +fleshhook brought up the priest took for himself. So they did in +Shiloh unto all the Israelites that came thither. + +2:15 Also before they burnt the fat, the priest's servant came, and +said to the man that sacrificed, Give flesh to roast for the priest; +for he will not have sodden flesh of thee, but raw. + +2:16 And if any man said unto him, Let them not fail to burn the fat +presently, and then take as much as thy soul desireth; then he would +answer him, Nay; but thou shalt give it me now: and if not, I will +take it by force. + +2:17 Wherefore the sin of the young men was very great before the +LORD: for men abhorred the offering of the LORD. + +2:18 But Samuel ministered before the LORD, being a child, girded with +a linen ephod. + +2:19 Moreover his mother made him a little coat, and brought it to him +from year to year, when she came up with her husband to offer the +yearly sacrifice. + +2:20 And Eli blessed Elkanah and his wife, and said, The LORD give +thee seed of this woman for the loan which is lent to the LORD. And +they went unto their own home. + +2:21 And the LORD visited Hannah, so that she conceived, and bare +three sons and two daughters. And the child Samuel grew before the +LORD. + +2:22 Now Eli was very old, and heard all that his sons did unto all +Israel; and how they lay with the women that assembled at the door of +the tabernacle of the congregation. + +2:23 And he said unto them, Why do ye such things? for I hear of your +evil dealings by all this people. + +2:24 Nay, my sons; for it is no good report that I hear: ye make the +LORD's people to transgress. + +2:25 If one man sin against another, the judge shall judge him: but if +a man sin against the LORD, who shall intreat for him? Notwithstanding +they hearkened not unto the voice of their father, because the LORD +would slay them. + +2:26 And the child Samuel grew on, and was in favour both with the +LORD, and also with men. + +2:27 And there came a man of God unto Eli, and said unto him, Thus +saith the LORD, Did I plainly appear unto the house of thy father, +when they were in Egypt in Pharaoh's house? 2:28 And did I choose him +out of all the tribes of Israel to be my priest, to offer upon mine +altar, to burn incense, to wear an ephod before me? and did I give +unto the house of thy father all the offerings made by fire of the +children of Israel? 2:29 Wherefore kick ye at my sacrifice and at +mine offering, which I have commanded in my habitation; and honourest +thy sons above me, to make yourselves fat with the chiefest of all the +offerings of Israel my people? 2:30 Wherefore the LORD God of Israel +saith, I said indeed that thy house, and the house of thy father, +should walk before me for ever: but now the LORD saith, Be it far from +me; for them that honour me I will honour, and they that despise me +shall be lightly esteemed. + +2:31 Behold, the days come, that I will cut off thine arm, and the arm +of thy father's house, that there shall not be an old man in thine +house. + +2:32 And thou shalt see an enemy in my habitation, in all the wealth +which God shall give Israel: and there shall not be an old man in +thine house for ever. + +2:33 And the man of thine, whom I shall not cut off from mine altar, +shall be to consume thine eyes, and to grieve thine heart: and all the +increase of thine house shall die in the flower of their age. + +2:34 And this shall be a sign unto thee, that shall come upon thy two +sons, on Hophni and Phinehas; in one day they shall die both of them. + +2:35 And I will raise me up a faithful priest, that shall do according +to that which is in mine heart and in my mind: and I will build him a +sure house; and he shall walk before mine anointed for ever. + +2:36 And it shall come to pass, that every one that is left in thine +house shall come and crouch to him for a piece of silver and a morsel +of bread, and shall say, Put me, I pray thee, into one of the priests' +offices, that I may eat a piece of bread. + +3:1 And the child Samuel ministered unto the LORD before Eli. And the +word of the LORD was precious in those days; there was no open vision. + +3:2 And it came to pass at that time, when Eli was laid down in his +place, and his eyes began to wax dim, that he could not see; 3:3 And +ere the lamp of God went out in the temple of the LORD, where the ark +of God was, and Samuel was laid down to sleep; 3:4 That the LORD +called Samuel: and he answered, Here am I. + +3:5 And he ran unto Eli, and said, Here am I; for thou calledst me. +And he said, I called not; lie down again. And he went and lay down. + +3:6 And the LORD called yet again, Samuel. And Samuel arose and went +to Eli, and said, Here am I; for thou didst call me. And he answered, +I called not, my son; lie down again. + +3:7 Now Samuel did not yet know the LORD, neither was the word of the +LORD yet revealed unto him. + +3:8 And the LORD called Samuel again the third time. And he arose and +went to Eli, and said, Here am I; for thou didst call me. And Eli +perceived that the LORD had called the child. + +3:9 Therefore Eli said unto Samuel, Go, lie down: and it shall be, if +he call thee, that thou shalt say, Speak, LORD; for thy servant +heareth. So Samuel went and lay down in his place. + +3:10 And the LORD came, and stood, and called as at other times, +Samuel, Samuel. Then Samuel answered, Speak; for thy servant heareth. + +3:11 And the LORD said to Samuel, Behold, I will do a thing in Israel, +at which both the ears of every one that heareth it shall tingle. + +3:12 In that day I will perform against Eli all things which I have +spoken concerning his house: when I begin, I will also make an end. + +3:13 For I have told him that I will judge his house for ever for the +iniquity which he knoweth; because his sons made themselves vile, and +he restrained them not. + +3:14 And therefore I have sworn unto the house of Eli, that the +iniquity of Eli's house shall not be purged with sacrifice nor +offering for ever. + +3:15 And Samuel lay until the morning, and opened the doors of the +house of the LORD. And Samuel feared to shew Eli the vision. + +3:16 Then Eli called Samuel, and said, Samuel, my son. And he +answered, Here am I. + +3:17 And he said, What is the thing that the LORD hath said unto thee? +I pray thee hide it not from me: God do so to thee, and more also, if +thou hide any thing from me of all the things that he said unto thee. + +3:18 And Samuel told him every whit, and hid nothing from him. And he +said, It is the LORD: let him do what seemeth him good. + +3:19 And Samuel grew, and the LORD was with him, and did let none of +his words fall to the ground. + +3:20 And all Israel from Dan even to Beersheba knew that Samuel was +established to be a prophet of the LORD. + +3:21 And the LORD appeared again in Shiloh: for the LORD revealed +himself to Samuel in Shiloh by the word of the LORD. + +4:1 And the word of Samuel came to all Israel. Now Israel went out +against the Philistines to battle, and pitched beside Ebenezer: and +the Philistines pitched in Aphek. + +4:2 And the Philistines put themselves in array against Israel: and +when they joined battle, Israel was smitten before the Philistines: +and they slew of the army in the field about four thousand men. + +4:3 And when the people were come into the camp, the elders of Israel +said, Wherefore hath the LORD smitten us to day before the +Philistines? Let us fetch the ark of the covenant of the LORD out of +Shiloh unto us, that, when it cometh among us, it may save us out of +the hand of our enemies. + +4:4 So the people sent to Shiloh, that they might bring from thence +the ark of the covenant of the LORD of hosts, which dwelleth between +the cherubims: and the two sons of Eli, Hophni and Phinehas, were +there with the ark of the covenant of God. + +4:5 And when the ark of the covenant of the LORD came into the camp, +all Israel shouted with a great shout, so that the earth rang again. + +4:6 And when the Philistines heard the noise of the shout, they said, +What meaneth the noise of this great shout in the camp of the Hebrews? +And they understood that the ark of the LORD was come into the camp. + +4:7 And the Philistines were afraid, for they said, God is come into +the camp. And they said, Woe unto us! for there hath not been such a +thing heretofore. + +4:8 Woe unto us! who shall deliver us out of the hand of these mighty +Gods? these are the Gods that smote the Egyptians with all the plagues +in the wilderness. + +4:9 Be strong and quit yourselves like men, O ye Philistines, that ye +be not servants unto the Hebrews, as they have been to you: quit +yourselves like men, and fight. + +4:10 And the Philistines fought, and Israel was smitten, and they fled +every man into his tent: and there was a very great slaughter; for +there fell of Israel thirty thousand footmen. + +4:11 And the ark of God was taken; and the two sons of Eli, Hophni and +Phinehas, were slain. + +4:12 And there ran a man of Benjamin out of the army, and came to +Shiloh the same day with his clothes rent, and with earth upon his +head. + +4:13 And when he came, lo, Eli sat upon a seat by the wayside +watching: for his heart trembled for the ark of God. And when the man +came into the city, and told it, all the city cried out. + +4:14 And when Eli heard the noise of the crying, he said, What meaneth +the noise of this tumult? And the man came in hastily, and told Eli. + +4:15 Now Eli was ninety and eight years old; and his eyes were dim, +that he could not see. + +4:16 And the man said unto Eli, I am he that came out of the army, and +I fled to day out of the army. And he said, What is there done, my +son? 4:17 And the messenger answered and said, Israel is fled before +the Philistines, and there hath been also a great slaughter among the +people, and thy two sons also, Hophni and Phinehas, are dead, and the +ark of God is taken. + +4:18 And it came to pass, when he made mention of the ark of God, that +he fell from off the seat backward by the side of the gate, and his +neck brake, and he died: for he was an old man, and heavy. And he had +judged Israel forty years. + +4:19 And his daughter in law, Phinehas' wife, was with child, near to +be delivered: and when she heard the tidings that the ark of God was +taken, and that her father in law and her husband were dead, she bowed +herself and travailed; for her pains came upon her. + +4:20 And about the time of her death the women that stood by her said +unto her, Fear not; for thou hast born a son. But she answered not, +neither did she regard it. + +4:21 And she named the child Ichabod, saying, The glory is departed +from Israel: because the ark of God was taken, and because of her +father in law and her husband. + +4:22 And she said, The glory is departed from Israel: for the ark of +God is taken. + +5:1 And the Philistines took the ark of God, and brought it from +Ebenezer unto Ashdod. + +5:2 When the Philistines took the ark of God, they brought it into the +house of Dagon, and set it by Dagon. + +5:3 And when they of Ashdod arose early on the morrow, behold, Dagon +was fallen upon his face to the earth before the ark of the LORD. And +they took Dagon, and set him in his place again. + +5:4 And when they arose early on the morrow morning, behold, Dagon was +fallen upon his face to the ground before the ark of the LORD; and the +head of Dagon and both the palms of his hands were cut off upon the +threshold; only the stump of Dagon was left to him. + +5:5 Therefore neither the priests of Dagon, nor any that come into +Dagon's house, tread on the threshold of Dagon in Ashdod unto this +day. + +5:6 But the hand of the LORD was heavy upon them of Ashdod, and he +destroyed them, and smote them with emerods, even Ashdod and the +coasts thereof. + +5:7 And when the men of Ashdod saw that it was so, they said, The ark +of the God of Israel shall not abide with us: for his hand is sore +upon us, and upon Dagon our god. + +5:8 They sent therefore and gathered all the lords of the Philistines +unto them, and said, What shall we do with the ark of the God of +Israel? And they answered, Let the ark of the God of Israel be carried +about unto Gath. And they carried the ark of the God of Israel about +thither. + +5:9 And it was so, that, after they had carried it about, the hand of +the LORD was against the city with a very great destruction: and he +smote the men of the city, both small and great, and they had emerods +in their secret parts. + +5:10 Therefore they sent the ark of God to Ekron. And it came to pass, +as the ark of God came to Ekron, that the Ekronites cried out, saying, +They have brought about the ark of the God of Israel to us, to slay us +and our people. + +5:11 So they sent and gathered together all the lords of the +Philistines, and said, Send away the ark of the God of Israel, and let +it go again to his own place, that it slay us not, and our people: for +there was a deadly destruction throughout all the city; the hand of +God was very heavy there. + +5:12 And the men that died not were smitten with the emerods: and the +cry of the city went up to heaven. + +6:1 And the ark of the LORD was in the country of the Philistines +seven months. + +6:2 And the Philistines called for the priests and the diviners, +saying, What shall we do to the ark of the LORD? tell us wherewith we +shall send it to his place. + +6:3 And they said, If ye send away the ark of the God of Israel, send +it not empty; but in any wise return him a trespass offering: then ye +shall be healed, and it shall be known to you why his hand is not +removed from you. + +6:4 Then said they, What shall be the trespass offering which we shall +return to him? They answered, Five golden emerods, and five golden +mice, according to the number of the lords of the Philistines: for one +plague was on you all, and on your lords. + +6:5 Wherefore ye shall make images of your emerods, and images of your +mice that mar the land; and ye shall give glory unto the God of +Israel: peradventure he will lighten his hand from off you, and from +off your gods, and from off your land. + +6:6 Wherefore then do ye harden your hearts, as the Egyptians and +Pharaoh hardened their hearts? when he had wrought wonderfully among +them, did they not let the people go, and they departed? 6:7 Now +therefore make a new cart, and take two milch kine, on which there +hath come no yoke, and tie the kine to the cart, and bring their +calves home from them: 6:8 And take the ark of the LORD, and lay it +upon the cart; and put the jewels of gold, which ye return him for a +trespass offering, in a coffer by the side thereof; and send it away, +that it may go. + +6:9 And see, if it goeth up by the way of his own coast to +Bethshemesh, then he hath done us this great evil: but if not, then we +shall know that it is not his hand that smote us: it was a chance that +happened to us. + +6:10 And the men did so; and took two milch kine, and tied them to the +cart, and shut up their calves at home: 6:11 And they laid the ark of +the LORD upon the cart, and the coffer with the mice of gold and the +images of their emerods. + +6:12 And the kine took the straight way to the way of Bethshemesh, and +went along the highway, lowing as they went, and turned not aside to +the right hand or to the left; and the lords of the Philistines went +after them unto the border of Bethshemesh. + +6:13 And they of Bethshemesh were reaping their wheat harvest in the +valley: and they lifted up their eyes, and saw the ark, and rejoiced +to see it. + +6:14 And the cart came into the field of Joshua, a Bethshemite, and +stood there, where there was a great stone: and they clave the wood of +the cart, and offered the kine a burnt offering unto the LORD. + +6:15 And the Levites took down the ark of the LORD, and the coffer +that was with it, wherein the jewels of gold were, and put them on the +great stone: and the men of Bethshemesh offered burnt offerings and +sacrificed sacrifices the same day unto the LORD. + +6:16 And when the five lords of the Philistines had seen it, they +returned to Ekron the same day. + +6:17 And these are the golden emerods which the Philistines returned +for a trespass offering unto the LORD; for Ashdod one, for Gaza one, +for Askelon one, for Gath one, for Ekron one; 6:18 And the golden +mice, according to the number of all the cities of the Philistines +belonging to the five lords, both of fenced cities, and of country +villages, even unto the great stone of Abel, whereon they set down the +ark of the LORD: which stone remaineth unto this day in the field of +Joshua, the Bethshemite. + +6:19 And he smote the men of Bethshemesh, because they had looked into +the ark of the LORD, even he smote of the people fifty thousand and +threescore and ten men: and the people lamented, because the LORD had +smitten many of the people with a great slaughter. + +6:20 And the men of Bethshemesh said, Who is able to stand before this +holy LORD God? and to whom shall he go up from us? 6:21 And they sent +messengers to the inhabitants of Kirjathjearim, saying, The +Philistines have brought again the ark of the LORD; come ye down, and +fetch it up to you. + +7:1 And the men of Kirjathjearim came, and fetched up the ark of the +LORD, and brought it into the house of Abinadab in the hill, and +sanctified Eleazar his son to keep the ark of the LORD. + +7:2 And it came to pass, while the ark abode in Kirjathjearim, that +the time was long; for it was twenty years: and all the house of +Israel lamented after the LORD. + +7:3 And Samuel spake unto all the house of Israel, saying, If ye do +return unto the LORD with all your hearts, then put away the strange +gods and Ashtaroth from among you, and prepare your hearts unto the +LORD, and serve him only: and he will deliver you out of the hand of +the Philistines. + +7:4 Then the children of Israel did put away Baalim and Ashtaroth, and +served the LORD only. + +7:5 And Samuel said, Gather all Israel to Mizpeh, and I will pray for +you unto the LORD. + +7:6 And they gathered together to Mizpeh, and drew water, and poured +it out before the LORD, and fasted on that day, and said there, We +have sinned against the LORD. And Samuel judged the children of Israel +in Mizpeh. + +7:7 And when the Philistines heard that the children of Israel were +gathered together to Mizpeh, the lords of the Philistines went up +against Israel. And when the children of Israel heard it, they were +afraid of the Philistines. + +7:8 And the children of Israel said to Samuel, Cease not to cry unto +the LORD our God for us, that he will save us out of the hand of the +Philistines. + +7:9 And Samuel took a sucking lamb, and offered it for a burnt +offering wholly unto the LORD: and Samuel cried unto the LORD for +Israel; and the LORD heard him. + +7:10 And as Samuel was offering up the burnt offering, the Philistines +drew near to battle against Israel: but the LORD thundered with a +great thunder on that day upon the Philistines, and discomfited them; +and they were smitten before Israel. + +7:11 And the men of Israel went out of Mizpeh, and pursued the +Philistines, and smote them, until they came under Bethcar. + +7:12 Then Samuel took a stone, and set it between Mizpeh and Shen, and +called the name of it Ebenezer, saying, Hitherto hath the LORD helped +us. + +7:13 So the Philistines were subdued, and they came no more into the +coast of Israel: and the hand of the LORD was against the Philistines +all the days of Samuel. + +7:14 And the cities which the Philistines had taken from Israel were +restored to Israel, from Ekron even unto Gath; and the coasts thereof +did Israel deliver out of the hands of the Philistines. And there was +peace between Israel and the Amorites. + +7:15 And Samuel judged Israel all the days of his life. + +7:16 And he went from year to year in circuit to Bethel, and Gilgal, +and Mizpeh, and judged Israel in all those places. + +7:17 And his return was to Ramah; for there was his house; and there +he judged Israel; and there he built an altar unto the LORD. + +8:1 And it came to pass, when Samuel was old, that he made his sons +judges over Israel. + +8:2 Now the name of his firstborn was Joel; and the name of his +second, Abiah: they were judges in Beersheba. + +8:3 And his sons walked not in his ways, but turned aside after lucre, +and took bribes, and perverted judgment. + +8:4 Then all the elders of Israel gathered themselves together, and +came to Samuel unto Ramah, 8:5 And said unto him, Behold, thou art +old, and thy sons walk not in thy ways: now make us a king to judge us +like all the nations. + +8:6 But the thing displeased Samuel, when they said, Give us a king to +judge us. And Samuel prayed unto the LORD. + +8:7 And the LORD said unto Samuel, Hearken unto the voice of the +people in all that they say unto thee: for they have not rejected +thee, but they have rejected me, that I should not reign over them. + +8:8 According to all the works which they have done since the day that +I brought them up out of Egypt even unto this day, wherewith they have +forsaken me, and served other gods, so do they also unto thee. + +8:9 Now therefore hearken unto their voice: howbeit yet protest +solemnly unto them, and shew them the manner of the king that shall +reign over them. + +8:10 And Samuel told all the words of the LORD unto the people that +asked of him a king. + +8:11 And he said, This will be the manner of the king that shall reign +over you: He will take your sons, and appoint them for himself, for +his chariots, and to be his horsemen; and some shall run before his +chariots. + +8:12 And he will appoint him captains over thousands, and captains +over fifties; and will set them to ear his ground, and to reap his +harvest, and to make his instruments of war, and instruments of his +chariots. + +8:13 And he will take your daughters to be confectionaries, and to be +cooks, and to be bakers. + +8:14 And he will take your fields, and your vineyards, and your +oliveyards, even the best of them, and give them to his servants. + +8:15 And he will take the tenth of your seed, and of your vineyards, +and give to his officers, and to his servants. + +8:16 And he will take your menservants, and your maidservants, and +your goodliest young men, and your asses, and put them to his work. + +8:17 He will take the tenth of your sheep: and ye shall be his +servants. + +8:18 And ye shall cry out in that day because of your king which ye +shall have chosen you; and the LORD will not hear you in that day. + +8:19 Nevertheless the people refused to obey the voice of Samuel; and +they said, Nay; but we will have a king over us; 8:20 That we also may +be like all the nations; and that our king may judge us, and go out +before us, and fight our battles. + +8:21 And Samuel heard all the words of the people, and he rehearsed +them in the ears of the LORD. + +8:22 And the LORD said to Samuel, Hearken unto their voice, and make +them a king. And Samuel said unto the men of Israel, Go ye every man +unto his city. + +9:1 Now there was a man of Benjamin, whose name was Kish, the son of +Abiel, the son of Zeror, the son of Bechorath, the son of Aphiah, a +Benjamite, a mighty man of power. + +9:2 And he had a son, whose name was Saul, a choice young man, and a +goodly: and there was not among the children of Israel a goodlier +person than he: from his shoulders and upward he was higher than any +of the people. + +9:3 And the asses of Kish Saul's father were lost. And Kish said to +Saul his son, Take now one of the servants with thee, and arise, go +seek the asses. + +9:4 And he passed through mount Ephraim, and passed through the land +of Shalisha, but they found them not: then they passed through the +land of Shalim, and there they were not: and he passed through the +land of the Benjamites, but they found them not. + +9:5 And when they were come to the land of Zuph, Saul said to his +servant that was with him, Come, and let us return; lest my father +leave caring for the asses, and take thought for us. + +9:6 And he said unto him, Behold now, there is in this city a man of +God, and he is an honourable man; all that he saith cometh surely to +pass: now let us go thither; peradventure he can shew us our way that +we should go. + +9:7 Then said Saul to his servant, But, behold, if we go, what shall +we bring the man? for the bread is spent in our vessels, and there is +not a present to bring to the man of God: what have we? 9:8 And the +servant answered Saul again, and said, Behold, I have here at hand the +fourth part of a shekel of silver: that will I give to the man of God, +to tell us our way. + +9:9 (Beforetime in Israel, when a man went to enquire of God, thus he +spake, Come, and let us go to the seer: for he that is now called a +Prophet was beforetime called a Seer.) 9:10 Then said Saul to his +servant, Well said; come, let us go. So they went unto the city where +the man of God was. + +9:11 And as they went up the hill to the city, they found young +maidens going out to draw water, and said unto them, Is the seer here? +9:12 And they answered them, and said, He is; behold, he is before +you: make haste now, for he came to day to the city; for there is a +sacrifice of the people to day in the high place: 9:13 As soon as ye +be come into the city, ye shall straightway find him, before he go up +to the high place to eat: for the people will not eat until he come, +because he doth bless the sacrifice; and afterwards they eat that be +bidden. Now therefore get you up; for about this time ye shall find +him. + +9:14 And they went up into the city: and when they were come into the +city, behold, Samuel came out against them, for to go up to the high +place. + +9:15 Now the LORD had told Samuel in his ear a day before Saul came, +saying, 9:16 To morrow about this time I will send thee a man out of +the land of Benjamin, and thou shalt anoint him to be captain over my +people Israel, that he may save my people out of the hand of the +Philistines: for I have looked upon my people, because their cry is +come unto me. + +9:17 And when Samuel saw Saul, the LORD said unto him, Behold the man +whom I spake to thee of! this same shall reign over my people. + +9:18 Then Saul drew near to Samuel in the gate, and said, Tell me, I +pray thee, where the seer's house is. + +9:19 And Samuel answered Saul, and said, I am the seer: go up before +me unto the high place; for ye shall eat with me to day, and to morrow +I will let thee go, and will tell thee all that is in thine heart. + +9:20 And as for thine asses that were lost three days ago, set not thy +mind on them; for they are found. And on whom is all the desire of +Israel? Is it not on thee, and on all thy father's house? 9:21 And +Saul answered and said, Am not I a Benjamite, of the smallest of the +tribes of Israel? and my family the least of all the families of the +tribe of Benjamin? wherefore then speakest thou so to me? 9:22 And +Samuel took Saul and his servant, and brought them into the parlour, +and made them sit in the chiefest place among them that were bidden, +which were about thirty persons. + +9:23 And Samuel said unto the cook, Bring the portion which I gave +thee, of which I said unto thee, Set it by thee. + +9:24 And the cook took up the shoulder, and that which was upon it, +and set it before Saul. And Samuel said, Behold that which is left! +set it before thee, and eat: for unto this time hath it been kept for +thee since I said, I have invited the people. So Saul did eat with +Samuel that day. + +9:25 And when they were come down from the high place into the city, +Samuel communed with Saul upon the top of the house. + +9:26 And they arose early: and it came to pass about the spring of the +day, that Samuel called Saul to the top of the house, saying, Up, that +I may send thee away. And Saul arose, and they went out both of them, +he and Samuel, abroad. + +9:27 And as they were going down to the end of the city, Samuel said +to Saul, Bid the servant pass on before us, (and he passed on), but +stand thou still a while, that I may shew thee the word of God. + +10:1 Then Samuel took a vial of oil, and poured it upon his head, and +kissed him, and said, Is it not because the LORD hath anointed thee to +be captain over his inheritance? 10:2 When thou art departed from me +to day, then thou shalt find two men by Rachel's sepulchre in the +border of Benjamin at Zelzah; and they will say unto thee, The asses +which thou wentest to seek are found: and, lo, thy father hath left +the care of the asses, and sorroweth for you, saying, What shall I do +for my son? 10:3 Then shalt thou go on forward from thence, and thou +shalt come to the plain of Tabor, and there shall meet thee three men +going up to God to Bethel, one carrying three kids, and another +carrying three loaves of bread, and another carrying a bottle of wine: +10:4 And they will salute thee, and give thee two loaves of bread; +which thou shalt receive of their hands. + +10:5 After that thou shalt come to the hill of God, where is the +garrison of the Philistines: and it shall come to pass, when thou art +come thither to the city, that thou shalt meet a company of prophets +coming down from the high place with a psaltery, and a tabret, and a +pipe, and a harp, before them; and they shall prophesy: 10:6 And the +Spirit of the LORD will come upon thee, and thou shalt prophesy with +them, and shalt be turned into another man. + +10:7 And let it be, when these signs are come unto thee, that thou do +as occasion serve thee; for God is with thee. + +10:8 And thou shalt go down before me to Gilgal; and, behold, I will +come down unto thee, to offer burnt offerings, and to sacrifice +sacrifices of peace offerings: seven days shalt thou tarry, till I +come to thee, and shew thee what thou shalt do. + +10:9 And it was so, that when he had turned his back to go from +Samuel, God gave him another heart: and all those signs came to pass +that day. + +10:10 And when they came thither to the hill, behold, a company of +prophets met him; and the Spirit of God came upon him, and he +prophesied among them. + +10:11 And it came to pass, when all that knew him beforetime saw that, +behold, he prophesied among the prophets, then the people said one to +another, What is this that is come unto the son of Kish? Is Saul also +among the prophets? 10:12 And one of the same place answered and +said, But who is their father? Therefore it became a proverb, Is Saul +also among the prophets? 10:13 And when he had made an end of +prophesying, he came to the high place. + +10:14 And Saul's uncle said unto him and to his servant, Whither went +ye? And he said, To seek the asses: and when we saw that they were no +where, we came to Samuel. + +10:15 And Saul's uncle said, Tell me, I pray thee, what Samuel said +unto you. + +10:16 And Saul said unto his uncle, He told us plainly that the asses +were found. But of the matter of the kingdom, whereof Samuel spake, he +told him not. + +10:17 And Samuel called the people together unto the LORD to Mizpeh; +10:18 And said unto the children of Israel, Thus saith the LORD God of +Israel, I brought up Israel out of Egypt, and delivered you out of the +hand of the Egyptians, and out of the hand of all kingdoms, and of +them that oppressed you: 10:19 And ye have this day rejected your God, +who himself saved you out of all your adversities and your +tribulations; and ye have said unto him, Nay, but set a king over us. +Now therefore present yourselves before the LORD by your tribes, and +by your thousands. + +10:20 And when Samuel had caused all the tribes of Israel to come +near, the tribe of Benjamin was taken. + +10:21 When he had caused the tribe of Benjamin to come near by their +families, the family of Matri was taken, and Saul the son of Kish was +taken: and when they sought him, he could not be found. + +10:22 Therefore they enquired of the LORD further, if the man should +yet come thither. And the LORD answered, Behold he hath hid himself +among the stuff. + +10:23 And they ran and fetched him thence: and when he stood among the +people, he was higher than any of the people from his shoulders and +upward. + +10:24 And Samuel said to all the people, See ye him whom the LORD hath +chosen, that there is none like him among all the people? And all the +people shouted, and said, God save the king. + +10:25 Then Samuel told the people the manner of the kingdom, and wrote +it in a book, and laid it up before the LORD. And Samuel sent all the +people away, every man to his house. + +10:26 And Saul also went home to Gibeah; and there went with him a +band of men, whose hearts God had touched. + +10:27 But the children of Belial said, How shall this man save us? And +they despised him, and brought no presents. But he held his peace. + +11:1 Then Nahash the Ammonite came up, and encamped against +Jabeshgilead: and all the men of Jabesh said unto Nahash, Make a +covenant with us, and we will serve thee. + +11:2 And Nahash the Ammonite answered them, On this condition will I +make a covenant with you, that I may thrust out all your right eyes, +and lay it for a reproach upon all Israel. + +11:3 And the elders of Jabesh said unto him, Give us seven days' +respite, that we may send messengers unto all the coasts of Israel: +and then, if there be no man to save us, we will come out to thee. + +11:4 Then came the messengers to Gibeah of Saul, and told the tidings +in the ears of the people: and all the people lifted up their voices, +and wept. + +11:5 And, behold, Saul came after the herd out of the field; and Saul +said, What aileth the people that they weep? And they told him the +tidings of the men of Jabesh. + +11:6 And the Spirit of God came upon Saul when he heard those tidings, +and his anger was kindled greatly. + +11:7 And he took a yoke of oxen, and hewed them in pieces, and sent +them throughout all the coasts of Israel by the hands of messengers, +saying, Whosoever cometh not forth after Saul and after Samuel, so +shall it be done unto his oxen. And the fear of the LORD fell on the +people, and they came out with one consent. + +11:8 And when he numbered them in Bezek, the children of Israel were +three hundred thousand, and the men of Judah thirty thousand. + +11:9 And they said unto the messengers that came, Thus shall ye say +unto the men of Jabeshgilead, To morrow, by that time the sun be hot, +ye shall have help. And the messengers came and shewed it to the men +of Jabesh; and they were glad. + +11:10 Therefore the men of Jabesh said, To morrow we will come out +unto you, and ye shall do with us all that seemeth good unto you. + +11:11 And it was so on the morrow, that Saul put the people in three +companies; and they came into the midst of the host in the morning +watch, and slew the Ammonites until the heat of the day: and it came +to pass, that they which remained were scattered, so that two of them +were not left together. + +11:12 And the people said unto Samuel, Who is he that said, Shall Saul +reign over us? bring the men, that we may put them to death. + +11:13 And Saul said, There shall not a man be put to death this day: +for to day the LORD hath wrought salvation in Israel. + +11:14 Then said Samuel to the people, Come, and let us go to Gilgal, +and renew the kingdom there. + +11:15 And all the people went to Gilgal; and there they made Saul king +before the LORD in Gilgal; and there they sacrificed sacrifices of +peace offerings before the LORD; and there Saul and all the men of +Israel rejoiced greatly. + +12:1 And Samuel said unto all Israel, Behold, I have hearkened unto +your voice in all that ye said unto me, and have made a king over you. + +12:2 And now, behold, the king walketh before you: and I am old and +grayheaded; and, behold, my sons are with you: and I have walked +before you from my childhood unto this day. + +12:3 Behold, here I am: witness against me before the LORD, and before +his anointed: whose ox have I taken? or whose ass have I taken? or +whom have I defrauded? whom have I oppressed? or of whose hand have I +received any bribe to blind mine eyes therewith? and I will restore it +you. + +12:4 And they said, Thou hast not defrauded us, nor oppressed us, +neither hast thou taken ought of any man's hand. + +12:5 And he said unto them, The LORD is witness against you, and his +anointed is witness this day, that ye have not found ought in my hand. +And they answered, He is witness. + +12:6 And Samuel said unto the people, It is the LORD that advanced +Moses and Aaron, and that brought your fathers up out of the land of +Egypt. + +12:7 Now therefore stand still, that I may reason with you before the +LORD of all the righteous acts of the LORD, which he did to you and to +your fathers. + +12:8 When Jacob was come into Egypt, and your fathers cried unto the +LORD, then the LORD sent Moses and Aaron, which brought forth your +fathers out of Egypt, and made them dwell in this place. + +12:9 And when they forgat the LORD their God, he sold them into the +hand of Sisera, captain of the host of Hazor, and into the hand of the +Philistines, and into the hand of the king of Moab, and they fought +against them. + +12:10 And they cried unto the LORD, and said, We have sinned, because +we have forsaken the LORD, and have served Baalim and Ashtaroth: but +now deliver us out of the hand of our enemies, and we will serve thee. + +12:11 And the LORD sent Jerubbaal, and Bedan, and Jephthah, and +Samuel, and delivered you out of the hand of your enemies on every +side, and ye dwelled safe. + +12:12 And when ye saw that Nahash the king of the children of Ammon +came against you, ye said unto me, Nay; but a king shall reign over +us: when the LORD your God was your king. + +12:13 Now therefore behold the king whom ye have chosen, and whom ye +have desired! and, behold, the LORD hath set a king over you. + +12:14 If ye will fear the LORD, and serve him, and obey his voice, and +not rebel against the commandment of the LORD, then shall both ye and +also the king that reigneth over you continue following the LORD your +God: 12:15 But if ye will not obey the voice of the LORD, but rebel +against the commandment of the LORD, then shall the hand of the LORD +be against you, as it was against your fathers. + +12:16 Now therefore stand and see this great thing, which the LORD +will do before your eyes. + +12:17 Is it not wheat harvest to day? I will call unto the LORD, and +he shall send thunder and rain; that ye may perceive and see that your +wickedness is great, which ye have done in the sight of the LORD, in +asking you a king. + +12:18 So Samuel called unto the LORD; and the LORD sent thunder and +rain that day: and all the people greatly feared the LORD and Samuel. + +12:19 And all the people said unto Samuel, Pray for thy servants unto +the LORD thy God, that we die not: for we have added unto all our sins +this evil, to ask us a king. + +12:20 And Samuel said unto the people, Fear not: ye have done all this +wickedness: yet turn not aside from following the LORD, but serve the +LORD with all your heart; 12:21 And turn ye not aside: for then should +ye go after vain things, which cannot profit nor deliver; for they are +vain. + +12:22 For the LORD will not forsake his people for his great name's +sake: because it hath pleased the LORD to make you his people. + +12:23 Moreover as for me, God forbid that I should sin against the +LORD in ceasing to pray for you: but I will teach you the good and the +right way: 12:24 Only fear the LORD, and serve him in truth with all +your heart: for consider how great things he hath done for you. + +12:25 But if ye shall still do wickedly, ye shall be consumed, both ye +and your king. + +13:1 Saul reigned one year; and when he had reigned two years over +Israel, 13:2 Saul chose him three thousand men of Israel; whereof two +thousand were with Saul in Michmash and in mount Bethel, and a +thousand were with Jonathan in Gibeah of Benjamin: and the rest of the +people he sent every man to his tent. + +13:3 And Jonathan smote the garrison of the Philistines that was in +Geba, and the Philistines heard of it. And Saul blew the trumpet +throughout all the land, saying, Let the Hebrews hear. + +13:4 And all Israel heard say that Saul had smitten a garrison of the +Philistines, and that Israel also was had in abomination with the +Philistines. And the people were called together after Saul to Gilgal. + +13:5 And the Philistines gathered themselves together to fight with +Israel, thirty thousand chariots, and six thousand horsemen, and +people as the sand which is on the sea shore in multitude: and they +came up, and pitched in Michmash, eastward from Bethaven. + +13:6 When the men of Israel saw that they were in a strait, (for the +people were distressed,) then the people did hide themselves in caves, +and in thickets, and in rocks, and in high places, and in pits. + +13:7 And some of the Hebrews went over Jordan to the land of Gad and +Gilead. As for Saul, he was yet in Gilgal, and all the people followed +him trembling. + +13:8 And he tarried seven days, according to the set time that Samuel +had appointed: but Samuel came not to Gilgal; and the people were +scattered from him. + +13:9 And Saul said, Bring hither a burnt offering to me, and peace +offerings. And he offered the burnt offering. + +13:10 And it came to pass, that as soon as he had made an end of +offering the burnt offering, behold, Samuel came; and Saul went out to +meet him, that he might salute him. + +13:11 And Samuel said, What hast thou done? And Saul said, Because I +saw that the people were scattered from me, and that thou camest not +within the days appointed, and that the Philistines gathered +themselves together at Michmash; 13:12 Therefore said I, The +Philistines will come down now upon me to Gilgal, and I have not made +supplication unto the LORD: I forced myself therefore, and offered a +burnt offering. + +13:13 And Samuel said to Saul, Thou hast done foolishly: thou hast not +kept the commandment of the LORD thy God, which he commanded thee: for +now would the LORD have established thy kingdom upon Israel for ever. + +13:14 But now thy kingdom shall not continue: the LORD hath sought him +a man after his own heart, and the LORD hath commanded him to be +captain over his people, because thou hast not kept that which the +LORD commanded thee. + +13:15 And Samuel arose, and gat him up from Gilgal unto Gibeah of +Benjamin. And Saul numbered the people that were present with him, +about six hundred men. + +13:16 And Saul, and Jonathan his son, and the people that were present +with them, abode in Gibeah of Benjamin: but the Philistines encamped +in Michmash. + +13:17 And the spoilers came out of the camp of the Philistines in +three companies: one company turned unto the way that leadeth to +Ophrah, unto the land of Shual: 13:18 And another company turned the +way to Bethhoron: and another company turned to the way of the border +that looketh to the valley of Zeboim toward the wilderness. + +13:19 Now there was no smith found throughout all the land of Israel: +for the Philistines said, Lest the Hebrews make them swords or spears: +13:20 But all the Israelites went down to the Philistines, to sharpen +every man his share, and his coulter, and his axe, and his mattock. + +13:21 Yet they had a file for the mattocks, and for the coulters, and +for the forks, and for the axes, and to sharpen the goads. + +13:22 So it came to pass in the day of battle, that there was neither +sword nor spear found in the hand of any of the people that were with +Saul and Jonathan: but with Saul and with Jonathan his son was there +found. + +13:23 And the garrison of the Philistines went out to the passage of +Michmash. + +14:1 Now it came to pass upon a day, that Jonathan the son of Saul +said unto the young man that bare his armour, Come, and let us go over +to the Philistines' garrison, that is on the other side. But he told +not his father. + +14:2 And Saul tarried in the uttermost part of Gibeah under a +pomegranate tree which is in Migron: and the people that were with him +were about six hundred men; 14:3 And Ahiah, the son of Ahitub, +Ichabod's brother, the son of Phinehas, the son of Eli, the LORD's +priest in Shiloh, wearing an ephod. And the people knew not that +Jonathan was gone. + +14:4 And between the passages, by which Jonathan sought to go over +unto the Philistines' garrison, there was a sharp rock on the one +side, and a sharp rock on the other side: and the name of the one was +Bozez, and the name of the other Seneh. + +14:5 The forefront of the one was situate northward over against +Michmash, and the other southward over against Gibeah. + +14:6 And Jonathan said to the young man that bare his armour, Come, +and let us go over unto the garrison of these uncircumcised: it may be +that the LORD will work for us: for there is no restraint to the LORD +to save by many or by few. + +14:7 And his armourbearer said unto him, Do all that is in thine +heart: turn thee; behold, I am with thee according to thy heart. + +14:8 Then said Jonathan, Behold, we will pass over unto these men, and +we will discover ourselves unto them. + +14:9 If they say thus unto us, Tarry until we come to you; then we +will stand still in our place, and will not go up unto them. + +14:10 But if they say thus, Come up unto us; then we will go up: for +the LORD hath delivered them into our hand: and this shall be a sign +unto us. + +14:11 And both of them discovered themselves unto the garrison of the +Philistines: and the Philistines said, Behold, the Hebrews come forth +out of the holes where they had hid themselves. + +14:12 And the men of the garrison answered Jonathan and his +armourbearer, and said, Come up to us, and we will shew you a thing. +And Jonathan said unto his armourbearer, Come up after me: for the +LORD hath delivered them into the hand of Israel. + +14:13 And Jonathan climbed up upon his hands and upon his feet, and +his armourbearer after him: and they fell before Jonathan; and his +armourbearer slew after him. + +14:14 And that first slaughter, which Jonathan and his armourbearer +made, was about twenty men, within as it were an half acre of land, +which a yoke of oxen might plow. + +14:15 And there was trembling in the host, in the field, and among all +the people: the garrison, and the spoilers, they also trembled, and +the earth quaked: so it was a very great trembling. + +14:16 And the watchmen of Saul in Gibeah of Benjamin looked; and, +behold, the multitude melted away, and they went on beating down one +another. + +14:17 Then said Saul unto the people that were with him, Number now, +and see who is gone from us. And when they had numbered, behold, +Jonathan and his armourbearer were not there. + +14:18 And Saul said unto Ahiah, Bring hither the ark of God. For the +ark of God was at that time with the children of Israel. + +14:19 And it came to pass, while Saul talked unto the priest, that the +noise that was in the host of the Philistines went on and increased: +and Saul said unto the priest, Withdraw thine hand. + +14:20 And Saul and all the people that were with him assembled +themselves, and they came to the battle: and, behold, every man's +sword was against his fellow, and there was a very great discomfiture. + +14:21 Moreover the Hebrews that were with the Philistines before that +time, which went up with them into the camp from the country round +about, even they also turned to be with the Israelites that were with +Saul and Jonathan. + +14:22 Likewise all the men of Israel which had hid themselves in mount +Ephraim, when they heard that the Philistines fled, even they also +followed hard after them in the battle. + +14:23 So the LORD saved Israel that day: and the battle passed over +unto Bethaven. + +14:24 And the men of Israel were distressed that day: for Saul had +adjured the people, saying, Cursed be the man that eateth any food +until evening, that I may be avenged on mine enemies. So none of the +people tasted any food. + +14:25 And all they of the land came to a wood; and there was honey +upon the ground. + +14:26 And when the people were come into the wood, behold, the honey +dropped; but no man put his hand to his mouth: for the people feared +the oath. + +14:27 But Jonathan heard not when his father charged the people with +the oath: wherefore he put forth the end of the rod that was in his +hand, and dipped it in an honeycomb, and put his hand to his mouth; +and his eyes were enlightened. + +14:28 Then answered one of the people, and said, Thy father straitly +charged the people with an oath, saying, Cursed be the man that eateth +any food this day. And the people were faint. + +14:29 Then said Jonathan, My father hath troubled the land: see, I +pray you, how mine eyes have been enlightened, because I tasted a +little of this honey. + +14:30 How much more, if haply the people had eaten freely to day of +the spoil of their enemies which they found? for had there not been +now a much greater slaughter among the Philistines? 14:31 And they +smote the Philistines that day from Michmash to Aijalon: and the +people were very faint. + +14:32 And the people flew upon the spoil, and took sheep, and oxen, +and calves, and slew them on the ground: and the people did eat them +with the blood. + +14:33 Then they told Saul, saying, Behold, the people sin against the +LORD, in that they eat with the blood. And he said, Ye have +transgressed: roll a great stone unto me this day. + +14:34 And Saul said, Disperse yourselves among the people, and say +unto them, Bring me hither every man his ox, and every man his sheep, +and slay them here, and eat; and sin not against the LORD in eating +with the blood. + +And all the people brought every man his ox with him that night, and +slew them there. + +14:35 And Saul built an altar unto the LORD: the same was the first +altar that he built unto the LORD. + +14:36 And Saul said, Let us go down after the Philistines by night, +and spoil them until the morning light, and let us not leave a man of +them. And they said, Do whatsoever seemeth good unto thee. Then said +the priest, Let us draw near hither unto God. + +14:37 And Saul asked counsel of God, Shall I go down after the +Philistines? wilt thou deliver them into the hand of Israel? But he +answered him not that day. + +14:38 And Saul said, Draw ye near hither, all the chief of the people: +and know and see wherein this sin hath been this day. + +14:39 For, as the LORD liveth, which saveth Israel, though it be in +Jonathan my son, he shall surely die. But there was not a man among +all the people that answered him. + +14:40 Then said he unto all Israel, Be ye on one side, and I and +Jonathan my son will be on the other side. And the people said unto +Saul, Do what seemeth good unto thee. + +14:41 Therefore Saul said unto the LORD God of Israel, Give a perfect +lot. + +And Saul and Jonathan were taken: but the people escaped. + +14:42 And Saul said, Cast lots between me and Jonathan my son. And +Jonathan was taken. + +14:43 Then Saul said to Jonathan, Tell me what thou hast done. And +Jonathan told him, and said, I did but taste a little honey with the +end of the rod that was in mine hand, and, lo, I must die. + +14:44 And Saul answered, God do so and more also: for thou shalt +surely die, Jonathan. + +14:45 And the people said unto Saul, Shall Jonathan die, who hath +wrought this great salvation in Israel? God forbid: as the LORD +liveth, there shall not one hair of his head fall to the ground; for +he hath wrought with God this day. So the people rescued Jonathan, +that he died not. + +14:46 Then Saul went up from following the Philistines: and the +Philistines went to their own place. + +14:47 So Saul took the kingdom over Israel, and fought against all his +enemies on every side, against Moab, and against the children of +Ammon, and against Edom, and against the kings of Zobah, and against +the Philistines: and whithersoever he turned himself, he vexed them. + +14:48 And he gathered an host, and smote the Amalekites, and delivered +Israel out of the hands of them that spoiled them. + +14:49 Now the sons of Saul were Jonathan, and Ishui, and Melchishua: +and the names of his two daughters were these; the name of the +firstborn Merab, and the name of the younger Michal: 14:50 And the +name of Saul's wife was Ahinoam, the daughter of Ahimaaz: and the name +of the captain of his host was Abner, the son of Ner, Saul's uncle. + +14:51 And Kish was the father of Saul; and Ner the father of Abner was +the son of Abiel. + +14:52 And there was sore war against the Philistines all the days of +Saul: and when Saul saw any strong man, or any valiant man, he took +him unto him. + +15:1 Samuel also said unto Saul, The LORD sent me to anoint thee to be +king over his people, over Israel: now therefore hearken thou unto the +voice of the words of the LORD. + +15:2 Thus saith the LORD of hosts, I remember that which Amalek did to +Israel, how he laid wait for him in the way, when he came up from +Egypt. + +15:3 Now go and smite Amalek, and utterly destroy all that they have, +and spare them not; but slay both man and woman, infant and suckling, +ox and sheep, camel and ass. + +15:4 And Saul gathered the people together, and numbered them in +Telaim, two hundred thousand footmen, and ten thousand men of Judah. + +15:5 And Saul came to a city of Amalek, and laid wait in the valley. + +15:6 And Saul said unto the Kenites, Go, depart, get you down from +among the Amalekites, lest I destroy you with them: for ye shewed +kindness to all the children of Israel, when they came up out of +Egypt. So the Kenites departed from among the Amalekites. + +15:7 And Saul smote the Amalekites from Havilah until thou comest to +Shur, that is over against Egypt. + +15:8 And he took Agag the king of the Amalekites alive, and utterly +destroyed all the people with the edge of the sword. + +15:9 But Saul and the people spared Agag, and the best of the sheep, +and of the oxen, and of the fatlings, and the lambs, and all that was +good, and would not utterly destroy them: but every thing that was +vile and refuse, that they destroyed utterly. + +15:10 Then came the word of the LORD unto Samuel, saying, 15:11 It +repenteth me that I have set up Saul to be king: for he is turned back +from following me, and hath not performed my commandments. And it +grieved Samuel; and he cried unto the LORD all night. + +15:12 And when Samuel rose early to meet Saul in the morning, it was +told Samuel, saying, Saul came to Carmel, and, behold, he set him up a +place, and is gone about, and passed on, and gone down to Gilgal. + +15:13 And Samuel came to Saul: and Saul said unto him, Blessed be thou +of the LORD: I have performed the commandment of the LORD. + +15:14 And Samuel said, What meaneth then this bleating of the sheep in +mine ears, and the lowing of the oxen which I hear? 15:15 And Saul +said, They have brought them from the Amalekites: for the people +spared the best of the sheep and of the oxen, to sacrifice unto the +LORD thy God; and the rest we have utterly destroyed. + +15:16 Then Samuel said unto Saul, Stay, and I will tell thee what the +LORD hath said to me this night. And he said unto him, Say on. + +15:17 And Samuel said, When thou wast little in thine own sight, wast +thou not made the head of the tribes of Israel, and the LORD anointed +thee king over Israel? 15:18 And the LORD sent thee on a journey, and +said, Go and utterly destroy the sinners the Amalekites, and fight +against them until they be consumed. + +15:19 Wherefore then didst thou not obey the voice of the LORD, but +didst fly upon the spoil, and didst evil in the sight of the LORD? +15:20 And Saul said unto Samuel, Yea, I have obeyed the voice of the +LORD, and have gone the way which the LORD sent me, and have brought +Agag the king of Amalek, and have utterly destroyed the Amalekites. + +15:21 But the people took of the spoil, sheep and oxen, the chief of +the things which should have been utterly destroyed, to sacrifice unto +the LORD thy God in Gilgal. + +15:22 And Samuel said, Hath the LORD as great delight in burnt +offerings and sacrifices, as in obeying the voice of the LORD? Behold, +to obey is better than sacrifice, and to hearken than the fat of rams. + +15:23 For rebellion is as the sin of witchcraft, and stubbornness is +as iniquity and idolatry. Because thou hast rejected the word of the +LORD, he hath also rejected thee from being king. + +15:24 And Saul said unto Samuel, I have sinned: for I have +transgressed the commandment of the LORD, and thy words: because I +feared the people, and obeyed their voice. + +15:25 Now therefore, I pray thee, pardon my sin, and turn again with +me, that I may worship the LORD. + +15:26 And Samuel said unto Saul, I will not return with thee: for thou +hast rejected the word of the LORD, and the LORD hath rejected thee +from being king over Israel. + +15:27 And as Samuel turned about to go away, he laid hold upon the +skirt of his mantle, and it rent. + +15:28 And Samuel said unto him, The LORD hath rent the kingdom of +Israel from thee this day, and hath given it to a neighbour of thine, +that is better than thou. + +15:29 And also the Strength of Israel will not lie nor repent: for he +is not a man, that he should repent. + +15:30 Then he said, I have sinned: yet honour me now, I pray thee, +before the elders of my people, and before Israel, and turn again with +me, that I may worship the LORD thy God. + +15:31 So Samuel turned again after Saul; and Saul worshipped the LORD. + +15:32 Then said Samuel, Bring ye hither to me Agag the king of the +Amalekites. And Agag came unto him delicately. And Agag said, Surely +the bitterness of death is past. + +15:33 And Samuel said, As the sword hath made women childless, so +shall thy mother be childless among women. And Samuel hewed Agag in +pieces before the LORD in Gilgal. + +15:34 Then Samuel went to Ramah; and Saul went up to his house to +Gibeah of Saul. + +15:35 And Samuel came no more to see Saul until the day of his death: +nevertheless Samuel mourned for Saul: and the LORD repented that he +had made Saul king over Israel. + +16:1 And the LORD said unto Samuel, How long wilt thou mourn for Saul, +seeing I have rejected him from reigning over Israel? fill thine horn +with oil, and go, I will send thee to Jesse the Bethlehemite: for I +have provided me a king among his sons. + +16:2 And Samuel said, How can I go? if Saul hear it, he will kill me. +And the LORD said, Take an heifer with thee, and say, I am come to +sacrifice to the LORD. + +16:3 And call Jesse to the sacrifice, and I will shew thee what thou +shalt do: and thou shalt anoint unto me him whom I name unto thee. + +16:4 And Samuel did that which the LORD spake, and came to Bethlehem. +And the elders of the town trembled at his coming, and said, Comest +thou peaceably? 16:5 And he said, Peaceably: I am come to sacrifice +unto the LORD: sanctify yourselves, and come with me to the sacrifice. +And he sanctified Jesse and his sons, and called them to the +sacrifice. + +16:6 And it came to pass, when they were come, that he looked on +Eliab, and said, Surely the LORD's anointed is before him. + +16:7 But the LORD said unto Samuel, Look not on his countenance, or on +the height of his stature; because I have refused him: for the LORD +seeth not as man seeth; for man looketh on the outward appearance, but +the LORD looketh on the heart. + +16:8 Then Jesse called Abinadab, and made him pass before Samuel. And +he said, Neither hath the LORD chosen this. + +16:9 Then Jesse made Shammah to pass by. And he said, Neither hath the +LORD chosen this. + +16:10 Again, Jesse made seven of his sons to pass before Samuel. And +Samuel said unto Jesse, The LORD hath not chosen these. + +16:11 And Samuel said unto Jesse, Are here all thy children? And he +said, There remaineth yet the youngest, and, behold, he keepeth the +sheep. And Samuel said unto Jesse, Send and fetch him: for we will not +sit down till he come hither. + +16:12 And he sent, and brought him in. Now he was ruddy, and withal of +a beautiful countenance, and goodly to look to. And the LORD said, +Arise, anoint him: for this is he. + +16:13 Then Samuel took the horn of oil, and anointed him in the midst +of his brethren: and the Spirit of the LORD came upon David from that +day forward. So Samuel rose up, and went to Ramah. + +16:14 But the Spirit of the LORD departed from Saul, and an evil +spirit from the LORD troubled him. + +16:15 And Saul's servants said unto him, Behold now, an evil spirit +from God troubleth thee. + +16:16 Let our lord now command thy servants, which are before thee, to +seek out a man, who is a cunning player on an harp: and it shall come +to pass, when the evil spirit from God is upon thee, that he shall +play with his hand, and thou shalt be well. + +16:17 And Saul said unto his servants, Provide me now a man that can +play well, and bring him to me. + +16:18 Then answered one of the servants, and said, Behold, I have seen +a son of Jesse the Bethlehemite, that is cunning in playing, and a +mighty valiant man, and a man of war, and prudent in matters, and a +comely person, and the LORD is with him. + +16:19 Wherefore Saul sent messengers unto Jesse, and said, Send me +David thy son, which is with the sheep. + +16:20 And Jesse took an ass laden with bread, and a bottle of wine, +and a kid, and sent them by David his son unto Saul. + +16:21 And David came to Saul, and stood before him: and he loved him +greatly; and he became his armourbearer. + +16:22 And Saul sent to Jesse, saying, Let David, I pray thee, stand +before me; for he hath found favour in my sight. + +16:23 And it came to pass, when the evil spirit from God was upon +Saul, that David took an harp, and played with his hand: so Saul was +refreshed, and was well, and the evil spirit departed from him. + +17:1 Now the Philistines gathered together their armies to battle, and +were gathered together at Shochoh, which belongeth to Judah, and +pitched between Shochoh and Azekah, in Ephesdammim. + +17:2 And Saul and the men of Israel were gathered together, and +pitched by the valley of Elah, and set the battle in array against the +Philistines. + +17:3 And the Philistines stood on a mountain on the one side, and +Israel stood on a mountain on the other side: and there was a valley +between them. + +17:4 And there went out a champion out of the camp of the Philistines, +named Goliath, of Gath, whose height was six cubits and a span. + +17:5 And he had an helmet of brass upon his head, and he was armed +with a coat of mail; and the weight of the coat was five thousand +shekels of brass. + +17:6 And he had greaves of brass upon his legs, and a target of brass +between his shoulders. + +17:7 And the staff of his spear was like a weaver's beam; and his +spear's head weighed six hundred shekels of iron: and one bearing a +shield went before him. + +17:8 And he stood and cried unto the armies of Israel, and said unto +them, Why are ye come out to set your battle in array? am not I a +Philistine, and ye servants to Saul? choose you a man for you, and let +him come down to me. + +17:9 If he be able to fight with me, and to kill me, then will we be +your servants: but if I prevail against him, and kill him, then shall +ye be our servants, and serve us. + +17:10 And the Philistine said, I defy the armies of Israel this day; +give me a man, that we may fight together. + +17:11 When Saul and all Israel heard those words of the Philistine, +they were dismayed, and greatly afraid. + +17:12 Now David was the son of that Ephrathite of Bethlehemjudah, +whose name was Jesse; and he had eight sons: and the man went among +men for an old man in the days of Saul. + +17:13 And the three eldest sons of Jesse went and followed Saul to the +battle: and the names of his three sons that went to the battle were +Eliab the firstborn, and next unto him Abinadab, and the third +Shammah. + +17:14 And David was the youngest: and the three eldest followed Saul. + +17:15 But David went and returned from Saul to feed his father's sheep +at Bethlehem. + +17:16 And the Philistine drew near morning and evening, and presented +himself forty days. + +17:17 And Jesse said unto David his son, Take now for thy brethren an +ephah of this parched corn, and these ten loaves, and run to the camp +of thy brethren; 17:18 And carry these ten cheeses unto the captain of +their thousand, and look how thy brethren fare, and take their pledge. + +17:19 Now Saul, and they, and all the men of Israel, were in the +valley of Elah, fighting with the Philistines. + +17:20 And David rose up early in the morning, and left the sheep with +a keeper, and took, and went, as Jesse had commanded him; and he came +to the trench, as the host was going forth to the fight, and shouted +for the battle. + +17:21 For Israel and the Philistines had put the battle in array, army +against army. + +17:22 And David left his carriage in the hand of the keeper of the +carriage, and ran into the army, and came and saluted his brethren. + +17:23 And as he talked with them, behold, there came up the champion, +the Philistine of Gath, Goliath by name, out of the armies of the +Philistines, and spake according to the same words: and David heard +them. + +17:24 And all the men of Israel, when they saw the man, fled from him, +and were sore afraid. + +17:25 And the men of Israel said, Have ye seen this man that is come +up? surely to defy Israel is he come up: and it shall be, that the +man who killeth him, the king will enrich him with great riches, and +will give him his daughter, and make his father's house free in +Israel. + +17:26 And David spake to the men that stood by him, saying, What shall +be done to the man that killeth this Philistine, and taketh away the +reproach from Israel? for who is this uncircumcised Philistine, that +he should defy the armies of the living God? 17:27 And the people +answered him after this manner, saying, So shall it be done to the man +that killeth him. + +17:28 And Eliab his eldest brother heard when he spake unto the men; +and Eliab's anger was kindled against David, and he said, Why camest +thou down hither? and with whom hast thou left those few sheep in the +wilderness? I know thy pride, and the naughtiness of thine heart; for +thou art come down that thou mightest see the battle. + +17:29 And David said, What have I now done? Is there not a cause? +17:30 And he turned from him toward another, and spake after the same +manner: and the people answered him again after the former manner. + +17:31 And when the words were heard which David spake, they rehearsed +them before Saul: and he sent for him. + +17:32 And David said to Saul, Let no man's heart fail because of him; +thy servant will go and fight with this Philistine. + +17:33 And Saul said to David, Thou art not able to go against this +Philistine to fight with him: for thou art but a youth, and he a man +of war from his youth. + +17:34 And David said unto Saul, Thy servant kept his father's sheep, +and there came a lion, and a bear, and took a lamb out of the flock: +17:35 And I went out after him, and smote him, and delivered it out of +his mouth: and when he arose against me, I caught him by his beard, +and smote him, and slew him. + +17:36 Thy servant slew both the lion and the bear: and this +uncircumcised Philistine shall be as one of them, seeing he hath +defied the armies of the living God. + +17:37 David said moreover, The LORD that delivered me out of the paw +of the lion, and out of the paw of the bear, he will deliver me out of +the hand of this Philistine. And Saul said unto David, Go, and the +LORD be with thee. + +17:38 And Saul armed David with his armour, and he put an helmet of +brass upon his head; also he armed him with a coat of mail. + +17:39 And David girded his sword upon his armour, and he assayed to +go; for he had not proved it. And David said unto Saul, I cannot go +with these; for I have not proved them. And David put them off him. + +17:40 And he took his staff in his hand, and chose him five smooth +stones out of the brook, and put them in a shepherd's bag which he +had, even in a scrip; and his sling was in his hand: and he drew near +to the Philistine. + +17:41 And the Philistine came on and drew near unto David; and the man +that bare the shield went before him. + +17:42 And when the Philistine looked about, and saw David, he +disdained him: for he was but a youth, and ruddy, and of a fair +countenance. + +17:43 And the Philistine said unto David, Am I a dog, that thou comest +to me with staves? And the Philistine cursed David by his gods. + +17:44 And the Philistine said to David, Come to me, and I will give +thy flesh unto the fowls of the air, and to the beasts of the field. + +17:45 Then said David to the Philistine, Thou comest to me with a +sword, and with a spear, and with a shield: but I come to thee in the +name of the LORD of hosts, the God of the armies of Israel, whom thou +hast defied. + +17:46 This day will the LORD deliver thee into mine hand; and I will +smite thee, and take thine head from thee; and I will give the +carcases of the host of the Philistines this day unto the fowls of the +air, and to the wild beasts of the earth; that all the earth may know +that there is a God in Israel. + +17:47 And all this assembly shall know that the LORD saveth not with +sword and spear: for the battle is the LORD's, and he will give you +into our hands. + +17:48 And it came to pass, when the Philistine arose, and came, and +drew nigh to meet David, that David hastened, and ran toward the army +to meet the Philistine. + +17:49 And David put his hand in his bag, and took thence a stone, and +slang it, and smote the Philistine in his forehead, that the stone +sunk into his forehead; and he fell upon his face to the earth. + +17:50 So David prevailed over the Philistine with a sling and with a +stone, and smote the Philistine, and slew him; but there was no sword +in the hand of David. + +17:51 Therefore David ran, and stood upon the Philistine, and took his +sword, and drew it out of the sheath thereof, and slew him, and cut +off his head therewith. And when the Philistines saw their champion +was dead, they fled. + +17:52 And the men of Israel and of Judah arose, and shouted, and +pursued the Philistines, until thou come to the valley, and to the +gates of Ekron. + +And the wounded of the Philistines fell down by the way to Shaaraim, +even unto Gath, and unto Ekron. + +17:53 And the children of Israel returned from chasing after the +Philistines, and they spoiled their tents. + +17:54 And David took the head of the Philistine, and brought it to +Jerusalem; but he put his armour in his tent. + +17:55 And when Saul saw David go forth against the Philistine, he said +unto Abner, the captain of the host, Abner, whose son is this youth? +And Abner said, As thy soul liveth, O king, I cannot tell. + +17:56 And the king said, Enquire thou whose son the stripling is. + +17:57 And as David returned from the slaughter of the Philistine, +Abner took him, and brought him before Saul with the head of the +Philistine in his hand. + +17:58 And Saul said to him, Whose son art thou, thou young man? And +David answered, I am the son of thy servant Jesse the Bethlehemite. + +18:1 And it came to pass, when he had made an end of speaking unto +Saul, that the soul of Jonathan was knit with the soul of David, and +Jonathan loved him as his own soul. + +18:2 And Saul took him that day, and would let him go no more home to +his father's house. + +18:3 Then Jonathan and David made a covenant, because he loved him as +his own soul. + +18:4 And Jonathan stripped himself of the robe that was upon him, and +gave it to David, and his garments, even to his sword, and to his bow, +and to his girdle. + +18:5 And David went out whithersoever Saul sent him, and behaved +himself wisely: and Saul set him over the men of war, and he was +accepted in the sight of all the people, and also in the sight of +Saul's servants. + +18:6 And it came to pass as they came, when David was returned from +the slaughter of the Philistine, that the women came out of all cities +of Israel, singing and dancing, to meet king Saul, with tabrets, with +joy, and with instruments of musick. + +18:7 And the women answered one another as they played, and said, Saul +hath slain his thousands, and David his ten thousands. + +18:8 And Saul was very wroth, and the saying displeased him; and he +said, They have ascribed unto David ten thousands, and to me they have +ascribed but thousands: and what can he have more but the kingdom? +18:9 And Saul eyed David from that day and forward. + +18:10 And it came to pass on the morrow, that the evil spirit from God +came upon Saul, and he prophesied in the midst of the house: and David +played with his hand, as at other times: and there was a javelin in +Saul's hand. + +18:11 And Saul cast the javelin; for he said, I will smite David even +to the wall with it. And David avoided out of his presence twice. + +18:12 And Saul was afraid of David, because the LORD was with him, and +was departed from Saul. + +18:13 Therefore Saul removed him from him, and made him his captain +over a thousand; and he went out and came in before the people. + +18:14 And David behaved himself wisely in all his ways; and the LORD +was with him. + +18:15 Wherefore when Saul saw that he behaved himself very wisely, he +was afraid of him. + +18:16 But all Israel and Judah loved David, because he went out and +came in before them. + +18:17 And Saul said to David, Behold my elder daughter Merab, her will +I give thee to wife: only be thou valiant for me, and fight the LORD's +battles. + +For Saul said, Let not mine hand be upon him, but let the hand of the +Philistines be upon him. + +18:18 And David said unto Saul, Who am I? and what is my life, or my +father's family in Israel, that I should be son in law to the king? +18:19 But it came to pass at the time when Merab Saul's daughter +should have been given to David, that she was given unto Adriel the +Meholathite to wife. + +18:20 And Michal Saul's daughter loved David: and they told Saul, and +the thing pleased him. + +18:21 And Saul said, I will give him her, that she may be a snare to +him, and that the hand of the Philistines may be against him. +Wherefore Saul said to David, Thou shalt this day be my son in law in +the one of the twain. + +18:22 And Saul commanded his servants, saying, Commune with David +secretly, and say, Behold, the king hath delight in thee, and all his +servants love thee: now therefore be the king's son in law. + +18:23 And Saul's servants spake those words in the ears of David. And +David said, Seemeth it to you a light thing to be a king's son in law, +seeing that I am a poor man, and lightly esteemed? 18:24 And the +servants of Saul told him, saying, On this manner spake David. + +18:25 And Saul said, Thus shall ye say to David, The king desireth not +any dowry, but an hundred foreskins of the Philistines, to be avenged +of the king's enemies. But Saul thought to make David fall by the hand +of the Philistines. + +18:26 And when his servants told David these words, it pleased David +well to be the king's son in law: and the days were not expired. + +18:27 Wherefore David arose and went, he and his men, and slew of the +Philistines two hundred men; and David brought their foreskins, and +they gave them in full tale to the king, that he might be the king's +son in law. And Saul gave him Michal his daughter to wife. + +18:28 And Saul saw and knew that the LORD was with David, and that +Michal Saul's daughter loved him. + +18:29 And Saul was yet the more afraid of David; and Saul became +David's enemy continually. + +18:30 Then the princes of the Philistines went forth: and it came to +pass, after they went forth, that David behaved himself more wisely +than all the servants of Saul; so that his name was much set by. + +19:1 And Saul spake to Jonathan his son, and to all his servants, that +they should kill David. + +19:2 But Jonathan Saul's son delighted much in David: and Jonathan +told David, saying, Saul my father seeketh to kill thee: now +therefore, I pray thee, take heed to thyself until the morning, and +abide in a secret place, and hide thyself: 19:3 And I will go out and +stand beside my father in the field where thou art, and I will commune +with my father of thee; and what I see, that I will tell thee. + +19:4 And Jonathan spake good of David unto Saul his father, and said +unto him, Let not the king sin against his servant, against David; +because he hath not sinned against thee, and because his works have +been to thee-ward very good: 19:5 For he did put his life in his hand, +and slew the Philistine, and the LORD wrought a great salvation for +all Israel: thou sawest it, and didst rejoice: wherefore then wilt +thou sin against innocent blood, to slay David without a cause? 19:6 +And Saul hearkened unto the voice of Jonathan: and Saul sware, As the +LORD liveth, he shall not be slain. + +19:7 And Jonathan called David, and Jonathan shewed him all those +things. + +And Jonathan brought David to Saul, and he was in his presence, as in +times past. + +19:8 And there was war again: and David went out, and fought with the +Philistines, and slew them with a great slaughter; and they fled from +him. + +19:9 And the evil spirit from the LORD was upon Saul, as he sat in his +house with his javelin in his hand: and David played with his hand. + +19:10 And Saul sought to smite David even to the wall with the +javelin: but he slipped away out of Saul's presence, and he smote the +javelin into the wall: and David fled, and escaped that night. + +19:11 Saul also sent messengers unto David's house, to watch him, and +to slay him in the morning: and Michal David's wife told him, saying, +If thou save not thy life to night, to morrow thou shalt be slain. + +19:12 So Michal let David down through a window: and he went, and +fled, and escaped. + +19:13 And Michal took an image, and laid it in the bed, and put a +pillow of goats' hair for his bolster, and covered it with a cloth. + +19:14 And when Saul sent messengers to take David, she said, He is +sick. + +19:15 And Saul sent the messengers again to see David, saying, Bring +him up to me in the bed, that I may slay him. + +19:16 And when the messengers were come in, behold, there was an image +in the bed, with a pillow of goats' hair for his bolster. + +19:17 And Saul said unto Michal, Why hast thou deceived me so, and +sent away mine enemy, that he is escaped? And Michal answered Saul, He +said unto me, Let me go; why should I kill thee? 19:18 So David fled, +and escaped, and came to Samuel to Ramah, and told him all that Saul +had done to him. And he and Samuel went and dwelt in Naioth. + +19:19 And it was told Saul, saying, Behold, David is at Naioth in +Ramah. + +19:20 And Saul sent messengers to take David: and when they saw the +company of the prophets prophesying, and Samuel standing as appointed +over them, the Spirit of God was upon the messengers of Saul, and they +also prophesied. + +19:21 And when it was told Saul, he sent other messengers, and they +prophesied likewise. And Saul sent messengers again the third time, +and they prophesied also. + +19:22 Then went he also to Ramah, and came to a great well that is in +Sechu: and he asked and said, Where are Samuel and David? And one +said, Behold, they be at Naioth in Ramah. + +19:23 And he went thither to Naioth in Ramah: and the Spirit of God +was upon him also, and he went on, and prophesied, until he came to +Naioth in Ramah. + +19:24 And he stripped off his clothes also, and prophesied before +Samuel in like manner, and lay down naked all that day and all that +night. Wherefore they say, Is Saul also among the prophets? 20:1 And +David fled from Naioth in Ramah, and came and said before Jonathan, +What have I done? what is mine iniquity? and what is my sin before thy +father, that he seeketh my life? 20:2 And he said unto him, God +forbid; thou shalt not die: behold, my father will do nothing either +great or small, but that he will shew it me: and why should my father +hide this thing from me? it is not so. + +20:3 And David sware moreover, and said, Thy father certainly knoweth +that I have found grace in thine eyes; and he saith, Let not Jonathan +know this, lest he be grieved: but truly as the LORD liveth, and as +thy soul liveth, there is but a step between me and death. + +20:4 Then said Jonathan unto David, Whatsoever thy soul desireth, I +will even do it for thee. + +20:5 And David said unto Jonathan, Behold, to morrow is the new moon, +and I should not fail to sit with the king at meat: but let me go, +that I may hide myself in the field unto the third day at even. + +20:6 If thy father at all miss me, then say, David earnestly asked +leave of me that he might run to Bethlehem his city: for there is a +yearly sacrifice there for all the family. + +20:7 If he say thus, It is well; thy servant shall have peace: but if +he be very wroth, then be sure that evil is determined by him. + +20:8 Therefore thou shalt deal kindly with thy servant; for thou hast +brought thy servant into a covenant of the LORD with thee: +notwithstanding, if there be in me iniquity, slay me thyself; for why +shouldest thou bring me to thy father? 20:9 And Jonathan said, Far be +it from thee: for if I knew certainly that evil were determined by my +father to come upon thee, then would not I tell it thee? 20:10 Then +said David to Jonathan, Who shall tell me? or what if thy father +answer thee roughly? 20:11 And Jonathan said unto David, Come, and +let us go out into the field. And they went out both of them into the +field. + +20:12 And Jonathan said unto David, O LORD God of Israel, when I have +sounded my father about to morrow any time, or the third day, and, +behold, if there be good toward David, and I then send not unto thee, +and shew it thee; 20:13 The LORD do so and much more to Jonathan: but +if it please my father to do thee evil, then I will shew it thee, and +send thee away, that thou mayest go in peace: and the LORD be with +thee, as he hath been with my father. + +20:14 And thou shalt not only while yet I live shew me the kindness of +the LORD, that I die not: 20:15 But also thou shalt not cut off thy +kindness from my house for ever: no, not when the LORD hath cut off +the enemies of David every one from the face of the earth. + +20:16 So Jonathan made a covenant with the house of David, saying, Let +the LORD even require it at the hand of David's enemies. + +20:17 And Jonathan caused David to swear again, because he loved him: +for he loved him as he loved his own soul. + +20:18 Then Jonathan said to David, To morrow is the new moon: and thou +shalt be missed, because thy seat will be empty. + +20:19 And when thou hast stayed three days, then thou shalt go down +quickly, and come to the place where thou didst hide thyself when the +business was in hand, and shalt remain by the stone Ezel. + +20:20 And I will shoot three arrows on the side thereof, as though I +shot at a mark. + +20:21 And, behold, I will send a lad, saying, Go, find out the arrows. +If I expressly say unto the lad, Behold, the arrows are on this side +of thee, take them; then come thou: for there is peace to thee, and no +hurt; as the LORD liveth. + +20:22 But if I say thus unto the young man, Behold, the arrows are +beyond thee; go thy way: for the LORD hath sent thee away. + +20:23 And as touching the matter which thou and I have spoken of, +behold, the LORD be between thee and me for ever. + +20:24 So David hid himself in the field: and when the new moon was +come, the king sat him down to eat meat. + +20:25 And the king sat upon his seat, as at other times, even upon a +seat by the wall: and Jonathan arose, and Abner sat by Saul's side, +and David's place was empty. + +20:26 Nevertheless Saul spake not any thing that day: for he thought, +Something hath befallen him, he is not clean; surely he is not clean. + +20:27 And it came to pass on the morrow, which was the second day of +the month, that David's place was empty: and Saul said unto Jonathan +his son, Wherefore cometh not the son of Jesse to meat, neither +yesterday, nor to day? 20:28 And Jonathan answered Saul, David +earnestly asked leave of me to go to Bethlehem: 20:29 And he said, Let +me go, I pray thee; for our family hath a sacrifice in the city; and +my brother, he hath commanded me to be there: and now, if I have found +favour in thine eyes, let me get away, I pray thee, and see my +brethren. Therefore he cometh not unto the king's table. + +20:30 Then Saul's anger was kindled against Jonathan, and he said unto +him, Thou son of the perverse rebellious woman, do not I know that +thou hast chosen the son of Jesse to thine own confusion, and unto the +confusion of thy mother's nakedness? 20:31 For as long as the son of +Jesse liveth upon the ground, thou shalt not be established, nor thy +kingdom. Wherefore now send and fetch him unto me, for he shall surely +die. + +20:32 And Jonathan answered Saul his father, and said unto him, +Wherefore shall he be slain? what hath he done? 20:33 And Saul cast a +javelin at him to smite him: whereby Jonathan knew that it was +determined of his father to slay David. + +20:34 So Jonathan arose from the table in fierce anger, and did eat no +meat the second day of the month: for he was grieved for David, +because his father had done him shame. + +20:35 And it came to pass in the morning, that Jonathan went out into +the field at the time appointed with David, and a little lad with him. + +20:36 And he said unto his lad, Run, find out now the arrows which I +shoot. And as the lad ran, he shot an arrow beyond him. + +20:37 And when the lad was come to the place of the arrow which +Jonathan had shot, Jonathan cried after the lad, and said, Is not the +arrow beyond thee? 20:38 And Jonathan cried after the lad, Make +speed, haste, stay not. And Jonathan's lad gathered up the arrows, and +came to his master. + +20:39 But the lad knew not any thing: only Jonathan and David knew the +matter. + +20:40 And Jonathan gave his artillery unto his lad, and said unto him, +Go, carry them to the city. + +20:41 And as soon as the lad was gone, David arose out of a place +toward the south, and fell on his face to the ground, and bowed +himself three times: and they kissed one another, and wept one with +another, until David exceeded. + +20:42 And Jonathan said to David, Go in peace, forasmuch as we have +sworn both of us in the name of the LORD, saying, The LORD be between +me and thee, and between my seed and thy seed for ever. And he arose +and departed: and Jonathan went into the city. + +21:1 Then came David to Nob to Ahimelech the priest: and Ahimelech was +afraid at the meeting of David, and said unto him, Why art thou alone, +and no man with thee? 21:2 And David said unto Ahimelech the priest, +The king hath commanded me a business, and hath said unto me, Let no +man know any thing of the business whereabout I send thee, and what I +have commanded thee: and I have appointed my servants to such and such +a place. + +21:3 Now therefore what is under thine hand? give me five loaves of +bread in mine hand, or what there is present. + +21:4 And the priest answered David, and said, There is no common bread +under mine hand, but there is hallowed bread; if the young men have +kept themselves at least from women. + +21:5 And David answered the priest, and said unto him, Of a truth +women have been kept from us about these three days, since I came out, +and the vessels of the young men are holy, and the bread is in a +manner common, yea, though it were sanctified this day in the vessel. + +21:6 So the priest gave him hallowed bread: for there was no bread +there but the shewbread, that was taken from before the LORD, to put +hot bread in the day when it was taken away. + +21:7 Now a certain man of the servants of Saul was there that day, +detained before the LORD; and his name was Doeg, an Edomite, the +chiefest of the herdmen that belonged to Saul. + +21:8 And David said unto Ahimelech, And is there not here under thine +hand spear or sword? for I have neither brought my sword nor my +weapons with me, because the king's business required haste. + +21:9 And the priest said, The sword of Goliath the Philistine, whom +thou slewest in the valley of Elah, behold, it is here wrapped in a +cloth behind the ephod: if thou wilt take that, take it: for there is +no other save that here. And David said, There is none like that; give +it me. + +21:10 And David arose and fled that day for fear of Saul, and went to +Achish the king of Gath. + +21:11 And the servants of Achish said unto him, Is not this David the +king of the land? did they not sing one to another of him in dances, +saying, Saul hath slain his thousands, and David his ten thousands? +21:12 And David laid up these words in his heart, and was sore afraid +of Achish the king of Gath. + +21:13 And he changed his behaviour before them, and feigned himself +mad in their hands, and scrabbled on the doors of the gate, and let +his spittle fall down upon his beard. + +21:14 Then said Achish unto his servants, Lo, ye see the man is mad: +wherefore then have ye brought him to me? 21:15 Have I need of mad +men, that ye have brought this fellow to play the mad man in my +presence? shall this fellow come into my house? 22:1 David therefore +departed thence, and escaped to the cave Adullam: and when his +brethren and all his father's house heard it, they went down thither +to him. + +22:2 And every one that was in distress, and every one that was in +debt, and every one that was discontented, gathered themselves unto +him; and he became a captain over them: and there were with him about +four hundred men. + +22:3 And David went thence to Mizpeh of Moab: and he said unto the +king of Moab, Let my father and my mother, I pray thee, come forth, +and be with you, till I know what God will do for me. + +22:4 And he brought them before the king of Moab: and they dwelt with +him all the while that David was in the hold. + +22:5 And the prophet Gad said unto David, Abide not in the hold; +depart, and get thee into the land of Judah. Then David departed, and +came into the forest of Hareth. + +22:6 When Saul heard that David was discovered, and the men that were +with him, (now Saul abode in Gibeah under a tree in Ramah, having his +spear in his hand, and all his servants were standing about him;) 22:7 +Then Saul said unto his servants that stood about him, Hear now, ye +Benjamites; will the son of Jesse give every one of you fields and +vineyards, and make you all captains of thousands, and captains of +hundreds; 22:8 That all of you have conspired against me, and there is +none that sheweth me that my son hath made a league with the son of +Jesse, and there is none of you that is sorry for me, or sheweth unto +me that my son hath stirred up my servant against me, to lie in wait, +as at this day? 22:9 Then answered Doeg the Edomite, which was set +over the servants of Saul, and said, I saw the son of Jesse coming to +Nob, to Ahimelech the son of Ahitub. + +22:10 And he enquired of the LORD for him, and gave him victuals, and +gave him the sword of Goliath the Philistine. + +22:11 Then the king sent to call Ahimelech the priest, the son of +Ahitub, and all his father's house, the priests that were in Nob: and +they came all of them to the king. + +22:12 And Saul said, Hear now, thou son of Ahitub. And he answered, +Here I am, my lord. + +22:13 And Saul said unto him, Why have ye conspired against me, thou +and the son of Jesse, in that thou hast given him bread, and a sword, +and hast enquired of God for him, that he should rise against me, to +lie in wait, as at this day? 22:14 Then Ahimelech answered the king, +and said, And who is so faithful among all thy servants as David, +which is the king's son in law, and goeth at thy bidding, and is +honourable in thine house? 22:15 Did I then begin to enquire of God +for him? be it far from me: let not the king impute any thing unto his +servant, nor to all the house of my father: for thy servant knew +nothing of all this, less or more. + +22:16 And the king said, Thou shalt surely die, Ahimelech, thou, and +all thy father's house. + +22:17 And the king said unto the footmen that stood about him, Turn, +and slay the priests of the LORD: because their hand also is with +David, and because they knew when he fled, and did not shew it to me. +But the servants of the king would not put forth their hand to fall +upon the priests of the LORD. + +22:18 And the king said to Doeg, Turn thou, and fall upon the priests. +And Doeg the Edomite turned, and he fell upon the priests, and slew on +that day fourscore and five persons that did wear a linen ephod. + +22:19 And Nob, the city of the priests, smote he with the edge of the +sword, both men and women, children and sucklings, and oxen, and +asses, and sheep, with the edge of the sword. + +22:20 And one of the sons of Ahimelech the son of Ahitub, named +Abiathar, escaped, and fled after David. + +22:21 And Abiathar shewed David that Saul had slain the LORD's +priests. + +22:22 And David said unto Abiathar, I knew it that day, when Doeg the +Edomite was there, that he would surely tell Saul: I have occasioned +the death of all the persons of thy father's house. + +22:23 Abide thou with me, fear not: for he that seeketh my life +seeketh thy life: but with me thou shalt be in safeguard. + +23:1 Then they told David, saying, Behold, the Philistines fight +against Keilah, and they rob the threshingfloors. + +23:2 Therefore David enquired of the LORD, saying, Shall I go and +smite these Philistines? And the LORD said unto David, Go, and smite +the Philistines, and save Keilah. + +23:3 And David's men said unto him, Behold, we be afraid here in +Judah: how much more then if we come to Keilah against the armies of +the Philistines? 23:4 Then David enquired of the LORD yet again. And +the LORD answered him and said, Arise, go down to Keilah; for I will +deliver the Philistines into thine hand. + +23:5 So David and his men went to Keilah, and fought with the +Philistines, and brought away their cattle, and smote them with a +great slaughter. So David saved the inhabitants of Keilah. + +23:6 And it came to pass, when Abiathar the son of Ahimelech fled to +David to Keilah, that he came down with an ephod in his hand. + +23:7 And it was told Saul that David was come to Keilah. And Saul +said, God hath delivered him into mine hand; for he is shut in, by +entering into a town that hath gates and bars. + +23:8 And Saul called all the people together to war, to go down to +Keilah, to besiege David and his men. + +23:9 And David knew that Saul secretly practised mischief against him; +and he said to Abiathar the priest, Bring hither the ephod. + +23:10 Then said David, O LORD God of Israel, thy servant hath +certainly heard that Saul seeketh to come to Keilah, to destroy the +city for my sake. + +23:11 Will the men of Keilah deliver me up into his hand? will Saul +come down, as thy servant hath heard? O LORD God of Israel, I beseech +thee, tell thy servant. And the LORD said, He will come down. + +23:12 Then said David, Will the men of Keilah deliver me and my men +into the hand of Saul? And the LORD said, They will deliver thee up. + +23:13 Then David and his men, which were about six hundred, arose and +departed out of Keilah, and went whithersoever they could go. And it +was told Saul that David was escaped from Keilah; and he forbare to go +forth. + +23:14 And David abode in the wilderness in strong holds, and remained +in a mountain in the wilderness of Ziph. And Saul sought him every +day, but God delivered him not into his hand. + +23:15 And David saw that Saul was come out to seek his life: and David +was in the wilderness of Ziph in a wood. + +23:16 And Jonathan Saul's son arose, and went to David into the wood, +and strengthened his hand in God. + +23:17 And he said unto him, Fear not: for the hand of Saul my father +shall not find thee; and thou shalt be king over Israel, and I shall +be next unto thee; and that also Saul my father knoweth. + +23:18 And they two made a covenant before the LORD: and David abode in +the wood, and Jonathan went to his house. + +23:19 Then came up the Ziphites to Saul to Gibeah, saying, Doth not +David hide himself with us in strong holds in the wood, in the hill of +Hachilah, which is on the south of Jeshimon? 23:20 Now therefore, O +king, come down according to all the desire of thy soul to come down; +and our part shall be to deliver him into the king's hand. + +23:21 And Saul said, Blessed be ye of the LORD; for ye have compassion +on me. + +23:22 Go, I pray you, prepare yet, and know and see his place where +his haunt is, and who hath seen him there: for it is told me that he +dealeth very subtilly. + +23:23 See therefore, and take knowledge of all the lurking places +where he hideth himself, and come ye again to me with the certainty, +and I will go with you: and it shall come to pass, if he be in the +land, that I will search him out throughout all the thousands of +Judah. + +23:24 And they arose, and went to Ziph before Saul: but David and his +men were in the wilderness of Maon, in the plain on the south of +Jeshimon. + +23:25 Saul also and his men went to seek him. And they told David; +wherefore he came down into a rock, and abode in the wilderness of +Maon. And when Saul heard that, he pursued after David in the +wilderness of Maon. + +23:26 And Saul went on this side of the mountain, and David and his +men on that side of the mountain: and David made haste to get away for +fear of Saul; for Saul and his men compassed David and his men round +about to take them. + +23:27 But there came a messenger unto Saul, saying, Haste thee, and +come; for the Philistines have invaded the land. + +23:28 Wherefore Saul returned from pursuing after David, and went +against the Philistines: therefore they called that place +Selahammahlekoth. + +23:29 And David went up from thence, and dwelt in strong holds at +Engedi. + +24:1 And it came to pass, when Saul was returned from following the +Philistines, that it was told him, saying, Behold, David is in the +wilderness of Engedi. + +24:2 Then Saul took three thousand chosen men out of all Israel, and +went to seek David and his men upon the rocks of the wild goats. + +24:3 And he came to the sheepcotes by the way, where was a cave; and +Saul went in to cover his feet: and David and his men remained in the +sides of the cave. + +24:4 And the men of David said unto him, Behold the day of which the +LORD said unto thee, Behold, I will deliver thine enemy into thine +hand, that thou mayest do to him as it shall seem good unto thee. Then +David arose, and cut off the skirt of Saul's robe privily. + +24:5 And it came to pass afterward, that David's heart smote him, +because he had cut off Saul's skirt. + +24:6 And he said unto his men, The LORD forbid that I should do this +thing unto my master, the LORD's anointed, to stretch forth mine hand +against him, seeing he is the anointed of the LORD. + +24:7 So David stayed his servants with these words, and suffered them +not to rise against Saul. But Saul rose up out of the cave, and went +on his way. + +24:8 David also arose afterward, and went out of the cave, and cried +after Saul, saying, My lord the king. And when Saul looked behind him, +David stooped with his face to the earth, and bowed himself. + +24:9 And David said to Saul, Wherefore hearest thou men's words, +saying, Behold, David seeketh thy hurt? 24:10 Behold, this day thine +eyes have seen how that the LORD had delivered thee to day into mine +hand in the cave: and some bade me kill thee: but mine eye spared +thee; and I said, I will not put forth mine hand against my lord; for +he is the LORD's anointed. + +24:11 Moreover, my father, see, yea, see the skirt of thy robe in my +hand: for in that I cut off the skirt of thy robe, and killed thee +not, know thou and see that there is neither evil nor transgression in +mine hand, and I have not sinned against thee; yet thou huntest my +soul to take it. + +24:12 The LORD judge between me and thee, and the LORD avenge me of +thee: but mine hand shall not be upon thee. + +24:13 As saith the proverb of the ancients, Wickedness proceedeth from +the wicked: but mine hand shall not be upon thee. + +24:14 After whom is the king of Israel come out? after whom dost thou +pursue? after a dead dog, after a flea. + +24:15 The LORD therefore be judge, and judge between me and thee, and +see, and plead my cause, and deliver me out of thine hand. + +24:16 And it came to pass, when David had made an end of speaking +these words unto Saul, that Saul said, Is this thy voice, my son +David? And Saul lifted up his voice, and wept. + +24:17 And he said to David, Thou art more righteous than I: for thou +hast rewarded me good, whereas I have rewarded thee evil. + +24:18 And thou hast shewed this day how that thou hast dealt well with +me: forasmuch as when the LORD had delivered me into thine hand, thou +killedst me not. + +24:19 For if a man find his enemy, will he let him go well away? +wherefore the LORD reward thee good for that thou hast done unto me +this day. + +24:20 And now, behold, I know well that thou shalt surely be king, and +that the kingdom of Israel shall be established in thine hand. + +24:21 Swear now therefore unto me by the LORD, that thou wilt not cut +off my seed after me, and that thou wilt not destroy my name out of my +father's house. + +24:22 And David sware unto Saul. And Saul went home; but David and his +men gat them up unto the hold. + +25:1 And Samuel died; and all the Israelites were gathered together, +and lamented him, and buried him in his house at Ramah. And David +arose, and went down to the wilderness of Paran. + +25:2 And there was a man in Maon, whose possessions were in Carmel; +and the man was very great, and he had three thousand sheep, and a +thousand goats: and he was shearing his sheep in Carmel. + +25:3 Now the name of the man was Nabal; and the name of his wife +Abigail: and she was a woman of good understanding, and of a beautiful +countenance: but the man was churlish and evil in his doings; and he +was of the house of Caleb. + +25:4 And David heard in the wilderness that Nabal did shear his sheep. + +25:5 And David sent out ten young men, and David said unto the young +men, Get you up to Carmel, and go to Nabal, and greet him in my name: +25:6 And thus shall ye say to him that liveth in prosperity, Peace be +both to thee, and peace be to thine house, and peace be unto all that +thou hast. + +25:7 And now I have heard that thou hast shearers: now thy shepherds +which were with us, we hurt them not, neither was there ought missing +unto them, all the while they were in Carmel. + +25:8 Ask thy young men, and they will shew thee. Wherefore let the +young men find favour in thine eyes: for we come in a good day: give, +I pray thee, whatsoever cometh to thine hand unto thy servants, and to +thy son David. + +25:9 And when David's young men came, they spake to Nabal according to +all those words in the name of David, and ceased. + +25:10 And Nabal answered David's servants, and said, Who is David? and +who is the son of Jesse? there be many servants now a days that break +away every man from his master. + +25:11 Shall I then take my bread, and my water, and my flesh that I +have killed for my shearers, and give it unto men, whom I know not +whence they be? 25:12 So David's young men turned their way, and went +again, and came and told him all those sayings. + +25:13 And David said unto his men, Gird ye on every man his sword. And +they girded on every man his sword; and David also girded on his +sword: and there went up after David about four hundred men; and two +hundred abode by the stuff. + +25:14 But one of the young men told Abigail, Nabal's wife, saying, +Behold, David sent messengers out of the wilderness to salute our +master; and he railed on them. + +25:15 But the men were very good unto us, and we were not hurt, +neither missed we any thing, as long as we were conversant with them, +when we were in the fields: 25:16 They were a wall unto us both by +night and day, all the while we were with them keeping the sheep. + +25:17 Now therefore know and consider what thou wilt do; for evil is +determined against our master, and against all his household: for he +is such a son of Belial, that a man cannot speak to him. + +25:18 Then Abigail made haste, and took two hundred loaves, and two +bottles of wine, and five sheep ready dressed, and five measures of +parched corn, and an hundred clusters of raisins, and two hundred +cakes of figs, and laid them on asses. + +25:19 And she said unto her servants, Go on before me; behold, I come +after you. But she told not her husband Nabal. + +25:20 And it was so, as she rode on the ass, that she came down by the +covert on the hill, and, behold, David and his men came down against +her; and she met them. + +25:21 Now David had said, Surely in vain have I kept all that this +fellow hath in the wilderness, so that nothing was missed of all that +pertained unto him: and he hath requited me evil for good. + +25:22 So and more also do God unto the enemies of David, if I leave of +all that pertain to him by the morning light any that pisseth against +the wall. + +25:23 And when Abigail saw David, she hasted, and lighted off the ass, +and fell before David on her face, and bowed herself to the ground, +25:24 And fell at his feet, and said, Upon me, my lord, upon me let +this iniquity be: and let thine handmaid, I pray thee, speak in thine +audience, and hear the words of thine handmaid. + +25:25 Let not my lord, I pray thee, regard this man of Belial, even +Nabal: for as his name is, so is he; Nabal is his name, and folly is +with him: but I thine handmaid saw not the young men of my lord, whom +thou didst send. + +25:26 Now therefore, my lord, as the LORD liveth, and as thy soul +liveth, seeing the LORD hath withholden thee from coming to shed +blood, and from avenging thyself with thine own hand, now let thine +enemies, and they that seek evil to my lord, be as Nabal. + +25:27 And now this blessing which thine handmaid hath brought unto my +lord, let it even be given unto the young men that follow my lord. + +25:28 I pray thee, forgive the trespass of thine handmaid: for the +LORD will certainly make my lord a sure house; because my lord +fighteth the battles of the LORD, and evil hath not been found in thee +all thy days. + +25:29 Yet a man is risen to pursue thee, and to seek thy soul: but the +soul of my lord shall be bound in the bundle of life with the LORD thy +God; and the souls of thine enemies, them shall he sling out, as out +of the middle of a sling. + +25:30 And it shall come to pass, when the LORD shall have done to my +lord according to all the good that he hath spoken concerning thee, +and shall have appointed thee ruler over Israel; 25:31 That this shall +be no grief unto thee, nor offence of heart unto my lord, either that +thou hast shed blood causeless, or that my lord hath avenged himself: +but when the LORD shall have dealt well with my lord, then remember +thine handmaid. + +25:32 And David said to Abigail, Blessed be the LORD God of Israel, +which sent thee this day to meet me: 25:33 And blessed be thy advice, +and blessed be thou, which hast kept me this day from coming to shed +blood, and from avenging myself with mine own hand. + +25:34 For in very deed, as the LORD God of Israel liveth, which hath +kept me back from hurting thee, except thou hadst hasted and come to +meet me, surely there had not been left unto Nabal by the morning +light any that pisseth against the wall. + +25:35 So David received of her hand that which she had brought him, +and said unto her, Go up in peace to thine house; see, I have +hearkened to thy voice, and have accepted thy person. + +25:36 And Abigail came to Nabal; and, behold, he held a feast in his +house, like the feast of a king; and Nabal's heart was merry within +him, for he was very drunken: wherefore she told him nothing, less or +more, until the morning light. + +25:37 But it came to pass in the morning, when the wine was gone out +of Nabal, and his wife had told him these things, that his heart died +within him, and he became as a stone. + +25:38 And it came to pass about ten days after, that the LORD smote +Nabal, that he died. + +25:39 And when David heard that Nabal was dead, he said, Blessed be +the LORD, that hath pleaded the cause of my reproach from the hand of +Nabal, and hath kept his servant from evil: for the LORD hath returned +the wickedness of Nabal upon his own head. And David sent and communed +with Abigail, to take her to him to wife. + +25:40 And when the servants of David were come to Abigail to Carmel, +they spake unto her, saying, David sent us unto thee, to take thee to +him to wife. + +25:41 And she arose, and bowed herself on her face to the earth, and +said, Behold, let thine handmaid be a servant to wash the feet of the +servants of my lord. + +25:42 And Abigail hasted, and arose and rode upon an ass, with five +damsels of hers that went after her; and she went after the messengers +of David, and became his wife. + +25:43 David also took Ahinoam of Jezreel; and they were also both of +them his wives. + +25:44 But Saul had given Michal his daughter, David's wife, to Phalti +the son of Laish, which was of Gallim. + +26:1 And the Ziphites came unto Saul to Gibeah, saying, Doth not David +hide himself in the hill of Hachilah, which is before Jeshimon? 26:2 +Then Saul arose, and went down to the wilderness of Ziph, having three +thousand chosen men of Israel with him, to seek David in the +wilderness of Ziph. + +26:3 And Saul pitched in the hill of Hachilah, which is before +Jeshimon, by the way. But David abode in the wilderness, and he saw +that Saul came after him into the wilderness. + +26:4 David therefore sent out spies, and understood that Saul was come +in very deed. + +26:5 And David arose, and came to the place where Saul had pitched: +and David beheld the place where Saul lay, and Abner the son of Ner, +the captain of his host: and Saul lay in the trench, and the people +pitched round about him. + +26:6 Then answered David and said to Ahimelech the Hittite, and to +Abishai the son of Zeruiah, brother to Joab, saying, Who will go down +with me to Saul to the camp? And Abishai said, I will go down with +thee. + +26:7 So David and Abishai came to the people by night: and, behold, +Saul lay sleeping within the trench, and his spear stuck in the ground +at his bolster: but Abner and the people lay round about him. + +26:8 Then said Abishai to David, God hath delivered thine enemy into +thine hand this day: now therefore let me smite him, I pray thee, with +the spear even to the earth at once, and I will not smite him the +second time. + +26:9 And David said to Abishai, Destroy him not: for who can stretch +forth his hand against the LORD's anointed, and be guiltless? 26:10 +David said furthermore, As the LORD liveth, the LORD shall smite him; +or his day shall come to die; or he shall descend into battle, and +perish. + +26:11 The LORD forbid that I should stretch forth mine hand against +the LORD's anointed: but, I pray thee, take thou now the spear that is +at his bolster, and the cruse of water, and let us go. + +26:12 So David took the spear and the cruse of water from Saul's +bolster; and they gat them away, and no man saw it, nor knew it, +neither awaked: for they were all asleep; because a deep sleep from +the LORD was fallen upon them. + +26:13 Then David went over to the other side, and stood on the top of +an hill afar off; a great space being between them: 26:14 And David +cried to the people, and to Abner the son of Ner, saying, Answerest +thou not, Abner? Then Abner answered and said, Who art thou that +criest to the king? 26:15 And David said to Abner, Art not thou a +valiant man? and who is like to thee in Israel? wherefore then hast +thou not kept thy lord the king? for there came one of the people in +to destroy the king thy lord. + +26:16 This thing is not good that thou hast done. As the LORD liveth, +ye are worthy to die, because ye have not kept your master, the LORD's +anointed. + +And now see where the king's spear is, and the cruse of water that was +at his bolster. + +26:17 And Saul knew David's voice, and said, Is this thy voice, my son +David? And David said, It is my voice, my lord, O king. + +26:18 And he said, Wherefore doth my lord thus pursue after his +servant? for what have I done? or what evil is in mine hand? 26:19 +Now therefore, I pray thee, let my lord the king hear the words of his +servant. If the LORD have stirred thee up against me, let him accept +an offering: but if they be the children of men, cursed be they before +the LORD; for they have driven me out this day from abiding in the +inheritance of the LORD, saying, Go, serve other gods. + +26:20 Now therefore, let not my blood fall to the earth before the +face of the LORD: for the king of Israel is come out to seek a flea, +as when one doth hunt a partridge in the mountains. + +26:21 Then said Saul, I have sinned: return, my son David: for I will +no more do thee harm, because my soul was precious in thine eyes this +day: behold, I have played the fool, and have erred exceedingly. + +26:22 And David answered and said, Behold the king's spear! and let +one of the young men come over and fetch it. + +26:23 The LORD render to every man his righteousness and his +faithfulness; for the LORD delivered thee into my hand to day, but I +would not stretch forth mine hand against the LORD's anointed. + +26:24 And, behold, as thy life was much set by this day in mine eyes, +so let my life be much set by in the eyes of the LORD, and let him +deliver me out of all tribulation. + +26:25 Then Saul said to David, Blessed be thou, my son David: thou +shalt both do great things, and also shalt still prevail. So David +went on his way, and Saul returned to his place. + +27:1 And David said in his heart, I shall now perish one day by the +hand of Saul: there is nothing better for me than that I should +speedily escape into the land of the Philistines; and Saul shall +despair of me, to seek me any more in any coast of Israel: so shall I +escape out of his hand. + +27:2 And David arose, and he passed over with the six hundred men that +were with him unto Achish, the son of Maoch, king of Gath. + +27:3 And David dwelt with Achish at Gath, he and his men, every man +with his household, even David with his two wives, Ahinoam the +Jezreelitess, and Abigail the Carmelitess, Nabal's wife. + +27:4 And it was told Saul that David was fled to Gath: and he sought +no more again for him. + +27:5 And David said unto Achish, If I have now found grace in thine +eyes, let them give me a place in some town in the country, that I may +dwell there: for why should thy servant dwell in the royal city with +thee? 27:6 Then Achish gave him Ziklag that day: wherefore Ziklag +pertaineth unto the kings of Judah unto this day. + +27:7 And the time that David dwelt in the country of the Philistines +was a full year and four months. + +27:8 And David and his men went up, and invaded the Geshurites, and +the Gezrites, and the Amalekites: for those nations were of old the +inhabitants of the land, as thou goest to Shur, even unto the land of +Egypt. + +27:9 And David smote the land, and left neither man nor woman alive, +and took away the sheep, and the oxen, and the asses, and the camels, +and the apparel, and returned, and came to Achish. + +27:10 And Achish said, Whither have ye made a road to day? And David +said, Against the south of Judah, and against the south of the +Jerahmeelites, and against the south of the Kenites. + +27:11 And David saved neither man nor woman alive, to bring tidings to +Gath, saying, Lest they should tell on us, saying, So did David, and +so will be his manner all the while he dwelleth in the country of the +Philistines. + +27:12 And Achish believed David, saying, He hath made his people +Israel utterly to abhor him; therefore he shall be my servant for +ever. + +28:1 And it came to pass in those days, that the Philistines gathered +their armies together for warfare, to fight with Israel. And Achish +said unto David, Know thou assuredly, that thou shalt go out with me +to battle, thou and thy men. + +28:2 And David said to Achish, Surely thou shalt know what thy servant +can do. And Achish said to David, Therefore will I make thee keeper of +mine head for ever. + +28:3 Now Samuel was dead, and all Israel had lamented him, and buried +him in Ramah, even in his own city. And Saul had put away those that +had familiar spirits, and the wizards, out of the land. + +28:4 And the Philistines gathered themselves together, and came and +pitched in Shunem: and Saul gathered all Israel together, and they +pitched in Gilboa. + +28:5 And when Saul saw the host of the Philistines, he was afraid, and +his heart greatly trembled. + +28:6 And when Saul enquired of the LORD, the LORD answered him not, +neither by dreams, nor by Urim, nor by prophets. + +28:7 Then said Saul unto his servants, Seek me a woman that hath a +familiar spirit, that I may go to her, and enquire of her. And his +servants said to him, Behold, there is a woman that hath a familiar +spirit at Endor. + +28:8 And Saul disguised himself, and put on other raiment, and he +went, and two men with him, and they came to the woman by night: and +he said, I pray thee, divine unto me by the familiar spirit, and bring +me him up, whom I shall name unto thee. + +28:9 And the woman said unto him, Behold, thou knowest what Saul hath +done, how he hath cut off those that have familiar spirits, and the +wizards, out of the land: wherefore then layest thou a snare for my +life, to cause me to die? 28:10 And Saul sware to her by the LORD, +saying, As the LORD liveth, there shall no punishment happen to thee +for this thing. + +28:11 Then said the woman, Whom shall I bring up unto thee? And he +said, Bring me up Samuel. + +28:12 And when the woman saw Samuel, she cried with a loud voice: and +the woman spake to Saul, saying, Why hast thou deceived me? for thou +art Saul. + +28:13 And the king said unto her, Be not afraid: for what sawest thou? +And the woman said unto Saul, I saw gods ascending out of the earth. + +28:14 And he said unto her, What form is he of? And she said, An old +man cometh up; and he is covered with a mantle. And Saul perceived +that it was Samuel, and he stooped with his face to the ground, and +bowed himself. + +28:15 And Samuel said to Saul, Why hast thou disquieted me, to bring +me up? And Saul answered, I am sore distressed; for the Philistines +make war against me, and God is departed from me, and answereth me no +more, neither by prophets, nor by dreams: therefore I have called +thee, that thou mayest make known unto me what I shall do. + +28:16 Then said Samuel, Wherefore then dost thou ask of me, seeing the +LORD is departed from thee, and is become thine enemy? 28:17 And the +LORD hath done to him, as he spake by me: for the LORD hath rent the +kingdom out of thine hand, and given it to thy neighbour, even to +David: 28:18 Because thou obeyedst not the voice of the LORD, nor +executedst his fierce wrath upon Amalek, therefore hath the LORD done +this thing unto thee this day. + +28:19 Moreover the LORD will also deliver Israel with thee into the +hand of the Philistines: and to morrow shalt thou and thy sons be with +me: the LORD also shall deliver the host of Israel into the hand of +the Philistines. + +28:20 Then Saul fell straightway all along on the earth, and was sore +afraid, because of the words of Samuel: and there was no strength in +him; for he had eaten no bread all the day, nor all the night. + +28:21 And the woman came unto Saul, and saw that he was sore troubled, +and said unto him, Behold, thine handmaid hath obeyed thy voice, and I +have put my life in my hand, and have hearkened unto thy words which +thou spakest unto me. + +28:22 Now therefore, I pray thee, hearken thou also unto the voice of +thine handmaid, and let me set a morsel of bread before thee; and eat, +that thou mayest have strength, when thou goest on thy way. + +28:23 But he refused, and said, I will not eat. But his servants, +together with the woman, compelled him; and he hearkened unto their +voice. So he arose from the earth, and sat upon the bed. + +28:24 And the woman had a fat calf in the house; and she hasted, and +killed it, and took flour, and kneaded it, and did bake unleavened +bread thereof: 28:25 And she brought it before Saul, and before his +servants; and they did eat. Then they rose up, and went away that +night. + +29:1 Now the Philistines gathered together all their armies to Aphek: +and the Israelites pitched by a fountain which is in Jezreel. + +29:2 And the lords of the Philistines passed on by hundreds, and by +thousands: but David and his men passed on in the rereward with +Achish. + +29:3 Then said the princes of the Philistines, What do these Hebrews +here? And Achish said unto the princes of the Philistines, Is not +this David, the servant of Saul the king of Israel, which hath been +with me these days, or these years, and I have found no fault in him +since he fell unto me unto this day? 29:4 And the princes of the +Philistines were wroth with him; and the princes of the Philistines +said unto him, Make this fellow return, that he may go again to his +place which thou hast appointed him, and let him not go down with us +to battle, lest in the battle he be an adversary to us: for wherewith +should he reconcile himself unto his master? should it not be with the +heads of these men? 29:5 Is not this David, of whom they sang one to +another in dances, saying, Saul slew his thousands, and David his ten +thousands? 29:6 Then Achish called David, and said unto him, Surely, +as the LORD liveth, thou hast been upright, and thy going out and thy +coming in with me in the host is good in my sight: for I have not +found evil in thee since the day of thy coming unto me unto this day: +nevertheless the lords favour thee not. + +29:7 Wherefore now return, and go in peace, that thou displease not +the lords of the Philistines. + +29:8 And David said unto Achish, But what have I done? and what hast +thou found in thy servant so long as I have been with thee unto this +day, that I may not go fight against the enemies of my lord the king? +29:9 And Achish answered and said to David, I know that thou art good +in my sight, as an angel of God: notwithstanding the princes of the +Philistines have said, He shall not go up with us to the battle. + +29:10 Wherefore now rise up early in the morning with thy master's +servants that are come with thee: and as soon as ye be up early in the +morning, and have light, depart. + +29:11 So David and his men rose up early to depart in the morning, to +return into the land of the Philistines. And the Philistines went up +to Jezreel. + +30:1 And it came to pass, when David and his men were come to Ziklag +on the third day, that the Amalekites had invaded the south, and +Ziklag, and smitten Ziklag, and burned it with fire; 30:2 And had +taken the women captives, that were therein: they slew not any, either +great or small, but carried them away, and went on their way. + +30:3 So David and his men came to the city, and, behold, it was burned +with fire; and their wives, and their sons, and their daughters, were +taken captives. + +30:4 Then David and the people that were with him lifted up their +voice and wept, until they had no more power to weep. + +30:5 And David's two wives were taken captives, Ahinoam the +Jezreelitess, and Abigail the wife of Nabal the Carmelite. + +30:6 And David was greatly distressed; for the people spake of stoning +him, because the soul of all the people was grieved, every man for his +sons and for his daughters: but David encouraged himself in the LORD +his God. + +30:7 And David said to Abiathar the priest, Ahimelech's son, I pray +thee, bring me hither the ephod. And Abiathar brought thither the +ephod to David. + +30:8 And David enquired at the LORD, saying, Shall I pursue after this +troop? shall I overtake them? And he answered him, Pursue: for thou +shalt surely overtake them, and without fail recover all. + +30:9 So David went, he and the six hundred men that were with him, and +came to the brook Besor, where those that were left behind stayed. + +30:10 But David pursued, he and four hundred men: for two hundred +abode behind, which were so faint that they could not go over the +brook Besor. + +30:11 And they found an Egyptian in the field, and brought him to +David, and gave him bread, and he did eat; and they made him drink +water; 30:12 And they gave him a piece of a cake of figs, and two +clusters of raisins: and when he had eaten, his spirit came again to +him: for he had eaten no bread, nor drunk any water, three days and +three nights. + +30:13 And David said unto him, To whom belongest thou? and whence art +thou? And he said, I am a young man of Egypt, servant to an Amalekite; +and my master left me, because three days agone I fell sick. + +30:14 We made an invasion upon the south of the Cherethites, and upon +the coast which belongeth to Judah, and upon the south of Caleb; and +we burned Ziklag with fire. + +30:15 And David said to him, Canst thou bring me down to this company? +And he said, Swear unto me by God, that thou wilt neither kill me, nor +deliver me into the hands of my master, and I will bring thee down to +this company. + +30:16 And when he had brought him down, behold, they were spread +abroad upon all the earth, eating and drinking, and dancing, because +of all the great spoil that they had taken out of the land of the +Philistines, and out of the land of Judah. + +30:17 And David smote them from the twilight even unto the evening of +the next day: and there escaped not a man of them, save four hundred +young men, which rode upon camels, and fled. + +30:18 And David recovered all that the Amalekites had carried away: +and David rescued his two wives. + +30:19 And there was nothing lacking to them, neither small nor great, +neither sons nor daughters, neither spoil, nor any thing that they had +taken to them: David recovered all. + +30:20 And David took all the flocks and the herds, which they drave +before those other cattle, and said, This is David's spoil. + +30:21 And David came to the two hundred men, which were so faint that +they could not follow David, whom they had made also to abide at the +brook Besor: and they went forth to meet David, and to meet the people +that were with him: and when David came near to the people, he saluted +them. + +30:22 Then answered all the wicked men and men of Belial, of those +that went with David, and said, Because they went not with us, we will +not give them ought of the spoil that we have recovered, save to every +man his wife and his children, that they may lead them away, and +depart. + +30:23 Then said David, Ye shall not do so, my brethren, with that +which the LORD hath given us, who hath preserved us, and delivered the +company that came against us into our hand. + +30:24 For who will hearken unto you in this matter? but as his part is +that goeth down to the battle, so shall his part be that tarrieth by +the stuff: they shall part alike. + +30:25 And it was so from that day forward, that he made it a statute +and an ordinance for Israel unto this day. + +30:26 And when David came to Ziklag, he sent of the spoil unto the +elders of Judah, even to his friends, saying, Behold a present for you +of the spoil of the enemies of the LORD; 30:27 To them which were in +Bethel, and to them which were in south Ramoth, and to them which were +in Jattir, 30:28 And to them which were in Aroer, and to them which +were in Siphmoth, and to them which were in Eshtemoa, 30:29 And to +them which were in Rachal, and to them which were in the cities of the +Jerahmeelites, and to them which were in the cities of the Kenites, +30:30 And to them which were in Hormah, and to them which were in +Chorashan, and to them which were in Athach, 30:31 And to them which +were in Hebron, and to all the places where David himself and his men +were wont to haunt. + +31:1 Now the Philistines fought against Israel: and the men of Israel +fled from before the Philistines, and fell down slain in mount Gilboa. + +31:2 And the Philistines followed hard upon Saul and upon his sons; +and the Philistines slew Jonathan, and Abinadab, and Melchishua, +Saul's sons. + +31:3 And the battle went sore against Saul, and the archers hit him; +and he was sore wounded of the archers. + +31:4 Then said Saul unto his armourbearer, Draw thy sword, and thrust +me through therewith; lest these uncircumcised come and thrust me +through, and abuse me. But his armourbearer would not; for he was sore +afraid. Therefore Saul took a sword, and fell upon it. + +31:5 And when his armourbearer saw that Saul was dead, he fell +likewise upon his sword, and died with him. + +31:6 So Saul died, and his three sons, and his armourbearer, and all +his men, that same day together. + +31:7 And when the men of Israel that were on the other side of the +valley, and they that were on the other side Jordan, saw that the men +of Israel fled, and that Saul and his sons were dead, they forsook the +cities, and fled; and the Philistines came and dwelt in them. + +31:8 And it came to pass on the morrow, when the Philistines came to +strip the slain, that they found Saul and his three sons fallen in +mount Gilboa. + +31:9 And they cut off his head, and stripped off his armour, and sent +into the land of the Philistines round about, to publish it in the +house of their idols, and among the people. + +31:10 And they put his armour in the house of Ashtaroth: and they +fastened his body to the wall of Bethshan. + +31:11 And when the inhabitants of Jabeshgilead heard of that which the +Philistines had done to Saul; 31:12 All the valiant men arose, and +went all night, and took the body of Saul and the bodies of his sons +from the wall of Bethshan, and came to Jabesh, and burnt them there. + +31:13 And they took their bones, and buried them under a tree at +Jabesh, and fasted seven days. + + + + +The Second Book of Samuel + +Otherwise Called: + +The Second Book of the Kings + + +1:1 Now it came to pass after the death of Saul, when David was +returned from the slaughter of the Amalekites, and David had abode two +days in Ziklag; 1:2 It came even to pass on the third day, that, +behold, a man came out of the camp from Saul with his clothes rent, +and earth upon his head: and so it was, when he came to David, that he +fell to the earth, and did obeisance. + +1:3 And David said unto him, From whence comest thou? And he said unto +him, Out of the camp of Israel am I escaped. + +1:4 And David said unto him, How went the matter? I pray thee, tell +me. + +And he answered, That the people are fled from the battle, and many of +the people also are fallen and dead; and Saul and Jonathan his son are +dead also. + +1:5 And David said unto the young man that told him, How knowest thou +that Saul and Jonathan his son be dead? 1:6 And the young man that +told him said, As I happened by chance upon mount Gilboa, behold, Saul +leaned upon his spear; and, lo, the chariots and horsemen followed +hard after him. + +1:7 And when he looked behind him, he saw me, and called unto me. And +I answered, Here am I. + +1:8 And he said unto me, Who art thou? And I answered him, I am an +Amalekite. + +1:9 He said unto me again, Stand, I pray thee, upon me, and slay me: +for anguish is come upon me, because my life is yet whole in me. + +1:10 So I stood upon him, and slew him, because I was sure that he +could not live after that he was fallen: and I took the crown that was +upon his head, and the bracelet that was on his arm, and have brought +them hither unto my lord. + +1:11 Then David took hold on his clothes, and rent them; and likewise +all the men that were with him: 1:12 And they mourned, and wept, and +fasted until even, for Saul, and for Jonathan his son, and for the +people of the LORD, and for the house of Israel; because they were +fallen by the sword. + +1:13 And David said unto the young man that told him, Whence art thou? +And he answered, I am the son of a stranger, an Amalekite. + +1:14 And David said unto him, How wast thou not afraid to stretch +forth thine hand to destroy the LORD's anointed? 1:15 And David +called one of the young men, and said, Go near, and fall upon him. And +he smote him that he died. + +1:16 And David said unto him, Thy blood be upon thy head; for thy +mouth hath testified against thee, saying, I have slain the LORD's +anointed. + +1:17 And David lamented with this lamentation over Saul and over +Jonathan his son: 1:18 (Also he bade them teach the children of Judah +the use of the bow: behold, it is written in the book of Jasher.) +1:19 The beauty of Israel is slain upon thy high places: how are the +mighty fallen! 1:20 Tell it not in Gath, publish it not in the +streets of Askelon; lest the daughters of the Philistines rejoice, +lest the daughters of the uncircumcised triumph. + +1:21 Ye mountains of Gilboa, let there be no dew, neither let there be +rain, upon you, nor fields of offerings: for there the shield of the +mighty is vilely cast away, the shield of Saul, as though he had not +been anointed with oil. + +1:22 From the blood of the slain, from the fat of the mighty, the bow +of Jonathan turned not back, and the sword of Saul returned not empty. + +1:23 Saul and Jonathan were lovely and pleasant in their lives, and in +their death they were not divided: they were swifter than eagles, they +were stronger than lions. + +1:24 Ye daughters of Israel, weep over Saul, who clothed you in +scarlet, with other delights, who put on ornaments of gold upon your +apparel. + +1:25 How are the mighty fallen in the midst of the battle! O Jonathan, +thou wast slain in thine high places. + +1:26 I am distressed for thee, my brother Jonathan: very pleasant hast +thou been unto me: thy love to me was wonderful, passing the love of +women. + +1:27 How are the mighty fallen, and the weapons of war perished! 2:1 +And it came to pass after this, that David enquired of the LORD, +saying, Shall I go up into any of the cities of Judah? And the LORD +said unto him, Go up. And David said, Whither shall I go up? And he +said, Unto Hebron. + +2:2 So David went up thither, and his two wives also, Ahinoam the +Jezreelitess, and Abigail Nabal's wife the Carmelite. + +2:3 And his men that were with him did David bring up, every man with +his household: and they dwelt in the cities of Hebron. + +2:4 And the men of Judah came, and there they anointed David king over +the house of Judah. And they told David, saying, That the men of +Jabeshgilead were they that buried Saul. + +2:5 And David sent messengers unto the men of Jabeshgilead, and said +unto them, Blessed be ye of the LORD, that ye have shewed this +kindness unto your lord, even unto Saul, and have buried him. + +2:6 And now the LORD shew kindness and truth unto you: and I also will +requite you this kindness, because ye have done this thing. + +2:7 Therefore now let your hands be strengthened, and be ye valiant: +for your master Saul is dead, and also the house of Judah have +anointed me king over them. + +2:8 But Abner the son of Ner, captain of Saul's host, took Ishbosheth +the son of Saul, and brought him over to Mahanaim; 2:9 And made him +king over Gilead, and over the Ashurites, and over Jezreel, and over +Ephraim, and over Benjamin, and over all Israel. + +2:10 Ishbosheth Saul's son was forty years old when he began to reign +over Israel, and reigned two years. But the house of Judah followed +David. + +2:11 And the time that David was king in Hebron over the house of +Judah was seven years and six months. + +2:12 And Abner the son of Ner, and the servants of Ishbosheth the son +of Saul, went out from Mahanaim to Gibeon. + +2:13 And Joab the son of Zeruiah, and the servants of David, went out, +and met together by the pool of Gibeon: and they sat down, the one on +the one side of the pool, and the other on the other side of the pool. + +2:14 And Abner said to Joab, Let the young men now arise, and play +before us. And Joab said, Let them arise. + +2:15 Then there arose and went over by number twelve of Benjamin, +which pertained to Ishbosheth the son of Saul, and twelve of the +servants of David. + +2:16 And they caught every one his fellow by the head, and thrust his +sword in his fellow's side; so they fell down together: wherefore that +place was called Helkathhazzurim, which is in Gibeon. + +2:17 And there was a very sore battle that day; and Abner was beaten, +and the men of Israel, before the servants of David. + +2:18 And there were three sons of Zeruiah there, Joab, and Abishai, +and Asahel: and Asahel was as light of foot as a wild roe. + +2:19 And Asahel pursued after Abner; and in going he turned not to the +right hand nor to the left from following Abner. + +2:20 Then Abner looked behind him, and said, Art thou Asahel? And he +answered, I am. + +2:21 And Abner said to him, Turn thee aside to thy right hand or to +thy left, and lay thee hold on one of the young men, and take thee his +armour. + +But Asahel would not turn aside from following of him. + +2:22 And Abner said again to Asahel, Turn thee aside from following +me: wherefore should I smite thee to the ground? how then should I +hold up my face to Joab thy brother? 2:23 Howbeit he refused to turn +aside: wherefore Abner with the hinder end of the spear smote him +under the fifth rib, that the spear came out behind him; and he fell +down there, and died in the same place: and it came to pass, that as +many as came to the place where Asahel fell down and died stood still. + +2:24 Joab also and Abishai pursued after Abner: and the sun went down +when they were come to the hill of Ammah, that lieth before Giah by +the way of the wilderness of Gibeon. + +2:25 And the children of Benjamin gathered themselves together after +Abner, and became one troop, and stood on the top of an hill. + +2:26 Then Abner called to Joab, and said, Shall the sword devour for +ever? knowest thou not that it will be bitterness in the latter end? +how long shall it be then, ere thou bid the people return from +following their brethren? 2:27 And Joab said, As God liveth, unless +thou hadst spoken, surely then in the morning the people had gone up +every one from following his brother. + +2:28 So Joab blew a trumpet, and all the people stood still, and +pursued after Israel no more, neither fought they any more. + +2:29 And Abner and his men walked all that night through the plain, +and passed over Jordan, and went through all Bithron, and they came to +Mahanaim. + +2:30 And Joab returned from following Abner: and when he had gathered +all the people together, there lacked of David's servants nineteen men +and Asahel. + +2:31 But the servants of David had smitten of Benjamin, and of Abner's +men, so that three hundred and threescore men died. + +2:32 And they took up Asahel, and buried him in the sepulchre of his +father, which was in Bethlehem. And Joab and his men went all night, +and they came to Hebron at break of day. + +3:1 Now there was long war between the house of Saul and the house of +David: but David waxed stronger and stronger, and the house of Saul +waxed weaker and weaker. + +3:2 And unto David were sons born in Hebron: and his firstborn was +Amnon, of Ahinoam the Jezreelitess; 3:3 And his second, Chileab, of +Abigail the wife of Nabal the Carmelite; and the third, Absalom the +son of Maacah the daughter of Talmai king of Geshur; 3:4 And the +fourth, Adonijah the son of Haggith; and the fifth, Shephatiah the son +of Abital; 3:5 And the sixth, Ithream, by Eglah David's wife. These +were born to David in Hebron. + +3:6 And it came to pass, while there was war between the house of Saul +and the house of David, that Abner made himself strong for the house +of Saul. + +3:7 And Saul had a concubine, whose name was Rizpah, the daughter of +Aiah: and Ishbosheth said to Abner, Wherefore hast thou gone in unto +my father's concubine? 3:8 Then was Abner very wroth for the words of +Ishbosheth, and said, Am I a dog's head, which against Judah do shew +kindness this day unto the house of Saul thy father, to his brethren, +and to his friends, and have not delivered thee into the hand of +David, that thou chargest me to day with a fault concerning this +woman? 3:9 So do God to Abner, and more also, except, as the LORD +hath sworn to David, even so I do to him; 3:10 To translate the +kingdom from the house of Saul, and to set up the throne of David over +Israel and over Judah, from Dan even to Beersheba. + +3:11 And he could not answer Abner a word again, because he feared +him. + +3:12 And Abner sent messengers to David on his behalf, saying, Whose +is the land? saying also, Make thy league with me, and, behold, my +hand shall be with thee, to bring about all Israel unto thee. + +3:13 And he said, Well; I will make a league with thee: but one thing +I require of thee, that is, Thou shalt not see my face, except thou +first bring Michal Saul's daughter, when thou comest to see my face. + +3:14 And David sent messengers to Ishbosheth Saul's son, saying, +Deliver me my wife Michal, which I espoused to me for an hundred +foreskins of the Philistines. + +3:15 And Ishbosheth sent, and took her from her husband, even from +Phaltiel the son of Laish. + +3:16 And her husband went with her along weeping behind her to +Bahurim. + +Then said Abner unto him, Go, return. And he returned. + +3:17 And Abner had communication with the elders of Israel, saying, Ye +sought for David in times past to be king over you: 3:18 Now then do +it: for the LORD hath spoken of David, saying, By the hand of my +servant David I will save my people Israel out of the hand of the +Philistines, and out of the hand of all their enemies. + +3:19 And Abner also spake in the ears of Benjamin: and Abner went also +to speak in the ears of David in Hebron all that seemed good to +Israel, and that seemed good to the whole house of Benjamin. + +3:20 So Abner came to David to Hebron, and twenty men with him. And +David made Abner and the men that were with him a feast. + +3:21 And Abner said unto David, I will arise and go, and will gather +all Israel unto my lord the king, that they may make a league with +thee, and that thou mayest reign over all that thine heart desireth. +And David sent Abner away; and he went in peace. + +3:22 And, behold, the servants of David and Joab came from pursuing a +troop, and brought in a great spoil with them: but Abner was not with +David in Hebron; for he had sent him away, and he was gone in peace. + +3:23 When Joab and all the host that was with him were come, they told +Joab, saying, Abner the son of Ner came to the king, and he hath sent +him away, and he is gone in peace. + +3:24 Then Joab came to the king, and said, What hast thou done? +behold, Abner came unto thee; why is it that thou hast sent him away, +and he is quite gone? 3:25 Thou knowest Abner the son of Ner, that he +came to deceive thee, and to know thy going out and thy coming in, and +to know all that thou doest. + +3:26 And when Joab was come out from David, he sent messengers after +Abner, which brought him again from the well of Sirah: but David knew +it not. + +3:27 And when Abner was returned to Hebron, Joab took him aside in the +gate to speak with him quietly, and smote him there under the fifth +rib, that he died, for the blood of Asahel his brother. + +3:28 And afterward when David heard it, he said, I and my kingdom are +guiltless before the LORD for ever from the blood of Abner the son of +Ner: 3:29 Let it rest on the head of Joab, and on all his father's +house; and let there not fail from the house of Joab one that hath an +issue, or that is a leper, or that leaneth on a staff, or that falleth +on the sword, or that lacketh bread. + +3:30 So Joab, and Abishai his brother slew Abner, because he had slain +their brother Asahel at Gibeon in the battle. + +3:31 And David said to Joab, and to all the people that were with him, +Rend your clothes, and gird you with sackcloth, and mourn before +Abner. And king David himself followed the bier. + +3:32 And they buried Abner in Hebron: and the king lifted up his +voice, and wept at the grave of Abner; and all the people wept. + +3:33 And the king lamented over Abner, and said, Died Abner as a fool +dieth? 3:34 Thy hands were not bound, nor thy feet put into fetters: +as a man falleth before wicked men, so fellest thou. And all the +people wept again over him. + +3:35 And when all the people came to cause David to eat meat while it +was yet day, David sware, saying, So do God to me, and more also, if I +taste bread, or ought else, till the sun be down. + +3:36 And all the people took notice of it, and it pleased them: as +whatsoever the king did pleased all the people. + +3:37 For all the people and all Israel understood that day that it was +not of the king to slay Abner the son of Ner. + +3:38 And the king said unto his servants, Know ye not that there is a +prince and a great man fallen this day in Israel? 3:39 And I am this +day weak, though anointed king; and these men the sons of Zeruiah be +too hard for me: the LORD shall reward the doer of evil according to +his wickedness. + +4:1 And when Saul's son heard that Abner was dead in Hebron, his hands +were feeble, and all the Israelites were troubled. + +4:2 And Saul's son had two men that were captains of bands: the name +of the one was Baanah, and the name of the other Rechab, the sons of +Rimmon a Beerothite, of the children of Benjamin: (for Beeroth also +was reckoned to Benjamin. + +4:3 And the Beerothites fled to Gittaim, and were sojourners there +until this day.) 4:4 And Jonathan, Saul's son, had a son that was +lame of his feet. He was five years old when the tidings came of Saul +and Jonathan out of Jezreel, and his nurse took him up, and fled: and +it came to pass, as she made haste to flee, that he fell, and became +lame. And his name was Mephibosheth. + +4:5 And the sons of Rimmon the Beerothite, Rechab and Baanah, went, +and came about the heat of the day to the house of Ishbosheth, who lay +on a bed at noon. + +4:6 And they came thither into the midst of the house, as though they +would have fetched wheat; and they smote him under the fifth rib: and +Rechab and Baanah his brother escaped. + +4:7 For when they came into the house, he lay on his bed in his +bedchamber, and they smote him, and slew him, and beheaded him, and +took his head, and gat them away through the plain all night. + +4:8 And they brought the head of Ishbosheth unto David to Hebron, and +said to the king, Behold the head of Ishbosheth the son of Saul thine +enemy, which sought thy life; and the LORD hath avenged my lord the +king this day of Saul, and of his seed. + +4:9 And David answered Rechab and Baanah his brother, the sons of +Rimmon the Beerothite, and said unto them, As the LORD liveth, who +hath redeemed my soul out of all adversity, 4:10 When one told me, +saying, Behold, Saul is dead, thinking to have brought good tidings, I +took hold of him, and slew him in Ziklag, who thought that I would +have given him a reward for his tidings: 4:11 How much more, when +wicked men have slain a righteous person in his own house upon his +bed? shall I not therefore now require his blood of your hand, and +take you away from the earth? 4:12 And David commanded his young men, +and they slew them, and cut off their hands and their feet, and hanged +them up over the pool in Hebron. But they took the head of Ishbosheth, +and buried it in the sepulchre of Abner in Hebron. + +5:1 Then came all the tribes of Israel to David unto Hebron, and +spake, saying, Behold, we are thy bone and thy flesh. + +5:2 Also in time past, when Saul was king over us, thou wast he that +leddest out and broughtest in Israel: and the LORD said to thee, Thou +shalt feed my people Israel, and thou shalt be a captain over Israel. + +5:3 So all the elders of Israel came to the king to Hebron; and king +David made a league with them in Hebron before the LORD: and they +anointed David king over Israel. + +5:4 David was thirty years old when he began to reign, and he reigned +forty years. + +5:5 In Hebron he reigned over Judah seven years and six months: and in +Jerusalem he reigned thirty and three years over all Israel and Judah. + +5:6 And the king and his men went to Jerusalem unto the Jebusites, the +inhabitants of the land: which spake unto David, saying, Except thou +take away the blind and the lame, thou shalt not come in hither: +thinking, David cannot come in hither. + +5:7 Nevertheless David took the strong hold of Zion: the same is the +city of David. + +5:8 And David said on that day, Whosoever getteth up to the gutter, +and smiteth the Jebusites, and the lame and the blind that are hated +of David's soul, he shall be chief and captain. Wherefore they said, +The blind and the lame shall not come into the house. + +5:9 So David dwelt in the fort, and called it the city of David. And +David built round about from Millo and inward. + +5:10 And David went on, and grew great, and the LORD God of hosts was +with him. + +5:11 And Hiram king of Tyre sent messengers to David, and cedar trees, +and carpenters, and masons: and they built David an house. + +5:12 And David perceived that the LORD had established him king over +Israel, and that he had exalted his kingdom for his people Israel's +sake. + +5:13 And David took him more concubines and wives out of Jerusalem, +after he was come from Hebron: and there were yet sons and daughters +born to David. + +5:14 And these be the names of those that were born unto him in +Jerusalem; Shammuah, and Shobab, and Nathan, and Solomon, 5:15 Ibhar +also, and Elishua, and Nepheg, and Japhia, 5:16 And Elishama, and +Eliada, and Eliphalet. + +5:17 But when the Philistines heard that they had anointed David king +over Israel, all the Philistines came up to seek David; and David +heard of it, and went down to the hold. + +5:18 The Philistines also came and spread themselves in the valley of +Rephaim. + +5:19 And David enquired of the LORD, saying, Shall I go up to the +Philistines? wilt thou deliver them into mine hand? And the LORD said +unto David, Go up: for I will doubtless deliver the Philistines into +thine hand. + +5:20 And David came to Baalperazim, and David smote them there, and +said, The LORD hath broken forth upon mine enemies before me, as the +breach of waters. Therefore he called the name of that place +Baalperazim. + +5:21 And there they left their images, and David and his men burned +them. + +5:22 And the Philistines came up yet again, and spread themselves in +the valley of Rephaim. + +5:23 And when David enquired of the LORD, he said, Thou shalt not go +up; but fetch a compass behind them, and come upon them over against +the mulberry trees. + +5:24 And let it be, when thou hearest the sound of a going in the tops +of the mulberry trees, that then thou shalt bestir thyself: for then +shall the LORD go out before thee, to smite the host of the +Philistines. + +5:25 And David did so, as the LORD had commanded him; and smote the +Philistines from Geba until thou come to Gazer. + +6:1 Again, David gathered together all the chosen men of Israel, +thirty thousand. + +6:2 And David arose, and went with all the people that were with him +from Baale of Judah, to bring up from thence the ark of God, whose +name is called by the name of the LORD of hosts that dwelleth between +the cherubims. + +6:3 And they set the ark of God upon a new cart, and brought it out of +the house of Abinadab that was in Gibeah: and Uzzah and Ahio, the sons +of Abinadab, drave the new cart. + +6:4 And they brought it out of the house of Abinadab which was at +Gibeah, accompanying the ark of God: and Ahio went before the ark. + +6:5 And David and all the house of Israel played before the LORD on +all manner of instruments made of fir wood, even on harps, and on +psalteries, and on timbrels, and on cornets, and on cymbals. + +6:6 And when they came to Nachon's threshingfloor, Uzzah put forth his +hand to the ark of God, and took hold of it; for the oxen shook it. + +6:7 And the anger of the LORD was kindled against Uzzah; and God smote +him there for his error; and there he died by the ark of God. + +6:8 And David was displeased, because the LORD had made a breach upon +Uzzah: and he called the name of the place Perezuzzah to this day. + +6:9 And David was afraid of the LORD that day, and said, How shall the +ark of the LORD come to me? 6:10 So David would not remove the ark of +the LORD unto him into the city of David: but David carried it aside +into the house of Obededom the Gittite. + +6:11 And the ark of the LORD continued in the house of Obededom the +Gittite three months: and the LORD blessed Obededom, and all his +household. + +6:12 And it was told king David, saying, The LORD hath blessed the +house of Obededom, and all that pertaineth unto him, because of the +ark of God. So David went and brought up the ark of God from the house +of Obededom into the city of David with gladness. + +6:13 And it was so, that when they that bare the ark of the LORD had +gone six paces, he sacrificed oxen and fatlings. + +6:14 And David danced before the LORD with all his might; and David +was girded with a linen ephod. + +6:15 So David and all the house of Israel brought up the ark of the +LORD with shouting, and with the sound of the trumpet. + +6:16 And as the ark of the LORD came into the city of David, Michal +Saul's daughter looked through a window, and saw king David leaping +and dancing before the LORD; and she despised him in her heart. + +6:17 And they brought in the ark of the LORD, and set it in his place, +in the midst of the tabernacle that David had pitched for it: and +David offered burnt offerings and peace offerings before the LORD. + +6:18 And as soon as David had made an end of offering burnt offerings +and peace offerings, he blessed the people in the name of the LORD of +hosts. + +6:19 And he dealt among all the people, even among the whole multitude +of Israel, as well to the women as men, to every one a cake of bread, +and a good piece of flesh, and a flagon of wine. So all the people +departed every one to his house. + +6:20 Then David returned to bless his household. And Michal the +daughter of Saul came out to meet David, and said, How glorious was +the king of Israel to day, who uncovered himself to day in the eyes of +the handmaids of his servants, as one of the vain fellows shamelessly +uncovereth himself! 6:21 And David said unto Michal, It was before +the LORD, which chose me before thy father, and before all his house, +to appoint me ruler over the people of the LORD, over Israel: +therefore will I play before the LORD. + +6:22 And I will yet be more vile than thus, and will be base in mine +own sight: and of the maidservants which thou hast spoken of, of them +shall I be had in honour. + +6:23 Therefore Michal the daughter of Saul had no child unto the day +of her death. + +7:1 And it came to pass, when the king sat in his house, and the LORD +had given him rest round about from all his enemies; 7:2 That the king +said unto Nathan the prophet, See now, I dwell in an house of cedar, +but the ark of God dwelleth within curtains. + +7:3 And Nathan said to the king, Go, do all that is in thine heart; +for the LORD is with thee. + +7:4 And it came to pass that night, that the word of the LORD came +unto Nathan, saying, 7:5 Go and tell my servant David, Thus saith the +LORD, Shalt thou build me an house for me to dwell in? 7:6 Whereas I +have not dwelt in any house since the time that I brought up the +children of Israel out of Egypt, even to this day, but have walked in +a tent and in a tabernacle. + +7:7 In all the places wherein I have walked with all the children of +Israel spake I a word with any of the tribes of Israel, whom I +commanded to feed my people Israel, saying, Why build ye not me an +house of cedar? 7:8 Now therefore so shalt thou say unto my servant +David, Thus saith the LORD of hosts, I took thee from the sheepcote, +from following the sheep, to be ruler over my people, over Israel: 7:9 +And I was with thee whithersoever thou wentest, and have cut off all +thine enemies out of thy sight, and have made thee a great name, like +unto the name of the great men that are in the earth. + +7:10 Moreover I will appoint a place for my people Israel, and will +plant them, that they may dwell in a place of their own, and move no +more; neither shall the children of wickedness afflict them any more, +as beforetime, 7:11 And as since the time that I commanded judges to +be over my people Israel, and have caused thee to rest from all thine +enemies. Also the LORD telleth thee that he will make thee an house. + +7:12 And when thy days be fulfilled, and thou shalt sleep with thy +fathers, I will set up thy seed after thee, which shall proceed out of +thy bowels, and I will establish his kingdom. + +7:13 He shall build an house for my name, and I will stablish the +throne of his kingdom for ever. + +7:14 I will be his father, and he shall be my son. If he commit +iniquity, I will chasten him with the rod of men, and with the stripes +of the children of men: 7:15 But my mercy shall not depart away from +him, as I took it from Saul, whom I put away before thee. + +7:16 And thine house and thy kingdom shall be established for ever +before thee: thy throne shall be established for ever. + +7:17 According to all these words, and according to all this vision, +so did Nathan speak unto David. + +7:18 Then went king David in, and sat before the LORD, and he said, +Who am I, O Lord GOD? and what is my house, that thou hast brought me +hitherto? 7:19 And this was yet a small thing in thy sight, O Lord +GOD; but thou hast spoken also of thy servant's house for a great +while to come. And is this the manner of man, O Lord GOD? 7:20 And +what can David say more unto thee? for thou, Lord GOD, knowest thy +servant. + +7:21 For thy word's sake, and according to thine own heart, hast thou +done all these great things, to make thy servant know them. + +7:22 Wherefore thou art great, O LORD God: for there is none like +thee, neither is there any God beside thee, according to all that we +have heard with our ears. + +7:23 And what one nation in the earth is like thy people, even like +Israel, whom God went to redeem for a people to himself, and to make +him a name, and to do for you great things and terrible, for thy land, +before thy people, which thou redeemedst to thee from Egypt, from the +nations and their gods? 7:24 For thou hast confirmed to thyself thy +people Israel to be a people unto thee for ever: and thou, LORD, art +become their God. + +7:25 And now, O LORD God, the word that thou hast spoken concerning +thy servant, and concerning his house, establish it for ever, and do +as thou hast said. + +7:26 And let thy name be magnified for ever, saying, The LORD of hosts +is the God over Israel: and let the house of thy servant David be +established before thee. + +7:27 For thou, O LORD of hosts, God of Israel, hast revealed to thy +servant, saying, I will build thee an house: therefore hath thy +servant found in his heart to pray this prayer unto thee. + +7:28 And now, O Lord GOD, thou art that God, and thy words be true, +and thou hast promised this goodness unto thy servant: 7:29 Therefore +now let it please thee to bless the house of thy servant, that it may +continue for ever before thee: for thou, O Lord GOD, hast spoken it: +and with thy blessing let the house of thy servant be blessed for +ever. + +8:1 And after this it came to pass that David smote the Philistines, +and subdued them: and David took Methegammah out of the hand of the +Philistines. + +8:2 And he smote Moab, and measured them with a line, casting them +down to the ground; even with two lines measured he to put to death, +and with one full line to keep alive. And so the Moabites became +David's servants, and brought gifts. + +8:3 David smote also Hadadezer, the son of Rehob, king of Zobah, as he +went to recover his border at the river Euphrates. + +8:4 And David took from him a thousand chariots, and seven hundred +horsemen, and twenty thousand footmen: and David houghed all the +chariot horses, but reserved of them for an hundred chariots. + +8:5 And when the Syrians of Damascus came to succour Hadadezer king of +Zobah, David slew of the Syrians two and twenty thousand men. + +8:6 Then David put garrisons in Syria of Damascus: and the Syrians +became servants to David, and brought gifts. And the LORD preserved +David whithersoever he went. + +8:7 And David took the shields of gold that were on the servants of +Hadadezer, and brought them to Jerusalem. + +8:8 And from Betah, and from Berothai, cities of Hadadezer, king David +took exceeding much brass. + +8:9 When Toi king of Hamath heard that David had smitten all the host +of Hadadezer, 8:10 Then Toi sent Joram his son unto king David, to +salute him, and to bless him, because he had fought against Hadadezer, +and smitten him: for Hadadezer had wars with Toi. And Joram brought +with him vessels of silver, and vessels of gold, and vessels of brass: +8:11 Which also king David did dedicate unto the LORD, with the silver +and gold that he had dedicated of all nations which he subdued; 8:12 +Of Syria, and of Moab, and of the children of Ammon, and of the +Philistines, and of Amalek, and of the spoil of Hadadezer, son of +Rehob, king of Zobah. + +8:13 And David gat him a name when he returned from smiting of the +Syrians in the valley of salt, being eighteen thousand men. + +8:14 And he put garrisons in Edom; throughout all Edom put he +garrisons, and all they of Edom became David's servants. And the LORD +preserved David whithersoever he went. + +8:15 And David reigned over all Israel; and David executed judgment +and justice unto all his people. + +8:16 And Joab the son of Zeruiah was over the host; and Jehoshaphat +the son of Ahilud was recorder; 8:17 And Zadok the son of Ahitub, and +Ahimelech the son of Abiathar, were the priests; and Seraiah was the +scribe; 8:18 And Benaiah the son of Jehoiada was over both the +Cherethites and the Pelethites; and David's sons were chief rulers. + +9:1 And David said, Is there yet any that is left of the house of +Saul, that I may shew him kindness for Jonathan's sake? 9:2 And there +was of the house of Saul a servant whose name was Ziba. And when they +had called him unto David, the king said unto him, Art thou Ziba? And +he said, Thy servant is he. + +9:3 And the king said, Is there not yet any of the house of Saul, that +I may shew the kindness of God unto him? And Ziba said unto the king, +Jonathan hath yet a son, which is lame on his feet. + +9:4 And the king said unto him, Where is he? And Ziba said unto the +king, Behold, he is in the house of Machir, the son of Ammiel, in +Lodebar. + +9:5 Then king David sent, and fetched him out of the house of Machir, +the son of Ammiel, from Lodebar. + +9:6 Now when Mephibosheth, the son of Jonathan, the son of Saul, was +come unto David, he fell on his face, and did reverence. And David +said, Mephibosheth. And he answered, Behold thy servant! 9:7 And +David said unto him, Fear not: for I will surely shew thee kindness +for Jonathan thy father's sake, and will restore thee all the land of +Saul thy father; and thou shalt eat bread at my table continually. + +9:8 And he bowed himself, and said, What is thy servant, that thou +shouldest look upon such a dead dog as I am? 9:9 Then the king called +to Ziba, Saul's servant, and said unto him, I have given unto thy +master's son all that pertained to Saul and to all his house. + +9:10 Thou therefore, and thy sons, and thy servants, shall till the +land for him, and thou shalt bring in the fruits, that thy master's +son may have food to eat: but Mephibosheth thy master's son shall eat +bread alway at my table. Now Ziba had fifteen sons and twenty +servants. + +9:11 Then said Ziba unto the king, According to all that my lord the +king hath commanded his servant, so shall thy servant do. As for +Mephibosheth, said the king, he shall eat at my table, as one of the +king's sons. + +9:12 And Mephibosheth had a young son, whose name was Micha. And all +that dwelt in the house of Ziba were servants unto Mephibosheth. + +9:13 So Mephibosheth dwelt in Jerusalem: for he did eat continually at +the king's table; and was lame on both his feet. + +10:1 And it came to pass after this, that the king of the children of +Ammon died, and Hanun his son reigned in his stead. + +10:2 Then said David, I will shew kindness unto Hanun the son of +Nahash, as his father shewed kindness unto me. And David sent to +comfort him by the hand of his servants for his father. And David's +servants came into the land of the children of Ammon. + +10:3 And the princes of the children of Ammon said unto Hanun their +lord, Thinkest thou that David doth honour thy father, that he hath +sent comforters unto thee? hath not David rather sent his servants +unto thee, to search the city, and to spy it out, and to overthrow it? +10:4 Wherefore Hanun took David's servants, and shaved off the one +half of their beards, and cut off their garments in the middle, even +to their buttocks, and sent them away. + +10:5 When they told it unto David, he sent to meet them, because the +men were greatly ashamed: and the king said, Tarry at Jericho until +your beards be grown, and then return. + +10:6 And when the children of Ammon saw that they stank before David, +the children of Ammon sent and hired the Syrians of Bethrehob and the +Syrians of Zoba, twenty thousand footmen, and of king Maacah a +thousand men, and of Ishtob twelve thousand men. + +10:7 And when David heard of it, he sent Joab, and all the host of the +mighty men. + +10:8 And the children of Ammon came out, and put the battle in array +at the entering in of the gate: and the Syrians of Zoba, and of Rehob, +and Ishtob, and Maacah, were by themselves in the field. + +10:9 When Joab saw that the front of the battle was against him before +and behind, he chose of all the choice men of Israel, and put them in +array against the Syrians: 10:10 And the rest of the people he +delivered into the hand of Abishai his brother, that he might put them +in array against the children of Ammon. + +10:11 And he said, If the Syrians be too strong for me, then thou +shalt help me: but if the children of Ammon be too strong for thee, +then I will come and help thee. + +10:12 Be of good courage, and let us play the men for our people, and +for the cities of our God: and the LORD do that which seemeth him +good. + +10:13 And Joab drew nigh, and the people that were with him, unto the +battle against the Syrians: and they fled before him. + +10:14 And when the children of Ammon saw that the Syrians were fled, +then fled they also before Abishai, and entered into the city. So Joab +returned from the children of Ammon, and came to Jerusalem. + +10:15 And when the Syrians saw that they were smitten before Israel, +they gathered themselves together. + +10:16 And Hadarezer sent, and brought out the Syrians that were beyond +the river: and they came to Helam; and Shobach the captain of the host +of Hadarezer went before them. + +10:17 And when it was told David, he gathered all Israel together, and +passed over Jordan, and came to Helam. And the Syrians set themselves +in array against David, and fought with him. + +10:18 And the Syrians fled before Israel; and David slew the men of +seven hundred chariots of the Syrians, and forty thousand horsemen, +and smote Shobach the captain of their host, who died there. + +10:19 And when all the kings that were servants to Hadarezer saw that +they were smitten before Israel, they made peace with Israel, and +served them. So the Syrians feared to help the children of Ammon any +more. + +11:1 And it came to pass, after the year was expired, at the time when +kings go forth to battle, that David sent Joab, and his servants with +him, and all Israel; and they destroyed the children of Ammon, and +besieged Rabbah. But David tarried still at Jerusalem. + +11:2 And it came to pass in an eveningtide, that David arose from off +his bed, and walked upon the roof of the king's house: and from the +roof he saw a woman washing herself; and the woman was very beautiful +to look upon. + +11:3 And David sent and enquired after the woman. And one said, Is not +this Bathsheba, the daughter of Eliam, the wife of Uriah the Hittite? +11:4 And David sent messengers, and took her; and she came in unto +him, and he lay with her; for she was purified from her uncleanness: +and she returned unto her house. + +11:5 And the woman conceived, and sent and told David, and said, I am +with child. + +11:6 And David sent to Joab, saying, Send me Uriah the Hittite. And +Joab sent Uriah to David. + +11:7 And when Uriah was come unto him, David demanded of him how Joab +did, and how the people did, and how the war prospered. + +11:8 And David said to Uriah, Go down to thy house, and wash thy feet. +And Uriah departed out of the king's house, and there followed him a +mess of meat from the king. + +11:9 But Uriah slept at the door of the king's house with all the +servants of his lord, and went not down to his house. + +11:10 And when they had told David, saying, Uriah went not down unto +his house, David said unto Uriah, Camest thou not from thy journey? +why then didst thou not go down unto thine house? 11:11 And Uriah +said unto David, The ark, and Israel, and Judah, abide in tents; and +my lord Joab, and the servants of my lord, are encamped in the open +fields; shall I then go into mine house, to eat and to drink, and to +lie with my wife? as thou livest, and as thy soul liveth, I will not +do this thing. + +11:12 And David said to Uriah, Tarry here to day also, and to morrow I +will let thee depart. So Uriah abode in Jerusalem that day, and the +morrow. + +11:13 And when David had called him, he did eat and drink before him; +and he made him drunk: and at even he went out to lie on his bed with +the servants of his lord, but went not down to his house. + +11:14 And it came to pass in the morning, that David wrote a letter to +Joab, and sent it by the hand of Uriah. + +11:15 And he wrote in the letter, saying, Set ye Uriah in the +forefront of the hottest battle, and retire ye from him, that he may +be smitten, and die. + +11:16 And it came to pass, when Joab observed the city, that he +assigned Uriah unto a place where he knew that valiant men were. + +11:17 And the men of the city went out, and fought with Joab: and +there fell some of the people of the servants of David; and Uriah the +Hittite died also. + +11:18 Then Joab sent and told David all the things concerning the war; +11:19 And charged the messenger, saying, When thou hast made an end of +telling the matters of the war unto the king, 11:20 And if so be that +the king's wrath arise, and he say unto thee, Wherefore approached ye +so nigh unto the city when ye did fight? knew ye not that they would +shoot from the wall? 11:21 Who smote Abimelech the son of +Jerubbesheth? did not a woman cast a piece of a millstone upon him +from the wall, that he died in Thebez? why went ye nigh the wall? then +say thou, Thy servant Uriah the Hittite is dead also. + +11:22 So the messenger went, and came and shewed David all that Joab +had sent him for. + +11:23 And the messenger said unto David, Surely the men prevailed +against us, and came out unto us into the field, and we were upon them +even unto the entering of the gate. + +11:24 And the shooters shot from off the wall upon thy servants; and +some of the king's servants be dead, and thy servant Uriah the Hittite +is dead also. + +11:25 Then David said unto the messenger, Thus shalt thou say unto +Joab, Let not this thing displease thee, for the sword devoureth one +as well as another: make thy battle more strong against the city, and +overthrow it: and encourage thou him. + +11:26 And when the wife of Uriah heard that Uriah her husband was +dead, she mourned for her husband. + +11:27 And when the mourning was past, David sent and fetched her to +his house, and she became his wife, and bare him a son. But the thing +that David had done displeased the LORD. + +12:1 And the LORD sent Nathan unto David. And he came unto him, and +said unto him, There were two men in one city; the one rich, and the +other poor. + +12:2 The rich man had exceeding many flocks and herds: 12:3 But the +poor man had nothing, save one little ewe lamb, which he had bought +and nourished up: and it grew up together with him, and with his +children; it did eat of his own meat, and drank of his own cup, and +lay in his bosom, and was unto him as a daughter. + +12:4 And there came a traveller unto the rich man, and he spared to +take of his own flock and of his own herd, to dress for the wayfaring +man that was come unto him; but took the poor man's lamb, and dressed +it for the man that was come to him. + +12:5 And David's anger was greatly kindled against the man; and he +said to Nathan, As the LORD liveth, the man that hath done this thing +shall surely die: 12:6 And he shall restore the lamb fourfold, because +he did this thing, and because he had no pity. + +12:7 And Nathan said to David, Thou art the man. Thus saith the LORD +God of Israel, I anointed thee king over Israel, and I delivered thee +out of the hand of Saul; 12:8 And I gave thee thy master's house, and +thy master's wives into thy bosom, and gave thee the house of Israel +and of Judah; and if that had been too little, I would moreover have +given unto thee such and such things. + +12:9 Wherefore hast thou despised the commandment of the LORD, to do +evil in his sight? thou hast killed Uriah the Hittite with the sword, +and hast taken his wife to be thy wife, and hast slain him with the +sword of the children of Ammon. + +12:10 Now therefore the sword shall never depart from thine house; +because thou hast despised me, and hast taken the wife of Uriah the +Hittite to be thy wife. + +12:11 Thus saith the LORD, Behold, I will raise up evil against thee +out of thine own house, and I will take thy wives before thine eyes, +and give them unto thy neighbour, and he shall lie with thy wives in +the sight of this sun. + +12:12 For thou didst it secretly: but I will do this thing before all +Israel, and before the sun. + +12:13 And David said unto Nathan, I have sinned against the LORD. And +Nathan said unto David, The LORD also hath put away thy sin; thou +shalt not die. + +12:14 Howbeit, because by this deed thou hast given great occasion to +the enemies of the LORD to blaspheme, the child also that is born unto +thee shall surely die. + +12:15 And Nathan departed unto his house. And the LORD struck the +child that Uriah's wife bare unto David, and it was very sick. + +12:16 David therefore besought God for the child; and David fasted, +and went in, and lay all night upon the earth. + +12:17 And the elders of his house arose, and went to him, to raise him +up from the earth: but he would not, neither did he eat bread with +them. + +12:18 And it came to pass on the seventh day, that the child died. And +the servants of David feared to tell him that the child was dead: for +they said, Behold, while the child was yet alive, we spake unto him, +and he would not hearken unto our voice: how will he then vex himself, +if we tell him that the child is dead? 12:19 But when David saw that +his servants whispered, David perceived that the child was dead: +therefore David said unto his servants, Is the child dead? And they +said, He is dead. + +12:20 Then David arose from the earth, and washed, and anointed +himself, and changed his apparel, and came into the house of the LORD, +and worshipped: then he came to his own house; and when he required, +they set bread before him, and he did eat. + +12:21 Then said his servants unto him, What thing is this that thou +hast done? thou didst fast and weep for the child, while it was alive; +but when the child was dead, thou didst rise and eat bread. + +12:22 And he said, While the child was yet alive, I fasted and wept: +for I said, Who can tell whether GOD will be gracious to me, that the +child may live? 12:23 But now he is dead, wherefore should I fast? +can I bring him back again? I shall go to him, but he shall not return +to me. + +12:24 And David comforted Bathsheba his wife, and went in unto her, +and lay with her: and she bare a son, and he called his name Solomon: +and the LORD loved him. + +12:25 And he sent by the hand of Nathan the prophet; and he called his +name Jedidiah, because of the LORD. + +12:26 And Joab fought against Rabbah of the children of Ammon, and +took the royal city. + +12:27 And Joab sent messengers to David, and said, I have fought +against Rabbah, and have taken the city of waters. + +12:28 Now therefore gather the rest of the people together, and encamp +against the city, and take it: lest I take the city, and it be called +after my name. + +12:29 And David gathered all the people together, and went to Rabbah, +and fought against it, and took it. + +12:30 And he took their king's crown from off his head, the weight +whereof was a talent of gold with the precious stones: and it was set +on David's head. And he brought forth the spoil of the city in great +abundance. + +12:31 And he brought forth the people that were therein, and put them +under saws, and under harrows of iron, and under axes of iron, and +made them pass through the brick-kiln: and thus did he unto all the +cities of the children of Ammon. So David and all the people returned +unto Jerusalem. + +13:1 And it came to pass after this, that Absalom the son of David had +a fair sister, whose name was Tamar; and Amnon the son of David loved +her. + +13:2 And Amnon was so vexed, that he fell sick for his sister Tamar; +for she was a virgin; and Amnon thought it hard for him to do anything +to her. + +13:3 But Amnon had a friend, whose name was Jonadab, the son of +Shimeah David's brother: and Jonadab was a very subtil man. + +13:4 And he said unto him, Why art thou, being the king's son, lean +from day to day? wilt thou not tell me? And Amnon said unto him, I +love Tamar, my brother Absalom's sister. + +13:5 And Jonadab said unto him, Lay thee down on thy bed, and make +thyself sick: and when thy father cometh to see thee, say unto him, I +pray thee, let my sister Tamar come, and give me meat, and dress the +meat in my sight, that I may see it, and eat it at her hand. + +13:6 So Amnon lay down, and made himself sick: and when the king was +come to see him, Amnon said unto the king, I pray thee, let Tamar my +sister come, and make me a couple of cakes in my sight, that I may eat +at her hand. + +13:7 Then David sent home to Tamar, saying, Go now to thy brother +Amnon's house, and dress him meat. + +13:8 So Tamar went to her brother Amnon's house; and he was laid down. +And she took flour, and kneaded it, and made cakes in his sight, and +did bake the cakes. + +13:9 And she took a pan, and poured them out before him; but he +refused to eat. And Amnon said, Have out all men from me. And they +went out every man from him. + +13:10 And Amnon said unto Tamar, Bring the meat into the chamber, that +I may eat of thine hand. And Tamar took the cakes which she had made, +and brought them into the chamber to Amnon her brother. + +13:11 And when she had brought them unto him to eat, he took hold of +her, and said unto her, Come lie with me, my sister. + +13:12 And she answered him, Nay, my brother, do not force me; for no +such thing ought to be done in Israel: do not thou this folly. + +13:13 And I, whither shall I cause my shame to go? and as for thee, +thou shalt be as one of the fools in Israel. Now therefore, I pray +thee, speak unto the king; for he will not withhold me from thee. + +13:14 Howbeit he would not hearken unto her voice: but, being stronger +than she, forced her, and lay with her. + +13:15 Then Amnon hated her exceedingly; so that the hatred wherewith +he hated her was greater than the love wherewith he had loved her. And +Amnon said unto her, Arise, be gone. + +13:16 And she said unto him, There is no cause: this evil in sending +me away is greater than the other that thou didst unto me. But he +would not hearken unto her. + +13:17 Then he called his servant that ministered unto him, and said, +Put now this woman out from me, and bolt the door after her. + +13:18 And she had a garment of divers colours upon her: for with such +robes were the king's daughters that were virgins apparelled. Then his +servant brought her out, and bolted the door after her. + +13:19 And Tamar put ashes on her head, and rent her garment of divers +colours that was on her, and laid her hand on her head, and went on +crying. + +13:20 And Absalom her brother said unto her, Hath Amnon thy brother +been with thee? but hold now thy peace, my sister: he is thy brother; +regard not this thing. So Tamar remained desolate in her brother +Absalom's house. + +13:21 But when king David heard of all these things, he was very +wroth. + +13:22 And Absalom spake unto his brother Amnon neither good nor bad: +for Absalom hated Amnon, because he had forced his sister Tamar. + +13:23 And it came to pass after two full years, that Absalom had +sheepshearers in Baalhazor, which is beside Ephraim: and Absalom +invited all the king's sons. + +13:24 And Absalom came to the king, and said, Behold now, thy servant +hath sheepshearers; let the king, I beseech thee, and his servants go +with thy servant. + +13:25 And the king said to Absalom, Nay, my son, let us not all now +go, lest we be chargeable unto thee. And he pressed him: howbeit he +would not go, but blessed him. + +13:26 Then said Absalom, If not, I pray thee, let my brother Amnon go +with us. And the king said unto him, Why should he go with thee? +13:27 But Absalom pressed him, that he let Amnon and all the king's +sons go with him. + +13:28 Now Absalom had commanded his servants, saying, Mark ye now when +Amnon's heart is merry with wine, and when I say unto you, Smite +Amnon; then kill him, fear not: have not I commanded you? be +courageous, and be valiant. + +13:29 And the servants of Absalom did unto Amnon as Absalom had +commanded. + +Then all the king's sons arose, and every man gat him up upon his +mule, and fled. + +13:30 And it came to pass, while they were in the way, that tidings +came to David, saying, Absalom hath slain all the king's sons, and +there is not one of them left. + +13:31 Then the king arose, and tare his garments, and lay on the +earth; and all his servants stood by with their clothes rent. + +13:32 And Jonadab, the son of Shimeah David's brother, answered and +said, Let not my lord suppose that they have slain all the young men +the king's sons; for Amnon only is dead: for by the appointment of +Absalom this hath been determined from the day that he forced his +sister Tamar. + +13:33 Now therefore let not my lord the king take the thing to his +heart, to think that all the king's sons are dead: for Amnon only is +dead. + +13:34 But Absalom fled. And the young man that kept the watch lifted +up his eyes, and looked, and, behold, there came much people by the +way of the hill side behind him. + +13:35 And Jonadab said unto the king, Behold, the king's sons come: as +thy servant said, so it is. + +13:36 And it came to pass, as soon as he had made an end of speaking, +that, behold, the king's sons came, and lifted up their voice and +wept: and the king also and all his servants wept very sore. + +13:37 But Absalom fled, and went to Talmai, the son of Ammihud, king +of Geshur. And David mourned for his son every day. + +13:38 So Absalom fled, and went to Geshur, and was there three years. + +13:39 And the soul of king David longed to go forth unto Absalom: for +he was comforted concerning Amnon, seeing he was dead. + +14:1 Now Joab the son of Zeruiah perceived that the king's heart was +toward Absalom. + +14:2 And Joab sent to Tekoah, and fetched thence a wise woman, and +said unto her, I pray thee, feign thyself to be a mourner, and put on +now mourning apparel, and anoint not thyself with oil, but be as a +woman that had a long time mourned for the dead: 14:3 And come to the +king, and speak on this manner unto him. So Joab put the words in her +mouth. + +14:4 And when the woman of Tekoah spake to the king, she fell on her +face to the ground, and did obeisance, and said, Help, O king. + +14:5 And the king said unto her, What aileth thee? And she answered, I +am indeed a widow woman, and mine husband is dead. + +14:6 And thy handmaid had two sons, and they two strove together in +the field, and there was none to part them, but the one smote the +other, and slew him. + +14:7 And, behold, the whole family is risen against thine handmaid, +and they said, Deliver him that smote his brother, that we may kill +him, for the life of his brother whom he slew; and we will destroy the +heir also: and so they shall quench my coal which is left, and shall +not leave to my husband neither name nor remainder upon the earth. + +14:8 And the king said unto the woman, Go to thine house, and I will +give charge concerning thee. + +14:9 And the woman of Tekoah said unto the king, My lord, O king, the +iniquity be on me, and on my father's house: and the king and his +throne be guiltless. + +14:10 And the king said, Whoever saith ought unto thee, bring him to +me, and he shall not touch thee any more. + +14:11 Then said she, I pray thee, let the king remember the LORD thy +God, that thou wouldest not suffer the revengers of blood to destroy +any more, lest they destroy my son. And he said, As the LORD liveth, +there shall not one hair of thy son fall to the earth. + +14:12 Then the woman said, Let thine handmaid, I pray thee, speak one +word unto my lord the king. And he said, Say on. + +14:13 And the woman said, Wherefore then hast thou thought such a +thing against the people of God? for the king doth speak this thing as +one which is faulty, in that the king doth not fetch home again his +banished. + +14:14 For we must needs die, and are as water spilt on the ground, +which cannot be gathered up again; neither doth God respect any +person: yet doth he devise means, that his banished be not expelled +from him. + +14:15 Now therefore that I am come to speak of this thing unto my lord +the king, it is because the people have made me afraid: and thy +handmaid said, I will now speak unto the king; it may be that the king +will perform the request of his handmaid. + +14:16 For the king will hear, to deliver his handmaid out of the hand +of the man that would destroy me and my son together out of the +inheritance of God. + +14:17 Then thine handmaid said, The word of my lord the king shall now +be comfortable: for as an angel of God, so is my lord the king to +discern good and bad: therefore the LORD thy God will be with thee. + +14:18 Then the king answered and said unto the woman, Hide not from +me, I pray thee, the thing that I shall ask thee. And the woman said, +Let my lord the king now speak. + +14:19 And the king said, Is not the hand of Joab with thee in all +this? And the woman answered and said, As thy soul liveth, my lord +the king, none can turn to the right hand or to the left from ought +that my lord the king hath spoken: for thy servant Joab, he bade me, +and he put all these words in the mouth of thine handmaid: 14:20 To +fetch about this form of speech hath thy servant Joab done this thing: +and my lord is wise, according to the wisdom of an angel of God, to +know all things that are in the earth. + +14:21 And the king said unto Joab, Behold now, I have done this thing: +go therefore, bring the young man Absalom again. + +14:22 And Joab fell to the ground on his face, and bowed himself, and +thanked the king: and Joab said, To day thy servant knoweth that I +have found grace in thy sight, my lord, O king, in that the king hath +fulfilled the request of his servant. + +14:23 So Joab arose and went to Geshur, and brought Absalom to +Jerusalem. + +14:24 And the king said, Let him turn to his own house, and let him +not see my face. So Absalom returned to his own house, and saw not the +king's face. + +14:25 But in all Israel there was none to be so much praised as +Absalom for his beauty: from the sole of his foot even to the crown of +his head there was no blemish in him. + +14:26 And when he polled his head, (for it was at every year's end +that he polled it: because the hair was heavy on him, therefore he +polled it:) he weighed the hair of his head at two hundred shekels +after the king's weight. + +14:27 And unto Absalom there were born three sons, and one daughter, +whose name was Tamar: she was a woman of a fair countenance. + +14:28 So Absalom dwelt two full years in Jerusalem, and saw not the +king's face. + +14:29 Therefore Absalom sent for Joab, to have sent him to the king; +but he would not come to him: and when he sent again the second time, +he would not come. + +14:30 Therefore he said unto his servants, See, Joab's field is near +mine, and he hath barley there; go and set it on fire. And Absalom's +servants set the field on fire. + +14:31 Then Joab arose, and came to Absalom unto his house, and said +unto him, Wherefore have thy servants set my field on fire? 14:32 And +Absalom answered Joab, Behold, I sent unto thee, saying, Come hither, +that I may send thee to the king, to say, Wherefore am I come from +Geshur? it had been good for me to have been there still: now +therefore let me see the king's face; and if there be any iniquity in +me, let him kill me. + +14:33 So Joab came to the king, and told him: and when he had called +for Absalom, he came to the king, and bowed himself on his face to the +ground before the king: and the king kissed Absalom. + +15:1 And it came to pass after this, that Absalom prepared him +chariots and horses, and fifty men to run before him. + +15:2 And Absalom rose up early, and stood beside the way of the gate: +and it was so, that when any man that had a controversy came to the +king for judgment, then Absalom called unto him, and said, Of what +city art thou? And he said, Thy servant is of one of the tribes of +Israel. + +15:3 And Absalom said unto him, See, thy matters are good and right; +but there is no man deputed of the king to hear thee. + +15:4 Absalom said moreover, Oh that I were made judge in the land, +that every man which hath any suit or cause might come unto me, and I +would do him justice! 15:5 And it was so, that when any man came nigh +to him to do him obeisance, he put forth his hand, and took him, and +kissed him. + +15:6 And on this manner did Absalom to all Israel that came to the +king for judgment: so Absalom stole the hearts of the men of Israel. + +15:7 And it came to pass after forty years, that Absalom said unto the +king, I pray thee, let me go and pay my vow, which I have vowed unto +the LORD, in Hebron. + +15:8 For thy servant vowed a vow while I abode at Geshur in Syria, +saying, If the LORD shall bring me again indeed to Jerusalem, then I +will serve the LORD. + +15:9 And the king said unto him, Go in peace. So he arose, and went to +Hebron. + +15:10 But Absalom sent spies throughout all the tribes of Israel, +saying, As soon as ye hear the sound of the trumpet, then ye shall +say, Absalom reigneth in Hebron. + +15:11 And with Absalom went two hundred men out of Jerusalem, that +were called; and they went in their simplicity, and they knew not any +thing. + +15:12 And Absalom sent for Ahithophel the Gilonite, David's +counsellor, from his city, even from Giloh, while he offered +sacrifices. And the conspiracy was strong; for the people increased +continually with Absalom. + +15:13 And there came a messenger to David, saying, The hearts of the +men of Israel are after Absalom. + +15:14 And David said unto all his servants that were with him at +Jerusalem, Arise, and let us flee; for we shall not else escape from +Absalom: make speed to depart, lest he overtake us suddenly, and bring +evil upon us, and smite the city with the edge of the sword. + +15:15 And the king's servants said unto the king, Behold, thy servants +are ready to do whatsoever my lord the king shall appoint. + +15:16 And the king went forth, and all his household after him. And +the king left ten women, which were concubines, to keep the house. + +15:17 And the king went forth, and all the people after him, and +tarried in a place that was far off. + +15:18 And all his servants passed on beside him; and all the +Cherethites, and all the Pelethites, and all the Gittites, six hundred +men which came after him from Gath, passed on before the king. + +15:19 Then said the king to Ittai the Gittite, Wherefore goest thou +also with us? return to thy place, and abide with the king: for thou +art a stranger, and also an exile. + +15:20 Whereas thou camest but yesterday, should I this day make thee +go up and down with us? seeing I go whither I may, return thou, and +take back thy brethren: mercy and truth be with thee. + +15:21 And Ittai answered the king, and said, As the LORD liveth, and +as my lord the king liveth, surely in what place my lord the king +shall be, whether in death or life, even there also will thy servant +be. + +15:22 And David said to Ittai, Go and pass over. And Ittai the Gittite +passed over, and all his men, and all the little ones that were with +him. + +15:23 And all the country wept with a loud voice, and all the people +passed over: the king also himself passed over the brook Kidron, and +all the people passed over, toward the way of the wilderness. + +15:24 And lo Zadok also, and all the Levites were with him, bearing +the ark of the covenant of God: and they set down the ark of God; and +Abiathar went up, until all the people had done passing out of the +city. + +15:25 And the king said unto Zadok, Carry back the ark of God into the +city: if I shall find favour in the eyes of the LORD, he will bring me +again, and shew me both it, and his habitation: 15:26 But if he thus +say, I have no delight in thee; behold, here am I, let him do to me as +seemeth good unto him. + +15:27 The king said also unto Zadok the priest, Art not thou a seer? +return into the city in peace, and your two sons with you, Ahimaaz thy +son, and Jonathan the son of Abiathar. + +15:28 See, I will tarry in the plain of the wilderness, until there +come word from you to certify me. + +15:29 Zadok therefore and Abiathar carried the ark of God again to +Jerusalem: and they tarried there. + +15:30 And David went up by the ascent of mount Olivet, and wept as he +went up, and had his head covered, and he went barefoot: and all the +people that was with him covered every man his head, and they went up, +weeping as they went up. + +15:31 And one told David, saying, Ahithophel is among the conspirators +with Absalom. And David said, O LORD, I pray thee, turn the counsel of +Ahithophel into foolishness. + +15:32 And it came to pass, that when David was come to the top of the +mount, where he worshipped God, behold, Hushai the Archite came to +meet him with his coat rent, and earth upon his head: 15:33 Unto whom +David said, If thou passest on with me, then thou shalt be a burden +unto me: 15:34 But if thou return to the city, and say unto Absalom, I +will be thy servant, O king; as I have been thy father's servant +hitherto, so will I now also be thy servant: then mayest thou for me +defeat the counsel of Ahithophel. + +15:35 And hast thou not there with thee Zadok and Abiathar the +priests? therefore it shall be, that what thing soever thou shalt +hear out of the king's house, thou shalt tell it to Zadok and Abiathar +the priests. + +15:36 Behold, they have there with them their two sons, Ahimaaz +Zadok's son, and Jonathan Abiathar's son; and by them ye shall send +unto me every thing that ye can hear. + +15:37 So Hushai David's friend came into the city, and Absalom came +into Jerusalem. + +16:1 And when David was a little past the top of the hill, behold, +Ziba the servant of Mephibosheth met him, with a couple of asses +saddled, and upon them two hundred loaves of bread, and an hundred +bunches of raisins, and an hundred of summer fruits, and a bottle of +wine. + +16:2 And the king said unto Ziba, What meanest thou by these? And Ziba +said, The asses be for the king's household to ride on; and the bread +and summer fruit for the young men to eat; and the wine, that such as +be faint in the wilderness may drink. + +16:3 And the king said, And where is thy master's son? And Ziba said +unto the king, Behold, he abideth at Jerusalem: for he said, To day +shall the house of Israel restore me the kingdom of my father. + +16:4 Then said the king to Ziba, Behold, thine are all that pertained +unto Mephibosheth. And Ziba said, I humbly beseech thee that I may +find grace in thy sight, my lord, O king. + +16:5 And when king David came to Bahurim, behold, thence came out a +man of the family of the house of Saul, whose name was Shimei, the son +of Gera: he came forth, and cursed still as he came. + +16:6 And he cast stones at David, and at all the servants of king +David: and all the people and all the mighty men were on his right +hand and on his left. + +16:7 And thus said Shimei when he cursed, Come out, come out, thou +bloody man, and thou man of Belial: 16:8 The LORD hath returned upon +thee all the blood of the house of Saul, in whose stead thou hast +reigned; and the LORD hath delivered the kingdom into the hand of +Absalom thy son: and, behold, thou art taken in thy mischief, because +thou art a bloody man. + +16:9 Then said Abishai the son of Zeruiah unto the king, Why should +this dead dog curse my lord the king? let me go over, I pray thee, and +take off his head. + +16:10 And the king said, What have I to do with you, ye sons of +Zeruiah? so let him curse, because the LORD hath said unto him, Curse +David. Who shall then say, Wherefore hast thou done so? 16:11 And +David said to Abishai, and to all his servants, Behold, my son, which +came forth of my bowels, seeketh my life: how much more now may this +Benjamite do it? let him alone, and let him curse; for the LORD hath +bidden him. + +16:12 It may be that the LORD will look on mine affliction, and that +the LORD will requite me good for his cursing this day. + +16:13 And as David and his men went by the way, Shimei went along on +the hill's side over against him, and cursed as he went, and threw +stones at him, and cast dust. + +16:14 And the king, and all the people that were with him, came weary, +and refreshed themselves there. + +16:15 And Absalom, and all the people the men of Israel, came to +Jerusalem, and Ahithophel with him. + +16:16 And it came to pass, when Hushai the Archite, David's friend, +was come unto Absalom, that Hushai said unto Absalom, God save the +king, God save the king. + +16:17 And Absalom said to Hushai, Is this thy kindness to thy friend? +why wentest thou not with thy friend? 16:18 And Hushai said unto +Absalom, Nay; but whom the LORD, and this people, and all the men of +Israel, choose, his will I be, and with him will I abide. + +16:19 And again, whom should I serve? should I not serve in the +presence of his son? as I have served in thy father's presence, so +will I be in thy presence. + +16:20 Then said Absalom to Ahithophel, Give counsel among you what we +shall do. + +16:21 And Ahithophel said unto Absalom, Go in unto thy father's +concubines, which he hath left to keep the house; and all Israel shall +hear that thou art abhorred of thy father: then shall the hands of all +that are with thee be strong. + +16:22 So they spread Absalom a tent upon the top of the house; and +Absalom went in unto his father's concubines in the sight of all +Israel. + +16:23 And the counsel of Ahithophel, which he counselled in those +days, was as if a man had enquired at the oracle of God: so was all +the counsel of Ahithophel both with David and with Absalom. + +17:1 Moreover Ahithophel said unto Absalom, Let me now choose out +twelve thousand men, and I will arise and pursue after David this +night: 17:2 And I will come upon him while he is weary and weak +handed, and will make him afraid: and all the people that are with him +shall flee; and I will smite the king only: 17:3 And I will bring back +all the people unto thee: the man whom thou seekest is as if all +returned: so all the people shall be in peace. + +17:4 And the saying pleased Absalom well, and all the elders of +Israel. + +17:5 Then said Absalom, Call now Hushai the Archite also, and let us +hear likewise what he saith. + +17:6 And when Hushai was come to Absalom, Absalom spake unto him, +saying, Ahithophel hath spoken after this manner: shall we do after +his saying? if not; speak thou. + +17:7 And Hushai said unto Absalom, The counsel that Ahithophel hath +given is not good at this time. + +17:8 For, said Hushai, thou knowest thy father and his men, that they +be mighty men, and they be chafed in their minds, as a bear robbed of +her whelps in the field: and thy father is a man of war, and will not +lodge with the people. + +17:9 Behold, he is hid now in some pit, or in some other place: and it +will come to pass, when some of them be overthrown at the first, that +whosoever heareth it will say, There is a slaughter among the people +that follow Absalom. + +17:10 And he also that is valiant, whose heart is as the heart of a +lion, shall utterly melt: for all Israel knoweth that thy father is a +mighty man, and they which be with him are valiant men. + +17:11 Therefore I counsel that all Israel be generally gathered unto +thee, from Dan even to Beersheba, as the sand that is by the sea for +multitude; and that thou go to battle in thine own person. + +17:12 So shall we come upon him in some place where he shall be found, +and we will light upon him as the dew falleth on the ground: and of +him and of all the men that are with him there shall not be left so +much as one. + +17:13 Moreover, if he be gotten into a city, then shall all Israel +bring ropes to that city, and we will draw it into the river, until +there be not one small stone found there. + +17:14 And Absalom and all the men of Israel said, The counsel of +Hushai the Archite is better than the counsel of Ahithophel. For the +LORD had appointed to defeat the good counsel of Ahithophel, to the +intent that the LORD might bring evil upon Absalom. + +17:15 Then said Hushai unto Zadok and to Abiathar the priests, Thus +and thus did Ahithophel counsel Absalom and the elders of Israel; and +thus and thus have I counselled. + +17:16 Now therefore send quickly, and tell David, saying, Lodge not +this night in the plains of the wilderness, but speedily pass over; +lest the king be swallowed up, and all the people that are with him. + +17:17 Now Jonathan and Ahimaaz stayed by Enrogel; for they might not +be seen to come into the city: and a wench went and told them; and +they went and told king David. + +17:18 Nevertheless a lad saw them, and told Absalom: but they went +both of them away quickly, and came to a man's house in Bahurim, which +had a well in his court; whither they went down. + +17:19 And the woman took and spread a covering over the well's mouth, +and spread ground corn thereon; and the thing was not known. + +17:20 And when Absalom's servants came to the woman to the house, they +said, Where is Ahimaaz and Jonathan? And the woman said unto them, +They be gone over the brook of water. And when they had sought and +could not find them, they returned to Jerusalem. + +17:21 And it came to pass, after they were departed, that they came up +out of the well, and went and told king David, and said unto David, +Arise, and pass quickly over the water: for thus hath Ahithophel +counselled against you. + +17:22 Then David arose, and all the people that were with him, and +they passed over Jordan: by the morning light there lacked not one of +them that was not gone over Jordan. + +17:23 And when Ahithophel saw that his counsel was not followed, he +saddled his ass, and arose, and gat him home to his house, to his +city, and put his household in order, and hanged himself, and died, +and was buried in the sepulchre of his father. + +17:24 Then David came to Mahanaim. And Absalom passed over Jordan, he +and all the men of Israel with him. + +17:25 And Absalom made Amasa captain of the host instead of Joab: +which Amasa was a man's son, whose name was Ithra an Israelite, that +went in to Abigail the daughter of Nahash, sister to Zeruiah Joab's +mother. + +17:26 So Israel and Absalom pitched in the land of Gilead. + +17:27 And it came to pass, when David was come to Mahanaim, that Shobi +the son of Nahash of Rabbah of the children of Ammon, and Machir the +son of Ammiel of Lodebar, and Barzillai the Gileadite of Rogelim, +17:28 Brought beds, and basons, and earthen vessels, and wheat, and +barley, and flour, and parched corn, and beans, and lentiles, and +parched pulse, 17:29 And honey, and butter, and sheep, and cheese of +kine, for David, and for the people that were with him, to eat: for +they said, The people is hungry, and weary, and thirsty, in the +wilderness. + +18:1 And David numbered the people that were with him, and set +captains of thousands, and captains of hundreds over them. + +18:2 And David sent forth a third part of the people under the hand of +Joab, and a third part under the hand of Abishai the son of Zeruiah, +Joab's brother, and a third part under the hand of Ittai the Gittite. +And the king said unto the people, I will surely go forth with you +myself also. + +18:3 But the people answered, Thou shalt not go forth: for if we flee +away, they will not care for us; neither if half of us die, will they +care for us: but now thou art worth ten thousand of us: therefore now +it is better that thou succour us out of the city. + +18:4 And the king said unto them, What seemeth you best I will do. And +the king stood by the gate side, and all the people came out by +hundreds and by thousands. + +18:5 And the king commanded Joab and Abishai and Ittai, saying, Deal +gently for my sake with the young man, even with Absalom. And all the +people heard when the king gave all the captains charge concerning +Absalom. + +18:6 So the people went out into the field against Israel: and the +battle was in the wood of Ephraim; 18:7 Where the people of Israel +were slain before the servants of David, and there was there a great +slaughter that day of twenty thousand men. + +18:8 For the battle was there scattered over the face of all the +country: and the wood devoured more people that day than the sword +devoured. + +18:9 And Absalom met the servants of David. And Absalom rode upon a +mule, and the mule went under the thick boughs of a great oak, and his +head caught hold of the oak, and he was taken up between the heaven +and the earth; and the mule that was under him went away. + +18:10 And a certain man saw it, and told Joab, and said, Behold, I saw +Absalom hanged in an oak. + +18:11 And Joab said unto the man that told him, And, behold, thou +sawest him, and why didst thou not smite him there to the ground? and +I would have given thee ten shekels of silver, and a girdle. + +18:12 And the man said unto Joab, Though I should receive a thousand +shekels of silver in mine hand, yet would I not put forth mine hand +against the king's son: for in our hearing the king charged thee and +Abishai and Ittai, saying, Beware that none touch the young man +Absalom. + +18:13 Otherwise I should have wrought falsehood against mine own life: +for there is no matter hid from the king, and thou thyself wouldest +have set thyself against me. + +18:14 Then said Joab, I may not tarry thus with thee. And he took +three darts in his hand, and thrust them through the heart of Absalom, +while he was yet alive in the midst of the oak. + +18:15 And ten young men that bare Joab's armour compassed about and +smote Absalom, and slew him. + +18:16 And Joab blew the trumpet, and the people returned from pursuing +after Israel: for Joab held back the people. + +18:17 And they took Absalom, and cast him into a great pit in the +wood, and laid a very great heap of stones upon him: and all Israel +fled every one to his tent. + +18:18 Now Absalom in his lifetime had taken and reared up for himself +a pillar, which is in the king's dale: for he said, I have no son to +keep my name in remembrance: and he called the pillar after his own +name: and it is called unto this day, Absalom's place. + +18:19 Then said Ahimaaz the son of Zadok, Let me now run, and bear the +king tidings, how that the LORD hath avenged him of his enemies. + +18:20 And Joab said unto him, Thou shalt not bear tidings this day, +but thou shalt bear tidings another day: but this day thou shalt bear +no tidings, because the king's son is dead. + +18:21 Then said Joab to Cushi, Go tell the king what thou hast seen. +And Cushi bowed himself unto Joab, and ran. + +18:22 Then said Ahimaaz the son of Zadok yet again to Joab, But +howsoever, let me, I pray thee, also run after Cushi. And Joab said, +Wherefore wilt thou run, my son, seeing that thou hast no tidings +ready? 18:23 But howsoever, said he, let me run. And he said unto +him, Run. Then Ahimaaz ran by the way of the plain, and overran Cushi. + +18:24 And David sat between the two gates: and the watchman went up to +the roof over the gate unto the wall, and lifted up his eyes, and +looked, and behold a man running alone. + +18:25 And the watchman cried, and told the king. And the king said, If +he be alone, there is tidings in his mouth. And he came apace, and +drew near. + +18:26 And the watchman saw another man running: and the watchman +called unto the porter, and said, Behold another man running alone. +And the king said, He also bringeth tidings. + +18:27 And the watchman said, Me thinketh the running of the foremost +is like the running of Ahimaaz the son of Zadok. And the king said, He +is a good man, and cometh with good tidings. + +18:28 And Ahimaaz called, and said unto the king, All is well. And he +fell down to the earth upon his face before the king, and said, +Blessed be the LORD thy God, which hath delivered up the men that +lifted up their hand against my lord the king. + +18:29 And the king said, Is the young man Absalom safe? And Ahimaaz +answered, When Joab sent the king's servant, and me thy servant, I saw +a great tumult, but I knew not what it was. + +18:30 And the king said unto him, Turn aside, and stand here. And he +turned aside, and stood still. + +18:31 And, behold, Cushi came; and Cushi said, Tidings, my lord the +king: for the LORD hath avenged thee this day of all them that rose up +against thee. + +18:32 And the king said unto Cushi, Is the young man Absalom safe? And +Cushi answered, The enemies of my lord the king, and all that rise +against thee to do thee hurt, be as that young man is. + +18:33 And the king was much moved, and went up to the chamber over the +gate, and wept: and as he went, thus he said, O my son Absalom, my +son, my son Absalom! would God I had died for thee, O Absalom, my son, +my son! 19:1 And it was told Joab, Behold, the king weepeth and +mourneth for Absalom. + +19:2 And the victory that day was turned into mourning unto all the +people: for the people heard say that day how the king was grieved for +his son. + +19:3 And the people gat them by stealth that day into the city, as +people being ashamed steal away when they flee in battle. + +19:4 But the king covered his face, and the king cried with a loud +voice, O my son Absalom, O Absalom, my son, my son! 19:5 And Joab +came into the house to the king, and said, Thou hast shamed this day +the faces of all thy servants, which this day have saved thy life, and +the lives of thy sons and of thy daughters, and the lives of thy +wives, and the lives of thy concubines; 19:6 In that thou lovest thine +enemies, and hatest thy friends. For thou hast declared this day, that +thou regardest neither princes nor servants: for this day I perceive, +that if Absalom had lived, and all we had died this day, then it had +pleased thee well. + +19:7 Now therefore arise, go forth, and speak comfortably unto thy +servants: for I swear by the LORD, if thou go not forth, there will +not tarry one with thee this night: and that will be worse unto thee +than all the evil that befell thee from thy youth until now. + +19:8 Then the king arose, and sat in the gate. And they told unto all +the people, saying, Behold, the king doth sit in the gate. And all the +people came before the king: for Israel had fled every man to his +tent. + +19:9 And all the people were at strife throughout all the tribes of +Israel, saying, The king saved us out of the hand of our enemies, and +he delivered us out of the hand of the Philistines; and now he is fled +out of the land for Absalom. + +19:10 And Absalom, whom we anointed over us, is dead in battle. Now +therefore why speak ye not a word of bringing the king back? 19:11 +And king David sent to Zadok and to Abiathar the priests, saying, +Speak unto the elders of Judah, saying, Why are ye the last to bring +the king back to his house? seeing the speech of all Israel is come to +the king, even to his house. + +19:12 Ye are my brethren, ye are my bones and my flesh: wherefore then +are ye the last to bring back the king? 19:13 And say ye to Amasa, +Art thou not of my bone, and of my flesh? God do so to me, and more +also, if thou be not captain of the host before me continually in the +room of Joab. + +19:14 And he bowed the heart of all the men of Judah, even as the +heart of one man; so that they sent this word unto the king, Return +thou, and all thy servants. + +19:15 So the king returned, and came to Jordan. And Judah came to +Gilgal, to go to meet the king, to conduct the king over Jordan. + +19:16 And Shimei the son of Gera, a Benjamite, which was of Bahurim, +hasted and came down with the men of Judah to meet king David. + +19:17 And there were a thousand men of Benjamin with him, and Ziba the +servant of the house of Saul, and his fifteen sons and his twenty +servants with him; and they went over Jordan before the king. + +19:18 And there went over a ferry boat to carry over the king's +household, and to do what he thought good. And Shimei the son of Gera +fell down before the king, as he was come over Jordan; 19:19 And said +unto the king, Let not my lord impute iniquity unto me, neither do +thou remember that which thy servant did perversely the day that my +lord the king went out of Jerusalem, that the king should take it to +his heart. + +19:20 For thy servant doth know that I have sinned: therefore, behold, +I am come the first this day of all the house of Joseph to go down to +meet my lord the king. + +19:21 But Abishai the son of Zeruiah answered and said, Shall not +Shimei be put to death for this, because he cursed the LORD's +anointed? 19:22 And David said, What have I to do with you, ye sons +of Zeruiah, that ye should this day be adversaries unto me? shall +there any man be put to death this day in Israel? for do not I know +that I am this day king over Israel? 19:23 Therefore the king said +unto Shimei, Thou shalt not die. And the king sware unto him. + +19:24 And Mephibosheth the son of Saul came down to meet the king, and +had neither dressed his feet, nor trimmed his beard, nor washed his +clothes, from the day the king departed until the day he came again in +peace. + +19:25 And it came to pass, when he was come to Jerusalem to meet the +king, that the king said unto him, Wherefore wentest not thou with me, +Mephibosheth? 19:26 And he answered, My lord, O king, my servant +deceived me: for thy servant said, I will saddle me an ass, that I may +ride thereon, and go to the king; because thy servant is lame. + +19:27 And he hath slandered thy servant unto my lord the king; but my +lord the king is as an angel of God: do therefore what is good in +thine eyes. + +19:28 For all of my father's house were but dead men before my lord +the king: yet didst thou set thy servant among them that did eat at +thine own table. What right therefore have I yet to cry any more unto +the king? 19:29 And the king said unto him, Why speakest thou any +more of thy matters? I have said, Thou and Ziba divide the land. + +19:30 And Mephibosheth said unto the king, Yea, let him take all, +forasmuch as my lord the king is come again in peace unto his own +house. + +19:31 And Barzillai the Gileadite came down from Rogelim, and went +over Jordan with the king, to conduct him over Jordan. + +19:32 Now Barzillai was a very aged man, even fourscore years old: and +he had provided the king of sustenance while he lay at Mahanaim; for +he was a very great man. + +19:33 And the king said unto Barzillai, Come thou over with me, and I +will feed thee with me in Jerusalem. + +19:34 And Barzillai said unto the king, How long have I to live, that +I should go up with the king unto Jerusalem? 19:35 I am this day +fourscore years old: and can I discern between good and evil? can thy +servant taste what I eat or what I drink? can I hear any more the +voice of singing men and singing women? wherefore then should thy +servant be yet a burden unto my lord the king? 19:36 Thy servant will +go a little way over Jordan with the king: and why should the king +recompense it me with such a reward? 19:37 Let thy servant, I pray +thee, turn back again, that I may die in mine own city, and be buried +by the grave of my father and of my mother. But behold thy servant +Chimham; let him go over with my lord the king; and do to him what +shall seem good unto thee. + +19:38 And the king answered, Chimham shall go over with me, and I will +do to him that which shall seem good unto thee: and whatsoever thou +shalt require of me, that will I do for thee. + +19:39 And all the people went over Jordan. And when the king was come +over, the king kissed Barzillai, and blessed him; and he returned unto +his own place. + +19:40 Then the king went on to Gilgal, and Chimham went on with him: +and all the people of Judah conducted the king, and also half the +people of Israel. + +19:41 And, behold, all the men of Israel came to the king, and said +unto the king, Why have our brethren the men of Judah stolen thee +away, and have brought the king, and his household, and all David's +men with him, over Jordan? 19:42 And all the men of Judah answered +the men of Israel, Because the king is near of kin to us: wherefore +then be ye angry for this matter? have we eaten at all of the king's +cost? or hath he given us any gift? 19:43 And the men of Israel +answered the men of Judah, and said, We have ten parts in the king, +and we have also more right in David than ye: why then did ye despise +us, that our advice should not be first had in bringing back our king? +And the words of the men of Judah were fiercer than the words of the +men of Israel. + +20:1 And there happened to be there a man of Belial, whose name was +Sheba, the son of Bichri, a Benjamite: and he blew a trumpet, and +said, We have no part in David, neither have we inheritance in the son +of Jesse: every man to his tents, O Israel. + +20:2 So every man of Israel went up from after David, and followed +Sheba the son of Bichri: but the men of Judah clave unto their king, +from Jordan even to Jerusalem. + +20:3 And David came to his house at Jerusalem; and the king took the +ten women his concubines, whom he had left to keep the house, and put +them in ward, and fed them, but went not in unto them. So they were +shut up unto the day of their death, living in widowhood. + +20:4 Then said the king to Amasa, Assemble me the men of Judah within +three days, and be thou here present. + +20:5 So Amasa went to assemble the men of Judah: but he tarried longer +than the set time which he had appointed him. + +20:6 And David said to Abishai, Now shall Sheba the son of Bichri do +us more harm than did Absalom: take thou thy lord's servants, and +pursue after him, lest he get him fenced cities, and escape us. + +20:7 And there went out after him Joab's men, and the Cherethites, and +the Pelethites, and all the mighty men: and they went out of +Jerusalem, to pursue after Sheba the son of Bichri. + +20:8 When they were at the great stone which is in Gibeon, Amasa went +before them. And Joab's garment that he had put on was girded unto +him, and upon it a girdle with a sword fastened upon his loins in the +sheath thereof; and as he went forth it fell out. + +20:9 And Joab said to Amasa, Art thou in health, my brother? And Joab +took Amasa by the beard with the right hand to kiss him. + +20:10 But Amasa took no heed to the sword that was in Joab's hand: so +he smote him therewith in the fifth rib, and shed out his bowels to +the ground, and struck him not again; and he died. So Joab and Abishai +his brother pursued after Sheba the son of Bichri. + +20:11 And one of Joab's men stood by him, and said, He that favoureth +Joab, and he that is for David, let him go after Joab. + +20:12 And Amasa wallowed in blood in the midst of the highway. And +when the man saw that all the people stood still, he removed Amasa out +of the highway into the field, and cast a cloth upon him, when he saw +that every one that came by him stood still. + +20:13 When he was removed out of the highway, all the people went on +after Joab, to pursue after Sheba the son of Bichri. + +20:14 And he went through all the tribes of Israel unto Abel, and to +Bethmaachah, and all the Berites: and they were gathered together, and +went also after him. + +20:15 And they came and besieged him in Abel of Bethmaachah, and they +cast up a bank against the city, and it stood in the trench: and all +the people that were with Joab battered the wall, to throw it down. + +20:16 Then cried a wise woman out of the city, Hear, hear; say, I pray +you, unto Joab, Come near hither, that I may speak with thee. + +20:17 And when he was come near unto her, the woman said, Art thou +Joab? And he answered, I am he. Then she said unto him, Hear the +words of thine handmaid. And he answered, I do hear. + +20:18 Then she spake, saying, They were wont to speak in old time, +saying, They shall surely ask counsel at Abel: and so they ended the +matter. + +20:19 I am one of them that are peaceable and faithful in Israel: thou +seekest to destroy a city and a mother in Israel: why wilt thou +swallow up the inheritance of the LORD? 20:20 And Joab answered and +said, Far be it, far be it from me, that I should swallow up or +destroy. + +20:21 The matter is not so: but a man of mount Ephraim, Sheba the son +of Bichri by name, hath lifted up his hand against the king, even +against David: deliver him only, and I will depart from the city. And +the woman said unto Joab, Behold, his head shall be thrown to thee +over the wall. + +20:22 Then the woman went unto all the people in her wisdom. And they +cut off the head of Sheba the son of Bichri, and cast it out to Joab. +And he blew a trumpet, and they retired from the city, every man to +his tent. And Joab returned to Jerusalem unto the king. + +20:23 Now Joab was over all the host of Israel: and Benaiah the son of +Jehoiada was over the Cherethites and over the Pelethites: 20:24 And +Adoram was over the tribute: and Jehoshaphat the son of Ahilud was +recorder: 20:25 And Sheva was scribe: and Zadok and Abiathar were the +priests: 20:26 And Ira also the Jairite was a chief ruler about David. + +21:1 Then there was a famine in the days of David three years, year +after year; and David enquired of the LORD. And the LORD answered, It +is for Saul, and for his bloody house, because he slew the Gibeonites. + +21:2 And the king called the Gibeonites, and said unto them; (now the +Gibeonites were not of the children of Israel, but of the remnant of +the Amorites; and the children of Israel had sworn unto them: and Saul +sought to slay them in his zeal to the children of Israel and Judah.) +21:3 Wherefore David said unto the Gibeonites, What shall I do for +you? and wherewith shall I make the atonement, that ye may bless the +inheritance of the LORD? 21:4 And the Gibeonites said unto him, We +will have no silver nor gold of Saul, nor of his house; neither for us +shalt thou kill any man in Israel. And he said, What ye shall say, +that will I do for you. + +21:5 And they answered the king, The man that consumed us, and that +devised against us that we should be destroyed from remaining in any +of the coasts of Israel, 21:6 Let seven men of his sons be delivered +unto us, and we will hang them up unto the LORD in Gibeah of Saul, +whom the LORD did choose. And the king said, I will give them. + +21:7 But the king spared Mephibosheth, the son of Jonathan the son of +Saul, because of the LORD's oath that was between them, between David +and Jonathan the son of Saul. + +21:8 But the king took the two sons of Rizpah the daughter of Aiah, +whom she bare unto Saul, Armoni and Mephibosheth; and the five sons of +Michal the daughter of Saul, whom she brought up for Adriel the son of +Barzillai the Meholathite: 21:9 And he delivered them into the hands +of the Gibeonites, and they hanged them in the hill before the LORD: +and they fell all seven together, and were put to death in the days of +harvest, in the first days, in the beginning of barley harvest. + +21:10 And Rizpah the daughter of Aiah took sackcloth, and spread it +for her upon the rock, from the beginning of harvest until water +dropped upon them out of heaven, and suffered neither the birds of the +air to rest on them by day, nor the beasts of the field by night. + +21:11 And it was told David what Rizpah the daughter of Aiah, the +concubine of Saul, had done. + +21:12 And David went and took the bones of Saul and the bones of +Jonathan his son from the men of Jabeshgilead, which had stolen them +from the street of Bethshan, where the Philistines had hanged them, +when the Philistines had slain Saul in Gilboa: 21:13 And he brought up +from thence the bones of Saul and the bones of Jonathan his son; and +they gathered the bones of them that were hanged. + +21:14 And the bones of Saul and Jonathan his son buried they in the +country of Benjamin in Zelah, in the sepulchre of Kish his father: and +they performed all that the king commanded. And after that God was +intreated for the land. + +21:15 Moreover the Philistines had yet war again with Israel; and +David went down, and his servants with him, and fought against the +Philistines: and David waxed faint. + +21:16 And Ishbibenob, which was of the sons of the giant, the weight +of whose spear weighed three hundred shekels of brass in weight, he +being girded with a new sword, thought to have slain David. + +21:17 But Abishai the son of Zeruiah succoured him, and smote the +Philistine, and killed him. Then the men of David sware unto him, +saying, Thou shalt go no more out with us to battle, that thou quench +not the light of Israel. + +21:18 And it came to pass after this, that there was again a battle +with the Philistines at Gob: then Sibbechai the Hushathite slew Saph, +which was of the sons of the giant. + +21:19 And there was again a battle in Gob with the Philistines, where +Elhanan the son of Jaareoregim, a Bethlehemite, slew the brother of +Goliath the Gittite, the staff of whose spear was like a weaver's +beam. + +21:20 And there was yet a battle in Gath, where was a man of great +stature, that had on every hand six fingers, and on every foot six +toes, four and twenty in number; and he also was born to the giant. + +21:21 And when he defied Israel, Jonathan the son of Shimeah the +brother of David slew him. + +21:22 These four were born to the giant in Gath, and fell by the hand +of David, and by the hand of his servants. + +22:1 And David spake unto the LORD the words of this song in the day +that the LORD had delivered him out of the hand of all his enemies, +and out of the hand of Saul: 22:2 And he said, The LORD is my rock, +and my fortress, and my deliverer; 22:3 The God of my rock; in him +will I trust: he is my shield, and the horn of my salvation, my high +tower, and my refuge, my saviour; thou savest me from violence. + +22:4 I will call on the LORD, who is worthy to be praised: so shall I +be saved from mine enemies. + +22:5 When the waves of death compassed me, the floods of ungodly men +made me afraid; 22:6 The sorrows of hell compassed me about; the +snares of death prevented me; 22:7 In my distress I called upon the +LORD, and cried to my God: and he did hear my voice out of his temple, +and my cry did enter into his ears. + +22:8 Then the earth shook and trembled; the foundations of heaven +moved and shook, because he was wroth. + +22:9 There went up a smoke out of his nostrils, and fire out of his +mouth devoured: coals were kindled by it. + +22:10 He bowed the heavens also, and came down; and darkness was under +his feet. + +22:11 And he rode upon a cherub, and did fly: and he was seen upon the +wings of the wind. + +22:12 And he made darkness pavilions round about him, dark waters, and +thick clouds of the skies. + +22:13 Through the brightness before him were coals of fire kindled. + +22:14 The LORD thundered from heaven, and the most High uttered his +voice. + +22:15 And he sent out arrows, and scattered them; lightning, and +discomfited them. + +22:16 And the channels of the sea appeared, the foundations of the +world were discovered, at the rebuking of the LORD, at the blast of +the breath of his nostrils. + +22:17 He sent from above, he took me; he drew me out of many waters; +22:18 He delivered me from my strong enemy, and from them that hated +me: for they were too strong for me. + +22:19 They prevented me in the day of my calamity: but the LORD was my +stay. + +22:20 He brought me forth also into a large place: he delivered me, +because he delighted in me. + +22:21 The LORD rewarded me according to my righteousness: according to +the cleanness of my hands hath he recompensed me. + +22:22 For I have kept the ways of the LORD, and have not wickedly +departed from my God. + +22:23 For all his judgments were before me: and as for his statutes, I +did not depart from them. + +22:24 I was also upright before him, and have kept myself from mine +iniquity. + +22:25 Therefore the LORD hath recompensed me according to my +righteousness; according to my cleanness in his eye sight. + +22:26 With the merciful thou wilt shew thyself merciful, and with the +upright man thou wilt shew thyself upright. + +22:27 With the pure thou wilt shew thyself pure; and with the froward +thou wilt shew thyself unsavoury. + +22:28 And the afflicted people thou wilt save: but thine eyes are upon +the haughty, that thou mayest bring them down. + +22:29 For thou art my lamp, O LORD: and the LORD will lighten my +darkness. + +22:30 For by thee I have run through a troop: by my God have I leaped +over a wall. + +22:31 As for God, his way is perfect; the word of the LORD is tried: +he is a buckler to all them that trust in him. + +22:32 For who is God, save the LORD? and who is a rock, save our God? +22:33 God is my strength and power: and he maketh my way perfect. + +22:34 He maketh my feet like hinds' feet: and setteth me upon my high +places. + +22:35 He teacheth my hands to war; so that a bow of steel is broken by +mine arms. + +22:36 Thou hast also given me the shield of thy salvation: and thy +gentleness hath made me great. + +22:37 Thou hast enlarged my steps under me; so that my feet did not +slip. + +22:38 I have pursued mine enemies, and destroyed them; and turned not +again until I had consumed them. + +22:39 And I have consumed them, and wounded them, that they could not +arise: yea, they are fallen under my feet. + +22:40 For thou hast girded me with strength to battle: them that rose +up against me hast thou subdued under me. + +22:41 Thou hast also given me the necks of mine enemies, that I might +destroy them that hate me. + +22:42 They looked, but there was none to save; even unto the LORD, but +he answered them not. + +22:43 Then did I beat them as small as the dust of the earth, I did +stamp them as the mire of the street, and did spread them abroad. + +22:44 Thou also hast delivered me from the strivings of my people, +thou hast kept me to be head of the heathen: a people which I knew not +shall serve me. + +22:45 Strangers shall submit themselves unto me: as soon as they hear, +they shall be obedient unto me. + +22:46 Strangers shall fade away, and they shall be afraid out of their +close places. + +22:47 The LORD liveth; and blessed be my rock; and exalted be the God +of the rock of my salvation. + +22:48 It is God that avengeth me, and that bringeth down the people +under me. + +22:49 And that bringeth me forth from mine enemies: thou also hast +lifted me up on high above them that rose up against me: thou hast +delivered me from the violent man. + +22:50 Therefore I will give thanks unto thee, O LORD, among the +heathen, and I will sing praises unto thy name. + +22:51 He is the tower of salvation for his king: and sheweth mercy to +his anointed, unto David, and to his seed for evermore. + +23:1 Now these be the last words of David. David the son of Jesse +said, and the man who was raised up on high, the anointed of the God +of Jacob, and the sweet psalmist of Israel, said, 23:2 The Spirit of +the LORD spake by me, and his word was in my tongue. + +23:3 The God of Israel said, the Rock of Israel spake to me, He that +ruleth over men must be just, ruling in the fear of God. + +23:4 And he shall be as the light of the morning, when the sun riseth, +even a morning without clouds; as the tender grass springing out of +the earth by clear shining after rain. + +23:5 Although my house be not so with God; yet he hath made with me an +everlasting covenant, ordered in all things, and sure: for this is all +my salvation, and all my desire, although he make it not to grow. + +23:6 But the sons of Belial shall be all of them as thorns thrust +away, because they cannot be taken with hands: 23:7 But the man that +shall touch them must be fenced with iron and the staff of a spear; +and they shall be utterly burned with fire in the same place. + +23:8 These be the names of the mighty men whom David had: The +Tachmonite that sat in the seat, chief among the captains; the same +was Adino the Eznite: he lift up his spear against eight hundred, whom +he slew at one time. + +23:9 And after him was Eleazar the son of Dodo the Ahohite, one of the +three mighty men with David, when they defied the Philistines that +were there gathered together to battle, and the men of Israel were +gone away: 23:10 He arose, and smote the Philistines until his hand +was weary, and his hand clave unto the sword: and the LORD wrought a +great victory that day; and the people returned after him only to +spoil. + +23:11 And after him was Shammah the son of Agee the Hararite. And the +Philistines were gathered together into a troop, where was a piece of +ground full of lentiles: and the people fled from the Philistines. + +23:12 But he stood in the midst of the ground, and defended it, and +slew the Philistines: and the LORD wrought a great victory. + +23:13 And three of the thirty chief went down, and came to David in +the harvest time unto the cave of Adullam: and the troop of the +Philistines pitched in the valley of Rephaim. + +23:14 And David was then in an hold, and the garrison of the +Philistines was then in Bethlehem. + +23:15 And David longed, and said, Oh that one would give me drink of +the water of the well of Bethlehem, which is by the gate! 23:16 And +the three mighty men brake through the host of the Philistines, and +drew water out of the well of Bethlehem, that was by the gate, and +took it, and brought it to David: nevertheless he would not drink +thereof, but poured it out unto the LORD. + +23:17 And he said, Be it far from me, O LORD, that I should do this: +is not this the blood of the men that went in jeopardy of their lives? +therefore he would not drink it. These things did these three mighty +men. + +23:18 And Abishai, the brother of Joab, the son of Zeruiah, was chief +among three. And he lifted up his spear against three hundred, and +slew them, and had the name among three. + +23:19 Was he not most honourable of three? therefore he was their +captain: howbeit he attained not unto the first three. + +23:20 And Benaiah the son of Jehoiada, the son of a valiant man, of +Kabzeel, who had done many acts, he slew two lionlike men of Moab: he +went down also and slew a lion in the midst of a pit in time of snow: +23:21 And he slew an Egyptian, a goodly man: and the Egyptian had a +spear in his hand; but he went down to him with a staff, and plucked +the spear out of the Egyptian's hand, and slew him with his own spear. + +23:22 These things did Benaiah the son of Jehoiada, and had the name +among three mighty men. + +23:23 He was more honourable than the thirty, but he attained not to +the first three. And David set him over his guard. + +23:24 Asahel the brother of Joab was one of the thirty; Elhanan the +son of Dodo of Bethlehem, 23:25 Shammah the Harodite, Elika the +Harodite, 23:26 Helez the Paltite, Ira the son of Ikkesh the Tekoite, +23:27 Abiezer the Anethothite, Mebunnai the Hushathite, 23:28 Zalmon +the Ahohite, Maharai the Netophathite, 23:29 Heleb the son of Baanah, +a Netophathite, Ittai the son of Ribai out of Gibeah of the children +of Benjamin, 23:30 Benaiah the Pirathonite, Hiddai of the brooks of +Gaash, 23:31 Abialbon the Arbathite, Azmaveth the Barhumite, 23:32 +Eliahba the Shaalbonite, of the sons of Jashen, Jonathan, 23:33 +Shammah the Hararite, Ahiam the son of Sharar the Hararite, 23:34 +Eliphelet the son of Ahasbai, the son of the Maachathite, Eliam the +son of Ahithophel the Gilonite, 23:35 Hezrai the Carmelite, Paarai the +Arbite, 23:36 Igal the son of Nathan of Zobah, Bani the Gadite, 23:37 +Zelek the Ammonite, Nahari the Beerothite, armourbearer to Joab the +son of Zeruiah, 23:38 Ira an Ithrite, Gareb an Ithrite, 23:39 Uriah +the Hittite: thirty and seven in all. + +24:1 And again the anger of the LORD was kindled against Israel, and +he moved David against them to say, Go, number Israel and Judah. + +24:2 For the king said to Joab the captain of the host, which was with +him, Go now through all the tribes of Israel, from Dan even to +Beersheba, and number ye the people, that I may know the number of the +people. + +24:3 And Joab said unto the king, Now the LORD thy God add unto the +people, how many soever they be, an hundredfold, and that the eyes of +my lord the king may see it: but why doth my lord the king delight in +this thing? 24:4 Notwithstanding the king's word prevailed against +Joab, and against the captains of the host. And Joab and the captains +of the host went out from the presence of the king, to number the +people of Israel. + +24:5 And they passed over Jordan, and pitched in Aroer, on the right +side of the city that lieth in the midst of the river of Gad, and +toward Jazer: 24:6 Then they came to Gilead, and to the land of +Tahtimhodshi; and they came to Danjaan, and about to Zidon, 24:7 And +came to the strong hold of Tyre, and to all the cities of the Hivites, +and of the Canaanites: and they went out to the south of Judah, even +to Beersheba. + +24:8 So when they had gone through all the land, they came to +Jerusalem at the end of nine months and twenty days. + +24:9 And Joab gave up the sum of the number of the people unto the +king: and there were in Israel eight hundred thousand valiant men that +drew the sword; and the men of Judah were five hundred thousand men. + +24:10 And David's heart smote him after that he had numbered the +people. + +And David said unto the LORD, I have sinned greatly in that I have +done: and now, I beseech thee, O LORD, take away the iniquity of thy +servant; for I have done very foolishly. + +24:11 For when David was up in the morning, the word of the LORD came +unto the prophet Gad, David's seer, saying, 24:12 Go and say unto +David, Thus saith the LORD, I offer thee three things; choose thee one +of them, that I may do it unto thee. + +24:13 So Gad came to David, and told him, and said unto him, Shall +seven years of famine come unto thee in thy land? or wilt thou flee +three months before thine enemies, while they pursue thee? or that +there be three days' pestilence in thy land? now advise, and see what +answer I shall return to him that sent me. + +24:14 And David said unto Gad, I am in a great strait: let us fall now +into the hand of the LORD; for his mercies are great: and let me not +fall into the hand of man. + +24:15 So the LORD sent a pestilence upon Israel from the morning even +to the time appointed: and there died of the people from Dan even to +Beersheba seventy thousand men. + +24:16 And when the angel stretched out his hand upon Jerusalem to +destroy it, the LORD repented him of the evil, and said to the angel +that destroyed the people, It is enough: stay now thine hand. And the +angel of the LORD was by the threshingplace of Araunah the Jebusite. + +24:17 And David spake unto the LORD when he saw the angel that smote +the people, and said, Lo, I have sinned, and I have done wickedly: but +these sheep, what have they done? let thine hand, I pray thee, be +against me, and against my father's house. + +24:18 And Gad came that day to David, and said unto him, Go up, rear +an altar unto the LORD in the threshingfloor of Araunah the Jebusite. + +24:19 And David, according to the saying of Gad, went up as the LORD +commanded. + +24:20 And Araunah looked, and saw the king and his servants coming on +toward him: and Araunah went out, and bowed himself before the king on +his face upon the ground. + +24:21 And Araunah said, Wherefore is my lord the king come to his +servant? And David said, To buy the threshingfloor of thee, to build +an altar unto the LORD, that the plague may be stayed from the people. + +24:22 And Araunah said unto David, Let my lord the king take and offer +up what seemeth good unto him: behold, here be oxen for burnt +sacrifice, and threshing instruments and other instruments of the oxen +for wood. + +24:23 All these things did Araunah, as a king, give unto the king. And +Araunah said unto the king, The LORD thy God accept thee. + +24:24 And the king said unto Araunah, Nay; but I will surely buy it of +thee at a price: neither will I offer burnt offerings unto the LORD my +God of that which doth cost me nothing. So David bought the +threshingfloor and the oxen for fifty shekels of silver. + +24:25 And David built there an altar unto the LORD, and offered burnt +offerings and peace offerings. So the LORD was intreated for the land, +and the plague was stayed from Israel. + + + + +The First Book of the Kings + +Commonly Called: + +The Third Book of the Kings + + +1:1 Now king David was old and stricken in years; and they covered +him with clothes, but he gat no heat. + +1:2 Wherefore his servants said unto him, Let there be sought for my +lord the king a young virgin: and let her stand before the king, and +let her cherish him, and let her lie in thy bosom, that my lord the +king may get heat. + +1:3 So they sought for a fair damsel throughout all the coasts of +Israel, and found Abishag a Shunammite, and brought her to the king. + +1:4 And the damsel was very fair, and cherished the king, and +ministered to him: but the king knew her not. + +1:5 Then Adonijah the son of Haggith exalted himself, saying, I will +be king: and he prepared him chariots and horsemen, and fifty men to +run before him. + +1:6 And his father had not displeased him at any time in saying, Why +hast thou done so? and he also was a very goodly man; and his mother +bare him after Absalom. + +1:7 And he conferred with Joab the son of Zeruiah, and with Abiathar +the priest: and they following Adonijah helped him. + +1:8 But Zadok the priest, and Benaiah the son of Jehoiada, and Nathan +the prophet, and Shimei, and Rei, and the mighty men which belonged to +David, were not with Adonijah. + +1:9 And Adonijah slew sheep and oxen and fat cattle by the stone of +Zoheleth, which is by Enrogel, and called all his brethren the king's +sons, and all the men of Judah the king's servants: 1:10 But Nathan +the prophet, and Benaiah, and the mighty men, and Solomon his brother, +he called not. + +1:11 Wherefore Nathan spake unto Bathsheba the mother of Solomon, +saying, Hast thou not heard that Adonijah the son of Haggith doth +reign, and David our lord knoweth it not? 1:12 Now therefore come, +let me, I pray thee, give thee counsel, that thou mayest save thine +own life, and the life of thy son Solomon. + +1:13 Go and get thee in unto king David, and say unto him, Didst not +thou, my lord, O king, swear unto thine handmaid, saying, Assuredly +Solomon thy son shall reign after me, and he shall sit upon my throne? +why then doth Adonijah reign? 1:14 Behold, while thou yet talkest +there with the king, I also will come in after thee, and confirm thy +words. + +1:15 And Bathsheba went in unto the king into the chamber: and the +king was very old; and Abishag the Shunammite ministered unto the +king. + +1:16 And Bathsheba bowed, and did obeisance unto the king. And the +king said, What wouldest thou? 1:17 And she said unto him, My lord, +thou swarest by the LORD thy God unto thine handmaid, saying, +Assuredly Solomon thy son shall reign after me, and he shall sit upon +my throne. + +1:18 And now, behold, Adonijah reigneth; and now, my lord the king, +thou knowest it not: 1:19 And he hath slain oxen and fat cattle and +sheep in abundance, and hath called all the sons of the king, and +Abiathar the priest, and Joab the captain of the host: but Solomon thy +servant hath he not called. + +1:20 And thou, my lord, O king, the eyes of all Israel are upon thee, +that thou shouldest tell them who shall sit on the throne of my lord +the king after him. + +1:21 Otherwise it shall come to pass, when my lord the king shall +sleep with his fathers, that I and my son Solomon shall be counted +offenders. + +1:22 And, lo, while she yet talked with the king, Nathan the prophet +also came in. + +1:23 And they told the king, saying, Behold Nathan the prophet. And +when he was come in before the king, he bowed himself before the king +with his face to the ground. + +1:24 And Nathan said, My lord, O king, hast thou said, Adonijah shall +reign after me, and he shall sit upon my throne? 1:25 For he is gone +down this day, and hath slain oxen and fat cattle and sheep in +abundance, and hath called all the king's sons, and the captains of +the host, and Abiathar the priest; and, behold, they eat and drink +before him, and say, God save king Adonijah. + +1:26 But me, even me thy servant, and Zadok the priest, and Benaiah +the son of Jehoiada, and thy servant Solomon, hath he not called. + +1:27 Is this thing done by my lord the king, and thou hast not shewed +it unto thy servant, who should sit on the throne of my lord the king +after him? 1:28 Then king David answered and said, Call me Bathsheba. +And she came into the king's presence, and stood before the king. + +1:29 And the king sware, and said, As the LORD liveth, that hath +redeemed my soul out of all distress, 1:30 Even as I sware unto thee +by the LORD God of Israel, saying, Assuredly Solomon thy son shall +reign after me, and he shall sit upon my throne in my stead; even so +will I certainly do this day. + +1:31 Then Bathsheba bowed with her face to the earth, and did +reverence to the king, and said, Let my lord king David live for ever. + +1:32 And king David said, Call me Zadok the priest, and Nathan the +prophet, and Benaiah the son of Jehoiada. And they came before the +king. + +1:33 The king also said unto them, Take with you the servants of your +lord, and cause Solomon my son to ride upon mine own mule, and bring +him down to Gihon: 1:34 And let Zadok the priest and Nathan the +prophet anoint him there king over Israel: and blow ye with the +trumpet, and say, God save king Solomon. + +1:35 Then ye shall come up after him, that he may come and sit upon my +throne; for he shall be king in my stead: and I have appointed him to +be ruler over Israel and over Judah. + +1:36 And Benaiah the son of Jehoiada answered the king, and said, +Amen: the LORD God of my lord the king say so too. + +1:37 As the LORD hath been with my lord the king, even so be he with +Solomon, and make his throne greater than the throne of my lord king +David. + +1:38 So Zadok the priest, and Nathan the prophet, and Benaiah the son +of Jehoiada, and the Cherethites, and the Pelethites, went down, and +caused Solomon to ride upon king David's mule, and brought him to +Gihon. + +1:39 And Zadok the priest took an horn of oil out of the tabernacle, +and anointed Solomon. And they blew the trumpet; and all the people +said, God save king Solomon. + +1:40 And all the people came up after him, and the people piped with +pipes, and rejoiced with great joy, so that the earth rent with the +sound of them. + +1:41 And Adonijah and all the guests that were with him heard it as +they had made an end of eating. And when Joab heard the sound of the +trumpet, he said, Wherefore is this noise of the city being in an +uproar? 1:42 And while he yet spake, behold, Jonathan the son of +Abiathar the priest came; and Adonijah said unto him, Come in; for +thou art a valiant man, and bringest good tidings. + +1:43 And Jonathan answered and said to Adonijah, Verily our lord king +David hath made Solomon king. + +1:44 And the king hath sent with him Zadok the priest, and Nathan the +prophet, and Benaiah the son of Jehoiada, and the Cherethites, and the +Pelethites, and they have caused him to ride upon the king's mule: +1:45 And Zadok the priest and Nathan the prophet have anointed him +king in Gihon: and they are come up from thence rejoicing, so that the +city rang again. This is the noise that ye have heard. + +1:46 And also Solomon sitteth on the throne of the kingdom. + +1:47 And moreover the king's servants came to bless our lord king +David, saying, God make the name of Solomon better than thy name, and +make his throne greater than thy throne. And the king bowed himself +upon the bed. + +1:48 And also thus said the king, Blessed be the LORD God of Israel, +which hath given one to sit on my throne this day, mine eyes even +seeing it. + +1:49 And all the guests that were with Adonijah were afraid, and rose +up, and went every man his way. + +1:50 And Adonijah feared because of Solomon, and arose, and went, and +caught hold on the horns of the altar. + +1:51 And it was told Solomon, saying, Behold, Adonijah feareth king +Solomon: for, lo, he hath caught hold on the horns of the altar, +saying, Let king Solomon swear unto me today that he will not slay his +servant with the sword. + +1:52 And Solomon said, If he will shew himself a worthy man, there +shall not an hair of him fall to the earth: but if wickedness shall be +found in him, he shall die. + +1:53 So king Solomon sent, and they brought him down from the altar. +And he came and bowed himself to king Solomon: and Solomon said unto +him, Go to thine house. + +2:1 Now the days of David drew nigh that he should die; and he charged +Solomon his son, saying, 2:2 I go the way of all the earth: be thou +strong therefore, and shew thyself a man; 2:3 And keep the charge of +the LORD thy God, to walk in his ways, to keep his statutes, and his +commandments, and his judgments, and his testimonies, as it is written +in the law of Moses, that thou mayest prosper in all that thou doest, +and whithersoever thou turnest thyself: 2:4 That the LORD may continue +his word which he spake concerning me, saying, If thy children take +heed to their way, to walk before me in truth with all their heart and +with all their soul, there shall not fail thee (said he) a man on the +throne of Israel. + +2:5 Moreover thou knowest also what Joab the son of Zeruiah did to me, +and what he did to the two captains of the hosts of Israel, unto Abner +the son of Ner, and unto Amasa the son of Jether, whom he slew, and +shed the blood of war in peace, and put the blood of war upon his +girdle that was about his loins, and in his shoes that were on his +feet. + +2:6 Do therefore according to thy wisdom, and let not his hoar head go +down to the grave in peace. + +2:7 But shew kindness unto the sons of Barzillai the Gileadite, and +let them be of those that eat at thy table: for so they came to me +when I fled because of Absalom thy brother. + +2:8 And, behold, thou hast with thee Shimei the son of Gera, a +Benjamite of Bahurim, which cursed me with a grievous curse in the day +when I went to Mahanaim: but he came down to meet me at Jordan, and I +sware to him by the LORD, saying, I will not put thee to death with +the sword. + +2:9 Now therefore hold him not guiltless: for thou art a wise man, and +knowest what thou oughtest to do unto him; but his hoar head bring +thou down to the grave with blood. + +2:10 So David slept with his fathers, and was buried in the city of +David. + +2:11 And the days that David reigned over Israel were forty years: +seven years reigned he in Hebron, and thirty and three years reigned +he in Jerusalem. + +2:12 Then sat Solomon upon the throne of David his father; and his +kingdom was established greatly. + +2:13 And Adonijah the son of Haggith came to Bathsheba the mother of +Solomon. And she said, Comest thou peaceably? And he said, Peaceably. + +2:14 He said moreover, I have somewhat to say unto thee. And she said, +Say on. + +2:15 And he said, Thou knowest that the kingdom was mine, and that all +Israel set their faces on me, that I should reign: howbeit the kingdom +is turned about, and is become my brother's: for it was his from the +LORD. + +2:16 And now I ask one petition of thee, deny me not. And she said +unto him, Say on. + +2:17 And he said, Speak, I pray thee, unto Solomon the king, (for he +will not say thee nay,) that he give me Abishag the Shunammite to +wife. + +2:18 And Bathsheba said, Well; I will speak for thee unto the king. + +2:19 Bathsheba therefore went unto king Solomon, to speak unto him for +Adonijah. And the king rose up to meet her, and bowed himself unto +her, and sat down on his throne, and caused a seat to be set for the +king's mother; and she sat on his right hand. + +2:20 Then she said, I desire one small petition of thee; I pray thee, +say me not nay. And the king said unto her, Ask on, my mother: for I +will not say thee nay. + +2:21 And she said, Let Abishag the Shunammite be given to Adonijah thy +brother to wife. + +2:22 And king Solomon answered and said unto his mother, And why dost +thou ask Abishag the Shunammite for Adonijah? ask for him the kingdom +also; for he is mine elder brother; even for him, and for Abiathar the +priest, and for Joab the son of Zeruiah. + +2:23 Then king Solomon sware by the LORD, saying, God do so to me, and +more also, if Adonijah have not spoken this word against his own life. + +2:24 Now therefore, as the LORD liveth, which hath established me, and +set me on the throne of David my father, and who hath made me an +house, as he promised, Adonijah shall be put to death this day. + +2:25 And king Solomon sent by the hand of Benaiah the son of Jehoiada; +and he fell upon him that he died. + +2:26 And unto Abiathar the priest said the king, Get thee to Anathoth, +unto thine own fields; for thou art worthy of death: but I will not at +this time put thee to death, because thou barest the ark of the LORD +God before David my father, and because thou hast been afflicted in +all wherein my father was afflicted. + +2:27 So Solomon thrust out Abiathar from being priest unto the LORD; +that he might fulfil the word of the LORD, which he spake concerning +the house of Eli in Shiloh. + +2:28 Then tidings came to Joab: for Joab had turned after Adonijah, +though he turned not after Absalom. And Joab fled unto the tabernacle +of the LORD, and caught hold on the horns of the altar. + +2:29 And it was told king Solomon that Joab was fled unto the +tabernacle of the LORD; and, behold, he is by the altar. Then Solomon +sent Benaiah the son of Jehoiada, saying, Go, fall upon him. + +2:30 And Benaiah came to the tabernacle of the LORD, and said unto +him, Thus saith the king, Come forth. And he said, Nay; but I will die +here. And Benaiah brought the king word again, saying, Thus said Joab, +and thus he answered me. + +2:31 And the king said unto him, Do as he hath said, and fall upon +him, and bury him; that thou mayest take away the innocent blood, +which Joab shed, from me, and from the house of my father. + +2:32 And the LORD shall return his blood upon his own head, who fell +upon two men more righteous and better than he, and slew them with the +sword, my father David not knowing thereof, to wit, Abner the son of +Ner, captain of the host of Israel, and Amasa the son of Jether, +captain of the host of Judah. + +2:33 Their blood shall therefore return upon the head of Joab, and +upon the head of his seed for ever: but upon David, and upon his seed, +and upon his house, and upon his throne, shall there be peace for ever +from the LORD. + +2:34 So Benaiah the son of Jehoiada went up, and fell upon him, and +slew him: and he was buried in his own house in the wilderness. + +2:35 And the king put Benaiah the son of Jehoiada in his room over the +host: and Zadok the priest did the king put in the room of Abiathar. + +2:36 And the king sent and called for Shimei, and said unto him, Build +thee an house in Jerusalem, and dwell there, and go not forth thence +any whither. + +2:37 For it shall be, that on the day thou goest out, and passest over +the brook Kidron, thou shalt know for certain that thou shalt surely +die: thy blood shall be upon thine own head. + +2:38 And Shimei said unto the king, The saying is good: as my lord the +king hath said, so will thy servant do. And Shimei dwelt in Jerusalem +many days. + +2:39 And it came to pass at the end of three years, that two of the +servants of Shimei ran away unto Achish son of Maachah king of Gath. +And they told Shimei, saying, Behold, thy servants be in Gath. + +2:40 And Shimei arose, and saddled his ass, and went to Gath to Achish +to seek his servants: and Shimei went, and brought his servants from +Gath. + +2:41 And it was told Solomon that Shimei had gone from Jerusalem to +Gath, and was come again. + +2:42 And the king sent and called for Shimei, and said unto him, Did I +not make thee to swear by the LORD, and protested unto thee, saying, +Know for a certain, on the day thou goest out, and walkest abroad any +whither, that thou shalt surely die? and thou saidst unto me, The word +that I have heard is good. + +2:43 Why then hast thou not kept the oath of the LORD, and the +commandment that I have charged thee with? 2:44 The king said +moreover to Shimei, Thou knowest all the wickedness which thine heart +is privy to, that thou didst to David my father: therefore the LORD +shall return thy wickedness upon thine own head; 2:45 And king Solomon +shall be blessed, and the throne of David shall be established before +the LORD for ever. + +2:46 So the king commanded Benaiah the son of Jehoiada; which went +out, and fell upon him, that he died. And the kingdom was established +in the hand of Solomon. + +3:1 And Solomon made affinity with Pharaoh king of Egypt, and took +Pharaoh's daughter, and brought her into the city of David, until he +had made an end of building his own house, and the house of the LORD, +and the wall of Jerusalem round about. + +3:2 Only the people sacrificed in high places, because there was no +house built unto the name of the LORD, until those days. + +3:3 And Solomon loved the LORD, walking in the statutes of David his +father: only he sacrificed and burnt incense in high places. + +3:4 And the king went to Gibeon to sacrifice there; for that was the +great high place: a thousand burnt offerings did Solomon offer upon +that altar. + +3:5 In Gibeon the LORD appeared to Solomon in a dream by night: and +God said, Ask what I shall give thee. + +3:6 And Solomon said, Thou hast shewed unto thy servant David my +father great mercy, according as he walked before thee in truth, and +in righteousness, and in uprightness of heart with thee; and thou hast +kept for him this great kindness, that thou hast given him a son to +sit on his throne, as it is this day. + +3:7 And now, O LORD my God, thou hast made thy servant king instead of +David my father: and I am but a little child: I know not how to go out +or come in. + +3:8 And thy servant is in the midst of thy people which thou hast +chosen, a great people, that cannot be numbered nor counted for +multitude. + +3:9 Give therefore thy servant an understanding heart to judge thy +people, that I may discern between good and bad: for who is able to +judge this thy so great a people? 3:10 And the speech pleased the +LORD, that Solomon had asked this thing. + +3:11 And God said unto him, Because thou hast asked this thing, and +hast not asked for thyself long life; neither hast asked riches for +thyself, nor hast asked the life of thine enemies; but hast asked for +thyself understanding to discern judgment; 3:12 Behold, I have done +according to thy words: lo, I have given thee a wise and an +understanding heart; so that there was none like thee before thee, +neither after thee shall any arise like unto thee. + +3:13 And I have also given thee that which thou hast not asked, both +riches, and honour: so that there shall not be any among the kings +like unto thee all thy days. + +3:14 And if thou wilt walk in my ways, to keep my statutes and my +commandments, as thy father David did walk, then I will lengthen thy +days. + +3:15 And Solomon awoke; and, behold, it was a dream. And he came to +Jerusalem, and stood before the ark of the covenant of the LORD, and +offered up burnt offerings, and offered peace offerings, and made a +feast to all his servants. + +3:16 Then came there two women, that were harlots, unto the king, and +stood before him. + +3:17 And the one woman said, O my lord, I and this woman dwell in one +house; and I was delivered of a child with her in the house. + +3:18 And it came to pass the third day after that I was delivered, +that this woman was delivered also: and we were together; there was no +stranger with us in the house, save we two in the house. + +3:19 And this woman's child died in the night; because she overlaid +it. + +3:20 And she arose at midnight, and took my son from beside me, while +thine handmaid slept, and laid it in her bosom, and laid her dead +child in my bosom. + +3:21 And when I rose in the morning to give my child suck, behold, it +was dead: but when I had considered it in the morning, behold, it was +not my son, which I did bear. + +3:22 And the other woman said, Nay; but the living is my son, and the +dead is thy son. And this said, No; but the dead is thy son, and the +living is my son. Thus they spake before the king. + +3:23 Then said the king, The one saith, This is my son that liveth, +and thy son is the dead: and the other saith, Nay; but thy son is the +dead, and my son is the living. + +3:24 And the king said, Bring me a sword. And they brought a sword +before the king. + +3:25 And the king said, Divide the living child in two, and give half +to the one, and half to the other. + +3:26 Then spake the woman whose the living child was unto the king, +for her bowels yearned upon her son, and she said, O my lord, give her +the living child, and in no wise slay it. But the other said, Let it +be neither mine nor thine, but divide it. + +3:27 Then the king answered and said, Give her the living child, and +in no wise slay it: she is the mother thereof. + +3:28 And all Israel heard of the judgment which the king had judged; +and they feared the king: for they saw that the wisdom of God was in +him, to do judgment. + +4:1 So king Solomon was king over all Israel. + +4:2 And these were the princes which he had; Azariah the son of Zadok +the priest, 4:3 Elihoreph and Ahiah, the sons of Shisha, scribes; +Jehoshaphat the son of Ahilud, the recorder. + +4:4 And Benaiah the son of Jehoiada was over the host: and Zadok and +Abiathar were the priests: 4:5 And Azariah the son of Nathan was over +the officers: and Zabud the son of Nathan was principal officer, and +the king's friend: 4:6 And Ahishar was over the household: and +Adoniram the son of Abda was over the tribute. + +4:7 And Solomon had twelve officers over all Israel, which provided +victuals for the king and his household: each man his month in a year +made provision. + +4:8 And these are their names: The son of Hur, in mount Ephraim: 4:9 +The son of Dekar, in Makaz, and in Shaalbim, and Bethshemesh, and +Elonbethhanan: 4:10 The son of Hesed, in Aruboth; to him pertained +Sochoh, and all the land of Hepher: 4:11 The son of Abinadab, in all +the region of Dor; which had Taphath the daughter of Solomon to wife: +4:12 Baana the son of Ahilud; to him pertained Taanach and Megiddo, +and all Bethshean, which is by Zartanah beneath Jezreel, from +Bethshean to Abelmeholah, even unto the place that is beyond Jokneam: +4:13 The son of Geber, in Ramothgilead; to him pertained the towns of +Jair the son of Manasseh, which are in Gilead; to him also pertained +the region of Argob, which is in Bashan, threescore great cities with +walls and brasen bars: 4:14 Ahinadab the son of Iddo had Mahanaim: +4:15 Ahimaaz was in Naphtali; he also took Basmath the daughter of +Solomon to wife: 4:16 Baanah the son of Hushai was in Asher and in +Aloth: 4:17 Jehoshaphat the son of Paruah, in Issachar: 4:18 Shimei +the son of Elah, in Benjamin: 4:19 Geber the son of Uri was in the +country of Gilead, in the country of Sihon king of the Amorites, and +of Og king of Bashan; and he was the only officer which was in the +land. + +4:20 Judah and Israel were many, as the sand which is by the sea in +multitude, eating and drinking, and making merry. + +4:21 And Solomon reigned over all kingdoms from the river unto the +land of the Philistines, and unto the border of Egypt: they brought +presents, and served Solomon all the days of his life. + +4:22 And Solomon's provision for one day was thirty measures of fine +flour, and threescore measures of meal, 4:23 Ten fat oxen, and twenty +oxen out of the pastures, and an hundred sheep, beside harts, and +roebucks, and fallowdeer, and fatted fowl. + +4:24 For he had dominion over all the region on this side the river, +from Tiphsah even to Azzah, over all the kings on this side the river: +and he had peace on all sides round about him. + +4:25 And Judah and Israel dwelt safely, every man under his vine and +under his fig tree, from Dan even to Beersheba, all the days of +Solomon. + +4:26 And Solomon had forty thousand stalls of horses for his chariots, +and twelve thousand horsemen. + +4:27 And those officers provided victual for king Solomon, and for all +that came unto king Solomon's table, every man in his month: they +lacked nothing. + +4:28 Barley also and straw for the horses and dromedaries brought they +unto the place where the officers were, every man according to his +charge. + +4:29 And God gave Solomon wisdom and understanding exceeding much, and +largeness of heart, even as the sand that is on the sea shore. + +4:30 And Solomon's wisdom excelled the wisdom of all the children of +the east country, and all the wisdom of Egypt. + +4:31 For he was wiser than all men; than Ethan the Ezrahite, and +Heman, and Chalcol, and Darda, the sons of Mahol: and his fame was in +all nations round about. + +4:32 And he spake three thousand proverbs: and his songs were a +thousand and five. + +4:33 And he spake of trees, from the cedar tree that is in Lebanon +even unto the hyssop that springeth out of the wall: he spake also of +beasts, and of fowl, and of creeping things, and of fishes. + +4:34 And there came of all people to hear the wisdom of Solomon, from +all kings of the earth, which had heard of his wisdom. + +5:1 And Hiram king of Tyre sent his servants unto Solomon; for he had +heard that they had anointed him king in the room of his father: for +Hiram was ever a lover of David. + +5:2 And Solomon sent to Hiram, saying, 5:3 Thou knowest how that David +my father could not build an house unto the name of the LORD his God +for the wars which were about him on every side, until the LORD put +them under the soles of his feet. + +5:4 But now the LORD my God hath given me rest on every side, so that +there is neither adversary nor evil occurrent. + +5:5 And, behold, I purpose to build an house unto the name of the LORD +my God, as the LORD spake unto David my father, saying, Thy son, whom +I will set upon thy throne in thy room, he shall build an house unto +my name. + +5:6 Now therefore command thou that they hew me cedar trees out of +Lebanon; and my servants shall be with thy servants: and unto thee +will I give hire for thy servants according to all that thou shalt +appoint: for thou knowest that there is not among us any that can +skill to hew timber like unto the Sidonians. + +5:7 And it came to pass, when Hiram heard the words of Solomon, that +he rejoiced greatly, and said, Blessed be the LORD this day, which +hath given unto David a wise son over this great people. + +5:8 And Hiram sent to Solomon, saying, I have considered the things +which thou sentest to me for: and I will do all thy desire concerning +timber of cedar, and concerning timber of fir. + +5:9 My servants shall bring them down from Lebanon unto the sea: and I +will convey them by sea in floats unto the place that thou shalt +appoint me, and will cause them to be discharged there, and thou shalt +receive them: and thou shalt accomplish my desire, in giving food for +my household. + +5:10 So Hiram gave Solomon cedar trees and fir trees according to all +his desire. + +5:11 And Solomon gave Hiram twenty thousand measures of wheat for food +to his household, and twenty measures of pure oil: thus gave Solomon +to Hiram year by year. + +5:12 And the LORD gave Solomon wisdom, as he promised him: and there +was peace between Hiram and Solomon; and they two made a league +together. + +5:13 And king Solomon raised a levy out of all Israel; and the levy +was thirty thousand men. + +5:14 And he sent them to Lebanon, ten thousand a month by courses: a +month they were in Lebanon, and two months at home: and Adoniram was +over the levy. + +5:15 And Solomon had threescore and ten thousand that bare burdens, +and fourscore thousand hewers in the mountains; 5:16 Beside the chief +of Solomon's officers which were over the work, three thousand and +three hundred, which ruled over the people that wrought in the work. + +5:17 And the king commanded, and they brought great stones, costly +stones, and hewed stones, to lay the foundation of the house. + +5:18 And Solomon's builders and Hiram's builders did hew them, and the +stonesquarers: so they prepared timber and stones to build the house. + +6:1 And it came to pass in the four hundred and eightieth year after +the children of Israel were come out of the land of Egypt, in the +fourth year of Solomon's reign over Israel, in the month Zif, which is +the second month, that he began to build the house of the LORD. + +6:2 And the house which king Solomon built for the LORD, the length +thereof was threescore cubits, and the breadth thereof twenty cubits, +and the height thereof thirty cubits. + +6:3 And the porch before the temple of the house, twenty cubits was +the length thereof, according to the breadth of the house; and ten +cubits was the breadth thereof before the house. + +6:4 And for the house he made windows of narrow lights. + +6:5 And against the wall of the house he built chambers round about, +against the walls of the house round about, both of the temple and of +the oracle: and he made chambers round about: 6:6 The nethermost +chamber was five cubits broad, and the middle was six cubits broad, +and the third was seven cubits broad: for without in the wall of the +house he made narrowed rests round about, that the beams should not be +fastened in the walls of the house. + +6:7 And the house, when it was in building, was built of stone made +ready before it was brought thither: so that there was neither hammer +nor axe nor any tool of iron heard in the house, while it was in +building. + +6:8 The door for the middle chamber was in the right side of the +house: and they went up with winding stairs into the middle chamber, +and out of the middle into the third. + +6:9 So he built the house, and finished it; and covered the house with +beams and boards of cedar. + +6:10 And then he built chambers against all the house, five cubits +high: and they rested on the house with timber of cedar. + +6:11 And the word of the LORD came to Solomon, saying, 6:12 Concerning +this house which thou art in building, if thou wilt walk in my +statutes, and execute my judgments, and keep all my commandments to +walk in them; then will I perform my word with thee, which I spake +unto David thy father: 6:13 And I will dwell among the children of +Israel, and will not forsake my people Israel. + +6:14 So Solomon built the house, and finished it. + +6:15 And he built the walls of the house within with boards of cedar, +both the floor of the house, and the walls of the ceiling: and he +covered them on the inside with wood, and covered the floor of the +house with planks of fir. + +6:16 And he built twenty cubits on the sides of the house, both the +floor and the walls with boards of cedar: he even built them for it +within, even for the oracle, even for the most holy place. + +6:17 And the house, that is, the temple before it, was forty cubits +long. + +6:18 And the cedar of the house within was carved with knops and open +flowers: all was cedar; there was no stone seen. + +6:19 And the oracle he prepared in the house within, to set there the +ark of the covenant of the LORD. + +6:20 And the oracle in the forepart was twenty cubits in length, and +twenty cubits in breadth, and twenty cubits in the height thereof: and +he overlaid it with pure gold; and so covered the altar which was of +cedar. + +6:21 So Solomon overlaid the house within with pure gold: and he made +a partition by the chains of gold before the oracle; and he overlaid +it with gold. + +6:22 And the whole house he overlaid with gold, until he had finished +all the house: also the whole altar that was by the oracle he overlaid +with gold. + +6:23 And within the oracle he made two cherubims of olive tree, each +ten cubits high. + +6:24 And five cubits was the one wing of the cherub, and five cubits +the other wing of the cherub: from the uttermost part of the one wing +unto the uttermost part of the other were ten cubits. + +6:25 And the other cherub was ten cubits: both the cherubims were of +one measure and one size. + +6:26 The height of the one cherub was ten cubits, and so was it of the +other cherub. + +6:27 And he set the cherubims within the inner house: and they +stretched forth the wings of the cherubims, so that the wing of the +one touched the one wall, and the wing of the other cherub touched the +other wall; and their wings touched one another in the midst of the +house. + +6:28 And he overlaid the cherubims with gold. + +6:29 And he carved all the walls of the house round about with carved +figures of cherubims and palm trees and open flowers, within and +without. + +6:30 And the floors of the house he overlaid with gold, within and +without. + +6:31 And for the entering of the oracle he made doors of olive tree: +the lintel and side posts were a fifth part of the wall. + +6:32 The two doors also were of olive tree; and he carved upon them +carvings of cherubims and palm trees and open flowers, and overlaid +them with gold, and spread gold upon the cherubims, and upon the palm +trees. + +6:33 So also made he for the door of the temple posts of olive tree, a +fourth part of the wall. + +6:34 And the two doors were of fir tree: the two leaves of the one +door were folding, and the two leaves of the other door were folding. + +6:35 And he carved thereon cherubims and palm trees and open flowers: +and covered them with gold fitted upon the carved work. + +6:36 And he built the inner court with three rows of hewed stone, and +a row of cedar beams. + +6:37 In the fourth year was the foundation of the house of the LORD +laid, in the month Zif: 6:38 And in the eleventh year, in the month +Bul, which is the eighth month, was the house finished throughout all +the parts thereof, and according to all the fashion of it. So was he +seven years in building it. + +7:1 But Solomon was building his own house thirteen years, and he +finished all his house. + +7:2 He built also the house of the forest of Lebanon; the length +thereof was an hundred cubits, and the breadth thereof fifty cubits, +and the height thereof thirty cubits, upon four rows of cedar pillars, +with cedar beams upon the pillars. + +7:3 And it was covered with cedar above upon the beams, that lay on +forty five pillars, fifteen in a row. + +7:4 And there were windows in three rows, and light was against light +in three ranks. + +7:5 And all the doors and posts were square, with the windows: and +light was against light in three ranks. + +7:6 And he made a porch of pillars; the length thereof was fifty +cubits, and the breadth thereof thirty cubits: and the porch was +before them: and the other pillars and the thick beam were before +them. + +7:7 Then he made a porch for the throne where he might judge, even the +porch of judgment: and it was covered with cedar from one side of the +floor to the other. + +7:8 And his house where he dwelt had another court within the porch, +which was of the like work. Solomon made also an house for Pharaoh's +daughter, whom he had taken to wife, like unto this porch. + +7:9 All these were of costly stones, according to the measures of +hewed stones, sawed with saws, within and without, even from the +foundation unto the coping, and so on the outside toward the great +court. + +7:10 And the foundation was of costly stones, even great stones, +stones of ten cubits, and stones of eight cubits. + +7:11 And above were costly stones, after the measures of hewed stones, +and cedars. + +7:12 And the great court round about was with three rows of hewed +stones, and a row of cedar beams, both for the inner court of the +house of the LORD, and for the porch of the house. + +7:13 And king Solomon sent and fetched Hiram out of Tyre. + +7:14 He was a widow's son of the tribe of Naphtali, and his father was +a man of Tyre, a worker in brass: and he was filled with wisdom, and +understanding, and cunning to work all works in brass. And he came to +king Solomon, and wrought all his work. + +7:15 For he cast two pillars of brass, of eighteen cubits high apiece: +and a line of twelve cubits did compass either of them about. + +7:16 And he made two chapiters of molten brass, to set upon the tops +of the pillars: the height of the one chapiter was five cubits, and +the height of the other chapiter was five cubits: 7:17 And nets of +checker work, and wreaths of chain work, for the chapiters which were +upon the top of the pillars; seven for the one chapiter, and seven for +the other chapiter. + +7:18 And he made the pillars, and two rows round about upon the one +network, to cover the chapiters that were upon the top, with +pomegranates: and so did he for the other chapiter. + +7:19 And the chapiters that were upon the top of the pillars were of +lily work in the porch, four cubits. + +7:20 And the chapiters upon the two pillars had pomegranates also +above, over against the belly which was by the network: and the +pomegranates were two hundred in rows round about upon the other +chapiter. + +7:21 And he set up the pillars in the porch of the temple: and he set +up the right pillar, and called the name thereof Jachin: and he set up +the left pillar, and called the name thereof Boaz. + +7:22 And upon the top of the pillars was lily work: so was the work of +the pillars finished. + +7:23 And he made a molten sea, ten cubits from the one brim to the +other: it was round all about, and his height was five cubits: and a +line of thirty cubits did compass it round about. + +7:24 And under the brim of it round about there were knops compassing +it, ten in a cubit, compassing the sea round about: the knops were +cast in two rows, when it was cast. + +7:25 It stood upon twelve oxen, three looking toward the north, and +three looking toward the west, and three looking toward the south, and +three looking toward the east: and the sea was set above upon them, +and all their hinder parts were inward. + +7:26 And it was an hand breadth thick, and the brim thereof was +wrought like the brim of a cup, with flowers of lilies: it contained +two thousand baths. + +7:27 And he made ten bases of brass; four cubits was the length of one +base, and four cubits the breadth thereof, and three cubits the height +of it. + +7:28 And the work of the bases was on this manner: they had borders, +and the borders were between the ledges: 7:29 And on the borders that +were between the ledges were lions, oxen, and cherubims: and upon the +ledges there was a base above: and beneath the lions and oxen were +certain additions made of thin work. + +7:30 And every base had four brasen wheels, and plates of brass: and +the four corners thereof had undersetters: under the laver were +undersetters molten, at the side of every addition. + +7:31 And the mouth of it within the chapiter and above was a cubit: +but the mouth thereof was round after the work of the base, a cubit +and an half: and also upon the mouth of it were gravings with their +borders, foursquare, not round. + +7:32 And under the borders were four wheels; and the axletrees of the +wheels were joined to the base: and the height of a wheel was a cubit +and half a cubit. + +7:33 And the work of the wheels was like the work of a chariot wheel: +their axletrees, and their naves, and their felloes, and their spokes, +were all molten. + +7:34 And there were four undersetters to the four corners of one base: +and the undersetters were of the very base itself. + +7:35 And in the top of the base was there a round compass of half a +cubit high: and on the top of the base the ledges thereof and the +borders thereof were of the same. + +7:36 For on the plates of the ledges thereof, and on the borders +thereof, he graved cherubims, lions, and palm trees, according to the +proportion of every one, and additions round about. + +7:37 After this manner he made the ten bases: all of them had one +casting, one measure, and one size. + +7:38 Then made he ten lavers of brass: one laver contained forty +baths: and every laver was four cubits: and upon every one of the ten +bases one laver. + +7:39 And he put five bases on the right side of the house, and five on +the left side of the house: and he set the sea on the right side of +the house eastward over against the south. + +7:40 And Hiram made the lavers, and the shovels, and the basons. So +Hiram made an end of doing all the work that he made king Solomon for +the house of the LORD: 7:41 The two pillars, and the two bowls of the +chapiters that were on the top of the two pillars; and the two +networks, to cover the two bowls of the chapiters which were upon the +top of the pillars; 7:42 And four hundred pomegranates for the two +networks, even two rows of pomegranates for one network, to cover the +two bowls of the chapiters that were upon the pillars; 7:43 And the +ten bases, and ten lavers on the bases; 7:44 And one sea, and twelve +oxen under the sea; 7:45 And the pots, and the shovels, and the +basons: and all these vessels, which Hiram made to king Solomon for +the house of the LORD, were of bright brass. + +7:46 In the plain of Jordan did the king cast them, in the clay ground +between Succoth and Zarthan. + +7:47 And Solomon left all the vessels unweighed, because they were +exceeding many: neither was the weight of the brass found out. + +7:48 And Solomon made all the vessels that pertained unto the house of +the LORD: the altar of gold, and the table of gold, whereupon the +shewbread was, 7:49 And the candlesticks of pure gold, five on the +right side, and five on the left, before the oracle, with the flowers, +and the lamps, and the tongs of gold, 7:50 And the bowls, and the +snuffers, and the basons, and the spoons, and the censers of pure +gold; and the hinges of gold, both for the doors of the inner house, +the most holy place, and for the doors of the house, to wit, of the +temple. + +7:51 So was ended all the work that king Solomon made for the house of +the LORD. And Solomon brought in the things which David his father had +dedicated; even the silver, and the gold, and the vessels, did he put +among the treasures of the house of the LORD. + +8:1 Then Solomon assembled the elders of Israel, and all the heads of +the tribes, the chief of the fathers of the children of Israel, unto +king Solomon in Jerusalem, that they might bring up the ark of the +covenant of the LORD out of the city of David, which is Zion. + +8:2 And all the men of Israel assembled themselves unto king Solomon +at the feast in the month Ethanim, which is the seventh month. + +8:3 And all the elders of Israel came, and the priests took up the +ark. + +8:4 And they brought up the ark of the LORD, and the tabernacle of the +congregation, and all the holy vessels that were in the tabernacle, +even those did the priests and the Levites bring up. + +8:5 And king Solomon, and all the congregation of Israel, that were +assembled unto him, were with him before the ark, sacrificing sheep +and oxen, that could not be told nor numbered for multitude. + +8:6 And the priests brought in the ark of the covenant of the LORD +unto his place, into the oracle of the house, to the most holy place, +even under the wings of the cherubims. + +8:7 For the cherubims spread forth their two wings over the place of +the ark, and the cherubims covered the ark and the staves thereof +above. + +8:8 And they drew out the staves, that the ends of the staves were +seen out in the holy place before the oracle, and they were not seen +without: and there they are unto this day. + +8:9 There was nothing in the ark save the two tables of stone, which +Moses put there at Horeb, when the LORD made a covenant with the +children of Israel, when they came out of the land of Egypt. + +8:10 And it came to pass, when the priests were come out of the holy +place, that the cloud filled the house of the LORD, 8:11 So that the +priests could not stand to minister because of the cloud: for the +glory of the LORD had filled the house of the LORD. + +8:12 Then spake Solomon, The LORD said that he would dwell in the +thick darkness. + +8:13 I have surely built thee an house to dwell in, a settled place +for thee to abide in for ever. + +8:14 And the king turned his face about, and blessed all the +congregation of Israel: (and all the congregation of Israel stood;) +8:15 And he said, Blessed be the LORD God of Israel, which spake with +his mouth unto David my father, and hath with his hand fulfilled it, +saying, 8:16 Since the day that I brought forth my people Israel out +of Egypt, I chose no city out of all the tribes of Israel to build an +house, that my name might be therein; but I chose David to be over my +people Israel. + +8:17 And it was in the heart of David my father to build an house for +the name of the LORD God of Israel. + +8:18 And the LORD said unto David my father, Whereas it was in thine +heart to build an house unto my name, thou didst well that it was in +thine heart. + +8:19 Nevertheless thou shalt not build the house; but thy son that +shall come forth out of thy loins, he shall build the house unto my +name. + +8:20 And the LORD hath performed his word that he spake, and I am +risen up in the room of David my father, and sit on the throne of +Israel, as the LORD promised, and have built an house for the name of +the LORD God of Israel. + +8:21 And I have set there a place for the ark, wherein is the covenant +of the LORD, which he made with our fathers, when he brought them out +of the land of Egypt. + +8:22 And Solomon stood before the altar of the LORD in the presence of +all the congregation of Israel, and spread forth his hands toward +heaven: 8:23 And he said, LORD God of Israel, there is no God like +thee, in heaven above, or on earth beneath, who keepest covenant and +mercy with thy servants that walk before thee with all their heart: +8:24 Who hast kept with thy servant David my father that thou +promisedst him: thou spakest also with thy mouth, and hast fulfilled +it with thine hand, as it is this day. + +8:25 Therefore now, LORD God of Israel, keep with thy servant David my +father that thou promisedst him, saying, There shall not fail thee a +man in my sight to sit on the throne of Israel; so that thy children +take heed to their way, that they walk before me as thou hast walked +before me. + +8:26 And now, O God of Israel, let thy word, I pray thee, be verified, +which thou spakest unto thy servant David my father. + +8:27 But will God indeed dwell on the earth? behold, the heaven and +heaven of heavens cannot contain thee; how much less this house that I +have builded? 8:28 Yet have thou respect unto the prayer of thy +servant, and to his supplication, O LORD my God, to hearken unto the +cry and to the prayer, which thy servant prayeth before thee to day: +8:29 That thine eyes may be open toward this house night and day, even +toward the place of which thou hast said, My name shall be there: that +thou mayest hearken unto the prayer which thy servant shall make +toward this place. + +8:30 And hearken thou to the supplication of thy servant, and of thy +people Israel, when they shall pray toward this place: and hear thou +in heaven thy dwelling place: and when thou hearest, forgive. + +8:31 If any man trespass against his neighbour, and an oath be laid +upon him to cause him to swear, and the oath come before thine altar +in this house: 8:32 Then hear thou in heaven, and do, and judge thy +servants, condemning the wicked, to bring his way upon his head; and +justifying the righteous, to give him according to his righteousness. + +8:33 When thy people Israel be smitten down before the enemy, because +they have sinned against thee, and shall turn again to thee, and +confess thy name, and pray, and make supplication unto thee in this +house: 8:34 Then hear thou in heaven, and forgive the sin of thy +people Israel, and bring them again unto the land which thou gavest +unto their fathers. + +8:35 When heaven is shut up, and there is no rain, because they have +sinned against thee; if they pray toward this place, and confess thy +name, and turn from their sin, when thou afflictest them: 8:36 Then +hear thou in heaven, and forgive the sin of thy servants, and of thy +people Israel, that thou teach them the good way wherein they should +walk, and give rain upon thy land, which thou hast given to thy people +for an inheritance. + +8:37 If there be in the land famine, if there be pestilence, blasting, +mildew, locust, or if there be caterpiller; if their enemy besiege +them in the land of their cities; whatsoever plague, whatsoever +sickness there be; 8:38 What prayer and supplication soever be made by +any man, or by all thy people Israel, which shall know every man the +plague of his own heart, and spread forth his hands toward this house: +8:39 Then hear thou in heaven thy dwelling place, and forgive, and do, +and give to every man according to his ways, whose heart thou knowest; +(for thou, even thou only, knowest the hearts of all the children of +men;) 8:40 That they may fear thee all the days that they live in the +land which thou gavest unto our fathers. + +8:41 Moreover concerning a stranger, that is not of thy people Israel, +but cometh out of a far country for thy name's sake; 8:42 (For they +shall hear of thy great name, and of thy strong hand, and of thy +stretched out arm;) when he shall come and pray toward this house; +8:43 Hear thou in heaven thy dwelling place, and do according to all +that the stranger calleth to thee for: that all people of the earth +may know thy name, to fear thee, as do thy people Israel; and that +they may know that this house, which I have builded, is called by thy +name. + +8:44 If thy people go out to battle against their enemy, whithersoever +thou shalt send them, and shall pray unto the LORD toward the city +which thou hast chosen, and toward the house that I have built for thy +name: 8:45 Then hear thou in heaven their prayer and their +supplication, and maintain their cause. + +8:46 If they sin against thee, (for there is no man that sinneth not,) +and thou be angry with them, and deliver them to the enemy, so that +they carry them away captives unto the land of the enemy, far or near; +8:47 Yet if they shall bethink themselves in the land whither they +were carried captives, and repent, and make supplication unto thee in +the land of them that carried them captives, saying, We have sinned, +and have done perversely, we have committed wickedness; 8:48 And so +return unto thee with all their heart, and with all their soul, in the +land of their enemies, which led them away captive, and pray unto thee +toward their land, which thou gavest unto their fathers, the city +which thou hast chosen, and the house which I have built for thy name: +8:49 Then hear thou their prayer and their supplication in heaven thy +dwelling place, and maintain their cause, 8:50 And forgive thy people +that have sinned against thee, and all their transgressions wherein +they have transgressed against thee, and give them compassion before +them who carried them captive, that they may have compassion on them: +8:51 For they be thy people, and thine inheritance, which thou +broughtest forth out of Egypt, from the midst of the furnace of iron: +8:52 That thine eyes may be open unto the supplication of thy servant, +and unto the supplication of thy people Israel, to hearken unto them +in all that they call for unto thee. + +8:53 For thou didst separate them from among all the people of the +earth, to be thine inheritance, as thou spakest by the hand of Moses +thy servant, when thou broughtest our fathers out of Egypt, O LORD +God. + +8:54 And it was so, that when Solomon had made an end of praying all +this prayer and supplication unto the LORD, he arose from before the +altar of the LORD, from kneeling on his knees with his hands spread up +to heaven. + +8:55 And he stood, and blessed all the congregation of Israel with a +loud voice, saying, 8:56 Blessed be the LORD, that hath given rest +unto his people Israel, according to all that he promised: there hath +not failed one word of all his good promise, which he promised by the +hand of Moses his servant. + +8:57 The LORD our God be with us, as he was with our fathers: let him +not leave us, nor forsake us: 8:58 That he may incline our hearts unto +him, to walk in all his ways, and to keep his commandments, and his +statutes, and his judgments, which he commanded our fathers. + +8:59 And let these my words, wherewith I have made supplication before +the LORD, be nigh unto the LORD our God day and night, that he +maintain the cause of his servant, and the cause of his people Israel +at all times, as the matter shall require: 8:60 That all the people of +the earth may know that the LORD is God, and that there is none else. + +8:61 Let your heart therefore be perfect with the LORD our God, to +walk in his statutes, and to keep his commandments, as at this day. + +8:62 And the king, and all Israel with him, offered sacrifice before +the LORD. + +8:63 And Solomon offered a sacrifice of peace offerings, which he +offered unto the LORD, two and twenty thousand oxen, and an hundred +and twenty thousand sheep. So the king and all the children of Israel +dedicated the house of the LORD. + +8:64 The same day did the king hallow the middle of the court that was +before the house of the LORD: for there he offered burnt offerings, +and meat offerings, and the fat of the peace offerings: because the +brasen altar that was before the LORD was too little to receive the +burnt offerings, and meat offerings, and the fat of the peace +offerings. + +8:65 And at that time Solomon held a feast, and all Israel with him, a +great congregation, from the entering in of Hamath unto the river of +Egypt, before the LORD our God, seven days and seven days, even +fourteen days. + +8:66 On the eighth day he sent the people away: and they blessed the +king, and went unto their tents joyful and glad of heart for all the +goodness that the LORD had done for David his servant, and for Israel +his people. + +9:1 And it came to pass, when Solomon had finished the building of the +house of the LORD, and the king's house, and all Solomon's desire +which he was pleased to do, 9:2 That the LORD appeared to Solomon the +second time, as he had appeared unto him at Gibeon. + +9:3 And the LORD said unto him, I have heard thy prayer and thy +supplication, that thou hast made before me: I have hallowed this +house, which thou hast built, to put my name there for ever; and mine +eyes and mine heart shall be there perpetually. + +9:4 And if thou wilt walk before me, as David thy father walked, in +integrity of heart, and in uprightness, to do according to all that I +have commanded thee, and wilt keep my statutes and my judgments: 9:5 +Then I will establish the throne of thy kingdom upon Israel for ever, +as I promised to David thy father, saying, There shall not fail thee a +man upon the throne of Israel. + +9:6 But if ye shall at all turn from following me, ye or your +children, and will not keep my commandments and my statutes which I +have set before you, but go and serve other gods, and worship them: +9:7 Then will I cut off Israel out of the land which I have given +them; and this house, which I have hallowed for my name, will I cast +out of my sight; and Israel shall be a proverb and a byword among all +people: 9:8 And at this house, which is high, every one that passeth +by it shall be astonished, and shall hiss; and they shall say, Why +hath the LORD done thus unto this land, and to this house? 9:9 And +they shall answer, Because they forsook the LORD their God, who +brought forth their fathers out of the land of Egypt, and have taken +hold upon other gods, and have worshipped them, and served them: +therefore hath the LORD brought upon them all this evil. + +9:10 And it came to pass at the end of twenty years, when Solomon had +built the two houses, the house of the LORD, and the king's house, +9:11 (Now Hiram the king of Tyre had furnished Solomon with cedar +trees and fir trees, and with gold, according to all his desire,) that +then king Solomon gave Hiram twenty cities in the land of Galilee. + +9:12 And Hiram came out from Tyre to see the cities which Solomon had +given him; and they pleased him not. + +9:13 And he said, What cities are these which thou hast given me, my +brother? And he called them the land of Cabul unto this day. + +9:14 And Hiram sent to the king sixscore talents of gold. + +9:15 And this is the reason of the levy which king Solomon raised; for +to build the house of the LORD, and his own house, and Millo, and the +wall of Jerusalem, and Hazor, and Megiddo, and Gezer. + +9:16 For Pharaoh king of Egypt had gone up, and taken Gezer, and burnt +it with fire, and slain the Canaanites that dwelt in the city, and +given it for a present unto his daughter, Solomon's wife. + +9:17 And Solomon built Gezer, and Bethhoron the nether, 9:18 And +Baalath, and Tadmor in the wilderness, in the land, 9:19 And all the +cities of store that Solomon had, and cities for his chariots, and +cities for his horsemen, and that which Solomon desired to build in +Jerusalem, and in Lebanon, and in all the land of his dominion. + +9:20 And all the people that were left of the Amorites, Hittites, +Perizzites, Hivites, and Jebusites, which were not of the children of +Israel, 9:21 Their children that were left after them in the land, +whom the children of Israel also were not able utterly to destroy, +upon those did Solomon levy a tribute of bondservice unto this day. + +9:22 But of the children of Israel did Solomon make no bondmen: but +they were men of war, and his servants, and his princes, and his +captains, and rulers of his chariots, and his horsemen. + +9:23 These were the chief of the officers that were over Solomon's +work, five hundred and fifty, which bare rule over the people that +wrought in the work. + +9:24 But Pharaoh's daughter came up out of the city of David unto her +house which Solomon had built for her: then did he build Millo. + +9:25 And three times in a year did Solomon offer burnt offerings and +peace offerings upon the altar which he built unto the LORD, and he +burnt incense upon the altar that was before the LORD. So he finished +the house. + +9:26 And king Solomon made a navy of ships in Eziongeber, which is +beside Eloth, on the shore of the Red sea, in the land of Edom. + +9:27 And Hiram sent in the navy his servants, shipmen that had +knowledge of the sea, with the servants of Solomon. + +9:28 And they came to Ophir, and fetched from thence gold, four +hundred and twenty talents, and brought it to king Solomon. + +10:1 And when the queen of Sheba heard of the fame of Solomon +concerning the name of the LORD, she came to prove him with hard +questions. + +10:2 And she came to Jerusalem with a very great train, with camels +that bare spices, and very much gold, and precious stones: and when +she was come to Solomon, she communed with him of all that was in her +heart. + +10:3 And Solomon told her all her questions: there was not any thing +hid from the king, which he told her not. + +10:4 And when the queen of Sheba had seen all Solomon's wisdom, and +the house that he had built, 10:5 And the meat of his table, and the +sitting of his servants, and the attendance of his ministers, and +their apparel, and his cupbearers, and his ascent by which he went up +unto the house of the LORD; there was no more spirit in her. + +10:6 And she said to the king, It was a true report that I heard in +mine own land of thy acts and of thy wisdom. + +10:7 Howbeit I believed not the words, until I came, and mine eyes had +seen it: and, behold, the half was not told me: thy wisdom and +prosperity exceedeth the fame which I heard. + +10:8 Happy are thy men, happy are these thy servants, which stand +continually before thee, and that hear thy wisdom. + +10:9 Blessed be the LORD thy God, which delighted in thee, to set thee +on the throne of Israel: because the LORD loved Israel for ever, +therefore made he thee king, to do judgment and justice. + +10:10 And she gave the king an hundred and twenty talents of gold, and +of spices very great store, and precious stones: there came no more +such abundance of spices as these which the queen of Sheba gave to +king Solomon. + +10:11 And the navy also of Hiram, that brought gold from Ophir, +brought in from Ophir great plenty of almug trees, and precious +stones. + +10:12 And the king made of the almug trees pillars for the house of +the LORD, and for the king's house, harps also and psalteries for +singers: there came no such almug trees, nor were seen unto this day. + +10:13 And king Solomon gave unto the queen of Sheba all her desire, +whatsoever she asked, beside that which Solomon gave her of his royal +bounty. + +So she turned and went to her own country, she and her servants. + +10:14 Now the weight of gold that came to Solomon in one year was six +hundred threescore and six talents of gold, 10:15 Beside that he had +of the merchantmen, and of the traffick of the spice merchants, and of +all the kings of Arabia, and of the governors of the country. + +10:16 And king Solomon made two hundred targets of beaten gold: six +hundred shekels of gold went to one target. + +10:17 And he made three hundred shields of beaten gold; three pound of +gold went to one shield: and the king put them in the house of the +forest of Lebanon. + +10:18 Moreover the king made a great throne of ivory, and overlaid it +with the best gold. + +10:19 The throne had six steps, and the top of the throne was round +behind: and there were stays on either side on the place of the seat, +and two lions stood beside the stays. + +10:20 And twelve lions stood there on the one side and on the other +upon the six steps: there was not the like made in any kingdom. + +10:21 And all king Solomon's drinking vessels were of gold, and all +the vessels of the house of the forest of Lebanon were of pure gold; +none were of silver: it was nothing accounted of in the days of +Solomon. + +10:22 For the king had at sea a navy of Tharshish with the navy of +Hiram: once in three years came the navy of Tharshish, bringing gold, +and silver, ivory, and apes, and peacocks. + +10:23 So king Solomon exceeded all the kings of the earth for riches +and for wisdom. + +10:24 And all the earth sought to Solomon, to hear his wisdom, which +God had put in his heart. + +10:25 And they brought every man his present, vessels of silver, and +vessels of gold, and garments, and armour, and spices, horses, and +mules, a rate year by year. + +10:26 And Solomon gathered together chariots and horsemen: and he had +a thousand and four hundred chariots, and twelve thousand horsemen, +whom he bestowed in the cities for chariots, and with the king at +Jerusalem. + +10:27 And the king made silver to be in Jerusalem as stones, and +cedars made he to be as the sycomore trees that are in the vale, for +abundance. + +10:28 And Solomon had horses brought out of Egypt, and linen yarn: the +king's merchants received the linen yarn at a price. + +10:29 And a chariot came up and went out of Egypt for six hundred +shekels of silver, and an horse for an hundred and fifty: and so for +all the kings of the Hittites, and for the kings of Syria, did they +bring them out by their means. + +11:1 But king Solomon loved many strange women, together with the +daughter of Pharaoh, women of the Moabites, Ammonites, Edomites, +Zidonians, and Hittites: 11:2 Of the nations concerning which the LORD +said unto the children of Israel, Ye shall not go in to them, neither +shall they come in unto you: for surely they will turn away your heart +after their gods: Solomon clave unto these in love. + +11:3 And he had seven hundred wives, princesses, and three hundred +concubines: and his wives turned away his heart. + +11:4 For it came to pass, when Solomon was old, that his wives turned +away his heart after other gods: and his heart was not perfect with +the LORD his God, as was the heart of David his father. + +11:5 For Solomon went after Ashtoreth the goddess of the Zidonians, +and after Milcom the abomination of the Ammonites. + +11:6 And Solomon did evil in the sight of the LORD, and went not fully +after the LORD, as did David his father. + +11:7 Then did Solomon build an high place for Chemosh, the abomination +of Moab, in the hill that is before Jerusalem, and for Molech, the +abomination of the children of Ammon. + +11:8 And likewise did he for all his strange wives, which burnt +incense and sacrificed unto their gods. + +11:9 And the LORD was angry with Solomon, because his heart was turned +from the LORD God of Israel, which had appeared unto him twice, 11:10 +And had commanded him concerning this thing, that he should not go +after other gods: but he kept not that which the LORD commanded. + +11:11 Wherefore the LORD said unto Solomon, Forasmuch as this is done +of thee, and thou hast not kept my covenant and my statutes, which I +have commanded thee, I will surely rend the kingdom from thee, and +will give it to thy servant. + +11:12 Notwithstanding in thy days I will not do it for David thy +father's sake: but I will rend it out of the hand of thy son. + +11:13 Howbeit I will not rend away all the kingdom; but will give one +tribe to thy son for David my servant's sake, and for Jerusalem's sake +which I have chosen. + +11:14 And the LORD stirred up an adversary unto Solomon, Hadad the +Edomite: he was of the king's seed in Edom. + +11:15 For it came to pass, when David was in Edom, and Joab the +captain of the host was gone up to bury the slain, after he had +smitten every male in Edom; 11:16 (For six months did Joab remain +there with all Israel, until he had cut off every male in Edom:) 11:17 +That Hadad fled, he and certain Edomites of his father's servants with +him, to go into Egypt; Hadad being yet a little child. + +11:18 And they arose out of Midian, and came to Paran: and they took +men with them out of Paran, and they came to Egypt, unto Pharaoh king +of Egypt; which gave him an house, and appointed him victuals, and +gave him land. + +11:19 And Hadad found great favour in the sight of Pharaoh, so that he +gave him to wife the sister of his own wife, the sister of Tahpenes +the queen. + +11:20 And the sister of Tahpenes bare him Genubath his son, whom +Tahpenes weaned in Pharaoh's house: and Genubath was in Pharaoh's +household among the sons of Pharaoh. + +11:21 And when Hadad heard in Egypt that David slept with his fathers, +and that Joab the captain of the host was dead, Hadad said to Pharaoh, +Let me depart, that I may go to mine own country. + +11:22 Then Pharaoh said unto him, But what hast thou lacked with me, +that, behold, thou seekest to go to thine own country? And he +answered, Nothing: howbeit let me go in any wise. + +11:23 And God stirred him up another adversary, Rezon the son of +Eliadah, which fled from his lord Hadadezer king of Zobah: 11:24 And +he gathered men unto him, and became captain over a band, when David +slew them of Zobah: and they went to Damascus, and dwelt therein, and +reigned in Damascus. + +11:25 And he was an adversary to Israel all the days of Solomon, +beside the mischief that Hadad did: and he abhorred Israel, and +reigned over Syria. + +11:26 And Jeroboam the son of Nebat, an Ephrathite of Zereda, +Solomon's servant, whose mother's name was Zeruah, a widow woman, even +he lifted up his hand against the king. + +11:27 And this was the cause that he lifted up his hand against the +king: Solomon built Millo, and repaired the breaches of the city of +David his father. + +11:28 And the man Jeroboam was a mighty man of valour: and Solomon +seeing the young man that he was industrious, he made him ruler over +all the charge of the house of Joseph. + +11:29 And it came to pass at that time when Jeroboam went out of +Jerusalem, that the prophet Ahijah the Shilonite found him in the way; +and he had clad himself with a new garment; and they two were alone in +the field: 11:30 And Ahijah caught the new garment that was on him, +and rent it in twelve pieces: 11:31 And he said to Jeroboam, Take thee +ten pieces: for thus saith the LORD, the God of Israel, Behold, I will +rend the kingdom out of the hand of Solomon, and will give ten tribes +to thee: 11:32 (But he shall have one tribe for my servant David's +sake, and for Jerusalem's sake, the city which I have chosen out of +all the tribes of Israel:) 11:33 Because that they have forsaken me, +and have worshipped Ashtoreth the goddess of the Zidonians, Chemosh +the god of the Moabites, and Milcom the god of the children of Ammon, +and have not walked in my ways, to do that which is right in mine +eyes, and to keep my statutes and my judgments, as did David his +father. + +11:34 Howbeit I will not take the whole kingdom out of his hand: but I +will make him prince all the days of his life for David my servant's +sake, whom I chose, because he kept my commandments and my statutes: +11:35 But I will take the kingdom out of his son's hand, and will give +it unto thee, even ten tribes. + +11:36 And unto his son will I give one tribe, that David my servant +may have a light alway before me in Jerusalem, the city which I have +chosen me to put my name there. + +11:37 And I will take thee, and thou shalt reign according to all that +thy soul desireth, and shalt be king over Israel. + +11:38 And it shall be, if thou wilt hearken unto all that I command +thee, and wilt walk in my ways, and do that is right in my sight, to +keep my statutes and my commandments, as David my servant did; that I +will be with thee, and build thee a sure house, as I built for David, +and will give Israel unto thee. + +11:39 And I will for this afflict the seed of David, but not for ever. + +11:40 Solomon sought therefore to kill Jeroboam. And Jeroboam arose, +and fled into Egypt, unto Shishak king of Egypt, and was in Egypt +until the death of Solomon. + +11:41 And the rest of the acts of Solomon, and all that he did, and +his wisdom, are they not written in the book of the acts of Solomon? +11:42 And the time that Solomon reigned in Jerusalem over all Israel +was forty years. + +11:43 And Solomon slept with his fathers, and was buried in the city +of David his father: and Rehoboam his son reigned in his stead. + +12:1 And Rehoboam went to Shechem: for all Israel were come to Shechem +to make him king. + +12:2 And it came to pass, when Jeroboam the son of Nebat, who was yet +in Egypt, heard of it, (for he was fled from the presence of king +Solomon, and Jeroboam dwelt in Egypt;) 12:3 That they sent and called +him. And Jeroboam and all the congregation of Israel came, and spake +unto Rehoboam, saying, 12:4 Thy father made our yoke grievous: now +therefore make thou the grievous service of thy father, and his heavy +yoke which he put upon us, lighter, and we will serve thee. + +12:5 And he said unto them, Depart yet for three days, then come again +to me. And the people departed. + +12:6 And king Rehoboam consulted with the old men, that stood before +Solomon his father while he yet lived, and said, How do ye advise that +I may answer this people? 12:7 And they spake unto him, saying, If +thou wilt be a servant unto this people this day, and wilt serve them, +and answer them, and speak good words to them, then they will be thy +servants for ever. + +12:8 But he forsook the counsel of the old men, which they had given +him, and consulted with the young men that were grown up with him, and +which stood before him: 12:9 And he said unto them, What counsel give +ye that we may answer this people, who have spoken to me, saying, Make +the yoke which thy father did put upon us lighter? 12:10 And the +young men that were grown up with him spake unto him, saying, Thus +shalt thou speak unto this people that spake unto thee, saying, Thy +father made our yoke heavy, but make thou it lighter unto us; thus +shalt thou say unto them, My little finger shall be thicker than my +father's loins. + +12:11 And now whereas my father did lade you with a heavy yoke, I will +add to your yoke: my father hath chastised you with whips, but I will +chastise you with scorpions. + +12:12 So Jeroboam and all the people came to Rehoboam the third day, +as the king had appointed, saying, Come to me again the third day. + +12:13 And the king answered the people roughly, and forsook the old +men's counsel that they gave him; 12:14 And spake to them after the +counsel of the young men, saying, My father made your yoke heavy, and +I will add to your yoke: my father also chastised you with whips, but +I will chastise you with scorpions. + +12:15 Wherefore the king hearkened not unto the people; for the cause +was from the LORD, that he might perform his saying, which the LORD +spake by Ahijah the Shilonite unto Jeroboam the son of Nebat. + +12:16 So when all Israel saw that the king hearkened not unto them, +the people answered the king, saying, What portion have we in David? +neither have we inheritance in the son of Jesse: to your tents, O +Israel: now see to thine own house, David. So Israel departed unto +their tents. + +12:17 But as for the children of Israel which dwelt in the cities of +Judah, Rehoboam reigned over them. + +12:18 Then king Rehoboam sent Adoram, who was over the tribute; and +all Israel stoned him with stones, that he died. Therefore king +Rehoboam made speed to get him up to his chariot, to flee to +Jerusalem. + +12:19 So Israel rebelled against the house of David unto this day. + +12:20 And it came to pass, when all Israel heard that Jeroboam was +come again, that they sent and called him unto the congregation, and +made him king over all Israel: there was none that followed the house +of David, but the tribe of Judah only. + +12:21 And when Rehoboam was come to Jerusalem, he assembled all the +house of Judah, with the tribe of Benjamin, an hundred and fourscore +thousand chosen men, which were warriors, to fight against the house +of Israel, to bring the kingdom again to Rehoboam the son of Solomon. + +12:22 But the word of God came unto Shemaiah the man of God, saying, +12:23 Speak unto Rehoboam, the son of Solomon, king of Judah, and unto +all the house of Judah and Benjamin, and to the remnant of the people, +saying, 12:24 Thus saith the LORD, Ye shall not go up, nor fight +against your brethren the children of Israel: return every man to his +house; for this thing is from me. They hearkened therefore to the word +of the LORD, and returned to depart, according to the word of the +LORD. + +12:25 Then Jeroboam built Shechem in mount Ephraim, and dwelt therein; +and went out from thence, and built Penuel. + +12:26 And Jeroboam said in his heart, Now shall the kingdom return to +the house of David: 12:27 If this people go up to do sacrifice in the +house of the LORD at Jerusalem, then shall the heart of this people +turn again unto their lord, even unto Rehoboam king of Judah, and they +shall kill me, and go again to Rehoboam king of Judah. + +12:28 Whereupon the king took counsel, and made two calves of gold, +and said unto them, It is too much for you to go up to Jerusalem: +behold thy gods, O Israel, which brought thee up out of the land of +Egypt. + +12:29 And he set the one in Bethel, and the other put he in Dan. + +12:30 And this thing became a sin: for the people went to worship +before the one, even unto Dan. + +12:31 And he made an house of high places, and made priests of the +lowest of the people, which were not of the sons of Levi. + +12:32 And Jeroboam ordained a feast in the eighth month, on the +fifteenth day of the month, like unto the feast that is in Judah, and +he offered upon the altar. So did he in Bethel, sacrificing unto the +calves that he had made: and he placed in Bethel the priests of the +high places which he had made. + +12:33 So he offered upon the altar which he had made in Bethel the +fifteenth day of the eighth month, even in the month which he had +devised of his own heart; and ordained a feast unto the children of +Israel: and he offered upon the altar, and burnt incense. + +13:1 And, behold, there came a man of God out of Judah by the word of +the LORD unto Bethel: and Jeroboam stood by the altar to burn incense. + +13:2 And he cried against the altar in the word of the LORD, and said, +O altar, altar, thus saith the LORD; Behold, a child shall be born +unto the house of David, Josiah by name; and upon thee shall he offer +the priests of the high places that burn incense upon thee, and men's +bones shall be burnt upon thee. + +13:3 And he gave a sign the same day, saying, This is the sign which +the LORD hath spoken; Behold, the altar shall be rent, and the ashes +that are upon it shall be poured out. + +13:4 And it came to pass, when king Jeroboam heard the saying of the +man of God, which had cried against the altar in Bethel, that he put +forth his hand from the altar, saying, Lay hold on him. And his hand, +which he put forth against him, dried up, so that he could not pull it +in again to him. + +13:5 The altar also was rent, and the ashes poured out from the altar, +according to the sign which the man of God had given by the word of +the LORD. + +13:6 And the king answered and said unto the man of God, Intreat now +the face of the LORD thy God, and pray for me, that my hand may be +restored me again. And the man of God besought the LORD, and the +king's hand was restored him again, and became as it was before. + +13:7 And the king said unto the man of God, Come home with me, and +refresh thyself, and I will give thee a reward. + +13:8 And the man of God said unto the king, If thou wilt give me half +thine house, I will not go in with thee, neither will I eat bread nor +drink water in this place: 13:9 For so was it charged me by the word +of the LORD, saying, Eat no bread, nor drink water, nor turn again by +the same way that thou camest. + +13:10 So he went another way, and returned not by the way that he came +to Bethel. + +13:11 Now there dwelt an old prophet in Bethel; and his sons came and +told him all the works that the man of God had done that day in +Bethel: the words which he had spoken unto the king, them they told +also to their father. + +13:12 And their father said unto them, What way went he? For his sons +had seen what way the man of God went, which came from Judah. + +13:13 And he said unto his sons, Saddle me the ass. So they saddled +him the ass: and he rode thereon, 13:14 And went after the man of God, +and found him sitting under an oak: and he said unto him, Art thou the +man of God that camest from Judah? And he said, I am. + +13:15 Then he said unto him, Come home with me, and eat bread. + +13:16 And he said, I may not return with thee, nor go in with thee: +neither will I eat bread nor drink water with thee in this place: +13:17 For it was said to me by the word of the LORD, Thou shalt eat no +bread nor drink water there, nor turn again to go by the way that thou +camest. + +13:18 He said unto him, I am a prophet also as thou art; and an angel +spake unto me by the word of the LORD, saying, Bring him back with +thee into thine house, that he may eat bread and drink water. But he +lied unto him. + +13:19 So he went back with him, and did eat bread in his house, and +drank water. + +13:20 And it came to pass, as they sat at the table, that the word of +the LORD came unto the prophet that brought him back: 13:21 And he +cried unto the man of God that came from Judah, saying, Thus saith the +LORD, Forasmuch as thou hast disobeyed the mouth of the LORD, and hast +not kept the commandment which the LORD thy God commanded thee, 13:22 +But camest back, and hast eaten bread and drunk water in the place, of +the which the Lord did say to thee, Eat no bread, and drink no water; +thy carcase shall not come unto the sepulchre of thy fathers. + +13:23 And it came to pass, after he had eaten bread, and after he had +drunk, that he saddled for him the ass, to wit, for the prophet whom +he had brought back. + +13:24 And when he was gone, a lion met him by the way, and slew him: +and his carcase was cast in the way, and the ass stood by it, the lion +also stood by the carcase. + +13:25 And, behold, men passed by, and saw the carcase cast in the way, +and the lion standing by the carcase: and they came and told it in the +city where the old prophet dwelt. + +13:26 And when the prophet that brought him back from the way heard +thereof, he said, It is the man of God, who was disobedient unto the +word of the LORD: therefore the LORD hath delivered him unto the lion, +which hath torn him, and slain him, according to the word of the LORD, +which he spake unto him. + +13:27 And he spake to his sons, saying, Saddle me the ass. And they +saddled him. + +13:28 And he went and found his carcase cast in the way, and the ass +and the lion standing by the carcase: the lion had not eaten the +carcase, nor torn the ass. + +13:29 And the prophet took up the carcase of the man of God, and laid +it upon the ass, and brought it back: and the old prophet came to the +city, to mourn and to bury him. + +13:30 And he laid his carcase in his own grave; and they mourned over +him, saying, Alas, my brother! 13:31 And it came to pass, after he +had buried him, that he spake to his sons, saying, When I am dead, +then bury me in the sepulchre wherein the man of God is buried; lay my +bones beside his bones: 13:32 For the saying which he cried by the +word of the LORD against the altar in Bethel, and against all the +houses of the high places which are in the cities of Samaria, shall +surely come to pass. + +13:33 After this thing Jeroboam returned not from his evil way, but +made again of the lowest of the people priests of the high places: +whosoever would, he consecrated him, and he became one of the priests +of the high places. + +13:34 And this thing became sin unto the house of Jeroboam, even to +cut it off, and to destroy it from off the face of the earth. + +14:1 At that time Abijah the son of Jeroboam fell sick. + +14:2 And Jeroboam said to his wife, Arise, I pray thee, and disguise +thyself, that thou be not known to be the wife of Jeroboam; and get +thee to Shiloh: behold, there is Ahijah the prophet, which told me +that I should be king over this people. + +14:3 And take with thee ten loaves, and cracknels, and a cruse of +honey, and go to him: he shall tell thee what shall become of the +child. + +14:4 And Jeroboam's wife did so, and arose, and went to Shiloh, and +came to the house of Ahijah. But Ahijah could not see; for his eyes +were set by reason of his age. + +14:5 And the LORD said unto Ahijah, Behold, the wife of Jeroboam +cometh to ask a thing of thee for her son; for he is sick: thus and +thus shalt thou say unto her: for it shall be, when she cometh in, +that she shall feign herself to be another woman. + +14:6 And it was so, when Ahijah heard the sound of her feet, as she +came in at the door, that he said, Come in, thou wife of Jeroboam; why +feignest thou thyself to be another? for I am sent to thee with heavy +tidings. + +14:7 Go, tell Jeroboam, Thus saith the LORD God of Israel, Forasmuch +as I exalted thee from among the people, and made thee prince over my +people Israel, 14:8 And rent the kingdom away from the house of David, +and gave it thee: and yet thou hast not been as my servant David, who +kept my commandments, and who followed me with all his heart, to do +that only which was right in mine eyes; 14:9 But hast done evil above +all that were before thee: for thou hast gone and made thee other +gods, and molten images, to provoke me to anger, and hast cast me +behind thy back: 14:10 Therefore, behold, I will bring evil upon the +house of Jeroboam, and will cut off from Jeroboam him that pisseth +against the wall, and him that is shut up and left in Israel, and will +take away the remnant of the house of Jeroboam, as a man taketh away +dung, till it be all gone. + +14:11 Him that dieth of Jeroboam in the city shall the dogs eat; and +him that dieth in the field shall the fowls of the air eat: for the +LORD hath spoken it. + +14:12 Arise thou therefore, get thee to thine own house: and when thy +feet enter into the city, the child shall die. + +14:13 And all Israel shall mourn for him, and bury him: for he only of +Jeroboam shall come to the grave, because in him there is found some +good thing toward the LORD God of Israel in the house of Jeroboam. + +14:14 Moreover the LORD shall raise him up a king over Israel, who +shall cut off the house of Jeroboam that day: but what? even now. + +14:15 For the LORD shall smite Israel, as a reed is shaken in the +water, and he shall root up Israel out of this good land, which he +gave to their fathers, and shall scatter them beyond the river, +because they have made their groves, provoking the LORD to anger. + +14:16 And he shall give Israel up because of the sins of Jeroboam, who +did sin, and who made Israel to sin. + +14:17 And Jeroboam's wife arose, and departed, and came to Tirzah: and +when she came to the threshold of the door, the child died; 14:18 And +they buried him; and all Israel mourned for him, according to the word +of the LORD, which he spake by the hand of his servant Ahijah the +prophet. + +14:19 And the rest of the acts of Jeroboam, how he warred, and how he +reigned, behold, they are written in the book of the chronicles of the +kings of Israel. + +14:20 And the days which Jeroboam reigned were two and twenty years: +and he slept with his fathers, and Nadab his son reigned in his stead. + +14:21 And Rehoboam the son of Solomon reigned in Judah. Rehoboam was +forty and one years old when he began to reign, and he reigned +seventeen years in Jerusalem, the city which the LORD did choose out +of all the tribes of Israel, to put his name there. And his mother's +name was Naamah an Ammonitess. + +14:22 And Judah did evil in the sight of the LORD, and they provoked +him to jealousy with their sins which they had committed, above all +that their fathers had done. + +14:23 For they also built them high places, and images, and groves, on +every high hill, and under every green tree. + +14:24 And there were also sodomites in the land: and they did +according to all the abominations of the nations which the LORD cast +out before the children of Israel. + +14:25 And it came to pass in the fifth year of king Rehoboam, that +Shishak king of Egypt came up against Jerusalem: 14:26 And he took +away the treasures of the house of the LORD, and the treasures of the +king's house; he even took away all: and he took away all the shields +of gold which Solomon had made. + +14:27 And king Rehoboam made in their stead brasen shields, and +committed them unto the hands of the chief of the guard, which kept +the door of the king's house. + +14:28 And it was so, when the king went into the house of the LORD, +that the guard bare them, and brought them back into the guard +chamber. + +14:29 Now the rest of the acts of Rehoboam, and all that he did, are +they not written in the book of the chronicles of the kings of Judah? +14:30 And there was war between Rehoboam and Jeroboam all their days. + +14:31 And Rehoboam slept with his fathers, and was buried with his +fathers in the city of David. And his mother's name was Naamah an +Ammonitess. And Abijam his son reigned in his stead. + +15:1 Now in the eighteenth year of king Jeroboam the son of Nebat +reigned Abijam over Judah. + +15:2 Three years reigned he in Jerusalem. and his mother's name was +Maachah, the daughter of Abishalom. + +15:3 And he walked in all the sins of his father, which he had done +before him: and his heart was not perfect with the LORD his God, as +the heart of David his father. + +15:4 Nevertheless for David's sake did the LORD his God give him a +lamp in Jerusalem, to set up his son after him, and to establish +Jerusalem: 15:5 Because David did that which was right in the eyes of +the LORD, and turned not aside from any thing that he commanded him +all the days of his life, save only in the matter of Uriah the +Hittite. + +15:6 And there was war between Rehoboam and Jeroboam all the days of +his life. + +15:7 Now the rest of the acts of Abijam, and all that he did, are they +not written in the book of the chronicles of the kings of Judah? And +there was war between Abijam and Jeroboam. + +15:8 And Abijam slept with his fathers; and they buried him in the +city of David: and Asa his son reigned in his stead. + +15:9 And in the twentieth year of Jeroboam king of Israel reigned Asa +over Judah. + +15:10 And forty and one years reigned he in Jerusalem. And his +mother's name was Maachah, the daughter of Abishalom. + +15:11 And Asa did that which was right in the eyes of the LORD, as did +David his father. + +15:12 And he took away the sodomites out of the land, and removed all +the idols that his fathers had made. + +15:13 And also Maachah his mother, even her he removed from being +queen, because she had made an idol in a grove; and Asa destroyed her +idol, and burnt it by the brook Kidron. + +15:14 But the high places were not removed: nevertheless Asa's heart +was perfect with the LORD all his days. + +15:15 And he brought in the things which his father had dedicated, and +the things which himself had dedicated, into the house of the LORD, +silver, and gold, and vessels. + +15:16 And there was war between Asa and Baasha king of Israel all +their days. + +15:17 And Baasha king of Israel went up against Judah, and built +Ramah, that he might not suffer any to go out or come in to Asa king +of Judah. + +15:18 Then Asa took all the silver and the gold that were left in the +treasures of the house of the LORD, and the treasures of the king's +house, and delivered them into the hand of his servants: and king Asa +sent them to Benhadad, the son of Tabrimon, the son of Hezion, king of +Syria, that dwelt at Damascus, saying, 15:19 There is a league between +me and thee, and between my father and thy father: behold, I have sent +unto thee a present of silver and gold; come and break thy league with +Baasha king of Israel, that he may depart from me. + +15:20 So Benhadad hearkened unto king Asa, and sent the captains of +the hosts which he had against the cities of Israel, and smote Ijon, +and Dan, and Abelbethmaachah, and all Cinneroth, with all the land of +Naphtali. + +15:21 And it came to pass, when Baasha heard thereof, that he left off +building of Ramah, and dwelt in Tirzah. + +15:22 Then king Asa made a proclamation throughout all Judah; none was +exempted: and they took away the stones of Ramah, and the timber +thereof, wherewith Baasha had builded; and king Asa built with them +Geba of Benjamin, and Mizpah. + +15:23 The rest of all the acts of Asa, and all his might, and all that +he did, and the cities which he built, are they not written in the +book of the chronicles of the kings of Judah? Nevertheless in the time +of his old age he was diseased in his feet. + +15:24 And Asa slept with his fathers, and was buried with his fathers +in the city of David his father: and Jehoshaphat his son reigned in +his stead. + +15:25 And Nadab the son of Jeroboam began to reign over Israel in the +second year of Asa king of Judah, and reigned over Israel two years. + +15:26 And he did evil in the sight of the LORD, and walked in the way +of his father, and in his sin wherewith he made Israel to sin. + +15:27 And Baasha the son of Ahijah, of the house of Issachar, +conspired against him; and Baasha smote him at Gibbethon, which +belonged to the Philistines; for Nadab and all Israel laid siege to +Gibbethon. + +15:28 Even in the third year of Asa king of Judah did Baasha slay him, +and reigned in his stead. + +15:29 And it came to pass, when he reigned, that he smote all the +house of Jeroboam; he left not to Jeroboam any that breathed, until he +had destroyed him, according unto the saying of the LORD, which he +spake by his servant Ahijah the Shilonite: 15:30 Because of the sins +of Jeroboam which he sinned, and which he made Israel sin, by his +provocation wherewith he provoked the LORD God of Israel to anger. + +15:31 Now the rest of the acts of Nadab, and all that he did, are they +not written in the book of the chronicles of the kings of Israel? +15:32 And there was war between Asa and Baasha king of Israel all +their days. + +15:33 In the third year of Asa king of Judah began Baasha the son of +Ahijah to reign over all Israel in Tirzah, twenty and four years. + +15:34 And he did evil in the sight of the LORD, and walked in the way +of Jeroboam, and in his sin wherewith he made Israel to sin. + +16:1 Then the word of the LORD came to Jehu the son of Hanani against +Baasha, saying, 16:2 Forasmuch as I exalted thee out of the dust, and +made thee prince over my people Israel; and thou hast walked in the +way of Jeroboam, and hast made my people Israel to sin, to provoke me +to anger with their sins; 16:3 Behold, I will take away the posterity +of Baasha, and the posterity of his house; and will make thy house +like the house of Jeroboam the son of Nebat. + +16:4 Him that dieth of Baasha in the city shall the dogs eat; and him +that dieth of his in the fields shall the fowls of the air eat. + +16:5 Now the rest of the acts of Baasha, and what he did, and his +might, are they not written in the book of the chronicles of the kings +of Israel? 16:6 So Baasha slept with his fathers, and was buried in +Tirzah: and Elah his son reigned in his stead. + +16:7 And also by the hand of the prophet Jehu the son of Hanani came +the word of the LORD against Baasha, and against his house, even for +all the evil that he did in the sight of the LORD, in provoking him to +anger with the work of his hands, in being like the house of Jeroboam; +and because he killed him. + +16:8 In the twenty and sixth year of Asa king of Judah began Elah the +son of Baasha to reign over Israel in Tirzah, two years. + +16:9 And his servant Zimri, captain of half his chariots, conspired +against him, as he was in Tirzah, drinking himself drunk in the house +of Arza steward of his house in Tirzah. + +16:10 And Zimri went in and smote him, and killed him, in the twenty +and seventh year of Asa king of Judah, and reigned in his stead. + +16:11 And it came to pass, when he began to reign, as soon as he sat +on his throne, that he slew all the house of Baasha: he left him not +one that pisseth against a wall, neither of his kinsfolks, nor of his +friends. + +16:12 Thus did Zimri destroy all the house of Baasha, according to the +word of the LORD, which he spake against Baasha by Jehu the prophet. + +16:13 For all the sins of Baasha, and the sins of Elah his son, by +which they sinned, and by which they made Israel to sin, in provoking +the LORD God of Israel to anger with their vanities. + +16:14 Now the rest of the acts of Elah, and all that he did, are they +not written in the book of the chronicles of the kings of Israel? +16:15 In the twenty and seventh year of Asa king of Judah did Zimri +reign seven days in Tirzah. And the people were encamped against +Gibbethon, which belonged to the Philistines. + +16:16 And the people that were encamped heard say, Zimri hath +conspired, and hath also slain the king: wherefore all Israel made +Omri, the captain of the host, king over Israel that day in the camp. + +16:17 And Omri went up from Gibbethon, and all Israel with him, and +they besieged Tirzah. + +16:18 And it came to pass, when Zimri saw that the city was taken, +that he went into the palace of the king's house, and burnt the king's +house over him with fire, and died. + +16:19 For his sins which he sinned in doing evil in the sight of the +LORD, in walking in the way of Jeroboam, and in his sin which he did, +to make Israel to sin. + +16:20 Now the rest of the acts of Zimri, and his treason that he +wrought, are they not written in the book of the chronicles of the +kings of Israel? 16:21 Then were the people of Israel divided into +two parts: half of the people followed Tibni the son of Ginath, to +make him king; and half followed Omri. + +16:22 But the people that followed Omri prevailed against the people +that followed Tibni the son of Ginath: so Tibni died, and Omri +reigned. + +16:23 In the thirty and first year of Asa king of Judah began Omri to +reign over Israel, twelve years: six years reigned he in Tirzah. + +16:24 And he bought the hill Samaria of Shemer for two talents of +silver, and built on the hill, and called the name of the city which +he built, after the name of Shemer, owner of the hill, Samaria. + +16:25 But Omri wrought evil in the eyes of the LORD, and did worse +than all that were before him. + +16:26 For he walked in all the way of Jeroboam the son of Nebat, and +in his sin wherewith he made Israel to sin, to provoke the LORD God of +Israel to anger with their vanities. + +16:27 Now the rest of the acts of Omri which he did, and his might +that he shewed, are they not written in the book of the chronicles of +the kings of Israel? 16:28 So Omri slept with his fathers, and was +buried in Samaria: and Ahab his son reigned in his stead. + +16:29 And in the thirty and eighth year of Asa king of Judah began +Ahab the son of Omri to reign over Israel: and Ahab the son of Omri +reigned over Israel in Samaria twenty and two years. + +16:30 And Ahab the son of Omri did evil in the sight of the LORD above +all that were before him. + +16:31 And it came to pass, as if it had been a light thing for him to +walk in the sins of Jeroboam the son of Nebat, that he took to wife +Jezebel the daughter of Ethbaal king of the Zidonians, and went and +served Baal, and worshipped him. + +16:32 And he reared up an altar for Baal in the house of Baal, which +he had built in Samaria. + +16:33 And Ahab made a grove; and Ahab did more to provoke the LORD God +of Israel to anger than all the kings of Israel that were before him. + +16:34 In his days did Hiel the Bethelite build Jericho: he laid the +foundation thereof in Abiram his firstborn, and set up the gates +thereof in his youngest son Segub, according to the word of the LORD, +which he spake by Joshua the son of Nun. + +17:1 And Elijah the Tishbite, who was of the inhabitants of Gilead, +said unto Ahab, As the LORD God of Israel liveth, before whom I stand, +there shall not be dew nor rain these years, but according to my word. + +17:2 And the word of the LORD came unto him, saying, 17:3 Get thee +hence, and turn thee eastward, and hide thyself by the brook Cherith, +that is before Jordan. + +17:4 And it shall be, that thou shalt drink of the brook; and I have +commanded the ravens to feed thee there. + +17:5 So he went and did according unto the word of the LORD: for he +went and dwelt by the brook Cherith, that is before Jordan. + +17:6 And the ravens brought him bread and flesh in the morning, and +bread and flesh in the evening; and he drank of the brook. + +17:7 And it came to pass after a while, that the brook dried up, +because there had been no rain in the land. + +17:8 And the word of the LORD came unto him, saying, 17:9 Arise, get +thee to Zarephath, which belongeth to Zidon, and dwell there: behold, +I have commanded a widow woman there to sustain thee. + +17:10 So he arose and went to Zarephath. And when he came to the gate +of the city, behold, the widow woman was there gathering of sticks: +and he called to her, and said, Fetch me, I pray thee, a little water +in a vessel, that I may drink. + +17:11 And as she was going to fetch it, he called to her, and said, +Bring me, I pray thee, a morsel of bread in thine hand. + +17:12 And she said, As the LORD thy God liveth, I have not a cake, but +an handful of meal in a barrel, and a little oil in a cruse: and, +behold, I am gathering two sticks, that I may go in and dress it for +me and my son, that we may eat it, and die. + +17:13 And Elijah said unto her, Fear not; go and do as thou hast said: +but make me thereof a little cake first, and bring it unto me, and +after make for thee and for thy son. + +17:14 For thus saith the LORD God of Israel, The barrel of meal shall +not waste, neither shall the cruse of oil fail, until the day that the +LORD sendeth rain upon the earth. + +17:15 And she went and did according to the saying of Elijah: and she, +and he, and her house, did eat many days. + +17:16 And the barrel of meal wasted not, neither did the cruse of oil +fail, according to the word of the LORD, which he spake by Elijah. + +17:17 And it came to pass after these things, that the son of the +woman, the mistress of the house, fell sick; and his sickness was so +sore, that there was no breath left in him. + +17:18 And she said unto Elijah, What have I to do with thee, O thou +man of God? art thou come unto me to call my sin to remembrance, and +to slay my son? 17:19 And he said unto her, Give me thy son. And he +took him out of her bosom, and carried him up into a loft, where he +abode, and laid him upon his own bed. + +17:20 And he cried unto the LORD, and said, O LORD my God, hast thou +also brought evil upon the widow with whom I sojourn, by slaying her +son? 17:21 And he stretched himself upon the child three times, and +cried unto the LORD, and said, O LORD my God, I pray thee, let this +child's soul come into him again. + +17:22 And the LORD heard the voice of Elijah; and the soul of the +child came into him again, and he revived. + +17:23 And Elijah took the child, and brought him down out of the +chamber into the house, and delivered him unto his mother: and Elijah +said, See, thy son liveth. + +17:24 And the woman said to Elijah, Now by this I know that thou art a +man of God, and that the word of the LORD in thy mouth is truth. + +18:1 And it came to pass after many days, that the word of the LORD +came to Elijah in the third year, saying, Go, shew thyself unto Ahab; +and I will send rain upon the earth. + +18:2 And Elijah went to shew himself unto Ahab. And there was a sore +famine in Samaria. + +18:3 And Ahab called Obadiah, which was the governor of his house. +(Now Obadiah feared the LORD greatly: 18:4 For it was so, when Jezebel +cut off the prophets of the LORD, that Obadiah took an hundred +prophets, and hid them by fifty in a cave, and fed them with bread and +water.) 18:5 And Ahab said unto Obadiah, Go into the land, unto all +fountains of water, and unto all brooks: peradventure we may find +grass to save the horses and mules alive, that we lose not all the +beasts. + +18:6 So they divided the land between them to pass throughout it: Ahab +went one way by himself, and Obadiah went another way by himself. + +18:7 And as Obadiah was in the way, behold, Elijah met him: and he +knew him, and fell on his face, and said, Art thou that my lord +Elijah? 18:8 And he answered him, I am: go, tell thy lord, Behold, +Elijah is here. + +18:9 And he said, What have I sinned, that thou wouldest deliver thy +servant into the hand of Ahab, to slay me? 18:10 As the LORD thy God +liveth, there is no nation or kingdom, whither my lord hath not sent +to seek thee: and when they said, He is not there; he took an oath of +the kingdom and nation, that they found thee not. + +18:11 And now thou sayest, Go, tell thy lord, Behold, Elijah is here. + +18:12 And it shall come to pass, as soon as I am gone from thee, that +the Spirit of the LORD shall carry thee whither I know not; and so +when I come and tell Ahab, and he cannot find thee, he shall slay me: +but I thy servant fear the LORD from my youth. + +18:13 Was it not told my lord what I did when Jezebel slew the +prophets of the LORD, how I hid an hundred men of the LORD's prophets +by fifty in a cave, and fed them with bread and water? 18:14 And now +thou sayest, Go, tell thy lord, Behold, Elijah is here: and he shall +slay me. + +18:15 And Elijah said, As the LORD of hosts liveth, before whom I +stand, I will surely shew myself unto him to day. + +18:16 So Obadiah went to meet Ahab, and told him: and Ahab went to +meet Elijah. + +18:17 And it came to pass, when Ahab saw Elijah, that Ahab said unto +him, Art thou he that troubleth Israel? 18:18 And he answered, I have +not troubled Israel; but thou, and thy father's house, in that ye have +forsaken the commandments of the LORD, and thou hast followed Baalim. + +18:19 Now therefore send, and gather to me all Israel unto mount +Carmel, and the prophets of Baal four hundred and fifty, and the +prophets of the groves four hundred, which eat at Jezebel's table. + +18:20 So Ahab sent unto all the children of Israel, and gathered the +prophets together unto mount Carmel. + +18:21 And Elijah came unto all the people, and said, How long halt ye +between two opinions? if the LORD be God, follow him: but if Baal, +then follow him. And the people answered him not a word. + +18:22 Then said Elijah unto the people, I, even I only, remain a +prophet of the LORD; but Baal's prophets are four hundred and fifty +men. + +18:23 Let them therefore give us two bullocks; and let them choose one +bullock for themselves, and cut it in pieces, and lay it on wood, and +put no fire under: and I will dress the other bullock, and lay it on +wood, and put no fire under: 18:24 And call ye on the name of your +gods, and I will call on the name of the LORD: and the God that +answereth by fire, let him be God. And all the people answered and +said, It is well spoken. + +18:25 And Elijah said unto the prophets of Baal, Choose you one +bullock for yourselves, and dress it first; for ye are many; and call +on the name of your gods, but put no fire under. + +18:26 And they took the bullock which was given them, and they dressed +it, and called on the name of Baal from morning even until noon, +saying, O Baal, hear us. But there was no voice, nor any that +answered. And they leaped upon the altar which was made. + +18:27 And it came to pass at noon, that Elijah mocked them, and said, +Cry aloud: for he is a god; either he is talking, or he is pursuing, +or he is in a journey, or peradventure he sleepeth, and must be +awaked. + +18:28 And they cried aloud, and cut themselves after their manner with +knives and lancets, till the blood gushed out upon them. + +18:29 And it came to pass, when midday was past, and they prophesied +until the time of the offering of the evening sacrifice, that there +was neither voice, nor any to answer, nor any that regarded. + +18:30 And Elijah said unto all the people, Come near unto me. And all +the people came near unto him. And he repaired the altar of the LORD +that was broken down. + +18:31 And Elijah took twelve stones, according to the number of the +tribes of the sons of Jacob, unto whom the word of the LORD came, +saying, Israel shall be thy name: 18:32 And with the stones he built +an altar in the name of the LORD: and he made a trench about the +altar, as great as would contain two measures of seed. + +18:33 And he put the wood in order, and cut the bullock in pieces, and +laid him on the wood, and said, Fill four barrels with water, and pour +it on the burnt sacrifice, and on the wood. + +18:34 And he said, Do it the second time. And they did it the second +time. + +And he said, Do it the third time. And they did it the third time. + +18:35 And the water ran round about the altar; and he filled the +trench also with water. + +18:36 And it came to pass at the time of the offering of the evening +sacrifice, that Elijah the prophet came near, and said, LORD God of +Abraham, Isaac, and of Israel, let it be known this day that thou art +God in Israel, and that I am thy servant, and that I have done all +these things at thy word. + +18:37 Hear me, O LORD, hear me, that this people may know that thou +art the LORD God, and that thou hast turned their heart back again. + +18:38 Then the fire of the LORD fell, and consumed the burnt +sacrifice, and the wood, and the stones, and the dust, and licked up +the water that was in the trench. + +18:39 And when all the people saw it, they fell on their faces: and +they said, The LORD, he is the God; the LORD, he is the God. + +18:40 And Elijah said unto them, Take the prophets of Baal; let not +one of them escape. And they took them: and Elijah brought them down +to the brook Kishon, and slew them there. + +18:41 And Elijah said unto Ahab, Get thee up, eat and drink; for there +is a sound of abundance of rain. + +18:42 So Ahab went up to eat and to drink. And Elijah went up to the +top of Carmel; and he cast himself down upon the earth, and put his +face between his knees, 18:43 And said to his servant, Go up now, look +toward the sea. And he went up, and looked, and said, There is +nothing. And he said, Go again seven times. + +18:44 And it came to pass at the seventh time, that he said, Behold, +there ariseth a little cloud out of the sea, like a man's hand. And he +said, Go up, say unto Ahab, Prepare thy chariot, and get thee down +that the rain stop thee not. + +18:45 And it came to pass in the mean while, that the heaven was black +with clouds and wind, and there was a great rain. And Ahab rode, and +went to Jezreel. + +18:46 And the hand of the LORD was on Elijah; and he girded up his +loins, and ran before Ahab to the entrance of Jezreel. + +19:1 And Ahab told Jezebel all that Elijah had done, and withal how he +had slain all the prophets with the sword. + +19:2 Then Jezebel sent a messenger unto Elijah, saying, So let the +gods do to me, and more also, if I make not thy life as the life of +one of them by to morrow about this time. + +19:3 And when he saw that, he arose, and went for his life, and came +to Beersheba, which belongeth to Judah, and left his servant there. + +19:4 But he himself went a day's journey into the wilderness, and came +and sat down under a juniper tree: and he requested for himself that +he might die; and said, It is enough; now, O LORD, take away my life; +for I am not better than my fathers. + +19:5 And as he lay and slept under a juniper tree, behold, then an +angel touched him, and said unto him, Arise and eat. + +19:6 And he looked, and, behold, there was a cake baken on the coals, +and a cruse of water at his head. And he did eat and drink, and laid +him down again. + +19:7 And the angel of the LORD came again the second time, and touched +him, and said, Arise and eat; because the journey is too great for +thee. + +19:8 And he arose, and did eat and drink, and went in the strength of +that meat forty days and forty nights unto Horeb the mount of God. + +19:9 And he came thither unto a cave, and lodged there; and, behold, +the word of the LORD came to him, and he said unto him, What doest +thou here, Elijah? 19:10 And he said, I have been very jealous for +the LORD God of hosts: for the children of Israel have forsaken thy +covenant, thrown down thine altars, and slain thy prophets with the +sword; and I, even I only, am left; and they seek my life, to take it +away. + +19:11 And he said, Go forth, and stand upon the mount before the LORD. + +And, behold, the LORD passed by, and a great and strong wind rent the +mountains, and brake in pieces the rocks before the LORD; but the LORD +was not in the wind: and after the wind an earthquake; but the LORD +was not in the earthquake: 19:12 And after the earthquake a fire; but +the LORD was not in the fire: and after the fire a still small voice. + +19:13 And it was so, when Elijah heard it, that he wrapped his face in +his mantle, and went out, and stood in the entering in of the cave. +And, behold, there came a voice unto him, and said, What doest thou +here, Elijah? 19:14 And he said, I have been very jealous for the +LORD God of hosts: because the children of Israel have forsaken thy +covenant, thrown down thine altars, and slain thy prophets with the +sword; and I, even I only, am left; and they seek my life, to take it +away. + +19:15 And the LORD said unto him, Go, return on thy way to the +wilderness of Damascus: and when thou comest, anoint Hazael to be king +over Syria: 19:16 And Jehu the son of Nimshi shalt thou anoint to be +king over Israel: and Elisha the son of Shaphat of Abelmeholah shalt +thou anoint to be prophet in thy room. + +19:17 And it shall come to pass, that him that escapeth the sword of +Hazael shall Jehu slay: and him that escapeth from the sword of Jehu +shall Elisha slay. + +19:18 Yet I have left me seven thousand in Israel, all the knees which +have not bowed unto Baal, and every mouth which hath not kissed him. + +19:19 So he departed thence, and found Elisha the son of Shaphat, who +was plowing with twelve yoke of oxen before him, and he with the +twelfth: and Elijah passed by him, and cast his mantle upon him. + +19:20 And he left the oxen, and ran after Elijah, and said, Let me, I +pray thee, kiss my father and my mother, and then I will follow thee. +And he said unto him, Go back again: for what have I done to thee? +19:21 And he returned back from him, and took a yoke of oxen, and slew +them, and boiled their flesh with the instruments of the oxen, and +gave unto the people, and they did eat. Then he arose, and went after +Elijah, and ministered unto him. + +20:1 And Benhadad the king of Syria gathered all his host together: +and there were thirty and two kings with him, and horses, and +chariots; and he went up and besieged Samaria, and warred against it. + +20:2 And he sent messengers to Ahab king of Israel into the city, and +said unto him, Thus saith Benhadad, 20:3 Thy silver and thy gold is +mine; thy wives also and thy children, even the goodliest, are mine. + +20:4 And the king of Israel answered and said, My lord, O king, +according to thy saying, I am thine, and all that I have. + +20:5 And the messengers came again, and said, Thus speaketh Benhadad, +saying, Although I have sent unto thee, saying, Thou shalt deliver me +thy silver, and thy gold, and thy wives, and thy children; 20:6 Yet I +will send my servants unto thee to morrow about this time, and they +shall search thine house, and the houses of thy servants; and it shall +be, that whatsoever is pleasant in thine eyes, they shall put it in +their hand, and take it away. + +20:7 Then the king of Israel called all the elders of the land, and +said, Mark, I pray you, and see how this man seeketh mischief: for he +sent unto me for my wives, and for my children, and for my silver, and +for my gold; and I denied him not. + +20:8 And all the elders and all the people said unto him, Hearken not +unto him, nor consent. + +20:9 Wherefore he said unto the messengers of Benhadad, Tell my lord +the king, All that thou didst send for to thy servant at the first I +will do: but this thing I may not do. And the messengers departed, and +brought him word again. + +20:10 And Benhadad sent unto him, and said, The gods do so unto me, +and more also, if the dust of Samaria shall suffice for handfuls for +all the people that follow me. + +20:11 And the king of Israel answered and said, Tell him, Let not him +that girdeth on his harness boast himself as he that putteth it off. + +20:12 And it came to pass, when Ben-hadad heard this message, as he +was drinking, he and the kings in the pavilions, that he said unto his +servants, Set yourselves in array. And they set themselves in array +against the city. + +20:13 And, behold, there came a prophet unto Ahab king of Israel, +saying, Thus saith the LORD, Hast thou seen all this great multitude? +behold, I will deliver it into thine hand this day; and thou shalt +know that I am the LORD. + +20:14 And Ahab said, By whom? And he said, Thus saith the LORD, Even +by the young men of the princes of the provinces. Then he said, Who +shall order the battle? And he answered, Thou. + +20:15 Then he numbered the young men of the princes of the provinces, +and they were two hundred and thirty two: and after them he numbered +all the people, even all the children of Israel, being seven thousand. + +20:16 And they went out at noon. But Benhadad was drinking himself +drunk in the pavilions, he and the kings, the thirty and two kings +that helped him. + +20:17 And the young men of the princes of the provinces went out +first; and Benhadad sent out, and they told him, saying, There are men +come out of Samaria. + +20:18 And he said, Whether they be come out for peace, take them +alive; or whether they be come out for war, take them alive. + +20:19 So these young men of the princes of the provinces came out of +the city, and the army which followed them. + +20:20 And they slew every one his man: and the Syrians fled; and +Israel pursued them: and Benhadad the king of Syria escaped on an +horse with the horsemen. + +20:21 And the king of Israel went out, and smote the horses and +chariots, and slew the Syrians with a great slaughter. + +20:22 And the prophet came to the king of Israel, and said unto him, +Go, strengthen thyself, and mark, and see what thou doest: for at the +return of the year the king of Syria will come up against thee. + +20:23 And the servants of the king of Syria said unto him, Their gods +are gods of the hills; therefore they were stronger than we; but let +us fight against them in the plain, and surely we shall be stronger +than they. + +20:24 And do this thing, Take the kings away, every man out of his +place, and put captains in their rooms: 20:25 And number thee an army, +like the army that thou hast lost, horse for horse, and chariot for +chariot: and we will fight against them in the plain, and surely we +shall be stronger than they. And he hearkened unto their voice, and +did so. + +20:26 And it came to pass at the return of the year, that Benhadad +numbered the Syrians, and went up to Aphek, to fight against Israel. + +20:27 And the children of Israel were numbered, and were all present, +and went against them: and the children of Israel pitched before them +like two little flocks of kids; but the Syrians filled the country. + +20:28 And there came a man of God, and spake unto the king of Israel, +and said, Thus saith the LORD, Because the Syrians have said, The LORD +is God of the hills, but he is not God of the valleys, therefore will +I deliver all this great multitude into thine hand, and ye shall know +that I am the LORD. + +20:29 And they pitched one over against the other seven days. And so +it was, that in the seventh day the battle was joined: and the +children of Israel slew of the Syrians an hundred thousand footmen in +one day. + +20:30 But the rest fled to Aphek, into the city; and there a wall fell +upon twenty and seven thousand of the men that were left. And Benhadad +fled, and came into the city, into an inner chamber. + +20:31 And his servants said unto him, Behold now, we have heard that +the kings of the house of Israel are merciful kings: let us, I pray +thee, put sackcloth on our loins, and ropes upon our heads, and go out +to the king of Israel: peradventure he will save thy life. + +20:32 So they girded sackcloth on their loins, and put ropes on their +heads, and came to the king of Israel, and said, Thy servant Benhadad +saith, I pray thee, let me live. And he said, Is he yet alive? he is +my brother. + +20:33 Now the men did diligently observe whether any thing would come +from him, and did hastily catch it: and they said, Thy brother +Benhadad. Then he said, Go ye, bring him. Then Benhadad came forth to +him; and he caused him to come up into the chariot. + +20:34 And Ben-hadad said unto him, The cities, which my father took +from thy father, I will restore; and thou shalt make streets for thee +in Damascus, as my father made in Samaria. Then said Ahab, I will send +thee away with this covenant. So he made a covenant with him, and sent +him away. + +20:35 And a certain man of the sons of the prophets said unto his +neighbour in the word of the LORD, Smite me, I pray thee. And the man +refused to smite him. + +20:36 Then said he unto him, Because thou hast not obeyed the voice of +the LORD, behold, as soon as thou art departed from me, a lion shall +slay thee. + +And as soon as he was departed from him, a lion found him, and slew +him. + +20:37 Then he found another man, and said, Smite me, I pray thee. And +the man smote him, so that in smiting he wounded him. + +20:38 So the prophet departed, and waited for the king by the way, and +disguised himself with ashes upon his face. + +20:39 And as the king passed by, he cried unto the king: and he said, +Thy servant went out into the midst of the battle; and, behold, a man +turned aside, and brought a man unto me, and said, Keep this man: if +by any means he be missing, then shall thy life be for his life, or +else thou shalt pay a talent of silver. + +20:40 And as thy servant was busy here and there, he was gone. And the +king of Israel said unto him, So shall thy judgment be; thyself hast +decided it. + +20:41 And he hasted, and took the ashes away from his face; and the +king of Israel discerned him that he was of the prophets. + +20:42 And he said unto him, Thus saith the LORD, Because thou hast let +go out of thy hand a man whom I appointed to utter destruction, +therefore thy life shall go for his life, and thy people for his +people. + +20:43 And the king of Israel went to his house heavy and displeased, +and came to Samaria. + +21:1 And it came to pass after these things, that Naboth the +Jezreelite had a vineyard, which was in Jezreel, hard by the palace of +Ahab king of Samaria. + +21:2 And Ahab spake unto Naboth, saying, Give me thy vineyard, that I +may have it for a garden of herbs, because it is near unto my house: +and I will give thee for it a better vineyard than it; or, if it seem +good to thee, I will give thee the worth of it in money. + +21:3 And Naboth said to Ahab, The LORD forbid it me, that I should +give the inheritance of my fathers unto thee. + +21:4 And Ahab came into his house heavy and displeased because of the +word which Naboth the Jezreelite had spoken to him: for he had said, I +will not give thee the inheritance of my fathers. And he laid him down +upon his bed, and turned away his face, and would eat no bread. + +21:5 But Jezebel his wife came to him, and said unto him, Why is thy +spirit so sad, that thou eatest no bread? 21:6 And he said unto her, +Because I spake unto Naboth the Jezreelite, and said unto him, Give me +thy vineyard for money; or else, if it please thee, I will give thee +another vineyard for it: and he answered, I will not give thee my +vineyard. + +21:7 And Jezebel his wife said unto him, Dost thou now govern the +kingdom of Israel? arise, and eat bread, and let thine heart be merry: +I will give thee the vineyard of Naboth the Jezreelite. + +21:8 So she wrote letters in Ahab's name, and sealed them with his +seal, and sent the letters unto the elders and to the nobles that were +in his city, dwelling with Naboth. + +21:9 And she wrote in the letters, saying, Proclaim a fast, and set +Naboth on high among the people: 21:10 And set two men, sons of +Belial, before him, to bear witness against him, saying, Thou didst +blaspheme God and the king. And then carry him out, and stone him, +that he may die. + +21:11 And the men of his city, even the elders and the nobles who were +the inhabitants in his city, did as Jezebel had sent unto them, and as +it was written in the letters which she had sent unto them. + +21:12 They proclaimed a fast, and set Naboth on high among the people. + +21:13 And there came in two men, children of Belial, and sat before +him: and the men of Belial witnessed against him, even against Naboth, +in the presence of the people, saying, Naboth did blaspheme God and +the king. Then they carried him forth out of the city, and stoned him +with stones, that he died. + +21:14 Then they sent to Jezebel, saying, Naboth is stoned, and is +dead. + +21:15 And it came to pass, when Jezebel heard that Naboth was stoned, +and was dead, that Jezebel said to Ahab, Arise, take possession of the +vineyard of Naboth the Jezreelite, which he refused to give thee for +money: for Naboth is not alive, but dead. + +21:16 And it came to pass, when Ahab heard that Naboth was dead, that +Ahab rose up to go down to the vineyard of Naboth the Jezreelite, to +take possession of it. + +21:17 And the word of the LORD came to Elijah the Tishbite, saying, +21:18 Arise, go down to meet Ahab king of Israel, which is in Samaria: +behold, he is in the vineyard of Naboth, whither he is gone down to +possess it. + +21:19 And thou shalt speak unto him, saying, Thus saith the LORD, Hast +thou killed, and also taken possession? And thou shalt speak unto him, +saying, Thus saith the LORD, In the place where dogs licked the blood +of Naboth shall dogs lick thy blood, even thine. + +21:20 And Ahab said to Elijah, Hast thou found me, O mine enemy? And +he answered, I have found thee: because thou hast sold thyself to work +evil in the sight of the LORD. + +21:21 Behold, I will bring evil upon thee, and will take away thy +posterity, and will cut off from Ahab him that pisseth against the +wall, and him that is shut up and left in Israel, 21:22 And will make +thine house like the house of Jeroboam the son of Nebat, and like the +house of Baasha the son of Ahijah, for the provocation wherewith thou +hast provoked me to anger, and made Israel to sin. + +21:23 And of Jezebel also spake the LORD, saying, The dogs shall eat +Jezebel by the wall of Jezreel. + +21:24 Him that dieth of Ahab in the city the dogs shall eat; and him +that dieth in the field shall the fowls of the air eat. + +21:25 But there was none like unto Ahab, which did sell himself to +work wickedness in the sight of the LORD, whom Jezebel his wife +stirred up. + +21:26 And he did very abominably in following idols, according to all +things as did the Amorites, whom the LORD cast out before the children +of Israel. + +21:27 And it came to pass, when Ahab heard those words, that he rent +his clothes, and put sackcloth upon his flesh, and fasted, and lay in +sackcloth, and went softly. + +21:28 And the word of the LORD came to Elijah the Tishbite, saying, +21:29 Seest thou how Ahab humbleth himself before me? because he +humbleth himself before me, I will not bring the evil in his days: but +in his son's days will I bring the evil upon his house. + +22:1 And they continued three years without war between Syria and +Israel. + +22:2 And it came to pass in the third year, that Jehoshaphat the king +of Judah came down to the king of Israel. + +22:3 And the king of Israel said unto his servants, Know ye that +Ramoth in Gilead is ours, and we be still, and take it not out of the +hand of the king of Syria? 22:4 And he said unto Jehoshaphat, Wilt +thou go with me to battle to Ramothgilead? And Jehoshaphat said to the +king of Israel, I am as thou art, my people as thy people, my horses +as thy horses. + +22:5 And Jehoshaphat said unto the king of Israel, Enquire, I pray +thee, at the word of the LORD to day. + +22:6 Then the king of Israel gathered the prophets together, about +four hundred men, and said unto them, Shall I go against Ramothgilead +to battle, or shall I forbear? And they said, Go up; for the LORD +shall deliver it into the hand of the king. + +22:7 And Jehoshaphat said, Is there not here a prophet of the LORD +besides, that we might enquire of him? 22:8 And the king of Israel +said unto Jehoshaphat, There is yet one man, Micaiah the son of Imlah, +by whom we may enquire of the LORD: but I hate him; for he doth not +prophesy good concerning me, but evil. And Jehoshaphat said, Let not +the king say so. + +22:9 Then the king of Israel called an officer, and said, Hasten +hither Micaiah the son of Imlah. + +22:10 And the king of Israel and Jehoshaphat the king of Judah sat +each on his throne, having put on their robes, in a void place in the +entrance of the gate of Samaria; and all the prophets prophesied +before them. + +22:11 And Zedekiah the son of Chenaanah made him horns of iron: and he +said, Thus saith the LORD, With these shalt thou push the Syrians, +until thou have consumed them. + +22:12 And all the prophets prophesied so, saying, Go up to +Ramothgilead, and prosper: for the LORD shall deliver it into the +king's hand. + +22:13 And the messenger that was gone to call Micaiah spake unto him, +saying, Behold now, the words of the prophets declare good unto the +king with one mouth: let thy word, I pray thee, be like the word of +one of them, and speak that which is good. + +22:14 And Micaiah said, As the LORD liveth, what the LORD saith unto +me, that will I speak. + +22:15 So he came to the king. And the king said unto him, Micaiah, +shall we go against Ramothgilead to battle, or shall we forbear? And +he answered him, Go, and prosper: for the LORD shall deliver it into +the hand of the king. + +22:16 And the king said unto him, How many times shall I adjure thee +that thou tell me nothing but that which is true in the name of the +LORD? 22:17 And he said, I saw all Israel scattered upon the hills, +as sheep that have not a shepherd: and the LORD said, These have no +master: let them return every man to his house in peace. + +22:18 And the king of Israel said unto Jehoshaphat, Did I not tell +thee that he would prophesy no good concerning me, but evil? 22:19 +And he said, Hear thou therefore the word of the LORD: I saw the LORD +sitting on his throne, and all the host of heaven standing by him on +his right hand and on his left. + +22:20 And the LORD said, Who shall persuade Ahab, that he may go up +and fall at Ramothgilead? And one said on this manner, and another +said on that manner. + +22:21 And there came forth a spirit, and stood before the LORD, and +said, I will persuade him. + +22:22 And the LORD said unto him, Wherewith? And he said, I will go +forth, and I will be a lying spirit in the mouth of all his prophets. +And he said, Thou shalt persude him, and prevail also: go forth, and +do so. + +22:23 Now therefore, behold, the LORD hath put a lying spirit in the +mouth of all these thy prophets, and the LORD hath spoken evil +concerning thee. + +22:24 But Zedekiah the son of Chenaanah went near, and smote Micaiah +on the cheek, and said, Which way went the Spirit of the LORD from me +to speak unto thee? 22:25 And Micaiah said, Behold, thou shalt see in +that day, when thou shalt go into an inner chamber to hide thyself. + +22:26 And the king of Israel said, Take Micaiah, and carry him back +unto Amon the governor of the city, and to Joash the king's son; 22:27 +And say, Thus saith the king, Put this fellow in the prison, and feed +him with bread of affliction and with water of affliction, until I +come in peace. + +22:28 And Micaiah said, If thou return at all in peace, the LORD hath +not spoken by me. And he said, Hearken, O people, every one of you. + +22:29 So the king of Israel and Jehoshaphat the king of Judah went up +to Ramothgilead. + +22:30 And the king of Israel said unto Jehoshaphat, I will disguise +myself, and enter into the battle; but put thou on thy robes. And the +king of Israel disguised himself, and went into the battle. + +22:31 But the king of Syria commanded his thirty and two captains that +had rule over his chariots, saying, Fight neither with small nor +great, save only with the king of Israel. + +22:32 And it came to pass, when the captains of the chariots saw +Jehoshaphat, that they said, Surely it is the king of Israel. And they +turned aside to fight against him: and Jehoshaphat cried out. + +22:33 And it came to pass, when the captains of the chariots perceived +that it was not the king of Israel, that they turned back from +pursuing him. + +22:34 And a certain man drew a bow at a venture, and smote the king of +Israel between the joints of the harness: wherefore he said unto the +driver of his chariot, Turn thine hand, and carry me out of the host; +for I am wounded. + +22:35 And the battle increased that day: and the king was stayed up in +his chariot against the Syrians, and died at even: and the blood ran +out of the wound into the midst of the chariot. + +22:36 And there went a proclamation throughout the host about the +going down of the sun, saying, Every man to his city, and every man to +his own country. + +22:37 So the king died, and was brought to Samaria; and they buried +the king in Samaria. + +22:38 And one washed the chariot in the pool of Samaria; and the dogs +licked up his blood; and they washed his armour; according unto the +word of the LORD which he spake. + +22:39 Now the rest of the acts of Ahab, and all that he did, and the +ivory house which he made, and all the cities that he built, are they +not written in the book of the chronicles of the kings of Israel? +22:40 So Ahab slept with his fathers; and Ahaziah his son reigned in +his stead. + +22:41 And Jehoshaphat the son of Asa began to reign over Judah in the +fourth year of Ahab king of Israel. + +22:42 Jehoshaphat was thirty and five years old when he began to +reign; and he reigned twenty and five years in Jerusalem. And his +mother's name was Azubah the daughter of Shilhi. + +22:43 And he walked in all the ways of Asa his father; he turned not +aside from it, doing that which was right in the eyes of the LORD: +nevertheless the high places were not taken away; for the people +offered and burnt incense yet in the high places. + +22:44 And Jehoshaphat made peace with the king of Israel. + +22:45 Now the rest of the acts of Jehoshaphat, and his might that he +shewed, and how he warred, are they not written in the book of the +chronicles of the kings of Judah? 22:46 And the remnant of the +sodomites, which remained in the days of his father Asa, he took out +of the land. + +22:47 There was then no king in Edom: a deputy was king. + +22:48 Jehoshaphat made ships of Tharshish to go to Ophir for gold: but +they went not; for the ships were broken at Eziongeber. + +22:49 Then said Ahaziah the son of Ahab unto Jehoshaphat, Let my +servants go with thy servants in the ships. But Jehoshaphat would not. + +22:50 And Jehoshaphat slept with his fathers, and was buried with his +fathers in the city of David his father: and Jehoram his son reigned +in his stead. + +22:51 Ahaziah the son of Ahab began to reign over Israel in Samaria +the seventeenth year of Jehoshaphat king of Judah, and reigned two +years over Israel. + +22:52 And he did evil in the sight of the LORD, and walked in the way +of his father, and in the way of his mother, and in the way of +Jeroboam the son of Nebat, who made Israel to sin: 22:53 For he served +Baal, and worshipped him, and provoked to anger the LORD God of +Israel, according to all that his father had done. + + + + +The First Book of the Kings + +Commonly Called: + +The Fourth Book of the Kings + + +1:1 Then Moab rebelled against Israel after the death of Ahab. + +1:2 And Ahaziah fell down through a lattice in his upper chamber that +was in Samaria, and was sick: and he sent messengers, and said unto +them, Go, enquire of Baalzebub the god of Ekron whether I shall +recover of this disease. + +1:3 But the angel of the LORD said to Elijah the Tishbite, Arise, go +up to meet the messengers of the king of Samaria, and say unto them, +Is it not because there is not a God in Israel, that ye go to enquire +of Baalzebub the god of Ekron? 1:4 Now therefore thus saith the LORD, +Thou shalt not come down from that bed on which thou art gone up, but +shalt surely die. And Elijah departed. + +1:5 And when the messengers turned back unto him, he said unto them, +Why are ye now turned back? 1:6 And they said unto him, There came a +man up to meet us, and said unto us, Go, turn again unto the king that +sent you, and say unto him, Thus saith the LORD, Is it not because +there is not a God in Israel, that thou sendest to enquire of +Baalzebub the god of Ekron? therefore thou shalt not come down from +that bed on which thou art gone up, but shalt surely die. + +1:7 And he said unto them, What manner of man was he which came up to +meet you, and told you these words? 1:8 And they answered him, He was +an hairy man, and girt with a girdle of leather about his loins. And +he said, It is Elijah the Tishbite. + +1:9 Then the king sent unto him a captain of fifty with his fifty. And +he went up to him: and, behold, he sat on the top of an hill. And he +spake unto him, Thou man of God, the king hath said, Come down. + +1:10 And Elijah answered and said to the captain of fifty, If I be a +man of God, then let fire come down from heaven, and consume thee and +thy fifty. + +And there came down fire from heaven, and consumed him and his fifty. + +1:11 Again also he sent unto him another captain of fifty with his +fifty. + +And he answered and said unto him, O man of God, thus hath the king +said, Come down quickly. + +1:12 And Elijah answered and said unto them, If I be a man of God, let +fire come down from heaven, and consume thee and thy fifty. And the +fire of God came down from heaven, and consumed him and his fifty. + +1:13 And he sent again a captain of the third fifty with his fifty. +And the third captain of fifty went up, and came and fell on his knees +before Elijah, and besought him, and said unto him, O man of God, I +pray thee, let my life, and the life of these fifty thy servants, be +precious in thy sight. + +1:14 Behold, there came fire down from heaven, and burnt up the two +captains of the former fifties with their fifties: therefore let my +life now be precious in thy sight. + +1:15 And the angel of the LORD said unto Elijah, Go down with him: be +not afraid of him. And he arose, and went down with him unto the king. + +1:16 And he said unto him, Thus saith the LORD, Forasmuch as thou hast +sent messengers to enquire of Baalzebub the god of Ekron, is it not +because there is no God in Israel to enquire of his word? therefore +thou shalt not come down off that bed on which thou art gone up, but +shalt surely die. + +1:17 So he died according to the word of the LORD which Elijah had +spoken. + +And Jehoram reigned in his stead in the second year of Jehoram the son +of Jehoshaphat king of Judah; because he had no son. + +1:18 Now the rest of the acts of Ahaziah which he did, are they not +written in the book of the chronicles of the kings of Israel? 2:1 And +it came to pass, when the LORD would take up Elijah into heaven by a +whirlwind, that Elijah went with Elisha from Gilgal. + +2:2 And Elijah said unto Elisha, Tarry here, I pray thee; for the LORD +hath sent me to Bethel. And Elisha said unto him, As the LORD liveth, +and as thy soul liveth, I will not leave thee. So they went down to +Bethel. + +2:3 And the sons of the prophets that were at Bethel came forth to +Elisha, and said unto him, Knowest thou that the LORD will take away +thy master from thy head to day? And he said, Yea, I know it; hold ye +your peace. + +2:4 And Elijah said unto him, Elisha, tarry here, I pray thee; for the +LORD hath sent me to Jericho. And he said, As the LORD liveth, and as +thy soul liveth, I will not leave thee. So they came to Jericho. + +2:5 And the sons of the prophets that were at Jericho came to Elisha, +and said unto him, Knowest thou that the LORD will take away thy +master from thy head to day? And he answered, Yea, I know it; hold ye +your peace. + +2:6 And Elijah said unto him, Tarry, I pray thee, here; for the LORD +hath sent me to Jordan. And he said, As the LORD liveth, and as thy +soul liveth, I will not leave thee. And they two went on. + +2:7 And fifty men of the sons of the prophets went, and stood to view +afar off: and they two stood by Jordan. + +2:8 And Elijah took his mantle, and wrapped it together, and smote the +waters, and they were divided hither and thither, so that they two +went over on dry ground. + +2:9 And it came to pass, when they were gone over, that Elijah said +unto Elisha, Ask what I shall do for thee, before I be taken away from +thee. And Elisha said, I pray thee, let a double portion of thy spirit +be upon me. + +2:10 And he said, Thou hast asked a hard thing: nevertheless, if thou +see me when I am taken from thee, it shall be so unto thee; but if +not, it shall not be so. + +2:11 And it came to pass, as they still went on, and talked, that, +behold, there appeared a chariot of fire, and horses of fire, and +parted them both asunder; and Elijah went up by a whirlwind into +heaven. + +2:12 And Elisha saw it, and he cried, My father, my father, the +chariot of Israel, and the horsemen thereof. And he saw him no more: +and he took hold of his own clothes, and rent them in two pieces. + +2:13 He took up also the mantle of Elijah that fell from him, and went +back, and stood by the bank of Jordan; 2:14 And he took the mantle of +Elijah that fell from him, and smote the waters, and said, Where is +the LORD God of Elijah? and when he also had smitten the waters, they +parted hither and thither: and Elisha went over. + +2:15 And when the sons of the prophets which were to view at Jericho +saw him, they said, The spirit of Elijah doth rest on Elisha. And they +came to meet him, and bowed themselves to the ground before him. + +2:16 And they said unto him, Behold now, there be with thy servants +fifty strong men; let them go, we pray thee, and seek thy master: lest +peradventure the Spirit of the LORD hath taken him up, and cast him +upon some mountain, or into some valley. And he said, Ye shall not +send. + +2:17 And when they urged him till he was ashamed, he said, Send. They +sent therefore fifty men; and they sought three days, but found him +not. + +2:18 And when they came again to him, (for he tarried at Jericho,) he +said unto them, Did I not say unto you, Go not? 2:19 And the men of +the city said unto Elisha, Behold, I pray thee, the situation of this +city is pleasant, as my lord seeth: but the water is naught, and the +ground barren. + +2:20 And he said, Bring me a new cruse, and put salt therein. And they +brought it to him. + +2:21 And he went forth unto the spring of the waters, and cast the +salt in there, and said, Thus saith the LORD, I have healed these +waters; there shall not be from thence any more death or barren land. + +2:22 So the waters were healed unto this day, according to the saying +of Elisha which he spake. + +2:23 And he went up from thence unto Bethel: and as he was going up by +the way, there came forth little children out of the city, and mocked +him, and said unto him, Go up, thou bald head; go up, thou bald head. + +2:24 And he turned back, and looked on them, and cursed them in the +name of the LORD. And there came forth two she bears out of the wood, +and tare forty and two children of them. + +2:25 And he went from thence to mount Carmel, and from thence he +returned to Samaria. + +3:1 Now Jehoram the son of Ahab began to reign over Israel in Samaria +the eighteenth year of Jehoshaphat king of Judah, and reigned twelve +years. + +3:2 And he wrought evil in the sight of the LORD; but not like his +father, and like his mother: for he put away the image of Baal that +his father had made. + +3:3 Nevertheless he cleaved unto the sins of Jeroboam the son of +Nebat, which made Israel to sin; he departed not therefrom. + +3:4 And Mesha king of Moab was a sheepmaster, and rendered unto the +king of Israel an hundred thousand lambs, and an hundred thousand +rams, with the wool. + +3:5 But it came to pass, when Ahab was dead, that the king of Moab +rebelled against the king of Israel. + +3:6 And king Jehoram went out of Samaria the same time, and numbered +all Israel. + +3:7 And he went and sent to Jehoshaphat the king of Judah, saying, The +king of Moab hath rebelled against me: wilt thou go with me against +Moab to battle? And he said, I will go up: I am as thou art, my people +as thy people, and my horses as thy horses. + +3:8 And he said, Which way shall we go up? And he answered, The way +through the wilderness of Edom. + +3:9 So the king of Israel went, and the king of Judah, and the king of +Edom: and they fetched a compass of seven days' journey: and there was +no water for the host, and for the cattle that followed them. + +3:10 And the king of Israel said, Alas! that the LORD hath called +these three kings together, to deliver them into the hand of Moab! +3:11 But Jehoshaphat said, Is there not here a prophet of the LORD, +that we may enquire of the LORD by him? And one of the king of +Israel's servants answered and said, Here is Elisha the son of +Shaphat, which poured water on the hands of Elijah. + +3:12 And Jehoshaphat said, The word of the LORD is with him. So the +king of Israel and Jehoshaphat and the king of Edom went down to him. + +3:13 And Elisha said unto the king of Israel, What have I to do with +thee? get thee to the prophets of thy father, and to the prophets of +thy mother. + +And the king of Israel said unto him, Nay: for the LORD hath called +these three kings together, to deliver them into the hand of Moab. + +3:14 And Elisha said, As the LORD of hosts liveth, before whom I +stand, surely, were it not that I regard the presence of Jehoshaphat +the king of Judah, I would not look toward thee, nor see thee. + +3:15 But now bring me a minstrel. And it came to pass, when the +minstrel played, that the hand of the LORD came upon him. + +3:16 And he said, Thus saith the LORD, Make this valley full of +ditches. + +3:17 For thus saith the LORD, Ye shall not see wind, neither shall ye +see rain; yet that valley shall be filled with water, that ye may +drink, both ye, and your cattle, and your beasts. + +3:18 And this is but a light thing in the sight of the LORD: he will +deliver the Moabites also into your hand. + +3:19 And ye shall smite every fenced city, and every choice city, and +shall fell every good tree, and stop all wells of water, and mar every +good piece of land with stones. + +3:20 And it came to pass in the morning, when the meat offering was +offered, that, behold, there came water by the way of Edom, and the +country was filled with water. + +3:21 And when all the Moabites heard that the kings were come up to +fight against them, they gathered all that were able to put on armour, +and upward, and stood in the border. + +3:22 And they rose up early in the morning, and the sun shone upon the +water, and the Moabites saw the water on the other side as red as +blood: 3:23 And they said, This is blood: the kings are surely slain, +and they have smitten one another: now therefore, Moab, to the spoil. + +3:24 And when they came to the camp of Israel, the Israelites rose up +and smote the Moabites, so that they fled before them: but they went +forward smiting the Moabites, even in their country. + +3:25 And they beat down the cities, and on every good piece of land +cast every man his stone, and filled it; and they stopped all the +wells of water, and felled all the good trees: only in Kirharaseth +left they the stones thereof; howbeit the slingers went about it, and +smote it. + +3:26 And when the king of Moab saw that the battle was too sore for +him, he took with him seven hundred men that drew swords, to break +through even unto the king of Edom: but they could not. + +3:27 Then he took his eldest son that should have reigned in his +stead, and offered him for a burnt offering upon the wall. And there +was great indignation against Israel: and they departed from him, and +returned to their own land. + +4:1 Now there cried a certain woman of the wives of the sons of the +prophets unto Elisha, saying, Thy servant my husband is dead; and thou +knowest that thy servant did fear the LORD: and the creditor is come +to take unto him my two sons to be bondmen. + +4:2 And Elisha said unto her, What shall I do for thee? tell me, what +hast thou in the house? And she said, Thine handmaid hath not any +thing in the house, save a pot of oil. + +4:3 Then he said, Go, borrow thee vessels abroad of all thy +neighbours, even empty vessels; borrow not a few. + +4:4 And when thou art come in, thou shalt shut the door upon thee and +upon thy sons, and shalt pour out into all those vessels, and thou +shalt set aside that which is full. + +4:5 So she went from him, and shut the door upon her and upon her +sons, who brought the vessels to her; and she poured out. + +4:6 And it came to pass, when the vessels were full, that she said +unto her son, Bring me yet a vessel. And he said unto her, There is +not a vessel more. And the oil stayed. + +4:7 Then she came and told the man of God. And he said, Go, sell the +oil, and pay thy debt, and live thou and thy children of the rest. + +4:8 And it fell on a day, that Elisha passed to Shunem, where was a +great woman; and she constrained him to eat bread. And so it was, that +as oft as he passed by, he turned in thither to eat bread. + +4:9 And she said unto her husband, Behold now, I perceive that this is +an holy man of God, which passeth by us continually. + +4:10 Let us make a little chamber, I pray thee, on the wall; and let +us set for him there a bed, and a table, and a stool, and a +candlestick: and it shall be, when he cometh to us, that he shall turn +in thither. + +4:11 And it fell on a day, that he came thither, and he turned into +the chamber, and lay there. + +4:12 And he said to Gehazi his servant, Call this Shunammite. And when +he had called her, she stood before him. + +4:13 And he said unto him, Say now unto her, Behold, thou hast been +careful for us with all this care; what is to be done for thee? +wouldest thou be spoken for to the king, or to the captain of the +host? And she answered, I dwell among mine own people. + +4:14 And he said, What then is to be done for her? And Gehazi +answered, Verily she hath no child, and her husband is old. + +4:15 And he said, Call her. And when he had called her, she stood in +the door. + +4:16 And he said, About this season, according to the time of life, +thou shalt embrace a son. And she said, Nay, my lord, thou man of God, +do not lie unto thine handmaid. + +4:17 And the woman conceived, and bare a son at that season that +Elisha had said unto her, according to the time of life. + +4:18 And when the child was grown, it fell on a day, that he went out +to his father to the reapers. + +4:19 And he said unto his father, My head, my head. And he said to a +lad, Carry him to his mother. + +4:20 And when he had taken him, and brought him to his mother, he sat +on her knees till noon, and then died. + +4:21 And she went up, and laid him on the bed of the man of God, and +shut the door upon him, and went out. + +4:22 And she called unto her husband, and said, Send me, I pray thee, +one of the young men, and one of the asses, that I may run to the man +of God, and come again. + +4:23 And he said, Wherefore wilt thou go to him to day? it is neither +new moon, nor sabbath. And she said, It shall be well. + +4:24 Then she saddled an ass, and said to her servant, Drive, and go +forward; slack not thy riding for me, except I bid thee. + +4:25 So she went and came unto the man of God to mount Carmel. And it +came to pass, when the man of God saw her afar off, that he said to +Gehazi his servant, Behold, yonder is that Shunammite: 4:26 Run now, I +pray thee, to meet her, and say unto her, Is it well with thee? is it +well with thy husband? is it well with the child? And she answered, It +is well: 4:27 And when she came to the man of God to the hill, she +caught him by the feet: but Gehazi came near to thrust her away. And +the man of God said, Let her alone; for her soul is vexed within her: +and the LORD hath hid it from me, and hath not told me. + +4:28 Then she said, Did I desire a son of my lord? did I not say, Do +not deceive me? 4:29 Then he said to Gehazi, Gird up thy loins, and +take my staff in thine hand, and go thy way: if thou meet any man, +salute him not; and if any salute thee, answer him not again: and lay +my staff upon the face of the child. + +4:30 And the mother of the child said, As the LORD liveth, and as thy +soul liveth, I will not leave thee. And he arose, and followed her. + +4:31 And Gehazi passed on before them, and laid the staff upon the +face of the child; but there was neither voice, nor hearing. Wherefore +he went again to meet him, and told him, saying, The child is not +awaked. + +4:32 And when Elisha was come into the house, behold, the child was +dead, and laid upon his bed. + +4:33 He went in therefore, and shut the door upon them twain, and +prayed unto the LORD. + +4:34 And he went up, and lay upon the child, and put his mouth upon +his mouth, and his eyes upon his eyes, and his hands upon his hands: +and stretched himself upon the child; and the flesh of the child waxed +warm. + +4:35 Then he returned, and walked in the house to and fro; and went +up, and stretched himself upon him: and the child sneezed seven times, +and the child opened his eyes. + +4:36 And he called Gehazi, and said, Call this Shunammite. So he +called her. And when she was come in unto him, he said, Take up thy +son. + +4:37 Then she went in, and fell at his feet, and bowed herself to the +ground, and took up her son, and went out. + +4:38 And Elisha came again to Gilgal: and there was a dearth in the +land; and the sons of the prophets were sitting before him: and he +said unto his servant, Set on the great pot, and seethe pottage for +the sons of the prophets. + +4:39 And one went out into the field to gather herbs, and found a wild +vine, and gathered thereof wild gourds his lap full, and came and +shred them into the pot of pottage: for they knew them not. + +4:40 So they poured out for the men to eat. And it came to pass, as +they were eating of the pottage, that they cried out, and said, O thou +man of God, there is death in the pot. And they could not eat thereof. + +4:41 But he said, Then bring meal. And he cast it into the pot; and he +said, Pour out for the people, that they may eat. And there was no +harm in the pot. + +4:42 And there came a man from Baalshalisha, and brought the man of +God bread of the firstfruits, twenty loaves of barley, and full ears +of corn in the husk thereof. And he said, Give unto the people, that +they may eat. + +4:43 And his servitor said, What, should I set this before an hundred +men? He said again, Give the people, that they may eat: for thus +saith the LORD, They shall eat, and shall leave thereof. + +4:44 So he set it before them, and they did eat, and left thereof, +according to the word of the LORD. + +5:1 Now Naaman, captain of the host of the king of Syria, was a great +man with his master, and honourable, because by him the LORD had given +deliverance unto Syria: he was also a mighty man in valour, but he was +a leper. + +5:2 And the Syrians had gone out by companies, and had brought away +captive out of the land of Israel a little maid; and she waited on +Naaman's wife. + +5:3 And she said unto her mistress, Would God my lord were with the +prophet that is in Samaria! for he would recover him of his leprosy. + +5:4 And one went in, and told his lord, saying, Thus and thus said the +maid that is of the land of Israel. + +5:5 And the king of Syria said, Go to, go, and I will send a letter +unto the king of Israel. And he departed, and took with him ten +talents of silver, and six thousand pieces of gold, and ten changes of +raiment. + +5:6 And he brought the letter to the king of Israel, saying, Now when +this letter is come unto thee, behold, I have therewith sent Naaman my +servant to thee, that thou mayest recover him of his leprosy. + +5:7 And it came to pass, when the king of Israel had read the letter, +that he rent his clothes, and said, Am I God, to kill and to make +alive, that this man doth send unto me to recover a man of his +leprosy? wherefore consider, I pray you, and see how he seeketh a +quarrel against me. + +5:8 And it was so, when Elisha the man of God had heard that the king +of Israel had rent his clothes, that he sent to the king, saying, +Wherefore hast thou rent thy clothes? let him come now to me, and he +shall know that there is a prophet in Israel. + +5:9 So Naaman came with his horses and with his chariot, and stood at +the door of the house of Elisha. + +5:10 And Elisha sent a messenger unto him, saying, Go and wash in +Jordan seven times, and thy flesh shall come again to thee, and thou +shalt be clean. + +5:11 But Naaman was wroth, and went away, and said, Behold, I thought, +He will surely come out to me, and stand, and call on the name of the +LORD his God, and strike his hand over the place, and recover the +leper. + +5:12 Are not Abana and Pharpar, rivers of Damascus, better than all +the waters of Israel? may I not wash in them, and be clean? So he +turned and went away in a rage. + +5:13 And his servants came near, and spake unto him, and said, My +father, if the prophet had bid thee do some great thing, wouldest thou +not have done it? how much rather then, when he saith to thee, Wash, +and be clean? 5:14 Then went he down, and dipped himself seven times +in Jordan, according to the saying of the man of God: and his flesh +came again like unto the flesh of a little child, and he was clean. + +5:15 And he returned to the man of God, he and all his company, and +came, and stood before him: and he said, Behold, now I know that there +is no God in all the earth, but in Israel: now therefore, I pray thee, +take a blessing of thy servant. + +5:16 But he said, As the LORD liveth, before whom I stand, I will +receive none. And he urged him to take it; but he refused. + +5:17 And Naaman said, Shall there not then, I pray thee, be given to +thy servant two mules' burden of earth? for thy servant will +henceforth offer neither burnt offering nor sacrifice unto other gods, +but unto the LORD. + +5:18 In this thing the LORD pardon thy servant, that when my master +goeth into the house of Rimmon to worship there, and he leaneth on my +hand, and I bow myself in the house of Rimmon: when I bow down myself +in the house of Rimmon, the LORD pardon thy servant in this thing. + +5:19 And he said unto him, Go in peace. So he departed from him a +little way. + +5:20 But Gehazi, the servant of Elisha the man of God, said, Behold, +my master hath spared Naaman this Syrian, in not receiving at his +hands that which he brought: but, as the LORD liveth, I will run after +him, and take somewhat of him. + +5:21 So Gehazi followed after Naaman. And when Naaman saw him running +after him, he lighted down from the chariot to meet him, and said, Is +all well? 5:22 And he said, All is well. My master hath sent me, +saying, Behold, even now there be come to me from mount Ephraim two +young men of the sons of the prophets: give them, I pray thee, a +talent of silver, and two changes of garments. + +5:23 And Naaman said, Be content, take two talents. And he urged him, +and bound two talents of silver in two bags, with two changes of +garments, and laid them upon two of his servants; and they bare them +before him. + +5:24 And when he came to the tower, he took them from their hand, and +bestowed them in the house: and he let the men go, and they departed. + +5:25 But he went in, and stood before his master. And Elisha said unto +him, Whence comest thou, Gehazi? And he said, Thy servant went no +whither. + +5:26 And he said unto him, Went not mine heart with thee, when the man +turned again from his chariot to meet thee? Is it a time to receive +money, and to receive garments, and oliveyards, and vineyards, and +sheep, and oxen, and menservants, and maidservants? 5:27 The leprosy +therefore of Naaman shall cleave unto thee, and unto thy seed for +ever. And he went out from his presence a leper as white as snow. + +6:1 And the sons of the prophets said unto Elisha, Behold now, the +place where we dwell with thee is too strait for us. + +6:2 Let us go, we pray thee, unto Jordan, and take thence every man a +beam, and let us make us a place there, where we may dwell. And he +answered, Go ye. + +6:3 And one said, Be content, I pray thee, and go with thy servants. +And he answered, I will go. + +6:4 So he went with them. And when they came to Jordan, they cut down +wood. + +6:5 But as one was felling a beam, the axe head fell into the water: +and he cried, and said, Alas, master! for it was borrowed. + +6:6 And the man of God said, Where fell it? And he shewed him the +place. + +And he cut down a stick, and cast it in thither; and the iron did +swim. + +6:7 Therefore said he, Take it up to thee. And he put out his hand, +and took it. + +6:8 Then the king of Syria warred against Israel, and took counsel +with his servants, saying, In such and such a place shall be my camp. + +6:9 And the man of God sent unto the king of Israel, saying, Beware +that thou pass not such a place; for thither the Syrians are come +down. + +6:10 And the king of Israel sent to the place which the man of God +told him and warned him of, and saved himself there, not once nor +twice. + +6:11 Therefore the heart of the king of Syria was sore troubled for +this thing; and he called his servants, and said unto them, Will ye +not shew me which of us is for the king of Israel? 6:12 And one of +his servants said, None, my lord, O king: but Elisha, the prophet that +is in Israel, telleth the king of Israel the words that thou speakest +in thy bedchamber. + +6:13 And he said, Go and spy where he is, that I may send and fetch +him. + +And it was told him, saying, Behold, he is in Dothan. + +6:14 Therefore sent he thither horses, and chariots, and a great host: +and they came by night, and compassed the city about. + +6:15 And when the servant of the man of God was risen early, and gone +forth, behold, an host compassed the city both with horses and +chariots. And his servant said unto him, Alas, my master! how shall we +do? 6:16 And he answered, Fear not: for they that be with us are more +than they that be with them. + +6:17 And Elisha prayed, and said, LORD, I pray thee, open his eyes, +that he may see. And the LORD opened the eyes of the young man; and he +saw: and, behold, the mountain was full of horses and chariots of fire +round about Elisha. + +6:18 And when they came down to him, Elisha prayed unto the LORD, and +said, Smite this people, I pray thee, with blindness. And he smote +them with blindness according to the word of Elisha. + +6:19 And Elisha said unto them, This is not the way, neither is this +the city: follow me, and I will bring you to the man whom ye seek. But +he led them to Samaria. + +6:20 And it came to pass, when they were come into Samaria, that +Elisha said, LORD, open the eyes of these men, that they may see. And +the LORD opened their eyes, and they saw; and, behold, they were in +the midst of Samaria. + +6:21 And the king of Israel said unto Elisha, when he saw them, My +father, shall I smite them? shall I smite them? 6:22 And he answered, +Thou shalt not smite them: wouldest thou smite those whom thou hast +taken captive with thy sword and with thy bow? set bread and water +before them, that they may eat and drink, and go to their master. + +6:23 And he prepared great provision for them: and when they had eaten +and drunk, he sent them away, and they went to their master. So the +bands of Syria came no more into the land of Israel. + +6:24 And it came to pass after this, that Benhadad king of Syria +gathered all his host, and went up, and besieged Samaria. + +6:25 And there was a great famine in Samaria: and, behold, they +besieged it, until an ass's head was sold for fourscore pieces of +silver, and the fourth part of a cab of dove's dung for five pieces of +silver. + +6:26 And as the king of Israel was passing by upon the wall, there +cried a woman unto him, saying, Help, my lord, O king. + +6:27 And he said, If the LORD do not help thee, whence shall I help +thee? out of the barnfloor, or out of the winepress? 6:28 And the +king said unto her, What aileth thee? And she answered, This woman +said unto me, Give thy son, that we may eat him to day, and we will +eat my son to morrow. + +6:29 So we boiled my son, and did eat him: and I said unto her on the +next day, Give thy son, that we may eat him: and she hath hid her son. + +6:30 And it came to pass, when the king heard the words of the woman, +that he rent his clothes; and he passed by upon the wall, and the +people looked, and, behold, he had sackcloth within upon his flesh. + +6:31 Then he said, God do so and more also to me, if the head of +Elisha the son of Shaphat shall stand on him this day. + +6:32 But Elisha sat in his house, and the elders sat with him; and the +king sent a man from before him: but ere the messenger came to him, he +said to the elders, See ye how this son of a murderer hath sent to +take away mine head? look, when the messenger cometh, shut the door, +and hold him fast at the door: is not the sound of his master's feet +behind him? 6:33 And while he yet talked with them, behold, the +messenger came down unto him: and he said, Behold, this evil is of the +LORD; what should I wait for the LORD any longer? 7:1 Then Elisha +said, Hear ye the word of the LORD; Thus saith the LORD, To morrow +about this time shall a measure of fine flour be sold for a shekel, +and two measures of barley for a shekel, in the gate of Samaria. + +7:2 Then a lord on whose hand the king leaned answered the man of God, +and said, Behold, if the LORD would make windows in heaven, might this +thing be? And he said, Behold, thou shalt see it with thine eyes, but +shalt not eat thereof. + +7:3 And there were four leprous men at the entering in of the gate: +and they said one to another, Why sit we here until we die? 7:4 If we +say, We will enter into the city, then the famine is in the city, and +we shall die there: and if we sit still here, we die also. Now +therefore come, and let us fall unto the host of the Syrians: if they +save us alive, we shall live; and if they kill us, we shall but die. + +7:5 And they rose up in the twilight, to go unto the camp of the +Syrians: and when they were come to the uttermost part of the camp of +Syria, behold, there was no man there. + +7:6 For the LORD had made the host of the Syrians to hear a noise of +chariots, and a noise of horses, even the noise of a great host: and +they said one to another, Lo, the king of Israel hath hired against us +the kings of the Hittites, and the kings of the Egyptians, to come +upon us. + +7:7 Wherefore they arose and fled in the twilight, and left their +tents, and their horses, and their asses, even the camp as it was, and +fled for their life. + +7:8 And when these lepers came to the uttermost part of the camp, they +went into one tent, and did eat and drink, and carried thence silver, +and gold, and raiment, and went and hid it; and came again, and +entered into another tent, and carried thence also, and went and hid +it. + +7:9 Then they said one to another, We do not well: this day is a day +of good tidings, and we hold our peace: if we tarry till the morning +light, some mischief will come upon us: now therefore come, that we +may go and tell the king's household. + +7:10 So they came and called unto the porter of the city: and they +told them, saying, We came to the camp of the Syrians, and, behold, +there was no man there, neither voice of man, but horses tied, and +asses tied, and the tents as they were. + +7:11 And he called the porters; and they told it to the king's house +within. + +7:12 And the king arose in the night, and said unto his servants, I +will now shew you what the Syrians have done to us. They know that we +be hungry; therefore are they gone out of the camp to hide themselves +in the field, saying, When they come out of the city, we shall catch +them alive, and get into the city. + +7:13 And one of his servants answered and said, Let some take, I pray +thee, five of the horses that remain, which are left in the city, +(behold, they are as all the multitude of Israel that are left in it: +behold, I say, they are even as all the multitude of the Israelites +that are consumed:) and let us send and see. + +7:14 They took therefore two chariot horses; and the king sent after +the host of the Syrians, saying, Go and see. + +7:15 And they went after them unto Jordan: and, lo, all the way was +full of garments and vessels, which the Syrians had cast away in their +haste. And the messengers returned, and told the king. + +7:16 And the people went out, and spoiled the tents of the Syrians. So +a measure of fine flour was sold for a shekel, and two measures of +barley for a shekel, according to the word of the LORD. + +7:17 And the king appointed the lord on whose hand he leaned to have +the charge of the gate: and the people trode upon him in the gate, and +he died, as the man of God had said, who spake when the king came down +to him. + +7:18 And it came to pass as the man of God had spoken to the king, +saying, Two measures of barley for a shekel, and a measure of fine +flour for a shekel, shall be to morrow about this time in the gate of +Samaria: 7:19 And that lord answered the man of God, and said, Now, +behold, if the LORD should make windows in heaven, might such a thing +be? And he said, Behold, thou shalt see it with thine eyes, but shalt +not eat thereof. + +7:20 And so it fell out unto him: for the people trode upon him in the +gate, and he died. + +8:1 Then spake Elisha unto the woman, whose son he had restored to +life, saying, Arise, and go thou and thine household, and sojourn +wheresoever thou canst sojourn: for the LORD hath called for a famine; +and it shall also come upon the land seven years. + +8:2 And the woman arose, and did after the saying of the man of God: +and she went with her household, and sojourned in the land of the +Philistines seven years. + +8:3 And it came to pass at the seven years' end, that the woman +returned out of the land of the Philistines: and she went forth to cry +unto the king for her house and for her land. + +8:4 And the king talked with Gehazi the servant of the man of God, +saying, Tell me, I pray thee, all the great things that Elisha hath +done. + +8:5 And it came to pass, as he was telling the king how he had +restored a dead body to life, that, behold, the woman, whose son he +had restored to life, cried to the king for her house and for her +land. And Gehazi said, My lord, O king, this is the woman, and this is +her son, whom Elisha restored to life. + +8:6 And when the king asked the woman, she told him. So the king +appointed unto her a certain officer, saying, Restore all that was +hers, and all the fruits of the field since the day that she left the +land, even until now. + +8:7 And Elisha came to Damascus; and Benhadad the king of Syria was +sick; and it was told him, saying, The man of God is come hither. + +8:8 And the king said unto Hazael, Take a present in thine hand, and +go, meet the man of God, and enquire of the LORD by him, saying, Shall +I recover of this disease? 8:9 So Hazael went to meet him, and took a +present with him, even of every good thing of Damascus, forty camels' +burden, and came and stood before him, and said, Thy son Benhadad king +of Syria hath sent me to thee, saying, Shall I recover of this +disease? 8:10 And Elisha said unto him, Go, say unto him, Thou mayest +certainly recover: howbeit the LORD hath shewed me that he shall +surely die. + +8:11 And he settled his countenance stedfastly, until he was ashamed: +and the man of God wept. + +8:12 And Hazael said, Why weepeth my lord? And he answered, Because I +know the evil that thou wilt do unto the children of Israel: their +strong holds wilt thou set on fire, and their young men wilt thou slay +with the sword, and wilt dash their children, and rip up their women +with child. + +8:13 And Hazael said, But what, is thy servant a dog, that he should +do this great thing? And Elisha answered, The LORD hath shewed me that +thou shalt be king over Syria. + +8:14 So he departed from Elisha, and came to his master; who said to +him, What said Elisha to thee? And he answered, He told me that thou +shouldest surely recover. + +8:15 And it came to pass on the morrow, that he took a thick cloth, +and dipped it in water, and spread it on his face, so that he died: +and Hazael reigned in his stead. + +8:16 And in the fifth year of Joram the son of Ahab king of Israel, +Jehoshaphat being then king of Judah, Jehoram the son of Je hoshaphat +king of Judah began to reign. + +8:17 Thirty and two years old was he when he began to reign; and he +reigned eight years in Jerusalem. + +8:18 And he walked in the way of the kings of Israel, as did the house +of Ahab: for the daughter of Ahab was his wife: and he did evil in the +sight of the LORD. + +8:19 Yet the LORD would not destroy Judah for David his servant's +sake, as he promised him to give him alway a light, and to his +children. + +8:20 In his days Edom revolted from under the hand of Judah, and made +a king over themselves. + +8:21 So Joram went over to Zair, and all the chariots with him: and he +rose by night, and smote the Edomites which compassed him about, and +the captains of the chariots: and the people fled into their tents. + +8:22 Yet Edom revolted from under the hand of Judah unto this day. +Then Libnah revolted at the same time. + +8:23 And the rest of the acts of Joram, and all that he did, are they +not written in the book of the chronicles of the kings of Judah? 8:24 +And Joram slept with his fathers, and was buried with his fathers in +the city of David: and Ahaziah his son reigned in his stead. + +8:25 In the twelfth year of Joram the son of Ahab king of Israel did +Ahaziah the son of Jehoram king of Judah begin to reign. + +8:26 Two and twenty years old was Ahaziah when he began to reign; and +he reigned one year in Jerusalem. And his mother's name was Athaliah, +the daughter of Omri king of Israel. + +8:27 And he walked in the way of the house of Ahab, and did evil in +the sight of the LORD, as did the house of Ahab: for he was the son in +law of the house of Ahab. + +8:28 And he went with Joram the son of Ahab to the war against Hazael +king of Syria in Ramothgilead; and the Syrians wounded Joram. + +8:29 And king Joram went back to be healed in Jezreel of the wounds +which the Syrians had given him at Ramah, when he fought against +Hazael king of Syria. And Ahaziah the son of Jehoram king of Judah +went down to see Joram the son of Ahab in Jezreel, because he was +sick. + +9:1 And Elisha the prophet called one of the children of the prophets, +and said unto him, Gird up thy loins, and take this box of oil in +thine hand, and go to Ramothgilead: 9:2 And when thou comest thither, +look out there Jehu the son of Jehoshaphat the son of Nimshi, and go +in, and make him arise up from among his brethren, and carry him to an +inner chamber; 9:3 Then take the box of oil, and pour it on his head, +and say, Thus saith the LORD, I have anointed thee king over Israel. +Then open the door, and flee, and tarry not. + +9:4 So the young man, even the young man the prophet, went to +Ramothgilead. + +9:5 And when he came, behold, the captains of the host were sitting; +and he said, I have an errand to thee, O captain. And Jehu said, Unto +which of all us? And he said, To thee, O captain. + +9:6 And he arose, and went into the house; and he poured the oil on +his head, and said unto him, Thus saith the LORD God of Israel, I have +anointed thee king over the people of the LORD, even over Israel. + +9:7 And thou shalt smite the house of Ahab thy master, that I may +avenge the blood of my servants the prophets, and the blood of all the +servants of the LORD, at the hand of Jezebel. + +9:8 For the whole house of Ahab shall perish: and I will cut off from +Ahab him that pisseth against the wall, and him that is shut up and +left in Israel: 9:9 And I will make the house of Ahab like the house +of Jeroboam the son of Nebat, and like the house of Baasha the son of +Ahijah: 9:10 And the dogs shall eat Jezebel in the portion of Jezreel, +and there shall be none to bury her. And he opened the door, and fled. + +9:11 Then Jehu came forth to the servants of his lord: and one said +unto him, Is all well? wherefore came this mad fellow to thee? And he +said unto them, Ye know the man, and his communication. + +9:12 And they said, It is false; tell us now. And he said, Thus and +thus spake he to me, saying, Thus saith the LORD, I have anointed thee +king over Israel. + +9:13 Then they hasted, and took every man his garment, and put it +under him on the top of the stairs, and blew with trumpets, saying, +Jehu is king. + +9:14 So Jehu the son of Jehoshaphat the son of Nimshi conspired +against Joram. (Now Joram had kept Ramothgilead, he and all Israel, +because of Hazael king of Syria. + +9:15 But king Joram was returned to be healed in Jezreel of the wounds +which the Syrians had given him, when he fought with Hazael king of +Syria.) And Jehu said, If it be your minds, then let none go forth +nor escape out of the city to go to tell it in Jezreel. + +9:16 So Jehu rode in a chariot, and went to Jezreel; for Joram lay +there. + +And Ahaziah king of Judah was come down to see Joram. + +9:17 And there stood a watchman on the tower in Jezreel, and he spied +the company of Jehu as he came, and said, I see a company. And Joram +said, Take an horseman, and send to meet them, and let him say, Is it +peace? 9:18 So there went one on horseback to meet him, and said, +Thus saith the king, Is it peace? And Jehu said, What hast thou to do +with peace? turn thee behind me. And the watchman told, saying, The +messenger came to them, but he cometh not again. + +9:19 Then he sent out a second on horseback, which came to them, and +said, Thus saith the king, Is it peace? And Jehu answered, What hast +thou to do with peace? turn thee behind me. + +9:20 And the watchman told, saying, He came even unto them, and cometh +not again: and the driving is like the driving of Jehu the son of +Nimshi; for he driveth furiously. + +9:21 And Joram said, Make ready. And his chariot was made ready. And +Joram king of Israel and Ahaziah king of Judah went out, each in his +chariot, and they went out against Jehu, and met him in the portion of +Naboth the Jezreelite. + +9:22 And it came to pass, when Joram saw Jehu, that he said, Is it +peace, Jehu? And he answered, What peace, so long as the whoredoms of +thy mother Jezebel and her witchcrafts are so many? 9:23 And Joram +turned his hands, and fled, and said to Ahaziah, There is treachery, O +Ahaziah. + +9:24 And Jehu drew a bow with his full strength, and smote Jehoram +between his arms, and the arrow went out at his heart, and he sunk +down in his chariot. + +9:25 Then said Jehu to Bidkar his captain, Take up, and cast him in +the portion of the field of Naboth the Jezreelite: for remember how +that, when I and thou rode together after Ahab his father, the LORD +laid this burden upon him; 9:26 Surely I have seen yesterday the blood +of Naboth, and the blood of his sons, saith the LORD; and I will +requite thee in this plat, saith the LORD. Now therefore take and cast +him into the plat of ground, according to the word of the LORD. + +9:27 But when Ahaziah the king of Judah saw this, he fled by the way +of the garden house. And Jehu followed after him, and said, Smite him +also in the chariot. And they did so at the going up to Gur, which is +by Ibleam. + +And he fled to Megiddo, and died there. + +9:28 And his servants carried him in a chariot to Jerusalem, and +buried him in his sepulchre with his fathers in the city of David. + +9:29 And in the eleventh year of Joram the son of Ahab began Ahaziah +to reign over Judah. + +9:30 And when Jehu was come to Jezreel, Jezebel heard of it; and she +painted her face, and tired her head, and looked out at a window. + +9:31 And as Jehu entered in at the gate, she said, Had Zimri peace, +who slew his master? 9:32 And he lifted up his face to the window, +and said, Who is on my side? who? And there looked out to him two or +three eunuchs. + +9:33 And he said, Throw her down. So they threw her down: and some of +her blood was sprinkled on the wall, and on the horses: and he trode +her under foot. + +9:34 And when he was come in, he did eat and drink, and said, Go, see +now this cursed woman, and bury her: for she is a king's daughter. + +9:35 And they went to bury her: but they found no more of her than the +skull, and the feet, and the palms of her hands. + +9:36 Wherefore they came again, and told him. And he said, This is the +word of the LORD, which he spake by his servant Elijah the Tishbite, +saying, In the portion of Jezreel shall dogs eat the flesh of Jezebel: +9:37 And the carcase of Jezebel shall be as dung upon the face of the +field in the portion of Jezreel; so that they shall not say, This is +Jezebel. + +10:1 And Ahab had seventy sons in Samaria. And Jehu wrote letters, and +sent to Samaria, unto the rulers of Jezreel, to the elders, and to +them that brought up Ahab's children, saying, 10:2 Now as soon as this +letter cometh to you, seeing your master's sons are with you, and +there are with you chariots and horses, a fenced city also, and +armour; 10:3 Look even out the best and meetest of your master's sons, +and set him on his father's throne, and fight for your master's house. + +10:4 But they were exceedingly afraid, and said, Behold, two kings +stood not before him: how then shall we stand? 10:5 And he that was +over the house, and he that was over the city, the elders also, and +the bringers up of the children, sent to Jehu, saying, We are thy +servants, and will do all that thou shalt bid us; we will not make any +king: do thou that which is good in thine eyes. + +10:6 Then he wrote a letter the second time to them, saying, If ye be +mine, and if ye will hearken unto my voice, take ye the heads of the +men your master's sons, and come to me to Jezreel by to morrow this +time. Now the king's sons, being seventy persons, were with the great +men of the city, which brought them up. + +10:7 And it came to pass, when the letter came to them, that they took +the king's sons, and slew seventy persons, and put their heads in +baskets, and sent him them to Jezreel. + +10:8 And there came a messenger, and told him, saying, They have +brought the heads of the king's sons. And he said, Lay ye them in two +heaps at the entering in of the gate until the morning. + +10:9 And it came to pass in the morning, that he went out, and stood, +and said to all the people, Ye be righteous: behold, I conspired +against my master, and slew him: but who slew all these? 10:10 Know +now that there shall fall unto the earth nothing of the word of the +LORD, which the LORD spake concerning the house of Ahab: for the LORD +hath done that which he spake by his servant Elijah. + +10:11 So Jehu slew all that remained of the house of Ahab in Jezreel, +and all his great men, and his kinsfolks, and his priests, until he +left him none remaining. + +10:12 And he arose and departed, and came to Samaria. And as he was at +the shearing house in the way, 10:13 Jehu met with the brethren of +Ahaziah king of Judah, and said, Who are ye? And they answered, We are +the brethren of Ahaziah; and we go down to salute the children of the +king and the children of the queen. + +10:14 And he said, Take them alive. And they took them alive, and slew +them at the pit of the shearing house, even two and forty men; neither +left he any of them. + +10:15 And when he was departed thence, he lighted on Jehonadab the son +of Rechab coming to meet him: and he saluted him, and said to him, Is +thine heart right, as my heart is with thy heart? And Jehonadab +answered, It is. If it be, give me thine hand. And he gave him his +hand; and he took him up to him into the chariot. + +10:16 And he said, Come with me, and see my zeal for the LORD. So they +made him ride in his chariot. + +10:17 And when he came to Samaria, he slew all that remained unto Ahab +in Samaria, till he had destroyed him, according to the saying of the +LORD, which he spake to Elijah. + +10:18 And Jehu gathered all the people together, and said unto them, +Ahab served Baal a little; but Jehu shall serve him much. + +10:19 Now therefore call unto me all the prophets of Baal, all his +servants, and all his priests; let none be wanting: for I have a great +sacrifice to do to Baal; whosoever shall be wanting, he shall not +live. But Jehu did it in subtilty, to the intent that he might destroy +the worshippers of Baal. + +10:20 And Jehu said, Proclaim a solemn assembly for Baal. And they +proclaimed it. + +10:21 And Jehu sent through all Israel: and all the worshippers of +Baal came, so that there was not a man left that came not. And they +came into the house of Baal; and the house of Baal was full from one +end to another. + +10:22 And he said unto him that was over the vestry, Bring forth +vestments for all the worshippers of Baal. And he brought them forth +vestments. + +10:23 And Jehu went, and Jehonadab the son of Rechab, into the house +of Baal, and said unto the worshippers of Baal, Search, and look that +there be here with you none of the servants of the LORD, but the +worshippers of Baal only. + +10:24 And when they went in to offer sacrifices and burnt offerings, +Jehu appointed fourscore men without, and said, If any of the men whom +I have brought into your hands escape, he that letteth him go, his +life shall be for the life of him. + +10:25 And it came to pass, as soon as he had made an end of offering +the burnt offering, that Jehu said to the guard and to the captains, +Go in, and slay them; let none come forth. And they smote them with +the edge of the sword; and the guard and the captains cast them out, +and went to the city of the house of Baal. + +10:26 And they brought forth the images out of the house of Baal, and +burned them. + +10:27 And they brake down the image of Baal, and brake down the house +of Baal, and made it a draught house unto this day. + +10:28 Thus Jehu destroyed Baal out of Israel. + +10:29 Howbeit from the sins of Jeroboam the son of Nebat, who made +Israel to sin, Jehu departed not from after them, to wit, the golden +calves that were in Bethel, and that were in Dan. + +10:30 And the LORD said unto Jehu, Because thou hast done well in +executing that which is right in mine eyes, and hast done unto the +house of Ahab according to all that was in mine heart, thy children of +the fourth generation shall sit on the throne of Israel. + +10:31 But Jehu took no heed to walk in the law of the LORD God of +Israel with all his heart: for he departed not from the sins of +Jeroboam, which made Israel to sin. + +10:32 In those days the LORD began to cut Israel short: and Hazael +smote them in all the coasts of Israel; 10:33 From Jordan eastward, +all the land of Gilead, the Gadites, and the Reubenites, and the +Manassites, from Aroer, which is by the river Arnon, even Gilead and +Bashan. + +10:34 Now the rest of the acts of Jehu, and all that he did, and all +his might, are they not written in the book of the chronicles of the +kings of Israel? 10:35 And Jehu slept with his fathers: and they +buried him in Samaria. And Jehoahaz his son reigned in his stead. + +10:36 And the time that Jehu reigned over Israel in Samaria was twenty +and eight years. + +11:1 And when Athaliah the mother of Ahaziah saw that her son was +dead, she arose and destroyed all the seed royal. + +11:2 But Jehosheba, the daughter of king Joram, sister of Ahaziah, +took Joash the son of Ahaziah, and stole him from among the king's +sons which were slain; and they hid him, even him and his nurse, in +the bedchamber from Athaliah, so that he was not slain. + +11:3 And he was with her hid in the house of the LORD six years. And +Athaliah did reign over the land. + +11:4 And the seventh year Jehoiada sent and fetched the rulers over +hundreds, with the captains and the guard, and brought them to him +into the house of the LORD, and made a covenant with them, and took an +oath of them in the house of the LORD, and shewed them the king's son. + +11:5 And he commanded them, saying, This is the thing that ye shall +do; A third part of you that enter in on the sabbath shall even be +keepers of the watch of the king's house; 11:6 And a third part shall +be at the gate of Sur; and a third part at the gate behind the guard: +so shall ye keep the watch of the house, that it be not broken down. + +11:7 And two parts of all you that go forth on the sabbath, even they +shall keep the watch of the house of the LORD about the king. + +11:8 And ye shall compass the king round about, every man with his +weapons in his hand: and he that cometh within the ranges, let him be +slain: and be ye with the king as he goeth out and as he cometh in. + +11:9 And the captains over the hundreds did according to all things +that Jehoiada the priest commanded: and they took every man his men +that were to come in on the sabbath, with them that should go out on +the sabbath, and came to Jehoiada the priest. + +11:10 And to the captains over hundreds did the priest give king +David's spears and shields, that were in the temple of the LORD. + +11:11 And the guard stood, every man with his weapons in his hand, +round about the king, from the right corner of the temple to the left +corner of the temple, along by the altar and the temple. + +11:12 And he brought forth the king's son, and put the crown upon him, +and gave him the testimony; and they made him king, and anointed him; +and they clapped their hands, and said, God save the king. + +11:13 And when Athaliah heard the noise of the guard and of the +people, she came to the people into the temple of the LORD. + +11:14 And when she looked, behold, the king stood by a pillar, as the +manner was, and the princes and the trumpeters by the king, and all +the people of the land rejoiced, and blew with trumpets: and Athaliah +rent her clothes, and cried, Treason, Treason. + +11:15 But Jehoiada the priest commanded the captains of the hundreds, +the officers of the host, and said unto them, Have her forth without +the ranges: and him that followeth her kill with the sword. For the +priest had said, Let her not be slain in the house of the LORD. + +11:16 And they laid hands on her; and she went by the way by the which +the horses came into the king's house: and there was she slain. + +11:17 And Jehoiada made a covenant between the LORD and the king and +the people, that they should be the LORD's people; between the king +also and the people. + +11:18 And all the people of the land went into the house of Baal, and +brake it down; his altars and his images brake they in pieces +thoroughly, and slew Mattan the priest of Baal before the altars. And +the priest appointed officers over the house of the LORD. + +11:19 And he took the rulers over hundreds, and the captains, and the +guard, and all the people of the land; and they brought down the king +from the house of the LORD, and came by the way of the gate of the +guard to the king's house. And he sat on the throne of the kings. + +11:20 And all the people of the land rejoiced, and the city was in +quiet: and they slew Athaliah with the sword beside the king's house. + +11:21 Seven years old was Jehoash when he began to reign. + +12:1 In the seventh year of Jehu Jehoash began to reign; and forty +years reigned he in Jerusalem. And his mother's name was Zibiah of +Beersheba. + +12:2 And Jehoash did that which was right in the sight of the LORD all +his days wherein Jehoiada the priest instructed him. + +12:3 But the high places were not taken away: the people still +sacrificed and burnt incense in the high places. + +12:4 And Jehoash said to the priests, All the money of the dedicated +things that is brought into the house of the LORD, even the money of +every one that passeth the account, the money that every man is set +at, and all the money that cometh into any man's heart to bring into +the house of the LORD, 12:5 Let the priests take it to them, every man +of his acquaintance: and let them repair the breaches of the house, +wheresoever any breach shall be found. + +12:6 But it was so, that in the three and twentieth year of king +Jehoash the priests had not repaired the breaches of the house. + +12:7 Then king Jehoash called for Jehoiada the priest, and the other +priests, and said unto them, Why repair ye not the breaches of the +house? now therefore receive no more money of your acquaintance, but +deliver it for the breaches of the house. + +12:8 And the priests consented to receive no more money of the people, +neither to repair the breaches of the house. + +12:9 But Jehoiada the priest took a chest, and bored a hole in the lid +of it, and set it beside the altar, on the right side as one cometh +into the house of the LORD: and the priests that kept the door put +therein all the money that was brought into the house of the LORD. + +12:10 And it was so, when they saw that there was much money in the +chest, that the king's scribe and the high priest came up, and they +put up in bags, and told the money that was found in the house of the +LORD. + +12:11 And they gave the money, being told, into the hands of them that +did the work, that had the oversight of the house of the LORD: and +they laid it out to the carpenters and builders, that wrought upon the +house of the LORD, 12:12 And to masons, and hewers of stone, and to +buy timber and hewed stone to repair the breaches of the house of the +LORD, and for all that was laid out for the house to repair it. + +12:13 Howbeit there were not made for the house of the LORD bowls of +silver, snuffers, basons, trumpets, any vessels of gold, or vessels of +silver, of the money that was brought into the house of the LORD: +12:14 But they gave that to the workmen, and repaired therewith the +house of the LORD. + +12:15 Moreover they reckoned not with the men, into whose hand they +delivered the money to be bestowed on workmen: for they dealt +faithfully. + +12:16 The trespass money and sin money was not brought into the house +of the LORD: it was the priests'. + +12:17 Then Hazael king of Syria went up, and fought against Gath, and +took it: and Hazael set his face to go up to Jerusalem. + +12:18 And Jehoash king of Judah took all the hallowed things that +Jehoshaphat, and Jehoram, and Ahaziah, his fathers, kings of Judah, +had dedicated, and his own hallowed things, and all the gold that was +found in the treasures of the house of the LORD, and in the king's +house, and sent it to Hazael king of Syria: and he went away from +Jerusalem. + +12:19 And the rest of the acts of Joash, and all that he did, are they +not written in the book of the chronicles of the kings of Judah? +12:20 And his servants arose, and made a conspiracy, and slew Joash in +the house of Millo, which goeth down to Silla. + +12:21 For Jozachar the son of Shimeath, and Jehozabad the son of +Shomer, his servants, smote him, and he died; and they buried him with +his fathers in the city of David: and Amaziah his son reigned in his +stead. + +13:1 In the three and twentieth year of Joash the son of Ahaziah king +of Judah Jehoahaz the son of Jehu began to reign over Israel in +Samaria, and reigned seventeen years. + +13:2 And he did that which was evil in the sight of the LORD, and +followed the sins of Jeroboam the son of Nebat, which made Israel to +sin; he departed not therefrom. + +13:3 And the anger of the LORD was kindled against Israel, and he +delivered them into the hand of Hazael king of Syria, and into the +hand of Benhadad the son of Hazael, all their days. + +13:4 And Jehoahaz besought the LORD, and the LORD hearkened unto him: +for he saw the oppression of Israel, because the king of Syria +oppressed them. + +13:5 (And the LORD gave Israel a saviour, so that they went out from +under the hand of the Syrians: and the children of Israel dwelt in +their tents, as beforetime. + +13:6 Nevertheless they departed not from the sins of the house of +Jeroboam, who made Israel sin, but walked therein: and there remained +the grove also in Samaria.) 13:7 Neither did he leave of the people +to Jehoahaz but fifty horsemen, and ten chariots, and ten thousand +footmen; for the king of Syria had destroyed them, and had made them +like the dust by threshing. + +13:8 Now the rest of the acts of Jehoahaz, and all that he did, and +his might, are they not written in the book of the chronicles of the +kings of Israel? 13:9 And Jehoahaz slept with his fathers; and they +buried him in Samaria: and Joash his son reigned in his stead. + +13:10 In the thirty and seventh year of Joash king of Judah began +Jehoash the son of Jehoahaz to reign over Israel in Samaria, and +reigned sixteen years. + +13:11 And he did that which was evil in the sight of the LORD; he +departed not from all the sins of Jeroboam the son of Nebat, who made +Israel sin: but he walked therein. + +13:12 And the rest of the acts of Joash, and all that he did, and his +might wherewith he fought against Amaziah king of Judah, are they not +written in the book of the chronicles of the kings of Israel? 13:13 +And Joash slept with his fathers; and Jeroboam sat upon his throne: +and Joash was buried in Samaria with the kings of Israel. + +13:14 Now Elisha was fallen sick of his sickness whereof he died. And +Joash the king of Israel came down unto him, and wept over his face, +and said, O my father, my father, the chariot of Israel, and the +horsemen thereof. + +13:15 And Elisha said unto him, Take bow and arrows. And he took unto +him bow and arrows. + +13:16 And he said to the king of Israel, Put thine hand upon the bow. +And he put his hand upon it: and Elisha put his hands upon the king's +hands. + +13:17 And he said, Open the window eastward. And he opened it. Then +Elisha said, Shoot. And he shot. And he said, The arrow of the LORD's +deliverance, and the arrow of deliverance from Syria: for thou shalt +smite the Syrians in Aphek, till thou have consumed them. + +13:18 And he said, Take the arrows. And he took them. And he said unto +the king of Israel, Smite upon the ground. And he smote thrice, and +stayed. + +13:19 And the man of God was wroth with him, and said, Thou shouldest +have smitten five or six times; then hadst thou smitten Syria till +thou hadst consumed it: whereas now thou shalt smite Syria but thrice. + +13:20 And Elisha died, and they buried him. And the bands of the +Moabites invaded the land at the coming in of the year. + +13:21 And it came to pass, as they were burying a man, that, behold, +they spied a band of men; and they cast the man into the sepulchre of +Elisha: and when the man was let down, and touched the bones of +Elisha, he revived, and stood up on his feet. + +13:22 But Hazael king of Syria oppressed Israel all the days of +Jehoahaz. + +13:23 And the LORD was gracious unto them, and had compassion on them, +and had respect unto them, because of his covenant with Abraham, +Isaac, and Jacob, and would not destroy them, neither cast he them +from his presence as yet. + +13:24 So Hazael king of Syria died; and Benhadad his son reigned in +his stead. + +13:25 And Jehoash the son of Jehoahaz took again out of the hand of +Benhadad the son of Hazael the cities, which he had taken out of the +hand of Jehoahaz his father by war. Three times did Joash beat him, +and recovered the cities of Israel. + +14:1 In the second year of Joash son of Jehoahaz king of Israel +reigned Amaziah the son of Joash king of Judah. + +14:2 He was twenty and five years old when he began to reign, and +reigned twenty and nine years in Jerusalem. And his mother's name was +Jehoaddan of Jerusalem. + +14:3 And he did that which was right in the sight of the LORD, yet not +like David his father: he did according to all things as Joash his +father did. + +14:4 Howbeit the high places were not taken away: as yet the people +did sacrifice and burnt incense on the high places. + +14:5 And it came to pass, as soon as the kingdom was confirmed in his +hand, that he slew his servants which had slain the king his father. + +14:6 But the children of the murderers he slew not: according unto +that which is written in the book of the law of Moses, wherein the +LORD commanded, saying, The fathers shall not be put to death for the +children, nor the children be put to death for the fathers; but every +man shall be put to death for his own sin. + +14:7 He slew of Edom in the valley of salt ten thousand, and took +Selah by war, and called the name of it Joktheel unto this day. + +14:8 Then Amaziah sent messengers to Jehoash, the son of Jehoahaz son +of Jehu, king of Israel, saying, Come, let us look one another in the +face. + +14:9 And Jehoash the king of Israel sent to Amaziah king of Judah, +saying, The thistle that was in Lebanon sent to the cedar that was in +Lebanon, saying, Give thy daughter to my son to wife: and there passed +by a wild beast that was in Lebanon, and trode down the thistle. + +14:10 Thou hast indeed smitten Edom, and thine heart hath lifted thee +up: glory of this, and tarry at home: for why shouldest thou meddle to +thy hurt, that thou shouldest fall, even thou, and Judah with thee? +14:11 But Amaziah would not hear. Therefore Jehoash king of Israel +went up; and he and Amaziah king of Judah looked one another in the +face at Bethshemesh, which belongeth to Judah. + +14:12 And Judah was put to the worse before Israel; and they fled +every man to their tents. + +14:13 And Jehoash king of Israel took Amaziah king of Judah, the son +of Jehoash the son of Ahaziah, at Bethshemesh, and came to Jerusalem, +and brake down the wall of Jerusalem from the gate of Ephraim unto the +corner gate, four hundred cubits. + +14:14 And he took all the gold and silver, and all the vessels that +were found in the house of the LORD, and in the treasures of the +king's house, and hostages, and returned to Samaria. + +14:15 Now the rest of the acts of Jehoash which he did, and his might, +and how he fought with Amaziah king of Judah, are they not written in +the book of the chronicles of the kings of Israel? 14:16 And Jehoash +slept with his fathers, and was buried in Samaria with the kings of +Israel; and Jeroboam his son reigned in his stead. + +14:17 And Amaziah the son of Joash king of Judah lived after the death +of Jehoash son of Jehoahaz king of Israel fifteen years. + +14:18 And the rest of the acts of Amaziah, are they not written in the +book of the chronicles of the kings of Judah? 14:19 Now they made a +conspiracy against him in Jerusalem: and he fled to Lachish; but they +sent after him to Lachish, and slew him there. + +14:20 And they brought him on horses: and he was buried at Jerusalem +with his fathers in the city of David. + +14:21 And all the people of Judah took Azariah, which was sixteen +years old, and made him king instead of his father Amaziah. + +14:22 He built Elath, and restored it to Judah, after that the king +slept with his fathers. + +14:23 In the fifteenth year of Amaziah the son of Joash king of Judah +Jeroboam the son of Joash king of Israel began to reign in Samaria, +and reigned forty and one years. + +14:24 And he did that which was evil in the sight of the LORD: he +departed not from all the sins of Jeroboam the son of Nebat, who made +Israel to sin. + +14:25 He restored the coast of Israel from the entering of Hamath unto +the sea of the plain, according to the word of the LORD God of Israel, +which he spake by the hand of his servant Jonah, the son of Amittai, +the prophet, which was of Gathhepher. + +14:26 For the LORD saw the affliction of Israel, that it was very +bitter: for there was not any shut up, nor any left, nor any helper +for Israel. + +14:27 And the LORD said not that he would blot out the name of Israel +from under heaven: but he saved them by the hand of Jeroboam the son +of Joash. + +14:28 Now the rest of the acts of Jeroboam, and all that he did, and +his might, how he warred, and how he recovered Damascus, and Hamath, +which belonged to Judah, for Israel, are they not written in the book +of the chronicles of the kings of Israel? 14:29 And Jeroboam slept +with his fathers, even with the kings of Israel; and Zachariah his son +reigned in his stead. + +15:1 In the twenty and seventh year of Jeroboam king of Israel began +Azariah son of Amaziah king of Judah to reign. + +15:2 Sixteen years old was he when he began to reign, and he reigned +two and fifty years in Jerusalem. And his mother's name was Jecholiah +of Jerusalem. + +15:3 And he did that which was right in the sight of the LORD, +according to all that his father Amaziah had done; 15:4 Save that the +high places were not removed: the people sacrificed and burnt incense +still on the high places. + +15:5 And the LORD smote the king, so that he was a leper unto the day +of his death, and dwelt in a several house. And Jotham the king's son +was over the house, judging the people of the land. + +15:6 And the rest of the acts of Azariah, and all that he did, are +they not written in the book of the chronicles of the kings of Judah? +15:7 So Azariah slept with his fathers; and they buried him with his +fathers in the city of David: and Jotham his son reigned in his stead. + +15:8 In the thirty and eighth year of Azariah king of Judah did +Zachariah the son of Jeroboam reign over Israel in Samaria six months. + +15:9 And he did that which was evil in the sight of the LORD, as his +fathers had done: he departed not from the sins of Jeroboam the son of +Nebat, who made Israel to sin. + +15:10 And Shallum the son of Jabesh conspired against him, and smote +him before the people, and slew him, and reigned in his stead. + +15:11 And the rest of the acts of Zachariah, behold, they are written +in the book of the chronicles of the kings of Israel. + +15:12 This was the word of the LORD which he spake unto Jehu, saying, +Thy sons shall sit on the throne of Israel unto the fourth generation. +And so it came to pass. + +15:13 Shallum the son of Jabesh began to reign in the nine and +thirtieth year of Uzziah king of Judah; and he reigned a full month in +Samaria. + +15:14 For Menahem the son of Gadi went up from Tirzah, and came to +Samaria, and smote Shallum the son of Jabesh in Samaria, and slew him, +and reigned in his stead. + +15:15 And the rest of the acts of Shallum, and his conspiracy which he +made, behold, they are written in the book of the chronicles of the +kings of Israel. + +15:16 Then Menahem smote Tiphsah, and all that were therein, and the +coasts thereof from Tirzah: because they opened not to him, therefore +he smote it; and all the women therein that were with child he ripped +up. + +15:17 In the nine and thirtieth year of Azariah king of Judah began +Menahem the son of Gadi to reign over Israel, and reigned ten years in +Samaria. + +15:18 And he did that which was evil in the sight of the LORD: he +departed not all his days from the sins of Jeroboam the son of Nebat, +who made Israel to sin. + +15:19 And Pul the king of Assyria came against the land: and Menahem +gave Pul a thousand talents of silver, that his hand might be with him +to confirm the kingdom in his hand. + +15:20 And Menahem exacted the money of Israel, even of all the mighty +men of wealth, of each man fifty shekels of silver, to give to the +king of Assyria. So the king of Assyria turned back, and stayed not +there in the land. + +15:21 And the rest of the acts of Menahem, and all that he did, are +they not written in the book of the chronicles of the kings of Israel? +15:22 And Menahem slept with his fathers; and Pekahiah his son reigned +in his stead. + +15:23 In the fiftieth year of Azariah king of Judah Pekahiah the son +of Menahem began to reign over Israel in Samaria, and reigned two +years. + +15:24 And he did that which was evil in the sight of the LORD: he +departed not from the sins of Jeroboam the son of Nebat, who made +Israel to sin. + +15:25 But Pekah the son of Remaliah, a captain of his, conspired +against him, and smote him in Samaria, in the palace of the king's +house, with Argob and Arieh, and with him fifty men of the Gileadites: +and he killed him, and reigned in his room. + +15:26 And the rest of the acts of Pekahiah, and all that he did, +behold, they are written in the book of the chronicles of the kings of +Israel. + +15:27 In the two and fiftieth year of Azariah king of Judah Pekah the +son of Remaliah began to reign over Israel in Samaria, and reigned +twenty years. + +15:28 And he did that which was evil in the sight of the LORD: he +departed not from the sins of Jeroboam the son of Nebat, who made +Israel to sin. + +15:29 In the days of Pekah king of Israel came Tiglathpileser king of +Assyria, and took Ijon, and Abelbethmaachah, and Janoah, and Kedesh, +and Hazor, and Gilead, and Galilee, all the land of Naphtali, and +carried them captive to Assyria. + +15:30 And Hoshea the son of Elah made a conspiracy against Pekah the +son of Remaliah, and smote him, and slew him, and reigned in his +stead, in the twentieth year of Jotham the son of Uzziah. + +15:31 And the rest of the acts of Pekah, and all that he did, behold, +they are written in the book of the chronicles of the kings of Israel. + +15:32 In the second year of Pekah the son of Remaliah king of Israel +began Jotham the son of Uzziah king of Judah to reign. + +15:33 Five and twenty years old was he when he began to reign, and he +reigned sixteen years in Jerusalem. And his mother's name was Jerusha, +the daughter of Zadok. + +15:34 And he did that which was right in the sight of the LORD: he did +according to all that his father Uzziah had done. + +15:35 Howbeit the high places were not removed: the people sacrificed +and burned incense still in the high places. He built the higher gate +of the house of the LORD. + +15:36 Now the rest of the acts of Jotham, and all that he did, are +they not written in the book of the chronicles of the kings of Judah? +15:37 In those days the LORD began to send against Judah Rezin the +king of Syria, and Pekah the son of Remaliah. + +15:38 And Jotham slept with his fathers, and was buried with his +fathers in the city of David his father: and Ahaz his son reigned in +his stead. + +16:1 In the seventeenth year of Pekah the son of Remaliah Ahaz the son +of Jotham king of Judah began to reign. + +16:2 Twenty years old was Ahaz when he began to reign, and reigned +sixteen years in Jerusalem, and did not that which was right in the +sight of the LORD his God, like David his father. + +16:3 But he walked in the way of the kings of Israel, yea, and made +his son to pass through the fire, according to the abominations of the +heathen, whom the LORD cast out from before the children of Israel. + +16:4 And he sacrificed and burnt incense in the high places, and on +the hills, and under every green tree. + +16:5 Then Rezin king of Syria and Pekah son of Remaliah king of Israel +came up to Jerusalem to war: and they besieged Ahaz, but could not +overcome him. + +16:6 At that time Rezin king of Syria recovered Elath to Syria, and +drave the Jews from Elath: and the Syrians came to Elath, and dwelt +there unto this day. + +16:7 So Ahaz sent messengers to Tiglathpileser king of Assyria, +saying, I am thy servant and thy son: come up, and save me out of the +hand of the king of Syria, and out of the hand of the king of Israel, +which rise up against me. + +16:8 And Ahaz took the silver and gold that was found in the house of +the LORD, and in the treasures of the king's house, and sent it for a +present to the king of Assyria. + +16:9 And the king of Assyria hearkened unto him: for the king of +Assyria went up against Damascus, and took it, and carried the people +of it captive to Kir, and slew Rezin. + +16:10 And king Ahaz went to Damascus to meet Tiglathpileser king of +Assyria, and saw an altar that was at Damascus: and king Ahaz sent to +Urijah the priest the fashion of the altar, and the pattern of it, +according to all the workmanship thereof. + +16:11 And Urijah the priest built an altar according to all that king +Ahaz had sent from Damascus: so Urijah the priest made it against king +Ahaz came from Damascus. + +16:12 And when the king was come from Damascus, the king saw the +altar: and the king approached to the altar, and offered thereon. + +16:13 And he burnt his burnt offering and his meat offering, and +poured his drink offering, and sprinkled the blood of his peace +offerings, upon the altar. + +16:14 And he brought also the brasen altar, which was before the LORD, +from the forefront of the house, from between the altar and the house +of the LORD, and put it on the north side of the altar. + +16:15 And king Ahaz commanded Urijah the priest, saying, Upon the +great altar burn the morning burnt offering, and the evening meat +offering, and the king's burnt sacrifice, and his meat offering, with +the burnt offering of all the people of the land, and their meat +offering, and their drink offerings; and sprinkle upon it all the +blood of the burnt offering, and all the blood of the sacrifice: and +the brasen altar shall be for me to enquire by. + +16:16 Thus did Urijah the priest, according to all that king Ahaz +commanded. + +16:17 And king Ahaz cut off the borders of the bases, and removed the +laver from off them; and took down the sea from off the brasen oxen +that were under it, and put it upon the pavement of stones. + +16:18 And the covert for the sabbath that they had built in the house, +and the king's entry without, turned he from the house of the LORD for +the king of Assyria. + +16:19 Now the rest of the acts of Ahaz which he did, are they not +written in the book of the chronicles of the kings of Judah? 16:20 +And Ahaz slept with his fathers, and was buried with his fathers in +the city of David: and Hezekiah his son reigned in his stead. + +17:1 In the twelfth year of Ahaz king of Judah began Hoshea the son of +Elah to reign in Samaria over Israel nine years. + +17:2 And he did that which was evil in the sight of the LORD, but not +as the kings of Israel that were before him. + +17:3 Against him came up Shalmaneser king of Assyria; and Hoshea +became his servant, and gave him presents. + +17:4 And the king of Assyria found conspiracy in Hoshea: for he had +sent messengers to So king of Egypt, and brought no present to the +king of Assyria, as he had done year by year: therefore the king of +Assyria shut him up, and bound him in prison. + +17:5 Then the king of Assyria came up throughout all the land, and +went up to Samaria, and besieged it three years. + +17:6 In the ninth year of Hoshea the king of Assyria took Samaria, and +carried Israel away into Assyria, and placed them in Halah and in +Habor by the river of Gozan, and in the cities of the Medes. + +17:7 For so it was, that the children of Israel had sinned against the +LORD their God, which had brought them up out of the land of Egypt, +from under the hand of Pharaoh king of Egypt, and had feared other +gods, 17:8 And walked in the statutes of the heathen, whom the LORD +cast out from before the children of Israel, and of the kings of +Israel, which they had made. + +17:9 And the children of Israel did secretly those things that were +not right against the LORD their God, and they built them high places +in all their cities, from the tower of the watchmen to the fenced +city. + +17:10 And they set them up images and groves in every high hill, and +under every green tree: 17:11 And there they burnt incense in all the +high places, as did the heathen whom the LORD carried away before +them; and wrought wicked things to provoke the LORD to anger: 17:12 +For they served idols, whereof the LORD had said unto them, Ye shall +not do this thing. + +17:13 Yet the LORD testified against Israel, and against Judah, by all +the prophets, and by all the seers, saying, Turn ye from your evil +ways, and keep my commandments and my statutes, according to all the +law which I commanded your fathers, and which I sent to you by my +servants the prophets. + +17:14 Notwithstanding they would not hear, but hardened their necks, +like to the neck of their fathers, that did not believe in the LORD +their God. + +17:15 And they rejected his statutes, and his covenant that he made +with their fathers, and his testimonies which he testified against +them; and they followed vanity, and became vain, and went after the +heathen that were round about them, concerning whom the LORD had +charged them, that they should not do like them. + +17:16 And they left all the commandments of the LORD their God, and +made them molten images, even two calves, and made a grove, and +worshipped all the host of heaven, and served Baal. + +17:17 And they caused their sons and their daughters to pass through +the fire, and used divination and enchantments, and sold themselves to +do evil in the sight of the LORD, to provoke him to anger. + +17:18 Therefore the LORD was very angry with Israel, and removed them +out of his sight: there was none left but the tribe of Judah only. + +17:19 Also Judah kept not the commandments of the LORD their God, but +walked in the statutes of Israel which they made. + +17:20 And the LORD rejected all the seed of Israel, and afflicted +them, and delivered them into the hand of spoilers, until he had cast +them out of his sight. + +17:21 For he rent Israel from the house of David; and they made +Jeroboam the son of Nebat king: and Jeroboam drave Israel from +following the LORD, and made them sin a great sin. + +17:22 For the children of Israel walked in all the sins of Jeroboam +which he did; they departed not from them; 17:23 Until the LORD +removed Israel out of his sight, as he had said by all his servants +the prophets. So was Israel carried away out of their own land to +Assyria unto this day. + +17:24 And the king of Assyria brought men from Babylon, and from +Cuthah, and from Ava, and from Hamath, and from Sepharvaim, and placed +them in the cities of Samaria instead of the children of Israel: and +they possessed Samaria, and dwelt in the cities thereof. + +17:25 And so it was at the beginning of their dwelling there, that +they feared not the LORD: therefore the LORD sent lions among them, +which slew some of them. + +17:26 Wherefore they spake to the king of Assyria, saying, The nations +which thou hast removed, and placed in the cities of Samaria, know not +the manner of the God of the land: therefore he hath sent lions among +them, and, behold, they slay them, because they know not the manner of +the God of the land. + +17:27 Then the king of Assyria commanded, saying, Carry thither one of +the priests whom ye brought from thence; and let them go and dwell +there, and let him teach them the manner of the God of the land. + +17:28 Then one of the priests whom they had carried away from Samaria +came and dwelt in Bethel, and taught them how they should fear the +LORD. + +17:29 Howbeit every nation made gods of their own, and put them in the +houses of the high places which the Samaritans had made, every nation +in their cities wherein they dwelt. + +17:30 And the men of Babylon made Succothbenoth, and the men of Cuth +made Nergal, and the men of Hamath made Ashima, 17:31 And the Avites +made Nibhaz and Tartak, and the Sepharvites burnt their children in +fire to Adrammelech and Anammelech, the gods of Sepharvaim. + +17:32 So they feared the LORD, and made unto themselves of the lowest +of them priests of the high places, which sacrificed for them in the +houses of the high places. + +17:33 They feared the LORD, and served their own gods, after the +manner of the nations whom they carried away from thence. + +17:34 Unto this day they do after the former manners: they fear not +the LORD, neither do they after their statutes, or after their +ordinances, or after the law and commandment which the LORD commanded +the children of Jacob, whom he named Israel; 17:35 With whom the LORD +had made a covenant, and charged them, saying, Ye shall not fear other +gods, nor bow yourselves to them, nor serve them, nor sacrifice to +them: 17:36 But the LORD, who brought you up out of the land of Egypt +with great power and a stretched out arm, him shall ye fear, and him +shall ye worship, and to him shall ye do sacrifice. + +17:37 And the statutes, and the ordinances, and the law, and the +commandment, which he wrote for you, ye shall observe to do for +evermore; and ye shall not fear other gods. + +17:38 And the covenant that I have made with you ye shall not forget; +neither shall ye fear other gods. + +17:39 But the LORD your God ye shall fear; and he shall deliver you +out of the hand of all your enemies. + +17:40 Howbeit they did not hearken, but they did after their former +manner. + +17:41 So these nations feared the LORD, and served their graven +images, both their children, and their children's children: as did +their fathers, so do they unto this day. + +18:1 Now it came to pass in the third year of Hoshea son of Elah king +of Israel, that Hezekiah the son of Ahaz king of Judah began to reign. + +18:2 Twenty and five years old was he when he began to reign; and he +reigned twenty and nine years in Jerusalem. His mother's name also was +Abi, the daughter of Zachariah. + +18:3 And he did that which was right in the sight of the LORD, +according to all that David his father did. + +18:4 He removed the high places, and brake the images, and cut down +the groves, and brake in pieces the brasen serpent that Moses had +made: for unto those days the children of Israel did burn incense to +it: and he called it Nehushtan. + +18:5 He trusted in the LORD God of Israel; so that after him was none +like him among all the kings of Judah, nor any that were before him. + +18:6 For he clave to the LORD, and departed not from following him, +but kept his commandments, which the LORD commanded Moses. + +18:7 And the LORD was with him; and he prospered whithersoever he went +forth: and he rebelled against the king of Assyria, and served him +not. + +18:8 He smote the Philistines, even unto Gaza, and the borders +thereof, from the tower of the watchmen to the fenced city. + +18:9 And it came to pass in the fourth year of king Hezekiah, which +was the seventh year of Hoshea son of Elah king of Israel, that +Shalmaneser king of Assyria came up against Samaria, and besieged it. + +18:10 And at the end of three years they took it: even in the sixth +year of Hezekiah, that is in the ninth year of Hoshea king of Israel, +Samaria was taken. + +18:11 And the king of Assyria did carry away Israel unto Assyria, and +put them in Halah and in Habor by the river of Gozan, and in the +cities of the Medes: 18:12 Because they obeyed not the voice of the +LORD their God, but transgressed his covenant, and all that Moses the +servant of the LORD commanded, and would not hear them, nor do them. + +18:13 Now in the fourteenth year of king Hezekiah did Sennacherib king +of Assyria come up against all the fenced cities of Judah, and took +them. + +18:14 And Hezekiah king of Judah sent to the king of Assyria to +Lachish, saying, I have offended; return from me: that which thou +puttest on me will I bear. And the king of Assyria appointed unto +Hezekiah king of Judah three hundred talents of silver and thirty +talents of gold. + +18:15 And Hezekiah gave him all the silver that was found in the house +of the LORD, and in the treasures of the king's house. + +18:16 At that time did Hezekiah cut off the gold from the doors of the +temple of the LORD, and from the pillars which Hezekiah king of Judah +had overlaid, and gave it to the king of Assyria. + +18:17 And the king of Assyria sent Tartan and Rabsaris and Rabshakeh +from Lachish to king Hezekiah with a great host against Jerusalem. And +they went up and came to Jerusalem. And when they were come up, they +came and stood by the conduit of the upper pool, which is in the +highway of the fuller's field. + +18:18 And when they had called to the king, there came out to them +Eliakim the son of Hilkiah, which was over the household, and Shebna +the scribe, and Joah the son of Asaph the recorder. + +18:19 And Rabshakeh said unto them, Speak ye now to Hezekiah, Thus +saith the great king, the king of Assyria, What confidence is this +wherein thou trustest? 18:20 Thou sayest, (but they are but vain +words,) I have counsel and strength for the war. Now on whom dost thou +trust, that thou rebellest against me? 18:21 Now, behold, thou +trustest upon the staff of this bruised reed, even upon Egypt, on +which if a man lean, it will go into his hand, and pierce it: so is +Pharaoh king of Egypt unto all that trust on him. + +18:22 But if ye say unto me, We trust in the LORD our God: is not that +he, whose high places and whose altars Hezekiah hath taken away, and +hath said to Judah and Jerusalem, Ye shall worship before this altar +in Jerusalem? 18:23 Now therefore, I pray thee, give pledges to my +lord the king of Assyria, and I will deliver thee two thousand horses, +if thou be able on thy part to set riders upon them. + +18:24 How then wilt thou turn away the face of one captain of the +least of my master's servants, and put thy trust on Egypt for chariots +and for horsemen? 18:25 Am I now come up without the LORD against +this place to destroy it? The LORD said to me, Go up against this +land, and destroy it. + +18:26 Then said Eliakim the son of Hilkiah, and Shebna, and Joah, unto +Rabshakeh, Speak, I pray thee, to thy servants in the Syrian language; +for we understand it: and talk not with us in the Jews' language in +the ears of the people that are on the wall. + +18:27 But Rabshakeh said unto them, Hath my master sent me to thy +master, and to thee, to speak these words? hath he not sent me to the +men which sit on the wall, that they may eat their own dung, and drink +their own piss with you? 18:28 Then Rabshakeh stood and cried with a +loud voice in the Jews' language, and spake, saying, Hear the word of +the great king, the king of Assyria: 18:29 Thus saith the king, Let +not Hezekiah deceive you: for he shall not be able to deliver you out +of his hand: 18:30 Neither let Hezekiah make you trust in the LORD, +saying, The LORD will surely deliver us, and this city shall not be +delivered into the hand of the king of Assyria. + +18:31 Hearken not to Hezekiah: for thus saith the king of Assyria, +Make an agreement with me by a present, and come out to me, and then +eat ye every man of his own vine, and every one of his fig tree, and +drink ye every one the waters of his cistern: 18:32 Until I come and +take you away to a land like your own land, a land of corn and wine, a +land of bread and vineyards, a land of oil olive and of honey, that ye +may live, and not die: and hearken not unto Hezekiah, when he +persuadeth you, saying, The LORD will deliver us. + +18:33 Hath any of the gods of the nations delivered at all his land +out of the hand of the king of Assyria? 18:34 Where are the gods of +Hamath, and of Arpad? where are the gods of Sepharvaim, Hena, and +Ivah? have they delivered Samaria out of mine hand? 18:35 Who are +they among all the gods of the countries, that have delivered their +country out of mine hand, that the LORD should deliver Jerusalem out +of mine hand? 18:36 But the people held their peace, and answered him +not a word: for the king's commandment was, saying, Answer him not. + +18:37 Then came Eliakim the son of Hilkiah, which was over the +household, and Shebna the scribe, and Joah the son of Asaph the +recorder, to Hezekiah with their clothes rent, and told him the words +of Rabshakeh. + +19:1 And it came to pass, when king Hezekiah heard it, that he rent +his clothes, and covered himself with sackcloth, and went into the +house of the LORD. + +19:2 And he sent Eliakim, which was over the household, and Shebna the +scribe, and the elders of the priests, covered with sackcloth, to +Isaiah the prophet the son of Amoz. + +19:3 And they said unto him, Thus saith Hezekiah, This day is a day of +trouble, and of rebuke, and blasphemy; for the children are come to +the birth, and there is not strength to bring forth. + +19:4 It may be the LORD thy God will hear all the words of Rabshakeh, +whom the king of Assyria his master hath sent to reproach the living +God; and will reprove the words which the LORD thy God hath heard: +wherefore lift up thy prayer for the remnant that are left. + +19:5 So the servants of king Hezekiah came to Isaiah. + +19:6 And Isaiah said unto them, Thus shall ye say to your master, Thus +saith the LORD, Be not afraid of the words which thou hast heard, with +which the servants of the king of Assyria have blasphemed me. + +19:7 Behold, I will send a blast upon him, and he shall hear a rumour, +and shall return to his own land; and I will cause him to fall by the +sword in his own land. + +19:8 So Rabshakeh returned, and found the king of Assyria warring +against Libnah: for he had heard that he was departed from Lachish. + +19:9 And when he heard say of Tirhakah king of Ethiopia, Behold, he is +come out to fight against thee: he sent messengers again unto +Hezekiah, saying, 19:10 Thus shall ye speak to Hezekiah king of Judah, +saying, Let not thy God in whom thou trustest deceive thee, saying, +Jerusalem shall not be delivered into the hand of the king of Assyria. + +19:11 Behold, thou hast heard what the kings of Assyria have done to +all lands, by destroying them utterly: and shalt thou be delivered? +19:12 Have the gods of the nations delivered them which my fathers +have destroyed; as Gozan, and Haran, and Rezeph, and the children of +Eden which were in Thelasar? 19:13 Where is the king of Hamath, and +the king of Arpad, and the king of the city of Sepharvaim, of Hena, +and Ivah? 19:14 And Hezekiah received the letter of the hand of the +messengers, and read it: and Hezekiah went up into the house of the +LORD, and spread it before the LORD. + +19:15 And Hezekiah prayed before the LORD, and said, O LORD God of +Israel, which dwellest between the cherubims, thou art the God, even +thou alone, of all the kingdoms of the earth; thou hast made heaven +and earth. + +19:16 LORD, bow down thine ear, and hear: open, LORD, thine eyes, and +see: and hear the words of Sennacherib, which hath sent him to +reproach the living God. + +19:17 Of a truth, LORD, the kings of Assyria have destroyed the +nations and their lands, 19:18 And have cast their gods into the fire: +for they were no gods, but the work of men's hands, wood and stone: +therefore they have destroyed them. + +19:19 Now therefore, O LORD our God, I beseech thee, save thou us out +of his hand, that all the kingdoms of the earth may know that thou art +the LORD God, even thou only. + +19:20 Then Isaiah the son of Amoz sent to Hezekiah, saying, Thus saith +the LORD God of Israel, That which thou hast prayed to me against +Sennacherib king of Assyria I have heard. + +19:21 This is the word that the LORD hath spoken concerning him; The +virgin the daughter of Zion hath despised thee, and laughed thee to +scorn; the daughter of Jerusalem hath shaken her head at thee. + +19:22 Whom hast thou reproached and blasphemed? and against whom hast +thou exalted thy voice, and lifted up thine eyes on high? even against +the Holy One of Israel. + +19:23 By thy messengers thou hast reproached the LORD, and hast said, +With the multitude of my chariots I am come up to the height of the +mountains, to the sides of Lebanon, and will cut down the tall cedar +trees thereof, and the choice fir trees thereof: and I will enter into +the lodgings of his borders, and into the forest of his Carmel. + +19:24 I have digged and drunk strange waters, and with the sole of my +feet have I dried up all the rivers of besieged places. + +19:25 Hast thou not heard long ago how I have done it, and of ancient +times that I have formed it? now have I brought it to pass, that thou +shouldest be to lay waste fenced cities into ruinous heaps. + +19:26 Therefore their inhabitants were of small power, they were +dismayed and confounded; they were as the grass of the field, and as +the green herb, as the grass on the house tops, and as corn blasted +before it be grown up. + +19:27 But I know thy abode, and thy going out, and thy coming in, and +thy rage against me. + +19:28 Because thy rage against me and thy tumult is come up into mine +ears, therefore I will put my hook in thy nose, and my bridle in thy +lips, and I will turn thee back by the way by which thou camest. + +19:29 And this shall be a sign unto thee, Ye shall eat this year such +things as grow of themselves, and in the second year that which +springeth of the same; and in the third year sow ye, and reap, and +plant vineyards, and eat the fruits thereof. + +19:30 And the remnant that is escaped of the house of Judah shall yet +again take root downward, and bear fruit upward. + +19:31 For out of Jerusalem shall go forth a remnant, and they that +escape out of mount Zion: the zeal of the LORD of hosts shall do this. + +19:32 Therefore thus saith the LORD concerning the king of Assyria, He +shall not come into this city, nor shoot an arrow there, nor come +before it with shield, nor cast a bank against it. + +19:33 By the way that he came, by the same shall he return, and shall +not come into this city, saith the LORD. + +19:34 For I will defend this city, to save it, for mine own sake, and +for my servant David's sake. + +19:35 And it came to pass that night, that the angel of the LORD went +out, and smote in the camp of the Assyrians an hundred fourscore and +five thousand: and when they arose early in the morning, behold, they +were all dead corpses. + +19:36 So Sennacherib king of Assyria departed, and went and returned, +and dwelt at Nineveh. + +19:37 And it came to pass, as he was worshipping in the house of +Nisroch his god, that Adrammelech and Sharezer his sons smote him with +the sword: and they escaped into the land of Armenia. And Esarhaddon +his son reigned in his stead. + +20:1 In those days was Hezekiah sick unto death. And the prophet +Isaiah the son of Amoz came to him, and said unto him, Thus saith the +LORD, Set thine house in order; for thou shalt die, and not live. + +20:2 Then he turned his face to the wall, and prayed unto the LORD, +saying, 20:3 I beseech thee, O LORD, remember now how I have walked +before thee in truth and with a perfect heart, and have done that +which is good in thy sight. And Hezekiah wept sore. + +20:4 And it came to pass, afore Isaiah was gone out into the middle +court, that the word of the LORD came to him, saying, 20:5 Turn again, +and tell Hezekiah the captain of my people, Thus saith the LORD, the +God of David thy father, I have heard thy prayer, I have seen thy +tears: behold, I will heal thee: on the third day thou shalt go up +unto the house of the LORD. + +20:6 And I will add unto thy days fifteen years; and I will deliver +thee and this city out of the hand of the king of Assyria; and I will +defend this city for mine own sake, and for my servant David's sake. + +20:7 And Isaiah said, Take a lump of figs. And they took and laid it +on the boil, and he recovered. + +20:8 And Hezekiah said unto Isaiah, What shall be the sign that the +LORD will heal me, and that I shall go up into the house of the LORD +the third day? 20:9 And Isaiah said, This sign shalt thou have of the +LORD, that the LORD will do the thing that he hath spoken: shall the +shadow go forward ten degrees, or go back ten degrees? 20:10 And +Hezekiah answered, It is a light thing for the shadow to go down ten +degrees: nay, but let the shadow return backward ten degrees. + +20:11 And Isaiah the prophet cried unto the LORD: and he brought the +shadow ten degrees backward, by which it had gone down in the dial of +Ahaz. + +20:12 At that time Berodachbaladan, the son of Baladan, king of +Babylon, sent letters and a present unto Hezekiah: for he had heard +that Hezekiah had been sick. + +20:13 And Hezekiah hearkened unto them, and shewed them all the house +of his precious things, the silver, and the gold, and the spices, and +the precious ointment, and all the house of his armour, and all that +was found in his treasures: there was nothing in his house, nor in all +his dominion, that Hezekiah shewed them not. + +20:14 Then came Isaiah the prophet unto king Hezekiah, and said unto +him, What said these men? and from whence came they unto thee? And +Hezekiah said, They are come from a far country, even from Babylon. + +20:15 And he said, What have they seen in thine house? And Hezekiah +answered, All the things that are in mine house have they seen: there +is nothing among my treasures that I have not shewed them. + +20:16 And Isaiah said unto Hezekiah, Hear the word of the LORD. + +20:17 Behold, the days come, that all that is in thine house, and that +which thy fathers have laid up in store unto this day, shall be +carried into Babylon: nothing shall be left, saith the LORD. + +20:18 And of thy sons that shall issue from thee, which thou shalt +beget, shall they take away; and they shall be eunuchs in the palace +of the king of Babylon. + +20:19 Then said Hezekiah unto Isaiah, Good is the word of the LORD +which thou hast spoken. And he said, Is it not good, if peace and +truth be in my days? 20:20 And the rest of the acts of Hezekiah, and +all his might, and how he made a pool, and a conduit, and brought +water into the city, are they not written in the book of the +chronicles of the kings of Judah? 20:21 And Hezekiah slept with his +fathers: and Manasseh his son reigned in his stead. + +21:1 Manasseh was twelve years old when he began to reign, and reigned +fifty and five years in Jerusalem. And his mother's name was +Hephzibah. + +21:2 And he did that which was evil in the sight of the LORD, after +the abominations of the heathen, whom the LORD cast out before the +children of Israel. + +21:3 For he built up again the high places which Hezekiah his father +had destroyed; and he reared up altars for Baal, and made a grove, as +did Ahab king of Israel; and worshipped all the host of heaven, and +served them. + +21:4 And he built altars in the house of the LORD, of which the LORD +said, In Jerusalem will I put my name. + +21:5 And he built altars for all the host of heaven in the two courts +of the house of the LORD. + +21:6 And he made his son pass through the fire, and observed times, +and used enchantments, and dealt with familiar spirits and wizards: he +wrought much wickedness in the sight of the LORD, to provoke him to +anger. + +21:7 And he set a graven image of the grove that he had made in the +house, of which the LORD said to David, and to Solomon his son, In +this house, and in Jerusalem, which I have chosen out of all tribes of +Israel, will I put my name for ever: 21:8 Neither will I make the feet +of Israel move any more out of the land which I gave their fathers; +only if they will observe to do according to all that I have commanded +them, and according to all the law that my servant Moses commanded +them. + +21:9 But they hearkened not: and Manasseh seduced them to do more evil +than did the nations whom the LORD destroyed before the children of +Israel. + +21:10 And the LORD spake by his servants the prophets, saying, 21:11 +Because Manasseh king of Judah hath done these abominations, and hath +done wickedly above all that the Amorites did, which were before him, +and hath made Judah also to sin with his idols: 21:12 Therefore thus +saith the LORD God of Israel, Behold, I am bringing such evil upon +Jerusalem and Judah, that whosoever heareth of it, both his ears shall +tingle. + +21:13 And I will stretch over Jerusalem the line of Samaria, and the +plummet of the house of Ahab: and I will wipe Jerusalem as a man +wipeth a dish, wiping it, and turning it upside down. + +21:14 And I will forsake the remnant of mine inheritance, and deliver +them into the hand of their enemies; and they shall become a prey and +a spoil to all their enemies; 21:15 Because they have done that which +was evil in my sight, and have provoked me to anger, since the day +their fathers came forth out of Egypt, even unto this day. + +21:16 Moreover Manasseh shed innocent blood very much, till he had +filled Jerusalem from one end to another; beside his sin wherewith he +made Judah to sin, in doing that which was evil in the sight of the +LORD. + +21:17 Now the rest of the acts of Manasseh, and all that he did, and +his sin that he sinned, are they not written in the book of the +chronicles of the kings of Judah? 21:18 And Manasseh slept with his +fathers, and was buried in the garden of his own house, in the garden +of Uzza: and Amon his son reigned in his stead. + +21:19 Amon was twenty and two years old when he began to reign, and he +reigned two years in Jerusalem. And his mother's name was +Meshullemeth, the daughter of Haruz of Jotbah. + +21:20 And he did that which was evil in the sight of the LORD, as his +father Manasseh did. + +21:21 And he walked in all the way that his father walked in, and +served the idols that his father served, and worshipped them: 21:22 +And he forsook the LORD God of his fathers, and walked not in the way +of the LORD. + +21:23 And the servants of Amon conspired against him, and slew the +king in his own house. + +21:24 And the people of the land slew all them that had conspired +against king Amon; and the people of the land made Josiah his son king +in his stead. + +21:25 Now the rest of the acts of Amon which he did, are they not +written in the book of the chronicles of the kings of Judah? 21:26 +And he was buried in his sepulchre in the garden of Uzza: and Josiah +his son reigned in his stead. + +22:1 Josiah was eight years old when he began to reign, and he reigned +thirty and one years in Jerusalem. And his mother's name was Jedidah, +the daughter of Adaiah of Boscath. + +22:2 And he did that which was right in the sight of the LORD, and +walked in all the way of David his father, and turned not aside to the +right hand or to the left. + +22:3 And it came to pass in the eighteenth year of king Josiah, that +the king sent Shaphan the son of Azaliah, the son of Meshullam, the +scribe, to the house of the LORD, saying, 22:4 Go up to Hilkiah the +high priest, that he may sum the silver which is brought into the +house of the LORD, which the keepers of the door have gathered of the +people: 22:5 And let them deliver it into the hand of the doers of the +work, that have the oversight of the house of the LORD: and let them +give it to the doers of the work which is in the house of the LORD, to +repair the breaches of the house, 22:6 Unto carpenters, and builders, +and masons, and to buy timber and hewn stone to repair the house. + +22:7 Howbeit there was no reckoning made with them of the money that +was delivered into their hand, because they dealt faithfully. + +22:8 And Hilkiah the high priest said unto Shaphan the scribe, I have +found the book of the law in the house of the LORD. And Hilkiah gave +the book to Shaphan, and he read it. + +22:9 And Shaphan the scribe came to the king, and brought the king +word again, and said, Thy servants have gathered the money that was +found in the house, and have delivered it into the hand of them that +do the work, that have the oversight of the house of the LORD. + +22:10 And Shaphan the scribe shewed the king, saying, Hilkiah the +priest hath delivered me a book. And Shaphan read it before the king. + +22:11 And it came to pass, when the king had heard the words of the +book of the law, that he rent his clothes. + +22:12 And the king commanded Hilkiah the priest, and Ahikam the son of +Shaphan, and Achbor the son of Michaiah, and Shaphan the scribe, and +Asahiah a servant of the king's, saying, 22:13 Go ye, enquire of the +LORD for me, and for the people, and for all Judah, concerning the +words of this book that is found: for great is the wrath of the LORD +that is kindled against us, because our fathers have not hearkened +unto the words of this book, to do according unto all that which is +written concerning us. + +22:14 So Hilkiah the priest, and Ahikam, and Achbor, and Shaphan, and +Asahiah, went unto Huldah the prophetess, the wife of Shallum the son +of Tikvah, the son of Harhas, keeper of the wardrobe; (now she dwelt +in Jerusalem in the college;) and they communed with her. + +22:15 And she said unto them, Thus saith the LORD God of Israel, Tell +the man that sent you to me, 22:16 Thus saith the LORD, Behold, I will +bring evil upon this place, and upon the inhabitants thereof, even all +the words of the book which the king of Judah hath read: 22:17 Because +they have forsaken me, and have burned incense unto other gods, that +they might provoke me to anger with all the works of their hands; +therefore my wrath shall be kindled against this place, and shall not +be quenched. + +22:18 But to the king of Judah which sent you to enquire of the LORD, +thus shall ye say to him, Thus saith the LORD God of Israel, As +touching the words which thou hast heard; 22:19 Because thine heart +was tender, and thou hast humbled thyself before the LORD, when thou +heardest what I spake against this place, and against the inhabitants +thereof, that they should become a desolation and a curse, and hast +rent thy clothes, and wept before me; I also have heard thee, saith +the LORD. + +22:20 Behold therefore, I will gather thee unto thy fathers, and thou +shalt be gathered into thy grave in peace; and thine eyes shall not +see all the evil which I will bring upon this place. And they brought +the king word again. + +23:1 And the king sent, and they gathered unto him all the elders of +Judah and of Jerusalem. + +23:2 And the king went up into the house of the LORD, and all the men +of Judah and all the inhabitants of Jerusalem with him, and the +priests, and the prophets, and all the people, both small and great: +and he read in their ears all the words of the book of the covenant +which was found in the house of the LORD. + +23:3 And the king stood by a pillar, and made a covenant before the +LORD, to walk after the LORD, and to keep his commandments and his +testimonies and his statutes with all their heart and all their soul, +to perform the words of this covenant that were written in this book. +And all the people stood to the covenant. + +23:4 And the king commanded Hilkiah the high priest, and the priests +of the second order, and the keepers of the door, to bring forth out +of the temple of the LORD all the vessels that were made for Baal, and +for the grove, and for all the host of heaven: and he burned them +without Jerusalem in the fields of Kidron, and carried the ashes of +them unto Bethel. + +23:5 And he put down the idolatrous priests, whom the kings of Judah +had ordained to burn incense in the high places in the cities of +Judah, and in the places round about Jerusalem; them also that burned +incense unto Baal, to the sun, and to the moon, and to the planets, +and to all the host of heaven. + +23:6 And he brought out the grove from the house of the LORD, without +Jerusalem, unto the brook Kidron, and burned it at the brook Kidron, +and stamped it small to powder, and cast the powder thereof upon the +graves of the children of the people. + +23:7 And he brake down the houses of the sodomites, that were by the +house of the LORD, where the women wove hangings for the grove. + +23:8 And he brought all the priests out of the cities of Judah, and +defiled the high places where the priests had burned incense, from +Geba to Beersheba, and brake down the high places of the gates that +were in the entering in of the gate of Joshua the governor of the +city, which were on a man's left hand at the gate of the city. + +23:9 Nevertheless the priests of the high places came not up to the +altar of the LORD in Jerusalem, but they did eat of the unleavened +bread among their brethren. + +23:10 And he defiled Topheth, which is in the valley of the children +of Hinnom, that no man might make his son or his daughter to pass +through the fire to Molech. + +23:11 And he took away the horses that the kings of Judah had given to +the sun, at the entering in of the house of the LORD, by the chamber +of Nathanmelech the chamberlain, which was in the suburbs, and burned +the chariots of the sun with fire. + +23:12 And the altars that were on the top of the upper chamber of +Ahaz, which the kings of Judah had made, and the altars which Manasseh +had made in the two courts of the house of the LORD, did the king beat +down, and brake them down from thence, and cast the dust of them into +the brook Kidron. + +23:13 And the high places that were before Jerusalem, which were on +the right hand of the mount of corruption, which Solomon the king of +Israel had builded for Ashtoreth the abomination of the Zidonians, and +for Chemosh the abomination of the Moabites, and for Milcom the +abomination of the children of Ammon, did the king defile. + +23:14 And he brake in pieces the images, and cut down the groves, and +filled their places with the bones of men. + +23:15 Moreover the altar that was at Bethel, and the high place which +Jeroboam the son of Nebat, who made Israel to sin, had made, both that +altar and the high place he brake down, and burned the high place, and +stamped it small to powder, and burned the grove. + +23:16 And as Josiah turned himself, he spied the sepulchres that were +there in the mount, and sent, and took the bones out of the +sepulchres, and burned them upon the altar, and polluted it, according +to the word of the LORD which the man of God proclaimed, who +proclaimed these words. + +23:17 Then he said, What title is that that I see? And the men of the +city told him, It is the sepulchre of the man of God, which came from +Judah, and proclaimed these things that thou hast done against the +altar of Bethel. + +23:18 And he said, Let him alone; let no man move his bones. So they +let his bones alone, with the bones of the prophet that came out of +Samaria. + +23:19 And all the houses also of the high places that were in the +cities of Samaria, which the kings of Israel had made to provoke the +Lord to anger, Josiah took away, and did to them according to all the +acts that he had done in Bethel. + +23:20 And he slew all the priests of the high places that were there +upon the altars, and burned men's bones upon them, and returned to +Jerusalem. + +23:21 And the king commanded all the people, saying, Keep the passover +unto the LORD your God, as it is written in the book of this covenant. + +23:22 Surely there was not holden such a passover from the days of the +judges that judged Israel, nor in all the days of the kings of Israel, +nor of the kings of Judah; 23:23 But in the eighteenth year of king +Josiah, wherein this passover was holden to the LORD in Jerusalem. + +23:24 Moreover the workers with familiar spirits, and the wizards, and +the images, and the idols, and all the abominations that were spied in +the land of Judah and in Jerusalem, did Josiah put away, that he might +perform the words of the law which were written in the book that +Hilkiah the priest found in the house of the LORD. + +23:25 And like unto him was there no king before him, that turned to +the LORD with all his heart, and with all his soul, and with all his +might, according to all the law of Moses; neither after him arose +there any like him. + +23:26 Notwithstanding the LORD turned not from the fierceness of his +great wrath, wherewith his anger was kindled against Judah, because of +all the provocations that Manasseh had provoked him withal. + +23:27 And the LORD said, I will remove Judah also out of my sight, as +I have removed Israel, and will cast off this city Jerusalem which I +have chosen, and the house of which I said, My name shall be there. + +23:28 Now the rest of the acts of Josiah, and all that he did, are +they not written in the book of the chronicles of the kings of Judah? +23:29 In his days Pharaohnechoh king of Egypt went up against the king +of Assyria to the river Euphrates: and king Josiah went against him; +and he slew him at Megiddo, when he had seen him. + +23:30 And his servants carried him in a chariot dead from Megiddo, and +brought him to Jerusalem, and buried him in his own sepulchre. And the +people of the land took Jehoahaz the son of Josiah, and anointed him, +and made him king in his father's stead. + +23:31 Jehoahaz was twenty and three years old when he began to reign; +and he reigned three months in Jerusalem. And his mother's name was +Hamutal, the daughter of Jeremiah of Libnah. + +23:32 And he did that which was evil in the sight of the LORD, +according to all that his fathers had done. + +23:33 And Pharaohnechoh put him in bands at Riblah in the land of +Hamath, that he might not reign in Jerusalem; and put the land to a +tribute of an hundred talents of silver, and a talent of gold. + +23:34 And Pharaohnechoh made Eliakim the son of Josiah king in the +room of Josiah his father, and turned his name to Jehoiakim, and took +Jehoahaz away: and he came to Egypt, and died there. + +23:35 And Jehoiakim gave the silver and the gold to Pharaoh; but he +taxed the land to give the money according to the commandment of +Pharaoh: he exacted the silver and the gold of the people of the land, +of every one according to his taxation, to give it unto Pharaohnechoh. + +23:36 Jehoiakim was twenty and five years old when he began to reign; +and he reigned eleven years in Jerusalem. And his mother's name was +Zebudah, the daughter of Pedaiah of Rumah. + +23:37 And he did that which was evil in the sight of the LORD, +according to all that his fathers had done. + +24:1 In his days Nebuchadnezzar king of Babylon came up, and Jehoiakim +became his servant three years: then he turned and rebelled against +him. + +24:2 And the LORD sent against him bands of the Chaldees, and bands of +the Syrians, and bands of the Moabites, and bands of the children of +Ammon, and sent them against Judah to destroy it, according to the +word of the LORD, which he spake by his servants the prophets. + +24:3 Surely at the commandment of the LORD came this upon Judah, to +remove them out of his sight, for the sins of Manasseh, according to +all that he did; 24:4 And also for the innocent blood that he shed: +for he filled Jerusalem with innocent blood; which the LORD would not +pardon. + +24:5 Now the rest of the acts of Jehoiakim, and all that he did, are +they not written in the book of the chronicles of the kings of Judah? +24:6 So Jehoiakim slept with his fathers: and Jehoiachin his son +reigned in his stead. + +24:7 And the king of Egypt came not again any more out of his land: +for the king of Babylon had taken from the river of Egypt unto the +river Euphrates all that pertained to the king of Egypt. + +24:8 Jehoiachin was eighteen years old when he began to reign, and he +reigned in Jerusalem three months. And his mother's name was Nehushta, +the daughter of Elnathan of Jerusalem. + +24:9 And he did that which was evil in the sight of the LORD, +according to all that his father had done. + +24:10 At that time the servants of Nebuchadnezzar king of Babylon came +up against Jerusalem, and the city was besieged. + +24:11 And Nebuchadnezzar king of Babylon came against the city, and +his servants did besiege it. + +24:12 And Jehoiachin the king of Judah went out to the king of +Babylon, he, and his mother, and his servants, and his princes, and +his officers: and the king of Babylon took him in the eighth year of +his reign. + +24:13 And he carried out thence all the treasures of the house of the +LORD, and the treasures of the king's house, and cut in pieces all the +vessels of gold which Solomon king of Israel had made in the temple of +the LORD, as the LORD had said. + +24:14 And he carried away all Jerusalem, and all the princes, and all +the mighty men of valour, even ten thousand captives, and all the +craftsmen and smiths: none remained, save the poorest sort of the +people of the land. + +24:15 And he carried away Jehoiachin to Babylon, and the king's +mother, and the king's wives, and his officers, and the mighty of the +land, those carried he into captivity from Jerusalem to Babylon. + +24:16 And all the men of might, even seven thousand, and craftsmen and +smiths a thousand, all that were strong and apt for war, even them the +king of Babylon brought captive to Babylon. + +24:17 And the king of Babylon made Mattaniah his father's brother king +in his stead, and changed his name to Zedekiah. + +24:18 Zedekiah was twenty and one years old when he began to reign, +and he reigned eleven years in Jerusalem. And his mother's name was +Hamutal, the daughter of Jeremiah of Libnah. + +24:19 And he did that which was evil in the sight of the LORD, +according to all that Jehoiakim had done. + +24:20 For through the anger of the LORD it came to pass in Jerusalem +and Judah, until he had cast them out from his presence, that Zedekiah +rebelled against the king of Babylon. + +25:1 And it came to pass in the ninth year of his reign, in the tenth +month, in the tenth day of the month, that Nebuchadnezzar king of +Babylon came, he, and all his host, against Jerusalem, and pitched +against it; and they built forts against it round about. + +25:2 And the city was besieged unto the eleventh year of king +Zedekiah. + +25:3 And on the ninth day of the fourth month the famine prevailed in +the city, and there was no bread for the people of the land. + +25:4 And the city was broken up, and all the men of war fled by night +by the way of the gate between two walls, which is by the king's +garden: (now the Chaldees were against the city round about:) and the +king went the way toward the plain. + +25:5 And the army of the Chaldees pursued after the king, and overtook +him in the plains of Jericho: and all his army were scattered from +him. + +25:6 So they took the king, and brought him up to the king of Babylon +to Riblah; and they gave judgment upon him. + +25:7 And they slew the sons of Zedekiah before his eyes, and put out +the eyes of Zedekiah, and bound him with fetters of brass, and carried +him to Babylon. + +25:8 And in the fifth month, on the seventh day of the month, which is +the nineteenth year of king Nebuchadnezzar king of Babylon, came +Nebuzaradan, captain of the guard, a servant of the king of Babylon, +unto Jerusalem: 25:9 And he burnt the house of the LORD, and the +king's house, and all the houses of Jerusalem, and every great man's +house burnt he with fire. + +25:10 And all the army of the Chaldees, that were with the captain of +the guard, brake down the walls of Jerusalem round about. + +25:11 Now the rest of the people that were left in the city, and the +fugitives that fell away to the king of Babylon, with the remnant of +the multitude, did Nebuzaradan the captain of the guard carry away. + +25:12 But the captain of the guard left of the door of the poor of the +land to be vinedressers and husbandmen. + +25:13 And the pillars of brass that were in the house of the LORD, and +the bases, and the brasen sea that was in the house of the LORD, did +the Chaldees break in pieces, and carried the brass of them to +Babylon. + +25:14 And the pots, and the shovels, and the snuffers, and the spoons, +and all the vessels of brass wherewith they ministered, took they +away. + +25:15 And the firepans, and the bowls, and such things as were of +gold, in gold, and of silver, in silver, the captain of the guard took +away. + +25:16 The two pillars, one sea, and the bases which Solomon had made +for the house of the LORD; the brass of all these vessels was without +weight. + +25:17 The height of the one pillar was eighteen cubits, and the +chapiter upon it was brass: and the height of the chapiter three +cubits; and the wreathen work, and pomegranates upon the chapiter +round about, all of brass: and like unto these had the second pillar +with wreathen work. + +25:18 And the captain of the guard took Seraiah the chief priest, and +Zephaniah the second priest, and the three keepers of the door: 25:19 +And out of the city he took an officer that was set over the men of +war, and five men of them that were in the king's presence, which were +found in the city, and the principal scribe of the host, which +mustered the people of the land, and threescore men of the people of +the land that were found in the city: 25:20 And Nebuzaradan captain of +the guard took these, and brought them to the king of Babylon to +Riblah: 25:21 And the king of Babylon smote them, and slew them at +Riblah in the land of Hamath. So Judah was carried away out of their +land. + +25:22 And as for the people that remained in the land of Judah, whom +Nebuchadnezzar king of Babylon had left, even over them he made +Gedaliah the son of Ahikam, the son of Shaphan, ruler. + +25:23 And when all the captains of the armies, they and their men, +heard that the king of Babylon had made Gedaliah governor, there came +to Gedaliah to Mizpah, even Ishmael the son of Nethaniah, and Johanan +the son of Careah, and Seraiah the son of Tanhumeth the Netophathite, +and Jaazaniah the son of a Maachathite, they and their men. + +25:24 And Gedaliah sware to them, and to their men, and said unto +them, Fear not to be the servants of the Chaldees: dwell in the land, +and serve the king of Babylon; and it shall be well with you. + +25:25 But it came to pass in the seventh month, that Ishmael the son +of Nethaniah, the son of Elishama, of the seed royal, came, and ten +men with him, and smote Gedaliah, that he died, and the Jews and the +Chaldees that were with him at Mizpah. + +25:26 And all the people, both small and great, and the captains of +the armies, arose, and came to Egypt: for they were afraid of the +Chaldees. + +25:27 And it came to pass in the seven and thirtieth year of the +captivity of Jehoiachin king of Judah, in the twelfth month, on the +seven and twentieth day of the month, that Evilmerodach king of +Babylon in the year that he began to reign did lift up the head of +Jehoiachin king of Judah out of prison; 25:28 And he spake kindly to +him, and set his throne above the throne of the kings that were with +him in Babylon; 25:29 And changed his prison garments: and he did eat +bread continually before him all the days of his life. + +25:30 And his allowance was a continual allowance given him of the +king, a daily rate for every day, all the days of his life. + + + + +The First Book of the Chronicles + + +1:1 Adam, Sheth, Enosh, 1:2 Kenan, Mahalaleel, Jered, 1:3 Henoch, +Methuselah, Lamech, 1:4 Noah, Shem, Ham, and Japheth. + +1:5 The sons of Japheth; Gomer, and Magog, and Madai, and Javan, and +Tubal, and Meshech, and Tiras. + +1:6 And the sons of Gomer; Ashchenaz, and Riphath, and Togarmah. + +1:7 And the sons of Javan; Elishah, and Tarshish, Kittim, and Dodanim. + +1:8 The sons of Ham; Cush, and Mizraim, Put, and Canaan. + +1:9 And the sons of Cush; Seba, and Havilah, and Sabta, and Raamah, +and Sabtecha. And the sons of Raamah; Sheba, and Dedan. + +1:10 And Cush begat Nimrod: he began to be mighty upon the earth. + +1:11 And Mizraim begat Ludim, and Anamim, and Lehabim, and Naphtuhim, +1:12 And Pathrusim, and Casluhim, (of whom came the Philistines,) and +Caphthorim. + +1:13 And Canaan begat Zidon his firstborn, and Heth, 1:14 The Jebusite +also, and the Amorite, and the Girgashite, 1:15 And the Hivite, and +the Arkite, and the Sinite, 1:16 And the Arvadite, and the Zemarite, +and the Hamathite. + +1:17 The sons of Shem; Elam, and Asshur, and Arphaxad, and Lud, and +Aram, and Uz, and Hul, and Gether, and Meshech. + +1:18 And Arphaxad begat Shelah, and Shelah begat Eber. + +1:19 And unto Eber were born two sons: the name of the one was Peleg; +because in his days the earth was divided: and his brother's name was +Joktan. + +1:20 And Joktan begat Almodad, and Sheleph, and Hazarmaveth, and +Jerah, 1:21 Hadoram also, and Uzal, and Diklah, 1:22 And Ebal, and +Abimael, and Sheba, 1:23 And Ophir, and Havilah, and Jobab. All these +were the sons of Joktan. + +1:24 Shem, Arphaxad, Shelah, 1:25 Eber, Peleg, Reu, 1:26 Serug, Nahor, +Terah, 1:27 Abram; the same is Abraham. + +1:28 The sons of Abraham; Isaac, and Ishmael. + +1:29 These are their generations: The firstborn of Ishmael, Nebaioth; +then Kedar, and Adbeel, and Mibsam, 1:30 Mishma, and Dumah, Massa, +Hadad, and Tema, 1:31 Jetur, Naphish, and Kedemah. These are the sons +of Ishmael. + +1:32 Now the sons of Keturah, Abraham's concubine: she bare Zimran, +and Jokshan, and Medan, and Midian, and Ishbak, and Shuah. And the +sons of Jokshan; Sheba, and Dedan. + +1:33 And the sons of Midian; Ephah, and Epher, and Henoch, and Abida, +and Eldaah. All these are the sons of Keturah. + +1:34 And Abraham begat Isaac. The sons of Isaac; Esau and Israel. + +1:35 The sons of Esau; Eliphaz, Reuel, and Jeush, and Jaalam, and +Korah. + +1:36 The sons of Eliphaz; Teman, and Omar, Zephi, and Gatam, Kenaz, +and Timna, and Amalek. + +1:37 The sons of Reuel; Nahath, Zerah, Shammah, and Mizzah. + +1:38 And the sons of Seir; Lotan, and Shobal, and Zibeon, and Anah, +and Dishon, and Ezar, and Dishan. + +1:39 And the sons of Lotan; Hori, and Homam: and Timna was Lotan's +sister. + +1:40 The sons of Shobal; Alian, and Manahath, and Ebal, Shephi, and +Onam. + +and the sons of Zibeon; Aiah, and Anah. + +1:41 The sons of Anah; Dishon. And the sons of Dishon; Amram, and +Eshban, and Ithran, and Cheran. + +1:42 The sons of Ezer; Bilhan, and Zavan, and Jakan. The sons of +Dishan; Uz, and Aran. + +1:43 Now these are the kings that reigned in the land of Edom before +any king reigned over the children of Israel; Bela the son of Beor: +and the name of his city was Dinhabah. + +1:44 And when Bela was dead, Jobab the son of Zerah of Bozrah reigned +in his stead. + +1:45 And when Jobab was dead, Husham of the land of the Temanites +reigned in his stead. + +1:46 And when Husham was dead, Hadad the son of Bedad, which smote +Midian in the field of Moab, reigned in his stead: and the name of his +city was Avith. + +1:47 And when Hadad was dead, Samlah of Masrekah reigned in his stead. + +1:48 And when Samlah was dead, Shaul of Rehoboth by the river reigned +in his stead. + +1:49 And when Shaul was dead, Baalhanan the son of Achbor reigned in +his stead. + +1:50 And when Baalhanan was dead, Hadad reigned in his stead: and the +name of his city was Pai; and his wife's name was Mehetabel, the +daughter of Matred, the daughter of Mezahab. + +1:51 Hadad died also. And the dukes of Edom were; duke Timnah, duke +Aliah, duke Jetheth, 1:52 Duke Aholibamah, duke Elah, duke Pinon, 1:53 +Duke Kenaz, duke Teman, duke Mibzar, 1:54 Duke Magdiel, duke Iram. +These are the dukes of Edom. + +2:1 These are the sons of Israel; Reuben, Simeon, Levi, and Judah, +Issachar, and Zebulun, 2:2 Dan, Joseph, and Benjamin, Naphtali, Gad, +and Asher. + +2:3 The sons of Judah; Er, and Onan, and Shelah: which three were born +unto him of the daughter of Shua the Canaanitess. And Er, the +firstborn of Judah, was evil in the sight of the LORD; and he slew +him. + +2:4 And Tamar his daughter in law bore him Pharez and Zerah. All the +sons of Judah were five. + +2:5 The sons of Pharez; Hezron, and Hamul. + +2:6 And the sons of Zerah; Zimri, and Ethan, and Heman, and Calcol, +and Dara: five of them in all. + +2:7 And the sons of Carmi; Achar, the troubler of Israel, who +transgressed in the thing accursed. + +2:8 And the sons of Ethan; Azariah. + +2:9 The sons also of Hezron, that were born unto him; Jerahmeel, and +Ram, and Chelubai. + +2:10 And Ram begat Amminadab; and Amminadab begat Nahshon, prince of +the children of Judah; 2:11 And Nahshon begat Salma, and Salma begat +Boaz, 2:12 And Boaz begat Obed, and Obed begat Jesse, 2:13 And Jesse +begat his firstborn Eliab, and Abinadab the second, and Shimma the +third, 2:14 Nethaneel the fourth, Raddai the fifth, 2:15 Ozem the +sixth, David the seventh: 2:16 Whose sisters were Zeruiah, and +Abigail. And the sons of Zeruiah; Abishai, and Joab, and Asahel, +three. + +2:17 And Abigail bare Amasa: and the father of Amasa was Jether the +Ishmeelite. + +2:18 And Caleb the son of Hezron begat children of Azubah his wife, +and of Jerioth: her sons are these; Jesher, and Shobab, and Ardon. + +2:19 And when Azubah was dead, Caleb took unto him Ephrath, which bare +him Hur. + +2:20 And Hur begat Uri, and Uri begat Bezaleel. + +2:21 And afterward Hezron went in to the daughter of Machir the father +of Gilead, whom he married when he was threescore years old; and she +bare him Segub. + +2:22 And Segub begat Jair, who had three and twenty cities in the land +of Gilead. + +2:23 And he took Geshur, and Aram, with the towns of Jair, from them, +with Kenath, and the towns thereof, even threescore cities. All these +belonged to the sons of Machir the father of Gilead. + +2:24 And after that Hezron was dead in Calebephratah, then Abiah +Hezron's wife bare him Ashur the father of Tekoa. + +2:25 And the sons of Jerahmeel the firstborn of Hezron were, Ram the +firstborn, and Bunah, and Oren, and Ozem, and Ahijah. + +2:26 Jerahmeel had also another wife, whose name was Atarah; she was +the mother of Onam. + +2:27 And the sons of Ram the firstborn of Jerahmeel were, Maaz, and +Jamin, and Eker. + +2:28 And the sons of Onam were, Shammai, and Jada. And the sons of +Shammai; Nadab and Abishur. + +2:29 And the name of the wife of Abishur was Abihail, and she bare him +Ahban, and Molid. + +2:30 And the sons of Nadab; Seled, and Appaim: but Seled died without +children. + +2:31 And the sons of Appaim; Ishi. And the sons of Ishi; Sheshan. And +the children of Sheshan; Ahlai. + +2:32 And the sons of Jada the brother of Shammai; Jether, and +Jonathan: and Jether died without children. + +2:33 And the sons of Jonathan; Peleth, and Zaza. These were the sons +of Jerahmeel. + +2:34 Now Sheshan had no sons, but daughters. And Sheshan had a +servant, an Egyptian, whose name was Jarha. + +2:35 And Sheshan gave his daughter to Jarha his servant to wife; and +she bare him Attai. + +2:36 And Attai begat Nathan, and Nathan begat Zabad, 2:37 And Zabad +begat Ephlal, and Ephlal begat Obed, 2:38 And Obed begat Jehu, and +Jehu begat Azariah, 2:39 And Azariah begat Helez, and Helez begat +Eleasah, 2:40 And Eleasah begat Sisamai, and Sisamai begat Shallum, +2:41 And Shallum begat Jekamiah, and Jekamiah begat Elishama. + +2:42 Now the sons of Caleb the brother of Jerahmeel were, Mesha his +firstborn, which was the father of Ziph; and the sons of Mareshah the +father of Hebron. + +2:43 And the sons of Hebron; Korah, and Tappuah, and Rekem, and Shema. + +2:44 And Shema begat Raham, the father of Jorkoam: and Rekem begat +Shammai. + +2:45 And the son of Shammai was Maon: and Maon was the father of +Bethzur. + +2:46 And Ephah, Caleb's concubine, bare Haran, and Moza, and Gazez: +and Haran begat Gazez. + +2:47 And the sons of Jahdai; Regem, and Jotham, and Gesham, and Pelet, +and Ephah, and Shaaph. + +2:48 Maachah, Caleb's concubine, bare Sheber, and Tirhanah. + +2:49 She bare also Shaaph the father of Madmannah, Sheva the father of +Machbenah, and the father of Gibea: and the daughter of Caleb was +Achsa. + +2:50 These were the sons of Caleb the son of Hur, the firstborn of +Ephratah; Shobal the father of Kirjathjearim. + +2:51 Salma the father of Bethlehem, Hareph the father of Bethgader. + +2:52 And Shobal the father of Kirjathjearim had sons; Haroeh, and half +of the Manahethites. + +2:53 And the families of Kirjathjearim; the Ithrites, and the Puhites, +and the Shumathites, and the Mishraites; of them came the Zareathites, +and the Eshtaulites, 2:54 The sons of Salma; Bethlehem, and the +Netophathites, Ataroth, the house of Joab, and half of the +Manahethites, the Zorites. + +2:55 And the families of the scribes which dwelt at Jabez; the +Tirathites, the Shimeathites, and Suchathites. These are the Kenites +that came of Hemath, the father of the house of Rechab. + +3:1 Now these were the sons of David, which were born unto him in +Hebron; the firstborn Amnon, of Ahinoam the Jezreelitess; the second +Daniel, of Abigail the Carmelitess: 3:2 The third, Absalom the son of +Maachah the daughter of Talmai king of Geshur: the fourth, Adonijah +the son of Haggith: 3:3 The fifth, Shephatiah of Abital: the sixth, +Ithream by Eglah his wife. + +3:4 These six were born unto him in Hebron; and there he reigned seven +years and six months: and in Jerusalem he reigned thirty and three +years. + +3:5 And these were born unto him in Jerusalem; Shimea, and Shobab, and +Nathan, and Solomon, four, of Bathshua the daughter of Ammiel: 3:6 +Ibhar also, and Elishama, and Eliphelet, 3:7 And Nogah, and Nepheg, +and Japhia, 3:8 And Elishama, and Eliada, and Eliphelet, nine. + +3:9 These were all the sons of David, beside the sons of the +concubines, and Tamar their sister. + +3:10 And Solomon's son was Rehoboam, Abia his son, Asa his son, +Jehoshaphat his son, 3:11 Joram his son, Ahaziah his son, Joash his +son, 3:12 Amaziah his son, Azariah his son, Jotham his son, 3:13 Ahaz +his son, Hezekiah his son, Manasseh his son, 3:14 Amon his son, Josiah +his son. + +3:15 And the sons of Josiah were, the firstborn Johanan, the second +Jehoiakim, the third Zedekiah, the fourth Shallum. + +3:16 And the sons of Jehoiakim: Jeconiah his son, Zedekiah his son. + +3:17 And the sons of Jeconiah; Assir, Salathiel his son, 3:18 +Malchiram also, and Pedaiah, and Shenazar, Jecamiah, Hoshama, and +Nedabiah. + +3:19 And the sons of Pedaiah were, Zerubbabel, and Shimei: and the +sons of Zerubbabel; Meshullam, and Hananiah, and Shelomith their +sister: 3:20 And Hashubah, and Ohel, and Berechiah, and Hasadiah, +Jushabhesed, five. + +3:21 And the sons of Hananiah; Pelatiah, and Jesaiah: the sons of +Rephaiah, the sons of Arnan, the sons of Obadiah, the sons of +Shechaniah. + +3:22 And the sons of Shechaniah; Shemaiah: and the sons of Shemaiah; +Hattush, and Igeal, and Bariah, and Neariah, and Shaphat, six. + +3:23 And the sons of Neariah; Elioenai, and Hezekiah, and Azrikam, +three. + +3:24 And the sons of Elioenai were, Hodaiah, and Eliashib, and +Pelaiah, and Akkub, and Johanan, and Dalaiah, and Anani, seven. + +4:1 The sons of Judah; Pharez, Hezron, and Carmi, and Hur, and Shobal. + +4:2 And Reaiah the son of Shobal begat Jahath; and Jahath begat +Ahumai, and Lahad. These are the families of the Zorathites. + +4:3 And these were of the father of Etam; Jezreel, and Ishma, and +Idbash: and the name of their sister was Hazelelponi: 4:4 And Penuel +the father of Gedor, and Ezer the father of Hushah. These are the sons +of Hur, the firstborn of Ephratah, the father of Bethlehem. + +4:5 And Ashur the father of Tekoa had two wives, Helah and Naarah. + +4:6 And Naarah bare him Ahuzam, and Hepher, and Temeni, and +Haahashtari. + +These were the sons of Naarah. + +4:7 And the sons of Helah were, Zereth, and Jezoar, and Ethnan. + +4:8 And Coz begat Anub, and Zobebah, and the families of Aharhel the +son of Harum. + +4:9 And Jabez was more honourable than his brethren: and his mother +called his name Jabez, saying, Because I bare him with sorrow. + +4:10 And Jabez called on the God of Israel, saying, Oh that thou +wouldest bless me indeed, and enlarge my coast, and that thine hand +might be with me, and that thou wouldest keep me from evil, that it +may not grieve me! And God granted him that which he requested. + +4:11 And Chelub the brother of Shuah begat Mehir, which was the father +of Eshton. + +4:12 And Eshton begat Bethrapha, and Paseah, and Tehinnah the father +of Irnahash. These are the men of Rechah. + +4:13 And the sons of Kenaz; Othniel, and Seraiah: and the sons of +Othniel; Hathath. + +4:14 And Meonothai begat Ophrah: and Seraiah begat Joab, the father of +the valley of Charashim; for they were craftsmen. + +4:15 And the sons of Caleb the son of Jephunneh; Iru, Elah, and Naam: +and the sons of Elah, even Kenaz. + +4:16 And the sons of Jehaleleel; Ziph, and Ziphah, Tiria, and Asareel. + +4:17 And the sons of Ezra were, Jether, and Mered, and Epher, and +Jalon: and she bare Miriam, and Shammai, and Ishbah the father of +Eshtemoa. + +4:18 And his wife Jehudijah bare Jered the father of Gedor, and Heber +the father of Socho, and Jekuthiel the father of Zanoah. And these are +the sons of Bithiah the daughter of Pharaoh, which Mered took. + +4:19 And the sons of his wife Hodiah the sister of Naham, the father +of Keilah the Garmite, and Eshtemoa the Maachathite. + +4:20 And the sons of Shimon were, Amnon, and Rinnah, Benhanan, and +Tilon. + +And the sons of Ishi were, Zoheth, and Benzoheth. + +4:21 The sons of Shelah the son of Judah were, Er the father of Lecah, +and Laadah the father of Mareshah, and the families of the house of +them that wrought fine linen, of the house of Ashbea, 4:22 And Jokim, +and the men of Chozeba, and Joash, and Saraph, who had the dominion in +Moab, and Jashubilehem. And these are ancient things. + +4:23 These were the potters, and those that dwelt among plants and +hedges: there they dwelt with the king for his work. + +4:24 The sons of Simeon were, Nemuel, and Jamin, Jarib, Zerah, and +Shaul: 4:25 Shallum his son, Mibsam his son, Mishma his son. + +4:26 And the sons of Mishma; Hamuel his son, Zacchur his son, Shimei +his son. + +4:27 And Shimei had sixteen sons and six daughters: but his brethren +had not many children, neither did all their family multiply, like to +the children of Judah. + +4:28 And they dwelt at Beersheba, and Moladah, and Hazarshual, 4:29 +And at Bilhah, and at Ezem, and at Tolad, 4:30 And at Bethuel, and at +Hormah, and at Ziklag, 4:31 And at Bethmarcaboth, and Hazarsusim, and +at Bethbirei, and at Shaaraim. These were their cities unto the reign +of David. + +4:32 And their villages were, Etam, and Ain, Rimmon, and Tochen, and +Ashan, five cities: 4:33 And all their villages that were round about +the same cities, unto Baal. These were their habitations, and their +genealogy. + +4:34 And Meshobab, and Jamlech, and Joshah, the son of Amaziah, 4:35 +And Joel, and Jehu the son of Josibiah, the son of Seraiah, the son of +Asiel, 4:36 And Elioenai, and Jaakobah, and Jeshohaiah, and Asaiah, +and Adiel, and Jesimiel, and Benaiah, 4:37 And Ziza the son of Shiphi, +the son of Allon, the son of Jedaiah, the son of Shimri, the son of +Shemaiah; 4:38 These mentioned by their names were princes in their +families: and the house of their fathers increased greatly. + +4:39 And they went to the entrance of Gedor, even unto the east side +of the valley, to seek pasture for their flocks. + +4:40 And they found fat pasture and good, and the land was wide, and +quiet, and peaceable; for they of Ham had dwelt there of old. + +4:41 And these written by name came in the days of Hezekiah king of +Judah, and smote their tents, and the habitations that were found +there, and destroyed them utterly unto this day, and dwelt in their +rooms: because there was pasture there for their flocks. + +4:42 And some of them, even of the sons of Simeon, five hundred men, +went to mount Seir, having for their captains Pelatiah, and Neariah, +and Rephaiah, and Uzziel, the sons of Ishi. + +4:43 And they smote the rest of the Amalekites that were escaped, and +dwelt there unto this day. + +5:1 Now the sons of Reuben the firstborn of Israel, (for he was the +firstborn; but forasmuch as he defiled his father's bed, his +birthright was given unto the sons of Joseph the son of Israel: and +the genealogy is not to be reckoned after the birthright. + +5:2 For Judah prevailed above his brethren, and of him came the chief +ruler; but the birthright was Joseph's:) 5:3 The sons, I say, of +Reuben the firstborn of Israel were, Hanoch, and Pallu, Hezron, and +Carmi. + +5:4 The sons of Joel; Shemaiah his son, Gog his son, Shimei his son, +5:5 Micah his son, Reaia his son, Baal his son, 5:6 Beerah his son, +whom Tilgathpilneser king of Assyria carried away captive: he was +prince of the Reubenites. + +5:7 And his brethren by their families, when the genealogy of their +generations was reckoned, were the chief, Jeiel, and Zechariah, 5:8 +And Bela the son of Azaz, the son of Shema, the son of Joel, who dwelt +in Aroer, even unto Nebo and Baalmeon: 5:9 And eastward he inhabited +unto the entering in of the wilderness from the river Euphrates: +because their cattle were multiplied in the land of Gilead. + +5:10 And in the days of Saul they made war with the Hagarites, who +fell by their hand: and they dwelt in their tents throughout all the +east land of Gilead. + +5:11 And the children of Gad dwelt over against them, in the land of +Bashan unto Salcah: 5:12 Joel the chief, and Shapham the next, and +Jaanai, and Shaphat in Bashan. + +5:13 And their brethren of the house of their fathers were, Michael, +and Meshullam, and Sheba, and Jorai, and Jachan, and Zia, and Heber, +seven. + +5:14 These are the children of Abihail the son of Huri, the son of +Jaroah, the son of Gilead, the son of Michael, the son of Jeshishai, +the son of Jahdo, the son of Buz; 5:15 Ahi the son of Abdiel, the son +of Guni, chief of the house of their fathers. + +5:16 And they dwelt in Gilead in Bashan, and in her towns, and in all +the suburbs of Sharon, upon their borders. + +5:17 All these were reckoned by genealogies in the days of Jotham king +of Judah, and in the days of Jeroboam king of Israel. + +5:18 The sons of Reuben, and the Gadites, and half the tribe of +Manasseh, of valiant men, men able to bear buckler and sword, and to +shoot with bow, and skilful in war, were four and forty thousand seven +hundred and threescore, that went out to the war. + +5:19 And they made war with the Hagarites, with Jetur, and Nephish, +and Nodab. + +5:20 And they were helped against them, and the Hagarites were +delivered into their hand, and all that were with them: for they cried +to God in the battle, and he was intreated of them; because they put +their trust in him. + +5:21 And they took away their cattle; of their camels fifty thousand, +and of sheep two hundred and fifty thousand, and of asses two +thousand, and of men an hundred thousand. + +5:22 For there fell down many slain, because the war was of God. And +they dwelt in their steads until the captivity. + +5:23 And the children of the half tribe of Manasseh dwelt in the land: +they increased from Bashan unto Baalhermon and Senir, and unto mount +Hermon. + +5:24 And these were the heads of the house of their fathers, even +Epher, and Ishi, and Eliel, and Azriel, and Jeremiah, and Hodaviah, +and Jahdiel, mighty men of valour, famous men, and heads of the house +of their fathers. + +5:25 And they transgressed against the God of their fathers, and went +a whoring after the gods of the people of the land, whom God destroyed +before them. + +5:26 And the God of Israel stirred up the spirit of Pul king of +Assyria, and the spirit of Tilgathpilneser king of Assyria, and he +carried them away, even the Reubenites, and the Gadites, and the half +tribe of Manasseh, and brought them unto Halah, and Habor, and Hara, +and to the river Gozan, unto this day. + +6:1 The sons of Levi; Gershon, Kohath, and Merari. + +6:2 And the sons of Kohath; Amram, Izhar, and Hebron, and Uzziel. + +6:3 And the children of Amram; Aaron, and Moses, and Miriam. The sons +also of Aaron; Nadab, and Abihu, Eleazar, and Ithamar. + +6:4 Eleazar begat Phinehas, Phinehas begat Abishua, 6:5 And Abishua +begat Bukki, and Bukki begat Uzzi, 6:6 And Uzzi begat Zerahiah, and +Zerahiah begat Meraioth, 6:7 Meraioth begat Amariah, and Amariah begat +Ahitub, 6:8 And Ahitub begat Zadok, and Zadok begat Ahimaaz, 6:9 And +Ahimaaz begat Azariah, and Azariah begat Johanan, 6:10 And Johanan +begat Azariah, (he it is that executed the priest's office in the +temple that Solomon built in Jerusalem:) 6:11 And Azariah begat +Amariah, and Amariah begat Ahitub, 6:12 And Ahitub begat Zadok, and +Zadok begat Shallum, 6:13 And Shallum begat Hilkiah, and Hilkiah begat +Azariah, 6:14 And Azariah begat Seraiah, and Seraiah begat Jehozadak, +6:15 And Jehozadak went into captivity, when the LORD carried away +Judah and Jerusalem by the hand of Nebuchadnezzar. + +6:16 The sons of Levi; Gershom, Kohath, and Merari. + +6:17 And these be the names of the sons of Gershom; Libni, and Shimei. + +6:18 And the sons of Kohath were, Amram, and Izhar, and Hebron, and +Uzziel. + +6:19 The sons of Merari; Mahli, and Mushi. And these are the families +of the Levites according to their fathers. + +6:20 Of Gershom; Libni his son, Jahath his son, Zimmah his son, 6:21 +Joah his son, Iddo his son, Zerah his son, Jeaterai his son. + +6:22 The sons of Kohath; Amminadab his son, Korah his son, Assir his +son, 6:23 Elkanah his son, and Ebiasaph his son, and Assir his son, +6:24 Tahath his son, Uriel his son, Uzziah his son, and Shaul his son. + +6:25 And the sons of Elkanah; Amasai, and Ahimoth. + +6:26 As for Elkanah: the sons of Elkanah; Zophai his son, and Nahath +his son, 6:27 Eliab his son, Jeroham his son, Elkanah his son. + +6:28 And the sons of Samuel; the firstborn Vashni, and Abiah. + +6:29 The sons of Merari; Mahli, Libni his son, Shimei his son, Uzza +his son, 6:30 Shimea his son, Haggiah his son, Asaiah his son. + +6:31 And these are they whom David set over the service of song in the +house of the LORD, after that the ark had rest. + +6:32 And they ministered before the dwelling place of the tabernacle +of the congregation with singing, until Solomon had built the house of +the LORD in Jerusalem: and then they waited on their office according +to their order. + +6:33 And these are they that waited with their children. Of the sons +of the Kohathites: Heman a singer, the son of Joel, the son of +Shemuel, 6:34 The son of Elkanah, the son of Jeroham, the son of +Eliel, the son of Toah, 6:35 The son of Zuph, the son of Elkanah, the +son of Mahath, the son of Amasai, 6:36 The son of Elkanah, the son of +Joel, the son of Azariah, the son of Zephaniah, 6:37 The son of +Tahath, the son of Assir, the son of Ebiasaph, the son of Korah, 6:38 +The son of Izhar, the son of Kohath, the son of Levi, the son of +Israel. + +6:39 And his brother Asaph, who stood on his right hand, even Asaph +the son of Berachiah, the son of Shimea, 6:40 The son of Michael, the +son of Baaseiah, the son of Malchiah, 6:41 The son of Ethni, the son +of Zerah, the son of Adaiah, 6:42 The son of Ethan, the son of Zimmah, +the son of Shimei, 6:43 The son of Jahath, the son of Gershom, the son +of Levi. + +6:44 And their brethren the sons of Merari stood on the left hand: +Ethan the son of Kishi, the son of Abdi, the son of Malluch, 6:45 The +son of Hashabiah, the son of Amaziah, the son of Hilkiah, 6:46 The son +of Amzi, the son of Bani, the son of Shamer, 6:47 The son of Mahli, +the son of Mushi, the son of Merari, the son of Levi. + +6:48 Their brethren also the Levites were appointed unto all manner of +service of the tabernacle of the house of God. + +6:49 But Aaron and his sons offered upon the altar of the burnt +offering, and on the altar of incense, and were appointed for all the +work of the place most holy, and to make an atonement for Israel, +according to all that Moses the servant of God had commanded. + +6:50 And these are the sons of Aaron; Eleazar his son, Phinehas his +son, Abishua his son, 6:51 Bukki his son, Uzzi his son, Zerahiah his +son, 6:52 Meraioth his son, Amariah his son, Ahitub his son, 6:53 +Zadok his son, Ahimaaz his son. + +6:54 Now these are their dwelling places throughout their castles in +their coasts, of the sons of Aaron, of the families of the Kohathites: +for theirs was the lot. + +6:55 And they gave them Hebron in the land of Judah, and the suburbs +thereof round about it. + +6:56 But the fields of the city, and the villages thereof, they gave +to Caleb the son of Jephunneh. + +6:57 And to the sons of Aaron they gave the cities of Judah, namely, +Hebron, the city of refuge, and Libnah with her suburbs, and Jattir, +and Eshtemoa, with their suburbs, 6:58 And Hilen with her suburbs, +Debir with her suburbs, 6:59 And Ashan with her suburbs, and +Bethshemesh with her suburbs: 6:60 And out of the tribe of Benjamin; +Geba with her suburbs, and Alemeth with her suburbs, and Anathoth with +her suburbs. All their cities throughout their families were thirteen +cities. + +6:61 And unto the sons of Kohath, which were left of the family of +that tribe, were cities given out of the half tribe, namely, out of +the half tribe of Manasseh, by lot, ten cities. + +6:62 And to the sons of Gershom throughout their families out of the +tribe of Issachar, and out of the tribe of Asher, and out of the tribe +of Naphtali, and out of the tribe of Manasseh in Bashan, thirteen +cities. + +6:63 Unto the sons of Merari were given by lot, throughout their +families, out of the tribe of Reuben, and out of the tribe of Gad, and +out of the tribe of Zebulun, twelve cities. + +6:64 And the children of Israel gave to the Levites these cities with +their suburbs. + +6:65 And they gave by lot out of the tribe of the children of Judah, +and out of the tribe of the children of Simeon, and out of the tribe +of the children of Benjamin, these cities, which are called by their +names. + +6:66 And the residue of the families of the sons of Kohath had cities +of their coasts out of the tribe of Ephraim. + +6:67 And they gave unto them, of the cities of refuge, Shechem in +mount Ephraim with her suburbs; they gave also Gezer with her suburbs, +6:68 And Jokmeam with her suburbs, and Bethhoron with her suburbs, +6:69 And Aijalon with her suburbs, and Gathrimmon with her suburbs: +6:70 And out of the half tribe of Manasseh; Aner with her suburbs, and +Bileam with her suburbs, for the family of the remnant of the sons of +Kohath. + +6:71 Unto the sons of Gershom were given out of the family of the half +tribe of Manasseh, Golan in Bashan with her suburbs, and Ashtaroth +with her suburbs: 6:72 And out of the tribe of Issachar; Kedesh with +her suburbs, Daberath with her suburbs, 6:73 And Ramoth with her +suburbs, and Anem with her suburbs: 6:74 And out of the tribe of +Asher; Mashal with her suburbs, and Abdon with her suburbs, 6:75 And +Hukok with her suburbs, and Rehob with her suburbs: 6:76 And out of +the tribe of Naphtali; Kedesh in Galilee with her suburbs, and Hammon +with her suburbs, and Kirjathaim with her suburbs. + +6:77 Unto the rest of the children of Merari were given out of the +tribe of Zebulun, Rimmon with her suburbs, Tabor with her suburbs: +6:78 And on the other side Jordan by Jericho, on the east side of +Jordan, were given them out of the tribe of Reuben, Bezer in the +wilderness with her suburbs, and Jahzah with her suburbs, 6:79 +Kedemoth also with her suburbs, and Mephaath with her suburbs: 6:80 +And out of the tribe of Gad; Ramoth in Gilead with her suburbs, and +Mahanaim with her suburbs, 6:81 And Heshbon with her suburbs, and +Jazer with her suburbs. + +7:1 Now the sons of Issachar were, Tola, and Puah, Jashub, and +Shimrom, four. + +7:2 And the sons of Tola; Uzzi, and Rephaiah, and Jeriel, and Jahmai, +and Jibsam, and Shemuel, heads of their father's house, to wit, of +Tola: they were valiant men of might in their generations; whose +number was in the days of David two and twenty thousand and six +hundred. + +7:3 And the sons of Uzzi; Izrahiah: and the sons of Izrahiah; Michael, +and Obadiah, and Joel, Ishiah, five: all of them chief men. + +7:4 And with them, by their generations, after the house of their +fathers, were bands of soldiers for war, six and thirty thousand men: +for they had many wives and sons. + +7:5 And their brethren among all the families of Issachar were valiant +men of might, reckoned in all by their genealogies fourscore and seven +thousand. + +7:6 The sons of Benjamin; Bela, and Becher, and Jediael, three. + +7:7 And the sons of Bela; Ezbon, and Uzzi, and Uzziel, and Jerimoth, +and Iri, five; heads of the house of their fathers, mighty men of +valour; and were reckoned by their genealogies twenty and two thousand +and thirty and four. + +7:8 And the sons of Becher; Zemira, and Joash, and Eliezer, and +Elioenai, and Omri, and Jerimoth, and Abiah, and Anathoth, and +Alameth. All these are the sons of Becher. + +7:9 And the number of them, after their genealogy by their +generations, heads of the house of their fathers, mighty men of +valour, was twenty thousand and two hundred. + +7:10 The sons also of Jediael; Bilhan: and the sons of Bilhan; Jeush, +and Benjamin, and Ehud, and Chenaanah, and Zethan, and Tharshish, and +Ahishahar. + +7:11 All these the sons of Jediael, by the heads of their fathers, +mighty men of valour, were seventeen thousand and two hundred +soldiers, fit to go out for war and battle. + +7:12 Shuppim also, and Huppim, the children of Ir, and Hushim, the +sons of Aher. + +7:13 The sons of Naphtali; Jahziel, and Guni, and Jezer, and Shallum, +the sons of Bilhah. + +7:14 The sons of Manasseh; Ashriel, whom she bare: (but his concubine +the Aramitess bare Machir the father of Gilead: 7:15 And Machir took +to wife the sister of Huppim and Shuppim, whose sister's name was +Maachah;) and the name of the second was Zelophehad: and Zelophehad +had daughters. + +7:16 And Maachah the wife of Machir bare a son, and she called his +name Peresh; and the name of his brother was Sheresh; and his sons +were Ulam and Rakem. + +7:17 And the sons of Ulam; Bedan. These were the sons of Gilead, the +son of Machir, the son of Manasseh. + +7:18 And his sister Hammoleketh bare Ishod, and Abiezer, and Mahalah. + +7:19 And the sons of Shemidah were, Ahian, and Shechem, and Likhi, and +Aniam. + +7:20 And the sons of Ephraim; Shuthelah, and Bered his son, and Tahath +his son, and Eladah his son, and Tahath his son, 7:21 And Zabad his +son, and Shuthelah his son, and Ezer, and Elead, whom the men of Gath +that were born in that land slew, because they came down to take away +their cattle. + +7:22 And Ephraim their father mourned many days, and his brethren came +to comfort him. + +7:23 And when he went in to his wife, she conceived, and bare a son, +and he called his name Beriah, because it went evil with his house. + +7:24 (And his daughter was Sherah, who built Bethhoron the nether, and +the upper, and Uzzensherah.) 7:25 And Rephah was his son, also +Resheph, and Telah his son, and Tahan his son. + +7:26 Laadan his son, Ammihud his son, Elishama his son. + +7:27 Non his son, Jehoshuah his son. + +7:28 And their possessions and habitations were, Bethel and the towns +thereof, and eastward Naaran, and westward Gezer, with the towns +thereof; Shechem also and the towns thereof, unto Gaza and the towns +thereof: 7:29 And by the borders of the children of Manasseh, +Bethshean and her towns, Taanach and her towns, Megiddo and her towns, +Dor and her towns. In these dwelt the children of Joseph the son of +Israel. + +7:30 The sons of Asher; Imnah, and Isuah, and Ishuai, and Beriah, and +Serah their sister. + +7:31 And the sons of Beriah; Heber, and Malchiel, who is the father of +Birzavith. + +7:32 And Heber begat Japhlet, and Shomer, and Hotham, and Shua their +sister. + +7:33 And the sons of Japhlet; Pasach, and Bimhal, and Ashvath. These +are the children of Japhlet. + +7:34 And the sons of Shamer; Ahi, and Rohgah, Jehubbah, and Aram. + +7:35 And the sons of his brother Helem; Zophah, and Imna, and Shelesh, +and Amal. + +7:36 The sons of Zophah; Suah, and Harnepher, and Shual, and Beri, and +Imrah, 7:37 Bezer, and Hod, and Shamma, and Shilshah, and Ithran, and +Beera. + +7:38 And the sons of Jether; Jephunneh, and Pispah, and Ara. + +7:39 And the sons of Ulla; Arah, and Haniel, and Rezia. + +7:40 All these were the children of Asher, heads of their father's +house, choice and mighty men of valour, chief of the princes. And the +number throughout the genealogy of them that were apt to the war and +to battle was twenty and six thousand men. + +8:1 Now Benjamin begat Bela his firstborn, Ashbel the second, and +Aharah the third, 8:2 Nohah the fourth, and Rapha the fifth. + +8:3 And the sons of Bela were, Addar, and Gera, and Abihud, 8:4 And +Abishua, and Naaman, and Ahoah, 8:5 And Gera, and Shephuphan, and +Huram. + +8:6 And these are the sons of Ehud: these are the heads of the fathers +of the inhabitants of Geba, and they removed them to Manahath: 8:7 And +Naaman, and Ahiah, and Gera, he removed them, and begat Uzza, and +Ahihud. + +8:8 And Shaharaim begat children in the country of Moab, after he had +sent them away; Hushim and Baara were his wives. + +8:9 And he begat of Hodesh his wife, Jobab, and Zibia, and Mesha, and +Malcham, 8:10 And Jeuz, and Shachia, and Mirma. These were his sons, +heads of the fathers. + +8:11 And of Hushim he begat Abitub, and Elpaal. + +8:12 The sons of Elpaal; Eber, and Misham, and Shamed, who built Ono, +and Lod, with the towns thereof: 8:13 Beriah also, and Shema, who were +heads of the fathers of the inhabitants of Aijalon, who drove away the +inhabitants of Gath: 8:14 And Ahio, Shashak, and Jeremoth, 8:15 And +Zebadiah, and Arad, and Ader, 8:16 And Michael, and Ispah, and Joha, +the sons of Beriah; 8:17 And Zebadiah, and Meshullam, and Hezeki, and +Heber, 8:18 Ishmerai also, and Jezliah, and Jobab, the sons of Elpaal; +8:19 And Jakim, and Zichri, and Zabdi, 8:20 And Elienai, and Zilthai, +and Eliel, 8:21 And Adaiah, and Beraiah, and Shimrath, the sons of +Shimhi; 8:22 And Ishpan, and Heber, and Eliel, 8:23 And Abdon, and +Zichri, and Hanan, 8:24 And Hananiah, and Elam, and Antothijah, 8:25 +And Iphedeiah, and Penuel, the sons of Shashak; 8:26 And Shamsherai, +and Shehariah, and Athaliah, 8:27 And Jaresiah, and Eliah, and Zichri, +the sons of Jeroham. + +8:28 These were heads of the fathers, by their generations, chief men. + +These dwelt in Jerusalem. + +8:29 And at Gibeon dwelt the father of Gibeon; whose wife's name was +Maachah: 8:30 And his firstborn son Abdon, and Zur, and Kish, and +Baal, and Nadab, 8:31 And Gedor, and Ahio, and Zacher. + +8:32 And Mikloth begat Shimeah. And these also dwelt with their +brethren in Jerusalem, over against them. + +8:33 And Ner begat Kish, and Kish begat Saul, and Saul begat Jonathan, +and Malchishua, and Abinadab, and Eshbaal. + +8:34 And the son of Jonathan was Meribbaal; and Meribbaal begat Micah. + +8:35 And the sons of Micah were, Pithon, and Melech, and Tarea, and +Ahaz. + +8:36 And Ahaz begat Jehoadah; and Jehoadah begat Alemeth, and +Azmaveth, and Zimri; and Zimri begat Moza, 8:37 And Moza begat Binea: +Rapha was his son, Eleasah his son, Azel his son: 8:38 And Azel had +six sons, whose names are these, Azrikam, Bocheru, and Ishmael, and +Sheariah, and Obadiah, and Hanan. All these were the sons of Azel. + +8:39 And the sons of Eshek his brother were, Ulam his firstborn, +Jehush the second, and Eliphelet the third. + +8:40 And the sons of Ulam were mighty men of valour, archers, and had +many sons, and sons' sons, an hundred and fifty. All these are of the +sons of Benjamin. + +9:1 So all Israel were reckoned by genealogies; and, behold, they were +written in the book of the kings of Israel and Judah, who were carried +away to Babylon for their transgression. + +9:2 Now the first inhabitants that dwelt in their possessions in their +cities were, the Israelites, the priests, Levites, and the Nethinims. + +9:3 And in Jerusalem dwelt of the children of Judah, and of the +children of Benjamin, and of the children of Ephraim, and Manasseh; +9:4 Uthai the son of Ammihud, the son of Omri, the son of Imri, the +son of Bani, of the children of Pharez the son of Judah. + +9:5 And of the Shilonites; Asaiah the firstborn, and his sons. + +9:6 And of the sons of Zerah; Jeuel, and their brethren, six hundred +and ninety. + +9:7 And of the sons of Benjamin; Sallu the son of Meshullam, the son +of Hodaviah, the son of Hasenuah, 9:8 And Ibneiah the son of Jeroham, +and Elah the son of Uzzi, the son of Michri, and Meshullam the son of +Shephathiah, the son of Reuel, the son of Ibnijah; 9:9 And their +brethren, according to their generations, nine hundred and fifty and +six. All these men were chief of the fathers in the house of their +fathers. + +9:10 And of the priests; Jedaiah, and Jehoiarib, and Jachin, 9:11 And +Azariah the son of Hilkiah, the son of Meshullam, the son of Zadok, +the son of Meraioth, the son of Ahitub, the ruler of the house of God; +9:12 And Adaiah the son of Jeroham, the son of Pashur, the son of +Malchijah, and Maasiai the son of Adiel, the son of Jahzerah, the son +of Meshullam, the son of Meshillemith, the son of Immer; 9:13 And +their brethren, heads of the house of their fathers, a thousand and +seven hundred and threescore; very able men for the work of the +service of the house of God. + +9:14 And of the Levites; Shemaiah the son of Hasshub, the son of +Azrikam, the son of Hashabiah, of the sons of Merari; 9:15 And +Bakbakkar, Heresh, and Galal, and Mattaniah the son of Micah, the son +of Zichri, the son of Asaph; 9:16 And Obadiah the son of Shemaiah, the +son of Galal, the son of Jeduthun, and Berechiah the son of Asa, the +son of Elkanah, that dwelt in the villages of the Netophathites. + +9:17 And the porters were, Shallum, and Akkub, and Talmon, and Ahiman, +and their brethren: Shallum was the chief; 9:18 Who hitherto waited in +the king's gate eastward: they were porters in the companies of the +children of Levi. + +9:19 And Shallum the son of Kore, the son of Ebiasaph, the son of +Korah, and his brethren, of the house of his father, the Korahites, +were over the work of the service, keepers of the gates of the +tabernacle: and their fathers, being over the host of the LORD, were +keepers of the entry. + +9:20 And Phinehas the son of Eleazar was the ruler over them in time +past, and the LORD was with him. + +9:21 And Zechariah the son of Meshelemiah was porter of the door of +the tabernacle of the congregation. + +9:22 All these which were chosen to be porters in the gates were two +hundred and twelve. These were reckoned by their genealogy in their +villages, whom David and Samuel the seer did ordain in their set +office. + +9:23 So they and their children had the oversight of the gates of the +house of the LORD, namely, the house of the tabernacle, by wards. + +9:24 In four quarters were the porters, toward the east, west, north, +and south. + +9:25 And their brethren, which were in their villages, were to come +after seven days from time to time with them. + +9:26 For these Levites, the four chief porters, were in their set +office, and were over the chambers and treasuries of the house of God. + +9:27 And they lodged round about the house of God, because the charge +was upon them, and the opening thereof every morning pertained to +them. + +9:28 And certain of them had the charge of the ministering vessels, +that they should bring them in and out by tale. + +9:29 Some of them also were appointed to oversee the vessels, and all +the instruments of the sanctuary, and the fine flour, and the wine, +and the oil, and the frankincense, and the spices. + +9:30 And some of the sons of the priests made the ointment of the +spices. + +9:31 And Mattithiah, one of the Levites, who was the firstborn of +Shallum the Korahite, had the set office over the things that were +made in the pans. + +9:32 And other of their brethren, of the sons of the Kohathites, were +over the shewbread, to prepare it every sabbath. + +9:33 And these are the singers, chief of the fathers of the Levites, +who remaining in the chambers were free: for they were employed in +that work day and night. + +9:34 These chief fathers of the Levites were chief throughout their +generations; these dwelt at Jerusalem. + +9:35 And in Gibeon dwelt the father of Gibeon, Jehiel, whose wife's +name was Maachah: 9:36 And his firstborn son Abdon, then Zur, and +Kish, and Baal, and Ner, and Nadab. + +9:37 And Gedor, and Ahio, and Zechariah, and Mikloth. + +9:38 And Mikloth begat Shimeam. And they also dwelt with their +brethren at Jerusalem, over against their brethren. + +9:39 And Ner begat Kish; and Kish begat Saul; and Saul begat Jonathan, +and Malchishua, and Abinadab, and Eshbaal. + +9:40 And the son of Jonathan was Meribbaal: and Meribbaal begat Micah. + +9:41 And the sons of Micah were, Pithon, and Melech, and Tahrea, and +Ahaz. + +9:42 And Ahaz begat Jarah; and Jarah begat Alemeth, and Azmaveth, and +Zimri; and Zimri begat Moza; 9:43 And Moza begat Binea; and Rephaiah +his son, Eleasah his son, Azel his son. + +9:44 And Azel had six sons, whose names are these, Azrikam, Bocheru, +and Ishmael, and Sheariah, and Obadiah, and Hanan: these were the sons +of Azel. + +10:1 Now the Philistines fought against Israel; and the men of Israel +fled from before the Philistines, and fell down slain in mount Gilboa. + +10:2 And the Philistines followed hard after Saul, and after his sons; +and the Philistines slew Jonathan, and Abinadab, and Malchishua, the +sons of Saul. + +10:3 And the battle went sore against Saul, and the archers hit him, +and he was wounded of the archers. + +10:4 Then said Saul to his armourbearer, Draw thy sword, and thrust me +through therewith; lest these uncircumcised come and abuse me. But his +armourbearer would not; for he was sore afraid. So Saul took a sword, +and fell upon it. + +10:5 And when his armourbearer saw that Saul was dead, he fell +likewise on the sword, and died. + +10:6 So Saul died, and his three sons, and all his house died +together. + +10:7 And when all the men of Israel that were in the valley saw that +they fled, and that Saul and his sons were dead, then they forsook +their cities, and fled: and the Philistines came and dwelt in them. + +10:8 And it came to pass on the morrow, when the Philistines came to +strip the slain, that they found Saul and his sons fallen in mount +Gilboa. + +10:9 And when they had stripped him, they took his head, and his +armour, and sent into the land of the Philistines round about, to +carry tidings unto their idols, and to the people. + +10:10 And they put his armour in the house of their gods, and fastened +his head in the temple of Dagon. + +10:11 And when all Jabeshgilead heard all that the Philistines had +done to Saul, 10:12 They arose, all the valiant men, and took away the +body of Saul, and the bodies of his sons, and brought them to Jabesh, +and buried their bones under the oak in Jabesh, and fasted seven days. + +10:13 So Saul died for his transgression which he committed against +the LORD, even against the word of the LORD, which he kept not, and +also for asking counsel of one that had a familiar spirit, to enquire +of it; 10:14 And enquired not of the LORD: therefore he slew him, and +turned the kingdom unto David the son of Jesse. + +11:1 Then all Israel gathered themselves to David unto Hebron, saying, +Behold, we are thy bone and thy flesh. + +11:2 And moreover in time past, even when Saul was king, thou wast he +that leddest out and broughtest in Israel: and the LORD thy God said +unto thee, Thou shalt feed my people Israel, and thou shalt be ruler +over my people Israel. + +11:3 Therefore came all the elders of Israel to the king to Hebron; +and David made a covenant with them in Hebron before the LORD; and +they anointed David king over Israel, according to the word of the +LORD by Samuel. + +11:4 And David and all Israel went to Jerusalem, which is Jebus; where +the Jebusites were, the inhabitants of the land. + +11:5 And the inhabitants of Jebus said to David, Thou shalt not come +hither. Nevertheless David took the castle of Zion, which is the city +of David. + +11:6 And David said, Whosoever smiteth the Jebusites first shall be +chief and captain. So Joab the son of Zeruiah went first up, and was +chief. + +11:7 And David dwelt in the castle; therefore they called it the city +of David. + +11:8 And he built the city round about, even from Millo round about: +and Joab repaired the rest of the city. + +11:9 So David waxed greater and greater: for the LORD of hosts was +with him. + +11:10 These also are the chief of the mighty men whom David had, who +strengthened themselves with him in his kingdom, and with all Israel, +to make him king, according to the word of the LORD concerning Israel. + +11:11 And this is the number of the mighty men whom David had; +Jashobeam, an Hachmonite, the chief of the captains: he lifted up his +spear against three hundred slain by him at one time. + +11:12 And after him was Eleazar the son of Dodo, the Ahohite, who was +one of the three mighties. + +11:13 He was with David at Pasdammim, and there the Philistines were +gathered together to battle, where was a parcel of ground full of +barley; and the people fled from before the Philistines. + +11:14 And they set themselves in the midst of that parcel, and +delivered it, and slew the Philistines; and the LORD saved them by a +great deliverance. + +11:15 Now three of the thirty captains went down to the rock to David, +into the cave of Adullam; and the host of the Philistines encamped in +the valley of Rephaim. + +11:16 And David was then in the hold, and the Philistines' garrison +was then at Bethlehem. + +11:17 And David longed, and said, Oh that one would give me drink of +the water of the well of Bethlehem, that is at the gate! 11:18 And +the three brake through the host of the Philistines, and drew water +out of the well of Bethlehem, that was by the gate, and took it, and +brought it to David: but David would not drink of it, but poured it +out to the LORD. + +11:19 And said, My God forbid it me, that I should do this thing: +shall I drink the blood of these men that have put their lives in +jeopardy? for with the jeopardy of their lives they brought it. +Therefore he would not drink it. + +These things did these three mightiest. + +11:20 And Abishai the brother of Joab, he was chief of the three: for +lifting up his spear against three hundred, he slew them, and had a +name among the three. + +11:21 Of the three, he was more honourable than the two; for he was +their captain: howbeit he attained not to the first three. + +11:22 Benaiah the son of Jehoiada, the son of a valiant man of +Kabzeel, who had done many acts; he slew two lionlike men of Moab: +also he went down and slew a lion in a pit in a snowy day. + +11:23 And he slew an Egyptian, a man of great stature, five cubits +high; and in the Egyptian's hand was a spear like a weaver's beam; and +he went down to him with a staff, and plucked the spear out of the +Egyptian's hand, and slew him with his own spear. + +11:24 These things did Benaiah the son of Jehoiada, and had the name +among the three mighties. + +11:25 Behold, he was honourable among the thirty, but attained not to +the first three: and David set him over his guard. + +11:26 Also the valiant men of the armies were, Asahel the brother of +Joab, Elhanan the son of Dodo of Bethlehem, 11:27 Shammoth the +Harorite, Helez the Pelonite, 11:28 Ira the son of Ikkesh the Tekoite, +Abiezer the Antothite, 11:29 Sibbecai the Hushathite, Ilai the +Ahohite, 11:30 Maharai the Netophathite, Heled the son of Baanah the +Netophathite, 11:31 Ithai the son of Ribai of Gibeah, that pertained +to the children of Benjamin, Benaiah the Pirathonite, 11:32 Hurai of +the brooks of Gaash, Abiel the Arbathite, 11:33 Azmaveth the +Baharumite, Eliahba the Shaalbonite, 11:34 The sons of Hashem the +Gizonite, Jonathan the son of Shage the Hararite, 11:35 Ahiam the son +of Sacar the Hararite, Eliphal the son of Ur, 11:36 Hepher the +Mecherathite, Ahijah the Pelonite, 11:37 Hezro the Carmelite, Naarai +the son of Ezbai, 11:38 Joel the brother of Nathan, Mibhar the son of +Haggeri, 11:39 Zelek the Ammonite, Naharai the Berothite, the +armourbearer of Joab the son of Zeruiah, 11:40 Ira the Ithrite, Gareb +the Ithrite, 11:41 Uriah the Hittite, Zabad the son of Ahlai, 11:42 +Adina the son of Shiza the Reubenite, a captain of the Reubenites, and +thirty with him, 11:43 Hanan the son of Maachah, and Joshaphat the +Mithnite, 11:44 Uzzia the Ashterathite, Shama and Jehiel the sons of +Hothan the Aroerite, 11:45 Jediael the son of Shimri, and Joha his +brother, the Tizite, 11:46 Eliel the Mahavite, and Jeribai, and +Joshaviah, the sons of Elnaam, and Ithmah the Moabite, 11:47 Eliel, +and Obed, and Jasiel the Mesobaite. + +12:1 Now these are they that came to David to Ziklag, while he yet +kept himself close because of Saul the son of Kish: and they were +among the mighty men, helpers of the war. + +12:2 They were armed with bows, and could use both the right hand and +the left in hurling stones and shooting arrows out of a bow, even of +Saul's brethren of Benjamin. + +12:3 The chief was Ahiezer, then Joash, the sons of Shemaah the +Gibeathite; and Jeziel, and Pelet, the sons of Azmaveth; and Berachah, +and Jehu the Antothite. + +12:4 And Ismaiah the Gibeonite, a mighty man among the thirty, and +over the thirty; and Jeremiah, and Jahaziel, and Johanan, and Josabad +the Gederathite, 12:5 Eluzai, and Jerimoth, and Bealiah, and +Shemariah, and Shephatiah the Haruphite, 12:6 Elkanah, and Jesiah, and +Azareel, and Joezer, and Jashobeam, the Korhites, 12:7 And Joelah, and +Zebadiah, the sons of Jeroham of Gedor. + +12:8 And of the Gadites there separated themselves unto David into the +hold to the wilderness men of might, and men of war fit for the +battle, that could handle shield and buckler, whose faces were like +the faces of lions, and were as swift as the roes upon the mountains; +12:9 Ezer the first, Obadiah the second, Eliab the third, 12:10 +Mishmannah the fourth, Jeremiah the fifth, 12:11 Attai the sixth, +Eliel the seventh, 12:12 Johanan the eighth, Elzabad the ninth, 12:13 +Jeremiah the tenth, Machbanai the eleventh. + +12:14 These were of the sons of Gad, captains of the host: one of the +least was over an hundred, and the greatest over a thousand. + +12:15 These are they that went over Jordan in the first month, when it +had overflown all his banks; and they put to flight all them of the +valleys, both toward the east, and toward the west. + +12:16 And there came of the children of Benjamin and Judah to the hold +unto David. + +12:17 And David went out to meet them, and answered and said unto +them, If ye be come peaceably unto me to help me, mine heart shall be +knit unto you: but if ye be come to betray me to mine enemies, seeing +there is no wrong in mine hands, the God of our fathers look thereon, +and rebuke it. + +12:18 Then the spirit came upon Amasai, who was chief of the captains, +and he said, Thine are we, David, and on thy side, thou son of Jesse: +peace, peace be unto thee, and peace be to thine helpers; for thy God +helpeth thee. + +Then David received them, and made them captains of the band. + +12:19 And there fell some of Manasseh to David, when he came with the +Philistines against Saul to battle: but they helped them not: for the +lords of the Philistines upon advisement sent him away, saying, He +will fall to his master Saul to the jeopardy of our heads. + +12:20 As he went to Ziklag, there fell to him of Manasseh, Adnah, and +Jozabad, and Jediael, and Michael, and Jozabad, and Elihu, and +Zilthai, captains of the thousands that were of Manasseh. + +12:21 And they helped David against the band of the rovers: for they +were all mighty men of valour, and were captains in the host. + +12:22 For at that time day by day there came to David to help him, +until it was a great host, like the host of God. + +12:23 And these are the numbers of the bands that were ready armed to +the war, and came to David to Hebron, to turn the kingdom of Saul to +him, according to the word of the LORD. + +12:24 The children of Judah that bare shield and spear were six +thousand and eight hundred, ready armed to the war. + +12:25 Of the children of Simeon, mighty men of valour for the war, +seven thousand and one hundred. + +12:26 Of the children of Levi four thousand and six hundred. + +12:27 And Jehoiada was the leader of the Aaronites, and with him were +three thousand and seven hundred; 12:28 And Zadok, a young man mighty +of valour, and of his father's house twenty and two captains. + +12:29 And of the children of Benjamin, the kindred of Saul, three +thousand: for hitherto the greatest part of them had kept the ward of +the house of Saul. + +12:30 And of the children of Ephraim twenty thousand and eight +hundred, mighty men of valour, famous throughout the house of their +fathers. + +12:31 And of the half tribe of Manasseh eighteen thousand, which were +expressed by name, to come and make David king. + +12:32 And of the children of Issachar, which were men that had +understanding of the times, to know what Israel ought to do; the heads +of them were two hundred; and all their brethren were at their +commandment. + +12:33 Of Zebulun, such as went forth to battle, expert in war, with +all instruments of war, fifty thousand, which could keep rank: they +were not of double heart. + +12:34 And of Naphtali a thousand captains, and with them with shield +and spear thirty and seven thousand. + +12:35 And of the Danites expert in war twenty and eight thousand and +six hundred. + +12:36 And of Asher, such as went forth to battle, expert in war, forty +thousand. + +12:37 And on the other side of Jordan, of the Reubenites, and the +Gadites, and of the half tribe of Manasseh, with all manner of +instruments of war for the battle, an hundred and twenty thousand. + +12:38 All these men of war, that could keep rank, came with a perfect +heart to Hebron, to make David king over all Israel: and all the rest +also of Israel were of one heart to make David king. + +12:39 And there they were with David three days, eating and drinking: +for their brethren had prepared for them. + +12:40 Moreover they that were nigh them, even unto Issachar and +Zebulun and Naphtali, brought bread on asses, and on camels, and on +mules, and on oxen, and meat, meal, cakes of figs, and bunches of +raisins, and wine, and oil, and oxen, and sheep abundantly: for there +was joy in Israel. + +13:1 And David consulted with the captains of thousands and hundreds, +and with every leader. + +13:2 And David said unto all the congregation of Israel, If it seem +good unto you, and that it be of the LORD our God, let us send abroad +unto our brethren every where, that are left in all the land of +Israel, and with them also to the priests and Levites which are in +their cities and suburbs, that they may gather themselves unto us: +13:3 And let us bring again the ark of our God to us: for we enquired +not at it in the days of Saul. + +13:4 And all the congregation said that they would do so: for the +thing was right in the eyes of all the people. + +13:5 So David gathered all Israel together, from Shihor of Egypt even +unto the entering of Hemath, to bring the ark of God from +Kirjathjearim. + +13:6 And David went up, and all Israel, to Baalah, that is, to +Kirjathjearim, which belonged to Judah, to bring up thence the ark of +God the LORD, that dwelleth between the cherubims, whose name is +called on it. + +13:7 And they carried the ark of God in a new cart out of the house of +Abinadab: and Uzza and Ahio drave the cart. + +13:8 And David and all Israel played before God with all their might, +and with singing, and with harps, and with psalteries, and with +timbrels, and with cymbals, and with trumpets. + +13:9 And when they came unto the threshingfloor of Chidon, Uzza put +forth his hand to hold the ark; for the oxen stumbled. + +13:10 And the anger of the LORD was kindled against Uzza, and he smote +him, because he put his hand to the ark: and there he died before God. + +13:11 And David was displeased, because the LORD had made a breach +upon Uzza: wherefore that place is called Perezuzza to this day. + +13:12 And David was afraid of God that day, saying, How shall I bring +the ark of God home to me? 13:13 So David brought not the ark home to +himself to the city of David, but carried it aside into the house of +Obededom the Gittite. + +13:14 And the ark of God remained with the family of Obededom in his +house three months. And the LORD blessed the house of Obededom, and +all that he had. + +14:1 Now Hiram king of Tyre sent messengers to David, and timber of +cedars, with masons and carpenters, to build him an house. + +14:2 And David perceived that the LORD had confirmed him king over +Israel, for his kingdom was lifted up on high, because of his people +Israel. + +14:3 And David took more wives at Jerusalem: and David begat more sons +and daughters. + +14:4 Now these are the names of his children which he had in +Jerusalem; Shammua, and Shobab, Nathan, and Solomon, 14:5 And Ibhar, +and Elishua, and Elpalet, 14:6 And Nogah, and Nepheg, and Japhia, 14:7 +And Elishama, and Beeliada, and Eliphalet. + +14:8 And when the Philistines heard that David was anointed king over +all Israel, all the Philistines went up to seek David. And David heard +of it, and went out against them. + +14:9 And the Philistines came and spread themselves in the valley of +Rephaim. + +14:10 And David enquired of God, saying, Shall I go up against the +Philistines? And wilt thou deliver them into mine hand? And the LORD +said unto him, Go up; for I will deliver them into thine hand. + +14:11 So they came up to Baalperazim; and David smote them there. Then +David said, God hath broken in upon mine enemies by mine hand like the +breaking forth of waters: therefore they called the name of that place +Baalperazim. + +14:12 And when they had left their gods there, David gave a +commandment, and they were burned with fire. + +14:13 And the Philistines yet again spread themselves abroad in the +valley. + +14:14 Therefore David enquired again of God; and God said unto him, Go +not up after them; turn away from them, and come upon them over +against the mulberry trees. + +14:15 And it shall be, when thou shalt hear a sound of going in the +tops of the mulberry trees, that then thou shalt go out to battle: for +God is gone forth before thee to smite the host of the Philistines. + +14:16 David therefore did as God commanded him: and they smote the +host of the Philistines from Gibeon even to Gazer. + +14:17 And the fame of David went out into all lands; and the LORD +brought the fear of him upon all nations. + +15:1 And David made him houses in the city of David, and prepared a +place for the ark of God, and pitched for it a tent. + +15:2 Then David said, None ought to carry the ark of God but the +Levites: for them hath the LORD chosen to carry the ark of God, and to +minister unto him for ever. + +15:3 And David gathered all Israel together to Jerusalem, to bring up +the ark of the LORD unto his place, which he had prepared for it. + +15:4 And David assembled the children of Aaron, and the Levites: 15:5 +Of the sons of Kohath; Uriel the chief, and his brethren an hundred +and twenty: 15:6 Of the sons of Merari; Asaiah the chief, and his +brethren two hundred and twenty: 15:7 Of the sons of Gershom; Joel the +chief and his brethren an hundred and thirty: 15:8 Of the sons of +Elizaphan; Shemaiah the chief, and his brethren two hundred: 15:9 Of +the sons of Hebron; Eliel the chief, and his brethren fourscore: 15:10 +Of the sons of Uzziel; Amminadab the chief, and his brethren an +hundred and twelve. + +15:11 And David called for Zadok and Abiathar the priests, and for the +Levites, for Uriel, Asaiah, and Joel, Shemaiah, and Eliel, and +Amminadab, 15:12 And said unto them, Ye are the chief of the fathers +of the Levites: sanctify yourselves, both ye and your brethren, that +ye may bring up the ark of the LORD God of Israel unto the place that +I have prepared for it. + +15:13 For because ye did it not at the first, the LORD our God made a +breach upon us, for that we sought him not after the due order. + +15:14 So the priests and the Levites sanctified themselves to bring up +the ark of the LORD God of Israel. + +15:15 And the children of the Levites bare the ark of God upon their +shoulders with the staves thereon, as Moses commanded according to the +word of the LORD. + +15:16 And David spake to the chief of the Levites to appoint their +brethren to be the singers with instruments of musick, psalteries and +harps and cymbals, sounding, by lifting up the voice with joy. + +15:17 So the Levites appointed Heman the son of Joel; and of his +brethren, Asaph the son of Berechiah; and of the sons of Merari their +brethren, Ethan the son of Kushaiah; 15:18 And with them their +brethren of the second degree, Zechariah, Ben, and Jaaziel, and +Shemiramoth, and Jehiel, and Unni, Eliab, and Benaiah, and Maaseiah, +and Mattithiah, and Elipheleh, and Mikneiah, and Obededom, and Jeiel, +the porters. + +15:19 So the singers, Heman, Asaph, and Ethan, were appointed to sound +with cymbals of brass; 15:20 And Zechariah, and Aziel, and +Shemiramoth, and Jehiel, and Unni, and Eliab, and Maaseiah, and +Benaiah, with psalteries on Alamoth; 15:21 And Mattithiah, and +Elipheleh, and Mikneiah, and Obededom, and Jeiel, and Azaziah, with +harps on the Sheminith to excel. + +15:22 And Chenaniah, chief of the Levites, was for song: he instructed +about the song, because he was skilful. + +15:23 And Berechiah and Elkanah were doorkeepers for the ark. + +15:24 And Shebaniah, and Jehoshaphat, and Nethaneel, and Amasai, and +Zechariah, and Benaiah, and Eliezer, the priests, did blow with the +trumpets before the ark of God: and Obededom and Jehiah were +doorkeepers for the ark. + +15:25 So David, and the elders of Israel, and the captains over +thousands, went to bring up the ark of the covenant of the LORD out of +the house of Obededom with joy. + +15:26 And it came to pass, when God helped the Levites that bare the +ark of the covenant of the LORD, that they offered seven bullocks and +seven rams. + +15:27 And David was clothed with a robe of fine linen, and all the +Levites that bare the ark, and the singers, and Chenaniah the master +of the song with the singers: David also had upon him an ephod of +linen. + +15:28 Thus all Israel brought up the ark of the covenant of the LORD +with shouting, and with sound of the cornet, and with trumpets, and +with cymbals, making a noise with psalteries and harps. + +15:29 And it came to pass, as the ark of the covenant of the LORD came +to the city of David, that Michal, the daughter of Saul looking out at +a window saw king David dancing and playing: and she despised him in +her heart. + +16:1 So they brought the ark of God, and set it in the midst of the +tent that David had pitched for it: and they offered burnt sacrifices +and peace offerings before God. + +16:2 And when David had made an end of offering the burnt offerings +and the peace offerings, he blessed the people in the name of the +LORD. + +16:3 And he dealt to every one of Israel, both man and woman, to every +one a loaf of bread, and a good piece of flesh, and a flagon of wine. + +16:4 And he appointed certain of the Levites to minister before the +ark of the LORD, and to record, and to thank and praise the LORD God +of Israel: 16:5 Asaph the chief, and next to him Zechariah, Jeiel, and +Shemiramoth, and Jehiel, and Mattithiah, and Eliab, and Benaiah, and +Obededom: and Jeiel with psalteries and with harps; but Asaph made a +sound with cymbals; 16:6 Benaiah also and Jahaziel the priests with +trumpets continually before the ark of the covenant of God. + +16:7 Then on that day David delivered first this psalm to thank the +LORD into the hand of Asaph and his brethren. + +16:8 Give thanks unto the LORD, call upon his name, make known his +deeds among the people. + +16:9 Sing unto him, sing psalms unto him, talk ye of all his wondrous +works. + +16:10 Glory ye in his holy name: let the heart of them rejoice that +seek the LORD. + +16:11 Seek the LORD and his strength, seek his face continually. + +16:12 Remember his marvellous works that he hath done, his wonders, +and the judgments of his mouth; 16:13 O ye seed of Israel his servant, +ye children of Jacob, his chosen ones. + +16:14 He is the LORD our God; his judgments are in all the earth. + +16:15 Be ye mindful always of his covenant; the word which he +commanded to a thousand generations; 16:16 Even of the covenant which +he made with Abraham, and of his oath unto Isaac; 16:17 And hath +confirmed the same to Jacob for a law, and to Israel for an +everlasting covenant, 16:18 Saying, Unto thee will I give the land of +Canaan, the lot of your inheritance; 16:19 When ye were but few, even +a few, and strangers in it. + +16:20 And when they went from nation to nation, and from one kingdom +to another people; 16:21 He suffered no man to do them wrong: yea, he +reproved kings for their sakes, 16:22 Saying, Touch not mine anointed, +and do my prophets no harm. + +16:23 Sing unto the LORD, all the earth; shew forth from day to day +his salvation. + +16:24 Declare his glory among the heathen; his marvellous works among +all nations. + +16:25 For great is the LORD, and greatly to be praised: he also is to +be feared above all gods. + +16:26 For all the gods of the people are idols: but the LORD made the +heavens. + +16:27 Glory and honour are in his presence; strength and gladness are +in his place. + +16:28 Give unto the LORD, ye kindreds of the people, give unto the +LORD glory and strength. + +16:29 Give unto the LORD the glory due unto his name: bring an +offering, and come before him: worship the LORD in the beauty of +holiness. + +16:30 Fear before him, all the earth: the world also shall be stable, +that it be not moved. + +16:31 Let the heavens be glad, and let the earth rejoice: and let men +say among the nations, The LORD reigneth. + +16:32 Let the sea roar, and the fulness thereof: let the fields +rejoice, and all that is therein. + +16:33 Then shall the trees of the wood sing out at the presence of the +LORD, because he cometh to judge the earth. + +16:34 O give thanks unto the LORD; for he is good; for his mercy +endureth for ever. + +16:35 And say ye, Save us, O God of our salvation, and gather us +together, and deliver us from the heathen, that we may give thanks to +thy holy name, and glory in thy praise. + +16:36 Blessed be the LORD God of Israel for ever and ever. And all the +people said, Amen, and praised the LORD. + +16:37 So he left there before the ark of the covenant of the LORD +Asaph and his brethren, to minister before the ark continually, as +every day's work required: 16:38 And Obededom with their brethren, +threescore and eight; Obededom also the son of Jeduthun and Hosah to +be porters: 16:39 And Zadok the priest, and his brethren the priests, +before the tabernacle of the LORD in the high place that was at +Gibeon, 16:40 To offer burnt offerings unto the LORD upon the altar of +the burnt offering continually morning and evening, and to do +according to all that is written in the law of the LORD, which he +commanded Israel; 16:41 And with them Heman and Jeduthun, and the rest +that were chosen, who were expressed by name, to give thanks to the +LORD, because his mercy endureth for ever; 16:42 And with them Heman +and Jeduthun with trumpets and cymbals for those that should make a +sound, and with musical instruments of God. And the sons of Jeduthun +were porters. + +16:43 And all the people departed every man to his house: and David +returned to bless his house. + +17:1 Now it came to pass, as David sat in his house, that David said +to Nathan the prophet, Lo, I dwell in an house of cedars, but the ark +of the covenant of the LORD remaineth under curtains. + +17:2 Then Nathan said unto David, Do all that is in thine heart; for +God is with thee. + +17:3 And it came to pass the same night, that the word of God came to +Nathan, saying, 17:4 Go and tell David my servant, Thus saith the +LORD, Thou shalt not build me an house to dwell in: 17:5 For I have +not dwelt in an house since the day that I brought up Israel unto this +day; but have gone from tent to tent, and from one tabernacle to +another. + +17:6 Wheresoever I have walked with all Israel, spake I a word to any +of the judges of Israel, whom I commanded to feed my people, saying, +Why have ye not built me an house of cedars? 17:7 Now therefore thus +shalt thou say unto my servant David, Thus saith the LORD of hosts, I +took thee from the sheepcote, even from following the sheep, that thou +shouldest be ruler over my people Israel: 17:8 And I have been with +thee whithersoever thou hast walked, and have cut off all thine +enemies from before thee, and have made thee a name like the name of +the great men that are in the earth. + +17:9 Also I will ordain a place for my people Israel, and will plant +them, and they shall dwell in their place, and shall be moved no more; +neither shall the children of wickedness waste them any more, as at +the beginning, 17:10 And since the time that I commanded judges to be +over my people Israel. Moreover I will subdue all thine enemies. +Furthermore I tell thee that the LORD will build thee an house. + +17:11 And it shall come to pass, when thy days be expired that thou +must go to be with thy fathers, that I will raise up thy seed after +thee, which shall be of thy sons; and I will establish his kingdom. + +17:12 He shall build me an house, and I will stablish his throne for +ever. + +17:13 I will be his father, and he shall be my son: and I will not +take my mercy away from him, as I took it from him that was before +thee: 17:14 But I will settle him in mine house and in my kingdom for +ever: and his throne shall be established for evermore. + +17:15 According to all these words, and according to all this vision, +so did Nathan speak unto David. + +17:16 And David the king came and sat before the LORD, and said, Who +am I, O LORD God, and what is mine house, that thou hast brought me +hitherto? 17:17 And yet this was a small thing in thine eyes, O God; +for thou hast also spoken of thy servant's house for a great while to +come, and hast regarded me according to the estate of a man of high +degree, O LORD God. + +17:18 What can David speak more to thee for the honour of thy servant? +for thou knowest thy servant. + +17:19 O LORD, for thy servant's sake, and according to thine own +heart, hast thou done all this greatness, in making known all these +great things. + +17:20 O LORD, there is none like thee, neither is there any God beside +thee, according to all that we have heard with our ears. + +17:21 And what one nation in the earth is like thy people Israel, whom +God went to redeem to be his own people, to make thee a name of +greatness and terribleness, by driving out nations from before thy +people whom thou hast redeemed out of Egypt? 17:22 For thy people +Israel didst thou make thine own people for ever; and thou, LORD, +becamest their God. + +17:23 Therefore now, LORD, let the thing that thou hast spoken +concerning thy servant and concerning his house be established for +ever, and do as thou hast said. + +17:24 Let it even be established, that thy name may be magnified for +ever, saying, The LORD of hosts is the God of Israel, even a God to +Israel: and let the house of David thy servant be established before +thee. + +17:25 For thou, O my God, hast told thy servant that thou wilt build +him an house: therefore thy servant hath found in his heart to pray +before thee. + +17:26 And now, LORD, thou art God, and hast promised this goodness +unto thy servant: 17:27 Now therefore let it please thee to bless the +house of thy servant, that it may be before thee for ever: for thou +blessest, O LORD, and it shall be blessed for ever. + +18:1 Now after this it came to pass, that David smote the Philistines, +and subdued them, and took Gath and her towns out of the hand of the +Philistines. + +18:2 And he smote Moab; and the Moabites became David's servants, and +brought gifts. + +18:3 And David smote Hadarezer king of Zobah unto Hamath, as he went +to stablish his dominion by the river Euphrates. + +18:4 And David took from him a thousand chariots, and seven thousand +horsemen, and twenty thousand footmen: David also houghed all the +chariot horses, but reserved of them an hundred chariots. + +18:5 And when the Syrians of Damascus came to help Hadarezer king of +Zobah, David slew of the Syrians two and twenty thousand men. + +18:6 Then David put garrisons in Syriadamascus; and the Syrians became +David's servants, and brought gifts. Thus the LORD preserved David +whithersoever he went. + +18:7 And David took the shields of gold that were on the servants of +Hadarezer, and brought them to Jerusalem. + +18:8 Likewise from Tibhath, and from Chun, cities of Hadarezer, +brought David very much brass, wherewith Solomon made the brasen sea, +and the pillars, and the vessels of brass. + +18:9 Now when Tou king of Hamath heard how David had smitten all the +host of Hadarezer king of Zobah; 18:10 He sent Hadoram his son to king +David, to enquire of his welfare, and to congratulate him, because he +had fought against Hadarezer, and smitten him; (for Hadarezer had war +with Tou;) and with him all manner of vessels of gold and silver and +brass. + +18:11 Them also king David dedicated unto the LORD, with the silver +and the gold that he brought from all these nations; from Edom, and +from Moab, and from the children of Ammon, and from the Philistines, +and from Amalek. + +18:12 Moreover Abishai the son of Zeruiah slew of the Edomites in the +valley of salt eighteen thousand. + +18:13 And he put garrisons in Edom; and all the Edomites became +David's servants. Thus the LORD preserved David whithersoever he went. + +18:14 So David reigned over all Israel, and executed judgment and +justice among all his people. + +18:15 And Joab the son of Zeruiah was over the host; and Jehoshaphat +the son of Ahilud, recorder. + +18:16 And Zadok the son of Ahitub, and Abimelech the son of Abiathar, +were the priests; and Shavsha was scribe; 18:17 And Benaiah the son of +Jehoiada was over the Cherethites and the Pelethites; and the sons of +David were chief about the king. + +19:1 Now it came to pass after this, that Nahash the king of the +children of Ammon died, and his son reigned in his stead. + +19:2 And David said, I will shew kindness unto Hanun the son of +Nahash, because his father shewed kindness to me. And David sent +messengers to comfort him concerning his father. So the servants of +David came into the land of the children of Ammon to Hanun, to comfort +him. + +19:3 But the princes of the children of Ammon said to Hanun, Thinkest +thou that David doth honour thy father, that he hath sent comforters +unto thee? are not his servants come unto thee for to search, and to +overthrow, and to spy out the land? 19:4 Wherefore Hanun took David's +servants, and shaved them, and cut off their garments in the midst +hard by their buttocks, and sent them away. + +19:5 Then there went certain, and told David how the men were served. +And he sent to meet them: for the men were greatly ashamed. And the +king said, Tarry at Jericho until your beards be grown, and then +return. + +19:6 And when the children of Ammon saw that they had made themselves +odious to David, Hanun and the children of Ammon sent a thousand +talents of silver to hire them chariots and horsemen out of +Mesopotamia, and out of Syriamaachah, and out of Zobah. + +19:7 So they hired thirty and two thousand chariots, and the king of +Maachah and his people; who came and pitched before Medeba. And the +children of Ammon gathered themselves together from their cities, and +came to battle. + +19:8 And when David heard of it, he sent Joab, and all the host of the +mighty men. + +19:9 And the children of Ammon came out, and put the battle in array +before the gate of the city: and the kings that were come were by +themselves in the field. + +19:10 Now when Joab saw that the battle was set against him before and +behind, he chose out of all the choice of Israel, and put them in +array against the Syrians. + +19:11 And the rest of the people he delivered unto the hand of Abishai +his brother, and they set themselves in array against the children of +Ammon. + +19:12 And he said, If the Syrians be too strong for me, then thou +shalt help me: but if the children of Ammon be too strong for thee, +then I will help thee. + +19:13 Be of good courage, and let us behave ourselves valiantly for +our people, and for the cities of our God: and let the LORD do that +which is good in his sight. + +19:14 So Joab and the people that were with him drew nigh before the +Syrians unto the battle; and they fled before him. + +19:15 And when the children of Ammon saw that the Syrians were fled, +they likewise fled before Abishai his brother, and entered into the +city. Then Joab came to Jerusalem. + +19:16 And when the Syrians saw that they were put to the worse before +Israel, they sent messengers, and drew forth the Syrians that were +beyond the river: and Shophach the captain of the host of Hadarezer +went before them. + +19:17 And it was told David; and he gathered all Israel, and passed +over Jordan, and came upon them, and set the battle in array against +them. So when David had put the battle in array against the Syrians, +they fought with him. + +19:18 But the Syrians fled before Israel; and David slew of the +Syrians seven thousand men which fought in chariots, and forty +thousand footmen, and killed Shophach the captain of the host. + +19:19 And when the servants of Hadarezer saw that they were put to the +worse before Israel, they made peace with David, and became his +servants: neither would the Syrians help the children of Ammon any +more. + +20:1 And it came to pass, that after the year was expired, at the time +that kings go out to battle, Joab led forth the power of the army, and +wasted the country of the children of Ammon, and came and besieged +Rabbah. But David tarried at Jerusalem. And Joab smote Rabbah, and +destroyed it. + +20:2 And David took the crown of their king from off his head, and +found it to weigh a talent of gold, and there were precious stones in +it; and it was set upon David's head: and he brought also exceeding +much spoil out of the city. + +20:3 And he brought out the people that were in it, and cut them with +saws, and with harrows of iron, and with axes. Even so dealt David +with all the cities of the children of Ammon. And David and all the +people returned to Jerusalem. + +20:4 And it came to pass after this, that there arose war at Gezer +with the Philistines; at which time Sibbechai the Hushathite slew +Sippai, that was of the children of the giant: and they were subdued. + +20:5 And there was war again with the Philistines; and Elhanan the son +of Jair slew Lahmi the brother of Goliath the Gittite, whose spear +staff was like a weaver's beam. + +20:6 And yet again there was war at Gath, where was a man of great +stature, whose fingers and toes were four and twenty, six on each +hand, and six on each foot and he also was the son of the giant. + +20:7 But when he defied Israel, Jonathan the son of Shimea David's +brother slew him. + +20:8 These were born unto the giant in Gath; and they fell by the hand +of David, and by the hand of his servants. + +21:1 And Satan stood up against Israel, and provoked David to number +Israel. + +21:2 And David said to Joab and to the rulers of the people, Go, +number Israel from Beersheba even to Dan; and bring the number of them +to me, that I may know it. + +21:3 And Joab answered, The LORD make his people an hundred times so +many more as they be: but, my lord the king, are they not all my +lord's servants? why then doth my lord require this thing? why will +he be a cause of trespass to Israel? 21:4 Nevertheless the king's +word prevailed against Joab. Wherefore Joab departed, and went +throughout all Israel, and came to Jerusalem. + +21:5 And Joab gave the sum of the number of the people unto David. And +all they of Israel were a thousand thousand and an hundred thousand +men that drew sword: and Judah was four hundred threescore and ten +thousand men that drew sword. + +21:6 But Levi and Benjamin counted he not among them: for the king's +word was abominable to Joab. + +21:7 And God was displeased with this thing; therefore he smote +Israel. + +21:8 And David said unto God, I have sinned greatly, because I have +done this thing: but now, I beseech thee, do away the iniquity of thy +servant; for I have done very foolishly. + +21:9 And the LORD spake unto Gad, David's seer, saying, 21:10 Go and +tell David, saying, Thus saith the LORD, I offer thee three things: +choose thee one of them, that I may do it unto thee. + +21:11 So Gad came to David, and said unto him, Thus saith the LORD, +Choose thee 21:12 Either three years' famine; or three months to be +destroyed before thy foes, while that the sword of thine enemies +overtaketh thee; or else three days the sword of the LORD, even the +pestilence, in the land, and the angel of the LORD destroying +throughout all the coasts of Israel. Now therefore advise thyself what +word I shall bring again to him that sent me. + +21:13 And David said unto Gad, I am in a great strait: let me fall now +into the hand of the LORD; for very great are his mercies: but let me +not fall into the hand of man. + +21:14 So the LORD sent pestilence upon Israel: and there fell of +Israel seventy thousand men. + +21:15 And God sent an angel unto Jerusalem to destroy it: and as he +was destroying, the LORD beheld, and he repented him of the evil, and +said to the angel that destroyed, It is enough, stay now thine hand. +And the angel of the LORD stood by the threshingfloor of Ornan the +Jebusite. + +21:16 And David lifted up his eyes, and saw the angel of the LORD +stand between the earth and the heaven, having a drawn sword in his +hand stretched out over Jerusalem. Then David and the elders of +Israel, who were clothed in sackcloth, fell upon their faces. + +21:17 And David said unto God, Is it not I that commanded the people +to be numbered? even I it is that have sinned and done evil indeed; +but as for these sheep, what have they done? let thine hand, I pray +thee, O LORD my God, be on me, and on my father's house; but not on +thy people, that they should be plagued. + +21:18 Then the angel of the LORD commanded Gad to say to David, that +David should go up, and set up an altar unto the LORD in the +threshingfloor of Ornan the Jebusite. + +21:19 And David went up at the saying of Gad, which he spake in the +name of the LORD. + +21:20 And Ornan turned back, and saw the angel; and his four sons with +him hid themselves. Now Ornan was threshing wheat. + +21:21 And as David came to Ornan, Ornan looked and saw David, and went +out of the threshingfloor, and bowed himself to David with his face to +the ground. + +21:22 Then David said to Ornan, Grant me the place of this +threshingfloor, that I may build an altar therein unto the LORD: thou +shalt grant it me for the full price: that the plague may be stayed +from the people. + +21:23 And Ornan said unto David, Take it to thee, and let my lord the +king do that which is good in his eyes: lo, I give thee the oxen also +for burnt offerings, and the threshing instruments for wood, and the +wheat for the meat offering; I give it all. + +21:24 And king David said to Ornan, Nay; but I will verily buy it for +the full price: for I will not take that which is thine for the LORD, +nor offer burnt offerings without cost. + +21:25 So David gave to Ornan for the place six hundred shekels of gold +by weight. + +21:26 And David built there an altar unto the LORD, and offered burnt +offerings and peace offerings, and called upon the LORD; and he +answered him from heaven by fire upon the altar of burnt offering. + +21:27 And the LORD commanded the angel; and he put up his sword again +into the sheath thereof. + +21:28 At that time when David saw that the LORD had answered him in +the threshingfloor of Ornan the Jebusite, then he sacrificed there. + +21:29 For the tabernacle of the LORD, which Moses made in the +wilderness, and the altar of the burnt offering, were at that season +in the high place at Gibeon. + +21:30 But David could not go before it to enquire of God: for he was +afraid because of the sword of the angel of the LORD. + +22:1 Then David said, This is the house of the LORD God, and this is +the altar of the burnt offering for Israel. + +22:2 And David commanded to gather together the strangers that were in +the land of Israel; and he set masons to hew wrought stones to build +the house of God. + +22:3 And David prepared iron in abundance for the nails for the doors +of the gates, and for the joinings; and brass in abundance without +weight; 22:4 Also cedar trees in abundance: for the Zidonians and they +of Tyre brought much cedar wood to David. + +22:5 And David said, Solomon my son is young and tender, and the house +that is to be builded for the LORD must be exceeding magnifical, of +fame and of glory throughout all countries: I will therefore now make +preparation for it. So David prepared abundantly before his death. + +22:6 Then he called for Solomon his son, and charged him to build an +house for the LORD God of Israel. + +22:7 And David said to Solomon, My son, as for me, it was in my mind +to build an house unto the name of the LORD my God: 22:8 But the word +of the LORD came to me, saying, Thou hast shed blood abundantly, and +hast made great wars: thou shalt not build an house unto my name, +because thou hast shed much blood upon the earth in my sight. + +22:9 Behold, a son shall be born to thee, who shall be a man of rest; +and I will give him rest from all his enemies round about: for his +name shall be Solomon, and I will give peace and quietness unto Israel +in his days. + +22:10 He shall build an house for my name; and he shall be my son, and +I will be his father; and I will establish the throne of his kingdom +over Israel for ever. + +22:11 Now, my son, the LORD be with thee; and prosper thou, and build +the house of the LORD thy God, as he hath said of thee. + +22:12 Only the LORD give thee wisdom and understanding, and give thee +charge concerning Israel, that thou mayest keep the law of the LORD +thy God. + +22:13 Then shalt thou prosper, if thou takest heed to fulfil the +statutes and judgments which the LORD charged Moses with concerning +Israel: be strong, and of good courage; dread not, nor be dismayed. + +22:14 Now, behold, in my trouble I have prepared for the house of the +LORD an hundred thousand talents of gold, and a thousand thousand +talents of silver; and of brass and iron without weight; for it is in +abundance: timber also and stone have I prepared; and thou mayest add +thereto. + +22:15 Moreover there are workmen with thee in abundance, hewers and +workers of stone and timber, and all manner of cunning men for every +manner of work. + +22:16 Of the gold, the silver, and the brass, and the iron, there is +no number. Arise therefore, and be doing, and the LORD be with thee. + +22:17 David also commanded all the princes of Israel to help Solomon +his son, saying, 22:18 Is not the LORD your God with you? and hath he +not given you rest on every side? for he hath given the inhabitants of +the land into mine hand; and the land is subdued before the LORD, and +before his people. + +22:19 Now set your heart and your soul to seek the LORD your God; +arise therefore, and build ye the sanctuary of the LORD God, to bring +the ark of the covenant of the LORD, and the holy vessels of God, into +the house that is to be built to the name of the LORD. + +23:1 So when David was old and full of days, he made Solomon his son +king over Israel. + +23:2 And he gathered together all the princes of Israel, with the +priests and the Levites. + +23:3 Now the Levites were numbered from the age of thirty years and +upward: and their number by their polls, man by man, was thirty and +eight thousand. + +23:4 Of which, twenty and four thousand were to set forward the work +of the house of the LORD; and six thousand were officers and judges: +23:5 Moreover four thousand were porters; and four thousand praised +the LORD with the instruments which I made, said David, to praise +therewith. + +23:6 And David divided them into courses among the sons of Levi, +namely, Gershon, Kohath, and Merari. + +23:7 Of the Gershonites were, Laadan, and Shimei. + +23:8 The sons of Laadan; the chief was Jehiel, and Zetham, and Joel, +three. + +23:9 The sons of Shimei; Shelomith, and Haziel, and Haran, three. +These were the chief of the fathers of Laadan. + +23:10 And the sons of Shimei were, Jahath, Zina, and Jeush, and +Beriah. + +These four were the sons of Shimei. + +23:11 And Jahath was the chief, and Zizah the second: but Jeush and +Beriah had not many sons; therefore they were in one reckoning, +according to their father's house. + +23:12 The sons of Kohath; Amram, Izhar, Hebron, and Uzziel, four. + +23:13 The sons of Amram; Aaron and Moses: and Aaron was separated, +that he should sanctify the most holy things, he and his sons for +ever, to burn incense before the LORD, to minister unto him, and to +bless in his name for ever. + +23:14 Now concerning Moses the man of God, his sons were named of the +tribe of Levi. + +23:15 The sons of Moses were, Gershom, and Eliezer. + +23:16 Of the sons of Gershom, Shebuel was the chief. + +23:17 And the sons of Eliezer were, Rehabiah the chief. And Eliezer +had none other sons; but the sons of Rehabiah were very many. + +23:18 Of the sons of Izhar; Shelomith the chief. + +23:19 Of the sons of Hebron; Jeriah the first, Amariah the second, +Jahaziel the third, and Jekameam the fourth. + +23:20 Of the sons of Uzziel; Micah the first and Jesiah the second. + +23:21 The sons of Merari; Mahli, and Mushi. The sons of Mahli; +Eleazar, and Kish. + +23:22 And Eleazar died, and had no sons, but daughters: and their +brethren the sons of Kish took them. + +23:23 The sons of Mushi; Mahli, and Eder, and Jeremoth, three. + +23:24 These were the sons of Levi after the house of their fathers; +even the chief of the fathers, as they were counted by number of names +by their polls, that did the work for the service of the house of the +LORD, from the age of twenty years and upward. + +23:25 For David said, The LORD God of Israel hath given rest unto his +people, that they may dwell in Jerusalem for ever: 23:26 And also unto +the Levites; they shall no more carry the tabernacle, nor any vessels +of it for the service thereof. + +23:27 For by the last words of David the Levites were numbered from +twenty years old and above: 23:28 Because their office was to wait on +the sons of Aaron for the service of the house of the LORD, in the +courts, and in the chambers, and in the purifying of all holy things, +and the work of the service of the house of God; 23:29 Both for the +shewbread, and for the fine flour for meat offering, and for the +unleavened cakes, and for that which is baked in the pan, and for that +which is fried, and for all manner of measure and size; 23:30 And to +stand every morning to thank and praise the LORD, and likewise at +even: 23:31 And to offer all burnt sacrifices unto the LORD in the +sabbaths, in the new moons, and on the set feasts, by number, +according to the order commanded unto them, continually before the +LORD: 23:32 And that they should keep the charge of the tabernacle of +the congregation, and the charge of the holy place, and the charge of +the sons of Aaron their brethren, in the service of the house of the +LORD. + +24:1 Now these are the divisions of the sons of Aaron. The sons of +Aaron; Nadab, and Abihu, Eleazar, and Ithamar. + +24:2 But Nadab and Abihu died before their father, and had no +children: therefore Eleazar and Ithamar executed the priest's office. + +24:3 And David distributed them, both Zadok of the sons of Eleazar, +and Ahimelech of the sons of Ithamar, according to their offices in +their service. + +24:4 And there were more chief men found of the sons of Eleazar than +of the sons of Ithamar, and thus were they divided. Among the sons of +Eleazar there were sixteen chief men of the house of their fathers, +and eight among the sons of Ithamar according to the house of their +fathers. + +24:5 Thus were they divided by lot, one sort with another; for the +governors of the sanctuary, and governors of the house of God, were of +the sons of Eleazar, and of the sons of Ithamar. + +24:6 And Shemaiah the son of Nethaneel the scribe, one of the Levites, +wrote them before the king, and the princes, and Zadok the priest, and +Ahimelech the son of Abiathar, and before the chief of the fathers of +the priests and Levites: one principal household being taken for +Eleazar, and one taken for Ithamar. + +24:7 Now the first lot came forth to Jehoiarib, the second to Jedaiah, +24:8 The third to Harim, the fourth to Seorim, 24:9 The fifth to +Malchijah, the sixth to Mijamin, 24:10 The seventh to Hakkoz, the +eighth to Abijah, 24:11 The ninth to Jeshuah, the tenth to Shecaniah, +24:12 The eleventh to Eliashib, the twelfth to Jakim, 24:13 The +thirteenth to Huppah, the fourteenth to Jeshebeab, 24:14 The fifteenth +to Bilgah, the sixteenth to Immer, 24:15 The seventeenth to Hezir, the +eighteenth to Aphses, 24:16 The nineteenth to Pethahiah, the twentieth +to Jehezekel, 24:17 The one and twentieth to Jachin, the two and +twentieth to Gamul, 24:18 The three and twentieth to Delaiah, the four +and twentieth to Maaziah. + +24:19 These were the orderings of them in their service to come into +the house of the LORD, according to their manner, under Aaron their +father, as the LORD God of Israel had commanded him. + +24:20 And the rest of the sons of Levi were these: Of the sons of +Amram; Shubael: of the sons of Shubael; Jehdeiah. + +24:21 Concerning Rehabiah: of the sons of Rehabiah, the first was +Isshiah. + +24:22 Of the Izharites; Shelomoth: of the sons of Shelomoth; Jahath. + +24:23 And the sons of Hebron; Jeriah the first, Amariah the second, +Jahaziel the third, Jekameam the fourth. + +24:24 Of the sons of Uzziel; Michah: of the sons of Michah; Shamir. + +24:25 The brother of Michah was Isshiah: of the sons of Isshiah; +Zechariah. + +24:26 The sons of Merari were Mahli and Mushi: the sons of Jaaziah; +Beno. + +24:27 The sons of Merari by Jaaziah; Beno, and Shoham, and Zaccur, and +Ibri. + +24:28 Of Mahli came Eleazar, who had no sons. + +24:29 Concerning Kish: the son of Kish was Jerahmeel. + +24:30 The sons also of Mushi; Mahli, and Eder, and Jerimoth. These +were the sons of the Levites after the house of their fathers. + +24:31 These likewise cast lots over against their brethren the sons of +Aaron in the presence of David the king, and Zadok, and Ahimelech, and +the chief of the fathers of the priests and Levites, even the +principal fathers over against their younger brethren. + +25:1 Moreover David and the captains of the host separated to the +service of the sons of Asaph, and of Heman, and of Jeduthun, who +should prophesy with harps, with psalteries, and with cymbals: and the +number of the workmen according to their service was: 25:2 Of the sons +of Asaph; Zaccur, and Joseph, and Nethaniah, and Asarelah, the sons of +Asaph under the hands of Asaph, which prophesied according to the +order of the king. + +25:3 Of Jeduthun: the sons of Jeduthun; Gedaliah, and Zeri, and +Jeshaiah, Hashabiah, and Mattithiah, six, under the hands of their +father Jeduthun, who prophesied with a harp, to give thanks and to +praise the LORD. + +25:4 Of Heman: the sons of Heman: Bukkiah, Mattaniah, Uzziel, Shebuel, +and Jerimoth, Hananiah, Hanani, Eliathah, Giddalti, and Romamtiezer, +Joshbekashah, Mallothi, Hothir, and Mahazioth: 25:5 All these were the +sons of Heman the king's seer in the words of God, to lift up the +horn. And God gave to Heman fourteen sons and three daughters. + +25:6 All these were under the hands of their father for song in the +house of the LORD, with cymbals, psalteries, and harps, for the +service of the house of God, according to the king's order to Asaph, +Jeduthun, and Heman. + +25:7 So the number of them, with their brethren that were instructed +in the songs of the LORD, even all that were cunning, was two hundred +fourscore and eight. + +25:8 And they cast lots, ward against ward, as well the small as the +great, the teacher as the scholar. + +25:9 Now the first lot came forth for Asaph to Joseph: the second to +Gedaliah, who with his brethren and sons were twelve: 25:10 The third +to Zaccur, he, his sons, and his brethren, were twelve: 25:11 The +fourth to Izri, he, his sons, and his brethren, were twelve: 25:12 The +fifth to Nethaniah, he, his sons, and his brethren, were twelve: 25:13 +The sixth to Bukkiah, he, his sons, and his brethren, were twelve: +25:14 The seventh to Jesharelah, he, his sons, and his brethren, were +twelve: 25:15 The eighth to Jeshaiah, he, his sons, and his brethren, +were twelve: 25:16 The ninth to Mattaniah, he, his sons, and his +brethren, were twelve: 25:17 The tenth to Shimei, he, his sons, and +his brethren, were twelve: 25:18 The eleventh to Azareel, he, his +sons, and his brethren, were twelve: 25:19 The twelfth to Hashabiah, +he, his sons, and his brethren, were twelve: 25:20 The thirteenth to +Shubael, he, his sons, and his brethren, were twelve: 25:21 The +fourteenth to Mattithiah, he, his sons, and his brethren, were twelve: +25:22 The fifteenth to Jeremoth, he, his sons, and his brethren, were +twelve: 25:23 The sixteenth to Hananiah, he, his sons, and his +brethren, were twelve: 25:24 The seventeenth to Joshbekashah, he, his +sons, and his brethren, were twelve: 25:25 The eighteenth to Hanani, +he, his sons, and his brethren, were twelve: 25:26 The nineteenth to +Mallothi, he, his sons, and his brethren, were twelve: 25:27 The +twentieth to Eliathah, he, his sons, and his brethren, were twelve: +25:28 The one and twentieth to Hothir, he, his sons, and his brethren, +were twelve: 25:29 The two and twentieth to Giddalti, he, his sons, +and his brethren, were twelve: 25:30 The three and twentieth to +Mahazioth, he, his sons, and his brethren, were twelve: 25:31 The four +and twentieth to Romamtiezer, he, his sons, and his brethren, were +twelve. + +26:1 Concerning the divisions of the porters: Of the Korhites was +Meshelemiah the son of Kore, of the sons of Asaph. + +26:2 And the sons of Meshelemiah were, Zechariah the firstborn, +Jediael the second, Zebadiah the third, Jathniel the fourth, 26:3 Elam +the fifth, Jehohanan the sixth, Elioenai the seventh. + +26:4 Moreover the sons of Obededom were, Shemaiah the firstborn, +Jehozabad the second, Joah the third, and Sacar the fourth, and +Nethaneel the fifth. + +26:5 Ammiel the sixth, Issachar the seventh, Peulthai the eighth: for +God blessed him. + +26:6 Also unto Shemaiah his son were sons born, that ruled throughout +the house of their father: for they were mighty men of valour. + +26:7 The sons of Shemaiah; Othni, and Rephael, and Obed, Elzabad, +whose brethren were strong men, Elihu, and Semachiah. + +26:8 All these of the sons of Obededom: they and their sons and their +brethren, able men for strength for the service, were threescore and +two of Obededom. + +26:9 And Meshelemiah had sons and brethren, strong men, eighteen. + +26:10 Also Hosah, of the children of Merari, had sons; Simri the +chief, (for though he was not the firstborn, yet his father made him +the chief;) 26:11 Hilkiah the second, Tebaliah the third, Zechariah +the fourth: all the sons and brethren of Hosah were thirteen. + +26:12 Among these were the divisions of the porters, even among the +chief men, having wards one against another, to minister in the house +of the LORD. + +26:13 And they cast lots, as well the small as the great, according to +the house of their fathers, for every gate. + +26:14 And the lot eastward fell to Shelemiah. Then for Zechariah his +son, a wise counsellor, they cast lots; and his lot came out +northward. + +26:15 To Obededom southward; and to his sons the house of Asuppim. + +26:16 To Shuppim and Hosah the lot came forth westward, with the gate +Shallecheth, by the causeway of the going up, ward against ward. + +26:17 Eastward were six Levites, northward four a day, southward four +a day, and toward Asuppim two and two. + +26:18 At Parbar westward, four at the causeway, and two at Parbar. + +26:19 These are the divisions of the porters among the sons of Kore, +and among the sons of Merari. + +26:20 And of the Levites, Ahijah was over the treasures of the house +of God, and over the treasures of the dedicated things. + +26:21 As concerning the sons of Laadan; the sons of the Gershonite +Laadan, chief fathers, even of Laadan the Gershonite, were Jehieli. + +26:22 The sons of Jehieli; Zetham, and Joel his brother, which were +over the treasures of the house of the LORD. + +26:23 Of the Amramites, and the Izharites, the Hebronites, and the +Uzzielites: 26:24 And Shebuel the son of Gershom, the son of Moses, +was ruler of the treasures. + +26:25 And his brethren by Eliezer; Rehabiah his son, and Jeshaiah his +son, and Joram his son, and Zichri his son, and Shelomith his son. + +26:26 Which Shelomith and his brethren were over all the treasures of +the dedicated things, which David the king, and the chief fathers, the +captains over thousands and hundreds, and the captains of the host, +had dedicated. + +26:27 Out of the spoils won in battles did they dedicate to maintain +the house of the LORD. + +26:28 And all that Samuel the seer, and Saul the son of Kish, and +Abner the son of Ner, and Joab the son of Zeruiah, had dedicated; and +whosoever had dedicated any thing, it was under the hand of Shelomith, +and of his brethren. + +26:29 Of the Izharites, Chenaniah and his sons were for the outward +business over Israel, for officers and judges. + +26:30 And of the Hebronites, Hashabiah and his brethren, men of +valour, a thousand and seven hundred, were officers among them of +Israel on this side Jordan westward in all the business of the LORD, +and in the service of the king. + +26:31 Among the Hebronites was Jerijah the chief, even among the +Hebronites, according to the generations of his fathers. In the +fortieth year of the reign of David they were sought for, and there +were found among them mighty men of valour at Jazer of Gilead. + +26:32 And his brethren, men of valour, were two thousand and seven +hundred chief fathers, whom king David made rulers over the +Reubenites, the Gadites, and the half tribe of Manasseh, for every +matter pertaining to God, and affairs of the king. + +27:1 Now the children of Israel after their number, to wit, the chief +fathers and captains of thousands and hundreds, and their officers +that served the king in any matter of the courses, which came in and +went out month by month throughout all the months of the year, of +every course were twenty and four thousand. + +27:2 Over the first course for the first month was Jashobeam the son +of Zabdiel: and in his course were twenty and four thousand. + +27:3 Of the children of Perez was the chief of all the captains of the +host for the first month. + +27:4 And over the course of the second month was Dodai an Ahohite, and +of his course was Mikloth also the ruler: in his course likewise were +twenty and four thousand. + +27:5 The third captain of the host for the third month was Benaiah the +son of Jehoiada, a chief priest: and in his course were twenty and +four thousand. + +27:6 This is that Benaiah, who was mighty among the thirty, and above +the thirty: and in his course was Ammizabad his son. + +27:7 The fourth captain for the fourth month was Asahel the brother of +Joab, and Zebadiah his son after him: and in his course were twenty +and four thousand. + +27:8 The fifth captain for the fifth month was Shamhuth the Izrahite: +and in his course were twenty and four thousand. + +27:9 The sixth captain for the sixth month was Ira the son of Ikkesh +the Tekoite: and in his course were twenty and four thousand. + +27:10 The seventh captain for the seventh month was Helez the +Pelonite, of the children of Ephraim: and in his course were twenty +and four thousand. + +27:11 The eighth captain for the eighth month was Sibbecai the +Hushathite, of the Zarhites: and in his course were twenty and four +thousand. + +27:12 The ninth captain for the ninth month was Abiezer the +Anetothite, of the Benjamites: and in his course were twenty and four +thousand. + +27:13 The tenth captain for the tenth month was Maharai the +Netophathite, of the Zarhites: and in his course were twenty and four +thousand. + +27:14 The eleventh captain for the eleventh month was Benaiah the +Pirathonite, of the children of Ephraim: and in his course were twenty +and four thousand. + +27:15 The twelfth captain for the twelfth month was Heldai the +Netophathite, of Othniel: and in his course were twenty and four +thousand. + +27:16 Furthermore over the tribes of Israel: the ruler of the +Reubenites was Eliezer the son of Zichri: of the Simeonites, +Shephatiah the son of Maachah: 27:17 Of the Levites, Hashabiah the son +of Kemuel: of the Aaronites, Zadok: 27:18 Of Judah, Elihu, one of the +brethren of David: of Issachar, Omri the son of Michael: 27:19 Of +Zebulun, Ishmaiah the son of Obadiah: of Naphtali, Jerimoth the son of +Azriel: 27:20 Of the children of Ephraim, Hoshea the son of Azaziah: +of the half tribe of Manasseh, Joel the son of Pedaiah: 27:21 Of the +half tribe of Manasseh in Gilead, Iddo the son of Zechariah: of +Benjamin, Jaasiel the son of Abner: 27:22 Of Dan, Azareel the son of +Jeroham. These were the princes of the tribes of Israel. + +27:23 But David took not the number of them from twenty years old and +under: because the LORD had said he would increase Israel like to the +stars of the heavens. + +27:24 Joab the son of Zeruiah began to number, but he finished not, +because there fell wrath for it against Israel; neither was the number +put in the account of the chronicles of king David. + +27:25 And over the king's treasures was Azmaveth the son of Adiel: and +over the storehouses in the fields, in the cities, and in the +villages, and in the castles, was Jehonathan the son of Uzziah: 27:26 +And over them that did the work of the field for tillage of the ground +was Ezri the son of Chelub: 27:27 And over the vineyards was Shimei +the Ramathite: over the increase of the vineyards for the wine cellars +was Zabdi the Shiphmite: 27:28 And over the olive trees and the +sycomore trees that were in the low plains was Baalhanan the Gederite: +and over the cellars of oil was Joash: 27:29 And over the herds that +fed in Sharon was Shitrai the Sharonite: and over the herds that were +in the valleys was Shaphat the son of Adlai: 27:30 Over the camels +also was Obil the Ishmaelite: and over the asses was Jehdeiah the +Meronothite: 27:31 And over the flocks was Jaziz the Hagerite. All +these were the rulers of the substance which was king David's. + +27:32 Also Jonathan David's uncle was a counsellor, a wise man, and a +scribe: and Jehiel the son of Hachmoni was with the king's sons: 27:33 +And Ahithophel was the king's counsellor: and Hushai the Archite was +the king's companion: 27:34 And after Ahithophel was Jehoiada the son +of Benaiah, and Abiathar: and the general of the king's army was Joab. + +28:1 And David assembled all the princes of Israel, the princes of the +tribes, and the captains of the companies that ministered to the king +by course, and the captains over the thousands, and captains over the +hundreds, and the stewards over all the substance and possession of +the king, and of his sons, with the officers, and with the mighty men, +and with all the valiant men, unto Jerusalem. + +28:2 Then David the king stood up upon his feet, and said, Hear me, my +brethren, and my people: As for me, I had in mine heart to build an +house of rest for the ark of the covenant of the LORD, and for the +footstool of our God, and had made ready for the building: 28:3 But +God said unto me, Thou shalt not build an house for my name, because +thou hast been a man of war, and hast shed blood. + +28:4 Howbeit the LORD God of Israel chose me before all the house of +my father to be king over Israel for ever: for he hath chosen Judah to +be the ruler; and of the house of Judah, the house of my father; and +among the sons of my father he liked me to make me king over all +Israel: 28:5 And of all my sons, (for the LORD hath given me many +sons,) he hath chosen Solomon my son to sit upon the throne of the +kingdom of the LORD over Israel. + +28:6 And he said unto me, Solomon thy son, he shall build my house and +my courts: for I have chosen him to be my son, and I will be his +father. + +28:7 Moreover I will establish his kingdom for ever, if he be constant +to do my commandments and my judgments, as at this day. + +28:8 Now therefore in the sight of all Israel the congregation of the +LORD, and in the audience of our God, keep and seek for all the +commandments of the LORD your God: that ye may possess this good land, +and leave it for an inheritance for your children after you for ever. + +28:9 And thou, Solomon my son, know thou the God of thy father, and +serve him with a perfect heart and with a willing mind: for the LORD +searcheth all hearts, and understandeth all the imaginations of the +thoughts: if thou seek him, he will be found of thee; but if thou +forsake him, he will cast thee off for ever. + +28:10 Take heed now; for the LORD hath chosen thee to build an house +for the sanctuary: be strong, and do it. + +28:11 Then David gave to Solomon his son the pattern of the porch, and +of the houses thereof, and of the treasuries thereof, and of the upper +chambers thereof, and of the inner parlours thereof, and of the place +of the mercy seat, 28:12 And the pattern of all that he had by the +spirit, of the courts of the house of the LORD, and of all the +chambers round about, of the treasuries of the house of God, and of +the treasuries of the dedicated things: 28:13 Also for the courses of +the priests and the Levites, and for all the work of the service of +the house of the LORD, and for all the vessels of service in the house +of the LORD. + +28:14 He gave of gold by weight for things of gold, for all +instruments of all manner of service; silver also for all instruments +of silver by weight, for all instruments of every kind of service: +28:15 Even the weight for the candlesticks of gold, and for their +lamps of gold, by weight for every candlestick, and for the lamps +thereof: and for the candlesticks of silver by weight, both for the +candlestick, and also for the lamps thereof, according to the use of +every candlestick. + +28:16 And by weight he gave gold for the tables of shewbread, for +every table; and likewise silver for the tables of silver: 28:17 Also +pure gold for the fleshhooks, and the bowls, and the cups: and for the +golden basons he gave gold by weight for every bason; and likewise +silver by weight for every bason of silver: 28:18 And for the altar of +incense refined gold by weight; and gold for the pattern of the +chariot of the cherubims, that spread out their wings, and covered the +ark of the covenant of the LORD. + +28:19 All this, said David, the LORD made me understand in writing by +his hand upon me, even all the works of this pattern. + +28:20 And David said to Solomon his son, Be strong and of good +courage, and do it: fear not, nor be dismayed: for the LORD God, even +my God, will be with thee; he will not fail thee, nor forsake thee, +until thou hast finished all the work for the service of the house of +the LORD. + +28:21 And, behold, the courses of the priests and the Levites, even +they shall be with thee for all the service of the house of God: and +there shall be with thee for all manner of workmanship every willing +skilful man, for any manner of service: also the princes and all the +people will be wholly at thy commandment. + +29:1 Furthermore David the king said unto all the congregation, +Solomon my son, whom alone God hath chosen, is yet young and tender, +and the work is great: for the palace is not for man, but for the LORD +God. + +29:2 Now I have prepared with all my might for the house of my God the +gold for things to be made of gold, and the silver for things of +silver, and the brass for things of brass, the iron for things of +iron, and wood for things of wood; onyx stones, and stones to be set, +glistering stones, and of divers colours, and all manner of precious +stones, and marble stones in abundance. + +29:3 Moreover, because I have set my affection to the house of my God, +I have of mine own proper good, of gold and silver, which I have given +to the house of my God, over and above all that I have prepared for +the holy house. + +29:4 Even three thousand talents of gold, of the gold of Ophir, and +seven thousand talents of refined silver, to overlay the walls of the +houses withal: 29:5 The gold for things of gold, and the silver for +things of silver, and for all manner of work to be made by the hands +of artificers. And who then is willing to consecrate his service this +day unto the LORD? 29:6 Then the chief of the fathers and princes of +the tribes of Israel and the captains of thousands and of hundreds, +with the rulers of the king's work, offered willingly, 29:7 And gave +for the service of the house of God of gold five thousand talents and +ten thousand drams, and of silver ten thousand talents, and of brass +eighteen thousand talents, and one hundred thousand talents of iron. + +29:8 And they with whom precious stones were found gave them to the +treasure of the house of the LORD, by the hand of Jehiel the +Gershonite. + +29:9 Then the people rejoiced, for that they offered willingly, +because with perfect heart they offered willingly to the LORD: and +David the king also rejoiced with great joy. + +29:10 Wherefore David blessed the LORD before all the congregation: +and David said, Blessed be thou, LORD God of Israel our father, for +ever and ever. + +29:11 Thine, O LORD is the greatness, and the power, and the glory, +and the victory, and the majesty: for all that is in the heaven and in +the earth is thine; thine is the kingdom, O LORD, and thou art exalted +as head above all. + +29:12 Both riches and honour come of thee, and thou reignest over all; +and in thine hand is power and might; and in thine hand it is to make +great, and to give strength unto all. + +29:13 Now therefore, our God, we thank thee, and praise thy glorious +name. + +29:14 But who am I, and what is my people, that we should be able to +offer so willingly after this sort? for all things come of thee, and +of thine own have we given thee. + +29:15 For we are strangers before thee, and sojourners, as were all +our fathers: our days on the earth are as a shadow, and there is none +abiding. + +29:16 O LORD our God, all this store that we have prepared to build +thee an house for thine holy name cometh of thine hand, and is all +thine own. + +29:17 I know also, my God, that thou triest the heart, and hast +pleasure in uprightness. As for me, in the uprightness of mine heart I +have willingly offered all these things: and now have I seen with joy +thy people, which are present here, to offer willingly unto thee. + +29:18 O LORD God of Abraham, Isaac, and of Israel, our fathers, keep +this for ever in the imagination of the thoughts of the heart of thy +people, and prepare their heart unto thee: 29:19 And give unto Solomon +my son a perfect heart, to keep thy commandments, thy testimonies, and +thy statutes, and to do all these things, and to build the palace, for +the which I have made provision. + +29:20 And David said to all the congregation, Now bless the LORD your +God. + +And all the congregation blessed the LORD God of their fathers, and +bowed down their heads, and worshipped the LORD, and the king. + +29:21 And they sacrificed sacrifices unto the LORD, and offered burnt +offerings unto the LORD, on the morrow after that day, even a thousand +bullocks, a thousand rams, and a thousand lambs, with their drink +offerings, and sacrifices in abundance for all Israel: 29:22 And did +eat and drink before the LORD on that day with great gladness. And +they made Solomon the son of David king the second time, and anointed +him unto the LORD to be the chief governor, and Zadok to be priest. + +29:23 Then Solomon sat on the throne of the LORD as king instead of +David his father, and prospered; and all Israel obeyed him. + +29:24 And all the princes, and the mighty men, and all the sons +likewise of king David, submitted themselves unto Solomon the king. + +29:25 And the LORD magnified Solomon exceedingly in the sight of all +Israel, and bestowed upon him such royal majesty as had not been on +any king before him in Israel. + +29:26 Thus David the son of Jesse reigned over all Israel. + +29:27 And the time that he reigned over Israel was forty years; seven +years reigned he in Hebron, and thirty and three years reigned he in +Jerusalem. + +29:28 And he died in a good old age, full of days, riches, and honour: +and Solomon his son reigned in his stead. + +29:29 Now the acts of David the king, first and last, behold, they are +written in the book of Samuel the seer, and in the book of Nathan the +prophet, and in the book of Gad the seer, 29:30 With all his reign and +his might, and the times that went over him, and over Israel, and over +all the kingdoms of the countries. + + + + +The Second Book of the Chronicles + + +1:1 And Solomon the son of David was strengthened in his kingdom, and +the LORD his God was with him, and magnified him exceedingly. + +1:2 Then Solomon spake unto all Israel, to the captains of thousands +and of hundreds, and to the judges, and to every governor in all +Israel, the chief of the fathers. + +1:3 So Solomon, and all the congregation with him, went to the high +place that was at Gibeon; for there was the tabernacle of the +congregation of God, which Moses the servant of the LORD had made in +the wilderness. + +1:4 But the ark of God had David brought up from Kirjathjearim to the +place which David had prepared for it: for he had pitched a tent for +it at Jerusalem. + +1:5 Moreover the brasen altar, that Bezaleel the son of Uri, the son +of Hur, had made, he put before the tabernacle of the LORD: and +Solomon and the congregation sought unto it. + +1:6 And Solomon went up thither to the brasen altar before the LORD, +which was at the tabernacle of the congregation, and offered a +thousand burnt offerings upon it. + +1:7 In that night did God appear unto Solomon, and said unto him, Ask +what I shall give thee. + +1:8 And Solomon said unto God, Thou hast shewed great mercy unto David +my father, and hast made me to reign in his stead. + +1:9 Now, O LORD God, let thy promise unto David my father be +established: for thou hast made me king over a people like the dust of +the earth in multitude. + +1:10 Give me now wisdom and knowledge, that I may go out and come in +before this people: for who can judge this thy people, that is so +great? 1:11 And God said to Solomon, Because this was in thine heart, +and thou hast not asked riches, wealth, or honour, nor the life of +thine enemies, neither yet hast asked long life; but hast asked wisdom +and knowledge for thyself, that thou mayest judge my people, over whom +I have made thee king: 1:12 Wisdom and knowledge is granted unto thee; +and I will give thee riches, and wealth, and honour, such as none of +the kings have had that have been before thee, neither shall there any +after thee have the like. + +1:13 Then Solomon came from his journey to the high place that was at +Gibeon to Jerusalem, from before the tabernacle of the congregation, +and reigned over Israel. + +1:14 And Solomon gathered chariots and horsemen: and he had a thousand +and four hundred chariots, and twelve thousand horsemen, which he +placed in the chariot cities, and with the king at Jerusalem. + +1:15 And the king made silver and gold at Jerusalem as plenteous as +stones, and cedar trees made he as the sycomore trees that are in the +vale for abundance. + +1:16 And Solomon had horses brought out of Egypt, and linen yarn: the +king's merchants received the linen yarn at a price. + +1:17 And they fetched up, and brought forth out of Egypt a chariot for +six hundred shekels of silver, and an horse for an hundred and fifty: +and so brought they out horses for all the kings of the Hittites, and +for the kings of Syria, by their means. + +2:1 And Solomon determined to build an house for the name of the LORD, +and an house for his kingdom. + +2:2 And Solomon told out threescore and ten thousand men to bear +burdens, and fourscore thousand to hew in the mountain, and three +thousand and six hundred to oversee them. + +2:3 And Solomon sent to Huram the king of Tyre, saying, As thou didst +deal with David my father, and didst send him cedars to build him an +house to dwell therein, even so deal with me. + +2:4 Behold, I build an house to the name of the LORD my God, to +dedicate it to him, and to burn before him sweet incense, and for the +continual shewbread, and for the burnt offerings morning and evening, +on the sabbaths, and on the new moons, and on the solemn feasts of the +LORD our God. This is an ordinance for ever to Israel. + +2:5 And the house which I build is great: for great is our God above +all gods. + +2:6 But who is able to build him an house, seeing the heaven and +heaven of heavens cannot contain him? who am I then, that I should +build him an house, save only to burn sacrifice before him? 2:7 Send +me now therefore a man cunning to work in gold, and in silver, and in +brass, and in iron, and in purple, and crimson, and blue, and that can +skill to grave with the cunning men that are with me in Judah and in +Jerusalem, whom David my father did provide. + +2:8 Send me also cedar trees, fir trees, and algum trees, out of +Lebanon: for I know that thy servants can skill to cut timber in +Lebanon; and, behold, my servants shall be with thy servants, 2:9 Even +to prepare me timber in abundance: for the house which I am about to +build shall be wonderful great. + +2:10 And, behold, I will give to thy servants, the hewers that cut +timber, twenty thousand measures of beaten wheat, and twenty thousand +measures of barley, and twenty thousand baths of wine, and twenty +thousand baths of oil. + +2:11 Then Huram the king of Tyre answered in writing, which he sent to +Solomon, Because the LORD hath loved his people, he hath made thee +king over them. + +2:12 Huram said moreover, Blessed be the LORD God of Israel, that made +heaven and earth, who hath given to David the king a wise son, endued +with prudence and understanding, that might build an house for the +LORD, and an house for his kingdom. + +2:13 And now I have sent a cunning man, endued with understanding, of +Huram my father's, 2:14 The son of a woman of the daughters of Dan, +and his father was a man of Tyre, skilful to work in gold, and in +silver, in brass, in iron, in stone, and in timber, in purple, in +blue, and in fine linen, and in crimson; also to grave any manner of +graving, and to find out every device which shall be put to him, with +thy cunning men, and with the cunning men of my lord David thy father. + +2:15 Now therefore the wheat, and the barley, the oil, and the wine, +which my lord hath spoken of, let him send unto his servants: 2:16 And +we will cut wood out of Lebanon, as much as thou shalt need: and we +will bring it to thee in floats by sea to Joppa; and thou shalt carry +it up to Jerusalem. + +2:17 And Solomon numbered all the strangers that were in the land of +Israel, after the numbering wherewith David his father had numbered +them; and they were found an hundred and fifty thousand and three +thousand and six hundred. + +2:18 And he set threescore and ten thousand of them to be bearers of +burdens, and fourscore thousand to be hewers in the mountain, and +three thousand and six hundred overseers to set the people a work. + +3:1 Then Solomon began to build the house of the LORD at Jerusalem in +mount Moriah, where the Lord appeared unto David his father, in the +place that David had prepared in the threshingfloor of Ornan the +Jebusite. + +3:2 And he began to build in the second day of the second month, in +the fourth year of his reign. + +3:3 Now these are the things wherein Solomon was instructed for the +building of the house of God. The length by cubits after the first +measure was threescore cubits, and the breadth twenty cubits. + +3:4 And the porch that was in the front of the house, the length of it +was according to the breadth of the house, twenty cubits, and the +height was an hundred and twenty: and he overlaid it within with pure +gold. + +3:5 And the greater house he cieled with fir tree, which he overlaid +with fine gold, and set thereon palm trees and chains. + +3:6 And he garnished the house with precious stones for beauty: and +the gold was gold of Parvaim. + +3:7 He overlaid also the house, the beams, the posts, and the walls +thereof, and the doors thereof, with gold; and graved cherubims on the +walls. + +3:8 And he made the most holy house, the length whereof was according +to the breadth of the house, twenty cubits, and the breadth thereof +twenty cubits: and he overlaid it with fine gold, amounting to six +hundred talents. + +3:9 And the weight of the nails was fifty shekels of gold. And he +overlaid the upper chambers with gold. + +3:10 And in the most holy house he made two cherubims of image work, +and overlaid them with gold. + +3:11 And the wings of the cherubims were twenty cubits long: one wing +of the one cherub was five cubits, reaching to the wall of the house: +and the other wing was likewise five cubits, reaching to the wing of +the other cherub. + +3:12 And one wing of the other cherub was five cubits, reaching to the +wall of the house: and the other wing was five cubits also, joining to +the wing of the other cherub. + +3:13 The wings of these cherubims spread themselves forth twenty +cubits: and they stood on their feet, and their faces were inward. + +3:14 And he made the vail of blue, and purple, and crimson, and fine +linen, and wrought cherubims thereon. + +3:15 Also he made before the house two pillars of thirty and five +cubits high, and the chapiter that was on the top of each of them was +five cubits. + +3:16 And he made chains, as in the oracle, and put them on the heads +of the pillars; and made an hundred pomegranates, and put them on the +chains. + +3:17 And he reared up the pillars before the temple, one on the right +hand, and the other on the left; and called the name of that on the +right hand Jachin, and the name of that on the left Boaz. + +4:1 Moreover he made an altar of brass, twenty cubits the length +thereof, and twenty cubits the breadth thereof, and ten cubits the +height thereof. + +4:2 Also he made a molten sea of ten cubits from brim to brim, round +in compass, and five cubits the height thereof; and a line of thirty +cubits did compass it round about. + +4:3 And under it was the similitude of oxen, which did compass it +round about: ten in a cubit, compassing the sea round about. Two rows +of oxen were cast, when it was cast. + +4:4 It stood upon twelve oxen, three looking toward the north, and +three looking toward the west, and three looking toward the south, and +three looking toward the east: and the sea was set above upon them, +and all their hinder parts were inward. + +4:5 And the thickness of it was an handbreadth, and the brim of it +like the work of the brim of a cup, with flowers of lilies; and it +received and held three thousand baths. + +4:6 He made also ten lavers, and put five on the right hand, and five +on the left, to wash in them: such things as they offered for the +burnt offering they washed in them; but the sea was for the priests to +wash in. + +4:7 And he made ten candlesticks of gold according to their form, and +set them in the temple, five on the right hand, and five on the left. + +4:8 He made also ten tables, and placed them in the temple, five on +the right side, and five on the left. And he made an hundred basons of +gold. + +4:9 Furthermore he made the court of the priests, and the great court, +and doors for the court, and overlaid the doors of them with brass. + +4:10 And he set the sea on the right side of the east end, over +against the south. + +4:11 And Huram made the pots, and the shovels, and the basons. And +Huram finished the work that he was to make for king Solomon for the +house of God; 4:12 To wit, the two pillars, and the pommels, and the +chapiters which were on the top of the two pillars, and the two +wreaths to cover the two pommels of the chapiters which were on the +top of the pillars; 4:13 And four hundred pomegranates on the two +wreaths; two rows of pomegranates on each wreath, to cover the two +pommels of the chapiters which were upon the pillars. + +4:14 He made also bases, and lavers made he upon the bases; 4:15 One +sea, and twelve oxen under it. + +4:16 The pots also, and the shovels, and the fleshhooks, and all their +instruments, did Huram his father make to king Solomon for the house +of the LORD of bright brass. + +4:17 In the plain of Jordan did the king cast them, in the clay ground +between Succoth and Zeredathah. + +4:18 Thus Solomon made all these vessels in great abundance: for the +weight of the brass could not be found out. + +4:19 And Solomon made all the vessels that were for the house of God, +the golden altar also, and the tables whereon the shewbread was set; +4:20 Moreover the candlesticks with their lamps, that they should burn +after the manner before the oracle, of pure gold; 4:21 And the +flowers, and the lamps, and the tongs, made he of gold, and that +perfect gold; 4:22 And the snuffers, and the basons, and the spoons, +and the censers, of pure gold: and the entry of the house, the inner +doors thereof for the most holy place, and the doors of the house of +the temple, were of gold. + +5:1 Thus all the work that Solomon made for the house of the LORD was +finished: and Solomon brought in all the things that David his father +had dedicated; and the silver, and the gold, and all the instruments, +put he among the treasures of the house of God. + +5:2 Then Solomon assembled the elders of Israel, and all the heads of +the tribes, the chief of the fathers of the children of Israel, unto +Jerusalem, to bring up the ark of the covenant of the LORD out of the +city of David, which is Zion. + +5:3 Wherefore all the men of Israel assembled themselves unto the king +in the feast which was in the seventh month. + +5:4 And all the elders of Israel came; and the Levites took up the +ark. + +5:5 And they brought up the ark, and the tabernacle of the +congregation, and all the holy vessels that were in the tabernacle, +these did the priests and the Levites bring up. + +5:6 Also king Solomon, and all the congregation of Israel that were +assembled unto him before the ark, sacrificed sheep and oxen, which +could not be told nor numbered for multitude. + +5:7 And the priests brought in the ark of the covenant of the LORD +unto his place, to the oracle of the house, into the most holy place, +even under the wings of the cherubims: 5:8 For the cherubims spread +forth their wings over the place of the ark, and the cherubims covered +the ark and the staves thereof above. + +5:9 And they drew out the staves of the ark, that the ends of the +staves were seen from the ark before the oracle; but they were not +seen without. And there it is unto this day. + +5:10 There was nothing in the ark save the two tables which Moses put +therein at Horeb, when the LORD made a covenant with the children of +Israel, when they came out of Egypt. + +5:11 And it came to pass, when the priests were come out of the holy +place: (for all the priests that were present were sanctified, and did +not then wait by course: 5:12 Also the Levites which were the singers, +all of them of Asaph, of Heman, of Jeduthun, with their sons and their +brethren, being arrayed in white linen, having cymbals and psalteries +and harps, stood at the east end of the altar, and with them an +hundred and twenty priests sounding with trumpets:) 5:13 It came even +to pass, as the trumpeters and singers were as one, to make one sound +to be heard in praising and thanking the LORD; and when they lifted up +their voice with the trumpets and cymbals and instruments of musick, +and praised the LORD, saying, For he is good; for his mercy endureth +for ever: that then the house was filled with a cloud, even the house +of the LORD; 5:14 So that the priests could not stand to minister by +reason of the cloud: for the glory of the LORD had filled the house of +God. + +6:1 Then said Solomon, The LORD hath said that he would dwell in the +thick darkness. + +6:2 But I have built an house of habitation for thee, and a place for +thy dwelling for ever. + +6:3 And the king turned his face, and blessed the whole congregation +of Israel: and all the congregation of Israel stood. + +6:4 And he said, Blessed be the LORD God of Israel, who hath with his +hands fulfilled that which he spake with his mouth to my father David, +saying, 6:5 Since the day that I brought forth my people out of the +land of Egypt I chose no city among all the tribes of Israel to build +an house in, that my name might be there; neither chose I any man to +be a ruler over my people Israel: 6:6 But I have chosen Jerusalem, +that my name might be there; and have chosen David to be over my +people Israel. + +6:7 Now it was in the heart of David my father to build an house for +the name of the LORD God of Israel. + +6:8 But the LORD said to David my father, Forasmuch as it was in thine +heart to build an house for my name, thou didst well in that it was in +thine heart: 6:9 Notwithstanding thou shalt not build the house; but +thy son which shall come forth out of thy loins, he shall build the +house for my name. + +6:10 The LORD therefore hath performed his word that he hath spoken: +for I am risen up in the room of David my father, and am set on the +throne of Israel, as the LORD promised, and have built the house for +the name of the LORD God of Israel. + +6:11 And in it have I put the ark, wherein is the covenant of the +LORD, that he made with the children of Israel. + +6:12 And he stood before the altar of the LORD in the presence of all +the congregation of Israel, and spread forth his hands: 6:13 For +Solomon had made a brasen scaffold of five cubits long, and five +cubits broad, and three cubits high, and had set it in the midst of +the court: and upon it he stood, and kneeled down upon his knees +before all the congregation of Israel, and spread forth his hands +toward heaven. + +6:14 And said, O LORD God of Israel, there is no God like thee in the +heaven, nor in the earth; which keepest covenant, and shewest mercy +unto thy servants, that walk before thee with all their hearts: 6:15 +Thou which hast kept with thy servant David my father that which thou +hast promised him; and spakest with thy mouth, and hast fulfilled it +with thine hand, as it is this day. + +6:16 Now therefore, O LORD God of Israel, keep with thy servant David +my father that which thou hast promised him, saying, There shall not +fail thee a man in my sight to sit upon the throne of Israel; yet so +that thy children take heed to their way to walk in my law, as thou +hast walked before me. + +6:17 Now then, O LORD God of Israel, let thy word be verified, which +thou hast spoken unto thy servant David. + +6:18 But will God in very deed dwell with men on the earth? behold, +heaven and the heaven of heavens cannot contain thee; how much less +this house which I have built! 6:19 Have respect therefore to the +prayer of thy servant, and to his supplication, O LORD my God, to +hearken unto the cry and the prayer which thy servant prayeth before +thee: 6:20 That thine eyes may be open upon this house day and night, +upon the place whereof thou hast said that thou wouldest put thy name +there; to hearken unto the prayer which thy servant prayeth toward +this place. + +6:21 Hearken therefore unto the supplications of thy servant, and of +thy people Israel, which they shall make toward this place: hear thou +from thy dwelling place, even from heaven; and when thou hearest, +forgive. + +6:22 If a man sin against his neighbour, and an oath be laid upon him +to make him swear, and the oath come before thine altar in this house; +6:23 Then hear thou from heaven, and do, and judge thy servants, by +requiting the wicked, by recompensing his way upon his own head; and +by justifying the righteous, by giving him according to his +righteousness. + +6:24 And if thy people Israel be put to the worse before the enemy, +because they have sinned against thee; and shall return and confess +thy name, and pray and make supplication before thee in this house; +6:25 Then hear thou from the heavens, and forgive the sin of thy +people Israel, and bring them again unto the land which thou gavest to +them and to their fathers. + +6:26 When the heaven is shut up, and there is no rain, because they +have sinned against thee; yet if they pray toward this place, and +confess thy name, and turn from their sin, when thou dost afflict +them; 6:27 Then hear thou from heaven, and forgive the sin of thy +servants, and of thy people Israel, when thou hast taught them the +good way, wherein they should walk; and send rain upon thy land, which +thou hast given unto thy people for an inheritance. + +6:28 If there be dearth in the land, if there be pestilence, if there +be blasting, or mildew, locusts, or caterpillers; if their enemies +besiege them in the cities of their land; whatsoever sore or +whatsoever sickness there be: 6:29 Then what prayer or what +supplication soever shall be made of any man, or of all thy people +Israel, when every one shall know his own sore and his own grief, and +shall spread forth his hands in this house: 6:30 Then hear thou from +heaven thy dwelling place, and forgive, and render unto every man +according unto all his ways, whose heart thou knowest; (for thou only +knowest the hearts of the children of men:) 6:31 That they may fear +thee, to walk in thy ways, so long as they live in the land which thou +gavest unto our fathers. + +6:32 Moreover concerning the stranger, which is not of thy people +Israel, but is come from a far country for thy great name's sake, and +thy mighty hand, and thy stretched out arm; if they come and pray in +this house; 6:33 Then hear thou from the heavens, even from thy +dwelling place, and do according to all that the stranger calleth to +thee for; that all people of the earth may know thy name, and fear +thee, as doth thy people Israel, and may know that this house which I +have built is called by thy name. + +6:34 If thy people go out to war against their enemies by the way that +thou shalt send them, and they pray unto thee toward this city which +thou hast chosen, and the house which I have built for thy name; 6:35 +Then hear thou from the heavens their prayer and their supplication, +and maintain their cause. + +6:36 If they sin against thee, (for there is no man which sinneth +not,) and thou be angry with them, and deliver them over before their +enemies, and they carry them away captives unto a land far off or +near; 6:37 Yet if they bethink themselves in the land whither they are +carried captive, and turn and pray unto thee in the land of their +captivity, saying, We have sinned, we have done amiss, and have dealt +wickedly; 6:38 If they return to thee with all their heart and with +all their soul in the land of their captivity, whither they have +carried them captives, and pray toward their land, which thou gavest +unto their fathers, and toward the city which thou hast chosen, and +toward the house which I have built for thy name: 6:39 Then hear thou +from the heavens, even from thy dwelling place, their prayer and their +supplications, and maintain their cause, and forgive thy people which +have sinned against thee. + +6:40 Now, my God, let, I beseech thee, thine eyes be open, and let +thine ears be attent unto the prayer that is made in this place. + +6:41 Now therefore arise, O LORD God, into thy resting place, thou, +and the ark of thy strength: let thy priests, O LORD God, be clothed +with salvation, and let thy saints rejoice in goodness. + +6:42 O LORD God, turn not away the face of thine anointed: remember +the mercies of David thy servant. + +7:1 Now when Solomon had made an end of praying, the fire came down +from heaven, and consumed the burnt offering and the sacrifices; and +the glory of the LORD filled the house. + +7:2 And the priests could not enter into the house of the LORD, +because the glory of the LORD had filled the LORD's house. + +7:3 And when all the children of Israel saw how the fire came down, +and the glory of the LORD upon the house, they bowed themselves with +their faces to the ground upon the pavement, and worshipped, and +praised the LORD, saying, For he is good; for his mercy endureth for +ever. + +7:4 Then the king and all the people offered sacrifices before the +LORD. + +7:5 And king Solomon offered a sacrifice of twenty and two thousand +oxen, and an hundred and twenty thousand sheep: so the king and all +the people dedicated the house of God. + +7:6 And the priests waited on their offices: the Levites also with +instruments of musick of the LORD, which David the king had made to +praise the LORD, because his mercy endureth for ever, when David +praised by their ministry; and the priests sounded trumpets before +them, and all Israel stood. + +7:7 Moreover Solomon hallowed the middle of the court that was before +the house of the LORD: for there he offered burnt offerings, and the +fat of the peace offerings, because the brasen altar which Solomon had +made was not able to receive the burnt offerings, and the meat +offerings, and the fat. + +7:8 Also at the same time Solomon kept the feast seven days, and all +Israel with him, a very great congregation, from the entering in of +Hamath unto the river of Egypt. + +7:9 And in the eighth day they made a solemn assembly: for they kept +the dedication of the altar seven days, and the feast seven days. + +7:10 And on the three and twentieth day of the seventh month he sent +the people away into their tents, glad and merry in heart for the +goodness that the LORD had shewed unto David, and to Solomon, and to +Israel his people. + +7:11 Thus Solomon finished the house of the LORD, and the king's +house: and all that came into Solomon's heart to make in the house of +the LORD, and in his own house, he prosperously effected. + +7:12 And the LORD appeared to Solomon by night, and said unto him, I +have heard thy prayer, and have chosen this place to myself for an +house of sacrifice. + +7:13 If I shut up heaven that there be no rain, or if I command the +locusts to devour the land, or if I send pestilence among my people; +7:14 If my people, which are called by my name, shall humble +themselves, and pray, and seek my face, and turn from their wicked +ways; then will I hear from heaven, and will forgive their sin, and +will heal their land. + +7:15 Now mine eyes shall be open, and mine ears attent unto the prayer +that is made in this place. + +7:16 For now have I chosen and sanctified this house, that my name may +be there for ever: and mine eyes and mine heart shall be there +perpetually. + +7:17 And as for thee, if thou wilt walk before me, as David thy father +walked, and do according to all that I have commanded thee, and shalt +observe my statutes and my judgments; 7:18 Then will I stablish the +throne of thy kingdom, according as I have covenanted with David thy +father, saying, There shall not fail thee a man to be ruler in Israel. + +7:19 But if ye turn away, and forsake my statutes and my commandments, +which I have set before you, and shall go and serve other gods, and +worship them; 7:20 Then will I pluck them up by the roots out of my +land which I have given them; and this house, which I have sanctified +for my name, will I cast out of my sight, and will make it to be a +proverb and a byword among all nations. + +7:21 And this house, which is high, shall be an astonishment to every +one that passeth by it; so that he shall say, Why hath the LORD done +thus unto this land, and unto this house? 7:22 And it shall be +answered, Because they forsook the LORD God of their fathers, which +brought them forth out of the land of Egypt, and laid hold on other +gods, and worshipped them, and served them: therefore hath he brought +all this evil upon them. + +8:1 And it came to pass at the end of twenty years, wherein Solomon +had built the house of the LORD, and his own house, 8:2 That the +cities which Huram had restored to Solomon, Solomon built them, and +caused the children of Israel to dwell there. + +8:3 And Solomon went to Hamathzobah, and prevailed against it. + +8:4 And he built Tadmor in the wilderness, and all the store cities, +which he built in Hamath. + +8:5 Also he built Bethhoron the upper, and Bethhoron the nether, +fenced cities, with walls, gates, and bars; 8:6 And Baalath, and all +the store cities that Solomon had, and all the chariot cities, and the +cities of the horsemen, and all that Solomon desired to build in +Jerusalem, and in Lebanon, and throughout all the land of his +dominion. + +8:7 As for all the people that were left of the Hittites, and the +Amorites, and the Perizzites, and the Hivites, and the Jebusites, +which were not of Israel, 8:8 But of their children, who were left +after them in the land, whom the children of Israel consumed not, them +did Solomon make to pay tribute until this day. + +8:9 But of the children of Israel did Solomon make no servants for his +work; but they were men of war, and chief of his captains, and +captains of his chariots and horsemen. + +8:10 And these were the chief of king Solomon's officers, even two +hundred and fifty, that bare rule over the people. + +8:11 And Solomon brought up the daughter of Pharaoh out of the city of +David unto the house that he had built for her: for he said, My wife +shall not dwell in the house of David king of Israel, because the +places are holy, whereunto the ark of the LORD hath come. + +8:12 Then Solomon offered burnt offerings unto the LORD on the altar +of the LORD, which he had built before the porch, 8:13 Even after a +certain rate every day, offering according to the commandment of +Moses, on the sabbaths, and on the new moons, and on the solemn +feasts, three times in the year, even in the feast of unleavened +bread, and in the feast of weeks, and in the feast of tabernacles. + +8:14 And he appointed, according to the order of David his father, the +courses of the priests to their service, and the Levites to their +charges, to praise and minister before the priests, as the duty of +every day required: the porters also by their courses at every gate: +for so had David the man of God commanded. + +8:15 And they departed not from the commandment of the king unto the +priests and Levites concerning any matter, or concerning the +treasures. + +8:16 Now all the work of Solomon was prepared unto the day of the +foundation of the house of the LORD, and until it was finished. So the +house of the LORD was perfected. + +8:17 Then went Solomon to Eziongeber, and to Eloth, at the sea side in +the land of Edom. + +8:18 And Huram sent him by the hands of his servants ships, and +servants that had knowledge of the sea; and they went with the +servants of Solomon to Ophir, and took thence four hundred and fifty +talents of gold, and brought them to king Solomon. + +9:1 And when the queen of Sheba heard of the fame of Solomon, she came +to prove Solomon with hard questions at Jerusalem, with a very great +company, and camels that bare spices, and gold in abundance, and +precious stones: and when she was come to Solomon, she communed with +him of all that was in her heart. + +9:2 And Solomon told her all her questions: and there was nothing hid +from Solomon which he told her not. + +9:3 And when the queen of Sheba had seen the wisdom of Solomon, and +the house that he had built, 9:4 And the meat of his table, and the +sitting of his servants, and the attendance of his ministers, and +their apparel; his cupbearers also, and their apparel; and his ascent +by which he went up into the house of the LORD; there was no more +spirit in her. + +9:5 And she said to the king, It was a true report which I heard in +mine own land of thine acts, and of thy wisdom: 9:6 Howbeit I believed +not their words, until I came, and mine eyes had seen it: and, behold, +the one half of the greatness of thy wisdom was not told me: for thou +exceedest the fame that I heard. + +9:7 Happy are thy men, and happy are these thy servants, which stand +continually before thee, and hear thy wisdom. + +9:8 Blessed be the LORD thy God, which delighted in thee to set thee +on his throne, to be king for the LORD thy God: because thy God loved +Israel, to establish them for ever, therefore made he thee king over +them, to do judgment and justice. + +9:9 And she gave the king an hundred and twenty talents of gold, and +of spices great abundance, and precious stones: neither was there any +such spice as the queen of Sheba gave king Solomon. + +9:10 And the servants also of Huram, and the servants of Solomon, +which brought gold from Ophir, brought algum trees and precious +stones. + +9:11 And the king made of the algum trees terraces to the house of the +LORD, and to the king's palace, and harps and psalteries for singers: +and there were none such seen before in the land of Judah. + +9:12 And king Solomon gave to the queen of Sheba all her desire, +whatsoever she asked, beside that which she had brought unto the king. +So she turned, and went away to her own land, she and her servants. + +9:13 Now the weight of gold that came to Solomon in one year was six +hundred and threescore and six talents of gold; 9:14 Beside that which +chapmen and merchants brought. And all the kings of Arabia and +governors of the country brought gold and silver to Solomon. + +9:15 And king Solomon made two hundred targets of beaten gold: six +hundred shekels of beaten gold went to one target. + +9:16 And three hundred shields made he of beaten gold: three hundred +shekels of gold went to one shield. And the king put them in the house +of the forest of Lebanon. + +9:17 Moreover the king made a great throne of ivory, and overlaid it +with pure gold. + +9:18 And there were six steps to the throne, with a footstool of gold, +which were fastened to the throne, and stays on each side of the +sitting place, and two lions standing by the stays: 9:19 And twelve +lions stood there on the one side and on the other upon the six steps. +There was not the like made in any kingdom. + +9:20 And all the drinking vessels of king Solomon were of gold, and +all the vessels of the house of the forest of Lebanon were of pure +gold: none were of silver; it was not any thing accounted of in the +days of Solomon. + +9:21 For the king's ships went to Tarshish with the servants of Huram: +every three years once came the ships of Tarshish bringing gold, and +silver, ivory, and apes, and peacocks. + +9:22 And king Solomon passed all the kings of the earth in riches and +wisdom. + +9:23 And all the kings of the earth sought the presence of Solomon, to +hear his wisdom, that God had put in his heart. + +9:24 And they brought every man his present, vessels of silver, and +vessels of gold, and raiment, harness, and spices, horses, and mules, +a rate year by year. + +9:25 And Solomon had four thousand stalls for horses and chariots, and +twelve thousand horsemen; whom he bestowed in the chariot cities, and +with the king at Jerusalem. + +9:26 And he reigned over all the kings from the river even unto the +land of the Philistines, and to the border of Egypt. + +9:27 And the king made silver in Jerusalem as stones, and cedar trees +made he as the sycomore trees that are in the low plains in abundance. + +9:28 And they brought unto Solomon horses out of Egypt, and out of all +lands. + +9:29 Now the rest of the acts of Solomon, first and last, are they not +written in the book of Nathan the prophet, and in the prophecy of +Ahijah the Shilonite, and in the visions of Iddo the seer against +Jeroboam the son of Nebat? 9:30 And Solomon reigned in Jerusalem over +all Israel forty years. + +9:31 And Solomon slept with his fathers, and he was buried in the city +of David his father: and Rehoboam his son reigned in his stead. + +10:1 And Rehoboam went to Shechem: for to Shechem were all Israel come +to make him king. + +10:2 And it came to pass, when Jeroboam the son of Nebat, who was in +Egypt, whither he fled from the presence of Solomon the king, heard +it, that Jeroboam returned out of Egypt. + +10:3 And they sent and called him. So Jeroboam and all Israel came and +spake to Rehoboam, saying, 10:4 Thy father made our yoke grievous: now +therefore ease thou somewhat the grievous servitude of thy father, and +his heavy yoke that he put upon us, and we will serve thee. + +10:5 And he said unto them, Come again unto me after three days. And +the people departed. + +10:6 And king Rehoboam took counsel with the old men that had stood +before Solomon his father while he yet lived, saying, What counsel +give ye me to return answer to this people? 10:7 And they spake unto +him, saying, If thou be kind to this people, and please them, and +speak good words to them, they will be thy servants for ever. + +10:8 But he forsook the counsel which the old men gave him, and took +counsel with the young men that were brought up with him, that stood +before him. + +10:9 And he said unto them, What advice give ye that we may return +answer to this people, which have spoken to me, saying, Ease somewhat +the yoke that thy father did put upon us? 10:10 And the young men +that were brought up with him spake unto him, saying, Thus shalt thou +answer the people that spake unto thee, saying, Thy father made our +yoke heavy, but make thou it somewhat lighter for us; thus shalt thou +say unto them, My little finger shall be thicker than my father's +loins. + +10:11 For whereas my father put a heavy yoke upon you, I will put more +to your yoke: my father chastised you with whips, but I will chastise +you with scorpions. + +10:12 So Jeroboam and all the people came to Rehoboam on the third +day, as the king bade, saying, Come again to me on the third day. + +10:13 And the king answered them roughly; and king Rehoboam forsook +the counsel of the old men, 10:14 And answered them after the advice +of the young men, saying, My father made your yoke heavy, but I will +add thereto: my father chastised you with whips, but I will chastise +you with scorpions. + +10:15 So the king hearkened not unto the people: for the cause was of +God, that the LORD might perform his word, which he spake by the hand +of Ahijah the Shilonite to Jeroboam the son of Nebat. + +10:16 And when all Israel saw that the king would not hearken unto +them, the people answered the king, saying, What portion have we in +David? and we have none inheritance in the son of Jesse: every man to +your tents, O Israel: and now, David, see to thine own house. So all +Israel went to their tents. + +10:17 But as for the children of Israel that dwelt in the cities of +Judah, Rehoboam reigned over them. + +10:18 Then king Rehoboam sent Hadoram that was over the tribute; and +the children of Israel stoned him with stones, that he died. But king +Rehoboam made speed to get him up to his chariot, to flee to +Jerusalem. + +10:19 And Israel rebelled against the house of David unto this day. + +11:1 And when Rehoboam was come to Jerusalem, he gathered of the house +of Judah and Benjamin an hundred and fourscore thousand chosen men, +which were warriors, to fight against Israel, that he might bring the +kingdom again to Rehoboam. + +11:2 But the word of the LORD came to Shemaiah the man of God, saying, +11:3 Speak unto Rehoboam the son of Solomon, king of Judah, and to all +Israel in Judah and Benjamin, saying, 11:4 Thus saith the LORD, Ye +shall not go up, nor fight against your brethren: return every man to +his house: for this thing is done of me. And they obeyed the words of +the LORD, and returned from going against Jeroboam. + +11:5 And Rehoboam dwelt in Jerusalem, and built cities for defence in +Judah. + +11:6 He built even Bethlehem, and Etam, and Tekoa, 11:7 And Bethzur, +and Shoco, and Adullam, 11:8 And Gath, and Mareshah, and Ziph, 11:9 +And Adoraim, and Lachish, and Azekah, 11:10 And Zorah, and Aijalon, +and Hebron, which are in Judah and in Benjamin fenced cities. + +11:11 And he fortified the strong holds, and put captains in them, and +store of victual, and of oil and wine. + +11:12 And in every several city he put shields and spears, and made +them exceeding strong, having Judah and Benjamin on his side. + +11:13 And the priests and the Levites that were in all Israel resorted +to him out of all their coasts. + +11:14 For the Levites left their suburbs and their possession, and +came to Judah and Jerusalem: for Jeroboam and his sons had cast them +off from executing the priest's office unto the LORD: 11:15 And he +ordained him priests for the high places, and for the devils, and for +the calves which he had made. + +11:16 And after them out of all the tribes of Israel such as set their +hearts to seek the LORD God of Israel came to Jerusalem, to sacrifice +unto the LORD God of their fathers. + +11:17 So they strengthened the kingdom of Judah, and made Rehoboam the +son of Solomon strong, three years: for three years they walked in the +way of David and Solomon. + +11:18 And Rehoboam took him Mahalath the daughter of Jerimoth the son +of David to wife, and Abihail the daughter of Eliab the son of Jesse; +11:19 Which bare him children; Jeush, and Shamariah, and Zaham. + +11:20 And after her he took Maachah the daughter of Absalom; which +bare him Abijah, and Attai, and Ziza, and Shelomith. + +11:21 And Rehoboam loved Maachah the daughter of Absalom above all his +wives and his concubines: (for he took eighteen wives, and threescore +concubines; and begat twenty and eight sons, and threescore +daughters.) 11:22 And Rehoboam made Abijah the son of Maachah the +chief, to be ruler among his brethren: for he thought to make him +king. + +11:23 And he dealt wisely, and dispersed of all his children +throughout all the countries of Judah and Benjamin, unto every fenced +city: and he gave them victual in abundance. And he desired many +wives. + +12:1 And it came to pass, when Rehoboam had established the kingdom, +and had strengthened himself, he forsook the law of the LORD, and all +Israel with him. + +12:2 And it came to pass, that in the fifth year of king Rehoboam +Shishak king of Egypt came up against Jerusalem, because they had +transgressed against the LORD, 12:3 With twelve hundred chariots, and +threescore thousand horsemen: and the people were without number that +came with him out of Egypt; the Lubims, the Sukkiims, and the +Ethiopians. + +12:4 And he took the fenced cities which pertained to Judah, and came +to Jerusalem. + +12:5 Then came Shemaiah the prophet to Rehoboam, and to the princes of +Judah, that were gathered together to Jerusalem because of Shishak, +and said unto them, Thus saith the LORD, Ye have forsaken me, and +therefore have I also left you in the hand of Shishak. + +12:6 Whereupon the princes of Israel and the king humbled themselves; +and they said, The LORD is righteous. + +12:7 And when the LORD saw that they humbled themselves, the word of +the LORD came to Shemaiah, saying, They have humbled themselves; +therefore I will not destroy them, but I will grant them some +deliverance; and my wrath shall not be poured out upon Jerusalem by +the hand of Shishak. + +12:8 Nevertheless they shall be his servants; that they may know my +service, and the service of the kingdoms of the countries. + +12:9 So Shishak king of Egypt came up against Jerusalem, and took away +the treasures of the house of the LORD, and the treasures of the +king's house; he took all: he carried away also the shields of gold +which Solomon had made. + +12:10 Instead of which king Rehoboam made shields of brass, and +committed them to the hands of the chief of the guard, that kept the +entrance of the king's house. + +12:11 And when the king entered into the house of the LORD, the guard +came and fetched them, and brought them again into the guard chamber. + +12:12 And when he humbled himself, the wrath of the LORD turned from +him, that he would not destroy him altogether: and also in Judah +things went well. + +12:13 So king Rehoboam strengthened himself in Jerusalem, and reigned: +for Rehoboam was one and forty years old when he began to reign, and +he reigned seventeen years in Jerusalem, the city which the LORD had +chosen out of all the tribes of Israel, to put his name there. And his +mother's name was Naamah an Ammonitess. + +12:14 And he did evil, because he prepared not his heart to seek the +LORD. + +12:15 Now the acts of Rehoboam, first and last, are they not written +in the book of Shemaiah the prophet, and of Iddo the seer concerning +genealogies? And there were wars between Rehoboam and Jeroboam +continually. + +12:16 And Rehoboam slept with his fathers, and was buried in the city +of David: and Abijah his son reigned in his stead. + +13:1 Now in the eighteenth year of king Jeroboam began Abijah to reign +over Judah. + +13:2 He reigned three years in Jerusalem. His mother's name also was +Michaiah the daughter of Uriel of Gibeah. And there was war between +Abijah and Jeroboam. + +13:3 And Abijah set the battle in array with an army of valiant men of +war, even four hundred thousand chosen men: Jeroboam also set the +battle in array against him with eight hundred thousand chosen men, +being mighty men of valour. + +13:4 And Abijah stood up upon mount Zemaraim, which is in mount +Ephraim, and said, Hear me, thou Jeroboam, and all Israel; 13:5 Ought +ye not to know that the LORD God of Israel gave the kingdom over +Israel to David for ever, even to him and to his sons by a covenant of +salt? 13:6 Yet Jeroboam the son of Nebat, the servant of Solomon the +son of David, is risen up, and hath rebelled against his lord. + +13:7 And there are gathered unto him vain men, the children of Belial, +and have strengthened themselves against Rehoboam the son of Solomon, +when Rehoboam was young and tenderhearted, and could not withstand +them. + +13:8 And now ye think to withstand the kingdom of the LORD in the hand +of the sons of David; and ye be a great multitude, and there are with +your golden calves, which Jeroboam made you for gods. + +13:9 Have ye not cast out the priests of the LORD, the sons of Aaron, +and the Levites, and have made you priests after the manner of the +nations of other lands? so that whosoever cometh to consecrate himself +with a young bullock and seven rams, the same may be a priest of them +that are no gods. + +13:10 But as for us, the LORD is our God, and we have not forsaken +him; and the priests, which minister unto the LORD, are the sons of +Aaron, and the Levites wait upon their business: 13:11 And they burn +unto the LORD every morning and every evening burnt sacrifices and +sweet incense: the shewbread also set they in order upon the pure +table; and the candlestick of gold with the lamps thereof, to burn +every evening: for we keep the charge of the LORD our God; but ye have +forsaken him. + +13:12 And, behold, God himself is with us for our captain, and his +priests with sounding trumpets to cry alarm against you. O children of +Israel, fight ye not against the LORD God of your fathers; for ye +shall not prosper. + +13:13 But Jeroboam caused an ambushment to come about behind them: so +they were before Judah, and the ambushment was behind them. + +13:14 And when Judah looked back, behold, the battle was before and +behind: and they cried unto the LORD, and the priests sounded with the +trumpets. + +13:15 Then the men of Judah gave a shout: and as the men of Judah +shouted, it came to pass, that God smote Jeroboam and all Israel +before Abijah and Judah. + +13:16 And the children of Israel fled before Judah: and God delivered +them into their hand. + +13:17 And Abijah and his people slew them with a great slaughter: so +there fell down slain of Israel five hundred thousand chosen men. + +13:18 Thus the children of Israel were brought under at that time, and +the children of Judah prevailed, because they relied upon the LORD God +of their fathers. + +13:19 And Abijah pursued after Jeroboam, and took cities from him, +Bethel with the towns thereof, and Jeshanah with the towns thereof, +and Ephraim with the towns thereof. + +13:20 Neither did Jeroboam recover strength again in the days of +Abijah: and the LORD struck him, and he died. + +13:21 But Abijah waxed mighty, and married fourteen wives, and begat +twenty and two sons, and sixteen daughters. + +13:22 And the rest of the acts of Abijah, and his ways, and his +sayings, are written in the story of the prophet Iddo. + +14:1 So Abijah slept with his fathers, and they buried him in the city +of David: and Asa his son reigned in his stead. In his days the land +was quiet ten years. + +14:2 And Asa did that which was good and right in the eyes of the LORD +his God: 14:3 For he took away the altars of the strange gods, and the +high places, and brake down the images, and cut down the groves: 14:4 +And commanded Judah to seek the LORD God of their fathers, and to do +the law and the commandment. + +14:5 Also he took away out of all the cities of Judah the high places +and the images: and the kingdom was quiet before him. + +14:6 And he built fenced cities in Judah: for the land had rest, and +he had no war in those years; because the LORD had given him rest. + +14:7 Therefore he said unto Judah, Let us build these cities, and make +about them walls, and towers, gates, and bars, while the land is yet +before us; because we have sought the LORD our God, we have sought +him, and he hath given us rest on every side. So they built and +prospered. + +14:8 And Asa had an army of men that bare targets and spears, out of +Judah three hundred thousand; and out of Benjamin, that bare shields +and drew bows, two hundred and fourscore thousand: all these were +mighty men of valour. + +14:9 And there came out against them Zerah the Ethiopian with an host +of a thousand thousand, and three hundred chariots; and came unto +Mareshah. + +14:10 Then Asa went out against him, and they set the battle in array +in the valley of Zephathah at Mareshah. + +14:11 And Asa cried unto the LORD his God, and said, LORD, it is +nothing with thee to help, whether with many, or with them that have +no power: help us, O LORD our God; for we rest on thee, and in thy +name we go against this multitude. O LORD, thou art our God; let no +man prevail against thee. + +14:12 So the LORD smote the Ethiopians before Asa, and before Judah; +and the Ethiopians fled. + +14:13 And Asa and the people that were with him pursued them unto +Gerar: and the Ethiopians were overthrown, that they could not recover +themselves; for they were destroyed before the LORD, and before his +host; and they carried away very much spoil. + +14:14 And they smote all the cities round about Gerar; for the fear of +the LORD came upon them: and they spoiled all the cities; for there +was exceeding much spoil in them. + +14:15 They smote also the tents of cattle, and carried away sheep and +camels in abundance, and returned to Jerusalem. + +15:1 And the Spirit of God came upon Azariah the son of Oded: 15:2 And +he went out to meet Asa, and said unto him, Hear ye me, Asa, and all +Judah and Benjamin; The LORD is with you, while ye be with him; and if +ye seek him, he will be found of you; but if ye forsake him, he will +forsake you. + +15:3 Now for a long season Israel hath been without the true God, and +without a teaching priest, and without law. + +15:4 But when they in their trouble did turn unto the LORD God of +Israel, and sought him, he was found of them. + +15:5 And in those times there was no peace to him that went out, nor +to him that came in, but great vexations were upon all the inhabitants +of the countries. + +15:6 And nation was destroyed of nation, and city of city: for God did +vex them with all adversity. + +15:7 Be ye strong therefore, and let not your hands be weak: for your +work shall be rewarded. + +15:8 And when Asa heard these words, and the prophecy of Oded the +prophet, he took courage, and put away the abominable idols out of all +the land of Judah and Benjamin, and out of the cities which he had +taken from mount Ephraim, and renewed the altar of the LORD, that was +before the porch of the LORD. + +15:9 And he gathered all Judah and Benjamin, and the strangers with +them out of Ephraim and Manasseh, and out of Simeon: for they fell to +him out of Israel in abundance, when they saw that the LORD his God +was with him. + +15:10 So they gathered themselves together at Jerusalem in the third +month, in the fifteenth year of the reign of Asa. + +15:11 And they offered unto the LORD the same time, of the spoil which +they had brought, seven hundred oxen and seven thousand sheep. + +15:12 And they entered into a covenant to seek the LORD God of their +fathers with all their heart and with all their soul; 15:13 That +whosoever would not seek the LORD God of Israel should be put to +death, whether small or great, whether man or woman. + +15:14 And they sware unto the LORD with a loud voice, and with +shouting, and with trumpets, and with cornets. + +15:15 And all Judah rejoiced at the oath: for they had sworn with all +their heart, and sought him with their whole desire; and he was found +of them: and the LORD gave them rest round about. + +15:16 And also concerning Maachah the mother of Asa the king, he +removed her from being queen, because she had made an idol in a grove: +and Asa cut down her idol, and stamped it, and burnt it at the brook +Kidron. + +15:17 But the high places were not taken away out of Israel: +nevertheless the heart of Asa was perfect all his days. + +15:18 And he brought into the house of God the things that his father +had dedicated, and that he himself had dedicated, silver, and gold, +and vessels. + +15:19 And there was no more war unto the five and thirtieth year of +the reign of Asa. + +16:1 In the six and thirtieth year of the reign of Asa Baasha king of +Israel came up against Judah, and built Ramah, to the intent that he +might let none go out or come in to Asa king of Judah. + +16:2 Then Asa brought out silver and gold out of the treasures of the +house of the LORD and of the king's house, and sent to Benhadad king +of Syria, that dwelt at Damascus, saying, 16:3 There is a league +between me and thee, as there was between my father and thy father: +behold, I have sent thee silver and gold; go, break thy league with +Baasha king of Israel, that he may depart from me. + +16:4 And Benhadad hearkened unto king Asa, and sent the captains of +his armies against the cities of Israel; and they smote Ijon, and Dan, +and Abelmaim, and all the store cities of Naphtali. + +16:5 And it came to pass, when Baasha heard it, that he left off +building of Ramah, and let his work cease. + +16:6 Then Asa the king took all Judah; and they carried away the +stones of Ramah, and the timber thereof, wherewith Baasha was +building; and he built therewith Geba and Mizpah. + +16:7 And at that time Hanani the seer came to Asa king of Judah, and +said unto him, Because thou hast relied on the king of Syria, and not +relied on the LORD thy God, therefore is the host of the king of Syria +escaped out of thine hand. + +16:8 Were not the Ethiopians and the Lubims a huge host, with very +many chariots and horsemen? yet, because thou didst rely on the LORD, +he delivered them into thine hand. + +16:9 For the eyes of the LORD run to and fro throughout the whole +earth, to shew himself strong in the behalf of them whose heart is +perfect toward him. Herein thou hast done foolishly: therefore from +henceforth thou shalt have wars. + +16:10 Then Asa was wroth with the seer, and put him in a prison house; +for he was in a rage with him because of this thing. And Asa oppressed +some of the people the same time. + +16:11 And, behold, the acts of Asa, first and last, lo, they are +written in the book of the kings of Judah and Israel. + +16:12 And Asa in the thirty and ninth year of his reign was diseased +in his feet, until his disease was exceeding great: yet in his disease +he sought not to the LORD, but to the physicians. + +16:13 And Asa slept with his fathers, and died in the one and fortieth +year of his reign. + +16:14 And they buried him in his own sepulchres, which he had made for +himself in the city of David, and laid him in the bed which was filled +with sweet odours and divers kinds of spices prepared by the +apothecaries' art: and they made a very great burning for him. + +17:1 And Jehoshaphat his son reigned in his stead, and strengthened +himself against Israel. + +17:2 And he placed forces in all the fenced cities of Judah, and set +garrisons in the land of Judah, and in the cities of Ephraim, which +Asa his father had taken. + +17:3 And the LORD was with Jehoshaphat, because he walked in the first +ways of his father David, and sought not unto Baalim; 17:4 But sought +to the Lord God of his father, and walked in his commandments, and not +after the doings of Israel. + +17:5 Therefore the LORD stablished the kingdom in his hand; and all +Judah brought to Jehoshaphat presents; and he had riches and honour in +abundance. + +17:6 And his heart was lifted up in the ways of the LORD: moreover he +took away the high places and groves out of Judah. + +17:7 Also in the third year of his reign he sent to his princes, even +to Benhail, and to Obadiah, and to Zechariah, and to Nethaneel, and to +Michaiah, to teach in the cities of Judah. + +17:8 And with them he sent Levites, even Shemaiah, and Nethaniah, and +Zebadiah, and Asahel, and Shemiramoth, and Jehonathan, and Adonijah, +and Tobijah, and Tobadonijah, Levites; and with them Elishama and +Jehoram, priests. + +17:9 And they taught in Judah, and had the book of the law of the LORD +with them, and went about throughout all the cities of Judah, and +taught the people. + +17:10 And the fear of the LORD fell upon all the kingdoms of the lands +that were round about Judah, so that they made no war against +Jehoshaphat. + +17:11 Also some of the Philistines brought Jehoshaphat presents, and +tribute silver; and the Arabians brought him flocks, seven thousand +and seven hundred rams, and seven thousand and seven hundred he goats. + +17:12 And Jehoshaphat waxed great exceedingly; and he built in Judah +castles, and cities of store. + +17:13 And he had much business in the cities of Judah: and the men of +war, mighty men of valour, were in Jerusalem. + +17:14 And these are the numbers of them according to the house of +their fathers: Of Judah, the captains of thousands; Adnah the chief, +and with him mighty men of valour three hundred thousand. + +17:15 And next to him was Jehohanan the captain, and with him two +hundred and fourscore thousand. + +17:16 And next him was Amasiah the son of Zichri, who willingly +offered himself unto the LORD; and with him two hundred thousand +mighty men of valour. + +17:17 And of Benjamin; Eliada a mighty man of valour, and with him +armed men with bow and shield two hundred thousand. + +17:18 And next him was Jehozabad, and with him an hundred and +fourscore thousand ready prepared for the war. + +17:19 These waited on the king, beside those whom the king put in the +fenced cities throughout all Judah. + +18:1 Now Jehoshaphat had riches and honour in abundance, and joined +affinity with Ahab. + +18:2 And after certain years he went down to Ahab to Samaria. And Ahab +killed sheep and oxen for him in abundance, and for the people that he +had with him, and persuaded him to go up with him to Ramothgilead. + +18:3 And Ahab king of Israel said unto Jehoshaphat king of Judah, Wilt +thou go with me to Ramothgilead? And he answered him, I am as thou +art, and my people as thy people; and we will be with thee in the war. + +18:4 And Jehoshaphat said unto the king of Israel, Enquire, I pray +thee, at the word of the LORD to day. + +18:5 Therefore the king of Israel gathered together of prophets four +hundred men, and said unto them, Shall we go to Ramothgilead to +battle, or shall I forbear? And they said, Go up; for God will deliver +it into the king's hand. + +18:6 But Jehoshaphat said, Is there not here a prophet of the LORD +besides, that we might enquire of him? 18:7 And the king of Israel +said unto Jehoshaphat, There is yet one man, by whom we may enquire of +the LORD: but I hate him; for he never prophesied good unto me, but +always evil: the same is Micaiah the son of Imla. And Jehoshaphat +said, Let not the king say so. + +18:8 And the king of Israel called for one of his officers, and said, +Fetch quickly Micaiah the son of Imla. + +18:9 And the king of Israel and Jehoshaphat king of Judah sat either +of them on his throne, clothed in their robes, and they sat in a void +place at the entering in of the gate of Samaria; and all the prophets +prophesied before them. + +18:10 And Zedekiah the son of Chenaanah had made him horns of iron, +and said, Thus saith the LORD, With these thou shalt push Syria until +they be consumed. + +18:11 And all the prophets prophesied so, saying, Go up to +Ramothgilead, and prosper: for the LORD shall deliver it into the hand +of the king. + +18:12 And the messenger that went to call Micaiah spake to him, +saying, Behold, the words of the prophets declare good to the king +with one assent; let thy word therefore, I pray thee, be like one of +their's, and speak thou good. + +18:13 And Micaiah said, As the LORD liveth, even what my God saith, +that will I speak. + +18:14 And when he was come to the king, the king said unto him, +Micaiah, shall we go to Ramothgilead to battle, or shall I forbear? +And he said, Go ye up, and prosper, and they shall be delivered into +your hand. + +18:15 And the king said to him, How many times shall I adjure thee +that thou say nothing but the truth to me in the name of the LORD? +18:16 Then he said, I did see all Israel scattered upon the mountains, +as sheep that have no shepherd: and the LORD said, These have no +master; let them return therefore every man to his house in peace. + +18:17 And the king of Israel said to Jehoshaphat, Did I not tell thee +that he would not prophesy good unto me, but evil? 18:18 Again he +said, Therefore hear the word of the LORD; I saw the LORD sitting upon +his throne, and all the host of heaven standing on his right hand and +on his left. + +18:19 And the LORD said, Who shall entice Ahab king of Israel, that he +may go up and fall at Ramothgilead? And one spake saying after this +manner, and another saying after that manner. + +18:20 Then there came out a spirit, and stood before the LORD, and +said, I will entice him. And the LORD said unto him, Wherewith? 18:21 +And he said, I will go out, and be a lying spirit in the mouth of all +his prophets. And the Lord said, Thou shalt entice him, and thou shalt +also prevail: go out, and do even so. + +18:22 Now therefore, behold, the LORD hath put a lying spirit in the +mouth of these thy prophets, and the LORD hath spoken evil against +thee. + +18:23 Then Zedekiah the son of Chenaanah came near, and smote Micaiah +upon the cheek, and said, Which way went the Spirit of the LORD from +me to speak unto thee? 18:24 And Micaiah said, Behold, thou shalt see +on that day when thou shalt go into an inner chamber to hide thyself. + +18:25 Then the king of Israel said, Take ye Micaiah, and carry him +back to Amon the governor of the city, and to Joash the king's son; +18:26 And say, Thus saith the king, Put this fellow in the prison, and +feed him with bread of affliction and with water of affliction, until +I return in peace. + +18:27 And Micaiah said, If thou certainly return in peace, then hath +not the LORD spoken by me. And he said, Hearken, all ye people. + +18:28 So the king of Israel and Jehoshaphat the king of Judah went up +to Ramothgilead. + +18:29 And the king of Israel said unto Jehoshaphat, I will disguise +myself, and I will go to the battle; but put thou on thy robes. So the +king of Israel disguised himself; and they went to the battle. + +18:30 Now the king of Syria had commanded the captains of the chariots +that were with him, saying, Fight ye not with small or great, save +only with the king of Israel. + +18:31 And it came to pass, when the captains of the chariots saw +Jehoshaphat, that they said, It is the king of Israel. Therefore they +compassed about him to fight: but Jehoshaphat cried out, and the LORD +helped him; and God moved them to depart from him. + +18:32 For it came to pass, that, when the captains of the chariots +perceived that it was not the king of Israel, they turned back again +from pursuing him. + +18:33 And a certain man drew a bow at a venture, and smote the king of +Israel between the joints of the harness: therefore he said to his +chariot man, Turn thine hand, that thou mayest carry me out of the +host; for I am wounded. + +18:34 And the battle increased that day: howbeit the king of Israel +stayed himself up in his chariot against the Syrians until the even: +and about the time of the sun going down he died. + +19:1 And Jehoshaphat the king of Judah returned to his house in peace +to Jerusalem. + +19:2 And Jehu the son of Hanani the seer went out to meet him, and +said to king Jehoshaphat, Shouldest thou help the ungodly, and love +them that hate the LORD? therefore is wrath upon thee from before the +LORD. + +19:3 Nevertheless there are good things found in thee, in that thou +hast taken away the groves out of the land, and hast prepared thine +heart to seek God. + +19:4 And Jehoshaphat dwelt at Jerusalem: and he went out again through +the people from Beersheba to mount Ephraim, and brought them back unto +the LORD God of their fathers. + +19:5 And he set judges in the land throughout all the fenced cities of +Judah, city by city, 19:6 And said to the judges, Take heed what ye +do: for ye judge not for man, but for the LORD, who is with you in the +judgment. + +19:7 Wherefore now let the fear of the LORD be upon you; take heed and +do it: for there is no iniquity with the LORD our God, nor respect of +persons, nor taking of gifts. + +19:8 Moreover in Jerusalem did Jehoshaphat set of the Levites, and of +the priests, and of the chief of the fathers of Israel, for the +judgment of the LORD, and for controversies, when they returned to +Jerusalem. + +19:9 And he charged them, saying, Thus shall ye do in the fear of the +LORD, faithfully, and with a perfect heart. + +19:10 And what cause soever shall come to you of your brethren that +dwell in your cities, between blood and blood, between law and +commandment, statutes and judgments, ye shall even warn them that they +trespass not against the LORD, and so wrath come upon you, and upon +your brethren: this do, and ye shall not trespass. + +19:11 And, behold, Amariah the chief priest is over you in all matters +of the LORD; and Zebadiah the son of Ishmael, the ruler of the house +of Judah, for all the king's matters: also the Levites shall be +officers before you. Deal courageously, and the LORD shall be with the +good. + +20:1 It came to pass after this also, that the children of Moab, and +the children of Ammon, and with them other beside the Ammonites, came +against Jehoshaphat to battle. + +20:2 Then there came some that told Jehoshaphat, saying, There cometh +a great multitude against thee from beyond the sea on this side Syria; +and, behold, they be in Hazazontamar, which is Engedi. + +20:3 And Jehoshaphat feared, and set himself to seek the LORD, and +proclaimed a fast throughout all Judah. + +20:4 And Judah gathered themselves together, to ask help of the LORD: +even out of all the cities of Judah they came to seek the LORD. + +20:5 And Jehoshaphat stood in the congregation of Judah and Jerusalem, +in the house of the LORD, before the new court, 20:6 And said, O LORD +God of our fathers, art not thou God in heaven? and rulest not thou +over all the kingdoms of the heathen? and in thine hand is there not +power and might, so that none is able to withstand thee? 20:7 Art not +thou our God, who didst drive out the inhabitants of this land before +thy people Israel, and gavest it to the seed of Abraham thy friend for +ever? 20:8 And they dwelt therein, and have built thee a sanctuary +therein for thy name, saying, 20:9 If, when evil cometh upon us, as +the sword, judgment, or pestilence, or famine, we stand before this +house, and in thy presence, (for thy name is in this house,) and cry +unto thee in our affliction, then thou wilt hear and help. + +20:10 And now, behold, the children of Ammon and Moab and mount Seir, +whom thou wouldest not let Israel invade, when they came out of the +land of Egypt, but they turned from them, and destroyed them not; +20:11 Behold, I say, how they reward us, to come to cast us out of thy +possession, which thou hast given us to inherit. + +20:12 O our God, wilt thou not judge them? for we have no might +against this great company that cometh against us; neither know we +what to do: but our eyes are upon thee. + +20:13 And all Judah stood before the LORD, with their little ones, +their wives, and their children. + +20:14 Then upon Jahaziel the son of Zechariah, the son of Benaiah, the +son of Jeiel, the son of Mattaniah, a Levite of the sons of Asaph, +came the Spirit of the LORD in the midst of the congregation; 20:15 +And he said, Hearken ye, all Judah, and ye inhabitants of Jerusalem, +and thou king Jehoshaphat, Thus saith the LORD unto you, Be not afraid +nor dismayed by reason of this great multitude; for the battle is not +yours, but God's. + +20:16 To morrow go ye down against them: behold, they come up by the +cliff of Ziz; and ye shall find them at the end of the brook, before +the wilderness of Jeruel. + +20:17 Ye shall not need to fight in this battle: set yourselves, stand +ye still, and see the salvation of the LORD with you, O Judah and +Jerusalem: fear not, nor be dismayed; to morrow go out against them: +for the LORD will be with you. + +20:18 And Jehoshaphat bowed his head with his face to the ground: and +all Judah and the inhabitants of Jerusalem fell before the LORD, +worshipping the LORD. + +20:19 And the Levites, of the children of the Kohathites, and of the +children of the Korhites, stood up to praise the LORD God of Israel +with a loud voice on high. + +20:20 And they rose early in the morning, and went forth into the +wilderness of Tekoa: and as they went forth, Jehoshaphat stood and +said, Hear me, O Judah, and ye inhabitants of Jerusalem; Believe in +the LORD your God, so shall ye be established; believe his prophets, +so shall ye prosper. + +20:21 And when he had consulted with the people, he appointed singers +unto the LORD, and that should praise the beauty of holiness, as they +went out before the army, and to say, Praise the LORD; for his mercy +endureth for ever. + +20:22 And when they began to sing and to praise, the LORD set +ambushments against the children of Ammon, Moab, and mount Seir, which +were come against Judah; and they were smitten. + +20:23 For the children of Ammon and Moab stood up against the +inhabitants of mount Seir, utterly to slay and destroy them: and when +they had made an end of the inhabitants of Seir, every one helped to +destroy another. + +20:24 And when Judah came toward the watch tower in the wilderness, +they looked unto the multitude, and, behold, they were dead bodies +fallen to the earth, and none escaped. + +20:25 And when Jehoshaphat and his people came to take away the spoil +of them, they found among them in abundance both riches with the dead +bodies, and precious jewels, which they stripped off for themselves, +more than they could carry away: and they were three days in gathering +of the spoil, it was so much. + +20:26 And on the fourth day they assembled themselves in the valley of +Berachah; for there they blessed the LORD: therefore the name of the +same place was called, The valley of Berachah, unto this day. + +20:27 Then they returned, every man of Judah and Jerusalem, and +Jehoshaphat in the forefront of them, to go again to Jerusalem with +joy; for the LORD had made them to rejoice over their enemies. + +20:28 And they came to Jerusalem with psalteries and harps and +trumpets unto the house of the LORD. + +20:29 And the fear of God was on all the kingdoms of those countries, +when they had heard that the LORD fought against the enemies of +Israel. + +20:30 So the realm of Jehoshaphat was quiet: for his God gave him rest +round about. + +20:31 And Jehoshaphat reigned over Judah: he was thirty and five years +old when he began to reign, and he reigned twenty and five years in +Jerusalem. + +And his mother's name was Azubah the daughter of Shilhi. + +20:32 And he walked in the way of Asa his father, and departed not +from it, doing that which was right in the sight of the LORD. + +20:33 Howbeit the high places were not taken away: for as yet the +people had not prepared their hearts unto the God of their fathers. + +20:34 Now the rest of the acts of Jehoshaphat, first and last, behold, +they are written in the book of Jehu the son of Hanani, who is +mentioned in the book of the kings of Israel. + +20:35 And after this did Jehoshaphat king of Judah join himself with +Ahaziah king of Israel, who did very wickedly: 20:36 And he joined +himself with him to make ships to go to Tarshish: and they made the +ships in Eziongaber. + +20:37 Then Eliezer the son of Dodavah of Mareshah prophesied against +Jehoshaphat, saying, Because thou hast joined thyself with Ahaziah, +the LORD hath broken thy works. And the ships were broken, that they +were not able to go to Tarshish. + +21:1 Now Jehoshaphat slept with his fathers, and was buried with his +fathers in the city of David. And Jehoram his son reigned in his +stead. + +21:2 And he had brethren the sons of Jehoshaphat, Azariah, and Jehiel, +and Zechariah, and Azariah, and Michael, and Shephatiah: all these +were the sons of Jehoshaphat king of Israel. + +21:3 And their father gave them great gifts of silver, and of gold, +and of precious things, with fenced cities in Judah: but the kingdom +gave he to Jehoram; because he was the firstborn. + +21:4 Now when Jehoram was risen up to the kingdom of his father, he +strengthened himself, and slew all his brethren with the sword, and +divers also of the princes of Israel. + +21:5 Jehoram was thirty and two years old when he began to reign, and +he reigned eight years in Jerusalem. + +21:6 And he walked in the way of the kings of Israel, like as did the +house of Ahab: for he had the daughter of Ahab to wife: and he wrought +that which was evil in the eyes of the LORD. + +21:7 Howbeit the LORD would not destroy the house of David, because of +the covenant that he had made with David, and as he promised to give a +light to him and to his sons for ever. + +21:8 In his days the Edomites revolted from under the dominion of +Judah, and made themselves a king. + +21:9 Then Jehoram went forth with his princes, and all his chariots +with him: and he rose up by night, and smote the Edomites which +compassed him in, and the captains of the chariots. + +21:10 So the Edomites revolted from under the hand of Judah unto this +day. + +The same time also did Libnah revolt from under his hand; because he +had forsaken the LORD God of his fathers. + +21:11 Moreover he made high places in the mountains of Judah and +caused the inhabitants of Jerusalem to commit fornication, and +compelled Judah thereto. + +21:12 And there came a writing to him from Elijah the prophet, saying, +Thus saith the LORD God of David thy father, Because thou hast not +walked in the ways of Jehoshaphat thy father, nor in the ways of Asa +king of Judah, 21:13 But hast walked in the way of the kings of +Israel, and hast made Judah and the inhabitants of Jerusalem to go a +whoring, like to the whoredoms of the house of Ahab, and also hast +slain thy brethren of thy father's house, which were better than +thyself: 21:14 Behold, with a great plague will the LORD smite thy +people, and thy children, and thy wives, and all thy goods: 21:15 And +thou shalt have great sickness by disease of thy bowels, until thy +bowels fall out by reason of the sickness day by day. + +21:16 Moreover the LORD stirred up against Jehoram the spirit of the +Philistines, and of the Arabians, that were near the Ethiopians: 21:17 +And they came up into Judah, and brake into it, and carried away all +the substance that was found in the king's house, and his sons also, +and his wives; so that there was never a son left him, save Jehoahaz, +the youngest of his sons. + +21:18 And after all this the LORD smote him in his bowels with an +incurable disease. + +21:19 And it came to pass, that in process of time, after the end of +two years, his bowels fell out by reason of his sickness: so he died +of sore diseases. And his people made no burning for him, like the +burning of his fathers. + +21:20 Thirty and two years old was he when he began to reign, and he +reigned in Jerusalem eight years, and departed without being desired. +Howbeit they buried him in the city of David, but not in the +sepulchres of the kings. + +22:1 And the inhabitants of Jerusalem made Ahaziah his youngest son +king in his stead: for the band of men that came with the Arabians to +the camp had slain all the eldest. So Ahaziah the son of Jehoram king +of Judah reigned. + +22:2 Forty and two years old was Ahaziah when he began to reign, and +he reigned one year in Jerusalem. His mother's name also was Athaliah +the daughter of Omri. + +22:3 He also walked in the ways of the house of Ahab: for his mother +was his counsellor to do wickedly. + +22:4 Wherefore he did evil in the sight of the LORD like the house of +Ahab: for they were his counsellors after the death of his father to +his destruction. + +22:5 He walked also after their counsel, and went with Jehoram the son +of Ahab king of Israel to war against Hazael king of Syria at +Ramothgilead: and the Syrians smote Joram. + +22:6 And he returned to be healed in Jezreel because of the wounds +which were given him at Ramah, when he fought with Hazael king of +Syria. And Azariah the son of Jehoram king of Judah went down to see +Jehoram the son of Ahab at Jezreel, because he was sick. + +22:7 And the destruction of Ahaziah was of God by coming to Joram: for +when he was come, he went out with Jehoram against Jehu the son of +Nimshi, whom the LORD had anointed to cut off the house of Ahab. + +22:8 And it came to pass, that, when Jehu was executing judgment upon +the house of Ahab, and found the princes of Judah, and the sons of the +brethren of Ahaziah, that ministered to Ahaziah, he slew them. + +22:9 And he sought Ahaziah: and they caught him, (for he was hid in +Samaria,) and brought him to Jehu: and when they had slain him, they +buried him: Because, said they, he is the son of Jehoshaphat, who +sought the LORD with all his heart. So the house of Ahaziah had no +power to keep still the kingdom. + +22:10 But when Athaliah the mother of Ahaziah saw that her son was +dead, she arose and destroyed all the seed royal of the house of +Judah. + +22:11 But Jehoshabeath, the daughter of the king, took Joash the son +of Ahaziah, and stole him from among the king's sons that were slain, +and put him and his nurse in a bedchamber. So Jehoshabeath, the +daughter of king Jehoram, the wife of Jehoiada the priest, (for she +was the sister of Ahaziah,) hid him from Athaliah, so that she slew +him not. + +22:12 And he was with them hid in the house of God six years: and +Athaliah reigned over the land. + +23:1 And in the seventh year Jehoiada strengthened himself, and took +the captains of hundreds, Azariah the son of Jeroham, and Ishmael the +son of Jehohanan, and Azariah the son of Obed, and Maaseiah the son of +Adaiah, and Elishaphat the son of Zichri, into covenant with him. + +23:2 And they went about in Judah, and gathered the Levites out of all +the cities of Judah, and the chief of the fathers of Israel, and they +came to Jerusalem. + +23:3 And all the congregation made a covenant with the king in the +house of God. And he said unto them, Behold, the king's son shall +reign, as the LORD hath said of the sons of David. + +23:4 This is the thing that ye shall do; A third part of you entering +on the sabbath, of the priests and of the Levites, shall be porters of +the doors; 23:5 And a third part shall be at the king's house; and a +third part at the gate of the foundation: and all the people shall be +in the courts of the house of the LORD. + +23:6 But let none come into the house of the LORD, save the priests, +and they that minister of the Levites; they shall go in, for they are +holy: but all the people shall keep the watch of the LORD. + +23:7 And the Levites shall compass the king round about, every man +with his weapons in his hand; and whosoever else cometh into the +house, he shall be put to death: but be ye with the king when he +cometh in, and when he goeth out. + +23:8 So the Levites and all Judah did according to all things that +Jehoiada the priest had commanded, and took every man his men that +were to come in on the sabbath, with them that were to go out on the +sabbath: for Jehoiada the priest dismissed not the courses. + +23:9 Moreover Jehoiada the priest delivered to the captains of +hundreds spears, and bucklers, and shields, that had been king +David's, which were in the house of God. + +23:10 And he set all the people, every man having his weapon in his +hand, from the right side of the temple to the left side of the +temple, along by the altar and the temple, by the king round about. + +23:11 Then they brought out the king's son, and put upon him the +crown, and gave him the testimony, and made him king. And Jehoiada and +his sons anointed him, and said, God save the king. + +23:12 Now when Athaliah heard the noise of the people running and +praising the king, she came to the people into the house of the LORD: +23:13 And she looked, and, behold, the king stood at his pillar at the +entering in, and the princes and the trumpets by the king: and all the +people of the land rejoiced, and sounded with trumpets, also the +singers with instruments of musick, and such as taught to sing praise. +Then Athaliah rent her clothes, and said, Treason, Treason. + +23:14 Then Jehoiada the priest brought out the captains of hundreds +that were set over the host, and said unto them, Have her forth of the +ranges: and whoso followeth her, let him be slain with the sword. For +the priest said, Slay her not in the house of the LORD. + +23:15 So they laid hands on her; and when she was come to the entering +of the horse gate by the king's house, they slew her there. + +23:16 And Jehoiada made a covenant between him, and between all the +people, and between the king, that they should be the LORD's people. + +23:17 Then all the people went to the house of Baal, and brake it +down, and brake his altars and his images in pieces, and slew Mattan +the priest of Baal before the altars. + +23:18 Also Jehoiada appointed the offices of the house of the LORD by +the hand of the priests the Levites, whom David had distributed in the +house of the LORD, to offer the burnt offerings of the LORD, as it is +written in the law of Moses, with rejoicing and with singing, as it +was ordained by David. + +23:19 And he set the porters at the gates of the house of the LORD, +that none which was unclean in any thing should enter in. + +23:20 And he took the captains of hundreds, and the nobles, and the +governors of the people, and all the people of the land, and brought +down the king from the house of the LORD: and they came through the +high gate into the king's house, and set the king upon the throne of +the kingdom. + +23:21 And all the people of the land rejoiced: and the city was quiet, +after that they had slain Athaliah with the sword. + +24:1 Joash was seven years old when he began to reign, and he reigned +forty years in Jerusalem. His mother's name also was Zibiah of +Beersheba. + +24:2 And Joash did that which was right in the sight of the LORD all +the days of Jehoiada the priest. + +24:3 And Jehoiada took for him two wives; and he begat sons and +daughters. + +24:4 And it came to pass after this, that Joash was minded to repair +the house of the LORD. + +24:5 And he gathered together the priests and the Levites, and said to +them, Go out unto the cities of Judah, and gather of all Israel money +to repair the house of your God from year to year, and see that ye +hasten the matter. Howbeit the Levites hastened it not. + +24:6 And the king called for Jehoiada the chief, and said unto him, +Why hast thou not required of the Levites to bring in out of Judah and +out of Jerusalem the collection, according to the commandment of Moses +the servant of the LORD, and of the congregation of Israel, for the +tabernacle of witness? 24:7 For the sons of Athaliah, that wicked +woman, had broken up the house of God; and also all the dedicated +things of the house of the LORD did they bestow upon Baalim. + +24:8 And at the king's commandment they made a chest, and set it +without at the gate of the house of the LORD. + +24:9 And they made a proclamation through Judah and Jerusalem, to +bring in to the LORD the collection that Moses the servant of God laid +upon Israel in the wilderness. + +24:10 And all the princes and all the people rejoiced, and brought in, +and cast into the chest, until they had made an end. + +24:11 Now it came to pass, that at what time the chest was brought +unto the king's office by the hand of the Levites, and when they saw +that there was much money, the king's scribe and the high priest's +officer came and emptied the chest, and took it, and carried it to his +place again. Thus they did day by day, and gathered money in +abundance. + +24:12 And the king and Jehoiada gave it to such as did the work of the +service of the house of the LORD, and hired masons and carpenters to +repair the house of the LORD, and also such as wrought iron and brass +to mend the house of the LORD. + +24:13 So the workmen wrought, and the work was perfected by them, and +they set the house of God in his state, and strengthened it. + +24:14 And when they had finished it, they brought the rest of the +money before the king and Jehoiada, whereof were made vessels for the +house of the LORD, even vessels to minister, and to offer withal, and +spoons, and vessels of gold and silver. And they offered burnt +offerings in the house of the LORD continually all the days of +Jehoiada. + +24:15 But Jehoiada waxed old, and was full of days when he died; an +hundred and thirty years old was he when he died. + +24:16 And they buried him in the city of David among the kings, +because he had done good in Israel, both toward God, and toward his +house. + +24:17 Now after the death of Jehoiada came the princes of Judah, and +made obeisance to the king. Then the king hearkened unto them. + +24:18 And they left the house of the LORD God of their fathers, and +served groves and idols: and wrath came upon Judah and Jerusalem for +this their trespass. + +24:19 Yet he sent prophets to them, to bring them again unto the LORD; +and they testified against them: but they would not give ear. + +24:20 And the Spirit of God came upon Zechariah the son of Jehoiada +the priest, which stood above the people, and said unto them, Thus +saith God, Why transgress ye the commandments of the LORD, that ye +cannot prosper? because ye have forsaken the LORD, he hath also +forsaken you. + +24:21 And they conspired against him, and stoned him with stones at +the commandment of the king in the court of the house of the LORD. + +24:22 Thus Joash the king remembered not the kindness which Jehoiada +his father had done to him, but slew his son. And when he died, he +said, The LORD look upon it, and require it. + +24:23 And it came to pass at the end of the year, that the host of +Syria came up against him: and they came to Judah and Jerusalem, and +destroyed all the princes of the people from among the people, and +sent all the spoil of them unto the king of Damascus. + +24:24 For the army of the Syrians came with a small company of men, +and the LORD delivered a very great host into their hand, because they +had forsaken the LORD God of their fathers. So they executed judgment +against Joash. + +24:25 And when they were departed from him, (for they left him in +great diseases,) his own servants conspired against him for the blood +of the sons of Jehoiada the priest, and slew him on his bed, and he +died: and they buried him in the city of David, but they buried him +not in the sepulchres of the kings. + +24:26 And these are they that conspired against him; Zabad the son of +Shimeath an Ammonitess, and Jehozabad the son of Shimrith a Moabitess. + +24:27 Now concerning his sons, and the greatness of the burdens laid +upon him, and the repairing of the house of God, behold, they are +written in the story of the book of the kings. And Amaziah his son +reigned in his stead. + +25:1 Amaziah was twenty and five years old when he began to reign, and +he reigned twenty and nine years in Jerusalem. And his mother's name +was Jehoaddan of Jerusalem. + +25:2 And he did that which was right in the sight of the LORD, but not +with a perfect heart. + +25:3 Now it came to pass, when the kingdom was established to him, +that he slew his servants that had killed the king his father. + +25:4 But he slew not their children, but did as it is written in the +law in the book of Moses, where the LORD commanded, saying, The +fathers shall not die for the children, neither shall the children die +for the fathers, but every man shall die for his own sin. + +25:5 Moreover Amaziah gathered Judah together, and made them captains +over thousands, and captains over hundreds, according to the houses of +their fathers, throughout all Judah and Benjamin: and he numbered them +from twenty years old and above, and found them three hundred thousand +choice men, able to go forth to war, that could handle spear and +shield. + +25:6 He hired also an hundred thousand mighty men of valour out of +Israel for an hundred talents of silver. + +25:7 But there came a man of God to him, saying, O king, let not the +army of Israel go with thee; for the LORD is not with Israel, to wit, +with all the children of Ephraim. + +25:8 But if thou wilt go, do it; be strong for the battle: God shall +make thee fall before the enemy: for God hath power to help, and to +cast down. + +25:9 And Amaziah said to the man of God, But what shall we do for the +hundred talents which I have given to the army of Israel? And the man +of God answered, The LORD is able to give thee much more than this. + +25:10 Then Amaziah separated them, to wit, the army that was come to +him out of Ephraim, to go home again: wherefore their anger was +greatly kindled against Judah, and they returned home in great anger. + +25:11 And Amaziah strengthened himself, and led forth his people, and +went to the valley of salt, and smote of the children of Seir ten +thousand. + +25:12 And other ten thousand left alive did the children of Judah +carry away captive, and brought them unto the top of the rock, and +cast them down from the top of the rock, that they all were broken in +pieces. + +25:13 But the soldiers of the army which Amaziah sent back, that they +should not go with him to battle, fell upon the cities of Judah, from +Samaria even unto Bethhoron, and smote three thousand of them, and +took much spoil. + +25:14 Now it came to pass, after that Amaziah was come from the +slaughter of the Edomites, that he brought the gods of the children of +Seir, and set them up to be his gods, and bowed down himself before +them, and burned incense unto them. + +25:15 Wherefore the anger of the LORD was kindled against Amaziah, and +he sent unto him a prophet, which said unto him, Why hast thou sought +after the gods of the people, which could not deliver their own people +out of thine hand? 25:16 And it came to pass, as he talked with him, +that the king said unto him, Art thou made of the king's counsel? +forbear; why shouldest thou be smitten? Then the prophet forbare, and +said, I know that God hath determined to destroy thee, because thou +hast done this, and hast not hearkened unto my counsel. + +25:17 Then Amaziah king of Judah took advice, and sent to Joash, the +son of Jehoahaz, the son of Jehu, king of Israel, saying, Come, let us +see one another in the face. + +25:18 And Joash king of Israel sent to Amaziah king of Judah, saying, +The thistle that was in Lebanon sent to the cedar that was in Lebanon, +saying, Give thy daughter to my son to wife: and there passed by a +wild beast that was in Lebanon, and trode down the thistle. + +25:19 Thou sayest, Lo, thou hast smitten the Edomites; and thine heart +lifteth thee up to boast: abide now at home; why shouldest thou meddle +to thine hurt, that thou shouldest fall, even thou, and Judah with +thee? 25:20 But Amaziah would not hear; for it came of God, that he +might deliver them into the hand of their enemies, because they sought +after the gods of Edom. + +25:21 So Joash the king of Israel went up; and they saw one another in +the face, both he and Amaziah king of Judah, at Bethshemesh, which +belongeth to Judah. + +25:22 And Judah was put to the worse before Israel, and they fled +every man to his tent. + +25:23 And Joash the king of Israel took Amaziah king of Judah, the son +of Joash, the son of Jehoahaz, at Bethshemesh, and brought him to +Jerusalem, and brake down the wall of Jerusalem from the gate of +Ephraim to the corner gate, four hundred cubits. + +25:24 And he took all the gold and the silver, and all the vessels +that were found in the house of God with Obededom, and the treasures +of the king's house, the hostages also, and returned to Samaria. + +25:25 And Amaziah the son of Joash king of Judah lived after the death +of Joash son of Jehoahaz king of Israel fifteen years. + +25:26 Now the rest of the acts of Amaziah, first and last, behold, are +they not written in the book of the kings of Judah and Israel? 25:27 +Now after the time that Amaziah did turn away from following the LORD +they made a conspiracy against him in Jerusalem; and he fled to +Lachish: but they sent to Lachish after him, and slew him there. + +25:28 And they brought him upon horses, and buried him with his +fathers in the city of Judah. + +26:1 Then all the people of Judah took Uzziah, who was sixteen years +old, and made him king in the room of his father Amaziah. + +26:2 He built Eloth, and restored it to Judah, after that the king +slept with his fathers. + +26:3 Sixteen years old was Uzziah when he began to reign, and he +reigned fifty and two years in Jerusalem. His mother's name also was +Jecoliah of Jerusalem. + +26:4 And he did that which was right in the sight of the LORD, +according to all that his father Amaziah did. + +26:5 And he sought God in the days of Zechariah, who had understanding +in the visions of God: and as long as he sought the LORD, God made him +to prosper. + +26:6 And he went forth and warred against the Philistines, and brake +down the wall of Gath, and the wall of Jabneh, and the wall of Ashdod, +and built cities about Ashdod, and among the Philistines. + +26:7 And God helped him against the Philistines, and against the +Arabians that dwelt in Gurbaal, and the Mehunims. + +26:8 And the Ammonites gave gifts to Uzziah: and his name spread +abroad even to the entering in of Egypt; for he strengthened himself +exceedingly. + +26:9 Moreover Uzziah built towers in Jerusalem at the corner gate, and +at the valley gate, and at the turning of the wall, and fortified +them. + +26:10 Also he built towers in the desert, and digged many wells: for +he had much cattle, both in the low country, and in the plains: +husbandmen also, and vine dressers in the mountains, and in Carmel: +for he loved husbandry. + +26:11 Moreover Uzziah had an host of fighting men, that went out to +war by bands, according to the number of their account by the hand of +Jeiel the scribe and Maaseiah the ruler, under the hand of Hananiah, +one of the king's captains. + +26:12 The whole number of the chief of the fathers of the mighty men +of valour were two thousand and six hundred. + +26:13 And under their hand was an army, three hundred thousand and +seven thousand and five hundred, that made war with mighty power, to +help the king against the enemy. + +26:14 And Uzziah prepared for them throughout all the host shields, +and spears, and helmets, and habergeons, and bows, and slings to cast +stones. + +26:15 And he made in Jerusalem engines, invented by cunning men, to be +on the towers and upon the bulwarks, to shoot arrows and great stones +withal. + +And his name spread far abroad; for he was marvellously helped, till +he was strong. + +26:16 But when he was strong, his heart was lifted up to his +destruction: for he transgressed against the LORD his God, and went +into the temple of the LORD to burn incense upon the altar of incense. + +26:17 And Azariah the priest went in after him, and with him fourscore +priests of the LORD, that were valiant men: 26:18 And they withstood +Uzziah the king, and said unto him, It appertaineth not unto thee, +Uzziah, to burn incense unto the LORD, but to the priests the sons of +Aaron, that are consecrated to burn incense: go out of the sanctuary; +for thou hast trespassed; neither shall it be for thine honour from +the LORD God. + +26:19 Then Uzziah was wroth, and had a censer in his hand to burn +incense: and while he was wroth with the priests, the leprosy even +rose up in his forehead before the priests in the house of the LORD, +from beside the incense altar. + +26:20 And Azariah the chief priest, and all the priests, looked upon +him, and, behold, he was leprous in his forehead, and they thrust him +out from thence; yea, himself hasted also to go out, because the LORD +had smitten him. + +26:21 And Uzziah the king was a leper unto the day of his death, and +dwelt in a several house, being a leper; for he was cut off from the +house of the LORD: and Jotham his son was over the king's house, +judging the people of the land. + +26:22 Now the rest of the acts of Uzziah, first and last, did Isaiah +the prophet, the son of Amoz, write. + +26:23 So Uzziah slept with his fathers, and they buried him with his +fathers in the field of the burial which belonged to the kings; for +they said, He is a leper: and Jotham his son reigned in his stead. + +27:1 Jotham was twenty and five years old when he began to reign, and +he reigned sixteen years in Jerusalem. His mother's name also was +Jerushah, the daughter of Zadok. + +27:2 And he did that which was right in the sight of the LORD, +according to all that his father Uzziah did: howbeit he entered not +into the temple of the LORD. And the people did yet corruptly. + +27:3 He built the high gate of the house of the LORD, and on the wall +of Ophel he built much. + +27:4 Moreover he built cities in the mountains of Judah, and in the +forests he built castles and towers. + +27:5 He fought also with the king of the Ammonites, and prevailed +against them. And the children of Ammon gave him the same year an +hundred talents of silver, and ten thousand measures of wheat, and ten +thousand of barley. So much did the children of Ammon pay unto him, +both the second year, and the third. + +27:6 So Jotham became mighty, because he prepared his ways before the +LORD his God. + +27:7 Now the rest of the acts of Jotham, and all his wars, and his +ways, lo, they are written in the book of the kings of Israel and +Judah. + +27:8 He was five and twenty years old when he began to reign, and +reigned sixteen years in Jerusalem. + +27:9 And Jotham slept with his fathers, and they buried him in the +city of David: and Ahaz his son reigned in his stead. + +28:1 Ahaz was twenty years old when he began to reign, and he reigned +sixteen years in Jerusalem: but he did not that which was right in the +sight of the LORD, like David his father: 28:2 For he walked in the +ways of the kings of Israel, and made also molten images for Baalim. + +28:3 Moreover he burnt incense in the valley of the son of Hinnom, and +burnt his children in the fire, after the abominations of the heathen +whom the LORD had cast out before the children of Israel. + +28:4 He sacrificed also and burnt incense in the high places, and on +the hills, and under every green tree. + +28:5 Wherefore the LORD his God delivered him into the hand of the +king of Syria; and they smote him, and carried away a great multitude +of them captives, and brought them to Damascus. And he was also +delivered into the hand of the king of Israel, who smote him with a +great slaughter. + +28:6 For Pekah the son of Remaliah slew in Judah an hundred and twenty +thousand in one day, which were all valiant men; because they had +forsaken the LORD God of their fathers. + +28:7 And Zichri, a mighty man of Ephraim, slew Maaseiah the king's +son, and Azrikam the governor of the house, and Elkanah that was next +to the king. + +28:8 And the children of Israel carried away captive of their brethren +two hundred thousand, women, sons, and daughters, and took also away +much spoil from them, and brought the spoil to Samaria. + +28:9 But a prophet of the LORD was there, whose name was Oded: and he +went out before the host that came to Samaria, and said unto them, +Behold, because the LORD God of your fathers was wroth with Judah, he +hath delivered them into your hand, and ye have slain them in a rage +that reacheth up unto heaven. + +28:10 And now ye purpose to keep under the children of Judah and +Jerusalem for bondmen and bondwomen unto you: but are there not with +you, even with you, sins against the LORD your God? 28:11 Now hear me +therefore, and deliver the captives again, which ye have taken captive +of your brethren: for the fierce wrath of the LORD is upon you. + +28:12 Then certain of the heads of the children of Ephraim, Azariah +the son of Johanan, Berechiah the son of Meshillemoth, and Jehizkiah +the son of Shallum, and Amasa the son of Hadlai, stood up against them +that came from the war, 28:13 And said unto them, Ye shall not bring +in the captives hither: for whereas we have offended against the LORD +already, ye intend to add more to our sins and to our trespass: for +our trespass is great, and there is fierce wrath against Israel. + +28:14 So the armed men left the captives and the spoil before the +princes and all the congregation. + +28:15 And the men which were expressed by name rose up, and took the +captives, and with the spoil clothed all that were naked among them, +and arrayed them, and shod them, and gave them to eat and to drink, +and anointed them, and carried all the feeble of them upon asses, and +brought them to Jericho, the city of palm trees, to their brethren: +then they returned to Samaria. + +28:16 At that time did king Ahaz send unto the kings of Assyria to +help him. + +28:17 For again the Edomites had come and smitten Judah, and carried +away captives. + +28:18 The Philistines also had invaded the cities of the low country, +and of the south of Judah, and had taken Bethshemesh, and Ajalon, and +Gederoth, and Shocho with the villages thereof, and Timnah with the +villages thereof, Gimzo also and the villages thereof: and they dwelt +there. + +28:19 For the LORD brought Judah low because of Ahaz king of Israel; +for he made Judah naked, and transgressed sore against the LORD. + +28:20 And Tilgathpilneser king of Assyria came unto him, and +distressed him, but strengthened him not. + +28:21 For Ahaz took away a portion out of the house of the LORD, and +out of the house of the king, and of the princes, and gave it unto the +king of Assyria: but he helped him not. + +28:22 And in the time of his distress did he trespass yet more against +the LORD: this is that king Ahaz. + +28:23 For he sacrificed unto the gods of Damascus, which smote him: +and he said, Because the gods of the kings of Syria help them, +therefore will I sacrifice to them, that they may help me. But they +were the ruin of him, and of all Israel. + +28:24 And Ahaz gathered together the vessels of the house of God, and +cut in pieces the vessels of the house of God, and shut up the doors +of the house of the LORD, and he made him altars in every corner of +Jerusalem. + +28:25 And in every several city of Judah he made high places to burn +incense unto other gods, and provoked to anger the LORD God of his +fathers. + +28:26 Now the rest of his acts and of all his ways, first and last, +behold, they are written in the book of the kings of Judah and Israel. + +28:27 And Ahaz slept with his fathers, and they buried him in the +city, even in Jerusalem: but they brought him not into the sepulchres +of the kings of Israel: and Hezekiah his son reigned in his stead. + +29:1 Hezekiah began to reign when he was five and twenty years old, +and he reigned nine and twenty years in Jerusalem. And his mother's +name was Abijah, the daughter of Zechariah. + +29:2 And he did that which was right in the sight of the LORD, +according to all that David his father had done. + +29:3 He in the first year of his reign, in the first month, opened the +doors of the house of the LORD, and repaired them. + +29:4 And he brought in the priests and the Levites, and gathered them +together into the east street, 29:5 And said unto them, Hear me, ye +Levites, sanctify now yourselves, and sanctify the house of the LORD +God of your fathers, and carry forth the filthiness out of the holy +place. + +29:6 For our fathers have trespassed, and done that which was evil in +the eyes of the LORD our God, and have forsaken him, and have turned +away their faces from the habitation of the LORD, and turned their +backs. + +29:7 Also they have shut up the doors of the porch, and put out the +lamps, and have not burned incense nor offered burnt offerings in the +holy place unto the God of Israel. + +29:8 Wherefore the wrath of the LORD was upon Judah and Jerusalem, and +he hath delivered them to trouble, to astonishment, and to hissing, as +ye see with your eyes. + +29:9 For, lo, our fathers have fallen by the sword, and our sons and +our daughters and our wives are in captivity for this. + +29:10 Now it is in mine heart to make a covenant with the LORD God of +Israel, that his fierce wrath may turn away from us. + +29:11 My sons, be not now negligent: for the LORD hath chosen you to +stand before him, to serve him, and that ye should minister unto him, +and burn incense. + +29:12 Then the Levites arose, Mahath the son of Amasai, and Joel the +son of Azariah, of the sons of the Kohathites: and of the sons of +Merari, Kish the son of Abdi, and Azariah the son of Jehalelel: and of +the Gershonites; Joah the son of Zimmah, and Eden the son of Joah: +29:13 And of the sons of Elizaphan; Shimri, and Jeiel: and of the sons +of Asaph; Zechariah, and Mattaniah: 29:14 And of the sons of Heman; +Jehiel, and Shimei: and of the sons of Jeduthun; Shemaiah, and Uzziel. + +29:15 And they gathered their brethren, and sanctified themselves, and +came, according to the commandment of the king, by the words of the +LORD, to cleanse the house of the LORD. + +29:16 And the priests went into the inner part of the house of the +LORD, to cleanse it, and brought out all the uncleanness that they +found in the temple of the LORD into the court of the house of the +LORD. And the Levites took it, to carry it out abroad into the brook +Kidron. + +29:17 Now they began on the first day of the first month to sanctify, +and on the eighth day of the month came they to the porch of the LORD: +so they sanctified the house of the LORD in eight days; and in the +sixteenth day of the first month they made an end. + +29:18 Then they went in to Hezekiah the king, and said, We have +cleansed all the house of the LORD, and the altar of burnt offering, +with all the vessels thereof, and the shewbread table, with all the +vessels thereof. + +29:19 Moreover all the vessels, which king Ahaz in his reign did cast +away in his transgression, have we prepared and sanctified, and, +behold, they are before the altar of the LORD. + +29:20 Then Hezekiah the king rose early, and gathered the rulers of +the city, and went up to the house of the LORD. + +29:21 And they brought seven bullocks, and seven rams, and seven +lambs, and seven he goats, for a sin offering for the kingdom, and for +the sanctuary, and for Judah. And he commanded the priests the sons of +Aaron to offer them on the altar of the LORD. + +29:22 So they killed the bullocks, and the priests received the blood, +and sprinkled it on the altar: likewise, when they had killed the +rams, they sprinkled the blood upon the altar: they killed also the +lambs, and they sprinkled the blood upon the altar. + +29:23 And they brought forth the he goats for the sin offering before +the king and the congregation; and they laid their hands upon them: +29:24 And the priests killed them, and they made reconciliation with +their blood upon the altar, to make an atonement for all Israel: for +the king commanded that the burnt offering and the sin offering should +be made for all Israel. + +29:25 And he set the Levites in the house of the LORD with cymbals, +with psalteries, and with harps, according to the commandment of +David, and of Gad the king's seer, and Nathan the prophet: for so was +the commandment of the LORD by his prophets. + +29:26 And the Levites stood with the instruments of David, and the +priests with the trumpets. + +29:27 And Hezekiah commanded to offer the burnt offering upon the +altar. + +And when the burnt offering began, the song of the LORD began also +with the trumpets, and with the instruments ordained by David king of +Israel. + +29:28 And all the congregation worshipped, and the singers sang, and +the trumpeters sounded: and all this continued until the burnt +offering was finished. + +29:29 And when they had made an end of offering, the king and all that +were present with him bowed themselves, and worshipped. + +29:30 Moreover Hezekiah the king and the princes commanded the Levites +to sing praise unto the LORD with the words of David, and of Asaph the +seer. And they sang praises with gladness, and they bowed their heads +and worshipped. + +29:31 Then Hezekiah answered and said, Now ye have consecrated +yourselves unto the LORD, come near and bring sacrifices and thank +offerings into the house of the LORD. And the congregation brought in +sacrifices and thank offerings; and as many as were of a free heart +burnt offerings. + +29:32 And the number of the burnt offerings, which the congregation +brought, was threescore and ten bullocks, an hundred rams, and two +hundred lambs: all these were for a burnt offering to the LORD. + +29:33 And the consecrated things were six hundred oxen and three +thousand sheep. + +29:34 But the priests were too few, so that they could not flay all +the burnt offerings: wherefore their brethren the Levites did help +them, till the work was ended, and until the other priests had +sanctified themselves: for the Levites were more upright in heart to +sanctify themselves than the priests. + +29:35 And also the burnt offerings were in abundance, with the fat of +the peace offerings, and the drink offerings for every burnt offering. +So the service of the house of the LORD was set in order. + +29:36 And Hezekiah rejoiced, and all the people, that God had prepared +the people: for the thing was done suddenly. + +30:1 And Hezekiah sent to all Israel and Judah, and wrote letters also +to Ephraim and Manasseh, that they should come to the house of the +LORD at Jerusalem, to keep the passover unto the LORD God of Israel. + +30:2 For the king had taken counsel, and his princes, and all the +congregation in Jerusalem, to keep the passover in the second month. + +30:3 For they could not keep it at that time, because the priests had +not sanctified themselves sufficiently, neither had the people +gathered themselves together to Jerusalem. + +30:4 And the thing pleased the king and all the congregation. + +30:5 So they established a decree to make proclamation throughout all +Israel, from Beersheba even to Dan, that they should come to keep the +passover unto the LORD God of Israel at Jerusalem: for they had not +done it of a long time in such sort as it was written. + +30:6 So the posts went with the letters from the king and his princes +throughout all Israel and Judah, and according to the commandment of +the king, saying, Ye children of Israel, turn again unto the LORD God +of Abraham, Isaac, and Israel, and he will return to the remnant of +you, that are escaped out of the hand of the kings of Assyria. + +30:7 And be not ye like your fathers, and like your brethren, which +trespassed against the LORD God of their fathers, who therefore gave +them up to desolation, as ye see. + +30:8 Now be ye not stiffnecked, as your fathers were, but yield +yourselves unto the LORD, and enter into his sanctuary, which he hath +sanctified for ever: and serve the LORD your God, that the fierceness +of his wrath may turn away from you. + +30:9 For if ye turn again unto the LORD, your brethren and your +children shall find compassion before them that lead them captive, so +that they shall come again into this land: for the LORD your God is +gracious and merciful, and will not turn away his face from you, if ye +return unto him. + +30:10 So the posts passed from city to city through the country of +Ephraim and Manasseh even unto Zebulun: but they laughed them to +scorn, and mocked them. + +30:11 Nevertheless divers of Asher and Manasseh and of Zebulun humbled +themselves, and came to Jerusalem. + +30:12 Also in Judah the hand of God was to give them one heart to do +the commandment of the king and of the princes, by the word of the +LORD. + +30:13 And there assembled at Jerusalem much people to keep the feast +of unleavened bread in the second month, a very great congregation. + +30:14 And they arose and took away the altars that were in Jerusalem, +and all the altars for incense took they away, and cast them into the +brook Kidron. + +30:15 Then they killed the passover on the fourteenth day of the +second month: and the priests and the Levites were ashamed, and +sanctified themselves, and brought in the burnt offerings into the +house of the LORD. + +30:16 And they stood in their place after their manner, according to +the law of Moses the man of God: the priests sprinkled the blood, +which they received of the hand of the Levites. + +30:17 For there were many in the congregation that were not +sanctified: therefore the Levites had the charge of the killing of the +passovers for every one that was not clean, to sanctify them unto the +LORD. + +30:18 For a multitude of the people, even many of Ephraim, and +Manasseh, Issachar, and Zebulun, had not cleansed themselves, yet did +they eat the passover otherwise than it was written. But Hezekiah +prayed for them, saying, The good LORD pardon every one 30:19 That +prepareth his heart to seek God, the LORD God of his fathers, though +he be not cleansed according to the purification of the sanctuary. + +30:20 And the LORD hearkened to Hezekiah, and healed the people. + +30:21 And the children of Israel that were present at Jerusalem kept +the feast of unleavened bread seven days with great gladness: and the +Levites and the priests praised the LORD day by day, singing with loud +instruments unto the LORD. + +30:22 And Hezekiah spake comfortably unto all the Levites that taught +the good knowledge of the LORD: and they did eat throughout the feast +seven days, offering peace offerings, and making confession to the +LORD God of their fathers. + +30:23 And the whole assembly took counsel to keep other seven days: +and they kept other seven days with gladness. + +30:24 For Hezekiah king of Judah did give to the congregation a +thousand bullocks and seven thousand sheep; and the princes gave to +the congregation a thousand bullocks and ten thousand sheep: and a +great number of priests sanctified themselves. + +30:25 And all the congregation of Judah, with the priests and the +Levites, and all the congregation that came out of Israel, and the +strangers that came out of the land of Israel, and that dwelt in +Judah, rejoiced. + +30:26 So there was great joy in Jerusalem: for since the time of +Solomon the son of David king of Israel there was not the like in +Jerusalem. + +30:27 Then the priests the Levites arose and blessed the people: and +their voice was heard, and their prayer came up to his holy dwelling +place, even unto heaven. + +31:1 Now when all this was finished, all Israel that were present went +out to the cities of Judah, and brake the images in pieces, and cut +down the groves, and threw down the high places and the altars out of +all Judah and Benjamin, in Ephraim also and Manasseh, until they had +utterly destroyed them all. Then all the children of Israel returned, +every man to his possession, into their own cities. + +31:2 And Hezekiah appointed the courses of the priests and the Levites +after their courses, every man according to his service, the priests +and Levites for burnt offerings and for peace offerings, to minister, +and to give thanks, and to praise in the gates of the tents of the +LORD. + +31:3 He appointed also the king's portion of his substance for the +burnt offerings, to wit, for the morning and evening burnt offerings, +and the burnt offerings for the sabbaths, and for the new moons, and +for the set feasts, as it is written in the law of the LORD. + +31:4 Moreover he commanded the people that dwelt in Jerusalem to give +the portion of the priests and the Levites, that they might be +encouraged in the law of the LORD. + +31:5 And as soon as the commandment came abroad, the children of +Israel brought in abundance the firstfruits of corn, wine, and oil, +and honey, and of all the increase of the field; and the tithe of all +things brought they in abundantly. + +31:6 And concerning the children of Israel and Judah, that dwelt in +the cities of Judah, they also brought in the tithe of oxen and sheep, +and the tithe of holy things which were consecrated unto the LORD +their God, and laid them by heaps. + +31:7 In the third month they began to lay the foundation of the heaps, +and finished them in the seventh month. + +31:8 And when Hezekiah and the princes came and saw the heaps, they +blessed the LORD, and his people Israel. + +31:9 Then Hezekiah questioned with the priests and the Levites +concerning the heaps. + +31:10 And Azariah the chief priest of the house of Zadok answered him, +and said, Since the people began to bring the offerings into the house +of the LORD, we have had enough to eat, and have left plenty: for the +LORD hath blessed his people; and that which is left is this great +store. + +31:11 Then Hezekiah commanded to prepare chambers in the house of the +LORD; and they prepared them, 31:12 And brought in the offerings and +the tithes and the dedicated things faithfully: over which Cononiah +the Levite was ruler, and Shimei his brother was the next. + +31:13 And Jehiel, and Azaziah, and Nahath, and Asahel, and Jerimoth, +and Jozabad, and Eliel, and Ismachiah, and Mahath, and Benaiah, were +overseers under the hand of Cononiah and Shimei his brother, at the +commandment of Hezekiah the king, and Azariah the ruler of the house +of God. + +31:14 And Kore the son of Imnah the Levite, the porter toward the +east, was over the freewill offerings of God, to distribute the +oblations of the LORD, and the most holy things. + +31:15 And next him were Eden, and Miniamin, and Jeshua, and Shemaiah, +Amariah, and Shecaniah, in the cities of the priests, in their set +office, to give to their brethren by courses, as well to the great as +to the small: 31:16 Beside their genealogy of males, from three years +old and upward, even unto every one that entereth into the house of +the LORD, his daily portion for their service in their charges +according to their courses; 31:17 Both to the genealogy of the priests +by the house of their fathers, and the Levites from twenty years old +and upward, in their charges by their courses; 31:18 And to the +genealogy of all their little ones, their wives, and their sons, and +their daughters, through all the congregation: for in their set office +they sanctified themselves in holiness: 31:19 Also of the sons of +Aaron the priests, which were in the fields of the suburbs of their +cities, in every several city, the men that were expressed by name, to +give portions to all the males among the priests, and to all that were +reckoned by genealogies among the Levites. + +31:20 And thus did Hezekiah throughout all Judah, and wrought that +which was good and right and truth before the LORD his God. + +31:21 And in every work that he began in the service of the house of +God, and in the law, and in the commandments, to seek his God, he did +it with all his heart, and prospered. + +32:1 After these things, and the establishment thereof, Sennacherib +king of Assyria came, and entered into Judah, and encamped against the +fenced cities, and thought to win them for himself. + +32:2 And when Hezekiah saw that Sennacherib was come, and that he was +purposed to fight against Jerusalem, 32:3 He took counsel with his +princes and his mighty men to stop the waters of the fountains which +were without the city: and they did help him. + +32:4 So there was gathered much people together, who stopped all the +fountains, and the brook that ran through the midst of the land, +saying, Why should the kings of Assyria come, and find much water? +32:5 Also he strengthened himself, and built up all the wall that was +broken, and raised it up to the towers, and another wall without, and +repaired Millo in the city of David, and made darts and shields in +abundance. + +32:6 And he set captains of war over the people, and gathered them +together to him in the street of the gate of the city, and spake +comfortably to them, saying, 32:7 Be strong and courageous, be not +afraid nor dismayed for the king of Assyria, nor for all the multitude +that is with him: for there be more with us than with him: 32:8 With +him is an arm of flesh; but with us is the LORD our God to help us, +and to fight our battles. And the people rested themselves upon the +words of Hezekiah king of Judah. + +32:9 After this did Sennacherib king of Assyria send his servants to +Jerusalem, (but he himself laid siege against Lachish, and all his +power with him,) unto Hezekiah king of Judah, and unto all Judah that +were at Jerusalem, saying, 32:10 Thus saith Sennacherib king of +Assyria, Whereon do ye trust, that ye abide in the siege in Jerusalem? +32:11 Doth not Hezekiah persuade you to give over yourselves to die by +famine and by thirst, saying, The LORD our God shall deliver us out of +the hand of the king of Assyria? 32:12 Hath not the same Hezekiah +taken away his high places and his altars, and commanded Judah and +Jerusalem, saying, Ye shall worship before one altar, and burn incense +upon it? 32:13 Know ye not what I and my fathers have done unto all +the people of other lands? were the gods of the nations of those lands +any ways able to deliver their lands out of mine hand? 32:14 Who was +there among all the gods of those nations that my fathers utterly +destroyed, that could deliver his people out of mine hand, that your +God should be able to deliver you out of mine hand? 32:15 Now +therefore let not Hezekiah deceive you, nor persuade you on this +manner, neither yet believe him: for no god of any nation or kingdom +was able to deliver his people out of mine hand, and out of the hand +of my fathers: how much less shall your God deliver you out of mine +hand? 32:16 And his servants spake yet more against the LORD God, and +against his servant Hezekiah. + +32:17 He wrote also letters to rail on the LORD God of Israel, and to +speak against him, saying, As the gods of the nations of other lands +have not delivered their people out of mine hand, so shall not the God +of Hezekiah deliver his people out of mine hand. + +32:18 Then they cried with a loud voice in the Jews' speech unto the +people of Jerusalem that were on the wall, to affright them, and to +trouble them; that they might take the city. + +32:19 And they spake against the God of Jerusalem, as against the gods +of the people of the earth, which were the work of the hands of man. + +32:20 And for this cause Hezekiah the king, and the prophet Isaiah the +son of Amoz, prayed and cried to heaven. + +32:21 And the LORD sent an angel, which cut off all the mighty men of +valour, and the leaders and captains in the camp of the king of +Assyria. So he returned with shame of face to his own land. And when +he was come into the house of his god, they that came forth of his own +bowels slew him there with the sword. + +32:22 Thus the LORD saved Hezekiah and the inhabitants of Jerusalem +from the hand of Sennacherib the king of Assyria, and from the hand of +all other, and guided them on every side. + +32:23 And many brought gifts unto the LORD to Jerusalem, and presents +to Hezekiah king of Judah: so that he was magnified in the sight of +all nations from thenceforth. + +32:24 In those days Hezekiah was sick to the death, and prayed unto +the LORD: and he spake unto him, and he gave him a sign. + +32:25 But Hezekiah rendered not again according to the benefit done +unto him; for his heart was lifted up: therefore there was wrath upon +him, and upon Judah and Jerusalem. + +32:26 Notwithstanding Hezekiah humbled himself for the pride of his +heart, both he and the inhabitants of Jerusalem, so that the wrath of +the LORD came not upon them in the days of Hezekiah. + +32:27 And Hezekiah had exceeding much riches and honour: and he made +himself treasuries for silver, and for gold, and for precious stones, +and for spices, and for shields, and for all manner of pleasant +jewels; 32:28 Storehouses also for the increase of corn, and wine, and +oil; and stalls for all manner of beasts, and cotes for flocks. + +32:29 Moreover he provided him cities, and possessions of flocks and +herds in abundance: for God had given him substance very much. + +32:30 This same Hezekiah also stopped the upper watercourse of Gihon, +and brought it straight down to the west side of the city of David. +And Hezekiah prospered in all his works. + +32:31 Howbeit in the business of the ambassadors of the princes of +Babylon, who sent unto him to enquire of the wonder that was done in +the land, God left him, to try him, that he might know all that was in +his heart. + +32:32 Now the rest of the acts of Hezekiah, and his goodness, behold, +they are written in the vision of Isaiah the prophet, the son of Amoz, +and in the book of the kings of Judah and Israel. + +32:33 And Hezekiah slept with his fathers, and they buried him in the +chiefest of the sepulchres of the sons of David: and all Judah and the +inhabitants of Jerusalem did him honour at his death. And Manasseh his +son reigned in his stead. + +33:1 Manasseh was twelve years old when he began to reign, and he +reigned fifty and five years in Jerusalem: 33:2 But did that which was +evil in the sight of the LORD, like unto the abominations of the +heathen, whom the LORD had cast out before the children of Israel. + +33:3 For he built again the high places which Hezekiah his father had +broken down, and he reared up altars for Baalim, and made groves, and +worshipped all the host of heaven, and served them. + +33:4 Also he built altars in the house of the LORD, whereof the LORD +had said, In Jerusalem shall my name be for ever. + +33:5 And he built altars for all the host of heaven in the two courts +of the house of the LORD. + +33:6 And he caused his children to pass through the fire in the valley +of the son of Hinnom: also he observed times, and used enchantments, +and used witchcraft, and dealt with a familiar spirit, and with +wizards: he wrought much evil in the sight of the LORD, to provoke him +to anger. + +33:7 And he set a carved image, the idol which he had made, in the +house of God, of which God had said to David and to Solomon his son, +In this house, and in Jerusalem, which I have chosen before all the +tribes of Israel, will I put my name for ever: 33:8 Neither will I any +more remove the foot of Israel from out of the land which I have +appointed for your fathers; so that they will take heed to do all that +I have commanded them, according to the whole law and the statutes and +the ordinances by the hand of Moses. + +33:9 So Manasseh made Judah and the inhabitants of Jerusalem to err, +and to do worse than the heathen, whom the LORD had destroyed before +the children of Israel. + +33:10 And the LORD spake to Manasseh, and to his people: but they +would not hearken. + +33:11 Wherefore the LORD brought upon them the captains of the host of +the king of Assyria, which took Manasseh among the thorns, and bound +him with fetters, and carried him to Babylon. + +33:12 And when he was in affliction, he besought the LORD his God, and +humbled himself greatly before the God of his fathers, 33:13 And +prayed unto him: and he was intreated of him, and heard his +supplication, and brought him again to Jerusalem into his kingdom. +Then Manasseh knew that the LORD he was God. + +33:14 Now after this he built a wall without the city of David, on the +west side of Gihon, in the valley, even to the entering in at the fish +gate, and compassed about Ophel, and raised it up a very great height, +and put captains of war in all the fenced cities of Judah. + +33:15 And he took away the strange gods, and the idol out of the house +of the LORD, and all the altars that he had built in the mount of the +house of the LORD, and in Jerusalem, and cast them out of the city. + +33:16 And he repaired the altar of the LORD, and sacrificed thereon +peace offerings and thank offerings, and commanded Judah to serve the +LORD God of Israel. + +33:17 Nevertheless the people did sacrifice still in the high places, +yet unto the LORD their God only. + +33:18 Now the rest of the acts of Manasseh, and his prayer unto his +God, and the words of the seers that spake to him in the name of the +LORD God of Israel, behold, they are written in the book of the kings +of Israel. + +33:19 His prayer also, and how God was intreated of him, and all his +sins, and his trespass, and the places wherein he built high places, +and set up groves and graven images, before he was humbled: behold, +they are written among the sayings of the seers. + +33:20 So Manasseh slept with his fathers, and they buried him in his +own house: and Amon his son reigned in his stead. + +33:21 Amon was two and twenty years old when he began to reign, and +reigned two years in Jerusalem. + +33:22 But he did that which was evil in the sight of the LORD, as did +Manasseh his father: for Amon sacrificed unto all the carved images +which Manasseh his father had made, and served them; 33:23 And humbled +not himself before the LORD, as Manasseh his father had humbled +himself; but Amon trespassed more and more. + +33:24 And his servants conspired against him, and slew him in his own +house. + +33:25 But the people of the land slew all them that had conspired +against king Amon; and the people of the land made Josiah his son king +in his stead. + +34:1 Josiah was eight years old when he began to reign, and he reigned +in Jerusalem one and thirty years. + +34:2 And he did that which was right in the sight of the LORD, and +walked in the ways of David his father, and declined neither to the +right hand, nor to the left. + +34:3 For in the eighth year of his reign, while he was yet young, he +began to seek after the God of David his father: and in the twelfth +year he began to purge Judah and Jerusalem from the high places, and +the groves, and the carved images, and the molten images. + +34:4 And they brake down the altars of Baalim in his presence; and the +images, that were on high above them, he cut down; and the groves, and +the carved images, and the molten images, he brake in pieces, and made +dust of them, and strowed it upon the graves of them that had +sacrificed unto them. + +34:5 And he burnt the bones of the priests upon their altars, and +cleansed Judah and Jerusalem. + +34:6 And so did he in the cities of Manasseh, and Ephraim, and Simeon, +even unto Naphtali, with their mattocks round about. + +34:7 And when he had broken down the altars and the groves, and had +beaten the graven images into powder, and cut down all the idols +throughout all the land of Israel, he returned to Jerusalem. + +34:8 Now in the eighteenth year of his reign, when he had purged the +land, and the house, he sent Shaphan the son of Azaliah, and Maaseiah +the governor of the city, and Joah the son of Joahaz the recorder, to +repair the house of the LORD his God. + +34:9 And when they came to Hilkiah the high priest, they delivered the +money that was brought into the house of God, which the Levites that +kept the doors had gathered of the hand of Manasseh and Ephraim, and +of all the remnant of Israel, and of all Judah and Benjamin; and they +returned to Jerusalem. + +34:10 And they put it in the hand of the workmen that had the +oversight of the house of the LORD, and they gave it to the workmen +that wrought in the house of the LORD, to repair and amend the house: +34:11 Even to the artificers and builders gave they it, to buy hewn +stone, and timber for couplings, and to floor the houses which the +kings of Judah had destroyed. + +34:12 And the men did the work faithfully: and the overseers of them +were Jahath and Obadiah, the Levites, of the sons of Merari; and +Zechariah and Meshullam, of the sons of the Kohathites, to set it +forward; and other of the Levites, all that could skill of instruments +of musick. + +34:13 Also they were over the bearers of burdens, and were overseers +of all that wrought the work in any manner of service: and of the +Levites there were scribes, and officers, and porters. + +34:14 And when they brought out the money that was brought into the +house of the LORD, Hilkiah the priest found a book of the law of the +LORD given by Moses. + +34:15 And Hilkiah answered and said to Shaphan the scribe, I have +found the book of the law in the house of the LORD. And Hilkiah +delivered the book to Shaphan. + +34:16 And Shaphan carried the book to the king, and brought the king +word back again, saying, All that was committed to thy servants, they +do it. + +34:17 And they have gathered together the money that was found in the +house of the LORD, and have delivered it into the hand of the +overseers, and to the hand of the workmen. + +34:18 Then Shaphan the scribe told the king, saying, Hilkiah the +priest hath given me a book. And Shaphan read it before the king. + +34:19 And it came to pass, when the king had heard the words of the +law, that he rent his clothes. + +34:20 And the king commanded Hilkiah, and Ahikam the son of Shaphan, +and Abdon the son of Micah, and Shaphan the scribe, and Asaiah a +servant of the king's, saying, 34:21 Go, enquire of the LORD for me, +and for them that are left in Israel and in Judah, concerning the +words of the book that is found: for great is the wrath of the LORD +that is poured out upon us, because our fathers have not kept the word +of the LORD, to do after all that is written in this book. + +34:22 And Hilkiah, and they that the king had appointed, went to +Huldah the prophetess, the wife of Shallum the son of Tikvath, the son +of Hasrah, keeper of the wardrobe; (now she dwelt in Jerusalem in the +college:) and they spake to her to that effect. + +34:23 And she answered them, Thus saith the LORD God of Israel, Tell +ye the man that sent you to me, 34:24 Thus saith the LORD, Behold, I +will bring evil upon this place, and upon the inhabitants thereof, +even all the curses that are written in the book which they have read +before the king of Judah: 34:25 Because they have forsaken me, and +have burned incense unto other gods, that they might provoke me to +anger with all the works of their hands; therefore my wrath shall be +poured out upon this place, and shall not be quenched. + +34:26 And as for the king of Judah, who sent you to enquire of the +LORD, so shall ye say unto him, Thus saith the LORD God of Israel +concerning the words which thou hast heard; 34:27 Because thine heart +was tender, and thou didst humble thyself before God, when thou +heardest his words against this place, and against the inhabitants +thereof, and humbledst thyself before me, and didst rend thy clothes, +and weep before me; I have even heard thee also, saith the LORD. + +34:28 Behold, I will gather thee to thy fathers, and thou shalt be +gathered to thy grave in peace, neither shall thine eyes see all the +evil that I will bring upon this place, and upon the inhabitants of +the same. So they brought the king word again. + +34:29 Then the king sent and gathered together all the elders of Judah +and Jerusalem. + +34:30 And the king went up into the house of the LORD, and all the men +of Judah, and the inhabitants of Jerusalem, and the priests, and the +Levites, and all the people, great and small: and he read in their +ears all the words of the book of the covenant that was found in the +house of the LORD. + +34:31 And the king stood in his place, and made a covenant before the +LORD, to walk after the LORD, and to keep his commandments, and his +testimonies, and his statutes, with all his heart, and with all his +soul, to perform the words of the covenant which are written in this +book. + +34:32 And he caused all that were present in Jerusalem and Benjamin to +stand to it. And the inhabitants of Jerusalem did according to the +covenant of God, the God of their fathers. + +34:33 And Josiah took away all the abominations out of all the +countries that pertained to the children of Israel, and made all that +were present in Israel to serve, even to serve the LORD their God. And +all his days they departed not from following the LORD, the God of +their fathers. + +35:1 Moreover Josiah kept a passover unto the LORD in Jerusalem: and +they killed the passover on the fourteenth day of the first month. + +35:2 And he set the priests in their charges, and encouraged them to +the service of the house of the LORD, 35:3 And said unto the Levites +that taught all Israel, which were holy unto the LORD, Put the holy +ark in the house which Solomon the son of David king of Israel did +build; it shall not be a burden upon your shoulders: serve now the +LORD your God, and his people Israel, 35:4 And prepare yourselves by +the houses of your fathers, after your courses, according to the +writing of David king of Israel, and according to the writing of +Solomon his son. + +35:5 And stand in the holy place according to the divisions of the +families of the fathers of your brethren the people, and after the +division of the families of the Levites. + +35:6 So kill the passover, and sanctify yourselves, and prepare your +brethren, that they may do according to the word of the LORD by the +hand of Moses. + +35:7 And Josiah gave to the people, of the flock, lambs and kids, all +for the passover offerings, for all that were present, to the number +of thirty thousand, and three thousand bullocks: these were of the +king's substance. + +35:8 And his princes gave willingly unto the people, to the priests, +and to the Levites: Hilkiah and Zechariah and Jehiel, rulers of the +house of God, gave unto the priests for the passover offerings two +thousand and six hundred small cattle and three hundred oxen. + +35:9 Conaniah also, and Shemaiah and Nethaneel, his brethren, and +Hashabiah and Jeiel and Jozabad, chief of the Levites, gave unto the +Levites for passover offerings five thousand small cattle, and five +hundred oxen. + +35:10 So the service was prepared, and the priests stood in their +place, and the Levites in their courses, according to the king's +commandment. + +35:11 And they killed the passover, and the priests sprinkled the +blood from their hands, and the Levites flayed them. + +35:12 And they removed the burnt offerings, that they might give +according to the divisions of the families of the people, to offer +unto the LORD, as it is written in the book of Moses. And so did they +with the oxen. + +35:13 And they roasted the passover with fire according to the +ordinance: but the other holy offerings sod they in pots, and in +caldrons, and in pans, and divided them speedily among all the people. + +35:14 And afterward they made ready for themselves, and for the +priests: because the priests the sons of Aaron were busied in offering +of burnt offerings and the fat until night; therefore the Levites +prepared for themselves, and for the priests the sons of Aaron. + +35:15 And the singers the sons of Asaph were in their place, according +to the commandment of David, and Asaph, and Heman, and Jeduthun the +king's seer; and the porters waited at every gate; they might not +depart from their service; for their brethren the Levites prepared for +them. + +35:16 So all the service of the LORD was prepared the same day, to +keep the passover, and to offer burnt offerings upon the altar of the +LORD, according to the commandment of king Josiah. + +35:17 And the children of Israel that were present kept the passover +at that time, and the feast of unleavened bread seven days. + +35:18 And there was no passover like to that kept in Israel from the +days of Samuel the prophet; neither did all the kings of Israel keep +such a passover as Josiah kept, and the priests, and the Levites, and +all Judah and Israel that were present, and the inhabitants of +Jerusalem. + +35:19 In the eighteenth year of the reign of Josiah was this passover +kept. + +35:20 After all this, when Josiah had prepared the temple, Necho king +of Egypt came up to fight against Charchemish by Euphrates: and Josiah +went out against him. + +35:21 But he sent ambassadors to him, saying, What have I to do with +thee, thou king of Judah? I come not against thee this day, but +against the house wherewith I have war: for God commanded me to make +haste: forbear thee from meddling with God, who is with me, that he +destroy thee not. + +35:22 Nevertheless Josiah would not turn his face from him, but +disguised himself, that he might fight with him, and hearkened not +unto the words of Necho from the mouth of God, and came to fight in +the valley of Megiddo. + +35:23 And the archers shot at king Josiah; and the king said to his +servants, Have me away; for I am sore wounded. + +35:24 His servants therefore took him out of that chariot, and put him +in the second chariot that he had; and they brought him to Jerusalem, +and he died, and was buried in one of the sepulchres of his fathers. +And all Judah and Jerusalem mourned for Josiah. + +35:25 And Jeremiah lamented for Josiah: and all the singing men and +the singing women spake of Josiah in their lamentations to this day, +and made them an ordinance in Israel: and, behold, they are written in +the lamentations. + +35:26 Now the rest of the acts of Josiah, and his goodness, according +to that which was written in the law of the LORD, 35:27 And his deeds, +first and last, behold, they are written in the book of the kings of +Israel and Judah. + +36:1 Then the people of the land took Jehoahaz the son of Josiah, and +made him king in his father's stead in Jerusalem. + +36:2 Jehoahaz was twenty and three years old when he began to reign, +and he reigned three months in Jerusalem. + +36:3 And the king of Egypt put him down at Jerusalem, and condemned +the land in an hundred talents of silver and a talent of gold. + +36:4 And the king of Egypt made Eliakim his brother king over Judah +and Jerusalem, and turned his name to Jehoiakim. And Necho took +Jehoahaz his brother, and carried him to Egypt. + +36:5 Jehoiakim was twenty and five years old when he began to reign, +and he reigned eleven years in Jerusalem: and he did that which was +evil in the sight of the LORD his God. + +36:6 Against him came up Nebuchadnezzar king of Babylon, and bound him +in fetters, to carry him to Babylon. + +36:7 Nebuchadnezzar also carried of the vessels of the house of the +LORD to Babylon, and put them in his temple at Babylon. + +36:8 Now the rest of the acts of Jehoiakim, and his abominations which +he did, and that which was found in him, behold, they are written in +the book of the kings of Israel and Judah: and Jehoiachin his son +reigned in his stead. + +36:9 Jehoiachin was eight years old when he began to reign, and he +reigned three months and ten days in Jerusalem: and he did that which +was evil in the sight of the LORD. + +36:10 And when the year was expired, king Nebuchadnezzar sent, and +brought him to Babylon, with the goodly vessels of the house of the +LORD, and made Zedekiah his brother king over Judah and Jerusalem. + +36:11 Zedekiah was one and twenty years old when he began to reign, +and reigned eleven years in Jerusalem. + +36:12 And he did that which was evil in the sight of the LORD his God, +and humbled not himself before Jeremiah the prophet speaking from the +mouth of the LORD. + +36:13 And he also rebelled against king Nebuchadnezzar, who had made +him swear by God: but he stiffened his neck, and hardened his heart +from turning unto the LORD God of Israel. + +36:14 Moreover all the chief of the priests, and the people, +transgressed very much after all the abominations of the heathen; and +polluted the house of the LORD which he had hallowed in Jerusalem. + +36:15 And the LORD God of their fathers sent to them by his +messengers, rising up betimes, and sending; because he had compassion +on his people, and on his dwelling place: 36:16 But they mocked the +messengers of God, and despised his words, and misused his prophets, +until the wrath of the LORD arose against his people, till there was +no remedy. + +36:17 Therefore he brought upon them the king of the Chaldees, who +slew their young men with the sword in the house of their sanctuary, +and had no compassion upon young man or maiden, old man, or him that +stooped for age: he gave them all into his hand. + +36:18 And all the vessels of the house of God, great and small, and +the treasures of the house of the LORD, and the treasures of the king, +and of his princes; all these he brought to Babylon. + +36:19 And they burnt the house of God, and brake down the wall of +Jerusalem, and burnt all the palaces thereof with fire, and destroyed +all the goodly vessels thereof. + +36:20 And them that had escaped from the sword carried he away to +Babylon; where they were servants to him and his sons until the reign +of the kingdom of Persia: 36:21 To fulfil the word of the LORD by the +mouth of Jeremiah, until the land had enjoyed her sabbaths: for as +long as she lay desolate she kept sabbath, to fulfil threescore and +ten years. + +36:22 Now in the first year of Cyrus king of Persia, that the word of +the LORD spoken by the mouth of Jeremiah might be accomplished, the +LORD stirred up the spirit of Cyrus king of Persia, that he made a +proclamation throughout all his kingdom, and put it also in writing, +saying, 36:23 Thus saith Cyrus king of Persia, All the kingdoms of the +earth hath the LORD God of heaven given me; and he hath charged me to +build him an house in Jerusalem, which is in Judah. Who is there among +you of all his people? The LORD his God be with him, and let him go up. + + + +Ezra + + +1:1 Now in the first year of Cyrus king of Persia, that the word of +the LORD by the mouth of Jeremiah might be fulfilled, the LORD stirred +up the spirit of Cyrus king of Persia, that he made a proclamation +throughout all his kingdom, and put it also in writing, saying, 1:2 +Thus saith Cyrus king of Persia, The LORD God of heaven hath given me +all the kingdoms of the earth; and he hath charged me to build him an +house at Jerusalem, which is in Judah. + +1:3 Who is there among you of all his people? his God be with him, and +let him go up to Jerusalem, which is in Judah, and build the house of +the LORD God of Israel, (he is the God,) which is in Jerusalem. + +1:4 And whosoever remaineth in any place where he sojourneth, let the +men of his place help him with silver, and with gold, and with goods, +and with beasts, beside the freewill offering for the house of God +that is in Jerusalem. + +1:5 Then rose up the chief of the fathers of Judah and Benjamin, and +the priests, and the Levites, with all them whose spirit God had +raised, to go up to build the house of the LORD which is in Jerusalem. + +1:6 And all they that were about them strengthened their hands with +vessels of silver, with gold, with goods, and with beasts, and with +precious things, beside all that was willingly offered. + +1:7 Also Cyrus the king brought forth the vessels of the house of the +LORD, which Nebuchadnezzar had brought forth out of Jerusalem, and had +put them in the house of his gods; 1:8 Even those did Cyrus king of +Persia bring forth by the hand of Mithredath the treasurer, and +numbered them unto Sheshbazzar, the prince of Judah. + +1:9 And this is the number of them: thirty chargers of gold, a +thousand chargers of silver, nine and twenty knives, 1:10 Thirty +basons of gold, silver basons of a second sort four hundred and ten, +and other vessels a thousand. + +1:11 All the vessels of gold and of silver were five thousand and four +hundred. All these did Sheshbazzar bring up with them of the captivity +that were brought up from Babylon unto Jerusalem. + +2:1 Now these are the children of the province that went up out of the +captivity, of those which had been carried away, whom Nebuchadnezzar +the king of Babylon had carried away unto Babylon, and came again unto +Jerusalem and Judah, every one unto his city; 2:2 Which came with +Zerubbabel: Jeshua, Nehemiah, Seraiah, Reelaiah, Mordecai, Bilshan, +Mizpar, Bigvai, Rehum, Baanah. The number of the men of the people of +Israel: 2:3 The children of Parosh, two thousand an hundred seventy +and two. + +2:4 The children of Shephatiah, three hundred seventy and two. + +2:5 The children of Arah, seven hundred seventy and five. + +2:6 The children of Pahathmoab, of the children of Jeshua and Joab, +two thousand eight hundred and twelve. + +2:7 The children of Elam, a thousand two hundred fifty and four. + +2:8 The children of Zattu, nine hundred forty and five. + +2:9 The children of Zaccai, seven hundred and threescore. + +2:10 The children of Bani, six hundred forty and two. + +2:11 The children of Bebai, six hundred twenty and three. + +2:12 The children of Azgad, a thousand two hundred twenty and two. + +2:13 The children of Adonikam, six hundred sixty and six. + +2:14 The children of Bigvai, two thousand fifty and six. + +2:15 The children of Adin, four hundred fifty and four. + +2:16 The children of Ater of Hezekiah, ninety and eight. + +2:17 The children of Bezai, three hundred twenty and three. + +2:18 The children of Jorah, an hundred and twelve. + +2:19 The children of Hashum, two hundred twenty and three. + +2:20 The children of Gibbar, ninety and five. + +2:21 The children of Bethlehem, an hundred twenty and three. + +2:22 The men of Netophah, fifty and six. + +2:23 The men of Anathoth, an hundred twenty and eight. + +2:24 The children of Azmaveth, forty and two. + +2:25 The children of Kirjatharim, Chephirah, and Beeroth, seven +hundred and forty and three. + +2:26 The children of Ramah and Gaba, six hundred twenty and one. + +2:27 The men of Michmas, an hundred twenty and two. + +2:28 The men of Bethel and Ai, two hundred twenty and three. + +2:29 The children of Nebo, fifty and two. + +2:30 The children of Magbish, an hundred fifty and six. + +2:31 The children of the other Elam, a thousand two hundred fifty and +four. + +2:32 The children of Harim, three hundred and twenty. + +2:33 The children of Lod, Hadid, and Ono, seven hundred twenty and +five. + +2:34 The children of Jericho, three hundred forty and five. + +2:35 The children of Senaah, three thousand and six hundred and +thirty. + +2:36 The priests: the children of Jedaiah, of the house of Jeshua, +nine hundred seventy and three. + +2:37 The children of Immer, a thousand fifty and two. + +2:38 The children of Pashur, a thousand two hundred forty and seven. + +2:39 The children of Harim, a thousand and seventeen. + +2:40 The Levites: the children of Jeshua and Kadmiel, of the children +of Hodaviah, seventy and four. + +2:41 The singers: the children of Asaph, an hundred twenty and eight. + +2:42 The children of the porters: the children of Shallum, the +children of Ater, the children of Talmon, the children of Akkub, the +children of Hatita, the children of Shobai, in all an hundred thirty +and nine. + +2:43 The Nethinims: the children of Ziha, the children of Hasupha, the +children of Tabbaoth, 2:44 The children of Keros, the children of +Siaha, the children of Padon, 2:45 The children of Lebanah, the +children of Hagabah, the children of Akkub, 2:46 The children of +Hagab, the children of Shalmai, the children of Hanan, 2:47 The +children of Giddel, the children of Gahar, the children of Reaiah, +2:48 The children of Rezin, the children of Nekoda, the children of +Gazzam, 2:49 The children of Uzza, the children of Paseah, the +children of Besai, 2:50 The children of Asnah, the children of +Mehunim, the children of Nephusim, 2:51 The children of Bakbuk, the +children of Hakupha, the children of Harhur, 2:52 The children of +Bazluth, the children of Mehida, the children of Harsha, 2:53 The +children of Barkos, the children of Sisera, the children of Thamah, +2:54 The children of Neziah, the children of Hatipha. + +2:55 The children of Solomon's servants: the children of Sotai, the +children of Sophereth, the children of Peruda, 2:56 The children of +Jaalah, the children of Darkon, the children of Giddel, 2:57 The +children of Shephatiah, the children of Hattil, the children of +Pochereth of Zebaim, the children of Ami. + +2:58 All the Nethinims, and the children of Solomon's servants, were +three hundred ninety and two. + +2:59 And these were they which went up from Telmelah, Telharsa, +Cherub, Addan, and Immer: but they could not shew their father's +house, and their seed, whether they were of Israel: 2:60 The children +of Delaiah, the children of Tobiah, the children of Nekoda, six +hundred fifty and two. + +2:61 And of the children of the priests: the children of Habaiah, the +children of Koz, the children of Barzillai; which took a wife of the +daughters of Barzillai the Gileadite, and was called after their name: +2:62 These sought their register among those that were reckoned by +genealogy, but they were not found: therefore were they, as polluted, +put from the priesthood. + +2:63 And the Tirshatha said unto them, that they should not eat of the +most holy things, till there stood up a priest with Urim and with +Thummim. + +2:64 The whole congregation together was forty and two thousand three +hundred and threescore, 2:65 Beside their servants and their maids, of +whom there were seven thousand three hundred thirty and seven: and +there were among them two hundred singing men and singing women. + +2:66 Their horses were seven hundred thirty and six; their mules, two +hundred forty and five; 2:67 Their camels, four hundred thirty and +five; their asses, six thousand seven hundred and twenty. + +2:68 And some of the chief of the fathers, when they came to the house +of the LORD which is at Jerusalem, offered freely for the house of God +to set it up in his place: 2:69 They gave after their ability unto the +treasure of the work threescore and one thousand drams of gold, and +five thousand pound of silver, and one hundred priests' garments. + +2:70 So the priests, and the Levites, and some of the people, and the +singers, and the porters, and the Nethinims, dwelt in their cities, +and all Israel in their cities. + +3:1 And when the seventh month was come, and the children of Israel +were in the cities, the people gathered themselves together as one man +to Jerusalem. + +3:2 Then stood up Jeshua the son of Jozadak, and his brethren the +priests, and Zerubbabel the son of Shealtiel, and his brethren, and +builded the altar of the God of Israel, to offer burnt offerings +thereon, as it is written in the law of Moses the man of God. + +3:3 And they set the altar upon his bases; for fear was upon them +because of the people of those countries: and they offered burnt +offerings thereon unto the LORD, even burnt offerings morning and +evening. + +3:4 They kept also the feast of tabernacles, as it is written, and +offered the daily burnt offerings by number, according to the custom, +as the duty of every day required; 3:5 And afterward offered the +continual burnt offering, both of the new moons, and of all the set +feasts of the LORD that were consecrated, and of every one that +willingly offered a freewill offering unto the LORD. + +3:6 From the first day of the seventh month began they to offer burnt +offerings unto the LORD. But the foundation of the temple of the LORD +was not yet laid. + +3:7 They gave money also unto the masons, and to the carpenters; and +meat, and drink, and oil, unto them of Zidon, and to them of Tyre, to +bring cedar trees from Lebanon to the sea of Joppa, according to the +grant that they had of Cyrus king of Persia. + +3:8 Now in the second year of their coming unto the house of God at +Jerusalem, in the second month, began Zerubbabel the son of Shealtiel, +and Jeshua the son of Jozadak, and the remnant of their brethren the +priests and the Levites, and all they that were come out of the +captivity unto Jerusalem; and appointed the Levites, from twenty years +old and upward, to set forward the work of the house of the LORD. + +3:9 Then stood Jeshua with his sons and his brethren, Kadmiel and his +sons, the sons of Judah, together, to set forward the workmen in the +house of God: the sons of Henadad, with their sons and their brethren +the Levites. + +3:10 And when the builders laid the foundation of the temple of the +LORD, they set the priests in their apparel with trumpets, and the +Levites the sons of Asaph with cymbals, to praise the LORD, after the +ordinance of David king of Israel. + +3:11 And they sang together by course in praising and giving thanks +unto the LORD; because he is good, for his mercy endureth for ever +toward Israel. + +And all the people shouted with a great shout, when they praised the +LORD, because the foundation of the house of the LORD was laid. + +3:12 But many of the priests and Levites and chief of the fathers, who +were ancient men, that had seen the first house, when the foundation +of this house was laid before their eyes, wept with a loud voice; and +many shouted aloud for joy: 3:13 So that the people could not discern +the noise of the shout of joy from the noise of the weeping of the +people: for the people shouted with a loud shout, and the noise was +heard afar off. + +4:1 Now when the adversaries of Judah and Benjamin heard that the +children of the captivity builded the temple unto the LORD God of +Israel; 4:2 Then they came to Zerubbabel, and to the chief of the +fathers, and said unto them, Let us build with you: for we seek your +God, as ye do; and we do sacrifice unto him since the days of +Esarhaddon king of Assur, which brought us up hither. + +4:3 But Zerubbabel, and Jeshua, and the rest of the chief of the +fathers of Israel, said unto them, Ye have nothing to do with us to +build an house unto our God; but we ourselves together will build unto +the LORD God of Israel, as king Cyrus the king of Persia hath +commanded us. + +4:4 Then the people of the land weakened the hands of the people of +Judah, and troubled them in building, 4:5 And hired counsellors +against them, to frustrate their purpose, all the days of Cyrus king +of Persia, even until the reign of Darius king of Persia. + +4:6 And in the reign of Ahasuerus, in the beginning of his reign, +wrote they unto him an accusation against the inhabitants of Judah and +Jerusalem. + +4:7 And in the days of Artaxerxes wrote Bishlam, Mithredath, Tabeel, +and the rest of their companions, unto Artaxerxes king of Persia; and +the writing of the letter was written in the Syrian tongue, and +interpreted in the Syrian tongue. + +4:8 Rehum the chancellor and Shimshai the scribe wrote a letter +against Jerusalem to Artaxerxes the king in this sort: 4:9 Then wrote +Rehum the chancellor, and Shimshai the scribe, and the rest of their +companions; the Dinaites, the Apharsathchites, the Tarpelites, the +Apharsites, the Archevites, the Babylonians, the Susanchites, the +Dehavites, and the Elamites, 4:10 And the rest of the nations whom the +great and noble Asnapper brought over, and set in the cities of +Samaria, and the rest that are on this side the river, and at such a +time. + +4:11 This is the copy of the letter that they sent unto him, even unto +Artaxerxes the king; Thy servants the men on this side the river, and +at such a time. + +4:12 Be it known unto the king, that the Jews which came up from thee +to us are come unto Jerusalem, building the rebellious and the bad +city, and have set up the walls thereof, and joined the foundations. + +4:13 Be it known now unto the king, that, if this city be builded, and +the walls set up again, then will they not pay toll, tribute, and +custom, and so thou shalt endamage the revenue of the kings. + +4:14 Now because we have maintenance from the king's palace, and it +was not meet for us to see the king's dishonour, therefore have we +sent and certified the king; 4:15 That search may be made in the book +of the records of thy fathers: so shalt thou find in the book of the +records, and know that this city is a rebellious city, and hurtful +unto kings and provinces, and that they have moved sedition within the +same of old time: for which cause was this city destroyed. + +4:16 We certify the king that, if this city be builded again, and the +walls thereof set up, by this means thou shalt have no portion on this +side the river. + +4:17 Then sent the king an answer unto Rehum the chancellor, and to +Shimshai the scribe, and to the rest of their companions that dwell in +Samaria, and unto the rest beyond the river, Peace, and at such a +time. + +4:18 The letter which ye sent unto us hath been plainly read before +me. + +4:19 And I commanded, and search hath been made, and it is found that +this city of old time hath made insurrection against kings, and that +rebellion and sedition have been made therein. + +4:20 There have been mighty kings also over Jerusalem, which have +ruled over all countries beyond the river; and toll, tribute, and +custom, was paid unto them. + +4:21 Give ye now commandment to cause these men to cease, and that +this city be not builded, until another commandment shall be given +from me. + +4:22 Take heed now that ye fail not to do this: why should damage grow +to the hurt of the kings? 4:23 Now when the copy of king Artaxerxes' +letter was read before Rehum, and Shimshai the scribe, and their +companions, they went up in haste to Jerusalem unto the Jews, and made +them to cease by force and power. + +4:24 Then ceased the work of the house of God which is at Jerusalem. +So it ceased unto the second year of the reign of Darius king of +Persia. + +5:1 Then the prophets, Haggai the prophet, and Zechariah the son of +Iddo, prophesied unto the Jews that were in Judah and Jerusalem in the +name of the God of Israel, even unto them. + +5:2 Then rose up Zerubbabel the son of Shealtiel, and Jeshua the son +of Jozadak, and began to build the house of God which is at Jerusalem: +and with them were the prophets of God helping them. + +5:3 At the same time came to them Tatnai, governor on this side the +river, and Shetharboznai and their companions, and said thus unto +them, Who hath commanded you to build this house, and to make up this +wall? 5:4 Then said we unto them after this manner, What are the +names of the men that make this building? 5:5 But the eye of their +God was upon the elders of the Jews, that they could not cause them to +cease, till the matter came to Darius: and then they returned answer +by letter concerning this matter. + +5:6 The copy of the letter that Tatnai, governor on this side the +river, and Shetharboznai and his companions the Apharsachites, which +were on this side the river, sent unto Darius the king: 5:7 They sent +a letter unto him, wherein was written thus; Unto Darius the king, all +peace. + +5:8 Be it known unto the king, that we went into the province of +Judea, to the house of the great God, which is builded with great +stones, and timber is laid in the walls, and this work goeth fast on, +and prospereth in their hands. + +5:9 Then asked we those elders, and said unto them thus, Who commanded +you to build this house, and to make up these walls? 5:10 We asked +their names also, to certify thee, that we might write the names of +the men that were the chief of them. + +5:11 And thus they returned us answer, saying, We are the servants of +the God of heaven and earth, and build the house that was builded +these many years ago, which a great king of Israel builded and set up. + +5:12 But after that our fathers had provoked the God of heaven unto +wrath, he gave them into the hand of Nebuchadnezzar the king of +Babylon, the Chaldean, who destroyed this house, and carried the +people away into Babylon. + +5:13 But in the first year of Cyrus the king of Babylon the same king +Cyrus made a decree to build this house of God. + +5:14 And the vessels also of gold and silver of the house of God, +which Nebuchadnezzar took out of the temple that was in Jerusalem, and +brought them into the temple of Babylon, those did Cyrus the king take +out of the temple of Babylon, and they were delivered unto one, whose +name was Sheshbazzar, whom he had made governor; 5:15 And said unto +him, Take these vessels, go, carry them into the temple that is in +Jerusalem, and let the house of God be builded in his place. + +5:16 Then came the same Sheshbazzar, and laid the foundation of the +house of God which is in Jerusalem: and since that time even until now +hath it been in building, and yet it is not finished. + +5:17 Now therefore, if it seem good to the king, let there be search +made in the king's treasure house, which is there at Babylon, whether +it be so, that a decree was made of Cyrus the king to build this house +of God at Jerusalem, and let the king send his pleasure to us +concerning this matter. + +6:1 Then Darius the king made a decree, and search was made in the +house of the rolls, where the treasures were laid up in Babylon. + +6:2 And there was found at Achmetha, in the palace that is in the +province of the Medes, a roll, and therein was a record thus written: +6:3 In the first year of Cyrus the king the same Cyrus the king made a +decree concerning the house of God at Jerusalem, Let the house be +builded, the place where they offered sacrifices, and let the +foundations thereof be strongly laid; the height thereof threescore +cubits, and the breadth thereof threescore cubits; 6:4 With three rows +of great stones, and a row of new timber: and let the expenses be +given out of the king's house: 6:5 And also let the golden and silver +vessels of the house of God, which Nebuchadnezzar took forth out of +the temple which is at Jerusalem, and brought unto Babylon, be +restored, and brought again unto the temple which is at Jerusalem, +every one to his place, and place them in the house of God. + +6:6 Now therefore, Tatnai, governor beyond the river, Shetharboznai, +and your companions the Apharsachites, which are beyond the river, be +ye far from thence: 6:7 Let the work of this house of God alone; let +the governor of the Jews and the elders of the Jews build this house +of God in his place. + +6:8 Moreover I make a decree what ye shall do to the elders of these +Jews for the building of this house of God: that of the king's goods, +even of the tribute beyond the river, forthwith expenses be given unto +these men, that they be not hindered. + +6:9 And that which they have need of, both young bullocks, and rams, +and lambs, for the burnt offerings of the God of heaven, wheat, salt, +wine, and oil, according to the appointment of the priests which are +at Jerusalem, let it be given them day by day without fail: 6:10 That +they may offer sacrifices of sweet savours unto the God of heaven, and +pray for the life of the king, and of his sons. + +6:11 Also I have made a decree, that whosoever shall alter this word, +let timber be pulled down from his house, and being set up, let him be +hanged thereon; and let his house be made a dunghill for this. + +6:12 And the God that hath caused his name to dwell there destroy all +kings and people, that shall put to their hand to alter and to destroy +this house of God which is at Jerusalem. I Darius have made a decree; +let it be done with speed. + +6:13 Then Tatnai, governor on this side the river, Shetharboznai, and +their companions, according to that which Darius the king had sent, so +they did speedily. + +6:14 And the elders of the Jews builded, and they prospered through +the prophesying of Haggai the prophet and Zechariah the son of Iddo. +And they builded, and finished it, according to the commandment of the +God of Israel, and according to the commandment of Cyrus, and Darius, +and Artaxerxes king of Persia. + +6:15 And this house was finished on the third day of the month Adar, +which was in the sixth year of the reign of Darius the king. + +6:16 And the children of Israel, the priests, and the Levites, and the +rest of the children of the captivity, kept the dedication of this +house of God with joy. + +6:17 And offered at the dedication of this house of God an hundred +bullocks, two hundred rams, four hundred lambs; and for a sin offering +for all Israel, twelve he goats, according to the number of the tribes +of Israel. + +6:18 And they set the priests in their divisions, and the Levites in +their courses, for the service of God, which is at Jerusalem; as it is +written in the book of Moses. + +6:19 And the children of the captivity kept the passover upon the +fourteenth day of the first month. + +6:20 For the priests and the Levites were purified together, all of +them were pure, and killed the passover for all the children of the +captivity, and for their brethren the priests, and for themselves. + +6:21 And the children of Israel, which were come again out of +captivity, and all such as had separated themselves unto them from the +filthiness of the heathen of the land, to seek the LORD God of Israel, +did eat, 6:22 And kept the feast of unleavened bread seven days with +joy: for the LORD had made them joyful, and turned the heart of the +king of Assyria unto them, to strengthen their hands in the work of +the house of God, the God of Israel. + +7:1 Now after these things, in the reign of Artaxerxes king of Persia, +Ezra the son of Seraiah, the son of Azariah, the son of Hilkiah, 7:2 +The son of Shallum, the son of Zadok, the son of Ahitub, 7:3 The son +of Amariah, the son of Azariah, the son of Meraioth, 7:4 The son of +Zerahiah, the son of Uzzi, the son of Bukki, 7:5 The son of Abishua, +the son of Phinehas, the son of Eleazar, the son of Aaron the chief +priest: 7:6 This Ezra went up from Babylon; and he was a ready scribe +in the law of Moses, which the LORD God of Israel had given: and the +king granted him all his request, according to the hand of the LORD +his God upon him. + +7:7 And there went up some of the children of Israel, and of the +priests, and the Levites, and the singers, and the porters, and the +Nethinims, unto Jerusalem, in the seventh year of Artaxerxes the king. + +7:8 And he came to Jerusalem in the fifth month, which was in the +seventh year of the king. + +7:9 For upon the first day of the first month began he to go up from +Babylon, and on the first day of the fifth month came he to Jerusalem, +according to the good hand of his God upon him. + +7:10 For Ezra had prepared his heart to seek the law of the LORD, and +to do it, and to teach in Israel statutes and judgments. + +7:11 Now this is the copy of the letter that the king Artaxerxes gave +unto Ezra the priest, the scribe, even a scribe of the words of the +commandments of the LORD, and of his statutes to Israel. + +7:12 Artaxerxes, king of kings, unto Ezra the priest, a scribe of the +law of the God of heaven, perfect peace, and at such a time. + +7:13 I make a decree, that all they of the people of Israel, and of +his priests and Levites, in my realm, which are minded of their own +freewill to go up to Jerusalem, go with thee. + +7:14 Forasmuch as thou art sent of the king, and of his seven +counsellors, to enquire concerning Judah and Jerusalem, according to +the law of thy God which is in thine hand; 7:15 And to carry the +silver and gold, which the king and his counsellors have freely +offered unto the God of Israel, whose habitation is in Jerusalem, 7:16 +And all the silver and gold that thou canst find in all the province +of Babylon, with the freewill offering of the people, and of the +priests, offering willingly for the house of their God which is in +Jerusalem: 7:17 That thou mayest buy speedily with this money +bullocks, rams, lambs, with their meat offerings and their drink +offerings, and offer them upon the altar of the house of your God +which is in Jerusalem. + +7:18 And whatsoever shall seem good to thee, and to thy brethren, to +do with the rest of the silver and the gold, that do after the will of +your God. + +7:19 The vessels also that are given thee for the service of the house +of thy God, those deliver thou before the God of Jerusalem. + +7:20 And whatsoever more shall be needful for the house of thy God, +which thou shalt have occasion to bestow, bestow it out of the king's +treasure house. + +7:21 And I, even I Artaxerxes the king, do make a decree to all the +treasurers which are beyond the river, that whatsoever Ezra the +priest, the scribe of the law of the God of heaven, shall require of +you, it be done speedily, 7:22 Unto an hundred talents of silver, and +to an hundred measures of wheat, and to an hundred baths of wine, and +to an hundred baths of oil, and salt without prescribing how much. + +7:23 Whatsoever is commanded by the God of heaven, let it be +diligently done for the house of the God of heaven: for why should +there be wrath against the realm of the king and his sons? 7:24 Also +we certify you, that touching any of the priests and Levites, singers, +porters, Nethinims, or ministers of this house of God, it shall not be +lawful to impose toll, tribute, or custom, upon them. + +7:25 And thou, Ezra, after the wisdom of thy God, that is in thine +hand, set magistrates and judges, which may judge all the people that +are beyond the river, all such as know the laws of thy God; and teach +ye them that know them not. + +7:26 And whosoever will not do the law of thy God, and the law of the +king, let judgment be executed speedily upon him, whether it be unto +death, or to banishment, or to confiscation of goods, or to +imprisonment. + +7:27 Blessed be the LORD God of our fathers, which hath put such a +thing as this in the king's heart, to beautify the house of the LORD +which is in Jerusalem: 7:28 And hath extended mercy unto me before the +king, and his counsellors, and before all the king's mighty princes. +And I was strengthened as the hand of the LORD my God was upon me, and +I gathered together out of Israel chief men to go up with me. + +8:1 These are now the chief of their fathers, and this is the +genealogy of them that went up with me from Babylon, in the reign of +Artaxerxes the king. + +8:2 Of the sons of Phinehas; Gershom: of the sons of Ithamar; Daniel: +of the sons of David; Hattush. + +8:3 Of the sons of Shechaniah, of the sons of Pharosh; Zechariah: and +with him were reckoned by genealogy of the males an hundred and fifty. + +8:4 Of the sons of Pahathmoab; Elihoenai the son of Zerahiah, and with +him two hundred males. + +8:5 Of the sons of Shechaniah; the son of Jahaziel, and with him three +hundred males. + +8:6 Of the sons also of Adin; Ebed the son of Jonathan, and with him +fifty males. + +8:7 And of the sons of Elam; Jeshaiah the son of Athaliah, and with +him seventy males. + +8:8 And of the sons of Shephatiah; Zebadiah the son of Michael, and +with him fourscore males. + +8:9 Of the sons of Joab; Obadiah the son of Jehiel, and with him two +hundred and eighteen males. + +8:10 And of the sons of Shelomith; the son of Josiphiah, and with him +an hundred and threescore males. + +8:11 And of the sons of Bebai; Zechariah the son of Bebai, and with +him twenty and eight males. + +8:12 And of the sons of Azgad; Johanan the son of Hakkatan, and with +him an hundred and ten males. + +8:13 And of the last sons of Adonikam, whose names are these, +Eliphelet, Jeiel, and Shemaiah, and with them threescore males. + +8:14 Of the sons also of Bigvai; Uthai, and Zabbud, and with them +seventy males. + +8:15 And I gathered them together to the river that runneth to Ahava; +and there abode we in tents three days: and I viewed the people, and +the priests, and found there none of the sons of Levi. + +8:16 Then sent I for Eliezer, for Ariel, for Shemaiah, and for +Elnathan, and for Jarib, and for Elnathan, and for Nathan, and for +Zechariah, and for Meshullam, chief men; also for Joiarib, and for +Elnathan, men of understanding. + +8:17 And I sent them with commandment unto Iddo the chief at the place +Casiphia, and I told them what they should say unto Iddo, and to his +brethren the Nethinims, at the place Casiphia, that they should bring +unto us ministers for the house of our God. + +8:18 And by the good hand of our God upon us they brought us a man of +understanding, of the sons of Mahli, the son of Levi, the son of +Israel; and Sherebiah, with his sons and his brethren, eighteen; 8:19 +And Hashabiah, and with him Jeshaiah of the sons of Merari, his +brethren and their sons, twenty; 8:20 Also of the Nethinims, whom +David and the princes had appointed for the service of the Levites, +two hundred and twenty Nethinims: all of them were expressed by name. + +8:21 Then I proclaimed a fast there, at the river of Ahava, that we +might afflict ourselves before our God, to seek of him a right way for +us, and for our little ones, and for all our substance. + +8:22 For I was ashamed to require of the king a band of soldiers and +horsemen to help us against the enemy in the way: because we had +spoken unto the king, saying, The hand of our God is upon all them for +good that seek him; but his power and his wrath is against all them +that forsake him. + +8:23 So we fasted and besought our God for this: and he was intreated +of us. + +8:24 Then I separated twelve of the chief of the priests, Sherebiah, +Hashabiah, and ten of their brethren with them, 8:25 And weighed unto +them the silver, and the gold, and the vessels, even the offering of +the house of our God, which the king, and his counsellors, and his +lords, and all Israel there present, had offered: 8:26 I even weighed +unto their hand six hundred and fifty talents of silver, and silver +vessels an hundred talents, and of gold an hundred talents; 8:27 Also +twenty basons of gold, of a thousand drams; and two vessels of fine +copper, precious as gold. + +8:28 And I said unto them, Ye are holy unto the LORD; the vessels are +holy also; and the silver and the gold are a freewill offering unto +the LORD God of your fathers. + +8:29 Watch ye, and keep them, until ye weigh them before the chief of +the priests and the Levites, and chief of the fathers of Israel, at +Jerusalem, in the chambers of the house of the LORD. + +8:30 So took the priests and the Levites the weight of the silver, and +the gold, and the vessels, to bring them to Jerusalem unto the house +of our God. + +8:31 Then we departed from the river of Ahava on the twelfth day of +the first month, to go unto Jerusalem: and the hand of our God was +upon us, and he delivered us from the hand of the enemy, and of such +as lay in wait by the way. + +8:32 And we came to Jerusalem, and abode there three days. + +8:33 Now on the fourth day was the silver and the gold and the vessels +weighed in the house of our God by the hand of Meremoth the son of +Uriah the priest; and with him was Eleazar the son of Phinehas; and +with them was Jozabad the son of Jeshua, and Noadiah the son of +Binnui, Levites; 8:34 By number and by weight of every one: and all +the weight was written at that time. + +8:35 Also the children of those that had been carried away, which were +come out of the captivity, offered burnt offerings unto the God of +Israel, twelve bullocks for all Israel, ninety and six rams, seventy +and seven lambs, twelve he goats for a sin offering: all this was a +burnt offering unto the LORD. + +8:36 And they delivered the king's commissions unto the king's +lieutenants, and to the governors on this side the river: and they +furthered the people, and the house of God. + +9:1 Now when these things were done, the princes came to me, saying, +The people of Israel, and the priests, and the Levites, have not +separated themselves from the people of the lands, doing according to +their abominations, even of the Canaanites, the Hittites, the +Perizzites, the Jebusites, the Ammonites, the Moabites, the Egyptians, +and the Amorites. + +9:2 For they have taken of their daughters for themselves, and for +their sons: so that the holy seed have mingled themselves with the +people of those lands: yea, the hand of the princes and rulers hath +been chief in this trespass. + +9:3 And when I heard this thing, I rent my garment and my mantle, and +plucked off the hair of my head and of my beard, and sat down +astonied. + +9:4 Then were assembled unto me every one that trembled at the words +of the God of Israel, because of the transgression of those that had +been carried away; and I sat astonied until the evening sacrifice. + +9:5 And at the evening sacrifice I arose up from my heaviness; and +having rent my garment and my mantle, I fell upon my knees, and spread +out my hands unto the LORD my God, 9:6 And said, O my God, I am +ashamed and blush to lift up my face to thee, my God: for our +iniquities are increased over our head, and our trespass is grown up +unto the heavens. + +9:7 Since the days of our fathers have we been in a great trespass +unto this day; and for our iniquities have we, our kings, and our +priests, been delivered into the hand of the kings of the lands, to +the sword, to captivity, and to a spoil, and to confusion of face, as +it is this day. + +9:8 And now for a little space grace hath been shewed from the LORD +our God, to leave us a remnant to escape, and to give us a nail in his +holy place, that our God may lighten our eyes, and give us a little +reviving in our bondage. + +9:9 For we were bondmen; yet our God hath not forsaken us in our +bondage, but hath extended mercy unto us in the sight of the kings of +Persia, to give us a reviving, to set up the house of our God, and to +repair the desolations thereof, and to give us a wall in Judah and in +Jerusalem. + +9:10 And now, O our God, what shall we say after this? for we have +forsaken thy commandments, 9:11 Which thou hast commanded by thy +servants the prophets, saying, The land, unto which ye go to possess +it, is an unclean land with the filthiness of the people of the lands, +with their abominations, which have filled it from one end to another +with their uncleanness. + +9:12 Now therefore give not your daughters unto their sons, neither +take their daughters unto your sons, nor seek their peace or their +wealth for ever: that ye may be strong, and eat the good of the land, +and leave it for an inheritance to your children for ever. + +9:13 And after all that is come upon us for our evil deeds, and for +our great trespass, seeing that thou our God hast punished us less +than our iniquities deserve, and hast given us such deliverance as +this; 9:14 Should we again break thy commandments, and join in +affinity with the people of these abominations? wouldest not thou be +angry with us till thou hadst consumed us, so that there should be no +remnant nor escaping? 9:15 O LORD God of Israel, thou art righteous: +for we remain yet escaped, as it is this day: behold, we are before +thee in our trespasses: for we cannot stand before thee because of +this. + +10:1 Now when Ezra had prayed, and when he had confessed, weeping and +casting himself down before the house of God, there assembled unto him +out of Israel a very great congregation of men and women and children: +for the people wept very sore. + +10:2 And Shechaniah the son of Jehiel, one of the sons of Elam, +answered and said unto Ezra, We have trespassed against our God, and +have taken strange wives of the people of the land: yet now there is +hope in Israel concerning this thing. + +10:3 Now therefore let us make a covenant with our God to put away all +the wives, and such as are born of them, according to the counsel of +my lord, and of those that tremble at the commandment of our God; and +let it be done according to the law. + +10:4 Arise; for this matter belongeth unto thee: we also will be with +thee: be of good courage, and do it. + +10:5 Then arose Ezra, and made the chief priests, the Levites, and all +Israel, to swear that they should do according to this word. And they +sware. + +10:6 Then Ezra rose up from before the house of God, and went into the +chamber of Johanan the son of Eliashib: and when he came thither, he +did eat no bread, nor drink water: for he mourned because of the +transgression of them that had been carried away. + +10:7 And they made proclamation throughout Judah and Jerusalem unto +all the children of the captivity, that they should gather themselves +together unto Jerusalem; 10:8 And that whosoever would not come within +three days, according to the counsel of the princes and the elders, +all his substance should be forfeited, and himself separated from the +congregation of those that had been carried away. + +10:9 Then all the men of Judah and Benjamin gathered themselves +together unto Jerusalem within three days. It was the ninth month, on +the twentieth day of the month; and all the people sat in the street +of the house of God, trembling because of this matter, and for the +great rain. + +10:10 And Ezra the priest stood up, and said unto them, Ye have +transgressed, and have taken strange wives, to increase the trespass +of Israel. + +10:11 Now therefore make confession unto the LORD God of your fathers, +and do his pleasure: and separate yourselves from the people of the +land, and from the strange wives. + +10:12 Then all the congregation answered and said with a loud voice, +As thou hast said, so must we do. + +10:13 But the people are many, and it is a time of much rain, and we +are not able to stand without, neither is this a work of one day or +two: for we are many that have transgressed in this thing. + +10:14 Let now our rulers of all the congregation stand, and let all +them which have taken strange wives in our cities come at appointed +times, and with them the elders of every city, and the judges thereof, +until the fierce wrath of our God for this matter be turned from us. + +10:15 Only Jonathan the son of Asahel and Jahaziah the son of Tikvah +were employed about this matter: and Meshullam and Shabbethai the +Levite helped them. + +10:16 And the children of the captivity did so. And Ezra the priest, +with certain chief of the fathers, after the house of their fathers, +and all of them by their names, were separated, and sat down in the +first day of the tenth month to examine the matter. + +10:17 And they made an end with all the men that had taken strange +wives by the first day of the first month. + +10:18 And among the sons of the priests there were found that had +taken strange wives: namely, of the sons of Jeshua the son of Jozadak, +and his brethren; Maaseiah, and Eliezer, and Jarib, and Gedaliah. + +10:19 And they gave their hands that they would put away their wives; +and being guilty, they offered a ram of the flock for their trespass. + +10:20 And of the sons of Immer; Hanani, and Zebadiah. + +10:21 And of the sons of Harim; Maaseiah, and Elijah, and Shemaiah, +and Jehiel, and Uzziah. + +10:22 And of the sons of Pashur; Elioenai, Maaseiah, Ishmael, +Nethaneel, Jozabad, and Elasah. + +10:23 Also of the Levites; Jozabad, and Shimei, and Kelaiah, (the same +is Kelita,) Pethahiah, Judah, and Eliezer. + +10:24 Of the singers also; Eliashib: and of the porters; Shallum, and +Telem, and Uri. + +10:25 Moreover of Israel: of the sons of Parosh; Ramiah, and Jeziah, +and Malchiah, and Miamin, and Eleazar, and Malchijah, and Benaiah. + +10:26 And of the sons of Elam; Mattaniah, Zechariah, and Jehiel, and +Abdi, and Jeremoth, and Eliah. + +10:27 And of the sons of Zattu; Elioenai, Eliashib, Mattaniah, and +Jeremoth, and Zabad, and Aziza. + +10:28 Of the sons also of Bebai; Jehohanan, Hananiah, Zabbai, and +Athlai. + +10:29 And of the sons of Bani; Meshullam, Malluch, and Adaiah, Jashub, +and Sheal, and Ramoth. + +10:30 And of the sons of Pahathmoab; Adna, and Chelal, Benaiah, +Maaseiah, Mattaniah, Bezaleel, and Binnui, and Manasseh. + +10:31 And of the sons of Harim; Eliezer, Ishijah, Malchiah, Shemaiah, +Shimeon, 10:32 Benjamin, Malluch, and Shemariah. + +10:33 Of the sons of Hashum; Mattenai, Mattathah, Zabad, Eliphelet, +Jeremai, Manasseh, and Shimei. + +10:34 Of the sons of Bani; Maadai, Amram, and Uel, 10:35 Benaiah, +Bedeiah, Chelluh, 10:36 Vaniah, Meremoth, Eliashib, 10:37 Mattaniah, +Mattenai, and Jaasau, 10:38 And Bani, and Binnui, Shimei, 10:39 And +Shelemiah, and Nathan, and Adaiah, 10:40 Machnadebai, Shashai, Sharai, +10:41 Azareel, and Shelemiah, Shemariah, 10:42 Shallum, Amariah, and +Joseph. + +10:43 Of the sons of Nebo; Jeiel, Mattithiah, Zabad, Zebina, Jadau, +and Joel, Benaiah. + +10:44 All these had taken strange wives: and some of them had wives by +whom they had children. + + + +The Book of Nehemiah + + +1:1 The words of Nehemiah the son of Hachaliah. And it came to pass +in the month Chisleu, in the twentieth year, as I was in Shushan the +palace, 1:2 That Hanani, one of my brethren, came, he and certain men +of Judah; and I asked them concerning the Jews that had escaped, which +were left of the captivity, and concerning Jerusalem. + +1:3 And they said unto me, The remnant that are left of the captivity +there in the province are in great affliction and reproach: the wall +of Jerusalem also is broken down, and the gates thereof are burned +with fire. + +1:4 And it came to pass, when I heard these words, that I sat down and +wept, and mourned certain days, and fasted, and prayed before the God +of heaven, 1:5 And said, I beseech thee, O LORD God of heaven, the +great and terrible God, that keepeth covenant and mercy for them that +love him and observe his commandments: 1:6 Let thine ear now be +attentive, and thine eyes open, that thou mayest hear the prayer of +thy servant, which I pray before thee now, day and night, for the +children of Israel thy servants, and confess the sins of the children +of Israel, which we have sinned against thee: both I and my father's +house have sinned. + +1:7 We have dealt very corruptly against thee, and have not kept the +commandments, nor the statutes, nor the judgments, which thou +commandedst thy servant Moses. + +1:8 Remember, I beseech thee, the word that thou commandedst thy +servant Moses, saying, If ye transgress, I will scatter you abroad +among the nations: 1:9 But if ye turn unto me, and keep my +commandments, and do them; though there were of you cast out unto the +uttermost part of the heaven, yet will I gather them from thence, and +will bring them unto the place that I have chosen to set my name +there. + +1:10 Now these are thy servants and thy people, whom thou hast +redeemed by thy great power, and by thy strong hand. + +1:11 O LORD, I beseech thee, let now thine ear be attentive to the +prayer of thy servant, and to the prayer of thy servants, who desire +to fear thy name: and prosper, I pray thee, thy servant this day, and +grant him mercy in the sight of this man. For I was the king's +cupbearer. + +2:1 And it came to pass in the month Nisan, in the twentieth year of +Artaxerxes the king, that wine was before him: and I took up the wine, +and gave it unto the king. Now I had not been beforetime sad in his +presence. + +2:2 Wherefore the king said unto me, Why is thy countenance sad, +seeing thou art not sick? this is nothing else but sorrow of heart. +Then I was very sore afraid, 2:3 And said unto the king, Let the king +live for ever: why should not my countenance be sad, when the city, +the place of my fathers' sepulchres, lieth waste, and the gates +thereof are consumed with fire? 2:4 Then the king said unto me, For +what dost thou make request? So I prayed to the God of heaven. + +2:5 And I said unto the king, If it please the king, and if thy +servant have found favour in thy sight, that thou wouldest send me +unto Judah, unto the city of my fathers' sepulchres, that I may build +it. + +2:6 And the king said unto me, (the queen also sitting by him,) For +how long shall thy journey be? and when wilt thou return? So it +pleased the king to send me; and I set him a time. + +2:7 Moreover I said unto the king, If it please the king, let letters +be given me to the governors beyond the river, that they may convey me +over till I come into Judah; 2:8 And a letter unto Asaph the keeper of +the king's forest, that he may give me timber to make beams for the +gates of the palace which appertained to the house, and for the wall +of the city, and for the house that I shall enter into. And the king +granted me, according to the good hand of my God upon me. + +2:9 Then I came to the governors beyond the river, and gave them the +king's letters. Now the king had sent captains of the army and +horsemen with me. + +2:10 When Sanballat the Horonite, and Tobiah the servant, the +Ammonite, heard of it, it grieved them exceedingly that there was come +a man to seek the welfare of the children of Israel. + +2:11 So I came to Jerusalem, and was there three days. + +2:12 And I arose in the night, I and some few men with me; neither +told I any man what my God had put in my heart to do at Jerusalem: +neither was there any beast with me, save the beast that I rode upon. + +2:13 And I went out by night by the gate of the valley, even before +the dragon well, and to the dung port, and viewed the walls of +Jerusalem, which were broken down, and the gates thereof were consumed +with fire. + +2:14 Then I went on to the gate of the fountain, and to the king's +pool: but there was no place for the beast that was under me to pass. + +2:15 Then went I up in the night by the brook, and viewed the wall, +and turned back, and entered by the gate of the valley, and so +returned. + +2:16 And the rulers knew not whither I went, or what I did; neither +had I as yet told it to the Jews, nor to the priests, nor to the +nobles, nor to the rulers, nor to the rest that did the work. + +2:17 Then said I unto them, Ye see the distress that we are in, how +Jerusalem lieth waste, and the gates thereof are burned with fire: +come, and let us build up the wall of Jerusalem, that we be no more a +reproach. + +2:18 Then I told them of the hand of my God which was good upon me; as +also the king's words that he had spoken unto me. And they said, Let +us rise up and build. So they strengthened their hands for this good +work. + +2:19 But when Sanballat the Horonite, and Tobiah the servant, the +Ammonite, and Geshem the Arabian, heard it, they laughed us to scorn, +and despised us, and said, What is this thing that ye do? will ye +rebel against the king? 2:20 Then answered I them, and said unto +them, The God of heaven, he will prosper us; therefore we his servants +will arise and build: but ye have no portion, nor right, nor memorial, +in Jerusalem. + +3:1 Then Eliashib the high priest rose up with his brethren the +priests, and they builded the sheep gate; they sanctified it, and set +up the doors of it; even unto the tower of Meah they sanctified it, +unto the tower of Hananeel. + +3:2 And next unto him builded the men of Jericho. And next to them +builded Zaccur the son of Imri. + +3:3 But the fish gate did the sons of Hassenaah build, who also laid +the beams thereof, and set up the doors thereof, the locks thereof, +and the bars thereof. + +3:4 And next unto them repaired Meremoth the son of Urijah, the son of +Koz. And next unto them repaired Meshullam the son of Berechiah, the +son of Meshezabeel. And next unto them repaired Zadok the son of +Baana. + +3:5 And next unto them the Tekoites repaired; but their nobles put not +their necks to the work of their LORD. + +3:6 Moreover the old gate repaired Jehoiada the son of Paseah, and +Meshullam the son of Besodeiah; they laid the beams thereof, and set +up the doors thereof, and the locks thereof, and the bars thereof. + +3:7 And next unto them repaired Melatiah the Gibeonite, and Jadon the +Meronothite, the men of Gibeon, and of Mizpah, unto the throne of the +governor on this side the river. + +3:8 Next unto him repaired Uzziel the son of Harhaiah, of the +goldsmiths. + +Next unto him also repaired Hananiah the son of one of the +apothecaries, and they fortified Jerusalem unto the broad wall. + +3:9 And next unto them repaired Rephaiah the son of Hur, the ruler of +the half part of Jerusalem. + +3:10 And next unto them repaired Jedaiah the son of Harumaph, even +over against his house. And next unto him repaired Hattush the son of +Hashabniah. + +3:11 Malchijah the son of Harim, and Hashub the son of Pahathmoab, +repaired the other piece, and the tower of the furnaces. + +3:12 And next unto him repaired Shallum the son of Halohesh, the ruler +of the half part of Jerusalem, he and his daughters. + +3:13 The valley gate repaired Hanun, and the inhabitants of Zanoah; +they built it, and set up the doors thereof, the locks thereof, and +the bars thereof, and a thousand cubits on the wall unto the dung +gate. + +3:14 But the dung gate repaired Malchiah the son of Rechab, the ruler +of part of Bethhaccerem; he built it, and set up the doors thereof, +the locks thereof, and the bars thereof. + +3:15 But the gate of the fountain repaired Shallun the son of +Colhozeh, the ruler of part of Mizpah; he built it, and covered it, +and set up the doors thereof, the locks thereof, and the bars thereof, +and the wall of the pool of Siloah by the king's garden, and unto the +stairs that go down from the city of David. + +3:16 After him repaired Nehemiah the son of Azbuk, the ruler of the +half part of Bethzur, unto the place over against the sepulchres of +David, and to the pool that was made, and unto the house of the +mighty. + +3:17 After him repaired the Levites, Rehum the son of Bani. Next unto +him repaired Hashabiah, the ruler of the half part of Keilah, in his +part. + +3:18 After him repaired their brethren, Bavai the son of Henadad, the +ruler of the half part of Keilah. + +3:19 And next to him repaired Ezer the son of Jeshua, the ruler of +Mizpah, another piece over against the going up to the armoury at the +turning of the wall. + +3:20 After him Baruch the son of Zabbai earnestly repaired the other +piece, from the turning of the wall unto the door of the house of +Eliashib the high priest. + +3:21 After him repaired Meremoth the son of Urijah the son of Koz +another piece, from the door of the house of Eliashib even to the end +of the house of Eliashib. + +3:22 And after him repaired the priests, the men of the plain. + +3:23 After him repaired Benjamin and Hashub over against their house. + +After him repaired Azariah the son of Maaseiah the son of Ananiah by +his house. + +3:24 After him repaired Binnui the son of Henadad another piece, from +the house of Azariah unto the turning of the wall, even unto the +corner. + +3:25 Palal the son of Uzai, over against the turning of the wall, and +the tower which lieth out from the king's high house, that was by the +court of the prison. After him Pedaiah the son of Parosh. + +3:26 Moreover the Nethinims dwelt in Ophel, unto the place over +against the water gate toward the east, and the tower that lieth out. + +3:27 After them the Tekoites repaired another piece, over against the +great tower that lieth out, even unto the wall of Ophel. + +3:28 From above the horse gate repaired the priests, every one over +against his house. + +3:29 After them repaired Zadok the son of Immer over against his +house. + +After him repaired also Shemaiah the son of Shechaniah, the keeper of +the east gate. + +3:30 After him repaired Hananiah the son of Shelemiah, and Hanun the +sixth son of Zalaph, another piece. After him repaired Meshullam the +son of Berechiah over against his chamber. + +3:31 After him repaired Malchiah the goldsmith's son unto the place of +the Nethinims, and of the merchants, over against the gate Miphkad, +and to the going up of the corner. + +3:32 And between the going up of the corner unto the sheep gate +repaired the goldsmiths and the merchants. + +4:1 But it came to pass, that when Sanballat heard that we builded the +wall, he was wroth, and took great indignation, and mocked the Jews. + +4:2 And he spake before his brethren and the army of Samaria, and +said, What do these feeble Jews? will they fortify themselves? will +they sacrifice? will they make an end in a day? will they revive the +stones out of the heaps of the rubbish which are burned? 4:3 Now +Tobiah the Ammonite was by him, and he said, Even that which they +build, if a fox go up, he shall even break down their stone wall. + +4:4 Hear, O our God; for we are despised: and turn their reproach upon +their own head, and give them for a prey in the land of captivity: 4:5 +And cover not their iniquity, and let not their sin be blotted out +from before thee: for they have provoked thee to anger before the +builders. + +4:6 So built we the wall; and all the wall was joined together unto +the half thereof: for the people had a mind to work. + +4:7 But it came to pass, that when Sanballat, and Tobiah, and the +Arabians, and the Ammonites, and the Ashdodites, heard that the walls +of Jerusalem were made up, and that the breaches began to be stopped, +then they were very wroth, 4:8 And conspired all of them together to +come and to fight against Jerusalem, and to hinder it. + +4:9 Nevertheless we made our prayer unto our God, and set a watch +against them day and night, because of them. + +4:10 And Judah said, The strength of the bearers of burdens is +decayed, and there is much rubbish; so that we are not able to build +the wall. + +4:11 And our adversaries said, They shall not know, neither see, till +we come in the midst among them, and slay them, and cause the work to +cease. + +4:12 And it came to pass, that when the Jews which dwelt by them came, +they said unto us ten times, From all places whence ye shall return +unto us they will be upon you. + +4:13 Therefore set I in the lower places behind the wall, and on the +higher places, I even set the people after their families with their +swords, their spears, and their bows. + +4:14 And I looked, and rose up, and said unto the nobles, and to the +rulers, and to the rest of the people, Be not ye afraid of them: +remember the LORD, which is great and terrible, and fight for your +brethren, your sons, and your daughters, your wives, and your houses. + +4:15 And it came to pass, when our enemies heard that it was known +unto us, and God had brought their counsel to nought, that we returned +all of us to the wall, every one unto his work. + +4:16 And it came to pass from that time forth, that the half of my +servants wrought in the work, and the other half of them held both the +spears, the shields, and the bows, and the habergeons; and the rulers +were behind all the house of Judah. + +4:17 They which builded on the wall, and they that bare burdens, with +those that laded, every one with one of his hands wrought in the work, +and with the other hand held a weapon. + +4:18 For the builders, every one had his sword girded by his side, and +so builded. And he that sounded the trumpet was by me. + +4:19 And I said unto the nobles, and to the rulers, and to the rest of +the people, The work is great and large, and we are separated upon the +wall, one far from another. + +4:20 In what place therefore ye hear the sound of the trumpet, resort +ye thither unto us: our God shall fight for us. + +4:21 So we laboured in the work: and half of them held the spears from +the rising of the morning till the stars appeared. + +4:22 Likewise at the same time said I unto the people, Let every one +with his servant lodge within Jerusalem, that in the night they may be +a guard to us, and labour on the day. + +4:23 So neither I, nor my brethren, nor my servants, nor the men of +the guard which followed me, none of us put off our clothes, saving +that every one put them off for washing. + +5:1 And there was a great cry of the people and of their wives against +their brethren the Jews. + +5:2 For there were that said, We, our sons, and our daughters, are +many: therefore we take up corn for them, that we may eat, and live. + +5:3 Some also there were that said, We have mortgaged our lands, +vineyards, and houses, that we might buy corn, because of the dearth. + +5:4 There were also that said, We have borrowed money for the king's +tribute, and that upon our lands and vineyards. + +5:5 Yet now our flesh is as the flesh of our brethren, our children as +their children: and, lo, we bring into bondage our sons and our +daughters to be servants, and some of our daughters are brought unto +bondage already: neither is it in our power to redeem them; for other +men have our lands and vineyards. + +5:6 And I was very angry when I heard their cry and these words. + +5:7 Then I consulted with myself, and I rebuked the nobles, and the +rulers, and said unto them, Ye exact usury, every one of his brother. +And I set a great assembly against them. + +5:8 And I said unto them, We after our ability have redeemed our +brethren the Jews, which were sold unto the heathen; and will ye even +sell your brethren? or shall they be sold unto us? Then held they +their peace, and found nothing to answer. + +5:9 Also I said, It is not good that ye do: ought ye not to walk in +the fear of our God because of the reproach of the heathen our +enemies? 5:10 I likewise, and my brethren, and my servants, might +exact of them money and corn: I pray you, let us leave off this usury. + +5:11 Restore, I pray you, to them, even this day, their lands, their +vineyards, their oliveyards, and their houses, also the hundredth part +of the money, and of the corn, the wine, and the oil, that ye exact of +them. + +5:12 Then said they, We will restore them, and will require nothing of +them; so will we do as thou sayest. Then I called the priests, and +took an oath of them, that they should do according to this promise. + +5:13 Also I shook my lap, and said, So God shake out every man from +his house, and from his labour, that performeth not this promise, even +thus be he shaken out, and emptied. And all the congregation said, +Amen, and praised the LORD. And the people did according to this +promise. + +5:14 Moreover from the time that I was appointed to be their governor +in the land of Judah, from the twentieth year even unto the two and +thirtieth year of Artaxerxes the king, that is, twelve years, I and my +brethren have not eaten the bread of the governor. + +5:15 But the former governors that had been before me were chargeable +unto the people, and had taken of them bread and wine, beside forty +shekels of silver; yea, even their servants bare rule over the people: +but so did not I, because of the fear of God. + +5:16 Yea, also I continued in the work of this wall, neither bought we +any land: and all my servants were gathered thither unto the work. + +5:17 Moreover there were at my table an hundred and fifty of the Jews +and rulers, beside those that came unto us from among the heathen that +are about us. + +5:18 Now that which was prepared for me daily was one ox and six +choice sheep; also fowls were prepared for me, and once in ten days +store of all sorts of wine: yet for all this required not I the bread +of the governor, because the bondage was heavy upon this people. + +5:19 Think upon me, my God, for good, according to all that I have +done for this people. + +6:1 Now it came to pass when Sanballat, and Tobiah, and Geshem the +Arabian, and the rest of our enemies, heard that I had builded the +wall, and that there was no breach left therein; (though at that time +I had not set up the doors upon the gates;) 6:2 That Sanballat and +Geshem sent unto me, saying, Come, let us meet together in some one of +the villages in the plain of Ono. But they thought to do me mischief. + +6:3 And I sent messengers unto them, saying, I am doing a great work, +so that I cannot come down: why should the work cease, whilst I leave +it, and come down to you? 6:4 Yet they sent unto me four times after +this sort; and I answered them after the same manner. + +6:5 Then sent Sanballat his servant unto me in like manner the fifth +time with an open letter in his hand; 6:6 Wherein was written, It is +reported among the heathen, and Gashmu saith it, that thou and the +Jews think to rebel: for which cause thou buildest the wall, that thou +mayest be their king, according to these words. + +6:7 And thou hast also appointed prophets to preach of thee at +Jerusalem, saying, There is a king in Judah: and now shall it be +reported to the king according to these words. Come now therefore, and +let us take counsel together. + +6:8 Then I sent unto him, saying, There are no such things done as +thou sayest, but thou feignest them out of thine own heart. + +6:9 For they all made us afraid, saying, Their hands shall be weakened +from the work, that it be not done. Now therefore, O God, strengthen +my hands. + +6:10 Afterward I came unto the house of Shemaiah the son of Delaiah +the son of Mehetabeel, who was shut up; and he said, Let us meet +together in the house of God, within the temple, and let us shut the +doors of the temple: for they will come to slay thee; yea, in the +night will they come to slay thee. + +6:11 And I said, Should such a man as I flee? and who is there, that, +being as I am, would go into the temple to save his life? I will not +go in. + +6:12 And, lo, I perceived that God had not sent him; but that he +pronounced this prophecy against me: for Tobiah and Sanballat had +hired him. + +6:13 Therefore was he hired, that I should be afraid, and do so, and +sin, and that they might have matter for an evil report, that they +might reproach me. + +6:14 My God, think thou upon Tobiah and Sanballat according to these +their works, and on the prophetess Noadiah, and the rest of the +prophets, that would have put me in fear. + +6:15 So the wall was finished in the twenty and fifth day of the month +Elul, in fifty and two days. + +6:16 And it came to pass, that when all our enemies heard thereof, and +all the heathen that were about us saw these things, they were much +cast down in their own eyes: for they perceived that this work was +wrought of our God. + +6:17 Moreover in those days the nobles of Judah sent many letters unto +Tobiah, and the letters of Tobiah came unto them. + +6:18 For there were many in Judah sworn unto him, because he was the +son in law of Shechaniah the son of Arah; and his son Johanan had +taken the daughter of Meshullam the son of Berechiah. + +6:19 Also they reported his good deeds before me, and uttered my words +to him. And Tobiah sent letters to put me in fear. + +7:1 Now it came to pass, when the wall was built, and I had set up the +doors, and the porters and the singers and the Levites were appointed, +7:2 That I gave my brother Hanani, and Hananiah the ruler of the +palace, charge over Jerusalem: for he was a faithful man, and feared +God above many. + +7:3 And I said unto them, Let not the gates of Jerusalem be opened +until the sun be hot; and while they stand by, let them shut the +doors, and bar them: and appoint watches of the inhabitants of +Jerusalem, every one in his watch, and every one to be over against +his house. + +7:4 Now the city was large and great: but the people were few therein, +and the houses were not builded. + +7:5 And my God put into mine heart to gather together the nobles, and +the rulers, and the people, that they might be reckoned by genealogy. +And I found a register of the genealogy of them which came up at the +first, and found written therein, 7:6 These are the children of the +province, that went up out of the captivity, of those that had been +carried away, whom Nebuchadnezzar the king of Babylon had carried +away, and came again to Jerusalem and to Judah, every one unto his +city; 7:7 Who came with Zerubbabel, Jeshua, Nehemiah, Azariah, +Raamiah, Nahamani, Mordecai, Bilshan, Mispereth, Bigvai, Nehum, +Baanah. The number, I say, of the men of the people of Israel was +this; 7:8 The children of Parosh, two thousand an hundred seventy and +two. + +7:9 The children of Shephatiah, three hundred seventy and two. + +7:10 The children of Arah, six hundred fifty and two. + +7:11 The children of Pahathmoab, of the children of Jeshua and Joab, +two thousand and eight hundred and eighteen. + +7:12 The children of Elam, a thousand two hundred fifty and four. + +7:13 The children of Zattu, eight hundred forty and five. + +7:14 The children of Zaccai, seven hundred and threescore. + +7:15 The children of Binnui, six hundred forty and eight. + +7:16 The children of Bebai, six hundred twenty and eight. + +7:17 The children of Azgad, two thousand three hundred twenty and two. + +7:18 The children of Adonikam, six hundred threescore and seven. + +7:19 The children of Bigvai, two thousand threescore and seven. + +7:20 The children of Adin, six hundred fifty and five. + +7:21 The children of Ater of Hezekiah, ninety and eight. + +7:22 The children of Hashum, three hundred twenty and eight. + +7:23 The children of Bezai, three hundred twenty and four. + +7:24 The children of Hariph, an hundred and twelve. + +7:25 The children of Gibeon, ninety and five. + +7:26 The men of Bethlehem and Netophah, an hundred fourscore and +eight. + +7:27 The men of Anathoth, an hundred twenty and eight. + +7:28 The men of Bethazmaveth, forty and two. + +7:29 The men of Kirjathjearim, Chephirah, and Beeroth, seven hundred +forty and three. + +7:30 The men of Ramah and Gaba, six hundred twenty and one. + +7:31 The men of Michmas, an hundred and twenty and two. + +7:32 The men of Bethel and Ai, an hundred twenty and three. + +7:33 The men of the other Nebo, fifty and two. + +7:34 The children of the other Elam, a thousand two hundred fifty and +four. + +7:35 The children of Harim, three hundred and twenty. + +7:36 The children of Jericho, three hundred forty and five. + +7:37 The children of Lod, Hadid, and Ono, seven hundred twenty and +one. + +7:38 The children of Senaah, three thousand nine hundred and thirty. + +7:39 The priests: the children of Jedaiah, of the house of Jeshua, +nine hundred seventy and three. + +7:40 The children of Immer, a thousand fifty and two. + +7:41 The children of Pashur, a thousand two hundred forty and seven. + +7:42 The children of Harim, a thousand and seventeen. + +7:43 The Levites: the children of Jeshua, of Kadmiel, and of the +children of Hodevah, seventy and four. + +7:44 The singers: the children of Asaph, an hundred forty and eight. + +7:45 The porters: the children of Shallum, the children of Ater, the +children of Talmon, the children of Akkub, the children of Hatita, the +children of Shobai, an hundred thirty and eight. + +7:46 The Nethinims: the children of Ziha, the children of Hashupha, +the children of Tabbaoth, 7:47 The children of Keros, the children of +Sia, the children of Padon, 7:48 The children of Lebana, the children +of Hagaba, the children of Shalmai, 7:49 The children of Hanan, the +children of Giddel, the children of Gahar, 7:50 The children of +Reaiah, the children of Rezin, the children of Nekoda, 7:51 The +children of Gazzam, the children of Uzza, the children of Phaseah, +7:52 The children of Besai, the children of Meunim, the children of +Nephishesim, 7:53 The children of Bakbuk, the children of Hakupha, the +children of Harhur, 7:54 The children of Bazlith, the children of +Mehida, the children of Harsha, 7:55 The children of Barkos, the +children of Sisera, the children of Tamah, 7:56 The children of +Neziah, the children of Hatipha. + +7:57 The children of Solomon's servants: the children of Sotai, the +children of Sophereth, the children of Perida, 7:58 The children of +Jaala, the children of Darkon, the children of Giddel, 7:59 The +children of Shephatiah, the children of Hattil, the children of +Pochereth of Zebaim, the children of Amon. + +7:60 All the Nethinims, and the children of Solomon's servants, were +three hundred ninety and two. + +7:61 And these were they which went up also from Telmelah, Telharesha, +Cherub, Addon, and Immer: but they could not shew their father's +house, nor their seed, whether they were of Israel. + +7:62 The children of Delaiah, the children of Tobiah, the children of +Nekoda, six hundred forty and two. + +7:63 And of the priests: the children of Habaiah, the children of Koz, +the children of Barzillai, which took one of the daughters of +Barzillai the Gileadite to wife, and was called after their name. + +7:64 These sought their register among those that were reckoned by +genealogy, but it was not found: therefore were they, as polluted, put +from the priesthood. + +7:65 And the Tirshatha said unto them, that they should not eat of the +most holy things, till there stood up a priest with Urim and Thummim. + +7:66 The whole congregation together was forty and two thousand three +hundred and threescore, 7:67 Beside their manservants and their +maidservants, of whom there were seven thousand three hundred thirty +and seven: and they had two hundred forty and five singing men and +singing women. + +7:68 Their horses, seven hundred thirty and six: their mules, two +hundred forty and five: 7:69 Their camels, four hundred thirty and +five: six thousand seven hundred and twenty asses. + +7:70 And some of the chief of the fathers gave unto the work. The +Tirshatha gave to the treasure a thousand drams of gold, fifty basons, +five hundred and thirty priests' garments. + +7:71 And some of the chief of the fathers gave to the treasure of the +work twenty thousand drams of gold, and two thousand and two hundred +pound of silver. + +7:72 And that which the rest of the people gave was twenty thousand +drams of gold, and two thousand pound of silver, and threescore and +seven priests' garments. + +7:73 So the priests, and the Levites, and the porters, and the +singers, and some of the people, and the Nethinims, and all Israel, +dwelt in their cities; and when the seventh month came, the children +of Israel were in their cities. + +8:1 And all the people gathered themselves together as one man into +the street that was before the water gate; and they spake unto Ezra +the scribe to bring the book of the law of Moses, which the LORD had +commanded to Israel. + +8:2 And Ezra the priest brought the law before the congregation both +of men and women, and all that could hear with understanding, upon the +first day of the seventh month. + +8:3 And he read therein before the street that was before the water +gate from the morning until midday, before the men and the women, and +those that could understand; and the ears of all the people were +attentive unto the book of the law. + +8:4 And Ezra the scribe stood upon a pulpit of wood, which they had +made for the purpose; and beside him stood Mattithiah, and Shema, and +Anaiah, and Urijah, and Hilkiah, and Maaseiah, on his right hand; and +on his left hand, Pedaiah, and Mishael, and Malchiah, and Hashum, and +Hashbadana, Zechariah, and Meshullam. + +8:5 And Ezra opened the book in the sight of all the people; (for he +was above all the people;) and when he opened it, all the people stood +up: 8:6 And Ezra blessed the LORD, the great God. And all the people +answered, Amen, Amen, with lifting up their hands: and they bowed +their heads, and worshipped the LORD with their faces to the ground. + +8:7 Also Jeshua, and Bani, and Sherebiah, Jamin, Akkub, Shabbethai, +Hodijah, Maaseiah, Kelita, Azariah, Jozabad, Hanan, Pelaiah, and the +Levites, caused the people to understand the law: and the people stood +in their place. + +8:8 So they read in the book in the law of God distinctly, and gave +the sense, and caused them to understand the reading. + +8:9 And Nehemiah, which is the Tirshatha, and Ezra the priest the +scribe, and the Levites that taught the people, said unto all the +people, This day is holy unto the LORD your God; mourn not, nor weep. +For all the people wept, when they heard the words of the law. + +8:10 Then he said unto them, Go your way, eat the fat, and drink the +sweet, and send portions unto them for whom nothing is prepared: for +this day is holy unto our LORD: neither be ye sorry; for the joy of +the LORD is your strength. + +8:11 So the Levites stilled all the people, saying, Hold your peace, +for the day is holy; neither be ye grieved. + +8:12 And all the people went their way to eat, and to drink, and to +send portions, and to make great mirth, because they had understood +the words that were declared unto them. + +8:13 And on the second day were gathered together the chief of the +fathers of all the people, the priests, and the Levites, unto Ezra the +scribe, even to understand the words of the law. + +8:14 And they found written in the law which the LORD had commanded by +Moses, that the children of Israel should dwell in booths in the feast +of the seventh month: 8:15 And that they should publish and proclaim +in all their cities, and in Jerusalem, saying, Go forth unto the +mount, and fetch olive branches, and pine branches, and myrtle +branches, and palm branches, and branches of thick trees, to make +booths, as it is written. + +8:16 So the people went forth, and brought them, and made themselves +booths, every one upon the roof of his house, and in their courts, and +in the courts of the house of God, and in the street of the water +gate, and in the street of the gate of Ephraim. + +8:17 And all the congregation of them that were come again out of the +captivity made booths, and sat under the booths: for since the days of +Jeshua the son of Nun unto that day had not the children of Israel +done so. And there was very great gladness. + +8:18 Also day by day, from the first day unto the last day, he read in +the book of the law of God. And they kept the feast seven days; and on +the eighth day was a solemn assembly, according unto the manner. + +9:1 Now in the twenty and fourth day of this month the children of +Israel were assembled with fasting, and with sackclothes, and earth +upon them. + +9:2 And the seed of Israel separated themselves from all strangers, +and stood and confessed their sins, and the iniquities of their +fathers. + +9:3 And they stood up in their place, and read in the book of the law +of the LORD their God one fourth part of the day; and another fourth +part they confessed, and worshipped the LORD their God. + +9:4 Then stood up upon the stairs, of the Levites, Jeshua, and Bani, +Kadmiel, Shebaniah, Bunni, Sherebiah, Bani, and Chenani, and cried +with a loud voice unto the LORD their God. + +9:5 Then the Levites, Jeshua, and Kadmiel, Bani, Hashabniah, +Sherebiah, Hodijah, Shebaniah, and Pethahiah, said, Stand up and bless +the LORD your God for ever and ever: and blessed be thy glorious name, +which is exalted above all blessing and praise. + +9:6 Thou, even thou, art LORD alone; thou hast made heaven, the heaven +of heavens, with all their host, the earth, and all things that are +therein, the seas, and all that is therein, and thou preservest them +all; and the host of heaven worshippeth thee. + +9:7 Thou art the LORD the God, who didst choose Abram, and broughtest +him forth out of Ur of the Chaldees, and gavest him the name of +Abraham; 9:8 And foundest his heart faithful before thee, and madest a +covenant with him to give the land of the Canaanites, the Hittites, +the Amorites, and the Perizzites, and the Jebusites, and the +Girgashites, to give it, I say, to his seed, and hast performed thy +words; for thou art righteous: 9:9 And didst see the affliction of our +fathers in Egypt, and heardest their cry by the Red sea; 9:10 And +shewedst signs and wonders upon Pharaoh, and on all his servants, and +on all the people of his land: for thou knewest that they dealt +proudly against them. So didst thou get thee a name, as it is this +day. + +9:11 And thou didst divide the sea before them, so that they went +through the midst of the sea on the dry land; and their persecutors +thou threwest into the deeps, as a stone into the mighty waters. + +9:12 Moreover thou leddest them in the day by a cloudy pillar; and in +the night by a pillar of fire, to give them light in the way wherein +they should go. + +9:13 Thou camest down also upon mount Sinai, and spakest with them +from heaven, and gavest them right judgments, and true laws, good +statutes and commandments: 9:14 And madest known unto them thy holy +sabbath, and commandedst them precepts, statutes, and laws, by the +hand of Moses thy servant: 9:15 And gavest them bread from heaven for +their hunger, and broughtest forth water for them out of the rock for +their thirst, and promisedst them that they should go in to possess +the land which thou hadst sworn to give them. + +9:16 But they and our fathers dealt proudly, and hardened their necks, +and hearkened not to thy commandments, 9:17 And refused to obey, +neither were mindful of thy wonders that thou didst among them; but +hardened their necks, and in their rebellion appointed a captain to +return to their bondage: but thou art a God ready to pardon, gracious +and merciful, slow to anger, and of great kindness, and forsookest +them not. + +9:18 Yea, when they had made them a molten calf, and said, This is thy +God that brought thee up out of Egypt, and had wrought great +provocations; 9:19 Yet thou in thy manifold mercies forsookest them +not in the wilderness: the pillar of the cloud departed not from them +by day, to lead them in the way; neither the pillar of fire by night, +to shew them light, and the way wherein they should go. + +9:20 Thou gavest also thy good spirit to instruct them, and +withheldest not thy manna from their mouth, and gavest them water for +their thirst. + +9:21 Yea, forty years didst thou sustain them in the wilderness, so +that they lacked nothing; their clothes waxed not old, and their feet +swelled not. + +9:22 Moreover thou gavest them kingdoms and nations, and didst divide +them into corners: so they possessed the land of Sihon, and the land +of the king of Heshbon, and the land of Og king of Bashan. + +9:23 Their children also multipliedst thou as the stars of heaven, and +broughtest them into the land, concerning which thou hadst promised to +their fathers, that they should go in to possess it. + +9:24 So the children went in and possessed the land, and thou +subduedst before them the inhabitants of the land, the Canaanites, and +gavest them into their hands, with their kings, and the people of the +land, that they might do with them as they would. + +9:25 And they took strong cities, and a fat land, and possessed houses +full of all goods, wells digged, vineyards, and oliveyards, and fruit +trees in abundance: so they did eat, and were filled, and became fat, +and delighted themselves in thy great goodness. + +9:26 Nevertheless they were disobedient, and rebelled against thee, +and cast thy law behind their backs, and slew thy prophets which +testified against them to turn them to thee, and they wrought great +provocations. + +9:27 Therefore thou deliveredst them into the hand of their enemies, +who vexed them: and in the time of their trouble, when they cried unto +thee, thou heardest them from heaven; and according to thy manifold +mercies thou gavest them saviours, who saved them out of the hand of +their enemies. + +9:28 But after they had rest, they did evil again before thee: +therefore leftest thou them in the land of their enemies, so that they +had the dominion over them: yet when they returned, and cried unto +thee, thou heardest them from heaven; and many times didst thou +deliver them according to thy mercies; 9:29 And testifiedst against +them, that thou mightest bring them again unto thy law: yet they dealt +proudly, and hearkened not unto thy commandments, but sinned against +thy judgments, (which if a man do, he shall live in them;) and +withdrew the shoulder, and hardened their neck, and would not hear. + +9:30 Yet many years didst thou forbear them, and testifiedst against +them by thy spirit in thy prophets: yet would they not give ear: +therefore gavest thou them into the hand of the people of the lands. + +9:31 Nevertheless for thy great mercies' sake thou didst not utterly +consume them, nor forsake them; for thou art a gracious and merciful +God. + +9:32 Now therefore, our God, the great, the mighty, and the terrible +God, who keepest covenant and mercy, let not all the trouble seem +little before thee, that hath come upon us, on our kings, on our +princes, and on our priests, and on our prophets, and on our fathers, +and on all thy people, since the time of the kings of Assyria unto +this day. + +9:33 Howbeit thou art just in all that is brought upon us; for thou +hast done right, but we have done wickedly: 9:34 Neither have our +kings, our princes, our priests, nor our fathers, kept thy law, nor +hearkened unto thy commandments and thy testimonies, wherewith thou +didst testify against them. + +9:35 For they have not served thee in their kingdom, and in thy great +goodness that thou gavest them, and in the large and fat land which +thou gavest before them, neither turned they from their wicked works. + +9:36 Behold, we are servants this day, and for the land that thou +gavest unto our fathers to eat the fruit thereof and the good thereof, +behold, we are servants in it: 9:37 And it yieldeth much increase unto +the kings whom thou hast set over us because of our sins: also they +have dominion over our bodies, and over our cattle, at their pleasure, +and we are in great distress. + +9:38 And because of all this we make a sure covenant, and write it; +and our princes, Levites, and priests, seal unto it. + +10:1 Now those that sealed were, Nehemiah, the Tirshatha, the son of +Hachaliah, and Zidkijah, 10:2 Seraiah, Azariah, Jeremiah, 10:3 Pashur, +Amariah, Malchijah, 10:4 Hattush, Shebaniah, Malluch, 10:5 Harim, +Meremoth, Obadiah, 10:6 Daniel, Ginnethon, Baruch, 10:7 Meshullam, +Abijah, Mijamin, 10:8 Maaziah, Bilgai, Shemaiah: these were the +priests. + +10:9 And the Levites: both Jeshua the son of Azaniah, Binnui of the +sons of Henadad, Kadmiel; 10:10 And their brethren, Shebaniah, +Hodijah, Kelita, Pelaiah, Hanan, 10:11 Micha, Rehob, Hashabiah, 10:12 +Zaccur, Sherebiah, Shebaniah, 10:13 Hodijah, Bani, Beninu. + +10:14 The chief of the people; Parosh, Pahathmoab, Elam, Zatthu, Bani, +10:15 Bunni, Azgad, Bebai, 10:16 Adonijah, Bigvai, Adin, 10:17 Ater, +Hizkijah, Azzur, 10:18 Hodijah, Hashum, Bezai, 10:19 Hariph, Anathoth, +Nebai, 10:20 Magpiash, Meshullam, Hezir, 10:21 Meshezabeel, Zadok, +Jaddua, 10:22 Pelatiah, Hanan, Anaiah, 10:23 Hoshea, Hananiah, Hashub, +10:24 Hallohesh, Pileha, Shobek, 10:25 Rehum, Hashabnah, Maaseiah, +10:26 And Ahijah, Hanan, Anan, 10:27 Malluch, Harim, Baanah. + +10:28 And the rest of the people, the priests, the Levites, the +porters, the singers, the Nethinims, and all they that had separated +themselves from the people of the lands unto the law of God, their +wives, their sons, and their daughters, every one having knowledge, +and having understanding; 10:29 They clave to their brethren, their +nobles, and entered into a curse, and into an oath, to walk in God's +law, which was given by Moses the servant of God, and to observe and +do all the commandments of the LORD our Lord, and his judgments and +his statutes; 10:30 And that we would not give our daughters unto the +people of the land, not take their daughters for our sons: 10:31 And +if the people of the land bring ware or any victuals on the sabbath +day to sell, that we would not buy it of them on the sabbath, or on +the holy day: and that we would leave the seventh year, and the +exaction of every debt. + +10:32 Also we made ordinances for us, to charge ourselves yearly with +the third part of a shekel for the service of the house of our God; +10:33 For the shewbread, and for the continual meat offering, and for +the continual burnt offering, of the sabbaths, of the new moons, for +the set feasts, and for the holy things, and for the sin offerings to +make an atonement for Israel, and for all the work of the house of our +God. + +10:34 And we cast the lots among the priests, the Levites, and the +people, for the wood offering, to bring it into the house of our God, +after the houses of our fathers, at times appointed year by year, to +burn upon the altar of the LORD our God, as it is written in the law: +10:35 And to bring the firstfruits of our ground, and the firstfruits +of all fruit of all trees, year by year, unto the house of the LORD: +10:36 Also the firstborn of our sons, and of our cattle, as it is +written in the law, and the firstlings of our herds and of our flocks, +to bring to the house of our God, unto the priests that minister in +the house of our God: 10:37 And that we should bring the firstfruits +of our dough, and our offerings, and the fruit of all manner of trees, +of wine and of oil, unto the priests, to the chambers of the house of +our God; and the tithes of our ground unto the Levites, that the same +Levites might have the tithes in all the cities of our tillage. + +10:38 And the priest the son of Aaron shall be with the Levites, when +the Levites take tithes: and the Levites shall bring up the tithe of +the tithes unto the house of our God, to the chambers, into the +treasure house. + +10:39 For the children of Israel and the children of Levi shall bring +the offering of the corn, of the new wine, and the oil, unto the +chambers, where are the vessels of the sanctuary, and the priests that +minister, and the porters, and the singers: and we will not forsake +the house of our God. + +11:1 And the rulers of the people dwelt at Jerusalem: the rest of the +people also cast lots, to bring one of ten to dwell in Jerusalem the +holy city, and nine parts to dwell in other cities. + +11:2 And the people blessed all the men, that willingly offered +themselves to dwell at Jerusalem. + +11:3 Now these are the chief of the province that dwelt in Jerusalem: +but in the cities of Judah dwelt every one in his possession in their +cities, to wit, Israel, the priests, and the Levites, and the +Nethinims, and the children of Solomon's servants. + +11:4 And at Jerusalem dwelt certain of the children of Judah, and of +the children of Benjamin. Of the children of Judah; Athaiah the son of +Uzziah, the son of Zechariah, the son of Amariah, the son of +Shephatiah, the son of Mahalaleel, of the children of Perez; 11:5 And +Maaseiah the son of Baruch, the son of Colhozeh, the son of Hazaiah, +the son of Adaiah, the son of Joiarib, the son of Zechariah, the son +of Shiloni. + +11:6 All the sons of Perez that dwelt at Jerusalem were four hundred +threescore and eight valiant men. + +11:7 And these are the sons of Benjamin; Sallu the son of Meshullam, +the son of Joed, the son of Pedaiah, the son of Kolaiah, the son of +Maaseiah, the son of Ithiel, the son of Jesaiah. + +11:8 And after him Gabbai, Sallai, nine hundred twenty and eight. + +11:9 And Joel the son of Zichri was their overseer: and Judah the son +of Senuah was second over the city. + +11:10 Of the priests: Jedaiah the son of Joiarib, Jachin. + +11:11 Seraiah the son of Hilkiah, the son of Meshullam, the son of +Zadok, the son of Meraioth, the son of Ahitub, was the ruler of the +house of God. + +11:12 And their brethren that did the work of the house were eight +hundred twenty and two: and Adaiah the son of Jeroham, the son of +Pelaliah, the son of Amzi, the son of Zechariah, the son of Pashur, +the son of Malchiah. + +11:13 And his brethren, chief of the fathers, two hundred forty and +two: and Amashai the son of Azareel, the son of Ahasai, the son of +Meshillemoth, the son of Immer, 11:14 And their brethren, mighty men +of valour, an hundred twenty and eight: and their overseer was +Zabdiel, the son of one of the great men. + +11:15 Also of the Levites: Shemaiah the son of Hashub, the son of +Azrikam, the son of Hashabiah, the son of Bunni; 11:16 And Shabbethai +and Jozabad, of the chief of the Levites, had the oversight of the +outward business of the house of God. + +11:17 And Mattaniah the son of Micha, the son of Zabdi, the son of +Asaph, was the principal to begin the thanksgiving in prayer: and +Bakbukiah the second among his brethren, and Abda the son of Shammua, +the son of Galal, the son of Jeduthun. + +11:18 All the Levites in the holy city were two hundred fourscore and +four. + +11:19 Moreover the porters, Akkub, Talmon, and their brethren that +kept the gates, were an hundred seventy and two. + +11:20 And the residue of Israel, of the priests, and the Levites, were +in all the cities of Judah, every one in his inheritance. + +11:21 But the Nethinims dwelt in Ophel: and Ziha and Gispa were over +the Nethinims. + +11:22 The overseer also of the Levites at Jerusalem was Uzzi the son +of Bani, the son of Hashabiah, the son of Mattaniah, the son of Micha. +Of the sons of Asaph, the singers were over the business of the house +of God. + +11:23 For it was the king's commandment concerning them, that a +certain portion should be for the singers, due for every day. + +11:24 And Pethahiah the son of Meshezabeel, of the children of Zerah +the son of Judah, was at the king's hand in all matters concerning the +people. + +11:25 And for the villages, with their fields, some of the children of +Judah dwelt at Kirjatharba, and in the villages thereof, and at Dibon, +and in the villages thereof, and at Jekabzeel, and in the villages +thereof, 11:26 And at Jeshua, and at Moladah, and at Bethphelet, 11:27 +And at Hazarshual, and at Beersheba, and in the villages thereof, +11:28 And at Ziklag, and at Mekonah, and in the villages thereof, +11:29 And at Enrimmon, and at Zareah, and at Jarmuth, 11:30 Zanoah, +Adullam, and in their villages, at Lachish, and the fields thereof, at +Azekah, and in the villages thereof. And they dwelt from Beersheba +unto the valley of Hinnom. + +11:31 The children also of Benjamin from Geba dwelt at Michmash, and +Aija, and Bethel, and in their villages. + +11:32 And at Anathoth, Nob, Ananiah, 11:33 Hazor, Ramah, Gittaim, +11:34 Hadid, Zeboim, Neballat, 11:35 Lod, and Ono, the valley of +craftsmen. + +11:36 And of the Levites were divisions in Judah, and in Benjamin. + +12:1 Now these are the priests and the Levites that went up with +Zerubbabel the son of Shealtiel, and Jeshua: Seraiah, Jeremiah, Ezra, +12:2 Amariah, Malluch, Hattush, 12:3 Shechaniah, Rehum, Meremoth, 12:4 +Iddo, Ginnetho, Abijah, 12:5 Miamin, Maadiah, Bilgah, 12:6 Shemaiah, +and Joiarib, Jedaiah, 12:7 Sallu, Amok, Hilkiah, Jedaiah. These were +the chief of the priests and of their brethren in the days of Jeshua. + +12:8 Moreover the Levites: Jeshua, Binnui, Kadmiel, Sherebiah, Judah, +and Mattaniah, which was over the thanksgiving, he and his brethren. + +12:9 Also Bakbukiah and Unni, their brethren, were over against them +in the watches. + +12:10 And Jeshua begat Joiakim, Joiakim also begat Eliashib, and +Eliashib begat Joiada, 12:11 And Joiada begat Jonathan, and Jonathan +begat Jaddua. + +12:12 And in the days of Joiakim were priests, the chief of the +fathers: of Seraiah, Meraiah; of Jeremiah, Hananiah; 12:13 Of Ezra, +Meshullam; of Amariah, Jehohanan; 12:14 Of Melicu, Jonathan; of +Shebaniah, Joseph; 12:15 Of Harim, Adna; of Meraioth, Helkai; 12:16 Of +Iddo, Zechariah; of Ginnethon, Meshullam; 12:17 Of Abijah, Zichri; of +Miniamin, of Moadiah, Piltai: 12:18 Of Bilgah, Shammua; of Shemaiah, +Jehonathan; 12:19 And of Joiarib, Mattenai; of Jedaiah, Uzzi; 12:20 Of +Sallai, Kallai; of Amok, Eber; 12:21 Of Hilkiah, Hashabiah; of +Jedaiah, Nethaneel. + +12:22 The Levites in the days of Eliashib, Joiada, and Johanan, and +Jaddua, were recorded chief of the fathers: also the priests, to the +reign of Darius the Persian. + +12:23 The sons of Levi, the chief of the fathers, were written in the +book of the chronicles, even until the days of Johanan the son of +Eliashib. + +12:24 And the chief of the Levites: Hashabiah, Sherebiah, and Jeshua +the son of Kadmiel, with their brethren over against them, to praise +and to give thanks, according to the commandment of David the man of +God, ward over against ward. + +12:25 Mattaniah, and Bakbukiah, Obadiah, Meshullam, Talmon, Akkub, +were porters keeping the ward at the thresholds of the gates. + +12:26 These were in the days of Joiakim the son of Jeshua, the son of +Jozadak, and in the days of Nehemiah the governor, and of Ezra the +priest, the scribe. + +12:27 And at the dedication of the wall of Jerusalem they sought the +Levites out of all their places, to bring them to Jerusalem, to keep +the dedication with gladness, both with thanksgivings, and with +singing, with cymbals, psalteries, and with harps. + +12:28 And the sons of the singers gathered themselves together, both +out of the plain country round about Jerusalem, and from the villages +of Netophathi; 12:29 Also from the house of Gilgal, and out of the +fields of Geba and Azmaveth: for the singers had builded them villages +round about Jerusalem. + +12:30 And the priests and the Levites purified themselves, and +purified the people, and the gates, and the wall. + +12:31 Then I brought up the princes of Judah upon the wall, and +appointed two great companies of them that gave thanks, whereof one +went on the right hand upon the wall toward the dung gate: 12:32 And +after them went Hoshaiah, and half of the princes of Judah, 12:33 And +Azariah, Ezra, and Meshullam, 12:34 Judah, and Benjamin, and Shemaiah, +and Jeremiah, 12:35 And certain of the priests' sons with trumpets; +namely, Zechariah the son of Jonathan, the son of Shemaiah, the son of +Mattaniah, the son of Michaiah, the son of Zaccur, the son of Asaph: +12:36 And his brethren, Shemaiah, and Azarael, Milalai, Gilalai, Maai, +Nethaneel, and Judah, Hanani, with the musical instruments of David +the man of God, and Ezra the scribe before them. + +12:37 And at the fountain gate, which was over against them, they went +up by the stairs of the city of David, at the going up of the wall, +above the house of David, even unto the water gate eastward. + +12:38 And the other company of them that gave thanks went over against +them, and I after them, and the half of the people upon the wall, from +beyond the tower of the furnaces even unto the broad wall; 12:39 And +from above the gate of Ephraim, and above the old gate, and above the +fish gate, and the tower of Hananeel, and the tower of Meah, even unto +the sheep gate: and they stood still in the prison gate. + +12:40 So stood the two companies of them that gave thanks in the house +of God, and I, and the half of the rulers with me: 12:41 And the +priests; Eliakim, Maaseiah, Miniamin, Michaiah, Elioenai, Zechariah, +and Hananiah, with trumpets; 12:42 And Maaseiah, and Shemaiah, and +Eleazar, and Uzzi, and Jehohanan, and Malchijah, and Elam, and Ezer. +And the singers sang loud, with Jezrahiah their overseer. + +12:43 Also that day they offered great sacrifices, and rejoiced: for +God had made them rejoice with great joy: the wives also and the +children rejoiced: so that the joy of Jerusalem was heard even afar +off. + +12:44 And at that time were some appointed over the chambers for the +treasures, for the offerings, for the firstfruits, and for the tithes, +to gather into them out of the fields of the cities the portions of +the law for the priests and Levites: for Judah rejoiced for the +priests and for the Levites that waited. + +12:45 And both the singers and the porters kept the ward of their God, +and the ward of the purification, according to the commandment of +David, and of Solomon his son. + +12:46 For in the days of David and Asaph of old there were chief of +the singers, and songs of praise and thanksgiving unto God. + +12:47 And all Israel in the days of Zerubbabel, and in the days of +Nehemiah, gave the portions of the singers and the porters, every day +his portion: and they sanctified holy things unto the Levites; and the +Levites sanctified them unto the children of Aaron. + +13:1 On that day they read in the book of Moses in the audience of the +people; and therein was found written, that the Ammonite and the +Moabite should not come into the congregation of God for ever; 13:2 +Because they met not the children of Israel with bread and with water, +but hired Balaam against them, that he should curse them: howbeit our +God turned the curse into a blessing. + +13:3 Now it came to pass, when they had heard the law, that they +separated from Israel all the mixed multitude. + +13:4 And before this, Eliashib the priest, having the oversight of the +chamber of the house of our God, was allied unto Tobiah: 13:5 And he +had prepared for him a great chamber, where aforetime they laid the +meat offerings, the frankincense, and the vessels, and the tithes of +the corn, the new wine, and the oil, which was commanded to be given +to the Levites, and the singers, and the porters; and the offerings of +the priests. + +13:6 But in all this time was not I at Jerusalem: for in the two and +thirtieth year of Artaxerxes king of Babylon came I unto the king, and +after certain days obtained I leave of the king: 13:7 And I came to +Jerusalem, and understood of the evil that Eliashib did for Tobiah, in +preparing him a chamber in the courts of the house of God. + +13:8 And it grieved me sore: therefore I cast forth all the household +stuff to Tobiah out of the chamber. + +13:9 Then I commanded, and they cleansed the chambers: and thither +brought I again the vessels of the house of God, with the meat +offering and the frankincense. + +13:10 And I perceived that the portions of the Levites had not been +given them: for the Levites and the singers, that did the work, were +fled every one to his field. + +13:11 Then contended I with the rulers, and said, Why is the house of +God forsaken? And I gathered them together, and set them in their +place. + +13:12 Then brought all Judah the tithe of the corn and the new wine +and the oil unto the treasuries. + +13:13 And I made treasurers over the treasuries, Shelemiah the priest, +and Zadok the scribe, and of the Levites, Pedaiah: and next to them +was Hanan the son of Zaccur, the son of Mattaniah: for they were +counted faithful, and their office was to distribute unto their +brethren. + +13:14 Remember me, O my God, concerning this, and wipe not out my good +deeds that I have done for the house of my God, and for the offices +thereof. + +13:15 In those days saw I in Judah some treading wine presses on the +sabbath, and bringing in sheaves, and lading asses; as also wine, +grapes, and figs, and all manner of burdens, which they brought into +Jerusalem on the sabbath day: and I testified against them in the day +wherein they sold victuals. + +13:16 There dwelt men of Tyre also therein, which brought fish, and +all manner of ware, and sold on the sabbath unto the children of +Judah, and in Jerusalem. + +13:17 Then I contended with the nobles of Judah, and said unto them, +What evil thing is this that ye do, and profane the sabbath day? +13:18 Did not your fathers thus, and did not our God bring all this +evil upon us, and upon this city? yet ye bring more wrath upon Israel +by profaning the sabbath. + +13:19 And it came to pass, that when the gates of Jerusalem began to +be dark before the sabbath, I commanded that the gates should be shut, +and charged that they should not be opened till after the sabbath: and +some of my servants set I at the gates, that there should no burden be +brought in on the sabbath day. + +13:20 So the merchants and sellers of all kind of ware lodged without +Jerusalem once or twice. + +13:21 Then I testified against them, and said unto them, Why lodge ye +about the wall? if ye do so again, I will lay hands on you. From that +time forth came they no more on the sabbath. + +13:22 And I commanded the Levites that they should cleanse themselves, +and that they should come and keep the gates, to sanctify the sabbath +day. + +Remember me, O my God, concerning this also, and spare me according to +the greatness of thy mercy. + +13:23 In those days also saw I Jews that had married wives of Ashdod, +of Ammon, and of Moab: 13:24 And their children spake half in the +speech of Ashdod, and could not speak in the Jews' language, but +according to the language of each people. + +13:25 And I contended with them, and cursed them, and smote certain of +them, and plucked off their hair, and made them swear by God, saying, +Ye shall not give your daughters unto their sons, nor take their +daughters unto your sons, or for yourselves. + +13:26 Did not Solomon king of Israel sin by these things? yet among +many nations was there no king like him, who was beloved of his God, +and God made him king over all Israel: nevertheless even him did +outlandish women cause to sin. + +13:27 Shall we then hearken unto you to do all this great evil, to +transgress against our God in marrying strange wives? 13:28 And one +of the sons of Joiada, the son of Eliashib the high priest, was son in +law to Sanballat the Horonite: therefore I chased him from me. + +13:29 Remember them, O my God, because they have defiled the +priesthood, and the covenant of the priesthood, and of the Levites. + +13:30 Thus cleansed I them from all strangers, and appointed the wards +of the priests and the Levites, every one in his business; 13:31 And +for the wood offering, at times appointed, and for the firstfruits. +Remember me, O my God, for good. + + + + +The Book of Esther + + +1:1 Now it came to pass in the days of Ahasuerus, (this is Ahasuerus +which reigned, from India even unto Ethiopia, over an hundred and +seven and twenty provinces:) 1:2 That in those days, when the king +Ahasuerus sat on the throne of his kingdom, which was in Shushan the +palace, 1:3 In the third year of his reign, he made a feast unto all +his princes and his servants; the power of Persia and Media, the +nobles and princes of the provinces, being before him: 1:4 When he +shewed the riches of his glorious kingdom and the honour of his +excellent majesty many days, even an hundred and fourscore days. + +1:5 And when these days were expired, the king made a feast unto all +the people that were present in Shushan the palace, both unto great +and small, seven days, in the court of the garden of the king's +palace; 1:6 Where were white, green, and blue, hangings, fastened with +cords of fine linen and purple to silver rings and pillars of marble: +the beds were of gold and silver, upon a pavement of red, and blue, +and white, and black, marble. + +1:7 And they gave them drink in vessels of gold, (the vessels being +diverse one from another,) and royal wine in abundance, according to +the state of the king. + +1:8 And the drinking was according to the law; none did compel: for so +the king had appointed to all the officers of his house, that they +should do according to every man's pleasure. + +1:9 Also Vashti the queen made a feast for the women in the royal +house which belonged to king Ahasuerus. + +1:10 On the seventh day, when the heart of the king was merry with +wine, he commanded Mehuman, Biztha, Harbona, Bigtha, and Abagtha, +Zethar, and Carcas, the seven chamberlains that served in the presence +of Ahasuerus the king, 1:11 To bring Vashti the queen before the king +with the crown royal, to shew the people and the princes her beauty: +for she was fair to look on. + +1:12 But the queen Vashti refused to come at the king's commandment by +his chamberlains: therefore was the king very wroth, and his anger +burned in him. + +1:13 Then the king said to the wise men, which knew the times, (for so +was the king's manner toward all that knew law and judgment: 1:14 And +the next unto him was Carshena, Shethar, Admatha, Tarshish, Meres, +Marsena, and Memucan, the seven princes of Persia and Media, which saw +the king's face, and which sat the first in the kingdom;) 1:15 What +shall we do unto the queen Vashti according to law, because she hath +not performed the commandment of the king Ahasuerus by the +chamberlains? 1:16 And Memucan answered before the king and the +princes, Vashti the queen hath not done wrong to the king only, but +also to all the princes, and to all the people that are in all the +provinces of the king Ahasuerus. + +1:17 For this deed of the queen shall come abroad unto all women, so +that they shall despise their husbands in their eyes, when it shall be +reported, The king Ahasuerus commanded Vashti the queen to be brought +in before him, but she came not. + +1:18 Likewise shall the ladies of Persia and Media say this day unto +all the king's princes, which have heard of the deed of the queen. +Thus shall there arise too much contempt and wrath. + +1:19 If it please the king, let there go a royal commandment from him, +and let it be written among the laws of the Persians and the Medes, +that it be not altered, That Vashti come no more before king +Ahasuerus; and let the king give her royal estate unto another that is +better than she. + +1:20 And when the king's decree which he shall make shall be published +throughout all his empire, (for it is great,) all the wives shall give +to their husbands honour, both to great and small. + +1:21 And the saying pleased the king and the princes; and the king did +according to the word of Memucan: 1:22 For he sent letters into all +the king's provinces, into every province according to the writing +thereof, and to every people after their language, that every man +should bear rule in his own house, and that it should be published +according to the language of every people. + +2:1 After these things, when the wrath of king Ahasuerus was appeased, +he remembered Vashti, and what she had done, and what was decreed +against her. + +2:2 Then said the king's servants that ministered unto him, Let there +be fair young virgins sought for the king: 2:3 And let the king +appoint officers in all the provinces of his kingdom, that they may +gather together all the fair young virgins unto Shushan the palace, to +the house of the women, unto the custody of Hege the king's +chamberlain, keeper of the women; and let their things for +purification be given them: 2:4 And let the maiden which pleaseth the +king be queen instead of Vashti. + +And the thing pleased the king; and he did so. + +2:5 Now in Shushan the palace there was a certain Jew, whose name was +Mordecai, the son of Jair, the son of Shimei, the son of Kish, a +Benjamite; 2:6 Who had been carried away from Jerusalem with the +captivity which had been carried away with Jeconiah king of Judah, +whom Nebuchadnezzar the king of Babylon had carried away. + +2:7 And he brought up Hadassah, that is, Esther, his uncle's daughter: +for she had neither father nor mother, and the maid was fair and +beautiful; whom Mordecai, when her father and mother were dead, took +for his own daughter. + +2:8 So it came to pass, when the king's commandment and his decree was +heard, and when many maidens were gathered together unto Shushan the +palace, to the custody of Hegai, that Esther was brought also unto the +king's house, to the custody of Hegai, keeper of the women. + +2:9 And the maiden pleased him, and she obtained kindness of him; and +he speedily gave her her things for purification, with such things as +belonged to her, and seven maidens, which were meet to be given her, +out of the king's house: and he preferred her and her maids unto the +best place of the house of the women. + +2:10 Esther had not shewed her people nor her kindred: for Mordecai +had charged her that she should not shew it. + +2:11 And Mordecai walked every day before the court of the women's +house, to know how Esther did, and what should become of her. + +2:12 Now when every maid's turn was come to go in to king Ahasuerus, +after that she had been twelve months, according to the manner of the +women, (for so were the days of their purifications accomplished, to +wit, six months with oil of myrrh, and six months with sweet odours, +and with other things for the purifying of the women;) 2:13 Then thus +came every maiden unto the king; whatsoever she desired was given her +to go with her out of the house of the women unto the king's house. + +2:14 In the evening she went, and on the morrow she returned into the +second house of the women, to the custody of Shaashgaz, the king's +chamberlain, which kept the concubines: she came in unto the king no +more, except the king delighted in her, and that she were called by +name. + +2:15 Now when the turn of Esther, the daughter of Abihail the uncle of +Mordecai, who had taken her for his daughter, was come to go in unto +the king, she required nothing but what Hegai the king's chamberlain, +the keeper of the women, appointed. And Esther obtained favour in the +sight of all them that looked upon her. + +2:16 So Esther was taken unto king Ahasuerus into his house royal in +the tenth month, which is the month Tebeth, in the seventh year of his +reign. + +2:17 And the king loved Esther above all the women, and she obtained +grace and favour in his sight more than all the virgins; so that he +set the royal crown upon her head, and made her queen instead of +Vashti. + +2:18 Then the king made a great feast unto all his princes and his +servants, even Esther's feast; and he made a release to the provinces, +and gave gifts, according to the state of the king. + +2:19 And when the virgins were gathered together the second time, then +Mordecai sat in the king's gate. + +2:20 Esther had not yet shewed her kindred nor her people; as Mordecai +had charged her: for Esther did the commandment of Mordecai, like as +when she was brought up with him. + +2:21 In those days, while Mordecai sat in the king's gate, two of the +king's chamberlains, Bigthan and Teresh, of those which kept the door, +were wroth, and sought to lay hands on the king Ahasuerus. + +2:22 And the thing was known to Mordecai, who told it unto Esther the +queen; and Esther certified the king thereof in Mordecai's name. + +2:23 And when inquisition was made of the matter, it was found out; +therefore they were both hanged on a tree: and it was written in the +book of the chronicles before the king. + +3:1 After these things did king Ahasuerus promote Haman the son of +Hammedatha the Agagite, and advanced him, and set his seat above all +the princes that were with him. + +3:2 And all the king's servants, that were in the king's gate, bowed, +and reverenced Haman: for the king had so commanded concerning him. +But Mordecai bowed not, nor did him reverence. + +3:3 Then the king's servants, which were in the king's gate, said unto +Mordecai, Why transgressest thou the king's commandment? 3:4 Now it +came to pass, when they spake daily unto him, and he hearkened not +unto them, that they told Haman, to see whether Mordecai's matters +would stand: for he had told them that he was a Jew. + +3:5 And when Haman saw that Mordecai bowed not, nor did him reverence, +then was Haman full of wrath. + +3:6 And he thought scorn to lay hands on Mordecai alone; for they had +shewed him the people of Mordecai: wherefore Haman sought to destroy +all the Jews that were throughout the whole kingdom of Ahasuerus, even +the people of Mordecai. + +3:7 In the first month, that is, the month Nisan, in the twelfth year +of king Ahasuerus, they cast Pur, that is, the lot, before Haman from +day to day, and from month to month, to the twelfth month, that is, +the month Adar. + +3:8 And Haman said unto king Ahasuerus, There is a certain people +scattered abroad and dispersed among the people in all the provinces +of thy kingdom; and their laws are diverse from all people; neither +keep they the king's laws: therefore it is not for the king's profit +to suffer them. + +3:9 If it please the king, let it be written that they may be +destroyed: and I will pay ten thousand talents of silver to the hands +of those that have the charge of the business, to bring it into the +king's treasuries. + +3:10 And the king took his ring from his hand, and gave it unto Haman +the son of Hammedatha the Agagite, the Jews' enemy. + +3:11 And the king said unto Haman, The silver is given to thee, the +people also, to do with them as it seemeth good to thee. + +3:12 Then were the king's scribes called on the thirteenth day of the +first month, and there was written according to all that Haman had +commanded unto the king's lieutenants, and to the governors that were +over every province, and to the rulers of every people of every +province according to the writing thereof, and to every people after +their language; in the name of king Ahasuerus was it written, and +sealed with the king's ring. + +3:13 And the letters were sent by posts into all the king's provinces, +to destroy, to kill, and to cause to perish, all Jews, both young and +old, little children and women, in one day, even upon the thirteenth +day of the twelfth month, which is the month Adar, and to take the +spoil of them for a prey. + +3:14 The copy of the writing for a commandment to be given in every +province was published unto all people, that they should be ready +against that day. + +3:15 The posts went out, being hastened by the king's commandment, and +the decree was given in Shushan the palace. And the king and Haman sat +down to drink; but the city Shushan was perplexed. + +4:1 When Mordecai perceived all that was done, Mordecai rent his +clothes, and put on sackcloth with ashes, and went out into the midst +of the city, and cried with a loud and a bitter cry; 4:2 And came even +before the king's gate: for none might enter into the king's gate +clothed with sackcloth. + +4:3 And in every province, whithersoever the king's commandment and +his decree came, there was great mourning among the Jews, and fasting, +and weeping, and wailing; and many lay in sackcloth and ashes. + +4:4 So Esther's maids and her chamberlains came and told it her. Then +was the queen exceedingly grieved; and she sent raiment to clothe +Mordecai, and to take away his sackcloth from him: but he received it +not. + +4:5 Then called Esther for Hatach, one of the king's chamberlains, +whom he had appointed to attend upon her, and gave him a commandment +to Mordecai, to know what it was, and why it was. + +4:6 So Hatach went forth to Mordecai unto the street of the city, +which was before the king's gate. + +4:7 And Mordecai told him of all that had happened unto him, and of +the sum of the money that Haman had promised to pay to the king's +treasuries for the Jews, to destroy them. + +4:8 Also he gave him the copy of the writing of the decree that was +given at Shushan to destroy them, to shew it unto Esther, and to +declare it unto her, and to charge her that she should go in unto the +king, to make supplication unto him, and to make request before him +for her people. + +4:9 And Hatach came and told Esther the words of Mordecai. + +4:10 Again Esther spake unto Hatach, and gave him commandment unto +Mordecai; 4:11 All the king's servants, and the people of the king's +provinces, do know, that whosoever, whether man or women, shall come +unto the king into the inner court, who is not called, there is one +law of his to put him to death, except such to whom the king shall +hold out the golden sceptre, that he may live: but I have not been +called to come in unto the king these thirty days. + +4:12 And they told to Mordecai Esther's words. + +4:13 Then Mordecai commanded to answer Esther, Think not with thyself +that thou shalt escape in the king's house, more than all the Jews. + +4:14 For if thou altogether holdest thy peace at this time, then shall +there enlargement and deliverance arise to the Jews from another +place; but thou and thy father's house shall be destroyed: and who +knoweth whether thou art come to the kingdom for such a time as this? +4:15 Then Esther bade them return Mordecai this answer, 4:16 Go, +gather together all the Jews that are present in Shushan, and fast ye +for me, and neither eat nor drink three days, night or day: I also and +my maidens will fast likewise; and so will I go in unto the king, +which is not according to the law: and if I perish, I perish. + +4:17 So Mordecai went his way, and did according to all that Esther +had commanded him. + +5:1 Now it came to pass on the third day, that Esther put on her royal +apparel, and stood in the inner court of the king's house, over +against the king's house: and the king sat upon his royal throne in +the royal house, over against the gate of the house. + +5:2 And it was so, when the king saw Esther the queen standing in the +court, that she obtained favour in his sight: and the king held out to +Esther the golden sceptre that was in his hand. So Esther drew near, +and touched the top of the sceptre. + +5:3 Then said the king unto her, What wilt thou, queen Esther? and +what is thy request? it shall be even given thee to the half of the +kingdom. + +5:4 And Esther answered, If it seem good unto the king, let the king +and Haman come this day unto the banquet that I have prepared for him. + +5:5 Then the king said, Cause Haman to make haste, that he may do as +Esther hath said. So the king and Haman came to the banquet that +Esther had prepared. + +5:6 And the king said unto Esther at the banquet of wine, What is thy +petition? and it shall be granted thee: and what is thy request? even +to the half of the kingdom it shall be performed. + +5:7 Then answered Esther, and said, My petition and my request is; 5:8 +If I have found favour in the sight of the king, and if it please the +king to grant my petition, and to perform my request, let the king and +Haman come to the banquet that I shall prepare for them, and I will do +to morrow as the king hath said. + +5:9 Then went Haman forth that day joyful and with a glad heart: but +when Haman saw Mordecai in the king's gate, that he stood not up, nor +moved for him, he was full of indignation against Mordecai. + +5:10 Nevertheless Haman refrained himself: and when he came home, he +sent and called for his friends, and Zeresh his wife. + +5:11 And Haman told them of the glory of his riches, and the multitude +of his children, and all the things wherein the king had promoted him, +and how he had advanced him above the princes and servants of the +king. + +5:12 Haman said moreover, Yea, Esther the queen did let no man come in +with the king unto the banquet that she had prepared but myself; and +to morrow am I invited unto her also with the king. + +5:13 Yet all this availeth me nothing, so long as I see Mordecai the +Jew sitting at the king's gate. + +5:14 Then said Zeresh his wife and all his friends unto him, Let a +gallows be made of fifty cubits high, and to morrow speak thou unto +the king that Mordecai may be hanged thereon: then go thou in merrily +with the king unto the banquet. And the thing pleased Haman; and he +caused the gallows to be made. + +6:1 On that night could not the king sleep, and he commanded to bring +the book of records of the chronicles; and they were read before the +king. + +6:2 And it was found written, that Mordecai had told of Bigthana and +Teresh, two of the king's chamberlains, the keepers of the door, who +sought to lay hand on the king Ahasuerus. + +6:3 And the king said, What honour and dignity hath been done to +Mordecai for this? Then said the king's servants that ministered unto +him, There is nothing done for him. + +6:4 And the king said, Who is in the court? Now Haman was come into +the outward court of the king's house, to speak unto the king to hang +Mordecai on the gallows that he had prepared for him. + +6:5 And the king's servants said unto him, Behold, Haman standeth in +the court. And the king said, Let him come in. + +6:6 So Haman came in. And the king said unto him, What shall be done +unto the man whom the king delighteth to honour? Now Haman thought in +his heart, To whom would the king delight to do honour more than to +myself? 6:7 And Haman answered the king, For the man whom the king +delighteth to honour, 6:8 Let the royal apparel be brought which the +king useth to wear, and the horse that the king rideth upon, and the +crown royal which is set upon his head: 6:9 And let this apparel and +horse be delivered to the hand of one of the king's most noble +princes, that they may array the man withal whom the king delighteth +to honour, and bring him on horseback through the street of the city, +and proclaim before him, Thus shall it be done to the man whom the +king delighteth to honour. + +6:10 Then the king said to Haman, Make haste, and take the apparel and +the horse, as thou hast said, and do even so to Mordecai the Jew, that +sitteth at the king's gate: let nothing fail of all that thou hast +spoken. + +6:11 Then took Haman the apparel and the horse, and arrayed Mordecai, +and brought him on horseback through the street of the city, and +proclaimed before him, Thus shall it be done unto the man whom the +king delighteth to honour. + +6:12 And Mordecai came again to the king's gate. But Haman hasted to +his house mourning, and having his head covered. + +6:13 And Haman told Zeresh his wife and all his friends every thing +that had befallen him. Then said his wise men and Zeresh his wife unto +him, If Mordecai be of the seed of the Jews, before whom thou hast +begun to fall, thou shalt not prevail against him, but shalt surely +fall before him. + +6:14 And while they were yet talking with him, came the king's +chamberlains, and hasted to bring Haman unto the banquet that Esther +had prepared. + +7:1 So the king and Haman came to banquet with Esther the queen. + +7:2 And the king said again unto Esther on the second day at the +banquet of wine, What is thy petition, queen Esther? and it shall be +granted thee: and what is thy request? and it shall be performed, even +to the half of the kingdom. + +7:3 Then Esther the queen answered and said, If I have found favour in +thy sight, O king, and if it please the king, let my life be given me +at my petition, and my people at my request: 7:4 For we are sold, I +and my people, to be destroyed, to be slain, and to perish. But if we +had been sold for bondmen and bondwomen, I had held my tongue, +although the enemy could not countervail the king's damage. + +7:5 Then the king Ahasuerus answered and said unto Esther the queen, +Who is he, and where is he, that durst presume in his heart to do so? +7:6 And Esther said, The adversary and enemy is this wicked Haman. +Then Haman was afraid before the king and the queen. + +7:7 And the king arising from the banquet of wine in his wrath went +into the palace garden: and Haman stood up to make request for his +life to Esther the queen; for he saw that there was evil determined +against him by the king. + +7:8 Then the king returned out of the palace garden into the place of +the banquet of wine; and Haman was fallen upon the bed whereon Esther +was. Then said the king, Will he force the queen also before me in the +house? As the word went out of king's mouth, they covered Haman's +face. + +7:9 And Harbonah, one of the chamberlains, said before the king, +Behold also, the gallows fifty cubits high, which Haman had made for +Mordecai, who spoken good for the king, standeth in the house of +Haman. Then the king said, Hang him thereon. + +7:10 So they hanged Haman on the gallows that he had prepared for +Mordecai. Then was the king's wrath pacified. + +8:1 On that day did the king Ahasuerus give the house of Haman the +Jews' enemy unto Esther the queen. And Mordecai came before the king; +for Esther had told what he was unto her. + +8:2 And the king took off his ring, which he had taken from Haman, and +gave it unto Mordecai. And Esther set Mordecai over the house of +Haman. + +8:3 And Esther spake yet again before the king, and fell down at his +feet, and besought him with tears to put away the mischief of Haman +the Agagite, and his device that he had devised against the Jews. + +8:4 Then the king held out the golden sceptre toward Esther. So Esther +arose, and stood before the king, 8:5 And said, If it please the king, +and if I have favour in his sight, and the thing seem right before the +king, and I be pleasing in his eyes, let it be written to reverse the +letters devised by Haman the son of Hammedatha the Agagite, which he +wrote to destroy the Jews which are in all the king's provinces: 8:6 +For how can I endure to see the evil that shall come unto my people? +or how can I endure to see the destruction of my kindred? 8:7 Then +the king Ahasuerus said unto Esther the queen and to Mordecai the Jew, +Behold, I have given Esther the house of Haman, and him they have +hanged upon the gallows, because he laid his hand upon the Jews. + +8:8 Write ye also for the Jews, as it liketh you, in the king's name, +and seal it with the king's ring: for the writing which is written in +the king's name, and sealed with the king's ring, may no man reverse. + +8:9 Then were the king's scribes called at that time in the third +month, that is, the month Sivan, on the three and twentieth day +thereof; and it was written according to all that Mordecai commanded +unto the Jews, and to the lieutenants, and the deputies and rulers of +the provinces which are from India unto Ethiopia, an hundred twenty +and seven provinces, unto every province according to the writing +thereof, and unto every people after their language, and to the Jews +according to their writing, and according to their language. + +8:10 And he wrote in the king Ahasuerus' name, and sealed it with the +king's ring, and sent letters by posts on horseback, and riders on +mules, camels, and young dromedaries: 8:11 Wherein the king granted +the Jews which were in every city to gather themselves together, and +to stand for their life, to destroy, to slay and to cause to perish, +all the power of the people and province that would assault them, both +little ones and women, and to take the spoil of them for a prey, 8:12 +Upon one day in all the provinces of king Ahasuerus, namely, upon the +thirteenth day of the twelfth month, which is the month Adar. + +8:13 The copy of the writing for a commandment to be given in every +province was published unto all people, and that the Jews should be +ready against that day to avenge themselves on their enemies. + +8:14 So the posts that rode upon mules and camels went out, being +hastened and pressed on by the king's commandment. And the decree was +given at Shushan the palace. + +8:15 And Mordecai went out from the presence of the king in royal +apparel of blue and white, and with a great crown of gold, and with a +garment of fine linen and purple: and the city of Shushan rejoiced and +was glad. + +8:16 The Jews had light, and gladness, and joy, and honour. + +8:17 And in every province, and in every city, whithersoever the +king's commandment and his decree came, the Jews had joy and gladness, +a feast and a good day. And many of the people of the land became +Jews; for the fear of the Jews fell upon them. + +9:1 Now in the twelfth month, that is, the month Adar, on the +thirteenth day of the same, when the king's commandment and his decree +drew near to be put in execution, in the day that the enemies of the +Jews hoped to have power over them, (though it was turned to the +contrary, that the Jews had rule over them that hated them;) 9:2 The +Jews gathered themselves together in their cities throughout all the +provinces of the king Ahasuerus, to lay hand on such as sought their +hurt: and no man could withstand them; for the fear of them fell upon +all people. + +9:3 And all the rulers of the provinces, and the lieutenants, and the +deputies, and officers of the king, helped the Jews; because the fear +of Mordecai fell upon them. + +9:4 For Mordecai was great in the king's house, and his fame went out +throughout all the provinces: for this man Mordecai waxed greater and +greater. + +9:5 Thus the Jews smote all their enemies with the stroke of the +sword, and slaughter, and destruction, and did what they would unto +those that hated them. + +9:6 And in Shushan the palace the Jews slew and destroyed five hundred +men. + +9:7 And Parshandatha, and Dalphon, and Aspatha, 9:8 And Poratha, and +Adalia, and Aridatha, 9:9 And Parmashta, and Arisai, and Aridai, and +Vajezatha, 9:10 The ten sons of Haman the son of Hammedatha, the enemy +of the Jews, slew they; but on the spoil laid they not their hand. + +9:11 On that day the number of those that were slain in Shushan the +palace was brought before the king. + +9:12 And the king said unto Esther the queen, The Jews have slain and +destroyed five hundred men in Shushan the palace, and the ten sons of +Haman; what have they done in the rest of the king's provinces? now +what is thy petition? and it shall be granted thee: or what is thy +request further? and it shall be done. + +9:13 Then said Esther, If it please the king, let it be granted to the +Jews which are in Shushan to do to morrow also according unto this +day's decree, and let Haman's ten sons be hanged upon the gallows. + +9:14 And the king commanded it so to be done: and the decree was given +at Shushan; and they hanged Haman's ten sons. + +9:15 For the Jews that were in Shushan gathered themselves together on +the fourteenth day also of the month Adar, and slew three hundred men +at Shushan; but on the prey they laid not their hand. + +9:16 But the other Jews that were in the king's provinces gathered +themselves together, and stood for their lives, and had rest from +their enemies, and slew of their foes seventy and five thousand, but +they laid not their hands on the prey, 9:17 On the thirteenth day of +the month Adar; and on the fourteenth day of the same rested they, and +made it a day of feasting and gladness. + +9:18 But the Jews that were at Shushan assembled together on the +thirteenth day thereof, and on the fourteenth thereof; and on the +fifteenth day of the same they rested, and made it a day of feasting +and gladness. + +9:19 Therefore the Jews of the villages, that dwelt in the unwalled +towns, made the fourteenth day of the month Adar a day of gladness and +feasting, and a good day, and of sending portions one to another. + +9:20 And Mordecai wrote these things, and sent letters unto all the +Jews that were in all the provinces of the king Ahasuerus, both nigh +and far, 9:21 To stablish this among them, that they should keep the +fourteenth day of the month Adar, and the fifteenth day of the same, +yearly, 9:22 As the days wherein the Jews rested from their enemies, +and the month which was turned unto them from sorrow to joy, and from +mourning into a good day: that they should make them days of feasting +and joy, and of sending portions one to another, and gifts to the +poor. + +9:23 And the Jews undertook to do as they had begun, and as Mordecai +had written unto them; 9:24 Because Haman the son of Hammedatha, the +Agagite, the enemy of all the Jews, had devised against the Jews to +destroy them, and had cast Pur, that is, the lot, to consume them, and +to destroy them; 9:25 But when Esther came before the king, he +commanded by letters that his wicked device, which he devised against +the Jews, should return upon his own head, and that he and his sons +should be hanged on the gallows. + +9:26 Wherefore they called these days Purim after the name of Pur. + +Therefore for all the words of this letter, and of that which they had +seen concerning this matter, and which had come unto them, 9:27 The +Jews ordained, and took upon them, and upon their seed, and upon all +such as joined themselves unto them, so as it should not fail, that +they would keep these two days according to their writing, and +according to their appointed time every year; 9:28 And that these days +should be remembered and kept throughout every generation, every +family, every province, and every city; and that these days of Purim +should not fail from among the Jews, nor the memorial of them perish +from their seed. + +9:29 Then Esther the queen, the daughter of Abihail, and Mordecai the +Jew, wrote with all authority, to confirm this second letter of Purim. + +9:30 And he sent the letters unto all the Jews, to the hundred twenty +and seven provinces of the kingdom of Ahasuerus, with words of peace +and truth, 9:31 To confirm these days of Purim in their times +appointed, according as Mordecai the Jew and Esther the queen had +enjoined them, and as they had decreed for themselves and for their +seed, the matters of the fastings and their cry. + +9:32 And the decree of Esther confirmed these matters of Purim; and it +was written in the book. + +10:1 And the king Ahasuerus laid a tribute upon the land, and upon the +isles of the sea. + +10:2 And all the acts of his power and of his might, and the +declaration of the greatness of Mordecai, whereunto the king advanced +him, are they not written in the book of the chronicles of the kings +of Media and Persia? 10:3 For Mordecai the Jew was next unto king +Ahasuerus, and great among the Jews, and accepted of the multitude of +his brethren, seeking the wealth of his people, and speaking peace to +all his seed. + + + + +The Book of Job + + +1:1 There was a man in the land of Uz, whose name was Job; and that +man was perfect and upright, and one that feared God, and eschewed evil. + +1:2 And there were born unto him seven sons and three daughters. + +1:3 His substance also was seven thousand sheep, and three thousand +camels, and five hundred yoke of oxen, and five hundred she asses, and +a very great household; so that this man was the greatest of all the +men of the east. + +1:4 And his sons went and feasted in their houses, every one his day; +and sent and called for their three sisters to eat and to drink with +them. + +1:5 And it was so, when the days of their feasting were gone about, +that Job sent and sanctified them, and rose up early in the morning, +and offered burnt offerings according to the number of them all: for +Job said, It may be that my sons have sinned, and cursed God in their +hearts. Thus did Job continually. + +1:6 Now there was a day when the sons of God came to present +themselves before the LORD, and Satan came also among them. + +1:7 And the LORD said unto Satan, Whence comest thou? Then Satan +answered the LORD, and said, From going to and fro in the earth, and +from walking up and down in it. + +1:8 And the LORD said unto Satan, Hast thou considered my servant Job, +that there is none like him in the earth, a perfect and an upright +man, one that feareth God, and escheweth evil? 1:9 Then Satan +answered the LORD, and said, Doth Job fear God for nought? 1:10 Hast +not thou made an hedge about him, and about his house, and about all +that he hath on every side? thou hast blessed the work of his hands, +and his substance is increased in the land. + +1:11 But put forth thine hand now, and touch all that he hath, and he +will curse thee to thy face. + +1:12 And the LORD said unto Satan, Behold, all that he hath is in thy +power; only upon himself put not forth thine hand. So Satan went forth +from the presence of the LORD. + +1:13 And there was a day when his sons and his daughters were eating +and drinking wine in their eldest brother's house: 1:14 And there came +a messenger unto Job, and said, The oxen were plowing, and the asses +feeding beside them: 1:15 And the Sabeans fell upon them, and took +them away; yea, they have slain the servants with the edge of the +sword; and I only am escaped alone to tell thee. + +1:16 While he was yet speaking, there came also another, and said, The +fire of God is fallen from heaven, and hath burned up the sheep, and +the servants, and consumed them; and I only am escaped alone to tell +thee. + +1:17 While he was yet speaking, there came also another, and said, The +Chaldeans made out three bands, and fell upon the camels, and have +carried them away, yea, and slain the servants with the edge of the +sword; and I only am escaped alone to tell thee. + +1:18 While he was yet speaking, there came also another, and said, Thy +sons and thy daughters were eating and drinking wine in their eldest +brother's house: 1:19 And, behold, there came a great wind from the +wilderness, and smote the four corners of the house, and it fell upon +the young men, and they are dead; and I only am escaped alone to tell +thee. + +1:20 Then Job arose, and rent his mantle, and shaved his head, and +fell down upon the ground, and worshipped, 1:21 And said, Naked came I +out of my mother's womb, and naked shall I return thither: the LORD +gave, and the LORD hath taken away; blessed be the name of the LORD. + +1:22 In all this Job sinned not, nor charged God foolishly. + +2:1 Again there was a day when the sons of God came to present +themselves before the LORD, and Satan came also among them to present +himself before the LORD. + +2:2 And the LORD said unto Satan, From whence comest thou? And Satan +answered the LORD, and said, From going to and fro in the earth, and +from walking up and down in it. + +2:3 And the LORD said unto Satan, Hast thou considered my servant Job, +that there is none like him in the earth, a perfect and an upright +man, one that feareth God, and escheweth evil? and still he holdeth +fast his integrity, although thou movedst me against him, to destroy +him without cause. + +2:4 And Satan answered the LORD, and said, Skin for skin, yea, all +that a man hath will he give for his life. + +2:5 But put forth thine hand now, and touch his bone and his flesh, +and he will curse thee to thy face. + +2:6 And the LORD said unto Satan, Behold, he is in thine hand; but +save his life. + +2:7 So went Satan forth from the presence of the LORD, and smote Job +with sore boils from the sole of his foot unto his crown. + +2:8 And he took him a potsherd to scrape himself withal; and he sat +down among the ashes. + +2:9 Then said his wife unto him, Dost thou still retain thine +integrity? curse God, and die. + +2:10 But he said unto her, Thou speakest as one of the foolish women +speaketh. What? shall we receive good at the hand of God, and shall we +not receive evil? In all this did not Job sin with his lips. + +2:11 Now when Job's three friends heard of all this evil that was come +upon him, they came every one from his own place; Eliphaz the +Temanite, and Bildad the Shuhite, and Zophar the Naamathite: for they +had made an appointment together to come to mourn with him and to +comfort him. + +2:12 And when they lifted up their eyes afar off, and knew him not, +they lifted up their voice, and wept; and they rent every one his +mantle, and sprinkled dust upon their heads toward heaven. + +2:13 So they sat down with him upon the ground seven days and seven +nights, and none spake a word unto him: for they saw that his grief +was very great. + +3:1 After this opened Job his mouth, and cursed his day. + +3:2 And Job spake, and said, 3:3 Let the day perish wherein I was +born, and the night in which it was said, There is a man child +conceived. + +3:4 Let that day be darkness; let not God regard it from above, +neither let the light shine upon it. + +3:5 Let darkness and the shadow of death stain it; let a cloud dwell +upon it; let the blackness of the day terrify it. + +3:6 As for that night, let darkness seize upon it; let it not be +joined unto the days of the year, let it not come into the number of +the months. + +3:7 Lo, let that night be solitary, let no joyful voice come therein. + +3:8 Let them curse it that curse the day, who are ready to raise up +their mourning. + +3:9 Let the stars of the twilight thereof be dark; let it look for +light, but have none; neither let it see the dawning of the day: 3:10 +Because it shut not up the doors of my mother's womb, nor hid sorrow +from mine eyes. + +3:11 Why died I not from the womb? why did I not give up the ghost +when I came out of the belly? 3:12 Why did the knees prevent me? or +why the breasts that I should suck? 3:13 For now should I have lain +still and been quiet, I should have slept: then had I been at rest, +3:14 With kings and counsellors of the earth, which build desolate +places for themselves; 3:15 Or with princes that had gold, who filled +their houses with silver: 3:16 Or as an hidden untimely birth I had +not been; as infants which never saw light. + +3:17 There the wicked cease from troubling; and there the weary be at +rest. + +3:18 There the prisoners rest together; they hear not the voice of the +oppressor. + +3:19 The small and great are there; and the servant is free from his +master. + +3:20 Wherefore is light given to him that is in misery, and life unto +the bitter in soul; 3:21 Which long for death, but it cometh not; and +dig for it more than for hid treasures; 3:22 Which rejoice +exceedingly, and are glad, when they can find the grave? 3:23 Why is +light given to a man whose way is hid, and whom God hath hedged in? +3:24 For my sighing cometh before I eat, and my roarings are poured +out like the waters. + +3:25 For the thing which I greatly feared is come upon me, and that +which I was afraid of is come unto me. + +3:26 I was not in safety, neither had I rest, neither was I quiet; yet +trouble came. + +4:1 Then Eliphaz the Temanite answered and said, 4:2 If we assay to +commune with thee, wilt thou be grieved? but who can withhold himself +from speaking? 4:3 Behold, thou hast instructed many, and thou hast +strengthened the weak hands. + +4:4 Thy words have upholden him that was falling, and thou hast +strengthened the feeble knees. + +4:5 But now it is come upon thee, and thou faintest; it toucheth thee, +and thou art troubled. + +4:6 Is not this thy fear, thy confidence, thy hope, and the +uprightness of thy ways? 4:7 Remember, I pray thee, who ever +perished, being innocent? or where were the righteous cut off? 4:8 +Even as I have seen, they that plow iniquity, and sow wickedness, reap +the same. + +4:9 By the blast of God they perish, and by the breath of his nostrils +are they consumed. + +4:10 The roaring of the lion, and the voice of the fierce lion, and +the teeth of the young lions, are broken. + +4:11 The old lion perisheth for lack of prey, and the stout lion's +whelps are scattered abroad. + +4:12 Now a thing was secretly brought to me, and mine ear received a +little thereof. + +4:13 In thoughts from the visions of the night, when deep sleep +falleth on men, 4:14 Fear came upon me, and trembling, which made all +my bones to shake. + +4:15 Then a spirit passed before my face; the hair of my flesh stood +up: 4:16 It stood still, but I could not discern the form thereof: an +image was before mine eyes, there was silence, and I heard a voice, +saying, 4:17 Shall mortal man be more just than God? shall a man be +more pure than his maker? 4:18 Behold, he put no trust in his +servants; and his angels he charged with folly: 4:19 How much less in +them that dwell in houses of clay, whose foundation is in the dust, +which are crushed before the moth? 4:20 They are destroyed from +morning to evening: they perish for ever without any regarding it. + +4:21 Doth not their excellency which is in them go away? they die, +even without wisdom. + +5:1 Call now, if there be any that will answer thee; and to which of +the saints wilt thou turn? 5:2 For wrath killeth the foolish man, and +envy slayeth the silly one. + +5:3 I have seen the foolish taking root: but suddenly I cursed his +habitation. + +5:4 His children are far from safety, and they are crushed in the +gate, neither is there any to deliver them. + +5:5 Whose harvest the hungry eateth up, and taketh it even out of the +thorns, and the robber swalloweth up their substance. + +5:6 Although affliction cometh not forth of the dust, neither doth +trouble spring out of the ground; 5:7 Yet man is born unto trouble, as +the sparks fly upward. + +5:8 I would seek unto God, and unto God would I commit my cause: 5:9 +Which doeth great things and unsearchable; marvellous things without +number: 5:10 Who giveth rain upon the earth, and sendeth waters upon +the fields: 5:11 To set up on high those that be low; that those which +mourn may be exalted to safety. + +5:12 He disappointeth the devices of the crafty, so that their hands +cannot perform their enterprise. + +5:13 He taketh the wise in their own craftiness: and the counsel of +the froward is carried headlong. + +5:14 They meet with darkness in the day time, and grope in the noonday +as in the night. + +5:15 But he saveth the poor from the sword, from their mouth, and from +the hand of the mighty. + +5:16 So the poor hath hope, and iniquity stoppeth her mouth. + +5:17 Behold, happy is the man whom God correcteth: therefore despise +not thou the chastening of the Almighty: 5:18 For he maketh sore, and +bindeth up: he woundeth, and his hands make whole. + +5:19 He shall deliver thee in six troubles: yea, in seven there shall +no evil touch thee. + +5:20 In famine he shall redeem thee from death: and in war from the +power of the sword. + +5:21 Thou shalt be hid from the scourge of the tongue: neither shalt +thou be afraid of destruction when it cometh. + +5:22 At destruction and famine thou shalt laugh: neither shalt thou be +afraid of the beasts of the earth. + +5:23 For thou shalt be in league with the stones of the field: and the +beasts of the field shall be at peace with thee. + +5:24 And thou shalt know that thy tabernacle shall be in peace; and +thou shalt visit thy habitation, and shalt not sin. + +5:25 Thou shalt know also that thy seed shall be great, and thine +offspring as the grass of the earth. + +5:26 Thou shalt come to thy grave in a full age, like as a shock of +corn cometh in in his season. + +5:27 Lo this, we have searched it, so it is; hear it, and know thou it +for thy good. + +6:1 But Job answered and said, 6:2 Oh that my grief were throughly +weighed, and my calamity laid in the balances together! 6:3 For now +it would be heavier than the sand of the sea: therefore my words are +swallowed up. + +6:4 For the arrows of the Almighty are within me, the poison whereof +drinketh up my spirit: the terrors of God do set themselves in array +against me. + +6:5 Doth the wild ass bray when he hath grass? or loweth the ox over +his fodder? 6:6 Can that which is unsavoury be eaten without salt? or +is there any taste in the white of an egg? 6:7 The things that my +soul refused to touch are as my sorrowful meat. + +6:8 Oh that I might have my request; and that God would grant me the +thing that I long for! 6:9 Even that it would please God to destroy +me; that he would let loose his hand, and cut me off! 6:10 Then +should I yet have comfort; yea, I would harden myself in sorrow: let +him not spare; for I have not concealed the words of the Holy One. + +6:11 What is my strength, that I should hope? and what is mine end, +that I should prolong my life? 6:12 Is my strength the strength of +stones? or is my flesh of brass? 6:13 Is not my help in me? and is +wisdom driven quite from me? 6:14 To him that is afflicted pity +should be shewed from his friend; but he forsaketh the fear of the +Almighty. + +6:15 My brethren have dealt deceitfully as a brook, and as the stream +of brooks they pass away; 6:16 Which are blackish by reason of the +ice, and wherein the snow is hid: 6:17 What time they wax warm, they +vanish: when it is hot, they are consumed out of their place. + +6:18 The paths of their way are turned aside; they go to nothing, and +perish. + +6:19 The troops of Tema looked, the companies of Sheba waited for +them. + +6:20 They were confounded because they had hoped; they came thither, +and were ashamed. + +6:21 For now ye are nothing; ye see my casting down, and are afraid. + +6:22 Did I say, Bring unto me? or, Give a reward for me of your +substance? 6:23 Or, Deliver me from the enemy's hand? or, Redeem me +from the hand of the mighty? 6:24 Teach me, and I will hold my +tongue: and cause me to understand wherein I have erred. + +6:25 How forcible are right words! but what doth your arguing reprove? +6:26 Do ye imagine to reprove words, and the speeches of one that is +desperate, which are as wind? 6:27 Yea, ye overwhelm the fatherless, +and ye dig a pit for your friend. + +6:28 Now therefore be content, look upon me; for it is evident unto +you if I lie. + +6:29 Return, I pray you, let it not be iniquity; yea, return again, my +righteousness is in it. + +6:30 Is there iniquity in my tongue? cannot my taste discern perverse +things? 7:1 Is there not an appointed time to man upon earth? are not +his days also like the days of an hireling? 7:2 As a servant +earnestly desireth the shadow, and as an hireling looketh for the +reward of his work: 7:3 So am I made to possess months of vanity, and +wearisome nights are appointed to me. + +7:4 When I lie down, I say, When shall I arise, and the night be gone? +and I am full of tossings to and fro unto the dawning of the day. + +7:5 My flesh is clothed with worms and clods of dust; my skin is +broken, and become loathsome. + +7:6 My days are swifter than a weaver's shuttle, and are spent without +hope. + +7:7 O remember that my life is wind: mine eye shall no more see good. + +7:8 The eye of him that hath seen me shall see me no more: thine eyes +are upon me, and I am not. + +7:9 As the cloud is consumed and vanisheth away: so he that goeth down +to the grave shall come up no more. + +7:10 He shall return no more to his house, neither shall his place +know him any more. + +7:11 Therefore I will not refrain my mouth; I will speak in the +anguish of my spirit; I will complain in the bitterness of my soul. + +7:12 Am I a sea, or a whale, that thou settest a watch over me? 7:13 +When I say, My bed shall comfort me, my couch shall ease my +complaints; 7:14 Then thou scarest me with dreams, and terrifiest me +through visions: 7:15 So that my soul chooseth strangling, and death +rather than my life. + +7:16 I loathe it; I would not live alway: let me alone; for my days +are vanity. + +7:17 What is man, that thou shouldest magnify him? and that thou +shouldest set thine heart upon him? 7:18 And that thou shouldest +visit him every morning, and try him every moment? 7:19 How long wilt +thou not depart from me, nor let me alone till I swallow down my +spittle? 7:20 I have sinned; what shall I do unto thee, O thou +preserver of men? why hast thou set me as a mark against thee, so +that I am a burden to myself? 7:21 And why dost thou not pardon my +transgression, and take away my iniquity? for now shall I sleep in the +dust; and thou shalt seek me in the morning, but I shall not be. + +8:1 Then answered Bildad the Shuhite, and said, 8:2 How long wilt thou +speak these things? and how long shall the words of thy mouth be like +a strong wind? 8:3 Doth God pervert judgment? or doth the Almighty +pervert justice? 8:4 If thy children have sinned against him, and he +have cast them away for their transgression; 8:5 If thou wouldest seek +unto God betimes, and make thy supplication to the Almighty; 8:6 If +thou wert pure and upright; surely now he would awake for thee, and +make the habitation of thy righteousness prosperous. + +8:7 Though thy beginning was small, yet thy latter end should greatly +increase. + +8:8 For enquire, I pray thee, of the former age, and prepare thyself +to the search of their fathers: 8:9 (For we are but of yesterday, and +know nothing, because our days upon earth are a shadow:) 8:10 Shall +not they teach thee, and tell thee, and utter words out of their +heart? 8:11 Can the rush grow up without mire? can the flag grow +without water? 8:12 Whilst it is yet in his greenness, and not cut +down, it withereth before any other herb. + +8:13 So are the paths of all that forget God; and the hypocrite's hope +shall perish: 8:14 Whose hope shall be cut off, and whose trust shall +be a spider's web. + +8:15 He shall lean upon his house, but it shall not stand: he shall +hold it fast, but it shall not endure. + +8:16 He is green before the sun, and his branch shooteth forth in his +garden. + +8:17 His roots are wrapped about the heap, and seeth the place of +stones. + +8:18 If he destroy him from his place, then it shall deny him, saying, +I have not seen thee. + +8:19 Behold, this is the joy of his way, and out of the earth shall +others grow. + +8:20 Behold, God will not cast away a perfect man, neither will he +help the evil doers: 8:21 Till he fill thy mouth with laughing, and +thy lips with rejoicing. + +8:22 They that hate thee shall be clothed with shame; and the dwelling +place of the wicked shall come to nought. + +9:1 Then Job answered and said, 9:2 I know it is so of a truth: but +how should man be just with God? 9:3 If he will contend with him, he +cannot answer him one of a thousand. + +9:4 He is wise in heart, and mighty in strength: who hath hardened +himself against him, and hath prospered? 9:5 Which removeth the +mountains, and they know not: which overturneth them in his anger. + +9:6 Which shaketh the earth out of her place, and the pillars thereof +tremble. + +9:7 Which commandeth the sun, and it riseth not; and sealeth up the +stars. + +9:8 Which alone spreadeth out the heavens, and treadeth upon the waves +of the sea. + +9:9 Which maketh Arcturus, Orion, and Pleiades, and the chambers of +the south. + +9:10 Which doeth great things past finding out; yea, and wonders +without number. + +9:11 Lo, he goeth by me, and I see him not: he passeth on also, but I +perceive him not. + +9:12 Behold, he taketh away, who can hinder him? who will say unto +him, What doest thou? 9:13 If God will not withdraw his anger, the +proud helpers do stoop under him. + +9:14 How much less shall I answer him, and choose out my words to +reason with him? 9:15 Whom, though I were righteous, yet would I not +answer, but I would make supplication to my judge. + +9:16 If I had called, and he had answered me; yet would I not believe +that he had hearkened unto my voice. + +9:17 For he breaketh me with a tempest, and multiplieth my wounds +without cause. + +9:18 He will not suffer me to take my breath, but filleth me with +bitterness. + +9:19 If I speak of strength, lo, he is strong: and if of judgment, who +shall set me a time to plead? 9:20 If I justify myself, mine own +mouth shall condemn me: if I say, I am perfect, it shall also prove me +perverse. + +9:21 Though I were perfect, yet would I not know my soul: I would +despise my life. + +9:22 This is one thing, therefore I said it, He destroyeth the perfect +and the wicked. + +9:23 If the scourge slay suddenly, he will laugh at the trial of the +innocent. + +9:24 The earth is given into the hand of the wicked: he covereth the +faces of the judges thereof; if not, where, and who is he? 9:25 Now +my days are swifter than a post: they flee away, they see no good. + +9:26 They are passed away as the swift ships: as the eagle that +hasteth to the prey. + +9:27 If I say, I will forget my complaint, I will leave off my +heaviness, and comfort myself: 9:28 I am afraid of all my sorrows, I +know that thou wilt not hold me innocent. + +9:29 If I be wicked, why then labour I in vain? 9:30 If I wash myself +with snow water, and make my hands never so clean; 9:31 Yet shalt thou +plunge me in the ditch, and mine own clothes shall abhor me. + +9:32 For he is not a man, as I am, that I should answer him, and we +should come together in judgment. + +9:33 Neither is there any daysman betwixt us, that might lay his hand +upon us both. + +9:34 Let him take his rod away from me, and let not his fear terrify +me: 9:35 Then would I speak, and not fear him; but it is not so with +me. + +10:1 My soul is weary of my life; I will leave my complaint upon +myself; I will speak in the bitterness of my soul. + +10:2 I will say unto God, Do not condemn me; shew me wherefore thou +contendest with me. + +10:3 Is it good unto thee that thou shouldest oppress, that thou +shouldest despise the work of thine hands, and shine upon the counsel +of the wicked? 10:4 Hast thou eyes of flesh? or seest thou as man +seeth? 10:5 Are thy days as the days of man? are thy years as man's +days, 10:6 That thou enquirest after mine iniquity, and searchest +after my sin? 10:7 Thou knowest that I am not wicked; and there is +none that can deliver out of thine hand. + +10:8 Thine hands have made me and fashioned me together round about; +yet thou dost destroy me. + +10:9 Remember, I beseech thee, that thou hast made me as the clay; and +wilt thou bring me into dust again? 10:10 Hast thou not poured me out +as milk, and curdled me like cheese? 10:11 Thou hast clothed me with +skin and flesh, and hast fenced me with bones and sinews. + +10:12 Thou hast granted me life and favour, and thy visitation hath +preserved my spirit. + +10:13 And these things hast thou hid in thine heart: I know that this +is with thee. + +10:14 If I sin, then thou markest me, and thou wilt not acquit me from +mine iniquity. + +10:15 If I be wicked, woe unto me; and if I be righteous, yet will I +not lift up my head. I am full of confusion; therefore see thou mine +affliction; 10:16 For it increaseth. Thou huntest me as a fierce lion: +and again thou shewest thyself marvellous upon me. + +10:17 Thou renewest thy witnesses against me, and increasest thine +indignation upon me; changes and war are against me. + +10:18 Wherefore then hast thou brought me forth out of the womb? Oh +that I had given up the ghost, and no eye had seen me! 10:19 I should +have been as though I had not been; I should have been carried from +the womb to the grave. + +10:20 Are not my days few? cease then, and let me alone, that I may +take comfort a little, 10:21 Before I go whence I shall not return, +even to the land of darkness and the shadow of death; 10:22 A land of +darkness, as darkness itself; and of the shadow of death, without any +order, and where the light is as darkness. + +11:1 Then answered Zophar the Naamathite, and said, 11:2 Should not +the multitude of words be answered? and should a man full of talk be +justified? 11:3 Should thy lies make men hold their peace? and when +thou mockest, shall no man make thee ashamed? 11:4 For thou hast +said, My doctrine is pure, and I am clean in thine eyes. + +11:5 But oh that God would speak, and open his lips against thee; 11:6 +And that he would shew thee the secrets of wisdom, that they are +double to that which is! Know therefore that God exacteth of thee less +than thine iniquity deserveth. + +11:7 Canst thou by searching find out God? canst thou find out the +Almighty unto perfection? 11:8 It is as high as heaven; what canst +thou do? deeper than hell; what canst thou know? 11:9 The measure +thereof is longer than the earth, and broader than the sea. + +11:10 If he cut off, and shut up, or gather together, then who can +hinder him? 11:11 For he knoweth vain men: he seeth wickedness also; +will he not then consider it? 11:12 For vain men would be wise, +though man be born like a wild ass's colt. + +11:13 If thou prepare thine heart, and stretch out thine hands toward +him; 11:14 If iniquity be in thine hand, put it far away, and let not +wickedness dwell in thy tabernacles. + +11:15 For then shalt thou lift up thy face without spot; yea, thou +shalt be stedfast, and shalt not fear: 11:16 Because thou shalt forget +thy misery, and remember it as waters that pass away: 11:17 And thine +age shall be clearer than the noonday: thou shalt shine forth, thou +shalt be as the morning. + +11:18 And thou shalt be secure, because there is hope; yea, thou shalt +dig about thee, and thou shalt take thy rest in safety. + +11:19 Also thou shalt lie down, and none shall make thee afraid; yea, +many shall make suit unto thee. + +11:20 But the eyes of the wicked shall fail, and they shall not +escape, and their hope shall be as the giving up of the ghost. + +12:1 And Job answered and said, 12:2 No doubt but ye are the people, +and wisdom shall die with you. + +12:3 But I have understanding as well as you; I am not inferior to +you: yea, who knoweth not such things as these? 12:4 I am as one +mocked of his neighbour, who calleth upon God, and he answereth him: +the just upright man is laughed to scorn. + +12:5 He that is ready to slip with his feet is as a lamp despised in +the thought of him that is at ease. + +12:6 The tabernacles of robbers prosper, and they that provoke God are +secure; into whose hand God bringeth abundantly. + +12:7 But ask now the beasts, and they shall teach thee; and the fowls +of the air, and they shall tell thee: 12:8 Or speak to the earth, and +it shall teach thee: and the fishes of the sea shall declare unto +thee. + +12:9 Who knoweth not in all these that the hand of the LORD hath +wrought this? 12:10 In whose hand is the soul of every living thing, +and the breath of all mankind. + +12:11 Doth not the ear try words? and the mouth taste his meat? 12:12 +With the ancient is wisdom; and in length of days understanding. + +12:13 With him is wisdom and strength, he hath counsel and +understanding. + +12:14 Behold, he breaketh down, and it cannot be built again: he +shutteth up a man, and there can be no opening. + +12:15 Behold, he withholdeth the waters, and they dry up: also he +sendeth them out, and they overturn the earth. + +12:16 With him is strength and wisdom: the deceived and the deceiver +are his. + +12:17 He leadeth counsellors away spoiled, and maketh the judges +fools. + +12:18 He looseth the bond of kings, and girdeth their loins with a +girdle. + +12:19 He leadeth princes away spoiled, and overthroweth the mighty. + +12:20 He removeth away the speech of the trusty, and taketh away the +understanding of the aged. + +12:21 He poureth contempt upon princes, and weakeneth the strength of +the mighty. + +12:22 He discovereth deep things out of darkness, and bringeth out to +light the shadow of death. + +12:23 He increaseth the nations, and destroyeth them: he enlargeth the +nations, and straiteneth them again. + +12:24 He taketh away the heart of the chief of the people of the +earth, and causeth them to wander in a wilderness where there is no +way. + +12:25 They grope in the dark without light, and he maketh them to +stagger like a drunken man. + +13:1 Lo, mine eye hath seen all this, mine ear hath heard and +understood it. + +13:2 What ye know, the same do I know also: I am not inferior unto +you. + +13:3 Surely I would speak to the Almighty, and I desire to reason with +God. + +13:4 But ye are forgers of lies, ye are all physicians of no value. + +13:5 O that ye would altogether hold your peace! and it should be your +wisdom. + +13:6 Hear now my reasoning, and hearken to the pleadings of my lips. + +13:7 Will ye speak wickedly for God? and talk deceitfully for him? +13:8 Will ye accept his person? will ye contend for God? 13:9 Is it +good that he should search you out? or as one man mocketh another, do +ye so mock him? 13:10 He will surely reprove you, if ye do secretly +accept persons. + +13:11 Shall not his excellency make you afraid? and his dread fall +upon you? 13:12 Your remembrances are like unto ashes, your bodies to +bodies of clay. + +13:13 Hold your peace, let me alone, that I may speak, and let come on +me what will. + +13:14 Wherefore do I take my flesh in my teeth, and put my life in +mine hand? 13:15 Though he slay me, yet will I trust in him: but I +will maintain mine own ways before him. + +13:16 He also shall be my salvation: for an hypocrite shall not come +before him. + +13:17 Hear diligently my speech, and my declaration with your ears. + +13:18 Behold now, I have ordered my cause; I know that I shall be +justified. + +13:19 Who is he that will plead with me? for now, if I hold my tongue, +I shall give up the ghost. + +13:20 Only do not two things unto me: then will I not hide myself from +thee. + +13:21 Withdraw thine hand far from me: and let not thy dread make me +afraid. + +13:22 Then call thou, and I will answer: or let me speak, and answer +thou me. + +13:23 How many are mine iniquities and sins? make me to know my +transgression and my sin. + +13:24 Wherefore hidest thou thy face, and holdest me for thine enemy? +13:25 Wilt thou break a leaf driven to and fro? and wilt thou pursue +the dry stubble? 13:26 For thou writest bitter things against me, and +makest me to possess the iniquities of my youth. + +13:27 Thou puttest my feet also in the stocks, and lookest narrowly +unto all my paths; thou settest a print upon the heels of my feet. + +13:28 And he, as a rotten thing, consumeth, as a garment that is moth +eaten. + +14:1 Man that is born of a woman is of few days and full of trouble. + +14:2 He cometh forth like a flower, and is cut down: he fleeth also as +a shadow, and continueth not. + +14:3 And doth thou open thine eyes upon such an one, and bringest me +into judgment with thee? 14:4 Who can bring a clean thing out of an +unclean? not one. + +14:5 Seeing his days are determined, the number of his months are with +thee, thou hast appointed his bounds that he cannot pass; 14:6 Turn +from him, that he may rest, till he shall accomplish, as an hireling, +his day. + +14:7 For there is hope of a tree, if it be cut down, that it will +sprout again, and that the tender branch thereof will not cease. + +14:8 Though the root thereof wax old in the earth, and the stock +thereof die in the ground; 14:9 Yet through the scent of water it will +bud, and bring forth boughs like a plant. + +14:10 But man dieth, and wasteth away: yea, man giveth up the ghost, +and where is he? 14:11 As the waters fail from the sea, and the flood +decayeth and drieth up: 14:12 So man lieth down, and riseth not: till +the heavens be no more, they shall not awake, nor be raised out of +their sleep. + +14:13 O that thou wouldest hide me in the grave, that thou wouldest +keep me secret, until thy wrath be past, that thou wouldest appoint me +a set time, and remember me! 14:14 If a man die, shall he live again? +all the days of my appointed time will I wait, till my change come. + +14:15 Thou shalt call, and I will answer thee: thou wilt have a desire +to the work of thine hands. + +14:16 For now thou numberest my steps: dost thou not watch over my +sin? 14:17 My transgression is sealed up in a bag, and thou sewest up +mine iniquity. + +14:18 And surely the mountains falling cometh to nought, and the rock +is removed out of his place. + +14:19 The waters wear the stones: thou washest away the things which +grow out of the dust of the earth; and thou destroyest the hope of +man. + +14:20 Thou prevailest for ever against him, and he passeth: thou +changest his countenance, and sendest him away. + +14:21 His sons come to honour, and he knoweth it not; and they are +brought low, but he perceiveth it not of them. + +14:22 But his flesh upon him shall have pain, and his soul within him +shall mourn. + +15:1 Then answered Eliphaz the Temanite, and said, 15:2 Should a wise +man utter vain knowledge, and fill his belly with the east wind? 15:3 +Should he reason with unprofitable talk? or with speeches wherewith he +can do no good? 15:4 Yea, thou castest off fear, and restrainest +prayer before God. + +15:5 For thy mouth uttereth thine iniquity, and thou choosest the +tongue of the crafty. + +15:6 Thine own mouth condemneth thee, and not I: yea, thine own lips +testify against thee. + +15:7 Art thou the first man that was born? or wast thou made before +the hills? 15:8 Hast thou heard the secret of God? and dost thou +restrain wisdom to thyself? 15:9 What knowest thou, that we know not? +what understandest thou, which is not in us? 15:10 With us are both +the grayheaded and very aged men, much elder than thy father. + +15:11 Are the consolations of God small with thee? is there any secret +thing with thee? 15:12 Why doth thine heart carry thee away? and what +do thy eyes wink at, 15:13 That thou turnest thy spirit against God, +and lettest such words go out of thy mouth? 15:14 What is man, that +he should be clean? and he which is born of a woman, that he should be +righteous? 15:15 Behold, he putteth no trust in his saints; yea, the +heavens are not clean in his sight. + +15:16 How much more abominable and filthy is man, which drinketh +iniquity like water? 15:17 I will shew thee, hear me; and that which +I have seen I will declare; 15:18 Which wise men have told from their +fathers, and have not hid it: 15:19 Unto whom alone the earth was +given, and no stranger passed among them. + +15:20 The wicked man travaileth with pain all his days, and the number +of years is hidden to the oppressor. + +15:21 A dreadful sound is in his ears: in prosperity the destroyer +shall come upon him. + +15:22 He believeth not that he shall return out of darkness, and he is +waited for of the sword. + +15:23 He wandereth abroad for bread, saying, Where is it? he knoweth +that the day of darkness is ready at his hand. + +15:24 Trouble and anguish shall make him afraid; they shall prevail +against him, as a king ready to the battle. + +15:25 For he stretcheth out his hand against God, and strengtheneth +himself against the Almighty. + +15:26 He runneth upon him, even on his neck, upon the thick bosses of +his bucklers: 15:27 Because he covereth his face with his fatness, and +maketh collops of fat on his flanks. + +15:28 And he dwelleth in desolate cities, and in houses which no man +inhabiteth, which are ready to become heaps. + +15:29 He shall not be rich, neither shall his substance continue, +neither shall he prolong the perfection thereof upon the earth. + +15:30 He shall not depart out of darkness; the flame shall dry up his +branches, and by the breath of his mouth shall he go away. + +15:31 Let not him that is deceived trust in vanity: for vanity shall +be his recompence. + +15:32 It shall be accomplished before his time, and his branch shall +not be green. + +15:33 He shall shake off his unripe grape as the vine, and shall cast +off his flower as the olive. + +15:34 For the congregation of hypocrites shall be desolate, and fire +shall consume the tabernacles of bribery. + +15:35 They conceive mischief, and bring forth vanity, and their belly +prepareth deceit. + +16:1 Then Job answered and said, 16:2 I have heard many such things: +miserable comforters are ye all. + +16:3 Shall vain words have an end? or what emboldeneth thee that thou +answerest? 16:4 I also could speak as ye do: if your soul were in my +soul's stead, I could heap up words against you, and shake mine head +at you. + +16:5 But I would strengthen you with my mouth, and the moving of my +lips should asswage your grief. + +16:6 Though I speak, my grief is not asswaged: and though I forbear, +what am I eased? 16:7 But now he hath made me weary: thou hast made +desolate all my company. + +16:8 And thou hast filled me with wrinkles, which is a witness against +me: and my leanness rising up in me beareth witness to my face. + +16:9 He teareth me in his wrath, who hateth me: he gnasheth upon me +with his teeth; mine enemy sharpeneth his eyes upon me. + +16:10 They have gaped upon me with their mouth; they have smitten me +upon the cheek reproachfully; they have gathered themselves together +against me. + +16:11 God hath delivered me to the ungodly, and turned me over into +the hands of the wicked. + +16:12 I was at ease, but he hath broken me asunder: he hath also taken +me by my neck, and shaken me to pieces, and set me up for his mark. + +16:13 His archers compass me round about, he cleaveth my reins +asunder, and doth not spare; he poureth out my gall upon the ground. + +16:14 He breaketh me with breach upon breach, he runneth upon me like +a giant. + +16:15 I have sewed sackcloth upon my skin, and defiled my horn in the +dust. + +16:16 My face is foul with weeping, and on my eyelids is the shadow of +death; 16:17 Not for any injustice in mine hands: also my prayer is +pure. + +16:18 O earth, cover not thou my blood, and let my cry have no place. + +16:19 Also now, behold, my witness is in heaven, and my record is on +high. + +16:20 My friends scorn me: but mine eye poureth out tears unto God. + +16:21 O that one might plead for a man with God, as a man pleadeth for +his neighbour! 16:22 When a few years are come, then I shall go the +way whence I shall not return. + +17:1 My breath is corrupt, my days are extinct, the graves are ready +for me. + +17:2 Are there not mockers with me? and doth not mine eye continue in +their provocation? 17:3 Lay down now, put me in a surety with thee; +who is he that will strike hands with me? 17:4 For thou hast hid +their heart from understanding: therefore shalt thou not exalt them. + +17:5 He that speaketh flattery to his friends, even the eyes of his +children shall fail. + +17:6 He hath made me also a byword of the people; and aforetime I was +as a tabret. + +17:7 Mine eye also is dim by reason of sorrow, and all my members are +as a shadow. + +17:8 Upright men shall be astonied at this, and the innocent shall +stir up himself against the hypocrite. + +17:9 The righteous also shall hold on his way, and he that hath clean +hands shall be stronger and stronger. + +17:10 But as for you all, do ye return, and come now: for I cannot +find one wise man among you. + +17:11 My days are past, my purposes are broken off, even the thoughts +of my heart. + +17:12 They change the night into day: the light is short because of +darkness. + +17:13 If I wait, the grave is mine house: I have made my bed in the +darkness. + +17:14 I have said to corruption, Thou art my father: to the worm, Thou +art my mother, and my sister. + +17:15 And where is now my hope? as for my hope, who shall see it? +17:16 They shall go down to the bars of the pit, when our rest +together is in the dust. + +18:1 Then answered Bildad the Shuhite, and said, 18:2 How long will it +be ere ye make an end of words? mark, and afterwards we will speak. + +18:3 Wherefore are we counted as beasts, and reputed vile in your +sight? 18:4 He teareth himself in his anger: shall the earth be +forsaken for thee? and shall the rock be removed out of his place? +18:5 Yea, the light of the wicked shall be put out, and the spark of +his fire shall not shine. + +18:6 The light shall be dark in his tabernacle, and his candle shall +be put out with him. + +18:7 The steps of his strength shall be straitened, and his own +counsel shall cast him down. + +18:8 For he is cast into a net by his own feet, and he walketh upon a +snare. + +18:9 The gin shall take him by the heel, and the robber shall prevail +against him. + +18:10 The snare is laid for him in the ground, and a trap for him in +the way. + +18:11 Terrors shall make him afraid on every side, and shall drive him +to his feet. + +18:12 His strength shall be hungerbitten, and destruction shall be +ready at his side. + +18:13 It shall devour the strength of his skin: even the firstborn of +death shall devour his strength. + +18:14 His confidence shall be rooted out of his tabernacle, and it +shall bring him to the king of terrors. + +18:15 It shall dwell in his tabernacle, because it is none of his: +brimstone shall be scattered upon his habitation. + +18:16 His roots shall be dried up beneath, and above shall his branch +be cut off. + +18:17 His remembrance shall perish from the earth, and he shall have +no name in the street. + +18:18 He shall be driven from light into darkness, and chased out of +the world. + +18:19 He shall neither have son nor nephew among his people, nor any +remaining in his dwellings. + +18:20 They that come after him shall be astonied at his day, as they +that went before were affrighted. + +18:21 Surely such are the dwellings of the wicked, and this is the +place of him that knoweth not God. + +19:1 Then Job answered and said, 19:2 How long will ye vex my soul, +and break me in pieces with words? 19:3 These ten times have ye +reproached me: ye are not ashamed that ye make yourselves strange to +me. + +19:4 And be it indeed that I have erred, mine error remaineth with +myself. + +19:5 If indeed ye will magnify yourselves against me, and plead +against me my reproach: 19:6 Know now that God hath overthrown me, and +hath compassed me with his net. + +19:7 Behold, I cry out of wrong, but I am not heard: I cry aloud, but +there is no judgment. + +19:8 He hath fenced up my way that I cannot pass, and he hath set +darkness in my paths. + +19:9 He hath stripped me of my glory, and taken the crown from my +head. + +19:10 He hath destroyed me on every side, and I am gone: and mine hope +hath he removed like a tree. + +19:11 He hath also kindled his wrath against me, and he counteth me +unto him as one of his enemies. + +19:12 His troops come together, and raise up their way against me, and +encamp round about my tabernacle. + +19:13 He hath put my brethren far from me, and mine acquaintance are +verily estranged from me. + +19:14 My kinsfolk have failed, and my familiar friends have forgotten +me. + +19:15 They that dwell in mine house, and my maids, count me for a +stranger: I am an alien in their sight. + +19:16 I called my servant, and he gave me no answer; I intreated him +with my mouth. + +19:17 My breath is strange to my wife, though I intreated for the +children's sake of mine own body. + +19:18 Yea, young children despised me; I arose, and they spake against +me. + +19:19 All my inward friends abhorred me: and they whom I loved are +turned against me. + +19:20 My bone cleaveth to my skin and to my flesh, and I am escaped +with the skin of my teeth. + +19:21 Have pity upon me, have pity upon me, O ye my friends; for the +hand of God hath touched me. + +19:22 Why do ye persecute me as God, and are not satisfied with my +flesh? 19:23 Oh that my words were now written! oh that they were +printed in a book! 19:24 That they were graven with an iron pen and +lead in the rock for ever! 19:25 For I know that my redeemer liveth, +and that he shall stand at the latter day upon the earth: 19:26 And +though after my skin worms destroy this body, yet in my flesh shall I +see God: 19:27 Whom I shall see for myself, and mine eyes shall +behold, and not another; though my reins be consumed within me. + +19:28 But ye should say, Why persecute we him, seeing the root of the +matter is found in me? 19:29 Be ye afraid of the sword: for wrath +bringeth the punishments of the sword, that ye may know there is a +judgment. + +20:1 Then answered Zophar the Naamathite, and said, 20:2 Therefore do +my thoughts cause me to answer, and for this I make haste. + +20:3 I have heard the check of my reproach, and the spirit of my +understanding causeth me to answer. + +20:4 Knowest thou not this of old, since man was placed upon earth, +20:5 That the triumphing of the wicked is short, and the joy of the +hypocrite but for a moment? 20:6 Though his excellency mount up to +the heavens, and his head reach unto the clouds; 20:7 Yet he shall +perish for ever like his own dung: they which have seen him shall say, +Where is he? 20:8 He shall fly away as a dream, and shall not be +found: yea, he shall be chased away as a vision of the night. + +20:9 The eye also which saw him shall see him no more; neither shall +his place any more behold him. + +20:10 His children shall seek to please the poor, and his hands shall +restore their goods. + +20:11 His bones are full of the sin of his youth, which shall lie down +with him in the dust. + +20:12 Though wickedness be sweet in his mouth, though he hide it under +his tongue; 20:13 Though he spare it, and forsake it not; but keep it +still within his mouth: 20:14 Yet his meat in his bowels is turned, it +is the gall of asps within him. + +20:15 He hath swallowed down riches, and he shall vomit them up again: +God shall cast them out of his belly. + +20:16 He shall suck the poison of asps: the viper's tongue shall slay +him. + +20:17 He shall not see the rivers, the floods, the brooks of honey and +butter. + +20:18 That which he laboured for shall he restore, and shall not +swallow it down: according to his substance shall the restitution be, +and he shall not rejoice therein. + +20:19 Because he hath oppressed and hath forsaken the poor; because he +hath violently taken away an house which he builded not; 20:20 Surely +he shall not feel quietness in his belly, he shall not save of that +which he desired. + +20:21 There shall none of his meat be left; therefore shall no man +look for his goods. + +20:22 In the fulness of his sufficiency he shall be in straits: every +hand of the wicked shall come upon him. + +20:23 When he is about to fill his belly, God shall cast the fury of +his wrath upon him, and shall rain it upon him while he is eating. + +20:24 He shall flee from the iron weapon, and the bow of steel shall +strike him through. + +20:25 It is drawn, and cometh out of the body; yea, the glittering +sword cometh out of his gall: terrors are upon him. + +20:26 All darkness shall be hid in his secret places: a fire not blown +shall consume him; it shall go ill with him that is left in his +tabernacle. + +20:27 The heaven shall reveal his iniquity; and the earth shall rise +up against him. + +20:28 The increase of his house shall depart, and his goods shall flow +away in the day of his wrath. + +20:29 This is the portion of a wicked man from God, and the heritage +appointed unto him by God. + +21:1 But Job answered and said, 21:2 Hear diligently my speech, and +let this be your consolations. + +21:3 Suffer me that I may speak; and after that I have spoken, mock +on. + +21:4 As for me, is my complaint to man? and if it were so, why should +not my spirit be troubled? 21:5 Mark me, and be astonished, and lay +your hand upon your mouth. + +21:6 Even when I remember I am afraid, and trembling taketh hold on my +flesh. + +21:7 Wherefore do the wicked live, become old, yea, are mighty in +power? 21:8 Their seed is established in their sight with them, and +their offspring before their eyes. + +21:9 Their houses are safe from fear, neither is the rod of God upon +them. + +21:10 Their bull gendereth, and faileth not; their cow calveth, and +casteth not her calf. + +21:11 They send forth their little ones like a flock, and their +children dance. + +21:12 They take the timbrel and harp, and rejoice at the sound of the +organ. + +21:13 They spend their days in wealth, and in a moment go down to the +grave. + +21:14 Therefore they say unto God, Depart from us; for we desire not +the knowledge of thy ways. + +21:15 What is the Almighty, that we should serve him? and what profit +should we have, if we pray unto him? 21:16 Lo, their good is not in +their hand: the counsel of the wicked is far from me. + +21:17 How oft is the candle of the wicked put out! and how oft cometh +their destruction upon them! God distributeth sorrows in his anger. + +21:18 They are as stubble before the wind, and as chaff that the storm +carrieth away. + +21:19 God layeth up his iniquity for his children: he rewardeth him, +and he shall know it. + +21:20 His eyes shall see his destruction, and he shall drink of the +wrath of the Almighty. + +21:21 For what pleasure hath he in his house after him, when the +number of his months is cut off in the midst? 21:22 Shall any teach +God knowledge? seeing he judgeth those that are high. + +21:23 One dieth in his full strength, being wholly at ease and quiet. + +21:24 His breasts are full of milk, and his bones are moistened with +marrow. + +21:25 And another dieth in the bitterness of his soul, and never +eateth with pleasure. + +21:26 They shall lie down alike in the dust, and the worms shall cover +them. + +21:27 Behold, I know your thoughts, and the devices which ye +wrongfully imagine against me. + +21:28 For ye say, Where is the house of the prince? and where are the +dwelling places of the wicked? 21:29 Have ye not asked them that go +by the way? and do ye not know their tokens, 21:30 That the wicked is +reserved to the day of destruction? they shall be brought forth to the +day of wrath. + +21:31 Who shall declare his way to his face? and who shall repay him +what he hath done? 21:32 Yet shall he be brought to the grave, and +shall remain in the tomb. + +21:33 The clods of the valley shall be sweet unto him, and every man +shall draw after him, as there are innumerable before him. + +21:34 How then comfort ye me in vain, seeing in your answers there +remaineth falsehood? 22:1 Then Eliphaz the Temanite answered and +said, 22:2 Can a man be profitable unto God, as he that is wise may be +profitable unto himself? 22:3 Is it any pleasure to the Almighty, +that thou art righteous? or is it gain to him, that thou makest thy +ways perfect? 22:4 Will he reprove thee for fear of thee? will he +enter with thee into judgment? 22:5 Is not thy wickedness great? and +thine iniquities infinite? 22:6 For thou hast taken a pledge from thy +brother for nought, and stripped the naked of their clothing. + +22:7 Thou hast not given water to the weary to drink, and thou hast +withholden bread from the hungry. + +22:8 But as for the mighty man, he had the earth; and the honourable +man dwelt in it. + +22:9 Thou hast sent widows away empty, and the arms of the fatherless +have been broken. + +22:10 Therefore snares are round about thee, and sudden fear troubleth +thee; 22:11 Or darkness, that thou canst not see; and abundance of +waters cover thee. + +22:12 Is not God in the height of heaven? and behold the height of the +stars, how high they are! 22:13 And thou sayest, How doth God know? +can he judge through the dark cloud? 22:14 Thick clouds are a +covering to him, that he seeth not; and he walketh in the circuit of +heaven. + +22:15 Hast thou marked the old way which wicked men have trodden? +22:16 Which were cut down out of time, whose foundation was overflown +with a flood: 22:17 Which said unto God, Depart from us: and what can +the Almighty do for them? 22:18 Yet he filled their houses with good +things: but the counsel of the wicked is far from me. + +22:19 The righteous see it, and are glad: and the innocent laugh them +to scorn. + +22:20 Whereas our substance is not cut down, but the remnant of them +the fire consumeth. + +22:21 Acquaint now thyself with him, and be at peace: thereby good +shall come unto thee. + +22:22 Receive, I pray thee, the law from his mouth, and lay up his +words in thine heart. + +22:23 If thou return to the Almighty, thou shalt be built up, thou +shalt put away iniquity far from thy tabernacles. + +22:24 Then shalt thou lay up gold as dust, and the gold of Ophir as +the stones of the brooks. + +22:25 Yea, the Almighty shall be thy defence, and thou shalt have +plenty of silver. + +22:26 For then shalt thou have thy delight in the Almighty, and shalt +lift up thy face unto God. + +22:27 Thou shalt make thy prayer unto him, and he shall hear thee, and +thou shalt pay thy vows. + +22:28 Thou shalt also decree a thing, and it shall be established unto +thee: and the light shall shine upon thy ways. + +22:29 When men are cast down, then thou shalt say, There is lifting +up; and he shall save the humble person. + +22:30 He shall deliver the island of the innocent: and it is delivered +by the pureness of thine hands. + +23:1 Then Job answered and said, 23:2 Even to day is my complaint +bitter: my stroke is heavier than my groaning. + +23:3 Oh that I knew where I might find him! that I might come even to +his seat! 23:4 I would order my cause before him, and fill my mouth +with arguments. + +23:5 I would know the words which he would answer me, and understand +what he would say unto me. + +23:6 Will he plead against me with his great power? No; but he would +put strength in me. + +23:7 There the righteous might dispute with him; so should I be +delivered for ever from my judge. + +23:8 Behold, I go forward, but he is not there; and backward, but I +cannot perceive him: 23:9 On the left hand, where he doth work, but I +cannot behold him: he hideth himself on the right hand, that I cannot +see him: 23:10 But he knoweth the way that I take: when he hath tried +me, I shall come forth as gold. + +23:11 My foot hath held his steps, his way have I kept, and not +declined. + +23:12 Neither have I gone back from the commandment of his lips; I +have esteemed the words of his mouth more than my necessary food. + +23:13 But he is in one mind, and who can turn him? and what his soul +desireth, even that he doeth. + +23:14 For he performeth the thing that is appointed for me: and many +such things are with him. + +23:15 Therefore am I troubled at his presence: when I consider, I am +afraid of him. + +23:16 For God maketh my heart soft, and the Almighty troubleth me: +23:17 Because I was not cut off before the darkness, neither hath he +covered the darkness from my face. + +24:1 Why, seeing times are not hidden from the Almighty, do they that +know him not see his days? 24:2 Some remove the landmarks; they +violently take away flocks, and feed thereof. + +24:3 They drive away the ass of the fatherless, they take the widow's +ox for a pledge. + +24:4 They turn the needy out of the way: the poor of the earth hide +themselves together. + +24:5 Behold, as wild asses in the desert, go they forth to their work; +rising betimes for a prey: the wilderness yieldeth food for them and +for their children. + +24:6 They reap every one his corn in the field: and they gather the +vintage of the wicked. + +24:7 They cause the naked to lodge without clothing, that they have no +covering in the cold. + +24:8 They are wet with the showers of the mountains, and embrace the +rock for want of a shelter. + +24:9 They pluck the fatherless from the breast, and take a pledge of +the poor. + +24:10 They cause him to go naked without clothing, and they take away +the sheaf from the hungry; 24:11 Which make oil within their walls, +and tread their winepresses, and suffer thirst. + +24:12 Men groan from out of the city, and the soul of the wounded +crieth out: yet God layeth not folly to them. + +24:13 They are of those that rebel against the light; they know not +the ways thereof, nor abide in the paths thereof. + +24:14 The murderer rising with the light killeth the poor and needy, +and in the night is as a thief. + +24:15 The eye also of the adulterer waiteth for the twilight, saying, +No eye shall see me: and disguiseth his face. + +24:16 In the dark they dig through houses, which they had marked for +themselves in the daytime: they know not the light. + +24:17 For the morning is to them even as the shadow of death: if one +know them, they are in the terrors of the shadow of death. + +24:18 He is swift as the waters; their portion is cursed in the earth: +he beholdeth not the way of the vineyards. + +24:19 Drought and heat consume the snow waters: so doth the grave +those which have sinned. + +24:20 The womb shall forget him; the worm shall feed sweetly on him; +he shall be no more remembered; and wickedness shall be broken as a +tree. + +24:21 He evil entreateth the barren that beareth not: and doeth not +good to the widow. + +24:22 He draweth also the mighty with his power: he riseth up, and no +man is sure of life. + +24:23 Though it be given him to be in safety, whereon he resteth; yet +his eyes are upon their ways. + +24:24 They are exalted for a little while, but are gone and brought +low; they are taken out of the way as all other, and cut off as the +tops of the ears of corn. + +24:25 And if it be not so now, who will make me a liar, and make my +speech nothing worth? 25:1 Then answered Bildad the Shuhite, and +said, 25:2 Dominion and fear are with him, he maketh peace in his high +places. + +25:3 Is there any number of his armies? and upon whom doth not his +light arise? 25:4 How then can man be justified with God? or how can +he be clean that is born of a woman? 25:5 Behold even to the moon, +and it shineth not; yea, the stars are not pure in his sight. + +25:6 How much less man, that is a worm? and the son of man, which is a +worm? 26:1 But Job answered and said, 26:2 How hast thou helped him +that is without power? how savest thou the arm that hath no strength? +26:3 How hast thou counselled him that hath no wisdom? and how hast +thou plentifully declared the thing as it is? 26:4 To whom hast thou +uttered words? and whose spirit came from thee? 26:5 Dead things are +formed from under the waters, and the inhabitants thereof. + +26:6 Hell is naked before him, and destruction hath no covering. + +26:7 He stretcheth out the north over the empty place, and hangeth the +earth upon nothing. + +26:8 He bindeth up the waters in his thick clouds; and the cloud is +not rent under them. + +26:9 He holdeth back the face of his throne, and spreadeth his cloud +upon it. + +26:10 He hath compassed the waters with bounds, until the day and +night come to an end. + +26:11 The pillars of heaven tremble and are astonished at his reproof. + +26:12 He divideth the sea with his power, and by his understanding he +smiteth through the proud. + +26:13 By his spirit he hath garnished the heavens; his hand hath +formed the crooked serpent. + +26:14 Lo, these are parts of his ways: but how little a portion is +heard of him? but the thunder of his power who can understand? 27:1 +Moreover Job continued his parable, and said, 27:2 As God liveth, who +hath taken away my judgment; and the Almighty, who hath vexed my soul; +27:3 All the while my breath is in me, and the spirit of God is in my +nostrils; 27:4 My lips shall not speak wickedness, nor my tongue utter +deceit. + +27:5 God forbid that I should justify you: till I die I will not +remove mine integrity from me. + +27:6 My righteousness I hold fast, and will not let it go: my heart +shall not reproach me so long as I live. + +27:7 Let mine enemy be as the wicked, and he that riseth up against me +as the unrighteous. + +27:8 For what is the hope of the hypocrite, though he hath gained, +when God taketh away his soul? 27:9 Will God hear his cry when +trouble cometh upon him? 27:10 Will he delight himself in the +Almighty? will he always call upon God? 27:11 I will teach you by the +hand of God: that which is with the Almighty will I not conceal. + +27:12 Behold, all ye yourselves have seen it; why then are ye thus +altogether vain? 27:13 This is the portion of a wicked man with God, +and the heritage of oppressors, which they shall receive of the +Almighty. + +27:14 If his children be multiplied, it is for the sword: and his +offspring shall not be satisfied with bread. + +27:15 Those that remain of him shall be buried in death: and his +widows shall not weep. + +27:16 Though he heap up silver as the dust, and prepare raiment as the +clay; 27:17 He may prepare it, but the just shall put it on, and the +innocent shall divide the silver. + +27:18 He buildeth his house as a moth, and as a booth that the keeper +maketh. + +27:19 The rich man shall lie down, but he shall not be gathered: he +openeth his eyes, and he is not. + +27:20 Terrors take hold on him as waters, a tempest stealeth him away +in the night. + +27:21 The east wind carrieth him away, and he departeth: and as a +storm hurleth him out of his place. + +27:22 For God shall cast upon him, and not spare: he would fain flee +out of his hand. + +27:23 Men shall clap their hands at him, and shall hiss him out of his +place. + +28:1 Surely there is a vein for the silver, and a place for gold where +they fine it. + +28:2 Iron is taken out of the earth, and brass is molten out of the +stone. + +28:3 He setteth an end to darkness, and searcheth out all perfection: +the stones of darkness, and the shadow of death. + +28:4 The flood breaketh out from the inhabitant; even the waters +forgotten of the foot: they are dried up, they are gone away from men. + +28:5 As for the earth, out of it cometh bread: and under it is turned +up as it were fire. + +28:6 The stones of it are the place of sapphires: and it hath dust of +gold. + +28:7 There is a path which no fowl knoweth, and which the vulture's +eye hath not seen: 28:8 The lion's whelps have not trodden it, nor the +fierce lion passed by it. + +28:9 He putteth forth his hand upon the rock; he overturneth the +mountains by the roots. + +28:10 He cutteth out rivers among the rocks; and his eye seeth every +precious thing. + +28:11 He bindeth the floods from overflowing; and the thing that is +hid bringeth he forth to light. + +28:12 But where shall wisdom be found? and where is the place of +understanding? 28:13 Man knoweth not the price thereof; neither is it +found in the land of the living. + +28:14 The depth saith, It is not in me: and the sea saith, It is not +with me. + +28:15 It cannot be gotten for gold, neither shall silver be weighed +for the price thereof. + +28:16 It cannot be valued with the gold of Ophir, with the precious +onyx, or the sapphire. + +28:17 The gold and the crystal cannot equal it: and the exchange of it +shall not be for jewels of fine gold. + +28:18 No mention shall be made of coral, or of pearls: for the price +of wisdom is above rubies. + +28:19 The topaz of Ethiopia shall not equal it, neither shall it be +valued with pure gold. + +28:20 Whence then cometh wisdom? and where is the place of +understanding? 28:21 Seeing it is hid from the eyes of all living, +and kept close from the fowls of the air. + +28:22 Destruction and death say, We have heard the fame thereof with +our ears. + +28:23 God understandeth the way thereof, and he knoweth the place +thereof. + +28:24 For he looketh to the ends of the earth, and seeth under the +whole heaven; 28:25 To make the weight for the winds; and he weigheth +the waters by measure. + +28:26 When he made a decree for the rain, and a way for the lightning +of the thunder: 28:27 Then did he see it, and declare it; he prepared +it, yea, and searched it out. + +28:28 And unto man he said, Behold, the fear of the LORD, that is +wisdom; and to depart from evil is understanding. + +29:1 Moreover Job continued his parable, and said, 29:2 Oh that I were +as in months past, as in the days when God preserved me; 29:3 When his +candle shined upon my head, and when by his light I walked through +darkness; 29:4 As I was in the days of my youth, when the secret of +God was upon my tabernacle; 29:5 When the Almighty was yet with me, +when my children were about me; 29:6 When I washed my steps with +butter, and the rock poured me out rivers of oil; 29:7 When I went out +to the gate through the city, when I prepared my seat in the street! +29:8 The young men saw me, and hid themselves: and the aged arose, and +stood up. + +29:9 The princes refrained talking, and laid their hand on their +mouth. + +29:10 The nobles held their peace, and their tongue cleaved to the +roof of their mouth. + +29:11 When the ear heard me, then it blessed me; and when the eye saw +me, it gave witness to me: 29:12 Because I delivered the poor that +cried, and the fatherless, and him that had none to help him. + +29:13 The blessing of him that was ready to perish came upon me: and I +caused the widow's heart to sing for joy. + +29:14 I put on righteousness, and it clothed me: my judgment was as a +robe and a diadem. + +29:15 I was eyes to the blind, and feet was I to the lame. + +29:16 I was a father to the poor: and the cause which I knew not I +searched out. + +29:17 And I brake the jaws of the wicked, and plucked the spoil out of +his teeth. + +29:18 Then I said, I shall die in my nest, and I shall multiply my +days as the sand. + +29:19 My root was spread out by the waters, and the dew lay all night +upon my branch. + +29:20 My glory was fresh in me, and my bow was renewed in my hand. + +29:21 Unto me men gave ear, and waited, and kept silence at my +counsel. + +29:22 After my words they spake not again; and my speech dropped upon +them. + +29:23 And they waited for me as for the rain; and they opened their +mouth wide as for the latter rain. + +29:24 If I laughed on them, they believed it not; and the light of my +countenance they cast not down. + +29:25 I chose out their way, and sat chief, and dwelt as a king in the +army, as one that comforteth the mourners. + +30:1 But now they that are younger than I have me in derision, whose +fathers I would have disdained to have set with the dogs of my flock. + +30:2 Yea, whereto might the strength of their hands profit me, in whom +old age was perished? 30:3 For want and famine they were solitary; +fleeing into the wilderness in former time desolate and waste. + +30:4 Who cut up mallows by the bushes, and juniper roots for their +meat. + +30:5 They were driven forth from among men, (they cried after them as +after a thief;) 30:6 To dwell in the cliffs of the valleys, in caves +of the earth, and in the rocks. + +30:7 Among the bushes they brayed; under the nettles they were +gathered together. + +30:8 They were children of fools, yea, children of base men: they were +viler than the earth. + +30:9 And now am I their song, yea, I am their byword. + +30:10 They abhor me, they flee far from me, and spare not to spit in +my face. + +30:11 Because he hath loosed my cord, and afflicted me, they have also +let loose the bridle before me. + +30:12 Upon my right hand rise the youth; they push away my feet, and +they raise up against me the ways of their destruction. + +30:13 They mar my path, they set forward my calamity, they have no +helper. + +30:14 They came upon me as a wide breaking in of waters: in the +desolation they rolled themselves upon me. + +30:15 Terrors are turned upon me: they pursue my soul as the wind: and +my welfare passeth away as a cloud. + +30:16 And now my soul is poured out upon me; the days of affliction +have taken hold upon me. + +30:17 My bones are pierced in me in the night season: and my sinews +take no rest. + +30:18 By the great force of my disease is my garment changed: it +bindeth me about as the collar of my coat. + +30:19 He hath cast me into the mire, and I am become like dust and +ashes. + +30:20 I cry unto thee, and thou dost not hear me: I stand up, and thou +regardest me not. + +30:21 Thou art become cruel to me: with thy strong hand thou opposest +thyself against me. + +30:22 Thou liftest me up to the wind; thou causest me to ride upon it, +and dissolvest my substance. + +30:23 For I know that thou wilt bring me to death, and to the house +appointed for all living. + +30:24 Howbeit he will not stretch out his hand to the grave, though +they cry in his destruction. + +30:25 Did not I weep for him that was in trouble? was not my soul +grieved for the poor? 30:26 When I looked for good, then evil came +unto me: and when I waited for light, there came darkness. + +30:27 My bowels boiled, and rested not: the days of affliction +prevented me. + +30:28 I went mourning without the sun: I stood up, and I cried in the +congregation. + +30:29 I am a brother to dragons, and a companion to owls. + +30:30 My skin is black upon me, and my bones are burned with heat. + +30:31 My harp also is turned to mourning, and my organ into the voice +of them that weep. + +31:1 I made a covenant with mine eyes; why then should I think upon a +maid? 31:2 For what portion of God is there from above? and what +inheritance of the Almighty from on high? 31:3 Is not destruction to +the wicked? and a strange punishment to the workers of iniquity? 31:4 +Doth not he see my ways, and count all my steps? 31:5 If I have +walked with vanity, or if my foot hath hasted to deceit; 31:6 Let me +be weighed in an even balance that God may know mine integrity. + +31:7 If my step hath turned out of the way, and mine heart walked +after mine eyes, and if any blot hath cleaved to mine hands; 31:8 Then +let me sow, and let another eat; yea, let my offspring be rooted out. + +31:9 If mine heart have been deceived by a woman, or if I have laid +wait at my neighbour's door; 31:10 Then let my wife grind unto +another, and let others bow down upon her. + +31:11 For this is an heinous crime; yea, it is an iniquity to be +punished by the judges. + +31:12 For it is a fire that consumeth to destruction, and would root +out all mine increase. + +31:13 If I did despise the cause of my manservant or of my +maidservant, when they contended with me; 31:14 What then shall I do +when God riseth up? and when he visiteth, what shall I answer him? +31:15 Did not he that made me in the womb make him? and did not one +fashion us in the womb? 31:16 If I have withheld the poor from their +desire, or have caused the eyes of the widow to fail; 31:17 Or have +eaten my morsel myself alone, and the fatherless hath not eaten +thereof; 31:18 (For from my youth he was brought up with me, as with a +father, and I have guided her from my mother's womb;) 31:19 If I have +seen any perish for want of clothing, or any poor without covering; +31:20 If his loins have not blessed me, and if he were not warmed with +the fleece of my sheep; 31:21 If I have lifted up my hand against the +fatherless, when I saw my help in the gate: 31:22 Then let mine arm +fall from my shoulder blade, and mine arm be broken from the bone. + +31:23 For destruction from God was a terror to me, and by reason of +his highness I could not endure. + +31:24 If I have made gold my hope, or have said to the fine gold, Thou +art my confidence; 31:25 If I rejoice because my wealth was great, and +because mine hand had gotten much; 31:26 If I beheld the sun when it +shined, or the moon walking in brightness; 31:27 And my heart hath +been secretly enticed, or my mouth hath kissed my hand: 31:28 This +also were an iniquity to be punished by the judge: for I should have +denied the God that is above. + +31:29 If I rejoice at the destruction of him that hated me, or lifted +up myself when evil found him: 31:30 Neither have I suffered my mouth +to sin by wishing a curse to his soul. + +31:31 If the men of my tabernacle said not, Oh that we had of his +flesh! we cannot be satisfied. + +31:32 The stranger did not lodge in the street: but I opened my doors +to the traveller. + +31:33 If I covered my transgressions as Adam, by hiding mine iniquity +in my bosom: 31:34 Did I fear a great multitude, or did the contempt +of families terrify me, that I kept silence, and went not out of the +door? 31:35 Oh that one would hear me! behold, my desire is, that the +Almighty would answer me, and that mine adversary had written a book. + +31:36 Surely I would take it upon my shoulder, and bind it as a crown +to me. + +31:37 I would declare unto him the number of my steps; as a prince +would I go near unto him. + +31:38 If my land cry against me, or that the furrows likewise thereof +complain; 31:39 If I have eaten the fruits thereof without money, or +have caused the owners thereof to lose their life: 31:40 Let thistles +grow instead of wheat, and cockle instead of barley. + +The words of Job are ended. + +32:1 So these three men ceased to answer Job, because he was righteous +in his own eyes. + +32:2 Then was kindled the wrath of Elihu the son of Barachel the +Buzite, of the kindred of Ram: against Job was his wrath kindled, +because he justified himself rather than God. + +32:3 Also against his three friends was his wrath kindled, because +they had found no answer, and yet had condemned Job. + +32:4 Now Elihu had waited till Job had spoken, because they were elder +than he. + +32:5 When Elihu saw that there was no answer in the mouth of these +three men, then his wrath was kindled. + +32:6 And Elihu the son of Barachel the Buzite answered and said, I am +young, and ye are very old; wherefore I was afraid, and durst not shew +you mine opinion. + +32:7 I said, Days should speak, and multitude of years should teach +wisdom. + +32:8 But there is a spirit in man: and the inspiration of the Almighty +giveth them understanding. + +32:9 Great men are not always wise: neither do the aged understand +judgment. + +32:10 Therefore I said, Hearken to me; I also will shew mine opinion. + +32:11 Behold, I waited for your words; I gave ear to your reasons, +whilst ye searched out what to say. + +32:12 Yea, I attended unto you, and, behold, there was none of you +that convinced Job, or that answered his words: 32:13 Lest ye should +say, We have found out wisdom: God thrusteth him down, not man. + +32:14 Now he hath not directed his words against me: neither will I +answer him with your speeches. + +32:15 They were amazed, they answered no more: they left off speaking. + +32:16 When I had waited, (for they spake not, but stood still, and +answered no more;) 32:17 I said, I will answer also my part, I also +will shew mine opinion. + +32:18 For I am full of matter, the spirit within me constraineth me. + +32:19 Behold, my belly is as wine which hath no vent; it is ready to +burst like new bottles. + +32:20 I will speak, that I may be refreshed: I will open my lips and +answer. + +32:21 Let me not, I pray you, accept any man's person, neither let me +give flattering titles unto man. + +32:22 For I know not to give flattering titles; in so doing my maker +would soon take me away. + +33:1 Wherefore, Job, I pray thee, hear my speeches, and hearken to all +my words. + +33:2 Behold, now I have opened my mouth, my tongue hath spoken in my +mouth. + +33:3 My words shall be of the uprightness of my heart: and my lips +shall utter knowledge clearly. + +33:4 The spirit of God hath made me, and the breath of the Almighty +hath given me life. + +33:5 If thou canst answer me, set thy words in order before me, stand +up. + +33:6 Behold, I am according to thy wish in God's stead: I also am +formed out of the clay. + +33:7 Behold, my terror shall not make thee afraid, neither shall my +hand be heavy upon thee. + +33:8 Surely thou hast spoken in mine hearing, and I have heard the +voice of thy words, saying, 33:9 I am clean without transgression, I +am innocent; neither is there iniquity in me. + +33:10 Behold, he findeth occasions against me, he counteth me for his +enemy, 33:11 He putteth my feet in the stocks, he marketh all my +paths. + +33:12 Behold, in this thou art not just: I will answer thee, that God +is greater than man. + +33:13 Why dost thou strive against him? for he giveth not account of +any of his matters. + +33:14 For God speaketh once, yea twice, yet man perceiveth it not. + +33:15 In a dream, in a vision of the night, when deep sleep falleth +upon men, in slumberings upon the bed; 33:16 Then he openeth the ears +of men, and sealeth their instruction, 33:17 That he may withdraw man +from his purpose, and hide pride from man. + +33:18 He keepeth back his soul from the pit, and his life from +perishing by the sword. + +33:19 He is chastened also with pain upon his bed, and the multitude +of his bones with strong pain: 33:20 So that his life abhorreth bread, +and his soul dainty meat. + +33:21 His flesh is consumed away, that it cannot be seen; and his +bones that were not seen stick out. + +33:22 Yea, his soul draweth near unto the grave, and his life to the +destroyers. + +33:23 If there be a messenger with him, an interpreter, one among a +thousand, to shew unto man his uprightness: 33:24 Then he is gracious +unto him, and saith, Deliver him from going down to the pit: I have +found a ransom. + +33:25 His flesh shall be fresher than a child's: he shall return to +the days of his youth: 33:26 He shall pray unto God, and he will be +favourable unto him: and he shall see his face with joy: for he will +render unto man his righteousness. + +33:27 He looketh upon men, and if any say, I have sinned, and +perverted that which was right, and it profited me not; 33:28 He will +deliver his soul from going into the pit, and his life shall see the +light. + +33:29 Lo, all these things worketh God oftentimes with man, 33:30 To +bring back his soul from the pit, to be enlightened with the light of +the living. + +33:31 Mark well, O Job, hearken unto me: hold thy peace, and I will +speak. + +33:32 If thou hast anything to say, answer me: speak, for I desire to +justify thee. + +33:33 If not, hearken unto me: hold thy peace, and I shall teach thee +wisdom. + +34:1 Furthermore Elihu answered and said, 34:2 Hear my words, O ye +wise men; and give ear unto me, ye that have knowledge. + +34:3 For the ear trieth words, as the mouth tasteth meat. + +34:4 Let us choose to us judgment: let us know among ourselves what is +good. + +34:5 For Job hath said, I am righteous: and God hath taken away my +judgment. + +34:6 Should I lie against my right? my wound is incurable without +transgression. + +34:7 What man is like Job, who drinketh up scorning like water? 34:8 +Which goeth in company with the workers of iniquity, and walketh with +wicked men. + +34:9 For he hath said, It profiteth a man nothing that he should +delight himself with God. + +34:10 Therefore hearken unto me ye men of understanding: far be it +from God, that he should do wickedness; and from the Almighty, that he +should commit iniquity. + +34:11 For the work of a man shall he render unto him, and cause every +man to find according to his ways. + +34:12 Yea, surely God will not do wickedly, neither will the Almighty +pervert judgment. + +34:13 Who hath given him a charge over the earth? or who hath disposed +the whole world? 34:14 If he set his heart upon man, if he gather +unto himself his spirit and his breath; 34:15 All flesh shall perish +together, and man shall turn again unto dust. + +34:16 If now thou hast understanding, hear this: hearken to the voice +of my words. + +34:17 Shall even he that hateth right govern? and wilt thou condemn +him that is most just? 34:18 Is it fit to say to a king, Thou art +wicked? and to princes, Ye are ungodly? 34:19 How much less to him +that accepteth not the persons of princes, nor regardeth the rich more +than the poor? for they all are the work of his hands. + +34:20 In a moment shall they die, and the people shall be troubled at +midnight, and pass away: and the mighty shall be taken away without +hand. + +34:21 For his eyes are upon the ways of man, and he seeth all his +goings. + +34:22 There is no darkness, nor shadow of death, where the workers of +iniquity may hide themselves. + +34:23 For he will not lay upon man more than right; that he should +enter into judgment with God. + +34:24 He shall break in pieces mighty men without number, and set +others in their stead. + +34:25 Therefore he knoweth their works, and he overturneth them in the +night, so that they are destroyed. + +34:26 He striketh them as wicked men in the open sight of others; +34:27 Because they turned back from him, and would not consider any of +his ways: 34:28 So that they cause the cry of the poor to come unto +him, and he heareth the cry of the afflicted. + +34:29 When he giveth quietness, who then can make trouble? and when he +hideth his face, who then can behold him? whether it be done against a +nation, or against a man only: 34:30 That the hypocrite reign not, +lest the people be ensnared. + +34:31 Surely it is meet to be said unto God, I have borne +chastisement, I will not offend any more: 34:32 That which I see not +teach thou me: if I have done iniquity, I will do no more. + +34:33 Should it be according to thy mind? he will recompense it, +whether thou refuse, or whether thou choose; and not I: therefore +speak what thou knowest. + +34:34 Let men of understanding tell me, and let a wise man hearken +unto me. + +34:35 Job hath spoken without knowledge, and his words were without +wisdom. + +34:36 My desire is that Job may be tried unto the end because of his +answers for wicked men. + +34:37 For he addeth rebellion unto his sin, he clappeth his hands +among us, and multiplieth his words against God. + +35:1 Elihu spake moreover, and said, 35:2 Thinkest thou this to be +right, that thou saidst, My righteousness is more than God's? 35:3 +For thou saidst, What advantage will it be unto thee? and, What profit +shall I have, if I be cleansed from my sin? 35:4 I will answer thee, +and thy companions with thee. + +35:5 Look unto the heavens, and see; and behold the clouds which are +higher than thou. + +35:6 If thou sinnest, what doest thou against him? or if thy +transgressions be multiplied, what doest thou unto him? 35:7 If thou +be righteous, what givest thou him? or what receiveth he of thine +hand? 35:8 Thy wickedness may hurt a man as thou art; and thy +righteousness may profit the son of man. + +35:9 By reason of the multitude of oppressions they make the oppressed +to cry: they cry out by reason of the arm of the mighty. + +35:10 But none saith, Where is God my maker, who giveth songs in the +night; 35:11 Who teacheth us more than the beasts of the earth, and +maketh us wiser than the fowls of heaven? 35:12 There they cry, but +none giveth answer, because of the pride of evil men. + +35:13 Surely God will not hear vanity, neither will the Almighty +regard it. + +35:14 Although thou sayest thou shalt not see him, yet judgment is +before him; therefore trust thou in him. + +35:15 But now, because it is not so, he hath visited in his anger; yet +he knoweth it not in great extremity: 35:16 Therefore doth Job open +his mouth in vain; he multiplieth words without knowledge. + +36:1 Elihu also proceeded, and said, 36:2 Suffer me a little, and I +will shew thee that I have yet to speak on God's behalf. + +36:3 I will fetch my knowledge from afar, and will ascribe +righteousness to my Maker. + +36:4 For truly my words shall not be false: he that is perfect in +knowledge is with thee. + +36:5 Behold, God is mighty, and despiseth not any: he is mighty in +strength and wisdom. + +36:6 He preserveth not the life of the wicked: but giveth right to the +poor. + +36:7 He withdraweth not his eyes from the righteous: but with kings +are they on the throne; yea, he doth establish them for ever, and they +are exalted. + +36:8 And if they be bound in fetters, and be holden in cords of +affliction; 36:9 Then he sheweth them their work, and their +transgressions that they have exceeded. + +36:10 He openeth also their ear to discipline, and commandeth that +they return from iniquity. + +36:11 If they obey and serve him, they shall spend their days in +prosperity, and their years in pleasures. + +36:12 But if they obey not, they shall perish by the sword, and they +shall die without knowledge. + +36:13 But the hypocrites in heart heap up wrath: they cry not when he +bindeth them. + +36:14 They die in youth, and their life is among the unclean. + +36:15 He delivereth the poor in his affliction, and openeth their ears +in oppression. + +36:16 Even so would he have removed thee out of the strait into a +broad place, where there is no straitness; and that which should be +set on thy table should be full of fatness. + +36:17 But thou hast fulfilled the judgment of the wicked: judgment and +justice take hold on thee. + +36:18 Because there is wrath, beware lest he take thee away with his +stroke: then a great ransom cannot deliver thee. + +36:19 Will he esteem thy riches? no, not gold, nor all the forces of +strength. + +36:20 Desire not the night, when people are cut off in their place. + +36:21 Take heed, regard not iniquity: for this hast thou chosen rather +than affliction. + +36:22 Behold, God exalteth by his power: who teacheth like him? 36:23 +Who hath enjoined him his way? or who can say, Thou hast wrought +iniquity? 36:24 Remember that thou magnify his work, which men +behold. + +36:25 Every man may see it; man may behold it afar off. + +36:26 Behold, God is great, and we know him not, neither can the +number of his years be searched out. + +36:27 For he maketh small the drops of water: they pour down rain +according to the vapour thereof: 36:28 Which the clouds do drop and +distil upon man abundantly. + +36:29 Also can any understand the spreadings of the clouds, or the +noise of his tabernacle? 36:30 Behold, he spreadeth his light upon +it, and covereth the bottom of the sea. + +36:31 For by them judgeth he the people; he giveth meat in abundance. + +36:32 With clouds he covereth the light; and commandeth it not to +shine by the cloud that cometh betwixt. + +36:33 The noise thereof sheweth concerning it, the cattle also +concerning the vapour. + +37:1 At this also my heart trembleth, and is moved out of his place. + +37:2 Hear attentively the noise of his voice, and the sound that goeth +out of his mouth. + +37:3 He directeth it under the whole heaven, and his lightning unto +the ends of the earth. + +37:4 After it a voice roareth: he thundereth with the voice of his +excellency; and he will not stay them when his voice is heard. + +37:5 God thundereth marvellously with his voice; great things doeth +he, which we cannot comprehend. + +37:6 For he saith to the snow, Be thou on the earth; likewise to the +small rain, and to the great rain of his strength. + +37:7 He sealeth up the hand of every man; that all men may know his +work. + +37:8 Then the beasts go into dens, and remain in their places. + +37:9 Out of the south cometh the whirlwind: and cold out of the north. + +37:10 By the breath of God frost is given: and the breadth of the +waters is straitened. + +37:11 Also by watering he wearieth the thick cloud: he scattereth his +bright cloud: 37:12 And it is turned round about by his counsels: that +they may do whatsoever he commandeth them upon the face of the world +in the earth. + +37:13 He causeth it to come, whether for correction, or for his land, +or for mercy. + +37:14 Hearken unto this, O Job: stand still, and consider the wondrous +works of God. + +37:15 Dost thou know when God disposed them, and caused the light of +his cloud to shine? 37:16 Dost thou know the balancings of the +clouds, the wondrous works of him which is perfect in knowledge? +37:17 How thy garments are warm, when he quieteth the earth by the +south wind? 37:18 Hast thou with him spread out the sky, which is +strong, and as a molten looking glass? 37:19 Teach us what we shall +say unto him; for we cannot order our speech by reason of darkness. + +37:20 Shall it be told him that I speak? if a man speak, surely he +shall be swallowed up. + +37:21 And now men see not the bright light which is in the clouds: but +the wind passeth, and cleanseth them. + +37:22 Fair weather cometh out of the north: with God is terrible +majesty. + +37:23 Touching the Almighty, we cannot find him out: he is excellent +in power, and in judgment, and in plenty of justice: he will not +afflict. + +37:24 Men do therefore fear him: he respecteth not any that are wise +of heart. + +38:1 Then the LORD answered Job out of the whirlwind, and said, 38:2 +Who is this that darkeneth counsel by words without knowledge? 38:3 +Gird up now thy loins like a man; for I will demand of thee, and +answer thou me. + +38:4 Where wast thou when I laid the foundations of the earth? +declare, if thou hast understanding. + +38:5 Who hath laid the measures thereof, if thou knowest? or who hath +stretched the line upon it? 38:6 Whereupon are the foundations +thereof fastened? or who laid the corner stone thereof; 38:7 When the +morning stars sang together, and all the sons of God shouted for joy? +38:8 Or who shut up the sea with doors, when it brake forth, as if it +had issued out of the womb? 38:9 When I made the cloud the garment +thereof, and thick darkness a swaddlingband for it, 38:10 And brake up +for it my decreed place, and set bars and doors, 38:11 And said, +Hitherto shalt thou come, but no further: and here shall thy proud +waves be stayed? 38:12 Hast thou commanded the morning since thy +days; and caused the dayspring to know his place; 38:13 That it might +take hold of the ends of the earth, that the wicked might be shaken +out of it? 38:14 It is turned as clay to the seal; and they stand as +a garment. + +38:15 And from the wicked their light is withholden, and the high arm +shall be broken. + +38:16 Hast thou entered into the springs of the sea? or hast thou +walked in the search of the depth? 38:17 Have the gates of death been +opened unto thee? or hast thou seen the doors of the shadow of death? +38:18 Hast thou perceived the breadth of the earth? declare if thou +knowest it all. + +38:19 Where is the way where light dwelleth? and as for darkness, +where is the place thereof, 38:20 That thou shouldest take it to the +bound thereof, and that thou shouldest know the paths to the house +thereof? 38:21 Knowest thou it, because thou wast then born? or +because the number of thy days is great? 38:22 Hast thou entered into +the treasures of the snow? or hast thou seen the treasures of the +hail, 38:23 Which I have reserved against the time of trouble, against +the day of battle and war? 38:24 By what way is the light parted, +which scattereth the east wind upon the earth? 38:25 Who hath divided +a watercourse for the overflowing of waters, or a way for the +lightning of thunder; 38:26 To cause it to rain on the earth, where no +man is; on the wilderness, wherein there is no man; 38:27 To satisfy +the desolate and waste ground; and to cause the bud of the tender herb +to spring forth? 38:28 Hath the rain a father? or who hath begotten +the drops of dew? 38:29 Out of whose womb came the ice? and the hoary +frost of heaven, who hath gendered it? 38:30 The waters are hid as +with a stone, and the face of the deep is frozen. + +38:31 Canst thou bind the sweet influences of Pleiades, or loose the +bands of Orion? 38:32 Canst thou bring forth Mazzaroth in his season? +or canst thou guide Arcturus with his sons? 38:33 Knowest thou the +ordinances of heaven? canst thou set the dominion thereof in the +earth? 38:34 Canst thou lift up thy voice to the clouds, that +abundance of waters may cover thee? 38:35 Canst thou send lightnings, +that they may go and say unto thee, Here we are? 38:36 Who hath put +wisdom in the inward parts? or who hath given understanding to the +heart? 38:37 Who can number the clouds in wisdom? or who can stay the +bottles of heaven, 38:38 When the dust groweth into hardness, and the +clods cleave fast together? 38:39 Wilt thou hunt the prey for the +lion? or fill the appetite of the young lions, 38:40 When they couch +in their dens, and abide in the covert to lie in wait? 38:41 Who +provideth for the raven his food? when his young ones cry unto God, +they wander for lack of meat. + +39:1 Knowest thou the time when the wild goats of the rock bring +forth? or canst thou mark when the hinds do calve? 39:2 Canst thou +number the months that they fulfil? or knowest thou the time when they +bring forth? 39:3 They bow themselves, they bring forth their young +ones, they cast out their sorrows. + +39:4 Their young ones are in good liking, they grow up with corn; they +go forth, and return not unto them. + +39:5 Who hath sent out the wild ass free? or who hath loosed the bands +of the wild ass? 39:6 Whose house I have made the wilderness, and the +barren land his dwellings. + +39:7 He scorneth the multitude of the city, neither regardeth he the +crying of the driver. + +39:8 The range of the mountains is his pasture, and he searcheth after +every green thing. + +39:9 Will the unicorn be willing to serve thee, or abide by thy crib? +39:10 Canst thou bind the unicorn with his band in the furrow? or will +he harrow the valleys after thee? 39:11 Wilt thou trust him, because +his strength is great? or wilt thou leave thy labour to him? 39:12 +Wilt thou believe him, that he will bring home thy seed, and gather it +into thy barn? 39:13 Gavest thou the goodly wings unto the peacocks? +or wings and feathers unto the ostrich? 39:14 Which leaveth her eggs +in the earth, and warmeth them in dust, 39:15 And forgetteth that the +foot may crush them, or that the wild beast may break them. + +39:16 She is hardened against her young ones, as though they were not +her's: her labour is in vain without fear; 39:17 Because God hath +deprived her of wisdom, neither hath he imparted to her understanding. + +39:18 What time she lifteth up herself on high, she scorneth the horse +and his rider. + +39:19 Hast thou given the horse strength? hast thou clothed his neck +with thunder? 39:20 Canst thou make him afraid as a grasshopper? the +glory of his nostrils is terrible. + +39:21 He paweth in the valley, and rejoiceth in his strength: he goeth +on to meet the armed men. + +39:22 He mocketh at fear, and is not affrighted; neither turneth he +back from the sword. + +39:23 The quiver rattleth against him, the glittering spear and the +shield. + +39:24 He swalloweth the ground with fierceness and rage: neither +believeth he that it is the sound of the trumpet. + +39:25 He saith among the trumpets, Ha, ha; and he smelleth the battle +afar off, the thunder of the captains, and the shouting. + +39:26 Doth the hawk fly by thy wisdom, and stretch her wings toward +the south? 39:27 Doth the eagle mount up at thy command, and make her +nest on high? 39:28 She dwelleth and abideth on the rock, upon the +crag of the rock, and the strong place. + +39:29 From thence she seeketh the prey, and her eyes behold afar off. + +39:30 Her young ones also suck up blood: and where the slain are, +there is she. + +40:1 Moreover the LORD answered Job, and said, 40:2 Shall he that +contendeth with the Almighty instruct him? he that reproveth God, let +him answer it. + +40:3 Then Job answered the LORD, and said, 40:4 Behold, I am vile; +what shall I answer thee? I will lay mine hand upon my mouth. + +40:5 Once have I spoken; but I will not answer: yea, twice; but I will +proceed no further. + +40:6 Then answered the LORD unto Job out of the whirlwind, and said, +40:7 Gird up thy loins now like a man: I will demand of thee, and +declare thou unto me. + +40:8 Wilt thou also disannul my judgment? wilt thou condemn me, that +thou mayest be righteous? 40:9 Hast thou an arm like God? or canst +thou thunder with a voice like him? 40:10 Deck thyself now with +majesty and excellency; and array thyself with glory and beauty. + +40:11 Cast abroad the rage of thy wrath: and behold every one that is +proud, and abase him. + +40:12 Look on every one that is proud, and bring him low; and tread +down the wicked in their place. + +40:13 Hide them in the dust together; and bind their faces in secret. + +40:14 Then will I also confess unto thee that thine own right hand can +save thee. + +40:15 Behold now behemoth, which I made with thee; he eateth grass as +an ox. + +40:16 Lo now, his strength is in his loins, and his force is in the +navel of his belly. + +40:17 He moveth his tail like a cedar: the sinews of his stones are +wrapped together. + +40:18 His bones are as strong pieces of brass; his bones are like bars +of iron. + +40:19 He is the chief of the ways of God: he that made him can make +his sword to approach unto him. + +40:20 Surely the mountains bring him forth food, where all the beasts +of the field play. + +40:21 He lieth under the shady trees, in the covert of the reed, and +fens. + +40:22 The shady trees cover him with their shadow; the willows of the +brook compass him about. + +40:23 Behold, he drinketh up a river, and hasteth not: he trusteth +that he can draw up Jordan into his mouth. + +40:24 He taketh it with his eyes: his nose pierceth through snares. + +41:1 Canst thou draw out leviathan with an hook? or his tongue with a +cord which thou lettest down? 41:2 Canst thou put an hook into his +nose? or bore his jaw through with a thorn? 41:3 Will he make many +supplications unto thee? will he speak soft words unto thee? 41:4 +Will he make a covenant with thee? wilt thou take him for a servant +for ever? 41:5 Wilt thou play with him as with a bird? or wilt thou +bind him for thy maidens? 41:6 Shall the companions make a banquet of +him? shall they part him among the merchants? 41:7 Canst thou fill +his skin with barbed irons? or his head with fish spears? 41:8 Lay +thine hand upon him, remember the battle, do no more. + +41:9 Behold, the hope of him is in vain: shall not one be cast down +even at the sight of him? 41:10 None is so fierce that dare stir him +up: who then is able to stand before me? 41:11 Who hath prevented me, +that I should repay him? whatsoever is under the whole heaven is mine. + +41:12 I will not conceal his parts, nor his power, nor his comely +proportion. + +41:13 Who can discover the face of his garment? or who can come to him +with his double bridle? 41:14 Who can open the doors of his face? his +teeth are terrible round about. + +41:15 His scales are his pride, shut up together as with a close seal. + +41:16 One is so near to another, that no air can come between them. + +41:17 They are joined one to another, they stick together, that they +cannot be sundered. + +41:18 By his neesings a light doth shine, and his eyes are like the +eyelids of the morning. + +41:19 Out of his mouth go burning lamps, and sparks of fire leap out. + +41:20 Out of his nostrils goeth smoke, as out of a seething pot or +caldron. + +41:21 His breath kindleth coals, and a flame goeth out of his mouth. + +41:22 In his neck remaineth strength, and sorrow is turned into joy +before him. + +41:23 The flakes of his flesh are joined together: they are firm in +themselves; they cannot be moved. + +41:24 His heart is as firm as a stone; yea, as hard as a piece of the +nether millstone. + +41:25 When he raiseth up himself, the mighty are afraid: by reason of +breakings they purify themselves. + +41:26 The sword of him that layeth at him cannot hold: the spear, the +dart, nor the habergeon. + +41:27 He esteemeth iron as straw, and brass as rotten wood. + +41:28 The arrow cannot make him flee: slingstones are turned with him +into stubble. + +41:29 Darts are counted as stubble: he laugheth at the shaking of a +spear. + +41:30 Sharp stones are under him: he spreadeth sharp pointed things +upon the mire. + +41:31 He maketh the deep to boil like a pot: he maketh the sea like a +pot of ointment. + +41:32 He maketh a path to shine after him; one would think the deep to +be hoary. + +41:33 Upon earth there is not his like, who is made without fear. + +41:34 He beholdeth all high things: he is a king over all the children +of pride. + +42:1 Then Job answered the LORD, and said, 42:2 I know that thou canst +do every thing, and that no thought can be withholden from thee. + +42:3 Who is he that hideth counsel without knowledge? therefore have I +uttered that I understood not; things too wonderful for me, which I +knew not. + +42:4 Hear, I beseech thee, and I will speak: I will demand of thee, +and declare thou unto me. + +42:5 I have heard of thee by the hearing of the ear: but now mine eye +seeth thee. + +42:6 Wherefore I abhor myself, and repent in dust and ashes. + +42:7 And it was so, that after the LORD had spoken these words unto +Job, the LORD said to Eliphaz the Temanite, My wrath is kindled +against thee, and against thy two friends: for ye have not spoken of +me the thing that is right, as my servant Job hath. + +42:8 Therefore take unto you now seven bullocks and seven rams, and go +to my servant Job, and offer up for yourselves a burnt offering; and +my servant Job shall pray for you: for him will I accept: lest I deal +with you after your folly, in that ye have not spoken of me the thing +which is right, like my servant Job. + +42:9 So Eliphaz the Temanite and Bildad the Shuhite and Zophar the +Naamathite went, and did according as the LORD commanded them: the +LORD also accepted Job. + +42:10 And the LORD turned the captivity of Job, when he prayed for his +friends: also the LORD gave Job twice as much as he had before. + +42:11 Then came there unto him all his brethren, and all his sisters, +and all they that had been of his acquaintance before, and did eat +bread with him in his house: and they bemoaned him, and comforted him +over all the evil that the LORD had brought upon him: every man also +gave him a piece of money, and every one an earring of gold. + +42:12 So the LORD blessed the latter end of Job more than his +beginning: for he had fourteen thousand sheep, and six thousand +camels, and a thousand yoke of oxen, and a thousand she asses. + +42:13 He had also seven sons and three daughters. + +42:14 And he called the name of the first, Jemima; and the name of the +second, Kezia; and the name of the third, Kerenhappuch. + +42:15 And in all the land were no women found so fair as the daughters +of Job: and their father gave them inheritance among their brethren. + +42:16 After this lived Job an hundred and forty years, and saw his +sons, and his sons' sons, even four generations. + +42:17 So Job died, being old and full of days. + + + + +The Book of Psalms + + +1:1 Blessed is the man that walketh not in the counsel of the ungodly, +nor standeth in the way of sinners, nor sitteth in the seat of the +scornful. + +1:2 But his delight is in the law of the LORD; and in his law doth he +meditate day and night. + +1:3 And he shall be like a tree planted by the rivers of water, that +bringeth forth his fruit in his season; his leaf also shall not +wither; and whatsoever he doeth shall prosper. + +1:4 The ungodly are not so: but are like the chaff which the wind +driveth away. + +1:5 Therefore the ungodly shall not stand in the judgment, nor sinners +in the congregation of the righteous. + +1:6 For the LORD knoweth the way of the righteous: but the way of the +ungodly shall perish. + + + +2:1 Why do the heathen rage, and the people imagine a vain thing? + +2:2 The kings of the earth set themselves, and the rulers take counsel +together, against the LORD, and against his anointed, saying, + +2:3 Let us break their bands asunder, and cast away their cords from +us. + +2:4 He that sitteth in the heavens shall laugh: the LORD shall have +them in derision. + +2:5 Then shall he speak unto them in his wrath, and vex them in his +sore displeasure. + +2:6 Yet have I set my king upon my holy hill of Zion. + +2:7 I will declare the decree: the LORD hath said unto me, Thou art my +Son; this day have I begotten thee. + +2:8 Ask of me, and I shall give thee the heathen for thine +inheritance, and the uttermost parts of the earth for thy possession. + +2:9 Thou shalt break them with a rod of iron; thou shalt dash them in +pieces like a potter's vessel. + +2:10 Be wise now therefore, O ye kings: be instructed, ye judges of +the earth. + +2:11 Serve the LORD with fear, and rejoice with trembling. + +2:12 Kiss the Son, lest he be angry, and ye perish from the way, when +his wrath is kindled but a little. Blessed are all they that put their +trust in him. + + + +3:1 Lord, how are they increased that trouble me! many are they that +rise up against me. + +3:2 Many there be which say of my soul, There is no help for him in +God. + +Selah. + +3:3 But thou, O LORD, art a shield for me; my glory, and the lifter up +of mine head. + +3:4 I cried unto the LORD with my voice, and he heard me out of his +holy hill. Selah. + +3:5 I laid me down and slept; I awaked; for the LORD sustained me. + +3:6 I will not be afraid of ten thousands of people, that have set +themselves against me round about. + +3:7 Arise, O LORD; save me, O my God: for thou hast smitten all mine +enemies upon the cheek bone; thou hast broken the teeth of the +ungodly. + +3:8 Salvation belongeth unto the LORD: thy blessing is upon thy +people. + +Selah. + + + +4:1 Hear me when I call, O God of my righteousness: thou hast enlarged +me when I was in distress; have mercy upon me, and hear my prayer. + +4:2 O ye sons of men, how long will ye turn my glory into shame? how +long will ye love vanity, and seek after leasing? Selah. + +4:3 But know that the LORD hath set apart him that is godly for +himself: the LORD will hear when I call unto him. + +4:4 Stand in awe, and sin not: commune with your own heart upon your +bed, and be still. Selah. + +4:5 Offer the sacrifices of righteousness, and put your trust in the +LORD. + +4:6 There be many that say, Who will shew us any good? LORD, lift thou +up the light of thy countenance upon us. + +4:7 Thou hast put gladness in my heart, more than in the time that +their corn and their wine increased. + +4:8 I will both lay me down in peace, and sleep: for thou, LORD, only +makest me dwell in safety. + + + +5:1 Give ear to my words, O LORD, consider my meditation. + +5:2 Hearken unto the voice of my cry, my King, and my God: for unto +thee will I pray. + +5:3 My voice shalt thou hear in the morning, O LORD; in the morning +will I direct my prayer unto thee, and will look up. + +5:4 For thou art not a God that hath pleasure in wickedness: neither +shall evil dwell with thee. + +5:5 The foolish shall not stand in thy sight: thou hatest all workers +of iniquity. + +5:6 Thou shalt destroy them that speak leasing: the LORD will abhor +the bloody and deceitful man. + +5:7 But as for me, I will come into thy house in the multitude of thy +mercy: and in thy fear will I worship toward thy holy temple. + +5:8 Lead me, O LORD, in thy righteousness because of mine enemies; +make thy way straight before my face. + +5:9 For there is no faithfulness in their mouth; their inward part is +very wickedness; their throat is an open sepulchre; they flatter with +their tongue. + +5:10 Destroy thou them, O God; let them fall by their own counsels; +cast them out in the multitude of their transgressions; for they have +rebelled against thee. + +5:11 But let all those that put their trust in thee rejoice: let them +ever shout for joy, because thou defendest them: let them also that +love thy name be joyful in thee. + +5:12 For thou, LORD, wilt bless the righteous; with favour wilt thou +compass him as with a shield. + + + +6:1 O LORD, rebuke me not in thine anger, neither chasten me in thy +hot displeasure. + +6:2 Have mercy upon me, O LORD; for I am weak: O LORD, heal me; for my +bones are vexed. + +6:3 My soul is also sore vexed: but thou, O LORD, how long? + +6:4 Return, O LORD, deliver my soul: oh save me for thy mercies' sake. + +6:5 For in death there is no remembrance of thee: in the grave who +shall give thee thanks? + +6:6 I am weary with my groaning; all the night make I my bed to swim; +I water my couch with my tears. + +6:7 Mine eye is consumed because of grief; it waxeth old because of +all mine enemies. + +6:8 Depart from me, all ye workers of iniquity; for the LORD hath +heard the voice of my weeping. + +6:9 The LORD hath heard my supplication; the LORD will receive my +prayer. + +6:10 Let all mine enemies be ashamed and sore vexed: let them return +and be ashamed suddenly. + + + +7:1 O LORD my God, in thee do I put my trust: save me from all them +that persecute me, and deliver me: + +7:2 Lest he tear my soul like a lion, rending it in pieces, while +there is none to deliver. + +7:3 O LORD my God, If I have done this; if there be iniquity in my +hands; + +7:4 If I have rewarded evil unto him that was at peace with me; (yea, +I have delivered him that without cause is mine enemy:) + +7:5 Let the enemy persecute my soul, and take it; yea, let him tread +down my life upon the earth, and lay mine honour in the dust. Selah. + +7:6 Arise, O LORD, in thine anger, lift up thyself because of the rage +of mine enemies: and awake for me to the judgment that thou hast +commanded. + +7:7 So shall the congregation of the people compass thee about: for +their sakes therefore return thou on high. + +7:8 The LORD shall judge the people: judge me, O LORD, according to my +righteousness, and according to mine integrity that is in me. + +7:9 Oh let the wickedness of the wicked come to an end; but establish +the just: for the righteous God trieth the hearts and reins. + +7:10 My defence is of God, which saveth the upright in heart. + +7:11 God judgeth the righteous, and God is angry with the wicked every +day. + +7:12 If he turn not, he will whet his sword; he hath bent his bow, and +made it ready. + +7:13 He hath also prepared for him the instruments of death; he +ordaineth his arrows against the persecutors. + +7:14 Behold, he travaileth with iniquity, and hath conceived mischief, +and brought forth falsehood. + +7:15 He made a pit, and digged it, and is fallen into the ditch which +he made. + +7:16 His mischief shall return upon his own head, and his violent +dealing shall come down upon his own pate. + +7:17 I will praise the LORD according to his righteousness: and will +sing praise to the name of the LORD most high. + + + +8:1 O LORD, our Lord, how excellent is thy name in all the earth! who +hast set thy glory above the heavens. + +8:2 Out of the mouth of babes and sucklings hast thou ordained +strength because of thine enemies, that thou mightest still the enemy +and the avenger. + +8:3 When I consider thy heavens, the work of thy fingers, the moon and +the stars, which thou hast ordained; + +8:4 What is man, that thou art mindful of him? and the son of man, +that thou visitest him? + +8:5 For thou hast made him a little lower than the angels, and hast +crowned him with glory and honour. + +8:6 Thou madest him to have dominion over the works of thy hands; thou +hast put all things under his feet: + +8:7 All sheep and oxen, yea, and the beasts of the field; + +8:8 The fowl of the air, and the fish of the sea, and whatsoever +passeth through the paths of the seas. + +8:9 O LORD our Lord, how excellent is thy name in all the earth! + + + + + +9:1 I will praise thee, O LORD, with my whole heart; I will shew forth +all thy marvellous works. + +9:2 I will be glad and rejoice in thee: I will sing praise to thy +name, O thou most High. + +9:3 When mine enemies are turned back, they shall fall and perish at +thy presence. + +9:4 For thou hast maintained my right and my cause; thou satest in the +throne judging right. + +9:5 Thou hast rebuked the heathen, thou hast destroyed the wicked, +thou hast put out their name for ever and ever. + +9:6 O thou enemy, destructions are come to a perpetual end: and thou +hast destroyed cities; their memorial is perished with them. + +9:7 But the LORD shall endure for ever: he hath prepared his throne +for judgment. + +9:8 And he shall judge the world in righteousness, he shall minister +judgment to the people in uprightness. + +9:9 The LORD also will be a refuge for the oppressed, a refuge in +times of trouble. + +9:10 And they that know thy name will put their trust in thee: for +thou, LORD, hast not forsaken them that seek thee. + +9:11 Sing praises to the LORD, which dwelleth in Zion: declare among +the people his doings. + +9:12 When he maketh inquisition for blood, he remembereth them: he +forgetteth not the cry of the humble. + +9:13 Have mercy upon me, O LORD; consider my trouble which I suffer of +them that hate me, thou that liftest me up from the gates of death: + +9:14 That I may shew forth all thy praise in the gates of the daughter +of Zion: I will rejoice in thy salvation. + +9:15 The heathen are sunk down in the pit that they made: in the net +which they hid is their own foot taken. + +9:16 The LORD is known by the judgment which he executeth: the wicked +is snared in the work of his own hands. Higgaion. Selah. + +9:17 The wicked shall be turned into hell, and all the nations that +forget God. + +9:18 For the needy shall not alway be forgotten: the expectation of +the poor shall not perish for ever. + +9:19 Arise, O LORD; let not man prevail: let the heathen be judged in +thy sight. + +9:20 Put them in fear, O LORD: that the nations may know themselves to +be but men. Selah. + + + +10:1 Why standest thou afar off, O LORD? why hidest thou thyself in +times of trouble? + +10:2 The wicked in his pride doth persecute the poor: let them be +taken in the devices that they have imagined. + +10:3 For the wicked boasteth of his heart's desire, and blesseth the +covetous, whom the LORD abhorreth. + +10:4 The wicked, through the pride of his countenance, will not seek +after God: God is not in all his thoughts. + +10:5 His ways are always grievous; thy judgments are far above out of +his sight: as for all his enemies, he puffeth at them. + +10:6 He hath said in his heart, I shall not be moved: for I shall +never be in adversity. + +10:7 His mouth is full of cursing and deceit and fraud: under his +tongue is mischief and vanity. + +10:8 He sitteth in the lurking places of the villages: in the secret +places doth he murder the innocent: his eyes are privily set against +the poor. + +10:9 He lieth in wait secretly as a lion in his den: he lieth in wait +to catch the poor: he doth catch the poor, when he draweth him into +his net. + +10:10 He croucheth, and humbleth himself, that the poor may fall by +his strong ones. + +10:11 He hath said in his heart, God hath forgotten: he hideth his +face; he will never see it. + +10:12 Arise, O LORD; O God, lift up thine hand: forget not the humble. + +10:13 Wherefore doth the wicked contemn God? he hath said in his +heart, Thou wilt not require it. + +10:14 Thou hast seen it; for thou beholdest mischief and spite, to +requite it with thy hand: the poor committeth himself unto thee; thou +art the helper of the fatherless. + +10:15 Break thou the arm of the wicked and the evil man: seek out his +wickedness till thou find none. + +10:16 The LORD is King for ever and ever: the heathen are perished out +of his land. + +10:17 LORD, thou hast heard the desire of the humble: thou wilt +prepare their heart, thou wilt cause thine ear to hear: + +10:18 To judge the fatherless and the oppressed, that the man of the +earth may no more oppress. + + + +11:1 In the LORD put I my trust: how say ye to my soul, Flee as a bird +to your mountain? + +11:2 For, lo, the wicked bend their bow, they make ready their arrow +upon the string, that they may privily shoot at the upright in heart. + +11:3 If the foundations be destroyed, what can the righteous do? + +11:4 The LORD is in his holy temple, the LORD's throne is in heaven: +his eyes behold, his eyelids try, the children of men. + +11:5 The LORD trieth the righteous: but the wicked and him that loveth +violence his soul hateth. + +11:6 Upon the wicked he shall rain snares, fire and brimstone, and an +horrible tempest: this shall be the portion of their cup. + +11:7 For the righteous LORD loveth righteousness; his countenance doth +behold the upright. + + + +12:1 Help, LORD; for the godly man ceaseth; for the faithful fail from +among the children of men. + +12:2 They speak vanity every one with his neighbour: with flattering +lips and with a double heart do they speak. + +12:3 The LORD shall cut off all flattering lips, and the tongue that +speaketh proud things: + +12:4 Who have said, With our tongue will we prevail; our lips are our +own: who is lord over us? + +12:5 For the oppression of the poor, for the sighing of the needy, now +will I arise, saith the LORD; I will set him in safety from him that +puffeth at him. + +12:6 The words of the LORD are pure words: as silver tried in a +furnace of earth, purified seven times. + +12:7 Thou shalt keep them, O LORD, thou shalt preserve them from this +generation for ever. + +12:8 The wicked walk on every side, when the vilest men are exalted. + + + +13:1 How long wilt thou forget me, O LORD? for ever? how long wilt +thou hide thy face from me? + +13:2 How long shall I take counsel in my soul, having sorrow in my +heart daily? how long shall mine enemy be exalted over me? + +13:3 Consider and hear me, O LORD my God: lighten mine eyes, lest I +sleep the sleep of death; + +13:4 Lest mine enemy say, I have prevailed against him; and those that +trouble me rejoice when I am moved. + +13:5 But I have trusted in thy mercy; my heart shall rejoice in thy +salvation. + +13:6 I will sing unto the LORD, because he hath dealt bountifully with +me. + + + +14:1 The fool hath said in his heart, There is no God. They are +corrupt, they have done abominable works, there is none that doeth +good. + +14:2 The LORD looked down from heaven upon the children of men, to see +if there were any that did understand, and seek God. + +14:3 They are all gone aside, they are all together become filthy: +there is none that doeth good, no, not one. + +14:4 Have all the workers of iniquity no knowledge? who eat up my +people as they eat bread, and call not upon the LORD. + +14:5 There were they in great fear: for God is in the generation of +the righteous. + +14:6 Ye have shamed the counsel of the poor, because the LORD is his +refuge. + +14:7 Oh that the salvation of Israel were come out of Zion! when the +LORD bringeth back the captivity of his people, Jacob shall rejoice, +and Israel shall be glad. + + + +15:1 Lord, who shall abide in thy tabernacle? who shall dwell in thy +holy hill? + +15:2 He that walketh uprightly, and worketh righteousness, and +speaketh the truth in his heart. + +15:3 He that backbiteth not with his tongue, nor doeth evil to his +neighbour, nor taketh up a reproach against his neighbour. + +15:4 In whose eyes a vile person is contemned; but he honoureth them +that fear the LORD. He that sweareth to his own hurt, and changeth +not. + +15:5 He that putteth not out his money to usury, nor taketh reward +against the innocent. He that doeth these things shall never be moved. + + + +16:1 Preserve me, O God: for in thee do I put my trust. + +16:2 O my soul, thou hast said unto the LORD, Thou art my Lord: my +goodness extendeth not to thee; + +16:3 But to the saints that are in the earth, and to the excellent, in +whom is all my delight. + +16:4 Their sorrows shall be multiplied that hasten after another god: +their drink offerings of blood will I not offer, nor take up their +names into my lips. + +16:5 The LORD is the portion of mine inheritance and of my cup: thou +maintainest my lot. + +16:6 The lines are fallen unto me in pleasant places; yea, I have a +goodly heritage. + +16:7 I will bless the LORD, who hath given me counsel: my reins also +instruct me in the night seasons. + +16:8 I have set the LORD always before me: because he is at my right +hand, I shall not be moved. + +16:9 Therefore my heart is glad, and my glory rejoiceth: my flesh also +shall rest in hope. + +16:10 For thou wilt not leave my soul in hell; neither wilt thou +suffer thine Holy One to see corruption. + +16:11 Thou wilt shew me the path of life: in thy presence is fulness +of joy; at thy right hand there are pleasures for evermore. + + + +17:1 Hear the right, O LORD, attend unto my cry, give ear unto my +prayer, that goeth not out of feigned lips. + +17:2 Let my sentence come forth from thy presence; let thine eyes +behold the things that are equal. + +17:3 Thou hast proved mine heart; thou hast visited me in the night; +thou hast tried me, and shalt find nothing; I am purposed that my +mouth shall not transgress. + +17:4 Concerning the works of men, by the word of thy lips I have kept +me from the paths of the destroyer. + +17:5 Hold up my goings in thy paths, that my footsteps slip not. + +17:6 I have called upon thee, for thou wilt hear me, O God: incline +thine ear unto me, and hear my speech. + +17:7 Shew thy marvellous lovingkindness, O thou that savest by thy +right hand them which put their trust in thee from those that rise up +against them. + +17:8 Keep me as the apple of the eye, hide me under the shadow of thy +wings, + +17:9 From the wicked that oppress me, from my deadly enemies, who +compass me about. + +17:10 They are inclosed in their own fat: with their mouth they speak +proudly. + +17:11 They have now compassed us in our steps: they have set their +eyes bowing down to the earth; + +17:12 Like as a lion that is greedy of his prey, and as it were a +young lion lurking in secret places. + +17:13 Arise, O LORD, disappoint him, cast him down: deliver my soul +from the wicked, which is thy sword: + +17:14 From men which are thy hand, O LORD, from men of the world, +which have their portion in this life, and whose belly thou fillest +with thy hid treasure: they are full of children, and leave the rest +of their substance to their babes. + +17:15 As for me, I will behold thy face in righteousness: I shall be +satisfied, when I awake, with thy likeness. + + + +18:1 I will love thee, O LORD, my strength. + +18:2 The LORD is my rock, and my fortress, and my deliverer; my God, +my strength, in whom I will trust; my buckler, and the horn of my +salvation, and my high tower. + +18:3 I will call upon the LORD, who is worthy to be praised: so shall +I be saved from mine enemies. + +18:4 The sorrows of death compassed me, and the floods of ungodly men +made me afraid. + +18:5 The sorrows of hell compassed me about: the snares of death +prevented me. + +18:6 In my distress I called upon the LORD, and cried unto my God: he +heard my voice out of his temple, and my cry came before him, even +into his ears. + +18:7 Then the earth shook and trembled; the foundations also of the +hills moved and were shaken, because he was wroth. + +18:8 There went up a smoke out of his nostrils, and fire out of his +mouth devoured: coals were kindled by it. + +18:9 He bowed the heavens also, and came down: and darkness was under +his feet. + +18:10 And he rode upon a cherub, and did fly: yea, he did fly upon the +wings of the wind. + +18:11 He made darkness his secret place; his pavilion round about him +were dark waters and thick clouds of the skies. + +18:12 At the brightness that was before him his thick clouds passed, +hail stones and coals of fire. + +18:13 The LORD also thundered in the heavens, and the Highest gave his +voice; hail stones and coals of fire. + +18:14 Yea, he sent out his arrows, and scattered them; and he shot out +lightnings, and discomfited them. + +18:15 Then the channels of waters were seen, and the foundations of +the world were discovered at thy rebuke, O LORD, at the blast of the +breath of thy nostrils. + +18:16 He sent from above, he took me, he drew me out of many waters. + +18:17 He delivered me from my strong enemy, and from them which hated +me: for they were too strong for me. + +18:18 They prevented me in the day of my calamity: but the LORD was my +stay. + +18:19 He brought me forth also into a large place; he delivered me, +because he delighted in me. + +18:20 The LORD rewarded me according to my righteousness; according to +the cleanness of my hands hath he recompensed me. + +18:21 For I have kept the ways of the LORD, and have not wickedly +departed from my God. + +18:22 For all his judgments were before me, and I did not put away his +statutes from me. + +18:23 I was also upright before him, and I kept myself from mine +iniquity. + +18:24 Therefore hath the LORD recompensed me according to my +righteousness, according to the cleanness of my hands in his eyesight. + +18:25 With the merciful thou wilt shew thyself merciful; with an +upright man thou wilt shew thyself upright; + +18:26 With the pure thou wilt shew thyself pure; and with the froward +thou wilt shew thyself froward. + +18:27 For thou wilt save the afflicted people; but wilt bring down +high looks. + +18:28 For thou wilt light my candle: the LORD my God will enlighten my +darkness. + +18:29 For by thee I have run through a troop; and by my God have I +leaped over a wall. + +18:30 As for God, his way is perfect: the word of the LORD is tried: +he is a buckler to all those that trust in him. + +18:31 For who is God save the LORD? or who is a rock save our God? + +18:32 It is God that girdeth me with strength, and maketh my way +perfect. + +18:33 He maketh my feet like hinds' feet, and setteth me upon my high +places. + +18:34 He teacheth my hands to war, so that a bow of steel is broken by +mine arms. + +18:35 Thou hast also given me the shield of thy salvation: and thy +right hand hath holden me up, and thy gentleness hath made me great. + +18:36 Thou hast enlarged my steps under me, that my feet did not slip. + +18:37 I have pursued mine enemies, and overtaken them: neither did I +turn again till they were consumed. + +18:38 I have wounded them that they were not able to rise: they are +fallen under my feet. + +18:39 For thou hast girded me with strength unto the battle: thou hast +subdued under me those that rose up against me. + +18:40 Thou hast also given me the necks of mine enemies; that I might +destroy them that hate me. + +18:41 They cried, but there was none to save them: even unto the LORD, +but he answered them not. + +18:42 Then did I beat them small as the dust before the wind: I did +cast them out as the dirt in the streets. + +18:43 Thou hast delivered me from the strivings of the people; and +thou hast made me the head of the heathen: a people whom I have not +known shall serve me. + +18:44 As soon as they hear of me, they shall obey me: the strangers +shall submit themselves unto me. + +18:45 The strangers shall fade away, and be afraid out of their close +places. + +18:46 The LORD liveth; and blessed be my rock; and let the God of my +salvation be exalted. + +18:47 It is God that avengeth me, and subdueth the people under me. + +18:48 He delivereth me from mine enemies: yea, thou liftest me up +above those that rise up against me: thou hast delivered me from the +violent man. + +18:49 Therefore will I give thanks unto thee, O LORD, among the +heathen, and sing praises unto thy name. + +18:50 Great deliverance giveth he to his king; and sheweth mercy to +his anointed, to David, and to his seed for evermore. + + + +19:1 The heavens declare the glory of God; and the firmament sheweth +his handywork. + +19:2 Day unto day uttereth speech, and night unto night sheweth +knowledge. + +19:3 There is no speech nor language, where their voice is not heard. + +19:4 Their line is gone out through all the earth, and their words to +the end of the world. In them hath he set a tabernacle for the sun, + +19:5 Which is as a bridegroom coming out of his chamber, and rejoiceth +as a strong man to run a race. + +19:6 His going forth is from the end of the heaven, and his circuit +unto the ends of it: and there is nothing hid from the heat thereof. + +19:7 The law of the LORD is perfect, converting the soul: the +testimony of the LORD is sure, making wise the simple. + +19:8 The statutes of the LORD are right, rejoicing the heart: the +commandment of the LORD is pure, enlightening the eyes. + +19:9 The fear of the LORD is clean, enduring for ever: the judgments +of the LORD are true and righteous altogether. + +19:10 More to be desired are they than gold, yea, than much fine gold: +sweeter also than honey and the honeycomb. + +19:11 Moreover by them is thy servant warned: and in keeping of them +there is great reward. + +19:12 Who can understand his errors? cleanse thou me from secret +faults. + +19:13 Keep back thy servant also from presumptuous sins; let them not +have dominion over me: then shall I be upright, and I shall be +innocent from the great transgression. + +19:14 Let the words of my mouth, and the meditation of my heart, be +acceptable in thy sight, O LORD, my strength, and my redeemer. + + + +20:1 The LORD hear thee in the day of trouble; the name of the God of +Jacob defend thee; + +20:2 Send thee help from the sanctuary, and strengthen thee out of +Zion; + +20:3 Remember all thy offerings, and accept thy burnt sacrifice; +Selah. + +20:4 Grant thee according to thine own heart, and fulfil all thy +counsel. + +20:5 We will rejoice in thy salvation, and in the name of our God we +will set up our banners: the LORD fulfil all thy petitions. + +20:6 Now know I that the LORD saveth his anointed; he will hear him +from his holy heaven with the saving strength of his right hand. + +20:7 Some trust in chariots, and some in horses: but we will remember +the name of the LORD our God. + +20:8 They are brought down and fallen: but we are risen, and stand +upright. + +20:9 Save, LORD: let the king hear us when we call. + + + +21:1 The king shall joy in thy strength, O LORD; and in thy salvation +how greatly shall he rejoice! + +21:2 Thou hast given him his heart's desire, and hast not withholden +the request of his lips. Selah. + +21:3 For thou preventest him with the blessings of goodness: thou +settest a crown of pure gold on his head. + +21:4 He asked life of thee, and thou gavest it him, even length of +days for ever and ever. + +21:5 His glory is great in thy salvation: honour and majesty hast thou +laid upon him. + +21:6 For thou hast made him most blessed for ever: thou hast made him +exceeding glad with thy countenance. + +21:7 For the king trusteth in the LORD, and through the mercy of the +most High he shall not be moved. + +21:8 Thine hand shall find out all thine enemies: thy right hand shall +find out those that hate thee. + +21:9 Thou shalt make them as a fiery oven in the time of thine anger: +the LORD shall swallow them up in his wrath, and the fire shall devour +them. + +21:10 Their fruit shalt thou destroy from the earth, and their seed +from among the children of men. + +21:11 For they intended evil against thee: they imagined a mischievous +device, which they are not able to perform. + +21:12 Therefore shalt thou make them turn their back, when thou shalt +make ready thine arrows upon thy strings against the face of them. + +21:13 Be thou exalted, LORD, in thine own strength: so will we sing +and praise thy power. + + + +22:1 My God, my God, why hast thou forsaken me? why art thou so far +from helping me, and from the words of my roaring? + +22:2 O my God, I cry in the day time, but thou hearest not; and in the +night season, and am not silent. + +22:3 But thou art holy, O thou that inhabitest the praises of Israel. + +22:4 Our fathers trusted in thee: they trusted, and thou didst deliver +them. + +22:5 They cried unto thee, and were delivered: they trusted in thee, +and were not confounded. + +22:6 But I am a worm, and no man; a reproach of men, and despised of +the people. + +22:7 All they that see me laugh me to scorn: they shoot out the lip, +they shake the head, saying, + +22:8 He trusted on the LORD that he would deliver him: let him deliver +him, seeing he delighted in him. + +22:9 But thou art he that took me out of the womb: thou didst make me +hope when I was upon my mother's breasts. + +22:10 I was cast upon thee from the womb: thou art my God from my +mother's belly. + +22:11 Be not far from me; for trouble is near; for there is none to +help. + +22:12 Many bulls have compassed me: strong bulls of Bashan have beset +me round. + +22:13 They gaped upon me with their mouths, as a ravening and a +roaring lion. + +22:14 I am poured out like water, and all my bones are out of joint: +my heart is like wax; it is melted in the midst of my bowels. + +22:15 My strength is dried up like a potsherd; and my tongue cleaveth +to my jaws; and thou hast brought me into the dust of death. + +22:16 For dogs have compassed me: the assembly of the wicked have +inclosed me: they pierced my hands and my feet. + +22:17 I may tell all my bones: they look and stare upon me. + +22:18 They part my garments among them, and cast lots upon my vesture. + +22:19 But be not thou far from me, O LORD: O my strength, haste thee +to help me. + +22:20 Deliver my soul from the sword; my darling from the power of the +dog. + +22:21 Save me from the lion's mouth: for thou hast heard me from the +horns of the unicorns. + +22:22 I will declare thy name unto my brethren: in the midst of the +congregation will I praise thee. + +22:23 Ye that fear the LORD, praise him; all ye the seed of Jacob, +glorify him; and fear him, all ye the seed of Israel. + +22:24 For he hath not despised nor abhorred the affliction of the +afflicted; neither hath he hid his face from him; but when he cried +unto him, he heard. + +22:25 My praise shall be of thee in the great congregation: I will pay +my vows before them that fear him. + +22:26 The meek shall eat and be satisfied: they shall praise the LORD +that seek him: your heart shall live for ever. + +22:27 All the ends of the world shall remember and turn unto the LORD: +and all the kindreds of the nations shall worship before thee. + +22:28 For the kingdom is the LORD's: and he is the governor among the +nations. + +22:29 All they that be fat upon earth shall eat and worship: all they +that go down to the dust shall bow before him: and none can keep alive +his own soul. + +22:30 A seed shall serve him; it shall be accounted to the Lord for a +generation. + +22:31 They shall come, and shall declare his righteousness unto a +people that shall be born, that he hath done this. + + + +23:1 The LORD is my shepherd; I shall not want. + +23:2 He maketh me to lie down in green pastures: he leadeth me beside +the still waters. + +23:3 He restoreth my soul: he leadeth me in the paths of righteousness +for his name's sake. + +23:4 Yea, though I walk through the valley of the shadow of death, I +will fear no evil: for thou art with me; thy rod and thy staff they +comfort me. + +23:5 Thou preparest a table before me in the presence of mine enemies: +thou anointest my head with oil; my cup runneth over. + +23:6 Surely goodness and mercy shall follow me all the days of my +life: and I will dwell in the house of the LORD for ever. + + + +24:1 The earth is the LORD's, and the fulness thereof; the world, and +they that dwell therein. + +24:2 For he hath founded it upon the seas, and established it upon the +floods. + +24:3 Who shall ascend into the hill of the LORD? or who shall stand in +his holy place? + +24:4 He that hath clean hands, and a pure heart; who hath not lifted +up his soul unto vanity, nor sworn deceitfully. + +24:5 He shall receive the blessing from the LORD, and righteousness +from the God of his salvation. + +24:6 This is the generation of them that seek him, that seek thy face, +O Jacob. Selah. + +24:7 Lift up your heads, O ye gates; and be ye lift up, ye everlasting +doors; and the King of glory shall come in. + +24:8 Who is this King of glory? The LORD strong and mighty, the LORD +mighty in battle. + +24:9 Lift up your heads, O ye gates; even lift them up, ye everlasting +doors; and the King of glory shall come in. + +24:10 Who is this King of glory? The LORD of hosts, he is the King of +glory. Selah. + + + +25:1 Unto thee, O LORD, do I lift up my soul. + +25:2 O my God, I trust in thee: let me not be ashamed, let not mine +enemies triumph over me. + +25:3 Yea, let none that wait on thee be ashamed: let them be ashamed +which transgress without cause. + +25:4 Shew me thy ways, O LORD; teach me thy paths. + +25:5 Lead me in thy truth, and teach me: for thou art the God of my +salvation; on thee do I wait all the day. + +25:6 Remember, O LORD, thy tender mercies and thy lovingkindnesses; +for they have been ever of old. + +25:7 Remember not the sins of my youth, nor my transgressions: +according to thy mercy remember thou me for thy goodness' sake, O +LORD. + +25:8 Good and upright is the LORD: therefore will he teach sinners in +the way. + +25:9 The meek will he guide in judgment: and the meek will he teach +his way. + +25:10 All the paths of the LORD are mercy and truth unto such as keep +his covenant and his testimonies. + +25:11 For thy name's sake, O LORD, pardon mine iniquity; for it is +great. + +25:12 What man is he that feareth the LORD? him shall he teach in the +way that he shall choose. + +25:13 His soul shall dwell at ease; and his seed shall inherit the +earth. + +25:14 The secret of the LORD is with them that fear him; and he will +shew them his covenant. + +25:15 Mine eyes are ever toward the LORD; for he shall pluck my feet +out of the net. + +25:16 Turn thee unto me, and have mercy upon me; for I am desolate and +afflicted. + +25:17 The troubles of my heart are enlarged: O bring thou me out of my +distresses. + +25:18 Look upon mine affliction and my pain; and forgive all my sins. + +25:19 Consider mine enemies; for they are many; and they hate me with +cruel hatred. + +25:20 O keep my soul, and deliver me: let me not be ashamed; for I put +my trust in thee. + +25:21 Let integrity and uprightness preserve me; for I wait on thee. + +25:22 Redeem Israel, O God, out of all his troubles. + + + +26:1 Judge me, O LORD; for I have walked in mine integrity: I have +trusted also in the LORD; therefore I shall not slide. + +26:2 Examine me, O LORD, and prove me; try my reins and my heart. + +26:3 For thy lovingkindness is before mine eyes: and I have walked in +thy truth. + +26:4 I have not sat with vain persons, neither will I go in with +dissemblers. + +26:5 I have hated the congregation of evil doers; and will not sit +with the wicked. + +26:6 I will wash mine hands in innocency: so will I compass thine +altar, O LORD: + +26:7 That I may publish with the voice of thanksgiving, and tell of +all thy wondrous works. + +26:8 LORD, I have loved the habitation of thy house, and the place +where thine honour dwelleth. + +26:9 Gather not my soul with sinners, nor my life with bloody men: + +26:10 In whose hands is mischief, and their right hand is full of +bribes. + +26:11 But as for me, I will walk in mine integrity: redeem me, and be +merciful unto me. + +26:12 My foot standeth in an even place: in the congregations will I +bless the LORD. + + + +27:1 The LORD is my light and my salvation; whom shall I fear? the +LORD is the strength of my life; of whom shall I be afraid? + +27:2 When the wicked, even mine enemies and my foes, came upon me to +eat up my flesh, they stumbled and fell. + +27:3 Though an host should encamp against me, my heart shall not fear: +though war should rise against me, in this will I be confident. + +27:4 One thing have I desired of the LORD, that will I seek after; +that I may dwell in the house of the LORD all the days of my life, to +behold the beauty of the LORD, and to enquire in his temple. + +27:5 For in the time of trouble he shall hide me in his pavilion: in +the secret of his tabernacle shall he hide me; he shall set me up upon +a rock. + +27:6 And now shall mine head be lifted up above mine enemies round +about me: therefore will I offer in his tabernacle sacrifices of joy; +I will sing, yea, I will sing praises unto the LORD. + +27:7 Hear, O LORD, when I cry with my voice: have mercy also upon me, +and answer me. + +27:8 When thou saidst, Seek ye my face; my heart said unto thee, Thy +face, LORD, will I seek. + +27:9 Hide not thy face far from me; put not thy servant away in anger: +thou hast been my help; leave me not, neither forsake me, O God of my +salvation. + +27:10 When my father and my mother forsake me, then the LORD will take +me up. + +27:11 Teach me thy way, O LORD, and lead me in a plain path, because +of mine enemies. + +27:12 Deliver me not over unto the will of mine enemies: for false +witnesses are risen up against me, and such as breathe out cruelty. + +27:13 I had fainted, unless I had believed to see the goodness of the +LORD in the land of the living. + +27:14 Wait on the LORD: be of good courage, and he shall strengthen +thine heart: wait, I say, on the LORD. + + + +28:1 Unto thee will I cry, O LORD my rock; be not silent to me: lest, +if thou be silent to me, I become like them that go down into the pit. + +28:2 Hear the voice of my supplications, when I cry unto thee, when I +lift up my hands toward thy holy oracle. + +28:3 Draw me not away with the wicked, and with the workers of +iniquity, which speak peace to their neighbours, but mischief is in +their hearts. + +28:4 Give them according to their deeds, and according to the +wickedness of their endeavours: give them after the work of their +hands; render to them their desert. + +28:5 Because they regard not the works of the LORD, nor the operation +of his hands, he shall destroy them, and not build them up. + +28:6 Blessed be the LORD, because he hath heard the voice of my +supplications. + +28:7 The LORD is my strength and my shield; my heart trusted in him, +and I am helped: therefore my heart greatly rejoiceth; and with my +song will I praise him. + +28:8 The LORD is their strength, and he is the saving strength of his +anointed. + +28:9 Save thy people, and bless thine inheritance: feed them also, and +lift them up for ever. + + + +29:1 Give unto the LORD, O ye mighty, give unto the LORD glory and +strength. + +29:2 Give unto the LORD the glory due unto his name; worship the LORD +in the beauty of holiness. + +29:3 The voice of the LORD is upon the waters: the God of glory +thundereth: the LORD is upon many waters. + +29:4 The voice of the LORD is powerful; the voice of the LORD is full +of majesty. + +29:5 The voice of the LORD breaketh the cedars; yea, the LORD breaketh +the cedars of Lebanon. + +29:6 He maketh them also to skip like a calf; Lebanon and Sirion like +a young unicorn. + +29:7 The voice of the LORD divideth the flames of fire. + +29:8 The voice of the LORD shaketh the wilderness; the LORD shaketh +the wilderness of Kadesh. + +29:9 The voice of the LORD maketh the hinds to calve, and discovereth +the forests: and in his temple doth every one speak of his glory. + +29:10 The LORD sitteth upon the flood; yea, the LORD sitteth King for +ever. + +29:11 The LORD will give strength unto his people; the LORD will bless +his people with peace. + + + +30:1 I will extol thee, O LORD; for thou hast lifted me up, and hast +not made my foes to rejoice over me. + +30:2 O LORD my God, I cried unto thee, and thou hast healed me. + +30:3 O LORD, thou hast brought up my soul from the grave: thou hast +kept me alive, that I should not go down to the pit. + +30:4 Sing unto the LORD, O ye saints of his, and give thanks at the +remembrance of his holiness. + +30:5 For his anger endureth but a moment; in his favour is life: +weeping may endure for a night, but joy cometh in the morning. + +30:6 And in my prosperity I said, I shall never be moved. + +30:7 LORD, by thy favour thou hast made my mountain to stand strong: +thou didst hide thy face, and I was troubled. + +30:8 I cried to thee, O LORD; and unto the LORD I made supplication. + +30:9 What profit is there in my blood, when I go down to the pit? +Shall the dust praise thee? shall it declare thy truth? + +30:10 Hear, O LORD, and have mercy upon me: LORD, be thou my helper. + +30:11 Thou hast turned for me my mourning into dancing: thou hast put +off my sackcloth, and girded me with gladness; + +30:12 To the end that my glory may sing praise to thee, and not be +silent. + +O LORD my God, I will give thanks unto thee for ever. + + + +31:1 In thee, O LORD, do I put my trust; let me never be ashamed: +deliver me in thy righteousness. + +31:2 Bow down thine ear to me; deliver me speedily: be thou my strong +rock, for an house of defence to save me. + +31:3 For thou art my rock and my fortress; therefore for thy name's +sake lead me, and guide me. + +31:4 Pull me out of the net that they have laid privily for me: for +thou art my strength. + +31:5 Into thine hand I commit my spirit: thou hast redeemed me, O LORD +God of truth. + +31:6 I have hated them that regard lying vanities: but I trust in the +LORD. + +31:7 I will be glad and rejoice in thy mercy: for thou hast considered +my trouble; thou hast known my soul in adversities; + +31:8 And hast not shut me up into the hand of the enemy: thou hast set +my feet in a large room. + +31:9 Have mercy upon me, O LORD, for I am in trouble: mine eye is +consumed with grief, yea, my soul and my belly. + +31:10 For my life is spent with grief, and my years with sighing: my +strength faileth because of mine iniquity, and my bones are consumed. + +31:11 I was a reproach among all mine enemies, but especially among my +neighbours, and a fear to mine acquaintance: they that did see me +without fled from me. + +31:12 I am forgotten as a dead man out of mind: I am like a broken +vessel. + +31:13 For I have heard the slander of many: fear was on every side: +while they took counsel together against me, they devised to take away +my life. + +31:14 But I trusted in thee, O LORD: I said, Thou art my God. + +31:15 My times are in thy hand: deliver me from the hand of mine +enemies, and from them that persecute me. + +31:16 Make thy face to shine upon thy servant: save me for thy +mercies' sake. + +31:17 Let me not be ashamed, O LORD; for I have called upon thee: let +the wicked be ashamed, and let them be silent in the grave. + +31:18 Let the lying lips be put to silence; which speak grievous +things proudly and contemptuously against the righteous. + +31:19 Oh how great is thy goodness, which thou hast laid up for them +that fear thee; which thou hast wrought for them that trust in thee +before the sons of men! + +31:20 Thou shalt hide them in the secret of thy presence from the +pride of man: thou shalt keep them secretly in a pavilion from the +strife of tongues. + +31:21 Blessed be the LORD: for he hath shewed me his marvellous +kindness in a strong city. + +31:22 For I said in my haste, I am cut off from before thine eyes: +nevertheless thou heardest the voice of my supplications when I cried +unto thee. + +31:23 O love the LORD, all ye his saints: for the LORD preserveth the +faithful, and plentifully rewardeth the proud doer. + +31:24 Be of good courage, and he shall strengthen your heart, all ye +that hope in the LORD. + + + +32:1 Blessed is he whose transgression is forgiven, whose sin is +covered. + +32:2 Blessed is the man unto whom the LORD imputeth not iniquity, and +in whose spirit there is no guile. + +32:3 When I kept silence, my bones waxed old through my roaring all +the day long. + +32:4 For day and night thy hand was heavy upon me: my moisture is +turned into the drought of summer. Selah. + +32:5 I acknowledge my sin unto thee, and mine iniquity have I not hid. +I said, I will confess my transgressions unto the LORD; and thou +forgavest the iniquity of my sin. Selah. + +32:6 For this shall every one that is godly pray unto thee in a time +when thou mayest be found: surely in the floods of great waters they +shall not come nigh unto him. + +32:7 Thou art my hiding place; thou shalt preserve me from trouble; +thou shalt compass me about with songs of deliverance. Selah. + +32:8 I will instruct thee and teach thee in the way which thou shalt +go: I will guide thee with mine eye. + +32:9 Be ye not as the horse, or as the mule, which have no +understanding: whose mouth must be held in with bit and bridle, lest +they come near unto thee. + +32:10 Many sorrows shall be to the wicked: but he that trusteth in the +LORD, mercy shall compass him about. + +32:11 Be glad in the LORD, and rejoice, ye righteous: and shout for +joy, all ye that are upright in heart. + + + +33:1 Rejoice in the LORD, O ye righteous: for praise is comely for the +upright. + +33:2 Praise the LORD with harp: sing unto him with the psaltery and an +instrument of ten strings. + +33:3 Sing unto him a new song; play skilfully with a loud noise. + +33:4 For the word of the LORD is right; and all his works are done in +truth. + +33:5 He loveth righteousness and judgment: the earth is full of the +goodness of the LORD. + +33:6 By the word of the LORD were the heavens made; and all the host +of them by the breath of his mouth. + +33:7 He gathereth the waters of the sea together as an heap: he layeth +up the depth in storehouses. + +33:8 Let all the earth fear the LORD: let all the inhabitants of the +world stand in awe of him. + +33:9 For he spake, and it was done; he commanded, and it stood fast. + +33:10 The LORD bringeth the counsel of the heathen to nought: he +maketh the devices of the people of none effect. + +33:11 The counsel of the LORD standeth for ever, the thoughts of his +heart to all generations. + +33:12 Blessed is the nation whose God is the LORD; and the people whom +he hath chosen for his own inheritance. + +33:13 The LORD looketh from heaven; he beholdeth all the sons of men. + +33:14 From the place of his habitation he looketh upon all the +inhabitants of the earth. + +33:15 He fashioneth their hearts alike; he considereth all their +works. + +33:16 There is no king saved by the multitude of an host: a mighty man +is not delivered by much strength. + +33:17 An horse is a vain thing for safety: neither shall he deliver +any by his great strength. + +33:18 Behold, the eye of the LORD is upon them that fear him, upon +them that hope in his mercy; + +33:19 To deliver their soul from death, and to keep them alive in +famine. + +33:20 Our soul waiteth for the LORD: he is our help and our shield. + +33:21 For our heart shall rejoice in him, because we have trusted in +his holy name. + +33:22 Let thy mercy, O LORD, be upon us, according as we hope in thee. + + + +34:1 I will bless the LORD at all times: his praise shall continually +be in my mouth. + +34:2 My soul shall make her boast in the LORD: the humble shall hear +thereof, and be glad. + +34:3 O magnify the LORD with me, and let us exalt his name together. + +34:4 I sought the LORD, and he heard me, and delivered me from all my +fears. + +34:5 They looked unto him, and were lightened: and their faces were +not ashamed. + +34:6 This poor man cried, and the LORD heard him, and saved him out of +all his troubles. + +34:7 The angel of the LORD encampeth round about them that fear him, +and delivereth them. + +34:8 O taste and see that the LORD is good: blessed is the man that +trusteth in him. + +34:9 O fear the LORD, ye his saints: for there is no want to them that +fear him. + +34:10 The young lions do lack, and suffer hunger: but they that seek +the LORD shall not want any good thing. + +34:11 Come, ye children, hearken unto me: I will teach you the fear of +the LORD. + +34:12 What man is he that desireth life, and loveth many days, that he +may see good? + +34:13 Keep thy tongue from evil, and thy lips from speaking guile. + +34:14 Depart from evil, and do good; seek peace, and pursue it. + +34:15 The eyes of the LORD are upon the righteous, and his ears are +open unto their cry. + +34:16 The face of the LORD is against them that do evil, to cut off +the remembrance of them from the earth. + +34:17 The righteous cry, and the LORD heareth, and delivereth them out +of all their troubles. + +34:18 The LORD is nigh unto them that are of a broken heart; and +saveth such as be of a contrite spirit. + +34:19 Many are the afflictions of the righteous: but the LORD +delivereth him out of them all. + +34:20 He keepeth all his bones: not one of them is broken. + +34:21 Evil shall slay the wicked: and they that hate the righteous +shall be desolate. + +34:22 The LORD redeemeth the soul of his servants: and none of them +that trust in him shall be desolate. + + + +35:1 Plead my cause, O LORD, with them that strive with me: fight +against them that fight against me. + +35:2 Take hold of shield and buckler, and stand up for mine help. + +35:3 Draw out also the spear, and stop the way against them that +persecute me: say unto my soul, I am thy salvation. + +35:4 Let them be confounded and put to shame that seek after my soul: +let them be turned back and brought to confusion that devise my hurt. + +35:5 Let them be as chaff before the wind: and let the angel of the +LORD chase them. + +35:6 Let their way be dark and slippery: and let the angel of the LORD +persecute them. + +35:7 For without cause have they hid for me their net in a pit, which +without cause they have digged for my soul. + +35:8 Let destruction come upon him at unawares; and let his net that +he hath hid catch himself: into that very destruction let him fall. + +35:9 And my soul shall be joyful in the LORD: it shall rejoice in his +salvation. + +35:10 All my bones shall say, LORD, who is like unto thee, which +deliverest the poor from him that is too strong for him, yea, the poor +and the needy from him that spoileth him? + +35:11 False witnesses did rise up; they laid to my charge things that +I knew not. + +35:12 They rewarded me evil for good to the spoiling of my soul. + +35:13 But as for me, when they were sick, my clothing was sackcloth: I +humbled my soul with fasting; and my prayer returned into mine own +bosom. + +35:14 I behaved myself as though he had been my friend or brother: I +bowed down heavily, as one that mourneth for his mother. + +35:15 But in mine adversity they rejoiced, and gathered themselves +together: yea, the abjects gathered themselves together against me, +and I knew it not; they did tear me, and ceased not: + +35:16 With hypocritical mockers in feasts, they gnashed upon me with +their teeth. + +35:17 Lord, how long wilt thou look on? rescue my soul from their +destructions, my darling from the lions. + +35:18 I will give thee thanks in the great congregation: I will praise +thee among much people. + +35:19 Let not them that are mine enemies wrongfully rejoice over me: +neither let them wink with the eye that hate me without a cause. + +35:20 For they speak not peace: but they devise deceitful matters +against them that are quiet in the land. + +35:21 Yea, they opened their mouth wide against me, and said, Aha, +aha, our eye hath seen it. + +35:22 This thou hast seen, O LORD: keep not silence: O Lord, be not +far from me. + +35:23 Stir up thyself, and awake to my judgment, even unto my cause, +my God and my Lord. + +35:24 Judge me, O LORD my God, according to thy righteousness; and let +them not rejoice over me. + +35:25 Let them not say in their hearts, Ah, so would we have it: let +them not say, We have swallowed him up. + +35:26 Let them be ashamed and brought to confusion together that +rejoice at mine hurt: let them be clothed with shame and dishonour +that magnify themselves against me. + +35:27 Let them shout for joy, and be glad, that favour my righteous +cause: yea, let them say continually, Let the LORD be magnified, which +hath pleasure in the prosperity of his servant. + +35:28 And my tongue shall speak of thy righteousness and of thy praise +all the day long. + + + +36:1 The transgression of the wicked saith within my heart, that there +is no fear of God before his eyes. + +36:2 For he flattereth himself in his own eyes, until his iniquity be +found to be hateful. + +36:3 The words of his mouth are iniquity and deceit: he hath left off +to be wise, and to do good. + +36:4 He deviseth mischief upon his bed; he setteth himself in a way +that is not good; he abhorreth not evil. + +36:5 Thy mercy, O LORD, is in the heavens; and thy faithfulness +reacheth unto the clouds. + +36:6 Thy righteousness is like the great mountains; thy judgments are +a great deep: O LORD, thou preservest man and beast. + +36:7 How excellent is thy lovingkindness, O God! therefore the +children of men put their trust under the shadow of thy wings. + +36:8 They shall be abundantly satisfied with the fatness of thy house; +and thou shalt make them drink of the river of thy pleasures. + +36:9 For with thee is the fountain of life: in thy light shall we see +light. + +36:10 O continue thy lovingkindness unto them that know thee; and thy +righteousness to the upright in heart. + +36:11 Let not the foot of pride come against me, and let not the hand +of the wicked remove me. + +36:12 There are the workers of iniquity fallen: they are cast down, +and shall not be able to rise. + + + +37:1 Fret not thyself because of evildoers, neither be thou envious +against the workers of iniquity. + +37:2 For they shall soon be cut down like the grass, and wither as the +green herb. + +37:3 Trust in the LORD, and do good; so shalt thou dwell in the land, +and verily thou shalt be fed. + +37:4 Delight thyself also in the LORD: and he shall give thee the +desires of thine heart. + +37:5 Commit thy way unto the LORD; trust also in him; and he shall +bring it to pass. + +37:6 And he shall bring forth thy righteousness as the light, and thy +judgment as the noonday. + +37:7 Rest in the LORD, and wait patiently for him: fret not thyself +because of him who prospereth in his way, because of the man who +bringeth wicked devices to pass. + +37:8 Cease from anger, and forsake wrath: fret not thyself in any wise +to do evil. + +37:9 For evildoers shall be cut off: but those that wait upon the +LORD, they shall inherit the earth. + +37:10 For yet a little while, and the wicked shall not be: yea, thou +shalt diligently consider his place, and it shall not be. + +37:11 But the meek shall inherit the earth; and shall delight +themselves in the abundance of peace. + +37:12 The wicked plotteth against the just, and gnasheth upon him with +his teeth. + +37:13 The LORD shall laugh at him: for he seeth that his day is +coming. + +37:14 The wicked have drawn out the sword, and have bent their bow, to +cast down the poor and needy, and to slay such as be of upright +conversation. + +37:15 Their sword shall enter into their own heart, and their bows +shall be broken. + +37:16 A little that a righteous man hath is better than the riches of +many wicked. + +37:17 For the arms of the wicked shall be broken: but the LORD +upholdeth the righteous. + +37:18 The LORD knoweth the days of the upright: and their inheritance +shall be for ever. + +37:19 They shall not be ashamed in the evil time: and in the days of +famine they shall be satisfied. + +37:20 But the wicked shall perish, and the enemies of the LORD shall +be as the fat of lambs: they shall consume; into smoke shall they +consume away. + +37:21 The wicked borroweth, and payeth not again: but the righteous +sheweth mercy, and giveth. + +37:22 For such as be blessed of him shall inherit the earth; and they +that be cursed of him shall be cut off. + +37:23 The steps of a good man are ordered by the LORD: and he +delighteth in his way. + +37:24 Though he fall, he shall not be utterly cast down: for the LORD +upholdeth him with his hand. + +37:25 I have been young, and now am old; yet have I not seen the +righteous forsaken, nor his seed begging bread. + +37:26 He is ever merciful, and lendeth; and his seed is blessed. + +37:27 Depart from evil, and do good; and dwell for evermore. + +37:28 For the LORD loveth judgment, and forsaketh not his saints; they +are preserved for ever: but the seed of the wicked shall be cut off. + +37:29 The righteous shall inherit the land, and dwell therein for +ever. + +37:30 The mouth of the righteous speaketh wisdom, and his tongue +talketh of judgment. + +37:31 The law of his God is in his heart; none of his steps shall +slide. + +37:32 The wicked watcheth the righteous, and seeketh to slay him. + +37:33 The LORD will not leave him in his hand, nor condemn him when he +is judged. + +37:34 Wait on the LORD, and keep his way, and he shall exalt thee to +inherit the land: when the wicked are cut off, thou shalt see it. + +37:35 I have seen the wicked in great power, and spreading himself +like a green bay tree. + +37:36 Yet he passed away, and, lo, he was not: yea, I sought him, but +he could not be found. + +37:37 Mark the perfect man, and behold the upright: for the end of +that man is peace. + +37:38 But the transgressors shall be destroyed together: the end of +the wicked shall be cut off. + +37:39 But the salvation of the righteous is of the LORD: he is their +strength in the time of trouble. + +37:40 And the LORD shall help them, and deliver them: he shall deliver +them from the wicked, and save them, because they trust in him. + + + +38:1 O lord, rebuke me not in thy wrath: neither chasten me in thy hot +displeasure. + +38:2 For thine arrows stick fast in me, and thy hand presseth me sore. + +38:3 There is no soundness in my flesh because of thine anger; neither +is there any rest in my bones because of my sin. + +38:4 For mine iniquities are gone over mine head: as an heavy burden +they are too heavy for me. + +38:5 My wounds stink and are corrupt because of my foolishness. + +38:6 I am troubled; I am bowed down greatly; I go mourning all the day +long. + +38:7 For my loins are filled with a loathsome disease: and there is no +soundness in my flesh. + +38:8 I am feeble and sore broken: I have roared by reason of the +disquietness of my heart. + +38:9 Lord, all my desire is before thee; and my groaning is not hid +from thee. + +38:10 My heart panteth, my strength faileth me: as for the light of +mine eyes, it also is gone from me. + +38:11 My lovers and my friends stand aloof from my sore; and my +kinsmen stand afar off. + +38:12 They also that seek after my life lay snares for me: and they +that seek my hurt speak mischievous things, and imagine deceits all +the day long. + +38:13 But I, as a deaf man, heard not; and I was as a dumb man that +openeth not his mouth. + +38:14 Thus I was as a man that heareth not, and in whose mouth are no +reproofs. + +38:15 For in thee, O LORD, do I hope: thou wilt hear, O Lord my God. + +38:16 For I said, Hear me, lest otherwise they should rejoice over me: +when my foot slippeth, they magnify themselves against me. + +38:17 For I am ready to halt, and my sorrow is continually before me. + +38:18 For I will declare mine iniquity; I will be sorry for my sin. + +38:19 But mine enemies are lively, and they are strong: and they that +hate me wrongfully are multiplied. + +38:20 They also that render evil for good are mine adversaries; +because I follow the thing that good is. + +38:21 Forsake me not, O LORD: O my God, be not far from me. + +38:22 Make haste to help me, O Lord my salvation. + + + +39:1 I said, I will take heed to my ways, that I sin not with my +tongue: I will keep my mouth with a bridle, while the wicked is before +me. + +39:2 I was dumb with silence, I held my peace, even from good; and my +sorrow was stirred. + +39:3 My heart was hot within me, while I was musing the fire burned: +then spake I with my tongue, + +39:4 LORD, make me to know mine end, and the measure of my days, what +it is: that I may know how frail I am. + +39:5 Behold, thou hast made my days as an handbreadth; and mine age is +as nothing before thee: verily every man at his best state is +altogether vanity. + +Selah. + +39:6 Surely every man walketh in a vain shew: surely they are +disquieted in vain: he heapeth up riches, and knoweth not who shall +gather them. + +39:7 And now, Lord, what wait I for? my hope is in thee. + +39:8 Deliver me from all my transgressions: make me not the reproach +of the foolish. + +39:9 I was dumb, I opened not my mouth; because thou didst it. + +39:10 Remove thy stroke away from me: I am consumed by the blow of +thine hand. + +39:11 When thou with rebukes dost correct man for iniquity, thou +makest his beauty to consume away like a moth: surely every man is +vanity. Selah. + +39:12 Hear my prayer, O LORD, and give ear unto my cry; hold not thy +peace at my tears: for I am a stranger with thee, and a sojourner, as +all my fathers were. + +39:13 O spare me, that I may recover strength, before I go hence, and +be no more. + + + +40:1 I waited patiently for the LORD; and he inclined unto me, and +heard my cry. + +40:2 He brought me up also out of an horrible pit, out of the miry +clay, and set my feet upon a rock, and established my goings. + +40:3 And he hath put a new song in my mouth, even praise unto our God: +many shall see it, and fear, and shall trust in the LORD. + +40:4 Blessed is that man that maketh the LORD his trust, and +respecteth not the proud, nor such as turn aside to lies. + +40:5 Many, O LORD my God, are thy wonderful works which thou hast +done, and thy thoughts which are to us-ward: they cannot be reckoned +up in order unto thee: if I would declare and speak of them, they are +more than can be numbered. + +40:6 Sacrifice and offering thou didst not desire; mine ears hast thou +opened: burnt offering and sin offering hast thou not required. + +40:7 Then said I, Lo, I come: in the volume of the book it is written +of me, + +40:8 I delight to do thy will, O my God: yea, thy law is within my +heart. + +40:9 I have preached righteousness in the great congregation: lo, I +have not refrained my lips, O LORD, thou knowest. + +40:10 I have not hid thy righteousness within my heart; I have +declared thy faithfulness and thy salvation: I have not concealed thy +lovingkindness and thy truth from the great congregation. + +40:11 Withhold not thou thy tender mercies from me, O LORD: let thy +lovingkindness and thy truth continually preserve me. + +40:12 For innumerable evils have compassed me about: mine iniquities +have taken hold upon me, so that I am not able to look up; they are +more than the hairs of mine head: therefore my heart faileth me. + +40:13 Be pleased, O LORD, to deliver me: O LORD, make haste to help +me. + +40:14 Let them be ashamed and confounded together that seek after my +soul to destroy it; let them be driven backward and put to shame that +wish me evil. + +40:15 Let them be desolate for a reward of their shame that say unto +me, Aha, aha. + +40:16 Let all those that seek thee rejoice and be glad in thee: let +such as love thy salvation say continually, The LORD be magnified. + +40:17 But I am poor and needy; yet the Lord thinketh upon me: thou art +my help and my deliverer; make no tarrying, O my God. + + + +41:1 Blessed is he that considereth the poor: the LORD will deliver +him in time of trouble. + +41:2 The LORD will preserve him, and keep him alive; and he shall be +blessed upon the earth: and thou wilt not deliver him unto the will of +his enemies. + +41:3 The LORD will strengthen him upon the bed of languishing: thou +wilt make all his bed in his sickness. + +41:4 I said, LORD, be merciful unto me: heal my soul; for I have +sinned against thee. + +41:5 Mine enemies speak evil of me, When shall he die, and his name +perish? + +41:6 And if he come to see me, he speaketh vanity: his heart gathereth +iniquity to itself; when he goeth abroad, he telleth it. + +41:7 All that hate me whisper together against me: against me do they +devise my hurt. + +41:8 An evil disease, say they, cleaveth fast unto him: and now that +he lieth he shall rise up no more. + +41:9 Yea, mine own familiar friend, in whom I trusted, which did eat +of my bread, hath lifted up his heel against me. + +41:10 But thou, O LORD, be merciful unto me, and raise me up, that I +may requite them. + +41:11 By this I know that thou favourest me, because mine enemy doth +not triumph over me. + +41:12 And as for me, thou upholdest me in mine integrity, and settest +me before thy face for ever. + +41:13 Blessed be the LORD God of Israel from everlasting, and to +everlasting. Amen, and Amen. + + + +42:1 As the hart panteth after the water brooks, so panteth my soul +after thee, O God. + +42:2 My soul thirsteth for God, for the living God: when shall I come +and appear before God? + +42:3 My tears have been my meat day and night, while they continually +say unto me, Where is thy God? + +42:4 When I remember these things, I pour out my soul in me: for I had +gone with the multitude, I went with them to the house of God, with +the voice of joy and praise, with a multitude that kept holyday. + +42:5 Why art thou cast down, O my soul? and why art thou disquieted in +me? hope thou in God: for I shall yet praise him for the help of his +countenance. + +42:6 O my God, my soul is cast down within me: therefore will I +remember thee from the land of Jordan, and of the Hermonites, from the +hill Mizar. + +42:7 Deep calleth unto deep at the noise of thy waterspouts: all thy +waves and thy billows are gone over me. + +42:8 Yet the LORD will command his lovingkindness in the day time, and +in the night his song shall be with me, and my prayer unto the God of +my life. + +42:9 I will say unto God my rock, Why hast thou forgotten me? why go I +mourning because of the oppression of the enemy? + +42:10 As with a sword in my bones, mine enemies reproach me; while +they say daily unto me, Where is thy God? + +42:11 Why art thou cast down, O my soul? and why art thou disquieted +within me? hope thou in God: for I shall yet praise him, who is the +health of my countenance, and my God. + + + +43:1 Judge me, O God, and plead my cause against an ungodly nation: O +deliver me from the deceitful and unjust man. + +43:2 For thou art the God of my strength: why dost thou cast me off? +why go I mourning because of the oppression of the enemy? + +43:3 O send out thy light and thy truth: let them lead me; let them +bring me unto thy holy hill, and to thy tabernacles. + +43:4 Then will I go unto the altar of God, unto God my exceeding joy: +yea, upon the harp will I praise thee, O God my God. + +43:5 Why art thou cast down, O my soul? and why art thou disquieted +within me? hope in God: for I shall yet praise him, who is the health +of my countenance, and my God. + + + +44:1 We have heard with our ears, O God, our fathers have told us, +what work thou didst in their days, in the times of old. + +44:2 How thou didst drive out the heathen with thy hand, and plantedst +them; how thou didst afflict the people, and cast them out. + +44:3 For they got not the land in possession by their own sword, +neither did their own arm save them: but thy right hand, and thine +arm, and the light of thy countenance, because thou hadst a favour +unto them. + +44:4 Thou art my King, O God: command deliverances for Jacob. + +44:5 Through thee will we push down our enemies: through thy name will +we tread them under that rise up against us. + +44:6 For I will not trust in my bow, neither shall my sword save me. + +44:7 But thou hast saved us from our enemies, and hast put them to +shame that hated us. + +44:8 In God we boast all the day long, and praise thy name for ever. + +Selah. + +44:9 But thou hast cast off, and put us to shame; and goest not forth +with our armies. + +44:10 Thou makest us to turn back from the enemy: and they which hate +us spoil for themselves. + +44:11 Thou hast given us like sheep appointed for meat; and hast +scattered us among the heathen. + +44:12 Thou sellest thy people for nought, and dost not increase thy +wealth by their price. + +44:13 Thou makest us a reproach to our neighbours, a scorn and a +derision to them that are round about us. + +44:14 Thou makest us a byword among the heathen, a shaking of the head +among the people. + +44:15 My confusion is continually before me, and the shame of my face +hath covered me, + +44:16 For the voice of him that reproacheth and blasphemeth; by reason +of the enemy and avenger. + +44:17 All this is come upon us; yet have we not forgotten thee, +neither have we dealt falsely in thy covenant. + +44:18 Our heart is not turned back, neither have our steps declined +from thy way; + +44:19 Though thou hast sore broken us in the place of dragons, and +covered us with the shadow of death. + +44:20 If we have forgotten the name of our God, or stretched out our +hands to a strange god; + +44:21 Shall not God search this out? for he knoweth the secrets of the +heart. + +44:22 Yea, for thy sake are we killed all the day long; we are counted +as sheep for the slaughter. + +44:23 Awake, why sleepest thou, O Lord? arise, cast us not off for +ever. + +44:24 Wherefore hidest thou thy face, and forgettest our affliction +and our oppression? + +44:25 For our soul is bowed down to the dust: our belly cleaveth unto +the earth. + +44:26 Arise for our help, and redeem us for thy mercies' sake. + + + +45:1 My heart is inditing a good matter: I speak of the things which I +have made touching the king: my tongue is the pen of a ready writer. + +45:2 Thou art fairer than the children of men: grace is poured into +thy lips: therefore God hath blessed thee for ever. + +45:3 Gird thy sword upon thy thigh, O most mighty, with thy glory and +thy majesty. + +45:4 And in thy majesty ride prosperously because of truth and +meekness and righteousness; and thy right hand shall teach thee +terrible things. + +45:5 Thine arrows are sharp in the heart of the king's enemies; +whereby the people fall under thee. + +45:6 Thy throne, O God, is for ever and ever: the sceptre of thy +kingdom is a right sceptre. + +45:7 Thou lovest righteousness, and hatest wickedness: therefore God, +thy God, hath anointed thee with the oil of gladness above thy +fellows. + +45:8 All thy garments smell of myrrh, and aloes, and cassia, out of +the ivory palaces, whereby they have made thee glad. + +45:9 Kings' daughters were among thy honourable women: upon thy right +hand did stand the queen in gold of Ophir. + +45:10 Hearken, O daughter, and consider, and incline thine ear; forget +also thine own people, and thy father's house; + +45:11 So shall the king greatly desire thy beauty: for he is thy Lord; +and worship thou him. + +45:12 And the daughter of Tyre shall be there with a gift; even the +rich among the people shall intreat thy favour. + +45:13 The king's daughter is all glorious within: her clothing is of +wrought gold. + +45:14 She shall be brought unto the king in raiment of needlework: the +virgins her companions that follow her shall be brought unto thee. + +45:15 With gladness and rejoicing shall they be brought: they shall +enter into the king's palace. + +45:16 Instead of thy fathers shall be thy children, whom thou mayest +make princes in all the earth. + +45:17 I will make thy name to be remembered in all generations: +therefore shall the people praise thee for ever and ever. + + + +46:1 God is our refuge and strength, a very present help in trouble. + +46:2 Therefore will not we fear, though the earth be removed, and +though the mountains be carried into the midst of the sea; + +46:3 Though the waters thereof roar and be troubled, though the +mountains shake with the swelling thereof. Selah. + +46:4 There is a river, the streams whereof shall make glad the city of +God, the holy place of the tabernacles of the most High. + +46:5 God is in the midst of her; she shall not be moved: God shall +help her, and that right early. + +46:6 The heathen raged, the kingdoms were moved: he uttered his voice, +the earth melted. + +46:7 The LORD of hosts is with us; the God of Jacob is our refuge. +Selah. + +46:8 Come, behold the works of the LORD, what desolations he hath made +in the earth. + +46:9 He maketh wars to cease unto the end of the earth; he breaketh +the bow, and cutteth the spear in sunder; he burneth the chariot in +the fire. + +46:10 Be still, and know that I am God: I will be exalted among the +heathen, I will be exalted in the earth. + +46:11 The LORD of hosts is with us; the God of Jacob is our refuge. +Selah. + + + +47:1 O clap your hands, all ye people; shout unto God with the voice +of triumph. + +47:2 For the LORD most high is terrible; he is a great King over all +the earth. + +47:3 He shall subdue the people under us, and the nations under our +feet. + +47:4 He shall choose our inheritance for us, the excellency of Jacob +whom he loved. Selah. + +47:5 God is gone up with a shout, the LORD with the sound of a +trumpet. + +47:6 Sing praises to God, sing praises: sing praises unto our King, +sing praises. + +47:7 For God is the King of all the earth: sing ye praises with +understanding. + +47:8 God reigneth over the heathen: God sitteth upon the throne of his +holiness. + +47:9 The princes of the people are gathered together, even the people +of the God of Abraham: for the shields of the earth belong unto God: +he is greatly exalted. + + + +48:1 Great is the LORD, and greatly to be praised in the city of our +God, in the mountain of his holiness. + +48:2 Beautiful for situation, the joy of the whole earth, is mount +Zion, on the sides of the north, the city of the great King. + +48:3 God is known in her palaces for a refuge. + +48:4 For, lo, the kings were assembled, they passed by together. + +48:5 They saw it, and so they marvelled; they were troubled, and +hasted away. + +48:6 Fear took hold upon them there, and pain, as of a woman in +travail. + +48:7 Thou breakest the ships of Tarshish with an east wind. + +48:8 As we have heard, so have we seen in the city of the LORD of +hosts, in the city of our God: God will establish it for ever. Selah. + +48:9 We have thought of thy lovingkindness, O God, in the midst of thy +temple. + +48:10 According to thy name, O God, so is thy praise unto the ends of +the earth: thy right hand is full of righteousness. + +48:11 Let mount Zion rejoice, let the daughters of Judah be glad, +because of thy judgments. + +48:12 Walk about Zion, and go round about her: tell the towers +thereof. + +48:13 Mark ye well her bulwarks, consider her palaces; that ye may +tell it to the generation following. + +48:14 For this God is our God for ever and ever: he will be our guide +even unto death. + + + +49:1 Hear this, all ye people; give ear, all ye inhabitants of the +world: + +49:2 Both low and high, rich and poor, together. + +49:3 My mouth shall speak of wisdom; and the meditation of my heart +shall be of understanding. + +49:4 I will incline mine ear to a parable: I will open my dark saying +upon the harp. + +49:5 Wherefore should I fear in the days of evil, when the iniquity of +my heels shall compass me about? + +49:6 They that trust in their wealth, and boast themselves in the +multitude of their riches; + +49:7 None of them can by any means redeem his brother, nor give to God +a ransom for him: + +49:8 (For the redemption of their soul is precious, and it ceaseth for +ever:) + +49:9 That he should still live for ever, and not see corruption. + +49:10 For he seeth that wise men die, likewise the fool and the +brutish person perish, and leave their wealth to others. + +49:11 Their inward thought is, that their houses shall continue for +ever, and their dwelling places to all generations; they call their +lands after their own names. + +49:12 Nevertheless man being in honour abideth not: he is like the +beasts that perish. + +49:13 This their way is their folly: yet their posterity approve their +sayings. Selah. + +49:14 Like sheep they are laid in the grave; death shall feed on them; +and the upright shall have dominion over them in the morning; and +their beauty shall consume in the grave from their dwelling. + +49:15 But God will redeem my soul from the power of the grave: for he +shall receive me. Selah. + +49:16 Be not thou afraid when one is made rich, when the glory of his +house is increased; + +49:17 For when he dieth he shall carry nothing away: his glory shall +not descend after him. + +49:18 Though while he lived he blessed his soul: and men will praise +thee, when thou doest well to thyself. + +49:19 He shall go to the generation of his fathers; they shall never +see light. + +49:20 Man that is in honour, and understandeth not, is like the beasts +that perish. + + + +50:1 The mighty God, even the LORD, hath spoken, and called the earth +from the rising of the sun unto the going down thereof. + +50:2 Out of Zion, the perfection of beauty, God hath shined. + +50:3 Our God shall come, and shall not keep silence: a fire shall +devour before him, and it shall be very tempestuous round about him. + +50:4 He shall call to the heavens from above, and to the earth, that +he may judge his people. + +50:5 Gather my saints together unto me; those that have made a +covenant with me by sacrifice. + +50:6 And the heavens shall declare his righteousness: for God is judge +himself. Selah. + +50:7 Hear, O my people, and I will speak; O Israel, and I will testify +against thee: I am God, even thy God. + +50:8 I will not reprove thee for thy sacrifices or thy burnt +offerings, to have been continually before me. + +50:9 I will take no bullock out of thy house, nor he goats out of thy +folds. + +50:10 For every beast of the forest is mine, and the cattle upon a +thousand hills. + +50:11 I know all the fowls of the mountains: and the wild beasts of +the field are mine. + +50:12 If I were hungry, I would not tell thee: for the world is mine, +and the fulness thereof. + +50:13 Will I eat the flesh of bulls, or drink the blood of goats? + +50:14 Offer unto God thanksgiving; and pay thy vows unto the most +High: + +50:15 And call upon me in the day of trouble: I will deliver thee, and +thou shalt glorify me. + +50:16 But unto the wicked God saith, What hast thou to do to declare +my statutes, or that thou shouldest take my covenant in thy mouth? + +50:17 Seeing thou hatest instruction, and casteth my words behind +thee. + +50:18 When thou sawest a thief, then thou consentedst with him, and +hast been partaker with adulterers. + +50:19 Thou givest thy mouth to evil, and thy tongue frameth deceit. + +50:20 Thou sittest and speakest against thy brother; thou slanderest +thine own mother's son. + +50:21 These things hast thou done, and I kept silence; thou thoughtest +that I was altogether such an one as thyself: but I will reprove thee, +and set them in order before thine eyes. + +50:22 Now consider this, ye that forget God, lest I tear you in +pieces, and there be none to deliver. + +50:23 Whoso offereth praise glorifieth me: and to him that ordereth +his conversation aright will I shew the salvation of God. + + + +51:1 Have mercy upon me, O God, according to thy lovingkindness: +according unto the multitude of thy tender mercies blot out my +transgressions. + +51:2 Wash me throughly from mine iniquity, and cleanse me from my sin. + +51:3 For I acknowledge my transgressions: and my sin is ever before +me. + +51:4 Against thee, thee only, have I sinned, and done this evil in thy +sight: that thou mightest be justified when thou speakest, and be +clear when thou judgest. + +51:5 Behold, I was shapen in iniquity; and in sin did my mother +conceive me. + +51:6 Behold, thou desirest truth in the inward parts: and in the +hidden part thou shalt make me to know wisdom. + +51:7 Purge me with hyssop, and I shall be clean: wash me, and I shall +be whiter than snow. + +51:8 Make me to hear joy and gladness; that the bones which thou hast +broken may rejoice. + +51:9 Hide thy face from my sins, and blot out all mine iniquities. + +51:10 Create in me a clean heart, O God; and renew a right spirit +within me. + +51:11 Cast me not away from thy presence; and take not thy holy spirit +from me. + +51:12 Restore unto me the joy of thy salvation; and uphold me with thy +free spirit. + +51:13 Then will I teach transgressors thy ways; and sinners shall be +converted unto thee. + +51:14 Deliver me from bloodguiltiness, O God, thou God of my +salvation: and my tongue shall sing aloud of thy righteousness. + +51:15 O Lord, open thou my lips; and my mouth shall shew forth thy +praise. + +51:16 For thou desirest not sacrifice; else would I give it: thou +delightest not in burnt offering. + +51:17 The sacrifices of God are a broken spirit: a broken and a +contrite heart, O God, thou wilt not despise. + +51:18 Do good in thy good pleasure unto Zion: build thou the walls of +Jerusalem. + +51:19 Then shalt thou be pleased with the sacrifices of righteousness, +with burnt offering and whole burnt offering: then shall they offer +bullocks upon thine altar. + + + +52:1 Why boastest thou thyself in mischief, O mighty man? the goodness +of God endureth continually. + +52:2 The tongue deviseth mischiefs; like a sharp razor, working +deceitfully. + +52:3 Thou lovest evil more than good; and lying rather than to speak +righteousness. Selah. + +52:4 Thou lovest all devouring words, O thou deceitful tongue. + +52:5 God shall likewise destroy thee for ever, he shall take thee +away, and pluck thee out of thy dwelling place, and root thee out of +the land of the living. Selah. + +52:6 The righteous also shall see, and fear, and shall laugh at him: + +52:7 Lo, this is the man that made not God his strength; but trusted +in the abundance of his riches, and strengthened himself in his +wickedness. + +52:8 But I am like a green olive tree in the house of God: I trust in +the mercy of God for ever and ever. + +52:9 I will praise thee for ever, because thou hast done it: and I +will wait on thy name; for it is good before thy saints. + + + +53:1 The fool hath said in his heart, There is no God. Corrupt are +they, and have done abominable iniquity: there is none that doeth +good. + +53:2 God looked down from heaven upon the children of men, to see if +there were any that did understand, that did seek God. + +53:3 Every one of them is gone back: they are altogether become +filthy; there is none that doeth good, no, not one. + +53:4 Have the workers of iniquity no knowledge? who eat up my people +as they eat bread: they have not called upon God. + +53:5 There were they in great fear, where no fear was: for God hath +scattered the bones of him that encampeth against thee: thou hast put +them to shame, because God hath despised them. + +53:6 Oh that the salvation of Israel were come out of Zion! When God +bringeth back the captivity of his people, Jacob shall rejoice, and +Israel shall be glad. + + + +54:1 Save me, O God, by thy name, and judge me by thy strength. + +54:2 Hear my prayer, O God; give ear to the words of my mouth. + +54:3 For strangers are risen up against me, and oppressors seek after +my soul: they have not set God before them. Selah. + +54:4 Behold, God is mine helper: the Lord is with them that uphold my +soul. + +54:5 He shall reward evil unto mine enemies: cut them off in thy +truth. + +54:6 I will freely sacrifice unto thee: I will praise thy name, O +LORD; for it is good. + +54:7 For he hath delivered me out of all trouble: and mine eye hath +seen his desire upon mine enemies. + + + +55:1 Give ear to my prayer, O God; and hide not thyself from my +supplication. + +55:2 Attend unto me, and hear me: I mourn in my complaint, and make a +noise; + +55:3 Because of the voice of the enemy, because of the oppression of +the wicked: for they cast iniquity upon me, and in wrath they hate me. + +55:4 My heart is sore pained within me: and the terrors of death are +fallen upon me. + +55:5 Fearfulness and trembling are come upon me, and horror hath +overwhelmed me. + +55:6 And I said, Oh that I had wings like a dove! for then would I fly +away, and be at rest. + +55:7 Lo, then would I wander far off, and remain in the wilderness. +Selah. + +55:8 I would hasten my escape from the windy storm and tempest. + +55:9 Destroy, O Lord, and divide their tongues: for I have seen +violence and strife in the city. + +55:10 Day and night they go about it upon the walls thereof: mischief +also and sorrow are in the midst of it. + +55:11 Wickedness is in the midst thereof: deceit and guile depart not +from her streets. + +55:12 For it was not an enemy that reproached me; then I could have +borne it: neither was it he that hated me that did magnify himself +against me; then I would have hid myself from him: + +55:13 But it was thou, a man mine equal, my guide, and mine +acquaintance. + +55:14 We took sweet counsel together, and walked unto the house of God +in company. + +55:15 Let death seize upon them, and let them go down quick into hell: +for wickedness is in their dwellings, and among them. + +55:16 As for me, I will call upon God; and the LORD shall save me. + +55:17 Evening, and morning, and at noon, will I pray, and cry aloud: +and he shall hear my voice. + +55:18 He hath delivered my soul in peace from the battle that was +against me: for there were many with me. + +55:19 God shall hear, and afflict them, even he that abideth of old. + +Selah. Because they have no changes, therefore they fear not God. + +55:20 He hath put forth his hands against such as be at peace with +him: he hath broken his covenant. + +55:21 The words of his mouth were smoother than butter, but war was in +his heart: his words were softer than oil, yet were they drawn swords. + +55:22 Cast thy burden upon the LORD, and he shall sustain thee: he +shall never suffer the righteous to be moved. + +55:23 But thou, O God, shalt bring them down into the pit of +destruction: bloody and deceitful men shall not live out half their +days; but I will trust in thee. + + + +56:1 Be merciful unto me, O God: for man would swallow me up; he +fighting daily oppresseth me. + +56:2 Mine enemies would daily swallow me up: for they be many that +fight against me, O thou most High. + +56:3 What time I am afraid, I will trust in thee. + +56:4 In God I will praise his word, in God I have put my trust; I will +not fear what flesh can do unto me. + +56:5 Every day they wrest my words: all their thoughts are against me +for evil. + +56:6 They gather themselves together, they hide themselves, they mark +my steps, when they wait for my soul. + +56:7 Shall they escape by iniquity? in thine anger cast down the +people, O God. + +56:8 Thou tellest my wanderings: put thou my tears into thy bottle: +are they not in thy book? + +56:9 When I cry unto thee, then shall mine enemies turn back: this I +know; for God is for me. + +56:10 In God will I praise his word: in the LORD will I praise his +word. + +56:11 In God have I put my trust: I will not be afraid what man can do +unto me. + +56:12 Thy vows are upon me, O God: I will render praises unto thee. + +56:13 For thou hast delivered my soul from death: wilt not thou +deliver my feet from falling, that I may walk before God in the light +of the living? + + + +57:1 Be merciful unto me, O God, be merciful unto me: for my soul +trusteth in thee: yea, in the shadow of thy wings will I make my +refuge, until these calamities be overpast. + +57:2 I will cry unto God most high; unto God that performeth all +things for me. + +57:3 He shall send from heaven, and save me from the reproach of him +that would swallow me up. Selah. God shall send forth his mercy and +his truth. + +57:4 My soul is among lions: and I lie even among them that are set on +fire, even the sons of men, whose teeth are spears and arrows, and +their tongue a sharp sword. + +57:5 Be thou exalted, O God, above the heavens; let thy glory be above +all the earth. + +57:6 They have prepared a net for my steps; my soul is bowed down: +they have digged a pit before me, into the midst whereof they are +fallen themselves. Selah. + +57:7 My heart is fixed, O God, my heart is fixed: I will sing and give +praise. + +57:8 Awake up, my glory; awake, psaltery and harp: I myself will awake +early. + +57:9 I will praise thee, O Lord, among the people: I will sing unto +thee among the nations. + +57:10 For thy mercy is great unto the heavens, and thy truth unto the +clouds. + +57:11 Be thou exalted, O God, above the heavens: let thy glory be +above all the earth. + + + +58:1 Do ye indeed speak righteousness, O congregation? do ye judge +uprightly, O ye sons of men? + +58:2 Yea, in heart ye work wickedness; ye weigh the violence of your +hands in the earth. + +58:3 The wicked are estranged from the womb: they go astray as soon as +they be born, speaking lies. + +58:4 Their poison is like the poison of a serpent: they are like the +deaf adder that stoppeth her ear; + +58:5 Which will not hearken to the voice of charmers, charming never +so wisely. + +58:6 Break their teeth, O God, in their mouth: break out the great +teeth of the young lions, O LORD. + +58:7 Let them melt away as waters which run continually: when he +bendeth his bow to shoot his arrows, let them be as cut in pieces. + +58:8 As a snail which melteth, let every one of them pass away: like +the untimely birth of a woman, that they may not see the sun. + +58:9 Before your pots can feel the thorns, he shall take them away as +with a whirlwind, both living, and in his wrath. + +58:10 The righteous shall rejoice when he seeth the vengeance: he +shall wash his feet in the blood of the wicked. + +58:11 So that a man shall say, Verily there is a reward for the +righteous: verily he is a God that judgeth in the earth. + + + +59:1 Deliver me from mine enemies, O my God: defend me from them that +rise up against me. + +59:2 Deliver me from the workers of iniquity, and save me from bloody +men. + +59:3 For, lo, they lie in wait for my soul: the mighty are gathered +against me; not for my transgression, nor for my sin, O LORD. + +59:4 They run and prepare themselves without my fault: awake to help +me, and behold. + +59:5 Thou therefore, O LORD God of hosts, the God of Israel, awake to +visit all the heathen: be not merciful to any wicked transgressors. +Selah. + +59:6 They return at evening: they make a noise like a dog, and go +round about the city. + +59:7 Behold, they belch out with their mouth: swords are in their +lips: for who, say they, doth hear? + +59:8 But thou, O LORD, shalt laugh at them; thou shalt have all the +heathen in derision. + +59:9 Because of his strength will I wait upon thee: for God is my +defence. + +59:10 The God of my mercy shall prevent me: God shall let me see my +desire upon mine enemies. + +59:11 Slay them not, lest my people forget: scatter them by thy power; +and bring them down, O Lord our shield. + +59:12 For the sin of their mouth and the words of their lips let them +even be taken in their pride: and for cursing and lying which they +speak. + +59:13 Consume them in wrath, consume them, that they may not be: and +let them know that God ruleth in Jacob unto the ends of the earth. +Selah. + +59:14 And at evening let them return; and let them make a noise like a +dog, and go round about the city. + +59:15 Let them wander up and down for meat, and grudge if they be not +satisfied. + +59:16 But I will sing of thy power; yea, I will sing aloud of thy +mercy in the morning: for thou hast been my defence and refuge in the +day of my trouble. + +59:17 Unto thee, O my strength, will I sing: for God is my defence, +and the God of my mercy. + + + +60:1 O God, thou hast cast us off, thou hast scattered us, thou hast +been displeased; O turn thyself to us again. + +60:2 Thou hast made the earth to tremble; thou hast broken it: heal +the breaches thereof; for it shaketh. + +60:3 Thou hast shewed thy people hard things: thou hast made us to +drink the wine of astonishment. + +60:4 Thou hast given a banner to them that fear thee, that it may be +displayed because of the truth. Selah. + +60:5 That thy beloved may be delivered; save with thy right hand, and +hear me. + +60:6 God hath spoken in his holiness; I will rejoice, I will divide +Shechem, and mete out the valley of Succoth. + +60:7 Gilead is mine, and Manasseh is mine; Ephraim also is the +strength of mine head; Judah is my lawgiver; + +60:8 Moab is my washpot; over Edom will I cast out my shoe: Philistia, +triumph thou because of me. + +60:9 Who will bring me into the strong city? who will lead me into +Edom? + +60:10 Wilt not thou, O God, which hadst cast us off? and thou, O God, +which didst not go out with our armies? + +60:11 Give us help from trouble: for vain is the help of man. + +60:12 Through God we shall do valiantly: for he it is that shall tread +down our enemies. + + + +61:1 Hear my cry, O God; attend unto my prayer. + +61:2 From the end of the earth will I cry unto thee, when my heart is +overwhelmed: lead me to the rock that is higher than I. + +61:3 For thou hast been a shelter for me, and a strong tower from the +enemy. + +61:4 I will abide in thy tabernacle for ever: I will trust in the +covert of thy wings. Selah. + +61:5 For thou, O God, hast heard my vows: thou hast given me the +heritage of those that fear thy name. + +61:6 Thou wilt prolong the king's life: and his years as many +generations. + +61:7 He shall abide before God for ever: O prepare mercy and truth, +which may preserve him. + +61:8 So will I sing praise unto thy name for ever, that I may daily +perform my vows. + + + +62:1 Truly my soul waiteth upon God: from him cometh my salvation. + +62:2 He only is my rock and my salvation; he is my defence; I shall +not be greatly moved. + +62:3 How long will ye imagine mischief against a man? ye shall be +slain all of you: as a bowing wall shall ye be, and as a tottering +fence. + +62:4 They only consult to cast him down from his excellency: they +delight in lies: they bless with their mouth, but they curse inwardly. +Selah. + +62:5 My soul, wait thou only upon God; for my expectation is from him. + +62:6 He only is my rock and my salvation: he is my defence; I shall +not be moved. + +62:7 In God is my salvation and my glory: the rock of my strength, and +my refuge, is in God. + +62:8 Trust in him at all times; ye people, pour out your heart before +him: God is a refuge for us. Selah. + +62:9 Surely men of low degree are vanity, and men of high degree are a +lie: to be laid in the balance, they are altogether lighter than +vanity. + +62:10 Trust not in oppression, and become not vain in robbery: if +riches increase, set not your heart upon them. + +62:11 God hath spoken once; twice have I heard this; that power +belongeth unto God. + +62:12 Also unto thee, O Lord, belongeth mercy: for thou renderest to +every man according to his work. + + + +63:1 O God, thou art my God; early will I seek thee: my soul thirsteth +for thee, my flesh longeth for thee in a dry and thirsty land, where +no water is; + +63:2 To see thy power and thy glory, so as I have seen thee in the +sanctuary. + +63:3 Because thy lovingkindness is better than life, my lips shall +praise thee. + +63:4 Thus will I bless thee while I live: I will lift up my hands in +thy name. + +63:5 My soul shall be satisfied as with marrow and fatness; and my +mouth shall praise thee with joyful lips: + +63:6 When I remember thee upon my bed, and meditate on thee in the +night watches. + +63:7 Because thou hast been my help, therefore in the shadow of thy +wings will I rejoice. + +63:8 My soul followeth hard after thee: thy right hand upholdeth me. + +63:9 But those that seek my soul, to destroy it, shall go into the +lower parts of the earth. + +63:10 They shall fall by the sword: they shall be a portion for foxes. + +63:11 But the king shall rejoice in God; every one that sweareth by +him shall glory: but the mouth of them that speak lies shall be +stopped. + + + +64:1 Hear my voice, O God, in my prayer: preserve my life from fear of +the enemy. + +64:2 Hide me from the secret counsel of the wicked; from the +insurrection of the workers of iniquity: + +64:3 Who whet their tongue like a sword, and bend their bows to shoot +their arrows, even bitter words: + +64:4 That they may shoot in secret at the perfect: suddenly do they +shoot at him, and fear not. + +64:5 They encourage themselves in an evil matter: they commune of +laying snares privily; they say, Who shall see them? + +64:6 They search out iniquities; they accomplish a diligent search: +both the inward thought of every one of them, and the heart, is deep. + +64:7 But God shall shoot at them with an arrow; suddenly shall they be +wounded. + +64:8 So they shall make their own tongue to fall upon themselves: all +that see them shall flee away. + +64:9 And all men shall fear, and shall declare the work of God; for +they shall wisely consider of his doing. + +64:10 The righteous shall be glad in the LORD, and shall trust in him; +and all the upright in heart shall glory. + + + +65:1 Praise waiteth for thee, O God, in Sion: and unto thee shall the +vow be performed. + +65:2 O thou that hearest prayer, unto thee shall all flesh come. + +65:3 Iniquities prevail against me: as for our transgressions, thou +shalt purge them away. + +65:4 Blessed is the man whom thou choosest, and causest to approach +unto thee, that he may dwell in thy courts: we shall be satisfied with +the goodness of thy house, even of thy holy temple. + +65:5 By terrible things in righteousness wilt thou answer us, O God of +our salvation; who art the confidence of all the ends of the earth, +and of them that are afar off upon the sea: + +65:6 Which by his strength setteth fast the mountains; being girded +with power: + +65:7 Which stilleth the noise of the seas, the noise of their waves, +and the tumult of the people. + +65:8 They also that dwell in the uttermost parts are afraid at thy +tokens: thou makest the outgoings of the morning and evening to +rejoice. + +65:9 Thou visitest the earth, and waterest it: thou greatly enrichest +it with the river of God, which is full of water: thou preparest them +corn, when thou hast so provided for it. + +65:10 Thou waterest the ridges thereof abundantly: thou settlest the +furrows thereof: thou makest it soft with showers: thou blessest the +springing thereof. + +65:11 Thou crownest the year with thy goodness; and thy paths drop +fatness. + +65:12 They drop upon the pastures of the wilderness: and the little +hills rejoice on every side. + +65:13 The pastures are clothed with flocks; the valleys also are +covered over with corn; they shout for joy, they also sing. + + + +66:1 Make a joyful noise unto God, all ye lands: + +66:2 Sing forth the honour of his name: make his praise glorious. + +66:3 Say unto God, How terrible art thou in thy works! through the +greatness of thy power shall thine enemies submit themselves unto +thee. + +66:4 All the earth shall worship thee, and shall sing unto thee; they +shall sing to thy name. Selah. + +66:5 Come and see the works of God: he is terrible in his doing toward +the children of men. + +66:6 He turned the sea into dry land: they went through the flood on +foot: there did we rejoice in him. + +66:7 He ruleth by his power for ever; his eyes behold the nations: let +not the rebellious exalt themselves. Selah. + +66:8 O bless our God, ye people, and make the voice of his praise to +be heard: + +66:9 Which holdeth our soul in life, and suffereth not our feet to be +moved. + +66:10 For thou, O God, hast proved us: thou hast tried us, as silver +is tried. + +66:11 Thou broughtest us into the net; thou laidst affliction upon our +loins. + +66:12 Thou hast caused men to ride over our heads; we went through +fire and through water: but thou broughtest us out into a wealthy +place. + +66:13 I will go into thy house with burnt offerings: I will pay thee +my vows, + +66:14 Which my lips have uttered, and my mouth hath spoken, when I was +in trouble. + +66:15 I will offer unto thee burnt sacrifices of fatlings, with the +incense of rams; I will offer bullocks with goats. Selah. + +66:16 Come and hear, all ye that fear God, and I will declare what he +hath done for my soul. + +66:17 I cried unto him with my mouth, and he was extolled with my +tongue. + +66:18 If I regard iniquity in my heart, the Lord will not hear me: + +66:19 But verily God hath heard me; he hath attended to the voice of +my prayer. + +66:20 Blessed be God, which hath not turned away my prayer, nor his +mercy from me. + + + +67:1 God be merciful unto us, and bless us; and cause his face to +shine upon us; Selah. + +67:2 That thy way may be known upon earth, thy saving health among all +nations. + +67:3 Let the people praise thee, O God; let all the people praise +thee. + +67:4 O let the nations be glad and sing for joy: for thou shalt judge +the people righteously, and govern the nations upon earth. Selah. + +67:5 Let the people praise thee, O God; let all the people praise +thee. + +67:6 Then shall the earth yield her increase; and God, even our own +God, shall bless us. + +67:7 God shall bless us; and all the ends of the earth shall fear him. + + + +68:1 Let God arise, let his enemies be scattered: let them also that +hate him flee before him. + +68:2 As smoke is driven away, so drive them away: as wax melteth +before the fire, so let the wicked perish at the presence of God. + +68:3 But let the righteous be glad; let them rejoice before God: yea, +let them exceedingly rejoice. + +68:4 Sing unto God, sing praises to his name: extol him that rideth +upon the heavens by his name JAH, and rejoice before him. + +68:5 A father of the fatherless, and a judge of the widows, is God in +his holy habitation. + +68:6 God setteth the solitary in families: he bringeth out those which +are bound with chains: but the rebellious dwell in a dry land. + +68:7 O God, when thou wentest forth before thy people, when thou didst +march through the wilderness; Selah: + +68:8 The earth shook, the heavens also dropped at the presence of God: +even Sinai itself was moved at the presence of God, the God of Israel. + +68:9 Thou, O God, didst send a plentiful rain, whereby thou didst +confirm thine inheritance, when it was weary. + +68:10 Thy congregation hath dwelt therein: thou, O God, hast prepared +of thy goodness for the poor. + +68:11 The Lord gave the word: great was the company of those that +published it. + +68:12 Kings of armies did flee apace: and she that tarried at home +divided the spoil. + +68:13 Though ye have lien among the pots, yet shall ye be as the wings +of a dove covered with silver, and her feathers with yellow gold. + +68:14 When the Almighty scattered kings in it, it was white as snow in +Salmon. + +68:15 The hill of God is as the hill of Bashan; an high hill as the +hill of Bashan. + +68:16 Why leap ye, ye high hills? this is the hill which God desireth +to dwell in; yea, the LORD will dwell in it for ever. + +68:17 The chariots of God are twenty thousand, even thousands of +angels: the Lord is among them, as in Sinai, in the holy place. + +68:18 Thou hast ascended on high, thou hast led captivity captive: +thou hast received gifts for men; yea, for the rebellious also, that +the LORD God might dwell among them. + +68:19 Blessed be the Lord, who daily loadeth us with benefits, even +the God of our salvation. Selah. + +68:20 He that is our God is the God of salvation; and unto GOD the +Lord belong the issues from death. + +68:21 But God shall wound the head of his enemies, and the hairy scalp +of such an one as goeth on still in his trespasses. + +68:22 The Lord said, I will bring again from Bashan, I will bring my +people again from the depths of the sea: + +68:23 That thy foot may be dipped in the blood of thine enemies, and +the tongue of thy dogs in the same. + +68:24 They have seen thy goings, O God; even the goings of my God, my +King, in the sanctuary. + +68:25 The singers went before, the players on instruments followed +after; among them were the damsels playing with timbrels. + +68:26 Bless ye God in the congregations, even the Lord, from the +fountain of Israel. + +68:27 There is little Benjamin with their ruler, the princes of Judah +and their council, the princes of Zebulun, and the princes of +Naphtali. + +68:28 Thy God hath commanded thy strength: strengthen, O God, that +which thou hast wrought for us. + +68:29 Because of thy temple at Jerusalem shall kings bring presents +unto thee. + +68:30 Rebuke the company of spearmen, the multitude of the bulls, with +the calves of the people, till every one submit himself with pieces of +silver: scatter thou the people that delight in war. + +68:31 Princes shall come out of Egypt; Ethiopia shall soon stretch out +her hands unto God. + +68:32 Sing unto God, ye kingdoms of the earth; O sing praises unto the +Lord; Selah: + +68:33 To him that rideth upon the heavens of heavens, which were of +old; lo, he doth send out his voice, and that a mighty voice. + +68:34 Ascribe ye strength unto God: his excellency is over Israel, and +his strength is in the clouds. + +68:35 O God, thou art terrible out of thy holy places: the God of +Israel is he that giveth strength and power unto his people. Blessed +be God. + + + +69:1 Save me, O God; for the waters are come in unto my soul. + +69:2 I sink in deep mire, where there is no standing: I am come into +deep waters, where the floods overflow me. + +69:3 I am weary of my crying: my throat is dried: mine eyes fail while +I wait for my God. + +69:4 They that hate me without a cause are more than the hairs of mine +head: they that would destroy me, being mine enemies wrongfully, are +mighty: then I restored that which I took not away. + +69:5 O God, thou knowest my foolishness; and my sins are not hid from +thee. + +69:6 Let not them that wait on thee, O Lord GOD of hosts, be ashamed +for my sake: let not those that seek thee be confounded for my sake, O +God of Israel. + +69:7 Because for thy sake I have borne reproach; shame hath covered my +face. + +69:8 I am become a stranger unto my brethren, and an alien unto my +mother's children. + +69:9 For the zeal of thine house hath eaten me up; and the reproaches +of them that reproached thee are fallen upon me. + +69:10 When I wept, and chastened my soul with fasting, that was to my +reproach. + +69:11 I made sackcloth also my garment; and I became a proverb to +them. + +69:12 They that sit in the gate speak against me; and I was the song +of the drunkards. + +69:13 But as for me, my prayer is unto thee, O LORD, in an acceptable +time: O God, in the multitude of thy mercy hear me, in the truth of +thy salvation. + +69:14 Deliver me out of the mire, and let me not sink: let me be +delivered from them that hate me, and out of the deep waters. + +69:15 Let not the waterflood overflow me, neither let the deep swallow +me up, and let not the pit shut her mouth upon me. + +69:16 Hear me, O LORD; for thy lovingkindness is good: turn unto me +according to the multitude of thy tender mercies. + +69:17 And hide not thy face from thy servant; for I am in trouble: +hear me speedily. + +69:18 Draw nigh unto my soul, and redeem it: deliver me because of +mine enemies. + +69:19 Thou hast known my reproach, and my shame, and my dishonour: +mine adversaries are all before thee. + +69:20 Reproach hath broken my heart; and I am full of heaviness: and I +looked for some to take pity, but there was none; and for comforters, +but I found none. + +69:21 They gave me also gall for my meat; and in my thirst they gave +me vinegar to drink. + +69:22 Let their table become a snare before them: and that which +should have been for their welfare, let it become a trap. + +69:23 Let their eyes be darkened, that they see not; and make their +loins continually to shake. + +69:24 Pour out thine indignation upon them, and let thy wrathful anger +take hold of them. + +69:25 Let their habitation be desolate; and let none dwell in their +tents. + +69:26 For they persecute him whom thou hast smitten; and they talk to +the grief of those whom thou hast wounded. + +69:27 Add iniquity unto their iniquity: and let them not come into thy +righteousness. + +69:28 Let them be blotted out of the book of the living, and not be +written with the righteous. + +69:29 But I am poor and sorrowful: let thy salvation, O God, set me up +on high. + +69:30 I will praise the name of God with a song, and will magnify him +with thanksgiving. + +69:31 This also shall please the LORD better than an ox or bullock +that hath horns and hoofs. + +69:32 The humble shall see this, and be glad: and your heart shall +live that seek God. + +69:33 For the LORD heareth the poor, and despiseth not his prisoners. + +69:34 Let the heaven and earth praise him, the seas, and every thing +that moveth therein. + +69:35 For God will save Zion, and will build the cities of Judah: that +they may dwell there, and have it in possession. + +69:36 The seed also of his servants shall inherit it: and they that +love his name shall dwell therein. + + + +70:1 MAKE HASTE, O GOD, TO DELIVER ME; MAKE HASTE TO HELP ME, O LORD. + +70:2 Let them be ashamed and confounded that seek after my soul: let +them be turned backward, and put to confusion, that desire my hurt. + +70:3 Let them be turned back for a reward of their shame that say, +Aha, aha. + +70:4 Let all those that seek thee rejoice and be glad in thee: and let +such as love thy salvation say continually, Let God be magnified. + +70:5 But I am poor and needy: make haste unto me, O God: thou art my +help and my deliverer; O LORD, make no tarrying. + + + +71:1 In thee, O LORD, do I put my trust: let me never be put to +confusion. + +71:2 Deliver me in thy righteousness, and cause me to escape: incline +thine ear unto me, and save me. + +71:3 Be thou my strong habitation, whereunto I may continually resort: +thou hast given commandment to save me; for thou art my rock and my +fortress. + +71:4 Deliver me, O my God, out of the hand of the wicked, out of the +hand of the unrighteous and cruel man. + +71:5 For thou art my hope, O Lord GOD: thou art my trust from my +youth. + +71:6 By thee have I been holden up from the womb: thou art he that +took me out of my mother's bowels: my praise shall be continually of +thee. + +71:7 I am as a wonder unto many; but thou art my strong refuge. + +71:8 Let my mouth be filled with thy praise and with thy honour all +the day. + +71:9 Cast me not off in the time of old age; forsake me not when my +strength faileth. + +71:10 For mine enemies speak against me; and they that lay wait for my +soul take counsel together, + +71:11 Saying, God hath forsaken him: persecute and take him; for there +is none to deliver him. + +71:12 O God, be not far from me: O my God, make haste for my help. + +71:13 Let them be confounded and consumed that are adversaries to my +soul; let them be covered with reproach and dishonour that seek my +hurt. + +71:14 But I will hope continually, and will yet praise thee more and +more. + +71:15 My mouth shall shew forth thy righteousness and thy salvation +all the day; for I know not the numbers thereof. + +71:16 I will go in the strength of the Lord GOD: I will make mention +of thy righteousness, even of thine only. + +71:17 O God, thou hast taught me from my youth: and hitherto have I +declared thy wondrous works. + +71:18 Now also when I am old and greyheaded, O God, forsake me not; +until I have shewed thy strength unto this generation, and thy power +to every one that is to come. + +71:19 Thy righteousness also, O God, is very high, who hast done great +things: O God, who is like unto thee! + +71:20 Thou, which hast shewed me great and sore troubles, shalt +quicken me again, and shalt bring me up again from the depths of the +earth. + +71:21 Thou shalt increase my greatness, and comfort me on every side. + +71:22 I will also praise thee with the psaltery, even thy truth, O my +God: unto thee will I sing with the harp, O thou Holy One of Israel. + +71:23 My lips shall greatly rejoice when I sing unto thee; and my +soul, which thou hast redeemed. + +71:24 My tongue also shall talk of thy righteousness all the day long: +for they are confounded, for they are brought unto shame, that seek my +hurt. + + + +72:1 Give the king thy judgments, O God, and thy righteousness unto +the king's son. + +72:2 He shall judge thy people with righteousness, and thy poor with +judgment. + +72:3 The mountains shall bring peace to the people, and the little +hills, by righteousness. + +72:4 He shall judge the poor of the people, he shall save the children +of the needy, and shall break in pieces the oppressor. + +72:5 They shall fear thee as long as the sun and moon endure, +throughout all generations. + +72:6 He shall come down like rain upon the mown grass: as showers that +water the earth. + +72:7 In his days shall the righteous flourish; and abundance of peace +so long as the moon endureth. + +72:8 He shall have dominion also from sea to sea, and from the river +unto the ends of the earth. + +72:9 They that dwell in the wilderness shall bow before him; and his +enemies shall lick the dust. + +72:10 The kings of Tarshish and of the isles shall bring presents: the +kings of Sheba and Seba shall offer gifts. + +72:11 Yea, all kings shall fall down before him: all nations shall +serve him. + +72:12 For he shall deliver the needy when he crieth; the poor also, +and him that hath no helper. + +72:13 He shall spare the poor and needy, and shall save the souls of +the needy. + +72:14 He shall redeem their soul from deceit and violence: and +precious shall their blood be in his sight. + +72:15 And he shall live, and to him shall be given of the gold of +Sheba: prayer also shall be made for him continually; and daily shall +he be praised. + +72:16 There shall be an handful of corn in the earth upon the top of +the mountains; the fruit thereof shall shake like Lebanon: and they of +the city shall flourish like grass of the earth. + +72:17 His name shall endure for ever: his name shall be continued as +long as the sun: and men shall be blessed in him: all nations shall +call him blessed. + +72:18 Blessed be the LORD God, the God of Israel, who only doeth +wondrous things. + +72:19 And blessed be his glorious name for ever: and let the whole +earth be filled with his glory; Amen, and Amen. + +72:20 The prayers of David the son of Jesse are ended. + + + +73:1 Truly God is good to Israel, even to such as are of a clean +heart. + +73:2 But as for me, my feet were almost gone; my steps had well nigh +slipped. + +73:3 For I was envious at the foolish, when I saw the prosperity of +the wicked. + +73:4 For there are no bands in their death: but their strength is +firm. + +73:5 They are not in trouble as other men; neither are they plagued +like other men. + +73:6 Therefore pride compasseth them about as a chain; violence +covereth them as a garment. + +73:7 Their eyes stand out with fatness: they have more than heart +could wish. + +73:8 They are corrupt, and speak wickedly concerning oppression: they +speak loftily. + +73:9 They set their mouth against the heavens, and their tongue +walketh through the earth. + +73:10 Therefore his people return hither: and waters of a full cup are +wrung out to them. + +73:11 And they say, How doth God know? and is there knowledge in the +most High? + +73:12 Behold, these are the ungodly, who prosper in the world; they +increase in riches. + +73:13 Verily I have cleansed my heart in vain, and washed my hands in +innocency. + +73:14 For all the day long have I been plagued, and chastened every +morning. + +73:15 If I say, I will speak thus; behold, I should offend against the +generation of thy children. + +73:16 When I thought to know this, it was too painful for me; + +73:17 Until I went into the sanctuary of God; then understood I their +end. + +73:18 Surely thou didst set them in slippery places: thou castedst +them down into destruction. + +73:19 How are they brought into desolation, as in a moment! they are +utterly consumed with terrors. + +73:20 As a dream when one awaketh; so, O Lord, when thou awakest, thou +shalt despise their image. + +73:21 Thus my heart was grieved, and I was pricked in my reins. + +73:22 So foolish was I, and ignorant: I was as a beast before thee. + +73:23 Nevertheless I am continually with thee: thou hast holden me by +my right hand. + +73:24 Thou shalt guide me with thy counsel, and afterward receive me +to glory. + +73:25 Whom have I in heaven but thee? and there is none upon earth +that I desire beside thee. + +73:26 My flesh and my heart faileth: but God is the strength of my +heart, and my portion for ever. + +73:27 For, lo, they that are far from thee shall perish: thou hast +destroyed all them that go a whoring from thee. + +73:28 But it is good for me to draw near to God: I have put my trust +in the Lord GOD, that I may declare all thy works. + + + +74:1 O God, why hast thou cast us off for ever? why doth thine anger +smoke against the sheep of thy pasture? + +74:2 Remember thy congregation, which thou hast purchased of old; the +rod of thine inheritance, which thou hast redeemed; this mount Zion, +wherein thou hast dwelt. + +74:3 Lift up thy feet unto the perpetual desolations; even all that +the enemy hath done wickedly in the sanctuary. + +74:4 Thine enemies roar in the midst of thy congregations; they set up +their ensigns for signs. + +74:5 A man was famous according as he had lifted up axes upon the +thick trees. + +74:6 But now they break down the carved work thereof at once with axes +and hammers. + +74:7 They have cast fire into thy sanctuary, they have defiled by +casting down the dwelling place of thy name to the ground. + +74:8 They said in their hearts, Let us destroy them together: they +have burned up all the synagogues of God in the land. + +74:9 We see not our signs: there is no more any prophet: neither is +there among us any that knoweth how long. + +74:10 O God, how long shall the adversary reproach? shall the enemy +blaspheme thy name for ever? + +74:11 Why withdrawest thou thy hand, even thy right hand? pluck it out +of thy bosom. + +74:12 For God is my King of old, working salvation in the midst of the +earth. + +74:13 Thou didst divide the sea by thy strength: thou brakest the +heads of the dragons in the waters. + +74:14 Thou brakest the heads of leviathan in pieces, and gavest him to +be meat to the people inhabiting the wilderness. + +74:15 Thou didst cleave the fountain and the flood: thou driedst up +mighty rivers. + +74:16 The day is thine, the night also is thine: thou hast prepared +the light and the sun. + +74:17 Thou hast set all the borders of the earth: thou hast made +summer and winter. + +74:18 Remember this, that the enemy hath reproached, O LORD, and that +the foolish people have blasphemed thy name. + +74:19 O deliver not the soul of thy turtledove unto the multitude of +the wicked: forget not the congregation of thy poor for ever. + +74:20 Have respect unto the covenant: for the dark places of the earth +are full of the habitations of cruelty. + +74:21 O let not the oppressed return ashamed: let the poor and needy +praise thy name. + +74:22 Arise, O God, plead thine own cause: remember how the foolish +man reproacheth thee daily. + +74:23 Forget not the voice of thine enemies: the tumult of those that +rise up against thee increaseth continually. + + + +75:1 Unto thee, O God, do we give thanks, unto thee do we give thanks: +for that thy name is near thy wondrous works declare. + +75:2 When I shall receive the congregation I will judge uprightly. + +75:3 The earth and all the inhabitants thereof are dissolved: I bear +up the pillars of it. Selah. + +75:4 I said unto the fools, Deal not foolishly: and to the wicked, +Lift not up the horn: + +75:5 Lift not up your horn on high: speak not with a stiff neck. + +75:6 For promotion cometh neither from the east, nor from the west, +nor from the south. + +75:7 But God is the judge: he putteth down one, and setteth up +another. + +75:8 For in the hand of the LORD there is a cup, and the wine is red; +it is full of mixture; and he poureth out of the same: but the dregs +thereof, all the wicked of the earth shall wring them out, and drink +them. + +75:9 But I will declare for ever; I will sing praises to the God of +Jacob. + +75:10 All the horns of the wicked also will I cut off; but the horns +of the righteous shall be exalted. + + + +76:1 In Judah is God known: his name is great in Israel. + +76:2 In Salem also is his tabernacle, and his dwelling place in Zion. + +76:3 There brake he the arrows of the bow, the shield, and the sword, +and the battle. Selah. + +76:4 Thou art more glorious and excellent than the mountains of prey. + +76:5 The stouthearted are spoiled, they have slept their sleep: and +none of the men of might have found their hands. + +76:6 At thy rebuke, O God of Jacob, both the chariot and horse are +cast into a dead sleep. + +76:7 Thou, even thou, art to be feared: and who may stand in thy sight +when once thou art angry? + +76:8 Thou didst cause judgment to be heard from heaven; the earth +feared, and was still, + +76:9 When God arose to judgment, to save all the meek of the earth. +Selah. + +76:10 Surely the wrath of man shall praise thee: the remainder of +wrath shalt thou restrain. + +76:11 Vow, and pay unto the LORD your God: let all that be round about +him bring presents unto him that ought to be feared. + +76:12 He shall cut off the spirit of princes: he is terrible to the +kings of the earth. + + + +77:1 I cried unto God with my voice, even unto God with my voice; and +he gave ear unto me. + +77:2 In the day of my trouble I sought the Lord: my sore ran in the +night, and ceased not: my soul refused to be comforted. + +77:3 I remembered God, and was troubled: I complained, and my spirit +was overwhelmed. Selah. + +77:4 Thou holdest mine eyes waking: I am so troubled that I cannot +speak. + +77:5 I have considered the days of old, the years of ancient times. + +77:6 I call to remembrance my song in the night: I commune with mine +own heart: and my spirit made diligent search. + +77:7 Will the Lord cast off for ever? and will he be favourable no +more? + +77:8 Is his mercy clean gone for ever? doth his promise fail for +evermore? + +77:9 Hath God forgotten to be gracious? hath he in anger shut up his +tender mercies? Selah. + +77:10 And I said, This is my infirmity: but I will remember the years +of the right hand of the most High. + +77:11 I will remember the works of the LORD: surely I will remember +thy wonders of old. + +77:12 I will meditate also of all thy work, and talk of thy doings. + +77:13 Thy way, O God, is in the sanctuary: who is so great a God as +our God? + +77:14 Thou art the God that doest wonders: thou hast declared thy +strength among the people. + +77:15 Thou hast with thine arm redeemed thy people, the sons of Jacob +and Joseph. Selah. + +77:16 The waters saw thee, O God, the waters saw thee; they were +afraid: the depths also were troubled. + +77:17 The clouds poured out water: the skies sent out a sound: thine +arrows also went abroad. + +77:18 The voice of thy thunder was in the heaven: the lightnings +lightened the world: the earth trembled and shook. + +77:19 Thy way is in the sea, and thy path in the great waters, and thy +footsteps are not known. + +77:20 Thou leddest thy people like a flock by the hand of Moses and +Aaron. + + + +78:1 Give ear, O my people, to my law: incline your ears to the words +of my mouth. + +78:2 I will open my mouth in a parable: I will utter dark sayings of +old: + +78:3 Which we have heard and known, and our fathers have told us. + +78:4 We will not hide them from their children, shewing to the +generation to come the praises of the LORD, and his strength, and his +wonderful works that he hath done. + +78:5 For he established a testimony in Jacob, and appointed a law in +Israel, which he commanded our fathers, that they should make them +known to their children: + +78:6 That the generation to come might know them, even the children +which should be born; who should arise and declare them to their +children: + +78:7 That they might set their hope in God, and not forget the works +of God, but keep his commandments: + +78:8 And might not be as their fathers, a stubborn and rebellious +generation; a generation that set not their heart aright, and whose +spirit was not stedfast with God. + +78:9 The children of Ephraim, being armed, and carrying bows, turned +back in the day of battle. + +78:10 They kept not the covenant of God, and refused to walk in his +law; + +78:11 And forgat his works, and his wonders that he had shewed them. + +78:12 Marvellous things did he in the sight of their fathers, in the +land of Egypt, in the field of Zoan. + +78:13 He divided the sea, and caused them to pass through; and he made +the waters to stand as an heap. + +78:14 In the daytime also he led them with a cloud, and all the night +with a light of fire. + +78:15 He clave the rocks in the wilderness, and gave them drink as out +of the great depths. + +78:16 He brought streams also out of the rock, and caused waters to +run down like rivers. + +78:17 And they sinned yet more against him by provoking the most High +in the wilderness. + +78:18 And they tempted God in their heart by asking meat for their +lust. + +78:19 Yea, they spake against God; they said, Can God furnish a table +in the wilderness? + +78:20 Behold, he smote the rock, that the waters gushed out, and the +streams overflowed; can he give bread also? can he provide flesh for +his people? + +78:21 Therefore the LORD heard this, and was wroth: so a fire was +kindled against Jacob, and anger also came up against Israel; + +78:22 Because they believed not in God, and trusted not in his +salvation: + +78:23 Though he had commanded the clouds from above, and opened the +doors of heaven, + +78:24 And had rained down manna upon them to eat, and had given them +of the corn of heaven. + +78:25 Man did eat angels' food: he sent them meat to the full. + +78:26 He caused an east wind to blow in the heaven: and by his power +he brought in the south wind. + +78:27 He rained flesh also upon them as dust, and feathered fowls like +as the sand of the sea: + +78:28 And he let it fall in the midst of their camp, round about their +habitations. + +78:29 So they did eat, and were well filled: for he gave them their +own desire; + +78:30 They were not estranged from their lust. But while their meat +was yet in their mouths, + +78:31 The wrath of God came upon them, and slew the fattest of them, +and smote down the chosen men of Israel. + +78:32 For all this they sinned still, and believed not for his +wondrous works. + +78:33 Therefore their days did he consume in vanity, and their years +in trouble. + +78:34 When he slew them, then they sought him: and they returned and +enquired early after God. + +78:35 And they remembered that God was their rock, and the high God +their redeemer. + +78:36 Nevertheless they did flatter him with their mouth, and they +lied unto him with their tongues. + +78:37 For their heart was not right with him, neither were they +stedfast in his covenant. + +78:38 But he, being full of compassion, forgave their iniquity, and +destroyed them not: yea, many a time turned he his anger away, and did +not stir up all his wrath. + +78:39 For he remembered that they were but flesh; a wind that passeth +away, and cometh not again. + +78:40 How oft did they provoke him in the wilderness, and grieve him +in the desert! + +78:41 Yea, they turned back and tempted God, and limited the Holy One +of Israel. + +78:42 They remembered not his hand, nor the day when he delivered them +from the enemy. + +78:43 How he had wrought his signs in Egypt, and his wonders in the +field of Zoan. + +78:44 And had turned their rivers into blood; and their floods, that +they could not drink. + +78:45 He sent divers sorts of flies among them, which devoured them; +and frogs, which destroyed them. + +78:46 He gave also their increase unto the caterpiller, and their +labour unto the locust. + +78:47 He destroyed their vines with hail, and their sycomore trees +with frost. + +78:48 He gave up their cattle also to the hail, and their flocks to +hot thunderbolts. + +78:49 He cast upon them the fierceness of his anger, wrath, and +indignation, and trouble, by sending evil angels among them. + +78:50 He made a way to his anger; he spared not their soul from death, +but gave their life over to the pestilence; + +78:51 And smote all the firstborn in Egypt; the chief of their +strength in the tabernacles of Ham: + +78:52 But made his own people to go forth like sheep, and guided them +in the wilderness like a flock. + +78:53 And he led them on safely, so that they feared not: but the sea +overwhelmed their enemies. + +78:54 And he brought them to the border of his sanctuary, even to this +mountain, which his right hand had purchased. + +78:55 He cast out the heathen also before them, and divided them an +inheritance by line, and made the tribes of Israel to dwell in their +tents. + +78:56 Yet they tempted and provoked the most high God, and kept not +his testimonies: + +78:57 But turned back, and dealt unfaithfully like their fathers: they +were turned aside like a deceitful bow. + +78:58 For they provoked him to anger with their high places, and moved +him to jealousy with their graven images. + +78:59 When God heard this, he was wroth, and greatly abhorred Israel: + +78:60 So that he forsook the tabernacle of Shiloh, the tent which he +placed among men; + +78:61 And delivered his strength into captivity, and his glory into +the enemy's hand. + +78:62 He gave his people over also unto the sword; and was wroth with +his inheritance. + +78:63 The fire consumed their young men; and their maidens were not +given to marriage. + +78:64 Their priests fell by the sword; and their widows made no +lamentation. + +78:65 Then the LORD awaked as one out of sleep, and like a mighty man +that shouteth by reason of wine. + +78:66 And he smote his enemies in the hinder parts: he put them to a +perpetual reproach. + +78:67 Moreover he refused the tabernacle of Joseph, and chose not the +tribe of Ephraim: + +78:68 But chose the tribe of Judah, the mount Zion which he loved. + +78:69 And he built his sanctuary like high palaces, like the earth +which he hath established for ever. + +78:70 He chose David also his servant, and took him from the +sheepfolds: + +78:71 From following the ewes great with young he brought him to feed +Jacob his people, and Israel his inheritance. + +78:72 So he fed them according to the integrity of his heart; and +guided them by the skilfulness of his hands. + + + +79:1 O God, the heathen are come into thine inheritance; thy holy +temple have they defiled; they have laid Jerusalem on heaps. + +79:2 The dead bodies of thy servants have they given to be meat unto +the fowls of the heaven, the flesh of thy saints unto the beasts of +the earth. + +79:3 Their blood have they shed like water round about Jerusalem; and +there was none to bury them. + +79:4 We are become a reproach to our neighbours, a scorn and derision +to them that are round about us. + +79:5 How long, LORD? wilt thou be angry for ever? shall thy jealousy +burn like fire? + +79:6 Pour out thy wrath upon the heathen that have not known thee, and +upon the kingdoms that have not called upon thy name. + +79:7 For they have devoured Jacob, and laid waste his dwelling place. + +79:8 O remember not against us former iniquities: let thy tender +mercies speedily prevent us: for we are brought very low. + +79:9 Help us, O God of our salvation, for the glory of thy name: and +deliver us, and purge away our sins, for thy name's sake. + +79:10 Wherefore should the heathen say, Where is their God? let him be +known among the heathen in our sight by the revenging of the blood of +thy servants which is shed. + +79:11 Let the sighing of the prisoner come before thee; according to +the greatness of thy power preserve thou those that are appointed to +die; + +79:12 And render unto our neighbours sevenfold into their bosom their +reproach, wherewith they have reproached thee, O Lord. + +79:13 So we thy people and sheep of thy pasture will give thee thanks +for ever: we will shew forth thy praise to all generations. + + + +80:1 Give ear, O Shepherd of Israel, thou that leadest Joseph like a +flock; thou that dwellest between the cherubims, shine forth. + +80:2 Before Ephraim and Benjamin and Manasseh stir up thy strength, +and come and save us. + +80:3 Turn us again, O God, and cause thy face to shine; and we shall +be saved. + +80:4 O LORD God of hosts, how long wilt thou be angry against the +prayer of thy people? + +80:5 Thou feedest them with the bread of tears; and givest them tears +to drink in great measure. + +80:6 Thou makest us a strife unto our neighbours: and our enemies +laugh among themselves. + +80:7 Turn us again, O God of hosts, and cause thy face to shine; and +we shall be saved. + +80:8 Thou hast brought a vine out of Egypt: thou hast cast out the +heathen, and planted it. + +80:9 Thou preparedst room before it, and didst cause it to take deep +root, and it filled the land. + +80:10 The hills were covered with the shadow of it, and the boughs +thereof were like the goodly cedars. + +80:11 She sent out her boughs unto the sea, and her branches unto the +river. + +80:12 Why hast thou then broken down her hedges, so that all they +which pass by the way do pluck her? + +80:13 The boar out of the wood doth waste it, and the wild beast of +the field doth devour it. + +80:14 Return, we beseech thee, O God of hosts: look down from heaven, +and behold, and visit this vine; + +80:15 And the vineyard which thy right hand hath planted, and the +branch that thou madest strong for thyself. + +80:16 It is burned with fire, it is cut down: they perish at the +rebuke of thy countenance. + +80:17 Let thy hand be upon the man of thy right hand, upon the son of +man whom thou madest strong for thyself. + +80:18 So will not we go back from thee: quicken us, and we will call +upon thy name. + +80:19 Turn us again, O LORD God of hosts, cause thy face to shine; and +we shall be saved. + + + +81:1 Sing aloud unto God our strength: make a joyful noise unto the +God of Jacob. + +81:2 Take a psalm, and bring hither the timbrel, the pleasant harp +with the psaltery. + +81:3 Blow up the trumpet in the new moon, in the time appointed, on +our solemn feast day. + +81:4 For this was a statute for Israel, and a law of the God of Jacob. + +81:5 This he ordained in Joseph for a testimony, when he went out +through the land of Egypt: where I heard a language that I understood +not. + +81:6 I removed his shoulder from the burden: his hands were delivered +from the pots. + +81:7 Thou calledst in trouble, and I delivered thee; I answered thee +in the secret place of thunder: I proved thee at the waters of +Meribah. + +Selah. + +81:8 Hear, O my people, and I will testify unto thee: O Israel, if +thou wilt hearken unto me; + +81:9 There shall no strange god be in thee; neither shalt thou worship +any strange god. + +81:10 I am the LORD thy God, which brought thee out of the land of +Egypt: open thy mouth wide, and I will fill it. + +81:11 But my people would not hearken to my voice; and Israel would +none of me. + +81:12 So I gave them up unto their own hearts' lust: and they walked +in their own counsels. + +81:13 Oh that my people had hearkened unto me, and Israel had walked +in my ways! + +81:14 I should soon have subdued their enemies, and turned my hand +against their adversaries. + +81:15 The haters of the LORD should have submitted themselves unto +him: but their time should have endured for ever. + +81:16 He should have fed them also with the finest of the wheat: and +with honey out of the rock should I have satisfied thee. + + + +82:1 God standeth in the congregation of the mighty; he judgeth among +the gods. + +82:2 How long will ye judge unjustly, and accept the persons of the +wicked? Selah. + +82:3 Defend the poor and fatherless: do justice to the afflicted and +needy. + +82:4 Deliver the poor and needy: rid them out of the hand of the +wicked. + +82:5 They know not, neither will they understand; they walk on in +darkness: all the foundations of the earth are out of course. + +82:6 I have said, Ye are gods; and all of you are children of the most +High. + +82:7 But ye shall die like men, and fall like one of the princes. + +82:8 Arise, O God, judge the earth: for thou shalt inherit all +nations. + + + +83:1 Keep not thou silence, O God: hold not thy peace, and be not +still, O God. + +83:2 For, lo, thine enemies make a tumult: and they that hate thee +have lifted up the head. + +83:3 They have taken crafty counsel against thy people, and consulted +against thy hidden ones. + +83:4 They have said, Come, and let us cut them off from being a +nation; that the name of Israel may be no more in remembrance. + +83:5 For they have consulted together with one consent: they are +confederate against thee: + +83:6 The tabernacles of Edom, and the Ishmaelites; of Moab, and the +Hagarenes; + +83:7 Gebal, and Ammon, and Amalek; the Philistines with the +inhabitants of Tyre; + +83:8 Assur also is joined with them: they have holpen the children of +Lot. + +Selah. + +83:9 Do unto them as unto the Midianites; as to Sisera, as to Jabin, +at the brook of Kison: + +83:10 Which perished at Endor: they became as dung for the earth. + +83:11 Make their nobles like Oreb, and like Zeeb: yea, all their +princes as Zebah, and as Zalmunna: + +83:12 Who said, Let us take to ourselves the houses of God in +possession. + +83:13 O my God, make them like a wheel; as the stubble before the +wind. + +83:14 As the fire burneth a wood, and as the flame setteth the +mountains on fire; + +83:15 So persecute them with thy tempest, and make them afraid with +thy storm. + +83:16 Fill their faces with shame; that they may seek thy name, O +LORD. + +83:17 Let them be confounded and troubled for ever; yea, let them be +put to shame, and perish: + +83:18 That men may know that thou, whose name alone is JEHOVAH, art +the most high over all the earth. + + + +84:1 How amiable are thy tabernacles, O LORD of hosts! + +84:2 My soul longeth, yea, even fainteth for the courts of the LORD: +my heart and my flesh crieth out for the living God. + +84:3 Yea, the sparrow hath found an house, and the swallow a nest for +herself, where she may lay her young, even thine altars, O LORD of +hosts, my King, and my God. + +84:4 Blessed are they that dwell in thy house: they will be still +praising thee. Selah. + +84:5 Blessed is the man whose strength is in thee; in whose heart are +the ways of them. + +84:6 Who passing through the valley of Baca make it a well; the rain +also filleth the pools. + +84:7 They go from strength to strength, every one of them in Zion +appeareth before God. + +84:8 O LORD God of hosts, hear my prayer: give ear, O God of Jacob. +Selah. + +84:9 Behold, O God our shield, and look upon the face of thine +anointed. + +84:10 For a day in thy courts is better than a thousand. I had rather +be a doorkeeper in the house of my God, than to dwell in the tents of +wickedness. + +84:11 For the LORD God is a sun and shield: the LORD will give grace +and glory: no good thing will he withhold from them that walk +uprightly. + +84:12 O LORD of hosts, blessed is the man that trusteth in thee. + + + +85:1 Lord, thou hast been favourable unto thy land: thou hast brought +back the captivity of Jacob. + +85:2 Thou hast forgiven the iniquity of thy people, thou hast covered +all their sin. Selah. + +85:3 Thou hast taken away all thy wrath: thou hast turned thyself from +the fierceness of thine anger. + +85:4 Turn us, O God of our salvation, and cause thine anger toward us +to cease. + +85:5 Wilt thou be angry with us for ever? wilt thou draw out thine +anger to all generations? + +85:6 Wilt thou not revive us again: that thy people may rejoice in +thee? + +85:7 Shew us thy mercy, O LORD, and grant us thy salvation. + +85:8 I will hear what God the LORD will speak: for he will speak peace +unto his people, and to his saints: but let them not turn again to +folly. + +85:9 Surely his salvation is nigh them that fear him; that glory may +dwell in our land. + +85:10 Mercy and truth are met together; righteousness and peace have +kissed each other. + +85:11 Truth shall spring out of the earth; and righteousness shall +look down from heaven. + +85:12 Yea, the LORD shall give that which is good; and our land shall +yield her increase. + +85:13 Righteousness shall go before him; and shall set us in the way +of his steps. + + + +86:1 Bow down thine ear, O LORD, hear me: for I am poor and needy. + +86:2 Preserve my soul; for I am holy: O thou my God, save thy servant +that trusteth in thee. + +86:3 Be merciful unto me, O Lord: for I cry unto thee daily. + +86:4 Rejoice the soul of thy servant: for unto thee, O Lord, do I lift +up my soul. + +86:5 For thou, Lord, art good, and ready to forgive; and plenteous in +mercy unto all them that call upon thee. + +86:6 Give ear, O LORD, unto my prayer; and attend to the voice of my +supplications. + +86:7 In the day of my trouble I will call upon thee: for thou wilt +answer me. + +86:8 Among the gods there is none like unto thee, O Lord; neither are +there any works like unto thy works. + +86:9 All nations whom thou hast made shall come and worship before +thee, O Lord; and shall glorify thy name. + +86:10 For thou art great, and doest wondrous things: thou art God +alone. + +86:11 Teach me thy way, O LORD; I will walk in thy truth: unite my +heart to fear thy name. + +86:12 I will praise thee, O Lord my God, with all my heart: and I will +glorify thy name for evermore. + +86:13 For great is thy mercy toward me: and thou hast delivered my +soul from the lowest hell. + +86:14 O God, the proud are risen against me, and the assemblies of +violent men have sought after my soul; and have not set thee before +them. + +86:15 But thou, O Lord, art a God full of compassion, and gracious, +long suffering, and plenteous in mercy and truth. + +86:16 O turn unto me, and have mercy upon me; give thy strength unto +thy servant, and save the son of thine handmaid. + +86:17 Shew me a token for good; that they which hate me may see it, +and be ashamed: because thou, LORD, hast holpen me, and comforted me. + + + +87:1 His foundation is in the holy mountains. + +87:2 The LORD loveth the gates of Zion more than all the dwellings of +Jacob. + +87:3 Glorious things are spoken of thee, O city of God. Selah. + +87:4 I will make mention of Rahab and Babylon to them that know me: +behold Philistia, and Tyre, with Ethiopia; this man was born there. + +87:5 And of Zion it shall be said, This and that man was born in her: +and the highest himself shall establish her. + +87:6 The LORD shall count, when he writeth up the people, that this +man was born there. Selah. + +87:7 As well the singers as the players on instruments shall be there: +all my springs are in thee. + + + +88:1 O lord God of my salvation, I have cried day and night before +thee: + +88:2 Let my prayer come before thee: incline thine ear unto my cry; + +88:3 For my soul is full of troubles: and my life draweth nigh unto +the grave. + +88:4 I am counted with them that go down into the pit: I am as a man +that hath no strength: + +88:5 Free among the dead, like the slain that lie in the grave, whom +thou rememberest no more: and they are cut off from thy hand. + +88:6 Thou hast laid me in the lowest pit, in darkness, in the deeps. + +88:7 Thy wrath lieth hard upon me, and thou hast afflicted me with all +thy waves. Selah. + +88:8 Thou hast put away mine acquaintance far from me; thou hast made +me an abomination unto them: I am shut up, and I cannot come forth. + +88:9 Mine eye mourneth by reason of affliction: LORD, I have called +daily upon thee, I have stretched out my hands unto thee. + +88:10 Wilt thou shew wonders to the dead? shall the dead arise and +praise thee? Selah. + +88:11 Shall thy lovingkindness be declared in the grave? or thy +faithfulness in destruction? + +88:12 Shall thy wonders be known in the dark? and thy righteousness in +the land of forgetfulness? + +88:13 But unto thee have I cried, O LORD; and in the morning shall my +prayer prevent thee. + +88:14 LORD, why castest thou off my soul? why hidest thou thy face +from me? + +88:15 I am afflicted and ready to die from my youth up: while I suffer +thy terrors I am distracted. + +88:16 Thy fierce wrath goeth over me; thy terrors have cut me off. + +88:17 They came round about me daily like water; they compassed me +about together. + +88:18 Lover and friend hast thou put far from me, and mine +acquaintance into darkness. + + + +89:1 I will sing of the mercies of the LORD for ever: with my mouth +will I make known thy faithfulness to all generations. + +89:2 For I have said, Mercy shall be built up for ever: thy +faithfulness shalt thou establish in the very heavens. + +89:3 I have made a covenant with my chosen, I have sworn unto David my +servant, + +89:4 Thy seed will I establish for ever, and build up thy throne to +all generations. Selah. + +89:5 And the heavens shall praise thy wonders, O LORD: thy +faithfulness also in the congregation of the saints. + +89:6 For who in the heaven can be compared unto the LORD? who among +the sons of the mighty can be likened unto the LORD? + +89:7 God is greatly to be feared in the assembly of the saints, and to +be had in reverence of all them that are about him. + +89:8 O LORD God of hosts, who is a strong LORD like unto thee? or to +thy faithfulness round about thee? + +89:9 Thou rulest the raging of the sea: when the waves thereof arise, +thou stillest them. + +89:10 Thou hast broken Rahab in pieces, as one that is slain; thou +hast scattered thine enemies with thy strong arm. + +89:11 The heavens are thine, the earth also is thine: as for the world +and the fulness thereof, thou hast founded them. + +89:12 The north and the south thou hast created them: Tabor and Hermon +shall rejoice in thy name. + +89:13 Thou hast a mighty arm: strong is thy hand, and high is thy +right hand. + +89:14 Justice and judgment are the habitation of thy throne: mercy and +truth shall go before thy face. + +89:15 Blessed is the people that know the joyful sound: they shall +walk, O LORD, in the light of thy countenance. + +89:16 In thy name shall they rejoice all the day: and in thy +righteousness shall they be exalted. + +89:17 For thou art the glory of their strength: and in thy favour our +horn shall be exalted. + +89:18 For the LORD is our defence; and the Holy One of Israel is our +king. + +89:19 Then thou spakest in vision to thy holy one, and saidst, I have +laid help upon one that is mighty; I have exalted one chosen out of +the people. + +89:20 I have found David my servant; with my holy oil have I anointed +him: + +89:21 With whom my hand shall be established: mine arm also shall +strengthen him. + +89:22 The enemy shall not exact upon him; nor the son of wickedness +afflict him. + +89:23 And I will beat down his foes before his face, and plague them +that hate him. + +89:24 But my faithfulness and my mercy shall be with him: and in my +name shall his horn be exalted. + +89:25 I will set his hand also in the sea, and his right hand in the +rivers. + +89:26 He shall cry unto me, Thou art my father, my God, and the rock +of my salvation. + +89:27 Also I will make him my firstborn, higher than the kings of the +earth. + +89:28 My mercy will I keep for him for evermore, and my covenant shall +stand fast with him. + +89:29 His seed also will I make to endure for ever, and his throne as +the days of heaven. + +89:30 If his children forsake my law, and walk not in my judgments; + +89:31 If they break my statutes, and keep not my commandments; + +89:32 Then will I visit their transgression with the rod, and their +iniquity with stripes. + +89:33 Nevertheless my lovingkindness will I not utterly take from him, +nor suffer my faithfulness to fail. + +89:34 My covenant will I not break, nor alter the thing that is gone +out of my lips. + +89:35 Once have I sworn by my holiness that I will not lie unto David. + +89:36 His seed shall endure for ever, and his throne as the sun before +me. + +89:37 It shall be established for ever as the moon, and as a faithful +witness in heaven. Selah. + +89:38 But thou hast cast off and abhorred, thou hast been wroth with +thine anointed. + +89:39 Thou hast made void the covenant of thy servant: thou hast +profaned his crown by casting it to the ground. + +89:40 Thou hast broken down all his hedges; thou hast brought his +strong holds to ruin. + +89:41 All that pass by the way spoil him: he is a reproach to his +neighbours. + +89:42 Thou hast set up the right hand of his adversaries; thou hast +made all his enemies to rejoice. + +89:43 Thou hast also turned the edge of his sword, and hast not made +him to stand in the battle. + +89:44 Thou hast made his glory to cease, and cast his throne down to +the ground. + +89:45 The days of his youth hast thou shortened: thou hast covered him +with shame. Selah. + +89:46 How long, LORD? wilt thou hide thyself for ever? shall thy wrath +burn like fire? + +89:47 Remember how short my time is: wherefore hast thou made all men +in vain? + +89:48 What man is he that liveth, and shall not see death? shall he +deliver his soul from the hand of the grave? Selah. + +89:49 Lord, where are thy former lovingkindnesses, which thou swarest +unto David in thy truth? + +89:50 Remember, Lord, the reproach of thy servants; how I do bear in +my bosom the reproach of all the mighty people; + +89:51 Wherewith thine enemies have reproached, O LORD; wherewith they +have reproached the footsteps of thine anointed. + +89:52 Blessed be the LORD for evermore. Amen, and Amen. + + + +90:1 Lord, thou hast been our dwelling place in all generations. + +90:2 Before the mountains were brought forth, or ever thou hadst +formed the earth and the world, even from everlasting to everlasting, +thou art God. + +90:3 Thou turnest man to destruction; and sayest, Return, ye children +of men. + +90:4 For a thousand years in thy sight are but as yesterday when it is +past, and as a watch in the night. + +90:5 Thou carriest them away as with a flood; they are as a sleep: in +the morning they are like grass which groweth up. + +90:6 In the morning it flourisheth, and groweth up; in the evening it +is cut down, and withereth. + +90:7 For we are consumed by thine anger, and by thy wrath are we +troubled. + +90:8 Thou hast set our iniquities before thee, our secret sins in the +light of thy countenance. + +90:9 For all our days are passed away in thy wrath: we spend our years +as a tale that is told. + +90:10 The days of our years are threescore years and ten; and if by +reason of strength they be fourscore years, yet is their strength +labour and sorrow; for it is soon cut off, and we fly away. + +90:11 Who knoweth the power of thine anger? even according to thy +fear, so is thy wrath. + +90:12 So teach us to number our days, that we may apply our hearts +unto wisdom. + +90:13 Return, O LORD, how long? and let it repent thee concerning thy +servants. + +90:14 O satisfy us early with thy mercy; that we may rejoice and be +glad all our days. + +90:15 Make us glad according to the days wherein thou hast afflicted +us, and the years wherein we have seen evil. + +90:16 Let thy work appear unto thy servants, and thy glory unto their +children. + +90:17 And let the beauty of the LORD our God be upon us: and establish +thou the work of our hands upon us; yea, the work of our hands +establish thou it. + + + +91:1 He that dwelleth in the secret place of the most High shall abide +under the shadow of the Almighty. + +91:2 I will say of the LORD, He is my refuge and my fortress: my God; +in him will I trust. + +91:3 Surely he shall deliver thee from the snare of the fowler, and +from the noisome pestilence. + +91:4 He shall cover thee with his feathers, and under his wings shalt +thou trust: his truth shall be thy shield and buckler. + +91:5 Thou shalt not be afraid for the terror by night; nor for the +arrow that flieth by day; + +91:6 Nor for the pestilence that walketh in darkness; nor for the +destruction that wasteth at noonday. + +91:7 A thousand shall fall at thy side, and ten thousand at thy right +hand; but it shall not come nigh thee. + +91:8 Only with thine eyes shalt thou behold and see the reward of the +wicked. + +91:9 Because thou hast made the LORD, which is my refuge, even the +most High, thy habitation; + +91:10 There shall no evil befall thee, neither shall any plague come +nigh thy dwelling. + +91:11 For he shall give his angels charge over thee, to keep thee in +all thy ways. + +91:12 They shall bear thee up in their hands, lest thou dash thy foot +against a stone. + +91:13 Thou shalt tread upon the lion and adder: the young lion and the +dragon shalt thou trample under feet. + +91:14 Because he hath set his love upon me, therefore will I deliver +him: I will set him on high, because he hath known my name. + +91:15 He shall call upon me, and I will answer him: I will be with him +in trouble; I will deliver him, and honour him. + +91:16 With long life will I satisfy him, and shew him my salvation. + + + +92:1 IT IS A GOOD THING TO GIVE THANKS UNTO THE LORD, AND TO SING +PRAISES UNTO THY NAME, O MOST HIGH: + +92:2 To shew forth thy lovingkindness in the morning, and thy +faithfulness every night, + +92:3 Upon an instrument of ten strings, and upon the psaltery; upon +the harp with a solemn sound. + +92:4 For thou, LORD, hast made me glad through thy work: I will +triumph in the works of thy hands. + +92:5 O LORD, how great are thy works! and thy thoughts are very deep. + +92:6 A brutish man knoweth not; neither doth a fool understand this. + +92:7 When the wicked spring as the grass, and when all the workers of +iniquity do flourish; it is that they shall be destroyed for ever: + +92:8 But thou, LORD, art most high for evermore. + +92:9 For, lo, thine enemies, O LORD, for, lo, thine enemies shall +perish; all the workers of iniquity shall be scattered. + +92:10 But my horn shalt thou exalt like the horn of an unicorn: I +shall be anointed with fresh oil. + +92:11 Mine eye also shall see my desire on mine enemies, and mine ears +shall hear my desire of the wicked that rise up against me. + +92:12 The righteous shall flourish like the palm tree: he shall grow +like a cedar in Lebanon. + +92:13 Those that be planted in the house of the LORD shall flourish in +the courts of our God. + +92:14 They shall still bring forth fruit in old age; they shall be fat +and flourishing; + +92:15 To shew that the LORD is upright: he is my rock, and there is no +unrighteousness in him. + + + +93:1 The LORD reigneth, he is clothed with majesty; the LORD is +clothed with strength, wherewith he hath girded himself: the world +also is stablished, that it cannot be moved. + +93:2 Thy throne is established of old: thou art from everlasting. + +93:3 The floods have lifted up, O LORD, the floods have lifted up +their voice; the floods lift up their waves. + +93:4 The LORD on high is mightier than the noise of many waters, yea, +than the mighty waves of the sea. + +93:5 Thy testimonies are very sure: holiness becometh thine house, O +LORD, for ever. + + + +94:1 O Lord God, to whom vengeance belongeth; O God, to whom vengeance +belongeth, shew thyself. + +94:2 Lift up thyself, thou judge of the earth: render a reward to the +proud. + +94:3 LORD, how long shall the wicked, how long shall the wicked +triumph? + +94:4 How long shall they utter and speak hard things? and all the +workers of iniquity boast themselves? + +94:5 They break in pieces thy people, O LORD, and afflict thine +heritage. + +94:6 They slay the widow and the stranger, and murder the fatherless. + +94:7 Yet they say, The LORD shall not see, neither shall the God of +Jacob regard it. + +94:8 Understand, ye brutish among the people: and ye fools, when will +ye be wise? + +94:9 He that planted the ear, shall he not hear? he that formed the +eye, shall he not see? + +94:10 He that chastiseth the heathen, shall not he correct? he that +teacheth man knowledge, shall not he know? + +94:11 The LORD knoweth the thoughts of man, that they are vanity. + +94:12 Blessed is the man whom thou chastenest, O LORD, and teachest +him out of thy law; + +94:13 That thou mayest give him rest from the days of adversity, until +the pit be digged for the wicked. + +94:14 For the LORD will not cast off his people, neither will he +forsake his inheritance. + +94:15 But judgment shall return unto righteousness: and all the +upright in heart shall follow it. + +94:16 Who will rise up for me against the evildoers? or who will stand +up for me against the workers of iniquity? + +94:17 Unless the LORD had been my help, my soul had almost dwelt in +silence. + +94:18 When I said, My foot slippeth; thy mercy, O LORD, held me up. + +94:19 In the multitude of my thoughts within me thy comforts delight +my soul. + +94:20 Shall the throne of iniquity have fellowship with thee, which +frameth mischief by a law? + +94:21 They gather themselves together against the soul of the +righteous, and condemn the innocent blood. + +94:22 But the LORD is my defence; and my God is the rock of my refuge. + +94:23 And he shall bring upon them their own iniquity, and shall cut +them off in their own wickedness; yea, the LORD our God shall cut them +off. + + + +95:1 O come, let us sing unto the LORD: let us make a joyful noise to +the rock of our salvation. + +95:2 Let us come before his presence with thanksgiving, and make a +joyful noise unto him with psalms. + +95:3 For the LORD is a great God, and a great King above all gods. + +95:4 In his hand are the deep places of the earth: the strength of the +hills is his also. + +95:5 The sea is his, and he made it: and his hands formed the dry +land. + +95:6 O come, let us worship and bow down: let us kneel before the LORD +our maker. + +95:7 For he is our God; and we are the people of his pasture, and the +sheep of his hand. To day if ye will hear his voice, + +95:8 Harden not your heart, as in the provocation, and as in the day +of temptation in the wilderness: + +95:9 When your fathers tempted me, proved me, and saw my work. + +95:10 Forty years long was I grieved with this generation, and said, +It is a people that do err in their heart, and they have not known my +ways: + +95:11 Unto whom I sware in my wrath that they should not enter into my +rest. + + + +96:1 O sing unto the LORD a new song: sing unto the LORD, all the +earth. + +96:2 Sing unto the LORD, bless his name; shew forth his salvation from +day to day. + +96:3 Declare his glory among the heathen, his wonders among all +people. + +96:4 For the LORD is great, and greatly to be praised: he is to be +feared above all gods. + +96:5 For all the gods of the nations are idols: but the LORD made the +heavens. + +96:6 Honour and majesty are before him: strength and beauty are in his +sanctuary. + +96:7 Give unto the LORD, O ye kindreds of the people, give unto the +LORD glory and strength. + +96:8 Give unto the LORD the glory due unto his name: bring an +offering, and come into his courts. + +96:9 O worship the LORD in the beauty of holiness: fear before him, +all the earth. + +96:10 Say among the heathen that the LORD reigneth: the world also +shall be established that it shall not be moved: he shall judge the +people righteously. + +96:11 Let the heavens rejoice, and let the earth be glad; let the sea +roar, and the fulness thereof. + +96:12 Let the field be joyful, and all that is therein: then shall all +the trees of the wood rejoice + +96:13 Before the LORD: for he cometh, for he cometh to judge the +earth: he shall judge the world with righteousness, and the people +with his truth. + + + +97:1 The LORD reigneth; let the earth rejoice; let the multitude of +isles be glad thereof. + +97:2 Clouds and darkness are round about him: righteousness and +judgment are the habitation of his throne. + +97:3 A fire goeth before him, and burneth up his enemies round about. + +97:4 His lightnings enlightened the world: the earth saw, and +trembled. + +97:5 The hills melted like wax at the presence of the LORD, at the +presence of the Lord of the whole earth. + +97:6 The heavens declare his righteousness, and all the people see his +glory. + +97:7 Confounded be all they that serve graven images, that boast +themselves of idols: worship him, all ye gods. + +97:8 Zion heard, and was glad; and the daughters of Judah rejoiced +because of thy judgments, O LORD. + +97:9 For thou, LORD, art high above all the earth: thou art exalted +far above all gods. + +97:10 Ye that love the LORD, hate evil: he preserveth the souls of his +saints; he delivereth them out of the hand of the wicked. + +97:11 Light is sown for the righteous, and gladness for the upright in +heart. + +97:12 Rejoice in the LORD, ye righteous; and give thanks at the +remembrance of his holiness. + + + +98:1 O sing unto the LORD a new song; for he hath done marvellous +things: his right hand, and his holy arm, hath gotten him the victory. + +98:2 The LORD hath made known his salvation: his righteousness hath he +openly shewed in the sight of the heathen. + +98:3 He hath remembered his mercy and his truth toward the house of +Israel: all the ends of the earth have seen the salvation of our God. + +98:4 Make a joyful noise unto the LORD, all the earth: make a loud +noise, and rejoice, and sing praise. + +98:5 Sing unto the LORD with the harp; with the harp, and the voice of +a psalm. + +98:6 With trumpets and sound of cornet make a joyful noise before the +LORD, the King. + +98:7 Let the sea roar, and the fulness thereof; the world, and they +that dwell therein. + +98:8 Let the floods clap their hands: let the hills be joyful together + +98:9 Before the LORD; for he cometh to judge the earth: with +righteousness shall he judge the world, and the people with equity. + + + +99:1 The LORD reigneth; let the people tremble: he sitteth between the +cherubims; let the earth be moved. + +99:2 The LORD is great in Zion; and he is high above all the people. + +99:3 Let them praise thy great and terrible name; for it is holy. + +99:4 The king's strength also loveth judgment; thou dost establish +equity, thou executest judgment and righteousness in Jacob. + +99:5 Exalt ye the LORD our God, and worship at his footstool; for he +is holy. + +99:6 Moses and Aaron among his priests, and Samuel among them that +call upon his name; they called upon the LORD, and he answered them. + +99:7 He spake unto them in the cloudy pillar: they kept his +testimonies, and the ordinance that he gave them. + +99:8 Thou answeredst them, O LORD our God: thou wast a God that +forgavest them, though thou tookest vengeance of their inventions. + +99:9 Exalt the LORD our God, and worship at his holy hill; for the +LORD our God is holy. + + + +100:1 Make a joyful noise unto the LORD, all ye lands. + +100:2 Serve the LORD with gladness: come before his presence with +singing. + +100:3 Know ye that the LORD he is God: it is he that hath made us, and +not we ourselves; we are his people, and the sheep of his pasture. + +100:4 Enter into his gates with thanksgiving, and into his courts with +praise: be thankful unto him, and bless his name. + +100:5 For the LORD is good; his mercy is everlasting; and his truth +endureth to all generations. + + + +101:1 I will sing of mercy and judgment: unto thee, O LORD, will I +sing. + +101:2 I will behave myself wisely in a perfect way. O when wilt thou +come unto me? I will walk within my house with a perfect heart. + +101:3 I will set no wicked thing before mine eyes: I hate the work of +them that turn aside; it shall not cleave to me. + +101:4 A froward heart shall depart from me: I will not know a wicked +person. + +101:5 Whoso privily slandereth his neighbour, him will I cut off: him +that hath an high look and a proud heart will not I suffer. + +101:6 Mine eyes shall be upon the faithful of the land, that they may +dwell with me: he that walketh in a perfect way, he shall serve me. + +101:7 He that worketh deceit shall not dwell within my house: he that +telleth lies shall not tarry in my sight. + +101:8 I will early destroy all the wicked of the land; that I may cut +off all wicked doers from the city of the LORD. + + + +102:1 Hear my prayer, O LORD, and let my cry come unto thee. + +102:2 Hide not thy face from me in the day when I am in trouble; +incline thine ear unto me: in the day when I call answer me speedily. + +102:3 For my days are consumed like smoke, and my bones are burned as +an hearth. + +102:4 My heart is smitten, and withered like grass; so that I forget +to eat my bread. + +102:5 By reason of the voice of my groaning my bones cleave to my +skin. + +102:6 I am like a pelican of the wilderness: I am like an owl of the +desert. + +102:7 I watch, and am as a sparrow alone upon the house top. + +102:8 Mine enemies reproach me all the day; and they that are mad +against me are sworn against me. + +102:9 For I have eaten ashes like bread, and mingled my drink with +weeping. + +102:10 Because of thine indignation and thy wrath: for thou hast +lifted me up, and cast me down. + +102:11 My days are like a shadow that declineth; and I am withered +like grass. + +102:12 But thou, O LORD, shall endure for ever; and thy remembrance +unto all generations. + +102:13 Thou shalt arise, and have mercy upon Zion: for the time to +favour her, yea, the set time, is come. + +102:14 For thy servants take pleasure in her stones, and favour the +dust thereof. + +102:15 So the heathen shall fear the name of the LORD, and all the +kings of the earth thy glory. + +102:16 When the LORD shall build up Zion, he shall appear in his +glory. + +102:17 He will regard the prayer of the destitute, and not despise +their prayer. + +102:18 This shall be written for the generation to come: and the +people which shall be created shall praise the LORD. + +102:19 For he hath looked down from the height of his sanctuary; from +heaven did the LORD behold the earth; + +102:20 To hear the groaning of the prisoner; to loose those that are +appointed to death; + +102:21 To declare the name of the LORD in Zion, and his praise in +Jerusalem; + +102:22 When the people are gathered together, and the kingdoms, to +serve the LORD. + +102:23 He weakened my strength in the way; he shortened my days. + +102:24 I said, O my God, take me not away in the midst of my days: thy +years are throughout all generations. + +102:25 Of old hast thou laid the foundation of the earth: and the +heavens are the work of thy hands. + +102:26 They shall perish, but thou shalt endure: yea, all of them +shall wax old like a garment; as a vesture shalt thou change them, and +they shall be changed: + +102:27 But thou art the same, and thy years shall have no end. + +102:28 The children of thy servants shall continue, and their seed +shall be established before thee. + + + +103:1 Bless the LORD, O my soul: and all that is within me, bless his +holy name. + +103:2 Bless the LORD, O my soul, and forget not all his benefits: + +103:3 Who forgiveth all thine iniquities; who healeth all thy +diseases; + +103:4 Who redeemeth thy life from destruction; who crowneth thee with +lovingkindness and tender mercies; + +103:5 Who satisfieth thy mouth with good things; so that thy youth is +renewed like the eagle's. + +103:6 The LORD executeth righteousness and judgment for all that are +oppressed. + +103:7 He made known his ways unto Moses, his acts unto the children of +Israel. + +103:8 The LORD is merciful and gracious, slow to anger, and plenteous +in mercy. + +103:9 He will not always chide: neither will he keep his anger for +ever. + +103:10 He hath not dealt with us after our sins; nor rewarded us +according to our iniquities. + +103:11 For as the heaven is high above the earth, so great is his +mercy toward them that fear him. + +103:12 As far as the east is from the west, so far hath he removed our +transgressions from us. + +103:13 Like as a father pitieth his children, so the LORD pitieth them +that fear him. + +103:14 For he knoweth our frame; he remembereth that we are dust. + +103:15 As for man, his days are as grass: as a flower of the field, so +he flourisheth. + +103:16 For the wind passeth over it, and it is gone; and the place +thereof shall know it no more. + +103:17 But the mercy of the LORD is from everlasting to everlasting +upon them that fear him, and his righteousness unto children's +children; + +103:18 To such as keep his covenant, and to those that remember his +commandments to do them. + +103:19 The LORD hath prepared his throne in the heavens; and his +kingdom ruleth over all. + +103:20 Bless the LORD, ye his angels, that excel in strength, that do +his commandments, hearkening unto the voice of his word. + +103:21 Bless ye the LORD, all ye his hosts; ye ministers of his, that +do his pleasure. + +103:22 Bless the LORD, all his works in all places of his dominion: +bless the LORD, O my soul. + + + +104:1 Bless the LORD, O my soul. O LORD my God, thou art very great; +thou art clothed with honour and majesty. + +104:2 Who coverest thyself with light as with a garment: who +stretchest out the heavens like a curtain: + +104:3 Who layeth the beams of his chambers in the waters: who maketh +the clouds his chariot: who walketh upon the wings of the wind: + +104:4 Who maketh his angels spirits; his ministers a flaming fire: + +104:5 Who laid the foundations of the earth, that it should not be +removed for ever. + +104:6 Thou coveredst it with the deep as with a garment: the waters +stood above the mountains. + +104:7 At thy rebuke they fled; at the voice of thy thunder they hasted +away. + +104:8 They go up by the mountains; they go down by the valleys unto +the place which thou hast founded for them. + +104:9 Thou hast set a bound that they may not pass over; that they +turn not again to cover the earth. + +104:10 He sendeth the springs into the valleys, which run among the +hills. + +104:11 They give drink to every beast of the field: the wild asses +quench their thirst. + +104:12 By them shall the fowls of the heaven have their habitation, +which sing among the branches. + +104:13 He watereth the hills from his chambers: the earth is satisfied +with the fruit of thy works. + +104:14 He causeth the grass to grow for the cattle, and herb for the +service of man: that he may bring forth food out of the earth; + +104:15 And wine that maketh glad the heart of man, and oil to make his +face to shine, and bread which strengtheneth man's heart. + +104:16 The trees of the LORD are full of sap; the cedars of Lebanon, +which he hath planted; + +104:17 Where the birds make their nests: as for the stork, the fir +trees are her house. + +104:18 The high hills are a refuge for the wild goats; and the rocks +for the conies. + +104:19 He appointed the moon for seasons: the sun knoweth his going +down. + +104:20 Thou makest darkness, and it is night: wherein all the beasts +of the forest do creep forth. + +104:21 The young lions roar after their prey, and seek their meat from +God. + +104:22 The sun ariseth, they gather themselves together, and lay them +down in their dens. + +104:23 Man goeth forth unto his work and to his labour until the +evening. + +104:24 O LORD, how manifold are thy works! in wisdom hast thou made +them all: the earth is full of thy riches. + +104:25 So is this great and wide sea, wherein are things creeping +innumerable, both small and great beasts. + +104:26 There go the ships: there is that leviathan, whom thou hast +made to play therein. + +104:27 These wait all upon thee; that thou mayest give them their meat +in due season. + +104:28 That thou givest them they gather: thou openest thine hand, +they are filled with good. + +104:29 Thou hidest thy face, they are troubled: thou takest away their +breath, they die, and return to their dust. + +104:30 Thou sendest forth thy spirit, they are created: and thou +renewest the face of the earth. + +104:31 The glory of the LORD shall endure for ever: the LORD shall +rejoice in his works. + +104:32 He looketh on the earth, and it trembleth: he toucheth the +hills, and they smoke. + +104:33 I will sing unto the LORD as long as I live: I will sing praise +to my God while I have my being. + +104:34 My meditation of him shall be sweet: I will be glad in the +LORD. + +104:35 Let the sinners be consumed out of the earth, and let the +wicked be no more. Bless thou the LORD, O my soul. Praise ye the LORD. + + + +105:1 O give thanks unto the LORD; call upon his name: make known his +deeds among the people. + +105:2 Sing unto him, sing psalms unto him: talk ye of all his wondrous +works. + +105:3 Glory ye in his holy name: let the heart of them rejoice that +seek the LORD. + +105:4 Seek the LORD, and his strength: seek his face evermore. + +105:5 Remember his marvellous works that he hath done; his wonders, +and the judgments of his mouth; + +105:6 O ye seed of Abraham his servant, ye children of Jacob his +chosen. + +105:7 He is the LORD our God: his judgments are in all the earth. + +105:8 He hath remembered his covenant for ever, the word which he +commanded to a thousand generations. + +105:9 Which covenant he made with Abraham, and his oath unto Isaac; + +105:10 And confirmed the same unto Jacob for a law, and to Israel for +an everlasting covenant: + +105:11 Saying, Unto thee will I give the land of Canaan, the lot of +your inheritance: + +105:12 When they were but a few men in number; yea, very few, and +strangers in it. + +105:13 When they went from one nation to another, from one kingdom to +another people; + +105:14 He suffered no man to do them wrong: yea, he reproved kings for +their sakes; + +105:15 Saying, Touch not mine anointed, and do my prophets no harm. + +105:16 Moreover he called for a famine upon the land: he brake the +whole staff of bread. + +105:17 He sent a man before them, even Joseph, who was sold for a +servant: + +105:18 Whose feet they hurt with fetters: he was laid in iron: + +105:19 Until the time that his word came: the word of the LORD tried +him. + +105:20 The king sent and loosed him; even the ruler of the people, and +let him go free. + +105:21 He made him lord of his house, and ruler of all his substance: + +105:22 To bind his princes at his pleasure; and teach his senators +wisdom. + +105:23 Israel also came into Egypt; and Jacob sojourned in the land of +Ham. + +105:24 And he increased his people greatly; and made them stronger +than their enemies. + +105:25 He turned their heart to hate his people, to deal subtilly with +his servants. + +105:26 He sent Moses his servant; and Aaron whom he had chosen. + +105:27 They shewed his signs among them, and wonders in the land of +Ham. + +105:28 He sent darkness, and made it dark; and they rebelled not +against his word. + +105:29 He turned their waters into blood, and slew their fish. + +105:30 Their land brought forth frogs in abundance, in the chambers of +their kings. + +105:31 He spake, and there came divers sorts of flies, and lice in all +their coasts. + +105:32 He gave them hail for rain, and flaming fire in their land. + +105:33 He smote their vines also and their fig trees; and brake the +trees of their coasts. + +105:34 He spake, and the locusts came, and caterpillers, and that +without number, + +105:35 And did eat up all the herbs in their land, and devoured the +fruit of their ground. + +105:36 He smote also all the firstborn in their land, the chief of all +their strength. + +105:37 He brought them forth also with silver and gold: and there was +not one feeble person among their tribes. + +105:38 Egypt was glad when they departed: for the fear of them fell +upon them. + +105:39 He spread a cloud for a covering; and fire to give light in the +night. + +105:40 The people asked, and he brought quails, and satisfied them +with the bread of heaven. + +105:41 He opened the rock, and the waters gushed out; they ran in the +dry places like a river. + +105:42 For he remembered his holy promise, and Abraham his servant. + +105:43 And he brought forth his people with joy, and his chosen with +gladness: + +105:44 And gave them the lands of the heathen: and they inherited the +labour of the people; + +105:45 That they might observe his statutes, and keep his laws. Praise +ye the LORD. + + + +106:1 Praise ye the LORD. O give thanks unto the LORD; for he is good: +for his mercy endureth for ever. + +106:2 Who can utter the mighty acts of the LORD? who can shew forth +all his praise? + +106:3 Blessed are they that keep judgment, and he that doeth +righteousness at all times. + +106:4 Remember me, O LORD, with the favour that thou bearest unto thy +people: O visit me with thy salvation; + +106:5 That I may see the good of thy chosen, that I may rejoice in the +gladness of thy nation, that I may glory with thine inheritance. + +106:6 We have sinned with our fathers, we have committed iniquity, we +have done wickedly. + +106:7 Our fathers understood not thy wonders in Egypt; they remembered +not the multitude of thy mercies; but provoked him at the sea, even at +the Red sea. + +106:8 Nevertheless he saved them for his name's sake, that he might +make his mighty power to be known. + +106:9 He rebuked the Red sea also, and it was dried up: so he led them +through the depths, as through the wilderness. + +106:10 And he saved them from the hand of him that hated them, and +redeemed them from the hand of the enemy. + +106:11 And the waters covered their enemies: there was not one of them +left. + +106:12 Then believed they his words; they sang his praise. + +106:13 They soon forgat his works; they waited not for his counsel: + +106:14 But lusted exceedingly in the wilderness, and tempted God in +the desert. + +106:15 And he gave them their request; but sent leanness into their +soul. + +106:16 They envied Moses also in the camp, and Aaron the saint of the +LORD. + +106:17 The earth opened and swallowed up Dathan and covered the +company of Abiram. + +106:18 And a fire was kindled in their company; the flame burned up +the wicked. + +106:19 They made a calf in Horeb, and worshipped the molten image. + +106:20 Thus they changed their glory into the similitude of an ox that +eateth grass. + +106:21 They forgat God their saviour, which had done great things in +Egypt; + +106:22 Wondrous works in the land of Ham, and terrible things by the +Red sea. + +106:23 Therefore he said that he would destroy them, had not Moses his +chosen stood before him in the breach, to turn away his wrath, lest he +should destroy them. + +106:24 Yea, they despised the pleasant land, they believed not his +word: + +106:25 But murmured in their tents, and hearkened not unto the voice +of the LORD. + +106:26 Therefore he lifted up his hand against them, to overthrow them +in the wilderness: + +106:27 To overthrow their seed also among the nations, and to scatter +them in the lands. + +106:28 They joined themselves also unto Baalpeor, and ate the +sacrifices of the dead. + +106:29 Thus they provoked him to anger with their inventions: and the +plague brake in upon them. + +106:30 Then stood up Phinehas, and executed judgment: and so the +plague was stayed. + +106:31 And that was counted unto him for righteousness unto all +generations for evermore. + +106:32 They angered him also at the waters of strife, so that it went +ill with Moses for their sakes: + +106:33 Because they provoked his spirit, so that he spake unadvisedly +with his lips. + +106:34 They did not destroy the nations, concerning whom the LORD +commanded them: + +106:35 But were mingled among the heathen, and learned their works. + +106:36 And they served their idols: which were a snare unto them. + +106:37 Yea, they sacrificed their sons and their daughters unto +devils, + +106:38 And shed innocent blood, even the blood of their sons and of +their daughters, whom they sacrificed unto the idols of Canaan: and +the land was polluted with blood. + +106:39 Thus were they defiled with their own works, and went a whoring +with their own inventions. + +106:40 Therefore was the wrath of the LORD kindled against his people, +insomuch that he abhorred his own inheritance. + +106:41 And he gave them into the hand of the heathen; and they that +hated them ruled over them. + +106:42 Their enemies also oppressed them, and they were brought into +subjection under their hand. + +106:43 Many times did he deliver them; but they provoked him with +their counsel, and were brought low for their iniquity. + +106:44 Nevertheless he regarded their affliction, when he heard their +cry: + +106:45 And he remembered for them his covenant, and repented according +to the multitude of his mercies. + +106:46 He made them also to be pitied of all those that carried them +captives. + +106:47 Save us, O LORD our God, and gather us from among the heathen, +to give thanks unto thy holy name, and to triumph in thy praise. + +106:48 Blessed be the LORD God of Israel from everlasting to +everlasting: and let all the people say, Amen. Praise ye the LORD. + + + +107:1 O give thanks unto the LORD, for he is good: for his mercy +endureth for ever. + +107:2 Let the redeemed of the LORD say so, whom he hath redeemed from +the hand of the enemy; + +107:3 And gathered them out of the lands, from the east, and from the +west, from the north, and from the south. + +107:4 They wandered in the wilderness in a solitary way; they found no +city to dwell in. + +107:5 Hungry and thirsty, their soul fainted in them. + +107:6 Then they cried unto the LORD in their trouble, and he delivered +them out of their distresses. + +107:7 And he led them forth by the right way, that they might go to a +city of habitation. + +107:8 Oh that men would praise the LORD for his goodness, and for his +wonderful works to the children of men! + +107:9 For he satisfieth the longing soul, and filleth the hungry soul +with goodness. + +107:10 Such as sit in darkness and in the shadow of death, being bound +in affliction and iron; + +107:11 Because they rebelled against the words of God, and contemned +the counsel of the most High: + +107:12 Therefore he brought down their heart with labour; they fell +down, and there was none to help. + +107:13 Then they cried unto the LORD in their trouble, and he saved +them out of their distresses. + +107:14 He brought them out of darkness and the shadow of death, and +brake their bands in sunder. + +107:15 Oh that men would praise the LORD for his goodness, and for his +wonderful works to the children of men! + +107:16 For he hath broken the gates of brass, and cut the bars of iron +in sunder. + +107:17 Fools because of their transgression, and because of their +iniquities, are afflicted. + +107:18 Their soul abhorreth all manner of meat; and they draw near +unto the gates of death. + +107:19 Then they cry unto the LORD in their trouble, and he saveth +them out of their distresses. + +107:20 He sent his word, and healed them, and delivered them from +their destructions. + +107:21 Oh that men would praise the LORD for his goodness, and for his +wonderful works to the children of men! + +107:22 And let them sacrifice the sacrifices of thanksgiving, and +declare his works with rejoicing. + +107:23 They that go down to the sea in ships, that do business in +great waters; + +107:24 These see the works of the LORD, and his wonders in the deep. + +107:25 For he commandeth, and raiseth the stormy wind, which lifteth +up the waves thereof. + +107:26 They mount up to the heaven, they go down again to the depths: +their soul is melted because of trouble. + +107:27 They reel to and fro, and stagger like a drunken man, and are +at their wit's end. + +107:28 Then they cry unto the LORD in their trouble, and he bringeth +them out of their distresses. + +107:29 He maketh the storm a calm, so that the waves thereof are +still. + +107:30 Then are they glad because they be quiet; so he bringeth them +unto their desired haven. + +107:31 Oh that men would praise the LORD for his goodness, and for his +wonderful works to the children of men! + +107:32 Let them exalt him also in the congregation of the people, and +praise him in the assembly of the elders. + +107:33 He turneth rivers into a wilderness, and the watersprings into +dry ground; + +107:34 A fruitful land into barrenness, for the wickedness of them +that dwell therein. + +107:35 He turneth the wilderness into a standing water, and dry ground +into watersprings. + +107:36 And there he maketh the hungry to dwell, that they may prepare +a city for habitation; + +107:37 And sow the fields, and plant vineyards, which may yield fruits +of increase. + +107:38 He blesseth them also, so that they are multiplied greatly; and +suffereth not their cattle to decrease. + +107:39 Again, they are minished and brought low through oppression, +affliction, and sorrow. + +107:40 He poureth contempt upon princes, and causeth them to wander in +the wilderness, where there is no way. + +107:41 Yet setteth he the poor on high from affliction, and maketh him +families like a flock. + +107:42 The righteous shall see it, and rejoice: and all iniquity shall +stop her mouth. + +107:43 Whoso is wise, and will observe these things, even they shall +understand the lovingkindness of the LORD. + + + +108:1 O god, my heart is fixed; I will sing and give praise, even with +my glory. + +108:2 Awake, psaltery and harp: I myself will awake early. + +108:3 I will praise thee, O LORD, among the people: and I will sing +praises unto thee among the nations. + +108:4 For thy mercy is great above the heavens: and thy truth reacheth +unto the clouds. + +108:5 Be thou exalted, O God, above the heavens: and thy glory above +all the earth; + +108:6 That thy beloved may be delivered: save with thy right hand, and +answer me. + +108:7 God hath spoken in his holiness; I will rejoice, I will divide +Shechem, and mete out the valley of Succoth. + +108:8 Gilead is mine; Manasseh is mine; Ephraim also is the strength +of mine head; Judah is my lawgiver; + +108:9 Moab is my washpot; over Edom will I cast out my shoe; over +Philistia will I triumph. + +108:10 Who will bring me into the strong city? who will lead me into +Edom? + +108:11 Wilt not thou, O God, who hast cast us off? and wilt not thou, +O God, go forth with our hosts? + +108:12 Give us help from trouble: for vain is the help of man. + +108:13 Through God we shall do valiantly: for he it is that shall +tread down our enemies. + + + +109:1 Hold not thy peace, O God of my praise; + +109:2 For the mouth of the wicked and the mouth of the deceitful are +opened against me: they have spoken against me with a lying tongue. + +109:3 They compassed me about also with words of hatred; and fought +against me without a cause. + +109:4 For my love they are my adversaries: but I give myself unto +prayer. + +109:5 And they have rewarded me evil for good, and hatred for my love. + +109:6 Set thou a wicked man over him: and let Satan stand at his right +hand. + +109:7 When he shall be judged, let him be condemned: and let his +prayer become sin. + +109:8 Let his days be few; and let another take his office. + +109:9 Let his children be fatherless, and his wife a widow. + +109:10 Let his children be continually vagabonds, and beg: let them +seek their bread also out of their desolate places. + +109:11 Let the extortioner catch all that he hath; and let the +strangers spoil his labour. + +109:12 Let there be none to extend mercy unto him: neither let there +be any to favour his fatherless children. + +109:13 Let his posterity be cut off; and in the generation following +let their name be blotted out. + +109:14 Let the iniquity of his fathers be remembered with the LORD; +and let not the sin of his mother be blotted out. + +109:15 Let them be before the LORD continually, that he may cut off +the memory of them from the earth. + +109:16 Because that he remembered not to shew mercy, but persecuted +the poor and needy man, that he might even slay the broken in heart. + +109:17 As he loved cursing, so let it come unto him: as he delighted +not in blessing, so let it be far from him. + +109:18 As he clothed himself with cursing like as with his garment, so +let it come into his bowels like water, and like oil into his bones. + +109:19 Let it be unto him as the garment which covereth him, and for a +girdle wherewith he is girded continually. + +109:20 Let this be the reward of mine adversaries from the LORD, and +of them that speak evil against my soul. + +109:21 But do thou for me, O GOD the Lord, for thy name's sake: +because thy mercy is good, deliver thou me. + +109:22 For I am poor and needy, and my heart is wounded within me. + +109:23 I am gone like the shadow when it declineth: I am tossed up and +down as the locust. + +109:24 My knees are weak through fasting; and my flesh faileth of +fatness. + +109:25 I became also a reproach unto them: when they looked upon me +they shaked their heads. + +109:26 Help me, O LORD my God: O save me according to thy mercy: + +109:27 That they may know that this is thy hand; that thou, LORD, hast +done it. + +109:28 Let them curse, but bless thou: when they arise, let them be +ashamed; but let thy servant rejoice. + +109:29 Let mine adversaries be clothed with shame, and let them cover +themselves with their own confusion, as with a mantle. + +109:30 I will greatly praise the LORD with my mouth; yea, I will +praise him among the multitude. + +109:31 For he shall stand at the right hand of the poor, to save him +from those that condemn his soul. + + + +110:1 The LORD said unto my Lord, Sit thou at my right hand, until I +make thine enemies thy footstool. + +110:2 The LORD shall send the rod of thy strength out of Zion: rule +thou in the midst of thine enemies. + +110:3 Thy people shall be willing in the day of thy power, in the +beauties of holiness from the womb of the morning: thou hast the dew +of thy youth. + +110:4 The LORD hath sworn, and will not repent, Thou art a priest for +ever after the order of Melchizedek. + +110:5 The Lord at thy right hand shall strike through kings in the day +of his wrath. + +110:6 He shall judge among the heathen, he shall fill the places with +the dead bodies; he shall wound the heads over many countries. + +110:7 He shall drink of the brook in the way: therefore shall he lift +up the head. + + + +111:1 Praise ye the LORD. I will praise the LORD with my whole heart, +in the assembly of the upright, and in the congregation. + +111:2 The works of the LORD are great, sought out of all them that +have pleasure therein. + +111:3 His work is honourable and glorious: and his righteousness +endureth for ever. + +111:4 He hath made his wonderful works to be remembered: the LORD is +gracious and full of compassion. + +111:5 He hath given meat unto them that fear him: he will ever be +mindful of his covenant. + +111:6 He hath shewed his people the power of his works, that he may +give them the heritage of the heathen. + +111:7 The works of his hands are verity and judgment; all his +commandments are sure. + +111:8 They stand fast for ever and ever, and are done in truth and +uprightness. + +111:9 He sent redemption unto his people: he hath commanded his +covenant for ever: holy and reverend is his name. + +111:10 The fear of the LORD is the beginning of wisdom: a good +understanding have all they that do his commandments: his praise +endureth for ever. + + + +112:1 Praise ye the LORD. Blessed is the man that feareth the LORD, +that delighteth greatly in his commandments. + +112:2 His seed shall be mighty upon earth: the generation of the +upright shall be blessed. + +112:3 Wealth and riches shall be in his house: and his righteousness +endureth for ever. + +112:4 Unto the upright there ariseth light in the darkness: he is +gracious, and full of compassion, and righteous. + +112:5 A good man sheweth favour, and lendeth: he will guide his +affairs with discretion. + +112:6 Surely he shall not be moved for ever: the righteous shall be in +everlasting remembrance. + +112:7 He shall not be afraid of evil tidings: his heart is fixed, +trusting in the LORD. + +112:8 His heart is established, he shall not be afraid, until he see +his desire upon his enemies. + +112:9 He hath dispersed, he hath given to the poor; his righteousness +endureth for ever; his horn shall be exalted with honour. + +112:10 The wicked shall see it, and be grieved; he shall gnash with +his teeth, and melt away: the desire of the wicked shall perish. + + + +113:1 Praise ye the LORD. Praise, O ye servants of the LORD, praise +the name of the LORD. + +113:2 Blessed be the name of the LORD from this time forth and for +evermore. + +113:3 From the rising of the sun unto the going down of the same the +LORD's name is to be praised. + +113:4 The LORD is high above all nations, and his glory above the +heavens. + +113:5 Who is like unto the LORD our God, who dwelleth on high, + +113:6 Who humbleth himself to behold the things that are in heaven, +and in the earth! + +113:7 He raiseth up the poor out of the dust, and lifteth the needy +out of the dunghill; + +113:8 That he may set him with princes, even with the princes of his +people. + +113:9 He maketh the barren woman to keep house, and to be a joyful +mother of children. Praise ye the LORD. + + + +114:1 When Israel went out of Egypt, the house of Jacob from a people +of strange language; + +114:2 Judah was his sanctuary, and Israel his dominion. + +114:3 The sea saw it, and fled: Jordan was driven back. + +114:4 The mountains skipped like rams, and the little hills like +lambs. + +114:5 What ailed thee, O thou sea, that thou fleddest? thou Jordan, +that thou wast driven back? + +114:6 Ye mountains, that ye skipped like rams; and ye little hills, +like lambs? + +114:7 Tremble, thou earth, at the presence of the Lord, at the +presence of the God of Jacob; + +114:8 Which turned the rock into a standing water, the flint into a +fountain of waters. + + + +115:1 Not unto us, O LORD, not unto us, but unto thy name give glory, +for thy mercy, and for thy truth's sake. + +115:2 Wherefore should the heathen say, Where is now their God? + +115:3 But our God is in the heavens: he hath done whatsoever he hath +pleased. + +115:4 Their idols are silver and gold, the work of men's hands. + +115:5 They have mouths, but they speak not: eyes have they, but they +see not: + +115:6 They have ears, but they hear not: noses have they, but they +smell not: + +115:7 They have hands, but they handle not: feet have they, but they +walk not: neither speak they through their throat. + +115:8 They that make them are like unto them; so is every one that +trusteth in them. + +115:9 O Israel, trust thou in the LORD: he is their help and their +shield. + +115:10 O house of Aaron, trust in the LORD: he is their help and their +shield. + +115:11 Ye that fear the LORD, trust in the LORD: he is their help and +their shield. + +115:12 The LORD hath been mindful of us: he will bless us; he will +bless the house of Israel; he will bless the house of Aaron. + +115:13 He will bless them that fear the LORD, both small and great. + +115:14 The LORD shall increase you more and more, you and your +children. + +115:15 Ye are blessed of the LORD which made heaven and earth. + +115:16 The heaven, even the heavens, are the LORD's: but the earth +hath he given to the children of men. + +115:17 The dead praise not the LORD, neither any that go down into +silence. + +115:18 But we will bless the LORD from this time forth and for +evermore. + +Praise the LORD. + + + +116:1 I love the LORD, because he hath heard my voice and my +supplications. + +116:2 Because he hath inclined his ear unto me, therefore will I call +upon him as long as I live. + +116:3 The sorrows of death compassed me, and the pains of hell gat +hold upon me: I found trouble and sorrow. + +116:4 Then called I upon the name of the LORD; O LORD, I beseech thee, +deliver my soul. + +116:5 Gracious is the LORD, and righteous; yea, our God is merciful. + +116:6 The LORD preserveth the simple: I was brought low, and he helped +me. + +116:7 Return unto thy rest, O my soul; for the LORD hath dealt +bountifully with thee. + +116:8 For thou hast delivered my soul from death, mine eyes from +tears, and my feet from falling. + +116:9 I will walk before the LORD in the land of the living. + +116:10 I believed, therefore have I spoken: I was greatly afflicted: + +116:11 I said in my haste, All men are liars. + +116:12 What shall I render unto the LORD for all his benefits toward +me? + +116:13 I will take the cup of salvation, and call upon the name of the +LORD. + +116:14 I will pay my vows unto the LORD now in the presence of all his +people. + +116:15 Precious in the sight of the LORD is the death of his saints. + +116:16 O LORD, truly I am thy servant; I am thy servant, and the son +of thine handmaid: thou hast loosed my bonds. + +116:17 I will offer to thee the sacrifice of thanksgiving, and will +call upon the name of the LORD. + +116:18 I will pay my vows unto the LORD now in the presence of all his +people. + +116:19 In the courts of the LORD's house, in the midst of thee, O +Jerusalem. Praise ye the LORD. + + + +117:1 O praise the LORD, all ye nations: praise him, all ye people. + +117:2 For his merciful kindness is great toward us: and the truth of +the LORD endureth for ever. Praise ye the LORD. + + + +118:1 O give thanks unto the LORD; for he is good: because his mercy +endureth for ever. + +118:2 Let Israel now say, that his mercy endureth for ever. + +118:3 Let the house of Aaron now say, that his mercy endureth for +ever. + +118:4 Let them now that fear the LORD say, that his mercy endureth for +ever. + +118:5 I called upon the LORD in distress: the LORD answered me, and +set me in a large place. + +118:6 The LORD is on my side; I will not fear: what can man do unto +me? + +118:7 The LORD taketh my part with them that help me: therefore shall +I see my desire upon them that hate me. + +118:8 It is better to trust in the LORD than to put confidence in man. + +118:9 It is better to trust in the LORD than to put confidence in +princes. + +118:10 All nations compassed me about: but in the name of the LORD +will I destroy them. + +118:11 They compassed me about; yea, they compassed me about: but in +the name of the LORD I will destroy them. + +118:12 They compassed me about like bees: they are quenched as the +fire of thorns: for in the name of the LORD I will destroy them. + +118:13 Thou hast thrust sore at me that I might fall: but the LORD +helped me. + +118:14 The LORD is my strength and song, and is become my salvation. + +118:15 The voice of rejoicing and salvation is in the tabernacles of +the righteous: the right hand of the LORD doeth valiantly. + +118:16 The right hand of the LORD is exalted: the right hand of the +LORD doeth valiantly. + +118:17 I shall not die, but live, and declare the works of the LORD. + +118:18 The LORD hath chastened me sore: but he hath not given me over +unto death. + +118:19 Open to me the gates of righteousness: I will go into them, and +I will praise the LORD: + +118:20 This gate of the LORD, into which the righteous shall enter. + +118:21 I will praise thee: for thou hast heard me, and art become my +salvation. + +118:22 The stone which the builders refused is become the head stone +of the corner. + +118:23 This is the LORD's doing; it is marvellous in our eyes. + +118:24 This is the day which the LORD hath made; we will rejoice and +be glad in it. + +118:25 Save now, I beseech thee, O LORD: O LORD, I beseech thee, send +now prosperity. + +118:26 Blessed be he that cometh in the name of the LORD: we have +blessed you out of the house of the LORD. + +118:27 God is the LORD, which hath shewed us light: bind the sacrifice +with cords, even unto the horns of the altar. + +118:28 Thou art my God, and I will praise thee: thou art my God, I +will exalt thee. + +118:29 O give thanks unto the LORD; for he is good: for his mercy +endureth for ever. + + + +119:1 Blessed are the undefiled in the way, who walk in the law of the +LORD. + +119:2 Blessed are they that keep his testimonies, and that seek him +with the whole heart. + +119:3 They also do no iniquity: they walk in his ways. + +119:4 Thou hast commanded us to keep thy precepts diligently. + +119:5 O that my ways were directed to keep thy statutes! + +119:6 Then shall I not be ashamed, when I have respect unto all thy +commandments. + +119:7 I will praise thee with uprightness of heart, when I shall have +learned thy righteous judgments. + +119:8 I will keep thy statutes: O forsake me not utterly. + +119:9 Wherewithal shall a young man cleanse his way? by taking heed +thereto according to thy word. + +119:10 With my whole heart have I sought thee: O let me not wander +from thy commandments. + +119:11 Thy word have I hid in mine heart, that I might not sin against +thee. + +119:12 Blessed art thou, O LORD: teach me thy statutes. + +119:13 With my lips have I declared all the judgments of thy mouth. + +119:14 I have rejoiced in the way of thy testimonies, as much as in +all riches. + +119:15 I will meditate in thy precepts, and have respect unto thy +ways. + +119:16 I will delight myself in thy statutes: I will not forget thy +word. + +119:17 Deal bountifully with thy servant, that I may live, and keep +thy word. + +119:18 Open thou mine eyes, that I may behold wondrous things out of +thy law. + +119:19 I am a stranger in the earth: hide not thy commandments from +me. + +119:20 My soul breaketh for the longing that it hath unto thy +judgments at all times. + +119:21 Thou hast rebuked the proud that are cursed, which do err from +thy commandments. + +119:22 Remove from me reproach and contempt; for I have kept thy +testimonies. + +119:23 Princes also did sit and speak against me: but thy servant did +meditate in thy statutes. + +119:24 Thy testimonies also are my delight and my counsellors.leth. + +119:25 My soul cleaveth unto the dust: quicken thou me according to +thy word. + +119:26 I have declared my ways, and thou heardest me: teach me thy +statutes. + +119:27 Make me to understand the way of thy precepts: so shall I talk +of thy wondrous works. + +119:28 My soul melteth for heaviness: strengthen thou me according +unto thy word. + +119:29 Remove from me the way of lying: and grant me thy law +graciously. + +119:30 I have chosen the way of truth: thy judgments have I laid +before me. + +119:31 I have stuck unto thy testimonies: O LORD, put me not to shame. + +119:32 I will run the way of thy commandments, when thou shalt enlarge +my heart. + +119:33 Teach me, O LORD, the way of thy statutes; and I shall keep it +unto the end. + +119:34 Give me understanding, and I shall keep thy law; yea, I shall +observe it with my whole heart. + +119:35 Make me to go in the path of thy commandments; for therein do I +delight. + +119:36 Incline my heart unto thy testimonies, and not to covetousness. + +119:37 Turn away mine eyes from beholding vanity; and quicken thou me +in thy way. + +119:38 Stablish thy word unto thy servant, who is devoted to thy fear. + +119:39 Turn away my reproach which I fear: for thy judgments are good. + +119:40 Behold, I have longed after thy precepts: quicken me in thy +righteousness. + +119:41 Let thy mercies come also unto me, O LORD, even thy salvation, +according to thy word. + +119:42 So shall I have wherewith to answer him that reproacheth me: +for I trust in thy word. + +119:43 And take not the word of truth utterly out of my mouth; for I +have hoped in thy judgments. + +119:44 So shall I keep thy law continually for ever and ever. + +119:45 And I will walk at liberty: for I seek thy precepts. + +119:46 I will speak of thy testimonies also before kings, and will not +be ashamed. + +119:47 And I will delight myself in thy commandments, which I have +loved. + +119:48 My hands also will I lift up unto thy commandments, which I +have loved; and I will meditate in thy statutes. + +119:49 Remember the word unto thy servant, upon which thou hast caused +me to hope. + +119:50 This is my comfort in my affliction: for thy word hath +quickened me. + +119:51 The proud have had me greatly in derision: yet have I not +declined from thy law. + +119:52 I remembered thy judgments of old, O LORD; and have comforted +myself. + +119:53 Horror hath taken hold upon me because of the wicked that +forsake thy law. + +119:54 Thy statutes have been my songs in the house of my pilgrimage. + +119:55 I have remembered thy name, O LORD, in the night, and have kept +thy law. + +119:56 This I had, because I kept thy precepts. + +119:57 Thou art my portion, O LORD: I have said that I would keep thy +words. + +119:58 I intreated thy favour with my whole heart: be merciful unto me +according to thy word. + +119:59 I thought on my ways, and turned my feet unto thy testimonies. + +119:60 I made haste, and delayed not to keep thy commandments. + +119:61 The bands of the wicked have robbed me: but I have not +forgotten thy law. + +119:62 At midnight I will rise to give thanks unto thee because of thy +righteous judgments. + +119:63 I am a companion of all them that fear thee, and of them that +keep thy precepts. + +119:64 The earth, O LORD, is full of thy mercy: teach me thy statutes. + +119:65 Thou hast dealt well with thy servant, O LORD, according unto +thy word. + +119:66 Teach me good judgment and knowledge: for I have believed thy +commandments. + +119:67 Before I was afflicted I went astray: but now have I kept thy +word. + +119:68 Thou art good, and doest good; teach me thy statutes. + +119:69 The proud have forged a lie against me: but I will keep thy +precepts with my whole heart. + +119:70 Their heart is as fat as grease; but I delight in thy law. + +119:71 It is good for me that I have been afflicted; that I might +learn thy statutes. + +119:72 The law of thy mouth is better unto me than thousands of gold +and silver. + +119:73 Thy hands have made me and fashioned me: give me understanding, +that I may learn thy commandments. + +119:74 They that fear thee will be glad when they see me; because I +have hoped in thy word. + +119:75 I know, O LORD, that thy judgments are right, and that thou in +faithfulness hast afflicted me. + +119:76 Let, I pray thee, thy merciful kindness be for my comfort, +according to thy word unto thy servant. + +119:77 Let thy tender mercies come unto me, that I may live: for thy +law is my delight. + +119:78 Let the proud be ashamed; for they dealt perversely with me +without a cause: but I will meditate in thy precepts. + +119:79 Let those that fear thee turn unto me, and those that have +known thy testimonies. + +119:80 Let my heart be sound in thy statutes; that I be not ashamed. + +119:81 My soul fainteth for thy salvation: but I hope in thy word. + +119:82 Mine eyes fail for thy word, saying, When wilt thou comfort me? + +119:83 For I am become like a bottle in the smoke; yet do I not forget +thy statutes. + +119:84 How many are the days of thy servant? when wilt thou execute +judgment on them that persecute me? + +119:85 The proud have digged pits for me, which are not after thy law. + +119:86 All thy commandments are faithful: they persecute me +wrongfully; help thou me. + +119:87 They had almost consumed me upon earth; but I forsook not thy +precepts. + +119:88 Quicken me after thy lovingkindness; so shall I keep the +testimony of thy mouth. + +119:89 For ever, O LORD, thy word is settled in heaven. + +119:90 Thy faithfulness is unto all generations: thou hast established +the earth, and it abideth. + +119:91 They continue this day according to thine ordinances: for all +are thy servants. + +119:92 Unless thy law had been my delights, I should then have +perished in mine affliction. + +119:93 I will never forget thy precepts: for with them thou hast +quickened me. + +119:94 I am thine, save me: for I have sought thy precepts. + +119:95 The wicked have waited for me to destroy me: but I will +consider thy testimonies. + +119:96 I have seen an end of all perfection: but thy commandment is +exceeding broad. + +119:97 O how I love thy law! it is my meditation all the day. + +119:98 Thou through thy commandments hast made me wiser than mine +enemies: for they are ever with me. + +119:99 I have more understanding than all my teachers: for thy +testimonies are my meditation. + +119:100 I understand more than the ancients, because I keep thy +precepts. + +119:101 I have refrained my feet from every evil way, that I might +keep thy word. + +119:102 I have not departed from thy judgments: for thou hast taught +me. + +119:103 How sweet are thy words unto my taste! yea, sweeter than honey +to my mouth! + +119:104 Through thy precepts I get understanding: therefore I hate +every false way. + +119:105 Thy word is a lamp unto my feet, and a light unto my path. + +119:106 I have sworn, and I will perform it, that I will keep thy +righteous judgments. + +119:107 I am afflicted very much: quicken me, O LORD, according unto +thy word. + +119:108 Accept, I beseech thee, the freewill offerings of my mouth, O +LORD, and teach me thy judgments. + +119:109 My soul is continually in my hand: yet do I not forget thy +law. + +119:110 The wicked have laid a snare for me: yet I erred not from thy +precepts. + +119:111 Thy testimonies have I taken as an heritage for ever: for they +are the rejoicing of my heart. + +119:112 I have inclined mine heart to perform thy statutes alway, even +unto the end. + +119:113 I hate vain thoughts: but thy law do I love. + +119:114 Thou art my hiding place and my shield: I hope in thy word. + +119:115 Depart from me, ye evildoers: for I will keep the commandments +of my God. + +119:116 Uphold me according unto thy word, that I may live: and let me +not be ashamed of my hope. + +119:117 Hold thou me up, and I shall be safe: and I will have respect +unto thy statutes continually. + +119:118 Thou hast trodden down all them that err from thy statutes: +for their deceit is falsehood. + +119:119 Thou puttest away all the wicked of the earth like dross: +therefore I love thy testimonies. + +119:120 My flesh trembleth for fear of thee; and I am afraid of thy +judgments. + +119:121 I have done judgment and justice: leave me not to mine +oppressors. + +119:122 Be surety for thy servant for good: let not the proud oppress +me. + +119:123 Mine eyes fail for thy salvation, and for the word of thy +righteousness. + +119:124 Deal with thy servant according unto thy mercy, and teach me +thy statutes. + +119:125 I am thy servant; give me understanding, that I may know thy +testimonies. + +119:126 It is time for thee, LORD, to work: for they have made void +thy law. + +119:127 Therefore I love thy commandments above gold; yea, above fine +gold. + +119:128 Therefore I esteem all thy precepts concerning all things to +be right; and I hate every false way. + +119:129 Thy testimonies are wonderful: therefore doth my soul keep +them. + +119:130 The entrance of thy words giveth light; it giveth +understanding unto the simple. + +119:131 I opened my mouth, and panted: for I longed for thy +commandments. + +119:132 Look thou upon me, and be merciful unto me, as thou usest to +do unto those that love thy name. + +119:133 Order my steps in thy word: and let not any iniquity have +dominion over me. + +119:134 Deliver me from the oppression of man: so will I keep thy +precepts. + +119:135 Make thy face to shine upon thy servant; and teach me thy +statutes. + +119:136 Rivers of waters run down mine eyes, because they keep not thy +law. + +119:137 Righteous art thou, O LORD, and upright are thy judgments. + +119:138 Thy testimonies that thou hast commanded are righteous and +very faithful. + +119:139 My zeal hath consumed me, because mine enemies have forgotten +thy words. + +119:140 Thy word is very pure: therefore thy servant loveth it. + +119:141 I am small and despised: yet do not I forget thy precepts. + +119:142 Thy righteousness is an everlasting righteousness, and thy law +is the truth. + +119:143 Trouble and anguish have taken hold on me: yet thy +commandments are my delights. + +119:144 The righteousness of thy testimonies is everlasting: give me +understanding, and I shall live. + +119:145 I cried with my whole heart; hear me, O LORD: I will keep thy +statutes. + +119:146 I cried unto thee; save me, and I shall keep thy testimonies. + +119:147 I prevented the dawning of the morning, and cried: I hoped in +thy word. + +119:148 Mine eyes prevent the night watches, that I might meditate in +thy word. + +119:149 Hear my voice according unto thy lovingkindness: O LORD, +quicken me according to thy judgment. + +119:150 They draw nigh that follow after mischief: they are far from +thy law. + +119:151 Thou art near, O LORD; and all thy commandments are truth. + +119:152 Concerning thy testimonies, I have known of old that thou hast +founded them for ever. + +119:153 Consider mine affliction, and deliver me: for I do not forget +thy law. + +119:154 Plead my cause, and deliver me: quicken me according to thy +word. + +119:155 Salvation is far from the wicked: for they seek not thy +statutes. + +119:156 Great are thy tender mercies, O LORD: quicken me according to +thy judgments. + +119:157 Many are my persecutors and mine enemies; yet do I not decline +from thy testimonies. + +119:158 I beheld the transgressors, and was grieved; because they kept +not thy word. + +119:159 Consider how I love thy precepts: quicken me, O LORD, +according to thy lovingkindness. + +119:160 Thy word is true from the beginning: and every one of thy +righteous judgments endureth for ever. + +119:161 Princes have persecuted me without a cause: but my heart +standeth in awe of thy word. + +119:162 I rejoice at thy word, as one that findeth great spoil. + +119:163 I hate and abhor lying: but thy law do I love. + +119:164 Seven times a day do I praise thee because of thy righteous +judgments. + +119:165 Great peace have they which love thy law: and nothing shall +offend them. + +119:166 LORD, I have hoped for thy salvation, and done thy +commandments. + +119:167 My soul hath kept thy testimonies; and I love them +exceedingly. + +119:168 I have kept thy precepts and thy testimonies: for all my ways +are before thee. + +119:169 Let my cry come near before thee, O LORD: give me +understanding according to thy word. + +119:170 Let my supplication come before thee: deliver me according to +thy word. + +119:171 My lips shall utter praise, when thou hast taught me thy +statutes. + +119:172 My tongue shall speak of thy word: for all thy commandments +are righteousness. + +119:173 Let thine hand help me; for I have chosen thy precepts. + +119:174 I have longed for thy salvation, O LORD; and thy law is my +delight. + +119:175 Let my soul live, and it shall praise thee; and let thy +judgments help me. + +119:176 I have gone astray like a lost sheep; seek thy servant; for I +do not forget thy commandments. + + + +120:1 In my distress I cried unto the LORD, and he heard me. + +120:2 Deliver my soul, O LORD, from lying lips, and from a deceitful +tongue. + +120:3 What shall be given unto thee? or what shall be done unto thee, +thou false tongue? + +120:4 Sharp arrows of the mighty, with coals of juniper. + +120:5 Woe is me, that I sojourn in Mesech, that I dwell in the tents +of Kedar! + +120:6 My soul hath long dwelt with him that hateth peace. + +120:7 I am for peace: but when I speak, they are for war. + + + +121:1 I will lift up mine eyes unto the hills, from whence cometh my +help. + +121:2 My help cometh from the LORD, which made heaven and earth. + +121:3 He will not suffer thy foot to be moved: he that keepeth thee +will not slumber. + +121:4 Behold, he that keepeth Israel shall neither slumber nor sleep. + +121:5 The LORD is thy keeper: the LORD is thy shade upon thy right +hand. + +121:6 The sun shall not smite thee by day, nor the moon by night. + +121:7 The LORD shall preserve thee from all evil: he shall preserve +thy soul. + +121:8 The LORD shall preserve thy going out and thy coming in from +this time forth, and even for evermore. + + + +122:1 I was glad when they said unto me, Let us go into the house of +the LORD. + +122:2 Our feet shall stand within thy gates, O Jerusalem. + +122:3 Jerusalem is builded as a city that is compact together: + +122:4 Whither the tribes go up, the tribes of the LORD, unto the +testimony of Israel, to give thanks unto the name of the LORD. + +122:5 For there are set thrones of judgment, the thrones of the house +of David. + +122:6 Pray for the peace of Jerusalem: they shall prosper that love +thee. + +122:7 Peace be within thy walls, and prosperity within thy palaces. + +122:8 For my brethren and companions' sakes, I will now say, Peace be +within thee. + +122:9 Because of the house of the LORD our God I will seek thy good. + + + +123:1 Unto thee lift I up mine eyes, O thou that dwellest in the +heavens. + +123:2 Behold, as the eyes of servants look unto the hand of their +masters, and as the eyes of a maiden unto the hand of her mistress; so +our eyes wait upon the LORD our God, until that he have mercy upon us. + +123:3 Have mercy upon us, O LORD, have mercy upon us: for we are +exceedingly filled with contempt. + +123:4 Our soul is exceedingly filled with the scorning of those that +are at ease, and with the contempt of the proud. + + + +124:1 If it had not been the LORD who was on our side, now may Israel +say; + +124:2 If it had not been the LORD who was on our side, when men rose +up against us: + +124:3 Then they had swallowed us up quick, when their wrath was +kindled against us: + +124:4 Then the waters had overwhelmed us, the stream had gone over our +soul: + +124:5 Then the proud waters had gone over our soul. + +124:6 Blessed be the LORD, who hath not given us as a prey to their +teeth. + +124:7 Our soul is escaped as a bird out of the snare of the fowlers: +the snare is broken, and we are escaped. + +124:8 Our help is in the name of the LORD, who made heaven and earth. + + + +125:1 They that trust in the LORD shall be as mount Zion, which cannot +be removed, but abideth for ever. + +125:2 As the mountains are round about Jerusalem, so the LORD is round +about his people from henceforth even for ever. + +125:3 For the rod of the wicked shall not rest upon the lot of the +righteous; lest the righteous put forth their hands unto iniquity. + +125:4 Do good, O LORD, unto those that be good, and to them that are +upright in their hearts. + +125:5 As for such as turn aside unto their crooked ways, the LORD +shall lead them forth with the workers of iniquity: but peace shall be +upon Israel. + + + +126:1 When the LORD turned again the captivity of Zion, we were like +them that dream. + +126:2 Then was our mouth filled with laughter, and our tongue with +singing: then said they among the heathen, The LORD hath done great +things for them. + +126:3 The LORD hath done great things for us; whereof we are glad. + +126:4 Turn again our captivity, O LORD, as the streams in the south. + +126:5 They that sow in tears shall reap in joy. + +126:6 He that goeth forth and weepeth, bearing precious seed, shall +doubtless come again with rejoicing, bringing his sheaves with him. + + + +127:1 Except the LORD build the house, they labour in vain that build +it: except the LORD keep the city, the watchman waketh but in vain. + +127:2 It is vain for you to rise up early, to sit up late, to eat the +bread of sorrows: for so he giveth his beloved sleep. + +127:3 Lo, children are an heritage of the LORD: and the fruit of the +womb is his reward. + +127:4 As arrows are in the hand of a mighty man; so are children of +the youth. + +127:5 Happy is the man that hath his quiver full of them: they shall +not be ashamed, but they shall speak with the enemies in the gate. + + + +128:1 Blessed is every one that feareth the LORD; that walketh in his +ways. + +128:2 For thou shalt eat the labour of thine hands: happy shalt thou +be, and it shall be well with thee. + +128:3 Thy wife shall be as a fruitful vine by the sides of thine +house: thy children like olive plants round about thy table. + +128:4 Behold, that thus shall the man be blessed that feareth the +LORD. + +128:5 The LORD shall bless thee out of Zion: and thou shalt see the +good of Jerusalem all the days of thy life. + +128:6 Yea, thou shalt see thy children's children, and peace upon +Israel. + + + +129:1 Many a time have they afflicted me from my youth, may Israel now +say: + +129:2 Many a time have they afflicted me from my youth: yet they have +not prevailed against me. + +129:3 The plowers plowed upon my back: they made long their furrows. + +129:4 The LORD is righteous: he hath cut asunder the cords of the +wicked. + +129:5 Let them all be confounded and turned back that hate Zion. + +129:6 Let them be as the grass upon the housetops, which withereth +afore it groweth up: + +129:7 Wherewith the mower filleth not his hand; nor he that bindeth +sheaves his bosom. + +129:8 Neither do they which go by say, The blessing of the LORD be +upon you: we bless you in the name of the LORD. + + + +130:1 Out of the depths have I cried unto thee, O LORD. + +130:2 Lord, hear my voice: let thine ears be attentive to the voice of +my supplications. + +130:3 If thou, LORD, shouldest mark iniquities, O Lord, who shall +stand? + +130:4 But there is forgiveness with thee, that thou mayest be feared. + +130:5 I wait for the LORD, my soul doth wait, and in his word do I +hope. + +130:6 My soul waiteth for the Lord more than they that watch for the +morning: I say, more than they that watch for the morning. + +130:7 Let Israel hope in the LORD: for with the LORD there is mercy, +and with him is plenteous redemption. + +130:8 And he shall redeem Israel from all his iniquities. + + + +131:1 Lord, my heart is not haughty, nor mine eyes lofty: neither do I +exercise myself in great matters, or in things too high for me. + +131:2 Surely I have behaved and quieted myself, as a child that is +weaned of his mother: my soul is even as a weaned child. + +131:3 Let Israel hope in the LORD from henceforth and for ever. + + + +132:1 Lord, remember David, and all his afflictions: + +132:2 How he sware unto the LORD, and vowed unto the mighty God of +Jacob; + +132:3 Surely I will not come into the tabernacle of my house, nor go +up into my bed; + +132:4 I will not give sleep to mine eyes, or slumber to mine eyelids, + +132:5 Until I find out a place for the LORD, an habitation for the +mighty God of Jacob. + +132:6 Lo, we heard of it at Ephratah: we found it in the fields of the +wood. + +132:7 We will go into his tabernacles: we will worship at his +footstool. + +132:8 Arise, O LORD, into thy rest; thou, and the ark of thy strength. + +132:9 Let thy priests be clothed with righteousness; and let thy +saints shout for joy. + +132:10 For thy servant David's sake turn not away the face of thine +anointed. + +132:11 The LORD hath sworn in truth unto David; he will not turn from +it; Of the fruit of thy body will I set upon thy throne. + +132:12 If thy children will keep my covenant and my testimony that I +shall teach them, their children shall also sit upon thy throne for +evermore. + +132:13 For the LORD hath chosen Zion; he hath desired it for his +habitation. + +132:14 This is my rest for ever: here will I dwell; for I have desired +it. + +132:15 I will abundantly bless her provision: I will satisfy her poor +with bread. + +132:16 I will also clothe her priests with salvation: and her saints +shall shout aloud for joy. + +132:17 There will I make the horn of David to bud: I have ordained a +lamp for mine anointed. + +132:18 His enemies will I clothe with shame: but upon himself shall +his crown flourish. + + + +133:1 Behold, how good and how pleasant it is for brethren to dwell +together in unity! + +133:2 It is like the precious ointment upon the head, that ran down +upon the beard, even Aaron's beard: that went down to the skirts of +his garments; + +133:3 As the dew of Hermon, and as the dew that descended upon the +mountains of Zion: for there the LORD commanded the blessing, even +life for evermore. + + + +134:1 Behold, bless ye the LORD, all ye servants of the LORD, which by +night stand in the house of the LORD. + +134:2 Lift up your hands in the sanctuary, and bless the LORD. + +134:3 The LORD that made heaven and earth bless thee out of Zion. + + + +135:1 Praise ye the LORD. Praise ye the name of the LORD; praise him, +O ye servants of the LORD. + +135:2 Ye that stand in the house of the LORD, in the courts of the +house of our God. + +135:3 Praise the LORD; for the LORD is good: sing praises unto his +name; for it is pleasant. + +135:4 For the LORD hath chosen Jacob unto himself, and Israel for his +peculiar treasure. + +135:5 For I know that the LORD is great, and that our Lord is above +all gods. + +135:6 Whatsoever the LORD pleased, that did he in heaven, and in +earth, in the seas, and all deep places. + +135:7 He causeth the vapours to ascend from the ends of the earth; he +maketh lightnings for the rain; he bringeth the wind out of his +treasuries. + +135:8 Who smote the firstborn of Egypt, both of man and beast. + +135:9 Who sent tokens and wonders into the midst of thee, O Egypt, +upon Pharaoh, and upon all his servants. + +135:10 Who smote great nations, and slew mighty kings; + +135:11 Sihon king of the Amorites, and Og king of Bashan, and all the +kingdoms of Canaan: + +135:12 And gave their land for an heritage, an heritage unto Israel +his people. + +135:13 Thy name, O LORD, endureth for ever; and thy memorial, O LORD, +throughout all generations. + +135:14 For the LORD will judge his people, and he will repent himself +concerning his servants. + +135:15 The idols of the heathen are silver and gold, the work of men's +hands. + +135:16 They have mouths, but they speak not; eyes have they, but they +see not; + +135:17 They have ears, but they hear not; neither is there any breath +in their mouths. + +135:18 They that make them are like unto them: so is every one that +trusteth in them. + +135:19 Bless the LORD, O house of Israel: bless the LORD, O house of +Aaron: + +135:20 Bless the LORD, O house of Levi: ye that fear the LORD, bless +the LORD. + +135:21 Blessed be the LORD out of Zion, which dwelleth at Jerusalem. + +Praise ye the LORD. + + + +136:1 O give thanks unto the LORD; for he is good: for his mercy +endureth for ever. + +136:2 O give thanks unto the God of gods: for his mercy endureth for +ever. + +136:3 O give thanks to the Lord of lords: for his mercy endureth for +ever. + +136:4 To him who alone doeth great wonders: for his mercy endureth for +ever. + +136:5 To him that by wisdom made the heavens: for his mercy endureth +for ever. + +136:6 To him that stretched out the earth above the waters: for his +mercy endureth for ever. + +136:7 To him that made great lights: for his mercy endureth for ever: + +136:8 The sun to rule by day: for his mercy endureth for ever: + +136:9 The moon and stars to rule by night: for his mercy endureth for +ever. + +136:10 To him that smote Egypt in their firstborn: for his mercy +endureth for ever: + +136:11 And brought out Israel from among them: for his mercy endureth +for ever: + +136:12 With a strong hand, and with a stretched out arm: for his mercy +endureth for ever. + +136:13 To him which divided the Red sea into parts: for his mercy +endureth for ever: + +136:14 And made Israel to pass through the midst of it: for his mercy +endureth for ever: + +136:15 But overthrew Pharaoh and his host in the Red sea: for his +mercy endureth for ever. + +136:16 To him which led his people through the wilderness: for his +mercy endureth for ever. + +136:17 To him which smote great kings: for his mercy endureth for +ever: + +136:18 And slew famous kings: for his mercy endureth for ever: + +136:19 Sihon king of the Amorites: for his mercy endureth for ever: + +136:20 And Og the king of Bashan: for his mercy endureth for ever: + +136:21 And gave their land for an heritage: for his mercy endureth for +ever: + +136:22 Even an heritage unto Israel his servant: for his mercy +endureth for ever. + +136:23 Who remembered us in our low estate: for his mercy endureth for +ever: + +136:24 And hath redeemed us from our enemies: for his mercy endureth +for ever. + +136:25 Who giveth food to all flesh: for his mercy endureth for ever. + +136:26 O give thanks unto the God of heaven: for his mercy endureth +for ever. + + + +137:1 By the rivers of Babylon, there we sat down, yea, we wept, when +we remembered Zion. + +137:2 We hanged our harps upon the willows in the midst thereof. + +137:3 For there they that carried us away captive required of us a +song; and they that wasted us required of us mirth, saying, Sing us +one of the songs of Zion. + +137:4 How shall we sing the LORD's song in a strange land? + +137:5 If I forget thee, O Jerusalem, let my right hand forget her +cunning. + +137:6 If I do not remember thee, let my tongue cleave to the roof of +my mouth; if I prefer not Jerusalem above my chief joy. + +137:7 Remember, O LORD, the children of Edom in the day of Jerusalem; +who said, Rase it, rase it, even to the foundation thereof. + +137:8 O daughter of Babylon, who art to be destroyed; happy shall he +be, that rewardeth thee as thou hast served us. + +137:9 Happy shall he be, that taketh and dasheth thy little ones +against the stones. + + + +138:1 I will praise thee with my whole heart: before the gods will I +sing praise unto thee. + +138:2 I will worship toward thy holy temple, and praise thy name for +thy lovingkindness and for thy truth: for thou hast magnified thy word +above all thy name. + +138:3 In the day when I cried thou answeredst me, and strengthenedst +me with strength in my soul. + +138:4 All the kings of the earth shall praise thee, O LORD, when they +hear the words of thy mouth. + +138:5 Yea, they shall sing in the ways of the LORD: for great is the +glory of the LORD. + +138:6 Though the LORD be high, yet hath he respect unto the lowly: but +the proud he knoweth afar off. + +138:7 Though I walk in the midst of trouble, thou wilt revive me: thou +shalt stretch forth thine hand against the wrath of mine enemies, and +thy right hand shall save me. + +138:8 The LORD will perfect that which concerneth me: thy mercy, O +LORD, endureth for ever: forsake not the works of thine own hands. + + + +139:1 O lord, thou hast searched me, and known me. + +139:2 Thou knowest my downsitting and mine uprising, thou +understandest my thought afar off. + +139:3 Thou compassest my path and my lying down, and art acquainted +with all my ways. + +139:4 For there is not a word in my tongue, but, lo, O LORD, thou +knowest it altogether. + +139:5 Thou hast beset me behind and before, and laid thine hand upon +me. + +139:6 Such knowledge is too wonderful for me; it is high, I cannot +attain unto it. + +139:7 Whither shall I go from thy spirit? or whither shall I flee from +thy presence? + +139:8 If I ascend up into heaven, thou art there: if I make my bed in +hell, behold, thou art there. + +139:9 If I take the wings of the morning, and dwell in the uttermost +parts of the sea; + +139:10 Even there shall thy hand lead me, and thy right hand shall +hold me. + +139:11 If I say, Surely the darkness shall cover me; even the night +shall be light about me. + +139:12 Yea, the darkness hideth not from thee; but the night shineth +as the day: the darkness and the light are both alike to thee. + +139:13 For thou hast possessed my reins: thou hast covered me in my +mother's womb. + +139:14 I will praise thee; for I am fearfully and wonderfully made: +marvellous are thy works; and that my soul knoweth right well. + +139:15 My substance was not hid from thee, when I was made in secret, +and curiously wrought in the lowest parts of the earth. + +139:16 Thine eyes did see my substance, yet being unperfect; and in +thy book all my members were written, which in continuance were +fashioned, when as yet there was none of them. + +139:17 How precious also are thy thoughts unto me, O God! how great is +the sum of them! + +139:18 If I should count them, they are more in number than the sand: +when I awake, I am still with thee. + +139:19 Surely thou wilt slay the wicked, O God: depart from me +therefore, ye bloody men. + +139:20 For they speak against thee wickedly, and thine enemies take +thy name in vain. + +139:21 Do not I hate them, O LORD, that hate thee? and am not I +grieved with those that rise up against thee? + +139:22 I hate them with perfect hatred: I count them mine enemies. + +139:23 Search me, O God, and know my heart: try me, and know my +thoughts: + +139:24 And see if there be any wicked way in me, and lead me in the +way everlasting. + + + +140:1 Deliver me, O LORD, from the evil man: preserve me from the +violent man; + +140:2 Which imagine mischiefs in their heart; continually are they +gathered together for war. + +140:3 They have sharpened their tongues like a serpent; adders' poison +is under their lips. Selah. + +140:4 Keep me, O LORD, from the hands of the wicked; preserve me from +the violent man; who have purposed to overthrow my goings. + +140:5 The proud have hid a snare for me, and cords; they have spread a +net by the wayside; they have set gins for me. Selah. + +140:6 I said unto the LORD, Thou art my God: hear the voice of my +supplications, O LORD. + +140:7 O GOD the Lord, the strength of my salvation, thou hast covered +my head in the day of battle. + +140:8 Grant not, O LORD, the desires of the wicked: further not his +wicked device; lest they exalt themselves. Selah. + +140:9 As for the head of those that compass me about, let the mischief +of their own lips cover them. + +140:10 Let burning coals fall upon them: let them be cast into the +fire; into deep pits, that they rise not up again. + +140:11 Let not an evil speaker be established in the earth: evil shall +hunt the violent man to overthrow him. + +140:12 I know that the LORD will maintain the cause of the afflicted, +and the right of the poor. + +140:13 Surely the righteous shall give thanks unto thy name: the +upright shall dwell in thy presence. + + + +141:1 Lord, I cry unto thee: make haste unto me; give ear unto my +voice, when I cry unto thee. + +141:2 Let my prayer be set forth before thee as incense; and the +lifting up of my hands as the evening sacrifice. + +141:3 Set a watch, O LORD, before my mouth; keep the door of my lips. + +141:4 Incline not my heart to any evil thing, to practise wicked works +with men that work iniquity: and let me not eat of their dainties. + +141:5 Let the righteous smite me; it shall be a kindness: and let him +reprove me; it shall be an excellent oil, which shall not break my +head: for yet my prayer also shall be in their calamities. + +141:6 When their judges are overthrown in stony places, they shall +hear my words; for they are sweet. + +141:7 Our bones are scattered at the grave's mouth, as when one +cutteth and cleaveth wood upon the earth. + +141:8 But mine eyes are unto thee, O GOD the Lord: in thee is my +trust; leave not my soul destitute. + +141:9 Keep me from the snares which they have laid for me, and the +gins of the workers of iniquity. + +141:10 Let the wicked fall into their own nets, whilst that I withal +escape. + + + +142:1 I cried unto the LORD with my voice; with my voice unto the LORD +did I make my supplication. + +142:2 I poured out my complaint before him; I shewed before him my +trouble. + +142:3 When my spirit was overwhelmed within me, then thou knewest my +path. + +In the way wherein I walked have they privily laid a snare for me. + +142:4 I looked on my right hand, and beheld, but there was no man that +would know me: refuge failed me; no man cared for my soul. + +142:5 I cried unto thee, O LORD: I said, Thou art my refuge and my +portion in the land of the living. + +142:6 Attend unto my cry; for I am brought very low: deliver me from +my persecutors; for they are stronger than I. + +142:7 Bring my soul out of prison, that I may praise thy name: the +righteous shall compass me about; for thou shalt deal bountifully with +me. + + + +143:1 Hear my prayer, O LORD, give ear to my supplications: in thy +faithfulness answer me, and in thy righteousness. + +143:2 And enter not into judgment with thy servant: for in thy sight +shall no man living be justified. + +143:3 For the enemy hath persecuted my soul; he hath smitten my life +down to the ground; he hath made me to dwell in darkness, as those +that have been long dead. + +143:4 Therefore is my spirit overwhelmed within me; my heart within me +is desolate. + +143:5 I remember the days of old; I meditate on all thy works; I muse +on the work of thy hands. + +143:6 I stretch forth my hands unto thee: my soul thirsteth after +thee, as a thirsty land. Selah. + +143:7 Hear me speedily, O LORD: my spirit faileth: hide not thy face +from me, lest I be like unto them that go down into the pit. + +143:8 Cause me to hear thy lovingkindness in the morning; for in thee +do I trust: cause me to know the way wherein I should walk; for I lift +up my soul unto thee. + +143:9 Deliver me, O LORD, from mine enemies: I flee unto thee to hide +me. + +143:10 Teach me to do thy will; for thou art my God: thy spirit is +good; lead me into the land of uprightness. + +143:11 Quicken me, O LORD, for thy name's sake: for thy righteousness' +sake bring my soul out of trouble. + +143:12 And of thy mercy cut off mine enemies, and destroy all them +that afflict my soul: for I am thy servant. + + + +144:1 Blessed be the LORD my strength which teacheth my hands to war, +and my fingers to fight: + +144:2 My goodness, and my fortress; my high tower, and my deliverer; +my shield, and he in whom I trust; who subdueth my people under me. + +144:3 LORD, what is man, that thou takest knowledge of him! or the son +of man, that thou makest account of him! + +144:4 Man is like to vanity: his days are as a shadow that passeth +away. + +144:5 Bow thy heavens, O LORD, and come down: touch the mountains, and +they shall smoke. + +144:6 Cast forth lightning, and scatter them: shoot out thine arrows, +and destroy them. + +144:7 Send thine hand from above; rid me, and deliver me out of great +waters, from the hand of strange children; + +144:8 Whose mouth speaketh vanity, and their right hand is a right +hand of falsehood. + +144:9 I will sing a new song unto thee, O God: upon a psaltery and an +instrument of ten strings will I sing praises unto thee. + +144:10 It is he that giveth salvation unto kings: who delivereth David +his servant from the hurtful sword. + +144:11 Rid me, and deliver me from the hand of strange children, whose +mouth speaketh vanity, and their right hand is a right hand of +falsehood: + +144:12 That our sons may be as plants grown up in their youth; that +our daughters may be as corner stones, polished after the similitude +of a palace: + +144:13 That our garners may be full, affording all manner of store: +that our sheep may bring forth thousands and ten thousands in our +streets: + +144:14 That our oxen may be strong to labour; that there be no +breaking in, nor going out; that there be no complaining in our +streets. + +144:15 Happy is that people, that is in such a case: yea, happy is +that people, whose God is the LORD. + + + +145:1 I will extol thee, my God, O king; and I will bless thy name for +ever and ever. + +145:2 Every day will I bless thee; and I will praise thy name for ever +and ever. + +145:3 Great is the LORD, and greatly to be praised; and his greatness +is unsearchable. + +145:4 One generation shall praise thy works to another, and shall +declare thy mighty acts. + +145:5 I will speak of the glorious honour of thy majesty, and of thy +wondrous works. + +145:6 And men shall speak of the might of thy terrible acts: and I +will declare thy greatness. + +145:7 They shall abundantly utter the memory of thy great goodness, +and shall sing of thy righteousness. + +145:8 The LORD is gracious, and full of compassion; slow to anger, and +of great mercy. + +145:9 The LORD is good to all: and his tender mercies are over all his +works. + +145:10 All thy works shall praise thee, O LORD; and thy saints shall +bless thee. + +145:11 They shall speak of the glory of thy kingdom, and talk of thy +power; + +145:12 To make known to the sons of men his mighty acts, and the +glorious majesty of his kingdom. + +145:13 Thy kingdom is an everlasting kingdom, and thy dominion +endureth throughout all generations. + +145:14 The LORD upholdeth all that fall, and raiseth up all those that +be bowed down. + +145:15 The eyes of all wait upon thee; and thou givest them their meat +in due season. + +145:16 Thou openest thine hand, and satisfiest the desire of every +living thing. + +145:17 The LORD is righteous in all his ways, and holy in all his +works. + +145:18 The LORD is nigh unto all them that call upon him, to all that +call upon him in truth. + +145:19 He will fulfil the desire of them that fear him: he also will +hear their cry, and will save them. + +145:20 The LORD preserveth all them that love him: but all the wicked +will he destroy. + +145:21 My mouth shall speak the praise of the LORD: and let all flesh +bless his holy name for ever and ever. + + + +146:1 Praise ye the LORD. Praise the LORD, O my soul. + +146:2 While I live will I praise the LORD: I will sing praises unto my +God while I have any being. + +146:3 Put not your trust in princes, nor in the son of man, in whom +there is no help. + +146:4 His breath goeth forth, he returneth to his earth; in that very +day his thoughts perish. + +146:5 Happy is he that hath the God of Jacob for his help, whose hope +is in the LORD his God: + +146:6 Which made heaven, and earth, the sea, and all that therein is: +which keepeth truth for ever: + +146:7 Which executeth judgment for the oppressed: which giveth food to +the hungry. The LORD looseth the prisoners: + +146:8 The LORD openeth the eyes of the blind: the LORD raiseth them +that are bowed down: the LORD loveth the righteous: + +146:9 The LORD preserveth the strangers; he relieveth the fatherless +and widow: but the way of the wicked he turneth upside down. + +146:10 The LORD shall reign for ever, even thy God, O Zion, unto all +generations. Praise ye the LORD. + + + +147:1 Praise ye the LORD: for it is good to sing praises unto our God; +for it is pleasant; and praise is comely. + +147:2 The LORD doth build up Jerusalem: he gathereth together the +outcasts of Israel. + +147:3 He healeth the broken in heart, and bindeth up their wounds. + +147:4 He telleth the number of the stars; he calleth them all by their +names. + +147:5 Great is our Lord, and of great power: his understanding is +infinite. + +147:6 The LORD lifteth up the meek: he casteth the wicked down to the +ground. + +147:7 Sing unto the LORD with thanksgiving; sing praise upon the harp +unto our God: + +147:8 Who covereth the heaven with clouds, who prepareth rain for the +earth, who maketh grass to grow upon the mountains. + +147:9 He giveth to the beast his food, and to the young ravens which +cry. + +147:10 He delighteth not in the strength of the horse: he taketh not +pleasure in the legs of a man. + +147:11 The LORD taketh pleasure in them that fear him, in those that +hope in his mercy. + +147:12 Praise the LORD, O Jerusalem; praise thy God, O Zion. + +147:13 For he hath strengthened the bars of thy gates; he hath blessed +thy children within thee. + +147:14 He maketh peace in thy borders, and filleth thee with the +finest of the wheat. + +147:15 He sendeth forth his commandment upon earth: his word runneth +very swiftly. + +147:16 He giveth snow like wool: he scattereth the hoarfrost like +ashes. + +147:17 He casteth forth his ice like morsels: who can stand before his +cold? + +147:18 He sendeth out his word, and melteth them: he causeth his wind +to blow, and the waters flow. + +147:19 He sheweth his word unto Jacob, his statutes and his judgments +unto Israel. + +147:20 He hath not dealt so with any nation: and as for his judgments, +they have not known them. Praise ye the LORD. + + + +148:1 Praise ye the LORD. Praise ye the LORD from the heavens: praise +him in the heights. + +148:2 Praise ye him, all his angels: praise ye him, all his hosts. + +148:3 Praise ye him, sun and moon: praise him, all ye stars of light. + +148:4 Praise him, ye heavens of heavens, and ye waters that be above +the heavens. + +148:5 Let them praise the name of the LORD: for he commanded, and they +were created. + +148:6 He hath also stablished them for ever and ever: he hath made a +decree which shall not pass. + +148:7 Praise the LORD from the earth, ye dragons, and all deeps: + +148:8 Fire, and hail; snow, and vapours; stormy wind fulfilling his +word: + +148:9 Mountains, and all hills; fruitful trees, and all cedars: + +148:10 Beasts, and all cattle; creeping things, and flying fowl: + +148:11 Kings of the earth, and all people; princes, and all judges of +the earth: + +148:12 Both young men, and maidens; old men, and children: + +148:13 Let them praise the name of the LORD: for his name alone is +excellent; his glory is above the earth and heaven. + +148:14 He also exalteth the horn of his people, the praise of all his +saints; even of the children of Israel, a people near unto him. Praise +ye the LORD. + + + +149:1 Praise ye the LORD. Sing unto the LORD a new song, and his +praise in the congregation of saints. + +149:2 Let Israel rejoice in him that made him: let the children of +Zion be joyful in their King. + +149:3 Let them praise his name in the dance: let them sing praises +unto him with the timbrel and harp. + +149:4 For the LORD taketh pleasure in his people: he will beautify the +meek with salvation. + +149:5 Let the saints be joyful in glory: let them sing aloud upon +their beds. + +149:6 Let the high praises of God be in their mouth, and a two-edged +sword in their hand; + +149:7 To execute vengeance upon the heathen, and punishments upon the +people; + +149:8 To bind their kings with chains, and their nobles with fetters +of iron; + +149:9 To execute upon them the judgment written: this honour have all +his saints. Praise ye the LORD. + + + +150:1 Praise ye the LORD. Praise God in his sanctuary: praise him in +the firmament of his power. + +150:2 Praise him for his mighty acts: praise him according to his +excellent greatness. + +150:3 Praise him with the sound of the trumpet: praise him with the +psaltery and harp. + +150:4 Praise him with the timbrel and dance: praise him with stringed +instruments and organs. + +150:5 Praise him upon the loud cymbals: praise him upon the high +sounding cymbals. + +150:6 Let every thing that hath breath praise the LORD. Praise ye the LORD. + + + + +The Proverbs + + +1:1 The proverbs of Solomon the son of David, king of Israel; 1:2 To +know wisdom and instruction; to perceive the words of understanding; +1:3 To receive the instruction of wisdom, justice, and judgment, and +equity; 1:4 To give subtilty to the simple, to the young man knowledge +and discretion. + +1:5 A wise man will hear, and will increase learning; and a man of +understanding shall attain unto wise counsels: 1:6 To understand a +proverb, and the interpretation; the words of the wise, and their dark +sayings. + +1:7 The fear of the LORD is the beginning of knowledge: but fools +despise wisdom and instruction. + +1:8 My son, hear the instruction of thy father, and forsake not the +law of thy mother: 1:9 For they shall be an ornament of grace unto thy +head, and chains about thy neck. + +1:10 My son, if sinners entice thee, consent thou not. + +1:11 If they say, Come with us, let us lay wait for blood, let us lurk +privily for the innocent without cause: 1:12 Let us swallow them up +alive as the grave; and whole, as those that go down into the pit: +1:13 We shall find all precious substance, we shall fill our houses +with spoil: 1:14 Cast in thy lot among us; let us all have one purse: +1:15 My son, walk not thou in the way with them; refrain thy foot from +their path: 1:16 For their feet run to evil, and make haste to shed +blood. + +1:17 Surely in vain the net is spread in the sight of any bird. + +1:18 And they lay wait for their own blood; they lurk privily for +their own lives. + +1:19 So are the ways of every one that is greedy of gain; which taketh +away the life of the owners thereof. + +1:20 Wisdom crieth without; she uttereth her voice in the streets: +1:21 She crieth in the chief place of concourse, in the openings of +the gates: in the city she uttereth her words, saying, 1:22 How long, +ye simple ones, will ye love simplicity? and the scorners delight in +their scorning, and fools hate knowledge? 1:23 Turn you at my +reproof: behold, I will pour out my spirit unto you, I will make known +my words unto you. + +1:24 Because I have called, and ye refused; I have stretched out my +hand, and no man regarded; 1:25 But ye have set at nought all my +counsel, and would none of my reproof: 1:26 I also will laugh at your +calamity; I will mock when your fear cometh; 1:27 When your fear +cometh as desolation, and your destruction cometh as a whirlwind; when +distress and anguish cometh upon you. + +1:28 Then shall they call upon me, but I will not answer; they shall +seek me early, but they shall not find me: 1:29 For that they hated +knowledge, and did not choose the fear of the LORD: 1:30 They would +none of my counsel: they despised all my reproof. + +1:31 Therefore shall they eat of the fruit of their own way, and be +filled with their own devices. + +1:32 For the turning away of the simple shall slay them, and the +prosperity of fools shall destroy them. + +1:33 But whoso hearkeneth unto me shall dwell safely, and shall be +quiet from fear of evil. + +2:1 My son, if thou wilt receive my words, and hide my commandments +with thee; 2:2 So that thou incline thine ear unto wisdom, and apply +thine heart to understanding; 2:3 Yea, if thou criest after knowledge, +and liftest up thy voice for understanding; 2:4 If thou seekest her as +silver, and searchest for her as for hid treasures; 2:5 Then shalt +thou understand the fear of the LORD, and find the knowledge of God. + +2:6 For the LORD giveth wisdom: out of his mouth cometh knowledge and +understanding. + +2:7 He layeth up sound wisdom for the righteous: he is a buckler to +them that walk uprightly. + +2:8 He keepeth the paths of judgment, and preserveth the way of his +saints. + +2:9 Then shalt thou understand righteousness, and judgment, and +equity; yea, every good path. + +2:10 When wisdom entereth into thine heart, and knowledge is pleasant +unto thy soul; 2:11 Discretion shall preserve thee, understanding +shall keep thee: 2:12 To deliver thee from the way of the evil man, +from the man that speaketh froward things; 2:13 Who leave the paths of +uprightness, to walk in the ways of darkness; 2:14 Who rejoice to do +evil, and delight in the frowardness of the wicked; 2:15 Whose ways +are crooked, and they froward in their paths: 2:16 To deliver thee +from the strange woman, even from the stranger which flattereth with +her words; 2:17 Which forsaketh the guide of her youth, and forgetteth +the covenant of her God. + +2:18 For her house inclineth unto death, and her paths unto the dead. + +2:19 None that go unto her return again, neither take they hold of the +paths of life. + +2:20 That thou mayest walk in the way of good men, and keep the paths +of the righteous. + +2:21 For the upright shall dwell in the land, and the perfect shall +remain in it. + +2:22 But the wicked shall be cut off from the earth, and the +transgressors shall be rooted out of it. + +3:1 My son, forget not my law; but let thine heart keep my +commandments: 3:2 For length of days, and long life, and peace, shall +they add to thee. + +3:3 Let not mercy and truth forsake thee: bind them about thy neck; +write them upon the table of thine heart: 3:4 So shalt thou find +favour and good understanding in the sight of God and man. + +3:5 Trust in the LORD with all thine heart; and lean not unto thine +own understanding. + +3:6 In all thy ways acknowledge him, and he shall direct thy paths. + +3:7 Be not wise in thine own eyes: fear the LORD, and depart from +evil. + +3:8 It shall be health to thy navel, and marrow to thy bones. + +3:9 Honour the LORD with thy substance, and with the firstfruits of +all thine increase: 3:10 So shall thy barns be filled with plenty, and +thy presses shall burst out with new wine. + +3:11 My son, despise not the chastening of the LORD; neither be weary +of his correction: 3:12 For whom the LORD loveth he correcteth; even +as a father the son in whom he delighteth. + +3:13 Happy is the man that findeth wisdom, and the man that getteth +understanding. + +3:14 For the merchandise of it is better than the merchandise of +silver, and the gain thereof than fine gold. + +3:15 She is more precious than rubies: and all the things thou canst +desire are not to be compared unto her. + +3:16 Length of days is in her right hand; and in her left hand riches +and honour. + +3:17 Her ways are ways of pleasantness, and all her paths are peace. + +3:18 She is a tree of life to them that lay hold upon her: and happy +is every one that retaineth her. + +3:19 The LORD by wisdom hath founded the earth; by understanding hath +he established the heavens. + +3:20 By his knowledge the depths are broken up, and the clouds drop +down the dew. + +3:21 My son, let not them depart from thine eyes: keep sound wisdom +and discretion: 3:22 So shall they be life unto thy soul, and grace to +thy neck. + +3:23 Then shalt thou walk in thy way safely, and thy foot shall not +stumble. + +3:24 When thou liest down, thou shalt not be afraid: yea, thou shalt +lie down, and thy sleep shall be sweet. + +3:25 Be not afraid of sudden fear, neither of the desolation of the +wicked, when it cometh. + +3:26 For the LORD shall be thy confidence, and shall keep thy foot +from being taken. + +3:27 Withhold not good from them to whom it is due, when it is in the +power of thine hand to do it. + +3:28 Say not unto thy neighbour, Go, and come again, and to morrow I +will give; when thou hast it by thee. + +3:29 Devise not evil against thy neighbour, seeing he dwelleth +securely by thee. + +3:30 Strive not with a man without cause, if he have done thee no +harm. + +3:31 Envy thou not the oppressor, and choose none of his ways. + +3:32 For the froward is abomination to the LORD: but his secret is +with the righteous. + +3:33 The curse of the LORD is in the house of the wicked: but he +blesseth the habitation of the just. + +3:34 Surely he scorneth the scorners: but he giveth grace unto the +lowly. + +3:35 The wise shall inherit glory: but shame shall be the promotion of +fools. + +4:1 Hear, ye children, the instruction of a father, and attend to know +understanding. + +4:2 For I give you good doctrine, forsake ye not my law. + +4:3 For I was my father's son, tender and only beloved in the sight of +my mother. + +4:4 He taught me also, and said unto me, Let thine heart retain my +words: keep my commandments, and live. + +4:5 Get wisdom, get understanding: forget it not; neither decline from +the words of my mouth. + +4:6 Forsake her not, and she shall preserve thee: love her, and she +shall keep thee. + +4:7 Wisdom is the principal thing; therefore get wisdom: and with all +thy getting get understanding. + +4:8 Exalt her, and she shall promote thee: she shall bring thee to +honour, when thou dost embrace her. + +4:9 She shall give to thine head an ornament of grace: a crown of +glory shall she deliver to thee. + +4:10 Hear, O my son, and receive my sayings; and the years of thy life +shall be many. + +4:11 I have taught thee in the way of wisdom; I have led thee in right +paths. + +4:12 When thou goest, thy steps shall not be straitened; and when thou +runnest, thou shalt not stumble. + +4:13 Take fast hold of instruction; let her not go: keep her; for she +is thy life. + +4:14 Enter not into the path of the wicked, and go not in the way of +evil men. + +4:15 Avoid it, pass not by it, turn from it, and pass away. + +4:16 For they sleep not, except they have done mischief; and their +sleep is taken away, unless they cause some to fall. + +4:17 For they eat the bread of wickedness, and drink the wine of +violence. + +4:18 But the path of the just is as the shining light, that shineth +more and more unto the perfect day. + +4:19 The way of the wicked is as darkness: they know not at what they +stumble. + +4:20 My son, attend to my words; incline thine ear unto my sayings. + +4:21 Let them not depart from thine eyes; keep them in the midst of +thine heart. + +4:22 For they are life unto those that find them, and health to all +their flesh. + +4:23 Keep thy heart with all diligence; for out of it are the issues +of life. + +4:24 Put away from thee a froward mouth, and perverse lips put far +from thee. + +4:25 Let thine eyes look right on, and let thine eyelids look straight +before thee. + +4:26 Ponder the path of thy feet, and let all thy ways be established. + +4:27 Turn not to the right hand nor to the left: remove thy foot from +evil. + +5:1 My son, attend unto my wisdom, and bow thine ear to my +understanding: 5:2 That thou mayest regard discretion, and that thy +lips may keep knowledge. + +5:3 For the lips of a strange woman drop as an honeycomb, and her +mouth is smoother than oil: 5:4 But her end is bitter as wormwood, +sharp as a two-edged sword. + +5:5 Her feet go down to death; her steps take hold on hell. + +5:6 Lest thou shouldest ponder the path of life, her ways are +moveable, that thou canst not know them. + +5:7 Hear me now therefore, O ye children, and depart not from the +words of my mouth. + +5:8 Remove thy way far from her, and come not nigh the door of her +house: 5:9 Lest thou give thine honour unto others, and thy years unto +the cruel: 5:10 Lest strangers be filled with thy wealth; and thy +labours be in the house of a stranger; 5:11 And thou mourn at the +last, when thy flesh and thy body are consumed, 5:12 And say, How have +I hated instruction, and my heart despised reproof; 5:13 And have not +obeyed the voice of my teachers, nor inclined mine ear to them that +instructed me! 5:14 I was almost in all evil in the midst of the +congregation and assembly. + +5:15 Drink waters out of thine own cistern, and running waters out of +thine own well. + +5:16 Let thy fountains be dispersed abroad, and rivers of waters in +the streets. + +5:17 Let them be only thine own, and not strangers' with thee. + +5:18 Let thy fountain be blessed: and rejoice with the wife of thy +youth. + +5:19 Let her be as the loving hind and pleasant roe; let her breasts +satisfy thee at all times; and be thou ravished always with her love. + +5:20 And why wilt thou, my son, be ravished with a strange woman, and +embrace the bosom of a stranger? 5:21 For the ways of man are before +the eyes of the LORD, and he pondereth all his goings. + +5:22 His own iniquities shall take the wicked himself, and he shall be +holden with the cords of his sins. + +5:23 He shall die without instruction; and in the greatness of his +folly he shall go astray. + +6:1 My son, if thou be surety for thy friend, if thou hast stricken +thy hand with a stranger, 6:2 Thou art snared with the words of thy +mouth, thou art taken with the words of thy mouth. + +6:3 Do this now, my son, and deliver thyself, when thou art come into +the hand of thy friend; go, humble thyself, and make sure thy friend. + +6:4 Give not sleep to thine eyes, nor slumber to thine eyelids. + +6:5 Deliver thyself as a roe from the hand of the hunter, and as a +bird from the hand of the fowler. + +6:6 Go to the ant, thou sluggard; consider her ways, and be wise: 6:7 +Which having no guide, overseer, or ruler, 6:8 Provideth her meat in +the summer, and gathereth her food in the harvest. + +6:9 How long wilt thou sleep, O sluggard? when wilt thou arise out of +thy sleep? 6:10 Yet a little sleep, a little slumber, a little +folding of the hands to sleep: 6:11 So shall thy poverty come as one +that travelleth, and thy want as an armed man. + +6:12 A naughty person, a wicked man, walketh with a froward mouth. + +6:13 He winketh with his eyes, he speaketh with his feet, he teacheth +with his fingers; 6:14 Frowardness is in his heart, he deviseth +mischief continually; he soweth discord. + +6:15 Therefore shall his calamity come suddenly; suddenly shall he be +broken without remedy. + +6:16 These six things doth the LORD hate: yea, seven are an +abomination unto him: 6:17 A proud look, a lying tongue, and hands +that shed innocent blood, 6:18 An heart that deviseth wicked +imaginations, feet that be swift in running to mischief, 6:19 A false +witness that speaketh lies, and he that soweth discord among brethren. + +6:20 My son, keep thy father's commandment, and forsake not the law of +thy mother: 6:21 Bind them continually upon thine heart, and tie them +about thy neck. + +6:22 When thou goest, it shall lead thee; when thou sleepest, it shall +keep thee; and when thou awakest, it shall talk with thee. + +6:23 For the commandment is a lamp; and the law is light; and reproofs +of instruction are the way of life: 6:24 To keep thee from the evil +woman, from the flattery of the tongue of a strange woman. + +6:25 Lust not after her beauty in thine heart; neither let her take +thee with her eyelids. + +6:26 For by means of a whorish woman a man is brought to a piece of +bread: and the adultress will hunt for the precious life. + +6:27 Can a man take fire in his bosom, and his clothes not be burned? +6:28 Can one go upon hot coals, and his feet not be burned? 6:29 So +he that goeth in to his neighbour's wife; whosoever toucheth her shall +not be innocent. + +6:30 Men do not despise a thief, if he steal to satisfy his soul when +he is hungry; 6:31 But if he be found, he shall restore sevenfold; he +shall give all the substance of his house. + +6:32 But whoso committeth adultery with a woman lacketh understanding: +he that doeth it destroyeth his own soul. + +6:33 A wound and dishonour shall he get; and his reproach shall not be +wiped away. + +6:34 For jealousy is the rage of a man: therefore he will not spare in +the day of vengeance. + +6:35 He will not regard any ransom; neither will he rest content, +though thou givest many gifts. + +7:1 My son, keep my words, and lay up my commandments with thee. + +7:2 Keep my commandments, and live; and my law as the apple of thine +eye. + +7:3 Bind them upon thy fingers, write them upon the table of thine +heart. + +7:4 Say unto wisdom, Thou art my sister; and call understanding thy +kinswoman: 7:5 That they may keep thee from the strange woman, from +the stranger which flattereth with her words. + +7:6 For at the window of my house I looked through my casement, 7:7 +And beheld among the simple ones, I discerned among the youths, a +young man void of understanding, 7:8 Passing through the street near +her corner; and he went the way to her house, 7:9 In the twilight, in +the evening, in the black and dark night: 7:10 And, behold, there met +him a woman with the attire of an harlot, and subtil of heart. + +7:11 (She is loud and stubborn; her feet abide not in her house: 7:12 +Now is she without, now in the streets, and lieth in wait at every +corner.) 7:13 So she caught him, and kissed him, and with an impudent +face said unto him, 7:14 I have peace offerings with me; this day have +I payed my vows. + +7:15 Therefore came I forth to meet thee, diligently to seek thy face, +and I have found thee. + +7:16 I have decked my bed with coverings of tapestry, with carved +works, with fine linen of Egypt. + +7:17 I have perfumed my bed with myrrh, aloes, and cinnamon. + +7:18 Come, let us take our fill of love until the morning: let us +solace ourselves with loves. + +7:19 For the goodman is not at home, he is gone a long journey: 7:20 +He hath taken a bag of money with him, and will come home at the day +appointed. + +7:21 With her much fair speech she caused him to yield, with the +flattering of her lips she forced him. + +7:22 He goeth after her straightway, as an ox goeth to the slaughter, +or as a fool to the correction of the stocks; 7:23 Till a dart strike +through his liver; as a bird hasteth to the snare, and knoweth not +that it is for his life. + +7:24 Hearken unto me now therefore, O ye children, and attend to the +words of my mouth. + +7:25 Let not thine heart decline to her ways, go not astray in her +paths. + +7:26 For she hath cast down many wounded: yea, many strong men have +been slain by her. + +7:27 Her house is the way to hell, going down to the chambers of +death. + +8:1 Doth not wisdom cry? and understanding put forth her voice? 8:2 +She standeth in the top of high places, by the way in the places of +the paths. + +8:3 She crieth at the gates, at the entry of the city, at the coming +in at the doors. + +8:4 Unto you, O men, I call; and my voice is to the sons of man. + +8:5 O ye simple, understand wisdom: and, ye fools, be ye of an +understanding heart. + +8:6 Hear; for I will speak of excellent things; and the opening of my +lips shall be right things. + +8:7 For my mouth shall speak truth; and wickedness is an abomination +to my lips. + +8:8 All the words of my mouth are in righteousness; there is nothing +froward or perverse in them. + +8:9 They are all plain to him that understandeth, and right to them +that find knowledge. + +8:10 Receive my instruction, and not silver; and knowledge rather than +choice gold. + +8:11 For wisdom is better than rubies; and all the things that may be +desired are not to be compared to it. + +8:12 I wisdom dwell with prudence, and find out knowledge of witty +inventions. + +8:13 The fear of the LORD is to hate evil: pride, and arrogancy, and +the evil way, and the froward mouth, do I hate. + +8:14 Counsel is mine, and sound wisdom: I am understanding; I have +strength. + +8:15 By me kings reign, and princes decree justice. + +8:16 By me princes rule, and nobles, even all the judges of the earth. + +8:17 I love them that love me; and those that seek me early shall find +me. + +8:18 Riches and honour are with me; yea, durable riches and +righteousness. + +8:19 My fruit is better than gold, yea, than fine gold; and my revenue +than choice silver. + +8:20 I lead in the way of righteousness, in the midst of the paths of +judgment: 8:21 That I may cause those that love me to inherit +substance; and I will fill their treasures. + +8:22 The LORD possessed me in the beginning of his way, before his +works of old. + +8:23 I was set up from everlasting, from the beginning, or ever the +earth was. + +8:24 When there were no depths, I was brought forth; when there were +no fountains abounding with water. + +8:25 Before the mountains were settled, before the hills was I brought +forth: 8:26 While as yet he had not made the earth, nor the fields, +nor the highest part of the dust of the world. + +8:27 When he prepared the heavens, I was there: when he set a compass +upon the face of the depth: 8:28 When he established the clouds above: +when he strengthened the fountains of the deep: 8:29 When he gave to +the sea his decree, that the waters should not pass his commandment: +when he appointed the foundations of the earth: 8:30 Then I was by +him, as one brought up with him: and I was daily his delight, +rejoicing always before him; 8:31 Rejoicing in the habitable part of +his earth; and my delights were with the sons of men. + +8:32 Now therefore hearken unto me, O ye children: for blessed are +they that keep my ways. + +8:33 Hear instruction, and be wise, and refuse it not. + +8:34 Blessed is the man that heareth me, watching daily at my gates, +waiting at the posts of my doors. + +8:35 For whoso findeth me findeth life, and shall obtain favour of the +LORD. + +8:36 But he that sinneth against me wrongeth his own soul: all they +that hate me love death. + +9:1 Wisdom hath builded her house, she hath hewn out her seven +pillars: 9:2 She hath killed her beasts; she hath mingled her wine; +she hath also furnished her table. + +9:3 She hath sent forth her maidens: she crieth upon the highest +places of the city, 9:4 Whoso is simple, let him turn in hither: as +for him that wanteth understanding, she saith to him, 9:5 Come, eat of +my bread, and drink of the wine which I have mingled. + +9:6 Forsake the foolish, and live; and go in the way of understanding. + +9:7 He that reproveth a scorner getteth to himself shame: and he that +rebuketh a wicked man getteth himself a blot. + +9:8 Reprove not a scorner, lest he hate thee: rebuke a wise man, and +he will love thee. + +9:9 Give instruction to a wise man, and he will be yet wiser: teach a +just man, and he will increase in learning. + +9:10 The fear of the LORD is the beginning of wisdom: and the +knowledge of the holy is understanding. + +9:11 For by me thy days shall be multiplied, and the years of thy life +shall be increased. + +9:12 If thou be wise, thou shalt be wise for thyself: but if thou +scornest, thou alone shalt bear it. + +9:13 A foolish woman is clamorous: she is simple, and knoweth nothing. + +9:14 For she sitteth at the door of her house, on a seat in the high +places of the city, 9:15 To call passengers who go right on their +ways: 9:16 Whoso is simple, let him turn in hither: and as for him +that wanteth understanding, she saith to him, 9:17 Stolen waters are +sweet, and bread eaten in secret is pleasant. + +9:18 But he knoweth not that the dead are there; and that her guests +are in the depths of hell. + +10:1 The proverbs of Solomon. A wise son maketh a glad father: but a +foolish son is the heaviness of his mother. + +10:2 Treasures of wickedness profit nothing: but righteousness +delivereth from death. + +10:3 The LORD will not suffer the soul of the righteous to famish: but +he casteth away the substance of the wicked. + +10:4 He becometh poor that dealeth with a slack hand: but the hand of +the diligent maketh rich. + +10:5 He that gathereth in summer is a wise son: but he that sleepeth +in harvest is a son that causeth shame. + +10:6 Blessings are upon the head of the just: but violence covereth +the mouth of the wicked. + +10:7 The memory of the just is blessed: but the name of the wicked +shall rot. + +10:8 The wise in heart will receive commandments: but a prating fool +shall fall. + +10:9 He that walketh uprightly walketh surely: but he that perverteth +his ways shall be known. + +10:10 He that winketh with the eye causeth sorrow: but a prating fool +shall fall. + +10:11 The mouth of a righteous man is a well of life: but violence +covereth the mouth of the wicked. + +10:12 Hatred stirreth up strifes: but love covereth all sins. + +10:13 In the lips of him that hath understanding wisdom is found: but +a rod is for the back of him that is void of understanding. + +10:14 Wise men lay up knowledge: but the mouth of the foolish is near +destruction. + +10:15 The rich man's wealth is his strong city: the destruction of the +poor is their poverty. + +10:16 The labour of the righteous tendeth to life: the fruit of the +wicked to sin. + +10:17 He is in the way of life that keepeth instruction: but he that +refuseth reproof erreth. + +10:18 He that hideth hatred with lying lips, and he that uttereth a +slander, is a fool. + +10:19 In the multitude of words there wanteth not sin: but he that +refraineth his lips is wise. + +10:20 The tongue of the just is as choice silver: the heart of the +wicked is little worth. + +10:21 The lips of the righteous feed many: but fools die for want of +wisdom. + +10:22 The blessing of the LORD, it maketh rich, and he addeth no +sorrow with it. + +10:23 It is as sport to a fool to do mischief: but a man of +understanding hath wisdom. + +10:24 The fear of the wicked, it shall come upon him: but the desire +of the righteous shall be granted. + +10:25 As the whirlwind passeth, so is the wicked no more: but the +righteous is an everlasting foundation. + +10:26 As vinegar to the teeth, and as smoke to the eyes, so is the +sluggard to them that send him. + +10:27 The fear of the LORD prolongeth days: but the years of the +wicked shall be shortened. + +10:28 The hope of the righteous shall be gladness: but the expectation +of the wicked shall perish. + +10:29 The way of the LORD is strength to the upright: but destruction +shall be to the workers of iniquity. + +10:30 The righteous shall never be removed: but the wicked shall not +inhabit the earth. + +10:31 The mouth of the just bringeth forth wisdom: but the froward +tongue shall be cut out. + +10:32 The lips of the righteous know what is acceptable: but the mouth +of the wicked speaketh frowardness. + +11:1 A false balance is abomination to the LORD: but a just weight is +his delight. + +11:2 When pride cometh, then cometh shame: but with the lowly is +wisdom. + +11:3 The integrity of the upright shall guide them: but the +perverseness of transgressors shall destroy them. + +11:4 Riches profit not in the day of wrath: but righteousness +delivereth from death. + +11:5 The righteousness of the perfect shall direct his way: but the +wicked shall fall by his own wickedness. + +11:6 The righteousness of the upright shall deliver them: but +transgressors shall be taken in their own naughtiness. + +11:7 When a wicked man dieth, his expectation shall perish: and the +hope of unjust men perisheth. + +11:8 The righteous is delivered out of trouble, and the wicked cometh +in his stead. + +11:9 An hypocrite with his mouth destroyeth his neighbour: but through +knowledge shall the just be delivered. + +11:10 When it goeth well with the righteous, the city rejoiceth: and +when the wicked perish, there is shouting. + +11:11 By the blessing of the upright the city is exalted: but it is +overthrown by the mouth of the wicked. + +11:12 He that is void of wisdom despiseth his neighbour: but a man of +understanding holdeth his peace. + +11:13 A talebearer revealeth secrets: but he that is of a faithful +spirit concealeth the matter. + +11:14 Where no counsel is, the people fall: but in the multitude of +counsellors there is safety. + +11:15 He that is surety for a stranger shall smart for it: and he that +hateth suretiship is sure. + +11:16 A gracious woman retaineth honour: and strong men retain riches. + +11:17 The merciful man doeth good to his own soul: but he that is +cruel troubleth his own flesh. + +11:18 The wicked worketh a deceitful work: but to him that soweth +righteousness shall be a sure reward. + +11:19 As righteousness tendeth to life: so he that pursueth evil +pursueth it to his own death. + +11:20 They that are of a froward heart are abomination to the LORD: +but such as are upright in their way are his delight. + +11:21 Though hand join in hand, the wicked shall not be unpunished: +but the seed of the righteous shall be delivered. + +11:22 As a jewel of gold in a swine's snout, so is a fair woman which +is without discretion. + +11:23 The desire of the righteous is only good: but the expectation of +the wicked is wrath. + +11:24 There is that scattereth, and yet increaseth; and there is that +withholdeth more than is meet, but it tendeth to poverty. + +11:25 The liberal soul shall be made fat: and he that watereth shall +be watered also himself. + +11:26 He that withholdeth corn, the people shall curse him: but +blessing shall be upon the head of him that selleth it. + +11:27 He that diligently seeketh good procureth favour: but he that +seeketh mischief, it shall come unto him. + +11:28 He that trusteth in his riches shall fall; but the righteous +shall flourish as a branch. + +11:29 He that troubleth his own house shall inherit the wind: and the +fool shall be servant to the wise of heart. + +11:30 The fruit of the righteous is a tree of life; and he that +winneth souls is wise. + +11:31 Behold, the righteous shall be recompensed in the earth: much +more the wicked and the sinner. + +12:1 Whoso loveth instruction loveth knowledge: but he that hateth +reproof is brutish. + +12:2 A good man obtaineth favour of the LORD: but a man of wicked +devices will he condemn. + +12:3 A man shall not be established by wickedness: but the root of the +righteous shall not be moved. + +12:4 A virtuous woman is a crown to her husband: but she that maketh +ashamed is as rottenness in his bones. + +12:5 The thoughts of the righteous are right: but the counsels of the +wicked are deceit. + +12:6 The words of the wicked are to lie in wait for blood: but the +mouth of the upright shall deliver them. + +12:7 The wicked are overthrown, and are not: but the house of the +righteous shall stand. + +12:8 A man shall be commended according to his wisdom: but he that is +of a perverse heart shall be despised. + +12:9 He that is despised, and hath a servant, is better than he that +honoureth himself, and lacketh bread. + +12:10 A righteous man regardeth the life of his beast: but the tender +mercies of the wicked are cruel. + +12:11 He that tilleth his land shall be satisfied with bread: but he +that followeth vain persons is void of understanding. + +12:12 The wicked desireth the net of evil men: but the root of the +righteous yieldeth fruit. + +12:13 The wicked is snared by the transgression of his lips: but the +just shall come out of trouble. + +12:14 A man shall be satisfied with good by the fruit of his mouth: +and the recompence of a man's hands shall be rendered unto him. + +12:15 The way of a fool is right in his own eyes: but he that +hearkeneth unto counsel is wise. + +12:16 A fool's wrath is presently known: but a prudent man covereth +shame. + +12:17 He that speaketh truth sheweth forth righteousness: but a false +witness deceit. + +12:18 There is that speaketh like the piercings of a sword: but the +tongue of the wise is health. + +12:19 The lip of truth shall be established for ever: but a lying +tongue is but for a moment. + +12:20 Deceit is in the heart of them that imagine evil: but to the +counsellors of peace is joy. + +12:21 There shall no evil happen to the just: but the wicked shall be +filled with mischief. + +12:22 Lying lips are abomination to the LORD: but they that deal truly +are his delight. + +12:23 A prudent man concealeth knowledge: but the heart of fools +proclaimeth foolishness. + +12:24 The hand of the diligent shall bear rule: but the slothful shall +be under tribute. + +12:25 Heaviness in the heart of man maketh it stoop: but a good word +maketh it glad. + +12:26 The righteous is more excellent than his neighbour: but the way +of the wicked seduceth them. + +12:27 The slothful man roasteth not that which he took in hunting: but +the substance of a diligent man is precious. + +12:28 In the way of righteousness is life: and in the pathway thereof +there is no death. + +13:1 A wise son heareth his father's instruction: but a scorner +heareth not rebuke. + +13:2 A man shall eat good by the fruit of his mouth: but the soul of +the transgressors shall eat violence. + +13:3 He that keepeth his mouth keepeth his life: but he that openeth +wide his lips shall have destruction. + +13:4 The soul of the sluggard desireth, and hath nothing: but the soul +of the diligent shall be made fat. + +13:5 A righteous man hateth lying: but a wicked man is loathsome, and +cometh to shame. + +13:6 Righteousness keepeth him that is upright in the way: but +wickedness overthroweth the sinner. + +13:7 There is that maketh himself rich, yet hath nothing: there is +that maketh himself poor, yet hath great riches. + +13:8 The ransom of a man's life are his riches: but the poor heareth +not rebuke. + +13:9 The light of the righteous rejoiceth: but the lamp of the wicked +shall be put out. + +13:10 Only by pride cometh contention: but with the well advised is +wisdom. + +13:11 Wealth gotten by vanity shall be diminished: but he that +gathereth by labour shall increase. + +13:12 Hope deferred maketh the heart sick: but when the desire cometh, +it is a tree of life. + +13:13 Whoso despiseth the word shall be destroyed: but he that feareth +the commandment shall be rewarded. + +13:14 The law of the wise is a fountain of life, to depart from the +snares of death. + +13:15 Good understanding giveth favour: but the way of transgressors +is hard. + +13:16 Every prudent man dealeth with knowledge: but a fool layeth open +his folly. + +13:17 A wicked messenger falleth into mischief: but a faithful +ambassador is health. + +13:18 Poverty and shame shall be to him that refuseth instruction: but +he that regardeth reproof shall be honoured. + +13:19 The desire accomplished is sweet to the soul: but it is +abomination to fools to depart from evil. + +13:20 He that walketh with wise men shall be wise: but a companion of +fools shall be destroyed. + +13:21 Evil pursueth sinners: but to the righteous good shall be +repayed. + +13:22 A good man leaveth an inheritance to his children's children: +and the wealth of the sinner is laid up for the just. + +13:23 Much food is in the tillage of the poor: but there is that is +destroyed for want of judgment. + +13:24 He that spareth his rod hateth his son: but he that loveth him +chasteneth him betimes. + +13:25 The righteous eateth to the satisfying of his soul: but the +belly of the wicked shall want. + +14:1 Every wise woman buildeth her house: but the foolish plucketh it +down with her hands. + +14:2 He that walketh in his uprightness feareth the LORD: but he that +is perverse in his ways despiseth him. + +14:3 In the mouth of the foolish is a rod of pride: but the lips of +the wise shall preserve them. + +14:4 Where no oxen are, the crib is clean: but much increase is by the +strength of the ox. + +14:5 A faithful witness will not lie: but a false witness will utter +lies. + +14:6 A scorner seeketh wisdom, and findeth it not: but knowledge is +easy unto him that understandeth. + +14:7 Go from the presence of a foolish man, when thou perceivest not +in him the lips of knowledge. + +14:8 The wisdom of the prudent is to understand his way: but the folly +of fools is deceit. + +14:9 Fools make a mock at sin: but among the righteous there is +favour. + +14:10 The heart knoweth his own bitterness; and a stranger doth not +intermeddle with his joy. + +14:11 The house of the wicked shall be overthrown: but the tabernacle +of the upright shall flourish. + +14:12 There is a way which seemeth right unto a man, but the end +thereof are the ways of death. + +14:13 Even in laughter the heart is sorrowful; and the end of that +mirth is heaviness. + +14:14 The backslider in heart shall be filled with his own ways: and a +good man shall be satisfied from himself. + +14:15 The simple believeth every word: but the prudent man looketh +well to his going. + +14:16 A wise man feareth, and departeth from evil: but the fool +rageth, and is confident. + +14:17 He that is soon angry dealeth foolishly: and a man of wicked +devices is hated. + +14:18 The simple inherit folly: but the prudent are crowned with +knowledge. + +14:19 The evil bow before the good; and the wicked at the gates of the +righteous. + +14:20 The poor is hated even of his own neighbour: but the rich hath +many friends. + +14:21 He that despiseth his neighbour sinneth: but he that hath mercy +on the poor, happy is he. + +14:22 Do they not err that devise evil? but mercy and truth shall be +to them that devise good. + +14:23 In all labour there is profit: but the talk of the lips tendeth +only to penury. + +14:24 The crown of the wise is their riches: but the foolishness of +fools is folly. + +14:25 A true witness delivereth souls: but a deceitful witness +speaketh lies. + +14:26 In the fear of the LORD is strong confidence: and his children +shall have a place of refuge. + +14:27 The fear of the LORD is a fountain of life, to depart from the +snares of death. + +14:28 In the multitude of people is the king's honour: but in the want +of people is the destruction of the prince. + +14:29 He that is slow to wrath is of great understanding: but he that +is hasty of spirit exalteth folly. + +14:30 A sound heart is the life of the flesh: but envy the rottenness +of the bones. + +14:31 He that oppresseth the poor reproacheth his Maker: but he that +honoureth him hath mercy on the poor. + +14:32 The wicked is driven away in his wickedness: but the righteous +hath hope in his death. + +14:33 Wisdom resteth in the heart of him that hath understanding: but +that which is in the midst of fools is made known. + +14:34 Righteousness exalteth a nation: but sin is a reproach to any +people. + +14:35 The king's favour is toward a wise servant: but his wrath is +against him that causeth shame. + +15:1 A soft answer turneth away wrath: but grievous words stir up +anger. + +15:2 The tongue of the wise useth knowledge aright: but the mouth of +fools poureth out foolishness. + +15:3 The eyes of the LORD are in every place, beholding the evil and +the good. + +15:4 A wholesome tongue is a tree of life: but perverseness therein is +a breach in the spirit. + +15:5 A fool despiseth his father's instruction: but he that regardeth +reproof is prudent. + +15:6 In the house of the righteous is much treasure: but in the +revenues of the wicked is trouble. + +15:7 The lips of the wise disperse knowledge: but the heart of the +foolish doeth not so. + +15:8 The sacrifice of the wicked is an abomination to the LORD: but +the prayer of the upright is his delight. + +15:9 The way of the wicked is an abomination unto the LORD: but he +loveth him that followeth after righteousness. + +15:10 Correction is grievous unto him that forsaketh the way: and he +that hateth reproof shall die. + +15:11 Hell and destruction are before the LORD: how much more then the +hearts of the children of men? 15:12 A scorner loveth not one that +reproveth him: neither will he go unto the wise. + +15:13 A merry heart maketh a cheerful countenance: but by sorrow of +the heart the spirit is broken. + +15:14 The heart of him that hath understanding seeketh knowledge: but +the mouth of fools feedeth on foolishness. + +15:15 All the days of the afflicted are evil: but he that is of a +merry heart hath a continual feast. + +15:16 Better is little with the fear of the LORD than great treasure +and trouble therewith. + +15:17 Better is a dinner of herbs where love is, than a stalled ox and +hatred therewith. + +15:18 A wrathful man stirreth up strife: but he that is slow to anger +appeaseth strife. + +15:19 The way of the slothful man is as an hedge of thorns: but the +way of the righteous is made plain. + +15:20 A wise son maketh a glad father: but a foolish man despiseth his +mother. + +15:21 Folly is joy to him that is destitute of wisdom: but a man of +understanding walketh uprightly. + +15:22 Without counsel purposes are disappointed: but in the multitude +of counsellors they are established. + +15:23 A man hath joy by the answer of his mouth: and a word spoken in +due season, how good is it! 15:24 The way of life is above to the +wise, that he may depart from hell beneath. + +15:25 The LORD will destroy the house of the proud: but he will +establish the border of the widow. + +15:26 The thoughts of the wicked are an abomination to the LORD: but +the words of the pure are pleasant words. + +15:27 He that is greedy of gain troubleth his own house; but he that +hateth gifts shall live. + +15:28 The heart of the righteous studieth to answer: but the mouth of +the wicked poureth out evil things. + +15:29 The LORD is far from the wicked: but he heareth the prayer of +the righteous. + +15:30 The light of the eyes rejoiceth the heart: and a good report +maketh the bones fat. + +15:31 The ear that heareth the reproof of life abideth among the wise. + +15:32 He that refuseth instruction despiseth his own soul: but he that +heareth reproof getteth understanding. + +15:33 The fear of the LORD is the instruction of wisdom; and before +honour is humility. + +16:1 The preparations of the heart in man, and the answer of the +tongue, is from the LORD. + +16:2 All the ways of a man are clean in his own eyes; but the LORD +weigheth the spirits. + +16:3 Commit thy works unto the LORD, and thy thoughts shall be +established. + +16:4 The LORD hath made all things for himself: yea, even the wicked +for the day of evil. + +16:5 Every one that is proud in heart is an abomination to the LORD: +though hand join in hand, he shall not be unpunished. + +16:6 By mercy and truth iniquity is purged: and by the fear of the +LORD men depart from evil. + +16:7 When a man's ways please the LORD, he maketh even his enemies to +be at peace with him. + +16:8 Better is a little with righteousness than great revenues without +right. + +16:9 A man's heart deviseth his way: but the LORD directeth his steps. + +16:10 A divine sentence is in the lips of the king: his mouth +transgresseth not in judgment. + +16:11 A just weight and balance are the LORD's: all the weights of the +bag are his work. + +16:12 It is an abomination to kings to commit wickedness: for the +throne is established by righteousness. + +16:13 Righteous lips are the delight of kings; and they love him that +speaketh right. + +16:14 The wrath of a king is as messengers of death: but a wise man +will pacify it. + +16:15 In the light of the king's countenance is life; and his favour +is as a cloud of the latter rain. + +16:16 How much better is it to get wisdom than gold! and to get +understanding rather to be chosen than silver! 16:17 The highway of +the upright is to depart from evil: he that keepeth his way preserveth +his soul. + +16:18 Pride goeth before destruction, and an haughty spirit before a +fall. + +16:19 Better it is to be of an humble spirit with the lowly, than to +divide the spoil with the proud. + +16:20 He that handleth a matter wisely shall find good: and whoso +trusteth in the LORD, happy is he. + +16:21 The wise in heart shall be called prudent: and the sweetness of +the lips increaseth learning. + +16:22 Understanding is a wellspring of life unto him that hath it: but +the instruction of fools is folly. + +16:23 The heart of the wise teacheth his mouth, and addeth learning to +his lips. + +16:24 Pleasant words are as an honeycomb, sweet to the soul, and +health to the bones. + +16:25 There is a way that seemeth right unto a man, but the end +thereof are the ways of death. + +16:26 He that laboureth laboureth for himself; for his mouth craveth +it of him. + +16:27 An ungodly man diggeth up evil: and in his lips there is as a +burning fire. + +16:28 A froward man soweth strife: and a whisperer separateth chief +friends. + +16:29 A violent man enticeth his neighbour, and leadeth him into the +way that is not good. + +16:30 He shutteth his eyes to devise froward things: moving his lips +he bringeth evil to pass. + +16:31 The hoary head is a crown of glory, if it be found in the way of +righteousness. + +16:32 He that is slow to anger is better than the mighty; and he that +ruleth his spirit than he that taketh a city. + +16:33 The lot is cast into the lap; but the whole disposing thereof is +of the LORD. + +17:1 Better is a dry morsel, and quietness therewith, than an house +full of sacrifices with strife. + +17:2 A wise servant shall have rule over a son that causeth shame, and +shall have part of the inheritance among the brethren. + +17:3 The fining pot is for silver, and the furnace for gold: but the +LORD trieth the hearts. + +17:4 A wicked doer giveth heed to false lips; and a liar giveth ear to +a naughty tongue. + +17:5 Whoso mocketh the poor reproacheth his Maker: and he that is glad +at calamities shall not be unpunished. + +17:6 Children's children are the crown of old men; and the glory of +children are their fathers. + +17:7 Excellent speech becometh not a fool: much less do lying lips a +prince. + +17:8 A gift is as a precious stone in the eyes of him that hath it: +whithersoever it turneth, it prospereth. + +17:9 He that covereth a transgression seeketh love; but he that +repeateth a matter separateth very friends. + +17:10 A reproof entereth more into a wise man than an hundred stripes +into a fool. + +17:11 An evil man seeketh only rebellion: therefore a cruel messenger +shall be sent against him. + +17:12 Let a bear robbed of her whelps meet a man, rather than a fool +in his folly. + +17:13 Whoso rewardeth evil for good, evil shall not depart from his +house. + +17:14 The beginning of strife is as when one letteth out water: +therefore leave off contention, before it be meddled with. + +17:15 He that justifieth the wicked, and he that condemneth the just, +even they both are abomination to the LORD. + +17:16 Wherefore is there a price in the hand of a fool to get wisdom, +seeing he hath no heart to it? 17:17 A friend loveth at all times, +and a brother is born for adversity. + +17:18 A man void of understanding striketh hands, and becometh surety +in the presence of his friend. + +17:19 He loveth transgression that loveth strife: and he that exalteth +his gate seeketh destruction. + +17:20 He that hath a froward heart findeth no good: and he that hath a +perverse tongue falleth into mischief. + +17:21 He that begetteth a fool doeth it to his sorrow: and the father +of a fool hath no joy. + +17:22 A merry heart doeth good like a medicine: but a broken spirit +drieth the bones. + +17:23 A wicked man taketh a gift out of the bosom to pervert the ways +of judgment. + +17:24 Wisdom is before him that hath understanding; but the eyes of a +fool are in the ends of the earth. + +17:25 A foolish son is a grief to his father, and bitterness to her +that bare him. + +17:26 Also to punish the just is not good, nor to strike princes for +equity. + +17:27 He that hath knowledge spareth his words: and a man of +understanding is of an excellent spirit. + +17:28 Even a fool, when he holdeth his peace, is counted wise: and he +that shutteth his lips is esteemed a man of understanding. + +18:1 Through desire a man, having separated himself, seeketh and +intermeddleth with all wisdom. + +18:2 A fool hath no delight in understanding, but that his heart may +discover itself. + +18:3 When the wicked cometh, then cometh also contempt, and with +ignominy reproach. + +18:4 The words of a man's mouth are as deep waters, and the wellspring +of wisdom as a flowing brook. + +18:5 It is not good to accept the person of the wicked, to overthrow +the righteous in judgment. + +18:6 A fool's lips enter into contention, and his mouth calleth for +strokes. + +18:7 A fool's mouth is his destruction, and his lips are the snare of +his soul. + +18:8 The words of a talebearer are as wounds, and they go down into +the innermost parts of the belly. + +18:9 He also that is slothful in his work is brother to him that is a +great waster. + +18:10 The name of the LORD is a strong tower: the righteous runneth +into it, and is safe. + +18:11 The rich man's wealth is his strong city, and as an high wall in +his own conceit. + +18:12 Before destruction the heart of man is haughty, and before +honour is humility. + +18:13 He that answereth a matter before he heareth it, it is folly and +shame unto him. + +18:14 The spirit of a man will sustain his infirmity; but a wounded +spirit who can bear? 18:15 The heart of the prudent getteth +knowledge; and the ear of the wise seeketh knowledge. + +18:16 A man's gift maketh room for him, and bringeth him before great +men. + +18:17 He that is first in his own cause seemeth just; but his +neighbour cometh and searcheth him. + +18:18 The lot causeth contentions to cease, and parteth between the +mighty. + +18:19 A brother offended is harder to be won than a strong city: and +their contentions are like the bars of a castle. + +18:20 A man's belly shall be satisfied with the fruit of his mouth; +and with the increase of his lips shall he be filled. + +18:21 Death and life are in the power of the tongue: and they that +love it shall eat the fruit thereof. + +18:22 Whoso findeth a wife findeth a good thing, and obtaineth favour +of the LORD. + +18:23 The poor useth intreaties; but the rich answereth roughly. + +18:24 A man that hath friends must shew himself friendly: and there is +a friend that sticketh closer than a brother. + +19:1 Better is the poor that walketh in his integrity, than he that is +perverse in his lips, and is a fool. + +19:2 Also, that the soul be without knowledge, it is not good; and he +that hasteth with his feet sinneth. + +19:3 The foolishness of man perverteth his way: and his heart fretteth +against the LORD. + +19:4 Wealth maketh many friends; but the poor is separated from his +neighbour. + +19:5 A false witness shall not be unpunished, and he that speaketh +lies shall not escape. + +19:6 Many will intreat the favour of the prince: and every man is a +friend to him that giveth gifts. + +19:7 All the brethren of the poor do hate him: how much more do his +friends go far from him? he pursueth them with words, yet they are +wanting to him. + +19:8 He that getteth wisdom loveth his own soul: he that keepeth +understanding shall find good. + +19:9 A false witness shall not be unpunished, and he that speaketh +lies shall perish. + +19:10 Delight is not seemly for a fool; much less for a servant to +have rule over princes. + +19:11 The discretion of a man deferreth his anger; and it is his glory +to pass over a transgression. + +19:12 The king's wrath is as the roaring of a lion; but his favour is +as dew upon the grass. + +19:13 A foolish son is the calamity of his father: and the contentions +of a wife are a continual dropping. + +19:14 House and riches are the inheritance of fathers: and a prudent +wife is from the LORD. + +19:15 Slothfulness casteth into a deep sleep; and an idle soul shall +suffer hunger. + +19:16 He that keepeth the commandment keepeth his own soul; but he +that despiseth his ways shall die. + +19:17 He that hath pity upon the poor lendeth unto the LORD; and that +which he hath given will he pay him again. + +19:18 Chasten thy son while there is hope, and let not thy soul spare +for his crying. + +19:19 A man of great wrath shall suffer punishment: for if thou +deliver him, yet thou must do it again. + +19:20 Hear counsel, and receive instruction, that thou mayest be wise +in thy latter end. + +19:21 There are many devices in a man's heart; nevertheless the +counsel of the LORD, that shall stand. + +19:22 The desire of a man is his kindness: and a poor man is better +than a liar. + +19:23 The fear of the LORD tendeth to life: and he that hath it shall +abide satisfied; he shall not be visited with evil. + +19:24 A slothful man hideth his hand in his bosom, and will not so +much as bring it to his mouth again. + +19:25 Smite a scorner, and the simple will beware: and reprove one +that hath understanding, and he will understand knowledge. + +19:26 He that wasteth his father, and chaseth away his mother, is a +son that causeth shame, and bringeth reproach. + +19:27 Cease, my son, to hear the instruction that causeth to err from +the words of knowledge. + +19:28 An ungodly witness scorneth judgment: and the mouth of the +wicked devoureth iniquity. + +19:29 Judgments are prepared for scorners, and stripes for the back of +fools. + +20:1 Wine is a mocker, strong drink is raging: and whosoever is +deceived thereby is not wise. + +20:2 The fear of a king is as the roaring of a lion: whoso provoketh +him to anger sinneth against his own soul. + +20:3 It is an honour for a man to cease from strife: but every fool +will be meddling. + +20:4 The sluggard will not plow by reason of the cold; therefore shall +he beg in harvest, and have nothing. + +20:5 Counsel in the heart of man is like deep water; but a man of +understanding will draw it out. + +20:6 Most men will proclaim every one his own goodness: but a faithful +man who can find? 20:7 The just man walketh in his integrity: his +children are blessed after him. + +20:8 A king that sitteth in the throne of judgment scattereth away all +evil with his eyes. + +20:9 Who can say, I have made my heart clean, I am pure from my sin? +20:10 Divers weights, and divers measures, both of them are alike +abomination to the LORD. + +20:11 Even a child is known by his doings, whether his work be pure, +and whether it be right. + +20:12 The hearing ear, and the seeing eye, the LORD hath made even +both of them. + +20:13 Love not sleep, lest thou come to poverty; open thine eyes, and +thou shalt be satisfied with bread. + +20:14 It is naught, it is naught, saith the buyer: but when he is gone +his way, then he boasteth. + +20:15 There is gold, and a multitude of rubies: but the lips of +knowledge are a precious jewel. + +20:16 Take his garment that is surety for a stranger: and take a +pledge of him for a strange woman. + +20:17 Bread of deceit is sweet to a man; but afterwards his mouth +shall be filled with gravel. + +20:18 Every purpose is established by counsel: and with good advice +make war. + +20:19 He that goeth about as a talebearer revealeth secrets: therefore +meddle not with him that flattereth with his lips. + +20:20 Whoso curseth his father or his mother, his lamp shall be put +out in obscure darkness. + +20:21 An inheritance may be gotten hastily at the beginning; but the +end thereof shall not be blessed. + +20:22 Say not thou, I will recompense evil; but wait on the LORD, and +he shall save thee. + +20:23 Divers weights are an abomination unto the LORD; and a false +balance is not good. + +20:24 Man's goings are of the LORD; how can a man then understand his +own way? 20:25 It is a snare to the man who devoureth that which is +holy, and after vows to make enquiry. + +20:26 A wise king scattereth the wicked, and bringeth the wheel over +them. + +20:27 The spirit of man is the candle of the LORD, searching all the +inward parts of the belly. + +20:28 Mercy and truth preserve the king: and his throne is upholden by +mercy. + +20:29 The glory of young men is their strength: and the beauty of old +men is the grey head. + +20:30 The blueness of a wound cleanseth away evil: so do stripes the +inward parts of the belly. + +21:1 The king's heart is in the hand of the LORD, as the rivers of +water: he turneth it whithersoever he will. + +21:2 Every way of a man is right in his own eyes: but the LORD +pondereth the hearts. + +21:3 To do justice and judgment is more acceptable to the LORD than +sacrifice. + +21:4 An high look, and a proud heart, and the plowing of the wicked, +is sin. + +21:5 The thoughts of the diligent tend only to plenteousness; but of +every one that is hasty only to want. + +21:6 The getting of treasures by a lying tongue is a vanity tossed to +and fro of them that seek death. + +21:7 The robbery of the wicked shall destroy them; because they refuse +to do judgment. + +21:8 The way of man is froward and strange: but as for the pure, his +work is right. + +21:9 It is better to dwell in a corner of the housetop, than with a +brawling woman in a wide house. + +21:10 The soul of the wicked desireth evil: his neighbour findeth no +favour in his eyes. + +21:11 When the scorner is punished, the simple is made wise: and when +the wise is instructed, he receiveth knowledge. + +21:12 The righteous man wisely considereth the house of the wicked: +but God overthroweth the wicked for their wickedness. + +21:13 Whoso stoppeth his ears at the cry of the poor, he also shall +cry himself, but shall not be heard. + +21:14 A gift in secret pacifieth anger: and a reward in the bosom +strong wrath. + +21:15 It is joy to the just to do judgment: but destruction shall be +to the workers of iniquity. + +21:16 The man that wandereth out of the way of understanding shall +remain in the congregation of the dead. + +21:17 He that loveth pleasure shall be a poor man: he that loveth wine +and oil shall not be rich. + +21:18 The wicked shall be a ransom for the righteous, and the +transgressor for the upright. + +21:19 It is better to dwell in the wilderness, than with a contentious +and an angry woman. + +21:20 There is treasure to be desired and oil in the dwelling of the +wise; but a foolish man spendeth it up. + +21:21 He that followeth after righteousness and mercy findeth life, +righteousness, and honour. + +21:22 A wise man scaleth the city of the mighty, and casteth down the +strength of the confidence thereof. + +21:23 Whoso keepeth his mouth and his tongue keepeth his soul from +troubles. + +21:24 Proud and haughty scorner is his name, who dealeth in proud +wrath. + +21:25 The desire of the slothful killeth him; for his hands refuse to +labour. + +21:26 He coveteth greedily all the day long: but the righteous giveth +and spareth not. + +21:27 The sacrifice of the wicked is abomination: how much more, when +he bringeth it with a wicked mind? 21:28 A false witness shall +perish: but the man that heareth speaketh constantly. + +21:29 A wicked man hardeneth his face: but as for the upright, he +directeth his way. + +21:30 There is no wisdom nor understanding nor counsel against the +LORD. + +21:31 The horse is prepared against the day of battle: but safety is +of the LORD. + +22:1 A GOOD name is rather to be chosen than great riches, and loving +favour rather than silver and gold. + +22:2 The rich and poor meet together: the LORD is the maker of them +all. + +22:3 A prudent man foreseeth the evil, and hideth himself: but the +simple pass on, and are punished. + +22:4 By humility and the fear of the LORD are riches, and honour, and +life. + +22:5 Thorns and snares are in the way of the froward: he that doth +keep his soul shall be far from them. + +22:6 Train up a child in the way he should go: and when he is old, he +will not depart from it. + +22:7 The rich ruleth over the poor, and the borrower is servant to the +lender. + +22:8 He that soweth iniquity shall reap vanity: and the rod of his +anger shall fail. + +22:9 He that hath a bountiful eye shall be blessed; for he giveth of +his bread to the poor. + +22:10 Cast out the scorner, and contention shall go out; yea, strife +and reproach shall cease. + +22:11 He that loveth pureness of heart, for the grace of his lips the +king shall be his friend. + +22:12 The eyes of the LORD preserve knowledge, and he overthroweth the +words of the transgressor. + +22:13 The slothful man saith, There is a lion without, I shall be +slain in the streets. + +22:14 The mouth of strange women is a deep pit: he that is abhorred of +the LORD shall fall therein. + +22:15 Foolishness is bound in the heart of a child; but the rod of +correction shall drive it far from him. + +22:16 He that oppresseth the poor to increase his riches, and he that +giveth to the rich, shall surely come to want. + +22:17 Bow down thine ear, and hear the words of the wise, and apply +thine heart unto my knowledge. + +22:18 For it is a pleasant thing if thou keep them within thee; they +shall withal be fitted in thy lips. + +22:19 That thy trust may be in the LORD, I have made known to thee +this day, even to thee. + +22:20 Have not I written to thee excellent things in counsels and +knowledge, 22:21 That I might make thee know the certainty of the +words of truth; that thou mightest answer the words of truth to them +that send unto thee? 22:22 Rob not the poor, because he is poor: +neither oppress the afflicted in the gate: 22:23 For the LORD will +plead their cause, and spoil the soul of those that spoiled them. + +22:24 Make no friendship with an angry man; and with a furious man +thou shalt not go: 22:25 Lest thou learn his ways, and get a snare to +thy soul. + +22:26 Be not thou one of them that strike hands, or of them that are +sureties for debts. + +22:27 If thou hast nothing to pay, why should he take away thy bed +from under thee? 22:28 Remove not the ancient landmark, which thy +fathers have set. + +22:29 Seest thou a man diligent in his business? he shall stand before +kings; he shall not stand before mean men. + +23:1 When thou sittest to eat with a ruler, consider diligently what +is before thee: 23:2 And put a knife to thy throat, if thou be a man +given to appetite. + +23:3 Be not desirous of his dainties: for they are deceitful meat. + +23:4 Labour not to be rich: cease from thine own wisdom. + +23:5 Wilt thou set thine eyes upon that which is not? for riches +certainly make themselves wings; they fly away as an eagle toward +heaven. + +23:6 Eat thou not the bread of him that hath an evil eye, neither +desire thou his dainty meats: 23:7 For as he thinketh in his heart, so +is he: Eat and drink, saith he to thee; but his heart is not with +thee. + +23:8 The morsel which thou hast eaten shalt thou vomit up, and lose +thy sweet words. + +23:9 Speak not in the ears of a fool: for he will despise the wisdom +of thy words. + +23:10 Remove not the old landmark; and enter not into the fields of +the fatherless: 23:11 For their redeemer is mighty; he shall plead +their cause with thee. + +23:12 Apply thine heart unto instruction, and thine ears to the words +of knowledge. + +23:13 Withhold not correction from the child: for if thou beatest him +with the rod, he shall not die. + +23:14 Thou shalt beat him with the rod, and shalt deliver his soul +from hell. + +23:15 My son, if thine heart be wise, my heart shall rejoice, even +mine. + +23:16 Yea, my reins shall rejoice, when thy lips speak right things. + +23:17 Let not thine heart envy sinners: but be thou in the fear of the +LORD all the day long. + +23:18 For surely there is an end; and thine expectation shall not be +cut off. + +23:19 Hear thou, my son, and be wise, and guide thine heart in the +way. + +23:20 Be not among winebibbers; among riotous eaters of flesh: 23:21 +For the drunkard and the glutton shall come to poverty: and drowsiness +shall clothe a man with rags. + +23:22 Hearken unto thy father that begat thee, and despise not thy +mother when she is old. + +23:23 Buy the truth, and sell it not; also wisdom, and instruction, +and understanding. + +23:24 The father of the righteous shall greatly rejoice: and he that +begetteth a wise child shall have joy of him. + +23:25 Thy father and thy mother shall be glad, and she that bare thee +shall rejoice. + +23:26 My son, give me thine heart, and let thine eyes observe my ways. + +23:27 For a whore is a deep ditch; and a strange woman is a narrow +pit. + +23:28 She also lieth in wait as for a prey, and increaseth the +transgressors among men. + +23:29 Who hath woe? who hath sorrow? who hath contentions? who hath +babbling? who hath wounds without cause? who hath redness of eyes? +23:30 They that tarry long at the wine; they that go to seek mixed +wine. + +23:31 Look not thou upon the wine when it is red, when it giveth his +colour in the cup, when it moveth itself aright. + +23:32 At the last it biteth like a serpent, and stingeth like an +adder. + +23:33 Thine eyes shall behold strange women, and thine heart shall +utter perverse things. + +23:34 Yea, thou shalt be as he that lieth down in the midst of the +sea, or as he that lieth upon the top of a mast. + +23:35 They have stricken me, shalt thou say, and I was not sick; they +have beaten me, and I felt it not: when shall I awake? I will seek it +yet again. + +24:1 Be not thou envious against evil men, neither desire to be with +them. + +24:2 For their heart studieth destruction, and their lips talk of +mischief. + +24:3 Through wisdom is an house builded; and by understanding it is +established: 24:4 And by knowledge shall the chambers be filled with +all precious and pleasant riches. + +24:5 A wise man is strong; yea, a man of knowledge increaseth +strength. + +24:6 For by wise counsel thou shalt make thy war: and in multitude of +counsellors there is safety. + +24:7 Wisdom is too high for a fool: he openeth not his mouth in the +gate. + +24:8 He that deviseth to do evil shall be called a mischievous person. + +24:9 The thought of foolishness is sin: and the scorner is an +abomination to men. + +24:10 If thou faint in the day of adversity, thy strength is small. + +24:11 If thou forbear to deliver them that are drawn unto death, and +those that are ready to be slain; 24:12 If thou sayest, Behold, we +knew it not; doth not he that pondereth the heart consider it? and he +that keepeth thy soul, doth not he know it? and shall not he render to +every man according to his works? 24:13 My son, eat thou honey, +because it is good; and the honeycomb, which is sweet to thy taste: +24:14 So shall the knowledge of wisdom be unto thy soul: when thou +hast found it, then there shall be a reward, and thy expectation shall +not be cut off. + +24:15 Lay not wait, O wicked man, against the dwelling of the +righteous; spoil not his resting place: 24:16 For a just man falleth +seven times, and riseth up again: but the wicked shall fall into +mischief. + +24:17 Rejoice not when thine enemy falleth, and let not thine heart be +glad when he stumbleth: 24:18 Lest the LORD see it, and it displease +him, and he turn away his wrath from him. + +24:19 Fret not thyself because of evil men, neither be thou envious at +the wicked: 24:20 For there shall be no reward to the evil man; the +candle of the wicked shall be put out. + +24:21 My son, fear thou the LORD and the king: and meddle not with +them that are given to change: 24:22 For their calamity shall rise +suddenly; and who knoweth the ruin of them both? 24:23 These things +also belong to the wise. It is not good to have respect of persons in +judgment. + +24:24 He that saith unto the wicked, Thou are righteous; him shall the +people curse, nations shall abhor him: 24:25 But to them that rebuke +him shall be delight, and a good blessing shall come upon them. + +24:26 Every man shall kiss his lips that giveth a right answer. + +24:27 Prepare thy work without, and make it fit for thyself in the +field; and afterwards build thine house. + +24:28 Be not a witness against thy neighbour without cause; and +deceive not with thy lips. + +24:29 Say not, I will do so to him as he hath done to me: I will +render to the man according to his work. + +24:30 I went by the field of the slothful, and by the vineyard of the +man void of understanding; 24:31 And, lo, it was all grown over with +thorns, and nettles had covered the face thereof, and the stone wall +thereof was broken down. + +24:32 Then I saw, and considered it well: I looked upon it, and +received instruction. + +24:33 Yet a little sleep, a little slumber, a little folding of the +hands to sleep: 24:34 So shall thy poverty come as one that +travelleth; and thy want as an armed man. + +25:1 These are also proverbs of Solomon, which the men of Hezekiah +king of Judah copied out. + +25:2 It is the glory of God to conceal a thing: but the honour of +kings is to search out a matter. + +25:3 The heaven for height, and the earth for depth, and the heart of +kings is unsearchable. + +25:4 Take away the dross from the silver, and there shall come forth a +vessel for the finer. + +25:5 Take away the wicked from before the king, and his throne shall +be established in righteousness. + +25:6 Put not forth thyself in the presence of the king, and stand not +in the place of great men: 25:7 For better it is that it be said unto +thee, Come up hither; than that thou shouldest be put lower in the +presence of the prince whom thine eyes have seen. + +25:8 Go not forth hastily to strive, lest thou know not what to do in +the end thereof, when thy neighbour hath put thee to shame. + +25:9 Debate thy cause with thy neighbour himself; and discover not a +secret to another: 25:10 Lest he that heareth it put thee to shame, +and thine infamy turn not away. + +25:11 A word fitly spoken is like apples of gold in pictures of +silver. + +25:12 As an earring of gold, and an ornament of fine gold, so is a +wise reprover upon an obedient ear. + +25:13 As the cold of snow in the time of harvest, so is a faithful +messenger to them that send him: for he refresheth the soul of his +masters. + +25:14 Whoso boasteth himself of a false gift is like clouds and wind +without rain. + +25:15 By long forbearing is a prince persuaded, and a soft tongue +breaketh the bone. + +25:16 Hast thou found honey? eat so much as is sufficient for thee, +lest thou be filled therewith, and vomit it. + +25:17 Withdraw thy foot from thy neighbour's house; lest he be weary +of thee, and so hate thee. + +25:18 A man that beareth false witness against his neighbour is a +maul, and a sword, and a sharp arrow. + +25:19 Confidence in an unfaithful man in time of trouble is like a +broken tooth, and a foot out of joint. + +25:20 As he that taketh away a garment in cold weather, and as vinegar +upon nitre, so is he that singeth songs to an heavy heart. + +25:21 If thine enemy be hungry, give him bread to eat; and if he be +thirsty, give him water to drink: 25:22 For thou shalt heap coals of +fire upon his head, and the LORD shall reward thee. + +25:23 The north wind driveth away rain: so doth an angry countenance a +backbiting tongue. + +25:24 It is better to dwell in the corner of the housetop, than with a +brawling woman and in a wide house. + +25:25 As cold waters to a thirsty soul, so is good news from a far +country. + +25:26 A righteous man falling down before the wicked is as a troubled +fountain, and a corrupt spring. + +25:27 It is not good to eat much honey: so for men to search their own +glory is not glory. + +25:28 He that hath no rule over his own spirit is like a city that is +broken down, and without walls. + +26:1 As snow in summer, and as rain in harvest, so honour is not +seemly for a fool. + +26:2 As the bird by wandering, as the swallow by flying, so the curse +causeless shall not come. + +26:3 A whip for the horse, a bridle for the ass, and a rod for the +fool's back. + +26:4 Answer not a fool according to his folly, lest thou also be like +unto him. + +26:5 Answer a fool according to his folly, lest he be wise in his own +conceit. + +26:6 He that sendeth a message by the hand of a fool cutteth off the +feet, and drinketh damage. + +26:7 The legs of the lame are not equal: so is a parable in the mouth +of fools. + +26:8 As he that bindeth a stone in a sling, so is he that giveth +honour to a fool. + +26:9 As a thorn goeth up into the hand of a drunkard, so is a parable +in the mouths of fools. + +26:10 The great God that formed all things both rewardeth the fool, +and rewardeth transgressors. + +26:11 As a dog returneth to his vomit, so a fool returneth to his +folly. + +26:12 Seest thou a man wise in his own conceit? there is more hope of +a fool than of him. + +26:13 The slothful man saith, There is a lion in the way; a lion is in +the streets. + +26:14 As the door turneth upon his hinges, so doth the slothful upon +his bed. + +26:15 The slothful hideth his hand in his bosom; it grieveth him to +bring it again to his mouth. + +26:16 The sluggard is wiser in his own conceit than seven men that can +render a reason. + +26:17 He that passeth by, and meddleth with strife belonging not to +him, is like one that taketh a dog by the ears. + +26:18 As a mad man who casteth firebrands, arrows, and death, 26:19 So +is the man that deceiveth his neighbour, and saith, Am not I in sport? +26:20 Where no wood is, there the fire goeth out: so where there is no +talebearer, the strife ceaseth. + +26:21 As coals are to burning coals, and wood to fire; so is a +contentious man to kindle strife. + +26:22 The words of a talebearer are as wounds, and they go down into +the innermost parts of the belly. + +26:23 Burning lips and a wicked heart are like a potsherd covered with +silver dross. + +26:24 He that hateth dissembleth with his lips, and layeth up deceit +within him; 26:25 When he speaketh fair, believe him not: for there +are seven abominations in his heart. + +26:26 Whose hatred is covered by deceit, his wickedness shall be +shewed before the whole congregation. + +26:27 Whoso diggeth a pit shall fall therein: and he that rolleth a +stone, it will return upon him. + +26:28 A lying tongue hateth those that are afflicted by it; and a +flattering mouth worketh ruin. + +27:1 Boast not thyself of to morrow; for thou knowest not what a day +may bring forth. + +27:2 Let another man praise thee, and not thine own mouth; a stranger, +and not thine own lips. + +27:3 A stone is heavy, and the sand weighty; but a fool's wrath is +heavier than them both. + +27:4 Wrath is cruel, and anger is outrageous; but who is able to stand +before envy? 27:5 Open rebuke is better than secret love. + +27:6 Faithful are the wounds of a friend; but the kisses of an enemy +are deceitful. + +27:7 The full soul loatheth an honeycomb; but to the hungry soul every +bitter thing is sweet. + +27:8 As a bird that wandereth from her nest, so is a man that +wandereth from his place. + +27:9 Ointment and perfume rejoice the heart: so doth the sweetness of +a man's friend by hearty counsel. + +27:10 Thine own friend, and thy father's friend, forsake not; neither +go into thy brother's house in the day of thy calamity: for better is +a neighbour that is near than a brother far off. + +27:11 My son, be wise, and make my heart glad, that I may answer him +that reproacheth me. + +27:12 A prudent man foreseeth the evil, and hideth himself; but the +simple pass on, and are punished. + +27:13 Take his garment that is surety for a stranger, and take a +pledge of him for a strange woman. + +27:14 He that blesseth his friend with a loud voice, rising early in +the morning, it shall be counted a curse to him. + +27:15 A continual dropping in a very rainy day and a contentious woman +are alike. + +27:16 Whosoever hideth her hideth the wind, and the ointment of his +right hand, which bewrayeth itself. + +27:17 Iron sharpeneth iron; so a man sharpeneth the countenance of his +friend. + +27:18 Whoso keepeth the fig tree shall eat the fruit thereof: so he +that waiteth on his master shall be honoured. + +27:19 As in water face answereth to face, so the heart of man to man. + +27:20 Hell and destruction are never full; so the eyes of man are +never satisfied. + +27:21 As the fining pot for silver, and the furnace for gold; so is a +man to his praise. + +27:22 Though thou shouldest bray a fool in a mortar among wheat with a +pestle, yet will not his foolishness depart from him. + +27:23 Be thou diligent to know the state of thy flocks, and look well +to thy herds. + +27:24 For riches are not for ever: and doth the crown endure to every +generation? 27:25 The hay appeareth, and the tender grass sheweth +itself, and herbs of the mountains are gathered. + +27:26 The lambs are for thy clothing, and the goats are the price of +the field. + +27:27 And thou shalt have goats' milk enough for thy food, for the +food of thy household, and for the maintenance for thy maidens. + +28:1 The wicked flee when no man pursueth: but the righteous are bold +as a lion. + +28:2 For the transgression of a land many are the princes thereof: but +by a man of understanding and knowledge the state thereof shall be +prolonged. + +28:3 A poor man that oppresseth the poor is like a sweeping rain which +leaveth no food. + +28:4 They that forsake the law praise the wicked: but such as keep the +law contend with them. + +28:5 Evil men understand not judgment: but they that seek the LORD +understand all things. + +28:6 Better is the poor that walketh in his uprightness, than he that +is perverse in his ways, though he be rich. + +28:7 Whoso keepeth the law is a wise son: but he that is a companion +of riotous men shameth his father. + +28:8 He that by usury and unjust gain increaseth his substance, he +shall gather it for him that will pity the poor. + +28:9 He that turneth away his ear from hearing the law, even his +prayer shall be abomination. + +28:10 Whoso causeth the righteous to go astray in an evil way, he +shall fall himself into his own pit: but the upright shall have good +things in possession. + +28:11 The rich man is wise in his own conceit; but the poor that hath +understanding searcheth him out. + +28:12 When righteous men do rejoice, there is great glory: but when +the wicked rise, a man is hidden. + +28:13 He that covereth his sins shall not prosper: but whoso +confesseth and forsaketh them shall have mercy. + +28:14 Happy is the man that feareth alway: but he that hardeneth his +heart shall fall into mischief. + +28:15 As a roaring lion, and a ranging bear; so is a wicked ruler over +the poor people. + +28:16 The prince that wanteth understanding is also a great oppressor: +but he that hateth covetousness shall prolong his days. + +28:17 A man that doeth violence to the blood of any person shall flee +to the pit; let no man stay him. + +28:18 Whoso walketh uprightly shall be saved: but he that is perverse +in his ways shall fall at once. + +28:19 He that tilleth his land shall have plenty of bread: but he that +followeth after vain persons shall have poverty enough. + +28:20 A faithful man shall abound with blessings: but he that maketh +haste to be rich shall not be innocent. + +28:21 To have respect of persons is not good: for for a piece of bread +that man will transgress. + +28:22 He that hasteth to be rich hath an evil eye, and considereth not +that poverty shall come upon him. + +28:23 He that rebuketh a man afterwards shall find more favour than he +that flattereth with the tongue. + +28:24 Whoso robbeth his father or his mother, and saith, It is no +transgression; the same is the companion of a destroyer. + +28:25 He that is of a proud heart stirreth up strife: but he that +putteth his trust in the LORD shall be made fat. + +28:26 He that trusteth in his own heart is a fool: but whoso walketh +wisely, he shall be delivered. + +28:27 He that giveth unto the poor shall not lack: but he that hideth +his eyes shall have many a curse. + +28:28 When the wicked rise, men hide themselves: but when they perish, +the righteous increase. + +29:1 He, that being often reproved hardeneth his neck, shall suddenly +be destroyed, and that without remedy. + +29:2 When the righteous are in authority, the people rejoice: but when +the wicked beareth rule, the people mourn. + +29:3 Whoso loveth wisdom rejoiceth his father: but he that keepeth +company with harlots spendeth his substance. + +29:4 The king by judgment establisheth the land: but he that receiveth +gifts overthroweth it. + +29:5 A man that flattereth his neighbour spreadeth a net for his feet. + +29:6 In the transgression of an evil man there is a snare: but the +righteous doth sing and rejoice. + +29:7 The righteous considereth the cause of the poor: but the wicked +regardeth not to know it. + +29:8 Scornful men bring a city into a snare: but wise men turn away +wrath. + +29:9 If a wise man contendeth with a foolish man, whether he rage or +laugh, there is no rest. + +29:10 The bloodthirsty hate the upright: but the just seek his soul. + +29:11 A fool uttereth all his mind: but a wise man keepeth it in till +afterwards. + +29:12 If a ruler hearken to lies, all his servants are wicked. + +29:13 The poor and the deceitful man meet together: the LORD +lighteneth both their eyes. + +29:14 The king that faithfully judgeth the poor, his throne shall be +established for ever. + +29:15 The rod and reproof give wisdom: but a child left to himself +bringeth his mother to shame. + +29:16 When the wicked are multiplied, transgression increaseth: but +the righteous shall see their fall. + +29:17 Correct thy son, and he shall give thee rest; yea, he shall give +delight unto thy soul. + +29:18 Where there is no vision, the people perish: but he that keepeth +the law, happy is he. + +29:19 A servant will not be corrected by words: for though he +understand he will not answer. + +29:20 Seest thou a man that is hasty in his words? there is more hope +of a fool than of him. + +29:21 He that delicately bringeth up his servant from a child shall +have him become his son at the length. + +29:22 An angry man stirreth up strife, and a furious man aboundeth in +transgression. + +29:23 A man's pride shall bring him low: but honour shall uphold the +humble in spirit. + +29:24 Whoso is partner with a thief hateth his own soul: he heareth +cursing, and bewrayeth it not. + +29:25 The fear of man bringeth a snare: but whoso putteth his trust in +the LORD shall be safe. + +29:26 Many seek the ruler's favour; but every man's judgment cometh +from the LORD. + +29:27 An unjust man is an abomination to the just: and he that is +upright in the way is abomination to the wicked. + +30:1 The words of Agur the son of Jakeh, even the prophecy: the man +spake unto Ithiel, even unto Ithiel and Ucal, 30:2 Surely I am more +brutish than any man, and have not the understanding of a man. + +30:3 I neither learned wisdom, nor have the knowledge of the holy. + +30:4 Who hath ascended up into heaven, or descended? who hath gathered +the wind in his fists? who hath bound the waters in a garment? who +hath established all the ends of the earth? what is his name, and what +is his son's name, if thou canst tell? 30:5 Every word of God is +pure: he is a shield unto them that put their trust in him. + +30:6 Add thou not unto his words, lest he reprove thee, and thou be +found a liar. + +30:7 Two things have I required of thee; deny me them not before I +die: 30:8 Remove far from me vanity and lies: give me neither poverty +nor riches; feed me with food convenient for me: 30:9 Lest I be full, +and deny thee, and say, Who is the LORD? or lest I be poor, and steal, +and take the name of my God in vain. + +30:10 Accuse not a servant unto his master, lest he curse thee, and +thou be found guilty. + +30:11 There is a generation that curseth their father, and doth not +bless their mother. + +30:12 There is a generation that are pure in their own eyes, and yet +is not washed from their filthiness. + +30:13 There is a generation, O how lofty are their eyes! and their +eyelids are lifted up. + +30:14 There is a generation, whose teeth are as swords, and their jaw +teeth as knives, to devour the poor from off the earth, and the needy +from among men. + +30:15 The horseleach hath two daughters, crying, Give, give. There are +three things that are never satisfied, yea, four things say not, It is +enough: 30:16 The grave; and the barren womb; the earth that is not +filled with water; and the fire that saith not, It is enough. + +30:17 The eye that mocketh at his father, and despiseth to obey his +mother, the ravens of the valley shall pick it out, and the young +eagles shall eat it. + +30:18 There be three things which are too wonderful for me, yea, four +which I know not: 30:19 The way of an eagle in the air; the way of a +serpent upon a rock; the way of a ship in the midst of the sea; and +the way of a man with a maid. + +30:20 Such is the way of an adulterous woman; she eateth, and wipeth +her mouth, and saith, I have done no wickedness. + +30:21 For three things the earth is disquieted, and for four which it +cannot bear: 30:22 For a servant when he reigneth; and a fool when he +is filled with meat; 30:23 For an odious woman when she is married; +and an handmaid that is heir to her mistress. + +30:24 There be four things which are little upon the earth, but they +are exceeding wise: 30:25 The ants are a people not strong, yet they +prepare their meat in the summer; 30:26 The conies are but a feeble +folk, yet make they their houses in the rocks; 30:27 The locusts have +no king, yet go they forth all of them by bands; 30:28 The spider +taketh hold with her hands, and is in kings' palaces. + +30:29 There be three things which go well, yea, four are comely in +going: 30:30 A lion which is strongest among beasts, and turneth not +away for any; 30:31 A greyhound; an he goat also; and a king, against +whom there is no rising up. + +30:32 If thou hast done foolishly in lifting up thyself, or if thou +hast thought evil, lay thine hand upon thy mouth. + +30:33 Surely the churning of milk bringeth forth butter, and the +wringing of the nose bringeth forth blood: so the forcing of wrath +bringeth forth strife. + +31:1 The words of king Lemuel, the prophecy that his mother taught +him. + +31:2 What, my son? and what, the son of my womb? and what, the son of +my vows? 31:3 Give not thy strength unto women, nor thy ways to that +which destroyeth kings. + +31:4 It is not for kings, O Lemuel, it is not for kings to drink wine; +nor for princes strong drink: 31:5 Lest they drink, and forget the +law, and pervert the judgment of any of the afflicted. + +31:6 Give strong drink unto him that is ready to perish, and wine unto +those that be of heavy hearts. + +31:7 Let him drink, and forget his poverty, and remember his misery no +more. + +31:8 Open thy mouth for the dumb in the cause of all such as are +appointed to destruction. + +31:9 Open thy mouth, judge righteously, and plead the cause of the +poor and needy. + +31:10 Who can find a virtuous woman? for her price is far above +rubies. + +31:11 The heart of her husband doth safely trust in her, so that he +shall have no need of spoil. + +31:12 She will do him good and not evil all the days of her life. + +31:13 She seeketh wool, and flax, and worketh willingly with her +hands. + +31:14 She is like the merchants' ships; she bringeth her food from +afar. + +31:15 She riseth also while it is yet night, and giveth meat to her +household, and a portion to her maidens. + +31:16 She considereth a field, and buyeth it: with the fruit of her +hands she planteth a vineyard. + +31:17 She girdeth her loins with strength, and strengtheneth her arms. + +31:18 She perceiveth that her merchandise is good: her candle goeth +not out by night. + +31:19 She layeth her hands to the spindle, and her hands hold the +distaff. + +31:20 She stretcheth out her hand to the poor; yea, she reacheth forth +her hands to the needy. + +31:21 She is not afraid of the snow for her household: for all her +household are clothed with scarlet. + +31:22 She maketh herself coverings of tapestry; her clothing is silk +and purple. + +31:23 Her husband is known in the gates, when he sitteth among the +elders of the land. + +31:24 She maketh fine linen, and selleth it; and delivereth girdles +unto the merchant. + +31:25 Strength and honour are her clothing; and she shall rejoice in +time to come. + +31:26 She openeth her mouth with wisdom; and in her tongue is the law +of kindness. + +31:27 She looketh well to the ways of her household, and eateth not +the bread of idleness. + +31:28 Her children arise up, and call her blessed; her husband also, +and he praiseth her. + +31:29 Many daughters have done virtuously, but thou excellest them +all. + +31:30 Favour is deceitful, and beauty is vain: but a woman that +feareth the LORD, she shall be praised. + +31:31 Give her of the fruit of her hands; and let her own works praise +her in the gates. + + + + +Ecclesiastes + +or + +The Preacher + + +1:1 The words of the Preacher, the son of David, king in Jerusalem. + +1:2 Vanity of vanities, saith the Preacher, vanity of vanities; all is +vanity. + +1:3 What profit hath a man of all his labour which he taketh under the +sun? 1:4 One generation passeth away, and another generation cometh: +but the earth abideth for ever. + +1:5 The sun also ariseth, and the sun goeth down, and hasteth to his +place where he arose. + +1:6 The wind goeth toward the south, and turneth about unto the north; +it whirleth about continually, and the wind returneth again according +to his circuits. + +1:7 All the rivers run into the sea; yet the sea is not full; unto the +place from whence the rivers come, thither they return again. + +1:8 All things are full of labour; man cannot utter it: the eye is not +satisfied with seeing, nor the ear filled with hearing. + +1:9 The thing that hath been, it is that which shall be; and that +which is done is that which shall be done: and there is no new thing +under the sun. + +1:10 Is there any thing whereof it may be said, See, this is new? it +hath been already of old time, which was before us. + +1:11 There is no remembrance of former things; neither shall there be +any remembrance of things that are to come with those that shall come +after. + +1:12 I the Preacher was king over Israel in Jerusalem. + +1:13 And I gave my heart to seek and search out by wisdom concerning +all things that are done under heaven: this sore travail hath God +given to the sons of man to be exercised therewith. + +1:14 I have seen all the works that are done under the sun; and, +behold, all is vanity and vexation of spirit. + +1:15 That which is crooked cannot be made straight: and that which is +wanting cannot be numbered. + +1:16 I communed with mine own heart, saying, Lo, I am come to great +estate, and have gotten more wisdom than all they that have been +before me in Jerusalem: yea, my heart had great experience of wisdom +and knowledge. + +1:17 And I gave my heart to know wisdom, and to know madness and +folly: I perceived that this also is vexation of spirit. + +1:18 For in much wisdom is much grief: and he that increaseth +knowledge increaseth sorrow. + +2:1 I said in mine heart, Go to now, I will prove thee with mirth, +therefore enjoy pleasure: and, behold, this also is vanity. + +2:2 I said of laughter, It is mad: and of mirth, What doeth it? 2:3 I +sought in mine heart to give myself unto wine, yet acquainting mine +heart with wisdom; and to lay hold on folly, till I might see what was +that good for the sons of men, which they should do under the heaven +all the days of their life. + +2:4 I made me great works; I builded me houses; I planted me +vineyards: 2:5 I made me gardens and orchards, and I planted trees in +them of all kind of fruits: 2:6 I made me pools of water, to water +therewith the wood that bringeth forth trees: 2:7 I got me servants +and maidens, and had servants born in my house; also I had great +possessions of great and small cattle above all that were in Jerusalem +before me: 2:8 I gathered me also silver and gold, and the peculiar +treasure of kings and of the provinces: I gat me men singers and women +singers, and the delights of the sons of men, as musical instruments, +and that of all sorts. + +2:9 So I was great, and increased more than all that were before me in +Jerusalem: also my wisdom remained with me. + +2:10 And whatsoever mine eyes desired I kept not from them, I withheld +not my heart from any joy; for my heart rejoiced in all my labour: and +this was my portion of all my labour. + +2:11 Then I looked on all the works that my hands had wrought, and on +the labour that I had laboured to do: and, behold, all was vanity and +vexation of spirit, and there was no profit under the sun. + +2:12 And I turned myself to behold wisdom, and madness, and folly: for +what can the man do that cometh after the king? even that which hath +been already done. + +2:13 Then I saw that wisdom excelleth folly, as far as light excelleth +darkness. + +2:14 The wise man's eyes are in his head; but the fool walketh in +darkness: and I myself perceived also that one event happeneth to them +all. + +2:15 Then said I in my heart, As it happeneth to the fool, so it +happeneth even to me; and why was I then more wise? Then I said in my +heart, that this also is vanity. + +2:16 For there is no remembrance of the wise more than of the fool for +ever; seeing that which now is in the days to come shall all be +forgotten. + +And how dieth the wise man? as the fool. + +2:17 Therefore I hated life; because the work that is wrought under +the sun is grievous unto me: for all is vanity and vexation of spirit. + +2:18 Yea, I hated all my labour which I had taken under the sun: +because I should leave it unto the man that shall be after me. + +2:19 And who knoweth whether he shall be a wise man or a fool? yet +shall he have rule over all my labour wherein I have laboured, and +wherein I have shewed myself wise under the sun. This is also vanity. + +2:20 Therefore I went about to cause my heart to despair of all the +labour which I took under the sun. + +2:21 For there is a man whose labour is in wisdom, and in knowledge, +and in equity; yet to a man that hath not laboured therein shall he +leave it for his portion. This also is vanity and a great evil. + +2:22 For what hath man of all his labour, and of the vexation of his +heart, wherein he hath laboured under the sun? 2:23 For all his days +are sorrows, and his travail grief; yea, his heart taketh not rest in +the night. This is also vanity. + +2:24 There is nothing better for a man, than that he should eat and +drink, and that he should make his soul enjoy good in his labour. This +also I saw, that it was from the hand of God. + +2:25 For who can eat, or who else can hasten hereunto, more than I? +2:26 For God giveth to a man that is good in his sight wisdom, and +knowledge, and joy: but to the sinner he giveth travail, to gather and +to heap up, that he may give to him that is good before God. This also +is vanity and vexation of spirit. + +3:1 To every thing there is a season, and a time to every purpose +under the heaven: 3:2 A time to be born, and a time to die; a time to +plant, and a time to pluck up that which is planted; 3:3 A time to +kill, and a time to heal; a time to break down, and a time to build +up; 3:4 A time to weep, and a time to laugh; a time to mourn, and a +time to dance; 3:5 A time to cast away stones, and a time to gather +stones together; a time to embrace, and a time to refrain from +embracing; 3:6 A time to get, and a time to lose; a time to keep, and +a time to cast away; 3:7 A time to rend, and a time to sew; a time to +keep silence, and a time to speak; 3:8 A time to love, and a time to +hate; a time of war, and a time of peace. + +3:9 What profit hath he that worketh in that wherein he laboureth? +3:10 I have seen the travail, which God hath given to the sons of men +to be exercised in it. + +3:11 He hath made every thing beautiful in his time: also he hath set +the world in their heart, so that no man can find out the work that +God maketh from the beginning to the end. + +3:12 I know that there is no good in them, but for a man to rejoice, +and to do good in his life. + +3:13 And also that every man should eat and drink, and enjoy the good +of all his labour, it is the gift of God. + +3:14 I know that, whatsoever God doeth, it shall be for ever: nothing +can be put to it, nor any thing taken from it: and God doeth it, that +men should fear before him. + +3:15 That which hath been is now; and that which is to be hath already +been; and God requireth that which is past. + +3:16 And moreover I saw under the sun the place of judgment, that +wickedness was there; and the place of righteousness, that iniquity +was there. + +3:17 I said in mine heart, God shall judge the righteous and the +wicked: for there is a time there for every purpose and for every +work. + +3:18 I said in mine heart concerning the estate of the sons of men, +that God might manifest them, and that they might see that they +themselves are beasts. + +3:19 For that which befalleth the sons of men befalleth beasts; even +one thing befalleth them: as the one dieth, so dieth the other; yea, +they have all one breath; so that a man hath no preeminence above a +beast: for all is vanity. + +3:20 All go unto one place; all are of the dust, and all turn to dust +again. + +3:21 Who knoweth the spirit of man that goeth upward, and the spirit +of the beast that goeth downward to the earth? 3:22 Wherefore I +perceive that there is nothing better, than that a man should rejoice +in his own works; for that is his portion: for who shall bring him to +see what shall be after him? 4:1 So I returned, and considered all +the oppressions that are done under the sun: and behold the tears of +such as were oppressed, and they had no comforter; and on the side of +their oppressors there was power; but they had no comforter. + +4:2 Wherefore I praised the dead which are already dead more than the +living which are yet alive. + +4:3 Yea, better is he than both they, which hath not yet been, who +hath not seen the evil work that is done under the sun. + +4:4 Again, I considered all travail, and every right work, that for +this a man is envied of his neighbour. This is also vanity and +vexation of spirit. + +4:5 The fool foldeth his hands together, and eateth his own flesh. + +4:6 Better is an handful with quietness, than both the hands full with +travail and vexation of spirit. + +4:7 Then I returned, and I saw vanity under the sun. + +4:8 There is one alone, and there is not a second; yea, he hath +neither child nor brother: yet is there no end of all his labour; +neither is his eye satisfied with riches; neither saith he, For whom +do I labour, and bereave my soul of good? This is also vanity, yea, it +is a sore travail. + +4:9 Two are better than one; because they have a good reward for their +labour. + +4:10 For if they fall, the one will lift up his fellow: but woe to him +that is alone when he falleth; for he hath not another to help him up. + +4:11 Again, if two lie together, then they have heat: but how can one +be warm alone? 4:12 And if one prevail against him, two shall +withstand him; and a threefold cord is not quickly broken. + +4:13 Better is a poor and a wise child than an old and foolish king, +who will no more be admonished. + +4:14 For out of prison he cometh to reign; whereas also he that is +born in his kingdom becometh poor. + +4:15 I considered all the living which walk under the sun, with the +second child that shall stand up in his stead. + +4:16 There is no end of all the people, even of all that have been +before them: they also that come after shall not rejoice in him. +Surely this also is vanity and vexation of spirit. + +5:1 Keep thy foot when thou goest to the house of God, and be more +ready to hear, than to give the sacrifice of fools: for they consider +not that they do evil. + +5:2 Be not rash with thy mouth, and let not thine heart be hasty to +utter any thing before God: for God is in heaven, and thou upon earth: +therefore let thy words be few. + +5:3 For a dream cometh through the multitude of business; and a fool's +voice is known by multitude of words. + +5:4 When thou vowest a vow unto God, defer not to pay it; for he hath +no pleasure in fools: pay that which thou hast vowed. + +5:5 Better is it that thou shouldest not vow, than that thou shouldest +vow and not pay. + +5:6 Suffer not thy mouth to cause thy flesh to sin; neither say thou +before the angel, that it was an error: wherefore should God be angry +at thy voice, and destroy the work of thine hands? 5:7 For in the +multitude of dreams and many words there are also divers vanities: but +fear thou God. + +5:8 If thou seest the oppression of the poor, and violent perverting +of judgment and justice in a province, marvel not at the matter: for +he that is higher than the highest regardeth; and there be higher than +they. + +5:9 Moreover the profit of the earth is for all: the king himself is +served by the field. + +5:10 He that loveth silver shall not be satisfied with silver; nor he +that loveth abundance with increase: this is also vanity. + +5:11 When goods increase, they are increased that eat them: and what +good is there to the owners thereof, saving the beholding of them with +their eyes? 5:12 The sleep of a labouring man is sweet, whether he +eat little or much: but the abundance of the rich will not suffer him +to sleep. + +5:13 There is a sore evil which I have seen under the sun, namely, +riches kept for the owners thereof to their hurt. + +5:14 But those riches perish by evil travail: and he begetteth a son, +and there is nothing in his hand. + +5:15 As he came forth of his mother's womb, naked shall he return to +go as he came, and shall take nothing of his labour, which he may +carry away in his hand. + +5:16 And this also is a sore evil, that in all points as he came, so +shall he go: and what profit hath he that hath laboured for the wind? +5:17 All his days also he eateth in darkness, and he hath much sorrow +and wrath with his sickness. + +5:18 Behold that which I have seen: it is good and comely for one to +eat and to drink, and to enjoy the good of all his labour that he +taketh under the sun all the days of his life, which God giveth him: +for it is his portion. + +5:19 Every man also to whom God hath given riches and wealth, and hath +given him power to eat thereof, and to take his portion, and to +rejoice in his labour; this is the gift of God. + +5:20 For he shall not much remember the days of his life; because God +answereth him in the joy of his heart. + +6:1 There is an evil which I have seen under the sun, and it is common +among men: 6:2 A man to whom God hath given riches, wealth, and +honour, so that he wanteth nothing for his soul of all that he +desireth, yet God giveth him not power to eat thereof, but a stranger +eateth it: this is vanity, and it is an evil disease. + +6:3 If a man beget an hundred children, and live many years, so that +the days of his years be many, and his soul be not filled with good, +and also that he have no burial; I say, that an untimely birth is +better than he. + +6:4 For he cometh in with vanity, and departeth in darkness, and his +name shall be covered with darkness. + +6:5 Moreover he hath not seen the sun, nor known any thing: this hath +more rest than the other. + +6:6 Yea, though he live a thousand years twice told, yet hath he seen +no good: do not all go to one place? 6:7 All the labour of man is for +his mouth, and yet the appetite is not filled. + +6:8 For what hath the wise more than the fool? what hath the poor, +that knoweth to walk before the living? 6:9 Better is the sight of +the eyes than the wandering of the desire: this is also vanity and +vexation of spirit. + +6:10 That which hath been is named already, and it is known that it is +man: neither may he contend with him that is mightier than he. + +6:11 Seeing there be many things that increase vanity, what is man the +better? 6:12 For who knoweth what is good for man in this life, all +the days of his vain life which he spendeth as a shadow? for who can +tell a man what shall be after him under the sun? 7:1 A good name is +better than precious ointment; and the day of death than the day of +one's birth. + +7:2 It is better to go to the house of mourning, than to go to the +house of feasting: for that is the end of all men; and the living will +lay it to his heart. + +7:3 Sorrow is better than laughter: for by the sadness of the +countenance the heart is made better. + +7:4 The heart of the wise is in the house of mourning; but the heart +of fools is in the house of mirth. + +7:5 It is better to hear the rebuke of the wise, than for a man to +hear the song of fools. + +7:6 For as the crackling of thorns under a pot, so is the laughter of +the fool: this also is vanity. + +7:7 Surely oppression maketh a wise man mad; and a gift destroyeth the +heart. + +7:8 Better is the end of a thing than the beginning thereof: and the +patient in spirit is better than the proud in spirit. + +7:9 Be not hasty in thy spirit to be angry: for anger resteth in the +bosom of fools. + +7:10 Say not thou, What is the cause that the former days were better +than these? for thou dost not enquire wisely concerning this. + +7:11 Wisdom is good with an inheritance: and by it there is profit to +them that see the sun. + +7:12 For wisdom is a defence, and money is a defence: but the +excellency of knowledge is, that wisdom giveth life to them that have +it. + +7:13 Consider the work of God: for who can make that straight, which +he hath made crooked? 7:14 In the day of prosperity be joyful, but in +the day of adversity consider: God also hath set the one over against +the other, to the end that man should find nothing after him. + +7:15 All things have I seen in the days of my vanity: there is a just +man that perisheth in his righteousness, and there is a wicked man +that prolongeth his life in his wickedness. + +7:16 Be not righteous over much; neither make thyself over wise: why +shouldest thou destroy thyself ? 7:17 Be not over much wicked, +neither be thou foolish: why shouldest thou die before thy time? 7:18 +It is good that thou shouldest take hold of this; yea, also from this +withdraw not thine hand: for he that feareth God shall come forth of +them all. + +7:19 Wisdom strengtheneth the wise more than ten mighty men which are +in the city. + +7:20 For there is not a just man upon earth, that doeth good, and +sinneth not. + +7:21 Also take no heed unto all words that are spoken; lest thou hear +thy servant curse thee: 7:22 For oftentimes also thine own heart +knoweth that thou thyself likewise hast cursed others. + +7:23 All this have I proved by wisdom: I said, I will be wise; but it +was far from me. + +7:24 That which is far off, and exceeding deep, who can find it out? +7:25 I applied mine heart to know, and to search, and to seek out +wisdom, and the reason of things, and to know the wickedness of folly, +even of foolishness and madness: 7:26 And I find more bitter than +death the woman, whose heart is snares and nets, and her hands as +bands: whoso pleaseth God shall escape from her; but the sinner shall +be taken by her. + +7:27 Behold, this have I found, saith the preacher, counting one by +one, to find out the account: 7:28 Which yet my soul seeketh, but I +find not: one man among a thousand have I found; but a woman among all +those have I not found. + +7:29 Lo, this only have I found, that God hath made man upright; but +they have sought out many inventions. + +8:1 Who is as the wise man? and who knoweth the interpretation of a +thing? a man's wisdom maketh his face to shine, and the boldness of +his face shall be changed. + +8:2 I counsel thee to keep the king's commandment, and that in regard +of the oath of God. + +8:3 Be not hasty to go out of his sight: stand not in an evil thing; +for he doeth whatsoever pleaseth him. + +8:4 Where the word of a king is, there is power: and who may say unto +him, What doest thou? 8:5 Whoso keepeth the commandment shall feel no +evil thing: and a wise man's heart discerneth both time and judgment. + +8:6 Because to every purpose there is time and judgment, therefore the +misery of man is great upon him. + +8:7 For he knoweth not that which shall be: for who can tell him when +it shall be? 8:8 There is no man that hath power over the spirit to +retain the spirit; neither hath he power in the day of death: and +there is no discharge in that war; neither shall wickedness deliver +those that are given to it. + +8:9 All this have I seen, and applied my heart unto every work that is +done under the sun: there is a time wherein one man ruleth over +another to his own hurt. + +8:10 And so I saw the wicked buried, who had come and gone from the +place of the holy, and they were forgotten in the city where they had +so done: this is also vanity. + +8:11 Because sentence against an evil work is not executed speedily, +therefore the heart of the sons of men is fully set in them to do +evil. + +8:12 Though a sinner do evil an hundred times, and his days be +prolonged, yet surely I know that it shall be well with them that fear +God, which fear before him: 8:13 But it shall not be well with the +wicked, neither shall he prolong his days, which are as a shadow; +because he feareth not before God. + +8:14 There is a vanity which is done upon the earth; that there be +just men, unto whom it happeneth according to the work of the wicked; +again, there be wicked men, to whom it happeneth according to the work +of the righteous: I said that this also is vanity. + +8:15 Then I commended mirth, because a man hath no better thing under +the sun, than to eat, and to drink, and to be merry: for that shall +abide with him of his labour the days of his life, which God giveth +him under the sun. + +8:16 When I applied mine heart to know wisdom, and to see the business +that is done upon the earth: (for also there is that neither day nor +night seeth sleep with his eyes:) 8:17 Then I beheld all the work of +God, that a man cannot find out the work that is done under the sun: +because though a man labour to seek it out, yet he shall not find it; +yea farther; though a wise man think to know it, yet shall he not be +able to find it. + +9:1 For all this I considered in my heart even to declare all this, +that the righteous, and the wise, and their works, are in the hand of +God: no man knoweth either love or hatred by all that is before them. + +9:2 All things come alike to all: there is one event to the righteous, +and to the wicked; to the good and to the clean, and to the unclean; +to him that sacrificeth, and to him that sacrificeth not: as is the +good, so is the sinner; and he that sweareth, as he that feareth an +oath. + +9:3 This is an evil among all things that are done under the sun, that +there is one event unto all: yea, also the heart of the sons of men is +full of evil, and madness is in their heart while they live, and after +that they go to the dead. + +9:4 For to him that is joined to all the living there is hope: for a +living dog is better than a dead lion. + +9:5 For the living know that they shall die: but the dead know not any +thing, neither have they any more a reward; for the memory of them is +forgotten. + +9:6 Also their love, and their hatred, and their envy, is now +perished; neither have they any more a portion for ever in any thing +that is done under the sun. + +9:7 Go thy way, eat thy bread with joy, and drink thy wine with a +merry heart; for God now accepteth thy works. + +9:8 Let thy garments be always white; and let thy head lack no +ointment. + +9:9 Live joyfully with the wife whom thou lovest all the days of the +life of thy vanity, which he hath given thee under the sun, all the +days of thy vanity: for that is thy portion in this life, and in thy +labour which thou takest under the sun. + +9:10 Whatsoever thy hand findeth to do, do it with thy might; for +there is no work, nor device, nor knowledge, nor wisdom, in the grave, +whither thou goest. + +9:11 I returned, and saw under the sun, that the race is not to the +swift, nor the battle to the strong, neither yet bread to the wise, +nor yet riches to men of understanding, nor yet favour to men of +skill; but time and chance happeneth to them all. + +9:12 For man also knoweth not his time: as the fishes that are taken +in an evil net, and as the birds that are caught in the snare; so are +the sons of men snared in an evil time, when it falleth suddenly upon +them. + +9:13 This wisdom have I seen also under the sun, and it seemed great +unto me: 9:14 There was a little city, and few men within it; and +there came a great king against it, and besieged it, and built great +bulwarks against it: 9:15 Now there was found in it a poor wise man, +and he by his wisdom delivered the city; yet no man remembered that +same poor man. + +9:16 Then said I, Wisdom is better than strength: nevertheless the +poor man's wisdom is despised, and his words are not heard. + +9:17 The words of wise men are heard in quiet more than the cry of him +that ruleth among fools. + +9:18 Wisdom is better than weapons of war: but one sinner destroyeth +much good. + +10:1 Dead flies cause the ointment of the apothecary to send forth a +stinking savour: so doth a little folly him that is in reputation for +wisdom and honour. + +10:2 A wise man's heart is at his right hand; but a fool's heart at +his left. + +10:3 Yea also, when he that is a fool walketh by the way, his wisdom +faileth him, and he saith to every one that he is a fool. + +10:4 If the spirit of the ruler rise up against thee, leave not thy +place; for yielding pacifieth great offences. + +10:5 There is an evil which I have seen under the sun, as an error +which proceedeth from the ruler: 10:6 Folly is set in great dignity, +and the rich sit in low place. + +10:7 I have seen servants upon horses, and princes walking as servants +upon the earth. + +10:8 He that diggeth a pit shall fall into it; and whoso breaketh an +hedge, a serpent shall bite him. + +10:9 Whoso removeth stones shall be hurt therewith; and he that +cleaveth wood shall be endangered thereby. + +10:10 If the iron be blunt, and he do not whet the edge, then must he +put to more strength: but wisdom is profitable to direct. + +10:11 Surely the serpent will bite without enchantment; and a babbler +is no better. + +10:12 The words of a wise man's mouth are gracious; but the lips of a +fool will swallow up himself. + +10:13 The beginning of the words of his mouth is foolishness: and the +end of his talk is mischievous madness. + +10:14 A fool also is full of words: a man cannot tell what shall be; +and what shall be after him, who can tell him? 10:15 The labour of +the foolish wearieth every one of them, because he knoweth not how to +go to the city. + +10:16 Woe to thee, O land, when thy king is a child, and thy princes +eat in the morning! 10:17 Blessed art thou, O land, when thy king is +the son of nobles, and thy princes eat in due season, for strength, +and not for drunkenness! 10:18 By much slothfulness the building +decayeth; and through idleness of the hands the house droppeth +through. + +10:19 A feast is made for laughter, and wine maketh merry: but money +answereth all things. + +10:20 Curse not the king, no not in thy thought; and curse not the +rich in thy bedchamber: for a bird of the air shall carry the voice, +and that which hath wings shall tell the matter. + +11:1 Cast thy bread upon the waters: for thou shalt find it after many +days. + +11:2 Give a portion to seven, and also to eight; for thou knowest not +what evil shall be upon the earth. + +11:3 If the clouds be full of rain, they empty themselves upon the +earth: and if the tree fall toward the south, or toward the north, in +the place where the tree falleth, there it shall be. + +11:4 He that observeth the wind shall not sow; and he that regardeth +the clouds shall not reap. + +11:5 As thou knowest not what is the way of the spirit, nor how the +bones do grow in the womb of her that is with child: even so thou +knowest not the works of God who maketh all. + +11:6 In the morning sow thy seed, and in the evening withhold not +thine hand: for thou knowest not whether shall prosper, either this or +that, or whether they both shall be alike good. + +11:7 Truly the light is sweet, and a pleasant thing it is for the eyes +to behold the sun: 11:8 But if a man live many years, and rejoice in +them all; yet let him remember the days of darkness; for they shall be +many. All that cometh is vanity. + +11:9 Rejoice, O young man, in thy youth; and let thy heart cheer thee +in the days of thy youth, and walk in the ways of thine heart, and in +the sight of thine eyes: but know thou, that for all these things God +will bring thee into judgment. + +11:10 Therefore remove sorrow from thy heart, and put away evil from +thy flesh: for childhood and youth are vanity. + +12:1 Remember now thy Creator in the days of thy youth, while the evil +days come not, nor the years draw nigh, when thou shalt say, I have no +pleasure in them; 12:2 While the sun, or the light, or the moon, or +the stars, be not darkened, nor the clouds return after the rain: 12:3 +In the day when the keepers of the house shall tremble, and the strong +men shall bow themselves, and the grinders cease because they are few, +and those that look out of the windows be darkened, 12:4 And the doors +shall be shut in the streets, when the sound of the grinding is low, +and he shall rise up at the voice of the bird, and all the daughters +of musick shall be brought low; 12:5 Also when they shall be afraid of +that which is high, and fears shall be in the way, and the almond tree +shall flourish, and the grasshopper shall be a burden, and desire +shall fail: because man goeth to his long home, and the mourners go +about the streets: 12:6 Or ever the silver cord be loosed, or the +golden bowl be broken, or the pitcher be broken at the fountain, or +the wheel broken at the cistern. + +12:7 Then shall the dust return to the earth as it was: and the spirit +shall return unto God who gave it. + +12:8 Vanity of vanities, saith the preacher; all is vanity. + +12:9 And moreover, because the preacher was wise, he still taught the +people knowledge; yea, he gave good heed, and sought out, and set in +order many proverbs. + +12:10 The preacher sought to find out acceptable words: and that which +was written was upright, even words of truth. + +12:11 The words of the wise are as goads, and as nails fastened by the +masters of assemblies, which are given from one shepherd. + +12:12 And further, by these, my son, be admonished: of making many +books there is no end; and much study is a weariness of the flesh. + +12:13 Let us hear the conclusion of the whole matter: Fear God, and +keep his commandments: for this is the whole duty of man. + +12:14 For God shall bring every work into judgment, with every secret +thing, whether it be good, or whether it be evil. + + + + +The Song of Solomon + + +1:1 The song of songs, which is Solomon's. + +1:2 Let him kiss me with the kisses of his mouth: for thy love is +better than wine. + +1:3 Because of the savour of thy good ointments thy name is as +ointment poured forth, therefore do the virgins love thee. + +1:4 Draw me, we will run after thee: the king hath brought me into his +chambers: we will be glad and rejoice in thee, we will remember thy +love more than wine: the upright love thee. + +1:5 I am black, but comely, O ye daughters of Jerusalem, as the tents +of Kedar, as the curtains of Solomon. + +1:6 Look not upon me, because I am black, because the sun hath looked +upon me: my mother's children were angry with me; they made me the +keeper of the vineyards; but mine own vineyard have I not kept. + +1:7 Tell me, O thou whom my soul loveth, where thou feedest, where +thou makest thy flock to rest at noon: for why should I be as one that +turneth aside by the flocks of thy companions? 1:8 If thou know not, +O thou fairest among women, go thy way forth by the footsteps of the +flock, and feed thy kids beside the shepherds' tents. + +1:9 I have compared thee, O my love, to a company of horses in +Pharaoh's chariots. + +1:10 Thy cheeks are comely with rows of jewels, thy neck with chains +of gold. + +1:11 We will make thee borders of gold with studs of silver. + +1:12 While the king sitteth at his table, my spikenard sendeth forth +the smell thereof. + +1:13 A bundle of myrrh is my well-beloved unto me; he shall lie all +night betwixt my breasts. + +1:14 My beloved is unto me as a cluster of camphire in the vineyards +of Engedi. + +1:15 Behold, thou art fair, my love; behold, thou art fair; thou hast +doves' eyes. + +1:16 Behold, thou art fair, my beloved, yea, pleasant: also our bed is +green. + +1:17 The beams of our house are cedar, and our rafters of fir. + +2:1 I am the rose of Sharon, and the lily of the valleys. + +2:2 As the lily among thorns, so is my love among the daughters. + +2:3 As the apple tree among the trees of the wood, so is my beloved +among the sons. I sat down under his shadow with great delight, and +his fruit was sweet to my taste. + +2:4 He brought me to the banqueting house, and his banner over me was +love. + +2:5 Stay me with flagons, comfort me with apples: for I am sick of +love. + +2:6 His left hand is under my head, and his right hand doth embrace +me. + +2:7 I charge you, O ye daughters of Jerusalem, by the roes, and by the +hinds of the field, that ye stir not up, nor awake my love, till he +please. + +2:8 The voice of my beloved! behold, he cometh leaping upon the +mountains, skipping upon the hills. + +2:9 My beloved is like a roe or a young hart: behold, he standeth +behind our wall, he looketh forth at the windows, shewing himself +through the lattice. + +2:10 My beloved spake, and said unto me, Rise up, my love, my fair +one, and come away. + +2:11 For, lo, the winter is past, the rain is over and gone; 2:12 The +flowers appear on the earth; the time of the singing of birds is come, +and the voice of the turtle is heard in our land; 2:13 The fig tree +putteth forth her green figs, and the vines with the tender grape give +a good smell. Arise, my love, my fair one, and come away. + +2:14 O my dove, that art in the clefts of the rock, in the secret +places of the stairs, let me see thy countenance, let me hear thy +voice; for sweet is thy voice, and thy countenance is comely. + +2:15 Take us the foxes, the little foxes, that spoil the vines: for +our vines have tender grapes. + +2:16 My beloved is mine, and I am his: he feedeth among the lilies. + +2:17 Until the day break, and the shadows flee away, turn, my beloved, +and be thou like a roe or a young hart upon the mountains of Bether. + +3:1 By night on my bed I sought him whom my soul loveth: I sought him, +but I found him not. + +3:2 I will rise now, and go about the city in the streets, and in the +broad ways I will seek him whom my soul loveth: I sought him, but I +found him not. + +3:3 The watchmen that go about the city found me: to whom I said, Saw +ye him whom my soul loveth? 3:4 It was but a little that I passed +from them, but I found him whom my soul loveth: I held him, and would +not let him go, until I had brought him into my mother's house, and +into the chamber of her that conceived me. + +3:5 I charge you, O ye daughters of Jerusalem, by the roes, and by the +hinds of the field, that ye stir not up, nor awake my love, till he +please. + +3:6 Who is this that cometh out of the wilderness like pillars of +smoke, perfumed with myrrh and frankincense, with all powders of the +merchant? 3:7 Behold his bed, which is Solomon's; threescore valiant +men are about it, of the valiant of Israel. + +3:8 They all hold swords, being expert in war: every man hath his +sword upon his thigh because of fear in the night. + +3:9 King Solomon made himself a chariot of the wood of Lebanon. + +3:10 He made the pillars thereof of silver, the bottom thereof of +gold, the covering of it of purple, the midst thereof being paved with +love, for the daughters of Jerusalem. + +3:11 Go forth, O ye daughters of Zion, and behold king Solomon with +the crown wherewith his mother crowned him in the day of his +espousals, and in the day of the gladness of his heart. + +4:1 Behold, thou art fair, my love; behold, thou art fair; thou hast +doves' eyes within thy locks: thy hair is as a flock of goats, that +appear from mount Gilead. + +4:2 Thy teeth are like a flock of sheep that are even shorn, which +came up from the washing; whereof every one bear twins, and none is +barren among them. + +4:3 Thy lips are like a thread of scarlet, and thy speech is comely: +thy temples are like a piece of a pomegranate within thy locks. + +4:4 Thy neck is like the tower of David builded for an armoury, +whereon there hang a thousand bucklers, all shields of mighty men. + +4:5 Thy two breasts are like two young roes that are twins, which feed +among the lilies. + +4:6 Until the day break, and the shadows flee away, I will get me to +the mountain of myrrh, and to the hill of frankincense. + +4:7 Thou art all fair, my love; there is no spot in thee. + +4:8 Come with me from Lebanon, my spouse, with me from Lebanon: look +from the top of Amana, from the top of Shenir and Hermon, from the +lions' dens, from the mountains of the leopards. + +4:9 Thou hast ravished my heart, my sister, my spouse; thou hast +ravished my heart with one of thine eyes, with one chain of thy neck. + +4:10 How fair is thy love, my sister, my spouse! how much better is +thy love than wine! and the smell of thine ointments than all spices! +4:11 Thy lips, O my spouse, drop as the honeycomb: honey and milk are +under thy tongue; and the smell of thy garments is like the smell of +Lebanon. + +4:12 A garden inclosed is my sister, my spouse; a spring shut up, a +fountain sealed. + +4:13 Thy plants are an orchard of pomegranates, with pleasant fruits; +camphire, with spikenard, 4:14 Spikenard and saffron; calamus and +cinnamon, with all trees of frankincense; myrrh and aloes, with all +the chief spices: 4:15 A fountain of gardens, a well of living waters, +and streams from Lebanon. + +4:16 Awake, O north wind; and come, thou south; blow upon my garden, +that the spices thereof may flow out. Let my beloved come into his +garden, and eat his pleasant fruits. + +5:1 I am come into my garden, my sister, my spouse: I have gathered my +myrrh with my spice; I have eaten my honeycomb with my honey; I have +drunk my wine with my milk: eat, O friends; drink, yea, drink +abundantly, O beloved. + +5:2 I sleep, but my heart waketh: it is the voice of my beloved that +knocketh, saying, Open to me, my sister, my love, my dove, my +undefiled: for my head is filled with dew, and my locks with the drops +of the night. + +5:3 I have put off my coat; how shall I put it on? I have washed my +feet; how shall I defile them? 5:4 My beloved put in his hand by the +hole of the door, and my bowels were moved for him. + +5:5 I rose up to open to my beloved; and my hands dropped with myrrh, +and my fingers with sweet smelling myrrh, upon the handles of the +lock. + +5:6 I opened to my beloved; but my beloved had withdrawn himself, and +was gone: my soul failed when he spake: I sought him, but I could not +find him; I called him, but he gave me no answer. + +5:7 The watchmen that went about the city found me, they smote me, +they wounded me; the keepers of the walls took away my veil from me. + +5:8 I charge you, O daughters of Jerusalem, if ye find my beloved, +that ye tell him, that I am sick of love. + +5:9 What is thy beloved more than another beloved, O thou fairest +among women? what is thy beloved more than another beloved, that thou +dost so charge us? 5:10 My beloved is white and ruddy, the chiefest +among ten thousand. + +5:11 His head is as the most fine gold, his locks are bushy, and black +as a raven. + +5:12 His eyes are as the eyes of doves by the rivers of waters, washed +with milk, and fitly set. + +5:13 His cheeks are as a bed of spices, as sweet flowers: his lips +like lilies, dropping sweet smelling myrrh. + +5:14 His hands are as gold rings set with the beryl: his belly is as +bright ivory overlaid with sapphires. + +5:15 His legs are as pillars of marble, set upon sockets of fine gold: +his countenance is as Lebanon, excellent as the cedars. + +5:16 His mouth is most sweet: yea, he is altogether lovely. This is my +beloved, and this is my friend, O daughters of Jerusalem. + +6:1 Whither is thy beloved gone, O thou fairest among women? whither +is thy beloved turned aside? that we may seek him with thee. + +6:2 My beloved is gone down into his garden, to the beds of spices, to +feed in the gardens, and to gather lilies. + +6:3 I am my beloved's, and my beloved is mine: he feedeth among the +lilies. + +6:4 Thou art beautiful, O my love, as Tirzah, comely as Jerusalem, +terrible as an army with banners. + +6:5 Turn away thine eyes from me, for they have overcome me: thy hair +is as a flock of goats that appear from Gilead. + +6:6 Thy teeth are as a flock of sheep which go up from the washing, +whereof every one beareth twins, and there is not one barren among +them. + +6:7 As a piece of a pomegranate are thy temples within thy locks. + +6:8 There are threescore queens, and fourscore concubines, and virgins +without number. + +6:9 My dove, my undefiled is but one; she is the only one of her +mother, she is the choice one of her that bare her. The daughters saw +her, and blessed her; yea, the queens and the concubines, and they +praised her. + +6:10 Who is she that looketh forth as the morning, fair as the moon, +clear as the sun, and terrible as an army with banners? 6:11 I went +down into the garden of nuts to see the fruits of the valley, and to +see whether the vine flourished and the pomegranates budded. + +6:12 Or ever I was aware, my soul made me like the chariots of +Amminadib. + +6:13 Return, return, O Shulamite; return, return, that we may look +upon thee. What will ye see in the Shulamite? As it were the company +of two armies. + +7:1 How beautiful are thy feet with shoes, O prince's daughter! the +joints of thy thighs are like jewels, the work of the hands of a +cunning workman. + +7:2 Thy navel is like a round goblet, which wanteth not liquor: thy +belly is like an heap of wheat set about with lilies. + +7:3 Thy two breasts are like two young roes that are twins. + +7:4 Thy neck is as a tower of ivory; thine eyes like the fishpools in +Heshbon, by the gate of Bathrabbim: thy nose is as the tower of +Lebanon which looketh toward Damascus. + +7:5 Thine head upon thee is like Carmel, and the hair of thine head +like purple; the king is held in the galleries. + +7:6 How fair and how pleasant art thou, O love, for delights! 7:7 +This thy stature is like to a palm tree, and thy breasts to clusters +of grapes. + +7:8 I said, I will go up to the palm tree, I will take hold of the +boughs thereof: now also thy breasts shall be as clusters of the vine, +and the smell of thy nose like apples; 7:9 And the roof of thy mouth +like the best wine for my beloved, that goeth down sweetly, causing +the lips of those that are asleep to speak. + +7:10 I am my beloved's, and his desire is toward me. + +7:11 Come, my beloved, let us go forth into the field; let us lodge in +the villages. + +7:12 Let us get up early to the vineyards; let us see if the vine +flourish, whether the tender grape appear, and the pomegranates bud +forth: there will I give thee my loves. + +7:13 The mandrakes give a smell, and at our gates are all manner of +pleasant fruits, new and old, which I have laid up for thee, O my +beloved. + +8:1 O that thou wert as my brother, that sucked the breasts of my +mother! when I should find thee without, I would kiss thee; yea, I +should not be despised. + +8:2 I would lead thee, and bring thee into my mother's house, who +would instruct me: I would cause thee to drink of spiced wine of the +juice of my pomegranate. + +8:3 His left hand should be under my head, and his right hand should +embrace me. + +8:4 I charge you, O daughters of Jerusalem, that ye stir not up, nor +awake my love, until he please. + +8:5 Who is this that cometh up from the wilderness, leaning upon her +beloved? I raised thee up under the apple tree: there thy mother +brought thee forth: there she brought thee forth that bare thee. + +8:6 Set me as a seal upon thine heart, as a seal upon thine arm: for +love is strong as death; jealousy is cruel as the grave: the coals +thereof are coals of fire, which hath a most vehement flame. + +8:7 Many waters cannot quench love, neither can the floods drown it: +if a man would give all the substance of his house for love, it would +utterly be contemned. + +8:8 We have a little sister, and she hath no breasts: what shall we do +for our sister in the day when she shall be spoken for? 8:9 If she be +a wall, we will build upon her a palace of silver: and if she be a +door, we will inclose her with boards of cedar. + +8:10 I am a wall, and my breasts like towers: then was I in his eyes +as one that found favour. + +8:11 Solomon had a vineyard at Baalhamon; he let out the vineyard unto +keepers; every one for the fruit thereof was to bring a thousand +pieces of silver. + +8:12 My vineyard, which is mine, is before me: thou, O Solomon, must +have a thousand, and those that keep the fruit thereof two hundred. + +8:13 Thou that dwellest in the gardens, the companions hearken to thy +voice: cause me to hear it. + +8:14 Make haste, my beloved, and be thou like to a roe or to a young +hart upon the mountains of spices. + + + + +The Book of the Prophet Isaiah + + +1:1 The vision of Isaiah the son of Amoz, which he saw concerning +Judah and Jerusalem in the days of Uzziah, Jotham, Ahaz, and Hezekiah, +kings of Judah. + +1:2 Hear, O heavens, and give ear, O earth: for the LORD hath spoken, +I have nourished and brought up children, and they have rebelled +against me. + +1:3 The ox knoweth his owner, and the ass his master's crib: but +Israel doth not know, my people doth not consider. + +1:4 Ah sinful nation, a people laden with iniquity, a seed of +evildoers, children that are corrupters: they have forsaken the LORD, +they have provoked the Holy One of Israel unto anger, they are gone +away backward. + +1:5 Why should ye be stricken any more? ye will revolt more and more: +the whole head is sick, and the whole heart faint. + +1:6 From the sole of the foot even unto the head there is no soundness +in it; but wounds, and bruises, and putrifying sores: they have not +been closed, neither bound up, neither mollified with ointment. + +1:7 Your country is desolate, your cities are burned with fire: your +land, strangers devour it in your presence, and it is desolate, as +overthrown by strangers. + +1:8 And the daughter of Zion is left as a cottage in a vineyard, as a +lodge in a garden of cucumbers, as a besieged city. + +1:9 Except the LORD of hosts had left unto us a very small remnant, we +should have been as Sodom, and we should have been like unto Gomorrah. + +1:10 Hear the word of the LORD, ye rulers of Sodom; give ear unto the +law of our God, ye people of Gomorrah. + +1:11 To what purpose is the multitude of your sacrifices unto me? +saith the LORD: I am full of the burnt offerings of rams, and the fat +of fed beasts; and I delight not in the blood of bullocks, or of +lambs, or of he goats. + +1:12 When ye come to appear before me, who hath required this at your +hand, to tread my courts? 1:13 Bring no more vain oblations; incense +is an abomination unto me; the new moons and sabbaths, the calling of +assemblies, I cannot away with; it is iniquity, even the solemn +meeting. + +1:14 Your new moons and your appointed feasts my soul hateth: they are +a trouble unto me; I am weary to bear them. + +1:15 And when ye spread forth your hands, I will hide mine eyes from +you: yea, when ye make many prayers, I will not hear: your hands are +full of blood. + +1:16 Wash you, make you clean; put away the evil of your doings from +before mine eyes; cease to do evil; 1:17 Learn to do well; seek +judgment, relieve the oppressed, judge the fatherless, plead for the +widow. + +1:18 Come now, and let us reason together, saith the LORD: though your +sins be as scarlet, they shall be as white as snow; though they be red +like crimson, they shall be as wool. + +1:19 If ye be willing and obedient, ye shall eat the good of the land: +1:20 But if ye refuse and rebel, ye shall be devoured with the sword: +for the mouth of the LORD hath spoken it. + +1:21 How is the faithful city become an harlot! it was full of +judgment; righteousness lodged in it; but now murderers. + +1:22 Thy silver is become dross, thy wine mixed with water: 1:23 Thy +princes are rebellious, and companions of thieves: every one loveth +gifts, and followeth after rewards: they judge not the fatherless, +neither doth the cause of the widow come unto them. + +1:24 Therefore saith the LORD, the LORD of hosts, the mighty One of +Israel, Ah, I will ease me of mine adversaries, and avenge me of mine +enemies: 1:25 And I will turn my hand upon thee, and purely purge away +thy dross, and take away all thy tin: 1:26 And I will restore thy +judges as at the first, and thy counsellors as at the beginning: +afterward thou shalt be called, The city of righteousness, the +faithful city. + +1:27 Zion shall be redeemed with judgment, and her converts with +righteousness. + +1:28 And the destruction of the transgressors and of the sinners shall +be together, and they that forsake the LORD shall be consumed. + +1:29 For they shall be ashamed of the oaks which ye have desired, and +ye shall be confounded for the gardens that ye have chosen. + +1:30 For ye shall be as an oak whose leaf fadeth, and as a garden that +hath no water. + +1:31 And the strong shall be as tow, and the maker of it as a spark, +and they shall both burn together, and none shall quench them. + +2:1 The word that Isaiah the son of Amoz saw concerning Judah and +Jerusalem. + +2:2 And it shall come to pass in the last days, that the mountain of +the LORD's house shall be established in the top of the mountains, and +shall be exalted above the hills; and all nations shall flow unto it. + +2:3 And many people shall go and say, Come ye, and let us go up to the +mountain of the LORD, to the house of the God of Jacob; and he will +teach us of his ways, and we will walk in his paths: for out of Zion +shall go forth the law, and the word of the LORD from Jerusalem. + +2:4 And he shall judge among the nations, and shall rebuke many +people: and they shall beat their swords into plowshares, and their +spears into pruninghooks: nation shall not lift up sword against +nation, neither shall they learn war any more. + +2:5 O house of Jacob, come ye, and let us walk in the light of the +LORD. + +2:6 Therefore thou hast forsaken thy people the house of Jacob, +because they be replenished from the east, and are soothsayers like +the Philistines, and they please themselves in the children of +strangers. + +2:7 Their land also is full of silver and gold, neither is there any +end of their treasures; their land is also full of horses, neither is +there any end of their chariots: 2:8 Their land also is full of idols; +they worship the work of their own hands, that which their own fingers +have made: 2:9 And the mean man boweth down, and the great man +humbleth himself: therefore forgive them not. + +2:10 Enter into the rock, and hide thee in the dust, for fear of the +LORD, and for the glory of his majesty. + +2:11 The lofty looks of man shall be humbled, and the haughtiness of +men shall be bowed down, and the LORD alone shall be exalted in that +day. + +2:12 For the day of the LORD of hosts shall be upon every one that is +proud and lofty, and upon every one that is lifted up; and he shall be +brought low: 2:13 And upon all the cedars of Lebanon, that are high +and lifted up, and upon all the oaks of Bashan, 2:14 And upon all the +high mountains, and upon all the hills that are lifted up, 2:15 And +upon every high tower, and upon every fenced wall, 2:16 And upon all +the ships of Tarshish, and upon all pleasant pictures. + +2:17 And the loftiness of man shall be bowed down, and the haughtiness +of men shall be made low: and the LORD alone shall be exalted in that +day. + +2:18 And the idols he shall utterly abolish. + +2:19 And they shall go into the holes of the rocks, and into the caves +of the earth, for fear of the LORD, and for the glory of his majesty, +when he ariseth to shake terribly the earth. + +2:20 In that day a man shall cast his idols of silver, and his idols +of gold, which they made each one for himself to worship, to the moles +and to the bats; 2:21 To go into the clefts of the rocks, and into the +tops of the ragged rocks, for fear of the LORD, and for the glory of +his majesty, when he ariseth to shake terribly the earth. + +2:22 Cease ye from man, whose breath is in his nostrils: for wherein +is he to be accounted of ? 3:1 For, behold, the Lord, the LORD of +hosts, doth take away from Jerusalem and from Judah the stay and the +staff, the whole stay of bread, and the whole stay of water. + +3:2 The mighty man, and the man of war, the judge, and the prophet, +and the prudent, and the ancient, 3:3 The captain of fifty, and the +honourable man, and the counsellor, and the cunning artificer, and the +eloquent orator. + +3:4 And I will give children to be their princes, and babes shall rule +over them. + +3:5 And the people shall be oppressed, every one by another, and every +one by his neighbour: the child shall behave himself proudly against +the ancient, and the base against the honourable. + +3:6 When a man shall take hold of his brother of the house of his +father, saying, Thou hast clothing, be thou our ruler, and let this +ruin be under thy hand: 3:7 In that day shall he swear, saying, I will +not be an healer; for in my house is neither bread nor clothing: make +me not a ruler of the people. + +3:8 For Jerusalem is ruined, and Judah is fallen: because their tongue +and their doings are against the LORD, to provoke the eyes of his +glory. + +3:9 The shew of their countenance doth witness against them; and they +declare their sin as Sodom, they hide it not. Woe unto their soul! for +they have rewarded evil unto themselves. + +3:10 Say ye to the righteous, that it shall be well with him: for they +shall eat the fruit of their doings. + +3:11 Woe unto the wicked! it shall be ill with him: for the reward of +his hands shall be given him. + +3:12 As for my people, children are their oppressors, and women rule +over them. O my people, they which lead thee cause thee to err, and +destroy the way of thy paths. + +3:13 The LORD standeth up to plead, and standeth to judge the people. + +3:14 The LORD will enter into judgment with the ancients of his +people, and the princes thereof: for ye have eaten up the vineyard; +the spoil of the poor is in your houses. + +3:15 What mean ye that ye beat my people to pieces, and grind the +faces of the poor? saith the Lord GOD of hosts. + +3:16 Moreover the LORD saith, Because the daughters of Zion are +haughty, and walk with stretched forth necks and wanton eyes, walking +and mincing as they go, and making a tinkling with their feet: 3:17 +Therefore the LORD will smite with a scab the crown of the head of the +daughters of Zion, and the LORD will discover their secret parts. + +3:18 In that day the Lord will take away the bravery of their tinkling +ornaments about their feet, and their cauls, and their round tires +like the moon, 3:19 The chains, and the bracelets, and the mufflers, +3:20 The bonnets, and the ornaments of the legs, and the headbands, +and the tablets, and the earrings, 3:21 The rings, and nose jewels, +3:22 The changeable suits of apparel, and the mantles, and the +wimples, and the crisping pins, 3:23 The glasses, and the fine linen, +and the hoods, and the vails. + +3:24 And it shall come to pass, that instead of sweet smell there +shall be stink; and instead of a girdle a rent; and instead of well +set hair baldness; and instead of a stomacher a girding of sackcloth; +and burning instead of beauty. + +3:25 Thy men shall fall by the sword, and thy mighty in the war. + +3:26 And her gates shall lament and mourn; and she being desolate +shall sit upon the ground. + +4:1 And in that day seven women shall take hold of one man, saying, We +will eat our own bread, and wear our own apparel: only let us be +called by thy name, to take away our reproach. + +4:2 In that day shall the branch of the LORD be beautiful and +glorious, and the fruit of the earth shall be excellent and comely for +them that are escaped of Israel. + +4:3 And it shall come to pass, that he that is left in Zion, and he +that remaineth in Jerusalem, shall be called holy, even every one that +is written among the living in Jerusalem: 4:4 When the Lord shall have +washed away the filth of the daughters of Zion, and shall have purged +the blood of Jerusalem from the midst thereof by the spirit of +judgment, and by the spirit of burning. + +4:5 And the LORD will create upon every dwelling place of mount Zion, +and upon her assemblies, a cloud and smoke by day, and the shining of +a flaming fire by night: for upon all the glory shall be a defence. + +4:6 And there shall be a tabernacle for a shadow in the day time from +the heat, and for a place of refuge, and for a covert from storm and +from rain. + +5:1 Now will I sing to my wellbeloved a song of my beloved touching +his vineyard. My wellbeloved hath a vineyard in a very fruitful hill: +5:2 And he fenced it, and gathered out the stones thereof, and planted +it with the choicest vine, and built a tower in the midst of it, and +also made a winepress therein: and he looked that it should bring +forth grapes, and it brought forth wild grapes. + +5:3 And now, O inhabitants of Jerusalem, and men of Judah, judge, I +pray you, betwixt me and my vineyard. + +5:4 What could have been done more to my vineyard, that I have not +done in it? wherefore, when I looked that it should bring forth +grapes, brought it forth wild grapes? 5:5 And now go to; I will tell +you what I will do to my vineyard: I will take away the hedge thereof, +and it shall be eaten up; and break down the wall thereof, and it +shall be trodden down: 5:6 And I will lay it waste: it shall not be +pruned, nor digged; but there shall come up briers and thorns: I will +also command the clouds that they rain no rain upon it. + +5:7 For the vineyard of the LORD of hosts is the house of Israel, and +the men of Judah his pleasant plant: and he looked for judgment, but +behold oppression; for righteousness, but behold a cry. + +5:8 Woe unto them that join house to house, that lay field to field, +till there be no place, that they may be placed alone in the midst of +the earth! 5:9 In mine ears said the LORD of hosts, Of a truth many +houses shall be desolate, even great and fair, without inhabitant. + +5:10 Yea, ten acres of vineyard shall yield one bath, and the seed of +an homer shall yield an ephah. + +5:11 Woe unto them that rise up early in the morning, that they may +follow strong drink; that continue until night, till wine inflame +them! 5:12 And the harp, and the viol, the tabret, and pipe, and +wine, are in their feasts: but they regard not the work of the LORD, +neither consider the operation of his hands. + +5:13 Therefore my people are gone into captivity, because they have no +knowledge: and their honourable men are famished, and their multitude +dried up with thirst. + +5:14 Therefore hell hath enlarged herself, and opened her mouth +without measure: and their glory, and their multitude, and their pomp, +and he that rejoiceth, shall descend into it. + +5:15 And the mean man shall be brought down, and the mighty man shall +be humbled, and the eyes of the lofty shall be humbled: 5:16 But the +LORD of hosts shall be exalted in judgment, and God that is holy shall +be sanctified in righteousness. + +5:17 Then shall the lambs feed after their manner, and the waste +places of the fat ones shall strangers eat. + +5:18 Woe unto them that draw iniquity with cords of vanity, and sin as +it were with a cart rope: 5:19 That say, Let him make speed, and +hasten his work, that we may see it: and let the counsel of the Holy +One of Israel draw nigh and come, that we may know it! 5:20 Woe unto +them that call evil good, and good evil; that put darkness for light, +and light for darkness; that put bitter for sweet, and sweet for +bitter! 5:21 Woe unto them that are wise in their own eyes, and +prudent in their own sight! 5:22 Woe unto them that are mighty to +drink wine, and men of strength to mingle strong drink: 5:23 Which +justify the wicked for reward, and take away the righteousness of the +righteous from him! 5:24 Therefore as the fire devoureth the stubble, +and the flame consumeth the chaff, so their root shall be as +rottenness, and their blossom shall go up as dust: because they have +cast away the law of the LORD of hosts, and despised the word of the +Holy One of Israel. + +5:25 Therefore is the anger of the LORD kindled against his people, +and he hath stretched forth his hand against them, and hath smitten +them: and the hills did tremble, and their carcases were torn in the +midst of the streets. + +For all this his anger is not turned away, but his hand is stretched +out still. + +5:26 And he will lift up an ensign to the nations from far, and will +hiss unto them from the end of the earth: and, behold, they shall come +with speed swiftly: 5:27 None shall be weary nor stumble among them; +none shall slumber nor sleep; neither shall the girdle of their loins +be loosed, nor the latchet of their shoes be broken: 5:28 Whose arrows +are sharp, and all their bows bent, their horses' hoofs shall be +counted like flint, and their wheels like a whirlwind: 5:29 Their +roaring shall be like a lion, they shall roar like young lions: yea, +they shall roar, and lay hold of the prey, and shall carry it away +safe, and none shall deliver it. + +5:30 And in that day they shall roar against them like the roaring of +the sea: and if one look unto the land, behold darkness and sorrow, +and the light is darkened in the heavens thereof. + +6:1 In the year that king Uzziah died I saw also the LORD sitting upon +a throne, high and lifted up, and his train filled the temple. + +6:2 Above it stood the seraphims: each one had six wings; with twain +he covered his face, and with twain he covered his feet, and with +twain he did fly. + +6:3 And one cried unto another, and said, Holy, holy, holy, is the +LORD of hosts: the whole earth is full of his glory. + +6:4 And the posts of the door moved at the voice of him that cried, +and the house was filled with smoke. + +6:5 Then said I, Woe is me! for I am undone; because I am a man of +unclean lips, and I dwell in the midst of a people of unclean lips: +for mine eyes have seen the King, the LORD of hosts. + +6:6 Then flew one of the seraphims unto me, having a live coal in his +hand, which he had taken with the tongs from off the altar: 6:7 And he +laid it upon my mouth, and said, Lo, this hath touched thy lips; and +thine iniquity is taken away, and thy sin purged. + +6:8 Also I heard the voice of the Lord, saying, Whom shall I send, and +who will go for us? Then said I, Here am I; send me. + +6:9 And he said, Go, and tell this people, Hear ye indeed, but +understand not; and see ye indeed, but perceive not. + +6:10 Make the heart of this people fat, and make their ears heavy, and +shut their eyes; lest they see with their eyes, and hear with their +ears, and understand with their heart, and convert, and be healed. + +6:11 Then said I, Lord, how long? And he answered, Until the cities be +wasted without inhabitant, and the houses without man, and the land be +utterly desolate, 6:12 And the LORD have removed men far away, and +there be a great forsaking in the midst of the land. + +6:13 But yet in it shall be a tenth, and it shall return, and shall be +eaten: as a teil tree, and as an oak, whose substance is in them, when +they cast their leaves: so the holy seed shall be the substance +thereof. + +7:1 And it came to pass in the days of Ahaz the son of Jotham, the son +of Uzziah, king of Judah, that Rezin the king of Syria, and Pekah the +son of Remaliah, king of Israel, went up toward Jerusalem to war +against it, but could not prevail against it. + +7:2 And it was told the house of David, saying, Syria is confederate +with Ephraim. And his heart was moved, and the heart of his people, as +the trees of the wood are moved with the wind. + +7:3 Then said the LORD unto Isaiah, Go forth now to meet Ahaz, thou, +and Shearjashub thy son, at the end of the conduit of the upper pool +in the highway of the fuller's field; 7:4 And say unto him, Take heed, +and be quiet; fear not, neither be fainthearted for the two tails of +these smoking firebrands, for the fierce anger of Rezin with Syria, +and of the son of Remaliah. + +7:5 Because Syria, Ephraim, and the son of Remaliah, have taken evil +counsel against thee, saying, 7:6 Let us go up against Judah, and vex +it, and let us make a breach therein for us, and set a king in the +midst of it, even the son of Tabeal: 7:7 Thus saith the Lord GOD, It +shall not stand, neither shall it come to pass. + +7:8 For the head of Syria is Damascus, and the head of Damascus is +Rezin; and within threescore and five years shall Ephraim be broken, +that it be not a people. + +7:9 And the head of Ephraim is Samaria, and the head of Samaria is +Remaliah's son. If ye will not believe, surely ye shall not be +established. + +7:10 Moreover the LORD spake again unto Ahaz, saying, 7:11 Ask thee a +sign of the LORD thy God; ask it either in the depth, or in the height +above. + +7:12 But Ahaz said, I will not ask, neither will I tempt the LORD. + +7:13 And he said, Hear ye now, O house of David; Is it a small thing +for you to weary men, but will ye weary my God also? 7:14 Therefore +the Lord himself shall give you a sign; Behold, a virgin shall +conceive, and bear a son, and shall call his name Immanuel. + +7:15 Butter and honey shall he eat, that he may know to refuse the +evil, and choose the good. + +7:16 For before the child shall know to refuse the evil, and choose +the good, the land that thou abhorrest shall be forsaken of both her +kings. + +7:17 The LORD shall bring upon thee, and upon thy people, and upon thy +father's house, days that have not come, from the day that Ephraim +departed from Judah; even the king of Assyria. + +7:18 And it shall come to pass in that day, that the LORD shall hiss +for the fly that is in the uttermost part of the rivers of Egypt, and +for the bee that is in the land of Assyria. + +7:19 And they shall come, and shall rest all of them in the desolate +valleys, and in the holes of the rocks, and upon all thorns, and upon +all bushes. + +7:20 In the same day shall the Lord shave with a razor that is hired, +namely, by them beyond the river, by the king of Assyria, the head, +and the hair of the feet: and it shall also consume the beard. + +7:21 And it shall come to pass in that day, that a man shall nourish a +young cow, and two sheep; 7:22 And it shall come to pass, for the +abundance of milk that they shall give he shall eat butter: for butter +and honey shall every one eat that is left in the land. + +7:23 And it shall come to pass in that day, that every place shall be, +where there were a thousand vines at a thousand silverlings, it shall +even be for briers and thorns. + +7:24 With arrows and with bows shall men come thither; because all the +land shall become briers and thorns. + +7:25 And on all hills that shall be digged with the mattock, there +shall not come thither the fear of briers and thorns: but it shall be +for the sending forth of oxen, and for the treading of lesser cattle. + +8:1 Moreover the LORD said unto me, Take thee a great roll, and write +in it with a man's pen concerning Mahershalalhashbaz. + +8:2 And I took unto me faithful witnesses to record, Uriah the priest, +and Zechariah the son of Jeberechiah. + +8:3 And I went unto the prophetess; and she conceived, and bare a son. + +Then said the LORD to me, Call his name Mahershalalhashbaz. + +8:4 For before the child shall have knowledge to cry, My father, and +my mother, the riches of Damascus and the spoil of Samaria shall be +taken away before the king of Assyria. + +8:5 The LORD spake also unto me again, saying, 8:6 Forasmuch as this +people refuseth the waters of Shiloah that go softly, and rejoice in +Rezin and Remaliah's son; 8:7 Now therefore, behold, the Lord bringeth +up upon them the waters of the river, strong and many, even the king +of Assyria, and all his glory: and he shall come up over all his +channels, and go over all his banks: 8:8 And he shall pass through +Judah; he shall overflow and go over, he shall reach even to the neck; +and the stretching out of his wings shall fill the breadth of thy +land, O Immanuel. + +8:9 Associate yourselves, O ye people, and ye shall be broken in +pieces; and give ear, all ye of far countries: gird yourselves, and ye +shall be broken in pieces; gird yourselves, and ye shall be broken in +pieces. + +8:10 Take counsel together, and it shall come to nought; speak the +word, and it shall not stand: for God is with us. + +8:11 For the LORD spake thus to me with a strong hand, and instructed +me that I should not walk in the way of this people, saying, 8:12 Say +ye not, A confederacy, to all them to whom this people shall say, A +confederacy; neither fear ye their fear, nor be afraid. + +8:13 Sanctify the LORD of hosts himself; and let him be your fear, and +let him be your dread. + +8:14 And he shall be for a sanctuary; but for a stone of stumbling and +for a rock of offence to both the houses of Israel, for a gin and for +a snare to the inhabitants of Jerusalem. + +8:15 And many among them shall stumble, and fall, and be broken, and +be snared, and be taken. + +8:16 Bind up the testimony, seal the law among my disciples. + +8:17 And I will wait upon the LORD, that hideth his face from the +house of Jacob, and I will look for him. + +8:18 Behold, I and the children whom the LORD hath given me are for +signs and for wonders in Israel from the LORD of hosts, which dwelleth +in mount Zion. + +8:19 And when they shall say unto you, Seek unto them that have +familiar spirits, and unto wizards that peep, and that mutter: should +not a people seek unto their God? for the living to the dead? 8:20 To +the law and to the testimony: if they speak not according to this +word, it is because there is no light in them. + +8:21 And they shall pass through it, hardly bestead and hungry: and it +shall come to pass, that when they shall be hungry, they shall fret +themselves, and curse their king and their God, and look upward. + +8:22 And they shall look unto the earth; and behold trouble and +darkness, dimness of anguish; and they shall be driven to darkness. + +9:1 Nevertheless the dimness shall not be such as was in her vexation, +when at the first he lightly afflicted the land of Zebulun and the +land of Naphtali, and afterward did more grievously afflict her by the +way of the sea, beyond Jordan, in Galilee of the nations. + +9:2 The people that walked in darkness have seen a great light: they +that dwell in the land of the shadow of death, upon them hath the +light shined. + +9:3 Thou hast multiplied the nation, and not increased the joy: they +joy before thee according to the joy in harvest, and as men rejoice +when they divide the spoil. + +9:4 For thou hast broken the yoke of his burden, and the staff of his +shoulder, the rod of his oppressor, as in the day of Midian. + +9:5 For every battle of the warrior is with confused noise, and +garments rolled in blood; but this shall be with burning and fuel of +fire. + +9:6 For unto us a child is born, unto us a son is given: and the +government shall be upon his shoulder: and his name shall be called +Wonderful, Counsellor, The mighty God, The everlasting Father, The +Prince of Peace. + +9:7 Of the increase of his government and peace there shall be no end, +upon the throne of David, and upon his kingdom, to order it, and to +establish it with judgment and with justice from henceforth even for +ever. The zeal of the LORD of hosts will perform this. + +9:8 The Lord sent a word into Jacob, and it hath lighted upon Israel. + +9:9 And all the people shall know, even Ephraim and the inhabitant of +Samaria, that say in the pride and stoutness of heart, 9:10 The bricks +are fallen down, but we will build with hewn stones: the sycomores are +cut down, but we will change them into cedars. + +9:11 Therefore the LORD shall set up the adversaries of Rezin against +him, and join his enemies together; 9:12 The Syrians before, and the +Philistines behind; and they shall devour Israel with open mouth. For +all this his anger is not turned away, but his hand is stretched out +still. + +9:13 For the people turneth not unto him that smiteth them, neither do +they seek the LORD of hosts. + +9:14 Therefore the LORD will cut off from Israel head and tail, branch +and rush, in one day. + +9:15 The ancient and honourable, he is the head; and the prophet that +teacheth lies, he is the tail. + +9:16 For the leaders of this people cause them to err; and they that +are led of them are destroyed. + +9:17 Therefore the LORD shall have no joy in their young men, neither +shall have mercy on their fatherless and widows: for every one is an +hypocrite and an evildoer, and every mouth speaketh folly. For all +this his anger is not turned away, but his hand is stretched out +still. + +9:18 For wickedness burneth as the fire: it shall devour the briers +and thorns, and shall kindle in the thickets of the forest, and they +shall mount up like the lifting up of smoke. + +9:19 Through the wrath of the LORD of hosts is the land darkened, and +the people shall be as the fuel of the fire: no man shall spare his +brother. + +9:20 And he shall snatch on the right hand, and be hungry; and he +shall eat on the left hand, and they shall not be satisfied: they +shall eat every man the flesh of his own arm: 9:21 Manasseh, Ephraim; +and Ephraim, Manasseh: and they together shall be against Judah. For +all this his anger is not turned away, but his hand is stretched out +still. + +10:1 Woe unto them that decree unrighteous decrees, and that write +grievousness which they have prescribed; 10:2 To turn aside the needy +from judgment, and to take away the right from the poor of my people, +that widows may be their prey, and that they may rob the fatherless! +10:3 And what will ye do in the day of visitation, and in the +desolation which shall come from far? to whom will ye flee for help? +and where will ye leave your glory? 10:4 Without me they shall bow +down under the prisoners, and they shall fall under the slain. For all +this his anger is not turned away, but his hand is stretched out +still. + +10:5 O Assyrian, the rod of mine anger, and the staff in their hand is +mine indignation. + +10:6 I will send him against an hypocritical nation, and against the +people of my wrath will I give him a charge, to take the spoil, and to +take the prey, and to tread them down like the mire of the streets. + +10:7 Howbeit he meaneth not so, neither doth his heart think so; but +it is in his heart to destroy and cut off nations not a few. + +10:8 For he saith, Are not my princes altogether kings? 10:9 Is not +Calno as Carchemish? is not Hamath as Arpad? is not Samaria as +Damascus? 10:10 As my hand hath found the kingdoms of the idols, and +whose graven images did excel them of Jerusalem and of Samaria; 10:11 +Shall I not, as I have done unto Samaria and her idols, so do to +Jerusalem and her idols? 10:12 Wherefore it shall come to pass, that +when the Lord hath performed his whole work upon mount Zion and on +Jerusalem, I will punish the fruit of the stout heart of the king of +Assyria, and the glory of his high looks. + +10:13 For he saith, By the strength of my hand I have done it, and by +my wisdom; for I am prudent: and I have removed the bounds of the +people, and have robbed their treasures, and I have put down the +inhabitants like a valiant man: 10:14 And my hand hath found as a nest +the riches of the people: and as one gathereth eggs that are left, +have I gathered all the earth; and there was none that moved the wing, +or opened the mouth, or peeped. + +10:15 Shall the axe boast itself against him that heweth therewith? or +shall the saw magnify itself against him that shaketh it? as if the +rod should shake itself against them that lift it up, or as if the +staff should lift up itself, as if it were no wood. + +10:16 Therefore shall the Lord, the Lord of hosts, send among his fat +ones leanness; and under his glory he shall kindle a burning like the +burning of a fire. + +10:17 And the light of Israel shall be for a fire, and his Holy One +for a flame: and it shall burn and devour his thorns and his briers in +one day; 10:18 And shall consume the glory of his forest, and of his +fruitful field, both soul and body: and they shall be as when a +standard-bearer fainteth. + +10:19 And the rest of the trees of his forest shall be few, that a +child may write them. + +10:20 And it shall come to pass in that day, that the remnant of +Israel, and such as are escaped of the house of Jacob, shall no more +again stay upon him that smote them; but shall stay upon the LORD, the +Holy One of Israel, in truth. + +10:21 The remnant shall return, even the remnant of Jacob, unto the +mighty God. + +10:22 For though thy people Israel be as the sand of the sea, yet a +remnant of them shall return: the consumption decreed shall overflow +with righteousness. + +10:23 For the Lord GOD of hosts shall make a consumption, even +determined, in the midst of all the land. + +10:24 Therefore thus saith the Lord GOD of hosts, O my people that +dwellest in Zion, be not afraid of the Assyrian: he shall smite thee +with a rod, and shall lift up his staff against thee, after the manner +of Egypt. + +10:25 For yet a very little while, and the indignation shall cease, +and mine anger in their destruction. + +10:26 And the LORD of hosts shall stir up a scourge for him according +to the slaughter of Midian at the rock of Oreb: and as his rod was +upon the sea, so shall he lift it up after the manner of Egypt. + +10:27 And it shall come to pass in that day, that his burden shall be +taken away from off thy shoulder, and his yoke from off thy neck, and +the yoke shall be destroyed because of the anointing. + +10:28 He is come to Aiath, he is passed to Migron; at Michmash he hath +laid up his carriages: 10:29 They are gone over the passage: they have +taken up their lodging at Geba; Ramah is afraid; Gibeah of Saul is +fled. + +10:30 Lift up thy voice, O daughter of Gallim: cause it to be heard +unto Laish, O poor Anathoth. + +10:31 Madmenah is removed; the inhabitants of Gebim gather themselves +to flee. + +10:32 As yet shall he remain at Nob that day: he shall shake his hand +against the mount of the daughter of Zion, the hill of Jerusalem. + +10:33 Behold, the Lord, the LORD of hosts, shall lop the bough with +terror: and the high ones of stature shall be hewn down, and the +haughty shall be humbled. + +10:34 And he shall cut down the thickets of the forest with iron, and +Lebanon shall fall by a mighty one. + +11:1 And there shall come forth a rod out of the stem of Jesse, and a +Branch shall grow out of his roots: 11:2 And the spirit of the LORD +shall rest upon him, the spirit of wisdom and understanding, the +spirit of counsel and might, the spirit of knowledge and of the fear +of the LORD; 11:3 And shall make him of quick understanding in the +fear of the LORD: and he shall not judge after the sight of his eyes, +neither reprove after the hearing of his ears: 11:4 But with +righteousness shall he judge the poor, and reprove with equity for the +meek of the earth: and he shall smite the earth: with the rod of his +mouth, and with the breath of his lips shall he slay the wicked. + +11:5 And righteousness shall be the girdle of his loins, and +faithfulness the girdle of his reins. + +11:6 The wolf also shall dwell with the lamb, and the leopard shall +lie down with the kid; and the calf and the young lion and the fatling +together; and a little child shall lead them. + +11:7 And the cow and the bear shall feed; their young ones shall lie +down together: and the lion shall eat straw like the ox. + +11:8 And the sucking child shall play on the hole of the asp, and the +weaned child shall put his hand on the cockatrice' den. + +11:9 They shall not hurt nor destroy in all my holy mountain: for the +earth shall be full of the knowledge of the LORD, as the waters cover +the sea. + +11:10 And in that day there shall be a root of Jesse, which shall +stand for an ensign of the people; to it shall the Gentiles seek: and +his rest shall be glorious. + +11:11 And it shall come to pass in that day, that the Lord shall set +his hand again the second time to recover the remnant of his people, +which shall be left, from Assyria, and from Egypt, and from Pathros, +and from Cush, and from Elam, and from Shinar, and from Hamath, and +from the islands of the sea. + +11:12 And he shall set up an ensign for the nations, and shall +assemble the outcasts of Israel, and gather together the dispersed of +Judah from the four corners of the earth. + +11:13 The envy also of Ephraim shall depart, and the adversaries of +Judah shall be cut off: Ephraim shall not envy Judah, and Judah shall +not vex Ephraim. + +11:14 But they shall fly upon the shoulders of the Philistines toward +the west; they shall spoil them of the east together: they shall lay +their hand upon Edom and Moab; and the children of Ammon shall obey +them. + +11:15 And the LORD shall utterly destroy the tongue of the Egyptian +sea; and with his mighty wind shall he shake his hand over the river, +and shall smite it in the seven streams, and make men go over dryshod. + +11:16 And there shall be an highway for the remnant of his people, +which shall be left, from Assyria; like as it was to Israel in the day +that he came up out of the land of Egypt. + +12:1 And in that day thou shalt say, O LORD, I will praise thee: +though thou wast angry with me, thine anger is turned away, and thou +comfortedst me. + +12:2 Behold, God is my salvation; I will trust, and not be afraid: for +the LORD JEHOVAH is my strength and my song; he also is become my +salvation. + +12:3 Therefore with joy shall ye draw water out of the wells of +salvation. + +12:4 And in that day shall ye say, Praise the LORD, call upon his +name, declare his doings among the people, make mention that his name +is exalted. + +12:5 Sing unto the LORD; for he hath done excellent things: this is +known in all the earth. + +12:6 Cry out and shout, thou inhabitant of Zion: for great is the Holy +One of Israel in the midst of thee. + +13:1 The burden of Babylon, which Isaiah the son of Amoz did see. + +13:2 Lift ye up a banner upon the high mountain, exalt the voice unto +them, shake the hand, that they may go into the gates of the nobles. + +13:3 I have commanded my sanctified ones, I have also called my mighty +ones for mine anger, even them that rejoice in my highness. + +13:4 The noise of a multitude in the mountains, like as of a great +people; a tumultuous noise of the kingdoms of nations gathered +together: the LORD of hosts mustereth the host of the battle. + +13:5 They come from a far country, from the end of heaven, even the +LORD, and the weapons of his indignation, to destroy the whole land. + +13:6 Howl ye; for the day of the LORD is at hand; it shall come as a +destruction from the Almighty. + +13:7 Therefore shall all hands be faint, and every man's heart shall +melt: 13:8 And they shall be afraid: pangs and sorrows shall take hold +of them; they shall be in pain as a woman that travaileth: they shall +be amazed one at another; their faces shall be as flames. + +13:9 Behold, the day of the LORD cometh, cruel both with wrath and +fierce anger, to lay the land desolate: and he shall destroy the +sinners thereof out of it. + +13:10 For the stars of heaven and the constellations thereof shall not +give their light: the sun shall be darkened in his going forth, and +the moon shall not cause her light to shine. + +13:11 And I will punish the world for their evil, and the wicked for +their iniquity; and I will cause the arrogancy of the proud to cease, +and will lay low the haughtiness of the terrible. + +13:12 I will make a man more precious than fine gold; even a man than +the golden wedge of Ophir. + +13:13 Therefore I will shake the heavens, and the earth shall remove +out of her place, in the wrath of the LORD of hosts, and in the day of +his fierce anger. + +13:14 And it shall be as the chased roe, and as a sheep that no man +taketh up: they shall every man turn to his own people, and flee every +one into his own land. + +13:15 Every one that is found shall be thrust through; and every one +that is joined unto them shall fall by the sword. + +13:16 Their children also shall be dashed to pieces before their eyes; +their houses shall be spoiled, and their wives ravished. + +13:17 Behold, I will stir up the Medes against them, which shall not +regard silver; and as for gold, they shall not delight in it. + +13:18 Their bows also shall dash the young men to pieces; and they +shall have no pity on the fruit of the womb; their eyes shall not +spare children. + +13:19 And Babylon, the glory of kingdoms, the beauty of the Chaldees' +excellency, shall be as when God overthrew Sodom and Gomorrah. + +13:20 It shall never be inhabited, neither shall it be dwelt in from +generation to generation: neither shall the Arabian pitch tent there; +neither shall the shepherds make their fold there. + +13:21 But wild beasts of the desert shall lie there; and their houses +shall be full of doleful creatures; and owls shall dwell there, and +satyrs shall dance there. + +13:22 And the wild beasts of the islands shall cry in their desolate +houses, and dragons in their pleasant palaces: and her time is near to +come, and her days shall not be prolonged. + +14:1 For the LORD will have mercy on Jacob, and will yet choose +Israel, and set them in their own land: and the strangers shall be +joined with them, and they shall cleave to the house of Jacob. + +14:2 And the people shall take them, and bring them to their place: +and the house of Israel shall possess them in the land of the LORD for +servants and handmaids: and they shall take them captives, whose +captives they were; and they shall rule over their oppressors. + +14:3 And it shall come to pass in the day that the LORD shall give +thee rest from thy sorrow, and from thy fear, and from the hard +bondage wherein thou wast made to serve, 14:4 That thou shalt take up +this proverb against the king of Babylon, and say, How hath the +oppressor ceased! the golden city ceased! 14:5 The LORD hath broken +the staff of the wicked, and the sceptre of the rulers. + +14:6 He who smote the people in wrath with a continual stroke, he that +ruled the nations in anger, is persecuted, and none hindereth. + +14:7 The whole earth is at rest, and is quiet: they break forth into +singing. + +14:8 Yea, the fir trees rejoice at thee, and the cedars of Lebanon, +saying, Since thou art laid down, no feller is come up against us. + +14:9 Hell from beneath is moved for thee to meet thee at thy coming: +it stirreth up the dead for thee, even all the chief ones of the +earth; it hath raised up from their thrones all the kings of the +nations. + +14:10 All they shall speak and say unto thee, Art thou also become +weak as we? art thou become like unto us? 14:11 Thy pomp is brought +down to the grave, and the noise of thy viols: the worm is spread +under thee, and the worms cover thee. + +14:12 How art thou fallen from heaven, O Lucifer, son of the morning! +how art thou cut down to the ground, which didst weaken the nations! +14:13 For thou hast said in thine heart, I will ascend into heaven, I +will exalt my throne above the stars of God: I will sit also upon the +mount of the congregation, in the sides of the north: 14:14 I will +ascend above the heights of the clouds; I will be like the most High. + +14:15 Yet thou shalt be brought down to hell, to the sides of the pit. + +14:16 They that see thee shall narrowly look upon thee, and consider +thee, saying, Is this the man that made the earth to tremble, that did +shake kingdoms; 14:17 That made the world as a wilderness, and +destroyed the cities thereof; that opened not the house of his +prisoners? 14:18 All the kings of the nations, even all of them, lie +in glory, every one in his own house. + +14:19 But thou art cast out of thy grave like an abominable branch, +and as the raiment of those that are slain, thrust through with a +sword, that go down to the stones of the pit; as a carcase trodden +under feet. + +14:20 Thou shalt not be joined with them in burial, because thou hast +destroyed thy land, and slain thy people: the seed of evildoers shall +never be renowned. + +14:21 Prepare slaughter for his children for the iniquity of their +fathers; that they do not rise, nor possess the land, nor fill the +face of the world with cities. + +14:22 For I will rise up against them, saith the LORD of hosts, and +cut off from Babylon the name, and remnant, and son, and nephew, saith +the LORD. + +14:23 I will also make it a possession for the bittern, and pools of +water: and I will sweep it with the besom of destruction, saith the +LORD of hosts. + +14:24 The LORD of hosts hath sworn, saying, Surely as I have thought, +so shall it come to pass; and as I have purposed, so shall it stand: +14:25 That I will break the Assyrian in my land, and upon my mountains +tread him under foot: then shall his yoke depart from off them, and +his burden depart from off their shoulders. + +14:26 This is the purpose that is purposed upon the whole earth: and +this is the hand that is stretched out upon all the nations. + +14:27 For the LORD of hosts hath purposed, and who shall disannul it? +and his hand is stretched out, and who shall turn it back? 14:28 In +the year that king Ahaz died was this burden. + +14:29 Rejoice not thou, whole Palestina, because the rod of him that +smote thee is broken: for out of the serpent's root shall come forth a +cockatrice, and his fruit shall be a fiery flying serpent. + +14:30 And the firstborn of the poor shall feed, and the needy shall +lie down in safety: and I will kill thy root with famine, and he shall +slay thy remnant. + +14:31 Howl, O gate; cry, O city; thou, whole Palestina, art dissolved: +for there shall come from the north a smoke, and none shall be alone +in his appointed times. + +14:32 What shall one then answer the messengers of the nation? That +the LORD hath founded Zion, and the poor of his people shall trust in +it. + +15:1 The burden of Moab. Because in the night Ar of Moab is laid +waste, and brought to silence; because in the night Kir of Moab is +laid waste, and brought to silence; 15:2 He is gone up to Bajith, and +to Dibon, the high places, to weep: Moab shall howl over Nebo, and +over Medeba: on all their heads shall be baldness, and every beard cut +off. + +15:3 In their streets they shall gird themselves with sackcloth: on +the tops of their houses, and in their streets, every one shall howl, +weeping abundantly. + +15:4 And Heshbon shall cry, and Elealeh: their voice shall be heard +even unto Jahaz: therefore the armed soldiers of Moab shall cry out; +his life shall be grievous unto him. + +15:5 My heart shall cry out for Moab; his fugitives shall flee unto +Zoar, an heifer of three years old: for by the mounting up of Luhith +with weeping shall they go it up; for in the way of Horonaim they +shall raise up a cry of destruction. + +15:6 For the waters of Nimrim shall be desolate: for the hay is +withered away, the grass faileth, there is no green thing. + +15:7 Therefore the abundance they have gotten, and that which they +have laid up, shall they carry away to the brook of the willows. + +15:8 For the cry is gone round about the borders of Moab; the howling +thereof unto Eglaim, and the howling thereof unto Beerelim. + +15:9 For the waters of Dimon shall be full of blood: for I will bring +more upon Dimon, lions upon him that escapeth of Moab, and upon the +remnant of the land. + +16:1 Send ye the lamb to the ruler of the land from Sela to the +wilderness, unto the mount of the daughter of Zion. + +16:2 For it shall be, that, as a wandering bird cast out of the nest, +so the daughters of Moab shall be at the fords of Arnon. + +16:3 Take counsel, execute judgment; make thy shadow as the night in +the midst of the noonday; hide the outcasts; bewray not him that +wandereth. + +16:4 Let mine outcasts dwell with thee, Moab; be thou a covert to them +from the face of the spoiler: for the extortioner is at an end, the +spoiler ceaseth, the oppressors are consumed out of the land. + +16:5 And in mercy shall the throne be established: and he shall sit +upon it in truth in the tabernacle of David, judging, and seeking +judgment, and hasting righteousness. + +16:6 We have heard of the pride of Moab; he is very proud: even of his +haughtiness, and his pride, and his wrath: but his lies shall not be +so. + +16:7 Therefore shall Moab howl for Moab, every one shall howl: for the +foundations of Kirhareseth shall ye mourn; surely they are stricken. + +16:8 For the fields of Heshbon languish, and the vine of Sibmah: the +lords of the heathen have broken down the principal plants thereof, +they are come even unto Jazer, they wandered through the wilderness: +her branches are stretched out, they are gone over the sea. + +16:9 Therefore I will bewail with the weeping of Jazer the vine of +Sibmah: I will water thee with my tears, O Heshbon, and Elealeh: for +the shouting for thy summer fruits and for thy harvest is fallen. + +16:10 And gladness is taken away, and joy out of the plentiful field; +and in the vineyards there shall be no singing, neither shall there be +shouting: the treaders shall tread out no wine in their presses; I +have made their vintage shouting to cease. + +16:11 Wherefore my bowels shall sound like an harp for Moab, and mine +inward parts for Kirharesh. + +16:12 And it shall come to pass, when it is seen that Moab is weary on +the high place, that he shall come to his sanctuary to pray; but he +shall not prevail. + +16:13 This is the word that the LORD hath spoken concerning Moab since +that time. + +16:14 But now the LORD hath spoken, saying, Within three years, as the +years of an hireling, and the glory of Moab shall be contemned, with +all that great multitude; and the remnant shall be very small and +feeble. + +17:1 The burden of Damascus. Behold, Damascus is taken away from being +a city, and it shall be a ruinous heap. + +17:2 The cities of Aroer are forsaken: they shall be for flocks, which +shall lie down, and none shall make them afraid. + +17:3 The fortress also shall cease from Ephraim, and the kingdom from +Damascus, and the remnant of Syria: they shall be as the glory of the +children of Israel, saith the LORD of hosts. + +17:4 And in that day it shall come to pass, that the glory of Jacob +shall be made thin, and the fatness of his flesh shall wax lean. + +17:5 And it shall be as when the harvestman gathereth the corn, and +reapeth the ears with his arm; and it shall be as he that gathereth +ears in the valley of Rephaim. + +17:6 Yet gleaning grapes shall be left in it, as the shaking of an +olive tree, two or three berries in the top of the uppermost bough, +four or five in the outmost fruitful branches thereof, saith the LORD +God of Israel. + +17:7 At that day shall a man look to his Maker, and his eyes shall +have respect to the Holy One of Israel. + +17:8 And he shall not look to the altars, the work of his hands, +neither shall respect that which his fingers have made, either the +groves, or the images. + +17:9 In that day shall his strong cities be as a forsaken bough, and +an uppermost branch, which they left because of the children of +Israel: and there shall be desolation. + +17:10 Because thou hast forgotten the God of thy salvation, and hast +not been mindful of the rock of thy strength, therefore shalt thou +plant pleasant plants, and shalt set it with strange slips: 17:11 In +the day shalt thou make thy plant to grow, and in the morning shalt +thou make thy seed to flourish: but the harvest shall be a heap in the +day of grief and of desperate sorrow. + +17:12 Woe to the multitude of many people, which make a noise like the +noise of the seas; and to the rushing of nations, that make a rushing +like the rushing of mighty waters! 17:13 The nations shall rush like +the rushing of many waters: but God shall rebuke them, and they shall +flee far off, and shall be chased as the chaff of the mountains before +the wind, and like a rolling thing before the whirlwind. + +17:14 And behold at eveningtide trouble; and before the morning he is +not. + +This is the portion of them that spoil us, and the lot of them that +rob us. + +18:1 Woe to the land shadowing with wings, which is beyond the rivers +of Ethiopia: 18:2 That sendeth ambassadors by the sea, even in vessels +of bulrushes upon the waters, saying, Go, ye swift messengers, to a +nation scattered and peeled, to a people terrible from their beginning +hitherto; a nation meted out and trodden down, whose land the rivers +have spoiled! 18:3 All ye inhabitants of the world, and dwellers on +the earth, see ye, when he lifteth up an ensign on the mountains; and +when he bloweth a trumpet, hear ye. + +18:4 For so the LORD said unto me, I will take my rest, and I will +consider in my dwelling place like a clear heat upon herbs, and like a +cloud of dew in the heat of harvest. + +18:5 For afore the harvest, when the bud is perfect, and the sour +grape is ripening in the flower, he shall both cut off the sprigs with +pruning hooks, and take away and cut down the branches. + +18:6 They shall be left together unto the fowls of the mountains, and +to the beasts of the earth: and the fowls shall summer upon them, and +all the beasts of the earth shall winter upon them. + +18:7 In that time shall the present be brought unto the LORD of hosts +of a people scattered and peeled, and from a people terrible from +their beginning hitherto; a nation meted out and trodden under foot, +whose land the rivers have spoiled, to the place of the name of the +LORD of hosts, the mount Zion. + +19:1 The burden of Egypt. Behold, the LORD rideth upon a swift cloud, +and shall come into Egypt: and the idols of Egypt shall be moved at +his presence, and the heart of Egypt shall melt in the midst of it. + +19:2 And I will set the Egyptians against the Egyptians: and they +shall fight every one against his brother, and every one against his +neighbour; city against city, and kingdom against kingdom. + +19:3 And the spirit of Egypt shall fail in the midst thereof; and I +will destroy the counsel thereof: and they shall seek to the idols, +and to the charmers, and to them that have familiar spirits, and to +the wizards. + +19:4 And the Egyptians will I give over into the hand of a cruel lord; +and a fierce king shall rule over them, saith the Lord, the LORD of +hosts. + +19:5 And the waters shall fail from the sea, and the river shall be +wasted and dried up. + +19:6 And they shall turn the rivers far away; and the brooks of +defence shall be emptied and dried up: the reeds and flags shall +wither. + +19:7 The paper reeds by the brooks, by the mouth of the brooks, and +every thing sown by the brooks, shall wither, be driven away, and be +no more. + +19:8 The fishers also shall mourn, and all they that cast angle into +the brooks shall lament, and they that spread nets upon the waters +shall languish. + +19:9 Moreover they that work in fine flax, and they that weave +networks, shall be confounded. + +19:10 And they shall be broken in the purposes thereof, all that make +sluices and ponds for fish. + +19:11 Surely the princes of Zoan are fools, the counsel of the wise +counsellors of Pharaoh is become brutish: how say ye unto Pharaoh, I +am the son of the wise, the son of ancient kings? 19:12 Where are +they? where are thy wise men? and let them tell thee now, and let them +know what the LORD of hosts hath purposed upon Egypt. + +19:13 The princes of Zoan are become fools, the princes of Noph are +deceived; they have also seduced Egypt, even they that are the stay of +the tribes thereof. + +19:14 The LORD hath mingled a perverse spirit in the midst thereof: +and they have caused Egypt to err in every work thereof, as a drunken +man staggereth in his vomit. + +19:15 Neither shall there be any work for Egypt, which the head or +tail, branch or rush, may do. + +19:16 In that day shall Egypt be like unto women: and it shall be +afraid and fear because of the shaking of the hand of the LORD of +hosts, which he shaketh over it. + +19:17 And the land of Judah shall be a terror unto Egypt, every one +that maketh mention thereof shall be afraid in himself, because of the +counsel of the LORD of hosts, which he hath determined against it. + +19:18 In that day shall five cities in the land of Egypt speak the +language of Canaan, and swear to the LORD of hosts; one shall be +called, The city of destruction. + +19:19 In that day shall there be an altar to the LORD in the midst of +the land of Egypt, and a pillar at the border thereof to the LORD. + +19:20 And it shall be for a sign and for a witness unto the LORD of +hosts in the land of Egypt: for they shall cry unto the LORD because +of the oppressors, and he shall send them a saviour, and a great one, +and he shall deliver them. + +19:21 And the LORD shall be known to Egypt, and the Egyptians shall +know the LORD in that day, and shall do sacrifice and oblation; yea, +they shall vow a vow unto the LORD, and perform it. + +19:22 And the LORD shall smite Egypt: he shall smite and heal it: and +they shall return even to the LORD, and he shall be intreated of them, +and shall heal them. + +19:23 In that day shall there be a highway out of Egypt to Assyria, +and the Assyrian shall come into Egypt, and the Egyptian into Assyria, +and the Egyptians shall serve with the Assyrians. + +19:24 In that day shall Israel be the third with Egypt and with +Assyria, even a blessing in the midst of the land: 19:25 Whom the LORD +of hosts shall bless, saying, Blessed be Egypt my people, and Assyria +the work of my hands, and Israel mine inheritance. + +20:1 In the year that Tartan came unto Ashdod, (when Sargon the king +of Assyria sent him,) and fought against Ashdod, and took it; 20:2 At +the same time spake the LORD by Isaiah the son of Amoz, saying, Go and +loose the sackcloth from off thy loins, and put off thy shoe from thy +foot. And he did so, walking naked and barefoot. + +20:3 And the LORD said, Like as my servant Isaiah hath walked naked +and barefoot three years for a sign and wonder upon Egypt and upon +Ethiopia; 20:4 So shall the king of Assyria lead away the Egyptians +prisoners, and the Ethiopians captives, young and old, naked and +barefoot, even with their buttocks uncovered, to the shame of Egypt. + +20:5 And they shall be afraid and ashamed of Ethiopia their +expectation, and of Egypt their glory. + +20:6 And the inhabitant of this isle shall say in that day, Behold, +such is our expectation, whither we flee for help to be delivered from +the king of Assyria: and how shall we escape? 21:1 The burden of the +desert of the sea. As whirlwinds in the south pass through; so it +cometh from the desert, from a terrible land. + +21:2 A grievous vision is declared unto me; the treacherous dealer +dealeth treacherously, and the spoiler spoileth. Go up, O Elam: +besiege, O Media; all the sighing thereof have I made to cease. + +21:3 Therefore are my loins filled with pain: pangs have taken hold +upon me, as the pangs of a woman that travaileth: I was bowed down at +the hearing of it; I was dismayed at the seeing of it. + +21:4 My heart panted, fearfulness affrighted me: the night of my +pleasure hath he turned into fear unto me. + +21:5 Prepare the table, watch in the watchtower, eat, drink: arise, ye +princes, and anoint the shield. + +21:6 For thus hath the LORD said unto me, Go, set a watchman, let him +declare what he seeth. + +21:7 And he saw a chariot with a couple of horsemen, a chariot of +asses, and a chariot of camels; and he hearkened diligently with much +heed: 21:8 And he cried, A lion: My lord, I stand continually upon the +watchtower in the daytime, and I am set in my ward whole nights: 21:9 +And, behold, here cometh a chariot of men, with a couple of horsemen. + +And he answered and said, Babylon is fallen, is fallen; and all the +graven images of her gods he hath broken unto the ground. + +21:10 O my threshing, and the corn of my floor: that which I have +heard of the LORD of hosts, the God of Israel, have I declared unto +you. + +21:11 The burden of Dumah. He calleth to me out of Seir, Watchman, +what of the night? Watchman, what of the night? 21:12 The watchman +said, The morning cometh, and also the night: if ye will enquire, +enquire ye: return, come. + +21:13 The burden upon Arabia. In the forest in Arabia shall ye lodge, +O ye travelling companies of Dedanim. + +21:14 The inhabitants of the land of Tema brought water to him that +was thirsty, they prevented with their bread him that fled. + +21:15 For they fled from the swords, from the drawn sword, and from +the bent bow, and from the grievousness of war. + +21:16 For thus hath the LORD said unto me, Within a year, according to +the years of an hireling, and all the glory of Kedar shall fail: 21:17 +And the residue of the number of archers, the mighty men of the +children of Kedar, shall be diminished: for the LORD God of Israel +hath spoken it. + +22:1 The burden of the valley of vision. What aileth thee now, that +thou art wholly gone up to the housetops? 22:2 Thou that art full of +stirs, a tumultuous city, joyous city: thy slain men are not slain +with the sword, nor dead in battle. + +22:3 All thy rulers are fled together, they are bound by the archers: +all that are found in thee are bound together, which have fled from +far. + +22:4 Therefore said I, Look away from me; I will weep bitterly, labour +not to comfort me, because of the spoiling of the daughter of my +people. + +22:5 For it is a day of trouble, and of treading down, and of +perplexity by the Lord GOD of hosts in the valley of vision, breaking +down the walls, and of crying to the mountains. + +22:6 And Elam bare the quiver with chariots of men and horsemen, and +Kir uncovered the shield. + +22:7 And it shall come to pass, that thy choicest valleys shall be +full of chariots, and the horsemen shall set themselves in array at +the gate. + +22:8 And he discovered the covering of Judah, and thou didst look in +that day to the armour of the house of the forest. + +22:9 Ye have seen also the breaches of the city of David, that they +are many: and ye gathered together the waters of the lower pool. + +22:10 And ye have numbered the houses of Jerusalem, and the houses +have ye broken down to fortify the wall. + +22:11 Ye made also a ditch between the two walls for the water of the +old pool: but ye have not looked unto the maker thereof, neither had +respect unto him that fashioned it long ago. + +22:12 And in that day did the Lord GOD of hosts call to weeping, and +to mourning, and to baldness, and to girding with sackcloth: 22:13 And +behold joy and gladness, slaying oxen, and killing sheep, eating +flesh, and drinking wine: let us eat and drink; for to morrow we shall +die. + +22:14 And it was revealed in mine ears by the LORD of hosts, Surely +this iniquity shall not be purged from you till ye die, saith the Lord +GOD of hosts. + +22:15 Thus saith the Lord GOD of hosts, Go, get thee unto this +treasurer, even unto Shebna, which is over the house, and say, 22:16 +What hast thou here? and whom hast thou here, that thou hast hewed +thee out a sepulchre here, as he that heweth him out a sepulchre on +high, and that graveth an habitation for himself in a rock? 22:17 +Behold, the LORD will carry thee away with a mighty captivity, and +will surely cover thee. + +22:18 He will surely violently turn and toss thee like a ball into a +large country: there shalt thou die, and there the chariots of thy +glory shall be the shame of thy lord's house. + +22:19 And I will drive thee from thy station, and from thy state shall +he pull thee down. + +22:20 And it shall come to pass in that day, that I will call my +servant Eliakim the son of Hilkiah: 22:21 And I will clothe him with +thy robe, and strengthen him with thy girdle, and I will commit thy +government into his hand: and he shall be a father to the inhabitants +of Jerusalem, and to the house of Judah. + +22:22 And the key of the house of David will I lay upon his shoulder; +so he shall open, and none shall shut; and he shall shut, and none +shall open. + +22:23 And I will fasten him as a nail in a sure place; and he shall be +for a glorious throne to his father's house. + +22:24 And they shall hang upon him all the glory of his father's +house, the offspring and the issue, all vessels of small quantity, +from the vessels of cups, even to all the vessels of flagons. + +22:25 In that day, saith the LORD of hosts, shall the nail that is +fastened in the sure place be removed, and be cut down, and fall; and +the burden that was upon it shall be cut off: for the LORD hath spoken +it. + +23:1 The burden of Tyre. Howl, ye ships of Tarshish; for it is laid +waste, so that there is no house, no entering in: from the land of +Chittim it is revealed to them. + +23:2 Be still, ye inhabitants of the isle; thou whom the merchants of +Zidon, that pass over the sea, have replenished. + +23:3 And by great waters the seed of Sihor, the harvest of the river, +is her revenue; and she is a mart of nations. + +23:4 Be thou ashamed, O Zidon: for the sea hath spoken, even the +strength of the sea, saying, I travail not, nor bring forth children, +neither do I nourish up young men, nor bring up virgins. + +23:5 As at the report concerning Egypt, so shall they be sorely pained +at the report of Tyre. + +23:6 Pass ye over to Tarshish; howl, ye inhabitants of the isle. + +23:7 Is this your joyous city, whose antiquity is of ancient days? her +own feet shall carry her afar off to sojourn. + +23:8 Who hath taken this counsel against Tyre, the crowning city, +whose merchants are princes, whose traffickers are the honourable of +the earth? 23:9 The LORD of hosts hath purposed it, to stain the +pride of all glory, and to bring into contempt all the honourable of +the earth. + +23:10 Pass through thy land as a river, O daughter of Tarshish: there +is no more strength. + +23:11 He stretched out his hand over the sea, he shook the kingdoms: +the LORD hath given a commandment against the merchant city, to +destroy the strong holds thereof. + +23:12 And he said, Thou shalt no more rejoice, O thou oppressed +virgin, daughter of Zidon: arise, pass over to Chittim; there also +shalt thou have no rest. + +23:13 Behold the land of the Chaldeans; this people was not, till the +Assyrian founded it for them that dwell in the wilderness: they set up +the towers thereof, they raised up the palaces thereof; and he brought +it to ruin. + +23:14 Howl, ye ships of Tarshish: for your strength is laid waste. + +23:15 And it shall come to pass in that day, that Tyre shall be +forgotten seventy years, according to the days of one king: after the +end of seventy years shall Tyre sing as an harlot. + +23:16 Take an harp, go about the city, thou harlot that hast been +forgotten; make sweet melody, sing many songs, that thou mayest be +remembered. + +23:17 And it shall come to pass after the end of seventy years, that +the LORD will visit Tyre, and she shall turn to her hire, and shall +commit fornication with all the kingdoms of the world upon the face of +the earth. + +23:18 And her merchandise and her hire shall be holiness to the LORD: +it shall not be treasured nor laid up; for her merchandise shall be +for them that dwell before the LORD, to eat sufficiently, and for +durable clothing. + +24:1 Behold, the LORD maketh the earth empty, and maketh it waste, and +turneth it upside down, and scattereth abroad the inhabitants thereof. + +24:2 And it shall be, as with the people, so with the priest; as with +the servant, so with his master; as with the maid, so with her +mistress; as with the buyer, so with the seller; as with the lender, +so with the borrower; as with the taker of usury, so with the giver of +usury to him. + +24:3 The land shall be utterly emptied, and utterly spoiled: for the +LORD hath spoken this word. + +24:4 The earth mourneth and fadeth away, the world languisheth and +fadeth away, the haughty people of the earth do languish. + +24:5 The earth also is defiled under the inhabitants thereof; because +they have transgressed the laws, changed the ordinance, broken the +everlasting covenant. + +24:6 Therefore hath the curse devoured the earth, and they that dwell +therein are desolate: therefore the inhabitants of the earth are +burned, and few men left. + +24:7 The new wine mourneth, the vine languisheth, all the merryhearted +do sigh. + +24:8 The mirth of tabrets ceaseth, the noise of them that rejoice +endeth, the joy of the harp ceaseth. + +24:9 They shall not drink wine with a song; strong drink shall be +bitter to them that drink it. + +24:10 The city of confusion is broken down: every house is shut up, +that no man may come in. + +24:11 There is a crying for wine in the streets; all joy is darkened, +the mirth of the land is gone. + +24:12 In the city is left desolation, and the gate is smitten with +destruction. + +24:13 When thus it shall be in the midst of the land among the people, +there shall be as the shaking of an olive tree, and as the gleaning +grapes when the vintage is done. + +24:14 They shall lift up their voice, they shall sing for the majesty +of the LORD, they shall cry aloud from the sea. + +24:15 Wherefore glorify ye the LORD in the fires, even the name of the +LORD God of Israel in the isles of the sea. + +24:16 From the uttermost part of the earth have we heard songs, even +glory to the righteous. But I said, My leanness, my leanness, woe unto +me! the treacherous dealers have dealt treacherously; yea, the +treacherous dealers have dealt very treacherously. + +24:17 Fear, and the pit, and the snare, are upon thee, O inhabitant of +the earth. + +24:18 And it shall come to pass, that he who fleeth from the noise of +the fear shall fall into the pit; and he that cometh up out of the +midst of the pit shall be taken in the snare: for the windows from on +high are open, and the foundations of the earth do shake. + +24:19 The earth is utterly broken down, the earth is clean dissolved, +the earth is moved exceedingly. + +24:20 The earth shall reel to and fro like a drunkard, and shall be +removed like a cottage; and the transgression thereof shall be heavy +upon it; and it shall fall, and not rise again. + +24:21 And it shall come to pass in that day, that the LORD shall +punish the host of the high ones that are on high, and the kings of +the earth upon the earth. + +24:22 And they shall be gathered together, as prisoners are gathered +in the pit, and shall be shut up in the prison, and after many days +shall they be visited. + +24:23 Then the moon shall be confounded, and the sun ashamed, when the +LORD of hosts shall reign in mount Zion, and in Jerusalem, and before +his ancients gloriously. + +25:1 O Lord, thou art my God; I will exalt thee, I will praise thy +name; for thou hast done wonderful things; thy counsels of old are +faithfulness and truth. + +25:2 For thou hast made of a city an heap; of a defenced city a ruin: +a palace of strangers to be no city; it shall never be built. + +25:3 Therefore shall the strong people glorify thee, the city of the +terrible nations shall fear thee. + +25:4 For thou hast been a strength to the poor, a strength to the +needy in his distress, a refuge from the storm, a shadow from the +heat, when the blast of the terrible ones is as a storm against the +wall. + +25:5 Thou shalt bring down the noise of strangers, as the heat in a +dry place; even the heat with the shadow of a cloud: the branch of the +terrible ones shall be brought low. + +25:6 And in this mountain shall the LORD of hosts make unto all people +a feast of fat things, a feast of wines on the lees, of fat things +full of marrow, of wines on the lees well refined. + +25:7 And he will destroy in this mountain the face of the covering +cast over all people, and the vail that is spread over all nations. + +25:8 He will swallow up death in victory; and the Lord GOD will wipe +away tears from off all faces; and the rebuke of his people shall he +take away from off all the earth: for the LORD hath spoken it. + +25:9 And it shall be said in that day, Lo, this is our God; we have +waited for him, and he will save us: this is the LORD; we have waited +for him, we will be glad and rejoice in his salvation. + +25:10 For in this mountain shall the hand of the LORD rest, and Moab +shall be trodden down under him, even as straw is trodden down for the +dunghill. + +25:11 And he shall spread forth his hands in the midst of them, as he +that swimmeth spreadeth forth his hands to swim: and he shall bring +down their pride together with the spoils of their hands. + +25:12 And the fortress of the high fort of thy walls shall he bring +down, lay low, and bring to the ground, even to the dust. + +26:1 In that day shall this song be sung in the land of Judah; We have +a strong city; salvation will God appoint for walls and bulwarks. + +26:2 Open ye the gates, that the righteous nation which keepeth the +truth may enter in. + +26:3 Thou wilt keep him in perfect peace, whose mind is stayed on +thee: because he trusteth in thee. + +26:4 Trust ye in the LORD for ever: for in the LORD JEHOVAH is +everlasting strength: 26:5 For he bringeth down them that dwell on +high; the lofty city, he layeth it low; he layeth it low, even to the +ground; he bringeth it even to the dust. + +26:6 The foot shall tread it down, even the feet of the poor, and the +steps of the needy. + +26:7 The way of the just is uprightness: thou, most upright, dost +weigh the path of the just. + +26:8 Yea, in the way of thy judgments, O LORD, have we waited for +thee; the desire of our soul is to thy name, and to the remembrance of +thee. + +26:9 With my soul have I desired thee in the night; yea, with my +spirit within me will I seek thee early: for when thy judgments are in +the earth, the inhabitants of the world will learn righteousness. + +26:10 Let favour be shewed to the wicked, yet will he not learn +righteousness: in the land of uprightness will he deal unjustly, and +will not behold the majesty of the LORD. + +26:11 LORD, when thy hand is lifted up, they will not see: but they +shall see, and be ashamed for their envy at the people; yea, the fire +of thine enemies shall devour them. + +26:12 LORD, thou wilt ordain peace for us: for thou also hast wrought +all our works in us. + +26:13 O LORD our God, other lords beside thee have had dominion over +us: but by thee only will we make mention of thy name. + +26:14 They are dead, they shall not live; they are deceased, they +shall not rise: therefore hast thou visited and destroyed them, and +made all their memory to perish. + +26:15 Thou hast increased the nation, O LORD, thou hast increased the +nation: thou art glorified: thou hadst removed it far unto all the +ends of the earth. + +26:16 LORD, in trouble have they visited thee, they poured out a +prayer when thy chastening was upon them. + +26:17 Like as a woman with child, that draweth near the time of her +delivery, is in pain, and crieth out in her pangs; so have we been in +thy sight, O LORD. + +26:18 We have been with child, we have been in pain, we have as it +were brought forth wind; we have not wrought any deliverance in the +earth; neither have the inhabitants of the world fallen. + +26:19 Thy dead men shall live, together with my dead body shall they +arise. Awake and sing, ye that dwell in dust: for thy dew is as the +dew of herbs, and the earth shall cast out the dead. + +26:20 Come, my people, enter thou into thy chambers, and shut thy +doors about thee: hide thyself as it were for a little moment, until +the indignation be overpast. + +26:21 For, behold, the LORD cometh out of his place to punish the +inhabitants of the earth for their iniquity: the earth also shall +disclose her blood, and shall no more cover her slain. + +27:1 In that day the LORD with his sore and great and strong sword +shall punish leviathan the piercing serpent, even leviathan that +crooked serpent; and he shall slay the dragon that is in the sea. + +27:2 In that day sing ye unto her, A vineyard of red wine. + +27:3 I the LORD do keep it; I will water it every moment: lest any +hurt it, I will keep it night and day. + +27:4 Fury is not in me: who would set the briers and thorns against me +in battle? I would go through them, I would burn them together. + +27:5 Or let him take hold of my strength, that he may make peace with +me; and he shall make peace with me. + +27:6 He shall cause them that come of Jacob to take root: Israel shall +blossom and bud, and fill the face of the world with fruit. + +27:7 Hath he smitten him, as he smote those that smote him? or is he +slain according to the slaughter of them that are slain by him? 27:8 +In measure, when it shooteth forth, thou wilt debate with it: he +stayeth his rough wind in the day of the east wind. + +27:9 By this therefore shall the iniquity of Jacob be purged; and this +is all the fruit to take away his sin; when he maketh all the stones +of the altar as chalkstones that are beaten in sunder, the groves and +images shall not stand up. + +27:10 Yet the defenced city shall be desolate, and the habitation +forsaken, and left like a wilderness: there shall the calf feed, and +there shall he lie down, and consume the branches thereof. + +27:11 When the boughs thereof are withered, they shall be broken off: +the women come, and set them on fire: for it is a people of no +understanding: therefore he that made them will not have mercy on +them, and he that formed them will shew them no favour. + +27:12 And it shall come to pass in that day, that the LORD shall beat +off from the channel of the river unto the stream of Egypt, and ye +shall be gathered one by one, O ye children of Israel. + +27:13 And it shall come to pass in that day, that the great trumpet +shall be blown, and they shall come which were ready to perish in the +land of Assyria, and the outcasts in the land of Egypt, and shall +worship the LORD in the holy mount at Jerusalem. + +28:1 Woe to the crown of pride, to the drunkards of Ephraim, whose +glorious beauty is a fading flower, which are on the head of the fat +valleys of them that are overcome with wine! 28:2 Behold, the Lord +hath a mighty and strong one, which as a tempest of hail and a +destroying storm, as a flood of mighty waters overflowing, shall cast +down to the earth with the hand. + +28:3 The crown of pride, the drunkards of Ephraim, shall be trodden +under feet: 28:4 And the glorious beauty, which is on the head of the +fat valley, shall be a fading flower, and as the hasty fruit before +the summer; which when he that looketh upon it seeth, while it is yet +in his hand he eateth it up. + +28:5 In that day shall the LORD of hosts be for a crown of glory, and +for a diadem of beauty, unto the residue of his people, 28:6 And for a +spirit of judgment to him that sitteth in judgment, and for strength +to them that turn the battle to the gate. + +28:7 But they also have erred through wine, and through strong drink +are out of the way; the priest and the prophet have erred through +strong drink, they are swallowed up of wine, they are out of the way +through strong drink; they err in vision, they stumble in judgment. + +28:8 For all tables are full of vomit and filthiness, so that there is +no place clean. + +28:9 Whom shall he teach knowledge? and whom shall he make to +understand doctrine? them that are weaned from the milk, and drawn +from the breasts. + +28:10 For precept must be upon precept, precept upon precept; line +upon line, line upon line; here a little, and there a little: 28:11 +For with stammering lips and another tongue will he speak to this +people. + +28:12 To whom he said, This is the rest wherewith ye may cause the +weary to rest; and this is the refreshing: yet they would not hear. + +28:13 But the word of the LORD was unto them precept upon precept, +precept upon precept; line upon line, line upon line; here a little, +and there a little; that they might go, and fall backward, and be +broken, and snared, and taken. + +28:14 Wherefore hear the word of the LORD, ye scornful men, that rule +this people which is in Jerusalem. + +28:15 Because ye have said, We have made a covenant with death, and +with hell are we at agreement; when the overflowing scourge shall pass +through, it shall not come unto us: for we have made lies our refuge, +and under falsehood have we hid ourselves: 28:16 Therefore thus saith +the Lord GOD, Behold, I lay in Zion for a foundation a stone, a tried +stone, a precious corner stone, a sure foundation: he that believeth +shall not make haste. + +28:17 Judgment also will I lay to the line, and righteousness to the +plummet: and the hail shall sweep away the refuge of lies, and the +waters shall overflow the hiding place. + +28:18 And your covenant with death shall be disannulled, and your +agreement with hell shall not stand; when the overflowing scourge +shall pass through, then ye shall be trodden down by it. + +28:19 From the time that it goeth forth it shall take you: for morning +by morning shall it pass over, by day and by night: and it shall be a +vexation only to understand the report. + +28:20 For the bed is shorter than that a man can stretch himself on +it: and the covering narrower than that he can wrap himself in it. + +28:21 For the LORD shall rise up as in mount Perazim, he shall be +wroth as in the valley of Gibeon, that he may do his work, his strange +work; and bring to pass his act, his strange act. + +28:22 Now therefore be ye not mockers, lest your bands be made strong: +for I have heard from the Lord GOD of hosts a consumption, even +determined upon the whole earth. + +28:23 Give ye ear, and hear my voice; hearken, and hear my speech. + +28:24 Doth the plowman plow all day to sow? doth he open and break the +clods of his ground? 28:25 When he hath made plain the face thereof, +doth he not cast abroad the fitches, and scatter the cummin, and cast +in the principal wheat and the appointed barley and the rie in their +place? 28:26 For his God doth instruct him to discretion, and doth +teach him. + +28:27 For the fitches are not threshed with a threshing instrument, +neither is a cart wheel turned about upon the cummin; but the fitches +are beaten out with a staff, and the cummin with a rod. + +28:28 Bread corn is bruised; because he will not ever be threshing it, +nor break it with the wheel of his cart, nor bruise it with his +horsemen. + +28:29 This also cometh forth from the LORD of hosts, which is +wonderful in counsel, and excellent in working. + +29:1 Woe to Ariel, to Ariel, the city where David dwelt! add ye year +to year; let them kill sacrifices. + +29:2 Yet I will distress Ariel, and there shall be heaviness and +sorrow: and it shall be unto me as Ariel. + +29:3 And I will camp against thee round about, and will lay siege +against thee with a mount, and I will raise forts against thee. + +29:4 And thou shalt be brought down, and shalt speak out of the +ground, and thy speech shall be low out of the dust, and thy voice +shall be, as of one that hath a familiar spirit, out of the ground, +and thy speech shall whisper out of the dust. + +29:5 Moreover the multitude of thy strangers shall be like small dust, +and the multitude of the terrible ones shall be as chaff that passeth +away: yea, it shall be at an instant suddenly. + +29:6 Thou shalt be visited of the LORD of hosts with thunder, and with +earthquake, and great noise, with storm and tempest, and the flame of +devouring fire. + +29:7 And the multitude of all the nations that fight against Ariel, +even all that fight against her and her munition, and that distress +her, shall be as a dream of a night vision. + +29:8 It shall even be as when an hungry man dreameth, and, behold, he +eateth; but he awaketh, and his soul is empty: or as when a thirsty +man dreameth, and, behold, he drinketh; but he awaketh, and, behold, +he is faint, and his soul hath appetite: so shall the multitude of all +the nations be, that fight against mount Zion. + +29:9 Stay yourselves, and wonder; cry ye out, and cry: they are +drunken, but not with wine; they stagger, but not with strong drink. + +29:10 For the LORD hath poured out upon you the spirit of deep sleep, +and hath closed your eyes: the prophets and your rulers, the seers +hath he covered. + +29:11 And the vision of all is become unto you as the words of a book +that is sealed, which men deliver to one that is learned, saying, Read +this, I pray thee: and he saith, I cannot; for it is sealed: 29:12 And +the book is delivered to him that is not learned, saying, Read this, I +pray thee: and he saith, I am not learned. + +29:13 Wherefore the Lord said, Forasmuch as this people draw near me +with their mouth, and with their lips do honour me, but have removed +their heart far from me, and their fear toward me is taught by the +precept of men: 29:14 Therefore, behold, I will proceed to do a +marvellous work among this people, even a marvellous work and a +wonder: for the wisdom of their wise men shall perish, and the +understanding of their prudent men shall be hid. + +29:15 Woe unto them that seek deep to hide their counsel from the +LORD, and their works are in the dark, and they say, Who seeth us? and +who knoweth us? 29:16 Surely your turning of things upside down shall +be esteemed as the potter's clay: for shall the work say of him that +made it, He made me not? or shall the thing framed say of him that +framed it, He had no understanding? 29:17 Is it not yet a very little +while, and Lebanon shall be turned into a fruitful field, and the +fruitful field shall be esteemed as a forest? 29:18 And in that day +shall the deaf hear the words of the book, and the eyes of the blind +shall see out of obscurity, and out of darkness. + +29:19 The meek also shall increase their joy in the LORD, and the poor +among men shall rejoice in the Holy One of Israel. + +29:20 For the terrible one is brought to nought, and the scorner is +consumed, and all that watch for iniquity are cut off: 29:21 That make +a man an offender for a word, and lay a snare for him that reproveth +in the gate, and turn aside the just for a thing of nought. + +29:22 Therefore thus saith the LORD, who redeemed Abraham, concerning +the house of Jacob, Jacob shall not now be ashamed, neither shall his +face now wax pale. + +29:23 But when he seeth his children, the work of mine hands, in the +midst of him, they shall sanctify my name, and sanctify the Holy One +of Jacob, and shall fear the God of Israel. + +29:24 They also that erred in spirit shall come to understanding, and +they that murmured shall learn doctrine. + +30:1 Woe to the rebellious children, saith the LORD, that take +counsel, but not of me; and that cover with a covering, but not of my +spirit, that they may add sin to sin: 30:2 That walk to go down into +Egypt, and have not asked at my mouth; to strengthen themselves in the +strength of Pharaoh, and to trust in the shadow of Egypt! 30:3 +Therefore shall the strength of Pharaoh be your shame, and the trust +in the shadow of Egypt your confusion. + +30:4 For his princes were at Zoan, and his ambassadors came to Hanes. + +30:5 They were all ashamed of a people that could not profit them, nor +be an help nor profit, but a shame, and also a reproach. + +30:6 The burden of the beasts of the south: into the land of trouble +and anguish, from whence come the young and old lion, the viper and +fiery flying serpent, they will carry their riches upon the shoulders +of young asses, and their treasures upon the bunches of camels, to a +people that shall not profit them. + +30:7 For the Egyptians shall help in vain, and to no purpose: +therefore have I cried concerning this, Their strength is to sit +still. + +30:8 Now go, write it before them in a table, and note it in a book, +that it may be for the time to come for ever and ever: 30:9 That this +is a rebellious people, lying children, children that will not hear +the law of the LORD: 30:10 Which say to the seers, See not; and to the +prophets, Prophesy not unto us right things, speak unto us smooth +things, prophesy deceits: 30:11 Get you out of the way, turn aside out +of the path, cause the Holy One of Israel to cease from before us. + +30:12 Wherefore thus saith the Holy One of Israel, Because ye despise +this word, and trust in oppression and perverseness, and stay thereon: +30:13 Therefore this iniquity shall be to you as a breach ready to +fall, swelling out in a high wall, whose breaking cometh suddenly at +an instant. + +30:14 And he shall break it as the breaking of the potters' vessel +that is broken in pieces; he shall not spare: so that there shall not +be found in the bursting of it a sherd to take fire from the hearth, +or to take water withal out of the pit. + +30:15 For thus saith the Lord GOD, the Holy One of Israel; In +returning and rest shall ye be saved; in quietness and in confidence +shall be your strength: and ye would not. + +30:16 But ye said, No; for we will flee upon horses; therefore shall +ye flee: and, We will ride upon the swift; therefore shall they that +pursue you be swift. + +30:17 One thousand shall flee at the rebuke of one; at the rebuke of +five shall ye flee: till ye be left as a beacon upon the top of a +mountain, and as an ensign on an hill. + +30:18 And therefore will the LORD wait, that he may be gracious unto +you, and therefore will he be exalted, that he may have mercy upon +you: for the LORD is a God of judgment: blessed are all they that wait +for him. + +30:19 For the people shall dwell in Zion at Jerusalem: thou shalt weep +no more: he will be very gracious unto thee at the voice of thy cry; +when he shall hear it, he will answer thee. + +30:20 And though the Lord give you the bread of adversity, and the +water of affliction, yet shall not thy teachers be removed into a +corner any more, but thine eyes shall see thy teachers: 30:21 And +thine ears shall hear a word behind thee, saying, This is the way, +walk ye in it, when ye turn to the right hand, and when ye turn to the +left. + +30:22 Ye shall defile also the covering of thy graven images of +silver, and the ornament of thy molten images of gold: thou shalt cast +them away as a menstruous cloth; thou shalt say unto it, Get thee +hence. + +30:23 Then shall he give the rain of thy seed, that thou shalt sow the +ground withal; and bread of the increase of the earth, and it shall be +fat and plenteous: in that day shall thy cattle feed in large +pastures. + +30:24 The oxen likewise and the young asses that ear the ground shall +eat clean provender, which hath been winnowed with the shovel and with +the fan. + +30:25 And there shall be upon every high mountain, and upon every high +hill, rivers and streams of waters in the day of the great slaughter, +when the towers fall. + +30:26 Moreover the light of the moon shall be as the light of the sun, +and the light of the sun shall be sevenfold, as the light of seven +days, in the day that the LORD bindeth up the breach of his people, +and healeth the stroke of their wound. + +30:27 Behold, the name of the LORD cometh from far, burning with his +anger, and the burden thereof is heavy: his lips are full of +indignation, and his tongue as a devouring fire: 30:28 And his breath, +as an overflowing stream, shall reach to the midst of the neck, to +sift the nations with the sieve of vanity: and there shall be a bridle +in the jaws of the people, causing them to err. + +30:29 Ye shall have a song, as in the night when a holy solemnity is +kept; and gladness of heart, as when one goeth with a pipe to come +into the mountain of the LORD, to the mighty One of Israel. + +30:30 And the LORD shall cause his glorious voice to be heard, and +shall shew the lighting down of his arm, with the indignation of his +anger, and with the flame of a devouring fire, with scattering, and +tempest, and hailstones. + +30:31 For through the voice of the LORD shall the Assyrian be beaten +down, which smote with a rod. + +30:32 And in every place where the grounded staff shall pass, which +the LORD shall lay upon him, it shall be with tabrets and harps: and +in battles of shaking will he fight with it. + +30:33 For Tophet is ordained of old; yea, for the king it is prepared; +he hath made it deep and large: the pile thereof is fire and much +wood; the breath of the LORD, like a stream of brimstone, doth kindle +it. + +31:1 Woe to them that go down to Egypt for help; and stay on horses, +and trust in chariots, because they are many; and in horsemen, because +they are very strong; but they look not unto the Holy One of Israel, +neither seek the LORD! 31:2 Yet he also is wise, and will bring evil, +and will not call back his words: but will arise against the house of +the evildoers, and against the help of them that work iniquity. + +31:3 Now the Egyptians are men, and not God; and their horses flesh, +and not spirit. When the LORD shall stretch out his hand, both he that +helpeth shall fall, and he that is holpen shall fall down, and they +all shall fail together. + +31:4 For thus hath the LORD spoken unto me, Like as the lion and the +young lion roaring on his prey, when a multitude of shepherds is +called forth against him, he will not be afraid of their voice, nor +abase himself for the noise of them: so shall the LORD of hosts come +down to fight for mount Zion, and for the hill thereof. + +31:5 As birds flying, so will the LORD of hosts defend Jerusalem; +defending also he will deliver it; and passing over he will preserve +it. + +31:6 Turn ye unto him from whom the children of Israel have deeply +revolted. + +31:7 For in that day every man shall cast away his idols of silver, +and his idols of gold, which your own hands have made unto you for a +sin. + +31:8 Then shall the Assyrian fall with the sword, not of a mighty man; +and the sword, not of a mean man, shall devour him: but he shall flee +from the sword, and his young men shall be discomfited. + +31:9 And he shall pass over to his strong hold for fear, and his +princes shall be afraid of the ensign, saith the LORD, whose fire is +in Zion, and his furnace in Jerusalem. + +32:1 Behold, a king shall reign in righteousness, and princes shall +rule in judgment. + +32:2 And a man shall be as an hiding place from the wind, and a covert +from the tempest; as rivers of water in a dry place, as the shadow of +a great rock in a weary land. + +32:3 And the eyes of them that see shall not be dim, and the ears of +them that hear shall hearken. + +32:4 The heart also of the rash shall understand knowledge, and the +tongue of the stammerers shall be ready to speak plainly. + +32:5 The vile person shall be no more called liberal, nor the churl +said to be bountiful. + +32:6 For the vile person will speak villany, and his heart will work +iniquity, to practise hypocrisy, and to utter error against the LORD, +to make empty the soul of the hungry, and he will cause the drink of +the thirsty to fail. + +32:7 The instruments also of the churl are evil: he deviseth wicked +devices to destroy the poor with lying words, even when the needy +speaketh right. + +32:8 But the liberal deviseth liberal things; and by liberal things +shall he stand. + +32:9 Rise up, ye women that are at ease; hear my voice, ye careless +daughters; give ear unto my speech. + +32:10 Many days and years shall ye be troubled, ye careless women: for +the vintage shall fail, the gathering shall not come. + +32:11 Tremble, ye women that are at ease; be troubled, ye careless +ones: strip you, and make you bare, and gird sackcloth upon your +loins. + +32:12 They shall lament for the teats, for the pleasant fields, for +the fruitful vine. + +32:13 Upon the land of my people shall come up thorns and briers; yea, +upon all the houses of joy in the joyous city: 32:14 Because the +palaces shall be forsaken; the multitude of the city shall be left; +the forts and towers shall be for dens for ever, a joy of wild asses, +a pasture of flocks; 32:15 Until the spirit be poured upon us from on +high, and the wilderness be a fruitful field, and the fruitful field +be counted for a forest. + +32:16 Then judgment shall dwell in the wilderness, and righteousness +remain in the fruitful field. + +32:17 And the work of righteousness shall be peace; and the effect of +righteousness quietness and assurance for ever. + +32:18 And my people shall dwell in a peaceable habitation, and in sure +dwellings, and in quiet resting places; 32:19 When it shall hail, +coming down on the forest; and the city shall be low in a low place. + +32:20 Blessed are ye that sow beside all waters, that send forth +thither the feet of the ox and the ass. + +33:1 Woe to thee that spoilest, and thou wast not spoiled; and dealest +treacherously, and they dealt not treacherously with thee! when thou +shalt cease to spoil, thou shalt be spoiled; and when thou shalt make +an end to deal treacherously, they shall deal treacherously with thee. + +33:2 O LORD, be gracious unto us; we have waited for thee: be thou +their arm every morning, our salvation also in the time of trouble. + +33:3 At the noise of the tumult the people fled; at the lifting up of +thyself the nations were scattered. + +33:4 And your spoil shall be gathered like the gathering of the +caterpiller: as the running to and fro of locusts shall he run upon +them. + +33:5 The LORD is exalted; for he dwelleth on high: he hath filled Zion +with judgment and righteousness. + +33:6 And wisdom and knowledge shall be the stability of thy times, and +strength of salvation: the fear of the LORD is his treasure. + +33:7 Behold, their valiant ones shall cry without: the ambassadors of +peace shall weep bitterly. + +33:8 The highways lie waste, the wayfaring man ceaseth: he hath broken +the covenant, he hath despised the cities, he regardeth no man. + +33:9 The earth mourneth and languisheth: Lebanon is ashamed and hewn +down: Sharon is like a wilderness; and Bashan and Carmel shake off +their fruits. + +33:10 Now will I rise, saith the LORD; now will I be exalted; now will +I lift up myself. + +33:11 Ye shall conceive chaff, ye shall bring forth stubble: your +breath, as fire, shall devour you. + +33:12 And the people shall be as the burnings of lime: as thorns cut +up shall they be burned in the fire. + +33:13 Hear, ye that are far off, what I have done; and, ye that are +near, acknowledge my might. + +33:14 The sinners in Zion are afraid; fearfulness hath surprised the +hypocrites. Who among us shall dwell with the devouring fire? who +among us shall dwell with everlasting burnings? 33:15 He that walketh +righteously, and speaketh uprightly; he that despiseth the gain of +oppressions, that shaketh his hands from holding of bribes, that +stoppeth his ears from hearing of blood, and shutteth his eyes from +seeing evil; 33:16 He shall dwell on high: his place of defence shall +be the munitions of rocks: bread shall be given him; his waters shall +be sure. + +33:17 Thine eyes shall see the king in his beauty: they shall behold +the land that is very far off. + +33:18 Thine heart shall meditate terror. Where is the scribe? where is +the receiver? where is he that counted the towers? 33:19 Thou shalt +not see a fierce people, a people of a deeper speech than thou canst +perceive; of a stammering tongue, that thou canst not understand. + +33:20 Look upon Zion, the city of our solemnities: thine eyes shall +see Jerusalem a quiet habitation, a tabernacle that shall not be taken +down; not one of the stakes thereof shall ever be removed, neither +shall any of the cords thereof be broken. + +33:21 But there the glorious LORD will be unto us a place of broad +rivers and streams; wherein shall go no galley with oars, neither +shall gallant ship pass thereby. + +33:22 For the LORD is our judge, the LORD is our lawgiver, the LORD is +our king; he will save us. + +33:23 Thy tacklings are loosed; they could not well strengthen their +mast, they could not spread the sail: then is the prey of a great +spoil divided; the lame take the prey. + +33:24 And the inhabitant shall not say, I am sick: the people that +dwell therein shall be forgiven their iniquity. + +34:1 Come near, ye nations, to hear; and hearken, ye people: let the +earth hear, and all that is therein; the world, and all things that +come forth of it. + +34:2 For the indignation of the LORD is upon all nations, and his fury +upon all their armies: he hath utterly destroyed them, he hath +delivered them to the slaughter. + +34:3 Their slain also shall be cast out, and their stink shall come up +out of their carcases, and the mountains shall be melted with their +blood. + +34:4 And all the host of heaven shall be dissolved, and the heavens +shall be rolled together as a scroll: and all their host shall fall +down, as the leaf falleth off from the vine, and as a falling fig from +the fig tree. + +34:5 For my sword shall be bathed in heaven: behold, it shall come +down upon Idumea, and upon the people of my curse, to judgment. + +34:6 The sword of the LORD is filled with blood, it is made fat with +fatness, and with the blood of lambs and goats, with the fat of the +kidneys of rams: for the LORD hath a sacrifice in Bozrah, and a great +slaughter in the land of Idumea. + +34:7 And the unicorns shall come down with them, and the bullocks with +the bulls; and their land shall be soaked with blood, and their dust +made fat with fatness. + +34:8 For it is the day of the LORD's vengeance, and the year of +recompences for the controversy of Zion. + +34:9 And the streams thereof shall be turned into pitch, and the dust +thereof into brimstone, and the land thereof shall become burning +pitch. + +34:10 It shall not be quenched night nor day; the smoke thereof shall +go up for ever: from generation to generation it shall lie waste; none +shall pass through it for ever and ever. + +34:11 But the cormorant and the bittern shall possess it; the owl also +and the raven shall dwell in it: and he shall stretch out upon it the +line of confusion, and the stones of emptiness. + +34:12 They shall call the nobles thereof to the kingdom, but none +shall be there, and all her princes shall be nothing. + +34:13 And thorns shall come up in her palaces, nettles and brambles in +the fortresses thereof: and it shall be an habitation of dragons, and +a court for owls. + +34:14 The wild beasts of the desert shall also meet with the wild +beasts of the island, and the satyr shall cry to his fellow; the +screech owl also shall rest there, and find for herself a place of +rest. + +34:15 There shall the great owl make her nest, and lay, and hatch, and +gather under her shadow: there shall the vultures also be gathered, +every one with her mate. + +34:16 Seek ye out of the book of the LORD, and read: no one of these +shall fail, none shall want her mate: for my mouth it hath commanded, +and his spirit it hath gathered them. + +34:17 And he hath cast the lot for them, and his hand hath divided it +unto them by line: they shall possess it for ever, from generation to +generation shall they dwell therein. + +35:1 The wilderness and the solitary place shall be glad for them; and +the desert shall rejoice, and blossom as the rose. + +35:2 It shall blossom abundantly, and rejoice even with joy and +singing: the glory of Lebanon shall be given unto it, the excellency +of Carmel and Sharon, they shall see the glory of the LORD, and the +excellency of our God. + +35:3 Strengthen ye the weak hands, and confirm the feeble knees. + +35:4 Say to them that are of a fearful heart, Be strong, fear not: +behold, your God will come with vengeance, even God with a recompence; +he will come and save you. + +35:5 Then the eyes of the blind shall be opened, and the ears of the +deaf shall be unstopped. + +35:6 Then shall the lame man leap as an hart, and the tongue of the +dumb sing: for in the wilderness shall waters break out, and streams +in the desert. + +35:7 And the parched ground shall become a pool, and the thirsty land +springs of water: in the habitation of dragons, where each lay, shall +be grass with reeds and rushes. + +35:8 And an highway shall be there, and a way, and it shall be called +The way of holiness; the unclean shall not pass over it; but it shall +be for those: the wayfaring men, though fools, shall not err therein. + +35:9 No lion shall be there, nor any ravenous beast shall go up +thereon, it shall not be found there; but the redeemed shall walk +there: 35:10 And the ransomed of the LORD shall return, and come to +Zion with songs and everlasting joy upon their heads: they shall +obtain joy and gladness, and sorrow and sighing shall flee away. + +36:1 Now it came to pass in the fourteenth year of king Hezekiah, that +Sennacherib king of Assyria came up against all the defenced cities of +Judah, and took them. + +36:2 And the king of Assyria sent Rabshakeh from Lachish to Jerusalem +unto king Hezekiah with a great army. And he stood by the conduit of +the upper pool in the highway of the fuller's field. + +36:3 Then came forth unto him Eliakim, Hilkiah's son, which was over +the house, and Shebna the scribe, and Joah, Asaph's son, the recorder. + +36:4 And Rabshakeh said unto them, Say ye now to Hezekiah, Thus saith +the great king, the king of Assyria, What confidence is this wherein +thou trustest? 36:5 I say, sayest thou, (but they are but vain words) +I have counsel and strength for war: now on whom dost thou trust, that +thou rebellest against me? 36:6 Lo, thou trustest in the staff of +this broken reed, on Egypt; whereon if a man lean, it will go into his +hand, and pierce it: so is Pharaoh king of Egypt to all that trust in +him. + +36:7 But if thou say to me, We trust in the LORD our God: is it not +he, whose high places and whose altars Hezekiah hath taken away, and +said to Judah and to Jerusalem, Ye shall worship before this altar? +36:8 Now therefore give pledges, I pray thee, to my master the king of +Assyria, and I will give thee two thousand horses, if thou be able on +thy part to set riders upon them. + +36:9 How then wilt thou turn away the face of one captain of the least +of my master's servants, and put thy trust on Egypt for chariots and +for horsemen? 36:10 And am I now come up without the LORD against +this land to destroy it? the LORD said unto me, Go up against this +land, and destroy it. + +36:11 Then said Eliakim and Shebna and Joah unto Rabshakeh, Speak, I +pray thee, unto thy servants in the Syrian language; for we understand +it: and speak not to us in the Jews' language, in the ears of the +people that are on the wall. + +36:12 But Rabshakeh said, Hath my master sent me to thy master and to +thee to speak these words? hath he not sent me to the men that sit +upon the wall, that they may eat their own dung, and drink their own +piss with you? 36:13 Then Rabshakeh stood, and cried with a loud +voice in the Jews' language, and said, Hear ye the words of the great +king, the king of Assyria. + +36:14 Thus saith the king, Let not Hezekiah deceive you: for he shall +not be able to deliver you. + +36:15 Neither let Hezekiah make you trust in the LORD, saying, The +LORD will surely deliver us: this city shall not be delivered into the +hand of the king of Assyria. + +36:16 Hearken not to Hezekiah: for thus saith the king of Assyria, +Make an agreement with me by a present, and come out to me: and eat ye +every one of his vine, and every one of his fig tree, and drink ye +every one the waters of his own cistern; 36:17 Until I come and take +you away to a land like your own land, a land of corn and wine, a land +of bread and vineyards. + +36:18 Beware lest Hezekiah persuade you, saying, the LORD will deliver +us. + +Hath any of the gods of the nations delivered his land out of the hand +of the king of Assyria? 36:19 Where are the gods of Hamath and +Arphad? where are the gods of Sepharvaim? and have they delivered +Samaria out of my hand? 36:20 Who are they among all the gods of +these lands, that have delivered their land out of my hand, that the +LORD should deliver Jerusalem out of my hand? 36:21 But they held +their peace, and answered him not a word: for the king's commandment +was, saying, Answer him not. + +36:22 Then came Eliakim, the son of Hilkiah, that was over the +household, and Shebna the scribe, and Joah, the son of Asaph, the +recorder, to Hezekiah with their clothes rent, and told him the words +of Rabshakeh. + +37:1 And it came to pass, when king Hezekiah heard it, that he rent +his clothes, and covered himself with sackcloth, and went into the +house of the LORD. + +37:2 And he sent Eliakim, who was over the household, and Shebna the +scribe, and the elders of the priests covered with sackcloth, unto +Isaiah the prophet the son of Amoz. + +37:3 And they said unto him, Thus saith Hezekiah, This day is a day of +trouble, and of rebuke, and of blasphemy: for the children are come to +the birth, and there is not strength to bring forth. + +37:4 It may be the LORD thy God will hear the words of Rabshakeh, whom +the king of Assyria his master hath sent to reproach the living God, +and will reprove the words which the LORD thy God hath heard: +wherefore lift up thy prayer for the remnant that is left. + +37:5 So the servants of king Hezekiah came to Isaiah. + +37:6 And Isaiah said unto them, Thus shall ye say unto your master, +Thus saith the LORD, Be not afraid of the words that thou hast heard, +wherewith the servants of the king of Assyria have blasphemed me. + +37:7 Behold, I will send a blast upon him, and he shall hear a rumour, +and return to his own land; and I will cause him to fall by the sword +in his own land. + +37:8 So Rabshakeh returned, and found the king of Assyria warring +against Libnah: for he had heard that he was departed from Lachish. + +37:9 And he heard say concerning Tirhakah king of Ethiopia, He is come +forth to make war with thee. And when he heard it, he sent messengers +to Hezekiah, saying, 37:10 Thus shall ye speak to Hezekiah king of +Judah, saying, Let not thy God, in whom thou trustest, deceive thee, +saying, Jerusalem shall not be given into the hand of the king of +Assyria. + +37:11 Behold, thou hast heard what the kings of Assyria have done to +all lands by destroying them utterly; and shalt thou be delivered? +37:12 Have the gods of the nations delivered them which my fathers +have destroyed, as Gozan, and Haran, and Rezeph, and the children of +Eden which were in Telassar? 37:13 Where is the king of Hamath, and +the king of Arphad, and the king of the city of Sepharvaim, Hena, and +Ivah? 37:14 And Hezekiah received the letter from the hand of the +messengers, and read it: and Hezekiah went up unto the house of the +LORD, and spread it before the LORD. + +37:15 And Hezekiah prayed unto the LORD, saying, 37:16 O LORD of +hosts, God of Israel, that dwellest between the cherubims, thou art +the God, even thou alone, of all the kingdoms of the earth: thou hast +made heaven and earth. + +37:17 Incline thine ear, O LORD, and hear; open thine eyes, O LORD, +and see: and hear all the words of Sennacherib, which hath sent to +reproach the living God. + +37:18 Of a truth, LORD, the kings of Assyria have laid waste all the +nations, and their countries, 37:19 And have cast their gods into the +fire: for they were no gods, but the work of men's hands, wood and +stone: therefore they have destroyed them. + +37:20 Now therefore, O LORD our God, save us from his hand, that all +the kingdoms of the earth may know that thou art the LORD, even thou +only. + +37:21 Then Isaiah the son of Amoz sent unto Hezekiah, saying, Thus +saith the LORD God of Israel, Whereas thou hast prayed to me against +Sennacherib king of Assyria: 37:22 This is the word which the LORD +hath spoken concerning him; The virgin, the daughter of Zion, hath +despised thee, and laughed thee to scorn; the daughter of Jerusalem +hath shaken her head at thee. + +37:23 Whom hast thou reproached and blasphemed? and against whom hast +thou exalted thy voice, and lifted up thine eyes on high? even against +the Holy One of Israel. + +37:24 By thy servants hast thou reproached the Lord, and hast said, By +the multitude of my chariots am I come up to the height of the +mountains, to the sides of Lebanon; and I will cut down the tall +cedars thereof, and the choice fir trees thereof: and I will enter +into the height of his border, and the forest of his Carmel. + +37:25 I have digged, and drunk water; and with the sole of my feet +have I dried up all the rivers of the besieged places. + +37:26 Hast thou not heard long ago, how I have done it; and of ancient +times, that I have formed it? now have I brought it to pass, that thou +shouldest be to lay waste defenced cities into ruinous heaps. + +37:27 Therefore their inhabitants were of small power, they were +dismayed and confounded: they were as the grass of the field, and as +the green herb, as the grass on the housetops, and as corn blasted +before it be grown up. + +37:28 But I know thy abode, and thy going out, and thy coming in, and +thy rage against me. + +37:29 Because thy rage against me, and thy tumult, is come up into +mine ears, therefore will I put my hook in thy nose, and my bridle in +thy lips, and I will turn thee back by the way by which thou camest. + +37:30 And this shall be a sign unto thee, Ye shall eat this year such +as groweth of itself; and the second year that which springeth of the +same: and in the third year sow ye, and reap, and plant vineyards, and +eat the fruit thereof. + +37:31 And the remnant that is escaped of the house of Judah shall +again take root downward, and bear fruit upward: 37:32 For out of +Jerusalem shall go forth a remnant, and they that escape out of mount +Zion: the zeal of the LORD of hosts shall do this. + +37:33 Therefore thus saith the LORD concerning the king of Assyria, He +shall not come into this city, nor shoot an arrow there, nor come +before it with shields, nor cast a bank against it. + +37:34 By the way that he came, by the same shall he return, and shall +not come into this city, saith the LORD. + +37:35 For I will defend this city to save it for mine own sake, and +for my servant David's sake. + +37:36 Then the angel of the LORD went forth, and smote in the camp of +the Assyrians a hundred and fourscore and five thousand: and when they +arose early in the morning, behold, they were all dead corpses. + +37:37 So Sennacherib king of Assyria departed, and went and returned, +and dwelt at Nineveh. + +37:38 And it came to pass, as he was worshipping in the house of +Nisroch his god, that Adrammelech and Sharezer his sons smote him with +the sword; and they escaped into the land of Armenia: and Esarhaddon +his son reigned in his stead. + +38:1 In those days was Hezekiah sick unto death. And Isaiah the +prophet the son of Amoz came unto him, and said unto him, Thus saith +the LORD, Set thine house in order: for thou shalt die, and not live. + +38:2 Then Hezekiah turned his face toward the wall, and prayed unto +the LORD, 38:3 And said, Remember now, O LORD, I beseech thee, how I +have walked before thee in truth and with a perfect heart, and have +done that which is good in thy sight. And Hezekiah wept sore. + +38:4 Then came the word of the LORD to Isaiah, saying, 38:5 Go, and +say to Hezekiah, Thus saith the LORD, the God of David thy father, I +have heard thy prayer, I have seen thy tears: behold, I will add unto +thy days fifteen years. + +38:6 And I will deliver thee and this city out of the hand of the king +of Assyria: and I will defend this city. + +38:7 And this shall be a sign unto thee from the LORD, that the LORD +will do this thing that he hath spoken; 38:8 Behold, I will bring +again the shadow of the degrees, which is gone down in the sun dial of +Ahaz, ten degrees backward. So the sun returned ten degrees, by which +degrees it was gone down. + +38:9 The writing of Hezekiah king of Judah, when he had been sick, and +was recovered of his sickness: 38:10 I said in the cutting off of my +days, I shall go to the gates of the grave: I am deprived of the +residue of my years. + +38:11 I said, I shall not see the LORD, even the LORD, in the land of +the living: I shall behold man no more with the inhabitants of the +world. + +38:12 Mine age is departed, and is removed from me as a shepherd's +tent: I have cut off like a weaver my life: he will cut me off with +pining sickness: from day even to night wilt thou make an end of me. + +38:13 I reckoned till morning, that, as a lion, so will he break all +my bones: from day even to night wilt thou make an end of me. + +38:14 Like a crane or a swallow, so did I chatter: I did mourn as a +dove: mine eyes fail with looking upward: O LORD, I am oppressed; +undertake for me. + +38:15 What shall I say? he hath both spoken unto me, and himself hath +done it: I shall go softly all my years in the bitterness of my soul. + +38:16 O LORD, by these things men live, and in all these things is the +life of my spirit: so wilt thou recover me, and make me to live. + +38:17 Behold, for peace I had great bitterness: but thou hast in love +to my soul delivered it from the pit of corruption: for thou hast cast +all my sins behind thy back. + +38:18 For the grave cannot praise thee, death can not celebrate thee: +they that go down into the pit cannot hope for thy truth. + +38:19 The living, the living, he shall praise thee, as I do this day: +the father to the children shall make known thy truth. + +38:20 The LORD was ready to save me: therefore we will sing my songs +to the stringed instruments all the days of our life in the house of +the LORD. + +38:21 For Isaiah had said, Let them take a lump of figs, and lay it +for a plaister upon the boil, and he shall recover. + +38:22 Hezekiah also had said, What is the sign that I shall go up to +the house of the LORD? 39:1 At that time Merodachbaladan, the son of +Baladan, king of Babylon, sent letters and a present to Hezekiah: for +he had heard that he had been sick, and was recovered. + +39:2 And Hezekiah was glad of them, and shewed them the house of his +precious things, the silver, and the gold, and the spices, and the +precious ointment, and all the house of his armour, and all that was +found in his treasures: there was nothing in his house, nor in all his +dominion, that Hezekiah shewed them not. + +39:3 Then came Isaiah the prophet unto king Hezekiah, and said unto +him, What said these men? and from whence came they unto thee? And +Hezekiah said, They are come from a far country unto me, even from +Babylon. + +39:4 Then said he, What have they seen in thine house? And Hezekiah +answered, All that is in mine house have they seen: there is nothing +among my treasures that I have not shewed them. + +39:5 Then said Isaiah to Hezekiah, Hear the word of the LORD of hosts: +39:6 Behold, the days come, that all that is in thine house, and that +which thy fathers have laid up in store until this day, shall be +carried to Babylon: nothing shall be left, saith the LORD. + +39:7 And of thy sons that shall issue from thee, which thou shalt +beget, shall they take away; and they shall be eunuchs in the palace +of the king of Babylon. + +39:8 Then said Hezekiah to Isaiah, Good is the word of the LORD which +thou hast spoken. He said moreover, For there shall be peace and truth +in my days. + +40:1 Comfort ye, comfort ye my people, saith your God. + +40:2 Speak ye comfortably to Jerusalem, and cry unto her, that her +warfare is accomplished, that her iniquity is pardoned: for she hath +received of the LORD's hand double for all her sins. + +40:3 The voice of him that crieth in the wilderness, Prepare ye the +way of the LORD, make straight in the desert a highway for our God. + +40:4 Every valley shall be exalted, and every mountain and hill shall +be made low: and the crooked shall be made straight, and the rough +places plain: 40:5 And the glory of the LORD shall be revealed, and +all flesh shall see it together: for the mouth of the LORD hath spoken +it. + +40:6 The voice said, Cry. And he said, What shall I cry? All flesh is +grass, and all the goodliness thereof is as the flower of the field: +40:7 The grass withereth, the flower fadeth: because the spirit of the +LORD bloweth upon it: surely the people is grass. + +40:8 The grass withereth, the flower fadeth: but the word of our God +shall stand for ever. + +40:9 O Zion, that bringest good tidings, get thee up into the high +mountain; O Jerusalem, that bringest good tidings, lift up thy voice +with strength; lift it up, be not afraid; say unto the cities of +Judah, Behold your God! 40:10 Behold, the Lord GOD will come with +strong hand, and his arm shall rule for him: behold, his reward is +with him, and his work before him. + +40:11 He shall feed his flock like a shepherd: he shall gather the +lambs with his arm, and carry them in his bosom, and shall gently lead +those that are with young. + +40:12 Who hath measured the waters in the hollow of his hand, and +meted out heaven with the span, and comprehended the dust of the earth +in a measure, and weighed the mountains in scales, and the hills in a +balance? 40:13 Who hath directed the Spirit of the LORD, or being his +counsellor hath taught him? 40:14 With whom took he counsel, and who +instructed him, and taught him in the path of judgment, and taught him +knowledge, and shewed to him the way of understanding? 40:15 Behold, +the nations are as a drop of a bucket, and are counted as the small +dust of the balance: behold, he taketh up the isles as a very little +thing. + +40:16 And Lebanon is not sufficient to burn, nor the beasts thereof +sufficient for a burnt offering. + +40:17 All nations before him are as nothing; and they are counted to +him less than nothing, and vanity. + +40:18 To whom then will ye liken God? or what likeness will ye compare +unto him? 40:19 The workman melteth a graven image, and the goldsmith +spreadeth it over with gold, and casteth silver chains. + +40:20 He that is so impoverished that he hath no oblation chooseth a +tree that will not rot; he seeketh unto him a cunning workman to +prepare a graven image, that shall not be moved. + +40:21 Have ye not known? have ye not heard? hath it not been told you +from the beginning? have ye not understood from the foundations of the +earth? 40:22 It is he that sitteth upon the circle of the earth, and +the inhabitants thereof are as grasshoppers; that stretcheth out the +heavens as a curtain, and spreadeth them out as a tent to dwell in: +40:23 That bringeth the princes to nothing; he maketh the judges of +the earth as vanity. + +40:24 Yea, they shall not be planted; yea, they shall not be sown: +yea, their stock shall not take root in the earth: and he shall also +blow upon them, and they shall wither, and the whirlwind shall take +them away as stubble. + +40:25 To whom then will ye liken me, or shall I be equal? saith the +Holy One. + +40:26 Lift up your eyes on high, and behold who hath created these +things, that bringeth out their host by number: he calleth them all by +names by the greatness of his might, for that he is strong in power; +not one faileth. + +40:27 Why sayest thou, O Jacob, and speakest, O Israel, My way is hid +from the LORD, and my judgment is passed over from my God? 40:28 Hast +thou not known? hast thou not heard, that the everlasting God, the +LORD, the Creator of the ends of the earth, fainteth not, neither is +weary? there is no searching of his understanding. + +40:29 He giveth power to the faint; and to them that have no might he +increaseth strength. + +40:30 Even the youths shall faint and be weary, and the young men +shall utterly fall: 40:31 But they that wait upon the LORD shall renew +their strength; they shall mount up with wings as eagles; they shall +run, and not be weary; and they shall walk, and not faint. + +41:1 Keep silence before me, O islands; and let the people renew their +strength: let them come near; then let them speak: let us come near +together to judgment. + +41:2 Who raised up the righteous man from the east, called him to his +foot, gave the nations before him, and made him rule over kings? he +gave them as the dust to his sword, and as driven stubble to his bow. + +41:3 He pursued them, and passed safely; even by the way that he had +not gone with his feet. + +41:4 Who hath wrought and done it, calling the generations from the +beginning? I the LORD, the first, and with the last; I am he. + +41:5 The isles saw it, and feared; the ends of the earth were afraid, +drew near, and came. + +41:6 They helped every one his neighbour; and every one said to his +brother, Be of good courage. + +41:7 So the carpenter encouraged the goldsmith, and he that smootheth +with the hammer him that smote the anvil, saying, It is ready for the +sodering: and he fastened it with nails, that it should not be moved. + +41:8 But thou, Israel, art my servant, Jacob whom I have chosen, the +seed of Abraham my friend. + +41:9 Thou whom I have taken from the ends of the earth, and called +thee from the chief men thereof, and said unto thee, Thou art my +servant; I have chosen thee, and not cast thee away. + +41:10 Fear thou not; for I am with thee: be not dismayed; for I am thy +God: I will strengthen thee; yea, I will help thee; yea, I will uphold +thee with the right hand of my righteousness. + +41:11 Behold, all they that were incensed against thee shall be +ashamed and confounded: they shall be as nothing; and they that strive +with thee shall perish. + +41:12 Thou shalt seek them, and shalt not find them, even them that +contended with thee: they that war against thee shall be as nothing, +and as a thing of nought. + +41:13 For I the LORD thy God will hold thy right hand, saying unto +thee, Fear not; I will help thee. + +41:14 Fear not, thou worm Jacob, and ye men of Israel; I will help +thee, saith the LORD, and thy redeemer, the Holy One of Israel. + +41:15 Behold, I will make thee a new sharp threshing instrument having +teeth: thou shalt thresh the mountains, and beat them small, and shalt +make the hills as chaff. + +41:16 Thou shalt fan them, and the wind shall carry them away, and the +whirlwind shall scatter them: and thou shalt rejoice in the LORD, and +shalt glory in the Holy One of Israel. + +41:17 When the poor and needy seek water, and there is none, and their +tongue faileth for thirst, I the LORD will hear them, I the God of +Israel will not forsake them. + +41:18 I will open rivers in high places, and fountains in the midst of +the valleys: I will make the wilderness a pool of water, and the dry +land springs of water. + +41:19 I will plant in the wilderness the cedar, the shittah tree, and +the myrtle, and the oil tree; I will set in the desert the fir tree, +and the pine, and the box tree together: 41:20 That they may see, and +know, and consider, and understand together, that the hand of the LORD +hath done this, and the Holy One of Israel hath created it. + +41:21 Produce your cause, saith the LORD; bring forth your strong +reasons, saith the King of Jacob. + +41:22 Let them bring them forth, and shew us what shall happen: let +them shew the former things, what they be, that we may consider them, +and know the latter end of them; or declare us things for to come. + +41:23 Shew the things that are to come hereafter, that we may know +that ye are gods: yea, do good, or do evil, that we may be dismayed, +and behold it together. + +41:24 Behold, ye are of nothing, and your work of nought: an +abomination is he that chooseth you. + +41:25 I have raised up one from the north, and he shall come: from the +rising of the sun shall he call upon my name: and he shall come upon +princes as upon morter, and as the potter treadeth clay. + +41:26 Who hath declared from the beginning, that we may know? and +beforetime, that we may say, He is righteous? yea, there is none that +sheweth, yea, there is none that declareth, yea, there is none that +heareth your words. + +41:27 The first shall say to Zion, Behold, behold them: and I will +give to Jerusalem one that bringeth good tidings. + +41:28 For I beheld, and there was no man; even among them, and there +was no counsellor, that, when I asked of them, could answer a word. + +41:29 Behold, they are all vanity; their works are nothing: their +molten images are wind and confusion. + +42:1 Behold my servant, whom I uphold; mine elect, in whom my soul +delighteth; I have put my spirit upon him: he shall bring forth +judgment to the Gentiles. + +42:2 He shall not cry, nor lift up, nor cause his voice to be heard in +the street. + +42:3 A bruised reed shall he not break, and the smoking flax shall he +not quench: he shall bring forth judgment unto truth. + +42:4 He shall not fail nor be discouraged, till he have set judgment +in the earth: and the isles shall wait for his law. + +42:5 Thus saith God the LORD, he that created the heavens, and +stretched them out; he that spread forth the earth, and that which +cometh out of it; he that giveth breath unto the people upon it, and +spirit to them that walk therein: 42:6 I the LORD have called thee in +righteousness, and will hold thine hand, and will keep thee, and give +thee for a covenant of the people, for a light of the Gentiles; 42:7 +To open the blind eyes, to bring out the prisoners from the prison, +and them that sit in darkness out of the prison house. + +42:8 I am the LORD: that is my name: and my glory will I not give to +another, neither my praise to graven images. + +42:9 Behold, the former things are come to pass, and new things do I +declare: before they spring forth I tell you of them. + +42:10 Sing unto the LORD a new song, and his praise from the end of +the earth, ye that go down to the sea, and all that is therein; the +isles, and the inhabitants thereof. + +42:11 Let the wilderness and the cities thereof lift up their voice, +the villages that Kedar doth inhabit: let the inhabitants of the rock +sing, let them shout from the top of the mountains. + +42:12 Let them give glory unto the LORD, and declare his praise in the +islands. + +42:13 The LORD shall go forth as a mighty man, he shall stir up +jealousy like a man of war: he shall cry, yea, roar; he shall prevail +against his enemies. + +42:14 I have long time holden my peace; I have been still, and +refrained myself: now will I cry like a travailing woman; I will +destroy and devour at once. + +42:15 I will make waste mountains and hills, and dry up all their +herbs; and I will make the rivers islands, and I will dry up the +pools. + +42:16 And I will bring the blind by a way that they knew not; I will +lead them in paths that they have not known: I will make darkness +light before them, and crooked things straight. These things will I do +unto them, and not forsake them. + +42:17 They shall be turned back, they shall be greatly ashamed, that +trust in graven images, that say to the molten images, Ye are our +gods. + +42:18 Hear, ye deaf; and look, ye blind, that ye may see. + +42:19 Who is blind, but my servant? or deaf, as my messenger that I +sent? who is blind as he that is perfect, and blind as the LORD's +servant? 42:20 Seeing many things, but thou observest not; opening +the ears, but he heareth not. + +42:21 The LORD is well pleased for his righteousness' sake; he will +magnify the law, and make it honourable. + +42:22 But this is a people robbed and spoiled; they are all of them +snared in holes, and they are hid in prison houses: they are for a +prey, and none delivereth; for a spoil, and none saith, Restore. + +42:23 Who among you will give ear to this? who will hearken and hear +for the time to come? 42:24 Who gave Jacob for a spoil, and Israel to +the robbers? did not the LORD, he against whom we have sinned? for +they would not walk in his ways, neither were they obedient unto his +law. + +42:25 Therefore he hath poured upon him the fury of his anger, and the +strength of battle: and it hath set him on fire round about, yet he +knew not; and it burned him, yet he laid it not to heart. + +43:1 But now thus saith the LORD that created thee, O Jacob, and he +that formed thee, O Israel, Fear not: for I have redeemed thee, I have +called thee by thy name; thou art mine. + +43:2 When thou passest through the waters, I will be with thee; and +through the rivers, they shall not overflow thee: when thou walkest +through the fire, thou shalt not be burned; neither shall the flame +kindle upon thee. + +43:3 For I am the LORD thy God, the Holy One of Israel, thy Saviour: I +gave Egypt for thy ransom, Ethiopia and Seba for thee. + +43:4 Since thou wast precious in my sight, thou hast been honourable, +and I have loved thee: therefore will I give men for thee, and people +for thy life. + +43:5 Fear not: for I am with thee: I will bring thy seed from the +east, and gather thee from the west; 43:6 I will say to the north, +Give up; and to the south, Keep not back: bring my sons from far, and +my daughters from the ends of the earth; 43:7 Even every one that is +called by my name: for I have created him for my glory, I have formed +him; yea, I have made him. + +43:8 Bring forth the blind people that have eyes, and the deaf that +have ears. + +43:9 Let all the nations be gathered together, and let the people be +assembled: who among them can declare this, and shew us former things? +let them bring forth their witnesses, that they may be justified: or +let them hear, and say, It is truth. + +43:10 Ye are my witnesses, saith the LORD, and my servant whom I have +chosen: that ye may know and believe me, and understand that I am he: +before me there was no God formed, neither shall there be after me. + +43:11 I, even I, am the LORD; and beside me there is no saviour. + +43:12 I have declared, and have saved, and I have shewed, when there +was no strange god among you: therefore ye are my witnesses, saith the +LORD, that I am God. + +43:13 Yea, before the day was I am he; and there is none that can +deliver out of my hand: I will work, and who shall let it? 43:14 Thus +saith the LORD, your redeemer, the Holy One of Israel; For your sake I +have sent to Babylon, and have brought down all their nobles, and the +Chaldeans, whose cry is in the ships. + +43:15 I am the LORD, your Holy One, the creator of Israel, your King. + +43:16 Thus saith the LORD, which maketh a way in the sea, and a path +in the mighty waters; 43:17 Which bringeth forth the chariot and +horse, the army and the power; they shall lie down together, they +shall not rise: they are extinct, they are quenched as tow. + +43:18 Remember ye not the former things, neither consider the things +of old. + +43:19 Behold, I will do a new thing; now it shall spring forth; shall +ye not know it? I will even make a way in the wilderness, and rivers +in the desert. + +43:20 The beast of the field shall honour me, the dragons and the +owls: because I give waters in the wilderness, and rivers in the +desert, to give drink to my people, my chosen. + +43:21 This people have I formed for myself; they shall shew forth my +praise. + +43:22 But thou hast not called upon me, O Jacob; but thou hast been +weary of me, O Israel. + +43:23 Thou hast not brought me the small cattle of thy burnt +offerings; neither hast thou honoured me with thy sacrifices. I have +not caused thee to serve with an offering, nor wearied thee with +incense. + +43:24 Thou hast bought me no sweet cane with money, neither hast thou +filled me with the fat of thy sacrifices: but thou hast made me to +serve with thy sins, thou hast wearied me with thine iniquities. + +43:25 I, even I, am he that blotteth out thy transgressions for mine +own sake, and will not remember thy sins. + +43:26 Put me in remembrance: let us plead together: declare thou, that +thou mayest be justified. + +43:27 Thy first father hath sinned, and thy teachers have transgressed +against me. + +43:28 Therefore I have profaned the princes of the sanctuary, and have +given Jacob to the curse, and Israel to reproaches. + +44:1 Yet now hear, O Jacob my servant; and Israel, whom I have chosen: +44:2 Thus saith the LORD that made thee, and formed thee from the +womb, which will help thee; Fear not, O Jacob, my servant; and thou, +Jesurun, whom I have chosen. + +44:3 For I will pour water upon him that is thirsty, and floods upon +the dry ground: I will pour my spirit upon thy seed, and my blessing +upon thine offspring: 44:4 And they shall spring up as among the +grass, as willows by the water courses. + +44:5 One shall say, I am the LORD's; and another shall call himself by +the name of Jacob; and another shall subscribe with his hand unto the +LORD, and surname himself by the name of Israel. + +44:6 Thus saith the LORD the King of Israel, and his redeemer the LORD +of hosts; I am the first, and I am the last; and beside me there is no +God. + +44:7 And who, as I, shall call, and shall declare it, and set it in +order for me, since I appointed the ancient people? and the things +that are coming, and shall come, let them shew unto them. + +44:8 Fear ye not, neither be afraid: have not I told thee from that +time, and have declared it? ye are even my witnesses. Is there a God +beside me? yea, there is no God; I know not any. + +44:9 They that make a graven image are all of them vanity; and their +delectable things shall not profit; and they are their own witnesses; +they see not, nor know; that they may be ashamed. + +44:10 Who hath formed a god, or molten a graven image that is +profitable for nothing? 44:11 Behold, all his fellows shall be +ashamed: and the workmen, they are of men: let them all be gathered +together, let them stand up; yet they shall fear, and they shall be +ashamed together. + +44:12 The smith with the tongs both worketh in the coals, and +fashioneth it with hammers, and worketh it with the strength of his +arms: yea, he is hungry, and his strength faileth: he drinketh no +water, and is faint. + +44:13 The carpenter stretcheth out his rule; he marketh it out with a +line; he fitteth it with planes, and he marketh it out with the +compass, and maketh it after the figure of a man, according to the +beauty of a man; that it may remain in the house. + +44:14 He heweth him down cedars, and taketh the cypress and the oak, +which he strengtheneth for himself among the trees of the forest: he +planteth an ash, and the rain doth nourish it. + +44:15 Then shall it be for a man to burn: for he will take thereof, +and warm himself; yea, he kindleth it, and baketh bread; yea, he +maketh a god, and worshippeth it; he maketh it a graven image, and +falleth down thereto. + +44:16 He burneth part thereof in the fire; with part thereof he eateth +flesh; he roasteth roast, and is satisfied: yea, he warmeth himself, +and saith, Aha, I am warm, I have seen the fire: 44:17 And the residue +thereof he maketh a god, even his graven image: he falleth down unto +it, and worshippeth it, and prayeth unto it, and saith, Deliver me; +for thou art my god. + +44:18 They have not known nor understood: for he hath shut their eyes, +that they cannot see; and their hearts, that they cannot understand. + +44:19 And none considereth in his heart, neither is there knowledge +nor understanding to say, I have burned part of it in the fire; yea, +also I have baked bread upon the coals thereof; I have roasted flesh, +and eaten it: and shall I make the residue thereof an abomination? +shall I fall down to the stock of a tree? 44:20 He feedeth on ashes: +a deceived heart hath turned him aside, that he cannot deliver his +soul, nor say, Is there not a lie in my right hand? 44:21 Remember +these, O Jacob and Israel; for thou art my servant: I have formed +thee; thou art my servant: O Israel, thou shalt not be forgotten of +me. + +44:22 I have blotted out, as a thick cloud, thy transgressions, and, +as a cloud, thy sins: return unto me; for I have redeemed thee. + +44:23 Sing, O ye heavens; for the LORD hath done it: shout, ye lower +parts of the earth: break forth into singing, ye mountains, O forest, +and every tree therein: for the LORD hath redeemed Jacob, and +glorified himself in Israel. + +44:24 Thus saith the LORD, thy redeemer, and he that formed thee from +the womb, I am the LORD that maketh all things; that stretcheth forth +the heavens alone; that spreadeth abroad the earth by myself; 44:25 +That frustrateth the tokens of the liars, and maketh diviners mad; +that turneth wise men backward, and maketh their knowledge foolish; +44:26 That confirmeth the word of his servant, and performeth the +counsel of his messengers; that saith to Jerusalem, Thou shalt be +inhabited; and to the cities of Judah, Ye shall be built, and I will +raise up the decayed places thereof: 44:27 That saith to the deep, Be +dry, and I will dry up thy rivers: 44:28 That saith of Cyrus, He is my +shepherd, and shall perform all my pleasure: even saying to Jerusalem, +Thou shalt be built; and to the temple, Thy foundation shall be laid. + +45:1 Thus saith the LORD to his anointed, to Cyrus, whose right hand I +have holden, to subdue nations before him; and I will loose the loins +of kings, to open before him the two leaved gates; and the gates shall +not be shut; 45:2 I will go before thee, and make the crooked places +straight: I will break in pieces the gates of brass, and cut in sunder +the bars of iron: 45:3 And I will give thee the treasures of darkness, +and hidden riches of secret places, that thou mayest know that I, the +LORD, which call thee by thy name, am the God of Israel. + +45:4 For Jacob my servant's sake, and Israel mine elect, I have even +called thee by thy name: I have surnamed thee, though thou hast not +known me. + +45:5 I am the LORD, and there is none else, there is no God beside me: +I girded thee, though thou hast not known me: 45:6 That they may know +from the rising of the sun, and from the west, that there is none +beside me. I am the LORD, and there is none else. + +45:7 I form the light, and create darkness: I make peace, and create +evil: I the LORD do all these things. + +45:8 Drop down, ye heavens, from above, and let the skies pour down +righteousness: let the earth open, and let them bring forth salvation, +and let righteousness spring up together; I the LORD have created it. + +45:9 Woe unto him that striveth with his Maker! Let the potsherd +strive with the potsherds of the earth. Shall the clay say to him that +fashioneth it, What makest thou? or thy work, He hath no hands? 45:10 +Woe unto him that saith unto his father, What begettest thou? or to +the woman, What hast thou brought forth? 45:11 Thus saith the LORD, +the Holy One of Israel, and his Maker, Ask me of things to come +concerning my sons, and concerning the work of my hands command ye me. + +45:12 I have made the earth, and created man upon it: I, even my +hands, have stretched out the heavens, and all their host have I +commanded. + +45:13 I have raised him up in righteousness, and I will direct all his +ways: he shall build my city, and he shall let go my captives, not for +price nor reward, saith the LORD of hosts. + +45:14 Thus saith the LORD, The labour of Egypt, and merchandise of +Ethiopia and of the Sabeans, men of stature, shall come over unto +thee, and they shall be thine: they shall come after thee; in chains +they shall come over, and they shall fall down unto thee, they shall +make supplication unto thee, saying, Surely God is in thee; and there +is none else, there is no God. + +45:15 Verily thou art a God that hidest thyself, O God of Israel, the +Saviour. + +45:16 They shall be ashamed, and also confounded, all of them: they +shall go to confusion together that are makers of idols. + +45:17 But Israel shall be saved in the LORD with an everlasting +salvation: ye shall not be ashamed nor confounded world without end. + +45:18 For thus saith the LORD that created the heavens; God himself +that formed the earth and made it; he hath established it, he created +it not in vain, he formed it to be inhabited: I am the LORD; and there +is none else. + +45:19 I have not spoken in secret, in a dark place of the earth: I +said not unto the seed of Jacob, Seek ye me in vain: I the LORD speak +righteousness, I declare things that are right. + +45:20 Assemble yourselves and come; draw near together, ye that are +escaped of the nations: they have no knowledge that set up the wood of +their graven image, and pray unto a god that cannot save. + +45:21 Tell ye, and bring them near; yea, let them take counsel +together: who hath declared this from ancient time? who hath told it +from that time? have not I the LORD? and there is no God else beside +me; a just God and a Saviour; there is none beside me. + +45:22 Look unto me, and be ye saved, all the ends of the earth: for I +am God, and there is none else. + +45:23 I have sworn by myself, the word is gone out of my mouth in +righteousness, and shall not return, That unto me every knee shall +bow, every tongue shall swear. + +45:24 Surely, shall one say, in the LORD have I righteousness and +strength: even to him shall men come; and all that are incensed +against him shall be ashamed. + +45:25 In the LORD shall all the seed of Israel be justified, and shall +glory. + +46:1 Bel boweth down, Nebo stoopeth, their idols were upon the beasts, +and upon the cattle: your carriages were heavy loaden; they are a +burden to the weary beast. + +46:2 They stoop, they bow down together; they could not deliver the +burden, but themselves are gone into captivity. + +46:3 Hearken unto me, O house of Jacob, and all the remnant of the +house of Israel, which are borne by me from the belly, which are +carried from the womb: 46:4 And even to your old age I am he; and even +to hoar hairs will I carry you: I have made, and I will bear; even I +will carry, and will deliver you. + +46:5 To whom will ye liken me, and make me equal, and compare me, that +we may be like? 46:6 They lavish gold out of the bag, and weigh +silver in the balance, and hire a goldsmith; and he maketh it a god: +they fall down, yea, they worship. + +46:7 They bear him upon the shoulder, they carry him, and set him in +his place, and he standeth; from his place shall he not remove: yea, +one shall cry unto him, yet can he not answer, nor save him out of his +trouble. + +46:8 Remember this, and shew yourselves men: bring it again to mind, O +ye transgressors. + +46:9 Remember the former things of old: for I am God, and there is +none else; I am God, and there is none like me, 46:10 Declaring the +end from the beginning, and from ancient times the things that are not +yet done, saying, My counsel shall stand, and I will do all my +pleasure: 46:11 Calling a ravenous bird from the east, the man that +executeth my counsel from a far country: yea, I have spoken it, I will +also bring it to pass; I have purposed it, I will also do it. + +46:12 Hearken unto me, ye stouthearted, that are far from +righteousness: 46:13 I bring near my righteousness; it shall not be +far off, and my salvation shall not tarry: and I will place salvation +in Zion for Israel my glory. + +47:1 Come down, and sit in the dust, O virgin daughter of Babylon, sit +on the ground: there is no throne, O daughter of the Chaldeans: for +thou shalt no more be called tender and delicate. + +47:2 Take the millstones, and grind meal: uncover thy locks, make bare +the leg, uncover the thigh, pass over the rivers. + +47:3 Thy nakedness shall be uncovered, yea, thy shame shall be seen: I +will take vengeance, and I will not meet thee as a man. + +47:4 As for our redeemer, the LORD of hosts is his name, the Holy One +of Israel. + +47:5 Sit thou silent, and get thee into darkness, O daughter of the +Chaldeans: for thou shalt no more be called, The lady of kingdoms. + +47:6 I was wroth with my people, I have polluted mine inheritance, and +given them into thine hand: thou didst shew them no mercy; upon the +ancient hast thou very heavily laid thy yoke. + +47:7 And thou saidst, I shall be a lady for ever: so that thou didst +not lay these things to thy heart, neither didst remember the latter +end of it. + +47:8 Therefore hear now this, thou that art given to pleasures, that +dwellest carelessly, that sayest in thine heart, I am, and none else +beside me; I shall not sit as a widow, neither shall I know the loss +of children: 47:9 But these two things shall come to thee in a moment +in one day, the loss of children, and widowhood: they shall come upon +thee in their perfection for the multitude of thy sorceries, and for +the great abundance of thine enchantments. + +47:10 For thou hast trusted in thy wickedness: thou hast said, None +seeth me. Thy wisdom and thy knowledge, it hath perverted thee; and +thou hast said in thine heart, I am, and none else beside me. + +47:11 Therefore shall evil come upon thee; thou shalt not know from +whence it riseth: and mischief shall fall upon thee; thou shalt not be +able to put it off: and desolation shall come upon thee suddenly, +which thou shalt not know. + +47:12 Stand now with thine enchantments, and with the multitude of thy +sorceries, wherein thou hast laboured from thy youth; if so be thou +shalt be able to profit, if so be thou mayest prevail. + +47:13 Thou art wearied in the multitude of thy counsels. Let now the +astrologers, the stargazers, the monthly prognosticators, stand up, +and save thee from these things that shall come upon thee. + +47:14 Behold, they shall be as stubble; the fire shall burn them; they +shall not deliver themselves from the power of the flame: there shall +not be a coal to warm at, nor fire to sit before it. + +47:15 Thus shall they be unto thee with whom thou hast laboured, even +thy merchants, from thy youth: they shall wander every one to his +quarter; none shall save thee. + +48:1 Hear ye this, O house of Jacob, which are called by the name of +Israel, and are come forth out of the waters of Judah, which swear by +the name of the LORD, and make mention of the God of Israel, but not +in truth, nor in righteousness. + +48:2 For they call themselves of the holy city, and stay themselves +upon the God of Israel; The LORD of hosts is his name. + +48:3 I have declared the former things from the beginning; and they +went forth out of my mouth, and I shewed them; I did them suddenly, +and they came to pass. + +48:4 Because I knew that thou art obstinate, and thy neck is an iron +sinew, and thy brow brass; 48:5 I have even from the beginning +declared it to thee; before it came to pass I shewed it thee: lest +thou shouldest say, Mine idol hath done them, and my graven image, and +my molten image, hath commanded them. + +48:6 Thou hast heard, see all this; and will not ye declare it? I have +shewed thee new things from this time, even hidden things, and thou +didst not know them. + +48:7 They are created now, and not from the beginning; even before the +day when thou heardest them not; lest thou shouldest say, Behold, I +knew them. + +48:8 Yea, thou heardest not; yea, thou knewest not; yea, from that +time that thine ear was not opened: for I knew that thou wouldest deal +very treacherously, and wast called a transgressor from the womb. + +48:9 For my name's sake will I defer mine anger, and for my praise +will I refrain for thee, that I cut thee not off. + +48:10 Behold, I have refined thee, but not with silver; I have chosen +thee in the furnace of affliction. + +48:11 For mine own sake, even for mine own sake, will I do it: for how +should my name be polluted? and I will not give my glory unto another. + +48:12 Hearken unto me, O Jacob and Israel, my called; I am he; I am +the first, I also am the last. + +48:13 Mine hand also hath laid the foundation of the earth, and my +right hand hath spanned the heavens: when I call unto them, they stand +up together. + +48:14 All ye, assemble yourselves, and hear; which among them hath +declared these things? The LORD hath loved him: he will do his +pleasure on Babylon, and his arm shall be on the Chaldeans. + +48:15 I, even I, have spoken; yea, I have called him: I have brought +him, and he shall make his way prosperous. + +48:16 Come ye near unto me, hear ye this; I have not spoken in secret +from the beginning; from the time that it was, there am I: and now the +Lord GOD, and his Spirit, hath sent me. + +48:17 Thus saith the LORD, thy Redeemer, the Holy One of Israel; I am +the LORD thy God which teacheth thee to profit, which leadeth thee by +the way that thou shouldest go. + +48:18 O that thou hadst hearkened to my commandments! then had thy +peace been as a river, and thy righteousness as the waves of the sea: +48:19 Thy seed also had been as the sand, and the offspring of thy +bowels like the gravel thereof; his name should not have been cut off +nor destroyed from before me. + +48:20 Go ye forth of Babylon, flee ye from the Chaldeans, with a voice +of singing declare ye, tell this, utter it even to the end of the +earth; say ye, The LORD hath redeemed his servant Jacob. + +48:21 And they thirsted not when he led them through the deserts: he +caused the waters to flow out of the rock for them: he clave the rock +also, and the waters gushed out. + +48:22 There is no peace, saith the LORD, unto the wicked. + +49:1 Listen, O isles, unto me; and hearken, ye people, from far; The +LORD hath called me from the womb; from the bowels of my mother hath +he made mention of my name. + +49:2 And he hath made my mouth like a sharp sword; in the shadow of +his hand hath he hid me, and made me a polished shaft; in his quiver +hath he hid me; 49:3 And said unto me, Thou art my servant, O Israel, +in whom I will be glorified. + +49:4 Then I said, I have laboured in vain, I have spent my strength +for nought, and in vain: yet surely my judgment is with the LORD, and +my work with my God. + +49:5 And now, saith the LORD that formed me from the womb to be his +servant, to bring Jacob again to him, Though Israel be not gathered, +yet shall I be glorious in the eyes of the LORD, and my God shall be +my strength. + +49:6 And he said, It is a light thing that thou shouldest be my +servant to raise up the tribes of Jacob, and to restore the preserved +of Israel: I will also give thee for a light to the Gentiles, that +thou mayest be my salvation unto the end of the earth. + +49:7 Thus saith the LORD, the Redeemer of Israel, and his Holy One, to +him whom man despiseth, to him whom the nation abhorreth, to a servant +of rulers, Kings shall see and arise, princes also shall worship, +because of the LORD that is faithful, and the Holy One of Israel, and +he shall choose thee. + +49:8 Thus saith the LORD, In an acceptable time have I heard thee, and +in a day of salvation have I helped thee: and I will preserve thee, +and give thee for a covenant of the people, to establish the earth, to +cause to inherit the desolate heritages; 49:9 That thou mayest say to +the prisoners, Go forth; to them that are in darkness, Shew +yourselves. They shall feed in the ways, and their pastures shall be +in all high places. + +49:10 They shall not hunger nor thirst; neither shall the heat nor sun +smite them: for he that hath mercy on them shall lead them, even by +the springs of water shall he guide them. + +49:11 And I will make all my mountains a way, and my highways shall be +exalted. + +49:12 Behold, these shall come from far: and, lo, these from the north +and from the west; and these from the land of Sinim. + +49:13 Sing, O heavens; and be joyful, O earth; and break forth into +singing, O mountains: for the LORD hath comforted his people, and will +have mercy upon his afflicted. + +49:14 But Zion said, The LORD hath forsaken me, and my Lord hath +forgotten me. + +49:15 Can a woman forget her sucking child, that she should not have +compassion on the son of her womb? yea, they may forget, yet will I +not forget thee. + +49:16 Behold, I have graven thee upon the palms of my hands; thy walls +are continually before me. + +49:17 Thy children shall make haste; thy destroyers and they that made +thee waste shall go forth of thee. + +49:18 Lift up thine eyes round about, and behold: all these gather +themselves together, and come to thee. As I live, saith the LORD, thou +shalt surely clothe thee with them all, as with an ornament, and bind +them on thee, as a bride doeth. + +49:19 For thy waste and thy desolate places, and the land of thy +destruction, shall even now be too narrow by reason of the +inhabitants, and they that swallowed thee up shall be far away. + +49:20 The children which thou shalt have, after thou hast lost the +other, shall say again in thine ears, The place is too strait for me: +give place to me that I may dwell. + +49:21 Then shalt thou say in thine heart, Who hath begotten me these, +seeing I have lost my children, and am desolate, a captive, and +removing to and fro? and who hath brought up these? Behold, I was left +alone; these, where had they been? 49:22 Thus saith the Lord GOD, +Behold, I will lift up mine hand to the Gentiles, and set up my +standard to the people: and they shall bring thy sons in their arms, +and thy daughters shall be carried upon their shoulders. + +49:23 And kings shall be thy nursing fathers, and their queens thy +nursing mothers: they shall bow down to thee with their face toward +the earth, and lick up the dust of thy feet; and thou shalt know that +I am the LORD: for they shall not be ashamed that wait for me. + +49:24 Shall the prey be taken from the mighty, or the lawful captive +delivered? 49:25 But thus saith the LORD, Even the captives of the +mighty shall be taken away, and the prey of the terrible shall be +delivered: for I will contend with him that contendeth with thee, and +I will save thy children. + +49:26 And I will feed them that oppress thee with their own flesh; and +they shall be drunken with their own blood, as with sweet wine: and +all flesh shall know that I the LORD am thy Saviour and thy Redeemer, +the mighty One of Jacob. + +50:1 Thus saith the LORD, Where is the bill of your mother's +divorcement, whom I have put away? or which of my creditors is it to +whom I have sold you? Behold, for your iniquities have ye sold +yourselves, and for your transgressions is your mother put away. + +50:2 Wherefore, when I came, was there no man? when I called, was +there none to answer? Is my hand shortened at all, that it cannot +redeem? or have I no power to deliver? behold, at my rebuke I dry up +the sea, I make the rivers a wilderness: their fish stinketh, because +there is no water, and dieth for thirst. + +50:3 I clothe the heavens with blackness, and I make sackcloth their +covering. + +50:4 The Lord GOD hath given me the tongue of the learned, that I +should know how to speak a word in season to him that is weary: he +wakeneth morning by morning, he wakeneth mine ear to hear as the +learned. + +50:5 The Lord GOD hath opened mine ear, and I was not rebellious, +neither turned away back. + +50:6 I gave my back to the smiters, and my cheeks to them that plucked +off the hair: I hid not my face from shame and spitting. + +50:7 For the Lord GOD will help me; therefore shall I not be +confounded: therefore have I set my face like a flint, and I know that +I shall not be ashamed. + +50:8 He is near that justifieth me; who will contend with me? let us +stand together: who is mine adversary? let him come near to me. + +50:9 Behold, the Lord GOD will help me; who is he that shall condemn +me? lo, they all shall wax old as a garment; the moth shall eat them +up. + +50:10 Who is among you that feareth the LORD, that obeyeth the voice +of his servant, that walketh in darkness, and hath no light? let him +trust in the name of the LORD, and stay upon his God. + +50:11 Behold, all ye that kindle a fire, that compass yourselves about +with sparks: walk in the light of your fire, and in the sparks that ye +have kindled. This shall ye have of mine hand; ye shall lie down in +sorrow. + +51:1 Hearken to me, ye that follow after righteousness, ye that seek +the LORD: look unto the rock whence ye are hewn, and to the hole of +the pit whence ye are digged. + +51:2 Look unto Abraham your father, and unto Sarah that bare you: for +I called him alone, and blessed him, and increased him. + +51:3 For the LORD shall comfort Zion: he will comfort all her waste +places; and he will make her wilderness like Eden, and her desert like +the garden of the LORD; joy and gladness shall be found therein, +thanksgiving, and the voice of melody. + +51:4 Hearken unto me, my people; and give ear unto me, O my nation: +for a law shall proceed from me, and I will make my judgment to rest +for a light of the people. + +51:5 My righteousness is near; my salvation is gone forth, and mine +arms shall judge the people; the isles shall wait upon me, and on mine +arm shall they trust. + +51:6 Lift up your eyes to the heavens, and look upon the earth +beneath: for the heavens shall vanish away like smoke, and the earth +shall wax old like a garment, and they that dwell therein shall die in +like manner: but my salvation shall be for ever, and my righteousness +shall not be abolished. + +51:7 Hearken unto me, ye that know righteousness, the people in whose +heart is my law; fear ye not the reproach of men, neither be ye afraid +of their revilings. + +51:8 For the moth shall eat them up like a garment, and the worm shall +eat them like wool: but my righteousness shall be for ever, and my +salvation from generation to generation. + +51:9 Awake, awake, put on strength, O arm of the LORD; awake, as in +the ancient days, in the generations of old. Art thou not it that hath +cut Rahab, and wounded the dragon? 51:10 Art thou not it which hath +dried the sea, the waters of the great deep; that hath made the depths +of the sea a way for the ransomed to pass over? 51:11 Therefore the +redeemed of the LORD shall return, and come with singing unto Zion; +and everlasting joy shall be upon their head: they shall obtain +gladness and joy; and sorrow and mourning shall flee away. + +51:12 I, even I, am he that comforteth you: who art thou, that thou +shouldest be afraid of a man that shall die, and of the son of man +which shall be made as grass; 51:13 And forgettest the LORD thy maker, +that hath stretched forth the heavens, and laid the foundations of the +earth; and hast feared continually every day because of the fury of +the oppressor, as if he were ready to destroy? and where is the fury +of the oppressor? 51:14 The captive exile hasteneth that he may be +loosed, and that he should not die in the pit, nor that his bread +should fail. + +51:15 But I am the LORD thy God, that divided the sea, whose waves +roared: The LORD of hosts is his name. + +51:16 And I have put my words in thy mouth, and I have covered thee in +the shadow of mine hand, that I may plant the heavens, and lay the +foundations of the earth, and say unto Zion, Thou art my people. + +51:17 Awake, awake, stand up, O Jerusalem, which hast drunk at the +hand of the LORD the cup of his fury; thou hast drunken the dregs of +the cup of trembling, and wrung them out. + +51:18 There is none to guide her among all the sons whom she hath +brought forth; neither is there any that taketh her by the hand of all +the sons that she hath brought up. + +51:19 These two things are come unto thee; who shall be sorry for +thee? desolation, and destruction, and the famine, and the sword: by +whom shall I comfort thee? 51:20 Thy sons have fainted, they lie at +the head of all the streets, as a wild bull in a net: they are full of +the fury of the LORD, the rebuke of thy God. + +51:21 Therefore hear now this, thou afflicted, and drunken, but not +with wine: 51:22 Thus saith thy Lord the LORD, and thy God that +pleadeth the cause of his people, Behold, I have taken out of thine +hand the cup of trembling, even the dregs of the cup of my fury; thou +shalt no more drink it again: 51:23 But I will put it into the hand of +them that afflict thee; which have said to thy soul, Bow down, that we +may go over: and thou hast laid thy body as the ground, and as the +street, to them that went over. + +52:1 Awake, awake; put on thy strength, O Zion; put on thy beautiful +garments, O Jerusalem, the holy city: for henceforth there shall no +more come into thee the uncircumcised and the unclean. + +52:2 Shake thyself from the dust; arise, and sit down, O Jerusalem: +loose thyself from the bands of thy neck, O captive daughter of Zion. + +52:3 For thus saith the LORD, Ye have sold yourselves for nought; and +ye shall be redeemed without money. + +52:4 For thus saith the Lord GOD, My people went down aforetime into +Egypt to sojourn there; and the Assyrian oppressed them without cause. + +52:5 Now therefore, what have I here, saith the LORD, that my people +is taken away for nought? they that rule over them make them to howl, +saith the LORD; and my name continually every day is blasphemed. + +52:6 Therefore my people shall know my name: therefore they shall know +in that day that I am he that doth speak: behold, it is I. + +52:7 How beautiful upon the mountains are the feet of him that +bringeth good tidings, that publisheth peace; that bringeth good +tidings of good, that publisheth salvation; that saith unto Zion, Thy +God reigneth! 52:8 Thy watchmen shall lift up the voice; with the +voice together shall they sing: for they shall see eye to eye, when +the LORD shall bring again Zion. + +52:9 Break forth into joy, sing together, ye waste places of +Jerusalem: for the LORD hath comforted his people, he hath redeemed +Jerusalem. + +52:10 The LORD hath made bare his holy arm in the eyes of all the +nations; and all the ends of the earth shall see the salvation of our +God. + +52:11 Depart ye, depart ye, go ye out from thence, touch no unclean +thing; go ye out of the midst of her; be ye clean, that bear the +vessels of the LORD. + +52:12 For ye shall not go out with haste, nor go by flight: for the +LORD will go before you; and the God of Israel will be your rereward. + +52:13 Behold, my servant shall deal prudently, he shall be exalted and +extolled, and be very high. + +52:14 As many were astonied at thee; his visage was so marred more +than any man, and his form more than the sons of men: 52:15 So shall +he sprinkle many nations; the kings shall shut their mouths at him: +for that which had not been told them shall they see; and that which +they had not heard shall they consider. + +53:1 Who hath believed our report? and to whom is the arm of the LORD +revealed? 53:2 For he shall grow up before him as a tender plant, and +as a root out of a dry ground: he hath no form nor comeliness; and +when we shall see him, there is no beauty that we should desire him. + +53:3 He is despised and rejected of men; a man of sorrows, and +acquainted with grief: and we hid as it were our faces from him; he +was despised, and we esteemed him not. + +53:4 Surely he hath borne our griefs, and carried our sorrows: yet we +did esteem him stricken, smitten of God, and afflicted. + +53:5 But he was wounded for our transgressions, he was bruised for our +iniquities: the chastisement of our peace was upon him; and with his +stripes we are healed. + +53:6 All we like sheep have gone astray; we have turned every one to +his own way; and the LORD hath laid on him the iniquity of us all. + +53:7 He was oppressed, and he was afflicted, yet he opened not his +mouth: he is brought as a lamb to the slaughter, and as a sheep before +her shearers is dumb, so he openeth not his mouth. + +53:8 He was taken from prison and from judgment: and who shall declare +his generation? for he was cut off out of the land of the living: for +the transgression of my people was he stricken. + +53:9 And he made his grave with the wicked, and with the rich in his +death; because he had done no violence, neither was any deceit in his +mouth. + +53:10 Yet it pleased the LORD to bruise him; he hath put him to grief: +when thou shalt make his soul an offering for sin, he shall see his +seed, he shall prolong his days, and the pleasure of the LORD shall +prosper in his hand. + +53:11 He shall see of the travail of his soul, and shall be satisfied: +by his knowledge shall my righteous servant justify many; for he shall +bear their iniquities. + +53:12 Therefore will I divide him a portion with the great, and he +shall divide the spoil with the strong; because he hath poured out his +soul unto death: and he was numbered with the transgressors; and he +bare the sin of many, and made intercession for the transgressors. + +54:1 Sing, O barren, thou that didst not bear; break forth into +singing, and cry aloud, thou that didst not travail with child: for +more are the children of the desolate than the children of the married +wife, saith the LORD. + +54:2 Enlarge the place of thy tent, and let them stretch forth the +curtains of thine habitations: spare not, lengthen thy cords, and +strengthen thy stakes; 54:3 For thou shalt break forth on the right +hand and on the left; and thy seed shall inherit the Gentiles, and +make the desolate cities to be inhabited. + +54:4 Fear not; for thou shalt not be ashamed: neither be thou +confounded; for thou shalt not be put to shame: for thou shalt forget +the shame of thy youth, and shalt not remember the reproach of thy +widowhood any more. + +54:5 For thy Maker is thine husband; the LORD of hosts is his name; +and thy Redeemer the Holy One of Israel; The God of the whole earth +shall he be called. + +54:6 For the LORD hath called thee as a woman forsaken and grieved in +spirit, and a wife of youth, when thou wast refused, saith thy God. + +54:7 For a small moment have I forsaken thee; but with great mercies +will I gather thee. + +54:8 In a little wrath I hid my face from thee for a moment; but with +everlasting kindness will I have mercy on thee, saith the LORD thy +Redeemer. + +54:9 For this is as the waters of Noah unto me: for as I have sworn +that the waters of Noah should no more go over the earth; so have I +sworn that I would not be wroth with thee, nor rebuke thee. + +54:10 For the mountains shall depart, and the hills be removed; but my +kindness shall not depart from thee, neither shall the covenant of my +peace be removed, saith the LORD that hath mercy on thee. + +54:11 O thou afflicted, tossed with tempest, and not comforted, +behold, I will lay thy stones with fair colours, and lay thy +foundations with sapphires. + +54:12 And I will make thy windows of agates, and thy gates of +carbuncles, and all thy borders of pleasant stones. + +54:13 And all thy children shall be taught of the LORD; and great +shall be the peace of thy children. + +54:14 In righteousness shalt thou be established: thou shalt be far +from oppression; for thou shalt not fear: and from terror; for it +shall not come near thee. + +54:15 Behold, they shall surely gather together, but not by me: +whosoever shall gather together against thee shall fall for thy sake. + +54:16 Behold, I have created the smith that bloweth the coals in the +fire, and that bringeth forth an instrument for his work; and I have +created the waster to destroy. + +54:17 No weapon that is formed against thee shall prosper; and every +tongue that shall rise against thee in judgment thou shalt condemn. +This is the heritage of the servants of the LORD, and their +righteousness is of me, saith the LORD. + +55:1 Ho, every one that thirsteth, come ye to the waters, and he that +hath no money; come ye, buy, and eat; yea, come, buy wine and milk +without money and without price. + +55:2 Wherefore do ye spend money for that which is not bread? and your +labour for that which satisfieth not? hearken diligently unto me, and +eat ye that which is good, and let your soul delight itself in +fatness. + +55:3 Incline your ear, and come unto me: hear, and your soul shall +live; and I will make an everlasting covenant with you, even the sure +mercies of David. + +55:4 Behold, I have given him for a witness to the people, a leader +and commander to the people. + +55:5 Behold, thou shalt call a nation that thou knowest not, and +nations that knew not thee shall run unto thee because of the LORD thy +God, and for the Holy One of Israel; for he hath glorified thee. + +55:6 Seek ye the LORD while he may be found, call ye upon him while he +is near: 55:7 Let the wicked forsake his way, and the unrighteous man +his thoughts: and let him return unto the LORD, and he will have mercy +upon him; and to our God, for he will abundantly pardon. + +55:8 For my thoughts are not your thoughts, neither are your ways my +ways, saith the LORD. + +55:9 For as the heavens are higher than the earth, so are my ways +higher than your ways, and my thoughts than your thoughts. + +55:10 For as the rain cometh down, and the snow from heaven, and +returneth not thither, but watereth the earth, and maketh it bring +forth and bud, that it may give seed to the sower, and bread to the +eater: 55:11 So shall my word be that goeth forth out of my mouth: it +shall not return unto me void, but it shall accomplish that which I +please, and it shall prosper in the thing whereto I sent it. + +55:12 For ye shall go out with joy, and be led forth with peace: the +mountains and the hills shall break forth before you into singing, and +all the trees of the field shall clap their hands. + +55:13 Instead of the thorn shall come up the fir tree, and instead of +the brier shall come up the myrtle tree: and it shall be to the LORD +for a name, for an everlasting sign that shall not be cut off. + +56:1 Thus saith the LORD, Keep ye judgment, and do justice: for my +salvation is near to come, and my righteousness to be revealed. + +56:2 Blessed is the man that doeth this, and the son of man that +layeth hold on it; that keepeth the sabbath from polluting it, and +keepeth his hand from doing any evil. + +56:3 Neither let the son of the stranger, that hath joined himself to +the LORD, speak, saying, The LORD hath utterly separated me from his +people: neither let the eunuch say, Behold, I am a dry tree. + +56:4 For thus saith the LORD unto the eunuchs that keep my sabbaths, +and choose the things that please me, and take hold of my covenant; +56:5 Even unto them will I give in mine house and within my walls a +place and a name better than of sons and of daughters: I will give +them an everlasting name, that shall not be cut off. + +56:6 Also the sons of the stranger, that join themselves to the LORD, +to serve him, and to love the name of the LORD, to be his servants, +every one that keepeth the sabbath from polluting it, and taketh hold +of my covenant; 56:7 Even them will I bring to my holy mountain, and +make them joyful in my house of prayer: their burnt offerings and +their sacrifices shall be accepted upon mine altar; for mine house +shall be called an house of prayer for all people. + +56:8 The Lord GOD, which gathereth the outcasts of Israel saith, Yet +will I gather others to him, beside those that are gathered unto him. + +56:9 All ye beasts of the field, come to devour, yea, all ye beasts in +the forest. + +56:10 His watchmen are blind: they are all ignorant, they are all dumb +dogs, they cannot bark; sleeping, lying down, loving to slumber. + +56:11 Yea, they are greedy dogs which can never have enough, and they +are shepherds that cannot understand: they all look to their own way, +every one for his gain, from his quarter. + +56:12 Come ye, say they, I will fetch wine, and we will fill ourselves +with strong drink; and to morrow shall be as this day, and much more +abundant. + +57:1 The righteous perisheth, and no man layeth it to heart: and +merciful men are taken away, none considering that the righteous is +taken away from the evil to come. + +57:2 He shall enter into peace: they shall rest in their beds, each +one walking in his uprightness. + +57:3 But draw near hither, ye sons of the sorceress, the seed of the +adulterer and the whore. + +57:4 Against whom do ye sport yourselves? against whom make ye a wide +mouth, and draw out the tongue? are ye not children of transgression, +a seed of falsehood. + +57:5 Enflaming yourselves with idols under every green tree, slaying +the children in the valleys under the clifts of the rocks? 57:6 Among +the smooth stones of the stream is thy portion; they, they are thy +lot: even to them hast thou poured a drink offering, thou hast offered +a meat offering. Should I receive comfort in these? 57:7 Upon a lofty +and high mountain hast thou set thy bed: even thither wentest thou up +to offer sacrifice. + +57:8 Behind the doors also and the posts hast thou set up thy +remembrance: for thou hast discovered thyself to another than me, and +art gone up; thou hast enlarged thy bed, and made thee a covenant with +them; thou lovedst their bed where thou sawest it. + +57:9 And thou wentest to the king with ointment, and didst increase +thy perfumes, and didst send thy messengers far off, and didst debase +thyself even unto hell. + +57:10 Thou art wearied in the greatness of thy way; yet saidst thou +not, There is no hope: thou hast found the life of thine hand; +therefore thou wast not grieved. + +57:11 And of whom hast thou been afraid or feared, that thou hast +lied, and hast not remembered me, nor laid it to thy heart? have not I +held my peace even of old, and thou fearest me not? 57:12 I will +declare thy righteousness, and thy works; for they shall not profit +thee. + +57:13 When thou criest, let thy companies deliver thee; but the wind +shall carry them all away; vanity shall take them: but he that putteth +his trust in me shall possess the land, and shall inherit my holy +mountain; 57:14 And shall say, Cast ye up, cast ye up, prepare the +way, take up the stumblingblock out of the way of my people. + +57:15 For thus saith the high and lofty One that inhabiteth eternity, +whose name is Holy; I dwell in the high and holy place, with him also +that is of a contrite and humble spirit, to revive the spirit of the +humble, and to revive the heart of the contrite ones. + +57:16 For I will not contend for ever, neither will I be always wroth: +for the spirit should fail before me, and the souls which I have made. + +57:17 For the iniquity of his covetousness was I wroth, and smote him: +I hid me, and was wroth, and he went on frowardly in the way of his +heart. + +57:18 I have seen his ways, and will heal him: I will lead him also, +and restore comforts unto him and to his mourners. + +57:19 I create the fruit of the lips; Peace, peace to him that is far +off, and to him that is near, saith the LORD; and I will heal him. + +57:20 But the wicked are like the troubled sea, when it cannot rest, +whose waters cast up mire and dirt. + +57:21 There is no peace, saith my God, to the wicked. + +58:1 Cry aloud, spare not, lift up thy voice like a trumpet, and shew +my people their transgression, and the house of Jacob their sins. + +58:2 Yet they seek me daily, and delight to know my ways, as a nation +that did righteousness, and forsook not the ordinance of their God: +they ask of me the ordinances of justice; they take delight in +approaching to God. + +58:3 Wherefore have we fasted, say they, and thou seest not? wherefore +have we afflicted our soul, and thou takest no knowledge? Behold, in +the day of your fast ye find pleasure, and exact all your labours. + +58:4 Behold, ye fast for strife and debate, and to smite with the fist +of wickedness: ye shall not fast as ye do this day, to make your voice +to be heard on high. + +58:5 Is it such a fast that I have chosen? a day for a man to afflict +his soul? is it to bow down his head as a bulrush, and to spread +sackcloth and ashes under him? wilt thou call this a fast, and an +acceptable day to the LORD? 58:6 Is not this the fast that I have +chosen? to loose the bands of wickedness, to undo the heavy burdens, +and to let the oppressed go free, and that ye break every yoke? 58:7 +Is it not to deal thy bread to the hungry, and that thou bring the +poor that are cast out to thy house? when thou seest the naked, that +thou cover him; and that thou hide not thyself from thine own flesh? +58:8 Then shall thy light break forth as the morning, and thine health +shall spring forth speedily: and thy righteousness shall go before +thee; the glory of the LORD shall be thy rereward. + +58:9 Then shalt thou call, and the LORD shall answer; thou shalt cry, +and he shall say, Here I am. If thou take away from the midst of thee +the yoke, the putting forth of the finger, and speaking vanity; 58:10 +And if thou draw out thy soul to the hungry, and satisfy the afflicted +soul; then shall thy light rise in obscurity, and thy darkness be as +the noon day: 58:11 And the LORD shall guide thee continually, and +satisfy thy soul in drought, and make fat thy bones: and thou shalt be +like a watered garden, and like a spring of water, whose waters fail +not. + +58:12 And they that shall be of thee shall build the old waste places: +thou shalt raise up the foundations of many generations; and thou +shalt be called, The repairer of the breach, The restorer of paths to +dwell in. + +58:13 If thou turn away thy foot from the sabbath, from doing thy +pleasure on my holy day; and call the sabbath a delight, the holy of +the LORD, honourable; and shalt honour him, not doing thine own ways, +nor finding thine own pleasure, nor speaking thine own words: 58:14 +Then shalt thou delight thyself in the LORD; and I will cause thee to +ride upon the high places of the earth, and feed thee with the +heritage of Jacob thy father: for the mouth of the LORD hath spoken +it. + +59:1 Behold, the LORD's hand is not shortened, that it cannot save; +neither his ear heavy, that it cannot hear: 59:2 But your iniquities +have separated between you and your God, and your sins have hid his +face from you, that he will not hear. + +59:3 For your hands are defiled with blood, and your fingers with +iniquity; your lips have spoken lies, your tongue hath muttered +perverseness. + +59:4 None calleth for justice, nor any pleadeth for truth: they trust +in vanity, and speak lies; they conceive mischief, and bring forth +iniquity. + +59:5 They hatch cockatrice' eggs, and weave the spider's web: he that +eateth of their eggs dieth, and that which is crushed breaketh out +into a viper. + +59:6 Their webs shall not become garments, neither shall they cover +themselves with their works: their works are works of iniquity, and +the act of violence is in their hands. + +59:7 Their feet run to evil, and they make haste to shed innocent +blood: their thoughts are thoughts of iniquity; wasting and +destruction are in their paths. + +59:8 The way of peace they know not; and there is no judgment in their +goings: they have made them crooked paths: whosoever goeth therein +shall not know peace. + +59:9 Therefore is judgment far from us, neither doth justice overtake +us: we wait for light, but behold obscurity; for brightness, but we +walk in darkness. + +59:10 We grope for the wall like the blind, and we grope as if we had +no eyes: we stumble at noon day as in the night; we are in desolate +places as dead men. + +59:11 We roar all like bears, and mourn sore like doves: we look for +judgment, but there is none; for salvation, but it is far off from us. + +59:12 For our transgressions are multiplied before thee, and our sins +testify against us: for our transgressions are with us; and as for our +iniquities, we know them; 59:13 In transgressing and lying against the +LORD, and departing away from our God, speaking oppression and revolt, +conceiving and uttering from the heart words of falsehood. + +59:14 And judgment is turned away backward, and justice standeth afar +off: for truth is fallen in the street, and equity cannot enter. + +59:15 Yea, truth faileth; and he that departeth from evil maketh +himself a prey: and the LORD saw it, and it displeased him that there +was no judgment. + +59:16 And he saw that there was no man, and wondered that there was no +intercessor: therefore his arm brought salvation unto him; and his +righteousness, it sustained him. + +59:17 For he put on righteousness as a breastplate, and an helmet of +salvation upon his head; and he put on the garments of vengeance for +clothing, and was clad with zeal as a cloak. + +59:18 According to their deeds, accordingly he will repay, fury to his +adversaries, recompence to his enemies; to the islands he will repay +recompence. + +59:19 So shall they fear the name of the LORD from the west, and his +glory from the rising of the sun. When the enemy shall come in like a +flood, the Spirit of the LORD shall lift up a standard against him. + +59:20 And the Redeemer shall come to Zion, and unto them that turn +from transgression in Jacob, saith the LORD. + +59:21 As for me, this is my covenant with them, saith the LORD; My +spirit that is upon thee, and my words which I have put in thy mouth, +shall not depart out of thy mouth, nor out of the mouth of thy seed, +nor out of the mouth of thy seed's seed, saith the LORD, from +henceforth and for ever. + +60:1 Arise, shine; for thy light is come, and the glory of the LORD is +risen upon thee. + +60:2 For, behold, the darkness shall cover the earth, and gross +darkness the people: but the LORD shall arise upon thee, and his glory +shall be seen upon thee. + +60:3 And the Gentiles shall come to thy light, and kings to the +brightness of thy rising. + +60:4 Lift up thine eyes round about, and see: all they gather +themselves together, they come to thee: thy sons shall come from far, +and thy daughters shall be nursed at thy side. + +60:5 Then thou shalt see, and flow together, and thine heart shall +fear, and be enlarged; because the abundance of the sea shall be +converted unto thee, the forces of the Gentiles shall come unto thee. + +60:6 The multitude of camels shall cover thee, the dromedaries of +Midian and Ephah; all they from Sheba shall come: they shall bring +gold and incense; and they shall shew forth the praises of the LORD. + +60:7 All the flocks of Kedar shall be gathered together unto thee, the +rams of Nebaioth shall minister unto thee: they shall come up with +acceptance on mine altar, and I will glorify the house of my glory. + +60:8 Who are these that fly as a cloud, and as the doves to their +windows? 60:9 Surely the isles shall wait for me, and the ships of +Tarshish first, to bring thy sons from far, their silver and their +gold with them, unto the name of the LORD thy God, and to the Holy One +of Israel, because he hath glorified thee. + +60:10 And the sons of strangers shall build up thy walls, and their +kings shall minister unto thee: for in my wrath I smote thee, but in +my favour have I had mercy on thee. + +60:11 Therefore thy gates shall be open continually; they shall not be +shut day nor night; that men may bring unto thee the forces of the +Gentiles, and that their kings may be brought. + +60:12 For the nation and kingdom that will not serve thee shall +perish; yea, those nations shall be utterly wasted. + +60:13 The glory of Lebanon shall come unto thee, the fir tree, the +pine tree, and the box together, to beautify the place of my +sanctuary; and I will make the place of my feet glorious. + +60:14 The sons also of them that afflicted thee shall come bending +unto thee; and all they that despised thee shall bow themselves down +at the soles of thy feet; and they shall call thee; The city of the +LORD, The Zion of the Holy One of Israel. + +60:15 Whereas thou has been forsaken and hated, so that no man went +through thee, I will make thee an eternal excellency, a joy of many +generations. + +60:16 Thou shalt also suck the milk of the Gentiles, and shalt suck +the breast of kings: and thou shalt know that I the LORD am thy +Saviour and thy Redeemer, the mighty One of Jacob. + +60:17 For brass I will bring gold, and for iron I will bring silver, +and for wood brass, and for stones iron: I will also make thy officers +peace, and thine exactors righteousness. + +60:18 Violence shall no more be heard in thy land, wasting nor +destruction within thy borders; but thou shalt call thy walls +Salvation, and thy gates Praise. + +60:19 The sun shall be no more thy light by day; neither for +brightness shall the moon give light unto thee: but the LORD shall be +unto thee an everlasting light, and thy God thy glory. + +60:20 Thy sun shall no more go down; neither shall thy moon withdraw +itself: for the LORD shall be thine everlasting light, and the days of +thy mourning shall be ended. + +60:21 Thy people also shall be all righteous: they shall inherit the +land for ever, the branch of my planting, the work of my hands, that I +may be glorified. + +60:22 A little one shall become a thousand, and a small one a strong +nation: I the LORD will hasten it in his time. + +61:1 The Spirit of the Lord GOD is upon me; because the LORD hath +anointed me to preach good tidings unto the meek; he hath sent me to +bind up the brokenhearted, to proclaim liberty to the captives, and +the opening of the prison to them that are bound; 61:2 To proclaim the +acceptable year of the LORD, and the day of vengeance of our God; to +comfort all that mourn; 61:3 To appoint unto them that mourn in Zion, +to give unto them beauty for ashes, the oil of joy for mourning, the +garment of praise for the spirit of heaviness; that they might be +called trees of righteousness, the planting of the LORD, that he might +be glorified. + +61:4 And they shall build the old wastes, they shall raise up the +former desolations, and they shall repair the waste cities, the +desolations of many generations. + +61:5 And strangers shall stand and feed your flocks, and the sons of +the alien shall be your plowmen and your vinedressers. + +61:6 But ye shall be named the Priests of the LORD: men shall call you +the Ministers of our God: ye shall eat the riches of the Gentiles, and +in their glory shall ye boast yourselves. + +61:7 For your shame ye shall have double; and for confusion they shall +rejoice in their portion: therefore in their land they shall possess +the double: everlasting joy shall be unto them. + +61:8 For I the LORD love judgment, I hate robbery for burnt offering; +and I will direct their work in truth, and I will make an everlasting +covenant with them. + +61:9 And their seed shall be known among the Gentiles, and their +offspring among the people: all that see them shall acknowledge them, +that they are the seed which the LORD hath blessed. + +61:10 I will greatly rejoice in the LORD, my soul shall be joyful in +my God; for he hath clothed me with the garments of salvation, he hath +covered me with the robe of righteousness, as a bridegroom decketh +himself with ornaments, and as a bride adorneth herself with her +jewels. + +61:11 For as the earth bringeth forth her bud, and as the garden +causeth the things that are sown in it to spring forth; so the Lord +GOD will cause righteousness and praise to spring forth before all the +nations. + +62:1 For Zion's sake will I not hold my peace, and for Jerusalem's +sake I will not rest, until the righteousness thereof go forth as +brightness, and the salvation thereof as a lamp that burneth. + +62:2 And the Gentiles shall see thy righteousness, and all kings thy +glory: and thou shalt be called by a new name, which the mouth of the +LORD shall name. + +62:3 Thou shalt also be a crown of glory in the hand of the LORD, and +a royal diadem in the hand of thy God. + +62:4 Thou shalt no more be termed Forsaken; neither shall thy land any +more be termed Desolate: but thou shalt be called Hephzibah, and thy +land Beulah: for the LORD delighteth in thee, and thy land shall be +married. + +62:5 For as a young man marrieth a virgin, so shall thy sons marry +thee: and as the bridegroom rejoiceth over the bride, so shall thy God +rejoice over thee. + +62:6 I have set watchmen upon thy walls, O Jerusalem, which shall +never hold their peace day nor night: ye that make mention of the +LORD, keep not silence, 62:7 And give him no rest, till he establish, +and till he make Jerusalem a praise in the earth. + +62:8 The LORD hath sworn by his right hand, and by the arm of his +strength, Surely I will no more give thy corn to be meat for thine +enemies; and the sons of the stranger shall not drink thy wine, for +the which thou hast laboured: 62:9 But they that have gathered it +shall eat it, and praise the LORD; and they that have brought it +together shall drink it in the courts of my holiness. + +62:10 Go through, go through the gates; prepare ye the way of the +people; cast up, cast up the highway; gather out the stones; lift up a +standard for the people. + +62:11 Behold, the LORD hath proclaimed unto the end of the world, Say +ye to the daughter of Zion, Behold, thy salvation cometh; behold, his +reward is with him, and his work before him. + +62:12 And they shall call them, The holy people, The redeemed of the +LORD: and thou shalt be called, Sought out, A city not forsaken. + +63:1 Who is this that cometh from Edom, with dyed garments from +Bozrah? this that is glorious in his apparel, travelling in the +greatness of his strength? I that speak in righteousness, mighty to +save. + +63:2 Wherefore art thou red in thine apparel, and thy garments like +him that treadeth in the winefat? 63:3 I have trodden the winepress +alone; and of the people there was none with me: for I will tread them +in mine anger, and trample them in my fury; and their blood shall be +sprinkled upon my garments, and I will stain all my raiment. + +63:4 For the day of vengeance is in mine heart, and the year of my +redeemed is come. + +63:5 And I looked, and there was none to help; and I wondered that +there was none to uphold: therefore mine own arm brought salvation +unto me; and my fury, it upheld me. + +63:6 And I will tread down the people in mine anger, and make them +drunk in my fury, and I will bring down their strength to the earth. + +63:7 I will mention the lovingkindnesses of the LORD, and the praises +of the LORD, according to all that the LORD hath bestowed on us, and +the great goodness toward the house of Israel, which he hath bestowed +on them according to his mercies, and according to the multitude of +his lovingkindnesses. + +63:8 For he said, Surely they are my people, children that will not +lie: so he was their Saviour. + +63:9 In all their affliction he was afflicted, and the angel of his +presence saved them: in his love and in his pity he redeemed them; and +he bare them, and carried them all the days of old. + +63:10 But they rebelled, and vexed his holy Spirit: therefore he was +turned to be their enemy, and he fought against them. + +63:11 Then he remembered the days of old, Moses, and his people, +saying, Where is he that brought them up out of the sea with the +shepherd of his flock? where is he that put his holy Spirit within +him? 63:12 That led them by the right hand of Moses with his glorious +arm, dividing the water before them, to make himself an everlasting +name? 63:13 That led them through the deep, as an horse in the +wilderness, that they should not stumble? 63:14 As a beast goeth down +into the valley, the Spirit of the LORD caused him to rest: so didst +thou lead thy people, to make thyself a glorious name. + +63:15 Look down from heaven, and behold from the habitation of thy +holiness and of thy glory: where is thy zeal and thy strength, the +sounding of thy bowels and of thy mercies toward me? are they +restrained? 63:16 Doubtless thou art our father, though Abraham be +ignorant of us, and Israel acknowledge us not: thou, O LORD, art our +father, our redeemer; thy name is from everlasting. + +63:17 O LORD, why hast thou made us to err from thy ways, and hardened +our heart from thy fear? Return for thy servants' sake, the tribes of +thine inheritance. + +63:18 The people of thy holiness have possessed it but a little while: +our adversaries have trodden down thy sanctuary. + +63:19 We are thine: thou never barest rule over them; they were not +called by thy name. + +64:1 Oh that thou wouldest rend the heavens, that thou wouldest come +down, that the mountains might flow down at thy presence, 64:2 As when +the melting fire burneth, the fire causeth the waters to boil, to make +thy name known to thine adversaries, that the nations may tremble at +thy presence! 64:3 When thou didst terrible things which we looked +not for, thou camest down, the mountains flowed down at thy presence. + +64:4 For since the beginning of the world men have not heard, nor +perceived by the ear, neither hath the eye seen, O God, beside thee, +what he hath prepared for him that waiteth for him. + +64:5 Thou meetest him that rejoiceth and worketh righteousness, those +that remember thee in thy ways: behold, thou art wroth; for we have +sinned: in those is continuance, and we shall be saved. + +64:6 But we are all as an unclean thing, and all our righteousnesses +are as filthy rags; and we all do fade as a leaf; and our iniquities, +like the wind, have taken us away. + +64:7 And there is none that calleth upon thy name, that stirreth up +himself to take hold of thee: for thou hast hid thy face from us, and +hast consumed us, because of our iniquities. + +64:8 But now, O LORD, thou art our father; we are the clay, and thou +our potter; and we all are the work of thy hand. + +64:9 Be not wroth very sore, O LORD, neither remember iniquity for +ever: behold, see, we beseech thee, we are all thy people. + +64:10 Thy holy cities are a wilderness, Zion is a wilderness, +Jerusalem a desolation. + +64:11 Our holy and our beautiful house, where our fathers praised +thee, is burned up with fire: and all our pleasant things are laid +waste. + +64:12 Wilt thou refrain thyself for these things, O LORD? wilt thou +hold thy peace, and afflict us very sore? 65:1 I am sought of them +that asked not for me; I am found of them that sought me not: I said, +Behold me, behold me, unto a nation that was not called by my name. + +65:2 I have spread out my hands all the day unto a rebellious people, +which walketh in a way that was not good, after their own thoughts; +65:3 A people that provoketh me to anger continually to my face; that +sacrificeth in gardens, and burneth incense upon altars of brick; 65:4 +Which remain among the graves, and lodge in the monuments, which eat +swine's flesh, and broth of abominable things is in their vessels; +65:5 Which say, Stand by thyself, come not near to me; for I am holier +than thou. These are a smoke in my nose, a fire that burneth all the +day. + +65:6 Behold, it is written before me: I will not keep silence, but +will recompense, even recompense into their bosom, 65:7 Your +iniquities, and the iniquities of your fathers together, saith the +LORD, which have burned incense upon the mountains, and blasphemed me +upon the hills: therefore will I measure their former work into their +bosom. + +65:8 Thus saith the LORD, As the new wine is found in the cluster, and +one saith, Destroy it not; for a blessing is in it: so will I do for +my servants' sakes, that I may not destroy them all. + +65:9 And I will bring forth a seed out of Jacob, and out of Judah an +inheritor of my mountains: and mine elect shall inherit it, and my +servants shall dwell there. + +65:10 And Sharon shall be a fold of flocks, and the valley of Achor a +place for the herds to lie down in, for my people that have sought me. + +65:11 But ye are they that forsake the LORD, that forget my holy +mountain, that prepare a table for that troop, and that furnish the +drink offering unto that number. + +65:12 Therefore will I number you to the sword, and ye shall all bow +down to the slaughter: because when I called, ye did not answer; when +I spake, ye did not hear; but did evil before mine eyes, and did +choose that wherein I delighted not. + +65:13 Therefore thus saith the Lord GOD, Behold, my servants shall +eat, but ye shall be hungry: behold, my servants shall drink, but ye +shall be thirsty: behold, my servants shall rejoice, but ye shall be +ashamed: 65:14 Behold, my servants shall sing for joy of heart, but ye +shall cry for sorrow of heart, and shall howl for vexation of spirit. + +65:15 And ye shall leave your name for a curse unto my chosen: for the +Lord GOD shall slay thee, and call his servants by another name: 65:16 +That he who blesseth himself in the earth shall bless himself in the +God of truth; and he that sweareth in the earth shall swear by the God +of truth; because the former troubles are forgotten, and because they +are hid from mine eyes. + +65:17 For, behold, I create new heavens and a new earth: and the +former shall not be remembered, nor come into mind. + +65:18 But be ye glad and rejoice for ever in that which I create: for, +behold, I create Jerusalem a rejoicing, and her people a joy. + +65:19 And I will rejoice in Jerusalem, and joy in my people: and the +voice of weeping shall be no more heard in her, nor the voice of +crying. + +65:20 There shall be no more thence an infant of days, nor an old man +that hath not filled his days: for the child shall die an hundred +years old; but the sinner being an hundred years old shall be +accursed. + +65:21 And they shall build houses, and inhabit them; and they shall +plant vineyards, and eat the fruit of them. + +65:22 They shall not build, and another inhabit; they shall not plant, +and another eat: for as the days of a tree are the days of my people, +and mine elect shall long enjoy the work of their hands. + +65:23 They shall not labour in vain, nor bring forth for trouble; for +they are the seed of the blessed of the LORD, and their offspring with +them. + +65:24 And it shall come to pass, that before they call, I will answer; +and while they are yet speaking, I will hear. + +65:25 The wolf and the lamb shall feed together, and the lion shall +eat straw like the bullock: and dust shall be the serpent's meat. They +shall not hurt nor destroy in all my holy mountain, saith the LORD. + +66:1 Thus saith the LORD, The heaven is my throne, and the earth is my +footstool: where is the house that ye build unto me? and where is the +place of my rest? 66:2 For all those things hath mine hand made, and +all those things have been, saith the LORD: but to this man will I +look, even to him that is poor and of a contrite spirit, and trembleth +at my word. + +66:3 He that killeth an ox is as if he slew a man; he that sacrificeth +a lamb, as if he cut off a dog's neck; he that offereth an oblation, +as if he offered swine's blood; he that burneth incense, as if he +blessed an idol. + +Yea, they have chosen their own ways, and their soul delighteth in +their abominations. + +66:4 I also will choose their delusions, and will bring their fears +upon them; because when I called, none did answer; when I spake, they +did not hear: but they did evil before mine eyes, and chose that in +which I delighted not. + +66:5 Hear the word of the LORD, ye that tremble at his word; Your +brethren that hated you, that cast you out for my name's sake, said, +Let the LORD be glorified: but he shall appear to your joy, and they +shall be ashamed. + +66:6 A voice of noise from the city, a voice from the temple, a voice +of the LORD that rendereth recompence to his enemies. + +66:7 Before she travailed, she brought forth; before her pain came, +she was delivered of a man child. + +66:8 Who hath heard such a thing? who hath seen such things? Shall the +earth be made to bring forth in one day? or shall a nation be born at +once? for as soon as Zion travailed, she brought forth her children. + +66:9 Shall I bring to the birth, and not cause to bring forth? saith +the LORD: shall I cause to bring forth, and shut the womb? saith thy +God. + +66:10 Rejoice ye with Jerusalem, and be glad with her, all ye that +love her: rejoice for joy with her, all ye that mourn for her: 66:11 +That ye may suck, and be satisfied with the breasts of her +consolations; that ye may milk out, and be delighted with the +abundance of her glory. + +66:12 For thus saith the LORD, Behold, I will extend peace to her like +a river, and the glory of the Gentiles like a flowing stream: then +shall ye suck, ye shall be borne upon her sides, and be dandled upon +her knees. + +66:13 As one whom his mother comforteth, so will I comfort you; and ye +shall be comforted in Jerusalem. + +66:14 And when ye see this, your heart shall rejoice, and your bones +shall flourish like an herb: and the hand of the LORD shall be known +toward his servants, and his indignation toward his enemies. + +66:15 For, behold, the LORD will come with fire, and with his chariots +like a whirlwind, to render his anger with fury, and his rebuke with +flames of fire. + +66:16 For by fire and by his sword will the LORD plead with all flesh: +and the slain of the LORD shall be many. + +66:17 They that sanctify themselves, and purify themselves in the +gardens behind one tree in the midst, eating swine's flesh, and the +abomination, and the mouse, shall be consumed together, saith the +LORD. + +66:18 For I know their works and their thoughts: it shall come, that I +will gather all nations and tongues; and they shall come, and see my +glory. + +66:19 And I will set a sign among them, and I will send those that +escape of them unto the nations, to Tarshish, Pul, and Lud, that draw +the bow, to Tubal, and Javan, to the isles afar off, that have not +heard my fame, neither have seen my glory; and they shall declare my +glory among the Gentiles. + +66:20 And they shall bring all your brethren for an offering unto the +LORD out of all nations upon horses, and in chariots, and in litters, +and upon mules, and upon swift beasts, to my holy mountain Jerusalem, +saith the LORD, as the children of Israel bring an offering in a clean +vessel into the house of the LORD. + +66:21 And I will also take of them for priests and for Levites, saith +the LORD. + +66:22 For as the new heavens and the new earth, which I will make, +shall remain before me, saith the LORD, so shall your seed and your +name remain. + +66:23 And it shall come to pass, that from one new moon to another, +and from one sabbath to another, shall all flesh come to worship +before me, saith the LORD. + +66:24 And they shall go forth, and look upon the carcases of the men +that have transgressed against me: for their worm shall not die, +neither shall their fire be quenched; and they shall be an abhorring +unto all flesh. + + + + +The Book of the Prophet Jeremiah + + +1:1 The words of Jeremiah the son of Hilkiah, of the priests that +were in Anathoth in the land of Benjamin: 1:2 To whom the word of the +LORD came in the days of Josiah the son of Amon king of Judah, in the +thirteenth year of his reign. + +1:3 It came also in the days of Jehoiakim the son of Josiah king of +Judah, unto the end of the eleventh year of Zedekiah the son of Josiah +king of Judah, unto the carrying away of Jerusalem captive in the +fifth month. + +1:4 Then the word of the LORD came unto me, saying, 1:5 Before I +formed thee in the belly I knew thee; and before thou camest forth out +of the womb I sanctified thee, and I ordained thee a prophet unto the +nations. + +1:6 Then said I, Ah, Lord GOD! behold, I cannot speak: for I am a +child. + +1:7 But the LORD said unto me, Say not, I am a child: for thou shalt +go to all that I shall send thee, and whatsoever I command thee thou +shalt speak. + +1:8 Be not afraid of their faces: for I am with thee to deliver thee, +saith the LORD. + +1:9 Then the LORD put forth his hand, and touched my mouth. And the +LORD said unto me, Behold, I have put my words in thy mouth. + +1:10 See, I have this day set thee over the nations and over the +kingdoms, to root out, and to pull down, and to destroy, and to throw +down, to build, and to plant. + +1:11 Moreover the word of the LORD came unto me, saying, Jeremiah, +what seest thou? And I said, I see a rod of an almond tree. + +1:12 Then said the LORD unto me, Thou hast well seen: for I will +hasten my word to perform it. + +1:13 And the word of the LORD came unto me the second time, saying, +What seest thou? And I said, I see a seething pot; and the face +thereof is toward the north. + +1:14 Then the LORD said unto me, Out of the north an evil shall break +forth upon all the inhabitants of the land. + +1:15 For, lo, I will call all the families of the kingdoms of the +north, saith the LORD; and they shall come, and they shall set every +one his throne at the entering of the gates of Jerusalem, and against +all the walls thereof round about, and against all the cities of +Judah. + +1:16 And I will utter my judgments against them touching all their +wickedness, who have forsaken me, and have burned incense unto other +gods, and worshipped the works of their own hands. + +1:17 Thou therefore gird up thy loins, and arise, and speak unto them +all that I command thee: be not dismayed at their faces, lest I +confound thee before them. + +1:18 For, behold, I have made thee this day a defenced city, and an +iron pillar, and brasen walls against the whole land, against the +kings of Judah, against the princes thereof, against the priests +thereof, and against the people of the land. + +1:19 And they shall fight against thee; but they shall not prevail +against thee; for I am with thee, saith the LORD, to deliver thee. + +2:1 Moreover the word of the LORD came to me, saying, 2:2 Go and cry +in the ears of Jerusalem, saying, Thus saith the LORD; I remember +thee, the kindness of thy youth, the love of thine espousals, when +thou wentest after me in the wilderness, in a land that was not sown. + +2:3 Israel was holiness unto the LORD, and the firstfruits of his +increase: all that devour him shall offend; evil shall come upon them, +saith the LORD. + +2:4 Hear ye the word of the LORD, O house of Jacob, and all the +families of the house of Israel: 2:5 Thus saith the LORD, What +iniquity have your fathers found in me, that they are gone far from +me, and have walked after vanity, and are become vain? 2:6 Neither +said they, Where is the LORD that brought us up out of the land of +Egypt, that led us through the wilderness, through a land of deserts +and of pits, through a land of drought, and of the shadow of death, +through a land that no man passed through, and where no man dwelt? +2:7 And I brought you into a plentiful country, to eat the fruit +thereof and the goodness thereof; but when ye entered, ye defiled my +land, and made mine heritage an abomination. + +2:8 The priests said not, Where is the LORD? and they that handle the +law knew me not: the pastors also transgressed against me, and the +prophets prophesied by Baal, and walked after things that do not +profit. + +2:9 Wherefore I will yet plead with you, saith the LORD, and with your +children's children will I plead. + +2:10 For pass over the isles of Chittim, and see; and send unto Kedar, +and consider diligently, and see if there be such a thing. + +2:11 Hath a nation changed their gods, which are yet no gods? but my +people have changed their glory for that which doth not profit. + +2:12 Be astonished, O ye heavens, at this, and be horribly afraid, be +ye very desolate, saith the LORD. + +2:13 For my people have committed two evils; they have forsaken me the +fountain of living waters, and hewed them out cisterns, broken +cisterns, that can hold no water. + +2:14 Is Israel a servant? is he a homeborn slave? why is he spoiled? +2:15 The young lions roared upon him, and yelled, and they made his +land waste: his cities are burned without inhabitant. + +2:16 Also the children of Noph and Tahapanes have broken the crown of +thy head. + +2:17 Hast thou not procured this unto thyself, in that thou hast +forsaken the LORD thy God, when he led thee by the way? 2:18 And now +what hast thou to do in the way of Egypt, to drink the waters of +Sihor? or what hast thou to do in the way of Assyria, to drink the +waters of the river? 2:19 Thine own wickedness shall correct thee, +and thy backslidings shall reprove thee: know therefore and see that +it is an evil thing and bitter, that thou hast forsaken the LORD thy +God, and that my fear is not in thee, saith the Lord GOD of hosts. + +2:20 For of old time I have broken thy yoke, and burst thy bands; and +thou saidst, I will not transgress; when upon every high hill and +under every green tree thou wanderest, playing the harlot. + +2:21 Yet I had planted thee a noble vine, wholly a right seed: how +then art thou turned into the degenerate plant of a strange vine unto +me? 2:22 For though thou wash thee with nitre, and take thee much +soap, yet thine iniquity is marked before me, saith the Lord GOD. + +2:23 How canst thou say, I am not polluted, I have not gone after +Baalim? see thy way in the valley, know what thou hast done: thou art +a swift dromedary traversing her ways; 2:24 A wild ass used to the +wilderness, that snuffeth up the wind at her pleasure; in her occasion +who can turn her away? all they that seek her will not weary +themselves; in her month they shall find her. + +2:25 Withhold thy foot from being unshod, and thy throat from thirst: +but thou saidst, There is no hope: no; for I have loved strangers, and +after them will I go. + +2:26 As the thief is ashamed when he is found, so is the house of +Israel ashamed; they, their kings, their princes, and their priests, +and their prophets. + +2:27 Saying to a stock, Thou art my father; and to a stone, Thou hast +brought me forth: for they have turned their back unto me, and not +their face: but in the time of their trouble they will say, Arise, and +save us. + +2:28 But where are thy gods that thou hast made thee? let them arise, +if they can save thee in the time of thy trouble: for according to the +number of thy cities are thy gods, O Judah. + +2:29 Wherefore will ye plead with me? ye all have transgressed against +me, saith the LORD. + +2:30 In vain have I smitten your children; they received no +correction: your own sword hath devoured your prophets, like a +destroying lion. + +2:31 O generation, see ye the word of the LORD. Have I been a +wilderness unto Israel? a land of darkness? wherefore say my people, +We are lords; we will come no more unto thee? 2:32 Can a maid forget +her ornaments, or a bride her attire? yet my people have forgotten me +days without number. + +2:33 Why trimmest thou thy way to seek love? therefore hast thou also +taught the wicked ones thy ways. + +2:34 Also in thy skirts is found the blood of the souls of the poor +innocents: I have not found it by secret search, but upon all these. + +2:35 Yet thou sayest, Because I am innocent, surely his anger shall +turn from me. Behold, I will plead with thee, because thou sayest, I +have not sinned. + +2:36 Why gaddest thou about so much to change thy way? thou also shalt +be ashamed of Egypt, as thou wast ashamed of Assyria. + +2:37 Yea, thou shalt go forth from him, and thine hands upon thine +head: for the LORD hath rejected thy confidences, and thou shalt not +prosper in them. + +3:1 They say, If a man put away his wife, and she go from him, and +become another man's, shall he return unto her again? shall not that +land be greatly polluted? but thou hast played the harlot with many +lovers; yet return again to me, saith the LORD. + +3:2 Lift up thine eyes unto the high places, and see where thou hast +not been lien with. In the ways hast thou sat for them, as the Arabian +in the wilderness; and thou hast polluted the land with thy whoredoms +and with thy wickedness. + +3:3 Therefore the showers have been withholden, and there hath been no +latter rain; and thou hadst a whore's forehead, thou refusedst to be +ashamed. + +3:4 Wilt thou not from this time cry unto me, My father, thou art the +guide of my youth? 3:5 Will he reserve his anger for ever? will he +keep it to the end? Behold, thou hast spoken and done evil things as +thou couldest. + +3:6 The LORD said also unto me in the days of Josiah the king, Hast +thou seen that which backsliding Israel hath done? she is gone up upon +every high mountain and under every green tree, and there hath played +the harlot. + +3:7 And I said after she had done all these things, Turn thou unto me. +But she returned not. And her treacherous sister Judah saw it. + +3:8 And I saw, when for all the causes whereby backsliding Israel +committed adultery I had put her away, and given her a bill of +divorce; yet her treacherous sister Judah feared not, but went and +played the harlot also. + +3:9 And it came to pass through the lightness of her whoredom, that +she defiled the land, and committed adultery with stones and with +stocks. + +3:10 And yet for all this her treacherous sister Judah hath not turned +unto me with her whole heart, but feignedly, saith the LORD. + +3:11 And the LORD said unto me, The backsliding Israel hath justified +herself more than treacherous Judah. + +3:12 Go and proclaim these words toward the north, and say, Return, +thou backsliding Israel, saith the LORD; and I will not cause mine +anger to fall upon you: for I am merciful, saith the LORD, and I will +not keep anger for ever. + +3:13 Only acknowledge thine iniquity, that thou hast transgressed +against the LORD thy God, and hast scattered thy ways to the strangers +under every green tree, and ye have not obeyed my voice, saith the +LORD. + +3:14 Turn, O backsliding children, saith the LORD; for I am married +unto you: and I will take you one of a city, and two of a family, and +I will bring you to Zion: 3:15 And I will give you pastors according +to mine heart, which shall feed you with knowledge and understanding. + +3:16 And it shall come to pass, when ye be multiplied and increased in +the land, in those days, saith the LORD, they shall say no more, The +ark of the covenant of the LORD: neither shall it come to mind: +neither shall they remember it; neither shall they visit it; neither +shall that be done any more. + +3:17 At that time they shall call Jerusalem the throne of the LORD; +and all the nations shall be gathered unto it, to the name of the +LORD, to Jerusalem: neither shall they walk any more after the +imagination of their evil heart. + +3:18 In those days the house of Judah shall walk with the house of +Israel, and they shall come together out of the land of the north to +the land that I have given for an inheritance unto your fathers. + +3:19 But I said, How shall I put thee among the children, and give +thee a pleasant land, a goodly heritage of the hosts of nations? and I +said, Thou shalt call me, My father; and shalt not turn away from me. + +3:20 Surely as a wife treacherously departeth from her husband, so +have ye dealt treacherously with me, O house of Israel, saith the +LORD. + +3:21 A voice was heard upon the high places, weeping and supplications +of the children of Israel: for they have perverted their way, and they +have forgotten the LORD their God. + +3:22 Return, ye backsliding children, and I will heal your +backslidings. + +Behold, we come unto thee; for thou art the LORD our God. + +3:23 Truly in vain is salvation hoped for from the hills, and from the +multitude of mountains: truly in the LORD our God is the salvation of +Israel. + +3:24 For shame hath devoured the labour of our fathers from our youth; +their flocks and their herds, their sons and their daughters. + +3:25 We lie down in our shame, and our confusion covereth us: for we +have sinned against the LORD our God, we and our fathers, from our +youth even unto this day, and have not obeyed the voice of the LORD +our God. + +4:1 If thou wilt return, O Israel, saith the LORD, return unto me: and +if thou wilt put away thine abominations out of my sight, then shalt +thou not remove. + +4:2 And thou shalt swear, The LORD liveth, in truth, in judgment, and +in righteousness; and the nations shall bless themselves in him, and +in him shall they glory. + +4:3 For thus saith the LORD to the men of Judah and Jerusalem, Break +up your fallow ground, and sow not among thorns. + +4:4 Circumcise yourselves to the LORD, and take away the foreskins of +your heart, ye men of Judah and inhabitants of Jerusalem: lest my fury +come forth like fire, and burn that none can quench it, because of the +evil of your doings. + +4:5 Declare ye in Judah, and publish in Jerusalem; and say, Blow ye +the trumpet in the land: cry, gather together, and say, Assemble +yourselves, and let us go into the defenced cities. + +4:6 Set up the standard toward Zion: retire, stay not: for I will +bring evil from the north, and a great destruction. + +4:7 The lion is come up from his thicket, and the destroyer of the +Gentiles is on his way; he is gone forth from his place to make thy +land desolate; and thy cities shall be laid waste, without an +inhabitant. + +4:8 For this gird you with sackcloth, lament and howl: for the fierce +anger of the LORD is not turned back from us. + +4:9 And it shall come to pass at that day, saith the LORD, that the +heart of the king shall perish, and the heart of the princes; and the +priests shall be astonished, and the prophets shall wonder. + +4:10 Then said I, Ah, Lord GOD! surely thou hast greatly deceived this +people and Jerusalem, saying, Ye shall have peace; whereas the sword +reacheth unto the soul. + +4:11 At that time shall it be said to this people and to Jerusalem, A +dry wind of the high places in the wilderness toward the daughter of +my people, not to fan, nor to cleanse, 4:12 Even a full wind from +those places shall come unto me: now also will I give sentence against +them. + +4:13 Behold, he shall come up as clouds, and his chariots shall be as +a whirlwind: his horses are swifter than eagles. Woe unto us! for we +are spoiled. + +4:14 O Jerusalem, wash thine heart from wickedness, that thou mayest +be saved. How long shall thy vain thoughts lodge within thee? 4:15 +For a voice declareth from Dan, and publisheth affliction from mount +Ephraim. + +4:16 Make ye mention to the nations; behold, publish against +Jerusalem, that watchers come from a far country, and give out their +voice against the cities of Judah. + +4:17 As keepers of a field, are they against her round about; because +she hath been rebellious against me, saith the LORD. + +4:18 Thy way and thy doings have procured these things unto thee; this +is thy wickedness, because it is bitter, because it reacheth unto +thine heart. + +4:19 My bowels, my bowels! I am pained at my very heart; my heart +maketh a noise in me; I cannot hold my peace, because thou hast heard, +O my soul, the sound of the trumpet, the alarm of war. + +4:20 Destruction upon destruction is cried; for the whole land is +spoiled: suddenly are my tents spoiled, and my curtains in a moment. + +4:21 How long shall I see the standard, and hear the sound of the +trumpet? 4:22 For my people is foolish, they have not known me; they +are sottish children, and they have none understanding: they are wise +to do evil, but to do good they have no knowledge. + +4:23 I beheld the earth, and, lo, it was without form, and void; and +the heavens, and they had no light. + +4:24 I beheld the mountains, and, lo, they trembled, and all the hills +moved lightly. + +4:25 I beheld, and, lo, there was no man, and all the birds of the +heavens were fled. + +4:26 I beheld, and, lo, the fruitful place was a wilderness, and all +the cities thereof were broken down at the presence of the LORD, and +by his fierce anger. + +4:27 For thus hath the LORD said, The whole land shall be desolate; +yet will I not make a full end. + +4:28 For this shall the earth mourn, and the heavens above be black; +because I have spoken it, I have purposed it, and will not repent, +neither will I turn back from it. + +4:29 The whole city shall flee for the noise of the horsemen and +bowmen; they shall go into thickets, and climb up upon the rocks: +every city shall be forsaken, and not a man dwell therein. + +4:30 And when thou art spoiled, what wilt thou do? Though thou +clothest thyself with crimson, though thou deckest thee with ornaments +of gold, though thou rentest thy face with painting, in vain shalt +thou make thyself fair; thy lovers will despise thee, they will seek +thy life. + +4:31 For I have heard a voice as of a woman in travail, and the +anguish as of her that bringeth forth her first child, the voice of +the daughter of Zion, that bewaileth herself, that spreadeth her +hands, saying, Woe is me now! for my soul is wearied because of +murderers. + +5:1 Run ye to and fro through the streets of Jerusalem, and see now, +and know, and seek in the broad places thereof, if ye can find a man, +if there be any that executeth judgment, that seeketh the truth; and I +will pardon it. + +5:2 And though they say, The LORD liveth; surely they swear falsely. + +5:3 O LORD, are not thine eyes upon the truth? thou hast stricken +them, but they have not grieved; thou hast consumed them, but they +have refused to receive correction: they have made their faces harder +than a rock; they have refused to return. + +5:4 Therefore I said, Surely these are poor; they are foolish: for +they know not the way of the LORD, nor the judgment of their God. + +5:5 I will get me unto the great men, and will speak unto them; for +they have known the way of the LORD, and the judgment of their God: +but these have altogether broken the yoke, and burst the bonds. + +5:6 Wherefore a lion out of the forest shall slay them, and a wolf of +the evenings shall spoil them, a leopard shall watch over their +cities: every one that goeth out thence shall be torn in pieces: +because their transgressions are many, and their backslidings are +increased. + +5:7 How shall I pardon thee for this? thy children have forsaken me, +and sworn by them that are no gods: when I had fed them to the full, +they then committed adultery, and assembled themselves by troops in +the harlots' houses. + +5:8 They were as fed horses in the morning: every one neighed after +his neighbour's wife. + +5:9 Shall I not visit for these things? saith the LORD: and shall not +my soul be avenged on such a nation as this? 5:10 Go ye up upon her +walls, and destroy; but make not a full end: take away her +battlements; for they are not the LORD's. + +5:11 For the house of Israel and the house of Judah have dealt very +treacherously against me, saith the LORD. + +5:12 They have belied the LORD, and said, It is not he; neither shall +evil come upon us; neither shall we see sword nor famine: 5:13 And the +prophets shall become wind, and the word is not in them: thus shall it +be done unto them. + +5:14 Wherefore thus saith the LORD God of hosts, Because ye speak this +word, behold, I will make my words in thy mouth fire, and this people +wood, and it shall devour them. + +5:15 Lo, I will bring a nation upon you from far, O house of Israel, +saith the LORD: it is a mighty nation, it is an ancient nation, a +nation whose language thou knowest not, neither understandest what +they say. + +5:16 Their quiver is as an open sepulchre, they are all mighty men. + +5:17 And they shall eat up thine harvest, and thy bread, which thy +sons and thy daughters should eat: they shall eat up thy flocks and +thine herds: they shall eat up thy vines and thy fig trees: they shall +impoverish thy fenced cities, wherein thou trustedst, with the sword. + +5:18 Nevertheless in those days, saith the LORD, I will not make a +full end with you. + +5:19 And it shall come to pass, when ye shall say, Wherefore doeth the +LORD our God all these things unto us? then shalt thou answer them, +Like as ye have forsaken me, and served strange gods in your land, so +shall ye serve strangers in a land that is not your's. + +5:20 Declare this in the house of Jacob, and publish it in Judah, +saying, 5:21 Hear now this, O foolish people, and without +understanding; which have eyes, and see not; which have ears, and hear +not: 5:22 Fear ye not me? saith the LORD: will ye not tremble at my +presence, which have placed the sand for the bound of the sea by a +perpetual decree, that it cannot pass it: and though the waves thereof +toss themselves, yet can they not prevail; though they roar, yet can +they not pass over it? 5:23 But this people hath a revolting and a +rebellious heart; they are revolted and gone. + +5:24 Neither say they in their heart, Let us now fear the LORD our +God, that giveth rain, both the former and the latter, in his season: +he reserveth unto us the appointed weeks of the harvest. + +5:25 Your iniquities have turned away these things, and your sins have +withholden good things from you. + +5:26 For among my people are found wicked men: they lay wait, as he +that setteth snares; they set a trap, they catch men. + +5:27 As a cage is full of birds, so are their houses full of deceit: +therefore they are become great, and waxen rich. + +5:28 They are waxen fat, they shine: yea, they overpass the deeds of +the wicked: they judge not the cause, the cause of the fatherless, yet +they prosper; and the right of the needy do they not judge. + +5:29 Shall I not visit for these things? saith the LORD: shall not my +soul be avenged on such a nation as this? 5:30 A wonderful and +horrible thing is committed in the land; 5:31 The prophets prophesy +falsely, and the priests bear rule by their means; and my people love +to have it so: and what will ye do in the end thereof? 6:1 O ye +children of Benjamin, gather yourselves to flee out of the midst of +Jerusalem, and blow the trumpet in Tekoa, and set up a sign of fire in +Bethhaccerem: for evil appeareth out of the north, and great +destruction. + +6:2 I have likened the daughter of Zion to a comely and delicate +woman. + +6:3 The shepherds with their flocks shall come unto her; they shall +pitch their tents against her round about; they shall feed every one +in his place. + +6:4 Prepare ye war against her; arise, and let us go up at noon. Woe +unto us! for the day goeth away, for the shadows of the evening are +stretched out. + +6:5 Arise, and let us go by night, and let us destroy her palaces. + +6:6 For thus hath the LORD of hosts said, Hew ye down trees, and cast +a mount against Jerusalem: this is the city to be visited; she is +wholly oppression in the midst of her. + +6:7 As a fountain casteth out her waters, so she casteth out her +wickedness: violence and spoil is heard in her; before me continually +is grief and wounds. + +6:8 Be thou instructed, O Jerusalem, lest my soul depart from thee; +lest I make thee desolate, a land not inhabited. + +6:9 Thus saith the LORD of hosts, They shall throughly glean the +remnant of Israel as a vine: turn back thine hand as a grapegatherer +into the baskets. + +6:10 To whom shall I speak, and give warning, that they may hear? +behold, their ear is uncircumcised, and they cannot hearken: behold, +the word of the LORD is unto them a reproach; they have no delight in +it. + +6:11 Therefore I am full of the fury of the LORD; I am weary with +holding in: I will pour it out upon the children abroad, and upon the +assembly of young men together: for even the husband with the wife +shall be taken, the aged with him that is full of days. + +6:12 And their houses shall be turned unto others, with their fields +and wives together: for I will stretch out my hand upon the +inhabitants of the land, saith the LORD. + +6:13 For from the least of them even unto the greatest of them every +one is given to covetousness; and from the prophet even unto the +priest every one dealeth falsely. + +6:14 They have healed also the hurt of the daughter of my people +slightly, saying, Peace, peace; when there is no peace. + +6:15 Were they ashamed when they had committed abomination? nay, they +were not at all ashamed, neither could they blush: therefore they +shall fall among them that fall: at the time that I visit them they +shall be cast down, saith the LORD. + +6:16 Thus saith the LORD, Stand ye in the ways, and see, and ask for +the old paths, where is the good way, and walk therein, and ye shall +find rest for your souls. But they said, We will not walk therein. + +6:17 Also I set watchmen over you, saying, Hearken to the sound of the +trumpet. But they said, We will not hearken. + +6:18 Therefore hear, ye nations, and know, O congregation, what is +among them. + +6:19 Hear, O earth: behold, I will bring evil upon this people, even +the fruit of their thoughts, because they have not hearkened unto my +words, nor to my law, but rejected it. + +6:20 To what purpose cometh there to me incense from Sheba, and the +sweet cane from a far country? your burnt offerings are not +acceptable, nor your sacrifices sweet unto me. + +6:21 Therefore thus saith the LORD, Behold, I will lay stumblingblocks +before this people, and the fathers and the sons together shall fall +upon them; the neighbour and his friend shall perish. + +6:22 Thus saith the LORD, Behold, a people cometh from the north +country, and a great nation shall be raised from the sides of the +earth. + +6:23 They shall lay hold on bow and spear; they are cruel, and have no +mercy; their voice roareth like the sea; and they ride upon horses, +set in array as men for war against thee, O daughter of Zion. + +6:24 We have heard the fame thereof: our hands wax feeble: anguish +hath taken hold of us, and pain, as of a woman in travail. + +6:25 Go not forth into the field, nor walk by the way; for the sword +of the enemy and fear is on every side. + +6:26 O daughter of my people, gird thee with sackcloth, and wallow +thyself in ashes: make thee mourning, as for an only son, most bitter +lamentation: for the spoiler shall suddenly come upon us. + +6:27 I have set thee for a tower and a fortress among my people, that +thou mayest know and try their way. + +6:28 They are all grievous revolters, walking with slanders: they are +brass and iron; they are all corrupters. + +6:29 The bellows are burned, the lead is consumed of the fire; the +founder melteth in vain: for the wicked are not plucked away. + +6:30 Reprobate silver shall men call them, because the LORD hath +rejected them. + +7:1 The word that came to Jeremiah from the LORD, saying, 7:2 Stand in +the gate of the LORD's house, and proclaim there this word, and say, +Hear the word of the LORD, all ye of Judah, that enter in at these +gates to worship the LORD. + +7:3 Thus saith the LORD of hosts, the God of Israel, Amend your ways +and your doings, and I will cause you to dwell in this place. + +7:4 Trust ye not in lying words, saying, The temple of the LORD, The +temple of the LORD, The temple of the LORD, are these. + +7:5 For if ye throughly amend your ways and your doings; if ye +throughly execute judgment between a man and his neighbour; 7:6 If ye +oppress not the stranger, the fatherless, and the widow, and shed not +innocent blood in this place, neither walk after other gods to your +hurt: 7:7 Then will I cause you to dwell in this place, in the land +that I gave to your fathers, for ever and ever. + +7:8 Behold, ye trust in lying words, that cannot profit. + +7:9 Will ye steal, murder, and commit adultery, and swear falsely, and +burn incense unto Baal, and walk after other gods whom ye know not; +7:10 And come and stand before me in this house, which is called by my +name, and say, We are delivered to do all these abominations? 7:11 Is +this house, which is called by my name, become a den of robbers in +your eyes? Behold, even I have seen it, saith the LORD. + +7:12 But go ye now unto my place which was in Shiloh, where I set my +name at the first, and see what I did to it for the wickedness of my +people Israel. + +7:13 And now, because ye have done all these works, saith the LORD, +and I spake unto you, rising up early and speaking, but ye heard not; +and I called you, but ye answered not; 7:14 Therefore will I do unto +this house, which is called by my name, wherein ye trust, and unto the +place which I gave to you and to your fathers, as I have done to +Shiloh. + +7:15 And I will cast you out of my sight, as I have cast out all your +brethren, even the whole seed of Ephraim. + +7:16 Therefore pray not thou for this people, neither lift up cry nor +prayer for them, neither make intercession to me: for I will not hear +thee. + +7:17 Seest thou not what they do in the cities of Judah and in the +streets of Jerusalem? 7:18 The children gather wood, and the fathers +kindle the fire, and the women knead their dough, to make cakes to the +queen of heaven, and to pour out drink offerings unto other gods, that +they may provoke me to anger. + +7:19 Do they provoke me to anger? saith the LORD: do they not provoke +themselves to the confusion of their own faces? 7:20 Therefore thus +saith the Lord GOD; Behold, mine anger and my fury shall be poured out +upon this place, upon man, and upon beast, and upon the trees of the +field, and upon the fruit of the ground; and it shall burn, and shall +not be quenched. + +7:21 Thus saith the LORD of hosts, the God of Israel; Put your burnt +offerings unto your sacrifices, and eat flesh. + +7:22 For I spake not unto your fathers, nor commanded them in the day +that I brought them out of the land of Egypt, concerning burnt +offerings or sacrifices: 7:23 But this thing commanded I them, saying, +Obey my voice, and I will be your God, and ye shall be my people: and +walk ye in all the ways that I have commanded you, that it may be well +unto you. + +7:24 But they hearkened not, nor inclined their ear, but walked in the +counsels and in the imagination of their evil heart, and went +backward, and not forward. + +7:25 Since the day that your fathers came forth out of the land of +Egypt unto this day I have even sent unto you all my servants the +prophets, daily rising up early and sending them: 7:26 Yet they +hearkened not unto me, nor inclined their ear, but hardened their +neck: they did worse than their fathers. + +7:27 Therefore thou shalt speak all these words unto them; but they +will not hearken to thee: thou shalt also call unto them; but they +will not answer thee. + +7:28 But thou shalt say unto them, This is a nation that obeyeth not +the voice of the LORD their God, nor receiveth correction: truth is +perished, and is cut off from their mouth. + +7:29 Cut off thine hair, O Jerusalem, and cast it away, and take up a +lamentation on high places; for the LORD hath rejected and forsaken +the generation of his wrath. + +7:30 For the children of Judah have done evil in my sight, saith the +LORD: they have set their abominations in the house which is called by +my name, to pollute it. + +7:31 And they have built the high places of Tophet, which is in the +valley of the son of Hinnom, to burn their sons and their daughters in +the fire; which I commanded them not, neither came it into my heart. + +7:32 Therefore, behold, the days come, saith the LORD, that it shall +no more be called Tophet, nor the valley of the son of Hinnom, but the +valley of slaughter: for they shall bury in Tophet, till there be no +place. + +7:33 And the carcases of this people shall be meat for the fowls of +the heaven, and for the beasts of the earth; and none shall fray them +away. + +7:34 Then will I cause to cease from the cities of Judah, and from the +streets of Jerusalem, the voice of mirth, and the voice of gladness, +the voice of the bridegroom, and the voice of the bride: for the land +shall be desolate. + +8:1 At that time, saith the LORD, they shall bring out the bones of +the kings of Judah, and the bones of his princes, and the bones of the +priests, and the bones of the prophets, and the bones of the +inhabitants of Jerusalem, out of their graves: 8:2 And they shall +spread them before the sun, and the moon, and all the host of heaven, +whom they have loved, and whom they have served, and after whom they +have walked, and whom they have sought, and whom they have worshipped: +they shall not be gathered, nor be buried; they shall be for dung upon +the face of the earth. + +8:3 And death shall be chosen rather than life by all the residue of +them that remain of this evil family, which remain in all the places +whither I have driven them, saith the LORD of hosts. + +8:4 Moreover thou shalt say unto them, Thus saith the LORD; Shall they +fall, and not arise? shall he turn away, and not return? 8:5 Why then +is this people of Jerusalem slidden back by a perpetual backsliding? +they hold fast deceit, they refuse to return. + +8:6 I hearkened and heard, but they spake not aright: no man repented +him of his wickedness, saying, What have I done? every one turned to +his course, as the horse rusheth into the battle. + +8:7 Yea, the stork in the heaven knoweth her appointed times; and the +turtle and the crane and the swallow observe the time of their coming; +but my people know not the judgment of the LORD. + +8:8 How do ye say, We are wise, and the law of the LORD is with us? +Lo, certainly in vain made he it; the pen of the scribes is in vain. + +8:9 The wise men are ashamed, they are dismayed and taken: lo, they +have rejected the word of the LORD; and what wisdom is in them? 8:10 +Therefore will I give their wives unto others, and their fields to +them that shall inherit them: for every one from the least even unto +the greatest is given to covetousness, from the prophet even unto the +priest every one dealeth falsely. + +8:11 For they have healed the hurt of the daughter of my people +slightly, saying, Peace, peace; when there is no peace. + +8:12 Were they ashamed when they had committed abomination? nay, they +were not at all ashamed, neither could they blush: therefore shall +they fall among them that fall: in the time of their visitation they +shall be cast down, saith the LORD. + +8:13 I will surely consume them, saith the LORD: there shall be no +grapes on the vine, nor figs on the fig tree, and the leaf shall fade; +and the things that I have given them shall pass away from them. + +8:14 Why do we sit still? assemble yourselves, and let us enter into +the defenced cities, and let us be silent there: for the LORD our God +hath put us to silence, and given us water of gall to drink, because +we have sinned against the LORD. + +8:15 We looked for peace, but no good came; and for a time of health, +and behold trouble! 8:16 The snorting of his horses was heard from +Dan: the whole land trembled at the sound of the neighing of his +strong ones; for they are come, and have devoured the land, and all +that is in it; the city, and those that dwell therein. + +8:17 For, behold, I will send serpents, cockatrices, among you, which +will not be charmed, and they shall bite you, saith the LORD. + +8:18 When I would comfort myself against sorrow, my heart is faint in +me. + +8:19 Behold the voice of the cry of the daughter of my people because +of them that dwell in a far country: Is not the LORD in Zion? is not +her king in her? Why have they provoked me to anger with their graven +images, and with strange vanities? 8:20 The harvest is past, the +summer is ended, and we are not saved. + +8:21 For the hurt of the daughter of my people am I hurt; I am black; +astonishment hath taken hold on me. + +8:22 Is there no balm in Gilead; is there no physician there? why then +is not the health of the daughter of my people recovered? 9:1 Oh that +my head were waters, and mine eyes a fountain of tears, that I might +weep day and night for the slain of the daughter of my people! 9:2 Oh +that I had in the wilderness a lodging place of wayfaring men; that I +might leave my people, and go from them! for they be all adulterers, +an assembly of treacherous men. + +9:3 And they bend their tongues like their bow for lies: but they are +not valiant for the truth upon the earth; for they proceed from evil +to evil, and they know not me, saith the LORD. + +9:4 Take ye heed every one of his neighbour, and trust ye not in any +brother: for every brother will utterly supplant, and every neighbour +will walk with slanders. + +9:5 And they will deceive every one his neighbour, and will not speak +the truth: they have taught their tongue to speak lies, and weary +themselves to commit iniquity. + +9:6 Thine habitation is in the midst of deceit; through deceit they +refuse to know me, saith the LORD. + +9:7 Therefore thus saith the LORD of hosts, Behold, I will melt them, +and try them; for how shall I do for the daughter of my people? 9:8 +Their tongue is as an arrow shot out; it speaketh deceit: one speaketh +peaceably to his neighbour with his mouth, but in heart he layeth his +wait. + +9:9 Shall I not visit them for these things? saith the LORD: shall not +my soul be avenged on such a nation as this? 9:10 For the mountains +will I take up a weeping and wailing, and for the habitations of the +wilderness a lamentation, because they are burned up, so that none can +pass through them; neither can men hear the voice of the cattle; both +the fowl of the heavens and the beast are fled; they are gone. + +9:11 And I will make Jerusalem heaps, and a den of dragons; and I will +make the cities of Judah desolate, without an inhabitant. + +9:12 Who is the wise man, that may understand this? and who is he to +whom the mouth of the LORD hath spoken, that he may declare it, for +what the land perisheth and is burned up like a wilderness, that none +passeth through? 9:13 And the LORD saith, Because they have forsaken +my law which I set before them, and have not obeyed my voice, neither +walked therein; 9:14 But have walked after the imagination of their +own heart, and after Baalim, which their fathers taught them: 9:15 +Therefore thus saith the LORD of hosts, the God of Israel; Behold, I +will feed them, even this people, with wormwood, and give them water +of gall to drink. + +9:16 I will scatter them also among the heathen, whom neither they nor +their fathers have known: and I will send a sword after them, till I +have consumed them. + +9:17 Thus saith the LORD of hosts, Consider ye, and call for the +mourning women, that they may come; and send for cunning women, that +they may come: 9:18 And let them make haste, and take up a wailing for +us, that our eyes may run down with tears, and our eyelids gush out +with waters. + +9:19 For a voice of wailing is heard out of Zion, How are we spoiled! +we are greatly confounded, because we have forsaken the land, because +our dwellings have cast us out. + +9:20 Yet hear the word of the LORD, O ye women, and let your ear +receive the word of his mouth, and teach your daughters wailing, and +every one her neighbour lamentation. + +9:21 For death is come up into our windows, and is entered into our +palaces, to cut off the children from without, and the young men from +the streets. + +9:22 Speak, Thus saith the LORD, Even the carcases of men shall fall +as dung upon the open field, and as the handful after the harvestman, +and none shall gather them. + +9:23 Thus saith the LORD, Let not the wise man glory in his wisdom, +neither let the mighty man glory in his might, let not the rich man +glory in his riches: 9:24 But let him that glorieth glory in this, +that he understandeth and knoweth me, that I am the LORD which +exercise lovingkindness, judgment, and righteousness, in the earth: +for in these things I delight, saith the LORD. + +9:25 Behold, the days come, saith the LORD, that I will punish all +them which are circumcised with the uncircumcised; 9:26 Egypt, and +Judah, and Edom, and the children of Ammon, and Moab, and all that are +in the utmost corners, that dwell in the wilderness: for all these +nations are uncircumcised, and all the house of Israel are +uncircumcised in the heart. + +10:1 Hear ye the word which the LORD speaketh unto you, O house of +Israel: 10:2 Thus saith the LORD, Learn not the way of the heathen, +and be not dismayed at the signs of heaven; for the heathen are +dismayed at them. + +10:3 For the customs of the people are vain: for one cutteth a tree +out of the forest, the work of the hands of the workman, with the axe. + +10:4 They deck it with silver and with gold; they fasten it with nails +and with hammers, that it move not. + +10:5 They are upright as the palm tree, but speak not: they must needs +be borne, because they cannot go. Be not afraid of them; for they +cannot do evil, neither also is it in them to do good. + +10:6 Forasmuch as there is none like unto thee, O LORD; thou art +great, and thy name is great in might. + +10:7 Who would not fear thee, O King of nations? for to thee doth it +appertain: forasmuch as among all the wise men of the nations, and in +all their kingdoms, there is none like unto thee. + +10:8 But they are altogether brutish and foolish: the stock is a +doctrine of vanities. + +10:9 Silver spread into plates is brought from Tarshish, and gold from +Uphaz, the work of the workman, and of the hands of the founder: blue +and purple is their clothing: they are all the work of cunning men. + +10:10 But the LORD is the true God, he is the living God, and an +everlasting king: at his wrath the earth shall tremble, and the +nations shall not be able to abide his indignation. + +10:11 Thus shall ye say unto them, The gods that have not made the +heavens and the earth, even they shall perish from the earth, and from +under these heavens. + +10:12 He hath made the earth by his power, he hath established the +world by his wisdom, and hath stretched out the heavens by his +discretion. + +10:13 When he uttereth his voice, there is a multitude of waters in +the heavens, and he causeth the vapours to ascend from the ends of the +earth; he maketh lightnings with rain, and bringeth forth the wind out +of his treasures. + +10:14 Every man is brutish in his knowledge: every founder is +confounded by the graven image: for his molten image is falsehood, and +there is no breath in them. + +10:15 They are vanity, and the work of errors: in the time of their +visitation they shall perish. + +10:16 The portion of Jacob is not like them: for he is the former of +all things; and Israel is the rod of his inheritance: The LORD of +hosts is his name. + +10:17 Gather up thy wares out of the land, O inhabitant of the +fortress. + +10:18 For thus saith the LORD, Behold, I will sling out the +inhabitants of the land at this once, and will distress them, that +they may find it so. + +10:19 Woe is me for my hurt! my wound is grievous; but I said, Truly +this is a grief, and I must bear it. + +10:20 My tabernacle is spoiled, and all my cords are broken: my +children are gone forth of me, and they are not: there is none to +stretch forth my tent any more, and to set up my curtains. + +10:21 For the pastors are become brutish, and have not sought the +LORD: therefore they shall not prosper, and all their flocks shall be +scattered. + +10:22 Behold, the noise of the bruit is come, and a great commotion +out of the north country, to make the cities of Judah desolate, and a +den of dragons. + +10:23 O LORD, I know that the way of man is not in himself: it is not +in man that walketh to direct his steps. + +10:24 O LORD, correct me, but with judgment; not in thine anger, lest +thou bring me to nothing. + +10:25 Pour out thy fury upon the heathen that know thee not, and upon +the families that call not on thy name: for they have eaten up Jacob, +and devoured him, and consumed him, and have made his habitation +desolate. + +11:1 The word that came to Jeremiah from the LORD saying, 11:2 Hear ye +the words of this covenant, and speak unto the men of Judah, and to +the inhabitants of Jerusalem; 11:3 And say thou unto them, Thus saith +the LORD God of Israel; Cursed be the man that obeyeth not the words +of this covenant, 11:4 Which I commanded your fathers in the day that +I brought them forth out of the land of Egypt, from the iron furnace, +saying, Obey my voice, and do them, according to all which I command +you: so shall ye be my people, and I will be your God: 11:5 That I may +perform the oath which I have sworn unto your fathers, to give them a +land flowing with milk and honey, as it is this day. Then answered I, +and said, So be it, O LORD. + +11:6 Then the LORD said unto me, Proclaim all these words in the +cities of Judah, and in the streets of Jerusalem, saying, Hear ye the +words of this covenant, and do them. + +11:7 For I earnestly protested unto your fathers in the day that I +brought them up out of the land of Egypt, even unto this day, rising +early and protesting, saying, Obey my voice. + +11:8 Yet they obeyed not, nor inclined their ear, but walked every one +in the imagination of their evil heart: therefore I will bring upon +them all the words of this covenant, which I commanded them to do: but +they did them not. + +11:9 And the LORD said unto me, A conspiracy is found among the men of +Judah, and among the inhabitants of Jerusalem. + +11:10 They are turned back to the iniquities of their forefathers, +which refused to hear my words; and they went after other gods to +serve them: the house of Israel and the house of Judah have broken my +covenant which I made with their fathers. + +11:11 Therefore thus saith the LORD, Behold, I will bring evil upon +them, which they shall not be able to escape; and though they shall +cry unto me, I will not hearken unto them. + +11:12 Then shall the cities of Judah and inhabitants of Jerusalem go, +and cry unto the gods unto whom they offer incense: but they shall not +save them at all in the time of their trouble. + +11:13 For according to the number of thy cities were thy gods, O +Judah; and according to the number of the streets of Jerusalem have ye +set up altars to that shameful thing, even altars to burn incense unto +Baal. + +11:14 Therefore pray not thou for this people, neither lift up a cry +or prayer for them: for I will not hear them in the time that they cry +unto me for their trouble. + +11:15 What hath my beloved to do in mine house, seeing she hath +wrought lewdness with many, and the holy flesh is passed from thee? +when thou doest evil, then thou rejoicest. + +11:16 The LORD called thy name, A green olive tree, fair, and of +goodly fruit: with the noise of a great tumult he hath kindled fire +upon it, and the branches of it are broken. + +11:17 For the LORD of hosts, that planted thee, hath pronounced evil +against thee, for the evil of the house of Israel and of the house of +Judah, which they have done against themselves to provoke me to anger +in offering incense unto Baal. + +11:18 And the LORD hath given me knowledge of it, and I know it: then +thou shewedst me their doings. + +11:19 But I was like a lamb or an ox that is brought to the slaughter; +and I knew not that they had devised devices against me, saying, Let +us destroy the tree with the fruit thereof, and let us cut him off +from the land of the living, that his name may be no more remembered. + +11:20 But, O LORD of hosts, that judgest righteously, that triest the +reins and the heart, let me see thy vengeance on them: for unto thee +have I revealed my cause. + +11:21 Therefore thus saith the LORD of the men of Anathoth, that seek +thy life, saying, Prophesy not in the name of the LORD, that thou die +not by our hand: 11:22 Therefore thus saith the LORD of hosts, Behold, +I will punish them: the young men shall die by the sword; their sons +and their daughters shall die by famine: 11:23 And there shall be no +remnant of them: for I will bring evil upon the men of Anathoth, even +the year of their visitation. + +12:1 Righteous art thou, O LORD, when I plead with thee: yet let me +talk with thee of thy judgments: Wherefore doth the way of the wicked +prosper? wherefore are all they happy that deal very treacherously? +12:2 Thou hast planted them, yea, they have taken root: they grow, +yea, they bring forth fruit: thou art near in their mouth, and far +from their reins. + +12:3 But thou, O LORD, knowest me: thou hast seen me, and tried mine +heart toward thee: pull them out like sheep for the slaughter, and +prepare them for the day of slaughter. + +12:4 How long shall the land mourn, and the herbs of every field +wither, for the wickedness of them that dwell therein? the beasts are +consumed, and the birds; because they said, He shall not see our last +end. + +12:5 If thou hast run with the footmen, and they have wearied thee, +then how canst thou contend with horses? and if in the land of peace, +wherein thou trustedst, they wearied thee, then how wilt thou do in +the swelling of Jordan? 12:6 For even thy brethren, and the house of +thy father, even they have dealt treacherously with thee; yea, they +have called a multitude after thee: believe them not, though they +speak fair words unto thee. + +12:7 I have forsaken mine house, I have left mine heritage; I have +given the dearly beloved of my soul into the hand of her enemies. + +12:8 Mine heritage is unto me as a lion in the forest; it crieth out +against me: therefore have I hated it. + +12:9 Mine heritage is unto me as a speckled bird, the birds round +about are against her; come ye, assemble all the beasts of the field, +come to devour. + +12:10 Many pastors have destroyed my vineyard, they have trodden my +portion under foot, they have made my pleasant portion a desolate +wilderness. + +12:11 They have made it desolate, and being desolate it mourneth unto +me; the whole land is made desolate, because no man layeth it to +heart. + +12:12 The spoilers are come upon all high places through the +wilderness: for the sword of the LORD shall devour from the one end of +the land even to the other end of the land: no flesh shall have peace. + +12:13 They have sown wheat, but shall reap thorns: they have put +themselves to pain, but shall not profit: and they shall be ashamed of +your revenues because of the fierce anger of the LORD. + +12:14 Thus saith the LORD against all mine evil neighbours, that touch +the inheritance which I have caused my people Israel to inherit; +Behold, I will pluck them out of their land, and pluck out the house +of Judah from among them. + +12:15 And it shall come to pass, after that I have plucked them out I +will return, and have compassion on them, and will bring them again, +every man to his heritage, and every man to his land. + +12:16 And it shall come to pass, if they will diligently learn the +ways of my people, to swear by my name, The LORD liveth; as they +taught my people to swear by Baal; then shall they be built in the +midst of my people. + +12:17 But if they will not obey, I will utterly pluck up and destroy +that nation, saith the LORD. + +13:1 Thus saith the LORD unto me, Go and get thee a linen girdle, and +put it upon thy loins, and put it not in water. + +13:2 So I got a girdle according to the word of the LORD, and put it +on my loins. + +13:3 And the word of the LORD came unto me the second time, saying, +13:4 Take the girdle that thou hast got, which is upon thy loins, and +arise, go to Euphrates, and hide it there in a hole of the rock. + +13:5 So I went, and hid it by Euphrates, as the LORD commanded me. + +13:6 And it came to pass after many days, that the LORD said unto me, +Arise, go to Euphrates, and take the girdle from thence, which I +commanded thee to hide there. + +13:7 Then I went to Euphrates, and digged, and took the girdle from +the place where I had hid it: and, behold, the girdle was marred, it +was profitable for nothing. + +13:8 Then the word of the LORD came unto me, saying, 13:9 Thus saith +the LORD, After this manner will I mar the pride of Judah, and the +great pride of Jerusalem. + +13:10 This evil people, which refuse to hear my words, which walk in +the imagination of their heart, and walk after other gods, to serve +them, and to worship them, shall even be as this girdle, which is good +for nothing. + +13:11 For as the girdle cleaveth to the loins of a man, so have I +caused to cleave unto me the whole house of Israel and the whole house +of Judah, saith the LORD; that they might be unto me for a people, and +for a name, and for a praise, and for a glory: but they would not +hear. + +13:12 Therefore thou shalt speak unto them this word; Thus saith the +LORD God of Israel, Every bottle shall be filled with wine: and they +shall say unto thee, Do we not certainly know that every bottle shall +be filled with wine? 13:13 Then shalt thou say unto them, Thus saith +the LORD, Behold, I will fill all the inhabitants of this land, even +the kings that sit upon David's throne, and the priests, and the +prophets, and all the inhabitants of Jerusalem, with drunkenness. + +13:14 And I will dash them one against another, even the fathers and +the sons together, saith the LORD: I will not pity, nor spare, nor +have mercy, but destroy them. + +13:15 Hear ye, and give ear; be not proud: for the LORD hath spoken. + +13:16 Give glory to the LORD your God, before he cause darkness, and +before your feet stumble upon the dark mountains, and, while ye look +for light, he turn it into the shadow of death, and make it gross +darkness. + +13:17 But if ye will not hear it, my soul shall weep in secret places +for your pride; and mine eye shall weep sore, and run down with tears, +because the LORD's flock is carried away captive. + +13:18 Say unto the king and to the queen, Humble yourselves, sit down: +for your principalities shall come down, even the crown of your glory. + +13:19 The cities of the south shall be shut up, and none shall open +them: Judah shall be carried away captive all of it, it shall be +wholly carried away captive. + +13:20 Lift up your eyes, and behold them that come from the north: +where is the flock that was given thee, thy beautiful flock? 13:21 +What wilt thou say when he shall punish thee? for thou hast taught +them to be captains, and as chief over thee: shall not sorrows take +thee, as a woman in travail? 13:22 And if thou say in thine heart, +Wherefore come these things upon me? For the greatness of thine +iniquity are thy skirts discovered, and thy heels made bare. + +13:23 Can the Ethiopian change his skin, or the leopard his spots? +then may ye also do good, that are accustomed to do evil. + +13:24 Therefore will I scatter them as the stubble that passeth away +by the wind of the wilderness. + +13:25 This is thy lot, the portion of thy measures from me, saith the +LORD; because thou hast forgotten me, and trusted in falsehood. + +13:26 Therefore will I discover thy skirts upon thy face, that thy +shame may appear. + +13:27 I have seen thine adulteries, and thy neighings, the lewdness of +thy whoredom, and thine abominations on the hills in the fields. Woe +unto thee, O Jerusalem! wilt thou not be made clean? when shall it +once be? 14:1 The word of the LORD that came to Jeremiah concerning +the dearth. + +14:2 Judah mourneth, and the gates thereof languish; they are black +unto the ground; and the cry of Jerusalem is gone up. + +14:3 And their nobles have sent their little ones to the waters: they +came to the pits, and found no water; they returned with their vessels +empty; they were ashamed and confounded, and covered their heads. + +14:4 Because the ground is chapt, for there was no rain in the earth, +the plowmen were ashamed, they covered their heads. + +14:5 Yea, the hind also calved in the field, and forsook it, because +there was no grass. + +14:6 And the wild asses did stand in the high places, they snuffed up +the wind like dragons; their eyes did fail, because there was no +grass. + +14:7 O LORD, though our iniquities testify against us, do thou it for +thy name's sake: for our backslidings are many; we have sinned against +thee. + +14:8 O the hope of Israel, the saviour thereof in time of trouble, why +shouldest thou be as a stranger in the land, and as a wayfaring man +that turneth aside to tarry for a night? 14:9 Why shouldest thou be +as a man astonied, as a mighty man that cannot save? yet thou, O LORD, +art in the midst of us, and we are called by thy name; leave us not. + +14:10 Thus saith the LORD unto this people, Thus have they loved to +wander, they have not refrained their feet, therefore the LORD doth +not accept them; he will now remember their iniquity, and visit their +sins. + +14:11 Then said the LORD unto me, Pray not for this people for their +good. + +14:12 When they fast, I will not hear their cry; and when they offer +burnt offering and an oblation, I will not accept them: but I will +consume them by the sword, and by the famine, and by the pestilence. + +14:13 Then said I, Ah, Lord GOD! behold, the prophets say unto them, +Ye shall not see the sword, neither shall ye have famine; but I will +give you assured peace in this place. + +14:14 Then the LORD said unto me, The prophets prophesy lies in my +name: I sent them not, neither have I commanded them, neither spake +unto them: they prophesy unto you a false vision and divination, and a +thing of nought, and the deceit of their heart. + +14:15 Therefore thus saith the LORD concerning the prophets that +prophesy in my name, and I sent them not, yet they say, Sword and +famine shall not be in this land; By sword and famine shall those +prophets be consumed. + +14:16 And the people to whom they prophesy shall be cast out in the +streets of Jerusalem because of the famine and the sword; and they +shall have none to bury them, them, their wives, nor their sons, nor +their daughters: for I will pour their wickedness upon them. + +14:17 Therefore thou shalt say this word unto them; Let mine eyes run +down with tears night and day, and let them not cease: for the virgin +daughter of my people is broken with a great breach, with a very +grievous blow. + +14:18 If I go forth into the field, then behold the slain with the +sword! and if I enter into the city, then behold them that are sick +with famine! yea, both the prophet and the priest go about into a +land that they know not. + +14:19 Hast thou utterly rejected Judah? hath thy soul lothed Zion? why +hast thou smitten us, and there is no healing for us? we looked for +peace, and there is no good; and for the time of healing, and behold +trouble! 14:20 We acknowledge, O LORD, our wickedness, and the +iniquity of our fathers: for we have sinned against thee. + +14:21 Do not abhor us, for thy name's sake, do not disgrace the throne +of thy glory: remember, break not thy covenant with us. + +14:22 Are there any among the vanities of the Gentiles that can cause +rain? or can the heavens give showers? art not thou he, O LORD our +God? therefore we will wait upon thee: for thou hast made all these +things. + +15:1 Then said the LORD unto me, Though Moses and Samuel stood before +me, yet my mind could not be toward this people: cast them out of my +sight, and let them go forth. + +15:2 And it shall come to pass, if they say unto thee, Whither shall +we go forth? then thou shalt tell them, Thus saith the LORD; Such as +are for death, to death; and such as are for the sword, to the sword; +and such as are for the famine, to the famine; and such as are for the +captivity, to the captivity. + +15:3 And I will appoint over them four kinds, saith the LORD: the +sword to slay, and the dogs to tear, and the fowls of the heaven, and +the beasts of the earth, to devour and destroy. + +15:4 And I will cause them to be removed into all kingdoms of the +earth, because of Manasseh the son of Hezekiah king of Judah, for that +which he did in Jerusalem. + +15:5 For who shall have pity upon thee, O Jerusalem? or who shall +bemoan thee? or who shall go aside to ask how thou doest? 15:6 Thou +hast forsaken me, saith the LORD, thou art gone backward: therefore +will I stretch out my hand against thee, and destroy thee; I am weary +with repenting. + +15:7 And I will fan them with a fan in the gates of the land; I will +bereave them of children, I will destroy my people since they return +not from their ways. + +15:8 Their widows are increased to me above the sand of the seas: I +have brought upon them against the mother of the young men a spoiler +at noonday: I have caused him to fall upon it suddenly, and terrors +upon the city. + +15:9 She that hath borne seven languisheth: she hath given up the +ghost; her sun is gone down while it was yet day: she hath been +ashamed and confounded: and the residue of them will I deliver to the +sword before their enemies, saith the LORD. + +15:10 Woe is me, my mother, that thou hast borne me a man of strife +and a man of contention to the whole earth! I have neither lent on +usury, nor men have lent to me on usury; yet every one of them doth +curse me. + +15:11 The LORD said, Verily it shall be well with thy remnant; verily +I will cause the enemy to entreat thee well in the time of evil and in +the time of affliction. + +15:12 Shall iron break the northern iron and the steel? 15:13 Thy +substance and thy treasures will I give to the spoil without price, +and that for all thy sins, even in all thy borders. + +15:14 And I will make thee to pass with thine enemies into a land +which thou knowest not: for a fire is kindled in mine anger, which +shall burn upon you. + +15:15 O LORD, thou knowest: remember me, and visit me, and revenge me +of my persecutors; take me not away in thy longsuffering: know that +for thy sake I have suffered rebuke. + +15:16 Thy words were found, and I did eat them; and thy word was unto +me the joy and rejoicing of mine heart: for I am called by thy name, O +LORD God of hosts. + +15:17 I sat not in the assembly of the mockers, nor rejoiced; I sat +alone because of thy hand: for thou hast filled me with indignation. + +15:18 Why is my pain perpetual, and my wound incurable, which refuseth +to be healed? wilt thou be altogether unto me as a liar, and as waters +that fail? 15:19 Therefore thus saith the LORD, If thou return, then +will I bring thee again, and thou shalt stand before me: and if thou +take forth the precious from the vile, thou shalt be as my mouth: let +them return unto thee; but return not thou unto them. + +15:20 And I will make thee unto this people a fenced brasen wall: and +they shall fight against thee, but they shall not prevail against +thee: for I am with thee to save thee and to deliver thee, saith the +LORD. + +15:21 And I will deliver thee out of the hand of the wicked, and I +will redeem thee out of the hand of the terrible. + +16:1 The word of the LORD came also unto me, saying, 16:2 Thou shalt +not take thee a wife, neither shalt thou have sons or daughters in +this place. + +16:3 For thus saith the LORD concerning the sons and concerning the +daughters that are born in this place, and concerning their mothers +that bare them, and concerning their fathers that begat them in this +land; 16:4 They shall die of grievous deaths; they shall not be +lamented; neither shall they be buried; but they shall be as dung upon +the face of the earth: and they shall be consumed by the sword, and by +famine; and their carcases shall be meat for the fowls of heaven, and +for the beasts of the earth. + +16:5 For thus saith the LORD, Enter not into the house of mourning, +neither go to lament nor bemoan them: for I have taken away my peace +from this people, saith the LORD, even lovingkindness and mercies. + +16:6 Both the great and the small shall die in this land: they shall +not be buried, neither shall men lament for them, nor cut themselves, +nor make themselves bald for them: 16:7 Neither shall men tear +themselves for them in mourning, to comfort them for the dead; neither +shall men give them the cup of consolation to drink for their father +or for their mother. + +16:8 Thou shalt not also go into the house of feasting, to sit with +them to eat and to drink. + +16:9 For thus saith the LORD of hosts, the God of Israel; Behold, I +will cause to cease out of this place in your eyes, and in your days, +the voice of mirth, and the voice of gladness, the voice of the +bridegroom, and the voice of the bride. + +16:10 And it shall come to pass, when thou shalt shew this people all +these words, and they shall say unto thee, Wherefore hath the LORD +pronounced all this great evil against us? or what is our iniquity? or +what is our sin that we have committed against the LORD our God? +16:11 Then shalt thou say unto them, Because your fathers have +forsaken me, saith the LORD, and have walked after other gods, and +have served them, and have worshipped them, and have forsaken me, and +have not kept my law; 16:12 And ye have done worse than your fathers; +for, behold, ye walk every one after the imagination of his evil +heart, that they may not hearken unto me: 16:13 Therefore will I cast +you out of this land into a land that ye know not, neither ye nor your +fathers; and there shall ye serve other gods day and night; where I +will not shew you favour. + +16:14 Therefore, behold, the days come, saith the LORD, that it shall +no more be said, The LORD liveth, that brought up the children of +Israel out of the land of Egypt; 16:15 But, The LORD liveth, that +brought up the children of Israel from the land of the north, and from +all the lands whither he had driven them: and I will bring them again +into their land that I gave unto their fathers. + +16:16 Behold, I will send for many fishers, saith the LORD, and they +shall fish them; and after will I send for many hunters, and they +shall hunt them from every mountain, and from every hill, and out of +the holes of the rocks. + +16:17 For mine eyes are upon all their ways: they are not hid from my +face, neither is their iniquity hid from mine eyes. + +16:18 And first I will recompense their iniquity and their sin double; +because they have defiled my land, they have filled mine inheritance +with the carcases of their detestable and abominable things. + +16:19 O LORD, my strength, and my fortress, and my refuge in the day +of affliction, the Gentiles shall come unto thee from the ends of the +earth, and shall say, Surely our fathers have inherited lies, vanity, +and things wherein there is no profit. + +16:20 Shall a man make gods unto himself, and they are no gods? 16:21 +Therefore, behold, I will this once cause them to know, I will cause +them to know mine hand and my might; and they shall know that my name +is The LORD. + +17:1 The sin of Judah is written with a pen of iron, and with the +point of a diamond: it is graven upon the table of their heart, and +upon the horns of your altars; 17:2 Whilst their children remember +their altars and their groves by the green trees upon the high hills. + +17:3 O my mountain in the field, I will give thy substance and all thy +treasures to the spoil, and thy high places for sin, throughout all +thy borders. + +17:4 And thou, even thyself, shalt discontinue from thine heritage +that I gave thee; and I will cause thee to serve thine enemies in the +land which thou knowest not: for ye have kindled a fire in mine anger, +which shall burn for ever. + +17:5 Thus saith the LORD; Cursed be the man that trusteth in man, and +maketh flesh his arm, and whose heart departeth from the LORD. + +17:6 For he shall be like the heath in the desert, and shall not see +when good cometh; but shall inhabit the parched places in the +wilderness, in a salt land and not inhabited. + +17:7 Blessed is the man that trusteth in the LORD, and whose hope the +LORD is. + +17:8 For he shall be as a tree planted by the waters, and that +spreadeth out her roots by the river, and shall not see when heat +cometh, but her leaf shall be green; and shall not be careful in the +year of drought, neither shall cease from yielding fruit. + +17:9 The heart is deceitful above all things, and desperately wicked: +who can know it? 17:10 I the LORD search the heart, I try the reins, +even to give every man according to his ways, and according to the +fruit of his doings. + +17:11 As the partridge sitteth on eggs, and hatcheth them not; so he +that getteth riches, and not by right, shall leave them in the midst +of his days, and at his end shall be a fool. + +17:12 A glorious high throne from the beginning is the place of our +sanctuary. + +17:13 O LORD, the hope of Israel, all that forsake thee shall be +ashamed, and they that depart from me shall be written in the earth, +because they have forsaken the LORD, the fountain of living waters. + +17:14 Heal me, O LORD, and I shall be healed; save me, and I shall be +saved: for thou art my praise. + +17:15 Behold, they say unto me, Where is the word of the LORD? let it +come now. + +17:16 As for me, I have not hastened from being a pastor to follow +thee: neither have I desired the woeful day; thou knowest: that which +came out of my lips was right before thee. + +17:17 Be not a terror unto me: thou art my hope in the day of evil. + +17:18 Let them be confounded that persecute me, but let not me be +confounded: let them be dismayed, but let not me be dismayed: bring +upon them the day of evil, and destroy them with double destruction. + +17:19 Thus said the LORD unto me; Go and stand in the gate of the +children of the people, whereby the kings of Judah come in, and by the +which they go out, and in all the gates of Jerusalem; 17:20 And say +unto them, Hear ye the word of the LORD, ye kings of Judah, and all +Judah, and all the inhabitants of Jerusalem, that enter in by these +gates: 17:21 Thus saith the LORD; Take heed to yourselves, and bear no +burden on the sabbath day, nor bring it in by the gates of Jerusalem; +17:22 Neither carry forth a burden out of your houses on the sabbath +day, neither do ye any work, but hallow ye the sabbath day, as I +commanded your fathers. + +17:23 But they obeyed not, neither inclined their ear, but made their +neck stiff, that they might not hear, nor receive instruction. + +17:24 And it shall come to pass, if ye diligently hearken unto me, +saith the LORD, to bring in no burden through the gates of this city +on the sabbath day, but hallow the sabbath day, to do no work therein; +17:25 Then shall there enter into the gates of this city kings and +princes sitting upon the throne of David, riding in chariots and on +horses, they, and their princes, the men of Judah, and the inhabitants +of Jerusalem: and this city shall remain for ever. + +17:26 And they shall come from the cities of Judah, and from the +places about Jerusalem, and from the land of Benjamin, and from the +plain, and from the mountains, and from the south, bringing burnt +offerings, and sacrifices, and meat offerings, and incense, and +bringing sacrifices of praise, unto the house of the LORD. + +17:27 But if ye will not hearken unto me to hallow the sabbath day, +and not to bear a burden, even entering in at the gates of Jerusalem +on the sabbath day; then will I kindle a fire in the gates thereof, +and it shall devour the palaces of Jerusalem, and it shall not be +quenched. + +18:1 The word which came to Jeremiah from the LORD, saying, 18:2 +Arise, and go down to the potter's house, and there I will cause thee +to hear my words. + +18:3 Then I went down to the potter's house, and, behold, he wrought a +work on the wheels. + +18:4 And the vessel that he made of clay was marred in the hand of the +potter: so he made it again another vessel, as seemed good to the +potter to make it. + +18:5 Then the word of the LORD came to me, saying, 18:6 O house of +Israel, cannot I do with you as this potter? saith the LORD. Behold, +as the clay is in the potter's hand, so are ye in mine hand, O house +of Israel. + +18:7 At what instant I shall speak concerning a nation, and concerning +a kingdom, to pluck up, and to pull down, and to destroy it; 18:8 If +that nation, against whom I have pronounced, turn from their evil, I +will repent of the evil that I thought to do unto them. + +18:9 And at what instant I shall speak concerning a nation, and +concerning a kingdom, to build and to plant it; 18:10 If it do evil in +my sight, that it obey not my voice, then I will repent of the good, +wherewith I said I would benefit them. + +18:11 Now therefore go to, speak to the men of Judah, and to the +inhabitants of Jerusalem, saying, Thus saith the LORD; Behold, I frame +evil against you, and devise a device against you: return ye now every +one from his evil way, and make your ways and your doings good. + +18:12 And they said, There is no hope: but we will walk after our own +devices, and we will every one do the imagination of his evil heart. + +18:13 Therefore thus saith the LORD; Ask ye now among the heathen, who +hath heard such things: the virgin of Israel hath done a very horrible +thing. + +18:14 Will a man leave the snow of Lebanon which cometh from the rock +of the field? or shall the cold flowing waters that come from another +place be forsaken? 18:15 Because my people hath forgotten me, they +have burned incense to vanity, and they have caused them to stumble in +their ways from the ancient paths, to walk in paths, in a way not cast +up; 18:16 To make their land desolate, and a perpetual hissing; every +one that passeth thereby shall be astonished, and wag his head. + +18:17 I will scatter them as with an east wind before the enemy; I +will shew them the back, and not the face, in the day of their +calamity. + +18:18 Then said they, Come and let us devise devices against Jeremiah; +for the law shall not perish from the priest, nor counsel from the +wise, nor the word from the prophet. Come, and let us smite him with +the tongue, and let us not give heed to any of his words. + +18:19 Give heed to me, O LORD, and hearken to the voice of them that +contend with me. + +18:20 Shall evil be recompensed for good? for they have digged a pit +for my soul. Remember that I stood before thee to speak good for them, +and to turn away thy wrath from them. + +18:21 Therefore deliver up their children to the famine, and pour out +their blood by the force of the sword; and let their wives be bereaved +of their children, and be widows; and let their men be put to death; +let their young men be slain by the sword in battle. + +18:22 Let a cry be heard from their houses, when thou shalt bring a +troop suddenly upon them: for they have digged a pit to take me, and +hid snares for my feet. + +18:23 Yet, LORD, thou knowest all their counsel against me to slay me: +forgive not their iniquity, neither blot out their sin from thy sight, +but let them be overthrown before thee; deal thus with them in the +time of thine anger. + +19:1 Thus saith the LORD, Go and get a potter's earthen bottle, and +take of the ancients of the people, and of the ancients of the +priests; 19:2 And go forth unto the valley of the son of Hinnom, which +is by the entry of the east gate, and proclaim there the words that I +shall tell thee, 19:3 And say, Hear ye the word of the LORD, O kings +of Judah, and inhabitants of Jerusalem; Thus saith the LORD of hosts, +the God of Israel; Behold, I will bring evil upon this place, the +which whosoever heareth, his ears shall tingle. + +19:4 Because they have forsaken me, and have estranged this place, and +have burned incense in it unto other gods, whom neither they nor their +fathers have known, nor the kings of Judah, and have filled this place +with the blood of innocents; 19:5 They have built also the high places +of Baal, to burn their sons with fire for burnt offerings unto Baal, +which I commanded not, nor spake it, neither came it into my mind: +19:6 Therefore, behold, the days come, saith the LORD, that this place +shall no more be called Tophet, nor The valley of the son of Hinnom, +but The valley of slaughter. + +19:7 And I will make void the counsel of Judah and Jerusalem in this +place; and I will cause them to fall by the sword before their +enemies, and by the hands of them that seek their lives: and their +carcases will I give to be meat for the fowls of the heaven, and for +the beasts of the earth. + +19:8 And I will make this city desolate, and an hissing; every one +that passeth thereby shall be astonished and hiss because of all the +plagues thereof. + +19:9 And I will cause them to eat the flesh of their sons and the +flesh of their daughters, and they shall eat every one the flesh of +his friend in the siege and straitness, wherewith their enemies, and +they that seek their lives, shall straiten them. + +19:10 Then shalt thou break the bottle in the sight of the men that go +with thee, 19:11 And shalt say unto them, Thus saith the LORD of +hosts; Even so will I break this people and this city, as one breaketh +a potter's vessel, that cannot be made whole again: and they shall +bury them in Tophet, till there be no place to bury. + +19:12 Thus will I do unto this place, saith the LORD, and to the +inhabitants thereof, and even make this city as Tophet: 19:13 And the +houses of Jerusalem, and the houses of the kings of Judah, shall be +defiled as the place of Tophet, because of all the houses upon whose +roofs they have burned incense unto all the host of heaven, and have +poured out drink offerings unto other gods. + +19:14 Then came Jeremiah from Tophet, whither the LORD had sent him to +prophesy; and he stood in the court of the LORD's house; and said to +all the people, 19:15 Thus saith the LORD of hosts, the God of Israel; +Behold, I will bring upon this city and upon all her towns all the +evil that I have pronounced against it, because they have hardened +their necks, that they might not hear my words. + +20:1 Now Pashur the son of Immer the priest, who was also chief +governor in the house of the LORD, heard that Jeremiah prophesied +these things. + +20:2 Then Pashur smote Jeremiah the prophet, and put him in the stocks +that were in the high gate of Benjamin, which was by the house of the +LORD. + +20:3 And it came to pass on the morrow, that Pashur brought forth +Jeremiah out of the stocks. Then said Jeremiah unto him, The LORD hath +not called thy name Pashur, but Magormissabib. + +20:4 For thus saith the LORD, Behold, I will make thee a terror to +thyself, and to all thy friends: and they shall fall by the sword of +their enemies, and thine eyes shall behold it: and I will give all +Judah into the hand of the king of Babylon, and he shall carry them +captive into Babylon, and shall slay them with the sword. + +20:5 Moreover I will deliver all the strength of this city, and all +the labours thereof, and all the precious things thereof, and all the +treasures of the kings of Judah will I give into the hand of their +enemies, which shall spoil them, and take them, and carry them to +Babylon. + +20:6 And thou, Pashur, and all that dwell in thine house shall go into +captivity: and thou shalt come to Babylon, and there thou shalt die, +and shalt be buried there, thou, and all thy friends, to whom thou +hast prophesied lies. + +20:7 O LORD, thou hast deceived me, and I was deceived; thou art +stronger than I, and hast prevailed: I am in derision daily, every one +mocketh me. + +20:8 For since I spake, I cried out, I cried violence and spoil; +because the word of the LORD was made a reproach unto me, and a +derision, daily. + +20:9 Then I said, I will not make mention of him, nor speak any more +in his name. But his word was in mine heart as a burning fire shut up +in my bones, and I was weary with forbearing, and I could not stay. + +20:10 For I heard the defaming of many, fear on every side. Report, +say they, and we will report it. All my familiars watched for my +halting, saying, Peradventure he will be enticed, and we shall prevail +against him, and we shall take our revenge on him. + +20:11 But the LORD is with me as a mighty terrible one: therefore my +persecutors shall stumble, and they shall not prevail: they shall be +greatly ashamed; for they shall not prosper: their everlasting +confusion shall never be forgotten. + +20:12 But, O LORD of hosts, that triest the righteous, and seest the +reins and the heart, let me see thy vengeance on them: for unto thee +have I opened my cause. + +20:13 Sing unto the LORD, praise ye the LORD: for he hath delivered +the soul of the poor from the hand of evildoers. + +20:14 Cursed be the day wherein I was born: let not the day wherein my +mother bare me be blessed. + +20:15 Cursed be the man who brought tidings to my father, saying, A +man child is born unto thee; making him very glad. + +20:16 And let that man be as the cities which the LORD overthrew, and +repented not: and let him hear the cry in the morning, and the +shouting at noontide; 20:17 Because he slew me not from the womb; or +that my mother might have been my grave, and her womb to be always +great with me. + +20:18 Wherefore came I forth out of the womb to see labour and sorrow, +that my days should be consumed with shame? 21:1 The word which came +unto Jeremiah from the LORD, when king Zedekiah sent unto him Pashur +the son of Melchiah, and Zephaniah the son of Maaseiah the priest, +saying, 21:2 Enquire, I pray thee, of the LORD for us; for +Nebuchadrezzar king of Babylon maketh war against us; if so be that +the LORD will deal with us according to all his wondrous works, that +he may go up from us. + +21:3 Then said Jeremiah unto them, Thus shall ye say to Zedekiah: 21:4 +Thus saith the LORD God of Israel; Behold, I will turn back the +weapons of war that are in your hands, wherewith ye fight against the +king of Babylon, and against the Chaldeans, which besiege you without +the walls, and I will assemble them into the midst of this city. + +21:5 And I myself will fight against you with an outstretched hand and +with a strong arm, even in anger, and in fury, and in great wrath. + +21:6 And I will smite the inhabitants of this city, both man and +beast: they shall die of a great pestilence. + +21:7 And afterward, saith the LORD, I will deliver Zedekiah king of +Judah, and his servants, and the people, and such as are left in this +city from the pestilence, from the sword, and from the famine, into +the hand of Nebuchadrezzar king of Babylon, and into the hand of their +enemies, and into the hand of those that seek their life: and he shall +smite them with the edge of the sword; he shall not spare them, +neither have pity, nor have mercy. + +21:8 And unto this people thou shalt say, Thus saith the LORD; Behold, +I set before you the way of life, and the way of death. + +21:9 He that abideth in this city shall die by the sword, and by the +famine, and by the pestilence: but he that goeth out, and falleth to +the Chaldeans that besiege you, he shall live, and his life shall be +unto him for a prey. + +21:10 For I have set my face against this city for evil, and not for +good, saith the LORD: it shall be given into the hand of the king of +Babylon, and he shall burn it with fire. + +21:11 And touching the house of the king of Judah, say, Hear ye the +word of the LORD; 21:12 O house of David, thus saith the LORD; Execute +judgment in the morning, and deliver him that is spoiled out of the +hand of the oppressor, lest my fury go out like fire, and burn that +none can quench it, because of the evil of your doings. + +21:13 Behold, I am against thee, O inhabitant of the valley, and rock +of the plain, saith the LORD; which say, Who shall come down against +us? or who shall enter into our habitations? 21:14 But I will punish +you according to the fruit of your doings, saith the LORD: and I will +kindle a fire in the forest thereof, and it shall devour all things +round about it. + +22:1 Thus saith the LORD; Go down to the house of the king of Judah, +and speak there this word, 22:2 And say, Hear the word of the LORD, O +king of Judah, that sittest upon the throne of David, thou, and thy +servants, and thy people that enter in by these gates: 22:3 Thus saith +the LORD; Execute ye judgment and righteousness, and deliver the +spoiled out of the hand of the oppressor: and do no wrong, do no +violence to the stranger, the fatherless, nor the widow, neither shed +innocent blood in this place. + +22:4 For if ye do this thing indeed, then shall there enter in by the +gates of this house kings sitting upon the throne of David, riding in +chariots and on horses, he, and his servants, and his people. + +22:5 But if ye will not hear these words, I swear by myself, saith the +LORD, that this house shall become a desolation. + +22:6 For thus saith the LORD unto the king's house of Judah; Thou art +Gilead unto me, and the head of Lebanon: yet surely I will make thee a +wilderness, and cities which are not inhabited. + +22:7 And I will prepare destroyers against thee, every one with his +weapons: and they shall cut down thy choice cedars, and cast them into +the fire. + +22:8 And many nations shall pass by this city, and they shall say +every man to his neighbour, Wherefore hath the LORD done thus unto +this great city? 22:9 Then they shall answer, Because they have +forsaken the covenant of the LORD their God, and worshipped other +gods, and served them. + +22:10 Weep ye not for the dead, neither bemoan him: but weep sore for +him that goeth away: for he shall return no more, nor see his native +country. + +22:11 For thus saith the LORD touching Shallum the son of Josiah king +of Judah, which reigned instead of Josiah his father, which went forth +out of this place; He shall not return thither any more: 22:12 But he +shall die in the place whither they have led him captive, and shall +see this land no more. + +22:13 Woe unto him that buildeth his house by unrighteousness, and his +chambers by wrong; that useth his neighbour's service without wages, +and giveth him not for his work; 22:14 That saith, I will build me a +wide house and large chambers, and cutteth him out windows; and it is +cieled with cedar, and painted with vermilion. + +22:15 Shalt thou reign, because thou closest thyself in cedar? did not +thy father eat and drink, and do judgment and justice, and then it was +well with him? 22:16 He judged the cause of the poor and needy; then +it was well with him: was not this to know me? saith the LORD. + +22:17 But thine eyes and thine heart are not but for thy covetousness, +and for to shed innocent blood, and for oppression, and for violence, +to do it. + +22:18 Therefore thus saith the LORD concerning Jehoiakim the son of +Josiah king of Judah; They shall not lament for him, saying, Ah my +brother! or, Ah sister! they shall not lament for him, saying, Ah +lord! or, Ah his glory! 22:19 He shall be buried with the burial of +an ass, drawn and cast forth beyond the gates of Jerusalem. + +22:20 Go up to Lebanon, and cry; and lift up thy voice in Bashan, and +cry from the passages: for all thy lovers are destroyed. + +22:21 I spake unto thee in thy prosperity; but thou saidst, I will not +hear. This hath been thy manner from thy youth, that thou obeyedst not +my voice. + +22:22 The wind shall eat up all thy pastors, and thy lovers shall go +into captivity: surely then shalt thou be ashamed and confounded for +all thy wickedness. + +22:23 O inhabitant of Lebanon, that makest thy nest in the cedars, how +gracious shalt thou be when pangs come upon thee, the pain as of a +woman in travail! 22:24 As I live, saith the LORD, though Coniah the +son of Jehoiakim king of Judah were the signet upon my right hand, yet +would I pluck thee thence; 22:25 And I will give thee into the hand of +them that seek thy life, and into the hand of them whose face thou +fearest, even into the hand of Nebuchadrezzar king of Babylon, and +into the hand of the Chaldeans. + +22:26 And I will cast thee out, and thy mother that bare thee, into +another country, where ye were not born; and there shall ye die. + +22:27 But to the land whereunto they desire to return, thither shall +they not return. + +22:28 Is this man Coniah a despised broken idol? is he a vessel +wherein is no pleasure? wherefore are they cast out, he and his seed, +and are cast into a land which they know not? 22:29 O earth, earth, +earth, hear the word of the LORD. + +22:30 Thus saith the LORD, Write ye this man childless, a man that +shall not prosper in his days: for no man of his seed shall prosper, +sitting upon the throne of David, and ruling any more in Judah. + +23:1 Woe be unto the pastors that destroy and scatter the sheep of my +pasture! saith the LORD. + +23:2 Therefore thus saith the LORD God of Israel against the pastors +that feed my people; Ye have scattered my flock, and driven them away, +and have not visited them: behold, I will visit upon you the evil of +your doings, saith the LORD. + +23:3 And I will gather the remnant of my flock out of all countries +whither I have driven them, and will bring them again to their folds; +and they shall be fruitful and increase. + +23:4 And I will set up shepherds over them which shall feed them: and +they shall fear no more, nor be dismayed, neither shall they be +lacking, saith the LORD. + +23:5 Behold, the days come, saith the LORD, that I will raise unto +David a righteous Branch, and a King shall reign and prosper, and +shall execute judgment and justice in the earth. + +23:6 In his days Judah shall be saved, and Israel shall dwell safely: +and this is his name whereby he shall be called, THE LORD OUR +RIGHTEOUSNESS. + +23:7 Therefore, behold, the days come, saith the LORD, that they shall +no more say, The LORD liveth, which brought up the children of Israel +out of the land of Egypt; 23:8 But, The LORD liveth, which brought up +and which led the seed of the house of Israel out of the north +country, and from all countries whither I had driven them; and they +shall dwell in their own land. + +23:9 Mine heart within me is broken because of the prophets; all my +bones shake; I am like a drunken man, and like a man whom wine hath +overcome, because of the LORD, and because of the words of his +holiness. + +23:10 For the land is full of adulterers; for because of swearing the +land mourneth; the pleasant places of the wilderness are dried up, and +their course is evil, and their force is not right. + +23:11 For both prophet and priest are profane; yea, in my house have I +found their wickedness, saith the LORD. + +23:12 Wherefore their way shall be unto them as slippery ways in the +darkness: they shall be driven on, and fall therein: for I will bring +evil upon them, even the year of their visitation, saith the LORD. + +23:13 And I have seen folly in the prophets of Samaria; they +prophesied in Baal, and caused my people Israel to err. + +23:14 I have seen also in the prophets of Jerusalem an horrible thing: +they commit adultery, and walk in lies: they strengthen also the hands +of evildoers, that none doth return from his wickedness; they are all +of them unto me as Sodom, and the inhabitants thereof as Gomorrah. + +23:15 Therefore thus saith the LORD of hosts concerning the prophets; +Behold, I will feed them with wormwood, and make them drink the water +of gall: for from the prophets of Jerusalem is profaneness gone forth +into all the land. + +23:16 Thus saith the LORD of hosts, Hearken not unto the words of the +prophets that prophesy unto you: they make you vain: they speak a +vision of their own heart, and not out of the mouth of the LORD. + +23:17 They say still unto them that despise me, The LORD hath said, Ye +shall have peace; and they say unto every one that walketh after the +imagination of his own heart, No evil shall come upon you. + +23:18 For who hath stood in the counsel of the LORD, and hath +perceived and heard his word? who hath marked his word, and heard it? +23:19 Behold, a whirlwind of the LORD is gone forth in fury, even a +grievous whirlwind: it shall fall grievously upon the head of the +wicked. + +23:20 The anger of the LORD shall not return, until he have executed, +and till he have performed the thoughts of his heart: in the latter +days ye shall consider it perfectly. + +23:21 I have not sent these prophets, yet they ran: I have not spoken +to them, yet they prophesied. + +23:22 But if they had stood in my counsel, and had caused my people to +hear my words, then they should have turned them from their evil way, +and from the evil of their doings. + +23:23 Am I a God at hand, saith the LORD, and not a God afar off? +23:24 Can any hide himself in secret places that I shall not see him? +saith the LORD. Do not I fill heaven and earth? saith the LORD. + +23:25 I have heard what the prophets said, that prophesy lies in my +name, saying, I have dreamed, I have dreamed. + +23:26 How long shall this be in the heart of the prophets that +prophesy lies? yea, they are prophets of the deceit of their own +heart; 23:27 Which think to cause my people to forget my name by their +dreams which they tell every man to his neighbour, as their fathers +have forgotten my name for Baal. + +23:28 The prophet that hath a dream, let him tell a dream; and he that +hath my word, let him speak my word faithfully. What is the chaff to +the wheat? saith the LORD. + +23:29 Is not my word like as a fire? saith the LORD; and like a hammer +that breaketh the rock in pieces? 23:30 Therefore, behold, I am +against the prophets, saith the LORD, that steal my words every one +from his neighbour. + +23:31 Behold, I am against the prophets, saith the LORD, that use +their tongues, and say, He saith. + +23:32 Behold, I am against them that prophesy false dreams, saith the +LORD, and do tell them, and cause my people to err by their lies, and +by their lightness; yet I sent them not, nor commanded them: therefore +they shall not profit this people at all, saith the LORD. + +23:33 And when this people, or the prophet, or a priest, shall ask +thee, saying, What is the burden of the LORD? thou shalt then say unto +them, What burden? I will even forsake you, saith the LORD. + +23:34 And as for the prophet, and the priest, and the people, that +shall say, The burden of the LORD, I will even punish that man and his +house. + +23:35 Thus shall ye say every one to his neighbour, and every one to +his brother, What hath the LORD answered? and, What hath the LORD +spoken? 23:36 And the burden of the LORD shall ye mention no more: +for every man's word shall be his burden; for ye have perverted the +words of the living God, of the LORD of hosts our God. + +23:37 Thus shalt thou say to the prophet, What hath the LORD answered +thee? and, What hath the LORD spoken? 23:38 But since ye say, The +burden of the LORD; therefore thus saith the LORD; Because ye say this +word, The burden of the LORD, and I have sent unto you, saying, Ye +shall not say, The burden of the LORD; 23:39 Therefore, behold, I, +even I, will utterly forget you, and I will forsake you, and the city +that I gave you and your fathers, and cast you out of my presence: +23:40 And I will bring an everlasting reproach upon you, and a +perpetual shame, which shall not be forgotten. + +24:1 The LORD shewed me, and, behold, two baskets of figs were set +before the temple of the LORD, after that Nebuchadrezzar king of +Babylon had carried away captive Jeconiah the son of Jehoiakim king of +Judah, and the princes of Judah, with the carpenters and smiths, from +Jerusalem, and had brought them to Babylon. + +24:2 One basket had very good figs, even like the figs that are first +ripe: and the other basket had very naughty figs, which could not be +eaten, they were so bad. + +24:3 Then said the LORD unto me, What seest thou, Jeremiah? And I +said, Figs; the good figs, very good; and the evil, very evil, that +cannot be eaten, they are so evil. + +24:4 Again the word of the LORD came unto me, saying, 24:5 Thus saith +the LORD, the God of Israel; Like these good figs, so will I +acknowledge them that are carried away captive of Judah, whom I have +sent out of this place into the land of the Chaldeans for their good. + +24:6 For I will set mine eyes upon them for good, and I will bring +them again to this land: and I will build them, and not pull them +down; and I will plant them, and not pluck them up. + +24:7 And I will give them an heart to know me, that I am the LORD: and +they shall be my people, and I will be their God: for they shall +return unto me with their whole heart. + +24:8 And as the evil figs, which cannot be eaten, they are so evil; +surely thus saith the LORD, So will I give Zedekiah the king of Judah, +and his princes, and the residue of Jerusalem, that remain in this +land, and them that dwell in the land of Egypt: 24:9 And I will +deliver them to be removed into all the kingdoms of the earth for +their hurt, to be a reproach and a proverb, a taunt and a curse, in +all places whither I shall drive them. + +24:10 And I will send the sword, the famine, and the pestilence, among +them, till they be consumed from off the land that I gave unto them +and to their fathers. + +25:1 The word that came to Jeremiah concerning all the people of Judah +in the fourth year of Jehoiakim the son of Josiah king of Judah, that +was the first year of Nebuchadrezzar king of Babylon; 25:2 The which +Jeremiah the prophet spake unto all the people of Judah, and to all +the inhabitants of Jerusalem, saying, 25:3 From the thirteenth year of +Josiah the son of Amon king of Judah, even unto this day, that is the +three and twentieth year, the word of the LORD hath come unto me, and +I have spoken unto you, rising early and speaking; but ye have not +hearkened. + +25:4 And the LORD hath sent unto you all his servants the prophets, +rising early and sending them; but ye have not hearkened, nor inclined +your ear to hear. + +25:5 They said, Turn ye again now every one from his evil way, and +from the evil of your doings, and dwell in the land that the LORD hath +given unto you and to your fathers for ever and ever: 25:6 And go not +after other gods to serve them, and to worship them, and provoke me +not to anger with the works of your hands; and I will do you no hurt. + +25:7 Yet ye have not hearkened unto me, saith the LORD; that ye might +provoke me to anger with the works of your hands to your own hurt. + +25:8 Therefore thus saith the LORD of hosts; Because ye have not heard +my words, 25:9 Behold, I will send and take all the families of the +north, saith the LORD, and Nebuchadrezzar the king of Babylon, my +servant, and will bring them against this land, and against the +inhabitants thereof, and against all these nations round about, and +will utterly destroy them, and make them an astonishment, and an +hissing, and perpetual desolations. + +25:10 Moreover I will take from them the voice of mirth, and the voice +of gladness, the voice of the bridegroom, and the voice of the bride, +the sound of the millstones, and the light of the candle. + +25:11 And this whole land shall be a desolation, and an astonishment; +and these nations shall serve the king of Babylon seventy years. + +25:12 And it shall come to pass, when seventy years are accomplished, +that I will punish the king of Babylon, and that nation, saith the +LORD, for their iniquity, and the land of the Chaldeans, and will make +it perpetual desolations. + +25:13 And I will bring upon that land all my words which I have +pronounced against it, even all that is written in this book, which +Jeremiah hath prophesied against all the nations. + +25:14 For many nations and great kings shall serve themselves of them +also: and I will recompense them according to their deeds, and +according to the works of their own hands. + +25:15 For thus saith the LORD God of Israel unto me; Take the wine cup +of this fury at my hand, and cause all the nations, to whom I send +thee, to drink it. + +25:16 And they shall drink, and be moved, and be mad, because of the +sword that I will send among them. + +25:17 Then took I the cup at the LORD's hand, and made all the nations +to drink, unto whom the LORD had sent me: 25:18 To wit, Jerusalem, and +the cities of Judah, and the kings thereof, and the princes thereof, +to make them a desolation, an astonishment, an hissing, and a curse; +as it is this day; 25:19 Pharaoh king of Egypt, and his servants, and +his princes, and all his people; 25:20 And all the mingled people, and +all the kings of the land of Uz, and all the kings of the land of the +Philistines, and Ashkelon, and Azzah, and Ekron, and the remnant of +Ashdod, 25:21 Edom, and Moab, and the children of Ammon, 25:22 And all +the kings of Tyrus, and all the kings of Zidon, and the kings of the +isles which are beyond the sea, 25:23 Dedan, and Tema, and Buz, and +all that are in the utmost corners, 25:24 And all the kings of Arabia, +and all the kings of the mingled people that dwell in the desert, +25:25 And all the kings of Zimri, and all the kings of Elam, and all +the kings of the Medes, 25:26 And all the kings of the north, far and +near, one with another, and all the kingdoms of the world, which are +upon the face of the earth: and the king of Sheshach shall drink after +them. + +25:27 Therefore thou shalt say unto them, Thus saith the LORD of +hosts, the God of Israel; Drink ye, and be drunken, and spue, and +fall, and rise no more, because of the sword which I will send among +you. + +25:28 And it shall be, if they refuse to take the cup at thine hand to +drink, then shalt thou say unto them, Thus saith the LORD of hosts; Ye +shall certainly drink. + +25:29 For, lo, I begin to bring evil on the city which is called by my +name, and should ye be utterly unpunished? Ye shall not be unpunished: +for I will call for a sword upon all the inhabitants of the earth, +saith the LORD of hosts. + +25:30 Therefore prophesy thou against them all these words, and say +unto them, The LORD shall roar from on high, and utter his voice from +his holy habitation; he shall mightily roar upon his habitation; he +shall give a shout, as they that tread the grapes, against all the +inhabitants of the earth. + +25:31 A noise shall come even to the ends of the earth; for the LORD +hath a controversy with the nations, he will plead with all flesh; he +will give them that are wicked to the sword, saith the LORD. + +25:32 Thus saith the LORD of hosts, Behold, evil shall go forth from +nation to nation, and a great whirlwind shall be raised up from the +coasts of the earth. + +25:33 And the slain of the LORD shall be at that day from one end of +the earth even unto the other end of the earth: they shall not be +lamented, neither gathered, nor buried; they shall be dung upon the +ground. + +25:34 Howl, ye shepherds, and cry; and wallow yourselves in the ashes, +ye principal of the flock: for the days of your slaughter and of your +dispersions are accomplished; and ye shall fall like a pleasant +vessel. + +25:35 And the shepherds shall have no way to flee, nor the principal +of the flock to escape. + +25:36 A voice of the cry of the shepherds, and an howling of the +principal of the flock, shall be heard: for the LORD hath spoiled +their pasture. + +25:37 And the peaceable habitations are cut down because of the fierce +anger of the LORD. + +25:38 He hath forsaken his covert, as the lion: for their land is +desolate because of the fierceness of the oppressor, and because of +his fierce anger. + +26:1 In the beginning of the reign of Jehoiakim the son of Josiah king +of Judah came this word from the LORD, saying, 26:2 Thus saith the +LORD; Stand in the court of the LORD's house, and speak unto all the +cities of Judah, which come to worship in the LORD's house, all the +words that I command thee to speak unto them; diminish not a word: +26:3 If so be they will hearken, and turn every man from his evil way, +that I may repent me of the evil, which I purpose to do unto them +because of the evil of their doings. + +26:4 And thou shalt say unto them, Thus saith the LORD; If ye will not +hearken to me, to walk in my law, which I have set before you, 26:5 To +hearken to the words of my servants the prophets, whom I sent unto +you, both rising up early, and sending them, but ye have not +hearkened; 26:6 Then will I make this house like Shiloh, and will make +this city a curse to all the nations of the earth. + +26:7 So the priests and the prophets and all the people heard Jeremiah +speaking these words in the house of the LORD. + +26:8 Now it came to pass, when Jeremiah had made an end of speaking +all that the LORD had commanded him to speak unto all the people, that +the priests and the prophets and all the people took him, saying, Thou +shalt surely die. + +26:9 Why hast thou prophesied in the name of the LORD, saying, This +house shall be like Shiloh, and this city shall be desolate without an +inhabitant? And all the people were gathered against Jeremiah in the +house of the LORD. + +26:10 When the princes of Judah heard these things, then they came up +from the king's house unto the house of the LORD, and sat down in the +entry of the new gate of the LORD's house. + +26:11 Then spake the priests and the prophets unto the princes and to +all the people, saying, This man is worthy to die; for he hath +prophesied against this city, as ye have heard with your ears. + +26:12 Then spake Jeremiah unto all the princes and to all the people, +saying, The LORD sent me to prophesy against this house and against +this city all the words that ye have heard. + +26:13 Therefore now amend your ways and your doings, and obey the +voice of the LORD your God; and the LORD will repent him of the evil +that he hath pronounced against you. + +26:14 As for me, behold, I am in your hand: do with me as seemeth good +and meet unto you. + +26:15 But know ye for certain, that if ye put me to death, ye shall +surely bring innocent blood upon yourselves, and upon this city, and +upon the inhabitants thereof: for of a truth the LORD hath sent me +unto you to speak all these words in your ears. + +26:16 Then said the princes and all the people unto the priests and to +the prophets; This man is not worthy to die: for he hath spoken to us +in the name of the LORD our God. + +26:17 Then rose up certain of the elders of the land, and spake to all +the assembly of the people, saying, 26:18 Micah the Morasthite +prophesied in the days of Hezekiah king of Judah, and spake to all the +people of Judah, saying, Thus saith the LORD of hosts; Zion shall be +plowed like a field, and Jerusalem shall become heaps, and the +mountain of the house as the high places of a forest. + +26:19 Did Hezekiah king of Judah and all Judah put him at all to +death? did he not fear the LORD, and besought the LORD, and the LORD +repented him of the evil which he had pronounced against them? Thus +might we procure great evil against our souls. + +26:20 And there was also a man that prophesied in the name of the +LORD, Urijah the son of Shemaiah of Kirjathjearim, who prophesied +against this city and against this land according to all the words of +Jeremiah. + +26:21 And when Jehoiakim the king, with all his mighty men, and all +the princes, heard his words, the king sought to put him to death: but +when Urijah heard it, he was afraid, and fled, and went into Egypt; +26:22 And Jehoiakim the king sent men into Egypt, namely, Elnathan the +son of Achbor, and certain men with him into Egypt. + +26:23 And they fetched forth Urijah out of Egypt, and brought him unto +Jehoiakim the king; who slew him with the sword, and cast his dead +body into the graves of the common people. + +26:24 Nevertheless the hand of Ahikam the son of Shaphan was with +Jeremiah, that they should not give him into the hand of the people to +put him to death. + +27:1 In the beginning of the reign of Jehoiakim the son of Josiah king +of Judah came this word unto Jeremiah from the LORD, saying, 27:2 Thus +saith the LORD to me; Make thee bonds and yokes, and put them upon thy +neck, 27:3 And send them to the king of Edom, and to the king of Moab, +and to the king of the Ammonites, and to the king of Tyrus, and to the +king of Zidon, by the hand of the messengers which come to Jerusalem +unto Zedekiah king of Judah; 27:4 And command them to say unto their +masters, Thus saith the LORD of hosts, the God of Israel; Thus shall +ye say unto your masters; 27:5 I have made the earth, the man and the +beast that are upon the ground, by my great power and by my +outstretched arm, and have given it unto whom it seemed meet unto me. + +27:6 And now have I given all these lands into the hand of +Nebuchadnezzar the king of Babylon, my servant; and the beasts of the +field have I given him also to serve him. + +27:7 And all nations shall serve him, and his son, and his son's son, +until the very time of his land come: and then many nations and great +kings shall serve themselves of him. + +27:8 And it shall come to pass, that the nation and kingdom which will +not serve the same Nebuchadnezzar the king of Babylon, and that will +not put their neck under the yoke of the king of Babylon, that nation +will I punish, saith the LORD, with the sword, and with the famine, +and with the pestilence, until I have consumed them by his hand. + +27:9 Therefore hearken not ye to your prophets, nor to your diviners, +nor to your dreamers, nor to your enchanters, nor to your sorcerers, +which speak unto you, saying, Ye shall not serve the king of Babylon: +27:10 For they prophesy a lie unto you, to remove you far from your +land; and that I should drive you out, and ye should perish. + +27:11 But the nations that bring their neck under the yoke of the king +of Babylon, and serve him, those will I let remain still in their own +land, saith the LORD; and they shall till it, and dwell therein. + +27:12 I spake also to Zedekiah king of Judah according to all these +words, saying, Bring your necks under the yoke of the king of Babylon, +and serve him and his people, and live. + +27:13 Why will ye die, thou and thy people, by the sword, by the +famine, and by the pestilence, as the LORD hath spoken against the +nation that will not serve the king of Babylon? 27:14 Therefore +hearken not unto the words of the prophets that speak unto you, +saying, Ye shall not serve the king of Babylon: for they prophesy a +lie unto you. + +27:15 For I have not sent them, saith the LORD, yet they prophesy a +lie in my name; that I might drive you out, and that ye might perish, +ye, and the prophets that prophesy unto you. + +27:16 Also I spake to the priests and to all this people, saying, Thus +saith the LORD; Hearken not to the words of your prophets that +prophesy unto you, saying, Behold, the vessels of the LORD's house +shall now shortly be brought again from Babylon: for they prophesy a +lie unto you. + +27:17 Hearken not unto them; serve the king of Babylon, and live: +wherefore should this city be laid waste? 27:18 But if they be +prophets, and if the word of the LORD be with them, let them now make +intercession to the LORD of hosts, that the vessels which are left in +the house of the LORD, and in the house of the king of Judah, and at +Jerusalem, go not to Babylon. + +27:19 For thus saith the LORD of hosts concerning the pillars, and +concerning the sea, and concerning the bases, and concerning the +residue of the vessels that remain in this city. + +27:20 Which Nebuchadnezzar king of Babylon took not, when he carried +away captive Jeconiah the son of Jehoiakim king of Judah from +Jerusalem to Babylon, and all the nobles of Judah and Jerusalem; 27:21 +Yea, thus saith the LORD of hosts, the God of Israel, concerning the +vessels that remain in the house of the LORD, and in the house of the +king of Judah and of Jerusalem; 27:22 They shall be carried to +Babylon, and there shall they be until the day that I visit them, +saith the LORD; then will I bring them up, and restore them to this +place. + +28:1 And it came to pass the same year, in the beginning of the reign +of Zedekiah king of Judah, in the fourth year, and in the fifth month, +that Hananiah the son of Azur the prophet, which was of Gibeon, spake +unto me in the house of the LORD, in the presence of the priests and +of all the people, saying, 28:2 Thus speaketh the LORD of hosts, the +God of Israel, saying, I have broken the yoke of the king of Babylon. + +28:3 Within two full years will I bring again into this place all the +vessels of the LORD's house, that Nebuchadnezzar king of Babylon took +away from this place, and carried them to Babylon: 28:4 And I will +bring again to this place Jeconiah the son of Jehoiakim king of Judah, +with all the captives of Judah, that went into Babylon, saith the +LORD: for I will break the yoke of the king of Babylon. + +28:5 Then the prophet Jeremiah said unto the prophet Hananiah in the +presence of the priests, and in the presence of all the people that +stood in the house of the LORD, 28:6 Even the prophet Jeremiah said, +Amen: the LORD do so: the LORD perform thy words which thou hast +prophesied, to bring again the vessels of the LORD's house, and all +that is carried away captive, from Babylon into this place. + +28:7 Nevertheless hear thou now this word that I speak in thine ears, +and in the ears of all the people; 28:8 The prophets that have been +before me and before thee of old prophesied both against many +countries, and against great kingdoms, of war, and of evil, and of +pestilence. + +28:9 The prophet which prophesieth of peace, when the word of the +prophet shall come to pass, then shall the prophet be known, that the +LORD hath truly sent him. + +28:10 Then Hananiah the prophet took the yoke from off the prophet +Jeremiah's neck, and brake it. + +28:11 And Hananiah spake in the presence of all the people, saying, +Thus saith the LORD; Even so will I break the yoke of Nebuchadnezzar +king of Babylon from the neck of all nations within the space of two +full years. And the prophet Jeremiah went his way. + +28:12 Then the word of the LORD came unto Jeremiah the prophet, after +that Hananiah the prophet had broken the yoke from off the neck of the +prophet Jeremiah, saying, 28:13 Go and tell Hananiah, saying, Thus +saith the LORD; Thou hast broken the yokes of wood; but thou shalt +make for them yokes of iron. + +28:14 For thus saith the LORD of hosts, the God of Israel; I have put +a yoke of iron upon the neck of all these nations, that they may serve +Nebuchadnezzar king of Babylon; and they shall serve him: and I have +given him the beasts of the field also. + +28:15 Then said the prophet Jeremiah unto Hananiah the prophet, Hear +now, Hananiah; The LORD hath not sent thee; but thou makest this +people to trust in a lie. + +28:16 Therefore thus saith the LORD; Behold, I will cast thee from off +the face of the earth: this year thou shalt die, because thou hast +taught rebellion against the LORD. + +28:17 So Hananiah the prophet died the same year in the seventh month. + +29:1 Now these are the words of the letter that Jeremiah the prophet +sent from Jerusalem unto the residue of the elders which were carried +away captives, and to the priests, and to the prophets, and to all the +people whom Nebuchadnezzar had carried away captive from Jerusalem to +Babylon; 29:2 (After that Jeconiah the king, and the queen, and the +eunuchs, the princes of Judah and Jerusalem, and the carpenters, and +the smiths, were departed from Jerusalem;) 29:3 By the hand of Elasah +the son of Shaphan, and Gemariah the son of Hilkiah, (whom Zedekiah +king of Judah sent unto Babylon to Nebuchadnezzar king of Babylon) +saying, 29:4 Thus saith the LORD of hosts, the God of Israel, unto all +that are carried away captives, whom I have caused to be carried away +from Jerusalem unto Babylon; 29:5 Build ye houses, and dwell in them; +and plant gardens, and eat the fruit of them; 29:6 Take ye wives, and +beget sons and daughters; and take wives for your sons, and give your +daughters to husbands, that they may bear sons and daughters; that ye +may be increased there, and not diminished. + +29:7 And seek the peace of the city whither I have caused you to be +carried away captives, and pray unto the LORD for it: for in the peace +thereof shall ye have peace. + +29:8 For thus saith the LORD of hosts, the God of Israel; Let not your +prophets and your diviners, that be in the midst of you, deceive you, +neither hearken to your dreams which ye cause to be dreamed. + +29:9 For they prophesy falsely unto you in my name: I have not sent +them, saith the LORD. + +29:10 For thus saith the LORD, That after seventy years be +accomplished at Babylon I will visit you, and perform my good word +toward you, in causing you to return to this place. + +29:11 For I know the thoughts that I think toward you, saith the LORD, +thoughts of peace, and not of evil, to give you an expected end. + +29:12 Then shall ye call upon me, and ye shall go and pray unto me, +and I will hearken unto you. + +29:13 And ye shall seek me, and find me, when ye shall search for me +with all your heart. + +29:14 And I will be found of you, saith the LORD: and I will turn away +your captivity, and I will gather you from all the nations, and from +all the places whither I have driven you, saith the LORD; and I will +bring you again into the place whence I caused you to be carried away +captive. + +29:15 Because ye have said, The LORD hath raised us up prophets in +Babylon; 29:16 Know that thus saith the LORD of the king that sitteth +upon the throne of David, and of all the people that dwelleth in this +city, and of your brethren that are not gone forth with you into +captivity; 29:17 Thus saith the LORD of hosts; Behold, I will send +upon them the sword, the famine, and the pestilence, and will make +them like vile figs, that cannot be eaten, they are so evil. + +29:18 And I will persecute them with the sword, with the famine, and +with the pestilence, and will deliver them to be removed to all the +kingdoms of the earth, to be a curse, and an astonishment, and an +hissing, and a reproach, among all the nations whither I have driven +them: 29:19 Because they have not hearkened to my words, saith the +LORD, which I sent unto them by my servants the prophets, rising up +early and sending them; but ye would not hear, saith the LORD. + +29:20 Hear ye therefore the word of the LORD, all ye of the captivity, +whom I have sent from Jerusalem to Babylon: 29:21 Thus saith the LORD +of hosts, the God of Israel, of Ahab the son of Kolaiah, and of +Zedekiah the son of Maaseiah, which prophesy a lie unto you in my +name; Behold, I will deliver them into the hand of Nebuchadrezzar king +of Babylon; and he shall slay them before your eyes; 29:22 And of them +shall be taken up a curse by all the captivity of Judah which are in +Babylon, saying, The LORD make thee like Zedekiah and like Ahab, whom +the king of Babylon roasted in the fire; 29:23 Because they have +committed villany in Israel, and have committed adultery with their +neighbours' wives, and have spoken lying words in my name, which I +have not commanded them; even I know, and am a witness, saith the +LORD. + +29:24 Thus shalt thou also speak to Shemaiah the Nehelamite, saying, +29:25 Thus speaketh the LORD of hosts, the God of Israel, saying, +Because thou hast sent letters in thy name unto all the people that +are at Jerusalem, and to Zephaniah the son of Maaseiah the priest, and +to all the priests, saying, 29:26 The LORD hath made thee priest in +the stead of Jehoiada the priest, that ye should be officers in the +house of the LORD, for every man that is mad, and maketh himself a +prophet, that thou shouldest put him in prison, and in the stocks. + +29:27 Now therefore why hast thou not reproved Jeremiah of Anathoth, +which maketh himself a prophet to you? 29:28 For therefore he sent +unto us in Babylon, saying, This captivity is long: build ye houses, +and dwell in them; and plant gardens, and eat the fruit of them. + +29:29 And Zephaniah the priest read this letter in the ears of +Jeremiah the prophet. + +29:30 Then came the word of the LORD unto Jeremiah, saying, 29:31 Send +to all them of the captivity, saying, Thus saith the LORD concerning +Shemaiah the Nehelamite; Because that Shemaiah hath prophesied unto +you, and I sent him not, and he caused you to trust in a lie: 29:32 +Therefore thus saith the LORD; Behold, I will punish Shemaiah the +Nehelamite, and his seed: he shall not have a man to dwell among this +people; neither shall he behold the good that I will do for my people, +saith the LORD; because he hath taught rebellion against the LORD. + +30:1 The word that came to Jeremiah from the LORD, saying, 30:2 Thus +speaketh the LORD God of Israel, saying, Write thee all the words that +I have spoken unto thee in a book. + +30:3 For, lo, the days come, saith the LORD, that I will bring again +the captivity of my people Israel and Judah, saith the LORD: and I +will cause them to return to the land that I gave to their fathers, +and they shall possess it. + +30:4 And these are the words that the LORD spake concerning Israel and +concerning Judah. + +30:5 For thus saith the LORD; We have heard a voice of trembling, of +fear, and not of peace. + +30:6 Ask ye now, and see whether a man doth travail with child? +wherefore do I see every man with his hands on his loins, as a woman +in travail, and all faces are turned into paleness? 30:7 Alas! for +that day is great, so that none is like it: it is even the time of +Jacob's trouble, but he shall be saved out of it. + +30:8 For it shall come to pass in that day, saith the LORD of hosts, +that I will break his yoke from off thy neck, and will burst thy +bonds, and strangers shall no more serve themselves of him: 30:9 But +they shall serve the LORD their God, and David their king, whom I will +raise up unto them. + +30:10 Therefore fear thou not, O my servant Jacob, saith the LORD; +neither be dismayed, O Israel: for, lo, I will save thee from afar, +and thy seed from the land of their captivity; and Jacob shall return, +and shall be in rest, and be quiet, and none shall make him afraid. + +30:11 For I am with thee, saith the LORD, to save thee: though I make +a full end of all nations whither I have scattered thee, yet I will +not make a full end of thee: but I will correct thee in measure, and +will not leave thee altogether unpunished. + +30:12 For thus saith the LORD, Thy bruise is incurable, and thy wound +is grievous. + +30:13 There is none to plead thy cause, that thou mayest be bound up: +thou hast no healing medicines. + +30:14 All thy lovers have forgotten thee; they seek thee not; for I +have wounded thee with the wound of an enemy, with the chastisement of +a cruel one, for the multitude of thine iniquity; because thy sins +were increased. + +30:15 Why criest thou for thine affliction? thy sorrow is incurable +for the multitude of thine iniquity: because thy sins were increased, +I have done these things unto thee. + +30:16 Therefore all they that devour thee shall be devoured; and all +thine adversaries, every one of them, shall go into captivity; and +they that spoil thee shall be a spoil, and all that prey upon thee +will I give for a prey. + +30:17 For I will restore health unto thee, and I will heal thee of thy +wounds, saith the LORD; because they called thee an Outcast, saying, +This is Zion, whom no man seeketh after. + +30:18 Thus saith the LORD; Behold, I will bring again the captivity of +Jacob's tents, and have mercy on his dwellingplaces; and the city +shall be builded upon her own heap, and the palace shall remain after +the manner thereof. + +30:19 And out of them shall proceed thanksgiving and the voice of them +that make merry: and I will multiply them, and they shall not be few; +I will also glorify them, and they shall not be small. + +30:20 Their children also shall be as aforetime, and their +congregation shall be established before me, and I will punish all +that oppress them. + +30:21 And their nobles shall be of themselves, and their governor +shall proceed from the midst of them; and I will cause him to draw +near, and he shall approach unto me: for who is this that engaged his +heart to approach unto me? saith the LORD. + +30:22 And ye shall be my people, and I will be your God. + +30:23 Behold, the whirlwind of the LORD goeth forth with fury, a +continuing whirlwind: it shall fall with pain upon the head of the +wicked. + +30:24 The fierce anger of the LORD shall not return, until he hath +done it, and until he have performed the intents of his heart: in the +latter days ye shall consider it. + +31:1 At the same time, saith the LORD, will I be the God of all the +families of Israel, and they shall be my people. + +31:2 Thus saith the LORD, The people which were left of the sword +found grace in the wilderness; even Israel, when I went to cause him +to rest. + +31:3 The LORD hath appeared of old unto me, saying, Yea, I have loved +thee with an everlasting love: therefore with lovingkindness have I +drawn thee. + +31:4 Again I will build thee, and thou shalt be built, O virgin of +Israel: thou shalt again be adorned with thy tabrets, and shalt go +forth in the dances of them that make merry. + +31:5 Thou shalt yet plant vines upon the mountains of Samaria: the +planters shall plant, and shall eat them as common things. + +31:6 For there shall be a day, that the watchmen upon the mount +Ephraim shall cry, Arise ye, and let us go up to Zion unto the LORD +our God. + +31:7 For thus saith the LORD; Sing with gladness for Jacob, and shout +among the chief of the nations: publish ye, praise ye, and say, O +LORD, save thy people, the remnant of Israel. + +31:8 Behold, I will bring them from the north country, and gather them +from the coasts of the earth, and with them the blind and the lame, +the woman with child and her that travaileth with child together: a +great company shall return thither. + +31:9 They shall come with weeping, and with supplications will I lead +them: I will cause them to walk by the rivers of waters in a straight +way, wherein they shall not stumble: for I am a father to Israel, and +Ephraim is my firstborn. + +31:10 Hear the word of the LORD, O ye nations, and declare it in the +isles afar off, and say, He that scattered Israel will gather him, and +keep him, as a shepherd doth his flock. + +31:11 For the LORD hath redeemed Jacob, and ransomed him from the hand +of him that was stronger than he. + +31:12 Therefore they shall come and sing in the height of Zion, and +shall flow together to the goodness of the LORD, for wheat, and for +wine, and for oil, and for the young of the flock and of the herd: and +their soul shall be as a watered garden; and they shall not sorrow any +more at all. + +31:13 Then shall the virgin rejoice in the dance, both young men and +old together: for I will turn their mourning into joy, and will +comfort them, and make them rejoice from their sorrow. + +31:14 And I will satiate the soul of the priests with fatness, and my +people shall be satisfied with my goodness, saith the LORD. + +31:15 Thus saith the LORD; A voice was heard in Ramah, lamentation, +and bitter weeping; Rahel weeping for her children refused to be +comforted for her children, because they were not. + +31:16 Thus saith the LORD; Refrain thy voice from weeping, and thine +eyes from tears: for thy work shall be rewarded, saith the LORD; and +they shall come again from the land of the enemy. + +31:17 And there is hope in thine end, saith the LORD, that thy +children shall come again to their own border. + +31:18 I have surely heard Ephraim bemoaning himself thus; Thou hast +chastised me, and I was chastised, as a bullock unaccustomed to the +yoke: turn thou me, and I shall be turned; for thou art the LORD my +God. + +31:19 Surely after that I was turned, I repented; and after that I was +instructed, I smote upon my thigh: I was ashamed, yea, even +confounded, because I did bear the reproach of my youth. + +31:20 Is Ephraim my dear son? is he a pleasant child? for since I +spake against him, I do earnestly remember him still: therefore my +bowels are troubled for him; I will surely have mercy upon him, saith +the LORD. + +31:21 Set thee up waymarks, make thee high heaps: set thine heart +toward the highway, even the way which thou wentest: turn again, O +virgin of Israel, turn again to these thy cities. + +31:22 How long wilt thou go about, O thou backsliding daughter? for +the LORD hath created a new thing in the earth, A woman shall compass +a man. + +31:23 Thus saith the LORD of hosts, the God of Israel; As yet they +shall use this speech in the land of Judah and in the cities thereof, +when I shall bring again their captivity; The LORD bless thee, O +habitation of justice, and mountain of holiness. + +31:24 And there shall dwell in Judah itself, and in all the cities +thereof together, husbandmen, and they that go forth with flocks. + +31:25 For I have satiated the weary soul, and I have replenished every +sorrowful soul. + +31:26 Upon this I awaked, and beheld; and my sleep was sweet unto me. + +31:27 Behold, the days come, saith the LORD, that I will sow the house +of Israel and the house of Judah with the seed of man, and with the +seed of beast. + +31:28 And it shall come to pass, that like as I have watched over +them, to pluck up, and to break down, and to throw down, and to +destroy, and to afflict; so will I watch over them, to build, and to +plant, saith the LORD. + +31:29 In those days they shall say no more, The fathers have eaten a +sour grape, and the children's teeth are set on edge. + +31:30 But every one shall die for his own iniquity: every man that +eateth the sour grape, his teeth shall be set on edge. + +31:31 Behold, the days come, saith the LORD, that I will make a new +covenant with the house of Israel, and with the house of Judah: 31:32 +Not according to the covenant that I made with their fathers in the +day that I took them by the hand to bring them out of the land of +Egypt; which my covenant they brake, although I was an husband unto +them, saith the LORD: 31:33 But this shall be the covenant that I will +make with the house of Israel; After those days, saith the LORD, I +will put my law in their inward parts, and write it in their hearts; +and will be their God, and they shall be my people. + +31:34 And they shall teach no more every man his neighbour, and every +man his brother, saying, Know the LORD: for they shall all know me, +from the least of them unto the greatest of them, saith the LORD: for +I will forgive their iniquity, and I will remember their sin no more. + +31:35 Thus saith the LORD, which giveth the sun for a light by day, +and the ordinances of the moon and of the stars for a light by night, +which divideth the sea when the waves thereof roar; The LORD of hosts +is his name: 31:36 If those ordinances depart from before me, saith +the LORD, then the seed of Israel also shall cease from being a nation +before me for ever. + +31:37 Thus saith the LORD; If heaven above can be measured, and the +foundations of the earth searched out beneath, I will also cast off +all the seed of Israel for all that they have done, saith the LORD. + +31:38 Behold, the days come, saith the LORD, that the city shall be +built to the LORD from the tower of Hananeel unto the gate of the +corner. + +31:39 And the measuring line shall yet go forth over against it upon +the hill Gareb, and shall compass about to Goath. + +31:40 And the whole valley of the dead bodies, and of the ashes, and +all the fields unto the brook of Kidron, unto the corner of the horse +gate toward the east, shall be holy unto the LORD; it shall not be +plucked up, nor thrown down any more for ever. + +32:1 The word that came to Jeremiah from the LORD in the tenth year of +Zedekiah king of Judah, which was the eighteenth year of +Nebuchadrezzar. + +32:2 For then the king of Babylon's army besieged Jerusalem: and +Jeremiah the prophet was shut up in the court of the prison, which was +in the king of Judah's house. + +32:3 For Zedekiah king of Judah had shut him up, saying, Wherefore +dost thou prophesy, and say, Thus saith the LORD, Behold, I will give +this city into the hand of the king of Babylon, and he shall take it; +32:4 And Zedekiah king of Judah shall not escape out of the hand of +the Chaldeans, but shall surely be delivered into the hand of the king +of Babylon, and shall speak with him mouth to mouth, and his eyes +shall behold his eyes; 32:5 And he shall lead Zedekiah to Babylon, and +there shall he be until I visit him, saith the LORD: though ye fight +with the Chaldeans, ye shall not prosper. + +32:6 And Jeremiah said, The word of the LORD came unto me, saying, +32:7 Behold, Hanameel the son of Shallum thine uncle shall come unto +thee saying, Buy thee my field that is in Anathoth: for the right of +redemption is thine to buy it. + +32:8 So Hanameel mine uncle's son came to me in the court of the +prison according to the word of the LORD, and said unto me, Buy my +field, I pray thee, that is in Anathoth, which is in the country of +Benjamin: for the right of inheritance is thine, and the redemption is +thine; buy it for thyself. + +Then I knew that this was the word of the LORD. + +32:9 And I bought the field of Hanameel my uncle's son, that was in +Anathoth, and weighed him the money, even seventeen shekels of silver. + +32:10 And I subscribed the evidence, and sealed it, and took +witnesses, and weighed him the money in the balances. + +32:11 So I took the evidence of the purchase, both that which was +sealed according to the law and custom, and that which was open: 32:12 +And I gave the evidence of the purchase unto Baruch the son of Neriah, +the son of Maaseiah, in the sight of Hanameel mine uncle's son, and in +the presence of the witnesses that subscribed the book of the +purchase, before all the Jews that sat in the court of the prison. + +32:13 And I charged Baruch before them, saying, 32:14 Thus saith the +LORD of hosts, the God of Israel; Take these evidences, this evidence +of the purchase, both which is sealed, and this evidence which is +open; and put them in an earthen vessel, that they may continue many +days. + +32:15 For thus saith the LORD of hosts, the God of Israel; Houses and +fields and vineyards shall be possessed again in this land. + +32:16 Now when I had delivered the evidence of the purchase unto +Baruch the son of Neriah, I prayed unto the LORD, saying, 32:17 Ah +Lord GOD! behold, thou hast made the heaven and the earth by thy great +power and stretched out arm, and there is nothing too hard for thee: +32:18 Thou shewest lovingkindness unto thousands, and recompensest the +iniquity of the fathers into the bosom of their children after them: +the Great, the Mighty God, the LORD of hosts, is his name, 32:19 Great +in counsel, and mighty in work: for thine eyes are open upon all the +ways of the sons of men: to give every one according to his ways, and +according to the fruit of his doings: 32:20 Which hast set signs and +wonders in the land of Egypt, even unto this day, and in Israel, and +among other men; and hast made thee a name, as at this day; 32:21 And +hast brought forth thy people Israel out of the land of Egypt with +signs, and with wonders, and with a strong hand, and with a stretched +out arm, and with great terror; 32:22 And hast given them this land, +which thou didst swear to their fathers to give them, a land flowing +with milk and honey; 32:23 And they came in, and possessed it; but +they obeyed not thy voice, neither walked in thy law; they have done +nothing of all that thou commandedst them to do: therefore thou hast +caused all this evil to come upon them: 32:24 Behold the mounts, they +are come unto the city to take it; and the city is given into the hand +of the Chaldeans, that fight against it, because of the sword, and of +the famine, and of the pestilence: and what thou hast spoken is come +to pass; and, behold, thou seest it. + +32:25 And thou hast said unto me, O Lord GOD, Buy thee the field for +money, and take witnesses; for the city is given into the hand of the +Chaldeans. + +32:26 Then came the word of the LORD unto Jeremiah, saying, 32:27 +Behold, I am the LORD, the God of all flesh: is there any thing too +hard for me? 32:28 Therefore thus saith the LORD; Behold, I will give +this city into the hand of the Chaldeans, and into the hand of +Nebuchadrezzar king of Babylon, and he shall take it: 32:29 And the +Chaldeans, that fight against this city, shall come and set fire on +this city, and burn it with the houses, upon whose roofs they have +offered incense unto Baal, and poured out drink offerings unto other +gods, to provoke me to anger. + +32:30 For the children of Israel and the children of Judah have only +done evil before me from their youth: for the children of Israel have +only provoked me to anger with the work of their hands, saith the +LORD. + +32:31 For this city hath been to me as a provocation of mine anger and +of my fury from the day that they built it even unto this day; that I +should remove it from before my face, 32:32 Because of all the evil of +the children of Israel and of the children of Judah, which they have +done to provoke me to anger, they, their kings, their princes, their +priests, and their prophets, and the men of Judah, and the inhabitants +of Jerusalem. + +32:33 And they have turned unto me the back, and not the face: though +I taught them, rising up early and teaching them, yet they have not +hearkened to receive instruction. + +32:34 But they set their abominations in the house, which is called by +my name, to defile it. + +32:35 And they built the high places of Baal, which are in the valley +of the son of Hinnom, to cause their sons and their daughters to pass +through the fire unto Molech; which I commanded them not, neither came +it into my mind, that they should do this abomination, to cause Judah +to sin. + +32:36 And now therefore thus saith the LORD, the God of Israel, +concerning this city, whereof ye say, It shall be delivered into the +hand of the king of Babylon by the sword, and by the famine, and by +the pestilence; 32:37 Behold, I will gather them out of all countries, +whither I have driven them in mine anger, and in my fury, and in great +wrath; and I will bring them again unto this place, and I will cause +them to dwell safely: 32:38 And they shall be my people, and I will be +their God: 32:39 And I will give them one heart, and one way, that +they may fear me for ever, for the good of them, and of their children +after them: 32:40 And I will make an everlasting covenant with them, +that I will not turn away from them, to do them good; but I will put +my fear in their hearts, that they shall not depart from me. + +32:41 Yea, I will rejoice over them to do them good, and I will plant +them in this land assuredly with my whole heart and with my whole +soul. + +32:42 For thus saith the LORD; Like as I have brought all this great +evil upon this people, so will I bring upon them all the good that I +have promised them. + +32:43 And fields shall be bought in this land, whereof ye say, It is +desolate without man or beast; it is given into the hand of the +Chaldeans. + +32:44 Men shall buy fields for money, and subscribe evidences, and +seal them, and take witnesses in the land of Benjamin, and in the +places about Jerusalem, and in the cities of Judah, and in the cities +of the mountains, and in the cities of the valley, and in the cities +of the south: for I will cause their captivity to return, saith the +LORD. + +33:1 Moreover the word of the LORD came unto Jeremiah the second time, +while he was yet shut up in the court of the prison, saying, 33:2 Thus +saith the LORD the maker thereof, the LORD that formed it, to +establish it; the LORD is his name; 33:3 Call unto me, and I will +answer thee, and shew thee great and mighty things, which thou knowest +not. + +33:4 For thus saith the LORD, the God of Israel, concerning the houses +of this city, and concerning the houses of the kings of Judah, which +are thrown down by the mounts, and by the sword; 33:5 They come to +fight with the Chaldeans, but it is to fill them with the dead bodies +of men, whom I have slain in mine anger and in my fury, and for all +whose wickedness I have hid my face from this city. + +33:6 Behold, I will bring it health and cure, and I will cure them, +and will reveal unto them the abundance of peace and truth. + +33:7 And I will cause the captivity of Judah and the captivity of +Israel to return, and will build them, as at the first. + +33:8 And I will cleanse them from all their iniquity, whereby they +have sinned against me; and I will pardon all their iniquities, +whereby they have sinned, and whereby they have transgressed against +me. + +33:9 And it shall be to me a name of joy, a praise and an honour +before all the nations of the earth, which shall hear all the good +that I do unto them: and they shall fear and tremble for all the +goodness and for all the prosperity that I procure unto it. + +33:10 Thus saith the LORD; Again there shall be heard in this place, +which ye say shall be desolate without man and without beast, even in +the cities of Judah, and in the streets of Jerusalem, that are +desolate, without man, and without inhabitant, and without beast, +33:11 The voice of joy, and the voice of gladness, the voice of the +bridegroom, and the voice of the bride, the voice of them that shall +say, Praise the LORD of hosts: for the LORD is good; for his mercy +endureth for ever: and of them that shall bring the sacrifice of +praise into the house of the LORD. For I will cause to return the +captivity of the land, as at the first, saith the LORD. + +33:12 Thus saith the LORD of hosts; Again in this place, which is +desolate without man and without beast, and in all the cities thereof, +shall be an habitation of shepherds causing their flocks to lie down. + +33:13 In the cities of the mountains, in the cities of the vale, and +in the cities of the south, and in the land of Benjamin, and in the +places about Jerusalem, and in the cities of Judah, shall the flocks +pass again under the hands of him that telleth them, saith the LORD. + +33:14 Behold, the days come, saith the LORD, that I will perform that +good thing which I have promised unto the house of Israel and to the +house of Judah. + +33:15 In those days, and at that time, will I cause the Branch of +righteousness to grow up unto David; and he shall execute judgment and +righteousness in the land. + +33:16 In those days shall Judah be saved, and Jerusalem shall dwell +safely: and this is the name wherewith she shall be called, The LORD +our righteousness. + +33:17 For thus saith the LORD; David shall never want a man to sit +upon the throne of the house of Israel; 33:18 Neither shall the +priests the Levites want a man before me to offer burnt offerings, and +to kindle meat offerings, and to do sacrifice continually. + +33:19 And the word of the LORD came unto Jeremiah, saying, 33:20 Thus +saith the LORD; If ye can break my covenant of the day, and my +covenant of the night, and that there should not be day and night in +their season; 33:21 Then may also my covenant be broken with David my +servant, that he should not have a son to reign upon his throne; and +with the Levites the priests, my ministers. + +33:22 As the host of heaven cannot be numbered, neither the sand of +the sea measured: so will I multiply the seed of David my servant, and +the Levites that minister unto me. + +33:23 Moreover the word of the LORD came to Jeremiah, saying, 33:24 +Considerest thou not what this people have spoken, saying, The two +families which the LORD hath chosen, he hath even cast them off? thus +they have despised my people, that they should be no more a nation +before them. + +33:25 Thus saith the LORD; If my covenant be not with day and night, +and if I have not appointed the ordinances of heaven and earth; 33:26 +Then will I cast away the seed of Jacob and David my servant, so that +I will not take any of his seed to be rulers over the seed of Abraham, +Isaac, and Jacob: for I will cause their captivity to return, and have +mercy on them. + +34:1 The word which came unto Jeremiah from the LORD, when +Nebuchadnezzar king of Babylon, and all his army, and all the kingdoms +of the earth of his dominion, and all the people, fought against +Jerusalem, and against all the cities thereof, saying, 34:2 Thus saith +the LORD, the God of Israel; Go and speak to Zedekiah king of Judah, +and tell him, Thus saith the LORD; Behold, I will give this city into +the hand of the king of Babylon, and he shall burn it with fire: 34:3 +And thou shalt not escape out of his hand, but shalt surely be taken, +and delivered into his hand; and thine eyes shall behold the eyes of +the king of Babylon, and he shall speak with thee mouth to mouth, and +thou shalt go to Babylon. + +34:4 Yet hear the word of the LORD, O Zedekiah king of Judah; Thus +saith the LORD of thee, Thou shalt not die by the sword: 34:5 But thou +shalt die in peace: and with the burnings of thy fathers, the former +kings which were before thee, so shall they burn odours for thee; and +they will lament thee, saying, Ah lord! for I have pronounced the +word, saith the LORD. + +34:6 Then Jeremiah the prophet spake all these words unto Zedekiah +king of Judah in Jerusalem, 34:7 When the king of Babylon's army +fought against Jerusalem, and against all the cities of Judah that +were left, against Lachish, and against Azekah: for these defenced +cities remained of the cities of Judah. + +34:8 This is the word that came unto Jeremiah from the LORD, after +that the king Zedekiah had made a covenant with all the people which +were at Jerusalem, to proclaim liberty unto them; 34:9 That every man +should let his manservant, and every man his maidservant, being an +Hebrew or an Hebrewess, go free; that none should serve himself of +them, to wit, of a Jew his brother. + +34:10 Now when all the princes, and all the people, which had entered +into the covenant, heard that every one should let his manservant, and +every one his maidservant, go free, that none should serve themselves +of them any more, then they obeyed, and let them go. + +34:11 But afterward they turned, and caused the servants and the +handmaids, whom they had let go free, to return, and brought them into +subjection for servants and for handmaids. + +34:12 Therefore the word of the LORD came to Jeremiah from the LORD, +saying, 34:13 Thus saith the LORD, the God of Israel; I made a +covenant with your fathers in the day that I brought them forth out of +the land of Egypt, out of the house of bondmen, saying, 34:14 At the +end of seven years let ye go every man his brother an Hebrew, which +hath been sold unto thee; and when he hath served thee six years, thou +shalt let him go free from thee: but your fathers hearkened not unto +me, neither inclined their ear. + +34:15 And ye were now turned, and had done right in my sight, in +proclaiming liberty every man to his neighbour; and ye had made a +covenant before me in the house which is called by my name: 34:16 But +ye turned and polluted my name, and caused every man his servant, and +every man his handmaid, whom ye had set at liberty at their pleasure, +to return, and brought them into subjection, to be unto you for +servants and for handmaids. + +34:17 Therefore thus saith the LORD; Ye have not hearkened unto me, in +proclaiming liberty, every one to his brother, and every man to his +neighbour: behold, I proclaim a liberty for you, saith the LORD, to +the sword, to the pestilence, and to the famine; and I will make you +to be removed into all the kingdoms of the earth. + +34:18 And I will give the men that have transgressed my covenant, +which have not performed the words of the covenant which they had made +before me, when they cut the calf in twain, and passed between the +parts thereof, 34:19 The princes of Judah, and the princes of +Jerusalem, the eunuchs, and the priests, and all the people of the +land, which passed between the parts of the calf; 34:20 I will even +give them into the hand of their enemies, and into the hand of them +that seek their life: and their dead bodies shall be for meat unto the +fowls of the heaven, and to the beasts of the earth. + +34:21 And Zedekiah king of Judah and his princes will I give into the +hand of their enemies, and into the hand of them that seek their life, +and into the hand of the king of Babylon's army, which are gone up +from you. + +34:22 Behold, I will command, saith the LORD, and cause them to return +to this city; and they shall fight against it, and take it, and burn +it with fire: and I will make the cities of Judah a desolation without +an inhabitant. + +35:1 The word which came unto Jeremiah from the LORD in the days of +Jehoiakim the son of Josiah king of Judah, saying, 35:2 Go unto the +house of the Rechabites, and speak unto them, and bring them into the +house of the LORD, into one of the chambers, and give them wine to +drink. + +35:3 Then I took Jaazaniah the son of Jeremiah, the son of Habaziniah, +and his brethren, and all his sons, and the whole house of the +Rechabites; 35:4 And I brought them into the house of the LORD, into +the chamber of the sons of Hanan, the son of Igdaliah, a man of God, +which was by the chamber of the princes, which was above the chamber +of Maaseiah the son of Shallum, the keeper of the door: 35:5 And I set +before the sons of the house of the Rechabites pots full of wine, and +cups, and I said unto them, Drink ye wine. + +35:6 But they said, We will drink no wine: for Jonadab the son of +Rechab our father commanded us, saying, Ye shall drink no wine, +neither ye, nor your sons for ever: 35:7 Neither shall ye build house, +nor sow seed, nor plant vineyard, nor have any: but all your days ye +shall dwell in tents; that ye may live many days in the land where ye +be strangers. + +35:8 Thus have we obeyed the voice of Jonadab the son of Rechab our +father in all that he hath charged us, to drink no wine all our days, +we, our wives, our sons, nor our daughters; 35:9 Nor to build houses +for us to dwell in: neither have we vineyard, nor field, nor seed: +35:10 But we have dwelt in tents, and have obeyed, and done according +to all that Jonadab our father commanded us. + +35:11 But it came to pass, when Nebuchadrezzar king of Babylon came up +into the land, that we said, Come, and let us go to Jerusalem for fear +of the army of the Chaldeans, and for fear of the army of the Syrians: +so we dwell at Jerusalem. + +35:12 Then came the word of the LORD unto Jeremiah, saying, 35:13 Thus +saith the LORD of hosts, the God of Israel; Go and tell the men of +Judah and the inhabitants of Jerusalem, Will ye not receive +instruction to hearken to my words? saith the LORD. + +35:14 The words of Jonadab the son of Rechab, that he commanded his +sons not to drink wine, are performed; for unto this day they drink +none, but obey their father's commandment: notwithstanding I have +spoken unto you, rising early and speaking; but ye hearkened not unto +me. + +35:15 I have sent also unto you all my servants the prophets, rising +up early and sending them, saying, Return ye now every man from his +evil way, and amend your doings, and go not after other gods to serve +them, and ye shall dwell in the land which I have given to you and to +your fathers: but ye have not inclined your ear, nor hearkened unto +me. + +35:16 Because the sons of Jonadab the son of Rechab have performed the +commandment of their father, which he commanded them; but this people +hath not hearkened unto me: 35:17 Therefore thus saith the LORD God of +hosts, the God of Israel; Behold, I will bring upon Judah and upon all +the inhabitants of Jerusalem all the evil that I have pronounced +against them: because I have spoken unto them, but they have not +heard; and I have called unto them, but they have not answered. + +35:18 And Jeremiah said unto the house of the Rechabites, Thus saith +the LORD of hosts, the God of Israel; Because ye have obeyed the +commandment of Jonadab your father, and kept all his precepts, and +done according unto all that he hath commanded you: 35:19 Therefore +thus saith the LORD of hosts, the God of Israel; Jonadab the son of +Rechab shall not want a man to stand before me for ever. + +36:1 And it came to pass in the fourth year of Jehoiakim the son of +Josiah king of Judah, that this word came unto Jeremiah from the LORD, +saying, 36:2 Take thee a roll of a book, and write therein all the +words that I have spoken unto thee against Israel, and against Judah, +and against all the nations, from the day I spake unto thee, from the +days of Josiah, even unto this day. + +36:3 It may be that the house of Judah will hear all the evil which I +purpose to do unto them; that they may return every man from his evil +way; that I may forgive their iniquity and their sin. + +36:4 Then Jeremiah called Baruch the son of Neriah: and Baruch wrote +from the mouth of Jeremiah all the words of the LORD, which he had +spoken unto him, upon a roll of a book. + +36:5 And Jeremiah commanded Baruch, saying, I am shut up; I cannot go +into the house of the LORD: 36:6 Therefore go thou, and read in the +roll, which thou hast written from my mouth, the words of the LORD in +the ears of the people in the LORD's house upon the fasting day: and +also thou shalt read them in the ears of all Judah that come out of +their cities. + +36:7 It may be they will present their supplication before the LORD, +and will return every one from his evil way: for great is the anger +and the fury that the LORD hath pronounced against this people. + +36:8 And Baruch the son of Neriah did according to all that Jeremiah +the prophet commanded him, reading in the book the words of the LORD +in the LORD's house. + +36:9 And it came to pass in the fifth year of Jehoiakim the son of +Josiah king of Judah, in the ninth month, that they proclaimed a fast +before the LORD to all the people in Jerusalem, and to all the people +that came from the cities of Judah unto Jerusalem. + +36:10 Then read Baruch in the book the words of Jeremiah in the house +of the LORD, in the chamber of Gemariah the son of Shaphan the scribe, +in the higher court, at the entry of the new gate of the LORD's house, +in the ears of all the people. + +36:11 When Michaiah the son of Gemariah, the son of Shaphan, had heard +out of the book all the words of the LORD, 36:12 Then he went down +into the king's house, into the scribe's chamber: and, lo, all the +princes sat there, even Elishama the scribe, and Delaiah the son of +Shemaiah, and Elnathan the son of Achbor, and Gemariah the son of +Shaphan, and Zedekiah the son of Hananiah, and all the princes. + +36:13 Then Michaiah declared unto them all the words that he had +heard, when Baruch read the book in the ears of the people. + +36:14 Therefore all the princes sent Jehudi the son of Nethaniah, the +son of Shelemiah, the son of Cushi, unto Baruch, saying, Take in thine +hand the roll wherein thou hast read in the ears of the people, and +come. So Baruch the son of Neriah took the roll in his hand, and came +unto them. + +36:15 And they said unto him, Sit down now, and read it in our ears. +So Baruch read it in their ears. + +36:16 Now it came to pass, when they had heard all the words, they +were afraid both one and other, and said unto Baruch, We will surely +tell the king of all these words. + +36:17 And they asked Baruch, saying, Tell us now, How didst thou write +all these words at his mouth? 36:18 Then Baruch answered them, He +pronounced all these words unto me with his mouth, and I wrote them +with ink in the book. + +36:19 Then said the princes unto Baruch, Go, hide thee, thou and +Jeremiah; and let no man know where ye be. + +36:20 And they went in to the king into the court, but they laid up +the roll in the chamber of Elishama the scribe, and told all the words +in the ears of the king. + +36:21 So the king sent Jehudi to fetch the roll: and he took it out of +Elishama the scribe's chamber. And Jehudi read it in the ears of the +king, and in the ears of all the princes which stood beside the king. + +36:22 Now the king sat in the winterhouse in the ninth month: and +there was a fire on the hearth burning before him. + +36:23 And it came to pass, that when Jehudi had read three or four +leaves, he cut it with the penknife, and cast it into the fire that +was on the hearth, until all the roll was consumed in the fire that +was on the hearth. + +36:24 Yet they were not afraid, nor rent their garments, neither the +king, nor any of his servants that heard all these words. + +36:25 Nevertheless Elnathan and Delaiah and Gemariah had made +intercession to the king that he would not burn the roll: but he would +not hear them. + +36:26 But the king commanded Jerahmeel the son of Hammelech, and +Seraiah the son of Azriel, and Shelemiah the son of Abdeel, to take +Baruch the scribe and Jeremiah the prophet: but the LORD hid them. + +36:27 Then the word of the LORD came to Jeremiah, after that the king +had burned the roll, and the words which Baruch wrote at the mouth of +Jeremiah, saying, 36:28 Take thee again another roll, and write in it +all the former words that were in the first roll, which Jehoiakim the +king of Judah hath burned. + +36:29 And thou shalt say to Jehoiakim king of Judah, Thus saith the +LORD; Thou hast burned this roll, saying, Why hast thou written +therein, saying, The king of Babylon shall certainly come and destroy +this land, and shall cause to cease from thence man and beast? 36:30 +Therefore thus saith the LORD of Jehoiakim king of Judah; He shall +have none to sit upon the throne of David: and his dead body shall be +cast out in the day to the heat, and in the night to the frost. + +36:31 And I will punish him and his seed and his servants for their +iniquity; and I will bring upon them, and upon the inhabitants of +Jerusalem, and upon the men of Judah, all the evil that I have +pronounced against them; but they hearkened not. + +36:32 Then took Jeremiah another roll, and gave it to Baruch the +scribe, the son of Neriah; who wrote therein from the mouth of +Jeremiah all the words of the book which Jehoiakim king of Judah had +burned in the fire: and there were added besides unto them many like +words. + +37:1 And king Zedekiah the son of Josiah reigned instead of Coniah the +son of Jehoiakim, whom Nebuchadrezzar king of Babylon made king in the +land of Judah. + +37:2 But neither he, nor his servants, nor the people of the land, did +hearken unto the words of the LORD, which he spake by the prophet +Jeremiah. + +37:3 And Zedekiah the king sent Jehucal the son of Shelemiah and +Zephaniah the son of Maaseiah the priest to the prophet Jeremiah, +saying, Pray now unto the LORD our God for us. + +37:4 Now Jeremiah came in and went out among the people: for they had +not put him into prison. + +37:5 Then Pharaoh's army was come forth out of Egypt: and when the +Chaldeans that besieged Jerusalem heard tidings of them, they departed +from Jerusalem. + +37:6 Then came the word of the LORD unto the prophet Jeremiah saying, +37:7 Thus saith the LORD, the God of Israel; Thus shall ye say to the +king of Judah, that sent you unto me to enquire of me; Behold, +Pharaoh's army, which is come forth to help you, shall return to Egypt +into their own land. + +37:8 And the Chaldeans shall come again, and fight against this city, +and take it, and burn it with fire. + +37:9 Thus saith the LORD; Deceive not yourselves, saying, The +Chaldeans shall surely depart from us: for they shall not depart. + +37:10 For though ye had smitten the whole army of the Chaldeans that +fight against you, and there remained but wounded men among them, yet +should they rise up every man in his tent, and burn this city with +fire. + +37:11 And it came to pass, that when the army of the Chaldeans was +broken up from Jerusalem for fear of Pharaoh's army, 37:12 Then +Jeremiah went forth out of Jerusalem to go into the land of Benjamin, +to separate himself thence in the midst of the people. + +37:13 And when he was in the gate of Benjamin, a captain of the ward +was there, whose name was Irijah, the son of Shelemiah, the son of +Hananiah; and he took Jeremiah the prophet, saying, Thou fallest away +to the Chaldeans. + +37:14 Then said Jeremiah, It is false; I fall not away to the +Chaldeans. + +But he hearkened not to him: so Irijah took Jeremiah, and brought him +to the princes. + +37:15 Wherefore the princes were wroth with Jeremiah, and smote him, +and put him in prison in the house of Jonathan the scribe: for they +had made that the prison. + +37:16 When Jeremiah was entered into the dungeon, and into the cabins, +and Jeremiah had remained there many days; 37:17 Then Zedekiah the +king sent, and took him out: and the king asked him secretly in his +house, and said, Is there any word from the LORD? And Jeremiah said, +There is: for, said he, thou shalt be delivered into the hand of the +king of Babylon. + +37:18 Moreover Jeremiah said unto king Zedekiah, What have I offended +against thee, or against thy servants, or against this people, that ye +have put me in prison? 37:19 Where are now your prophets which +prophesied unto you, saying, The king of Babylon shall not come +against you, nor against this land? 37:20 Therefore hear now, I pray +thee, O my lord the king: let my supplication, I pray thee, be +accepted before thee; that thou cause me not to return to the house of +Jonathan the scribe, lest I die there. + +37:21 Then Zedekiah the king commanded that they should commit +Jeremiah into the court of the prison, and that they should give him +daily a piece of bread out of the bakers' street, until all the bread +in the city were spent. + +Thus Jeremiah remained in the court of the prison. + +38:1 Then Shephatiah the son of Mattan, and Gedaliah the son of +Pashur, and Jucal the son of Shelemiah, and Pashur the son of +Malchiah, heard the words that Jeremiah had spoken unto all the +people, saying, 38:2 Thus saith the LORD, He that remaineth in this +city shall die by the sword, by the famine, and by the pestilence: but +he that goeth forth to the Chaldeans shall live; for he shall have his +life for a prey, and shall live. + +38:3 Thus saith the LORD, This city shall surely be given into the +hand of the king of Babylon's army, which shall take it. + +38:4 Therefore the princes said unto the king, We beseech thee, let +this man be put to death: for thus he weakeneth the hands of the men +of war that remain in this city, and the hands of all the people, in +speaking such words unto them: for this man seeketh not the welfare of +this people, but the hurt. + +38:5 Then Zedekiah the king said, Behold, he is in your hand: for the +king is not he that can do any thing against you. + +38:6 Then took they Jeremiah, and cast him into the dungeon of +Malchiah the son of Hammelech, that was in the court of the prison: +and they let down Jeremiah with cords. And in the dungeon there was no +water, but mire: so Jeremiah sunk in the mire. + +38:7 Now when Ebedmelech the Ethiopian, one of the eunuchs which was +in the king's house, heard that they had put Jeremiah in the dungeon; +the king then sitting in the gate of Benjamin; 38:8 Ebedmelech went +forth out of the king's house, and spake to the king saying, 38:9 My +lord the king, these men have done evil in all that they have done to +Jeremiah the prophet, whom they have cast into the dungeon; and he is +like to die for hunger in the place where he is: for there is no more +bread in the city. + +38:10 Then the king commanded Ebedmelech the Ethiopian, saying, Take +from hence thirty men with thee, and take up Jeremiah the prophet out +of the dungeon, before he die. + +38:11 So Ebedmelech took the men with him, and went into the house of +the king under the treasury, and took thence old cast clouts and old +rotten rags, and let them down by cords into the dungeon to Jeremiah. + +38:12 And Ebedmelech the Ethiopian said unto Jeremiah, Put now these +old cast clouts and rotten rags under thine armholes under the cords. +And Jeremiah did so. + +38:13 So they drew up Jeremiah with cords, and took him up out of the +dungeon: and Jeremiah remained in the court of the prison. + +38:14 Then Zedekiah the king sent, and took Jeremiah the prophet unto +him into the third entry that is in the house of the LORD: and the +king said unto Jeremiah, I will ask thee a thing; hide nothing from +me. + +38:15 Then Jeremiah said unto Zedekiah, If I declare it unto thee, +wilt thou not surely put me to death? and if I give thee counsel, wilt +thou not hearken unto me? 38:16 So Zedekiah the king sware secretly +unto Jeremiah, saying, As the LORD liveth, that made us this soul, I +will not put thee to death, neither will I give thee into the hand of +these men that seek thy life. + +38:17 Then said Jeremiah unto Zedekiah, Thus saith the LORD, the God +of hosts, the God of Israel; If thou wilt assuredly go forth unto the +king of Babylon's princes, then thy soul shall live, and this city +shall not be burned with fire; and thou shalt live, and thine house: +38:18 But if thou wilt not go forth to the king of Babylon's princes, +then shall this city be given into the hand of the Chaldeans, and they +shall burn it with fire, and thou shalt not escape out of their hand. + +38:19 And Zedekiah the king said unto Jeremiah, I am afraid of the +Jews that are fallen to the Chaldeans, lest they deliver me into their +hand, and they mock me. + +38:20 But Jeremiah said, They shall not deliver thee. Obey, I beseech +thee, the voice of the LORD, which I speak unto thee: so it shall be +well unto thee, and thy soul shall live. + +38:21 But if thou refuse to go forth, this is the word that the LORD +hath shewed me: 38:22 And, behold, all the women that are left in the +king of Judah's house shall be brought forth to the king of Babylon's +princes, and those women shall say, Thy friends have set thee on, and +have prevailed against thee: thy feet are sunk in the mire, and they +are turned away back. + +38:23 So they shall bring out all thy wives and thy children to the +Chaldeans: and thou shalt not escape out of their hand, but shalt be +taken by the hand of the king of Babylon: and thou shalt cause this +city to be burned with fire. + +38:24 Then said Zedekiah unto Jeremiah, Let no man know of these +words, and thou shalt not die. + +38:25 But if the princes hear that I have talked with thee, and they +come unto thee, and say unto thee, Declare unto us now what thou hast +said unto the king, hide it not from us, and we will not put thee to +death; also what the king said unto thee: 38:26 Then thou shalt say +unto them, I presented my supplication before the king, that he would +not cause me to return to Jonathan's house, to die there. + +38:27 Then came all the princes unto Jeremiah, and asked him: and he +told them according to all these words that the king had commanded. So +they left off speaking with him; for the matter was not perceived. + +38:28 So Jeremiah abode in the court of the prison until the day that +Jerusalem was taken: and he was there when Jerusalem was taken. + +39:1 In the ninth year of Zedekiah king of Judah, in the tenth month, +came Nebuchadrezzar king of Babylon and all his army against +Jerusalem, and they besieged it. + +39:2 And in the eleventh year of Zedekiah, in the fourth month, the +ninth day of the month, the city was broken up. + +39:3 And all the princes of the king of Babylon came in, and sat in +the middle gate, even Nergalsharezer, Samgarnebo, Sarsechim, Rabsaris, +Nergalsharezer, Rabmag, with all the residue of the princes of the +king of Babylon. + +39:4 And it came to pass, that when Zedekiah the king of Judah saw +them, and all the men of war, then they fled, and went forth out of +the city by night, by the way of the king's garden, by the gate +betwixt the two walls: and he went out the way of the plain. + +39:5 But the Chaldeans' army pursued after them, and overtook Zedekiah +in the plains of Jericho: and when they had taken him, they brought +him up to Nebuchadnezzar king of Babylon to Riblah in the land of +Hamath, where he gave judgment upon him. + +39:6 Then the king of Babylon slew the sons of Zedekiah in Riblah +before his eyes: also the king of Babylon slew all the nobles of +Judah. + +39:7 Moreover he put out Zedekiah's eyes, and bound him with chains, +to carry him to Babylon. + +39:8 And the Chaldeans burned the king's house, and the houses of the +people, with fire, and brake down the walls of Jerusalem. + +39:9 Then Nebuzaradan the captain of the guard carried away captive +into Babylon the remnant of the people that remained in the city, and +those that fell away, that fell to him, with the rest of the people +that remained. + +39:10 But Nebuzaradan the captain of the guard left of the poor of the +people, which had nothing, in the land of Judah, and gave them +vineyards and fields at the same time. + +39:11 Now Nebuchadrezzar king of Babylon gave charge concerning +Jeremiah to Nebuzaradan the captain of the guard, saying, 39:12 Take +him, and look well to him, and do him no harm; but do unto him even as +he shall say unto thee. + +39:13 So Nebuzaradan the captain of the guard sent, and Nebushasban, +Rabsaris, and Nergalsharezer, Rabmag, and all the king of Babylon's +princes; 39:14 Even they sent, and took Jeremiah out of the court of +the prison, and committed him unto Gedaliah the son of Ahikam the son +of Shaphan, that he should carry him home: so he dwelt among the +people. + +39:15 Now the word of the LORD came unto Jeremiah, while he was shut +up in the court of the prison, saying, 39:16 Go and speak to +Ebedmelech the Ethiopian, saying, Thus saith the LORD of hosts, the +God of Israel; Behold, I will bring my words upon this city for evil, +and not for good; and they shall be accomplished in that day before +thee. + +39:17 But I will deliver thee in that day, saith the LORD: and thou +shalt not be given into the hand of the men of whom thou art afraid. + +39:18 For I will surely deliver thee, and thou shalt not fall by the +sword, but thy life shall be for a prey unto thee: because thou hast +put thy trust in me, saith the LORD. + +40:1 The word that came to Jeremiah from the LORD, after that +Nebuzaradan the captain of the guard had let him go from Ramah, when +he had taken him being bound in chains among all that were carried +away captive of Jerusalem and Judah, which were carried away captive +unto Babylon. + +40:2 And the captain of the guard took Jeremiah, and said unto him, +The LORD thy God hath pronounced this evil upon this place. + +40:3 Now the LORD hath brought it, and done according as he hath said: +because ye have sinned against the LORD, and have not obeyed his +voice, therefore this thing is come upon you. + +40:4 And now, behold, I loose thee this day from the chains which were +upon thine hand. If it seem good unto thee to come with me into +Babylon, come; and I will look well unto thee: but if it seem ill unto +thee to come with me into Babylon, forbear: behold, all the land is +before thee: whither it seemeth good and convenient for thee to go, +thither go. + +40:5 Now while he was not yet gone back, he said, Go back also to +Gedaliah the son of Ahikam the son of Shaphan, whom the king of +Babylon hath made governor over the cities of Judah, and dwell with +him among the people: or go wheresoever it seemeth convenient unto +thee to go. So the captain of the guard gave him victuals and a +reward, and let him go. + +40:6 Then went Jeremiah unto Gedaliah the son of Ahikam to Mizpah; and +dwelt with him among the people that were left in the land. + +40:7 Now when all the captains of the forces which were in the fields, +even they and their men, heard that the king of Babylon had made +Gedaliah the son of Ahikam governor in the land, and had committed +unto him men, and women, and children, and of the poor of the land, of +them that were not carried away captive to Babylon; 40:8 Then they +came to Gedaliah to Mizpah, even Ishmael the son of Nethaniah, and +Johanan and Jonathan the sons of Kareah, and Seraiah the son of +Tanhumeth, and the sons of Ephai the Netophathite, and Jezaniah the +son of a Maachathite, they and their men. + +40:9 And Gedaliah the son of Ahikam the son of Shaphan sware unto them +and to their men, saying, Fear not to serve the Chaldeans: dwell in +the land, and serve the king of Babylon, and it shall be well with +you. + +40:10 As for me, behold, I will dwell at Mizpah, to serve the +Chaldeans, which will come unto us: but ye, gather ye wine, and summer +fruits, and oil, and put them in your vessels, and dwell in your +cities that ye have taken. + +40:11 Likewise when all the Jews that were in Moab, and among the +Ammonites, and in Edom, and that were in all the countries, heard that +the king of Babylon had left a remnant of Judah, and that he had set +over them Gedaliah the son of Ahikam the son of Shaphan; 40:12 Even +all the Jews returned out of all places whither they were driven, and +came to the land of Judah, to Gedaliah, unto Mizpah, and gathered wine +and summer fruits very much. + +40:13 Moreover Johanan the son of Kareah, and all the captains of the +forces that were in the fields, came to Gedaliah to Mizpah, 40:14 And +said unto him, Dost thou certainly know that Baalis the king of the +Ammonites hath sent Ishmael the son of Nethaniah to slay thee? But +Gedaliah the son of Ahikam believed them not. + +40:15 Then Johanan the son of Kareah spake to Gedaliah in Mizpah +secretly saying, Let me go, I pray thee, and I will slay Ishmael the +son of Nethaniah, and no man shall know it: wherefore should he slay +thee, that all the Jews which are gathered unto thee should be +scattered, and the remnant in Judah perish? 40:16 But Gedaliah the +son of Ahikam said unto Johanan the son of Kareah, Thou shalt not do +this thing: for thou speakest falsely of Ishmael. + +41:1 Now it came to pass in the seventh month, that Ishmael the son of +Nethaniah the son of Elishama, of the seed royal, and the princes of +the king, even ten men with him, came unto Gedaliah the son of Ahikam +to Mizpah; and there they did eat bread together in Mizpah. + +41:2 Then arose Ishmael the son of Nethaniah, and the ten men that +were with him, and smote Gedaliah the son of Ahikam the son of Shaphan +with the sword, and slew him, whom the king of Babylon had made +governor over the land. + +41:3 Ishmael also slew all the Jews that were with him, even with +Gedaliah, at Mizpah, and the Chaldeans that were found there, and the +men of war. + +41:4 And it came to pass the second day after he had slain Gedaliah, +and no man knew it, 41:5 That there came certain from Shechem, from +Shiloh, and from Samaria, even fourscore men, having their beards +shaven, and their clothes rent, and having cut themselves, with +offerings and incense in their hand, to bring them to the house of the +LORD. + +41:6 And Ishmael the son of Nethaniah went forth from Mizpah to meet +them, weeping all along as he went: and it came to pass, as he met +them, he said unto them, Come to Gedaliah the son of Ahikam. + +41:7 And it was so, when they came into the midst of the city, that +Ishmael the son of Nethaniah slew them, and cast them into the midst +of the pit, he, and the men that were with him. + +41:8 But ten men were found among them that said unto Ishmael, Slay us +not: for we have treasures in the field, of wheat, and of barley, and +of oil, and of honey. So he forbare, and slew them not among their +brethren. + +41:9 Now the pit wherein Ishmael had cast all the dead bodies of the +men, whom he had slain because of Gedaliah, was it which Asa the king +had made for fear of Baasha king of Israel: and Ishmael the son of +Nethaniah filled it with them that were slain. + +41:10 Then Ishmael carried away captive all the residue of the people +that were in Mizpah, even the king's daughters, and all the people +that remained in Mizpah, whom Nebuzaradan the captain of the guard had +committed to Gedaliah the son of Ahikam: and Ishmael the son of +Nethaniah carried them away captive, and departed to go over to the +Ammonites. + +41:11 But when Johanan the son of Kareah, and all the captains of the +forces that were with him, heard of all the evil that Ishmael the son +of Nethaniah had done, 41:12 Then they took all the men, and went to +fight with Ishmael the son of Nethaniah, and found him by the great +waters that are in Gibeon. + +41:13 Now it came to pass, that when all the people which were with +Ishmael saw Johanan the son of Kareah, and all the captains of the +forces that were with him, then they were glad. + +41:14 So all the people that Ishmael had carried away captive from +Mizpah cast about and returned, and went unto Johanan the son of +Kareah. + +41:15 But Ishmael the son of Nethaniah escaped from Johanan with eight +men, and went to the Ammonites. + +41:16 Then took Johanan the son of Kareah, and all the captains of the +forces that were with him, all the remnant of the people whom he had +recovered from Ishmael the son of Nethaniah, from Mizpah, after that +he had slain Gedaliah the son of Ahikam, even mighty men of war, and +the women, and the children, and the eunuchs, whom he had brought +again from Gibeon: 41:17 And they departed, and dwelt in the +habitation of Chimham, which is by Bethlehem, to go to enter into +Egypt, 41:18 Because of the Chaldeans: for they were afraid of them, +because Ishmael the son of Nethaniah had slain Gedaliah the son of +Ahikam, whom the king of Babylon made governor in the land. + +42:1 Then all the captains of the forces, and Johanan the son of +Kareah, and Jezaniah the son of Hoshaiah, and all the people from the +least even unto the greatest, came near, 42:2 And said unto Jeremiah +the prophet, Let, we beseech thee, our supplication be accepted before +thee, and pray for us unto the LORD thy God, even for all this +remnant; (for we are left but a few of many, as thine eyes do behold +us:) 42:3 That the LORD thy God may shew us the way wherein we may +walk, and the thing that we may do. + +42:4 Then Jeremiah the prophet said unto them, I have heard you; +behold, I will pray unto the LORD your God according to your words; +and it shall come to pass, that whatsoever thing the LORD shall answer +you, I will declare it unto you; I will keep nothing back from you. + +42:5 Then they said to Jeremiah, The LORD be a true and faithful +witness between us, if we do not even according to all things for the +which the LORD thy God shall send thee to us. + +42:6 Whether it be good, or whether it be evil, we will obey the voice +of the LORD our God, to whom we send thee; that it may be well with +us, when we obey the voice of the LORD our God. + +42:7 And it came to pass after ten days, that the word of the LORD +came unto Jeremiah. + +42:8 Then called he Johanan the son of Kareah, and all the captains of +the forces which were with him, and all the people from the least even +to the greatest, 42:9 And said unto them, Thus saith the LORD, the God +of Israel, unto whom ye sent me to present your supplication before +him; 42:10 If ye will still abide in this land, then will I build you, +and not pull you down, and I will plant you, and not pluck you up: for +I repent me of the evil that I have done unto you. + +42:11 Be not afraid of the king of Babylon, of whom ye are afraid; be +not afraid of him, saith the LORD: for I am with you to save you, and +to deliver you from his hand. + +42:12 And I will shew mercies unto you, that he may have mercy upon +you, and cause you to return to your own land. + +42:13 But if ye say, We will not dwell in this land, neither obey the +voice of the LORD your God, 42:14 Saying, No; but we will go into the +land of Egypt, where we shall see no war, nor hear the sound of the +trumpet, nor have hunger of bread; and there will we dwell: 42:15 And +now therefore hear the word of the LORD, ye remnant of Judah; Thus +saith the LORD of hosts, the God of Israel; If ye wholly set your +faces to enter into Egypt, and go to sojourn there; 42:16 Then it +shall come to pass, that the sword, which ye feared, shall overtake +you there in the land of Egypt, and the famine, whereof ye were +afraid, shall follow close after you there in Egypt; and there ye +shall die. + +42:17 So shall it be with all the men that set their faces to go into +Egypt to sojourn there; they shall die by the sword, by the famine, +and by the pestilence: and none of them shall remain or escape from +the evil that I will bring upon them. + +42:18 For thus saith the LORD of hosts, the God of Israel; As mine +anger and my fury hath been poured forth upon the inhabitants of +Jerusalem; so shall my fury be poured forth upon you, when ye shall +enter into Egypt: and ye shall be an execration, and an astonishment, +and a curse, and a reproach; and ye shall see this place no more. + +42:19 The LORD hath said concerning you, O ye remnant of Judah; Go ye +not into Egypt: know certainly that I have admonished you this day. + +42:20 For ye dissembled in your hearts, when ye sent me unto the LORD +your God, saying, Pray for us unto the LORD our God; and according +unto all that the LORD our God shall say, so declare unto us, and we +will do it. + +42:21 And now I have this day declared it to you; but ye have not +obeyed the voice of the LORD your God, nor any thing for the which he +hath sent me unto you. + +42:22 Now therefore know certainly that ye shall die by the sword, by +the famine, and by the pestilence, in the place whither ye desire to +go and to sojourn. + +43:1 And it came to pass, that when Jeremiah had made an end of +speaking unto all the people all the words of the LORD their God, for +which the LORD their God had sent him to them, even all these words, +43:2 Then spake Azariah the son of Hoshaiah, and Johanan the son of +Kareah, and all the proud men, saying unto Jeremiah, Thou speakest +falsely: the LORD our God hath not sent thee to say, Go not into Egypt +to sojourn there: 43:3 But Baruch the son of Neriah setteth thee on +against us, for to deliver us into the hand of the Chaldeans, that +they might put us to death, and carry us away captives into Babylon. + +43:4 So Johanan the son of Kareah, and all the captains of the forces, +and all the people, obeyed not the voice of the LORD, to dwell in the +land of Judah. + +43:5 But Johanan the son of Kareah, and all the captains of the +forces, took all the remnant of Judah, that were returned from all +nations, whither they had been driven, to dwell in the land of Judah; +43:6 Even men, and women, and children, and the king's daughters, and +every person that Nebuzaradan the captain of the guard had left with +Gedaliah the son of Ahikam the son of Shaphan, and Jeremiah the +prophet, and Baruch the son of Neriah. + +43:7 So they came into the land of Egypt: for they obeyed not the +voice of the LORD: thus came they even to Tahpanhes. + +43:8 Then came the word of the LORD unto Jeremiah in Tahpanhes, +saying, 43:9 Take great stones in thine hand, and hide them in the +clay in the brickkiln, which is at the entry of Pharaoh's house in +Tahpanhes, in the sight of the men of Judah; 43:10 And say unto them, +Thus saith the LORD of hosts, the God of Israel; Behold, I will send +and take Nebuchadrezzar the king of Babylon, my servant, and will set +his throne upon these stones that I have hid; and he shall spread his +royal pavilion over them. + +43:11 And when he cometh, he shall smite the land of Egypt, and +deliver such as are for death to death; and such as are for captivity +to captivity; and such as are for the sword to the sword. + +43:12 And I will kindle a fire in the houses of the gods of Egypt; and +he shall burn them, and carry them away captives: and he shall array +himself with the land of Egypt, as a shepherd putteth on his garment; +and he shall go forth from thence in peace. + +43:13 He shall break also the images of Bethshemesh, that is in the +land of Egypt; and the houses of the gods of the Egyptians shall he +burn with fire. + +44:1 The word that came to Jeremiah concerning all the Jews which +dwell in the land of Egypt, which dwell at Migdol, and at Tahpanhes, +and at Noph, and in the country of Pathros, saying, 44:2 Thus saith +the LORD of hosts, the God of Israel; Ye have seen all the evil that I +have brought upon Jerusalem, and upon all the cities of Judah; and, +behold, this day they are a desolation, and no man dwelleth therein, +44:3 Because of their wickedness which they have committed to provoke +me to anger, in that they went to burn incense, and to serve other +gods, whom they knew not, neither they, ye, nor your fathers. + +44:4 Howbeit I sent unto you all my servants the prophets, rising +early and sending them, saying, Oh, do not this abominable thing that +I hate. + +44:5 But they hearkened not, nor inclined their ear to turn from their +wickedness, to burn no incense unto other gods. + +44:6 Wherefore my fury and mine anger was poured forth, and was +kindled in the cities of Judah and in the streets of Jerusalem; and +they are wasted and desolate, as at this day. + +44:7 Therefore now thus saith the LORD, the God of hosts, the God of +Israel; Wherefore commit ye this great evil against your souls, to cut +off from you man and woman, child and suckling, out of Judah, to leave +you none to remain; 44:8 In that ye provoke me unto wrath with the +works of your hands, burning incense unto other gods in the land of +Egypt, whither ye be gone to dwell, that ye might cut yourselves off, +and that ye might be a curse and a reproach among all the nations of +the earth? 44:9 Have ye forgotten the wickedness of your fathers, and +the wickedness of the kings of Judah, and the wickedness of their +wives, and your own wickedness, and the wickedness of your wives, +which they have committed in the land of Judah, and in the streets of +Jerusalem? 44:10 They are not humbled even unto this day, neither +have they feared, nor walked in my law, nor in my statutes, that I set +before you and before your fathers. + +44:11 Therefore thus saith the LORD of hosts, the God of Israel; +Behold, I will set my face against you for evil, and to cut off all +Judah. + +44:12 And I will take the remnant of Judah, that have set their faces +to go into the land of Egypt to sojourn there, and they shall all be +consumed, and fall in the land of Egypt; they shall even be consumed +by the sword and by the famine: they shall die, from the least even +unto the greatest, by the sword and by the famine: and they shall be +an execration, and an astonishment, and a curse, and a reproach. + +44:13 For I will punish them that dwell in the land of Egypt, as I +have punished Jerusalem, by the sword, by the famine, and by the +pestilence: 44:14 So that none of the remnant of Judah, which are gone +into the land of Egypt to sojourn there, shall escape or remain, that +they should return into the land of Judah, to the which they have a +desire to return to dwell there: for none shall return but such as +shall escape. + +44:15 Then all the men which knew that their wives had burned incense +unto other gods, and all the women that stood by, a great multitude, +even all the people that dwelt in the land of Egypt, in Pathros, +answered Jeremiah, saying, 44:16 As for the word that thou hast spoken +unto us in the name of the LORD, we will not hearken unto thee. + +44:17 But we will certainly do whatsoever thing goeth forth out of our +own mouth, to burn incense unto the queen of heaven, and to pour out +drink offerings unto her, as we have done, we, and our fathers, our +kings, and our princes, in the cities of Judah, and in the streets of +Jerusalem: for then had we plenty of victuals, and were well, and saw +no evil. + +44:18 But since we left off to burn incense to the queen of heaven, +and to pour out drink offerings unto her, we have wanted all things, +and have been consumed by the sword and by the famine. + +44:19 And when we burned incense to the queen of heaven, and poured +out drink offerings unto her, did we make her cakes to worship her, +and pour out drink offerings unto her, without our men? 44:20 Then +Jeremiah said unto all the people, to the men, and to the women, and +to all the people which had given him that answer, saying, 44:21 The +incense that ye burned in the cities of Judah, and in the streets of +Jerusalem, ye, and your fathers, your kings, and your princes, and the +people of the land, did not the LORD remember them, and came it not +into his mind? 44:22 So that the LORD could no longer bear, because +of the evil of your doings, and because of the abominations which ye +have committed; therefore is your land a desolation, and an +astonishment, and a curse, without an inhabitant, as at this day. + +44:23 Because ye have burned incense, and because ye have sinned +against the LORD, and have not obeyed the voice of the LORD, nor +walked in his law, nor in his statutes, nor in his testimonies; +therefore this evil is happened unto you, as at this day. + +44:24 Moreover Jeremiah said unto all the people, and to all the +women, Hear the word of the LORD, all Judah that are in the land of +Egypt: 44:25 Thus saith the LORD of hosts, the God of Israel, saying; +Ye and your wives have both spoken with your mouths, and fulfilled +with your hand, saying, We will surely perform our vows that we have +vowed, to burn incense to the queen of heaven, and to pour out drink +offerings unto her: ye will surely accomplish your vows, and surely +perform your vows. + +44:26 Therefore hear ye the word of the LORD, all Judah that dwell in +the land of Egypt; Behold, I have sworn by my great name, saith the +LORD, that my name shall no more be named in the mouth of any man of +Judah in all the land of Egypt, saying, The Lord GOD liveth. + +44:27 Behold, I will watch over them for evil, and not for good: and +all the men of Judah that are in the land of Egypt shall be consumed +by the sword and by the famine, until there be an end of them. + +44:28 Yet a small number that escape the sword shall return out of the +land of Egypt into the land of Judah, and all the remnant of Judah, +that are gone into the land of Egypt to sojourn there, shall know +whose words shall stand, mine, or their's. + +44:29 And this shall be a sign unto you, saith the LORD, that I will +punish you in this place, that ye may know that my words shall surely +stand against you for evil: 44:30 Thus saith the LORD; Behold, I will +give Pharaohhophra king of Egypt into the hand of his enemies, and +into the hand of them that seek his life; as I gave Zedekiah king of +Judah into the hand of Nebuchadrezzar king of Babylon, his enemy, and +that sought his life. + +45:1 The word that Jeremiah the prophet spake unto Baruch the son of +Neriah, when he had written these words in a book at the mouth of +Jeremiah, in the fourth year of Jehoiakim the son of Josiah king of +Judah, saying, 45:2 Thus saith the LORD, the God of Israel, unto thee, +O Baruch: 45:3 Thou didst say, Woe is me now! for the LORD hath added +grief to my sorrow; I fainted in my sighing, and I find no rest. + +45:4 Thus shalt thou say unto him, The LORD saith thus; Behold, that +which I have built will I break down, and that which I have planted I +will pluck up, even this whole land. + +45:5 And seekest thou great things for thyself? seek them not: for, +behold, I will bring evil upon all flesh, saith the LORD: but thy life +will I give unto thee for a prey in all places whither thou goest. + +46:1 The word of the LORD which came to Jeremiah the prophet against +the Gentiles; 46:2 Against Egypt, against the army of Pharaohnecho +king of Egypt, which was by the river Euphrates in Carchemish, which +Nebuchadrezzar king of Babylon smote in the fourth year of Jehoiakim +the son of Josiah king of Judah. + +46:3 Order ye the buckler and shield, and draw near to battle. + +46:4 Harness the horses; and get up, ye horsemen, and stand forth with +your helmets; furbish the spears, and put on the brigandines. + +46:5 Wherefore have I seen them dismayed and turned away back? and +their mighty ones are beaten down, and are fled apace, and look not +back: for fear was round about, saith the LORD. + +46:6 Let not the swift flee away, nor the mighty man escape; they +shall stumble, and fall toward the north by the river Euphrates. + +46:7 Who is this that cometh up as a flood, whose waters are moved as +the rivers? 46:8 Egypt riseth up like a flood, and his waters are +moved like the rivers; and he saith, I will go up, and will cover the +earth; I will destroy the city and the inhabitants thereof. + +46:9 Come up, ye horses; and rage, ye chariots; and let the mighty men +come forth; the Ethiopians and the Libyans, that handle the shield; +and the Lydians, that handle and bend the bow. + +46:10 For this is the day of the Lord GOD of hosts, a day of +vengeance, that he may avenge him of his adversaries: and the sword +shall devour, and it shall be satiate and made drunk with their blood: +for the Lord GOD of hosts hath a sacrifice in the north country by the +river Euphrates. + +46:11 Go up into Gilead, and take balm, O virgin, the daughter of +Egypt: in vain shalt thou use many medicines; for thou shalt not be +cured. + +46:12 The nations have heard of thy shame, and thy cry hath filled the +land: for the mighty man hath stumbled against the mighty, and they +are fallen both together. + +46:13 The word that the LORD spake to Jeremiah the prophet, how +Nebuchadrezzar king of Babylon should come and smite the land of +Egypt. + +46:14 Declare ye in Egypt, and publish in Migdol, and publish in Noph +and in Tahpanhes: say ye, Stand fast, and prepare thee; for the sword +shall devour round about thee. + +46:15 Why are thy valiant men swept away? they stood not, because the +LORD did drive them. + +46:16 He made many to fall, yea, one fell upon another: and they said, +Arise, and let us go again to our own people, and to the land of our +nativity, from the oppressing sword. + +46:17 They did cry there, Pharaoh king of Egypt is but a noise; he +hath passed the time appointed. + +46:18 As I live, saith the King, whose name is the LORD of hosts, +Surely as Tabor is among the mountains, and as Carmel by the sea, so +shall he come. + +46:19 O thou daughter dwelling in Egypt, furnish thyself to go into +captivity: for Noph shall be waste and desolate without an inhabitant. + +46:20 Egypt is like a very fair heifer, but destruction cometh; it +cometh out of the north. + +46:21 Also her hired men are in the midst of her like fatted bullocks; +for they also are turned back, and are fled away together: they did +not stand, because the day of their calamity was come upon them, and +the time of their visitation. + +46:22 The voice thereof shall go like a serpent; for they shall march +with an army, and come against her with axes, as hewers of wood. + +46:23 They shall cut down her forest, saith the LORD, though it cannot +be searched; because they are more than the grasshoppers, and are +innumerable. + +46:24 The daughter of Egypt shall be confounded; she shall be +delivered into the hand of the people of the north. + +46:25 The LORD of hosts, the God of Israel, saith; Behold, I will +punish the multitude of No, and Pharaoh, and Egypt, with their gods, +and their kings; even Pharaoh, and all them that trust in him: 46:26 +And I will deliver them into the hand of those that seek their lives, +and into the hand of Nebuchadrezzar king of Babylon, and into the hand +of his servants: and afterward it shall be inhabited, as in the days +of old, saith the LORD. + +46:27 But fear not thou, O my servant Jacob, and be not dismayed, O +Israel: for, behold, I will save thee from afar off, and thy seed from +the land of their captivity; and Jacob shall return, and be in rest +and at ease, and none shall make him afraid. + +46:28 Fear thou not, O Jacob my servant, saith the LORD: for I am with +thee; for I will make a full end of all the nations whither I have +driven thee: but I will not make a full end of thee, but correct thee +in measure; yet will I not leave thee wholly unpunished. + +47:1 The word of the LORD that came to Jeremiah the prophet against +the Philistines, before that Pharaoh smote Gaza. + +47:2 Thus saith the LORD; Behold, waters rise up out of the north, and +shall be an overflowing flood, and shall overflow the land, and all +that is therein; the city, and them that dwell therein: then the men +shall cry, and all the inhabitants of the land shall howl. + +47:3 At the noise of the stamping of the hoofs of his strong horses, +at the rushing of his chariots, and at the rumbling of his wheels, the +fathers shall not look back to their children for feebleness of hands; +47:4 Because of the day that cometh to spoil all the Philistines, and +to cut off from Tyrus and Zidon every helper that remaineth: for the +LORD will spoil the Philistines, the remnant of the country of +Caphtor. + +47:5 Baldness is come upon Gaza; Ashkelon is cut off with the remnant +of their valley: how long wilt thou cut thyself? 47:6 O thou sword of +the LORD, how long will it be ere thou be quiet? put up thyself into +thy scabbard, rest, and be still. + +47:7 How can it be quiet, seeing the LORD hath given it a charge +against Ashkelon, and against the sea shore? there hath he appointed +it. + +48:1 Against Moab thus saith the LORD of hosts, the God of Israel; Woe +unto Nebo! for it is spoiled: Kiriathaim is confounded and taken: +Misgab is confounded and dismayed. + +48:2 There shall be no more praise of Moab: in Heshbon they have +devised evil against it; come, and let us cut it off from being a +nation. Also thou shalt be cut down, O Madmen; the sword shall pursue +thee. + +48:3 A voice of crying shall be from Horonaim, spoiling and great +destruction. + +48:4 Moab is destroyed; her little ones have caused a cry to be heard. + +48:5 For in the going up of Luhith continual weeping shall go up; for +in the going down of Horonaim the enemies have heard a cry of +destruction. + +48:6 Flee, save your lives, and be like the heath in the wilderness. + +48:7 For because thou hast trusted in thy works and in thy treasures, +thou shalt also be taken: and Chemosh shall go forth into captivity +with his priests and his princes together. + +48:8 And the spoiler shall come upon every city, and no city shall +escape: the valley also shall perish, and the plain shall be +destroyed, as the LORD hath spoken. + +48:9 Give wings unto Moab, that it may flee and get away: for the +cities thereof shall be desolate, without any to dwell therein. + +48:10 Cursed be he that doeth the work of the LORD deceitfully, and +cursed be he that keepeth back his sword from blood. + +48:11 Moab hath been at ease from his youth, and he hath settled on +his lees, and hath not been emptied from vessel to vessel, neither +hath he gone into captivity: therefore his taste remained in him, and +his scent is not changed. + +48:12 Therefore, behold, the days come, saith the LORD, that I will +send unto him wanderers, that shall cause him to wander, and shall +empty his vessels, and break their bottles. + +48:13 And Moab shall be ashamed of Chemosh, as the house of Israel was +ashamed of Bethel their confidence. + +48:14 How say ye, We are mighty and strong men for the war? 48:15 +Moab is spoiled, and gone up out of her cities, and his chosen young +men are gone down to the slaughter, saith the King, whose name is the +LORD of hosts. + +48:16 The calamity of Moab is near to come, and his affliction hasteth +fast. + +48:17 All ye that are about him, bemoan him; and all ye that know his +name, say, How is the strong staff broken, and the beautiful rod! +48:18 Thou daughter that dost inhabit Dibon, come down from thy glory, +and sit in thirst; for the spoiler of Moab shall come upon thee, and +he shall destroy thy strong holds. + +48:19 O inhabitant of Aroer, stand by the way, and espy; ask him that +fleeth, and her that escapeth, and say, What is done? 48:20 Moab is +confounded; for it is broken down: howl and cry; tell ye it in Arnon, +that Moab is spoiled, 48:21 And judgment is come upon the plain +country; upon Holon, and upon Jahazah, and upon Mephaath, 48:22 And +upon Dibon, and upon Nebo, and upon Bethdiblathaim, 48:23 And upon +Kiriathaim, and upon Bethgamul, and upon Bethmeon, 48:24 And upon +Kerioth, and upon Bozrah, and upon all the cities of the land of Moab, +far or near. + +48:25 The horn of Moab is cut off, and his arm is broken, saith the +LORD. + +48:26 Make ye him drunken: for he magnified himself against the LORD: +Moab also shall wallow in his vomit, and he also shall be in derision. + +48:27 For was not Israel a derision unto thee? was he found among +thieves? for since thou spakest of him, thou skippedst for joy. + +48:28 O ye that dwell in Moab, leave the cities, and dwell in the +rock, and be like the dove that maketh her nest in the sides of the +hole's mouth. + +48:29 We have heard the pride of Moab, (he is exceeding proud) his +loftiness, and his arrogancy, and his pride, and the haughtiness of +his heart. + +48:30 I know his wrath, saith the LORD; but it shall not be so; his +lies shall not so effect it. + +48:31 Therefore will I howl for Moab, and I will cry out for all Moab; +mine heart shall mourn for the men of Kirheres. + +48:32 O vine of Sibmah, I will weep for thee with the weeping of +Jazer: thy plants are gone over the sea, they reach even to the sea of +Jazer: the spoiler is fallen upon thy summer fruits and upon thy +vintage. + +48:33 And joy and gladness is taken from the plentiful field, and from +the land of Moab, and I have caused wine to fail from the winepresses: +none shall tread with shouting; their shouting shall be no shouting. + +48:34 From the cry of Heshbon even unto Elealeh, and even unto Jahaz, +have they uttered their voice, from Zoar even unto Horonaim, as an +heifer of three years old: for the waters also of Nimrim shall be +desolate. + +48:35 Moreover I will cause to cease in Moab, saith the LORD, him that +offereth in the high places, and him that burneth incense to his gods. + +48:36 Therefore mine heart shall sound for Moab like pipes, and mine +heart shall sound like pipes for the men of Kirheres: because the +riches that he hath gotten are perished. + +48:37 For every head shall be bald, and every beard clipped: upon all +the hands shall be cuttings, and upon the loins sackcloth. + +48:38 There shall be lamentation generally upon all the housetops of +Moab, and in the streets thereof: for I have broken Moab like a vessel +wherein is no pleasure, saith the LORD. + +48:39 They shall howl, saying, How is it broken down! how hath Moab +turned the back with shame! so shall Moab be a derision and a +dismaying to all them about him. + +48:40 For thus saith the LORD; Behold, he shall fly as an eagle, and +shall spread his wings over Moab. + +48:41 Kerioth is taken, and the strong holds are surprised, and the +mighty men's hearts in Moab at that day shall be as the heart of a +woman in her pangs. + +48:42 And Moab shall be destroyed from being a people, because he hath +magnified himself against the LORD. + +48:43 Fear, and the pit, and the snare, shall be upon thee, O +inhabitant of Moab, saith the LORD. + +48:44 He that fleeth from the fear shall fall into the pit; and he +that getteth up out of the pit shall be taken in the snare: for I will +bring upon it, even upon Moab, the year of their visitation, saith the +LORD. + +48:45 They that fled stood under the shadow of Heshbon because of the +force: but a fire shall come forth out of Heshbon, and a flame from +the midst of Sihon, and shall devour the corner of Moab, and the crown +of the head of the tumultuous ones. + +48:46 Woe be unto thee, O Moab! the people of Chemosh perisheth: for +thy sons are taken captives, and thy daughters captives. + +48:47 Yet will I bring again the captivity of Moab in the latter days, +saith the LORD. Thus far is the judgment of Moab. + +49:1 Concerning the Ammonites, thus saith the LORD; Hath Israel no +sons? hath he no heir? why then doth their king inherit Gad, and his +people dwell in his cities? 49:2 Therefore, behold, the days come, +saith the LORD, that I will cause an alarm of war to be heard in +Rabbah of the Ammonites; and it shall be a desolate heap, and her +daughters shall be burned with fire: then shall Israel be heir unto +them that were his heirs, saith the LORD. + +49:3 Howl, O Heshbon, for Ai is spoiled: cry, ye daughters of Rabbah, +gird you with sackcloth; lament, and run to and fro by the hedges; for +their king shall go into captivity, and his priests and his princes +together. + +49:4 Wherefore gloriest thou in the valleys, thy flowing valley, O +backsliding daughter? that trusted in her treasures, saying, Who shall +come unto me? 49:5 Behold, I will bring a fear upon thee, saith the +Lord GOD of hosts, from all those that be about thee; and ye shall be +driven out every man right forth; and none shall gather up him that +wandereth. + +49:6 And afterward I will bring again the captivity of the children of +Ammon, saith the LORD. + +49:7 Concerning Edom, thus saith the LORD of hosts; Is wisdom no more +in Teman? is counsel perished from the prudent? is their wisdom +vanished? 49:8 Flee ye, turn back, dwell deep, O inhabitants of +Dedan; for I will bring the calamity of Esau upon him, the time that I +will visit him. + +49:9 If grapegatherers come to thee, would they not leave some +gleaning grapes? if thieves by night, they will destroy till they have +enough. + +49:10 But I have made Esau bare, I have uncovered his secret places, +and he shall not be able to hide himself: his seed is spoiled, and his +brethren, and his neighbours, and he is not. + +49:11 Leave thy fatherless children, I will preserve them alive; and +let thy widows trust in me. + +49:12 For thus saith the LORD; Behold, they whose judgment was not to +drink of the cup have assuredly drunken; and art thou he that shall +altogether go unpunished? thou shalt not go unpunished, but thou shalt +surely drink of it. + +49:13 For I have sworn by myself, saith the LORD, that Bozrah shall +become a desolation, a reproach, a waste, and a curse; and all the +cities thereof shall be perpetual wastes. + +49:14 I have heard a rumour from the LORD, and an ambassador is sent +unto the heathen, saying, Gather ye together, and come against her, +and rise up to the battle. + +49:15 For, lo, I will make thee small among the heathen, and despised +among men. + +49:16 Thy terribleness hath deceived thee, and the pride of thine +heart, O thou that dwellest in the clefts of the rock, that holdest +the height of the hill: though thou shouldest make thy nest as high as +the eagle, I will bring thee down from thence, saith the LORD. + +49:17 Also Edom shall be a desolation: every one that goeth by it +shall be astonished, and shall hiss at all the plagues thereof. + +49:18 As in the overthrow of Sodom and Gomorrah and the neighbour +cities thereof, saith the LORD, no man shall abide there, neither +shall a son of man dwell in it. + +49:19 Behold, he shall come up like a lion from the swelling of Jordan +against the habitation of the strong: but I will suddenly make him run +away from her: and who is a chosen man, that I may appoint over her? +for who is like me? and who will appoint me the time? and who is that +shepherd that will stand before me? 49:20 Therefore hear the counsel +of the LORD, that he hath taken against Edom; and his purposes, that +he hath purposed against the inhabitants of Teman: Surely the least of +the flock shall draw them out: surely he shall make their habitations +desolate with them. + +49:21 The earth is moved at the noise of their fall, at the cry the +noise thereof was heard in the Red sea. + +49:22 Behold, he shall come up and fly as the eagle, and spread his +wings over Bozrah: and at that day shall the heart of the mighty men +of Edom be as the heart of a woman in her pangs. + +49:23 Concerning Damascus. Hamath is confounded, and Arpad: for they +have heard evil tidings: they are fainthearted; there is sorrow on the +sea; it cannot be quiet. + +49:24 Damascus is waxed feeble, and turneth herself to flee, and fear +hath seized on her: anguish and sorrows have taken her, as a woman in +travail. + +49:25 How is the city of praise not left, the city of my joy! 49:26 +Therefore her young men shall fall in her streets, and all the men of +war shall be cut off in that day, saith the LORD of hosts. + +49:27 And I will kindle a fire in the wall of Damascus, and it shall +consume the palaces of Benhadad. + +49:28 Concerning Kedar, and concerning the kingdoms of Hazor, which +Nebuchadrezzar king of Babylon shall smite, thus saith the LORD; Arise +ye, go up to Kedar, and spoil the men of the east. + +49:29 Their tents and their flocks shall they take away: they shall +take to themselves their curtains, and all their vessels, and their +camels; and they shall cry unto them, Fear is on every side. + +49:30 Flee, get you far off, dwell deep, O ye inhabitants of Hazor, +saith the LORD; for Nebuchadrezzar king of Babylon hath taken counsel +against you, and hath conceived a purpose against you. + +49:31 Arise, get you up unto the wealthy nation, that dwelleth without +care, saith the LORD, which have neither gates nor bars, which dwell +alone. + +49:32 And their camels shall be a booty, and the multitude of their +cattle a spoil: and I will scatter into all winds them that are in the +utmost corners; and I will bring their calamity from all sides +thereof, saith the LORD. + +49:33 And Hazor shall be a dwelling for dragons, and a desolation for +ever: there shall no man abide there, nor any son of man dwell in it. + +49:34 The word of the LORD that came to Jeremiah the prophet against +Elam in the beginning of the reign of Zedekiah king of Judah, saying, +49:35 Thus saith the LORD of hosts; Behold, I will break the bow of +Elam, the chief of their might. + +49:36 And upon Elam will I bring the four winds from the four quarters +of heaven, and will scatter them toward all those winds; and there +shall be no nation whither the outcasts of Elam shall not come. + +49:37 For I will cause Elam to be dismayed before their enemies, and +before them that seek their life: and I will bring evil upon them, +even my fierce anger, saith the LORD; and I will send the sword after +them, till I have consumed them: 49:38 And I will set my throne in +Elam, and will destroy from thence the king and the princes, saith the +LORD. + +49:39 But it shall come to pass in the latter days, that I will bring +again the captivity of Elam, saith the LORD. + +50:1 The word that the LORD spake against Babylon and against the land +of the Chaldeans by Jeremiah the prophet. + +50:2 Declare ye among the nations, and publish, and set up a standard; +publish, and conceal not: say, Babylon is taken, Bel is confounded, +Merodach is broken in pieces; her idols are confounded, her images are +broken in pieces. + +50:3 For out of the north there cometh up a nation against her, which +shall make her land desolate, and none shall dwell therein: they shall +remove, they shall depart, both man and beast. + +50:4 In those days, and in that time, saith the LORD, the children of +Israel shall come, they and the children of Judah together, going and +weeping: they shall go, and seek the LORD their God. + +50:5 They shall ask the way to Zion with their faces thitherward, +saying, Come, and let us join ourselves to the LORD in a perpetual +covenant that shall not be forgotten. + +50:6 My people hath been lost sheep: their shepherds have caused them +to go astray, they have turned them away on the mountains: they have +gone from mountain to hill, they have forgotten their restingplace. + +50:7 All that found them have devoured them: and their adversaries +said, We offend not, because they have sinned against the LORD, the +habitation of justice, even the LORD, the hope of their fathers. + +50:8 Remove out of the midst of Babylon, and go forth out of the land +of the Chaldeans, and be as the he goats before the flocks. + +50:9 For, lo, I will raise and cause to come up against Babylon an +assembly of great nations from the north country: and they shall set +themselves in array against her; from thence she shall be taken: their +arrows shall be as of a mighty expert man; none shall return in vain. + +50:10 And Chaldea shall be a spoil: all that spoil her shall be +satisfied, saith the LORD. + +50:11 Because ye were glad, because ye rejoiced, O ye destroyers of +mine heritage, because ye are grown fat as the heifer at grass, and +bellow as bulls; 50:12 Your mother shall be sore confounded; she that +bare you shall be ashamed: behold, the hindermost of the nations shall +be a wilderness, a dry land, and a desert. + +50:13 Because of the wrath of the LORD it shall not be inhabited, but +it shall be wholly desolate: every one that goeth by Babylon shall be +astonished, and hiss at all her plagues. + +50:14 Put yourselves in array against Babylon round about: all ye that +bend the bow, shoot at her, spare no arrows: for she hath sinned +against the LORD. + +50:15 Shout against her round about: she hath given her hand: her +foundations are fallen, her walls are thrown down: for it is the +vengeance of the LORD: take vengeance upon her; as she hath done, do +unto her. + +50:16 Cut off the sower from Babylon, and him that handleth the sickle +in the time of harvest: for fear of the oppressing sword they shall +turn every one to his people, and they shall flee every one to his own +land. + +50:17 Israel is a scattered sheep; the lions have driven him away: +first the king of Assyria hath devoured him; and last this +Nebuchadrezzar king of Babylon hath broken his bones. + +50:18 Therefore thus saith the LORD of hosts, the God of Israel; +Behold, I will punish the king of Babylon and his land, as I have +punished the king of Assyria. + +50:19 And I will bring Israel again to his habitation, and he shall +feed on Carmel and Bashan, and his soul shall be satisfied upon mount +Ephraim and Gilead. + +50:20 In those days, and in that time, saith the LORD, the iniquity of +Israel shall be sought for, and there shall be none; and the sins of +Judah, and they shall not be found: for I will pardon them whom I +reserve. + +50:21 Go up against the land of Merathaim, even against it, and +against the inhabitants of Pekod: waste and utterly destroy after +them, saith the LORD, and do according to all that I have commanded +thee. + +50:22 A sound of battle is in the land, and of great destruction. + +50:23 How is the hammer of the whole earth cut asunder and broken! how +is Babylon become a desolation among the nations! 50:24 I have laid a +snare for thee, and thou art also taken, O Babylon, and thou wast not +aware: thou art found, and also caught, because thou hast striven +against the LORD. + +50:25 The LORD hath opened his armoury, and hath brought forth the +weapons of his indignation: for this is the work of the Lord GOD of +hosts in the land of the Chaldeans. + +50:26 Come against her from the utmost border, open her storehouses: +cast her up as heaps, and destroy her utterly: let nothing of her be +left. + +50:27 Slay all her bullocks; let them go down to the slaughter: woe +unto them! for their day is come, the time of their visitation. + +50:28 The voice of them that flee and escape out of the land of +Babylon, to declare in Zion the vengeance of the LORD our God, the +vengeance of his temple. + +50:29 Call together the archers against Babylon: all ye that bend the +bow, camp against it round about; let none thereof escape: recompense +her according to her work; according to all that she hath done, do +unto her: for she hath been proud against the LORD, against the Holy +One of Israel. + +50:30 Therefore shall her young men fall in the streets, and all her +men of war shall be cut off in that day, saith the LORD. + +50:31 Behold, I am against thee, O thou most proud, saith the Lord GOD +of hosts: for thy day is come, the time that I will visit thee. + +50:32 And the most proud shall stumble and fall, and none shall raise +him up: and I will kindle a fire in his cities, and it shall devour +all round about him. + +50:33 Thus saith the LORD of hosts; The children of Israel and the +children of Judah were oppressed together: and all that took them +captives held them fast; they refused to let them go. + +50:34 Their Redeemer is strong; the LORD of hosts is his name: he +shall throughly plead their cause, that he may give rest to the land, +and disquiet the inhabitants of Babylon. + +50:35 A sword is upon the Chaldeans, saith the LORD, and upon the +inhabitants of Babylon, and upon her princes, and upon her wise men. + +50:36 A sword is upon the liars; and they shall dote: a sword is upon +her mighty men; and they shall be dismayed. + +50:37 A sword is upon their horses, and upon their chariots, and upon +all the mingled people that are in the midst of her; and they shall +become as women: a sword is upon her treasures; and they shall be +robbed. + +50:38 A drought is upon her waters; and they shall be dried up: for it +is the land of graven images, and they are mad upon their idols. + +50:39 Therefore the wild beasts of the desert with the wild beasts of +the islands shall dwell there, and the owls shall dwell therein: and +it shall be no more inhabited for ever; neither shall it be dwelt in +from generation to generation. + +50:40 As God overthrew Sodom and Gomorrah and the neighbour cities +thereof, saith the LORD; so shall no man abide there, neither shall +any son of man dwell therein. + +50:41 Behold, a people shall come from the north, and a great nation, +and many kings shall be raised up from the coasts of the earth. + +50:42 They shall hold the bow and the lance: they are cruel, and will +not shew mercy: their voice shall roar like the sea, and they shall +ride upon horses, every one put in array, like a man to the battle, +against thee, O daughter of Babylon. + +50:43 The king of Babylon hath heard the report of them, and his hands +waxed feeble: anguish took hold of him, and pangs as of a woman in +travail. + +50:44 Behold, he shall come up like a lion from the swelling of Jordan +unto the habitation of the strong: but I will make them suddenly run +away from her: and who is a chosen man, that I may appoint over her? +for who is like me? and who will appoint me the time? and who is that +shepherd that will stand before me? 50:45 Therefore hear ye the +counsel of the LORD, that he hath taken against Babylon; and his +purposes, that he hath purposed against the land of the Chaldeans: +Surely the least of the flock shall draw them out: surely he shall +make their habitation desolate with them. + +50:46 At the noise of the taking of Babylon the earth is moved, and +the cry is heard among the nations. + +51:1 Thus saith the LORD; Behold, I will raise up against Babylon, and +against them that dwell in the midst of them that rise up against me, +a destroying wind; 51:2 And will send unto Babylon fanners, that shall +fan her, and shall empty her land: for in the day of trouble they +shall be against her round about. + +51:3 Against him that bendeth let the archer bend his bow, and against +him that lifteth himself up in his brigandine: and spare ye not her +young men; destroy ye utterly all her host. + +51:4 Thus the slain shall fall in the land of the Chaldeans, and they +that are thrust through in her streets. + +51:5 For Israel hath not been forsaken, nor Judah of his God, of the +LORD of hosts; though their land was filled with sin against the Holy +One of Israel. + +51:6 Flee out of the midst of Babylon, and deliver every man his soul: +be not cut off in her iniquity; for this is the time of the LORD's +vengeance; he will render unto her a recompence. + +51:7 Babylon hath been a golden cup in the LORD's hand, that made all +the earth drunken: the nations have drunken of her wine; therefore the +nations are mad. + +51:8 Babylon is suddenly fallen and destroyed: howl for her; take balm +for her pain, if so be she may be healed. + +51:9 We would have healed Babylon, but she is not healed: forsake her, +and let us go every one into his own country: for her judgment +reacheth unto heaven, and is lifted up even to the skies. + +51:10 The LORD hath brought forth our righteousness: come, and let us +declare in Zion the work of the LORD our God. + +51:11 Make bright the arrows; gather the shields: the LORD hath raised +up the spirit of the kings of the Medes: for his device is against +Babylon, to destroy it; because it is the vengeance of the LORD, the +vengeance of his temple. + +51:12 Set up the standard upon the walls of Babylon, make the watch +strong, set up the watchmen, prepare the ambushes: for the LORD hath +both devised and done that which he spake against the inhabitants of +Babylon. + +51:13 O thou that dwellest upon many waters, abundant in treasures, +thine end is come, and the measure of thy covetousness. + +51:14 The LORD of hosts hath sworn by himself, saying, Surely I will +fill thee with men, as with caterpillers; and they shall lift up a +shout against thee. + +51:15 He hath made the earth by his power, he hath established the +world by his wisdom, and hath stretched out the heaven by his +understanding. + +51:16 When he uttereth his voice, there is a multitude of waters in +the heavens; and he causeth the vapours to ascend from the ends of the +earth: he maketh lightnings with rain, and bringeth forth the wind out +of his treasures. + +51:17 Every man is brutish by his knowledge; every founder is +confounded by the graven image: for his molten image is falsehood, and +there is no breath in them. + +51:18 They are vanity, the work of errors: in the time of their +visitation they shall perish. + +51:19 The portion of Jacob is not like them; for he is the former of +all things: and Israel is the rod of his inheritance: the LORD of +hosts is his name. + +51:20 Thou art my battle axe and weapons of war: for with thee will I +break in pieces the nations, and with thee will I destroy kingdoms; +51:21 And with thee will I break in pieces the horse and his rider; +and with thee will I break in pieces the chariot and his rider; 51:22 +With thee also will I break in pieces man and woman; and with thee +will I break in pieces old and young; and with thee will I break in +pieces the young man and the maid; 51:23 I will also break in pieces +with thee the shepherd and his flock; and with thee will I break in +pieces the husbandman and his yoke of oxen; and with thee will I break +in pieces captains and rulers. + +51:24 And I will render unto Babylon and to all the inhabitants of +Chaldea all their evil that they have done in Zion in your sight, +saith the LORD. + +51:25 Behold, I am against thee, O destroying mountain, saith the +LORD, which destroyest all the earth: and I will stretch out mine hand +upon thee, and roll thee down from the rocks, and will make thee a +burnt mountain. + +51:26 And they shall not take of thee a stone for a corner, nor a +stone for foundations; but thou shalt be desolate for ever, saith the +LORD. + +51:27 Set ye up a standard in the land, blow the trumpet among the +nations, prepare the nations against her, call together against her +the kingdoms of Ararat, Minni, and Ashchenaz; appoint a captain +against her; cause the horses to come up as the rough caterpillers. + +51:28 Prepare against her the nations with the kings of the Medes, the +captains thereof, and all the rulers thereof, and all the land of his +dominion. + +51:29 And the land shall tremble and sorrow: for every purpose of the +LORD shall be performed against Babylon, to make the land of Babylon a +desolation without an inhabitant. + +51:30 The mighty men of Babylon have forborn to fight, they have +remained in their holds: their might hath failed; they became as +women: they have burned her dwellingplaces; her bars are broken. + +51:31 One post shall run to meet another, and one messenger to meet +another, to shew the king of Babylon that his city is taken at one +end, 51:32 And that the passages are stopped, and the reeds they have +burned with fire, and the men of war are affrighted. + +51:33 For thus saith the LORD of hosts, the God of Israel; The +daughter of Babylon is like a threshingfloor, it is time to thresh +her: yet a little while, and the time of her harvest shall come. + +51:34 Nebuchadrezzar the king of Babylon hath devoured me, he hath +crushed me, he hath made me an empty vessel, he hath swallowed me up +like a dragon, he hath filled his belly with my delicates, he hath +cast me out. + +51:35 The violence done to me and to my flesh be upon Babylon, shall +the inhabitant of Zion say; and my blood upon the inhabitants of +Chaldea, shall Jerusalem say. + +51:36 Therefore thus saith the LORD; Behold, I will plead thy cause, +and take vengeance for thee; and I will dry up her sea, and make her +springs dry. + +51:37 And Babylon shall become heaps, a dwellingplace for dragons, an +astonishment, and an hissing, without an inhabitant. + +51:38 They shall roar together like lions: they shall yell as lions' +whelps. + +51:39 In their heat I will make their feasts, and I will make them +drunken, that they may rejoice, and sleep a perpetual sleep, and not +wake, saith the LORD. + +51:40 I will bring them down like lambs to the slaughter, like rams +with he goats. + +51:41 How is Sheshach taken! and how is the praise of the whole earth +surprised! how is Babylon become an astonishment among the nations! +51:42 The sea is come up upon Babylon: she is covered with the +multitude of the waves thereof. + +51:43 Her cities are a desolation, a dry land, and a wilderness, a +land wherein no man dwelleth, neither doth any son of man pass +thereby. + +51:44 And I will punish Bel in Babylon, and I will bring forth out of +his mouth that which he hath swallowed up: and the nations shall not +flow together any more unto him: yea, the wall of Babylon shall fall. + +51:45 My people, go ye out of the midst of her, and deliver ye every +man his soul from the fierce anger of the LORD. + +51:46 And lest your heart faint, and ye fear for the rumour that shall +be heard in the land; a rumour shall both come one year, and after +that in another year shall come a rumour, and violence in the land, +ruler against ruler. + +51:47 Therefore, behold, the days come, that I will do judgment upon +the graven images of Babylon: and her whole land shall be confounded, +and all her slain shall fall in the midst of her. + +51:48 Then the heaven and the earth, and all that is therein, shall +sing for Babylon: for the spoilers shall come unto her from the north, +saith the LORD. + +51:49 As Babylon hath caused the slain of Israel to fall, so at +Babylon shall fall the slain of all the earth. + +51:50 Ye that have escaped the sword, go away, stand not still: +remember the LORD afar off, and let Jerusalem come into your mind. + +51:51 We are confounded, because we have heard reproach: shame hath +covered our faces: for strangers are come into the sanctuaries of the +LORD's house. + +51:52 Wherefore, behold, the days come, saith the LORD, that I will do +judgment upon her graven images: and through all her land the wounded +shall groan. + +51:53 Though Babylon should mount up to heaven, and though she should +fortify the height of her strength, yet from me shall spoilers come +unto her, saith the LORD. + +51:54 A sound of a cry cometh from Babylon, and great destruction from +the land of the Chaldeans: 51:55 Because the LORD hath spoiled +Babylon, and destroyed out of her the great voice; when her waves do +roar like great waters, a noise of their voice is uttered: 51:56 +Because the spoiler is come upon her, even upon Babylon, and her +mighty men are taken, every one of their bows is broken: for the LORD +God of recompences shall surely requite. + +51:57 And I will make drunk her princes, and her wise men, her +captains, and her rulers, and her mighty men: and they shall sleep a +perpetual sleep, and not wake, saith the King, whose name is the LORD +of hosts. + +51:58 Thus saith the LORD of hosts; The broad walls of Babylon shall +be utterly broken, and her high gates shall be burned with fire; and +the people shall labour in vain, and the folk in the fire, and they +shall be weary. + +51:59 The word which Jeremiah the prophet commanded Seraiah the son of +Neriah, the son of Maaseiah, when he went with Zedekiah the king of +Judah into Babylon in the fourth year of his reign. And this Seraiah +was a quiet prince. + +51:60 So Jeremiah wrote in a book all the evil that should come upon +Babylon, even all these words that are written against Babylon. + +51:61 And Jeremiah said to Seraiah, When thou comest to Babylon, and +shalt see, and shalt read all these words; 51:62 Then shalt thou say, +O LORD, thou hast spoken against this place, to cut it off, that none +shall remain in it, neither man nor beast, but that it shall be +desolate for ever. + +51:63 And it shall be, when thou hast made an end of reading this +book, that thou shalt bind a stone to it, and cast it into the midst +of Euphrates: 51:64 And thou shalt say, Thus shall Babylon sink, and +shall not rise from the evil that I will bring upon her: and they +shall be weary. Thus far are the words of Jeremiah. + +52:1 Zedekiah was one and twenty years old when he began to reign, and +he reigned eleven years in Jerusalem. And his mother's name was +Hamutal the daughter of Jeremiah of Libnah. + +52:2 And he did that which was evil in the eyes of the LORD, according +to all that Jehoiakim had done. + +52:3 For through the anger of the LORD it came to pass in Jerusalem +and Judah, till he had cast them out from his presence, that Zedekiah +rebelled against the king of Babylon. + +52:4 And it came to pass in the ninth year of his reign, in the tenth +month, in the tenth day of the month, that Nebuchadrezzar king of +Babylon came, he and all his army, against Jerusalem, and pitched +against it, and built forts against it round about. + +52:5 So the city was besieged unto the eleventh year of king Zedekiah. + +52:6 And in the fourth month, in the ninth day of the month, the +famine was sore in the city, so that there was no bread for the people +of the land. + +52:7 Then the city was broken up, and all the men of war fled, and +went forth out of the city by night by the way of the gate between the +two walls, which was by the king's garden; (now the Chaldeans were by +the city round about:) and they went by the way of the plain. + +52:8 But the army of the Chaldeans pursued after the king, and +overtook Zedekiah in the plains of Jericho; and all his army was +scattered from him. + +52:9 Then they took the king, and carried him up unto the king of +Babylon to Riblah in the land of Hamath; where he gave judgment upon +him. + +52:10 And the king of Babylon slew the sons of Zedekiah before his +eyes: he slew also all the princes of Judah in Riblah. + +52:11 Then he put out the eyes of Zedekiah; and the king of Babylon +bound him in chains, and carried him to Babylon, and put him in prison +till the day of his death. + +52:12 Now in the fifth month, in the tenth day of the month, which was +the nineteenth year of Nebuchadrezzar king of Babylon, came +Nebuzaradan, captain of the guard, which served the king of Babylon, +into Jerusalem, 52:13 And burned the house of the LORD, and the king's +house; and all the houses of Jerusalem, and all the houses of the +great men, burned he with fire: 52:14 And all the army of the +Chaldeans, that were with the captain of the guard, brake down all the +walls of Jerusalem round about. + +52:15 Then Nebuzaradan the captain of the guard carried away captive +certain of the poor of the people, and the residue of the people that +remained in the city, and those that fell away, that fell to the king +of Babylon, and the rest of the multitude. + +52:16 But Nebuzaradan the captain of the guard left certain of the +poor of the land for vinedressers and for husbandmen. + +52:17 Also the pillars of brass that were in the house of the LORD, +and the bases, and the brasen sea that was in the house of the LORD, +the Chaldeans brake, and carried all the brass of them to Babylon. + +52:18 The caldrons also, and the shovels, and the snuffers, and the +bowls, and the spoons, and all the vessels of brass wherewith they +ministered, took they away. + +52:19 And the basons, and the firepans, and the bowls, and the +caldrons, and the candlesticks, and the spoons, and the cups; that +which was of gold in gold, and that which was of silver in silver, +took the captain of the guard away. + +52:20 The two pillars, one sea, and twelve brasen bulls that were +under the bases, which king Solomon had made in the house of the LORD: +the brass of all these vessels was without weight. + +52:21 And concerning the pillars, the height of one pillar was +eighteen cubits; and a fillet of twelve cubits did compass it; and the +thickness thereof was four fingers: it was hollow. + +52:22 And a chapiter of brass was upon it; and the height of one +chapiter was five cubits, with network and pomegranates upon the +chapiters round about, all of brass. The second pillar also and the +pomegranates were like unto these. + +52:23 And there were ninety and six pomegranates on a side; and all +the pomegranates upon the network were an hundred round about. + +52:24 And the captain of the guard took Seraiah the chief priest, and +Zephaniah the second priest, and the three keepers of the door: 52:25 +He took also out of the city an eunuch, which had the charge of the +men of war; and seven men of them that were near the king's person, +which were found in the city; and the principal scribe of the host, +who mustered the people of the land; and threescore men of the people +of the land, that were found in the midst of the city. + +52:26 So Nebuzaradan the captain of the guard took them, and brought +them to the king of Babylon to Riblah. + +52:27 And the king of Babylon smote them, and put them to death in +Riblah in the land of Hamath. Thus Judah was carried away captive out +of his own land. + +52:28 This is the people whom Nebuchadrezzar carried away captive: in +the seventh year three thousand Jews and three and twenty: 52:29 In +the eighteenth year of Nebuchadrezzar he carried away captive from +Jerusalem eight hundred thirty and two persons: 52:30 In the three and +twentieth year of Nebuchadrezzar Nebuzaradan the captain of the guard +carried away captive of the Jews seven hundred forty and five persons: +all the persons were four thousand and six hundred. + +52:31 And it came to pass in the seven and thirtieth year of the +captivity of Jehoiachin king of Judah, in the twelfth month, in the +five and twentieth day of the month, that Evilmerodach king of Babylon +in the first year of his reign lifted up the head of Jehoiachin king +of Judah, and brought him forth out of prison. + +52:32 And spake kindly unto him, and set his throne above the throne +of the kings that were with him in Babylon, 52:33 And changed his +prison garments: and he did continually eat bread before him all the +days of his life. + +52:34 And for his diet, there was a continual diet given him of the +king of Babylon, every day a portion until the day of his death, all +the days of his life. + + + + +The Lamentations of Jeremiah + + +1:1 How doth the city sit solitary, that was full of people! how is +she become as a widow! she that was great among the nations, and +princess among the provinces, how is she become tributary! 1:2 She +weepeth sore in the night, and her tears are on her cheeks: among all +her lovers she hath none to comfort her: all her friends have dealt +treacherously with her, they are become her enemies. + +1:3 Judah is gone into captivity because of affliction, and because of +great servitude: she dwelleth among the heathen, she findeth no rest: +all her persecutors overtook her between the straits. + +1:4 The ways of Zion do mourn, because none come to the solemn feasts: +all her gates are desolate: her priests sigh, her virgins are +afflicted, and she is in bitterness. + +1:5 Her adversaries are the chief, her enemies prosper; for the LORD +hath afflicted her for the multitude of her transgressions: her +children are gone into captivity before the enemy. + +1:6 And from the daughter of Zion all her beauty is departed: her +princes are become like harts that find no pasture, and they are gone +without strength before the pursuer. + +1:7 Jerusalem remembered in the days of her affliction and of her +miseries all her pleasant things that she had in the days of old, when +her people fell into the hand of the enemy, and none did help her: the +adversaries saw her, and did mock at her sabbaths. + +1:8 Jerusalem hath grievously sinned; therefore she is removed: all +that honoured her despise her, because they have seen her nakedness: +yea, she sigheth, and turneth backward. + +1:9 Her filthiness is in her skirts; she remembereth not her last end; +therefore she came down wonderfully: she had no comforter. O LORD, +behold my affliction: for the enemy hath magnified himself. + +1:10 The adversary hath spread out his hand upon all her pleasant +things: for she hath seen that the heathen entered into her sanctuary, +whom thou didst command that they should not enter into thy +congregation. + +1:11 All her people sigh, they seek bread; they have given their +pleasant things for meat to relieve the soul: see, O LORD, and +consider; for I am become vile. + +1:12 Is it nothing to you, all ye that pass by? behold, and see if +there be any sorrow like unto my sorrow, which is done unto me, +wherewith the LORD hath afflicted me in the day of his fierce anger. + +1:13 From above hath he sent fire into my bones, and it prevaileth +against them: he hath spread a net for my feet, he hath turned me +back: he hath made me desolate and faint all the day. + +1:14 The yoke of my transgressions is bound by his hand: they are +wreathed, and come up upon my neck: he hath made my strength to fall, +the LORD hath delivered me into their hands, from whom I am not able +to rise up. + +1:15 The LORD hath trodden under foot all my mighty men in the midst +of me: he hath called an assembly against me to crush my young men: +the LORD hath trodden the virgin, the daughter of Judah, as in a +winepress. + +1:16 For these things I weep; mine eye, mine eye runneth down with +water, because the comforter that should relieve my soul is far from +me: my children are desolate, because the enemy prevailed. + +1:17 Zion spreadeth forth her hands, and there is none to comfort her: +the LORD hath commanded concerning Jacob, that his adversaries should +be round about him: Jerusalem is as a menstruous woman among them. + +1:18 The LORD is righteous; for I have rebelled against his +commandment: hear, I pray you, all people, and behold my sorrow: my +virgins and my young men are gone into captivity. + +1:19 I called for my lovers, but they deceived me: my priests and mine +elders gave up the ghost in the city, while they sought their meat to +relieve their souls. + +1:20 Behold, O LORD; for I am in distress: my bowels are troubled; +mine heart is turned within me; for I have grievously rebelled: abroad +the sword bereaveth, at home there is as death. + +1:21 They have heard that I sigh: there is none to comfort me: all +mine enemies have heard of my trouble; they are glad that thou hast +done it: thou wilt bring the day that thou hast called, and they shall +be like unto me. + +1:22 Let all their wickedness come before thee; and do unto them, as +thou hast done unto me for all my transgressions: for my sighs are +many, and my heart is faint. + +2:1 How hath the LORD covered the daughter of Zion with a cloud in his +anger, and cast down from heaven unto the earth the beauty of Israel, +and remembered not his footstool in the day of his anger! 2:2 The +LORD hath swallowed up all the habitations of Jacob, and hath not +pitied: he hath thrown down in his wrath the strong holds of the +daughter of Judah; he hath brought them down to the ground: he hath +polluted the kingdom and the princes thereof. + +2:3 He hath cut off in his fierce anger all the horn of Israel: he +hath drawn back his right hand from before the enemy, and he burned +against Jacob like a flaming fire, which devoureth round about. + +2:4 He hath bent his bow like an enemy: he stood with his right hand +as an adversary, and slew all that were pleasant to the eye in the +tabernacle of the daughter of Zion: he poured out his fury like fire. + +2:5 The LORD was as an enemy: he hath swallowed up Israel, he hath +swallowed up all her palaces: he hath destroyed his strong holds, and +hath increased in the daughter of Judah mourning and lamentation. + +2:6 And he hath violently taken away his tabernacle, as if it were of +a garden: he hath destroyed his places of the assembly: the LORD hath +caused the solemn feasts and sabbaths to be forgotten in Zion, and +hath despised in the indignation of his anger the king and the priest. + +2:7 The LORD hath cast off his altar, he hath abhorred his sanctuary, +he hath given up into the hand of the enemy the walls of her palaces; +they have made a noise in the house of the LORD, as in the day of a +solemn feast. + +2:8 The LORD hath purposed to destroy the wall of the daughter of +Zion: he hath stretched out a line, he hath not withdrawn his hand +from destroying: therefore he made the rampart and the wall to lament; +they languished together. + +2:9 Her gates are sunk into the ground; he hath destroyed and broken +her bars: her king and her princes are among the Gentiles: the law is +no more; her prophets also find no vision from the LORD. + +2:10 The elders of the daughter of Zion sit upon the ground, and keep +silence: they have cast up dust upon their heads; they have girded +themselves with sackcloth: the virgins of Jerusalem hang down their +heads to the ground. + +2:11 Mine eyes do fail with tears, my bowels are troubled, my liver is +poured upon the earth, for the destruction of the daughter of my +people; because the children and the sucklings swoon in the streets of +the city. + +2:12 They say to their mothers, Where is corn and wine? when they +swooned as the wounded in the streets of the city, when their soul was +poured out into their mothers' bosom. + +2:13 What thing shall I take to witness for thee? what thing shall I +liken to thee, O daughter of Jerusalem? what shall I equal to thee, +that I may comfort thee, O virgin daughter of Zion? for thy breach is +great like the sea: who can heal thee? 2:14 Thy prophets have seen +vain and foolish things for thee: and they have not discovered thine +iniquity, to turn away thy captivity; but have seen for thee false +burdens and causes of banishment. + +2:15 All that pass by clap their hands at thee; they hiss and wag +their head at the daughter of Jerusalem, saying, Is this the city that +men call The perfection of beauty, The joy of the whole earth? 2:16 +All thine enemies have opened their mouth against thee: they hiss and +gnash the teeth: they say, We have swallowed her up: certainly this is +the day that we looked for; we have found, we have seen it. + +2:17 The LORD hath done that which he had devised; he hath fulfilled +his word that he had commanded in the days of old: he hath thrown +down, and hath not pitied: and he hath caused thine enemy to rejoice +over thee, he hath set up the horn of thine adversaries. + +2:18 Their heart cried unto the LORD, O wall of the daughter of Zion, +let tears run down like a river day and night: give thyself no rest; +let not the apple of thine eye cease. + +2:19 Arise, cry out in the night: in the beginning of the watches pour +out thine heart like water before the face of the LORD: lift up thy +hands toward him for the life of thy young children, that faint for +hunger in the top of every street. + +2:20 Behold, O LORD, and consider to whom thou hast done this. Shall +the women eat their fruit, and children of a span long? shall the +priest and the prophet be slain in the sanctuary of the Lord? 2:21 +The young and the old lie on the ground in the streets: my virgins and +my young men are fallen by the sword; thou hast slain them in the day +of thine anger; thou hast killed, and not pitied. + +2:22 Thou hast called as in a solemn day my terrors round about, so +that in the day of the LORD's anger none escaped nor remained: those +that I have swaddled and brought up hath mine enemy consumed. + +3:1 I AM the man that hath seen affliction by the rod of his wrath. + +3:2 He hath led me, and brought me into darkness, but not into light. + +3:3 Surely against me is he turned; he turneth his hand against me all +the day. + +3:4 My flesh and my skin hath he made old; he hath broken my bones. + +3:5 He hath builded against me, and compassed me with gall and +travail. + +3:6 He hath set me in dark places, as they that be dead of old. + +3:7 He hath hedged me about, that I cannot get out: he hath made my +chain heavy. + +3:8 Also when I cry and shout, he shutteth out my prayer. + +3:9 He hath inclosed my ways with hewn stone, he hath made my paths +crooked. + +3:10 He was unto me as a bear lying in wait, and as a lion in secret +places. + +3:11 He hath turned aside my ways, and pulled me in pieces: he hath +made me desolate. + +3:12 He hath bent his bow, and set me as a mark for the arrow. + +3:13 He hath caused the arrows of his quiver to enter into my reins. + +3:14 I was a derision to all my people; and their song all the day. + +3:15 He hath filled me with bitterness, he hath made me drunken with +wormwood. + +3:16 He hath also broken my teeth with gravel stones, he hath covered +me with ashes. + +3:17 And thou hast removed my soul far off from peace: I forgat +prosperity. + +3:18 And I said, My strength and my hope is perished from the LORD: +3:19 Remembering mine affliction and my misery, the wormwood and the +gall. + +3:20 My soul hath them still in remembrance, and is humbled in me. + +3:21 This I recall to my mind, therefore have I hope. + +3:22 It is of the LORD's mercies that we are not consumed, because his +compassions fail not. + +3:23 They are new every morning: great is thy faithfulness. + +3:24 The LORD is my portion, saith my soul; therefore will I hope in +him. + +3:25 The LORD is good unto them that wait for him, to the soul that +seeketh him. + +3:26 It is good that a man should both hope and quietly wait for the +salvation of the LORD. + +3:27 It is good for a man that he bear the yoke of his youth. + +3:28 He sitteth alone and keepeth silence, because he hath borne it +upon him. + +3:29 He putteth his mouth in the dust; if so be there may be hope. + +3:30 He giveth his cheek to him that smiteth him: he is filled full +with reproach. + +3:31 For the LORD will not cast off for ever: 3:32 But though he cause +grief, yet will he have compassion according to the multitude of his +mercies. + +3:33 For he doth not afflict willingly nor grieve the children of men. + +3:34 To crush under his feet all the prisoners of the earth. + +3:35 To turn aside the right of a man before the face of the most +High, 3:36 To subvert a man in his cause, the LORD approveth not. + +3:37 Who is he that saith, and it cometh to pass, when the Lord +commandeth it not? 3:38 Out of the mouth of the most High proceedeth +not evil and good? 3:39 Wherefore doth a living man complain, a man +for the punishment of his sins? 3:40 Let us search and try our ways, +and turn again to the LORD. + +3:41 Let us lift up our heart with our hands unto God in the heavens. + +3:42 We have transgressed and have rebelled: thou hast not pardoned. + +3:43 Thou hast covered with anger, and persecuted us: thou hast slain, +thou hast not pitied. + +3:44 Thou hast covered thyself with a cloud, that our prayer should +not pass through. + +3:45 Thou hast made us as the offscouring and refuse in the midst of +the people. + +3:46 All our enemies have opened their mouths against us. + +3:47 Fear and a snare is come upon us, desolation and destruction. + +3:48 Mine eye runneth down with rivers of water for the destruction of +the daughter of my people. + +3:49 Mine eye trickleth down, and ceaseth not, without any +intermission. + +3:50 Till the LORD look down, and behold from heaven. + +3:51 Mine eye affecteth mine heart because of all the daughters of my +city. + +3:52 Mine enemies chased me sore, like a bird, without cause. + +3:53 They have cut off my life in the dungeon, and cast a stone upon +me. + +3:54 Waters flowed over mine head; then I said, I am cut off. + +3:55 I called upon thy name, O LORD, out of the low dungeon. + +3:56 Thou hast heard my voice: hide not thine ear at my breathing, at +my cry. + +3:57 Thou drewest near in the day that I called upon thee: thou +saidst, Fear not. + +3:58 O LORD, thou hast pleaded the causes of my soul; thou hast +redeemed my life. + +3:59 O LORD, thou hast seen my wrong: judge thou my cause. + +3:60 Thou hast seen all their vengeance and all their imaginations +against me. + +3:61 Thou hast heard their reproach, O LORD, and all their +imaginations against me; 3:62 The lips of those that rose up against +me, and their device against me all the day. + +3:63 Behold their sitting down, and their rising up; I am their +musick. + +3:64 Render unto them a recompence, O LORD, according to the work of +their hands. + +3:65 Give them sorrow of heart, thy curse unto them. + +3:66 Persecute and destroy them in anger from under the heavens of the +LORD. + +4:1 How is the gold become dim! how is the most fine gold changed! the +stones of the sanctuary are poured out in the top of every street. + +4:2 The precious sons of Zion, comparable to fine gold, how are they +esteemed as earthen pitchers, the work of the hands of the potter! +4:3 Even the sea monsters draw out the breast, they give suck to their +young ones: the daughter of my people is become cruel, like the +ostriches in the wilderness. + +4:4 The tongue of the sucking child cleaveth to the roof of his mouth +for thirst: the young children ask bread, and no man breaketh it unto +them. + +4:5 They that did feed delicately are desolate in the streets: they +that were brought up in scarlet embrace dunghills. + +4:6 For the punishment of the iniquity of the daughter of my people is +greater than the punishment of the sin of Sodom, that was overthrown +as in a moment, and no hands stayed on her. + +4:7 Her Nazarites were purer than snow, they were whiter than milk, +they were more ruddy in body than rubies, their polishing was of +sapphire: 4:8 Their visage is blacker than a coal; they are not known +in the streets: their skin cleaveth to their bones; it is withered, it +is become like a stick. + +4:9 They that be slain with the sword are better than they that be +slain with hunger: for these pine away, stricken through for want of +the fruits of the field. + +4:10 The hands of the pitiful women have sodden their own children: +they were their meat in the destruction of the daughter of my people. + +4:11 The LORD hath accomplished his fury; he hath poured out his +fierce anger, and hath kindled a fire in Zion, and it hath devoured +the foundations thereof. + +4:12 The kings of the earth, and all the inhabitants of the world, +would not have believed that the adversary and the enemy should have +entered into the gates of Jerusalem. + +4:13 For the sins of her prophets, and the iniquities of her priests, +that have shed the blood of the just in the midst of her, 4:14 They +have wandered as blind men in the streets, they have polluted +themselves with blood, so that men could not touch their garments. + +4:15 They cried unto them, Depart ye; it is unclean; depart, depart, +touch not: when they fled away and wandered, they said among the +heathen, They shall no more sojourn there. + +4:16 The anger of the LORD hath divided them; he will no more regard +them: they respected not the persons of the priests, they favoured not +the elders. + +4:17 As for us, our eyes as yet failed for our vain help: in our +watching we have watched for a nation that could not save us. + +4:18 They hunt our steps, that we cannot go in our streets: our end is +near, our days are fulfilled; for our end is come. + +4:19 Our persecutors are swifter than the eagles of the heaven: they +pursued us upon the mountains, they laid wait for us in the +wilderness. + +4:20 The breath of our nostrils, the anointed of the LORD, was taken +in their pits, of whom we said, Under his shadow we shall live among +the heathen. + +4:21 Rejoice and be glad, O daughter of Edom, that dwellest in the +land of Uz; the cup also shall pass through unto thee: thou shalt be +drunken, and shalt make thyself naked. + +4:22 The punishment of thine iniquity is accomplished, O daughter of +Zion; he will no more carry thee away into captivity: he will visit +thine iniquity, O daughter of Edom; he will discover thy sins. + +5:1 Remember, O LORD, what is come upon us: consider, and behold our +reproach. + +5:2 Our inheritance is turned to strangers, our houses to aliens. + +5:3 We are orphans and fatherless, our mothers are as widows. + +5:4 We have drunken our water for money; our wood is sold unto us. + +5:5 Our necks are under persecution: we labour, and have no rest. + +5:6 We have given the hand to the Egyptians, and to the Assyrians, to +be satisfied with bread. + +5:7 Our fathers have sinned, and are not; and we have borne their +iniquities. + +5:8 Servants have ruled over us: there is none that doth deliver us +out of their hand. + +5:9 We gat our bread with the peril of our lives because of the sword +of the wilderness. + +5:10 Our skin was black like an oven because of the terrible famine. + +5:11 They ravished the women in Zion, and the maids in the cities of +Judah. + +5:12 Princes are hanged up by their hand: the faces of elders were not +honoured. + +5:13 They took the young men to grind, and the children fell under the +wood. + +5:14 The elders have ceased from the gate, the young men from their +musick. + +5:15 The joy of our heart is ceased; our dance is turned into +mourning. + +5:16 The crown is fallen from our head: woe unto us, that we have +sinned! 5:17 For this our heart is faint; for these things our eyes +are dim. + +5:18 Because of the mountain of Zion, which is desolate, the foxes +walk upon it. + +5:19 Thou, O LORD, remainest for ever; thy throne from generation to +generation. + +5:20 Wherefore dost thou forget us for ever, and forsake us so long +time? 5:21 Turn thou us unto thee, O LORD, and we shall be turned; +renew our days as of old. + +5:22 But thou hast utterly rejected us; thou art very wroth against us. + + + + +The Book of the Prophet Ezekiel + + +1:1 Now it came to pass in the thirtieth year, in the fourth month, +in the fifth day of the month, as I was among the captives by the river +of Chebar, that the heavens were opened, and I saw visions of God. + +1:2 In the fifth day of the month, which was the fifth year of king +Jehoiachin's captivity, 1:3 The word of the LORD came expressly unto +Ezekiel the priest, the son of Buzi, in the land of the Chaldeans by +the river Chebar; and the hand of the LORD was there upon him. + +1:4 And I looked, and, behold, a whirlwind came out of the north, a +great cloud, and a fire infolding itself, and a brightness was about +it, and out of the midst thereof as the colour of amber, out of the +midst of the fire. + +1:5 Also out of the midst thereof came the likeness of four living +creatures. And this was their appearance; they had the likeness of a +man. + +1:6 And every one had four faces, and every one had four wings. + +1:7 And their feet were straight feet; and the sole of their feet was +like the sole of a calf's foot: and they sparkled like the colour of +burnished brass. + +1:8 And they had the hands of a man under their wings on their four +sides; and they four had their faces and their wings. + +1:9 Their wings were joined one to another; they turned not when they +went; they went every one straight forward. + +1:10 As for the likeness of their faces, they four had the face of a +man, and the face of a lion, on the right side: and they four had the +face of an ox on the left side; they four also had the face of an +eagle. + +1:11 Thus were their faces: and their wings were stretched upward; two +wings of every one were joined one to another, and two covered their +bodies. + +1:12 And they went every one straight forward: whither the spirit was +to go, they went; and they turned not when they went. + +1:13 As for the likeness of the living creatures, their appearance was +like burning coals of fire, and like the appearance of lamps: it went +up and down among the living creatures; and the fire was bright, and +out of the fire went forth lightning. + +1:14 And the living creatures ran and returned as the appearance of a +flash of lightning. + +1:15 Now as I beheld the living creatures, behold one wheel upon the +earth by the living creatures, with his four faces. + +1:16 The appearance of the wheels and their work was like unto the +colour of a beryl: and they four had one likeness: and their +appearance and their work was as it were a wheel in the middle of a +wheel. + +1:17 When they went, they went upon their four sides: and they turned +not when they went. + +1:18 As for their rings, they were so high that they were dreadful; +and their rings were full of eyes round about them four. + +1:19 And when the living creatures went, the wheels went by them: and +when the living creatures were lifted up from the earth, the wheels +were lifted up. + +1:20 Whithersoever the spirit was to go, they went, thither was their +spirit to go; and the wheels were lifted up over against them: for the +spirit of the living creature was in the wheels. + +1:21 When those went, these went; and when those stood, these stood; +and when those were lifted up from the earth, the wheels were lifted +up over against them: for the spirit of the living creature was in the +wheels. + +1:22 And the likeness of the firmament upon the heads of the living +creature was as the colour of the terrible crystal, stretched forth +over their heads above. + +1:23 And under the firmament were their wings straight, the one toward +the other: every one had two, which covered on this side, and every +one had two, which covered on that side, their bodies. + +1:24 And when they went, I heard the noise of their wings, like the +noise of great waters, as the voice of the Almighty, the voice of +speech, as the noise of an host: when they stood, they let down their +wings. + +1:25 And there was a voice from the firmament that was over their +heads, when they stood, and had let down their wings. + +1:26 And above the firmament that was over their heads was the +likeness of a throne, as the appearance of a sapphire stone: and upon +the likeness of the throne was the likeness as the appearance of a man +above upon it. + +1:27 And I saw as the colour of amber, as the appearance of fire round +about within it, from the appearance of his loins even upward, and +from the appearance of his loins even downward, I saw as it were the +appearance of fire, and it had brightness round about. + +1:28 As the appearance of the bow that is in the cloud in the day of +rain, so was the appearance of the brightness round about. This was +the appearance of the likeness of the glory of the LORD. And when I +saw it, I fell upon my face, and I heard a voice of one that spake. + +2:1 And he said unto me, Son of man, stand upon thy feet, and I will +speak unto thee. + +2:2 And the spirit entered into me when he spake unto me, and set me +upon my feet, that I heard him that spake unto me. + +2:3 And he said unto me, Son of man, I send thee to the children of +Israel, to a rebellious nation that hath rebelled against me: they and +their fathers have transgressed against me, even unto this very day. + +2:4 For they are impudent children and stiffhearted. I do send thee +unto them; and thou shalt say unto them, Thus saith the Lord GOD. + +2:5 And they, whether they will hear, or whether they will forbear, +(for they are a rebellious house,) yet shall know that there hath been +a prophet among them. + +2:6 And thou, son of man, be not afraid of them, neither be afraid of +their words, though briers and thorns be with thee, and thou dost +dwell among scorpions: be not afraid of their words, nor be dismayed +at their looks, though they be a rebellious house. + +2:7 And thou shalt speak my words unto them, whether they will hear, +or whether they will forbear: for they are most rebellious. + +2:8 But thou, son of man, hear what I say unto thee; Be not thou +rebellious like that rebellious house: open thy mouth, and eat that I +give thee. + +2:9 And when I looked, behold, an hand was sent unto me; and, lo, a +roll of a book was therein; 2:10 And he spread it before me; and it +was written within and without: and there was written therein +lamentations, and mourning, and woe. + +3:1 Moreover he said unto me, Son of man, eat that thou findest; eat +this roll, and go speak unto the house of Israel. + +3:2 So I opened my mouth, and he caused me to eat that roll. + +3:3 And he said unto me, Son of man, cause thy belly to eat, and fill +thy bowels with this roll that I give thee. Then did I eat it; and it +was in my mouth as honey for sweetness. + +3:4 And he said unto me, Son of man, go, get thee unto the house of +Israel, and speak with my words unto them. + +3:5 For thou art not sent to a people of a strange speech and of an +hard language, but to the house of Israel; 3:6 Not to many people of a +strange speech and of an hard language, whose words thou canst not +understand. Surely, had I sent thee to them, they would have hearkened +unto thee. + +3:7 But the house of Israel will not hearken unto thee; for they will +not hearken unto me: for all the house of Israel are impudent and +hardhearted. + +3:8 Behold, I have made thy face strong against their faces, and thy +forehead strong against their foreheads. + +3:9 As an adamant harder than flint have I made thy forehead: fear +them not, neither be dismayed at their looks, though they be a +rebellious house. + +3:10 Moreover he said unto me, Son of man, all my words that I shall +speak unto thee receive in thine heart, and hear with thine ears. + +3:11 And go, get thee to them of the captivity, unto the children of +thy people, and speak unto them, and tell them, Thus saith the Lord +GOD; whether they will hear, or whether they will forbear. + +3:12 Then the spirit took me up, and I heard behind me a voice of a +great rushing, saying, Blessed be the glory of the LORD from his +place. + +3:13 I heard also the noise of the wings of the living creatures that +touched one another, and the noise of the wheels over against them, +and a noise of a great rushing. + +3:14 So the spirit lifted me up, and took me away, and I went in +bitterness, in the heat of my spirit; but the hand of the LORD was +strong upon me. + +3:15 Then I came to them of the captivity at Telabib, that dwelt by +the river of Chebar, and I sat where they sat, and remained there +astonished among them seven days. + +3:16 And it came to pass at the end of seven days, that the word of +the LORD came unto me, saying, 3:17 Son of man, I have made thee a +watchman unto the house of Israel: therefore hear the word at my +mouth, and give them warning from me. + +3:18 When I say unto the wicked, Thou shalt surely die; and thou +givest him not warning, nor speakest to warn the wicked from his +wicked way, to save his life; the same wicked man shall die in his +iniquity; but his blood will I require at thine hand. + +3:19 Yet if thou warn the wicked, and he turn not from his wickedness, +nor from his wicked way, he shall die in his iniquity; but thou hast +delivered thy soul. + +3:20 Again, When a righteous man doth turn from his righteousness, and +commit iniquity, and I lay a stumbling-block before him, he shall die: +because thou hast not given him warning, he shall die in his sin, and +his righteousness which he hath done shall not be remembered; but his +blood will I require at thine hand. + +3:21 Nevertheless if thou warn the righteous man, that the righteous +sin not, and he doth not sin, he shall surely live, because he is +warned; also thou hast delivered thy soul. + +3:22 And the hand of the LORD was there upon me; and he said unto me, +Arise, go forth into the plain, and I will there talk with thee. + +3:23 Then I arose, and went forth into the plain: and, behold, the +glory of the LORD stood there, as the glory which I saw by the river +of Chebar: and I fell on my face. + +3:24 Then the spirit entered into me, and set me upon my feet, and +spake with me, and said unto me, Go, shut thyself within thine house. + +3:25 But thou, O son of man, behold, they shall put bands upon thee, +and shall bind thee with them, and thou shalt not go out among them: +3:26 And I will make thy tongue cleave to the roof of thy mouth, that +thou shalt be dumb, and shalt not be to them a reprover: for they are +a rebellious house. + +3:27 But when I speak with thee, I will open thy mouth, and thou shalt +say unto them, Thus saith the Lord GOD; He that heareth, let him hear; +and he that forbeareth, let him forbear: for they are a rebellious +house. + +4:1 Thou also, son of man, take thee a tile, and lay it before thee, +and pourtray upon it the city, even Jerusalem: 4:2 And lay siege +against it, and build a fort against it, and cast a mount against it; +set the camp also against it, and set battering rams against it round +about. + +4:3 Moreover take thou unto thee an iron pan, and set it for a wall of +iron between thee and the city: and set thy face against it, and it +shall be besieged, and thou shalt lay siege against it. This shall be +a sign to the house of Israel. + +4:4 Lie thou also upon thy left side, and lay the iniquity of the +house of Israel upon it: according to the number of the days that thou +shalt lie upon it thou shalt bear their iniquity. + +4:5 For I have laid upon thee the years of their iniquity, according +to the number of the days, three hundred and ninety days: so shalt +thou bear the iniquity of the house of Israel. + +4:6 And when thou hast accomplished them, lie again on thy right side, +and thou shalt bear the iniquity of the house of Judah forty days: I +have appointed thee each day for a year. + +4:7 Therefore thou shalt set thy face toward the siege of Jerusalem, +and thine arm shall be uncovered, and thou shalt prophesy against it. + +4:8 And, behold, I will lay bands upon thee, and thou shalt not turn +thee from one side to another, till thou hast ended the days of thy +siege. + +4:9 Take thou also unto thee wheat, and barley, and beans, and +lentiles, and millet, and fitches, and put them in one vessel, and +make thee bread thereof, according to the number of the days that thou +shalt lie upon thy side, three hundred and ninety days shalt thou eat +thereof. + +4:10 And thy meat which thou shalt eat shall be by weight, twenty +shekels a day: from time to time shalt thou eat it. + +4:11 Thou shalt drink also water by measure, the sixth part of an hin: +from time to time shalt thou drink. + +4:12 And thou shalt eat it as barley cakes, and thou shalt bake it +with dung that cometh out of man, in their sight. + +4:13 And the LORD said, Even thus shall the children of Israel eat +their defiled bread among the Gentiles, whither I will drive them. + +4:14 Then said I, Ah Lord GOD! behold, my soul hath not been polluted: +for from my youth up even till now have I not eaten of that which +dieth of itself, or is torn in pieces; neither came there abominable +flesh into my mouth. + +4:15 Then he said unto me, Lo, I have given thee cow's dung for man's +dung, and thou shalt prepare thy bread therewith. + +4:16 Moreover he said unto me, Son of man, behold, I will break the +staff of bread in Jerusalem: and they shall eat bread by weight, and +with care; and they shall drink water by measure, and with +astonishment: 4:17 That they may want bread and water, and be astonied +one with another, and consume away for their iniquity. + +5:1 And thou, son of man, take thee a sharp knife, take thee a +barber's razor, and cause it to pass upon thine head and upon thy +beard: then take thee balances to weigh, and divide the hair. + +5:2 Thou shalt burn with fire a third part in the midst of the city, +when the days of the siege are fulfilled: and thou shalt take a third +part, and smite about it with a knife: and a third part thou shalt +scatter in the wind; and I will draw out a sword after them. + +5:3 Thou shalt also take thereof a few in number, and bind them in thy +skirts. + +5:4 Then take of them again, and cast them into the midst of the fire, +and burn them in the fire; for thereof shall a fire come forth into +all the house of Israel. + +5:5 Thus saith the Lord GOD; This is Jerusalem: I have set it in the +midst of the nations and countries that are round about her. + +5:6 And she hath changed my judgments into wickedness more than the +nations, and my statutes more than the countries that are round about +her: for they have refused my judgments and my statutes, they have not +walked in them. + +5:7 Therefore thus saith the Lord GOD; Because ye multiplied more than +the nations that are round about you, and have not walked in my +statutes, neither have kept my judgments, neither have done according +to the judgments of the nations that are round about you; 5:8 +Therefore thus saith the Lord GOD; Behold, I, even I, am against thee, +and will execute judgments in the midst of thee in the sight of the +nations. + +5:9 And I will do in thee that which I have not done, and whereunto I +will not do any more the like, because of all thine abominations. + +5:10 Therefore the fathers shall eat the sons in the midst of thee, +and the sons shall eat their fathers; and I will execute judgments in +thee, and the whole remnant of thee will I scatter into all the winds. + +5:11 Wherefore, as I live, saith the Lord GOD; Surely, because thou +hast defiled my sanctuary with all thy detestable things, and with all +thine abominations, therefore will I also diminish thee; neither shall +mine eye spare, neither will I have any pity. + +5:12 A third part of thee shall die with the pestilence, and with +famine shall they be consumed in the midst of thee: and a third part +shall fall by the sword round about thee; and I will scatter a third +part into all the winds, and I will draw out a sword after them. + +5:13 Thus shall mine anger be accomplished, and I will cause my fury +to rest upon them, and I will be comforted: and they shall know that I +the LORD have spoken it in my zeal, when I have accomplished my fury +in them. + +5:14 Moreover I will make thee waste, and a reproach among the nations +that are round about thee, in the sight of all that pass by. + +5:15 So it shall be a reproach and a taunt, an instruction and an +astonishment unto the nations that are round about thee, when I shall +execute judgments in thee in anger and in fury and in furious rebukes. +I the LORD have spoken it. + +5:16 When I shall send upon them the evil arrows of famine, which +shall be for their destruction, and which I will send to destroy you: +and I will increase the famine upon you, and will break your staff of +bread: 5:17 So will I send upon you famine and evil beasts, and they +shall bereave thee: and pestilence and blood shall pass through thee; +and I will bring the sword upon thee. I the LORD have spoken it. + +6:1 And the word of the LORD came unto me, saying, 6:2 Son of man, set +thy face toward the mountains of Israel, and prophesy against them, +6:3 And say, Ye mountains of Israel, hear the word of the Lord GOD; +Thus saith the Lord GOD to the mountains, and to the hills, to the +rivers, and to the valleys; Behold, I, even I, will bring a sword upon +you, and I will destroy your high places. + +6:4 And your altars shall be desolate, and your images shall be +broken: and I will cast down your slain men before your idols. + +6:5 And I will lay the dead carcases of the children of Israel before +their idols; and I will scatter your bones round about your altars. + +6:6 In all your dwellingplaces the cities shall be laid waste, and the +high places shall be desolate; that your altars may be laid waste and +made desolate, and your idols may be broken and cease, and your images +may be cut down, and your works may be abolished. + +6:7 And the slain shall fall in the midst of you, and ye shall know +that I am the LORD. + +6:8 Yet will I leave a remnant, that ye may have some that shall +escape the sword among the nations, when ye shall be scattered through +the countries. + +6:9 And they that escape of you shall remember me among the nations +whither they shall be carried captives, because I am broken with their +whorish heart, which hath departed from me, and with their eyes, which +go a whoring after their idols: and they shall lothe themselves for +the evils which they have committed in all their abominations. + +6:10 And they shall know that I am the LORD, and that I have not said +in vain that I would do this evil unto them. + +6:11 Thus saith the Lord GOD; Smite with thine hand, and stamp with +thy foot, and say, Alas for all the evil abominations of the house of +Israel! for they shall fall by the sword, by the famine, and by the +pestilence. + +6:12 He that is far off shall die of the pestilence; and he that is +near shall fall by the sword; and he that remaineth and is besieged +shall die by the famine: thus will I accomplish my fury upon them. + +6:13 Then shall ye know that I am the LORD, when their slain men shall +be among their idols round about their altars, upon every high hill, +in all the tops of the mountains, and under every green tree, and +under every thick oak, the place where they did offer sweet savour to +all their idols. + +6:14 So will I stretch out my hand upon them, and make the land +desolate, yea, more desolate than the wilderness toward Diblath, in +all their habitations: and they shall know that I am the LORD. + +7:1 Moreover the word of the LORD came unto me, saying, 7:2 Also, thou +son of man, thus saith the Lord GOD unto the land of Israel; An end, +the end is come upon the four corners of the land. + +7:3 Now is the end come upon thee, and I will send mine anger upon +thee, and will judge thee according to thy ways, and will recompense +upon thee all thine abominations. + +7:4 And mine eye shall not spare thee, neither will I have pity: but I +will recompense thy ways upon thee, and thine abominations shall be in +the midst of thee: and ye shall know that I am the LORD. + +7:5 Thus saith the Lord GOD; An evil, an only evil, behold, is come. + +7:6 An end is come, the end is come: it watcheth for thee; behold, it +is come. + +7:7 The morning is come unto thee, O thou that dwellest in the land: +the time is come, the day of trouble is near, and not the sounding +again of the mountains. + +7:8 Now will I shortly pour out my fury upon thee, and accomplish mine +anger upon thee: and I will judge thee according to thy ways, and will +recompense thee for all thine abominations. + +7:9 And mine eye shall not spare, neither will I have pity: I will +recompense thee according to thy ways and thine abominations that are +in the midst of thee; and ye shall know that I am the LORD that +smiteth. + +7:10 Behold the day, behold, it is come: the morning is gone forth; +the rod hath blossomed, pride hath budded. + +7:11 Violence is risen up into a rod of wickedness: none of them shall +remain, nor of their multitude, nor of any of their's: neither shall +there be wailing for them. + +7:12 The time is come, the day draweth near: let not the buyer +rejoice, nor the seller mourn: for wrath is upon all the multitude +thereof. + +7:13 For the seller shall not return to that which is sold, although +they were yet alive: for the vision is touching the whole multitude +thereof, which shall not return; neither shall any strengthen himself +in the iniquity of his life. + +7:14 They have blown the trumpet, even to make all ready; but none +goeth to the battle: for my wrath is upon all the multitude thereof. + +7:15 The sword is without, and the pestilence and the famine within: +he that is in the field shall die with the sword; and he that is in +the city, famine and pestilence shall devour him. + +7:16 But they that escape of them shall escape, and shall be on the +mountains like doves of the valleys, all of them mourning, every one +for his iniquity. + +7:17 All hands shall be feeble, and all knees shall be weak as water. + +7:18 They shall also gird themselves with sackcloth, and horror shall +cover them; and shame shall be upon all faces, and baldness upon all +their heads. + +7:19 They shall cast their silver in the streets, and their gold shall +be removed: their silver and their gold shall not be able to deliver +them in the day of the wrath of the LORD: they shall not satisfy their +souls, neither fill their bowels: because it is the stumblingblock of +their iniquity. + +7:20 As for the beauty of his ornament, he set it in majesty: but they +made the images of their abominations and of their detestable things +therein: therefore have I set it far from them. + +7:21 And I will give it into the hands of the strangers for a prey, +and to the wicked of the earth for a spoil; and they shall pollute it. + +7:22 My face will I turn also from them, and they shall pollute my +secret place: for the robbers shall enter into it, and defile it. + +7:23 Make a chain: for the land is full of bloody crimes, and the city +is full of violence. + +7:24 Wherefore I will bring the worst of the heathen, and they shall +possess their houses: I will also make the pomp of the strong to +cease; and their holy places shall be defiled. + +7:25 Destruction cometh; and they shall seek peace, and there shall be +none. + +7:26 Mischief shall come upon mischief, and rumour shall be upon +rumour; then shall they seek a vision of the prophet; but the law +shall perish from the priest, and counsel from the ancients. + +7:27 The king shall mourn, and the prince shall be clothed with +desolation, and the hands of the people of the land shall be troubled: +I will do unto them after their way, and according to their deserts +will I judge them; and they shall know that I am the LORD. + +8:1 And it came to pass in the sixth year, in the sixth month, in the +fifth day of the month, as I sat in mine house, and the elders of +Judah sat before me, that the hand of the Lord GOD fell there upon me. + +8:2 Then I beheld, and lo a likeness as the appearance of fire: from +the appearance of his loins even downward, fire; and from his loins +even upward, as the appearance of brightness, as the colour of amber. + +8:3 And he put forth the form of an hand, and took me by a lock of +mine head; and the spirit lifted me up between the earth and the +heaven, and brought me in the visions of God to Jerusalem, to the door +of the inner gate that looketh toward the north; where was the seat of +the image of jealousy, which provoketh to jealousy. + +8:4 And, behold, the glory of the God of Israel was there, according +to the vision that I saw in the plain. + +8:5 Then said he unto me, Son of man, lift up thine eyes now the way +toward the north. So I lifted up mine eyes the way toward the north, +and behold northward at the gate of the altar this image of jealousy +in the entry. + +8:6 He said furthermore unto me, Son of man, seest thou what they do? +even the great abominations that the house of Israel committeth here, +that I should go far off from my sanctuary? but turn thee yet again, +and thou shalt see greater abominations. + +8:7 And he brought me to the door of the court; and when I looked, +behold a hole in the wall. + +8:8 Then said he unto me, Son of man, dig now in the wall: and when I +had digged in the wall, behold a door. + +8:9 And he said unto me, Go in, and behold the wicked abominations +that they do here. + +8:10 So I went in and saw; and behold every form of creeping things, +and abominable beasts, and all the idols of the house of Israel, +pourtrayed upon the wall round about. + +8:11 And there stood before them seventy men of the ancients of the +house of Israel, and in the midst of them stood Jaazaniah the son of +Shaphan, with every man his censer in his hand; and a thick cloud of +incense went up. + +8:12 Then said he unto me, Son of man, hast thou seen what the +ancients of the house of Israel do in the dark, every man in the +chambers of his imagery? for they say, the LORD seeth us not; the LORD +hath forsaken the earth. + +8:13 He said also unto me, Turn thee yet again, and thou shalt see +greater abominations that they do. + +8:14 Then he brought me to the door of the gate of the LORD's house +which was toward the north; and, behold, there sat women weeping for +Tammuz. + +8:15 Then said he unto me, Hast thou seen this, O son of man? turn +thee yet again, and thou shalt see greater abominations than these. + +8:16 And he brought me into the inner court of the LORD's house, and, +behold, at the door of the temple of the LORD, between the porch and +the altar, were about five and twenty men, with their backs toward the +temple of the LORD, and their faces toward the east; and they +worshipped the sun toward the east. + +8:17 Then he said unto me, Hast thou seen this, O son of man? Is it a +light thing to the house of Judah that they commit the abominations +which they commit here? for they have filled the land with violence, +and have returned to provoke me to anger: and, lo, they put the branch +to their nose. + +8:18 Therefore will I also deal in fury: mine eye shall not spare, +neither will I have pity: and though they cry in mine ears with a loud +voice, yet will I not hear them. + +9:1 He cried also in mine ears with a loud voice, saying, Cause them +that have charge over the city to draw near, even every man with his +destroying weapon in his hand. + +9:2 And, behold, six men came from the way of the higher gate, which +lieth toward the north, and every man a slaughter weapon in his hand; +and one man among them was clothed with linen, with a writer's inkhorn +by his side: and they went in, and stood beside the brasen altar. + +9:3 And the glory of the God of Israel was gone up from the cherub, +whereupon he was, to the threshold of the house. And he called to the +man clothed with linen, which had the writer's inkhorn by his side; +9:4 And the LORD said unto him, Go through the midst of the city, +through the midst of Jerusalem, and set a mark upon the foreheads of +the men that sigh and that cry for all the abominations that be done +in the midst thereof. + +9:5 And to the others he said in mine hearing, Go ye after him through +the city, and smite: let not your eye spare, neither have ye pity: 9:6 +Slay utterly old and young, both maids, and little children, and +women: but come not near any man upon whom is the mark; and begin at +my sanctuary. Then they began at the ancient men which were before the +house. + +9:7 And he said unto them, Defile the house, and fill the courts with +the slain: go ye forth. And they went forth, and slew in the city. + +9:8 And it came to pass, while they were slaying them, and I was left, +that I fell upon my face, and cried, and said, Ah Lord GOD! wilt thou +destroy all the residue of Israel in thy pouring out of thy fury upon +Jerusalem? 9:9 Then said he unto me, The iniquity of the house of +Israel and Judah is exceeding great, and the land is full of blood, +and the city full of perverseness: for they say, The LORD hath +forsaken the earth, and the LORD seeth not. + +9:10 And as for me also, mine eye shall not spare, neither will I have +pity, but I will recompense their way upon their head. + +9:11 And, behold, the man clothed with linen, which had the inkhorn by +his side, reported the matter, saying, I have done as thou hast +commanded me. + +10:1 Then I looked, and, behold, in the firmament that was above the +head of the cherubims there appeared over them as it were a sapphire +stone, as the appearance of the likeness of a throne. + +10:2 And he spake unto the man clothed with linen, and said, Go in +between the wheels, even under the cherub, and fill thine hand with +coals of fire from between the cherubims, and scatter them over the +city. And he went in in my sight. + +10:3 Now the cherubims stood on the right side of the house, when the +man went in; and the cloud filled the inner court. + +10:4 Then the glory of the LORD went up from the cherub, and stood +over the threshold of the house; and the house was filled with the +cloud, and the court was full of the brightness of the LORD's glory. + +10:5 And the sound of the cherubims' wings was heard even to the outer +court, as the voice of the Almighty God when he speaketh. + +10:6 And it came to pass, that when he had commanded the man clothed +with linen, saying, Take fire from between the wheels, from between +the cherubims; then he went in, and stood beside the wheels. + +10:7 And one cherub stretched forth his hand from between the +cherubims unto the fire that was between the cherubims, and took +thereof, and put it into the hands of him that was clothed with linen: +who took it, and went out. + +10:8 And there appeared in the cherubims the form of a man's hand +under their wings. + +10:9 And when I looked, behold the four wheels by the cherubims, one +wheel by one cherub, and another wheel by another cherub: and the +appearance of the wheels was as the colour of a beryl stone. + +10:10 And as for their appearances, they four had one likeness, as if +a wheel had been in the midst of a wheel. + +10:11 When they went, they went upon their four sides; they turned not +as they went, but to the place whither the head looked they followed +it; they turned not as they went. + +10:12 And their whole body, and their backs, and their hands, and +their wings, and the wheels, were full of eyes round about, even the +wheels that they four had. + +10:13 As for the wheels, it was cried unto them in my hearing, O +wheel. + +10:14 And every one had four faces: the first face was the face of a +cherub, and the second face was the face of a man, and the third the +face of a lion, and the fourth the face of an eagle. + +10:15 And the cherubims were lifted up. This is the living creature +that I saw by the river of Chebar. + +10:16 And when the cherubims went, the wheels went by them: and when +the cherubims lifted up their wings to mount up from the earth, the +same wheels also turned not from beside them. + +10:17 When they stood, these stood; and when they were lifted up, +these lifted up themselves also: for the spirit of the living creature +was in them. + +10:18 Then the glory of the LORD departed from off the threshold of +the house, and stood over the cherubims. + +10:19 And the cherubims lifted up their wings, and mounted up from the +earth in my sight: when they went out, the wheels also were beside +them, and every one stood at the door of the east gate of the LORD's +house; and the glory of the God of Israel was over them above. + +10:20 This is the living creature that I saw under the God of Israel +by the river of Chebar; and I knew that they were the cherubims. + +10:21 Every one had four faces apiece, and every one four wings; and +the likeness of the hands of a man was under their wings. + +10:22 And the likeness of their faces was the same faces which I saw +by the river of Chebar, their appearances and themselves: they went +every one straight forward. + +11:1 Moreover the spirit lifted me up, and brought me unto the east +gate of the LORD's house, which looketh eastward: and behold at the +door of the gate five and twenty men; among whom I saw Jaazaniah the +son of Azur, and Pelatiah the son of Benaiah, princes of the people. + +11:2 Then said he unto me, Son of man, these are the men that devise +mischief, and give wicked counsel in this city: 11:3 Which say, It is +not near; let us build houses: this city is the caldron, and we be the +flesh. + +11:4 Therefore prophesy against them, prophesy, O son of man. + +11:5 And the Spirit of the LORD fell upon me, and said unto me, Speak; +Thus saith the LORD; Thus have ye said, O house of Israel: for I know +the things that come into your mind, every one of them. + +11:6 Ye have multiplied your slain in this city, and ye have filled +the streets thereof with the slain. + +11:7 Therefore thus saith the Lord GOD; Your slain whom ye have laid +in the midst of it, they are the flesh, and this city is the caldron: +but I will bring you forth out of the midst of it. + +11:8 Ye have feared the sword; and I will bring a sword upon you, +saith the Lord GOD. + +11:9 And I will bring you out of the midst thereof, and deliver you +into the hands of strangers, and will execute judgments among you. + +11:10 Ye shall fall by the sword; I will judge you in the border of +Israel; and ye shall know that I am the LORD. + +11:11 This city shall not be your caldron, neither shall ye be the +flesh in the midst thereof; but I will judge you in the border of +Israel: 11:12 And ye shall know that I am the LORD: for ye have not +walked in my statutes, neither executed my judgments, but have done +after the manners of the heathen that are round about you. + +11:13 And it came to pass, when I prophesied, that Pelatiah the son of +Benaiah died. Then fell I down upon my face, and cried with a loud +voice, and said, Ah Lord GOD! wilt thou make a full end of the remnant +of Israel? 11:14 Again the word of the LORD came unto me, saying, +11:15 Son of man, thy brethren, even thy brethren, the men of thy +kindred, and all the house of Israel wholly, are they unto whom the +inhabitants of Jerusalem have said, Get you far from the LORD: unto us +is this land given in possession. + +11:16 Therefore say, Thus saith the Lord GOD; Although I have cast +them far off among the heathen, and although I have scattered them +among the countries, yet will I be to them as a little sanctuary in +the countries where they shall come. + +11:17 Therefore say, Thus saith the Lord GOD; I will even gather you +from the people, and assemble you out of the countries where ye have +been scattered, and I will give you the land of Israel. + +11:18 And they shall come thither, and they shall take away all the +detestable things thereof and all the abominations thereof from +thence. + +11:19 And I will give them one heart, and I will put a new spirit +within you; and I will take the stony heart out of their flesh, and +will give them an heart of flesh: 11:20 That they may walk in my +statutes, and keep mine ordinances, and do them: and they shall be my +people, and I will be their God. + +11:21 But as for them whose heart walketh after the heart of their +detestable things and their abominations, I will recompense their way +upon their own heads, saith the Lord GOD. + +11:22 Then did the cherubims lift up their wings, and the wheels +beside them; and the glory of the God of Israel was over them above. + +11:23 And the glory of the LORD went up from the midst of the city, +and stood upon the mountain which is on the east side of the city. + +11:24 Afterwards the spirit took me up, and brought me in a vision by +the Spirit of God into Chaldea, to them of the captivity. So the +vision that I had seen went up from me. + +11:25 Then I spake unto them of the captivity all the things that the +LORD had shewed me. + +12:1 The word of the LORD also came unto me, saying, 12:2 Son of man, +thou dwellest in the midst of a rebellious house, which have eyes to +see, and see not; they have ears to hear, and hear not: for they are a +rebellious house. + +12:3 Therefore, thou son of man, prepare thee stuff for removing, and +remove by day in their sight; and thou shalt remove from thy place to +another place in their sight: it may be they will consider, though +they be a rebellious house. + +12:4 Then shalt thou bring forth thy stuff by day in their sight, as +stuff for removing: and thou shalt go forth at even in their sight, as +they that go forth into captivity. + +12:5 Dig thou through the wall in their sight, and carry out thereby. + +12:6 In their sight shalt thou bear it upon thy shoulders, and carry +it forth in the twilight: thou shalt cover thy face, that thou see not +the ground: for I have set thee for a sign unto the house of Israel. + +12:7 And I did so as I was commanded: I brought forth my stuff by day, +as stuff for captivity, and in the even I digged through the wall with +mine hand; I brought it forth in the twilight, and I bare it upon my +shoulder in their sight. + +12:8 And in the morning came the word of the LORD unto me, saying, +12:9 Son of man, hath not the house of Israel, the rebellious house, +said unto thee, What doest thou? 12:10 Say thou unto them, Thus saith +the Lord GOD; This burden concerneth the prince in Jerusalem, and all +the house of Israel that are among them. + +12:11 Say, I am your sign: like as I have done, so shall it be done +unto them: they shall remove and go into captivity. + +12:12 And the prince that is among them shall bear upon his shoulder +in the twilight, and shall go forth: they shall dig through the wall +to carry out thereby: he shall cover his face, that he see not the +ground with his eyes. + +12:13 My net also will I spread upon him, and he shall be taken in my +snare: and I will bring him to Babylon to the land of the Chaldeans; +yet shall he not see it, though he shall die there. + +12:14 And I will scatter toward every wind all that are about him to +help him, and all his bands; and I will draw out the sword after them. + +12:15 And they shall know that I am the LORD, when I shall scatter +them among the nations, and disperse them in the countries. + +12:16 But I will leave a few men of them from the sword, from the +famine, and from the pestilence; that they may declare all their +abominations among the heathen whither they come; and they shall know +that I am the LORD. + +12:17 Moreover the word of the LORD came to me, saying, 12:18 Son of +man, eat thy bread with quaking, and drink thy water with trembling +and with carefulness; 12:19 And say unto the people of the land, Thus +saith the Lord GOD of the inhabitants of Jerusalem, and of the land of +Israel; They shall eat their bread with carefulness, and drink their +water with astonishment, that her land may be desolate from all that +is therein, because of the violence of all them that dwell therein. + +12:20 And the cities that are inhabited shall be laid waste, and the +land shall be desolate; and ye shall know that I am the LORD. + +12:21 And the word of the LORD came unto me, saying, 12:22 Son of man, +what is that proverb that ye have in the land of Israel, saying, The +days are prolonged, and every vision faileth? 12:23 Tell them +therefore, Thus saith the Lord GOD; I will make this proverb to cease, +and they shall no more use it as a proverb in Israel; but say unto +them, The days are at hand, and the effect of every vision. + +12:24 For there shall be no more any vain vision nor flattering +divination within the house of Israel. + +12:25 For I am the LORD: I will speak, and the word that I shall speak +shall come to pass; it shall be no more prolonged: for in your days, O +rebellious house, will I say the word, and will perform it, saith the +Lord GOD. + +12:26 Again the word of the LORD came to me, saying. + +12:27 Son of man, behold, they of the house of Israel say, The vision +that he seeth is for many days to come, and he prophesieth of the +times that are far off. + +12:28 Therefore say unto them, Thus saith the Lord GOD; There shall +none of my words be prolonged any more, but the word which I have +spoken shall be done, saith the Lord GOD. + +13:1 And the word of the LORD came unto me, saying, 13:2 Son of man, +prophesy against the prophets of Israel that prophesy, and say thou +unto them that prophesy out of their own hearts, Hear ye the word of +the LORD; 13:3 Thus saith the Lord GOD; Woe unto the foolish prophets, +that follow their own spirit, and have seen nothing! 13:4 O Israel, +thy prophets are like the foxes in the deserts. + +13:5 Ye have not gone up into the gaps, neither made up the hedge for +the house of Israel to stand in the battle in the day of the LORD. + +13:6 They have seen vanity and lying divination, saying, The LORD +saith: and the LORD hath not sent them: and they have made others to +hope that they would confirm the word. + +13:7 Have ye not seen a vain vision, and have ye not spoken a lying +divination, whereas ye say, The LORD saith it; albeit I have not +spoken? 13:8 Therefore thus saith the Lord GOD; Because ye have +spoken vanity, and seen lies, therefore, behold, I am against you, +saith the Lord GOD. + +13:9 And mine hand shall be upon the prophets that see vanity, and +that divine lies: they shall not be in the assembly of my people, +neither shall they be written in the writing of the house of Israel, +neither shall they enter into the land of Israel; and ye shall know +that I am the Lord GOD. + +13:10 Because, even because they have seduced my people, saying, +Peace; and there was no peace; and one built up a wall, and, lo, +others daubed it with untempered morter: 13:11 Say unto them which +daub it with untempered morter, that it shall fall: there shall be an +overflowing shower; and ye, O great hailstones, shall fall; and a +stormy wind shall rend it. + +13:12 Lo, when the wall is fallen, shall it not be said unto you, +Where is the daubing wherewith ye have daubed it? 13:13 Therefore +thus saith the Lord GOD; I will even rend it with a stormy wind in my +fury; and there shall be an overflowing shower in mine anger, and +great hailstones in my fury to consume it. + +13:14 So will I break down the wall that ye have daubed with +untempered morter, and bring it down to the ground, so that the +foundation thereof shall be discovered, and it shall fall, and ye +shall be consumed in the midst thereof: and ye shall know that I am +the LORD. + +13:15 Thus will I accomplish my wrath upon the wall, and upon them +that have daubed it with untempered morter, and will say unto you, The +wall is no more, neither they that daubed it; 13:16 To wit, the +prophets of Israel which prophesy concerning Jerusalem, and which see +visions of peace for her, and there is no peace, saith the Lord GOD. + +13:17 Likewise, thou son of man, set thy face against the daughters of +thy people, which prophesy out of their own heart; and prophesy thou +against them, 13:18 And say, Thus saith the Lord GOD; Woe to the women +that sew pillows to all armholes, and make kerchiefs upon the head of +every stature to hunt souls! Will ye hunt the souls of my people, and +will ye save the souls alive that come unto you? 13:19 And will ye +pollute me among my people for handfuls of barley and for pieces of +bread, to slay the souls that should not die, and to save the souls +alive that should not live, by your lying to my people that hear your +lies? 13:20 Wherefore thus saith the Lord GOD; Behold, I am against +your pillows, wherewith ye there hunt the souls to make them fly, and +I will tear them from your arms, and will let the souls go, even the +souls that ye hunt to make them fly. + +13:21 Your kerchiefs also will I tear, and deliver my people out of +your hand, and they shall be no more in your hand to be hunted; and ye +shall know that I am the LORD. + +13:22 Because with lies ye have made the heart of the righteous sad, +whom I have not made sad; and strengthened the hands of the wicked, +that he should not return from his wicked way, by promising him life: +13:23 Therefore ye shall see no more vanity, nor divine divinations: +for I will deliver my people out of your hand: and ye shall know that +I am the LORD. + +14:1 Then came certain of the elders of Israel unto me, and sat before +me. + +14:2 And the word of the LORD came unto me, saying, 14:3 Son of man, +these men have set up their idols in their heart, and put the +stumblingblock of their iniquity before their face: should I be +enquired of at all by them? 14:4 Therefore speak unto them, and say +unto them, Thus saith the Lord GOD; Every man of the house of Israel +that setteth up his idols in his heart, and putteth the stumblingblock +of his iniquity before his face, and cometh to the prophet; I the LORD +will answer him that cometh according to the multitude of his idols; +14:5 That I may take the house of Israel in their own heart, because +they are all estranged from me through their idols. + +14:6 Therefore say unto the house of Israel, Thus saith the Lord GOD; +Repent, and turn yourselves from your idols; and turn away your faces +from all your abominations. + +14:7 For every one of the house of Israel, or of the stranger that +sojourneth in Israel, which separateth himself from me, and setteth up +his idols in his heart, and putteth the stumblingblock of his iniquity +before his face, and cometh to a prophet to enquire of him concerning +me; I the LORD will answer him by myself: 14:8 And I will set my face +against that man, and will make him a sign and a proverb, and I will +cut him off from the midst of my people; and ye shall know that I am +the LORD. + +14:9 And if the prophet be deceived when he hath spoken a thing, I the +LORD have deceived that prophet, and I will stretch out my hand upon +him, and will destroy him from the midst of my people Israel. + +14:10 And they shall bear the punishment of their iniquity: the +punishment of the prophet shall be even as the punishment of him that +seeketh unto him; 14:11 That the house of Israel may go no more astray +from me, neither be polluted any more with all their transgressions; +but that they may be my people, and I may be their God, saith the Lord +GOD. + +14:12 The word of the LORD came again to me, saying, 14:13 Son of man, +when the land sinneth against me by trespassing grievously, then will +I stretch out mine hand upon it, and will break the staff of the bread +thereof, and will send famine upon it, and will cut off man and beast +from it: 14:14 Though these three men, Noah, Daniel, and Job, were in +it, they should deliver but their own souls by their righteousness, +saith the Lord GOD. + +14:15 If I cause noisome beasts to pass through the land, and they +spoil it, so that it be desolate, that no man may pass through because +of the beasts: 14:16 Though these three men were in it, as I live, +saith the Lord GOD, they shall deliver neither sons nor daughters; +they only shall be delivered, but the land shall be desolate. + +14:17 Or if I bring a sword upon that land, and say, Sword, go through +the land; so that I cut off man and beast from it: 14:18 Though these +three men were in it, as I live, saith the Lord GOD, they shall +deliver neither sons nor daughters, but they only shall be delivered +themselves. + +14:19 Or if I send a pestilence into that land, and pour out my fury +upon it in blood, to cut off from it man and beast: 14:20 Though Noah, +Daniel, and Job were in it, as I live, saith the Lord GOD, they shall +deliver neither son nor daughter; they shall but deliver their own +souls by their righteousness. + +14:21 For thus saith the Lord GOD; How much more when I send my four +sore judgments upon Jerusalem, the sword, and the famine, and the +noisome beast, and the pestilence, to cut off from it man and beast? +14:22 Yet, behold, therein shall be left a remnant that shall be +brought forth, both sons and daughters: behold, they shall come forth +unto you, and ye shall see their way and their doings: and ye shall be +comforted concerning the evil that I have brought upon Jerusalem, even +concerning all that I have brought upon it. + +14:23 And they shall comfort you, when ye see their ways and their +doings: and ye shall know that I have not done without cause all that +I have done in it, saith the Lord GOD. + +15:1 And the word of the LORD came unto me, saying, 15:2 Son of man, +what is the vine tree more than any tree, or than a branch which is +among the trees of the forest? 15:3 Shall wood be taken thereof to do +any work? or will men take a pin of it to hang any vessel thereon? +15:4 Behold, it is cast into the fire for fuel; the fire devoureth +both the ends of it, and the midst of it is burned. Is it meet for any +work? 15:5 Behold, when it was whole, it was meet for no work: how +much less shall it be meet yet for any work, when the fire hath +devoured it, and it is burned? 15:6 Therefore thus saith the Lord +GOD; As the vine tree among the trees of the forest, which I have +given to the fire for fuel, so will I give the inhabitants of +Jerusalem. + +15:7 And I will set my face against them; they shall go out from one +fire, and another fire shall devour them; and ye shall know that I am +the LORD, when I set my face against them. + +15:8 And I will make the land desolate, because they have committed a +trespass, saith the Lord GOD. + +16:1 Again the word of the LORD came unto me, saying, 16:2 Son of man, +cause Jerusalem to know her abominations, 16:3 And say, Thus saith the +Lord GOD unto Jerusalem; Thy birth and thy nativity is of the land of +Canaan; thy father was an Amorite, and thy mother an Hittite. + +16:4 And as for thy nativity, in the day thou wast born thy navel was +not cut, neither wast thou washed in water to supple thee; thou wast +not salted at all, nor swaddled at all. + +16:5 None eye pitied thee, to do any of these unto thee, to have +compassion upon thee; but thou wast cast out in the open field, to the +lothing of thy person, in the day that thou wast born. + +16:6 And when I passed by thee, and saw thee polluted in thine own +blood, I said unto thee when thou wast in thy blood, Live; yea, I said +unto thee when thou wast in thy blood, Live. + +16:7 I have caused thee to multiply as the bud of the field, and thou +hast increased and waxen great, and thou art come to excellent +ornaments: thy breasts are fashioned, and thine hair is grown, whereas +thou wast naked and bare. + +16:8 Now when I passed by thee, and looked upon thee, behold, thy time +was the time of love; and I spread my skirt over thee, and covered thy +nakedness: yea, I sware unto thee, and entered into a covenant with +thee, saith the Lord GOD, and thou becamest mine. + +16:9 Then washed I thee with water; yea, I throughly washed away thy +blood from thee, and I anointed thee with oil. + +16:10 I clothed thee also with broidered work, and shod thee with +badgers' skin, and I girded thee about with fine linen, and I covered +thee with silk. + +16:11 I decked thee also with ornaments, and I put bracelets upon thy +hands, and a chain on thy neck. + +16:12 And I put a jewel on thy forehead, and earrings in thine ears, +and a beautiful crown upon thine head. + +16:13 Thus wast thou decked with gold and silver; and thy raiment was +of fine linen, and silk, and broidered work; thou didst eat fine +flour, and honey, and oil: and thou wast exceeding beautiful, and thou +didst prosper into a kingdom. + +16:14 And thy renown went forth among the heathen for thy beauty: for +it was perfect through my comeliness, which I had put upon thee, saith +the Lord GOD. + +16:15 But thou didst trust in thine own beauty, and playedst the +harlot because of thy renown, and pouredst out thy fornications on +every one that passed by; his it was. + +16:16 And of thy garments thou didst take, and deckedst thy high +places with divers colours, and playedst the harlot thereupon: the +like things shall not come, neither shall it be so. + +16:17 Thou hast also taken thy fair jewels of my gold and of my +silver, which I had given thee, and madest to thyself images of men, +and didst commit whoredom with them, 16:18 And tookest thy broidered +garments, and coveredst them: and thou hast set mine oil and mine +incense before them. + +16:19 My meat also which I gave thee, fine flour, and oil, and honey, +wherewith I fed thee, thou hast even set it before them for a sweet +savour: and thus it was, saith the Lord GOD. + +16:20 Moreover thou hast taken thy sons and thy daughters, whom thou +hast borne unto me, and these hast thou sacrificed unto them to be +devoured. Is this of thy whoredoms a small matter, 16:21 That thou +hast slain my children, and delivered them to cause them to pass +through the fire for them? 16:22 And in all thine abominations and +thy whoredoms thou hast not remembered the days of thy youth, when +thou wast naked and bare, and wast polluted in thy blood. + +16:23 And it came to pass after all thy wickedness, (woe, woe unto +thee! saith the LORD GOD;) 16:24 That thou hast also built unto thee +an eminent place, and hast made thee an high place in every street. + +16:25 Thou hast built thy high place at every head of the way, and +hast made thy beauty to be abhorred, and hast opened thy feet to every +one that passed by, and multiplied thy whoredoms. + +16:26 Thou hast also committed fornication with the Egyptians thy +neighbours, great of flesh; and hast increased thy whoredoms, to +provoke me to anger. + +16:27 Behold, therefore I have stretched out my hand over thee, and +have diminished thine ordinary food, and delivered thee unto the will +of them that hate thee, the daughters of the Philistines, which are +ashamed of thy lewd way. + +16:28 Thou hast played the whore also with the Assyrians, because thou +wast unsatiable; yea, thou hast played the harlot with them, and yet +couldest not be satisfied. + +16:29 Thou hast moreover multiplied thy fornication in the land of +Canaan unto Chaldea; and yet thou wast not satisfied therewith. + +16:30 How weak is thine heart, saith the LORD GOD, seeing thou doest +all these things, the work of an imperious whorish woman; 16:31 In +that thou buildest thine eminent place in the head of every way, and +makest thine high place in every street; and hast not been as an +harlot, in that thou scornest hire; 16:32 But as a wife that +committeth adultery, which taketh strangers instead of her husband! +16:33 They give gifts to all whores: but thou givest thy gifts to all +thy lovers, and hirest them, that they may come unto thee on every +side for thy whoredom. + +16:34 And the contrary is in thee from other women in thy whoredoms, +whereas none followeth thee to commit whoredoms: and in that thou +givest a reward, and no reward is given unto thee, therefore thou art +contrary. + +16:35 Wherefore, O harlot, hear the word of the LORD: 16:36 Thus saith +the Lord GOD; Because thy filthiness was poured out, and thy nakedness +discovered through thy whoredoms with thy lovers, and with all the +idols of thy abominations, and by the blood of thy children, which +thou didst give unto them; 16:37 Behold, therefore I will gather all +thy lovers, with whom thou hast taken pleasure, and all them that thou +hast loved, with all them that thou hast hated; I will even gather +them round about against thee, and will discover thy nakedness unto +them, that they may see all thy nakedness. + +16:38 And I will judge thee, as women that break wedlock and shed +blood are judged; and I will give thee blood in fury and jealousy. + +16:39 And I will also give thee into their hand, and they shall throw +down thine eminent place, and shall break down thy high places: they +shall strip thee also of thy clothes, and shall take thy fair jewels, +and leave thee naked and bare. + +16:40 They shall also bring up a company against thee, and they shall +stone thee with stones, and thrust thee through with their swords. + +16:41 And they shall burn thine houses with fire, and execute +judgments upon thee in the sight of many women: and I will cause thee +to cease from playing the harlot, and thou also shalt give no hire any +more. + +16:42 So will I make my fury toward thee to rest, and my jealousy +shall depart from thee, and I will be quiet, and will be no more +angry. + +16:43 Because thou hast not remembered the days of thy youth, but hast +fretted me in all these things; behold, therefore I also will +recompense thy way upon thine head, saith the Lord GOD: and thou shalt +not commit this lewdness above all thine abominations. + +16:44 Behold, every one that useth proverbs shall use this proverb +against thee, saying, As is the mother, so is her daughter. + +16:45 Thou art thy mother's daughter, that lotheth her husband and her +children; and thou art the sister of thy sisters, which lothed their +husbands and their children: your mother was an Hittite, and your +father an Amorite. + +16:46 And thine elder sister is Samaria, she and her daughters that +dwell at thy left hand: and thy younger sister, that dwelleth at thy +right hand, is Sodom and her daughters. + +16:47 Yet hast thou not walked after their ways, nor done after their +abominations: but, as if that were a very little thing, thou wast +corrupted more than they in all thy ways. + +16:48 As I live, saith the Lord GOD, Sodom thy sister hath not done, +she nor her daughters, as thou hast done, thou and thy daughters. + +16:49 Behold, this was the iniquity of thy sister Sodom, pride, +fulness of bread, and abundance of idleness was in her and in her +daughters, neither did she strengthen the hand of the poor and needy. + +16:50 And they were haughty, and committed abomination before me: +therefore I took them away as I saw good. + +16:51 Neither hath Samaria committed half of thy sins; but thou hast +multiplied thine abominations more than they, and hast justified thy +sisters in all thine abominations which thou hast done. + +16:52 Thou also, which hast judged thy sisters, bear thine own shame +for thy sins that thou hast committed more abominable than they: they +are more righteous than thou: yea, be thou confounded also, and bear +thy shame, in that thou hast justified thy sisters. + +16:53 When I shall bring again their captivity, the captivity of Sodom +and her daughters, and the captivity of Samaria and her daughters, +then will I bring again the captivity of thy captives in the midst of +them: 16:54 That thou mayest bear thine own shame, and mayest be +confounded in all that thou hast done, in that thou art a comfort unto +them. + +16:55 When thy sisters, Sodom and her daughters, shall return to their +former estate, and Samaria and her daughters shall return to their +former estate, then thou and thy daughters shall return to your former +estate. + +16:56 For thy sister Sodom was not mentioned by thy mouth in the day +of thy pride, 16:57 Before thy wickedness was discovered, as at the +time of thy reproach of the daughters of Syria, and all that are round +about her, the daughters of the Philistines, which despise thee round +about. + +16:58 Thou hast borne thy lewdness and thine abominations, saith the +LORD. + +16:59 For thus saith the Lord GOD; I will even deal with thee as thou +hast done, which hast despised the oath in breaking the covenant. + +16:60 Nevertheless I will remember my covenant with thee in the days +of thy youth, and I will establish unto thee an everlasting covenant. + +16:61 Then thou shalt remember thy ways, and be ashamed, when thou +shalt receive thy sisters, thine elder and thy younger: and I will +give them unto thee for daughters, but not by thy covenant. + +16:62 And I will establish my covenant with thee; and thou shalt know +that I am the LORD: 16:63 That thou mayest remember, and be +confounded, and never open thy mouth any more because of thy shame, +when I am pacified toward thee for all that thou hast done, saith the +Lord GOD. + +17:1 And the word of the LORD came unto me, saying, 17:2 Son of man, +put forth a riddle, and speak a parable unto the house of Israel; 17:3 +And say, Thus saith the Lord GOD; A great eagle with great wings, +longwinged, full of feathers, which had divers colours, came unto +Lebanon, and took the highest branch of the cedar: 17:4 He cropped off +the top of his young twigs, and carried it into a land of traffick; he +set it in a city of merchants. + +17:5 He took also of the seed of the land, and planted it in a +fruitful field; he placed it by great waters, and set it as a willow +tree. + +17:6 And it grew, and became a spreading vine of low stature, whose +branches turned toward him, and the roots thereof were under him: so +it became a vine, and brought forth branches, and shot forth sprigs. + +17:7 There was also another great eagle with great wings and many +feathers: and, behold, this vine did bend her roots toward him, and +shot forth her branches toward him, that he might water it by the +furrows of her plantation. + +17:8 It was planted in a good soil by great waters, that it might +bring forth branches, and that it might bear fruit, that it might be a +goodly vine. + +17:9 Say thou, Thus saith the Lord GOD; Shall it prosper? shall he not +pull up the roots thereof, and cut off the fruit thereof, that it +wither? it shall wither in all the leaves of her spring, even without +great power or many people to pluck it up by the roots thereof. + +17:10 Yea, behold, being planted, shall it prosper? shall it not +utterly wither, when the east wind toucheth it? it shall wither in the +furrows where it grew. + +17:11 Moreover the word of the LORD came unto me, saying, 17:12 Say +now to the rebellious house, Know ye not what these things mean? tell +them, Behold, the king of Babylon is come to Jerusalem, and hath taken +the king thereof, and the princes thereof, and led them with him to +Babylon; 17:13 And hath taken of the king's seed, and made a covenant +with him, and hath taken an oath of him: he hath also taken the mighty +of the land: 17:14 That the kingdom might be base, that it might not +lift itself up, but that by keeping of his covenant it might stand. + +17:15 But he rebelled against him in sending his ambassadors into +Egypt, that they might give him horses and much people. Shall he +prosper? shall he escape that doeth such things? or shall he break the +covenant, and be delivered? 17:16 As I live, saith the Lord GOD, +surely in the place where the king dwelleth that made him king, whose +oath he despised, and whose covenant he brake, even with him in the +midst of Babylon he shall die. + +17:17 Neither shall Pharaoh with his mighty army and great company +make for him in the war, by casting up mounts, and building forts, to +cut off many persons: 17:18 Seeing he despised the oath by breaking +the covenant, when, lo, he had given his hand, and hath done all these +things, he shall not escape. + +17:19 Therefore thus saith the Lord GOD; As I live, surely mine oath +that he hath despised, and my covenant that he hath broken, even it +will I recompense upon his own head. + +17:20 And I will spread my net upon him, and he shall be taken in my +snare, and I will bring him to Babylon, and will plead with him there +for his trespass that he hath trespassed against me. + +17:21 And all his fugitives with all his bands shall fall by the +sword, and they that remain shall be scattered toward all winds: and +ye shall know that I the LORD have spoken it. + +17:22 Thus saith the Lord GOD; I will also take of the highest branch +of the high cedar, and will set it; I will crop off from the top of +his young twigs a tender one, and will plant it upon an high mountain +and eminent: 17:23 In the mountain of the height of Israel will I +plant it: and it shall bring forth boughs, and bear fruit, and be a +goodly cedar: and under it shall dwell all fowl of every wing; in the +shadow of the branches thereof shall they dwell. + +17:24 And all the trees of the field shall know that I the LORD have +brought down the high tree, have exalted the low tree, have dried up +the green tree, and have made the dry tree to flourish: I the LORD +have spoken and have done it. + +18:1 The word of the LORD came unto me again, saying, 18:2 What mean +ye, that ye use this proverb concerning the land of Israel, saying, +The fathers have eaten sour grapes, and the children's teeth are set +on edge? 18:3 As I live, saith the Lord GOD, ye shall not have +occasion any more to use this proverb in Israel. + +18:4 Behold, all souls are mine; as the soul of the father, so also +the soul of the son is mine: the soul that sinneth, it shall die. + +18:5 But if a man be just, and do that which is lawful and right, 18:6 +And hath not eaten upon the mountains, neither hath lifted up his eyes +to the idols of the house of Israel, neither hath defiled his +neighbour's wife, neither hath come near to a menstruous woman, 18:7 +And hath not oppressed any, but hath restored to the debtor his +pledge, hath spoiled none by violence, hath given his bread to the +hungry, and hath covered the naked with a garment; 18:8 He that hath +not given forth upon usury, neither hath taken any increase, that hath +withdrawn his hand from iniquity, hath executed true judgment between +man and man, 18:9 Hath walked in my statutes, and hath kept my +judgments, to deal truly; he is just, he shall surely live, saith the +Lord GOD. + +18:10 If he beget a son that is a robber, a shedder of blood, and that +doeth the like to any one of these things, 18:11 And that doeth not +any of those duties, but even hath eaten upon the mountains, and +defiled his neighbour's wife, 18:12 Hath oppressed the poor and needy, +hath spoiled by violence, hath not restored the pledge, and hath +lifted up his eyes to the idols, hath committed abomination, 18:13 +Hath given forth upon usury, and hath taken increase: shall he then +live? he shall not live: he hath done all these abominations; he shall +surely die; his blood shall be upon him. + +18:14 Now, lo, if he beget a son, that seeth all his father's sins +which he hath done, and considereth, and doeth not such like, 18:15 +That hath not eaten upon the mountains, neither hath lifted up his +eyes to the idols of the house of Israel, hath not defiled his +neighbour's wife, 18:16 Neither hath oppressed any, hath not +withholden the pledge, neither hath spoiled by violence, but hath +given his bread to the hungry, and hath covered the naked with a +garment, 18:17 That hath taken off his hand from the poor, that hath +not received usury nor increase, hath executed my judgments, hath +walked in my statutes; he shall not die for the iniquity of his +father, he shall surely live. + +18:18 As for his father, because he cruelly oppressed, spoiled his +brother by violence, and did that which is not good among his people, +lo, even he shall die in his iniquity. + +18:19 Yet say ye, Why? doth not the son bear the iniquity of the +father? When the son hath done that which is lawful and right, and +hath kept all my statutes, and hath done them, he shall surely live. + +18:20 The soul that sinneth, it shall die. The son shall not bear the +iniquity of the father, neither shall the father bear the iniquity of +the son: the righteousness of the righteous shall be upon him, and the +wickedness of the wicked shall be upon him. + +18:21 But if the wicked will turn from all his sins that he hath +committed, and keep all my statutes, and do that which is lawful and +right, he shall surely live, he shall not die. + +18:22 All his transgressions that he hath committed, they shall not be +mentioned unto him: in his righteousness that he hath done he shall +live. + +18:23 Have I any pleasure at all that the wicked should die? saith the +Lord GOD: and not that he should return from his ways, and live? +18:24 But when the righteous turneth away from his righteousness, and +committeth iniquity, and doeth according to all the abominations that +the wicked man doeth, shall he live? All his righteousness that he +hath done shall not be mentioned: in his trespass that he hath +trespassed, and in his sin that he hath sinned, in them shall he die. + +18:25 Yet ye say, The way of the LORD is not equal. Hear now, O house +of Israel; Is not my way equal? are not your ways unequal? 18:26 When +a righteous man turneth away from his righteousness, and committeth +iniquity, and dieth in them; for his iniquity that he hath done shall +he die. + +18:27 Again, when the wicked man turneth away from his wickedness that +he hath committed, and doeth that which is lawful and right, he shall +save his soul alive. + +18:28 Because he considereth, and turneth away from all his +transgressions that he hath committed, he shall surely live, he shall +not die. + +18:29 Yet saith the house of Israel, The way of the LORD is not equal. +O house of Israel, are not my ways equal? are not your ways unequal? +18:30 Therefore I will judge you, O house of Israel, every one +according to his ways, saith the Lord GOD. Repent, and turn yourselves +from all your transgressions; so iniquity shall not be your ruin. + +18:31 Cast away from you all your transgressions, whereby ye have +transgressed; and make you a new heart and a new spirit: for why will +ye die, O house of Israel? 18:32 For I have no pleasure in the death +of him that dieth, saith the Lord GOD: wherefore turn yourselves, and +live ye. + +19:1 Moreover take thou up a lamentation for the princes of Israel, +19:2 And say, What is thy mother? A lioness: she lay down among lions, +she nourished her whelps among young lions. + +19:3 And she brought up one of her whelps: it became a young lion, and +it learned to catch the prey; it devoured men. + +19:4 The nations also heard of him; he was taken in their pit, and +they brought him with chains unto the land of Egypt. + +19:5 Now when she saw that she had waited, and her hope was lost, then +she took another of her whelps, and made him a young lion. + +19:6 And he went up and down among the lions, he became a young lion, +and learned to catch the prey, and devoured men. + +19:7 And he knew their desolate palaces, and he laid waste their +cities; and the land was desolate, and the fulness thereof, by the +noise of his roaring. + +19:8 Then the nations set against him on every side from the +provinces, and spread their net over him: he was taken in their pit. + +19:9 And they put him in ward in chains, and brought him to the king +of Babylon: they brought him into holds, that his voice should no more +be heard upon the mountains of Israel. + +19:10 Thy mother is like a vine in thy blood, planted by the waters: +she was fruitful and full of branches by reason of many waters. + +19:11 And she had strong rods for the sceptres of them that bare rule, +and her stature was exalted among the thick branches, and she appeared +in her height with the multitude of her branches. + +19:12 But she was plucked up in fury, she was cast down to the ground, +and the east wind dried up her fruit: her strong rods were broken and +withered; the fire consumed them. + +19:13 And now she is planted in the wilderness, in a dry and thirsty +ground. + +19:14 And fire is gone out of a rod of her branches, which hath +devoured her fruit, so that she hath no strong rod to be a sceptre to +rule. This is a lamentation, and shall be for a lamentation. + +20:1 And it came to pass in the seventh year, in the fifth month, the +tenth day of the month, that certain of the elders of Israel came to +enquire of the LORD, and sat before me. + +20:2 Then came the word of the LORD unto me, saying, 20:3 Son of man, +speak unto the elders of Israel, and say unto them, Thus saith the +Lord GOD; Are ye come to enquire of me? As I live, saith the Lord GOD, +I will not be enquired of by you. + +20:4 Wilt thou judge them, son of man, wilt thou judge them? cause +them to know the abominations of their fathers: 20:5 And say unto +them, Thus saith the Lord GOD; In the day when I chose Israel, and +lifted up mine hand unto the seed of the house of Jacob, and made +myself known unto them in the land of Egypt, when I lifted up mine +hand unto them, saying, I am the LORD your God; 20:6 In the day that I +lifted up mine hand unto them, to bring them forth of the land of +Egypt into a land that I had espied for them, flowing with milk and +honey, which is the glory of all lands: 20:7 Then said I unto them, +Cast ye away every man the abominations of his eyes, and defile not +yourselves with the idols of Egypt: I am the LORD your God. + +20:8 But they rebelled against me, and would not hearken unto me: they +did not every man cast away the abominations of their eyes, neither +did they forsake the idols of Egypt: then I said, I will pour out my +fury upon them, to accomplish my anger against them in the midst of +the land of Egypt. + +20:9 But I wrought for my name's sake, that it should not be polluted +before the heathen, among whom they were, in whose sight I made myself +known unto them, in bringing them forth out of the land of Egypt. + +20:10 Wherefore I caused them to go forth out of the land of Egypt, +and brought them into the wilderness. + +20:11 And I gave them my statutes, and shewed them my judgments, which +if a man do, he shall even live in them. + +20:12 Moreover also I gave them my sabbaths, to be a sign between me +and them, that they might know that I am the LORD that sanctify them. + +20:13 But the house of Israel rebelled against me in the wilderness: +they walked not in my statutes, and they despised my judgments, which +if a man do, he shall even live in them; and my sabbaths they greatly +polluted: then I said, I would pour out my fury upon them in the +wilderness, to consume them. + +20:14 But I wrought for my name's sake, that it should not be polluted +before the heathen, in whose sight I brought them out. + +20:15 Yet also I lifted up my hand unto them in the wilderness, that I +would not bring them into the land which I had given them, flowing +with milk and honey, which is the glory of all lands; 20:16 Because +they despised my judgments, and walked not in my statutes, but +polluted my sabbaths: for their heart went after their idols. + +20:17 Nevertheless mine eye spared them from destroying them, neither +did I make an end of them in the wilderness. + +20:18 But I said unto their children in the wilderness, Walk ye not in +the statutes of your fathers, neither observe their judgments, nor +defile yourselves with their idols: 20:19 I am the LORD your God; walk +in my statutes, and keep my judgments, and do them; 20:20 And hallow +my sabbaths; and they shall be a sign between me and you, that ye may +know that I am the LORD your God. + +20:21 Notwithstanding the children rebelled against me: they walked +not in my statutes, neither kept my judgments to do them, which if a +man do, he shall even live in them; they polluted my sabbaths: then I +said, I would pour out my fury upon them, to accomplish my anger +against them in the wilderness. + +20:22 Nevertheless I withdrew mine hand, and wrought for my name's +sake, that it should not be polluted in the sight of the heathen, in +whose sight I brought them forth. + +20:23 I lifted up mine hand unto them also in the wilderness, that I +would scatter them among the heathen, and disperse them through the +countries; 20:24 Because they had not executed my judgments, but had +despised my statutes, and had polluted my sabbaths, and their eyes +were after their fathers' idols. + +20:25 Wherefore I gave them also statutes that were not good, and +judgments whereby they should not live; 20:26 And I polluted them in +their own gifts, in that they caused to pass through the fire all that +openeth the womb, that I might make them desolate, to the end that +they might know that I am the LORD. + +20:27 Therefore, son of man, speak unto the house of Israel, and say +unto them, Thus saith the Lord GOD; Yet in this your fathers have +blasphemed me, in that they have committed a trespass against me. + +20:28 For when I had brought them into the land, for the which I +lifted up mine hand to give it to them, then they saw every high hill, +and all the thick trees, and they offered there their sacrifices, and +there they presented the provocation of their offering: there also +they made their sweet savour, and poured out there their drink +offerings. + +20:29 Then I said unto them, What is the high place whereunto ye go? +And the name whereof is called Bamah unto this day. + +20:30 Wherefore say unto the house of Israel, Thus saith the Lord GOD; +Are ye polluted after the manner of your fathers? and commit ye +whoredom after their abominations? 20:31 For when ye offer your +gifts, when ye make your sons to pass through the fire, ye pollute +yourselves with all your idols, even unto this day: and shall I be +enquired of by you, O house of Israel? As I live, saith the Lord GOD, +I will not be enquired of by you. + +20:32 And that which cometh into your mind shall not be at all, that +ye say, We will be as the heathen, as the families of the countries, +to serve wood and stone. + +20:33 As I live, saith the Lord GOD, surely with a mighty hand, and +with a stretched out arm, and with fury poured out, will I rule over +you: 20:34 And I will bring you out from the people, and will gather +you out of the countries wherein ye are scattered, with a mighty hand, +and with a stretched out arm, and with fury poured out. + +20:35 And I will bring you into the wilderness of the people, and +there will I plead with you face to face. + +20:36 Like as I pleaded with your fathers in the wilderness of the +land of Egypt, so will I plead with you, saith the Lord GOD. + +20:37 And I will cause you to pass under the rod, and I will bring you +into the bond of the covenant: 20:38 And I will purge out from among +you the rebels, and them that transgress against me: I will bring them +forth out of the country where they sojourn, and they shall not enter +into the land of Israel: and ye shall know that I am the LORD. + +20:39 As for you, O house of Israel, thus saith the Lord GOD; Go ye, +serve ye every one his idols, and hereafter also, if ye will not +hearken unto me: but pollute ye my holy name no more with your gifts, +and with your idols. + +20:40 For in mine holy mountain, in the mountain of the height of +Israel, saith the Lord GOD, there shall all the house of Israel, all +of them in the land, serve me: there will I accept them, and there +will I require your offerings, and the firstfruits of your oblations, +with all your holy things. + +20:41 I will accept you with your sweet savour, when I bring you out +from the people, and gather you out of the countries wherein ye have +been scattered; and I will be sanctified in you before the heathen. + +20:42 And ye shall know that I am the LORD, when I shall bring you +into the land of Israel, into the country for the which I lifted up +mine hand to give it to your fathers. + +20:43 And there shall ye remember your ways, and all your doings, +wherein ye have been defiled; and ye shall lothe yourselves in your +own sight for all your evils that ye have committed. + +20:44 And ye shall know that I am the LORD when I have wrought with +you for my name's sake, not according to your wicked ways, nor +according to your corrupt doings, O ye house of Israel, saith the Lord +GOD. + +20:45 Moreover the word of the LORD came unto me, saying, 20:46 Son of +man, set thy face toward the south, and drop thy word toward the +south, and prophesy against the forest of the south field; 20:47 And +say to the forest of the south, Hear the word of the LORD; Thus saith +the Lord GOD; Behold, I will kindle a fire in thee, and it shall +devour every green tree in thee, and every dry tree: the flaming flame +shall not be quenched, and all faces from the south to the north shall +be burned therein. + +20:48 And all flesh shall see that I the LORD have kindled it: it +shall not be quenched. + +20:49 Then said I, Ah Lord GOD! they say of me, Doth he not speak +parables? 21:1 And the word of the LORD came unto me, saying, 21:2 +Son of man, set thy face toward Jerusalem, and drop thy word toward +the holy places, and prophesy against the land of Israel, 21:3 And say +to the land of Israel, Thus saith the LORD; Behold, I am against thee, +and will draw forth my sword out of his sheath, and will cut off from +thee the righteous and the wicked. + +21:4 Seeing then that I will cut off from thee the righteous and the +wicked, therefore shall my sword go forth out of his sheath against +all flesh from the south to the north: 21:5 That all flesh may know +that I the LORD have drawn forth my sword out of his sheath: it shall +not return any more. + +21:6 Sigh therefore, thou son of man, with the breaking of thy loins; +and with bitterness sigh before their eyes. + +21:7 And it shall be, when they say unto thee, Wherefore sighest thou? +that thou shalt answer, For the tidings; because it cometh: and every +heart shall melt, and all hands shall be feeble, and every spirit +shall faint, and all knees shall be weak as water: behold, it cometh, +and shall be brought to pass, saith the Lord GOD. + +21:8 Again the word of the LORD came unto me, saying, 21:9 Son of man, +prophesy, and say, Thus saith the LORD; Say, A sword, a sword is +sharpened, and also furbished: 21:10 It is sharpened to make a sore +slaughter; it is furbished that it may glitter: should we then make +mirth? it contemneth the rod of my son, as every tree. + +21:11 And he hath given it to be furbished, that it may be handled: +this sword is sharpened, and it is furbished, to give it into the hand +of the slayer. + +21:12 Cry and howl, son of man: for it shall be upon my people, it +shall be upon all the princes of Israel: terrors by reason of the +sword shall be upon my people: smite therefore upon thy thigh. + +21:13 Because it is a trial, and what if the sword contemn even the +rod? it shall be no more, saith the Lord GOD. + +21:14 Thou therefore, son of man, prophesy, and smite thine hands +together. and let the sword be doubled the third time, the sword of +the slain: it is the sword of the great men that are slain, which +entereth into their privy chambers. + +21:15 I have set the point of the sword against all their gates, that +their heart may faint, and their ruins be multiplied: ah! it is made +bright, it is wrapped up for the slaughter. + +21:16 Go thee one way or other, either on the right hand, or on the +left, whithersoever thy face is set. + +21:17 I will also smite mine hands together, and I will cause my fury +to rest: I the LORD have said it. + +21:18 The word of the LORD came unto me again, saying, 21:19 Also, +thou son of man, appoint thee two ways, that the sword of the king of +Babylon may come: both twain shall come forth out of one land: and +choose thou a place, choose it at the head of the way to the city. + +21:20 Appoint a way, that the sword may come to Rabbath of the +Ammonites, and to Judah in Jerusalem the defenced. + +21:21 For the king of Babylon stood at the parting of the way, at the +head of the two ways, to use divination: he made his arrows bright, he +consulted with images, he looked in the liver. + +21:22 At his right hand was the divination for Jerusalem, to appoint +captains, to open the mouth in the slaughter, to lift up the voice +with shouting, to appoint battering rams against the gates, to cast a +mount, and to build a fort. + +21:23 And it shall be unto them as a false divination in their sight, +to them that have sworn oaths: but he will call to remembrance the +iniquity, that they may be taken. + +21:24 Therefore thus saith the Lord GOD; Because ye have made your +iniquity to be remembered, in that your transgressions are discovered, +so that in all your doings your sins do appear; because, I say, that +ye are come to remembrance, ye shall be taken with the hand. + +21:25 And thou, profane wicked prince of Israel, whose day is come, +when iniquity shall have an end, 21:26 Thus saith the Lord GOD; Remove +the diadem, and take off the crown: this shall not be the same: exalt +him that is low, and abase him that is high. + +21:27 I will overturn, overturn, overturn, it: and it shall be no +more, until he come whose right it is; and I will give it him. + +21:28 And thou, son of man, prophesy and say, Thus saith the Lord GOD +concerning the Ammonites, and concerning their reproach; even say +thou, The sword, the sword is drawn: for the slaughter it is +furbished, to consume because of the glittering: 21:29 Whiles they see +vanity unto thee, whiles they divine a lie unto thee, to bring thee +upon the necks of them that are slain, of the wicked, whose day is +come, when their iniquity shall have an end. + +21:30 Shall I cause it to return into his sheath? I will judge thee in +the place where thou wast created, in the land of thy nativity. + +21:31 And I will pour out mine indignation upon thee, I will blow +against thee in the fire of my wrath, and deliver thee into the hand +of brutish men, and skilful to destroy. + +21:32 Thou shalt be for fuel to the fire; thy blood shall be in the +midst of the land; thou shalt be no more remembered: for I the LORD +have spoken it. + +22:1 Moreover the word of the LORD came unto me, saying, 22:2 Now, +thou son of man, wilt thou judge, wilt thou judge the bloody city? +yea, thou shalt shew her all her abominations. + +22:3 Then say thou, Thus saith the Lord GOD, The city sheddeth blood +in the midst of it, that her time may come, and maketh idols against +herself to defile herself. + +22:4 Thou art become guilty in thy blood that thou hast shed; and hast +defiled thyself in thine idols which thou hast made; and thou hast +caused thy days to draw near, and art come even unto thy years: +therefore have I made thee a reproach unto the heathen, and a mocking +to all countries. + +22:5 Those that be near, and those that be far from thee, shall mock +thee, which art infamous and much vexed. + +22:6 Behold, the princes of Israel, every one were in thee to their +power to shed blood. + +22:7 In thee have they set light by father and mother: in the midst of +thee have they dealt by oppression with the stranger: in thee have +they vexed the fatherless and the widow. + +22:8 Thou hast despised mine holy things, and hast profaned my +sabbaths. + +22:9 In thee are men that carry tales to shed blood: and in thee they +eat upon the mountains: in the midst of thee they commit lewdness. + +22:10 In thee have they discovered their fathers' nakedness: in thee +have they humbled her that was set apart for pollution. + +22:11 And one hath committed abomination with his neighbour's wife; +and another hath lewdly defiled his daughter in law; and another in +thee hath humbled his sister, his father's daughter. + +22:12 In thee have they taken gifts to shed blood; thou hast taken +usury and increase, and thou hast greedily gained of thy neighbours by +extortion, and hast forgotten me, saith the Lord GOD. + +22:13 Behold, therefore I have smitten mine hand at thy dishonest gain +which thou hast made, and at thy blood which hath been in the midst of +thee. + +22:14 Can thine heart endure, or can thine hands be strong, in the +days that I shall deal with thee? I the LORD have spoken it, and will +do it. + +22:15 And I will scatter thee among the heathen, and disperse thee in +the countries, and will consume thy filthiness out of thee. + +22:16 And thou shalt take thine inheritance in thyself in the sight of +the heathen, and thou shalt know that I am the LORD. + +22:17 And the word of the LORD came unto me, saying, 22:18 Son of man, +the house of Israel is to me become dross: all they are brass, and +tin, and iron, and lead, in the midst of the furnace; they are even +the dross of silver. + +22:19 Therefore thus saith the Lord GOD; Because ye are all become +dross, behold, therefore I will gather you into the midst of +Jerusalem. + +22:20 As they gather silver, and brass, and iron, and lead, and tin, +into the midst of the furnace, to blow the fire upon it, to melt it; +so will I gather you in mine anger and in my fury, and I will leave +you there, and melt you. + +22:21 Yea, I will gather you, and blow upon you in the fire of my +wrath, and ye shall be melted in the midst therof. + +22:22 As silver is melted in the midst of the furnace, so shall ye be +melted in the midst thereof; and ye shall know that I the LORD have +poured out my fury upon you. + +22:23 And the word of the LORD came unto me, saying, 22:24 Son of man, +say unto her, Thou art the land that is not cleansed, nor rained upon +in the day of indignation. + +22:25 There is a conspiracy of her prophets in the midst thereof, like +a roaring lion ravening the prey; they have devoured souls; they have +taken the treasure and precious things; they have made her many widows +in the midst thereof. + +22:26 Her priests have violated my law, and have profaned mine holy +things: they have put no difference between the holy and profane, +neither have they shewed difference between the unclean and the clean, +and have hid their eyes from my sabbaths, and I am profaned among +them. + +22:27 Her princes in the midst thereof are like wolves ravening the +prey, to shed blood, and to destroy souls, to get dishonest gain. + +22:28 And her prophets have daubed them with untempered morter, seeing +vanity, and divining lies unto them, saying, Thus saith the Lord GOD, +when the LORD hath not spoken. + +22:29 The people of the land have used oppression, and exercised +robbery, and have vexed the poor and needy: yea, they have oppressed +the stranger wrongfully. + +22:30 And I sought for a man among them, that should make up the +hedge, and stand in the gap before me for the land, that I should not +destroy it: but I found none. + +22:31 Therefore have I poured out mine indignation upon them; I have +consumed them with the fire of my wrath: their own way have I +recompensed upon their heads, saith the Lord GOD. + +23:1 The word of the LORD came again unto me, saying, 23:2 Son of man, +there were two women, the daughters of one mother: 23:3 And they +committed whoredoms in Egypt; they committed whoredoms in their youth: +there were their breasts pressed, and there they bruised the teats of +their virginity. + +23:4 And the names of them were Aholah the elder, and Aholibah her +sister: and they were mine, and they bare sons and daughters. Thus +were their names; Samaria is Aholah, and Jerusalem Aholibah. + +23:5 And Aholah played the harlot when she was mine; and she doted on +her lovers, on the Assyrians her neighbours, 23:6 Which were clothed +with blue, captains and rulers, all of them desirable young men, +horsemen riding upon horses. + +23:7 Thus she committed her whoredoms with them, with all them that +were the chosen men of Assyria, and with all on whom she doted: with +all their idols she defiled herself. + +23:8 Neither left she her whoredoms brought from Egypt: for in her +youth they lay with her, and they bruised the breasts of her +virginity, and poured their whoredom upon her. + +23:9 Wherefore I have delivered her into the hand of her lovers, into +the hand of the Assyrians, upon whom she doted. + +23:10 These discovered her nakedness: they took her sons and her +daughters, and slew her with the sword: and she became famous among +women; for they had executed judgment upon her. + +23:11 And when her sister Aholibah saw this, she was more corrupt in +her inordinate love than she, and in her whoredoms more than her +sister in her whoredoms. + +23:12 She doted upon the Assyrians her neighbours, captains and rulers +clothed most gorgeously, horsemen riding upon horses, all of them +desirable young men. + +23:13 Then I saw that she was defiled, that they took both one way, +23:14 And that she increased her whoredoms: for when she saw men +pourtrayed upon the wall, the images of the Chaldeans pourtrayed with +vermilion, 23:15 Girded with girdles upon their loins, exceeding in +dyed attire upon their heads, all of them princes to look to, after +the manner of the Babylonians of Chaldea, the land of their nativity: +23:16 And as soon as she saw them with her eyes, she doted upon them, +and sent messengers unto them into Chaldea. + +23:17 And the Babylonians came to her into the bed of love, and they +defiled her with their whoredom, and she was polluted with them, and +her mind was alienated from them. + +23:18 So she discovered her whoredoms, and discovered her nakedness: +then my mind was alienated from her, like as my mind was alienated +from her sister. + +23:19 Yet she multiplied her whoredoms, in calling to remembrance the +days of her youth, wherein she had played the harlot in the land of +Egypt. + +23:20 For she doted upon their paramours, whose flesh is as the flesh +of asses, and whose issue is like the issue of horses. + +23:21 Thus thou calledst to remembrance the lewdness of thy youth, in +bruising thy teats by the Egyptians for the paps of thy youth. + +23:22 Therefore, O Aholibah, thus saith the Lord GOD; Behold, I will +raise up thy lovers against thee, from whom thy mind is alienated, and +I will bring them against thee on every side; 23:23 The Babylonians, +and all the Chaldeans, Pekod, and Shoa, and Koa, and all the Assyrians +with them: all of them desirable young men, captains and rulers, great +lords and renowned, all of them riding upon horses. + +23:24 And they shall come against thee with chariots, wagons, and +wheels, and with an assembly of people, which shall set against thee +buckler and shield and helmet round about: and I will set judgment +before them, and they shall judge thee according to their judgments. + +23:25 And I will set my jealousy against thee, and they shall deal +furiously with thee: they shall take away thy nose and thine ears; and +thy remnant shall fall by the sword: they shall take thy sons and thy +daughters; and thy residue shall be devoured by the fire. + +23:26 They shall also strip thee out of thy clothes, and take away thy +fair jewels. + +23:27 Thus will I make thy lewdness to cease from thee, and thy +whoredom brought from the land of Egypt: so that thou shalt not lift +up thine eyes unto them, nor remember Egypt any more. + +23:28 For thus saith the Lord GOD; Behold, I will deliver thee into +the hand of them whom thou hatest, into the hand of them from whom thy +mind is alienated: 23:29 And they shall deal with thee hatefully, and +shall take away all thy labour, and shall leave thee naked and bare: +and the nakedness of thy whoredoms shall be discovered, both thy +lewdness and thy whoredoms. + +23:30 I will do these things unto thee, because thou hast gone a +whoring after the heathen, and because thou art polluted with their +idols. + +23:31 Thou hast walked in the way of thy sister; therefore will I give +her cup into thine hand. + +23:32 Thus saith the Lord GOD; Thou shalt drink of thy sister's cup +deep and large: thou shalt be laughed to scorn and had in derision; it +containeth much. + +23:33 Thou shalt be filled with drunkenness and sorrow, with the cup +of astonishment and desolation, with the cup of thy sister Samaria. + +23:34 Thou shalt even drink it and suck it out, and thou shalt break +the sherds thereof, and pluck off thine own breasts: for I have spoken +it, saith the Lord GOD. + +23:35 Therefore thus saith the Lord GOD; Because thou hast forgotten +me, and cast me behind thy back, therefore bear thou also thy lewdness +and thy whoredoms. + +23:36 The LORD said moreover unto me; Son of man, wilt thou judge +Aholah and Aholibah? yea, declare unto them their abominations; 23:37 +That they have committed adultery, and blood is in their hands, and +with their idols have they committed adultery, and have also caused +their sons, whom they bare unto me, to pass for them through the fire, +to devour them. + +23:38 Moreover this they have done unto me: they have defiled my +sanctuary in the same day, and have profaned my sabbaths. + +23:39 For when they had slain their children to their idols, then they +came the same day into my sanctuary to profane it; and, lo, thus have +they done in the midst of mine house. + +23:40 And furthermore, that ye have sent for men to come from far, +unto whom a messenger was sent; and, lo, they came: for whom thou +didst wash thyself, paintedst thy eyes, and deckedst thyself with +ornaments, 23:41 And satest upon a stately bed, and a table prepared +before it, whereupon thou hast set mine incense and mine oil. + +23:42 And a voice of a multitude being at ease was with her: and with +the men of the common sort were brought Sabeans from the wilderness, +which put bracelets upon their hands, and beautiful crowns upon their +heads. + +23:43 Then said I unto her that was old in adulteries, Will they now +commit whoredoms with her, and she with them? 23:44 Yet they went in +unto her, as they go in unto a woman that playeth the harlot: so went +they in unto Aholah and unto Aholibah, the lewd women. + +23:45 And the righteous men, they shall judge them after the manner of +adulteresses, and after the manner of women that shed blood; because +they are adulteresses, and blood is in their hands. + +23:46 For thus saith the Lord GOD; I will bring up a company upon +them, and will give them to be removed and spoiled. + +23:47 And the company shall stone them with stones, and dispatch them +with their swords; they shall slay their sons and their daughters, and +burn up their houses with fire. + +23:48 Thus will I cause lewdness to cease out of the land, that all +women may be taught not to do after your lewdness. + +23:49 And they shall recompense your lewdness upon you, and ye shall +bear the sins of your idols: and ye shall know that I am the Lord GOD. + +24:1 Again in the ninth year, in the tenth month, in the tenth day of +the month, the word of the LORD came unto me, saying, 24:2 Son of man, +write thee the name of the day, even of this same day: the king of +Babylon set himself against Jerusalem this same day. + +24:3 And utter a parable unto the rebellious house, and say unto them, +Thus saith the Lord GOD; Set on a pot, set it on, and also pour water +into it: 24:4 Gather the pieces thereof into it, even every good +piece, the thigh, and the shoulder; fill it with the choice bones. + +24:5 Take the choice of the flock, and burn also the bones under it, +and make it boil well, and let them seethe the bones of it therein. + +24:6 Wherefore thus saith the Lord GOD; Woe to the bloody city, to the +pot whose scum is therein, and whose scum is not gone out of it! bring +it out piece by piece; let no lot fall upon it. + +24:7 For her blood is in the midst of her; she set it upon the top of +a rock; she poured it not upon the ground, to cover it with dust; 24:8 +That it might cause fury to come up to take vengeance; I have set her +blood upon the top of a rock, that it should not be covered. + +24:9 Therefore thus saith the Lord GOD; Woe to the bloody city! I will +even make the pile for fire great. + +24:10 Heap on wood, kindle the fire, consume the flesh, and spice it +well, and let the bones be burned. + +24:11 Then set it empty upon the coals thereof, that the brass of it +may be hot, and may burn, and that the filthiness of it may be molten +in it, that the scum of it may be consumed. + +24:12 She hath wearied herself with lies, and her great scum went not +forth out of her: her scum shall be in the fire. + +24:13 In thy filthiness is lewdness: because I have purged thee, and +thou wast not purged, thou shalt not be purged from thy filthiness any +more, till I have caused my fury to rest upon thee. + +24:14 I the LORD have spoken it: it shall come to pass, and I will do +it; I will not go back, neither will I spare, neither will I repent; +according to thy ways, and according to thy doings, shall they judge +thee, saith the Lord GOD. + +24:15 Also the word of the LORD came unto me, saying, 24:16 Son of +man, behold, I take away from thee the desire of thine eyes with a +stroke: yet neither shalt thou mourn nor weep, neither shall thy tears +run down. + +24:17 Forbear to cry, make no mourning for the dead, bind the tire of +thine head upon thee, and put on thy shoes upon thy feet, and cover +not thy lips, and eat not the bread of men. + +24:18 So I spake unto the people in the morning: and at even my wife +died; and I did in the morning as I was commanded. + +24:19 And the people said unto me, Wilt thou not tell us what these +things are to us, that thou doest so? 24:20 Then I answered them, The +word of the LORD came unto me, saying, 24:21 Speak unto the house of +Israel, Thus saith the Lord GOD; Behold, I will profane my sanctuary, +the excellency of your strength, the desire of your eyes, and that +which your soul pitieth; and your sons and your daughters whom ye have +left shall fall by the sword. + +24:22 And ye shall do as I have done: ye shall not cover your lips, +nor eat the bread of men. + +24:23 And your tires shall be upon your heads, and your shoes upon +your feet: ye shall not mourn nor weep; but ye shall pine away for +your iniquities, and mourn one toward another. + +24:24 Thus Ezekiel is unto you a sign: according to all that he hath +done shall ye do: and when this cometh, ye shall know that I am the +Lord GOD. + +24:25 Also, thou son of man, shall it not be in the day when I take +from them their strength, the joy of their glory, the desire of their +eyes, and that whereupon they set their minds, their sons and their +daughters, 24:26 That he that escapeth in that day shall come unto +thee, to cause thee to hear it with thine ears? 24:27 In that day +shall thy mouth be opened to him which is escaped, and thou shalt +speak, and be no more dumb: and thou shalt be a sign unto them; and +they shall know that I am the LORD. + +25:1 The word of the LORD came again unto me, saying, 25:2 Son of man, +set thy face against the Ammonites, and prophesy against them; 25:3 +And say unto the Ammonites, Hear the word of the Lord GOD; Thus saith +the Lord GOD; Because thou saidst, Aha, against my sanctuary, when it +was profaned; and against the land of Israel, when it was desolate; +and against the house of Judah, when they went into captivity; 25:4 +Behold, therefore I will deliver thee to the men of the east for a +possession, and they shall set their palaces in thee, and make their +dwellings in thee: they shall eat thy fruit, and they shall drink thy +milk. + +25:5 And I will make Rabbah a stable for camels, and the Ammonites a +couching place for flocks: and ye shall know that I am the LORD. + +25:6 For thus saith the Lord GOD; Because thou hast clapped thine +hands, and stamped with the feet, and rejoiced in heart with all thy +despite against the land of Israel; 25:7 Behold, therefore I will +stretch out mine hand upon thee, and will deliver thee for a spoil to +the heathen; and I will cut thee off from the people, and I will cause +thee to perish out of the countries: I will destroy thee; and thou +shalt know that I am the LORD. + +25:8 Thus saith the Lord GOD; Because that Moab and Seir do say, +Behold, the house of Judah is like unto all the heathen; 25:9 +Therefore, behold, I will open the side of Moab from the cities, from +his cities which are on his frontiers, the glory of the country, +Bethjeshimoth, Baalmeon, and Kiriathaim, 25:10 Unto the men of the +east with the Ammonites, and will give them in possession, that the +Ammonites may not be remembered among the nations. + +25:11 And I will execute judgments upon Moab; and they shall know that +I am the LORD. + +25:12 Thus saith the Lord GOD; Because that Edom hath dealt against +the house of Judah by taking vengeance, and hath greatly offended, and +revenged himself upon them; 25:13 Therefore thus saith the Lord GOD; I +will also stretch out mine hand upon Edom, and will cut off man and +beast from it; and I will make it desolate from Teman; and they of +Dedan shall fall by the sword. + +25:14 And I will lay my vengeance upon Edom by the hand of my people +Israel: and they shall do in Edom according to mine anger and +according to my fury; and they shall know my vengeance, saith the Lord +GOD. + +25:15 Thus saith the Lord GOD; Because the Philistines have dealt by +revenge, and have taken vengeance with a despiteful heart, to destroy +it for the old hatred; 25:16 Therefore thus saith the Lord GOD; +Behold, I will stretch out mine hand upon the Philistines, and I will +cut off the Cherethims, and destroy the remnant of the sea coast. + +25:17 And I will execute great vengeance upon them with furious +rebukes; and they shall know that I am the LORD, when I shall lay my +vengeance upon them. + +26:1 And it came to pass in the eleventh year, in the first day of the +month, that the word of the LORD came unto me, saying, 26:2 Son of +man, because that Tyrus hath said against Jerusalem, Aha, she is +broken that was the gates of the people: she is turned unto me: I +shall be replenished, now she is laid waste: 26:3 Therefore thus saith +the Lord GOD; Behold, I am against thee, O Tyrus, and will cause many +nations to come up against thee, as the sea causeth his waves to come +up. + +26:4 And they shall destroy the walls of Tyrus, and break down her +towers: I will also scrape her dust from her, and make her like the +top of a rock. + +26:5 It shall be a place for the spreading of nets in the midst of the +sea: for I have spoken it, saith the Lord GOD: and it shall become a +spoil to the nations. + +26:6 And her daughters which are in the field shall be slain by the +sword; and they shall know that I am the LORD. + +26:7 For thus saith the Lord GOD; Behold, I will bring upon Tyrus +Nebuchadrezzar king of Babylon, a king of kings, from the north, with +horses, and with chariots, and with horsemen, and companies, and much +people. + +26:8 He shall slay with the sword thy daughters in the field: and he +shall make a fort against thee, and cast a mount against thee, and +lift up the buckler against thee. + +26:9 And he shall set engines of war against thy walls, and with his +axes he shall break down thy towers. + +26:10 By reason of the abundance of his horses their dust shall cover +thee: thy walls shall shake at the noise of the horsemen, and of the +wheels, and of the chariots, when he shall enter into thy gates, as +men enter into a city wherein is made a breach. + +26:11 With the hoofs of his horses shall he tread down all thy +streets: he shall slay thy people by the sword, and thy strong +garrisons shall go down to the ground. + +26:12 And they shall make a spoil of thy riches, and make a prey of +thy merchandise: and they shall break down thy walls, and destroy thy +pleasant houses: and they shall lay thy stones and thy timber and thy +dust in the midst of the water. + +26:13 And I will cause the noise of thy songs to cease; and the sound +of thy harps shall be no more heard. + +26:14 And I will make thee like the top of a rock: thou shalt be a +place to spread nets upon; thou shalt be built no more: for I the LORD +have spoken it, saith the Lord GOD. + +26:15 Thus saith the Lord GOD to Tyrus; Shall not the isles shake at +the sound of thy fall, when the wounded cry, when the slaughter is +made in the midst of thee? 26:16 Then all the princes of the sea +shall come down from their thrones, and lay away their robes, and put +off their broidered garments: they shall clothe themselves with +trembling; they shall sit upon the ground, and shall tremble at every +moment, and be astonished at thee. + +26:17 And they shall take up a lamentation for thee, and say to thee, +How art thou destroyed, that wast inhabited of seafaring men, the +renowned city, which wast strong in the sea, she and her inhabitants, +which cause their terror to be on all that haunt it! 26:18 Now shall +the isles tremble in the day of thy fall; yea, the isles that are in +the sea shall be troubled at thy departure. + +26:19 For thus saith the Lord GOD; When I shall make thee a desolate +city, like the cities that are not inhabited; when I shall bring up +the deep upon thee, and great waters shall cover thee; 26:20 When I +shall bring thee down with them that descend into the pit, with the +people of old time, and shall set thee in the low parts of the earth, +in places desolate of old, with them that go down to the pit, that +thou be not inhabited; and I shall set glory in the land of the +living; 26:21 I will make thee a terror, and thou shalt be no more: +though thou be sought for, yet shalt thou never be found again, saith +the Lord GOD. + +27:1 The word of the LORD came again unto me, saying, 27:2 Now, thou +son of man, take up a lamentation for Tyrus; 27:3 And say unto Tyrus, +O thou that art situate at the entry of the sea, which art a merchant +of the people for many isles, Thus saith the Lord GOD; O Tyrus, thou +hast said, I am of perfect beauty. + +27:4 Thy borders are in the midst of the seas, thy builders have +perfected thy beauty. + +27:5 They have made all thy ship boards of fir trees of Senir: they +have taken cedars from Lebanon to make masts for thee. + +27:6 Of the oaks of Bashan have they made thine oars; the company of +the Ashurites have made thy benches of ivory, brought out of the isles +of Chittim. + +27:7 Fine linen with broidered work from Egypt was that which thou +spreadest forth to be thy sail; blue and purple from the isles of +Elishah was that which covered thee. + +27:8 The inhabitants of Zidon and Arvad were thy mariners: thy wise +men, O Tyrus, that were in thee, were thy pilots. + +27:9 The ancients of Gebal and the wise men thereof were in thee thy +calkers: all the ships of the sea with their mariners were in thee to +occupy thy merchandise. + +27:10 They of Persia and of Lud and of Phut were in thine army, thy +men of war: they hanged the shield and helmet in thee; they set forth +thy comeliness. + +27:11 The men of Arvad with thine army were upon thy walls round +about, and the Gammadims were in thy towers: they hanged their shields +upon thy walls round about; they have made thy beauty perfect. + +27:12 Tarshish was thy merchant by reason of the multitude of all kind +of riches; with silver, iron, tin, and lead, they traded in thy fairs. + +27:13 Javan, Tubal, and Meshech, they were thy merchants: they traded +the persons of men and vessels of brass in thy market. + +27:14 They of the house of Togarmah traded in thy fairs with horses +and horsemen and mules. + +27:15 The men of Dedan were thy merchants; many isles were the +merchandise of thine hand: they brought thee for a present horns of +ivory and ebony. + +27:16 Syria was thy merchant by reason of the multitude of the wares +of thy making: they occupied in thy fairs with emeralds, purple, and +broidered work, and fine linen, and coral, and agate. + +27:17 Judah, and the land of Israel, they were thy merchants: they +traded in thy market wheat of Minnith, and Pannag, and honey, and oil, +and balm. + +27:18 Damascus was thy merchant in the multitude of the wares of thy +making, for the multitude of all riches; in the wine of Helbon, and +white wool. + +27:19 Dan also and Javan going to and fro occupied in thy fairs: +bright iron, cassia, and calamus, were in thy market. + +27:20 Dedan was thy merchant in precious clothes for chariots. + +27:21 Arabia, and all the princes of Kedar, they occupied with thee in +lambs, and rams, and goats: in these were they thy merchants. + +27:22 The merchants of Sheba and Raamah, they were thy merchants: they +occupied in thy fairs with chief of all spices, and with all precious +stones, and gold. + +27:23 Haran, and Canneh, and Eden, the merchants of Sheba, Asshur, and +Chilmad, were thy merchants. + +27:24 These were thy merchants in all sorts of things, in blue +clothes, and broidered work, and in chests of rich apparel, bound with +cords, and made of cedar, among thy merchandise. + +27:25 The ships of Tarshish did sing of thee in thy market: and thou +wast replenished, and made very glorious in the midst of the seas. + +27:26 Thy rowers have brought thee into great waters: the east wind +hath broken thee in the midst of the seas. + +27:27 Thy riches, and thy fairs, thy merchandise, thy mariners, and +thy pilots, thy calkers, and the occupiers of thy merchandise, and all +thy men of war, that are in thee, and in all thy company which is in +the midst of thee, shall fall into the midst of the seas in the day of +thy ruin. + +27:28 The suburbs shall shake at the sound of the cry of thy pilots. + +27:29 And all that handle the oar, the mariners, and all the pilots of +the sea, shall come down from their ships, they shall stand upon the +land; 27:30 And shall cause their voice to be heard against thee, and +shall cry bitterly, and shall cast up dust upon their heads, they +shall wallow themselves in the ashes: 27:31 And they shall make +themselves utterly bald for thee, and gird them with sackcloth, and +they shall weep for thee with bitterness of heart and bitter wailing. + +27:32 And in their wailing they shall take up a lamentation for thee, +and lament over thee, saying, What city is like Tyrus, like the +destroyed in the midst of the sea? 27:33 When thy wares went forth +out of the seas, thou filledst many people; thou didst enrich the +kings of the earth with the multitude of thy riches and of thy +merchandise. + +27:34 In the time when thou shalt be broken by the seas in the depths +of the waters thy merchandise and all thy company in the midst of thee +shall fall. + +27:35 All the inhabitants of the isles shall be astonished at thee, +and their kings shall be sore afraid, they shall be troubled in their +countenance. + +27:36 The merchants among the people shall hiss at thee; thou shalt be +a terror, and never shalt be any more. + +28:1 The word of the LORD came again unto me, saying, 28:2 Son of man, +say unto the prince of Tyrus, Thus saith the Lord GOD; Because thine +heart is lifted up, and thou hast said, I am a God, I sit in the seat +of God, in the midst of the seas; yet thou art a man, and not God, +though thou set thine heart as the heart of God: 28:3 Behold, thou art +wiser than Daniel; there is no secret that they can hide from thee: +28:4 With thy wisdom and with thine understanding thou hast gotten +thee riches, and hast gotten gold and silver into thy treasures: 28:5 +By thy great wisdom and by thy traffick hast thou increased thy +riches, and thine heart is lifted up because of thy riches: 28:6 +Therefore thus saith the Lord GOD; Because thou hast set thine heart +as the heart of God; 28:7 Behold, therefore I will bring strangers +upon thee, the terrible of the nations: and they shall draw their +swords against the beauty of thy wisdom, and they shall defile thy +brightness. + +28:8 They shall bring thee down to the pit, and thou shalt die the +deaths of them that are slain in the midst of the seas. + +28:9 Wilt thou yet say before him that slayeth thee, I am God? but +thou shalt be a man, and no God, in the hand of him that slayeth thee. + +28:10 Thou shalt die the deaths of the uncircumcised by the hand of +strangers: for I have spoken it, saith the Lord GOD. + +28:11 Moreover the word of the LORD came unto me, saying, 28:12 Son of +man, take up a lamentation upon the king of Tyrus, and say unto him, +Thus saith the Lord GOD; Thou sealest up the sum, full of wisdom, and +perfect in beauty. + +28:13 Thou hast been in Eden the garden of God; every precious stone +was thy covering, the sardius, topaz, and the diamond, the beryl, the +onyx, and the jasper, the sapphire, the emerald, and the carbuncle, +and gold: the workmanship of thy tabrets and of thy pipes was prepared +in thee in the day that thou wast created. + +28:14 Thou art the anointed cherub that covereth; and I have set thee +so: thou wast upon the holy mountain of God; thou hast walked up and +down in the midst of the stones of fire. + +28:15 Thou wast perfect in thy ways from the day that thou wast +created, till iniquity was found in thee. + +28:16 By the multitude of thy merchandise they have filled the midst +of thee with violence, and thou hast sinned: therefore I will cast +thee as profane out of the mountain of God: and I will destroy thee, O +covering cherub, from the midst of the stones of fire. + +28:17 Thine heart was lifted up because of thy beauty, thou hast +corrupted thy wisdom by reason of thy brightness: I will cast thee to +the ground, I will lay thee before kings, that they may behold thee. + +28:18 Thou hast defiled thy sanctuaries by the multitude of thine +iniquities, by the iniquity of thy traffick; therefore will I bring +forth a fire from the midst of thee, it shall devour thee, and I will +bring thee to ashes upon the earth in the sight of all them that +behold thee. + +28:19 All they that know thee among the people shall be astonished at +thee: thou shalt be a terror, and never shalt thou be any more. + +28:20 Again the word of the LORD came unto me, saying, 28:21 Son of +man, set thy face against Zidon, and prophesy against it, 28:22 And +say, Thus saith the Lord GOD; Behold, I am against thee, O Zidon; and +I will be glorified in the midst of thee: and they shall know that I +am the LORD, when I shall have executed judgments in her, and shall be +sanctified in her. + +28:23 For I will send into her pestilence, and blood into her streets; +and the wounded shall be judged in the midst of her by the sword upon +her on every side; and they shall know that I am the LORD. + +28:24 And there shall be no more a pricking brier unto the house of +Israel, nor any grieving thorn of all that are round about them, that +despised them; and they shall know that I am the Lord GOD. + +28:25 Thus saith the Lord GOD; When I shall have gathered the house of +Israel from the people among whom they are scattered, and shall be +sanctified in them in the sight of the heathen, then shall they dwell +in their land that I have given to my servant Jacob. + +28:26 And they shall dwell safely therein, and shall build houses, and +plant vineyards; yea, they shall dwell with confidence, when I have +executed judgments upon all those that despise them round about them; +and they shall know that I am the LORD their God. + +29:1 In the tenth year, in the tenth month, in the twelfth day of the +month, the word of the LORD came unto me, saying, 29:2 Son of man, set +thy face against Pharaoh king of Egypt, and prophesy against him, and +against all Egypt: 29:3 Speak, and say, Thus saith the Lord GOD; +Behold, I am against thee, Pharaoh king of Egypt, the great dragon +that lieth in the midst of his rivers, which hath said, My river is +mine own, and I have made it for myself. + +29:4 But I will put hooks in thy jaws, and I will cause the fish of +thy rivers to stick unto thy scales, and I will bring thee up out of +the midst of thy rivers, and all the fish of thy rivers shall stick +unto thy scales. + +29:5 And I will leave thee thrown into the wilderness, thee and all +the fish of thy rivers: thou shalt fall upon the open fields; thou +shalt not be brought together, nor gathered: I have given thee for +meat to the beasts of the field and to the fowls of the heaven. + +29:6 And all the inhabitants of Egypt shall know that I am the LORD, +because they have been a staff of reed to the house of Israel. + +29:7 When they took hold of thee by thy hand, thou didst break, and +rend all their shoulder: and when they leaned upon thee, thou brakest, +and madest all their loins to be at a stand. + +29:8 Therefore thus saith the Lord GOD; Behold, I will bring a sword +upon thee, and cut off man and beast out of thee. + +29:9 And the land of Egypt shall be desolate and waste; and they shall +know that I am the LORD: because he hath said, The river is mine, and +I have made it. + +29:10 Behold, therefore I am against thee, and against thy rivers, and +I will make the land of Egypt utterly waste and desolate, from the +tower of Syene even unto the border of Ethiopia. + +29:11 No foot of man shall pass through it, nor foot of beast shall +pass through it, neither shall it be inhabited forty years. + +29:12 And I will make the land of Egypt desolate in the midst of the +countries that are desolate, and her cities among the cities that are +laid waste shall be desolate forty years: and I will scatter the +Egyptians among the nations, and will disperse them through the +countries. + +29:13 Yet thus saith the Lord GOD; At the end of forty years will I +gather the Egyptians from the people whither they were scattered: +29:14 And I will bring again the captivity of Egypt, and will cause +them to return into the land of Pathros, into the land of their +habitation; and they shall be there a base kingdom. + +29:15 It shall be the basest of the kingdoms; neither shall it exalt +itself any more above the nations: for I will diminish them, that they +shall no more rule over the nations. + +29:16 And it shall be no more the confidence of the house of Israel, +which bringeth their iniquity to remembrance, when they shall look +after them: but they shall know that I am the Lord GOD. + +29:17 And it came to pass in the seven and twentieth year, in the +first month, in the first day of the month, the word of the LORD came +unto me, saying, 29:18 Son of man, Nebuchadrezzar king of Babylon +caused his army to serve a great service against Tyrus: every head was +made bald, and every shoulder was peeled: yet had he no wages, nor his +army, for Tyrus, for the service that he had served against it: 29:19 +Therefore thus saith the Lord GOD; Behold, I will give the land of +Egypt unto Nebuchadrezzar king of Babylon; and he shall take her +multitude, and take her spoil, and take her prey; and it shall be the +wages for his army. + +29:20 I have given him the land of Egypt for his labour wherewith he +served against it, because they wrought for me, saith the Lord GOD. + +29:21 In that day will I cause the horn of the house of Israel to bud +forth, and I will give thee the opening of the mouth in the midst of +them; and they shall know that I am the LORD. + +30:1 The word of the LORD came again unto me, saying, 30:2 Son of man, +prophesy and say, Thus saith the Lord GOD; Howl ye, Woe worth the day! +30:3 For the day is near, even the day of the LORD is near, a cloudy +day; it shall be the time of the heathen. + +30:4 And the sword shall come upon Egypt, and great pain shall be in +Ethiopia, when the slain shall fall in Egypt, and they shall take away +her multitude, and her foundations shall be broken down. + +30:5 Ethiopia, and Libya, and Lydia, and all the mingled people, and +Chub, and the men of the land that is in league, shall fall with them +by the sword. + +30:6 Thus saith the LORD; They also that uphold Egypt shall fall; and +the pride of her power shall come down: from the tower of Syene shall +they fall in it by the sword, saith the Lord GOD. + +30:7 And they shall be desolate in the midst of the countries that are +desolate, and her cities shall be in the midst of the cities that are +wasted. + +30:8 And they shall know that I am the LORD, when I have set a fire in +Egypt, and when all her helpers shall be destroyed. + +30:9 In that day shall messengers go forth from me in ships to make +the careless Ethiopians afraid, and great pain shall come upon them, +as in the day of Egypt: for, lo, it cometh. + +30:10 Thus saith the Lord GOD; I will also make the multitude of Egypt +to cease by the hand of Nebuchadrezzar king of Babylon. + +30:11 He and his people with him, the terrible of the nations, shall +be brought to destroy the land: and they shall draw their swords +against Egypt, and fill the land with the slain. + +30:12 And I will make the rivers dry, and sell the land into the hand +of the wicked: and I will make the land waste, and all that is +therein, by the hand of strangers: I the LORD have spoken it. + +30:13 Thus saith the Lord GOD; I will also destroy the idols, and I +will cause their images to cease out of Noph; and there shall be no +more a prince of the land of Egypt: and I will put a fear in the land +of Egypt. + +30:14 And I will make Pathros desolate, and will set fire in Zoan, and +will execute judgments in No. + +30:15 And I will pour my fury upon Sin, the strength of Egypt; and I +will cut off the multitude of No. + +30:16 And I will set fire in Egypt: Sin shall have great pain, and No +shall be rent asunder, and Noph shall have distresses daily. + +30:17 The young men of Aven and of Pibeseth shall fall by the sword: +and these cities shall go into captivity. + +30:18 At Tehaphnehes also the day shall be darkened, when I shall +break there the yokes of Egypt: and the pomp of her strength shall +cease in her: as for her, a cloud shall cover her, and her daughters +shall go into captivity. + +30:19 Thus will I execute judgments in Egypt: and they shall know that +I am the LORD. + +30:20 And it came to pass in the eleventh year, in the first month, in +the seventh day of the month, that the word of the LORD came unto me, +saying, 30:21 Son of man, I have broken the arm of Pharaoh king of +Egypt; and, lo, it shall not be bound up to be healed, to put a roller +to bind it, to make it strong to hold the sword. + +30:22 Therefore thus saith the Lord GOD; Behold, I am against Pharaoh +king of Egypt, and will break his arms, the strong, and that which was +broken; and I will cause the sword to fall out of his hand. + +30:23 And I will scatter the Egyptians among the nations, and will +disperse them through the countries. + +30:24 And I will strengthen the arms of the king of Babylon, and put +my sword in his hand: but I will break Pharaoh's arms, and he shall +groan before him with the groanings of a deadly wounded man. + +30:25 But I will strengthen the arms of the king of Babylon, and the +arms of Pharaoh shall fall down; and they shall know that I am the +LORD, when I shall put my sword into the hand of the king of Babylon, +and he shall stretch it out upon the land of Egypt. + +30:26 And I will scatter the Egyptians among the nations, and disperse +them among the countries; and they shall know that I am the LORD. + +31:1 And it came to pass in the eleventh year, in the third month, in +the first day of the month, that the word of the LORD came unto me, +saying, 31:2 Son of man, speak unto Pharaoh king of Egypt, and to his +multitude; Whom art thou like in thy greatness? 31:3 Behold, the +Assyrian was a cedar in Lebanon with fair branches, and with a +shadowing shroud, and of an high stature; and his top was among the +thick boughs. + +31:4 The waters made him great, the deep set him up on high with her +rivers running round about his plants, and sent her little rivers unto +all the trees of the field. + +31:5 Therefore his height was exalted above all the trees of the +field, and his boughs were multiplied, and his branches became long +because of the multitude of waters, when he shot forth. + +31:6 All the fowls of heaven made their nests in his boughs, and under +his branches did all the beasts of the field bring forth their young, +and under his shadow dwelt all great nations. + +31:7 Thus was he fair in his greatness, in the length of his branches: +for his root was by great waters. + +31:8 The cedars in the garden of God could not hide him: the fir trees +were not like his boughs, and the chestnut trees were not like his +branches; nor any tree in the garden of God was like unto him in his +beauty. + +31:9 I have made him fair by the multitude of his branches: so that +all the trees of Eden, that were in the garden of God, envied him. + +31:10 Therefore thus saith the Lord GOD; Because thou hast lifted up +thyself in height, and he hath shot up his top among the thick boughs, +and his heart is lifted up in his height; 31:11 I have therefore +delivered him into the hand of the mighty one of the heathen; he shall +surely deal with him: I have driven him out for his wickedness. + +31:12 And strangers, the terrible of the nations, have cut him off, +and have left him: upon the mountains and in all the valleys his +branches are fallen, and his boughs are broken by all the rivers of +the land; and all the people of the earth are gone down from his +shadow, and have left him. + +31:13 Upon his ruin shall all the fowls of the heaven remain, and all +the beasts of the field shall be upon his branches: 31:14 To the end +that none of all the trees by the waters exalt themselves for their +height, neither shoot up their top among the thick boughs, neither +their trees stand up in their height, all that drink water: for they +are all delivered unto death, to the nether parts of the earth, in the +midst of the children of men, with them that go down to the pit. + +31:15 Thus saith the Lord GOD; In the day when he went down to the +grave I caused a mourning: I covered the deep for him, and I +restrained the floods thereof, and the great waters were stayed: and I +caused Lebanon to mourn for him, and all the trees of the field +fainted for him. + +31:16 I made the nations to shake at the sound of his fall, when I +cast him down to hell with them that descend into the pit: and all the +trees of Eden, the choice and best of Lebanon, all that drink water, +shall be comforted in the nether parts of the earth. + +31:17 They also went down into hell with him unto them that be slain +with the sword; and they that were his arm, that dwelt under his +shadow in the midst of the heathen. + +31:18 To whom art thou thus like in glory and in greatness among the +trees of Eden? yet shalt thou be brought down with the trees of Eden +unto the nether parts of the earth: thou shalt lie in the midst of the +uncircumcised with them that be slain by the sword. This is Pharaoh +and all his multitude, saith the Lord GOD. + +32:1 And it came to pass in the twelfth year, in the twelfth month, in +the first day of the month, that the word of the LORD came unto me, +saying, 32:2 Son of man, take up a lamentation for Pharaoh king of +Egypt, and say unto him, Thou art like a young lion of the nations, +and thou art as a whale in the seas: and thou camest forth with thy +rivers, and troubledst the waters with thy feet, and fouledst their +rivers. + +32:3 Thus saith the Lord GOD; I will therefore spread out my net over +thee with a company of many people; and they shall bring thee up in my +net. + +32:4 Then will I leave thee upon the land, I will cast thee forth upon +the open field, and will cause all the fowls of the heaven to remain +upon thee, and I will fill the beasts of the whole earth with thee. + +32:5 And I will lay thy flesh upon the mountains, and fill the valleys +with thy height. + +32:6 I will also water with thy blood the land wherein thou swimmest, +even to the mountains; and the rivers shall be full of thee. + +32:7 And when I shall put thee out, I will cover the heaven, and make +the stars thereof dark; I will cover the sun with a cloud, and the +moon shall not give her light. + +32:8 All the bright lights of heaven will I make dark over thee, and +set darkness upon thy land, saith the Lord GOD. + +32:9 I will also vex the hearts of many people, when I shall bring thy +destruction among the nations, into the countries which thou hast not +known. + +32:10 Yea, I will make many people amazed at thee, and their kings +shall be horribly afraid for thee, when I shall brandish my sword +before them; and they shall tremble at every moment, every man for his +own life, in the day of thy fall. + +32:11 For thus saith the Lord GOD; The sword of the king of Babylon +shall come upon thee. + +32:12 By the swords of the mighty will I cause thy multitude to fall, +the terrible of the nations, all of them: and they shall spoil the +pomp of Egypt, and all the multitude thereof shall be destroyed. + +32:13 I will destroy also all the beasts thereof from beside the great +waters; neither shall the foot of man trouble them any more, nor the +hoofs of beasts trouble them. + +32:14 Then will I make their waters deep, and cause their rivers to +run like oil, saith the Lord GOD. + +32:15 When I shall make the land of Egypt desolate, and the country +shall be destitute of that whereof it was full, when I shall smite all +them that dwell therein, then shall they know that I am the LORD. + +32:16 This is the lamentation wherewith they shall lament her: the +daughters of the nations shall lament her: they shall lament for her, +even for Egypt, and for all her multitude, saith the Lord GOD. + +32:17 It came to pass also in the twelfth year, in the fifteenth day +of the month, that the word of the LORD came unto me, saying, 32:18 +Son of man, wail for the multitude of Egypt, and cast them down, even +her, and the daughters of the famous nations, unto the nether parts of +the earth, with them that go down into the pit. + +32:19 Whom dost thou pass in beauty? go down, and be thou laid with +the uncircumcised. + +32:20 They shall fall in the midst of them that are slain by the +sword: she is delivered to the sword: draw her and all her multitudes. + +32:21 The strong among the mighty shall speak to him out of the midst +of hell with them that help him: they are gone down, they lie +uncircumcised, slain by the sword. + +32:22 Asshur is there and all her company: his graves are about him: +all of them slain, fallen by the sword: 32:23 Whose graves are set in +the sides of the pit, and her company is round about her grave: all of +them slain, fallen by the sword, which caused terror in the land of +the living. + +32:24 There is Elam and all her multitude round about her grave, all +of them slain, fallen by the sword, which are gone down uncircumcised +into the nether parts of the earth, which caused their terror in the +land of the living; yet have they borne their shame with them that go +down to the pit. + +32:25 They have set her a bed in the midst of the slain with all her +multitude: her graves are round about him: all of them uncircumcised, +slain by the sword: though their terror was caused in the land of the +living, yet have they borne their shame with them that go down to the +pit: he is put in the midst of them that be slain. + +32:26 There is Meshech, Tubal, and all her multitude: her graves are +round about him: all of them uncircumcised, slain by the sword, though +they caused their terror in the land of the living. + +32:27 And they shall not lie with the mighty that are fallen of the +uncircumcised, which are gone down to hell with their weapons of war: +and they have laid their swords under their heads, but their +iniquities shall be upon their bones, though they were the terror of +the mighty in the land of the living. + +32:28 Yea, thou shalt be broken in the midst of the uncircumcised, and +shalt lie with them that are slain with the sword. + +32:29 There is Edom, her kings, and all her princes, which with their +might are laid by them that were slain by the sword: they shall lie +with the uncircumcised, and with them that go down to the pit. + +32:30 There be the princes of the north, all of them, and all the +Zidonians, which are gone down with the slain; with their terror they +are ashamed of their might; and they lie uncircumcised with them that +be slain by the sword, and bear their shame with them that go down to +the pit. + +32:31 Pharaoh shall see them, and shall be comforted over all his +multitude, even Pharaoh and all his army slain by the sword, saith the +Lord GOD. + +32:32 For I have caused my terror in the land of the living: and he +shall be laid in the midst of the uncircumcised with them that are +slain with the sword, even Pharaoh and all his multitude, saith the +Lord GOD. + +33:1 Again the word of the LORD came unto me, saying, 33:2 Son of man, +speak to the children of thy people, and say unto them, When I bring +the sword upon a land, if the people of the land take a man of their +coasts, and set him for their watchman: 33:3 If when he seeth the +sword come upon the land, he blow the trumpet, and warn the people; +33:4 Then whosoever heareth the sound of the trumpet, and taketh not +warning; if the sword come, and take him away, his blood shall be upon +his own head. + +33:5 He heard the sound of the trumpet, and took not warning; his +blood shall be upon him. But he that taketh warning shall deliver his +soul. + +33:6 But if the watchman see the sword come, and blow not the trumpet, +and the people be not warned; if the sword come, and take any person +from among them, he is taken away in his iniquity; but his blood will +I require at the watchman's hand. + +33:7 So thou, O son of man, I have set thee a watchman unto the house +of Israel; therefore thou shalt hear the word at my mouth, and warn +them from me. + +33:8 When I say unto the wicked, O wicked man, thou shalt surely die; +if thou dost not speak to warn the wicked from his way, that wicked +man shall die in his iniquity; but his blood will I require at thine +hand. + +33:9 Nevertheless, if thou warn the wicked of his way to turn from it; +if he do not turn from his way, he shall die in his iniquity; but thou +hast delivered thy soul. + +33:10 Therefore, O thou son of man, speak unto the house of Israel; +Thus ye speak, saying, If our transgressions and our sins be upon us, +and we pine away in them, how should we then live? 33:11 Say unto +them, As I live, saith the Lord GOD, I have no pleasure in the death +of the wicked; but that the wicked turn from his way and live: turn +ye, turn ye from your evil ways; for why will ye die, O house of +Israel? 33:12 Therefore, thou son of man, say unto the children of +thy people, The righteousness of the righteous shall not deliver him +in the day of his transgression: as for the wickedness of the wicked, +he shall not fall thereby in the day that he turneth from his +wickedness; neither shall the righteous be able to live for his +righteousness in the day that he sinneth. + +33:13 When I shall say to the righteous, that he shall surely live; if +he trust to his own righteousness, and commit iniquity, all his +righteousnesses shall not be remembered; but for his iniquity that he +hath committed, he shall die for it. + +33:14 Again, when I say unto the wicked, Thou shalt surely die; if he +turn from his sin, and do that which is lawful and right; 33:15 If the +wicked restore the pledge, give again that he had robbed, walk in the +statutes of life, without committing iniquity; he shall surely live, +he shall not die. + +33:16 None of his sins that he hath committed shall be mentioned unto +him: he hath done that which is lawful and right; he shall surely +live. + +33:17 Yet the children of thy people say, The way of the Lord is not +equal: but as for them, their way is not equal. + +33:18 When the righteous turneth from his righteousness, and +committeth iniquity, he shall even die thereby. + +33:19 But if the wicked turn from his wickedness, and do that which is +lawful and right, he shall live thereby. + +33:20 Yet ye say, The way of the Lord is not equal. O ye house of +Israel, I will judge you every one after his ways. + +33:21 And it came to pass in the twelfth year of our captivity, in the +tenth month, in the fifth day of the month, that one that had escaped +out of Jerusalem came unto me, saying, The city is smitten. + +33:22 Now the hand of the LORD was upon me in the evening, afore he +that was escaped came; and had opened my mouth, until he came to me in +the morning; and my mouth was opened, and I was no more dumb. + +33:23 Then the word of the LORD came unto me, saying, 33:24 Son of +man, they that inhabit those wastes of the land of Israel speak, +saying, Abraham was one, and he inherited the land: but we are many; +the land is given us for inheritance. + +33:25 Wherefore say unto them, Thus saith the Lord GOD; Ye eat with +the blood, and lift up your eyes toward your idols, and shed blood: +and shall ye possess the land? 33:26 Ye stand upon your sword, ye +work abomination, and ye defile every one his neighbour's wife: and +shall ye possess the land? 33:27 Say thou thus unto them, Thus saith +the Lord GOD; As I live, surely they that are in the wastes shall fall +by the sword, and him that is in the open field will I give to the +beasts to be devoured, and they that be in the forts and in the caves +shall die of the pestilence. + +33:28 For I will lay the land most desolate, and the pomp of her +strength shall cease; and the mountains of Israel shall be desolate, +that none shall pass through. + +33:29 Then shall they know that I am the LORD, when I have laid the +land most desolate because of all their abominations which they have +committed. + +33:30 Also, thou son of man, the children of thy people still are +talking against thee by the walls and in the doors of the houses, and +speak one to another, every one to his brother, saying, Come, I pray +you, and hear what is the word that cometh forth from the LORD. + +33:31 And they come unto thee as the people cometh, and they sit +before thee as my people, and they hear thy words, but they will not +do them: for with their mouth they shew much love, but their heart +goeth after their covetousness. + +33:32 And, lo, thou art unto them as a very lovely song of one that +hath a pleasant voice, and can play well on an instrument: for they +hear thy words, but they do them not. + +33:33 And when this cometh to pass, (lo, it will come,) then shall +they know that a prophet hath been among them. + +34:1 And the word of the LORD came unto me, saying, 34:2 Son of man, +prophesy against the shepherds of Israel, prophesy, and say unto them, +Thus saith the Lord GOD unto the shepherds; Woe be to the shepherds of +Israel that do feed themselves! should not the shepherds feed the +flocks? 34:3 Ye eat the fat, and ye clothe you with the wool, ye kill +them that are fed: but ye feed not the flock. + +34:4 The diseased have ye not strengthened, neither have ye healed +that which was sick, neither have ye bound up that which was broken, +neither have ye brought again that which was driven away, neither have +ye sought that which was lost; but with force and with cruelty have ye +ruled them. + +34:5 And they were scattered, because there is no shepherd: and they +became meat to all the beasts of the field, when they were scattered. + +34:6 My sheep wandered through all the mountains, and upon every high +hill: yea, my flock was scattered upon all the face of the earth, and +none did search or seek after them. + +34:7 Therefore, ye shepherds, hear the word of the LORD; 34:8 As I +live, saith the Lord GOD, surely because my flock became a prey, and +my flock became meat to every beast of the field, because there was no +shepherd, neither did my shepherds search for my flock, but the +shepherds fed themselves, and fed not my flock; 34:9 Therefore, O ye +shepherds, hear the word of the LORD; 34:10 Thus saith the Lord GOD; +Behold, I am against the shepherds; and I will require my flock at +their hand, and cause them to cease from feeding the flock; neither +shall the shepherds feed themselves any more; for I will deliver my +flock from their mouth, that they may not be meat for them. + +34:11 For thus saith the Lord GOD; Behold, I, even I, will both search +my sheep, and seek them out. + +34:12 As a shepherd seeketh out his flock in the day that he is among +his sheep that are scattered; so will I seek out my sheep, and will +deliver them out of all places where they have been scattered in the +cloudy and dark day. + +34:13 And I will bring them out from the people, and gather them from +the countries, and will bring them to their own land, and feed them +upon the mountains of Israel by the rivers, and in all the inhabited +places of the country. + +34:14 I will feed them in a good pasture, and upon the high mountains +of Israel shall their fold be: there shall they lie in a good fold, +and in a fat pasture shall they feed upon the mountains of Israel. + +34:15 I will feed my flock, and I will cause them to lie down, saith +the Lord GOD. + +34:16 I will seek that which was lost, and bring again that which was +driven away, and will bind up that which was broken, and will +strengthen that which was sick: but I will destroy the fat and the +strong; I will feed them with judgment. + +34:17 And as for you, O my flock, thus saith the Lord GOD; Behold, I +judge between cattle and cattle, between the rams and the he goats. + +34:18 Seemeth it a small thing unto you to have eaten up the good +pasture, but ye must tread down with your feet the residue of your +pastures? and to have drunk of the deep waters, but ye must foul the +residue with your feet? 34:19 And as for my flock, they eat that +which ye have trodden with your feet; and they drink that which ye +have fouled with your feet. + +34:20 Therefore thus saith the Lord GOD unto them; Behold, I, even I, +will judge between the fat cattle and between the lean cattle. + +34:21 Because ye have thrust with side and with shoulder, and pushed +all the diseased with your horns, till ye have scattered them abroad; +34:22 Therefore will I save my flock, and they shall no more be a +prey; and I will judge between cattle and cattle. + +34:23 And I will set up one shepherd over them, and he shall feed +them, even my servant David; he shall feed them, and he shall be their +shepherd. + +34:24 And I the LORD will be their God, and my servant David a prince +among them; I the LORD have spoken it. + +34:25 And I will make with them a covenant of peace, and will cause +the evil beasts to cease out of the land: and they shall dwell safely +in the wilderness, and sleep in the woods. + +34:26 And I will make them and the places round about my hill a +blessing; and I will cause the shower to come down in his season; +there shall be showers of blessing. + +34:27 And the tree of the field shall yield her fruit, and the earth +shall yield her increase, and they shall be safe in their land, and +shall know that I am the LORD, when I have broken the bands of their +yoke, and delivered them out of the hand of those that served +themselves of them. + +34:28 And they shall no more be a prey to the heathen, neither shall +the beast of the land devour them; but they shall dwell safely, and +none shall make them afraid. + +34:29 And I will raise up for them a plant of renown, and they shall +be no more consumed with hunger in the land, neither bear the shame of +the heathen any more. + +34:30 Thus shall they know that I the LORD their God am with them, and +that they, even the house of Israel, are my people, saith the Lord +GOD. + +34:31 And ye my flock, the flock of my pasture, are men, and I am your +God, saith the Lord GOD. + +35:1 Moreover the word of the LORD came unto me, saying, 35:2 Son of +man, set thy face against mount Seir, and prophesy against it, 35:3 +And say unto it, Thus saith the Lord GOD; Behold, O mount Seir, I am +against thee, and I will stretch out mine hand against thee, and I +will make thee most desolate. + +35:4 I will lay thy cities waste, and thou shalt be desolate, and thou +shalt know that I am the LORD. + +35:5 Because thou hast had a perpetual hatred, and hast shed the blood +of the children of Israel by the force of the sword in the time of +their calamity, in the time that their iniquity had an end: 35:6 +Therefore, as I live, saith the Lord GOD, I will prepare thee unto +blood, and blood shall pursue thee: sith thou hast not hated blood, +even blood shall pursue thee. + +35:7 Thus will I make mount Seir most desolate, and cut off from it +him that passeth out and him that returneth. + +35:8 And I will fill his mountains with his slain men: in thy hills, +and in thy valleys, and in all thy rivers, shall they fall that are +slain with the sword. + +35:9 I will make thee perpetual desolations, and thy cities shall not +return: and ye shall know that I am the LORD. + +35:10 Because thou hast said, These two nations and these two +countries shall be mine, and we will possess it; whereas the LORD was +there: 35:11 Therefore, as I live, saith the Lord GOD, I will even do +according to thine anger, and according to thine envy which thou hast +used out of thy hatred against them; and I will make myself known +among them, when I have judged thee. + +35:12 And thou shalt know that I am the LORD, and that I have heard +all thy blasphemies which thou hast spoken against the mountains of +Israel, saying, They are laid desolate, they are given us to consume. + +35:13 Thus with your mouth ye have boasted against me, and have +multiplied your words against me: I have heard them. + +35:14 Thus saith the Lord GOD; When the whole earth rejoiceth, I will +make thee desolate. + +35:15 As thou didst rejoice at the inheritance of the house of Israel, +because it was desolate, so will I do unto thee: thou shalt be +desolate, O mount Seir, and all Idumea, even all of it: and they shall +know that I am the LORD. + +36:1 Also, thou son of man, prophesy unto the mountains of Israel, and +say, Ye mountains of Israel, hear the word of the LORD: 36:2 Thus +saith the Lord GOD; Because the enemy hath said against you, Aha, even +the ancient high places are ours in possession: 36:3 Therefore +prophesy and say, Thus saith the Lord GOD; Because they have made you +desolate, and swallowed you up on every side, that ye might be a +possession unto the residue of the heathen, and ye are taken up in the +lips of talkers, and are an infamy of the people: 36:4 Therefore, ye +mountains of Israel, hear the word of the Lord GOD; Thus saith the +Lord GOD to the mountains, and to the hills, to the rivers, and to the +valleys, to the desolate wastes, and to the cities that are forsaken, +which became a prey and derision to the residue of the heathen that +are round about; 36:5 Therefore thus saith the Lord GOD; Surely in the +fire of my jealousy have I spoken against the residue of the heathen, +and against all Idumea, which have appointed my land into their +possession with the joy of all their heart, with despiteful minds, to +cast it out for a prey. + +36:6 Prophesy therefore concerning the land of Israel, and say unto +the mountains, and to the hills, to the rivers, and to the valleys, +Thus saith the Lord GOD; Behold, I have spoken in my jealousy and in +my fury, because ye have borne the shame of the heathen: 36:7 +Therefore thus saith the Lord GOD; I have lifted up mine hand, Surely +the heathen that are about you, they shall bear their shame. + +36:8 But ye, O mountains of Israel, ye shall shoot forth your +branches, and yield your fruit to my people of Israel; for they are at +hand to come. + +36:9 For, behold, I am for you, and I will turn unto you, and ye shall +be tilled and sown: 36:10 And I will multiply men upon you, all the +house of Israel, even all of it: and the cities shall be inhabited, +and the wastes shall be builded: 36:11 And I will multiply upon you +man and beast; and they shall increase and bring fruit: and I will +settle you after your old estates, and will do better unto you than at +your beginnings: and ye shall know that I am the LORD. + +36:12 Yea, I will cause men to walk upon you, even my people Israel; +and they shall possess thee, and thou shalt be their inheritance, and +thou shalt no more henceforth bereave them of men. + +36:13 Thus saith the Lord GOD; Because they say unto you, Thou land +devourest up men, and hast bereaved thy nations: 36:14 Therefore thou +shalt devour men no more, neither bereave thy nations any more, saith +the Lord GOD. + +36:15 Neither will I cause men to hear in thee the shame of the +heathen any more, neither shalt thou bear the reproach of the people +any more, neither shalt thou cause thy nations to fall any more, saith +the Lord GOD. + +36:16 Moreover the word of the LORD came unto me, saying, 36:17 Son of +man, when the house of Israel dwelt in their own land, they defiled it +by their own way and by their doings: their way was before me as the +uncleanness of a removed woman. + +36:18 Wherefore I poured my fury upon them for the blood that they had +shed upon the land, and for their idols wherewith they had polluted +it: 36:19 And I scattered them among the heathen, and they were +dispersed through the countries: according to their way and according +to their doings I judged them. + +36:20 And when they entered unto the heathen, whither they went, they +profaned my holy name, when they said to them, These are the people of +the LORD, and are gone forth out of his land. + +36:21 But I had pity for mine holy name, which the house of Israel had +profaned among the heathen, whither they went. + +36:22 Therefore say unto the house of Israel, thus saith the Lord GOD; +I do not this for your sakes, O house of Israel, but for mine holy +name's sake, which ye have profaned among the heathen, whither ye +went. + +36:23 And I will sanctify my great name, which was profaned among the +heathen, which ye have profaned in the midst of them; and the heathen +shall know that I am the LORD, saith the Lord GOD, when I shall be +sanctified in you before their eyes. + +36:24 For I will take you from among the heathen, and gather you out +of all countries, and will bring you into your own land. + +36:25 Then will I sprinkle clean water upon you, and ye shall be +clean: from all your filthiness, and from all your idols, will I +cleanse you. + +36:26 A new heart also will I give you, and a new spirit will I put +within you: and I will take away the stony heart out of your flesh, +and I will give you an heart of flesh. + +36:27 And I will put my spirit within you, and cause you to walk in my +statutes, and ye shall keep my judgments, and do them. + +36:28 And ye shall dwell in the land that I gave to your fathers; and +ye shall be my people, and I will be your God. + +36:29 I will also save you from all your uncleannesses: and I will +call for the corn, and will increase it, and lay no famine upon you. + +36:30 And I will multiply the fruit of the tree, and the increase of +the field, that ye shall receive no more reproach of famine among the +heathen. + +36:31 Then shall ye remember your own evil ways, and your doings that +were not good, and shall lothe yourselves in your own sight for your +iniquities and for your abominations. + +36:32 Not for your sakes do I this, saith the Lord GOD, be it known +unto you: be ashamed and confounded for your own ways, O house of +Israel. + +36:33 Thus saith the Lord GOD; In the day that I shall have cleansed +you from all your iniquities I will also cause you to dwell in the +cities, and the wastes shall be builded. + +36:34 And the desolate land shall be tilled, whereas it lay desolate +in the sight of all that passed by. + +36:35 And they shall say, This land that was desolate is become like +the garden of Eden; and the waste and desolate and ruined cities are +become fenced, and are inhabited. + +36:36 Then the heathen that are left round about you shall know that I +the LORD build the ruined places, and plant that that was desolate: I +the LORD have spoken it, and I will do it. + +36:37 Thus saith the Lord GOD; I will yet for this be enquired of by +the house of Israel, to do it for them; I will increase them with men +like a flock. + +36:38 As the holy flock, as the flock of Jerusalem in her solemn +feasts; so shall the waste cities be filled with flocks of men: and +they shall know that I am the LORD. + +37:1 The hand of the LORD was upon me, and carried me out in the +spirit of the LORD, and set me down in the midst of the valley which +was full of bones, 37:2 And caused me to pass by them round about: +and, behold, there were very many in the open valley; and, lo, they +were very dry. + +37:3 And he said unto me, Son of man, can these bones live? And I +answered, O Lord GOD, thou knowest. + +37:4 Again he said unto me, Prophesy upon these bones, and say unto +them, O ye dry bones, hear the word of the LORD. + +37:5 Thus saith the Lord GOD unto these bones; Behold, I will cause +breath to enter into you, and ye shall live: 37:6 And I will lay +sinews upon you, and will bring up flesh upon you, and cover you with +skin, and put breath in you, and ye shall live; and ye shall know that +I am the LORD. + +37:7 So I prophesied as I was commanded: and as I prophesied, there +was a noise, and behold a shaking, and the bones came together, bone +to his bone. + +37:8 And when I beheld, lo, the sinews and the flesh came up upon +them, and the skin covered them above: but there was no breath in +them. + +37:9 Then said he unto me, Prophesy unto the wind, prophesy, son of +man, and say to the wind, Thus saith the Lord GOD; Come from the four +winds, O breath, and breathe upon these slain, that they may live. + +37:10 So I prophesied as he commanded me, and the breath came into +them, and they lived, and stood up upon their feet, an exceeding great +army. + +37:11 Then he said unto me, Son of man, these bones are the whole +house of Israel: behold, they say, Our bones are dried, and our hope +is lost: we are cut off for our parts. + +37:12 Therefore prophesy and say unto them, Thus saith the Lord GOD; +Behold, O my people, I will open your graves, and cause you to come up +out of your graves, and bring you into the land of Israel. + +37:13 And ye shall know that I am the LORD, when I have opened your +graves, O my people, and brought you up out of your graves, 37:14 And +shall put my spirit in you, and ye shall live, and I shall place you +in your own land: then shall ye know that I the LORD have spoken it, +and performed it, saith the LORD. + +37:15 The word of the LORD came again unto me, saying, 37:16 Moreover, +thou son of man, take thee one stick, and write upon it, For Judah, +and for the children of Israel his companions: then take another +stick, and write upon it, For Joseph, the stick of Ephraim and for all +the house of Israel his companions: 37:17 And join them one to another +into one stick; and they shall become one in thine hand. + +37:18 And when the children of thy people shall speak unto thee, +saying, Wilt thou not shew us what thou meanest by these? 37:19 Say +unto them, Thus saith the Lord GOD; Behold, I will take the stick of +Joseph, which is in the hand of Ephraim, and the tribes of Israel his +fellows, and will put them with him, even with the stick of Judah, and +make them one stick, and they shall be one in mine hand. + +37:20 And the sticks whereon thou writest shall be in thine hand +before their eyes. + +37:21 And say unto them, Thus saith the Lord GOD; Behold, I will take +the children of Israel from among the heathen, whither they be gone, +and will gather them on every side, and bring them into their own +land: 37:22 And I will make them one nation in the land upon the +mountains of Israel; and one king shall be king to them all: and they +shall be no more two nations, neither shall they be divided into two +kingdoms any more at all. + +37:23 Neither shall they defile themselves any more with their idols, +nor with their detestable things, nor with any of their +transgressions: but I will save them out of all their dwellingplaces, +wherein they have sinned, and will cleanse them: so shall they be my +people, and I will be their God. + +37:24 And David my servant shall be king over them; and they all shall +have one shepherd: they shall also walk in my judgments, and observe +my statutes, and do them. + +37:25 And they shall dwell in the land that I have given unto Jacob my +servant, wherein your fathers have dwelt; and they shall dwell +therein, even they, and their children, and their children's children +for ever: and my servant David shall be their prince for ever. + +37:26 Moreover I will make a covenant of peace with them; it shall be +an everlasting covenant with them: and I will place them, and multiply +them, and will set my sanctuary in the midst of them for evermore. + +37:27 My tabernacle also shall be with them: yea, I will be their God, +and they shall be my people. + +37:28 And the heathen shall know that I the LORD do sanctify Israel, +when my sanctuary shall be in the midst of them for evermore. + +38:1 And the word of the LORD came unto me, saying, 38:2 Son of man, +set thy face against Gog, the land of Magog, the chief prince of +Meshech and Tubal, and prophesy against him, 38:3 And say, Thus saith +the Lord GOD; Behold, I am against thee, O Gog, the chief prince of +Meshech and Tubal: 38:4 And I will turn thee back, and put hooks into +thy jaws, and I will bring thee forth, and all thine army, horses and +horsemen, all of them clothed with all sorts of armour, even a great +company with bucklers and shields, all of them handling swords: 38:5 +Persia, Ethiopia, and Libya with them; all of them with shield and +helmet: 38:6 Gomer, and all his bands; the house of Togarmah of the +north quarters, and all his bands: and many people with thee. + +38:7 Be thou prepared, and prepare for thyself, thou, and all thy +company that are assembled unto thee, and be thou a guard unto them. + +38:8 After many days thou shalt be visited: in the latter years thou +shalt come into the land that is brought back from the sword, and is +gathered out of many people, against the mountains of Israel, which +have been always waste: but it is brought forth out of the nations, +and they shall dwell safely all of them. + +38:9 Thou shalt ascend and come like a storm, thou shalt be like a +cloud to cover the land, thou, and all thy bands, and many people with +thee. + +38:10 Thus saith the Lord GOD; It shall also come to pass, that at the +same time shall things come into thy mind, and thou shalt think an +evil thought: 38:11 And thou shalt say, I will go up to the land of +unwalled villages; I will go to them that are at rest, that dwell +safely, all of them dwelling without walls, and having neither bars +nor gates, 38:12 To take a spoil, and to take a prey; to turn thine +hand upon the desolate places that are now inhabited, and upon the +people that are gathered out of the nations, which have gotten cattle +and goods, that dwell in the midst of the land. + +38:13 Sheba, and Dedan, and the merchants of Tarshish, with all the +young lions thereof, shall say unto thee, Art thou come to take a +spoil? hast thou gathered thy company to take a prey? to carry away +silver and gold, to take away cattle and goods, to take a great spoil? +38:14 Therefore, son of man, prophesy and say unto Gog, Thus saith the +Lord GOD; In that day when my people of Israel dwelleth safely, shalt +thou not know it? 38:15 And thou shalt come from thy place out of the +north parts, thou, and many people with thee, all of them riding upon +horses, a great company, and a mighty army: 38:16 And thou shalt come +up against my people of Israel, as a cloud to cover the land; it shall +be in the latter days, and I will bring thee against my land, that the +heathen may know me, when I shall be sanctified in thee, O Gog, before +their eyes. + +38:17 Thus saith the Lord GOD; Art thou he of whom I have spoken in +old time by my servants the prophets of Israel, which prophesied in +those days many years that I would bring thee against them? 38:18 And +it shall come to pass at the same time when Gog shall come against the +land of Israel, saith the Lord GOD, that my fury shall come up in my +face. + +38:19 For in my jealousy and in the fire of my wrath have I spoken, +Surely in that day there shall be a great shaking in the land of +Israel; 38:20 So that the fishes of the sea, and the fowls of the +heaven, and the beasts of the field, and all creeping things that +creep upon the earth, and all the men that are upon the face of the +earth, shall shake at my presence, and the mountains shall be thrown +down, and the steep places shall fall, and every wall shall fall to +the ground. + +38:21 And I will call for a sword against him throughout all my +mountains, saith the Lord GOD: every man's sword shall be against his +brother. + +38:22 And I will plead against him with pestilence and with blood; and +I will rain upon him, and upon his bands, and upon the many people +that are with him, an overflowing rain, and great hailstones, fire, +and brimstone. + +38:23 Thus will I magnify myself, and sanctify myself; and I will be +known in the eyes of many nations, and they shall know that I am the +LORD. + +39:1 Therefore, thou son of man, prophesy against Gog, and say, Thus +saith the Lord GOD; Behold, I am against thee, O Gog, the chief prince +of Meshech and Tubal: 39:2 And I will turn thee back, and leave but +the sixth part of thee, and will cause thee to come up from the north +parts, and will bring thee upon the mountains of Israel: 39:3 And I +will smite thy bow out of thy left hand, and will cause thine arrows +to fall out of thy right hand. + +39:4 Thou shalt fall upon the mountains of Israel, thou, and all thy +bands, and the people that is with thee: I will give thee unto the +ravenous birds of every sort, and to the beasts of the field to be +devoured. + +39:5 Thou shalt fall upon the open field: for I have spoken it, saith +the Lord GOD. + +39:6 And I will send a fire on Magog, and among them that dwell +carelessly in the isles: and they shall know that I am the LORD. + +39:7 So will I make my holy name known in the midst of my people +Israel; and I will not let them pollute my holy name any more: and the +heathen shall know that I am the LORD, the Holy One in Israel. + +39:8 Behold, it is come, and it is done, saith the Lord GOD; this is +the day whereof I have spoken. + +39:9 And they that dwell in the cities of Israel shall go forth, and +shall set on fire and burn the weapons, both the shields and the +bucklers, the bows and the arrows, and the handstaves, and the spears, +and they shall burn them with fire seven years: 39:10 So that they +shall take no wood out of the field, neither cut down any out of the +forests; for they shall burn the weapons with fire: and they shall +spoil those that spoiled them, and rob those that robbed them, saith +the Lord GOD. + +39:11 And it shall come to pass in that day, that I will give unto Gog +a place there of graves in Israel, the valley of the passengers on the +east of the sea: and it shall stop the noses of the passengers: and +there shall they bury Gog and all his multitude: and they shall call +it The valley of Hamongog. + +39:12 And seven months shall the house of Israel be burying of them, +that they may cleanse the land. + +39:13 Yea, all the people of the land shall bury them; and it shall be +to them a renown the day that I shall be glorified, saith the Lord +GOD. + +39:14 And they shall sever out men of continual employment, passing +through the land to bury with the passengers those that remain upon +the face of the earth, to cleanse it: after the end of seven months +shall they search. + +39:15 And the passengers that pass through the land, when any seeth a +man's bone, then shall he set up a sign by it, till the buriers have +buried it in the valley of Hamongog. + +39:16 And also the name of the city shall be Hamonah. Thus shall they +cleanse the land. + +39:17 And, thou son of man, thus saith the Lord GOD; Speak unto every +feathered fowl, and to every beast of the field, Assemble yourselves, +and come; gather yourselves on every side to my sacrifice that I do +sacrifice for you, even a great sacrifice upon the mountains of +Israel, that ye may eat flesh, and drink blood. + +39:18 Ye shall eat the flesh of the mighty, and drink the blood of the +princes of the earth, of rams, of lambs, and of goats, of bullocks, +all of them fatlings of Bashan. + +39:19 And ye shall eat fat till ye be full, and drink blood till ye be +drunken, of my sacrifice which I have sacrificed for you. + +39:20 Thus ye shall be filled at my table with horses and chariots, +with mighty men, and with all men of war, saith the Lord GOD. + +39:21 And I will set my glory among the heathen, and all the heathen +shall see my judgment that I have executed, and my hand that I have +laid upon them. + +39:22 So the house of Israel shall know that I am the LORD their God +from that day and forward. + +39:23 And the heathen shall know that the house of Israel went into +captivity for their iniquity: because they trespassed against me, +therefore hid I my face from them, and gave them into the hand of +their enemies: so fell they all by the sword. + +39:24 According to their uncleanness and according to their +transgressions have I done unto them, and hid my face from them. + +39:25 Therefore thus saith the Lord GOD; Now will I bring again the +captivity of Jacob, and have mercy upon the whole house of Israel, and +will be jealous for my holy name; 39:26 After that they have borne +their shame, and all their trespasses whereby they have trespassed +against me, when they dwelt safely in their land, and none made them +afraid. + +39:27 When I have brought them again from the people, and gathered +them out of their enemies' lands, and am sanctified in them in the +sight of many nations; 39:28 Then shall they know that I am the LORD +their God, which caused them to be led into captivity among the +heathen: but I have gathered them unto their own land, and have left +none of them any more there. + +39:29 Neither will I hide my face any more from them: for I have +poured out my spirit upon the house of Israel, saith the Lord GOD. + +40:1 In the five and twentieth year of our captivity, in the beginning +of the year, in the tenth day of the month, in the fourteenth year +after that the city was smitten, in the selfsame day the hand of the +LORD was upon me, and brought me thither. + +40:2 In the visions of God brought he me into the land of Israel, and +set me upon a very high mountain, by which was as the frame of a city +on the south. + +40:3 And he brought me thither, and, behold, there was a man, whose +appearance was like the appearance of brass, with a line of flax in +his hand, and a measuring reed; and he stood in the gate. + +40:4 And the man said unto me, Son of man, behold with thine eyes, and +hear with thine ears, and set thine heart upon all that I shall shew +thee; for to the intent that I might shew them unto thee art thou +brought hither: declare all that thou seest to the house of Israel. + +40:5 And behold a wall on the outside of the house round about, and in +the man's hand a measuring reed of six cubits long by the cubit and an +hand breadth: so he measured the breadth of the building, one reed; +and the height, one reed. + +40:6 Then came he unto the gate which looketh toward the east, and +went up the stairs thereof, and measured the threshold of the gate, +which was one reed broad; and the other threshold of the gate, which +was one reed broad. + +40:7 And every little chamber was one reed long, and one reed broad; +and between the little chambers were five cubits; and the threshold of +the gate by the porch of the gate within was one reed. + +40:8 He measured also the porch of the gate within, one reed. + +40:9 Then measured he the porch of the gate, eight cubits; and the +posts thereof, two cubits; and the porch of the gate was inward. + +40:10 And the little chambers of the gate eastward were three on this +side, and three on that side; they three were of one measure: and the +posts had one measure on this side and on that side. + +40:11 And he measured the breadth of the entry of the gate, ten +cubits; and the length of the gate, thirteen cubits. + +40:12 The space also before the little chambers was one cubit on this +side, and the space was one cubit on that side: and the little +chambers were six cubits on this side, and six cubits on that side. + +40:13 He measured then the gate from the roof of one little chamber to +the roof of another: the breadth was five and twenty cubits, door +against door. + +40:14 He made also posts of threescore cubits, even unto the post of +the court round about the gate. + +40:15 And from the face of the gate of the entrance unto the face of +the porch of the inner gate were fifty cubits. + +40:16 And there were narrow windows to the little chambers, and to +their posts within the gate round about, and likewise to the arches: +and windows were round about inward: and upon each post were palm +trees. + +40:17 Then brought he me into the outward court, and, lo, there were +chambers, and a pavement made for the court round about: thirty +chambers were upon the pavement. + +40:18 And the pavement by the side of the gates over against the +length of the gates was the lower pavement. + +40:19 Then he measured the breadth from the forefront of the lower +gate unto the forefront of the inner court without, an hundred cubits +eastward and northward. + +40:20 And the gate of the outward court that looked toward the north, +he measured the length thereof, and the breadth thereof. + +40:21 And the little chambers thereof were three on this side and +three on that side; and the posts thereof and the arches thereof were +after the measure of the first gate: the length thereof was fifty +cubits, and the breadth five and twenty cubits. + +40:22 And their windows, and their arches, and their palm trees, were +after the measure of the gate that looketh toward the east; and they +went up unto it by seven steps; and the arches thereof were before +them. + +40:23 And the gate of the inner court was over against the gate toward +the north, and toward the east; and he measured from gate to gate an +hundred cubits. + +40:24 After that he brought me toward the south, and behold a gate +toward the south: and he measured the posts thereof and the arches +thereof according to these measures. + +40:25 And there were windows in it and in the arches thereof round +about, like those windows: the length was fifty cubits, and the +breadth five and twenty cubits. + +40:26 And there were seven steps to go up to it, and the arches +thereof were before them: and it had palm trees, one on this side, and +another on that side, upon the posts thereof. + +40:27 And there was a gate in the inner court toward the south: and he +measured from gate to gate toward the south an hundred cubits. + +40:28 And he brought me to the inner court by the south gate: and he +measured the south gate according to these measures; 40:29 And the +little chambers thereof, and the posts thereof, and the arches +thereof, according to these measures: and there were windows in it and +in the arches thereof round about: it was fifty cubits long, and five +and twenty cubits broad. + +40:30 And the arches round about were five and twenty cubits long, and +five cubits broad. + +40:31 And the arches thereof were toward the utter court; and palm +trees were upon the posts thereof: and the going up to it had eight +steps. + +40:32 And he brought me into the inner court toward the east: and he +measured the gate according to these measures. + +40:33 And the little chambers thereof, and the posts thereof, and the +arches thereof, were according to these measures: and there were +windows therein and in the arches thereof round about: it was fifty +cubits long, and five and twenty cubits broad. + +40:34 And the arches thereof were toward the outward court; and palm +trees were upon the posts thereof, on this side, and on that side: and +the going up to it had eight steps. + +40:35 And he brought me to the north gate, and measured it according +to these measures; 40:36 The little chambers thereof, the posts +thereof, and the arches thereof, and the windows to it round about: +the length was fifty cubits, and the breadth five and twenty cubits. + +40:37 And the posts thereof were toward the utter court; and palm +trees were upon the posts thereof, on this side, and on that side: and +the going up to it had eight steps. + +40:38 And the chambers and the entries thereof were by the posts of +the gates, where they washed the burnt offering. + +40:39 And in the porch of the gate were two tables on this side, and +two tables on that side, to slay thereon the burnt offering and the +sin offering and the trespass offering. + +40:40 And at the side without, as one goeth up to the entry of the +north gate, were two tables; and on the other side, which was at the +porch of the gate, were two tables. + +40:41 Four tables were on this side, and four tables on that side, by +the side of the gate; eight tables, whereupon they slew their +sacrifices. + +40:42 And the four tables were of hewn stone for the burnt offering, +of a cubit and an half long, and a cubit and an half broad, and one +cubit high: whereupon also they laid the instruments wherewith they +slew the burnt offering and the sacrifice. + +40:43 And within were hooks, an hand broad, fastened round about: and +upon the tables was the flesh of the offering. + +40:44 And without the inner gate were the chambers of the singers in +the inner court, which was at the side of the north gate; and their +prospect was toward the south: one at the side of the east gate having +the prospect toward the north. + +40:45 And he said unto me, This chamber, whose prospect is toward the +south, is for the priests, the keepers of the charge of the house. + +40:46 And the chamber whose prospect is toward the north is for the +priests, the keepers of the charge of the altar: these are the sons of +Zadok among the sons of Levi, which come near to the LORD to minister +unto him. + +40:47 So he measured the court, an hundred cubits long, and an hundred +cubits broad, foursquare; and the altar that was before the house. + +40:48 And he brought me to the porch of the house, and measured each +post of the porch, five cubits on this side, and five cubits on that +side: and the breadth of the gate was three cubits on this side, and +three cubits on that side. + +40:49 The length of the porch was twenty cubits, and the breadth +eleven cubits, and he brought me by the steps whereby they went up to +it: and there were pillars by the posts, one on this side, and another +on that side. + +41:1 Afterward he brought me to the temple, and measured the posts, +six cubits broad on the one side, and six cubits broad on the other +side, which was the breadth of the tabernacle. + +41:2 And the breadth of the door was ten cubits; and the sides of the +door were five cubits on the one side, and five cubits on the other +side: and he measured the length thereof, forty cubits: and the +breadth, twenty cubits. + +41:3 Then went he inward, and measured the post of the door, two +cubits; and the door, six cubits; and the breadth of the door, seven +cubits. + +41:4 So he measured the length thereof, twenty cubits; and the +breadth, twenty cubits, before the temple: and he said unto me, This +is the most holy place. + +41:5 After he measured the wall of the house, six cubits; and the +breadth of every side chamber, four cubits, round about the house on +every side. + +41:6 And the side chambers were three, one over another, and thirty in +order; and they entered into the wall which was of the house for the +side chambers round about, that they might have hold, but they had not +hold in the wall of the house. + +41:7 And there was an enlarging, and a winding about still upward to +the side chambers: for the winding about of the house went still +upward round about the house: therefore the breadth of the house was +still upward, and so increased from the lowest chamber to the highest +by the midst. + +41:8 I saw also the height of the house round about: the foundations +of the side chambers were a full reed of six great cubits. + +41:9 The thickness of the wall, which was for the side chamber +without, was five cubits: and that which was left was the place of the +side chambers that were within. + +41:10 And between the chambers was the wideness of twenty cubits round +about the house on every side. + +41:11 And the doors of the side chambers were toward the place that +was left, one door toward the north, and another door toward the +south: and the breadth of the place that was left was five cubits +round about. + +41:12 Now the building that was before the separate place at the end +toward the west was seventy cubits broad; and the wall of the building +was five cubits thick round about, and the length thereof ninety +cubits. + +41:13 So he measured the house, an hundred cubits long; and the +separate place, and the building, with the walls thereof, an hundred +cubits long; 41:14 Also the breadth of the face of the house, and of +the separate place toward the east, an hundred cubits. + +41:15 And he measured the length of the building over against the +separate place which was behind it, and the galleries thereof on the +one side and on the other side, an hundred cubits, with the inner +temple, and the porches of the court; 41:16 The door posts, and the +narrow windows, and the galleries round about on their three stories, +over against the door, cieled with wood round about, and from the +ground up to the windows, and the windows were covered; 41:17 To that +above the door, even unto the inner house, and without, and by all the +wall round about within and without, by measure. + +41:18 And it was made with cherubims and palm trees, so that a palm +tree was between a cherub and a cherub; and every cherub had two +faces; 41:19 So that the face of a man was toward the palm tree on the +one side, and the face of a young lion toward the palm tree on the +other side: it was made through all the house round about. + +41:20 From the ground unto above the door were cherubims and palm +trees made, and on the wall of the temple. + +41:21 The posts of the temple were squared, and the face of the +sanctuary; the appearance of the one as the appearance of the other. + +41:22 The altar of wood was three cubits high, and the length thereof +two cubits; and the corners thereof, and the length thereof, and the +walls thereof, were of wood: and he said unto me, This is the table +that is before the LORD. + +41:23 And the temple and the sanctuary had two doors. + +41:24 And the doors had two leaves apiece, two turning leaves; two +leaves for the one door, and two leaves for the other door. + +41:25 And there were made on them, on the doors of the temple, +cherubims and palm trees, like as were made upon the walls; and there +were thick planks upon the face of the porch without. + +41:26 And there were narrow windows and palm trees on the one side and +on the other side, on the sides of the porch, and upon the side +chambers of the house, and thick planks. + +42:1 Then he brought me forth into the utter court, the way toward the +north: and he brought me into the chamber that was over against the +separate place, and which was before the building toward the north. + +42:2 Before the length of an hundred cubits was the north door, and +the breadth was fifty cubits. + +42:3 Over against the twenty cubits which were for the inner court, +and over against the pavement which was for the utter court, was +gallery against gallery in three stories. + +42:4 And before the chambers was a walk to ten cubits breadth inward, +a way of one cubit; and their doors toward the north. + +42:5 Now the upper chambers were shorter: for the galleries were +higher than these, than the lower, and than the middlemost of the +building. + +42:6 For they were in three stories, but had not pillars as the +pillars of the courts: therefore the building was straitened more than +the lowest and the middlemost from the ground. + +42:7 And the wall that was without over against the chambers, toward +the utter court on the forepart of the chambers, the length thereof +was fifty cubits. + +42:8 For the length of the chambers that were in the utter court was +fifty cubits: and, lo, before the temple were an hundred cubits. + +42:9 And from under these chambers was the entry on the east side, as +one goeth into them from the utter court. + +42:10 The chambers were in the thickness of the wall of the court +toward the east, over against the separate place, and over against the +building. + +42:11 And the way before them was like the appearance of the chambers +which were toward the north, as long as they, and as broad as they: +and all their goings out were both according to their fashions, and +according to their doors. + +42:12 And according to the doors of the chambers that were toward the +south was a door in the head of the way, even the way directly before +the wall toward the east, as one entereth into them. + +42:13 Then said he unto me, The north chambers and the south chambers, +which are before the separate place, they be holy chambers, where the +priests that approach unto the LORD shall eat the most holy things: +there shall they lay the most holy things, and the meat offering, and +the sin offering, and the trespass offering; for the place is holy. + +42:14 When the priests enter therein, then shall they not go out of +the holy place into the utter court, but there they shall lay their +garments wherein they minister; for they are holy; and shall put on +other garments, and shall approach to those things which are for the +people. + +42:15 Now when he had made an end of measuring the inner house, he +brought me forth toward the gate whose prospect is toward the east, +and measured it round about. + +42:16 He measured the east side with the measuring reed, five hundred +reeds, with the measuring reed round about. + +42:17 He measured the north side, five hundred reeds, with the +measuring reed round about. + +42:18 He measured the south side, five hundred reeds, with the +measuring reed. + +42:19 He turned about to the west side, and measured five hundred +reeds with the measuring reed. + +42:20 He measured it by the four sides: it had a wall round about, +five hundred reeds long, and five hundred broad, to make a separation +between the sanctuary and the profane place. + +43:1 Afterward he brought me to the gate, even the gate that looketh +toward the east: 43:2 And, behold, the glory of the God of Israel came +from the way of the east: and his voice was like a noise of many +waters: and the earth shined with his glory. + +43:3 And it was according to the appearance of the vision which I saw, +even according to the vision that I saw when I came to destroy the +city: and the visions were like the vision that I saw by the river +Chebar; and I fell upon my face. + +43:4 And the glory of the LORD came into the house by the way of the +gate whose prospect is toward the east. + +43:5 So the spirit took me up, and brought me into the inner court; +and, behold, the glory of the LORD filled the house. + +43:6 And I heard him speaking unto me out of the house; and the man +stood by me. + +43:7 And he said unto me, Son of man, the place of my throne, and the +place of the soles of my feet, where I will dwell in the midst of the +children of Israel for ever, and my holy name, shall the house of +Israel no more defile, neither they, nor their kings, by their +whoredom, nor by the carcases of their kings in their high places. + +43:8 In their setting of their threshold by my thresholds, and their +post by my posts, and the wall between me and them, they have even +defiled my holy name by their abominations that they have committed: +wherefore I have consumed them in mine anger. + +43:9 Now let them put away their whoredom, and the carcases of their +kings, far from me, and I will dwell in the midst of them for ever. + +43:10 Thou son of man, shew the house to the house of Israel, that +they may be ashamed of their iniquities: and let them measure the +pattern. + +43:11 And if they be ashamed of all that they have done, shew them the +form of the house, and the fashion thereof, and the goings out +thereof, and the comings in thereof, and all the forms thereof, and +all the ordinances thereof, and all the forms thereof, and all the +laws thereof: and write it in their sight, that they may keep the +whole form thereof, and all the ordinances thereof, and do them. + +43:12 This is the law of the house; Upon the top of the mountain the +whole limit thereof round about shall be most holy. Behold, this is +the law of the house. + +43:13 And these are the measures of the altar after the cubits: The +cubit is a cubit and an hand breadth; even the bottom shall be a +cubit, and the breadth a cubit, and the border thereof by the edge +thereof round about shall be a span: and this shall be the higher +place of the altar. + +43:14 And from the bottom upon the ground even to the lower settle +shall be two cubits, and the breadth one cubit; and from the lesser +settle even to the greater settle shall be four cubits, and the +breadth one cubit. + +43:15 So the altar shall be four cubits; and from the altar and upward +shall be four horns. + +43:16 And the altar shall be twelve cubits long, twelve broad, square +in the four squares thereof. + +43:17 And the settle shall be fourteen cubits long and fourteen broad +in the four squares thereof; and the border about it shall be half a +cubit; and the bottom thereof shall be a cubit about; and his stairs +shall look toward the east. + +43:18 And he said unto me, Son of man, thus saith the Lord GOD; These +are the ordinances of the altar in the day when they shall make it, to +offer burnt offerings thereon, and to sprinkle blood thereon. + +43:19 And thou shalt give to the priests the Levites that be of the +seed of Zadok, which approach unto me, to minister unto me, saith the +Lord GOD, a young bullock for a sin offering. + +43:20 And thou shalt take of the blood thereof, and put it on the four +horns of it, and on the four corners of the settle, and upon the +border round about: thus shalt thou cleanse and purge it. + +43:21 Thou shalt take the bullock also of the sin offering, and he +shall burn it in the appointed place of the house, without the +sanctuary. + +43:22 And on the second day thou shalt offer a kid of the goats +without blemish for a sin offering; and they shall cleanse the altar, +as they did cleanse it with the bullock. + +43:23 When thou hast made an end of cleansing it, thou shalt offer a +young bullock without blemish, and a ram out of the flock without +blemish. + +43:24 And thou shalt offer them before the LORD, and the priests shall +cast salt upon them, and they shall offer them up for a burnt offering +unto the LORD. + +43:25 Seven days shalt thou prepare every day a goat for a sin +offering: they shall also prepare a young bullock, and a ram out of +the flock, without blemish. + +43:26 Seven days shall they purge the altar and purify it; and they +shall consecrate themselves. + +43:27 And when these days are expired, it shall be, that upon the +eighth day, and so forward, the priests shall make your burnt +offerings upon the altar, and your peace offerings; and I will accept +you, saith the Lord GOD. + +44:1 Then he brought me back the way of the gate of the outward +sanctuary which looketh toward the east; and it was shut. + +44:2 Then said the LORD unto me; This gate shall be shut, it shall not +be opened, and no man shall enter in by it; because the LORD, the God +of Israel, hath entered in by it, therefore it shall be shut. + +44:3 It is for the prince; the prince, he shall sit in it to eat bread +before the LORD; he shall enter by the way of the porch of that gate, +and shall go out by the way of the same. + +44:4 Then brought he me the way of the north gate before the house: +and I looked, and, behold, the glory of the LORD filled the house of +the LORD: and I fell upon my face. + +44:5 And the LORD said unto me, Son of man, mark well, and behold with +thine eyes, and hear with thine ears all that I say unto thee +concerning all the ordinances of the house of the LORD, and all the +laws thereof; and mark well the entering in of the house, with every +going forth of the sanctuary. + +44:6 And thou shalt say to the rebellious, even to the house of +Israel, Thus saith the Lord GOD; O ye house of Israel, let it suffice +you of all your abominations, 44:7 In that ye have brought into my +sanctuary strangers, uncircumcised in heart, and uncircumcised in +flesh, to be in my sanctuary, to pollute it, even my house, when ye +offer my bread, the fat and the blood, and they have broken my +covenant because of all your abominations. + +44:8 And ye have not kept the charge of mine holy things: but ye have +set keepers of my charge in my sanctuary for yourselves. + +44:9 Thus saith the Lord GOD; No stranger, uncircumcised in heart, nor +uncircumcised in flesh, shall enter into my sanctuary, of any stranger +that is among the children of Israel. + +44:10 And the Levites that are gone away far from me, when Israel went +astray, which went astray away from me after their idols; they shall +even bear their iniquity. + +44:11 Yet they shall be ministers in my sanctuary, having charge at +the gates of the house, and ministering to the house: they shall slay +the burnt offering and the sacrifice for the people, and they shall +stand before them to minister unto them. + +44:12 Because they ministered unto them before their idols, and caused +the house of Israel to fall into iniquity; therefore have I lifted up +mine hand against them, saith the Lord GOD, and they shall bear their +iniquity. + +44:13 And they shall not come near unto me, to do the office of a +priest unto me, nor to come near to any of my holy things, in the most +holy place: but they shall bear their shame, and their abominations +which they have committed. + +44:14 But I will make them keepers of the charge of the house, for all +the service thereof, and for all that shall be done therein. + +44:15 But the priests the Levites, the sons of Zadok, that kept the +charge of my sanctuary when the children of Israel went astray from +me, they shall come near to me to minister unto me, and they shall +stand before me to offer unto me the fat and the blood, saith the Lord +GOD: 44:16 They shall enter into my sanctuary, and they shall come +near to my table, to minister unto me, and they shall keep my charge. + +44:17 And it shall come to pass, that when they enter in at the gates +of the inner court, they shall be clothed with linen garments; and no +wool shall come upon them, whiles they minister in the gates of the +inner court, and within. + +44:18 They shall have linen bonnets upon their heads, and shall have +linen breeches upon their loins; they shall not gird themselves with +any thing that causeth sweat. + +44:19 And when they go forth into the utter court, even into the utter +court to the people, they shall put off their garments wherein they +ministered, and lay them in the holy chambers, and they shall put on +other garments; and they shall not sanctify the people with their +garments. + +44:20 Neither shall they shave their heads, nor suffer their locks to +grow long; they shall only poll their heads. + +44:21 Neither shall any priest drink wine, when they enter into the +inner court. + +44:22 Neither shall they take for their wives a widow, nor her that is +put away: but they shall take maidens of the seed of the house of +Israel, or a widow that had a priest before. + +44:23 And they shall teach my people the difference between the holy +and profane, and cause them to discern between the unclean and the +clean. + +44:24 And in controversy they shall stand in judgment; and they shall +judge it according to my judgments: and they shall keep my laws and my +statutes in all mine assemblies; and they shall hallow my sabbaths. + +44:25 And they shall come at no dead person to defile themselves: but +for father, or for mother, or for son, or for daughter, for brother, +or for sister that hath had no husband, they may defile themselves. + +44:26 And after he is cleansed, they shall reckon unto him seven days. + +44:27 And in the day that he goeth into the sanctuary, unto the inner +court, to minister in the sanctuary, he shall offer his sin offering, +saith the Lord GOD. + +44:28 And it shall be unto them for an inheritance: I am their +inheritance: and ye shall give them no possession in Israel: I am +their possession. + +44:29 They shall eat the meat offering, and the sin offering, and the +trespass offering: and every dedicated thing in Israel shall be +theirs. + +44:30 And the first of all the firstfruits of all things, and every +oblation of all, of every sort of your oblations, shall be the +priest's: ye shall also give unto the priest the first of your dough, +that he may cause the blessing to rest in thine house. + +44:31 The priests shall not eat of any thing that is dead of itself, +or torn, whether it be fowl or beast. + +45:1 Moreover, when ye shall divide by lot the land for inheritance, +ye shall offer an oblation unto the LORD, an holy portion of the land: +the length shall be the length of five and twenty thousand reeds, and +the breadth shall be ten thousand. This shall be holy in all the +borders thereof round about. + +45:2 Of this there shall be for the sanctuary five hundred in length, +with five hundred in breadth, square round about; and fifty cubits +round about for the suburbs thereof. + +45:3 And of this measure shalt thou measure the length of five and +twenty thousand, and the breadth of ten thousand: and in it shall be +the sanctuary and the most holy place. + +45:4 The holy portion of the land shall be for the priests the +ministers of the sanctuary, which shall come near to minister unto the +LORD: and it shall be a place for their houses, and an holy place for +the sanctuary. + +45:5 And the five and twenty thousand of length, and the ten thousand +of breadth shall also the Levites, the ministers of the house, have +for themselves, for a possession for twenty chambers. + +45:6 And ye shall appoint the possession of the city five thousand +broad, and five and twenty thousand long, over against the oblation of +the holy portion: it shall be for the whole house of Israel. + +45:7 And a portion shall be for the prince on the one side and on the +other side of the oblation of the holy portion, and of the possession +of the city, before the oblation of the holy portion, and before the +possession of the city, from the west side westward, and from the east +side eastward: and the length shall be over against one of the +portions, from the west border unto the east border. + +45:8 In the land shall be his possession in Israel: and my princes +shall no more oppress my people; and the rest of the land shall they +give to the house of Israel according to their tribes. + +45:9 Thus saith the Lord GOD; Let it suffice you, O princes of Israel: +remove violence and spoil, and execute judgment and justice, take away +your exactions from my people, saith the Lord GOD. + +45:10 Ye shall have just balances, and a just ephah, and a just bath. + +45:11 The ephah and the bath shall be of one measure, that the bath +may contain the tenth part of an homer, and the ephah the tenth part +of an homer: the measure thereof shall be after the homer. + +45:12 And the shekel shall be twenty gerahs: twenty shekels, five and +twenty shekels, fifteen shekels, shall be your maneh. + +45:13 This is the oblation that ye shall offer; the sixth part of an +ephah of an homer of wheat, and ye shall give the sixth part of an +ephah of an homer of barley: 45:14 Concerning the ordinance of oil, +the bath of oil, ye shall offer the tenth part of a bath out of the +cor, which is an homer of ten baths; for ten baths are an homer: 45:15 +And one lamb out of the flock, out of two hundred, out of the fat +pastures of Israel; for a meat offering, and for a burnt offering, and +for peace offerings, to make reconciliation for them, saith the Lord +GOD. + +45:16 All the people of the land shall give this oblation for the +prince in Israel. + +45:17 And it shall be the prince's part to give burnt offerings, and +meat offerings, and drink offerings, in the feasts, and in the new +moons, and in the sabbaths, in all solemnities of the house of Israel: +he shall prepare the sin offering, and the meat offering, and the +burnt offering, and the peace offerings, to make reconciliation for +the house of Israel. + +45:18 Thus saith the Lord GOD; In the first month, in the first day of +the month, thou shalt take a young bullock without blemish, and +cleanse the sanctuary: 45:19 And the priest shall take of the blood of +the sin offering, and put it upon the posts of the house, and upon the +four corners of the settle of the altar, and upon the posts of the +gate of the inner court. + +45:20 And so thou shalt do the seventh day of the month for every one +that erreth, and for him that is simple: so shall ye reconcile the +house. + +45:21 In the first month, in the fourteenth day of the month, ye shall +have the passover, a feast of seven days; unleavened bread shall be +eaten. + +45:22 And upon that day shall the prince prepare for himself and for +all the people of the land a bullock for a sin offering. + +45:23 And seven days of the feast he shall prepare a burnt offering to +the LORD, seven bullocks and seven rams without blemish daily the +seven days; and a kid of the goats daily for a sin offering. + +45:24 And he shall prepare a meat offering of an ephah for a bullock, +and an ephah for a ram, and an hin of oil for an ephah. + +45:25 In the seventh month, in the fifteenth day of the month, shall +he do the like in the feast of the seven days, according to the sin +offering, according to the burnt offering, and according to the meat +offering, and according to the oil. + +46:1 Thus saith the Lord GOD; The gate of the inner court that looketh +toward the east shall be shut the six working days; but on the sabbath +it shall be opened, and in the day of the new moon it shall be opened. + +46:2 And the prince shall enter by the way of the porch of that gate +without, and shall stand by the post of the gate, and the priests +shall prepare his burnt offering and his peace offerings, and he shall +worship at the threshold of the gate: then he shall go forth; but the +gate shall not be shut until the evening. + +46:3 Likewise the people of the land shall worship at the door of this +gate before the LORD in the sabbaths and in the new moons. + +46:4 And the burnt offering that the prince shall offer unto the LORD +in the sabbath day shall be six lambs without blemish, and a ram +without blemish. + +46:5 And the meat offering shall be an ephah for a ram, and the meat +offering for the lambs as he shall be able to give, and an hin of oil +to an ephah. + +46:6 And in the day of the new moon it shall be a young bullock +without blemish, and six lambs, and a ram: they shall be without +blemish. + +46:7 And he shall prepare a meat offering, an ephah for a bullock, and +an ephah for a ram, and for the lambs according as his hand shall +attain unto, and an hin of oil to an ephah. + +46:8 And when the prince shall enter, he shall go in by the way of the +porch of that gate, and he shall go forth by the way thereof. + +46:9 But when the people of the land shall come before the LORD in the +solemn feasts, he that entereth in by the way of the north gate to +worship shall go out by the way of the south gate; and he that +entereth by the way of the south gate shall go forth by the way of the +north gate: he shall not return by the way of the gate whereby he came +in, but shall go forth over against it. + +46:10 And the prince in the midst of them, when they go in, shall go +in; and when they go forth, shall go forth. + +46:11 And in the feasts and in the solemnities the meat offering shall +be an ephah to a bullock, and an ephah to a ram, and to the lambs as +he is able to give, and an hin of oil to an ephah. + +46:12 Now when the prince shall prepare a voluntary burnt offering or +peace offerings voluntarily unto the LORD, one shall then open him the +gate that looketh toward the east, and he shall prepare his burnt +offering and his peace offerings, as he did on the sabbath day: then +he shall go forth; and after his going forth one shall shut the gate. + +46:13 Thou shalt daily prepare a burnt offering unto the LORD of a +lamb of the first year without blemish: thou shalt prepare it every +morning. + +46:14 And thou shalt prepare a meat offering for it every morning, the +sixth part of an ephah, and the third part of an hin of oil, to temper +with the fine flour; a meat offering continually by a perpetual +ordinance unto the LORD. + +46:15 Thus shall they prepare the lamb, and the meat offering, and the +oil, every morning for a continual burnt offering. + +46:16 Thus saith the Lord GOD; If the prince give a gift unto any of +his sons, the inheritance thereof shall be his sons'; it shall be +their possession by inheritance. + +46:17 But if he give a gift of his inheritance to one of his servants, +then it shall be his to the year of liberty; after it shall return to +the prince: but his inheritance shall be his sons' for them. + +46:18 Moreover the prince shall not take of the people's inheritance +by oppression, to thrust them out of their possession; but he shall +give his sons inheritance out of his own possession: that my people be +not scattered every man from his possession. + +46:19 After he brought me through the entry, which was at the side of +the gate, into the holy chambers of the priests, which looked toward +the north: and, behold, there was a place on the two sides westward. + +46:20 Then said he unto me, This is the place where the priests shall +boil the trespass offering and the sin offering, where they shall bake +the meat offering; that they bear them not out into the utter court, +to sanctify the people. + +46:21 Then he brought me forth into the utter court, and caused me to +pass by the four corners of the court; and, behold, in every corner of +the court there was a court. + +46:22 In the four corners of the court there were courts joined of +forty cubits long and thirty broad: these four corners were of one +measure. + +46:23 And there was a row of building round about in them, round about +them four, and it was made with boiling places under the rows round +about. + +46:24 Then said he unto me, These are the places of them that boil, +where the ministers of the house shall boil the sacrifice of the +people. + +47:1 Afterward he brought me again unto the door of the house; and, +behold, waters issued out from under the threshold of the house +eastward: for the forefront of the house stood toward the east, and +the waters came down from under from the right side of the house, at +the south side of the altar. + +47:2 Then brought he me out of the way of the gate northward, and led +me about the way without unto the utter gate by the way that looketh +eastward; and, behold, there ran out waters on the right side. + +47:3 And when the man that had the line in his hand went forth +eastward, he measured a thousand cubits, and he brought me through the +waters; the waters were to the ankles. + +47:4 Again he measured a thousand, and brought me through the waters; +the waters were to the knees. Again he measured a thousand, and +brought me through; the waters were to the loins. + +47:5 Afterward he measured a thousand; and it was a river that I could +not pass over: for the waters were risen, waters to swim in, a river +that could not be passed over. + +47:6 And he said unto me, Son of man, hast thou seen this? Then he +brought me, and caused me to return to the brink of the river. + +47:7 Now when I had returned, behold, at the bank of the river were +very many trees on the one side and on the other. + +47:8 Then said he unto me, These waters issue out toward the east +country, and go down into the desert, and go into the sea: which being +brought forth into the sea, the waters shall be healed. + +47:9 And it shall come to pass, that every thing that liveth, which +moveth, whithersoever the rivers shall come, shall live: and there +shall be a very great multitude of fish, because these waters shall +come thither: for they shall be healed; and every thing shall live +whither the river cometh. + +47:10 And it shall come to pass, that the fishers shall stand upon it +from Engedi even unto Eneglaim; they shall be a place to spread forth +nets; their fish shall be according to their kinds, as the fish of the +great sea, exceeding many. + +47:11 But the miry places thereof and the marishes thereof shall not +be healed; they shall be given to salt. + +47:12 And by the river upon the bank thereof, on this side and on that +side, shall grow all trees for meat, whose leaf shall not fade, +neither shall the fruit thereof be consumed: it shall bring forth new +fruit according to his months, because their waters they issued out of +the sanctuary: and the fruit thereof shall be for meat, and the leaf +thereof for medicine. + +47:13 Thus saith the Lord GOD; This shall be the border, whereby ye +shall inherit the land according to the twelve tribes of Israel: +Joseph shall have two portions. + +47:14 And ye shall inherit it, one as well as another: concerning the +which I lifted up mine hand to give it unto your fathers: and this +land shall fall unto you for inheritance. + +47:15 And this shall be the border of the land toward the north side, +from the great sea, the way of Hethlon, as men go to Zedad; 47:16 +Hamath, Berothah, Sibraim, which is between the border of Damascus and +the border of Hamath; Hazarhatticon, which is by the coast of Hauran. + +47:17 And the border from the sea shall be Hazarenan, the border of +Damascus, and the north northward, and the border of Hamath. And this +is the north side. + +47:18 And the east side ye shall measure from Hauran, and from +Damascus, and from Gilead, and from the land of Israel by Jordan, from +the border unto the east sea. And this is the east side. + +47:19 And the south side southward, from Tamar even to the waters of +strife in Kadesh, the river to the great sea. And this is the south +side southward. + +47:20 The west side also shall be the great sea from the border, till +a man come over against Hamath. This is the west side. + +47:21 So shall ye divide this land unto you according to the tribes of +Israel. + +47:22 And it shall come to pass, that ye shall divide it by lot for an +inheritance unto you, and to the strangers that sojourn among you, +which shall beget children among you: and they shall be unto you as +born in the country among the children of Israel; they shall have +inheritance with you among the tribes of Israel. + +47:23 And it shall come to pass, that in what tribe the stranger +sojourneth, there shall ye give him his inheritance, saith the Lord +GOD. + +48:1 Now these are the names of the tribes. From the north end to the +coast of the way of Hethlon, as one goeth to Hamath, Hazarenan, the +border of Damascus northward, to the coast of Hamath; for these are +his sides east and west; a portion for Dan. + +48:2 And by the border of Dan, from the east side unto the west side, +a portion for Asher. + +48:3 And by the border of Asher, from the east side even unto the west +side, a portion for Naphtali. + +48:4 And by the border of Naphtali, from the east side unto the west +side, a portion for Manasseh. + +48:5 And by the border of Manasseh, from the east side unto the west +side, a portion for Ephraim. + +48:6 And by the border of Ephraim, from the east side even unto the +west side, a portion for Reuben. + +48:7 And by the border of Reuben, from the east side unto the west +side, a portion for Judah. + +48:8 And by the border of Judah, from the east side unto the west +side, shall be the offering which ye shall offer of five and twenty +thousand reeds in breadth, and in length as one of the other parts, +from the east side unto the west side: and the sanctuary shall be in +the midst of it. + +48:9 The oblation that ye shall offer unto the LORD shall be of five +and twenty thousand in length, and of ten thousand in breadth. + +48:10 And for them, even for the priests, shall be this holy oblation; +toward the north five and twenty thousand in length, and toward the +west ten thousand in breadth, and toward the east ten thousand in +breadth, and toward the south five and twenty thousand in length: and +the sanctuary of the LORD shall be in the midst thereof. + +48:11 It shall be for the priests that are sanctified of the sons of +Zadok; which have kept my charge, which went not astray when the +children of Israel went astray, as the Levites went astray. + +48:12 And this oblation of the land that is offered shall be unto them +a thing most holy by the border of the Levites. + +48:13 And over against the border of the priests the Levites shall +have five and twenty thousand in length, and ten thousand in breadth: +all the length shall be five and twenty thousand, and the breadth ten +thousand. + +48:14 And they shall not sell of it, neither exchange, nor alienate +the firstfruits of the land: for it is holy unto the LORD. + +48:15 And the five thousand, that are left in the breadth over against +the five and twenty thousand, shall be a profane place for the city, +for dwelling, and for suburbs: and the city shall be in the midst +thereof. + +48:16 And these shall be the measures thereof; the north side four +thousand and five hundred, and the south side four thousand and five +hundred, and on the east side four thousand and five hundred, and the +west side four thousand and five hundred. + +48:17 And the suburbs of the city shall be toward the north two +hundred and fifty, and toward the south two hundred and fifty, and +toward the east two hundred and fifty, and toward the west two hundred +and fifty. + +48:18 And the residue in length over against the oblation of the holy +portion shall be ten thousand eastward, and ten thousand westward: and +it shall be over against the oblation of the holy portion; and the +increase thereof shall be for food unto them that serve the city. + +48:19 And they that serve the city shall serve it out of all the +tribes of Israel. + +48:20 All the oblation shall be five and twenty thousand by five and +twenty thousand: ye shall offer the holy oblation foursquare, with the +possession of the city. + +48:21 And the residue shall be for the prince, on the one side and on +the other of the holy oblation, and of the possession of the city, +over against the five and twenty thousand of the oblation toward the +east border, and westward over against the five and twenty thousand +toward the west border, over against the portions for the prince: and +it shall be the holy oblation; and the sanctuary of the house shall be +in the midst thereof. + +48:22 Moreover from the possession of the Levites, and from the +possession of the city, being in the midst of that which is the +prince's, between the border of Judah and the border of Benjamin, +shall be for the prince. + +48:23 As for the rest of the tribes, from the east side unto the west +side, Benjamin shall have a portion. + +48:24 And by the border of Benjamin, from the east side unto the west +side, Simeon shall have a portion. + +48:25 And by the border of Simeon, from the east side unto the west +side, Issachar a portion. + +48:26 And by the border of Issachar, from the east side unto the west +side, Zebulun a portion. + +48:27 And by the border of Zebulun, from the east side unto the west +side, Gad a portion. + +48:28 And by the border of Gad, at the south side southward, the +border shall be even from Tamar unto the waters of strife in Kadesh, +and to the river toward the great sea. + +48:29 This is the land which ye shall divide by lot unto the tribes of +Israel for inheritance, and these are their portions, saith the Lord +GOD. + +48:30 And these are the goings out of the city on the north side, four +thousand and five hundred measures. + +48:31 And the gates of the city shall be after the names of the tribes +of Israel: three gates northward; one gate of Reuben, one gate of +Judah, one gate of Levi. + +48:32 And at the east side four thousand and five hundred: and three +gates; and one gate of Joseph, one gate of Benjamin, one gate of Dan. + +48:33 And at the south side four thousand and five hundred measures: +and three gates; one gate of Simeon, one gate of Issachar, one gate of +Zebulun. + +48:34 At the west side four thousand and five hundred, with their +three gates; one gate of Gad, one gate of Asher, one gate of Naphtali. + +48:35 It was round about eighteen thousand measures: and the name of +the city from that day shall be, The LORD is there. + + + + +The Book of Daniel + + +1:1 In the third year of the reign of Jehoiakim king of Judah came +Nebuchadnezzar king of Babylon unto Jerusalem, and besieged it. + +1:2 And the Lord gave Jehoiakim king of Judah into his hand, with part +of the vessels of the house of God: which he carried into the land of +Shinar to the house of his god; and he brought the vessels into the +treasure house of his god. + +1:3 And the king spake unto Ashpenaz the master of his eunuchs, that +he should bring certain of the children of Israel, and of the king's +seed, and of the princes; 1:4 Children in whom was no blemish, but +well favoured, and skilful in all wisdom, and cunning in knowledge, +and understanding science, and such as had ability in them to stand in +the king's palace, and whom they might teach the learning and the +tongue of the Chaldeans. + +1:5 And the king appointed them a daily provision of the king's meat, +and of the wine which he drank: so nourishing them three years, that +at the end thereof they might stand before the king. + +1:6 Now among these were of the children of Judah, Daniel, Hananiah, +Mishael, and Azariah: 1:7 Unto whom the prince of the eunuchs gave +names: for he gave unto Daniel the name of Belteshazzar; and to +Hananiah, of Shadrach; and to Mishael, of Meshach; and to Azariah, of +Abednego. + +1:8 But Daniel purposed in his heart that he would not defile himself +with the portion of the king's meat, nor with the wine which he drank: +therefore he requested of the prince of the eunuchs that he might not +defile himself. + +1:9 Now God had brought Daniel into favour and tender love with the +prince of the eunuchs. + +1:10 And the prince of the eunuchs said unto Daniel, I fear my lord +the king, who hath appointed your meat and your drink: for why should +he see your faces worse liking than the children which are of your +sort? then shall ye make me endanger my head to the king. + +1:11 Then said Daniel to Melzar, whom the prince of the eunuchs had +set over Daniel, Hananiah, Mishael, and Azariah, 1:12 Prove thy +servants, I beseech thee, ten days; and let them give us pulse to eat, +and water to drink. + +1:13 Then let our countenances be looked upon before thee, and the +countenance of the children that eat of the portion of the king's +meat: and as thou seest, deal with thy servants. + +1:14 So he consented to them in this matter, and proved them ten days. + +1:15 And at the end of ten days their countenances appeared fairer and +fatter in flesh than all the children which did eat the portion of the +king's meat. + +1:16 Thus Melzar took away the portion of their meat, and the wine +that they should drink; and gave them pulse. + +1:17 As for these four children, God gave them knowledge and skill in +all learning and wisdom: and Daniel had understanding in all visions +and dreams. + +1:18 Now at the end of the days that the king had said he should bring +them in, then the prince of the eunuchs brought them in before +Nebuchadnezzar. + +1:19 And the king communed with them; and among them all was found +none like Daniel, Hananiah, Mishael, and Azariah: therefore stood they +before the king. + +1:20 And in all matters of wisdom and understanding, that the king +enquired of them, he found them ten times better than all the +magicians and astrologers that were in all his realm. + +1:21 And Daniel continued even unto the first year of king Cyrus. + +2:1 And in the second year of the reign of Nebuchadnezzar +Nebuchadnezzar dreamed dreams, wherewith his spirit was troubled, and +his sleep brake from him. + +2:2 Then the king commanded to call the magicians, and the +astrologers, and the sorcerers, and the Chaldeans, for to shew the +king his dreams. So they came and stood before the king. + +2:3 And the king said unto them, I have dreamed a dream, and my spirit +was troubled to know the dream. + +2:4 Then spake the Chaldeans to the king in Syriack, O king, live for +ever: tell thy servants the dream, and we will shew the +interpretation. + +2:5 The king answered and said to the Chaldeans, The thing is gone +from me: if ye will not make known unto me the dream, with the +interpretation thereof, ye shall be cut in pieces, and your houses +shall be made a dunghill. + +2:6 But if ye shew the dream, and the interpretation thereof, ye shall +receive of me gifts and rewards and great honour: therefore shew me +the dream, and the interpretation thereof. + +2:7 They answered again and said, Let the king tell his servants the +dream, and we will shew the interpretation of it. + +2:8 The king answered and said, I know of certainty that ye would gain +the time, because ye see the thing is gone from me. + +2:9 But if ye will not make known unto me the dream, there is but one +decree for you: for ye have prepared lying and corrupt words to speak +before me, till the time be changed: therefore tell me the dream, and +I shall know that ye can shew me the interpretation thereof. + +2:10 The Chaldeans answered before the king, and said, There is not a +man upon the earth that can shew the king's matter: therefore there is +no king, lord, nor ruler, that asked such things at any magician, or +astrologer, or Chaldean. + +2:11 And it is a rare thing that the king requireth, and there is none +other that can shew it before the king, except the gods, whose +dwelling is not with flesh. + +2:12 For this cause the king was angry and very furious, and commanded +to destroy all the wise men of Babylon. + +2:13 And the decree went forth that the wise men should be slain; and +they sought Daniel and his fellows to be slain. + +2:14 Then Daniel answered with counsel and wisdom to Arioch the +captain of the king's guard, which was gone forth to slay the wise men +of Babylon: 2:15 He answered and said to Arioch the king's captain, +Why is the decree so hasty from the king? Then Arioch made the thing +known to Daniel. + +2:16 Then Daniel went in, and desired of the king that he would give +him time, and that he would shew the king the interpretation. + +2:17 Then Daniel went to his house, and made the thing known to +Hananiah, Mishael, and Azariah, his companions: 2:18 That they would +desire mercies of the God of heaven concerning this secret; that +Daniel and his fellows should not perish with the rest of the wise men +of Babylon. + +2:19 Then was the secret revealed unto Daniel in a night vision. Then +Daniel blessed the God of heaven. + +2:20 Daniel answered and said, Blessed be the name of God for ever and +ever: for wisdom and might are his: 2:21 And he changeth the times and +the seasons: he removeth kings, and setteth up kings: he giveth wisdom +unto the wise, and knowledge to them that know understanding: 2:22 He +revealeth the deep and secret things: he knoweth what is in the +darkness, and the light dwelleth with him. + +2:23 I thank thee, and praise thee, O thou God of my fathers, who hast +given me wisdom and might, and hast made known unto me now what we +desired of thee: for thou hast now made known unto us the king's +matter. + +2:24 Therefore Daniel went in unto Arioch, whom the king had ordained +to destroy the wise men of Babylon: he went and said thus unto him; +Destroy not the wise men of Babylon: bring me in before the king, and +I will shew unto the king the interpretation. + +2:25 Then Arioch brought in Daniel before the king in haste, and said +thus unto him, I have found a man of the captives of Judah, that will +make known unto the king the interpretation. + +2:26 The king answered and said to Daniel, whose name was +Belteshazzar, Art thou able to make known unto me the dream which I +have seen, and the interpretation thereof? 2:27 Daniel answered in +the presence of the king, and said, The secret which the king hath +demanded cannot the wise men, the astrologers, the magicians, the +soothsayers, shew unto the king; 2:28 But there is a God in heaven +that revealeth secrets, and maketh known to the king Nebuchadnezzar +what shall be in the latter days. Thy dream, and the visions of thy +head upon thy bed, are these; 2:29 As for thee, O king, thy thoughts +came into thy mind upon thy bed, what should come to pass hereafter: +and he that revealeth secrets maketh known to thee what shall come to +pass. + +2:30 But as for me, this secret is not revealed to me for any wisdom +that I have more than any living, but for their sakes that shall make +known the interpretation to the king, and that thou mightest know the +thoughts of thy heart. + +2:31 Thou, O king, sawest, and behold a great image. This great image, +whose brightness was excellent, stood before thee; and the form +thereof was terrible. + +2:32 This image's head was of fine gold, his breast and his arms of +silver, his belly and his thighs of brass, 2:33 His legs of iron, his +feet part of iron and part of clay. + +2:34 Thou sawest till that a stone was cut out without hands, which +smote the image upon his feet that were of iron and clay, and brake +them to pieces. + +2:35 Then was the iron, the clay, the brass, the silver, and the gold, +broken to pieces together, and became like the chaff of the summer +threshingfloors; and the wind carried them away, that no place was +found for them: and the stone that smote the image became a great +mountain, and filled the whole earth. + +2:36 This is the dream; and we will tell the interpretation thereof +before the king. + +2:37 Thou, O king, art a king of kings: for the God of heaven hath +given thee a kingdom, power, and strength, and glory. + +2:38 And wheresoever the children of men dwell, the beasts of the +field and the fowls of the heaven hath he given into thine hand, and +hath made thee ruler over them all. Thou art this head of gold. + +2:39 And after thee shall arise another kingdom inferior to thee, and +another third kingdom of brass, which shall bear rule over all the +earth. + +2:40 And the fourth kingdom shall be strong as iron: forasmuch as iron +breaketh in pieces and subdueth all things: and as iron that breaketh +all these, shall it break in pieces and bruise. + +2:41 And whereas thou sawest the feet and toes, part of potters' clay, +and part of iron, the kingdom shall be divided; but there shall be in +it of the strength of the iron, forasmuch as thou sawest the iron +mixed with miry clay. + +2:42 And as the toes of the feet were part of iron, and part of clay, +so the kingdom shall be partly strong, and partly broken. + +2:43 And whereas thou sawest iron mixed with miry clay, they shall +mingle themselves with the seed of men: but they shall not cleave one +to another, even as iron is not mixed with clay. + +2:44 And in the days of these kings shall the God of heaven set up a +kingdom, which shall never be destroyed: and the kingdom shall not be +left to other people, but it shall break in pieces and consume all +these kingdoms, and it shall stand for ever. + +2:45 Forasmuch as thou sawest that the stone was cut out of the +mountain without hands, and that it brake in pieces the iron, the +brass, the clay, the silver, and the gold; the great God hath made +known to the king what shall come to pass hereafter: and the dream is +certain, and the interpretation thereof sure. + +2:46 Then the king Nebuchadnezzar fell upon his face, and worshipped +Daniel, and commanded that they should offer an oblation and sweet +odours unto him. + +2:47 The king answered unto Daniel, and said, Of a truth it is, that +your God is a God of gods, and a Lord of kings, and a revealer of +secrets, seeing thou couldest reveal this secret. + +2:48 Then the king made Daniel a great man, and gave him many great +gifts, and made him ruler over the whole province of Babylon, and +chief of the governors over all the wise men of Babylon. + +2:49 Then Daniel requested of the king, and he set Shadrach, Meshach, +and Abednego, over the affairs of the province of Babylon: but Daniel +sat in the gate of the king. + +3:1 Nebuchadnezzar the king made an image of gold, whose height was +threescore cubits, and the breadth thereof six cubits: he set it up in +the plain of Dura, in the province of Babylon. + +3:2 Then Nebuchadnezzar the king sent to gather together the princes, +the governors, and the captains, the judges, the treasurers, the +counsellors, the sheriffs, and all the rulers of the provinces, to +come to the dedication of the image which Nebuchadnezzar the king had +set up. + +3:3 Then the princes, the governors, and captains, the judges, the +treasurers, the counsellors, the sheriffs, and all the rulers of the +provinces, were gathered together unto the dedication of the image +that Nebuchadnezzar the king had set up; and they stood before the +image that Nebuchadnezzar had set up. + +3:4 Then an herald cried aloud, To you it is commanded, O people, +nations, and languages, 3:5 That at what time ye hear the sound of the +cornet, flute, harp, sackbut, psaltery, dulcimer, and all kinds of +musick, ye fall down and worship the golden image that Nebuchadnezzar +the king hath set up: 3:6 And whoso falleth not down and worshippeth +shall the same hour be cast into the midst of a burning fiery furnace. + +3:7 Therefore at that time, when all the people heard the sound of the +cornet, flute, harp, sackbut, psaltery, and all kinds of musick, all +the people, the nations, and the languages, fell down and worshipped +the golden image that Nebuchadnezzar the king had set up. + +3:8 Wherefore at that time certain Chaldeans came near, and accused +the Jews. + +3:9 They spake and said to the king Nebuchadnezzar, O king, live for +ever. + +3:10 Thou, O king, hast made a decree, that every man that shall hear +the sound of the cornet, flute, harp, sackbut, psaltery, and dulcimer, +and all kinds of musick, shall fall down and worship the golden image: +3:11 And whoso falleth not down and worshippeth, that he should be +cast into the midst of a burning fiery furnace. + +3:12 There are certain Jews whom thou hast set over the affairs of the +province of Babylon, Shadrach, Meshach, and Abednego; these men, O +king, have not regarded thee: they serve not thy gods, nor worship the +golden image which thou hast set up. + +3:13 Then Nebuchadnezzar in his rage and fury commanded to bring +Shadrach, Meshach, and Abednego. Then they brought these men before +the king. + +3:14 Nebuchadnezzar spake and said unto them, Is it true, O Shadrach, +Meshach, and Abednego, do not ye serve my gods, nor worship the golden +image which I have set up? 3:15 Now if ye be ready that at what time +ye hear the sound of the cornet, flute, harp, sackbut, psaltery, and +dulcimer, and all kinds of musick, ye fall down and worship the image +which I have made; well: but if ye worship not, ye shall be cast the +same hour into the midst of a burning fiery furnace; and who is that +God that shall deliver you out of my hands? 3:16 Shadrach, Meshach, +and Abednego, answered and said to the king, O Nebuchadnezzar, we are +not careful to answer thee in this matter. + +3:17 If it be so, our God whom we serve is able to deliver us from the +burning fiery furnace, and he will deliver us out of thine hand, O +king. + +3:18 But if not, be it known unto thee, O king, that we will not serve +thy gods, nor worship the golden image which thou hast set up. + +3:19 Then was Nebuchadnezzar full of fury, and the form of his visage +was changed against Shadrach, Meshach, and Abednego: therefore he +spake, and commanded that they should heat the furnace one seven times +more than it was wont to be heated. + +3:20 And he commanded the most mighty men that were in his army to +bind Shadrach, Meshach, and Abednego, and to cast them into the +burning fiery furnace. + +3:21 Then these men were bound in their coats, their hosen, and their +hats, and their other garments, and were cast into the midst of the +burning fiery furnace. + +3:22 Therefore because the king's commandment was urgent, and the +furnace exceeding hot, the flames of the fire slew those men that took +up Shadrach, Meshach, and Abednego. + +3:23 And these three men, Shadrach, Meshach, and Abednego, fell down +bound into the midst of the burning fiery furnace. + +3:24 Then Nebuchadnezzar the king was astonied, and rose up in haste, +and spake, and said unto his counsellors, Did not we cast three men +bound into the midst of the fire? They answered and said unto the +king, True, O king. + +3:25 He answered and said, Lo, I see four men loose, walking in the +midst of the fire, and they have no hurt; and the form of the fourth +is like the Son of God. + +3:26 Then Nebuchadnezzar came near to the mouth of the burning fiery +furnace, and spake, and said, Shadrach, Meshach, and Abednego, ye +servants of the most high God, come forth, and come hither. Then +Shadrach, Meshach, and Abednego, came forth of the midst of the fire. + +3:27 And the princes, governors, and captains, and the king's +counsellors, being gathered together, saw these men, upon whose bodies +the fire had no power, nor was an hair of their head singed, neither +were their coats changed, nor the smell of fire had passed on them. + +3:28 Then Nebuchadnezzar spake, and said, Blessed be the God of +Shadrach, Meshach, and Abednego, who hath sent his angel, and +delivered his servants that trusted in him, and have changed the +king's word, and yielded their bodies, that they might not serve nor +worship any god, except their own God. + +3:29 Therefore I make a decree, That every people, nation, and +language, which speak any thing amiss against the God of Shadrach, +Meshach, and Abednego, shall be cut in pieces, and their houses shall +be made a dunghill: because there is no other God that can deliver +after this sort. + +3:30 Then the king promoted Shadrach, Meshach, and Abednego, in the +province of Babylon. + +4:1 Nebuchadnezzar the king, unto all people, nations, and languages, +that dwell in all the earth; Peace be multiplied unto you. + +4:2 I thought it good to shew the signs and wonders that the high God +hath wrought toward me. + +4:3 How great are his signs! and how mighty are his wonders! his +kingdom is an everlasting kingdom, and his dominion is from generation +to generation. + +4:4 I Nebuchadnezzar was at rest in mine house, and flourishing in my +palace: 4:5 I saw a dream which made me afraid, and the thoughts upon +my bed and the visions of my head troubled me. + +4:6 Therefore made I a decree to bring in all the wise men of Babylon +before me, that they might make known unto me the interpretation of +the dream. + +4:7 Then came in the magicians, the astrologers, the Chaldeans, and +the soothsayers: and I told the dream before them; but they did not +make known unto me the interpretation thereof. + +4:8 But at the last Daniel came in before me, whose name was +Belteshazzar, according to the name of my God, and in whom is the +spirit of the holy gods: and before him I told the dream, saying, 4:9 +O Belteshazzar, master of the magicians, because I know that the +spirit of the holy gods is in thee, and no secret troubleth thee, tell +me the visions of my dream that I have seen, and the interpretation +thereof. + +4:10 Thus were the visions of mine head in my bed; I saw, and behold a +tree in the midst of the earth, and the height thereof was great. + +4:11 The tree grew, and was strong, and the height thereof reached +unto heaven, and the sight thereof to the end of all the earth: 4:12 +The leaves thereof were fair, and the fruit thereof much, and in it +was meat for all: the beasts of the field had shadow under it, and the +fowls of the heaven dwelt in the boughs thereof, and all flesh was fed +of it. + +4:13 I saw in the visions of my head upon my bed, and, behold, a +watcher and an holy one came down from heaven; 4:14 He cried aloud, +and said thus, Hew down the tree, and cut off his branches, shake off +his leaves, and scatter his fruit: let the beasts get away from under +it, and the fowls from his branches: 4:15 Nevertheless leave the stump +of his roots in the earth, even with a band of iron and brass, in the +tender grass of the field; and let it be wet with the dew of heaven, +and let his portion be with the beasts in the grass of the earth: 4:16 +Let his heart be changed from man's, and let a beast's heart be given +unto him; and let seven times pass over him. + +4:17 This matter is by the decree of the watchers, and the demand by +the word of the holy ones: to the intent that the living may know that +the most High ruleth in the kingdom of men, and giveth it to +whomsoever he will, and setteth up over it the basest of men. + +4:18 This dream I king Nebuchadnezzar have seen. Now thou, O +Belteshazzar, declare the interpretation thereof, forasmuch as all the +wise men of my kingdom are not able to make known unto me the +interpretation: but thou art able; for the spirit of the holy gods is +in thee. + +4:19 Then Daniel, whose name was Belteshazzar, was astonied for one +hour, and his thoughts troubled him. The king spake, and said, +Belteshazzar, let not the dream, or the interpretation thereof, +trouble thee. Belteshazzar answered and said, My lord, the dream be to +them that hate thee, and the interpretation thereof to thine enemies. + +4:20 The tree that thou sawest, which grew, and was strong, whose +height reached unto the heaven, and the sight thereof to all the +earth; 4:21 Whose leaves were fair, and the fruit thereof much, and in +it was meat for all; under which the beasts of the field dwelt, and +upon whose branches the fowls of the heaven had their habitation: 4:22 +It is thou, O king, that art grown and become strong: for thy +greatness is grown, and reacheth unto heaven, and thy dominion to the +end of the earth. + +4:23 And whereas the king saw a watcher and an holy one coming down +from heaven, and saying, Hew the tree down, and destroy it; yet leave +the stump of the roots thereof in the earth, even with a band of iron +and brass, in the tender grass of the field; and let it be wet with +the dew of heaven, and let his portion be with the beasts of the +field, till seven times pass over him; 4:24 This is the +interpretation, O king, and this is the decree of the most High, which +is come upon my lord the king: 4:25 That they shall drive thee from +men, and thy dwelling shall be with the beasts of the field, and they +shall make thee to eat grass as oxen, and they shall wet thee with the +dew of heaven, and seven times shall pass over thee, till thou know +that the most High ruleth in the kingdom of men, and giveth it to +whomsoever he will. + +4:26 And whereas they commanded to leave the stump of the tree roots; +thy kingdom shall be sure unto thee, after that thou shalt have known +that the heavens do rule. + +4:27 Wherefore, O king, let my counsel be acceptable unto thee, and +break off thy sins by righteousness, and thine iniquities by shewing +mercy to the poor; if it may be a lengthening of thy tranquillity. + +4:28 All this came upon the king Nebuchadnezzar. + +4:29 At the end of twelve months he walked in the palace of the +kingdom of Babylon. + +4:30 The king spake, and said, Is not this great Babylon, that I have +built for the house of the kingdom by the might of my power, and for +the honour of my majesty? 4:31 While the word was in the king's +mouth, there fell a voice from heaven, saying, O king Nebuchadnezzar, +to thee it is spoken; The kingdom is departed from thee. + +4:32 And they shall drive thee from men, and thy dwelling shall be +with the beasts of the field: they shall make thee to eat grass as +oxen, and seven times shall pass over thee, until thou know that the +most High ruleth in the kingdom of men, and giveth it to whomsoever he +will. + +4:33 The same hour was the thing fulfilled upon Nebuchadnezzar: and he +was driven from men, and did eat grass as oxen, and his body was wet +with the dew of heaven, till his hairs were grown like eagles' +feathers, and his nails like birds' claws. + +4:34 And at the end of the days I Nebuchadnezzar lifted up mine eyes +unto heaven, and mine understanding returned unto me, and I blessed +the most High, and I praised and honoured him that liveth for ever, +whose dominion is an everlasting dominion, and his kingdom is from +generation to generation: 4:35 And all the inhabitants of the earth +are reputed as nothing: and he doeth according to his will in the army +of heaven, and among the inhabitants of the earth: and none can stay +his hand, or say unto him, What doest thou? 4:36 At the same time my +reason returned unto me; and for the glory of my kingdom, mine honour +and brightness returned unto me; and my counsellors and my lords +sought unto me; and I was established in my kingdom, and excellent +majesty was added unto me. + +4:37 Now I Nebuchadnezzar praise and extol and honour the King of +heaven, all whose works are truth, and his ways judgment: and those +that walk in pride he is able to abase. + +5:1 Belshazzar the king made a great feast to a thousand of his lords, +and drank wine before the thousand. + +5:2 Belshazzar, whiles he tasted the wine, commanded to bring the +golden and silver vessels which his father Nebuchadnezzar had taken +out of the temple which was in Jerusalem; that the king, and his +princes, his wives, and his concubines, might drink therein. + +5:3 Then they brought the golden vessels that were taken out of the +temple of the house of God which was at Jerusalem; and the king, and +his princes, his wives, and his concubines, drank in them. + +5:4 They drank wine, and praised the gods of gold, and of silver, of +brass, of iron, of wood, and of stone. + +5:5 In the same hour came forth fingers of a man's hand, and wrote +over against the candlestick upon the plaister of the wall of the +king's palace: and the king saw the part of the hand that wrote. + +5:6 Then the king's countenance was changed, and his thoughts troubled +him, so that the joints of his loins were loosed, and his knees smote +one against another. + +5:7 The king cried aloud to bring in the astrologers, the Chaldeans, +and the soothsayers. And the king spake, and said to the wise men of +Babylon, Whosoever shall read this writing, and shew me the +interpretation thereof, shall be clothed with scarlet, and have a +chain of gold about his neck, and shall be the third ruler in the +kingdom. + +5:8 Then came in all the king's wise men: but they could not read the +writing, nor make known to the king the interpretation thereof. + +5:9 Then was king Belshazzar greatly troubled, and his countenance was +changed in him, and his lords were astonied. + +5:10 Now the queen by reason of the words of the king and his lords +came into the banquet house: and the queen spake and said, O king, +live for ever: let not thy thoughts trouble thee, nor let thy +countenance be changed: 5:11 There is a man in thy kingdom, in whom is +the spirit of the holy gods; and in the days of thy father light and +understanding and wisdom, like the wisdom of the gods, was found in +him; whom the king Nebuchadnezzar thy father, the king, I say, thy +father, made master of the magicians, astrologers, Chaldeans, and +soothsayers; 5:12 Forasmuch as an excellent spirit, and knowledge, and +understanding, interpreting of dreams, and shewing of hard sentences, +and dissolving of doubts, were found in the same Daniel, whom the king +named Belteshazzar: now let Daniel be called, and he will shew the +interpretation. + +5:13 Then was Daniel brought in before the king. And the king spake +and said unto Daniel, Art thou that Daniel, which art of the children +of the captivity of Judah, whom the king my father brought out of +Jewry? 5:14 I have even heard of thee, that the spirit of the gods is +in thee, and that light and understanding and excellent wisdom is +found in thee. + +5:15 And now the wise men, the astrologers, have been brought in +before me, that they should read this writing, and make known unto me +the interpretation thereof: but they could not shew the interpretation +of the thing: 5:16 And I have heard of thee, that thou canst make +interpretations, and dissolve doubts: now if thou canst read the +writing, and make known to me the interpretation thereof, thou shalt +be clothed with scarlet, and have a chain of gold about thy neck, and +shalt be the third ruler in the kingdom. + +5:17 Then Daniel answered and said before the king, Let thy gifts be +to thyself, and give thy rewards to another; yet I will read the +writing unto the king, and make known to him the interpretation. + +5:18 O thou king, the most high God gave Nebuchadnezzar thy father a +kingdom, and majesty, and glory, and honour: 5:19 And for the majesty +that he gave him, all people, nations, and languages, trembled and +feared before him: whom he would he slew; and whom he would he kept +alive; and whom he would he set up; and whom he would he put down. + +5:20 But when his heart was lifted up, and his mind hardened in pride, +he was deposed from his kingly throne, and they took his glory from +him: 5:21 And he was driven from the sons of men; and his heart was +made like the beasts, and his dwelling was with the wild asses: they +fed him with grass like oxen, and his body was wet with the dew of +heaven; till he knew that the most high God ruled in the kingdom of +men, and that he appointeth over it whomsoever he will. + +5:22 And thou his son, O Belshazzar, hast not humbled thine heart, +though thou knewest all this; 5:23 But hast lifted up thyself against +the Lord of heaven; and they have brought the vessels of his house +before thee, and thou, and thy lords, thy wives, and thy concubines, +have drunk wine in them; and thou hast praised the gods of silver, and +gold, of brass, iron, wood, and stone, which see not, nor hear, nor +know: and the God in whose hand thy breath is, and whose are all thy +ways, hast thou not glorified: 5:24 Then was the part of the hand sent +from him; and this writing was written. + +5:25 And this is the writing that was written, MENE, MENE, TEKEL, +UPHARSIN. + +5:26 This is the interpretation of the thing: MENE; God hath numbered +thy kingdom, and finished it. + +5:27 TEKEL; Thou art weighed in the balances, and art found wanting. + +5:28 PERES; Thy kingdom is divided, and given to the Medes and +Persians. + +5:29 Then commanded Belshazzar, and they clothed Daniel with scarlet, +and put a chain of gold about his neck, and made a proclamation +concerning him, that he should be the third ruler in the kingdom. + +5:30 In that night was Belshazzar the king of the Chaldeans slain. + +5:31 And Darius the Median took the kingdom, being about threescore +and two years old. + +6:1 It pleased Darius to set over the kingdom an hundred and twenty +princes, which should be over the whole kingdom; 6:2 And over these +three presidents; of whom Daniel was first: that the princes might +give accounts unto them, and the king should have no damage. + +6:3 Then this Daniel was preferred above the presidents and princes, +because an excellent spirit was in him; and the king thought to set +him over the whole realm. + +6:4 Then the presidents and princes sought to find occasion against +Daniel concerning the kingdom; but they could find none occasion nor +fault; forasmuch as he was faithful, neither was there any error or +fault found in him. + +6:5 Then said these men, We shall not find any occasion against this +Daniel, except we find it against him concerning the law of his God. + +6:6 Then these presidents and princes assembled together to the king, +and said thus unto him, King Darius, live for ever. + +6:7 All the presidents of the kingdom, the governors, and the princes, +the counsellors, and the captains, have consulted together to +establish a royal statute, and to make a firm decree, that whosoever +shall ask a petition of any God or man for thirty days, save of thee, +O king, he shall be cast into the den of lions. + +6:8 Now, O king, establish the decree, and sign the writing, that it +be not changed, according to the law of the Medes and Persians, which +altereth not. + +6:9 Wherefore king Darius signed the writing and the decree. + +6:10 Now when Daniel knew that the writing was signed, he went into +his house; and his windows being open in his chamber toward Jerusalem, +he kneeled upon his knees three times a day, and prayed, and gave +thanks before his God, as he did aforetime. + +6:11 Then these men assembled, and found Daniel praying and making +supplication before his God. + +6:12 Then they came near, and spake before the king concerning the +king's decree; Hast thou not signed a decree, that every man that +shall ask a petition of any God or man within thirty days, save of +thee, O king, shall be cast into the den of lions? The king answered +and said, The thing is true, according to the law of the Medes and +Persians, which altereth not. + +6:13 Then answered they and said before the king, That Daniel, which +is of the children of the captivity of Judah, regardeth not thee, O +king, nor the decree that thou hast signed, but maketh his petition +three times a day. + +6:14 Then the king, when he heard these words, was sore displeased +with himself, and set his heart on Daniel to deliver him: and he +laboured till the going down of the sun to deliver him. + +6:15 Then these men assembled unto the king, and said unto the king, +Know, O king, that the law of the Medes and Persians is, That no +decree nor statute which the king establisheth may be changed. + +6:16 Then the king commanded, and they brought Daniel, and cast him +into the den of lions. Now the king spake and said unto Daniel, Thy +God whom thou servest continually, he will deliver thee. + +6:17 And a stone was brought, and laid upon the mouth of the den; and +the king sealed it with his own signet, and with the signet of his +lords; that the purpose might not be changed concerning Daniel. + +6:18 Then the king went to his palace, and passed the night fasting: +neither were instruments of musick brought before him: and his sleep +went from him. + +6:19 Then the king arose very early in the morning, and went in haste +unto the den of lions. + +6:20 And when he came to the den, he cried with a lamentable voice +unto Daniel: and the king spake and said to Daniel, O Daniel, servant +of the living God, is thy God, whom thou servest continually, able to +deliver thee from the lions? 6:21 Then said Daniel unto the king, O +king, live for ever. + +6:22 My God hath sent his angel, and hath shut the lions' mouths, that +they have not hurt me: forasmuch as before him innocency was found in +me; and also before thee, O king, have I done no hurt. + +6:23 Then was the king exceedingly glad for him, and commanded that +they should take Daniel up out of the den. So Daniel was taken up out +of the den, and no manner of hurt was found upon him, because he +believed in his God. + +6:24 And the king commanded, and they brought those men which had +accused Daniel, and they cast them into the den of lions, them, their +children, and their wives; and the lions had the mastery of them, and +brake all their bones in pieces or ever they came at the bottom of the +den. + +6:25 Then king Darius wrote unto all people, nations, and languages, +that dwell in all the earth; Peace be multiplied unto you. + +6:26 I make a decree, That in every dominion of my kingdom men tremble +and fear before the God of Daniel: for he is the living God, and +stedfast for ever, and his kingdom that which shall not be destroyed, +and his dominion shall be even unto the end. + +6:27 He delivereth and rescueth, and he worketh signs and wonders in +heaven and in earth, who hath delivered Daniel from the power of the +lions. + +6:28 So this Daniel prospered in the reign of Darius, and in the reign +of Cyrus the Persian. + +7:1 In the first year of Belshazzar king of Babylon Daniel had a dream +and visions of his head upon his bed: then he wrote the dream, and +told the sum of the matters. + +7:2 Daniel spake and said, I saw in my vision by night, and, behold, +the four winds of the heaven strove upon the great sea. + +7:3 And four great beasts came up from the sea, diverse one from +another. + +7:4 The first was like a lion, and had eagle's wings: I beheld till +the wings thereof were plucked, and it was lifted up from the earth, +and made stand upon the feet as a man, and a man's heart was given to +it. + +7:5 And behold another beast, a second, like to a bear, and it raised +up itself on one side, and it had three ribs in the mouth of it +between the teeth of it: and they said thus unto it, Arise, devour +much flesh. + +7:6 After this I beheld, and lo another, like a leopard, which had +upon the back of it four wings of a fowl; the beast had also four +heads; and dominion was given to it. + +7:7 After this I saw in the night visions, and behold a fourth beast, +dreadful and terrible, and strong exceedingly; and it had great iron +teeth: it devoured and brake in pieces, and stamped the residue with +the feet of it: and it was diverse from all the beasts that were +before it; and it had ten horns. + +7:8 I considered the horns, and, behold, there came up among them +another little horn, before whom there were three of the first horns +plucked up by the roots: and, behold, in this horn were eyes like the +eyes of man, and a mouth speaking great things. + +7:9 I beheld till the thrones were cast down, and the Ancient of days +did sit, whose garment was white as snow, and the hair of his head +like the pure wool: his throne was like the fiery flame, and his +wheels as burning fire. + +7:10 A fiery stream issued and came forth from before him: thousand +thousands ministered unto him, and ten thousand times ten thousand +stood before him: the judgment was set, and the books were opened. + +7:11 I beheld then because of the voice of the great words which the +horn spake: I beheld even till the beast was slain, and his body +destroyed, and given to the burning flame. + +7:12 As concerning the rest of the beasts, they had their dominion +taken away: yet their lives were prolonged for a season and time. + +7:13 I saw in the night visions, and, behold, one like the Son of man +came with the clouds of heaven, and came to the Ancient of days, and +they brought him near before him. + +7:14 And there was given him dominion, and glory, and a kingdom, that +all people, nations, and languages, should serve him: his dominion is +an everlasting dominion, which shall not pass away, and his kingdom +that which shall not be destroyed. + +7:15 I Daniel was grieved in my spirit in the midst of my body, and +the visions of my head troubled me. + +7:16 I came near unto one of them that stood by, and asked him the +truth of all this. So he told me, and made me know the interpretation +of the things. + +7:17 These great beasts, which are four, are four kings, which shall +arise out of the earth. + +7:18 But the saints of the most High shall take the kingdom, and +possess the kingdom for ever, even for ever and ever. + +7:19 Then I would know the truth of the fourth beast, which was +diverse from all the others, exceeding dreadful, whose teeth were of +iron, and his nails of brass; which devoured, brake in pieces, and +stamped the residue with his feet; 7:20 And of the ten horns that were +in his head, and of the other which came up, and before whom three +fell; even of that horn that had eyes, and a mouth that spake very +great things, whose look was more stout than his fellows. + +7:21 I beheld, and the same horn made war with the saints, and +prevailed against them; 7:22 Until the Ancient of days came, and +judgment was given to the saints of the most High; and the time came +that the saints possessed the kingdom. + +7:23 Thus he said, The fourth beast shall be the fourth kingdom upon +earth, which shall be diverse from all kingdoms, and shall devour the +whole earth, and shall tread it down, and break it in pieces. + +7:24 And the ten horns out of this kingdom are ten kings that shall +arise: and another shall rise after them; and he shall be diverse from +the first, and he shall subdue three kings. + +7:25 And he shall speak great words against the most High, and shall +wear out the saints of the most High, and think to change times and +laws: and they shall be given into his hand until a time and times and +the dividing of time. + +7:26 But the judgment shall sit, and they shall take away his +dominion, to consume and to destroy it unto the end. + +7:27 And the kingdom and dominion, and the greatness of the kingdom +under the whole heaven, shall be given to the people of the saints of +the most High, whose kingdom is an everlasting kingdom, and all +dominions shall serve and obey him. + +7:28 Hitherto is the end of the matter. As for me Daniel, my +cogitations much troubled me, and my countenance changed in me: but I +kept the matter in my heart. + +8:1 In the third year of the reign of king Belshazzar a vision +appeared unto me, even unto me Daniel, after that which appeared unto +me at the first. + +8:2 And I saw in a vision; and it came to pass, when I saw, that I was +at Shushan in the palace, which is in the province of Elam; and I saw +in a vision, and I was by the river of Ulai. + +8:3 Then I lifted up mine eyes, and saw, and, behold, there stood +before the river a ram which had two horns: and the two horns were +high; but one was higher than the other, and the higher came up last. + +8:4 I saw the ram pushing westward, and northward, and southward; so +that no beasts might stand before him, neither was there any that +could deliver out of his hand; but he did according to his will, and +became great. + +8:5 And as I was considering, behold, an he goat came from the west on +the face of the whole earth, and touched not the ground: and the goat +had a notable horn between his eyes. + +8:6 And he came to the ram that had two horns, which I had seen +standing before the river, and ran unto him in the fury of his power. + +8:7 And I saw him come close unto the ram, and he was moved with +choler against him, and smote the ram, and brake his two horns: and +there was no power in the ram to stand before him, but he cast him +down to the ground, and stamped upon him: and there was none that +could deliver the ram out of his hand. + +8:8 Therefore the he goat waxed very great: and when he was strong, +the great horn was broken; and for it came up four notable ones toward +the four winds of heaven. + +8:9 And out of one of them came forth a little horn, which waxed +exceeding great, toward the south, and toward the east, and toward the +pleasant land. + +8:10 And it waxed great, even to the host of heaven; and it cast down +some of the host and of the stars to the ground, and stamped upon +them. + +8:11 Yea, he magnified himself even to the prince of the host, and by +him the daily sacrifice was taken away, and the place of the sanctuary +was cast down. + +8:12 And an host was given him against the daily sacrifice by reason +of transgression, and it cast down the truth to the ground; and it +practised, and prospered. + +8:13 Then I heard one saint speaking, and another saint said unto that +certain saint which spake, How long shall be the vision concerning the +daily sacrifice, and the transgression of desolation, to give both the +sanctuary and the host to be trodden under foot? 8:14 And he said +unto me, Unto two thousand and three hundred days; then shall the +sanctuary be cleansed. + +8:15 And it came to pass, when I, even I Daniel, had seen the vision, +and sought for the meaning, then, behold, there stood before me as the +appearance of a man. + +8:16 And I heard a man's voice between the banks of Ulai, which +called, and said, Gabriel, make this man to understand the vision. + +8:17 So he came near where I stood: and when he came, I was afraid, +and fell upon my face: but he said unto me, Understand, O son of man: +for at the time of the end shall be the vision. + +8:18 Now as he was speaking with me, I was in a deep sleep on my face +toward the ground: but he touched me, and set me upright. + +8:19 And he said, Behold, I will make thee know what shall be in the +last end of the indignation: for at the time appointed the end shall +be. + +8:20 The ram which thou sawest having two horns are the kings of Media +and Persia. + +8:21 And the rough goat is the king of Grecia: and the great horn that +is between his eyes is the first king. + +8:22 Now that being broken, whereas four stood up for it, four +kingdoms shall stand up out of the nation, but not in his power. + +8:23 And in the latter time of their kingdom, when the transgressors +are come to the full, a king of fierce countenance, and understanding +dark sentences, shall stand up. + +8:24 And his power shall be mighty, but not by his own power: and he +shall destroy wonderfully, and shall prosper, and practise, and shall +destroy the mighty and the holy people. + +8:25 And through his policy also he shall cause craft to prosper in +his hand; and he shall magnify himself in his heart, and by peace +shall destroy many: he shall also stand up against the Prince of +princes; but he shall be broken without hand. + +8:26 And the vision of the evening and the morning which was told is +true: wherefore shut thou up the vision; for it shall be for many +days. + +8:27 And I Daniel fainted, and was sick certain days; afterward I rose +up, and did the king's business; and I was astonished at the vision, +but none understood it. + +9:1 In the first year of Darius the son of Ahasuerus, of the seed of +the Medes, which was made king over the realm of the Chaldeans; 9:2 In +the first year of his reign I Daniel understood by books the number of +the years, whereof the word of the LORD came to Jeremiah the prophet, +that he would accomplish seventy years in the desolations of +Jerusalem. + +9:3 And I set my face unto the Lord God, to seek by prayer and +supplications, with fasting, and sackcloth, and ashes: 9:4 And I +prayed unto the LORD my God, and made my confession, and said, O Lord, +the great and dreadful God, keeping the covenant and mercy to them +that love him, and to them that keep his commandments; 9:5 We have +sinned, and have committed iniquity, and have done wickedly, and have +rebelled, even by departing from thy precepts and from thy judgments: +9:6 Neither have we hearkened unto thy servants the prophets, which +spake in thy name to our kings, our princes, and our fathers, and to +all the people of the land. + +9:7 O LORD, righteousness belongeth unto thee, but unto us confusion +of faces, as at this day; to the men of Judah, and to the inhabitants +of Jerusalem, and unto all Israel, that are near, and that are far +off, through all the countries whither thou hast driven them, because +of their trespass that they have trespassed against thee. + +9:8 O Lord, to us belongeth confusion of face, to our kings, to our +princes, and to our fathers, because we have sinned against thee. + +9:9 To the Lord our God belong mercies and forgivenesses, though we +have rebelled against him; 9:10 Neither have we obeyed the voice of +the LORD our God, to walk in his laws, which he set before us by his +servants the prophets. + +9:11 Yea, all Israel have transgressed thy law, even by departing, +that they might not obey thy voice; therefore the curse is poured upon +us, and the oath that is written in the law of Moses the servant of +God, because we have sinned against him. + +9:12 And he hath confirmed his words, which he spake against us, and +against our judges that judged us, by bringing upon us a great evil: +for under the whole heaven hath not been done as hath been done upon +Jerusalem. + +9:13 As it is written in the law of Moses, all this evil is come upon +us: yet made we not our prayer before the LORD our God, that we might +turn from our iniquities, and understand thy truth. + +9:14 Therefore hath the LORD watched upon the evil, and brought it +upon us: for the LORD our God is righteous in all his works which he +doeth: for we obeyed not his voice. + +9:15 And now, O Lord our God, that hast brought thy people forth out +of the land of Egypt with a mighty hand, and hast gotten thee renown, +as at this day; we have sinned, we have done wickedly. + +9:16 O LORD, according to all thy righteousness, I beseech thee, let +thine anger and thy fury be turned away from thy city Jerusalem, thy +holy mountain: because for our sins, and for the iniquities of our +fathers, Jerusalem and thy people are become a reproach to all that +are about us. + +9:17 Now therefore, O our God, hear the prayer of thy servant, and his +supplications, and cause thy face to shine upon thy sanctuary that is +desolate, for the Lord's sake. + +9:18 O my God, incline thine ear, and hear; open thine eyes, and +behold our desolations, and the city which is called by thy name: for +we do not present our supplications before thee for our +righteousnesses, but for thy great mercies. + +9:19 O Lord, hear; O Lord, forgive; O Lord, hearken and do; defer not, +for thine own sake, O my God: for thy city and thy people are called +by thy name. + +9:20 And whiles I was speaking, and praying, and confessing my sin and +the sin of my people Israel, and presenting my supplication before the +LORD my God for the holy mountain of my God; 9:21 Yea, whiles I was +speaking in prayer, even the man Gabriel, whom I had seen in the +vision at the beginning, being caused to fly swiftly, touched me about +the time of the evening oblation. + +9:22 And he informed me, and talked with me, and said, O Daniel, I am +now come forth to give thee skill and understanding. + +9:23 At the beginning of thy supplications the commandment came forth, +and I am come to shew thee; for thou art greatly beloved: therefore +understand the matter, and consider the vision. + +9:24 Seventy weeks are determined upon thy people and upon thy holy +city, to finish the transgression, and to make an end of sins, and to +make reconciliation for iniquity, and to bring in everlasting +righteousness, and to seal up the vision and prophecy, and to anoint +the most Holy. + +9:25 Know therefore and understand, that from the going forth of the +commandment to restore and to build Jerusalem unto the Messiah the +Prince shall be seven weeks, and threescore and two weeks: the street +shall be built again, and the wall, even in troublous times. + +9:26 And after threescore and two weeks shall Messiah be cut off, but +not for himself: and the people of the prince that shall come shall +destroy the city and the sanctuary; and the end thereof shall be with +a flood, and unto the end of the war desolations are determined. + +9:27 And he shall confirm the covenant with many for one week: and in +the midst of the week he shall cause the sacrifice and the oblation to +cease, and for the overspreading of abominations he shall make it +desolate, even until the consummation, and that determined shall be +poured upon the desolate. + +10:1 In the third year of Cyrus king of Persia a thing was revealed +unto Daniel, whose name was called Belteshazzar; and the thing was +true, but the time appointed was long: and he understood the thing, +and had understanding of the vision. + +10:2 In those days I Daniel was mourning three full weeks. + +10:3 I ate no pleasant bread, neither came flesh nor wine in my mouth, +neither did I anoint myself at all, till three whole weeks were +fulfilled. + +10:4 And in the four and twentieth day of the first month, as I was by +the side of the great river, which is Hiddekel; 10:5 Then I lifted up +mine eyes, and looked, and behold a certain man clothed in linen, +whose loins were girded with fine gold of Uphaz: 10:6 His body also +was like the beryl, and his face as the appearance of lightning, and +his eyes as lamps of fire, and his arms and his feet like in colour to +polished brass, and the voice of his words like the voice of a +multitude. + +10:7 And I Daniel alone saw the vision: for the men that were with me +saw not the vision; but a great quaking fell upon them, so that they +fled to hide themselves. + +10:8 Therefore I was left alone, and saw this great vision, and there +remained no strength in me: for my comeliness was turned in me into +corruption, and I retained no strength. + +10:9 Yet heard I the voice of his words: and when I heard the voice of +his words, then was I in a deep sleep on my face, and my face toward +the ground. + +10:10 And, behold, an hand touched me, which set me upon my knees and +upon the palms of my hands. + +10:11 And he said unto me, O Daniel, a man greatly beloved, understand +the words that I speak unto thee, and stand upright: for unto thee am +I now sent. + +And when he had spoken this word unto me, I stood trembling. + +10:12 Then said he unto me, Fear not, Daniel: for from the first day +that thou didst set thine heart to understand, and to chasten thyself +before thy God, thy words were heard, and I am come for thy words. + +10:13 But the prince of the kingdom of Persia withstood me one and +twenty days: but, lo, Michael, one of the chief princes, came to help +me; and I remained there with the kings of Persia. + +10:14 Now I am come to make thee understand what shall befall thy +people in the latter days: for yet the vision is for many days. + +10:15 And when he had spoken such words unto me, I set my face toward +the ground, and I became dumb. + +10:16 And, behold, one like the similitude of the sons of men touched +my lips: then I opened my mouth, and spake, and said unto him that +stood before me, O my lord, by the vision my sorrows are turned upon +me, and I have retained no strength. + +10:17 For how can the servant of this my lord talk with this my lord? +for as for me, straightway there remained no strength in me, neither +is there breath left in me. + +10:18 Then there came again and touched me one like the appearance of +a man, and he strengthened me, 10:19 And said, O man greatly beloved, +fear not: peace be unto thee, be strong, yea, be strong. And when he +had spoken unto me, I was strengthened, and said, Let my lord speak; +for thou hast strengthened me. + +10:20 Then said he, Knowest thou wherefore I come unto thee? and now +will I return to fight with the prince of Persia: and when I am gone +forth, lo, the prince of Grecia shall come. + +10:21 But I will shew thee that which is noted in the scripture of +truth: and there is none that holdeth with me in these things, but +Michael your prince. + +11:1 Also I in the first year of Darius the Mede, even I, stood to +confirm and to strengthen him. + +11:2 And now will I shew thee the truth. Behold, there shall stand up +yet three kings in Persia; and the fourth shall be far richer than +they all: and by his strength through his riches he shall stir up all +against the realm of Grecia. + +11:3 And a mighty king shall stand up, that shall rule with great +dominion, and do according to his will. + +11:4 And when he shall stand up, his kingdom shall be broken, and +shall be divided toward the four winds of heaven; and not to his +posterity, nor according to his dominion which he ruled: for his +kingdom shall be plucked up, even for others beside those. + +11:5 And the king of the south shall be strong, and one of his +princes; and he shall be strong above him, and have dominion; his +dominion shall be a great dominion. + +11:6 And in the end of years they shall join themselves together; for +the king's daughter of the south shall come to the king of the north +to make an agreement: but she shall not retain the power of the arm; +neither shall he stand, nor his arm: but she shall be given up, and +they that brought her, and he that begat her, and he that strengthened +her in these times. + +11:7 But out of a branch of her roots shall one stand up in his +estate, which shall come with an army, and shall enter into the +fortress of the king of the north, and shall deal against them, and +shall prevail: 11:8 And shall also carry captives into Egypt their +gods, with their princes, and with their precious vessels of silver +and of gold; and he shall continue more years than the king of the +north. + +11:9 So the king of the south shall come into his kingdom, and shall +return into his own land. + +11:10 But his sons shall be stirred up, and shall assemble a multitude +of great forces: and one shall certainly come, and overflow, and pass +through: then shall he return, and be stirred up, even to his +fortress. + +11:11 And the king of the south shall be moved with choler, and shall +come forth and fight with him, even with the king of the north: and he +shall set forth a great multitude; but the multitude shall be given +into his hand. + +11:12 And when he hath taken away the multitude, his heart shall be +lifted up; and he shall cast down many ten thousands: but he shall not +be strengthened by it. + +11:13 For the king of the north shall return, and shall set forth a +multitude greater than the former, and shall certainly come after +certain years with a great army and with much riches. + +11:14 And in those times there shall many stand up against the king of +the south: also the robbers of thy people shall exalt themselves to +establish the vision; but they shall fall. + +11:15 So the king of the north shall come, and cast up a mount, and +take the most fenced cities: and the arms of the south shall not +withstand, neither his chosen people, neither shall there be any +strength to withstand. + +11:16 But he that cometh against him shall do according to his own +will, and none shall stand before him: and he shall stand in the +glorious land, which by his hand shall be consumed. + +11:17 He shall also set his face to enter with the strength of his +whole kingdom, and upright ones with him; thus shall he do: and he +shall give him the daughter of women, corrupting her: but she shall +not stand on his side, neither be for him. + +11:18 After this shall he turn his face unto the isles, and shall take +many: but a prince for his own behalf shall cause the reproach offered +by him to cease; without his own reproach he shall cause it to turn +upon him. + +11:19 Then he shall turn his face toward the fort of his own land: but +he shall stumble and fall, and not be found. + +11:20 Then shall stand up in his estate a raiser of taxes in the glory +of the kingdom: but within few days he shall be destroyed, neither in +anger, nor in battle. + +11:21 And in his estate shall stand up a vile person, to whom they +shall not give the honour of the kingdom: but he shall come in +peaceably, and obtain the kingdom by flatteries. + +11:22 And with the arms of a flood shall they be overflown from before +him, and shall be broken; yea, also the prince of the covenant. + +11:23 And after the league made with him he shall work deceitfully: +for he shall come up, and shall become strong with a small people. + +11:24 He shall enter peaceably even upon the fattest places of the +province; and he shall do that which his fathers have not done, nor +his fathers' fathers; he shall scatter among them the prey, and spoil, +and riches: yea, and he shall forecast his devices against the strong +holds, even for a time. + +11:25 And he shall stir up his power and his courage against the king +of the south with a great army; and the king of the south shall be +stirred up to battle with a very great and mighty army; but he shall +not stand: for they shall forecast devices against him. + +11:26 Yea, they that feed of the portion of his meat shall destroy +him, and his army shall overflow: and many shall fall down slain. + +11:27 And both of these kings' hearts shall be to do mischief, and +they shall speak lies at one table; but it shall not prosper: for yet +the end shall be at the time appointed. + +11:28 Then shall he return into his land with great riches; and his +heart shall be against the holy covenant; and he shall do exploits, +and return to his own land. + +11:29 At the time appointed he shall return, and come toward the +south; but it shall not be as the former, or as the latter. + +11:30 For the ships of Chittim shall come against him: therefore he +shall be grieved, and return, and have indignation against the holy +covenant: so shall he do; he shall even return, and have intelligence +with them that forsake the holy covenant. + +11:31 And arms shall stand on his part, and they shall pollute the +sanctuary of strength, and shall take away the daily sacrifice, and +they shall place the abomination that maketh desolate. + +11:32 And such as do wickedly against the covenant shall he corrupt by +flatteries: but the people that do know their God shall be strong, and +do exploits. + +11:33 And they that understand among the people shall instruct many: +yet they shall fall by the sword, and by flame, by captivity, and by +spoil, many days. + +11:34 Now when they shall fall, they shall be holpen with a little +help: but many shall cleave to them with flatteries. + +11:35 And some of them of understanding shall fall, to try them, and +to purge, and to make them white, even to the time of the end: because +it is yet for a time appointed. + +11:36 And the king shall do according to his will; and he shall exalt +himself, and magnify himself above every god, and shall speak +marvellous things against the God of gods, and shall prosper till the +indignation be accomplished: for that that is determined shall be +done. + +11:37 Neither shall he regard the God of his fathers, nor the desire +of women, nor regard any god: for he shall magnify himself above all. + +11:38 But in his estate shall he honour the God of forces: and a god +whom his fathers knew not shall he honour with gold, and silver, and +with precious stones, and pleasant things. + +11:39 Thus shall he do in the most strong holds with a strange god, +whom he shall acknowledge and increase with glory: and he shall cause +them to rule over many, and shall divide the land for gain. + +11:40 And at the time of the end shall the king of the south push at +him: and the king of the north shall come against him like a +whirlwind, with chariots, and with horsemen, and with many ships; and +he shall enter into the countries, and shall overflow and pass over. + +11:41 He shall enter also into the glorious land, and many countries +shall be overthrown: but these shall escape out of his hand, even +Edom, and Moab, and the chief of the children of Ammon. + +11:42 He shall stretch forth his hand also upon the countries: and the +land of Egypt shall not escape. + +11:43 But he shall have power over the treasures of gold and of +silver, and over all the precious things of Egypt: and the Libyans and +the Ethiopians shall be at his steps. + +11:44 But tidings out of the east and out of the north shall trouble +him: therefore he shall go forth with great fury to destroy, and +utterly to make away many. + +11:45 And he shall plant the tabernacles of his palace between the +seas in the glorious holy mountain; yet he shall come to his end, and +none shall help him. + +12:1 And at that time shall Michael stand up, the great prince which +standeth for the children of thy people: and there shall be a time of +trouble, such as never was since there was a nation even to that same +time: and at that time thy people shall be delivered, every one that +shall be found written in the book. + +12:2 And many of them that sleep in the dust of the earth shall awake, +some to everlasting life, and some to shame and everlasting contempt. + +12:3 And they that be wise shall shine as the brightness of the +firmament; and they that turn many to righteousness as the stars for +ever and ever. + +12:4 But thou, O Daniel, shut up the words, and seal the book, even to +the time of the end: many shall run to and fro, and knowledge shall be +increased. + +12:5 Then I Daniel looked, and, behold, there stood other two, the one +on this side of the bank of the river, and the other on that side of +the bank of the river. + +12:6 And one said to the man clothed in linen, which was upon the +waters of the river, How long shall it be to the end of these wonders? +12:7 And I heard the man clothed in linen, which was upon the waters +of the river, when he held up his right hand and his left hand unto +heaven, and sware by him that liveth for ever that it shall be for a +time, times, and an half; and when he shall have accomplished to +scatter the power of the holy people, all these things shall be +finished. + +12:8 And I heard, but I understood not: then said I, O my Lord, what +shall be the end of these things? 12:9 And he said, Go thy way, +Daniel: for the words are closed up and sealed till the time of the +end. + +12:10 Many shall be purified, and made white, and tried; but the +wicked shall do wickedly: and none of the wicked shall understand; but +the wise shall understand. + +12:11 And from the time that the daily sacrifice shall be taken away, +and the abomination that maketh desolate set up, there shall be a +thousand two hundred and ninety days. + +12:12 Blessed is he that waiteth, and cometh to the thousand three +hundred and five and thirty days. + +12:13 But go thou thy way till the end be: for thou shalt rest, +and stand in thy lot at the end of the days. + + + + +Hosea + + +1:1 The word of the LORD that came unto Hosea, the son of Beeri, in +the days of Uzziah, Jotham, Ahaz, and Hezekiah, kings of Judah, and in +the days of Jeroboam the son of Joash, king of Israel. + +1:2 The beginning of the word of the LORD by Hosea. And the LORD said +to Hosea, Go, take unto thee a wife of whoredoms and children of +whoredoms: for the land hath committed great whoredom, departing from +the LORD. + +1:3 So he went and took Gomer the daughter of Diblaim; which +conceived, and bare him a son. + +1:4 And the LORD said unto him, Call his name Jezreel; for yet a +little while, and I will avenge the blood of Jezreel upon the house of +Jehu, and will cause to cease the kingdom of the house of Israel. + +1:5 And it shall come to pass at that day, that I will break the bow +of Israel, in the valley of Jezreel. + +1:6 And she conceived again, and bare a daughter. And God said unto +him, Call her name Loruhamah: for I will no more have mercy upon the +house of Israel; but I will utterly take them away. + +1:7 But I will have mercy upon the house of Judah, and will save them +by the LORD their God, and will not save them by bow, nor by sword, +nor by battle, by horses, nor by horsemen. + +1:8 Now when she had weaned Loruhamah, she conceived, and bare a son. + +1:9 Then said God, Call his name Loammi: for ye are not my people, and +I will not be your God. + +1:10 Yet the number of the children of Israel shall be as the sand of +the sea, which cannot be measured nor numbered; and it shall come to +pass, that in the place where it was said unto them, Ye are not my +people, there it shall be said unto them, Ye are the sons of the +living God. + +1:11 Then shall the children of Judah and the children of Israel be +gathered together, and appoint themselves one head, and they shall +come up out of the land: for great shall be the day of Jezreel. + +2:1 Say ye unto your brethren, Ammi; and to your sisters, Ruhamah. + +2:2 Plead with your mother, plead: for she is not my wife, neither am +I her husband: let her therefore put away her whoredoms out of her +sight, and her adulteries from between her breasts; 2:3 Lest I strip +her naked, and set her as in the day that she was born, and make her +as a wilderness, and set her like a dry land, and slay her with +thirst. + +2:4 And I will not have mercy upon her children; for they be the +children of whoredoms. + +2:5 For their mother hath played the harlot: she that conceived them +hath done shamefully: for she said, I will go after my lovers, that +give me my bread and my water, my wool and my flax, mine oil and my +drink. + +2:6 Therefore, behold, I will hedge up thy way with thorns, and make a +wall, that she shall not find her paths. + +2:7 And she shall follow after her lovers, but she shall not overtake +them; and she shall seek them, but shall not find them: then shall she +say, I will go and return to my first husband; for then was it better +with me than now. + +2:8 For she did not know that I gave her corn, and wine, and oil, and +multiplied her silver and gold, which they prepared for Baal. + +2:9 Therefore will I return, and take away my corn in the time +thereof, and my wine in the season thereof, and will recover my wool +and my flax given to cover her nakedness. + +2:10 And now will I discover her lewdness in the sight of her lovers, +and none shall deliver her out of mine hand. + +2:11 I will also cause all her mirth to cease, her feast days, her new +moons, and her sabbaths, and all her solemn feasts. + +2:12 And I will destroy her vines and her fig trees, whereof she hath +said, These are my rewards that my lovers have given me: and I will +make them a forest, and the beasts of the field shall eat them. + +2:13 And I will visit upon her the days of Baalim, wherein she burned +incense to them, and she decked herself with her earrings and her +jewels, and she went after her lovers, and forgat me, saith the LORD. + +2:14 Therefore, behold, I will allure her, and bring her into the +wilderness, and speak comfortably unto her. + +2:15 And I will give her her vineyards from thence, and the valley of +Achor for a door of hope: and she shall sing there, as in the days of +her youth, and as in the day when she came up out of the land of +Egypt. + +2:16 And it shall be at that day, saith the LORD, that thou shalt call +me Ishi; and shalt call me no more Baali. + +2:17 For I will take away the names of Baalim out of her mouth, and +they shall no more be remembered by their name. + +2:18 And in that day will I make a covenant for them with the beasts +of the field and with the fowls of heaven, and with the creeping +things of the ground: and I will break the bow and the sword and the +battle out of the earth, and will make them to lie down safely. + +2:19 And I will betroth thee unto me for ever; yea, I will betroth +thee unto me in righteousness, and in judgment, and in lovingkindness, +and in mercies. + +2:20 I will even betroth thee unto me in faithfulness: and thou shalt +know the LORD. + +2:21 And it shall come to pass in that day, I will hear, saith the +LORD, I will hear the heavens, and they shall hear the earth; 2:22 And +the earth shall hear the corn, and the wine, and the oil; and they +shall hear Jezreel. + +2:23 And I will sow her unto me in the earth; and I will have mercy +upon her that had not obtained mercy; and I will say to them which +were not my people, Thou art my people; and they shall say, Thou art +my God. + +3:1 Then said the LORD unto me, Go yet, love a woman beloved of her +friend, yet an adulteress, according to the love of the LORD toward +the children of Israel, who look to other gods, and love flagons of +wine. + +3:2 So I bought her to me for fifteen pieces of silver, and for an +homer of barley, and an half homer of barley: 3:3 And I said unto her, +Thou shalt abide for me many days; thou shalt not play the harlot, and +thou shalt not be for another man: so will I also be for thee. + +3:4 For the children of Israel shall abide many days without a king, +and without a prince, and without a sacrifice, and without an image, +and without an ephod, and without teraphim: 3:5 Afterward shall the +children of Israel return, and seek the LORD their God, and David +their king; and shall fear the LORD and his goodness in the latter +days. + +4:1 Hear the word of the LORD, ye children of Israel: for the LORD +hath a controversy with the inhabitants of the land, because there is +no truth, nor mercy, nor knowledge of God in the land. + +4:2 By swearing, and lying, and killing, and stealing, and committing +adultery, they break out, and blood toucheth blood. + +4:3 Therefore shall the land mourn, and every one that dwelleth +therein shall languish, with the beasts of the field, and with the +fowls of heaven; yea, the fishes of the sea also shall be taken away. + +4:4 Yet let no man strive, nor reprove another: for thy people are as +they that strive with the priest. + +4:5 Therefore shalt thou fall in the day, and the prophet also shall +fall with thee in the night, and I will destroy thy mother. + +4:6 My people are destroyed for lack of knowledge: because thou hast +rejected knowledge, I will also reject thee, that thou shalt be no +priest to me: seeing thou hast forgotten the law of thy God, I will +also forget thy children. + +4:7 As they were increased, so they sinned against me: therefore will +I change their glory into shame. + +4:8 They eat up the sin of my people, and they set their heart on +their iniquity. + +4:9 And there shall be, like people, like priest: and I will punish +them for their ways, and reward them their doings. + +4:10 For they shall eat, and not have enough: they shall commit +whoredom, and shall not increase: because they have left off to take +heed to the LORD. + +4:11 Whoredom and wine and new wine take away the heart. + +4:12 My people ask counsel at their stocks, and their staff declareth +unto them: for the spirit of whoredoms hath caused them to err, and +they have gone a whoring from under their God. + +4:13 They sacrifice upon the tops of the mountains, and burn incense +upon the hills, under oaks and poplars and elms, because the shadow +thereof is good: therefore your daughters shall commit whoredom, and +your spouses shall commit adultery. + +4:14 I will not punish your daughters when they commit whoredom, nor +your spouses when they commit adultery: for themselves are separated +with whores, and they sacrifice with harlots: therefore the people +that doth not understand shall fall. + +4:15 Though thou, Israel, play the harlot, yet let not Judah offend; +and come not ye unto Gilgal, neither go ye up to Bethaven, nor swear, +The LORD liveth. + +4:16 For Israel slideth back as a backsliding heifer: now the LORD +will feed them as a lamb in a large place. + +4:17 Ephraim is joined to idols: let him alone. + +4:18 Their drink is sour: they have committed whoredom continually: +her rulers with shame do love, Give ye. + +4:19 The wind hath bound her up in her wings, and they shall be +ashamed because of their sacrifices. + +5:1 Hear ye this, O priests; and hearken, ye house of Israel; and give +ye ear, O house of the king; for judgment is toward you, because ye +have been a snare on Mizpah, and a net spread upon Tabor. + +5:2 And the revolters are profound to make slaughter, though I have +been a rebuker of them all. + +5:3 I know Ephraim, and Israel is not hid from me: for now, O Ephraim, +thou committest whoredom, and Israel is defiled. + +5:4 They will not frame their doings to turn unto their God: for the +spirit of whoredoms is in the midst of them, and they have not known +the LORD. + +5:5 And the pride of Israel doth testify to his face: therefore shall +Israel and Ephraim fall in their iniquity: Judah also shall fall with +them. + +5:6 They shall go with their flocks and with their herds to seek the +LORD; but they shall not find him; he hath withdrawn himself from +them. + +5:7 They have dealt treacherously against the LORD: for they have +begotten strange children: now shall a month devour them with their +portions. + +5:8 Blow ye the cornet in Gibeah, and the trumpet in Ramah: cry aloud +at Bethaven, after thee, O Benjamin. + +5:9 Ephraim shall be desolate in the day of rebuke: among the tribes +of Israel have I made known that which shall surely be. + +5:10 The princes of Judah were like them that remove the bound: +therefore I will pour out my wrath upon them like water. + +5:11 Ephraim is oppressed and broken in judgment, because he willingly +walked after the commandment. + +5:12 Therefore will I be unto Ephraim as a moth, and to the house of +Judah as rottenness. + +5:13 When Ephraim saw his sickness, and Judah saw his wound, then went +Ephraim to the Assyrian, and sent to king Jareb: yet could he not heal +you, nor cure you of your wound. + +5:14 For I will be unto Ephraim as a lion, and as a young lion to the +house of Judah: I, even I, will tear and go away; I will take away, +and none shall rescue him. + +5:15 I will go and return to my place, till they acknowledge their +offence, and seek my face: in their affliction they will seek me +early. + +6:1 Come, and let us return unto the LORD: for he hath torn, and he +will heal us; he hath smitten, and he will bind us up. + +6:2 After two days will he revive us: in the third day he will raise +us up, and we shall live in his sight. + +6:3 Then shall we know, if we follow on to know the LORD: his going +forth is prepared as the morning; and he shall come unto us as the +rain, as the latter and former rain unto the earth. + +6:4 O Ephraim, what shall I do unto thee? O Judah, what shall I do +unto thee? for your goodness is as a morning cloud, and as the early +dew it goeth away. + +6:5 Therefore have I hewed them by the prophets; I have slain them by +the words of my mouth: and thy judgments are as the light that goeth +forth. + +6:6 For I desired mercy, and not sacrifice; and the knowledge of God +more than burnt offerings. + +6:7 But they like men have transgressed the covenant: there have they +dealt treacherously against me. + +6:8 Gilead is a city of them that work iniquity, and is polluted with +blood. + +6:9 And as troops of robbers wait for a man, so the company of priests +murder in the way by consent: for they commit lewdness. + +6:10 I have seen an horrible thing in the house of Israel: there is +the whoredom of Ephraim, Israel is defiled. + +6:11 Also, O Judah, he hath set an harvest for thee, when I returned +the captivity of my people. + +7:1 When I would have healed Israel, then the iniquity of Ephraim was +discovered, and the wickedness of Samaria: for they commit falsehood; +and the thief cometh in, and the troop of robbers spoileth without. + +7:2 And they consider not in their hearts that I remember all their +wickedness: now their own doings have beset them about; they are +before my face. + +7:3 They make the king glad with their wickedness, and the princes +with their lies. + +7:4 They are all adulterers, as an oven heated by the baker, who +ceaseth from raising after he hath kneaded the dough, until it be +leavened. + +7:5 In the day of our king the princes have made him sick with bottles +of wine; he stretched out his hand with scorners. + +7:6 For they have made ready their heart like an oven, whiles they lie +in wait: their baker sleepeth all the night; in the morning it burneth +as a flaming fire. + +7:7 They are all hot as an oven, and have devoured their judges; all +their kings are fallen: there is none among them that calleth unto me. + +7:8 Ephraim, he hath mixed himself among the people; Ephraim is a cake +not turned. + +7:9 Strangers have devoured his strength, and he knoweth it not: yea, +gray hairs are here and there upon him, yet he knoweth not. + +7:10 And the pride of Israel testifieth to his face: and they do not +return to the LORD their God, nor seek him for all this. + +7:11 Ephraim also is like a silly dove without heart: they call to +Egypt, they go to Assyria. + +7:12 When they shall go, I will spread my net upon them; I will bring +them down as the fowls of the heaven; I will chastise them, as their +congregation hath heard. + +7:13 Woe unto them! for they have fled from me: destruction unto them! +because they have transgressed against me: though I have redeemed +them, yet they have spoken lies against me. + +7:14 And they have not cried unto me with their heart, when they +howled upon their beds: they assemble themselves for corn and wine, +and they rebel against me. + +7:15 Though I have bound and strengthened their arms, yet do they +imagine mischief against me. + +7:16 They return, but not to the most High: they are like a deceitful +bow: their princes shall fall by the sword for the rage of their +tongue: this shall be their derision in the land of Egypt. + +8:1 Set the trumpet to thy mouth. He shall come as an eagle against +the house of the LORD, because they have transgressed my covenant, and +trespassed against my law. + +8:2 Israel shall cry unto me, My God, we know thee. + +8:3 Israel hath cast off the thing that is good: the enemy shall +pursue him. + +8:4 They have set up kings, but not by me: they have made princes, and +I knew it not: of their silver and their gold have they made them +idols, that they may be cut off. + +8:5 Thy calf, O Samaria, hath cast thee off; mine anger is kindled +against them: how long will it be ere they attain to innocency? 8:6 +For from Israel was it also: the workman made it; therefore it is not +God: but the calf of Samaria shall be broken in pieces. + +8:7 For they have sown the wind, and they shall reap the whirlwind: it +hath no stalk; the bud shall yield no meal: if so be it yield, the +strangers shall swallow it up. + +8:8 Israel is swallowed up: now shall they be among the Gentiles as a +vessel wherein is no pleasure. + +8:9 For they are gone up to Assyria, a wild ass alone by himself: +Ephraim hath hired lovers. + +8:10 Yea, though they have hired among the nations, now will I gather +them, and they shall sorrow a little for the burden of the king of +princes. + +8:11 Because Ephraim hath made many altars to sin, altars shall be +unto him to sin. + +8:12 I have written to him the great things of my law, but they were +counted as a strange thing. + +8:13 They sacrifice flesh for the sacrifices of mine offerings, and +eat it; but the LORD accepteth them not; now will he remember their +iniquity, and visit their sins: they shall return to Egypt. + +8:14 For Israel hath forgotten his Maker, and buildeth temples; and +Judah hath multiplied fenced cities: but I will send a fire upon his +cities, and it shall devour the palaces thereof. + +9:1 Rejoice not, O Israel, for joy, as other people: for thou hast +gone a whoring from thy God, thou hast loved a reward upon every +cornfloor. + +9:2 The floor and the winepress shall not feed them, and the new wine +shall fail in her. + +9:3 They shall not dwell in the LORD's land; but Ephraim shall return +to Egypt, and they shall eat unclean things in Assyria. + +9:4 They shall not offer wine offerings to the LORD, neither shall +they be pleasing unto him: their sacrifices shall be unto them as the +bread of mourners; all that eat thereof shall be polluted: for their +bread for their soul shall not come into the house of the LORD. + +9:5 What will ye do in the solemn day, and in the day of the feast of +the LORD? 9:6 For, lo, they are gone because of destruction: Egypt +shall gather them up, Memphis shall bury them: the pleasant places for +their silver, nettles shall possess them: thorns shall be in their +tabernacles. + +9:7 The days of visitation are come, the days of recompence are come; +Israel shall know it: the prophet is a fool, the spiritual man is mad, +for the multitude of thine iniquity, and the great hatred. + +9:8 The watchman of Ephraim was with my God: but the prophet is a +snare of a fowler in all his ways, and hatred in the house of his God. + +9:9 They have deeply corrupted themselves, as in the days of Gibeah: +therefore he will remember their iniquity, he will visit their sins. + +9:10 I found Israel like grapes in the wilderness; I saw your fathers +as the firstripe in the fig tree at her first time: but they went to +Baalpeor, and separated themselves unto that shame; and their +abominations were according as they loved. + +9:11 As for Ephraim, their glory shall fly away like a bird, from the +birth, and from the womb, and from the conception. + +9:12 Though they bring up their children, yet will I bereave them, +that there shall not be a man left: yea, woe also to them when I +depart from them! 9:13 Ephraim, as I saw Tyrus, is planted in a +pleasant place: but Ephraim shall bring forth his children to the +murderer. + +9:14 Give them, O LORD: what wilt thou give? give them a miscarrying +womb and dry breasts. + +9:15 All their wickedness is in Gilgal: for there I hated them: for +the wickedness of their doings I will drive them out of mine house, I +will love them no more: all their princes are revolters. + +9:16 Ephraim is smitten, their root is dried up, they shall bear no +fruit: yea, though they bring forth, yet will I slay even the beloved +fruit of their womb. + +9:17 My God will cast them away, because they did not hearken unto +him: and they shall be wanderers among the nations. + +10:1 Israel is an empty vine, he bringeth forth fruit unto himself: +according to the multitude of his fruit he hath increased the altars; +according to the goodness of his land they have made goodly images. + +10:2 Their heart is divided; now shall they be found faulty: he shall +break down their altars, he shall spoil their images. + +10:3 For now they shall say, We have no king, because we feared not +the LORD; what then should a king do to us? 10:4 They have spoken +words, swearing falsely in making a covenant: thus judgment springeth +up as hemlock in the furrows of the field. + +10:5 The inhabitants of Samaria shall fear because of the calves of +Bethaven: for the people thereof shall mourn over it, and the priests +thereof that rejoiced on it, for the glory thereof, because it is +departed from it. + +10:6 It shall be also carried unto Assyria for a present to king +Jareb: Ephraim shall receive shame, and Israel shall be ashamed of his +own counsel. + +10:7 As for Samaria, her king is cut off as the foam upon the water. + +10:8 The high places also of Aven, the sin of Israel, shall be +destroyed: the thorn and the thistle shall come up on their altars; +and they shall say to the mountains, Cover us; and to the hills, Fall +on us. + +10:9 O Israel, thou hast sinned from the days of Gibeah: there they +stood: the battle in Gibeah against the children of iniquity did not +overtake them. + +10:10 It is in my desire that I should chastise them; and the people +shall be gathered against them, when they shall bind themselves in +their two furrows. + +10:11 And Ephraim is as an heifer that is taught, and loveth to tread +out the corn; but I passed over upon her fair neck: I will make +Ephraim to ride; Judah shall plow, and Jacob shall break his clods. + +10:12 Sow to yourselves in righteousness, reap in mercy; break up your +fallow ground: for it is time to seek the LORD, till he come and rain +righteousness upon you. + +10:13 Ye have plowed wickedness, ye have reaped iniquity; ye have +eaten the fruit of lies: because thou didst trust in thy way, in the +multitude of thy mighty men. + +10:14 Therefore shall a tumult arise among thy people, and all thy +fortresses shall be spoiled, as Shalman spoiled Betharbel in the day +of battle: the mother was dashed in pieces upon her children. + +10:15 So shall Bethel do unto you because of your great wickedness: in +a morning shall the king of Israel utterly be cut off. + +11:1 When Israel was a child, then I loved him, and called my son out +of Egypt. + +11:2 As they called them, so they went from them: they sacrificed unto +Baalim, and burned incense to graven images. + +11:3 I taught Ephraim also to go, taking them by their arms; but they +knew not that I healed them. + +11:4 I drew them with cords of a man, with bands of love: and I was to +them as they that take off the yoke on their jaws, and I laid meat +unto them. + +11:5 He shall not return into the land of Egypt, and the Assyrian +shall be his king, because they refused to return. + +11:6 And the sword shall abide on his cities, and shall consume his +branches, and devour them, because of their own counsels. + +11:7 And my people are bent to backsliding from me: though they called +them to the most High, none at all would exalt him. + +11:8 How shall I give thee up, Ephraim? how shall I deliver thee, +Israel? how shall I make thee as Admah? how shall I set thee as +Zeboim? mine heart is turned within me, my repentings are kindled +together. + +11:9 I will not execute the fierceness of mine anger, I will not +return to destroy Ephraim: for I am God, and not man; the Holy One in +the midst of thee: and I will not enter into the city. + +11:10 They shall walk after the LORD: he shall roar like a lion: when +he shall roar, then the children shall tremble from the west. + +11:11 They shall tremble as a bird out of Egypt, and as a dove out of +the land of Assyria: and I will place them in their houses, saith the +LORD. + +11:12 Ephraim compasseth me about with lies, and the house of Israel +with deceit: but Judah yet ruleth with God, and is faithful with the +saints. + +12:1 Ephraim feedeth on wind, and followeth after the east wind: he +daily increaseth lies and desolation; and they do make a covenant with +the Assyrians, and oil is carried into Egypt. + +12:2 The LORD hath also a controversy with Judah, and will punish +Jacob according to his ways; according to his doings will he +recompense him. + +12:3 He took his brother by the heel in the womb, and by his strength +he had power with God: 12:4 Yea, he had power over the angel, and +prevailed: he wept, and made supplication unto him: he found him in +Bethel, and there he spake with us; 12:5 Even the LORD God of hosts; +the LORD is his memorial. + +12:6 Therefore turn thou to thy God: keep mercy and judgment and wait +on thy God continually. + +12:7 He is a merchant, the balances of deceit are in his hand: he +loveth to oppress. + +12:8 And Ephraim said, Yet I am become rich, I have found me out +substance: in all my labours they shall find none iniquity in me that +were sin. + +12:9 And I that am the LORD thy God from the land of Egypt will yet +make thee to dwell in tabernacles, as in the days of the solemn feast. + +12:10 I have also spoken by the prophets, and I have multiplied +visions, and used similitudes, by the ministry of the prophets. + +12:11 Is there iniquity in Gilead? surely they are vanity: they +sacrifice bullocks in Gilgal; yea, their altars are as heaps in the +furrows of the fields. + +12:12 And Jacob fled into the country of Syria, and Israel served for +a wife, and for a wife he kept sheep. + +12:13 And by a prophet the LORD brought Israel out of Egypt, and by a +prophet was he preserved. + +12:14 Ephraim provoked him to anger most bitterly: therefore shall he +leave his blood upon him, and his reproach shall his LORD return unto +him. + +13:1 When Ephraim spake trembling, he exalted himself in Israel; but +when he offended in Baal, he died. + +13:2 And now they sin more and more, and have made them molten images +of their silver, and idols according to their own understanding, all +of it the work of the craftsmen: they say of them, Let the men that +sacrifice kiss the calves. + +13:3 Therefore they shall be as the morning cloud and as the early dew +that passeth away, as the chaff that is driven with the whirlwind out +of the floor, and as the smoke out of the chimney. + +13:4 Yet I am the LORD thy God from the land of Egypt, and thou shalt +know no god but me: for there is no saviour beside me. + +13:5 I did know thee in the wilderness, in the land of great drought. + +13:6 According to their pasture, so were they filled; they were +filled, and their heart was exalted; therefore have they forgotten me. + +13:7 Therefore I will be unto them as a lion: as a leopard by the way +will I observe them: 13:8 I will meet them as a bear that is bereaved +of her whelps, and will rend the caul of their heart, and there will I +devour them like a lion: the wild beast shall tear them. + +13:9 O Israel, thou hast destroyed thyself; but in me is thine help. + +13:10 I will be thy king: where is any other that may save thee in all +thy cities? and thy judges of whom thou saidst, Give me a king and +princes? 13:11 I gave thee a king in mine anger, and took him away in +my wrath. + +13:12 The iniquity of Ephraim is bound up; his sin is hid. + +13:13 The sorrows of a travailing woman shall come upon him: he is an +unwise son; for he should not stay long in the place of the breaking +forth of children. + +13:14 I will ransom them from the power of the grave; I will redeem +them from death: O death, I will be thy plagues; O grave, I will be +thy destruction: repentance shall be hid from mine eyes. + +13:15 Though he be fruitful among his brethren, an east wind shall +come, the wind of the LORD shall come up from the wilderness, and his +spring shall become dry, and his fountain shall be dried up: he shall +spoil the treasure of all pleasant vessels. + +13:16 Samaria shall become desolate; for she hath rebelled against her +God: they shall fall by the sword: their infants shall be dashed in +pieces, and their women with child shall be ripped up. + +14:1 O israel, return unto the LORD thy God; for thou hast fallen by +thine iniquity. + +14:2 Take with you words, and turn to the LORD: say unto him, Take +away all iniquity, and receive us graciously: so will we render the +calves of our lips. + +14:3 Asshur shall not save us; we will not ride upon horses: neither +will we say any more to the work of our hands, Ye are our gods: for in +thee the fatherless findeth mercy. + +14:4 I will heal their backsliding, I will love them freely: for mine +anger is turned away from him. + +14:5 I will be as the dew unto Israel: he shall grow as the lily, and +cast forth his roots as Lebanon. + +14:6 His branches shall spread, and his beauty shall be as the olive +tree, and his smell as Lebanon. + +14:7 They that dwell under his shadow shall return; they shall revive +as the corn, and grow as the vine: the scent thereof shall be as the +wine of Lebanon. + +14:8 Ephraim shall say, What have I to do any more with idols? I have +heard him, and observed him: I am like a green fir tree. From me is +thy fruit found. + +14:9 Who is wise, and he shall understand these things? prudent, and +he shall know them? for the ways of the LORD are right, and the just +shall walk in them: but the transgressors shall fall therein. + + + + +Joel + + +1:1 The word of the LORD that came to Joel the son of Pethuel. + +1:2 Hear this, ye old men, and give ear, all ye inhabitants of the land. + +Hath this been in your days, or even in the days of your fathers? 1:3 +Tell ye your children of it, and let your children tell their +children, and their children another generation. + +1:4 That which the palmerworm hath left hath the locust eaten; and +that which the locust hath left hath the cankerworm eaten; and that +which the cankerworm hath left hath the caterpiller eaten. + +1:5 Awake, ye drunkards, and weep; and howl, all ye drinkers of wine, +because of the new wine; for it is cut off from your mouth. + +1:6 For a nation is come up upon my land, strong, and without number, +whose teeth are the teeth of a lion, and he hath the cheek teeth of a +great lion. + +1:7 He hath laid my vine waste, and barked my fig tree: he hath made +it clean bare, and cast it away; the branches thereof are made white. + +1:8 Lament like a virgin girded with sackcloth for the husband of her +youth. + +1:9 The meat offering and the drink offering is cut off from the house +of the LORD; the priests, the LORD's ministers, mourn. + +1:10 The field is wasted, the land mourneth; for the corn is wasted: +the new wine is dried up, the oil languisheth. + +1:11 Be ye ashamed, O ye husbandmen; howl, O ye vinedressers, for the +wheat and for the barley; because the harvest of the field is +perished. + +1:12 The vine is dried up, and the fig tree languisheth; the +pomegranate tree, the palm tree also, and the apple tree, even all the +trees of the field, are withered: because joy is withered away from +the sons of men. + +1:13 Gird yourselves, and lament, ye priests: howl, ye ministers of +the altar: come, lie all night in sackcloth, ye ministers of my God: +for the meat offering and the drink offering is withholden from the +house of your God. + +1:14 Sanctify ye a fast, call a solemn assembly, gather the elders and +all the inhabitants of the land into the house of the LORD your God, +and cry unto the LORD, 1:15 Alas for the day! for the day of the LORD +is at hand, and as a destruction from the Almighty shall it come. + +1:16 Is not the meat cut off before our eyes, yea, joy and gladness +from the house of our God? 1:17 The seed is rotten under their clods, +the garners are laid desolate, the barns are broken down; for the corn +is withered. + +1:18 How do the beasts groan! the herds of cattle are perplexed, +because they have no pasture; yea, the flocks of sheep are made +desolate. + +1:19 O LORD, to thee will I cry: for the fire hath devoured the +pastures of the wilderness, and the flame hath burned all the trees of +the field. + +1:20 The beasts of the field cry also unto thee: for the rivers of +waters are dried up, and the fire hath devoured the pastures of the +wilderness. + +2:1 Blow ye the trumpet in Zion, and sound an alarm in my holy +mountain: let all the inhabitants of the land tremble: for the day of +the LORD cometh, for it is nigh at hand; 2:2 A day of darkness and of +gloominess, a day of clouds and of thick darkness, as the morning +spread upon the mountains: a great people and a strong; there hath not +been ever the like, neither shall be any more after it, even to the +years of many generations. + +2:3 A fire devoureth before them; and behind them a flame burneth: the +land is as the garden of Eden before them, and behind them a desolate +wilderness; yea, and nothing shall escape them. + +2:4 The appearance of them is as the appearance of horses; and as +horsemen, so shall they run. + +2:5 Like the noise of chariots on the tops of mountains shall they +leap, like the noise of a flame of fire that devoureth the stubble, as +a strong people set in battle array. + +2:6 Before their face the people shall be much pained: all faces shall +gather blackness. + +2:7 They shall run like mighty men; they shall climb the wall like men +of war; and they shall march every one on his ways, and they shall not +break their ranks: 2:8 Neither shall one thrust another; they shall +walk every one in his path: and when they fall upon the sword, they +shall not be wounded. + +2:9 They shall run to and fro in the city; they shall run upon the +wall, they shall climb up upon the houses; they shall enter in at the +windows like a thief. + +2:10 The earth shall quake before them; the heavens shall tremble: the +sun and the moon shall be dark, and the stars shall withdraw their +shining: 2:11 And the LORD shall utter his voice before his army: for +his camp is very great: for he is strong that executeth his word: for +the day of the LORD is great and very terrible; and who can abide it? +2:12 Therefore also now, saith the LORD, turn ye even to me with all +your heart, and with fasting, and with weeping, and with mourning: +2:13 And rend your heart, and not your garments, and turn unto the +LORD your God: for he is gracious and merciful, slow to anger, and of +great kindness, and repenteth him of the evil. + +2:14 Who knoweth if he will return and repent, and leave a blessing +behind him; even a meat offering and a drink offering unto the LORD +your God? 2:15 Blow the trumpet in Zion, sanctify a fast, call a +solemn assembly: 2:16 Gather the people, sanctify the congregation, +assemble the elders, gather the children, and those that suck the +breasts: let the bridegroom go forth of his chamber, and the bride out +of her closet. + +2:17 Let the priests, the ministers of the LORD, weep between the +porch and the altar, and let them say, Spare thy people, O LORD, and +give not thine heritage to reproach, that the heathen should rule over +them: wherefore should they say among the people, Where is their God? +2:18 Then will the LORD be jealous for his land, and pity his people. + +2:19 Yea, the LORD will answer and say unto his people, Behold, I will +send you corn, and wine, and oil, and ye shall be satisfied therewith: +and I will no more make you a reproach among the heathen: 2:20 But I +will remove far off from you the northern army, and will drive him +into a land barren and desolate, with his face toward the east sea, +and his hinder part toward the utmost sea, and his stink shall come +up, and his ill savour shall come up, because he hath done great +things. + +2:21 Fear not, O land; be glad and rejoice: for the LORD will do great +things. + +2:22 Be not afraid, ye beasts of the field: for the pastures of the +wilderness do spring, for the tree beareth her fruit, the fig tree and +the vine do yield their strength. + +2:23 Be glad then, ye children of Zion, and rejoice in the LORD your +God: for he hath given you the former rain moderately, and he will +cause to come down for you the rain, the former rain, and the latter +rain in the first month. + +2:24 And the floors shall be full of wheat, and the vats shall +overflow with wine and oil. + +2:25 And I will restore to you the years that the locust hath eaten, +the cankerworm, and the caterpiller, and the palmerworm, my great army +which I sent among you. + +2:26 And ye shall eat in plenty, and be satisfied, and praise the name +of the LORD your God, that hath dealt wondrously with you: and my +people shall never be ashamed. + +2:27 And ye shall know that I am in the midst of Israel, and that I am +the LORD your God, and none else: and my people shall never be +ashamed. + +2:28 And it shall come to pass afterward, that I will pour out my +spirit upon all flesh; and your sons and your daughters shall +prophesy, your old men shall dream dreams, your young men shall see +visions: 2:29 And also upon the servants and upon the handmaids in +those days will I pour out my spirit. + +2:30 And I will shew wonders in the heavens and in the earth, blood, +and fire, and pillars of smoke. + +2:31 The sun shall be turned into darkness, and the moon into blood, +before the great and terrible day of the LORD come. + +2:32 And it shall come to pass, that whosoever shall call on the name +of the LORD shall be delivered: for in mount Zion and in Jerusalem +shall be deliverance, as the LORD hath said, and in the remnant whom +the LORD shall call. + +3:1 For, behold, in those days, and in that time, when I shall bring +again the captivity of Judah and Jerusalem, 3:2 I will also gather all +nations, and will bring them down into the valley of Jehoshaphat, and +will plead with them there for my people and for my heritage Israel, +whom they have scattered among the nations, and parted my land. + +3:3 And they have cast lots for my people; and have given a boy for an +harlot, and sold a girl for wine, that they might drink. + +3:4 Yea, and what have ye to do with me, O Tyre, and Zidon, and all +the coasts of Palestine? will ye render me a recompence? and if ye +recompense me, swiftly and speedily will I return your recompence upon +your own head; 3:5 Because ye have taken my silver and my gold, and +have carried into your temples my goodly pleasant things: 3:6 The +children also of Judah and the children of Jerusalem have ye sold unto +the Grecians, that ye might remove them far from their border. + +3:7 Behold, I will raise them out of the place whither ye have sold +them, and will return your recompence upon your own head: 3:8 And I +will sell your sons and your daughters into the hand of the children +of Judah, and they shall sell them to the Sabeans, to a people far +off: for the LORD hath spoken it. + +3:9 Proclaim ye this among the Gentiles; Prepare war, wake up the +mighty men, let all the men of war draw near; let them come up: 3:10 +Beat your plowshares into swords and your pruninghooks into spears: +let the weak say, I am strong. + +3:11 Assemble yourselves, and come, all ye heathen, and gather +yourselves together round about: thither cause thy mighty ones to come +down, O LORD. + +3:12 Let the heathen be wakened, and come up to the valley of +Jehoshaphat: for there will I sit to judge all the heathen round +about. + +3:13 Put ye in the sickle, for the harvest is ripe: come, get you +down; for the press is full, the fats overflow; for their wickedness +is great. + +3:14 Multitudes, multitudes in the valley of decision: for the day of +the LORD is near in the valley of decision. + +3:15 The sun and the moon shall be darkened, and the stars shall +withdraw their shining. + +3:16 The LORD also shall roar out of Zion, and utter his voice from +Jerusalem; and the heavens and the earth shall shake: but the LORD +will be the hope of his people, and the strength of the children of +Israel. + +3:17 So shall ye know that I am the LORD your God dwelling in Zion, my +holy mountain: then shall Jerusalem be holy, and there shall no +strangers pass through her any more. + +3:18 And it shall come to pass in that day, that the mountains shall +drop down new wine, and the hills shall flow with milk, and all the +rivers of Judah shall flow with waters, and a fountain shall come +forth out of the house of the LORD, and shall water the valley of +Shittim. + +3:19 Egypt shall be a desolation, and Edom shall be a desolate +wilderness, for the violence against the children of Judah, because +they have shed innocent blood in their land. + +3:20 But Judah shall dwell for ever, and Jerusalem from generation to +generation. + +3:21 For I will cleanse their blood that I have not cleansed: for the +LORD dwelleth in Zion. + + + + +Amos + + +1:1 The words of Amos, who was among the herdmen of Tekoa, which he +saw concerning Israel in the days of Uzziah king of Judah, and in the +days of Jeroboam the son of Joash king of Israel, two years before the +earthquake. + +1:2 And he said, The LORD will roar from Zion, and utter his voice +from Jerusalem; and the habitations of the shepherds shall mourn, and +the top of Carmel shall wither. + +1:3 Thus saith the LORD; For three transgressions of Damascus, and for +four, I will not turn away the punishment thereof; because they have +threshed Gilead with threshing instruments of iron: 1:4 But I will +send a fire into the house of Hazael, which shall devour the palaces +of Benhadad. + +1:5 I will break also the bar of Damascus, and cut off the inhabitant +from the plain of Aven, and him that holdeth the sceptre from the +house of Eden: and the people of Syria shall go into captivity unto +Kir, saith the LORD. + +1:6 Thus saith the LORD; For three transgressions of Gaza, and for +four, I will not turn away the punishment thereof; because they +carried away captive the whole captivity, to deliver them up to Edom: +1:7 But I will send a fire on the wall of Gaza, which shall devour the +palaces thereof: 1:8 And I will cut off the inhabitant from Ashdod, +and him that holdeth the sceptre from Ashkelon, and I will turn mine +hand against Ekron: and the remnant of the Philistines shall perish, +saith the Lord GOD. + +1:9 Thus saith the LORD; For three transgressions of Tyrus, and for +four, I will not turn away the punishment thereof; because they +delivered up the whole captivity to Edom, and remembered not the +brotherly covenant: 1:10 But I will send a fire on the wall of Tyrus, +which shall devour the palaces thereof. + +1:11 Thus saith the LORD; For three transgressions of Edom, and for +four, I will not turn away the punishment thereof; because he did +pursue his brother with the sword, and did cast off all pity, and his +anger did tear perpetually, and he kept his wrath for ever: 1:12 But I +will send a fire upon Teman, which shall devour the palaces of Bozrah. + +1:13 Thus saith the LORD; For three transgressions of the children of +Ammon, and for four, I will not turn away the punishment thereof; +because they have ripped up the women with child of Gilead, that they +might enlarge their border: 1:14 But I will kindle a fire in the wall +of Rabbah, and it shall devour the palaces thereof, with shouting in +the day of battle, with a tempest in the day of the whirlwind: 1:15 +And their king shall go into captivity, he and his princes together, +saith the LORD. + +2:1 Thus saith the LORD; For three transgressions of Moab, and for +four, I will not turn away the punishment thereof; because he burned +the bones of the king of Edom into lime: 2:2 But I will send a fire +upon Moab, and it shall devour the palaces of Kirioth: and Moab shall +die with tumult, with shouting, and with the sound of the trumpet: 2:3 +And I will cut off the judge from the midst thereof, and will slay all +the princes thereof with him, saith the LORD. + +2:4 Thus saith the LORD; For three transgressions of Judah, and for +four, I will not turn away the punishment thereof; because they have +despised the law of the LORD, and have not kept his commandments, and +their lies caused them to err, after the which their fathers have +walked: 2:5 But I will send a fire upon Judah, and it shall devour the +palaces of Jerusalem. + +2:6 Thus saith the LORD; For three transgressions of Israel, and for +four, I will not turn away the punishment thereof; because they sold +the righteous for silver, and the poor for a pair of shoes; 2:7 That +pant after the dust of the earth on the head of the poor, and turn +aside the way of the meek: and a man and his father will go in unto +the same maid, to profane my holy name: 2:8 And they lay themselves +down upon clothes laid to pledge by every altar, and they drink the +wine of the condemned in the house of their god. + +2:9 Yet destroyed I the Amorite before them, whose height was like the +height of the cedars, and he was strong as the oaks; yet I destroyed +his fruit from above, and his roots from beneath. + +2:10 Also I brought you up from the land of Egypt, and led you forty +years through the wilderness, to possess the land of the Amorite. + +2:11 And I raised up of your sons for prophets, and of your young men +for Nazarites. Is it not even thus, O ye children of Israel? saith the +LORD. + +2:12 But ye gave the Nazarites wine to drink; and commanded the +prophets, saying, Prophesy not. + +2:13 Behold, I am pressed under you, as a cart is pressed that is full +of sheaves. + +2:14 Therefore the flight shall perish from the swift, and the strong +shall not strengthen his force, neither shall the mighty deliver +himself: 2:15 Neither shall he stand that handleth the bow; and he +that is swift of foot shall not deliver himself: neither shall he that +rideth the horse deliver himself. + +2:16 And he that is courageous among the mighty shall flee away naked +in that day, saith the LORD. + +3:1 Hear this word that the LORD hath spoken against you, O children +of Israel, against the whole family which I brought up from the land +of Egypt, saying, 3:2 You only have I known of all the families of the +earth: therefore I will punish you for all your iniquities. + +3:3 Can two walk together, except they be agreed? 3:4 Will a lion +roar in the forest, when he hath no prey? will a young lion cry out of +his den, if he have taken nothing? 3:5 Can a bird fall in a snare +upon the earth, where no gin is for him? shall one take up a snare +from the earth, and have taken nothing at all? 3:6 Shall a trumpet be +blown in the city, and the people not be afraid? shall there be evil +in a city, and the LORD hath not done it? 3:7 Surely the Lord GOD +will do nothing, but he revealeth his secret unto his servants the +prophets. + +3:8 The lion hath roared, who will not fear? the Lord GOD hath spoken, +who can but prophesy? 3:9 Publish in the palaces at Ashdod, and in +the palaces in the land of Egypt, and say, Assemble yourselves upon +the mountains of Samaria, and behold the great tumults in the midst +thereof, and the oppressed in the midst thereof. + +3:10 For they know not to do right, saith the LORD, who store up +violence and robbery in their palaces. + +3:11 Therefore thus saith the Lord GOD; An adversary there shall be +even round about the land; and he shall bring down thy strength from +thee, and thy palaces shall be spoiled. + +3:12 Thus saith the LORD; As the shepherd taketh out of the mouth of +the lion two legs, or a piece of an ear; so shall the children of +Israel be taken out that dwell in Samaria in the corner of a bed, and +in Damascus in a couch. + +3:13 Hear ye, and testify in the house of Jacob, saith the Lord GOD, +the God of hosts, 3:14 That in the day that I shall visit the +transgressions of Israel upon him I will also visit the altars of +Bethel: and the horns of the altar shall be cut off, and fall to the +ground. + +3:15 And I will smite the winter house with the summer house; and the +houses of ivory shall perish, and the great houses shall have an end, +saith the LORD. + +4:1 Hear this word, ye kine of Bashan, that are in the mountain of +Samaria, which oppress the poor, which crush the needy, which say to +their masters, Bring, and let us drink. + +4:2 The Lord GOD hath sworn by his holiness, that, lo, the days shall +come upon you, that he will take you away with hooks, and your +posterity with fishhooks. + +4:3 And ye shall go out at the breaches, every cow at that which is +before her; and ye shall cast them into the palace, saith the LORD. + +4:4 Come to Bethel, and transgress; at Gilgal multiply transgression; +and bring your sacrifices every morning, and your tithes after three +years: 4:5 And offer a sacrifice of thanksgiving with leaven, and +proclaim and publish the free offerings: for this liketh you, O ye +children of Israel, saith the Lord GOD. + +4:6 And I also have given you cleanness of teeth in all your cities, +and want of bread in all your places: yet have ye not returned unto +me, saith the LORD. + +4:7 And also I have withholden the rain from you, when there were yet +three months to the harvest: and I caused it to rain upon one city, +and caused it not to rain upon another city: one piece was rained +upon, and the piece whereupon it rained not withered. + +4:8 So two or three cities wandered unto one city, to drink water; but +they were not satisfied: yet have ye not returned unto me, saith the +LORD. + +4:9 I have smitten you with blasting and mildew: when your gardens and +your vineyards and your fig trees and your olive trees increased, the +palmerworm devoured them: yet have ye not returned unto me, saith the +LORD. + +4:10 I have sent among you the pestilence after the manner of Egypt: +your young men have I slain with the sword, and have taken away your +horses; and I have made the stink of your camps to come up unto your +nostrils: yet have ye not returned unto me, saith the LORD. + +4:11 I have overthrown some of you, as God overthrew Sodom and +Gomorrah, and ye were as a firebrand plucked out of the burning: yet +have ye not returned unto me, saith the LORD. + +4:12 Therefore thus will I do unto thee, O Israel: and because I will +do this unto thee, prepare to meet thy God, O Israel. + +4:13 For, lo, he that formeth the mountains, and createth the wind, +and declareth unto man what is his thought, that maketh the morning +darkness, and treadeth upon the high places of the earth, The LORD, +The God of hosts, is his name. + +5:1 Hear ye this word which I take up against you, even a lamentation, +O house of Israel. + +5:2 The virgin of Israel is fallen; she shall no more rise: she is +forsaken upon her land; there is none to raise her up. + +5:3 For thus saith the Lord GOD; The city that went out by a thousand +shall leave an hundred, and that which went forth by an hundred shall +leave ten, to the house of Israel. + +5:4 For thus saith the LORD unto the house of Israel, Seek ye me, and +ye shall live: 5:5 But seek not Bethel, nor enter into Gilgal, and +pass not to Beersheba: for Gilgal shall surely go into captivity, and +Bethel shall come to nought. + +5:6 Seek the LORD, and ye shall live; lest he break out like fire in +the house of Joseph, and devour it, and there be none to quench it in +Bethel. + +5:7 Ye who turn judgment to wormwood, and leave off righteousness in +the earth, 5:8 Seek him that maketh the seven stars and Orion, and +turneth the shadow of death into the morning, and maketh the day dark +with night: that calleth for the waters of the sea, and poureth them +out upon the face of the earth: The LORD is his name: 5:9 That +strengtheneth the spoiled against the strong, so that the spoiled +shall come against the fortress. + +5:10 They hate him that rebuketh in the gate, and they abhor him that +speaketh uprightly. + +5:11 Forasmuch therefore as your treading is upon the poor, and ye +take from him burdens of wheat: ye have built houses of hewn stone, +but ye shall not dwell in them; ye have planted pleasant vineyards, +but ye shall not drink wine of them. + +5:12 For I know your manifold transgressions and your mighty sins: +they afflict the just, they take a bribe, and they turn aside the poor +in the gate from their right. + +5:13 Therefore the prudent shall keep silence in that time; for it is +an evil time. + +5:14 Seek good, and not evil, that ye may live: and so the LORD, the +God of hosts, shall be with you, as ye have spoken. + +5:15 Hate the evil, and love the good, and establish judgment in the +gate: it may be that the LORD God of hosts will be gracious unto the +remnant of Joseph. + +5:16 Therefore the LORD, the God of hosts, the LORD, saith thus; +Wailing shall be in all streets; and they shall say in all the +highways, Alas! alas! and they shall call the husbandman to mourning, +and such as are skilful of lamentation to wailing. + +5:17 And in all vineyards shall be wailing: for I will pass through +thee, saith the LORD. + +5:18 Woe unto you that desire the day of the LORD! to what end is it +for you? the day of the LORD is darkness, and not light. + +5:19 As if a man did flee from a lion, and a bear met him; or went +into the house, and leaned his hand on the wall, and a serpent bit +him. + +5:20 Shall not the day of the LORD be darkness, and not light? even +very dark, and no brightness in it? 5:21 I hate, I despise your feast +days, and I will not smell in your solemn assemblies. + +5:22 Though ye offer me burnt offerings and your meat offerings, I +will not accept them: neither will I regard the peace offerings of +your fat beasts. + +5:23 Take thou away from me the noise of thy songs; for I will not +hear the melody of thy viols. + +5:24 But let judgment run down as waters, and righteousness as a +mighty stream. + +5:25 Have ye offered unto me sacrifices and offerings in the +wilderness forty years, O house of Israel? 5:26 But ye have borne the +tabernacle of your Moloch and Chiun your images, the star of your god, +which ye made to yourselves. + +5:27 Therefore will I cause you to go into captivity beyond Damascus, +saith the LORD, whose name is The God of hosts. + +6:1 Woe to them that are at ease in Zion, and trust in the mountain of +Samaria, which are named chief of the nations, to whom the house of +Israel came! 6:2 Pass ye unto Calneh, and see; and from thence go ye +to Hamath the great: then go down to Gath of the Philistines: be they +better than these kingdoms? or their border greater than your border? +6:3 Ye that put far away the evil day, and cause the seat of violence +to come near; 6:4 That lie upon beds of ivory, and stretch themselves +upon their couches, and eat the lambs out of the flock, and the calves +out of the midst of the stall; 6:5 That chant to the sound of the +viol, and invent to themselves instruments of musick, like David; 6:6 +That drink wine in bowls, and anoint themselves with the chief +ointments: but they are not grieved for the affliction of Joseph. + +6:7 Therefore now shall they go captive with the first that go +captive, and the banquet of them that stretched themselves shall be +removed. + +6:8 The Lord GOD hath sworn by himself, saith the LORD the God of +hosts, I abhor the excellency of Jacob, and hate his palaces: +therefore will I deliver up the city with all that is therein. + +6:9 And it shall come to pass, if there remain ten men in one house, +that they shall die. + +6:10 And a man's uncle shall take him up, and he that burneth him, to +bring out the bones out of the house, and shall say unto him that is +by the sides of the house, Is there yet any with thee? and he shall +say, No. Then shall he say, Hold thy tongue: for we may not make +mention of the name of the LORD. + +6:11 For, behold, the LORD commandeth, and he will smite the great +house with breaches, and the little house with clefts. + +6:12 Shall horses run upon the rock? will one plow there with oxen? +for ye have turned judgment into gall, and the fruit of righteousness +into hemlock: 6:13 Ye which rejoice in a thing of nought, which say, +Have we not taken to us horns by our own strength? 6:14 But, behold, +I will raise up against you a nation, O house of Israel, saith the +LORD the God of hosts; and they shall afflict you from the entering in +of Hemath unto the river of the wilderness. + +7:1 Thus hath the Lord GOD shewed unto me; and, behold, he formed +grasshoppers in the beginning of the shooting up of the latter growth; +and, lo, it was the latter growth after the king's mowings. + +7:2 And it came to pass, that when they had made an end of eating the +grass of the land, then I said, O Lord GOD, forgive, I beseech thee: +by whom shall Jacob arise? for he is small. + +7:3 The LORD repented for this: It shall not be, saith the LORD. + +7:4 Thus hath the Lord GOD shewed unto me: and, behold, the Lord GOD +called to contend by fire, and it devoured the great deep, and did eat +up a part. + +7:5 Then said I, O Lord GOD, cease, I beseech thee: by whom shall +Jacob arise? for he is small. + +7:6 The LORD repented for this: This also shall not be, saith the Lord +GOD. + +7:7 Thus he shewed me: and, behold, the LORD stood upon a wall made by +a plumbline, with a plumbline in his hand. + +7:8 And the LORD said unto me, Amos, what seest thou? And I said, A +plumbline. Then said the LORD, Behold, I will set a plumbline in the +midst of my people Israel: I will not again pass by them any more: 7:9 +And the high places of Isaac shall be desolate, and the sanctuaries of +Israel shall be laid waste; and I will rise against the house of +Jeroboam with the sword. + +7:10 Then Amaziah the priest of Bethel sent to Jeroboam king of +Israel, saying, Amos hath conspired against thee in the midst of the +house of Israel: the land is not able to bear all his words. + +7:11 For thus Amos saith, Jeroboam shall die by the sword, and Israel +shall surely be led away captive out of their own land. + +7:12 Also Amaziah said unto Amos, O thou seer, go, flee thee away into +the land of Judah, and there eat bread, and prophesy there: 7:13 But +prophesy not again any more at Bethel: for it is the king's chapel, +and it is the king's court. + +7:14 Then answered Amos, and said to Amaziah, I was no prophet, +neither was I a prophet's son; but I was an herdman, and a gatherer of +sycomore fruit: 7:15 And the LORD took me as I followed the flock, and +the LORD said unto me, Go, prophesy unto my people Israel. + +7:16 Now therefore hear thou the word of the LORD: Thou sayest, +Prophesy not against Israel, and drop not thy word against the house +of Isaac. + +7:17 Therefore thus saith the LORD; Thy wife shall be an harlot in the +city, and thy sons and thy daughters shall fall by the sword, and thy +land shall be divided by line; and thou shalt die in a polluted land: +and Israel shall surely go into captivity forth of his land. + +8:1 Thus hath the Lord GOD shewed unto me: and behold a basket of +summer fruit. + +8:2 And he said, Amos, what seest thou? And I said, A basket of summer +fruit. Then said the LORD unto me, The end is come upon my people of +Israel; I will not again pass by them any more. + +8:3 And the songs of the temple shall be howlings in that day, saith +the Lord GOD: there shall be many dead bodies in every place; they +shall cast them forth with silence. + +8:4 Hear this, O ye that swallow up the needy, even to make the poor +of the land to fail, 8:5 Saying, When will the new moon be gone, that +we may sell corn? and the sabbath, that we may set forth wheat, making +the ephah small, and the shekel great, and falsifying the balances by +deceit? 8:6 That we may buy the poor for silver, and the needy for a +pair of shoes; yea, and sell the refuse of the wheat? 8:7 The LORD +hath sworn by the excellency of Jacob, Surely I will never forget any +of their works. + +8:8 Shall not the land tremble for this, and every one mourn that +dwelleth therein? and it shall rise up wholly as a flood; and it shall +be cast out and drowned, as by the flood of Egypt. + +8:9 And it shall come to pass in that day, saith the Lord GOD, that I +will cause the sun to go down at noon, and I will darken the earth in +the clear day: 8:10 And I will turn your feasts into mourning, and all +your songs into lamentation; and I will bring up sackcloth upon all +loins, and baldness upon every head; and I will make it as the +mourning of an only son, and the end thereof as a bitter day. + +8:11 Behold, the days come, saith the Lord GOD, that I will send a +famine in the land, not a famine of bread, nor a thirst for water, but +of hearing the words of the LORD: 8:12 And they shall wander from sea +to sea, and from the north even to the east, they shall run to and fro +to seek the word of the LORD, and shall not find it. + +8:13 In that day shall the fair virgins and young men faint for +thirst. + +8:14 They that swear by the sin of Samaria, and say, Thy god, O Dan, +liveth; and, The manner of Beersheba liveth; even they shall fall, and +never rise up again. + +9:1 I saw the LORD standing upon the altar: and he said, Smite the +lintel of the door, that the posts may shake: and cut them in the +head, all of them; and I will slay the last of them with the sword: he +that fleeth of them shall not flee away, and he that escapeth of them +shall not be delivered. + +9:2 Though they dig into hell, thence shall mine hand take them; +though they climb up to heaven, thence will I bring them down: 9:3 And +though they hide themselves in the top of Carmel, I will search and +take them out thence; and though they be hid from my sight in the +bottom of the sea, thence will I command the serpent, and he shall +bite them: 9:4 And though they go into captivity before their enemies, +thence will I command the sword, and it shall slay them: and I will +set mine eyes upon them for evil, and not for good. + +9:5 And the Lord GOD of hosts is he that toucheth the land, and it +shall melt, and all that dwell therein shall mourn: and it shall rise +up wholly like a flood; and shall be drowned, as by the flood of +Egypt. + +9:6 It is he that buildeth his stories in the heaven, and hath founded +his troop in the earth; he that calleth for the waters of the sea, and +poureth them out upon the face of the earth: The LORD is his name. + +9:7 Are ye not as children of the Ethiopians unto me, O children of +Israel? saith the LORD. Have not I brought up Israel out of the land +of Egypt? and the Philistines from Caphtor, and the Syrians from Kir? +9:8 Behold, the eyes of the Lord GOD are upon the sinful kingdom, and +I will destroy it from off the face of the earth; saving that I will +not utterly destroy the house of Jacob, saith the LORD. + +9:9 For, lo, I will command, and I will sift the house of Israel among +all nations, like as corn is sifted in a sieve, yet shall not the +least grain fall upon the earth. + +9:10 All the sinners of my people shall die by the sword, which say, +The evil shall not overtake nor prevent us. + +9:11 In that day will I raise up the tabernacle of David that is +fallen, and close up the breaches thereof; and I will raise up his +ruins, and I will build it as in the days of old: 9:12 That they may +possess the remnant of Edom, and of all the heathen, which are called +by my name, saith the LORD that doeth this. + +9:13 Behold, the days come, saith the LORD, that the plowman shall +overtake the reaper, and the treader of grapes him that soweth seed; +and the mountains shall drop sweet wine, and all the hills shall melt. + +9:14 And I will bring again the captivity of my people of Israel, and +they shall build the waste cities, and inhabit them; and they shall +plant vineyards, and drink the wine thereof; they shall also make +gardens, and eat the fruit of them. + +9:15 And I will plant them upon their land, and they shall no more be +pulled up out of their land which I have given them, saith the LORD +thy God. + + + + +Obadiah + + +1:1 The vision of Obadiah. Thus saith the Lord GOD concerning Edom; +We have heard a rumour from the LORD, and an ambassador is sent among +the heathen, Arise ye, and let us rise up against her in battle. + +1:2 Behold, I have made thee small among the heathen: thou art greatly +despised. + +1:3 The pride of thine heart hath deceived thee, thou that dwellest in +the clefts of the rock, whose habitation is high; that saith in his +heart, Who shall bring me down to the ground? 1:4 Though thou exalt +thyself as the eagle, and though thou set thy nest among the stars, +thence will I bring thee down, saith the LORD. + +1:5 If thieves came to thee, if robbers by night, (how art thou cut +off!) would they not have stolen till they had enough? if the +grapegatherers came to thee, would they not leave some grapes? 1:6 +How are the things of Esau searched out! how are his hidden things +sought up! 1:7 All the men of thy confederacy have brought thee even +to the border: the men that were at peace with thee have deceived +thee, and prevailed against thee; that they eat thy bread have laid a +wound under thee: there is none understanding in him. + +1:8 Shall I not in that day, saith the LORD, even destroy the wise men +out of Edom, and understanding out of the mount of Esau? 1:9 And thy +mighty men, O Teman, shall be dismayed, to the end that every one of +the mount of Esau may be cut off by slaughter. + +1:10 For thy violence against thy brother Jacob shame shall cover +thee, and thou shalt be cut off for ever. + +1:11 In the day that thou stoodest on the other side, in the day that +the strangers carried away captive his forces, and foreigners entered +into his gates, and cast lots upon Jerusalem, even thou wast as one of +them. + +1:12 But thou shouldest not have looked on the day of thy brother in +the day that he became a stranger; neither shouldest thou have +rejoiced over the children of Judah in the day of their destruction; +neither shouldest thou have spoken proudly in the day of distress. + +1:13 Thou shouldest not have entered into the gate of my people in the +day of their calamity; yea, thou shouldest not have looked on their +affliction in the day of their calamity, nor have laid hands on their +substance in the day of their calamity; 1:14 Neither shouldest thou +have stood in the crossway, to cut off those of his that did escape; +neither shouldest thou have delivered up those of his that did remain +in the day of distress. + +1:15 For the day of the LORD is near upon all the heathen: as thou +hast done, it shall be done unto thee: thy reward shall return upon +thine own head. + +1:16 For as ye have drunk upon my holy mountain, so shall all the +heathen drink continually, yea, they shall drink, and they shall +swallow down, and they shall be as though they had not been. + +1:17 But upon mount Zion shall be deliverance, and there shall be +holiness; and the house of Jacob shall possess their possessions. + +1:18 And the house of Jacob shall be a fire, and the house of Joseph a +flame, and the house of Esau for stubble, and they shall kindle in +them, and devour them; and there shall not be any remaining of the +house of Esau; for the LORD hath spoken it. + +1:19 And they of the south shall possess the mount of Esau; and they +of the plain the Philistines: and they shall possess the fields of +Ephraim, and the fields of Samaria: and Benjamin shall possess Gilead. + +1:20 And the captivity of this host of the children of Israel shall +possess that of the Canaanites, even unto Zarephath; and the captivity +of Jerusalem, which is in Sepharad, shall possess the cities of the +south. + +1:21 And saviours shall come up on mount Zion to judge the mount of +Esau; and the kingdom shall be the LORD's. + + + + +Jonah + + +1:1 Now the word of the LORD came unto Jonah the son of Amittai, +saying, 1:2 Arise, go to Nineveh, that great city, and cry against it; +for their wickedness is come up before me. + +1:3 But Jonah rose up to flee unto Tarshish from the presence of the +LORD, and went down to Joppa; and he found a ship going to Tarshish: +so he paid the fare thereof, and went down into it, to go with them +unto Tarshish from the presence of the LORD. + +1:4 But the LORD sent out a great wind into the sea, and there was a +mighty tempest in the sea, so that the ship was like to be broken. + +1:5 Then the mariners were afraid, and cried every man unto his god, +and cast forth the wares that were in the ship into the sea, to +lighten it of them. But Jonah was gone down into the sides of the +ship; and he lay, and was fast asleep. + +1:6 So the shipmaster came to him, and said unto him, What meanest +thou, O sleeper? arise, call upon thy God, if so be that God will +think upon us, that we perish not. + +1:7 And they said every one to his fellow, Come, and let us cast lots, +that we may know for whose cause this evil is upon us. So they cast +lots, and the lot fell upon Jonah. + +1:8 Then said they unto him, Tell us, we pray thee, for whose cause +this evil is upon us; What is thine occupation? and whence comest +thou? what is thy country? and of what people art thou? 1:9 And he +said unto them, I am an Hebrew; and I fear the LORD, the God of +heaven, which hath made the sea and the dry land. + +1:10 Then were the men exceedingly afraid, and said unto him. Why hast +thou done this? For the men knew that he fled from the presence of the +LORD, because he had told them. + +1:11 Then said they unto him, What shall we do unto thee, that the sea +may be calm unto us? for the sea wrought, and was tempestuous. + +1:12 And he said unto them, Take me up, and cast me forth into the +sea; so shall the sea be calm unto you: for I know that for my sake +this great tempest is upon you. + +1:13 Nevertheless the men rowed hard to bring it to the land; but they +could not: for the sea wrought, and was tempestuous against them. + +1:14 Wherefore they cried unto the LORD, and said, We beseech thee, O +LORD, we beseech thee, let us not perish for this man's life, and lay +not upon us innocent blood: for thou, O LORD, hast done as it pleased +thee. + +1:15 So they look up Jonah, and cast him forth into the sea: and the +sea ceased from her raging. + +1:16 Then the men feared the LORD exceedingly, and offered a sacrifice +unto the LORD, and made vows. + +1:17 Now the LORD had prepared a great fish to swallow up Jonah. And +Jonah was in the belly of the fish three days and three nights. + +2:1 Then Jonah prayed unto the LORD his God out of the fish's belly, +2:2 And said, I cried by reason of mine affliction unto the LORD, and +he heard me; out of the belly of hell cried I, and thou heardest my +voice. + +2:3 For thou hadst cast me into the deep, in the midst of the seas; +and the floods compassed me about: all thy billows and thy waves +passed over me. + +2:4 Then I said, I am cast out of thy sight; yet I will look again +toward thy holy temple. + +2:5 The waters compassed me about, even to the soul: the depth closed +me round about, the weeds were wrapped about my head. + +2:6 I went down to the bottoms of the mountains; the earth with her +bars was about me for ever: yet hast thou brought up my life from +corruption, O LORD my God. + +2:7 When my soul fainted within me I remembered the LORD: and my +prayer came in unto thee, into thine holy temple. + +2:8 They that observe lying vanities forsake their own mercy. + +2:9 But I will sacrifice unto thee with the voice of thanksgiving; I +will pay that that I have vowed. Salvation is of the LORD. + +2:10 And the LORD spake unto the fish, and it vomited out Jonah upon +the dry land. + +3:1 And the word of the LORD came unto Jonah the second time, saying, +3:2 Arise, go unto Nineveh, that great city, and preach unto it the +preaching that I bid thee. + +3:3 So Jonah arose, and went unto Nineveh, according to the word of +the LORD. Now Nineveh was an exceeding great city of three days' +journey. + +3:4 And Jonah began to enter into the city a day's journey, and he +cried, and said, Yet forty days, and Nineveh shall be overthrown. + +3:5 So the people of Nineveh believed God, and proclaimed a fast, and +put on sackcloth, from the greatest of them even to the least of them. + +3:6 For word came unto the king of Nineveh, and he arose from his +throne, and he laid his robe from him, and covered him with sackcloth, +and sat in ashes. + +3:7 And he caused it to be proclaimed and published through Nineveh by +the decree of the king and his nobles, saying, Let neither man nor +beast, herd nor flock, taste any thing: let them not feed, nor drink +water: 3:8 But let man and beast be covered with sackcloth, and cry +mightily unto God: yea, let them turn every one from his evil way, and +from the violence that is in their hands. + +3:9 Who can tell if God will turn and repent, and turn away from his +fierce anger, that we perish not? 3:10 And God saw their works, that +they turned from their evil way; and God repented of the evil, that he +had said that he would do unto them; and he did it not. + +4:1 But it displeased Jonah exceedingly, and he was very angry. + +4:2 And he prayed unto the LORD, and said, I pray thee, O LORD, was +not this my saying, when I was yet in my country? Therefore I fled +before unto Tarshish: for I knew that thou art a gracious God, and +merciful, slow to anger, and of great kindness, and repentest thee of +the evil. + +4:3 Therefore now, O LORD, take, I beseech thee, my life from me; for +it is better for me to die than to live. + +4:4 Then said the LORD, Doest thou well to be angry? 4:5 So Jonah +went out of the city, and sat on the east side of the city, and there +made him a booth, and sat under it in the shadow, till he might see +what would become of the city. + +4:6 And the LORD God prepared a gourd, and made it to come up over +Jonah, that it might be a shadow over his head, to deliver him from +his grief. So Jonah was exceeding glad of the gourd. + +4:7 But God prepared a worm when the morning rose the next day, and it +smote the gourd that it withered. + +4:8 And it came to pass, when the sun did arise, that God prepared a +vehement east wind; and the sun beat upon the head of Jonah, that he +fainted, and wished in himself to die, and said, It is better for me +to die than to live. + +4:9 And God said to Jonah, Doest thou well to be angry for the gourd? +And he said, I do well to be angry, even unto death. + +4:10 Then said the LORD, Thou hast had pity on the gourd, for the +which thou hast not laboured, neither madest it grow; which came up in +a night, and perished in a night: 4:11 And should not I spare Nineveh, +that great city, wherein are more then sixscore thousand persons that +cannot discern between their right hand and their left hand; and also +much cattle? + + + + +Micah + + +1:1 The word of the LORD that came to Micah the Morasthite in the +days of Jotham, Ahaz, and Hezekiah, kings of Judah, which he saw +concerning Samaria and Jerusalem. + +1:2 Hear, all ye people; hearken, O earth, and all that therein is: +and let the Lord GOD be witness against you, the LORD from his holy +temple. + +1:3 For, behold, the LORD cometh forth out of his place, and will come +down, and tread upon the high places of the earth. + +1:4 And the mountains shall be molten under him, and the valleys shall +be cleft, as wax before the fire, and as the waters that are poured +down a steep place. + +1:5 For the transgression of Jacob is all this, and for the sins of +the house of Israel. What is the transgression of Jacob? is it not +Samaria? and what are the high places of Judah? are they not +Jerusalem? 1:6 Therefore I will make Samaria as an heap of the field, +and as plantings of a vineyard: and I will pour down the stones +thereof into the valley, and I will discover the foundations thereof. + +1:7 And all the graven images thereof shall be beaten to pieces, and +all the hires thereof shall be burned with the fire, and all the idols +thereof will I lay desolate: for she gathered it of the hire of an +harlot, and they shall return to the hire of an harlot. + +1:8 Therefore I will wail and howl, I will go stripped and naked: I +will make a wailing like the dragons, and mourning as the owls. + +1:9 For her wound is incurable; for it is come unto Judah; he is come +unto the gate of my people, even to Jerusalem. + +1:10 Declare ye it not at Gath, weep ye not at all: in the house of +Aphrah roll thyself in the dust. + +1:11 Pass ye away, thou inhabitant of Saphir, having thy shame naked: +the inhabitant of Zaanan came not forth in the mourning of Bethezel; +he shall receive of you his standing. + +1:12 For the inhabitant of Maroth waited carefully for good: but evil +came down from the LORD unto the gate of Jerusalem. + +1:13 O thou inhabitant of Lachish, bind the chariot to the swift +beast: she is the beginning of the sin to the daughter of Zion: for +the transgressions of Israel were found in thee. + +1:14 Therefore shalt thou give presents to Moreshethgath: the houses +of Achzib shall be a lie to the kings of Israel. + +1:15 Yet will I bring an heir unto thee, O inhabitant of Mareshah: he +shall come unto Adullam the glory of Israel. + +1:16 Make thee bald, and poll thee for thy delicate children; enlarge +thy baldness as the eagle; for they are gone into captivity from thee. + +2:1 Woe to them that devise iniquity, and work evil upon their beds! +when the morning is light, they practise it, because it is in the +power of their hand. + +2:2 And they covet fields, and take them by violence; and houses, and +take them away: so they oppress a man and his house, even a man and +his heritage. + +2:3 Therefore thus saith the LORD; Behold, against this family do I +devise an evil, from which ye shall not remove your necks; neither +shall ye go haughtily: for this time is evil. + +2:4 In that day shall one take up a parable against you, and lament +with a doleful lamentation, and say, We be utterly spoiled: he hath +changed the portion of my people: how hath he removed it from me! +turning away he hath divided our fields. + +2:5 Therefore thou shalt have none that shall cast a cord by lot in +the congregation of the LORD. + +2:6 Prophesy ye not, say they to them that prophesy: they shall not +prophesy to them, that they shall not take shame. + +2:7 O thou that art named the house of Jacob, is the spirit of the +LORD straitened? are these his doings? do not my words do good to him +that walketh uprightly? 2:8 Even of late my people is risen up as an +enemy: ye pull off the robe with the garment from them that pass by +securely as men averse from war. + +2:9 The women of my people have ye cast out from their pleasant +houses; from their children have ye taken away my glory for ever. + +2:10 Arise ye, and depart; for this is not your rest: because it is +polluted, it shall destroy you, even with a sore destruction. + +2:11 If a man walking in the spirit and falsehood do lie, saying, I +will prophesy unto thee of wine and of strong drink; he shall even be +the prophet of this people. + +2:12 I will surely assemble, O Jacob, all of thee; I will surely +gather the remnant of Israel; I will put them together as the sheep of +Bozrah, as the flock in the midst of their fold: they shall make great +noise by reason of the multitude of men. + +2:13 The breaker is come up before them: they have broken up, and have +passed through the gate, and are gone out by it: and their king shall +pass before them, and the LORD on the head of them. + +3:1 And I said, Hear, I pray you, O heads of Jacob, and ye princes of +the house of Israel; Is it not for you to know judgment? 3:2 Who hate +the good, and love the evil; who pluck off their skin from off them, +and their flesh from off their bones; 3:3 Who also eat the flesh of my +people, and flay their skin from off them; and they break their bones, +and chop them in pieces, as for the pot, and as flesh within the +caldron. + +3:4 Then shall they cry unto the LORD, but he will not hear them: he +will even hide his face from them at that time, as they have behaved +themselves ill in their doings. + +3:5 Thus saith the LORD concerning the prophets that make my people +err, that bite with their teeth, and cry, Peace; and he that putteth +not into their mouths, they even prepare war against him. + +3:6 Therefore night shall be unto you, that ye shall not have a +vision; and it shall be dark unto you, that ye shall not divine; and +the sun shall go down over the prophets, and the day shall be dark +over them. + +3:7 Then shall the seers be ashamed, and the diviners confounded: yea, +they shall all cover their lips; for there is no answer of God. + +3:8 But truly I am full of power by the spirit of the LORD, and of +judgment, and of might, to declare unto Jacob his transgression, and +to Israel his sin. + +3:9 Hear this, I pray you, ye heads of the house of Jacob, and princes +of the house of Israel, that abhor judgment, and pervert all equity. + +3:10 They build up Zion with blood, and Jerusalem with iniquity. + +3:11 The heads thereof judge for reward, and the priests thereof teach +for hire, and the prophets thereof divine for money: yet will they +lean upon the LORD, and say, Is not the LORD among us? none evil can +come upon us. + +3:12 Therefore shall Zion for your sake be plowed as a field, and +Jerusalem shall become heaps, and the mountain of the house as the +high places of the forest. + +4:1 But in the last days it shall come to pass, that the mountain of +the house of the LORD shall be established in the top of the +mountains, and it shall be exalted above the hills; and people shall +flow unto it. + +4:2 And many nations shall come, and say, Come, and let us go up to +the mountain of the LORD, and to the house of the God of Jacob; and he +will teach us of his ways, and we will walk in his paths: for the law +shall go forth of Zion, and the word of the LORD from Jerusalem. + +4:3 And he shall judge among many people, and rebuke strong nations +afar off; and they shall beat their swords into plowshares, and their +spears into pruninghooks: nation shall not lift up a sword against +nation, neither shall they learn war any more. + +4:4 But they shall sit every man under his vine and under his fig +tree; and none shall make them afraid: for the mouth of the LORD of +hosts hath spoken it. + +4:5 For all people will walk every one in the name of his god, and we +will walk in the name of the LORD our God for ever and ever. + +4:6 In that day, saith the LORD, will I assemble her that halteth, and +I will gather her that is driven out, and her that I have afflicted; +4:7 And I will make her that halted a remnant, and her that was cast +far off a strong nation: and the LORD shall reign over them in mount +Zion from henceforth, even for ever. + +4:8 And thou, O tower of the flock, the strong hold of the daughter of +Zion, unto thee shall it come, even the first dominion; the kingdom +shall come to the daughter of Jerusalem. + +4:9 Now why dost thou cry out aloud? is there no king in thee? is thy +counsellor perished? for pangs have taken thee as a woman in travail. + +4:10 Be in pain, and labour to bring forth, O daughter of Zion, like a +woman in travail: for now shalt thou go forth out of the city, and +thou shalt dwell in the field, and thou shalt go even to Babylon; +there shalt thou be delivered; there the LORD shall redeem thee from +the hand of thine enemies. + +4:11 Now also many nations are gathered against thee, that say, Let +her be defiled, and let our eye look upon Zion. + +4:12 But they know not the thoughts of the LORD, neither understand +they his counsel: for he shall gather them as the sheaves into the +floor. + +4:13 Arise and thresh, O daughter of Zion: for I will make thine horn +iron, and I will make thy hoofs brass: and thou shalt beat in pieces +many people: and I will consecrate their gain unto the LORD, and their +substance unto the Lord of the whole earth. + +5:1 Now gather thyself in troops, O daughter of troops: he hath laid +siege against us: they shall smite the judge of Israel with a rod upon +the cheek. + +5:2 But thou, Bethlehem Ephratah, though thou be little among the +thousands of Judah, yet out of thee shall he come forth unto me that +is to be ruler in Israel; whose goings forth have been from of old, +from everlasting. + +5:3 Therefore will he give them up, until the time that she which +travaileth hath brought forth: then the remnant of his brethren shall +return unto the children of Israel. + +5:4 And he shall stand and feed in the strength of the LORD, in the +majesty of the name of the LORD his God; and they shall abide: for now +shall he be great unto the ends of the earth. + +5:5 And this man shall be the peace, when the Assyrian shall come into +our land: and when he shall tread in our palaces, then shall we raise +against him seven shepherds, and eight principal men. + +5:6 And they shall waste the land of Assyria with the sword, and the +land of Nimrod in the entrances thereof: thus shall he deliver us from +the Assyrian, when he cometh into our land, and when he treadeth +within our borders. + +5:7 And the remnant of Jacob shall be in the midst of many people as a +dew from the LORD, as the showers upon the grass, that tarrieth not +for man, nor waiteth for the sons of men. + +5:8 And the remnant of Jacob shall be among the Gentiles in the midst +of many people as a lion among the beasts of the forest, as a young +lion among the flocks of sheep: who, if he go through, both treadeth +down, and teareth in pieces, and none can deliver. + +5:9 Thine hand shall be lifted up upon thine adversaries, and all +thine enemies shall be cut off. + +5:10 And it shall come to pass in that day, saith the LORD, that I +will cut off thy horses out of the midst of thee, and I will destroy +thy chariots: 5:11 And I will cut off the cities of thy land, and +throw down all thy strong holds: 5:12 And I will cut off witchcrafts +out of thine hand; and thou shalt have no more soothsayers: 5:13 Thy +graven images also will I cut off, and thy standing images out of the +midst of thee; and thou shalt no more worship the work of thine hands. + +5:14 And I will pluck up thy groves out of the midst of thee: so will +I destroy thy cities. + +5:15 And I will execute vengeance in anger and fury upon the heathen, +such as they have not heard. + +6:1 Hear ye now what the LORD saith; Arise, contend thou before the +mountains, and let the hills hear thy voice. + +6:2 Hear ye, O mountains, the LORD's controversy, and ye strong +foundations of the earth: for the LORD hath a controversy with his +people, and he will plead with Israel. + +6:3 O my people, what have I done unto thee? and wherein have I +wearied thee? testify against me. + +6:4 For I brought thee up out of the land of Egypt, and redeemed thee +out of the house of servants; and I sent before thee Moses, Aaron, and +Miriam. + +6:5 O my people, remember now what Balak king of Moab consulted, and +what Balaam the son of Beor answered him from Shittim unto Gilgal; +that ye may know the righteousness of the LORD. + +6:6 Wherewith shall I come before the LORD, and bow myself before the +high God? shall I come before him with burnt offerings, with calves of +a year old? 6:7 Will the LORD be pleased with thousands of rams, or +with ten thousands of rivers of oil? shall I give my firstborn for my +transgression, the fruit of my body for the sin of my soul? 6:8 He +hath shewed thee, O man, what is good; and what doth the LORD require +of thee, but to do justly, and to love mercy, and to walk humbly with +thy God? 6:9 The LORD's voice crieth unto the city, and the man of +wisdom shall see thy name: hear ye the rod, and who hath appointed it. + +6:10 Are there yet the treasures of wickedness in the house of the +wicked, and the scant measure that is abominable? 6:11 Shall I count +them pure with the wicked balances, and with the bag of deceitful +weights? 6:12 For the rich men thereof are full of violence, and the +inhabitants thereof have spoken lies, and their tongue is deceitful in +their mouth. + +6:13 Therefore also will I make thee sick in smiting thee, in making +thee desolate because of thy sins. + +6:14 Thou shalt eat, but not be satisfied; and thy casting down shall +be in the midst of thee; and thou shalt take hold, but shalt not +deliver; and that which thou deliverest will I give up to the sword. + +6:15 Thou shalt sow, but thou shalt not reap; thou shalt tread the +olives, but thou shalt not anoint thee with oil; and sweet wine, but +shalt not drink wine. + +6:16 For the statutes of Omri are kept, and all the works of the house +of Ahab, and ye walk in their counsels; that I should make thee a +desolation, and the inhabitants thereof an hissing: therefore ye shall +bear the reproach of my people. + +7:1 Woe is me! for I am as when they have gathered the summer fruits, +as the grapegleanings of the vintage: there is no cluster to eat: my +soul desired the firstripe fruit. + +7:2 The good man is perished out of the earth: and there is none +upright among men: they all lie in wait for blood; they hunt every man +his brother with a net. + +7:3 That they may do evil with both hands earnestly, the prince +asketh, and the judge asketh for a reward; and the great man, he +uttereth his mischievous desire: so they wrap it up. + +7:4 The best of them is as a brier: the most upright is sharper than a +thorn hedge: the day of thy watchmen and thy visitation cometh; now +shall be their perplexity. + +7:5 Trust ye not in a friend, put ye not confidence in a guide: keep +the doors of thy mouth from her that lieth in thy bosom. + +7:6 For the son dishonoureth the father, the daughter riseth up +against her mother, the daughter in law against her mother in law; a +man's enemies are the men of his own house. + +7:7 Therefore I will look unto the LORD; I will wait for the God of my +salvation: my God will hear me. + +7:8 Rejoice not against me, O mine enemy: when I fall, I shall arise; +when I sit in darkness, the LORD shall be a light unto me. + +7:9 I will bear the indignation of the LORD, because I have sinned +against him, until he plead my cause, and execute judgment for me: he +will bring me forth to the light, and I shall behold his +righteousness. + +7:10 Then she that is mine enemy shall see it, and shame shall cover +her which said unto me, Where is the LORD thy God? mine eyes shall +behold her: now shall she be trodden down as the mire of the streets. + +7:11 In the day that thy walls are to be built, in that day shall the +decree be far removed. + +7:12 In that day also he shall come even to thee from Assyria, and +from the fortified cities, and from the fortress even to the river, +and from sea to sea, and from mountain to mountain. + +7:13 Notwithstanding the land shall be desolate because of them that +dwell therein, for the fruit of their doings. + +7:14 Feed thy people with thy rod, the flock of thine heritage, which +dwell solitarily in the wood, in the midst of Carmel: let them feed in +Bashan and Gilead, as in the days of old. + +7:15 According to the days of thy coming out of the land of Egypt will +I shew unto him marvellous things. + +7:16 The nations shall see and be confounded at all their might: they +shall lay their hand upon their mouth, their ears shall be deaf. + +7:17 They shall lick the dust like a serpent, they shall move out of +their holes like worms of the earth: they shall be afraid of the LORD +our God, and shall fear because of thee. + +7:18 Who is a God like unto thee, that pardoneth iniquity, and passeth +by the transgression of the remnant of his heritage? he retaineth not +his anger for ever, because he delighteth in mercy. + +7:19 He will turn again, he will have compassion upon us; he will +subdue our iniquities; and thou wilt cast all their sins into the +depths of the sea. + +7:20 Thou wilt perform the truth to Jacob, and the mercy to Abraham, +which thou hast sworn unto our fathers from the days of old. + + + + +Nahum + + +1:1 The burden of Nineveh. The book of the vision of Nahum the Elkoshite. + +1:2 God is jealous, and the LORD revengeth; the LORD revengeth, and is +furious; the LORD will take vengeance on his adversaries, and he +reserveth wrath for his enemies. + +1:3 The LORD is slow to anger, and great in power, and will not at all +acquit the wicked: the LORD hath his way in the whirlwind and in the +storm, and the clouds are the dust of his feet. + +1:4 He rebuketh the sea, and maketh it dry, and drieth up all the +rivers: Bashan languisheth, and Carmel, and the flower of Lebanon +languisheth. + +1:5 The mountains quake at him, and the hills melt, and the earth is +burned at his presence, yea, the world, and all that dwell therein. + +1:6 Who can stand before his indignation? and who can abide in the +fierceness of his anger? his fury is poured out like fire, and the +rocks are thrown down by him. + +1:7 The LORD is good, a strong hold in the day of trouble; and he +knoweth them that trust in him. + +1:8 But with an overrunning flood he will make an utter end of the +place thereof, and darkness shall pursue his enemies. + +1:9 What do ye imagine against the LORD? he will make an utter end: +affliction shall not rise up the second time. + +1:10 For while they be folden together as thorns, and while they are +drunken as drunkards, they shall be devoured as stubble fully dry. + +1:11 There is one come out of thee, that imagineth evil against the +LORD, a wicked counsellor. + +1:12 Thus saith the LORD; Though they be quiet, and likewise many, yet +thus shall they be cut down, when he shall pass through. Though I have +afflicted thee, I will afflict thee no more. + +1:13 For now will I break his yoke from off thee, and will burst thy +bonds in sunder. + +1:14 And the LORD hath given a commandment concerning thee, that no +more of thy name be sown: out of the house of thy gods will I cut off +the graven image and the molten image: I will make thy grave; for thou +art vile. + +1:15 Behold upon the mountains the feet of him that bringeth good +tidings, that publisheth peace! O Judah, keep thy solemn feasts, +perform thy vows: for the wicked shall no more pass through thee; he +is utterly cut off. + +2:1 He that dasheth in pieces is come up before thy face: keep the +munition, watch the way, make thy loins strong, fortify thy power +mightily. + +2:2 For the LORD hath turned away the excellency of Jacob, as the +excellency of Israel: for the emptiers have emptied them out, and +marred their vine branches. + +2:3 The shield of his mighty men is made red, the valiant men are in +scarlet: the chariots shall be with flaming torches in the day of his +preparation, and the fir trees shall be terribly shaken. + +2:4 The chariots shall rage in the streets, they shall justle one +against another in the broad ways: they shall seem like torches, they +shall run like the lightnings. + +2:5 He shall recount his worthies: they shall stumble in their walk; +they shall make haste to the wall thereof, and the defence shall be +prepared. + +2:6 The gates of the rivers shall be opened, and the palace shall be +dissolved. + +2:7 And Huzzab shall be led away captive, she shall be brought up, and +her maids shall lead her as with the voice of doves, tabering upon +their breasts. + +2:8 But Nineveh is of old like a pool of water: yet they shall flee +away. + +Stand, stand, shall they cry; but none shall look back. + +2:9 Take ye the spoil of silver, take the spoil of gold: for there is +none end of the store and glory out of all the pleasant furniture. + +2:10 She is empty, and void, and waste: and the heart melteth, and the +knees smite together, and much pain is in all loins, and the faces of +them all gather blackness. + +2:11 Where is the dwelling of the lions, and the feedingplace of the +young lions, where the lion, even the old lion, walked, and the lion's +whelp, and none made them afraid? 2:12 The lion did tear in pieces +enough for his whelps, and strangled for his lionesses, and filled his +holes with prey, and his dens with ravin. + +2:13 Behold, I am against thee, saith the LORD of hosts, and I will +burn her chariots in the smoke, and the sword shall devour thy young +lions: and I will cut off thy prey from the earth, and the voice of +thy messengers shall no more be heard. + +3:1 Woe to the bloody city! it is all full of lies and robbery; the +prey departeth not; 3:2 The noise of a whip, and the noise of the +rattling of the wheels, and of the pransing horses, and of the jumping +chariots. + +3:3 The horseman lifteth up both the bright sword and the glittering +spear: and there is a multitude of slain, and a great number of +carcases; and there is none end of their corpses; they stumble upon +their corpses: 3:4 Because of the multitude of the whoredoms of the +wellfavoured harlot, the mistress of witchcrafts, that selleth nations +through her whoredoms, and families through her witchcrafts. + +3:5 Behold, I am against thee, saith the LORD of hosts; and I will +discover thy skirts upon thy face, and I will shew the nations thy +nakedness, and the kingdoms thy shame. + +3:6 And I will cast abominable filth upon thee, and make thee vile, +and will set thee as a gazingstock. + +3:7 And it shall come to pass, that all they that look upon thee shall +flee from thee, and say, Nineveh is laid waste: who will bemoan her? +whence shall I seek comforters for thee? 3:8 Art thou better than +populous No, that was situate among the rivers, that had the waters +round about it, whose rampart was the sea, and her wall was from the +sea? 3:9 Ethiopia and Egypt were her strength, and it was infinite; +Put and Lubim were thy helpers. + +3:10 Yet was she carried away, she went into captivity: her young +children also were dashed in pieces at the top of all the streets: and +they cast lots for her honourable men, and all her great men were +bound in chains. + +3:11 Thou also shalt be drunken: thou shalt be hid, thou also shalt +seek strength because of the enemy. + +3:12 All thy strong holds shall be like fig trees with the firstripe +figs: if they be shaken, they shall even fall into the mouth of the +eater. + +3:13 Behold, thy people in the midst of thee are women: the gates of +thy land shall be set wide open unto thine enemies: the fire shall +devour thy bars. + +3:14 Draw thee waters for the siege, fortify thy strong holds: go into +clay, and tread the morter, make strong the brickkiln. + +3:15 There shall the fire devour thee; the sword shall cut thee off, +it shall eat thee up like the cankerworm: make thyself many as the +cankerworm, make thyself many as the locusts. + +3:16 Thou hast multiplied thy merchants above the stars of heaven: the +cankerworm spoileth, and fleeth away. + +3:17 Thy crowned are as the locusts, and thy captains as the great +grasshoppers, which camp in the hedges in the cold day, but when the +sun ariseth they flee away, and their place is not known where they +are. + +3:18 Thy shepherds slumber, O king of Assyria: thy nobles shall dwell +in the dust: thy people is scattered upon the mountains, and no man +gathereth them. + +3:19 There is no healing of thy bruise; thy wound is grievous: all +that hear the bruit of thee shall clap the hands over thee: for upon +whom hath not thy wickedness passed continually? + + + + +Habakkuk + + +1:1 The burden which Habakkuk the prophet did see. + +1:2 O LORD, how long shall I cry, and thou wilt not hear! even cry out +unto thee of violence, and thou wilt not save! 1:3 Why dost thou shew +me iniquity, and cause me to behold grievance? for spoiling and +violence are before me: and there are that raise up strife and +contention. + +1:4 Therefore the law is slacked, and judgment doth never go forth: +for the wicked doth compass about the righteous; therefore wrong +judgment proceedeth. + +1:5 Behold ye among the heathen, and regard, and wonder marvelously: +for I will work a work in your days which ye will not believe, though +it be told you. + +1:6 For, lo, I raise up the Chaldeans, that bitter and hasty nation, +which shall march through the breadth of the land, to possess the +dwellingplaces that are not their's. + +1:7 They are terrible and dreadful: their judgment and their dignity +shall proceed of themselves. + +1:8 Their horses also are swifter than the leopards, and are more +fierce than the evening wolves: and their horsemen shall spread +themselves, and their horsemen shall come from far; they shall fly as +the eagle that hasteth to eat. + +1:9 They shall come all for violence: their faces shall sup up as the +east wind, and they shall gather the captivity as the sand. + +1:10 And they shall scoff at the kings, and the princes shall be a +scorn unto them: they shall deride every strong hold; for they shall +heap dust, and take it. + +1:11 Then shall his mind change, and he shall pass over, and offend, +imputing this his power unto his god. + +1:12 Art thou not from everlasting, O LORD my God, mine Holy One? we +shall not die. O LORD, thou hast ordained them for judgment; and, O +mighty God, thou hast established them for correction. + +1:13 Thou art of purer eyes than to behold evil, and canst not look on +iniquity: wherefore lookest thou upon them that deal treacherously, +and holdest thy tongue when the wicked devoureth the man that is more +righteous than he? 1:14 And makest men as the fishes of the sea, as +the creeping things, that have no ruler over them? 1:15 They take up +all of them with the angle, they catch them in their net, and gather +them in their drag: therefore they rejoice and are glad. + +1:16 Therefore they sacrifice unto their net, and burn incense unto +their drag; because by them their portion is fat, and their meat +plenteous. + +1:17 Shall they therefore empty their net, and not spare continually +to slay the nations? 2:1 I will stand upon my watch, and set me upon +the tower, and will watch to see what he will say unto me, and what I +shall answer when I am reproved. + +2:2 And the LORD answered me, and said, Write the vision, and make it +plain upon tables, that he may run that readeth it. + +2:3 For the vision is yet for an appointed time, but at the end it +shall speak, and not lie: though it tarry, wait for it; because it +will surely come, it will not tarry. + +2:4 Behold, his soul which is lifted up is not upright in him: but the +just shall live by his faith. + +2:5 Yea also, because he transgresseth by wine, he is a proud man, +neither keepeth at home, who enlargeth his desire as hell, and is as +death, and cannot be satisfied, but gathereth unto him all nations, +and heapeth unto him all people: 2:6 Shall not all these take up a +parable against him, and a taunting proverb against him, and say, Woe +to him that increaseth that which is not his! how long? and to him +that ladeth himself with thick clay! 2:7 Shall they not rise up +suddenly that shall bite thee, and awake that shall vex thee, and thou +shalt be for booties unto them? 2:8 Because thou hast spoiled many +nations, all the remnant of the people shall spoil thee; because of +men's blood, and for the violence of the land, of the city, and of all +that dwell therein. + +2:9 Woe to him that coveteth an evil covetousness to his house, that +he may set his nest on high, that he may be delivered from the power +of evil! 2:10 Thou hast consulted shame to thy house by cutting off +many people, and hast sinned against thy soul. + +2:11 For the stone shall cry out of the wall, and the beam out of the +timber shall answer it. + +2:12 Woe to him that buildeth a town with blood, and stablisheth a +city by iniquity! 2:13 Behold, is it not of the LORD of hosts that +the people shall labour in the very fire, and the people shall weary +themselves for very vanity? 2:14 For the earth shall be filled with +the knowledge of the glory of the LORD, as the waters cover the sea. + +2:15 Woe unto him that giveth his neighbour drink, that puttest thy +bottle to him, and makest him drunken also, that thou mayest look on +their nakedness! 2:16 Thou art filled with shame for glory: drink +thou also, and let thy foreskin be uncovered: the cup of the LORD's +right hand shall be turned unto thee, and shameful spewing shall be on +thy glory. + +2:17 For the violence of Lebanon shall cover thee, and the spoil of +beasts, which made them afraid, because of men's blood, and for the +violence of the land, of the city, and of all that dwell therein. + +2:18 What profiteth the graven image that the maker thereof hath +graven it; the molten image, and a teacher of lies, that the maker of +his work trusteth therein, to make dumb idols? 2:19 Woe unto him that +saith to the wood, Awake; to the dumb stone, Arise, it shall teach! +Behold, it is laid over with gold and silver, and there is no breath +at all in the midst of it. + +2:20 But the LORD is in his holy temple: let all the earth keep +silence before him. + +3:1 A prayer of Habakkuk the prophet upon Shigionoth. + +3:2 O LORD, I have heard thy speech, and was afraid: O LORD, revive +thy work in the midst of the years, in the midst of the years make +known; in wrath remember mercy. + +3:3 God came from Teman, and the Holy One from mount Paran. Selah. His +glory covered the heavens, and the earth was full of his praise. + +3:4 And his brightness was as the light; he had horns coming out of +his hand: and there was the hiding of his power. + +3:5 Before him went the pestilence, and burning coals went forth at +his feet. + +3:6 He stood, and measured the earth: he beheld, and drove asunder the +nations; and the everlasting mountains were scattered, the perpetual +hills did bow: his ways are everlasting. + +3:7 I saw the tents of Cushan in affliction: and the curtains of the +land of Midian did tremble. + +3:8 Was the LORD displeased against the rivers? was thine anger +against the rivers? was thy wrath against the sea, that thou didst +ride upon thine horses and thy chariots of salvation? 3:9 Thy bow was +made quite naked, according to the oaths of the tribes, even thy word. +Selah. Thou didst cleave the earth with rivers. + +3:10 The mountains saw thee, and they trembled: the overflowing of the +water passed by: the deep uttered his voice, and lifted up his hands +on high. + +3:11 The sun and moon stood still in their habitation: at the light of +thine arrows they went, and at the shining of thy glittering spear. + +3:12 Thou didst march through the land in indignation, thou didst +thresh the heathen in anger. + +3:13 Thou wentest forth for the salvation of thy people, even for +salvation with thine anointed; thou woundedst the head out of the +house of the wicked, by discovering the foundation unto the neck. +Selah. + +3:14 Thou didst strike through with his staves the head of his +villages: they came out as a whirlwind to scatter me: their rejoicing +was as to devour the poor secretly. + +3:15 Thou didst walk through the sea with thine horses, through the +heap of great waters. + +3:16 When I heard, my belly trembled; my lips quivered at the voice: +rottenness entered into my bones, and I trembled in myself, that I +might rest in the day of trouble: when he cometh up unto the people, +he will invade them with his troops. + +3:17 Although the fig tree shall not blossom, neither shall fruit be +in the vines; the labour of the olive shall fail, and the fields shall +yield no meat; the flock shall be cut off from the fold, and there +shall be no herd in the stalls: 3:18 Yet I will rejoice in the LORD, I +will joy in the God of my salvation. + +3:19 The LORD God is my strength, and he will make my feet like hinds' +feet, and he will make me to walk upon mine high places. To the chief +singer on my stringed instruments. + + + + +Zephaniah + + +1:1 The word of the LORD which came unto Zephaniah the son of Cushi, +the son of Gedaliah, the son of Amariah, the son of Hizkiah, in the +days of Josiah the son of Amon, king of Judah. + +1:2 I will utterly consume all things from off the land, saith the +LORD. + +1:3 I will consume man and beast; I will consume the fowls of the +heaven, and the fishes of the sea, and the stumbling blocks with the +wicked: and I will cut off man from off the land, saith the LORD. + +1:4 I will also stretch out mine hand upon Judah, and upon all the +inhabitants of Jerusalem; and I will cut off the remnant of Baal from +this place, and the name of the Chemarims with the priests; 1:5 And +them that worship the host of heaven upon the housetops; and them that +worship and that swear by the LORD, and that swear by Malcham; 1:6 And +them that are turned back from the LORD; and those that have not +sought the LORD, nor enquired for him. + +1:7 Hold thy peace at the presence of the Lord GOD: for the day of the +LORD is at hand: for the LORD hath prepared a sacrifice, he hath bid +his guests. + +1:8 And it shall come to pass in the day of the LORD's sacrifice, that +I will punish the princes, and the king's children, and all such as +are clothed with strange apparel. + +1:9 In the same day also will I punish all those that leap on the +threshold, which fill their masters' houses with violence and deceit. + +1:10 And it shall come to pass in that day, saith the LORD, that there +shall be the noise of a cry from the fish gate, and an howling from +the second, and a great crashing from the hills. + +1:11 Howl, ye inhabitants of Maktesh, for all the merchant people are +cut down; all they that bear silver are cut off. + +1:12 And it shall come to pass at that time, that I will search +Jerusalem with candles, and punish the men that are settled on their +lees: that say in their heart, The LORD will not do good, neither will +he do evil. + +1:13 Therefore their goods shall become a booty, and their houses a +desolation: they shall also build houses, but not inhabit them; and +they shall plant vineyards, but not drink the wine thereof. + +1:14 The great day of the LORD is near, it is near, and hasteth +greatly, even the voice of the day of the LORD: the mighty man shall +cry there bitterly. + +1:15 That day is a day of wrath, a day of trouble and distress, a day +of wasteness and desolation, a day of darkness and gloominess, a day +of clouds and thick darkness, 1:16 A day of the trumpet and alarm +against the fenced cities, and against the high towers. + +1:17 And I will bring distress upon men, that they shall walk like +blind men, because they have sinned against the LORD: and their blood +shall be poured out as dust, and their flesh as the dung. + +1:18 Neither their silver nor their gold shall be able to deliver them +in the day of the LORD's wrath; but the whole land shall be devoured +by the fire of his jealousy: for he shall make even a speedy riddance +of all them that dwell in the land. + +2:1 Gather yourselves together, yea, gather together, O nation not +desired; 2:2 Before the decree bring forth, before the day pass as the +chaff, before the fierce anger of the LORD come upon you, before the +day of the LORD's anger come upon you. + +2:3 Seek ye the LORD, all ye meek of the earth, which have wrought his +judgment; seek righteousness, seek meekness: it may be ye shall be hid +in the day of the LORD's anger. + +2:4 For Gaza shall be forsaken, and Ashkelon a desolation: they shall +drive out Ashdod at the noon day, and Ekron shall be rooted up. + +2:5 Woe unto the inhabitants of the sea coast, the nation of the +Cherethites! the word of the LORD is against you; O Canaan, the land +of the Philistines, I will even destroy thee, that there shall be no +inhabitant. + +2:6 And the sea coast shall be dwellings and cottages for shepherds, +and folds for flocks. + +2:7 And the coast shall be for the remnant of the house of Judah; they +shall feed thereupon: in the houses of Ashkelon shall they lie down in +the evening: for the LORD their God shall visit them, and turn away +their captivity. + +2:8 I have heard the reproach of Moab, and the revilings of the +children of Ammon, whereby they have reproached my people, and +magnified themselves against their border. + +2:9 Therefore as I live, saith the LORD of hosts, the God of Israel, +Surely Moab shall be as Sodom, and the children of Ammon as Gomorrah, +even the breeding of nettles, and saltpits, and a perpetual +desolation: the residue of my people shall spoil them, and the remnant +of my people shall possess them. + +2:10 This shall they have for their pride, because they have +reproached and magnified themselves against the people of the LORD of +hosts. + +2:11 The LORD will be terrible unto them: for he will famish all the +gods of the earth; and men shall worship him, every one from his +place, even all the isles of the heathen. + +2:12 Ye Ethiopians also, ye shall be slain by my sword. + +2:13 And he will stretch out his hand against the north, and destroy +Assyria; and will make Nineveh a desolation, and dry like a +wilderness. + +2:14 And flocks shall lie down in the midst of her, all the beasts of +the nations: both the cormorant and the bittern shall lodge in the +upper lintels of it; their voice shall sing in the windows; desolation +shall be in the thresholds; for he shall uncover the cedar work. + +2:15 This is the rejoicing city that dwelt carelessly, that said in +her heart, I am, and there is none beside me: how is she become a +desolation, a place for beasts to lie down in! every one that passeth +by her shall hiss, and wag his hand. + +3:1 Woe to her that is filthy and polluted, to the oppressing city! +3:2 She obeyed not the voice; she received not correction; she trusted +not in the LORD; she drew not near to her God. + +3:3 Her princes within her are roaring lions; her judges are evening +wolves; they gnaw not the bones till the morrow. + +3:4 Her prophets are light and treacherous persons: her priests have +polluted the sanctuary, they have done violence to the law. + +3:5 The just LORD is in the midst thereof; he will not do iniquity: +every morning doth he bring his judgment to light, he faileth not; but +the unjust knoweth no shame. + +3:6 I have cut off the nations: their towers are desolate; I made +their streets waste, that none passeth by: their cities are destroyed, +so that there is no man, that there is none inhabitant. + +3:7 I said, Surely thou wilt fear me, thou wilt receive instruction; +so their dwelling should not be cut off, howsoever I punished them: +but they rose early, and corrupted all their doings. + +3:8 Therefore wait ye upon me, saith the LORD, until the day that I +rise up to the prey: for my determination is to gather the nations, +that I may assemble the kingdoms, to pour upon them mine indignation, +even all my fierce anger: for all the earth shall be devoured with the +fire of my jealousy. + +3:9 For then will I turn to the people a pure language, that they may +all call upon the name of the LORD, to serve him with one consent. + +3:10 From beyond the rivers of Ethiopia my suppliants, even the +daughter of my dispersed, shall bring mine offering. + +3:11 In that day shalt thou not be ashamed for all thy doings, wherein +thou hast transgressed against me: for then I will take away out of +the midst of thee them that rejoice in thy pride, and thou shalt no +more be haughty because of my holy mountain. + +3:12 I will also leave in the midst of thee an afflicted and poor +people, and they shall trust in the name of the LORD. + +3:13 The remnant of Israel shall not do iniquity, nor speak lies; +neither shall a deceitful tongue be found in their mouth: for they +shall feed and lie down, and none shall make them afraid. + +3:14 Sing, O daughter of Zion; shout, O Israel; be glad and rejoice +with all the heart, O daughter of Jerusalem. + +3:15 The LORD hath taken away thy judgments, he hath cast out thine +enemy: the king of Israel, even the LORD, is in the midst of thee: +thou shalt not see evil any more. + +3:16 In that day it shall be said to Jerusalem, Fear thou not: and to +Zion, Let not thine hands be slack. + +3:17 The LORD thy God in the midst of thee is mighty; he will save, he +will rejoice over thee with joy; he will rest in his love, he will joy +over thee with singing. + +3:18 I will gather them that are sorrowful for the solemn assembly, +who are of thee, to whom the reproach of it was a burden. + +3:19 Behold, at that time I will undo all that afflict thee: and I +will save her that halteth, and gather her that was driven out; and I +will get them praise and fame in every land where they have been put +to shame. + +3:20 At that time will I bring you again, even in the time that I +gather you: for I will make you a name and a praise among all people +of the earth, when I turn back your captivity before your eyes, +saith the LORD. + + + + +Haggai + + +1:1 In the second year of Darius the king, in the sixth month, in the +first day of the month, came the word of the LORD by Haggai the +prophet unto Zerubbabel the son of Shealtiel, governor of Judah, and +to Joshua the son of Josedech, the high priest, saying, 1:2 Thus +speaketh the LORD of hosts, saying, This people say, The time is not +come, the time that the LORD's house should be built. + +1:3 Then came the word of the LORD by Haggai the prophet, saying, 1:4 +Is it time for you, O ye, to dwell in your cieled houses, and this +house lie waste? 1:5 Now therefore thus saith the LORD of hosts; +Consider your ways. + +1:6 Ye have sown much, and bring in little; ye eat, but ye have not +enough; ye drink, but ye are not filled with drink; ye clothe you, but +there is none warm; and he that earneth wages earneth wages to put it +into a bag with holes. + +1:7 Thus saith the LORD of hosts; Consider your ways. + +1:8 Go up to the mountain, and bring wood, and build the house; and I +will take pleasure in it, and I will be glorified, saith the LORD. + +1:9 Ye looked for much, and, lo it came to little; and when ye brought +it home, I did blow upon it. Why? saith the LORD of hosts. Because of +mine house that is waste, and ye run every man unto his own house. + +1:10 Therefore the heaven over you is stayed from dew, and the earth +is stayed from her fruit. + +1:11 And I called for a drought upon the land, and upon the mountains, +and upon the corn, and upon the new wine, and upon the oil, and upon +that which the ground bringeth forth, and upon men, and upon cattle, +and upon all the labour of the hands. + +1:12 Then Zerubbabel the son of Shealtiel, and Joshua the son of +Josedech, the high priest, with all the remnant of the people, obeyed +the voice of the LORD their God, and the words of Haggai the prophet, +as the LORD their God had sent him, and the people did fear before the +LORD. + +1:13 Then spake Haggai the LORD's messenger in the LORD's message unto +the people, saying, I am with you, saith the LORD. + +1:14 And the LORD stirred up the spirit of Zerubbabel the son of +Shealtiel, governor of Judah, and the spirit of Joshua the son of +Josedech, the high priest, and the spirit of all the remnant of the +people; and they came and did work in the house of the LORD of hosts, +their God, 1:15 In the four and twentieth day of the sixth month, in +the second year of Darius the king. + +2:1 In the seventh month, in the one and twentieth day of the month, +came the word of the LORD by the prophet Haggai, saying, 2:2 Speak now +to Zerubbabel the son of Shealtiel, governor of Judah, and to Joshua +the son of Josedech, the high priest, and to the residue of the +people, saying, 2:3 Who is left among you that saw this house in her +first glory? and how do ye see it now? is it not in your eyes in +comparison of it as nothing? 2:4 Yet now be strong, O Zerubbabel, +saith the LORD; and be strong, O Joshua, son of Josedech, the high +priest; and be strong, all ye people of the land, saith the LORD, and +work: for I am with you, saith the LORD of hosts: 2:5 According to the +word that I covenanted with you when ye came out of Egypt, so my +spirit remaineth among you: fear ye not. + +2:6 For thus saith the LORD of hosts; Yet once, it is a little while, +and I will shake the heavens, and the earth, and the sea, and the dry +land; 2:7 And I will shake all nations, and the desire of all nations +shall come: and I will fill this house with glory, saith the LORD of +hosts. + +2:8 The silver is mine, and the gold is mine, saith the LORD of hosts. + +2:9 The glory of this latter house shall be greater than of the +former, saith the LORD of hosts: and in this place will I give peace, +saith the LORD of hosts. + +2:10 In the four and twentieth day of the ninth month, in the second +year of Darius, came the word of the LORD by Haggai the prophet, +saying, 2:11 Thus saith the LORD of hosts; Ask now the priests +concerning the law, saying, 2:12 If one bear holy flesh in the skirt +of his garment, and with his skirt do touch bread, or pottage, or +wine, or oil, or any meat, shall it be holy? And the priests answered +and said, No. + +2:13 Then said Haggai, If one that is unclean by a dead body touch any +of these, shall it be unclean? And the priests answered and said, It +shall be unclean. + +2:14 Then answered Haggai, and said, So is this people, and so is this +nation before me, saith the LORD; and so is every work of their hands; +and that which they offer there is unclean. + +2:15 And now, I pray you, consider from this day and upward, from +before a stone was laid upon a stone in the temple of the LORD: 2:16 +Since those days were, when one came to an heap of twenty measures, +there were but ten: when one came to the pressfat for to draw out +fifty vessels out of the press, there were but twenty. + +2:17 I smote you with blasting and with mildew and with hail in all +the labours of your hands; yet ye turned not to me, saith the LORD. + +2:18 Consider now from this day and upward, from the four and +twentieth day of the ninth month, even from the day that the +foundation of the LORD's temple was laid, consider it. + +2:19 Is the seed yet in the barn? yea, as yet the vine, and the fig +tree, and the pomegranate, and the olive tree, hath not brought forth: +from this day will I bless you. + +2:20 And again the word of the LORD came unto Haggai in the four and +twentieth day of the month, saying, 2:21 Speak to Zerubbabel, governor +of Judah, saying, I will shake the heavens and the earth; 2:22 And I +will overthrow the throne of kingdoms, and I will destroy the strength +of the kingdoms of the heathen; and I will overthrow the chariots, and +those that ride in them; and the horses and their riders shall come +down, every one by the sword of his brother. + +2:23 In that day, saith the LORD of hosts, will I take thee, O +Zerubbabel, my servant, the son of Shealtiel, saith the LORD, and will +make thee as a signet: for I have chosen thee, saith the LORD of hosts. + + + + +Zechariah + + +1:1 In the eighth month, in the second year of Darius, came the word +of the LORD unto Zechariah, the son of Berechiah, the son of Iddo the +prophet, saying, 1:2 The LORD hath been sore displeased with your +fathers. + +1:3 Therefore say thou unto them, Thus saith the LORD of hosts; Turn +ye unto me, saith the LORD of hosts, and I will turn unto you, saith +the LORD of hosts. + +1:4 Be ye not as your fathers, unto whom the former prophets have +cried, saying, Thus saith the LORD of hosts; Turn ye now from your +evil ways, and from your evil doings: but they did not hear, nor +hearken unto me, saith the LORD. + +1:5 Your fathers, where are they? and the prophets, do they live for +ever? 1:6 But my words and my statutes, which I commanded my servants +the prophets, did they not take hold of your fathers? and they +returned and said, Like as the LORD of hosts thought to do unto us, +according to our ways, and according to our doings, so hath he dealt +with us. + +1:7 Upon the four and twentieth day of the eleventh month, which is +the month Sebat, in the second year of Darius, came the word of the +LORD unto Zechariah, the son of Berechiah, the son of Iddo the +prophet, saying, 1:8 I saw by night, and behold a man riding upon a +red horse, and he stood among the myrtle trees that were in the +bottom; and behind him were there red horses, speckled, and white. + +1:9 Then said I, O my lord, what are these? And the angel that talked +with me said unto me, I will shew thee what these be. + +1:10 And the man that stood among the myrtle trees answered and said, +These are they whom the LORD hath sent to walk to and fro through the +earth. + +1:11 And they answered the angel of the LORD that stood among the +myrtle trees, and said, We have walked to and fro through the earth, +and, behold, all the earth sitteth still, and is at rest. + +1:12 Then the angel of the LORD answered and said, O LORD of hosts, +how long wilt thou not have mercy on Jerusalem and on the cities of +Judah, against which thou hast had indignation these threescore and +ten years? 1:13 And the LORD answered the angel that talked with me +with good words and comfortable words. + +1:14 So the angel that communed with me said unto me, Cry thou, +saying, Thus saith the LORD of hosts; I am jealous for Jerusalem and +for Zion with a great jealousy. + +1:15 And I am very sore displeased with the heathen that are at ease: +for I was but a little displeased, and they helped forward the +affliction. + +1:16 Therefore thus saith the LORD; I am returned to Jerusalem with +mercies: my house shall be built in it, saith the LORD of hosts, and a +line shall be stretched forth upon Jerusalem. + +1:17 Cry yet, saying, Thus saith the LORD of hosts; My cities through +prosperity shall yet be spread abroad; and the LORD shall yet comfort +Zion, and shall yet choose Jerusalem. + +1:18 Then lifted I up mine eyes, and saw, and behold four horns. + +1:19 And I said unto the angel that talked with me, What be these? And +he answered me, These are the horns which have scattered Judah, +Israel, and Jerusalem. + +1:20 And the LORD shewed me four carpenters. + +1:21 Then said I, What come these to do? And he spake, saying, These +are the horns which have scattered Judah, so that no man did lift up +his head: but these are come to fray them, to cast out the horns of +the Gentiles, which lifted up their horn over the land of Judah to +scatter it. + +2:1 I lifted up mine eyes again, and looked, and behold a man with a +measuring line in his hand. + +2:2 Then said I, Whither goest thou? And he said unto me, To measure +Jerusalem, to see what is the breadth thereof, and what is the length +thereof. + +2:3 And, behold, the angel that talked with me went forth, and another +angel went out to meet him, 2:4 And said unto him, Run, speak to this +young man, saying, Jerusalem shall be inhabited as towns without walls +for the multitude of men and cattle therein: 2:5 For I, saith the +LORD, will be unto her a wall of fire round about, and will be the +glory in the midst of her. + +2:6 Ho, ho, come forth, and flee from the land of the north, saith the +LORD: for I have spread you abroad as the four winds of the heaven, +saith the LORD. + +2:7 Deliver thyself, O Zion, that dwellest with the daughter of +Babylon. + +2:8 For thus saith the LORD of hosts; After the glory hath he sent me +unto the nations which spoiled you: for he that toucheth you toucheth +the apple of his eye. + +2:9 For, behold, I will shake mine hand upon them, and they shall be a +spoil to their servants: and ye shall know that the LORD of hosts hath +sent me. + +2:10 Sing and rejoice, O daughter of Zion: for, lo, I come, and I will +dwell in the midst of thee, saith the LORD. + +2:11 And many nations shall be joined to the LORD in that day, and +shall be my people: and I will dwell in the midst of thee, and thou +shalt know that the LORD of hosts hath sent me unto thee. + +2:12 And the LORD shall inherit Judah his portion in the holy land, +and shall choose Jerusalem again. + +2:13 Be silent, O all flesh, before the LORD: for he is raised up out +of his holy habitation. + +3:1 And he shewed me Joshua the high priest standing before the angel +of the LORD, and Satan standing at his right hand to resist him. + +3:2 And the LORD said unto Satan, The LORD rebuke thee, O Satan; even +the LORD that hath chosen Jerusalem rebuke thee: is not this a brand +plucked out of the fire? 3:3 Now Joshua was clothed with filthy +garments, and stood before the angel. + +3:4 And he answered and spake unto those that stood before him, +saying, Take away the filthy garments from him. And unto him he said, +Behold, I have caused thine iniquity to pass from thee, and I will +clothe thee with change of raiment. + +3:5 And I said, Let them set a fair mitre upon his head. So they set a +fair mitre upon his head, and clothed him with garments. And the angel +of the LORD stood by. + +3:6 And the angel of the LORD protested unto Joshua, saying, 3:7 Thus +saith the LORD of hosts; If thou wilt walk in my ways, and if thou +wilt keep my charge, then thou shalt also judge my house, and shalt +also keep my courts, and I will give thee places to walk among these +that stand by. + +3:8 Hear now, O Joshua the high priest, thou, and thy fellows that sit +before thee: for they are men wondered at: for, behold, I will bring +forth my servant the BRANCH. + +3:9 For behold the stone that I have laid before Joshua; upon one +stone shall be seven eyes: behold, I will engrave the graving thereof, +saith the LORD of hosts, and I will remove the iniquity of that land +in one day. + +3:10 In that day, saith the LORD of hosts, shall ye call every man his +neighbour under the vine and under the fig tree. + +4:1 And the angel that talked with me came again, and waked me, as a +man that is wakened out of his sleep. + +4:2 And said unto me, What seest thou? And I said, I have looked, and +behold a candlestick all of gold, with a bowl upon the top of it, and +his seven lamps thereon, and seven pipes to the seven lamps, which are +upon the top thereof: 4:3 And two olive trees by it, one upon the +right side of the bowl, and the other upon the left side thereof. + +4:4 So I answered and spake to the angel that talked with me, saying, +What are these, my lord? 4:5 Then the angel that talked with me +answered and said unto me, Knowest thou not what these be? And I said, +No, my lord. + +4:6 Then he answered and spake unto me, saying, This is the word of +the LORD unto Zerubbabel, saying, Not by might, nor by power, but by +my spirit, saith the LORD of hosts. + +4:7 Who art thou, O great mountain? before Zerubbabel thou shalt +become a plain: and he shall bring forth the headstone thereof with +shoutings, crying, Grace, grace unto it. + +4:8 Moreover the word of the LORD came unto me, saying, 4:9 The hands +of Zerubbabel have laid the foundation of this house; his hands shall +also finish it; and thou shalt know that the LORD of hosts hath sent +me unto you. + +4:10 For who hath despised the day of small things? for they shall +rejoice, and shall see the plummet in the hand of Zerubbabel with +those seven; they are the eyes of the LORD, which run to and fro +through the whole earth. + +4:11 Then answered I, and said unto him, What are these two olive +trees upon the right side of the candlestick and upon the left side +thereof? 4:12 And I answered again, and said unto him, What be these +two olive branches which through the two golden pipes empty the golden +oil out of themselves? 4:13 And he answered me and said, Knowest thou +not what these be? And I said, No, my lord. + +4:14 Then said he, These are the two anointed ones, that stand by the +LORD of the whole earth. + +5:1 Then I turned, and lifted up mine eyes, and looked, and behold a +flying roll. + +5:2 And he said unto me, What seest thou? And I answered, I see a +flying roll; the length thereof is twenty cubits, and the breadth +thereof ten cubits. + +5:3 Then said he unto me, This is the curse that goeth forth over the +face of the whole earth: for every one that stealeth shall be cut off +as on this side according to it; and every one that sweareth shall be +cut off as on that side according to it. + +5:4 I will bring it forth, saith the LORD of hosts, and it shall enter +into the house of the thief, and into the house of him that sweareth +falsely by my name: and it shall remain in the midst of his house, and +shall consume it with the timber thereof and the stones thereof. + +5:5 Then the angel that talked with me went forth, and said unto me, +Lift up now thine eyes, and see what is this that goeth forth. + +5:6 And I said, What is it? And he said, This is an ephah that goeth +forth. He said moreover, This is their resemblance through all the +earth. + +5:7 And, behold, there was lifted up a talent of lead: and this is a +woman that sitteth in the midst of the ephah. + +5:8 And he said, This is wickedness. And he cast it into the midst of +the ephah; and he cast the weight of lead upon the mouth thereof. + +5:9 Then lifted I up mine eyes, and looked, and, behold, there came +out two women, and the wind was in their wings; for they had wings +like the wings of a stork: and they lifted up the ephah between the +earth and the heaven. + +5:10 Then said I to the angel that talked with me, Whither do these +bear the ephah? 5:11 And he said unto me, To build it an house in the +land of Shinar: and it shall be established, and set there upon her +own base. + +6:1 And I turned, and lifted up mine eyes, and looked, and, behold, +there came four chariots out from between two mountains; and the +mountains were mountains of brass. + +6:2 In the first chariot were red horses; and in the second chariot +black horses; 6:3 And in the third chariot white horses; and in the +fourth chariot grisled and bay horses. + +6:4 Then I answered and said unto the angel that talked with me, What +are these, my lord? 6:5 And the angel answered and said unto me, +These are the four spirits of the heavens, which go forth from +standing before the LORD of all the earth. + +6:6 The black horses which are therein go forth into the north +country; and the white go forth after them; and the grisled go forth +toward the south country. + +6:7 And the bay went forth, and sought to go that they might walk to +and fro through the earth: and he said, Get you hence, walk to and fro +through the earth. So they walked to and fro through the earth. + +6:8 Then cried he upon me, and spake unto me, saying, Behold, these +that go toward the north country have quieted my spirit in the north +country. + +6:9 And the word of the LORD came unto me, saying, 6:10 Take of them +of the captivity, even of Heldai, of Tobijah, and of Jedaiah, which +are come from Babylon, and come thou the same day, and go into the +house of Josiah the son of Zephaniah; 6:11 Then take silver and gold, +and make crowns, and set them upon the head of Joshua the son of +Josedech, the high priest; 6:12 And speak unto him, saying, Thus +speaketh the LORD of hosts, saying, Behold the man whose name is The +BRANCH; and he shall grow up out of his place, and he shall build the +temple of the LORD: 6:13 Even he shall build the temple of the LORD; +and he shall bear the glory, and shall sit and rule upon his throne; +and he shall be a priest upon his throne: and the counsel of peace +shall be between them both. + +6:14 And the crowns shall be to Helem, and to Tobijah, and to Jedaiah, +and to Hen the son of Zephaniah, for a memorial in the temple of the +LORD. + +6:15 And they that are far off shall come and build in the temple of +the LORD, and ye shall know that the LORD of hosts hath sent me unto +you. And this shall come to pass, if ye will diligently obey the voice +of the LORD your God. + +7:1 And it came to pass in the fourth year of king Darius, that the +word of the LORD came unto Zechariah in the fourth day of the ninth +month, even in Chisleu; 7:2 When they had sent unto the house of God +Sherezer and Regemmelech, and their men, to pray before the LORD, 7:3 +And to speak unto the priests which were in the house of the LORD of +hosts, and to the prophets, saying, Should I weep in the fifth month, +separating myself, as I have done these so many years? 7:4 Then came +the word of the LORD of hosts unto me, saying, 7:5 Speak unto all the +people of the land, and to the priests, saying, When ye fasted and +mourned in the fifth and seventh month, even those seventy years, did +ye at all fast unto me, even to me? 7:6 And when ye did eat, and when +ye did drink, did not ye eat for yourselves, and drink for yourselves? +7:7 Should ye not hear the words which the LORD hath cried by the +former prophets, when Jerusalem was inhabited and in prosperity, and +the cities thereof round about her, when men inhabited the south and +the plain? 7:8 And the word of the LORD came unto Zechariah, saying, +7:9 Thus speaketh the LORD of hosts, saying, Execute true judgment, +and shew mercy and compassions every man to his brother: 7:10 And +oppress not the widow, nor the fatherless, the stranger, nor the poor; +and let none of you imagine evil against his brother in your heart. + +7:11 But they refused to hearken, and pulled away the shoulder, and +stopped their ears, that they should not hear. + +7:12 Yea, they made their hearts as an adamant stone, lest they should +hear the law, and the words which the LORD of hosts hath sent in his +spirit by the former prophets: therefore came a great wrath from the +LORD of hosts. + +7:13 Therefore it is come to pass, that as he cried, and they would +not hear; so they cried, and I would not hear, saith the LORD of +hosts: 7:14 But I scattered them with a whirlwind among all the +nations whom they knew not. Thus the land was desolate after them, +that no man passed through nor returned: for they laid the pleasant +land desolate. + +8:1 Again the word of the LORD of hosts came to me, saying, 8:2 Thus +saith the LORD of hosts; I was jealous for Zion with great jealousy, +and I was jealous for her with great fury. + +8:3 Thus saith the LORD; I am returned unto Zion, and will dwell in +the midst of Jerusalem: and Jerusalem shall be called a city of truth; +and the mountain of the LORD of hosts the holy mountain. + +8:4 Thus saith the LORD of hosts; There shall yet old men and old +women dwell in the streets of Jerusalem, and every man with his staff +in his hand for very age. + +8:5 And the streets of the city shall be full of boys and girls +playing in the streets thereof. + +8:6 Thus saith the LORD of hosts; If it be marvellous in the eyes of +the remnant of this people in these days, should it also be marvellous +in mine eyes? saith the LORD of hosts. + +8:7 Thus saith the LORD of hosts; Behold, I will save my people from +the east country, and from the west country; 8:8 And I will bring +them, and they shall dwell in the midst of Jerusalem: and they shall +be my people, and I will be their God, in truth and in righteousness. + +8:9 Thus saith the LORD of hosts; Let your hands be strong, ye that +hear in these days these words by the mouth of the prophets, which +were in the day that the foundation of the house of the LORD of hosts +was laid, that the temple might be built. + +8:10 For before these days there was no hire for man, nor any hire for +beast; neither was there any peace to him that went out or came in +because of the affliction: for I set all men every one against his +neighbour. + +8:11 But now I will not be unto the residue of this people as in the +former days, saith the LORD of hosts. + +8:12 For the seed shall be prosperous; the vine shall give her fruit, +and the ground shall give her increase, and the heavens shall give +their dew; and I will cause the remnant of this people to possess all +these things. + +8:13 And it shall come to pass, that as ye were a curse among the +heathen, O house of Judah, and house of Israel; so will I save you, +and ye shall be a blessing: fear not, but let your hands be strong. + +8:14 For thus saith the LORD of hosts; As I thought to punish you, +when your fathers provoked me to wrath, saith the LORD of hosts, and I +repented not: 8:15 So again have I thought in these days to do well +unto Jerusalem and to the house of Judah: fear ye not. + +8:16 These are the things that ye shall do; Speak ye every man the +truth to his neighbour; execute the judgment of truth and peace in +your gates: 8:17 And let none of you imagine evil in your hearts +against his neighbour; and love no false oath: for all these are +things that I hate, saith the LORD. + +8:18 And the word of the LORD of hosts came unto me, saying, 8:19 Thus +saith the LORD of hosts; The fast of the fourth month, and the fast of +the fifth, and the fast of the seventh, and the fast of the tenth, +shall be to the house of Judah joy and gladness, and cheerful feasts; +therefore love the truth and peace. + +8:20 Thus saith the LORD of hosts; It shall yet come to pass, that +there shall come people, and the inhabitants of many cities: 8:21 And +the inhabitants of one city shall go to another, saying, Let us go +speedily to pray before the LORD, and to seek the LORD of hosts: I +will go also. + +8:22 Yea, many people and strong nations shall come to seek the LORD +of hosts in Jerusalem, and to pray before the LORD. + +8:23 Thus saith the LORD of hosts; In those days it shall come to +pass, that ten men shall take hold out of all languages of the +nations, even shall take hold of the skirt of him that is a Jew, +saying, We will go with you: for we have heard that God is with you. + +9:1 The burden of the word of the LORD in the land of Hadrach, and +Damascus shall be the rest thereof: when the eyes of man, as of all +the tribes of Israel, shall be toward the LORD. + +9:2 And Hamath also shall border thereby; Tyrus, and Zidon, though it +be very wise. + +9:3 And Tyrus did build herself a strong hold, and heaped up silver as +the dust, and fine gold as the mire of the streets. + +9:4 Behold, the LORD will cast her out, and he will smite her power in +the sea; and she shall be devoured with fire. + +9:5 Ashkelon shall see it, and fear; Gaza also shall see it, and be +very sorrowful, and Ekron; for her expectation shall be ashamed; and +the king shall perish from Gaza, and Ashkelon shall not be inhabited. + +9:6 And a bastard shall dwell in Ashdod, and I will cut off the pride +of the Philistines. + +9:7 And I will take away his blood out of his mouth, and his +abominations from between his teeth: but he that remaineth, even he, +shall be for our God, and he shall be as a governor in Judah, and +Ekron as a Jebusite. + +9:8 And I will encamp about mine house because of the army, because of +him that passeth by, and because of him that returneth: and no +oppressor shall pass through them any more: for now have I seen with +mine eyes. + +9:9 Rejoice greatly, O daughter of Zion; shout, O daughter of +Jerusalem: behold, thy King cometh unto thee: he is just, and having +salvation; lowly, and riding upon an ass, and upon a colt the foal of +an ass. + +9:10 And I will cut off the chariot from Ephraim, and the horse from +Jerusalem, and the battle bow shall be cut off: and he shall speak +peace unto the heathen: and his dominion shall be from sea even to +sea, and from the river even to the ends of the earth. + +9:11 As for thee also, by the blood of thy covenant I have sent forth +thy prisoners out of the pit wherein is no water. + +9:12 Turn you to the strong hold, ye prisoners of hope: even to day do +I declare that I will render double unto thee; 9:13 When I have bent +Judah for me, filled the bow with Ephraim, and raised up thy sons, O +Zion, against thy sons, O Greece, and made thee as the sword of a +mighty man. + +9:14 And the LORD shall be seen over them, and his arrow shall go +forth as the lightning: and the LORD God shall blow the trumpet, and +shall go with whirlwinds of the south. + +9:15 The LORD of hosts shall defend them; and they shall devour, and +subdue with sling stones; and they shall drink, and make a noise as +through wine; and they shall be filled like bowls, and as the corners +of the altar. + +9:16 And the LORD their God shall save them in that day as the flock +of his people: for they shall be as the stones of a crown, lifted up +as an ensign upon his land. + +9:17 For how great is his goodness, and how great is his beauty! corn +shall make the young men cheerful, and new wine the maids. + +10:1 Ask ye of the LORD rain in the time of the latter rain; so the +LORD shall make bright clouds, and give them showers of rain, to every +one grass in the field. + +10:2 For the idols have spoken vanity, and the diviners have seen a +lie, and have told false dreams; they comfort in vain: therefore they +went their way as a flock, they were troubled, because there was no +shepherd. + +10:3 Mine anger was kindled against the shepherds, and I punished the +goats: for the LORD of hosts hath visited his flock the house of +Judah, and hath made them as his goodly horse in the battle. + +10:4 Out of him came forth the corner, out of him the nail, out of him +the battle bow, out of him every oppressor together. + +10:5 And they shall be as mighty men, which tread down their enemies +in the mire of the streets in the battle: and they shall fight, +because the LORD is with them, and the riders on horses shall be +confounded. + +10:6 And I will strengthen the house of Judah, and I will save the +house of Joseph, and I will bring them again to place them; for I have +mercy upon them: and they shall be as though I had not cast them off: +for I am the LORD their God, and will hear them. + +10:7 And they of Ephraim shall be like a mighty man, and their heart +shall rejoice as through wine: yea, their children shall see it, and +be glad; their heart shall rejoice in the LORD. + +10:8 I will hiss for them, and gather them; for I have redeemed them: +and they shall increase as they have increased. + +10:9 And I will sow them among the people: and they shall remember me +in far countries; and they shall live with their children, and turn +again. + +10:10 I will bring them again also out of the land of Egypt, and +gather them out of Assyria; and I will bring them into the land of +Gilead and Lebanon; and place shall not be found for them. + +10:11 And he shall pass through the sea with affliction, and shall +smite the waves in the sea, and all the deeps of the river shall dry +up: and the pride of Assyria shall be brought down, and the sceptre of +Egypt shall depart away. + +10:12 And I will strengthen them in the LORD; and they shall walk up +and down in his name, saith the LORD. + +11:1 Open thy doors, O Lebanon, that the fire may devour thy cedars. + +11:2 Howl, fir tree; for the cedar is fallen; because the mighty are +spoiled: howl, O ye oaks of Bashan; for the forest of the vintage is +come down. + +11:3 There is a voice of the howling of the shepherds; for their glory +is spoiled: a voice of the roaring of young lions; for the pride of +Jordan is spoiled. + +11:4 Thus saith the LORD my God; Feed the flock of the slaughter; 11:5 +Whose possessors slay them, and hold themselves not guilty: and they +that sell them say, Blessed be the LORD; for I am rich: and their own +shepherds pity them not. + +11:6 For I will no more pity the inhabitants of the land, saith the +LORD: but, lo, I will deliver the men every one into his neighbour's +hand, and into the hand of his king: and they shall smite the land, +and out of their hand I will not deliver them. + +11:7 And I will feed the flock of slaughter, even you, O poor of the +flock. And I took unto me two staves; the one I called Beauty, and the +other I called Bands; and I fed the flock. + +11:8 Three shepherds also I cut off in one month; and my soul lothed +them, and their soul also abhorred me. + +11:9 Then said I, I will not feed you: that that dieth, let it die; +and that that is to be cut off, let it be cut off; and let the rest +eat every one the flesh of another. + +11:10 And I took my staff, even Beauty, and cut it asunder, that I +might break my covenant which I had made with all the people. + +11:11 And it was broken in that day: and so the poor of the flock that +waited upon me knew that it was the word of the LORD. + +11:12 And I said unto them, If ye think good, give me my price; and if +not, forbear. So they weighed for my price thirty pieces of silver. + +11:13 And the LORD said unto me, Cast it unto the potter: a goodly +price that I was prised at of them. And I took the thirty pieces of +silver, and cast them to the potter in the house of the LORD. + +11:14 Then I cut asunder mine other staff, even Bands, that I might +break the brotherhood between Judah and Israel. + +11:15 And the LORD said unto me, Take unto thee yet the instruments of +a foolish shepherd. + +11:16 For, lo, I will raise up a shepherd in the land, which shall not +visit those that be cut off, neither shall seek the young one, nor +heal that that is broken, nor feed that that standeth still: but he +shall eat the flesh of the fat, and tear their claws in pieces. + +11:17 Woe to the idol shepherd that leaveth the flock! the sword shall +be upon his arm, and upon his right eye: his arm shall be clean dried +up, and his right eye shall be utterly darkened. + +12:1 The burden of the word of the LORD for Israel, saith the LORD, +which stretcheth forth the heavens, and layeth the foundation of the +earth, and formeth the spirit of man within him. + +12:2 Behold, I will make Jerusalem a cup of trembling unto all the +people round about, when they shall be in the siege both against Judah +and against Jerusalem. + +12:3 And in that day will I make Jerusalem a burdensome stone for all +people: all that burden themselves with it shall be cut in pieces, +though all the people of the earth be gathered together against it. + +12:4 In that day, saith the LORD, I will smite every horse with +astonishment, and his rider with madness: and I will open mine eyes +upon the house of Judah, and will smite every horse of the people with +blindness. + +12:5 And the governors of Judah shall say in their heart, The +inhabitants of Jerusalem shall be my strength in the LORD of hosts +their God. + +12:6 In that day will I make the governors of Judah like an hearth of +fire among the wood, and like a torch of fire in a sheaf; and they +shall devour all the people round about, on the right hand and on the +left: and Jerusalem shall be inhabited again in her own place, even in +Jerusalem. + +12:7 The LORD also shall save the tents of Judah first, that the glory +of the house of David and the glory of the inhabitants of Jerusalem do +not magnify themselves against Judah. + +12:8 In that day shall the LORD defend the inhabitants of Jerusalem; +and he that is feeble among them at that day shall be as David; and +the house of David shall be as God, as the angel of the LORD before +them. + +12:9 And it shall come to pass in that day, that I will seek to +destroy all the nations that come against Jerusalem. + +12:10 And I will pour upon the house of David, and upon the +inhabitants of Jerusalem, the spirit of grace and of supplications: +and they shall look upon me whom they have pierced, and they shall +mourn for him, as one mourneth for his only son, and shall be in +bitterness for him, as one that is in bitterness for his firstborn. + +12:11 In that day shall there be a great mourning in Jerusalem, as the +mourning of Hadadrimmon in the valley of Megiddon. + +12:12 And the land shall mourn, every family apart; the family of the +house of David apart, and their wives apart; the family of the house +of Nathan apart, and their wives apart; 12:13 The family of the house +of Levi apart, and their wives apart; the family of Shimei apart, and +their wives apart; 12:14 All the families that remain, every family +apart, and their wives apart. + +13:1 In that day there shall be a fountain opened to the house of +David and to the inhabitants of Jerusalem for sin and for uncleanness. + +13:2 And it shall come to pass in that day, saith the LORD of hosts, +that I will cut off the names of the idols out of the land, and they +shall no more be remembered: and also I will cause the prophets and +the unclean spirit to pass out of the land. + +13:3 And it shall come to pass, that when any shall yet prophesy, then +his father and his mother that begat him shall say unto him, Thou +shalt not live; for thou speakest lies in the name of the LORD: and +his father and his mother that begat him shall thrust him through when +he prophesieth. + +13:4 And it shall come to pass in that day, that the prophets shall be +ashamed every one of his vision, when he hath prophesied; neither +shall they wear a rough garment to deceive: 13:5 But he shall say, I +am no prophet, I am an husbandman; for man taught me to keep cattle +from my youth. + +13:6 And one shall say unto him, What are these wounds in thine hands? +Then he shall answer, Those with which I was wounded in the house of +my friends. + +13:7 Awake, O sword, against my shepherd, and against the man that is +my fellow, saith the LORD of hosts: smite the shepherd, and the sheep +shall be scattered: and I will turn mine hand upon the little ones. + +13:8 And it shall come to pass, that in all the land, saith the LORD, +two parts therein shall be cut off and die; but the third shall be +left therein. + +13:9 And I will bring the third part through the fire, and will refine +them as silver is refined, and will try them as gold is tried: they +shall call on my name, and I will hear them: I will say, It is my +people: and they shall say, The LORD is my God. + +14:1 Behold, the day of the LORD cometh, and thy spoil shall be +divided in the midst of thee. + +14:2 For I will gather all nations against Jerusalem to battle; and +the city shall be taken, and the houses rifled, and the women +ravished; and half of the city shall go forth into captivity, and the +residue of the people shall not be cut off from the city. + +14:3 Then shall the LORD go forth, and fight against those nations, as +when he fought in the day of battle. + +14:4 And his feet shall stand in that day upon the mount of Olives, +which is before Jerusalem on the east, and the mount of Olives shall +cleave in the midst thereof toward the east and toward the west, and +there shall be a very great valley; and half of the mountain shall +remove toward the north, and half of it toward the south. + +14:5 And ye shall flee to the valley of the mountains; for the valley +of the mountains shall reach unto Azal: yea, ye shall flee, like as ye +fled from before the earthquake in the days of Uzziah king of Judah: +and the LORD my God shall come, and all the saints with thee. + +14:6 And it shall come to pass in that day, that the light shall not +be clear, nor dark: 14:7 But it shall be one day which shall be known +to the LORD, not day, nor night: but it shall come to pass, that at +evening time it shall be light. + +14:8 And it shall be in that day, that living waters shall go out from +Jerusalem; half of them toward the former sea, and half of them toward +the hinder sea: in summer and in winter shall it be. + +14:9 And the LORD shall be king over all the earth: in that day shall +there be one LORD, and his name one. + +14:10 All the land shall be turned as a plain from Geba to Rimmon +south of Jerusalem: and it shall be lifted up, and inhabited in her +place, from Benjamin's gate unto the place of the first gate, unto the +corner gate, and from the tower of Hananeel unto the king's +winepresses. + +14:11 And men shall dwell in it, and there shall be no more utter +destruction; but Jerusalem shall be safely inhabited. + +14:12 And this shall be the plague wherewith the LORD will smite all +the people that have fought against Jerusalem; Their flesh shall +consume away while they stand upon their feet, and their eyes shall +consume away in their holes, and their tongue shall consume away in +their mouth. + +14:13 And it shall come to pass in that day, that a great tumult from +the LORD shall be among them; and they shall lay hold every one on the +hand of his neighbour, and his hand shall rise up against the hand of +his neighbour. + +14:14 And Judah also shall fight at Jerusalem; and the wealth of all +the heathen round about shall be gathered together, gold, and silver, +and apparel, in great abundance. + +14:15 And so shall be the plague of the horse, of the mule, of the +camel, and of the ass, and of all the beasts that shall be in these +tents, as this plague. + +14:16 And it shall come to pass, that every one that is left of all +the nations which came against Jerusalem shall even go up from year to +year to worship the King, the LORD of hosts, and to keep the feast of +tabernacles. + +14:17 And it shall be, that whoso will not come up of all the families +of the earth unto Jerusalem to worship the King, the LORD of hosts, +even upon them shall be no rain. + +14:18 And if the family of Egypt go not up, and come not, that have no +rain; there shall be the plague, wherewith the LORD will smite the +heathen that come not up to keep the feast of tabernacles. + +14:19 This shall be the punishment of Egypt, and the punishment of all +nations that come not up to keep the feast of tabernacles. + +14:20 In that day shall there be upon the bells of the horses, +HOLINESS UNTO THE LORD; and the pots in the LORD's house shall be like +the bowls before the altar. + +14:21 Yea, every pot in Jerusalem and in Judah shall be holiness unto +the LORD of hosts: and all they that sacrifice shall come and take of +them, and seethe therein: and in that day there shall be no more the +Canaanite in the house of the LORD of hosts. + + + + +Malachi + + +1:1 The burden of the word of the LORD to Israel by Malachi. + +1:2 I have loved you, saith the LORD. Yet ye say, Wherein hast thou +loved us? Was not Esau Jacob's brother? saith the LORD: yet I loved +Jacob, 1:3 And I hated Esau, and laid his mountains and his heritage +waste for the dragons of the wilderness. + +1:4 Whereas Edom saith, We are impoverished, but we will return and +build the desolate places; thus saith the LORD of hosts, They shall +build, but I will throw down; and they shall call them, The border of +wickedness, and, The people against whom the LORD hath indignation for +ever. + +1:5 And your eyes shall see, and ye shall say, The LORD will be +magnified from the border of Israel. + +1:6 A son honoureth his father, and a servant his master: if then I be +a father, where is mine honour? and if I be a master, where is my +fear? saith the LORD of hosts unto you, O priests, that despise my +name. And ye say, Wherein have we despised thy name? 1:7 Ye offer +polluted bread upon mine altar; and ye say, Wherein have we polluted +thee? In that ye say, The table of the LORD is contemptible. + +1:8 And if ye offer the blind for sacrifice, is it not evil? and if ye +offer the lame and sick, is it not evil? offer it now unto thy +governor; will he be pleased with thee, or accept thy person? saith +the LORD of hosts. + +1:9 And now, I pray you, beseech God that he will be gracious unto us: +this hath been by your means: will he regard your persons? saith the +LORD of hosts. + +1:10 Who is there even among you that would shut the doors for nought? +neither do ye kindle fire on mine altar for nought. I have no pleasure +in you, saith the LORD of hosts, neither will I accept an offering at +your hand. + +1:11 For from the rising of the sun even unto the going down of the +same my name shall be great among the Gentiles; and in every place +incense shall be offered unto my name, and a pure offering: for my +name shall be great among the heathen, saith the LORD of hosts. + +1:12 But ye have profaned it, in that ye say, The table of the LORD is +polluted; and the fruit thereof, even his meat, is contemptible. + +1:13 Ye said also, Behold, what a weariness is it! and ye have snuffed +at it, saith the LORD of hosts; and ye brought that which was torn, +and the lame, and the sick; thus ye brought an offering: should I +accept this of your hand? saith the LORD. + +1:14 But cursed be the deceiver, which hath in his flock a male, and +voweth, and sacrificeth unto the LORD a corrupt thing: for I am a +great King, saith the LORD of hosts, and my name is dreadful among the +heathen. + +2:1 And now, O ye priests, this commandment is for you. + +2:2 If ye will not hear, and if ye will not lay it to heart, to give +glory unto my name, saith the LORD of hosts, I will even send a curse +upon you, and I will curse your blessings: yea, I have cursed them +already, because ye do not lay it to heart. + +2:3 Behold, I will corrupt your seed, and spread dung upon your faces, +even the dung of your solemn feasts; and one shall take you away with +it. + +2:4 And ye shall know that I have sent this commandment unto you, that +my covenant might be with Levi, saith the LORD of hosts. + +2:5 My covenant was with him of life and peace; and I gave them to him +for the fear wherewith he feared me, and was afraid before my name. + +2:6 The law of truth was in his mouth, and iniquity was not found in +his lips: he walked with me in peace and equity, and did turn many +away from iniquity. + +2:7 For the priest's lips should keep knowledge, and they should seek +the law at his mouth: for he is the messenger of the LORD of hosts. + +2:8 But ye are departed out of the way; ye have caused many to stumble +at the law; ye have corrupted the covenant of Levi, saith the LORD of +hosts. + +2:9 Therefore have I also made you contemptible and base before all +the people, according as ye have not kept my ways, but have been +partial in the law. + +2:10 Have we not all one father? hath not one God created us? why do +we deal treacherously every man against his brother, by profaning the +covenant of our fathers? 2:11 Judah hath dealt treacherously, and an +abomination is committed in Israel and in Jerusalem; for Judah hath +profaned the holiness of the LORD which he loved, and hath married the +daughter of a strange god. + +2:12 The LORD will cut off the man that doeth this, the master and the +scholar, out of the tabernacles of Jacob, and him that offereth an +offering unto the LORD of hosts. + +2:13 And this have ye done again, covering the altar of the LORD with +tears, with weeping, and with crying out, insomuch that he regardeth +not the offering any more, or receiveth it with good will at your +hand. + +2:14 Yet ye say, Wherefore? Because the LORD hath been witness between +thee and the wife of thy youth, against whom thou hast dealt +treacherously: yet is she thy companion, and the wife of thy covenant. + +2:15 And did not he make one? Yet had he the residue of the spirit. +And wherefore one? That he might seek a godly seed. Therefore take +heed to your spirit, and let none deal treacherously against the wife +of his youth. + +2:16 For the LORD, the God of Israel, saith that he hateth putting +away: for one covereth violence with his garment, saith the LORD of +hosts: therefore take heed to your spirit, that ye deal not +treacherously. + +2:17 Ye have wearied the LORD with your words. Yet ye say, Wherein +have we wearied him? When ye say, Every one that doeth evil is good in +the sight of the LORD, and he delighteth in them; or, Where is the God +of judgment? 3:1 Behold, I will send my messenger, and he shall +prepare the way before me: and the LORD, whom ye seek, shall suddenly +come to his temple, even the messenger of the covenant, whom ye +delight in: behold, he shall come, saith the LORD of hosts. + +3:2 But who may abide the day of his coming? and who shall stand when +he appeareth? for he is like a refiner's fire, and like fullers' soap: +3:3 And he shall sit as a refiner and purifier of silver: and he shall +purify the sons of Levi, and purge them as gold and silver, that they +may offer unto the LORD an offering in righteousness. + +3:4 Then shall the offering of Judah and Jerusalem be pleasant unto +the LORD, as in the days of old, and as in former years. + +3:5 And I will come near to you to judgment; and I will be a swift +witness against the sorcerers, and against the adulterers, and against +false swearers, and against those that oppress the hireling in his +wages, the widow, and the fatherless, and that turn aside the stranger +from his right, and fear not me, saith the LORD of hosts. + +3:6 For I am the LORD, I change not; therefore ye sons of Jacob are +not consumed. + +3:7 Even from the days of your fathers ye are gone away from mine +ordinances, and have not kept them. Return unto me, and I will return +unto you, saith the LORD of hosts. But ye said, Wherein shall we +return? 3:8 Will a man rob God? Yet ye have robbed me. But ye say, +Wherein have we robbed thee? In tithes and offerings. + +3:9 Ye are cursed with a curse: for ye have robbed me, even this whole +nation. + +3:10 Bring ye all the tithes into the storehouse, that there may be +meat in mine house, and prove me now herewith, saith the LORD of +hosts, if I will not open you the windows of heaven, and pour you out +a blessing, that there shall not be room enough to receive it. + +3:11 And I will rebuke the devourer for your sakes, and he shall not +destroy the fruits of your ground; neither shall your vine cast her +fruit before the time in the field, saith the LORD of hosts. + +3:12 And all nations shall call you blessed: for ye shall be a +delightsome land, saith the LORD of hosts. + +3:13 Your words have been stout against me, saith the LORD. Yet ye +say, What have we spoken so much against thee? 3:14 Ye have said, It +is vain to serve God: and what profit is it that we have kept his +ordinance, and that we have walked mournfully before the LORD of +hosts? 3:15 And now we call the proud happy; yea, they that work +wickedness are set up; yea, they that tempt God are even delivered. + +3:16 Then they that feared the LORD spake often one to another: and +the LORD hearkened, and heard it, and a book of remembrance was +written before him for them that feared the LORD, and that thought +upon his name. + +3:17 And they shall be mine, saith the LORD of hosts, in that day when +I make up my jewels; and I will spare them, as a man spareth his own +son that serveth him. + +3:18 Then shall ye return, and discern between the righteous and the +wicked, between him that serveth God and him that serveth him not. + +4:1 For, behold, the day cometh, that shall burn as an oven; and all +the proud, yea, and all that do wickedly, shall be stubble: and the +day that cometh shall burn them up, saith the LORD of hosts, that it +shall leave them neither root nor branch. + +4:2 But unto you that fear my name shall the Sun of righteousness +arise with healing in his wings; and ye shall go forth, and grow up as +calves of the stall. + +4:3 And ye shall tread down the wicked; for they shall be ashes under +the soles of your feet in the day that I shall do this, saith the LORD +of hosts. + +4:4 Remember ye the law of Moses my servant, which I commanded unto +him in Horeb for all Israel, with the statutes and judgments. + +4:5 Behold, I will send you Elijah the prophet before the coming of +the great and dreadful day of the LORD: 4:6 And he shall turn the +heart of the fathers to the children, and the heart of the children to +their fathers, lest I come and smite the earth with a curse. + +End of the Project Gutenberg Edition of the Old Testament + + +*** + + +The New Testament of the King James Bible + +[Paragraphing done by an anonymous Project Gutenberg volunter.] + +[This King James Bible was orginally posted by Project Gutenberg +in late 1989, representing the entire output of Project Gutenberg +for the 1980's as our edition of Shakespeare failed to meet the +requirement of our copyright analysts.] + + + +The Gospel According to Saint Matthew + + +1:1 The book of the generation of Jesus Christ, the son of David, the +son of Abraham. + +1:2 Abraham begat Isaac; and Isaac begat Jacob; and Jacob begat Judas +and his brethren; 1:3 And Judas begat Phares and Zara of Thamar; and +Phares begat Esrom; and Esrom begat Aram; 1:4 And Aram begat Aminadab; +and Aminadab begat Naasson; and Naasson begat Salmon; 1:5 And Salmon +begat Booz of Rachab; and Booz begat Obed of Ruth; and Obed begat +Jesse; 1:6 And Jesse begat David the king; and David the king begat +Solomon of her that had been the wife of Urias; 1:7 And Solomon begat +Roboam; and Roboam begat Abia; and Abia begat Asa; 1:8 And Asa begat +Josaphat; and Josaphat begat Joram; and Joram begat Ozias; 1:9 And +Ozias begat Joatham; and Joatham begat Achaz; and Achaz begat Ezekias; +1:10 And Ezekias begat Manasses; and Manasses begat Amon; and Amon +begat Josias; 1:11 And Josias begat Jechonias and his brethren, about +the time they were carried away to Babylon: 1:12 And after they were +brought to Babylon, Jechonias begat Salathiel; and Salathiel begat +Zorobabel; 1:13 And Zorobabel begat Abiud; and Abiud begat Eliakim; +and Eliakim begat Azor; 1:14 And Azor begat Sadoc; and Sadoc begat +Achim; and Achim begat Eliud; 1:15 And Eliud begat Eleazar; and +Eleazar begat Matthan; and Matthan begat Jacob; 1:16 And Jacob begat +Joseph the husband of Mary, of whom was born Jesus, who is called +Christ. + +1:17 So all the generations from Abraham to David are fourteen +generations; and from David until the carrying away into Babylon are +fourteen generations; and from the carrying away into Babylon unto +Christ are fourteen generations. + +1:18 Now the birth of Jesus Christ was on this wise: When as his +mother Mary was espoused to Joseph, before they came together, she was +found with child of the Holy Ghost. + +1:19 Then Joseph her husband, being a just man, and not willing to +make her a publick example, was minded to put her away privily. + +1:20 But while he thought on these things, behold, the angel of the +LORD appeared unto him in a dream, saying, Joseph, thou son of David, +fear not to take unto thee Mary thy wife: for that which is conceived +in her is of the Holy Ghost. + +1:21 And she shall bring forth a son, and thou shalt call his name +JESUS: for he shall save his people from their sins. + +1:22 Now all this was done, that it might be fulfilled which was +spoken of the Lord by the prophet, saying, 1:23 Behold, a virgin shall +be with child, and shall bring forth a son, and they shall call his +name Emmanuel, which being interpreted is, God with us. + +1:24 Then Joseph being raised from sleep did as the angel of the Lord +had bidden him, and took unto him his wife: 1:25 And knew her not till +she had brought forth her firstborn son: and he called his name JESUS. + +2:1 Now when Jesus was born in Bethlehem of Judaea in the days of +Herod the king, behold, there came wise men from the east to +Jerusalem, 2:2 Saying, Where is he that is born King of the Jews? for +we have seen his star in the east, and are come to worship him. + +2:3 When Herod the king had heard these things, he was troubled, and +all Jerusalem with him. + +2:4 And when he had gathered all the chief priests and scribes of the +people together, he demanded of them where Christ should be born. + +2:5 And they said unto him, In Bethlehem of Judaea: for thus it is +written by the prophet, 2:6 And thou Bethlehem, in the land of Juda, +art not the least among the princes of Juda: for out of thee shall +come a Governor, that shall rule my people Israel. + +2:7 Then Herod, when he had privily called the wise men, enquired of +them diligently what time the star appeared. + +2:8 And he sent them to Bethlehem, and said, Go and search diligently +for the young child; and when ye have found him, bring me word again, +that I may come and worship him also. + +2:9 When they had heard the king, they departed; and, lo, the star, +which they saw in the east, went before them, till it came and stood +over where the young child was. + +2:10 When they saw the star, they rejoiced with exceeding great joy. + +2:11 And when they were come into the house, they saw the young child +with Mary his mother, and fell down, and worshipped him: and when they +had opened their treasures, they presented unto him gifts; gold, and +frankincense and myrrh. + +2:12 And being warned of God in a dream that they should not return to +Herod, they departed into their own country another way. + +2:13 And when they were departed, behold, the angel of the Lord +appeareth to Joseph in a dream, saying, Arise, and take the young +child and his mother, and flee into Egypt, and be thou there until I +bring thee word: for Herod will seek the young child to destroy him. + +2:14 When he arose, he took the young child and his mother by night, +and departed into Egypt: 2:15 And was there until the death of Herod: +that it might be fulfilled which was spoken of the Lord by the +prophet, saying, Out of Egypt have I called my son. + +2:16 Then Herod, when he saw that he was mocked of the wise men, was +exceeding wroth, and sent forth, and slew all the children that were +in Bethlehem, and in all the coasts thereof, from two years old and +under, according to the time which he had diligently enquired of the +wise men. + +2:17 Then was fulfilled that which was spoken by Jeremy the prophet, +saying, 2:18 In Rama was there a voice heard, lamentation, and +weeping, and great mourning, Rachel weeping for her children, and +would not be comforted, because they are not. + +2:19 But when Herod was dead, behold, an angel of the Lord appeareth +in a dream to Joseph in Egypt, 2:20 Saying, Arise, and take the young +child and his mother, and go into the land of Israel: for they are +dead which sought the young child's life. + +2:21 And he arose, and took the young child and his mother, and came +into the land of Israel. + +2:22 But when he heard that Archelaus did reign in Judaea in the room +of his father Herod, he was afraid to go thither: notwithstanding, +being warned of God in a dream, he turned aside into the parts of +Galilee: 2:23 And he came and dwelt in a city called Nazareth: that it +might be fulfilled which was spoken by the prophets, He shall be +called a Nazarene. + +3:1 In those days came John the Baptist, preaching in the wilderness +of Judaea, 3:2 And saying, Repent ye: for the kingdom of heaven is at +hand. + +3:3 For this is he that was spoken of by the prophet Esaias, saying, +The voice of one crying in the wilderness, Prepare ye the way of the +Lord, make his paths straight. + +3:4 And the same John had his raiment of camel's hair, and a leathern +girdle about his loins; and his meat was locusts and wild honey. + +3:5 Then went out to him Jerusalem, and all Judaea, and all the region +round about Jordan, 3:6 And were baptized of him in Jordan, confessing +their sins. + +3:7 But when he saw many of the Pharisees and Sadducees come to his +baptism, he said unto them, O generation of vipers, who hath warned +you to flee from the wrath to come? 3:8 Bring forth therefore fruits +meet for repentance: 3:9 And think not to say within yourselves, We +have Abraham to our father: for I say unto you, that God is able of +these stones to raise up children unto Abraham. + +3:10 And now also the axe is laid unto the root of the trees: +therefore every tree which bringeth not forth good fruit is hewn down, +and cast into the fire. + +3:11 I indeed baptize you with water unto repentance. but he that +cometh after me is mightier than I, whose shoes I am not worthy to +bear: he shall baptize you with the Holy Ghost, and with fire: 3:12 +Whose fan is in his hand, and he will throughly purge his floor, and +gather his wheat into the garner; but he will burn up the chaff with +unquenchable fire. + +3:13 Then cometh Jesus from Galilee to Jordan unto John, to be +baptized of him. + +3:14 But John forbad him, saying, I have need to be baptized of thee, +and comest thou to me? 3:15 And Jesus answering said unto him, Suffer +it to be so now: for thus it becometh us to fulfil all righteousness. +Then he suffered him. + +3:16 And Jesus, when he was baptized, went up straightway out of the +water: and, lo, the heavens were opened unto him, and he saw the +Spirit of God descending like a dove, and lighting upon him: 3:17 And +lo a voice from heaven, saying, This is my beloved Son, in whom I am +well pleased. + +4:1 Then was Jesus led up of the spirit into the wilderness to be +tempted of the devil. + +4:2 And when he had fasted forty days and forty nights, he was +afterward an hungred. + +4:3 And when the tempter came to him, he said, If thou be the Son of +God, command that these stones be made bread. + +4:4 But he answered and said, It is written, Man shall not live by +bread alone, but by every word that proceedeth out of the mouth of +God. + +4:5 Then the devil taketh him up into the holy city, and setteth him +on a pinnacle of the temple, 4:6 And saith unto him, If thou be the +Son of God, cast thyself down: for it is written, He shall give his +angels charge concerning thee: and in their hands they shall bear thee +up, lest at any time thou dash thy foot against a stone. + +4:7 Jesus said unto him, It is written again, Thou shalt not tempt the +Lord thy God. + +4:8 Again, the devil taketh him up into an exceeding high mountain, +and sheweth him all the kingdoms of the world, and the glory of them; +4:9 And saith unto him, All these things will I give thee, if thou +wilt fall down and worship me. + +4:10 Then saith Jesus unto him, Get thee hence, Satan: for it is +written, Thou shalt worship the Lord thy God, and him only shalt thou +serve. + +4:11 Then the devil leaveth him, and, behold, angels came and +ministered unto him. + +4:12 Now when Jesus had heard that John was cast into prison, he +departed into Galilee; 4:13 And leaving Nazareth, he came and dwelt in +Capernaum, which is upon the sea coast, in the borders of Zabulon and +Nephthalim: 4:14 That it might be fulfilled which was spoken by Esaias +the prophet, saying, 4:15 The land of Zabulon, and the land of +Nephthalim, by the way of the sea, beyond Jordan, Galilee of the +Gentiles; 4:16 The people which sat in darkness saw great light; and +to them which sat in the region and shadow of death light is sprung +up. + +4:17 From that time Jesus began to preach, and to say, Repent: for the +kingdom of heaven is at hand. + +4:18 And Jesus, walking by the sea of Galilee, saw two brethren, Simon +called Peter, and Andrew his brother, casting a net into the sea: for +they were fishers. + +4:19 And he saith unto them, Follow me, and I will make you fishers of +men. + +4:20 And they straightway left their nets, and followed him. + +4:21 And going on from thence, he saw other two brethren, James the +son of Zebedee, and John his brother, in a ship with Zebedee their +father, mending their nets; and he called them. + +4:22 And they immediately left the ship and their father, and followed +him. + +4:23 And Jesus went about all Galilee, teaching in their synagogues, +and preaching the gospel of the kingdom, and healing all manner of +sickness and all manner of disease among the people. + +4:24 And his fame went throughout all Syria: and they brought unto him +all sick people that were taken with divers diseases and torments, and +those which were possessed with devils, and those which were lunatick, +and those that had the palsy; and he healed them. + +4:25 And there followed him great multitudes of people from Galilee, +and from Decapolis, and from Jerusalem, and from Judaea, and from +beyond Jordan. + +5:1 And seeing the multitudes, he went up into a mountain: and when he +was set, his disciples came unto him: 5:2 And he opened his mouth, and +taught them, saying, 5:3 Blessed are the poor in spirit: for theirs is +the kingdom of heaven. + +5:4 Blessed are they that mourn: for they shall be comforted. + +5:5 Blessed are the meek: for they shall inherit the earth. + +5:6 Blessed are they which do hunger and thirst after righteousness: +for they shall be filled. + +5:7 Blessed are the merciful: for they shall obtain mercy. + +5:8 Blessed are the pure in heart: for they shall see God. + +5:9 Blessed are the peacemakers: for they shall be called the children +of God. + +5:10 Blessed are they which are persecuted for righteousness' sake: +for theirs is the kingdom of heaven. + +5:11 Blessed are ye, when men shall revile you, and persecute you, and +shall say all manner of evil against you falsely, for my sake. + +5:12 Rejoice, and be exceeding glad: for great is your reward in +heaven: for so persecuted they the prophets which were before you. + +5:13 Ye are the salt of the earth: but if the salt have lost his +savour, wherewith shall it be salted? it is thenceforth good for +nothing, but to be cast out, and to be trodden under foot of men. + +5:14 Ye are the light of the world. A city that is set on an hill +cannot be hid. + +5:15 Neither do men light a candle, and put it under a bushel, but on +a candlestick; and it giveth light unto all that are in the house. + +5:16 Let your light so shine before men, that they may see your good +works, and glorify your Father which is in heaven. + +5:17 Think not that I am come to destroy the law, or the prophets: I +am not come to destroy, but to fulfil. + +5:18 For verily I say unto you, Till heaven and earth pass, one jot or +one tittle shall in no wise pass from the law, till all be fulfilled. + +5:19 Whosoever therefore shall break one of these least commandments, +and shall teach men so, he shall be called the least in the kingdom of +heaven: but whosoever shall do and teach them, the same shall be +called great in the kingdom of heaven. + +5:20 For I say unto you, That except your righteousness shall exceed +the righteousness of the scribes and Pharisees, ye shall in no case +enter into the kingdom of heaven. + +5:21 Ye have heard that it was said of them of old time, Thou shalt +not kill; and whosoever shall kill shall be in danger of the judgment: +5:22 But I say unto you, That whosoever is angry with his brother +without a cause shall be in danger of the judgment: and whosoever +shall say to his brother, Raca, shall be in danger of the council: but +whosoever shall say, Thou fool, shall be in danger of hell fire. + +5:23 Therefore if thou bring thy gift to the altar, and there +rememberest that thy brother hath ought against thee; 5:24 Leave there +thy gift before the altar, and go thy way; first be reconciled to thy +brother, and then come and offer thy gift. + +5:25 Agree with thine adversary quickly, whiles thou art in the way +with him; lest at any time the adversary deliver thee to the judge, +and the judge deliver thee to the officer, and thou be cast into +prison. + +5:26 Verily I say unto thee, Thou shalt by no means come out thence, +till thou hast paid the uttermost farthing. + +5:27 Ye have heard that it was said by them of old time, Thou shalt +not commit adultery: 5:28 But I say unto you, That whosoever looketh +on a woman to lust after her hath committed adultery with her already +in his heart. + +5:29 And if thy right eye offend thee, pluck it out, and cast it from +thee: for it is profitable for thee that one of thy members should +perish, and not that thy whole body should be cast into hell. + +5:30 And if thy right hand offend thee, cut it off, and cast it from +thee: for it is profitable for thee that one of thy members should +perish, and not that thy whole body should be cast into hell. + +5:31 It hath been said, Whosoever shall put away his wife, let him +give her a writing of divorcement: 5:32 But I say unto you, That +whosoever shall put away his wife, saving for the cause of +fornication, causeth her to commit adultery: and whosoever shall marry +her that is divorced committeth adultery. + +5:33 Again, ye have heard that it hath been said by them of old time, +Thou shalt not forswear thyself, but shalt perform unto the Lord thine +oaths: 5:34 But I say unto you, Swear not at all; neither by heaven; +for it is God's throne: 5:35 Nor by the earth; for it is his +footstool: neither by Jerusalem; for it is the city of the great King. + +5:36 Neither shalt thou swear by thy head, because thou canst not make +one hair white or black. + +5:37 But let your communication be, Yea, yea; Nay, nay: for whatsoever +is more than these cometh of evil. + +5:38 Ye have heard that it hath been said, An eye for an eye, and a +tooth for a tooth: 5:39 But I say unto you, That ye resist not evil: +but whosoever shall smite thee on thy right cheek, turn to him the +other also. + +5:40 And if any man will sue thee at the law, and take away thy coat, +let him have thy cloak also. + +5:41 And whosoever shall compel thee to go a mile, go with him twain. + +5:42 Give to him that asketh thee, and from him that would borrow of +thee turn not thou away. + +5:43 Ye have heard that it hath been said, Thou shalt love thy +neighbour, and hate thine enemy. + +5:44 But I say unto you, Love your enemies, bless them that curse you, +do good to them that hate you, and pray for them which despitefully +use you, and persecute you; 5:45 That ye may be the children of your +Father which is in heaven: for he maketh his sun to rise on the evil +and on the good, and sendeth rain on the just and on the unjust. + +5:46 For if ye love them which love you, what reward have ye? do not +even the publicans the same? 5:47 And if ye salute your brethren +only, what do ye more than others? do not even the publicans so? 5:48 +Be ye therefore perfect, even as your Father which is in heaven is +perfect. + +6:1 Take heed that ye do not your alms before men, to be seen of them: +otherwise ye have no reward of your Father which is in heaven. + +6:2 Therefore when thou doest thine alms, do not sound a trumpet +before thee, as the hypocrites do in the synagogues and in the +streets, that they may have glory of men. Verily I say unto you, They +have their reward. + +6:3 But when thou doest alms, let not thy left hand know what thy +right hand doeth: 6:4 That thine alms may be in secret: and thy Father +which seeth in secret himself shall reward thee openly. + +6:5 And when thou prayest, thou shalt not be as the hypocrites are: +for they love to pray standing in the synagogues and in the corners of +the streets, that they may be seen of men. Verily I say unto you, They +have their reward. + +6:6 But thou, when thou prayest, enter into thy closet, and when thou +hast shut thy door, pray to thy Father which is in secret; and thy +Father which seeth in secret shall reward thee openly. + +6:7 But when ye pray, use not vain repetitions, as the heathen do: for +they think that they shall be heard for their much speaking. + +6:8 Be not ye therefore like unto them: for your Father knoweth what +things ye have need of, before ye ask him. + +6:9 After this manner therefore pray ye: Our Father which art in +heaven, Hallowed be thy name. + +6:10 Thy kingdom come, Thy will be done in earth, as it is in heaven. + +6:11 Give us this day our daily bread. + +6:12 And forgive us our debts, as we forgive our debtors. + +6:13 And lead us not into temptation, but deliver us from evil: For +thine is the kingdom, and the power, and the glory, for ever. Amen. + +6:14 For if ye forgive men their trespasses, your heavenly Father will +also forgive you: 6:15 But if ye forgive not men their trespasses, +neither will your Father forgive your trespasses. + +6:16 Moreover when ye fast, be not, as the hypocrites, of a sad +countenance: for they disfigure their faces, that they may appear unto +men to fast. Verily I say unto you, They have their reward. + +6:17 But thou, when thou fastest, anoint thine head, and wash thy +face; 6:18 That thou appear not unto men to fast, but unto thy Father +which is in secret: and thy Father, which seeth in secret, shall +reward thee openly. + +6:19 Lay not up for yourselves treasures upon earth, where moth and +rust doth corrupt, and where thieves break through and steal: 6:20 But +lay up for yourselves treasures in heaven, where neither moth nor rust +doth corrupt, and where thieves do not break through nor steal: 6:21 +For where your treasure is, there will your heart be also. + +6:22 The light of the body is the eye: if therefore thine eye be +single, thy whole body shall be full of light. + +6:23 But if thine eye be evil, thy whole body shall be full of +darkness. + +If therefore the light that is in thee be darkness, how great is that +darkness! 6:24 No man can serve two masters: for either he will hate +the one, and love the other; or else he will hold to the one, and +despise the other. Ye cannot serve God and mammon. + +6:25 Therefore I say unto you, Take no thought for your life, what ye +shall eat, or what ye shall drink; nor yet for your body, what ye +shall put on. Is not the life more than meat, and the body than +raiment? 6:26 Behold the fowls of the air: for they sow not, neither +do they reap, nor gather into barns; yet your heavenly Father feedeth +them. Are ye not much better than they? 6:27 Which of you by taking +thought can add one cubit unto his stature? 6:28 And why take ye +thought for raiment? Consider the lilies of the field, how they grow; +they toil not, neither do they spin: 6:29 And yet I say unto you, That +even Solomon in all his glory was not arrayed like one of these. + +6:30 Wherefore, if God so clothe the grass of the field, which to day +is, and to morrow is cast into the oven, shall he not much more clothe +you, O ye of little faith? 6:31 Therefore take no thought, saying, +What shall we eat? or, What shall we drink? or, Wherewithal shall we +be clothed? 6:32 (For after all these things do the Gentiles seek:) +for your heavenly Father knoweth that ye have need of all these +things. + +6:33 But seek ye first the kingdom of God, and his righteousness; and +all these things shall be added unto you. + +6:34 Take therefore no thought for the morrow: for the morrow shall +take thought for the things of itself. Sufficient unto the day is the +evil thereof. + +7:1 Judge not, that ye be not judged. + +7:2 For with what judgment ye judge, ye shall be judged: and with what +measure ye mete, it shall be measured to you again. + +7:3 And why beholdest thou the mote that is in thy brother's eye, but +considerest not the beam that is in thine own eye? 7:4 Or how wilt +thou say to thy brother, Let me pull out the mote out of thine eye; +and, behold, a beam is in thine own eye? 7:5 Thou hypocrite, first +cast out the beam out of thine own eye; and then shalt thou see +clearly to cast out the mote out of thy brother's eye. + +7:6 Give not that which is holy unto the dogs, neither cast ye your +pearls before swine, lest they trample them under their feet, and turn +again and rend you. + +7:7 Ask, and it shall be given you; seek, and ye shall find; knock, +and it shall be opened unto you: 7:8 For every one that asketh +receiveth; and he that seeketh findeth; and to him that knocketh it +shall be opened. + +7:9 Or what man is there of you, whom if his son ask bread, will he +give him a stone? 7:10 Or if he ask a fish, will he give him a +serpent? 7:11 If ye then, being evil, know how to give good gifts +unto your children, how much more shall your Father which is in heaven +give good things to them that ask him? 7:12 Therefore all things +whatsoever ye would that men should do to you, do ye even so to them: +for this is the law and the prophets. + +7:13 Enter ye in at the strait gate: for wide is the gate, and broad +is the way, that leadeth to destruction, and many there be which go in +thereat: 7:14 Because strait is the gate, and narrow is the way, which +leadeth unto life, and few there be that find it. + +7:15 Beware of false prophets, which come to you in sheep's clothing, +but inwardly they are ravening wolves. + +7:16 Ye shall know them by their fruits. Do men gather grapes of +thorns, or figs of thistles? 7:17 Even so every good tree bringeth +forth good fruit; but a corrupt tree bringeth forth evil fruit. + +7:18 A good tree cannot bring forth evil fruit, neither can a corrupt +tree bring forth good fruit. + +7:19 Every tree that bringeth not forth good fruit is hewn down, and +cast into the fire. + +7:20 Wherefore by their fruits ye shall know them. + +7:21 Not every one that saith unto me, Lord, Lord, shall enter into +the kingdom of heaven; but he that doeth the will of my Father which +is in heaven. + +7:22 Many will say to me in that day, Lord, Lord, have we not +prophesied in thy name? and in thy name have cast out devils? and in +thy name done many wonderful works? 7:23 And then will I profess unto +them, I never knew you: depart from me, ye that work iniquity. + +7:24 Therefore whosoever heareth these sayings of mine, and doeth +them, I will liken him unto a wise man, which built his house upon a +rock: 7:25 And the rain descended, and the floods came, and the winds +blew, and beat upon that house; and it fell not: for it was founded +upon a rock. + +7:26 And every one that heareth these sayings of mine, and doeth them +not, shall be likened unto a foolish man, which built his house upon +the sand: 7:27 And the rain descended, and the floods came, and the +winds blew, and beat upon that house; and it fell: and great was the +fall of it. + +7:28 And it came to pass, when Jesus had ended these sayings, the +people were astonished at his doctrine: 7:29 For he taught them as one +having authority, and not as the scribes. + +8:1 When he was come down from the mountain, great multitudes followed +him. + +8:2 And, behold, there came a leper and worshipped him, saying, Lord, +if thou wilt, thou canst make me clean. + +8:3 And Jesus put forth his hand, and touched him, saying, I will; be +thou clean. And immediately his leprosy was cleansed. + +8:4 And Jesus saith unto him, See thou tell no man; but go thy way, +shew thyself to the priest, and offer the gift that Moses commanded, +for a testimony unto them. + +8:5 And when Jesus was entered into Capernaum, there came unto him a +centurion, beseeching him, 8:6 And saying, Lord, my servant lieth at +home sick of the palsy, grievously tormented. + +8:7 And Jesus saith unto him, I will come and heal him. + +8:8 The centurion answered and said, Lord, I am not worthy that thou +shouldest come under my roof: but speak the word only, and my servant +shall be healed. + +8:9 For I am a man under authority, having soldiers under me: and I +say to this man, Go, and he goeth; and to another, Come, and he +cometh; and to my servant, Do this, and he doeth it. + +8:10 When Jesus heard it, he marvelled, and said to them that +followed, Verily I say unto you, I have not found so great faith, no, +not in Israel. + +8:11 And I say unto you, That many shall come from the east and west, +and shall sit down with Abraham, and Isaac, and Jacob, in the kingdom +of heaven. + +8:12 But the children of the kingdom shall be cast out into outer +darkness: there shall be weeping and gnashing of teeth. + +8:13 And Jesus said unto the centurion, Go thy way; and as thou hast +believed, so be it done unto thee. And his servant was healed in the +selfsame hour. + +8:14 And when Jesus was come into Peter's house, he saw his wife's +mother laid, and sick of a fever. + +8:15 And he touched her hand, and the fever left her: and she arose, +and ministered unto them. + +8:16 When the even was come, they brought unto him many that were +possessed with devils: and he cast out the spirits with his word, and +healed all that were sick: 8:17 That it might be fulfilled which was +spoken by Esaias the prophet, saying, Himself took our infirmities, +and bare our sicknesses. + +8:18 Now when Jesus saw great multitudes about him, he gave +commandment to depart unto the other side. + +8:19 And a certain scribe came, and said unto him, Master, I will +follow thee whithersoever thou goest. + +8:20 And Jesus saith unto him, The foxes have holes, and the birds of +the air have nests; but the Son of man hath not where to lay his head. + +8:21 And another of his disciples said unto him, Lord, suffer me first +to go and bury my father. + +8:22 But Jesus said unto him, Follow me; and let the dead bury their +dead. + +8:23 And when he was entered into a ship, his disciples followed him. + +8:24 And, behold, there arose a great tempest in the sea, insomuch +that the ship was covered with the waves: but he was asleep. + +8:25 And his disciples came to him, and awoke him, saying, Lord, save +us: we perish. + +8:26 And he saith unto them, Why are ye fearful, O ye of little faith? +Then he arose, and rebuked the winds and the sea; and there was a +great calm. + +8:27 But the men marvelled, saying, What manner of man is this, that +even the winds and the sea obey him! 8:28 And when he was come to the +other side into the country of the Gergesenes, there met him two +possessed with devils, coming out of the tombs, exceeding fierce, so +that no man might pass by that way. + +8:29 And, behold, they cried out, saying, What have we to do with +thee, Jesus, thou Son of God? art thou come hither to torment us +before the time? 8:30 And there was a good way off from them an herd +of many swine feeding. + +8:31 So the devils besought him, saying, If thou cast us out, suffer +us to go away into the herd of swine. + +8:32 And he said unto them, Go. And when they were come out, they went +into the herd of swine: and, behold, the whole herd of swine ran +violently down a steep place into the sea, and perished in the waters. + +8:33 And they that kept them fled, and went their ways into the city, +and told every thing, and what was befallen to the possessed of the +devils. + +8:34 And, behold, the whole city came out to meet Jesus: and when they +saw him, they besought him that he would depart out of their coasts. + +9:1 And he entered into a ship, and passed over, and came into his own +city. + +9:2 And, behold, they brought to him a man sick of the palsy, lying on +a bed: and Jesus seeing their faith said unto the sick of the palsy; +Son, be of good cheer; thy sins be forgiven thee. + +9:3 And, behold, certain of the scribes said within themselves, This +man blasphemeth. + +9:4 And Jesus knowing their thoughts said, Wherefore think ye evil in +your hearts? 9:5 For whether is easier, to say, Thy sins be forgiven +thee; or to say, Arise, and walk? 9:6 But that ye may know that the +Son of man hath power on earth to forgive sins, (then saith he to the +sick of the palsy,) Arise, take up thy bed, and go unto thine house. + +9:7 And he arose, and departed to his house. + +9:8 But when the multitudes saw it, they marvelled, and glorified God, +which had given such power unto men. + +9:9 And as Jesus passed forth from thence, he saw a man, named +Matthew, sitting at the receipt of custom: and he saith unto him, +Follow me. And he arose, and followed him. + +9:10 And it came to pass, as Jesus sat at meat in the house, behold, +many publicans and sinners came and sat down with him and his +disciples. + +9:11 And when the Pharisees saw it, they said unto his disciples, Why +eateth your Master with publicans and sinners? 9:12 But when Jesus +heard that, he said unto them, They that be whole need not a +physician, but they that are sick. + +9:13 But go ye and learn what that meaneth, I will have mercy, and not +sacrifice: for I am not come to call the righteous, but sinners to +repentance. + +9:14 Then came to him the disciples of John, saying, Why do we and the +Pharisees fast oft, but thy disciples fast not? 9:15 And Jesus said +unto them, Can the children of the bridechamber mourn, as long as the +bridegroom is with them? but the days will come, when the bridegroom +shall be taken from them, and then shall they fast. + +9:16 No man putteth a piece of new cloth unto an old garment, for that +which is put in to fill it up taketh from the garment, and the rent is +made worse. + +9:17 Neither do men put new wine into old bottles: else the bottles +break, and the wine runneth out, and the bottles perish: but they put +new wine into new bottles, and both are preserved. + +9:18 While he spake these things unto them, behold, there came a +certain ruler, and worshipped him, saying, My daughter is even now +dead: but come and lay thy hand upon her, and she shall live. + +9:19 And Jesus arose, and followed him, and so did his disciples. + +9:20 And, behold, a woman, which was diseased with an issue of blood +twelve years, came behind him, and touched the hem of his garment: +9:21 For she said within herself, If I may but touch his garment, I +shall be whole. + +9:22 But Jesus turned him about, and when he saw her, he said, +Daughter, be of good comfort; thy faith hath made thee whole. And the +woman was made whole from that hour. + +9:23 And when Jesus came into the ruler's house, and saw the minstrels +and the people making a noise, 9:24 He said unto them, Give place: for +the maid is not dead, but sleepeth. And they laughed him to scorn. + +9:25 But when the people were put forth, he went in, and took her by +the hand, and the maid arose. + +9:26 And the fame hereof went abroad into all that land. + +9:27 And when Jesus departed thence, two blind men followed him, +crying, and saying, Thou son of David, have mercy on us. + +9:28 And when he was come into the house, the blind men came to him: +and Jesus saith unto them, Believe ye that I am able to do this? They +said unto him, Yea, Lord. + +9:29 Then touched he their eyes, saying, According to your faith be it +unto you. + +9:30 And their eyes were opened; and Jesus straitly charged them, +saying, See that no man know it. + +9:31 But they, when they were departed, spread abroad his fame in all +that country. + +9:32 As they went out, behold, they brought to him a dumb man +possessed with a devil. + +9:33 And when the devil was cast out, the dumb spake: and the +multitudes marvelled, saying, It was never so seen in Israel. + +9:34 But the Pharisees said, He casteth out devils through the prince +of the devils. + +9:35 And Jesus went about all the cities and villages, teaching in +their synagogues, and preaching the gospel of the kingdom, and healing +every sickness and every disease among the people. + +9:36 But when he saw the multitudes, he was moved with compassion on +them, because they fainted, and were scattered abroad, as sheep having +no shepherd. + +9:37 Then saith he unto his disciples, The harvest truly is plenteous, +but the labourers are few; 9:38 Pray ye therefore the Lord of the +harvest, that he will send forth labourers into his harvest. + +10:1 And when he had called unto him his twelve disciples, he gave +them power against unclean spirits, to cast them out, and to heal all +manner of sickness and all manner of disease. + +10:2 Now the names of the twelve apostles are these; The first, Simon, +who is called Peter, and Andrew his brother; James the son of Zebedee, +and John his brother; 10:3 Philip, and Bartholomew; Thomas, and +Matthew the publican; James the son of Alphaeus, and Lebbaeus, whose +surname was Thaddaeus; 10:4 Simon the Canaanite, and Judas Iscariot, +who also betrayed him. + +10:5 These twelve Jesus sent forth, and commanded them, saying, Go not +into the way of the Gentiles, and into any city of the Samaritans +enter ye not: 10:6 But go rather to the lost sheep of the house of +Israel. + +10:7 And as ye go, preach, saying, The kingdom of heaven is at hand. + +10:8 Heal the sick, cleanse the lepers, raise the dead, cast out +devils: freely ye have received, freely give. + +10:9 Provide neither gold, nor silver, nor brass in your purses, 10:10 +Nor scrip for your journey, neither two coats, neither shoes, nor yet +staves: for the workman is worthy of his meat. + +10:11 And into whatsoever city or town ye shall enter, enquire who in +it is worthy; and there abide till ye go thence. + +10:12 And when ye come into an house, salute it. + +10:13 And if the house be worthy, let your peace come upon it: but if +it be not worthy, let your peace return to you. + +10:14 And whosoever shall not receive you, nor hear your words, when +ye depart out of that house or city, shake off the dust of your feet. + +10:15 Verily I say unto you, It shall be more tolerable for the land +of Sodom and Gomorrha in the day of judgment, than for that city. + +10:16 Behold, I send you forth as sheep in the midst of wolves: be ye +therefore wise as serpents, and harmless as doves. + +10:17 But beware of men: for they will deliver you up to the councils, +and they will scourge you in their synagogues; 10:18 And ye shall be +brought before governors and kings for my sake, for a testimony +against them and the Gentiles. + +10:19 But when they deliver you up, take no thought how or what ye +shall speak: for it shall be given you in that same hour what ye shall +speak. + +10:20 For it is not ye that speak, but the Spirit of your Father which +speaketh in you. + +10:21 And the brother shall deliver up the brother to death, and the +father the child: and the children shall rise up against their +parents, and cause them to be put to death. + +10:22 And ye shall be hated of all men for my name's sake: but he that +endureth to the end shall be saved. + +10:23 But when they persecute you in this city, flee ye into another: +for verily I say unto you, Ye shall not have gone over the cities of +Israel, till the Son of man be come. + +10:24 The disciple is not above his master, nor the servant above his +lord. + +10:25 It is enough for the disciple that he be as his master, and the +servant as his lord. If they have called the master of the house +Beelzebub, how much more shall they call them of his household? 10:26 +Fear them not therefore: for there is nothing covered, that shall not +be revealed; and hid, that shall not be known. + +10:27 What I tell you in darkness, that speak ye in light: and what ye +hear in the ear, that preach ye upon the housetops. + +10:28 And fear not them which kill the body, but are not able to kill +the soul: but rather fear him which is able to destroy both soul and +body in hell. + +10:29 Are not two sparrows sold for a farthing? and one of them shall +not fall on the ground without your Father. + +10:30 But the very hairs of your head are all numbered. + +10:31 Fear ye not therefore, ye are of more value than many sparrows. + +10:32 Whosoever therefore shall confess me before men, him will I +confess also before my Father which is in heaven. + +10:33 But whosoever shall deny me before men, him will I also deny +before my Father which is in heaven. + +10:34 Think not that I am come to send peace on earth: I came not to +send peace, but a sword. + +10:35 For I am come to set a man at variance against his father, and +the daughter against her mother, and the daughter in law against her +mother in law. + +10:36 And a man's foes shall be they of his own household. + +10:37 He that loveth father or mother more than me is not worthy of +me: and he that loveth son or daughter more than me is not worthy of +me. + +10:38 And he that taketh not his cross, and followeth after me, is not +worthy of me. + +10:39 He that findeth his life shall lose it: and he that loseth his +life for my sake shall find it. + +10:40 He that receiveth you receiveth me, and he that receiveth me +receiveth him that sent me. + +10:41 He that receiveth a prophet in the name of a prophet shall +receive a prophet's reward; and he that receiveth a righteous man in +the name of a righteous man shall receive a righteous man's reward. + +10:42 And whosoever shall give to drink unto one of these little ones +a cup of cold water only in the name of a disciple, verily I say unto +you, he shall in no wise lose his reward. + +11:1 And it came to pass, when Jesus had made an end of commanding his +twelve disciples, he departed thence to teach and to preach in their +cities. + +11:2 Now when John had heard in the prison the works of Christ, he +sent two of his disciples, 11:3 And said unto him, Art thou he that +should come, or do we look for another? 11:4 Jesus answered and said +unto them, Go and shew John again those things which ye do hear and +see: 11:5 The blind receive their sight, and the lame walk, the lepers +are cleansed, and the deaf hear, the dead are raised up, and the poor +have the gospel preached to them. + +11:6 And blessed is he, whosoever shall not be offended in me. + +11:7 And as they departed, Jesus began to say unto the multitudes +concerning John, What went ye out into the wilderness to see? A reed +shaken with the wind? 11:8 But what went ye out for to see? A man +clothed in soft raiment? behold, they that wear soft clothing are in +kings' houses. + +11:9 But what went ye out for to see? A prophet? yea, I say unto you, +and more than a prophet. + +11:10 For this is he, of whom it is written, Behold, I send my +messenger before thy face, which shall prepare thy way before thee. + +11:11 Verily I say unto you, Among them that are born of women there +hath not risen a greater than John the Baptist: notwithstanding he +that is least in the kingdom of heaven is greater than he. + +11:12 And from the days of John the Baptist until now the kingdom of +heaven suffereth violence, and the violent take it by force. + +11:13 For all the prophets and the law prophesied until John. + +11:14 And if ye will receive it, this is Elias, which was for to come. + +11:15 He that hath ears to hear, let him hear. + +11:16 But whereunto shall I liken this generation? It is like unto +children sitting in the markets, and calling unto their fellows, 11:17 +And saying, We have piped unto you, and ye have not danced; we have +mourned unto you, and ye have not lamented. + +11:18 For John came neither eating nor drinking, and they say, He hath +a devil. + +11:19 The Son of man came eating and drinking, and they say, Behold a +man gluttonous, and a winebibber, a friend of publicans and sinners. +But wisdom is justified of her children. + +11:20 Then began he to upbraid the cities wherein most of his mighty +works were done, because they repented not: 11:21 Woe unto thee, +Chorazin! woe unto thee, Bethsaida! for if the mighty works, which +were done in you, had been done in Tyre and Sidon, they would have +repented long ago in sackcloth and ashes. + +11:22 But I say unto you, It shall be more tolerable for Tyre and +Sidon at the day of judgment, than for you. + +11:23 And thou, Capernaum, which art exalted unto heaven, shalt be +brought down to hell: for if the mighty works, which have been done in +thee, had been done in Sodom, it would have remained until this day. + +11:24 But I say unto you, That it shall be more tolerable for the land +of Sodom in the day of judgment, than for thee. + +11:25 At that time Jesus answered and said, I thank thee, O Father, +Lord of heaven and earth, because thou hast hid these things from the +wise and prudent, and hast revealed them unto babes. + +11:26 Even so, Father: for so it seemed good in thy sight. + +11:27 All things are delivered unto me of my Father: and no man +knoweth the Son, but the Father; neither knoweth any man the Father, +save the Son, and he to whomsoever the Son will reveal him. + +11:28 Come unto me, all ye that labour and are heavy laden, and I will +give you rest. + +11:29 Take my yoke upon you, and learn of me; for I am meek and lowly +in heart: and ye shall find rest unto your souls. + +11:30 For my yoke is easy, and my burden is light. + +12:1 At that time Jesus went on the sabbath day through the corn; and +his disciples were an hungred, and began to pluck the ears of corn and +to eat. + +12:2 But when the Pharisees saw it, they said unto him, Behold, thy +disciples do that which is not lawful to do upon the sabbath day. + +12:3 But he said unto them, Have ye not read what David did, when he +was an hungred, and they that were with him; 12:4 How he entered into +the house of God, and did eat the shewbread, which was not lawful for +him to eat, neither for them which were with him, but only for the +priests? 12:5 Or have ye not read in the law, how that on the sabbath +days the priests in the temple profane the sabbath, and are blameless? +12:6 But I say unto you, That in this place is one greater than the +temple. + +12:7 But if ye had known what this meaneth, I will have mercy, and not +sacrifice, ye would not have condemned the guiltless. + +12:8 For the Son of man is Lord even of the sabbath day. + +12:9 And when he was departed thence, he went into their synagogue: +12:10 And, behold, there was a man which had his hand withered. And +they asked him, saying, Is it lawful to heal on the sabbath days? that +they might accuse him. + +12:11 And he said unto them, What man shall there be among you, that +shall have one sheep, and if it fall into a pit on the sabbath day, +will he not lay hold on it, and lift it out? 12:12 How much then is a +man better than a sheep? Wherefore it is lawful to do well on the +sabbath days. + +12:13 Then saith he to the man, Stretch forth thine hand. And he +stretched it forth; and it was restored whole, like as the other. + +12:14 Then the Pharisees went out, and held a council against him, how +they might destroy him. + +12:15 But when Jesus knew it, he withdrew himself from thence: and +great multitudes followed him, and he healed them all; 12:16 And +charged them that they should not make him known: 12:17 That it might +be fulfilled which was spoken by Esaias the prophet, saying, 12:18 +Behold my servant, whom I have chosen; my beloved, in whom my soul is +well pleased: I will put my spirit upon him, and he shall shew +judgment to the Gentiles. + +12:19 He shall not strive, nor cry; neither shall any man hear his +voice in the streets. + +12:20 A bruised reed shall he not break, and smoking flax shall he not +quench, till he send forth judgment unto victory. + +12:21 And in his name shall the Gentiles trust. + +12:22 Then was brought unto him one possessed with a devil, blind, and +dumb: and he healed him, insomuch that the blind and dumb both spake +and saw. + +12:23 And all the people were amazed, and said, Is not this the son of +David? 12:24 But when the Pharisees heard it, they said, This fellow +doth not cast out devils, but by Beelzebub the prince of the devils. + +12:25 And Jesus knew their thoughts, and said unto them, Every kingdom +divided against itself is brought to desolation; and every city or +house divided against itself shall not stand: 12:26 And if Satan cast +out Satan, he is divided against himself; how shall then his kingdom +stand? 12:27 And if I by Beelzebub cast out devils, by whom do your +children cast them out? therefore they shall be your judges. + +12:28 But if I cast out devils by the Spirit of God, then the kingdom +of God is come unto you. + +12:29 Or else how can one enter into a strong man's house, and spoil +his goods, except he first bind the strong man? and then he will spoil +his house. + +12:30 He that is not with me is against me; and he that gathereth not +with me scattereth abroad. + +12:31 Wherefore I say unto you, All manner of sin and blasphemy shall +be forgiven unto men: but the blasphemy against the Holy Ghost shall +not be forgiven unto men. + +12:32 And whosoever speaketh a word against the Son of man, it shall +be forgiven him: but whosoever speaketh against the Holy Ghost, it +shall not be forgiven him, neither in this world, neither in the world +to come. + +12:33 Either make the tree good, and his fruit good; or else make the +tree corrupt, and his fruit corrupt: for the tree is known by his +fruit. + +12:34 O generation of vipers, how can ye, being evil, speak good +things? for out of the abundance of the heart the mouth speaketh. + +12:35 A good man out of the good treasure of the heart bringeth forth +good things: and an evil man out of the evil treasure bringeth forth +evil things. + +12:36 But I say unto you, That every idle word that men shall speak, +they shall give account thereof in the day of judgment. + +12:37 For by thy words thou shalt be justified, and by thy words thou +shalt be condemned. + +12:38 Then certain of the scribes and of the Pharisees answered, +saying, Master, we would see a sign from thee. + +12:39 But he answered and said unto them, An evil and adulterous +generation seeketh after a sign; and there shall no sign be given to +it, but the sign of the prophet Jonas: 12:40 For as Jonas was three +days and three nights in the whale's belly; so shall the Son of man be +three days and three nights in the heart of the earth. + +12:41 The men of Nineveh shall rise in judgment with this generation, +and shall condemn it: because they repented at the preaching of Jonas; +and, behold, a greater than Jonas is here. + +12:42 The queen of the south shall rise up in the judgment with this +generation, and shall condemn it: for she came from the uttermost +parts of the earth to hear the wisdom of Solomon; and, behold, a +greater than Solomon is here. + +12:43 When the unclean spirit is gone out of a man, he walketh through +dry places, seeking rest, and findeth none. + +12:44 Then he saith, I will return into my house from whence I came +out; and when he is come, he findeth it empty, swept, and garnished. + +12:45 Then goeth he, and taketh with himself seven other spirits more +wicked than himself, and they enter in and dwell there: and the last +state of that man is worse than the first. Even so shall it be also +unto this wicked generation. + +12:46 While he yet talked to the people, behold, his mother and his +brethren stood without, desiring to speak with him. + +12:47 Then one said unto him, Behold, thy mother and thy brethren +stand without, desiring to speak with thee. + +12:48 But he answered and said unto him that told him, Who is my +mother? and who are my brethren? 12:49 And he stretched forth his +hand toward his disciples, and said, Behold my mother and my brethren! +12:50 For whosoever shall do the will of my Father which is in heaven, +the same is my brother, and sister, and mother. + +13:1 The same day went Jesus out of the house, and sat by the sea +side. + +13:2 And great multitudes were gathered together unto him, so that he +went into a ship, and sat; and the whole multitude stood on the shore. + +13:3 And he spake many things unto them in parables, saying, Behold, a +sower went forth to sow; 13:4 And when he sowed, some seeds fell by +the way side, and the fowls came and devoured them up: 13:5 Some fell +upon stony places, where they had not much earth: and forthwith they +sprung up, because they had no deepness of earth: 13:6 And when the +sun was up, they were scorched; and because they had no root, they +withered away. + +13:7 And some fell among thorns; and the thorns sprung up, and choked +them: 13:8 But other fell into good ground, and brought forth fruit, +some an hundredfold, some sixtyfold, some thirtyfold. + +13:9 Who hath ears to hear, let him hear. + +13:10 And the disciples came, and said unto him, Why speakest thou +unto them in parables? 13:11 He answered and said unto them, Because +it is given unto you to know the mysteries of the kingdom of heaven, +but to them it is not given. + +13:12 For whosoever hath, to him shall be given, and he shall have +more abundance: but whosoever hath not, from him shall be taken away +even that he hath. + +13:13 Therefore speak I to them in parables: because they seeing see +not; and hearing they hear not, neither do they understand. + +13:14 And in them is fulfilled the prophecy of Esaias, which saith, By +hearing ye shall hear, and shall not understand; and seeing ye shall +see, and shall not perceive: 13:15 For this people's heart is waxed +gross, and their ears are dull of hearing, and their eyes they have +closed; lest at any time they should see with their eyes and hear with +their ears, and should understand with their heart, and should be +converted, and I should heal them. + +13:16 But blessed are your eyes, for they see: and your ears, for they +hear. + +13:17 For verily I say unto you, That many prophets and righteous men +have desired to see those things which ye see, and have not seen them; +and to hear those things which ye hear, and have not heard them. + +13:18 Hear ye therefore the parable of the sower. + +13:19 When any one heareth the word of the kingdom, and understandeth +it not, then cometh the wicked one, and catcheth away that which was +sown in his heart. This is he which received seed by the way side. + +13:20 But he that received the seed into stony places, the same is he +that heareth the word, and anon with joy receiveth it; 13:21 Yet hath +he not root in himself, but dureth for a while: for when tribulation +or persecution ariseth because of the word, by and by he is offended. + +13:22 He also that received seed among the thorns is he that heareth +the word; and the care of this world, and the deceitfulness of riches, +choke the word, and he becometh unfruitful. + +13:23 But he that received seed into the good ground is he that +heareth the word, and understandeth it; which also beareth fruit, and +bringeth forth, some an hundredfold, some sixty, some thirty. + +13:24 Another parable put he forth unto them, saying, The kingdom of +heaven is likened unto a man which sowed good seed in his field: 13:25 +But while men slept, his enemy came and sowed tares among the wheat, +and went his way. + +13:26 But when the blade was sprung up, and brought forth fruit, then +appeared the tares also. + +13:27 So the servants of the householder came and said unto him, Sir, +didst not thou sow good seed in thy field? from whence then hath it +tares? 13:28 He said unto them, An enemy hath done this. The servants +said unto him, Wilt thou then that we go and gather them up? 13:29 +But he said, Nay; lest while ye gather up the tares, ye root up also +the wheat with them. + +13:30 Let both grow together until the harvest: and in the time of +harvest I will say to the reapers, Gather ye together first the tares, +and bind them in bundles to burn them: but gather the wheat into my +barn. + +13:31 Another parable put he forth unto them, saying, The kingdom of +heaven is like to a grain of mustard seed, which a man took, and sowed +in his field: 13:32 Which indeed is the least of all seeds: but when +it is grown, it is the greatest among herbs, and becometh a tree, so +that the birds of the air come and lodge in the branches thereof. + +13:33 Another parable spake he unto them; The kingdom of heaven is +like unto leaven, which a woman took, and hid in three measures of +meal, till the whole was leavened. + +13:34 All these things spake Jesus unto the multitude in parables; and +without a parable spake he not unto them: 13:35 That it might be +fulfilled which was spoken by the prophet, saying, I will open my +mouth in parables; I will utter things which have been kept secret +from the foundation of the world. + +13:36 Then Jesus sent the multitude away, and went into the house: and +his disciples came unto him, saying, Declare unto us the parable of +the tares of the field. + +13:37 He answered and said unto them, He that soweth the good seed is +the Son of man; 13:38 The field is the world; the good seed are the +children of the kingdom; but the tares are the children of the wicked +one; 13:39 The enemy that sowed them is the devil; the harvest is the +end of the world; and the reapers are the angels. + +13:40 As therefore the tares are gathered and burned in the fire; so +shall it be in the end of this world. + +13:41 The Son of man shall send forth his angels, and they shall +gather out of his kingdom all things that offend, and them which do +iniquity; 13:42 And shall cast them into a furnace of fire: there +shall be wailing and gnashing of teeth. + +13:43 Then shall the righteous shine forth as the sun in the kingdom +of their Father. Who hath ears to hear, let him hear. + +13:44 Again, the kingdom of heaven is like unto treasure hid in a +field; the which when a man hath found, he hideth, and for joy thereof +goeth and selleth all that he hath, and buyeth that field. + +13:45 Again, the kingdom of heaven is like unto a merchant man, +seeking goodly pearls: 13:46 Who, when he had found one pearl of great +price, went and sold all that he had, and bought it. + +13:47 Again, the kingdom of heaven is like unto a net, that was cast +into the sea, and gathered of every kind: 13:48 Which, when it was +full, they drew to shore, and sat down, and gathered the good into +vessels, but cast the bad away. + +13:49 So shall it be at the end of the world: the angels shall come +forth, and sever the wicked from among the just, 13:50 And shall cast +them into the furnace of fire: there shall be wailing and gnashing of +teeth. + +13:51 Jesus saith unto them, Have ye understood all these things? They +say unto him, Yea, Lord. + +13:52 Then said he unto them, Therefore every scribe which is +instructed unto the kingdom of heaven is like unto a man that is an +householder, which bringeth forth out of his treasure things new and +old. + +13:53 And it came to pass, that when Jesus had finished these +parables, he departed thence. + +13:54 And when he was come into his own country, he taught them in +their synagogue, insomuch that they were astonished, and said, Whence +hath this man this wisdom, and these mighty works? 13:55 Is not this +the carpenter's son? is not his mother called Mary? and his brethren, +James, and Joses, and Simon, and Judas? 13:56 And his sisters, are +they not all with us? Whence then hath this man all these things? +13:57 And they were offended in him. But Jesus said unto them, A +prophet is not without honour, save in his own country, and in his own +house. + +13:58 And he did not many mighty works there because of their +unbelief. + +14:1 At that time Herod the tetrarch heard of the fame of Jesus, 14:2 +And said unto his servants, This is John the Baptist; he is risen from +the dead; and therefore mighty works do shew forth themselves in him. + +14:3 For Herod had laid hold on John, and bound him, and put him in +prison for Herodias' sake, his brother Philip's wife. + +14:4 For John said unto him, It is not lawful for thee to have her. + +14:5 And when he would have put him to death, he feared the multitude, +because they counted him as a prophet. + +14:6 But when Herod's birthday was kept, the daughter of Herodias +danced before them, and pleased Herod. + +14:7 Whereupon he promised with an oath to give her whatsoever she +would ask. + +14:8 And she, being before instructed of her mother, said, Give me +here John Baptist's head in a charger. + +14:9 And the king was sorry: nevertheless for the oath's sake, and +them which sat with him at meat, he commanded it to be given her. + +14:10 And he sent, and beheaded John in the prison. + +14:11 And his head was brought in a charger, and given to the damsel: +and she brought it to her mother. + +14:12 And his disciples came, and took up the body, and buried it, and +went and told Jesus. + +14:13 When Jesus heard of it, he departed thence by ship into a desert +place apart: and when the people had heard thereof, they followed him +on foot out of the cities. + +14:14 And Jesus went forth, and saw a great multitude, and was moved +with compassion toward them, and he healed their sick. + +14:15 And when it was evening, his disciples came to him, saying, This +is a desert place, and the time is now past; send the multitude away, +that they may go into the villages, and buy themselves victuals. + +14:16 But Jesus said unto them, They need not depart; give ye them to +eat. + +14:17 And they say unto him, We have here but five loaves, and two +fishes. + +14:18 He said, Bring them hither to me. + +14:19 And he commanded the multitude to sit down on the grass, and +took the five loaves, and the two fishes, and looking up to heaven, he +blessed, and brake, and gave the loaves to his disciples, and the +disciples to the multitude. + +14:20 And they did all eat, and were filled: and they took up of the +fragments that remained twelve baskets full. + +14:21 And they that had eaten were about five thousand men, beside +women and children. + +14:22 And straightway Jesus constrained his disciples to get into a +ship, and to go before him unto the other side, while he sent the +multitudes away. + +14:23 And when he had sent the multitudes away, he went up into a +mountain apart to pray: and when the evening was come, he was there +alone. + +14:24 But the ship was now in the midst of the sea, tossed with waves: +for the wind was contrary. + +14:25 And in the fourth watch of the night Jesus went unto them, +walking on the sea. + +14:26 And when the disciples saw him walking on the sea, they were +troubled, saying, It is a spirit; and they cried out for fear. + +14:27 But straightway Jesus spake unto them, saying, Be of good cheer; +it is I; be not afraid. + +14:28 And Peter answered him and said, Lord, if it be thou, bid me +come unto thee on the water. + +14:29 And he said, Come. And when Peter was come down out of the ship, +he walked on the water, to go to Jesus. + +14:30 But when he saw the wind boisterous, he was afraid; and +beginning to sink, he cried, saying, Lord, save me. + +14:31 And immediately Jesus stretched forth his hand, and caught him, +and said unto him, O thou of little faith, wherefore didst thou doubt? +14:32 And when they were come into the ship, the wind ceased. + +14:33 Then they that were in the ship came and worshipped him, saying, +Of a truth thou art the Son of God. + +14:34 And when they were gone over, they came into the land of +Gennesaret. + +14:35 And when the men of that place had knowledge of him, they sent +out into all that country round about, and brought unto him all that +were diseased; 14:36 And besought him that they might only touch the +hem of his garment: and as many as touched were made perfectly whole. + +15:1 Then came to Jesus scribes and Pharisees, which were of +Jerusalem, saying, 15:2 Why do thy disciples transgress the tradition +of the elders? for they wash not their hands when they eat bread. + +15:3 But he answered and said unto them, Why do ye also transgress the +commandment of God by your tradition? 15:4 For God commanded, saying, +Honour thy father and mother: and, He that curseth father or mother, +let him die the death. + +15:5 But ye say, Whosoever shall say to his father or his mother, It +is a gift, by whatsoever thou mightest be profited by me; 15:6 And +honour not his father or his mother, he shall be free. Thus have ye +made the commandment of God of none effect by your tradition. + +15:7 Ye hypocrites, well did Esaias prophesy of you, saying, 15:8 This +people draweth nigh unto me with their mouth, and honoureth me with +their lips; but their heart is far from me. + +15:9 But in vain they do worship me, teaching for doctrines the +commandments of men. + +15:10 And he called the multitude, and said unto them, Hear, and +understand: 15:11 Not that which goeth into the mouth defileth a man; +but that which cometh out of the mouth, this defileth a man. + +15:12 Then came his disciples, and said unto him, Knowest thou that +the Pharisees were offended, after they heard this saying? 15:13 But +he answered and said, Every plant, which my heavenly Father hath not +planted, shall be rooted up. + +15:14 Let them alone: they be blind leaders of the blind. And if the +blind lead the blind, both shall fall into the ditch. + +15:15 Then answered Peter and said unto him, Declare unto us this +parable. + +15:16 And Jesus said, Are ye also yet without understanding? 15:17 Do +not ye yet understand, that whatsoever entereth in at the mouth goeth +into the belly, and is cast out into the draught? 15:18 But those +things which proceed out of the mouth come forth from the heart; and +they defile the man. + +15:19 For out of the heart proceed evil thoughts, murders, adulteries, +fornications, thefts, false witness, blasphemies: 15:20 These are the +things which defile a man: but to eat with unwashen hands defileth not +a man. + +15:21 Then Jesus went thence, and departed into the coasts of Tyre and +Sidon. + +15:22 And, behold, a woman of Canaan came out of the same coasts, and +cried unto him, saying, Have mercy on me, O Lord, thou son of David; +my daughter is grievously vexed with a devil. + +15:23 But he answered her not a word. And his disciples came and +besought him, saying, Send her away; for she crieth after us. + +15:24 But he answered and said, I am not sent but unto the lost sheep +of the house of Israel. + +15:25 Then came she and worshipped him, saying, Lord, help me. + +15:26 But he answered and said, It is not meet to take the children's +bread, and to cast it to dogs. + +15:27 And she said, Truth, Lord: yet the dogs eat of the crumbs which +fall from their masters' table. + +15:28 Then Jesus answered and said unto her, O woman, great is thy +faith: be it unto thee even as thou wilt. And her daughter was made +whole from that very hour. + +15:29 And Jesus departed from thence, and came nigh unto the sea of +Galilee; and went up into a mountain, and sat down there. + +15:30 And great multitudes came unto him, having with them those that +were lame, blind, dumb, maimed, and many others, and cast them down at +Jesus' feet; and he healed them: 15:31 Insomuch that the multitude +wondered, when they saw the dumb to speak, the maimed to be whole, the +lame to walk, and the blind to see: and they glorified the God of +Israel. + +15:32 Then Jesus called his disciples unto him, and said, I have +compassion on the multitude, because they continue with me now three +days, and have nothing to eat: and I will not send them away fasting, +lest they faint in the way. + +15:33 And his disciples say unto him, Whence should we have so much +bread in the wilderness, as to fill so great a multitude? 15:34 And +Jesus saith unto them, How many loaves have ye? And they said, Seven, +and a few little fishes. + +15:35 And he commanded the multitude to sit down on the ground. + +15:36 And he took the seven loaves and the fishes, and gave thanks, +and brake them, and gave to his disciples, and the disciples to the +multitude. + +15:37 And they did all eat, and were filled: and they took up of the +broken meat that was left seven baskets full. + +15:38 And they that did eat were four thousand men, beside women and +children. + +15:39 And he sent away the multitude, and took ship, and came into the +coasts of Magdala. + +16:1 The Pharisees also with the Sadducees came, and tempting desired +him that he would shew them a sign from heaven. + +16:2 He answered and said unto them, When it is evening, ye say, It +will be fair weather: for the sky is red. + +16:3 And in the morning, It will be foul weather to day: for the sky +is red and lowering. O ye hypocrites, ye can discern the face of the +sky; but can ye not discern the signs of the times? 16:4 A wicked and +adulterous generation seeketh after a sign; and there shall no sign be +given unto it, but the sign of the prophet Jonas. And he left them, +and departed. + +16:5 And when his disciples were come to the other side, they had +forgotten to take bread. + +16:6 Then Jesus said unto them, Take heed and beware of the leaven of +the Pharisees and of the Sadducees. + +16:7 And they reasoned among themselves, saying, It is because we have +taken no bread. + +16:8 Which when Jesus perceived, he said unto them, O ye of little +faith, why reason ye among yourselves, because ye have brought no +bread? 16:9 Do ye not yet understand, neither remember the five +loaves of the five thousand, and how many baskets ye took up? 16:10 +Neither the seven loaves of the four thousand, and how many baskets ye +took up? 16:11 How is it that ye do not understand that I spake it +not to you concerning bread, that ye should beware of the leaven of +the Pharisees and of the Sadducees? 16:12 Then understood they how +that he bade them not beware of the leaven of bread, but of the +doctrine of the Pharisees and of the Sadducees. + +16:13 When Jesus came into the coasts of Caesarea Philippi, he asked +his disciples, saying, Whom do men say that I the Son of man am? +16:14 And they said, Some say that thou art John the Baptist: some, +Elias; and others, Jeremias, or one of the prophets. + +16:15 He saith unto them, But whom say ye that I am? 16:16 And Simon +Peter answered and said, Thou art the Christ, the Son of the living +God. + +16:17 And Jesus answered and said unto him, Blessed art thou, Simon +Barjona: for flesh and blood hath not revealed it unto thee, but my +Father which is in heaven. + +16:18 And I say also unto thee, That thou art Peter, and upon this +rock I will build my church; and the gates of hell shall not prevail +against it. + +16:19 And I will give unto thee the keys of the kingdom of heaven: and +whatsoever thou shalt bind on earth shall be bound in heaven: and +whatsoever thou shalt loose on earth shall be loosed in heaven. + +16:20 Then charged he his disciples that they should tell no man that +he was Jesus the Christ. + +16:21 From that time forth began Jesus to shew unto his disciples, how +that he must go unto Jerusalem, and suffer many things of the elders +and chief priests and scribes, and be killed, and be raised again the +third day. + +16:22 Then Peter took him, and began to rebuke him, saying, Be it far +from thee, Lord: this shall not be unto thee. + +16:23 But he turned, and said unto Peter, Get thee behind me, Satan: +thou art an offence unto me: for thou savourest not the things that be +of God, but those that be of men. + +16:24 Then said Jesus unto his disciples, If any man will come after +me, let him deny himself, and take up his cross, and follow me. + +16:25 For whosoever will save his life shall lose it: and whosoever +will lose his life for my sake shall find it. + +16:26 For what is a man profited, if he shall gain the whole world, +and lose his own soul? or what shall a man give in exchange for his +soul? 16:27 For the Son of man shall come in the glory of his Father +with his angels; and then he shall reward every man according to his +works. + +16:28 Verily I say unto you, There be some standing here, which shall +not taste of death, till they see the Son of man coming in his +kingdom. + +17:1 And after six days Jesus taketh Peter, James, and John his +brother, and bringeth them up into an high mountain apart, 17:2 And +was transfigured before them: and his face did shine as the sun, and +his raiment was white as the light. + +17:3 And, behold, there appeared unto them Moses and Elias talking +with him. + +17:4 Then answered Peter, and said unto Jesus, Lord, it is good for us +to be here: if thou wilt, let us make here three tabernacles; one for +thee, and one for Moses, and one for Elias. + +17:5 While he yet spake, behold, a bright cloud overshadowed them: and +behold a voice out of the cloud, which said, This is my beloved Son, +in whom I am well pleased; hear ye him. + +17:6 And when the disciples heard it, they fell on their face, and +were sore afraid. + +17:7 And Jesus came and touched them, and said, Arise, and be not +afraid. + +17:8 And when they had lifted up their eyes, they saw no man, save +Jesus only. + +17:9 And as they came down from the mountain, Jesus charged them, +saying, Tell the vision to no man, until the Son of man be risen again +from the dead. + +17:10 And his disciples asked him, saying, Why then say the scribes +that Elias must first come? 17:11 And Jesus answered and said unto +them, Elias truly shall first come, and restore all things. + +17:12 But I say unto you, That Elias is come already, and they knew +him not, but have done unto him whatsoever they listed. Likewise shall +also the Son of man suffer of them. + +17:13 Then the disciples understood that he spake unto them of John +the Baptist. + +17:14 And when they were come to the multitude, there came to him a +certain man, kneeling down to him, and saying, 17:15 Lord, have mercy +on my son: for he is lunatick, and sore vexed: for ofttimes he falleth +into the fire, and oft into the water. + +17:16 And I brought him to thy disciples, and they could not cure him. + +17:17 Then Jesus answered and said, O faithless and perverse +generation, how long shall I be with you? how long shall I suffer you? +bring him hither to me. + +17:18 And Jesus rebuked the devil; and he departed out of him: and the +child was cured from that very hour. + +17:19 Then came the disciples to Jesus apart, and said, Why could not +we cast him out? 17:20 And Jesus said unto them, Because of your +unbelief: for verily I say unto you, If ye have faith as a grain of +mustard seed, ye shall say unto this mountain, Remove hence to yonder +place; and it shall remove; and nothing shall be impossible unto you. + +17:21 Howbeit this kind goeth not out but by prayer and fasting. + +17:22 And while they abode in Galilee, Jesus said unto them, The Son +of man shall be betrayed into the hands of men: 17:23 And they shall +kill him, and the third day he shall be raised again. + +And they were exceeding sorry. + +17:24 And when they were come to Capernaum, they that received tribute +money came to Peter, and said, Doth not your master pay tribute? +17:25 He saith, Yes. And when he was come into the house, Jesus +prevented him, saying, What thinkest thou, Simon? of whom do the kings +of the earth take custom or tribute? of their own children, or of +strangers? 17:26 Peter saith unto him, Of strangers. Jesus saith unto +him, Then are the children free. + +17:27 Notwithstanding, lest we should offend them, go thou to the sea, +and cast an hook, and take up the fish that first cometh up; and when +thou hast opened his mouth, thou shalt find a piece of money: that +take, and give unto them for me and thee. + +18:1 At the same time came the disciples unto Jesus, saying, Who is +the greatest in the kingdom of heaven? 18:2 And Jesus called a little +child unto him, and set him in the midst of them, 18:3 And said, +Verily I say unto you, Except ye be converted, and become as little +children, ye shall not enter into the kingdom of heaven. + +18:4 Whosoever therefore shall humble himself as this little child, +the same is greatest in the kingdom of heaven. + +18:5 And whoso shall receive one such little child in my name +receiveth me. + +18:6 But whoso shall offend one of these little ones which believe in +me, it were better for him that a millstone were hanged about his +neck, and that he were drowned in the depth of the sea. + +18:7 Woe unto the world because of offences! for it must needs be that +offences come; but woe to that man by whom the offence cometh! 18:8 +Wherefore if thy hand or thy foot offend thee, cut them off, and cast +them from thee: it is better for thee to enter into life halt or +maimed, rather than having two hands or two feet to be cast into +everlasting fire. + +18:9 And if thine eye offend thee, pluck it out, and cast it from +thee: it is better for thee to enter into life with one eye, rather +than having two eyes to be cast into hell fire. + +18:10 Take heed that ye despise not one of these little ones; for I +say unto you, That in heaven their angels do always behold the face of +my Father which is in heaven. + +18:11 For the Son of man is come to save that which was lost. + +18:12 How think ye? if a man have an hundred sheep, and one of them be +gone astray, doth he not leave the ninety and nine, and goeth into the +mountains, and seeketh that which is gone astray? 18:13 And if so be +that he find it, verily I say unto you, he rejoiceth more of that +sheep, than of the ninety and nine which went not astray. + +18:14 Even so it is not the will of your Father which is in heaven, +that one of these little ones should perish. + +18:15 Moreover if thy brother shall trespass against thee, go and tell +him his fault between thee and him alone: if he shall hear thee, thou +hast gained thy brother. + +18:16 But if he will not hear thee, then take with thee one or two +more, that in the mouth of two or three witnesses every word may be +established. + +18:17 And if he shall neglect to hear them, tell it unto the church: +but if he neglect to hear the church, let him be unto thee as an +heathen man and a publican. + +18:18 Verily I say unto you, Whatsoever ye shall bind on earth shall +be bound in heaven: and whatsoever ye shall loose on earth shall be +loosed in heaven. + +18:19 Again I say unto you, That if two of you shall agree on earth as +touching any thing that they shall ask, it shall be done for them of +my Father which is in heaven. + +18:20 For where two or three are gathered together in my name, there +am I in the midst of them. + +18:21 Then came Peter to him, and said, Lord, how oft shall my brother +sin against me, and I forgive him? till seven times? 18:22 Jesus +saith unto him, I say not unto thee, Until seven times: but, Until +seventy times seven. + +18:23 Therefore is the kingdom of heaven likened unto a certain king, +which would take account of his servants. + +18:24 And when he had begun to reckon, one was brought unto him, which +owed him ten thousand talents. + +18:25 But forasmuch as he had not to pay, his lord commanded him to be +sold, and his wife, and children, and all that he had, and payment to +be made. + +18:26 The servant therefore fell down, and worshipped him, saying, +Lord, have patience with me, and I will pay thee all. + +18:27 Then the lord of that servant was moved with compassion, and +loosed him, and forgave him the debt. + +18:28 But the same servant went out, and found one of his +fellowservants, which owed him an hundred pence: and he laid hands on +him, and took him by the throat, saying, Pay me that thou owest. + +18:29 And his fellowservant fell down at his feet, and besought him, +saying, Have patience with me, and I will pay thee all. + +18:30 And he would not: but went and cast him into prison, till he +should pay the debt. + +18:31 So when his fellowservants saw what was done, they were very +sorry, and came and told unto their lord all that was done. + +18:32 Then his lord, after that he had called him, said unto him, O +thou wicked servant, I forgave thee all that debt, because thou +desiredst me: 18:33 Shouldest not thou also have had compassion on thy +fellowservant, even as I had pity on thee? 18:34 And his lord was +wroth, and delivered him to the tormentors, till he should pay all +that was due unto him. + +18:35 So likewise shall my heavenly Father do also unto you, if ye +from your hearts forgive not every one his brother their trespasses. + +19:1 And it came to pass, that when Jesus had finished these sayings, +he departed from Galilee, and came into the coasts of Judaea beyond +Jordan; 19:2 And great multitudes followed him; and he healed them +there. + +19:3 The Pharisees also came unto him, tempting him, and saying unto +him, Is it lawful for a man to put away his wife for every cause? +19:4 And he answered and said unto them, Have ye not read, that he +which made them at the beginning made them male and female, 19:5 And +said, For this cause shall a man leave father and mother, and shall +cleave to his wife: and they twain shall be one flesh? 19:6 Wherefore +they are no more twain, but one flesh. What therefore God hath joined +together, let not man put asunder. + +19:7 They say unto him, Why did Moses then command to give a writing +of divorcement, and to put her away? 19:8 He saith unto them, Moses +because of the hardness of your hearts suffered you to put away your +wives: but from the beginning it was not so. + +19:9 And I say unto you, Whosoever shall put away his wife, except it +be for fornication, and shall marry another, committeth adultery: and +whoso marrieth her which is put away doth commit adultery. + +19:10 His disciples say unto him, If the case of the man be so with +his wife, it is not good to marry. + +19:11 But he said unto them, All men cannot receive this saying, save +they to whom it is given. + +19:12 For there are some eunuchs, which were so born from their +mother's womb: and there are some eunuchs, which were made eunuchs of +men: and there be eunuchs, which have made themselves eunuchs for the +kingdom of heaven's sake. He that is able to receive it, let him +receive it. + +19:13 Then were there brought unto him little children, that he should +put his hands on them, and pray: and the disciples rebuked them. + +19:14 But Jesus said, Suffer little children, and forbid them not, to +come unto me: for of such is the kingdom of heaven. + +19:15 And he laid his hands on them, and departed thence. + +19:16 And, behold, one came and said unto him, Good Master, what good +thing shall I do, that I may have eternal life? 19:17 And he said +unto him, Why callest thou me good? there is none good but one, that +is, God: but if thou wilt enter into life, keep the commandments. + +19:18 He saith unto him, Which? Jesus said, Thou shalt do no murder, +Thou shalt not commit adultery, Thou shalt not steal, Thou shalt not +bear false witness, 19:19 Honour thy father and thy mother: and, Thou +shalt love thy neighbour as thyself. + +19:20 The young man saith unto him, All these things have I kept from +my youth up: what lack I yet? 19:21 Jesus said unto him, If thou wilt +be perfect, go and sell that thou hast, and give to the poor, and thou +shalt have treasure in heaven: and come and follow me. + +19:22 But when the young man heard that saying, he went away +sorrowful: for he had great possessions. + +19:23 Then said Jesus unto his disciples, Verily I say unto you, That +a rich man shall hardly enter into the kingdom of heaven. + +19:24 And again I say unto you, It is easier for a camel to go through +the eye of a needle, than for a rich man to enter into the kingdom of +God. + +19:25 When his disciples heard it, they were exceedingly amazed, +saying, Who then can be saved? 19:26 But Jesus beheld them, and said +unto them, With men this is impossible; but with God all things are +possible. + +19:27 Then answered Peter and said unto him, Behold, we have forsaken +all, and followed thee; what shall we have therefore? 19:28 And Jesus +said unto them, Verily I say unto you, That ye which have followed me, +in the regeneration when the Son of man shall sit in the throne of his +glory, ye also shall sit upon twelve thrones, judging the twelve +tribes of Israel. + +19:29 And every one that hath forsaken houses, or brethren, or +sisters, or father, or mother, or wife, or children, or lands, for my +name's sake, shall receive an hundredfold, and shall inherit +everlasting life. + +19:30 But many that are first shall be last; and the last shall be +first. + +20:1 For the kingdom of heaven is like unto a man that is an +householder, which went out early in the morning to hire labourers +into his vineyard. + +20:2 And when he had agreed with the labourers for a penny a day, he +sent them into his vineyard. + +20:3 And he went out about the third hour, and saw others standing +idle in the marketplace, 20:4 And said unto them; Go ye also into the +vineyard, and whatsoever is right I will give you. And they went their +way. + +20:5 Again he went out about the sixth and ninth hour, and did +likewise. + +20:6 And about the eleventh hour he went out, and found others +standing idle, and saith unto them, Why stand ye here all the day +idle? 20:7 They say unto him, Because no man hath hired us. He saith +unto them, Go ye also into the vineyard; and whatsoever is right, that +shall ye receive. + +20:8 So when even was come, the lord of the vineyard saith unto his +steward, Call the labourers, and give them their hire, beginning from +the last unto the first. + +20:9 And when they came that were hired about the eleventh hour, they +received every man a penny. + +20:10 But when the first came, they supposed that they should have +received more; and they likewise received every man a penny. + +20:11 And when they had received it, they murmured against the goodman +of the house, 20:12 Saying, These last have wrought but one hour, and +thou hast made them equal unto us, which have borne the burden and +heat of the day. + +20:13 But he answered one of them, and said, Friend, I do thee no +wrong: didst not thou agree with me for a penny? 20:14 Take that +thine is, and go thy way: I will give unto this last, even as unto +thee. + +20:15 Is it not lawful for me to do what I will with mine own? Is +thine eye evil, because I am good? 20:16 So the last shall be first, +and the first last: for many be called, but few chosen. + +20:17 And Jesus going up to Jerusalem took the twelve disciples apart +in the way, and said unto them, 20:18 Behold, we go up to Jerusalem; +and the Son of man shall be betrayed unto the chief priests and unto +the scribes, and they shall condemn him to death, 20:19 And shall +deliver him to the Gentiles to mock, and to scourge, and to crucify +him: and the third day he shall rise again. + +20:20 Then came to him the mother of Zebedees children with her sons, +worshipping him, and desiring a certain thing of him. + +20:21 And he said unto her, What wilt thou? She saith unto him, Grant +that these my two sons may sit, the one on thy right hand, and the +other on the left, in thy kingdom. + +20:22 But Jesus answered and said, Ye know not what ye ask. Are ye +able to drink of the cup that I shall drink of, and to be baptized +with the baptism that I am baptized with? They say unto him, We are +able. + +20:23 And he saith unto them, Ye shall drink indeed of my cup, and be +baptized with the baptism that I am baptized with: but to sit on my +right hand, and on my left, is not mine to give, but it shall be given +to them for whom it is prepared of my Father. + +20:24 And when the ten heard it, they were moved with indignation +against the two brethren. + +20:25 But Jesus called them unto him, and said, Ye know that the +princes of the Gentiles exercise dominion over them, and they that are +great exercise authority upon them. + +20:26 But it shall not be so among you: but whosoever will be great +among you, let him be your minister; 20:27 And whosoever will be chief +among you, let him be your servant: 20:28 Even as the Son of man came +not to be ministered unto, but to minister, and to give his life a +ransom for many. + +20:29 And as they departed from Jericho, a great multitude followed +him. + +20:30 And, behold, two blind men sitting by the way side, when they +heard that Jesus passed by, cried out, saying, Have mercy on us, O +Lord, thou son of David. + +20:31 And the multitude rebuked them, because they should hold their +peace: but they cried the more, saying, Have mercy on us, O Lord, thou +son of David. + +20:32 And Jesus stood still, and called them, and said, What will ye +that I shall do unto you? 20:33 They say unto him, Lord, that our +eyes may be opened. + +20:34 So Jesus had compassion on them, and touched their eyes: and +immediately their eyes received sight, and they followed him. + +21:1 And when they drew nigh unto Jerusalem, and were come to +Bethphage, unto the mount of Olives, then sent Jesus two disciples, +21:2 Saying unto them, Go into the village over against you, and +straightway ye shall find an ass tied, and a colt with her: loose +them, and bring them unto me. + +21:3 And if any man say ought unto you, ye shall say, The Lord hath +need of them; and straightway he will send them. + +21:4 All this was done, that it might be fulfilled which was spoken by +the prophet, saying, 21:5 Tell ye the daughter of Sion, Behold, thy +King cometh unto thee, meek, and sitting upon an ass, and a colt the +foal of an ass. + +21:6 And the disciples went, and did as Jesus commanded them, 21:7 And +brought the ass, and the colt, and put on them their clothes, and they +set him thereon. + +21:8 And a very great multitude spread their garments in the way; +others cut down branches from the trees, and strawed them in the way. + +21:9 And the multitudes that went before, and that followed, cried, +saying, Hosanna to the son of David: Blessed is he that cometh in the +name of the Lord; Hosanna in the highest. + +21:10 And when he was come into Jerusalem, all the city was moved, +saying, Who is this? 21:11 And the multitude said, This is Jesus the +prophet of Nazareth of Galilee. + +21:12 And Jesus went into the temple of God, and cast out all them +that sold and bought in the temple, and overthrew the tables of the +moneychangers, and the seats of them that sold doves, 21:13 And said +unto them, It is written, My house shall be called the house of +prayer; but ye have made it a den of thieves. + +21:14 And the blind and the lame came to him in the temple; and he +healed them. + +21:15 And when the chief priests and scribes saw the wonderful things +that he did, and the children crying in the temple, and saying, +Hosanna to the son of David; they were sore displeased, 21:16 And said +unto him, Hearest thou what these say? And Jesus saith unto them, Yea; +have ye never read, Out of the mouth of babes and sucklings thou hast +perfected praise? 21:17 And he left them, and went out of the city +into Bethany; and he lodged there. + +21:18 Now in the morning as he returned into the city, he hungered. + +21:19 And when he saw a fig tree in the way, he came to it, and found +nothing thereon, but leaves only, and said unto it, Let no fruit grow +on thee henceforward for ever. And presently the fig tree withered +away. + +21:20 And when the disciples saw it, they marvelled, saying, How soon +is the fig tree withered away! 21:21 Jesus answered and said unto +them, Verily I say unto you, If ye have faith, and doubt not, ye shall +not only do this which is done to the fig tree, but also if ye shall +say unto this mountain, Be thou removed, and be thou cast into the +sea; it shall be done. + +21:22 And all things, whatsoever ye shall ask in prayer, believing, ye +shall receive. + +21:23 And when he was come into the temple, the chief priests and the +elders of the people came unto him as he was teaching, and said, By +what authority doest thou these things? and who gave thee this +authority? 21:24 And Jesus answered and said unto them, I also will +ask you one thing, which if ye tell me, I in like wise will tell you +by what authority I do these things. + +21:25 The baptism of John, whence was it? from heaven, or of men? And +they reasoned with themselves, saying, If we shall say, From heaven; +he will say unto us, Why did ye not then believe him? 21:26 But if we +shall say, Of men; we fear the people; for all hold John as a prophet. + +21:27 And they answered Jesus, and said, We cannot tell. And he said +unto them, Neither tell I you by what authority I do these things. + +21:28 But what think ye? A certain man had two sons; and he came to +the first, and said, Son, go work to day in my vineyard. + +21:29 He answered and said, I will not: but afterward he repented, and +went. + +21:30 And he came to the second, and said likewise. And he answered +and said, I go, sir: and went not. + +21:31 Whether of them twain did the will of his father? They say unto +him, The first. Jesus saith unto them, Verily I say unto you, That the +publicans and the harlots go into the kingdom of God before you. + +21:32 For John came unto you in the way of righteousness, and ye +believed him not: but the publicans and the harlots believed him: and +ye, when ye had seen it, repented not afterward, that ye might believe +him. + +21:33 Hear another parable: There was a certain householder, which +planted a vineyard, and hedged it round about, and digged a winepress +in it, and built a tower, and let it out to husbandmen, and went into +a far country: 21:34 And when the time of the fruit drew near, he sent +his servants to the husbandmen, that they might receive the fruits of +it. + +21:35 And the husbandmen took his servants, and beat one, and killed +another, and stoned another. + +21:36 Again, he sent other servants more than the first: and they did +unto them likewise. + +21:37 But last of all he sent unto them his son, saying, They will +reverence my son. + +21:38 But when the husbandmen saw the son, they said among themselves, +This is the heir; come, let us kill him, and let us seize on his +inheritance. + +21:39 And they caught him, and cast him out of the vineyard, and slew +him. + +21:40 When the lord therefore of the vineyard cometh, what will he do +unto those husbandmen? 21:41 They say unto him, He will miserably +destroy those wicked men, and will let out his vineyard unto other +husbandmen, which shall render him the fruits in their seasons. + +21:42 Jesus saith unto them, Did ye never read in the scriptures, The +stone which the builders rejected, the same is become the head of the +corner: this is the Lord's doing, and it is marvellous in our eyes? +21:43 Therefore say I unto you, The kingdom of God shall be taken from +you, and given to a nation bringing forth the fruits thereof. + +21:44 And whosoever shall fall on this stone shall be broken: but on +whomsoever it shall fall, it will grind him to powder. + +21:45 And when the chief priests and Pharisees had heard his parables, +they perceived that he spake of them. + +21:46 But when they sought to lay hands on him, they feared the +multitude, because they took him for a prophet. + +22:1 And Jesus answered and spake unto them again by parables, and +said, 22:2 The kingdom of heaven is like unto a certain king, which +made a marriage for his son, 22:3 And sent forth his servants to call +them that were bidden to the wedding: and they would not come. + +22:4 Again, he sent forth other servants, saying, Tell them which are +bidden, Behold, I have prepared my dinner: my oxen and my fatlings are +killed, and all things are ready: come unto the marriage. + +22:5 But they made light of it, and went their ways, one to his farm, +another to his merchandise: 22:6 And the remnant took his servants, +and entreated them spitefully, and slew them. + +22:7 But when the king heard thereof, he was wroth: and he sent forth +his armies, and destroyed those murderers, and burned up their city. + +22:8 Then saith he to his servants, The wedding is ready, but they +which were bidden were not worthy. + +22:9 Go ye therefore into the highways, and as many as ye shall find, +bid to the marriage. + +22:10 So those servants went out into the highways, and gathered +together all as many as they found, both bad and good: and the wedding +was furnished with guests. + +22:11 And when the king came in to see the guests, he saw there a man +which had not on a wedding garment: 22:12 And he saith unto him, +Friend, how camest thou in hither not having a wedding garment? And he +was speechless. + +22:13 Then said the king to the servants, Bind him hand and foot, and +take him away, and cast him into outer darkness, there shall be +weeping and gnashing of teeth. + +22:14 For many are called, but few are chosen. + +22:15 Then went the Pharisees, and took counsel how they might +entangle him in his talk. + +22:16 And they sent out unto him their disciples with the Herodians, +saying, Master, we know that thou art true, and teachest the way of +God in truth, neither carest thou for any man: for thou regardest not +the person of men. + +22:17 Tell us therefore, What thinkest thou? Is it lawful to give +tribute unto Caesar, or not? 22:18 But Jesus perceived their +wickedness, and said, Why tempt ye me, ye hypocrites? 22:19 Shew me +the tribute money. And they brought unto him a penny. + +22:20 And he saith unto them, Whose is this image and superscription? +22:21 They say unto him, Caesar's. Then saith he unto them, Render +therefore unto Caesar the things which are Caesar's; and unto God the +things that are God's. + +22:22 When they had heard these words, they marvelled, and left him, +and went their way. + +22:23 The same day came to him the Sadducees, which say that there is +no resurrection, and asked him, 22:24 Saying, Master, Moses said, If a +man die, having no children, his brother shall marry his wife, and +raise up seed unto his brother. + +22:25 Now there were with us seven brethren: and the first, when he +had married a wife, deceased, and, having no issue, left his wife unto +his brother: 22:26 Likewise the second also, and the third, unto the +seventh. + +22:27 And last of all the woman died also. + +22:28 Therefore in the resurrection whose wife shall she be of the +seven? for they all had her. + +22:29 Jesus answered and said unto them, Ye do err, not knowing the +scriptures, nor the power of God. + +22:30 For in the resurrection they neither marry, nor are given in +marriage, but are as the angels of God in heaven. + +22:31 But as touching the resurrection of the dead, have ye not read +that which was spoken unto you by God, saying, 22:32 I am the God of +Abraham, and the God of Isaac, and the God of Jacob? God is not the +God of the dead, but of the living. + +22:33 And when the multitude heard this, they were astonished at his +doctrine. + +22:34 But when the Pharisees had heard that he had put the Sadducees +to silence, they were gathered together. + +22:35 Then one of them, which was a lawyer, asked him a question, +tempting him, and saying, 22:36 Master, which is the great commandment +in the law? 22:37 Jesus said unto him, Thou shalt love the Lord thy +God with all thy heart, and with all thy soul, and with all thy mind. + +22:38 This is the first and great commandment. + +22:39 And the second is like unto it, Thou shalt love thy neighbour as +thyself. + +22:40 On these two commandments hang all the law and the prophets. + +22:41 While the Pharisees were gathered together, Jesus asked them, +22:42 Saying, What think ye of Christ? whose son is he? They say unto +him, The son of David. + +22:43 He saith unto them, How then doth David in spirit call him Lord, +saying, 22:44 The LORD said unto my Lord, Sit thou on my right hand, +till I make thine enemies thy footstool? 22:45 If David then call him +Lord, how is he his son? 22:46 And no man was able to answer him a +word, neither durst any man from that day forth ask him any more +questions. + +23:1 Then spake Jesus to the multitude, and to his disciples, 23:2 +Saying The scribes and the Pharisees sit in Moses' seat: 23:3 All +therefore whatsoever they bid you observe, that observe and do; but do +not ye after their works: for they say, and do not. + +23:4 For they bind heavy burdens and grievous to be borne, and lay +them on men's shoulders; but they themselves will not move them with +one of their fingers. + +23:5 But all their works they do for to be seen of men: they make +broad their phylacteries, and enlarge the borders of their garments, +23:6 And love the uppermost rooms at feasts, and the chief seats in +the synagogues, 23:7 And greetings in the markets, and to be called of +men, Rabbi, Rabbi. + +23:8 But be not ye called Rabbi: for one is your Master, even Christ; +and all ye are brethren. + +23:9 And call no man your father upon the earth: for one is your +Father, which is in heaven. + +23:10 Neither be ye called masters: for one is your Master, even +Christ. + +23:11 But he that is greatest among you shall be your servant. + +23:12 And whosoever shall exalt himself shall be abased; and he that +shall humble himself shall be exalted. + +23:13 But woe unto you, scribes and Pharisees, hypocrites! for ye shut +up the kingdom of heaven against men: for ye neither go in yourselves, +neither suffer ye them that are entering to go in. + +23:14 Woe unto you, scribes and Pharisees, hypocrites! for ye devour +widows' houses, and for a pretence make long prayer: therefore ye +shall receive the greater damnation. + +23:15 Woe unto you, scribes and Pharisees, hypocrites! for ye compass +sea and land to make one proselyte, and when he is made, ye make him +twofold more the child of hell than yourselves. + +23:16 Woe unto you, ye blind guides, which say, Whosoever shall swear +by the temple, it is nothing; but whosoever shall swear by the gold of +the temple, he is a debtor! 23:17 Ye fools and blind: for whether is +greater, the gold, or the temple that sanctifieth the gold? 23:18 +And, Whosoever shall swear by the altar, it is nothing; but whosoever +sweareth by the gift that is upon it, he is guilty. + +23:19 Ye fools and blind: for whether is greater, the gift, or the +altar that sanctifieth the gift? 23:20 Whoso therefore shall swear by +the altar, sweareth by it, and by all things thereon. + +23:21 And whoso shall swear by the temple, sweareth by it, and by him +that dwelleth therein. + +23:22 And he that shall swear by heaven, sweareth by the throne of +God, and by him that sitteth thereon. + +23:23 Woe unto you, scribes and Pharisees, hypocrites! for ye pay +tithe of mint and anise and cummin, and have omitted the weightier +matters of the law, judgment, mercy, and faith: these ought ye to have +done, and not to leave the other undone. + +23:24 Ye blind guides, which strain at a gnat, and swallow a camel. + +23:25 Woe unto you, scribes and Pharisees, hypocrites! for ye make +clean the outside of the cup and of the platter, but within they are +full of extortion and excess. + +23:26 Thou blind Pharisee, cleanse first that which is within the cup +and platter, that the outside of them may be clean also. + +23:27 Woe unto you, scribes and Pharisees, hypocrites! for ye are like +unto whited sepulchres, which indeed appear beautiful outward, but are +within full of dead men's bones, and of all uncleanness. + +23:28 Even so ye also outwardly appear righteous unto men, but within +ye are full of hypocrisy and iniquity. + +23:29 Woe unto you, scribes and Pharisees, hypocrites! because ye +build the tombs of the prophets, and garnish the sepulchres of the +righteous, 23:30 And say, If we had been in the days of our fathers, +we would not have been partakers with them in the blood of the +prophets. + +23:31 Wherefore ye be witnesses unto yourselves, that ye are the +children of them which killed the prophets. + +23:32 Fill ye up then the measure of your fathers. + +23:33 Ye serpents, ye generation of vipers, how can ye escape the +damnation of hell? 23:34 Wherefore, behold, I send unto you prophets, +and wise men, and scribes: and some of them ye shall kill and crucify; +and some of them shall ye scourge in your synagogues, and persecute +them from city to city: 23:35 That upon you may come all the righteous +blood shed upon the earth, from the blood of righteous Abel unto the +blood of Zacharias son of Barachias, whom ye slew between the temple +and the altar. + +23:36 Verily I say unto you, All these things shall come upon this +generation. + +23:37 O Jerusalem, Jerusalem, thou that killest the prophets, and +stonest them which are sent unto thee, how often would I have gathered +thy children together, even as a hen gathereth her chickens under her +wings, and ye would not! 23:38 Behold, your house is left unto you +desolate. + +23:39 For I say unto you, Ye shall not see me henceforth, till ye +shall say, Blessed is he that cometh in the name of the Lord. + +24:1 And Jesus went out, and departed from the temple: and his +disciples came to him for to shew him the buildings of the temple. + +24:2 And Jesus said unto them, See ye not all these things? verily I +say unto you, There shall not be left here one stone upon another, +that shall not be thrown down. + +24:3 And as he sat upon the mount of Olives, the disciples came unto +him privately, saying, Tell us, when shall these things be? and what +shall be the sign of thy coming, and of the end of the world? 24:4 +And Jesus answered and said unto them, Take heed that no man deceive +you. + +24:5 For many shall come in my name, saying, I am Christ; and shall +deceive many. + +24:6 And ye shall hear of wars and rumours of wars: see that ye be not +troubled: for all these things must come to pass, but the end is not +yet. + +24:7 For nation shall rise against nation, and kingdom against +kingdom: and there shall be famines, and pestilences, and earthquakes, +in divers places. + +24:8 All these are the beginning of sorrows. + +24:9 Then shall they deliver you up to be afflicted, and shall kill +you: and ye shall be hated of all nations for my name's sake. + +24:10 And then shall many be offended, and shall betray one another, +and shall hate one another. + +24:11 And many false prophets shall rise, and shall deceive many. + +24:12 And because iniquity shall abound, the love of many shall wax +cold. + +24:13 But he that shall endure unto the end, the same shall be saved. + +24:14 And this gospel of the kingdom shall be preached in all the +world for a witness unto all nations; and then shall the end come. + +24:15 When ye therefore shall see the abomination of desolation, +spoken of by Daniel the prophet, stand in the holy place, (whoso +readeth, let him understand:) 24:16 Then let them which be in Judaea +flee into the mountains: 24:17 Let him which is on the housetop not +come down to take any thing out of his house: 24:18 Neither let him +which is in the field return back to take his clothes. + +24:19 And woe unto them that are with child, and to them that give +suck in those days! 24:20 But pray ye that your flight be not in the +winter, neither on the sabbath day: 24:21 For then shall be great +tribulation, such as was not since the beginning of the world to this +time, no, nor ever shall be. + +24:22 And except those days should be shortened, there should no flesh +be saved: but for the elect's sake those days shall be shortened. + +24:23 Then if any man shall say unto you, Lo, here is Christ, or +there; believe it not. + +24:24 For there shall arise false Christs, and false prophets, and +shall shew great signs and wonders; insomuch that, if it were +possible, they shall deceive the very elect. + +24:25 Behold, I have told you before. + +24:26 Wherefore if they shall say unto you, Behold, he is in the +desert; go not forth: behold, he is in the secret chambers; believe it +not. + +24:27 For as the lightning cometh out of the east, and shineth even +unto the west; so shall also the coming of the Son of man be. + +24:28 For wheresoever the carcase is, there will the eagles be +gathered together. + +24:29 Immediately after the tribulation of those days shall the sun be +darkened, and the moon shall not give her light, and the stars shall +fall from heaven, and the powers of the heavens shall be shaken: 24:30 +And then shall appear the sign of the Son of man in heaven: and then +shall all the tribes of the earth mourn, and they shall see the Son of +man coming in the clouds of heaven with power and great glory. + +24:31 And he shall send his angels with a great sound of a trumpet, +and they shall gather together his elect from the four winds, from one +end of heaven to the other. + +24:32 Now learn a parable of the fig tree; When his branch is yet +tender, and putteth forth leaves, ye know that summer is nigh: 24:33 +So likewise ye, when ye shall see all these things, know that it is +near, even at the doors. + +24:34 Verily I say unto you, This generation shall not pass, till all +these things be fulfilled. + +24:35 Heaven and earth shall pass away, but my words shall not pass +away. + +24:36 But of that day and hour knoweth no man, no, not the angels of +heaven, but my Father only. + +24:37 But as the days of Noe were, so shall also the coming of the Son +of man be. + +24:38 For as in the days that were before the flood they were eating +and drinking, marrying and giving in marriage, until the day that Noe +entered into the ark, 24:39 And knew not until the flood came, and +took them all away; so shall also the coming of the Son of man be. + +24:40 Then shall two be in the field; the one shall be taken, and the +other left. + +24:41 Two women shall be grinding at the mill; the one shall be taken, +and the other left. + +24:42 Watch therefore: for ye know not what hour your Lord doth come. + +24:43 But know this, that if the goodman of the house had known in +what watch the thief would come, he would have watched, and would not +have suffered his house to be broken up. + +24:44 Therefore be ye also ready: for in such an hour as ye think not +the Son of man cometh. + +24:45 Who then is a faithful and wise servant, whom his lord hath made +ruler over his household, to give them meat in due season? 24:46 +Blessed is that servant, whom his lord when he cometh shall find so +doing. + +24:47 Verily I say unto you, That he shall make him ruler over all his +goods. + +24:48 But and if that evil servant shall say in his heart, My lord +delayeth his coming; 24:49 And shall begin to smite his +fellowservants, and to eat and drink with the drunken; 24:50 The lord +of that servant shall come in a day when he looketh not for him, and +in an hour that he is not aware of, 24:51 And shall cut him asunder, +and appoint him his portion with the hypocrites: there shall be +weeping and gnashing of teeth. + +25:1 Then shall the kingdom of heaven be likened unto ten virgins, +which took their lamps, and went forth to meet the bridegroom. + +25:2 And five of them were wise, and five were foolish. + +25:3 They that were foolish took their lamps, and took no oil with +them: 25:4 But the wise took oil in their vessels with their lamps. + +25:5 While the bridegroom tarried, they all slumbered and slept. + +25:6 And at midnight there was a cry made, Behold, the bridegroom +cometh; go ye out to meet him. + +25:7 Then all those virgins arose, and trimmed their lamps. + +25:8 And the foolish said unto the wise, Give us of your oil; for our +lamps are gone out. + +25:9 But the wise answered, saying, Not so; lest there be not enough +for us and you: but go ye rather to them that sell, and buy for +yourselves. + +25:10 And while they went to buy, the bridegroom came; and they that +were ready went in with him to the marriage: and the door was shut. + +25:11 Afterward came also the other virgins, saying, Lord, Lord, open +to us. + +25:12 But he answered and said, Verily I say unto you, I know you not. + +25:13 Watch therefore, for ye know neither the day nor the hour +wherein the Son of man cometh. + +25:14 For the kingdom of heaven is as a man travelling into a far +country, who called his own servants, and delivered unto them his +goods. + +25:15 And unto one he gave five talents, to another two, and to +another one; to every man according to his several ability; and +straightway took his journey. + +25:16 Then he that had received the five talents went and traded with +the same, and made them other five talents. + +25:17 And likewise he that had received two, he also gained other two. + +25:18 But he that had received one went and digged in the earth, and +hid his lord's money. + +25:19 After a long time the lord of those servants cometh, and +reckoneth with them. + +25:20 And so he that had received five talents came and brought other +five talents, saying, Lord, thou deliveredst unto me five talents: +behold, I have gained beside them five talents more. + +25:21 His lord said unto him, Well done, thou good and faithful +servant: thou hast been faithful over a few things, I will make thee +ruler over many things: enter thou into the joy of thy lord. + +25:22 He also that had received two talents came and said, Lord, thou +deliveredst unto me two talents: behold, I have gained two other +talents beside them. + +25:23 His lord said unto him, Well done, good and faithful servant; +thou hast been faithful over a few things, I will make thee ruler over +many things: enter thou into the joy of thy lord. + +25:24 Then he which had received the one talent came and said, Lord, I +knew thee that thou art an hard man, reaping where thou hast not sown, +and gathering where thou hast not strawed: 25:25 And I was afraid, and +went and hid thy talent in the earth: lo, there thou hast that is +thine. + +25:26 His lord answered and said unto him, Thou wicked and slothful +servant, thou knewest that I reap where I sowed not, and gather where +I have not strawed: 25:27 Thou oughtest therefore to have put my money +to the exchangers, and then at my coming I should have received mine +own with usury. + +25:28 Take therefore the talent from him, and give it unto him which +hath ten talents. + +25:29 For unto every one that hath shall be given, and he shall have +abundance: but from him that hath not shall be taken away even that +which he hath. + +25:30 And cast ye the unprofitable servant into outer darkness: there +shall be weeping and gnashing of teeth. + +25:31 When the Son of man shall come in his glory, and all the holy +angels with him, then shall he sit upon the throne of his glory: 25:32 +And before him shall be gathered all nations: and he shall separate +them one from another, as a shepherd divideth his sheep from the +goats: 25:33 And he shall set the sheep on his right hand, but the +goats on the left. + +25:34 Then shall the King say unto them on his right hand, Come, ye +blessed of my Father, inherit the kingdom prepared for you from the +foundation of the world: 25:35 For I was an hungred, and ye gave me +meat: I was thirsty, and ye gave me drink: I was a stranger, and ye +took me in: 25:36 Naked, and ye clothed me: I was sick, and ye visited +me: I was in prison, and ye came unto me. + +25:37 Then shall the righteous answer him, saying, Lord, when saw we +thee an hungred, and fed thee? or thirsty, and gave thee drink? 25:38 +When saw we thee a stranger, and took thee in? or naked, and clothed +thee? 25:39 Or when saw we thee sick, or in prison, and came unto +thee? 25:40 And the King shall answer and say unto them, Verily I say +unto you, Inasmuch as ye have done it unto one of the least of these +my brethren, ye have done it unto me. + +25:41 Then shall he say also unto them on the left hand, Depart from +me, ye cursed, into everlasting fire, prepared for the devil and his +angels: 25:42 For I was an hungred, and ye gave me no meat: I was +thirsty, and ye gave me no drink: 25:43 I was a stranger, and ye took +me not in: naked, and ye clothed me not: sick, and in prison, and ye +visited me not. + +25:44 Then shall they also answer him, saying, Lord, when saw we thee +an hungred, or athirst, or a stranger, or naked, or sick, or in +prison, and did not minister unto thee? 25:45 Then shall he answer +them, saying, Verily I say unto you, Inasmuch as ye did it not to one +of the least of these, ye did it not to me. + +25:46 And these shall go away into everlasting punishment: but the +righteous into life eternal. + +26:1 And it came to pass, when Jesus had finished all these sayings, +he said unto his disciples, 26:2 Ye know that after two days is the +feast of the passover, and the Son of man is betrayed to be crucified. + +26:3 Then assembled together the chief priests, and the scribes, and +the elders of the people, unto the palace of the high priest, who was +called Caiaphas, 26:4 And consulted that they might take Jesus by +subtilty, and kill him. + +26:5 But they said, Not on the feast day, lest there be an uproar +among the people. + +26:6 Now when Jesus was in Bethany, in the house of Simon the leper, +26:7 There came unto him a woman having an alabaster box of very +precious ointment, and poured it on his head, as he sat at meat. + +26:8 But when his disciples saw it, they had indignation, saying, To +what purpose is this waste? 26:9 For this ointment might have been +sold for much, and given to the poor. + +26:10 When Jesus understood it, he said unto them, Why trouble ye the +woman? for she hath wrought a good work upon me. + +26:11 For ye have the poor always with you; but me ye have not always. + +26:12 For in that she hath poured this ointment on my body, she did it +for my burial. + +26:13 Verily I say unto you, Wheresoever this gospel shall be preached +in the whole world, there shall also this, that this woman hath done, +be told for a memorial of her. + +26:14 Then one of the twelve, called Judas Iscariot, went unto the +chief priests, 26:15 And said unto them, What will ye give me, and I +will deliver him unto you? And they covenanted with him for thirty +pieces of silver. + +26:16 And from that time he sought opportunity to betray him. + +26:17 Now the first day of the feast of unleavened bread the disciples +came to Jesus, saying unto him, Where wilt thou that we prepare for +thee to eat the passover? 26:18 And he said, Go into the city to such +a man, and say unto him, The Master saith, My time is at hand; I will +keep the passover at thy house with my disciples. + +26:19 And the disciples did as Jesus had appointed them; and they made +ready the passover. + +26:20 Now when the even was come, he sat down with the twelve. + +26:21 And as they did eat, he said, Verily I say unto you, that one of +you shall betray me. + +26:22 And they were exceeding sorrowful, and began every one of them +to say unto him, Lord, is it I? 26:23 And he answered and said, He +that dippeth his hand with me in the dish, the same shall betray me. + +26:24 The Son of man goeth as it is written of him: but woe unto that +man by whom the Son of man is betrayed! it had been good for that man +if he had not been born. + +26:25 Then Judas, which betrayed him, answered and said, Master, is it +I? He said unto him, Thou hast said. + +26:26 And as they were eating, Jesus took bread, and blessed it, and +brake it, and gave it to the disciples, and said, Take, eat; this is +my body. + +26:27 And he took the cup, and gave thanks, and gave it to them, +saying, Drink ye all of it; 26:28 For this is my blood of the new +testament, which is shed for many for the remission of sins. + +26:29 But I say unto you, I will not drink henceforth of this fruit of +the vine, until that day when I drink it new with you in my Father's +kingdom. + +26:30 And when they had sung an hymn, they went out into the mount of +Olives. + +26:31 Then saith Jesus unto them, All ye shall be offended because of +me this night: for it is written, I will smite the shepherd, and the +sheep of the flock shall be scattered abroad. + +26:32 But after I am risen again, I will go before you into Galilee. + +26:33 Peter answered and said unto him, Though all men shall be +offended because of thee, yet will I never be offended. + +26:34 Jesus said unto him, Verily I say unto thee, That this night, +before the cock crow, thou shalt deny me thrice. + +26:35 Peter said unto him, Though I should die with thee, yet will I +not deny thee. Likewise also said all the disciples. + +26:36 Then cometh Jesus with them unto a place called Gethsemane, and +saith unto the disciples, Sit ye here, while I go and pray yonder. + +26:37 And he took with him Peter and the two sons of Zebedee, and +began to be sorrowful and very heavy. + +26:38 Then saith he unto them, My soul is exceeding sorrowful, even +unto death: tarry ye here, and watch with me. + +26:39 And he went a little farther, and fell on his face, and prayed, +saying, O my Father, if it be possible, let this cup pass from me: +nevertheless not as I will, but as thou wilt. + +26:40 And he cometh unto the disciples, and findeth them asleep, and +saith unto Peter, What, could ye not watch with me one hour? 26:41 +Watch and pray, that ye enter not into temptation: the spirit indeed +is willing, but the flesh is weak. + +26:42 He went away again the second time, and prayed, saying, O my +Father, if this cup may not pass away from me, except I drink it, thy +will be done. + +26:43 And he came and found them asleep again: for their eyes were +heavy. + +26:44 And he left them, and went away again, and prayed the third +time, saying the same words. + +26:45 Then cometh he to his disciples, and saith unto them, Sleep on +now, and take your rest: behold, the hour is at hand, and the Son of +man is betrayed into the hands of sinners. + +26:46 Rise, let us be going: behold, he is at hand that doth betray +me. + +26:47 And while he yet spake, lo, Judas, one of the twelve, came, and +with him a great multitude with swords and staves, from the chief +priests and elders of the people. + +26:48 Now he that betrayed him gave them a sign, saying, Whomsoever I +shall kiss, that same is he: hold him fast. + +26:49 And forthwith he came to Jesus, and said, Hail, master; and +kissed him. + +26:50 And Jesus said unto him, Friend, wherefore art thou come? Then +came they, and laid hands on Jesus and took him. + +26:51 And, behold, one of them which were with Jesus stretched out his +hand, and drew his sword, and struck a servant of the high priest's, +and smote off his ear. + +26:52 Then said Jesus unto him, Put up again thy sword into his place: +for all they that take the sword shall perish with the sword. + +26:53 Thinkest thou that I cannot now pray to my Father, and he shall +presently give me more than twelve legions of angels? 26:54 But how +then shall the scriptures be fulfilled, that thus it must be? 26:55 +In that same hour said Jesus to the multitudes, Are ye come out as +against a thief with swords and staves for to take me? I sat daily +with you teaching in the temple, and ye laid no hold on me. + +26:56 But all this was done, that the scriptures of the prophets might +be fulfilled. Then all the disciples forsook him, and fled. + +26:57 And they that had laid hold on Jesus led him away to Caiaphas +the high priest, where the scribes and the elders were assembled. + +26:58 But Peter followed him afar off unto the high priest's palace, +and went in, and sat with the servants, to see the end. + +26:59 Now the chief priests, and elders, and all the council, sought +false witness against Jesus, to put him to death; 26:60 But found +none: yea, though many false witnesses came, yet found they none. At +the last came two false witnesses, 26:61 And said, This fellow said, I +am able to destroy the temple of God, and to build it in three days. + +26:62 And the high priest arose, and said unto him, Answerest thou +nothing? what is it which these witness against thee? 26:63 But Jesus +held his peace, And the high priest answered and said unto him, I +adjure thee by the living God, that thou tell us whether thou be the +Christ, the Son of God. + +26:64 Jesus saith unto him, Thou hast said: nevertheless I say unto +you, Hereafter shall ye see the Son of man sitting on the right hand +of power, and coming in the clouds of heaven. + +26:65 Then the high priest rent his clothes, saying, He hath spoken +blasphemy; what further need have we of witnesses? behold, now ye have +heard his blasphemy. + +26:66 What think ye? They answered and said, He is guilty of death. + +26:67 Then did they spit in his face, and buffeted him; and others +smote him with the palms of their hands, 26:68 Saying, Prophesy unto +us, thou Christ, Who is he that smote thee? 26:69 Now Peter sat +without in the palace: and a damsel came unto him, saying, Thou also +wast with Jesus of Galilee. + +26:70 But he denied before them all, saying, I know not what thou +sayest. + +26:71 And when he was gone out into the porch, another maid saw him, +and said unto them that were there, This fellow was also with Jesus of +Nazareth. + +26:72 And again he denied with an oath, I do not know the man. + +26:73 And after a while came unto him they that stood by, and said to +Peter, Surely thou also art one of them; for thy speech bewrayeth +thee. + +26:74 Then began he to curse and to swear, saying, I know not the man. +And immediately the cock crew. + +26:75 And Peter remembered the word of Jesus, which said unto him, +Before the cock crow, thou shalt deny me thrice. And he went out, and +wept bitterly. + +27:1 When the morning was come, all the chief priests and elders of +the people took counsel against Jesus to put him to death: 27:2 And +when they had bound him, they led him away, and delivered him to +Pontius Pilate the governor. + +27:3 Then Judas, which had betrayed him, when he saw that he was +condemned, repented himself, and brought again the thirty pieces of +silver to the chief priests and elders, 27:4 Saying, I have sinned in +that I have betrayed the innocent blood. And they said, What is that +to us? see thou to that. + +27:5 And he cast down the pieces of silver in the temple, and +departed, and went and hanged himself. + +27:6 And the chief priests took the silver pieces, and said, It is not +lawful for to put them into the treasury, because it is the price of +blood. + +27:7 And they took counsel, and bought with them the potter's field, +to bury strangers in. + +27:8 Wherefore that field was called, The field of blood, unto this +day. + +27:9 Then was fulfilled that which was spoken by Jeremy the prophet, +saying, And they took the thirty pieces of silver, the price of him +that was valued, whom they of the children of Israel did value; 27:10 +And gave them for the potter's field, as the Lord appointed me. + +27:11 And Jesus stood before the governor: and the governor asked him, +saying, Art thou the King of the Jews? And Jesus said unto him, Thou +sayest. + +27:12 And when he was accused of the chief priests and elders, he +answered nothing. + +27:13 Then said Pilate unto him, Hearest thou not how many things they +witness against thee? 27:14 And he answered him to never a word; +insomuch that the governor marvelled greatly. + +27:15 Now at that feast the governor was wont to release unto the +people a prisoner, whom they would. + +27:16 And they had then a notable prisoner, called Barabbas. + +27:17 Therefore when they were gathered together, Pilate said unto +them, Whom will ye that I release unto you? Barabbas, or Jesus which +is called Christ? 27:18 For he knew that for envy they had delivered +him. + +27:19 When he was set down on the judgment seat, his wife sent unto +him, saying, Have thou nothing to do with that just man: for I have +suffered many things this day in a dream because of him. + +27:20 But the chief priests and elders persuaded the multitude that +they should ask Barabbas, and destroy Jesus. + +27:21 The governor answered and said unto them, Whether of the twain +will ye that I release unto you? They said, Barabbas. + +27:22 Pilate saith unto them, What shall I do then with Jesus which is +called Christ? They all say unto him, Let him be crucified. + +27:23 And the governor said, Why, what evil hath he done? But they +cried out the more, saying, Let him be crucified. + +27:24 When Pilate saw that he could prevail nothing, but that rather a +tumult was made, he took water, and washed his hands before the +multitude, saying, I am innocent of the blood of this just person: see +ye to it. + +27:25 Then answered all the people, and said, His blood be on us, and +on our children. + +27:26 Then released he Barabbas unto them: and when he had scourged +Jesus, he delivered him to be crucified. + +27:27 Then the soldiers of the governor took Jesus into the common +hall, and gathered unto him the whole band of soldiers. + +27:28 And they stripped him, and put on him a scarlet robe. + +27:29 And when they had platted a crown of thorns, they put it upon +his head, and a reed in his right hand: and they bowed the knee before +him, and mocked him, saying, Hail, King of the Jews! 27:30 And they +spit upon him, and took the reed, and smote him on the head. + +27:31 And after that they had mocked him, they took the robe off from +him, and put his own raiment on him, and led him away to crucify him. + +27:32 And as they came out, they found a man of Cyrene, Simon by name: +him they compelled to bear his cross. + +27:33 And when they were come unto a place called Golgotha, that is to +say, a place of a skull, 27:34 They gave him vinegar to drink mingled +with gall: and when he had tasted thereof, he would not drink. + +27:35 And they crucified him, and parted his garments, casting lots: +that it might be fulfilled which was spoken by the prophet, They +parted my garments among them, and upon my vesture did they cast lots. + +27:36 And sitting down they watched him there; 27:37 And set up over +his head his accusation written, THIS IS JESUS THE KING OF THE JEWS. + +27:38 Then were there two thieves crucified with him, one on the right +hand, and another on the left. + +27:39 And they that passed by reviled him, wagging their heads, 27:40 +And saying, Thou that destroyest the temple, and buildest it in three +days, save thyself. If thou be the Son of God, come down from the +cross. + +27:41 Likewise also the chief priests mocking him, with the scribes +and elders, said, 27:42 He saved others; himself he cannot save. If he +be the King of Israel, let him now come down from the cross, and we +will believe him. + +27:43 He trusted in God; let him deliver him now, if he will have him: +for he said, I am the Son of God. + +27:44 The thieves also, which were crucified with him, cast the same +in his teeth. + +27:45 Now from the sixth hour there was darkness over all the land +unto the ninth hour. + +27:46 And about the ninth hour Jesus cried with a loud voice, saying, +Eli, Eli, lama sabachthani? that is to say, My God, my God, why hast +thou forsaken me? 27:47 Some of them that stood there, when they +heard that, said, This man calleth for Elias. + +27:48 And straightway one of them ran, and took a spunge, and filled +it with vinegar, and put it on a reed, and gave him to drink. + +27:49 The rest said, Let be, let us see whether Elias will come to +save him. + +27:50 Jesus, when he had cried again with a loud voice, yielded up the +ghost. + +27:51 And, behold, the veil of the temple was rent in twain from the +top to the bottom; and the earth did quake, and the rocks rent; 27:52 +And the graves were opened; and many bodies of the saints which slept +arose, 27:53 And came out of the graves after his resurrection, and +went into the holy city, and appeared unto many. + +27:54 Now when the centurion, and they that were with him, watching +Jesus, saw the earthquake, and those things that were done, they +feared greatly, saying, Truly this was the Son of God. + +27:55 And many women were there beholding afar off, which followed +Jesus from Galilee, ministering unto him: 27:56 Among which was Mary +Magdalene, and Mary the mother of James and Joses, and the mother of +Zebedees children. + +27:57 When the even was come, there came a rich man of Arimathaea, +named Joseph, who also himself was Jesus' disciple: 27:58 He went to +Pilate, and begged the body of Jesus. Then Pilate commanded the body +to be delivered. + +27:59 And when Joseph had taken the body, he wrapped it in a clean +linen cloth, 27:60 And laid it in his own new tomb, which he had hewn +out in the rock: and he rolled a great stone to the door of the +sepulchre, and departed. + +27:61 And there was Mary Magdalene, and the other Mary, sitting over +against the sepulchre. + +27:62 Now the next day, that followed the day of the preparation, the +chief priests and Pharisees came together unto Pilate, 27:63 Saying, +Sir, we remember that that deceiver said, while he was yet alive, +After three days I will rise again. + +27:64 Command therefore that the sepulchre be made sure until the +third day, lest his disciples come by night, and steal him away, and +say unto the people, He is risen from the dead: so the last error +shall be worse than the first. + +27:65 Pilate said unto them, Ye have a watch: go your way, make it as +sure as ye can. + +27:66 So they went, and made the sepulchre sure, sealing the stone, +and setting a watch. + +28:1 In the end of the sabbath, as it began to dawn toward the first +day of the week, came Mary Magdalene and the other Mary to see the +sepulchre. + +28:2 And, behold, there was a great earthquake: for the angel of the +Lord descended from heaven, and came and rolled back the stone from +the door, and sat upon it. + +28:3 His countenance was like lightning, and his raiment white as +snow: 28:4 And for fear of him the keepers did shake, and became as +dead men. + +28:5 And the angel answered and said unto the women, Fear not ye: for +I know that ye seek Jesus, which was crucified. + +28:6 He is not here: for he is risen, as he said. Come, see the place +where the Lord lay. + +28:7 And go quickly, and tell his disciples that he is risen from the +dead; and, behold, he goeth before you into Galilee; there shall ye +see him: lo, I have told you. + +28:8 And they departed quickly from the sepulchre with fear and great +joy; and did run to bring his disciples word. + +28:9 And as they went to tell his disciples, behold, Jesus met them, +saying, All hail. And they came and held him by the feet, and +worshipped him. + +28:10 Then said Jesus unto them, Be not afraid: go tell my brethren +that they go into Galilee, and there shall they see me. + +28:11 Now when they were going, behold, some of the watch came into +the city, and shewed unto the chief priests all the things that were +done. + +28:12 And when they were assembled with the elders, and had taken +counsel, they gave large money unto the soldiers, 28:13 Saying, Say +ye, His disciples came by night, and stole him away while we slept. + +28:14 And if this come to the governor's ears, we will persuade him, +and secure you. + +28:15 So they took the money, and did as they were taught: and this +saying is commonly reported among the Jews until this day. + +28:16 Then the eleven disciples went away into Galilee, into a +mountain where Jesus had appointed them. + +28:17 And when they saw him, they worshipped him: but some doubted. + +28:18 And Jesus came and spake unto them, saying, All power is given +unto me in heaven and in earth. + +28:19 Go ye therefore, and teach all nations, baptizing them in the +name of the Father, and of the Son, and of the Holy Ghost: 28:20 +Teaching them to observe all things whatsoever I have commanded you: +and, lo, I am with you alway, even unto the end of the world. Amen. + + + + +The Gospel According to Saint Mark + + +1:1 The beginning of the gospel of Jesus Christ, the Son of God; 1:2 +As it is written in the prophets, Behold, I send my messenger before +thy face, which shall prepare thy way before thee. + +1:3 The voice of one crying in the wilderness, Prepare ye the way of +the Lord, make his paths straight. + +1:4 John did baptize in the wilderness, and preach the baptism of +repentance for the remission of sins. + +1:5 And there went out unto him all the land of Judaea, and they of +Jerusalem, and were all baptized of him in the river of Jordan, +confessing their sins. + +1:6 And John was clothed with camel's hair, and with a girdle of a +skin about his loins; and he did eat locusts and wild honey; 1:7 And +preached, saying, There cometh one mightier than I after me, the +latchet of whose shoes I am not worthy to stoop down and unloose. + +1:8 I indeed have baptized you with water: but he shall baptize you +with the Holy Ghost. + +1:9 And it came to pass in those days, that Jesus came from Nazareth +of Galilee, and was baptized of John in Jordan. + +1:10 And straightway coming up out of the water, he saw the heavens +opened, and the Spirit like a dove descending upon him: 1:11 And there +came a voice from heaven, saying, Thou art my beloved Son, in whom I +am well pleased. + +1:12 And immediately the spirit driveth him into the wilderness. + +1:13 And he was there in the wilderness forty days, tempted of Satan; +and was with the wild beasts; and the angels ministered unto him. + +1:14 Now after that John was put in prison, Jesus came into Galilee, +preaching the gospel of the kingdom of God, 1:15 And saying, The time +is fulfilled, and the kingdom of God is at hand: repent ye, and +believe the gospel. + +1:16 Now as he walked by the sea of Galilee, he saw Simon and Andrew +his brother casting a net into the sea: for they were fishers. + +1:17 And Jesus said unto them, Come ye after me, and I will make you +to become fishers of men. + +1:18 And straightway they forsook their nets, and followed him. + +1:19 And when he had gone a little farther thence, he saw James the +son of Zebedee, and John his brother, who also were in the ship +mending their nets. + +1:20 And straightway he called them: and they left their father +Zebedee in the ship with the hired servants, and went after him. + +1:21 And they went into Capernaum; and straightway on the sabbath day +he entered into the synagogue, and taught. + +1:22 And they were astonished at his doctrine: for he taught them as +one that had authority, and not as the scribes. + +1:23 And there was in their synagogue a man with an unclean spirit; +and he cried out, 1:24 Saying, Let us alone; what have we to do with +thee, thou Jesus of Nazareth? art thou come to destroy us? I know thee +who thou art, the Holy One of God. + +1:25 And Jesus rebuked him, saying, Hold thy peace, and come out of +him. + +1:26 And when the unclean spirit had torn him, and cried with a loud +voice, he came out of him. + +1:27 And they were all amazed, insomuch that they questioned among +themselves, saying, What thing is this? what new doctrine is this? for +with authority commandeth he even the unclean spirits, and they do +obey him. + +1:28 And immediately his fame spread abroad throughout all the region +round about Galilee. + +1:29 And forthwith, when they were come out of the synagogue, they +entered into the house of Simon and Andrew, with James and John. + +1:30 But Simon's wife's mother lay sick of a fever, and anon they tell +him of her. + +1:31 And he came and took her by the hand, and lifted her up; and +immediately the fever left her, and she ministered unto them. + +1:32 And at even, when the sun did set, they brought unto him all that +were diseased, and them that were possessed with devils. + +1:33 And all the city was gathered together at the door. + +1:34 And he healed many that were sick of divers diseases, and cast +out many devils; and suffered not the devils to speak, because they +knew him. + +1:35 And in the morning, rising up a great while before day, he went +out, and departed into a solitary place, and there prayed. + +1:36 And Simon and they that were with him followed after him. + +1:37 And when they had found him, they said unto him, All men seek for +thee. + +1:38 And he said unto them, Let us go into the next towns, that I may +preach there also: for therefore came I forth. + +1:39 And he preached in their synagogues throughout all Galilee, and +cast out devils. + +1:40 And there came a leper to him, beseeching him, and kneeling down +to him, and saying unto him, If thou wilt, thou canst make me clean. + +1:41 And Jesus, moved with compassion, put forth his hand, and touched +him, and saith unto him, I will; be thou clean. + +1:42 And as soon as he had spoken, immediately the leprosy departed +from him, and he was cleansed. + +1:43 And he straitly charged him, and forthwith sent him away; 1:44 +And saith unto him, See thou say nothing to any man: but go thy way, +shew thyself to the priest, and offer for thy cleansing those things +which Moses commanded, for a testimony unto them. + +1:45 But he went out, and began to publish it much, and to blaze +abroad the matter, insomuch that Jesus could no more openly enter into +the city, but was without in desert places: and they came to him from +every quarter. + +2:1 And again he entered into Capernaum after some days; and it was +noised that he was in the house. + +2:2 And straightway many were gathered together, insomuch that there +was no room to receive them, no, not so much as about the door: and he +preached the word unto them. + +2:3 And they come unto him, bringing one sick of the palsy, which was +borne of four. + +2:4 And when they could not come nigh unto him for the press, they +uncovered the roof where he was: and when they had broken it up, they +let down the bed wherein the sick of the palsy lay. + +2:5 When Jesus saw their faith, he said unto the sick of the palsy, +Son, thy sins be forgiven thee. + +2:6 But there was certain of the scribes sitting there, and reasoning +in their hearts, 2:7 Why doth this man thus speak blasphemies? who can +forgive sins but God only? 2:8 And immediately when Jesus perceived +in his spirit that they so reasoned within themselves, he said unto +them, Why reason ye these things in your hearts? 2:9 Whether is it +easier to say to the sick of the palsy, Thy sins be forgiven thee; or +to say, Arise, and take up thy bed, and walk? 2:10 But that ye may +know that the Son of man hath power on earth to forgive sins, (he +saith to the sick of the palsy,) 2:11 I say unto thee, Arise, and take +up thy bed, and go thy way into thine house. + +2:12 And immediately he arose, took up the bed, and went forth before +them all; insomuch that they were all amazed, and glorified God, +saying, We never saw it on this fashion. + +2:13 And he went forth again by the sea side; and all the multitude +resorted unto him, and he taught them. + +2:14 And as he passed by, he saw Levi the son of Alphaeus sitting at +the receipt of custom, and said unto him, Follow me. And he arose and +followed him. + +2:15 And it came to pass, that, as Jesus sat at meat in his house, +many publicans and sinners sat also together with Jesus and his +disciples: for there were many, and they followed him. + +2:16 And when the scribes and Pharisees saw him eat with publicans and +sinners, they said unto his disciples, How is it that he eateth and +drinketh with publicans and sinners? 2:17 When Jesus heard it, he +saith unto them, They that are whole have no need of the physician, +but they that are sick: I came not to call the righteous, but sinners +to repentance. + +2:18 And the disciples of John and of the Pharisees used to fast: and +they come and say unto him, Why do the disciples of John and of the +Pharisees fast, but thy disciples fast not? 2:19 And Jesus said unto +them, Can the children of the bridechamber fast, while the bridegroom +is with them? as long as they have the bridegroom with them, they +cannot fast. + +2:20 But the days will come, when the bridegroom shall be taken away +from them, and then shall they fast in those days. + +2:21 No man also seweth a piece of new cloth on an old garment: else +the new piece that filled it up taketh away from the old, and the rent +is made worse. + +2:22 And no man putteth new wine into old bottles: else the new wine +doth burst the bottles, and the wine is spilled, and the bottles will +be marred: but new wine must be put into new bottles. + +2:23 And it came to pass, that he went through the corn fields on the +sabbath day; and his disciples began, as they went, to pluck the ears +of corn. + +2:24 And the Pharisees said unto him, Behold, why do they on the +sabbath day that which is not lawful? 2:25 And he said unto them, +Have ye never read what David did, when he had need, and was an +hungred, he, and they that were with him? 2:26 How he went into the +house of God in the days of Abiathar the high priest, and did eat the +shewbread, which is not lawful to eat but for the priests, and gave +also to them which were with him? 2:27 And he said unto them, The +sabbath was made for man, and not man for the sabbath: 2:28 Therefore +the Son of man is Lord also of the sabbath. + +3:1 And he entered again into the synagogue; and there was a man there +which had a withered hand. + +3:2 And they watched him, whether he would heal him on the sabbath +day; that they might accuse him. + +3:3 And he saith unto the man which had the withered hand, Stand +forth. + +3:4 And he saith unto them, Is it lawful to do good on the sabbath +days, or to do evil? to save life, or to kill? But they held their +peace. + +3:5 And when he had looked round about on them with anger, being +grieved for the hardness of their hearts, he saith unto the man, +Stretch forth thine hand. And he stretched it out: and his hand was +restored whole as the other. + +3:6 And the Pharisees went forth, and straightway took counsel with +the Herodians against him, how they might destroy him. + +3:7 But Jesus withdrew himself with his disciples to the sea: and a +great multitude from Galilee followed him, and from Judaea, 3:8 And +from Jerusalem, and from Idumaea, and from beyond Jordan; and they +about Tyre and Sidon, a great multitude, when they had heard what +great things he did, came unto him. + +3:9 And he spake to his disciples, that a small ship should wait on +him because of the multitude, lest they should throng him. + +3:10 For he had healed many; insomuch that they pressed upon him for +to touch him, as many as had plagues. + +3:11 And unclean spirits, when they saw him, fell down before him, and +cried, saying, Thou art the Son of God. + +3:12 And he straitly charged them that they should not make him known. + +3:13 And he goeth up into a mountain, and calleth unto him whom he +would: and they came unto him. + +3:14 And he ordained twelve, that they should be with him, and that he +might send them forth to preach, 3:15 And to have power to heal +sicknesses, and to cast out devils: 3:16 And Simon he surnamed Peter; +3:17 And James the son of Zebedee, and John the brother of James; and +he surnamed them Boanerges, which is, The sons of thunder: 3:18 And +Andrew, and Philip, and Bartholomew, and Matthew, and Thomas, and +James the son of Alphaeus, and Thaddaeus, and Simon the Canaanite, +3:19 And Judas Iscariot, which also betrayed him: and they went into +an house. + +3:20 And the multitude cometh together again, so that they could not +so much as eat bread. + +3:21 And when his friends heard of it, they went out to lay hold on +him: for they said, He is beside himself. + +3:22 And the scribes which came down from Jerusalem said, He hath +Beelzebub, and by the prince of the devils casteth he out devils. + +3:23 And he called them unto him, and said unto them in parables, How +can Satan cast out Satan? 3:24 And if a kingdom be divided against +itself, that kingdom cannot stand. + +3:25 And if a house be divided against itself, that house cannot +stand. + +3:26 And if Satan rise up against himself, and be divided, he cannot +stand, but hath an end. + +3:27 No man can enter into a strong man's house, and spoil his goods, +except he will first bind the strong man; and then he will spoil his +house. + +3:28 Verily I say unto you, All sins shall be forgiven unto the sons +of men, and blasphemies wherewith soever they shall blaspheme: 3:29 +But he that shall blaspheme against the Holy Ghost hath never +forgiveness, but is in danger of eternal damnation. + +3:30 Because they said, He hath an unclean spirit. + +3:31 There came then his brethren and his mother, and, standing +without, sent unto him, calling him. + +3:32 And the multitude sat about him, and they said unto him, Behold, +thy mother and thy brethren without seek for thee. + +3:33 And he answered them, saying, Who is my mother, or my brethren? +3:34 And he looked round about on them which sat about him, and said, +Behold my mother and my brethren! 3:35 For whosoever shall do the +will of God, the same is my brother, and my sister, and mother. + +4:1 And he began again to teach by the sea side: and there was +gathered unto him a great multitude, so that he entered into a ship, +and sat in the sea; and the whole multitude was by the sea on the +land. + +4:2 And he taught them many things by parables, and said unto them in +his doctrine, 4:3 Hearken; Behold, there went out a sower to sow: 4:4 +And it came to pass, as he sowed, some fell by the way side, and the +fowls of the air came and devoured it up. + +4:5 And some fell on stony ground, where it had not much earth; and +immediately it sprang up, because it had no depth of earth: 4:6 But +when the sun was up, it was scorched; and because it had no root, it +withered away. + +4:7 And some fell among thorns, and the thorns grew up, and choked it, +and it yielded no fruit. + +4:8 And other fell on good ground, and did yield fruit that sprang up +and increased; and brought forth, some thirty, and some sixty, and +some an hundred. + +4:9 And he said unto them, He that hath ears to hear, let him hear. + +4:10 And when he was alone, they that were about him with the twelve +asked of him the parable. + +4:11 And he said unto them, Unto you it is given to know the mystery +of the kingdom of God: but unto them that are without, all these +things are done in parables: 4:12 That seeing they may see, and not +perceive; and hearing they may hear, and not understand; lest at any +time they should be converted, and their sins should be forgiven them. + +4:13 And he said unto them, Know ye not this parable? and how then +will ye know all parables? 4:14 The sower soweth the word. + +4:15 And these are they by the way side, where the word is sown; but +when they have heard, Satan cometh immediately, and taketh away the +word that was sown in their hearts. + +4:16 And these are they likewise which are sown on stony ground; who, +when they have heard the word, immediately receive it with gladness; +4:17 And have no root in themselves, and so endure but for a time: +afterward, when affliction or persecution ariseth for the word's sake, +immediately they are offended. + +4:18 And these are they which are sown among thorns; such as hear the +word, 4:19 And the cares of this world, and the deceitfulness of +riches, and the lusts of other things entering in, choke the word, and +it becometh unfruitful. + +4:20 And these are they which are sown on good ground; such as hear +the word, and receive it, and bring forth fruit, some thirtyfold, some +sixty, and some an hundred. + +4:21 And he said unto them, Is a candle brought to be put under a +bushel, or under a bed? and not to be set on a candlestick? 4:22 For +there is nothing hid, which shall not be manifested; neither was any +thing kept secret, but that it should come abroad. + +4:23 If any man have ears to hear, let him hear. + +4:24 And he said unto them, Take heed what ye hear: with what measure +ye mete, it shall be measured to you: and unto you that hear shall +more be given. + +4:25 For he that hath, to him shall be given: and he that hath not, +from him shall be taken even that which he hath. + +4:26 And he said, So is the kingdom of God, as if a man should cast +seed into the ground; 4:27 And should sleep, and rise night and day, +and the seed should spring and grow up, he knoweth not how. + +4:28 For the earth bringeth forth fruit of herself; first the blade, +then the ear, after that the full corn in the ear. + +4:29 But when the fruit is brought forth, immediately he putteth in +the sickle, because the harvest is come. + +4:30 And he said, Whereunto shall we liken the kingdom of God? or with +what comparison shall we compare it? 4:31 It is like a grain of +mustard seed, which, when it is sown in the earth, is less than all +the seeds that be in the earth: 4:32 But when it is sown, it groweth +up, and becometh greater than all herbs, and shooteth out great +branches; so that the fowls of the air may lodge under the shadow of +it. + +4:33 And with many such parables spake he the word unto them, as they +were able to hear it. + +4:34 But without a parable spake he not unto them: and when they were +alone, he expounded all things to his disciples. + +4:35 And the same day, when the even was come, he saith unto them, Let +us pass over unto the other side. + +4:36 And when they had sent away the multitude, they took him even as +he was in the ship. And there were also with him other little ships. + +4:37 And there arose a great storm of wind, and the waves beat into +the ship, so that it was now full. + +4:38 And he was in the hinder part of the ship, asleep on a pillow: +and they awake him, and say unto him, Master, carest thou not that we +perish? 4:39 And he arose, and rebuked the wind, and said unto the +sea, Peace, be still. And the wind ceased, and there was a great calm. + +4:40 And he said unto them, Why are ye so fearful? how is it that ye +have no faith? 4:41 And they feared exceedingly, and said one to +another, What manner of man is this, that even the wind and the sea +obey him? 5:1 And they came over unto the other side of the sea, into +the country of the Gadarenes. + +5:2 And when he was come out of the ship, immediately there met him +out of the tombs a man with an unclean spirit, 5:3 Who had his +dwelling among the tombs; and no man could bind him, no, not with +chains: 5:4 Because that he had been often bound with fetters and +chains, and the chains had been plucked asunder by him, and the +fetters broken in pieces: neither could any man tame him. + +5:5 And always, night and day, he was in the mountains, and in the +tombs, crying, and cutting himself with stones. + +5:6 But when he saw Jesus afar off, he ran and worshipped him, 5:7 And +cried with a loud voice, and said, What have I to do with thee, Jesus, +thou Son of the most high God? I adjure thee by God, that thou torment +me not. + +5:8 For he said unto him, Come out of the man, thou unclean spirit. + +5:9 And he asked him, What is thy name? And he answered, saying, My +name is Legion: for we are many. + +5:10 And he besought him much that he would not send them away out of +the country. + +5:11 Now there was there nigh unto the mountains a great herd of swine +feeding. + +5:12 And all the devils besought him, saying, Send us into the swine, +that we may enter into them. + +5:13 And forthwith Jesus gave them leave. And the unclean spirits went +out, and entered into the swine: and the herd ran violently down a +steep place into the sea, (they were about two thousand;) and were +choked in the sea. + +5:14 And they that fed the swine fled, and told it in the city, and in +the country. And they went out to see what it was that was done. + +5:15 And they come to Jesus, and see him that was possessed with the +devil, and had the legion, sitting, and clothed, and in his right +mind: and they were afraid. + +5:16 And they that saw it told them how it befell to him that was +possessed with the devil, and also concerning the swine. + +5:17 And they began to pray him to depart out of their coasts. + +5:18 And when he was come into the ship, he that had been possessed +with the devil prayed him that he might be with him. + +5:19 Howbeit Jesus suffered him not, but saith unto him, Go home to +thy friends, and tell them how great things the Lord hath done for +thee, and hath had compassion on thee. + +5:20 And he departed, and began to publish in Decapolis how great +things Jesus had done for him: and all men did marvel. + +5:21 And when Jesus was passed over again by ship unto the other side, +much people gathered unto him: and he was nigh unto the sea. + +5:22 And, behold, there cometh one of the rulers of the synagogue, +Jairus by name; and when he saw him, he fell at his feet, 5:23 And +besought him greatly, saying, My little daughter lieth at the point of +death: I pray thee, come and lay thy hands on her, that she may be +healed; and she shall live. + +5:24 And Jesus went with him; and much people followed him, and +thronged him. + +5:25 And a certain woman, which had an issue of blood twelve years, +5:26 And had suffered many things of many physicians, and had spent +all that she had, and was nothing bettered, but rather grew worse, +5:27 When she had heard of Jesus, came in the press behind, and +touched his garment. + +5:28 For she said, If I may touch but his clothes, I shall be whole. + +5:29 And straightway the fountain of her blood was dried up; and she +felt in her body that she was healed of that plague. + +5:30 And Jesus, immediately knowing in himself that virtue had gone +out of him, turned him about in the press, and said, Who touched my +clothes? 5:31 And his disciples said unto him, Thou seest the +multitude thronging thee, and sayest thou, Who touched me? 5:32 And +he looked round about to see her that had done this thing. + +5:33 But the woman fearing and trembling, knowing what was done in +her, came and fell down before him, and told him all the truth. + +5:34 And he said unto her, Daughter, thy faith hath made thee whole; +go in peace, and be whole of thy plague. + +5:35 While he yet spake, there came from the ruler of the synagogue's +house certain which said, Thy daughter is dead: why troublest thou the +Master any further? 5:36 As soon as Jesus heard the word that was +spoken, he saith unto the ruler of the synagogue, Be not afraid, only +believe. + +5:37 And he suffered no man to follow him, save Peter, and James, and +John the brother of James. + +5:38 And he cometh to the house of the ruler of the synagogue, and +seeth the tumult, and them that wept and wailed greatly. + +5:39 And when he was come in, he saith unto them, Why make ye this +ado, and weep? the damsel is not dead, but sleepeth. + +5:40 And they laughed him to scorn. But when he had put them all out, +he taketh the father and the mother of the damsel, and them that were +with him, and entereth in where the damsel was lying. + +5:41 And he took the damsel by the hand, and said unto her, Talitha +cumi; which is, being interpreted, Damsel, I say unto thee, arise. + +5:42 And straightway the damsel arose, and walked; for she was of the +age of twelve years. And they were astonished with a great +astonishment. + +5:43 And he charged them straitly that no man should know it; and +commanded that something should be given her to eat. + +6:1 And he went out from thence, and came into his own country; and +his disciples follow him. + +6:2 And when the sabbath day was come, he began to teach in the +synagogue: and many hearing him were astonished, saying, From whence +hath this man these things? and what wisdom is this which is given +unto him, that even such mighty works are wrought by his hands? 6:3 +Is not this the carpenter, the son of Mary, the brother of James, and +Joses, and of Juda, and Simon? and are not his sisters here with us? +And they were offended at him. + +6:4 But Jesus, said unto them, A prophet is not without honour, but in +his own country, and among his own kin, and in his own house. + +6:5 And he could there do no mighty work, save that he laid his hands +upon a few sick folk, and healed them. + +6:6 And he marvelled because of their unbelief. And he went round +about the villages, teaching. + +6:7 And he called unto him the twelve, and began to send them forth by +two and two; and gave them power over unclean spirits; 6:8 And +commanded them that they should take nothing for their journey, save a +staff only; no scrip, no bread, no money in their purse: 6:9 But be +shod with sandals; and not put on two coats. + +6:10 And he said unto them, In what place soever ye enter into an +house, there abide till ye depart from that place. + +6:11 And whosoever shall not receive you, nor hear you, when ye depart +thence, shake off the dust under your feet for a testimony against +them. + +Verily I say unto you, It shall be more tolerable for Sodom and +Gomorrha in the day of judgment, than for that city. + +6:12 And they went out, and preached that men should repent. + +6:13 And they cast out many devils, and anointed with oil many that +were sick, and healed them. + +6:14 And king Herod heard of him; (for his name was spread abroad:) +and he said, That John the Baptist was risen from the dead, and +therefore mighty works do shew forth themselves in him. + +6:15 Others said, That it is Elias. And others said, That it is a +prophet, or as one of the prophets. + +6:16 But when Herod heard thereof, he said, It is John, whom I +beheaded: he is risen from the dead. + +6:17 For Herod himself had sent forth and laid hold upon John, and +bound him in prison for Herodias' sake, his brother Philip's wife: for +he had married her. + +6:18 For John had said unto Herod, It is not lawful for thee to have +thy brother's wife. + +6:19 Therefore Herodias had a quarrel against him, and would have +killed him; but she could not: 6:20 For Herod feared John, knowing +that he was a just man and an holy, and observed him; and when he +heard him, he did many things, and heard him gladly. + +6:21 And when a convenient day was come, that Herod on his birthday +made a supper to his lords, high captains, and chief estates of +Galilee; 6:22 And when the daughter of the said Herodias came in, and +danced, and pleased Herod and them that sat with him, the king said +unto the damsel, Ask of me whatsoever thou wilt, and I will give it +thee. + +6:23 And he sware unto her, Whatsoever thou shalt ask of me, I will +give it thee, unto the half of my kingdom. + +6:24 And she went forth, and said unto her mother, What shall I ask? +And she said, The head of John the Baptist. + +6:25 And she came in straightway with haste unto the king, and asked, +saying, I will that thou give me by and by in a charger the head of +John the Baptist. + +6:26 And the king was exceeding sorry; yet for his oath's sake, and +for their sakes which sat with him, he would not reject her. + +6:27 And immediately the king sent an executioner, and commanded his +head to be brought: and he went and beheaded him in the prison, 6:28 +And brought his head in a charger, and gave it to the damsel: and the +damsel gave it to her mother. + +6:29 And when his disciples heard of it, they came and took up his +corpse, and laid it in a tomb. + +6:30 And the apostles gathered themselves together unto Jesus, and +told him all things, both what they had done, and what they had +taught. + +6:31 And he said unto them, Come ye yourselves apart into a desert +place, and rest a while: for there were many coming and going, and +they had no leisure so much as to eat. + +6:32 And they departed into a desert place by ship privately. + +6:33 And the people saw them departing, and many knew him, and ran +afoot thither out of all cities, and outwent them, and came together +unto him. + +6:34 And Jesus, when he came out, saw much people, and was moved with +compassion toward them, because they were as sheep not having a +shepherd: and he began to teach them many things. + +6:35 And when the day was now far spent, his disciples came unto him, +and said, This is a desert place, and now the time is far passed: 6:36 +Send them away, that they may go into the country round about, and +into the villages, and buy themselves bread: for they have nothing to +eat. + +6:37 He answered and said unto them, Give ye them to eat. And they say +unto him, Shall we go and buy two hundred pennyworth of bread, and +give them to eat? 6:38 He saith unto them, How many loaves have ye? +go and see. And when they knew, they say, Five, and two fishes. + +6:39 And he commanded them to make all sit down by companies upon the +green grass. + +6:40 And they sat down in ranks, by hundreds, and by fifties. + +6:41 And when he had taken the five loaves and the two fishes, he +looked up to heaven, and blessed, and brake the loaves, and gave them +to his disciples to set before them; and the two fishes divided he +among them all. + +6:42 And they did all eat, and were filled. + +6:43 And they took up twelve baskets full of the fragments, and of the +fishes. + +6:44 And they that did eat of the loaves were about five thousand men. + +6:45 And straightway he constrained his disciples to get into the +ship, and to go to the other side before unto Bethsaida, while he sent +away the people. + +6:46 And when he had sent them away, he departed into a mountain to +pray. + +6:47 And when even was come, the ship was in the midst of the sea, and +he alone on the land. + +6:48 And he saw them toiling in rowing; for the wind was contrary unto +them: and about the fourth watch of the night he cometh unto them, +walking upon the sea, and would have passed by them. + +6:49 But when they saw him walking upon the sea, they supposed it had +been a spirit, and cried out: 6:50 For they all saw him, and were +troubled. And immediately he talked with them, and saith unto them, Be +of good cheer: it is I; be not afraid. + +6:51 And he went up unto them into the ship; and the wind ceased: and +they were sore amazed in themselves beyond measure, and wondered. + +6:52 For they considered not the miracle of the loaves: for their +heart was hardened. + +6:53 And when they had passed over, they came into the land of +Gennesaret, and drew to the shore. + +6:54 And when they were come out of the ship, straightway they knew +him, 6:55 And ran through that whole region round about, and began to +carry about in beds those that were sick, where they heard he was. + +6:56 And whithersoever he entered, into villages, or cities, or +country, they laid the sick in the streets, and besought him that they +might touch if it were but the border of his garment: and as many as +touched him were made whole. + +7:1 Then came together unto him the Pharisees, and certain of the +scribes, which came from Jerusalem. + +7:2 And when they saw some of his disciples eat bread with defiled, +that is to say, with unwashen, hands, they found fault. + +7:3 For the Pharisees, and all the Jews, except they wash their hands +oft, eat not, holding the tradition of the elders. + +7:4 And when they come from the market, except they wash, they eat +not. + +And many other things there be, which they have received to hold, as +the washing of cups, and pots, brasen vessels, and of tables. + +7:5 Then the Pharisees and scribes asked him, Why walk not thy +disciples according to the tradition of the elders, but eat bread with +unwashen hands? 7:6 He answered and said unto them, Well hath Esaias +prophesied of you hypocrites, as it is written, This people honoureth +me with their lips, but their heart is far from me. + +7:7 Howbeit in vain do they worship me, teaching for doctrines the +commandments of men. + +7:8 For laying aside the commandment of God, ye hold the tradition of +men, as the washing of pots and cups: and many other such like things +ye do. + +7:9 And he said unto them, Full well ye reject the commandment of God, +that ye may keep your own tradition. + +7:10 For Moses said, Honour thy father and thy mother; and, Whoso +curseth father or mother, let him die the death: 7:11 But ye say, If a +man shall say to his father or mother, It is Corban, that is to say, a +gift, by whatsoever thou mightest be profited by me; he shall be free. + +7:12 And ye suffer him no more to do ought for his father or his +mother; 7:13 Making the word of God of none effect through your +tradition, which ye have delivered: and many such like things do ye. + +7:14 And when he had called all the people unto him, he said unto +them, Hearken unto me every one of you, and understand: 7:15 There is +nothing from without a man, that entering into him can defile him: but +the things which come out of him, those are they that defile the man. + +7:16 If any man have ears to hear, let him hear. + +7:17 And when he was entered into the house from the people, his +disciples asked him concerning the parable. + +7:18 And he saith unto them, Are ye so without understanding also? Do +ye not perceive, that whatsoever thing from without entereth into the +man, it cannot defile him; 7:19 Because it entereth not into his +heart, but into the belly, and goeth out into the draught, purging all +meats? 7:20 And he said, That which cometh out of the man, that +defileth the man. + +7:21 For from within, out of the heart of men, proceed evil thoughts, +adulteries, fornications, murders, 7:22 Thefts, covetousness, +wickedness, deceit, lasciviousness, an evil eye, blasphemy, pride, +foolishness: 7:23 All these evil things come from within, and defile +the man. + +7:24 And from thence he arose, and went into the borders of Tyre and +Sidon, and entered into an house, and would have no man know it: but +he could not be hid. + +7:25 For a certain woman, whose young daughter had an unclean spirit, +heard of him, and came and fell at his feet: 7:26 The woman was a +Greek, a Syrophenician by nation; and she besought him that he would +cast forth the devil out of her daughter. + +7:27 But Jesus said unto her, Let the children first be filled: for it +is not meet to take the children's bread, and to cast it unto the +dogs. + +7:28 And she answered and said unto him, Yes, Lord: yet the dogs under +the table eat of the children's crumbs. + +7:29 And he said unto her, For this saying go thy way; the devil is +gone out of thy daughter. + +7:30 And when she was come to her house, she found the devil gone out, +and her daughter laid upon the bed. + +7:31 And again, departing from the coasts of Tyre and Sidon, he came +unto the sea of Galilee, through the midst of the coasts of Decapolis. + +7:32 And they bring unto him one that was deaf, and had an impediment +in his speech; and they beseech him to put his hand upon him. + +7:33 And he took him aside from the multitude, and put his fingers +into his ears, and he spit, and touched his tongue; 7:34 And looking +up to heaven, he sighed, and saith unto him, Ephphatha, that is, Be +opened. + +7:35 And straightway his ears were opened, and the string of his +tongue was loosed, and he spake plain. + +7:36 And he charged them that they should tell no man: but the more he +charged them, so much the more a great deal they published it; 7:37 +And were beyond measure astonished, saying, He hath done all things +well: he maketh both the deaf to hear, and the dumb to speak. + +8:1 In those days the multitude being very great, and having nothing +to eat, Jesus called his disciples unto him, and saith unto them, 8:2 +I have compassion on the multitude, because they have now been with me +three days, and have nothing to eat: 8:3 And if I send them away +fasting to their own houses, they will faint by the way: for divers of +them came from far. + +8:4 And his disciples answered him, From whence can a man satisfy +these men with bread here in the wilderness? 8:5 And he asked them, +How many loaves have ye? And they said, Seven. + +8:6 And he commanded the people to sit down on the ground: and he took +the seven loaves, and gave thanks, and brake, and gave to his +disciples to set before them; and they did set them before the people. + +8:7 And they had a few small fishes: and he blessed, and commanded to +set them also before them. + +8:8 So they did eat, and were filled: and they took up of the broken +meat that was left seven baskets. + +8:9 And they that had eaten were about four thousand: and he sent them +away. + +8:10 And straightway he entered into a ship with his disciples, and +came into the parts of Dalmanutha. + +8:11 And the Pharisees came forth, and began to question with him, +seeking of him a sign from heaven, tempting him. + +8:12 And he sighed deeply in his spirit, and saith, Why doth this +generation seek after a sign? verily I say unto you, There shall no +sign be given unto this generation. + +8:13 And he left them, and entering into the ship again departed to +the other side. + +8:14 Now the disciples had forgotten to take bread, neither had they +in the ship with them more than one loaf. + +8:15 And he charged them, saying, Take heed, beware of the leaven of +the Pharisees, and of the leaven of Herod. + +8:16 And they reasoned among themselves, saying, It is because we have +no bread. + +8:17 And when Jesus knew it, he saith unto them, Why reason ye, +because ye have no bread? perceive ye not yet, neither understand? +have ye your heart yet hardened? 8:18 Having eyes, see ye not? and +having ears, hear ye not? and do ye not remember? 8:19 When I brake +the five loaves among five thousand, how many baskets full of +fragments took ye up? They say unto him, Twelve. + +8:20 And when the seven among four thousand, how many baskets full of +fragments took ye up? And they said, Seven. + +8:21 And he said unto them, How is it that ye do not understand? 8:22 +And he cometh to Bethsaida; and they bring a blind man unto him, and +besought him to touch him. + +8:23 And he took the blind man by the hand, and led him out of the +town; and when he had spit on his eyes, and put his hands upon him, he +asked him if he saw ought. + +8:24 And he looked up, and said, I see men as trees, walking. + +8:25 After that he put his hands again upon his eyes, and made him +look up: and he was restored, and saw every man clearly. + +8:26 And he sent him away to his house, saying, Neither go into the +town, nor tell it to any in the town. + +8:27 And Jesus went out, and his disciples, into the towns of Caesarea +Philippi: and by the way he asked his disciples, saying unto them, +Whom do men say that I am? 8:28 And they answered, John the Baptist; +but some say, Elias; and others, One of the prophets. + +8:29 And he saith unto them, But whom say ye that I am? And Peter +answereth and saith unto him, Thou art the Christ. + +8:30 And he charged them that they should tell no man of him. + +8:31 And he began to teach them, that the Son of man must suffer many +things, and be rejected of the elders, and of the chief priests, and +scribes, and be killed, and after three days rise again. + +8:32 And he spake that saying openly. And Peter took him, and began to +rebuke him. + +8:33 But when he had turned about and looked on his disciples, he +rebuked Peter, saying, Get thee behind me, Satan: for thou savourest +not the things that be of God, but the things that be of men. + +8:34 And when he had called the people unto him with his disciples +also, he said unto them, Whosoever will come after me, let him deny +himself, and take up his cross, and follow me. + +8:35 For whosoever will save his life shall lose it; but whosoever +shall lose his life for my sake and the gospel's, the same shall save +it. + +8:36 For what shall it profit a man, if he shall gain the whole world, +and lose his own soul? 8:37 Or what shall a man give in exchange for +his soul? 8:38 Whosoever therefore shall be ashamed of me and of my +words in this adulterous and sinful generation; of him also shall the +Son of man be ashamed, when he cometh in the glory of his Father with +the holy angels. + +9:1 And he said unto them, Verily I say unto you, That there be some +of them that stand here, which shall not taste of death, till they +have seen the kingdom of God come with power. + +9:2 And after six days Jesus taketh with him Peter, and James, and +John, and leadeth them up into an high mountain apart by themselves: +and he was transfigured before them. + +9:3 And his raiment became shining, exceeding white as snow; so as no +fuller on earth can white them. + +9:4 And there appeared unto them Elias with Moses: and they were +talking with Jesus. + +9:5 And Peter answered and said to Jesus, Master, it is good for us to +be here: and let us make three tabernacles; one for thee, and one for +Moses, and one for Elias. + +9:6 For he wist not what to say; for they were sore afraid. + +9:7 And there was a cloud that overshadowed them: and a voice came out +of the cloud, saying, This is my beloved Son: hear him. + +9:8 And suddenly, when they had looked round about, they saw no man +any more, save Jesus only with themselves. + +9:9 And as they came down from the mountain, he charged them that they +should tell no man what things they had seen, till the Son of man were +risen from the dead. + +9:10 And they kept that saying with themselves, questioning one with +another what the rising from the dead should mean. + +9:11 And they asked him, saying, Why say the scribes that Elias must +first come? 9:12 And he answered and told them, Elias verily cometh +first, and restoreth all things; and how it is written of the Son of +man, that he must suffer many things, and be set at nought. + +9:13 But I say unto you, That Elias is indeed come, and they have done +unto him whatsoever they listed, as it is written of him. + +9:14 And when he came to his disciples, he saw a great multitude about +them, and the scribes questioning with them. + +9:15 And straightway all the people, when they beheld him, were +greatly amazed, and running to him saluted him. + +9:16 And he asked the scribes, What question ye with them? 9:17 And +one of the multitude answered and said, Master, I have brought unto +thee my son, which hath a dumb spirit; 9:18 And wheresoever he taketh +him, he teareth him: and he foameth, and gnasheth with his teeth, and +pineth away: and I spake to thy disciples that they should cast him +out; and they could not. + +9:19 He answereth him, and saith, O faithless generation, how long +shall I be with you? how long shall I suffer you? bring him unto me. + +9:20 And they brought him unto him: and when he saw him, straightway +the spirit tare him; and he fell on the ground, and wallowed foaming. + +9:21 And he asked his father, How long is it ago since this came unto +him? And he said, Of a child. + +9:22 And ofttimes it hath cast him into the fire, and into the waters, +to destroy him: but if thou canst do any thing, have compassion on us, +and help us. + +9:23 Jesus said unto him, If thou canst believe, all things are +possible to him that believeth. + +9:24 And straightway the father of the child cried out, and said with +tears, Lord, I believe; help thou mine unbelief. + +9:25 When Jesus saw that the people came running together, he rebuked +the foul spirit, saying unto him, Thou dumb and deaf spirit, I charge +thee, come out of him, and enter no more into him. + +9:26 And the spirit cried, and rent him sore, and came out of him: and +he was as one dead; insomuch that many said, He is dead. + +9:27 But Jesus took him by the hand, and lifted him up; and he arose. + +9:28 And when he was come into the house, his disciples asked him +privately, Why could not we cast him out? 9:29 And he said unto them, +This kind can come forth by nothing, but by prayer and fasting. + +9:30 And they departed thence, and passed through Galilee; and he +would not that any man should know it. + +9:31 For he taught his disciples, and said unto them, The Son of man +is delivered into the hands of men, and they shall kill him; and after +that he is killed, he shall rise the third day. + +9:32 But they understood not that saying, and were afraid to ask him. + +9:33 And he came to Capernaum: and being in the house he asked them, +What was it that ye disputed among yourselves by the way? 9:34 But +they held their peace: for by the way they had disputed among +themselves, who should be the greatest. + +9:35 And he sat down, and called the twelve, and saith unto them, If +any man desire to be first, the same shall be last of all, and servant +of all. + +9:36 And he took a child, and set him in the midst of them: and when +he had taken him in his arms, he said unto them, 9:37 Whosoever shall +receive one of such children in my name, receiveth me: and whosoever +shall receive me, receiveth not me, but him that sent me. + +9:38 And John answered him, saying, Master, we saw one casting out +devils in thy name, and he followeth not us: and we forbad him, +because he followeth not us. + +9:39 But Jesus said, Forbid him not: for there is no man which shall +do a miracle in my name, that can lightly speak evil of me. + +9:40 For he that is not against us is on our part. + +9:41 For whosoever shall give you a cup of water to drink in my name, +because ye belong to Christ, verily I say unto you, he shall not lose +his reward. + +9:42 And whosoever shall offend one of these little ones that believe +in me, it is better for him that a millstone were hanged about his +neck, and he were cast into the sea. + +9:43 And if thy hand offend thee, cut it off: it is better for thee to +enter into life maimed, than having two hands to go into hell, into +the fire that never shall be quenched: 9:44 Where their worm dieth +not, and the fire is not quenched. + +9:45 And if thy foot offend thee, cut it off: it is better for thee to +enter halt into life, than having two feet to be cast into hell, into +the fire that never shall be quenched: 9:46 Where their worm dieth +not, and the fire is not quenched. + +9:47 And if thine eye offend thee, pluck it out: it is better for thee +to enter into the kingdom of God with one eye, than having two eyes to +be cast into hell fire: 9:48 Where their worm dieth not, and the fire +is not quenched. + +9:49 For every one shall be salted with fire, and every sacrifice +shall be salted with salt. + +9:50 Salt is good: but if the salt have lost his saltness, wherewith +will ye season it? Have salt in yourselves, and have peace one with +another. + +10:1 And he arose from thence, and cometh into the coasts of Judaea by +the farther side of Jordan: and the people resort unto him again; and, +as he was wont, he taught them again. + +10:2 And the Pharisees came to him, and asked him, Is it lawful for a +man to put away his wife? tempting him. + +10:3 And he answered and said unto them, What did Moses command you? +10:4 And they said, Moses suffered to write a bill of divorcement, and +to put her away. + +10:5 And Jesus answered and said unto them, For the hardness of your +heart he wrote you this precept. + +10:6 But from the beginning of the creation God made them male and +female. + +10:7 For this cause shall a man leave his father and mother, and +cleave to his wife; 10:8 And they twain shall be one flesh: so then +they are no more twain, but one flesh. + +10:9 What therefore God hath joined together, let not man put asunder. + +10:10 And in the house his disciples asked him again of the same +matter. + +10:11 And he saith unto them, Whosoever shall put away his wife, and +marry another, committeth adultery against her. + +10:12 And if a woman shall put away her husband, and be married to +another, she committeth adultery. + +10:13 And they brought young children to him, that he should touch +them: and his disciples rebuked those that brought them. + +10:14 But when Jesus saw it, he was much displeased, and said unto +them, Suffer the little children to come unto me, and forbid them not: +for of such is the kingdom of God. + +10:15 Verily I say unto you, Whosoever shall not receive the kingdom +of God as a little child, he shall not enter therein. + +10:16 And he took them up in his arms, put his hands upon them, and +blessed them. + +10:17 And when he was gone forth into the way, there came one running, +and kneeled to him, and asked him, Good Master, what shall I do that I +may inherit eternal life? 10:18 And Jesus said unto him, Why callest +thou me good? there is none good but one, that is, God. + +10:19 Thou knowest the commandments, Do not commit adultery, Do not +kill, Do not steal, Do not bear false witness, Defraud not, Honour thy +father and mother. 10:20 And he answered and said unto him, Master, +all these have I observed from my youth. + +10:21 Then Jesus beholding him loved him, and said unto him, One thing +thou lackest: go thy way, sell whatsoever thou hast, and give to the +poor, and thou shalt have treasure in heaven: and come, take up the +cross, and follow me. + +10:22 And he was sad at that saying, and went away grieved: for he had +great possessions. + +10:23 And Jesus looked round about, and saith unto his disciples, How +hardly shall they that have riches enter into the kingdom of God! +10:24 And the disciples were astonished at his words. But Jesus +answereth again, and saith unto them, Children, how hard is it for +them that trust in riches to enter into the kingdom of God! 10:25 It +is easier for a camel to go through the eye of a needle, than for a +rich man to enter into the kingdom of God. + +10:26 And they were astonished out of measure, saying among +themselves, Who then can be saved? 10:27 And Jesus looking upon them +saith, With men it is impossible, but not with God: for with God all +things are possible. + +10:28 Then Peter began to say unto him, Lo, we have left all, and have +followed thee. + +10:29 And Jesus answered and said, Verily I say unto you, There is no +man that hath left house, or brethren, or sisters, or father, or +mother, or wife, or children, or lands, for my sake, and the gospel's, +10:30 But he shall receive an hundredfold now in this time, houses, +and brethren, and sisters, and mothers, and children, and lands, with +persecutions; and in the world to come eternal life. + +10:31 But many that are first shall be last; and the last first. + +10:32 And they were in the way going up to Jerusalem; and Jesus went +before them: and they were amazed; and as they followed, they were +afraid. + +And he took again the twelve, and began to tell them what things +should happen unto him, 10:33 Saying, Behold, we go up to Jerusalem; +and the Son of man shall be delivered unto the chief priests, and unto +the scribes; and they shall condemn him to death, and shall deliver +him to the Gentiles: 10:34 And they shall mock him, and shall scourge +him, and shall spit upon him, and shall kill him: and the third day he +shall rise again. + +10:35 And James and John, the sons of Zebedee, come unto him, saying, +Master, we would that thou shouldest do for us whatsoever we shall +desire. + +10:36 And he said unto them, What would ye that I should do for you? +10:37 They said unto him, Grant unto us that we may sit, one on thy +right hand, and the other on thy left hand, in thy glory. + +10:38 But Jesus said unto them, Ye know not what ye ask: can ye drink +of the cup that I drink of? and be baptized with the baptism that I am +baptized with? 10:39 And they said unto him, We can. And Jesus said +unto them, Ye shall indeed drink of the cup that I drink of; and with +the baptism that I am baptized withal shall ye be baptized: 10:40 But +to sit on my right hand and on my left hand is not mine to give; but +it shall be given to them for whom it is prepared. + +10:41 And when the ten heard it, they began to be much displeased with +James and John. + +10:42 But Jesus called them to him, and saith unto them, Ye know that +they which are accounted to rule over the Gentiles exercise lordship +over them; and their great ones exercise authority upon them. + +10:43 But so shall it not be among you: but whosoever will be great +among you, shall be your minister: 10:44 And whosoever of you will be +the chiefest, shall be servant of all. + +10:45 For even the Son of man came not to be ministered unto, but to +minister, and to give his life a ransom for many. + +10:46 And they came to Jericho: and as he went out of Jericho with his +disciples and a great number of people, blind Bartimaeus, the son of +Timaeus, sat by the highway side begging. + +10:47 And when he heard that it was Jesus of Nazareth, he began to cry +out, and say, Jesus, thou son of David, have mercy on me. + +10:48 And many charged him that he should hold his peace: but he cried +the more a great deal, Thou son of David, have mercy on me. + +10:49 And Jesus stood still, and commanded him to be called. And they +call the blind man, saying unto him, Be of good comfort, rise; he +calleth thee. + +10:50 And he, casting away his garment, rose, and came to Jesus. + +10:51 And Jesus answered and said unto him, What wilt thou that I +should do unto thee? The blind man said unto him, Lord, that I might +receive my sight. + +10:52 And Jesus said unto him, Go thy way; thy faith hath made thee +whole. + +And immediately he received his sight, and followed Jesus in the way. + +11:1 And when they came nigh to Jerusalem, unto Bethphage and Bethany, +at the mount of Olives, he sendeth forth two of his disciples, 11:2 +And saith unto them, Go your way into the village over against you: +and as soon as ye be entered into it, ye shall find a colt tied, +whereon never man sat; loose him, and bring him. + +11:3 And if any man say unto you, Why do ye this? say ye that the Lord +hath need of him; and straightway he will send him hither. + +11:4 And they went their way, and found the colt tied by the door +without in a place where two ways met; and they loose him. + +11:5 And certain of them that stood there said unto them, What do ye, +loosing the colt? 11:6 And they said unto them even as Jesus had +commanded: and they let them go. + +11:7 And they brought the colt to Jesus, and cast their garments on +him; and he sat upon him. + +11:8 And many spread their garments in the way: and others cut down +branches off the trees, and strawed them in the way. + +11:9 And they that went before, and they that followed, cried, saying, +Hosanna; Blessed is he that cometh in the name of the Lord: 11:10 +Blessed be the kingdom of our father David, that cometh in the name of +the Lord: Hosanna in the highest. + +11:11 And Jesus entered into Jerusalem, and into the temple: and when +he had looked round about upon all things, and now the eventide was +come, he went out unto Bethany with the twelve. + +11:12 And on the morrow, when they were come from Bethany, he was +hungry: 11:13 And seeing a fig tree afar off having leaves, he came, +if haply he might find any thing thereon: and when he came to it, he +found nothing but leaves; for the time of figs was not yet. + +11:14 And Jesus answered and said unto it, No man eat fruit of thee +hereafter for ever. And his disciples heard it. + +11:15 And they come to Jerusalem: and Jesus went into the temple, and +began to cast out them that sold and bought in the temple, and +overthrew the tables of the moneychangers, and the seats of them that +sold doves; 11:16 And would not suffer that any man should carry any +vessel through the temple. + +11:17 And he taught, saying unto them, Is it not written, My house +shall be called of all nations the house of prayer? but ye have made +it a den of thieves. + +11:18 And the scribes and chief priests heard it, and sought how they +might destroy him: for they feared him, because all the people was +astonished at his doctrine. + +11:19 And when even was come, he went out of the city. + +11:20 And in the morning, as they passed by, they saw the fig tree +dried up from the roots. + +11:21 And Peter calling to remembrance saith unto him, Master, behold, +the fig tree which thou cursedst is withered away. + +11:22 And Jesus answering saith unto them, Have faith in God. + +11:23 For verily I say unto you, That whosoever shall say unto this +mountain, Be thou removed, and be thou cast into the sea; and shall +not doubt in his heart, but shall believe that those things which he +saith shall come to pass; he shall have whatsoever he saith. + +11:24 Therefore I say unto you, What things soever ye desire, when ye +pray, believe that ye receive them, and ye shall have them. + +11:25 And when ye stand praying, forgive, if ye have ought against +any: that your Father also which is in heaven may forgive you your +trespasses. + +11:26 But if ye do not forgive, neither will your Father which is in +heaven forgive your trespasses. + +11:27 And they come again to Jerusalem: and as he was walking in the +temple, there come to him the chief priests, and the scribes, and the +elders, 11:28 And say unto him, By what authority doest thou these +things? and who gave thee this authority to do these things? 11:29 +And Jesus answered and said unto them, I will also ask of you one +question, and answer me, and I will tell you by what authority I do +these things. + +11:30 The baptism of John, was it from heaven, or of men? answer me. + +11:31 And they reasoned with themselves, saying, If we shall say, From +heaven; he will say, Why then did ye not believe him? 11:32 But if we +shall say, Of men; they feared the people: for all men counted John, +that he was a prophet indeed. + +11:33 And they answered and said unto Jesus, We cannot tell. And Jesus +answering saith unto them, Neither do I tell you by what authority I +do these things. + +12:1 And he began to speak unto them by parables. A certain man +planted a vineyard, and set an hedge about it, and digged a place for +the winefat, and built a tower, and let it out to husbandmen, and went +into a far country. + +12:2 And at the season he sent to the husbandmen a servant, that he +might receive from the husbandmen of the fruit of the vineyard. + +12:3 And they caught him, and beat him, and sent him away empty. + +12:4 And again he sent unto them another servant; and at him they cast +stones, and wounded him in the head, and sent him away shamefully +handled. + +12:5 And again he sent another; and him they killed, and many others; +beating some, and killing some. + +12:6 Having yet therefore one son, his wellbeloved, he sent him also +last unto them, saying, They will reverence my son. + +12:7 But those husbandmen said among themselves, This is the heir; +come, let us kill him, and the inheritance shall be our's. + +12:8 And they took him, and killed him, and cast him out of the +vineyard. + +12:9 What shall therefore the lord of the vineyard do? he will come +and destroy the husbandmen, and will give the vineyard unto others. + +12:10 And have ye not read this scripture; The stone which the +builders rejected is become the head of the corner: 12:11 This was the +Lord's doing, and it is marvellous in our eyes? 12:12 And they sought +to lay hold on him, but feared the people: for they knew that he had +spoken the parable against them: and they left him, and went their +way. + +12:13 And they send unto him certain of the Pharisees and of the +Herodians, to catch him in his words. + +12:14 And when they were come, they say unto him, Master, we know that +thou art true, and carest for no man: for thou regardest not the +person of men, but teachest the way of God in truth: Is it lawful to +give tribute to Caesar, or not? 12:15 Shall we give, or shall we not +give? But he, knowing their hypocrisy, said unto them, Why tempt ye +me? bring me a penny, that I may see it. + +12:16 And they brought it. And he saith unto them, Whose is this image +and superscription? And they said unto him, Caesar's. + +12:17 And Jesus answering said unto them, Render to Caesar the things +that are Caesar's, and to God the things that are God's. And they +marvelled at him. + +12:18 Then come unto him the Sadducees, which say there is no +resurrection; and they asked him, saying, 12:19 Master, Moses wrote +unto us, If a man's brother die, and leave his wife behind him, and +leave no children, that his brother should take his wife, and raise up +seed unto his brother. + +12:20 Now there were seven brethren: and the first took a wife, and +dying left no seed. + +12:21 And the second took her, and died, neither left he any seed: and +the third likewise. + +12:22 And the seven had her, and left no seed: last of all the woman +died also. + +12:23 In the resurrection therefore, when they shall rise, whose wife +shall she be of them? for the seven had her to wife. + +12:24 And Jesus answering said unto them, Do ye not therefore err, +because ye know not the scriptures, neither the power of God? 12:25 +For when they shall rise from the dead, they neither marry, nor are +given in marriage; but are as the angels which are in heaven. + +12:26 And as touching the dead, that they rise: have ye not read in +the book of Moses, how in the bush God spake unto him, saying, I am +the God of Abraham, and the God of Isaac, and the God of Jacob? 12:27 +He is not the God of the dead, but the God of the living: ye therefore +do greatly err. + +12:28 And one of the scribes came, and having heard them reasoning +together, and perceiving that he had answered them well, asked him, +Which is the first commandment of all? 12:29 And Jesus answered him, +The first of all the commandments is, Hear, O Israel; The Lord our God +is one Lord: 12:30 And thou shalt love the Lord thy God with all thy +heart, and with all thy soul, and with all thy mind, and with all thy +strength: this is the first commandment. + +12:31 And the second is like, namely this, Thou shalt love thy +neighbour as thyself. There is none other commandment greater than +these. + +12:32 And the scribe said unto him, Well, Master, thou hast said the +truth: for there is one God; and there is none other but he: 12:33 And +to love him with all the heart, and with all the understanding, and +with all the soul, and with all the strength, and to love his +neighbour as himself, is more than all whole burnt offerings and +sacrifices. + +12:34 And when Jesus saw that he answered discreetly, he said unto +him, Thou art not far from the kingdom of God. And no man after that +durst ask him any question. + +12:35 And Jesus answered and said, while he taught in the temple, How +say the scribes that Christ is the son of David? 12:36 For David +himself said by the Holy Ghost, The LORD said to my Lord, Sit thou on +my right hand, till I make thine enemies thy footstool. + +12:37 David therefore himself calleth him Lord; and whence is he then +his son? And the common people heard him gladly. + +12:38 And he said unto them in his doctrine, Beware of the scribes, +which love to go in long clothing, and love salutations in the +marketplaces, 12:39 And the chief seats in the synagogues, and the +uppermost rooms at feasts: 12:40 Which devour widows' houses, and for +a pretence make long prayers: these shall receive greater damnation. + +12:41 And Jesus sat over against the treasury, and beheld how the +people cast money into the treasury: and many that were rich cast in +much. + +12:42 And there came a certain poor widow, and she threw in two mites, +which make a farthing. + +12:43 And he called unto him his disciples, and saith unto them, +Verily I say unto you, That this poor widow hath cast more in, than +all they which have cast into the treasury: 12:44 For all they did +cast in of their abundance; but she of her want did cast in all that +she had, even all her living. + +13:1 And as he went out of the temple, one of his disciples saith unto +him, Master, see what manner of stones and what buildings are here! +13:2 And Jesus answering said unto him, Seest thou these great +buildings? there shall not be left one stone upon another, that shall +not be thrown down. + +13:3 And as he sat upon the mount of Olives over against the temple, +Peter and James and John and Andrew asked him privately, 13:4 Tell us, +when shall these things be? and what shall be the sign when all these +things shall be fulfilled? 13:5 And Jesus answering them began to +say, Take heed lest any man deceive you: 13:6 For many shall come in +my name, saying, I am Christ; and shall deceive many. + +13:7 And when ye shall hear of wars and rumours of wars, be ye not +troubled: for such things must needs be; but the end shall not be yet. + +13:8 For nation shall rise against nation, and kingdom against +kingdom: and there shall be earthquakes in divers places, and there +shall be famines and troubles: these are the beginnings of sorrows. + +13:9 But take heed to yourselves: for they shall deliver you up to +councils; and in the synagogues ye shall be beaten: and ye shall be +brought before rulers and kings for my sake, for a testimony against +them. + +13:10 And the gospel must first be published among all nations. + +13:11 But when they shall lead you, and deliver you up, take no +thought beforehand what ye shall speak, neither do ye premeditate: but +whatsoever shall be given you in that hour, that speak ye: for it is +not ye that speak, but the Holy Ghost. + +13:12 Now the brother shall betray the brother to death, and the +father the son; and children shall rise up against their parents, and +shall cause them to be put to death. + +13:13 And ye shall be hated of all men for my name's sake: but he that +shall endure unto the end, the same shall be saved. + +13:14 But when ye shall see the abomination of desolation, spoken of +by Daniel the prophet, standing where it ought not, (let him that +readeth understand,) then let them that be in Judaea flee to the +mountains: 13:15 And let him that is on the housetop not go down into +the house, neither enter therein, to take any thing out of his house: +13:16 And let him that is in the field not turn back again for to take +up his garment. + +13:17 But woe to them that are with child, and to them that give suck +in those days! 13:18 And pray ye that your flight be not in the +winter. + +13:19 For in those days shall be affliction, such as was not from the +beginning of the creation which God created unto this time, neither +shall be. + +13:20 And except that the Lord had shortened those days, no flesh +should be saved: but for the elect's sake, whom he hath chosen, he +hath shortened the days. + +13:21 And then if any man shall say to you, Lo, here is Christ; or, +lo, he is there; believe him not: 13:22 For false Christs and false +prophets shall rise, and shall shew signs and wonders, to seduce, if +it were possible, even the elect. + +13:23 But take ye heed: behold, I have foretold you all things. + +13:24 But in those days, after that tribulation, the sun shall be +darkened, and the moon shall not give her light, 13:25 And the stars +of heaven shall fall, and the powers that are in heaven shall be +shaken. + +13:26 And then shall they see the Son of man coming in the clouds with +great power and glory. + +13:27 And then shall he send his angels, and shall gather together his +elect from the four winds, from the uttermost part of the earth to the +uttermost part of heaven. + +13:28 Now learn a parable of the fig tree; When her branch is yet +tender, and putteth forth leaves, ye know that summer is near: 13:29 +So ye in like manner, when ye shall see these things come to pass, +know that it is nigh, even at the doors. + +13:30 Verily I say unto you, that this generation shall not pass, till +all these things be done. + +13:31 Heaven and earth shall pass away: but my words shall not pass +away. + +13:32 But of that day and that hour knoweth no man, no, not the angels +which are in heaven, neither the Son, but the Father. + +13:33 Take ye heed, watch and pray: for ye know not when the time is. + +13:34 For the Son of Man is as a man taking a far journey, who left +his house, and gave authority to his servants, and to every man his +work, and commanded the porter to watch. + +13:35 Watch ye therefore: for ye know not when the master of the house +cometh, at even, or at midnight, or at the cockcrowing, or in the +morning: 13:36 Lest coming suddenly he find you sleeping. + +13:37 And what I say unto you I say unto all, Watch. + +14:1 After two days was the feast of the passover, and of unleavened +bread: and the chief priests and the scribes sought how they might +take him by craft, and put him to death. + +14:2 But they said, Not on the feast day, lest there be an uproar of +the people. + +14:3 And being in Bethany in the house of Simon the leper, as he sat +at meat, there came a woman having an alabaster box of ointment of +spikenard very precious; and she brake the box, and poured it on his +head. + +14:4 And there were some that had indignation within themselves, and +said, Why was this waste of the ointment made? 14:5 For it might have +been sold for more than three hundred pence, and have been given to +the poor. And they murmured against her. + +14:6 And Jesus said, Let her alone; why trouble ye her? she hath +wrought a good work on me. + +14:7 For ye have the poor with you always, and whensoever ye will ye +may do them good: but me ye have not always. + +14:8 She hath done what she could: she is come aforehand to anoint my +body to the burying. + +14:9 Verily I say unto you, Wheresoever this gospel shall be preached +throughout the whole world, this also that she hath done shall be +spoken of for a memorial of her. + +14:10 And Judas Iscariot, one of the twelve, went unto the chief +priests, to betray him unto them. + +14:11 And when they heard it, they were glad, and promised to give him +money. And he sought how he might conveniently betray him. + +14:12 And the first day of unleavened bread, when they killed the +passover, his disciples said unto him, Where wilt thou that we go and +prepare that thou mayest eat the passover? 14:13 And he sendeth forth +two of his disciples, and saith unto them, Go ye into the city, and +there shall meet you a man bearing a pitcher of water: follow him. + +14:14 And wheresoever he shall go in, say ye to the goodman of the +house, The Master saith, Where is the guestchamber, where I shall eat +the passover with my disciples? 14:15 And he will shew you a large +upper room furnished and prepared: there make ready for us. + +14:16 And his disciples went forth, and came into the city, and found +as he had said unto them: and they made ready the passover. + +14:17 And in the evening he cometh with the twelve. + +14:18 And as they sat and did eat, Jesus said, Verily I say unto you, +One of you which eateth with me shall betray me. + +14:19 And they began to be sorrowful, and to say unto him one by one, +Is it I? and another said, Is it I? 14:20 And he answered and said +unto them, It is one of the twelve, that dippeth with me in the dish. + +14:21 The Son of man indeed goeth, as it is written of him: but woe to +that man by whom the Son of man is betrayed! good were it for that man +if he had never been born. + +14:22 And as they did eat, Jesus took bread, and blessed, and brake +it, and gave to them, and said, Take, eat: this is my body. + +14:23 And he took the cup, and when he had given thanks, he gave it to +them: and they all drank of it. + +14:24 And he said unto them, This is my blood of the new testament, +which is shed for many. + +14:25 Verily I say unto you, I will drink no more of the fruit of the +vine, until that day that I drink it new in the kingdom of God. + +14:26 And when they had sung an hymn, they went out into the mount of +Olives. + +14:27 And Jesus saith unto them, All ye shall be offended because of +me this night: for it is written, I will smite the shepherd, and the +sheep shall be scattered. + +14:28 But after that I am risen, I will go before you into Galilee. + +14:29 But Peter said unto him, Although all shall be offended, yet +will not I. + +14:30 And Jesus saith unto him, Verily I say unto thee, That this day, +even in this night, before the cock crow twice, thou shalt deny me +thrice. + +14:31 But he spake the more vehemently, If I should die with thee, I +will not deny thee in any wise. Likewise also said they all. + +14:32 And they came to a place which was named Gethsemane: and he +saith to his disciples, Sit ye here, while I shall pray. + +14:33 And he taketh with him Peter and James and John, and began to be +sore amazed, and to be very heavy; 14:34 And saith unto them, My soul +is exceeding sorrowful unto death: tarry ye here, and watch. + +14:35 And he went forward a little, and fell on the ground, and prayed +that, if it were possible, the hour might pass from him. + +14:36 And he said, Abba, Father, all things are possible unto thee; +take away this cup from me: nevertheless not what I will, but what +thou wilt. + +14:37 And he cometh, and findeth them sleeping, and saith unto Peter, +Simon, sleepest thou? couldest not thou watch one hour? 14:38 Watch +ye and pray, lest ye enter into temptation. The spirit truly is ready, +but the flesh is weak. + +14:39 And again he went away, and prayed, and spake the same words. + +14:40 And when he returned, he found them asleep again, (for their +eyes were heavy,) neither wist they what to answer him. + +14:41 And he cometh the third time, and saith unto them, Sleep on now, +and take your rest: it is enough, the hour is come; behold, the Son of +man is betrayed into the hands of sinners. + +14:42 Rise up, let us go; lo, he that betrayeth me is at hand. + +14:43 And immediately, while he yet spake, cometh Judas, one of the +twelve, and with him a great multitude with swords and staves, from +the chief priests and the scribes and the elders. + +14:44 And he that betrayed him had given them a token, saying, +Whomsoever I shall kiss, that same is he; take him, and lead him away +safely. + +14:45 And as soon as he was come, he goeth straightway to him, and +saith, Master, master; and kissed him. + +14:46 And they laid their hands on him, and took him. + +14:47 And one of them that stood by drew a sword, and smote a servant +of the high priest, and cut off his ear. + +14:48 And Jesus answered and said unto them, Are ye come out, as +against a thief, with swords and with staves to take me? 14:49 I was +daily with you in the temple teaching, and ye took me not: but the +scriptures must be fulfilled. + +14:50 And they all forsook him, and fled. + +14:51 And there followed him a certain young man, having a linen cloth +cast about his naked body; and the young men laid hold on him: 14:52 +And he left the linen cloth, and fled from them naked. + +14:53 And they led Jesus away to the high priest: and with him were +assembled all the chief priests and the elders and the scribes. + +14:54 And Peter followed him afar off, even into the palace of the +high priest: and he sat with the servants, and warmed himself at the +fire. + +14:55 And the chief priests and all the council sought for witness +against Jesus to put him to death; and found none. + +14:56 For many bare false witness against him, but their witness +agreed not together. + +14:57 And there arose certain, and bare false witness against him, +saying, 14:58 We heard him say, I will destroy this temple that is +made with hands, and within three days I will build another made +without hands. + +14:59 But neither so did their witness agree together. + +14:60 And the high priest stood up in the midst, and asked Jesus, +saying, Answerest thou nothing? what is it which these witness against +thee? 14:61 But he held his peace, and answered nothing. Again the +high priest asked him, and said unto him, Art thou the Christ, the Son +of the Blessed? 14:62 And Jesus said, I am: and ye shall see the Son +of man sitting on the right hand of power, and coming in the clouds of +heaven. + +14:63 Then the high priest rent his clothes, and saith, What need we +any further witnesses? 14:64 Ye have heard the blasphemy: what think +ye? And they all condemned him to be guilty of death. + +14:65 And some began to spit on him, and to cover his face, and to +buffet him, and to say unto him, Prophesy: and the servants did strike +him with the palms of their hands. + +14:66 And as Peter was beneath in the palace, there cometh one of the +maids of the high priest: 14:67 And when she saw Peter warming +himself, she looked upon him, and said, And thou also wast with Jesus +of Nazareth. + +14:68 But he denied, saying, I know not, neither understand I what +thou sayest. And he went out into the porch; and the cock crew. + +14:69 And a maid saw him again, and began to say to them that stood +by, This is one of them. + +14:70 And he denied it again. And a little after, they that stood by +said again to Peter, Surely thou art one of them: for thou art a +Galilaean, and thy speech agreeth thereto. + +14:71 But he began to curse and to swear, saying, I know not this man +of whom ye speak. + +14:72 And the second time the cock crew. And Peter called to mind the +word that Jesus said unto him, Before the cock crow twice, thou shalt +deny me thrice. And when he thought thereon, he wept. + +15:1 And straightway in the morning the chief priests held a +consultation with the elders and scribes and the whole council, and +bound Jesus, and carried him away, and delivered him to Pilate. + +15:2 And Pilate asked him, Art thou the King of the Jews? And he +answering said unto them, Thou sayest it. + +15:3 And the chief priests accused him of many things: but he answered +nothing. + +15:4 And Pilate asked him again, saying, Answerest thou nothing? +behold how many things they witness against thee. + +15:5 But Jesus yet answered nothing; so that Pilate marvelled. + +15:6 Now at that feast he released unto them one prisoner, whomsoever +they desired. + +15:7 And there was one named Barabbas, which lay bound with them that +had made insurrection with him, who had committed murder in the +insurrection. + +15:8 And the multitude crying aloud began to desire him to do as he +had ever done unto them. + +15:9 But Pilate answered them, saying, Will ye that I release unto you +the King of the Jews? 15:10 For he knew that the chief priests had +delivered him for envy. + +15:11 But the chief priests moved the people, that he should rather +release Barabbas unto them. + +15:12 And Pilate answered and said again unto them, What will ye then +that I shall do unto him whom ye call the King of the Jews? 15:13 And +they cried out again, Crucify him. + +15:14 Then Pilate said unto them, Why, what evil hath he done? And +they cried out the more exceedingly, Crucify him. + +15:15 And so Pilate, willing to content the people, released Barabbas +unto them, and delivered Jesus, when he had scourged him, to be +crucified. + +15:16 And the soldiers led him away into the hall, called Praetorium; +and they call together the whole band. + +15:17 And they clothed him with purple, and platted a crown of thorns, +and put it about his head, 15:18 And began to salute him, Hail, King +of the Jews! 15:19 And they smote him on the head with a reed, and +did spit upon him, and bowing their knees worshipped him. + +15:20 And when they had mocked him, they took off the purple from him, +and put his own clothes on him, and led him out to crucify him. + +15:21 And they compel one Simon a Cyrenian, who passed by, coming out +of the country, the father of Alexander and Rufus, to bear his cross. + +15:22 And they bring him unto the place Golgotha, which is, being +interpreted, The place of a skull. + +15:23 And they gave him to drink wine mingled with myrrh: but he +received it not. + +15:24 And when they had crucified him, they parted his garments, +casting lots upon them, what every man should take. + +15:25 And it was the third hour, and they crucified him. + +15:26 And the superscription of his accusation was written over, THE +KING OF THE JEWS. + +15:27 And with him they crucify two thieves; the one on his right +hand, and the other on his left. + +15:28 And the scripture was fulfilled, which saith, And he was +numbered with the transgressors. + +15:29 And they that passed by railed on him, wagging their heads, and +saying, Ah, thou that destroyest the temple, and buildest it in three +days, 15:30 Save thyself, and come down from the cross. + +15:31 Likewise also the chief priests mocking said among themselves +with the scribes, He saved others; himself he cannot save. + +15:32 Let Christ the King of Israel descend now from the cross, that +we may see and believe. And they that were crucified with him reviled +him. + +15:33 And when the sixth hour was come, there was darkness over the +whole land until the ninth hour. + +15:34 And at the ninth hour Jesus cried with a loud voice, saying, +Eloi, Eloi, lama sabachthani? which is, being interpreted, My God, my +God, why hast thou forsaken me? 15:35 And some of them that stood by, +when they heard it, said, Behold, he calleth Elias. + +15:36 And one ran and filled a spunge full of vinegar, and put it on a +reed, and gave him to drink, saying, Let alone; let us see whether +Elias will come to take him down. + +15:37 And Jesus cried with a loud voice, and gave up the ghost. + +15:38 And the veil of the temple was rent in twain from the top to the +bottom. + +15:39 And when the centurion, which stood over against him, saw that +he so cried out, and gave up the ghost, he said, Truly this man was +the Son of God. + +15:40 There were also women looking on afar off: among whom was Mary +Magdalene, and Mary the mother of James the less and of Joses, and +Salome; 15:41 (Who also, when he was in Galilee, followed him, and +ministered unto him;) and many other women which came up with him unto +Jerusalem. + +15:42 And now when the even was come, because it was the preparation, +that is, the day before the sabbath, 15:43 Joseph of Arimathaea, an +honourable counsellor, which also waited for the kingdom of God, came, +and went in boldly unto Pilate, and craved the body of Jesus. + +15:44 And Pilate marvelled if he were already dead: and calling unto +him the centurion, he asked him whether he had been any while dead. + +15:45 And when he knew it of the centurion, he gave the body to +Joseph. + +15:46 And he bought fine linen, and took him down, and wrapped him in +the linen, and laid him in a sepulchre which was hewn out of a rock, +and rolled a stone unto the door of the sepulchre. + +15:47 And Mary Magdalene and Mary the mother of Joses beheld where he +was laid. + +16:1 And when the sabbath was past, Mary Magdalene, and Mary the +mother of James, and Salome, had bought sweet spices, that they might +come and anoint him. + +16:2 And very early in the morning the first day of the week, they +came unto the sepulchre at the rising of the sun. + +16:3 And they said among themselves, Who shall roll us away the stone +from the door of the sepulchre? 16:4 And when they looked, they saw +that the stone was rolled away: for it was very great. + +16:5 And entering into the sepulchre, they saw a young man sitting on +the right side, clothed in a long white garment; and they were +affrighted. + +16:6 And he saith unto them, Be not affrighted: Ye seek Jesus of +Nazareth, which was crucified: he is risen; he is not here: behold the +place where they laid him. + +16:7 But go your way, tell his disciples and Peter that he goeth +before you into Galilee: there shall ye see him, as he said unto you. + +16:8 And they went out quickly, and fled from the sepulchre; for they +trembled and were amazed: neither said they any thing to any man; for +they were afraid. + +16:9 Now when Jesus was risen early the first day of the week, he +appeared first to Mary Magdalene, out of whom he had cast seven +devils. + +16:10 And she went and told them that had been with him, as they +mourned and wept. + +16:11 And they, when they had heard that he was alive, and had been +seen of her, believed not. + +16:12 After that he appeared in another form unto two of them, as they +walked, and went into the country. + +16:13 And they went and told it unto the residue: neither believed +they them. + +16:14 Afterward he appeared unto the eleven as they sat at meat, and +upbraided them with their unbelief and hardness of heart, because they +believed not them which had seen him after he was risen. + +16:15 And he said unto them, Go ye into all the world, and preach the +gospel to every creature. + +16:16 He that believeth and is baptized shall be saved; but he that +believeth not shall be damned. + +16:17 And these signs shall follow them that believe; In my name shall +they cast out devils; they shall speak with new tongues; 16:18 They +shall take up serpents; and if they drink any deadly thing, it shall +not hurt them; they shall lay hands on the sick, and they shall +recover. + +16:19 So then after the Lord had spoken unto them, he was received up +into heaven, and sat on the right hand of God. + +16:20 And they went forth, and preached every where, the Lord working +with them, and confirming the word with signs following. Amen. + + + +The Gospel According to Saint Luke + + +1:1 Forasmuch as many have taken in hand to set forth in order a +declaration of those things which are most surely believed among us, +1:2 Even as they delivered them unto us, which from the beginning were +eyewitnesses, and ministers of the word; 1:3 It seemed good to me +also, having had perfect understanding of all things from the very +first, to write unto thee in order, most excellent Theophilus, 1:4 +That thou mightest know the certainty of those things, wherein thou +hast been instructed. + +1:5 THERE was in the days of Herod, the king of Judaea, a certain +priest named Zacharias, of the course of Abia: and his wife was of the +daughters of Aaron, and her name was Elisabeth. + +1:6 And they were both righteous before God, walking in all the +commandments and ordinances of the Lord blameless. + +1:7 And they had no child, because that Elisabeth was barren, and they +both were now well stricken in years. + +1:8 And it came to pass, that while he executed the priest's office +before God in the order of his course, 1:9 According to the custom of +the priest's office, his lot was to burn incense when he went into the +temple of the Lord. + +1:10 And the whole multitude of the people were praying without at the +time of incense. + +1:11 And there appeared unto him an angel of the Lord standing on the +right side of the altar of incense. + +1:12 And when Zacharias saw him, he was troubled, and fear fell upon +him. + +1:13 But the angel said unto him, Fear not, Zacharias: for thy prayer +is heard; and thy wife Elisabeth shall bear thee a son, and thou shalt +call his name John. + +1:14 And thou shalt have joy and gladness; and many shall rejoice at +his birth. + +1:15 For he shall be great in the sight of the Lord, and shall drink +neither wine nor strong drink; and he shall be filled with the Holy +Ghost, even from his mother's womb. + +1:16 And many of the children of Israel shall he turn to the Lord +their God. + +1:17 And he shall go before him in the spirit and power of Elias, to +turn the hearts of the fathers to the children, and the disobedient to +the wisdom of the just; to make ready a people prepared for the Lord. + +1:18 And Zacharias said unto the angel, Whereby shall I know this? for +I am an old man, and my wife well stricken in years. + +1:19 And the angel answering said unto him, I am Gabriel, that stand +in the presence of God; and am sent to speak unto thee, and to shew +thee these glad tidings. + +1:20 And, behold, thou shalt be dumb, and not able to speak, until the +day that these things shall be performed, because thou believest not +my words, which shall be fulfilled in their season. + +1:21 And the people waited for Zacharias, and marvelled that he +tarried so long in the temple. + +1:22 And when he came out, he could not speak unto them: and they +perceived that he had seen a vision in the temple: for he beckoned +unto them, and remained speechless. + +1:23 And it came to pass, that, as soon as the days of his +ministration were accomplished, he departed to his own house. + +1:24 And after those days his wife Elisabeth conceived, and hid +herself five months, saying, 1:25 Thus hath the Lord dealt with me in +the days wherein he looked on me, to take away my reproach among men. + +1:26 And in the sixth month the angel Gabriel was sent from God unto a +city of Galilee, named Nazareth, 1:27 To a virgin espoused to a man +whose name was Joseph, of the house of David; and the virgin's name +was Mary. + +1:28 And the angel came in unto her, and said, Hail, thou that art +highly favoured, the Lord is with thee: blessed art thou among women. + +1:29 And when she saw him, she was troubled at his saying, and cast in +her mind what manner of salutation this should be. + +1:30 And the angel said unto her, Fear not, Mary: for thou hast found +favour with God. + +1:31 And, behold, thou shalt conceive in thy womb, and bring forth a +son, and shalt call his name JESUS. + +1:32 He shall be great, and shall be called the Son of the Highest: +and the Lord God shall give unto him the throne of his father David: +1:33 And he shall reign over the house of Jacob for ever; and of his +kingdom there shall be no end. + +1:34 Then said Mary unto the angel, How shall this be, seeing I know +not a man? 1:35 And the angel answered and said unto her, The Holy +Ghost shall come upon thee, and the power of the Highest shall +overshadow thee: therefore also that holy thing which shall be born of +thee shall be called the Son of God. + +1:36 And, behold, thy cousin Elisabeth, she hath also conceived a son +in her old age: and this is the sixth month with her, who was called +barren. + +1:37 For with God nothing shall be impossible. + +1:38 And Mary said, Behold the handmaid of the Lord; be it unto me +according to thy word. And the angel departed from her. + +1:39 And Mary arose in those days, and went into the hill country with +haste, into a city of Juda; 1:40 And entered into the house of +Zacharias, and saluted Elisabeth. + +1:41 And it came to pass, that, when Elisabeth heard the salutation of +Mary, the babe leaped in her womb; and Elisabeth was filled with the +Holy Ghost: 1:42 And she spake out with a loud voice, and said, +Blessed art thou among women, and blessed is the fruit of thy womb. + +1:43 And whence is this to me, that the mother of my Lord should come +to me? 1:44 For, lo, as soon as the voice of thy salutation sounded +in mine ears, the babe leaped in my womb for joy. + +1:45 And blessed is she that believed: for there shall be a +performance of those things which were told her from the Lord. + +1:46 And Mary said, My soul doth magnify the Lord, 1:47 And my spirit +hath rejoiced in God my Saviour. + +1:48 For he hath regarded the low estate of his handmaiden: for, +behold, from henceforth all generations shall call me blessed. + +1:49 For he that is mighty hath done to me great things; and holy is +his name. + +1:50 And his mercy is on them that fear him from generation to +generation. + +1:51 He hath shewed strength with his arm; he hath scattered the proud +in the imagination of their hearts. + +1:52 He hath put down the mighty from their seats, and exalted them of +low degree. + +1:53 He hath filled the hungry with good things; and the rich he hath +sent empty away. + +1:54 He hath holpen his servant Israel, in remembrance of his mercy; +1:55 As he spake to our fathers, to Abraham, and to his seed for ever. + +1:56 And Mary abode with her about three months, and returned to her +own house. + +1:57 Now Elisabeth's full time came that she should be delivered; and +she brought forth a son. + +1:58 And her neighbours and her cousins heard how the Lord had shewed +great mercy upon her; and they rejoiced with her. + +1:59 And it came to pass, that on the eighth day they came to +circumcise the child; and they called him Zacharias, after the name of +his father. + +1:60 And his mother answered and said, Not so; but he shall be called +John. + +1:61 And they said unto her, There is none of thy kindred that is +called by this name. + +1:62 And they made signs to his father, how he would have him called. + +1:63 And he asked for a writing table, and wrote, saying, His name is +John. And they marvelled all. + +1:64 And his mouth was opened immediately, and his tongue loosed, and +he spake, and praised God. + +1:65 And fear came on all that dwelt round about them: and all these +sayings were noised abroad throughout all the hill country of Judaea. + +1:66 And all they that heard them laid them up in their hearts, +saying, What manner of child shall this be! And the hand of the Lord +was with him. + +1:67 And his father Zacharias was filled with the Holy Ghost, and +prophesied, saying, 1:68 Blessed be the Lord God of Israel; for he +hath visited and redeemed his people, 1:69 And hath raised up an horn +of salvation for us in the house of his servant David; 1:70 As he +spake by the mouth of his holy prophets, which have been since the +world began: 1:71 That we should be saved from our enemies, and from +the hand of all that hate us; 1:72 To perform the mercy promised to +our fathers, and to remember his holy covenant; 1:73 The oath which he +sware to our father Abraham, 1:74 That he would grant unto us, that we +being delivered out of the hand of our enemies might serve him without +fear, 1:75 In holiness and righteousness before him, all the days of +our life. + +1:76 And thou, child, shalt be called the prophet of the Highest: for +thou shalt go before the face of the Lord to prepare his ways; 1:77 To +give knowledge of salvation unto his people by the remission of their +sins, 1:78 Through the tender mercy of our God; whereby the dayspring +from on high hath visited us, 1:79 To give light to them that sit in +darkness and in the shadow of death, to guide our feet into the way of +peace. + +1:80 And the child grew, and waxed strong in spirit, and was in the +deserts till the day of his shewing unto Israel. + +2:1 And it came to pass in those days, that there went out a decree +from Caesar Augustus that all the world should be taxed. + +2:2 (And this taxing was first made when Cyrenius was governor of +Syria.) 2:3 And all went to be taxed, every one into his own city. + +2:4 And Joseph also went up from Galilee, out of the city of Nazareth, +into Judaea, unto the city of David, which is called Bethlehem; +(because he was of the house and lineage of David:) 2:5 To be taxed +with Mary his espoused wife, being great with child. + +2:6 And so it was, that, while they were there, the days were +accomplished that she should be delivered. + +2:7 And she brought forth her firstborn son, and wrapped him in +swaddling clothes, and laid him in a manger; because there was no room +for them in the inn. + +2:8 And there were in the same country shepherds abiding in the field, +keeping watch over their flock by night. + +2:9 And, lo, the angel of the Lord came upon them, and the glory of +the Lord shone round about them: and they were sore afraid. + +2:10 And the angel said unto them, Fear not: for, behold, I bring you +good tidings of great joy, which shall be to all people. + +2:11 For unto you is born this day in the city of David a Saviour, +which is Christ the Lord. + +2:12 And this shall be a sign unto you; Ye shall find the babe wrapped +in swaddling clothes, lying in a manger. + +2:13 And suddenly there was with the angel a multitude of the heavenly +host praising God, and saying, 2:14 Glory to God in the highest, and +on earth peace, good will toward men. + +2:15 And it came to pass, as the angels were gone away from them into +heaven, the shepherds said one to another, Let us now go even unto +Bethlehem, and see this thing which is come to pass, which the Lord +hath made known unto us. + +2:16 And they came with haste, and found Mary, and Joseph, and the +babe lying in a manger. + +2:17 And when they had seen it, they made known abroad the saying +which was told them concerning this child. + +2:18 And all they that heard it wondered at those things which were +told them by the shepherds. + +2:19 But Mary kept all these things, and pondered them in her heart. + +2:20 And the shepherds returned, glorifying and praising God for all +the things that they had heard and seen, as it was told unto them. + +2:21 And when eight days were accomplished for the circumcising of the +child, his name was called JESUS, which was so named of the angel +before he was conceived in the womb. + +2:22 And when the days of her purification according to the law of +Moses were accomplished, they brought him to Jerusalem, to present him +to the Lord; 2:23 (As it is written in the law of the LORD, Every male +that openeth the womb shall be called holy to the Lord;) 2:24 And to +offer a sacrifice according to that which is said in the law of the +Lord, A pair of turtledoves, or two young pigeons. + +2:25 And, behold, there was a man in Jerusalem, whose name was Simeon; +and the same man was just and devout, waiting for the consolation of +Israel: and the Holy Ghost was upon him. + +2:26 And it was revealed unto him by the Holy Ghost, that he should +not see death, before he had seen the Lord's Christ. + +2:27 And he came by the Spirit into the temple: and when the parents +brought in the child Jesus, to do for him after the custom of the law, +2:28 Then took he him up in his arms, and blessed God, and said, 2:29 +Lord, now lettest thou thy servant depart in peace, according to thy +word: 2:30 For mine eyes have seen thy salvation, 2:31 Which thou hast +prepared before the face of all people; 2:32 A light to lighten the +Gentiles, and the glory of thy people Israel. + +2:33 And Joseph and his mother marvelled at those things which were +spoken of him. + +2:34 And Simeon blessed them, and said unto Mary his mother, Behold, +this child is set for the fall and rising again of many in Israel; and +for a sign which shall be spoken against; 2:35 (Yea, a sword shall +pierce through thy own soul also,) that the thoughts of many hearts +may be revealed. + +2:36 And there was one Anna, a prophetess, the daughter of Phanuel, of +the tribe of Aser: she was of a great age, and had lived with an +husband seven years from her virginity; 2:37 And she was a widow of +about fourscore and four years, which departed not from the temple, +but served God with fastings and prayers night and day. + +2:38 And she coming in that instant gave thanks likewise unto the +Lord, and spake of him to all them that looked for redemption in +Jerusalem. + +2:39 And when they had performed all things according to the law of +the Lord, they returned into Galilee, to their own city Nazareth. + +2:40 And the child grew, and waxed strong in spirit, filled with +wisdom: and the grace of God was upon him. + +2:41 Now his parents went to Jerusalem every year at the feast of the +passover. + +2:42 And when he was twelve years old, they went up to Jerusalem after +the custom of the feast. + +2:43 And when they had fulfilled the days, as they returned, the child +Jesus tarried behind in Jerusalem; and Joseph and his mother knew not +of it. + +2:44 But they, supposing him to have been in the company, went a day's +journey; and they sought him among their kinsfolk and acquaintance. + +2:45 And when they found him not, they turned back again to Jerusalem, +seeking him. + +2:46 And it came to pass, that after three days they found him in the +temple, sitting in the midst of the doctors, both hearing them, and +asking them questions. + +2:47 And all that heard him were astonished at his understanding and +answers. + +2:48 And when they saw him, they were amazed: and his mother said unto +him, Son, why hast thou thus dealt with us? behold, thy father and I +have sought thee sorrowing. + +2:49 And he said unto them, How is it that ye sought me? wist ye not +that I must be about my Father's business? 2:50 And they understood +not the saying which he spake unto them. + +2:51 And he went down with them, and came to Nazareth, and was subject +unto them: but his mother kept all these sayings in her heart. + +2:52 And Jesus increased in wisdom and stature, and in favour with God +and man. + +3:1 Now in the fifteenth year of the reign of Tiberius Caesar, Pontius +Pilate being governor of Judaea, and Herod being tetrarch of Galilee, +and his brother Philip tetrarch of Ituraea and of the region of +Trachonitis, and Lysanias the tetrarch of Abilene, 3:2 Annas and +Caiaphas being the high priests, the word of God came unto John the +son of Zacharias in the wilderness. + +3:3 And he came into all the country about Jordan, preaching the +baptism of repentance for the remission of sins; 3:4 As it is written +in the book of the words of Esaias the prophet, saying, The voice of +one crying in the wilderness, Prepare ye the way of the Lord, make his +paths straight. + +3:5 Every valley shall be filled, and every mountain and hill shall be +brought low; and the crooked shall be made straight, and the rough +ways shall be made smooth; 3:6 And all flesh shall see the salvation +of God. + +3:7 Then said he to the multitude that came forth to be baptized of +him, O generation of vipers, who hath warned you to flee from the +wrath to come? 3:8 Bring forth therefore fruits worthy of repentance, +and begin not to say within yourselves, We have Abraham to our father: +for I say unto you, That God is able of these stones to raise up +children unto Abraham. + +3:9 And now also the axe is laid unto the root of the trees: every +tree therefore which bringeth not forth good fruit is hewn down, and +cast into the fire. + +3:10 And the people asked him, saying, What shall we do then? 3:11 He +answereth and saith unto them, He that hath two coats, let him impart +to him that hath none; and he that hath meat, let him do likewise. + +3:12 Then came also publicans to be baptized, and said unto him, +Master, what shall we do? 3:13 And he said unto them, Exact no more +than that which is appointed you. + +3:14 And the soldiers likewise demanded of him, saying, And what shall +we do? And he said unto them, Do violence to no man, neither accuse +any falsely; and be content with your wages. + +3:15 And as the people were in expectation, and all men mused in their +hearts of John, whether he were the Christ, or not; 3:16 John +answered, saying unto them all, I indeed baptize you with water; but +one mightier than I cometh, the latchet of whose shoes I am not worthy +to unloose: he shall baptize you with the Holy Ghost and with fire: +3:17 Whose fan is in his hand, and he will throughly purge his floor, +and will gather the wheat into his garner; but the chaff he will burn +with fire unquenchable. + +3:18 And many other things in his exhortation preached he unto the +people. + +3:19 But Herod the tetrarch, being reproved by him for Herodias his +brother Philip's wife, and for all the evils which Herod had done, +3:20 Added yet this above all, that he shut up John in prison. + +3:21 Now when all the people were baptized, it came to pass, that +Jesus also being baptized, and praying, the heaven was opened, 3:22 +And the Holy Ghost descended in a bodily shape like a dove upon him, +and a voice came from heaven, which said, Thou art my beloved Son; in +thee I am well pleased. + +3:23 And Jesus himself began to be about thirty years of age, being +(as was supposed) the son of Joseph, which was the son of Heli, 3:24 +Which was the son of Matthat, which was the son of Levi, which was the +son of Melchi, which was the son of Janna, which was the son of +Joseph, 3:25 Which was the son of Mattathias, which was the son of +Amos, which was the son of Naum, which was the son of Esli, which was +the son of Nagge, 3:26 Which was the son of Maath, which was the son +of Mattathias, which was the son of Semei, which was the son of +Joseph, which was the son of Juda, 3:27 Which was the son of Joanna, +which was the son of Rhesa, which was the son of Zorobabel, which was +the son of Salathiel, which was the son of Neri, 3:28 Which was the +son of Melchi, which was the son of Addi, which was the son of Cosam, +which was the son of Elmodam, which was the son of Er, 3:29 Which was +the son of Jose, which was the son of Eliezer, which was the son of +Jorim, which was the son of Matthat, which was the son of Levi, 3:30 +Which was the son of Simeon, which was the son of Juda, which was the +son of Joseph, which was the son of Jonan, which was the son of +Eliakim, 3:31 Which was the son of Melea, which was the son of Menan, +which was the son of Mattatha, which was the son of Nathan, which was +the son of David, 3:32 Which was the son of Jesse, which was the son +of Obed, which was the son of Booz, which was the son of Salmon, which +was the son of Naasson, 3:33 Which was the son of Aminadab, which was +the son of Aram, which was the son of Esrom, which was the son of +Phares, which was the son of Juda, 3:34 Which was the son of Jacob, +which was the son of Isaac, which was the son of Abraham, which was +the son of Thara, which was the son of Nachor, 3:35 Which was the son +of Saruch, which was the son of Ragau, which was the son of Phalec, +which was the son of Heber, which was the son of Sala, 3:36 Which was +the son of Cainan, which was the son of Arphaxad, which was the son of +Sem, which was the son of Noe, which was the son of Lamech, 3:37 Which +was the son of Mathusala, which was the son of Enoch, which was the +son of Jared, which was the son of Maleleel, which was the son of +Cainan, 3:38 Which was the son of Enos, which was the son of Seth, +which was the son of Adam, which was the son of God. + +4:1 And Jesus being full of the Holy Ghost returned from Jordan, and +was led by the Spirit into the wilderness, 4:2 Being forty days +tempted of the devil. And in those days he did eat nothing: and when +they were ended, he afterward hungered. + +4:3 And the devil said unto him, If thou be the Son of God, command +this stone that it be made bread. + +4:4 And Jesus answered him, saying, It is written, That man shall not +live by bread alone, but by every word of God. + +4:5 And the devil, taking him up into an high mountain, shewed unto +him all the kingdoms of the world in a moment of time. + +4:6 And the devil said unto him, All this power will I give thee, and +the glory of them: for that is delivered unto me; and to whomsoever I +will I give it. + +4:7 If thou therefore wilt worship me, all shall be thine. + +4:8 And Jesus answered and said unto him, Get thee behind me, Satan: +for it is written, Thou shalt worship the Lord thy God, and him only +shalt thou serve. + +4:9 And he brought him to Jerusalem, and set him on a pinnacle of the +temple, and said unto him, If thou be the Son of God, cast thyself +down from hence: 4:10 For it is written, He shall give his angels +charge over thee, to keep thee: 4:11 And in their hands they shall +bear thee up, lest at any time thou dash thy foot against a stone. + +4:12 And Jesus answering said unto him, It is said, Thou shalt not +tempt the Lord thy God. + +4:13 And when the devil had ended all the temptation, he departed from +him for a season. + +4:14 And Jesus returned in the power of the Spirit into Galilee: and +there went out a fame of him through all the region round about. + +4:15 And he taught in their synagogues, being glorified of all. + +4:16 And he came to Nazareth, where he had been brought up: and, as +his custom was, he went into the synagogue on the sabbath day, and +stood up for to read. + +4:17 And there was delivered unto him the book of the prophet Esaias. +And when he had opened the book, he found the place where it was +written, 4:18 The Spirit of the Lord is upon me, because he hath +anointed me to preach the gospel to the poor; he hath sent me to heal +the brokenhearted, to preach deliverance to the captives, and +recovering of sight to the blind, to set at liberty them that are +bruised, 4:19 To preach the acceptable year of the Lord. + +4:20 And he closed the book, and he gave it again to the minister, and +sat down. And the eyes of all them that were in the synagogue were +fastened on him. + +4:21 And he began to say unto them, This day is this scripture +fulfilled in your ears. + +4:22 And all bare him witness, and wondered at the gracious words +which proceeded out of his mouth. And they said, Is not this Joseph's +son? 4:23 And he said unto them, Ye will surely say unto me this +proverb, Physician, heal thyself: whatsoever we have heard done in +Capernaum, do also here in thy country. + +4:24 And he said, Verily I say unto you, No prophet is accepted in his +own country. + +4:25 But I tell you of a truth, many widows were in Israel in the days +of Elias, when the heaven was shut up three years and six months, when +great famine was throughout all the land; 4:26 But unto none of them +was Elias sent, save unto Sarepta, a city of Sidon, unto a woman that +was a widow. + +4:27 And many lepers were in Israel in the time of Eliseus the +prophet; and none of them was cleansed, saving Naaman the Syrian. + +4:28 And all they in the synagogue, when they heard these things, were +filled with wrath, 4:29 And rose up, and thrust him out of the city, +and led him unto the brow of the hill whereon their city was built, +that they might cast him down headlong. + +4:30 But he passing through the midst of them went his way, 4:31 And +came down to Capernaum, a city of Galilee, and taught them on the +sabbath days. + +4:32 And they were astonished at his doctrine: for his word was with +power. + +4:33 And in the synagogue there was a man, which had a spirit of an +unclean devil, and cried out with a loud voice, 4:34 Saying, Let us +alone; what have we to do with thee, thou Jesus of Nazareth? art thou +come to destroy us? I know thee who thou art; the Holy One of God. + +4:35 And Jesus rebuked him, saying, Hold thy peace, and come out of +him. + +And when the devil had thrown him in the midst, he came out of him, +and hurt him not. + +4:36 And they were all amazed, and spake among themselves, saying, +What a word is this! for with authority and power he commandeth the +unclean spirits, and they come out. + +4:37 And the fame of him went out into every place of the country +round about. + +4:38 And he arose out of the synagogue, and entered into Simon's +house. + +And Simon's wife's mother was taken with a great fever; and they +besought him for her. + +4:39 And he stood over her, and rebuked the fever; and it left her: +and immediately she arose and ministered unto them. + +4:40 Now when the sun was setting, all they that had any sick with +divers diseases brought them unto him; and he laid his hands on every +one of them, and healed them. + +4:41 And devils also came out of many, crying out, and saying, Thou +art Christ the Son of God. And he rebuking them suffered them not to +speak: for they knew that he was Christ. + +4:42 And when it was day, he departed and went into a desert place: +and the people sought him, and came unto him, and stayed him, that he +should not depart from them. + +4:43 And he said unto them, I must preach the kingdom of God to other +cities also: for therefore am I sent. + +4:44 And he preached in the synagogues of Galilee. + +5:1 And it came to pass, that, as the people pressed upon him to hear +the word of God, he stood by the lake of Gennesaret, 5:2 And saw two +ships standing by the lake: but the fishermen were gone out of them, +and were washing their nets. + +5:3 And he entered into one of the ships, which was Simon's, and +prayed him that he would thrust out a little from the land. And he sat +down, and taught the people out of the ship. + +5:4 Now when he had left speaking, he said unto Simon, Launch out into +the deep, and let down your nets for a draught. + +5:5 And Simon answering said unto him, Master, we have toiled all the +night, and have taken nothing: nevertheless at thy word I will let +down the net. + +5:6 And when they had this done, they inclosed a great multitude of +fishes: and their net brake. + +5:7 And they beckoned unto their partners, which were in the other +ship, that they should come and help them. And they came, and filled +both the ships, so that they began to sink. + +5:8 When Simon Peter saw it, he fell down at Jesus' knees, saying, +Depart from me; for I am a sinful man, O Lord. + +5:9 For he was astonished, and all that were with him, at the draught +of the fishes which they had taken: 5:10 And so was also James, and +John, the sons of Zebedee, which were partners with Simon. And Jesus +said unto Simon, Fear not; from henceforth thou shalt catch men. + +5:11 And when they had brought their ships to land, they forsook all, +and followed him. + +5:12 And it came to pass, when he was in a certain city, behold a man +full of leprosy: who seeing Jesus fell on his face, and besought him, +saying, Lord, if thou wilt, thou canst make me clean. + +5:13 And he put forth his hand, and touched him, saying, I will: be +thou clean. And immediately the leprosy departed from him. + +5:14 And he charged him to tell no man: but go, and shew thyself to +the priest, and offer for thy cleansing, according as Moses commanded, +for a testimony unto them. + +5:15 But so much the more went there a fame abroad of him: and great +multitudes came together to hear, and to be healed by him of their +infirmities. + +5:16 And he withdrew himself into the wilderness, and prayed. + +5:17 And it came to pass on a certain day, as he was teaching, that +there were Pharisees and doctors of the law sitting by, which were +come out of every town of Galilee, and Judaea, and Jerusalem: and the +power of the Lord was present to heal them. + +5:18 And, behold, men brought in a bed a man which was taken with a +palsy: and they sought means to bring him in, and to lay him before +him. + +5:19 And when they could not find by what way they might bring him in +because of the multitude, they went upon the housetop, and let him +down through the tiling with his couch into the midst before Jesus. + +5:20 And when he saw their faith, he said unto him, Man, thy sins are +forgiven thee. + +5:21 And the scribes and the Pharisees began to reason, saying, Who is +this which speaketh blasphemies? Who can forgive sins, but God alone? +5:22 But when Jesus perceived their thoughts, he answering said unto +them, What reason ye in your hearts? 5:23 Whether is easier, to say, +Thy sins be forgiven thee; or to say, Rise up and walk? 5:24 But that +ye may know that the Son of man hath power upon earth to forgive sins, +(he said unto the sick of the palsy,) I say unto thee, Arise, and take +up thy couch, and go into thine house. + +5:25 And immediately he rose up before them, and took up that whereon +he lay, and departed to his own house, glorifying God. + +5:26 And they were all amazed, and they glorified God, and were filled +with fear, saying, We have seen strange things to day. + +5:27 And after these things he went forth, and saw a publican, named +Levi, sitting at the receipt of custom: and he said unto him, Follow +me. + +5:28 And he left all, rose up, and followed him. + +5:29 And Levi made him a great feast in his own house: and there was a +great company of publicans and of others that sat down with them. + +5:30 But their scribes and Pharisees murmured against his disciples, +saying, Why do ye eat and drink with publicans and sinners? 5:31 And +Jesus answering said unto them, They that are whole need not a +physician; but they that are sick. + +5:32 I came not to call the righteous, but sinners to repentance. + +5:33 And they said unto him, Why do the disciples of John fast often, +and make prayers, and likewise the disciples of the Pharisees; but +thine eat and drink? 5:34 And he said unto them, Can ye make the +children of the bridechamber fast, while the bridegroom is with them? +5:35 But the days will come, when the bridegroom shall be taken away +from them, and then shall they fast in those days. + +5:36 And he spake also a parable unto them; No man putteth a piece of +a new garment upon an old; if otherwise, then both the new maketh a +rent, and the piece that was taken out of the new agreeth not with the +old. + +5:37 And no man putteth new wine into old bottles; else the new wine +will burst the bottles, and be spilled, and the bottles shall perish. + +5:38 But new wine must be put into new bottles; and both are +preserved. + +5:39 No man also having drunk old wine straightway desireth new: for +he saith, The old is better. + +6:1 And it came to pass on the second sabbath after the first, that he +went through the corn fields; and his disciples plucked the ears of +corn, and did eat, rubbing them in their hands. + +6:2 And certain of the Pharisees said unto them, Why do ye that which +is not lawful to do on the sabbath days? 6:3 And Jesus answering them +said, Have ye not read so much as this, what David did, when himself +was an hungred, and they which were with him; 6:4 How he went into the +house of God, and did take and eat the shewbread, and gave also to +them that were with him; which it is not lawful to eat but for the +priests alone? 6:5 And he said unto them, That the Son of man is Lord +also of the sabbath. + +6:6 And it came to pass also on another sabbath, that he entered into +the synagogue and taught: and there was a man whose right hand was +withered. + +6:7 And the scribes and Pharisees watched him, whether he would heal +on the sabbath day; that they might find an accusation against him. + +6:8 But he knew their thoughts, and said to the man which had the +withered hand, Rise up, and stand forth in the midst. And he arose and +stood forth. + +6:9 Then said Jesus unto them, I will ask you one thing; Is it lawful +on the sabbath days to do good, or to do evil? to save life, or to +destroy it? 6:10 And looking round about upon them all, he said unto +the man, Stretch forth thy hand. And he did so: and his hand was +restored whole as the other. + +6:11 And they were filled with madness; and communed one with another +what they might do to Jesus. + +6:12 And it came to pass in those days, that he went out into a +mountain to pray, and continued all night in prayer to God. + +6:13 And when it was day, he called unto him his disciples: and of +them he chose twelve, whom also he named apostles; 6:14 Simon, (whom +he also named Peter,) and Andrew his brother, James and John, Philip +and Bartholomew, 6:15 Matthew and Thomas, James the son of Alphaeus, +and Simon called Zelotes, 6:16 And Judas the brother of James, and +Judas Iscariot, which also was the traitor. + +6:17 And he came down with them, and stood in the plain, and the +company of his disciples, and a great multitude of people out of all +Judaea and Jerusalem, and from the sea coast of Tyre and Sidon, which +came to hear him, and to be healed of their diseases; 6:18 And they +that were vexed with unclean spirits: and they were healed. + +6:19 And the whole multitude sought to touch him: for there went +virtue out of him, and healed them all. + +6:20 And he lifted up his eyes on his disciples, and said, Blessed be +ye poor: for yours is the kingdom of God. + +6:21 Blessed are ye that hunger now: for ye shall be filled. Blessed +are ye that weep now: for ye shall laugh. + +6:22 Blessed are ye, when men shall hate you, and when they shall +separate you from their company, and shall reproach you, and cast out +your name as evil, for the Son of man's sake. + +6:23 Rejoice ye in that day, and leap for joy: for, behold, your +reward is great in heaven: for in the like manner did their fathers +unto the prophets. + +6:24 But woe unto you that are rich! for ye have received your +consolation. + +6:25 Woe unto you that are full! for ye shall hunger. Woe unto you +that laugh now! for ye shall mourn and weep. + +6:26 Woe unto you, when all men shall speak well of you! for so did +their fathers to the false prophets. + +6:27 But I say unto you which hear, Love your enemies, do good to them +which hate you, 6:28 Bless them that curse you, and pray for them +which despitefully use you. + +6:29 And unto him that smiteth thee on the one cheek offer also the +other; and him that taketh away thy cloak forbid not to take thy coat +also. + +6:30 Give to every man that asketh of thee; and of him that taketh +away thy goods ask them not again. + +6:31 And as ye would that men should do to you, do ye also to them +likewise. + +6:32 For if ye love them which love you, what thank have ye? for +sinners also love those that love them. + +6:33 And if ye do good to them which do good to you, what thank have +ye? for sinners also do even the same. + +6:34 And if ye lend to them of whom ye hope to receive, what thank +have ye? for sinners also lend to sinners, to receive as much again. + +6:35 But love ye your enemies, and do good, and lend, hoping for +nothing again; and your reward shall be great, and ye shall be the +children of the Highest: for he is kind unto the unthankful and to the +evil. + +6:36 Be ye therefore merciful, as your Father also is merciful. + +6:37 Judge not, and ye shall not be judged: condemn not, and ye shall +not be condemned: forgive, and ye shall be forgiven: 6:38 Give, and it +shall be given unto you; good measure, pressed down, and shaken +together, and running over, shall men give into your bosom. For with +the same measure that ye mete withal it shall be measured to you +again. + +6:39 And he spake a parable unto them, Can the blind lead the blind? +shall they not both fall into the ditch? 6:40 The disciple is not +above his master: but every one that is perfect shall be as his +master. + +6:41 And why beholdest thou the mote that is in thy brother's eye, but +perceivest not the beam that is in thine own eye? 6:42 Either how +canst thou say to thy brother, Brother, let me pull out the mote that +is in thine eye, when thou thyself beholdest not the beam that is in +thine own eye? Thou hypocrite, cast out first the beam out of thine +own eye, and then shalt thou see clearly to pull out the mote that is +in thy brother's eye. + +6:43 For a good tree bringeth not forth corrupt fruit; neither doth a +corrupt tree bring forth good fruit. + +6:44 For every tree is known by his own fruit. For of thorns men do +not gather figs, nor of a bramble bush gather they grapes. + +6:45 A good man out of the good treasure of his heart bringeth forth +that which is good; and an evil man out of the evil treasure of his +heart bringeth forth that which is evil: for of the abundance of the +heart his mouth speaketh. + +6:46 And why call ye me, Lord, Lord, and do not the things which I +say? 6:47 Whosoever cometh to me, and heareth my sayings, and doeth +them, I will shew you to whom he is like: 6:48 He is like a man which +built an house, and digged deep, and laid the foundation on a rock: +and when the flood arose, the stream beat vehemently upon that house, +and could not shake it: for it was founded upon a rock. + +6:49 But he that heareth, and doeth not, is like a man that without a +foundation built an house upon the earth; against which the stream did +beat vehemently, and immediately it fell; and the ruin of that house +was great. + +7:1 Now when he had ended all his sayings in the audience of the +people, he entered into Capernaum. + +7:2 And a certain centurion's servant, who was dear unto him, was +sick, and ready to die. + +7:3 And when he heard of Jesus, he sent unto him the elders of the +Jews, beseeching him that he would come and heal his servant. + +7:4 And when they came to Jesus, they besought him instantly, saying, +That he was worthy for whom he should do this: 7:5 For he loveth our +nation, and he hath built us a synagogue. + +7:6 Then Jesus went with them. And when he was now not far from the +house, the centurion sent friends to him, saying unto him, Lord, +trouble not thyself: for I am not worthy that thou shouldest enter +under my roof: 7:7 Wherefore neither thought I myself worthy to come +unto thee: but say in a word, and my servant shall be healed. + +7:8 For I also am a man set under authority, having under me soldiers, +and I say unto one, Go, and he goeth; and to another, Come, and he +cometh; and to my servant, Do this, and he doeth it. + +7:9 When Jesus heard these things, he marvelled at him, and turned him +about, and said unto the people that followed him, I say unto you, I +have not found so great faith, no, not in Israel. + +7:10 And they that were sent, returning to the house, found the +servant whole that had been sick. + +7:11 And it came to pass the day after, that he went into a city +called Nain; and many of his disciples went with him, and much people. + +7:12 Now when he came nigh to the gate of the city, behold, there was +a dead man carried out, the only son of his mother, and she was a +widow: and much people of the city was with her. + +7:13 And when the Lord saw her, he had compassion on her, and said +unto her, Weep not. + +7:14 And he came and touched the bier: and they that bare him stood +still. + +And he said, Young man, I say unto thee, Arise. + +7:15 And he that was dead sat up, and began to speak. And he delivered +him to his mother. + +7:16 And there came a fear on all: and they glorified God, saying, +That a great prophet is risen up among us; and, That God hath visited +his people. + +7:17 And this rumour of him went forth throughout all Judaea, and +throughout all the region round about. + +7:18 And the disciples of John shewed him of all these things. + +7:19 And John calling unto him two of his disciples sent them to +Jesus, saying, Art thou he that should come? or look we for another? +7:20 When the men were come unto him, they said, John Baptist hath +sent us unto thee, saying, Art thou he that should come? or look we +for another? 7:21 And in that same hour he cured many of their +infirmities and plagues, and of evil spirits; and unto many that were +blind he gave sight. + +7:22 Then Jesus answering said unto them, Go your way, and tell John +what things ye have seen and heard; how that the blind see, the lame +walk, the lepers are cleansed, the deaf hear, the dead are raised, to +the poor the gospel is preached. + +7:23 And blessed is he, whosoever shall not be offended in me. + +7:24 And when the messengers of John were departed, he began to speak +unto the people concerning John, What went ye out into the wilderness +for to see? A reed shaken with the wind? 7:25 But what went ye out +for to see? A man clothed in soft raiment? Behold, they which are +gorgeously apparelled, and live delicately, are in kings' courts. + +7:26 But what went ye out for to see? A prophet? Yea, I say unto you, +and much more than a prophet. + +7:27 This is he, of whom it is written, Behold, I send my messenger +before thy face, which shall prepare thy way before thee. + +7:28 For I say unto you, Among those that are born of women there is +not a greater prophet than John the Baptist: but he that is least in +the kingdom of God is greater than he. + +7:29 And all the people that heard him, and the publicans, justified +God, being baptized with the baptism of John. + +7:30 But the Pharisees and lawyers rejected the counsel of God against +themselves, being not baptized of him. + +7:31 And the Lord said, Whereunto then shall I liken the men of this +generation? and to what are they like? 7:32 They are like unto +children sitting in the marketplace, and calling one to another, and +saying, We have piped unto you, and ye have not danced; we have +mourned to you, and ye have not wept. + +7:33 For John the Baptist came neither eating bread nor drinking wine; +and ye say, He hath a devil. + +7:34 The Son of man is come eating and drinking; and ye say, Behold a +gluttonous man, and a winebibber, a friend of publicans and sinners! +7:35 But wisdom is justified of all her children. + +7:36 And one of the Pharisees desired him that he would eat with him. +And he went into the Pharisee's house, and sat down to meat. + +7:37 And, behold, a woman in the city, which was a sinner, when she +knew that Jesus sat at meat in the Pharisee's house, brought an +alabaster box of ointment, 7:38 And stood at his feet behind him +weeping, and began to wash his feet with tears, and did wipe them with +the hairs of her head, and kissed his feet, and anointed them with the +ointment. + +7:39 Now when the Pharisee which had bidden him saw it, he spake +within himself, saying, This man, if he were a prophet, would have +known who and what manner of woman this is that toucheth him: for she +is a sinner. + +7:40 And Jesus answering said unto him, Simon, I have somewhat to say +unto thee. And he saith, Master, say on. + +7:41 There was a certain creditor which had two debtors: the one owed +five hundred pence, and the other fifty. + +7:42 And when they had nothing to pay, he frankly forgave them both. +Tell me therefore, which of them will love him most? 7:43 Simon +answered and said, I suppose that he, to whom he forgave most. + +And he said unto him, Thou hast rightly judged. + +7:44 And he turned to the woman, and said unto Simon, Seest thou this +woman? I entered into thine house, thou gavest me no water for my +feet: but she hath washed my feet with tears, and wiped them with the +hairs of her head. + +7:45 Thou gavest me no kiss: but this woman since the time I came in +hath not ceased to kiss my feet. + +7:46 My head with oil thou didst not anoint: but this woman hath +anointed my feet with ointment. + +7:47 Wherefore I say unto thee, Her sins, which are many, are +forgiven; for she loved much: but to whom little is forgiven, the same +loveth little. + +7:48 And he said unto her, Thy sins are forgiven. + +7:49 And they that sat at meat with him began to say within +themselves, Who is this that forgiveth sins also? 7:50 And he said to +the woman, Thy faith hath saved thee; go in peace. + +8:1 And it came to pass afterward, that he went throughout every city +and village, preaching and shewing the glad tidings of the kingdom of +God: and the twelve were with him, 8:2 And certain women, which had +been healed of evil spirits and infirmities, Mary called Magdalene, +out of whom went seven devils, 8:3 And Joanna the wife of Chuza +Herod's steward, and Susanna, and many others, which ministered unto +him of their substance. + +8:4 And when much people were gathered together, and were come to him +out of every city, he spake by a parable: 8:5 A sower went out to sow +his seed: and as he sowed, some fell by the way side; and it was +trodden down, and the fowls of the air devoured it. + +8:6 And some fell upon a rock; and as soon as it was sprung up, it +withered away, because it lacked moisture. + +8:7 And some fell among thorns; and the thorns sprang up with it, and +choked it. + +8:8 And other fell on good ground, and sprang up, and bare fruit an +hundredfold. And when he had said these things, he cried, He that hath +ears to hear, let him hear. + +8:9 And his disciples asked him, saying, What might this parable be? +8:10 And he said, Unto you it is given to know the mysteries of the +kingdom of God: but to others in parables; that seeing they might not +see, and hearing they might not understand. + +8:11 Now the parable is this: The seed is the word of God. + +8:12 Those by the way side are they that hear; then cometh the devil, +and taketh away the word out of their hearts, lest they should believe +and be saved. + +8:13 They on the rock are they, which, when they hear, receive the +word with joy; and these have no root, which for a while believe, and +in time of temptation fall away. + +8:14 And that which fell among thorns are they, which, when they have +heard, go forth, and are choked with cares and riches and pleasures of +this life, and bring no fruit to perfection. + +8:15 But that on the good ground are they, which in an honest and good +heart, having heard the word, keep it, and bring forth fruit with +patience. + +8:16 No man, when he hath lighted a candle, covereth it with a vessel, +or putteth it under a bed; but setteth it on a candlestick, that they +which enter in may see the light. + +8:17 For nothing is secret, that shall not be made manifest; neither +any thing hid, that shall not be known and come abroad. + +8:18 Take heed therefore how ye hear: for whosoever hath, to him shall +be given; and whosoever hath not, from him shall be taken even that +which he seemeth to have. + +8:19 Then came to him his mother and his brethren, and could not come +at him for the press. + +8:20 And it was told him by certain which said, Thy mother and thy +brethren stand without, desiring to see thee. + +8:21 And he answered and said unto them, My mother and my brethren are +these which hear the word of God, and do it. + +8:22 Now it came to pass on a certain day, that he went into a ship +with his disciples: and he said unto them, Let us go over unto the +other side of the lake. And they launched forth. + +8:23 But as they sailed he fell asleep: and there came down a storm of +wind on the lake; and they were filled with water, and were in +jeopardy. + +8:24 And they came to him, and awoke him, saying, Master, master, we +perish. Then he arose, and rebuked the wind and the raging of the +water: and they ceased, and there was a calm. + +8:25 And he said unto them, Where is your faith? And they being afraid +wondered, saying one to another, What manner of man is this! for he +commandeth even the winds and water, and they obey him. + +8:26 And they arrived at the country of the Gadarenes, which is over +against Galilee. + +8:27 And when he went forth to land, there met him out of the city a +certain man, which had devils long time, and ware no clothes, neither +abode in any house, but in the tombs. + +8:28 When he saw Jesus, he cried out, and fell down before him, and +with a loud voice said, What have I to do with thee, Jesus, thou Son +of God most high? I beseech thee, torment me not. + +8:29 (For he had commanded the unclean spirit to come out of the man. +For oftentimes it had caught him: and he was kept bound with chains +and in fetters; and he brake the bands, and was driven of the devil +into the wilderness.) 8:30 And Jesus asked him, saying, What is thy +name? And he said, Legion: because many devils were entered into him. + +8:31 And they besought him that he would not command them to go out +into the deep. + +8:32 And there was there an herd of many swine feeding on the +mountain: and they besought him that he would suffer them to enter +into them. And he suffered them. + +8:33 Then went the devils out of the man, and entered into the swine: +and the herd ran violently down a steep place into the lake, and were +choked. + +8:34 When they that fed them saw what was done, they fled, and went +and told it in the city and in the country. + +8:35 Then they went out to see what was done; and came to Jesus, and +found the man, out of whom the devils were departed, sitting at the +feet of Jesus, clothed, and in his right mind: and they were afraid. + +8:36 They also which saw it told them by what means he that was +possessed of the devils was healed. + +8:37 Then the whole multitude of the country of the Gadarenes round +about besought him to depart from them; for they were taken with great +fear: and he went up into the ship, and returned back again. + +8:38 Now the man out of whom the devils were departed besought him +that he might be with him: but Jesus sent him away, saying, 8:39 +Return to thine own house, and shew how great things God hath done +unto thee. And he went his way, and published throughout the whole +city how great things Jesus had done unto him. + +8:40 And it came to pass, that, when Jesus was returned, the people +gladly received him: for they were all waiting for him. + +8:41 And, behold, there came a man named Jairus, and he was a ruler of +the synagogue: and he fell down at Jesus' feet, and besought him that +he would come into his house: 8:42 For he had one only daughter, about +twelve years of age, and she lay a dying. But as he went the people +thronged him. + +8:43 And a woman having an issue of blood twelve years, which had +spent all her living upon physicians, neither could be healed of any, +8:44 Came behind him, and touched the border of his garment: and +immediately her issue of blood stanched. + +8:45 And Jesus said, Who touched me? When all denied, Peter and they +that were with him said, Master, the multitude throng thee and press +thee, and sayest thou, Who touched me? 8:46 And Jesus said, Somebody +hath touched me: for I perceive that virtue is gone out of me. + +8:47 And when the woman saw that she was not hid, she came trembling, +and falling down before him, she declared unto him before all the +people for what cause she had touched him, and how she was healed +immediately. + +8:48 And he said unto her, Daughter, be of good comfort: thy faith +hath made thee whole; go in peace. + +8:49 While he yet spake, there cometh one from the ruler of the +synagogue's house, saying to him, Thy daughter is dead; trouble not +the Master. + +8:50 But when Jesus heard it, he answered him, saying, Fear not: +believe only, and she shall be made whole. + +8:51 And when he came into the house, he suffered no man to go in, +save Peter, and James, and John, and the father and the mother of the +maiden. + +8:52 And all wept, and bewailed her: but he said, Weep not; she is not +dead, but sleepeth. + +8:53 And they laughed him to scorn, knowing that she was dead. + +8:54 And he put them all out, and took her by the hand, and called, +saying, Maid, arise. + +8:55 And her spirit came again, and she arose straightway: and he +commanded to give her meat. + +8:56 And her parents were astonished: but he charged them that they +should tell no man what was done. + +9:1 Then he called his twelve disciples together, and gave them power +and authority over all devils, and to cure diseases. + +9:2 And he sent them to preach the kingdom of God, and to heal the +sick. + +9:3 And he said unto them, Take nothing for your journey, neither +staves, nor scrip, neither bread, neither money; neither have two +coats apiece. + +9:4 And whatsoever house ye enter into, there abide, and thence +depart. + +9:5 And whosoever will not receive you, when ye go out of that city, +shake off the very dust from your feet for a testimony against them. + +9:6 And they departed, and went through the towns, preaching the +gospel, and healing every where. + +9:7 Now Herod the tetrarch heard of all that was done by him: and he +was perplexed, because that it was said of some, that John was risen +from the dead; 9:8 And of some, that Elias had appeared; and of +others, that one of the old prophets was risen again. + +9:9 And Herod said, John have I beheaded: but who is this, of whom I +hear such things? And he desired to see him. + +9:10 And the apostles, when they were returned, told him all that they +had done. And he took them, and went aside privately into a desert +place belonging to the city called Bethsaida. + +9:11 And the people, when they knew it, followed him: and he received +them, and spake unto them of the kingdom of God, and healed them that +had need of healing. + +9:12 And when the day began to wear away, then came the twelve, and +said unto him, Send the multitude away, that they may go into the +towns and country round about, and lodge, and get victuals: for we are +here in a desert place. + +9:13 But he said unto them, Give ye them to eat. And they said, We +have no more but five loaves and two fishes; except we should go and +buy meat for all this people. + +9:14 For they were about five thousand men. And he said to his +disciples, Make them sit down by fifties in a company. + +9:15 And they did so, and made them all sit down. + +9:16 Then he took the five loaves and the two fishes, and looking up +to heaven, he blessed them, and brake, and gave to the disciples to +set before the multitude. + +9:17 And they did eat, and were all filled: and there was taken up of +fragments that remained to them twelve baskets. + +9:18 And it came to pass, as he was alone praying, his disciples were +with him: and he asked them, saying, Whom say the people that I am? +9:19 They answering said, John the Baptist; but some say, Elias; and +others say, that one of the old prophets is risen again. + +9:20 He said unto them, But whom say ye that I am? Peter answering +said, The Christ of God. + +9:21 And he straitly charged them, and commanded them to tell no man +that thing; 9:22 Saying, The Son of man must suffer many things, and +be rejected of the elders and chief priests and scribes, and be slain, +and be raised the third day. + +9:23 And he said to them all, If any man will come after me, let him +deny himself, and take up his cross daily, and follow me. + +9:24 For whosoever will save his life shall lose it: but whosoever +will lose his life for my sake, the same shall save it. + +9:25 For what is a man advantaged, if he gain the whole world, and +lose himself, or be cast away? 9:26 For whosoever shall be ashamed of +me and of my words, of him shall the Son of man be ashamed, when he +shall come in his own glory, and in his Father's, and of the holy +angels. + +9:27 But I tell you of a truth, there be some standing here, which +shall not taste of death, till they see the kingdom of God. + +9:28 And it came to pass about an eight days after these sayings, he +took Peter and John and James, and went up into a mountain to pray. + +9:29 And as he prayed, the fashion of his countenance was altered, and +his raiment was white and glistering. + +9:30 And, behold, there talked with him two men, which were Moses and +Elias: 9:31 Who appeared in glory, and spake of his decease which he +should accomplish at Jerusalem. + +9:32 But Peter and they that were with him were heavy with sleep: and +when they were awake, they saw his glory, and the two men that stood +with him. + +9:33 And it came to pass, as they departed from him, Peter said unto +Jesus, Master, it is good for us to be here: and let us make three +tabernacles; one for thee, and one for Moses, and one for Elias: not +knowing what he said. + +9:34 While he thus spake, there came a cloud, and overshadowed them: +and they feared as they entered into the cloud. + +9:35 And there came a voice out of the cloud, saying, This is my +beloved Son: hear him. + +9:36 And when the voice was past, Jesus was found alone. And they kept +it close, and told no man in those days any of those things which they +had seen. + +9:37 And it came to pass, that on the next day, when they were come +down from the hill, much people met him. + +9:38 And, behold, a man of the company cried out, saying, Master, I +beseech thee, look upon my son: for he is mine only child. + +9:39 And, lo, a spirit taketh him, and he suddenly crieth out; and it +teareth him that he foameth again, and bruising him hardly departeth +from him. + +9:40 And I besought thy disciples to cast him out; and they could not. + +9:41 And Jesus answering said, O faithless and perverse generation, +how long shall I be with you, and suffer you? Bring thy son hither. + +9:42 And as he was yet a coming, the devil threw him down, and tare +him. + +And Jesus rebuked the unclean spirit, and healed the child, and +delivered him again to his father. + +9:43 And they were all amazed at the mighty power of God. But while +they wondered every one at all things which Jesus did, he said unto +his disciples, 9:44 Let these sayings sink down into your ears: for +the Son of man shall be delivered into the hands of men. + +9:45 But they understood not this saying, and it was hid from them, +that they perceived it not: and they feared to ask him of that saying. + +9:46 Then there arose a reasoning among them, which of them should be +greatest. + +9:47 And Jesus, perceiving the thought of their heart, took a child, +and set him by him, 9:48 And said unto them, Whosoever shall receive +this child in my name receiveth me: and whosoever shall receive me +receiveth him that sent me: for he that is least among you all, the +same shall be great. + +9:49 And John answered and said, Master, we saw one casting out devils +in thy name; and we forbad him, because he followeth not with us. + +9:50 And Jesus said unto him, Forbid him not: for he that is not +against us is for us. + +9:51 And it came to pass, when the time was come that he should be +received up, he stedfastly set his face to go to Jerusalem, 9:52 And +sent messengers before his face: and they went, and entered into a +village of the Samaritans, to make ready for him. + +9:53 And they did not receive him, because his face was as though he +would go to Jerusalem. + +9:54 And when his disciples James and John saw this, they said, Lord, +wilt thou that we command fire to come down from heaven, and consume +them, even as Elias did? 9:55 But he turned, and rebuked them, and +said, Ye know not what manner of spirit ye are of. + +9:56 For the Son of man is not come to destroy men's lives, but to +save them. And they went to another village. + +9:57 And it came to pass, that, as they went in the way, a certain man +said unto him, Lord, I will follow thee whithersoever thou goest. + +9:58 And Jesus said unto him, Foxes have holes, and birds of the air +have nests; but the Son of man hath not where to lay his head. + +9:59 And he said unto another, Follow me. But he said, Lord, suffer me +first to go and bury my father. + +9:60 Jesus said unto him, Let the dead bury their dead: but go thou +and preach the kingdom of God. + +9:61 And another also said, Lord, I will follow thee; but let me first +go bid them farewell, which are at home at my house. + +9:62 And Jesus said unto him, No man, having put his hand to the +plough, and looking back, is fit for the kingdom of God. + +10:1 After these things the LORD appointed other seventy also, and +sent them two and two before his face into every city and place, +whither he himself would come. + +10:2 Therefore said he unto them, The harvest truly is great, but the +labourers are few: pray ye therefore the Lord of the harvest, that he +would send forth labourers into his harvest. + +10:3 Go your ways: behold, I send you forth as lambs among wolves. + +10:4 Carry neither purse, nor scrip, nor shoes: and salute no man by +the way. + +10:5 And into whatsoever house ye enter, first say, Peace be to this +house. + +10:6 And if the son of peace be there, your peace shall rest upon it: +if not, it shall turn to you again. + +10:7 And in the same house remain, eating and drinking such things as +they give: for the labourer is worthy of his hire. Go not from house +to house. + +10:8 And into whatsoever city ye enter, and they receive you, eat such +things as are set before you: 10:9 And heal the sick that are therein, +and say unto them, The kingdom of God is come nigh unto you. + +10:10 But into whatsoever city ye enter, and they receive you not, go +your ways out into the streets of the same, and say, 10:11 Even the +very dust of your city, which cleaveth on us, we do wipe off against +you: notwithstanding be ye sure of this, that the kingdom of God is +come nigh unto you. + +10:12 But I say unto you, that it shall be more tolerable in that day +for Sodom, than for that city. + +10:13 Woe unto thee, Chorazin! woe unto thee, Bethsaida! for if the +mighty works had been done in Tyre and Sidon, which have been done in +you, they had a great while ago repented, sitting in sackcloth and +ashes. + +10:14 But it shall be more tolerable for Tyre and Sidon at the +judgment, than for you. + +10:15 And thou, Capernaum, which art exalted to heaven, shalt be +thrust down to hell. + +10:16 He that heareth you heareth me; and he that despiseth you +despiseth me; and he that despiseth me despiseth him that sent me. + +10:17 And the seventy returned again with joy, saying, Lord, even the +devils are subject unto us through thy name. + +10:18 And he said unto them, I beheld Satan as lightning fall from +heaven. + +10:19 Behold, I give unto you power to tread on serpents and +scorpions, and over all the power of the enemy: and nothing shall by +any means hurt you. + +10:20 Notwithstanding in this rejoice not, that the spirits are +subject unto you; but rather rejoice, because your names are written +in heaven. + +10:21 In that hour Jesus rejoiced in spirit, and said, I thank thee, O +Father, Lord of heaven and earth, that thou hast hid these things from +the wise and prudent, and hast revealed them unto babes: even so, +Father; for so it seemed good in thy sight. + +10:22 All things are delivered to me of my Father: and no man knoweth +who the Son is, but the Father; and who the Father is, but the Son, +and he to whom the Son will reveal him. + +10:23 And he turned him unto his disciples, and said privately, +Blessed are the eyes which see the things that ye see: 10:24 For I +tell you, that many prophets and kings have desired to see those +things which ye see, and have not seen them; and to hear those things +which ye hear, and have not heard them. + +10:25 And, behold, a certain lawyer stood up, and tempted him, saying, +Master, what shall I do to inherit eternal life? 10:26 He said unto +him, What is written in the law? how readest thou? 10:27 And he +answering said, Thou shalt love the Lord thy God with all thy heart, +and with all thy soul, and with all thy strength, and with all thy +mind; and thy neighbour as thyself. + +10:28 And he said unto him, Thou hast answered right: this do, and +thou shalt live. + +10:29 But he, willing to justify himself, said unto Jesus, And who is +my neighbour? 10:30 And Jesus answering said, A certain man went down +from Jerusalem to Jericho, and fell among thieves, which stripped him +of his raiment, and wounded him, and departed, leaving him half dead. + +10:31 And by chance there came down a certain priest that way: and +when he saw him, he passed by on the other side. + +10:32 And likewise a Levite, when he was at the place, came and looked +on him, and passed by on the other side. + +10:33 But a certain Samaritan, as he journeyed, came where he was: and +when he saw him, he had compassion on him, 10:34 And went to him, and +bound up his wounds, pouring in oil and wine, and set him on his own +beast, and brought him to an inn, and took care of him. + +10:35 And on the morrow when he departed, he took out two pence, and +gave them to the host, and said unto him, Take care of him; and +whatsoever thou spendest more, when I come again, I will repay thee. + +10:36 Which now of these three, thinkest thou, was neighbour unto him +that fell among the thieves? 10:37 And he said, He that shewed mercy +on him. Then said Jesus unto him, Go, and do thou likewise. + +10:38 Now it came to pass, as they went, that he entered into a +certain village: and a certain woman named Martha received him into +her house. + +10:39 And she had a sister called Mary, which also sat at Jesus' feet, +and heard his word. + +10:40 But Martha was cumbered about much serving, and came to him, and +said, Lord, dost thou not care that my sister hath left me to serve +alone? bid her therefore that she help me. + +10:41 And Jesus answered and said unto her, Martha, Martha, thou art +careful and troubled about many things: 10:42 But one thing is +needful: and Mary hath chosen that good part, which shall not be taken +away from her. + +11:1 And it came to pass, that, as he was praying in a certain place, +when he ceased, one of his disciples said unto him, Lord, teach us to +pray, as John also taught his disciples. + +11:2 And he said unto them, When ye pray, say, Our Father which art in +heaven, Hallowed be thy name. Thy kingdom come. Thy will be done, as +in heaven, so in earth. + +11:3 Give us day by day our daily bread. + +11:4 And forgive us our sins; for we also forgive every one that is +indebted to us. And lead us not into temptation; but deliver us from +evil. + +11:5 And he said unto them, Which of you shall have a friend, and +shall go unto him at midnight, and say unto him, Friend, lend me three +loaves; 11:6 For a friend of mine in his journey is come to me, and I +have nothing to set before him? 11:7 And he from within shall answer +and say, Trouble me not: the door is now shut, and my children are +with me in bed; I cannot rise and give thee. + +11:8 I say unto you, Though he will not rise and give him, because he +is his friend, yet because of his importunity he will rise and give +him as many as he needeth. + +11:9 And I say unto you, Ask, and it shall be given you; seek, and ye +shall find; knock, and it shall be opened unto you. + +11:10 For every one that asketh receiveth; and he that seeketh +findeth; and to him that knocketh it shall be opened. + +11:11 If a son shall ask bread of any of you that is a father, will he +give him a stone? or if he ask a fish, will he for a fish give him a +serpent? 11:12 Or if he shall ask an egg, will he offer him a +scorpion? 11:13 If ye then, being evil, know how to give good gifts +unto your children: how much more shall your heavenly Father give the +Holy Spirit to them that ask him? 11:14 And he was casting out a +devil, and it was dumb. And it came to pass, when the devil was gone +out, the dumb spake; and the people wondered. + +11:15 But some of them said, He casteth out devils through Beelzebub +the chief of the devils. + +11:16 And others, tempting him, sought of him a sign from heaven. + +11:17 But he, knowing their thoughts, said unto them, Every kingdom +divided against itself is brought to desolation; and a house divided +against a house falleth. + +11:18 If Satan also be divided against himself, how shall his kingdom +stand? because ye say that I cast out devils through Beelzebub. + +11:19 And if I by Beelzebub cast out devils, by whom do your sons cast +them out? therefore shall they be your judges. + +11:20 But if I with the finger of God cast out devils, no doubt the +kingdom of God is come upon you. + +11:21 When a strong man armed keepeth his palace, his goods are in +peace: 11:22 But when a stronger than he shall come upon him, and +overcome him, he taketh from him all his armour wherein he trusted, +and divideth his spoils. + +11:23 He that is not with me is against me: and he that gathereth not +with me scattereth. + +11:24 When the unclean spirit is gone out of a man, he walketh through +dry places, seeking rest; and finding none, he saith, I will return +unto my house whence I came out. + +11:25 And when he cometh, he findeth it swept and garnished. + +11:26 Then goeth he, and taketh to him seven other spirits more wicked +than himself; and they enter in, and dwell there: and the last state +of that man is worse than the first. + +11:27 And it came to pass, as he spake these things, a certain woman +of the company lifted up her voice, and said unto him, Blessed is the +womb that bare thee, and the paps which thou hast sucked. + +11:28 But he said, Yea rather, blessed are they that hear the word of +God, and keep it. + +11:29 And when the people were gathered thick together, he began to +say, This is an evil generation: they seek a sign; and there shall no +sign be given it, but the sign of Jonas the prophet. + +11:30 For as Jonas was a sign unto the Ninevites, so shall also the +Son of man be to this generation. + +11:31 The queen of the south shall rise up in the judgment with the +men of this generation, and condemn them: for she came from the utmost +parts of the earth to hear the wisdom of Solomon; and, behold, a +greater than Solomon is here. + +11:32 The men of Nineve shall rise up in the judgment with this +generation, and shall condemn it: for they repented at the preaching +of Jonas; and, behold, a greater than Jonas is here. + +11:33 No man, when he hath lighted a candle, putteth it in a secret +place, neither under a bushel, but on a candlestick, that they which +come in may see the light. + +11:34 The light of the body is the eye: therefore when thine eye is +single, thy whole body also is full of light; but when thine eye is +evil, thy body also is full of darkness. + +11:35 Take heed therefore that the light which is in thee be not +darkness. + +11:36 If thy whole body therefore be full of light, having no part +dark, the whole shall be full of light, as when the bright shining of +a candle doth give thee light. + +11:37 And as he spake, a certain Pharisee besought him to dine with +him: and he went in, and sat down to meat. + +11:38 And when the Pharisee saw it, he marvelled that he had not first +washed before dinner. + +11:39 And the Lord said unto him, Now do ye Pharisees make clean the +outside of the cup and the platter; but your inward part is full of +ravening and wickedness. + +11:40 Ye fools, did not he that made that which is without make that +which is within also? 11:41 But rather give alms of such things as ye +have; and, behold, all things are clean unto you. + +11:42 But woe unto you, Pharisees! for ye tithe mint and rue and all +manner of herbs, and pass over judgment and the love of God: these +ought ye to have done, and not to leave the other undone. + +11:43 Woe unto you, Pharisees! for ye love the uppermost seats in the +synagogues, and greetings in the markets. + +11:44 Woe unto you, scribes and Pharisees, hypocrites! for ye are as +graves which appear not, and the men that walk over them are not aware +of them. + +11:45 Then answered one of the lawyers, and said unto him, Master, +thus saying thou reproachest us also. + +11:46 And he said, Woe unto you also, ye lawyers! for ye lade men with +burdens grievous to be borne, and ye yourselves touch not the burdens +with one of your fingers. + +11:47 Woe unto you! for ye build the sepulchres of the prophets, and +your fathers killed them. + +11:48 Truly ye bear witness that ye allow the deeds of your fathers: +for they indeed killed them, and ye build their sepulchres. + +11:49 Therefore also said the wisdom of God, I will send them prophets +and apostles, and some of them they shall slay and persecute: 11:50 +That the blood of all the prophets, which was shed from the foundation +of the world, may be required of this generation; 11:51 From the blood +of Abel unto the blood of Zacharias which perished between the altar +and the temple: verily I say unto you, It shall be required of this +generation. + +11:52 Woe unto you, lawyers! for ye have taken away the key of +knowledge: ye entered not in yourselves, and them that were entering +in ye hindered. + +11:53 And as he said these things unto them, the scribes and the +Pharisees began to urge him vehemently, and to provoke him to speak of +many things: 11:54 Laying wait for him, and seeking to catch something +out of his mouth, that they might accuse him. + +12:1 In the mean time, when there were gathered together an +innumerable multitude of people, insomuch that they trode one upon +another, he began to say unto his disciples first of all, Beware ye of +the leaven of the Pharisees, which is hypocrisy. + +12:2 For there is nothing covered, that shall not be revealed; neither +hid, that shall not be known. + +12:3 Therefore whatsoever ye have spoken in darkness shall be heard in +the light; and that which ye have spoken in the ear in closets shall +be proclaimed upon the housetops. + +12:4 And I say unto you my friends, Be not afraid of them that kill +the body, and after that have no more that they can do. + +12:5 But I will forewarn you whom ye shall fear: Fear him, which after +he hath killed hath power to cast into hell; yea, I say unto you, Fear +him. + +12:6 Are not five sparrows sold for two farthings, and not one of them +is forgotten before God? 12:7 But even the very hairs of your head +are all numbered. Fear not therefore: ye are of more value than many +sparrows. + +12:8 Also I say unto you, Whosoever shall confess me before men, him +shall the Son of man also confess before the angels of God: 12:9 But +he that denieth me before men shall be denied before the angels of +God. + +12:10 And whosoever shall speak a word against the Son of man, it +shall be forgiven him: but unto him that blasphemeth against the Holy +Ghost it shall not be forgiven. + +12:11 And when they bring you unto the synagogues, and unto +magistrates, and powers, take ye no thought how or what thing ye shall +answer, or what ye shall say: 12:12 For the Holy Ghost shall teach you +in the same hour what ye ought to say. + +12:13 And one of the company said unto him, Master, speak to my +brother, that he divide the inheritance with me. + +12:14 And he said unto him, Man, who made me a judge or a divider over +you? 12:15 And he said unto them, Take heed, and beware of +covetousness: for a man's life consisteth not in the abundance of the +things which he possesseth. + +12:16 And he spake a parable unto them, saying, The ground of a +certain rich man brought forth plentifully: 12:17 And he thought +within himself, saying, What shall I do, because I have no room where +to bestow my fruits? 12:18 And he said, This will I do: I will pull +down my barns, and build greater; and there will I bestow all my +fruits and my goods. + +12:19 And I will say to my soul, Soul, thou hast much goods laid up +for many years; take thine ease, eat, drink, and be merry. + +12:20 But God said unto him, Thou fool, this night thy soul shall be +required of thee: then whose shall those things be, which thou hast +provided? 12:21 So is he that layeth up treasure for himself, and is +not rich toward God. + +12:22 And he said unto his disciples, Therefore I say unto you, Take +no thought for your life, what ye shall eat; neither for the body, +what ye shall put on. + +12:23 The life is more than meat, and the body is more than raiment. + +12:24 Consider the ravens: for they neither sow nor reap; which +neither have storehouse nor barn; and God feedeth them: how much more +are ye better than the fowls? 12:25 And which of you with taking +thought can add to his stature one cubit? 12:26 If ye then be not +able to do that thing which is least, why take ye thought for the +rest? 12:27 Consider the lilies how they grow: they toil not, they +spin not; and yet I say unto you, that Solomon in all his glory was +not arrayed like one of these. + +12:28 If then God so clothe the grass, which is to day in the field, +and to morrow is cast into the oven; how much more will he clothe you, +O ye of little faith? 12:29 And seek not ye what ye shall eat, or +what ye shall drink, neither be ye of doubtful mind. + +12:30 For all these things do the nations of the world seek after: and +your Father knoweth that ye have need of these things. + +12:31 But rather seek ye the kingdom of God; and all these things +shall be added unto you. + +12:32 Fear not, little flock; for it is your Father's good pleasure to +give you the kingdom. + +12:33 Sell that ye have, and give alms; provide yourselves bags which +wax not old, a treasure in the heavens that faileth not, where no +thief approacheth, neither moth corrupteth. + +12:34 For where your treasure is, there will your heart be also. + +12:35 Let your loins be girded about, and your lights burning; 12:36 +And ye yourselves like unto men that wait for their lord, when he will +return from the wedding; that when he cometh and knocketh, they may +open unto him immediately. + +12:37 Blessed are those servants, whom the lord when he cometh shall +find watching: verily I say unto you, that he shall gird himself, and +make them to sit down to meat, and will come forth and serve them. + +12:38 And if he shall come in the second watch, or come in the third +watch, and find them so, blessed are those servants. + +12:39 And this know, that if the goodman of the house had known what +hour the thief would come, he would have watched, and not have +suffered his house to be broken through. + +12:40 Be ye therefore ready also: for the Son of man cometh at an hour +when ye think not. + +12:41 Then Peter said unto him, Lord, speakest thou this parable unto +us, or even to all? 12:42 And the Lord said, Who then is that +faithful and wise steward, whom his lord shall make ruler over his +household, to give them their portion of meat in due season? 12:43 +Blessed is that servant, whom his lord when he cometh shall find so +doing. + +12:44 Of a truth I say unto you, that he will make him ruler over all +that he hath. + +12:45 But and if that servant say in his heart, My lord delayeth his +coming; and shall begin to beat the menservants and maidens, and to +eat and drink, and to be drunken; 12:46 The lord of that servant will +come in a day when he looketh not for him, and at an hour when he is +not aware, and will cut him in sunder, and will appoint him his +portion with the unbelievers. + +12:47 And that servant, which knew his lord's will, and prepared not +himself, neither did according to his will, shall be beaten with many +stripes. + +12:48 But he that knew not, and did commit things worthy of stripes, +shall be beaten with few stripes. For unto whomsoever much is given, +of him shall be much required: and to whom men have committed much, of +him they will ask the more. + +12:49 I am come to send fire on the earth; and what will I, if it be +already kindled? 12:50 But I have a baptism to be baptized with; and +how am I straitened till it be accomplished! 12:51 Suppose ye that I +am come to give peace on earth? I tell you, Nay; but rather division: +12:52 For from henceforth there shall be five in one house divided, +three against two, and two against three. + +12:53 The father shall be divided against the son, and the son against +the father; the mother against the daughter, and the daughter against +the mother; the mother in law against her daughter in law, and the +daughter in law against her mother in law. + +12:54 And he said also to the people, When ye see a cloud rise out of +the west, straightway ye say, There cometh a shower; and so it is. + +12:55 And when ye see the south wind blow, ye say, There will be heat; +and it cometh to pass. + +12:56 Ye hypocrites, ye can discern the face of the sky and of the +earth; but how is it that ye do not discern this time? 12:57 Yea, and +why even of yourselves judge ye not what is right? 12:58 When thou +goest with thine adversary to the magistrate, as thou art in the way, +give diligence that thou mayest be delivered from him; lest he hale +thee to the judge, and the judge deliver thee to the officer, and the +officer cast thee into prison. + +12:59 I tell thee, thou shalt not depart thence, till thou hast paid +the very last mite. + +13:1 There were present at that season some that told him of the +Galilaeans, whose blood Pilate had mingled with their sacrifices. + +13:2 And Jesus answering said unto them, Suppose ye that these +Galilaeans were sinners above all the Galilaeans, because they +suffered such things? 13:3 I tell you, Nay: but, except ye repent, ye +shall all likewise perish. + +13:4 Or those eighteen, upon whom the tower in Siloam fell, and slew +them, think ye that they were sinners above all men that dwelt in +Jerusalem? 13:5 I tell you, Nay: but, except ye repent, ye shall all +likewise perish. + +13:6 He spake also this parable; A certain man had a fig tree planted +in his vineyard; and he came and sought fruit thereon, and found none. + +13:7 Then said he unto the dresser of his vineyard, Behold, these +three years I come seeking fruit on this fig tree, and find none: cut +it down; why cumbereth it the ground? 13:8 And he answering said unto +him, Lord, let it alone this year also, till I shall dig about it, and +dung it: 13:9 And if it bear fruit, well: and if not, then after that +thou shalt cut it down. + +13:10 And he was teaching in one of the synagogues on the sabbath. + +13:11 And, behold, there was a woman which had a spirit of infirmity +eighteen years, and was bowed together, and could in no wise lift up +herself. + +13:12 And when Jesus saw her, he called her to him, and said unto her, +Woman, thou art loosed from thine infirmity. + +13:13 And he laid his hands on her: and immediately she was made +straight, and glorified God. + +13:14 And the ruler of the synagogue answered with indignation, +because that Jesus had healed on the sabbath day, and said unto the +people, There are six days in which men ought to work: in them +therefore come and be healed, and not on the sabbath day. + +13:15 The Lord then answered him, and said, Thou hypocrite, doth not +each one of you on the sabbath loose his ox or his ass from the stall, +and lead him away to watering? 13:16 And ought not this woman, being +a daughter of Abraham, whom Satan hath bound, lo, these eighteen +years, be loosed from this bond on the sabbath day? 13:17 And when he +had said these things, all his adversaries were ashamed: and all the +people rejoiced for all the glorious things that were done by him. + +13:18 Then said he, Unto what is the kingdom of God like? and +whereunto shall I resemble it? 13:19 It is like a grain of mustard +seed, which a man took, and cast into his garden; and it grew, and +waxed a great tree; and the fowls of the air lodged in the branches of +it. + +13:20 And again he said, Whereunto shall I liken the kingdom of God? +13:21 It is like leaven, which a woman took and hid in three measures +of meal, till the whole was leavened. + +13:22 And he went through the cities and villages, teaching, and +journeying toward Jerusalem. + +13:23 Then said one unto him, Lord, are there few that be saved? And +he said unto them, 13:24 Strive to enter in at the strait gate: for +many, I say unto you, will seek to enter in, and shall not be able. + +13:25 When once the master of the house is risen up, and hath shut to +the door, and ye begin to stand without, and to knock at the door, +saying, Lord, Lord, open unto us; and he shall answer and say unto +you, I know you not whence ye are: 13:26 Then shall ye begin to say, +We have eaten and drunk in thy presence, and thou hast taught in our +streets. + +13:27 But he shall say, I tell you, I know you not whence ye are; +depart from me, all ye workers of iniquity. + +13:28 There shall be weeping and gnashing of teeth, when ye shall see +Abraham, and Isaac, and Jacob, and all the prophets, in the kingdom of +God, and you yourselves thrust out. + +13:29 And they shall come from the east, and from the west, and from +the north, and from the south, and shall sit down in the kingdom of +God. + +13:30 And, behold, there are last which shall be first, and there are +first which shall be last. + +13:31 The same day there came certain of the Pharisees, saying unto +him, Get thee out, and depart hence: for Herod will kill thee. + +13:32 And he said unto them, Go ye, and tell that fox, Behold, I cast +out devils, and I do cures to day and to morrow, and the third day I +shall be perfected. + +13:33 Nevertheless I must walk to day, and to morrow, and the day +following: for it cannot be that a prophet perish out of Jerusalem. + +13:34 O Jerusalem, Jerusalem, which killest the prophets, and stonest +them that are sent unto thee; how often would I have gathered thy +children together, as a hen doth gather her brood under her wings, and +ye would not! 13:35 Behold, your house is left unto you desolate: and +verily I say unto you, Ye shall not see me, until the time come when +ye shall say, Blessed is he that cometh in the name of the Lord. + +14:1 And it came to pass, as he went into the house of one of the +chief Pharisees to eat bread on the sabbath day, that they watched +him. + +14:2 And, behold, there was a certain man before him which had the +dropsy. + +14:3 And Jesus answering spake unto the lawyers and Pharisees, saying, +Is it lawful to heal on the sabbath day? 14:4 And they held their +peace. And he took him, and healed him, and let him go; 14:5 And +answered them, saying, Which of you shall have an ass or an ox fallen +into a pit, and will not straightway pull him out on the sabbath day? +14:6 And they could not answer him again to these things. + +14:7 And he put forth a parable to those which were bidden, when he +marked how they chose out the chief rooms; saying unto them. + +14:8 When thou art bidden of any man to a wedding, sit not down in the +highest room; lest a more honourable man than thou be bidden of him; +14:9 And he that bade thee and him come and say to thee, Give this man +place; and thou begin with shame to take the lowest room. + +14:10 But when thou art bidden, go and sit down in the lowest room; +that when he that bade thee cometh, he may say unto thee, Friend, go +up higher: then shalt thou have worship in the presence of them that +sit at meat with thee. + +14:11 For whosoever exalteth himself shall be abased; and he that +humbleth himself shall be exalted. + +14:12 Then said he also to him that bade him, When thou makest a +dinner or a supper, call not thy friends, nor thy brethren, neither +thy kinsmen, nor thy rich neighbours; lest they also bid thee again, +and a recompence be made thee. + +14:13 But when thou makest a feast, call the poor, the maimed, the +lame, the blind: 14:14 And thou shalt be blessed; for they cannot +recompense thee: for thou shalt be recompensed at the resurrection of +the just. + +14:15 And when one of them that sat at meat with him heard these +things, he said unto him, Blessed is he that shall eat bread in the +kingdom of God. + +14:16 Then said he unto him, A certain man made a great supper, and +bade many: 14:17 And sent his servant at supper time to say to them +that were bidden, Come; for all things are now ready. + +14:18 And they all with one consent began to make excuse. The first +said unto him, I have bought a piece of ground, and I must needs go +and see it: I pray thee have me excused. + +14:19 And another said, I have bought five yoke of oxen, and I go to +prove them: I pray thee have me excused. + +14:20 And another said, I have married a wife, and therefore I cannot +come. + +14:21 So that servant came, and shewed his lord these things. Then the +master of the house being angry said to his servant, Go out quickly +into the streets and lanes of the city, and bring in hither the poor, +and the maimed, and the halt, and the blind. + +14:22 And the servant said, Lord, it is done as thou hast commanded, +and yet there is room. + +14:23 And the lord said unto the servant, Go out into the highways and +hedges, and compel them to come in, that my house may be filled. + +14:24 For I say unto you, That none of those men which were bidden +shall taste of my supper. + +14:25 And there went great multitudes with him: and he turned, and +said unto them, 14:26 If any man come to me, and hate not his father, +and mother, and wife, and children, and brethren, and sisters, yea, +and his own life also, he cannot be my disciple. + +14:27 And whosoever doth not bear his cross, and come after me, cannot +be my disciple. + +14:28 For which of you, intending to build a tower, sitteth not down +first, and counteth the cost, whether he have sufficient to finish it? +14:29 Lest haply, after he hath laid the foundation, and is not able +to finish it, all that behold it begin to mock him, 14:30 Saying, This +man began to build, and was not able to finish. + +14:31 Or what king, going to make war against another king, sitteth +not down first, and consulteth whether he be able with ten thousand to +meet him that cometh against him with twenty thousand? 14:32 Or else, +while the other is yet a great way off, he sendeth an ambassage, and +desireth conditions of peace. + +14:33 So likewise, whosoever he be of you that forsaketh not all that +he hath, he cannot be my disciple. + +14:34 Salt is good: but if the salt have lost his savour, wherewith +shall it be seasoned? 14:35 It is neither fit for the land, nor yet +for the dunghill; but men cast it out. He that hath ears to hear, let +him hear. + +15:1 Then drew near unto him all the publicans and sinners for to hear +him. + +15:2 And the Pharisees and scribes murmured, saying, This man +receiveth sinners, and eateth with them. + +15:3 And he spake this parable unto them, saying, 15:4 What man of +you, having an hundred sheep, if he lose one of them, doth not leave +the ninety and nine in the wilderness, and go after that which is +lost, until he find it? 15:5 And when he hath found it, he layeth it +on his shoulders, rejoicing. + +15:6 And when he cometh home, he calleth together his friends and +neighbours, saying unto them, Rejoice with me; for I have found my +sheep which was lost. + +15:7 I say unto you, that likewise joy shall be in heaven over one +sinner that repenteth, more than over ninety and nine just persons, +which need no repentance. + +15:8 Either what woman having ten pieces of silver, if she lose one +piece, doth not light a candle, and sweep the house, and seek +diligently till she find it? 15:9 And when she hath found it, she +calleth her friends and her neighbours together, saying, Rejoice with +me; for I have found the piece which I had lost. + +15:10 Likewise, I say unto you, there is joy in the presence of the +angels of God over one sinner that repenteth. + +15:11 And he said, A certain man had two sons: 15:12 And the younger +of them said to his father, Father, give me the portion of goods that +falleth to me. And he divided unto them his living. + +15:13 And not many days after the younger son gathered all together, +and took his journey into a far country, and there wasted his +substance with riotous living. + +15:14 And when he had spent all, there arose a mighty famine in that +land; and he began to be in want. + +15:15 And he went and joined himself to a citizen of that country; and +he sent him into his fields to feed swine. + +15:16 And he would fain have filled his belly with the husks that the +swine did eat: and no man gave unto him. + +15:17 And when he came to himself, he said, How many hired servants of +my father's have bread enough and to spare, and I perish with hunger! +15:18 I will arise and go to my father, and will say unto him, Father, +I have sinned against heaven, and before thee, 15:19 And am no more +worthy to be called thy son: make me as one of thy hired servants. + +15:20 And he arose, and came to his father. But when he was yet a +great way off, his father saw him, and had compassion, and ran, and +fell on his neck, and kissed him. + +15:21 And the son said unto him, Father, I have sinned against heaven, +and in thy sight, and am no more worthy to be called thy son. + +15:22 But the father said to his servants, Bring forth the best robe, +and put it on him; and put a ring on his hand, and shoes on his feet: +15:23 And bring hither the fatted calf, and kill it; and let us eat, +and be merry: 15:24 For this my son was dead, and is alive again; he +was lost, and is found. And they began to be merry. + +15:25 Now his elder son was in the field: and as he came and drew nigh +to the house, he heard musick and dancing. + +15:26 And he called one of the servants, and asked what these things +meant. + +15:27 And he said unto him, Thy brother is come; and thy father hath +killed the fatted calf, because he hath received him safe and sound. + +15:28 And he was angry, and would not go in: therefore came his father +out, and intreated him. + +15:29 And he answering said to his father, Lo, these many years do I +serve thee, neither transgressed I at any time thy commandment: and +yet thou never gavest me a kid, that I might make merry with my +friends: 15:30 But as soon as this thy son was come, which hath +devoured thy living with harlots, thou hast killed for him the fatted +calf. + +15:31 And he said unto him, Son, thou art ever with me, and all that I +have is thine. + +15:32 It was meet that we should make merry, and be glad: for this thy +brother was dead, and is alive again; and was lost, and is found. + +16:1 And he said also unto his disciples, There was a certain rich +man, which had a steward; and the same was accused unto him that he +had wasted his goods. + +16:2 And he called him, and said unto him, How is it that I hear this +of thee? give an account of thy stewardship; for thou mayest be no +longer steward. + +16:3 Then the steward said within himself, What shall I do? for my +lord taketh away from me the stewardship: I cannot dig; to beg I am +ashamed. + +16:4 I am resolved what to do, that, when I am put out of the +stewardship, they may receive me into their houses. + +16:5 So he called every one of his lord's debtors unto him, and said +unto the first, How much owest thou unto my lord? 16:6 And he said, +An hundred measures of oil. And he said unto him, Take thy bill, and +sit down quickly, and write fifty. + +16:7 Then said he to another, And how much owest thou? And he said, An +hundred measures of wheat. And he said unto him, Take thy bill, and +write fourscore. + +16:8 And the lord commended the unjust steward, because he had done +wisely: for the children of this world are in their generation wiser +than the children of light. + +16:9 And I say unto you, Make to yourselves friends of the mammon of +unrighteousness; that, when ye fail, they may receive you into +everlasting habitations. + +16:10 He that is faithful in that which is least is faithful also in +much: and he that is unjust in the least is unjust also in much. + +16:11 If therefore ye have not been faithful in the unrighteous +mammon, who will commit to your trust the true riches? 16:12 And if +ye have not been faithful in that which is another man's, who shall +give you that which is your own? 16:13 No servant can serve two +masters: for either he will hate the one, and love the other; or else +he will hold to the one, and despise the other. Ye cannot serve God +and mammon. + +16:14 And the Pharisees also, who were covetous, heard all these +things: and they derided him. + +16:15 And he said unto them, Ye are they which justify yourselves +before men; but God knoweth your hearts: for that which is highly +esteemed among men is abomination in the sight of God. + +16:16 The law and the prophets were until John: since that time the +kingdom of God is preached, and every man presseth into it. + +16:17 And it is easier for heaven and earth to pass, than one tittle +of the law to fail. + +16:18 Whosoever putteth away his wife, and marrieth another, +committeth adultery: and whosoever marrieth her that is put away from +her husband committeth adultery. + +16:19 There was a certain rich man, which was clothed in purple and +fine linen, and fared sumptuously every day: 16:20 And there was a +certain beggar named Lazarus, which was laid at his gate, full of +sores, 16:21 And desiring to be fed with the crumbs which fell from +the rich man's table: moreover the dogs came and licked his sores. + +16:22 And it came to pass, that the beggar died, and was carried by +the angels into Abraham's bosom: the rich man also died, and was +buried; 16:23 And in hell he lift up his eyes, being in torments, and +seeth Abraham afar off, and Lazarus in his bosom. + +16:24 And he cried and said, Father Abraham, have mercy on me, and +send Lazarus, that he may dip the tip of his finger in water, and cool +my tongue; for I am tormented in this flame. + +16:25 But Abraham said, Son, remember that thou in thy lifetime +receivedst thy good things, and likewise Lazarus evil things: but now +he is comforted, and thou art tormented. + +16:26 And beside all this, between us and you there is a great gulf +fixed: so that they which would pass from hence to you cannot; neither +can they pass to us, that would come from thence. + +16:27 Then he said, I pray thee therefore, father, that thou wouldest +send him to my father's house: 16:28 For I have five brethren; that he +may testify unto them, lest they also come into this place of torment. + +16:29 Abraham saith unto him, They have Moses and the prophets; let +them hear them. + +16:30 And he said, Nay, father Abraham: but if one went unto them from +the dead, they will repent. + +16:31 And he said unto him, If they hear not Moses and the prophets, +neither will they be persuaded, though one rose from the dead. + +17:1 Then said he unto the disciples, It is impossible but that +offences will come: but woe unto him, through whom they come! 17:2 It +were better for him that a millstone were hanged about his neck, and +he cast into the sea, than that he should offend one of these little +ones. + +17:3 Take heed to yourselves: If thy brother trespass against thee, +rebuke him; and if he repent, forgive him. + +17:4 And if he trespass against thee seven times in a day, and seven +times in a day turn again to thee, saying, I repent; thou shalt +forgive him. + +17:5 And the apostles said unto the Lord, Increase our faith. + +17:6 And the Lord said, If ye had faith as a grain of mustard seed, ye +might say unto this sycamine tree, Be thou plucked up by the root, and +be thou planted in the sea; and it should obey you. + +17:7 But which of you, having a servant plowing or feeding cattle, +will say unto him by and by, when he is come from the field, Go and +sit down to meat? 17:8 And will not rather say unto him, Make ready +wherewith I may sup, and gird thyself, and serve me, till I have eaten +and drunken; and afterward thou shalt eat and drink? 17:9 Doth he +thank that servant because he did the things that were commanded him? +I trow not. + +17:10 So likewise ye, when ye shall have done all those things which +are commanded you, say, We are unprofitable servants: we have done +that which was our duty to do. + +17:11 And it came to pass, as he went to Jerusalem, that he passed +through the midst of Samaria and Galilee. + +17:12 And as he entered into a certain village, there met him ten men +that were lepers, which stood afar off: 17:13 And they lifted up their +voices, and said, Jesus, Master, have mercy on us. + +17:14 And when he saw them, he said unto them, Go shew yourselves unto +the priests. And it came to pass, that, as they went, they were +cleansed. + +17:15 And one of them, when he saw that he was healed, turned back, +and with a loud voice glorified God, 17:16 And fell down on his face +at his feet, giving him thanks: and he was a Samaritan. + +17:17 And Jesus answering said, Were there not ten cleansed? but where +are the nine? 17:18 There are not found that returned to give glory +to God, save this stranger. + +17:19 And he said unto him, Arise, go thy way: thy faith hath made +thee whole. + +17:20 And when he was demanded of the Pharisees, when the kingdom of +God should come, he answered them and said, The kingdom of God cometh +not with observation: 17:21 Neither shall they say, Lo here! or, lo +there! for, behold, the kingdom of God is within you. + +17:22 And he said unto the disciples, The days will come, when ye +shall desire to see one of the days of the Son of man, and ye shall +not see it. + +17:23 And they shall say to you, See here; or, see there: go not after +them, nor follow them. + +17:24 For as the lightning, that lighteneth out of the one part under +heaven, shineth unto the other part under heaven; so shall also the +Son of man be in his day. + +17:25 But first must he suffer many things, and be rejected of this +generation. + +17:26 And as it was in the days of Noe, so shall it be also in the +days of the Son of man. + +17:27 They did eat, they drank, they married wives, they were given in +marriage, until the day that Noe entered into the ark, and the flood +came, and destroyed them all. + +17:28 Likewise also as it was in the days of Lot; they did eat, they +drank, they bought, they sold, they planted, they builded; 17:29 But +the same day that Lot went out of Sodom it rained fire and brimstone +from heaven, and destroyed them all. + +17:30 Even thus shall it be in the day when the Son of man is +revealed. + +17:31 In that day, he which shall be upon the housetop, and his stuff +in the house, let him not come down to take it away: and he that is in +the field, let him likewise not return back. + +17:32 Remember Lot's wife. + +17:33 Whosoever shall seek to save his life shall lose it; and +whosoever shall lose his life shall preserve it. + +17:34 I tell you, in that night there shall be two men in one bed; the +one shall be taken, and the other shall be left. + +17:35 Two women shall be grinding together; the one shall be taken, +and the other left. + +17:36 Two men shall be in the field; the one shall be taken, and the +other left. + +17:37 And they answered and said unto him, Where, Lord? And he said +unto them, Wheresoever the body is, thither will the eagles be +gathered together. + +18:1 And he spake a parable unto them to this end, that men ought +always to pray, and not to faint; 18:2 Saying, There was in a city a +judge, which feared not God, neither regarded man: 18:3 And there was +a widow in that city; and she came unto him, saying, Avenge me of mine +adversary. + +18:4 And he would not for a while: but afterward he said within +himself, Though I fear not God, nor regard man; 18:5 Yet because this +widow troubleth me, I will avenge her, lest by her continual coming +she weary me. + +18:6 And the Lord said, Hear what the unjust judge saith. + +18:7 And shall not God avenge his own elect, which cry day and night +unto him, though he bear long with them? 18:8 I tell you that he will +avenge them speedily. Nevertheless when the Son of man cometh, shall +he find faith on the earth? 18:9 And he spake this parable unto +certain which trusted in themselves that they were righteous, and +despised others: 18:10 Two men went up into the temple to pray; the +one a Pharisee, and the other a publican. + +18:11 The Pharisee stood and prayed thus with himself, God, I thank +thee, that I am not as other men are, extortioners, unjust, +adulterers, or even as this publican. + +18:12 I fast twice in the week, I give tithes of all that I possess. + +18:13 And the publican, standing afar off, would not lift up so much +as his eyes unto heaven, but smote upon his breast, saying, God be +merciful to me a sinner. + +18:14 I tell you, this man went down to his house justified rather +than the other: for every one that exalteth himself shall be abased; +and he that humbleth himself shall be exalted. + +18:15 And they brought unto him also infants, that he would touch +them: but when his disciples saw it, they rebuked them. + +18:16 But Jesus called them unto him, and said, Suffer little children +to come unto me, and forbid them not: for of such is the kingdom of +God. + +18:17 Verily I say unto you, Whosoever shall not receive the kingdom +of God as a little child shall in no wise enter therein. + +18:18 And a certain ruler asked him, saying, Good Master, what shall I +do to inherit eternal life? 18:19 And Jesus said unto him, Why +callest thou me good? none is good, save one, that is, God. + +18:20 Thou knowest the commandments, Do not commit adultery, Do not +kill, Do not steal, Do not bear false witness, Honour thy father and +thy mother. + +18:21 And he said, All these have I kept from my youth up. + +18:22 Now when Jesus heard these things, he said unto him, Yet lackest +thou one thing: sell all that thou hast, and distribute unto the poor, +and thou shalt have treasure in heaven: and come, follow me. + +18:23 And when he heard this, he was very sorrowful: for he was very +rich. + +18:24 And when Jesus saw that he was very sorrowful, he said, How +hardly shall they that have riches enter into the kingdom of God! +18:25 For it is easier for a camel to go through a needle's eye, than +for a rich man to enter into the kingdom of God. + +18:26 And they that heard it said, Who then can be saved? 18:27 And +he said, The things which are impossible with men are possible with +God. + +18:28 Then Peter said, Lo, we have left all, and followed thee. + +18:29 And he said unto them, Verily I say unto you, There is no man +that hath left house, or parents, or brethren, or wife, or children, +for the kingdom of God's sake, 18:30 Who shall not receive manifold +more in this present time, and in the world to come life everlasting. + +18:31 Then he took unto him the twelve, and said unto them, Behold, we +go up to Jerusalem, and all things that are written by the prophets +concerning the Son of man shall be accomplished. + +18:32 For he shall be delivered unto the Gentiles, and shall be +mocked, and spitefully entreated, and spitted on: 18:33 And they shall +scourge him, and put him to death: and the third day he shall rise +again. + +18:34 And they understood none of these things: and this saying was +hid from them, neither knew they the things which were spoken. + +18:35 And it came to pass, that as he was come nigh unto Jericho, a +certain blind man sat by the way side begging: 18:36 And hearing the +multitude pass by, he asked what it meant. + +18:37 And they told him, that Jesus of Nazareth passeth by. + +18:38 And he cried, saying, Jesus, thou son of David, have mercy on +me. + +18:39 And they which went before rebuked him, that he should hold his +peace: but he cried so much the more, Thou son of David, have mercy on +me. + +18:40 And Jesus stood, and commanded him to be brought unto him: and +when he was come near, he asked him, 18:41 Saying, What wilt thou that +I shall do unto thee? And he said, Lord, that I may receive my sight. + +18:42 And Jesus said unto him, Receive thy sight: thy faith hath saved +thee. + +18:43 And immediately he received his sight, and followed him, +glorifying God: and all the people, when they saw it, gave praise unto +God. + +19:1 And Jesus entered and passed through Jericho. + +19:2 And, behold, there was a man named Zacchaeus, which was the chief +among the publicans, and he was rich. + +19:3 And he sought to see Jesus who he was; and could not for the +press, because he was little of stature. + +19:4 And he ran before, and climbed up into a sycomore tree to see +him: for he was to pass that way. + +19:5 And when Jesus came to the place, he looked up, and saw him, and +said unto him, Zacchaeus, make haste, and come down; for to day I must +abide at thy house. + +19:6 And he made haste, and came down, and received him joyfully. + +19:7 And when they saw it, they all murmured, saying, That he was gone +to be guest with a man that is a sinner. + +19:8 And Zacchaeus stood, and said unto the Lord: Behold, Lord, the +half of my goods I give to the poor; and if I have taken any thing +from any man by false accusation, I restore him fourfold. + +19:9 And Jesus said unto him, This day is salvation come to this +house, forsomuch as he also is a son of Abraham. + +19:10 For the Son of man is come to seek and to save that which was +lost. + +19:11 And as they heard these things, he added and spake a parable, +because he was nigh to Jerusalem, and because they thought that the +kingdom of God should immediately appear. + +19:12 He said therefore, A certain nobleman went into a far country to +receive for himself a kingdom, and to return. + +19:13 And he called his ten servants, and delivered them ten pounds, +and said unto them, Occupy till I come. + +19:14 But his citizens hated him, and sent a message after him, +saying, We will not have this man to reign over us. + +19:15 And it came to pass, that when he was returned, having received +the kingdom, then he commanded these servants to be called unto him, +to whom he had given the money, that he might know how much every man +had gained by trading. + +19:16 Then came the first, saying, Lord, thy pound hath gained ten +pounds. + +19:17 And he said unto him, Well, thou good servant: because thou hast +been faithful in a very little, have thou authority over ten cities. + +19:18 And the second came, saying, Lord, thy pound hath gained five +pounds. + +19:19 And he said likewise to him, Be thou also over five cities. + +19:20 And another came, saying, Lord, behold, here is thy pound, which +I have kept laid up in a napkin: 19:21 For I feared thee, because thou +art an austere man: thou takest up that thou layedst not down, and +reapest that thou didst not sow. + +19:22 And he saith unto him, Out of thine own mouth will I judge thee, +thou wicked servant. Thou knewest that I was an austere man, taking up +that I laid not down, and reaping that I did not sow: 19:23 Wherefore +then gavest not thou my money into the bank, that at my coming I might +have required mine own with usury? 19:24 And he said unto them that +stood by, Take from him the pound, and give it to him that hath ten +pounds. + +19:25 (And they said unto him, Lord, he hath ten pounds.) 19:26 For I +say unto you, That unto every one which hath shall be given; and from +him that hath not, even that he hath shall be taken away from him. + +19:27 But those mine enemies, which would not that I should reign over +them, bring hither, and slay them before me. + +19:28 And when he had thus spoken, he went before, ascending up to +Jerusalem. + +19:29 And it came to pass, when he was come nigh to Bethphage and +Bethany, at the mount called the mount of Olives, he sent two of his +disciples, 19:30 Saying, Go ye into the village over against you; in +the which at your entering ye shall find a colt tied, whereon yet +never man sat: loose him, and bring him hither. + +19:31 And if any man ask you, Why do ye loose him? thus shall ye say +unto him, Because the Lord hath need of him. + +19:32 And they that were sent went their way, and found even as he had +said unto them. + +19:33 And as they were loosing the colt, the owners thereof said unto +them, Why loose ye the colt? 19:34 And they said, The Lord hath need +of him. + +19:35 And they brought him to Jesus: and they cast their garments upon +the colt, and they set Jesus thereon. + +19:36 And as he went, they spread their clothes in the way. + +19:37 And when he was come nigh, even now at the descent of the mount +of Olives, the whole multitude of the disciples began to rejoice and +praise God with a loud voice for all the mighty works that they had +seen; 19:38 Saying, Blessed be the King that cometh in the name of the +Lord: peace in heaven, and glory in the highest. + +19:39 And some of the Pharisees from among the multitude said unto +him, Master, rebuke thy disciples. + +19:40 And he answered and said unto them, I tell you that, if these +should hold their peace, the stones would immediately cry out. + +19:41 And when he was come near, he beheld the city, and wept over it, +19:42 Saying, If thou hadst known, even thou, at least in this thy +day, the things which belong unto thy peace! but now they are hid from +thine eyes. + +19:43 For the days shall come upon thee, that thine enemies shall cast +a trench about thee, and compass thee round, and keep thee in on every +side, 19:44 And shall lay thee even with the ground, and thy children +within thee; and they shall not leave in thee one stone upon another; +because thou knewest not the time of thy visitation. + +19:45 And he went into the temple, and began to cast out them that +sold therein, and them that bought; 19:46 Saying unto them, It is +written, My house is the house of prayer: but ye have made it a den of +thieves. + +19:47 And he taught daily in the temple. But the chief priests and the +scribes and the chief of the people sought to destroy him, 19:48 And +could not find what they might do: for all the people were very +attentive to hear him. + +20:1 And it came to pass, that on one of those days, as he taught the +people in the temple, and preached the gospel, the chief priests and +the scribes came upon him with the elders, 20:2 And spake unto him, +saying, Tell us, by what authority doest thou these things? or who is +he that gave thee this authority? 20:3 And he answered and said unto +them, I will also ask you one thing; and answer me: 20:4 The baptism +of John, was it from heaven, or of men? 20:5 And they reasoned with +themselves, saying, If we shall say, From heaven; he will say, Why +then believed ye him not? 20:6 But and if we say, Of men; all the +people will stone us: for they be persuaded that John was a prophet. + +20:7 And they answered, that they could not tell whence it was. + +20:8 And Jesus said unto them, Neither tell I you by what authority I +do these things. + +20:9 Then began he to speak to the people this parable; A certain man +planted a vineyard, and let it forth to husbandmen, and went into a +far country for a long time. + +20:10 And at the season he sent a servant to the husbandmen, that they +should give him of the fruit of the vineyard: but the husbandmen beat +him, and sent him away empty. + +20:11 And again he sent another servant: and they beat him also, and +entreated him shamefully, and sent him away empty. + +20:12 And again he sent a third: and they wounded him also, and cast +him out. + +20:13 Then said the lord of the vineyard, What shall I do? I will send +my beloved son: it may be they will reverence him when they see him. + +20:14 But when the husbandmen saw him, they reasoned among themselves, +saying, This is the heir: come, let us kill him, that the inheritance +may be ours. + +20:15 So they cast him out of the vineyard, and killed him. What +therefore shall the lord of the vineyard do unto them? 20:16 He shall +come and destroy these husbandmen, and shall give the vineyard to +others. And when they heard it, they said, God forbid. + +20:17 And he beheld them, and said, What is this then that is written, +The stone which the builders rejected, the same is become the head of +the corner? 20:18 Whosoever shall fall upon that stone shall be +broken; but on whomsoever it shall fall, it will grind him to powder. + +20:19 And the chief priests and the scribes the same hour sought to +lay hands on him; and they feared the people: for they perceived that +he had spoken this parable against them. + +20:20 And they watched him, and sent forth spies, which should feign +themselves just men, that they might take hold of his words, that so +they might deliver him unto the power and authority of the governor. + +20:21 And they asked him, saying, Master, we know that thou sayest and +teachest rightly, neither acceptest thou the person of any, but +teachest the way of God truly: 20:22 Is it lawful for us to give +tribute unto Caesar, or no? 20:23 But he perceived their craftiness, +and said unto them, Why tempt ye me? 20:24 Shew me a penny. Whose +image and superscription hath it? They answered and said, Caesar's. + +20:25 And he said unto them, Render therefore unto Caesar the things +which be Caesar's, and unto God the things which be God's. + +20:26 And they could not take hold of his words before the people: and +they marvelled at his answer, and held their peace. + +20:27 Then came to him certain of the Sadducees, which deny that there +is any resurrection; and they asked him, 20:28 Saying, Master, Moses +wrote unto us, If any man's brother die, having a wife, and he die +without children, that his brother should take his wife, and raise up +seed unto his brother. + +20:29 There were therefore seven brethren: and the first took a wife, +and died without children. + +20:30 And the second took her to wife, and he died childless. + +20:31 And the third took her; and in like manner the seven also: and +they left no children, and died. + +20:32 Last of all the woman died also. + +20:33 Therefore in the resurrection whose wife of them is she? for +seven had her to wife. + +20:34 And Jesus answering said unto them, The children of this world +marry, and are given in marriage: 20:35 But they which shall be +accounted worthy to obtain that world, and the resurrection from the +dead, neither marry, nor are given in marriage: 20:36 Neither can they +die any more: for they are equal unto the angels; and are the children +of God, being the children of the resurrection. + +20:37 Now that the dead are raised, even Moses shewed at the bush, +when he calleth the Lord the God of Abraham, and the God of Isaac, and +the God of Jacob. + +20:38 For he is not a God of the dead, but of the living: for all live +unto him. + +20:39 Then certain of the scribes answering said, Master, thou hast +well said. + +20:40 And after that they durst not ask him any question at all. + +20:41 And he said unto them, How say they that Christ is David's son? +20:42 And David himself saith in the book of Psalms, The LORD said +unto my Lord, Sit thou on my right hand, 20:43 Till I make thine +enemies thy footstool. + +20:44 David therefore calleth him Lord, how is he then his son? 20:45 +Then in the audience of all the people he said unto his disciples, +20:46 Beware of the scribes, which desire to walk in long robes, and +love greetings in the markets, and the highest seats in the +synagogues, and the chief rooms at feasts; 20:47 Which devour widows' +houses, and for a shew make long prayers: the same shall receive +greater damnation. + +21:1 And he looked up, and saw the rich men casting their gifts into +the treasury. + +21:2 And he saw also a certain poor widow casting in thither two +mites. + +21:3 And he said, Of a truth I say unto you, that this poor widow hath +cast in more than they all: 21:4 For all these have of their abundance +cast in unto the offerings of God: but she of her penury hath cast in +all the living that she had. + +21:5 And as some spake of the temple, how it was adorned with goodly +stones and gifts, he said, 21:6 As for these things which ye behold, +the days will come, in the which there shall not be left one stone +upon another, that shall not be thrown down. + +21:7 And they asked him, saying, Master, but when shall these things +be? and what sign will there be when these things shall come to pass? +21:8 And he said, Take heed that ye be not deceived: for many shall +come in my name, saying, I am Christ; and the time draweth near: go ye +not therefore after them. + +21:9 But when ye shall hear of wars and commotions, be not terrified: +for these things must first come to pass; but the end is not by and +by. + +21:10 Then said he unto them, Nation shall rise against nation, and +kingdom against kingdom: 21:11 And great earthquakes shall be in +divers places, and famines, and pestilences; and fearful sights and +great signs shall there be from heaven. + +21:12 But before all these, they shall lay their hands on you, and +persecute you, delivering you up to the synagogues, and into prisons, +being brought before kings and rulers for my name's sake. + +21:13 And it shall turn to you for a testimony. + +21:14 Settle it therefore in your hearts, not to meditate before what +ye shall answer: 21:15 For I will give you a mouth and wisdom, which +all your adversaries shall not be able to gainsay nor resist. + +21:16 And ye shall be betrayed both by parents, and brethren, and +kinsfolks, and friends; and some of you shall they cause to be put to +death. + +21:17 And ye shall be hated of all men for my name's sake. + +21:18 But there shall not an hair of your head perish. + +21:19 In your patience possess ye your souls. + +21:20 And when ye shall see Jerusalem compassed with armies, then know +that the desolation thereof is nigh. + +21:21 Then let them which are in Judaea flee to the mountains; and let +them which are in the midst of it depart out; and let not them that +are in the countries enter thereinto. + +21:22 For these be the days of vengeance, that all things which are +written may be fulfilled. + +21:23 But woe unto them that are with child, and to them that give +suck, in those days! for there shall be great distress in the land, +and wrath upon this people. + +21:24 And they shall fall by the edge of the sword, and shall be led +away captive into all nations: and Jerusalem shall be trodden down of +the Gentiles, until the times of the Gentiles be fulfilled. + +21:25 And there shall be signs in the sun, and in the moon, and in the +stars; and upon the earth distress of nations, with perplexity; the +sea and the waves roaring; 21:26 Men's hearts failing them for fear, +and for looking after those things which are coming on the earth: for +the powers of heaven shall be shaken. + +21:27 And then shall they see the Son of man coming in a cloud with +power and great glory. + +21:28 And when these things begin to come to pass, then look up, and +lift up your heads; for your redemption draweth nigh. + +21:29 And he spake to them a parable; Behold the fig tree, and all the +trees; 21:30 When they now shoot forth, ye see and know of your own +selves that summer is now nigh at hand. + +21:31 So likewise ye, when ye see these things come to pass, know ye +that the kingdom of God is nigh at hand. + +21:32 Verily I say unto you, This generation shall not pass away, till +all be fulfilled. + +21:33 Heaven and earth shall pass away: but my words shall not pass +away. + +21:34 And take heed to yourselves, lest at any time your hearts be +overcharged with surfeiting, and drunkenness, and cares of this life, +and so that day come upon you unawares. + +21:35 For as a snare shall it come on all them that dwell on the face +of the whole earth. + +21:36 Watch ye therefore, and pray always, that ye may be accounted +worthy to escape all these things that shall come to pass, and to +stand before the Son of man. + +21:37 And in the day time he was teaching in the temple; and at night +he went out, and abode in the mount that is called the mount of +Olives. + +21:38 And all the people came early in the morning to him in the +temple, for to hear him. + +22:1 Now the feast of unleavened bread drew nigh, which is called the +Passover. + +22:2 And the chief priests and scribes sought how they might kill him; +for they feared the people. + +22:3 Then entered Satan into Judas surnamed Iscariot, being of the +number of the twelve. + +22:4 And he went his way, and communed with the chief priests and +captains, how he might betray him unto them. + +22:5 And they were glad, and covenanted to give him money. + +22:6 And he promised, and sought opportunity to betray him unto them +in the absence of the multitude. + +22:7 Then came the day of unleavened bread, when the passover must be +killed. + +22:8 And he sent Peter and John, saying, Go and prepare us the +passover, that we may eat. + +22:9 And they said unto him, Where wilt thou that we prepare? 22:10 +And he said unto them, Behold, when ye are entered into the city, +there shall a man meet you, bearing a pitcher of water; follow him +into the house where he entereth in. + +22:11 And ye shall say unto the goodman of the house, The Master saith +unto thee, Where is the guestchamber, where I shall eat the passover +with my disciples? 22:12 And he shall shew you a large upper room +furnished: there make ready. + +22:13 And they went, and found as he had said unto them: and they made +ready the passover. + +22:14 And when the hour was come, he sat down, and the twelve apostles +with him. + +22:15 And he said unto them, With desire I have desired to eat this +passover with you before I suffer: 22:16 For I say unto you, I will +not any more eat thereof, until it be fulfilled in the kingdom of God. + +22:17 And he took the cup, and gave thanks, and said, Take this, and +divide it among yourselves: 22:18 For I say unto you, I will not drink +of the fruit of the vine, until the kingdom of God shall come. + +22:19 And he took bread, and gave thanks, and brake it, and gave unto +them, saying, This is my body which is given for you: this do in +remembrance of me. + +22:20 Likewise also the cup after supper, saying, This cup is the new +testament in my blood, which is shed for you. + +22:21 But, behold, the hand of him that betrayeth me is with me on the +table. + +22:22 And truly the Son of man goeth, as it was determined: but woe +unto that man by whom he is betrayed! 22:23 And they began to enquire +among themselves, which of them it was that should do this thing. + +22:24 And there was also a strife among them, which of them should be +accounted the greatest. + +22:25 And he said unto them, The kings of the Gentiles exercise +lordship over them; and they that exercise authority upon them are +called benefactors. + +22:26 But ye shall not be so: but he that is greatest among you, let +him be as the younger; and he that is chief, as he that doth serve. + +22:27 For whether is greater, he that sitteth at meat, or he that +serveth? is not he that sitteth at meat? but I am among you as he +that serveth. + +22:28 Ye are they which have continued with me in my temptations. + +22:29 And I appoint unto you a kingdom, as my Father hath appointed +unto me; 22:30 That ye may eat and drink at my table in my kingdom, +and sit on thrones judging the twelve tribes of Israel. + +22:31 And the Lord said, Simon, Simon, behold, Satan hath desired to +have you, that he may sift you as wheat: 22:32 But I have prayed for +thee, that thy faith fail not: and when thou art converted, strengthen +thy brethren. + +22:33 And he said unto him, Lord, I am ready to go with thee, both +into prison, and to death. + +22:34 And he said, I tell thee, Peter, the cock shall not crow this +day, before that thou shalt thrice deny that thou knowest me. + +22:35 And he said unto them, When I sent you without purse, and scrip, +and shoes, lacked ye any thing? And they said, Nothing. + +22:36 Then said he unto them, But now, he that hath a purse, let him +take it, and likewise his scrip: and he that hath no sword, let him +sell his garment, and buy one. + +22:37 For I say unto you, that this that is written must yet be +accomplished in me, And he was reckoned among the transgressors: for +the things concerning me have an end. + +22:38 And they said, Lord, behold, here are two swords. And he said +unto them, It is enough. + +22:39 And he came out, and went, as he was wont, to the mount of +Olives; and his disciples also followed him. + +22:40 And when he was at the place, he said unto them, Pray that ye +enter not into temptation. + +22:41 And he was withdrawn from them about a stone's cast, and kneeled +down, and prayed, 22:42 Saying, Father, if thou be willing, remove +this cup from me: nevertheless not my will, but thine, be done. + +22:43 And there appeared an angel unto him from heaven, strengthening +him. + +22:44 And being in an agony he prayed more earnestly: and his sweat +was as it were great drops of blood falling down to the ground. + +22:45 And when he rose up from prayer, and was come to his disciples, +he found them sleeping for sorrow, 22:46 And said unto them, Why sleep +ye? rise and pray, lest ye enter into temptation. + +22:47 And while he yet spake, behold a multitude, and he that was +called Judas, one of the twelve, went before them, and drew near unto +Jesus to kiss him. + +22:48 But Jesus said unto him, Judas, betrayest thou the Son of man +with a kiss? 22:49 When they which were about him saw what would +follow, they said unto him, Lord, shall we smite with the sword? +22:50 And one of them smote the servant of the high priest, and cut +off his right ear. + +22:51 And Jesus answered and said, Suffer ye thus far. And he touched +his ear, and healed him. + +22:52 Then Jesus said unto the chief priests, and captains of the +temple, and the elders, which were come to him, Be ye come out, as +against a thief, with swords and staves? 22:53 When I was daily with +you in the temple, ye stretched forth no hands against me: but this is +your hour, and the power of darkness. + +22:54 Then took they him, and led him, and brought him into the high +priest's house. And Peter followed afar off. + +22:55 And when they had kindled a fire in the midst of the hall, and +were set down together, Peter sat down among them. + +22:56 But a certain maid beheld him as he sat by the fire, and +earnestly looked upon him, and said, This man was also with him. + +22:57 And he denied him, saying, Woman, I know him not. + +22:58 And after a little while another saw him, and said, Thou art +also of them. And Peter said, Man, I am not. + +22:59 And about the space of one hour after another confidently +affirmed, saying, Of a truth this fellow also was with him: for he is +a Galilaean. + +22:60 And Peter said, Man, I know not what thou sayest. And +immediately, while he yet spake, the cock crew. + +22:61 And the Lord turned, and looked upon Peter. And Peter remembered +the word of the Lord, how he had said unto him, Before the cock crow, +thou shalt deny me thrice. + +22:62 And Peter went out, and wept bitterly. + +22:63 And the men that held Jesus mocked him, and smote him. + +22:64 And when they had blindfolded him, they struck him on the face, +and asked him, saying, Prophesy, who is it that smote thee? 22:65 And +many other things blasphemously spake they against him. + +22:66 And as soon as it was day, the elders of the people and the +chief priests and the scribes came together, and led him into their +council, saying, 22:67 Art thou the Christ? tell us. And he said unto +them, If I tell you, ye will not believe: 22:68 And if I also ask you, +ye will not answer me, nor let me go. + +22:69 Hereafter shall the Son of man sit on the right hand of the +power of God. + +22:70 Then said they all, Art thou then the Son of God? And he said +unto them, Ye say that I am. + +22:71 And they said, What need we any further witness? for we +ourselves have heard of his own mouth. + +23:1 And the whole multitude of them arose, and led him unto Pilate. + +23:2 And they began to accuse him, saying, We found this fellow +perverting the nation, and forbidding to give tribute to Caesar, +saying that he himself is Christ a King. + +23:3 And Pilate asked him, saying, Art thou the King of the Jews? And +he answered him and said, Thou sayest it. + +23:4 Then said Pilate to the chief priests and to the people, I find +no fault in this man. + +23:5 And they were the more fierce, saying, He stirreth up the people, +teaching throughout all Jewry, beginning from Galilee to this place. + +23:6 When Pilate heard of Galilee, he asked whether the man were a +Galilaean. + +23:7 And as soon as he knew that he belonged unto Herod's +jurisdiction, he sent him to Herod, who himself also was at Jerusalem +at that time. + +23:8 And when Herod saw Jesus, he was exceeding glad: for he was +desirous to see him of a long season, because he had heard many things +of him; and he hoped to have seen some miracle done by him. + +23:9 Then he questioned with him in many words; but he answered him +nothing. + +23:10 And the chief priests and scribes stood and vehemently accused +him. + +23:11 And Herod with his men of war set him at nought, and mocked him, +and arrayed him in a gorgeous robe, and sent him again to Pilate. + +23:12 And the same day Pilate and Herod were made friends together: +for before they were at enmity between themselves. + +23:13 And Pilate, when he had called together the chief priests and +the rulers and the people, 23:14 Said unto them, Ye have brought this +man unto me, as one that perverteth the people: and, behold, I, having +examined him before you, have found no fault in this man touching +those things whereof ye accuse him: 23:15 No, nor yet Herod: for I +sent you to him; and, lo, nothing worthy of death is done unto him. + +23:16 I will therefore chastise him, and release him. + +23:17 (For of necessity he must release one unto them at the feast.) +23:18 And they cried out all at once, saying, Away with this man, and +release unto us Barabbas: 23:19 (Who for a certain sedition made in +the city, and for murder, was cast into prison.) 23:20 Pilate +therefore, willing to release Jesus, spake again to them. + +23:21 But they cried, saying, Crucify him, crucify him. + +23:22 And he said unto them the third time, Why, what evil hath he +done? I have found no cause of death in him: I will therefore chastise +him, and let him go. + +23:23 And they were instant with loud voices, requiring that he might +be crucified. And the voices of them and of the chief priests +prevailed. + +23:24 And Pilate gave sentence that it should be as they required. + +23:25 And he released unto them him that for sedition and murder was +cast into prison, whom they had desired; but he delivered Jesus to +their will. + +23:26 And as they led him away, they laid hold upon one Simon, a +Cyrenian, coming out of the country, and on him they laid the cross, +that he might bear it after Jesus. + +23:27 And there followed him a great company of people, and of women, +which also bewailed and lamented him. + +23:28 But Jesus turning unto them said, Daughters of Jerusalem, weep +not for me, but weep for yourselves, and for your children. + +23:29 For, behold, the days are coming, in the which they shall say, +Blessed are the barren, and the wombs that never bare, and the paps +which never gave suck. + +23:30 Then shall they begin to say to the mountains, Fall on us; and +to the hills, Cover us. + +23:31 For if they do these things in a green tree, what shall be done +in the dry? 23:32 And there were also two other, malefactors, led +with him to be put to death. + +23:33 And when they were come to the place, which is called Calvary, +there they crucified him, and the malefactors, one on the right hand, +and the other on the left. + +23:34 Then said Jesus, Father, forgive them; for they know not what +they do. And they parted his raiment, and cast lots. + +23:35 And the people stood beholding. And the rulers also with them +derided him, saying, He saved others; let him save himself, if he be +Christ, the chosen of God. + +23:36 And the soldiers also mocked him, coming to him, and offering +him vinegar, 23:37 And saying, If thou be the king of the Jews, save +thyself. + +23:38 And a superscription also was written over him in letters of +Greek, and Latin, and Hebrew, THIS IS THE KING OF THE JEWS. + +23:39 And one of the malefactors which were hanged railed on him, +saying, If thou be Christ, save thyself and us. + +23:40 But the other answering rebuked him, saying, Dost not thou fear +God, seeing thou art in the same condemnation? 23:41 And we indeed +justly; for we receive the due reward of our deeds: but this man hath +done nothing amiss. + +23:42 And he said unto Jesus, Lord, remember me when thou comest into +thy kingdom. + +23:43 And Jesus said unto him, Verily I say unto thee, To day shalt +thou be with me in paradise. + +23:44 And it was about the sixth hour, and there was a darkness over +all the earth until the ninth hour. + +23:45 And the sun was darkened, and the veil of the temple was rent in +the midst. + +23:46 And when Jesus had cried with a loud voice, he said, Father, +into thy hands I commend my spirit: and having said thus, he gave up +the ghost. + +23:47 Now when the centurion saw what was done, he glorified God, +saying, Certainly this was a righteous man. + +23:48 And all the people that came together to that sight, beholding +the things which were done, smote their breasts, and returned. + +23:49 And all his acquaintance, and the women that followed him from +Galilee, stood afar off, beholding these things. + +23:50 And, behold, there was a man named Joseph, a counsellor; and he +was a good man, and a just: 23:51 (The same had not consented to the +counsel and deed of them;) he was of Arimathaea, a city of the Jews: +who also himself waited for the kingdom of God. + +23:52 This man went unto Pilate, and begged the body of Jesus. + +23:53 And he took it down, and wrapped it in linen, and laid it in a +sepulchre that was hewn in stone, wherein never man before was laid. + +23:54 And that day was the preparation, and the sabbath drew on. + +23:55 And the women also, which came with him from Galilee, followed +after, and beheld the sepulchre, and how his body was laid. + +23:56 And they returned, and prepared spices and ointments; and rested +the sabbath day according to the commandment. + +24:1 Now upon the first day of the week, very early in the morning, +they came unto the sepulchre, bringing the spices which they had +prepared, and certain others with them. + +24:2 And they found the stone rolled away from the sepulchre. + +24:3 And they entered in, and found not the body of the Lord Jesus. + +24:4 And it came to pass, as they were much perplexed thereabout, +behold, two men stood by them in shining garments: 24:5 And as they +were afraid, and bowed down their faces to the earth, they said unto +them, Why seek ye the living among the dead? 24:6 He is not here, but +is risen: remember how he spake unto you when he was yet in Galilee, +24:7 Saying, The Son of man must be delivered into the hands of sinful +men, and be crucified, and the third day rise again. + +24:8 And they remembered his words, 24:9 And returned from the +sepulchre, and told all these things unto the eleven, and to all the +rest. + +24:10 It was Mary Magdalene and Joanna, and Mary the mother of James, +and other women that were with them, which told these things unto the +apostles. + +24:11 And their words seemed to them as idle tales, and they believed +them not. + +24:12 Then arose Peter, and ran unto the sepulchre; and stooping down, +he beheld the linen clothes laid by themselves, and departed, +wondering in himself at that which was come to pass. + +24:13 And, behold, two of them went that same day to a village called +Emmaus, which was from Jerusalem about threescore furlongs. + +24:14 And they talked together of all these things which had happened. + +24:15 And it came to pass, that, while they communed together and +reasoned, Jesus himself drew near, and went with them. + +24:16 But their eyes were holden that they should not know him. + +24:17 And he said unto them, What manner of communications are these +that ye have one to another, as ye walk, and are sad? 24:18 And the +one of them, whose name was Cleopas, answering said unto him, Art thou +only a stranger in Jerusalem, and hast not known the things which are +come to pass there in these days? 24:19 And he said unto them, What +things? And they said unto him, Concerning Jesus of Nazareth, which +was a prophet mighty in deed and word before God and all the people: +24:20 And how the chief priests and our rulers delivered him to be +condemned to death, and have crucified him. + +24:21 But we trusted that it had been he which should have redeemed +Israel: and beside all this, to day is the third day since these +things were done. + +24:22 Yea, and certain women also of our company made us astonished, +which were early at the sepulchre; 24:23 And when they found not his +body, they came, saying, that they had also seen a vision of angels, +which said that he was alive. + +24:24 And certain of them which were with us went to the sepulchre, +and found it even so as the women had said: but him they saw not. + +24:25 Then he said unto them, O fools, and slow of heart to believe +all that the prophets have spoken: 24:26 Ought not Christ to have +suffered these things, and to enter into his glory? 24:27 And +beginning at Moses and all the prophets, he expounded unto them in all +the scriptures the things concerning himself. + +24:28 And they drew nigh unto the village, whither they went: and he +made as though he would have gone further. + +24:29 But they constrained him, saying, Abide with us: for it is +toward evening, and the day is far spent. And he went in to tarry with +them. + +24:30 And it came to pass, as he sat at meat with them, he took bread, +and blessed it, and brake, and gave to them. + +24:31 And their eyes were opened, and they knew him; and he vanished +out of their sight. + +24:32 And they said one to another, Did not our heart burn within us, +while he talked with us by the way, and while he opened to us the +scriptures? 24:33 And they rose up the same hour, and returned to +Jerusalem, and found the eleven gathered together, and them that were +with them, 24:34 Saying, The Lord is risen indeed, and hath appeared +to Simon. + +24:35 And they told what things were done in the way, and how he was +known of them in breaking of bread. + +24:36 And as they thus spake, Jesus himself stood in the midst of +them, and saith unto them, Peace be unto you. + +24:37 But they were terrified and affrighted, and supposed that they +had seen a spirit. + +24:38 And he said unto them, Why are ye troubled? and why do thoughts +arise in your hearts? 24:39 Behold my hands and my feet, that it is I +myself: handle me, and see; for a spirit hath not flesh and bones, as +ye see me have. + +24:40 And when he had thus spoken, he shewed them his hands and his +feet. + +24:41 And while they yet believed not for joy, and wondered, he said +unto them, Have ye here any meat? 24:42 And they gave him a piece of +a broiled fish, and of an honeycomb. + +24:43 And he took it, and did eat before them. + +24:44 And he said unto them, These are the words which I spake unto +you, while I was yet with you, that all things must be fulfilled, +which were written in the law of Moses, and in the prophets, and in +the psalms, concerning me. + +24:45 Then opened he their understanding, that they might understand +the scriptures, 24:46 And said unto them, Thus it is written, and thus +it behoved Christ to suffer, and to rise from the dead the third day: +24:47 And that repentance and remission of sins should be preached in +his name among all nations, beginning at Jerusalem. + +24:48 And ye are witnesses of these things. + +24:49 And, behold, I send the promise of my Father upon you: but tarry +ye in the city of Jerusalem, until ye be endued with power from on +high. + +24:50 And he led them out as far as to Bethany, and he lifted up his +hands, and blessed them. + +24:51 And it came to pass, while he blessed them, he was parted from +them, and carried up into heaven. + +24:52 And they worshipped him, and returned to Jerusalem with great +joy: 24:53 And were continually in the temple, praising and blessing +God. Amen. + + + +The Gospel According to Saint John + + +1:1 In the beginning was the Word, and the Word was with God, and the +Word was God. + +1:2 The same was in the beginning with God. + +1:3 All things were made by him; and without him was not any thing +made that was made. + +1:4 In him was life; and the life was the light of men. + +1:5 And the light shineth in darkness; and the darkness comprehended +it not. + +1:6 There was a man sent from God, whose name was John. + +1:7 The same came for a witness, to bear witness of the Light, that +all men through him might believe. + +1:8 He was not that Light, but was sent to bear witness of that Light. + +1:9 That was the true Light, which lighteth every man that cometh into +the world. + +1:10 He was in the world, and the world was made by him, and the world +knew him not. + +1:11 He came unto his own, and his own received him not. + +1:12 But as many as received him, to them gave he power to become the +sons of God, even to them that believe on his name: 1:13 Which were +born, not of blood, nor of the will of the flesh, nor of the will of +man, but of God. + +1:14 And the Word was made flesh, and dwelt among us, (and we beheld +his glory, the glory as of the only begotten of the Father,) full of +grace and truth. + +1:15 John bare witness of him, and cried, saying, This was he of whom +I spake, He that cometh after me is preferred before me: for he was +before me. + +1:16 And of his fulness have all we received, and grace for grace. + +1:17 For the law was given by Moses, but grace and truth came by Jesus +Christ. + +1:18 No man hath seen God at any time, the only begotten Son, which is +in the bosom of the Father, he hath declared him. + +1:19 And this is the record of John, when the Jews sent priests and +Levites from Jerusalem to ask him, Who art thou? 1:20 And he +confessed, and denied not; but confessed, I am not the Christ. + +1:21 And they asked him, What then? Art thou Elias? And he saith, I am +not. Art thou that prophet? And he answered, No. + +1:22 Then said they unto him, Who art thou? that we may give an answer +to them that sent us. What sayest thou of thyself? 1:23 He said, I am +the voice of one crying in the wilderness, Make straight the way of +the Lord, as said the prophet Esaias. + +1:24 And they which were sent were of the Pharisees. + +1:25 And they asked him, and said unto him, Why baptizest thou then, +if thou be not that Christ, nor Elias, neither that prophet? 1:26 +John answered them, saying, I baptize with water: but there standeth +one among you, whom ye know not; 1:27 He it is, who coming after me is +preferred before me, whose shoe's latchet I am not worthy to unloose. + +1:28 These things were done in Bethabara beyond Jordan, where John was +baptizing. + +1:29 The next day John seeth Jesus coming unto him, and saith, Behold +the Lamb of God, which taketh away the sin of the world. + +1:30 This is he of whom I said, After me cometh a man which is +preferred before me: for he was before me. + +1:31 And I knew him not: but that he should be made manifest to +Israel, therefore am I come baptizing with water. + +1:32 And John bare record, saying, I saw the Spirit descending from +heaven like a dove, and it abode upon him. + +1:33 And I knew him not: but he that sent me to baptize with water, +the same said unto me, Upon whom thou shalt see the Spirit descending, +and remaining on him, the same is he which baptizeth with the Holy +Ghost. + +1:34 And I saw, and bare record that this is the Son of God. + +1:35 Again the next day after John stood, and two of his disciples; +1:36 And looking upon Jesus as he walked, he saith, Behold the Lamb of +God! 1:37 And the two disciples heard him speak, and they followed +Jesus. + +1:38 Then Jesus turned, and saw them following, and saith unto them, +What seek ye? They said unto him, Rabbi, (which is to say, being +interpreted, Master,) where dwellest thou? 1:39 He saith unto them, +Come and see. They came and saw where he dwelt, and abode with him +that day: for it was about the tenth hour. + +1:40 One of the two which heard John speak, and followed him, was +Andrew, Simon Peter's brother. + +1:41 He first findeth his own brother Simon, and saith unto him, We +have found the Messias, which is, being interpreted, the Christ. + +1:42 And he brought him to Jesus. And when Jesus beheld him, he said, +Thou art Simon the son of Jona: thou shalt be called Cephas, which is +by interpretation, A stone. + +1:43 The day following Jesus would go forth into Galilee, and findeth +Philip, and saith unto him, Follow me. + +1:44 Now Philip was of Bethsaida, the city of Andrew and Peter. + +1:45 Philip findeth Nathanael, and saith unto him, We have found him, +of whom Moses in the law, and the prophets, did write, Jesus of +Nazareth, the son of Joseph. + +1:46 And Nathanael said unto him, Can there any good thing come out of +Nazareth? Philip saith unto him, Come and see. + +1:47 Jesus saw Nathanael coming to him, and saith of him, Behold an +Israelite indeed, in whom is no guile! 1:48 Nathanael saith unto him, +Whence knowest thou me? Jesus answered and said unto him, Before that +Philip called thee, when thou wast under the fig tree, I saw thee. + +1:49 Nathanael answered and saith unto him, Rabbi, thou art the Son of +God; thou art the King of Israel. + +1:50 Jesus answered and said unto him, Because I said unto thee, I saw +thee under the fig tree, believest thou? thou shalt see greater things +than these. + +1:51 And he saith unto him, Verily, verily, I say unto you, Hereafter +ye shall see heaven open, and the angels of God ascending and +descending upon the Son of man. + +2:1 And the third day there was a marriage in Cana of Galilee; and the +mother of Jesus was there: 2:2 And both Jesus was called, and his +disciples, to the marriage. + +2:3 And when they wanted wine, the mother of Jesus saith unto him, +They have no wine. + +2:4 Jesus saith unto her, Woman, what have I to do with thee? mine +hour is not yet come. + +2:5 His mother saith unto the servants, Whatsoever he saith unto you, +do it. + +2:6 And there were set there six waterpots of stone, after the manner +of the purifying of the Jews, containing two or three firkins apiece. + +2:7 Jesus saith unto them, Fill the waterpots with water. And they +filled them up to the brim. + +2:8 And he saith unto them, Draw out now, and bear unto the governor +of the feast. And they bare it. + +2:9 When the ruler of the feast had tasted the water that was made +wine, and knew not whence it was: (but the servants which drew the +water knew;) the governor of the feast called the bridegroom, 2:10 And +saith unto him, Every man at the beginning doth set forth good wine; +and when men have well drunk, then that which is worse: but thou hast +kept the good wine until now. + +2:11 This beginning of miracles did Jesus in Cana of Galilee, and +manifested forth his glory; and his disciples believed on him. + +2:12 After this he went down to Capernaum, he, and his mother, and his +brethren, and his disciples: and they continued there not many days. + +2:13 And the Jews' passover was at hand, and Jesus went up to +Jerusalem. + +2:14 And found in the temple those that sold oxen and sheep and doves, +and the changers of money sitting: 2:15 And when he had made a scourge +of small cords, he drove them all out of the temple, and the sheep, +and the oxen; and poured out the changers' money, and overthrew the +tables; 2:16 And said unto them that sold doves, Take these things +hence; make not my Father's house an house of merchandise. + +2:17 And his disciples remembered that it was written, The zeal of +thine house hath eaten me up. + +2:18 Then answered the Jews and said unto him, What sign shewest thou +unto us, seeing that thou doest these things? 2:19 Jesus answered and +said unto them, Destroy this temple, and in three days I will raise it +up. + +2:20 Then said the Jews, Forty and six years was this temple in +building, and wilt thou rear it up in three days? 2:21 But he spake +of the temple of his body. + +2:22 When therefore he was risen from the dead, his disciples +remembered that he had said this unto them; and they believed the +scripture, and the word which Jesus had said. + +2:23 Now when he was in Jerusalem at the passover, in the feast day, +many believed in his name, when they saw the miracles which he did. + +2:24 But Jesus did not commit himself unto them, because he knew all +men, 2:25 And needed not that any should testify of man: for he knew +what was in man. + +3:1 There was a man of the Pharisees, named Nicodemus, a ruler of the +Jews: 3:2 The same came to Jesus by night, and said unto him, Rabbi, +we know that thou art a teacher come from God: for no man can do these +miracles that thou doest, except God be with him. + +3:3 Jesus answered and said unto him, Verily, verily, I say unto thee, +Except a man be born again, he cannot see the kingdom of God. + +3:4 Nicodemus saith unto him, How can a man be born when he is old? +can he enter the second time into his mother's womb, and be born? 3:5 +Jesus answered, Verily, verily, I say unto thee, Except a man be born +of water and of the Spirit, he cannot enter into the kingdom of God. + +3:6 That which is born of the flesh is flesh; and that which is born +of the Spirit is spirit. + +3:7 Marvel not that I said unto thee, Ye must be born again. + +3:8 The wind bloweth where it listeth, and thou hearest the sound +thereof, but canst not tell whence it cometh, and whither it goeth: so +is every one that is born of the Spirit. + +3:9 Nicodemus answered and said unto him, How can these things be? +3:10 Jesus answered and said unto him, Art thou a master of Israel, +and knowest not these things? 3:11 Verily, verily, I say unto thee, +We speak that we do know, and testify that we have seen; and ye +receive not our witness. + +3:12 If I have told you earthly things, and ye believe not, how shall +ye believe, if I tell you of heavenly things? 3:13 And no man hath +ascended up to heaven, but he that came down from heaven, even the Son +of man which is in heaven. + +3:14 And as Moses lifted up the serpent in the wilderness, even so +must the Son of man be lifted up: 3:15 That whosoever believeth in him +should not perish, but have eternal life. + +3:16 For God so loved the world, that he gave his only begotten Son, +that whosoever believeth in him should not perish, but have +everlasting life. + +3:17 For God sent not his Son into the world to condemn the world; but +that the world through him might be saved. + +3:18 He that believeth on him is not condemned: but he that believeth +not is condemned already, because he hath not believed in the name of +the only begotten Son of God. + +3:19 And this is the condemnation, that light is come into the world, +and men loved darkness rather than light, because their deeds were +evil. + +3:20 For every one that doeth evil hateth the light, neither cometh to +the light, lest his deeds should be reproved. + +3:21 But he that doeth truth cometh to the light, that his deeds may +be made manifest, that they are wrought in God. + +3:22 After these things came Jesus and his disciples into the land of +Judaea; and there he tarried with them, and baptized. + +3:23 And John also was baptizing in Aenon near to Salim, because there +was much water there: and they came, and were baptized. + +3:24 For John was not yet cast into prison. + +3:25 Then there arose a question between some of John's disciples and +the Jews about purifying. + +3:26 And they came unto John, and said unto him, Rabbi, he that was +with thee beyond Jordan, to whom thou barest witness, behold, the same +baptizeth, and all men come to him. + +3:27 John answered and said, A man can receive nothing, except it be +given him from heaven. + +3:28 Ye yourselves bear me witness, that I said, I am not the Christ, +but that I am sent before him. + +3:29 He that hath the bride is the bridegroom: but the friend of the +bridegroom, which standeth and heareth him, rejoiceth greatly because +of the bridegroom's voice: this my joy therefore is fulfilled. + +3:30 He must increase, but I must decrease. + +3:31 He that cometh from above is above all: he that is of the earth +is earthly, and speaketh of the earth: he that cometh from heaven is +above all. + +3:32 And what he hath seen and heard, that he testifieth; and no man +receiveth his testimony. + +3:33 He that hath received his testimony hath set to his seal that God +is true. + +3:34 For he whom God hath sent speaketh the words of God: for God +giveth not the Spirit by measure unto him. + +3:35 The Father loveth the Son, and hath given all things into his +hand. + +3:36 He that believeth on the Son hath everlasting life: and he that +believeth not the Son shall not see life; but the wrath of God abideth +on him. + +4:1 When therefore the LORD knew how the Pharisees had heard that +Jesus made and baptized more disciples than John, 4:2 (Though Jesus +himself baptized not, but his disciples,) 4:3 He left Judaea, and +departed again into Galilee. + +4:4 And he must needs go through Samaria. + +4:5 Then cometh he to a city of Samaria, which is called Sychar, near +to the parcel of ground that Jacob gave to his son Joseph. + +4:6 Now Jacob's well was there. Jesus therefore, being wearied with +his journey, sat thus on the well: and it was about the sixth hour. + +4:7 There cometh a woman of Samaria to draw water: Jesus saith unto +her, Give me to drink. + +4:8 (For his disciples were gone away unto the city to buy meat.) 4:9 +Then saith the woman of Samaria unto him, How is it that thou, being a +Jew, askest drink of me, which am a woman of Samaria? for the Jews +have no dealings with the Samaritans. + +4:10 Jesus answered and said unto her, If thou knewest the gift of +God, and who it is that saith to thee, Give me to drink; thou wouldest +have asked of him, and he would have given thee living water. + +4:11 The woman saith unto him, Sir, thou hast nothing to draw with, +and the well is deep: from whence then hast thou that living water? +4:12 Art thou greater than our father Jacob, which gave us the well, +and drank thereof himself, and his children, and his cattle? 4:13 +Jesus answered and said unto her, Whosoever drinketh of this water +shall thirst again: 4:14 But whosoever drinketh of the water that I +shall give him shall never thirst; but the water that I shall give him +shall be in him a well of water springing up into everlasting life. + +4:15 The woman saith unto him, Sir, give me this water, that I thirst +not, neither come hither to draw. + +4:16 Jesus saith unto her, Go, call thy husband, and come hither. + +4:17 The woman answered and said, I have no husband. Jesus said unto +her, Thou hast well said, I have no husband: 4:18 For thou hast had +five husbands; and he whom thou now hast is not thy husband: in that +saidst thou truly. + +4:19 The woman saith unto him, Sir, I perceive that thou art a +prophet. + +4:20 Our fathers worshipped in this mountain; and ye say, that in +Jerusalem is the place where men ought to worship. + +4:21 Jesus saith unto her, Woman, believe me, the hour cometh, when ye +shall neither in this mountain, nor yet at Jerusalem, worship the +Father. + +4:22 Ye worship ye know not what: we know what we worship: for +salvation is of the Jews. + +4:23 But the hour cometh, and now is, when the true worshippers shall +worship the Father in spirit and in truth: for the Father seeketh such +to worship him. + +4:24 God is a Spirit: and they that worship him must worship him in +spirit and in truth. + +4:25 The woman saith unto him, I know that Messias cometh, which is +called Christ: when he is come, he will tell us all things. + +4:26 Jesus saith unto her, I that speak unto thee am he. + +4:27 And upon this came his disciples, and marvelled that he talked +with the woman: yet no man said, What seekest thou? or, Why talkest +thou with her? 4:28 The woman then left her waterpot, and went her +way into the city, and saith to the men, 4:29 Come, see a man, which +told me all things that ever I did: is not this the Christ? 4:30 Then +they went out of the city, and came unto him. + +4:31 In the mean while his disciples prayed him, saying, Master, eat. + +4:32 But he said unto them, I have meat to eat that ye know not of. + +4:33 Therefore said the disciples one to another, Hath any man brought +him ought to eat? 4:34 Jesus saith unto them, My meat is to do the +will of him that sent me, and to finish his work. + +4:35 Say not ye, There are yet four months, and then cometh harvest? +behold, I say unto you, Lift up your eyes, and look on the fields; for +they are white already to harvest. + +4:36 And he that reapeth receiveth wages, and gathereth fruit unto +life eternal: that both he that soweth and he that reapeth may rejoice +together. + +4:37 And herein is that saying true, One soweth, and another reapeth. + +4:38 I sent you to reap that whereon ye bestowed no labour: other men +laboured, and ye are entered into their labours. + +4:39 And many of the Samaritans of that city believed on him for the +saying of the woman, which testified, He told me all that ever I did. + +4:40 So when the Samaritans were come unto him, they besought him that +he would tarry with them: and he abode there two days. + +4:41 And many more believed because of his own word; 4:42 And said +unto the woman, Now we believe, not because of thy saying: for we have +heard him ourselves, and know that this is indeed the Christ, the +Saviour of the world. + +4:43 Now after two days he departed thence, and went into Galilee. + +4:44 For Jesus himself testified, that a prophet hath no honour in his +own country. + +4:45 Then when he was come into Galilee, the Galilaeans received him, +having seen all the things that he did at Jerusalem at the feast: for +they also went unto the feast. + +4:46 So Jesus came again into Cana of Galilee, where he made the water +wine. And there was a certain nobleman, whose son was sick at +Capernaum. + +4:47 When he heard that Jesus was come out of Judaea into Galilee, he +went unto him, and besought him that he would come down, and heal his +son: for he was at the point of death. + +4:48 Then said Jesus unto him, Except ye see signs and wonders, ye +will not believe. + +4:49 The nobleman saith unto him, Sir, come down ere my child die. + +4:50 Jesus saith unto him, Go thy way; thy son liveth. And the man +believed the word that Jesus had spoken unto him, and he went his way. + +4:51 And as he was now going down, his servants met him, and told him, +saying, Thy son liveth. + +4:52 Then enquired he of them the hour when he began to amend. And +they said unto him, Yesterday at the seventh hour the fever left him. + +4:53 So the father knew that it was at the same hour, in the which +Jesus said unto him, Thy son liveth: and himself believed, and his +whole house. + +4:54 This is again the second miracle that Jesus did, when he was come +out of Judaea into Galilee. + +5:1 After this there was a feast of the Jews; and Jesus went up to +Jerusalem. + +5:2 Now there is at Jerusalem by the sheep market a pool, which is +called in the Hebrew tongue Bethesda, having five porches. + +5:3 In these lay a great multitude of impotent folk, of blind, halt, +withered, waiting for the moving of the water. + +5:4 For an angel went down at a certain season into the pool, and +troubled the water: whosoever then first after the troubling of the +water stepped in was made whole of whatsoever disease he had. + +5:5 And a certain man was there, which had an infirmity thirty and +eight years. + +5:6 When Jesus saw him lie, and knew that he had been now a long time +in that case, he saith unto him, Wilt thou be made whole? 5:7 The +impotent man answered him, Sir, I have no man, when the water is +troubled, to put me into the pool: but while I am coming, another +steppeth down before me. + +5:8 Jesus saith unto him, Rise, take up thy bed, and walk. + +5:9 And immediately the man was made whole, and took up his bed, and +walked: and on the same day was the sabbath. + +5:10 The Jews therefore said unto him that was cured, It is the +sabbath day: it is not lawful for thee to carry thy bed. + +5:11 He answered them, He that made me whole, the same said unto me, +Take up thy bed, and walk. + +5:12 Then asked they him, What man is that which said unto thee, Take +up thy bed, and walk? 5:13 And he that was healed wist not who it +was: for Jesus had conveyed himself away, a multitude being in that +place. + +5:14 Afterward Jesus findeth him in the temple, and said unto him, +Behold, thou art made whole: sin no more, lest a worse thing come unto +thee. + +5:15 The man departed, and told the Jews that it was Jesus, which had +made him whole. + +5:16 And therefore did the Jews persecute Jesus, and sought to slay +him, because he had done these things on the sabbath day. + +5:17 But Jesus answered them, My Father worketh hitherto, and I work. + +5:18 Therefore the Jews sought the more to kill him, because he not +only had broken the sabbath, but said also that God was his Father, +making himself equal with God. + +5:19 Then answered Jesus and said unto them, Verily, verily, I say +unto you, The Son can do nothing of himself, but what he seeth the +Father do: for what things soever he doeth, these also doeth the Son +likewise. + +5:20 For the Father loveth the Son, and sheweth him all things that +himself doeth: and he will shew him greater works than these, that ye +may marvel. + +5:21 For as the Father raiseth up the dead, and quickeneth them; even +so the Son quickeneth whom he will. + +5:22 For the Father judgeth no man, but hath committed all judgment +unto the Son: 5:23 That all men should honour the Son, even as they +honour the Father. + +He that honoureth not the Son honoureth not the Father which hath sent +him. + +5:24 Verily, verily, I say unto you, He that heareth my word, and +believeth on him that sent me, hath everlasting life, and shall not +come into condemnation; but is passed from death unto life. + +5:25 Verily, verily, I say unto you, The hour is coming, and now is, +when the dead shall hear the voice of the Son of God: and they that +hear shall live. + +5:26 For as the Father hath life in himself; so hath he given to the +Son to have life in himself; 5:27 And hath given him authority to +execute judgment also, because he is the Son of man. + +5:28 Marvel not at this: for the hour is coming, in the which all that +are in the graves shall hear his voice, 5:29 And shall come forth; +they that have done good, unto the resurrection of life; and they that +have done evil, unto the resurrection of damnation. + +5:30 I can of mine own self do nothing: as I hear, I judge: and my +judgment is just; because I seek not mine own will, but the will of +the Father which hath sent me. + +5:31 If I bear witness of myself, my witness is not true. + +5:32 There is another that beareth witness of me; and I know that the +witness which he witnesseth of me is true. + +5:33 Ye sent unto John, and he bare witness unto the truth. + +5:34 But I receive not testimony from man: but these things I say, +that ye might be saved. + +5:35 He was a burning and a shining light: and ye were willing for a +season to rejoice in his light. + +5:36 But I have greater witness than that of John: for the works which +the Father hath given me to finish, the same works that I do, bear +witness of me, that the Father hath sent me. + +5:37 And the Father himself, which hath sent me, hath borne witness of +me. + +Ye have neither heard his voice at any time, nor seen his shape. + +5:38 And ye have not his word abiding in you: for whom he hath sent, +him ye believe not. + +5:39 Search the scriptures; for in them ye think ye have eternal life: +and they are they which testify of me. + +5:40 And ye will not come to me, that ye might have life. + +5:41 I receive not honour from men. + +5:42 But I know you, that ye have not the love of God in you. + +5:43 I am come in my Father's name, and ye receive me not: if another +shall come in his own name, him ye will receive. + +5:44 How can ye believe, which receive honour one of another, and seek +not the honour that cometh from God only? 5:45 Do not think that I +will accuse you to the Father: there is one that accuseth you, even +Moses, in whom ye trust. + +5:46 For had ye believed Moses, ye would have believed me; for he +wrote of me. + +5:47 But if ye believe not his writings, how shall ye believe my +words? 6:1 After these things Jesus went over the sea of Galilee, +which is the sea of Tiberias. + +6:2 And a great multitude followed him, because they saw his miracles +which he did on them that were diseased. + +6:3 And Jesus went up into a mountain, and there he sat with his +disciples. + +6:4 And the passover, a feast of the Jews, was nigh. + +6:5 When Jesus then lifted up his eyes, and saw a great company come +unto him, he saith unto Philip, Whence shall we buy bread, that these +may eat? 6:6 And this he said to prove him: for he himself knew what +he would do. + +6:7 Philip answered him, Two hundred pennyworth of bread is not +sufficient for them, that every one of them may take a little. + +6:8 One of his disciples, Andrew, Simon Peter's brother, saith unto +him, 6:9 There is a lad here, which hath five barley loaves, and two +small fishes: but what are they among so many? 6:10 And Jesus said, +Make the men sit down. Now there was much grass in the place. So the +men sat down, in number about five thousand. + +6:11 And Jesus took the loaves; and when he had given thanks, he +distributed to the disciples, and the disciples to them that were set +down; and likewise of the fishes as much as they would. + +6:12 When they were filled, he said unto his disciples, Gather up the +fragments that remain, that nothing be lost. + +6:13 Therefore they gathered them together, and filled twelve baskets +with the fragments of the five barley loaves, which remained over and +above unto them that had eaten. + +6:14 Then those men, when they had seen the miracle that Jesus did, +said, This is of a truth that prophet that should come into the world. + +6:15 When Jesus therefore perceived that they would come and take him +by force, to make him a king, he departed again into a mountain +himself alone. + +6:16 And when even was now come, his disciples went down unto the sea, +6:17 And entered into a ship, and went over the sea toward Capernaum. +And it was now dark, and Jesus was not come to them. + +6:18 And the sea arose by reason of a great wind that blew. + +6:19 So when they had rowed about five and twenty or thirty furlongs, +they see Jesus walking on the sea, and drawing nigh unto the ship: and +they were afraid. + +6:20 But he saith unto them, It is I; be not afraid. + +6:21 Then they willingly received him into the ship: and immediately +the ship was at the land whither they went. + +6:22 The day following, when the people which stood on the other side +of the sea saw that there was none other boat there, save that one +whereinto his disciples were entered, and that Jesus went not with his +disciples into the boat, but that his disciples were gone away alone; +6:23 (Howbeit there came other boats from Tiberias nigh unto the place +where they did eat bread, after that the Lord had given thanks:) 6:24 +When the people therefore saw that Jesus was not there, neither his +disciples, they also took shipping, and came to Capernaum, seeking for +Jesus. + +6:25 And when they had found him on the other side of the sea, they +said unto him, Rabbi, when camest thou hither? 6:26 Jesus answered +them and said, Verily, verily, I say unto you, Ye seek me, not because +ye saw the miracles, but because ye did eat of the loaves, and were +filled. + +6:27 Labour not for the meat which perisheth, but for that meat which +endureth unto everlasting life, which the Son of man shall give unto +you: for him hath God the Father sealed. + +6:28 Then said they unto him, What shall we do, that we might work the +works of God? 6:29 Jesus answered and said unto them, This is the +work of God, that ye believe on him whom he hath sent. + +6:30 They said therefore unto him, What sign shewest thou then, that +we may see, and believe thee? what dost thou work? 6:31 Our fathers +did eat manna in the desert; as it is written, He gave them bread from +heaven to eat. + +6:32 Then Jesus said unto them, Verily, verily, I say unto you, Moses +gave you not that bread from heaven; but my Father giveth you the true +bread from heaven. + +6:33 For the bread of God is he which cometh down from heaven, and +giveth life unto the world. + +6:34 Then said they unto him, Lord, evermore give us this bread. + +6:35 And Jesus said unto them, I am the bread of life: he that cometh +to me shall never hunger; and he that believeth on me shall never +thirst. + +6:36 But I said unto you, That ye also have seen me, and believe not. + +6:37 All that the Father giveth me shall come to me; and him that +cometh to me I will in no wise cast out. + +6:38 For I came down from heaven, not to do mine own will, but the +will of him that sent me. + +6:39 And this is the Father's will which hath sent me, that of all +which he hath given me I should lose nothing, but should raise it up +again at the last day. + +6:40 And this is the will of him that sent me, that every one which +seeth the Son, and believeth on him, may have everlasting life: and I +will raise him up at the last day. + +6:41 The Jews then murmured at him, because he said, I am the bread +which came down from heaven. + +6:42 And they said, Is not this Jesus, the son of Joseph, whose father +and mother we know? how is it then that he saith, I came down from +heaven? 6:43 Jesus therefore answered and said unto them, Murmur not +among yourselves. + +6:44 No man can come to me, except the Father which hath sent me draw +him: and I will raise him up at the last day. + +6:45 It is written in the prophets, And they shall be all taught of +God. + +Every man therefore that hath heard, and hath learned of the Father, +cometh unto me. + +6:46 Not that any man hath seen the Father, save he which is of God, +he hath seen the Father. + +6:47 Verily, verily, I say unto you, He that believeth on me hath +everlasting life. + +6:48 I am that bread of life. + +6:49 Your fathers did eat manna in the wilderness, and are dead. + +6:50 This is the bread which cometh down from heaven, that a man may +eat thereof, and not die. + +6:51 I am the living bread which came down from heaven: if any man eat +of this bread, he shall live for ever: and the bread that I will give +is my flesh, which I will give for the life of the world. + +6:52 The Jews therefore strove among themselves, saying, How can this +man give us his flesh to eat? 6:53 Then Jesus said unto them, Verily, +verily, I say unto you, Except ye eat the flesh of the Son of man, and +drink his blood, ye have no life in you. + +6:54 Whoso eateth my flesh, and drinketh my blood, hath eternal life; +and I will raise him up at the last day. + +6:55 For my flesh is meat indeed, and my blood is drink indeed. + +6:56 He that eateth my flesh, and drinketh my blood, dwelleth in me, +and I in him. + +6:57 As the living Father hath sent me, and I live by the Father: so +he that eateth me, even he shall live by me. + +6:58 This is that bread which came down from heaven: not as your +fathers did eat manna, and are dead: he that eateth of this bread +shall live for ever. + +6:59 These things said he in the synagogue, as he taught in Capernaum. + +6:60 Many therefore of his disciples, when they had heard this, said, +This is an hard saying; who can hear it? 6:61 When Jesus knew in +himself that his disciples murmured at it, he said unto them, Doth +this offend you? 6:62 What and if ye shall see the Son of man ascend +up where he was before? 6:63 It is the spirit that quickeneth; the +flesh profiteth nothing: the words that I speak unto you, they are +spirit, and they are life. + +6:64 But there are some of you that believe not. For Jesus knew from +the beginning who they were that believed not, and who should betray +him. + +6:65 And he said, Therefore said I unto you, that no man can come unto +me, except it were given unto him of my Father. + +6:66 From that time many of his disciples went back, and walked no +more with him. + +6:67 Then said Jesus unto the twelve, Will ye also go away? 6:68 Then +Simon Peter answered him, Lord, to whom shall we go? thou hast the +words of eternal life. + +6:69 And we believe and are sure that thou art that Christ, the Son of +the living God. + +6:70 Jesus answered them, Have not I chosen you twelve, and one of you +is a devil? 6:71 He spake of Judas Iscariot the son of Simon: for he +it was that should betray him, being one of the twelve. + +7:1 After these things Jesus walked in Galilee: for he would not walk +in Jewry, because the Jews sought to kill him. + +7:2 Now the Jew's feast of tabernacles was at hand. + +7:3 His brethren therefore said unto him, Depart hence, and go into +Judaea, that thy disciples also may see the works that thou doest. + +7:4 For there is no man that doeth any thing in secret, and he himself +seeketh to be known openly. If thou do these things, shew thyself to +the world. + +7:5 For neither did his brethren believe in him. + +7:6 Then Jesus said unto them, My time is not yet come: but your time +is alway ready. + +7:7 The world cannot hate you; but me it hateth, because I testify of +it, that the works thereof are evil. + +7:8 Go ye up unto this feast: I go not up yet unto this feast: for my +time is not yet full come. + +7:9 When he had said these words unto them, he abode still in Galilee. + +7:10 But when his brethren were gone up, then went he also up unto the +feast, not openly, but as it were in secret. + +7:11 Then the Jews sought him at the feast, and said, Where is he? +7:12 And there was much murmuring among the people concerning him: for +some said, He is a good man: others said, Nay; but he deceiveth the +people. + +7:13 Howbeit no man spake openly of him for fear of the Jews. + +7:14 Now about the midst of the feast Jesus went up into the temple, +and taught. + +7:15 And the Jews marvelled, saying, How knoweth this man letters, +having never learned? 7:16 Jesus answered them, and said, My doctrine +is not mine, but his that sent me. + +7:17 If any man will do his will, he shall know of the doctrine, +whether it be of God, or whether I speak of myself. + +7:18 He that speaketh of himself seeketh his own glory: but he that +seeketh his glory that sent him, the same is true, and no +unrighteousness is in him. + +7:19 Did not Moses give you the law, and yet none of you keepeth the +law? Why go ye about to kill me? 7:20 The people answered and said, +Thou hast a devil: who goeth about to kill thee? 7:21 Jesus answered +and said unto them, I have done one work, and ye all marvel. + +7:22 Moses therefore gave unto you circumcision; (not because it is of +Moses, but of the fathers;) and ye on the sabbath day circumcise a +man. + +7:23 If a man on the sabbath day receive circumcision, that the law of +Moses should not be broken; are ye angry at me, because I have made a +man every whit whole on the sabbath day? 7:24 Judge not according to +the appearance, but judge righteous judgment. + +7:25 Then said some of them of Jerusalem, Is not this he, whom they +seek to kill? 7:26 But, lo, he speaketh boldly, and they say nothing +unto him. Do the rulers know indeed that this is the very Christ? +7:27 Howbeit we know this man whence he is: but when Christ cometh, no +man knoweth whence he is. + +7:28 Then cried Jesus in the temple as he taught, saying, Ye both know +me, and ye know whence I am: and I am not come of myself, but he that +sent me is true, whom ye know not. + +7:29 But I know him: for I am from him, and he hath sent me. + +7:30 Then they sought to take him: but no man laid hands on him, +because his hour was not yet come. + +7:31 And many of the people believed on him, and said, When Christ +cometh, will he do more miracles than these which this man hath done? +7:32 The Pharisees heard that the people murmured such things +concerning him; and the Pharisees and the chief priests sent officers +to take him. + +7:33 Then said Jesus unto them, Yet a little while am I with you, and +then I go unto him that sent me. + +7:34 Ye shall seek me, and shall not find me: and where I am, thither +ye cannot come. + +7:35 Then said the Jews among themselves, Whither will he go, that we +shall not find him? will he go unto the dispersed among the Gentiles, +and teach the Gentiles? 7:36 What manner of saying is this that he +said, Ye shall seek me, and shall not find me: and where I am, thither +ye cannot come? 7:37 In the last day, that great day of the feast, +Jesus stood and cried, saying, If any man thirst, let him come unto +me, and drink. + +7:38 He that believeth on me, as the scripture hath said, out of his +belly shall flow rivers of living water. + +7:39 (But this spake he of the Spirit, which they that believe on him +should receive: for the Holy Ghost was not yet given; because that +Jesus was not yet glorified.) 7:40 Many of the people therefore, when +they heard this saying, said, Of a truth this is the Prophet. + +7:41 Others said, This is the Christ. But some said, Shall Christ come +out of Galilee? 7:42 Hath not the scripture said, That Christ cometh +of the seed of David, and out of the town of Bethlehem, where David +was? 7:43 So there was a division among the people because of him. + +7:44 And some of them would have taken him; but no man laid hands on +him. + +7:45 Then came the officers to the chief priests and Pharisees; and +they said unto them, Why have ye not brought him? 7:46 The officers +answered, Never man spake like this man. + +7:47 Then answered them the Pharisees, Are ye also deceived? 7:48 +Have any of the rulers or of the Pharisees believed on him? 7:49 But +this people who knoweth not the law are cursed. + +7:50 Nicodemus saith unto them, (he that came to Jesus by night, being +one of them,) 7:51 Doth our law judge any man, before it hear him, and +know what he doeth? 7:52 They answered and said unto him, Art thou +also of Galilee? Search, and look: for out of Galilee ariseth no +prophet. + +7:53 And every man went unto his own house. + +8:1 Jesus went unto the mount of Olives. + +8:2 And early in the morning he came again into the temple, and all +the people came unto him; and he sat down, and taught them. + +8:3 And the scribes and Pharisees brought unto him a woman taken in +adultery; and when they had set her in the midst, 8:4 They say unto +him, Master, this woman was taken in adultery, in the very act. + +8:5 Now Moses in the law commanded us, that such should be stoned: but +what sayest thou? 8:6 This they said, tempting him, that they might +have to accuse him. But Jesus stooped down, and with his finger wrote +on the ground, as though he heard them not. + +8:7 So when they continued asking him, he lifted up himself, and said +unto them, He that is without sin among you, let him first cast a +stone at her. + +8:8 And again he stooped down, and wrote on the ground. + +8:9 And they which heard it, being convicted by their own conscience, +went out one by one, beginning at the eldest, even unto the last: and +Jesus was left alone, and the woman standing in the midst. + +8:10 When Jesus had lifted up himself, and saw none but the woman, he +said unto her, Woman, where are those thine accusers? hath no man +condemned thee? 8:11 She said, No man, Lord. And Jesus said unto her, +Neither do I condemn thee: go, and sin no more. + +8:12 Then spake Jesus again unto them, saying, I am the light of the +world: he that followeth me shall not walk in darkness, but shall have +the light of life. + +8:13 The Pharisees therefore said unto him, Thou bearest record of +thyself; thy record is not true. + +8:14 Jesus answered and said unto them, Though I bear record of +myself, yet my record is true: for I know whence I came, and whither I +go; but ye cannot tell whence I come, and whither I go. + +8:15 Ye judge after the flesh; I judge no man. + +8:16 And yet if I judge, my judgment is true: for I am not alone, but +I and the Father that sent me. + +8:17 It is also written in your law, that the testimony of two men is +true. + +8:18 I am one that bear witness of myself, and the Father that sent me +beareth witness of me. + +8:19 Then said they unto him, Where is thy Father? Jesus answered, Ye +neither know me, nor my Father: if ye had known me, ye should have +known my Father also. + +8:20 These words spake Jesus in the treasury, as he taught in the +temple: and no man laid hands on him; for his hour was not yet come. + +8:21 Then said Jesus again unto them, I go my way, and ye shall seek +me, and shall die in your sins: whither I go, ye cannot come. + +8:22 Then said the Jews, Will he kill himself? because he saith, +Whither I go, ye cannot come. + +8:23 And he said unto them, Ye are from beneath; I am from above: ye +are of this world; I am not of this world. + +8:24 I said therefore unto you, that ye shall die in your sins: for if +ye believe not that I am he, ye shall die in your sins. + +8:25 Then said they unto him, Who art thou? And Jesus saith unto them, +Even the same that I said unto you from the beginning. + +8:26 I have many things to say and to judge of you: but he that sent +me is true; and I speak to the world those things which I have heard +of him. + +8:27 They understood not that he spake to them of the Father. + +8:28 Then said Jesus unto them, When ye have lifted up the Son of man, +then shall ye know that I am he, and that I do nothing of myself; but +as my Father hath taught me, I speak these things. + +8:29 And he that sent me is with me: the Father hath not left me +alone; for I do always those things that please him. + +8:30 As he spake these words, many believed on him. + +8:31 Then said Jesus to those Jews which believed on him, If ye +continue in my word, then are ye my disciples indeed; 8:32 And ye +shall know the truth, and the truth shall make you free. + +8:33 They answered him, We be Abraham's seed, and were never in +bondage to any man: how sayest thou, Ye shall be made free? 8:34 +Jesus answered them, Verily, verily, I say unto you, Whosoever +committeth sin is the servant of sin. + +8:35 And the servant abideth not in the house for ever: but the Son +abideth ever. + +8:36 If the Son therefore shall make you free, ye shall be free +indeed. + +8:37 I know that ye are Abraham's seed; but ye seek to kill me, +because my word hath no place in you. + +8:38 I speak that which I have seen with my Father: and ye do that +which ye have seen with your father. + +8:39 They answered and said unto him, Abraham is our father. Jesus +saith unto them, If ye were Abraham's children, ye would do the works +of Abraham. + +8:40 But now ye seek to kill me, a man that hath told you the truth, +which I have heard of God: this did not Abraham. + +8:41 Ye do the deeds of your father. Then said they to him, We be not +born of fornication; we have one Father, even God. + +8:42 Jesus said unto them, If God were your Father, ye would love me: +for I proceeded forth and came from God; neither came I of myself, but +he sent me. + +8:43 Why do ye not understand my speech? even because ye cannot hear +my word. + +8:44 Ye are of your father the devil, and the lusts of your father ye +will do. He was a murderer from the beginning, and abode not in the +truth, because there is no truth in him. When he speaketh a lie, he +speaketh of his own: for he is a liar, and the father of it. + +8:45 And because I tell you the truth, ye believe me not. + +8:46 Which of you convinceth me of sin? And if I say the truth, why do +ye not believe me? 8:47 He that is of God heareth God's words: ye +therefore hear them not, because ye are not of God. + +8:48 Then answered the Jews, and said unto him, Say we not well that +thou art a Samaritan, and hast a devil? 8:49 Jesus answered, I have +not a devil; but I honour my Father, and ye do dishonour me. + +8:50 And I seek not mine own glory: there is one that seeketh and +judgeth. + +8:51 Verily, verily, I say unto you, If a man keep my saying, he shall +never see death. + +8:52 Then said the Jews unto him, Now we know that thou hast a devil. + +Abraham is dead, and the prophets; and thou sayest, If a man keep my +saying, he shall never taste of death. + +8:53 Art thou greater than our father Abraham, which is dead? and the +prophets are dead: whom makest thou thyself? 8:54 Jesus answered, If +I honour myself, my honour is nothing: it is my Father that honoureth +me; of whom ye say, that he is your God: 8:55 Yet ye have not known +him; but I know him: and if I should say, I know him not, I shall be a +liar like unto you: but I know him, and keep his saying. + +8:56 Your father Abraham rejoiced to see my day: and he saw it, and +was glad. + +8:57 Then said the Jews unto him, Thou art not yet fifty years old, +and hast thou seen Abraham? 8:58 Jesus said unto them, Verily, +verily, I say unto you, Before Abraham was, I am. + +8:59 Then took they up stones to cast at him: but Jesus hid himself, +and went out of the temple, going through the midst of them, and so +passed by. + +9:1 And as Jesus passed by, he saw a man which was blind from his +birth. + +9:2 And his disciples asked him, saying, Master, who did sin, this +man, or his parents, that he was born blind? 9:3 Jesus answered, +Neither hath this man sinned, nor his parents: but that the works of +God should be made manifest in him. + +9:4 I must work the works of him that sent me, while it is day: the +night cometh, when no man can work. + +9:5 As long as I am in the world, I am the light of the world. + +9:6 When he had thus spoken, he spat on the ground, and made clay of +the spittle, and he anointed the eyes of the blind man with the clay, +9:7 And said unto him, Go, wash in the pool of Siloam, (which is by +interpretation, Sent.) He went his way therefore, and washed, and came +seeing. + +9:8 The neighbours therefore, and they which before had seen him that +he was blind, said, Is not this he that sat and begged? 9:9 Some +said, This is he: others said, He is like him: but he said, I am he. + +9:10 Therefore said they unto him, How were thine eyes opened? 9:11 +He answered and said, A man that is called Jesus made clay, and +anointed mine eyes, and said unto me, Go to the pool of Siloam, and +wash: and I went and washed, and I received sight. + +9:12 Then said they unto him, Where is he? He said, I know not. + +9:13 They brought to the Pharisees him that aforetime was blind. + +9:14 And it was the sabbath day when Jesus made the clay, and opened +his eyes. + +9:15 Then again the Pharisees also asked him how he had received his +sight. He said unto them, He put clay upon mine eyes, and I washed, +and do see. + +9:16 Therefore said some of the Pharisees, This man is not of God, +because he keepeth not the sabbath day. Others said, How can a man +that is a sinner do such miracles? And there was a division among +them. + +9:17 They say unto the blind man again, What sayest thou of him, that +he hath opened thine eyes? He said, He is a prophet. + +9:18 But the Jews did not believe concerning him, that he had been +blind, and received his sight, until they called the parents of him +that had received his sight. + +9:19 And they asked them, saying, Is this your son, who ye say was +born blind? how then doth he now see? 9:20 His parents answered them +and said, We know that this is our son, and that he was born blind: +9:21 But by what means he now seeth, we know not; or who hath opened +his eyes, we know not: he is of age; ask him: he shall speak for +himself. + +9:22 These words spake his parents, because they feared the Jews: for +the Jews had agreed already, that if any man did confess that he was +Christ, he should be put out of the synagogue. + +9:23 Therefore said his parents, He is of age; ask him. + +9:24 Then again called they the man that was blind, and said unto him, +Give God the praise: we know that this man is a sinner. + +9:25 He answered and said, Whether he be a sinner or no, I know not: +one thing I know, that, whereas I was blind, now I see. + +9:26 Then said they to him again, What did he to thee? how opened he +thine eyes? 9:27 He answered them, I have told you already, and ye +did not hear: wherefore would ye hear it again? will ye also be his +disciples? 9:28 Then they reviled him, and said, Thou art his +disciple; but we are Moses' disciples. + +9:29 We know that God spake unto Moses: as for this fellow, we know +not from whence he is. + +9:30 The man answered and said unto them, Why herein is a marvellous +thing, that ye know not from whence he is, and yet he hath opened mine +eyes. + +9:31 Now we know that God heareth not sinners: but if any man be a +worshipper of God, and doeth his will, him he heareth. + +9:32 Since the world began was it not heard that any man opened the +eyes of one that was born blind. + +9:33 If this man were not of God, he could do nothing. + +9:34 They answered and said unto him, Thou wast altogether born in +sins, and dost thou teach us? And they cast him out. + +9:35 Jesus heard that they had cast him out; and when he had found +him, he said unto him, Dost thou believe on the Son of God? 9:36 He +answered and said, Who is he, Lord, that I might believe on him? 9:37 +And Jesus said unto him, Thou hast both seen him, and it is he that +talketh with thee. + +9:38 And he said, Lord, I believe. And he worshipped him. + +9:39 And Jesus said, For judgment I am come into this world, that they +which see not might see; and that they which see might be made blind. + +9:40 And some of the Pharisees which were with him heard these words, +and said unto him, Are we blind also? 9:41 Jesus said unto them, If +ye were blind, ye should have no sin: but now ye say, We see; +therefore your sin remaineth. + +10:1 Verily, verily, I say unto you, He that entereth not by the door +into the sheepfold, but climbeth up some other way, the same is a +thief and a robber. + +10:2 But he that entereth in by the door is the shepherd of the sheep. + +10:3 To him the porter openeth; and the sheep hear his voice: and he +calleth his own sheep by name, and leadeth them out. + +10:4 And when he putteth forth his own sheep, he goeth before them, +and the sheep follow him: for they know his voice. + +10:5 And a stranger will they not follow, but will flee from him: for +they know not the voice of strangers. + +10:6 This parable spake Jesus unto them: but they understood not what +things they were which he spake unto them. + +10:7 Then said Jesus unto them again, Verily, verily, I say unto you, +I am the door of the sheep. + +10:8 All that ever came before me are thieves and robbers: but the +sheep did not hear them. + +10:9 I am the door: by me if any man enter in, he shall be saved, and +shall go in and out, and find pasture. + +10:10 The thief cometh not, but for to steal, and to kill, and to +destroy: I am come that they might have life, and that they might have +it more abundantly. + +10:11 I am the good shepherd: the good shepherd giveth his life for +the sheep. + +10:12 But he that is an hireling, and not the shepherd, whose own the +sheep are not, seeth the wolf coming, and leaveth the sheep, and +fleeth: and the wolf catcheth them, and scattereth the sheep. + +10:13 The hireling fleeth, because he is an hireling, and careth not +for the sheep. + +10:14 I am the good shepherd, and know my sheep, and am known of mine. + +10:15 As the Father knoweth me, even so know I the Father: and I lay +down my life for the sheep. + +10:16 And other sheep I have, which are not of this fold: them also I +must bring, and they shall hear my voice; and there shall be one fold, +and one shepherd. + +10:17 Therefore doth my Father love me, because I lay down my life, +that I might take it again. + +10:18 No man taketh it from me, but I lay it down of myself. I have +power to lay it down, and I have power to take it again. This +commandment have I received of my Father. + +10:19 There was a division therefore again among the Jews for these +sayings. + +10:20 And many of them said, He hath a devil, and is mad; why hear ye +him? 10:21 Others said, These are not the words of him that hath a +devil. Can a devil open the eyes of the blind? 10:22 And it was at +Jerusalem the feast of the dedication, and it was winter. + +10:23 And Jesus walked in the temple in Solomon's porch. + +10:24 Then came the Jews round about him, and said unto him, How long +dost thou make us to doubt? If thou be the Christ, tell us plainly. + +10:25 Jesus answered them, I told you, and ye believed not: the works +that I do in my Father's name, they bear witness of me. + +10:26 But ye believe not, because ye are not of my sheep, as I said +unto you. + +10:27 My sheep hear my voice, and I know them, and they follow me: +10:28 And I give unto them eternal life; and they shall never perish, +neither shall any man pluck them out of my hand. + +10:29 My Father, which gave them me, is greater than all; and no man +is able to pluck them out of my Father's hand. + +10:30 I and my Father are one. + +10:31 Then the Jews took up stones again to stone him. + +10:32 Jesus answered them, Many good works have I shewed you from my +Father; for which of those works do ye stone me? 10:33 The Jews +answered him, saying, For a good work we stone thee not; but for +blasphemy; and because that thou, being a man, makest thyself God. + +10:34 Jesus answered them, Is it not written in your law, I said, Ye +are gods? 10:35 If he called them gods, unto whom the word of God +came, and the scripture cannot be broken; 10:36 Say ye of him, whom +the Father hath sanctified, and sent into the world, Thou blasphemest; +because I said, I am the Son of God? 10:37 If I do not the works of +my Father, believe me not. + +10:38 But if I do, though ye believe not me, believe the works: that +ye may know, and believe, that the Father is in me, and I in him. + +10:39 Therefore they sought again to take him: but he escaped out of +their hand, 10:40 And went away again beyond Jordan into the place +where John at first baptized; and there he abode. + +10:41 And many resorted unto him, and said, John did no miracle: but +all things that John spake of this man were true. + +10:42 And many believed on him there. + +11:1 Now a certain man was sick, named Lazarus, of Bethany, the town +of Mary and her sister Martha. + +11:2 (It was that Mary which anointed the Lord with ointment, and +wiped his feet with her hair, whose brother Lazarus was sick.) 11:3 +Therefore his sisters sent unto him, saying, Lord, behold, he whom +thou lovest is sick. + +11:4 When Jesus heard that, he said, This sickness is not unto death, +but for the glory of God, that the Son of God might be glorified +thereby. + +11:5 Now Jesus loved Martha, and her sister, and Lazarus. + +11:6 When he had heard therefore that he was sick, he abode two days +still in the same place where he was. + +11:7 Then after that saith he to his disciples, Let us go into Judaea +again. + +11:8 His disciples say unto him, Master, the Jews of late sought to +stone thee; and goest thou thither again? 11:9 Jesus answered, Are +there not twelve hours in the day? If any man walk in the day, he +stumbleth not, because he seeth the light of this world. + +11:10 But if a man walk in the night, he stumbleth, because there is +no light in him. + +11:11 These things said he: and after that he saith unto them, Our +friend Lazarus sleepeth; but I go, that I may awake him out of sleep. + +11:12 Then said his disciples, Lord, if he sleep, he shall do well. + +11:13 Howbeit Jesus spake of his death: but they thought that he had +spoken of taking of rest in sleep. + +11:14 Then said Jesus unto them plainly, Lazarus is dead. + +11:15 And I am glad for your sakes that I was not there, to the intent +ye may believe; nevertheless let us go unto him. + +11:16 Then said Thomas, which is called Didymus, unto his +fellowdisciples, Let us also go, that we may die with him. + +11:17 Then when Jesus came, he found that he had lain in the grave +four days already. + +11:18 Now Bethany was nigh unto Jerusalem, about fifteen furlongs off: +11:19 And many of the Jews came to Martha and Mary, to comfort them +concerning their brother. + +11:20 Then Martha, as soon as she heard that Jesus was coming, went +and met him: but Mary sat still in the house. + +11:21 Then said Martha unto Jesus, Lord, if thou hadst been here, my +brother had not died. + +11:22 But I know, that even now, whatsoever thou wilt ask of God, God +will give it thee. + +11:23 Jesus saith unto her, Thy brother shall rise again. + +11:24 Martha saith unto him, I know that he shall rise again in the +resurrection at the last day. + +11:25 Jesus said unto her, I am the resurrection, and the life: he +that believeth in me, though he were dead, yet shall he live: 11:26 +And whosoever liveth and believeth in me shall never die. Believest +thou this? 11:27 She saith unto him, Yea, Lord: I believe that thou +art the Christ, the Son of God, which should come into the world. + +11:28 And when she had so said, she went her way, and called Mary her +sister secretly, saying, The Master is come, and calleth for thee. + +11:29 As soon as she heard that, she arose quickly, and came unto him. + +11:30 Now Jesus was not yet come into the town, but was in that place +where Martha met him. + +11:31 The Jews then which were with her in the house, and comforted +her, when they saw Mary, that she rose up hastily and went out, +followed her, saying, She goeth unto the grave to weep there. + +11:32 Then when Mary was come where Jesus was, and saw him, she fell +down at his feet, saying unto him, Lord, if thou hadst been here, my +brother had not died. + +11:33 When Jesus therefore saw her weeping, and the Jews also weeping +which came with her, he groaned in the spirit, and was troubled. + +11:34 And said, Where have ye laid him? They said unto him, Lord, come +and see. + +11:35 Jesus wept. + +11:36 Then said the Jews, Behold how he loved him! 11:37 And some of +them said, Could not this man, which opened the eyes of the blind, +have caused that even this man should not have died? 11:38 Jesus +therefore again groaning in himself cometh to the grave. It was a +cave, and a stone lay upon it. + +11:39 Jesus said, Take ye away the stone. Martha, the sister of him +that was dead, saith unto him, Lord, by this time he stinketh: for he +hath been dead four days. + +11:40 Jesus saith unto her, Said I not unto thee, that, if thou +wouldest believe, thou shouldest see the glory of God? 11:41 Then +they took away the stone from the place where the dead was laid. And +Jesus lifted up his eyes, and said, Father, I thank thee that thou +hast heard me. + +11:42 And I knew that thou hearest me always: but because of the +people which stand by I said it, that they may believe that thou hast +sent me. + +11:43 And when he thus had spoken, he cried with a loud voice, +Lazarus, come forth. + +11:44 And he that was dead came forth, bound hand and foot with +graveclothes: and his face was bound about with a napkin. Jesus saith +unto them, Loose him, and let him go. + +11:45 Then many of the Jews which came to Mary, and had seen the +things which Jesus did, believed on him. + +11:46 But some of them went their ways to the Pharisees, and told them +what things Jesus had done. + +11:47 Then gathered the chief priests and the Pharisees a council, and +said, What do we? for this man doeth many miracles. + +11:48 If we let him thus alone, all men will believe on him: and the +Romans shall come and take away both our place and nation. + +11:49 And one of them, named Caiaphas, being the high priest that same +year, said unto them, Ye know nothing at all, 11:50 Nor consider that +it is expedient for us, that one man should die for the people, and +that the whole nation perish not. + +11:51 And this spake he not of himself: but being high priest that +year, he prophesied that Jesus should die for that nation; 11:52 And +not for that nation only, but that also he should gather together in +one the children of God that were scattered abroad. + +11:53 Then from that day forth they took counsel together for to put +him to death. + +11:54 Jesus therefore walked no more openly among the Jews; but went +thence unto a country near to the wilderness, into a city called +Ephraim, and there continued with his disciples. + +11:55 And the Jews' passover was nigh at hand: and many went out of +the country up to Jerusalem before the passover, to purify themselves. + +11:56 Then sought they for Jesus, and spake among themselves, as they +stood in the temple, What think ye, that he will not come to the +feast? 11:57 Now both the chief priests and the Pharisees had given a +commandment, that, if any man knew where he were, he should shew it, +that they might take him. + +12:1 Then Jesus six days before the passover came to Bethany, where +Lazarus was, which had been dead, whom he raised from the dead. + +12:2 There they made him a supper; and Martha served: but Lazarus was +one of them that sat at the table with him. + +12:3 Then took Mary a pound of ointment of spikenard, very costly, and +anointed the feet of Jesus, and wiped his feet with her hair: and the +house was filled with the odour of the ointment. + +12:4 Then saith one of his disciples, Judas Iscariot, Simon's son, +which should betray him, 12:5 Why was not this ointment sold for three +hundred pence, and given to the poor? 12:6 This he said, not that he +cared for the poor; but because he was a thief, and had the bag, and +bare what was put therein. + +12:7 Then said Jesus, Let her alone: against the day of my burying +hath she kept this. + +12:8 For the poor always ye have with you; but me ye have not always. + +12:9 Much people of the Jews therefore knew that he was there: and +they came not for Jesus' sake only, but that they might see Lazarus +also, whom he had raised from the dead. + +12:10 But the chief priests consulted that they might put Lazarus also +to death; 12:11 Because that by reason of him many of the Jews went +away, and believed on Jesus. + +12:12 On the next day much people that were come to the feast, when +they heard that Jesus was coming to Jerusalem, 12:13 Took branches of +palm trees, and went forth to meet him, and cried, Hosanna: Blessed is +the King of Israel that cometh in the name of the Lord. + +12:14 And Jesus, when he had found a young ass, sat thereon; as it is +written, 12:15 Fear not, daughter of Sion: behold, thy King cometh, +sitting on an ass's colt. + +12:16 These things understood not his disciples at the first: but when +Jesus was glorified, then remembered they that these things were +written of him, and that they had done these things unto him. + +12:17 The people therefore that was with him when he called Lazarus +out of his grave, and raised him from the dead, bare record. + +12:18 For this cause the people also met him, for that they heard that +he had done this miracle. + +12:19 The Pharisees therefore said among themselves, Perceive ye how +ye prevail nothing? behold, the world is gone after him. + +12:20 And there were certain Greeks among them that came up to worship +at the feast: 12:21 The same came therefore to Philip, which was of +Bethsaida of Galilee, and desired him, saying, Sir, we would see +Jesus. + +12:22 Philip cometh and telleth Andrew: and again Andrew and Philip +tell Jesus. + +12:23 And Jesus answered them, saying, The hour is come, that the Son +of man should be glorified. + +12:24 Verily, verily, I say unto you, Except a corn of wheat fall into +the ground and die, it abideth alone: but if it die, it bringeth forth +much fruit. + +12:25 He that loveth his life shall lose it; and he that hateth his +life in this world shall keep it unto life eternal. + +12:26 If any man serve me, let him follow me; and where I am, there +shall also my servant be: if any man serve me, him will my Father +honour. + +12:27 Now is my soul troubled; and what shall I say? Father, save me +from this hour: but for this cause came I unto this hour. + +12:28 Father, glorify thy name. Then came there a voice from heaven, +saying, I have both glorified it, and will glorify it again. + +12:29 The people therefore, that stood by, and heard it, said that it +thundered: others said, An angel spake to him. + +12:30 Jesus answered and said, This voice came not because of me, but +for your sakes. + +12:31 Now is the judgment of this world: now shall the prince of this +world be cast out. + +12:32 And I, if I be lifted up from the earth, will draw all men unto +me. + +12:33 This he said, signifying what death he should die. + +12:34 The people answered him, We have heard out of the law that +Christ abideth for ever: and how sayest thou, The Son of man must be +lifted up? who is this Son of man? 12:35 Then Jesus said unto them, +Yet a little while is the light with you. + +Walk while ye have the light, lest darkness come upon you: for he that +walketh in darkness knoweth not whither he goeth. + +12:36 While ye have light, believe in the light, that ye may be the +children of light. These things spake Jesus, and departed, and did +hide himself from them. + +12:37 But though he had done so many miracles before them, yet they +believed not on him: 12:38 That the saying of Esaias the prophet might +be fulfilled, which he spake, Lord, who hath believed our report? and +to whom hath the arm of the Lord been revealed? 12:39 Therefore they +could not believe, because that Esaias said again, 12:40 He hath +blinded their eyes, and hardened their heart; that they should not see +with their eyes, nor understand with their heart, and be converted, +and I should heal them. + +12:41 These things said Esaias, when he saw his glory, and spake of +him. + +12:42 Nevertheless among the chief rulers also many believed on him; +but because of the Pharisees they did not confess him, lest they +should be put out of the synagogue: 12:43 For they loved the praise of +men more than the praise of God. + +12:44 Jesus cried and said, He that believeth on me, believeth not on +me, but on him that sent me. + +12:45 And he that seeth me seeth him that sent me. + +12:46 I am come a light into the world, that whosoever believeth on me +should not abide in darkness. + +12:47 And if any man hear my words, and believe not, I judge him not: +for I came not to judge the world, but to save the world. + +12:48 He that rejecteth me, and receiveth not my words, hath one that +judgeth him: the word that I have spoken, the same shall judge him in +the last day. + +12:49 For I have not spoken of myself; but the Father which sent me, +he gave me a commandment, what I should say, and what I should speak. + +12:50 And I know that his commandment is life everlasting: whatsoever +I speak therefore, even as the Father said unto me, so I speak. + +13:1 Now before the feast of the passover, when Jesus knew that his +hour was come that he should depart out of this world unto the Father, +having loved his own which were in the world, he loved them unto the +end. + +13:2 And supper being ended, the devil having now put into the heart +of Judas Iscariot, Simon's son, to betray him; 13:3 Jesus knowing that +the Father had given all things into his hands, and that he was come +from God, and went to God; 13:4 He riseth from supper, and laid aside +his garments; and took a towel, and girded himself. + +13:5 After that he poureth water into a bason, and began to wash the +disciples' feet, and to wipe them with the towel wherewith he was +girded. + +13:6 Then cometh he to Simon Peter: and Peter saith unto him, Lord, +dost thou wash my feet? 13:7 Jesus answered and said unto him, What I +do thou knowest not now; but thou shalt know hereafter. + +13:8 Peter saith unto him, Thou shalt never wash my feet. Jesus +answered him, If I wash thee not, thou hast no part with me. + +13:9 Simon Peter saith unto him, Lord, not my feet only, but also my +hands and my head. + +13:10 Jesus saith to him, He that is washed needeth not save to wash +his feet, but is clean every whit: and ye are clean, but not all. + +13:11 For he knew who should betray him; therefore said he, Ye are not +all clean. + +13:12 So after he had washed their feet, and had taken his garments, +and was set down again, he said unto them, Know ye what I have done to +you? 13:13 Ye call me Master and Lord: and ye say well; for so I am. + +13:14 If I then, your Lord and Master, have washed your feet; ye also +ought to wash one another's feet. + +13:15 For I have given you an example, that ye should do as I have +done to you. + +13:16 Verily, verily, I say unto you, The servant is not greater than +his lord; neither he that is sent greater than he that sent him. + +13:17 If ye know these things, happy are ye if ye do them. + +13:18 I speak not of you all: I know whom I have chosen: but that the +scripture may be fulfilled, He that eateth bread with me hath lifted +up his heel against me. + +13:19 Now I tell you before it come, that, when it is come to pass, ye +may believe that I am he. + +13:20 Verily, verily, I say unto you, He that receiveth whomsoever I +send receiveth me; and he that receiveth me receiveth him that sent +me. + +13:21 When Jesus had thus said, he was troubled in spirit, and +testified, and said, Verily, verily, I say unto you, that one of you +shall betray me. + +13:22 Then the disciples looked one on another, doubting of whom he +spake. + +13:23 Now there was leaning on Jesus' bosom one of his disciples, whom +Jesus loved. + +13:24 Simon Peter therefore beckoned to him, that he should ask who it +should be of whom he spake. + +13:25 He then lying on Jesus' breast saith unto him, Lord, who is it? +13:26 Jesus answered, He it is, to whom I shall give a sop, when I +have dipped it. And when he had dipped the sop, he gave it to Judas +Iscariot, the son of Simon. + +13:27 And after the sop Satan entered into him. Then said Jesus unto +him, That thou doest, do quickly. + +13:28 Now no man at the table knew for what intent he spake this unto +him. + +13:29 For some of them thought, because Judas had the bag, that Jesus +had said unto him, Buy those things that we have need of against the +feast; or, that he should give something to the poor. + +13:30 He then having received the sop went immediately out: and it was +night. + +13:31 Therefore, when he was gone out, Jesus said, Now is the Son of +man glorified, and God is glorified in him. + +13:32 If God be glorified in him, God shall also glorify him in +himself, and shall straightway glorify him. + +13:33 Little children, yet a little while I am with you. Ye shall seek +me: and as I said unto the Jews, Whither I go, ye cannot come; so now +I say to you. + +13:34 A new commandment I give unto you, That ye love one another; as +I have loved you, that ye also love one another. + +13:35 By this shall all men know that ye are my disciples, if ye have +love one to another. + +13:36 Simon Peter said unto him, Lord, whither goest thou? Jesus +answered him, Whither I go, thou canst not follow me now; but thou +shalt follow me afterwards. + +13:37 Peter said unto him, Lord, why cannot I follow thee now? I will +lay down my life for thy sake. + +13:38 Jesus answered him, Wilt thou lay down thy life for my sake? +Verily, verily, I say unto thee, The cock shall not crow, till thou +hast denied me thrice. + +14:1 Let not your heart be troubled: ye believe in God, believe also +in me. + +14:2 In my Father's house are many mansions: if it were not so, I +would have told you. I go to prepare a place for you. + +14:3 And if I go and prepare a place for you, I will come again, and +receive you unto myself; that where I am, there ye may be also. + +14:4 And whither I go ye know, and the way ye know. + +14:5 Thomas saith unto him, Lord, we know not whither thou goest; and +how can we know the way? 14:6 Jesus saith unto him, I am the way, the +truth, and the life: no man cometh unto the Father, but by me. + +14:7 If ye had known me, ye should have known my Father also: and from +henceforth ye know him, and have seen him. + +14:8 Philip saith unto him, Lord, shew us the Father, and it sufficeth +us. + +14:9 Jesus saith unto him, Have I been so long time with you, and yet +hast thou not known me, Philip? he that hath seen me hath seen the +Father; and how sayest thou then, Shew us the Father? 14:10 Believest +thou not that I am in the Father, and the Father in me? the words +that I speak unto you I speak not of myself: but the Father that +dwelleth in me, he doeth the works. + +14:11 Believe me that I am in the Father, and the Father in me: or +else believe me for the very works' sake. + +14:12 Verily, verily, I say unto you, He that believeth on me, the +works that I do shall he do also; and greater works than these shall +he do; because I go unto my Father. + +14:13 And whatsoever ye shall ask in my name, that will I do, that the +Father may be glorified in the Son. + +14:14 If ye shall ask any thing in my name, I will do it. + +14:15 If ye love me, keep my commandments. + +14:16 And I will pray the Father, and he shall give you another +Comforter, that he may abide with you for ever; 14:17 Even the Spirit +of truth; whom the world cannot receive, because it seeth him not, +neither knoweth him: but ye know him; for he dwelleth with you, and +shall be in you. + +14:18 I will not leave you comfortless: I will come to you. + +14:19 Yet a little while, and the world seeth me no more; but ye see +me: because I live, ye shall live also. + +14:20 At that day ye shall know that I am in my Father, and ye in me, +and I in you. + +14:21 He that hath my commandments, and keepeth them, he it is that +loveth me: and he that loveth me shall be loved of my Father, and I +will love him, and will manifest myself to him. + +14:22 Judas saith unto him, not Iscariot, Lord, how is it that thou +wilt manifest thyself unto us, and not unto the world? 14:23 Jesus +answered and said unto him, If a man love me, he will keep my words: +and my Father will love him, and we will come unto him, and make our +abode with him. + +14:24 He that loveth me not keepeth not my sayings: and the word which +ye hear is not mine, but the Father's which sent me. + +14:25 These things have I spoken unto you, being yet present with you. + +14:26 But the Comforter, which is the Holy Ghost, whom the Father will +send in my name, he shall teach you all things, and bring all things +to your remembrance, whatsoever I have said unto you. + +14:27 Peace I leave with you, my peace I give unto you: not as the +world giveth, give I unto you. Let not your heart be troubled, neither +let it be afraid. + +14:28 Ye have heard how I said unto you, I go away, and come again +unto you. If ye loved me, ye would rejoice, because I said, I go unto +the Father: for my Father is greater than I. + +14:29 And now I have told you before it come to pass, that, when it is +come to pass, ye might believe. + +14:30 Hereafter I will not talk much with you: for the prince of this +world cometh, and hath nothing in me. + +14:31 But that the world may know that I love the Father; and as the +Father gave me commandment, even so I do. Arise, let us go hence. + +15:1 I am the true vine, and my Father is the husbandman. + +15:2 Every branch in me that beareth not fruit he taketh away: and +every branch that beareth fruit, he purgeth it, that it may bring +forth more fruit. + +15:3 Now ye are clean through the word which I have spoken unto you. + +15:4 Abide in me, and I in you. As the branch cannot bear fruit of +itself, except it abide in the vine; no more can ye, except ye abide +in me. + +15:5 I am the vine, ye are the branches: He that abideth in me, and I +in him, the same bringeth forth much fruit: for without me ye can do +nothing. + +15:6 If a man abide not in me, he is cast forth as a branch, and is +withered; and men gather them, and cast them into the fire, and they +are burned. + +15:7 If ye abide in me, and my words abide in you, ye shall ask what +ye will, and it shall be done unto you. + +15:8 Herein is my Father glorified, that ye bear much fruit; so shall +ye be my disciples. + +15:9 As the Father hath loved me, so have I loved you: continue ye in +my love. + +15:10 If ye keep my commandments, ye shall abide in my love; even as I +have kept my Father's commandments, and abide in his love. + +15:11 These things have I spoken unto you, that my joy might remain in +you, and that your joy might be full. + +15:12 This is my commandment, That ye love one another, as I have +loved you. + +15:13 Greater love hath no man than this, that a man lay down his life +for his friends. + +15:14 Ye are my friends, if ye do whatsoever I command you. + +15:15 Henceforth I call you not servants; for the servant knoweth not +what his lord doeth: but I have called you friends; for all things +that I have heard of my Father I have made known unto you. + +15:16 Ye have not chosen me, but I have chosen you, and ordained you, +that ye should go and bring forth fruit, and that your fruit should +remain: that whatsoever ye shall ask of the Father in my name, he may +give it you. + +15:17 These things I command you, that ye love one another. + +15:18 If the world hate you, ye know that it hated me before it hated +you. + +15:19 If ye were of the world, the world would love his own: but +because ye are not of the world, but I have chosen you out of the +world, therefore the world hateth you. + +15:20 Remember the word that I said unto you, The servant is not +greater than his lord. If they have persecuted me, they will also +persecute you; if they have kept my saying, they will keep yours also. + +15:21 But all these things will they do unto you for my name's sake, +because they know not him that sent me. + +15:22 If I had not come and spoken unto them, they had not had sin: +but now they have no cloak for their sin. + +15:23 He that hateth me hateth my Father also. + +15:24 If I had not done among them the works which none other man did, +they had not had sin: but now have they both seen and hated both me +and my Father. + +15:25 But this cometh to pass, that the word might be fulfilled that +is written in their law, They hated me without a cause. + +15:26 But when the Comforter is come, whom I will send unto you from +the Father, even the Spirit of truth, which proceedeth from the +Father, he shall testify of me: 15:27 And ye also shall bear witness, +because ye have been with me from the beginning. + +16:1 These things have I spoken unto you, that ye should not be +offended. + +16:2 They shall put you out of the synagogues: yea, the time cometh, +that whosoever killeth you will think that he doeth God service. + +16:3 And these things will they do unto you, because they have not +known the Father, nor me. + +16:4 But these things have I told you, that when the time shall come, +ye may remember that I told you of them. And these things I said not +unto you at the beginning, because I was with you. + +16:5 But now I go my way to him that sent me; and none of you asketh +me, Whither goest thou? 16:6 But because I have said these things +unto you, sorrow hath filled your heart. + +16:7 Nevertheless I tell you the truth; It is expedient for you that I +go away: for if I go not away, the Comforter will not come unto you; +but if I depart, I will send him unto you. + +16:8 And when he is come, he will reprove the world of sin, and of +righteousness, and of judgment: 16:9 Of sin, because they believe not +on me; 16:10 Of righteousness, because I go to my Father, and ye see +me no more; 16:11 Of judgment, because the prince of this world is +judged. + +16:12 I have yet many things to say unto you, but ye cannot bear them +now. + +16:13 Howbeit when he, the Spirit of truth, is come, he will guide you +into all truth: for he shall not speak of himself; but whatsoever he +shall hear, that shall he speak: and he will shew you things to come. + +16:14 He shall glorify me: for he shall receive of mine, and shall +shew it unto you. + +16:15 All things that the Father hath are mine: therefore said I, that +he shall take of mine, and shall shew it unto you. + +16:16 A little while, and ye shall not see me: and again, a little +while, and ye shall see me, because I go to the Father. + +16:17 Then said some of his disciples among themselves, What is this +that he saith unto us, A little while, and ye shall not see me: and +again, a little while, and ye shall see me: and, Because I go to the +Father? 16:18 They said therefore, What is this that he saith, A +little while? we cannot tell what he saith. + +16:19 Now Jesus knew that they were desirous to ask him, and said unto +them, Do ye enquire among yourselves of that I said, A little while, +and ye shall not see me: and again, a little while, and ye shall see +me? 16:20 Verily, verily, I say unto you, That ye shall weep and +lament, but the world shall rejoice: and ye shall be sorrowful, but +your sorrow shall be turned into joy. + +16:21 A woman when she is in travail hath sorrow, because her hour is +come: but as soon as she is delivered of the child, she remembereth no +more the anguish, for joy that a man is born into the world. + +16:22 And ye now therefore have sorrow: but I will see you again, and +your heart shall rejoice, and your joy no man taketh from you. + +16:23 And in that day ye shall ask me nothing. Verily, verily, I say +unto you, Whatsoever ye shall ask the Father in my name, he will give +it you. + +16:24 Hitherto have ye asked nothing in my name: ask, and ye shall +receive, that your joy may be full. + +16:25 These things have I spoken unto you in proverbs: but the time +cometh, when I shall no more speak unto you in proverbs, but I shall +shew you plainly of the Father. + +16:26 At that day ye shall ask in my name: and I say not unto you, +that I will pray the Father for you: 16:27 For the Father himself +loveth you, because ye have loved me, and have believed that I came +out from God. + +16:28 I came forth from the Father, and am come into the world: again, +I leave the world, and go to the Father. + +16:29 His disciples said unto him, Lo, now speakest thou plainly, and +speakest no proverb. + +16:30 Now are we sure that thou knowest all things, and needest not +that any man should ask thee: by this we believe that thou camest +forth from God. + +16:31 Jesus answered them, Do ye now believe? 16:32 Behold, the hour +cometh, yea, is now come, that ye shall be scattered, every man to his +own, and shall leave me alone: and yet I am not alone, because the +Father is with me. + +16:33 These things I have spoken unto you, that in me ye might have +peace. + +In the world ye shall have tribulation: but be of good cheer; I have +overcome the world. + +17:1 These words spake Jesus, and lifted up his eyes to heaven, and +said, Father, the hour is come; glorify thy Son, that thy Son also may +glorify thee: 17:2 As thou hast given him power over all flesh, that +he should give eternal life to as many as thou hast given him. + +17:3 And this is life eternal, that they might know thee the only true +God, and Jesus Christ, whom thou hast sent. + +17:4 I have glorified thee on the earth: I have finished the work +which thou gavest me to do. + +17:5 And now, O Father, glorify thou me with thine own self with the +glory which I had with thee before the world was. + +17:6 I have manifested thy name unto the men which thou gavest me out +of the world: thine they were, and thou gavest them me; and they have +kept thy word. + +17:7 Now they have known that all things whatsoever thou hast given me +are of thee. + +17:8 For I have given unto them the words which thou gavest me; and +they have received them, and have known surely that I came out from +thee, and they have believed that thou didst send me. + +17:9 I pray for them: I pray not for the world, but for them which +thou hast given me; for they are thine. + +17:10 And all mine are thine, and thine are mine; and I am glorified +in them. + +17:11 And now I am no more in the world, but these are in the world, +and I come to thee. Holy Father, keep through thine own name those +whom thou hast given me, that they may be one, as we are. + +17:12 While I was with them in the world, I kept them in thy name: +those that thou gavest me I have kept, and none of them is lost, but +the son of perdition; that the scripture might be fulfilled. + +17:13 And now come I to thee; and these things I speak in the world, +that they might have my joy fulfilled in themselves. + +17:14 I have given them thy word; and the world hath hated them, +because they are not of the world, even as I am not of the world. + +17:15 I pray not that thou shouldest take them out of the world, but +that thou shouldest keep them from the evil. + +17:16 They are not of the world, even as I am not of the world. + +17:17 Sanctify them through thy truth: thy word is truth. + +17:18 As thou hast sent me into the world, even so have I also sent +them into the world. + +17:19 And for their sakes I sanctify myself, that they also might be +sanctified through the truth. + +17:20 Neither pray I for these alone, but for them also which shall +believe on me through their word; 17:21 That they all may be one; as +thou, Father, art in me, and I in thee, that they also may be one in +us: that the world may believe that thou hast sent me. + +17:22 And the glory which thou gavest me I have given them; that they +may be one, even as we are one: 17:23 I in them, and thou in me, that +they may be made perfect in one; and that the world may know that thou +hast sent me, and hast loved them, as thou hast loved me. + +17:24 Father, I will that they also, whom thou hast given me, be with +me where I am; that they may behold my glory, which thou hast given +me: for thou lovedst me before the foundation of the world. + +17:25 O righteous Father, the world hath not known thee: but I have +known thee, and these have known that thou hast sent me. + +17:26 And I have declared unto them thy name, and will declare it: +that the love wherewith thou hast loved me may be in them, and I in +them. + +18:1 When Jesus had spoken these words, he went forth with his +disciples over the brook Cedron, where was a garden, into the which he +entered, and his disciples. + +18:2 And Judas also, which betrayed him, knew the place: for Jesus +ofttimes resorted thither with his disciples. + +18:3 Judas then, having received a band of men and officers from the +chief priests and Pharisees, cometh thither with lanterns and torches +and weapons. + +18:4 Jesus therefore, knowing all things that should come upon him, +went forth, and said unto them, Whom seek ye? 18:5 They answered him, +Jesus of Nazareth. Jesus saith unto them, I am he. + +And Judas also, which betrayed him, stood with them. + +18:6 As soon then as he had said unto them, I am he, they went +backward, and fell to the ground. + +18:7 Then asked he them again, Whom seek ye? And they said, Jesus of +Nazareth. + +18:8 Jesus answered, I have told you that I am he: if therefore ye +seek me, let these go their way: 18:9 That the saying might be +fulfilled, which he spake, Of them which thou gavest me have I lost +none. + +18:10 Then Simon Peter having a sword drew it, and smote the high +priest's servant, and cut off his right ear. The servant's name was +Malchus. + +18:11 Then said Jesus unto Peter, Put up thy sword into the sheath: +the cup which my Father hath given me, shall I not drink it? 18:12 +Then the band and the captain and officers of the Jews took Jesus, and +bound him, 18:13 And led him away to Annas first; for he was father in +law to Caiaphas, which was the high priest that same year. + +18:14 Now Caiaphas was he, which gave counsel to the Jews, that it was +expedient that one man should die for the people. + +18:15 And Simon Peter followed Jesus, and so did another disciple: +that disciple was known unto the high priest, and went in with Jesus +into the palace of the high priest. + +18:16 But Peter stood at the door without. Then went out that other +disciple, which was known unto the high priest, and spake unto her +that kept the door, and brought in Peter. + +18:17 Then saith the damsel that kept the door unto Peter, Art not +thou also one of this man's disciples? He saith, I am not. + +18:18 And the servants and officers stood there, who had made a fire +of coals; for it was cold: and they warmed themselves: and Peter stood +with them, and warmed himself. + +18:19 The high priest then asked Jesus of his disciples, and of his +doctrine. + +18:20 Jesus answered him, I spake openly to the world; I ever taught +in the synagogue, and in the temple, whither the Jews always resort; +and in secret have I said nothing. + +18:21 Why askest thou me? ask them which heard me, what I have said +unto them: behold, they know what I said. + +18:22 And when he had thus spoken, one of the officers which stood by +struck Jesus with the palm of his hand, saying, Answerest thou the +high priest so? 18:23 Jesus answered him, If I have spoken evil, bear +witness of the evil: but if well, why smitest thou me? 18:24 Now +Annas had sent him bound unto Caiaphas the high priest. + +18:25 And Simon Peter stood and warmed himself. They said therefore +unto him, Art not thou also one of his disciples? He denied it, and +said, I am not. + +18:26 One of the servants of the high priest, being his kinsman whose +ear Peter cut off, saith, Did not I see thee in the garden with him? +18:27 Peter then denied again: and immediately the cock crew. + +18:28 Then led they Jesus from Caiaphas unto the hall of judgment: and +it was early; and they themselves went not into the judgment hall, +lest they should be defiled; but that they might eat the passover. + +18:29 Pilate then went out unto them, and said, What accusation bring +ye against this man? 18:30 They answered and said unto him, If he +were not a malefactor, we would not have delivered him up unto thee. + +18:31 Then said Pilate unto them, Take ye him, and judge him according +to your law. The Jews therefore said unto him, It is not lawful for us +to put any man to death: 18:32 That the saying of Jesus might be +fulfilled, which he spake, signifying what death he should die. + +18:33 Then Pilate entered into the judgment hall again, and called +Jesus, and said unto him, Art thou the King of the Jews? 18:34 Jesus +answered him, Sayest thou this thing of thyself, or did others tell it +thee of me? 18:35 Pilate answered, Am I a Jew? Thine own nation and +the chief priests have delivered thee unto me: what hast thou done? +18:36 Jesus answered, My kingdom is not of this world: if my kingdom +were of this world, then would my servants fight, that I should not be +delivered to the Jews: but now is my kingdom not from hence. + +18:37 Pilate therefore said unto him, Art thou a king then? Jesus +answered, Thou sayest that I am a king. To this end was I born, and +for this cause came I into the world, that I should bear witness unto +the truth. Every one that is of the truth heareth my voice. + +18:38 Pilate saith unto him, What is truth? And when he had said this, +he went out again unto the Jews, and saith unto them, I find in him no +fault at all. + +18:39 But ye have a custom, that I should release unto you one at the +passover: will ye therefore that I release unto you the King of the +Jews? 18:40 Then cried they all again, saying, Not this man, but +Barabbas. Now Barabbas was a robber. + +19:1 Then Pilate therefore took Jesus, and scourged him. + +19:2 And the soldiers platted a crown of thorns, and put it on his +head, and they put on him a purple robe, 19:3 And said, Hail, King of +the Jews! and they smote him with their hands. + +19:4 Pilate therefore went forth again, and saith unto them, Behold, I +bring him forth to you, that ye may know that I find no fault in him. + +19:5 Then came Jesus forth, wearing the crown of thorns, and the +purple robe. And Pilate saith unto them, Behold the man! 19:6 When +the chief priests therefore and officers saw him, they cried out, +saying, Crucify him, crucify him. Pilate saith unto them, Take ye him, +and crucify him: for I find no fault in him. + +19:7 The Jews answered him, We have a law, and by our law he ought to +die, because he made himself the Son of God. + +19:8 When Pilate therefore heard that saying, he was the more afraid; +19:9 And went again into the judgment hall, and saith unto Jesus, +Whence art thou? But Jesus gave him no answer. + +19:10 Then saith Pilate unto him, Speakest thou not unto me? knowest +thou not that I have power to crucify thee, and have power to release +thee? 19:11 Jesus answered, Thou couldest have no power at all +against me, except it were given thee from above: therefore he that +delivered me unto thee hath the greater sin. + +19:12 And from thenceforth Pilate sought to release him: but the Jews +cried out, saying, If thou let this man go, thou art not Caesar's +friend: whosoever maketh himself a king speaketh against Caesar. + +19:13 When Pilate therefore heard that saying, he brought Jesus forth, +and sat down in the judgment seat in a place that is called the +Pavement, but in the Hebrew, Gabbatha. + +19:14 And it was the preparation of the passover, and about the sixth +hour: and he saith unto the Jews, Behold your King! 19:15 But they +cried out, Away with him, away with him, crucify him. + +Pilate saith unto them, Shall I crucify your King? The chief priests +answered, We have no king but Caesar. + +19:16 Then delivered he him therefore unto them to be crucified. And +they took Jesus, and led him away. + +19:17 And he bearing his cross went forth into a place called the +place of a skull, which is called in the Hebrew Golgotha: 19:18 Where +they crucified him, and two other with him, on either side one, and +Jesus in the midst. + +19:19 And Pilate wrote a title, and put it on the cross. And the +writing was JESUS OF NAZARETH THE KING OF THE JEWS. + +19:20 This title then read many of the Jews: for the place where Jesus +was crucified was nigh to the city: and it was written in Hebrew, and +Greek, and Latin. + +19:21 Then said the chief priests of the Jews to Pilate, Write not, +The King of the Jews; but that he said, I am King of the Jews. + +19:22 Pilate answered, What I have written I have written. + +19:23 Then the soldiers, when they had crucified Jesus, took his +garments, and made four parts, to every soldier a part; and also his +coat: now the coat was without seam, woven from the top throughout. + +19:24 They said therefore among themselves, Let us not rend it, but +cast lots for it, whose it shall be: that the scripture might be +fulfilled, which saith, They parted my raiment among them, and for my +vesture they did cast lots. These things therefore the soldiers did. + +19:25 Now there stood by the cross of Jesus his mother, and his +mother's sister, Mary the wife of Cleophas, and Mary Magdalene. + +19:26 When Jesus therefore saw his mother, and the disciple standing +by, whom he loved, he saith unto his mother, Woman, behold thy son! +19:27 Then saith he to the disciple, Behold thy mother! And from that +hour that disciple took her unto his own home. + +19:28 After this, Jesus knowing that all things were now accomplished, +that the scripture might be fulfilled, saith, I thirst. + +19:29 Now there was set a vessel full of vinegar: and they filled a +spunge with vinegar, and put it upon hyssop, and put it to his mouth. + +19:30 When Jesus therefore had received the vinegar, he said, It is +finished: and he bowed his head, and gave up the ghost. + +19:31 The Jews therefore, because it was the preparation, that the +bodies should not remain upon the cross on the sabbath day, (for that +sabbath day was an high day,) besought Pilate that their legs might be +broken, and that they might be taken away. + +19:32 Then came the soldiers, and brake the legs of the first, and of +the other which was crucified with him. + +19:33 But when they came to Jesus, and saw that he was dead already, +they brake not his legs: 19:34 But one of the soldiers with a spear +pierced his side, and forthwith came there out blood and water. + +19:35 And he that saw it bare record, and his record is true: and he +knoweth that he saith true, that ye might believe. + +19:36 For these things were done, that the scripture should be +fulfilled, A bone of him shall not be broken. + +19:37 And again another scripture saith, They shall look on him whom +they pierced. + +19:38 And after this Joseph of Arimathaea, being a disciple of Jesus, +but secretly for fear of the Jews, besought Pilate that he might take +away the body of Jesus: and Pilate gave him leave. He came therefore, +and took the body of Jesus. + +19:39 And there came also Nicodemus, which at the first came to Jesus +by night, and brought a mixture of myrrh and aloes, about an hundred +pound weight. + +19:40 Then took they the body of Jesus, and wound it in linen clothes +with the spices, as the manner of the Jews is to bury. + +19:41 Now in the place where he was crucified there was a garden; and +in the garden a new sepulchre, wherein was never man yet laid. + +19:42 There laid they Jesus therefore because of the Jews' preparation +day; for the sepulchre was nigh at hand. + +20:1 The first day of the week cometh Mary Magdalene early, when it +was yet dark, unto the sepulchre, and seeth the stone taken away from +the sepulchre. + +20:2 Then she runneth, and cometh to Simon Peter, and to the other +disciple, whom Jesus loved, and saith unto them, They have taken away +the LORD out of the sepulchre, and we know not where they have laid +him. + +20:3 Peter therefore went forth, and that other disciple, and came to +the sepulchre. + +20:4 So they ran both together: and the other disciple did outrun +Peter, and came first to the sepulchre. + +20:5 And he stooping down, and looking in, saw the linen clothes +lying; yet went he not in. + +20:6 Then cometh Simon Peter following him, and went into the +sepulchre, and seeth the linen clothes lie, 20:7 And the napkin, that +was about his head, not lying with the linen clothes, but wrapped +together in a place by itself. + +20:8 Then went in also that other disciple, which came first to the +sepulchre, and he saw, and believed. + +20:9 For as yet they knew not the scripture, that he must rise again +from the dead. + +20:10 Then the disciples went away again unto their own home. + +20:11 But Mary stood without at the sepulchre weeping: and as she +wept, she stooped down, and looked into the sepulchre, 20:12 And seeth +two angels in white sitting, the one at the head, and the other at the +feet, where the body of Jesus had lain. + +20:13 And they say unto her, Woman, why weepest thou? She saith unto +them, Because they have taken away my LORD, and I know not where they +have laid him. + +20:14 And when she had thus said, she turned herself back, and saw +Jesus standing, and knew not that it was Jesus. + +20:15 Jesus saith unto her, Woman, why weepest thou? whom seekest +thou? She, supposing him to be the gardener, saith unto him, Sir, if +thou have borne him hence, tell me where thou hast laid him, and I +will take him away. + +20:16 Jesus saith unto her, Mary. She turned herself, and saith unto +him, Rabboni; which is to say, Master. + +20:17 Jesus saith unto her, Touch me not; for I am not yet ascended to +my Father: but go to my brethren, and say unto them, I ascend unto my +Father, and your Father; and to my God, and your God. + +20:18 Mary Magdalene came and told the disciples that she had seen the +LORD, and that he had spoken these things unto her. + +20:19 Then the same day at evening, being the first day of the week, +when the doors were shut where the disciples were assembled for fear +of the Jews, came Jesus and stood in the midst, and saith unto them, +Peace be unto you. + +20:20 And when he had so said, he shewed unto them his hands and his +side. + +Then were the disciples glad, when they saw the LORD. + +20:21 Then said Jesus to them again, Peace be unto you: as my Father +hath sent me, even so send I you. + +20:22 And when he had said this, he breathed on them, and saith unto +them, Receive ye the Holy Ghost: 20:23 Whose soever sins ye remit, +they are remitted unto them; and whose soever sins ye retain, they are +retained. + +20:24 But Thomas, one of the twelve, called Didymus, was not with them +when Jesus came. + +20:25 The other disciples therefore said unto him, We have seen the +LORD. + +But he said unto them, Except I shall see in his hands the print of +the nails, and put my finger into the print of the nails, and thrust +my hand into his side, I will not believe. + +20:26 And after eight days again his disciples were within, and Thomas +with them: then came Jesus, the doors being shut, and stood in the +midst, and said, Peace be unto you. + +20:27 Then saith he to Thomas, Reach hither thy finger, and behold my +hands; and reach hither thy hand, and thrust it into my side: and be +not faithless, but believing. + +20:28 And Thomas answered and said unto him, My LORD and my God. + +20:29 Jesus saith unto him, Thomas, because thou hast seen me, thou +hast believed: blessed are they that have not seen, and yet have +believed. + +20:30 And many other signs truly did Jesus in the presence of his +disciples, which are not written in this book: 20:31 But these are +written, that ye might believe that Jesus is the Christ, the Son of +God; and that believing ye might have life through his name. + +21:1 After these things Jesus shewed himself again to the disciples at +the sea of Tiberias; and on this wise shewed he himself. + +21:2 There were together Simon Peter, and Thomas called Didymus, and +Nathanael of Cana in Galilee, and the sons of Zebedee, and two other +of his disciples. + +21:3 Simon Peter saith unto them, I go a fishing. They say unto him, +We also go with thee. They went forth, and entered into a ship +immediately; and that night they caught nothing. + +21:4 But when the morning was now come, Jesus stood on the shore: but +the disciples knew not that it was Jesus. + +21:5 Then Jesus saith unto them, Children, have ye any meat? They +answered him, No. + +21:6 And he said unto them, Cast the net on the right side of the +ship, and ye shall find. They cast therefore, and now they were not +able to draw it for the multitude of fishes. + +21:7 Therefore that disciple whom Jesus loved saith unto Peter, It is +the Lord. Now when Simon Peter heard that it was the Lord, he girt his +fisher's coat unto him, (for he was naked,) and did cast himself into +the sea. + +21:8 And the other disciples came in a little ship; (for they were not +far from land, but as it were two hundred cubits,) dragging the net +with fishes. + +21:9 As soon then as they were come to land, they saw a fire of coals +there, and fish laid thereon, and bread. + +21:10 Jesus saith unto them, Bring of the fish which ye have now +caught. + +21:11 Simon Peter went up, and drew the net to land full of great +fishes, an hundred and fifty and three: and for all there were so +many, yet was not the net broken. + +21:12 Jesus saith unto them, Come and dine. And none of the disciples +durst ask him, Who art thou? knowing that it was the Lord. + +21:13 Jesus then cometh, and taketh bread, and giveth them, and fish +likewise. + +21:14 This is now the third time that Jesus shewed himself to his +disciples, after that he was risen from the dead. + +21:15 So when they had dined, Jesus saith to Simon Peter, Simon, son +of Jonas, lovest thou me more than these? He saith unto him, Yea, +Lord; thou knowest that I love thee. He saith unto him, Feed my lambs. + +21:16 He saith to him again the second time, Simon, son of Jonas, +lovest thou me? He saith unto him, Yea, Lord; thou knowest that I love +thee. He saith unto him, Feed my sheep. + +21:17 He saith unto him the third time, Simon, son of Jonas, lovest +thou me? Peter was grieved because he said unto him the third time, +Lovest thou me? And he said unto him, Lord, thou knowest all things; +thou knowest that I love thee. Jesus saith unto him, Feed my sheep. + +21:18 Verily, verily, I say unto thee, When thou wast young, thou +girdest thyself, and walkedst whither thou wouldest: but when thou +shalt be old, thou shalt stretch forth thy hands, and another shall +gird thee, and carry thee whither thou wouldest not. + +21:19 This spake he, signifying by what death he should glorify God. +And when he had spoken this, he saith unto him, Follow me. + +21:20 Then Peter, turning about, seeth the disciple whom Jesus loved +following; which also leaned on his breast at supper, and said, Lord, +which is he that betrayeth thee? 21:21 Peter seeing him saith to +Jesus, Lord, and what shall this man do? 21:22 Jesus saith unto him, +If I will that he tarry till I come, what is that to thee? follow thou +me. + +21:23 Then went this saying abroad among the brethren, that that +disciple should not die: yet Jesus said not unto him, He shall not +die; but, If I will that he tarry till I come, what is that to thee? +21:24 This is the disciple which testifieth of these things, and wrote +these things: and we know that his testimony is true. + +21:25 And there are also many other things which Jesus did, the which, +if they should be written every one, I suppose that even the world +itself could not contain the books that should be written. Amen. + + + + +The Acts of the Apostles + + +1:1 The former treatise have I made, O Theophilus, of all that Jesus +began both to do and teach, 1:2 Until the day in which he was taken +up, after that he through the Holy Ghost had given commandments unto +the apostles whom he had chosen: 1:3 To whom also he shewed himself +alive after his passion by many infallible proofs, being seen of them +forty days, and speaking of the things pertaining to the kingdom of +God: 1:4 And, being assembled together with them, commanded them that +they should not depart from Jerusalem, but wait for the promise of the +Father, which, saith he, ye have heard of me. + +1:5 For John truly baptized with water; but ye shall be baptized with +the Holy Ghost not many days hence. + +1:6 When they therefore were come together, they asked of him, saying, +Lord, wilt thou at this time restore again the kingdom to Israel? 1:7 +And he said unto them, It is not for you to know the times or the +seasons, which the Father hath put in his own power. + +1:8 But ye shall receive power, after that the Holy Ghost is come upon +you: and ye shall be witnesses unto me both in Jerusalem, and in all +Judaea, and in Samaria, and unto the uttermost part of the earth. + +1:9 And when he had spoken these things, while they beheld, he was +taken up; and a cloud received him out of their sight. + +1:10 And while they looked stedfastly toward heaven as he went up, +behold, two men stood by them in white apparel; 1:11 Which also said, +Ye men of Galilee, why stand ye gazing up into heaven? this same +Jesus, which is taken up from you into heaven, shall so come in like +manner as ye have seen him go into heaven. + +1:12 Then returned they unto Jerusalem from the mount called Olivet, +which is from Jerusalem a sabbath day's journey. + +1:13 And when they were come in, they went up into an upper room, +where abode both Peter, and James, and John, and Andrew, Philip, and +Thomas, Bartholomew, and Matthew, James the son of Alphaeus, and Simon +Zelotes, and Judas the brother of James. + +1:14 These all continued with one accord in prayer and supplication, +with the women, and Mary the mother of Jesus, and with his brethren. + +1:15 And in those days Peter stood up in the midst of the disciples, +and said, (the number of names together were about an hundred and +twenty,) 1:16 Men and brethren, this scripture must needs have been +fulfilled, which the Holy Ghost by the mouth of David spake before +concerning Judas, which was guide to them that took Jesus. + +1:17 For he was numbered with us, and had obtained part of this +ministry. + +1:18 Now this man purchased a field with the reward of iniquity; and +falling headlong, he burst asunder in the midst, and all his bowels +gushed out. + +1:19 And it was known unto all the dwellers at Jerusalem; insomuch as +that field is called in their proper tongue, Aceldama, that is to say, +The field of blood. + +1:20 For it is written in the book of Psalms, Let his habitation be +desolate, and let no man dwell therein: and his bishoprick let another +take. + +1:21 Wherefore of these men which have companied with us all the time +that the Lord Jesus went in and out among us, 1:22 Beginning from the +baptism of John, unto that same day that he was taken up from us, must +one be ordained to be a witness with us of his resurrection. + +1:23 And they appointed two, Joseph called Barsabas, who was surnamed +Justus, and Matthias. + +1:24 And they prayed, and said, Thou, Lord, which knowest the hearts +of all men, shew whether of these two thou hast chosen, 1:25 That he +may take part of this ministry and apostleship, from which Judas by +transgression fell, that he might go to his own place. + +1:26 And they gave forth their lots; and the lot fell upon Matthias; +and he was numbered with the eleven apostles. + +2:1 And when the day of Pentecost was fully come, they were all with +one accord in one place. + +2:2 And suddenly there came a sound from heaven as of a rushing mighty +wind, and it filled all the house where they were sitting. + +2:3 And there appeared unto them cloven tongues like as of fire, and +it sat upon each of them. + +2:4 And they were all filled with the Holy Ghost, and began to speak +with other tongues, as the Spirit gave them utterance. + +2:5 And there were dwelling at Jerusalem Jews, devout men, out of +every nation under heaven. + +2:6 Now when this was noised abroad, the multitude came together, and +were confounded, because that every man heard them speak in his own +language. + +2:7 And they were all amazed and marvelled, saying one to another, +Behold, are not all these which speak Galilaeans? 2:8 And how hear we +every man in our own tongue, wherein we were born? 2:9 Parthians, and +Medes, and Elamites, and the dwellers in Mesopotamia, and in Judaea, +and Cappadocia, in Pontus, and Asia, 2:10 Phrygia, and Pamphylia, in +Egypt, and in the parts of Libya about Cyrene, and strangers of Rome, +Jews and proselytes, 2:11 Cretes and Arabians, we do hear them speak +in our tongues the wonderful works of God. + +2:12 And they were all amazed, and were in doubt, saying one to +another, What meaneth this? 2:13 Others mocking said, These men are +full of new wine. + +2:14 But Peter, standing up with the eleven, lifted up his voice, and +said unto them, Ye men of Judaea, and all ye that dwell at Jerusalem, +be this known unto you, and hearken to my words: 2:15 For these are +not drunken, as ye suppose, seeing it is but the third hour of the +day. + +2:16 But this is that which was spoken by the prophet Joel; 2:17 And +it shall come to pass in the last days, saith God, I will pour out of +my Spirit upon all flesh: and your sons and your daughters shall +prophesy, and your young men shall see visions, and your old men shall +dream dreams: 2:18 And on my servants and on my handmaidens I will +pour out in those days of my Spirit; and they shall prophesy: 2:19 And +I will shew wonders in heaven above, and signs in the earth beneath; +blood, and fire, and vapour of smoke: 2:20 The sun shall be turned +into darkness, and the moon into blood, before the great and notable +day of the Lord come: 2:21 And it shall come to pass, that whosoever +shall call on the name of the Lord shall be saved. + +2:22 Ye men of Israel, hear these words; Jesus of Nazareth, a man +approved of God among you by miracles and wonders and signs, which God +did by him in the midst of you, as ye yourselves also know: 2:23 Him, +being delivered by the determinate counsel and foreknowledge of God, +ye have taken, and by wicked hands have crucified and slain: 2:24 Whom +God hath raised up, having loosed the pains of death: because it was +not possible that he should be holden of it. + +2:25 For David speaketh concerning him, I foresaw the Lord always +before my face, for he is on my right hand, that I should not be +moved: 2:26 Therefore did my heart rejoice, and my tongue was glad; +moreover also my flesh shall rest in hope: 2:27 Because thou wilt not +leave my soul in hell, neither wilt thou suffer thine Holy One to see +corruption. + +2:28 Thou hast made known to me the ways of life; thou shalt make me +full of joy with thy countenance. + +2:29 Men and brethren, let me freely speak unto you of the patriarch +David, that he is both dead and buried, and his sepulchre is with us +unto this day. + +2:30 Therefore being a prophet, and knowing that God had sworn with an +oath to him, that of the fruit of his loins, according to the flesh, +he would raise up Christ to sit on his throne; 2:31 He seeing this +before spake of the resurrection of Christ, that his soul was not left +in hell, neither his flesh did see corruption. + +2:32 This Jesus hath God raised up, whereof we all are witnesses. + +2:33 Therefore being by the right hand of God exalted, and having +received of the Father the promise of the Holy Ghost, he hath shed +forth this, which ye now see and hear. + +2:34 For David is not ascended into the heavens: but he saith himself, +The Lord said unto my Lord, Sit thou on my right hand, 2:35 Until I +make thy foes thy footstool. + +2:36 Therefore let all the house of Israel know assuredly, that God +hath made the same Jesus, whom ye have crucified, both Lord and +Christ. + +2:37 Now when they heard this, they were pricked in their heart, and +said unto Peter and to the rest of the apostles, Men and brethren, +what shall we do? 2:38 Then Peter said unto them, Repent, and be +baptized every one of you in the name of Jesus Christ for the +remission of sins, and ye shall receive the gift of the Holy Ghost. + +2:39 For the promise is unto you, and to your children, and to all +that are afar off, even as many as the LORD our God shall call. + +2:40 And with many other words did he testify and exhort, saying, Save +yourselves from this untoward generation. + +2:41 Then they that gladly received his word were baptized: and the +same day there were added unto them about three thousand souls. + +2:42 And they continued stedfastly in the apostles' doctrine and +fellowship, and in breaking of bread, and in prayers. + +2:43 And fear came upon every soul: and many wonders and signs were +done by the apostles. + +2:44 And all that believed were together, and had all things common; +2:45 And sold their possessions and goods, and parted them to all men, +as every man had need. + +2:46 And they, continuing daily with one accord in the temple, and +breaking bread from house to house, did eat their meat with gladness +and singleness of heart, 2:47 Praising God, and having favour with all +the people. And the Lord added to the church daily such as should be +saved. + +3:1 Now Peter and John went up together into the temple at the hour of +prayer, being the ninth hour. + +3:2 And a certain man lame from his mother's womb was carried, whom +they laid daily at the gate of the temple which is called Beautiful, +to ask alms of them that entered into the temple; 3:3 Who seeing Peter +and John about to go into the temple asked an alms. + +3:4 And Peter, fastening his eyes upon him with John, said, Look on +us. + +3:5 And he gave heed unto them, expecting to receive something of +them. + +3:6 Then Peter said, Silver and gold have I none; but such as I have +give I thee: In the name of Jesus Christ of Nazareth rise up and walk. + +3:7 And he took him by the right hand, and lifted him up: and +immediately his feet and ankle bones received strength. + +3:8 And he leaping up stood, and walked, and entered with them into +the temple, walking, and leaping, and praising God. + +3:9 And all the people saw him walking and praising God: 3:10 And they +knew that it was he which sat for alms at the Beautiful gate of the +temple: and they were filled with wonder and amazement at that which +had happened unto him. + +3:11 And as the lame man which was healed held Peter and John, all the +people ran together unto them in the porch that is called Solomon's, +greatly wondering. + +3:12 And when Peter saw it, he answered unto the people, Ye men of +Israel, why marvel ye at this? or why look ye so earnestly on us, as +though by our own power or holiness we had made this man to walk? +3:13 The God of Abraham, and of Isaac, and of Jacob, the God of our +fathers, hath glorified his Son Jesus; whom ye delivered up, and +denied him in the presence of Pilate, when he was determined to let +him go. + +3:14 But ye denied the Holy One and the Just, and desired a murderer +to be granted unto you; 3:15 And killed the Prince of life, whom God +hath raised from the dead; whereof we are witnesses. + +3:16 And his name through faith in his name hath made this man strong, +whom ye see and know: yea, the faith which is by him hath given him +this perfect soundness in the presence of you all. + +3:17 And now, brethren, I wot that through ignorance ye did it, as did +also your rulers. + +3:18 But those things, which God before had shewed by the mouth of all +his prophets, that Christ should suffer, he hath so fulfilled. + +3:19 Repent ye therefore, and be converted, that your sins may be +blotted out, when the times of refreshing shall come from the presence +of the Lord. + +3:20 And he shall send Jesus Christ, which before was preached unto +you: 3:21 Whom the heaven must receive until the times of restitution +of all things, which God hath spoken by the mouth of all his holy +prophets since the world began. + +3:22 For Moses truly said unto the fathers, A prophet shall the Lord +your God raise up unto you of your brethren, like unto me; him shall +ye hear in all things whatsoever he shall say unto you. + +3:23 And it shall come to pass, that every soul, which will not hear +that prophet, shall be destroyed from among the people. + +3:24 Yea, and all the prophets from Samuel and those that follow +after, as many as have spoken, have likewise foretold of these days. + +3:25 Ye are the children of the prophets, and of the covenant which +God made with our fathers, saying unto Abraham, And in thy seed shall +all the kindreds of the earth be blessed. + +3:26 Unto you first God, having raised up his Son Jesus, sent him to +bless you, in turning away every one of you from his iniquities. + +4:1 And as they spake unto the people, the priests, and the captain of +the temple, and the Sadducees, came upon them, 4:2 Being grieved that +they taught the people, and preached through Jesus the resurrection +from the dead. + +4:3 And they laid hands on them, and put them in hold unto the next +day: for it was now eventide. + +4:4 Howbeit many of them which heard the word believed; and the number +of the men was about five thousand. + +4:5 And it came to pass on the morrow, that their rulers, and elders, +and scribes, 4:6 And Annas the high priest, and Caiaphas, and John, +and Alexander, and as many as were of the kindred of the high priest, +were gathered together at Jerusalem. + +4:7 And when they had set them in the midst, they asked, By what +power, or by what name, have ye done this? 4:8 Then Peter, filled +with the Holy Ghost, said unto them, Ye rulers of the people, and +elders of Israel, 4:9 If we this day be examined of the good deed done +to the impotent man, by what means he is made whole; 4:10 Be it known +unto you all, and to all the people of Israel, that by the name of +Jesus Christ of Nazareth, whom ye crucified, whom God raised from the +dead, even by him doth this man stand here before you whole. + +4:11 This is the stone which was set at nought of you builders, which +is become the head of the corner. + +4:12 Neither is there salvation in any other: for there is none other +name under heaven given among men, whereby we must be saved. + +4:13 Now when they saw the boldness of Peter and John, and perceived +that they were unlearned and ignorant men, they marvelled; and they +took knowledge of them, that they had been with Jesus. + +4:14 And beholding the man which was healed standing with them, they +could say nothing against it. + +4:15 But when they had commanded them to go aside out of the council, +they conferred among themselves, 4:16 Saying, What shall we do to +these men? for that indeed a notable miracle hath been done by them is +manifest to all them that dwell in Jerusalem; and we cannot deny it. + +4:17 But that it spread no further among the people, let us straitly +threaten them, that they speak henceforth to no man in this name. + +4:18 And they called them, and commanded them not to speak at all nor +teach in the name of Jesus. + +4:19 But Peter and John answered and said unto them, Whether it be +right in the sight of God to hearken unto you more than unto God, +judge ye. + +4:20 For we cannot but speak the things which we have seen and heard. + +4:21 So when they had further threatened them, they let them go, +finding nothing how they might punish them, because of the people: for +all men glorified God for that which was done. + +4:22 For the man was above forty years old, on whom this miracle of +healing was shewed. + +4:23 And being let go, they went to their own company, and reported +all that the chief priests and elders had said unto them. + +4:24 And when they heard that, they lifted up their voice to God with +one accord, and said, Lord, thou art God, which hast made heaven, and +earth, and the sea, and all that in them is: 4:25 Who by the mouth of +thy servant David hast said, Why did the heathen rage, and the people +imagine vain things? 4:26 The kings of the earth stood up, and the +rulers were gathered together against the Lord, and against his +Christ. + +4:27 For of a truth against thy holy child Jesus, whom thou hast +anointed, both Herod, and Pontius Pilate, with the Gentiles, and the +people of Israel, were gathered together, 4:28 For to do whatsoever +thy hand and thy counsel determined before to be done. + +4:29 And now, Lord, behold their threatenings: and grant unto thy +servants, that with all boldness they may speak thy word, 4:30 By +stretching forth thine hand to heal; and that signs and wonders may be +done by the name of thy holy child Jesus. + +4:31 And when they had prayed, the place was shaken where they were +assembled together; and they were all filled with the Holy Ghost, and +they spake the word of God with boldness. + +4:32 And the multitude of them that believed were of one heart and of +one soul: neither said any of them that ought of the things which he +possessed was his own; but they had all things common. + +4:33 And with great power gave the apostles witness of the +resurrection of the Lord Jesus: and great grace was upon them all. + +4:34 Neither was there any among them that lacked: for as many as were +possessors of lands or houses sold them, and brought the prices of the +things that were sold, 4:35 And laid them down at the apostles' feet: +and distribution was made unto every man according as he had need. + +4:36 And Joses, who by the apostles was surnamed Barnabas, (which is, +being interpreted, The son of consolation,) a Levite, and of the +country of Cyprus, 4:37 Having land, sold it, and brought the money, +and laid it at the apostles' feet. + +5:1 But a certain man named Ananias, with Sapphira his wife, sold a +possession, 5:2 And kept back part of the price, his wife also being +privy to it, and brought a certain part, and laid it at the apostles' +feet. + +5:3 But Peter said, Ananias, why hath Satan filled thine heart to lie +to the Holy Ghost, and to keep back part of the price of the land? +5:4 Whiles it remained, was it not thine own? and after it was sold, +was it not in thine own power? why hast thou conceived this thing in +thine heart? thou hast not lied unto men, but unto God. + +5:5 And Ananias hearing these words fell down, and gave up the ghost: +and great fear came on all them that heard these things. + +5:6 And the young men arose, wound him up, and carried him out, and +buried him. + +5:7 And it was about the space of three hours after, when his wife, +not knowing what was done, came in. + +5:8 And Peter answered unto her, Tell me whether ye sold the land for +so much? And she said, Yea, for so much. + +5:9 Then Peter said unto her, How is it that ye have agreed together +to tempt the Spirit of the Lord? behold, the feet of them which have +buried thy husband are at the door, and shall carry thee out. + +5:10 Then fell she down straightway at his feet, and yielded up the +ghost: and the young men came in, and found her dead, and, carrying +her forth, buried her by her husband. + +5:11 And great fear came upon all the church, and upon as many as +heard these things. + +5:12 And by the hands of the apostles were many signs and wonders +wrought among the people; (and they were all with one accord in +Solomon's porch. + +5:13 And of the rest durst no man join himself to them: but the people +magnified them. + +5:14 And believers were the more added to the Lord, multitudes both of +men and women.) 5:15 Insomuch that they brought forth the sick into +the streets, and laid them on beds and couches, that at the least the +shadow of Peter passing by might overshadow some of them. + +5:16 There came also a multitude out of the cities round about unto +Jerusalem, bringing sick folks, and them which were vexed with unclean +spirits: and they were healed every one. + +5:17 Then the high priest rose up, and all they that were with him, +(which is the sect of the Sadducees,) and were filled with +indignation, 5:18 And laid their hands on the apostles, and put them +in the common prison. + +5:19 But the angel of the Lord by night opened the prison doors, and +brought them forth, and said, 5:20 Go, stand and speak in the temple +to the people all the words of this life. + +5:21 And when they heard that, they entered into the temple early in +the morning, and taught. But the high priest came, and they that were +with him, and called the council together, and all the senate of the +children of Israel, and sent to the prison to have them brought. + +5:22 But when the officers came, and found them not in the prison, +they returned and told, 5:23 Saying, The prison truly found we shut +with all safety, and the keepers standing without before the doors: +but when we had opened, we found no man within. + +5:24 Now when the high priest and the captain of the temple and the +chief priests heard these things, they doubted of them whereunto this +would grow. + +5:25 Then came one and told them, saying, Behold, the men whom ye put +in prison are standing in the temple, and teaching the people. + +5:26 Then went the captain with the officers, and brought them without +violence: for they feared the people, lest they should have been +stoned. + +5:27 And when they had brought them, they set them before the council: +and the high priest asked them, 5:28 Saying, Did not we straitly +command you that ye should not teach in this name? and, behold, ye +have filled Jerusalem with your doctrine, and intend to bring this +man's blood upon us. + +5:29 Then Peter and the other apostles answered and said, We ought to +obey God rather than men. + +5:30 The God of our fathers raised up Jesus, whom ye slew and hanged +on a tree. + +5:31 Him hath God exalted with his right hand to be a Prince and a +Saviour, for to give repentance to Israel, and forgiveness of sins. + +5:32 And we are his witnesses of these things; and so is also the Holy +Ghost, whom God hath given to them that obey him. + +5:33 When they heard that, they were cut to the heart, and took +counsel to slay them. + +5:34 Then stood there up one in the council, a Pharisee, named +Gamaliel, a doctor of the law, had in reputation among all the people, +and commanded to put the apostles forth a little space; 5:35 And said +unto them, Ye men of Israel, take heed to yourselves what ye intend to +do as touching these men. + +5:36 For before these days rose up Theudas, boasting himself to be +somebody; to whom a number of men, about four hundred, joined +themselves: who was slain; and all, as many as obeyed him, were +scattered, and brought to nought. + +5:37 After this man rose up Judas of Galilee in the days of the +taxing, and drew away much people after him: he also perished; and +all, even as many as obeyed him, were dispersed. + +5:38 And now I say unto you, Refrain from these men, and let them +alone: for if this counsel or this work be of men, it will come to +nought: 5:39 But if it be of God, ye cannot overthrow it; lest haply +ye be found even to fight against God. + +5:40 And to him they agreed: and when they had called the apostles, +and beaten them, they commanded that they should not speak in the name +of Jesus, and let them go. + +5:41 And they departed from the presence of the council, rejoicing +that they were counted worthy to suffer shame for his name. + +5:42 And daily in the temple, and in every house, they ceased not to +teach and preach Jesus Christ. + +6:1 And in those days, when the number of the disciples was +multiplied, there arose a murmuring of the Grecians against the +Hebrews, because their widows were neglected in the daily +ministration. + +6:2 Then the twelve called the multitude of the disciples unto them, +and said, It is not reason that we should leave the word of God, and +serve tables. + +6:3 Wherefore, brethren, look ye out among you seven men of honest +report, full of the Holy Ghost and wisdom, whom we may appoint over +this business. + +6:4 But we will give ourselves continually to prayer, and to the +ministry of the word. + +6:5 And the saying pleased the whole multitude: and they chose +Stephen, a man full of faith and of the Holy Ghost, and Philip, and +Prochorus, and Nicanor, and Timon, and Parmenas, and Nicolas a +proselyte of Antioch: 6:6 Whom they set before the apostles: and when +they had prayed, they laid their hands on them. + +6:7 And the word of God increased; and the number of the disciples +multiplied in Jerusalem greatly; and a great company of the priests +were obedient to the faith. + +6:8 And Stephen, full of faith and power, did great wonders and +miracles among the people. + +6:9 Then there arose certain of the synagogue, which is called the +synagogue of the Libertines, and Cyrenians, and Alexandrians, and of +them of Cilicia and of Asia, disputing with Stephen. + +6:10 And they were not able to resist the wisdom and the spirit by +which he spake. + +6:11 Then they suborned men, which said, We have heard him speak +blasphemous words against Moses, and against God. + +6:12 And they stirred up the people, and the elders, and the scribes, +and came upon him, and caught him, and brought him to the council, +6:13 And set up false witnesses, which said, This man ceaseth not to +speak blasphemous words against this holy place, and the law: 6:14 For +we have heard him say, that this Jesus of Nazareth shall destroy this +place, and shall change the customs which Moses delivered us. + +6:15 And all that sat in the council, looking stedfastly on him, saw +his face as it had been the face of an angel. + +7:1 Then said the high priest, Are these things so? 7:2 And he said, +Men, brethren, and fathers, hearken; The God of glory appeared unto +our father Abraham, when he was in Mesopotamia, before he dwelt in +Charran, 7:3 And said unto him, Get thee out of thy country, and from +thy kindred, and come into the land which I shall shew thee. + +7:4 Then came he out of the land of the Chaldaeans, and dwelt in +Charran: and from thence, when his father was dead, he removed him +into this land, wherein ye now dwell. + +7:5 And he gave him none inheritance in it, no, not so much as to set +his foot on: yet he promised that he would give it to him for a +possession, and to his seed after him, when as yet he had no child. + +7:6 And God spake on this wise, That his seed should sojourn in a +strange land; and that they should bring them into bondage, and +entreat them evil four hundred years. + +7:7 And the nation to whom they shall be in bondage will I judge, said +God: and after that shall they come forth, and serve me in this place. + +7:8 And he gave him the covenant of circumcision: and so Abraham begat +Isaac, and circumcised him the eighth day; and Isaac begat Jacob; and +Jacob begat the twelve patriarchs. + +7:9 And the patriarchs, moved with envy, sold Joseph into Egypt: but +God was with him, 7:10 And delivered him out of all his afflictions, +and gave him favour and wisdom in the sight of Pharaoh king of Egypt; +and he made him governor over Egypt and all his house. + +7:11 Now there came a dearth over all the land of Egypt and Chanaan, +and great affliction: and our fathers found no sustenance. + +7:12 But when Jacob heard that there was corn in Egypt, he sent out +our fathers first. + +7:13 And at the second time Joseph was made known to his brethren; and +Joseph's kindred was made known unto Pharaoh. + +7:14 Then sent Joseph, and called his father Jacob to him, and all his +kindred, threescore and fifteen souls. + +7:15 So Jacob went down into Egypt, and died, he, and our fathers, +7:16 And were carried over into Sychem, and laid in the sepulchre that +Abraham bought for a sum of money of the sons of Emmor the father of +Sychem. + +7:17 But when the time of the promise drew nigh, which God had sworn +to Abraham, the people grew and multiplied in Egypt, 7:18 Till another +king arose, which knew not Joseph. + +7:19 The same dealt subtilly with our kindred, and evil entreated our +fathers, so that they cast out their young children, to the end they +might not live. + +7:20 In which time Moses was born, and was exceeding fair, and +nourished up in his father's house three months: 7:21 And when he was +cast out, Pharaoh's daughter took him up, and nourished him for her +own son. + +7:22 And Moses was learned in all the wisdom of the Egyptians, and was +mighty in words and in deeds. + +7:23 And when he was full forty years old, it came into his heart to +visit his brethren the children of Israel. + +7:24 And seeing one of them suffer wrong, he defended him, and avenged +him that was oppressed, and smote the Egyptian: 7:25 For he supposed +his brethren would have understood how that God by his hand would +deliver them: but they understood not. + +7:26 And the next day he shewed himself unto them as they strove, and +would have set them at one again, saying, Sirs, ye are brethren; why +do ye wrong one to another? 7:27 But he that did his neighbour wrong +thrust him away, saying, Who made thee a ruler and a judge over us? +7:28 Wilt thou kill me, as thou diddest the Egyptian yesterday? 7:29 +Then fled Moses at this saying, and was a stranger in the land of +Madian, where he begat two sons. + +7:30 And when forty years were expired, there appeared to him in the +wilderness of mount Sina an angel of the Lord in a flame of fire in a +bush. + +7:31 When Moses saw it, he wondered at the sight: and as he drew near +to behold it, the voice of the LORD came unto him, 7:32 Saying, I am +the God of thy fathers, the God of Abraham, and the God of Isaac, and +the God of Jacob. Then Moses trembled, and durst not behold. + +7:33 Then said the Lord to him, Put off thy shoes from thy feet: for +the place where thou standest is holy ground. + +7:34 I have seen, I have seen the affliction of my people which is in +Egypt, and I have heard their groaning, and am come down to deliver +them. And now come, I will send thee into Egypt. + +7:35 This Moses whom they refused, saying, Who made thee a ruler and a +judge? the same did God send to be a ruler and a deliverer by the hand +of the angel which appeared to him in the bush. + +7:36 He brought them out, after that he had shewed wonders and signs +in the land of Egypt, and in the Red sea, and in the wilderness forty +years. + +7:37 This is that Moses, which said unto the children of Israel, A +prophet shall the Lord your God raise up unto you of your brethren, +like unto me; him shall ye hear. + +7:38 This is he, that was in the church in the wilderness with the +angel which spake to him in the mount Sina, and with our fathers: who +received the lively oracles to give unto us: 7:39 To whom our fathers +would not obey, but thrust him from them, and in their hearts turned +back again into Egypt, 7:40 Saying unto Aaron, Make us gods to go +before us: for as for this Moses, which brought us out of the land of +Egypt, we wot not what is become of him. + +7:41 And they made a calf in those days, and offered sacrifice unto +the idol, and rejoiced in the works of their own hands. + +7:42 Then God turned, and gave them up to worship the host of heaven; +as it is written in the book of the prophets, O ye house of Israel, +have ye offered to me slain beasts and sacrifices by the space of +forty years in the wilderness? 7:43 Yea, ye took up the tabernacle of +Moloch, and the star of your god Remphan, figures which ye made to +worship them: and I will carry you away beyond Babylon. + +7:44 Our fathers had the tabernacle of witness in the wilderness, as +he had appointed, speaking unto Moses, that he should make it +according to the fashion that he had seen. + +7:45 Which also our fathers that came after brought in with Jesus into +the possession of the Gentiles, whom God drave out before the face of +our fathers, unto the days of David; 7:46 Who found favour before God, +and desired to find a tabernacle for the God of Jacob. + +7:47 But Solomon built him an house. + +7:48 Howbeit the most High dwelleth not in temples made with hands; as +saith the prophet, 7:49 Heaven is my throne, and earth is my +footstool: what house will ye build me? saith the Lord: or what is the +place of my rest? 7:50 Hath not my hand made all these things? 7:51 +Ye stiffnecked and uncircumcised in heart and ears, ye do always +resist the Holy Ghost: as your fathers did, so do ye. + +7:52 Which of the prophets have not your fathers persecuted? and they +have slain them which shewed before of the coming of the Just One; of +whom ye have been now the betrayers and murderers: 7:53 Who have +received the law by the disposition of angels, and have not kept it. + +7:54 When they heard these things, they were cut to the heart, and +they gnashed on him with their teeth. + +7:55 But he, being full of the Holy Ghost, looked up stedfastly into +heaven, and saw the glory of God, and Jesus standing on the right hand +of God, 7:56 And said, Behold, I see the heavens opened, and the Son +of man standing on the right hand of God. + +7:57 Then they cried out with a loud voice, and stopped their ears, +and ran upon him with one accord, 7:58 And cast him out of the city, +and stoned him: and the witnesses laid down their clothes at a young +man's feet, whose name was Saul. + +7:59 And they stoned Stephen, calling upon God, and saying, Lord +Jesus, receive my spirit. + +7:60 And he kneeled down, and cried with a loud voice, Lord, lay not +this sin to their charge. And when he had said this, he fell asleep. + +8:1 And Saul was consenting unto his death. And at that time there was +a great persecution against the church which was at Jerusalem; and +they were all scattered abroad throughout the regions of Judaea and +Samaria, except the apostles. + +8:2 And devout men carried Stephen to his burial, and made great +lamentation over him. + +8:3 As for Saul, he made havock of the church, entering into every +house, and haling men and women committed them to prison. + +8:4 Therefore they that were scattered abroad went every where +preaching the word. + +8:5 Then Philip went down to the city of Samaria, and preached Christ +unto them. + +8:6 And the people with one accord gave heed unto those things which +Philip spake, hearing and seeing the miracles which he did. + +8:7 For unclean spirits, crying with loud voice, came out of many that +were possessed with them: and many taken with palsies, and that were +lame, were healed. + +8:8 And there was great joy in that city. + +8:9 But there was a certain man, called Simon, which beforetime in the +same city used sorcery, and bewitched the people of Samaria, giving +out that himself was some great one: 8:10 To whom they all gave heed, +from the least to the greatest, saying, This man is the great power of +God. + +8:11 And to him they had regard, because that of long time he had +bewitched them with sorceries. + +8:12 But when they believed Philip preaching the things concerning the +kingdom of God, and the name of Jesus Christ, they were baptized, both +men and women. + +8:13 Then Simon himself believed also: and when he was baptized, he +continued with Philip, and wondered, beholding the miracles and signs +which were done. + +8:14 Now when the apostles which were at Jerusalem heard that Samaria +had received the word of God, they sent unto them Peter and John: 8:15 +Who, when they were come down, prayed for them, that they might +receive the Holy Ghost: 8:16 (For as yet he was fallen upon none of +them: only they were baptized in the name of the Lord Jesus.) 8:17 +Then laid they their hands on them, and they received the Holy Ghost. + +8:18 And when Simon saw that through laying on of the apostles' hands +the Holy Ghost was given, he offered them money, 8:19 Saying, Give me +also this power, that on whomsoever I lay hands, he may receive the +Holy Ghost. + +8:20 But Peter said unto him, Thy money perish with thee, because thou +hast thought that the gift of God may be purchased with money. + +8:21 Thou hast neither part nor lot in this matter: for thy heart is +not right in the sight of God. + +8:22 Repent therefore of this thy wickedness, and pray God, if perhaps +the thought of thine heart may be forgiven thee. + +8:23 For I perceive that thou art in the gall of bitterness, and in +the bond of iniquity. + +8:24 Then answered Simon, and said, Pray ye to the LORD for me, that +none of these things which ye have spoken come upon me. + +8:25 And they, when they had testified and preached the word of the +Lord, returned to Jerusalem, and preached the gospel in many villages +of the Samaritans. + +8:26 And the angel of the Lord spake unto Philip, saying, Arise, and +go toward the south unto the way that goeth down from Jerusalem unto +Gaza, which is desert. + +8:27 And he arose and went: and, behold, a man of Ethiopia, an eunuch +of great authority under Candace queen of the Ethiopians, who had the +charge of all her treasure, and had come to Jerusalem for to worship, +8:28 Was returning, and sitting in his chariot read Esaias the +prophet. + +8:29 Then the Spirit said unto Philip, Go near, and join thyself to +this chariot. + +8:30 And Philip ran thither to him, and heard him read the prophet +Esaias, and said, Understandest thou what thou readest? 8:31 And he +said, How can I, except some man should guide me? And he desired +Philip that he would come up and sit with him. + +8:32 The place of the scripture which he read was this, He was led as +a sheep to the slaughter; and like a lamb dumb before his shearer, so +opened he not his mouth: 8:33 In his humiliation his judgment was +taken away: and who shall declare his generation? for his life is +taken from the earth. + +8:34 And the eunuch answered Philip, and said, I pray thee, of whom +speaketh the prophet this? of himself, or of some other man? 8:35 +Then Philip opened his mouth, and began at the same scripture, and +preached unto him Jesus. + +8:36 And as they went on their way, they came unto a certain water: +and the eunuch said, See, here is water; what doth hinder me to be +baptized? 8:37 And Philip said, If thou believest with all thine +heart, thou mayest. + +And he answered and said, I believe that Jesus Christ is the Son of +God. + +8:38 And he commanded the chariot to stand still: and they went down +both into the water, both Philip and the eunuch; and he baptized him. + +8:39 And when they were come up out of the water, the Spirit of the +Lord caught away Philip, that the eunuch saw him no more: and he went +on his way rejoicing. + +8:40 But Philip was found at Azotus: and passing through he preached +in all the cities, till he came to Caesarea. + +9:1 And Saul, yet breathing out threatenings and slaughter against the +disciples of the Lord, went unto the high priest, 9:2 And desired of +him letters to Damascus to the synagogues, that if he found any of +this way, whether they were men or women, he might bring them bound +unto Jerusalem. + +9:3 And as he journeyed, he came near Damascus: and suddenly there +shined round about him a light from heaven: 9:4 And he fell to the +earth, and heard a voice saying unto him, Saul, Saul, why persecutest +thou me? 9:5 And he said, Who art thou, Lord? And the Lord said, I am +Jesus whom thou persecutest: it is hard for thee to kick against the +pricks. + +9:6 And he trembling and astonished said, Lord, what wilt thou have me +to do? And the Lord said unto him, Arise, and go into the city, and it +shall be told thee what thou must do. + +9:7 And the men which journeyed with him stood speechless, hearing a +voice, but seeing no man. + +9:8 And Saul arose from the earth; and when his eyes were opened, he +saw no man: but they led him by the hand, and brought him into +Damascus. + +9:9 And he was three days without sight, and neither did eat nor +drink. + +9:10 And there was a certain disciple at Damascus, named Ananias; and +to him said the Lord in a vision, Ananias. And he said, Behold, I am +here, Lord. + +9:11 And the Lord said unto him, Arise, and go into the street which +is called Straight, and enquire in the house of Judas for one called +Saul, of Tarsus: for, behold, he prayeth, 9:12 And hath seen in a +vision a man named Ananias coming in, and putting his hand on him, +that he might receive his sight. + +9:13 Then Ananias answered, Lord, I have heard by many of this man, +how much evil he hath done to thy saints at Jerusalem: 9:14 And here +he hath authority from the chief priests to bind all that call on thy +name. + +9:15 But the Lord said unto him, Go thy way: for he is a chosen vessel +unto me, to bear my name before the Gentiles, and kings, and the +children of Israel: 9:16 For I will shew him how great things he must +suffer for my name's sake. + +9:17 And Ananias went his way, and entered into the house; and putting +his hands on him said, Brother Saul, the Lord, even Jesus, that +appeared unto thee in the way as thou camest, hath sent me, that thou +mightest receive thy sight, and be filled with the Holy Ghost. + +9:18 And immediately there fell from his eyes as it had been scales: +and he received sight forthwith, and arose, and was baptized. + +9:19 And when he had received meat, he was strengthened. Then was Saul +certain days with the disciples which were at Damascus. + +9:20 And straightway he preached Christ in the synagogues, that he is +the Son of God. + +9:21 But all that heard him were amazed, and said; Is not this he that +destroyed them which called on this name in Jerusalem, and came hither +for that intent, that he might bring them bound unto the chief +priests? 9:22 But Saul increased the more in strength, and confounded +the Jews which dwelt at Damascus, proving that this is very Christ. + +9:23 And after that many days were fulfilled, the Jews took counsel to +kill him: 9:24 But their laying await was known of Saul. And they +watched the gates day and night to kill him. + +9:25 Then the disciples took him by night, and let him down by the +wall in a basket. + +9:26 And when Saul was come to Jerusalem, he assayed to join himself +to the disciples: but they were all afraid of him, and believed not +that he was a disciple. + +9:27 But Barnabas took him, and brought him to the apostles, and +declared unto them how he had seen the Lord in the way, and that he +had spoken to him, and how he had preached boldly at Damascus in the +name of Jesus. + +9:28 And he was with them coming in and going out at Jerusalem. + +9:29 And he spake boldly in the name of the Lord Jesus, and disputed +against the Grecians: but they went about to slay him. + +9:30 Which when the brethren knew, they brought him down to Caesarea, +and sent him forth to Tarsus. + +9:31 Then had the churches rest throughout all Judaea and Galilee and +Samaria, and were edified; and walking in the fear of the Lord, and in +the comfort of the Holy Ghost, were multiplied. + +9:32 And it came to pass, as Peter passed throughout all quarters, he +came down also to the saints which dwelt at Lydda. + +9:33 And there he found a certain man named Aeneas, which had kept his +bed eight years, and was sick of the palsy. + +9:34 And Peter said unto him, Aeneas, Jesus Christ maketh thee whole: +arise, and make thy bed. And he arose immediately. + +9:35 And all that dwelt at Lydda and Saron saw him, and turned to the +Lord. + +9:36 Now there was at Joppa a certain disciple named Tabitha, which by +interpretation is called Dorcas: this woman was full of good works and +almsdeeds which she did. + +9:37 And it came to pass in those days, that she was sick, and died: +whom when they had washed, they laid her in an upper chamber. + +9:38 And forasmuch as Lydda was nigh to Joppa, and the disciples had +heard that Peter was there, they sent unto him two men, desiring him +that he would not delay to come to them. + +9:39 Then Peter arose and went with them. When he was come, they +brought him into the upper chamber: and all the widows stood by him +weeping, and shewing the coats and garments which Dorcas made, while +she was with them. + +9:40 But Peter put them all forth, and kneeled down, and prayed; and +turning him to the body said, Tabitha, arise. And she opened her eyes: +and when she saw Peter, she sat up. + +9:41 And he gave her his hand, and lifted her up, and when he had +called the saints and widows, presented her alive. + +9:42 And it was known throughout all Joppa; and many believed in the +Lord. + +9:43 And it came to pass, that he tarried many days in Joppa with one +Simon a tanner. + +10:1 There was a certain man in Caesarea called Cornelius, a centurion +of the band called the Italian band, 10:2 A devout man, and one that +feared God with all his house, which gave much alms to the people, and +prayed to God alway. + +10:3 He saw in a vision evidently about the ninth hour of the day an +angel of God coming in to him, and saying unto him, Cornelius. + +10:4 And when he looked on him, he was afraid, and said, What is it, +Lord? And he said unto him, Thy prayers and thine alms are come up +for a memorial before God. + +10:5 And now send men to Joppa, and call for one Simon, whose surname +is Peter: 10:6 He lodgeth with one Simon a tanner, whose house is by +the sea side: he shall tell thee what thou oughtest to do. + +10:7 And when the angel which spake unto Cornelius was departed, he +called two of his household servants, and a devout soldier of them +that waited on him continually; 10:8 And when he had declared all +these things unto them, he sent them to Joppa. + +10:9 On the morrow, as they went on their journey, and drew nigh unto +the city, Peter went up upon the housetop to pray about the sixth +hour: 10:10 And he became very hungry, and would have eaten: but while +they made ready, he fell into a trance, 10:11 And saw heaven opened, +and a certain vessel descending upon him, as it had been a great sheet +knit at the four corners, and let down to the earth: 10:12 Wherein +were all manner of fourfooted beasts of the earth, and wild beasts, +and creeping things, and fowls of the air. + +10:13 And there came a voice to him, Rise, Peter; kill, and eat. + +10:14 But Peter said, Not so, Lord; for I have never eaten any thing +that is common or unclean. + +10:15 And the voice spake unto him again the second time, What God +hath cleansed, that call not thou common. + +10:16 This was done thrice: and the vessel was received up again into +heaven. + +10:17 Now while Peter doubted in himself what this vision which he had +seen should mean, behold, the men which were sent from Cornelius had +made enquiry for Simon's house, and stood before the gate, 10:18 And +called, and asked whether Simon, which was surnamed Peter, were lodged +there. + +10:19 While Peter thought on the vision, the Spirit said unto him, +Behold, three men seek thee. + +10:20 Arise therefore, and get thee down, and go with them, doubting +nothing: for I have sent them. + +10:21 Then Peter went down to the men which were sent unto him from +Cornelius; and said, Behold, I am he whom ye seek: what is the cause +wherefore ye are come? 10:22 And they said, Cornelius the centurion, +a just man, and one that feareth God, and of good report among all the +nation of the Jews, was warned from God by an holy angel to send for +thee into his house, and to hear words of thee. + +10:23 Then called he them in, and lodged them. And on the morrow Peter +went away with them, and certain brethren from Joppa accompanied him. + +10:24 And the morrow after they entered into Caesarea. And Cornelius +waited for them, and he had called together his kinsmen and near +friends. + +10:25 And as Peter was coming in, Cornelius met him, and fell down at +his feet, and worshipped him. + +10:26 But Peter took him up, saying, Stand up; I myself also am a man. + +10:27 And as he talked with him, he went in, and found many that were +come together. + +10:28 And he said unto them, Ye know how that it is an unlawful thing +for a man that is a Jew to keep company, or come unto one of another +nation; but God hath shewed me that I should not call any man common +or unclean. + +10:29 Therefore came I unto you without gainsaying, as soon as I was +sent for: I ask therefore for what intent ye have sent for me? 10:30 +And Cornelius said, Four days ago I was fasting until this hour; and +at the ninth hour I prayed in my house, and, behold, a man stood +before me in bright clothing, 10:31 And said, Cornelius, thy prayer is +heard, and thine alms are had in remembrance in the sight of God. + +10:32 Send therefore to Joppa, and call hither Simon, whose surname is +Peter; he is lodged in the house of one Simon a tanner by the sea +side: who, when he cometh, shall speak unto thee. + +10:33 Immediately therefore I sent to thee; and thou hast well done +that thou art come. Now therefore are we all here present before God, +to hear all things that are commanded thee of God. + +10:34 Then Peter opened his mouth, and said, Of a truth I perceive +that God is no respecter of persons: 10:35 But in every nation he that +feareth him, and worketh righteousness, is accepted with him. + +10:36 The word which God sent unto the children of Israel, preaching +peace by Jesus Christ: (he is Lord of all:) 10:37 That word, I say, ye +know, which was published throughout all Judaea, and began from +Galilee, after the baptism which John preached; 10:38 How God anointed +Jesus of Nazareth with the Holy Ghost and with power: who went about +doing good, and healing all that were oppressed of the devil; for God +was with him. + +10:39 And we are witnesses of all things which he did both in the land +of the Jews, and in Jerusalem; whom they slew and hanged on a tree: +10:40 Him God raised up the third day, and shewed him openly; 10:41 +Not to all the people, but unto witnesses chosen before God, even to +us, who did eat and drink with him after he rose from the dead. + +10:42 And he commanded us to preach unto the people, and to testify +that it is he which was ordained of God to be the Judge of quick and +dead. + +10:43 To him give all the prophets witness, that through his name +whosoever believeth in him shall receive remission of sins. + +10:44 While Peter yet spake these words, the Holy Ghost fell on all +them which heard the word. + +10:45 And they of the circumcision which believed were astonished, as +many as came with Peter, because that on the Gentiles also was poured +out the gift of the Holy Ghost. + +10:46 For they heard them speak with tongues, and magnify God. Then +answered Peter, 10:47 Can any man forbid water, that these should not +be baptized, which have received the Holy Ghost as well as we? 10:48 +And he commanded them to be baptized in the name of the Lord. Then +prayed they him to tarry certain days. + +11:1 And the apostles and brethren that were in Judaea heard that the +Gentiles had also received the word of God. + +11:2 And when Peter was come up to Jerusalem, they that were of the +circumcision contended with him, 11:3 Saying, Thou wentest in to men +uncircumcised, and didst eat with them. + +11:4 But Peter rehearsed the matter from the beginning, and expounded +it by order unto them, saying, 11:5 I was in the city of Joppa +praying: and in a trance I saw a vision, A certain vessel descend, as +it had been a great sheet, let down from heaven by four corners; and +it came even to me: 11:6 Upon the which when I had fastened mine eyes, +I considered, and saw fourfooted beasts of the earth, and wild beasts, +and creeping things, and fowls of the air. + +11:7 And I heard a voice saying unto me, Arise, Peter; slay and eat. + +11:8 But I said, Not so, Lord: for nothing common or unclean hath at +any time entered into my mouth. + +11:9 But the voice answered me again from heaven, What God hath +cleansed, that call not thou common. + +11:10 And this was done three times: and all were drawn up again into +heaven. + +11:11 And, behold, immediately there were three men already come unto +the house where I was, sent from Caesarea unto me. + +11:12 And the Spirit bade me go with them, nothing doubting. Moreover +these six brethren accompanied me, and we entered into the man's +house: 11:13 And he shewed us how he had seen an angel in his house, +which stood and said unto him, Send men to Joppa, and call for Simon, +whose surname is Peter; 11:14 Who shall tell thee words, whereby thou +and all thy house shall be saved. + +11:15 And as I began to speak, the Holy Ghost fell on them, as on us +at the beginning. + +11:16 Then remembered I the word of the Lord, how that he said, John +indeed baptized with water; but ye shall be baptized with the Holy +Ghost. + +11:17 Forasmuch then as God gave them the like gift as he did unto us, +who believed on the Lord Jesus Christ; what was I, that I could +withstand God? 11:18 When they heard these things, they held their +peace, and glorified God, saying, Then hath God also to the Gentiles +granted repentance unto life. + +11:19 Now they which were scattered abroad upon the persecution that +arose about Stephen travelled as far as Phenice, and Cyprus, and +Antioch, preaching the word to none but unto the Jews only. + +11:20 And some of them were men of Cyprus and Cyrene, which, when they +were come to Antioch, spake unto the Grecians, preaching the LORD +Jesus. + +11:21 And the hand of the Lord was with them: and a great number +believed, and turned unto the Lord. + +11:22 Then tidings of these things came unto the ears of the church +which was in Jerusalem: and they sent forth Barnabas, that he should +go as far as Antioch. + +11:23 Who, when he came, and had seen the grace of God, was glad, and +exhorted them all, that with purpose of heart they would cleave unto +the Lord. + +11:24 For he was a good man, and full of the Holy Ghost and of faith: +and much people was added unto the Lord. + +11:25 Then departed Barnabas to Tarsus, for to seek Saul: 11:26 And +when he had found him, he brought him unto Antioch. And it came to +pass, that a whole year they assembled themselves with the church, and +taught much people. And the disciples were called Christians first in +Antioch. + +11:27 And in these days came prophets from Jerusalem unto Antioch. + +11:28 And there stood up one of them named Agabus, and signified by +the Spirit that there should be great dearth throughout all the world: +which came to pass in the days of Claudius Caesar. + +11:29 Then the disciples, every man according to his ability, +determined to send relief unto the brethren which dwelt in Judaea: +11:30 Which also they did, and sent it to the elders by the hands of +Barnabas and Saul. + +12:1 Now about that time Herod the king stretched forth his hands to +vex certain of the church. + +12:2 And he killed James the brother of John with the sword. + +12:3 And because he saw it pleased the Jews, he proceeded further to +take Peter also. (Then were the days of unleavened bread.) 12:4 And +when he had apprehended him, he put him in prison, and delivered him +to four quaternions of soldiers to keep him; intending after Easter to +bring him forth to the people. + +12:5 Peter therefore was kept in prison: but prayer was made without +ceasing of the church unto God for him. + +12:6 And when Herod would have brought him forth, the same night Peter +was sleeping between two soldiers, bound with two chains: and the +keepers before the door kept the prison. + +12:7 And, behold, the angel of the Lord came upon him, and a light +shined in the prison: and he smote Peter on the side, and raised him +up, saying, Arise up quickly. And his chains fell off from his hands. + +12:8 And the angel said unto him, Gird thyself, and bind on thy +sandals. + +And so he did. And he saith unto him, Cast thy garment about thee, and +follow me. + +12:9 And he went out, and followed him; and wist not that it was true +which was done by the angel; but thought he saw a vision. + +12:10 When they were past the first and the second ward, they came +unto the iron gate that leadeth unto the city; which opened to them of +his own accord: and they went out, and passed on through one street; +and forthwith the angel departed from him. + +12:11 And when Peter was come to himself, he said, Now I know of a +surety, that the LORD hath sent his angel, and hath delivered me out +of the hand of Herod, and from all the expectation of the people of +the Jews. + +12:12 And when he had considered the thing, he came to the house of +Mary the mother of John, whose surname was Mark; where many were +gathered together praying. + +12:13 And as Peter knocked at the door of the gate, a damsel came to +hearken, named Rhoda. + +12:14 And when she knew Peter's voice, she opened not the gate for +gladness, but ran in, and told how Peter stood before the gate. + +12:15 And they said unto her, Thou art mad. But she constantly +affirmed that it was even so. Then said they, It is his angel. + +12:16 But Peter continued knocking: and when they had opened the door, +and saw him, they were astonished. + +12:17 But he, beckoning unto them with the hand to hold their peace, +declared unto them how the Lord had brought him out of the prison. And +he said, Go shew these things unto James, and to the brethren. And he +departed, and went into another place. + +12:18 Now as soon as it was day, there was no small stir among the +soldiers, what was become of Peter. + +12:19 And when Herod had sought for him, and found him not, he +examined the keepers, and commanded that they should be put to death. +And he went down from Judaea to Caesarea, and there abode. + +12:20 And Herod was highly displeased with them of Tyre and Sidon: but +they came with one accord to him, and, having made Blastus the king's +chamberlain their friend, desired peace; because their country was +nourished by the king's country. + +12:21 And upon a set day Herod, arrayed in royal apparel, sat upon his +throne, and made an oration unto them. + +12:22 And the people gave a shout, saying, It is the voice of a god, +and not of a man. + +12:23 And immediately the angel of the Lord smote him, because he gave +not God the glory: and he was eaten of worms, and gave up the ghost. + +12:24 But the word of God grew and multiplied. + +12:25 And Barnabas and Saul returned from Jerusalem, when they had +fulfilled their ministry, and took with them John, whose surname was +Mark. + +13:1 Now there were in the church that was at Antioch certain prophets +and teachers; as Barnabas, and Simeon that was called Niger, and +Lucius of Cyrene, and Manaen, which had been brought up with Herod the +tetrarch, and Saul. + +13:2 As they ministered to the Lord, and fasted, the Holy Ghost said, +Separate me Barnabas and Saul for the work whereunto I have called +them. + +13:3 And when they had fasted and prayed, and laid their hands on +them, they sent them away. + +13:4 So they, being sent forth by the Holy Ghost, departed unto +Seleucia; and from thence they sailed to Cyprus. + +13:5 And when they were at Salamis, they preached the word of God in +the synagogues of the Jews: and they had also John to their minister. + +13:6 And when they had gone through the isle unto Paphos, they found a +certain sorcerer, a false prophet, a Jew, whose name was Barjesus: +13:7 Which was with the deputy of the country, Sergius Paulus, a +prudent man; who called for Barnabas and Saul, and desired to hear the +word of God. + +13:8 But Elymas the sorcerer (for so is his name by interpretation) +withstood them, seeking to turn away the deputy from the faith. + +13:9 Then Saul, (who also is called Paul,) filled with the Holy Ghost, +set his eyes on him. + +13:10 And said, O full of all subtilty and all mischief, thou child of +the devil, thou enemy of all righteousness, wilt thou not cease to +pervert the right ways of the Lord? 13:11 And now, behold, the hand +of the Lord is upon thee, and thou shalt be blind, not seeing the sun +for a season. And immediately there fell on him a mist and a darkness; +and he went about seeking some to lead him by the hand. + +13:12 Then the deputy, when he saw what was done, believed, being +astonished at the doctrine of the Lord. + +13:13 Now when Paul and his company loosed from Paphos, they came to +Perga in Pamphylia: and John departing from them returned to +Jerusalem. + +13:14 But when they departed from Perga, they came to Antioch in +Pisidia, and went into the synagogue on the sabbath day, and sat down. + +13:15 And after the reading of the law and the prophets the rulers of +the synagogue sent unto them, saying, Ye men and brethren, if ye have +any word of exhortation for the people, say on. + +13:16 Then Paul stood up, and beckoning with his hand said, Men of +Israel, and ye that fear God, give audience. + +13:17 The God of this people of Israel chose our fathers, and exalted +the people when they dwelt as strangers in the land of Egypt, and with +an high arm brought he them out of it. + +13:18 And about the time of forty years suffered he their manners in +the wilderness. + +13:19 And when he had destroyed seven nations in the land of Chanaan, +he divided their land to them by lot. + +13:20 And after that he gave unto them judges about the space of four +hundred and fifty years, until Samuel the prophet. + +13:21 And afterward they desired a king: and God gave unto them Saul +the son of Cis, a man of the tribe of Benjamin, by the space of forty +years. + +13:22 And when he had removed him, he raised up unto them David to be +their king; to whom also he gave their testimony, and said, I have +found David the son of Jesse, a man after mine own heart, which shall +fulfil all my will. + +13:23 Of this man's seed hath God according to his promise raised unto +Israel a Saviour, Jesus: 13:24 When John had first preached before his +coming the baptism of repentance to all the people of Israel. + +13:25 And as John fulfilled his course, he said, Whom think ye that I +am? I am not he. But, behold, there cometh one after me, whose shoes +of his feet I am not worthy to loose. + +13:26 Men and brethren, children of the stock of Abraham, and +whosoever among you feareth God, to you is the word of this salvation +sent. + +13:27 For they that dwell at Jerusalem, and their rulers, because they +knew him not, nor yet the voices of the prophets which are read every +sabbath day, they have fulfilled them in condemning him. + +13:28 And though they found no cause of death in him, yet desired they +Pilate that he should be slain. + +13:29 And when they had fulfilled all that was written of him, they +took him down from the tree, and laid him in a sepulchre. + +13:30 But God raised him from the dead: 13:31 And he was seen many +days of them which came up with him from Galilee to Jerusalem, who are +his witnesses unto the people. + +13:32 And we declare unto you glad tidings, how that the promise which +was made unto the fathers, 13:33 God hath fulfilled the same unto us +their children, in that he hath raised up Jesus again; as it is also +written in the second psalm, Thou art my Son, this day have I begotten +thee. + +13:34 And as concerning that he raised him up from the dead, now no +more to return to corruption, he said on this wise, I will give you +the sure mercies of David. + +13:35 Wherefore he saith also in another psalm, Thou shalt not suffer +thine Holy One to see corruption. + +13:36 For David, after he had served his own generation by the will of +God, fell on sleep, and was laid unto his fathers, and saw corruption: +13:37 But he, whom God raised again, saw no corruption. + +13:38 Be it known unto you therefore, men and brethren, that through +this man is preached unto you the forgiveness of sins: 13:39 And by +him all that believe are justified from all things, from which ye +could not be justified by the law of Moses. + +13:40 Beware therefore, lest that come upon you, which is spoken of in +the prophets; 13:41 Behold, ye despisers, and wonder, and perish: for +I work a work in your days, a work which ye shall in no wise believe, +though a man declare it unto you. + +13:42 And when the Jews were gone out of the synagogue, the Gentiles +besought that these words might be preached to them the next sabbath. + +13:43 Now when the congregation was broken up, many of the Jews and +religious proselytes followed Paul and Barnabas: who, speaking to +them, persuaded them to continue in the grace of God. + +13:44 And the next sabbath day came almost the whole city together to +hear the word of God. + +13:45 But when the Jews saw the multitudes, they were filled with +envy, and spake against those things which were spoken by Paul, +contradicting and blaspheming. + +13:46 Then Paul and Barnabas waxed bold, and said, It was necessary +that the word of God should first have been spoken to you: but seeing +ye put it from you, and judge yourselves unworthy of everlasting life, +lo, we turn to the Gentiles. + +13:47 For so hath the Lord commanded us, saying, I have set thee to be +a light of the Gentiles, that thou shouldest be for salvation unto the +ends of the earth. + +13:48 And when the Gentiles heard this, they were glad, and glorified +the word of the Lord: and as many as were ordained to eternal life +believed. + +13:49 And the word of the Lord was published throughout all the +region. + +13:50 But the Jews stirred up the devout and honourable women, and the +chief men of the city, and raised persecution against Paul and +Barnabas, and expelled them out of their coasts. + +13:51 But they shook off the dust of their feet against them, and came +unto Iconium. + +13:52 And the disciples were filled with joy, and with the Holy Ghost. + +14:1 And it came to pass in Iconium, that they went both together into +the synagogue of the Jews, and so spake, that a great multitude both +of the Jews and also of the Greeks believed. + +14:2 But the unbelieving Jews stirred up the Gentiles, and made their +minds evil affected against the brethren. + +14:3 Long time therefore abode they speaking boldly in the Lord, which +gave testimony unto the word of his grace, and granted signs and +wonders to be done by their hands. + +14:4 But the multitude of the city was divided: and part held with the +Jews, and part with the apostles. + +14:5 And when there was an assault made both of the Gentiles, and also +of the Jews with their rulers, to use them despitefully, and to stone +them, 14:6 They were ware of it, and fled unto Lystra and Derbe, +cities of Lycaonia, and unto the region that lieth round about: 14:7 +And there they preached the gospel. + +14:8 And there sat a certain man at Lystra, impotent in his feet, +being a cripple from his mother's womb, who never had walked: 14:9 The +same heard Paul speak: who stedfastly beholding him, and perceiving +that he had faith to be healed, 14:10 Said with a loud voice, Stand +upright on thy feet. And he leaped and walked. + +14:11 And when the people saw what Paul had done, they lifted up their +voices, saying in the speech of Lycaonia, The gods are come down to us +in the likeness of men. + +14:12 And they called Barnabas, Jupiter; and Paul, Mercurius, because +he was the chief speaker. + +14:13 Then the priest of Jupiter, which was before their city, brought +oxen and garlands unto the gates, and would have done sacrifice with +the people. + +14:14 Which when the apostles, Barnabas and Paul, heard of, they rent +their clothes, and ran in among the people, crying out, 14:15 And +saying, Sirs, why do ye these things? We also are men of like passions +with you, and preach unto you that ye should turn from these vanities +unto the living God, which made heaven, and earth, and the sea, and +all things that are therein: 14:16 Who in times past suffered all +nations to walk in their own ways. + +14:17 Nevertheless he left not himself without witness, in that he did +good, and gave us rain from heaven, and fruitful seasons, filling our +hearts with food and gladness. + +14:18 And with these sayings scarce restrained they the people, that +they had not done sacrifice unto them. + +14:19 And there came thither certain Jews from Antioch and Iconium, +who persuaded the people, and having stoned Paul, drew him out of the +city, supposing he had been dead. + +14:20 Howbeit, as the disciples stood round about him, he rose up, and +came into the city: and the next day he departed with Barnabas to +Derbe. + +14:21 And when they had preached the gospel to that city, and had +taught many, they returned again to Lystra, and to Iconium, and +Antioch, 14:22 Confirming the souls of the disciples, and exhorting +them to continue in the faith, and that we must through much +tribulation enter into the kingdom of God. + +14:23 And when they had ordained them elders in every church, and had +prayed with fasting, they commended them to the Lord, on whom they +believed. + +14:24 And after they had passed throughout Pisidia, they came to +Pamphylia. + +14:25 And when they had preached the word in Perga, they went down +into Attalia: 14:26 And thence sailed to Antioch, from whence they had +been recommended to the grace of God for the work which they +fulfilled. + +14:27 And when they were come, and had gathered the church together, +they rehearsed all that God had done with them, and how he had opened +the door of faith unto the Gentiles. + +14:28 And there they abode long time with the disciples. + +15:1 And certain men which came down from Judaea taught the brethren, +and said, Except ye be circumcised after the manner of Moses, ye +cannot be saved. + +15:2 When therefore Paul and Barnabas had no small dissension and +disputation with them, they determined that Paul and Barnabas, and +certain other of them, should go up to Jerusalem unto the apostles and +elders about this question. + +15:3 And being brought on their way by the church, they passed through +Phenice and Samaria, declaring the conversion of the Gentiles: and +they caused great joy unto all the brethren. + +15:4 And when they were come to Jerusalem, they were received of the +church, and of the apostles and elders, and they declared all things +that God had done with them. + +15:5 But there rose up certain of the sect of the Pharisees which +believed, saying, That it was needful to circumcise them, and to +command them to keep the law of Moses. + +15:6 And the apostles and elders came together for to consider of this +matter. + +15:7 And when there had been much disputing, Peter rose up, and said +unto them, Men and brethren, ye know how that a good while ago God +made choice among us, that the Gentiles by my mouth should hear the +word of the gospel, and believe. + +15:8 And God, which knoweth the hearts, bare them witness, giving them +the Holy Ghost, even as he did unto us; 15:9 And put no difference +between us and them, purifying their hearts by faith. + +15:10 Now therefore why tempt ye God, to put a yoke upon the neck of +the disciples, which neither our fathers nor we were able to bear? +15:11 But we believe that through the grace of the LORD Jesus Christ +we shall be saved, even as they. + +15:12 Then all the multitude kept silence, and gave audience to +Barnabas and Paul, declaring what miracles and wonders God had wrought +among the Gentiles by them. + +15:13 And after they had held their peace, James answered, saying, Men +and brethren, hearken unto me: 15:14 Simeon hath declared how God at +the first did visit the Gentiles, to take out of them a people for his +name. + +15:15 And to this agree the words of the prophets; as it is written, +15:16 After this I will return, and will build again the tabernacle of +David, which is fallen down; and I will build again the ruins thereof, +and I will set it up: 15:17 That the residue of men might seek after +the Lord, and all the Gentiles, upon whom my name is called, saith the +Lord, who doeth all these things. + +15:18 Known unto God are all his works from the beginning of the +world. + +15:19 Wherefore my sentence is, that we trouble not them, which from +among the Gentiles are turned to God: 15:20 But that we write unto +them, that they abstain from pollutions of idols, and from +fornication, and from things strangled, and from blood. + +15:21 For Moses of old time hath in every city them that preach him, +being read in the synagogues every sabbath day. + +15:22 Then pleased it the apostles and elders with the whole church, +to send chosen men of their own company to Antioch with Paul and +Barnabas; namely, Judas surnamed Barsabas and Silas, chief men among +the brethren: 15:23 And they wrote letters by them after this manner; +The apostles and elders and brethren send greeting unto the brethren +which are of the Gentiles in Antioch and Syria and Cilicia. + +15:24 Forasmuch as we have heard, that certain which went out from us +have troubled you with words, subverting your souls, saying, Ye must +be circumcised, and keep the law: to whom we gave no such commandment: +15:25 It seemed good unto us, being assembled with one accord, to send +chosen men unto you with our beloved Barnabas and Paul, 15:26 Men that +have hazarded their lives for the name of our Lord Jesus Christ. + +15:27 We have sent therefore Judas and Silas, who shall also tell you +the same things by mouth. + +15:28 For it seemed good to the Holy Ghost, and to us, to lay upon you +no greater burden than these necessary things; 15:29 That ye abstain +from meats offered to idols, and from blood, and from things +strangled, and from fornication: from which if ye keep yourselves, ye +shall do well. Fare ye well. + +15:30 So when they were dismissed, they came to Antioch: and when they +had gathered the multitude together, they delivered the epistle: 15:31 +Which when they had read, they rejoiced for the consolation. + +15:32 And Judas and Silas, being prophets also themselves, exhorted +the brethren with many words, and confirmed them. + +15:33 And after they had tarried there a space, they were let go in +peace from the brethren unto the apostles. + +15:34 Notwithstanding it pleased Silas to abide there still. + +15:35 Paul also and Barnabas continued in Antioch, teaching and +preaching the word of the Lord, with many others also. + +15:36 And some days after Paul said unto Barnabas, Let us go again and +visit our brethren in every city where we have preached the word of +the LORD, and see how they do. + +15:37 And Barnabas determined to take with them John, whose surname +was Mark. + +15:38 But Paul thought not good to take him with them, who departed +from them from Pamphylia, and went not with them to the work. + +15:39 And the contention was so sharp between them, that they departed +asunder one from the other: and so Barnabas took Mark, and sailed unto +Cyprus; 15:40 And Paul chose Silas, and departed, being recommended by +the brethren unto the grace of God. + +15:41 And he went through Syria and Cilicia, confirming the churches. + +16:1 Then came he to Derbe and Lystra: and, behold, a certain disciple +was there, named Timotheus, the son of a certain woman, which was a +Jewess, and believed; but his father was a Greek: 16:2 Which was well +reported of by the brethren that were at Lystra and Iconium. + +16:3 Him would Paul have to go forth with him; and took and +circumcised him because of the Jews which were in those quarters: for +they knew all that his father was a Greek. + +16:4 And as they went through the cities, they delivered them the +decrees for to keep, that were ordained of the apostles and elders +which were at Jerusalem. + +16:5 And so were the churches established in the faith, and increased +in number daily. + +16:6 Now when they had gone throughout Phrygia and the region of +Galatia, and were forbidden of the Holy Ghost to preach the word in +Asia, 16:7 After they were come to Mysia, they assayed to go into +Bithynia: but the Spirit suffered them not. + +16:8 And they passing by Mysia came down to Troas. + +16:9 And a vision appeared to Paul in the night; There stood a man of +Macedonia, and prayed him, saying, Come over into Macedonia, and help +us. + +16:10 And after he had seen the vision, immediately we endeavoured to +go into Macedonia, assuredly gathering that the Lord had called us for +to preach the gospel unto them. + +16:11 Therefore loosing from Troas, we came with a straight course to +Samothracia, and the next day to Neapolis; 16:12 And from thence to +Philippi, which is the chief city of that part of Macedonia, and a +colony: and we were in that city abiding certain days. + +16:13 And on the sabbath we went out of the city by a river side, +where prayer was wont to be made; and we sat down, and spake unto the +women which resorted thither. + +16:14 And a certain woman named Lydia, a seller of purple, of the city +of Thyatira, which worshipped God, heard us: whose heart the Lord +opened, that she attended unto the things which were spoken of Paul. + +16:15 And when she was baptized, and her household, she besought us, +saying, If ye have judged me to be faithful to the Lord, come into my +house, and abide there. And she constrained us. + +16:16 And it came to pass, as we went to prayer, a certain damsel +possessed with a spirit of divination met us, which brought her +masters much gain by soothsaying: 16:17 The same followed Paul and us, +and cried, saying, These men are the servants of the most high God, +which shew unto us the way of salvation. + +16:18 And this did she many days. But Paul, being grieved, turned and +said to the spirit, I command thee in the name of Jesus Christ to come +out of her. + +And he came out the same hour. + +16:19 And when her masters saw that the hope of their gains was gone, +they caught Paul and Silas, and drew them into the marketplace unto +the rulers, 16:20 And brought them to the magistrates, saying, These +men, being Jews, do exceedingly trouble our city, 16:21 And teach +customs, which are not lawful for us to receive, neither to observe, +being Romans. + +16:22 And the multitude rose up together against them: and the +magistrates rent off their clothes, and commanded to beat them. + +16:23 And when they had laid many stripes upon them, they cast them +into prison, charging the jailor to keep them safely: 16:24 Who, +having received such a charge, thrust them into the inner prison, and +made their feet fast in the stocks. + +16:25 And at midnight Paul and Silas prayed, and sang praises unto +God: and the prisoners heard them. + +16:26 And suddenly there was a great earthquake, so that the +foundations of the prison were shaken: and immediately all the doors +were opened, and every one's bands were loosed. + +16:27 And the keeper of the prison awaking out of his sleep, and +seeing the prison doors open, he drew out his sword, and would have +killed himself, supposing that the prisoners had been fled. + +16:28 But Paul cried with a loud voice, saying, Do thyself no harm: +for we are all here. + +16:29 Then he called for a light, and sprang in, and came trembling, +and fell down before Paul and Silas, 16:30 And brought them out, and +said, Sirs, what must I do to be saved? 16:31 And they said, Believe +on the Lord Jesus Christ, and thou shalt be saved, and thy house. + +16:32 And they spake unto him the word of the Lord, and to all that +were in his house. + +16:33 And he took them the same hour of the night, and washed their +stripes; and was baptized, he and all his, straightway. + +16:34 And when he had brought them into his house, he set meat before +them, and rejoiced, believing in God with all his house. + +16:35 And when it was day, the magistrates sent the serjeants, saying, +Let those men go. + +16:36 And the keeper of the prison told this saying to Paul, The +magistrates have sent to let you go: now therefore depart, and go in +peace. + +16:37 But Paul said unto them, They have beaten us openly uncondemned, +being Romans, and have cast us into prison; and now do they thrust us +out privily? nay verily; but let them come themselves and fetch us +out. + +16:38 And the serjeants told these words unto the magistrates: and +they feared, when they heard that they were Romans. + +16:39 And they came and besought them, and brought them out, and +desired them to depart out of the city. + +16:40 And they went out of the prison, and entered into the house of +Lydia: and when they had seen the brethren, they comforted them, and +departed. + +17:1 Now when they had passed through Amphipolis and Apollonia, they +came to Thessalonica, where was a synagogue of the Jews: 17:2 And +Paul, as his manner was, went in unto them, and three sabbath days +reasoned with them out of the scriptures, 17:3 Opening and alleging, +that Christ must needs have suffered, and risen again from the dead; +and that this Jesus, whom I preach unto you, is Christ. + +17:4 And some of them believed, and consorted with Paul and Silas; and +of the devout Greeks a great multitude, and of the chief women not a +few. + +17:5 But the Jews which believed not, moved with envy, took unto them +certain lewd fellows of the baser sort, and gathered a company, and +set all the city on an uproar, and assaulted the house of Jason, and +sought to bring them out to the people. + +17:6 And when they found them not, they drew Jason and certain +brethren unto the rulers of the city, crying, These that have turned +the world upside down are come hither also; 17:7 Whom Jason hath +received: and these all do contrary to the decrees of Caesar, saying +that there is another king, one Jesus. + +17:8 And they troubled the people and the rulers of the city, when +they heard these things. + +17:9 And when they had taken security of Jason, and of the other, they +let them go. + +17:10 And the brethren immediately sent away Paul and Silas by night +unto Berea: who coming thither went into the synagogue of the Jews. + +17:11 These were more noble than those in Thessalonica, in that they +received the word with all readiness of mind, and searched the +scriptures daily, whether those things were so. + +17:12 Therefore many of them believed; also of honourable women which +were Greeks, and of men, not a few. + +17:13 But when the Jews of Thessalonica had knowledge that the word of +God was preached of Paul at Berea, they came thither also, and stirred +up the people. + +17:14 And then immediately the brethren sent away Paul to go as it +were to the sea: but Silas and Timotheus abode there still. + +17:15 And they that conducted Paul brought him unto Athens: and +receiving a commandment unto Silas and Timotheus for to come to him +with all speed, they departed. + +17:16 Now while Paul waited for them at Athens, his spirit was stirred +in him, when he saw the city wholly given to idolatry. + +17:17 Therefore disputed he in the synagogue with the Jews, and with +the devout persons, and in the market daily with them that met with +him. + +17:18 Then certain philosophers of the Epicureans, and of the Stoicks, +encountered him. And some said, What will this babbler say? other +some, He seemeth to be a setter forth of strange gods: because he +preached unto them Jesus, and the resurrection. + +17:19 And they took him, and brought him unto Areopagus, saying, May +we know what this new doctrine, whereof thou speakest, is? 17:20 For +thou bringest certain strange things to our ears: we would know +therefore what these things mean. + +17:21 (For all the Athenians and strangers which were there spent +their time in nothing else, but either to tell, or to hear some new +thing.) 17:22 Then Paul stood in the midst of Mars' hill, and said, +Ye men of Athens, I perceive that in all things ye are too +superstitious. + +17:23 For as I passed by, and beheld your devotions, I found an altar +with this inscription, TO THE UNKNOWN GOD. Whom therefore ye +ignorantly worship, him declare I unto you. + +17:24 God that made the world and all things therein, seeing that he +is Lord of heaven and earth, dwelleth not in temples made with hands; +17:25 Neither is worshipped with men's hands, as though he needed any +thing, seeing he giveth to all life, and breath, and all things; 17:26 +And hath made of one blood all nations of men for to dwell on all the +face of the earth, and hath determined the times before appointed, and +the bounds of their habitation; 17:27 That they should seek the Lord, +if haply they might feel after him, and find him, though he be not far +from every one of us: 17:28 For in him we live, and move, and have our +being; as certain also of your own poets have said, For we are also +his offspring. + +17:29 Forasmuch then as we are the offspring of God, we ought not to +think that the Godhead is like unto gold, or silver, or stone, graven +by art and man's device. + +17:30 And the times of this ignorance God winked at; but now +commandeth all men every where to repent: 17:31 Because he hath +appointed a day, in the which he will judge the world in righteousness +by that man whom he hath ordained; whereof he hath given assurance +unto all men, in that he hath raised him from the dead. + +17:32 And when they heard of the resurrection of the dead, some +mocked: and others said, We will hear thee again of this matter. + +17:33 So Paul departed from among them. + +17:34 Howbeit certain men clave unto him, and believed: among the +which was Dionysius the Areopagite, and a woman named Damaris, and +others with them. + +18:1 After these things Paul departed from Athens, and came to +Corinth; 18:2 And found a certain Jew named Aquila, born in Pontus, +lately come from Italy, with his wife Priscilla; (because that +Claudius had commanded all Jews to depart from Rome:) and came unto +them. + +18:3 And because he was of the same craft, he abode with them, and +wrought: for by their occupation they were tentmakers. + +18:4 And he reasoned in the synagogue every sabbath, and persuaded the +Jews and the Greeks. + +18:5 And when Silas and Timotheus were come from Macedonia, Paul was +pressed in the spirit, and testified to the Jews that Jesus was +Christ. + +18:6 And when they opposed themselves, and blasphemed, he shook his +raiment, and said unto them, Your blood be upon your own heads; I am +clean; from henceforth I will go unto the Gentiles. + +18:7 And he departed thence, and entered into a certain man's house, +named Justus, one that worshipped God, whose house joined hard to the +synagogue. + +18:8 And Crispus, the chief ruler of the synagogue, believed on the +Lord with all his house; and many of the Corinthians hearing believed, +and were baptized. + +18:9 Then spake the Lord to Paul in the night by a vision, Be not +afraid, but speak, and hold not thy peace: 18:10 For I am with thee, +and no man shall set on thee to hurt thee: for I have much people in +this city. + +18:11 And he continued there a year and six months, teaching the word +of God among them. + +18:12 And when Gallio was the deputy of Achaia, the Jews made +insurrection with one accord against Paul, and brought him to the +judgment seat, 18:13 Saying, This fellow persuadeth men to worship God +contrary to the law. + +18:14 And when Paul was now about to open his mouth, Gallio said unto +the Jews, If it were a matter of wrong or wicked lewdness, O ye Jews, +reason would that I should bear with you: 18:15 But if it be a +question of words and names, and of your law, look ye to it; for I +will be no judge of such matters. + +18:16 And he drave them from the judgment seat. + +18:17 Then all the Greeks took Sosthenes, the chief ruler of the +synagogue, and beat him before the judgment seat. And Gallio cared for +none of those things. + +18:18 And Paul after this tarried there yet a good while, and then +took his leave of the brethren, and sailed thence into Syria, and with +him Priscilla and Aquila; having shorn his head in Cenchrea: for he +had a vow. + +18:19 And he came to Ephesus, and left them there: but he himself +entered into the synagogue, and reasoned with the Jews. + +18:20 When they desired him to tarry longer time with them, he +consented not; 18:21 But bade them farewell, saying, I must by all +means keep this feast that cometh in Jerusalem: but I will return +again unto you, if God will. And he sailed from Ephesus. + +18:22 And when he had landed at Caesarea, and gone up, and saluted the +church, he went down to Antioch. + +18:23 And after he had spent some time there, he departed, and went +over all the country of Galatia and Phrygia in order, strengthening +all the disciples. + +18:24 And a certain Jew named Apollos, born at Alexandria, an eloquent +man, and mighty in the scriptures, came to Ephesus. + +18:25 This man was instructed in the way of the Lord; and being +fervent in the spirit, he spake and taught diligently the things of +the Lord, knowing only the baptism of John. + +18:26 And he began to speak boldly in the synagogue: whom when Aquila +and Priscilla had heard, they took him unto them, and expounded unto +him the way of God more perfectly. + +18:27 And when he was disposed to pass into Achaia, the brethren +wrote, exhorting the disciples to receive him: who, when he was come, +helped them much which had believed through grace: 18:28 For he +mightily convinced the Jews, and that publickly, shewing by the +scriptures that Jesus was Christ. + +19:1 And it came to pass, that, while Apollos was at Corinth, Paul +having passed through the upper coasts came to Ephesus: and finding +certain disciples, 19:2 He said unto them, Have ye received the Holy +Ghost since ye believed? And they said unto him, We have not so much +as heard whether there be any Holy Ghost. + +19:3 And he said unto them, Unto what then were ye baptized? And they +said, Unto John's baptism. + +19:4 Then said Paul, John verily baptized with the baptism of +repentance, saying unto the people, that they should believe on him +which should come after him, that is, on Christ Jesus. + +19:5 When they heard this, they were baptized in the name of the Lord +Jesus. + +19:6 And when Paul had laid his hands upon them, the Holy Ghost came +on them; and they spake with tongues, and prophesied. + +19:7 And all the men were about twelve. + +19:8 And he went into the synagogue, and spake boldly for the space of +three months, disputing and persuading the things concerning the +kingdom of God. + +19:9 But when divers were hardened, and believed not, but spake evil +of that way before the multitude, he departed from them, and separated +the disciples, disputing daily in the school of one Tyrannus. + +19:10 And this continued by the space of two years; so that all they +which dwelt in Asia heard the word of the Lord Jesus, both Jews and +Greeks. + +19:11 And God wrought special miracles by the hands of Paul: 19:12 So +that from his body were brought unto the sick handkerchiefs or aprons, +and the diseases departed from them, and the evil spirits went out of +them. + +19:13 Then certain of the vagabond Jews, exorcists, took upon them to +call over them which had evil spirits the name of the LORD Jesus, +saying, We adjure you by Jesus whom Paul preacheth. + +19:14 And there were seven sons of one Sceva, a Jew, and chief of the +priests, which did so. + +19:15 And the evil spirit answered and said, Jesus I know, and Paul I +know; but who are ye? 19:16 And the man in whom the evil spirit was +leaped on them, and overcame them, and prevailed against them, so that +they fled out of that house naked and wounded. + +19:17 And this was known to all the Jews and Greeks also dwelling at +Ephesus; and fear fell on them all, and the name of the Lord Jesus was +magnified. + +19:18 And many that believed came, and confessed, and shewed their +deeds. + +19:19 Many of them also which used curious arts brought their books +together, and burned them before all men: and they counted the price +of them, and found it fifty thousand pieces of silver. + +19:20 So mightily grew the word of God and prevailed. + +19:21 After these things were ended, Paul purposed in the spirit, when +he had passed through Macedonia and Achaia, to go to Jerusalem, +saying, After I have been there, I must also see Rome. + +19:22 So he sent into Macedonia two of them that ministered unto him, +Timotheus and Erastus; but he himself stayed in Asia for a season. + +19:23 And the same time there arose no small stir about that way. + +19:24 For a certain man named Demetrius, a silversmith, which made +silver shrines for Diana, brought no small gain unto the craftsmen; +19:25 Whom he called together with the workmen of like occupation, and +said, Sirs, ye know that by this craft we have our wealth. + +19:26 Moreover ye see and hear, that not alone at Ephesus, but almost +throughout all Asia, this Paul hath persuaded and turned away much +people, saying that they be no gods, which are made with hands: 19:27 +So that not only this our craft is in danger to be set at nought; but +also that the temple of the great goddess Diana should be despised, +and her magnificence should be destroyed, whom all Asia and the world +worshippeth. + +19:28 And when they heard these sayings, they were full of wrath, and +cried out, saying, Great is Diana of the Ephesians. + +19:29 And the whole city was filled with confusion: and having caught +Gaius and Aristarchus, men of Macedonia, Paul's companions in travel, +they rushed with one accord into the theatre. + +19:30 And when Paul would have entered in unto the people, the +disciples suffered him not. + +19:31 And certain of the chief of Asia, which were his friends, sent +unto him, desiring him that he would not adventure himself into the +theatre. + +19:32 Some therefore cried one thing, and some another: for the +assembly was confused: and the more part knew not wherefore they were +come together. + +19:33 And they drew Alexander out of the multitude, the Jews putting +him forward. And Alexander beckoned with the hand, and would have made +his defence unto the people. + +19:34 But when they knew that he was a Jew, all with one voice about +the space of two hours cried out, Great is Diana of the Ephesians. + +19:35 And when the townclerk had appeased the people, he said, Ye men +of Ephesus, what man is there that knoweth not how that the city of +the Ephesians is a worshipper of the great goddess Diana, and of the +image which fell down from Jupiter? 19:36 Seeing then that these +things cannot be spoken against, ye ought to be quiet, and to do +nothing rashly. + +19:37 For ye have brought hither these men, which are neither robbers +of churches, nor yet blasphemers of your goddess. + +19:38 Wherefore if Demetrius, and the craftsmen which are with him, +have a matter against any man, the law is open, and there are +deputies: let them implead one another. + +19:39 But if ye enquire any thing concerning other matters, it shall +be determined in a lawful assembly. + +19:40 For we are in danger to be called in question for this day's +uproar, there being no cause whereby we may give an account of this +concourse. + +19:41 And when he had thus spoken, he dismissed the assembly. + +20:1 And after the uproar was ceased, Paul called unto him the +disciples, and embraced them, and departed for to go into Macedonia. + +20:2 And when he had gone over those parts, and had given them much +exhortation, he came into Greece, 20:3 And there abode three months. +And when the Jews laid wait for him, as he was about to sail into +Syria, he purposed to return through Macedonia. + +20:4 And there accompanied him into Asia Sopater of Berea; and of the +Thessalonians, Aristarchus and Secundus; and Gaius of Derbe, and +Timotheus; and of Asia, Tychicus and Trophimus. + +20:5 These going before tarried for us at Troas. + +20:6 And we sailed away from Philippi after the days of unleavened +bread, and came unto them to Troas in five days; where we abode seven +days. + +20:7 And upon the first day of the week, when the disciples came +together to break bread, Paul preached unto them, ready to depart on +the morrow; and continued his speech until midnight. + +20:8 And there were many lights in the upper chamber, where they were +gathered together. + +20:9 And there sat in a window a certain young man named Eutychus, +being fallen into a deep sleep: and as Paul was long preaching, he +sunk down with sleep, and fell down from the third loft, and was taken +up dead. + +20:10 And Paul went down, and fell on him, and embracing him said, +Trouble not yourselves; for his life is in him. + +20:11 When he therefore was come up again, and had broken bread, and +eaten, and talked a long while, even till break of day, so he +departed. + +20:12 And they brought the young man alive, and were not a little +comforted. + +20:13 And we went before to ship, and sailed unto Assos, there +intending to take in Paul: for so had he appointed, minding himself to +go afoot. + +20:14 And when he met with us at Assos, we took him in, and came to +Mitylene. + +20:15 And we sailed thence, and came the next day over against Chios; +and the next day we arrived at Samos, and tarried at Trogyllium; and +the next day we came to Miletus. + +20:16 For Paul had determined to sail by Ephesus, because he would not +spend the time in Asia: for he hasted, if it were possible for him, to +be at Jerusalem the day of Pentecost. + +20:17 And from Miletus he sent to Ephesus, and called the elders of +the church. + +20:18 And when they were come to him, he said unto them, Ye know, from +the first day that I came into Asia, after what manner I have been +with you at all seasons, 20:19 Serving the LORD with all humility of +mind, and with many tears, and temptations, which befell me by the +lying in wait of the Jews: 20:20 And how I kept back nothing that was +profitable unto you, but have shewed you, and have taught you +publickly, and from house to house, 20:21 Testifying both to the Jews, +and also to the Greeks, repentance toward God, and faith toward our +Lord Jesus Christ. + +20:22 And now, behold, I go bound in the spirit unto Jerusalem, not +knowing the things that shall befall me there: 20:23 Save that the +Holy Ghost witnesseth in every city, saying that bonds and afflictions +abide me. + +20:24 But none of these things move me, neither count I my life dear +unto myself, so that I might finish my course with joy, and the +ministry, which I have received of the Lord Jesus, to testify the +gospel of the grace of God. + +20:25 And now, behold, I know that ye all, among whom I have gone +preaching the kingdom of God, shall see my face no more. + +20:26 Wherefore I take you to record this day, that I am pure from the +blood of all men. + +20:27 For I have not shunned to declare unto you all the counsel of +God. + +20:28 Take heed therefore unto yourselves, and to all the flock, over +the which the Holy Ghost hath made you overseers, to feed the church +of God, which he hath purchased with his own blood. + +20:29 For I know this, that after my departing shall grievous wolves +enter in among you, not sparing the flock. + +20:30 Also of your own selves shall men arise, speaking perverse +things, to draw away disciples after them. + +20:31 Therefore watch, and remember, that by the space of three years +I ceased not to warn every one night and day with tears. + +20:32 And now, brethren, I commend you to God, and to the word of his +grace, which is able to build you up, and to give you an inheritance +among all them which are sanctified. + +20:33 I have coveted no man's silver, or gold, or apparel. + +20:34 Yea, ye yourselves know, that these hands have ministered unto +my necessities, and to them that were with me. + +20:35 I have shewed you all things, how that so labouring ye ought to +support the weak, and to remember the words of the Lord Jesus, how he +said, It is more blessed to give than to receive. + +20:36 And when he had thus spoken, he kneeled down, and prayed with +them all. + +20:37 And they all wept sore, and fell on Paul's neck, and kissed him, +20:38 Sorrowing most of all for the words which he spake, that they +should see his face no more. And they accompanied him unto the ship. + +21:1 And it came to pass, that after we were gotten from them, and had +launched, we came with a straight course unto Coos, and the day +following unto Rhodes, and from thence unto Patara: 21:2 And finding a +ship sailing over unto Phenicia, we went aboard, and set forth. + +21:3 Now when we had discovered Cyprus, we left it on the left hand, +and sailed into Syria, and landed at Tyre: for there the ship was to +unlade her burden. + +21:4 And finding disciples, we tarried there seven days: who said to +Paul through the Spirit, that he should not go up to Jerusalem. + +21:5 And when we had accomplished those days, we departed and went our +way; and they all brought us on our way, with wives and children, till +we were out of the city: and we kneeled down on the shore, and prayed. + +21:6 And when we had taken our leave one of another, we took ship; and +they returned home again. + +21:7 And when we had finished our course from Tyre, we came to +Ptolemais, and saluted the brethren, and abode with them one day. + +21:8 And the next day we that were of Paul's company departed, and +came unto Caesarea: and we entered into the house of Philip the +evangelist, which was one of the seven; and abode with him. + +21:9 And the same man had four daughters, virgins, which did prophesy. + +21:10 And as we tarried there many days, there came down from Judaea a +certain prophet, named Agabus. + +21:11 And when he was come unto us, he took Paul's girdle, and bound +his own hands and feet, and said, Thus saith the Holy Ghost, So shall +the Jews at Jerusalem bind the man that owneth this girdle, and shall +deliver him into the hands of the Gentiles. + +21:12 And when we heard these things, both we, and they of that place, +besought him not to go up to Jerusalem. + +21:13 Then Paul answered, What mean ye to weep and to break mine +heart? for I am ready not to be bound only, but also to die at +Jerusalem for the name of the Lord Jesus. + +21:14 And when he would not be persuaded, we ceased, saying, The will +of the Lord be done. + +21:15 And after those days we took up our carriages, and went up to +Jerusalem. + +21:16 There went with us also certain of the disciples of Caesarea, +and brought with them one Mnason of Cyprus, an old disciple, with whom +we should lodge. + +21:17 And when we were come to Jerusalem, the brethren received us +gladly. + +21:18 And the day following Paul went in with us unto James; and all +the elders were present. + +21:19 And when he had saluted them, he declared particularly what +things God had wrought among the Gentiles by his ministry. + +21:20 And when they heard it, they glorified the Lord, and said unto +him, Thou seest, brother, how many thousands of Jews there are which +believe; and they are all zealous of the law: 21:21 And they are +informed of thee, that thou teachest all the Jews which are among the +Gentiles to forsake Moses, saying that they ought not to circumcise +their children, neither to walk after the customs. + +21:22 What is it therefore? the multitude must needs come together: +for they will hear that thou art come. + +21:23 Do therefore this that we say to thee: We have four men which +have a vow on them; 21:24 Them take, and purify thyself with them, and +be at charges with them, that they may shave their heads: and all may +know that those things, whereof they were informed concerning thee, +are nothing; but that thou thyself also walkest orderly, and keepest +the law. + +21:25 As touching the Gentiles which believe, we have written and +concluded that they observe no such thing, save only that they keep +themselves from things offered to idols, and from blood, and from +strangled, and from fornication. + +21:26 Then Paul took the men, and the next day purifying himself with +them entered into the temple, to signify the accomplishment of the +days of purification, until that an offering should be offered for +every one of them. + +21:27 And when the seven days were almost ended, the Jews which were +of Asia, when they saw him in the temple, stirred up all the people, +and laid hands on him, 21:28 Crying out, Men of Israel, help: This is +the man, that teacheth all men every where against the people, and the +law, and this place: and further brought Greeks also into the temple, +and hath polluted this holy place. + +21:29 (For they had seen before with him in the city Trophimus an +Ephesian, whom they supposed that Paul had brought into the temple.) +21:30 And all the city was moved, and the people ran together: and +they took Paul, and drew him out of the temple: and forthwith the +doors were shut. + +21:31 And as they went about to kill him, tidings came unto the chief +captain of the band, that all Jerusalem was in an uproar. + +21:32 Who immediately took soldiers and centurions, and ran down unto +them: and when they saw the chief captain and the soldiers, they left +beating of Paul. + +21:33 Then the chief captain came near, and took him, and commanded +him to be bound with two chains; and demanded who he was, and what he +had done. + +21:34 And some cried one thing, some another, among the multitude: and +when he could not know the certainty for the tumult, he commanded him +to be carried into the castle. + +21:35 And when he came upon the stairs, so it was, that he was borne +of the soldiers for the violence of the people. + +21:36 For the multitude of the people followed after, crying, Away +with him. + +21:37 And as Paul was to be led into the castle, he said unto the +chief captain, May I speak unto thee? Who said, Canst thou speak +Greek? 21:38 Art not thou that Egyptian, which before these days +madest an uproar, and leddest out into the wilderness four thousand +men that were murderers? 21:39 But Paul said, I am a man which am a +Jew of Tarsus, a city in Cilicia, a citizen of no mean city: and, I +beseech thee, suffer me to speak unto the people. + +21:40 And when he had given him licence, Paul stood on the stairs, and +beckoned with the hand unto the people. And when there was made a +great silence, he spake unto them in the Hebrew tongue, saying, 22:1 +Men, brethren, and fathers, hear ye my defence which I make now unto +you. + +22:2 (And when they heard that he spake in the Hebrew tongue to them, +they kept the more silence: and he saith,) 22:3 I am verily a man +which am a Jew, born in Tarsus, a city in Cilicia, yet brought up in +this city at the feet of Gamaliel, and taught according to the perfect +manner of the law of the fathers, and was zealous toward God, as ye +all are this day. + +22:4 And I persecuted this way unto the death, binding and delivering +into prisons both men and women. + +22:5 As also the high priest doth bear me witness, and all the estate +of the elders: from whom also I received letters unto the brethren, +and went to Damascus, to bring them which were there bound unto +Jerusalem, for to be punished. + +22:6 And it came to pass, that, as I made my journey, and was come +nigh unto Damascus about noon, suddenly there shone from heaven a +great light round about me. + +22:7 And I fell unto the ground, and heard a voice saying unto me, +Saul, Saul, why persecutest thou me? 22:8 And I answered, Who art +thou, Lord? And he said unto me, I am Jesus of Nazareth, whom thou +persecutest. + +22:9 And they that were with me saw indeed the light, and were afraid; +but they heard not the voice of him that spake to me. + +22:10 And I said, What shall I do, LORD? And the Lord said unto me, +Arise, and go into Damascus; and there it shall be told thee of all +things which are appointed for thee to do. + +22:11 And when I could not see for the glory of that light, being led +by the hand of them that were with me, I came into Damascus. + +22:12 And one Ananias, a devout man according to the law, having a +good report of all the Jews which dwelt there, 22:13 Came unto me, and +stood, and said unto me, Brother Saul, receive thy sight. And the same +hour I looked up upon him. + +22:14 And he said, The God of our fathers hath chosen thee, that thou +shouldest know his will, and see that Just One, and shouldest hear the +voice of his mouth. + +22:15 For thou shalt be his witness unto all men of what thou hast +seen and heard. + +22:16 And now why tarriest thou? arise, and be baptized, and wash away +thy sins, calling on the name of the Lord. + +22:17 And it came to pass, that, when I was come again to Jerusalem, +even while I prayed in the temple, I was in a trance; 22:18 And saw +him saying unto me, Make haste, and get thee quickly out of Jerusalem: +for they will not receive thy testimony concerning me. + +22:19 And I said, Lord, they know that I imprisoned and beat in every +synagogue them that believed on thee: 22:20 And when the blood of thy +martyr Stephen was shed, I also was standing by, and consenting unto +his death, and kept the raiment of them that slew him. + +22:21 And he said unto me, Depart: for I will send thee far hence unto +the Gentiles. + +22:22 And they gave him audience unto this word, and then lifted up +their voices, and said, Away with such a fellow from the earth: for it +is not fit that he should live. + +22:23 And as they cried out, and cast off their clothes, and threw +dust into the air, 22:24 The chief captain commanded him to be brought +into the castle, and bade that he should be examined by scourging; +that he might know wherefore they cried so against him. + +22:25 And as they bound him with thongs, Paul said unto the centurion +that stood by, Is it lawful for you to scourge a man that is a Roman, +and uncondemned? 22:26 When the centurion heard that, he went and +told the chief captain, saying, Take heed what thou doest: for this +man is a Roman. + +22:27 Then the chief captain came, and said unto him, Tell me, art +thou a Roman? He said, Yea. + +22:28 And the chief captain answered, With a great sum obtained I this +freedom. And Paul said, But I was free born. + +22:29 Then straightway they departed from him which should have +examined him: and the chief captain also was afraid, after he knew +that he was a Roman, and because he had bound him. + +22:30 On the morrow, because he would have known the certainty +wherefore he was accused of the Jews, he loosed him from his bands, +and commanded the chief priests and all their council to appear, and +brought Paul down, and set him before them. + +23:1 And Paul, earnestly beholding the council, said, Men and +brethren, I have lived in all good conscience before God until this +day. + +23:2 And the high priest Ananias commanded them that stood by him to +smite him on the mouth. + +23:3 Then said Paul unto him, God shall smite thee, thou whited wall: +for sittest thou to judge me after the law, and commandest me to be +smitten contrary to the law? 23:4 And they that stood by said, +Revilest thou God's high priest? 23:5 Then said Paul, I wist not, +brethren, that he was the high priest: for it is written, Thou shalt +not speak evil of the ruler of thy people. + +23:6 But when Paul perceived that the one part were Sadducees, and the +other Pharisees, he cried out in the council, Men and brethren, I am a +Pharisee, the son of a Pharisee: of the hope and resurrection of the +dead I am called in question. + +23:7 And when he had so said, there arose a dissension between the +Pharisees and the Sadducees: and the multitude was divided. + +23:8 For the Sadducees say that there is no resurrection, neither +angel, nor spirit: but the Pharisees confess both. + +23:9 And there arose a great cry: and the scribes that were of the +Pharisees' part arose, and strove, saying, We find no evil in this +man: but if a spirit or an angel hath spoken to him, let us not fight +against God. + +23:10 And when there arose a great dissension, the chief captain, +fearing lest Paul should have been pulled in pieces of them, commanded +the soldiers to go down, and to take him by force from among them, and +to bring him into the castle. + +23:11 And the night following the Lord stood by him, and said, Be of +good cheer, Paul: for as thou hast testified of me in Jerusalem, so +must thou bear witness also at Rome. + +23:12 And when it was day, certain of the Jews banded together, and +bound themselves under a curse, saying that they would neither eat nor +drink till they had killed Paul. + +23:13 And they were more than forty which had made this conspiracy. + +23:14 And they came to the chief priests and elders, and said, We have +bound ourselves under a great curse, that we will eat nothing until we +have slain Paul. + +23:15 Now therefore ye with the council signify to the chief captain +that he bring him down unto you to morrow, as though ye would enquire +something more perfectly concerning him: and we, or ever he come near, +are ready to kill him. + +23:16 And when Paul's sister's son heard of their lying in wait, he +went and entered into the castle, and told Paul. + +23:17 Then Paul called one of the centurions unto him, and said, Bring +this young man unto the chief captain: for he hath a certain thing to +tell him. + +23:18 So he took him, and brought him to the chief captain, and said, +Paul the prisoner called me unto him, and prayed me to bring this +young man unto thee, who hath something to say unto thee. + +23:19 Then the chief captain took him by the hand, and went with him +aside privately, and asked him, What is that thou hast to tell me? +23:20 And he said, The Jews have agreed to desire thee that thou +wouldest bring down Paul to morrow into the council, as though they +would enquire somewhat of him more perfectly. + +23:21 But do not thou yield unto them: for there lie in wait for him +of them more than forty men, which have bound themselves with an oath, +that they will neither eat nor drink till they have killed him: and +now are they ready, looking for a promise from thee. + +23:22 So the chief captain then let the young man depart, and charged +him, See thou tell no man that thou hast shewed these things to me. + +23:23 And he called unto him two centurions, saying, Make ready two +hundred soldiers to go to Caesarea, and horsemen threescore and ten, +and spearmen two hundred, at the third hour of the night; 23:24 And +provide them beasts, that they may set Paul on, and bring him safe +unto Felix the governor. + +23:25 And he wrote a letter after this manner: 23:26 Claudius Lysias +unto the most excellent governor Felix sendeth greeting. + +23:27 This man was taken of the Jews, and should have been killed of +them: then came I with an army, and rescued him, having understood +that he was a Roman. + +23:28 And when I would have known the cause wherefore they accused +him, I brought him forth into their council: 23:29 Whom I perceived to +be accused of questions of their law, but to have nothing laid to his +charge worthy of death or of bonds. + +23:30 And when it was told me how that the Jews laid wait for the man, +I sent straightway to thee, and gave commandment to his accusers also +to say before thee what they had against him. Farewell. + +23:31 Then the soldiers, as it was commanded them, took Paul, and +brought him by night to Antipatris. + +23:32 On the morrow they left the horsemen to go with him, and +returned to the castle: 23:33 Who, when they came to Caesarea and +delivered the epistle to the governor, presented Paul also before him. + +23:34 And when the governor had read the letter, he asked of what +province he was. And when he understood that he was of Cilicia; 23:35 +I will hear thee, said he, when thine accusers are also come. And he +commanded him to be kept in Herod's judgment hall. + +24:1 And after five days Ananias the high priest descended with the +elders, and with a certain orator named Tertullus, who informed the +governor against Paul. + +24:2 And when he was called forth, Tertullus began to accuse him, +saying, Seeing that by thee we enjoy great quietness, and that very +worthy deeds are done unto this nation by thy providence, 24:3 We +accept it always, and in all places, most noble Felix, with all +thankfulness. + +24:4 Notwithstanding, that I be not further tedious unto thee, I pray +thee that thou wouldest hear us of thy clemency a few words. + +24:5 For we have found this man a pestilent fellow, and a mover of +sedition among all the Jews throughout the world, and a ringleader of +the sect of the Nazarenes: 24:6 Who also hath gone about to profane +the temple: whom we took, and would have judged according to our law. + +24:7 But the chief captain Lysias came upon us, and with great +violence took him away out of our hands, 24:8 Commanding his accusers +to come unto thee: by examining of whom thyself mayest take knowledge +of all these things, whereof we accuse him. + +24:9 And the Jews also assented, saying that these things were so. + +24:10 Then Paul, after that the governor had beckoned unto him to +speak, answered, Forasmuch as I know that thou hast been of many years +a judge unto this nation, I do the more cheerfully answer for myself: +24:11 Because that thou mayest understand, that there are yet but +twelve days since I went up to Jerusalem for to worship. + +24:12 And they neither found me in the temple disputing with any man, +neither raising up the people, neither in the synagogues, nor in the +city: 24:13 Neither can they prove the things whereof they now accuse +me. + +24:14 But this I confess unto thee, that after the way which they call +heresy, so worship I the God of my fathers, believing all things which +are written in the law and in the prophets: 24:15 And have hope toward +God, which they themselves also allow, that there shall be a +resurrection of the dead, both of the just and unjust. + +24:16 And herein do I exercise myself, to have always a conscience +void to offence toward God, and toward men. + +24:17 Now after many years I came to bring alms to my nation, and +offerings. + +24:18 Whereupon certain Jews from Asia found me purified in the +temple, neither with multitude, nor with tumult. + +24:19 Who ought to have been here before thee, and object, if they had +ought against me. + +24:20 Or else let these same here say, if they have found any evil +doing in me, while I stood before the council, 24:21 Except it be for +this one voice, that I cried standing among them, Touching the +resurrection of the dead I am called in question by you this day. + +24:22 And when Felix heard these things, having more perfect knowledge +of that way, he deferred them, and said, When Lysias the chief captain +shall come down, I will know the uttermost of your matter. + +24:23 And he commanded a centurion to keep Paul, and to let him have +liberty, and that he should forbid none of his acquaintance to +minister or come unto him. + +24:24 And after certain days, when Felix came with his wife Drusilla, +which was a Jewess, he sent for Paul, and heard him concerning the +faith in Christ. + +24:25 And as he reasoned of righteousness, temperance, and judgment to +come, Felix trembled, and answered, Go thy way for this time; when I +have a convenient season, I will call for thee. + +24:26 He hoped also that money should have been given him of Paul, +that he might loose him: wherefore he sent for him the oftener, and +communed with him. + +24:27 But after two years Porcius Festus came into Felix' room: and +Felix, willing to shew the Jews a pleasure, left Paul bound. + +25:1 Now when Festus was come into the province, after three days he +ascended from Caesarea to Jerusalem. + +25:2 Then the high priest and the chief of the Jews informed him +against Paul, and besought him, 25:3 And desired favour against him, +that he would send for him to Jerusalem, laying wait in the way to +kill him. + +25:4 But Festus answered, that Paul should be kept at Caesarea, and +that he himself would depart shortly thither. + +25:5 Let them therefore, said he, which among you are able, go down +with me, and accuse this man, if there be any wickedness in him. + +25:6 And when he had tarried among them more than ten days, he went +down unto Caesarea; and the next day sitting on the judgment seat +commanded Paul to be brought. + +25:7 And when he was come, the Jews which came down from Jerusalem +stood round about, and laid many and grievous complaints against Paul, +which they could not prove. + +25:8 While he answered for himself, Neither against the law of the +Jews, neither against the temple, nor yet against Caesar, have I +offended any thing at all. + +25:9 But Festus, willing to do the Jews a pleasure, answered Paul, and +said, Wilt thou go up to Jerusalem, and there be judged of these +things before me? 25:10 Then said Paul, I stand at Caesar's judgment +seat, where I ought to be judged: to the Jews have I done no wrong, as +thou very well knowest. + +25:11 For if I be an offender, or have committed any thing worthy of +death, I refuse not to die: but if there be none of these things +whereof these accuse me, no man may deliver me unto them. I appeal +unto Caesar. + +25:12 Then Festus, when he had conferred with the council, answered, +Hast thou appealed unto Caesar? unto Caesar shalt thou go. + +25:13 And after certain days king Agrippa and Bernice came unto +Caesarea to salute Festus. + +25:14 And when they had been there many days, Festus declared Paul's +cause unto the king, saying, There is a certain man left in bonds by +Felix: 25:15 About whom, when I was at Jerusalem, the chief priests +and the elders of the Jews informed me, desiring to have judgment +against him. + +25:16 To whom I answered, It is not the manner of the Romans to +deliver any man to die, before that he which is accused have the +accusers face to face, and have licence to answer for himself +concerning the crime laid against him. + +25:17 Therefore, when they were come hither, without any delay on the +morrow I sat on the judgment seat, and commanded the man to be brought +forth. + +25:18 Against whom when the accusers stood up, they brought none +accusation of such things as I supposed: 25:19 But had certain +questions against him of their own superstition, and of one Jesus, +which was dead, whom Paul affirmed to be alive. + +25:20 And because I doubted of such manner of questions, I asked him +whether he would go to Jerusalem, and there be judged of these +matters. + +25:21 But when Paul had appealed to be reserved unto the hearing of +Augustus, I commanded him to be kept till I might send him to Caesar. + +25:22 Then Agrippa said unto Festus, I would also hear the man myself. +To morrow, said he, thou shalt hear him. + +25:23 And on the morrow, when Agrippa was come, and Bernice, with +great pomp, and was entered into the place of hearing, with the chief +captains, and principal men of the city, at Festus' commandment Paul +was brought forth. + +25:24 And Festus said, King Agrippa, and all men which are here +present with us, ye see this man, about whom all the multitude of the +Jews have dealt with me, both at Jerusalem, and also here, crying that +he ought not to live any longer. + +25:25 But when I found that he had committed nothing worthy of death, +and that he himself hath appealed to Augustus, I have determined to +send him. + +25:26 Of whom I have no certain thing to write unto my lord. Wherefore +I have brought him forth before you, and specially before thee, O king +Agrippa, that, after examination had, I might have somewhat to write. + +25:27 For it seemeth to me unreasonable to send a prisoner, and not +withal to signify the crimes laid against him. + +26:1 Then Agrippa said unto Paul, Thou art permitted to speak for +thyself. + +Then Paul stretched forth the hand, and answered for himself: 26:2 I +think myself happy, king Agrippa, because I shall answer for myself +this day before thee touching all the things whereof I am accused of +the Jews: 26:3 Especially because I know thee to be expert in all +customs and questions which are among the Jews: wherefore I beseech +thee to hear me patiently. + +26:4 My manner of life from my youth, which was at the first among +mine own nation at Jerusalem, know all the Jews; 26:5 Which knew me +from the beginning, if they would testify, that after the most +straitest sect of our religion I lived a Pharisee. + +26:6 And now I stand and am judged for the hope of the promise made of +God, unto our fathers: 26:7 Unto which promise our twelve tribes, +instantly serving God day and night, hope to come. For which hope's +sake, king Agrippa, I am accused of the Jews. + +26:8 Why should it be thought a thing incredible with you, that God +should raise the dead? 26:9 I verily thought with myself, that I +ought to do many things contrary to the name of Jesus of Nazareth. + +26:10 Which thing I also did in Jerusalem: and many of the saints did +I shut up in prison, having received authority from the chief priests; +and when they were put to death, I gave my voice against them. + +26:11 And I punished them oft in every synagogue, and compelled them +to blaspheme; and being exceedingly mad against them, I persecuted +them even unto strange cities. + +26:12 Whereupon as I went to Damascus with authority and commission +from the chief priests, 26:13 At midday, O king, I saw in the way a +light from heaven, above the brightness of the sun, shining round +about me and them which journeyed with me. + +26:14 And when we were all fallen to the earth, I heard a voice +speaking unto me, and saying in the Hebrew tongue, Saul, Saul, why +persecutest thou me? it is hard for thee to kick against the pricks. + +26:15 And I said, Who art thou, Lord? And he said, I am Jesus whom +thou persecutest. + +26:16 But rise, and stand upon thy feet: for I have appeared unto thee +for this purpose, to make thee a minister and a witness both of these +things which thou hast seen, and of those things in the which I will +appear unto thee; 26:17 Delivering thee from the people, and from the +Gentiles, unto whom now I send thee, 26:18 To open their eyes, and to +turn them from darkness to light, and from the power of Satan unto +God, that they may receive forgiveness of sins, and inheritance among +them which are sanctified by faith that is in me. + +26:19 Whereupon, O king Agrippa, I was not disobedient unto the +heavenly vision: 26:20 But shewed first unto them of Damascus, and at +Jerusalem, and throughout all the coasts of Judaea, and then to the +Gentiles, that they should repent and turn to God, and do works meet +for repentance. + +26:21 For these causes the Jews caught me in the temple, and went +about to kill me. + +26:22 Having therefore obtained help of God, I continue unto this day, +witnessing both to small and great, saying none other things than +those which the prophets and Moses did say should come: 26:23 That +Christ should suffer, and that he should be the first that should rise +from the dead, and should shew light unto the people, and to the +Gentiles. + +26:24 And as he thus spake for himself, Festus said with a loud voice, +Paul, thou art beside thyself; much learning doth make thee mad. + +26:25 But he said, I am not mad, most noble Festus; but speak forth +the words of truth and soberness. + +26:26 For the king knoweth of these things, before whom also I speak +freely: for I am persuaded that none of these things are hidden from +him; for this thing was not done in a corner. + +26:27 King Agrippa, believest thou the prophets? I know that thou +believest. + +26:28 Then Agrippa said unto Paul, Almost thou persuadest me to be a +Christian. + +26:29 And Paul said, I would to God, that not only thou, but also all +that hear me this day, were both almost, and altogether such as I am, +except these bonds. + +26:30 And when he had thus spoken, the king rose up, and the governor, +and Bernice, and they that sat with them: 26:31 And when they were +gone aside, they talked between themselves, saying, This man doeth +nothing worthy of death or of bonds. + +26:32 Then said Agrippa unto Festus, This man might have been set at +liberty, if he had not appealed unto Caesar. + +27:1 And when it was determined that we should sail into Italy, they +delivered Paul and certain other prisoners unto one named Julius, a +centurion of Augustus' band. + +27:2 And entering into a ship of Adramyttium, we launched, meaning to +sail by the coasts of Asia; one Aristarchus, a Macedonian of +Thessalonica, being with us. + +27:3 And the next day we touched at Sidon. And Julius courteously +entreated Paul, and gave him liberty to go unto his friends to refresh +himself. + +27:4 And when we had launched from thence, we sailed under Cyprus, +because the winds were contrary. + +27:5 And when we had sailed over the sea of Cilicia and Pamphylia, we +came to Myra, a city of Lycia. + +27:6 And there the centurion found a ship of Alexandria sailing into +Italy; and he put us therein. + +27:7 And when we had sailed slowly many days, and scarce were come +over against Cnidus, the wind not suffering us, we sailed under Crete, +over against Salmone; 27:8 And, hardly passing it, came unto a place +which is called The fair havens; nigh whereunto was the city of Lasea. + +27:9 Now when much time was spent, and when sailing was now dangerous, +because the fast was now already past, Paul admonished them, 27:10 And +said unto them, Sirs, I perceive that this voyage will be with hurt +and much damage, not only of the lading and ship, but also of our +lives. + +27:11 Nevertheless the centurion believed the master and the owner of +the ship, more than those things which were spoken by Paul. + +27:12 And because the haven was not commodious to winter in, the more +part advised to depart thence also, if by any means they might attain +to Phenice, and there to winter; which is an haven of Crete, and lieth +toward the south west and north west. + +27:13 And when the south wind blew softly, supposing that they had +obtained their purpose, loosing thence, they sailed close by Crete. + +27:14 But not long after there arose against it a tempestuous wind, +called Euroclydon. + +27:15 And when the ship was caught, and could not bear up into the +wind, we let her drive. + +27:16 And running under a certain island which is called Clauda, we +had much work to come by the boat: 27:17 Which when they had taken up, +they used helps, undergirding the ship; and, fearing lest they should +fall into the quicksands, strake sail, and so were driven. + +27:18 And we being exceedingly tossed with a tempest, the next day +they lightened the ship; 27:19 And the third day we cast out with our +own hands the tackling of the ship. + +27:20 And when neither sun nor stars in many days appeared, and no +small tempest lay on us, all hope that we should be saved was then +taken away. + +27:21 But after long abstinence Paul stood forth in the midst of them, +and said, Sirs, ye should have hearkened unto me, and not have loosed +from Crete, and to have gained this harm and loss. + +27:22 And now I exhort you to be of good cheer: for there shall be no +loss of any man's life among you, but of the ship. + +27:23 For there stood by me this night the angel of God, whose I am, +and whom I serve, 27:24 Saying, Fear not, Paul; thou must be brought +before Caesar: and, lo, God hath given thee all them that sail with +thee. + +27:25 Wherefore, sirs, be of good cheer: for I believe God, that it +shall be even as it was told me. + +27:26 Howbeit we must be cast upon a certain island. + +27:27 But when the fourteenth night was come, as we were driven up and +down in Adria, about midnight the shipmen deemed that they drew near +to some country; 27:28 And sounded, and found it twenty fathoms: and +when they had gone a little further, they sounded again, and found it +fifteen fathoms. + +27:29 Then fearing lest we should have fallen upon rocks, they cast +four anchors out of the stern, and wished for the day. + +27:30 And as the shipmen were about to flee out of the ship, when they +had let down the boat into the sea, under colour as though they would +have cast anchors out of the foreship, 27:31 Paul said to the +centurion and to the soldiers, Except these abide in the ship, ye +cannot be saved. + +27:32 Then the soldiers cut off the ropes of the boat, and let her +fall off. + +27:33 And while the day was coming on, Paul besought them all to take +meat, saying, This day is the fourteenth day that ye have tarried and +continued fasting, having taken nothing. + +27:34 Wherefore I pray you to take some meat: for this is for your +health: for there shall not an hair fall from the head of any of you. + +27:35 And when he had thus spoken, he took bread, and gave thanks to +God in presence of them all: and when he had broken it, he began to +eat. + +27:36 Then were they all of good cheer, and they also took some meat. + +27:37 And we were in all in the ship two hundred threescore and +sixteen souls. + +27:38 And when they had eaten enough, they lightened the ship, and +cast out the wheat into the sea. + +27:39 And when it was day, they knew not the land: but they discovered +a certain creek with a shore, into the which they were minded, if it +were possible, to thrust in the ship. + +27:40 And when they had taken up the anchors, they committed +themselves unto the sea, and loosed the rudder bands, and hoised up +the mainsail to the wind, and made toward shore. + +27:41 And falling into a place where two seas met, they ran the ship +aground; and the forepart stuck fast, and remained unmoveable, but the +hinder part was broken with the violence of the waves. + +27:42 And the soldiers' counsel was to kill the prisoners, lest any of +them should swim out, and escape. + +27:43 But the centurion, willing to save Paul, kept them from their +purpose; and commanded that they which could swim should cast +themselves first into the sea, and get to land: 27:44 And the rest, +some on boards, and some on broken pieces of the ship. + +And so it came to pass, that they escaped all safe to land. + +28:1 And when they were escaped, then they knew that the island was +called Melita. + +28:2 And the barbarous people shewed us no little kindness: for they +kindled a fire, and received us every one, because of the present +rain, and because of the cold. + +28:3 And when Paul had gathered a bundle of sticks, and laid them on +the fire, there came a viper out of the heat, and fastened on his +hand. + +28:4 And when the barbarians saw the venomous beast hang on his hand, +they said among themselves, No doubt this man is a murderer, whom, +though he hath escaped the sea, yet vengeance suffereth not to live. + +28:5 And he shook off the beast into the fire, and felt no harm. + +28:6 Howbeit they looked when he should have swollen, or fallen down +dead suddenly: but after they had looked a great while, and saw no +harm come to him, they changed their minds, and said that he was a +god. + +28:7 In the same quarters were possessions of the chief man of the +island, whose name was Publius; who received us, and lodged us three +days courteously. + +28:8 And it came to pass, that the father of Publius lay sick of a +fever and of a bloody flux: to whom Paul entered in, and prayed, and +laid his hands on him, and healed him. + +28:9 So when this was done, others also, which had diseases in the +island, came, and were healed: 28:10 Who also honoured us with many +honours; and when we departed, they laded us with such things as were +necessary. + +28:11 And after three months we departed in a ship of Alexandria, +which had wintered in the isle, whose sign was Castor and Pollux. + +28:12 And landing at Syracuse, we tarried there three days. + +28:13 And from thence we fetched a compass, and came to Rhegium: and +after one day the south wind blew, and we came the next day to +Puteoli: 28:14 Where we found brethren, and were desired to tarry with +them seven days: and so we went toward Rome. + +28:15 And from thence, when the brethren heard of us, they came to +meet us as far as Appii forum, and The three taverns: whom when Paul +saw, he thanked God, and took courage. + +28:16 And when we came to Rome, the centurion delivered the prisoners +to the captain of the guard: but Paul was suffered to dwell by himself +with a soldier that kept him. + +28:17 And it came to pass, that after three days Paul called the chief +of the Jews together: and when they were come together, he said unto +them, Men and brethren, though I have committed nothing against the +people, or customs of our fathers, yet was I delivered prisoner from +Jerusalem into the hands of the Romans. + +28:18 Who, when they had examined me, would have let me go, because +there was no cause of death in me. + +28:19 But when the Jews spake against it, I was constrained to appeal +unto Caesar; not that I had ought to accuse my nation of. + +28:20 For this cause therefore have I called for you, to see you, and +to speak with you: because that for the hope of Israel I am bound with +this chain. + +28:21 And they said unto him, We neither received letters out of +Judaea concerning thee, neither any of the brethren that came shewed +or spake any harm of thee. + +28:22 But we desire to hear of thee what thou thinkest: for as +concerning this sect, we know that every where it is spoken against. + +28:23 And when they had appointed him a day, there came many to him +into his lodging; to whom he expounded and testified the kingdom of +God, persuading them concerning Jesus, both out of the law of Moses, +and out of the prophets, from morning till evening. + +28:24 And some believed the things which were spoken, and some +believed not. + +28:25 And when they agreed not among themselves, they departed, after +that Paul had spoken one word, Well spake the Holy Ghost by Esaias the +prophet unto our fathers, 28:26 Saying, Go unto this people, and say, +Hearing ye shall hear, and shall not understand; and seeing ye shall +see, and not perceive: 28:27 For the heart of this people is waxed +gross, and their ears are dull of hearing, and their eyes have they +closed; lest they should see with their eyes, and hear with their +ears, and understand with their heart, and should be converted, and I +should heal them. + +28:28 Be it known therefore unto you, that the salvation of God is +sent unto the Gentiles, and that they will hear it. + +28:29 And when he had said these words, the Jews departed, and had +great reasoning among themselves. + +28:30 And Paul dwelt two whole years in his own hired house, and +received all that came in unto him, 28:31 Preaching the kingdom of +God, and teaching those things which concern the Lord Jesus Christ, +with all confidence, no man forbidding him. + + + + +The Epistle of Paul the Apostle to the Romans + + +1:1 Paul, a servant of Jesus Christ, called to be an apostle, +separated unto the gospel of God, 1:2 (Which he had promised afore by +his prophets in the holy scriptures,) 1:3 Concerning his Son Jesus +Christ our Lord, which was made of the seed of David according to the +flesh; 1:4 And declared to be the Son of God with power, according to +the spirit of holiness, by the resurrection from the dead: 1:5 By whom +we have received grace and apostleship, for obedience to the faith +among all nations, for his name: 1:6 Among whom are ye also the called +of Jesus Christ: 1:7 To all that be in Rome, beloved of God, called to +be saints: Grace to you and peace from God our Father, and the Lord +Jesus Christ. + +1:8 First, I thank my God through Jesus Christ for you all, that your +faith is spoken of throughout the whole world. + +1:9 For God is my witness, whom I serve with my spirit in the gospel +of his Son, that without ceasing I make mention of you always in my +prayers; 1:10 Making request, if by any means now at length I might +have a prosperous journey by the will of God to come unto you. + +1:11 For I long to see you, that I may impart unto you some spiritual +gift, to the end ye may be established; 1:12 That is, that I may be +comforted together with you by the mutual faith both of you and me. + +1:13 Now I would not have you ignorant, brethren, that oftentimes I +purposed to come unto you, (but was let hitherto,) that I might have +some fruit among you also, even as among other Gentiles. + +1:14 I am debtor both to the Greeks, and to the Barbarians; both to +the wise, and to the unwise. + +1:15 So, as much as in me is, I am ready to preach the gospel to you +that are at Rome also. + +1:16 For I am not ashamed of the gospel of Christ: for it is the power +of God unto salvation to every one that believeth; to the Jew first, +and also to the Greek. + +1:17 For therein is the righteousness of God revealed from faith to +faith: as it is written, The just shall live by faith. + +1:18 For the wrath of God is revealed from heaven against all +ungodliness and unrighteousness of men, who hold the truth in +unrighteousness; 1:19 Because that which may be known of God is +manifest in them; for God hath shewed it unto them. + +1:20 For the invisible things of him from the creation of the world +are clearly seen, being understood by the things that are made, even +his eternal power and Godhead; so that they are without excuse: 1:21 +Because that, when they knew God, they glorified him not as God, +neither were thankful; but became vain in their imaginations, and +their foolish heart was darkened. + +1:22 Professing themselves to be wise, they became fools, 1:23 And +changed the glory of the uncorruptible God into an image made like to +corruptible man, and to birds, and fourfooted beasts, and creeping +things. + +1:24 Wherefore God also gave them up to uncleanness through the lusts +of their own hearts, to dishonour their own bodies between themselves: +1:25 Who changed the truth of God into a lie, and worshipped and +served the creature more than the Creator, who is blessed for ever. +Amen. + +1:26 For this cause God gave them up unto vile affections: for even +their women did change the natural use into that which is against +nature: 1:27 And likewise also the men, leaving the natural use of the +woman, burned in their lust one toward another; men with men working +that which is unseemly, and receiving in themselves that recompence of +their error which was meet. + +1:28 And even as they did not like to retain God in their knowledge, +God gave them over to a reprobate mind, to do those things which are +not convenient; 1:29 Being filled with all unrighteousness, +fornication, wickedness, covetousness, maliciousness; full of envy, +murder, debate, deceit, malignity; whisperers, 1:30 Backbiters, haters +of God, despiteful, proud, boasters, inventors of evil things, +disobedient to parents, 1:31 Without understanding, covenantbreakers, +without natural affection, implacable, unmerciful: 1:32 Who knowing +the judgment of God, that they which commit such things are worthy of +death, not only do the same, but have pleasure in them that do them. + +2:1 Therefore thou art inexcusable, O man, whosoever thou art that +judgest: for wherein thou judgest another, thou condemnest thyself; +for thou that judgest doest the same things. + +2:2 But we are sure that the judgment of God is according to truth +against them which commit such things. + +2:3 And thinkest thou this, O man, that judgest them which do such +things, and doest the same, that thou shalt escape the judgment of +God? 2:4 Or despisest thou the riches of his goodness and forbearance +and longsuffering; not knowing that the goodness of God leadeth thee +to repentance? 2:5 But after thy hardness and impenitent heart +treasurest up unto thyself wrath against the day of wrath and +revelation of the righteous judgment of God; 2:6 Who will render to +every man according to his deeds: 2:7 To them who by patient +continuance in well doing seek for glory and honour and immortality, +eternal life: 2:8 But unto them that are contentious, and do not obey +the truth, but obey unrighteousness, indignation and wrath, 2:9 +Tribulation and anguish, upon every soul of man that doeth evil, of +the Jew first, and also of the Gentile; 2:10 But glory, honour, and +peace, to every man that worketh good, to the Jew first, and also to +the Gentile: 2:11 For there is no respect of persons with God. + +2:12 For as many as have sinned without law shall also perish without +law: and as many as have sinned in the law shall be judged by the law; +2:13 (For not the hearers of the law are just before God, but the +doers of the law shall be justified. + +2:14 For when the Gentiles, which have not the law, do by nature the +things contained in the law, these, having not the law, are a law unto +themselves: 2:15 Which shew the work of the law written in their +hearts, their conscience also bearing witness, and their thoughts the +mean while accusing or else excusing one another;) 2:16 In the day +when God shall judge the secrets of men by Jesus Christ according to +my gospel. + +2:17 Behold, thou art called a Jew, and restest in the law, and makest +thy boast of God, 2:18 And knowest his will, and approvest the things +that are more excellent, being instructed out of the law; 2:19 And art +confident that thou thyself art a guide of the blind, a light of them +which are in darkness, 2:20 An instructor of the foolish, a teacher of +babes, which hast the form of knowledge and of the truth in the law. + +2:21 Thou therefore which teachest another, teachest thou not thyself? +thou that preachest a man should not steal, dost thou steal? 2:22 +Thou that sayest a man should not commit adultery, dost thou commit +adultery? thou that abhorrest idols, dost thou commit sacrilege? 2:23 +Thou that makest thy boast of the law, through breaking the law +dishonourest thou God? 2:24 For the name of God is blasphemed among +the Gentiles through you, as it is written. + +2:25 For circumcision verily profiteth, if thou keep the law: but if +thou be a breaker of the law, thy circumcision is made uncircumcision. + +2:26 Therefore if the uncircumcision keep the righteousness of the +law, shall not his uncircumcision be counted for circumcision? 2:27 +And shall not uncircumcision which is by nature, if it fulfil the law, +judge thee, who by the letter and circumcision dost transgress the +law? 2:28 For he is not a Jew, which is one outwardly; neither is +that circumcision, which is outward in the flesh: 2:29 But he is a +Jew, which is one inwardly; and circumcision is that of the heart, in +the spirit, and not in the letter; whose praise is not of men, but of +God. + +3:1 What advantage then hath the Jew? or what profit is there of +circumcision? 3:2 Much every way: chiefly, because that unto them +were committed the oracles of God. + +3:3 For what if some did not believe? shall their unbelief make the +faith of God without effect? 3:4 God forbid: yea, let God be true, +but every man a liar; as it is written, That thou mightest be +justified in thy sayings, and mightest overcome when thou art judged. + +3:5 But if our unrighteousness commend the righteousness of God, what +shall we say? Is God unrighteous who taketh vengeance? (I speak as a +man) 3:6 God forbid: for then how shall God judge the world? 3:7 For +if the truth of God hath more abounded through my lie unto his glory; +why yet am I also judged as a sinner? 3:8 And not rather, (as we be +slanderously reported, and as some affirm that we say,) Let us do +evil, that good may come? whose damnation is just. + +3:9 What then? are we better than they? No, in no wise: for we have +before proved both Jews and Gentiles, that they are all under sin; +3:10 As it is written, There is none righteous, no, not one: 3:11 +There is none that understandeth, there is none that seeketh after +God. + +3:12 They are all gone out of the way, they are together become +unprofitable; there is none that doeth good, no, not one. + +3:13 Their throat is an open sepulchre; with their tongues they have +used deceit; the poison of asps is under their lips: 3:14 Whose mouth +is full of cursing and bitterness: 3:15 Their feet are swift to shed +blood: 3:16 Destruction and misery are in their ways: 3:17 And the way +of peace have they not known: 3:18 There is no fear of God before +their eyes. + +3:19 Now we know that what things soever the law saith, it saith to +them who are under the law: that every mouth may be stopped, and all +the world may become guilty before God. + +3:20 Therefore by the deeds of the law there shall no flesh be +justified in his sight: for by the law is the knowledge of sin. + +3:21 But now the righteousness of God without the law is manifested, +being witnessed by the law and the prophets; 3:22 Even the +righteousness of God which is by faith of Jesus Christ unto all and +upon all them that believe: for there is no difference: 3:23 For all +have sinned, and come short of the glory of God; 3:24 Being justified +freely by his grace through the redemption that is in Christ Jesus: +3:25 Whom God hath set forth to be a propitiation through faith in his +blood, to declare his righteousness for the remission of sins that are +past, through the forbearance of God; 3:26 To declare, I say, at this +time his righteousness: that he might be just, and the justifier of +him which believeth in Jesus. + +3:27 Where is boasting then? It is excluded. By what law? of works? +Nay: but by the law of faith. + +3:28 Therefore we conclude that a man is justified by faith without +the deeds of the law. + +3:29 Is he the God of the Jews only? is he not also of the Gentiles? +Yes, of the Gentiles also: 3:30 Seeing it is one God, which shall +justify the circumcision by faith, and uncircumcision through faith. + +3:31 Do we then make void the law through faith? God forbid: yea, we +establish the law. + +4:1 What shall we say then that Abraham our father, as pertaining to +the flesh, hath found? 4:2 For if Abraham were justified by works, he +hath whereof to glory; but not before God. + +4:3 For what saith the scripture? Abraham believed God, and it was +counted unto him for righteousness. + +4:4 Now to him that worketh is the reward not reckoned of grace, but +of debt. + +4:5 But to him that worketh not, but believeth on him that justifieth +the ungodly, his faith is counted for righteousness. + +4:6 Even as David also describeth the blessedness of the man, unto +whom God imputeth righteousness without works, 4:7 Saying, Blessed are +they whose iniquities are forgiven, and whose sins are covered. + +4:8 Blessed is the man to whom the Lord will not impute sin. + +4:9 Cometh this blessedness then upon the circumcision only, or upon +the uncircumcision also? for we say that faith was reckoned to Abraham +for righteousness. + +4:10 How was it then reckoned? when he was in circumcision, or in +uncircumcision? Not in circumcision, but in uncircumcision. + +4:11 And he received the sign of circumcision, a seal of the +righteousness of the faith which he had yet being uncircumcised: that +he might be the father of all them that believe, though they be not +circumcised; that righteousness might be imputed unto them also: 4:12 +And the father of circumcision to them who are not of the circumcision +only, but who also walk in the steps of that faith of our father +Abraham, which he had being yet uncircumcised. + +4:13 For the promise, that he should be the heir of the world, was not +to Abraham, or to his seed, through the law, but through the +righteousness of faith. + +4:14 For if they which are of the law be heirs, faith is made void, +and the promise made of none effect: 4:15 Because the law worketh +wrath: for where no law is, there is no transgression. + +4:16 Therefore it is of faith, that it might be by grace; to the end +the promise might be sure to all the seed; not to that only which is +of the law, but to that also which is of the faith of Abraham; who is +the father of us all, 4:17 (As it is written, I have made thee a +father of many nations,) before him whom he believed, even God, who +quickeneth the dead, and calleth those things which be not as though +they were. + +4:18 Who against hope believed in hope, that he might become the +father of many nations, according to that which was spoken, So shall +thy seed be. + +4:19 And being not weak in faith, he considered not his own body now +dead, when he was about an hundred years old, neither yet the deadness +of Sarah's womb: 4:20 He staggered not at the promise of God through +unbelief; but was strong in faith, giving glory to God; 4:21 And being +fully persuaded that, what he had promised, he was able also to +perform. + +4:22 And therefore it was imputed to him for righteousness. + +4:23 Now it was not written for his sake alone, that it was imputed to +him; 4:24 But for us also, to whom it shall be imputed, if we believe +on him that raised up Jesus our Lord from the dead; 4:25 Who was +delivered for our offences, and was raised again for our +justification. + +5:1 Therefore being justified by faith, we have peace with God through +our Lord Jesus Christ: 5:2 By whom also we have access by faith into +this grace wherein we stand, and rejoice in hope of the glory of God. + +5:3 And not only so, but we glory in tribulations also: knowing that +tribulation worketh patience; 5:4 And patience, experience; and +experience, hope: 5:5 And hope maketh not ashamed; because the love of +God is shed abroad in our hearts by the Holy Ghost which is given unto +us. + +5:6 For when we were yet without strength, in due time Christ died for +the ungodly. + +5:7 For scarcely for a righteous man will one die: yet peradventure +for a good man some would even dare to die. + +5:8 But God commendeth his love toward us, in that, while we were yet +sinners, Christ died for us. + +5:9 Much more then, being now justified by his blood, we shall be +saved from wrath through him. + +5:10 For if, when we were enemies, we were reconciled to God by the +death of his Son, much more, being reconciled, we shall be saved by +his life. + +5:11 And not only so, but we also joy in God through our Lord Jesus +Christ, by whom we have now received the atonement. + +5:12 Wherefore, as by one man sin entered into the world, and death by +sin; and so death passed upon all men, for that all have sinned: 5:13 +(For until the law sin was in the world: but sin is not imputed when +there is no law. + +5:14 Nevertheless death reigned from Adam to Moses, even over them +that had not sinned after the similitude of Adam's transgression, who +is the figure of him that was to come. + +5:15 But not as the offence, so also is the free gift. For if through +the offence of one many be dead, much more the grace of God, and the +gift by grace, which is by one man, Jesus Christ, hath abounded unto +many. + +5:16 And not as it was by one that sinned, so is the gift: for the +judgment was by one to condemnation, but the free gift is of many +offences unto justification. + +5:17 For if by one man's offence death reigned by one; much more they +which receive abundance of grace and of the gift of righteousness +shall reign in life by one, Jesus Christ.) 5:18 Therefore as by the +offence of one judgment came upon all men to condemnation; even so by +the righteousness of one the free gift came upon all men unto +justification of life. + +5:19 For as by one man's disobedience many were made sinners, so by +the obedience of one shall many be made righteous. + +5:20 Moreover the law entered, that the offence might abound. But +where sin abounded, grace did much more abound: 5:21 That as sin hath +reigned unto death, even so might grace reign through righteousness +unto eternal life by Jesus Christ our Lord. + +6:1 What shall we say then? Shall we continue in sin, that grace may +abound? 6:2 God forbid. How shall we, that are dead to sin, live any +longer therein? 6:3 Know ye not, that so many of us as were baptized +into Jesus Christ were baptized into his death? 6:4 Therefore we are +buried with him by baptism into death: that like as Christ was raised +up from the dead by the glory of the Father, even so we also should +walk in newness of life. + +6:5 For if we have been planted together in the likeness of his death, +we shall be also in the likeness of his resurrection: 6:6 Knowing +this, that our old man is crucified with him, that the body of sin +might be destroyed, that henceforth we should not serve sin. + +6:7 For he that is dead is freed from sin. + +6:8 Now if we be dead with Christ, we believe that we shall also live +with him: 6:9 Knowing that Christ being raised from the dead dieth no +more; death hath no more dominion over him. + +6:10 For in that he died, he died unto sin once: but in that he +liveth, he liveth unto God. + +6:11 Likewise reckon ye also yourselves to be dead indeed unto sin, +but alive unto God through Jesus Christ our Lord. + +6:12 Let not sin therefore reign in your mortal body, that ye should +obey it in the lusts thereof. + +6:13 Neither yield ye your members as instruments of unrighteousness +unto sin: but yield yourselves unto God, as those that are alive from +the dead, and your members as instruments of righteousness unto God. + +6:14 For sin shall not have dominion over you: for ye are not under +the law, but under grace. + +6:15 What then? shall we sin, because we are not under the law, but +under grace? God forbid. + +6:16 Know ye not, that to whom ye yield yourselves servants to obey, +his servants ye are to whom ye obey; whether of sin unto death, or of +obedience unto righteousness? 6:17 But God be thanked, that ye were +the servants of sin, but ye have obeyed from the heart that form of +doctrine which was delivered you. + +6:18 Being then made free from sin, ye became the servants of +righteousness. + +6:19 I speak after the manner of men because of the infirmity of your +flesh: for as ye have yielded your members servants to uncleanness and +to iniquity unto iniquity; even so now yield your members servants to +righteousness unto holiness. + +6:20 For when ye were the servants of sin, ye were free from +righteousness. + +6:21 What fruit had ye then in those things whereof ye are now +ashamed? for the end of those things is death. + +6:22 But now being made free from sin, and become servants to God, ye +have your fruit unto holiness, and the end everlasting life. + +6:23 For the wages of sin is death; but the gift of God is eternal +life through Jesus Christ our Lord. + +7:1 Know ye not, brethren, (for I speak to them that know the law,) +how that the law hath dominion over a man as long as he liveth? 7:2 +For the woman which hath an husband is bound by the law to her husband +so long as he liveth; but if the husband be dead, she is loosed from +the law of her husband. + +7:3 So then if, while her husband liveth, she be married to another +man, she shall be called an adulteress: but if her husband be dead, +she is free from that law; so that she is no adulteress, though she be +married to another man. + +7:4 Wherefore, my brethren, ye also are become dead to the law by the +body of Christ; that ye should be married to another, even to him who +is raised from the dead, that we should bring forth fruit unto God. + +7:5 For when we were in the flesh, the motions of sins, which were by +the law, did work in our members to bring forth fruit unto death. + +7:6 But now we are delivered from the law, that being dead wherein we +were held; that we should serve in newness of spirit, and not in the +oldness of the letter. + +7:7 What shall we say then? Is the law sin? God forbid. Nay, I had not +known sin, but by the law: for I had not known lust, except the law +had said, Thou shalt not covet. + +7:8 But sin, taking occasion by the commandment, wrought in me all +manner of concupiscence. For without the law sin was dead. + +7:9 For I was alive without the law once: but when the commandment +came, sin revived, and I died. + +7:10 And the commandment, which was ordained to life, I found to be +unto death. + +7:11 For sin, taking occasion by the commandment, deceived me, and by +it slew me. + +7:12 Wherefore the law is holy, and the commandment holy, and just, +and good. + +7:13 Was then that which is good made death unto me? God forbid. But +sin, that it might appear sin, working death in me by that which is +good; that sin by the commandment might become exceeding sinful. + +7:14 For we know that the law is spiritual: but I am carnal, sold +under sin. + +7:15 For that which I do I allow not: for what I would, that do I not; +but what I hate, that do I. + +7:16 If then I do that which I would not, I consent unto the law that +it is good. + +7:17 Now then it is no more I that do it, but sin that dwelleth in me. + +7:18 For I know that in me (that is, in my flesh,) dwelleth no good +thing: for to will is present with me; but how to perform that which +is good I find not. + +7:19 For the good that I would I do not: but the evil which I would +not, that I do. + +7:20 Now if I do that I would not, it is no more I that do it, but sin +that dwelleth in me. + +7:21 I find then a law, that, when I would do good, evil is present +with me. + +7:22 For I delight in the law of God after the inward man: 7:23 But I +see another law in my members, warring against the law of my mind, and +bringing me into captivity to the law of sin which is in my members. + +7:24 O wretched man that I am! who shall deliver me from the body of +this death? 7:25 I thank God through Jesus Christ our Lord. So then +with the mind I myself serve the law of God; but with the flesh the +law of sin. + +8:1 There is therefore now no condemnation to them which are in Christ +Jesus, who walk not after the flesh, but after the Spirit. + +8:2 For the law of the Spirit of life in Christ Jesus hath made me +free from the law of sin and death. + +8:3 For what the law could not do, in that it was weak through the +flesh, God sending his own Son in the likeness of sinful flesh, and +for sin, condemned sin in the flesh: 8:4 That the righteousness of the +law might be fulfilled in us, who walk not after the flesh, but after +the Spirit. + +8:5 For they that are after the flesh do mind the things of the flesh; +but they that are after the Spirit the things of the Spirit. + +8:6 For to be carnally minded is death; but to be spiritually minded +is life and peace. + +8:7 Because the carnal mind is enmity against God: for it is not +subject to the law of God, neither indeed can be. + +8:8 So then they that are in the flesh cannot please God. + +8:9 But ye are not in the flesh, but in the Spirit, if so be that the +Spirit of God dwell in you. Now if any man have not the Spirit of +Christ, he is none of his. + +8:10 And if Christ be in you, the body is dead because of sin; but the +Spirit is life because of righteousness. + +8:11 But if the Spirit of him that raised up Jesus from the dead dwell +in you, he that raised up Christ from the dead shall also quicken your +mortal bodies by his Spirit that dwelleth in you. + +8:12 Therefore, brethren, we are debtors, not to the flesh, to live +after the flesh. + +8:13 For if ye live after the flesh, ye shall die: but if ye through +the Spirit do mortify the deeds of the body, ye shall live. + +8:14 For as many as are led by the Spirit of God, they are the sons of +God. + +8:15 For ye have not received the spirit of bondage again to fear; but +ye have received the Spirit of adoption, whereby we cry, Abba, Father. + +8:16 The Spirit itself beareth witness with our spirit, that we are +the children of God: 8:17 And if children, then heirs; heirs of God, +and joint-heirs with Christ; if so be that we suffer with him, that we +may be also glorified together. + +8:18 For I reckon that the sufferings of this present time are not +worthy to be compared with the glory which shall be revealed in us. + +8:19 For the earnest expectation of the creature waiteth for the +manifestation of the sons of God. + +8:20 For the creature was made subject to vanity, not willingly, but +by reason of him who hath subjected the same in hope, 8:21 Because the +creature itself also shall be delivered from the bondage of corruption +into the glorious liberty of the children of God. + +8:22 For we know that the whole creation groaneth and travaileth in +pain together until now. + +8:23 And not only they, but ourselves also, which have the firstfruits +of the Spirit, even we ourselves groan within ourselves, waiting for +the adoption, to wit, the redemption of our body. + +8:24 For we are saved by hope: but hope that is seen is not hope: for +what a man seeth, why doth he yet hope for? 8:25 But if we hope for +that we see not, then do we with patience wait for it. + +8:26 Likewise the Spirit also helpeth our infirmities: for we know not +what we should pray for as we ought: but the Spirit itself maketh +intercession for us with groanings which cannot be uttered. + +8:27 And he that searcheth the hearts knoweth what is the mind of the +Spirit, because he maketh intercession for the saints according to the +will of God. + +8:28 And we know that all things work together for good to them that +love God, to them who are the called according to his purpose. + +8:29 For whom he did foreknow, he also did predestinate to be +conformed to the image of his Son, that he might be the firstborn +among many brethren. + +8:30 Moreover whom he did predestinate, them he also called: and whom +he called, them he also justified: and whom he justified, them he also +glorified. + +8:31 What shall we then say to these things? If God be for us, who can +be against us? 8:32 He that spared not his own Son, but delivered him +up for us all, how shall he not with him also freely give us all +things? 8:33 Who shall lay any thing to the charge of God's elect? It +is God that justifieth. + +8:34 Who is he that condemneth? It is Christ that died, yea rather, +that is risen again, who is even at the right hand of God, who also +maketh intercession for us. + +8:35 Who shall separate us from the love of Christ? shall tribulation, +or distress, or persecution, or famine, or nakedness, or peril, or +sword? 8:36 As it is written, For thy sake we are killed all the day +long; we are accounted as sheep for the slaughter. + +8:37 Nay, in all these things we are more than conquerors through him +that loved us. + +8:38 For I am persuaded, that neither death, nor life, nor angels, nor +principalities, nor powers, nor things present, nor things to come, +8:39 Nor height, nor depth, nor any other creature, shall be able to +separate us from the love of God, which is in Christ Jesus our Lord. + +9:1 I say the truth in Christ, I lie not, my conscience also bearing +me witness in the Holy Ghost, 9:2 That I have great heaviness and +continual sorrow in my heart. + +9:3 For I could wish that myself were accursed from Christ for my +brethren, my kinsmen according to the flesh: 9:4 Who are Israelites; +to whom pertaineth the adoption, and the glory, and the covenants, and +the giving of the law, and the service of God, and the promises; 9:5 +Whose are the fathers, and of whom as concerning the flesh Christ +came, who is over all, God blessed for ever. Amen. + +9:6 Not as though the word of God hath taken none effect. For they are +not all Israel, which are of Israel: 9:7 Neither, because they are the +seed of Abraham, are they all children: but, In Isaac shall thy seed +be called. + +9:8 That is, They which are the children of the flesh, these are not +the children of God: but the children of the promise are counted for +the seed. + +9:9 For this is the word of promise, At this time will I come, and +Sarah shall have a son. + +9:10 And not only this; but when Rebecca also had conceived by one, +even by our father Isaac; 9:11 (For the children being not yet born, +neither having done any good or evil, that the purpose of God +according to election might stand, not of works, but of him that +calleth;) 9:12 It was said unto her, The elder shall serve the +younger. + +9:13 As it is written, Jacob have I loved, but Esau have I hated. + +9:14 What shall we say then? Is there unrighteousness with God? God +forbid. + +9:15 For he saith to Moses, I will have mercy on whom I will have +mercy, and I will have compassion on whom I will have compassion. + +9:16 So then it is not of him that willeth, nor of him that runneth, +but of God that sheweth mercy. + +9:17 For the scripture saith unto Pharaoh, Even for this same purpose +have I raised thee up, that I might shew my power in thee, and that my +name might be declared throughout all the earth. + +9:18 Therefore hath he mercy on whom he will have mercy, and whom he +will he hardeneth. + +9:19 Thou wilt say then unto me, Why doth he yet find fault? For who +hath resisted his will? 9:20 Nay but, O man, who art thou that +repliest against God? Shall the thing formed say to him that formed +it, Why hast thou made me thus? 9:21 Hath not the potter power over +the clay, of the same lump to make one vessel unto honour, and another +unto dishonour? 9:22 What if God, willing to shew his wrath, and to +make his power known, endured with much longsuffering the vessels of +wrath fitted to destruction: 9:23 And that he might make known the +riches of his glory on the vessels of mercy, which he had afore +prepared unto glory, 9:24 Even us, whom he hath called, not of the +Jews only, but also of the Gentiles? 9:25 As he saith also in Osee, I +will call them my people, which were not my people; and her beloved, +which was not beloved. + +9:26 And it shall come to pass, that in the place where it was said +unto them, Ye are not my people; there shall they be called the +children of the living God. + +9:27 Esaias also crieth concerning Israel, Though the number of the +children of Israel be as the sand of the sea, a remnant shall be +saved: 9:28 For he will finish the work, and cut it short in +righteousness: because a short work will the Lord make upon the earth. + +9:29 And as Esaias said before, Except the Lord of Sabaoth had left us +a seed, we had been as Sodoma, and been made like unto Gomorrha. + +9:30 What shall we say then? That the Gentiles, which followed not +after righteousness, have attained to righteousness, even the +righteousness which is of faith. + +9:31 But Israel, which followed after the law of righteousness, hath +not attained to the law of righteousness. + +9:32 Wherefore? Because they sought it not by faith, but as it were by +the works of the law. For they stumbled at that stumblingstone; 9:33 +As it is written, Behold, I lay in Sion a stumblingstone and rock of +offence: and whosoever believeth on him shall not be ashamed. + +10:1 Brethren, my heart's desire and prayer to God for Israel is, that +they might be saved. + +10:2 For I bear them record that they have a zeal of God, but not +according to knowledge. + +10:3 For they being ignorant of God's righteousness, and going about +to establish their own righteousness, have not submitted themselves +unto the righteousness of God. + +10:4 For Christ is the end of the law for righteousness to every one +that believeth. + +10:5 For Moses describeth the righteousness which is of the law, That +the man which doeth those things shall live by them. + +10:6 But the righteousness which is of faith speaketh on this wise, +Say not in thine heart, Who shall ascend into heaven? (that is, to +bring Christ down from above:) 10:7 Or, Who shall descend into the +deep? (that is, to bring up Christ again from the dead.) 10:8 But +what saith it? The word is nigh thee, even in thy mouth, and in thy +heart: that is, the word of faith, which we preach; 10:9 That if thou +shalt confess with thy mouth the Lord Jesus, and shalt believe in +thine heart that God hath raised him from the dead, thou shalt be +saved. + +10:10 For with the heart man believeth unto righteousness; and with +the mouth confession is made unto salvation. + +10:11 For the scripture saith, Whosoever believeth on him shall not be +ashamed. + +10:12 For there is no difference between the Jew and the Greek: for +the same Lord over all is rich unto all that call upon him. + +10:13 For whosoever shall call upon the name of the Lord shall be +saved. + +10:14 How then shall they call on him in whom they have not believed? +and how shall they believe in him of whom they have not heard? and how +shall they hear without a preacher? 10:15 And how shall they preach, +except they be sent? as it is written, How beautiful are the feet of +them that preach the gospel of peace, and bring glad tidings of good +things! 10:16 But they have not all obeyed the gospel. For Esaias +saith, Lord, who hath believed our report? 10:17 So then faith cometh +by hearing, and hearing by the word of God. + +10:18 But I say, Have they not heard? Yes verily, their sound went +into all the earth, and their words unto the ends of the world. + +10:19 But I say, Did not Israel know? First Moses saith, I will +provoke you to jealousy by them that are no people, and by a foolish +nation I will anger you. + +10:20 But Esaias is very bold, and saith, I was found of them that +sought me not; I was made manifest unto them that asked not after me. + +10:21 But to Israel he saith, All day long I have stretched forth my +hands unto a disobedient and gainsaying people. + +11:1 I say then, Hath God cast away his people? God forbid. For I also +am an Israelite, of the seed of Abraham, of the tribe of Benjamin. + +11:2 God hath not cast away his people which he foreknew. Wot ye not +what the scripture saith of Elias? how he maketh intercession to God +against Israel saying, 11:3 Lord, they have killed thy prophets, and +digged down thine altars; and I am left alone, and they seek my life. + +11:4 But what saith the answer of God unto him? I have reserved to +myself seven thousand men, who have not bowed the knee to the image of +Baal. + +11:5 Even so then at this present time also there is a remnant +according to the election of grace. + +11:6 And if by grace, then is it no more of works: otherwise grace is +no more grace. But if it be of works, then it is no more grace: +otherwise work is no more work. + +11:7 What then? Israel hath not obtained that which he seeketh for; +but the election hath obtained it, and the rest were blinded. + +11:8 (According as it is written, God hath given them the spirit of +slumber, eyes that they should not see, and ears that they should not +hear;) unto this day. + +11:9 And David saith, Let their table be made a snare, and a trap, and +a stumblingblock, and a recompence unto them: 11:10 Let their eyes be +darkened, that they may not see, and bow down their back alway. + +11:11 I say then, Have they stumbled that they should fall? God +forbid: but rather through their fall salvation is come unto the +Gentiles, for to provoke them to jealousy. + +11:12 Now if the fall of them be the riches of the world, and the +diminishing of them the riches of the Gentiles; how much more their +fulness? 11:13 For I speak to you Gentiles, inasmuch as I am the +apostle of the Gentiles, I magnify mine office: 11:14 If by any means +I may provoke to emulation them which are my flesh, and might save +some of them. + +11:15 For if the casting away of them be the reconciling of the world, +what shall the receiving of them be, but life from the dead? 11:16 +For if the firstfruit be holy, the lump is also holy: and if the root +be holy, so are the branches. + +11:17 And if some of the branches be broken off, and thou, being a +wild olive tree, wert graffed in among them, and with them partakest +of the root and fatness of the olive tree; 11:18 Boast not against the +branches. But if thou boast, thou bearest not the root, but the root +thee. + +11:19 Thou wilt say then, The branches were broken off, that I might +be graffed in. + +11:20 Well; because of unbelief they were broken off, and thou +standest by faith. Be not highminded, but fear: 11:21 For if God +spared not the natural branches, take heed lest he also spare not +thee. + +11:22 Behold therefore the goodness and severity of God: on them which +fell, severity; but toward thee, goodness, if thou continue in his +goodness: otherwise thou also shalt be cut off. + +11:23 And they also, if they abide not still in unbelief, shall be +graffed in: for God is able to graff them in again. + +11:24 For if thou wert cut out of the olive tree which is wild by +nature, and wert graffed contrary to nature into a good olive tree: +how much more shall these, which be the natural branches, be graffed +into their own olive tree? 11:25 For I would not, brethren, that ye +should be ignorant of this mystery, lest ye should be wise in your own +conceits; that blindness in part is happened to Israel, until the +fulness of the Gentiles be come in. + +11:26 And so all Israel shall be saved: as it is written, There shall +come out of Sion the Deliverer, and shall turn away ungodliness from +Jacob: 11:27 For this is my covenant unto them, when I shall take away +their sins. + +11:28 As concerning the gospel, they are enemies for your sakes: but +as touching the election, they are beloved for the father's sakes. + +11:29 For the gifts and calling of God are without repentance. + +11:30 For as ye in times past have not believed God, yet have now +obtained mercy through their unbelief: 11:31 Even so have these also +now not believed, that through your mercy they also may obtain mercy. + +11:32 For God hath concluded them all in unbelief, that he might have +mercy upon all. + +11:33 O the depth of the riches both of the wisdom and knowledge of +God! how unsearchable are his judgments, and his ways past finding +out! 11:34 For who hath known the mind of the Lord? or who hath been +his counsellor? 11:35 Or who hath first given to him, and it shall be +recompensed unto him again? 11:36 For of him, and through him, and to +him, are all things: to whom be glory for ever. Amen. + +12:1 I beseech you therefore, brethren, by the mercies of God, that ye +present your bodies a living sacrifice, holy, acceptable unto God, +which is your reasonable service. + +12:2 And be not conformed to this world: but be ye transformed by the +renewing of your mind, that ye may prove what is that good, and +acceptable, and perfect, will of God. + +12:3 For I say, through the grace given unto me, to every man that is +among you, not to think of himself more highly than he ought to think; +but to think soberly, according as God hath dealt to every man the +measure of faith. + +12:4 For as we have many members in one body, and all members have not +the same office: 12:5 So we, being many, are one body in Christ, and +every one members one of another. + +12:6 Having then gifts differing according to the grace that is given +to us, whether prophecy, let us prophesy according to the proportion +of faith; 12:7 Or ministry, let us wait on our ministering: or he that +teacheth, on teaching; 12:8 Or he that exhorteth, on exhortation: he +that giveth, let him do it with simplicity; he that ruleth, with +diligence; he that sheweth mercy, with cheerfulness. + +12:9 Let love be without dissimulation. Abhor that which is evil; +cleave to that which is good. + +12:10 Be kindly affectioned one to another with brotherly love; in +honour preferring one another; 12:11 Not slothful in business; fervent +in spirit; serving the Lord; 12:12 Rejoicing in hope; patient in +tribulation; continuing instant in prayer; 12:13 Distributing to the +necessity of saints; given to hospitality. + +12:14 Bless them which persecute you: bless, and curse not. + +12:15 Rejoice with them that do rejoice, and weep with them that weep. + +12:16 Be of the same mind one toward another. Mind not high things, +but condescend to men of low estate. Be not wise in your own conceits. + +12:17 Recompense to no man evil for evil. Provide things honest in the +sight of all men. + +12:18 If it be possible, as much as lieth in you, live peaceably with +all men. + +12:19 Dearly beloved, avenge not yourselves, but rather give place +unto wrath: for it is written, Vengeance is mine; I will repay, saith +the Lord. + +12:20 Therefore if thine enemy hunger, feed him; if he thirst, give +him drink: for in so doing thou shalt heap coals of fire on his head. + +12:21 Be not overcome of evil, but overcome evil with good. + +13:1 Let every soul be subject unto the higher powers. For there is no +power but of God: the powers that be are ordained of God. + +13:2 Whosoever therefore resisteth the power, resisteth the ordinance +of God: and they that resist shall receive to themselves damnation. + +13:3 For rulers are not a terror to good works, but to the evil. Wilt +thou then not be afraid of the power? do that which is good, and thou +shalt have praise of the same: 13:4 For he is the minister of God to +thee for good. But if thou do that which is evil, be afraid; for he +beareth not the sword in vain: for he is the minister of God, a +revenger to execute wrath upon him that doeth evil. + +13:5 Wherefore ye must needs be subject, not only for wrath, but also +for conscience sake. + +13:6 For for this cause pay ye tribute also: for they are God's +ministers, attending continually upon this very thing. + +13:7 Render therefore to all their dues: tribute to whom tribute is +due; custom to whom custom; fear to whom fear; honour to whom honour. + +13:8 Owe no man any thing, but to love one another: for he that loveth +another hath fulfilled the law. + +13:9 For this, Thou shalt not commit adultery, Thou shalt not kill, +Thou shalt not steal, Thou shalt not bear false witness, Thou shalt +not covet; and if there be any other commandment, it is briefly +comprehended in this saying, namely, Thou shalt love thy neighbour as +thyself. + +13:10 Love worketh no ill to his neighbour: therefore love is the +fulfilling of the law. + +13:11 And that, knowing the time, that now it is high time to awake +out of sleep: for now is our salvation nearer than when we believed. + +13:12 The night is far spent, the day is at hand: let us therefore +cast off the works of darkness, and let us put on the armour of light. + +13:13 Let us walk honestly, as in the day; not in rioting and +drunkenness, not in chambering and wantonness, not in strife and +envying. + +13:14 But put ye on the Lord Jesus Christ, and make not provision for +the flesh, to fulfil the lusts thereof. + +14:1 Him that is weak in the faith receive ye, but not to doubtful +disputations. + +14:2 For one believeth that he may eat all things: another, who is +weak, eateth herbs. + +14:3 Let not him that eateth despise him that eateth not; and let not +him which eateth not judge him that eateth: for God hath received him. + +14:4 Who art thou that judgest another man's servant? to his own +master he standeth or falleth. Yea, he shall be holden up: for God is +able to make him stand. + +14:5 One man esteemeth one day above another: another esteemeth every +day alike. Let every man be fully persuaded in his own mind. + +14:6 He that regardeth the day, regardeth it unto the Lord; and he +that regardeth not the day, to the Lord he doth not regard it. He that +eateth, eateth to the Lord, for he giveth God thanks; and he that +eateth not, to the Lord he eateth not, and giveth God thanks. + +14:7 For none of us liveth to himself, and no man dieth to himself. + +14:8 For whether we live, we live unto the Lord; and whether we die, +we die unto the Lord: whether we live therefore, or die, we are the +Lord's. + +14:9 For to this end Christ both died, and rose, and revived, that he +might be Lord both of the dead and living. + +14:10 But why dost thou judge thy brother? or why dost thou set at +nought thy brother? for we shall all stand before the judgment seat of +Christ. + +14:11 For it is written, As I live, saith the Lord, every knee shall +bow to me, and every tongue shall confess to God. + +14:12 So then every one of us shall give account of himself to God. + +14:13 Let us not therefore judge one another any more: but judge this +rather, that no man put a stumblingblock or an occasion to fall in his +brother's way. + +14:14 I know, and am persuaded by the Lord Jesus, that there is +nothing unclean of itself: but to him that esteemeth any thing to be +unclean, to him it is unclean. + +14:15 But if thy brother be grieved with thy meat, now walkest thou +not charitably. Destroy not him with thy meat, for whom Christ died. + +14:16 Let not then your good be evil spoken of: 14:17 For the kingdom +of God is not meat and drink; but righteousness, and peace, and joy in +the Holy Ghost. + +14:18 For he that in these things serveth Christ is acceptable to God, +and approved of men. + +14:19 Let us therefore follow after the things which make for peace, +and things wherewith one may edify another. + +14:20 For meat destroy not the work of God. All things indeed are +pure; but it is evil for that man who eateth with offence. + +14:21 It is good neither to eat flesh, nor to drink wine, nor any +thing whereby thy brother stumbleth, or is offended, or is made weak. + +14:22 Hast thou faith? have it to thyself before God. Happy is he that +condemneth not himself in that thing which he alloweth. + +14:23 And he that doubteth is damned if he eat, because he eateth not +of faith: for whatsoever is not of faith is sin. + +15:1 We then that are strong ought to bear the infirmities of the +weak, and not to please ourselves. + +15:2 Let every one of us please his neighbour for his good to +edification. + +15:3 For even Christ pleased not himself; but, as it is written, The +reproaches of them that reproached thee fell on me. + +15:4 For whatsoever things were written aforetime were written for our +learning, that we through patience and comfort of the scriptures might +have hope. + +15:5 Now the God of patience and consolation grant you to be +likeminded one toward another according to Christ Jesus: 15:6 That ye +may with one mind and one mouth glorify God, even the Father of our +Lord Jesus Christ. + +15:7 Wherefore receive ye one another, as Christ also received us to +the glory of God. + +15:8 Now I say that Jesus Christ was a minister of the circumcision +for the truth of God, to confirm the promises made unto the fathers: +15:9 And that the Gentiles might glorify God for his mercy; as it is +written, For this cause I will confess to thee among the Gentiles, and +sing unto thy name. + +15:10 And again he saith, Rejoice, ye Gentiles, with his people. + +15:11 And again, Praise the Lord, all ye Gentiles; and laud him, all +ye people. + +15:12 And again, Esaias saith, There shall be a root of Jesse, and he +that shall rise to reign over the Gentiles; in him shall the Gentiles +trust. + +15:13 Now the God of hope fill you with all joy and peace in +believing, that ye may abound in hope, through the power of the Holy +Ghost. + +15:14 And I myself also am persuaded of you, my brethren, that ye also +are full of goodness, filled with all knowledge, able also to admonish +one another. + +15:15 Nevertheless, brethren, I have written the more boldly unto you +in some sort, as putting you in mind, because of the grace that is +given to me of God, 15:16 That I should be the minister of Jesus +Christ to the Gentiles, ministering the gospel of God, that the +offering up of the Gentiles might be acceptable, being sanctified by +the Holy Ghost. + +15:17 I have therefore whereof I may glory through Jesus Christ in +those things which pertain to God. + +15:18 For I will not dare to speak of any of those things which Christ +hath not wrought by me, to make the Gentiles obedient, by word and +deed, 15:19 Through mighty signs and wonders, by the power of the +Spirit of God; so that from Jerusalem, and round about unto Illyricum, +I have fully preached the gospel of Christ. + +15:20 Yea, so have I strived to preach the gospel, not where Christ +was named, lest I should build upon another man's foundation: 15:21 +But as it is written, To whom he was not spoken of, they shall see: +and they that have not heard shall understand. + +15:22 For which cause also I have been much hindered from coming to +you. + +15:23 But now having no more place in these parts, and having a great +desire these many years to come unto you; 15:24 Whensoever I take my +journey into Spain, I will come to you: for I trust to see you in my +journey, and to be brought on my way thitherward by you, if first I be +somewhat filled with your company. + +15:25 But now I go unto Jerusalem to minister unto the saints. + +15:26 For it hath pleased them of Macedonia and Achaia to make a +certain contribution for the poor saints which are at Jerusalem. + +15:27 It hath pleased them verily; and their debtors they are. For if +the Gentiles have been made partakers of their spiritual things, their +duty is also to minister unto them in carnal things. + +15:28 When therefore I have performed this, and have sealed to them +this fruit, I will come by you into Spain. + +15:29 And I am sure that, when I come unto you, I shall come in the +fulness of the blessing of the gospel of Christ. + +15:30 Now I beseech you, brethren, for the Lord Jesus Christ's sake, +and for the love of the Spirit, that ye strive together with me in +your prayers to God for me; 15:31 That I may be delivered from them +that do not believe in Judaea; and that my service which I have for +Jerusalem may be accepted of the saints; 15:32 That I may come unto +you with joy by the will of God, and may with you be refreshed. + +15:33 Now the God of peace be with you all. Amen. + +16:1 I commend unto you Phebe our sister, which is a servant of the +church which is at Cenchrea: 16:2 That ye receive her in the Lord, as +becometh saints, and that ye assist her in whatsoever business she +hath need of you: for she hath been a succourer of many, and of myself +also. + +16:3 Greet Priscilla and Aquila my helpers in Christ Jesus: 16:4 Who +have for my life laid down their own necks: unto whom not only I give +thanks, but also all the churches of the Gentiles. + +16:5 Likewise greet the church that is in their house. Salute my +well-beloved Epaenetus, who is the firstfruits of Achaia unto Christ. + +16:6 Greet Mary, who bestowed much labour on us. + +16:7 Salute Andronicus and Junia, my kinsmen, and my fellow-prisoners, +who are of note among the apostles, who also were in Christ before me. + +16:8 Greet Amplias my beloved in the Lord. + +16:9 Salute Urbane, our helper in Christ, and Stachys my beloved. + +16:10 Salute Apelles approved in Christ. Salute them which are of +Aristobulus' household. + +16:11 Salute Herodion my kinsman. Greet them that be of the household +of Narcissus, which are in the Lord. + +16:12 Salute Tryphena and Tryphosa, who labour in the Lord. Salute the +beloved Persis, which laboured much in the Lord. + +16:13 Salute Rufus chosen in the Lord, and his mother and mine. + +16:14 Salute Asyncritus, Phlegon, Hermas, Patrobas, Hermes, and the +brethren which are with them. + +16:15 Salute Philologus, and Julia, Nereus, and his sister, and +Olympas, and all the saints which are with them. + +16:16 Salute one another with an holy kiss. The churches of Christ +salute you. + +16:17 Now I beseech you, brethren, mark them which cause divisions and +offences contrary to the doctrine which ye have learned; and avoid +them. + +16:18 For they that are such serve not our Lord Jesus Christ, but +their own belly; and by good words and fair speeches deceive the +hearts of the simple. + +16:19 For your obedience is come abroad unto all men. I am glad +therefore on your behalf: but yet I would have you wise unto that +which is good, and simple concerning evil. + +16:20 And the God of peace shall bruise Satan under your feet shortly. +The grace of our Lord Jesus Christ be with you. Amen. + +16:21 Timotheus my workfellow, and Lucius, and Jason, and Sosipater, +my kinsmen, salute you. + +16:22 I Tertius, who wrote this epistle, salute you in the Lord. + +16:23 Gaius mine host, and of the whole church, saluteth you. Erastus +the chamberlain of the city saluteth you, and Quartus a brother. + +16:24 The grace of our Lord Jesus Christ be with you all. Amen. + +16:25 Now to him that is of power to stablish you according to my +gospel, and the preaching of Jesus Christ, according to the revelation +of the mystery, which was kept secret since the world began, 16:26 But +now is made manifest, and by the scriptures of the prophets, according +to the commandment of the everlasting God, made known to all nations +for the obedience of faith: 16:27 To God only wise, be glory through +Jesus Christ for ever. Amen. + + + +The First Epistle of Paul the Apostle to the Corinthians + + +1:1 Paul called to be an apostle of Jesus Christ through the will of +God, and Sosthenes our brother, 1:2 Unto the church of God which is at +Corinth, to them that are sanctified in Christ Jesus, called to be +saints, with all that in every place call upon the name of Jesus +Christ our Lord, both their's and our's: 1:3 Grace be unto you, and +peace, from God our Father, and from the Lord Jesus Christ. + +1:4 I thank my God always on your behalf, for the grace of God which +is given you by Jesus Christ; 1:5 That in every thing ye are enriched +by him, in all utterance, and in all knowledge; 1:6 Even as the +testimony of Christ was confirmed in you: 1:7 So that ye come behind +in no gift; waiting for the coming of our Lord Jesus Christ: 1:8 Who +shall also confirm you unto the end, that ye may be blameless in the +day of our Lord Jesus Christ. + +1:9 God is faithful, by whom ye were called unto the fellowship of his +Son Jesus Christ our Lord. + +1:10 Now I beseech you, brethren, by the name of our Lord Jesus +Christ, that ye all speak the same thing, and that there be no +divisions among you; but that ye be perfectly joined together in the +same mind and in the same judgment. + +1:11 For it hath been declared unto me of you, my brethren, by them +which are of the house of Chloe, that there are contentions among you. + +1:12 Now this I say, that every one of you saith, I am of Paul; and I +of Apollos; and I of Cephas; and I of Christ. + +1:13 Is Christ divided? was Paul crucified for you? or were ye +baptized in the name of Paul? 1:14 I thank God that I baptized none +of you, but Crispus and Gaius; 1:15 Lest any should say that I had +baptized in mine own name. + +1:16 And I baptized also the household of Stephanas: besides, I know +not whether I baptized any other. + +1:17 For Christ sent me not to baptize, but to preach the gospel: not +with wisdom of words, lest the cross of Christ should be made of none +effect. + +1:18 For the preaching of the cross is to them that perish +foolishness; but unto us which are saved it is the power of God. + +1:19 For it is written, I will destroy the wisdom of the wise, and +will bring to nothing the understanding of the prudent. + +1:20 Where is the wise? where is the scribe? where is the disputer of +this world? hath not God made foolish the wisdom of this world? 1:21 +For after that in the wisdom of God the world by wisdom knew not God, +it pleased God by the foolishness of preaching to save them that +believe. + +1:22 For the Jews require a sign, and the Greeks seek after wisdom: +1:23 But we preach Christ crucified, unto the Jews a stumblingblock, +and unto the Greeks foolishness; 1:24 But unto them which are called, +both Jews and Greeks, Christ the power of God, and the wisdom of God. + +1:25 Because the foolishness of God is wiser than men; and the +weakness of God is stronger than men. + +1:26 For ye see your calling, brethren, how that not many wise men +after the flesh, not many mighty, not many noble, are called: 1:27 But +God hath chosen the foolish things of the world to confound the wise; +and God hath chosen the weak things of the world to confound the +things which are mighty; 1:28 And base things of the world, and things +which are despised, hath God chosen, yea, and things which are not, to +bring to nought things that are: 1:29 That no flesh should glory in +his presence. + +1:30 But of him are ye in Christ Jesus, who of God is made unto us +wisdom, and righteousness, and sanctification, and redemption: 1:31 +That, according as it is written, He that glorieth, let him glory in +the Lord. + +2:1 And I, brethren, when I came to you, came not with excellency of +speech or of wisdom, declaring unto you the testimony of God. + +2:2 For I determined not to know any thing among you, save Jesus +Christ, and him crucified. + +2:3 And I was with you in weakness, and in fear, and in much +trembling. + +2:4 And my speech and my preaching was not with enticing words of +man's wisdom, but in demonstration of the Spirit and of power: 2:5 +That your faith should not stand in the wisdom of men, but in the +power of God. + +2:6 Howbeit we speak wisdom among them that are perfect: yet not the +wisdom of this world, nor of the princes of this world, that come to +nought: 2:7 But we speak the wisdom of God in a mystery, even the +hidden wisdom, which God ordained before the world unto our glory: 2:8 +Which none of the princes of this world knew: for had they known it, +they would not have crucified the Lord of glory. + +2:9 But as it is written, Eye hath not seen, nor ear heard, neither +have entered into the heart of man, the things which God hath prepared +for them that love him. + +2:10 But God hath revealed them unto us by his Spirit: for the Spirit +searcheth all things, yea, the deep things of God. + +2:11 For what man knoweth the things of a man, save the spirit of man +which is in him? even so the things of God knoweth no man, but the +Spirit of God. + +2:12 Now we have received, not the spirit of the world, but the spirit +which is of God; that we might know the things that are freely given +to us of God. + +2:13 Which things also we speak, not in the words which man's wisdom +teacheth, but which the Holy Ghost teacheth; comparing spiritual +things with spiritual. + +2:14 But the natural man receiveth not the things of the Spirit of +God: for they are foolishness unto him: neither can he know them, +because they are spiritually discerned. + +2:15 But he that is spiritual judgeth all things, yet he himself is +judged of no man. + +2:16 For who hath known the mind of the Lord, that he may instruct +him? But we have the mind of Christ. + +3:1 And I, brethren, could not speak unto you as unto spiritual, but +as unto carnal, even as unto babes in Christ. + +3:2 I have fed you with milk, and not with meat: for hitherto ye were +not able to bear it, neither yet now are ye able. + +3:3 For ye are yet carnal: for whereas there is among you envying, and +strife, and divisions, are ye not carnal, and walk as men? 3:4 For +while one saith, I am of Paul; and another, I am of Apollos; are ye +not carnal? 3:5 Who then is Paul, and who is Apollos, but ministers +by whom ye believed, even as the Lord gave to every man? 3:6 I have +planted, Apollos watered; but God gave the increase. + +3:7 So then neither is he that planteth any thing, neither he that +watereth; but God that giveth the increase. + +3:8 Now he that planteth and he that watereth are one: and every man +shall receive his own reward according to his own labour. + +3:9 For we are labourers together with God: ye are God's husbandry, ye +are God's building. + +3:10 According to the grace of God which is given unto me, as a wise +masterbuilder, I have laid the foundation, and another buildeth +thereon. But let every man take heed how he buildeth thereupon. + +3:11 For other foundation can no man lay than that is laid, which is +Jesus Christ. + +3:12 Now if any man build upon this foundation gold, silver, precious +stones, wood, hay, stubble; 3:13 Every man's work shall be made +manifest: for the day shall declare it, because it shall be revealed +by fire; and the fire shall try every man's work of what sort it is. + +3:14 If any man's work abide which he hath built thereupon, he shall +receive a reward. + +3:15 If any man's work shall be burned, he shall suffer loss: but he +himself shall be saved; yet so as by fire. + +3:16 Know ye not that ye are the temple of God, and that the Spirit of +God dwelleth in you? 3:17 If any man defile the temple of God, him +shall God destroy; for the temple of God is holy, which temple ye are. + +3:18 Let no man deceive himself. If any man among you seemeth to be +wise in this world, let him become a fool, that he may be wise. + +3:19 For the wisdom of this world is foolishness with God. For it is +written, He taketh the wise in their own craftiness. + +3:20 And again, The Lord knoweth the thoughts of the wise, that they +are vain. + +3:21 Therefore let no man glory in men. For all things are your's; +3:22 Whether Paul, or Apollos, or Cephas, or the world, or life, or +death, or things present, or things to come; all are your's; 3:23 And +ye are Christ's; and Christ is God's. + +4:1 Let a man so account of us, as of the ministers of Christ, and +stewards of the mysteries of God. + +4:2 Moreover it is required in stewards, that a man be found faithful. + +4:3 But with me it is a very small thing that I should be judged of +you, or of man's judgment: yea, I judge not mine own self. + +4:4 For I know nothing by myself; yet am I not hereby justified: but +he that judgeth me is the Lord. + +4:5 Therefore judge nothing before the time, until the Lord come, who +both will bring to light the hidden things of darkness, and will make +manifest the counsels of the hearts: and then shall every man have +praise of God. + +4:6 And these things, brethren, I have in a figure transferred to +myself and to Apollos for your sakes; that ye might learn in us not to +think of men above that which is written, that no one of you be puffed +up for one against another. + +4:7 For who maketh thee to differ from another? and what hast thou +that thou didst not receive? now if thou didst receive it, why dost +thou glory, as if thou hadst not received it? 4:8 Now ye are full, +now ye are rich, ye have reigned as kings without us: and I would to +God ye did reign, that we also might reign with you. + +4:9 For I think that God hath set forth us the apostles last, as it +were appointed to death: for we are made a spectacle unto the world, +and to angels, and to men. + +4:10 We are fools for Christ's sake, but ye are wise in Christ; we are +weak, but ye are strong; ye are honourable, but we are despised. + +4:11 Even unto this present hour we both hunger, and thirst, and are +naked, and are buffeted, and have no certain dwellingplace; 4:12 And +labour, working with our own hands: being reviled, we bless; being +persecuted, we suffer it: 4:13 Being defamed, we intreat: we are made +as the filth of the world, and are the offscouring of all things unto +this day. + +4:14 I write not these things to shame you, but as my beloved sons I +warn you. + +4:15 For though ye have ten thousand instructers in Christ, yet have +ye not many fathers: for in Christ Jesus I have begotten you through +the gospel. + +4:16 Wherefore I beseech you, be ye followers of me. + +4:17 For this cause have I sent unto you Timotheus, who is my beloved +son, and faithful in the Lord, who shall bring you into remembrance of +my ways which be in Christ, as I teach every where in every church. + +4:18 Now some are puffed up, as though I would not come to you. + +4:19 But I will come to you shortly, if the Lord will, and will know, +not the speech of them which are puffed up, but the power. + +4:20 For the kingdom of God is not in word, but in power. + +4:21 What will ye? shall I come unto you with a rod, or in love, and +in the spirit of meekness? 5:1 It is reported commonly that there is +fornication among you, and such fornication as is not so much as named +among the Gentiles, that one should have his father's wife. + +5:2 And ye are puffed up, and have not rather mourned, that he that +hath done this deed might be taken away from among you. + +5:3 For I verily, as absent in body, but present in spirit, have +judged already, as though I were present, concerning him that hath so +done this deed, 5:4 In the name of our Lord Jesus Christ, when ye are +gathered together, and my spirit, with the power of our Lord Jesus +Christ, 5:5 To deliver such an one unto Satan for the destruction of +the flesh, that the spirit may be saved in the day of the Lord Jesus. + +5:6 Your glorying is not good. Know ye not that a little leaven +leaveneth the whole lump? 5:7 Purge out therefore the old leaven, +that ye may be a new lump, as ye are unleavened. For even Christ our +passover is sacrificed for us: 5:8 Therefore let us keep the feast, +not with old leaven, neither with the leaven of malice and wickedness; +but with the unleavened bread of sincerity and truth. + +5:9 I wrote unto you in an epistle not to company with fornicators: +5:10 Yet not altogether with the fornicators of this world, or with +the covetous, or extortioners, or with idolaters; for then must ye +needs go out of the world. + +5:11 But now I have written unto you not to keep company, if any man +that is called a brother be a fornicator, or covetous, or an idolater, +or a railer, or a drunkard, or an extortioner; with such an one no not +to eat. + +5:12 For what have I to do to judge them also that are without? do not +ye judge them that are within? 5:13 But them that are without God +judgeth. Therefore put away from among yourselves that wicked person. + +6:1 Dare any of you, having a matter against another, go to law before +the unjust, and not before the saints? 6:2 Do ye not know that the +saints shall judge the world? and if the world shall be judged by you, +are ye unworthy to judge the smallest matters? 6:3 Know ye not that +we shall judge angels? how much more things that pertain to this life? +6:4 If then ye have judgments of things pertaining to this life, set +them to judge who are least esteemed in the church. + +6:5 I speak to your shame. Is it so, that there is not a wise man +among you? no, not one that shall be able to judge between his +brethren? 6:6 But brother goeth to law with brother, and that before +the unbelievers. + +6:7 Now therefore there is utterly a fault among you, because ye go to +law one with another. Why do ye not rather take wrong? why do ye not +rather suffer yourselves to be defrauded? 6:8 Nay, ye do wrong, and +defraud, and that your brethren. + +6:9 Know ye not that the unrighteous shall not inherit the kingdom of +God? Be not deceived: neither fornicators, nor idolaters, nor +adulterers, nor effeminate, nor abusers of themselves with mankind, +6:10 Nor thieves, nor covetous, nor drunkards, nor revilers, nor +extortioners, shall inherit the kingdom of God. + +6:11 And such were some of you: but ye are washed, but ye are +sanctified, but ye are justified in the name of the Lord Jesus, and by +the Spirit of our God. + +6:12 All things are lawful unto me, but all things are not expedient: +all things are lawful for me, but I will not be brought under the +power of any. + +6:13 Meats for the belly, and the belly for meats: but God shall +destroy both it and them. Now the body is not for fornication, but for +the Lord; and the Lord for the body. + +6:14 And God hath both raised up the Lord, and will also raise up us +by his own power. + +6:15 Know ye not that your bodies are the members of Christ? shall I +then take the members of Christ, and make them the members of an +harlot? God forbid. + +6:16 What? know ye not that he which is joined to an harlot is one +body? for two, saith he, shall be one flesh. + +6:17 But he that is joined unto the Lord is one spirit. + +6:18 Flee fornication. Every sin that a man doeth is without the body; +but he that committeth fornication sinneth against his own body. + +6:19 What? know ye not that your body is the temple of the Holy Ghost +which is in you, which ye have of God, and ye are not your own? 6:20 +For ye are bought with a price: therefore glorify God in your body, +and in your spirit, which are God's. + +7:1 Now concerning the things whereof ye wrote unto me: It is good for +a man not to touch a woman. + +7:2 Nevertheless, to avoid fornication, let every man have his own +wife, and let every woman have her own husband. + +7:3 Let the husband render unto the wife due benevolence: and likewise +also the wife unto the husband. + +7:4 The wife hath not power of her own body, but the husband: and +likewise also the husband hath not power of his own body, but the +wife. + +7:5 Defraud ye not one the other, except it be with consent for a +time, that ye may give yourselves to fasting and prayer; and come +together again, that Satan tempt you not for your incontinency. + +7:6 But I speak this by permission, and not of commandment. + +7:7 For I would that all men were even as I myself. But every man hath +his proper gift of God, one after this manner, and another after that. + +7:8 I say therefore to the unmarried and widows, It is good for them +if they abide even as I. + +7:9 But if they cannot contain, let them marry: for it is better to +marry than to burn. + +7:10 And unto the married I command, yet not I, but the Lord, Let not +the wife depart from her husband: 7:11 But and if she depart, let her +remain unmarried or be reconciled to her husband: and let not the +husband put away his wife. + +7:12 But to the rest speak I, not the Lord: If any brother hath a wife +that believeth not, and she be pleased to dwell with him, let him not +put her away. + +7:13 And the woman which hath an husband that believeth not, and if he +be pleased to dwell with her, let her not leave him. + +7:14 For the unbelieving husband is sanctified by the wife, and the +unbelieving wife is sanctified by the husband: else were your children +unclean; but now are they holy. + +7:15 But if the unbelieving depart, let him depart. A brother or a +sister is not under bondage in such cases: but God hath called us to +peace. + +7:16 For what knowest thou, O wife, whether thou shalt save thy +husband? or how knowest thou, O man, whether thou shalt save thy +wife? 7:17 But as God hath distributed to every man, as the Lord hath +called every one, so let him walk. And so ordain I in all churches. + +7:18 Is any man called being circumcised? let him not become +uncircumcised. Is any called in uncircumcision? let him not be +circumcised. + +7:19 Circumcision is nothing, and uncircumcision is nothing, but the +keeping of the commandments of God. + +7:20 Let every man abide in the same calling wherein he was called. + +7:21 Art thou called being a servant? care not for it: but if thou +mayest be made free, use it rather. + +7:22 For he that is called in the Lord, being a servant, is the Lord's +freeman: likewise also he that is called, being free, is Christ's +servant. + +7:23 Ye are bought with a price; be not ye the servants of men. + +7:24 Brethren, let every man, wherein he is called, therein abide with +God. + +7:25 Now concerning virgins I have no commandment of the Lord: yet I +give my judgment, as one that hath obtained mercy of the Lord to be +faithful. + +7:26 I suppose therefore that this is good for the present distress, I +say, that it is good for a man so to be. + +7:27 Art thou bound unto a wife? seek not to be loosed. Art thou +loosed from a wife? seek not a wife. + +7:28 But and if thou marry, thou hast not sinned; and if a virgin +marry, she hath not sinned. Nevertheless such shall have trouble in +the flesh: but I spare you. + +7:29 But this I say, brethren, the time is short: it remaineth, that +both they that have wives be as though they had none; 7:30 And they +that weep, as though they wept not; and they that rejoice, as though +they rejoiced not; and they that buy, as though they possessed not; +7:31 And they that use this world, as not abusing it: for the fashion +of this world passeth away. + +7:32 But I would have you without carefulness. He that is unmarried +careth for the things that belong to the Lord, how he may please the +Lord: 7:33 But he that is married careth for the things that are of +the world, how he may please his wife. + +7:34 There is difference also between a wife and a virgin. The +unmarried woman careth for the things of the Lord, that she may be +holy both in body and in spirit: but she that is married careth for +the things of the world, how she may please her husband. + +7:35 And this I speak for your own profit; not that I may cast a snare +upon you, but for that which is comely, and that ye may attend upon +the Lord without distraction. + +7:36 But if any man think that he behaveth himself uncomely toward his +virgin, if she pass the flower of her age, and need so require, let +him do what he will, he sinneth not: let them marry. + +7:37 Nevertheless he that standeth stedfast in his heart, having no +necessity, but hath power over his own will, and hath so decreed in +his heart that he will keep his virgin, doeth well. + +7:38 So then he that giveth her in marriage doeth well; but he that +giveth her not in marriage doeth better. + +7:39 The wife is bound by the law as long as her husband liveth; but +if her husband be dead, she is at liberty to be married to whom she +will; only in the Lord. + +7:40 But she is happier if she so abide, after my judgment: and I +think also that I have the Spirit of God. + +8:1 Now as touching things offered unto idols, we know that we all +have knowledge. Knowledge puffeth up, but charity edifieth. + +8:2 And if any man think that he knoweth any thing, he knoweth nothing +yet as he ought to know. + +8:3 But if any man love God, the same is known of him. + +8:4 As concerning therefore the eating of those things that are +offered in sacrifice unto idols, we know that an idol is nothing in +the world, and that there is none other God but one. + +8:5 For though there be that are called gods, whether in heaven or in +earth, (as there be gods many, and lords many,) 8:6 But to us there is +but one God, the Father, of whom are all things, and we in him; and +one Lord Jesus Christ, by whom are all things, and we by him. + +8:7 Howbeit there is not in every man that knowledge: for some with +conscience of the idol unto this hour eat it as a thing offered unto +an idol; and their conscience being weak is defiled. + +8:8 But meat commendeth us not to God: for neither, if we eat, are we +the better; neither, if we eat not, are we the worse. + +8:9 But take heed lest by any means this liberty of your's become a +stumblingblock to them that are weak. + +8:10 For if any man see thee which hast knowledge sit at meat in the +idol's temple, shall not the conscience of him which is weak be +emboldened to eat those things which are offered to idols; 8:11 And +through thy knowledge shall the weak brother perish, for whom Christ +died? 8:12 But when ye sin so against the brethren, and wound their +weak conscience, ye sin against Christ. + +8:13 Wherefore, if meat make my brother to offend, I will eat no flesh +while the world standeth, lest I make my brother to offend. + +9:1 Am I not an apostle? am I not free? have I not seen Jesus Christ +our Lord? are not ye my work in the Lord? 9:2 If I be not an apostle +unto others, yet doubtless I am to you: for the seal of mine +apostleship are ye in the Lord. + +9:3 Mine answer to them that do examine me is this, 9:4 Have we not +power to eat and to drink? 9:5 Have we not power to lead about a +sister, a wife, as well as other apostles, and as the brethren of the +Lord, and Cephas? 9:6 Or I only and Barnabas, have not we power to +forbear working? 9:7 Who goeth a warfare any time at his own charges? +who planteth a vineyard, and eateth not of the fruit thereof? or who +feedeth a flock, and eateth not of the milk of the flock? 9:8 Say I +these things as a man? or saith not the law the same also? 9:9 For it +is written in the law of Moses, Thou shalt not muzzle the mouth of the +ox that treadeth out the corn. Doth God take care for oxen? 9:10 Or +saith he it altogether for our sakes? For our sakes, no doubt, this is +written: that he that ploweth should plow in hope; and that he that +thresheth in hope should be partaker of his hope. + +9:11 If we have sown unto you spiritual things, is it a great thing if +we shall reap your carnal things? 9:12 If others be partakers of this +power over you, are not we rather? Nevertheless we have not used this +power; but suffer all things, lest we should hinder the gospel of +Christ. + +9:13 Do ye not know that they which minister about holy things live of +the things of the temple? and they which wait at the altar are +partakers with the altar? 9:14 Even so hath the Lord ordained that +they which preach the gospel should live of the gospel. + +9:15 But I have used none of these things: neither have I written +these things, that it should be so done unto me: for it were better +for me to die, than that any man should make my glorying void. + +9:16 For though I preach the gospel, I have nothing to glory of: for +necessity is laid upon me; yea, woe is unto me, if I preach not the +gospel! 9:17 For if I do this thing willingly, I have a reward: but +if against my will, a dispensation of the gospel is committed unto me. + +9:18 What is my reward then? Verily that, when I preach the gospel, I +may make the gospel of Christ without charge, that I abuse not my +power in the gospel. + +9:19 For though I be free from all men, yet have I made myself servant +unto all, that I might gain the more. + +9:20 And unto the Jews I became as a Jew, that I might gain the Jews; +to them that are under the law, as under the law, that I might gain +them that are under the law; 9:21 To them that are without law, as +without law, (being not without law to God, but under the law to +Christ,) that I might gain them that are without law. + +9:22 To the weak became I as weak, that I might gain the weak: I am +made all things to all men, that I might by all means save some. + +9:23 And this I do for the gospel's sake, that I might be partaker +thereof with you. + +9:24 Know ye not that they which run in a race run all, but one +receiveth the prize? So run, that ye may obtain. + +9:25 And every man that striveth for the mastery is temperate in all +things. Now they do it to obtain a corruptible crown; but we an +incorruptible. + +9:26 I therefore so run, not as uncertainly; so fight I, not as one +that beateth the air: 9:27 But I keep under my body, and bring it into +subjection: lest that by any means, when I have preached to others, I +myself should be a castaway. + +10:1 Moreover, brethren, I would not that ye should be ignorant, how +that all our fathers were under the cloud, and all passed through the +sea; 10:2 And were all baptized unto Moses in the cloud and in the +sea; 10:3 And did all eat the same spiritual meat; 10:4 And did all +drink the same spiritual drink: for they drank of that spiritual Rock +that followed them: and that Rock was Christ. + +10:5 But with many of them God was not well pleased: for they were +overthrown in the wilderness. + +10:6 Now these things were our examples, to the intent we should not +lust after evil things, as they also lusted. + +10:7 Neither be ye idolaters, as were some of them; as it is written, +The people sat down to eat and drink, and rose up to play. + +10:8 Neither let us commit fornication, as some of them committed, and +fell in one day three and twenty thousand. + +10:9 Neither let us tempt Christ, as some of them also tempted, and +were destroyed of serpents. + +10:10 Neither murmur ye, as some of them also murmured, and were +destroyed of the destroyer. + +10:11 Now all these things happened unto them for ensamples: and they +are written for our admonition, upon whom the ends of the world are +come. + +10:12 Wherefore let him that thinketh he standeth take heed lest he +fall. + +10:13 There hath no temptation taken you but such as is common to man: +but God is faithful, who will not suffer you to be tempted above that +ye are able; but will with the temptation also make a way to escape, +that ye may be able to bear it. + +10:14 Wherefore, my dearly beloved, flee from idolatry. + +10:15 I speak as to wise men; judge ye what I say. + +10:16 The cup of blessing which we bless, is it not the communion of +the blood of Christ? The bread which we break, is it not the communion +of the body of Christ? 10:17 For we being many are one bread, and one +body: for we are all partakers of that one bread. + +10:18 Behold Israel after the flesh: are not they which eat of the +sacrifices partakers of the altar? 10:19 What say I then? that the +idol is any thing, or that which is offered in sacrifice to idols is +any thing? 10:20 But I say, that the things which the Gentiles +sacrifice, they sacrifice to devils, and not to God: and I would not +that ye should have fellowship with devils. + +10:21 Ye cannot drink the cup of the Lord, and the cup of devils: ye +cannot be partakers of the Lord's table, and of the table of devils. + +10:22 Do we provoke the Lord to jealousy? are we stronger than he? +10:23 All things are lawful for me, but all things are not expedient: +all things are lawful for me, but all things edify not. + +10:24 Let no man seek his own, but every man another's wealth. + +10:25 Whatsoever is sold in the shambles, that eat, asking no question +for conscience sake: 10:26 For the earth is the Lord's, and the +fulness thereof. + +10:27 If any of them that believe not bid you to a feast, and ye be +disposed to go; whatsoever is set before you, eat, asking no question +for conscience sake. + +10:28 But if any man say unto you, This is offered in sacrifice unto +idols, eat not for his sake that shewed it, and for conscience sake: +for the earth is the Lord's, and the fulness thereof: 10:29 +Conscience, I say, not thine own, but of the other: for why is my +liberty judged of another man's conscience? 10:30 For if I by grace +be a partaker, why am I evil spoken of for that for which I give +thanks? 10:31 Whether therefore ye eat, or drink, or whatsoever ye +do, do all to the glory of God. + +10:32 Give none offence, neither to the Jews, nor to the Gentiles, nor +to the church of God: 10:33 Even as I please all men in all things, +not seeking mine own profit, but the profit of many, that they may be +saved. + +11:1 Be ye followers of me, even as I also am of Christ. + +11:2 Now I praise you, brethren, that ye remember me in all things, +and keep the ordinances, as I delivered them to you. + +11:3 But I would have you know, that the head of every man is Christ; +and the head of the woman is the man; and the head of Christ is God. + +11:4 Every man praying or prophesying, having his head covered, +dishonoureth his head. + +11:5 But every woman that prayeth or prophesieth with her head +uncovered dishonoureth her head: for that is even all one as if she +were shaven. + +11:6 For if the woman be not covered, let her also be shorn: but if it +be a shame for a woman to be shorn or shaven, let her be covered. + +11:7 For a man indeed ought not to cover his head, forasmuch as he is +the image and glory of God: but the woman is the glory of the man. + +11:8 For the man is not of the woman: but the woman of the man. + +11:9 Neither was the man created for the woman; but the woman for the +man. + +11:10 For this cause ought the woman to have power on her head because +of the angels. + +11:11 Nevertheless neither is the man without the woman, neither the +woman without the man, in the Lord. + +11:12 For as the woman is of the man, even so is the man also by the +woman; but all things of God. + +11:13 Judge in yourselves: is it comely that a woman pray unto God +uncovered? 11:14 Doth not even nature itself teach you, that, if a +man have long hair, it is a shame unto him? 11:15 But if a woman have +long hair, it is a glory to her: for her hair is given her for a +covering. + +11:16 But if any man seem to be contentious, we have no such custom, +neither the churches of God. + +11:17 Now in this that I declare unto you I praise you not, that ye +come together not for the better, but for the worse. + +11:18 For first of all, when ye come together in the church, I hear +that there be divisions among you; and I partly believe it. + +11:19 For there must be also heresies among you, that they which are +approved may be made manifest among you. + +11:20 When ye come together therefore into one place, this is not to +eat the Lord's supper. + +11:21 For in eating every one taketh before other his own supper: and +one is hungry, and another is drunken. + +11:22 What? have ye not houses to eat and to drink in? or despise ye +the church of God, and shame them that have not? What shall I say to +you? shall I praise you in this? I praise you not. + +11:23 For I have received of the Lord that which also I delivered unto +you, That the Lord Jesus the same night in which he was betrayed took +bread: 11:24 And when he had given thanks, he brake it, and said, +Take, eat: this is my body, which is broken for you: this do in +remembrance of me. + +11:25 After the same manner also he took the cup, when he had supped, +saying, This cup is the new testament in my blood: this do ye, as oft +as ye drink it, in remembrance of me. + +11:26 For as often as ye eat this bread, and drink this cup, ye do +shew the Lord's death till he come. + +11:27 Wherefore whosoever shall eat this bread, and drink this cup of +the Lord, unworthily, shall be guilty of the body and blood of the +Lord. + +11:28 But let a man examine himself, and so let him eat of that bread, +and drink of that cup. + +11:29 For he that eateth and drinketh unworthily, eateth and drinketh +damnation to himself, not discerning the Lord's body. + +11:30 For this cause many are weak and sickly among you, and many +sleep. + +11:31 For if we would judge ourselves, we should not be judged. + +11:32 But when we are judged, we are chastened of the Lord, that we +should not be condemned with the world. + +11:33 Wherefore, my brethren, when ye come together to eat, tarry one +for another. + +11:34 And if any man hunger, let him eat at home; that ye come not +together unto condemnation. And the rest will I set in order when I +come. + +12:1 Now concerning spiritual gifts, brethren, I would not have you +ignorant. + +12:2 Ye know that ye were Gentiles, carried away unto these dumb +idols, even as ye were led. + +12:3 Wherefore I give you to understand, that no man speaking by the +Spirit of God calleth Jesus accursed: and that no man can say that +Jesus is the Lord, but by the Holy Ghost. + +12:4 Now there are diversities of gifts, but the same Spirit. + +12:5 And there are differences of administrations, but the same Lord. + +12:6 And there are diversities of operations, but it is the same God +which worketh all in all. + +12:7 But the manifestation of the Spirit is given to every man to +profit withal. + +12:8 For to one is given by the Spirit the word of wisdom; to another +the word of knowledge by the same Spirit; 12:9 To another faith by the +same Spirit; to another the gifts of healing by the same Spirit; 12:10 +To another the working of miracles; to another prophecy; to another +discerning of spirits; to another divers kinds of tongues; to another +the interpretation of tongues: 12:11 But all these worketh that one +and the selfsame Spirit, dividing to every man severally as he will. + +12:12 For as the body is one, and hath many members, and all the +members of that one body, being many, are one body: so also is Christ. + +12:13 For by one Spirit are we all baptized into one body, whether we +be Jews or Gentiles, whether we be bond or free; and have been all +made to drink into one Spirit. + +12:14 For the body is not one member, but many. + +12:15 If the foot shall say, Because I am not the hand, I am not of +the body; is it therefore not of the body? 12:16 And if the ear shall +say, Because I am not the eye, I am not of the body; is it therefore +not of the body? 12:17 If the whole body were an eye, where were the +hearing? If the whole were hearing, where were the smelling? 12:18 +But now hath God set the members every one of them in the body, as it +hath pleased him. + +12:19 And if they were all one member, where were the body? 12:20 But +now are they many members, yet but one body. + +12:21 And the eye cannot say unto the hand, I have no need of thee: +nor again the head to the feet, I have no need of you. + +12:22 Nay, much more those members of the body, which seem to be more +feeble, are necessary: 12:23 And those members of the body, which we +think to be less honourable, upon these we bestow more abundant +honour; and our uncomely parts have more abundant comeliness. + +12:24 For our comely parts have no need: but God hath tempered the +body together, having given more abundant honour to that part which +lacked. + +12:25 That there should be no schism in the body; but that the members +should have the same care one for another. + +12:26 And whether one member suffer, all the members suffer with it; +or one member be honoured, all the members rejoice with it. + +12:27 Now ye are the body of Christ, and members in particular. + +12:28 And God hath set some in the church, first apostles, secondarily +prophets, thirdly teachers, after that miracles, then gifts of +healings, helps, governments, diversities of tongues. + +12:29 Are all apostles? are all prophets? are all teachers? are all +workers of miracles? 12:30 Have all the gifts of healing? do all +speak with tongues? do all interpret? 12:31 But covet earnestly the +best gifts: and yet shew I unto you a more excellent way. + +13:1 Though I speak with the tongues of men and of angels, and have +not charity, I am become as sounding brass, or a tinkling cymbal. + +13:2 And though I have the gift of prophecy, and understand all +mysteries, and all knowledge; and though I have all faith, so that I +could remove mountains, and have not charity, I am nothing. + +13:3 And though I bestow all my goods to feed the poor, and though I +give my body to be burned, and have not charity, it profiteth me +nothing. + +13:4 Charity suffereth long, and is kind; charity envieth not; charity +vaunteth not itself, is not puffed up, 13:5 Doth not behave itself +unseemly, seeketh not her own, is not easily provoked, thinketh no +evil; 13:6 Rejoiceth not in iniquity, but rejoiceth in the truth; 13:7 +Beareth all things, believeth all things, hopeth all things, endureth +all things. + +13:8 Charity never faileth: but whether there be prophecies, they +shall fail; whether there be tongues, they shall cease; whether there +be knowledge, it shall vanish away. + +13:9 For we know in part, and we prophesy in part. + +13:10 But when that which is perfect is come, then that which is in +part shall be done away. + +13:11 When I was a child, I spake as a child, I understood as a child, +I thought as a child: but when I became a man, I put away childish +things. + +13:12 For now we see through a glass, darkly; but then face to face: +now I know in part; but then shall I know even as also I am known. + +13:13 And now abideth faith, hope, charity, these three; but the +greatest of these is charity. + +14:1 Follow after charity, and desire spiritual gifts, but rather that +ye may prophesy. + +14:2 For he that speaketh in an unknown tongue speaketh not unto men, +but unto God: for no man understandeth him; howbeit in the spirit he +speaketh mysteries. + +14:3 But he that prophesieth speaketh unto men to edification, and +exhortation, and comfort. + +14:4 He that speaketh in an unknown tongue edifieth himself; but he +that prophesieth edifieth the church. + +14:5 I would that ye all spake with tongues but rather that ye +prophesied: for greater is he that prophesieth than he that speaketh +with tongues, except he interpret, that the church may receive +edifying. + +14:6 Now, brethren, if I come unto you speaking with tongues, what +shall I profit you, except I shall speak to you either by revelation, +or by knowledge, or by prophesying, or by doctrine? 14:7 And even +things without life giving sound, whether pipe or harp, except they +give a distinction in the sounds, how shall it be known what is piped +or harped? 14:8 For if the trumpet give an uncertain sound, who shall +prepare himself to the battle? 14:9 So likewise ye, except ye utter +by the tongue words easy to be understood, how shall it be known what +is spoken? for ye shall speak into the air. + +14:10 There are, it may be, so many kinds of voices in the world, and +none of them is without signification. + +14:11 Therefore if I know not the meaning of the voice, I shall be +unto him that speaketh a barbarian, and he that speaketh shall be a +barbarian unto me. + +14:12 Even so ye, forasmuch as ye are zealous of spiritual gifts, seek +that ye may excel to the edifying of the church. + +14:13 Wherefore let him that speaketh in an unknown tongue pray that +he may interpret. + +14:14 For if I pray in an unknown tongue, my spirit prayeth, but my +understanding is unfruitful. + +14:15 What is it then? I will pray with the spirit, and I will pray +with the understanding also: I will sing with the spirit, and I will +sing with the understanding also. + +14:16 Else when thou shalt bless with the spirit, how shall he that +occupieth the room of the unlearned say Amen at thy giving of thanks, +seeing he understandeth not what thou sayest? 14:17 For thou verily +givest thanks well, but the other is not edified. + +14:18 I thank my God, I speak with tongues more than ye all: 14:19 Yet +in the church I had rather speak five words with my understanding, +that by my voice I might teach others also, than ten thousand words in +an unknown tongue. + +14:20 Brethren, be not children in understanding: howbeit in malice be +ye children, but in understanding be men. + +14:21 In the law it is written, With men of other tongues and other +lips will I speak unto this people; and yet for all that will they not +hear me, saith the LORD. + +14:22 Wherefore tongues are for a sign, not to them that believe, but +to them that believe not: but prophesying serveth not for them that +believe not, but for them which believe. + +14:23 If therefore the whole church be come together into one place, +and all speak with tongues, and there come in those that are +unlearned, or unbelievers, will they not say that ye are mad? 14:24 +But if all prophesy, and there come in one that believeth not, or one +unlearned, he is convinced of all, he is judged of all: 14:25 And thus +are the secrets of his heart made manifest; and so falling down on his +face he will worship God, and report that God is in you of a truth. + +14:26 How is it then, brethren? when ye come together, every one of +you hath a psalm, hath a doctrine, hath a tongue, hath a revelation, +hath an interpretation. Let all things be done unto edifying. + +14:27 If any man speak in an unknown tongue, let it be by two, or at +the most by three, and that by course; and let one interpret. + +14:28 But if there be no interpreter, let him keep silence in the +church; and let him speak to himself, and to God. + +14:29 Let the prophets speak two or three, and let the other judge. + +14:30 If any thing be revealed to another that sitteth by, let the +first hold his peace. + +14:31 For ye may all prophesy one by one, that all may learn, and all +may be comforted. + +14:32 And the spirits of the prophets are subject to the prophets. + +14:33 For God is not the author of confusion, but of peace, as in all +churches of the saints. + +14:34 Let your women keep silence in the churches: for it is not +permitted unto them to speak; but they are commanded to be under +obedience as also saith the law. + +14:35 And if they will learn any thing, let them ask their husbands at +home: for it is a shame for women to speak in the church. + +14:36 What? came the word of God out from you? or came it unto you +only? 14:37 If any man think himself to be a prophet, or spiritual, +let him acknowledge that the things that I write unto you are the +commandments of the Lord. + +14:38 But if any man be ignorant, let him be ignorant. + +14:39 Wherefore, brethren, covet to prophesy, and forbid not to speak +with tongues. + +14:40 Let all things be done decently and in order. + +15:1 Moreover, brethren, I declare unto you the gospel which I +preached unto you, which also ye have received, and wherein ye stand; +15:2 By which also ye are saved, if ye keep in memory what I preached +unto you, unless ye have believed in vain. + +15:3 For I delivered unto you first of all that which I also received, +how that Christ died for our sins according to the scriptures; 15:4 +And that he was buried, and that he rose again the third day according +to the scriptures: 15:5 And that he was seen of Cephas, then of the +twelve: 15:6 After that, he was seen of above five hundred brethren at +once; of whom the greater part remain unto this present, but some are +fallen asleep. + +15:7 After that, he was seen of James; then of all the apostles. + +15:8 And last of all he was seen of me also, as of one born out of due +time. + +15:9 For I am the least of the apostles, that am not meet to be called +an apostle, because I persecuted the church of God. + +15:10 But by the grace of God I am what I am: and his grace which was +bestowed upon me was not in vain; but I laboured more abundantly than +they all: yet not I, but the grace of God which was with me. + +15:11 Therefore whether it were I or they, so we preach, and so ye +believed. + +15:12 Now if Christ be preached that he rose from the dead, how say +some among you that there is no resurrection of the dead? 15:13 But +if there be no resurrection of the dead, then is Christ not risen: +15:14 And if Christ be not risen, then is our preaching vain, and your +faith is also vain. + +15:15 Yea, and we are found false witnesses of God; because we have +testified of God that he raised up Christ: whom he raised not up, if +so be that the dead rise not. + +15:16 For if the dead rise not, then is not Christ raised: 15:17 And +if Christ be not raised, your faith is vain; ye are yet in your sins. + +15:18 Then they also which are fallen asleep in Christ are perished. + +15:19 If in this life only we have hope in Christ, we are of all men +most miserable. + +15:20 But now is Christ risen from the dead, and become the +firstfruits of them that slept. + +15:21 For since by man came death, by man came also the resurrection +of the dead. + +15:22 For as in Adam all die, even so in Christ shall all be made +alive. + +15:23 But every man in his own order: Christ the firstfruits; +afterward they that are Christ's at his coming. + +15:24 Then cometh the end, when he shall have delivered up the kingdom +to God, even the Father; when he shall have put down all rule and all +authority and power. + +15:25 For he must reign, till he hath put all enemies under his feet. + +15:26 The last enemy that shall be destroyed is death. + +15:27 For he hath put all things under his feet. But when he saith all +things are put under him, it is manifest that he is excepted, which +did put all things under him. + +15:28 And when all things shall be subdued unto him, then shall the +Son also himself be subject unto him that put all things under him, +that God may be all in all. + +15:29 Else what shall they do which are baptized for the dead, if the +dead rise not at all? why are they then baptized for the dead? 15:30 +And why stand we in jeopardy every hour? 15:31 I protest by your +rejoicing which I have in Christ Jesus our LORD, I die daily. + +15:32 If after the manner of men I have fought with beasts at Ephesus, +what advantageth it me, if the dead rise not? let us eat and drink; +for to morrow we die. + +15:33 Be not deceived: evil communications corrupt good manners. + +15:34 Awake to righteousness, and sin not; for some have not the +knowledge of God: I speak this to your shame. + +15:35 But some man will say, How are the dead raised up? and with what +body do they come? 15:36 Thou fool, that which thou sowest is not +quickened, except it die: 15:37 And that which thou sowest, thou +sowest not that body that shall be, but bare grain, it may chance of +wheat, or of some other grain: 15:38 But God giveth it a body as it +hath pleased him, and to every seed his own body. + +15:39 All flesh is not the same flesh: but there is one kind of flesh +of men, another flesh of beasts, another of fishes, and another of +birds. + +15:40 There are also celestial bodies, and bodies terrestrial: but the +glory of the celestial is one, and the glory of the terrestrial is +another. + +15:41 There is one glory of the sun, and another glory of the moon, +and another glory of the stars: for one star differeth from another +star in glory. + +15:42 So also is the resurrection of the dead. It is sown in +corruption; it is raised in incorruption: 15:43 It is sown in +dishonour; it is raised in glory: it is sown in weakness; it is raised +in power: 15:44 It is sown a natural body; it is raised a spiritual +body. There is a natural body, and there is a spiritual body. + +15:45 And so it is written, The first man Adam was made a living soul; +the last Adam was made a quickening spirit. + +15:46 Howbeit that was not first which is spiritual, but that which is +natural; and afterward that which is spiritual. + +15:47 The first man is of the earth, earthy; the second man is the +Lord from heaven. + +15:48 As is the earthy, such are they also that are earthy: and as is +the heavenly, such are they also that are heavenly. + +15:49 And as we have borne the image of the earthy, we shall also bear +the image of the heavenly. + +15:50 Now this I say, brethren, that flesh and blood cannot inherit +the kingdom of God; neither doth corruption inherit incorruption. + +15:51 Behold, I shew you a mystery; We shall not all sleep, but we +shall all be changed, 15:52 In a moment, in the twinkling of an eye, +at the last trump: for the trumpet shall sound, and the dead shall be +raised incorruptible, and we shall be changed. + +15:53 For this corruptible must put on incorruption, and this mortal +must put on immortality. + +15:54 So when this corruptible shall have put on incorruption, and +this mortal shall have put on immortality, then shall be brought to +pass the saying that is written, Death is swallowed up in victory. + +15:55 O death, where is thy sting? O grave, where is thy victory? +15:56 The sting of death is sin; and the strength of sin is the law. + +15:57 But thanks be to God, which giveth us the victory through our +Lord Jesus Christ. + +15:58 Therefore, my beloved brethren, be ye stedfast, unmoveable, +always abounding in the work of the Lord, forasmuch as ye know that +your labour is not in vain in the Lord. + +16:1 Now concerning the collection for the saints, as I have given +order to the churches of Galatia, even so do ye. + +16:2 Upon the first day of the week let every one of you lay by him in +store, as God hath prospered him, that there be no gatherings when I +come. + +16:3 And when I come, whomsoever ye shall approve by your letters, +them will I send to bring your liberality unto Jerusalem. + +16:4 And if it be meet that I go also, they shall go with me. + +16:5 Now I will come unto you, when I shall pass through Macedonia: +for I do pass through Macedonia. + +16:6 And it may be that I will abide, yea, and winter with you, that +ye may bring me on my journey whithersoever I go. + +16:7 For I will not see you now by the way; but I trust to tarry a +while with you, if the Lord permit. + +16:8 But I will tarry at Ephesus until Pentecost. + +16:9 For a great door and effectual is opened unto me, and there are +many adversaries. + +16:10 Now if Timotheus come, see that he may be with you without fear: +for he worketh the work of the Lord, as I also do. + +16:11 Let no man therefore despise him: but conduct him forth in +peace, that he may come unto me: for I look for him with the brethren. + +16:12 As touching our brother Apollos, I greatly desired him to come +unto you with the brethren: but his will was not at all to come at +this time; but he will come when he shall have convenient time. + +16:13 Watch ye, stand fast in the faith, quit you like men, be strong. + +16:14 Let all your things be done with charity. + +16:15 I beseech you, brethren, (ye know the house of Stephanas, that +it is the firstfruits of Achaia, and that they have addicted +themselves to the ministry of the saints,) 16:16 That ye submit +yourselves unto such, and to every one that helpeth with us, and +laboureth. + +16:17 I am glad of the coming of Stephanas and Fortunatus and +Achaicus: for that which was lacking on your part they have supplied. + +16:18 For they have refreshed my spirit and your's: therefore +acknowledge ye them that are such. + +16:19 The churches of Asia salute you. Aquila and Priscilla salute you +much in the Lord, with the church that is in their house. + +16:20 All the brethren greet you. Greet ye one another with +an holy kiss. + +16:21 The salutation of me Paul with mine own hand. + +16:22 If any man love not the Lord Jesus Christ, let him be +Anathema Maranatha. + +16:23 The grace of our Lord Jesus Christ be with you. + +16:24 My love be with you all in Christ Jesus. Amen. + + + +The Second Epistle of Paul the Apostle to the Corinthians + + +1:1 Paul, an apostle of Jesus Christ by the will of God, and Timothy +our brother, unto the church of God which is at Corinth, with all the +saints which are in all Achaia: 1:2 Grace be to you and peace from God +our Father, and from the Lord Jesus Christ. + +1:3 Blessed be God, even the Father of our Lord Jesus Christ, the +Father of mercies, and the God of all comfort; 1:4 Who comforteth us +in all our tribulation, that we may be able to comfort them which are +in any trouble, by the comfort wherewith we ourselves are comforted of +God. + +1:5 For as the sufferings of Christ abound in us, so our consolation +also aboundeth by Christ. + +1:6 And whether we be afflicted, it is for your consolation and +salvation, which is effectual in the enduring of the same sufferings +which we also suffer: or whether we be comforted, it is for your +consolation and salvation. + +1:7 And our hope of you is stedfast, knowing, that as ye are partakers +of the sufferings, so shall ye be also of the consolation. + +1:8 For we would not, brethren, have you ignorant of our trouble which +came to us in Asia, that we were pressed out of measure, above +strength, insomuch that we despaired even of life: 1:9 But we had the +sentence of death in ourselves, that we should not trust in ourselves, +but in God which raiseth the dead: 1:10 Who delivered us from so great +a death, and doth deliver: in whom we trust that he will yet deliver +us; 1:11 Ye also helping together by prayer for us, that for the gift +bestowed upon us by the means of many persons thanks may be given by +many on our behalf. + +1:12 For our rejoicing is this, the testimony of our conscience, that +in simplicity and godly sincerity, not with fleshly wisdom, but by the +grace of God, we have had our conversation in the world, and more +abundantly to you-ward. + +1:13 For we write none other things unto you, than what ye read or +acknowledge; and I trust ye shall acknowledge even to the end; 1:14 As +also ye have acknowledged us in part, that we are your rejoicing, even +as ye also are our's in the day of the Lord Jesus. + +1:15 And in this confidence I was minded to come unto you before, that +ye might have a second benefit; 1:16 And to pass by you into +Macedonia, and to come again out of Macedonia unto you, and of you to +be brought on my way toward Judaea. + +1:17 When I therefore was thus minded, did I use lightness? or the +things that I purpose, do I purpose according to the flesh, that with +me there should be yea yea, and nay nay? 1:18 But as God is true, our +word toward you was not yea and nay. + +1:19 For the Son of God, Jesus Christ, who was preached among you by +us, even by me and Silvanus and Timotheus, was not yea and nay, but in +him was yea. + +1:20 For all the promises of God in him are yea, and in him Amen, unto +the glory of God by us. + +1:21 Now he which stablisheth us with you in Christ, and hath anointed +us, is God; 1:22 Who hath also sealed us, and given the earnest of the +Spirit in our hearts. + +1:23 Moreover I call God for a record upon my soul, that to spare you +I came not as yet unto Corinth. + +1:24 Not for that we have dominion over your faith, but are helpers of +your joy: for by faith ye stand. + +2:1 But I determined this with myself, that I would not come again to +you in heaviness. + +2:2 For if I make you sorry, who is he then that maketh me glad, but +the same which is made sorry by me? 2:3 And I wrote this same unto +you, lest, when I came, I should have sorrow from them of whom I ought +to rejoice; having confidence in you all, that my joy is the joy of +you all. + +2:4 For out of much affliction and anguish of heart I wrote unto you +with many tears; not that ye should be grieved, but that ye might know +the love which I have more abundantly unto you. + +2:5 But if any have caused grief, he hath not grieved me, but in part: +that I may not overcharge you all. + +2:6 Sufficient to such a man is this punishment, which was inflicted +of many. + +2:7 So that contrariwise ye ought rather to forgive him, and comfort +him, lest perhaps such a one should be swallowed up with overmuch +sorrow. + +2:8 Wherefore I beseech you that ye would confirm your love toward +him. + +2:9 For to this end also did I write, that I might know the proof of +you, whether ye be obedient in all things. + +2:10 To whom ye forgive any thing, I forgive also: for if I forgave +any thing, to whom I forgave it, for your sakes forgave I it in the +person of Christ; 2:11 Lest Satan should get an advantage of us: for +we are not ignorant of his devices. + +2:12 Furthermore, when I came to Troas to preach Christ's gospel, and +a door was opened unto me of the Lord, 2:13 I had no rest in my +spirit, because I found not Titus my brother: but taking my leave of +them, I went from thence into Macedonia. + +2:14 Now thanks be unto God, which always causeth us to triumph in +Christ, and maketh manifest the savour of his knowledge by us in every +place. + +2:15 For we are unto God a sweet savour of Christ, in them that are +saved, and in them that perish: 2:16 To the one we are the savour of +death unto death; and to the other the savour of life unto life. And +who is sufficient for these things? 2:17 For we are not as many, +which corrupt the word of God: but as of sincerity, but as of God, in +the sight of God speak we in Christ. + +3:1 Do we begin again to commend ourselves? or need we, as some +others, epistles of commendation to you, or letters of commendation +from you? 3:2 Ye are our epistle written in our hearts, known and +read of all men: 3:3 Forasmuch as ye are manifestly declared to be the +epistle of Christ ministered by us, written not with ink, but with the +Spirit of the living God; not in tables of stone, but in fleshy tables +of the heart. + +3:4 And such trust have we through Christ to God-ward: 3:5 Not that we +are sufficient of ourselves to think any thing as of ourselves; but +our sufficiency is of God; 3:6 Who also hath made us able ministers of +the new testament; not of the letter, but of the spirit: for the +letter killeth, but the spirit giveth life. + +3:7 But if the ministration of death, written and engraven in stones, +was glorious, so that the children of Israel could not stedfastly +behold the face of Moses for the glory of his countenance; which glory +was to be done away: 3:8 How shall not the ministration of the spirit +be rather glorious? 3:9 For if the ministration of condemnation be +glory, much more doth the ministration of righteousness exceed in +glory. + +3:10 For even that which was made glorious had no glory in this +respect, by reason of the glory that excelleth. + +3:11 For if that which is done away was glorious, much more that which +remaineth is glorious. + +3:12 Seeing then that we have such hope, we use great plainness of +speech: 3:13 And not as Moses, which put a vail over his face, that +the children of Israel could not stedfastly look to the end of that +which is abolished: 3:14 But their minds were blinded: for until this +day remaineth the same vail untaken away in the reading of the old +testament; which vail is done away in Christ. + +3:15 But even unto this day, when Moses is read, the vail is upon +their heart. + +3:16 Nevertheless when it shall turn to the Lord, the vail shall be +taken away. + +3:17 Now the Lord is that Spirit: and where the Spirit of the Lord is, +there is liberty. + +3:18 But we all, with open face beholding as in a glass the glory of +the Lord, are changed into the same image from glory to glory, even as +by the Spirit of the LORD. + +4:1 Therefore seeing we have this ministry, as we have received mercy, +we faint not; 4:2 But have renounced the hidden things of dishonesty, +not walking in craftiness, nor handling the word of God deceitfully; +but by manifestation of the truth commending ourselves to every man's +conscience in the sight of God. + +4:3 But if our gospel be hid, it is hid to them that are lost: 4:4 In +whom the god of this world hath blinded the minds of them which +believe not, lest the light of the glorious gospel of Christ, who is +the image of God, should shine unto them. + +4:5 For we preach not ourselves, but Christ Jesus the Lord; and +ourselves your servants for Jesus' sake. + +4:6 For God, who commanded the light to shine out of darkness, hath +shined in our hearts, to give the light of the knowledge of the glory +of God in the face of Jesus Christ. + +4:7 But we have this treasure in earthen vessels, that the excellency +of the power may be of God, and not of us. + +4:8 We are troubled on every side, yet not distressed; we are +perplexed, but not in despair; 4:9 Persecuted, but not forsaken; cast +down, but not destroyed; 4:10 Always bearing about in the body the +dying of the Lord Jesus, that the life also of Jesus might be made +manifest in our body. + +4:11 For we which live are alway delivered unto death for Jesus' sake, +that the life also of Jesus might be made manifest in our mortal +flesh. + +4:12 So then death worketh in us, but life in you. + +4:13 We having the same spirit of faith, according as it is written, I +believed, and therefore have I spoken; we also believe, and therefore +speak; 4:14 Knowing that he which raised up the Lord Jesus shall raise +up us also by Jesus, and shall present us with you. + +4:15 For all things are for your sakes, that the abundant grace might +through the thanksgiving of many redound to the glory of God. + +4:16 For which cause we faint not; but though our outward man perish, +yet the inward man is renewed day by day. + +4:17 For our light affliction, which is but for a moment, worketh for +us a far more exceeding and eternal weight of glory; 4:18 While we +look not at the things which are seen, but at the things which are not +seen: for the things which are seen are temporal; but the things which +are not seen are eternal. + +5:1 For we know that if our earthly house of this tabernacle were +dissolved, we have a building of God, an house not made with hands, +eternal in the heavens. + +5:2 For in this we groan, earnestly desiring to be clothed upon with +our house which is from heaven: 5:3 If so be that being clothed we +shall not be found naked. + +5:4 For we that are in this tabernacle do groan, being burdened: not +for that we would be unclothed, but clothed upon, that mortality might +be swallowed up of life. + +5:5 Now he that hath wrought us for the selfsame thing is God, who +also hath given unto us the earnest of the Spirit. + +5:6 Therefore we are always confident, knowing that, whilst we are at +home in the body, we are absent from the Lord: 5:7 (For we walk by +faith, not by sight:) 5:8 We are confident, I say, and willing rather +to be absent from the body, and to be present with the Lord. + +5:9 Wherefore we labour, that, whether present or absent, we may be +accepted of him. + +5:10 For we must all appear before the judgment seat of Christ; that +every one may receive the things done in his body, according to that +he hath done, whether it be good or bad. + +5:11 Knowing therefore the terror of the Lord, we persuade men; but we +are made manifest unto God; and I trust also are made manifest in your +consciences. + +5:12 For we commend not ourselves again unto you, but give you +occasion to glory on our behalf, that ye may have somewhat to answer +them which glory in appearance, and not in heart. + +5:13 For whether we be beside ourselves, it is to God: or whether we +be sober, it is for your cause. + +5:14 For the love of Christ constraineth us; because we thus judge, +that if one died for all, then were all dead: 5:15 And that he died +for all, that they which live should not henceforth live unto +themselves, but unto him which died for them, and rose again. + +5:16 Wherefore henceforth know we no man after the flesh: yea, though +we have known Christ after the flesh, yet now henceforth know we him +no more. + +5:17 Therefore if any man be in Christ, he is a new creature: old +things are passed away; behold, all things are become new. + +5:18 And all things are of God, who hath reconciled us to himself by +Jesus Christ, and hath given to us the ministry of reconciliation; +5:19 To wit, that God was in Christ, reconciling the world unto +himself, not imputing their trespasses unto them; and hath committed +unto us the word of reconciliation. + +5:20 Now then we are ambassadors for Christ, as though God did beseech +you by us: we pray you in Christ's stead, be ye reconciled to God. + +5:21 For he hath made him to be sin for us, who knew no sin; that we +might be made the righteousness of God in him. + +6:1 We then, as workers together with him, beseech you also that ye +receive not the grace of God in vain. + +6:2 (For he saith, I have heard thee in a time accepted, and in the +day of salvation have I succoured thee: behold, now is the accepted +time; behold, now is the day of salvation.) 6:3 Giving no offence in +any thing, that the ministry be not blamed: 6:4 But in all things +approving ourselves as the ministers of God, in much patience, in +afflictions, in necessities, in distresses, 6:5 In stripes, in +imprisonments, in tumults, in labours, in watchings, in fastings; 6:6 +By pureness, by knowledge, by longsuffering, by kindness, by the Holy +Ghost, by love unfeigned, 6:7 By the word of truth, by the power of +God, by the armour of righteousness on the right hand and on the left, +6:8 By honour and dishonour, by evil report and good report: as +deceivers, and yet true; 6:9 As unknown, and yet well known; as dying, +and, behold, we live; as chastened, and not killed; 6:10 As sorrowful, +yet alway rejoicing; as poor, yet making many rich; as having nothing, +and yet possessing all things. + +6:11 O ye Corinthians, our mouth is open unto you, our heart is +enlarged. + +6:12 Ye are not straitened in us, but ye are straitened in your own +bowels. + +6:13 Now for a recompence in the same, (I speak as unto my children,) +be ye also enlarged. + +6:14 Be ye not unequally yoked together with unbelievers: for what +fellowship hath righteousness with unrighteousness? and what communion +hath light with darkness? 6:15 And what concord hath Christ with +Belial? or what part hath he that believeth with an infidel? 6:16 And +what agreement hath the temple of God with idols? for ye are the +temple of the living God; as God hath said, I will dwell in them, and +walk in them; and I will be their God, and they shall be my people. + +6:17 Wherefore come out from among them, and be ye separate, saith the +Lord, and touch not the unclean thing; and I will receive you. + +6:18 And will be a Father unto you, and ye shall be my sons and +daughters, saith the Lord Almighty. + +7:1 Having therefore these promises, dearly beloved, let us cleanse +ourselves from all filthiness of the flesh and spirit, perfecting +holiness in the fear of God. + +7:2 Receive us; we have wronged no man, we have corrupted no man, we +have defrauded no man. + +7:3 I speak not this to condemn you: for I have said before, that ye +are in our hearts to die and live with you. + +7:4 Great is my boldness of speech toward you, great is my glorying of +you: I am filled with comfort, I am exceeding joyful in all our +tribulation. + +7:5 For, when we were come into Macedonia, our flesh had no rest, but +we were troubled on every side; without were fightings, within were +fears. + +7:6 Nevertheless God, that comforteth those that are cast down, +comforted us by the coming of Titus; 7:7 And not by his coming only, +but by the consolation wherewith he was comforted in you, when he told +us your earnest desire, your mourning, your fervent mind toward me; so +that I rejoiced the more. + +7:8 For though I made you sorry with a letter, I do not repent, though +I did repent: for I perceive that the same epistle hath made you +sorry, though it were but for a season. + +7:9 Now I rejoice, not that ye were made sorry, but that ye sorrowed +to repentance: for ye were made sorry after a godly manner, that ye +might receive damage by us in nothing. + +7:10 For godly sorrow worketh repentance to salvation not to be +repented of: but the sorrow of the world worketh death. + +7:11 For behold this selfsame thing, that ye sorrowed after a godly +sort, what carefulness it wrought in you, yea, what clearing of +yourselves, yea, what indignation, yea, what fear, yea, what vehement +desire, yea, what zeal, yea, what revenge! In all things ye have +approved yourselves to be clear in this matter. + +7:12 Wherefore, though I wrote unto you, I did it not for his cause +that had done the wrong, nor for his cause that suffered wrong, but +that our care for you in the sight of God might appear unto you. + +7:13 Therefore we were comforted in your comfort: yea, and exceedingly +the more joyed we for the joy of Titus, because his spirit was +refreshed by you all. + +7:14 For if I have boasted any thing to him of you, I am not ashamed; +but as we spake all things to you in truth, even so our boasting, +which I made before Titus, is found a truth. + +7:15 And his inward affection is more abundant toward you, whilst he +remembereth the obedience of you all, how with fear and trembling ye +received him. + +7:16 I rejoice therefore that I have confidence in you in all things. + +8:1 Moreover, brethren, we do you to wit of the grace of God bestowed +on the churches of Macedonia; 8:2 How that in a great trial of +affliction the abundance of their joy and their deep poverty abounded +unto the riches of their liberality. + +8:3 For to their power, I bear record, yea, and beyond their power +they were willing of themselves; 8:4 Praying us with much intreaty +that we would receive the gift, and take upon us the fellowship of the +ministering to the saints. + +8:5 And this they did, not as we hoped, but first gave their own +selves to the Lord, and unto us by the will of God. + +8:6 Insomuch that we desired Titus, that as he had begun, so he would +also finish in you the same grace also. + +8:7 Therefore, as ye abound in every thing, in faith, and utterance, +and knowledge, and in all diligence, and in your love to us, see that +ye abound in this grace also. + +8:8 I speak not by commandment, but by occasion of the forwardness of +others, and to prove the sincerity of your love. + +8:9 For ye know the grace of our Lord Jesus Christ, that, though he +was rich, yet for your sakes he became poor, that ye through his +poverty might be rich. + +8:10 And herein I give my advice: for this is expedient for you, who +have begun before, not only to do, but also to be forward a year ago. + +8:11 Now therefore perform the doing of it; that as there was a +readiness to will, so there may be a performance also out of that +which ye have. + +8:12 For if there be first a willing mind, it is accepted according to +that a man hath, and not according to that he hath not. + +8:13 For I mean not that other men be eased, and ye burdened: 8:14 But +by an equality, that now at this time your abundance may be a supply +for their want, that their abundance also may be a supply for your +want: that there may be equality: 8:15 As it is written, He that had +gathered much had nothing over; and he that had gathered little had no +lack. + +8:16 But thanks be to God, which put the same earnest care into the +heart of Titus for you. + +8:17 For indeed he accepted the exhortation; but being more forward, +of his own accord he went unto you. + +8:18 And we have sent with him the brother, whose praise is in the +gospel throughout all the churches; 8:19 And not that only, but who +was also chosen of the churches to travel with us with this grace, +which is administered by us to the glory of the same Lord, and +declaration of your ready mind: 8:20 Avoiding this, that no man should +blame us in this abundance which is administered by us: 8:21 Providing +for honest things, not only in the sight of the Lord, but also in the +sight of men. + +8:22 And we have sent with them our brother, whom we have oftentimes +proved diligent in many things, but now much more diligent, upon the +great confidence which I have in you. + +8:23 Whether any do enquire of Titus, he is my partner and +fellowhelper concerning you: or our brethren be enquired of, they are +the messengers of the churches, and the glory of Christ. + +8:24 Wherefore shew ye to them, and before the churches, the proof of +your love, and of our boasting on your behalf. + +9:1 For as touching the ministering to the saints, it is superfluous +for me to write to you: 9:2 For I know the forwardness of your mind, +for which I boast of you to them of Macedonia, that Achaia was ready a +year ago; and your zeal hath provoked very many. + +9:3 Yet have I sent the brethren, lest our boasting of you should be +in vain in this behalf; that, as I said, ye may be ready: 9:4 Lest +haply if they of Macedonia come with me, and find you unprepared, we +(that we say not, ye) should be ashamed in this same confident +boasting. + +9:5 Therefore I thought it necessary to exhort the brethren, that they +would go before unto you, and make up beforehand your bounty, whereof +ye had notice before, that the same might be ready, as a matter of +bounty, and not as of covetousness. + +9:6 But this I say, He which soweth sparingly shall reap also +sparingly; and he which soweth bountifully shall reap also +bountifully. + +9:7 Every man according as he purposeth in his heart, so let him give; +not grudgingly, or of necessity: for God loveth a cheerful giver. + +9:8 And God is able to make all grace abound toward you; that ye, +always having all sufficiency in all things, may abound to every good +work: 9:9 (As it is written, He hath dispersed abroad; he hath given +to the poor: his righteousness remaineth for ever. + +9:10 Now he that ministereth seed to the sower both minister bread for +your food, and multiply your seed sown, and increase the fruits of +your righteousness;) 9:11 Being enriched in every thing to all +bountifulness, which causeth through us thanksgiving to God. + +9:12 For the administration of this service not only supplieth the +want of the saints, but is abundant also by many thanksgivings unto +God; 9:13 Whiles by the experiment of this ministration they glorify +God for your professed subjection unto the gospel of Christ, and for +your liberal distribution unto them, and unto all men; 9:14 And by +their prayer for you, which long after you for the exceeding grace of +God in you. + +9:15 Thanks be unto God for his unspeakable gift. + +10:1 Now I Paul myself beseech you by the meekness and gentleness of +Christ, who in presence am base among you, but being absent am bold +toward you: 10:2 But I beseech you, that I may not be bold when I am +present with that confidence, wherewith I think to be bold against +some, which think of us as if we walked according to the flesh. + +10:3 For though we walk in the flesh, we do not war after the flesh: +10:4 (For the weapons of our warfare are not carnal, but mighty +through God to the pulling down of strong holds;) 10:5 Casting down +imaginations, and every high thing that exalteth itself against the +knowledge of God, and bringing into captivity every thought to the +obedience of Christ; 10:6 And having in a readiness to revenge all +disobedience, when your obedience is fulfilled. + +10:7 Do ye look on things after the outward appearance? If any man +trust to himself that he is Christ's, let him of himself think this +again, that, as he is Christ's, even so are we Christ's. + +10:8 For though I should boast somewhat more of our authority, which +the Lord hath given us for edification, and not for your destruction, +I should not be ashamed: 10:9 That I may not seem as if I would +terrify you by letters. + +10:10 For his letters, say they, are weighty and powerful; but his +bodily presence is weak, and his speech contemptible. + +10:11 Let such an one think this, that, such as we are in word by +letters when we are absent, such will we be also in deed when we are +present. + +10:12 For we dare not make ourselves of the number, or compare +ourselves with some that commend themselves: but they measuring +themselves by themselves, and comparing themselves among themselves, +are not wise. + +10:13 But we will not boast of things without our measure, but +according to the measure of the rule which God hath distributed to us, +a measure to reach even unto you. + +10:14 For we stretch not ourselves beyond our measure, as though we +reached not unto you: for we are come as far as to you also in +preaching the gospel of Christ: 10:15 Not boasting of things without +our measure, that is, of other men's labours; but having hope, when +your faith is increased, that we shall be enlarged by you according to +our rule abundantly, 10:16 To preach the gospel in the regions beyond +you, and not to boast in another man's line of things made ready to +our hand. + +10:17 But he that glorieth, let him glory in the Lord. + +10:18 For not he that commendeth himself is approved, but whom the +Lord commendeth. + +11:1 Would to God ye could bear with me a little in my folly: and +indeed bear with me. + +11:2 For I am jealous over you with godly jealousy: for I have +espoused you to one husband, that I may present you as a chaste virgin +to Christ. + +11:3 But I fear, lest by any means, as the serpent beguiled Eve +through his subtilty, so your minds should be corrupted from the +simplicity that is in Christ. + +11:4 For if he that cometh preacheth another Jesus, whom we have not +preached, or if ye receive another spirit, which ye have not received, +or another gospel, which ye have not accepted, ye might well bear with +him. + +11:5 For I suppose I was not a whit behind the very chiefest apostles. + +11:6 But though I be rude in speech, yet not in knowledge; but we have +been throughly made manifest among you in all things. + +11:7 Have I committed an offence in abasing myself that ye might be +exalted, because I have preached to you the gospel of God freely? +11:8 I robbed other churches, taking wages of them, to do you service. + +11:9 And when I was present with you, and wanted, I was chargeable to +no man: for that which was lacking to me the brethren which came from +Macedonia supplied: and in all things I have kept myself from being +burdensome unto you, and so will I keep myself. + +11:10 As the truth of Christ is in me, no man shall stop me of this +boasting in the regions of Achaia. + +11:11 Wherefore? because I love you not? God knoweth. + +11:12 But what I do, that I will do, that I may cut off occasion from +them which desire occasion; that wherein they glory, they may be found +even as we. + +11:13 For such are false apostles, deceitful workers, transforming +themselves into the apostles of Christ. + +11:14 And no marvel; for Satan himself is transformed into an angel of +light. + +11:15 Therefore it is no great thing if his ministers also be +transformed as the ministers of righteousness; whose end shall be +according to their works. + +11:16 I say again, Let no man think me a fool; if otherwise, yet as a +fool receive me, that I may boast myself a little. + +11:17 That which I speak, I speak it not after the Lord, but as it +were foolishly, in this confidence of boasting. + +11:18 Seeing that many glory after the flesh, I will glory also. + +11:19 For ye suffer fools gladly, seeing ye yourselves are wise. + +11:20 For ye suffer, if a man bring you into bondage, if a man devour +you, if a man take of you, if a man exalt himself, if a man smite you +on the face. + +11:21 I speak as concerning reproach, as though we had been weak. +Howbeit whereinsoever any is bold, (I speak foolishly,) I am bold +also. + +11:22 Are they Hebrews? so am I. Are they Israelites? so am I. Are +they the seed of Abraham? so am I. + +11:23 Are they ministers of Christ? (I speak as a fool) I am more; in +labours more abundant, in stripes above measure, in prisons more +frequent, in deaths oft. + +11:24 Of the Jews five times received I forty stripes save one. + +11:25 Thrice was I beaten with rods, once was I stoned, thrice I +suffered shipwreck, a night and a day I have been in the deep; 11:26 +In journeyings often, in perils of waters, in perils of robbers, in +perils by mine own countrymen, in perils by the heathen, in perils in +the city, in perils in the wilderness, in perils in the sea, in perils +among false brethren; 11:27 In weariness and painfulness, in watchings +often, in hunger and thirst, in fastings often, in cold and nakedness. + +11:28 Beside those things that are without, that which cometh upon me +daily, the care of all the churches. + +11:29 Who is weak, and I am not weak? who is offended, and I burn not? +11:30 If I must needs glory, I will glory of the things which concern +mine infirmities. + +11:31 The God and Father of our Lord Jesus Christ, which is blessed +for evermore, knoweth that I lie not. + +11:32 In Damascus the governor under Aretas the king kept the city of +the Damascenes with a garrison, desirous to apprehend me: 11:33 And +through a window in a basket was I let down by the wall, and escaped +his hands. + +12:1 It is not expedient for me doubtless to glory. I will come to +visions and revelations of the Lord. + +12:2 I knew a man in Christ above fourteen years ago, (whether in the +body, I cannot tell; or whether out of the body, I cannot tell: God +knoweth;) such an one caught up to the third heaven. + +12:3 And I knew such a man, (whether in the body, or out of the body, +I cannot tell: God knoweth;) 12:4 How that he was caught up into +paradise, and heard unspeakable words, which it is not lawful for a +man to utter. + +12:5 Of such an one will I glory: yet of myself I will not glory, but +in mine infirmities. + +12:6 For though I would desire to glory, I shall not be a fool; for I +will say the truth: but now I forbear, lest any man should think of me +above that which he seeth me to be, or that he heareth of me. + +12:7 And lest I should be exalted above measure through the abundance +of the revelations, there was given to me a thorn in the flesh, the +messenger of Satan to buffet me, lest I should be exalted above +measure. + +12:8 For this thing I besought the Lord thrice, that it might depart +from me. + +12:9 And he said unto me, My grace is sufficient for thee: for my +strength is made perfect in weakness. Most gladly therefore will I +rather glory in my infirmities, that the power of Christ may rest upon +me. + +12:10 Therefore I take pleasure in infirmities, in reproaches, in +necessities, in persecutions, in distresses for Christ's sake: for +when I am weak, then am I strong. + +12:11 I am become a fool in glorying; ye have compelled me: for I +ought to have been commended of you: for in nothing am I behind the +very chiefest apostles, though I be nothing. + +12:12 Truly the signs of an apostle were wrought among you in all +patience, in signs, and wonders, and mighty deeds. + +12:13 For what is it wherein ye were inferior to other churches, +except it be that I myself was not burdensome to you? forgive me this +wrong. + +12:14 Behold, the third time I am ready to come to you; and I will not +be burdensome to you: for I seek not your's but you: for the children +ought not to lay up for the parents, but the parents for the children. + +12:15 And I will very gladly spend and be spent for you; though the +more abundantly I love you, the less I be loved. + +12:16 But be it so, I did not burden you: nevertheless, being crafty, +I caught you with guile. + +12:17 Did I make a gain of you by any of them whom I sent unto you? +12:18 I desired Titus, and with him I sent a brother. Did Titus make a +gain of you? walked we not in the same spirit? walked we not in the +same steps? 12:19 Again, think ye that we excuse ourselves unto you? +we speak before God in Christ: but we do all things, dearly beloved, +for your edifying. + +12:20 For I fear, lest, when I come, I shall not find you such as I +would, and that I shall be found unto you such as ye would not: lest +there be debates, envyings, wraths, strifes, backbitings, whisperings, +swellings, tumults: 12:21 And lest, when I come again, my God will +humble me among you, and that I shall bewail many which have sinned +already, and have not repented of the uncleanness and fornication and +lasciviousness which they have committed. + +13:1 This is the third time I am coming to you. In the mouth of two or +three witnesses shall every word be established. + +13:2 I told you before, and foretell you, as if I were present, the +second time; and being absent now I write to them which heretofore +have sinned, and to all other, that, if I come again, I will not +spare: 13:3 Since ye seek a proof of Christ speaking in me, which to +you-ward is not weak, but is mighty in you. + +13:4 For though he was crucified through weakness, yet he liveth by +the power of God. For we also are weak in him, but we shall live with +him by the power of God toward you. + +13:5 Examine yourselves, whether ye be in the faith; prove your own +selves. Know ye not your own selves, how that Jesus Christ is in you, +except ye be reprobates? 13:6 But I trust that ye shall know that we +are not reprobates. + +13:7 Now I pray to God that ye do no evil; not that we should appear +approved, but that ye should do that which is honest, though we be as +reprobates. + +13:8 For we can do nothing against the truth, but for the truth. + +13:9 For we are glad, when we are weak, and ye are strong: and this +also we wish, even your perfection. + +13:10 Therefore I write these things being absent, lest being present +I should use sharpness, according to the power which the Lord hath +given me to edification, and not to destruction. + +13:11 Finally, brethren, farewell. Be perfect, be of good comfort, be +of one mind, live in peace; and the God of love and peace shall be +with you. + +13:12 Greet one another with an holy kiss. + +13:13 All the saints salute you. + +13:14 The grace of the Lord Jesus Christ, and the love of God, and the +communion of the Holy Ghost, be with you all. Amen. + + + + +The Epistle of Paul the Apostle to the Galatians + + +1:1 Paul, an apostle, (not of men, neither by man, but by Jesus +Christ, and God the Father, who raised him from the dead;) 1:2 And all +the brethren which are with me, unto the churches of Galatia: 1:3 +Grace be to you and peace from God the Father, and from our Lord Jesus +Christ, 1:4 Who gave himself for our sins, that he might deliver us +from this present evil world, according to the will of God and our +Father: 1:5 To whom be glory for ever and ever. Amen. + +1:6 I marvel that ye are so soon removed from him that called you into +the grace of Christ unto another gospel: 1:7 Which is not another; but +there be some that trouble you, and would pervert the gospel of +Christ. + +1:8 But though we, or an angel from heaven, preach any other gospel +unto you than that which we have preached unto you, let him be +accursed. + +1:9 As we said before, so say I now again, if any man preach any other +gospel unto you than that ye have received, let him be accursed. + +1:10 For do I now persuade men, or God? or do I seek to please men? +for if I yet pleased men, I should not be the servant of Christ. + +1:11 But I certify you, brethren, that the gospel which was preached +of me is not after man. + +1:12 For I neither received it of man, neither was I taught it, but by +the revelation of Jesus Christ. + +1:13 For ye have heard of my conversation in time past in the Jews' +religion, how that beyond measure I persecuted the church of God, and +wasted it: 1:14 And profited in the Jews' religion above many my +equals in mine own nation, being more exceedingly zealous of the +traditions of my fathers. + +1:15 But when it pleased God, who separated me from my mother's womb, +and called me by his grace, 1:16 To reveal his Son in me, that I might +preach him among the heathen; immediately I conferred not with flesh +and blood: 1:17 Neither went I up to Jerusalem to them which were +apostles before me; but I went into Arabia, and returned again unto +Damascus. + +1:18 Then after three years I went up to Jerusalem to see Peter, and +abode with him fifteen days. + +1:19 But other of the apostles saw I none, save James the Lord's +brother. + +1:20 Now the things which I write unto you, behold, before God, I lie +not. + +1:21 Afterwards I came into the regions of Syria and Cilicia; 1:22 And +was unknown by face unto the churches of Judaea which were in Christ: +1:23 But they had heard only, That he which persecuted us in times +past now preacheth the faith which once he destroyed. + +1:24 And they glorified God in me. + +2:1 Then fourteen years after I went up again to Jerusalem with +Barnabas, and took Titus with me also. + +2:2 And I went up by revelation, and communicated unto them that +gospel which I preach among the Gentiles, but privately to them which +were of reputation, lest by any means I should run, or had run, in +vain. + +2:3 But neither Titus, who was with me, being a Greek, was compelled +to be circumcised: 2:4 And that because of false brethren unawares +brought in, who came in privily to spy out our liberty which we have +in Christ Jesus, that they might bring us into bondage: 2:5 To whom we +gave place by subjection, no, not for an hour; that the truth of the +gospel might continue with you. + +2:6 But of these who seemed to be somewhat, (whatsoever they were, it +maketh no matter to me: God accepteth no man's person:) for they who +seemed to be somewhat in conference added nothing to me: 2:7 But +contrariwise, when they saw that the gospel of the uncircumcision was +committed unto me, as the gospel of the circumcision was unto Peter; +2:8 (For he that wrought effectually in Peter to the apostleship of +the circumcision, the same was mighty in me toward the Gentiles:) 2:9 +And when James, Cephas, and John, who seemed to be pillars, perceived +the grace that was given unto me, they gave to me and Barnabas the +right hands of fellowship; that we should go unto the heathen, and +they unto the circumcision. + +2:10 Only they would that we should remember the poor; the same which +I also was forward to do. + +2:11 But when Peter was come to Antioch, I withstood him to the face, +because he was to be blamed. + +2:12 For before that certain came from James, he did eat with the +Gentiles: but when they were come, he withdrew and separated himself, +fearing them which were of the circumcision. + +2:13 And the other Jews dissembled likewise with him; insomuch that +Barnabas also was carried away with their dissimulation. + +2:14 But when I saw that they walked not uprightly according to the +truth of the gospel, I said unto Peter before them all, If thou, being +a Jew, livest after the manner of Gentiles, and not as do the Jews, +why compellest thou the Gentiles to live as do the Jews? 2:15 We who +are Jews by nature, and not sinners of the Gentiles, 2:16 Knowing that +a man is not justified by the works of the law, but by the faith of +Jesus Christ, even we have believed in Jesus Christ, that we might be +justified by the faith of Christ, and not by the works of the law: for +by the works of the law shall no flesh be justified. + +2:17 But if, while we seek to be justified by Christ, we ourselves +also are found sinners, is therefore Christ the minister of sin? God +forbid. + +2:18 For if I build again the things which I destroyed, I make myself +a transgressor. + +2:19 For I through the law am dead to the law, that I might live unto +God. + +2:20 I am crucified with Christ: neverthless I live; yet not I, but +Christ liveth in me: and the life which I now live in the flesh I live +by the faith of the Son of God, who loved me, and gave himself for me. + +2:21 I do not frustrate the grace of God: for if righteousness come by +the law, then Christ is dead in vain. + +3:1 O foolish Galatians, who hath bewitched you, that ye should not +obey the truth, before whose eyes Jesus Christ hath been evidently set +forth, crucified among you? 3:2 This only would I learn of you, +Received ye the Spirit by the works of the law, or by the hearing of +faith? 3:3 Are ye so foolish? having begun in the Spirit, are ye now +made perfect by the flesh? 3:4 Have ye suffered so many things in +vain? if it be yet in vain. + +3:5 He therefore that ministereth to you the Spirit, and worketh +miracles among you, doeth he it by the works of the law, or by the +hearing of faith? 3:6 Even as Abraham believed God, and it was +accounted to him for righteousness. + +3:7 Know ye therefore that they which are of faith, the same are the +children of Abraham. + +3:8 And the scripture, foreseeing that God would justify the heathen +through faith, preached before the gospel unto Abraham, saying, In +thee shall all nations be blessed. + +3:9 So then they which be of faith are blessed with faithful Abraham. + +3:10 For as many as are of the works of the law are under the curse: +for it is written, Cursed is every one that continueth not in all +things which are written in the book of the law to do them. + +3:11 But that no man is justified by the law in the sight of God, it +is evident: for, The just shall live by faith. + +3:12 And the law is not of faith: but, The man that doeth them shall +live in them. + +3:13 Christ hath redeemed us from the curse of the law, being made a +curse for us: for it is written, Cursed is every one that hangeth on a +tree: 3:14 That the blessing of Abraham might come on the Gentiles +through Jesus Christ; that we might receive the promise of the Spirit +through faith. + +3:15 Brethren, I speak after the manner of men; Though it be but a +man's covenant, yet if it be confirmed, no man disannulleth, or addeth +thereto. + +3:16 Now to Abraham and his seed were the promises made. He saith not, +And to seeds, as of many; but as of one, And to thy seed, which is +Christ. + +3:17 And this I say, that the covenant, that was confirmed before of +God in Christ, the law, which was four hundred and thirty years after, +cannot disannul, that it should make the promise of none effect. + +3:18 For if the inheritance be of the law, it is no more of promise: +but God gave it to Abraham by promise. + +3:19 Wherefore then serveth the law? It was added because of +transgressions, till the seed should come to whom the promise was +made; and it was ordained by angels in the hand of a mediator. + +3:20 Now a mediator is not a mediator of one, but God is one. + +3:21 Is the law then against the promises of God? God forbid: for if +there had been a law given which could have given life, verily +righteousness should have been by the law. + +3:22 But the scripture hath concluded all under sin, that the promise +by faith of Jesus Christ might be given to them that believe. + +3:23 But before faith came, we were kept under the law, shut up unto +the faith which should afterwards be revealed. + +3:24 Wherefore the law was our schoolmaster to bring us unto Christ, +that we might be justified by faith. + +3:25 But after that faith is come, we are no longer under a +schoolmaster. + +3:26 For ye are all the children of God by faith in Christ Jesus. + +3:27 For as many of you as have been baptized into Christ have put on +Christ. + +3:28 There is neither Jew nor Greek, there is neither bond nor free, +there is neither male nor female: for ye are all one in Christ Jesus. + +3:29 And if ye be Christ's, then are ye Abraham's seed, and heirs +according to the promise. + +4:1 Now I say, That the heir, as long as he is a child, differeth +nothing from a servant, though he be lord of all; 4:2 But is under +tutors and governors until the time appointed of the father. + +4:3 Even so we, when we were children, were in bondage under the +elements of the world: 4:4 But when the fulness of the time was come, +God sent forth his Son, made of a woman, made under the law, 4:5 To +redeem them that were under the law, that we might receive the +adoption of sons. + +4:6 And because ye are sons, God hath sent forth the Spirit of his Son +into your hearts, crying, Abba, Father. + +4:7 Wherefore thou art no more a servant, but a son; and if a son, +then an heir of God through Christ. + +4:8 Howbeit then, when ye knew not God, ye did service unto them which +by nature are no gods. + +4:9 But now, after that ye have known God, or rather are known of God, +how turn ye again to the weak and beggarly elements, whereunto ye +desire again to be in bondage? 4:10 Ye observe days, and months, and +times, and years. + +4:11 I am afraid of you, lest I have bestowed upon you labour in vain. + +4:12 Brethren, I beseech you, be as I am; for I am as ye are: ye have +not injured me at all. + +4:13 Ye know how through infirmity of the flesh I preached the gospel +unto you at the first. + +4:14 And my temptation which was in my flesh ye despised not, nor +rejected; but received me as an angel of God, even as Christ Jesus. + +4:15 Where is then the blessedness ye spake of? for I bear you record, +that, if it had been possible, ye would have plucked out your own +eyes, and have given them to me. + +4:16 Am I therefore become your enemy, because I tell you the truth? +4:17 They zealously affect you, but not well; yea, they would exclude +you, that ye might affect them. + +4:18 But it is good to be zealously affected always in a good thing, +and not only when I am present with you. + +4:19 My little children, of whom I travail in birth again until Christ +be formed in you, 4:20 I desire to be present with you now, and to +change my voice; for I stand in doubt of you. + +4:21 Tell me, ye that desire to be under the law, do ye not hear the +law? 4:22 For it is written, that Abraham had two sons, the one by a +bondmaid, the other by a freewoman. + +4:23 But he who was of the bondwoman was born after the flesh; but he +of the freewoman was by promise. + +4:24 Which things are an allegory: for these are the two covenants; +the one from the mount Sinai, which gendereth to bondage, which is +Agar. + +4:25 For this Agar is mount Sinai in Arabia, and answereth to +Jerusalem which now is, and is in bondage with her children. + +4:26 But Jerusalem which is above is free, which is the mother of us +all. + +4:27 For it is written, Rejoice, thou barren that bearest not; break +forth and cry, thou that travailest not: for the desolate hath many +more children than she which hath an husband. + +4:28 Now we, brethren, as Isaac was, are the children of promise. + +4:29 But as then he that was born after the flesh persecuted him that +was born after the Spirit, even so it is now. + +4:30 Nevertheless what saith the scripture? Cast out the bondwoman and +her son: for the son of the bondwoman shall not be heir with the son +of the freewoman. + +4:31 So then, brethren, we are not children of the bondwoman, but of +the free. + +5:1 Stand fast therefore in the liberty wherewith Christ hath made us +free, and be not entangled again with the yoke of bondage. + +5:2 Behold, I Paul say unto you, that if ye be circumcised, Christ +shall profit you nothing. + +5:3 For I testify again to every man that is circumcised, that he is a +debtor to do the whole law. + +5:4 Christ is become of no effect unto you, whosoever of you are +justified by the law; ye are fallen from grace. + +5:5 For we through the Spirit wait for the hope of righteousness by +faith. + +5:6 For in Jesus Christ neither circumcision availeth any thing, nor +uncircumcision; but faith which worketh by love. + +5:7 Ye did run well; who did hinder you that ye should not obey the +truth? 5:8 This persuasion cometh not of him that calleth you. + +5:9 A little leaven leaveneth the whole lump. + +5:10 I have confidence in you through the Lord, that ye will be none +otherwise minded: but he that troubleth you shall bear his judgment, +whosoever he be. + +5:11 And I, brethren, if I yet preach circumcision, why do I yet +suffer persecution? then is the offence of the cross ceased. + +5:12 I would they were even cut off which trouble you. + +5:13 For, brethren, ye have been called unto liberty; only use not +liberty for an occasion to the flesh, but by love serve one another. + +5:14 For all the law is fulfilled in one word, even in this; Thou +shalt love thy neighbour as thyself. + +5:15 But if ye bite and devour one another, take heed that ye be not +consumed one of another. + +5:16 This I say then, Walk in the Spirit, and ye shall not fulfil the +lust of the flesh. + +5:17 For the flesh lusteth against the Spirit, and the Spirit against +the flesh: and these are contrary the one to the other: so that ye +cannot do the things that ye would. + +5:18 But if ye be led of the Spirit, ye are not under the law. + +5:19 Now the works of the flesh are manifest, which are these; +Adultery, fornication, uncleanness, lasciviousness, 5:20 Idolatry, +witchcraft, hatred, variance, emulations, wrath, strife, seditions, +heresies, 5:21 Envyings, murders, drunkenness, revellings, and such +like: of the which I tell you before, as I have also told you in time +past, that they which do such things shall not inherit the kingdom of +God. + +5:22 But the fruit of the Spirit is love, joy, peace, longsuffering, +gentleness, goodness, faith, 5:23 Meekness, temperance: against such +there is no law. + +5:24 And they that are Christ's have crucified the flesh with the +affections and lusts. + +5:25 If we live in the Spirit, let us also walk in the Spirit. + +5:26 Let us not be desirous of vain glory, provoking one another, +envying one another. + +6:1 Brethren, if a man be overtaken in a fault, ye which are +spiritual, restore such an one in the spirit of meekness; considering +thyself, lest thou also be tempted. + +6:2 Bear ye one another's burdens, and so fulfil the law of Christ. + +6:3 For if a man think himself to be something, when he is nothing, he +deceiveth himself. + +6:4 But let every man prove his own work, and then shall he have +rejoicing in himself alone, and not in another. + +6:5 For every man shall bear his own burden. + +6:6 Let him that is taught in the word communicate unto him that +teacheth in all good things. + +6:7 Be not deceived; God is not mocked: for whatsoever a man soweth, +that shall he also reap. + +6:8 For he that soweth to his flesh shall of the flesh reap +corruption; but he that soweth to the Spirit shall of the Spirit reap +life everlasting. + +6:9 And let us not be weary in well doing: for in due season we shall +reap, if we faint not. + +6:10 As we have therefore opportunity, let us do good unto all men, +especially unto them who are of the household of faith. + +6:11 Ye see how large a letter I have written unto you with mine own +hand. + +6:12 As many as desire to make a fair shew in the flesh, they +constrain you to be circumcised; only lest they should suffer +persecution for the cross of Christ. + +6:13 For neither they themselves who are circumcised keep the law; but +desire to have you circumcised, that they may glory in your flesh. + +6:14 But God forbid that I should glory, save in the cross of our Lord +Jesus Christ, by whom the world is crucified unto me, and I unto the +world. + +6:15 For in Christ Jesus neither circumcision availeth any thing, nor +uncircumcision, but a new creature. + +6:16 And as many as walk according to this rule, peace be on them, and +mercy, and upon the Israel of God. + +6:17 From henceforth let no man trouble me: for I bear in my body the +marks of the Lord Jesus. + +6:18 Brethren, the grace of our Lord Jesus Christ be with your spirit. + +Amen. + + + +The Epistle of Paul the Apostle to the Ephesians + + +1:1 Paul, an apostle of Jesus Christ by the will of God, to the +saints which are at Ephesus, and to the faithful in Christ Jesus: +1:2 Grace be to you, and peace, from God our Father, and from the Lord +Jesus Christ. + +1:3 Blessed be the God and Father of our Lord Jesus Christ, who hath +blessed us with all spiritual blessings in heavenly places in Christ: +1:4 According as he hath chosen us in him before the foundation of the +world, that we should be holy and without blame before him in love: +1:5 Having predestinated us unto the adoption of children by Jesus +Christ to himself, according to the good pleasure of his will, 1:6 To +the praise of the glory of his grace, wherein he hath made us accepted +in the beloved. + +1:7 In whom we have redemption through his blood, the forgiveness of +sins, according to the riches of his grace; 1:8 Wherein he hath +abounded toward us in all wisdom and prudence; 1:9 Having made known +unto us the mystery of his will, according to his good pleasure which +he hath purposed in himself: 1:10 That in the dispensation of the +fulness of times he might gather together in one all things in Christ, +both which are in heaven, and which are on earth; even in him: 1:11 In +whom also we have obtained an inheritance, being predestinated +according to the purpose of him who worketh all things after the +counsel of his own will: 1:12 That we should be to the praise of his +glory, who first trusted in Christ. + +1:13 In whom ye also trusted, after that ye heard the word of truth, +the gospel of your salvation: in whom also after that ye believed, ye +were sealed with that holy Spirit of promise, 1:14 Which is the +earnest of our inheritance until the redemption of the purchased +possession, unto the praise of his glory. + +1:15 Wherefore I also, after I heard of your faith in the Lord Jesus, +and love unto all the saints, 1:16 Cease not to give thanks for you, +making mention of you in my prayers; 1:17 That the God of our Lord +Jesus Christ, the Father of glory, may give unto you the spirit of +wisdom and revelation in the knowledge of him: 1:18 The eyes of your +understanding being enlightened; that ye may know what is the hope of +his calling, and what the riches of the glory of his inheritance in +the saints, 1:19 And what is the exceeding greatness of his power to +us-ward who believe, according to the working of his mighty power, +1:20 Which he wrought in Christ, when he raised him from the dead, and +set him at his own right hand in the heavenly places, 1:21 Far above +all principality, and power, and might, and dominion, and every name +that is named, not only in this world, but also in that which is to +come: 1:22 And hath put all things under his feet, and gave him to be +the head over all things to the church, 1:23 Which is his body, the +fulness of him that filleth all in all. + +2:1 And you hath he quickened, who were dead in trespasses and sins; +2:2 Wherein in time past ye walked according to the course of this +world, according to the prince of the power of the air, the spirit +that now worketh in the children of disobedience: 2:3 Among whom also +we all had our conversation in times past in the lusts of our flesh, +fulfilling the desires of the flesh and of the mind; and were by +nature the children of wrath, even as others. + +2:4 But God, who is rich in mercy, for his great love wherewith he +loved us, 2:5 Even when we were dead in sins, hath quickened us +together with Christ, (by grace ye are saved;) 2:6 And hath raised us +up together, and made us sit together in heavenly places in Christ +Jesus: 2:7 That in the ages to come he might shew the exceeding riches +of his grace in his kindness toward us through Christ Jesus. + +2:8 For by grace are ye saved through faith; and that not of +yourselves: it is the gift of God: 2:9 Not of works, lest any man +should boast. + +2:10 For we are his workmanship, created in Christ Jesus unto good +works, which God hath before ordained that we should walk in them. + +2:11 Wherefore remember, that ye being in time past Gentiles in the +flesh, who are called Uncircumcision by that which is called the +Circumcision in the flesh made by hands; 2:12 That at that time ye +were without Christ, being aliens from the commonwealth of Israel, and +strangers from the covenants of promise, having no hope, and without +God in the world: 2:13 But now in Christ Jesus ye who sometimes were +far off are made nigh by the blood of Christ. + +2:14 For he is our peace, who hath made both one, and hath broken down +the middle wall of partition between us; 2:15 Having abolished in his +flesh the enmity, even the law of commandments contained in +ordinances; for to make in himself of twain one new man, so making +peace; 2:16 And that he might reconcile both unto God in one body by +the cross, having slain the enmity thereby: 2:17 And came and preached +peace to you which were afar off, and to them that were nigh. + +2:18 For through him we both have access by one Spirit unto the +Father. + +2:19 Now therefore ye are no more strangers and foreigners, but +fellowcitizens with the saints, and of the household of God; 2:20 And +are built upon the foundation of the apostles and prophets, Jesus +Christ himself being the chief corner stone; 2:21 In whom all the +building fitly framed together groweth unto an holy temple in the +Lord: 2:22 In whom ye also are builded together for an habitation of +God through the Spirit. + +3:1 For this cause I Paul, the prisoner of Jesus Christ for you +Gentiles, 3:2 If ye have heard of the dispensation of the grace of God +which is given me to you-ward: 3:3 How that by revelation he made +known unto me the mystery; (as I wrote afore in few words, 3:4 +Whereby, when ye read, ye may understand my knowledge in the mystery +of Christ) 3:5 Which in other ages was not made known unto the sons of +men, as it is now revealed unto his holy apostles and prophets by the +Spirit; 3:6 That the Gentiles should be fellowheirs, and of the same +body, and partakers of his promise in Christ by the gospel: 3:7 +Whereof I was made a minister, according to the gift of the grace of +God given unto me by the effectual working of his power. + +3:8 Unto me, who am less than the least of all saints, is this grace +given, that I should preach among the Gentiles the unsearchable riches +of Christ; 3:9 And to make all men see what is the fellowship of the +mystery, which from the beginning of the world hath been hid in God, +who created all things by Jesus Christ: 3:10 To the intent that now +unto the principalities and powers in heavenly places might be known +by the church the manifold wisdom of God, 3:11 According to the +eternal purpose which he purposed in Christ Jesus our Lord: 3:12 In +whom we have boldness and access with confidence by the faith of him. + +3:13 Wherefore I desire that ye faint not at my tribulations for you, +which is your glory. + +3:14 For this cause I bow my knees unto the Father of our Lord Jesus +Christ, 3:15 Of whom the whole family in heaven and earth is named, +3:16 That he would grant you, according to the riches of his glory, to +be strengthened with might by his Spirit in the inner man; 3:17 That +Christ may dwell in your hearts by faith; that ye, being rooted and +grounded in love, 3:18 May be able to comprehend with all saints what +is the breadth, and length, and depth, and height; 3:19 And to know +the love of Christ, which passeth knowledge, that ye might be filled +with all the fulness of God. + +3:20 Now unto him that is able to do exceeding abundantly above all +that we ask or think, according to the power that worketh in us, 3:21 +Unto him be glory in the church by Christ Jesus throughout all ages, +world without end. Amen. + +4:1 I therefore, the prisoner of the Lord, beseech you that ye walk +worthy of the vocation wherewith ye are called, 4:2 With all lowliness +and meekness, with longsuffering, forbearing one another in love; 4:3 +Endeavouring to keep the unity of the Spirit in the bond of peace. + +4:4 There is one body, and one Spirit, even as ye are called in one +hope of your calling; 4:5 One Lord, one faith, one baptism, 4:6 One +God and Father of all, who is above all, and through all, and in you +all. + +4:7 But unto every one of us is given grace according to the measure +of the gift of Christ. + +4:8 Wherefore he saith, When he ascended up on high, he led captivity +captive, and gave gifts unto men. + +4:9 (Now that he ascended, what is it but that he also descended first +into the lower parts of the earth? 4:10 He that descended is the same +also that ascended up far above all heavens, that he might fill all +things.) 4:11 And he gave some, apostles; and some, prophets; and +some, evangelists; and some, pastors and teachers; 4:12 For the +perfecting of the saints, for the work of the ministry, for the +edifying of the body of Christ: 4:13 Till we all come in the unity of +the faith, and of the knowledge of the Son of God, unto a perfect man, +unto the measure of the stature of the fulness of Christ: 4:14 That we +henceforth be no more children, tossed to and fro, and carried about +with every wind of doctrine, by the sleight of men, and cunning +craftiness, whereby they lie in wait to deceive; 4:15 But speaking the +truth in love, may grow up into him in all things, which is the head, +even Christ: 4:16 From whom the whole body fitly joined together and +compacted by that which every joint supplieth, according to the +effectual working in the measure of every part, maketh increase of the +body unto the edifying of itself in love. + +4:17 This I say therefore, and testify in the Lord, that ye henceforth +walk not as other Gentiles walk, in the vanity of their mind, 4:18 +Having the understanding darkened, being alienated from the life of +God through the ignorance that is in them, because of the blindness of +their heart: 4:19 Who being past feeling have given themselves over +unto lasciviousness, to work all uncleanness with greediness. + +4:20 But ye have not so learned Christ; 4:21 If so be that ye have +heard him, and have been taught by him, as the truth is in Jesus: 4:22 +That ye put off concerning the former conversation the old man, which +is corrupt according to the deceitful lusts; 4:23 And be renewed in +the spirit of your mind; 4:24 And that ye put on the new man, which +after God is created in righteousness and true holiness. + +4:25 Wherefore putting away lying, speak every man truth with his +neighbour: for we are members one of another. + +4:26 Be ye angry, and sin not: let not the sun go down upon your +wrath: 4:27 Neither give place to the devil. + +4:28 Let him that stole steal no more: but rather let him labour, +working with his hands the thing which is good, that he may have to +give to him that needeth. + +4:29 Let no corrupt communication proceed out of your mouth, but that +which is good to the use of edifying, that it may minister grace unto +the hearers. + +4:30 And grieve not the holy Spirit of God, whereby ye are sealed unto +the day of redemption. + +4:31 Let all bitterness, and wrath, and anger, and clamour, and evil +speaking, be put away from you, with all malice: 4:32 And be ye kind +one to another, tenderhearted, forgiving one another, even as God for +Christ's sake hath forgiven you. + +5:1 Be ye therefore followers of God, as dear children; 5:2 And walk +in love, as Christ also hath loved us, and hath given himself for us +an offering and a sacrifice to God for a sweetsmelling savour. + +5:3 But fornication, and all uncleanness, or covetousness, let it not +be once named among you, as becometh saints; 5:4 Neither filthiness, +nor foolish talking, nor jesting, which are not convenient: but rather +giving of thanks. + +5:5 For this ye know, that no whoremonger, nor unclean person, nor +covetous man, who is an idolater, hath any inheritance in the kingdom +of Christ and of God. + +5:6 Let no man deceive you with vain words: for because of these +things cometh the wrath of God upon the children of disobedience. + +5:7 Be not ye therefore partakers with them. + +5:8 For ye were sometimes darkness, but now are ye light in the Lord: +walk as children of light: 5:9 (For the fruit of the Spirit is in all +goodness and righteousness and truth;) 5:10 Proving what is acceptable +unto the Lord. + +5:11 And have no fellowship with the unfruitful works of darkness, but +rather reprove them. + +5:12 For it is a shame even to speak of those things which are done of +them in secret. + +5:13 But all things that are reproved are made manifest by the light: +for whatsoever doth make manifest is light. + +5:14 Wherefore he saith, Awake thou that sleepest, and arise from the +dead, and Christ shall give thee light. + +5:15 See then that ye walk circumspectly, not as fools, but as wise, +5:16 Redeeming the time, because the days are evil. + +5:17 Wherefore be ye not unwise, but understanding what the will of +the Lord is. + +5:18 And be not drunk with wine, wherein is excess; but be filled with +the Spirit; 5:19 Speaking to yourselves in psalms and hymns and +spiritual songs, singing and making melody in your heart to the Lord; +5:20 Giving thanks always for all things unto God and the Father in +the name of our Lord Jesus Christ; 5:21 Submitting yourselves one to +another in the fear of God. + +5:22 Wives, submit yourselves unto your own husbands, as unto the +Lord. + +5:23 For the husband is the head of the wife, even as Christ is the +head of the church: and he is the saviour of the body. + +5:24 Therefore as the church is subject unto Christ, so let the wives +be to their own husbands in every thing. + +5:25 Husbands, love your wives, even as Christ also loved the church, +and gave himself for it; 5:26 That he might sanctify and cleanse it +with the washing of water by the word, 5:27 That he might present it +to himself a glorious church, not having spot, or wrinkle, or any such +thing; but that it should be holy and without blemish. + +5:28 So ought men to love their wives as their own bodies. He that +loveth his wife loveth himself. + +5:29 For no man ever yet hated his own flesh; but nourisheth and +cherisheth it, even as the Lord the church: 5:30 For we are members of +his body, of his flesh, and of his bones. + +5:31 For this cause shall a man leave his father and mother, and shall +be joined unto his wife, and they two shall be one flesh. + +5:32 This is a great mystery: but I speak concerning Christ and the +church. + +5:33 Nevertheless let every one of you in particular so love his wife +even as himself; and the wife see that she reverence her husband. + +6:1 Children, obey your parents in the Lord: for this is right. + +6:2 Honour thy father and mother; which is the first commandment with +promise; 6:3 That it may be well with thee, and thou mayest live long +on the earth. + +6:4 And, ye fathers, provoke not your children to wrath: but bring +them up in the nurture and admonition of the Lord. + +6:5 Servants, be obedient to them that are your masters according to +the flesh, with fear and trembling, in singleness of your heart, as +unto Christ; 6:6 Not with eyeservice, as menpleasers; but as the +servants of Christ, doing the will of God from the heart; 6:7 With +good will doing service, as to the Lord, and not to men: 6:8 Knowing +that whatsoever good thing any man doeth, the same shall he receive of +the Lord, whether he be bond or free. + +6:9 And, ye masters, do the same things unto them, forbearing +threatening: knowing that your Master also is in heaven; neither is +there respect of persons with him. + +6:10 Finally, my brethren, be strong in the Lord, and in the power of +his might. + +6:11 Put on the whole armour of God, that ye may be able to stand +against the wiles of the devil. + +6:12 For we wrestle not against flesh and blood, but against +principalities, against powers, against the rulers of the darkness of +this world, against spiritual wickedness in high places. + +6:13 Wherefore take unto you the whole armour of God, that ye may be +able to withstand in the evil day, and having done all, to stand. + +6:14 Stand therefore, having your loins girt about with truth, and +having on the breastplate of righteousness; 6:15 And your feet shod +with the preparation of the gospel of peace; 6:16 Above all, taking +the shield of faith, wherewith ye shall be able to quench all the +fiery darts of the wicked. + +6:17 And take the helmet of salvation, and the sword of the Spirit, +which is the word of God: 6:18 Praying always with all prayer and +supplication in the Spirit, and watching thereunto with all +perseverance and supplication for all saints; 6:19 And for me, that +utterance may be given unto me, that I may open my mouth boldly, to +make known the mystery of the gospel, 6:20 For which I am an +ambassador in bonds: that therein I may speak boldly, as I ought to +speak. + +6:21 But that ye also may know my affairs, and how I do, Tychicus, a +beloved brother and faithful minister in the Lord, shall make known to +you all things: 6:22 Whom I have sent unto you for the same purpose, +that ye might know our affairs, and that he might comfort your hearts. + +6:23 Peace be to the brethren, and love with faith, from God the +Father and the Lord Jesus Christ. + +6:24 Grace be with all them that love our Lord Jesus Christ in +sincerity. + +Amen. + + + + +The Epistle of Paul the Apostle to the Philippians + + +1:1 Paul and Timotheus, the servants of Jesus Christ, to all the +saints in Christ Jesus which are at Philippi, with the bishops and +deacons: 1:2 Grace be unto you, and peace, from God our Father, and +from the Lord Jesus Christ. + +1:3 I thank my God upon every remembrance of you, 1:4 Always in every +prayer of mine for you all making request with joy, 1:5 For your +fellowship in the gospel from the first day until now; 1:6 Being +confident of this very thing, that he which hath begun a good work in +you will perform it until the day of Jesus Christ: 1:7 Even as it is +meet for me to think this of you all, because I have you in my heart; +inasmuch as both in my bonds, and in the defence and confirmation of +the gospel, ye all are partakers of my grace. + +1:8 For God is my record, how greatly I long after you all in the +bowels of Jesus Christ. + +1:9 And this I pray, that your love may abound yet more and more in +knowledge and in all judgment; 1:10 That ye may approve things that +are excellent; that ye may be sincere and without offence till the day +of Christ. + +1:11 Being filled with the fruits of righteousness, which are by Jesus +Christ, unto the glory and praise of God. + +1:12 But I would ye should understand, brethren, that the things which +happened unto me have fallen out rather unto the furtherance of the +gospel; 1:13 So that my bonds in Christ are manifest in all the +palace, and in all other places; 1:14 And many of the brethren in the +Lord, waxing confident by my bonds, are much more bold to speak the +word without fear. + +1:15 Some indeed preach Christ even of envy and strife; and some also +of good will: 1:16 The one preach Christ of contention, not sincerely, +supposing to add affliction to my bonds: 1:17 But the other of love, +knowing that I am set for the defence of the gospel. + +1:18 What then? notwithstanding, every way, whether in pretence, or in +truth, Christ is preached; and I therein do rejoice, yea, and will +rejoice. + +1:19 For I know that this shall turn to my salvation through your +prayer, and the supply of the Spirit of Jesus Christ, 1:20 According +to my earnest expectation and my hope, that in nothing I shall be +ashamed, but that with all boldness, as always, so now also Christ +shall be magnified in my body, whether it be by life, or by death. + +1:21 For to me to live is Christ, and to die is gain. + +1:22 But if I live in the flesh, this is the fruit of my labour: yet +what I shall choose I wot not. + +1:23 For I am in a strait betwixt two, having a desire to depart, and +to be with Christ; which is far better: 1:24 Nevertheless to abide in +the flesh is more needful for you. + +1:25 And having this confidence, I know that I shall abide and +continue with you all for your furtherance and joy of faith; 1:26 That +your rejoicing may be more abundant in Jesus Christ for me by my +coming to you again. + +1:27 Only let your conversation be as it becometh the gospel of +Christ: that whether I come and see you, or else be absent, I may hear +of your affairs, that ye stand fast in one spirit, with one mind +striving together for the faith of the gospel; 1:28 And in nothing +terrified by your adversaries: which is to them an evident token of +perdition, but to you of salvation, and that of God. + +1:29 For unto you it is given in the behalf of Christ, not only to +believe on him, but also to suffer for his sake; 1:30 Having the same +conflict which ye saw in me, and now hear to be in me. + +2:1 If there be therefore any consolation in Christ, if any comfort of +love, if any fellowship of the Spirit, if any bowels and mercies, 2:2 +Fulfil ye my joy, that ye be likeminded, having the same love, being +of one accord, of one mind. + +2:3 Let nothing be done through strife or vainglory; but in lowliness +of mind let each esteem other better than themselves. + +2:4 Look not every man on his own things, but every man also on the +things of others. + +2:5 Let this mind be in you, which was also in Christ Jesus: 2:6 Who, +being in the form of God, thought it not robbery to be equal with God: +2:7 But made himself of no reputation, and took upon him the form of a +servant, and was made in the likeness of men: 2:8 And being found in +fashion as a man, he humbled himself, and became obedient unto death, +even the death of the cross. + +2:9 Wherefore God also hath highly exalted him, and given him a name +which is above every name: 2:10 That at the name of Jesus every knee +should bow, of things in heaven, and things in earth, and things under +the earth; 2:11 And that every tongue should confess that Jesus Christ +is Lord, to the glory of God the Father. + +2:12 Wherefore, my beloved, as ye have always obeyed, not as in my +presence only, but now much more in my absence, work out your own +salvation with fear and trembling. + +2:13 For it is God which worketh in you both to will and to do of his +good pleasure. + +2:14 Do all things without murmurings and disputings: 2:15 That ye may +be blameless and harmless, the sons of God, without rebuke, in the +midst of a crooked and perverse nation, among whom ye shine as lights +in the world; 2:16 Holding forth the word of life; that I may rejoice +in the day of Christ, that I have not run in vain, neither laboured in +vain. + +2:17 Yea, and if I be offered upon the sacrifice and service of your +faith, I joy, and rejoice with you all. + +2:18 For the same cause also do ye joy, and rejoice with me. + +2:19 But I trust in the Lord Jesus to send Timotheus shortly unto you, +that I also may be of good comfort, when I know your state. + +2:20 For I have no man likeminded, who will naturally care for your +state. + +2:21 For all seek their own, not the things which are Jesus Christ's. + +2:22 But ye know the proof of him, that, as a son with the father, he +hath served with me in the gospel. + +2:23 Him therefore I hope to send presently, so soon as I shall see +how it will go with me. + +2:24 But I trust in the Lord that I also myself shall come shortly. + +2:25 Yet I supposed it necessary to send to you Epaphroditus, my +brother, and companion in labour, and fellowsoldier, but your +messenger, and he that ministered to my wants. + +2:26 For he longed after you all, and was full of heaviness, because +that ye had heard that he had been sick. + +2:27 For indeed he was sick nigh unto death: but God had mercy on him; +and not on him only, but on me also, lest I should have sorrow upon +sorrow. + +2:28 I sent him therefore the more carefully, that, when ye see him +again, ye may rejoice, and that I may be the less sorrowful. + +2:29 Receive him therefore in the Lord with all gladness; and hold +such in reputation: 2:30 Because for the work of Christ he was nigh +unto death, not regarding his life, to supply your lack of service +toward me. + +3:1 Finally, my brethren, rejoice in the Lord. To write the same +things to you, to me indeed is not grievous, but for you it is safe. + +3:2 Beware of dogs, beware of evil workers, beware of the concision. + +3:3 For we are the circumcision, which worship God in the spirit, and +rejoice in Christ Jesus, and have no confidence in the flesh. + +3:4 Though I might also have confidence in the flesh. If any other man +thinketh that he hath whereof he might trust in the flesh, I more: 3:5 +Circumcised the eighth day, of the stock of Israel, of the tribe of +Benjamin, an Hebrew of the Hebrews; as touching the law, a Pharisee; +3:6 Concerning zeal, persecuting the church; touching the +righteousness which is in the law, blameless. + +3:7 But what things were gain to me, those I counted loss for Christ. + +3:8 Yea doubtless, and I count all things but loss for the excellency +of the knowledge of Christ Jesus my Lord: for whom I have suffered the +loss of all things, and do count them but dung, that I may win Christ, +3:9 And be found in him, not having mine own righteousness, which is +of the law, but that which is through the faith of Christ, the +righteousness which is of God by faith: 3:10 That I may know him, and +the power of his resurrection, and the fellowship of his sufferings, +being made conformable unto his death; 3:11 If by any means I might +attain unto the resurrection of the dead. + +3:12 Not as though I had already attained, either were already +perfect: but I follow after, if that I may apprehend that for which +also I am apprehended of Christ Jesus. + +3:13 Brethren, I count not myself to have apprehended: but this one +thing I do, forgetting those things which are behind, and reaching +forth unto those things which are before, 3:14 I press toward the mark +for the prize of the high calling of God in Christ Jesus. + +3:15 Let us therefore, as many as be perfect, be thus minded: and if +in any thing ye be otherwise minded, God shall reveal even this unto +you. + +3:16 Nevertheless, whereto we have already attained, let us walk by +the same rule, let us mind the same thing. + +3:17 Brethren, be followers together of me, and mark them which walk +so as ye have us for an ensample. + +3:18 (For many walk, of whom I have told you often, and now tell you +even weeping, that they are the enemies of the cross of Christ: 3:19 +Whose end is destruction, whose God is their belly, and whose glory is +in their shame, who mind earthly things.) 3:20 For our conversation +is in heaven; from whence also we look for the Saviour, the Lord Jesus +Christ: 3:21 Who shall change our vile body, that it may be fashioned +like unto his glorious body, according to the working whereby he is +able even to subdue all things unto himself. + +4:1 Therefore, my brethren dearly beloved and longed for, my joy and +crown, so stand fast in the Lord, my dearly beloved. + +4:2 I beseech Euodias, and beseech Syntyche, that they be of the same +mind in the Lord. + +4:3 And I intreat thee also, true yokefellow, help those women which +laboured with me in the gospel, with Clement also, and with other my +fellowlabourers, whose names are in the book of life. + +4:4 Rejoice in the Lord alway: and again I say, Rejoice. + +4:5 Let your moderation be known unto all men. The Lord is at hand. + +4:6 Be careful for nothing; but in every thing by prayer and +supplication with thanksgiving let your requests be made known unto +God. + +4:7 And the peace of God, which passeth all understanding, shall keep +your hearts and minds through Christ Jesus. + +4:8 Finally, brethren, whatsoever things are true, whatsoever things +are honest, whatsoever things are just, whatsoever things are pure, +whatsoever things are lovely, whatsoever things are of good report; if +there be any virtue, and if there be any praise, think on these +things. + +4:9 Those things, which ye have both learned, and received, and heard, +and seen in me, do: and the God of peace shall be with you. + +4:10 But I rejoiced in the Lord greatly, that now at the last your +care of me hath flourished again; wherein ye were also careful, but ye +lacked opportunity. + +4:11 Not that I speak in respect of want: for I have learned, in +whatsoever state I am, therewith to be content. + +4:12 I know both how to be abased, and I know how to abound: every +where and in all things I am instructed both to be full and to be +hungry, both to abound and to suffer need. + +4:13 I can do all things through Christ which strengtheneth me. + +4:14 Notwithstanding ye have well done, that ye did communicate with +my affliction. + +4:15 Now ye Philippians know also, that in the beginning of the +gospel, when I departed from Macedonia, no church communicated with me +as concerning giving and receiving, but ye only. + +4:16 For even in Thessalonica ye sent once and again unto my +necessity. + +4:17 Not because I desire a gift: but I desire fruit that may abound +to your account. + +4:18 But I have all, and abound: I am full, having received of +Epaphroditus the things which were sent from you, an odour of a sweet +smell, a sacrifice acceptable, wellpleasing to God. + +4:19 But my God shall supply all your need according to his riches in +glory by Christ Jesus. + +4:20 Now unto God and our Father be glory for ever and ever. Amen. + +4:21 Salute every saint in Christ Jesus. The brethren which are with +me greet you. + +4:22 All the saints salute you, chiefly they that are of Caesar's +household. + +4:23 The grace of our Lord Jesus Christ be with you all. Amen. + + + + +The Epistle of Paul the Apostle to the Colossians + + +1:1 Paul, an apostle of Jesus Christ by the will of God, +and Timotheus our brother, 1:2 To the saints and faithful brethren +in Christ which are at Colosse: Grace be unto you, and peace, +from God our Father and the Lord Jesus Christ. + +1:3 We give thanks to God and the Father of our Lord Jesus Christ, praying +always for you, +1:4 Since we heard of your faith in Christ Jesus, and of the love which ye +have to all the saints, +1:5 For the hope which is laid up for you in heaven, whereof ye heard +before in the word of the truth of the gospel; +1:6 Which is come unto you, as it is in all the world; and bringeth forth +fruit, as it doth also in you, since the day ye heard of it, and knew the +grace of God in truth: +1:7 As ye also learned of Epaphras our dear fellowservant, who is for you +a faithful minister of Christ; +1:8 Who also declared unto us your love in the Spirit. + +1:9 For this cause we also, since the day we heard it, do not cease to +pray for you, and to desire that ye might be filled with the knowledge of his +will in all wisdom and spiritual understanding; +1:10 That ye might walk worthy of the Lord unto all pleasing, being +fruitful in every good work, and increasing in the knowledge of God; +1:11 Strengthened with all might, according to his glorious power, unto +all patience and longsuffering with joyfulness; +1:12 Giving thanks unto the Father, which hath made us meet to be +partakers of the inheritance of the saints in light: +1:13 Who hath delivered us from the power of darkness, and hath translated +us into the kingdom of his dear Son: +1:14 In whom we have redemption through his blood, even the forgiveness of +sins: +1:15 Who is the image of the invisible God, the firstborn of every +creature: +1:16 For by him were all things created, that are in heaven, and that are +in earth, visible and invisible, whether they be thrones, or dominions, or +principalities, or powers: all things were created by him, and for him: +1:17 And he is before all things, and by him all things consist. + +1:18 And he is the head of the body, the church: who is the beginning, the +firstborn from the dead; that in all things he might have the preeminence. + +1:19 For it pleased the Father that in him should all fulness dwell; +1:20 And, having made peace through the blood of his cross, by him to +reconcile all things unto himself; by him, I say, whether they be things in +earth, or things in heaven. + +1:21 And you, that were sometime alienated and enemies in your mind by +wicked works, yet now hath he reconciled +1:22 In the body of his flesh through death, to present you holy and +unblameable and unreproveable in his sight: +1:23 If ye continue in the faith grounded and settled, and be not moved +away from the hope of the gospel, which ye have heard, and which was preached +to every creature which is under heaven; whereof I Paul am made a minister; +1:24 Who now rejoice in my sufferings for you, and fill up that which is +behind of the afflictions of Christ in my flesh for his body's sake, which is +the church: +1:25 Whereof I am made a minister, according to the dispensation of God +which is given to me for you, to fulfil the word of God; +1:26 Even the mystery which hath been hid from ages and from generations, +but now is made manifest to his saints: +1:27 To whom God would make known what is the riches of the glory of this +mystery among the Gentiles; which is Christ in you, the hope of glory: +1:28 Whom we preach, warning every man, and teaching every man in all +wisdom; that we may present every man perfect in Christ Jesus: +1:29 Whereunto I also labour, striving according to his working, which +worketh in me mightily. + +2:1 For I would that ye knew what great conflict I have for you, and for +them at Laodicea, and for as many as have not seen my face in the flesh; +2:2 That their hearts might be comforted, being knit together in love, and +unto all riches of the full assurance of understanding, to the +acknowledgement of the mystery of God, and of the Father, and of Christ; +2:3 In whom are hid all the treasures of wisdom and knowledge. + +2:4 And this I say, lest any man should beguile you with enticing words. + +2:5 For though I be absent in the flesh, yet am I with you in the spirit, +joying and beholding your order, and the stedfastness of your faith in +Christ. + +2:6 As ye have therefore received Christ Jesus the Lord, so walk ye in +him: +2:7 Rooted and built up in him, and stablished in the faith, as ye have +been taught, abounding therein with thanksgiving. + +2:8 Beware lest any man spoil you through philosophy and vain deceit, +after the tradition of men, after the rudiments of the world, and not after +Christ. + +2:9 For in him dwelleth all the fulness of the Godhead bodily. + +2:10 And ye are complete in him, which is the head of all principality and +power: +2:11 In whom also ye are circumcised with the circumcision made without +hands, in putting off the body of the sins of the flesh by the circumcision +of Christ: +2:12 Buried with him in baptism, wherein also ye are risen with him +through the faith of the operation of God, who hath raised him from the dead. + +2:13 And you, being dead in your sins and the uncircumcision of your +flesh, hath he quickened together with him, having forgiven you all +trespasses; +2:14 Blotting out the handwriting of ordinances that was against us, which +was contrary to us, and took it out of the way, nailing it to his cross; +2:15 And having spoiled principalities and powers, he made a shew of them +openly, triumphing over them in it. + +2:16 Let no man therefore judge you in meat, or in drink, or in respect of +an holyday, or of the new moon, or of the sabbath days: +2:17 Which are a shadow of things to come; but the body is of Christ. + +2:18 Let no man beguile you of your reward in a voluntary humility and +worshipping of angels, intruding into those things which he hath not seen, +vainly puffed up by his fleshly mind, +2:19 And not holding the Head, from which all the body by joints and bands +having nourishment ministered, and knit together, increaseth with the +increase of God. + +2:20 Wherefore if ye be dead with Christ from the rudiments of the world, +why, as though living in the world, are ye subject to ordinances, +2:21 (Touch not; taste not; handle not; +2:22 Which all are to perish with the using;) after the commandments and +doctrines of men? +2:23 Which things have indeed a shew of wisdom in will worship, and +humility, and neglecting of the body: not in any honour to the satisfying +of the flesh. + +3:1 If ye then be risen with Christ, seek those things which are above, +where Christ sitteth on the right hand of God. + +3:2 Set your affection on things above, not on things on the earth. + +3:3 For ye are dead, and your life is hid with Christ in God. + +3:4 When Christ, who is our life, shall appear, then shall ye also appear +with him in glory. + +3:5 Mortify therefore your members which are upon the earth; fornication, +uncleanness, inordinate affection, evil concupiscence, and covetousness, +which is idolatry: +3:6 For which things' sake the wrath of God cometh on the children of +disobedience: +3:7 In the which ye also walked some time, when ye lived in them. + +3:8 But now ye also put off all these; anger, wrath, malice, blasphemy, +filthy communication out of your mouth. + +3:9 Lie not one to another, seeing that ye have put off the old man with +his deeds; +3:10 And have put on the new man, which is renewed in knowledge after the +image of him that created him: +3:11 Where there is neither Greek nor Jew, circumcision nor +uncircumcision, Barbarian, Scythian, bond nor free: but Christ is all, and in +all. + +3:12 Put on therefore, as the elect of God, holy and beloved, bowels of +mercies, kindness, humbleness of mind, meekness, longsuffering; +3:13 Forbearing one another, and forgiving one another, if any man have a +quarrel against any: even as Christ forgave you, so also do ye. + +3:14 And above all these things put on charity, which is the bond of +perfectness. + +3:15 And let the peace of God rule in your hearts, to the which also ye +are called in one body; and be ye thankful. + +3:16 Let the word of Christ dwell in you richly in all wisdom; teaching +and admonishing one another in psalms and hymns and spiritual songs, singing +with grace in your hearts to the Lord. + +3:17 And whatsoever ye do in word or deed, do all in the name of the Lord +Jesus, giving thanks to God and the Father by him. + +3:18 Wives, submit yourselves unto your own husbands, as it is fit in the +Lord. + +3:19 Husbands, love your wives, and be not bitter against them. + +3:20 Children, obey your parents in all things: for this is well pleasing +unto the Lord. + +3:21 Fathers, provoke not your children to anger, lest they be +discouraged. + +3:22 Servants, obey in all things your masters according to the flesh; not +with eyeservice, as menpleasers; but in singleness of heart, fearing God; +3:23 And whatsoever ye do, do it heartily, as to the Lord, and not unto +men; +3:24 Knowing that of the Lord ye shall receive the reward of the +inheritance: for ye serve the Lord Christ. + +3:25 But he that doeth wrong shall receive for the wrong which he hath +done: and there is no respect of persons. + +4:1 Masters, give unto your servants that which is just and equal; knowing +that ye also have a Master in heaven. + +4:2 Continue in prayer, and watch in the same with thanksgiving; +4:3 Withal praying also for us, that God would open unto us a door of +utterance, to speak the mystery of Christ, for which I am also in bonds: +4:4 That I may make it manifest, as I ought to speak. + +4:5 Walk in wisdom toward them that are without, redeeming the time. + +4:6 Let your speech be alway with grace, seasoned with salt, that ye may +know how ye ought to answer every man. + +4:7 All my state shall Tychicus declare unto you, who is a beloved +brother, and a faithful minister and fellowservant in the Lord: +4:8 Whom I have sent unto you for the same purpose, that he might know +your estate, and comfort your hearts; +4:9 With Onesimus, a faithful and beloved brother, who is one of you. They +shall make known unto you all things which are done here. + +4:10 Aristarchus my fellowprisoner saluteth you, and Marcus, sister's son +to Barnabas, (touching whom ye received commandments: if he come unto you, +receive him;) +4:11 And Jesus, which is called Justus, who are of the circumcision. These +only are my fellowworkers unto the kingdom of God, which have been a comfort +unto me. + +4:12 Epaphras, who is one of you, a servant of Christ, saluteth you, +always labouring fervently for you in prayers, that ye may stand perfect and +complete in all the will of God. + +4:13 For I bear him record, that he hath a great zeal for you, and them +that are in Laodicea, and them in Hierapolis. + +4:14 Luke, the beloved physician, and Demas, greet you. + +4:15 Salute the brethren which are in Laodicea, and Nymphas, and the +church which is in his house. + +4:16 And when this epistle is read among you, cause that it be read also +in the church of the Laodiceans; and that ye likewise read the epistle from +Laodicea. + +4:17 And say to Archippus, Take heed to the ministry which thou hast +received in the Lord, that thou fulfil it. + +4:18 The salutation by the hand of me Paul. Remember my bonds. Grace be +with you. Amen. + + + + +The First Epistle of Paul the Apostle to the Thessalonians + + +1:1 Paul, and Silvanus, and Timotheus, unto the church of the +Thessalonians which is in God the Father and in the Lord Jesus Christ: +Grace be unto you, and peace, from God our Father, and the Lord Jesus +Christ. + +1:2 We give thanks to God always for you all, making mention of you in +our prayers; 1:3 Remembering without ceasing your work of faith, and +labour of love, and patience of hope in our Lord Jesus Christ, in the +sight of God and our Father; 1:4 Knowing, brethren beloved, your +election of God. + +1:5 For our gospel came not unto you in word only, but also in power, +and in the Holy Ghost, and in much assurance; as ye know what manner +of men we were among you for your sake. + +1:6 And ye became followers of us, and of the Lord, having received +the word in much affliction, with joy of the Holy Ghost. + +1:7 So that ye were ensamples to all that believe in Macedonia and +Achaia. + +1:8 For from you sounded out the word of the Lord not only in +Macedonia and Achaia, but also in every place your faith to God-ward +is spread abroad; so that we need not to speak any thing. + +1:9 For they themselves shew of us what manner of entering in we had +unto you, and how ye turned to God from idols to serve the living and +true God; 1:10 And to wait for his Son from heaven, whom he raised +from the dead, even Jesus, which delivered us from the wrath to come. + +2:1 For yourselves, brethren, know our entrance in unto you, that it +was not in vain: 2:2 But even after that we had suffered before, and +were shamefully entreated, as ye know, at Philippi, we were bold in +our God to speak unto you the gospel of God with much contention. + +2:3 For our exhortation was not of deceit, nor of uncleanness, nor in +guile: 2:4 But as we were allowed of God to be put in trust with the +gospel, even so we speak; not as pleasing men, but God, which trieth +our hearts. + +2:5 For neither at any time used we flattering words, as ye know, nor +a cloke of covetousness; God is witness: 2:6 Nor of men sought we +glory, neither of you, nor yet of others, when we might have been +burdensome, as the apostles of Christ. + +2:7 But we were gentle among you, even as a nurse cherisheth her +children: 2:8 So being affectionately desirous of you, we were willing +to have imparted unto you, not the gospel of God only, but also our +own souls, because ye were dear unto us. + +2:9 For ye remember, brethren, our labour and travail: for labouring +night and day, because we would not be chargeable unto any of you, we +preached unto you the gospel of God. + +2:10 Ye are witnesses, and God also, how holily and justly and +unblameably we behaved ourselves among you that believe: 2:11 As ye +know how we exhorted and comforted and charged every one of you, as a +father doth his children, 2:12 That ye would walk worthy of God, who +hath called you unto his kingdom and glory. + +2:13 For this cause also thank we God without ceasing, because, when +ye received the word of God which ye heard of us, ye received it not +as the word of men, but as it is in truth, the word of God, which +effectually worketh also in you that believe. + +2:14 For ye, brethren, became followers of the churches of God which +in Judaea are in Christ Jesus: for ye also have suffered like things +of your own countrymen, even as they have of the Jews: 2:15 Who both +killed the Lord Jesus, and their own prophets, and have persecuted us; +and they please not God, and are contrary to all men: 2:16 Forbidding +us to speak to the Gentiles that they might be saved, to fill up their +sins alway: for the wrath is come upon them to the uttermost. + +2:17 But we, brethren, being taken from you for a short time in +presence, not in heart, endeavoured the more abundantly to see your +face with great desire. + +2:18 Wherefore we would have come unto you, even I Paul, once and +again; but Satan hindered us. + +2:19 For what is our hope, or joy, or crown of rejoicing? Are not even +ye in the presence of our Lord Jesus Christ at his coming? 2:20 For +ye are our glory and joy. + +3:1 Wherefore when we could no longer forbear, we thought it good to +be left at Athens alone; 3:2 And sent Timotheus, our brother, and +minister of God, and our fellowlabourer in the gospel of Christ, to +establish you, and to comfort you concerning your faith: 3:3 That no +man should be moved by these afflictions: for yourselves know that we +are appointed thereunto. + +3:4 For verily, when we were with you, we told you before that we +should suffer tribulation; even as it came to pass, and ye know. + +3:5 For this cause, when I could no longer forbear, I sent to know +your faith, lest by some means the tempter have tempted you, and our +labour be in vain. + +3:6 But now when Timotheus came from you unto us, and brought us good +tidings of your faith and charity, and that ye have good remembrance +of us always, desiring greatly to see us, as we also to see you: 3:7 +Therefore, brethren, we were comforted over you in all our affliction +and distress by your faith: 3:8 For now we live, if ye stand fast in +the Lord. + +3:9 For what thanks can we render to God again for you, for all the +joy wherewith we joy for your sakes before our God; 3:10 Night and day +praying exceedingly that we might see your face, and might perfect +that which is lacking in your faith? 3:11 Now God himself and our +Father, and our Lord Jesus Christ, direct our way unto you. + +3:12 And the Lord make you to increase and abound in love one toward +another, and toward all men, even as we do toward you: 3:13 To the end +he may stablish your hearts unblameable in holiness before God, even +our Father, at the coming of our Lord Jesus Christ with all his +saints. + +4:1 Furthermore then we beseech you, brethren, and exhort you by the +Lord Jesus, that as ye have received of us how ye ought to walk and to +please God, so ye would abound more and more. + +4:2 For ye know what commandments we gave you by the Lord Jesus. + +4:3 For this is the will of God, even your sanctification, that ye +should abstain from fornication: 4:4 That every one of you should know +how to possess his vessel in sanctification and honour; 4:5 Not in the +lust of concupiscence, even as the Gentiles which know not God: 4:6 +That no man go beyond and defraud his brother in any matter: because +that the Lord is the avenger of all such, as we also have forewarned +you and testified. + +4:7 For God hath not called us unto uncleanness, but unto holiness. + +4:8 He therefore that despiseth, despiseth not man, but God, who hath +also given unto us his holy Spirit. + +4:9 But as touching brotherly love ye need not that I write unto you: +for ye yourselves are taught of God to love one another. + +4:10 And indeed ye do it toward all the brethren which are in all +Macedonia: but we beseech you, brethren, that ye increase more and +more; 4:11 And that ye study to be quiet, and to do your own business, +and to work with your own hands, as we commanded you; 4:12 That ye may +walk honestly toward them that are without, and that ye may have lack +of nothing. + +4:13 But I would not have you to be ignorant, brethren, concerning +them which are asleep, that ye sorrow not, even as others which have +no hope. + +4:14 For if we believe that Jesus died and rose again, even so them +also which sleep in Jesus will God bring with him. + +4:15 For this we say unto you by the word of the Lord, that we which +are alive and remain unto the coming of the Lord shall not prevent +them which are asleep. + +4:16 For the Lord himself shall descend from heaven with a shout, with +the voice of the archangel, and with the trump of God: and the dead in +Christ shall rise first: 4:17 Then we which are alive and remain shall +be caught up together with them in the clouds, to meet the Lord in the +air: and so shall we ever be with the Lord. + +4:18 Wherefore comfort one another with these words. + +5:1 But of the times and the seasons, brethren, ye have no need that I +write unto you. + +5:2 For yourselves know perfectly that the day of the Lord so cometh +as a thief in the night. + +5:3 For when they shall say, Peace and safety; then sudden destruction +cometh upon them, as travail upon a woman with child; and they shall +not escape. + +5:4 But ye, brethren, are not in darkness, that that day should +overtake you as a thief. + +5:5 Ye are all the children of light, and the children of the day: we +are not of the night, nor of darkness. + +5:6 Therefore let us not sleep, as do others; but let us watch and be +sober. + +5:7 For they that sleep sleep in the night; and they that be drunken +are drunken in the night. + +5:8 But let us, who are of the day, be sober, putting on the +breastplate of faith and love; and for an helmet, the hope of +salvation. + +5:9 For God hath not appointed us to wrath, but to obtain salvation by +our Lord Jesus Christ, 5:10 Who died for us, that, whether we wake or +sleep, we should live together with him. + +5:11 Wherefore comfort yourselves together, and edify one another, +even as also ye do. + +5:12 And we beseech you, brethren, to know them which labour among +you, and are over you in the Lord, and admonish you; 5:13 And to +esteem them very highly in love for their work's sake. And be at peace +among yourselves. + +5:14 Now we exhort you, brethren, warn them that are unruly, comfort +the feebleminded, support the weak, be patient toward all men. + +5:15 See that none render evil for evil unto any man; but ever follow +that which is good, both among yourselves, and to all men. + +5:16 Rejoice evermore. + +5:17 Pray without ceasing. + +5:18 In every thing give thanks: for this is the will of God in Christ +Jesus concerning you. + +5:19 Quench not the Spirit. + +5:20 Despise not prophesyings. + +5:21 Prove all things; hold fast that which is good. + +5:22 Abstain from all appearance of evil. + +5:23 And the very God of peace sanctify you wholly; and I pray God +your whole spirit and soul and body be preserved blameless unto the +coming of our Lord Jesus Christ. + +5:24 Faithful is he that calleth you, who also will do it. + +5:25 Brethren, pray for us. + +5:26 Greet all the brethren with an holy kiss. + +5:27 I charge you by the Lord that this epistle be read unto all the +holy brethren. + +5:28 The grace of our Lord Jesus Christ be with you. Amen. + + + + +The Second Epistle of Paul the Apostle to the Thessalonians + + +1:1 Paul, and Silvanus, and Timotheus, unto the church of the +Thessalonians in God our Father and the Lord Jesus Christ: 1:2 Grace +unto you, and peace, from God our Father and the Lord Jesus Christ. + +1:3 We are bound to thank God always for you, brethren, as it is meet, +because that your faith groweth exceedingly, and the charity of every +one of you all toward each other aboundeth; 1:4 So that we ourselves +glory in you in the churches of God for your patience and faith in all +your persecutions and tribulations that ye endure: 1:5 Which is a +manifest token of the righteous judgment of God, that ye may be +counted worthy of the kingdom of God, for which ye also suffer: 1:6 +Seeing it is a righteous thing with God to recompense tribulation to +them that trouble you; 1:7 And to you who are troubled rest with us, +when the Lord Jesus shall be revealed from heaven with his mighty +angels, 1:8 In flaming fire taking vengeance on them that know not +God, and that obey not the gospel of our Lord Jesus Christ: 1:9 Who +shall be punished with everlasting destruction from the presence of +the Lord, and from the glory of his power; 1:10 When he shall come to +be glorified in his saints, and to be admired in all them that believe +(because our testimony among you was believed) in that day. + +1:11 Wherefore also we pray always for you, that our God would count +you worthy of this calling, and fulfil all the good pleasure of his +goodness, and the work of faith with power: 1:12 That the name of our +Lord Jesus Christ may be glorified in you, and ye in him, according to +the grace of our God and the Lord Jesus Christ. + +2:1 Now we beseech you, brethren, by the coming of our Lord Jesus +Christ, and by our gathering together unto him, 2:2 That ye be not +soon shaken in mind, or be troubled, neither by spirit, nor by word, +nor by letter as from us, as that the day of Christ is at hand. + +2:3 Let no man deceive you by any means: for that day shall not come, +except there come a falling away first, and that man of sin be +revealed, the son of perdition; 2:4 Who opposeth and exalteth himself +above all that is called God, or that is worshipped; so that he as God +sitteth in the temple of God, shewing himself that he is God. + +2:5 Remember ye not, that, when I was yet with you, I told you these +things? 2:6 And now ye know what withholdeth that he might be +revealed in his time. + +2:7 For the mystery of iniquity doth already work: only he who now +letteth will let, until he be taken out of the way. + +2:8 And then shall that Wicked be revealed, whom the Lord shall +consume with the spirit of his mouth, and shall destroy with the +brightness of his coming: 2:9 Even him, whose coming is after the +working of Satan with all power and signs and lying wonders, 2:10 And +with all deceivableness of unrighteousness in them that perish; +because they received not the love of the truth, that they might be +saved. + +2:11 And for this cause God shall send them strong delusion, that they +should believe a lie: 2:12 That they all might be damned who believed +not the truth, but had pleasure in unrighteousness. + +2:13 But we are bound to give thanks alway to God for you, brethren +beloved of the Lord, because God hath from the beginning chosen you to +salvation through sanctification of the Spirit and belief of the +truth: 2:14 Whereunto he called you by our gospel, to the obtaining of +the glory of our Lord Jesus Christ. + +2:15 Therefore, brethren, stand fast, and hold the traditions which ye +have been taught, whether by word, or our epistle. + +2:16 Now our Lord Jesus Christ himself, and God, even our Father, +which hath loved us, and hath given us everlasting consolation and +good hope through grace, 2:17 Comfort your hearts, and stablish you in +every good word and work. + +3:1 Finally, brethren, pray for us, that the word of the Lord may have +free course, and be glorified, even as it is with you: 3:2 And that we +may be delivered from unreasonable and wicked men: for all men have +not faith. + +3:3 But the Lord is faithful, who shall stablish you, and keep you +from evil. + +3:4 And we have confidence in the Lord touching you, that ye both do +and will do the things which we command you. + +3:5 And the Lord direct your hearts into the love of God, and into the +patient waiting for Christ. + +3:6 Now we command you, brethren, in the name of our Lord Jesus +Christ, that ye withdraw yourselves from every brother that walketh +disorderly, and not after the tradition which he received of us. + +3:7 For yourselves know how ye ought to follow us: for we behaved not +ourselves disorderly among you; 3:8 Neither did we eat any man's bread +for nought; but wrought with labour and travail night and day, that we +might not be chargeable to any of you: 3:9 Not because we have not +power, but to make ourselves an ensample unto you to follow us. + +3:10 For even when we were with you, this we commanded you, that if +any would not work, neither should he eat. + +3:11 For we hear that there are some which walk among you disorderly, +working not at all, but are busybodies. + +3:12 Now them that are such we command and exhort by our Lord Jesus +Christ, that with quietness they work, and eat their own bread. + +3:13 But ye, brethren, be not weary in well doing. + +3:14 And if any man obey not our word by this epistle, note that man, +and have no company with him, that he may be ashamed. + +3:15 Yet count him not as an enemy, but admonish him as a brother. + +3:16 Now the Lord of peace himself give you peace always by all means. +The Lord be with you all. + +3:17 The salutation of Paul with mine own hand, which is the token in +every epistle: so I write. + +3:18 The grace of our Lord Jesus Christ be with you all. Amen. + + + + +The First Epistle of Paul the Apostle to Timothy + + +1:1 Paul, an apostle of Jesus Christ by the commandment of God our +Saviour, and Lord Jesus Christ, which is our hope; 1:2 Unto Timothy, +my own son in the faith: Grace, mercy, and peace, from God our Father +and Jesus Christ our Lord. + +1:3 As I besought thee to abide still at Ephesus, when I went into +Macedonia, that thou mightest charge some that they teach no other +doctrine, 1:4 Neither give heed to fables and endless genealogies, +which minister questions, rather than godly edifying which is in +faith: so do. + +1:5 Now the end of the commandment is charity out of a pure heart, and +of a good conscience, and of faith unfeigned: 1:6 From which some +having swerved have turned aside unto vain jangling; 1:7 Desiring to +be teachers of the law; understanding neither what they say, nor +whereof they affirm. + +1:8 But we know that the law is good, if a man use it lawfully; 1:9 +Knowing this, that the law is not made for a righteous man, but for +the lawless and disobedient, for the ungodly and for sinners, for +unholy and profane, for murderers of fathers and murderers of mothers, +for manslayers, 1:10 For whoremongers, for them that defile themselves +with mankind, for menstealers, for liars, for perjured persons, and if +there be any other thing that is contrary to sound doctrine; 1:11 +According to the glorious gospel of the blessed God, which was +committed to my trust. + +1:12 And I thank Christ Jesus our Lord, who hath enabled me, for that +he counted me faithful, putting me into the ministry; 1:13 Who was +before a blasphemer, and a persecutor, and injurious: but I obtained +mercy, because I did it ignorantly in unbelief. + +1:14 And the grace of our Lord was exceeding abundant with faith and +love which is in Christ Jesus. + +1:15 This is a faithful saying, and worthy of all acceptation, that +Christ Jesus came into the world to save sinners; of whom I am chief. + +1:16 Howbeit for this cause I obtained mercy, that in me first Jesus +Christ might shew forth all longsuffering, for a pattern to them which +should hereafter believe on him to life everlasting. + +1:17 Now unto the King eternal, immortal, invisible, the only wise +God, be honour and glory for ever and ever. Amen. + +1:18 This charge I commit unto thee, son Timothy, according to the +prophecies which went before on thee, that thou by them mightest war a +good warfare; 1:19 Holding faith, and a good conscience; which some +having put away concerning faith have made shipwreck: 1:20 Of whom is +Hymenaeus and Alexander; whom I have delivered unto Satan, that they +may learn not to blaspheme. + +2:1 I exhort therefore, that, first of all, supplications, prayers, +intercessions, and giving of thanks, be made for all men; 2:2 For +kings, and for all that are in authority; that we may lead a quiet and +peaceable life in all godliness and honesty. + +2:3 For this is good and acceptable in the sight of God our Saviour; +2:4 Who will have all men to be saved, and to come unto the knowledge +of the truth. + +2:5 For there is one God, and one mediator between God and men, the +man Christ Jesus; 2:6 Who gave himself a ransom for all, to be +testified in due time. + +2:7 Whereunto I am ordained a preacher, and an apostle, (I speak the +truth in Christ, and lie not;) a teacher of the Gentiles in faith and +verity. + +2:8 I will therefore that men pray every where, lifting up holy hands, +without wrath and doubting. + +2:9 In like manner also, that women adorn themselves in modest +apparel, with shamefacedness and sobriety; not with broided hair, or +gold, or pearls, or costly array; 2:10 But (which becometh women +professing godliness) with good works. + +2:11 Let the woman learn in silence with all subjection. + +2:12 But I suffer not a woman to teach, nor to usurp authority over +the man, but to be in silence. + +2:13 For Adam was first formed, then Eve. + +2:14 And Adam was not deceived, but the woman being deceived was in +the transgression. + +2:15 Notwithstanding she shall be saved in childbearing, if they +continue in faith and charity and holiness with sobriety. + +3:1 This is a true saying, If a man desire the office of a bishop, he +desireth a good work. + +3:2 A bishop then must be blameless, the husband of one wife, +vigilant, sober, of good behaviour, given to hospitality, apt to +teach; 3:3 Not given to wine, no striker, not greedy of filthy lucre; +but patient, not a brawler, not covetous; 3:4 One that ruleth well his +own house, having his children in subjection with all gravity; 3:5 +(For if a man know not how to rule his own house, how shall he take +care of the church of God?) 3:6 Not a novice, lest being lifted up +with pride he fall into the condemnation of the devil. + +3:7 Moreover he must have a good report of them which are without; +lest he fall into reproach and the snare of the devil. + +3:8 Likewise must the deacons be grave, not doubletongued, not given +to much wine, not greedy of filthy lucre; 3:9 Holding the mystery of +the faith in a pure conscience. + +3:10 And let these also first be proved; then let them use the office +of a deacon, being found blameless. + +3:11 Even so must their wives be grave, not slanderers, sober, +faithful in all things. + +3:12 Let the deacons be the husbands of one wife, ruling their +children and their own houses well. + +3:13 For they that have used the office of a deacon well purchase to +themselves a good degree, and great boldness in the faith which is in +Christ Jesus. + +3:14 These things write I unto thee, hoping to come unto thee shortly: +3:15 But if I tarry long, that thou mayest know how thou oughtest to +behave thyself in the house of God, which is the church of the living +God, the pillar and ground of the truth. + +3:16 And without controversy great is the mystery of godliness: God +was manifest in the flesh, justified in the Spirit, seen of angels, +preached unto the Gentiles, believed on in the world, received up into +glory. + +4:1 Now the Spirit speaketh expressly, that in the latter times some +shall depart from the faith, giving heed to seducing spirits, and +doctrines of devils; 4:2 Speaking lies in hypocrisy; having their +conscience seared with a hot iron; 4:3 Forbidding to marry, and +commanding to abstain from meats, which God hath created to be +received with thanksgiving of them which believe and know the truth. + +4:4 For every creature of God is good, and nothing to be refused, if +it be received with thanksgiving: 4:5 For it is sanctified by the word +of God and prayer. + +4:6 If thou put the brethren in remembrance of these things, thou +shalt be a good minister of Jesus Christ, nourished up in the words of +faith and of good doctrine, whereunto thou hast attained. + +4:7 But refuse profane and old wives' fables, and exercise thyself +rather unto godliness. + +4:8 For bodily exercise profiteth little: but godliness is profitable +unto all things, having promise of the life that now is, and of that +which is to come. + +4:9 This is a faithful saying and worthy of all acceptation. + +4:10 For therefore we both labour and suffer reproach, because we +trust in the living God, who is the Saviour of all men, specially of +those that believe. + +4:11 These things command and teach. + +4:12 Let no man despise thy youth; but be thou an example of the +believers, in word, in conversation, in charity, in spirit, in faith, +in purity. + +4:13 Till I come, give attendance to reading, to exhortation, to +doctrine. + +4:14 Neglect not the gift that is in thee, which was given thee by +prophecy, with the laying on of the hands of the presbytery. + +4:15 Meditate upon these things; give thyself wholly to them; that thy +profiting may appear to all. + +4:16 Take heed unto thyself, and unto the doctrine; continue in them: +for in doing this thou shalt both save thyself, and them that hear +thee. + +5:1 Rebuke not an elder, but intreat him as a father; and the younger +men as brethren; 5:2 The elder women as mothers; the younger as +sisters, with all purity. + +5:3 Honour widows that are widows indeed. + +5:4 But if any widow have children or nephews, let them learn first to +shew piety at home, and to requite their parents: for that is good and +acceptable before God. + +5:5 Now she that is a widow indeed, and desolate, trusteth in God, and +continueth in supplications and prayers night and day. + +5:6 But she that liveth in pleasure is dead while she liveth. + +5:7 And these things give in charge, that they may be blameless. + +5:8 But if any provide not for his own, and specially for those of his +own house, he hath denied the faith, and is worse than an infidel. + +5:9 Let not a widow be taken into the number under threescore years +old, having been the wife of one man. + +5:10 Well reported of for good works; if she have brought up children, +if she have lodged strangers, if she have washed the saints' feet, if +she have relieved the afflicted, if she have diligently followed every +good work. + +5:11 But the younger widows refuse: for when they have begun to wax +wanton against Christ, they will marry; 5:12 Having damnation, because +they have cast off their first faith. + +5:13 And withal they learn to be idle, wandering about from house to +house; and not only idle, but tattlers also and busybodies, speaking +things which they ought not. + +5:14 I will therefore that the younger women marry, bear children, +guide the house, give none occasion to the adversary to speak +reproachfully. + +5:15 For some are already turned aside after Satan. + +5:16 If any man or woman that believeth have widows, let them relieve +them, and let not the church be charged; that it may relieve them that +are widows indeed. + +5:17 Let the elders that rule well be counted worthy of double honour, +especially they who labour in the word and doctrine. + +5:18 For the scripture saith, Thou shalt not muzzle the ox that +treadeth out the corn. And, The labourer is worthy of his reward. + +5:19 Against an elder receive not an accusation, but before two or +three witnesses. + +5:20 Them that sin rebuke before all, that others also may fear. + +5:21 I charge thee before God, and the Lord Jesus Christ, and the +elect angels, that thou observe these things without preferring one +before another, doing nothing by partiality. + +5:22 Lay hands suddenly on no man, neither be partaker of other men's +sins: keep thyself pure. + +5:23 Drink no longer water, but use a little wine for thy stomach's +sake and thine often infirmities. + +5:24 Some men's sins are open beforehand, going before to judgment; +and some men they follow after. + +5:25 Likewise also the good works of some are manifest beforehand; and +they that are otherwise cannot be hid. + +6:1 Let as many servants as are under the yoke count their own masters +worthy of all honour, that the name of God and his doctrine be not +blasphemed. + +6:2 And they that have believing masters, let them not despise them, +because they are brethren; but rather do them service, because they +are faithful and beloved, partakers of the benefit. These things teach +and exhort. + +6:3 If any man teach otherwise, and consent not to wholesome words, +even the words of our Lord Jesus Christ, and to the doctrine which is +according to godliness; 6:4 He is proud, knowing nothing, but doting +about questions and strifes of words, whereof cometh envy, strife, +railings, evil surmisings, 6:5 Perverse disputings of men of corrupt +minds, and destitute of the truth, supposing that gain is godliness: +from such withdraw thyself. + +6:6 But godliness with contentment is great gain. + +6:7 For we brought nothing into this world, and it is certain we can +carry nothing out. + +6:8 And having food and raiment let us be therewith content. + +6:9 But they that will be rich fall into temptation and a snare, and +into many foolish and hurtful lusts, which drown men in destruction +and perdition. + +6:10 For the love of money is the root of all evil: which while some +coveted after, they have erred from the faith, and pierced themselves +through with many sorrows. + +6:11 But thou, O man of God, flee these things; and follow after +righteousness, godliness, faith, love, patience, meekness. + +6:12 Fight the good fight of faith, lay hold on eternal life, +whereunto thou art also called, and hast professed a good profession +before many witnesses. + +6:13 I give thee charge in the sight of God, who quickeneth all +things, and before Christ Jesus, who before Pontius Pilate witnessed a +good confession; 6:14 That thou keep this commandment without spot, +unrebukable, until the appearing of our Lord Jesus Christ: 6:15 Which +in his times he shall shew, who is the blessed and only Potentate, the +King of kings, and Lord of lords; 6:16 Who only hath immortality, +dwelling in the light which no man can approach unto; whom no man hath +seen, nor can see: to whom be honour and power everlasting. Amen. + +6:17 Charge them that are rich in this world, that they be not +highminded, nor trust in uncertain riches, but in the living God, who +giveth us richly all things to enjoy; 6:18 That they do good, that +they be rich in good works, ready to distribute, willing to +communicate; 6:19 Laying up in store for themselves a good foundation +against the time to come, that they may lay hold on eternal life. + +6:20 O Timothy, keep that which is committed to thy trust, avoiding +profane and vain babblings, and oppositions of science falsely so +called: 6:21 Which some professing have erred concerning the faith. +Grace be with thee. Amen. + + + + +The Second Epistle of Paul the Apostle to Timothy + + +1:1 Paul, an apostle of Jesus Christ by the will of God, according to +the promise of life which is in Christ Jesus, 1:2 To Timothy, +my dearly beloved son: Grace, mercy, and peace, from God the Father +and Christ Jesus our Lord. + +1:3 I thank God, whom I serve from my forefathers with pure +conscience, that without ceasing I have remembrance of thee in my +prayers night and day; 1:4 Greatly desiring to see thee, being mindful +of thy tears, that I may be filled with joy; 1:5 When I call to +remembrance the unfeigned faith that is in thee, which dwelt first in +thy grandmother Lois, and thy mother Eunice; and I am persuaded that +in thee also. + +1:6 Wherefore I put thee in remembrance that thou stir up the gift of +God, which is in thee by the putting on of my hands. + +1:7 For God hath not given us the spirit of fear; but of power, and of +love, and of a sound mind. + +1:8 Be not thou therefore ashamed of the testimony of our Lord, nor of +me his prisoner: but be thou partaker of the afflictions of the gospel +according to the power of God; 1:9 Who hath saved us, and called us +with an holy calling, not according to our works, but according to his +own purpose and grace, which was given us in Christ Jesus before the +world began, 1:10 But is now made manifest by the appearing of our +Saviour Jesus Christ, who hath abolished death, and hath brought life +and immortality to light through the gospel: 1:11 Whereunto I am +appointed a preacher, and an apostle, and a teacher of the Gentiles. + +1:12 For the which cause I also suffer these things: nevertheless I am +not ashamed: for I know whom I have believed, and am persuaded that he +is able to keep that which I have committed unto him against that day. + +1:13 Hold fast the form of sound words, which thou hast heard of me, +in faith and love which is in Christ Jesus. + +1:14 That good thing which was committed unto thee keep by the Holy +Ghost which dwelleth in us. + +1:15 This thou knowest, that all they which are in Asia be turned away +from me; of whom are Phygellus and Hermogenes. + +1:16 The Lord give mercy unto the house of Onesiphorus; for he oft +refreshed me, and was not ashamed of my chain: 1:17 But, when he was +in Rome, he sought me out very diligently, and found me. + +1:18 The Lord grant unto him that he may find mercy of the Lord in +that day: and in how many things he ministered unto me at Ephesus, +thou knowest very well. + +2:1 Thou therefore, my son, be strong in the grace that is in Christ +Jesus. + +2:2 And the things that thou hast heard of me among many witnesses, +the same commit thou to faithful men, who shall be able to teach +others also. + +2:3 Thou therefore endure hardness, as a good soldier of Jesus Christ. + +2:4 No man that warreth entangleth himself with the affairs of this +life; that he may please him who hath chosen him to be a soldier. + +2:5 And if a man also strive for masteries, yet is he not crowned, +except he strive lawfully. + +2:6 The husbandman that laboureth must be first partaker of the +fruits. + +2:7 Consider what I say; and the Lord give thee understanding in all +things. + +2:8 Remember that Jesus Christ of the seed of David was raised from +the dead according to my gospel: 2:9 Wherein I suffer trouble, as an +evil doer, even unto bonds; but the word of God is not bound. + +2:10 Therefore I endure all things for the elect's sakes, that they +may also obtain the salvation which is in Christ Jesus with eternal +glory. + +2:11 It is a faithful saying: For if we be dead with him, we shall +also live with him: 2:12 If we suffer, we shall also reign with him: +if we deny him, he also will deny us: 2:13 If we believe not, yet he +abideth faithful: he cannot deny himself. + +2:14 Of these things put them in remembrance, charging them before the +Lord that they strive not about words to no profit, but to the +subverting of the hearers. + +2:15 Study to shew thyself approved unto God, a workman that needeth +not to be ashamed, rightly dividing the word of truth. + +2:16 But shun profane and vain babblings: for they will increase unto +more ungodliness. + +2:17 And their word will eat as doth a canker: of whom is Hymenaeus +and Philetus; 2:18 Who concerning the truth have erred, saying that +the resurrection is past already; and overthrow the faith of some. + +2:19 Nevertheless the foundation of God standeth sure, having this +seal, The Lord knoweth them that are his. And, Let every one that +nameth the name of Christ depart from iniquity. + +2:20 But in a great house there are not only vessels of gold and of +silver, but also of wood and of earth; and some to honour, and some to +dishonour. + +2:21 If a man therefore purge himself from these, he shall be a vessel +unto honour, sanctified, and meet for the master's use, and prepared +unto every good work. + +2:22 Flee also youthful lusts: but follow righteousness, faith, +charity, peace, with them that call on the Lord out of a pure heart. + +2:23 But foolish and unlearned questions avoid, knowing that they do +gender strifes. + +2:24 And the servant of the Lord must not strive; but be gentle unto +all men, apt to teach, patient, 2:25 In meekness instructing those +that oppose themselves; if God peradventure will give them repentance +to the acknowledging of the truth; 2:26 And that they may recover +themselves out of the snare of the devil, who are taken captive by him +at his will. + +3:1 This know also, that in the last days perilous times shall come. + +3:2 For men shall be lovers of their own selves, covetous, boasters, +proud, blasphemers, disobedient to parents, unthankful, unholy, 3:3 +Without natural affection, trucebreakers, false accusers, incontinent, +fierce, despisers of those that are good, 3:4 Traitors, heady, +highminded, lovers of pleasures more than lovers of God; 3:5 Having a +form of godliness, but denying the power thereof: from such turn away. + +3:6 For of this sort are they which creep into houses, and lead +captive silly women laden with sins, led away with divers lusts, 3:7 +Ever learning, and never able to come to the knowledge of the truth. + +3:8 Now as Jannes and Jambres withstood Moses, so do these also resist +the truth: men of corrupt minds, reprobate concerning the faith. + +3:9 But they shall proceed no further: for their folly shall be +manifest unto all men, as their's also was. + +3:10 But thou hast fully known my doctrine, manner of life, purpose, +faith, longsuffering, charity, patience, 3:11 Persecutions, +afflictions, which came unto me at Antioch, at Iconium, at Lystra; +what persecutions I endured: but out of them all the Lord delivered +me. + +3:12 Yea, and all that will live godly in Christ Jesus shall suffer +persecution. + +3:13 But evil men and seducers shall wax worse and worse, deceiving, +and being deceived. + +3:14 But continue thou in the things which thou hast learned and hast +been assured of, knowing of whom thou hast learned them; 3:15 And that +from a child thou hast known the holy scriptures, which are able to +make thee wise unto salvation through faith which is in Christ Jesus. + +3:16 All scripture is given by inspiration of God, and is profitable +for doctrine, for reproof, for correction, for instruction in +righteousness: 3:17 That the man of God may be perfect, throughly +furnished unto all good works. + +4:1 I charge thee therefore before God, and the Lord Jesus Christ, who +shall judge the quick and the dead at his appearing and his kingdom; +4:2 Preach the word; be instant in season, out of season; reprove, +rebuke, exhort with all longsuffering and doctrine. + +4:3 For the time will come when they will not endure sound doctrine; +but after their own lusts shall they heap to themselves teachers, +having itching ears; 4:4 And they shall turn away their ears from the +truth, and shall be turned unto fables. + +4:5 But watch thou in all things, endure afflictions, do the work of +an evangelist, make full proof of thy ministry. + +4:6 For I am now ready to be offered, and the time of my departure is +at hand. + +4:7 I have fought a good fight, I have finished my course, I have kept +the faith: 4:8 Henceforth there is laid up for me a crown of +righteousness, which the Lord, the righteous judge, shall give me at +that day: and not to me only, but unto all them also that love his +appearing. + +4:9 Do thy diligence to come shortly unto me: 4:10 For Demas hath +forsaken me, having loved this present world, and is departed unto +Thessalonica; Crescens to Galatia, Titus unto Dalmatia. + +4:11 Only Luke is with me. Take Mark, and bring him with thee: for he +is profitable to me for the ministry. + +4:12 And Tychicus have I sent to Ephesus. + +4:13 The cloke that I left at Troas with Carpus, when thou comest, +bring with thee, and the books, but especially the parchments. + +4:14 Alexander the coppersmith did me much evil: the Lord reward him +according to his works: 4:15 Of whom be thou ware also; for he hath +greatly withstood our words. + +4:16 At my first answer no man stood with me, but all men forsook me: +I pray God that it may not be laid to their charge. + +4:17 Notwithstanding the Lord stood with me, and strengthened me; that +by me the preaching might be fully known, and that all the Gentiles +might hear: and I was delivered out of the mouth of the lion. + +4:18 And the Lord shall deliver me from every evil work, and will +preserve me unto his heavenly kingdom: to whom be glory for ever and +ever. Amen. + +4:19 Salute Prisca and Aquila, and the household of Onesiphorus. + +4:20 Erastus abode at Corinth: but Trophimus have I left at Miletum +sick. + +4:21 Do thy diligence to come before winter. Eubulus greeteth thee, +and Pudens, and Linus, and Claudia, and all the brethren. + +4:22 The Lord Jesus Christ be with thy spirit. Grace be with you. +Amen. + + + + +The Epistle of Paul the Apostle to Titus + + +1:1 Paul, a servant of God, and an apostle of Jesus Christ, according +to the faith of God's elect, and the acknowledging of the truth which +is after godliness; 1:2 In hope of eternal life, which God, that +cannot lie, promised before the world began; 1:3 But hath in due times +manifested his word through preaching, which is committed unto me +according to the commandment of God our Saviour; 1:4 To Titus, mine +own son after the common faith: Grace, mercy, and peace, from God the +Father and the Lord Jesus Christ our Saviour. + +1:5 For this cause left I thee in Crete, that thou shouldest set in +order the things that are wanting, and ordain elders in every city, as +I had appointed thee: 1:6 If any be blameless, the husband of one +wife, having faithful children not accused of riot or unruly. + +1:7 For a bishop must be blameless, as the steward of God; not +selfwilled, not soon angry, not given to wine, no striker, not given +to filthy lucre; 1:8 But a lover of hospitality, a lover of good men, +sober, just, holy, temperate; 1:9 Holding fast the faithful word as he +hath been taught, that he may be able by sound doctrine both to exhort +and to convince the gainsayers. + +1:10 For there are many unruly and vain talkers and deceivers, +specially they of the circumcision: 1:11 Whose mouths must be stopped, +who subvert whole houses, teaching things which they ought not, for +filthy lucre's sake. + +1:12 One of themselves, even a prophet of their own, said, The +Cretians are alway liars, evil beasts, slow bellies. + +1:13 This witness is true. Wherefore rebuke them sharply, that they +may be sound in the faith; 1:14 Not giving heed to Jewish fables, and +commandments of men, that turn from the truth. + +1:15 Unto the pure all things are pure: but unto them that are defiled +and unbelieving is nothing pure; but even their mind and conscience is +defiled. + +1:16 They profess that they know God; but in works they deny him, +being abominable, and disobedient, and unto every good work reprobate. + +2:1 But speak thou the things which become sound doctrine: 2:2 That +the aged men be sober, grave, temperate, sound in faith, in charity, +in patience. + +2:3 The aged women likewise, that they be in behaviour as becometh +holiness, not false accusers, not given to much wine, teachers of good +things; 2:4 That they may teach the young women to be sober, to love +their husbands, to love their children, 2:5 To be discreet, chaste, +keepers at home, good, obedient to their own husbands, that the word +of God be not blasphemed. + +2:6 Young men likewise exhort to be sober minded. + +2:7 In all things shewing thyself a pattern of good works: in doctrine +shewing uncorruptness, gravity, sincerity, 2:8 Sound speech, that +cannot be condemned; that he that is of the contrary part may be +ashamed, having no evil thing to say of you. + +2:9 Exhort servants to be obedient unto their own masters, and to +please them well in all things; not answering again; 2:10 Not +purloining, but shewing all good fidelity; that they may adorn the +doctrine of God our Saviour in all things. + +2:11 For the grace of God that bringeth salvation hath appeared to all +men, 2:12 Teaching us that, denying ungodliness and worldly lusts, we +should live soberly, righteously, and godly, in this present world; +2:13 Looking for that blessed hope, and the glorious appearing of the +great God and our Saviour Jesus Christ; 2:14 Who gave himself for us, +that he might redeem us from all iniquity, and purify unto himself a +peculiar people, zealous of good works. + +2:15 These things speak, and exhort, and rebuke with all authority. +Let no man despise thee. + +3:1 Put them in mind to be subject to principalities and powers, to +obey magistrates, to be ready to every good work, 3:2 To speak evil of +no man, to be no brawlers, but gentle, shewing all meekness unto all +men. + +3:3 For we ourselves also were sometimes foolish, disobedient, +deceived, serving divers lusts and pleasures, living in malice and +envy, hateful, and hating one another. + +3:4 But after that the kindness and love of God our Saviour toward man +appeared, 3:5 Not by works of righteousness which we have done, but +according to his mercy he saved us, by the washing of regeneration, +and renewing of the Holy Ghost; 3:6 Which he shed on us abundantly +through Jesus Christ our Saviour; 3:7 That being justified by his +grace, we should be made heirs according to the hope of eternal life. + +3:8 This is a faithful saying, and these things I will that thou +affirm constantly, that they which have believed in God might be +careful to maintain good works. These things are good and profitable +unto men. + +3:9 But avoid foolish questions, and genealogies, and contentions, and +strivings about the law; for they are unprofitable and vain. + +3:10 A man that is an heretick after the first and second admonition +reject; 3:11 Knowing that he that is such is subverted, and sinneth, +being condemned of himself. + +3:12 When I shall send Artemas unto thee, or Tychicus, be diligent to +come unto me to Nicopolis: for I have determined there to winter. + +3:13 Bring Zenas the lawyer and Apollos on their journey diligently, +that nothing be wanting unto them. + +3:14 And let our's also learn to maintain good works for necessary +uses, that they be not unfruitful. + +3:15 All that are with me salute thee. Greet them that love us in the +faith. Grace be with you all. Amen. + + + + +The Epistle of Paul the Apostle to Philemon + + +1:1 Paul, a prisoner of Jesus Christ, and Timothy our brother, unto +Philemon our dearly beloved, and fellowlabourer, 1:2 And to our +beloved Apphia, and Archippus our fellowsoldier, and to the church in +thy house: 1:3 Grace to you, and peace, from God our Father and the +Lord Jesus Christ. + +1:4 I thank my God, making mention of thee always in my prayers, 1:5 +Hearing of thy love and faith, which thou hast toward the Lord Jesus, +and toward all saints; 1:6 That the communication of thy faith may +become effectual by the acknowledging of every good thing which is in +you in Christ Jesus. + +1:7 For we have great joy and consolation in thy love, because the +bowels of the saints are refreshed by thee, brother. + +1:8 Wherefore, though I might be much bold in Christ to enjoin thee +that which is convenient, 1:9 Yet for love's sake I rather beseech +thee, being such an one as Paul the aged, and now also a prisoner of +Jesus Christ. + +1:10 I beseech thee for my son Onesimus, whom I have begotten in my +bonds: 1:11 Which in time past was to thee unprofitable, but now +profitable to thee and to me: 1:12 Whom I have sent again: thou +therefore receive him, that is, mine own bowels: 1:13 Whom I would +have retained with me, that in thy stead he might have ministered unto +me in the bonds of the gospel: 1:14 But without thy mind would I do +nothing; that thy benefit should not be as it were of necessity, but +willingly. + +1:15 For perhaps he therefore departed for a season, that thou +shouldest receive him for ever; 1:16 Not now as a servant, but above a +servant, a brother beloved, specially to me, but how much more unto +thee, both in the flesh, and in the Lord? 1:17 If thou count me +therefore a partner, receive him as myself. + +1:18 If he hath wronged thee, or oweth thee ought, put that on mine +account; 1:19 I Paul have written it with mine own hand, I will repay +it: albeit I do not say to thee how thou owest unto me even thine own +self besides. + +1:20 Yea, brother, let me have joy of thee in the Lord: refresh my +bowels in the Lord. + +1:21 Having confidence in thy obedience I wrote unto thee, knowing +that thou wilt also do more than I say. + +1:22 But withal prepare me also a lodging: for I trust that through +your prayers I shall be given unto you. + +1:23 There salute thee Epaphras, my fellowprisoner in Christ Jesus; +1:24 Marcus, Aristarchus, Demas, Lucas, my fellowlabourers. + +1:25 The grace of our Lord Jesus Christ be with your spirit. Amen. + + + + +The Epistle of Paul the Apostle to the Hebrews + + +1:1 God, who at sundry times and in divers manners spake in time past +unto the fathers by the prophets, 1:2 Hath in these last days spoken +unto us by his Son, whom he hath appointed heir of all things, by whom +also he made the worlds; 1:3 Who being the brightness of his glory, +and the express image of his person, and upholding all things by the +word of his power, when he had by himself purged our sins, sat down on +the right hand of the Majesty on high: 1:4 Being made so much better +than the angels, as he hath by inheritance obtained a more excellent +name than they. + +1:5 For unto which of the angels said he at any time, Thou art my Son, +this day have I begotten thee? And again, I will be to him a Father, +and he shall be to me a Son? 1:6 And again, when he bringeth in the +firstbegotten into the world, he saith, And let all the angels of God +worship him. + +1:7 And of the angels he saith, Who maketh his angels spirits, and his +ministers a flame of fire. + +1:8 But unto the Son he saith, Thy throne, O God, is for ever and +ever: a sceptre of righteousness is the sceptre of thy kingdom. + +1:9 Thou hast loved righteousness, and hated iniquity; therefore God, +even thy God, hath anointed thee with the oil of gladness above thy +fellows. + +1:10 And, Thou, Lord, in the beginning hast laid the foundation of the +earth; and the heavens are the works of thine hands: 1:11 They shall +perish; but thou remainest; and they all shall wax old as doth a +garment; 1:12 And as a vesture shalt thou fold them up, and they shall +be changed: but thou art the same, and thy years shall not fail. + +1:13 But to which of the angels said he at any time, Sit on my right +hand, until I make thine enemies thy footstool? 1:14 Are they not all +ministering spirits, sent forth to minister for them who shall be +heirs of salvation? 2:1 Therefore we ought to give the more earnest +heed to the things which we have heard, lest at any time we should let +them slip. + +2:2 For if the word spoken by angels was stedfast, and every +transgression and disobedience received a just recompence of reward; +2:3 How shall we escape, if we neglect so great salvation; which at +the first began to be spoken by the Lord, and was confirmed unto us by +them that heard him; 2:4 God also bearing them witness, both with +signs and wonders, and with divers miracles, and gifts of the Holy +Ghost, according to his own will? 2:5 For unto the angels hath he not +put in subjection the world to come, whereof we speak. + +2:6 But one in a certain place testified, saying, What is man, that +thou art mindful of him? or the son of man that thou visitest him? +2:7 Thou madest him a little lower than the angels; thou crownedst him +with glory and honour, and didst set him over the works of thy hands: +2:8 Thou hast put all things in subjection under his feet. For in that +he put all in subjection under him, he left nothing that is not put +under him. + +But now we see not yet all things put under him. + +2:9 But we see Jesus, who was made a little lower than the angels for +the suffering of death, crowned with glory and honour; that he by the +grace of God should taste death for every man. + +2:10 For it became him, for whom are all things, and by whom are all +things, in bringing many sons unto glory, to make the captain of their +salvation perfect through sufferings. + +2:11 For both he that sanctifieth and they who are sanctified are all +of one: for which cause he is not ashamed to call them brethren, 2:12 +Saying, I will declare thy name unto my brethren, in the midst of the +church will I sing praise unto thee. + +2:13 And again, I will put my trust in him. And again, Behold I and +the children which God hath given me. + +2:14 Forasmuch then as the children are partakers of flesh and blood, +he also himself likewise took part of the same; that through death he +might destroy him that had the power of death, that is, the devil; +2:15 And deliver them who through fear of death were all their +lifetime subject to bondage. + +2:16 For verily he took not on him the nature of angels; but he took +on him the seed of Abraham. + +2:17 Wherefore in all things it behoved him to be made like unto his +brethren, that he might be a merciful and faithful high priest in +things pertaining to God, to make reconciliation for the sins of the +people. + +2:18 For in that he himself hath suffered being tempted, he is able to +succour them that are tempted. + +3:1 Wherefore, holy brethren, partakers of the heavenly calling, +consider the Apostle and High Priest of our profession, Christ Jesus; +3:2 Who was faithful to him that appointed him, as also Moses was +faithful in all his house. + +3:3 For this man was counted worthy of more glory than Moses, inasmuch +as he who hath builded the house hath more honour than the house. + +3:4 For every house is builded by some man; but he that built all +things is God. + +3:5 And Moses verily was faithful in all his house, as a servant, for +a testimony of those things which were to be spoken after; 3:6 But +Christ as a son over his own house; whose house are we, if we hold +fast the confidence and the rejoicing of the hope firm unto the end. + +3:7 Wherefore (as the Holy Ghost saith, To day if ye will hear his +voice, 3:8 Harden not your hearts, as in the provocation, in the day +of temptation in the wilderness: 3:9 When your fathers tempted me, +proved me, and saw my works forty years. + +3:10 Wherefore I was grieved with that generation, and said, They do +alway err in their heart; and they have not known my ways. + +3:11 So I sware in my wrath, They shall not enter into my rest.) 3:12 +Take heed, brethren, lest there be in any of you an evil heart of +unbelief, in departing from the living God. + +3:13 But exhort one another daily, while it is called To day; lest any +of you be hardened through the deceitfulness of sin. + +3:14 For we are made partakers of Christ, if we hold the beginning of +our confidence stedfast unto the end; 3:15 While it is said, To day if +ye will hear his voice, harden not your hearts, as in the provocation. + +3:16 For some, when they had heard, did provoke: howbeit not all that +came out of Egypt by Moses. + +3:17 But with whom was he grieved forty years? was it not with them +that had sinned, whose carcases fell in the wilderness? 3:18 And to +whom sware he that they should not enter into his rest, but to them +that believed not? 3:19 So we see that they could not enter in +because of unbelief. + +4:1 Let us therefore fear, lest, a promise being left us of entering +into his rest, any of you should seem to come short of it. + +4:2 For unto us was the gospel preached, as well as unto them: but the +word preached did not profit them, not being mixed with faith in them +that heard it. + +4:3 For we which have believed do enter into rest, as he said, As I +have sworn in my wrath, if they shall enter into my rest: although the +works were finished from the foundation of the world. + +4:4 For he spake in a certain place of the seventh day on this wise, +And God did rest the seventh day from all his works. + +4:5 And in this place again, If they shall enter into my rest. + +4:6 Seeing therefore it remaineth that some must enter therein, and +they to whom it was first preached entered not in because of unbelief: +4:7 Again, he limiteth a certain day, saying in David, To day, after +so long a time; as it is said, To day if ye will hear his voice, +harden not your hearts. + +4:8 For if Jesus had given them rest, then would he not afterward have +spoken of another day. + +4:9 There remaineth therefore a rest to the people of God. + +4:10 For he that is entered into his rest, he also hath ceased from +his own works, as God did from his. + +4:11 Let us labour therefore to enter into that rest, lest any man +fall after the same example of unbelief. + +4:12 For the word of God is quick, and powerful, and sharper than any +twoedged sword, piercing even to the dividing asunder of soul and +spirit, and of the joints and marrow, and is a discerner of the +thoughts and intents of the heart. + +4:13 Neither is there any creature that is not manifest in his sight: +but all things are naked and opened unto the eyes of him with whom we +have to do. + +4:14 Seeing then that we have a great high priest, that is passed into +the heavens, Jesus the Son of God, let us hold fast our profession. + +4:15 For we have not an high priest which cannot be touched with the +feeling of our infirmities; but was in all points tempted like as we +are, yet without sin. + +4:16 Let us therefore come boldly unto the throne of grace, that we +may obtain mercy, and find grace to help in time of need. + +5:1 For every high priest taken from among men is ordained for men in +things pertaining to God, that he may offer both gifts and sacrifices +for sins: 5:2 Who can have compassion on the ignorant, and on them +that are out of the way; for that he himself also is compassed with +infirmity. + +5:3 And by reason hereof he ought, as for the people, so also for +himself, to offer for sins. + +5:4 And no man taketh this honour unto himself, but he that is called +of God, as was Aaron. + +5:5 So also Christ glorified not himself to be made an high priest; +but he that said unto him, Thou art my Son, to day have I begotten +thee. + +5:6 As he saith also in another place, Thou art a priest for ever +after the order of Melchisedec. + +5:7 Who in the days of his flesh, when he had offered up prayers and +supplications with strong crying and tears unto him that was able to +save him from death, and was heard in that he feared; 5:8 Though he +were a Son, yet learned he obedience by the things which he suffered; +5:9 And being made perfect, he became the author of eternal salvation +unto all them that obey him; 5:10 Called of God an high priest after +the order of Melchisedec. + +5:11 Of whom we have many things to say, and hard to be uttered, +seeing ye are dull of hearing. + +5:12 For when for the time ye ought to be teachers, ye have need that +one teach you again which be the first principles of the oracles of +God; and are become such as have need of milk, and not of strong meat. + +5:13 For every one that useth milk is unskilful in the word of +righteousness: for he is a babe. + +5:14 But strong meat belongeth to them that are of full age, even +those who by reason of use have their senses exercised to discern both +good and evil. + +6:1 Therefore leaving the principles of the doctrine of Christ, let us +go on unto perfection; not laying again the foundation of repentance +from dead works, and of faith toward God, 6:2 Of the doctrine of +baptisms, and of laying on of hands, and of resurrection of the dead, +and of eternal judgment. + +6:3 And this will we do, if God permit. + +6:4 For it is impossible for those who were once enlightened, and have +tasted of the heavenly gift, and were made partakers of the Holy +Ghost, 6:5 And have tasted the good word of God, and the powers of the +world to come, 6:6 If they shall fall away, to renew them again unto +repentance; seeing they crucify to themselves the Son of God afresh, +and put him to an open shame. + +6:7 For the earth which drinketh in the rain that cometh oft upon it, +and bringeth forth herbs meet for them by whom it is dressed, +receiveth blessing from God: 6:8 But that which beareth thorns and +briers is rejected, and is nigh unto cursing; whose end is to be +burned. + +6:9 But, beloved, we are persuaded better things of you, and things +that accompany salvation, though we thus speak. + +6:10 For God is not unrighteous to forget your work and labour of +love, which ye have shewed toward his name, in that ye have ministered +to the saints, and do minister. + +6:11 And we desire that every one of you do shew the same diligence to +the full assurance of hope unto the end: 6:12 That ye be not slothful, +but followers of them who through faith and patience inherit the +promises. + +6:13 For when God made promise to Abraham, because he could swear by +no greater, he sware by himself, 6:14 Saying, Surely blessing I will +bless thee, and multiplying I will multiply thee. + +6:15 And so, after he had patiently endured, he obtained the promise. + +6:16 For men verily swear by the greater: and an oath for confirmation +is to them an end of all strife. + +6:17 Wherein God, willing more abundantly to shew unto the heirs of +promise the immutability of his counsel, confirmed it by an oath: 6:18 +That by two immutable things, in which it was impossible for God to +lie, we might have a strong consolation, who have fled for refuge to +lay hold upon the hope set before us: 6:19 Which hope we have as an +anchor of the soul, both sure and stedfast, and which entereth into +that within the veil; 6:20 Whither the forerunner is for us entered, +even Jesus, made an high priest for ever after the order of +Melchisedec. + +7:1 For this Melchisedec, king of Salem, priest of the most high God, +who met Abraham returning from the slaughter of the kings, and blessed +him; 7:2 To whom also Abraham gave a tenth part of all; first being by +interpretation King of righteousness, and after that also King of +Salem, which is, King of peace; 7:3 Without father, without mother, +without descent, having neither beginning of days, nor end of life; +but made like unto the Son of God; abideth a priest continually. + +7:4 Now consider how great this man was, unto whom even the patriarch +Abraham gave the tenth of the spoils. + +7:5 And verily they that are of the sons of Levi, who receive the +office of the priesthood, have a commandment to take tithes of the +people according to the law, that is, of their brethren, though they +come out of the loins of Abraham: 7:6 But he whose descent is not +counted from them received tithes of Abraham, and blessed him that had +the promises. + +7:7 And without all contradiction the less is blessed of the better. + +7:8 And here men that die receive tithes; but there he receiveth them, +of whom it is witnessed that he liveth. + +7:9 And as I may so say, Levi also, who receiveth tithes, payed tithes +in Abraham. + +7:10 For he was yet in the loins of his father, when Melchisedec met +him. + +7:11 If therefore perfection were by the Levitical priesthood, (for +under it the people received the law,) what further need was there +that another priest should rise after the order of Melchisedec, and +not be called after the order of Aaron? 7:12 For the priesthood being +changed, there is made of necessity a change also of the law. + +7:13 For he of whom these things are spoken pertaineth to another +tribe, of which no man gave attendance at the altar. + +7:14 For it is evident that our Lord sprang out of Juda; of which +tribe Moses spake nothing concerning priesthood. + +7:15 And it is yet far more evident: for that after the similitude of +Melchisedec there ariseth another priest, 7:16 Who is made, not after +the law of a carnal commandment, but after the power of an endless +life. + +7:17 For he testifieth, Thou art a priest for ever after the order of +Melchisedec. + +7:18 For there is verily a disannulling of the commandment going +before for the weakness and unprofitableness thereof. + +7:19 For the law made nothing perfect, but the bringing in of a better +hope did; by the which we draw nigh unto God. + +7:20 And inasmuch as not without an oath he was made priest: 7:21 (For +those priests were made without an oath; but this with an oath by him +that said unto him, The Lord sware and will not repent, Thou art a +priest for ever after the order of Melchisedec:) 7:22 By so much was +Jesus made a surety of a better testament. + +7:23 And they truly were many priests, because they were not suffered +to continue by reason of death: 7:24 But this man, because he +continueth ever, hath an unchangeable priesthood. + +7:25 Wherefore he is able also to save them to the uttermost that come +unto God by him, seeing he ever liveth to make intercession for them. + +7:26 For such an high priest became us, who is holy, harmless, +undefiled, separate from sinners, and made higher than the heavens; +7:27 Who needeth not daily, as those high priests, to offer up +sacrifice, first for his own sins, and then for the people's: for this +he did once, when he offered up himself. + +7:28 For the law maketh men high priests which have infirmity; but the +word of the oath, which was since the law, maketh the Son, who is +consecrated for evermore. + +8:1 Now of the things which we have spoken this is the sum: We have +such an high priest, who is set on the right hand of the throne of the +Majesty in the heavens; 8:2 A minister of the sanctuary, and of the +true tabernacle, which the Lord pitched, and not man. + +8:3 For every high priest is ordained to offer gifts and sacrifices: +wherefore it is of necessity that this man have somewhat also to +offer. + +8:4 For if he were on earth, he should not be a priest, seeing that +there are priests that offer gifts according to the law: 8:5 Who serve +unto the example and shadow of heavenly things, as Moses was +admonished of God when he was about to make the tabernacle: for, See, +saith he, that thou make all things according to the pattern shewed to +thee in the mount. + +8:6 But now hath he obtained a more excellent ministry, by how much +also he is the mediator of a better covenant, which was established +upon better promises. + +8:7 For if that first covenant had been faultless, then should no +place have been sought for the second. + +8:8 For finding fault with them, he saith, Behold, the days come, +saith the Lord, when I will make a new covenant with the house of +Israel and with the house of Judah: 8:9 Not according to the covenant +that I made with their fathers in the day when I took them by the hand +to lead them out of the land of Egypt; because they continued not in +my covenant, and I regarded them not, saith the Lord. + +8:10 For this is the covenant that I will make with the house of +Israel after those days, saith the Lord; I will put my laws into their +mind, and write them in their hearts: and I will be to them a God, and +they shall be to me a people: 8:11 And they shall not teach every man +his neighbour, and every man his brother, saying, Know the Lord: for +all shall know me, from the least to the greatest. + +8:12 For I will be merciful to their unrighteousness, and their sins +and their iniquities will I remember no more. + +8:13 In that he saith, A new covenant, he hath made the first old. Now +that which decayeth and waxeth old is ready to vanish away. + +9:1 Then verily the first covenant had also ordinances of divine +service, and a worldly sanctuary. + +9:2 For there was a tabernacle made; the first, wherein was the +candlestick, and the table, and the shewbread; which is called the +sanctuary. + +9:3 And after the second veil, the tabernacle which is called the +Holiest of all; 9:4 Which had the golden censer, and the ark of the +covenant overlaid round about with gold, wherein was the golden pot +that had manna, and Aaron's rod that budded, and the tables of the +covenant; 9:5 And over it the cherubims of glory shadowing the +mercyseat; of which we cannot now speak particularly. + +9:6 Now when these things were thus ordained, the priests went always +into the first tabernacle, accomplishing the service of God. + +9:7 But into the second went the high priest alone once every year, +not without blood, which he offered for himself, and for the errors of +the people: 9:8 The Holy Ghost this signifying, that the way into the +holiest of all was not yet made manifest, while as the first +tabernacle was yet standing: 9:9 Which was a figure for the time then +present, in which were offered both gifts and sacrifices, that could +not make him that did the service perfect, as pertaining to the +conscience; 9:10 Which stood only in meats and drinks, and divers +washings, and carnal ordinances, imposed on them until the time of +reformation. + +9:11 But Christ being come an high priest of good things to come, by a +greater and more perfect tabernacle, not made with hands, that is to +say, not of this building; 9:12 Neither by the blood of goats and +calves, but by his own blood he entered in once into the holy place, +having obtained eternal redemption for us. + +9:13 For if the blood of bulls and of goats, and the ashes of an +heifer sprinkling the unclean, sanctifieth to the purifying of the +flesh: 9:14 How much more shall the blood of Christ, who through the +eternal Spirit offered himself without spot to God, purge your +conscience from dead works to serve the living God? 9:15 And for this +cause he is the mediator of the new testament, that by means of death, +for the redemption of the transgressions that were under the first +testament, they which are called might receive the promise of eternal +inheritance. + +9:16 For where a testament is, there must also of necessity be the +death of the testator. + +9:17 For a testament is of force after men are dead: otherwise it is +of no strength at all while the testator liveth. + +9:18 Whereupon neither the first testament was dedicated without +blood. + +9:19 For when Moses had spoken every precept to all the people +according to the law, he took the blood of calves and of goats, with +water, and scarlet wool, and hyssop, and sprinkled both the book, and +all the people, 9:20 Saying, This is the blood of the testament which +God hath enjoined unto you. + +9:21 Moreover he sprinkled with blood both the tabernacle, and all the +vessels of the ministry. + +9:22 And almost all things are by the law purged with blood; and +without shedding of blood is no remission. + +9:23 It was therefore necessary that the patterns of things in the +heavens should be purified with these; but the heavenly things +themselves with better sacrifices than these. + +9:24 For Christ is not entered into the holy places made with hands, +which are the figures of the true; but into heaven itself, now to +appear in the presence of God for us: 9:25 Nor yet that he should +offer himself often, as the high priest entereth into the holy place +every year with blood of others; 9:26 For then must he often have +suffered since the foundation of the world: but now once in the end of +the world hath he appeared to put away sin by the sacrifice of +himself. + +9:27 And as it is appointed unto men once to die, but after this the +judgment: 9:28 So Christ was once offered to bear the sins of many; +and unto them that look for him shall he appear the second time +without sin unto salvation. + +10:1 For the law having a shadow of good things to come, and not the +very image of the things, can never with those sacrifices which they +offered year by year continually make the comers thereunto perfect. + +10:2 For then would they not have ceased to be offered? because that +the worshippers once purged should have had no more conscience of +sins. + +10:3 But in those sacrifices there is a remembrance again made of sins +every year. + +10:4 For it is not possible that the blood of bulls and of goats +should take away sins. + +10:5 Wherefore when he cometh into the world, he saith, Sacrifice and +offering thou wouldest not, but a body hast thou prepared me: 10:6 In +burnt offerings and sacrifices for sin thou hast had no pleasure. + +10:7 Then said I, Lo, I come (in the volume of the book it is written +of me,) to do thy will, O God. + +10:8 Above when he said, Sacrifice and offering and burnt offerings +and offering for sin thou wouldest not, neither hadst pleasure +therein; which are offered by the law; 10:9 Then said he, Lo, I come +to do thy will, O God. He taketh away the first, that he may establish +the second. + +10:10 By the which will we are sanctified through the offering of the +body of Jesus Christ once for all. + +10:11 And every priest standeth daily ministering and offering +oftentimes the same sacrifices, which can never take away sins: 10:12 +But this man, after he had offered one sacrifice for sins for ever, +sat down on the right hand of God; 10:13 From henceforth expecting +till his enemies be made his footstool. + +10:14 For by one offering he hath perfected for ever them that are +sanctified. + +10:15 Whereof the Holy Ghost also is a witness to us: for after that +he had said before, 10:16 This is the covenant that I will make with +them after those days, saith the Lord, I will put my laws into their +hearts, and in their minds will I write them; 10:17 And their sins and +iniquities will I remember no more. + +10:18 Now where remission of these is, there is no more offering for +sin. + +10:19 Having therefore, brethren, boldness to enter into the holiest +by the blood of Jesus, 10:20 By a new and living way, which he hath +consecrated for us, through the veil, that is to say, his flesh; 10:21 +And having an high priest over the house of God; 10:22 Let us draw +near with a true heart in full assurance of faith, having our hearts +sprinkled from an evil conscience, and our bodies washed with pure +water. + +10:23 Let us hold fast the profession of our faith without wavering; +(for he is faithful that promised;) 10:24 And let us consider one +another to provoke unto love and to good works: 10:25 Not forsaking +the assembling of ourselves together, as the manner of some is; but +exhorting one another: and so much the more, as ye see the day +approaching. + +10:26 For if we sin wilfully after that we have received the knowledge +of the truth, there remaineth no more sacrifice for sins, 10:27 But a +certain fearful looking for of judgment and fiery indignation, which +shall devour the adversaries. + +10:28 He that despised Moses' law died without mercy under two or +three witnesses: 10:29 Of how much sorer punishment, suppose ye, shall +he be thought worthy, who hath trodden under foot the Son of God, and +hath counted the blood of the covenant, wherewith he was sanctified, +an unholy thing, and hath done despite unto the Spirit of grace? +10:30 For we know him that hath said, Vengeance belongeth unto me, I +will recompense, saith the Lord. And again, The Lord shall judge his +people. + +10:31 It is a fearful thing to fall into the hands of the living God. + +10:32 But call to remembrance the former days, in which, after ye were +illuminated, ye endured a great fight of afflictions; 10:33 Partly, +whilst ye were made a gazingstock both by reproaches and afflictions; +and partly, whilst ye became companions of them that were so used. + +10:34 For ye had compassion of me in my bonds, and took joyfully the +spoiling of your goods, knowing in yourselves that ye have in heaven a +better and an enduring substance. + +10:35 Cast not away therefore your confidence, which hath great +recompence of reward. + +10:36 For ye have need of patience, that, after ye have done the will +of God, ye might receive the promise. + +10:37 For yet a little while, and he that shall come will come, and +will not tarry. + +10:38 Now the just shall live by faith: but if any man draw back, my +soul shall have no pleasure in him. + +10:39 But we are not of them who draw back unto perdition; but of them +that believe to the saving of the soul. + +11:1 Now faith is the substance of things hoped for, the evidence of +things not seen. + +11:2 For by it the elders obtained a good report. + +11:3 Through faith we understand that the worlds were framed by the +word of God, so that things which are seen were not made of things +which do appear. + +11:4 By faith Abel offered unto God a more excellent sacrifice than +Cain, by which he obtained witness that he was righteous, God +testifying of his gifts: and by it he being dead yet speaketh. + +11:5 By faith Enoch was translated that he should not see death; and +was not found, because God had translated him: for before his +translation he had this testimony, that he pleased God. + +11:6 But without faith it is impossible to please him: for he that +cometh to God must believe that he is, and that he is a rewarder of +them that diligently seek him. + +11:7 By faith Noah, being warned of God of things not seen as yet, +moved with fear, prepared an ark to the saving of his house; by the +which he condemned the world, and became heir of the righteousness +which is by faith. + +11:8 By faith Abraham, when he was called to go out into a place which +he should after receive for an inheritance, obeyed; and he went out, +not knowing whither he went. + +11:9 By faith he sojourned in the land of promise, as in a strange +country, dwelling in tabernacles with Isaac and Jacob, the heirs with +him of the same promise: 11:10 For he looked for a city which hath +foundations, whose builder and maker is God. + +11:11 Through faith also Sara herself received strength to conceive +seed, and was delivered of a child when she was past age, because she +judged him faithful who had promised. + +11:12 Therefore sprang there even of one, and him as good as dead, so +many as the stars of the sky in multitude, and as the sand which is by +the sea shore innumerable. + +11:13 These all died in faith, not having received the promises, but +having seen them afar off, and were persuaded of them, and embraced +them, and confessed that they were strangers and pilgrims on the +earth. + +11:14 For they that say such things declare plainly that they seek a +country. + +11:15 And truly, if they had been mindful of that country from whence +they came out, they might have had opportunity to have returned. + +11:16 But now they desire a better country, that is, an heavenly: +wherefore God is not ashamed to be called their God: for he hath +prepared for them a city. + +11:17 By faith Abraham, when he was tried, offered up Isaac: and he +that had received the promises offered up his only begotten son, 11:18 +Of whom it was said, That in Isaac shall thy seed be called: 11:19 +Accounting that God was able to raise him up, even from the dead; from +whence also he received him in a figure. + +11:20 By faith Isaac blessed Jacob and Esau concerning things to come. + +11:21 By faith Jacob, when he was a dying, blessed both the sons of +Joseph; and worshipped, leaning upon the top of his staff. + +11:22 By faith Joseph, when he died, made mention of the departing of +the children of Israel; and gave commandment concerning his bones. + +11:23 By faith Moses, when he was born, was hid three months of his +parents, because they saw he was a proper child; and they were not +afraid of the king's commandment. + +11:24 By faith Moses, when he was come to years, refused to be called +the son of Pharaoh's daughter; 11:25 Choosing rather to suffer +affliction with the people of God, than to enjoy the pleasures of sin +for a season; 11:26 Esteeming the reproach of Christ greater riches +than the treasures in Egypt: for he had respect unto the recompence of +the reward. + +11:27 By faith he forsook Egypt, not fearing the wrath of the king: +for he endured, as seeing him who is invisible. + +11:28 Through faith he kept the passover, and the sprinkling of blood, +lest he that destroyed the firstborn should touch them. + +11:29 By faith they passed through the Red sea as by dry land: which +the Egyptians assaying to do were drowned. + +11:30 By faith the walls of Jericho fell down, after they were +compassed about seven days. + +11:31 By faith the harlot Rahab perished not with them that believed +not, when she had received the spies with peace. + +11:32 And what shall I more say? for the time would fail me to tell of +Gedeon, and of Barak, and of Samson, and of Jephthae; of David also, +and Samuel, and of the prophets: 11:33 Who through faith subdued +kingdoms, wrought righteousness, obtained promises, stopped the mouths +of lions. + +11:34 Quenched the violence of fire, escaped the edge of the sword, +out of weakness were made strong, waxed valiant in fight, turned to +flight the armies of the aliens. + +11:35 Women received their dead raised to life again: and others were +tortured, not accepting deliverance; that they might obtain a better +resurrection: 11:36 And others had trial of cruel mockings and +scourgings, yea, moreover of bonds and imprisonment: 11:37 They were +stoned, they were sawn asunder, were tempted, were slain with the +sword: they wandered about in sheepskins and goatskins; being +destitute, afflicted, tormented; 11:38 (Of whom the world was not +worthy:) they wandered in deserts, and in mountains, and in dens and +caves of the earth. + +11:39 And these all, having obtained a good report through faith, +received not the promise: 11:40 God having provided some better thing +for us, that they without us should not be made perfect. + +12:1 Wherefore seeing we also are compassed about with so great a +cloud of witnesses, let us lay aside every weight, and the sin which +doth so easily beset us, and let us run with patience the race that is +set before us, 12:2 Looking unto Jesus the author and finisher of our +faith; who for the joy that was set before him endured the cross, +despising the shame, and is set down at the right hand of the throne +of God. + +12:3 For consider him that endured such contradiction of sinners +against himself, lest ye be wearied and faint in your minds. + +12:4 Ye have not yet resisted unto blood, striving against sin. + +12:5 And ye have forgotten the exhortation which speaketh unto you as +unto children, My son, despise not thou the chastening of the Lord, +nor faint when thou art rebuked of him: 12:6 For whom the Lord loveth +he chasteneth, and scourgeth every son whom he receiveth. + +12:7 If ye endure chastening, God dealeth with you as with sons; for +what son is he whom the father chasteneth not? 12:8 But if ye be +without chastisement, whereof all are partakers, then are ye bastards, +and not sons. + +12:9 Furthermore we have had fathers of our flesh which corrected us, +and we gave them reverence: shall we not much rather be in subjection +unto the Father of spirits, and live? 12:10 For they verily for a few +days chastened us after their own pleasure; but he for our profit, +that we might be partakers of his holiness. + +12:11 Now no chastening for the present seemeth to be joyous, but +grievous: nevertheless afterward it yieldeth the peaceable fruit of +righteousness unto them which are exercised thereby. + +12:12 Wherefore lift up the hands which hang down, and the feeble +knees; 12:13 And make straight paths for your feet, lest that which is +lame be turned out of the way; but let it rather be healed. + +12:14 Follow peace with all men, and holiness, without which no man +shall see the Lord: 12:15 Looking diligently lest any man fail of the +grace of God; lest any root of bitterness springing up trouble you, +and thereby many be defiled; 12:16 Lest there be any fornicator, or +profane person, as Esau, who for one morsel of meat sold his +birthright. + +12:17 For ye know how that afterward, when he would have inherited the +blessing, he was rejected: for he found no place of repentance, though +he sought it carefully with tears. + +12:18 For ye are not come unto the mount that might be touched, and +that burned with fire, nor unto blackness, and darkness, and tempest, +12:19 And the sound of a trumpet, and the voice of words; which voice +they that heard intreated that the word should not be spoken to them +any more: 12:20 (For they could not endure that which was commanded, +And if so much as a beast touch the mountain, it shall be stoned, or +thrust through with a dart: 12:21 And so terrible was the sight, that +Moses said, I exceedingly fear and quake:) 12:22 But ye are come unto +mount Sion, and unto the city of the living God, the heavenly +Jerusalem, and to an innumerable company of angels, 12:23 To the +general assembly and church of the firstborn, which are written in +heaven, and to God the Judge of all, and to the spirits of just men +made perfect, 12:24 And to Jesus the mediator of the new covenant, and +to the blood of sprinkling, that speaketh better things than that of +Abel. + +12:25 See that ye refuse not him that speaketh. For if they escaped +not who refused him that spake on earth, much more shall not we +escape, if we turn away from him that speaketh from heaven: 12:26 +Whose voice then shook the earth: but now he hath promised, saying, +Yet once more I shake not the earth only, but also heaven. + +12:27 And this word, Yet once more, signifieth the removing of those +things that are shaken, as of things that are made, that those things +which cannot be shaken may remain. + +12:28 Wherefore we receiving a kingdom which cannot be moved, let us +have grace, whereby we may serve God acceptably with reverence and +godly fear: 12:29 For our God is a consuming fire. + +13:1 Let brotherly love continue. + +13:2 Be not forgetful to entertain strangers: for thereby some have +entertained angels unawares. + +13:3 Remember them that are in bonds, as bound with them; and them +which suffer adversity, as being yourselves also in the body. + +13:4 Marriage is honourable in all, and the bed undefiled: but +whoremongers and adulterers God will judge. + +13:5 Let your conversation be without covetousness; and be content +with such things as ye have: for he hath said, I will never leave +thee, nor forsake thee. + +13:6 So that we may boldly say, The Lord is my helper, and I will not +fear what man shall do unto me. + +13:7 Remember them which have the rule over you, who have spoken unto +you the word of God: whose faith follow, considering the end of their +conversation. + +13:8 Jesus Christ the same yesterday, and to day, and for ever. + +13:9 Be not carried about with divers and strange doctrines. For it is +a good thing that the heart be established with grace; not with meats, +which have not profited them that have been occupied therein. + +13:10 We have an altar, whereof they have no right to eat which serve +the tabernacle. + +13:11 For the bodies of those beasts, whose blood is brought into the +sanctuary by the high priest for sin, are burned without the camp. + +13:12 Wherefore Jesus also, that he might sanctify the people with his +own blood, suffered without the gate. + +13:13 Let us go forth therefore unto him without the camp, bearing his +reproach. + +13:14 For here have we no continuing city, but we seek one to come. + +13:15 By him therefore let us offer the sacrifice of praise to God +continually, that is, the fruit of our lips giving thanks to his name. + +13:16 But to do good and to communicate forget not: for with such +sacrifices God is well pleased. + +13:17 Obey them that have the rule over you, and submit yourselves: +for they watch for your souls, as they that must give account, that +they may do it with joy, and not with grief: for that is unprofitable +for you. + +13:18 Pray for us: for we trust we have a good conscience, in all +things willing to live honestly. + +13:19 But I beseech you the rather to do this, that I may be restored +to you the sooner. + +13:20 Now the God of peace, that brought again from the dead our Lord +Jesus, that great shepherd of the sheep, through the blood of the +everlasting covenant, 13:21 Make you perfect in every good work to do +his will, working in you that which is wellpleasing in his sight, +through Jesus Christ; to whom be glory for ever and ever. Amen. + +13:22 And I beseech you, brethren, suffer the word of exhortation: for +I have written a letter unto you in few words. + +13:23 Know ye that our brother Timothy is set at liberty; with whom, +if he come shortly, I will see you. + +13:24 Salute all them that have the rule over you, and all the saints. + +They of Italy salute you. + +13:25 Grace be with you all. Amen. + + + + +The General Epistle of James + + +1:1 James, a servant of God and of the Lord Jesus Christ, +to the twelve tribes which are scattered abroad, greeting. + +1:2 My brethren, count it all joy when ye fall into divers +temptations; 1:3 Knowing this, that the trying of your faith worketh +patience. + +1:4 But let patience have her perfect work, that ye may be perfect and +entire, wanting nothing. + +1:5 If any of you lack wisdom, let him ask of God, that giveth to all +men liberally, and upbraideth not; and it shall be given him. + +1:6 But let him ask in faith, nothing wavering. For he that wavereth +is like a wave of the sea driven with the wind and tossed. + +1:7 For let not that man think that he shall receive any thing of the +Lord. + +1:8 A double minded man is unstable in all his ways. + +1:9 Let the brother of low degree rejoice in that he is exalted: 1:10 +But the rich, in that he is made low: because as the flower of the +grass he shall pass away. + +1:11 For the sun is no sooner risen with a burning heat, but it +withereth the grass, and the flower thereof falleth, and the grace of +the fashion of it perisheth: so also shall the rich man fade away in +his ways. + +1:12 Blessed is the man that endureth temptation: for when he is +tried, he shall receive the crown of life, which the Lord hath +promised to them that love him. + +1:13 Let no man say when he is tempted, I am tempted of God: for God +cannot be tempted with evil, neither tempteth he any man: 1:14 But +every man is tempted, when he is drawn away of his own lust, and +enticed. + +1:15 Then when lust hath conceived, it bringeth forth sin: and sin, +when it is finished, bringeth forth death. + +1:16 Do not err, my beloved brethren. + +1:17 Every good gift and every perfect gift is from above, and cometh +down from the Father of lights, with whom is no variableness, neither +shadow of turning. + +1:18 Of his own will begat he us with the word of truth, that we +should be a kind of firstfruits of his creatures. + +1:19 Wherefore, my beloved brethren, let every man be swift to hear, +slow to speak, slow to wrath: 1:20 For the wrath of man worketh not +the righteousness of God. + +1:21 Wherefore lay apart all filthiness and superfluity of +naughtiness, and receive with meekness the engrafted word, which is +able to save your souls. + +1:22 But be ye doers of the word, and not hearers only, deceiving your +own selves. + +1:23 For if any be a hearer of the word, and not a doer, he is like +unto a man beholding his natural face in a glass: 1:24 For he +beholdeth himself, and goeth his way, and straightway forgetteth what +manner of man he was. + +1:25 But whoso looketh into the perfect law of liberty, and continueth +therein, he being not a forgetful hearer, but a doer of the work, this +man shall be blessed in his deed. + +1:26 If any man among you seem to be religious, and bridleth not his +tongue, but deceiveth his own heart, this man's religion is vain. + +1:27 Pure religion and undefiled before God and the Father is this, To +visit the fatherless and widows in their affliction, and to keep +himself unspotted from the world. + +2:1 My brethren, have not the faith of our Lord Jesus Christ, the Lord +of glory, with respect of persons. + +2:2 For if there come unto your assembly a man with a gold ring, in +goodly apparel, and there come in also a poor man in vile raiment; 2:3 +And ye have respect to him that weareth the gay clothing, and say unto +him, Sit thou here in a good place; and say to the poor, Stand thou +there, or sit here under my footstool: 2:4 Are ye not then partial in +yourselves, and are become judges of evil thoughts? 2:5 Hearken, my +beloved brethren, Hath not God chosen the poor of this world rich in +faith, and heirs of the kingdom which he hath promised to them that +love him? 2:6 But ye have despised the poor. Do not rich men oppress +you, and draw you before the judgment seats? 2:7 Do not they +blaspheme that worthy name by the which ye are called? 2:8 If ye +fulfil the royal law according to the scripture, Thou shalt love thy +neighbour as thyself, ye do well: 2:9 But if ye have respect to +persons, ye commit sin, and are convinced of the law as transgressors. + +2:10 For whosoever shall keep the whole law, and yet offend in one +point, he is guilty of all. + +2:11 For he that said, Do not commit adultery, said also, Do not kill. +Now if thou commit no adultery, yet if thou kill, thou art become a +transgressor of the law. + +2:12 So speak ye, and so do, as they that shall be judged by the law +of liberty. + +2:13 For he shall have judgment without mercy, that hath shewed no +mercy; and mercy rejoiceth against judgment. + +2:14 What doth it profit, my brethren, though a man say he hath faith, +and have not works? can faith save him? 2:15 If a brother or sister +be naked, and destitute of daily food, 2:16 And one of you say unto +them, Depart in peace, be ye warmed and filled; notwithstanding ye +give them not those things which are needful to the body; what doth it +profit? 2:17 Even so faith, if it hath not works, is dead, being +alone. + +2:18 Yea, a man may say, Thou hast faith, and I have works: shew me +thy faith without thy works, and I will shew thee my faith by my +works. + +2:19 Thou believest that there is one God; thou doest well: the devils +also believe, and tremble. + +2:20 But wilt thou know, O vain man, that faith without works is dead? +2:21 Was not Abraham our father justified by works, when he had +offered Isaac his son upon the altar? 2:22 Seest thou how faith +wrought with his works, and by works was faith made perfect? 2:23 And +the scripture was fulfilled which saith, Abraham believed God, and it +was imputed unto him for righteousness: and he was called the Friend +of God. + +2:24 Ye see then how that by works a man is justified, and not by +faith only. + +2:25 Likewise also was not Rahab the harlot justified by works, when +she had received the messengers, and had sent them out another way? +2:26 For as the body without the spirit is dead, so faith without +works is dead also. + +3:1 My brethren, be not many masters, knowing that we shall receive +the greater condemnation. + +3:2 For in many things we offend all. If any man offend not in word, +the same is a perfect man, and able also to bridle the whole body. + +3:3 Behold, we put bits in the horses' mouths, that they may obey us; +and we turn about their whole body. + +3:4 Behold also the ships, which though they be so great, and are +driven of fierce winds, yet are they turned about with a very small +helm, whithersoever the governor listeth. + +3:5 Even so the tongue is a little member, and boasteth great things. + +Behold, how great a matter a little fire kindleth! 3:6 And the tongue +is a fire, a world of iniquity: so is the tongue among our members, +that it defileth the whole body, and setteth on fire the course of +nature; and it is set on fire of hell. + +3:7 For every kind of beasts, and of birds, and of serpents, and of +things in the sea, is tamed, and hath been tamed of mankind: 3:8 But +the tongue can no man tame; it is an unruly evil, full of deadly +poison. + +3:9 Therewith bless we God, even the Father; and therewith curse we +men, which are made after the similitude of God. + +3:10 Out of the same mouth proceedeth blessing and cursing. My +brethren, these things ought not so to be. + +3:11 Doth a fountain send forth at the same place sweet water and +bitter? 3:12 Can the fig tree, my brethren, bear olive berries? +either a vine, figs? so can no fountain both yield salt water and +fresh. + +3:13 Who is a wise man and endued with knowledge among you? let him +shew out of a good conversation his works with meekness of wisdom. + +3:14 But if ye have bitter envying and strife in your hearts, glory +not, and lie not against the truth. + +3:15 This wisdom descendeth not from above, but is earthly, sensual, +devilish. + +3:16 For where envying and strife is, there is confusion and every +evil work. + +3:17 But the wisdom that is from above is first pure, then peaceable, +gentle, and easy to be intreated, full of mercy and good fruits, +without partiality, and without hypocrisy. + +3:18 And the fruit of righteousness is sown in peace of them that make +peace. + +4:1 From whence come wars and fightings among you? come they not +hence, even of your lusts that war in your members? 4:2 Ye lust, and +have not: ye kill, and desire to have, and cannot obtain: ye fight and +war, yet ye have not, because ye ask not. + +4:3 Ye ask, and receive not, because ye ask amiss, that ye may consume +it upon your lusts. + +4:4 Ye adulterers and adulteresses, know ye not that the friendship of +the world is enmity with God? whosoever therefore will be a friend of +the world is the enemy of God. + +4:5 Do ye think that the scripture saith in vain, The spirit that +dwelleth in us lusteth to envy? 4:6 But he giveth more grace. +Wherefore he saith, God resisteth the proud, but giveth grace unto the +humble. + +4:7 Submit yourselves therefore to God. Resist the devil, and he will +flee from you. + +4:8 Draw nigh to God, and he will draw nigh to you. Cleanse your +hands, ye sinners; and purify your hearts, ye double minded. + +4:9 Be afflicted, and mourn, and weep: let your laughter be turned to +mourning, and your joy to heaviness. + +4:10 Humble yourselves in the sight of the Lord, and he shall lift you +up. + +4:11 Speak not evil one of another, brethren. He that speaketh evil of +his brother, and judgeth his brother, speaketh evil of the law, and +judgeth the law: but if thou judge the law, thou art not a doer of the +law, but a judge. + +4:12 There is one lawgiver, who is able to save and to destroy: who +art thou that judgest another? 4:13 Go to now, ye that say, To day or +to morrow we will go into such a city, and continue there a year, and +buy and sell, and get gain: 4:14 Whereas ye know not what shall be on +the morrow. For what is your life? It is even a vapour, that appeareth +for a little time, and then vanisheth away. + +4:15 For that ye ought to say, If the Lord will, we shall live, and do +this, or that. + +4:16 But now ye rejoice in your boastings: all such rejoicing is evil. + +4:17 Therefore to him that knoweth to do good, and doeth it not, to +him it is sin. + +5:1 Go to now, ye rich men, weep and howl for your miseries that shall +come upon you. + +5:2 Your riches are corrupted, and your garments are motheaten. + +5:3 Your gold and silver is cankered; and the rust of them shall be a +witness against you, and shall eat your flesh as it were fire. Ye have +heaped treasure together for the last days. + +5:4 Behold, the hire of the labourers who have reaped down your +fields, which is of you kept back by fraud, crieth: and the cries of +them which have reaped are entered into the ears of the Lord of +sabaoth. + +5:5 Ye have lived in pleasure on the earth, and been wanton; ye have +nourished your hearts, as in a day of slaughter. + +5:6 Ye have condemned and killed the just; and he doth not resist you. + +5:7 Be patient therefore, brethren, unto the coming of the Lord. + +Behold, the husbandman waiteth for the precious fruit of the earth, +and hath long patience for it, until he receive the early and latter +rain. + +5:8 Be ye also patient; stablish your hearts: for the coming of the +Lord draweth nigh. + +5:9 Grudge not one against another, brethren, lest ye be condemned: +behold, the judge standeth before the door. + +5:10 Take, my brethren, the prophets, who have spoken in the name of +the Lord, for an example of suffering affliction, and of patience. + +5:11 Behold, we count them happy which endure. Ye have heard of the +patience of Job, and have seen the end of the Lord; that the Lord is +very pitiful, and of tender mercy. + +5:12 But above all things, my brethren, swear not, neither by heaven, +neither by the earth, neither by any other oath: but let your yea be +yea; and your nay, nay; lest ye fall into condemnation. + +5:13 Is any among you afflicted? let him pray. Is any merry? let him +sing psalms. + +5:14 Is any sick among you? let him call for the elders of the church; +and let them pray over him, anointing him with oil in the name of the +Lord: 5:15 And the prayer of faith shall save the sick, and the Lord +shall raise him up; and if he have committed sins, they shall be +forgiven him. + +5:16 Confess your faults one to another, and pray one for another, +that ye may be healed. The effectual fervent prayer of a righteous man +availeth much. + +5:17 Elias was a man subject to like passions as we are, and he prayed +earnestly that it might not rain: and it rained not on the earth by +the space of three years and six months. + +5:18 And he prayed again, and the heaven gave rain, and the earth +brought forth her fruit. + +5:19 Brethren, if any of you do err from the truth, and one convert +him; 5:20 Let him know, that he which converteth the sinner from the +error of his way shall save a soul from death, and shall hide a +multitude of sins. + + + + +The First Epistle General of Peter + + +1:1 Peter, an apostle of Jesus Christ, to the strangers scattered +throughout Pontus, Galatia, Cappadocia, Asia, and Bithynia, 1:2 Elect +according to the foreknowledge of God the Father, through +sanctification of the Spirit, unto obedience and sprinkling of the +blood of Jesus Christ: Grace unto you, and peace, be multiplied. + +1:3 Blessed be the God and Father of our Lord Jesus Christ, which +according to his abundant mercy hath begotten us again unto a lively +hope by the resurrection of Jesus Christ from the dead, 1:4 To an +inheritance incorruptible, and undefiled, and that fadeth not away, +reserved in heaven for you, 1:5 Who are kept by the power of God +through faith unto salvation ready to be revealed in the last time. + +1:6 Wherein ye greatly rejoice, though now for a season, if need be, +ye are in heaviness through manifold temptations: 1:7 That the trial +of your faith, being much more precious than of gold that perisheth, +though it be tried with fire, might be found unto praise and honour +and glory at the appearing of Jesus Christ: 1:8 Whom having not seen, +ye love; in whom, though now ye see him not, yet believing, ye rejoice +with joy unspeakable and full of glory: 1:9 Receiving the end of your +faith, even the salvation of your souls. + +1:10 Of which salvation the prophets have enquired and searched +diligently, who prophesied of the grace that should come unto you: +1:11 Searching what, or what manner of time the Spirit of Christ which +was in them did signify, when it testified beforehand the sufferings +of Christ, and the glory that should follow. + +1:12 Unto whom it was revealed, that not unto themselves, but unto us +they did minister the things, which are now reported unto you by them +that have preached the gospel unto you with the Holy Ghost sent down +from heaven; which things the angels desire to look into. + +1:13 Wherefore gird up the loins of your mind, be sober, and hope to +the end for the grace that is to be brought unto you at the revelation +of Jesus Christ; 1:14 As obedient children, not fashioning yourselves +according to the former lusts in your ignorance: 1:15 But as he which +hath called you is holy, so be ye holy in all manner of conversation; +1:16 Because it is written, Be ye holy; for I am holy. + +1:17 And if ye call on the Father, who without respect of persons +judgeth according to every man's work, pass the time of your +sojourning here in fear: 1:18 Forasmuch as ye know that ye were not +redeemed with corruptible things, as silver and gold, from your vain +conversation received by tradition from your fathers; 1:19 But with +the precious blood of Christ, as of a lamb without blemish and without +spot: 1:20 Who verily was foreordained before the foundation of the +world, but was manifest in these last times for you, 1:21 Who by him +do believe in God, that raised him up from the dead, and gave him +glory; that your faith and hope might be in God. + +1:22 Seeing ye have purified your souls in obeying the truth through +the Spirit unto unfeigned love of the brethren, see that ye love one +another with a pure heart fervently: 1:23 Being born again, not of +corruptible seed, but of incorruptible, by the word of God, which +liveth and abideth for ever. + +1:24 For all flesh is as grass, and all the glory of man as the flower +of grass. The grass withereth, and the flower thereof falleth away: +1:25 But the word of the Lord endureth for ever. And this is the word +which by the gospel is preached unto you. + +2:1 Wherefore laying aside all malice, and all guile, and hypocrisies, +and envies, all evil speakings, 2:2 As newborn babes, desire the +sincere milk of the word, that ye may grow thereby: 2:3 If so be ye +have tasted that the Lord is gracious. + +2:4 To whom coming, as unto a living stone, disallowed indeed of men, +but chosen of God, and precious, 2:5 Ye also, as lively stones, are +built up a spiritual house, an holy priesthood, to offer up spiritual +sacrifices, acceptable to God by Jesus Christ. + +2:6 Wherefore also it is contained in the scripture, Behold, I lay in +Sion a chief corner stone, elect, precious: and he that believeth on +him shall not be confounded. + +2:7 Unto you therefore which believe he is precious: but unto them +which be disobedient, the stone which the builders disallowed, the +same is made the head of the corner, 2:8 And a stone of stumbling, and +a rock of offence, even to them which stumble at the word, being +disobedient: whereunto also they were appointed. + +2:9 But ye are a chosen generation, a royal priesthood, an holy +nation, a peculiar people; that ye should shew forth the praises of +him who hath called you out of darkness into his marvellous light; +2:10 Which in time past were not a people, but are now the people of +God: which had not obtained mercy, but now have obtained mercy. + +2:11 Dearly beloved, I beseech you as strangers and pilgrims, abstain +from fleshly lusts, which war against the soul; 2:12 Having your +conversation honest among the Gentiles: that, whereas they speak +against you as evildoers, they may by your good works, which they +shall behold, glorify God in the day of visitation. + +2:13 Submit yourselves to every ordinance of man for the Lord's sake: +whether it be to the king, as supreme; 2:14 Or unto governors, as unto +them that are sent by him for the punishment of evildoers, and for the +praise of them that do well. + +2:15 For so is the will of God, that with well doing ye may put to +silence the ignorance of foolish men: 2:16 As free, and not using your +liberty for a cloke of maliciousness, but as the servants of God. + +2:17 Honour all men. Love the brotherhood. Fear God. Honour the king. + +2:18 Servants, be subject to your masters with all fear; not only to +the good and gentle, but also to the froward. + +2:19 For this is thankworthy, if a man for conscience toward God +endure grief, suffering wrongfully. + +2:20 For what glory is it, if, when ye be buffeted for your faults, ye +shall take it patiently? but if, when ye do well, and suffer for it, +ye take it patiently, this is acceptable with God. + +2:21 For even hereunto were ye called: because Christ also suffered +for us, leaving us an example, that ye should follow his steps: 2:22 +Who did no sin, neither was guile found in his mouth: 2:23 Who, when +he was reviled, reviled not again; when he suffered, he threatened +not; but committed himself to him that judgeth righteously: 2:24 Who +his own self bare our sins in his own body on the tree, that we, being +dead to sins, should live unto righteousness: by whose stripes ye were +healed. + +2:25 For ye were as sheep going astray; but are now returned unto the +Shepherd and Bishop of your souls. + +3:1 Likewise, ye wives, be in subjection to your own husbands; that, +if any obey not the word, they also may without the word be won by the +conversation of the wives; 3:2 While they behold your chaste +conversation coupled with fear. + +3:3 Whose adorning let it not be that outward adorning of plaiting the +hair, and of wearing of gold, or of putting on of apparel; 3:4 But let +it be the hidden man of the heart, in that which is not corruptible, +even the ornament of a meek and quiet spirit, which is in the sight of +God of great price. + +3:5 For after this manner in the old time the holy women also, who +trusted in God, adorned themselves, being in subjection unto their own +husbands: 3:6 Even as Sara obeyed Abraham, calling him lord: whose +daughters ye are, as long as ye do well, and are not afraid with any +amazement. + +3:7 Likewise, ye husbands, dwell with them according to knowledge, +giving honour unto the wife, as unto the weaker vessel, and as being +heirs together of the grace of life; that your prayers be not +hindered. + +3:8 Finally, be ye all of one mind, having compassion one of another, +love as brethren, be pitiful, be courteous: 3:9 Not rendering evil for +evil, or railing for railing: but contrariwise blessing; knowing that +ye are thereunto called, that ye should inherit a blessing. + +3:10 For he that will love life, and see good days, let him refrain +his tongue from evil, and his lips that they speak no guile: 3:11 Let +him eschew evil, and do good; let him seek peace, and ensue it. + +3:12 For the eyes of the Lord are over the righteous, and his ears are +open unto their prayers: but the face of the Lord is against them that +do evil. + +3:13 And who is he that will harm you, if ye be followers of that +which is good? 3:14 But and if ye suffer for righteousness' sake, +happy are ye: and be not afraid of their terror, neither be troubled; +3:15 But sanctify the Lord God in your hearts: and be ready always to +give an answer to every man that asketh you a reason of the hope that +is in you with meekness and fear: 3:16 Having a good conscience; that, +whereas they speak evil of you, as of evildoers, they may be ashamed +that falsely accuse your good conversation in Christ. + +3:17 For it is better, if the will of God be so, that ye suffer for +well doing, than for evil doing. + +3:18 For Christ also hath once suffered for sins, the just for the +unjust, that he might bring us to God, being put to death in the +flesh, but quickened by the Spirit: 3:19 By which also he went and +preached unto the spirits in prison; 3:20 Which sometime were +disobedient, when once the longsuffering of God waited in the days of +Noah, while the ark was a preparing, wherein few, that is, eight souls +were saved by water. + +3:21 The like figure whereunto even baptism doth also now save us (not +the putting away of the filth of the flesh, but the answer of a good +conscience toward God,) by the resurrection of Jesus Christ: 3:22 Who +is gone into heaven, and is on the right hand of God; angels and +authorities and powers being made subject unto him. + +4:1 Forasmuch then as Christ hath suffered for us in the flesh, arm +yourselves likewise with the same mind: for he that hath suffered in +the flesh hath ceased from sin; 4:2 That he no longer should live the +rest of his time in the flesh to the lusts of men, but to the will of +God. + +4:3 For the time past of our life may suffice us to have wrought the +will of the Gentiles, when we walked in lasciviousness, lusts, excess +of wine, revellings, banquetings, and abominable idolatries: 4:4 +Wherein they think it strange that ye run not with them to the same +excess of riot, speaking evil of you: 4:5 Who shall give account to +him that is ready to judge the quick and the dead. + +4:6 For for this cause was the gospel preached also to them that are +dead, that they might be judged according to men in the flesh, but +live according to God in the spirit. + +4:7 But the end of all things is at hand: be ye therefore sober, and +watch unto prayer. + +4:8 And above all things have fervent charity among yourselves: for +charity shall cover the multitude of sins. + +4:9 Use hospitality one to another without grudging. + +4:10 As every man hath received the gift, even so minister the same +one to another, as good stewards of the manifold grace of God. + +4:11 If any man speak, let him speak as the oracles of God; if any man +minister, let him do it as of the ability which God giveth: that God +in all things may be glorified through Jesus Christ, to whom be praise +and dominion for ever and ever. Amen. + +4:12 Beloved, think it not strange concerning the fiery trial which is +to try you, as though some strange thing happened unto you: 4:13 But +rejoice, inasmuch as ye are partakers of Christ's sufferings; that, +when his glory shall be revealed, ye may be glad also with exceeding +joy. + +4:14 If ye be reproached for the name of Christ, happy are ye; for the +spirit of glory and of God resteth upon you: on their part he is evil +spoken of, but on your part he is glorified. + +4:15 But let none of you suffer as a murderer, or as a thief, or as an +evildoer, or as a busybody in other men's matters. + +4:16 Yet if any man suffer as a Christian, let him not be ashamed; but +let him glorify God on this behalf. + +4:17 For the time is come that judgment must begin at the house of +God: and if it first begin at us, what shall the end be of them that +obey not the gospel of God? 4:18 And if the righteous scarcely be +saved, where shall the ungodly and the sinner appear? 4:19 Wherefore +let them that suffer according to the will of God commit the keeping +of their souls to him in well doing, as unto a faithful Creator. + +5:1 The elders which are among you I exhort, who am also an elder, and +a witness of the sufferings of Christ, and also a partaker of the +glory that shall be revealed: 5:2 Feed the flock of God which is among +you, taking the oversight thereof, not by constraint, but willingly; +not for filthy lucre, but of a ready mind; 5:3 Neither as being lords +over God's heritage, but being ensamples to the flock. + +5:4 And when the chief Shepherd shall appear, ye shall receive a crown +of glory that fadeth not away. + +5:5 Likewise, ye younger, submit yourselves unto the elder. Yea, all +of you be subject one to another, and be clothed with humility: for +God resisteth the proud, and giveth grace to the humble. + +5:6 Humble yourselves therefore under the mighty hand of God, that he +may exalt you in due time: 5:7 Casting all your care upon him; for he +careth for you. + +5:8 Be sober, be vigilant; because your adversary the devil, as a +roaring lion, walketh about, seeking whom he may devour: 5:9 Whom +resist stedfast in the faith, knowing that the same afflictions are +accomplished in your brethren that are in the world. + +5:10 But the God of all grace, who hath called us unto his eternal +glory by Christ Jesus, after that ye have suffered a while, make you +perfect, stablish, strengthen, settle you. + +5:11 To him be glory and dominion for ever and ever. Amen. + +5:12 By Silvanus, a faithful brother unto you, as I suppose, I have +written briefly, exhorting, and testifying that this is the true grace +of God wherein ye stand. + +5:13 The church that is at Babylon, elected together with you, +saluteth you; and so doth Marcus my son. + +5:14 Greet ye one another with a kiss of charity. Peace be with you +all that are in Christ Jesus. Amen. + + + + +The Second General Epistle of Peter + + +1:1 Simon Peter, a servant and an apostle of Jesus Christ, to them +that have obtained like precious faith with us through the +righteousness of God and our Saviour Jesus Christ: 1:2 Grace and peace +be multiplied unto you through the knowledge of God, and of Jesus our +Lord, 1:3 According as his divine power hath given unto us all things +that pertain unto life and godliness, through the knowledge of him +that hath called us to glory and virtue: 1:4 Whereby are given unto us +exceeding great and precious promises: that by these ye might be +partakers of the divine nature, having escaped the corruption that is +in the world through lust. + +1:5 And beside this, giving all diligence, add to your faith virtue; +and to virtue knowledge; 1:6 And to knowledge temperance; and to +temperance patience; and to patience godliness; 1:7 And to godliness +brotherly kindness; and to brotherly kindness charity. + +1:8 For if these things be in you, and abound, they make you that ye +shall neither be barren nor unfruitful in the knowledge of our Lord +Jesus Christ. + +1:9 But he that lacketh these things is blind, and cannot see afar +off, and hath forgotten that he was purged from his old sins. + +1:10 Wherefore the rather, brethren, give diligence to make your +calling and election sure: for if ye do these things, ye shall never +fall: 1:11 For so an entrance shall be ministered unto you abundantly +into the everlasting kingdom of our Lord and Saviour Jesus Christ. + +1:12 Wherefore I will not be negligent to put you always in +remembrance of these things, though ye know them, and be established +in the present truth. + +1:13 Yea, I think it meet, as long as I am in this tabernacle, to stir +you up by putting you in remembrance; 1:14 Knowing that shortly I must +put off this my tabernacle, even as our Lord Jesus Christ hath shewed +me. + +1:15 Moreover I will endeavour that ye may be able after my decease to +have these things always in remembrance. + +1:16 For we have not followed cunningly devised fables, when we made +known unto you the power and coming of our Lord Jesus Christ, but were +eyewitnesses of his majesty. + +1:17 For he received from God the Father honour and glory, when there +came such a voice to him from the excellent glory, This is my beloved +Son, in whom I am well pleased. + +1:18 And this voice which came from heaven we heard, when we were with +him in the holy mount. + +1:19 We have also a more sure word of prophecy; whereunto ye do well +that ye take heed, as unto a light that shineth in a dark place, until +the day dawn, and the day star arise in your hearts: 1:20 Knowing this +first, that no prophecy of the scripture is of any private +interpretation. + +1:21 For the prophecy came not in old time by the will of man: but +holy men of God spake as they were moved by the Holy Ghost. + +2:1 But there were false prophets also among the people, even as there +shall be false teachers among you, who privily shall bring in damnable +heresies, even denying the Lord that bought them, and bring upon +themselves swift destruction. + +2:2 And many shall follow their pernicious ways; by reason of whom the +way of truth shall be evil spoken of. + +2:3 And through covetousness shall they with feigned words make +merchandise of you: whose judgment now of a long time lingereth not, +and their damnation slumbereth not. + +2:4 For if God spared not the angels that sinned, but cast them down +to hell, and delivered them into chains of darkness, to be reserved +unto judgment; 2:5 And spared not the old world, but saved Noah the +eighth person, a preacher of righteousness, bringing in the flood upon +the world of the ungodly; 2:6 And turning the cities of Sodom and +Gomorrha into ashes condemned them with an overthrow, making them an +ensample unto those that after should live ungodly; 2:7 And delivered +just Lot, vexed with the filthy conversation of the wicked: 2:8 (For +that righteous man dwelling among them, in seeing and hearing, vexed +his righteous soul from day to day with their unlawful deeds;) 2:9 The +Lord knoweth how to deliver the godly out of temptations, and to +reserve the unjust unto the day of judgment to be punished: 2:10 But +chiefly them that walk after the flesh in the lust of uncleanness, and +despise government. Presumptuous are they, selfwilled, they are not +afraid to speak evil of dignities. + +2:11 Whereas angels, which are greater in power and might, bring not +railing accusation against them before the Lord. + +2:12 But these, as natural brute beasts, made to be taken and +destroyed, speak evil of the things that they understand not; and +shall utterly perish in their own corruption; 2:13 And shall receive +the reward of unrighteousness, as they that count it pleasure to riot +in the day time. Spots they are and blemishes, sporting themselves +with their own deceivings while they feast with you; 2:14 Having eyes +full of adultery, and that cannot cease from sin; beguiling unstable +souls: an heart they have exercised with covetous practices; cursed +children: 2:15 Which have forsaken the right way, and are gone astray, +following the way of Balaam the son of Bosor, who loved the wages of +unrighteousness; 2:16 But was rebuked for his iniquity: the dumb ass +speaking with man's voice forbad the madness of the prophet. + +2:17 These are wells without water, clouds that are carried with a +tempest; to whom the mist of darkness is reserved for ever. + +2:18 For when they speak great swelling words of vanity, they allure +through the lusts of the flesh, through much wantonness, those that +were clean escaped from them who live in error. + +2:19 While they promise them liberty, they themselves are the servants +of corruption: for of whom a man is overcome, of the same is he +brought in bondage. + +2:20 For if after they have escaped the pollutions of the world +through the knowledge of the Lord and Saviour Jesus Christ, they are +again entangled therein, and overcome, the latter end is worse with +them than the beginning. + +2:21 For it had been better for them not to have known the way of +righteousness, than, after they have known it, to turn from the holy +commandment delivered unto them. + +2:22 But it is happened unto them according to the true proverb, The +dog is turned to his own vomit again; and the sow that was washed to +her wallowing in the mire. + +3:1 This second epistle, beloved, I now write unto you; in both which +I stir up your pure minds by way of remembrance: 3:2 That ye may be +mindful of the words which were spoken before by the holy prophets, +and of the commandment of us the apostles of the Lord and Saviour: 3:3 +Knowing this first, that there shall come in the last days scoffers, +walking after their own lusts, 3:4 And saying, Where is the promise of +his coming? for since the fathers fell asleep, all things continue as +they were from the beginning of the creation. + +3:5 For this they willingly are ignorant of, that by the word of God +the heavens were of old, and the earth standing out of the water and +in the water: 3:6 Whereby the world that then was, being overflowed +with water, perished: 3:7 But the heavens and the earth, which are +now, by the same word are kept in store, reserved unto fire against +the day of judgment and perdition of ungodly men. + +3:8 But, beloved, be not ignorant of this one thing, that one day is +with the Lord as a thousand years, and a thousand years as one day. + +3:9 The Lord is not slack concerning his promise, as some men count +slackness; but is longsuffering to us-ward, not willing that any +should perish, but that all should come to repentance. + +3:10 But the day of the Lord will come as a thief in the night; in the +which the heavens shall pass away with a great noise, and the elements +shall melt with fervent heat, the earth also and the works that are +therein shall be burned up. + +3:11 Seeing then that all these things shall be dissolved, what manner +of persons ought ye to be in all holy conversation and godliness, 3:12 +Looking for and hasting unto the coming of the day of God, wherein the +heavens being on fire shall be dissolved, and the elements shall melt +with fervent heat? 3:13 Nevertheless we, according to his promise, +look for new heavens and a new earth, wherein dwelleth righteousness. + +3:14 Wherefore, beloved, seeing that ye look for such things, be +diligent that ye may be found of him in peace, without spot, and +blameless. + +3:15 And account that the longsuffering of our Lord is salvation; even +as our beloved brother Paul also according to the wisdom given unto +him hath written unto you; 3:16 As also in all his epistles, speaking +in them of these things; in which are some things hard to be +understood, which they that are unlearned and unstable wrest, as they +do also the other scriptures, unto their own destruction. + +3:17 Ye therefore, beloved, seeing ye know these things before, beware +lest ye also, being led away with the error of the wicked, fall from +your own stedfastness. + +3:18 But grow in grace, and in the knowledge of our Lord and Saviour +Jesus Christ. To him be glory both now and for ever. Amen. + + + + +The First Epistle General of John + + +1:1 That which was from the beginning, which we have heard, which we +have seen with our eyes, which we have looked upon, and our hands have +handled, of the Word of life; 1:2 (For the life was manifested, and we +have seen it, and bear witness, and shew unto you that eternal life, +which was with the Father, and was manifested unto us;) 1:3 That which +we have seen and heard declare we unto you, that ye also may have +fellowship with us: and truly our fellowship is with the Father, and +with his Son Jesus Christ. + +1:4 And these things write we unto you, that your joy may be full. + +1:5 This then is the message which we have heard of him, and declare +unto you, that God is light, and in him is no darkness at all. + +1:6 If we say that we have fellowship with him, and walk in darkness, +we lie, and do not the truth: 1:7 But if we walk in the light, as he +is in the light, we have fellowship one with another, and the blood of +Jesus Christ his Son cleanseth us from all sin. + +1:8 If we say that we have no sin, we deceive ourselves, and the truth +is not in us. + +1:9 If we confess our sins, he is faithful and just to forgive us our +sins, and to cleanse us from all unrighteousness. + +1:10 If we say that we have not sinned, we make him a liar, and his +word is not in us. + +2:1 My little children, these things write I unto you, that ye sin +not. + +And if any man sin, we have an advocate with the Father, Jesus Christ +the righteous: 2:2 And he is the propitiation for our sins: and not +for our's only, but also for the sins of the whole world. + +2:3 And hereby we do know that we know him, if we keep his +commandments. + +2:4 He that saith, I know him, and keepeth not his commandments, is a +liar, and the truth is not in him. + +2:5 But whoso keepeth his word, in him verily is the love of God +perfected: hereby know we that we are in him. + +2:6 He that saith he abideth in him ought himself also so to walk, +even as he walked. + +2:7 Brethren, I write no new commandment unto you, but an old +commandment which ye had from the beginning. The old commandment is +the word which ye have heard from the beginning. + +2:8 Again, a new commandment I write unto you, which thing is true in +him and in you: because the darkness is past, and the true light now +shineth. + +2:9 He that saith he is in the light, and hateth his brother, is in +darkness even until now. + +2:10 He that loveth his brother abideth in the light, and there is +none occasion of stumbling in him. + +2:11 But he that hateth his brother is in darkness, and walketh in +darkness, and knoweth not whither he goeth, because that darkness hath +blinded his eyes. + +2:12 I write unto you, little children, because your sins are forgiven +you for his name's sake. + +2:13 I write unto you, fathers, because ye have known him that is from +the beginning. I write unto you, young men, because ye have overcome +the wicked one. I write unto you, little children, because ye have +known the Father. + +2:14 I have written unto you, fathers, because ye have known him that +is from the beginning. I have written unto you, young men, because ye +are strong, and the word of God abideth in you, and ye have overcome +the wicked one. + +2:15 Love not the world, neither the things that are in the world. If +any man love the world, the love of the Father is not in him. + +2:16 For all that is in the world, the lust of the flesh, and the lust +of the eyes, and the pride of life, is not of the Father, but is of +the world. + +2:17 And the world passeth away, and the lust thereof: but he that +doeth the will of God abideth for ever. + +2:18 Little children, it is the last time: and as ye have heard that +antichrist shall come, even now are there many antichrists; whereby we +know that it is the last time. + +2:19 They went out from us, but they were not of us; for if they had +been of us, they would no doubt have continued with us: but they went +out, that they might be made manifest that they were not all of us. + +2:20 But ye have an unction from the Holy One, and ye know all things. + +2:21 I have not written unto you because ye know not the truth, but +because ye know it, and that no lie is of the truth. + +2:22 Who is a liar but he that denieth that Jesus is the Christ? He is +antichrist, that denieth the Father and the Son. + +2:23 Whosoever denieth the Son, the same hath not the Father: he that +acknowledgeth the Son hath the Father also. + +2:24 Let that therefore abide in you, which ye have heard from the +beginning. If that which ye have heard from the beginning shall remain +in you, ye also shall continue in the Son, and in the Father. + +2:25 And this is the promise that he hath promised us, even eternal +life. + +2:26 These things have I written unto you concerning them that seduce +you. + +2:27 But the anointing which ye have received of him abideth in you, +and ye need not that any man teach you: but as the same anointing +teacheth you of all things, and is truth, and is no lie, and even as +it hath taught you, ye shall abide in him. + +2:28 And now, little children, abide in him; that, when he shall +appear, we may have confidence, and not be ashamed before him at his +coming. + +2:29 If ye know that he is righteous, ye know that every one that +doeth righteousness is born of him. + +3:1 Behold, what manner of love the Father hath bestowed upon us, that +we should be called the sons of God: therefore the world knoweth us +not, because it knew him not. + +3:2 Beloved, now are we the sons of God, and it doth not yet appear +what we shall be: but we know that, when he shall appear, we shall be +like him; for we shall see him as he is. + +3:3 And every man that hath this hope in him purifieth himself, even +as he is pure. + +3:4 Whosoever committeth sin transgresseth also the law: for sin is +the transgression of the law. + +3:5 And ye know that he was manifested to take away our sins; and in +him is no sin. + +3:6 Whosoever abideth in him sinneth not: whosoever sinneth hath not +seen him, neither known him. + +3:7 Little children, let no man deceive you: he that doeth +righteousness is righteous, even as he is righteous. + +3:8 He that committeth sin is of the devil; for the devil sinneth from +the beginning. For this purpose the Son of God was manifested, that he +might destroy the works of the devil. + +3:9 Whosoever is born of God doth not commit sin; for his seed +remaineth in him: and he cannot sin, because he is born of God. + +3:10 In this the children of God are manifest, and the children of the +devil: whosoever doeth not righteousness is not of God, neither he +that loveth not his brother. + +3:11 For this is the message that ye heard from the beginning, that we +should love one another. + +3:12 Not as Cain, who was of that wicked one, and slew his brother. +And wherefore slew he him? Because his own works were evil, and his +brother's righteous. + +3:13 Marvel not, my brethren, if the world hate you. + +3:14 We know that we have passed from death unto life, because we love +the brethren. He that loveth not his brother abideth in death. + +3:15 Whosoever hateth his brother is a murderer: and ye know that no +murderer hath eternal life abiding in him. + +3:16 Hereby perceive we the love of God, because he laid down his life +for us: and we ought to lay down our lives for the brethren. + +3:17 But whoso hath this world's good, and seeth his brother have +need, and shutteth up his bowels of compassion from him, how dwelleth +the love of God in him? 3:18 My little children, let us not love in +word, neither in tongue; but in deed and in truth. + +3:19 And hereby we know that we are of the truth, and shall assure our +hearts before him. + +3:20 For if our heart condemn us, God is greater than our heart, and +knoweth all things. + +3:21 Beloved, if our heart condemn us not, then have we confidence +toward God. + +3:22 And whatsoever we ask, we receive of him, because we keep his +commandments, and do those things that are pleasing in his sight. + +3:23 And this is his commandment, That we should believe on the name +of his Son Jesus Christ, and love one another, as he gave us +commandment. + +3:24 And he that keepeth his commandments dwelleth in him, and he in +him. + +And hereby we know that he abideth in us, by the Spirit which he hath +given us. + +4:1 Beloved, believe not every spirit, but try the spirits whether +they are of God: because many false prophets are gone out into the +world. + +4:2 Hereby know ye the Spirit of God: Every spirit that confesseth +that Jesus Christ is come in the flesh is of God: 4:3 And every spirit +that confesseth not that Jesus Christ is come in the flesh is not of +God: and this is that spirit of antichrist, whereof ye have heard that +it should come; and even now already is it in the world. + +4:4 Ye are of God, little children, and have overcome them: because +greater is he that is in you, than he that is in the world. + +4:5 They are of the world: therefore speak they of the world, and the +world heareth them. + +4:6 We are of God: he that knoweth God heareth us; he that is not of +God heareth not us. Hereby know we the spirit of truth, and the spirit +of error. + +4:7 Beloved, let us love one another: for love is of God; and every +one that loveth is born of God, and knoweth God. + +4:8 He that loveth not knoweth not God; for God is love. + +4:9 In this was manifested the love of God toward us, because that God +sent his only begotten Son into the world, that we might live through +him. + +4:10 Herein is love, not that we loved God, but that he loved us, and +sent his Son to be the propitiation for our sins. + +4:11 Beloved, if God so loved us, we ought also to love one another. + +4:12 No man hath seen God at any time. If we love one another, God +dwelleth in us, and his love is perfected in us. + +4:13 Hereby know we that we dwell in him, and he in us, because he +hath given us of his Spirit. + +4:14 And we have seen and do testify that the Father sent the Son to +be the Saviour of the world. + +4:15 Whosoever shall confess that Jesus is the Son of God, God +dwelleth in him, and he in God. + +4:16 And we have known and believed the love that God hath to us. God +is love; and he that dwelleth in love dwelleth in God, and God in him. + +4:17 Herein is our love made perfect, that we may have boldness in the +day of judgment: because as he is, so are we in this world. + +4:18 There is no fear in love; but perfect love casteth out fear: +because fear hath torment. He that feareth is not made perfect in +love. + +4:19 We love him, because he first loved us. + +4:20 If a man say, I love God, and hateth his brother, he is a liar: +for he that loveth not his brother whom he hath seen, how can he love +God whom he hath not seen? 4:21 And this commandment have we from +him, That he who loveth God love his brother also. + +5:1 Whosoever believeth that Jesus is the Christ is born of God: and +every one that loveth him that begat loveth him also that is begotten +of him. + +5:2 By this we know that we love the children of God, when we love +God, and keep his commandments. + +5:3 For this is the love of God, that we keep his commandments: and +his commandments are not grievous. + +5:4 For whatsoever is born of God overcometh the world: and this is +the victory that overcometh the world, even our faith. + +5:5 Who is he that overcometh the world, but he that believeth that +Jesus is the Son of God? 5:6 This is he that came by water and blood, +even Jesus Christ; not by water only, but by water and blood. And it +is the Spirit that beareth witness, because the Spirit is truth. + +5:7 For there are three that bear record in heaven, the Father, the +Word, and the Holy Ghost: and these three are one. + +5:8 And there are three that bear witness in earth, the Spirit, and +the water, and the blood: and these three agree in one. + +5:9 If we receive the witness of men, the witness of God is greater: +for this is the witness of God which he hath testified of his Son. + +5:10 He that believeth on the Son of God hath the witness in himself: +he that believeth not God hath made him a liar; because he believeth +not the record that God gave of his Son. + +5:11 And this is the record, that God hath given to us eternal life, +and this life is in his Son. + +5:12 He that hath the Son hath life; and he that hath not the Son of +God hath not life. + +5:13 These things have I written unto you that believe on the name of +the Son of God; that ye may know that ye have eternal life, and that +ye may believe on the name of the Son of God. + +5:14 And this is the confidence that we have in him, that, if we ask +any thing according to his will, he heareth us: 5:15 And if we know +that he hear us, whatsoever we ask, we know that we have the petitions +that we desired of him. + +5:16 If any man see his brother sin a sin which is not unto death, he +shall ask, and he shall give him life for them that sin not unto +death. There is a sin unto death: I do not say that he shall pray for +it. + +5:17 All unrighteousness is sin: and there is a sin not unto death. + +5:18 We know that whosoever is born of God sinneth not; but he that is +begotten of God keepeth himself, and that wicked one toucheth him not. + +5:19 And we know that we are of God, and the whole world lieth in +wickedness. + +5:20 And we know that the Son of God is come, and hath given us an +understanding, that we may know him that is true, and we are in him +that is true, even in his Son Jesus Christ. This is the true God, and +eternal life. + +5:21 Little children, keep yourselves from idols. Amen. + + + + +The Second Epistle General of John + + +1:1 The elder unto the elect lady and her children, whom I love in +the truth; and not I only, but also all they that have known the +truth; 1:2 For the truth's sake, which dwelleth in us, and shall be +with us for ever. + +1:3 Grace be with you, mercy, and peace, from God the Father, and from +the Lord Jesus Christ, the Son of the Father, in truth and love. + +1:4 I rejoiced greatly that I found of thy children walking in truth, +as we have received a commandment from the Father. + +1:5 And now I beseech thee, lady, not as though I wrote a new +commandment unto thee, but that which we had from the beginning, that +we love one another. + +1:6 And this is love, that we walk after his commandments. This is the +commandment, That, as ye have heard from the beginning, ye should walk +in it. + +1:7 For many deceivers are entered into the world, who confess not +that Jesus Christ is come in the flesh. This is a deceiver and an +antichrist. + +1:8 Look to yourselves, that we lose not those things which we have +wrought, but that we receive a full reward. + +1:9 Whosoever transgresseth, and abideth not in the doctrine of +Christ, hath not God. He that abideth in the doctrine of Christ, he +hath both the Father and the Son. + +1:10 If there come any unto you, and bring not this doctrine, receive +him not into your house, neither bid him God speed: 1:11 For he that +biddeth him God speed is partaker of his evil deeds. + +1:12 Having many things to write unto you, I would not write with +paper and ink: but I trust to come unto you, and speak face to face, +that our joy may be full. + +1:13 The children of thy elect sister greet thee. Amen. + + + + +The Third Epistle General of John + + +1:1 The elder unto the wellbeloved Gaius, whom I love in the truth. + +1:2 Beloved, I wish above all things that thou mayest prosper and be +in health, even as thy soul prospereth. + +1:3 For I rejoiced greatly, when the brethren came and testified of +the truth that is in thee, even as thou walkest in the truth. + +1:4 I have no greater joy than to hear that my children walk in truth. + +1:5 Beloved, thou doest faithfully whatsoever thou doest to the +brethren, and to strangers; 1:6 Which have borne witness of thy +charity before the church: whom if thou bring forward on their journey +after a godly sort, thou shalt do well: 1:7 Because that for his +name's sake they went forth, taking nothing of the Gentiles. + +1:8 We therefore ought to receive such, that we might be fellowhelpers +to the truth. + +1:9 I wrote unto the church: but Diotrephes, who loveth to have the +preeminence among them, receiveth us not. + +1:10 Wherefore, if I come, I will remember his deeds which he doeth, +prating against us with malicious words: and not content therewith, +neither doth he himself receive the brethren, and forbiddeth them that +would, and casteth them out of the church. + +1:11 Beloved, follow not that which is evil, but that which is good. +He that doeth good is of God: but he that doeth evil hath not seen +God. + +1:12 Demetrius hath good report of all men, and of the truth itself: +yea, and we also bear record; and ye know that our record is true. + +1:13 I had many things to write, but I will not with ink and pen write +unto thee: 1:14 But I trust I shall shortly see thee, and we shall +speak face to face. Peace be to thee. Our friends salute thee. Greet +the friends by name. + + + + +The General Epistle of Jude + + +1:1 Jude, the servant of Jesus Christ, and brother of James, to them +that are sanctified by God the Father, and preserved in Jesus Christ, +and called: 1:2 Mercy unto you, and peace, and love, be multiplied. + +1:3 Beloved, when I gave all diligence to write unto you of the common +salvation, it was needful for me to write unto you, and exhort you +that ye should earnestly contend for the faith which was once +delivered unto the saints. + +1:4 For there are certain men crept in unawares, who were before of +old ordained to this condemnation, ungodly men, turning the grace of +our God into lasciviousness, and denying the only Lord God, and our +Lord Jesus Christ. + +1:5 I will therefore put you in remembrance, though ye once knew this, +how that the Lord, having saved the people out of the land of Egypt, +afterward destroyed them that believed not. + +1:6 And the angels which kept not their first estate, but left their +own habitation, he hath reserved in everlasting chains under darkness +unto the judgment of the great day. + +1:7 Even as Sodom and Gomorrha, and the cities about them in like +manner, giving themselves over to fornication, and going after strange +flesh, are set forth for an example, suffering the vengeance of +eternal fire. + +1:8 Likewise also these filthy dreamers defile the flesh, despise +dominion, and speak evil of dignities. + +1:9 Yet Michael the archangel, when contending with the devil he +disputed about the body of Moses, durst not bring against him a +railing accusation, but said, The Lord rebuke thee. + +1:10 But these speak evil of those things which they know not: but +what they know naturally, as brute beasts, in those things they +corrupt themselves. + +1:11 Woe unto them! for they have gone in the way of Cain, and ran +greedily after the error of Balaam for reward, and perished in the +gainsaying of Core. + +1:12 These are spots in your feasts of charity, when they feast with +you, feeding themselves without fear: clouds they are without water, +carried about of winds; trees whose fruit withereth, without fruit, +twice dead, plucked up by the roots; 1:13 Raging waves of the sea, +foaming out their own shame; wandering stars, to whom is reserved the +blackness of darkness for ever. + +1:14 And Enoch also, the seventh from Adam, prophesied of these, +saying, Behold, the Lord cometh with ten thousands of his saints, 1:15 +To execute judgment upon all, and to convince all that are ungodly +among them of all their ungodly deeds which they have ungodly +committed, and of all their hard speeches which ungodly sinners have +spoken against him. + +1:16 These are murmurers, complainers, walking after their own lusts; +and their mouth speaketh great swelling words, having men's persons in +admiration because of advantage. + +1:17 But, beloved, remember ye the words which were spoken before of +the apostles of our Lord Jesus Christ; 1:18 How that they told you +there should be mockers in the last time, who should walk after their +own ungodly lusts. + +1:19 These be they who separate themselves, sensual, having not the +Spirit. + +1:20 But ye, beloved, building up yourselves on your most holy faith, +praying in the Holy Ghost, 1:21 Keep yourselves in the love of God, +looking for the mercy of our Lord Jesus Christ unto eternal life. + +1:22 And of some have compassion, making a difference: 1:23 And others +save with fear, pulling them out of the fire; hating even the garment +spotted by the flesh. + +1:24 Now unto him that is able to keep you from falling, and to +present you faultless before the presence of his glory with exceeding +joy, 1:25 To the only wise God our Saviour, be glory and majesty, +dominion and power, both now and ever. Amen. + + + + +The Revelation of Saint John the Devine + + +1:1 The Revelation of Jesus Christ, which God gave unto him, to shew +unto his servants things which must shortly come to pass; and he sent +and signified it by his angel unto his servant John: 1:2 Who bare +record of the word of God, and of the testimony of Jesus Christ, and +of all things that he saw. + +1:3 Blessed is he that readeth, and they that hear the words of this +prophecy, and keep those things which are written therein: for the +time is at hand. + +1:4 John to the seven churches which are in Asia: Grace be unto you, +and peace, from him which is, and which was, and which is to come; and +from the seven Spirits which are before his throne; 1:5 And from Jesus +Christ, who is the faithful witness, and the first begotten of the +dead, and the prince of the kings of the earth. Unto him that loved +us, and washed us from our sins in his own blood, 1:6 And hath made us +kings and priests unto God and his Father; to him be glory and +dominion for ever and ever. Amen. + +1:7 Behold, he cometh with clouds; and every eye shall see him, and +they also which pierced him: and all kindreds of the earth shall wail +because of him. Even so, Amen. + +1:8 I am Alpha and Omega, the beginning and the ending, saith the +Lord, which is, and which was, and which is to come, the Almighty. + +1:9 I John, who also am your brother, and companion in tribulation, +and in the kingdom and patience of Jesus Christ, was in the isle that +is called Patmos, for the word of God, and for the testimony of Jesus +Christ. + +1:10 I was in the Spirit on the Lord's day, and heard behind me a +great voice, as of a trumpet, 1:11 Saying, I am Alpha and Omega, the +first and the last: and, What thou seest, write in a book, and send it +unto the seven churches which are in Asia; unto Ephesus, and unto +Smyrna, and unto Pergamos, and unto Thyatira, and unto Sardis, and +unto Philadelphia, and unto Laodicea. + +1:12 And I turned to see the voice that spake with me. And being +turned, I saw seven golden candlesticks; 1:13 And in the midst of the +seven candlesticks one like unto the Son of man, clothed with a +garment down to the foot, and girt about the paps with a golden +girdle. + +1:14 His head and his hairs were white like wool, as white as snow; +and his eyes were as a flame of fire; 1:15 And his feet like unto fine +brass, as if they burned in a furnace; and his voice as the sound of +many waters. + +1:16 And he had in his right hand seven stars: and out of his mouth +went a sharp twoedged sword: and his countenance was as the sun +shineth in his strength. + +1:17 And when I saw him, I fell at his feet as dead. And he laid his +right hand upon me, saying unto me, Fear not; I am the first and the +last: 1:18 I am he that liveth, and was dead; and, behold, I am alive +for evermore, Amen; and have the keys of hell and of death. + +1:19 Write the things which thou hast seen, and the things which are, +and the things which shall be hereafter; 1:20 The mystery of the seven +stars which thou sawest in my right hand, and the seven golden +candlesticks. The seven stars are the angels of the seven churches: +and the seven candlesticks which thou sawest are the seven churches. + +2:1 Unto the angel of the church of Ephesus write; These things saith +he that holdeth the seven stars in his right hand, who walketh in the +midst of the seven golden candlesticks; 2:2 I know thy works, and thy +labour, and thy patience, and how thou canst not bear them which are +evil: and thou hast tried them which say they are apostles, and are +not, and hast found them liars: 2:3 And hast borne, and hast patience, +and for my name's sake hast laboured, and hast not fainted. + +2:4 Nevertheless I have somewhat against thee, because thou hast left +thy first love. + +2:5 Remember therefore from whence thou art fallen, and repent, and do +the first works; or else I will come unto thee quickly, and will +remove thy candlestick out of his place, except thou repent. + +2:6 But this thou hast, that thou hatest the deeds of the +Nicolaitanes, which I also hate. + +2:7 He that hath an ear, let him hear what the Spirit saith unto the +churches; To him that overcometh will I give to eat of the tree of +life, which is in the midst of the paradise of God. + +2:8 And unto the angel of the church in Smyrna write; These things +saith the first and the last, which was dead, and is alive; 2:9 I know +thy works, and tribulation, and poverty, (but thou art rich) and I +know the blasphemy of them which say they are Jews, and are not, but +are the synagogue of Satan. + +2:10 Fear none of those things which thou shalt suffer: behold, the +devil shall cast some of you into prison, that ye may be tried; and ye +shall have tribulation ten days: be thou faithful unto death, and I +will give thee a crown of life. + +2:11 He that hath an ear, let him hear what the Spirit saith unto the +churches; He that overcometh shall not be hurt of the second death. + +2:12 And to the angel of the church in Pergamos write; These things +saith he which hath the sharp sword with two edges; 2:13 I know thy +works, and where thou dwellest, even where Satan's seat is: and thou +holdest fast my name, and hast not denied my faith, even in those days +wherein Antipas was my faithful martyr, who was slain among you, where +Satan dwelleth. + +2:14 But I have a few things against thee, because thou hast there +them that hold the doctrine of Balaam, who taught Balac to cast a +stumblingblock before the children of Israel, to eat things sacrificed +unto idols, and to commit fornication. + +2:15 So hast thou also them that hold the doctrine of the +Nicolaitanes, which thing I hate. + +2:16 Repent; or else I will come unto thee quickly, and will fight +against them with the sword of my mouth. + +2:17 He that hath an ear, let him hear what the Spirit saith unto the +churches; To him that overcometh will I give to eat of the hidden +manna, and will give him a white stone, and in the stone a new name +written, which no man knoweth saving he that receiveth it. + +2:18 And unto the angel of the church in Thyatira write; These things +saith the Son of God, who hath his eyes like unto a flame of fire, and +his feet are like fine brass; 2:19 I know thy works, and charity, and +service, and faith, and thy patience, and thy works; and the last to +be more than the first. + +2:20 Notwithstanding I have a few things against thee, because thou +sufferest that woman Jezebel, which calleth herself a prophetess, to +teach and to seduce my servants to commit fornication, and to eat +things sacrificed unto idols. + +2:21 And I gave her space to repent of her fornication; and she +repented not. + +2:22 Behold, I will cast her into a bed, and them that commit adultery +with her into great tribulation, except they repent of their deeds. + +2:23 And I will kill her children with death; and all the churches +shall know that I am he which searcheth the reins and hearts: and I +will give unto every one of you according to your works. + +2:24 But unto you I say, and unto the rest in Thyatira, as many as +have not this doctrine, and which have not known the depths of Satan, +as they speak; I will put upon you none other burden. + +2:25 But that which ye have already hold fast till I come. + +2:26 And he that overcometh, and keepeth my works unto the end, to him +will I give power over the nations: 2:27 And he shall rule them with a +rod of iron; as the vessels of a potter shall they be broken to +shivers: even as I received of my Father. + +2:28 And I will give him the morning star. + +2:29 He that hath an ear, let him hear what the Spirit saith unto the +churches. + +3:1 And unto the angel of the church in Sardis write; These things +saith he that hath the seven Spirits of God, and the seven stars; I +know thy works, that thou hast a name that thou livest, and art dead. + +3:2 Be watchful, and strengthen the things which remain, that are +ready to die: for I have not found thy works perfect before God. + +3:3 Remember therefore how thou hast received and heard, and hold +fast, and repent. If therefore thou shalt not watch, I will come on +thee as a thief, and thou shalt not know what hour I will come upon +thee. + +3:4 Thou hast a few names even in Sardis which have not defiled their +garments; and they shall walk with me in white: for they are worthy. + +3:5 He that overcometh, the same shall be clothed in white raiment; +and I will not blot out his name out of the book of life, but I will +confess his name before my Father, and before his angels. + +3:6 He that hath an ear, let him hear what the Spirit saith unto the +churches. + +3:7 And to the angel of the church in Philadelphia write; These things +saith he that is holy, he that is true, he that hath the key of David, +he that openeth, and no man shutteth; and shutteth, and no man +openeth; 3:8 I know thy works: behold, I have set before thee an open +door, and no man can shut it: for thou hast a little strength, and +hast kept my word, and hast not denied my name. + +3:9 Behold, I will make them of the synagogue of Satan, which say they +are Jews, and are not, but do lie; behold, I will make them to come +and worship before thy feet, and to know that I have loved thee. + +3:10 Because thou hast kept the word of my patience, I also will keep +thee from the hour of temptation, which shall come upon all the world, +to try them that dwell upon the earth. + +3:11 Behold, I come quickly: hold that fast which thou hast, that no +man take thy crown. + +3:12 Him that overcometh will I make a pillar in the temple of my God, +and he shall go no more out: and I will write upon him the name of my +God, and the name of the city of my God, which is new Jerusalem, which +cometh down out of heaven from my God: and I will write upon him my +new name. + +3:13 He that hath an ear, let him hear what the Spirit saith unto the +churches. + +3:14 And unto the angel of the church of the Laodiceans write; These +things saith the Amen, the faithful and true witness, the beginning of +the creation of God; 3:15 I know thy works, that thou art neither cold +nor hot: I would thou wert cold or hot. + +3:16 So then because thou art lukewarm, and neither cold nor hot, I +will spue thee out of my mouth. + +3:17 Because thou sayest, I am rich, and increased with goods, and +have need of nothing; and knowest not that thou art wretched, and +miserable, and poor, and blind, and naked: 3:18 I counsel thee to buy +of me gold tried in the fire, that thou mayest be rich; and white +raiment, that thou mayest be clothed, and that the shame of thy +nakedness do not appear; and anoint thine eyes with eyesalve, that +thou mayest see. + +3:19 As many as I love, I rebuke and chasten: be zealous therefore, +and repent. + +3:20 Behold, I stand at the door, and knock: if any man hear my voice, +and open the door, I will come in to him, and will sup with him, and +he with me. + +3:21 To him that overcometh will I grant to sit with me in my throne, +even as I also overcame, and am set down with my Father in his throne. + +3:22 He that hath an ear, let him hear what the Spirit saith unto the +churches. + +4:1 After this I looked, and, behold, a door was opened in heaven: and +the first voice which I heard was as it were of a trumpet talking with +me; which said, Come up hither, and I will shew thee things which must +be hereafter. + +4:2 And immediately I was in the spirit: and, behold, a throne was set +in heaven, and one sat on the throne. + +4:3 And he that sat was to look upon like a jasper and a sardine +stone: and there was a rainbow round about the throne, in sight like +unto an emerald. + +4:4 And round about the throne were four and twenty seats: and upon +the seats I saw four and twenty elders sitting, clothed in white +raiment; and they had on their heads crowns of gold. + +4:5 And out of the throne proceeded lightnings and thunderings and +voices: and there were seven lamps of fire burning before the throne, +which are the seven Spirits of God. + +4:6 And before the throne there was a sea of glass like unto crystal: +and in the midst of the throne, and round about the throne, were four +beasts full of eyes before and behind. + +4:7 And the first beast was like a lion, and the second beast like a +calf, and the third beast had a face as a man, and the fourth beast +was like a flying eagle. + +4:8 And the four beasts had each of them six wings about him; and they +were full of eyes within: and they rest not day and night, saying, +Holy, holy, holy, LORD God Almighty, which was, and is, and is to +come. + +4:9 And when those beasts give glory and honour and thanks to him that +sat on the throne, who liveth for ever and ever, 4:10 The four and +twenty elders fall down before him that sat on the throne, and worship +him that liveth for ever and ever, and cast their crowns before the +throne, saying, 4:11 Thou art worthy, O Lord, to receive glory and +honour and power: for thou hast created all things, and for thy +pleasure they are and were created. + +5:1 And I saw in the right hand of him that sat on the throne a book +written within and on the backside, sealed with seven seals. + +5:2 And I saw a strong angel proclaiming with a loud voice, Who is +worthy to open the book, and to loose the seals thereof? 5:3 And no +man in heaven, nor in earth, neither under the earth, was able to open +the book, neither to look thereon. + +5:4 And I wept much, because no man was found worthy to open and to +read the book, neither to look thereon. + +5:5 And one of the elders saith unto me, Weep not: behold, the Lion of +the tribe of Juda, the Root of David, hath prevailed to open the book, +and to loose the seven seals thereof. + +5:6 And I beheld, and, lo, in the midst of the throne and of the four +beasts, and in the midst of the elders, stood a Lamb as it had been +slain, having seven horns and seven eyes, which are the seven Spirits +of God sent forth into all the earth. + +5:7 And he came and took the book out of the right hand of him that +sat upon the throne. + +5:8 And when he had taken the book, the four beasts and four and +twenty elders fell down before the Lamb, having every one of them +harps, and golden vials full of odours, which are the prayers of +saints. + +5:9 And they sung a new song, saying, Thou art worthy to take the +book, and to open the seals thereof: for thou wast slain, and hast +redeemed us to God by thy blood out of every kindred, and tongue, and +people, and nation; 5:10 And hast made us unto our God kings and +priests: and we shall reign on the earth. + +5:11 And I beheld, and I heard the voice of many angels round about +the throne and the beasts and the elders: and the number of them was +ten thousand times ten thousand, and thousands of thousands; 5:12 +Saying with a loud voice, Worthy is the Lamb that was slain to receive +power, and riches, and wisdom, and strength, and honour, and glory, +and blessing. + +5:13 And every creature which is in heaven, and on the earth, and +under the earth, and such as are in the sea, and all that are in them, +heard I saying, Blessing, and honour, and glory, and power, be unto +him that sitteth upon the throne, and unto the Lamb for ever and ever. + +5:14 And the four beasts said, Amen. And the four and twenty elders +fell down and worshipped him that liveth for ever and ever. + +6:1 And I saw when the Lamb opened one of the seals, and I heard, as +it were the noise of thunder, one of the four beasts saying, Come and +see. + +6:2 And I saw, and behold a white horse: and he that sat on him had a +bow; and a crown was given unto him: and he went forth conquering, and +to conquer. + +6:3 And when he had opened the second seal, I heard the second beast +say, Come and see. + +6:4 And there went out another horse that was red: and power was given +to him that sat thereon to take peace from the earth, and that they +should kill one another: and there was given unto him a great sword. + +6:5 And when he had opened the third seal, I heard the third beast +say, Come and see. And I beheld, and lo a black horse; and he that sat +on him had a pair of balances in his hand. + +6:6 And I heard a voice in the midst of the four beasts say, A measure +of wheat for a penny, and three measures of barley for a penny; and +see thou hurt not the oil and the wine. + +6:7 And when he had opened the fourth seal, I heard the voice of the +fourth beast say, Come and see. + +6:8 And I looked, and behold a pale horse: and his name that sat on +him was Death, and Hell followed with him. And power was given unto +them over the fourth part of the earth, to kill with sword, and with +hunger, and with death, and with the beasts of the earth. + +6:9 And when he had opened the fifth seal, I saw under the altar the +souls of them that were slain for the word of God, and for the +testimony which they held: 6:10 And they cried with a loud voice, +saying, How long, O Lord, holy and true, dost thou not judge and +avenge our blood on them that dwell on the earth? 6:11 And white +robes were given unto every one of them; and it was said unto them, +that they should rest yet for a little season, until their +fellowservants also and their brethren, that should be killed as they +were, should be fulfilled. + +6:12 And I beheld when he had opened the sixth seal, and, lo, there +was a great earthquake; and the sun became black as sackcloth of hair, +and the moon became as blood; 6:13 And the stars of heaven fell unto +the earth, even as a fig tree casteth her untimely figs, when she is +shaken of a mighty wind. + +6:14 And the heaven departed as a scroll when it is rolled together; +and every mountain and island were moved out of their places. + +6:15 And the kings of the earth, and the great men, and the rich men, +and the chief captains, and the mighty men, and every bondman, and +every free man, hid themselves in the dens and in the rocks of the +mountains; 6:16 And said to the mountains and rocks, Fall on us, and +hide us from the face of him that sitteth on the throne, and from the +wrath of the Lamb: 6:17 For the great day of his wrath is come; and +who shall be able to stand? 7:1 And after these things I saw four +angels standing on the four corners of the earth, holding the four +winds of the earth, that the wind should not blow on the earth, nor on +the sea, nor on any tree. + +7:2 And I saw another angel ascending from the east, having the seal +of the living God: and he cried with a loud voice to the four angels, +to whom it was given to hurt the earth and the sea, 7:3 Saying, Hurt +not the earth, neither the sea, nor the trees, till we have sealed the +servants of our God in their foreheads. + +7:4 And I heard the number of them which were sealed: and there were +sealed an hundred and forty and four thousand of all the tribes of the +children of Israel. + +7:5 Of the tribe of Juda were sealed twelve thousand. Of the tribe of +Reuben were sealed twelve thousand. Of the tribe of Gad were sealed +twelve thousand. + +7:6 Of the tribe of Aser were sealed twelve thousand. Of the tribe of +Nephthalim were sealed twelve thousand. Of the tribe of Manasses were +sealed twelve thousand. + +7:7 Of the tribe of Simeon were sealed twelve thousand. Of the tribe +of Levi were sealed twelve thousand. Of the tribe of Issachar were +sealed twelve thousand. + +7:8 Of the tribe of Zabulon were sealed twelve thousand. Of the tribe +of Joseph were sealed twelve thousand. Of the tribe of Benjamin were +sealed twelve thousand. + +7:9 After this I beheld, and, lo, a great multitude, which no man +could number, of all nations, and kindreds, and people, and tongues, +stood before the throne, and before the Lamb, clothed with white +robes, and palms in their hands; 7:10 And cried with a loud voice, +saying, Salvation to our God which sitteth upon the throne, and unto +the Lamb. + +7:11 And all the angels stood round about the throne, and about the +elders and the four beasts, and fell before the throne on their faces, +and worshipped God, 7:12 Saying, Amen: Blessing, and glory, and +wisdom, and thanksgiving, and honour, and power, and might, be unto +our God for ever and ever. Amen. + +7:13 And one of the elders answered, saying unto me, What are these +which are arrayed in white robes? and whence came they? 7:14 And I +said unto him, Sir, thou knowest. And he said to me, These are they +which came out of great tribulation, and have washed their robes, and +made them white in the blood of the Lamb. + +7:15 Therefore are they before the throne of God, and serve him day +and night in his temple: and he that sitteth on the throne shall dwell +among them. + +7:16 They shall hunger no more, neither thirst any more; neither shall +the sun light on them, nor any heat. + +7:17 For the Lamb which is in the midst of the throne shall feed them, +and shall lead them unto living fountains of waters: and God shall +wipe away all tears from their eyes. + +8:1 And when he had opened the seventh seal, there was silence in +heaven about the space of half an hour. + +8:2 And I saw the seven angels which stood before God; and to them +were given seven trumpets. + +8:3 And another angel came and stood at the altar, having a golden +censer; and there was given unto him much incense, that he should +offer it with the prayers of all saints upon the golden altar which +was before the throne. + +8:4 And the smoke of the incense, which came with the prayers of the +saints, ascended up before God out of the angel's hand. + +8:5 And the angel took the censer, and filled it with fire of the +altar, and cast it into the earth: and there were voices, and +thunderings, and lightnings, and an earthquake. + +8:6 And the seven angels which had the seven trumpets prepared +themselves to sound. + +8:7 The first angel sounded, and there followed hail and fire mingled +with blood, and they were cast upon the earth: and the third part of +trees was burnt up, and all green grass was burnt up. + +8:8 And the second angel sounded, and as it were a great mountain +burning with fire was cast into the sea: and the third part of the sea +became blood; 8:9 And the third part of the creatures which were in +the sea, and had life, died; and the third part of the ships were +destroyed. + +8:10 And the third angel sounded, and there fell a great star from +heaven, burning as it were a lamp, and it fell upon the third part of +the rivers, and upon the fountains of waters; 8:11 And the name of the +star is called Wormwood: and the third part of the waters became +wormwood; and many men died of the waters, because they were made +bitter. + +8:12 And the fourth angel sounded, and the third part of the sun was +smitten, and the third part of the moon, and the third part of the +stars; so as the third part of them was darkened, and the day shone +not for a third part of it, and the night likewise. + +8:13 And I beheld, and heard an angel flying through the midst of +heaven, saying with a loud voice, Woe, woe, woe, to the inhabiters of +the earth by reason of the other voices of the trumpet of the three +angels, which are yet to sound! 9:1 And the fifth angel sounded, and +I saw a star fall from heaven unto the earth: and to him was given the +key of the bottomless pit. + +9:2 And he opened the bottomless pit; and there arose a smoke out of +the pit, as the smoke of a great furnace; and the sun and the air were +darkened by reason of the smoke of the pit. + +9:3 And there came out of the smoke locusts upon the earth: and unto +them was given power, as the scorpions of the earth have power. + +9:4 And it was commanded them that they should not hurt the grass of +the earth, neither any green thing, neither any tree; but only those +men which have not the seal of God in their foreheads. + +9:5 And to them it was given that they should not kill them, but that +they should be tormented five months: and their torment was as the +torment of a scorpion, when he striketh a man. + +9:6 And in those days shall men seek death, and shall not find it; and +shall desire to die, and death shall flee from them. + +9:7 And the shapes of the locusts were like unto horses prepared unto +battle; and on their heads were as it were crowns like gold, and their +faces were as the faces of men. + +9:8 And they had hair as the hair of women, and their teeth were as +the teeth of lions. + +9:9 And they had breastplates, as it were breastplates of iron; and +the sound of their wings was as the sound of chariots of many horses +running to battle. + +9:10 And they had tails like unto scorpions, and there were stings in +their tails: and their power was to hurt men five months. + +9:11 And they had a king over them, which is the angel of the +bottomless pit, whose name in the Hebrew tongue is Abaddon, but in the +Greek tongue hath his name Apollyon. + +9:12 One woe is past; and, behold, there come two woes more hereafter. + +9:13 And the sixth angel sounded, and I heard a voice from the four +horns of the golden altar which is before God, 9:14 Saying to the +sixth angel which had the trumpet, Loose the four angels which are +bound in the great river Euphrates. + +9:15 And the four angels were loosed, which were prepared for an hour, +and a day, and a month, and a year, for to slay the third part of men. + +9:16 And the number of the army of the horsemen were two hundred +thousand thousand: and I heard the number of them. + +9:17 And thus I saw the horses in the vision, and them that sat on +them, having breastplates of fire, and of jacinth, and brimstone: and +the heads of the horses were as the heads of lions; and out of their +mouths issued fire and smoke and brimstone. + +9:18 By these three was the third part of men killed, by the fire, and +by the smoke, and by the brimstone, which issued out of their mouths. + +9:19 For their power is in their mouth, and in their tails: for their +tails were like unto serpents, and had heads, and with them they do +hurt. + +9:20 And the rest of the men which were not killed by these plagues +yet repented not of the works of their hands, that they should not +worship devils, and idols of gold, and silver, and brass, and stone, +and of wood: which neither can see, nor hear, nor walk: 9:21 Neither +repented they of their murders, nor of their sorceries, nor of their +fornication, nor of their thefts. + +10:1 And I saw another mighty angel come down from heaven, clothed +with a cloud: and a rainbow was upon his head, and his face was as it +were the sun, and his feet as pillars of fire: 10:2 And he had in his +hand a little book open: and he set his right foot upon the sea, and +his left foot on the earth, 10:3 And cried with a loud voice, as when +a lion roareth: and when he had cried, seven thunders uttered their +voices. + +10:4 And when the seven thunders had uttered their voices, I was about +to write: and I heard a voice from heaven saying unto me, Seal up +those things which the seven thunders uttered, and write them not. + +10:5 And the angel which I saw stand upon the sea and upon the earth +lifted up his hand to heaven, 10:6 And sware by him that liveth for +ever and ever, who created heaven, and the things that therein are, +and the earth, and the things that therein are, and the sea, and the +things which are therein, that there should be time no longer: 10:7 +But in the days of the voice of the seventh angel, when he shall begin +to sound, the mystery of God should be finished, as he hath declared +to his servants the prophets. + +10:8 And the voice which I heard from heaven spake unto me again, and +said, Go and take the little book which is open in the hand of the +angel which standeth upon the sea and upon the earth. + +10:9 And I went unto the angel, and said unto him, Give me the little +book. And he said unto me, Take it, and eat it up; and it shall make +thy belly bitter, but it shall be in thy mouth sweet as honey. + +10:10 And I took the little book out of the angel's hand, and ate it +up; and it was in my mouth sweet as honey: and as soon as I had eaten +it, my belly was bitter. + +10:11 And he said unto me, Thou must prophesy again before many +peoples, and nations, and tongues, and kings. + +11:1 And there was given me a reed like unto a rod: and the angel +stood, saying, Rise, and measure the temple of God, and the altar, and +them that worship therein. + +11:2 But the court which is without the temple leave out, and measure +it not; for it is given unto the Gentiles: and the holy city shall +they tread under foot forty and two months. + +11:3 And I will give power unto my two witnesses, and they shall +prophesy a thousand two hundred and threescore days, clothed in +sackcloth. + +11:4 These are the two olive trees, and the two candlesticks standing +before the God of the earth. + +11:5 And if any man will hurt them, fire proceedeth out of their +mouth, and devoureth their enemies: and if any man will hurt them, he +must in this manner be killed. + +11:6 These have power to shut heaven, that it rain not in the days of +their prophecy: and have power over waters to turn them to blood, and +to smite the earth with all plagues, as often as they will. + +11:7 And when they shall have finished their testimony, the beast that +ascendeth out of the bottomless pit shall make war against them, and +shall overcome them, and kill them. + +11:8 And their dead bodies shall lie in the street of the great city, +which spiritually is called Sodom and Egypt, where also our Lord was +crucified. + +11:9 And they of the people and kindreds and tongues and nations shall +see their dead bodies three days and an half, and shall not suffer +their dead bodies to be put in graves. + +11:10 And they that dwell upon the earth shall rejoice over them, and +make merry, and shall send gifts one to another; because these two +prophets tormented them that dwelt on the earth. + +11:11 And after three days and an half the spirit of life from God +entered into them, and they stood upon their feet; and great fear fell +upon them which saw them. + +11:12 And they heard a great voice from heaven saying unto them, Come +up hither. And they ascended up to heaven in a cloud; and their +enemies beheld them. + +11:13 And the same hour was there a great earthquake, and the tenth +part of the city fell, and in the earthquake were slain of men seven +thousand: and the remnant were affrighted, and gave glory to the God +of heaven. + +11:14 The second woe is past; and, behold, the third woe cometh +quickly. + +11:15 And the seventh angel sounded; and there were great voices in +heaven, saying, The kingdoms of this world are become the kingdoms of +our Lord, and of his Christ; and he shall reign for ever and ever. + +11:16 And the four and twenty elders, which sat before God on their +seats, fell upon their faces, and worshipped God, 11:17 Saying, We +give thee thanks, O LORD God Almighty, which art, and wast, and art to +come; because thou hast taken to thee thy great power, and hast +reigned. + +11:18 And the nations were angry, and thy wrath is come, and the time +of the dead, that they should be judged, and that thou shouldest give +reward unto thy servants the prophets, and to the saints, and them +that fear thy name, small and great; and shouldest destroy them which +destroy the earth. + +11:19 And the temple of God was opened in heaven, and there was seen +in his temple the ark of his testament: and there were lightnings, and +voices, and thunderings, and an earthquake, and great hail. + +12:1 And there appeared a great wonder in heaven; a woman clothed with +the sun, and the moon under her feet, and upon her head a crown of +twelve stars: 12:2 And she being with child cried, travailing in +birth, and pained to be delivered. + +12:3 And there appeared another wonder in heaven; and behold a great +red dragon, having seven heads and ten horns, and seven crowns upon +his heads. + +12:4 And his tail drew the third part of the stars of heaven, and did +cast them to the earth: and the dragon stood before the woman which +was ready to be delivered, for to devour her child as soon as it was +born. + +12:5 And she brought forth a man child, who was to rule all nations +with a rod of iron: and her child was caught up unto God, and to his +throne. + +12:6 And the woman fled into the wilderness, where she hath a place +prepared of God, that they should feed her there a thousand two +hundred and threescore days. + +12:7 And there was war in heaven: Michael and his angels fought +against the dragon; and the dragon fought and his angels, 12:8 And +prevailed not; neither was their place found any more in heaven. + +12:9 And the great dragon was cast out, that old serpent, called the +Devil, and Satan, which deceiveth the whole world: he was cast out +into the earth, and his angels were cast out with him. + +12:10 And I heard a loud voice saying in heaven, Now is come +salvation, and strength, and the kingdom of our God, and the power of +his Christ: for the accuser of our brethren is cast down, which +accused them before our God day and night. + +12:11 And they overcame him by the blood of the Lamb, and by the word +of their testimony; and they loved not their lives unto the death. + +12:12 Therefore rejoice, ye heavens, and ye that dwell in them. Woe to +the inhabiters of the earth and of the sea! for the devil is come down +unto you, having great wrath, because he knoweth that he hath but a +short time. + +12:13 And when the dragon saw that he was cast unto the earth, he +persecuted the woman which brought forth the man child. + +12:14 And to the woman were given two wings of a great eagle, that she +might fly into the wilderness, into her place, where she is nourished +for a time, and times, and half a time, from the face of the serpent. + +12:15 And the serpent cast out of his mouth water as a flood after the +woman, that he might cause her to be carried away of the flood. + +12:16 And the earth helped the woman, and the earth opened her mouth, +and swallowed up the flood which the dragon cast out of his mouth. + +12:17 And the dragon was wroth with the woman, and went to make war +with the remnant of her seed, which keep the commandments of God, and +have the testimony of Jesus Christ. + +13:1 And I stood upon the sand of the sea, and saw a beast rise up out +of the sea, having seven heads and ten horns, and upon his horns ten +crowns, and upon his heads the name of blasphemy. + +13:2 And the beast which I saw was like unto a leopard, and his feet +were as the feet of a bear, and his mouth as the mouth of a lion: and +the dragon gave him his power, and his seat, and great authority. + +13:3 And I saw one of his heads as it were wounded to death; and his +deadly wound was healed: and all the world wondered after the beast. + +13:4 And they worshipped the dragon which gave power unto the beast: +and they worshipped the beast, saying, Who is like unto the beast? who +is able to make war with him? 13:5 And there was given unto him a +mouth speaking great things and blasphemies; and power was given unto +him to continue forty and two months. + +13:6 And he opened his mouth in blasphemy against God, to blaspheme +his name, and his tabernacle, and them that dwell in heaven. + +13:7 And it was given unto him to make war with the saints, and to +overcome them: and power was given him over all kindreds, and tongues, +and nations. + +13:8 And all that dwell upon the earth shall worship him, whose names +are not written in the book of life of the Lamb slain from the +foundation of the world. + +13:9 If any man have an ear, let him hear. + +13:10 He that leadeth into captivity shall go into captivity: he that +killeth with the sword must be killed with the sword. Here is the +patience and the faith of the saints. + +13:11 And I beheld another beast coming up out of the earth; and he +had two horns like a lamb, and he spake as a dragon. + +13:12 And he exerciseth all the power of the first beast before him, +and causeth the earth and them which dwell therein to worship the +first beast, whose deadly wound was healed. + +13:13 And he doeth great wonders, so that he maketh fire come down +from heaven on the earth in the sight of men, 13:14 And deceiveth them +that dwell on the earth by the means of those miracles which he had +power to do in the sight of the beast; saying to them that dwell on +the earth, that they should make an image to the beast, which had the +wound by a sword, and did live. + +13:15 And he had power to give life unto the image of the beast, that +the image of the beast should both speak, and cause that as many as +would not worship the image of the beast should be killed. + +13:16 And he causeth all, both small and great, rich and poor, free +and bond, to receive a mark in their right hand, or in their +foreheads: 13:17 And that no man might buy or sell, save he that had +the mark, or the name of the beast, or the number of his name. + +13:18 Here is wisdom. Let him that hath understanding count the number +of the beast: for it is the number of a man; and his number is Six +hundred threescore and six. + +14:1 And I looked, and, lo, a Lamb stood on the mount Sion, and with +him an hundred forty and four thousand, having his Father's name +written in their foreheads. + +14:2 And I heard a voice from heaven, as the voice of many waters, and +as the voice of a great thunder: and I heard the voice of harpers +harping with their harps: 14:3 And they sung as it were a new song +before the throne, and before the four beasts, and the elders: and no +man could learn that song but the hundred and forty and four thousand, +which were redeemed from the earth. + +14:4 These are they which were not defiled with women; for they are +virgins. These are they which follow the Lamb whithersoever he goeth. +These were redeemed from among men, being the firstfruits unto God and +to the Lamb. + +14:5 And in their mouth was found no guile: for they are without fault +before the throne of God. + +14:6 And I saw another angel fly in the midst of heaven, having the +everlasting gospel to preach unto them that dwell on the earth, and to +every nation, and kindred, and tongue, and people, 14:7 Saying with a +loud voice, Fear God, and give glory to him; for the hour of his +judgment is come: and worship him that made heaven, and earth, and the +sea, and the fountains of waters. + +14:8 And there followed another angel, saying, Babylon is fallen, is +fallen, that great city, because she made all nations drink of the +wine of the wrath of her fornication. + +14:9 And the third angel followed them, saying with a loud voice, If +any man worship the beast and his image, and receive his mark in his +forehead, or in his hand, 14:10 The same shall drink of the wine of +the wrath of God, which is poured out without mixture into the cup of +his indignation; and he shall be tormented with fire and brimstone in +the presence of the holy angels, and in the presence of the Lamb: +14:11 And the smoke of their torment ascendeth up for ever and ever: +and they have no rest day nor night, who worship the beast and his +image, and whosoever receiveth the mark of his name. + +14:12 Here is the patience of the saints: here are they that keep the +commandments of God, and the faith of Jesus. + +14:13 And I heard a voice from heaven saying unto me, Write, Blessed +are the dead which die in the Lord from henceforth: Yea, saith the +Spirit, that they may rest from their labours; and their works do +follow them. + +14:14 And I looked, and behold a white cloud, and upon the cloud one +sat like unto the Son of man, having on his head a golden crown, and +in his hand a sharp sickle. + +14:15 And another angel came out of the temple, crying with a loud +voice to him that sat on the cloud, Thrust in thy sickle, and reap: +for the time is come for thee to reap; for the harvest of the earth is +ripe. + +14:16 And he that sat on the cloud thrust in his sickle on the earth; +and the earth was reaped. + +14:17 And another angel came out of the temple which is in heaven, he +also having a sharp sickle. + +14:18 And another angel came out from the altar, which had power over +fire; and cried with a loud cry to him that had the sharp sickle, +saying, Thrust in thy sharp sickle, and gather the clusters of the +vine of the earth; for her grapes are fully ripe. + +14:19 And the angel thrust in his sickle into the earth, and gathered +the vine of the earth, and cast it into the great winepress of the +wrath of God. + +14:20 And the winepress was trodden without the city, and blood came +out of the winepress, even unto the horse bridles, by the space of a +thousand and six hundred furlongs. + +15:1 And I saw another sign in heaven, great and marvellous, seven +angels having the seven last plagues; for in them is filled up the +wrath of God. + +15:2 And I saw as it were a sea of glass mingled with fire: and them +that had gotten the victory over the beast, and over his image, and +over his mark, and over the number of his name, stand on the sea of +glass, having the harps of God. + +15:3 And they sing the song of Moses the servant of God, and the song +of the Lamb, saying, Great and marvellous are thy works, Lord God +Almighty; just and true are thy ways, thou King of saints. + +15:4 Who shall not fear thee, O Lord, and glorify thy name? for thou +only art holy: for all nations shall come and worship before thee; for +thy judgments are made manifest. + +15:5 And after that I looked, and, behold, the temple of the +tabernacle of the testimony in heaven was opened: 15:6 And the seven +angels came out of the temple, having the seven plagues, clothed in +pure and white linen, and having their breasts girded with golden +girdles. + +15:7 And one of the four beasts gave unto the seven angels seven +golden vials full of the wrath of God, who liveth for ever and ever. + +15:8 And the temple was filled with smoke from the glory of God, and +from his power; and no man was able to enter into the temple, till the +seven plagues of the seven angels were fulfilled. + +16:1 And I heard a great voice out of the temple saying to the seven +angels, Go your ways, and pour out the vials of the wrath of God upon +the earth. + +16:2 And the first went, and poured out his vial upon the earth; and +there fell a noisome and grievous sore upon the men which had the mark +of the beast, and upon them which worshipped his image. + +16:3 And the second angel poured out his vial upon the sea; and it +became as the blood of a dead man: and every living soul died in the +sea. + +16:4 And the third angel poured out his vial upon the rivers and +fountains of waters; and they became blood. + +16:5 And I heard the angel of the waters say, Thou art righteous, O +Lord, which art, and wast, and shalt be, because thou hast judged +thus. + +16:6 For they have shed the blood of saints and prophets, and thou +hast given them blood to drink; for they are worthy. + +16:7 And I heard another out of the altar say, Even so, Lord God +Almighty, true and righteous are thy judgments. + +16:8 And the fourth angel poured out his vial upon the sun; and power +was given unto him to scorch men with fire. + +16:9 And men were scorched with great heat, and blasphemed the name of +God, which hath power over these plagues: and they repented not to +give him glory. + +16:10 And the fifth angel poured out his vial upon the seat of the +beast; and his kingdom was full of darkness; and they gnawed their +tongues for pain, 16:11 And blasphemed the God of heaven because of +their pains and their sores, and repented not of their deeds. + +16:12 And the sixth angel poured out his vial upon the great river +Euphrates; and the water thereof was dried up, that the way of the +kings of the east might be prepared. + +16:13 And I saw three unclean spirits like frogs come out of the mouth +of the dragon, and out of the mouth of the beast, and out of the mouth +of the false prophet. + +16:14 For they are the spirits of devils, working miracles, which go +forth unto the kings of the earth and of the whole world, to gather +them to the battle of that great day of God Almighty. + +16:15 Behold, I come as a thief. Blessed is he that watcheth, and +keepeth his garments, lest he walk naked, and they see his shame. + +16:16 And he gathered them together into a place called in the Hebrew +tongue Armageddon. + +16:17 And the seventh angel poured out his vial into the air; and +there came a great voice out of the temple of heaven, from the throne, +saying, It is done. + +16:18 And there were voices, and thunders, and lightnings; and there +was a great earthquake, such as was not since men were upon the earth, +so mighty an earthquake, and so great. + +16:19 And the great city was divided into three parts, and the cities +of the nations fell: and great Babylon came in remembrance before God, +to give unto her the cup of the wine of the fierceness of his wrath. + +16:20 And every island fled away, and the mountains were not found. + +16:21 And there fell upon men a great hail out of heaven, every stone +about the weight of a talent: and men blasphemed God because of the +plague of the hail; for the plague thereof was exceeding great. + +17:1 And there came one of the seven angels which had the seven vials, +and talked with me, saying unto me, Come hither; I will shew unto thee +the judgment of the great whore that sitteth upon many waters: 17:2 +With whom the kings of the earth have committed fornication, and the +inhabitants of the earth have been made drunk with the wine of her +fornication. + +17:3 So he carried me away in the spirit into the wilderness: and I +saw a woman sit upon a scarlet coloured beast, full of names of +blasphemy, having seven heads and ten horns. + +17:4 And the woman was arrayed in purple and scarlet colour, and +decked with gold and precious stones and pearls, having a golden cup +in her hand full of abominations and filthiness of her fornication: +17:5 And upon her forehead was a name written, MYSTERY, BABYLON THE +GREAT, THE MOTHER OF HARLOTS AND ABOMINATIONS OF THE EARTH. + +17:6 And I saw the woman drunken with the blood of the saints, and +with the blood of the martyrs of Jesus: and when I saw her, I wondered +with great admiration. + +17:7 And the angel said unto me, Wherefore didst thou marvel? I will +tell thee the mystery of the woman, and of the beast that carrieth +her, which hath the seven heads and ten horns. + +17:8 The beast that thou sawest was, and is not; and shall ascend out +of the bottomless pit, and go into perdition: and they that dwell on +the earth shall wonder, whose names were not written in the book of +life from the foundation of the world, when they behold the beast that +was, and is not, and yet is. + +17:9 And here is the mind which hath wisdom. The seven heads are seven +mountains, on which the woman sitteth. + +17:10 And there are seven kings: five are fallen, and one is, and the +other is not yet come; and when he cometh, he must continue a short +space. + +17:11 And the beast that was, and is not, even he is the eighth, and +is of the seven, and goeth into perdition. + +17:12 And the ten horns which thou sawest are ten kings, which have +received no kingdom as yet; but receive power as kings one hour with +the beast. + +17:13 These have one mind, and shall give their power and strength +unto the beast. + +17:14 These shall make war with the Lamb, and the Lamb shall overcome +them: for he is Lord of lords, and King of kings: and they that are +with him are called, and chosen, and faithful. + +17:15 And he saith unto me, The waters which thou sawest, where the +whore sitteth, are peoples, and multitudes, and nations, and tongues. + +17:16 And the ten horns which thou sawest upon the beast, these shall +hate the whore, and shall make her desolate and naked, and shall eat +her flesh, and burn her with fire. + +17:17 For God hath put in their hearts to fulfil his will, and to +agree, and give their kingdom unto the beast, until the words of God +shall be fulfilled. + +17:18 And the woman which thou sawest is that great city, which +reigneth over the kings of the earth. + +18:1 And after these things I saw another angel come down from heaven, +having great power; and the earth was lightened with his glory. + +18:2 And he cried mightily with a strong voice, saying, Babylon the +great is fallen, is fallen, and is become the habitation of devils, +and the hold of every foul spirit, and a cage of every unclean and +hateful bird. + +18:3 For all nations have drunk of the wine of the wrath of her +fornication, and the kings of the earth have committed fornication +with her, and the merchants of the earth are waxed rich through the +abundance of her delicacies. + +18:4 And I heard another voice from heaven, saying, Come out of her, +my people, that ye be not partakers of her sins, and that ye receive +not of her plagues. + +18:5 For her sins have reached unto heaven, and God hath remembered +her iniquities. + +18:6 Reward her even as she rewarded you, and double unto her double +according to her works: in the cup which she hath filled fill to her +double. + +18:7 How much she hath glorified herself, and lived deliciously, so +much torment and sorrow give her: for she saith in her heart, I sit a +queen, and am no widow, and shall see no sorrow. + +18:8 Therefore shall her plagues come in one day, death, and mourning, +and famine; and she shall be utterly burned with fire: for strong is +the Lord God who judgeth her. + +18:9 And the kings of the earth, who have committed fornication and +lived deliciously with her, shall bewail her, and lament for her, when +they shall see the smoke of her burning, 18:10 Standing afar off for +the fear of her torment, saying, Alas, alas that great city Babylon, +that mighty city! for in one hour is thy judgment come. + +18:11 And the merchants of the earth shall weep and mourn over her; +for no man buyeth their merchandise any more: 18:12 The merchandise of +gold, and silver, and precious stones, and of pearls, and fine linen, +and purple, and silk, and scarlet, and all thyine wood, and all manner +vessels of ivory, and all manner vessels of most precious wood, and of +brass, and iron, and marble, 18:13 And cinnamon, and odours, and +ointments, and frankincense, and wine, and oil, and fine flour, and +wheat, and beasts, and sheep, and horses, and chariots, and slaves, +and souls of men. + +18:14 And the fruits that thy soul lusted after are departed from +thee, and all things which were dainty and goodly are departed from +thee, and thou shalt find them no more at all. + +18:15 The merchants of these things, which were made rich by her, +shall stand afar off for the fear of her torment, weeping and wailing, +18:16 And saying, Alas, alas that great city, that was clothed in fine +linen, and purple, and scarlet, and decked with gold, and precious +stones, and pearls! 18:17 For in one hour so great riches is come to +nought. And every shipmaster, and all the company in ships, and +sailors, and as many as trade by sea, stood afar off, 18:18 And cried +when they saw the smoke of her burning, saying, What city is like unto +this great city! 18:19 And they cast dust on their heads, and cried, +weeping and wailing, saying, Alas, alas that great city, wherein were +made rich all that had ships in the sea by reason of her costliness! +for in one hour is she made desolate. + +18:20 Rejoice over her, thou heaven, and ye holy apostles and +prophets; for God hath avenged you on her. + +18:21 And a mighty angel took up a stone like a great millstone, and +cast it into the sea, saying, Thus with violence shall that great city +Babylon be thrown down, and shall be found no more at all. + +18:22 And the voice of harpers, and musicians, and of pipers, and +trumpeters, shall be heard no more at all in thee; and no craftsman, +of whatsoever craft he be, shall be found any more in thee; and the +sound of a millstone shall be heard no more at all in thee; 18:23 And +the light of a candle shall shine no more at all in thee; and the +voice of the bridegroom and of the bride shall be heard no more at all +in thee: for thy merchants were the great men of the earth; for by thy +sorceries were all nations deceived. + +18:24 And in her was found the blood of prophets, and of saints, and +of all that were slain upon the earth. + +19:1 And after these things I heard a great voice of much people in +heaven, saying, Alleluia; Salvation, and glory, and honour, and power, +unto the Lord our God: 19:2 For true and righteous are his judgments: +for he hath judged the great whore, which did corrupt the earth with +her fornication, and hath avenged the blood of his servants at her +hand. + +19:3 And again they said, Alleluia And her smoke rose up for ever and +ever. + +19:4 And the four and twenty elders and the four beasts fell down and +worshipped God that sat on the throne, saying, Amen; Alleluia. + +19:5 And a voice came out of the throne, saying, Praise our God, all +ye his servants, and ye that fear him, both small and great. + +19:6 And I heard as it were the voice of a great multitude, and as the +voice of many waters, and as the voice of mighty thunderings, saying, +Alleluia: for the Lord God omnipotent reigneth. + +19:7 Let us be glad and rejoice, and give honour to him: for the +marriage of the Lamb is come, and his wife hath made herself ready. + +19:8 And to her was granted that she should be arrayed in fine linen, +clean and white: for the fine linen is the righteousness of saints. + +19:9 And he saith unto me, Write, Blessed are they which are called +unto the marriage supper of the Lamb. And he saith unto me, These are +the true sayings of God. + +19:10 And I fell at his feet to worship him. And he said unto me, See +thou do it not: I am thy fellowservant, and of thy brethren that have +the testimony of Jesus: worship God: for the testimony of Jesus is the +spirit of prophecy. + +19:11 And I saw heaven opened, and behold a white horse; and he that +sat upon him was called Faithful and True, and in righteousness he +doth judge and make war. + +19:12 His eyes were as a flame of fire, and on his head were many +crowns; and he had a name written, that no man knew, but he himself. + +19:13 And he was clothed with a vesture dipped in blood: and his name +is called The Word of God. + +19:14 And the armies which were in heaven followed him upon white +horses, clothed in fine linen, white and clean. + +19:15 And out of his mouth goeth a sharp sword, that with it he should +smite the nations: and he shall rule them with a rod of iron: and he +treadeth the winepress of the fierceness and wrath of Almighty God. + +19:16 And he hath on his vesture and on his thigh a name written, KING +OF KINGS, AND LORD OF LORDS. + +19:17 And I saw an angel standing in the sun; and he cried with a loud +voice, saying to all the fowls that fly in the midst of heaven, Come +and gather yourselves together unto the supper of the great God; 19:18 +That ye may eat the flesh of kings, and the flesh of captains, and the +flesh of mighty men, and the flesh of horses, and of them that sit on +them, and the flesh of all men, both free and bond, both small and +great. + +19:19 And I saw the beast, and the kings of the earth, and their +armies, gathered together to make war against him that sat on the +horse, and against his army. + +19:20 And the beast was taken, and with him the false prophet that +wrought miracles before him, with which he deceived them that had +received the mark of the beast, and them that worshipped his image. +These both were cast alive into a lake of fire burning with brimstone. + +19:21 And the remnant were slain with the sword of him that sat upon +the horse, which sword proceeded out of his mouth: and all the fowls +were filled with their flesh. + +20:1 And I saw an angel come down from heaven, having the key of the +bottomless pit and a great chain in his hand. + +20:2 And he laid hold on the dragon, that old serpent, which is the +Devil, and Satan, and bound him a thousand years, 20:3 And cast him +into the bottomless pit, and shut him up, and set a seal upon him, +that he should deceive the nations no more, till the thousand years +should be fulfilled: and after that he must be loosed a little season. + +20:4 And I saw thrones, and they sat upon them, and judgment was given +unto them: and I saw the souls of them that were beheaded for the +witness of Jesus, and for the word of God, and which had not +worshipped the beast, neither his image, neither had received his mark +upon their foreheads, or in their hands; and they lived and reigned +with Christ a thousand years. + +20:5 But the rest of the dead lived not again until the thousand years +were finished. This is the first resurrection. + +20:6 Blessed and holy is he that hath part in the first resurrection: +on such the second death hath no power, but they shall be priests of +God and of Christ, and shall reign with him a thousand years. + +20:7 And when the thousand years are expired, Satan shall be loosed +out of his prison, 20:8 And shall go out to deceive the nations which +are in the four quarters of the earth, Gog, and Magog, to gather them +together to battle: the number of whom is as the sand of the sea. + +20:9 And they went up on the breadth of the earth, and compassed the +camp of the saints about, and the beloved city: and fire came down +from God out of heaven, and devoured them. + +20:10 And the devil that deceived them was cast into the lake of fire +and brimstone, where the beast and the false prophet are, and shall be +tormented day and night for ever and ever. + +20:11 And I saw a great white throne, and him that sat on it, from +whose face the earth and the heaven fled away; and there was found no +place for them. + +20:12 And I saw the dead, small and great, stand before God; and the +books were opened: and another book was opened, which is the book of +life: and the dead were judged out of those things which were written +in the books, according to their works. + +20:13 And the sea gave up the dead which were in it; and death and +hell delivered up the dead which were in them: and they were judged +every man according to their works. + +20:14 And death and hell were cast into the lake of fire. This is the +second death. + +20:15 And whosoever was not found written in the book of life was cast +into the lake of fire. + +21:1 And I saw a new heaven and a new earth: for the first heaven and +the first earth were passed away; and there was no more sea. + +21:2 And I John saw the holy city, new Jerusalem, coming down from God +out of heaven, prepared as a bride adorned for her husband. + +21:3 And I heard a great voice out of heaven saying, Behold, the +tabernacle of God is with men, and he will dwell with them, and they +shall be his people, and God himself shall be with them, and be their +God. + +21:4 And God shall wipe away all tears from their eyes; and there +shall be no more death, neither sorrow, nor crying, neither shall +there be any more pain: for the former things are passed away. + +21:5 And he that sat upon the throne said, Behold, I make all things +new. + +And he said unto me, Write: for these words are true and faithful. + +21:6 And he said unto me, It is done. I am Alpha and Omega, the +beginning and the end. I will give unto him that is athirst of the +fountain of the water of life freely. + +21:7 He that overcometh shall inherit all things; and I will be his +God, and he shall be my son. + +21:8 But the fearful, and unbelieving, and the abominable, and +murderers, and whoremongers, and sorcerers, and idolaters, and all +liars, shall have their part in the lake which burneth with fire and +brimstone: which is the second death. + +21:9 And there came unto me one of the seven angels which had the +seven vials full of the seven last plagues, and talked with me, +saying, Come hither, I will shew thee the bride, the Lamb's wife. + +21:10 And he carried me away in the spirit to a great and high +mountain, and shewed me that great city, the holy Jerusalem, +descending out of heaven from God, 21:11 Having the glory of God: and +her light was like unto a stone most precious, even like a jasper +stone, clear as crystal; 21:12 And had a wall great and high, and had +twelve gates, and at the gates twelve angels, and names written +thereon, which are the names of the twelve tribes of the children of +Israel: 21:13 On the east three gates; on the north three gates; on +the south three gates; and on the west three gates. + +21:14 And the wall of the city had twelve foundations, and in them the +names of the twelve apostles of the Lamb. + +21:15 And he that talked with me had a golden reed to measure the +city, and the gates thereof, and the wall thereof. + +21:16 And the city lieth foursquare, and the length is as large as the +breadth: and he measured the city with the reed, twelve thousand +furlongs. + +The length and the breadth and the height of it are equal. + +21:17 And he measured the wall thereof, an hundred and forty and four +cubits, according to the measure of a man, that is, of the angel. + +21:18 And the building of the wall of it was of jasper: and the city +was pure gold, like unto clear glass. + +21:19 And the foundations of the wall of the city were garnished with +all manner of precious stones. The first foundation was jasper; the +second, sapphire; the third, a chalcedony; the fourth, an emerald; +21:20 The fifth, sardonyx; the sixth, sardius; the seventh, +chrysolyte; the eighth, beryl; the ninth, a topaz; the tenth, a +chrysoprasus; the eleventh, a jacinth; the twelfth, an amethyst. + +21:21 And the twelve gates were twelve pearls: every several gate was +of one pearl: and the street of the city was pure gold, as it were +transparent glass. + +21:22 And I saw no temple therein: for the Lord God Almighty and the +Lamb are the temple of it. + +21:23 And the city had no need of the sun, neither of the moon, to +shine in it: for the glory of God did lighten it, and the Lamb is the +light thereof. + +21:24 And the nations of them which are saved shall walk in the light +of it: and the kings of the earth do bring their glory and honour into +it. + +21:25 And the gates of it shall not be shut at all by day: for there +shall be no night there. + +21:26 And they shall bring the glory and honour of the nations into +it. + +21:27 And there shall in no wise enter into it any thing that +defileth, neither whatsoever worketh abomination, or maketh a lie: but +they which are written in the Lamb's book of life. + +22:1 And he shewed me a pure river of water of life, clear as crystal, +proceeding out of the throne of God and of the Lamb. + +22:2 In the midst of the street of it, and on either side of the +river, was there the tree of life, which bare twelve manner of fruits, +and yielded her fruit every month: and the leaves of the tree were for +the healing of the nations. + +22:3 And there shall be no more curse: but the throne of God and of +the Lamb shall be in it; and his servants shall serve him: 22:4 And +they shall see his face; and his name shall be in their foreheads. + +22:5 And there shall be no night there; and they need no candle, +neither light of the sun; for the Lord God giveth them light: and they +shall reign for ever and ever. + +22:6 And he said unto me, These sayings are faithful and true: and the +Lord God of the holy prophets sent his angel to shew unto his servants +the things which must shortly be done. + +22:7 Behold, I come quickly: blessed is he that keepeth the sayings of +the prophecy of this book. + +22:8 And I John saw these things, and heard them. And when I had heard +and seen, I fell down to worship before the feet of the angel which +shewed me these things. + +22:9 Then saith he unto me, See thou do it not: for I am thy +fellowservant, and of thy brethren the prophets, and of them which +keep the sayings of this book: worship God. + +22:10 And he saith unto me, Seal not the sayings of the prophecy of +this book: for the time is at hand. + +22:11 He that is unjust, let him be unjust still: and he which is +filthy, let him be filthy still: and he that is righteous, let him be +righteous still: and he that is holy, let him be holy still. + +22:12 And, behold, I come quickly; and my reward is with me, to give +every man according as his work shall be. + +22:13 I am Alpha and Omega, the beginning and the end, the first and +the last. + +22:14 Blessed are they that do his commandments, that they may have +right to the tree of life, and may enter in through the gates into the +city. + +22:15 For without are dogs, and sorcerers, and whoremongers, and +murderers, and idolaters, and whosoever loveth and maketh a lie. + +22:16 I Jesus have sent mine angel to testify unto you these things in +the churches. I am the root and the offspring of David, and the bright +and morning star. + +22:17 And the Spirit and the bride say, Come. And let him that heareth +say, Come. And let him that is athirst come. And whosoever will, let +him take the water of life freely. + +22:18 For I testify unto every man that heareth the words of the +prophecy of this book, If any man shall add unto these things, God +shall add unto him the plagues that are written in this book: 22:19 +And if any man shall take away from the words of the book of this +prophecy, God shall take away his part out of the book of life, and +out of the holy city, and from the things which are written in this book. + +22:20 He which testifieth these things saith, Surely I come quickly. +Amen. + +Even so, come, Lord Jesus. + +22:21 The grace of our Lord Jesus Christ be with you all. Amen. + + +End of the Project Gutenberg Edition of the New Testament + + +End of the Project Gutenberg Edition of the King James Bible + + diff --git a/SparrowOS/Misc/Dollar.CPP b/SparrowOS/Misc/Dollar.CPP new file mode 100644 index 0000000..05e0540 --- /dev/null +++ b/SparrowOS/Misc/Dollar.CPP @@ -0,0 +1,31 @@ +U0 DollarFile(CDirEntry *m1) +{ + CDoc *doc; + while (m1) { + if (m1->attr & _ATTR_DIR) + DollarFile(m1->sub); + else { + "" m1->full_name; + NewLine; + doc=DocRead(m1->full_name,DOCF_PLAIN_TEXT|DOCF_DBL_DOLLARS); + DocWrite(doc); + DocDel(doc); + } + m1=m1->next; + } +} + + +public U0 Dollar(U8 *files_find_mask,U8 *fu_flags=NULL) +//This is for importing non-"SparrowOS" text files. +//$BK,1$WARNING:$BK,0$Do not use on files with dollar cmds +// or on binary files. See $LK,"FilesFind","MN:FilesFind"$() for flags. +{ + CDirEntry *tempm1=NULL; + I64 fuf_flags=0; + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + tempm1=FilesFind(files_find_mask,fuf_flags); + DollarFile(tempm1); + CDirListDel(tempm1); +} diff --git a/SparrowOS/Misc/OSTestSuite.CPP b/SparrowOS/Misc/OSTestSuite.CPP new file mode 100644 index 0000000..f5e4814 --- /dev/null +++ b/SparrowOS/Misc/OSTestSuite.CPP @@ -0,0 +1,2418 @@ +I64 ts_num; +U0 TSStart() +{ + ts_num=0; +} +U0 TS() +{ + progress4=ts_num++; + SPrintF(progress4_desc,"%d",progress4); + progress4_max=157; +} +U0 TSEnd() +{ + if (ts_num!=progress4_max) + "$$FG,RED$$Progress4:%d$$FG$$\n",progress4; + else + "$$FG,GREEN$$Test Suite Completed$$FG$$\n"; + ProgressBarsRst; +} + +U0 DoSpritePlot() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/SpritePlot.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoSpritePlot3D() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/SpritePlot3D.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoSpritePut() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/SpritePut.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoSpritePutExt() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/SpritePutExt.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoSpriteText() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/SpriteText.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoEdCSprite() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/EdCSprite.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoExtents() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Extents.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + + +U0 DoDotNet() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/DotNet.CPP.Z\";\n"); + Sleep(300); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoLowPassFilter() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/LowPassFilter.CPP.Z\";\n"); + Sleep(300); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(300); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(300); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(300); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(300); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoMathAudioDemo() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/MathAudioDemo.CPP.Z\";\n"); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoLines() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Lines.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoBounce() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/Graphics/Bounce.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoMsgLoop() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/MsgLoop.CPP.Z\";\n"); + Sleep(300); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(300); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoASCIIOrgan() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Snd/ASCIIOrgan.CPP.Z\";\n"); + Sleep(100); + SendMsg(task,MSG_KEY_DOWN_UP,'A',0); + Sleep(200); + SendMsg(task,MSG_KEY_DOWN_UP,'B',0); + Sleep(200); + SendMsg(task,MSG_KEY_DOWN_UP,'C',0); + Sleep(200); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoDoodle() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Doodle.CPP.Z\";\n"); + SendMsg(task,MSG_IP_L_DOWN,10,10); + SendMsg(task,MSG_IP_L_UP,100,200); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoSpeedLine() +{ + I64 i=PURPLE; + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Speedline.CPP.Z\";\n"); + SendMsg(task,MSG_IP_L_DOWN,10,10); + SendMsg(task,MSG_IP_L_UP,100,200); + PostMsg(task,MSG_IP_R_DOWN_UP,0,0); + while (!TaskValidate(task->popup_task)) + Yield; + while (i--) + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + Sleep(100); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_ESC,0); + TaskWait(task); + SendMsg(task,MSG_IP_L_DOWN,50,10); + SendMsg(task,MSG_IP_L_UP,150,200); + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoKeyBitMap() +{ + I64 i_sc=A2ScanCode('i'); + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/KeyBitMap.CPP.Z\" Exit;\n"); + Sleep(20); + LBts(key_down_bitmap,i_sc); + Sleep(500); + LBtr(key_down_bitmap,i_sc); +} + +U0 DoBlink() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Blink.CPP.Z\";\n"); + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoGolf() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Golf.CPP.Z\";\n"); + Sleep(300); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(300); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(300); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(300); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoMountain() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/Graphics/Mountain.CPP.Z\";\n"); + Sleep(1500); + Kill(task); +} + +U0 DoCoach() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/GameStarters/Coach.CPP.Z\";\n"); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoDigits() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Digits.CPP.Z\";\n"); + Sleep(100); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(100); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(250); + SendMsg(task,MSG_KEY_DOWN_UP,'1',0); + Sleep(250); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoCPUPlot() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/CPUPlot.CPP.Z\";\n"); + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoDither() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Dither.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoSymmetry() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Symmetry.CPP.Z\";\n"); + SendMsg(task,MSG_IP_R_DOWN,100,100); + SendMsg(task,MSG_IP_R_UP,200,200); + Sleep(100); + SendMsg(task,MSG_IP_L_DOWN,10,10); + SendMsg(task,MSG_IP_L_UP,100,200); + Sleep(250); + SendMsg(task,MSG_IP_L_DOWN,100,200); + SendMsg(task,MSG_IP_L_UP,400,400); + Sleep(250); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoBSpline() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/BSpline.CPP.Z\";\n"); + SendMsg(task,MSG_IP_L_DOWN_UP,50,50); + SendMsg(task,MSG_IP_L_DOWN_UP,300,100); + SendMsg(task,MSG_IP_L_DOWN_UP,150,300); + SendMsg(task,MSG_IP_R_DOWN_UP,0,0); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoBlot() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Blot.CPP.Z\";\n"); + Sleep(1800); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoCaptureScreen() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/CaptureScreen.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(2000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); + Del("HOME/ScreenShot.GRA.Z"); +} + +/* +U0 DoPullDownMenu() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/PullDownMenu.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} +*/ + +U0 DoStadium() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/GameStarters/Stadium/Stadium\";\n"); + Sleep(50); + SendMsg(task,MSG_IP_L_DOWN_UP,100,10); + Sleep(300); + SendMsg(task,MSG_IP_L_DOWN_UP,320,20); + Sleep(300); + SendMsg(task,MSG_IP_L_DOWN_UP,520,10); + Sleep(300); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoPalette() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Palette.CPP.Z\";\n"); + Sleep(400); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(400); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoHalogen() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/GameStarters/Halogen.CPP.Z\";\n"); + SendMsg(task,MSG_KEY_DOWN,0,SC_CURSOR_UP); + Sleep(1000); + SendMsg(task,MSG_KEY_UP,0,SC_CURSOR_UP); + SendMsg(task,MSG_KEY_DOWN,0,SC_CURSOR_RIGHT); + Sleep(333); + SendMsg(task,MSG_KEY_UP,0,SC_CURSOR_RIGHT); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoTheDead() +{ + I64 i; + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/GameStarters/TheDead.CPP.Z\";\n"); + for (i=0;i<15;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(50); + } + for (i=0;i<15;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(50); + } + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoBomber() +{ + I64 i; + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/GameStarters/Bomber.CPP.Z\";\n"); + for (i=0;i<7;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT); + Sleep(100); + } + for (i=0;i<7;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(200); + } + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoZoneOut() +{ + I64 i; + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/GameStarters/ZoneOut.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + for (i=0;i<15;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(100); + } + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoVaroom() +{ + I64 i; + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/GameStarters/Varoom.CPP.Z\";\n"); + for (i=0;i<15;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP); + Sleep(50); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_LEFT); + Sleep(50); + } + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoRocks() +{ + I64 i; + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/GameStarters/Rocks.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (TaskValidate(task->popup_task)) + Yield; + SendMsg(task,MSG_KEY_DOWN,0,SC_CURSOR_RIGHT); + Sleep(300); + for (i=0;i<15;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(100); + } + SendMsg(task,MSG_KEY_UP,0,SC_CURSOR_RIGHT); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoNavy() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/GameStarters/Navy.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (TaskValidate(task->popup_task)) + Yield; + SendMsg(task,MSG_IP_R_DOWN_UP,RandI16%400+200,RandI16%300+150); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoWenceslas() +{ + I64 i; + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/GameStarters/Wenceslas.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(100); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(100); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(100); + for (i=0;i<25;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT); + Sleep(25); + } + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoChess() +{ + I64 i; + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/GameStarters/Chess.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(100); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(100); + for (i=0;i<8;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT); + Sleep(25); + } + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP); + Sleep(250); + SendMsg(task,MSG_KEY_DOWN,CH_SPACE,0); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP); + Sleep(250); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP); + SendMsg(task,MSG_KEY_UP,CH_SPACE,0); + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoChessNet() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/GameStarters/ChessNet.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_NEW_LINE,0); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoRainDrops() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/GameStarters/RainDrops.CPP.Z\";\n"); + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoMorseCode() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Snd/MorseCode.CPP.Z\";\n"); + Sleep(50); + + PostMsg(task,MSG_KEY_DOWN,CH_SPACE,0); + Sleep(200); + PostMsg(task,MSG_KEY_UP,CH_SPACE,0); + Sleep(350); + + PostMsg(task,MSG_KEY_DOWN,CH_SPACE,0); + Sleep(50); + PostMsg(task,MSG_KEY_UP,CH_SPACE,0); + Sleep(350); + + PostMsg(task,MSG_KEY_DOWN,CH_SPACE,0); + Sleep(50); + PostMsg(task,MSG_KEY_UP,CH_SPACE,0); + Sleep(25); + PostMsg(task,MSG_KEY_DOWN,CH_SPACE,0); + Sleep(200); + PostMsg(task,MSG_KEY_UP,CH_SPACE,0); + Sleep(25); + PostMsg(task,MSG_KEY_DOWN,CH_SPACE,0); + Sleep(50); + PostMsg(task,MSG_KEY_UP,CH_SPACE,0); + Sleep(1350); + + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +/* +U0 DoPixelCollision() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/PixelCollision.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} +*/ + +U0 DoBlackDiamond() +{ + I64 i; + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/GameStarters/BlackDiamond.CPP.Z\";\n"); + for (i=0;i<15;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT); + Sleep(75); + } + for (i=0;i<12;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + Sleep(75); + } + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoCtrlR1() +{ + I64 i; + CTask *task=SpawnUser,*task1; + XTalkWait(task,"//"); + PostMsg(task,MSG_KEY_DOWN_UP,CH_CTRLR,0); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (TaskValidate(task->popup_task)) + Yield; + +//Tag text + PostMsg(task,MSG_KEY_DOWN_UP,CH_ESC,0); + +//Color + while (!TaskValidate(task->popup_task)) + Yield; + task1=task->popup_task; + TaskWait(task->popup_task); + PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (task->popup_task==task1 || !TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + for (i=0;i<2;i++) + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + task1=task->popup_task; + PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + +//Width + while (task->popup_task==task1 || !TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + task1=task->popup_task; + PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (task->popup_task==task1 || !TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + for (i=0;i<4;i++) + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + task1=task->popup_task; + PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + +//Line + while (task->popup_task==task1 || !TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + for (i=0;i<6;i++) + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (TaskValidate(task->popup_task)) + Yield; + SendMsg(task,MSG_IP_L_DOWN,150,150); + SendMsg(task,MSG_IP_L_UP,150,95); + Sleep(250); + SendMsg(task,MSG_IP_L_DOWN,150,150); + SendMsg(task,MSG_IP_L_UP,190,190); + Sleep(250); + SendMsg(task,MSG_IP_L_DOWN,150,150); + SendMsg(task,MSG_IP_L_UP,110,190); + Sleep(250); + PostMsg(task,MSG_IP_R_DOWN_UP,100,100); + +//Color + while (!TaskValidate(task->popup_task)) + Yield; + task1=task->popup_task; + TaskWait(task->popup_task); + PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (task->popup_task==task1 || !TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + for (i=0;i<3;i++) + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + task1=task->popup_task; + PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + +//Circle + while (task->popup_task==task1 || !TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + for (i=0;i<9;i++) + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (TaskValidate(task->popup_task)) + Yield; + SendMsg(task,MSG_IP_L_DOWN,150,150); + SendMsg(task,MSG_IP_L_UP,190,190); + Sleep(250); + PostMsg(task,MSG_IP_R_DOWN_UP,100,100); + +//Exit + while (!TaskValidate(task->popup_task)) + Yield; + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN+SCF_CTRL); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP); + PostMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (TaskValidate(task->popup_task)) + Yield; + Sleep(1000); + XTalk(task,"\nExit;\n"); +} + +/* +U0 DoTicTacToe() +{ +} +*/ + +U0 DoCircuit() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/Graphics/Circuit.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (TaskValidate(task->popup_task)) + Yield; + SetIP(300,350); + SendMsg(task,MSG_KEY_DOWN_UP,'r',0); + SetIP(400,350); + SendMsg(task,MSG_KEY_DOWN_UP,'l',0); + SetIP(350,400); + SendMsg(task,MSG_KEY_DOWN_UP,'c',0); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + SendMsg(task,MSG_IP_L_DOWN,350,385); + SendMsg(task,MSG_IP_L_UP,390,350); + Sleep(500); + SendMsg(task,MSG_IP_L_DOWN,350,385); + SendMsg(task,MSG_IP_L_UP,310,350); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoSpaceShip() +{ + CTask *task=SpawnUser; + SetIP(300,300); + XTalkWait(task,"#include \"::/SparrowOS/Demo/GameStarters/SpaceShip.CPP.Z\";\n"); + Sleep(150); + AFSetIP(3,125,125); + SetIP(,,,TRUE); + Sleep(50); + SetIP(,,,FALSE); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoBox() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Box.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoShadow() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Shadow.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoPredatorPrey() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/Graphics/PredatorPrey.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 Do3DPoly() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/3DPoly.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoLogo() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Logo.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoRotateTank() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/RotateTank.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +/* +U0 DoPic2ASCII() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Pic2ASCII.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} +*/ + +U0 DoScreenCodes() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/ScreenCodes.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoExtendedChars() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/ExtendedChars.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoNeatTrick() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/NeatTrick.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoCharGraphics() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/CharGraphics.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoMaze() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Maze.CPP.Z\";\n"); + Sleep(750); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoFontEd() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/FontEd.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoTimeIns() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/TimeIns.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoWaterFowl() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Snd/WaterFowl.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +/* +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Apps/MusicOrgan/Examples\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +*/ + +U0 DoMPPrintF() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/MultiCore/MPPrintF.CPP.Z\";\n"); + Sleep(750); + XTalk(task,"Exit;\n"); +} + +U0 DoLayers3DJob() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/MultiCore/Layers3DJob.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoCartesian() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Cartesian.CPP.Z\";\n"); + XTalkWait(task,"0.2*x`1.5\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoHanoi() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Hanoi.CPP.Z\";\n"); + Sleep(3000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +/* +U0 DoLife() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Life.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoZing() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/GameStarters/Zing.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +*/ + +U0 DoFlowers() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Flowers.CPP.Z\";\n"); + Sleep(3000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoCommonAncestor() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/CommonAncestor.CPP.Z\";\n"); + Sleep(3000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoPalindrome() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/MultiCore/Palindrome.CPP.Z\";\n"); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +U0 DoMagicPairs() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/MagicPairs.CPP.Z\";\n"); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +U0 DoMPAdd() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/MultiCore/MPAdd.CPP.Z\";\n"); + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoLock() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/MultiCore/Lock.CPP.Z\";\n"); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +U0 DoLayersSpawn() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/MultiCore/LayersSpawn.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoClouds() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/MultiCore/Clouds.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoNoise() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/MultiCore/Noise.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +/* +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/SliderCtrl.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} +*/ + +U0 DoBling() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Bling.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +/* +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/ScrollBars.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/RegistryDemo.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} +*/ + +U0 DoBirdLand() +{ + I64 i; + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/GameStarters/BirdLand.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(500); + for (i=0;i<4;i++) { + SendMsg(task,MSG_KEY_DOWN,CH_SPACE,0); + Sleep(100); + SendMsg(task,MSG_KEY_UP,CH_SPACE,0); + Sleep(100); + } + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + + +U0 DoMissileDefense() +{ + I64 i; + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/GameStarters/MissileDefense.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + task->popup_task->user_data0=Fs; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (!TaskValidate(task->popup_task)||task->popup_task->user_data0==Fs) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (TaskValidate(task->popup_task)) + Yield; + for (i=0;i<10;i++) { + SetIP(RandU16%task->win_pixel_width,RandU16%task->win_pixel_height); + SendMsg(task,MSG_KEY_DOWN_UP,RandU16%3+'1',0); + Sleep(200); + } + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoWarGame() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/GameStarters/WarGame.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (TaskValidate(task->popup_task)) + Yield; + SetIP(430,300,,TRUE); + AFSetIP(10,530,400); + SetIP(,,,FALSE); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoBigGuns() +{ + I64 i; + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/GameStarters/BigGuns.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + task->popup_task->user_data0=Fs; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (!TaskValidate(task->popup_task)||task->popup_task->user_data0==Fs) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + for (i=0;i<5;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_LEFT); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_LEFT); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_LEFT); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_LEFT); + Sleep(200); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + } + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoDunGen() +{ + I64 i; + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/GameStarters/DunGen.CPP.Z\";\n"); + for (i=0;i<10;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT); + Sleep(100); + } + for (i=0;i<12;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + Sleep(100); + } + for (i=0;i<6;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT); + Sleep(100); + } + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoTimeOut() +{ + I64 i; + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Apps/Timeout/Run\";\n"); + Sleep(200); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + for (i=0;i<3;i++) { + SendMsg(task,MSG_KEY_DOWN,CH_SPACE,0); + LBts(key_down_bitmap,SC_CURSOR_RIGHT); + Sleep(200); + SendMsg(task,MSG_KEY_UP,CH_SPACE,0); + LBtr(key_down_bitmap,SC_CURSOR_RIGHT); + Sleep(200); + SendMsg(task,MSG_KEY_DOWN,CH_SPACE,0); + LBts(key_down_bitmap,SC_CURSOR_LEFT); + Sleep(200); + SendMsg(task,MSG_KEY_UP,CH_SPACE,0); + LBtr(key_down_bitmap,SC_CURSOR_LEFT); + Sleep(200); + } + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoCollision() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/GameStarters/Collision.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoLoadTest() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/MultiCore/LoadTest.CPP.Z\";\n"); + Sleep(2000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); + while (TaskValidate(task)) + Yield; +} + +U0 DoPrimes() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/MultiCore/Primes.CPP.Z\";\n"); + Sleep(2500); + XTalk(task,"Exit;\n"); +} + +U0 DoSort() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/MultiCore/Sort.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoRadixSort() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/MultiCore/RadixSort.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoPageTableEntries2() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Lectures/PageTableEntries2.CPP.Z\";\n"); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +U0 DoInterrupts() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/MultiCore/Interrupts.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoStkGrow() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/StkGrow.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoPilgrims() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Apps/Pilgrims/Run\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(2500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoSpan() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Apps/Span/Run\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoRawHide() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/GameStarters/RawHide.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(2500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoAfterEgypt() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Apps/AfterEgypt/Run\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + Sleep(600); //It flushes messages! + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + while (TaskValidate(task->popup_task)) + Yield; + TaskWait(task); + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); //Camp + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); //Map + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); //Map + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); //Camp + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); //Main Menu + XTalk(task,"Exit;\n"); +} + +U0 DoShading() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Shading.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoPoleZeros() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/Graphics/PoleZeros.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(750); + SendMsg(task,MSG_KEY_DOWN_UP,CH_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoWhap() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/GameStarters/Whap.CPP.Z\";\n"); + SetIP(300,200); + Sleep(500); + AFSetIP(3,350,300); + Sleep(500); + AFSetIP(3,450,200); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoPick() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Pick.CPP.Z\";\n"); + SetIP(200,200); + Sleep(500); + SetIP(,,,TRUE); + AFSetIP(4,400,400); + SetIP(,,,FALSE); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoPick3D() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Pick3D.CPP.Z\";\n"); + SetIP(200,200); + Sleep(500); + SetIP(,,,TRUE); + AFSetIP(4,400,400); + SetIP(,,,FALSE); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +/* +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Transform.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Apps/Tanks\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +*/ + +U0 DoGrModels() +{ + CTask *task=SpawnUser,*task1=NULL; + I64 i,j; + XTalkWait(task,"#include \"::/SparrowOS/Apps/GrModels/Run\";\n"); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + PostMsg(task,MSG_KEY_DOWN_UP,CH_ESC,0); + for (i=0;i<4;i++) { + while (task->popup_task==task1 || !TaskValidate(task->popup_task)) + Yield; + task1=task->popup_task; + TaskWait(task1); + for (j=0;j<=i;j++) + SendMsg(task1,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + SendMsg(task1,MSG_KEY_DOWN_UP,CH_SPACE,0); + } + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,'n',0); + XTalk(task,"Exit;\n"); +} + +U0 DoKeepAway() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Apps/KeepAway/Run\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + SetIP(100,100); + Sleep(1500); + SendMsg(task,MSG_IP_R_DOWN_UP,ipx,ipy); + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoCamp() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Graphics/Camp.CPP.Z\";\n"); + Sleep(1250); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoRocket() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/GameStarters/Rocket.CPP.Z\";\n"); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP); + Bts(key_down_bitmap,SC_CURSOR_UP); + Sleep(1000); + Btr(key_down_bitmap,SC_CURSOR_UP); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT); + Bts(key_down_bitmap,SC_CURSOR_RIGHT); + Sleep(1000); + Btr(key_down_bitmap,SC_CURSOR_RIGHT); + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoRocketScience() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/GameStarters/RocketScience.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(750); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(2000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoMassSpring() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/GameStarters/MassSpring.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (TaskValidate(task->popup_task)) + Yield; + SendMsg(task,MSG_IP_L_DOWN_UP,50,50); //#1 + SendMsg(task,MSG_IP_L_DOWN_UP,50,200); //#2 + SendMsg(task,MSG_IP_L_DOWN_UP,210,50); //#3 + SendMsg(task,MSG_IP_L_DOWN_UP,310,200);//#4 + Sleep(500); + SendMsg(task,MSG_IP_R_DOWN,50,50); //1-2 + SendMsg(task,MSG_IP_R_UP,50,200); + Sleep(500); + SendMsg(task,MSG_IP_R_DOWN,210,50);//3-4 + SendMsg(task,MSG_IP_R_UP,310,200); + Sleep(500); + SendMsg(task,MSG_IP_R_DOWN,50,200);//2-4 + SendMsg(task,MSG_IP_R_UP,310,200); + Sleep(500); + SendMsg(task,MSG_IP_R_DOWN,50,50); //1-3 + SendMsg(task,MSG_IP_R_UP,210,50); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +/* +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/GameStarters/Whap.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} +*/ + +U0 DoSquirt() +{ + I64 i; + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/GameStarters/Squirt.CPP.Z\";\n"); + for (i=0;i<5;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP); + Sleep(100); + } + for (i=0;i<5;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_LEFT); + Sleep(100); + } + for (i=0;i<5;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + Sleep(100); + } + for (i=0;i<5;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT); + Sleep(100); + } + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoXCaliber() +{ + I64 i; + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Apps/X-Caliber/Run\";\n"); + for (i=0;i<5;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SCF_SHIFT|SC_CURSOR_UP); + SendMsg(task,MSG_KEY_DOWN_UP,0,SCF_SHIFT|SC_CURSOR_RIGHT); + } + for (i=0;i<10;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + SendMsg(task,MSG_KEY_DOWN,0,SC_CURSOR_RIGHT,0); + Sleep(100); + SendMsg(task,MSG_KEY_UP,0,SC_CURSOR_RIGHT,0); + Sleep(50); + } + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoFPS() +{ + I64 i; + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/GameStarters/FPS.CPP.Z\";\n"); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (TaskValidate(task->popup_task)) + Yield; + for (i=0;i<15;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP); + Sleep(50); + } + for (i=0;i<8;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT); + Sleep(50); + } + for (i=0;i<9;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP); + Sleep(50); + } + for (i=0;i<6;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT); + Sleep(50); + } + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoEagleDive() +{ + I64 i; + CTask *task=SpawnUser; + XTalkWait(task,"Cd(\"::/SparrowOS/Demo/GameStarters\");Del(\"EagleDive.BIN.Z\");\n"); + XTalkWait(task,"Cmp(\"EagleDive.CPP.Z\");\n"); + Sleep(500); + XTalkWait(task,"Load(\"EagleDive\");\n"); + for (i=0;i<10;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_UP); + Sleep(50); + } + for (i=0;i<10;i++) { + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + Sleep(50); + } + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalkWait(task,"Del(\"::/SparrowOS/Demo/GameStarters/EagleDive.BIN.Z\");\n"); + XTalk(task,"Exit;\n"); +} + +/* +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Apps/Span\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Apps/MusicOrgan\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} +*/ + +U0 DoPhoneNumWords() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/PhoneNumWords.CPP.Z\";\n"); + XTalkWait(task,"702-254-4223\n\n"); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +U0 DoSuggestedSpelling() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/SuggestSpelling.CPP.Z\";\n"); + XTalkWait(task,"effecient\n\n"); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +U0 DoWordSearch() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/WordSearch.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +/* +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Dsk/DataBase.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} +*/ + +U0 DoOrderedIO() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Dsk/OrderedIO.CPP.Z\";\n"); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +/* +U0 DoFPrintF() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Dsk/FPrintF.CPP.Z\";\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoRaw() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Dsk/Raw.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} +*/ + +U0 DoUnusedSpaceRep() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Dsk/UnusedSpaceRep.CPP.Z\";\n"); + Sleep(500); + XTalk(task,"Exit;\n"); +} + +U0 DoMiniCompiler() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Lectures/MiniCompiler.CPP.Z\";\n"); + XTalkWait(task,"1+2*(3+4)\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoMiniGrLib() +{ + CTask *task=SpawnUser; + XTalk(task,"#include \"::/SparrowOS/Demo/Lectures/MiniGrLib.CPP.Z\";Exit;\n"); + while (TaskValidate(task)) + Yield; +} + +U0 DoWebLog() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/WebLogExample/WebLogRep.CPP.Z\";\n"); + SendMsg(task,MSG_KEY_DOWN_UP,CH_NEW_LINE,0); + SendMsg(task,MSG_KEY_DOWN_UP,CH_NEW_LINE,0); + SendMsg(task,MSG_KEY_DOWN_UP,CH_ESC,0); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +/* +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Apps/TimeClock\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} +*/ + +U0 DoLogic() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Apps/Logic/Run\";\n"); + XTalkWait(task,"NAND\nNOR\n\n0x100\n0xF0\n0xCC\n0xAA\n\n0x12\n\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +/* +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Lectures\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/OldSchool\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/AutoFile\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} +*/ + +U0 DoPrintF() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/PrintF.CPP.Z\";\n"); + Sleep(2000); + XTalk(task,"Exit;\n"); +} + +U0 DoDateTime() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/DateTime.CPP.Z\";\n"); + Sleep(2500); + XTalk(task,"Exit;\n"); +} + +U0 DoSubIntAccess() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/SubIntAccess.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoParenWarn() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/ParenWarn.CPP.Z\";\n"); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +U0 DoCompileDemo() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/CompileDemo.CPP.Z\";\n"); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +U0 DoPrompt() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Prompt.CPP.Z\";\n"); + XTalkWait(task,"1+2*3<<4\n"); + XTalkWait(task,"1.0+2*3`2\n"); + XTalkWait(task,"Terry Davis\n"); + XTalkWait(task,"*-1\n"); + Sleep(2000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoClassMeta() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/ClassMeta.CPP.Z\";\n"); + Sleep(2000); + XTalk(task,"Exit;\n"); +} + +U0 DoForm() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Doc/Form.CPP.Z\";\n"); + Sleep(250); + XTalk(task,"54321"); + Sleep(250); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + Sleep(250); + SendMsg(task,MSG_KEY_DOWN_UP,0,SCF_CTRL|SC_CURSOR_LEFT); + XTalk(task,"77777"); + Sleep(250); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); + Sleep(250); + XTalk(task,"MyName"); + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_ESC,0); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +U0 DoMenuButton() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Doc/MenuButton.CPP.Z\";\n"); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN,0); + Sleep(500); + PostMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (!TaskValidate(task->popup_task)) + Yield; + TaskWait(task->popup_task); + Sleep(500); + SendMsg(sys_focus_task,MSG_KEY_DOWN_UP,0,SC_CURSOR_RIGHT); + Sleep(500); + SendMsg(task->popup_task,MSG_KEY_DOWN_UP,CH_SPACE,0); + while (TaskValidate(task->popup_task)) + Yield; + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoMenuSprite() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Doc/MenuSprite.CPP.Z\";\n"); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN,0); + Sleep(50); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(300); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN,0); + Sleep(50); + SendMsg(task,MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN,0); + Sleep(50); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(300); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +U0 DoTreeDemo() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Doc/TreeDemo.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoExceptions() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Exceptions.CPP.Z\";\n"); + XTalkWait(task,"yyn"); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +U0 DoTextDemo() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Doc/TextDemo.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoCursorMove() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Doc/CursorMove.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoDemoDoc() +{ + CTask *task=SpawnUser; + XTalkWait(task,"Ed(\"::/SparrowOS/Demo/Doc/DemoDoc.TXT.Z\");\n"); + SendMsg(task,MSG_KEY_DOWN_UP,CH_CTRLG,0); + XTalkWait(task,"100"); + SendMsg(task,MSG_KEY_DOWN_UP,CH_ESC,0); + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0); + XTalk(task,"Exit;\n"); +} + +/* +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Spy.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} +*/ + +U0 DoFileRead() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Doc/FileRead.CPP.Z\";\n"); + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + Sleep(1000); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 DoData() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Doc/Data.CPP.Z\";\n"); + Sleep(500); + XTalk(task,"Exit;\n"); +} + +U0 DoDefineStr() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Doc/DefineStr.CPP.Z\";\n"); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +U0 DoCallBack() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Doc/CallBack.CPP.Z\";\n"); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +U0 DoCallBackAux2() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Doc/CallBackAux2.CPP.Z\";\n"); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +U0 DoDefine() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Define.CPP.Z\";\n"); + XTalkWait(task,"YS\n"); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +/* +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Doc/UnusedDefine.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} +*/ + +U0 DoAsmHelloWorld() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Asm/AsmHelloWorld.CPP.Z\";\n"); + Sleep(750); + XTalk(task,"Exit;\n"); +} + +U0 DoAsmAndC() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Asm/AsmAndC.CPP.Z\";\n2\n"); + XTalk(task,"Exit;\n"); + while (TaskValidate(task)) + Yield; +} + +U0 DoAsmAndC2() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Asm/AsmAndC2.CPP.Z\";\n2\n"); + XTalk(task,"Exit;\n"); + while (TaskValidate(task)) + Yield; +} + +U0 DoBuzzFizz() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Asm/BuzzFizz.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoMulByHand() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Asm/MulByHand.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoDivByHand() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Asm/DivByHand.CPP.Z\";\n"); + Sleep(1000); + XTalk(task,"Exit;\n"); +} + +U0 DoGlblVars() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/GlblVars.CPP.Z\";\n"); + Sleep(1500); + XTalk(task,"Exit;\n"); +} + +/* +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/WinMgr2.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Snd/PolyPhonic.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Snd/SndScope.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Snd/Synth.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Snd/Record.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} + +U0 Do() +{ + CTask *task=SpawnUser; + XTalkWait(task,"#include \"::/SparrowOS/Demo/Snd/Echo.CPP.Z\";\n"); + Sleep(500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalk(task,"Exit;\n"); +} +*/ + + +U0 DoReps() +{ + CTask *task=SpawnUser; +TS; XTalkWait(task,"DocMax;ProfAll;HeapLog(ON);\n"); +TS; XTalkWait(task,"PCIRep;Sleep(1000);\n"); +TS; XTalkWait(task,"MemBIOSRep;Sleep(1000);\n"); +TS; XTalkWait(task,"MemRep;Sleep(1000);\n"); +TS; XTalkWait(task,"ProfRep;Sleep(1000);\n"); +TS; XTalkWait(task,"HeapLogRep; HeapLog(OFF);Sleep(1000);\n"); +TS; XTalkWait(task,"BlkDevRep;Sleep(1000);\n"); +TS; XTalkWait(task,"ChkDsk;Sleep(1000);\n"); +TS; XTalkWait(task,"DrvView;\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); + XTalkWait(task,"DskView;\n"); + Sleep(1500); + SendMsg(task,MSG_KEY_DOWN_UP,CH_SPACE,0); +TS; XTalkWait(task,"ATARep;\npSleep(1000);\n"); +TS; XTalkWait(task,"HashDepthRep(adam_task->hash_table);Sleep(1000);\n"); +TS; XTalkWait(task,"HAllRep;Sleep(1000);\n"); +TS; XTalkWait(task,"PrtRep;Sleep(1000);\n"); +TS; XTalkWait(task,"TaskRep;Sleep(1000);\n"); + XTalk(task,"Exit;\n"); +} + +U0 OSTestSuite() +{ +TSStart; + +TS; DoSpaceShip; +TS; DoBlackDiamond; +TS; if (IsDrvWritable(':')) DoEagleDive; +TS; DoRocks; +TS; DoNavy; +TS; DoDunGen; +TS; DoFPS; +TS; DoZoneOut; +TS; DoVaroom; +TS; DoRocket; +TS; DoRocketScience; +TS; DoMissileDefense; +TS; DoWarGame; +TS; DoBigGuns; +TS; DoBirdLand; +TS; DoTimeOut; +TS; DoPilgrims; +TS; DoSpan; +TS; DoRawHide; +TS; DoKeepAway; +TS; DoAfterEgypt; +TS; DoXCaliber; +TS; DoWenceslas; +TS; DoBomber; +TS; DoTheDead; +TS; DoChess; +TS; DoChessNet; + +TS; DoMPAdd; +TS; DoPrimes; +TS; DoPalindrome; +TS; DoClouds; +TS; DoNoise; +TS; if (mp_cnt>1) DoRadixSort; +TS; if (mp_cnt>1) DoLoadTest; +TS; if (mp_cnt>1) DoMPPrintF; +TS; if (mp_cnt>1) DoLayers3DJob; +TS; if (mp_cnt>1) DoLock; +TS; if (mp_cnt>1) DoLayersSpawn; +TS; if (mp_cnt>1) DoInterrupts; +TS; if (mp_cnt>1) DoSort; + +TS; DoSpritePlot; +TS; DoSpritePlot3D; +TS; DoSpritePut; +TS; DoSpritePutExt; +TS; DoSpriteText; +TS; DoEdCSprite; +TS; DoExtents; +TS; DoDotNet; +TS; DoLowPassFilter; +TS; DoMathAudioDemo; +TS; DoLines; +TS; DoBounce; +TS; DoMsgLoop; +TS; DoASCIIOrgan; +TS; DoMorseCode; +TS; DoDoodle; +TS; DoMassSpring; +TS; DoSpeedLine; +TS; DoKeyBitMap; +TS; DoBlink; +TS; DoGolf; +TS; DoMountain; +TS; DoCoach; +TS; DoCPUPlot; +TS; DoDither; +TS; DoBSpline; +TS; DoGrModels; +TS; DoBlot; +TS; if (IsDrvWritable(':')) DoCaptureScreen; +TS; DoPick; +TS; DoPick3D; +TS; DoWhap; +TS; DoPalette; +TS; DoPrintF; +TS; DoCamp; +TS; DoShading; +TS; DoRotateTank; +TS; Do3DPoly; +TS; DoBox; +TS; DoSymmetry; +TS; DoShadow; +TS; DoPredatorPrey; +TS; DoPoleZeros; +TS; DoDateTime; +TS; DoDigits; +TS; DoStadium; +TS; DoHalogen; +TS; DoMaze; +TS; DoFontEd; +TS; DoCtrlR1; +TS; DoLogo; +TS; DoSubIntAccess; +TS; DoDemoDoc; +TS; DoTreeDemo; +TS; DoTextDemo; +TS; DoCursorMove; +TS; DoMiniCompiler; +TS; DoMiniGrLib; +TS; DoPhoneNumWords; +TS; DoUnusedSpaceRep; +TS; DoExceptions; +TS; DoScreenCodes; +TS; DoExtendedChars; +TS; DoNeatTrick; +TS; DoCharGraphics; +TS; DoMagicPairs; +TS; DoHanoi; +TS; DoSquirt; +TS; DoFlowers; +TS; DoCommonAncestor; +TS; DoCartesian; +TS; DoBling; +TS; DoRainDrops; +TS; DoCollision; +TS; DoOrderedIO; +TS; DoLogic; +TS; DoCircuit; +TS; DoCompileDemo; +TS; DoPrompt; +TS; if (IsDrvWritable(':')) DoWebLog; +TS; DoDefine; +TS; DoGlblVars; +TS; DoFileRead; +TS; DoParenWarn; +TS; DoDefineStr; +TS; DoData; +TS; DoCallBack; +TS; DoCallBackAux2; +TS; DoClassMeta; +TS; DoForm; +TS; DoMenuButton; +TS; DoMenuSprite; +TS; DoSuggestedSpelling; +TS; DoWordSearch; +TS; DoStkGrow; +TS; DoWaterFowl; +TS; DoAsmHelloWorld; +TS; DoAsmAndC; +TS; DoAsmAndC2; +TS; DoMulByHand; +TS; DoDivByHand; +TS; DoBuzzFizz; +TS; DoPageTableEntries2; +DoReps; + +TSEnd; +} + +OSTestSuite; diff --git a/SparrowOS/Misc/PCIDevices.TXT b/SparrowOS/Misc/PCIDevices.TXT new file mode 100644 index 0000000..82cbab0 --- /dev/null +++ b/SparrowOS/Misc/PCIDevices.TXT @@ -0,0 +1,8739 @@ +0033 Paradyne Corp. + 002F . ieee 1394 controller + 00333 1 1 +003D master + 003d mx98715/25 1740pci + 00D1 mx98715/25 i740 PCI +0070 Hauppauge Computer Works Inc. + 6800 PCI\VEN_14F1&DEV_8810&REV_05 Hauppage Nova -TD-500 DVB-T Tuner Device +0100 USBPDO-8 +0123 General Dynamics +0315 SK - Electronics Co., Ltd. +0402 Acer + 5606 ? ? + 9665 0009 ZCT8YBT +046D Logitech Inc. + 0805 n.a. n.a. + 0808 n/a Logitech Webcam C600 + 0809 Unknown Webcam Pro 9000 + 0896 5&34B666AE&0&7 Camera + 08AD N/A Quickcam Communicate STX + 08AF - - + 08b2 123abc logitech QuickCam® Pro 4000 + 08F6 0100 QuickCam Communicate + 092F QuickCam Express model number: V-UAP9 + 0A0B A-00008 Logitech ClearChat Pro USB + 0A1F USB Logitech G930 Headset + C018 ? Baesline 3 Button Corded Optical Mouse, 2 button + scroll wheel + C045 M/N: M-BZ96C. P/N: 810-000207. PID: HS91013. Epoxy Hidden + c05b ee ftht + C226 n/a n/a + C227 n/a n/a + C281 J-UA9 Wingman Force J-UA9 + C312 n/a n/a + C404 n/a Logitech TrackMan Wheel + C50E M-RAM99, C-BS35 MediaPlay Cordless Mouse + C512 n/a n/a + C526 n/a n/a + C52A Dell Wireless Keyboard w/ mouse HID Keyboard Device +0483 UPEK + 2016 UPEK fingerprint sensors Driver Windows XP +04A9 Canon +04B3 IBM + 24D5 PCI\VEN_8086&DEV_293E&SUBSYS_20F217AA&REV_03\3&B1B Audio Controller + 401 8086 PCI\VEN_8086&DEV_293E&SUBSYS_20F217AA&REV_03\3&B1BFB68&0&D8 + 401 24D5 PCI\VEN_8086&DEV_293E&SUBSYS_20F217AA&REV_03\3&B1BFB68&0&D8 + 4010 CC_040100 PCI\VEN_8086&DEV_293E&SUBSYS_20F217AA&REV_03\3&B1BFB68&0&D8 + 9876 CC_040100 PCI\VEN_8086&DEV_293E&SUBSYS_20F217AA&REV_03\3&B1BFB68&0&D8 +04D9 Filco + 1603 n\a Samsung + 2011 n/a n/a +04F2 Chicony Electronics Co. +051D APC + 0002 1 1 +0529 Aladdin E-Token +0553 Aiptek USA + 0200, 0x0201, 0x02 DS38xx Oregon Scientific +058f Alcor Micro Corp. + 0001 6377 AM usb storage + 1234 058F 1234 + 6362 UNKNOWN Unknown 4-in-1 card reader (istar) + 6366 Unknown Multi Flash Reader USB Device + 6387 3F83C15F Transcend JetFlash Flash Drive + 9254 AU9254A21-HAS http://www.alldatasheet.com/datasheet-pdf/pdf/91600/ETC/AU9254A21.html +0590 Omron Corp + 0028 HEM-790IT hid device class blood pressure monitor +05ac Apple, Inc. + 021e Keyboard IT USB Alluminium Keyboard IT USB + 1297 Apple iPhone Apple iPhone + 21e keyboard It USB Allumium keyboard it USB +05E1 D-MAX + 0408 00000000000 USB 2.0 Video Capture Controller + 0501 120315000000621 web cam +064e SUYIN Corporation + 064e VID_064E&PID_A111&MI_00 Suyin + a101 suYin Acer Crystal Eye Webcam + a103 SuYin WebCam + a116 Suiyn Optronics USB 2.0 UVC 1.3M WebCam + A219 SUYIN SUYIN 1.3M WebCam + c108 dont know its a webcam software + d101 SuYin Web Cam +067B Prolific Technology Inc. + 2303 2506 USB 2 Serial controller + 2305 PL-2305 USB-to-Printer Bridge Controller + 2393 prolific prolific + 2506 PL-2506 Hi-Speed USB to IDE Bridge Controller + 25a1 PL-25A1 Prolific PCLinq3 USB Transfer Cable Driver + 9876 067B TES +06FE Acresso Software Inc. + 9700 i don't know a netcard used usb interface +0711 SIIG, Inc. +093a KYE Systems Corp. + 2468 Genius iLook 110 http://genius.ru/products.aspx?pnum=24948&archive=1 + 2620 unknown unknown +096E USB Rockey dongle from Feitain + 0201 Rockey4 +0A5C Broadcom Corporation + 0201 Blutonium BCM2035 Bluetooth 2.4 GHz Single Chip Tr Broadcom USB iLine10(tm) Network Adapter + 10DE 0264 Controlador sm + 2000 0578A97 Broadcom Bluetooth Firmware Upgrade Device + 2009 Broadcom Bluetooth Controller + 200a Broadcom Bluetooth Controller + 200f Broadcom Bluetooth Controller + 201d n450 BROADCOM Bluetooth Device + 201e IBM Integrated Bluetooth IV + 2020 Broadcom Bluetooth Dongle + 2021 BCM2035B3 ROM Adapter Generic + 2033 1ujy100539f Broadcom Blutonium Device Firmware Downloader + 2035 5&263C7E89&0&1 BCM92035NMD Bluetooth + 2038 Broadcom Blutonium Device Firmware Downloader (BCM2038) + 2039 BCM92045B3 ROM BROADCOM Bluetooth Device + 2045 BCM2045A Broadcom Bluetooth Controller + 2046 5738z Broadcom USB Bluetooth Device + 2047 Broadcom USB Bluetooth Device + 205e Broadcom Bluetooth Firmware Upgrade Device + 2100 BT 50 Broadcom Bluetooth 2.0+eDR USB dongle + 2101 USB\VID_0001&PID_7778 Broadcom Bluetooth 2.0+EDR USB dongle + 2102 USB\VID_04B4&PID_2102\5&38CD4C16&0&6 ANYCOM Blue USB-200/250 + 2110 39A18BDD Broadcom Bluetooth Controller + 2111 ANYCOM Blue USB-UHE 200/250 + 2120 2045 Broadcom 2045 Bluetooth 2.0 USB-UHE Device with trace filter + 2121 Broadcom 2045 Bluetooth 2.0 USB Device with trace filter + 2122 BCM92045B3 Broadcom Bluetooth 2.0+EDR USB dongle + 2124 2045B3ROM Bluetooth Dongle + 2130 Broadcom 2045 Bluetooth 2.0 USB-UHE Device with trace filter + 2131 Broadcom 2045 Bluetooth 2.0 USB Device with trace filter + 2140 2046 Flash UHE Class 2 + 2141 2046 Flash non UHE Class 2 + 2142 2046 Flash non UHE Class 1 + 2143 2046 Flash non UHE Class 1 + 2144 2046 Flash non UHE module Class 2 + 2145 Broadcom BCM9204MD LENO Module + 2146 Broadcom 2045 Bluetooth 2.1 USB UHE Dongle + 2147 0A5C&PID_5800 Broadcom 2046 Bluetooth 2.1 USB Dongle + 2148 Broadcom 2046 Bluetooth 2.1 USB UHE Dongle + 2149 Broadcom 2046 Bluetooth 2.1 USB Dongle + 214a Broadcom 2046 Bluetooth 2.1 USB Module + 214b 52AF1AB24D Broadcom 2046 Bluetooth 2.1 USB Module + 214c Broadcom 2046 Bluetooth 2.1 USB Module + 214d Broadcom Bluetooth 2.1 UHE Module + 214e Thinkpad Bluetooth with Enhanced Data Rate II + 214f Broadcom 2046 Bluetooth 2.1 USB UHE Dongle + 2150 Broadcom 2046 Bluetooth 2.1 USB Dongle + 2151 2151 Broadcom Bluetooth 2.1 USB Dongle + 2152 Broadcom 2046 Bluetooth 2.1 USB UHE Dongle + 2153 Broadcom 2046 Bluetooth 2.1 USB UHE Dongle + 2154 Broadcom 2046 Bluetooth 2.1 USB UHE Dongle + 2155 Broadcom Bluetooth USB Dongle + 2157 BCM2046 B1 USB 500 + 2158 Broadcom 2046 Bluetooth 2.1 Device + 219C BCM2070 Broadcom BCM2070 Bluetooth 3.0+HS USB Device + 21E3 BCM20702A0 Broadcom Bluetooth 4.0 + 4500 BCM2046B1 Broadcom 2046 Bluetooth 2.1 USB Dongle + 4502 BCM2046B1 Broadcom 2046 Bluetooth 2.1 USB Dongle + 4503 BCM2046B1 Broadcom 2046 Bluetooth 2.1 USB Dongle + 5800 1ujy100539f Unified Security Hub + 5801 0x5801 Unified Security Hub + 6300 965 Pirelli ISB Remote NDIS Device + 6688 PCI NVIDIA GeForce GT 240M + 8613 USB\VID_04B4&PID_8613&REV_:001 TD 3104 USB vedio grabber + 9876 0x9876 0x9876 +0A89 BREA Technologies Inc. +0A92 Egosys, Inc. + 1010 1010&REV_0101&MI_00 RoMI/o by Egosys - Midi USB Cable +0AC8 ASUS + 1234 1 1 + 6719 asus asus +0b05 Toshiba Bluetooth RFBUS, RFCOM, RFHID + 170C 6802 WIFI card +0c45 Microdia Ltd. + 0C45 USB\VID_0C45&PID_602C\6&E653CF0B&0&2 USB2.0 webcam + 1111 USB\VID_0C45&PID_612A\5&B0F4C74&0&2 USB webcam + 6007 USB\VIC_0C45&PID_6007\5&34F1B36C&0&1 USB Camera + 602C SN9C102C Webcam + 602D USB\VID_0C45&PID_608F&REV_0101&MI_01 USB Webcam + 6030 USB\VID_0C45&PID_6030\5&18D8BE1C&0&1 USB WebCam + 610C USB\VID_0C45&PID_610C\5&386F8B05&0&2 usb web camera - Deluxe + 6128 USB\VID_0C45&PID_613C&REV_0101 USB WebCam + 6129 USB\VID_0C45&PID_6029\5&ff9bdde&0&2 USB WebCam + 6130 USB\VID_0000&PID_0000\5&FF9BDDE&0&2 USB CAMERA + 613A USB\VID_0C45&PID_613A\5&420082B&0&1 USB WEBCAM + 613c USB\VID_0C45&PID_613B&REV_0101 USB Webcam + 613E 5&29957435&0&1 USB Camera + 624f Sonix SN9C201 Integrated Webcam in Compal HEL81 series barebones. + 6270 USB\VID_0C45&PID_6422 USB Microscopr + 6270a USB\VID_0C45&PID_6270&REV_0100 webcam with mic link works for win 7 + 6270_ USB\VID_0C45&PID_6270\5&1383608&0&6 webcam + 627F USB\VID_17A1&PID_0118&REV_0100 USB\VID_17A1&PID_0118&REV_0100 + 62B3 USB\Vid_0c45&Pid_62b3&Rev_0100&MI_00 USB 2.0 PC Camera + 62BF USB\Vid_0c45&Pid_62bf USB\Vid_0c45&Pid_62bf&Rev_0100 + 62c0 SNP2UVC Sonix Wecam + 641D USB\VID_0C45&PID_643d 1.3 MPixel Integrated Webcam used in Dell N5010 series + 6421 USB\VID_0C45&PID_6421&REV_0224&MI_00 USB 2.0 Webcam + 6489 0x6489 Integrated Webcam Universal Serial Bus controllers + 6840 USB\VID_0C45&PID_6480&MI_00 sonix 1.3 mp laptop integrated webcam + 9876 USB\VID_090C&PID_B371&MI_00\6&462987E&0&0000 webcam +0cf3 TP-Link + 1002 Wireless USB 2.0 adapter TL-WN821N Wireless USB 2.0 adapter TL-WN821N + 3000 unknown (fujitsu lifebook) unknown device + 3002 unknown unkown + 3002_ unknown unknown + 9271 0x0108 TP-LINK 150 Mbps Wireless Lite N Adapter TL-WN721N +0D2E Feedback Instruments Ltd. +0D8C C-Media Electronics, Inc. + 5200 0x5200 C-Media USB 2.0 Mass Storage Controller +0DF6 Sitecom + 9071 \t9071\t WL-113 - Wireless Network USB dongle 5 \t9071\t WL-113 - Wireless Network USB dongle 54g +0E11 Compaq Computer Corp. + 0001 PCI to EISA Bridge + 0002 ISA Bridge PCI to ISA Bridge + 000F CPQB1A9 StorageWorks Library Adapter (HVD) + 0012 686P7 686P7 + 0046 N/A Smart Array 6400 Controller + 0049 NC7132 Gigabit Upgrade Module + 004A NC6136 Gigabit Server Adapter + 005A PowerPC 405GP processor at 200MHz [3305103C] HP Remote Insight Lights-Out II Board + 00B1 3305103C HP Remote Insight Lights-Out II PCI Device + 00C0 Adaptec AIC-7899G 64Bit,66MHz,Dual Channel WideUltra3 SCSI + 0508 Neteligent 4/16 TR PCI UTP/STP Controller + 1000 Triflex Model 1000 Pentium Bridge + 2000 Triflex Model 2000 Pentium Bridge + 3032 QVision 1280/p v0 GUI Accelerator + 3033 QVision 1280/p v1 GUI Accelerator + 3034 QVision 1280/p v2 GUI Accelerator + 4000 Triflex Model 4000 Pentium Bridge + 6010 Model 6010 HotPlug PCI Bridge + 7020 camara web USB Controller + A0EC Original Compaq fibre Channel HBA + A0F0 Advanced System Management Controller + A0F3 Triflex PCI to ISA PnP Bridge + A0F7 PCI bus 6, device 4, function 4 PCI Hotplug Controller + A0F8 ZFMicro USB Open Host Controller + A0FC HPFC-5166A Tachyon TL 64-bit/66-Mhz FC HBA + Ae10 Smart-2 Array Controller + AE29 MIS-L PCI to ISA Bridge + AE2A MPC CPU to PCI Bridge + AE2B MIS-E PCI to ISA PnP Bridge + AE31 1002&DEV-5653&SUBSYS System Management Controller + AE32 950 Netelligent 10/100 TX PCI UTP TLAN 2.3 + AE33 Triflex Dual EIDE Controller + AE34 Netelligent 10 T PCI UTP TLAN 2.3 + AE35 Integrated NetFlex 3/P TLAN 2.3 + AE40 Dual Port Netelligent 10/100 TX PCI TLAN + AE43 Integrated Netelligent 10/100 TX PCI + AE69 CETUS-L PCI to ISA Bridge + AE6C DRACO PCI Bridge + AE6D NorthStar CPU to PCI Bridge + B011 Dual Port Netelligent 10/100 TX + B012 Netelligent 10 T/2 UTP/Coax PCI + B01E NC3120 Fast Ethernet NIC + B01F NC3122 Fast Ethernet NIC + B02F NC1120 Ethernet NIC + B030 Netelligent WS 1500 10/100TX Embedded UTP/Coax Controller + B04A 699209-003 10/100TX WOL UTP Controller + 0XB060 CISS SMART2 Array Controller + B0C6 NC3161 Fast Ethernet Embedded Controller w/ WOL + B0C7 NC3160 Fast Ethernet NIC + B0D7 NC3121 rev. A & B Fast Ethernet NIC + B0DD NC3131 Fast Ethernet NIC + B0DE NC3132 Fast Ethernet NIC + B0DF NC6132 Gigabit Module + B0E0 NC6133 Gigabit Module + B0E1 NC3133 Fast Ethernet Module + B123 NC6134 Gigabit NIC + B134 NC3163 Fast Ethernet NIC + B13C NC3162 Fast Ethernet NIC + B144 NC3123 Fast Ethernet NIC + B163 NC3134 Fast Ethernet NIC + B164 NC3135 Fast Ethernet Upgrade Module + B178 CISSB SMART2 Array Controller + B196 0230 Conexant SoftK56 Modem + B1A4 NC7131 Gigabit Server Adapter + B203 iLo Integrated Lights Out Processor + B204 iLo Integrated Lights Out Processor + F095 FCA2101 HP StorageWorks 2 Gb, 64-Bit/66-MHz PCI-to-Fibre Channel Host Bus Adapter for Windows 2000, Windows + F130 ThunderLAN 1.0 NetFlex-3/P + F150 ThunderLAN 2.3 NetFlex-3/P with BNC + F700 LP7000 Compaq/Emulex Fibre Channel HBA + F800 LP8000 Compaq/Emulex Fibre Channel HBA +0E8D MediaTek Inc. + 0003 - - +1000 LSI Logic + 0001 LSI53C810 PCI-SCSI I/O Processor + 0002 53C820 Fast-wide SCSI gg + 0003 LSI53C1010-33 PCI to SCSI I/O Processor + 0004 53C815 SCSI raid controllers + 0005 53C810AP Fast SCSI + 0006 LSI53C860/860E PCI to Ultra SCSI I/O Processor + 000A LSI53C1510 PCI Dual Channel Wide Ultra2 SCSI Ctrlr + 000B LSI53C896/897 PCI Dual Channel Wide Ultra2 SCSI Ctrlr + 000C LSI53C895 PCI to Ultra2 SCSI I/O Processor + 000D 53C885 Ultra Wide SCSI, Ethernet + 000F 53C875/875E/876/876E PCI to Ultra SCSI I/O Processor + 0010 LSI53C1510 I2O-Ready PCI RAID Ultra2 SCSI Ctrlr + 0012 LSI53C895A PCI to Ultra2 SCSI Controller + 0013 LSI53C875A PCI to Ultra SCSI Controller + 0020 LSI53C1010-33 PCI to Dual Channel Ultra3 SCSI Ctrlr + 0021 LSI53C1000/1000R/1010R/1010-66 PCI to Ultra160 SCSI Controller + 0030 LSI53C1020/1030 PCI-X to Ultra320 SCSI Controller + 0031 LSI53C1030ZC PCI-X SCSI Controller + 0032 LSI53C1035 PCI-X to Ultra320 SCSI Controller + 0035 LSI53C1035 PCI-X SCSI Controller + 0040 LSI53C1035 PCI-X to Ultra320 SCSI Controller + 0050 LSISAS1064 PCI-X Fusion-MPT SAS + 0054 LSISAS1068 PCI-X Fusion-MPT SAS + 0056 LSISAS1064ET PCI-Express Fusion-MPT SAS + 0058 LSISAS1068E PCI-Express Fusion-MPT SAS + 005e LSISAS1066 PCI-X Fusion-MPT SAS + 0060 0x1734 0x10f9 + 0062 LSISAS1078 PCI-Express Fusion-MPT SAS + 0064 LSISAS2116 PCI-Express Fusion-MPT SAS 2.0 + 0072 SAS2008 Dell PERC H200 Adapter + 0073 LSISAS2008 IBM ServeRAID M1015 + 008F 53C810 LSI 53C8xx SCSI host adapter chip + 0408 L3-01037-03D U320-2E Raid Controller + 0621 LSIFC909 Fibre Channel I/O Processor + 0622 53c885 Dial Channel Fibre Channel I/O Processor + 0623 LSIFC929 Dual Channel Fibre Channel I/O Processor + 0624 LSIFC919 Fibre Channel I/O Processor + 0625 LSIFC919 Fibre Channel I/O Processor + 0626 LSIFC929X Fibre Channel Adapter + 0628 LSIFC919X Fibre Channel Adapter + 0630 LSIFC920 Fibre Channel I/O Processor + 0640 LSIFC949X Fibre Channel Adapter + 0642 LSIFC939X Fibre Channel Adapter + 0646 LSIFC949ES Fibre Channel Adapter + 0701 53C885 10/100 MBit Ethernet + 0702 Yellowfin G-NIC Gigabit Ethernet Controller + 0901 61C102 USB Controller + 1000 63C815 Fast SCSI Controller + 1001 53C895 Symbios Ultra2 SCSI controller + 1010 LSI 53C102000 Single channel SCSI controller + 1020 LSI53C1020 LSI Logic MegaRAID 320-1 Dell PowerEdge PERC 4/SC + 9876 7DB82C.YF.F.3.25 5946504E44383243 +1001 Kolter Electronic - Germany + 0010 ispLSI1032E PCI 1616, 16 TTL-IN, 16 TTL-OUT + 0011 ispLSI1032E OPTO-PCI, 16 IN / 16 OUT 24 VDC + 0012 ispLSI1032E PCI-AD, PCI-ADDA analog I/O-card + 0013 ispLSI1032E PCI-OptoRel, PCI-Relais 16 Relais & Opto + 0014 ispLSI1032E Timer, Pulse & Counter-card 16..32 bit + 0015 ispLSI1032E PCI-DAC416, 4 channel D/A16bit precision + 0016 ispLSI1032E PCI-MFB high-speed analog I/O + 0017 ispLSI1032E PROTO-3 PCI, digital I/O with chipselect + 0020 ispLSI1032E Universal digital I/O PCI-Interface +1002 ATI Technologies Inc. / Advanced Micro Devices, Inc. + 4370 RV370 ATI RADEON X300/X550/X1050 Series Secondary + 00000100 (256) {4D36E968-E325-11CE-BFC1-08002BE10318} {4D36E968-E325-11CE-BFC1-08002BE10318} + 0002 EMU10K1 Audio Cipset (SB) Livel + 0180200a LXPAY0Y001926158A92000 AMD Athlon(tm) X2 Dual-Core QL-62 + 0B12 R580 ATI Radeon X1900 + 1002 0F2A1787 0F2A1787 + 10024152 RV360 ATI RADEON 9600 Series + 1043 RV410 ATI MOBILITY/ATI RADEON X700 + 11 0x215r2qzua21 0xbcg62 + 1714 A4-3400 AMD Radeon™ HD 6410D Audio + 3150 M24 ATI MOBILITY /ATI RADEON X600 + 3151 RV380 ATI FireMV 2400 + 3152 M24 ATI MOBILITY /ATI RADEON X300 + 3154 M24GL ATI MOBILITY FireGL V3200 + 3171 RV380 ATI FireMV 2400 Secondary + 3E50 RV380 ATI RADEON X600/X550 Series + 3E54 RV380GL ATI FireGL V3200 + 3E70 RV380 ATI RADEON X600/X550 Series Secondary + 3E74 RV380GL ATI FireGL V3200 Secondary + 4136 A3 Radeon IGP 320 + 4137 RS200 Radeon IGP 340m + 4144 R300 ATI RADEON 9500 + 4145 R300 Radeon 9200 (M+X) + 4146 R300 ATI RADEON 9600TX + 4147 R300GL ATI FireGL Z1 + 4148 R350 ATI RADEON 9800 SE + 4149 R350 ATI RADEON 9500 + 4150 RV350 ATI RADEON 9600 Series + 4151 RV350 ATI RADEON 9600 Series + 4152 RV360 ATI RADEON 9600 Series + 4153 RV350 ATI RADEON 9550/X1050 Series + 4154 RV350GL ATI FireGL T2 + 4155 RV350 ATI RADEON 9600 Series + 4158 0x5954 Mach32xBH + 4164 R300 ATI RADEON 9500 Secondary + 4166 R300 ATI RADEON 9600TX Secondary + 4167 R300GL ATI FireGL Z1 Secondary + 4168 R350 ATI RADEON 9800 SE Secondary + 4169 R350 ATI RADEON 9500 Secondary + 4170 RV350 ATI RADEON 9600 Series Secondary + 4171 RV350 ATI RADEON 9600 Series Secondary + 4172 RV360 ATI RADEON 9600 Series Secondary + 4173 RV350 ATI RADEON 9550/X1050 Series Secondary + 4174 RV350GL ATI FireGL T2 Secondary + 4175 RV350 RADEON 9200 pro secundar + 4242 R200AIW All-In-Wonder 8500DV + 4243 Lucent OHCI IEEE1394 Host Controller + 4336 rs200 Radeon IGP 320M + 4337 RS200M RADEON IGP 345M + 4341 SB200 AC'97 Audio Controller + 4342 SB200 PCI-PCI Bridge + 4345 SB200 EHCI USB Controller + 4347 SB200 USB Controller + 4348 SB200 USB Controller + 4349 SB200 PATA-100 IDE Controller + 434C SB200 PCI-ISA Bridge + 434d SB200 AC'97 Modem Controller + 4353 SB200 SMBus Controller + 4354 215CT Mach64 CT + 4358 210888CX Mach64 CX + 4361 ALC665 ATI AC97 REALTEK AUDIO DRIVER + 4363 SB300 ATI SOUTH BRIDGE SB300 DRIVER + 4369 IXP 3xx PATA 133 Controller + 436E IXP 3xx SATA/Raid controller + 4370 SB400 AC'97 Audio Controller + 4371 IXP SB400 PCI-PCI Bridge + 4372 IXP SB400 SMBus Controller + 4373 IXP SB400 EHCI USB 2.0 Controller + 4374 IXP SB400 OHCI USB Controller + 4375 IXP SB400 OHCI USB Controller + 4376 SB4xx PATA 133 Controller + 4377 IXP SB400 PCI-ISA Bridge + 4378 SB400 AC'97 Modem Controller + 4379 SB450 SATA/Raid controller--1 + 437A SB4xx SATA/Raid controller--2 + 437B SB450 High Definition Audio Controller + 4380&CC_0101 ATI SB600 SATA2 + 4380&CC_0104 ATI SB600 RAID/AHCI Controller + 4380&CC_0106 ATI RS690 AHCI Controller + 4381 ATI ? AHCI/Raid Controller + 4383 SB700 High Definition Audio controller + 4385 ATI RD600/RS600 ATI SMBus + 4386 690G Northbridge + 438C RD600/RS600 ATI RD600/RS600 IDE Controller + 438D SB600 PCI to LPC Bridge + 439 rv360 ATI Technologies SB700 LPCHost Controller + 4390 SB750 Integrated SATA II Controller + 4391 ATI SB700 AHCI Controller + 4391&CC_0106 9H54474G00579 AMD II X3 440 3,0GHz + 4392 ATI SB700 Raid Controller + 4393 ATI SB850 RAID-Controller + 4394&CC_0106 5100 AMD SP5100 South Bridge + 4396 210888CX Mach64 CX + 4398 SB700 Standard OpenHCD USB-Hostcontroller + 439C SB7xx PATA 133 Controller + 439D SB700 LPC ХоÑ�Ñ‚-Контроллер ATI Technologies SB700 LPCHost Контроллер + 4437 ATI Mobility Radeon 7000 IGP RS250M + 4554 Mach64 ET + 4654 Mach64 VT 113--34004-104 + 4742 (GT-C2U2) 3D Rage Pro AGP 1X + 4744 Rage 3D Pro AGP 2x Rage 3D Pro AGP 2x + 4747 GT-C2U2 Rage 3D Pro + 4749 RAGE PRO TURBO AGP 2X ATI ALL IN WONDER PRO (8MB) + 474C Rage XC PCI-66 k7 som+ + 474D Rage XL AGP 2x SLAT + 474E Rage XC AGP 2x + 474F Rage XL PCI-66 I Need Driver for the Chip + 4750 1039 ATI 3D Rage Pro 215GP + 4751 0x1002 0x4751 + 4752 Rage XL PCI ATI On-Board VGA for HP Proliant 350 G3 + 4753 Rage XC PCI + 4754 Mach 64 VT Rage 3D II Graphics Accelerator + 4755 Rage 3D II+pci 3d rage 2 + dvd + 4756 Rage 3D IIC AGP Graphics Accelerator + 4757 3D 11C AGP Rage 3D IIC AGP + 4758 210888GX Mach64 GX + 4759 215r2qzua21 m3d agp card on agp slot + 475A 215r2qua12 Rage IIC AGP + 4966 RV250 Radeon 9000/9000 Pro + 4967 RV250 Radeon 9000 + 496E RV250 Radeon 9000/9000 Pro - Secondary + 496F RV250 Radeon 9000 - Secondary + 4A48 R420 ATI RADEON X800 Series + 4a49 R420 ATI RADEON X800 PRO + 4A4A R420 ATI RADEON X800 Series + 4a4b R420 ATI RADEON X800 XT + 4A4C R420 ATI RADEON X800 Series + 4A4D R420GL ATI FireGL X3-256 + 4A4E M18 ATI MOBILITY /ATI RADEON 9800 + 4A4F R420 ATI RADEON X800 SE + 4A50 R420 ATI RADEON X800 XT Platinum Edition + 4A54 R420 ATI RADEON X800 VE + 4A68 R420 ATI RADEON X800 Series Secondary + 4A69 R420 ATI RADEON X800 PRO Secondary + 4A6A R420 ATI RADEON X800 Series Secondary + 4a6b R420 ATI RADEON X800 XT Secondary + 4A6C R420 ATI RADEON X800 Series Secondary + 4A6D R420GL ATI FireGL X3-256 Secondary + 4A6F R420 ATI RADEON X800 SE Secondary + 4A70 R420 ATI RADEON X800 XT Platinum Edition Secondary + 4A74 R420 ATI RADEON X800 VE Secondary + 4B49 R481 ATI RADEON X850 XT + 4B4B R481 ATI RADEON X850 PRO + 4B4C R481 ATI RADEON X850 XT Platinum Edition + 4B69 R481 ATI RADEON X850 XT Secondary + 4B6A R481 ATI RADEON X850 SE Secondary + 4B6B R481 ATI RADEON X850 PRO Secondary + 4B6C R481 ATI RADEON X850 XT Platinum Edition Secondary + 4C42 B10E0E11 3D Rage LT Pro AGP-133 + 4C44 Rage 3D LT Pro AGP Rage 3D LT Pro AGP 133 MHz + 4C45 Rage Mobility M3 AGP + 4C46 Mobility M3 AGP 0x9495 + 4C47 ati rage pro Rage 3D LT-G + 4C49 123 Rage 3D LT Pro + 4C4D 01541014 Rage P/M Mobility AGP 2x + 4C4E 216lo sasa25 Rage Mobility l + 4C50 unknown Rage 3D LT Pro PCI + 4C51 113 Rage 3D LT Pro PCI + 4C52 1241243 Rage P/M Mobility agp + 4C53 216L0SASA25 Rage L Mobility PCI + 4C54 4372 Mach 64 LT + 4C57 M7 [LW] Mobility Radeon 7500 + 4C58 FireGL Mobility + 4C59 Mobility 6 Radeon Mobility M6 Series (Also known as ATI R7000 64MB TV PCI) + 4C5A Radeon Mobility M6 LZ + 4C64 Radeon Mobility M9-GL + 4C66 RV250 MOBILITY FireGL 9000 + 4C6E 0x4C6E ATI FireMV 2400 PCI + 4D46 ATI mobility128 Rage Mobility 128 AGP 4x + 4D4C 216l0sasa25 Rage Mobility 128 AGP + 4D52 ATI Theater 550 Pro ATI Theater 550 Pro + 4D53 TVT2 Wonder Elite TVT2 Wonder Elite + 4E44 R300 ATI RADEON 9700 PRO + 4E45 R300 ATI RADEON 9500 PRO / 9700 + 4e46 R300 ATI RADEON 9600 TX + 4E47 R300GL ATI FireGL X1 + 4E48 R350 ATI RADEON 9800 PRO + 4E49 R350 ATI RADEON 9800 + 4E4A R360 ATI RADEON 9800 XT + 4E4B R350GL ATI FireGL X2-256/X2-256t + 4E50 M10 ATI MOBILITY /ATI RADEON 9600/9700 Series + 4E51 RV350 ATI RADEON 9600 Series + 4E52 M10 ATI MOBILITY /ATI RADEON 9500 + 4E54 M10GL ATI MOBILITY FIRE GL T2/T2e + 4E56 M12 ATI MOBILITY /ATI RADEON 9400 + 4E64 R300 ATI RADEON 9700 + 4E65 R300 ATI RADEON 9500 PRO / 9700 Secondary + 4e66 R300 ATI RADEON 9600 TX Secondary + 4E67 R300GL ATI FireGL X1 Secondary + 4E68 R350 ATI RADEON 9800 PRO Secondary + 4E69 R350 ATI RADEON 9800 Secondary + 4E6A R360 ATI RADEON 9800 XT Secondary + 4E6B R350GL ATI FireGL X2-256/X2-256t Secondary + 4E71 RV350 ATI RADEON 9600 Series Secondary + 5041 gt Rage 128 Pro PA PCI + 5042 rage 128 pf pro agp Rage 128 Pro PB AGP 2x + 5043 1231324445 Rage 128 Pro PC AGP 4x + 5044 rv100 Rage 128 Pro PD PCI + 5045 Rage 128 Pro PE AGP 2x + 5046 R128 Rage 128 Pro PF AGP 4x + 5047 215R3BUA22 3d Rage pro agp 2x + 5048 8212104D Rage 128 Pro PH AGP 2x + 5049 R128 Rage 128 Pro PI AGP 4x + 504A Rage 128 Pro PJ PCI Rage 128 Pro PJ PCI (TMDS) + 504B Rage 128 Pro PK AGP Rage 128 Pro PK AGP 2x (TMDS) + 504C Rage 128 Pro PL AGP 4x (TMDS) + 504D Rage 128 Pro PM PCI Rage 128 Pro PM PCI + 504E Rage 128 Pro PN AGP Rage 128 Pro PN AGP 2x + 504F Rage 128 Pro PO AGP Rage 128 Pro PO AGP 4x + 5050 Scheda Grafica Standard PCI(VGA) Rage 128 Pro PP PCI (TMDS) + 5051 Rage 128 Pro PQ AGP Rage 128 Pro PQ AGP 2x (TMDS) + 5052 Rage 128 Pro PR AGP Rage 128 Pro PR AGP 4x (TMDS) + 5053 Rage 128 Pro PS PCI Rage 128 Pro PS PCI + 5054 Rage 128 Pro PT AGP Rage 128 Pro PT AGP 2x + 5055 rage 128 pro agp 4x tmds rage 128 pro agp 4x tmds + 5056 Rage 128 Pro PV PCI Rage 128 Pro PV PCI (TMDS) + 5057 Rage 128 Pro PW AGP Rage 128 Pro PW AGP 2x (TMDS) + 5058 Rage 128 Pro PX AGP 4x (TMDS) + 5144 Radeon 7200 QD SDR/DDR Radeon 7200 QD SDR/DDR + 5145 Radeon QE + 5146 Radeon QF + 5147 Radeon QG + 5148 R200 Radeon R200 QH + 5149 Radeon R200 QI + 514A Radeon R200 QJ + 514B Radeon R200 QK + 514C R200 Radeon 8500 / 8500LE + 514D R200 Redeon 9100 Series + 514E Radeon R200 QM + 514F Radeon R200 QN + 5157 RV200 Radeon 7500 + 5158 radeon 9700 or 9200 Radeon 7500 QX + 5159 RV100 Radeon 7000 series AGP (0x5159) + 515A Radeon VE QZ + 515E Radeon ES1000 Radeon ES1000 + 5168 ati Radeon R200 Qh + 5169 Radeon R200 Qi + 516A Radeon R200 Qj + 516B Radeon R200 Qk + 516C E7505 Radeon 8500 / 8500LE + 516D R200 Redeon 9100 Series - Secondary + 5245 215R2QZUA21 Rage 128 GL PCI + 5246 Rage 128 Rage 32MB + 5247 Rage 32MB Rage 128 RG + 524B g01080-108 Rage 128 VR RK PCI + 524C Rage 128 VR RL AGP 2x + 5345 Rage 128 4x SE PCI + 5346 Rage 128 SF 4x AGP 2x Rage 128 SF 4x AGP 2x + 5347 Rage 128 SG 4x AGP 4x + 5348 Rage 128 4x SH + 534B Rage 128 SK PCI Rage 128 4x SK PCI + 534C Rage 128 SL AGP 2x Rage 128 4x SL AGP 2x + 534D Rage 128 SM AGP 4x Rage 128 4x SM AGP 4x + 534E Rage 128 4x + 5354 Mach 64 ST + 5446 unknown Rage 128 Pro Ultra TF + 544C Rage 128 Pro TL + 5452 Rage 128 Pro TR + 5455 Rage 128 Pro Ultra TU + 5457 RS200M RADEON IGP 345M + 5460 M22 ATI MOBILITY /ATI RADEON X300 + 5461 M22 ATI MOBILITY /ATI RADEON X300 + 5462 M24C ATI MOBILITY /ATI RADEON X600 SE + 5464 M22GL ATI MOBILITY FireGL V3100 + 5548 R423 ATI RADEON X800 Series + 5549 R423 ATI RADEON X800 GTO + 554A R423 ATI RADEON X800 XT Platinum Edition + 554b R423 ATI RADEON X800 GT + 554D R430 ATI RADEON X800 CrossFire Edition + 554E R430 ATI RADEON X800 GT + 554F R430 ATI RADEON X800 GTO + 5550 R423GL ATI FireGL V7100 + 5551 R423GL ATI FireGL V5100 + 5568 R423 ATI RADEON X800 Series Secondary + 5569 R423 ATI RADEON X800 GTO Secondary + 556A R423 ATI RADEON X800 XT Platinum Edition Secondary + 556B R423 ATI RADEON X800 GT Secondary + 556D R430 ATI RADEON X800 CrossFire Edition Secondary + 556E R430 ATI RADEON X800 GT Secondary + 556F R430 ATI RADEON X800 GTO Secondary + 5570 R423GL ATI FireGL V7100 Secondary + 5571 R423GL ATI FireGL V5100 Secondary + 564A M26GL ATI MOBILITY FireGL V5000 + 564B M26GL ATI MOBILITY FireGL V5000 + 564F M26 ATI MOBILITY /ATI RADEON X700 XL + 5652 M26 ATI MOBILITY /ATI RADEON X700 + 5653 RV410 ATI MOBILITY/ATI RADEON X700 + 5654 264VT Mach64 VT + 5655 Mach 64 VT3 + 5656 Mach 64 VT4 PCI Mach 64 VT4 PCI + 5657 RV410 ATI RADEON X550/X700 Series + 5673 M26 ATI MOBILITY /ATI RADEON X700 Secondary + 5677 RV410 ATI RADEON X550/X700 Series Secondary + 5830 RS300 Host Bridge + 5831 RS300 Host Bridge + 5832 RS300 Host Bridge + 5833 RS300M ATI Radeon 9000/9100 IGP Chipset - Host-PCI Bridge + 5834 RS300 Radeon 9100 IGP + 5835 RS300M Mobilitiy Radeon 9000 IGP (RGP) + 5838 RS330M ATI Radeon 9000/9100 IGP Chipset - AGP Controller + 5854 RS480 ATI RADEON Xpress Series + 5874 RS482 ATI RADEON Xpress Series + 5940 RV280 Radeon 9200 Pro Secondary + 5941 RV280 ATI Radeon 9200 - Secondary + 5950 RS480 Host Bridge + 5954 RS482 ATI RADEON Xpress 200 + 5955 RS480M ATI RADEON Xpress 200M + 5960 RV280 Radeon 9200 Pro + 5961 RV280 ATI RADEON 9200 se agp + 5962 RV280 Radeon 9200 + 5964 Radeon 9200 Radeon 9200 SE Series + 5965 unknown FireMV 2200 + 5974 RS482 ATI RADEON Xpress Series + 5975 RS482M (200M) ATI RADEON Xpress Series + 5a23 RD890 AMD IOMMU + 5a31 RS400/133 Host Bridge + 5A33 RC410 Northbridge: Radeon Xpress 200 + 5A41 ATI RADEON Xp 0x5A41 ATI RADEON Xpress Series 0x1002 0x5A41 ATI RADEON Xpress Series 0x1002 + 5A41 RS400 ATI RADEON Xpress Series + 5A42 RS400M ATI RADEON Xpress Series + 5A43 RS400 ATI RADEON Xpress Series + 5A60 SUBSYS_FF311179 Video Controller + 5A61 RC410 ATI Radeon Xpress 200 + 5A613 RC410 ATI RADEON Xpress Series + 5A62 RC410M ATI RADEON Xpress Series + 5A63 RC410 ATI RADEON Xpress Series + 5b60 RV370 ATI RADEON X300/X550/X1050 Series + 5b62 RV380x ATI RADEON X600 Series + 5B63 REV_00\4&399D3C6A&0&0008 ATI RADEON X300/X550/X1050 Series + 5B64 RV370GL ATI FireGL V3100 + 5B65 RV370 ATI FireMV 2200 + 5B6O RV370 ATI RADEON X300/X550/X1050 Series + 5B70 RV370 ATI RADEON X300/X550/X1050 Series Secondary + 5B72 RV380x ATI RADEON X600 Series Secondary + 5B73 RV370 0 SerieATI RADEON X300/X550/X105s Secondary + 5B74 RV370GL ATI FireGL V3100 Secondary + 5B75 RV370 ATI FireMV 2200 Secondary + 5C61 bk-ati ver008.016m.085.006 Mobility Radeon 9200 + 5C63 RV280 (M9+) Mobility Radeon 9200 + 5D44 RV280 Radeon 9200 SE Series - Secondary + 5D45 RV280 ATI FireMV 2200 PCI Secondary + 5D48 M28 ATI MOBILITY/ATI RADEON X800 XT + 5D49 M28GL ATI MOBILITY FireGL V5100 + 5d4a M28 ATI MOBILITY /ATI RADEON X800 + 5d4d R480 ATI RADEON X850 XT Platinum Edition + 5d4f R480 ATI RADEON X800 GTO + 5D50 R480GL ATI FireGL V7200 + 5d52 R480 ATI RADEON X850 XT + 5D57 R423 ATI RADEON X800 XT + 5d6d R480 ATI RADEON X850 XT Platinum Edition Secondary + 5D6F R480 ATI RADEON X800 GTO Secondary + 5D70 R480GL ATI FireGL V7200 Secondary + 5D72 R480 ATI RADEON X850 XT Secondary + 5D77 R423 ATI RADEON X800 XT Secondary + 5E48 RV410GL ATI FireGL V5000 + 5E4A RV410 ATI RADEON X700 XT + 5E4B RV410 ATI RADEON X700 PRO + 5E4C RV410 ATI RADEON X700 SE + 5E4D RV410 ATI RADEON X700 + 5E4F RV410 ATI RADEON X700/X550 Series + 5E68 RV410GL ATI FireGL V5000 Secondary + 5E6A RV410 ATI RADEON X700 XT Secondary + 5E6B RV410 ATI RADEON X700 PRO Secondary + 5E6C RV410 ATI RADEON X700 SE Secondary + 5E6D RV410 ATI RADEON X700 Secondary + 5E6F RV410 ATI RADEON X700/X550 Series Secondary + 60760 123123132 11 + 6718 CAYMAN XT AMD Radeon HD 6970 + 6719 Cayman AMD Radeon HD 6950 + 6738 HD6870 Bart XT + 6739 Barts (Pro) AMD Radeon HD 6850 + 673E 0x2310 0x1787 + 6741 Whistler AMD Radeon™ HD 6700M/HD 6600M Series + 6741_ AMD Radeon HD 7450M (6470M)、6630M、In PCI\VEN_1002&DEV_6741&SUBSYS_21E317AA&REV_00 + 6758 NI AMD Radeon HD 6670 + 6759 - AMD Radeon HD 6570 + 6760 6470M AMD/ATi Radeon 6470M + 6779 AMD Radeon HD 6470m AMD Radeon HD 6470m + 6840 SUBSYS 056A1028 + 6898 EG CYPRESS XT ATI Radeon HD 5800 Series + 6899 EG CYPRESS PRO ATI Radeon HD 5800 Series + 689C EG Cypress XT HEMLOCK ATI Radeon HD 5970 Series + 68A0 EG BROADWAY XT ATI Mobility Radeon HD 5800 Series + 68A1 EG BROADWAY PRO/LP ATI Mobility Radeon HD 5800 Series + 68A8 AMD Radeon HD6870M (at least the one from Dell) AMD Radeon HD6870M (at least the one from Dell) + 68B0 EG BROADWAY XT ATI Mobility Radeon HD 5800 Series + 68B8 EG JUNIPER XT ATI Radeon HD 5700 Series + 68BA 1482174B ATI Radeon HD 6700 Series + 68BE EG JUNIPER LE ATI Radeon HD 5700 Series + 68C1 DEV_68C1&SUBSYS_144A103C&REV_00 ATI Mobility Radeon HD 6550M + 68C8 RV830 FirePro v4800 + 68c9 RV830 FirePro 3D V3800 + 68D8 Redwood ATI Radeon HD 5670 + 68D9 RV830/Redwood HD 5570 + 68E0 HD 5470 ATI Mobility Radeon HD 5470 + 68E4 RV810 Ati Radeon HD 6370M + 68f9 Cedar ATI Radeon HD 5470 + 700F A3/U1 PCI to AGP Bridge + 7010 RS200 PCI to AGP Bridge + 7100 R520 ATI RADEON X1800 Series + 7101 M58 ATI MOBILITY /ATI RADEON X1800 XT + 7102 M58 ATI MOBILITY /ATI RADEON X1800 + 7103 M58GL ATI MOBILITY FireGL V7200 + 7104 R520GL ATI FireGL V7200 + 7105 R520GL ATI FireGL V5300 + 7106 M58GL ATI MOBILITY FireGL V7100 + 7108 R520 ATI RADEON X1800 Series + 7109 R520 ATI RADEON X1800 Series + 710A R520 ATI RADEON X1800 Series + 710B R520 ATI RADEON X1800 Series + 710C R520 ATI RADEON X1800 Series + 710E R520GL ATI FireGL V7300 + 710F R520GL ATI FireGL V7350 + 7120 R520 ATI RADEON X1800 Series Secondary + 7124 R520GL ATI FireGL V7200 Secondary + 7125 R520GL ATI FireGL V5300 Secondary + 7128 R520 ATI RADEON X1800 Series Secondary + 7129 R520 ATI RADEON X1800 Series Secondary + 712A R520 ATI RADEON X1800 Series Secondary + 712B R520 ATI RADEON X1800 Series Secondary + 712C R520 ATI RADEON X1800 Series Secondary + 712E R520GL ATI FireGL V7300 Secondary + 712F R520GL ATI FireGL V7350 Secondary + 7140 RV515 ATI RADEON X1600 Series + 7142 RV515 ATI RADEON X1300/X1550 Series + 7143 RV515 ATI RADEON X1550 Series + 7145 M54 ATI MOBILITY /ATI RADEON X1400 + 7146 RV515 ATI RADEON X1300 / X1550 Series + 7147 RV515 ATI RADEON X1550 64-bit + 7149 M52 ATI MOBILITY RADEON X1300 + 714A M52 ATI MOBILITY /ATI RADEON X1300 + 714B M52 ATI MOBILITY /ATI RADEON X1300 + 714C M52 ATI MOBILITY /ATI RADEON X1300 + 714D RV515 ATI RADEON X1300 Series + 714E RV515PCI ATI RADEON X1300 Series + 7152 RV515GL ATI FireGL V3300 + 7153 RV515GL ATI FireGL V3350 + 715E RV515 ATI RADEON X1300 Series + 715F RV515 ATI RADEON X1550 64-bit + 7160 RV515 ATI RADEON X1600 Series Secondary + 7162 RV515 ATI RADEON X1300/X1550 Series Secondary + 7163 RV515 ATI RADEON X1550 Series Secondary + 7166 RV515 ATI RADEON X1300 / X1550 Series Secondary + 7167 RV515 ATI RADEON X1550 64-bit Secondary + 716D RV515 ATI RADEON X1300 Series Secondary + 716E RV515PCI ATI RADEON X1300 Series Secondary + 7172 RV515GL ATI FireGL V3300 Secondary + 7173 RV515GL ATI FireGL V3350 Secondary + 717E RV515 ATI RADEON X1300 Series Secondary + 717F RV515 ATI RADEON X1550 32-bit Secondary + 7180 RV515 ATI RADEON X1300/X1550 Series =x1400 + 7181 RV515 ATI RADEON X1600 Series + 7183 RV515 ATI RADEON X1300/X1550 Series + 7186 M54 ATI MOBILITY /ATI RADEON X1450 + 7187 RV515 ATI RADEON X1300/X1550 Series + 7188 M64 ATI MOBILITY /ATI RADEON X2300 + 718A M54 ATI MOBILITY /ATI RADEON X2300 + 718B M52 ATI MOBILITY /ATI RADEON X1350 + 718C M52 ATI MOBILITY /ATI RADEON X1350 + 718D M54 ATI MOBILITY /ATI RADEON X1450 + 718F RV515PCI ATI RADEON X1300 Series + 7193 RV515 ATI RADEON X1550 Series + 7196 M52 ATI MOBILITY /ATI RADEON X1350 + 719B RV515 ATI FireMV 2250 + 719F RV515 ATI RADEON X1550 64-bit + 71A0 RV515 ATI RADEON X1300/X1550 Series Secondary + 71A1 RV515 ATI RADEON X1600 Series Secondary + 71A3 RV515 ATI RADEON X1300/X1550 Series Secondary + 71A7 RV515 ATI RADEON X1300/X1550 Series Secondary + 71AF RV515PCI ATI RADEON X1300 Series Secondary + 71B3 RV515 ATI RADEON X1550 Series Secondary + 71BB RV515 ATI FireMV 2250 Secondary + 71C0 RV530 ATI RADEON X1600 Series + 71C1 RV535 ATI RADEON X1650 Series + 71c2 RV530 ATI RADEON X1600 Series + 71C3 RV535 ATI RADEON X1650 Series + 71C4 M56GL ATI MOBILITY FireGL V5200 + 71c5 M56 ATI MOBILITY /ATI RADEON X1600 + 71C6 RV530 ATI RADEON X1650 Series + 71C7 RV535 ATI RADEON X1650 Series + 71CD RV530 ATI RADEON X1600 Серии + 71ce RV530 ATI RADEON X1600 Pro / ATI RADEON X1300 XT + 71D2 RV530GL ATI FireGL V3400 + 71D4 M56GL ATI MOBILITY FireGL V5250 + 71D5 M56 ATI MOBILITY /ATI RADEON X1700 + 71D6 M56 ATI MOBILITY /ATI RADEON X1700 XT + 71DA RV530GL ATI FireGL V5200 + 71DE M56 ATI MOBILITY /ATI RADEON X1700 + 71E0 RV530 ATI RADEON X1600 Series Secondary + 71E1 RV535 ATI RADEON X1650 Series Secondary + 71e2 RV530 ATI RADEON X1600 Series Secondary + 71E3 RV535 ATI RADEON X1300 Series Secondary + 71E6 RV530 ATI RADEON X1600 Series Secondary + 71E7 RV535 ATI RADEON X1650 Series Secondary + 71ED RV530 ATI RADEON X1600 Series Secondary + 71EE RV530 ATI RADEON X1600 Pro / ATI RADEON X1300 XT Secondary + 71F2 RV530GL ATI FireGL V3400 Secondary + 71FA RV530GL ATI FireGL V5200 Secondary + 7205 1106 S3G Unichrome IGP KM400/KN400 + 7210 M71 ATI MOBILITY /ATI RADEON HD 2300 + 7211 M71 ATI MOBILITY /ATI RADEON HD 2300 + 7240 R580 ATI RADEON X1950 Series + 7243 R580 ATI RADEON X1900 Series + 7244 R580 ATI RADEON X1950 Series + 7245 R580 ATI RADEON X1900 Series + 7246 R580 ATI RADEON X1900 Series + 7247 R580 ATI RADEON X1900 Series + 7248 R580 ATI RADEON X1900 Series + 7249 R580 ATI RADEON X1900 Series + 724A R580 ATI RADEON X1900 Series + 724B R580 ATI RADEON X1900 Series + 724C R580 ATI RADEON X1900 Series + 724D R580 ATI RADEON X1900 Series + 724E R580 ATI FireStream 2U + 724F R580 ATI RADEON X1900 Series + 7260 R580 ATI RADEON X1950 Series Secondary + 7263 R580 ATI RADEON X1900 Series Secondary + 7264 R580 ATI RADEON X1950 Series Secondary + 7265 R580 ATI RADEON X1900 Series Secondary + 7266 R580 ATI RADEON X1900 Series Secondary + 7267 R580 ATI RADEON X1900 Series Secondary + 7268 R580 ATI RADEON X1900 Series Secondary + 7269 R580 ATI RADEON X1900 Series Secondary + 726A R580 ATI RADEON X1900 Series Secondary + 726B R580 ATI RADEON X1900 Series Secondary + 726C R580 ATI RADEON X1900 Series Secondary + 726D R580 ATI RADEON X1900 Series Secondary + 726E R580 ATI FireStream 2U Secondary + 726F R580 ATI RADEON X1900 Series Secondary + 7280 R580 ATI RADEON X1950 Series + 7284 M58 ATI MOBILITY /ATI RADEON X1900 + 7286 R580 ATI RAEDON X1950 + 7288 R580 ATI RADEON X1950 GT + 7291 R560 ATI RADEON X1650 Series + 7293 R580 ATI RADEON X1650 Series + 72A0 R580 ATI RADEON X1950 Series Secondary + 72A8 R580 ATI RADEON X1950 GT Secondary + 72B1 R580 ATI RADEON X1650 Series Secondary + 72B3 R580 ATI RADEON X1650 Series Secondary + 7833 RS350 Radeon 9100 Pro + 791 RS690M ATI Mobility Radeon x1100 + 791a 791A HDMI Audio + 791E RS690 ATI RADEON X1200 Series + 791F RS690M ATI Mobility Radeon x1100 + 7937 Samsung R25P ATI Technoligies Inc + 793F RS600 ATI RADEON Xpress 1200 Series + 7941 RS600 ATI RADEON Xpress 1200 Series + 7942 RS600M ATI RADEON Xpress 1250 + 796E RS690 ATI RADEON 2100 + 9094 RV730 ATI Radeon HD 4600 Series + 9400 R600 ATI Radeon HD 2900 XT + 9401 R600 ATI RADEON HD 2900 XT + 9402 R600 ATI RADEON HD 2900 XT + 9403 R600 ATI RADEON HD 2900 PRO + 9405 R600 ATI RADEON HD 2900 GT + 940A R600GL ATI FireGL V8650 + 940B R600GL ATI FireGL V8600 + 940F R600GL ATI FireGL V7600 + 9440 RV770 ATI Radeon HD 4870 + 9441 R700 ATI Radeon HD 4870 X2 + 9442 RV770 ATI Radeon HD 4800 Series + 9443 R700 ATI Radeon HD 4850 X2 + 9444 RV770 ATI FirePro V8750 (FireGL) + 9446 RV770 ATI FirePro V7770 (FireGL) + 9447 R700 ATI FirePro V8700 Duo (FireGL) + 944A M98 ATI Mobility Radeon HD 4850 + 944B M98 ATI Mobility Radeon HD 4850 X2 + 944C RV770 ATI Radeon HD 4800 Series + 944E RV770 ATI Radeon HD 4700 Series + 9450 RV770 AMD FireStream 9270 + 9452 RV770 AMD FireStream 9250 + 9456 RV770 ATI FirePro V8700 (FireGL) + 945A M98 ATI Mobility Radeon HD 4870 + 9460 RV790 ATI Radeon HD 4890 Series + 9462 RV790 ATI Mobility Radeon HD 5650 + 9480 M96 ATI Mobility Radeon HD 4650 + 9487 RV730 ATI Radeon Graphics Processor + 9488 M96 ATI Mobility Radeon HD 4670 + 948F RV730 ATI Radeon Graphics Processor + 9490 RV730 ATI Radeon HD 4600 Series + 9491 M96 ATI Radeon E4600 + 9495 RV730 ATI RADEON HD4650 + 9498 RV730 ATI Radeon HD 4600 + 949C RV730 ATI FirePro V7750 (FireGL) + 949E RV730 ATI FirePro V5700 (FireGL) + 949F RV730 ATI FirePro V3750 (FireGL) + 94A0 M97 ATI Mobility Radeon HD 4830 + 94A1 M97 ATI Mobility Radeon HD 4860 + 94A3 M97 ATI FirePro M7740 + 94B1 RV740 ATI Radeon Graphics Processor + 94B3 RV740 ATI Radeon HD 4770 + 94B4 RV740 ATI Radeon HD 4700 Series + 94B5 AA38 ATI Radeon HD 4650 + 94C1 RV610-DT (Pro) ATI Radeon HD 2400 XT + 94C3 RV610-DT (LE) ATI Radeon HD 2400 PRO + 94C4 RV610LE ATI Radeon HD 2400 PRO AGP + 94C5 RV610 ATI RADEON HD 2400 LE + 94C7 RV610 ATI RADEON HD 2350 + 94C8 M72 ATI MOBILITY /ATI RADEON HD 2400 XT + 94C9 M72 ATI MOBILITY /ATI RADEON HD 2400 + 94CB M72 ATI RADEON E2400 + 94CC RV610 ATI RADEON HD 2400 + 9501 RV670 XT ATI Radeon HD 3870 + 9504 M76 ATI MOBILITY /ATI RADEON HD 3850 + 9505 RV630 ATI RADEON HD 3850 + 9506 M76 ATI MOBILITY /ATI RADEON HD 3850 X2 + 9507 RV670 ATI Radeon HD 3830 + 9508 M76 ATI MOBILITY /ATI RADEON HD 3870 + 9509 M76 ATI MOBILITY /ATI RADEON HD 3870 X2 + 950F RV630 ATI RADEON HD 3870 X2 + 9511 RV630GL ATI FireGL V7700 + 9513 R680 ATI Radeon HD 3850 X2 + 9515 RV670 AGP ATI Radeon HD 3850 AGP + 9519 RV670 AMD FireStream 9170 + 9540 RV710 ATI Radeon HD 4550 + 9541 RV710 ATI Radeon Graphics Processor + 954E RV710 ATI Radeon Graphics Processor + 954F RV710 ATI Radeon HD 4350 + 9552 M92 ATI Mobility Radeon HD 4330 Series + 9553 M92 ATI Mobility Radeon HD 5145 + 9555 M93 ATI Mobility Radeon HD 4500 Series + 9557 M93 ATI FirePro RG220 + 9581 M76M ATI Mobility Radeon HD 2600 + 9583 M76 ATI MOBILITY /ATI RADEON HD 2600 XT + 9586 RV630 ATI RADEON HD 2600 XT AGP + 9587 RV630 PRO ATI Radeon HD 2600 Pro AGP + 9588 RV630 XT ATI Radeon HD 2600 XT + 9589 ПРО RV630 ATI Radeon HD 2600 Pro + 958B M76 ATI MOBILITY / ATI RADEON HD 2600 XT Gemini + 958C RV630GL ATI FireGL V5600 + 958D RV630GL ATI FireGL V3600 + 958E RV630 ATI RADEON HD 2600 LE + 958F M76 ATI Mobility FireGL Graphics Processor + 9590 RV630 ATI RADEON HD 3650 Serieshttp://www.pcidatabase.com/update_device.php?__ec_i=ec.1307313611.e071ed73c + 9591 M86-M ATI Mobility Radeon HD 3650 + 9593 M86 ATI Mobility Radeon HD 3670 + 9595 M86 ATI Mobility FireGL V5700 + 9596 RV630 ATI RADEON HD 3600 Series + 9597 RV630 ATI RADEON HD 3600 Series + 9598 RV630 ATI Radeon HD 3600 Series + 9599 RV630 ATI RADEON HD 3600 Series + 959B M86 ATI Mobility FireGL Graphics Processor + 95C0 RV610 ATI RADEON HD 3470 + 95C2 M72 ATI MOBILITY /ATI RADEON HD 3430 + 95c4 M82-S ATI Mobility Radeon HD 3450 + 95C5 RV620 LE ATI Radeon HD 3450 + 95C6 RV620 ATI Radeon HD 3450 + 95C7 RV610 ATI RADEON HD 3430 + 95C9 RV620 ATI Radeon HD 3450 + 95CC RV620 ATI FirePRO V3700 + 95CD RV610 ATI FireMV 2450 + 95CE RV610 ATI FireMV 2260 + 95CF RV610 ATI FireMV 2260 + 9610 RS780 ATI Radeon HD 3200 Graphics + 9611 RS780 ATI RADEON 3100 Graphics + 9612 RS780M ATI RADEON HD 3200 Graphics + 9613 RS780M ATI RADEON 3100 Graphics + 9614 RS780 ATI RADEON HD 3300 Graphics + 9615 RS780 AMD 780E + 9616 RS780 AMD 760G + 9644 A4-3400 AMD Radeon™ HD 6410D + 9647 AMD A6-3420M APU With AMD Radeon HD 6520G стандартный vga гр + 9648 9648 AMD Radeon(TM) HD 6480G + 9710 RS880 ATI Radeon HD 4200 + 9711 RS880 ATI Radeon 4100 + 9712 4250 ATI Mobility Radeon HD 4200 Series (ATI Mobility Radeon HD 4250) + 9713 RS880 ATI Mobility Radeon 4100 + 9715 RS880 ATI Radeon HD 4250 Graphics + 9802 AMD E-350 AMD Radeon™ HD 6310 Graphics + 9803 2411E6FE Display driver http://support1.toshiba-tro.de/tedd-files2/0/display-20110404110958.zip + 9804 AMD Radeon HD 6310 Graphics AMD Radeon HD 6310 Gr AMD Radeon HD 6310 Graphics + 9806 AMD Radeon HD 6320 E-450 APU + 9807 unknow amd radeon hd 6290 graphic + 9876 ATI GTC (GT-C2U2) ATI 3D Rage Pro AGP 2X + 9999 (0x9498 ATI Radeon HD 4600 + AA01 Ati Function driver for high definition audio Ati Mobility Radeon HD HDMI Audio realtek + AA08 All with HDMI support High Definition Audio Device + AA10 677 HDMI Audio Support + AA20 RV630 ATI Radeon HD 3600 Series + AA28 3400 Radeon HD 3400 Series + CAB0 A3/U1 S2K CPU to PCI Bridge + CAB1 A3/U1 Slot1 CPU to PCI Bridge + cab2 RS200 CPU to PCI Bridge + CBB2 RS200 CPU to PCI Bridge + o876 + 7800 +1003 ULSI + 0201 0x0201 GUI Accelerator +1004 VLSI Technology + 0005 PCI\VEN_13F0 DEV_0200 + 0006 82C593 ISA Bridge + 0007 82C594 Wildcat System Controller + 0008 82C596/597 Wildcat ISA Bridge + 0009 82C597-AFC2 + 000C 82C541 + 000D 82C543 + 0100 dtdftdfz CPU to PCI Bridge for notebook + 0101 82C532 Peripheral Controller + 0102 82C534 PCI to PCI Bridge + 0103 82C538 PCI to ISA Bridge + 0104 82C535 Host Bridge + 0105 82C147 IrDA Controller + 0200 82C975 RISC GUI Accelerator + 0280 82C925 RISC GUI Accelerator + 0304 SAA7785 ThunderBird PCI Audio Accelerator + 0305 SAA7785 ThunderBird joystick port + 0306 SAA7785 ThunderBird 16650 UART + 0307 KTX0208X Philips Seismic Edge 705 + 0308 1 Philips PSC705 GamePort Enumerator + 0702 VAS96011 Golden Gate II +1006 Reply Group + 3044 n/a OHCI Compliant IEEE 1394 Host Controller +1007 Netframe Systems Inc. +1008 Epson + 9876 23 23 +100A Âas Ltd. de Phoenix del ƒ de Tecnologà + 8235 VIA 82C3128 U87088R06 +100B National Semiconductors + 0001 DP83810 10/100 Ethernet MAC + 0002 PC87415 PCI-IDE DMA Master Mode Interface Ctrlr + 000E PC87560 Legacy I/O Controller + 000F CS4210 IEEE 1394 OHCI Controller + 0011 PC87560 PCI System I/O + 0012 USB Controller + 001B LM4560 Advanced PCI Audio Accelerator + 0020 DP83815/16 MacPhyter 10/100 Mb/s Ethernet MAC & PHY + 0020h DP83815 10/100 MacPhyter3v PCI Adapter + 0021 PC82440 PCI to ISA Bridge + 0022 DP83820/1 10/100/1000 Mb/s PCI Ethernet NIC + 0028 Geode GX2 PCI Host Bridge + 002A CS5535 GeodeLink PCI South Bridge + 002D 5535 Geode IDE Controller + 002E Castle () GEODE - GX3 Audio CS5535 + 002F Geode USB Controller + 0030 NSC Geode VGA Compatible Device + 0500 SCx200 LPC Bridge and GPIO + 0501 SCx200 SMI Status and ACPI + 0502 SC1100/SCx200 IDE Controller + 0503 SC1100/SCx200 XpressAUDIO + 0504 SCx200 Video Processor + 0505 SCx200 X-Bus Expansion Interface + 0510 SC1100 LPC Bridge and GPIO + 0511 SC1100 SMI Status and ACPI + 0515 SC1100 X-Bus Expansion Interface + 23 + D001 M2764AFI PCI-IDE Interface +100C Tseng Labs + 3202 ET4000W32P-A GUI Accelerator + 3205 ET4000W32P-B GUI Accelerator + 3206 ET4000W32P-C GUI Accelerator + 3207 ET4000W32P-D GUI Accelerator + 3208 ET6000 Graphics/Multimedia Engine + 4702 ET6300 +100D AST Research +100E Weitek + 0564 STPC Client Host Bridge + 55CC STPC Client South Bridge + 9000 P9000 WeitekPower GUI Accelerator + 9001 P9000 GUI Accelerator + 9100 P9100 GUI Accelerator +1010 Video Logic Ltd. +1011 Digital Equipment Corporation + 0001 DC21050 PCI-PCI Bridge + 0002 DC21040 Tulip Ethernet Adapter + 0004 DC21030 PCI Graphics Accelerator + 0007 Zephyr NV-RAM + 0008 KZPSA SCSI to SCSI Adapter + 0009 DC21140 Fast Ethernet Ctrlr + 000A DC21230 Video Codec + 000C 1011 6IfPpL alert(

    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

    \n");
    +  DocPutS(doc_out,body_header);
    +
    +  doc_e=doc_in->root.next;
    +  s=DocSettingsLast(doc_e);
    +  col=doc_e->x;
    +  y=doc_e->y;
    +  cur_u8_attr=doc_e->type.u8[1];
    +  while (doc_e!=doc_in) {
    +    if (!(doc_e->flags1&(DOCEF1_SKIP|DOCEF1_HARD_SKIP))) {
    +      if (line_anchors && y!=old_y) {
    +	DocPrintF(doc_out,"",y+1);
    +	old_y=y;
    +      }
    +      while (yy) {
    +	HtmlPutS(doc_out,cur_u8_attr,&old_c,"\n",&col,style_bitmap);
    +	y++;
    +	if (line_anchors && y!=old_y) {
    +	  DocPrintF(doc_out,"",y+1);
    +	  old_y=y;
    +	}
    +	col=0;
    +      }
    +
    +      no_backward=TRUE;
    +      doc_e2=doc_e->next;
    +      while (doc_e2!=doc_in && doc_e2->y==doc_e->y) {
    +	if (doc_e2->xx) {
    +	  no_backward=FALSE;
    +	  break;
    +	}
    +	doc_e2=doc_e2->next;
    +      }
    +      if (no_backward)
    +	while (colx)
    +	  HtmlPutS(doc_out,cur_u8_attr,&old_c," ",&col,style_bitmap);
    +
    +      link_st=NULL;
    +      if (doc_e->flags1&DOCEF1_HTML_LINK)
    +	link_st=StrNew(doc_e->html_link);
    +      else if (doc_e->type_u8==DOCT_LINK) {
    +	if (doc_e->flags1 & DOCEF1_AUX_STR)
    +	  link_st=doc_e->aux_str;
    +	else
    +	  link_st=doc_e->tag;
    +	link_st=link_cvt(link_st);
    +      }
    +
    +      if (link_st) {
    +	if (old_c!=-1) {
    +	  DocPutS(doc_out,"");
    +	  old_c=-1;
    +	}
    +	DocPrintF(doc_out,"",link_st);
    +      }
    +
    +      if (doc_e->settings)
    +	s=doc_e->settings;
    +      cur_u8_attr=doc_e->type.u8[1];
    +      switch (doc_e->type_u8) {
    +	case DOCT_TEXT:
    +	  if (doc_e->flags1&DOCEF1_HIGHLIGHT) {
    +	    src=hl=DocHighlight(doc_in,FALSE,doc_e,&s,doc_e->tag,StrLen(doc_e->tag),cur_u8_attr<<8);
    +	    while (*src) {
    +	      st_2[0]=*src&0xFF;
    +	      HtmlPutS(doc_out,*src>>8,&old_c,st_2,&col,style_bitmap);
    +	      src++;
    +	    }
    +	    Free(hl);
    +	  } else
    +	    HtmlPutS(doc_out,cur_u8_attr,&old_c,doc_e->tag,&col,style_bitmap);
    +	  break;
    +	case DOCT_TAB:
    +	  HtmlPutS(doc_out,cur_u8_attr,&old_c,"\t",&col,style_bitmap);
    +	  break;
    +	case DOCT_HTML_IMG:
    +	  if (old_c!=-1) {
    +	    DocPutS(doc_out,"");
    +	    old_c=-1;
    +	  }
    +	  DocPrintF(doc_out,"\"\"\n",doc_e->tag);
    +	  break;
    +	case DOCT_HTML_VIDEO:
    +	  if (old_c!=-1) {
    +	    DocPutS(doc_out,"");
    +	    old_c=-1;
    +	  }
    +	  DocPrintF(doc_out,
    +		"\n"
    +		"\n"
    +		"\n"
    +		"\n"
    +		"\n"
    +		"\n"
    +		"\n"
    +		"\n"
    +		"\n"
    +		"\n"
    +		"\n"
    +		"\n",doc_e->tag,doc_e->tag);
    +	  break;
    +	case DOCT_HTML_CODE:
    +	  if (old_c!=-1) {
    +	    DocPutS(doc_out,"");
    +	    old_c=-1;
    +	  }
    +	  DocPutS(doc_out,doc_e->tag);
    +	  break;
    +	case DOCT_SPRITE:
    +	  HtmlPutS(doc_out,cur_u8_attr,&old_c,doc_e->tag,&col,style_bitmap);
    +	  HtmlPutS(doc_out,s->comment_attr&15+old_c&0xF0,&old_c,"/* Graphics Not Rendered in HTML */",&col,style_bitmap);
    +	  break;
    +	default:
    +	  if (Bt(doc_tag_types,doc_e->type_u8))
    +	    HtmlPutS(doc_out,cur_u8_attr,&old_c,doc_e->tag,&col,style_bitmap);
    +      }
    +      if (link_st) {
    +	if (old_c!=-1) {
    +	  DocPutS(doc_out,"");
    +	  old_c=-1;
    +	}
    +	DocPutS(doc_out,"");
    +	Free(link_st);
    +      }
    +    }
    +    doc_e=doc_e->next;
    +  }
    +  while (yy) {
    +    HtmlPutS(doc_out,cur_u8_attr,&old_c,"\n",&col,style_bitmap);
    +    y++;
    +    col=0;
    +  }
    +  if (old_c!=-1) {
    +    DocPutS(doc_out,"");
    +    old_c=-1;
    +  }
    +  DocPutS(doc_out,body_footer);
    +  DocPutS(doc_out,"